<?xml version="1.0" encoding="utf-8" ?>
<otrs_package version="1.1">
    <Name>FAQ</Name>
    <Version>11.0.11</Version>
    <Vendor>Rother OSS GmbH</Vendor>
    <URL>https://otobo.io/</URL>
    <License>GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007</License>
    <ChangeLog Date="2026-07-28 15:06:19" Version="11.0.11">Bugfixes and Tidiyng, among others: Fixed related articles trigger for CK5 (#36); Remove dynamic fields upon package uninstall (#51); Some fixes for FAQ reference fields (#29);</ChangeLog>
    <ChangeLog Date="2025-10-09 10:29:13" Version="11.0.10">Change font of faq articles in customer and public zoom to quicksand (#41). Fixed journal settings (#38) and aligned input field layout for AgentFAQEdit to -Add (#44).</ChangeLog>
    <ChangeLog Date="2025-07-31 14:58:57" Version="11.0.9">Change FAQ approval state exceptions to just work for internal states.</ChangeLog>
    <ChangeLog Date="2025-07-11 07:15:37" Version="11.0.8">- Issue #40: FAQ Approval Enhancement.</ChangeLog>
    <ChangeLog Date="2025-07-02 13:38:53" Version="11.0.7">Restore old and lost translations.</ChangeLog>
    <ChangeLog Date="2025-05-06 13:01:44" Version="11.0.6">Update to OTOBO 11.0.9.
Issue #35: Added translation of categories to customer FAQ explorer.</ChangeLog>
    <ChangeLog Date="2025-01-08 15:44:26" Version="11.0.5">- Also add target blank on PublicFAQZoom.</ChangeLog>
    <ChangeLog Date="2025-01-08 14:27:20" Version="11.0.4">- Open links in new window also from CustomerFAQZoom.
- Fix FAQ insertion in ticket masks.
- Fix widget size for articles containing floated elements.</ChangeLog>
    <ChangeLog Date="2024-10-07 08:42:47" Version="11.0.3">Updated to OTOBO 11.0.6.</ChangeLog>
    <ChangeLog Date="2024-04-04 09:00:12" Version="11.0.2">- Issue #3286: Increase font size of related faq article.</ChangeLog>
    <ChangeLog Date="2024-04-02 13:52:20" Version="11.0.1">Initial Release on OTOBO 11.</ChangeLog>
    <Description Lang="en">The FAQ/knowledge base.</Description>
    <Description Lang="de">Die FAQ-/Wissensdatenbank.</Description>
    <Description Lang="hu">A GyIK/tudásbázis csomag.</Description>
    <Framework Minimum="11.0.9">11.0.x</Framework>
    <IntroInstall Lang="en" Title="Install Information" Type="pre">
        &lt;br/&gt;
        &lt;strong&gt;WELCOME&lt;/strong&gt;
        &lt;br/&gt;
        &lt;br/&gt;
        You are about to install the OTOBO package FAQ.&lt;br/&gt;
        &lt;br/&gt;
        &lt;br/&gt;
        ((enjoy))&lt;br/&gt;
        &lt;br/&gt;
    </IntroInstall>
    <IntroInstall Lang="de" Title="Installation Information" Type="pre">
        &lt;br/&gt;
        &lt;strong&gt;WILLKOMMEN&lt;/strong&gt;
        &lt;br/&gt;
        &lt;br/&gt;
        Sie sind im Begriff das OTOBO-Paket FAQ zu installieren.&lt;br/&gt;
        &lt;br/&gt;
        &lt;br/&gt;
        ((enjoy))&lt;br/&gt;
        &lt;br/&gt;
    </IntroInstall>
    <IntroInstall Lang="es" Title="Install Information" Type="pre">
        &lt;br/&gt;
        &lt;strong&gt;BIENVENIDO&lt;/strong&gt;
        &lt;br/&gt;
        &lt;br/&gt;
        Usted est&amp;aacute; a punto de instalar el paquete FAQ de OTOBO.&lt;br/&gt;
        &lt;br/&gt;
        &lt;br/&gt;
        ((enjoy))&lt;br/&gt;
        &lt;br/&gt;
    </IntroInstall>
    <IntroInstall Lang="hu" Title="Telepítési információk" Type="pre">
        &lt;br/&gt;
        &lt;strong&gt;ÜDVÖZÖLJÜK&lt;/strong&gt;
        &lt;br/&gt;
        &lt;br/&gt;
        Ön az FAQ OTOBO csomag telepítésére készül.&lt;br/&gt;
        &lt;br/&gt;
        &lt;br/&gt;
        ((enjoy))&lt;br/&gt;
        &lt;br/&gt;
    </IntroInstall>
    <IntroInstall Lang="en" Title="Installation Information" Type="post">
        &lt;br/&gt;
        &lt;strong&gt;NOTICE&lt;/strong&gt;
        &lt;br/&gt;
        &lt;br/&gt;
        The menu items that were added by this package will be visible after you log-in to the system again.
        &lt;br/&gt;
        &lt;br/&gt;
        To create new FAQ article you need to create categories and define the permission who can access categories.
        &lt;br/&gt;
        &lt;br/&gt;
        If you are using the FAQ approval feature, you need to create a group and define a queue.
        You will find further information in the sysconfig in FAQ -&gt; Core::Approval.
        &lt;br/&gt;
        &lt;br/&gt;
        ((enjoy))&lt;br/&gt;
        &lt;br/&gt;
    </IntroInstall>
    <IntroInstall Lang="de" Title="Installation Information" Type="post">
        &lt;br/&gt;
        &lt;strong&gt;HINWEIS&lt;/strong&gt;
        &lt;br/&gt;
        &lt;br/&gt;
        Die von diesem Paket hinzugefügten Menü-Punkte sind erst nach einem erneuten Anmeldevorgang im System sichtbar.
        &lt;br/&gt;
        &lt;br/&gt;
        Um FAQ Artikel erstellen zu können müssen zuerst Kategorien erstellt und die Berechtigungs-Gruppen dieser Kategorien definiert werden.
        &lt;br/&gt;
        &lt;br/&gt;
        Wenn Sie das FAQ-Freigabe-Feature verwenden möchten, müssen Sie eine Gruppe dafür anlegen und eine Queue definieren.
        Weitere Informationen finden Sie in der Sysconfig unter FAQ -&gt; Core::Approval.
        &lt;br/&gt;
        &lt;br/&gt;
        ((enjoy))&lt;br/&gt;
        &lt;br/&gt;
    </IntroInstall>
    <IntroInstall Lang="es" Title="Installation Information" Type="post">
        &lt;br/&gt;
        &lt;strong&gt;AVISO&lt;/strong&gt;
        &lt;br/&gt;
        &lt;br/&gt;
        Los elementos del menu que fueron agregados por este paquete ser&amp;aacute;n visibles despu&amp;eacute;s de que cierre y abra su sesi&amp;oacute;n de nuevo.
        &lt;br/&gt;
        &lt;br/&gt;
        Para crear un nuevo art&amp;iacute;culo FAQ usted necesita crear una categor&amp;iacute;a y definir los permisos de quienes pueden acceder esta categor&amp;iacute;a.
        &lt;br/&gt;
        &lt;br/&gt;
        Si usted est&amp;aacute; utilizando la funcionalidad de &quot;FAQ approval&quot;, necesita crear un grupo y definir una cola.
        Encontrar&amp;aacute; m&amp;aacute;s informaci&amp;oacute;n en sysconfig, en FAQ -&gt; Core::Approval.
        &lt;br/&gt;
        &lt;br/&gt;
        ((enjoy))&lt;br/&gt;
        &lt;br/&gt;
    </IntroInstall>
    <IntroInstall Lang="hu" Title="Telepítési információk" Type="post">
        &lt;br/&gt;
        &lt;strong&gt;FIGYELMEZTETÉS&lt;/strong&gt;
        &lt;br/&gt;
        &lt;br/&gt;
        Azok a menüpontok, amelyeket ez a csomag adott hozzá, azután lesznek láthatóak, miután ismét bejelentkezik a rendszerbe.
        &lt;br/&gt;
        &lt;br/&gt;
        Egy új GyIK bejegyzés létrehozásához kategóriákat kell létrehoznia, és meg kell határoznia a jogosultságokat, hogy ki férhet hozzá a kategóriákhoz.
        &lt;br/&gt;
        &lt;br/&gt;
        Ha használja a GyIK jóváhagyás szolgáltatást, akkor létre kell hoznia egy csoportot, és meg kell határoznia egy várólistát.
        További információkat fog találni a rendszerbeállításokban a FAQ -&gt; Core::Approval alcsoportban.
        &lt;br/&gt;
        &lt;br/&gt;
        ((enjoy))&lt;br/&gt;
        &lt;br/&gt;
    </IntroInstall>
    <IntroUninstall Lang="en" Title="Uninstallation Information" Type="pre">
        &lt;br/&gt;
        &lt;strong&gt;ATTENTION&lt;/strong&gt;
        &lt;br/&gt;
        &lt;br/&gt;
        If you uninstall this package, all database tables that were created during installation will be deleted.
        All data from these tables will be irrevocably lost!
        &lt;br/&gt;
        &lt;br/&gt;
        All Dynamic Fields created for this package and its data will be deleted permanently.
        &lt;br/&gt;
        &lt;br/&gt;
        The groups 'faq' and 'faq_admin' that were created during package installation will be deactivated.
        You can activate these groups again in the admin area.
        &lt;br/&gt;
        &lt;br/&gt;
        ((enjoy))&lt;br/&gt;
        &lt;br/&gt;
    </IntroUninstall>
    <IntroUninstall Lang="de" Title="Uninstallation Information" Type="pre">
        &lt;br/&gt;
        &lt;strong&gt;ACHTUNG&lt;/strong&gt;
        &lt;br/&gt;
        &lt;br/&gt;
        Bei der Deinstallation werden die von diesem Paket angelegten Datenbank-Tabellen gelöscht.
        Alle darin enthaltenen Daten gehen unwiderruflich verloren!
        &lt;br/&gt;
        &lt;br/&gt;
        Alle dynamischen Felder für dieses Paket erstellt und seine Daten dauerhaft gelöscht werden.
        &lt;br/&gt;
        &lt;br/&gt;
        Die von diesem Paket angelegten Gruppen 'faq' und 'faq_admin' werden deaktiviert.
        Sie können jederzeit im Admin-Bereich wieder aktiviert werden.
        &lt;br/&gt;
        &lt;br/&gt;
        ((enjoy))&lt;br/&gt;
        &lt;br/&gt;
    </IntroUninstall>
    <IntroUninstall Lang="es" Title="Uninstallation Information" Type="pre">
        &lt;br/&gt;
        &lt;strong&gt;ATENCI&amp;Oacute;N&lt;/strong&gt;
        &lt;br/&gt;
        &lt;br/&gt;
        Si usted desinstala este paquete, todas las tablas de la base de datos creadas durante la instalaci&amp;oacute;n ser&amp;aacute;n borradas.
        &amp;iexcl;Todos los datos de esas tablas se perder&amp;aacute;n irrevocablemente!.
        &lt;br/&gt;
        &lt;br/&gt;
        Todos los Campos Dinámicos creados para este paquete y sus datos serán borrados permanentemente.
        &lt;br/&gt;
        &lt;br/&gt;
        Los grupos 'faq' y 'faq_admin' que fueron creados durante la instalaci&amp;oacute;n del paquete ser&amp;aacute;n desactivados.
        Usted puede activar estos grupos nuevamente en el &amp;aacute;rea de admin.
        &lt;br/&gt;
        &lt;br/&gt;
        ((enjoy))&lt;br/&gt;
        &lt;br/&gt;
    </IntroUninstall>
    <IntroUninstall Lang="hu" Title="Eltávolítási információk" Type="pre">
        &lt;br/&gt;
        &lt;strong&gt;FIGYELEM&lt;/strong&gt;
        &lt;br/&gt;
        &lt;br/&gt;
        Ha eltávolítja ezt a csomagot, akkor a telepítés során létrehozott összes adatbázistábla törlésre kerül.
        Az ezekben a táblákban lévő összes adat visszavonhatatlanul el fog veszni!
        &lt;br/&gt;
        &lt;br/&gt;
        A csomaghoz létrehozott összes dinamikus mező és azok adatai véglegesen törölve lesznek.
        &lt;br/&gt;
        &lt;br/&gt;
        A csomagtelepítés során létrehozott „faq” és „faq_admin” csoport ki lesz kapcsolva.
        Ezeket a csoportokat az adminisztrációs területen tudja ismét bekapcsolni.
        &lt;br/&gt;
        &lt;br/&gt;
        ((enjoy))&lt;br/&gt;
        &lt;br/&gt;
    </IntroUninstall>
    <IntroUpgrade Lang="en" Title="Upgrade Information" Type="pre">
        &lt;br/&gt;
        &lt;strong&gt;WELCOME&lt;/strong&gt;
        &lt;br/&gt;
        &lt;br/&gt;
        You are about to upgrade the OTOBO package FAQ.&lt;br/&gt;
        &lt;br/&gt;
        &lt;br/&gt;
        ((enjoy))&lt;br/&gt;
        &lt;br/&gt;
    </IntroUpgrade>
    <IntroUpgrade Lang="de" Title="Upgrade Information" Type="pre">
        &lt;br/&gt;
        &lt;strong&gt;WILLKOMMEN&lt;/strong&gt;
        &lt;br/&gt;
        &lt;br/&gt;
        Sie sind im Begriff das OTOBO-Paket FAQ zu aktualisieren.&lt;br/&gt;
        &lt;br/&gt;
        &lt;br/&gt;
        ((enjoy))&lt;br/&gt;
        &lt;br/&gt;
    </IntroUpgrade>
    <IntroUpgrade Lang="es" Title="Upgrade Information" Type="pre">
        &lt;br/&gt;
        &lt;strong&gt;BIENVENIDO&lt;/strong&gt;
        &lt;br/&gt;
        &lt;br/&gt;
        Usted est&amp;aacute; apunto de actualizar el paquete FAQ de OTOBO.&lt;br/&gt;
        &lt;br/&gt;
        &lt;br/&gt;
        ((enjoy))&lt;br/&gt;
        &lt;br/&gt;
    </IntroUpgrade>
    <IntroUpgrade Lang="hu" Title="Frissítési információk" Type="pre">
        &lt;br/&gt;
        &lt;strong&gt;ÜDVÖZÖLJÜK&lt;/strong&gt;
        &lt;br/&gt;
        &lt;br/&gt;
        Ön az FAQ OTOBO csomag frissítésére készül.&lt;br/&gt;
        &lt;br/&gt;
        &lt;br/&gt;
        ((enjoy))&lt;br/&gt;
        &lt;br/&gt;
    </IntroUpgrade>
    <CodeInstall Type="post">

        # create the package name
        my $CodeModule = 'var::packagesetup::' . $Param{Structure}-&gt;{Name}-&gt;{Content};

        $Kernel::OM-&gt;Get($CodeModule)-&gt;CodeInstall();
    </CodeInstall>
    <CodeUpgrade Type="post">

        # create the package name
        my $CodeModule = 'var::packagesetup::' . $Param{Structure}-&gt;{Name}-&gt;{Content};

        $Kernel::OM-&gt;Get($CodeModule)-&gt;CodeUpgrade();
    </CodeUpgrade>
    <CodeUpgrade Type="post" Version="1.5.3">

        # create the package name
        my $CodeModule = 'var::packagesetup::' . $Param{Structure}-&gt;{Name}-&gt;{Content};

        $Kernel::OM-&gt;Get($CodeModule)-&gt;CodeUpgradeSpecial();
    </CodeUpgrade>
    <CodeUpgrade Type="post" Version="4.0.1">

        # create the package name
        my $CodeModule = 'var::packagesetup::' . $Param{Structure}-&gt;{Name}-&gt;{Content};

        $Kernel::OM-&gt;Get($CodeModule)-&gt;CodeUpgradeFromLowerThan_4_0_1();
    </CodeUpgrade>
    <CodeUpgrade Type="post" Version="4.0.91">

        # create the package name
        my $CodeModule = 'var::packagesetup::' . $Param{Structure}-&gt;{Name}-&gt;{Content};

        $Kernel::OM-&gt;Get($CodeModule)-&gt;CodeUpgradeFromLowerThan_4_0_91();
    </CodeUpgrade>
    <CodeUpgrade Type="post" Version="5.0.92">

        # create the package name
        my $CodeModule = 'var::packagesetup::' . $Param{Structure}-&gt;{Name}-&gt;{Content};

        $Kernel::OM-&gt;Get($CodeModule)-&gt;CodeUpgradeFromLowerThan_5_0_92();
    </CodeUpgrade>
    <CodeUninstall Type="pre">

        # create the package name
        my $CodeModule = 'var::packagesetup::' . $Param{Structure}-&gt;{Name}-&gt;{Content};

        $Kernel::OM-&gt;Get($CodeModule)-&gt;CodeUninstall();
    </CodeUninstall>
    <CodeReinstall Type="post">

        # create the package name
        my $CodeModule = 'var::packagesetup::' . $Param{Structure}-&gt;{Name}-&gt;{Content};

        $Kernel::OM-&gt;Get($CodeModule)-&gt;CodeReinstall();
    </CodeReinstall>
    <BuildCommitID>06d43dd09182d9e70ae981fe8f6631dda9b7ddc4</BuildCommitID>
    <BuildDate>2026-07-28 15:06:25</BuildDate>
    <BuildHost>opms.rother-oss.com</BuildHost>
    <Filelist>
        <File Location="bin/cgi-bin/faq.pl" Permission="770" Encode="Base64">IyEvdXNyL2Jpbi9lbnYgcGVybAojIC0tCiMgT1RPQk8gaXMgYSB3ZWItYmFzZWQgdGlja2V0aW5nIHN5c3RlbSBmb3Igc2VydmljZSBvcmdhbmlzYXRpb25zLgojIC0tCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTkgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KIyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyNSBSb3RoZXIgT1NTIEdtYkgsIGh0dHBzOi8vb3RvYm8uaW8vCiMgLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlcgojIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQKIyBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUwojIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCiMgLS0KCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCiMgVXNlIC4uLy4uLyBhcyBsaWIgbG9jYXRpb24uCnVzZSBGaW5kQmluIHF3KCRCaW4pOwp1c2UgbGliICIkQmluLy4uLy4uIjsKdXNlIGxpYiAiJEJpbi8uLi8uLi9LZXJuZWwvY3Bhbi1saWIiOwp1c2UgbGliICIkQmluLy4uLy4uL0N1c3RvbSI7CgojIDA9b2ZmOzE9b247Cm15ICREZWJ1ZyA9IDA7CgpwcmludCAibG9jYXRpb246IHB1YmxpYy5wbD9BY3Rpb249UHVibGljRkFRRXhwbG9yZXJcbiI7CnByaW50ICJcbiI7CnByaW50ICI8YSBocmVmPSdwdWJsaWMucGw/QWN0aW9uPVB1YmxpY0ZBUUV4cGxvcmVyJz5tb3ZlZDwvYT5cbiI7Cg==</File>
        <File Location="bin/fcgi-bin/faq.fpl" Permission="770" Encode="Base64">IyEvdXNyL2Jpbi9wZXJsCiMgLS0KIyBmYXEucGwgLSB0aGUgZ2xvYmFsIENHSSBoYW5kbGUgZmlsZSBmb3IgT1RPQk8KIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxMiBSb3RoZXIgT1NTIEdtYkgsIGh0dHA6Ly9vdG9iby5vcmcvCiMgLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFGRkVSTyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCiMgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgVVNBCiMgb3Igc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKIyBVc2UgLi4vLi4vIGFzIGxpYiBsb2NhdGlvbi4KdXNlIEZpbmRCaW4gcXcoJEJpbik7CnVzZSBsaWIgIiRCaW4vLi4vLi4iOwp1c2UgbGliICIkQmluLy4uLy4uL0tlcm5lbC9jcGFuLWxpYiI7CnVzZSBsaWIgIiRCaW4vLi4vLi4vQ3VzdG9tIjsKCnVzZSB2YXJzIHF3KEBJTkMpOwoKIyAwPW9mZjsxPW9uOwpteSAkRGVidWcgPSAwOwoKIyBDaGVjayBASU5DIGZvciBtb2RfcGVybCAoYWRkIGxpYiBwYXRoIGZvciAicmVxdWlyZSBtb2R1bGUiISkuCnB1c2ggKEBJTkMsICIkQmluLy4uLy4uIiwgIiRCaW4vLi4vLi4vS2VybmVsL2NwYW4tbGliIik7CgpwcmludCAibG9jYXRpb246IHB1YmxpYy5mcGw/QWN0aW9uPVB1YmxpY0ZBUUV4cGxvcmVyXG4iOwpwcmludCAiXG4iOwpwcmludCAiPGEgaHJlZj0ncHVibGljLmZwbD9BY3Rpb249UHVibGljRkFRRXhwbG9yZXInPm1vdmVkPC9hPlxuIjsK</File>
        <File Location="doc/faq-database.png" Permission="660" Encode="Base64">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</File>
        <File Location="Kernel/Config/Files/XML/FAQ.xml" Permission="660" Encode="Base64">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+CjxvdG9ib19jb25maWcgdmVyc2lvbj0iMi4wIiBpbml0PSJBcHBsaWNhdGlvbiI+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkFnZW50OjpTdGF0ZVR5cGVzIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkxpc3Qgb2Ygc3RhdGUgdHlwZXMgd2hpY2ggY2FuIGJlIHVzZWQgaW4gdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxJdGVtPmludGVybmFsPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+ZXh0ZXJuYWw8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5wdWJsaWM8L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6Q3VzdG9tZXI6OlN0YXRlVHlwZXMiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TGlzdCBvZiBzdGF0ZSB0eXBlcyB3aGljaCBjYW4gYmUgdXNlZCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkN1c3RvbWVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPEl0ZW0+ZXh0ZXJuYWw8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5wdWJsaWM8L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6UHVibGljOjpTdGF0ZVR5cGVzIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkxpc3Qgb2Ygc3RhdGUgdHlwZXMgd2hpY2ggY2FuIGJlIHVzZWQgaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6UHVibGljPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPEl0ZW0+cHVibGljPC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkFwcHJvdmFsOjpJbmNsdWRlSW50ZXJuYWwiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+SWYgYWN0aXZhdGVkLCBGQVEgYXJ0aWNsZXMgb2Ygc3RhdHVzIHR5cGUgaW50ZXJuYWwgYXJlIGFsc28gdGFrZW4gaW50byBhY2NvdW50IGZvciB0aGUgYXBwcm92YWwgcHJvY2Vzcy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OkZBUTo6QXBwcm92YWw8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkNoZWNrYm94Ij4xPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkRlZmF1bHQ6OlJvb3RDYXRlZ29yeU5hbWUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmYXVsdCBjYXRlZ29yeSBuYW1lLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6RkFRPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciPkZBUTwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpEZWZhdWx0OjpSb290Q2F0ZWdvcnlDb21tZW50IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmF1bHQgY2F0ZWdvcnkgbmFtZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OkZBUTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIj5kZWZhdWx0IGNvbW1lbnQ8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6SXRlbTo6Vm90aW5nOjpSYXRlcyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5SYXRlcyBmb3Igdm90aW5nLiBLZXkgbXVzdCBiZSBpbiBwZXJjZW50LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6RkFROjpJdGVtOjpWb3Rpbmc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMTAwIj41PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSI3NSI+NDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iNTAiPjM8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjI1Ij4yPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj4xPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6SXRlbTo6Vm90aW5nOjpTaG93IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNob3cgdm90aW5nIGluIGRlZmluZWQgaW50ZXJmYWNlcy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OkZBUTo6SXRlbTo6Vm90aW5nPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImludGVybmFsIiBUcmFuc2xhdGFibGU9IjEiPmludGVybmFsIChhZ2VudCk8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImV4dGVybmFsIiBUcmFuc2xhdGFibGU9IjEiPmV4dGVybmFsIChjdXN0b21lcik8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpFeHBsb3Jlcjo6UGF0aDo6U2hvdyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TaG93IEZBUSBwYXRoIHllcy9uby48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OkZBUTo6RXhwbG9yZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkNoZWNrYm94Ij4xPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkV4cGxvcmVyOjpJdGVtTGlzdDo6Vm90aW5nUmVzdWx0RGVjaW1hbFBsYWNlcyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWNpbWFsIHBsYWNlcyBvZiB0aGUgdm90aW5nIHJlc3VsdC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OkZBUTo6RXhwbG9yZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iXlxkKyQiPjI8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6RXhwbG9yZXI6Okl0ZW1MaXN0OjpWb3RpbmdSZXN1bHRDb2xvcnMiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+Q1NTIGNvbG9yIGZvciB0aGUgdm90aW5nIHJlc3VsdC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OkZBUTo6RXhwbG9yZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMzAiPnJlZDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iNzAiPm9yYW5nZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMTAwIj5ncmVlbjwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkV4cGxvcmVyOjpRdWlja1NlYXJjaDo6U2hvdyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5JbnRlcmZhY2VzIHdoZXJlIHRoZSBxdWljayBzZWFyY2ggc2hvdWxkIGJlIHNob3duLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6RkFROjpFeHBsb3JlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJwdWJsaWMiIFRyYW5zbGF0YWJsZT0iMSI+cHVibGljIChwdWJsaWMpPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6RXhwbG9yZXI6Okxhc3RDaGFuZ2U6OlNob3ciIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2hvdyBsYXN0IGNoYW5nZSBpdGVtcyBpbiBkZWZpbmVkIGludGVyZmFjZXMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpGQVE6OkV4cGxvcmVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImludGVybmFsIiBUcmFuc2xhdGFibGU9IjEiPmludGVybmFsIChhZ2VudCk8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9ImV4dGVybmFsIiBUcmFuc2xhdGFibGU9IjEiPmV4dGVybmFsIChjdXN0b21lcik8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9InB1YmxpYyIgVHJhbnNsYXRhYmxlPSIxIj5wdWJsaWMgKHB1YmxpYyk8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpFeHBsb3Jlcjo6TGFzdENoYW5nZTo6U2hvd1N1YkNhdGVnb3J5SXRlbXMiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2hvdyBpdGVtcyBvZiBzdWJjYXRlZ29yaWVzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6RkFROjpFeHBsb3JlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iQ2hlY2tib3giPjE8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6RXhwbG9yZXI6Okxhc3RDaGFuZ2U6OkxpbWl0IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk51bWJlciBvZiBzaG93biBpdGVtcyBpbiBsYXN0IGNoYW5nZXMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpGQVE6OkV4cGxvcmVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il5cZCskIj4zPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkV4cGxvcmVyOjpMYXN0Q3JlYXRlOjpTaG93IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNob3cgbGFzdCBjcmVhdGVkIGl0ZW1zIGluIGRlZmluZWQgaW50ZXJmYWNlcy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OkZBUTo6RXhwbG9yZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaW50ZXJuYWwiIFRyYW5zbGF0YWJsZT0iMSI+aW50ZXJuYWwgKGFnZW50KTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iZXh0ZXJuYWwiIFRyYW5zbGF0YWJsZT0iMSI+ZXh0ZXJuYWwgKGN1c3RvbWVyKTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0icHVibGljIiBUcmFuc2xhdGFibGU9IjEiPnB1YmxpYyAocHVibGljKTwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkV4cGxvcmVyOjpMYXN0Q3JlYXRlOjpTaG93U3ViQ2F0ZWdvcnlJdGVtcyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TaG93IGl0ZW1zIG9mIHN1YmNhdGVnb3JpZXMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpGQVE6OkV4cGxvcmVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJDaGVja2JveCI+MTwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpFeHBsb3Jlcjo6TGFzdENyZWF0ZTo6TGltaXQiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TnVtYmVyIG9mIHNob3duIGl0ZW1zIGluIGxhc3QgY3JlYXRlZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OkZBUTo6RXhwbG9yZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iXlxkKyQiPjM8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6RXhwbG9yZXI6OlRvcDEwOjpTaG93IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNob3cgdG9wIDEwIGl0ZW1zIGluIGRlZmluZWQgaW50ZXJmYWNlcy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OkZBUTo6RXhwbG9yZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iaW50ZXJuYWwiIFRyYW5zbGF0YWJsZT0iMSI+aW50ZXJuYWwgKGFnZW50KTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iZXh0ZXJuYWwiIFRyYW5zbGF0YWJsZT0iMSI+ZXh0ZXJuYWwgKGN1c3RvbWVyKTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0icHVibGljIiBUcmFuc2xhdGFibGU9IjEiPnB1YmxpYyAocHVibGljKTwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkV4cGxvcmVyOjpUb3AxMDo6TGltaXQiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TnVtYmVyIG9mIHNob3duIGl0ZW1zIGluIHRoZSB0b3AgMTAgZmVhdHVyZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OkZBUTo6RXhwbG9yZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iXlxkKyQiPjEwPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkV4cGxvcmVyOjpUb3AxMDo6U2hvd1N1YkNhdGVnb3J5SXRlbXMiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2hvdyBpdGVtcyBvZiBzdWJjYXRlZ29yaWVzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6RkFROjpFeHBsb3JlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iQ2hlY2tib3giPjE8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6RkFRSG9vayIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UaGUgaWRlbnRpZmllciBmb3IgYSBGQVEsIGUuZy4gRkFRIywgS0IjLCBNeUZBUSMuIFRoZSBkZWZhdWx0IGlzIEZBUSMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpGQVE8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyI+RkFRIzwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpUaXRsZVNpemUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmYXVsdCBtYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6RkFRPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il5bMC05XXsxLDN9JCI+NTA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6RGVmYXVsdDo6U3RhdGUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmYXVsdCBzdGF0ZSBmb3IgRkFRIGVudHJ5LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6RkFRPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTZWxlY3QiIFNlbGVjdGVkSUQ9ImludGVybmFsIChhZ2VudCkiPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJpbnRlcm5hbCAoYWdlbnQpIiBUcmFuc2xhdGFibGU9IjEiPmludGVybmFsIChhZ2VudCk8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9ImV4dGVybmFsIChjdXN0b21lcikiIFRyYW5zbGF0YWJsZT0iMSI+ZXh0ZXJuYWwgKGN1c3RvbWVyKTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0icHVibGljIChhbGwpIiBUcmFuc2xhdGFibGU9IjEiPnB1YmxpYyAoYWxsKTwvSXRlbT4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkFwcHJvdmFsUmVxdWlyZWQiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TmV3IEZBUSBhcnRpY2xlcyBuZWVkIGFwcHJvdmFsIGJlZm9yZSB0aGV5IGdldCBwdWJsaXNoZWQuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpGQVE6OkFwcHJvdmFsPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJDaGVja2JveCI+MDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpBcHByb3ZhbEdyb3VwIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkdyb3VwIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6RkFROjpBcHByb3ZhbDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIj51c2VyczwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpBcHByb3ZhbFF1ZXVlIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlF1ZXVlIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6RkFROjpBcHByb3ZhbDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIj5GQVFfQXBwcm92YWw8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6QXBwcm92YWxUaWNrZXRTdWJqZWN0IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlRpY2tldCBzdWJqZWN0IGZvciBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZS4gUGVybWl0dGVkIG5vdGlmaWNhdGlvbiB0YWdzIGFyZSAmbHQ7T1RPQk9fRkFRX05VTUJFUiZndDssICZsdDtPVE9CT19GQVFfQ0FURUdPUllJRCZndDssICZsdDtPVE9CT19GQVFfSVRFTUlEPiZndDsgJmx0O09UT0JPX0ZBUV9USVRMRSZndDsgYW5kICZsdDtPVE9CT19GQVFfU1RBVEVJRCZndDsuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpGQVE6OkFwcHJvdmFsPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciPkZBUSBhcHByb3ZhbCByZXF1aXJlZCBmb3IgRkFRIyAmbHQ7T1RPQk9fRkFRX05VTUJFUiZndDs8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6QXBwcm92YWxUaWNrZXRCb2R5IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlRpY2tldCBib2R5IGZvciBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OkZBUTo6QXBwcm92YWw8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlRleHRhcmVhIj5IaSwKCmEgbmV3IEZBUSBhcnRpY2xlIG5lZWRzIHlvdXIgYXBwcm92YWwgYmVmb3JlIGl0IGNhbiBiZSBwdWJsaXNoZWQuCgogIEZBUSMgICA6ICZsdDtPVE9CT19GQVFfTlVNQkVSJmd0OwogIFRpdGxlICA6ICZsdDtPVE9CT19GQVFfVElUTEUmZ3Q7CiAgQXV0aG9yIDogJmx0O09UT0JPX0ZBUV9BVVRIT1ImZ3Q7CiAgU3RhdGUgIDogJmx0O09UT0JPX0ZBUV9TVEFURSZndDsKCklmIHlvdSB3YW50IHRvIGRvIHRoaXMsIGNsaWNrIG9uIHRoaXMgbGluazoKCiZsdDtPVE9CT19DT05GSUdfSHR0cFR5cGUmZ3Q7Oi8vJmx0O09UT0JPX0NPTkZJR19GUUROJmd0Oy8mbHQ7T1RPQk9fQ09ORklHX1NjcmlwdEFsaWFzJmd0O2luZGV4LnBsP0FjdGlvbj1BZ2VudEZBUUVkaXQ7SXRlbUlEPSZsdDtPVE9CT19GQVFfSVRFTUlEJmd0OwoKWW91ciBPVE9CTyBOb3RpZmljYXRpb24gTWFzdGVyCiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpBcHByb3ZhbFRpY2tldFByaW9yaXR5IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmF1bHQgcHJpb3JpdHkgb2YgdGlja2V0cyBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OkZBUTo6QXBwcm92YWw8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkVudGl0eSIgVmFsdWVFbnRpdHlUeXBlPSJQcmlvcml0eSIgVmFsdWVSZWdleD0iIj4zIG5vcm1hbDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpBcHByb3ZhbFRpY2tldERlZmF1bHRTdGF0ZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZhdWx0IHN0YXRlIG9mIHRpY2tldHMgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpGQVE6OkFwcHJvdmFsPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJFbnRpdHkiIFZhbHVlRW50aXR5VHlwZT0iU3RhdGUiIFZhbHVlUmVnZXg9IiI+bmV3PC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkFwcHJvdmFsVGlja2V0VHlwZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZhdWx0IHR5cGUgb2YgdGlja2V0cyBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OkZBUTo6QXBwcm92YWw8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkVudGl0eSIgVmFsdWVFbnRpdHlUeXBlPSJUeXBlIj5VbmNsYXNzaWZpZWQ8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6SXRlbTo6RmllbGQxIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluaXRpb24gb2YgRkFRIGl0ZW0gZnJlZSB0ZXh0IGZpZWxkLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6RkFROjpJdGVtPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlNob3ciPnB1YmxpYzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2FwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5TeW1wdG9tPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvIj4xMDA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpJdGVtOjpGaWVsZDIiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5pdGlvbiBvZiBGQVEgaXRlbSBmcmVlIHRleHQgZmllbGQuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpGQVE6Okl0ZW08L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iU2hvdyI+cHVibGljPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDYXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPlByb2JsZW08L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlByaW8iPjIwMDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6Okl0ZW06OkZpZWxkMyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbml0aW9uIG9mIEZBUSBpdGVtIGZyZWUgdGV4dCBmaWVsZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OkZBUTo6SXRlbTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJTaG93Ij5wdWJsaWM8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNhcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+U29sdXRpb248L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlByaW8iPjMwMDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6Okl0ZW06OkZpZWxkNCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbml0aW9uIG9mIEZBUSBpdGVtIGZyZWUgdGV4dCBmaWVsZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OkZBUTo6SXRlbTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJTaG93Ij48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNhcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+RmllbGQ0PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvIj40MDA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpJdGVtOjpGaWVsZDUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5pdGlvbiBvZiBGQVEgaXRlbSBmcmVlIHRleHQgZmllbGQuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpGQVE6Okl0ZW08L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iU2hvdyI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDYXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPkZpZWxkNTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUHJpbyI+NTAwPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6SXRlbTo6RmllbGQ2IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluaXRpb24gb2YgRkFRIGl0ZW0gZnJlZSB0ZXh0IGZpZWxkLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6RkFROjpJdGVtPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlNob3ciPmludGVybmFsPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDYXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPkNvbW1lbnQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlByaW8iPjYwMDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJMaW5rT2JqZWN0OjpQb3NzaWJsZUxpbmsjIyM4MzAxIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlRoaXMgc2V0dGluZyBkZWZpbmVzIHRoYXQgYSAnRkFRJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyICdGQVEnIG9iamVjdHMgdXNpbmcgdGhlICdOb3JtYWwnIGxpbmsgdHlwZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OkxpbmtPYmplY3Q8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iT2JqZWN0MSI+RkFRPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJPYmplY3QyIj5GQVE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlR5cGUiPk5vcm1hbDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJMaW5rT2JqZWN0OjpQb3NzaWJsZUxpbmsjIyM4MzAyIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlRoaXMgc2V0dGluZyBkZWZpbmVzIHRoYXQgYSAnRkFRJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyICdGQVEnIG9iamVjdHMgdXNpbmcgdGhlICdQYXJlbnRDaGlsZCcgbGluayB0eXBlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6TGlua09iamVjdDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJPYmplY3QxIj5GQVE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik9iamVjdDIiPkZBUTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVHlwZSI+UGFyZW50Q2hpbGQ8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iTGlua09iamVjdDo6UG9zc2libGVMaW5rIyMjODMwMyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgJ0ZBUScgb2JqZWN0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciAnVGlja2V0JyBvYmplY3RzIHVzaW5nIHRoZSAnTm9ybWFsJyBsaW5rIHR5cGUuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpMaW5rT2JqZWN0PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik9iamVjdDEiPkZBUTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iT2JqZWN0MiI+VGlja2V0PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUeXBlIj5Ob3JtYWw8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iTGlua09iamVjdDo6UG9zc2libGVMaW5rIyMjODMwNCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgJ0ZBUScgb2JqZWN0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciAnVGlja2V0JyBvYmplY3RzIHVzaW5nIHRoZSAnUGFyZW50Q2hpbGQnIGxpbmsgdHlwZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OkxpbmtPYmplY3Q8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iT2JqZWN0MSI+RkFRPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJPYmplY3QyIj5UaWNrZXQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlR5cGUiPlBhcmVudENoaWxkPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZ2VudEZBUUV4cGxvcmVyIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPkZBUSBBcmVhLjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhck5hbWUiPkZBUTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPkZBUTwvSXRlbT4KICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJMb2FkZXI6Ok1vZHVsZTo6QWdlbnRGQVFFeHBsb3JlciMjIzAwMi1GQVEiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TG9hZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNTUyI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5GQVEuQWdlbnQuRGV0YWlsLmNzczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJKYXZhU2NyaXB0Ij4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPkZBUS5BZ2VudC5GQVEuanM8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TmF2aWdhdGlvbiMjI0FnZW50RkFRRXhwbG9yZXIjIyMwMDItRkFRIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk1haW4gbWVudSBpdGVtIHJlZ2lzdHJhdGlvbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uOjpNYWluTWVudTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxEZWZhdWx0SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kTmF2aWdhdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9EZWZhdWx0SXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+RkFRIEFyZWE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmFtZSIgVHJhbnNsYXRhYmxlPSIxIj5GQVE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGluayI+QWN0aW9uPUFnZW50RkFRRXhwbG9yZXI8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGlua09wdGlvbiI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhciI+RkFRPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlR5cGUiPk1lbnU8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQmxvY2siPkl0ZW1BcmVhPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjY2Vzc0tleSI+ZjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvIj4zNTA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5GQVEgRXhwbG9yZXI8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmFtZSIgVHJhbnNsYXRhYmxlPSIxIj5FeHBsb3JlcjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rIj5BY3Rpb249QWdlbnRGQVFFeHBsb3JlcjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rT3B0aW9uIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyIj5GQVE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVHlwZSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkJsb2NrIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWNjZXNzS2V5Ij54PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlByaW8iPjkxMDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkN1c3RvbWVyRnJvbnRlbmQ6Ok1vZHVsZSMjI0N1c3RvbWVyRkFRRXhwbG9yZXIiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGN1c3RvbWVyIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpDdXN0b21lcjo6TW9kdWxlUmVnaXN0cmF0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZFJlZ2lzdHJhdGlvbiI+CiAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+Q3VzdG9tZXIgRkFRLjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhck5hbWUiPkZBUTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIj48L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iTG9hZGVyOjpNb2R1bGU6OkN1c3RvbWVyRkFRRXhwbG9yZXIjIyMwMDItRkFRIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkxvYWRlciBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkN1c3RvbWVyOjpNb2R1bGVSZWdpc3RyYXRpb246OkxvYWRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDU1MiPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+RkFRLkN1c3RvbWVyLkRldGFpbC5jc3M8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPkZBUS5DdXN0b21lci5EZWZhdWx0LmNzczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+RkFRLldpZGdldC5jc3M8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSmF2YVNjcmlwdCI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5GQVEuQ3VzdG9tZXIuRkFRWm9vbS5qczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+Q29yZS5DdXN0b21lci5TZWFyY2guanM8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJDdXN0b21lckZyb250ZW5kOjpOYXZpZ2F0aW9uIyMjQ3VzdG9tZXJGQVFFeHBsb3JlciMjIzAwMi1GQVEiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TWFpbiBtZW51IGl0ZW0gcmVnaXN0cmF0aW9uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkN1c3RvbWVyOjpNb2R1bGVSZWdpc3RyYXRpb246Ok1haW5NZW51PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPERlZmF1bHRJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmROYXZpZ2F0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0RlZmF1bHRJdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPkZBUTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYW1lIiBUcmFuc2xhdGFibGU9IjEiPkZBUTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rIj5BY3Rpb249Q3VzdG9tZXJGQVFFeHBsb3JlcjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rT3B0aW9uIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyIj5GQVE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVHlwZSI+TWVudTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJCbG9jayI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjY2Vzc0tleSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlByaW8iPjcwMDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJzdmdJY29uIj52YXIvaHR0cGQvaHRkb2NzL3NraW5zL0N1c3RvbWVyL2RlZmF1bHQvaW1nL2ZhcS5zdmc8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPkZBUSBFeHBsb3JlcjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYW1lIiBUcmFuc2xhdGFibGU9IjEiPkZBUSBFeHBsb3JlcjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rIj5BY3Rpb249Q3VzdG9tZXJGQVFFeHBsb3JlcjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rT3B0aW9uIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyIj5GQVE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVHlwZSI+U3VibWVudTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJCbG9jayI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjY2Vzc0tleSI+eDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvIj43MTA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkZyb250ZW5kOjpDdXN0b21lckZBUUV4cGxvcmVyIyMjU2VhcmNoTGltaXQiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkN1c3RvbWVyOjpWaWV3OjpGQVFFeHBsb3JlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSJeWzAtOV17MSw4fSQiPjIwMDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpGcm9udGVuZDo6Q3VzdG9tZXJGQVFFeHBsb3JlciMjI1NlYXJjaFBhZ2VTaG93biIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5OdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6Q3VzdG9tZXI6OlZpZXc6OkZBUUV4cGxvcmVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il5bMC05XXsxLDN9JCI+MjA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6RnJvbnRlbmQ6OkN1c3RvbWVyRkFRRXhwbG9yZXIjIyNTb3J0Qnk6OkRlZmF1bHQiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6Q3VzdG9tZXI6OlZpZXc6OkZBUUV4cGxvcmVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTZWxlY3QiIFNlbGVjdGVkSUQ9IkZBUUlEIj4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+VGl0bGU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IkZBUUlEIiBUcmFuc2xhdGFibGU9IjEiPk51bWJlcjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iQ2F0ZWdvcnkiIFRyYW5zbGF0YWJsZT0iMSI+Q2F0ZWdvcnk8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9Ikxhbmd1YWdlIiBUcmFuc2xhdGFibGU9IjEiPkxhbmd1YWdlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJTdGF0ZSIgVHJhbnNsYXRhYmxlPSIxIj5TdGF0ZTwvSXRlbT4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkZyb250ZW5kOjpDdXN0b21lckZBUUV4cGxvcmVyIyMjT3JkZXI6OkRlZmF1bHQiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6Q3VzdG9tZXI6OlZpZXc6OkZBUUV4cGxvcmVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTZWxlY3QiIFNlbGVjdGVkSUQ9IkRvd24iPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJEb3duIiBUcmFuc2xhdGFibGU9IjEiPkRvd248L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IlVwIiBUcmFuc2xhdGFibGU9IjEiPlVwPC9JdGVtPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6RnJvbnRlbmQ6OkN1c3RvbWVyRkFRRXhwbG9yZXIjIyNUaXRsZVNpemUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIEV4cGxvcmVyIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6Q3VzdG9tZXI6OlZpZXc6OkZBUUV4cGxvcmVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il5bMC05XXsxLDN9JCI+NTA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlB1YmxpY0Zyb250ZW5kOjpDb21tb25QYXJhbSMjI0FjdGlvbiIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZhdWx0IHZhbHVlIGZvciB0aGUgQWN0aW9uIHBhcmFtZXRlciBmb3IgdGhlIHB1YmxpYyBmcm9udGVuZC4gVGhlIEFjdGlvbiBwYXJhbWV0ZXIgaXMgdXNlZCBpbiB0aGUgc2NyaXB0cyBvZiB0aGUgc3lzdGVtLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OlB1YmxpYzwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIj5QdWJsaWNGQVFFeHBsb3JlcjwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iUHVibGljRnJvbnRlbmQ6Ok1vZHVsZSMjI1B1YmxpY0ZBUUV4cGxvcmVyIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBwdWJsaWMgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OlB1YmxpYzo6TW9kdWxlUmVnaXN0cmF0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZFJlZ2lzdHJhdGlvbiI+CiAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+UHVibGljIEZBUS48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXJOYW1lIj5GQVE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSI+PC9JdGVtPgogICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkxvYWRlcjo6TW9kdWxlOjpQdWJsaWNGQVFFeHBsb3JlciMjIzAwMi1GQVEiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBwdWJsaWMgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OlB1YmxpYzo6TW9kdWxlUmVnaXN0cmF0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNTUyI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5GQVEuQ3VzdG9tZXIuRGV0YWlsLmNzczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+RkFRLkN1c3RvbWVyLkRlZmF1bHQuY3NzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5GQVEuV2lkZ2V0LmNzczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJKYXZhU2NyaXB0Ij4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPkZBUS5DdXN0b21lci5GQVFab29tLmpzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5Db3JlLkN1c3RvbWVyLlNlYXJjaC5qczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlB1YmxpY0Zyb250ZW5kOjpOYXZpZ2F0aW9uIyMjUHVibGljRkFRRXhwbG9yZXIjIyMwMDItRkFRIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk1haW4gbWVudSBpdGVtIHJlZ2lzdHJhdGlvbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpQdWJsaWM6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxEZWZhdWx0SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kTmF2aWdhdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9EZWZhdWx0SXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5GQVEgQXJlYTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYW1lIiBUcmFuc2xhdGFibGU9IjEiPkZBUTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rIj5BY3Rpb249UHVibGljRkFRRXhwbG9yZXI8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGlua09wdGlvbiI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhciI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlR5cGUiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJCbG9jayI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjY2Vzc0tleSI+eDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvIj40MDA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkZyb250ZW5kOjpQdWJsaWNGQVFFeHBsb3JlciMjI1NlYXJjaExpbWl0IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk1heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6UHVibGljOjpWaWV3OjpGQVFFeHBsb3JlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSJeWzAtOV17MSw4fSQiPjIwMDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpGcm9udGVuZDo6UHVibGljRkFRRXhwbG9yZXIjIyNTZWFyY2hQYWdlU2hvd24iIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgcHVibGljIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpQdWJsaWM6OlZpZXc6OkZBUUV4cGxvcmVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il5bMC05XXsxLDN9JCI+NDA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6RnJvbnRlbmQ6OlB1YmxpY0ZBUUV4cGxvcmVyIyMjU29ydEJ5OjpEZWZhdWx0IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgcHVibGljIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpQdWJsaWM6OlZpZXc6OkZBUUV4cGxvcmVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTZWxlY3QiIFNlbGVjdGVkSUQ9IkZBUUlEIj4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+VGl0bGU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IkZBUUlEIiBUcmFuc2xhdGFibGU9IjEiPk51bWJlcjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iQ2F0ZWdvcnkiIFRyYW5zbGF0YWJsZT0iMSI+Q2F0ZWdvcnk8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9Ikxhbmd1YWdlIiBUcmFuc2xhdGFibGU9IjEiPkxhbmd1YWdlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJTdGF0ZSIgVHJhbnNsYXRhYmxlPSIxIj5TdGF0ZTwvSXRlbT4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkZyb250ZW5kOjpQdWJsaWNGQVFFeHBsb3JlciMjI09yZGVyOjpEZWZhdWx0IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpQdWJsaWM6OlZpZXc6OkZBUUV4cGxvcmVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTZWxlY3QiIFNlbGVjdGVkSUQ9IkRvd24iPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJEb3duIiBUcmFuc2xhdGFibGU9IjEiPkRvd248L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IlVwIiBUcmFuc2xhdGFibGU9IjEiPlVwPC9JdGVtPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6RnJvbnRlbmQ6OlB1YmxpY0ZBUUV4cGxvcmVyIyMjVGl0bGVTaXplIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjAiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk1heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBFeHBsb3JlciBpbiB0aGUgcHVibGljIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpQdWJsaWM6OlZpZXc6OkZBUUV4cGxvcmVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il5bMC05XXsxLDN9JCI+NTA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlB1YmxpY0Zyb250ZW5kOjpNb2R1bGUjIyNQdWJsaWNGQVFSU1MiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIHB1YmxpYyBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6UHVibGljOjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kUmVnaXN0cmF0aW9uIj4KICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5QdWJsaWMgRkFRLjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhck5hbWUiPkZBUTwvSXRlbT4KICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJMb2FkZXI6Ok1vZHVsZTo6UHVibGljRkFRUlNTIyMjMDAyLUZBUSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Mb2FkZXIgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIHB1YmxpYyBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6UHVibGljOjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6Okl0ZW06OkhUTUwiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2hvdyBGQVEgQXJ0aWNsZSB3aXRoIEhUTUwuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpGQVE6Okl0ZW08L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkNoZWNrYm94Ij4xPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6SGVhZGVyTWV0YU1vZHVsZSMjIzMtRkFRU2VhcmNoIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk1vZHVsZSB0byBnZW5lcmF0ZSBodG1sIE9wZW5TZWFyY2ggcHJvZmlsZSBmb3Igc2hvcnQgRkFRIHNlYXJjaC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6T3V0cHV0OjpIVE1MOjpIZWFkZXJNZXRhOjpBZ2VudEZBUVNlYXJjaDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0aW9uIj5BZ2VudEZBUVNlYXJjaDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJDdXN0b21lckZyb250ZW5kOjpIZWFkZXJNZXRhTW9kdWxlIyMjMy1GQVFTZWFyY2giIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TW9kdWxlIHRvIGdlbmVyYXRlIEhUTUwgT3BlblNlYXJjaCBwcm9maWxlIGZvciBzaG9ydCBGQVEgc2VhcmNoIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6Q3VzdG9tZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6SGVhZGVyTWV0YTo6Q3VzdG9tZXJGQVFTZWFyY2g8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjdGlvbiI+Q3VzdG9tZXJGQVFTZWFyY2g8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iUHVibGljRnJvbnRlbmQ6OkhlYWRlck1ldGFNb2R1bGUjIyMzLUZBUVNlYXJjaCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Nb2R1bGUgdG8gZ2VuZXJhdGUgSFRNTCBPcGVuU2VhcmNoIHByb2ZpbGUgZm9yIHNob3J0IEZBUSBzZWFyY2ggaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6UHVibGljPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6OkhlYWRlck1ldGE6OlB1YmxpY0ZBUVNlYXJjaDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0aW9uIj5QdWJsaWNGQVFTZWFyY2g8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok91dHB1dDo6RmlsdGVyRWxlbWVudFBvc3QjIyNGQVEiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB3aGVyZSB0aGUgJ0luc2VydCBGQVEnIGxpbmsgd2lsbCBiZSBkaXNwbGF5ZWQuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QmFzZTo6T3V0cHV0RmlsdGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZpbHRlckVsZW1lbnRQb3N0OjpGQVE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlYnVnIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUZW1wbGF0ZXMiPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFnZW50VGlja2V0Q2xvc2UiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWdlbnRUaWNrZXRDb21wb3NlIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFnZW50VGlja2V0RW1haWwiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWdlbnRUaWNrZXRFbWFpbE91dGJvdW5kIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFnZW50VGlja2V0Rm9yd2FyZCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBZ2VudFRpY2tldEZyZWVUZXh0Ij4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFnZW50VGlja2V0Tm90ZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBZ2VudFRpY2tldE93bmVyIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFnZW50VGlja2V0UGVuZGluZyI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBZ2VudFRpY2tldFBob25lIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFnZW50VGlja2V0UHJpb3JpdHkiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWdlbnRUaWNrZXRSZXNwb25zaWJsZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok91dHB1dDo6T3V0cHV0RmlsdGVyVGV4dEF1dG9MaW5rIyMjRkFRIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjAiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkEgZmlsdGVyIGZvciBIVE1MIG91dHB1dCB0byBhZGQgbGlua3MgYmVoaW5kIGEgZGVmaW5lZCBzdHJpbmcuIFRoZSBlbGVtZW50IEltYWdlIGFsbG93cyB0d28gaW5wdXQga2luZHMuIEZpcnN0IHRoZSBuYW1lIG9mIGFuIGltYWdlIChlLmcuIGZhcS5wbmcpLiBJbiB0aGlzIGNhc2UgdGhlIE9UT0JPIGltYWdlIHBhdGggd2lsbCBiZSB1c2VkLiBUaGUgc2Vjb25kIHBvc3NpYmlsaXR5IGlzIHRvIGluc2VydCB0aGUgbGluayB0byB0aGUgaW1hZ2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QmFzZTo6T3V0cHV0RmlsdGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlJlZ0V4cCI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT4oRkFRKVsjXHNdKj8xKFxkezR9KTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJVUkwxIj4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5GQVE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVVJMIj4vb3RvYm8vaW5kZXgucGw/QWN0aW9uPUFnZW50RkFRWm9vbTtJdGVtSUQ9Jmx0O01BVENIMiZndDs8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSW1hZ2UiPi9vdG9iby13ZWIvc2tpbnMvQWdlbnQvZGVmYXVsdC9pbWcvaGVscC1zbWFsbC5wbmc8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGFyZ2V0Ij5fYmxhbms8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZ2VudEZBUUFkZCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kUmVnaXN0cmF0aW9uIj4KICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5GQVEgQXJlYS48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXJOYW1lIj5GQVE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSIgVHJhbnNsYXRhYmxlPSIxIj5GQVE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iTG9hZGVyOjpNb2R1bGU6OkFnZW50RkFRQWRkIyMjMDAyLUZBUSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Mb2FkZXIgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uOjpMb2FkZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ1NTIj4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPkZBUS5BZ2VudC5EZXRhaWwuY3NzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkphdmFTY3JpcHQiPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+RkFRLkFnZW50LkZBUS5qczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpOYXZpZ2F0aW9uIyMjQWdlbnRGQVFBZGQjIyMwMDItRkFRIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk1haW4gbWVudSBpdGVtIHJlZ2lzdHJhdGlvbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uOjpNYWluTWVudTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxEZWZhdWx0SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kTmF2aWdhdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9EZWZhdWx0SXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+TmV3IEZBUSBBcnRpY2xlLjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYW1lIiBUcmFuc2xhdGFibGU9IjEiPk5ldzwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rIj5BY3Rpb249QWdlbnRGQVFBZGQ8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGlua09wdGlvbiI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhciI+RkFRPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlR5cGUiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJCbG9jayI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjY2Vzc0tleSI+YjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvIj45MjA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRGQVFFZGl0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPkZBUSBFZGl0LjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPkVkaXQ8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXJOYW1lIj5GQVE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iTG9hZGVyOjpNb2R1bGU6OkFnZW50RkFRRWRpdCMjIzAwMi1GQVEiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TG9hZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNTUyI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5GQVEuQWdlbnQuRGV0YWlsLmNzczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJKYXZhU2NyaXB0Ij4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPkZBUS5BZ2VudC5GQVEuanM8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRGQVFMYW5ndWFnZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kUmVnaXN0cmF0aW9uIj4KICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPmFkbWluPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPkZBUSBBcmVhLjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPkZBUTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhck5hbWUiPkZBUTwvSXRlbT4KICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJMb2FkZXI6Ok1vZHVsZTo6QWdlbnRGQVFMYW5ndWFnZSMjIzAwMi1GQVEiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TG9hZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkphdmFTY3JpcHQiPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+RkFRLkFnZW50LkNvbmZpcm1hdGlvbkRpYWxvZy5qczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpOYXZpZ2F0aW9uIyMjQWdlbnRGQVFMYW5ndWFnZSMjIzAwMi1GQVEiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TWFpbiBtZW51IGl0ZW0gcmVnaXN0cmF0aW9uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb246Ok1haW5NZW51PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPERlZmF1bHRJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmROYXZpZ2F0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0RlZmF1bHRJdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPmFkbWluPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPkxhbmd1YWdlIE1hbmFnZW1lbnQuPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hbWUiIFRyYW5zbGF0YWJsZT0iMSI+TGFuZ3VhZ2UgTWFuYWdlbWVudDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rIj5BY3Rpb249QWdlbnRGQVFMYW5ndWFnZTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rT3B0aW9uIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyIj5GQVE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVHlwZSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkJsb2NrIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWNjZXNzS2V5Ij5sPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlByaW8iPjk0MDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZ2VudEZBUUNhdGVnb3J5IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+YWRtaW48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+RkFRIEFyZWEuPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+RkFRPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+RkFRPC9JdGVtPgogICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkxvYWRlcjo6TW9kdWxlOjpBZ2VudEZBUUNhdGVnb3J5IyMjMDAyLUZBUSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Mb2FkZXIgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uOjpMb2FkZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSmF2YVNjcmlwdCI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5GQVEuQWdlbnQuQ29uZmlybWF0aW9uRGlhbG9nLmpzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok5hdmlnYXRpb24jIyNBZ2VudEZBUUNhdGVnb3J5IyMjMDAyLUZBUSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5NYWluIG1lbnUgaXRlbSByZWdpc3RyYXRpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TWFpbk1lbnU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8RGVmYXVsdEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZE5hdmlnYXRpb24iPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvRGVmYXVsdEl0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+YWRtaW48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+Q2F0ZWdvcnkgTWFuYWdlbWVudC48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmFtZSIgVHJhbnNsYXRhYmxlPSIxIj5DYXRlZ29yeSBNYW5hZ2VtZW50PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbmsiPkFjdGlvbj1BZ2VudEZBUUNhdGVnb3J5PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbmtPcHRpb24iPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXIiPkZBUTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUeXBlIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQmxvY2siPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY2Nlc3NLZXkiPmc8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUHJpbyI+OTUwPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50RkFRU2VhcmNoIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPkZBUSBBcmVhLjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPkZBUTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhck5hbWUiPkZBUTwvSXRlbT4KICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJMb2FkZXI6Ok1vZHVsZTo6QWdlbnRGQVFTZWFyY2gjIyMwMDItRkFRIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkxvYWRlciBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb246OkxvYWRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJKYXZhU2NyaXB0Ij4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPkZBUS5BZ2VudC5GQVEuanM8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TmF2aWdhdGlvbiMjI0FnZW50RkFRU2VhcmNoIyMjMDAyLUZBUSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5NYWluIG1lbnUgaXRlbSByZWdpc3RyYXRpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TWFpbk1lbnU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8RGVmYXVsdEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZE5hdmlnYXRpb24iPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvRGVmYXVsdEl0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPlNlYXJjaCBGQVEuPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hbWUiIFRyYW5zbGF0YWJsZT0iMSI+U2VhcmNoPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbmsiPkFjdGlvbj1BZ2VudEZBUVNlYXJjaDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rT3B0aW9uIj5vbmNsaWNrPSJDb3JlLkFnZW50LlNlYXJjaC5PcGVuU2VhcmNoRGlhbG9nKCdBZ2VudEZBUVNlYXJjaCcpOyBpZiAoZXZlbnQuc3RvcFByb3BhZ2F0aW9uKSB7IGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyB9IGVsc2UgeyB3aW5kb3cuZXZlbnQuY2FuY2VsQnViYmxlID0gdHJ1ZTsgfSByZXR1cm4gZmFsc2U7IjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXIiPkZBUTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUeXBlIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQmxvY2siPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY2Nlc3NLZXkiPno8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUHJpbyI+OTYwPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50RkFRU2VhcmNoU21hbGwiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZFJlZ2lzdHJhdGlvbiI+CiAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+U2VhcmNoIEZBUSBTbWFsbC48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSIgVHJhbnNsYXRhYmxlPSIxIj5GQVE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXJOYW1lIj5GQVE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok5hdmlnYXRpb24jIyNBZ2VudEZBUVNlYXJjaFNtYWxsIyMjMDAyLUZBUSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5NYWluIG1lbnUgaXRlbSByZWdpc3RyYXRpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TWFpbk1lbnU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8RGVmYXVsdEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZE5hdmlnYXRpb24iPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvRGVmYXVsdEl0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpTZWFyY2gjIyNGQVEiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RkFRIHNlYXJjaCBiYWNrZW5kIHJvdXRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb246Ok1haW5NZW51OjpTZWFyY2g8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iXig/OkFnZW50fEFkbWluKUZBUSI+QWN0aW9uPUFnZW50RkFRU2VhcmNoO1N1YmFjdGlvbj1BSkFYPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3IyMjU21hbGwiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIEZBUSBsaXN0LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpGQVFPdmVydmlldzwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6T3V0cHV0OjpIVE1MOjpGQVFPdmVydmlldzo6U21hbGw8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hbWUiIFRyYW5zbGF0YWJsZT0iMSI+U21hbGw8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hbWVTaG9ydCIgVHJhbnNsYXRhYmxlPSIxIj5TPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6RnJvbnRlbmQ6OkFnZW50RkFRU2VhcmNoIyMjU2hvd0NvbHVtbnMiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgRkFRIHNlYXJjaC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6RkFRU2VhcmNoPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDYXRlZ29yeSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGFuZ3VhZ2UiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlN0YXRlIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJWYWxpZCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2hhbmdlZCI+MTwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkZyb250ZW5kOjpBZ2VudEZBUVNlYXJjaCMjI1NvcnRCeTo6RGVmYXVsdCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIGEgRkFRIHNlYXJjaCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpGQVFTZWFyY2g8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlNlbGVjdCIgU2VsZWN0ZWRJRD0iRkFRSUQiPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJUaXRsZSIgVHJhbnNsYXRhYmxlPSIxIj5UaXRsZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iRkFRSUQiIFRyYW5zbGF0YWJsZT0iMSI+TnVtYmVyPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJDYXRlZ29yeSIgVHJhbnNsYXRhYmxlPSIxIj5DYXRlZ29yeTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iTGFuZ3VhZ2UiIFRyYW5zbGF0YWJsZT0iMSI+TGFuZ3VhZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IlN0YXRlIiBUcmFuc2xhdGFibGU9IjEiPlN0YXRlPC9JdGVtPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6RnJvbnRlbmQ6OkFnZW50RkFRU2VhcmNoIyMjT3JkZXI6OkRlZmF1bHQiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpGQVFTZWFyY2g8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlNlbGVjdCIgU2VsZWN0ZWRJRD0iRG93biI+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IkRvd24iIFRyYW5zbGF0YWJsZT0iMSI+RG93bjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iVXAiIFRyYW5zbGF0YWJsZT0iMSI+VXA8L0l0ZW0+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpGcm9udGVuZDo6QWdlbnRGQVFTZWFyY2gjIyNTZWFyY2hMaW1pdCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5NYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSByZXN1bHQgb2YgYSBzZWFyY2ggaW4gdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6RkFRU2VhcmNoPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il5bMC05XXsxLDh9JCI+MjAwPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkZyb250ZW5kOjpBZ2VudEZBUUV4cGxvcmVyIyMjU2hvd0NvbHVtbnMiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgRkFRIEV4cGxvcmVyLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpGQVFFeHBsb3JlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2F0ZWdvcnkiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikxhbmd1YWdlIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJTdGF0ZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVmFsaWQiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZWQiPjA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpGcm9udGVuZDo6QWdlbnRGQVFFeHBsb3JlciMjI1NvcnRCeTo6RGVmYXVsdCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIHRoZSBGQVEgRXhwbG9yZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6RkFRRXhwbG9yZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlNlbGVjdCIgU2VsZWN0ZWRJRD0iRkFRSUQiPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJUaXRsZSIgVHJhbnNsYXRhYmxlPSIxIj5UaXRsZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iRkFRSUQiIFRyYW5zbGF0YWJsZT0iMSI+TnVtYmVyPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJDYXRlZ29yeSIgVHJhbnNsYXRhYmxlPSIxIj5DYXRlZ29yeTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iTGFuZ3VhZ2UiIFRyYW5zbGF0YWJsZT0iMSI+TGFuZ3VhZ2U8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IlN0YXRlIiBUcmFuc2xhdGFibGU9IjEiPlN0YXRlPC9JdGVtPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6RnJvbnRlbmQ6OkFnZW50RkFRRXhwbG9yZXIjIyNPcmRlcjo6RGVmYXVsdCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6RkFRRXhwbG9yZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlNlbGVjdCIgU2VsZWN0ZWRJRD0iRG93biI+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IkRvd24iIFRyYW5zbGF0YWJsZT0iMSI+RG93bjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iVXAiIFRyYW5zbGF0YWJsZT0iMSI+VXA8L0l0ZW0+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpGcm9udGVuZDo6QWdlbnRGQVFFeHBsb3JlciMjI1NlYXJjaExpbWl0IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk1heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6RkFRRXhwbG9yZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iXlswLTldezEsOH0kIj4yMDA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6RnJvbnRlbmQ6OkFnZW50RkFRRXhwbG9yZXIjIyNUaXRsZVNpemUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIEV4cGxvcmVyIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OkZBUUV4cGxvcmVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il5bMC05XXsxLDN9JCI+NTA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6RnJvbnRlbmQ6OkFnZW50RkFRRXhwbG9yZXIjIyNTaG93SW52YWxpZEZBUUl0ZW1zIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNob3cgaW52YWxpZCBpdGVtcyBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpGQVFFeHBsb3JlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iQ2hlY2tib3giPjA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlByZWZlcmVuY2VzR3JvdXBzIyMjRkFRT3ZlcnZpZXdTbWFsbFBhZ2VTaG93biIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5QYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBGQVEgaXRlbXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgRkFRIG92ZXJ2aWV3LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpQcmVmZXJlbmNlczwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6T3V0cHV0OjpIVE1MOjpQcmVmZXJlbmNlczo6R2VuZXJpYzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUHJlZmVyZW5jZUdyb3VwIj5NaXNjZWxsYW5lb3VzPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMYWJlbCIgVHJhbnNsYXRhYmxlPSIxIj5GQVEgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzYyIgVHJhbnNsYXRhYmxlPSIxIj5TZWxlY3QgaG93IG1hbnkgaXRlbXMgc2hvdWxkIGJlIHNob3duIGluIE92ZXJ2aWV3ICJTbWFsbCIgYnkgZGVmYXVsdC48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRhdGEiPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEwIj4xMDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxNSI+MTU8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMjAiPjIwPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjI1Ij4yNTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIzMCI+MzA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMzUiPjM1PC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGF0YVNlbGVjdGVkIj4yNTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUHJlZktleSI+VXNlckZBUU92ZXJ2aWV3U21hbGxQYWdlU2hvd248L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlByaW8iPjgwMDA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjdGl2ZSI+MDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRGQVFab29tIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPkZBUSBBcmVhLjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPkZBUTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhck5hbWUiPkZBUTwvSXRlbT4KICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJMb2FkZXI6Ok1vZHVsZTo6QWdlbnRGQVFab29tIyMjMDAyLUZBUSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Mb2FkZXIgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uOjpMb2FkZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ1NTIj4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPkZBUS5BZ2VudC5EZXRhaWwuY3NzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5Db3JlLkFsbG9jYXRpb25MaXN0LmNzczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJKYXZhU2NyaXB0Ij4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPkZBUS5BZ2VudC5Db25maXJtYXRpb25EaWFsb2cuanM8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPkZBUS5BZ2VudC5UaWNrZXRDb21wb3NlLmpzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5GQVEuQWdlbnQuRkFRWm9vbS5qczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+Q29yZS5VSS5BbGxvY2F0aW9uTGlzdC5qczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+Q29yZS5VSS5UYWJsZS5Tb3J0LmpzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5Db3JlLkFnZW50LlRhYmxlRmlsdGVycy5qczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+Q29yZS5BZ2VudC5MaW5rT2JqZWN0LmpzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRGQVFSaWNoVGV4dCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kUmVnaXN0cmF0aW9uIj4KICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5GQVEgQUpBWCBSZXNwb25kZXIgZm9yIFJpY2h0ZXh0LjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPkZBUSBBSkFYIFJlc3BvbmRlcjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhck5hbWUiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkZyb250ZW5kOjpNZW51TW9kdWxlIyMjMDAwLUJhY2siIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIEZBUSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6RkFRWm9vbTo6TWVudU1vZHVsZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6T3V0cHV0OjpIVE1MOjpGQVFNZW51OjpHZW5lcmljPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYW1lIj5CYWNrPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5CYWNrPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3Rpb24iPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGluayI+WyUgRW52KCJMYXN0U2NyZWVuT3ZlcnZpZXciKSAlXTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGFyZ2V0Ij5CYWNrPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6RnJvbnRlbmQ6Ok1lbnVNb2R1bGUjIyMwMTAtRWRpdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZWRpdCBhIEZBUSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpGQVFab29tOjpNZW51TW9kdWxlPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZBUU1lbnU6OkdlbmVyaWM8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hbWUiPkVkaXQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPkVkaXQgdGhpcyBGQVE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjdGlvbiI+QWdlbnRGQVFFZGl0PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rIj5BY3Rpb249QWdlbnRGQVFFZGl0O0l0ZW1JRD1bJSBEYXRhLkl0ZW1JRCB8IGh0bWwgJV07U2NyZWVuVHlwZT1Qb3B1cDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGFyZ2V0Ij5Qb3BVcDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkZyb250ZW5kOjpNZW51TW9kdWxlIyMjMDIwLUhpc3RvcnkiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIEZBUSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OkZBUVpvb206Ok1lbnVNb2R1bGU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6RkFRTWVudTo6R2VuZXJpYzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmFtZSI+SGlzdG9yeTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+SGlzdG9yeSBvZiB0aGlzIEZBUTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0aW9uIj5BZ2VudEZBUUhpc3Rvcnk8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbmsiPkFjdGlvbj1BZ2VudEZBUUhpc3Rvcnk7SXRlbUlEPVslIERhdGEuSXRlbUlEIHwgaHRtbCAlXTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGFyZ2V0Ij5Qb3BVcDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkZyb250ZW5kOjpNZW51TW9kdWxlIyMjMDMwLVByaW50IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIEZBUSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpGQVFab29tOjpNZW51TW9kdWxlPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZBUU1lbnU6OkdlbmVyaWM8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hbWUiPlByaW50PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5QcmludCB0aGlzIEZBUTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0aW9uIj5BZ2VudEZBUVByaW50PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rIj5BY3Rpb249QWdlbnRGQVFQcmludDtJdGVtSUQ9WyUgRGF0YS5JdGVtSUQgfCBodG1sICVdPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rUGFyYW0iPnRhcmdldD0icHJpbnRfRkFRIjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGFyZ2V0Ij5Qb3BVcDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkZyb250ZW5kOjpNZW51TW9kdWxlIyMjMDQwLUxpbmsiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSBGQVEgd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgem9vbSB2aWV3IG9mIHN1Y2ggRkFRIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OkZBUVpvb206Ok1lbnVNb2R1bGU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6RkFRTWVudTo6R2VuZXJpYzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmFtZSI+TGluazwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+TGluayBhbm90aGVyIG9iamVjdCB0byB0aGlzIEZBUSBpdGVtPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3Rpb24iPkFnZW50TGlua09iamVjdDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGluayI+QWN0aW9uPUFnZW50TGlua09iamVjdDtTb3VyY2VPYmplY3Q9RkFRO1NvdXJjZUtleT1bJSBEYXRhLkl0ZW1JRCB8IGh0bWwgJV08L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRhcmdldCI+UG9wVXA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpGcm9udGVuZDo6TWVudU1vZHVsZSMjIzA1MC1EZWxldGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIHRvIGRlbGV0ZSBhIEZBUSBpbiBpdHMgem9vbSB2aWV3IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OkZBUVpvb206Ok1lbnVNb2R1bGU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6RkFRTWVudTo6RGVsZXRlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYW1lIj5EZWxldGU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPkRlbGV0ZSB0aGlzIEZBUTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0aW9uIj5BZ2VudEZBUURlbGV0ZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGluayI+QWN0aW9uPUFnZW50RkFRRGVsZXRlO0l0ZW1JRD1bJSBEYXRhLkl0ZW1JRCB8IGh0bWwgJV08L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRhcmdldCI+Q29uZmlybWF0aW9uRGlhbG9nPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkN1c3RvbWVyRnJvbnRlbmQ6Ok1vZHVsZSMjI0N1c3RvbWVyRkFRWm9vbSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkN1c3RvbWVyOjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kUmVnaXN0cmF0aW9uIj4KICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+Q3VzdG9tZXIgRkFRIFpvb20uPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+RkFRPC9JdGVtPgogICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkxvYWRlcjo6TW9kdWxlOjpDdXN0b21lckZBUVpvb20jIyMwMDItRkFRIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkxvYWRlciBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkN1c3RvbWVyOjpNb2R1bGVSZWdpc3RyYXRpb246OkxvYWRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDU1MiPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+RkFRLkN1c3RvbWVyLkRldGFpbC5jc3M8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPkZBUS5DdXN0b21lci5EZWZhdWx0LmNzczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+RkFRLkZBUVpvb20uY3NzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkphdmFTY3JpcHQiPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+RkFRLkN1c3RvbWVyLkZBUVpvb20uanM8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPkNvcmUuQ3VzdG9tZXIuU2VhcmNoLmpzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iQ3VzdG9tZXJGcm9udGVuZDo6TW9kdWxlIyMjQ3VzdG9tZXJGQVFTZWFyY2giIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGN1c3RvbWVyIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpDdXN0b21lcjo6TW9kdWxlUmVnaXN0cmF0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZFJlZ2lzdHJhdGlvbiI+CiAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+Q3VzdG9tZXIgRkFRIHNlYXJjaC48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXJOYW1lIj5GQVE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSIgVHJhbnNsYXRhYmxlPSIxIj5TZWFyY2ggRkFRPC9JdGVtPgogICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkxvYWRlcjo6TW9kdWxlOjpDdXN0b21lckZBUVNlYXJjaCMjIzAwMi1GQVEiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6Q3VzdG9tZXI6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TG9hZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iQ3VzdG9tZXJGcm9udGVuZDo6TmF2aWdhdGlvbiMjI0N1c3RvbWVyRkFRU2VhcmNoIyMjMDAyLUZBUSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5NYWluIG1lbnUgaXRlbSByZWdpc3RyYXRpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6Q3VzdG9tZXI6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TWFpbk1lbnU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8RGVmYXVsdEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZE5hdmlnYXRpb24iPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvRGVmYXVsdEl0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+U2VhcmNoPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hbWUiIFRyYW5zbGF0YWJsZT0iMSI+U2VhcmNoPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbmsiPkFjdGlvbj1DdXN0b21lckZBUVNlYXJjaDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rT3B0aW9uIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyIj5GQVE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVHlwZSI+U3VibWVudTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJCbG9jayI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjY2Vzc0tleSI+ZjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvIj43ODA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkZyb250ZW5kOjpDdXN0b21lckZBUVNlYXJjaCMjI1NlYXJjaExpbWl0IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk1heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHJlc3VsdCBvZiBhIHNlYXJjaCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkN1c3RvbWVyOjpWaWV3OjpGQVFTZWFyY2g8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iXlswLTldezEsOH0kIj4yMDA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6RnJvbnRlbmQ6OkN1c3RvbWVyRkFRU2VhcmNoIyMjU2VhcmNoUGFnZVNob3duIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIG9uIGVhY2ggcGFnZSBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpDdXN0b21lcjo6Vmlldzo6RkFRU2VhcmNoPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il5bMC05XXsxLDN9JCI+NDA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6RnJvbnRlbmQ6OkN1c3RvbWVyRkFRU2VhcmNoIyMjU29ydEJ5OjpEZWZhdWx0IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gYSBGQVEgc2VhcmNoIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6Q3VzdG9tZXI6OlZpZXc6OkZBUVNlYXJjaDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU2VsZWN0IiBTZWxlY3RlZElEPSJGQVFJRCI+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPlRpdGxlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJGQVFJRCIgVHJhbnNsYXRhYmxlPSIxIj5OdW1iZXI8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IkNhdGVnb3J5IiBUcmFuc2xhdGFibGU9IjEiPkNhdGVnb3J5PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJMYW5ndWFnZSIgVHJhbnNsYXRhYmxlPSIxIj5MYW5ndWFnZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iU3RhdGUiIFRyYW5zbGF0YWJsZT0iMSI+U3RhdGU8L0l0ZW0+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpGcm9udGVuZDo6Q3VzdG9tZXJGQVFTZWFyY2gjIyNPcmRlcjo6RGVmYXVsdCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6Q3VzdG9tZXI6OlZpZXc6OkZBUVNlYXJjaDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU2VsZWN0IiBTZWxlY3RlZElEPSJEb3duIj4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iRG93biIgVHJhbnNsYXRhYmxlPSIxIj5Eb3duPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJVcCIgVHJhbnNsYXRhYmxlPSIxIj5VcDwvSXRlbT4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRGQVFQcmludCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kUmVnaXN0cmF0aW9uIj4KICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5GQVEgUHJpbnQuPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+UHJpbnQ8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXJOYW1lIj5GQVE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iQ3VzdG9tZXJGcm9udGVuZDo6TW9kdWxlIyMjQ3VzdG9tZXJGQVFQcmludCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkN1c3RvbWVyOjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kUmVnaXN0cmF0aW9uIj4KICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+Q3VzdG9tZXIgRkFRIFByaW50LjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhck5hbWUiPkZBUTwvSXRlbT4KICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJQdWJsaWNGcm9udGVuZDo6TW9kdWxlIyMjUHVibGljRkFRU2VhcmNoIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBwdWJsaWMgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OlB1YmxpYzo6TW9kdWxlUmVnaXN0cmF0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZFJlZ2lzdHJhdGlvbiI+CiAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+UHVibGljIEZBUSBzZWFyY2guPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+RkFRPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+U2VhcmNoIEZBUTwvSXRlbT4KICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJMb2FkZXI6Ok1vZHVsZTo6UHVibGljRkFRU2VhcmNoIyMjMDAyLUZBUSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Mb2FkZXIgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIHB1YmxpYyBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6UHVibGljOjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ1NTIj4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPkZBUS5DdXN0b21lci5EZWZhdWx0LmNzczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlB1YmxpY0Zyb250ZW5kOjpOYXZpZ2F0aW9uIyMjUHVibGljRkFRU2VhcmNoIyMjMDAyLUZBUSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5NYWluIG1lbnUgaXRlbSByZWdpc3RyYXRpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6UHVibGljOjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8RGVmYXVsdEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZE5hdmlnYXRpb24iPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvRGVmYXVsdEl0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+RkFRIEFyZWE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmFtZSIgVHJhbnNsYXRhYmxlPSIxIj5TZWFyY2ggRkFRPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbmsiPkFjdGlvbj1QdWJsaWNGQVFTZWFyY2g8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGlua09wdGlvbiI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhciI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlR5cGUiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJCbG9jayI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjY2Vzc0tleSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlByaW8iPjYwMDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6RnJvbnRlbmQ6OlB1YmxpY0ZBUVNlYXJjaCMjI1NlYXJjaExpbWl0IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk1heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHJlc3VsdCBvZiBhIHNlYXJjaCBpbiB0aGUgcHVibGljIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpQdWJsaWM6OlZpZXc6OkZBUVNlYXJjaDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSJeWzAtOV17MSw4fSQiPjIwMDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpGcm9udGVuZDo6UHVibGljRkFRU2VhcmNoIyMjU2VhcmNoUGFnZVNob3duIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIG9uIGVhY2ggcGFnZSBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6UHVibGljOjpWaWV3OjpGQVFTZWFyY2g8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iXlswLTldezEsM30kIj40MDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpGcm9udGVuZDo6UHVibGljRkFRU2VhcmNoIyMjU29ydEJ5OjpEZWZhdWx0IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gYSBGQVEgc2VhcmNoIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OlB1YmxpYzo6Vmlldzo6RkFRU2VhcmNoPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTZWxlY3QiIFNlbGVjdGVkSUQ9IkZBUUlEIj4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+VGl0bGU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IkZBUUlEIiBUcmFuc2xhdGFibGU9IjEiPk51bWJlcjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iQ2F0ZWdvcnkiIFRyYW5zbGF0YWJsZT0iMSI+Q2F0ZWdvcnk8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9Ikxhbmd1YWdlIiBUcmFuc2xhdGFibGU9IjEiPkxhbmd1YWdlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJTdGF0ZSIgVHJhbnNsYXRhYmxlPSIxIj5TdGF0ZTwvSXRlbT4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkZyb250ZW5kOjpQdWJsaWNGQVFTZWFyY2gjIyNPcmRlcjo6RGVmYXVsdCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OlB1YmxpYzo6Vmlldzo6RkFRU2VhcmNoPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTZWxlY3QiIFNlbGVjdGVkSUQ9IkRvd24iPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSJEb3duIiBUcmFuc2xhdGFibGU9IjEiPkRvd248L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IlVwIiBUcmFuc2xhdGFibGU9IjEiPlVwPC9JdGVtPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlB1YmxpY0Zyb250ZW5kOjpNb2R1bGUjIyNQdWJsaWNGQVFab29tIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBwdWJsaWMgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OlB1YmxpYzo6TW9kdWxlUmVnaXN0cmF0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZFJlZ2lzdHJhdGlvbiI+CiAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPlB1YmxpYyBGQVEgWm9vbS48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXJOYW1lIj5GQVE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iTG9hZGVyOjpNb2R1bGU6OlB1YmxpY0ZBUVpvb20jIyMwMDItRkFRIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkxvYWRlciBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgcHVibGljIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpQdWJsaWM6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDU1MiPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+RkFRLkN1c3RvbWVyLkRlZmF1bHQuY3NzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5GQVEuQ3VzdG9tZXIuRGV0YWlsLmNzczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+RkFRLkZBUVpvb20uY3NzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkphdmFTY3JpcHQiPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+RkFRLkN1c3RvbWVyLkZBUVpvb20uanM8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPkNvcmUuQ3VzdG9tZXIuU2VhcmNoLmpzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iUHVibGljRnJvbnRlbmQ6Ok1vZHVsZSMjI1B1YmxpY0ZBUSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgcHVibGljIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpQdWJsaWM6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5QdWJsaWMgRkFRIFpvb20uPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+RkFRPC9JdGVtPgogICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlB1YmxpY0Zyb250ZW5kOjpNb2R1bGUjIyNQdWJsaWNGQVFQcmludCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgcHVibGljIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpQdWJsaWM6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5QdWJsaWMgRkFRIFByaW50LjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhck5hbWUiPkZBUTwvSXRlbT4KICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRGQVFKb3VybmFsIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPkZBUSBBcmVhLjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPkZBUTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhck5hbWUiPkZBUTwvSXRlbT4KICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJMb2FkZXI6Ok1vZHVsZTo6QWdlbnRGQVFKb3VybmFsIyMjMDAyLUZBUSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Mb2FkZXIgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uOjpMb2FkZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSmF2YVNjcmlwdCI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5GQVEuQWdlbnQuRkFRLmpzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok5hdmlnYXRpb24jIyNBZ2VudEZBUUpvdXJuYWwjIyMwMDItRkFRIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk1haW4gbWVudSBpdGVtIHJlZ2lzdHJhdGlvbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uOjpNYWluTWVudTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxEZWZhdWx0SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kTmF2aWdhdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9EZWZhdWx0SXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+RkFRIEpvdXJuYWw8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmFtZSIgVHJhbnNsYXRhYmxlPSIxIj5Kb3VybmFsPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbmsiPkFjdGlvbj1BZ2VudEZBUUpvdXJuYWw8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGlua09wdGlvbiI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhciI+RkFRPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlR5cGUiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJCbG9jayI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjY2Vzc0tleSI+ajwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvIj45MzA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkZyb250ZW5kOjpBZ2VudEZBUUpvdXJuYWwjIyNTaG93Q29sdW1ucyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBGQVEgam91cm5hbC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6RkFRSm91cm5hbDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ2F0ZWdvcnkiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlZhbGlkIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYW1lIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaW1lIj4xPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6RnJvbnRlbmQ6OkFnZW50RkFRSm91cm5hbCMjI0pvdXJuYWxMaW1pdCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5NYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgam91cm5hbCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpGQVFKb3VybmFsPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il5bMC05XXsxLDh9JCI+MjAwPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkZyb250ZW5kOjpBZ2VudEZBUUpvdXJuYWwjIyNUaXRsZVNpemUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIGpvdXJuYWwgaW4gdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6RkFRSm91cm5hbDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSJeWzAtOV17MSwzfSQiPjUwPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJQcmVmZXJlbmNlc0dyb3VwcyMjI0ZBUUpvdXJuYWxPdmVydmlld1NtYWxsUGFnZVNob3duIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlBhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIEZBUSBpdGVtcyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBGQVEgam91cm5hbCBvdmVydmlldy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6UHJlZmVyZW5jZXM8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6UHJlZmVyZW5jZXM6OkdlbmVyaWM8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlByZWZlcmVuY2VHcm91cCI+TWlzY2VsbGFuZW91czwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGFiZWwiIFRyYW5zbGF0YWJsZT0iMSI+RkFRIEpvdXJuYWwgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzYyIgVHJhbnNsYXRhYmxlPSIxIj5TZWxlY3QgaG93IG1hbnkgaXRlbXMgc2hvdWxkIGJlIHNob3duIGluIEpvdXJuYWwgT3ZlcnZpZXcgIlNtYWxsIiBieSBkZWZhdWx0LjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGF0YSI+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMTAiPjEwPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjE1Ij4xNTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIyMCI+MjA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMjUiPjI1PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjMwIj4zMDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIzNSI+MzU8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEYXRhU2VsZWN0ZWQiPjI1PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmVmS2V5Ij5Vc2VyRkFRSm91cm5hbE92ZXJ2aWV3U21hbGxQYWdlU2hvd248L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlByaW8iPjgwMDA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjdGl2ZSI+MDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkZyb250ZW5kOjpKb3VybmFsT3ZlcnZpZXcjIyNTbWFsbCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgRkFRIGpvdXJuYWwuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OkZBUUpvdXJuYWxPdmVydmlldzwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6T3V0cHV0OjpIVE1MOjpGQVFKb3VybmFsT3ZlcnZpZXc6OlNtYWxsPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYW1lIiBUcmFuc2xhdGFibGU9IjEiPlNtYWxsPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYW1lU2hvcnQiIFRyYW5zbGF0YWJsZT0iMSI+UzwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRGQVFIaXN0b3J5IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPkZBUSBIaXN0b3J5LjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPkhpc3Rvcnk8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXJOYW1lIj5GQVE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50RkFRRGVsZXRlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPkZBUSBEZWxldGUuPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+RGVsZXRlPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+RkFRPC9JdGVtPgogICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6VGlja2V0Q29tcG9zZSMjI0luc2VydE1ldGhvZCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBpbmZvcm1hdGlvbiB0byBiZSBpbnNlcnRlZCBpbiBhIEZBUSBiYXNlZCBUaWNrZXQuICJGdWxsIEZBUSIgaW5jbHVkZXMgdGV4dCwgYXR0YWNobWVudHMgYW5kIGlubGluZSBpbWFnZXMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpGQVE6OlRpY2tldENvbXBvc2U8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlNlbGVjdCIgU2VsZWN0ZWRJRD0iRnVsbCI+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IkZ1bGwiIFRyYW5zbGF0YWJsZT0iMSI+RnVsbCBGQVE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IlRleHQiIFRyYW5zbGF0YWJsZT0iMSI+VGV4dCBPbmx5PC9JdGVtPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6VGlja2V0Q29tcG9zZSMjI0luY2x1ZGVJbnRlcm5hbCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5JbmNsdWRlIGludGVybmFsIGZpZWxkcyBvbiBhIEZBUSBiYXNlZCBUaWNrZXQuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpGQVE6OlRpY2tldENvbXBvc2U8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkNoZWNrYm94Ij4wPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OlRpY2tldENvbXBvc2UjIyNTaG93RmllbGROYW1lcyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5JbmNsdWRlIHRoZSBuYW1lIG9mIGVhY2ggZmllbGQgaW4gYSBGQVEgYmFzZWQgVGlja2V0LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6RkFROjpUaWNrZXRDb21wb3NlPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJDaGVja2JveCI+MTwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpUaWNrZXRDb21wb3NlIyMjU2hvd0luc2VydFRleHRCdXR0b24iIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2hvdyAiSW5zZXJ0IEZBUSBUZXh0IiAvICJJbnNlcnQgRnVsbCBGQVEiIEJ1dHRvbiBpbiBBZ2VudEZBUVpvb21TbWFsbC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OkZBUTo6VGlja2V0Q29tcG9zZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iQ2hlY2tib3giPjE8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6VGlja2V0Q29tcG9zZSMjI1Nob3dJbnNlcnRMaW5rQnV0dG9uIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNob3cgIkluc2VydCBGQVEgTGluayIgQnV0dG9uIGluIEFnZW50RkFRWm9vbVNtYWxsIGZvciBwdWJsaWMgRkFRIEFydGljbGVzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6RkFROjpUaWNrZXRDb21wb3NlPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJDaGVja2JveCI+MTwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpUaWNrZXRDb21wb3NlIyMjU2hvd0luc2VydFRleHRBbmRMaW5rQnV0dG9uIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNob3cgIkluc2VydCBGQVEgVGV4dCAmYW1wOyBMaW5rIiAvICJJbnNlcnQgRnVsbCBGQVEgJmFtcDsgTGluayIgQnV0dG9uIGluIEFnZW50RkFRWm9vbVNtYWxsIGZvciBwdWJsaWMgRkFRIEFydGljbGVzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6RkFROjpUaWNrZXRDb21wb3NlPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJDaGVja2JveCI+MTwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpUaWNrZXRDb21wb3NlIyMjVXBkYXRlQXJ0aWNsZVN1YmplY3QiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lIGlmIHRoZSBGQVEgdGl0bGUgc2hvdWxkIGJlIGNvbmNhdGVuYXRlZCB0byBhcnRpY2xlIHN1YmplY3QuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpGQVE6OlRpY2tldENvbXBvc2U8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkNoZWNrYm94Ij4xPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6Ok11bHRpTGFuZ3VhZ2UiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RW5hYmxlIG11bHRpcGxlIGxhbmd1YWdlcyBvbiBGQVEgbW9kdWxlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6RkFRPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJDaGVja2JveCI+MTwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpEZWZhdWx0OjpMYW5ndWFnZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZhdWx0IGxhbmd1YWdlIGZvciBGQVEgYXJ0aWNsZXMgb24gc2luZ2xlIGxhbmd1YWdlIG1vZGUuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpGQVE8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyI+ZW48L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkxvYWRlcjo6QWdlbnQ6OkNvbW1vbkNTUyMjIzIwMC1GQVEiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TGlzdCBvZiBDU1MgZmlsZXMgdG8gYWx3YXlzIGJlIGxvYWRlZCBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpCYXNlOjpMb2FkZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8SXRlbT5GQVEuQWdlbnQuRGVmYXVsdC5jc3M8L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkxvYWRlcjo6QWdlbnQ6OkNvbW1vbkpTIyMjMjAwLUZBUSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5MaXN0IG9mIEpTIGZpbGVzIHRvIGFsd2F5cyBiZSBsb2FkZWQgZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QmFzZTo6TG9hZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPEl0ZW0+RkFRLkFnZW50LlRpY2tldENvbXBvc2UuanM8L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkxvYWRlcjo6TW9kdWxlOjpDdXN0b21lclRpY2tldE1lc3NhZ2UjIyMwMDMtRkFRIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkxvYWRlciBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkN1c3RvbWVyOjpNb2R1bGVSZWdpc3RyYXRpb246OkxvYWRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDU1MiPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+RkFRLlJlbGF0ZWRBcnRpY2xlcy5jc3M8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPkZBUS5DdXN0b21lci5EZWZhdWx0LmNzczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJKYXZhU2NyaXB0Ij4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPkZBUS5DdXN0b21lci5SZWxhdGVkQXJ0aWNsZXMuanM8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OlZvdGluZyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5FbmFibGUgdm90aW5nIG1lY2hhbmlzbSBvbiBGQVEgbW9kdWxlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6RkFRPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJDaGVja2JveCI+MTwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpDYWNoZVRUTCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5DYWNoZSBUaW1lIFRvIExlYXZlIGZvciBGQVEgaXRlbXMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpGQVE8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iXlxkKyQiPjE3MjgwMDwvSXRlbT4gPCEtLSBkZWZhdWx0IDE3Miw4MDAgKDYwICogNjAgKiAyNCAqIDIpIC0tPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJEYXNoYm9hcmRCYWNrZW5kIyMjMDM5OC1GQVEtTGFzdENoYW5nZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZGFzaGJvYXJkIGJhY2tlbmQuICJMaW1pdCIgZGVmaW5lcyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgZGlzcGxheWVkIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCBhY2Nlc3MgdG8gdGhlIHBsdWdpbiAoZS4gZy4gR3JvdXA6IGFkbWluO2dyb3VwMTtncm91cDI7KS4gIkRlZmF1bHQiIGluZGljYXRlcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OkRhc2hib2FyZDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6T3V0cHV0OjpIVE1MOjpEYXNoYm9hcmQ6OkZBUTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+TGF0ZXN0IHVwZGF0ZWQgRkFRIGFydGljbGVzPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUeXBlIj5MYXN0Q2hhbmdlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJCbG9jayI+Q29udGVudFNtYWxsPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZWZhdWx0Ij4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNYW5kYXRvcnkiPjA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRGFzaGJvYXJkQmFja2VuZCMjIzAzOTktRkFRLUxhc3RDcmVhdGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgcGFyYW1ldGVycyBmb3IgdGhlIGRhc2hib2FyZCBiYWNrZW5kLiAiTGltaXQiIGRlZmluZXMgdGhlIG51bWJlciBvZiBlbnRyaWVzIGRpc3BsYXllZCBieSBkZWZhdWx0LiAiR3JvdXAiIGlzIHVzZWQgdG8gcmVzdHJpY3QgYWNjZXNzIHRvIHRoZSBwbHVnaW4gKGUuIGcuIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiBpbmRpY2F0ZXMgaWYgdGhlIHBsdWdpbiBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb3IgaWYgdGhlIHVzZXIgbmVlZHMgdG8gZW5hYmxlIGl0IG1hbnVhbGx5LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpEYXNoYm9hcmQ8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6RGFzaGJvYXJkOjpGQVE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPkxhdGVzdCBjcmVhdGVkIEZBUSBhcnRpY2xlczwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVHlwZSI+TGFzdENyZWF0ZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQmxvY2siPkNvbnRlbnRTbWFsbDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVmYXVsdCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTWFuZGF0b3J5Ij4wPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkdlbmVyaWNJbnRlcmZhY2U6Ok9wZXJhdGlvbjo6TW9kdWxlIyMjRkFROjpMYW5ndWFnZUxpc3QiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+R2VuZXJpY0ludGVyZmFjZSBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgb3BlcmF0aW9uIGxheWVyLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+R2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uOjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmFtZSI+TGFuZ3VhZ2VMaXN0PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDb250cm9sbGVyIj5GQVE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNvbmZpZ0RpYWxvZyI+QWRtaW5HZW5lcmljSW50ZXJmYWNlT3BlcmF0aW9uRGVmYXVsdDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb246Ok1vZHVsZSMjI0ZBUTo6UHVibGljQ2F0ZWdvcnlMaXN0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkdlbmVyaWNJbnRlcmZhY2UgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIG9wZXJhdGlvbiBsYXllci48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkdlbmVyaWNJbnRlcmZhY2U6Ok9wZXJhdGlvbjo6TW9kdWxlUmVnaXN0cmF0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hbWUiPlB1YmxpY0NhdGVnb3J5TGlzdDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ29udHJvbGxlciI+RkFRPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDb25maWdEaWFsb2ciPkFkbWluR2VuZXJpY0ludGVyZmFjZU9wZXJhdGlvbkRlZmF1bHQ8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iR2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uOjpNb2R1bGUjIyNGQVE6OlB1YmxpY0ZBUUdldCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5HZW5lcmljSW50ZXJmYWNlIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBvcGVyYXRpb24gbGF5ZXIuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5HZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb246Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYW1lIj5QdWJsaWNGQVFHZXQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNvbnRyb2xsZXIiPkZBUTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ29uZmlnRGlhbG9nIj5BZG1pbkdlbmVyaWNJbnRlcmZhY2VPcGVyYXRpb25EZWZhdWx0PC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkdlbmVyaWNJbnRlcmZhY2U6Ok9wZXJhdGlvbjo6TW9kdWxlIyMjRkFROjpQdWJsaWNGQVFTZWFyY2giIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+R2VuZXJpY0ludGVyZmFjZSBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgb3BlcmF0aW9uIGxheWVyLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+R2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uOjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmFtZSI+UHVibGljRkFRU2VhcmNoPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDb250cm9sbGVyIj5GQVE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNvbmZpZ0RpYWxvZyI+QWRtaW5HZW5lcmljSW50ZXJmYWNlT3BlcmF0aW9uRGVmYXVsdDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkZyb250ZW5kOjpBZ2VudEhUTUxGaWVsZEhlaWdodERlZmF1bHQiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0IHRoZSBkZWZhdWx0IGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gQWdlbnRGQVFab29tLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpGQVFab29tPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il5bMC05XXsxLDR9JCI+MTAwPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkZyb250ZW5kOjpBZ2VudEhUTUxGaWVsZEhlaWdodE1heCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBBZ2VudEZBUVpvb20uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OkZBUVpvb208L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iXlswLTldezEsNX0kIj4yNTAwPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkZyb250ZW5kOjpDdXN0b21lckhUTUxGaWVsZEhlaWdodERlZmF1bHQiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0IHRoZSBkZWZhdWx0IGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gQ3VzdG9tZXJGQVFab29tIChhbmQgUHVibGljRkFRWm9vbSkuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6Q3VzdG9tZXI6OlZpZXc6OkZBUVpvb208L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iXlswLTldezEsNH0kIj4xMDA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6RnJvbnRlbmQ6OkN1c3RvbWVySFRNTEZpZWxkSGVpZ2h0TWF4IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldCB0aGUgbWF4aW11bSBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEN1c3RvbWVyRkFRWm9vbSAoYW5kIFB1YmxpY0ZBUVpvb20pLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkN1c3RvbWVyOjpWaWV3OjpGQVFab29tPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il5bMC05XXsxLDV9JCI+MjUwMDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpGcm9udGVuZDo6QWdlbnRGQVFBZGQjIyNSaWNoVGV4dFdpZHRoIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIHdpZHRoIGZvciB0aGUgcmljaCB0ZXh0IGVkaXRvciBjb21wb25lbnQgZm9yIHRoaXMgc2NyZWVuLiBFbnRlciBudW1iZXIgKHBpeGVscykgb3IgcGVyY2VudCB2YWx1ZSAocmVsYXRpdmUpLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpGQVFBZGQ8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iXlxkKyU/JCI+NjIwPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkZyb250ZW5kOjpBZ2VudEZBUUFkZCMjI1JpY2hUZXh0SGVpZ2h0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGhlaWdodCBmb3IgdGhlIHJpY2ggdGV4dCBlZGl0b3IgY29tcG9uZW50IGZvciB0aGlzIHNjcmVlbi4gRW50ZXIgbnVtYmVyIChwaXhlbHMpIG9yIHBlcmNlbnQgdmFsdWUgKHJlbGF0aXZlKS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6RkFRQWRkPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il5cZCslPyQiPjMyMDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpGcm9udGVuZDo6QWdlbnRGQVFFZGl0IyMjUmljaFRleHRXaWR0aCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSB3aWR0aCBmb3IgdGhlIHJpY2ggdGV4dCBlZGl0b3IgY29tcG9uZW50IGZvciB0aGlzIHNjcmVlbi4gRW50ZXIgbnVtYmVyIChwaXhlbHMpIG9yIHBlcmNlbnQgdmFsdWUgKHJlbGF0aXZlKS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6RkFRRWRpdDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSJeXGQrJT8kIj42MjA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6RnJvbnRlbmQ6OkFnZW50RkFRRWRpdCMjI1JpY2hUZXh0SGVpZ2h0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGhlaWdodCBmb3IgdGhlIHJpY2ggdGV4dCBlZGl0b3IgY29tcG9uZW50IGZvciB0aGlzIHNjcmVlbi4gRW50ZXIgbnVtYmVyIChwaXhlbHMpIG9yIHBlcmNlbnQgdmFsdWUgKHJlbGF0aXZlKS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6RkFRRWRpdDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSJeXGQrJT8kIj4zMjA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpUb29sQmFyTW9kdWxlIyMjOTAtRkFROjpBZ2VudEZBUUFkZCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Ub29sYmFyIEl0ZW0gZm9yIGEgc2hvcnRjdXQuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlRvb2xCYXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6VG9vbEJhcjo6TGluazwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmFtZSIgVHJhbnNsYXRhYmxlPSIxIj5BZGQgRkFRIGFydGljbGU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbmsiPkFjdGlvbj1BZ2VudEZBUUFkZDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0aW9uIj5BZ2VudEZBUUFkZDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWNjZXNzS2V5Ij48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNzc0NsYXNzIj5GQVE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikljb24iPmZhIGZhLXF1ZXN0aW9uPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvcml0eSI+MTAyMDA5MDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJEeW5hbWljRmllbGRzOjpPYmplY3RUeXBlIyMjRkFRIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkR5bmFtaWNGaWVsZCBvYmplY3QgcmVnaXN0cmF0aW9uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6RHluYW1pY0ZpZWxkczo6T2JqZWN0VHlwZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEaXNwbGF5TmFtZSIgVHJhbnNsYXRhYmxlPSIxIj5GQVE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6T2JqZWN0VHlwZTo6RkFRPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvIj4yMDA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpGcm9udGVuZDo6T3ZlcnZpZXdTbWFsbCMjI0R5bmFtaWNGaWVsZCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHNtYWxsIGZvcm1hdCBvdmVydmlldyBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6RkFRT3ZlcnZpZXc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxEZWZhdWx0SXRlbSBWYWx1ZVR5cGU9IlNlbGVjdCI+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIwIiBUcmFuc2xhdGFibGU9IjEiPjAgLSBEaXNhYmxlZDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjEiIFRyYW5zbGF0YWJsZT0iMSI+MSAtIEVuYWJsZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0RlZmF1bHRJdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6RnJvbnRlbmQ6OkFnZW50RkFRQWRkIyMjRHluYW1pY0ZpZWxkIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkR5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpGQVFBZGQ8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxEZWZhdWx0SXRlbSBWYWx1ZVR5cGU9IlNlbGVjdCI+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIwIiBUcmFuc2xhdGFibGU9IjEiPjAgLSBEaXNhYmxlZDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjEiIFRyYW5zbGF0YWJsZT0iMSI+MSAtIEVuYWJsZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIyIiBUcmFuc2xhdGFibGU9IjEiPjIgLSBFbmFibGVkIGFuZCByZXF1aXJlZDwvSXRlbT4KICAgICAgICAgICAgICAgIDwvRGVmYXVsdEl0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpGcm9udGVuZDo6QWdlbnRGQVFFZGl0IyMjRHluYW1pY0ZpZWxkIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkR5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6RkFRRWRpdDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPERlZmF1bHRJdGVtIFZhbHVlVHlwZT0iU2VsZWN0Ij4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjAiIFRyYW5zbGF0YWJsZT0iMSI+MCAtIERpc2FibGVkPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMSIgVHJhbnNsYXRhYmxlPSIxIj4xIC0gRW5hYmxlZDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjIiIFRyYW5zbGF0YWJsZT0iMSI+MiAtIEVuYWJsZWQgYW5kIHJlcXVpcmVkPC9JdGVtPgogICAgICAgICAgICAgICAgPC9EZWZhdWx0SXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkZyb250ZW5kOjpBZ2VudEZBUVpvb20jIyNEeW5hbWljRmllbGQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpGQVFab29tPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8RGVmYXVsdEl0ZW0gVmFsdWVUeXBlPSJTZWxlY3QiPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMCIgVHJhbnNsYXRhYmxlPSIxIj4wIC0gRGlzYWJsZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIxIiBUcmFuc2xhdGFibGU9IjEiPjEgLSBFbmFibGVkPC9JdGVtPgogICAgICAgICAgICAgICAgPC9EZWZhdWx0SXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkZyb250ZW5kOjpDdXN0b21lckZBUVpvb20jIyNEeW5hbWljRmllbGQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSB6b29tIHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkN1c3RvbWVyOjpWaWV3OjpGQVFab29tPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8RGVmYXVsdEl0ZW0gVmFsdWVUeXBlPSJTZWxlY3QiPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMCIgVHJhbnNsYXRhYmxlPSIxIj4wIC0gRGlzYWJsZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIxIiBUcmFuc2xhdGFibGU9IjEiPjEgLSBFbmFibGVkPC9JdGVtPgogICAgICAgICAgICAgICAgPC9EZWZhdWx0SXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkZyb250ZW5kOjpQdWJsaWNGQVFab29tIyMjRHluYW1pY0ZpZWxkIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkR5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgem9vbSBzY3JlZW4gb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6UHVibGljOjpWaWV3OjpGQVFab29tPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8RGVmYXVsdEl0ZW0gVmFsdWVUeXBlPSJTZWxlY3QiPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMCIgVHJhbnNsYXRhYmxlPSIxIj4wIC0gRGlzYWJsZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIxIiBUcmFuc2xhdGFibGU9IjEiPjEgLSBFbmFibGVkPC9JdGVtPgogICAgICAgICAgICAgICAgPC9EZWZhdWx0SXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkZyb250ZW5kOjpBZ2VudEZBUVByaW50IyMjRHluYW1pY0ZpZWxkIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkR5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgcHJpbnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OkZBUVByaW50PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8RGVmYXVsdEl0ZW0gVmFsdWVUeXBlPSJTZWxlY3QiPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMCIgVHJhbnNsYXRhYmxlPSIxIj4wIC0gRGlzYWJsZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIxIiBUcmFuc2xhdGFibGU9IjEiPjEgLSBFbmFibGVkPC9JdGVtPgogICAgICAgICAgICAgICAgPC9EZWZhdWx0SXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkZyb250ZW5kOjpDdXN0b21lckZBUVByaW50IyMjRHluYW1pY0ZpZWxkIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkR5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgcHJpbnQgc2NyZWVuIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6Q3VzdG9tZXI6OlZpZXc6OkZBUVByaW50PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8RGVmYXVsdEl0ZW0gVmFsdWVUeXBlPSJTZWxlY3QiPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMCIgVHJhbnNsYXRhYmxlPSIxIj4wIC0gRGlzYWJsZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIxIiBUcmFuc2xhdGFibGU9IjEiPjEgLSBFbmFibGVkPC9JdGVtPgogICAgICAgICAgICAgICAgPC9EZWZhdWx0SXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkZyb250ZW5kOjpQdWJsaWNGQVFQcmludCMjI0R5bmFtaWNGaWVsZCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHByaW50IHNjcmVlbiBvZiB0aGUgcHVibGljIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpQdWJsaWM6OlZpZXc6OkZBUVByaW50PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8RGVmYXVsdEl0ZW0gVmFsdWVUeXBlPSJTZWxlY3QiPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMCIgVHJhbnNsYXRhYmxlPSIxIj4wIC0gRGlzYWJsZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIxIiBUcmFuc2xhdGFibGU9IjEiPjEgLSBFbmFibGVkPC9JdGVtPgogICAgICAgICAgICAgICAgPC9EZWZhdWx0SXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkZyb250ZW5kOjpBZ2VudEZBUVNlYXJjaCMjI0R5bmFtaWNGaWVsZCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHNlYXJjaCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6RkFRU2VhcmNoPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8RGVmYXVsdEl0ZW0gVmFsdWVUeXBlPSJTZWxlY3QiPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMCIgVHJhbnNsYXRhYmxlPSIxIj4wIC0gRGlzYWJsZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIxIiBUcmFuc2xhdGFibGU9IjEiPjEgLSBFbmFibGVkPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMiIgVHJhbnNsYXRhYmxlPSIxIj4yIC0gRW5hYmxlZCBhbmQgc2hvd24gYnkgZGVmYXVsdDwvSXRlbT4KICAgICAgICAgICAgICAgIDwvRGVmYXVsdEl0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpGcm9udGVuZDo6QWdlbnRGQVFTZWFyY2gjIyNTZWFyY2hDU1ZEeW5hbWljRmllbGQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RHluYW1pYyBGaWVsZHMgdXNlZCB0byBleHBvcnQgdGhlIHNlYXJjaCByZXN1bHQgaW4gQ1NWIGZvcm1hdC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6RkFRU2VhcmNoPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpGcm9udGVuZDo6Q3VzdG9tZXJGQVFTZWFyY2gjIyNEeW5hbWljRmllbGQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBzZWFyY2ggc2NyZWVuIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6Q3VzdG9tZXI6OlZpZXc6OkZBUVNlYXJjaDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPERlZmF1bHRJdGVtIFZhbHVlVHlwZT0iU2VsZWN0Ij4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjAiIFRyYW5zbGF0YWJsZT0iMSI+MCAtIERpc2FibGVkPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMSIgVHJhbnNsYXRhYmxlPSIxIj4xIC0gRW5hYmxlZDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjIiIFRyYW5zbGF0YWJsZT0iMSI+MiAtIEVuYWJsZWQgYW5kIHNob3duIGJ5IGRlZmF1bHQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0RlZmF1bHRJdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6RnJvbnRlbmQ6OkN1c3RvbWVyRkFRT3ZlcnZpZXcjIyNEeW5hbWljRmllbGQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBvdmVydmlldyBzY3JlZW4gb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpDdXN0b21lcjo6RkFRT3ZlcnZpZXc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxEZWZhdWx0SXRlbSBWYWx1ZVR5cGU9IlNlbGVjdCI+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIwIiBUcmFuc2xhdGFibGU9IjEiPjAgLSBEaXNhYmxlZDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjEiIFRyYW5zbGF0YWJsZT0iMSI+MSAtIEVuYWJsZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIyIiBUcmFuc2xhdGFibGU9IjEiPjIgLSBFbmFibGVkIGFuZCByZXF1aXJlZDwvSXRlbT4KICAgICAgICAgICAgICAgIDwvRGVmYXVsdEl0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpGcm9udGVuZDo6Q3VzdG9tZXJGQVFTZWFyY2gjIyNTZWFyY2hDU1ZEeW5hbWljRmllbGQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RHluYW1pYyBGaWVsZHMgdXNlZCB0byBleHBvcnQgdGhlIHNlYXJjaCByZXN1bHQgaW4gQ1NWIGZvcm1hdC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpDdXN0b21lcjo6Vmlldzo6RkFRU2VhcmNoPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpGcm9udGVuZDo6UHVibGljRkFRU2VhcmNoIyMjRHluYW1pY0ZpZWxkIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkR5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc2VhcmNoIHNjcmVlbiBvZiB0aGUgcHVibGljIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpQdWJsaWM6OlZpZXc6OkZBUVNlYXJjaDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPERlZmF1bHRJdGVtIFZhbHVlVHlwZT0iU2VsZWN0Ij4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjAiIFRyYW5zbGF0YWJsZT0iMSI+MCAtIERpc2FibGVkPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMSIgVHJhbnNsYXRhYmxlPSIxIj4xIC0gRW5hYmxlZDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjIiIFRyYW5zbGF0YWJsZT0iMSI+MiAtIEVuYWJsZWQgYW5kIHNob3duIGJ5IGRlZmF1bHQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0RlZmF1bHRJdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6RnJvbnRlbmQ6OlB1YmxpY0ZBUU92ZXJ2aWV3IyMjRHluYW1pY0ZpZWxkIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkR5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgb3ZlcnZpZXcgc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OlB1YmxpYzo6RkFRT3ZlcnZpZXc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxEZWZhdWx0SXRlbSBWYWx1ZVR5cGU9IlNlbGVjdCI+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIwIiBUcmFuc2xhdGFibGU9IjEiPjAgLSBEaXNhYmxlZDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjEiIFRyYW5zbGF0YWJsZT0iMSI+MSAtIEVuYWJsZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIyIiBUcmFuc2xhdGFibGU9IjEiPjIgLSBFbmFibGVkIGFuZCByZXF1aXJlZDwvSXRlbT4KICAgICAgICAgICAgICAgIDwvRGVmYXVsdEl0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpGcm9udGVuZDo6UHVibGljRkFRU2VhcmNoIyMjU2VhcmNoQ1NWRHluYW1pY0ZpZWxkIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkR5bmFtaWMgRmllbGRzIHVzZWQgdG8gZXhwb3J0IHRoZSBzZWFyY2ggcmVzdWx0IGluIENTViBmb3JtYXQuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6UHVibGljOjpWaWV3OjpGQVFTZWFyY2g8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkZyb250ZW5kOjpBZ2VudEZBUVNlYXJjaCMjI0RlZmF1bHRzIyMjRnVsbHRleHQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgZGVmYXVsdCBzaG93biBGQVEgc2VhcmNoIGF0dHJpYnV0ZSBmb3IgRkFRIHNlYXJjaCBzY3JlZW4uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OkZBUVNlYXJjaDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIj48L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6RnJvbnRlbmQ6OkFnZW50RkFRU2VhcmNoIyMjRGVmYXVsdHMjIyNOdW1iZXIiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgZGVmYXVsdCBzaG93biBGQVEgc2VhcmNoIGF0dHJpYnV0ZSBmb3IgRkFRIHNlYXJjaCBzY3JlZW4uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OkZBUVNlYXJjaDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIj48L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6RnJvbnRlbmQ6OkFnZW50RkFRU2VhcmNoIyMjRGVmYXVsdHMjIyNUaXRsZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IHNob3duIEZBUSBzZWFyY2ggYXR0cmlidXRlIGZvciBGQVEgc2VhcmNoIHNjcmVlbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6RkFRU2VhcmNoPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciPjwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpGcm9udGVuZDo6QWdlbnRGQVFTZWFyY2gjIyNEZWZhdWx0cyMjI0tleXdvcmQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgZGVmYXVsdCBzaG93biBGQVEgc2VhcmNoIGF0dHJpYnV0ZSBmb3IgRkFRIHNlYXJjaCBzY3JlZW4uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OkZBUVNlYXJjaDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIj48L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6RnJvbnRlbmQ6OkFnZW50RkFRU2VhcmNoIyMjRGVmYXVsdHMjIyNMYW5ndWFnZUlEcyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IHNob3duIEZBUSBzZWFyY2ggYXR0cmlidXRlIGZvciBGQVEgc2VhcmNoIHNjcmVlbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6RkFRU2VhcmNoPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciPjwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpGcm9udGVuZDo6QWdlbnRGQVFTZWFyY2gjIyNEZWZhdWx0cyMjI0NhdGVnb3J5SURzIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjAiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGRlZmF1bHQgc2hvd24gRkFRIHNlYXJjaCBhdHRyaWJ1dGUgZm9yIEZBUSBzZWFyY2ggc2NyZWVuLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpGQVFTZWFyY2g8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyI+PC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkZyb250ZW5kOjpBZ2VudEZBUVNlYXJjaCMjI0RlZmF1bHRzIyMjVmFsaWRJRHMiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgZGVmYXVsdCBzaG93biBGQVEgc2VhcmNoIGF0dHJpYnV0ZSBmb3IgRkFRIHNlYXJjaCBzY3JlZW4uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OkZBUVNlYXJjaDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIj48L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6RnJvbnRlbmQ6OkFnZW50RkFRU2VhcmNoIyMjRGVmYXVsdHMjIyNTdGF0ZUlEcyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IHNob3duIEZBUSBzZWFyY2ggYXR0cmlidXRlIGZvciBGQVEgc2VhcmNoIHNjcmVlbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6RkFRU2VhcmNoPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciPjwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpGcm9udGVuZDo6QWdlbnRGQVFTZWFyY2gjIyNEZWZhdWx0cyMjI1ZvdGVTZWFyY2hUeXBlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjAiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGRlZmF1bHQgc2hvd24gRkFRIHNlYXJjaCBhdHRyaWJ1dGUgZm9yIEZBUSBzZWFyY2ggc2NyZWVuLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpGQVFTZWFyY2g8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyI+PC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkZyb250ZW5kOjpBZ2VudEZBUVNlYXJjaCMjI0RlZmF1bHRzIyMjUmF0ZVNlYXJjaFR5cGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgZGVmYXVsdCBzaG93biBGQVEgc2VhcmNoIGF0dHJpYnV0ZSBmb3IgRkFRIHNlYXJjaCBzY3JlZW4uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OkZBUVNlYXJjaDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIj48L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6RnJvbnRlbmQ6OkFnZW50RkFRU2VhcmNoIyMjRGVmYXVsdHMjIyNBcHByb3ZlZFNlYXJjaCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IHNob3duIEZBUSBzZWFyY2ggYXR0cmlidXRlIGZvciBGQVEgc2VhcmNoIHNjcmVlbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6RkFRU2VhcmNoPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciPjwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpGcm9udGVuZDo6QWdlbnRGQVFTZWFyY2gjIyNEZWZhdWx0cyMjI0NyZWF0ZWRVc2VySURzIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjAiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGRlZmF1bHQgc2hvd24gRkFRIHNlYXJjaCBhdHRyaWJ1dGUgZm9yIEZBUSBzZWFyY2ggc2NyZWVuLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpGQVFTZWFyY2g8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyI+PC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkZyb250ZW5kOjpBZ2VudEZBUVNlYXJjaCMjI0RlZmF1bHRzIyMjTGFzdENoYW5nZWRVc2VySURzIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjAiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGRlZmF1bHQgc2hvd24gRkFRIHNlYXJjaCBhdHRyaWJ1dGUgZm9yIEZBUSBzZWFyY2ggc2NyZWVuLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpGQVFTZWFyY2g8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyI+PC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkZyb250ZW5kOjpBZ2VudEZBUVNlYXJjaCMjI0RlZmF1bHRzIyMjSXRlbUNyZWF0ZVRpbWVQb2ludCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IHNob3duIEZBUSBzZWFyY2ggYXR0cmlidXRlIGZvciBGQVEgc2VhcmNoIHNjcmVlbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6RkFRU2VhcmNoPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciPjwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpGcm9udGVuZDo6QWdlbnRGQVFTZWFyY2gjIyNEZWZhdWx0cyMjI0l0ZW1DcmVhdGVUaW1lU2xvdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IHNob3duIEZBUSBzZWFyY2ggYXR0cmlidXRlIGZvciBGQVEgc2VhcmNoIHNjcmVlbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6RkFRU2VhcmNoPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciPjwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpGcm9udGVuZDo6QWdlbnRGQVFTZWFyY2gjIyNEZWZhdWx0cyMjI0l0ZW1DaGFuZ2VUaW1lUG9pbnQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgZGVmYXVsdCBzaG93biBGQVEgc2VhcmNoIGF0dHJpYnV0ZSBmb3IgRkFRIHNlYXJjaCBzY3JlZW4uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OkZBUVNlYXJjaDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIj48L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6RnJvbnRlbmQ6OkFnZW50RkFRU2VhcmNoIyMjRGVmYXVsdHMjIyNJdGVtQ2hhbmdlVGltZVNsb3QiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgZGVmYXVsdCBzaG93biBGQVEgc2VhcmNoIGF0dHJpYnV0ZSBmb3IgRkFRIHNlYXJjaCBzY3JlZW4uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OkZBUVNlYXJjaDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIj48L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6RnJvbnRlbmQ6OkFnZW50RkFRU2VhcmNoIyMjVGl0bGVTaXplIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjAiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk1heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBTZWFyY2ggaW4gdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6RkFRU2VhcmNoPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il5bMC05XXsxLDN9JCI+NTA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6RnJvbnRlbmQ6OkN1c3RvbWVyRkFRU2VhcmNoIyMjVGl0bGVTaXplIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjAiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk1heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBTZWFyY2ggaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpDdXN0b21lcjo6Vmlldzo6RkFRU2VhcmNoPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il5bMC05XXsxLDN9JCI+NTA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6RnJvbnRlbmQ6OlB1YmxpY0ZBUVNlYXJjaCMjI1RpdGxlU2l6ZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5NYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgU2VhcmNoIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OlB1YmxpYzo6Vmlldzo6RkFRU2VhcmNoPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il5bMC05XXsxLDN9JCI+NTA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkxpbmtPYmplY3Q6OkNvbXBsZXhUYWJsZTo6U2V0dGluZ3NWaXNpYmlsaXR5IyMjRkFRIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZSBBY3Rpb25zIHdoZXJlIGEgc2V0dGluZ3MgYnV0dG9uIGlzIGF2YWlsYWJsZSBpbiB0aGUgbGlua2VkIG9iamVjdHMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIFBsZWFzZSBub3RlIHRoYXQgdGhlc2UgQWN0aW9ucyBtdXN0IGhhdmUgcmVnaXN0ZXJlZCB0aGUgZm9sbG93aW5nIEpTIGFuZCBDU1MgZmlsZXM6IENvcmUuQWxsb2NhdGlvbkxpc3QuY3NzLCBDb3JlLlVJLkFsbG9jYXRpb25MaXN0LmpzLCBDb3JlLlVJLlRhYmxlLlNvcnQuanMsIENvcmUuQWdlbnQuVGFibGVGaWx0ZXJzLmpzIGFuZCBDb3JlLkFnZW50LkxpbmtPYmplY3QuanMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OkxpbmtPYmplY3Q8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8SXRlbT5BZ2VudEZBUVpvb208L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkxpbmtPYmplY3Q6OkNvbXBsZXhUYWJsZSMjI0ZBUSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBGQVFzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IEZBUSBhdHRyaWJ1dGVzIGFuZCBkeW5hbWljIGZpZWxkcyAoRHluYW1pY0ZpZWxkX05hbWVYKSBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OkxpbmtPYmplY3Q8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGlua09iamVjdDo6RkFRLnBtPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZWZhdWx0Q29sdW1ucyI+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgICAgIDxEZWZhdWx0SXRlbSBWYWx1ZVR5cGU9IlNlbGVjdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjAiIFRyYW5zbGF0YWJsZT0iMSI+MCAtIERpc2FibGVkPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIxIiBUcmFuc2xhdGFibGU9IjEiPjEgLSBBdmFpbGFibGU8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjIiIFRyYW5zbGF0YWJsZT0iMSI+MiAtIEVuYWJsZWQgYnkgZGVmYXVsdDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9EZWZhdWx0SXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJGQVFOdW1iZXIiIFNlbGVjdGVkSUQ9IjIiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSIgU2VsZWN0ZWRJRD0iMiI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlN0YXRlIiBTZWxlY3RlZElEPSIyIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3JlYXRlZCIgU2VsZWN0ZWRJRD0iMiI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNhdGVnb3J5TmFtZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikxhbmd1YWdlIiBTZWxlY3RlZElEPSIxIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQXBwcm92ZWQiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDb250ZW50VHlwZSIgU2VsZWN0ZWRJRD0iMSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZWQiIFNlbGVjdGVkSUQ9IjEiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlByaW9yaXR5Ij4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJGQVFOdW1iZXIiPjEwMDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSI+MTEwPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlN0YXRlIj4xMjA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3JlYXRlZCI+MTMwPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNhdGVnb3J5TmFtZSI+MTQwPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikxhbmd1YWdlIj4xNTA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQXBwcm92ZWQiPjE2MDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDb250ZW50VHlwZSI+MTcwPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNoYW5nZWQiPjE4MDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpDdXN0b21lcjo6UmVsYXRlZEFydGljbGVzOjpFbmFibGVkIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkVuYWJsZSB0aGUgcmVsYXRlZCBhcnRpY2xlIGZlYXR1cmUgZm9yIHRoZSBjdXN0b21lciBmcm9udGVuZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OkZBUTo6UmVsYXRlZEFydGljbGVzPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJDaGVja2JveCI+MTwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpTZXJ2aWNlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkVuYWJsZSBzZXJ2aWNlIGFzc2lnbm1lbnQgZm9yIEZBUXMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpGQVE6OlJlbGF0ZWRBcnRpY2xlczwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iQ2hlY2tib3giPjA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6Q3VzdG9tZXI6OlJlbGF0ZWRBcnRpY2xlc09uU2VydmljZU9ubHkiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2hvdyByZWxhdGVkIGFydGljbGVzIG9uIHNlcnZpY2UgY2hhbmdlIGV2ZW4gd2l0aCBlbXB0eSBzdWJqZWN0IGFuZCBib2R5LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6RkFROjpSZWxhdGVkQXJ0aWNsZXM8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkNoZWNrYm94Ij4wPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6T3V0cHV0OjpGaWx0ZXJFbGVtZW50UG9zdCMjI091dHB1dEZpbHRlclBvc3RGQVFDdXN0b21lclJlbGF0ZWRBcnRpY2xlcyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5PdXRwdXQgZmlsdGVyIHRvIGFkZCBKYXZhLXNjcmlwdCB0byBDdXN0b21lclRpY2tldE1lc3NhZ2Ugc2NyZWVuLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkJhc2U6Ok91dHB1dEZpbHRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6T3V0cHV0OjpIVE1MOjpGaWx0ZXJFbGVtZW50UG9zdDo6RkFRQ3VzdG9tZXJSZWxhdGVkQXJ0aWNsZXM8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRlbXBsYXRlcyI+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3VzdG9tZXJUaWNrZXRNZXNzYWdlIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJDdXN0b21lckZyb250ZW5kOjpNb2R1bGUjIyNDdXN0b21lckZBUVJlbGF0ZWRBcnRpY2xlcyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkN1c3RvbWVyOjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kUmVnaXN0cmF0aW9uIj4KICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5DdXN0b21lciBGQVEgUmVsYXRlZCBBcnRpY2xlcy48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSIgVHJhbnNsYXRhYmxlPSIxIj5DdXN0b21lciBGQVEgUmVsYXRlZCBBcnRpY2xlczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhck5hbWUiPjwvSXRlbT4KICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OktleXdvcmRBcnRpY2VMaXN0OjpTZWFyY2hMaW1pdCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5MaW1pdCBmb3IgdGhlIHNlYXJjaCB0byBidWlsZCB0aGUga2V5d29yZCBGQVEgYXJ0aWNsZSBsaXN0LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6RkFROjpSZWxhdGVkQXJ0aWNsZXM8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iXlxkKyQiPjUwMDA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZBUTo6RnJvbnRlbmQ6OkN1c3RvbWVyRkFRUmVsYXRlZEFydGljbGVzIyMjUXVldWVzRW5hYmxlZCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5MaXN0IG9mIHF1ZXVlIG5hbWVzIGZvciB3aGljaCB0aGUgcmVsYXRlZCBhcnRpY2xlIGZlYXR1cmUgaXMgZW5hYmxlZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpDdXN0b21lcjo6RkFRUmVsYXRlZEFydGljbGVzPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPEl0ZW0+UmF3PC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkZyb250ZW5kOjpDdXN0b21lckZBUVJlbGF0ZWRBcnRpY2xlcyMjI0RlZmF1bHRMYW5ndWFnZXMiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+VGhlIGRlZmF1bHQgbGFuZ3VhZ2VzIGZvciB0aGUgcmVsYXRlZCBGQVEgYXJ0aWNsZXMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6Q3VzdG9tZXI6OkZBUVJlbGF0ZWRBcnRpY2xlczwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxJdGVtPmVuPC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGQVE6OkZyb250ZW5kOjpDdXN0b21lckZBUVJlbGF0ZWRBcnRpY2xlcyMjI1Nob3dMaW1pdCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5PdXRwdXQgbGltaXQgZm9yIHRoZSByZWxhdGVkIEZBUSBhcnRpY2xlcy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpDdXN0b21lcjo6RkFRUmVsYXRlZEFydGljbGVzPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il5cZCskIj4xMDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRkFROjpGcm9udGVuZDo6Q3VzdG9tZXJGQVFSZWxhdGVkQXJ0aWNsZXMjIyNWb3RlU3RhcnNWaXNpYmxlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNob3cgdGhlIHN0YXJzIGZvciB0aGUgYXJ0aWNsZXMgd2l0aCBhIHJhdGluZyBlcXVhbCBvciBncmVhdGVyIGxpa2UgdGhlIGRlZmluZWQgdmFsdWUgKHNldCB2YWx1ZSAnMCcgdG8gZGVhY3RpdmF0ZSB0aGUgb3V0cHV0KS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpDdXN0b21lcjo6RkFRUmVsYXRlZEFydGljbGVzPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il5cZCskIj40PC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CgogICAgPCEtLSBkeW5hbWljIGZpZWxkIEZBUSBSZWZlcmVuY2UgLS0+CiAgICA8U2V0dGluZyBOYW1lPSJEeW5hbWljRmllbGRzOjpEcml2ZXIjIyNGQVEiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RHluYW1pY0ZpZWxkIGJhY2tlbmQgcmVnaXN0cmF0aW9uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6RHluYW1pY0ZpZWxkczo6RHJpdmVyUmVnaXN0cmF0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRpc3BsYXlOYW1lIiBUcmFuc2xhdGFibGU9IjEiPkZBUTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpEcml2ZXI6OkZBUTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ29uZmlnRGlhbG9nIj5BZG1pbkR5bmFtaWNGaWVsZFJlZmVyZW5jZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iT2JqZWN0VHlwZXMiPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+QXJ0aWNsZTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+SVRTTUNvbmZpZ0l0ZW08L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPlRpY2tldDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDwhLS0gRW5kIGR5bmFtaWMgZmllbGQgRkFRIFJlZmVyZW5jZSAtLT4KPC9vdG9ib19jb25maWc+Cg==</File>
        <File Location="Kernel/cpan-lib/XML/RSS/SimpleGen.pm" Permission="660" Encode="Base64">CnJlcXVpcmUgNTsKcGFja2FnZSBYTUw6OlJTUzo6U2ltcGxlR2VuOwp1c2Ugc3RyaWN0Owp1c2UgQ2FycCAoKTsKcmVxdWlyZSBFeHBvcnRlcjsKdXNlIHZhcnMgcXcoCiAgQEVYUE9SVCAlRVhQT1JUX1RBR1MgQElTQSAkVkVSU0lPTgogICVFbnRpdGllcyAlV2luTGFtZUVudGl0aWVzICVDb21tb25FbnRzICRNSU1FX1R5cGUgCiAgJERURF91cmwgJERURF9wdWJpZCAkTmF0aXZpemVfbmV3bGluZXMgJERXSU0gQEhpZGllcyAkUlNTX29iagogICRTbGVlcHkgJUlzQmxvY2tNYXJrdXAgJE1heWJlSW5kZW50ICRNYXliZU5MICVQZXJpb2RBc1NlY29uZHMKICAkTkFNRVNQQUNFX1NZICRDSFVOS19NSU5VVEVTICVCYWRQb3J0cwogIEBSZXRyeV9kZWxheXMgJFVzZXJBZ2VudFN0cmluZwopOwoKJFZFUlNJT04gPSAnMTEuMTEnOwpCRUdJTiB7ICpERUJVRyA9IHN1YiAoKSB7MH0gdW5sZXNzIGRlZmluZWQgJkRFQlVHOyB9ICAgIyBzZXQgREVCVUcgbGV2ZWwKCkBJU0EgPSBxdyhFeHBvcnRlcik7CgojJERURF91cmwgICB8fD0gJ2h0dHA6Ly9teS5uZXRzY2FwZS5jb20vcHVibGlzaC9mb3JtYXRzL3Jzcy0wLjkxLmR0ZCc7CiMkRFREX3B1YmlkIHx8PSAnLS8vTmV0c2NhcGUgQ29tbXVuaWNhdGlvbnMvL0RURCBSU1MgMC45MS8vRU4nOwokTkFNRVNQQUNFX1NZIHx8PSAnaHR0cDovL3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9zeW5kaWNhdGlvbi8nOwokQ0hVTktfTUlOVVRFUyA9IDEwOwoKJE5hdGl2aXplX25ld2xpbmVzID0gMSB1bmxlc3MgZGVmaW5lZCAkTmF0aXZpemVfbmV3bGluZXM7CiREV0lNID0gMSB1bmxlc3MgZGVmaW5lZCAkRFdJTTsKJFNsZWVweSA9CiAkRU5WeydNQUlMVE8nfSA/IDQgICMgdW5kZXIgY3JvbnRhYgogOiAoJEVOVnsnVEVSTSd9IHx8ICRFTlZ7J1JFUVVFU1RfTUVUSE9EJ30gfHwgJEVOVnsnQ09NU1BFQyd9ICkgPyAwCiAgICAjIGFsbW9zdCBkZWZpbml0ZWx5IG5vdCB1bmRlciBjcm9udGFiCiA6IDQgICB1bmxlc3MgZGVmaW5lZCAkU2xlZXB5OwpAUmV0cnlfZGVsYXlzID0gKDQsIDEwLCAyMCwgNDApOwokTWF5YmVJbmRlbnQgPSAnICAnOwokTWF5YmVOTCA9ICJcbiI7CiMkTWF5YmVOTCA9ICRNYXliZUluZGVudCA9ICcnOyAgIyB0ZXJzZXIsIG1vcmUgZ3JlcC13b3J0aHkKCmZvcmVhY2ggbXkgJHAgKCAgIyBwb3J0cyB3ZSdsbCByZWZ1c2UgdG8gZG8gSFRUUCBvbgpxdzwwIDEgNyA5IDExIDEzIDE1IDE3IDE5IDIwIDIxIDIyIDIzIDI1IDM3IDQyIDQzIDUzIDcwIDc5IDk1IDEwMSAxMDIgMTAzCiAgMTA0IDEwNyAxMDkgMTEwIDExMSAxMTMgMTE1IDExNyAxMTkgMTIzIDEzNSAxMzcgMTM4IDEzOSAxNDMgMzg5IDQ0MyA1MTIKICA1MTMgNTE0IDUxNSA1MTcgNTE4IDUyNiA1MzAgNTMxIDUzMiA1NDAgNTU2IDY2NjcKPikgeyAkQmFkUG9ydHN7JHB9ID0gMSB1bmxlc3MgZGVmaW5lZCAkQmFkUG9ydHN7JHB9OyB9CgokVXNlckFnZW50U3RyaW5nIHx8PSAiWG1sUnNzU2ltcGxlR2VuLyRWRVJTSU9OIjsKCiMuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgpzdWIgX2hpZGUge3B1c2ggQEhpZGllcywgQF8gfTsKX2hpZGUgcXcoaW5pdCBpbXBvcnQpOwoKIy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCgoKPWhlYWQxIE5BTUUKClhNTDo6UlNTOjpTaW1wbGVHZW4gLSBmb3Igd3JpdGluZyBSU1MgZmlsZXMKCj1oZWFkMSBTWU5PUFNJUwoKICAjIEEgY29tcGxldGUgc2NyZWVuLXNjcmFwZXIgYW5kIFJTUyBnZW5lcmF0b3IgaGVyZToKICAKICB1c2Ugc3RyaWN0OwogIHVzZSBYTUw6OlJTUzo6U2ltcGxlR2VuOwogIG15ICR1cmwgPSBxPGh0dHA6Ly93d3cuZXhpbGUucnUvPjsKICAKICByc3NfbmV3KCAkdXJsLCAiZVhpbGUiLCAiTW9zY293LWJhc2VkIEFsdGVybmF0aXZlIE5ld3NwYXBlciIgKTsKICByc3NfbGFuZ3VhZ2UoICdlbicgKTsKICByc3Nfd2VibWFzdGVyKCAneHh4eHhAeW91cmRvbWFpbi5jb20nICk7CiAgcnNzX3R3aWNlX2RhaWx5KCk7CiAgCiAgZ2V0X3VybCggJHVybCApOwogIAogIHdoaWxlKAogICBtezxoND5ccyo8YSBocmVmPScvKC4qPyknLio/PiguKj8pPC9hPlxzKjwvaDQ+XHMqPHAuKj8+KC4qPyk8YSBocmVmPScvfXNnCiAgKSB7CiAgICByc3NfaXRlbSgiJHVybCQxIiwgJDIsICQzKTsKICB9CiAgCiAgZGllICJObyBpdGVtcyBpbiB0aGlzIGNvbnRlbnQ/ISB7e1xuJF9cbn19XG5BYm9ydGluZyIKICAgdW5sZXNzIHJzc19pdGVtX2NvdW50KCk7CiAgCiAgcnNzX3NhdmUoICdleGlsZS5yc3MnLCA0NSApOwogIGV4aXQ7Cgo9aGVhZDEgREVTQ1JJUFRJT04KClRoaXMgbW9kdWxlIGlzIGZvciB3cml0aW5nIFJTUyBmaWxlcywgc2ltcGx5LiBJdCB0cmFuc3BhcmVudGx5IGhhbmRsZXMKYWxsIHRoZSB1bnBsZWFzYW50IGRldGFpbHMgb2YgUlNTLCBsaWtlIHByb3BlciBYTUwgZXNjYXBpbmcsIGFuZCBhbHNvIGhhcwphIGdvb2QgbnVtYmVyIG9mIERvLVdoYXQtSS1NZWFuIGZlYXR1cmVzLCBsaWtlIG5vdCBjaGFuZ2luZyB0aGUgbW9kdGltZQpvbiBhIHdyaXR0ZW4tb3V0IFJTUyBmaWxlIGlmIHRoZSBmaWxlIGNvbnRlbnQgaGFzbid0IGNoYW5nZWQsIGFuZCBsaWtlCmF1dG9tYXRpY2FsbHkgcmVtb3ZpbmcgYW55IEhUTUwgdGFncyBmcm9tIGNvbnRlbnQgeW91IG1pZ2h0IHBhc3MgaW4uCgpUaGlzIG1vZHVsZSBpc24ndCBtZWFudCB0byBoYXZlIHRoZSBmdWxsIGV4cHJlc3NpdmUgcG93ZXIgb2YgUlNTOwppbnN0ZWFkLCBpdCBwcm92aWRlcyBmdW5jdGlvbnMgdGhhdCBhcmUgbW9zdCBjb21tb25seSBuZWVkZWQgYnkKUlNTLXdyaXRpbmcgcHJvZ3JhbXMuCgo9aGVhZDEgSU5URVJGQUNFCgpUaGlzIG1vZHVsZSBwcm92aWRlcyBhIGJ1bmNoIG9mIGZ1bmN0aW9ucyBmb3Igc3RhcnRpbmcgYW4gUlNTIGZlZWQgaW4KbWVtb3J5LCBwdXR0aW5nIGl0ZW1zIGludG8gaXQsIGFuZCBzYXZpbmcgaXQgdG8gZGlzayAob3IgcHJpbnRpbmcgaXQgYXMKYSBzdHJpbmcsIGFzIGluIGEgQ0dJKS4gSWYgeW91IHByZWZlciBhbiBvYmplY3Qtb3JpZW50ZWQgaW50ZXJmYWNlCihvYnZpb3VzbHkgbW9yZSB1c2VmdWwgaWYgeW91J3JlIGNvbXBvc2luZyBzZXZlcmFsIGZlZWRzIGF0IG9uY2UpLCB0aGVuCnlvdSBjYW4gdXNlIHRoaXMgbW9kdWxlIGFzIGEgY2xhc3Mgd2hvc2UgbWV0aG9kcyBhcmUgdGhlIHNhbWUgYXMgdGhlCmZ1bmN0aW9uIG5hbWVzIG1pbnVzICJyc3NfIi4gRXhjZXB0IGZvciB0aGlzIGRldGFpbCBvZiB0aGUgbmFtaW5nLCB0aGUKZnVuY3Rpb25zIGFuZCBtZXRob2RzIGFyZSB0aGUgc2FtZSwgYmVoYXZlIHRoZSBzYW1lLCBhbmQgdGFrZSB0aGUgc2FtZQphcmd1bWVudHMuCgpUaGF0IGlzLCB0aGlzIGZ1bmN0aW9uYWwgY29kZToKCiAgdXNlIFhNTDo6UlNTOjpTaW1wbGVHZW47CiAgbXkgJHVybCA9IHE8aHR0cDovL3d3dy5leGlsZS5ydS8+OwogIAogIHJzc19uZXcoICR1cmwsICJlWGlsZSIgKTsKICByc3NfbGFuZ3VhZ2UoICdlbicgKTsKICBnZXRfdXJsKCAkdXJsICk7CiAgLi4uCgpkb2VzIHRoZSBzYW1lIHdvcmsgYXMgdGhpcyBPTyBjb2RlOgoKICB1c2UgWE1MOjpSU1M6OlNpbXBsZUdlbiAoKTsKICBteSAkdXJsID0gcTxodHRwOi8vd3d3LmV4aWxlLnJ1Lz47CiAgbXkgJHJzcyA9IFhNTDo6UlNTOjpTaW1wbGVHZW4tPm5ldyggJHVybCwgImVYaWxlIik7CiAgJHJzcy0+bGFuZ3VhZ2UoICdlbicgKTsKICAkcnNzLT5nZXRfdXJsKCAkdXJsICk7CiAgLi4uCgooTm90ZSB0aGF0IHRoZSBmdW5jdGlvbiBDPGdldF91cmw+IGRvZXNuJ3QgaGF2ZSBhIGxlYWRpbmcgInJzc18iLApzbyBpdHMgbWV0aG9kIG5hbWUgaXMgdGhlIHNhbWUgYXMgaXRzIGZ1bmN0aW9uIG5hbWUuICBJdCdzIHRoZQpvbmUgZXhjZXB0aW9uLikKCklmIHRoaXMgdGFsayBvZiBvYmplY3RzIHB1enpsZXMgeW91LCBzZWUgCkw8SFRNTDo6VHJlZTo6QWJvdXRPYmplY3RzPiBpbiB0aGUgQzxIVE1MLVRyZWU+IGRpc3QsIGFuZC9vciBzZWUKdGhlIGNoYXB0ZXIgIlVzZXIncyBWaWV3IG9mIE9iamVjdC1PcmllbnRlZCBNb2R1bGVzIgppbiBteSBib29rIEk8UGVybCAmIExXUD4gKEw8aHR0cDovL3d3dy5hbWF6b24uY29tL2V4ZWMvb2JpZG9zL0FTSU4vMDU5NjAwMTc4OT4pLgooVGhlIGJvb2sgaXMgYWxzbyB1c2VmdWwgYXMgYW4gZXh0ZW5kZWQgZGlzY3Vzc2lvbiBvZiBzY3JlZW4tc2NyYXBpbmcuKQoKTm90ZTogaW4gdGhlIGNvZGUgYmVsb3csIEkgdXNlIHRoZSB3b3JkICJhY2Nlc3NvciIgYSBsb3QsIHRvIHJlZmVyCnRvIGEgZnVuY3Rpb24gb3IgbWV0aG9kIHRoYXQgeW91IGNhbiBjYWxsIHR3byBwb3NzaWJsZSB3YXlzOgoxKSBsaWtlIEM8Zm9vKEk8dmFsPik+IHRvIHNldCB0aGUgImZvbyIgYXR0cmlidXRlIHRvIHRoZSB2YWx1ZSBJPHZhbD4sCm9yIDIpIGxpa2UgQzxmb28oKT4gdG8gcmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgImZvbyIgYXR0cmlidXRlLgoKCj1oZWFkMSBGVU5DVElPTlMKCj1vdmVyCgo9aXRlbSBDPHJzc19uZXcoIEk8dXJsPiApOz4KCj1pdGVtIEM8cnNzX25ldyggSTx1cmwsIHRpdGxlPiApOz4KCj1pdGVtIEM8cnNzX25ldyggSTx1cmwsIHRpdGxlLCBkZXNjcmlwdGlvbj4gKTs+Cgo9aXRlbSBJPG9yOj4gQzw8ICRyc3MgPSBYTUw6OlJTUzo6U2ltcGxlR2VuLT5uZXcoLi4uKTsgPj4KClRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhIG5ldyBSU1MgZmVlZCBpbiBtZW1vcnkuICBUaGlzIHNob3VsZCBiZSB0aGUgZmlyc3QKQzxyc3NfSTx3aGF0ZXZlcj4+IGZ1bmN0aW9uIHlvdSBjYWxsIGluIHlvdXIgcHJvZ3JhbS4gIElmIHlvdSBjYWxsIGl0CmFnYWluLCBpdCBlcmFzZXMgdGhlIGN1cnJlbnQgb2JqZWN0IChpZiBhbnkpIGFuZCBzZXRzIHVwIGEgbmV3IG9uZSBhY2NvcmRpbmcKdG8gd2hhdGV2ZXIgcGFyYW1ldGVycyB5b3UgcGFzcy4KClRoZSBwYXJhbWV0ZXJzIGFyZSB0aGUgZnVsbCBVUkwsIHRoZSB0aXRsZSwgYW5kIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGUKc2l0ZSAob3IgcGFnZSkgdGhhdCB5b3UncmUgcHJvdmlkaW5nIGFuIFJTUyBmZWVkIG9mLiBUaGUgZGVzY3JpcHRpb24gaXMKb3B0aW9uYWwsIGJ1dCB5b3Ugc2hvdWxkIHByb3ZpZGUgYXQgbGVhc3QgYSBVUkwgYW5kIHRpdGxlLgoKRXhhbXBsZXM6CgogIHJzc19uZXcoICR1cmwsICJlWGlsZSIsICJNb3Njb3ctYmFzZWQgQWx0ZXJuYXRpdmUgTmV3c3BhcGVyIiApOwoKICByc3NfbmV3KCAnaHR0cDovL3d3dy5teWJhem91a2kuY29tL25ld3MvJywgIkJhem91a2kgTmV3cyEiICk7CgooQXMgYSBtZXRob2QsIFhNTDo6UlNTOjpTaW1wbGVHZW4tPm5ldyBzaW1wbHkgcmV0dXJucyBhIG5ldwpSU1Mgb2JqZWN0LikKCj1jdXQKCnN1YiBuZXcgewogIG15ICRjbGFzcyA9IHNoaWZ0OwogICRjbGFzcyA9IHJlZigkY2xhc3MpIHx8ICRjbGFzczsKICBteSAkbmV3ID0gYmxlc3MgeyAnaXRlbXMnID0+IFtdIH0sICRjbGFzczsKICAkbmV3LT5pbml0KCk7CgogIEBfIGFuZCAkbmV3LT51cmwoc2hpZnQpOwogIEBfIGFuZCAkbmV3LT50aXRsZShzaGlmdCk7CiAgQF8gYW5kICRuZXctPmRlc2NyaXB0aW9uKHNoaWZ0KTsKCiAgJG5ldy0+aXRlbV9saW1pdCggMCApOwogICRuZXctPnJldGVudGlvbiggMzIgKiAyNCAqIDYwICogNjAgKTsgIyAzMiBkYXlzCgojICAoLWUgInJzcy5jc3MiKSA/ICRuZXctPmNzcygiLi9yc3MuY3NzIikKIyAgICA6ICRuZXctPmNzcygiaHR0cDovL3d3dy5pbnRlcmdsYWNpYWwuY29tL3Jzcy9yc3MuY3NzIik7CgojICAoLWUgImFib3V0X3Jzcy5odG1sIikgPyAkbmV3LT5kb2NzKCIuL2Fib3V0X3Jzcy5odG1sIikKIyAgICA6ICRuZXctPmRvY3MoImh0dHA6Ly93d3cuaW50ZXJnbGFjaWFsLmNvbS9yc3MvYWJvdXQuaHRtbCIpOwoKICByZXR1cm4gJG5ldzsKfQoKc3ViIGluaXQgeyByZXR1cm47IH0gICAjIG92ZXJyaWRlIGluIHN1YmNsYXNzIGFzIG5lY2Vzc2FyeQoKIy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCl9fUEFDS0FHRV9fLT5fYWNjZXNzb3JpemUoCiBxdygKICB0aXRsZSBkZXNjcmlwdGlvbiB1cmwgbGFuZ3VhZ2UgY3NzIHhzbCB3ZWJNYXN0ZXIgZG9jcwogIGl0ZW1fbGltaXQgdHRsCiByZXRlbnRpb24KICBhbGxvd19kdXBsaWNhdGVzCiAgaW1hZ2VfdGl0bGUgaW1hZ2VfbGluayBpbWFnZV91cmwgaW1hZ2Vfd2lkdGggaW1hZ2VfaGVpZ2h0IGltYWdlX2Rlc2NyaXB0aW9uIAogKQopOwoKPWl0ZW0gdGhlIGFjY2Vzc29yIEM8cnNzX2xhbmd1YWdlKEk8bGFuZ3VhZ2VfdGFnPik+CgpUaGlzIGRlY2xhcmVzIHdoYXQgbGFuZ3VhZ2UgdGhpcyBSU1MgZmVlZCBpcyBpbi4gIEl0IG11c3QgYmUKYW4gUkZDMzA2Ni1zdHlsZSBsYW5ndWFnZSB0YWdzIGxpa2UgImVuIiwgb3IgImVuLVVTIiwgb3IgInpoLVRXIi4KKFNlZSBJPEkxOE46OkxhbmdUYWdzOjpMaXN0PiBmb3IgYSBsaXN0LikKSWYgeW91IGRvbid0IHNldCB0aGUgZmVlZCdzIGxhbmd1YWdlLCBpdCBkZWZhdWx0cyB0byAiZW4iLCBmb3IgZ2VuZXJpYyBFbmdsaXNoLgoKSWYgeW91IGNhbGwgdGhpcyBmdW5jdGlvbiB3aXRob3V0IGEgcGFyYW1ldGVyLCBpdCByZXR1cm5zCnRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBSU1MgZmVlZCdzIGxhbmd1YWdlLiAgRm9yIGV4YW1wbGU6CgogIHByaW50ICJJJ20gbWFraW5nIGFuIFJTUyBmZWVkIGZvciAiLCByc3NfbGFuZ3VhZ2UoKSwgIiFcbiI7CgpUaGUgc2FtZSBpcyB0cnVlIGZvciBhbGwgdGhlIGZ1bmN0aW9ucyB0aGF0IEkgbGFiZWwgYXMgImFjY2Vzc29ycyIuCgoKPWl0ZW0gdGhlIGFjY2Vzc29yIEM8cnNzX2l0ZW1fbGltaXQoSTxudW1iZXI+KT4KClRoaXMgc2V0cyB0aGUgbWF4aW11bSBudW1iZXIgb2YgaXRlbXMgdGhhdCB0aGlzIGZlZWQgd2lsbCBzaG93LgoKVGhlIGRlZmF1bHQgdmFsdWUgaXMgMCwgbWVhbmluZyB0aGF0IHRoZXJlIGlzIG5vIG1heGltdW0uCgpJZiB5b3Ugc2V0IGl0IHRvIGEgcG9zaXRpdmUgbnVtYmVyIEk8Tj4sIHRoZW4gdGhlIGZlZWQgd2lsbCBzaG93IG9ubHkKdGhlIGZpcnN0IEk8Tj4gaXRlbXMgdGhhdCB5b3UgZGVjbGFyZSB3aXRoIEM8cnNzX2l0ZW0+LiAoT3IsIGlmIHlvdSBzZXQKQzxyc3NfaGlzdG9yeV9maWxlPiwgdGhlbiB0aGUgbmV3ZXN0IEk8Tj4gaXRlbXMgdGhhdCB5b3UgZGVjbGFyZQp3aXRoIEM8cnNzX2l0ZW0+LikKCklmIHlvdSBzZXQgaXQgdG8gYSBuZWdhdGl2ZSBudW1iZXIgSTwtTj4sIHRoZW4gdGhlIGZlZWQgd2lsbCBzaG93IG9ubHkKdGhlIGxhc3QgSTxOPiBpdGVtcyB0aGF0IHlvdSBkZWNsYXJlIHdpdGggQzxyc3NfaXRlbT4uIChPciwgaWYgeW91IHNldApDPHJzc19oaXN0b3J5X2ZpbGU+LCB0aGVuIHRoZSBvbGRlc3QgSTxOPiBpdGVtcyB5b3UgZGVjbGFyZSB3aXRoIEM8cnNzX2l0ZW0+LAp3aGljaCBpcyB1bmxpa2VseSB0byBiZSB1c2VmdWwhKQoKCj1pdGVtIHRoZSBhY2Nlc3NvciBDPHJzc193ZWJNYXN0ZXIoSTxlbWFpbC1hZGRyZXNzPik+CgpUaGlzIGRlY2xhcmVzIHdoYXQgZW1haWwgYWRkcmVzcyB5b3UsIHRoZSBSU1MgZ2VuZXJhdG9yIG1hbmFnZXIsIGNhbiBiZQpyZWFjaGVkIGF0LiAgRXhhbXBsZToKCiAgcnNzX3dlYk1hc3RlciggJ3NidXJrZUBiYXpvdWtpLW5ld3MuaW50JyApOwoKPWN1dAoKIy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCgo9aXRlbSBDPHJzc19oaXN0b3J5X2ZpbGUoIEk8ZmlsZW5hbWU+ICk+CgpUaGlzIGRlY2xhcmVzIHRoYXQgeW91IHdhbnQgdGhpcyBSU1MgZmVlZCB0byBrZWVwIHRyYWNrIG9mIHdoYXQgaXRlbXMgYXJlCm5ldywgYW5kIHRvIGxpc3QgdGhlbSBmaXJzdCB3aGVuIHRoZSBSU1MgaXMgZW1pdHRlZC4gIFRvIGRvIHRoaXMsIHRoZSBSU1MKZ2VuZXJhdG9yIGhhcyB0byBzdG9yZSBpbmZvcm1hdGlvbiBpbiBhIGZpbGUsIHdoZXJlIGl0IHRyYWNrcyBpdHMgImhpc3RvcnkiLAppLmUuLCB3aGVuIHdhcyB0aGUgZmlyc3QgdGltZSBpdCBzYXcgZ2l2ZW4gVVJMcywgYW5kIHRoZSBtb3N0IHJlY2VudCB0aW1lCml0IHNhdyBnaXZlbiBVUkxzLgoKVHlwaWNhbCB1c2FnZSBpczoKCiAgcnNzX2hpc3RvcnlfZmlsZSggJ3RoaXNyc3NmZWVkLmRhdCcgKTsKCllvdSBzaG91bGQgY2FsbCBDPHJzc19oaXN0b3J5X2ZpbGU+IEk8YmVmb3JlPiB5b3UgbWFrZSBhbnkgY2FsbHMgdG8KQzxyc3NfaXRlbT4uCgpUaGUgaGlzdG9yeS1maWxlIGZlYXR1cmUgaXMgbWVhbnQgZm9yIGNhc2VzIHdoZXJlIHlvdXIgUlNTLWdlbmVyYXRvcgpwcm9ncmFtIGNhbGxzIEM8cnNzX2l0ZW0+IG9uIEk8ZXZlcnk+IGxpbmsgaXQgc2VlcywgYnV0IG9ubHkgd2FudHMgdGhlCkk8bmV3PiBsaW5rcyB0byBhcHBlYXIgaW4gdGhlIFJTUyBvdXRwdXQuIChUaGlzIGNhbiBiZSBhIGdvb2QgYXBwcm9hY2gKaWYgeW91J3JlIG1ha2luZyBhbiBSU1MgZmVlZCBvZiBhIHBhZ2UgbGlrZQpDPGh0dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsvPiB3aGVyZSB0aGVyZSdzIHNvbWUgbmV3IGxpbmtzICh0byB0aGUKcmVjZW50bHkgYWRkZWQgc3RvcmllcyksIGJ1dCBhbHNvIGxpbmtzIHRvIHNvbWUgZGF5cy1vbGQgc3RvcmllcywgYW5kCkk8YWxzbz4gbGlua3MgdG8gc29tZSBhbHdheXMtdGhlcmUgdGhpbmdzIGxpa2UgIkFyY2hpdmUgU2VhcmNoIiBhbmQKIkNvbnRhY3QgVXMiIHBhZ2VzLgoKT25jZSB5b3UgY2FsbCByc3NfaGlzdG9yeV9maWxlLCB0aGUgc3BlY2lmaWVkIGZpbGUgaXMgcmVhZCBpbi4gIFRoZQppbi1tZW1vcnkgaGlzdG9yeSAoc3RvcmVkIGluIHRoZSBSU1Mgb2JqZWN0KSBpcyB1cGRhdGVkIGFzIHlvdQpjYWxsIEM8cnNzX2l0ZW0+LiAgQnV0IHRoZSBmaWxlIGlzbid0IHVwZGF0ZWQgdW50aWwgeW91IGNhbGwgcnNzX3NhdmUuCgooQSBkby13aGF0LUktbWVhbiBzaWRlIGVmZmVjdCBvZiBjYWxsaW5nIEM8cnNzX2hpc3RvcnlfZmlsZT4gaXMgdGhhdCBpdApzZXRzIHJzc19pdGVtX2xpbWl0IHRvIDI1IGlmIGl0IGlzIGN1cnJlbnRseSAwLikKCihJbmNpZGVudGFsbHksIGlmIHlvdSdyZSB1c2luZyByc3NfaGlzdG9yeV9maWxlIGFzIHBhcnQgb2YgYSBDR0kgdGhhdAplbWl0cyBSU1MgZGF0YSwgaW5zdGVhZCBvZiBhIHByb2dyYW0gdGhhdCBqdXN0IHNhdmVzIHRvIGFuIFJTUyBmaWxlLAp0aGVuIHRoaW5ncyB3aWxsIGdldCBjb21wbGljYXRlZC4gWW91J2xsIG5lZWQgdG8gY2FsbCBhbiBpbnRlcm5hbCBtZXRob2QKdG8gZXhwbGljaXRseSBjb21taXQgdGhlIGhpc3RvcnkgZmlsZSB0byBkaXNrLCBhbmQgeW91J2xsIG5lZWQgYQpzZW1hcGhvcmUgZmlsZSB0byBhdm9pZCByYWNlIGNvbmRpdGlvbnMuIEVtYWlsIG1lIGZvciBmdWxsIGluZm8uKQoKPWN1dAoKc3ViIGhpc3RvcnlfZmlsZSB7CiAgbXkgJHNlbGYgPSBzaGlmdDsKICByZXR1cm4gJHNlbGYtPnsnaGlzdG9yeV9maWxlJ30gdW5sZXNzIEBfOyAgICMgcmVhZCBhY2Nlc3Npb24KICBteSAkZmlsZSA9ICRfWzBdOwogIAogIHVubGVzcyhkZWZpbmVkICRmaWxlICBhbmQgIGxlbmd0aCAkZmlsZSAgYW5kICAkZmlsZSA9fiBtL1xTLykgewogICAgREVCVUcgYW5kIHByaW50ICJLaWxsaW5nICRzZWxmICdzIG1lbW9yeS1oaXN0b3J5LlxuIjsKICAgICAjIEkgZG9uJ3Qga25vdyBpZiB0aGlzJ2QgYmUgYWN0dWFsbHkgdXNlZnVsIGZvciBhbnl0aGluZyB0aG8uCiAgICBkZWxldGUgJHNlbGYtPnsnaGlzdG9yeV9maWxlJ307CiAgICBkZWxldGUgJHNlbGYtPnsnX2ZpcnN0X3NlZW4nIH07CiAgICBkZWxldGUgJHNlbGYtPnsnX2xhc3Rfc2VlbicgIH07CiAgICByZXR1cm4gdW5kZWY7CiAgfQogIAogIERFQlVHIGFuZCBwcmludCAiQ29uc2lkZXJpbmcgJGZpbGUgYXMgJHNlbGYgJ3MgaGlzdG9yeS5cbiI7CiAgJHNlbGYtPnsnaGlzdG9yeV9maWxlJ30gPSAkZmlsZTsKICAkc2VsZi0+X3JlYWRfaGlzdG9yeV9maWxlOwogIAogICRzZWxmLT5pdGVtX2xpbWl0KCAyNSApIGlmICREV0lNIGFuZCAhJHNlbGYtPml0ZW1fbGltaXQoKTsKCiAgcmV0dXJuICRmaWxlOwp9CgojLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KCgo9aXRlbSBDPHJzc19pdGVtKCBJPHVybD4gKTs+Cgo9aXRlbSBDPHJzc19pdGVtKCBJPHVybCwgdGl0bGU+ICk7PgoKPWl0ZW0gQzxyc3NfaXRlbSggSTx1cmwsIHRpdGxlLCBkZXNjcmlwdGlvbj4gKTs+CgpUaGlzIGFkZHMgYSBuZXcgaXRlbSB0byB0aGUgY3VycmVudCBmZWVkLiBZb3Ugd2lsbCBuZWVkIHRvIHNwZWNpZnkgdGhlClVSTCB0byBhZGQgKGFuZCBpdCBzaG91bGQgYmUgYSB2YWxpZC1sb29raW5nIFVSTCwgc3RhcnRpbmcgd2l0aAoiSTxzb21ldGhpbmc6PiIsIGFuZCBub3QgY29udGFpbmluZyBhbnkgc3BhY2VzKS4gWW91IG1heSBhbHNvIHNwZWNpZnkKdGhlIHRpdGxlLCBidXQgaXQncyBvcHRpb25hbC4gQW5kIGZpbmFsbHksIHlvdSBjYW4gb3B0aW9uYWxseSBzcGVjaWZ5IGEKZGVzY3JpcHRpb24uIChZb3UgY2FuIHJlbWVtYmVyIHRoaXMgYmVjYXVzZSBpdCBzdGFydHMgd2l0aCB0aGUgZXNzZW50aWFsCml0ZW0gZmlyc3QsIGFuZCBwcm9ncmVzc2VzIHRvd2FyZCB0aGUgbW9zdCBvcHRpb25hbC4pCgpMZWFkaW5nIGFuZCB0YWlsaW5nIHdoaXRlc3BhY2UgaXMgcmVtb3ZlZCBmcm9tIHdoaWNoZXZlciBvZiBJPHVybCwKdGl0bGUsPiBhbmQgSTxkZXNjcmlwdGlvbj4gYXJlIGRlZmluZWQgdmFsdWVzLCBhbmQgSFRNTCBpcyBwYXJzZWQgb3V0LgoKQSBzaW1wbGUgdXNhZ2U6CgogIHJzc19pdGVtKAogICAgImh0dHA6Ly93d3cuaGFycGVycy5vcmcvTW9zdFJlY2VudFdSLmh0bWwiLAogICAgIkhhcnBlcidzIE1hZ2F6aW5lJ3MgV2Vla2x5IFJldmlldyIKICApOwoKQWx0aG91Z2ggaW4gcHJhY3RpY2UsIGEgdHlwaWNhbCBjYWxsIHdvbid0IGhhdmUgc3RyaW5nIGNvbnN0YW50cywgYnV0CndpbGwgaW5zdGVhZCBiZSBsaWtlIHRoZSBleGFtcGxlIGluIHRoZSBMPFN5bm9wc2lzIHNlY3Rpb3N8LyJTWU5PUFNJUyI+LApuYW1lbHk6CgogIHJzc19pdGVtKCIkdXJsJDEiLCAkMiwgJDMpOwoKSW5jaWRlbnRhbGx5LCBhcyBhIGRvLXdoYXQtSS1tZWFuIGZlYXR1cmUsIGlmIHRoZSBmaXJzdCBwYXJhbWV0ZXIKZG9lc24ndCBsb29rIGxpa2UgYSBVUkwgYnV0IG9uZSBvZiB0aGUgb3RoZXJzIGRvZXMsIHRoZW4gdGhpcyBlcnJvciBpcwpzaWxlbnRseSBmb3JnaXZlbi4gIFRoaXMgaXMgc28geW91IGNhbiBvY2Nhc2lvbmFsbHkgc2xpcCB1cCBhbmQgZm9yZ2V0CnRoZSBvcmRlciBvZiB0aGUgcGFyYW1ldGVycy4KCihJbiB0aGUgdW5saWtlbHkgZXZlbnQgd2hlcmUgeW91IEk8bmVlZD4gdG8gYXZvaWQgdGhlIEhUTUwtcmVtb3ZhbApmZWF0dXJlcywgeW91IGNhbiBkbyB0aGlzIGJ5IHBhc3Npbmcgc2NhbGFyLXJlZmVyZW5jZXMgaW5zdGVhZCBvZgpub3JtYWwgc3RyaW5ncywgbGlrZSBzbzogQzxyc3NfaXRlbSgkdXJsLCAkdGl0bGUsIFwkbm90X3RvX2JlX2VzY2FwZWQpPi4pCgo9Y3V0CgpzdWIgaXRlbSB7ICMgQWRkIGFuIGl0ZW06ICAodXJsLCB0aXRsZSwgZGVzY3JpcHRpb24pCiAgbXkoJHNlbGYsIEBwYXJhbXMpID0gQF87CiAgaWYoIGdyZXAgZGVmaW5lZCgkXykgJiYgbGVuZ3RoKCRfKSwgQHBhcmFtcyApIHsKICAgIHB1c2ggQHskc2VsZi0+eydpdGVtcyd9fSwKICAgICAgWwogICAgICAgICRzZWxmLT5fcHJvY2Vzc19pdGVtX3BhcmFtcyhAcGFyYW1zKSAgIyBEV0lNIHRoaW5ncyBoYXBwZW4gaGVyZQogICAgICBdCiAgICA7CiAgICBERUJVRyBhbmQgcHJpbnQgIkFkZGluZyBpdGVtICIsCiAgICAgam9pbigifCIsIEB7ICRzZWxmLT57J2l0ZW1zJ31bLTFdIH0pLCAiXG4iOwoKICAgICMgVXBkYXRlIGhpc3RvcnkuLi4KICAgIGlmKCAkc2VsZi0+eydfZmlyc3Rfc2Vlbid9ICkgewogICAgICBteSAkdXJsID0gJHNlbGYtPnsnaXRlbXMnfVstMV1bMF07CiAgICAgIG15ICRub3cgPQogICAgICAgICAgICAkc2VsZi0+eydfdmlyZ2luX2l0ZW1fdGltZXN0YW1wJ30KICAgICAgICA/IC0tJHNlbGYtPnsnX3Zpcmdpbl9pdGVtX3RpbWVzdGFtcCd9CiAgICAgICAgOiB0aW1lKCkKICAgICAgOwogICAgICAkc2VsZi0+eydfZmlyc3Rfc2Vlbid9eyR1cmx9IHx8PSAkbm93OwogICAgICAkc2VsZi0+eydfbGFzdF9zZWVuJyB9eyR1cmx9ICAgPSAkbm93OwogICAgfQoKICB9IGVsc2UgewogICAgREVCVUcgYW5kIHByaW50ICJOb3QgYWRkaW5nIGl0ZW0gLS0gZW1wdHkgcGFyYW1zXG4iOwogIH0KICByZXR1cm4gJHNlbGY7Cn0KCiMuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgoKPWl0ZW0gQzxyc3NfaXRlbV9jb3VudCgpPgoKVGhpcyByZXR1cm5zIHRoZSBudW1iZXIgb2YgaXRlbXMgeW91J3ZlIGRlY2xhcmVkLiAgSSBhbnRpY2lwYXRlIHRoYXQgaXRzCm1haW4gdXNhZ2Ugd2lsbCBiZSBzb21ldGhpbmcgbGlrZToKCiAgZGllICJXaGF0LCBubyBvYmplY3RzIGZvdW5kIGF0ICR1cmwgPyEiCiAgIHVubGVzcyByc3NfaXRlbV9jb3VudCgpOwoKb3IsIG1heWJlLi4uCgogIGV4aXQgdW5sZXNzIHJzc19pdGVtX2NvdW50KCk7CgouLi5kZXBlbmRpbmcgb24gaG93L3doZXRoZXIgeW91J2Qgd2FudCB0byByZWFjdCB0byBjYXNlcyB3aGVyZSB5b3UgZG9uJ3QKc2VlIGFueXRoaW5nIHRvIHB1dCBpbnRvIGFuIFJTUyBmZWVkLgoKTm90ZSB0aGF0IHRoZSBwYXJlbnMgYXJlIG9wdGlvbmFsLCBzaW5jZSB0aGlzIGNvbW1hbmQgdGFrZXMgbm8gb3B0aW9ucwooanVzdCBsaWtlIFBlcmwncyBDPHRpbWUoKT4gZnVuY3Rpb24pLgoKPWN1dAoKc3ViIGl0ZW1fY291bnQgIHsgc2NhbGFyIEB7ICRfWzBdLT57J2l0ZW1zJ30gfTsgfQpzdWIgaXRlbXNfY291bnQgeyBzaGlmdC0+aXRlbV9jb3VudCB9ICMgaGFybWxlc3MgYWxpYXMKIy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCgpzdWIgX3NvcnRfaXRlbXNfbmV3ZXN0X2ZpcnN0IHsKICBteSAkc2VsZiA9IHNoaWZ0OwogIG15ICRzZWVuID0gJHNlbGYtPnsnX2ZpcnN0X3NlZW4nfTsKCiAgJHNlZW4gb3IgQ2FycDo6Y29uZmVzcygKICAgIkNhbid0IHNvcnQgaXRlbXMgYnkgYWdlIHVubGVzcyB5b3UgZGVmaW5lIGEgaGlzdG9yeSBmaWxlISIpOwoKICBteSAkaXRlbXMgPSAkc2VsZi0+eydpdGVtcyd9IHx8IGRpZSAiTk8gSVRFTVMhPyI7CgogIGlmKCBERUJVRyApIHsKICAgIHByaW50ICJcblNvcnRpbmcgIiwgc2NhbGFyKEAkaXRlbXMpLCAiIGl0ZW1zLCBuZXdlc3QgZmlyc3QuICBBZ2UgZHVtcDpcbiI7CiAgICBmb3JlYWNoIG15ICRpIChAJGl0ZW1zKSB7CiAgICAgIGlmKCAkaS0+WzBdICkgewogICAgICAgIHByaW50ZiAiICAlcyA6ICVzICglcylcbiIsCiAgICAgICAgICRpLT5bMF0sICRzZWVuLT57JGktPlswXX0gfHwgMCwgc2NhbGFyIGxvY2FsdGltZSgKICAgICAgICAgICAgICAgICAgJHNlZW4tPnskaS0+WzBdfSB8fCAwKQogICAgICAgIDsKICAgICAgfSBlbHNlIHsKICAgICAgICBwcmludCAiIE5PVVJMXG4iOwogICAgICB9CiAgICB9CiAgICBwcmludCAiIChubyBpdGVtcylcbiIgdW5sZXNzIEAkaXRlbXM7CiAgICBwcmludCAiKEVuZCBoaXN0b3J5IGR1bXAuKVxuXG4iOwogIH0KCiAgQCRpdGVtcyA9CiAgICBzb3J0IHsgKCRzZWVuLT57JGItPlswXSB8fCcnfSB8fDApCiAgICAgICA8PT4gKCRzZWVuLT57JGEtPlswXSB8fCcnfSB8fDApCiAgICAgICBvciAkYS0+WzBdIGNtcCAkYi0+WzBdICAjIFNvIGl0J3MgYXQgbGVhc3QgcHJlZGljdGFibGUKICAgIH0KICAgICAgQCRpdGVtczsKICByZXR1cm47Cn0KCiMuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgoKPWl0ZW0gQzxyc3NfaW1hZ2UoIEk8dXJsLCBoLCB3PiApOz4KClRoaXMgZGVjbGFyZXMgdGhhdCB5b3Ugd2FudCB0byBkZWNsYXJlIGEgcGFydGljdWxhciBpbWFnZSBhcyB0aGUgbG9nbyBmb3IKdGhpcyBmZWVkLiAgTW9zdCBmZWVkcyBkb24ndCBoYXZlIHN1Y2ggYSB0aGluZywgYW5kIG1vc3QgcmVhZGVycyBqdXN0IGlnbm9yZQppdCBhbnl3YXksIGJ1dCBpZiB5b3Ugd2FudCB0byBkZWNsYXJlIGl0LCB0aGlzIGZ1bmN0aW9uIGlzIGhvdy4gIFRoZQp0aHJlZSBwYXJhbWV0ZXJzLCB3aGljaCBhcmUgYWxsIHJlcXVpcmVkLCBhcmU6IHRoZSBpbWFnZSdzIFVSTCwgaXRzCmhlaWdodCBpbiBwaXhlbHMsIGFuZCBpdHMgd2lkdGggaW4gcGl4ZWxzLgpBY2NvcmRpbmcgdG8gdmFyaW91cyBzcGVjcywgdGhlIHdpZHRoIHNob3VsZC9tdXN0IGJlIGJldHdlZW4gMSBhbmQgMTQ0LAphbiB0aGUgaGVpZ2h0IHNob3VsZC9tdXN0IGJlIGJldHdlZW4gMSBhbmQgNDAwLgoKQSB0eXBpY2FsIHVzYWdlOgoKICByc3NfaW1hZ2UoImh0dHA6Ly9pbnRlcmdsYWNpYWwuY29tL3Jzcy93ZWVibC5naWYiLCAxMDYsIDE0MCk7CgpCZSBjYXJlZnVsIG5vdCB0byBtaXggdXAgdGhlIGhlaWdodCBhbmQgd2lkdGguCgo9Y3V0CgoKc3ViIGltYWdlIHsKICBteSgkc2VsZiwgJHVybCwgJGgsICR3KSA9IHNwbGljZShAXywwLDQpOwogIENhcnA6OmNyb2FrICJVc2FnZTogXCRyc3MtPmltYWdlKFwkdXJsLCBcJGgsIFwkdykiCiAgIHVubGVzcyAkdXJsIGFuZCAkaCBhbmQgJHcKICAgICBhbmQgJGggPX4gbS9eXGR7MSwzfSQvcwogICAgIGFuZCAkdyA9fiBtL15cZHsxLDN9JC9zCiAgOwogICRzZWxmLT5pbWFnZV91cmwoJHVybCk7CiAgJHNlbGYtPmltYWdlX2hlaWdodCgkaCk7CiAgJHNlbGYtPmltYWdlX3dpZHRoKCAkdyk7CgogICAgIyAgd2lkdGggbXVzdCAoc2hvdWxkPykgYmUgYmV0d2VlbiAxIGFuZCAxNDQKICAgICMgaGVpZ2h0IG11c3QgKHNob3VsZD8pIGJlIGJldHdlZW4gMSBhbmQgNDAwCgogIEBfIGFuZCAkc2VsZi0+aW1hZ2VfbGluayggICAgICAgIHNoaWZ0KTsKICBAXyBhbmQgJHNlbGYtPmltYWdlX3RpdGxlKCAgICAgICBzaGlmdCk7CiAgQF8gYW5kICRzZWxmLT5pbWFnZV9kZXNjcmlwdGlvbiggc2hpZnQpOwogIHJldHVybjsKfQoKIy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCgo9aXRlbSBDPHJzc19zYXZlKCBJPGZpbGVuYW1lPiApOz4KCj1pdGVtIEM8cnNzX3NhdmUoIEk8ZmlsZW5hbWUsIG1heF9hZ2VfZGF5cz4gKTs+CgpUaGlzIHNhdmVzIHRoZSBSU1MgZGF0ZSB0byB0aGUgZmlsZSB5b3Ugc3BlY2lmeS4gIElmIHRoZSBSU1MgZGF0YSBoYXNuJ3QKY2hhbmdlZCwgdGhlIGZpbGUgKGFuZCBpdHMgbW9kdGltZSkgYXJlbid0IGFsdGVyZWQuICBUaGUgb3B0aW9uYWwgSTxtYXhfYWdlX2RheXM+CnBhcmFtZXRlciBtZWFucyB0aGF0IGlmIGV2ZXIgdGhlIGZpbGUgZXhpc3RzLCBhbmQgaXRzIGNvbnRlbnQgaGFzbid0IGNoYW5nZWQKZm9yIHRoYXQgbWFueSBkYXlzIG9yIGxvbmdlciwgdGhlbiB0aGUgcHJvZ3JhbSBzaG91bGQgZGllIHdpdGggYSB3YXJuaW5nCm1lc3NhZ2UuICBGb3IgZXhhbXBsZSwgaW4gdGhlIGNhc2Ugb2YgYSBzY3JlZW4tc2NyYXBlciBmb3IgYSBzaXRlIHRoYXQgd2UKa25vdyBzaG91bGQgKGluIHRoZW9yeSkgY2hhbmdlIGl0cyBjb250ZW50IGF0IGxlYXN0IHdlZWtseSwgd2UgbWlnaHQgc2F2ZQp0aGUgUlNTIGZpbGUgd2l0aDoKCiAgcnNzX3NhdmUoIndoYXRldmVyLnJzcyIsIDE3KTsKICAgIyBTY3JlYW0gaWYgdGhlIGZlZWQgaXMgdW5jaGFuZ2VkIGZvciAxNyBkYXlzLgoKVGhlIHNldmVudGVlbiB0aGVyZSBpcyBnb3R0ZW4gYnkgYXNzdW1pbmcgdGhhdCBqdXN0IG1heWJlIHRoZSBzaXRlCm1pZ2h0IHNraXAgdHdvIHdlZWtzIGZvciBhIHZhY2F0aW9uIG5vdyBhbmQgdGhlbiwgYW5kIG1pZ2h0IGV2ZW4gcHV0Cm91dCB0aGUgcHJlLXZhY2F0aW9uIGlzc3VlIGEgZmV3IGRheXMgZWFybHkgLS0gYnV0IHRoYXQgaWYgZXZlciB0aGUgcHJvZ3JhbQpub3RpY2VzIHRoYXQgdGhlIGRhdGEgaGFzbid0IGNoYW5nZWQgZm9yIDE3IGRheXMsIHRoZW4gaXQgc2hvdWxkIGVtaXQKZXJyb3IgbWVzc2FnZXMuICBJZiB5b3Ugd2FudCB0byBkaXNhYmxlIHRoaXMgZmVhdHVyZSBvbiBhIG9uZS10aW1lIGJhc2lzLApqdXN0IGNoYW5nZSB0aGUgbW9kdGltZSAobGlrZSB2aWEgQzx0b3VjaD4pIG9uIHRoZSBGPHdoYXRldmVyLnJzcz4gZmlsZS4KCklmIHlvdSBkb24ndCBzcGVjaWZ5IGEgQzxtYXhfYWdlX2RheXM+IHZhbHVlLCB0aGVuIHRoaXMgd2hvbGUKY29tcGxhaW4taWYtaXQncy1vbGQgZmVhdHVyZSBpcyBkaXNhYmxlZC4KCj1jdXQKCnN1YiBzYXZlIHsKICBteSgkc2VsZiwgJGZpbGVuYW1lLCAkbWF4YWdlKSA9IEBfOwogIENhcnA6OmNyb2FrKCJJIG5lZWQgYSBmaWxlbmFtZSB0byBzYXZlIHRvIikKICAgdW5sZXNzIGRlZmluZWQgJGZpbGVuYW1lIGFuZCBsZW5ndGggJGZpbGVuYW1lOwoKICAkc2VsZi0+aGlzdG9yeV9maWxlIGFuZCAkc2VsZi0+X3NvcnRfaXRlbXNfbmV3ZXN0X2ZpcnN0OwogICRzZWxmLT5fd3JpdGVfaGlzdG9yeV9maWxlOwoKICBteSAkbmV3X2NvbnRlbnQgPSAkc2VsZi0+YXNfc3RyaW5nOwoKICBsb2NhbCAqUlNTOwogICMgU2VlIGlmIHdlIGNhbiBza2lwIHdyaXRpbmcgdG8gZGlzawogIGlmKC1lICRmaWxlbmFtZSBhbmQgLWYgXyBhbmQgLXIgXyBhbmQgLXMgXykgewogICAgREVCVUcgYW5kIHByaW50ICJDb21wYXJpbmcgdG8gJGZpbGVuYW1lLi4uXG4iOwogICAgb3BlbiBSU1MsICRmaWxlbmFtZQogICAgIG9yIENhcnA6OmNvbmZlc3MgIkNhbid0IHJlYWQtb3BlbiAkZmlsZW5hbWU6ICQhIjsgIyBpbnNhbml0eQogICAgbG9jYWwgJC87CiAgICBteSAkY29udGVudCA9IDxSU1M+OwogICAgY2xvc2UoUlNTKTsKICAgIAogICAgaWYoICRjb250ZW50IGVxICRuZXdfY29udGVudCApIHsKICAgICAgREVCVUcgYW5kIHByaW50ICIgJGZpbGVuYW1lXCdzIGNvbnRlbnQgaXMgdGhlIHNhbWUuXG4iOwogICAgICByZXR1cm4gJHNlbGYtPl9jaGVja19hZ2UoJGZpbGVuYW1lLCAkbWF4YWdlKTsKICAgIH0KICAgIAogICAgbXkgJG5ld19jb250ZW50X3dpdGhvdXRfYnVpbGRkYXRlID0gJG5ld19jb250ZW50OwogICAgZm9yZWFjaCBteSAkYyAoJG5ld19jb250ZW50X3dpdGhvdXRfYnVpbGRkYXRlLCAkY29udGVudCkgewogICAgICAkYyA9fiBzezxsYXN0W0JiXXVpbGRbRGRdYXRlPi4qPzwvbGFzdFtCYl11aWxkW0RkXWF0ZT59e307CiAgICAgICRjID1+IHN7PHB1YltEZF1hdGU+Lio/PC9wdWJbRGRdYXRlPn17fTsKICAgICAgJGMgPX4gdHJ7XG5ccn17fXM7ICAjIEFuZCBzbWFzaCBuZXdsaW5lcyB3aGlsZSB3ZSdyZSBhdCBpdC4uLgogICAgfQogICAgaWYoICRjb250ZW50IGVxICRuZXdfY29udGVudF93aXRob3V0X2J1aWxkZGF0ZSApIHsKICAgICAgREVCVUcgYW5kIHByaW50ICIgJGZpbGVuYW1lXCdzIGNvbnRlbnQgaXMgdGhlIHNhbWUsIGJhc2ljYWxseS5cbiI7CiAgICAgIHJldHVybiAkc2VsZi0+X2NoZWNrX2FnZSgkZmlsZW5hbWUsICRtYXhhZ2UpOwogICAgfQogICAgREVCVUcgYW5kIHByaW50ICIgJGZpbGVuYW1lXCdzIGNvbnRlbnQgaXMgc3RhbGUuICBPdmVyd3JpdGluZy5cbiI7CiAgfQogIERFQlVHIGFuZCBwcmludCAiV3JpdGluZyB0byAkZmlsZW5hbWUgLi4uXG4iOwogIAogICMgT0ssIHdlIGhhdmUgdG8gYWN0dWFsbHkgd3JpdGUgaXQuICBMZXQncyBkbyBpdCBmYXN0LgogIG9wZW4oUlNTLCAiPiRmaWxlbmFtZSIpCiAgIG9yIENhcnA6OmNvbmZlc3MgIkNhbid0IHdyaXRlLW9wZW4gJGZpbGVuYW1lOiAkIVxuQWJvcnRpbmciOwogIHByaW50IFJTUyAkbmV3X2NvbnRlbnQKICAgb3IgQ2FycDo6Y29uZmVzcyAiQ2FuJ3QgcHJpbnQgdG8gJGZpbGVuYW1lOiAkIVxuQWJvcnRpbmciOwogIGNsb3NlKFJTUykKICAgb3IgQ2FycDo6Y29uZmVzcyAiQ2FuJ3QgY2xvc2UgJGZpbGVuYW1lOiAkIVxuQWJvcnRpbmciOwogIGV2YWwgeyBjaG1vZCAwNjQ0LCAkZmlsZW5hbWUgfTsKICBERUJVRyBhbmQgcHJpbnQgIkRvbmUgd3JpdGluZyB0byAkZmlsZW5hbWVcbiI7CiAgcmV0dXJuIDE7Cn0KCiMuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgoKPWl0ZW0gQzxyc3NfYXNfc3RyaW5nKCk7PgoKVGhpcyByZXR1cm5zIHRoZSBSU1MtWE1MIGRhdGEgYXMgYSBzdHJpbmcuICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZAppbnRlcm5hbGx5IGJ5IHRoZSByc3Nfc2F2ZSBmdW5jdGlvbjsgYnV0IHlvdSBtaWdodCB3YW50IHRvIGNhbGwgaXQKZXhwbGljaXRseSwgYXMgaW4gYSBDR0ksIHdoZXJlIHlvdXIgQ0dJIHdvdWxkIHByb2JhYmx5IGVuZCBsaWtlIHRoaXM6CgogIHByaW50ICJDb250ZW50LXR5cGU6IGFwcGxpY2F0aW9uL3htbFxuXG4iLCByc3NfYXNfc3RyaW5nKCk7CiAgZXhpdDsKCj1jdXQKCgpzdWIgYXNfc3RyaW5nIHsKICBteSAkc2VsZiA9ICRfWzBdOwogIAogIG15ICRuYW1lc3BhY2VzID0gJHNlbGYtPl9uYW1lc3BhY2VzX2FzX3N0cmluZzsKICAKICByZXR1cm4gam9pbiAnJyA9PgogICAgcXF7PD94bWwgdmVyc2lvbj0iMS4wIj8+XG59LAogICAgKCREVERfcHViaWQgYW5kICREVERfdXJsKQogICAgID8gcXF7PCFET0NUWVBFIHJzcyBQVUJMSUMgIiREVERfcHViaWQiXG4gICIkRFREX3VybCI+XG59IDogKCksCgogICAgJHNlbGYtPmNzcyA/ICggIyBodHRwOi8vd3d3LnczLm9yZy9UUi94bWwtc3R5bGVzaGVldC8KICAgICAgcXF7PD94bWwtc3R5bGVzaGVldCB0aXRsZT0iQ1NTX2Zvcm1hdHRpbmciIHR5cGU9InRleHQvY3NzIiBocmVmPSJ9LAogICAgICAkc2VsZi0+eG1sZXNjKCRzZWxmLT5jc3MpLAogICAgICBxcXsiPz5cbn0KICAgICkgOiAoKSwKICAgICRzZWxmLT54c2wgPyAoCiAgICAgIHFxezw/eG1sLXN0eWxlc2hlZXQgdGl0bGU9IlhTTF9mb3JtYXR0aW5nIiB0eXBlPSJ0ZXh0L3htbCIgaHJlZj0ifSwgIyBUT0RPOiBiZXR0ZXIgbWltZSB0eXBlPwogICAgICAkc2VsZi0+eG1sZXNjKCRzZWxmLT54c2wpLAogICAgICBxcXsiPz5cbn0KICAgICkgOiAoKSwKICAgIHFxezxyc3MgdmVyc2lvbj0iMi4wIiRuYW1lc3BhY2VzPjxjaGFubmVsPn0sCiAgICAkc2VsZi0+X21vZHZlcnNpb25fY29tbWVudCwKICAgICRzZWxmLT5fdmFyaW91c19jb21tZW50cywKICAgICRzZWxmLT5fbWV0YWRhdGFfYXNfeG1sLAogICAgJHNlbGYtPl9pdGVtc19hc194bWwsCiAgICAiXG48L2NoYW5uZWw+PC9yc3M+XG4iLAogIDsKfQoKc3ViIF9uYW1lc3BhY2VzX2FzX3N0cmluZyB7CiAgbXkgJHNlbGYgPSAkX1swXTsKICBteSAkbnMgPSAkc2VsZi0+eydfbmFtZXNwYWNlcyd9OwogIHJldHVybiAnJyB1bmxlc3MgJG5zIGFuZCBrZXlzICUkbnM7CiAgcmV0dXJuCiAgICBqb2luICcnLCAiXG4iLAogICAgbWFwIHFxeyAgeG1sbnM6JF89IiQkbnN7JF99IlxufSwKICAgIHNvcnQga2V5cyAlJG5zCiAgOwp9CgojLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KCnN1YiBfbWV0YWRhdGFfYXNfeG1sIHsKICBteSAkc2VsZiA9ICRfWzBdOwogIG15KCR1cmwsICR0aXRsZSwgJGRlc2NyaXB0aW9uKSA9ICgKICAgIG1hcCBkZWZpbmVkKCRfKSA/ICRfIDogJycsCiAgICAkc2VsZi0+dXJsLCAkc2VsZi0+dGl0bGUsICRzZWxmLT5kZXNjcmlwdGlvbiwKICApOwogIAogIGlmKCREV0lNKSB7CiAgICAjIHRvbGVyYXRlIHN3aXRjaGluZyB0aGUgZGVzY3JpcHRpb24vdGl0bGUgYW5kIHRoZSBVUkwKICAgIGlmKCR1cmwgIX4gbXteW2Etel0rW2EtejAtOV0qOlxTKyR9cykgewogICAgICBERUJVRyBhbmQgcHJpbnQgIlVSTCBcIiR1cmxcIiBsb29rcyBmaXNoeS4uLlxuIjsKICAgICAgaWYoICR0aXRsZSA9fiBte15bYS16XStbYS16MC05XSo6XFMrJH1zKSB7CiAgICAgICAgREVCVUcgYW5kIHByaW50ICJTd2FwcGluZyB3aXRoIHRpdGxlIFwiJHRpdGxlXCJcbiI7CiAgICAgICAgKCR1cmwsICR0aXRsZSkgPSAoJHRpdGxlLCAkdXJsKTsKICAgICAgICAkc2VsZi0+dXJsKCR1cmwpOwogICAgICAgICRzZWxmLT50aXRsZSgkdGl0bGUpOwogICAgICB9IGVsc2lmKCAkZGVzY3JpcHRpb24gPX4gbXteW2Etel0rW2EtejAtOV0qOlxTKyR9cykgewogICAgICAgIERFQlVHIGFuZCBwcmludCAiU3dhcHBpbmcgd2l0aCBkZXNjcmlwdGlvbiBcIiRkZXNjcmlwdGlvblwiXG4iOwogICAgICAgICgkdXJsLCAkZGVzY3JpcHRpb24pID0gKCRkZXNjcmlwdGlvbiwgJHVybCk7CiAgICAgICAgJHNlbGYtPnVybCgkdXJsKTsKICAgICAgICAkc2VsZi0+ZGVzY3JpcHRpb24oJGRlc2NyaXB0aW9uKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBDYXJwOjpjcm9hayggIkludmFsaWQgVVJMIFwiJHVybFwiIGluIG1ldGFkYXRhICIKICAgICAgICAgLiAoJHRpdGxlfHwkZGVzY3JpcHRpb258fCI/Pz8iKSAuICJcbkFib3J0aW5nIgogICAgICAgICk7CiAgICAgIH0KICAgIH0KICB9CgogIG15ICRsYW5nID0gJHNlbGYtPmxhbmd1YWdlOwogICRsYW5nIGFuZCAkbGFuZyA9fiB0cltfXVtcLV07ICMgdG9sZXJhdGUgdW5kZXJzY29yZXMKICAkbGFuZyA9ICdlbicgdW5sZXNzIGRlZmluZWQgJGxhbmcKICAgIyBGcm9tIEkxOE46OkxhbmdUYWdzLi4uCiAgIGFuZCAkbGFuZyAhfiBtL15baUl4SV0kL3MKICAgYW5kICRsYW5nID1+CiAgICBtL14oPzogICMgRmlyc3Qgc3VidGFnCiAgICAgICAgIFt4aUlYXSB8IFthLXpBLVpdezIsM30KICAgICAgKQogICAgICAoPzogICMgU3VidGFncyB0aGVyZWFmdGVyCiAgICAgICAgIC0gICAgICAgICAgICMgc2VwYXJhdG9yCiAgICAgICAgIFtBLVphLXowLTldezEsOH0gICMgc3VidGFnICAKICAgICAgKSoKICAgICQveHMKICA7CgogIHJldHVybiBqb2luICcnLCBzcHJpbnRmKCBxcXsKPGxpbms+JXM8L2xpbms+Cjx0aXRsZT4lczwvdGl0bGU+CjxkZXNjcmlwdGlvbj4lczwvZGVzY3JpcHRpb24+CjxsYW5ndWFnZT4lczwvbGFuZ3VhZ2U+CjxsYXN0QnVpbGREYXRlPiVzPC9sYXN0QnVpbGREYXRlPgp9LAogICAgICBtYXAoICRzZWxmLT5odG1sMnRleHQoJF8pLAogICAgICAgICR1cmwgICAgICAgICB8fCAnISEhIUR1bW15VVJMISEhIScsCiAgICAgICAgJHRpdGxlICAgICAgIHx8ICRkZXNjcmlwdGlvbiB8fCAkdXJsIHx8ICchISEhRHVtbXlUaXRsZSEhISEnLAogICAgICAgICRkZXNjcmlwdGlvbiB8fCAkdGl0bGUgfHwgJHVybCB8fCAnISEhIUR1bW15RGVzY3JpcHRpb24hISEhJywKICAgICAgKSwKICAgICAgJGxhbmcsCiAgICAgICRzZWxmLT5fZGF0ZV9yZmM4MjIoKSwKICAgICksCiAgICBncmVwICRfLAogICAgCiAgICAkc2VsZi0+eyJza2lwSG91cnMifSwKICAgICRzZWxmLT57InNraXBEYXlzIn0sCiAgICAkc2VsZi0+X3N5X3VwZGF0ZV9hc194bWwsCiAgICAoKCRzZWxmLT57InR0bCJ9IHx8ICcnKSA9fiBtL14oXGQrKSQvcykgJiYgIjx0dGw+JDE8L3R0bD5cbiIsCiAgICAkc2VsZi0+d2ViTWFzdGVyICYmCiAgICAgKCI8d2ViTWFzdGVyPiIgLiAkc2VsZi0+aHRtbDJ0ZXh0KCRzZWxmLT53ZWJNYXN0ZXIpIC4gIjwvd2ViTWFzdGVyPlxuIiksCiAgICAKICAgICRzZWxmLT5kb2NzICYmCiAgICAgKCI8ZG9jcz4iIC4gJHNlbGYtPmh0bWwydGV4dCgkc2VsZi0+ZG9jcykgLiAiPC9kb2NzPlxuIiksCgogICAgJHNlbGYtPl9pbWFnZV9hc194bWwsCiAgICAkc2VsZi0+eydtb3JlX21ldGFkYXRhJ30sICMgYSBoYWNrIGZvciBzbmVha2luZyBpbiBtb3JlIHRoaW5ncwogIDsKCiMgLi4ud2l0aCBzYW5pdHktY2hlY2tlcnMKCn0KIy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCgpzdWIgX3Byb2Nlc3NfaXRlbV9wYXJhbXMgewogIG15ICRzZWxmID0gc2hpZnQ7CiAgbXkoJHVybCwgJHRpdGxlLCAkZGVzY3JpcHRpb24pID0KICAgIG1hcCB7OyAoZGVmaW5lZCgkXykgJiYgbS9cUy8pID8gJF8gOiAnJyB9ICMgY29udGVudGZ1bG5lc3MgZmlsdGVyCiAgICBtYXAgJHNlbGYtPmh0bWwydGV4dCgkXyksICAjIGhlcmUncyB3aGVyZSB3ZSBkZS1odG1saWZ5IHRoaW5ncwogICAgQF87CiAgOwogIAogIGZvcigkdXJsLCAkdGl0bGUsICRkZXNjcmlwdGlvbikgewogICAgaWYocmVmICRfICAgICAgICkgeyB9ICAjIE9rYXkKICAgIGVsc2lmKGRlZmluZWQgJF8pIHsgcy9eXHMrLy9zOyBzL1xzKyQvL3MgfQogICAgZWxzZSAgICAgICAgICAgICAgeyAkXyA9ICcnIH0KICB9CiAgCiAgIyBUb2xlcmF0ZSBzd2l0Y2hpbmcgdGhlIGRlc2NyaXB0aW9uL3RpdGxlIGFuZCB0aGUgVVJMCiAgaWYoJERXSU0gYW5kICR1cmwgIX4gbXteW2Etel0rW2EtejAtOV0qOlxTKyR9cykgewogICAgREVCVUcgYW5kIHByaW50ICJVUkwgXCIkdXJsXCIgbG9va3MgZmlzaHkuLi5cbiI7CiAgICBpZiggJHRpdGxlID1+IG17XlthLXpdK1thLXowLTldKjpcUyskfXMpIHsKICAgICAgREVCVUcgYW5kIHByaW50ICJTd2FwcGluZyB3aXRoIHRpdGxlIFwiJHRpdGxlXCJcbiI7CiAgICAgICgkdXJsLCAkdGl0bGUpID0gKCR0aXRsZSwgJHVybCk7CiAgICB9IGVsc2lmKCAkZGVzY3JpcHRpb24gPX4gbXteW2Etel0rW2EtejAtOV0qOlxTKyR9cykgewogICAgICBERUJVRyBhbmQgcHJpbnQgIlN3YXBwaW5nIHdpdGggZGVzY3JpcHRpb24gXCIkZGVzY3JpcHRpb25cIlxuIjsKICAgICAgKCR1cmwsICRkZXNjcmlwdGlvbikgPSAoJHRpdGxlLCAkZGVzY3JpcHRpb24pOwogICAgfSBlbHNlIHsKICAgICAgQ2FycDo6Y29uZmVzcyggIkludmFsaWQgVVJMIFwiJHVybFwiIGluIGl0ZW0gIgogICAgICAgLiAoJHRpdGxlfHwkZGVzY3JpcHRpb258fCI/Pz8iKSAuICJcbkFib3J0aW5nIgogICAgICApOwogICAgfQogIH0KICByZXR1cm4gKCR1cmwsICR0aXRsZSwgJGRlc2NyaXB0aW9uKTsKfQoKIy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCgpzdWIgX2l0ZW1zX2FzX3htbCB7CiAgbXkgJHNlbGYgPSAkX1swXTsKICBteSBAaXRlbXM7CiAgbXkgQHhtbF9vdXQgPSAoJE1heWJlTkwpOwoKICBpZiggJHNlbGYtPmFsbG93X2R1cGxpY2F0ZXMgKSB7CiAgICBAaXRlbXMgPSBAeyAkc2VsZi0+eydpdGVtcyd9IHx8IGRpZSAiTk8gSVRFTVMhPyE/IiB9OwogIH0gZWxzZSB7CiAgICBteSAlc2VlbjsKICAgIGZvcmVhY2ggbXkgJGkgKEB7ICRzZWxmLT57J2l0ZW1zJ30gfHwgZGllICJOTyBJVEVNUyE/IT8iIH0pIHsKICAgICAgaWYoICRzZWVueyAkaS0+WzBdIH0gKysgKSB7CiAgICAgICAgREVCVUcgYW5kIHByaW50ICJSZW1vdmluZyBkdXBsaWNhdGUgaXRlbSBAJGlcbiI7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcHVzaCBAaXRlbXMsICRpOwogICAgICB9CiAgICB9CiAgfQoKICBteSAkaXRlbV9saW1pdCA9IGludCggJHNlbGYtPml0ZW1fbGltaXQgfHwgMCApOwogIGlmKCRpdGVtX2xpbWl0KSB7CiAgICBpZihAaXRlbXMgPiBhYnMoJGl0ZW1fbGltaXQpKSB7CiAgICAgIGlmKCRpdGVtX2xpbWl0ID4gMCkgeyAjIGxpa2UgNCB0byBtZWFuIGp1c3QgdGhlIGZpcnN0IDQKICAgICAgICBERUJVRyBhbmQgcHJpbnQgIiBLaWxsaW5nIGFsbCBidXQgdGhlIGZpcnN0ICRpdGVtX2xpbWl0IGl0ZW1zLlxuIjsKICAgICAgICBzcGxpY2UgQGl0ZW1zLCAkaXRlbV9saW1pdDsKICAgICAgfSBlbHNlIHsgIyBsaWtlIC00IHRvIG1lYW4ganVzdCB0aGUgbGFzdCA0CiAgICAgICAgREVCVUcgYW5kIHByaW50ICIgS2lsbGluZyBhbGwgYnV0IHRoZSBsYXN0ICIsIDAtJGl0ZW1fbGltaXQsICIgaXRlbXMuXG4iOwogICAgICAgIHNwbGljZSBAaXRlbXMsIDAsIEBpdGVtcyArICRpdGVtX2xpbWl0OwogICAgICAgICAjIFNvIGlmIGl0ZW1fbGltaXQgaXMgLTMgYW5kIEBpdGVtcyBoYXMgMTAgZWxlbWVudHMsCiAgICAgICAgICMgIHRoZW4gdGhhdCBudW1iZXIgd2lsbCBiZSA3LCBpLmUuLCB0byBjaG9wIHRoZSBmaXJzdCA3CiAgICAgICAgICMgIGVsZW1lbnRzLCBsZWF2aW5nIHRoZSBsYXN0IDMuCiAgICAgIH0KICAgIH0KICB9CiAgREVCVUcgYW5kIHByaW50IHNjYWxhcihAaXRlbXMpLCAiIGl0ZW1zIGF0IGhhbmQ6XG4iOwogIAogIGZvcmVhY2ggbXkgJGkgKEBpdGVtcykgewogICAgbXkoJHVybCwgJHRpdGxlLCAkZGVzY3JpcHRpb24pID0gQCRpOwogICAgREVCVUcgPiAxIGFuZCBwcmludCAiSTogKHUgJHVybCkgKHQgJHRpdGxlKSAoZCAkZGVzY3JpcHRpb24pXG4iOwogICAgbmV4dCB1bmxlc3MgJHVybCBvciAkdGl0bGUgb3IgJGRlc2NyaXB0aW9uOwogICAgcHVzaCBAeG1sX291dCwgCiAgICAgIjxpdGVtPiRNYXliZU5MIiwKICAgICAobWFwICIkTWF5YmVJbmRlbnQkXyRNYXliZU5MIiwKICAgICAgIGxlbmd0aCgkdGl0bGUpICAgICAgID8gIjx0aXRsZT4kdGl0bGU8L3RpdGxlPiIgOiAoKSwKICAgICAgIGxlbmd0aCgkdXJsKSAgICAgICAgID8gIjxsaW5rPiR1cmw8L2xpbms+IiA6ICgpLAogICAgICAgbGVuZ3RoKCRkZXNjcmlwdGlvbikgPyAiPGRlc2NyaXB0aW9uPiRkZXNjcmlwdGlvbjwvZGVzY3JpcHRpb24+IiA6ICgpLAogICAgICksCiAgICAgIjwvaXRlbT4kTWF5YmVOTFxuIiwKICB9CiAgREVCVUcgYW5kIHByaW50ICJfaXRlbXNfYXNfeG1sIHJldHVybmluZyB7XG4iLCBqb2luKCcnLCBAeG1sX291dCksICJ9XG5cbiI7CiAgCiAgcmV0dXJuIGpvaW4gJycsIEB4bWxfb3V0Owp9CgojLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KCnN1YiBfaW1hZ2VfYXNfeG1sIHsKICBteSAkc2VsZiA9IHNoaWZ0OwogIHJldHVybiAnJyB1bmxlc3MKICAgICRzZWxmLT5pbWFnZV91cmwgYW5kICRzZWxmLT5pbWFnZV9oZWlnaHQgYW5kICRzZWxmLT5pbWFnZV93aWR0aDsKCiAgIyA8IUVMRU1FTlQgaW1hZ2UgKHRpdGxlIHwgdXJsIHwgbGluayB8IHdpZHRoPyB8IGhlaWdodD8gfCBkZXNjcmlwdGlvbj8pKj4KCiAgcmV0dXJuIGpvaW4gJycsCiAgICAiPGltYWdlPlxuIiwKICAgIG1hcCgiICAkX1xuIiA9PgogICAgICAkc2VsZi0+eG1sZWxlbSggJ3RpdGxlJyAgPT4gJHNlbGYtPmltYWdlX3RpdGxlIHx8ICRzZWxmLT5odG1sMnRleHQoJHNlbGYtPnRpdGxlKSksCiAgICAgICRzZWxmLT54bWxlbGVtKCAndXJsJyAgICA9PiAkc2VsZi0+aW1hZ2VfdXJsKSwgIyB1cmwgb2YgdGhlIGltYWdlCiAgICAgICRzZWxmLT54bWxlbGVtKCAnbGluaycgICA9PiAkc2VsZi0+aW1hZ2VfbGluayAgfHwgJHNlbGYtPmh0bWwydGV4dCgkc2VsZi0+dXJsICApKSwKICAgICAgJHNlbGYtPnhtbGVsZW0oICd3aWR0aCcgID0+ICRzZWxmLT5pbWFnZV93aWR0aCksCiAgICAgICRzZWxmLT54bWxlbGVtKCAnaGVpZ2h0JyA9PiAkc2VsZi0+aW1hZ2VfaGVpZ2h0KSwKICAgICAgJHNlbGYtPnhtbGVsZW0oICdkZXNjcmlwdGlvbicKICAgICAgICAgICAgICAgICA9PiAkc2VsZi0+aW1hZ2VfZGVzY3JpcHRpb24KICAgICAgICAgICAgICAgICAgICB8fCAkc2VsZi0+aHRtbDJ0ZXh0KCRzZWxmLT5kZXNjcmlwdGlvbikpLAogICAgKSwKICAgICI8L2ltYWdlPlxuIiwKICA7Cn0KCiM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKCj1pdGVtIEM8Z2V0X3VybCggSTx1cmw+ICk7PgoKPWl0ZW0gQzwkY29udGVudCA9IGdldF91cmwoIEk8dXJsPiApOz4KCj1pdGVtIEk8b3I6PiBDPDwgJGNvbnRlbnQgPSAkcnNzLT5nZXRfdXJsKC4uLik7ID4+Cgo9aXRlbSBJPG9yOj4gQzw8ICRjb250ZW50LT5nZXRfdXJsKC4uLik7ID4+CgpUaGlzIHRyaWVzIHRvIGdldCB0aGUgY29udGVudCBvZiB0aGUgZ2l2ZW4gdXJsLCBhbmQgcmV0dXJucyBpdC4KClRoaXMgaXMgcXVpdGUgbGlrZSBMPExXUDo6U2ltcGxlPidzIEM8Z2V0PiBmdW5jdGlvbiwgYnV0IHdpdGggc29tZQphZGRpdGlvbmFsIGZlYXR1cmVzOgoKPW92ZXIKCj1pdGVtICogSWYgaXQgY2FuJ3QKZ2V0IHRoZSBVUkwncyBjb250ZW50IGF0IGZpcnN0LCBpdCB3aWxsIHNsZWVwIGZvciBhIGZldyBzZWNvbmRzIGFuZCB0cnkKYWdhaW4sIHVwIHRvIGFib3V0IGZpdmUgdGltZXMuIChUaGlzIGlzIHRvIGF2b2lkIHRoZSBjYXNlIG9mIHRoZSBVUkwKYmVpbmcgdGVtcG9yYXJpbHkgaW5hY2Nlc3NpYmxlIHNpbXBseSBiZWNhdXNlIHRoZSBETlMgaXMgYSBiaXQgc2xvdywKb3IgYmVjYXVzZSB0aGUgc2VydmVyIGlzIHRvbyBidXN5LikKCj1pdGVtICogSWYgaXQgY2FuJ3QgZ2V0IHRoZSBjb250ZW50LCBldmVuIGFmdGVyIHNldmVyYWwgcmV0cmllcywKaXQgd2lsbCBhYm9ydCB0aGUgcHJvZ3JhbSAobGlrZSBhIEM8ZGllPikuICBJZiB5b3Ugd2FudCB0byBvdmVycmlkZSB0aGlzCmJlaGF2aW9yLCB0aGVuIGNhbGwgaXQgYXMgQzxldmFsIHsgZ2V0X3VybCgkdXJsKSB9Oz4KCj1pdGVtICogSWYgeW91IGNhbGwgdGhlIGZ1bmN0aW9uIGluIHZvaWQgY29udGV4dCAoaS5lLiwgbm90IHVzaW5nIGl0cwpyZXR1cm4gdmFsdWUpLCB0aGVuIHRoZSBmdW5jdGlvbiBhc3NpZ25zIHRoZSBVUkwncyBjb250ZW50IHRvIEM8JF8+LgpUaGF0J3Mgc28geW91IGNhbiB3cml0ZSBuaWNlIGNvbmNpc2UgY29kZSBsaWtlIHRoaXM6CgogICAgICAgICAgIGdldF91cmwgJHRoYXRzaXRlOwogICAgICAgICAgIG0vVG9wIFN0b3JpZXMgVG9uaWdodC8gb3IgZGllICJXaGF0LCBubyB0b3Agc3Rvcmllcz8iOwogICAgICAgICAgIHdoaWxlKCBtezxhIGNsYXNzPSJ0b3AiIGhyZWY9IiguKj8pIj4oLio/KTwvYT59ZyApIHsKICAgICAgICAgICAgIHJzc19pdGVtKCIkdGhhdHNpdGUvJDEiLCAkMik7CiAgICAgICAgICAgfQoKPWl0ZW0gKiBUaGlzIHJldHVybnMgdGhlIGNvbnRlbnQgb2YgdGhlIFVSTCBub3QgZXhhY3RseSBhcy1pcywgYnV0IGFmdGVyCmNoYW5naW5nIGl0cyBuZXdsaW5lcyB0byBuYXRpdmUgZm9ybWF0LiAgVGhhdCBpcywgaWYgdGhlIGNvbnRlbnRzIG9mIHRoZQpVUkwgdXNlIENSLUxGIHBhaXJzIHRvIGV4cHJlc3MgbmV3bGluZXMsIHRoZW4gQzxnZXRfdXJsPiBjaGFuZ2VzIHRoZXNlCnRvIEM8XG4+J3MgYmVmb3JlIHJldHVybmluZyB0aGUgY29udGVudC4gIChTaW1pbGFybHkgZm9yIG9sZCBNYWNPUwpuZXdsaW5lIGZvcm1hdC4pICBDbGVhcmx5IHRoaXMgaXMgd3JvbmcgaW4geW91J3JlIGRlYWxpbmcgd2l0aCBiaW5hcnkKZGF0YTsgaW4gdGhhdCBjYXNlLCB1c2UgTFdQOjpTaW1wbGUncyBDPGdldD4gZGlyZWN0bHkuCgo9aXRlbSAqIEZpbmFsbHksIGFzIGEgcmVzb3VyY2UtY29udmVyc2F0aW9uIG1lYXN1cmUsIHRoaXMgZnVuY3Rpb24Kd2lsbCBhbHNvIHRyeSB0byBjYWxsIEM8c2xlZXA+IGEgZmV3IHRpbWVzIGlmIGl0IHNlZXMgc2V2ZXJhbCBxdWljawpjYWxscyB0byBpdHNlbGYgY29taW5nIGZyb20gYSBwcm9ncmFtIHRoYXQgc2VlbXMgdG8gYmUgcnVubmluZwp1bmRlciBjcm9udGFiLiAgQXMgbW9zdCBvZiBteSBSU1MtZ2VuZXJhdG9ycyBhcmUgY3JvbnRhYmJlZCwgSQpmaW5kIGl0IHZlcnkgdXNlZnVsIHRoYXQgSSBjYW4gaGF2ZSBob3dldmVyIG1hbnkgQzxnZXRfdXJsPidzIGluCm15IGNyb250YWJiZWQgcHJvZ3JhbXMgd2l0aG91dCB3b3JyeWluZyB0aGF0IHRoZXknbGwgdGFrZSBldmVuIGEKbm90aWNlYWJsZSBwYXJ0IG9mIHRoZSBzZXJ2ZXIncyBiYW5kd2lkdGguCgo9YmFjawoKPWN1dAoKbXkgJGxhc3RfdXJsX2dldF90aW1lOwoKc3ViIGdldF91cmwgKCQpIHsKICBteSAkc2VsZiA9IHNoaWZ0IGlmIEBfID4gMTsgIyB3b3JrIGFzIGEgZnVuY3Rpb24gb3IgbWV0aG9kCgogICMgIEdvIHdoaXAgdXAgYW4gb2JqZWN0IHVubGVzcyBvbmUgd2FzIGdpdmVuOgogICRzZWxmID0gKCRSU1Nfb2JqIHx8PSBYTUw6OlJTUzo6U2ltcGxlR2VuOjotPm5ldykgdW5sZXNzIGRlZmluZWQgJHNlbGY7CiAgJHNlbGYgPSAkc2VsZi0+bmV3IHVubGVzcyByZWYgJHNlbGY7CiAgCiAgbXkgJHVybCA9ICRfWzBdOwogIENhcnA6OmNyb2FrICJcIiR1cmxcIiBkb2Vzbid0IGxvb2sgbGlrZSBhIFVSTCFcbkFib3J0aW5nIgogICB1bmxlc3MgZGVmaW5lZCgkdXJsKSBhbmQgJHVybCA9fiBte15bYS16XStbYS16MC05XSo6XFMrJH1zOwogIAogIGlmKCRTbGVlcHkgYW5kICRsYXN0X3VybF9nZXRfdGltZSkgewogICAgbXkgJGRlbGF5ID0gJFNsZWVweSAtICh0aW1lKCkgLSAkbGFzdF91cmxfZ2V0X3RpbWUpOwogICAgaWYoICRkZWxheSA+IDAgKSB7CiAgICAgIERFQlVHIGFuZCBwcmludCAiTGFzdCBVUkxnZXQgd2FzIGF0ICRsYXN0X3VybF9nZXRfdGltZSwgc2xlZXAgJGRlbGF5XG4iOwogICAgICBzbGVlcCAkZGVsYXk7CiAgICB9IGVsc2UgewogICAgICBERUJVRyBhbmQgcHJpbnQgIkxhc3QgVVJMZ2V0IHdhcyBhdCAkbGFzdF91cmxfZ2V0X3RpbWUsIHNvIG5vIHNsZWVwLlxuIjsKICAgIH0KICB9CiAgCiAgbXkgJGNvbnRlbnQ7CiAgbXkgJGNvdW50ID0gMDsKICBmb3JlYWNoIG15ICRkZWxheSAoQFJldHJ5X2RlbGF5cywgMCkgewogICAgZGVsZXRlICRzZWxmLT57J19sb29wcyd9OwogICAgZGVsZXRlICRzZWxmLT57J19odHRwX2Fib3J0J307CgogICAgREVCVUcgYW5kIHByaW50ICJHZXR0aW5nICR1cmwgLi4uXG4iOwogICAgKyskY291bnQ7CiAgICBpZiggZGVmaW5lZCgKICAgICAgJGNvbnRlbnQgID0gICRzZWxmLT5fZ2V0KCR1cmwpCiAgICApKSB7CiAgICAgIERFQlVHIGFuZCBwcmludCAiT0ssIGdvdCBpdCAoIiwgbGVuZ3RoKCRjb250ZW50KSwgIiBieXRlcylcbiI7CiAgICAgIGxhc3Q7CiAgICB9CiAgICAKICAgIGlmKCAkc2VsZi0+eydfaHR0cF9hYm9ydCd9ICkgewogICAgICBERUJVRyBhbmQgcHJpbnQgIkNvdWxkbid0IGdldCBpdCBhbmQgd29uJ3QgcmV0cnkgKCIsIAogICAgICAgICRzZWxmLT57J19odHRwX2Fib3J0J30sICIpXG4iOwogICAgICBsYXN0OwogICAgfSBlbHNlIHsKICAgICAgREVCVUcgYW5kIHByaW50ICJPZGQsIGNvdWxkbid0IGdldCBpdC5cbiI7CiAgICB9CiAgICBpZigkZGVsYXkpIHsgREVCVUcgYW5kIHByaW50ICJTbGVlcGluZyAkZGVsYXkgc2VjLi4uXG4iOyBzbGVlcCAkZGVsYXk7IH0KICB9CiAgJGxhc3RfdXJsX2dldF90aW1lID0gdGltZSgpOwoKICB1bmxlc3MoIGRlZmluZWQgJGNvbnRlbnQgKSB7CiAgICBteSAkaGVhZGVycyA9ICRzZWxmLT57J19odHRwX2hlYWRlcnMnfTsKICAgIGlmKCAkaGVhZGVycyBhbmQgJGhlYWRlcnMgPX4gc3tefXsgIH1tZyApIHsKICAgICAgJGhlYWRlcnMgPSAiXG5SZXNwb25zZSBoZWFkZXJzOlxuJGhlYWRlcnMiOwogICAgfSBlbHNlIHsKICAgICAgJGhlYWRlcnMgPSAnJzsKICAgIH0KICAgICRjb3VudCAuPSAoJGNvdW50ID09IDEpID8gIiB0cnkiIDogIiB0cmllcyI7CiAgICBDYXJwOjpjcm9haygiQ291bGRuJ3QgZ2V0ICR1cmwgaW4gJGNvdW50JGhlYWRlcnNcblNvLCBhYm9ydGluZyIpCiAgfQogIAogIGlmKCROYXRpdml6ZV9uZXdsaW5lcykgewogICAgaWYoIlxuIiBlcSAiXGNqIikgeyAgICAgICAjIENSID0+IExGICAgIENSIExGTEYuLi4gPT4gTEYgICBMRiA9PiBMRgogICAgICAkY29udGVudCA9fiBzL1xjbVxjaiovXG4vZzsgIyBtb3N0IGVmZmljaWVudCwgSSBkYXJlIHNheQogICAgfSBlbHNpZigiXG4iIGVxICJcY20iKSB7ICAjIENSID0+IENSICAgIENSIExGTEYuLi4gPT4gQ1IgICBMRiA9PiBDUgogICAgICAkY29udGVudCA9fiBzLyg/Oig/OlxjbVxjaispfFxjaikvXG4vZzsKICAgIH0gZWxzZSB7CiAgICAgICRjb250ZW50ID1+IHMvKD86XG58XHJ8XG5ccikvXG4vZzsKICAgIH0KICB9CiAgCiAgJF8gPSAkY29udGVudCB1bmxlc3MgZGVmaW5lZCB3YW50YXJyYXk7CiAgcmV0dXJuICRjb250ZW50Owp9CgojPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyAgVGhpbmdzIGJlbG93IGhlcmUgYXJlIGxlc3MgYW5kIGxlc3MgaW50ZXJlc3RpbmcgdG8gdGhlIGNhc3VhbCByZWFkZXIuCiM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKc3ViIF9nZXQgewogIG15ICRzZWxmID0gc2hpZnQ7CiAgaWYoCiAgICAhJExXUDo6U2ltcGxlOjpWRVJTSU9OCiAgICBhbmQgJF9bMF0gPX4gbXteaHR0cDovLyhbXiBcblxyXHQvOlxAXSspKD86OihcZCspKT8oL1xTKik/JH0KICApIHsKICAgIG15ICRob3N0ID0gJDE7CiAgICBteSAkcGF0aCA9ICQzOwogICAgbXkgJHBvcnQgPSAwICsgKCQyIHx8IDgwKTsKICAgIGlmKCAkQmFkUG9ydHN7JHBvcnR9ICkgewogICAgICBERUJVRyBhbmQgcHJpbnQgIldlIGRvbid0IGxpa2UgcG9ydCAkcG9ydCBmcm9tICRfWzBdXG4iOwogICAgICByZXR1cm4gdW5kZWY7CiAgICB9CiAgICAKICAgICRwYXRoID0gIi8iIHVubGVzcyBkZWZpbmVkKCRwYXRoKTsKICAgICRzZWxmID0gJHNlbGYtPm5ldyB1bmxlc3MgcmVmKCRzZWxmKTsgIyBuZWVkIHRvIGJlIGFuIG9iamVjdCBtZXRob2QKICAgIHJldHVybiAkc2VsZi0+X3RyaXZpYWxfaHR0cF9nZXQoJGhvc3QsICRwb3J0LCAkcGF0aCk7CiAgfSBlbHNlIHsKICAgIHJldHVybiAkc2VsZi0+X2x3cF9nZXQoQF8pOwogIH0KfQoKc3ViIF9sd3BfZ2V0IHsKICByZXF1aXJlIExXUDo6U2ltcGxlOwogIERFQlVHIGFuZCBwcmludCAiQ2FsbGluZyBMV1A6OlNpbXBsZSBvbiAkX1sxXVxuIjsKICByZXR1cm4gTFdQOjpTaW1wbGU6OmdldCgkX1sxXSk7Cn0KCnN1YiBfdHJpdmlhbF9odHRwX2dldCB7CiAgIG15KCRzZWxmLCAkaG9zdCwgJHBvcnQsICRwYXRoKSA9IEBfOwogICBERUJVRyA+IDEgYW5kIHByaW50ICJHZXR0aW5nIEhPU1Q9JGhvc3QsIFBPUlQ9JHBvcnQsIFBBVEg9JHBhdGhcbiI7CgogICAkc2VsZiA9ICRzZWxmLT5uZXcgdW5sZXNzIHJlZigkc2VsZik7ICMgbmVlZCB0byBiZSBhbiBvYmplY3QgbWV0aG9kCiAgIG15ICRzZWVuID0gKCAkc2VsZi0+eydfbG9vcHMnfSB8fD0ge30gKTsKCiAgIHJlcXVpcmUgSU86OlNvY2tldDsKICAgbG9jYWwoJF5XKSA9IDA7CiAgIG15ICRzb2NrID0gSU86OlNvY2tldDo6SU5FVC0+bmV3KFBlZXJBZGRyID0+ICRob3N0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQZWVyUG9ydCA9PiAkcG9ydCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvdG8gICAgPT4gJ3RjcCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRpbWVvdXQgID0+IDYwKSB8fCByZXR1cm4gdW5kZWY7CiAgICRzb2NrLT5hdXRvZmx1c2g7CiAgIG15ICRuZXRsb2MgPSAkaG9zdDsKICAgJG5ldGxvYyAuPSAiOiRwb3J0IiBpZiAkcG9ydCAhPSA4MDsKICAgcHJpbnQgJHNvY2sgam9pbigiXDAxNVwwMTIiID0+CiAgICAgICAgICAgICAgICAgICJHRVQgJHBhdGggSFRUUC8xLjAiLAogICAgICAgICAgICAgICAgICAiSG9zdDogJG5ldGxvYyIsCiAgICAgICAgICAgICAgICAgICJVc2VyLUFnZW50OiAkVXNlckFnZW50U3RyaW5nIiwKICAgICAgICAgICAgICAgICAgIiIsICIiKTsKCiAgIG15ICRidWYgPSAiIjsKICAgbXkgJG47CiAgIHdoaWxlKCAkbiA9IHN5c3JlYWQoJHNvY2ssICRidWYsIDgqMTAyNCwgbGVuZ3RoKCRidWYpKSApIHsKICAgICBERUJVRyA+IDEwIGFuZCBwcmludCAiICAgIEdvdCAkbiBieXRlcy4uLlxuIjsKICAgICAxOwogICB9CiAgIHJldHVybiB1bmRlZiB1bmxlc3MgZGVmaW5lZCgkbik7CgogICBpZiggJGJ1ZiA9fiBte15IVFRQL1xkK1wuXGQrXHMrKFxkKylbXlwwMTJdKlwwMTJ9ICkgewogICAgIG15ICRjb2RlID0gJDE7CiAgICAgREVCVUcgYW5kIHByaW50ICIgR290IEhUVFAgc3RhdHVzOiAkY29kZVxuIjsKICAgICBpZiggJGNvZGUgPX4gbS9eMzBbMTIzN10vcyBhbmQgJGJ1ZiA9fiBtL1wwMTJMb2NhdGlvbjpccyooXFMrKS8gKSB7CiAgICAgICAjIFJlZGlyZWN0aW9uCiAgICAgICBteSAkdXJsID0gJDE7CiAgICAgICBpZiggJHVybCA9fiBtL14oZmlsZXxtYWlsdG8pOi8gICMgcHJvdG9jb2xzIHdlIGhhdGUKICAgICAgICAgb3IgJHNlZW4tPnskdXJsfSsrCiAgICAgICAgIG9yIHNjYWxhcihrZXlzICUkc2VlbikgPiAyMAogICAgICAgKSB7CiAgICAgICAgIERFQlVHIGFuZCBwcmludCAiSSBkb24ndCBsaWtlIHRoZSByZWRpcmVjdGlvbiByZXNwb25zZSAkdXJsXG4iOwogICAgICAgICAkc2VsZi0+eydfaHR0cF9hYm9ydCd9ID0gIkJhZCBIVFRQLXJlZGlyZWN0aW9uIGxvb3AuIjsKICAgICAgICAgcmV0dXJuIHVuZGVmOwogICAgICAgfQogICAgICAgcmV0dXJuICRzZWxmLT5fZ2V0KCR1cmwpOyAgIyBSZWN1cnNlIQogICAgIH0KCiAgICAgJGJ1ZiA9fiBzLyguKz8pXDAxNT9cMDEyXDAxNT9cMDEyLy9zOyAgIyB6YXAgdGhlIGhlYWRlcgogICAgICggJHNlbGYtPnsnX2h0dHBfaGVhZGVycyd9ID0gJDEgKSAgID1+ICAgdHIvXDAxNVwwMTIvXG4vc2Q7CiAgICAgCiAgICAgREVCVUcgPiAxMCBhbmQgcHJpbnQgIkhlYWRlcnM6ICQkc2VsZnsnX2h0dHBfaGVhZGVycyd9XG4iOwogICAgIAogICAgICRzZWxmLT57J19odHRwX2Fib3J0J30gPSAiSFRUUCBzdGF0dXMgJGNvZGUiCiAgICAgIGlmICRjb2RlIGVxICc0MDQnIG9yICRjb2RlIGVxICc0MDMnOwogICAgIHJldHVybiB1bmRlZiB1bmxlc3MgJGNvZGUgPX4gbS9eMi87CiAgICAgCiAgICAgREVCVUcgYW5kIHByaW50ICJSZXR1cm5pbmcgIiwgbGVuZ3RoKCRidWYpLCAiIGJ5dGVzIG9mIGNvbnRlbnQuXG4iOwogICB9IGVsc2UgewogICAgIERFQlVHIGFuZCBwcmludCAiR290IGEgaGVhZGVybGVzcyByZXNwb25zZS4gIFJldHVybmluZy5cbiI7CiAgIH0KCiAgIHJldHVybiAkYnVmOwp9CgojPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCnN1YiBfcmVhZF9oaXN0b3J5X2ZpbGUgewogIG15ICRzZWxmID0gJF9bMF07CiAgbXkgJGhmID0gJHNlbGYtPmhpc3RvcnlfZmlsZTsKICB1bmxlc3MoZGVmaW5lZCAkaGYgYW5kIGxlbmd0aCAkaGYpIHsKICAgIERFQlVHIGFuZCBwcmludCAiTm8gaGlzdG9yeV9maWxlIGRlZmluZWQgZm9yICRzZWxmLlxuIjsKICAgIHJldHVybjsKICB9CiAgCiAgbXkoJWZpcnN0LCAlbGFzdCk7ICAjICJsYXN0IiBpbiB0aGUgc2Vuc2Ugb2YgIm1vc3QgcmVjZW50bHkiCiAgJHNlbGYtPnsnX2ZpcnN0X3NlZW4nfSA9IFwlZmlyc3Q7CiAgJHNlbGYtPnsnX2xhc3Rfc2VlbicgfSA9IFwlbGFzdCA7CgogIHVubGVzcyggLWUgJGhmIGFuZCAtcyBfICkgewogICAgJHNlbGYtPnsnX3Zpcmdpbl9pdGVtX3RpbWVzdGFtcCd9ID0gdGltZSgpIGlmICREV0lNOwogICAgcmV0dXJuIDA7CiAgfQoKICBteSAkbm93ID0gdGltZSgpOwogIG15ICRmb3JnZXRfYmVmb3JlOwogIAogIG15ICRpbjsKICB7CiAgICBsb2NhbCAqSU47CiAgICBvcGVuKElOLCAkaGYpIG9yIENhcnA6OmNvbmZlc3MgIkNhbid0IHJlYWQtb3BlbiAkaGY6ICQhIjsgICMgaW5zYW5lCiAgICAkaW4gPSAqSU57SU99OwogIH0KICBsb2NhbCAkXzsKICBteSBAZjsKICB3aGlsZSg8JGluPikgewogICAgdHIvXG5cci8vZDsKICAgIG5leHQgdW5sZXNzIEBmID0gc3BsaXQgIlx0IiwgJF8sIDMgYW5kIGRlZmluZWQoJGZbMF0pIGFuZCBsZW5ndGgoJGZbMF0pOwoKICAgICRsYXN0eyRmWzBdfSA9ICRmWzJdIGlmICRmWzJdOwoKICAgIGlmKCAkZlsxXSApIHsKICAgICAgJGZpcnN0eyRmWzBdfSA9ICRmWzFdOwogICAgICBERUJVRyA+IDMgYW5kIHByaW50ICIgTGVhcm5pbmcgJGZbMF0gZmlyc3Qgc2VlbiBhdCAkZlsxXVxuIjsKICAgIH0gZWxzZSB7CiAgICAgICRmaXJzdHskZlswXX0gPSAkbm93OwogICAgICBERUJVRyA+IDMgYW5kIHByaW50ICIgUHJlbGVhcm5pbmcgJGZbMF0gZmlyc3Qgc2VlbiBhdCAkZlsxXVxuIjsKICAgICAgICMgVE9ETzogaXMgdGhpcyB1c2VmdWw/CiAgICB9CiAgfQogIGNsb3NlKCRpbik7CgogIHJldHVybiAxOwp9CgojIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4KCnN1YiBfd3JpdGVfaGlzdG9yeV9maWxlIHsKICBteSAkc2VsZiA9ICRfWzBdOwogIG15ICRoZiA9ICRzZWxmLT5oaXN0b3J5X2ZpbGU7CiAgdW5sZXNzKGRlZmluZWQgJGhmIGFuZCBsZW5ndGggJGhmKSB7CiAgICBERUJVRyBhbmQgcHJpbnQgIk5vIGhpc3RvcnlfZmlsZSBkZWZpbmVkIGZvciAkc2VsZi5cbiI7CiAgICByZXR1cm47CiAgfQogIAogIG15ICRmaXJzdCA9ICRzZWxmLT57J19maXJzdF9zZWVuJ307CiAgbXkgJGxhc3QgID0gJHNlbGYtPnsnX2xhc3Rfc2VlbicgfTsKICBteSAkbm93ICAgPSB0aW1lKCk7CiAgCiAgbXkgJG91dDsKICBERUJVRyBhbmQgcHJpbnQgIlNhdmluZyB0byBoaXN0b3J5IGZpbGUgJGhmXG4iOwogIERFQlVHID4gMiBhbmQgcHJpbnRmICJUaW1lIG5vdzogJXMgPSAlc1xuIiwgdGltZSgpLCBzY2FsYXIobG9jYWx0aW1lKTsKICB7CiAgICBsb2NhbCAqSEY7CiAgICBvcGVuKEhGLCAiPiRoZiIpIG9yIENhcnA6OmNvbmZlc3MgIkNhbid0IHdyaXRlLW9wZW4gJGhmOiAkISI7ICAjIGluc2FuZQogICAgJG91dCA9ICpIRntJT307CiAgfQogIHsKICAgIG15KEBmLCBAeCk7CiAgICB7CiAgICAgIG15ICV4OwogICAgICBAeHtrZXlzICUkZmlyc3QsIGtleXMgJSRsYXN0fSA9ICgpOwogICAgICBAeCA9IHNvcnQga2V5cyAleDsKICAgIH0KCiAgICBteSAkZm9yZ2V0X2JlZm9yZTsKICAgIHsKICAgICAgbXkgJHIgPSAkc2VsZi0+cmV0ZW50aW9uOwogICAgICBpZiggJHIgYW5kICRyID4gMCApIHsgJGZvcmdldF9iZWZvcmUgPSB0aW1lKCkgLSAkciB9CiAgICB9CiAgICBmb3JlYWNoIG15ICRrZXkgKEB4KSB7CiAgICAgIG5leHQgaWYgJGtleSA9fiBtL1tcdFxuXHJdLzsKICAgICAgaWYoICRmb3JnZXRfYmVmb3JlIGFuZCAkbGFzdC0+eyRrZXl9IDwgJGZvcmdldF9iZWZvcmUgKSB7CiAgICAgICAgREVCVUcgYW5kIHByaW50ZigKICAgICAgICAgICIgRm9yZ2V0dGluZyAlcyBhcyBiZWluZyB0b28gb2xkIHNpbmNlIGxhc3Qtc2VlbiAoJXMgPSAlcylcbiIsCiAgICAgICAgICAka2V5LAogICAgICAgICAgJGxhc3QtPnska2V5fSwKICAgICAgICAgIHNjYWxhcihsb2NhbHRpbWUoJGxhc3QtPnska2V5fSkpLAogICAgICAgICk7CiAgICAgICAgbmV4dDsKICAgICAgfQogICAgICBwcmludCAkb3V0ICAgICAgJGtleSwgIlx0IiwKICAgICAgICAkZmlyc3QtPnska2V5fXx8JycsICJcdCIsCiAgICAgICAgICRsYXN0LT57JGtleX18fCcnLCAiXG4iLAogICAgICA7CiAgICAgIAogICAgICBpZihERUJVRyA+IDIpIHsKICAgICAgICBwcmludGYgIiAgS2V5ICVzXG4gICAgRmlyc3Qgc2VlbjogJXMgPSAlc1xuICAgIExhc3Qgc2VlbjogICVzID0gJXNcbiIsCiAgICAgICAgICAka2V5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZpcnN0LT57JGtleX18fCctJywKICAgICAgICAgIHNjYWxhcihsb2NhbHRpbWUoICRmaXJzdC0+eyRrZXl9fHwwICApKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGFzdC0+eyRrZXl9fHwnLScsCiAgICAgICAgICBzY2FsYXIobG9jYWx0aW1lKCAgJGxhc3QtPnska2V5fXx8MCAgKSksCiAgICAgIH0KCiAgICB9CiAgICBjbG9zZSgkb3V0KTsKICB9CiAgREVCVUcgYW5kIHByaW50ICJEb25lIHNhdmluZyB0byAkaGZcbiI7CiAgcmV0dXJuIDE7Cn0KCiMtXy1fLV8tXy1fLV8tXy1fLV8tXy1fLV8tXy1fLV8tXy1fLV8tXy1fLV8tXy1fLV8tXy1fLV8tXy1fLV8tXy1fLV8tXy1fLV8tXwoKCj1pdGVtIEM8cnNzX2hvdXJseT4gSTxvcj4gQzxyc3NfZGFpbHk+IEk8b3I+IEM8cnNzX3R3aWNlX2RhaWx5PgogSTxvcj4gQzxyc3NfdGhyaWNlX2RhaWx5PiBJPG9yPiBDPHJzc193ZWVrbHk+IEk8b3I+IEM8cnNzX2V2ZXJ5X290aGVyX2hvdXI+CgpDYWxsaW5nIG9uZSBvZiB0aGVzZSBmdW5jdGlvbnMgZGVjbGFyZXMgdGhhdCB0aGlzIGZlZWQgaXMgdXN1YWxseQpnZW5lcmF0ZWQgYXQgdGhlIHNhbWUgdGltZShzKSBldmVyeSBkYXkgKG9yIGV2ZXJ5IHdlZWssIGluIHRoZSBjYXNlIG9mCkM8cnNzX3dlZWtseT4pLiBBbmQsIHdoZXJlIGl0J3Mgbm90IGp1c3Qgb25jZSBhIGRheS93ZWVrLCB0aGVzZSBtdWx0aXBsZQp0aW1lcyBhIGRheSBhcmUgZXZlbmx5IHNwYWNlZC4gIFRoZXNlIGZ1bmN0aW9ucyB0aGVuIHNldCB0aGUgZmVlZCdzCkM8dXBkYXRlUGVyaW9kPiwgQzx1cGRhdGVCYXNlPiwgQzx1cGRhdGVGcmVxdWVuY3k+LCBDPHNraXBIb3Vycz4sCkM8c2tpcERheXM+LCBhbmQgQzx0dGw+IGVsZW1lbnRzIGFwcHJvcHJpYXRlbHksIHNvIHRoYXQgUlNTIHJlYWRlcnMgY2FuIGtub3cgYXQKYXQgd2hhdCB0aW1lcyB0aGVyZSBjb3VsZCAob3IgY291bGRuJ3QpIGJlIG5ldyBjb250ZW50IGluIHRoaXMgZmVlZC4KCkluIG90aGVyIHdvcmRzOiB1c2UgQzxyc3NfdHdpY2VfZGFpbHk+IGlmIHRoaXMgZmVlZCBpcyB1cGRhdGVkIGF0IGFib3V0IHRoZQpzYW1lIHRpbWUgZXZlcnkgZGF5IGFuZCB0aGVuIGFnYWluIDEyIGhvdXJzIGxhdGVyLiAgVXNlIEM8cnNzX3RocmljZV9kYWlseT4KaWYgdGhpcyBmZWVkIGlzIHVwZGF0ZWQgYXQgdGhlIHNhbWUgdGltZSBkYWlseSwgYW5kIHRoZW4gOCBob3VycyBsYXRlciwgYW5kCnRoZW4gOCBob3VycyBsYXRlci4gIEFuZCB1c2UgQzxyc3NfZXZlcnlfb3RoZXJfaG91cj4gaWYgdGhlIGZlZWQgdXBkYXRlcwphdCBhYm91dCBJPG4+IG1pbnV0ZXMgcGFzdCBldmVyeSBldmVuIG51bWJlcmVkIGhvdXIsIG9yIGV2ZXJ5IG9kZC1udW1iZXJlZApob3VyLgoKQ2xlYXJseSBJIG1lYW4gdGhlc2UgZnVuY3Rpb25zIHRvIGJlIHVzZWQgaW4gcHJvZ3JhbXMgdGhhdCBhcmUgY3JvbnRhYmJlZAp0byBydW4gYXQgcGFydGljdWxhciBpbnRlcnZhbHMsIGFzIHdpdGggYSBjcm9udGFiIGxpbmUgbGlrZSBvbmUgb2YgdGhlc2U6CgogICAgICAgNTIgKiAqICogKiAgICAgICAgIH4vdGhpbmd5ICAgIyA9PiByc3NfaG91cmx5CiAgICAgICA1MiAyMyAqICogKiAgICAgICAgfi90aGluZ3kgICAjID0+IHJzc19kYWlseQogICAgICAgNTIgNCwxNiAqICogKiAgICAgIH4vdGhpbmd5ICAgIyA9PiByc3NfdHdpY2VfZGFpbHkKICAgICAgIDUyIDUsMTMsMjEgKiAqICogICB+L3RoaW5neSAgICMgPT4gcnNzX3RocmljZV9kYWlseQogICAgICAgNTIgMjMgKiAqIDMgICAgICAgIH4vdGhpbmd5ICAgIyA9PiByc3Nfd2Vla2x5CiAgICAgICA1MiAqLzIgKiAqICogICAgICAgfi90aGluZ3kgICAjID0+IHJzc19ldmVyeV9vdGhlcl9ob3VyCgpDbGVhcmx5IHRoZXJlIGFyZW4ndCBDPHJzc19JPGludGVydmFsPj4gZnVuY3Rpb25zIGZvciBhbGwgdGhlIHNjaGVkdWxpbmcKcG9zc2liaWxpdGllcyBwcm9ncmFtcyAtLSBpZiB5b3UgaGF2ZSBhIHByb2dyYW0gdGhhdCBoYXMgdG8gcnVuIGF0CjZhbSwgOGFtLCAxcG0sIGFuZCA0cG0sIHRoZXJlJ3Mgbm8gZnVuY3Rpb24gZm9yIHRoYXQuICBIb3dldmVyLCB0aGUgYWJvdmUKY3JvbnRhYiBsaW5lcyAob3Igd2l0aCBtaW5vciBjaGFuZ2VzLCBsaWtlIEM8MSw5LDE3PiBpbnN0ZWFkIG9mIEM8NSwxMywyMT4pCmFyZSBqdXN0IGZpbmUgZm9yIGFsbW9zdCBldmVyeSBSU1MgZmVlZCBJJ3ZlIHJ1bi4KCkFuIGFzaWRlOiBJIHJlY29tbWVuZCBydW5uaW5nIHRoZSBwcm9ncmFtcyBhdCBhYm91dCA1MiBtaW51dGVzIHBhc3QgdGhlIGhvdXIsCmdlbmVyYWxseSBpbiBzZXJpZXMsIGxpa2Ugc286CgogICAgICAgNTIgNSwxMywyMSAqICogKiAgIH4vdGhpbmd5IDsgfi9kb2RhZCA7IH4vbWFrZXRoaW5nIDsgfi9naXptbwoKSG93ZXZlciwgeW91ciBtaWxlYWdlIG1heSB2YXJ5LgoKSW5jaWRlbnRhbGx5LCB0aGVzZSBmdW5jdGlvbnMgdGFrZSBubyBhcmd1bWVudHMsIHNvIHRoZSBwYXJlbnRoZXNlcyBhcmUKb3B0aW9uYWwuICBUaGF0IGlzLCB0aGVzZSB0d28gbGluZXMgZG8gdGhlIHNhbWUgdGhpbmc6CgogICAgICAgcnNzX2hvdXJseTsKICAgICAgIHJzc19ob3VybHkoKTsKCj1jdXQKCiMjIFNvbWUgaGFuZHkgaWYgc29tZXdoYXQgYXJiaXRyYXJ5IHNob3J0Y3V0czoKIwpzdWIgaG91cmx5IHsKICBteSAkc2VsZiA9ICRfWzBdOwogICRzZWxmLT51cGRhdGVQZXJpb2QoJ2hvdXJseScpOwogICRzZWxmLT50dGwoJzYwJyk7CiAgcmV0dXJuOwp9CgpzdWIgZGFpbHkgewogIG15ICRzZWxmID0gJF9bMF07CiAgJHNlbGYtPnVwZGF0ZUhvdXJzKCk7CiAgJHNlbGYtPnVwZGF0ZVBlcmlvZCgnZGFpbHknKTsKICAkc2VsZi0+dHRsKCAyNCAqIDYwICk7CiAgcmV0dXJuOwp9CgpzdWIgdHdpY2VfZGFpbHkgIHsKICBteSAkc2VsZiA9ICRfWzBdOwogIG15ICRoID0gKGdtdGltZSggJHNlbGYtPl9ub3dfcm91bmRlZF91cCApKVsyXTsKICAkc2VsZi0+dXBkYXRlSG91cnMoICRoLCAgKCRoKzEyKSAlIDI0ICk7CiAgJHNlbGYtPnVwZGF0ZVBlcmlvZCgnZGFpbHknLDIpOwogICRzZWxmLT50dGwoIDEyICogNjAgKTsKICByZXR1cm47Cn0KCnN1YiB0aHJpY2VfZGFpbHkgIHsKICBteSAkc2VsZiA9ICRfWzBdOwogIG15ICRoID0gKGdtdGltZSggJHNlbGYtPl9ub3dfcm91bmRlZF91cCApKVsyXTsKICAkc2VsZi0+dXBkYXRlSG91cnMoICRoLCAgKCRoKyA4KSAlIDI0LCAgKCRoKzE2KSAlIDI0ICk7CiAgJHNlbGYtPnVwZGF0ZVBlcmlvZCgnZGFpbHknLDMpOwogICRzZWxmLT50dGwoIDggKiA2MCApOwogIHJldHVybjsKfQoKc3ViIHdlZWtseSB7CiAgbXkgJHNlbGYgPSAkX1swXTsKICAkc2VsZi0+dXBkYXRlSG91cnMoKTsKICAkc2VsZi0+dXBkYXRlRGF5cygpOwogICRzZWxmLT51cGRhdGVQZXJpb2QoJ3dlZWtseScsMSk7CiAgJHNlbGYtPnR0bCggNyAqIDI0ICogNjAgKTsKICByZXR1cm47Cn0KCnsKbXkoQG9kZHMsIEBldmVucyk7CmZvcigwIC4uIDIzKSB7IHB1c2ggQHsgICgkXyAmIDEpID8gXEBvZGRzIDogXEBldmVucyAgfSwgJF8gfQoKc3ViIGV2ZXJ5X290aGVyX2hvdXIgewogIG15ICRzZWxmID0gJF9bMF07CiAgbXkgJGggPSAoZ210aW1lKCAkc2VsZi0+X25vd19yb3VuZGVkX3VwICkpWzJdOwogICRzZWxmLT5za2lwSG91cnMoICgkaCAmIDEpID8gQGV2ZW5zIDogQG9kZHMpOyAKICAkc2VsZi0+dXBkYXRlUGVyaW9kKCdkYWlseScsMTIpOwogICRzZWxmLT50dGwoICcxMjAnICk7CiAgcmV0dXJuOwp9Cn0KIy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCgpteSBAZGF5X25hbWVzID0gKAogIlN1bmRheSIsICJNb25kYXkiLCAiVHVlc2RheSIsICJXZWRuZXNkYXkiLCAiVGh1cnNkYXkiLCAiRnJpZGF5IiwgIlNhdHVyZGF5IiwgCik7Cm15ICVpc19kYXlfbmFtZTsKQGlzX2RheV9uYW1le0BkYXlfbmFtZXN9ID0gQGRheV9uYW1lczsKCiMuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgoKc3ViIF9ub3dfcm91bmRlZF91cCB7CiAgbXkgJHNlbGYgPSAkX1swXTsKICBteSAkbm93ID0gJF9bMF17J19mb3JjZV9ub3cnfSAgICMgdG8gYmUgdXNlZCBvbmx5IGZvciB0ZXN0aW5nIHB1cnBvc2VzCiAgICB8fCB0aW1lKCk7CiAgaWYoICRDSFVOS19NSU5VVEVTICkgewogICAgbXkgJHR3ZWFrID0gKCRDSFVOS19NSU5VVEVTICogNjApIC0gKCRub3cgJSAoJENIVU5LX01JTlVURVMgKiA2MCkpOwogICAgREVCVUcgYW5kIHByaW50ICJUd2Vha2luZyAkbm93ICgiLCBzY2FsYXIoZ210aW1lKCRub3cpKSwKICAgICAgIiBHTVQpIGJ5ICR0d2VhayBzZWNvbmRzXG4gc28gaXQnbGwgYmUgYW4gZXZlbiAkQ0hVTktfTUlOVVRFUyBtaW51dGVzOiAiOwogICAgJG5vdyArPSAkdHdlYWs7CiAgICBERUJVRyBhbmQgcHJpbnQgIiRub3cgKCIsIHNjYWxhcihnbXRpbWUoJG5vdykpLCAiIEdNVClcbiI7CiAgfSBlbHNlIHsKICAgICMgcHJvYmFibHkgbm90IGEgZ29vZCBpZGVhCiAgICBERUJVRyBhbmQgcHJpbnQgIkFyY2hvcmluZyB0aW1lYmFzZSB0byByaWdodCB0aGlzIG1vbWVudC5cbiI7CiAgfQogIHJldHVybiAkbm93Owp9CgpzdWIgX25vdyB7IHJldHVybiAkX1swXXsnX2ZvcmNlX25vdyd9IHx8IHRpbWUoKSB9CgojLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KCj1iYWNrCgo9aGVhZDIgTUlOT1IgRlVOQ1RJT05TCgpUaGVzZSBhcmUgZnVuY3Rpb25zIHRoYXQgeW91IHByb2JhYmx5IHdvbid0IG5lZWQgb2Z0ZW4sIG9yIGF0IGFsbC4gIEkgaW5jbHVkZQp0aGVzZSBmb3IgdGhlIHNha2Ugb2YgY29tcGxldGVuZXNzLCBhbmQgc28gdGhhdCBhZHZhbmNlZCB1c2VycyBtaWdodCBmaW5kIHRoZW0KdXNlZnVsIGluIHNvbWUgY2FzZXMuCgo9b3ZlcgoKPWl0ZW0gQzxyc3Nfc2tpcEhvdXJzKCBJPGdtdF9ob3VyX251bSwgZ210X2hvdXJfbnVtLCAuLi4+ICk7PgoKVGhpcyBmdW5jdGlvbiBkaXJlY3RseSBzZXRzIHRoZSBDPHNraXBIb3Vycz4gZWxlbWVudCdzIHZhbHVlcyB0byB0aGUKc3BlY2lmaWVkIEdNVCBob3VyIG51bWJlcnMuCgo9Y3V0CgpzdWIgc2tpcEhvdXJzIHsKICBteSgkc2VsZiwgQGluKSA9IEBfOwogIG15IEBza2lwaG91cnM7CiAgZm9yZWFjaCBteSAkaG91ciAoQGluKSB7CiAgICBuZXh0IHVubGVzcyBkZWZpbmVkICRob3VyOwogICAgQ2FycDo6Y3JvYWsgIlwiJGhvdXJcIiBpc24ndCBhIHZhbGlkIGhvdXIgbnVtYmVyIChtdXN0IGJlIDAtMjMpIgogICAgIHVubGVzcyAkaG91ciA8PSAyNCBhbmQgJGhvdXIgPj0gMDsKICAgIHB1c2ggQHNraXBob3VycywgKCRob3VyID09IDI0KSA/IDAgOiAoMCArICRob3VyKTsKICAgICAjIHRvbGVyYXRlICIyNCIgdG8gbWVhbiAwaC4KICB9CiAgREVCVUcgYW5kIHByaW50ICJTa2lwZGF5czogQHNraXBob3Vyc1xuIjsKICAkc2VsZi0+eydza2lwSG91cnMnfSA9IGpvaW4gJycsCiAgICAiPHNraXBIb3Vycz4iLCBtYXAoICI8aG91cj4kXzwvaG91cj4iLCBAc2tpcGhvdXJzKSwgIjwvc2tpcEhvdXJzPlxuIgogIDsKICByZXR1cm47Cn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKPWl0ZW0gQzxyc3NfdXBkYXRlSG91cnMoKTs+Cgo9aXRlbSBDPHJzc191cGRhdGVIb3VycyggSTxnbXRfaG91cl9udW0sIGdtdF9ob3VyX251bSwgLi4uPiApOz4KClRoaXMgZnVuY3Rpb24gaXMgYSB3cmFwcGVyIGFyb3VuZCBDPHJzc19za2lwSG91cnM+IC0tIHlvdSBjYWxsCkM8cnNzX3VwZGF0ZUhvdXJzPiB3aXRoIGEgbGlzdCBvZiBHTVQgaG91ciBudW1iZXJzLCBhbmQgCkM8cnNzX3VwZGF0ZUhvdXJzPiB3aWxsIGNhbGwgQzxyc3Nfc2tpcEhvdXJzKDAgLi4gMjMpPiBleGNlcHQgSTx3aXRob3V0Pgp3aGF0ZXZlciBob3VyIG51bWJlcnMgeW91IHNwZWNpZmllZC4KCklmIHlvdSBjYWxsIHdpdGggYW4gZW1wdHkgbGlzdCAoaS5lLiwgQzxyc3NfdXBkYXRlSG91cnMoKTs+KSwgdGhlbgp3ZSB1c2VzIEM8Z210aW1lPiB0byBmaW5kIG91dCB0aGUgY3VycmVudCBob3VyIChhbmQgcm91bmRzIGl0IHVwCmlmIGl0J3MgYWZ0ZXIgNTAgbWludXRlcyBwYXN0KSwgYmFzaWNhbGx5IGp1c3QgYXMgaWYgeW91J2QgY2FsbGVkOgoKICAgICAgcnNzX3VwZGF0ZUhvdXJzKCAoZ210aW1lKDYwMCt0aW1lKCkpKVsyXSApOwoKPWN1dAoKc3ViIHVwZGF0ZUhvdXJzIHsgIyBKdXN0IHRoZSBjb21wbGVtZW50IG9mIHNraXBIb3Vycy4KICAjIEZlZWRpbmcgaXQgKCkgbWVhbnMgdXBkYXRlcyBvbmx5IGF0IHRoaXMgaG91ciBvZiBkYXkKICAjIChUaGlzIGlzIGZpbmUgc2luY2UgeW91J2QgbmV2ZXIgbWVhbiB0byBhY3R1YWxseSBkZWNsYXJlCiAgIyBhIGZlZWQgd2hvc2UgdXBkYXRlSG91cnMgaXMgbmV2ZXIsIGkuZS4gd2hvc2Ugc2tpcEhvdXJzCiAgIyBpcyBhbGwgb2YgMC0yMykKICBteSAkc2VsZiA9IHNoaWZ0OwogIG15ICVob3VyczsKICBAaG91cnN7ICBAXyAgPyAgKG1hcCAkXyswLCBAXykgIDoKICAgICggZ210aW1lKCAkc2VsZi0+X25vd19yb3VuZGVkX3VwICkgKVsyXSAgfSA9ICgpOwogICMgbWlnaHQgYXMgd2VsbCBjb3VudCAxMDo1NyBhcyAxMWgsIGV0YwogIERFQlVHIGFuZCBwcmludCAiSE9VUlMgVVBEQVRFWSA6Iiwgam9pbignICcsIHNvcnQga2V5cyAlaG91cnMpLCAiXG4iOwogICRzZWxmLT5za2lwSG91cnMoIGdyZXAgIWV4aXN0cygkaG91cnN7JF99KSwgMCAuLiAyMyApOwogIHJldHVybjsKfQoKIy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCgo9aXRlbSBDPHJzc19za2lwRGF5cygpOz4KCj1pdGVtIEM8cnNzX3NraXBEYXlzKCBJPGdtdF9kYXlfbnVtLCBnbXRfZGF5X251bSwgLi4uPiApOz4KCj1pdGVtIEM8cnNzX3NraXBEYXlzKCBJPGdtdF9kYXlfbmFtZSwgZ210X2RheV9uYW1lLCAuLi4+ICk7PgoKVGhpcyBmdW5jdGlvbiBkaXJlY3RseSBzZXRzIHRoZSBDPHNraXBEYXlzPiBlbGVtZW50J3MgdmFsdWVzIHRvIHRoZQpzcGVjaWZpZWQgd2Vla2RheXMuICBOb3RlIHRoYXQgdGhpcyBhY2NlcHRzIGVpdGhlciBpbnRlZ2VycyAobGlrZQo2IGZvciBTYXR1cmRheSwgU3VuZGF5IGJlaW5nIGVpdGhlciAwIG9yIDcpLCBvciB0aGVpciBleGFjdApFbmdsaXNoIG5hbWVzLgoKSWYgeW91IHVzZSB0aGUgQzxza2lwRGF5cz4gZmllbGQsIGNvbnNpZGVyIHRoYXQgaXQgcmVmZXJzIHRvIGRheXMKZmlndXJlZCBieSBHTVQsIG5vdCBsb2NhbCB0aW1lLiAgRm9yIGV4YW1wbGUsIGlmIEkgc2F5IHRvIHNraXAgU2F0dXJkYXlzLAp0aGF0IG1lYW5zIFNhdHVyZGF5cyBHTVQsIHdoaWNoIGluIG15IHRpbWV6b25lIChBbGFza2EpIHN0YXJ0cwppbiB0aGUgbWlkZGxlIG9mIEZyaWRheSBhZnRlcm5vb24uCgo9Y3V0CgpzdWIgc2tpcERheXMgewogIG15KCRzZWxmLEBpbikgPSBAXzsKICBteSBAc2tpcGRheXM7CiAgZm9yZWFjaCBteSAkZGF5IChAaW4pIHsKICAgIG5leHQgdW5sZXNzIGRlZmluZWQgJGRheTsKICAgIGlmKCRkYXkgPX4gbS9eWzAtN10kL3MpIHsgIyB0b2xlcmF0ZSBudW1lcmljIGRheSBzcGVjcwogICAgICAkZGF5ID0gMCBpZiAkZGF5ID09IDc7CiAgICAgICRkYXkgPSAkZGF5X25hbWVzWyRkYXldCiAgICAgICB8fCBDYXJwOjpjcm9hayAiRGF5IG51bWJlciBcIiRkYXlcIiBpcyBvdXQgb2YgcmFuZ2UgKDAtNikiOwogICAgfSBlbHNlIHsKICAgICAgQ2FycDo6Y3JvYWsgIlwiJGRheVwiIGlzbid0IGEgdmFsaWQgZGF5IG5hbWUgKHVzZSAwLTYgb3Igb25lIG9mOiBAZGF5X25hbWVzKSIKICAgICAgIHVubGVzcyAkaXNfZGF5X25hbWV7JGRheX07CiAgICB9CiAgICBwdXNoIEBza2lwZGF5cywgJGRheTsKICB9OwogIAogIERFQlVHIGFuZCBwcmludCAiU2tpcGRheXM6IEBza2lwZGF5c1xuIjsKICAkc2VsZi0+eydza2lwRGF5cyd9ID0gam9pbiAnJywKICAgICI8c2tpcERheXM+IiwgbWFwKCAiPGRheT4kXzwvZGF5PiIsIEBza2lwZGF5cyksICI8L3NraXBEYXlzPlxuIgogIDsKICByZXR1cm47Cn0KCiMuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgoKPWl0ZW0gQzxyc3NfdXBkYXRlRGF5cygpOz4KCj1pdGVtIEM8cnNzX3VwZGF0ZURheXMoIEk8Z210X2RheV9udW0sIGdtdF9kYXlfbnVtLCAuLi4+ICk7PgoKPWl0ZW0gQzxyc3NfdXBkYXRlRGF5cyggSTxnbXRfZGF5X25hbWUsIGdtdF9kYXlfbmFtZSwgLi4uPiApOz4KClRoaXMgZnVuY3Rpb24gaXMgYSB3cmFwcGVyIGFyb3VuZCBDPHJzc19za2lwRGF5cz4gLS0geW91IGNhbGwKQzxyc3NfdXBkYXRlRGF5cz4gd2l0aCBhIGxpc3Qgb2YgR01UIGRheSBuYW1lcy9udW1iZXJzLCBhbmQgCkM8cnNzX3VwZGF0ZURheXM+IHdpbGwgY2FsbCBDPHJzc19za2lwRGF5cygwIC4uIDYpPiBleGNlcHQgSTx3aXRob3V0Pgp3aGF0ZXZlciBkYXlzIHlvdSBzcGVjaWZpZWQuCgpJZiB5b3UgY2FsbCB3aXRoIGFuIGVtcHR5IGxpc3QgKGkuZS4sIEM8cnNzX3VwZGF0ZURheXMoKTs+KSwgdGhlbgp3ZSB1c2VzIEM8Z210aW1lPiB0byBmaW5kIG91dCB0aGUgY3VycmVudCBkYXkgKEdNVCEpLCBiYXNpY2FsbHkKanVzdCBhcyBpZiB5b3UnZCBjYWxsZWQ6CgogICAgICByc3NfdXBkYXRlRGF5cyggKGdtdGltZSg2MDArdGltZSgpKSlbNl0gKTsKCgo9Y3V0CgpzdWIgdXBkYXRlRGF5cyB7ICMganVzdCB0aGUgY29tcGxlbWVudCBvZiBza2lwRGF5cwogICMgRmVlZGluZyBpdCAoKSBtZWFucyB1cGRhdGVzIG9ubHkgYXQgdGhpcyBkYXkgb2YgdGhlIHdlZWsKICAjIChUaGlzIGlzIGZpbmUgc2luY2UgeW91J2QgbmV2ZXIgbWVhbiB0byBhY3R1YWxseSBkZWNsYXJlCiAgIyBhIGZlZWQgd2hvc2UgdXBkYXRlRGF5cyBpcyBuZXZlciwgaS5lLiwgd2hvc2UgdXBkYXRlRGF5cwogICMgaXMgYWxsIG9mIE1vbmRheSB0aHJ1IFN1bmRheSkKICBteSAkc2VsZiA9IHNoaWZ0OwogIG15ICVkYXlzOwogIEBkYXlzewogICAgbWFwIHs7CiAgICAgIG0vXlswLTddJC8gPyAkZGF5X25hbWVzWyAoJF8gPT0gNykgPyAwIDogJF8gXQogICAgICA6ICRpc19kYXlfbmFtZXskX30gPyAkXwogICAgICA6IENhcnA6OmNyb2FrICJcIiRfXCIgaXNuJ3QgYSB2YWxpZCBkYXkgbmFtZSAodXNlIDAtNiBvciBvbmUgb2Y6IEBkYXlfbmFtZXMpIgogICAgfQogICAgQF8gPyBAXyA6ICggZ210aW1lKCAkc2VsZi0+X25vd19yb3VuZGVkX3VwICkgKVs2XQogIH0gPSAoKTsKICBERUJVRyBhbmQgcHJpbnQgIkRBWVMgVVBEQVRFWSA6Iiwgam9pbignICcsIHNvcnQga2V5cyAlZGF5cyksICJcbiI7CiAgJHNlbGYtPnNraXBEYXlzKCBncmVwICFleGlzdHMoJGRheXN7JF99KSwgQGRheV9uYW1lcyApOwogIHJldHVybjsKfQoKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKPWl0ZW0gQzxyc3NfdXBkYXRlUGVyaW9kKCBJPHBlcmlvZHN0cmluZz4gKTs+CgpUaGlzIGZ1bmN0aW9uIGRpcmVjdGx5IHNldHMgdGhlIEM8c3k6dXBkYXRlUGVyaW9kPiBlbGVtZW50J3MgdmFsdWUgdG8gdGhlCnBlcmlvZCBzcGVjaWZpZWQuICBZb3UgbXVzdCBzcGVjaWZ5IG9uZSBvZiB0aGUgc3RyaW5nczoKInllYXJseSIsICJtb250aGx5IiwgIndlZWtseSIsICJkYWlseSIsICJob3VybHkiLgpJIGFkdmlzZSB1c2luZyAid2Vla2x5IiBvbmx5IGlmIHlvdSBrbm93IHdoYXQgeW91J3JlIGRvaW5nLCBhbmQKInllYXJseSIsICJtb250aGx5IiBvbmx5IGlmIHlvdSBJPHJlYWxseT4ga25vdyB3aGF0IHlvdSdyZSBkb2luZy4KCj1pdGVtIEM8cnNzX3VwZGF0ZVBlcmlvZCggSTxwZXJpb2RzdHJpbmc+LCBJPGludD4sIEk8YmFzZT4gKTs+CgpUaGlzIGlzIGEgc2hvcnRjdXQgZm9yCkM8PApyc3NfdXBkYXRlUGVyaW9kKEk8cGVyaW9kc3RyaW5nPik7IHJzc191cGRhdGVGcmVxdWVuY3koSTxpbnQ+KQo+PgoKPWl0ZW0gQzxyc3NfdXBkYXRlUGVyaW9kKCBJPHBlcmlvZHN0cmluZz4sIEk8aW50PiwgSTxiYXNlPiApOz4KClRoaXMgaXMgYSBzaG9ydGN1dCBmb3IKQzw8CnJzc191cGRhdGVQZXJpb2QoSTxwZXJpb2RzdHJpbmc+KTsgcnNzX3VwZGF0ZUZyZXF1ZW5jeShJPGludD4pOwpyc3NfdXBkYXRlQmFzZShJPGJhc2U+KQo+PgoKPWN1dAoKc3ViIHVwZGF0ZVBlcmlvZCB7CiAgcmV0dXJuICRfWzBdLT57J3VwZGF0ZVBlcmlvZCd9IGlmIEBfID09IDE7CiAgIyBFbHNlIHdlJ3JlIGEgd3JpdGUgYWNjZXNzb3I6CiAgCiAgbXkoJHNlbGYsICRwZXJpb2QpID0gQF87CiAgJHBlcmlvZCBvciBDYXJwOjpjb25mZXNzKAogICAiV2hhdCBwZXJpb2Q/IHllYXJseS9tb250aGx5L3dlZWtseS9kYWlseS9ob3VybHk/Iik7CgogIGlmKCRwZXJpb2QgPX4gbS9eKHllYXJseXxtb250aGx5fHdlZWtseXxkYWlseXxob3VybHkpJC9zKSB7CiAgICAkc2VsZi0+eyd1cGRhdGVQZXJpb2QnfSA9ICRwZXJpb2Q7CiAgICAkc2VsZi0+dXBkYXRlRnJlcXVlbmN5KCRfWzJdKSBpZiBAXyA+IDI7CQogICAgJHNlbGYtPnVwZGF0ZUJhc2UoJF9bM10pIGlmIEBfID4gMzsKICAgICRzZWxmLT57J19uYW1lc3BhY2VzJ317J3N5J30gPSAkTkFNRVNQQUNFX1NZOwogICAgcmV0dXJuICRwZXJpb2Q7CiAgfSBlbHNlIHsKICAgIENhcnA6OmNvbmZlc3MoCiAgICAgIldoYXQga2luZCBvZiBwZXJpb2QgaXMgXCIkcGVyaW9kXCI/ICBVc2Ugb25lIG9mOiB5ZWFybHl8bW9udGhseXx3ZWVrbHl8ZGFpbHl8aG91cmx5Iik7CiAgfQp9CgojIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0KCj1pdGVtIEM8cnNzX3VwZGF0ZUJhc2UoIEk8aXNvX2RhdGVfc3RyaW5nPiApOz4KCj1pdGVtIEM8cnNzX3VwZGF0ZUJhc2UoIEk8ZXBvY2hfdGltZT4gKTs+CgpUaGlzIGZ1bmN0aW9uIGRpcmVjdGx5IHNldHMgdGhlIEM8c3k6dXBkYXRlQmFzZT4gZWxlbWVudCdzIHZhbHVlIHRvIHRoZQptb21lbnQgc3BlY2lmaWVkLiAgSWYgeW91IHBhc3MgaW4gYW4gZXBvY2ggdGltZSwgaXQgaXMgY29udmVydGVkIHRvCmFuIElTTyBkYXRlIHN0cmluZy4KCj1jdXQKCnN1YiB1cGRhdGVCYXNlIHsKICByZXR1cm4gJF9bMF0tPnsndXBkYXRlQmFzZSd9IGlmIEBfID09IDE7CiAgIyBFbHNlIHdlJ3JlIGEgd3JpdGUgYWNjZXNzb3I6CiAgCiAgbXkoJHNlbGYsICR0aGVuKSA9IEBfOwogIGlmKCAkdGhlbiA9fiBtL14tP1xkKyQvcyApIHsKICAgICRzZWxmLT57J3VwZGF0ZUJhc2UnfSA9ICRzZWxmLT5fZXBvY2gyaXNvZGF0ZSgkdGhlbik7CiAgfSBlbHNpZiAoICR0aGVuID1+ICAjIGJhc2ljYWxseSBJU084NjAxCiAgICAgIG08XgogICAgICAgIFxkXGRcZFxkCQkjIHllYXIKICAgICAgICAoPzoKICAgICAgICAgIC1cZFxkCQkJIyBtb250aAogICAgICAgICAgKD86CiAgICAgICAgICAgIC1cZFxkICAjIGRheQogICAgICAgICAgICAoPzoKICAgICAgICAgICAgICBUXGRcZDpcZFxkCSMgaGg6bW0KICAgICAgICAgICAgICAoPzoKICAgICAgICAgICAgICAgIDpcZFxkCQkjIHNlY29uZHMKICAgICAgICAgICAgICAgICg/OgogICAgICAgICAgICAgICAgICBcLlxkKwkJIyBmcmFjdGlvbnMgb2YgYSBzZWNvbmQKICAgICAgICAgICAgICAgICk/CiAgICAgICAgICAgICAgKT8KICAgICAgICAgICAgICAoPzoJCSMgVFogb2Zmc2V0CiAgICAgICAgICAgICAgICBaCQkjIFp1bHUKICAgICAgICAgICAgICAgfAogICAgICAgICAgICAgICAgKD86CQkjIG9yIGJ5IG9mZnNldDoKICAgICAgICAgICAgICAgICAgWy0rXQogICAgICAgICAgICAgICAgICBcZFxkOlxkXGQgICAgICMgaGg6bW0sIHdpdGggbGVhZGluZyAnKycgb3IgJy0nCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgKT8KICAgICAgICAgICAgKT8KICAgICAgICAgICk/CiAgICAgICAgICAKICAgICAgICApPwogICAgICAgICAjIFRoZSBtb250aCB3YXMgb3B0aW9uYWwsIGJ1dCB0aGF0CiAgICAgICAgICMgIG1ha2VzICIxOTk0IiBhbWJpZ3VvdXMgLS0gYSB5ZWFyIG9yIGFuIGVwb2NoIHRpbWU/CiAgICAgICAgICMgSSBkb3VidCBhbnlvbmUgd2FudHMgdG8gd3JpdGUgPHVwZGF0ZUJhc2U+MjAwMDwvdXBkYXRlQmFzZT4sCiAgICAgICAgICMgIGVzcCBhcyB0aGUgZGVmYXVsdCBpcyBiYXNpY2FsbHkgPT0gPHVwZGF0ZUJhc2U+MTk3MDwvdXBkYXRlQmFzZT4uCiAgICAgICAgJAogICAgICA+c3gKICApIHsKICAgICRzZWxmLT57J3VwZGF0ZUJhc2UnfSA9ICR0aGVuOwogIH0gZWxzZSB7CiAgICBDYXJwOjpjb25mZXNzKCJXaGF0IGtpbmQgb2YgdXBkYXRlQmFzZSBpcyBcIiR0aGVuXCI/Iik7CiAgfQogIHJldHVybiAkc2VsZi0+eyd1cGRhdGVCYXNlJ307Cn0KCiMgLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLQpzdWIgX2Vwb2NoMmlzb2RhdGUgewogIG15KCRzZWxmLCAkdGltZSkgPSBAXzsKICBteShAdGltZWxpc3QpID0gZ210aW1lKCR0aW1lKTsKICArKyR0aW1lbGlzdFs0XTsKICAkdGltZWxpc3RbNV0gKz0gMTkwMDsKICByZXR1cm4gc3ByaW50ZigiJTA0ZC0lMDJkLSUwMmRUJTAyZDolMDJkKzAwOjAwIiwKICAgICAgIEB0aW1lbGlzdFsgNSwgICA0LCAgIDMgICwgMiAgICwxICBdKTsKICAgICAgIAp9CgojIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0KJVBlcmlvZEFzU2Vjb25kcyA9ICgKICAnaG91cmx5JyA9PiA2MCAqIDYwLAogICdkYWlseScgID0+IDYwICogNjAgKiAyNCwKICAnd2Vla2x5JyA9PiA2MCAqIDYwICogMjQgKiA3LAopOwoKc3ViIF91cGRhdGVCYXNlX2luaXQgewogICMgV2hhdCB0byBkbz8gIFBlZyBpdCBvbiBub3cgcGx1cyBJbnRlcnZhbCwgcm91bmRlZCB1cCB0byBuZXh0IE0tbWludXRlIGludGVydmFsPwogIG15ICRzZWxmID0gJF9bMF07CiAgbXkgJG5vdyA9ICRzZWxmLT5fbm93X3JvdW5kZWRfdXA7CiAgCiAgbXkgJHBlcmlvZF90eXBlID0gJHNlbGYtPnVwZGF0ZVBlcmlvZDsKICBpZiggJHBlcmlvZF90eXBlIGVxICdtb250aGx5JyBvciAkcGVyaW9kX3R5cGUgZXEgJ3llYXJseScpIHsKICAgICRub3cgPSAkc2VsZi0+X2Vwb2NoMmlzb2RhdGUoICRub3cgKTsKICAgIGlmKCRwZXJpb2RfdHlwZSBlcSAneWVhcmx5JykgewogICAgICAkbm93ID1+ICAgICAgIHMvXi4uLi4tLzIwMDAtL3MgfHwgZGllICJTUE9SSzkzOTMxISI7ICMgc2FuaXR5CiAgICB9IGVsc2lmKCRwZXJpb2RfdHlwZSBlcSAnbW9udGhseScpIHsKICAgICAgJG5vdyA9fiBzL14uLi4uLS4uLS8yMDAwLTAxLS9zIHx8IGRpZSAiU1BPUkszNTI4NiEiOyAjIHNhbml0eQogICAgfSBlbHNlIHsKICAgICAgZGllICJTUE9SSyEhISEhOTQ4MjkwNDUiOyAjc2FuaXR5CiAgICB9CiAgICBERUJVRyA+IDFhbmQgcHJpbnQgIlVzaW5nICRub3cgYXMgdXBkYXRlQmFzZS5cbiI7CiAgfSBlbHNlIHsKICAgICMgSXQncyBhIHBsYWluIG9sJyBpbnRlcnZhbC4KICAgIERFQlVHID4gMSBhbmQgcHJpbnQgIlNsYXBwaW5nICRub3cgKCIsIGdtdGltZSgkbm93KS4gIiBpbnRvIDE5NzAuXG4iOwogICAgbXkgJGZyZXEgPSAkc2VsZi0+dXBkYXRlRnJlcXVlbmN5KCk7CiAgICBteSAkaW50ZXJ2YWxfYXNfc2Vjb25kcyA9IGludCgKICAgICAgKCRQZXJpb2RBc1NlY29uZHN7JHBlcmlvZF90eXBlfSB8fGRpZSAiU1BPUks4NDI1OCBvbiAnJHBlcmlvZF90eXBlJyEiKQogICAgICAvICRmcmVxKQogICAgOwogICAgREVCVUcgPiAxIGFuZCBwcmludAogICAgICJTbywgJGZyZXEgdGltZXMgJHBlcmlvZF90eXBlIGlzICRpbnRlcnZhbF9hc19zZWNvbmRzIHNlY29uZHMuLi5cbiI7CiAgICAkbm93ICU9ICRpbnRlcnZhbF9hc19zZWNvbmRzOwogICAgREVCVUcgPiAxIGFuZCBwcmludCAiVXNpbmcgJG5vdyAoIiwgZ210aW1lKCRub3cpLiAiIGFzIHVwZGF0ZUJhc2UuXG4iOwogIH0KICAkc2VsZi0+dXBkYXRlQmFzZSgkbm93KTsKICByZXR1cm47Cn0KCiMgLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLQoKPWl0ZW0gdGhlIGFjY2Vzc29yIEM8cnNzX3VwZGF0ZUZyZXF1ZW5jeSggSTxpbnRlZ2VyPiApOz4KClRoaXMgZnVuY3Rpb24gZGlyZWN0bHkgc2V0cyB0aGUgQzxzeTp1cGRhdGVGcmVxdWVuY3k+IGVsZW1lbnQncyB2YWx1ZSB0byB0aGUKdmFsdWUgc3BlY2lmaWVkLiAgVGhlIHZhbHVlIGhhcyB0byBiZSBhIG5vbnplcm8gcG9zaXRpdmUgaW50ZWdlci4KCkZvciBleGFtcGxlLCB0aGlzIG1lYW5zIHRoYXQgdGhpcyBmZWVkIHVwZGF0ZXMgYXQvYnkgdGhlIHN0YXJ0IG9mIGV2ZXJ5IGhvdXIKYW5kIDMwIG1pbnV0ZXMgcGFzdDoKCiAgcnNzX3VwZGF0ZUJhc2UoJzIwMDAtMDEtMDFUMDA6MDAtMDA6MDAnKTsKICByc3NfdXBkYXRlRnJlcXVlbmN5KDIpOwogIHJzc191cGRhdGVQZXJpb2QoJ2hvdXJseScpOyAgIyAyKmhvdXJseSBtZWFucyAidHdpY2UgYW4gaG91ciIKClJlY2FsbCB0aGF0IHRoaXMgY2FuIGFsc28gYmUgZG9uZSB3aXRoIHRoZQp0aGUgQzxyc3NfdXBkYXRlUGVyaW9kKCBJPHBlcj4sIEk8ZnJlcT4sIEk8YmFzZT4gKT4gc2hvcnRjdXQsIGxpa2Ugc286CgogIHJzc191cGRhdGVCYXNlKCdob3VybHknLCAyLCAnMjAwMC0wMS0wMVQwMDowMC0wMDowMCcpOwoKPWN1dAoKc3ViIHVwZGF0ZUZyZXF1ZW5jeSB7ICMgc2ltcGxlIGFjY2Vzc29yLCBwbHVzIHRoZSBpbnQoKSB0aGluZwogIGlmKEBfID4gMSkgewogICAgJF9bMF0tPnsndXBkYXRlRnJlcXVlbmN5J30gPSBpbnQoJF9bMV0pIHx8IDE7CiAgfSBlbHNlIHsKICAgICRfWzBdLT57J3VwZGF0ZUZyZXF1ZW5jeSd9CiAgfQp9CgpzdWIgX3VwZGF0ZUZyZXF1ZW5jeV9pbml0IHsgJF9bMF0tPnsndXBkYXRlRnJlcXVlbmN5J30gfHw9IDEgfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpzdWIgX3N5X3VwZGF0ZV9hc194bWwgewogIG15ICRzZWxmID0gJF9bMF07CiAgcmV0dXJuICcnIHVubGVzcyAkc2VsZi0+eyd1cGRhdGVQZXJpb2QnfTsKICAkc2VsZi0+X3VwZGF0ZUZyZXF1ZW5jeV9pbml0KCk7CiAgJHNlbGYtPl91cGRhdGVCYXNlX2luaXQoKTsKICByZXR1cm4gc3ByaW50ZigKCnF7PHN5OnVwZGF0ZUZyZXF1ZW5jeT4lczwvc3k6dXBkYXRlRnJlcXVlbmN5Pgo8c3k6dXBkYXRlUGVyaW9kPiVzPC9zeTp1cGRhdGVQZXJpb2Q+CjxzeTp1cGRhdGVCYXNlPiVzPC9zeTp1cGRhdGVCYXNlPgp9LAogICAgJHNlbGYtPnVwZGF0ZUZyZXF1ZW5jeSwKICAgICRzZWxmLT51cGRhdGVQZXJpb2QsCiAgICAkc2VsZi0+dXBkYXRlQmFzZSwKICApOwp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiMgQWxpYXNlczoKc3ViIHNraXBfaG91cnMgICAgICAge3NoaWZ0LT5za2lwSG91cnMoICAgICAgIEBfKX0Kc3ViIHNraXBfZGF5cyAgICAgICAge3NoaWZ0LT5za2lwRGF5cyggICAgICAgIEBfKX0Kc3ViIHVwZGF0ZV9kYXlzICAgICAge3NoaWZ0LT51cGRhdGVEYXlzKCAgICAgIEBfKX0Kc3ViIHVwZGF0ZV9ob3VycyAgICAge3NoaWZ0LT51cGRhdGVIb3VycyggICAgIEBfKX0Kc3ViIHVwZGF0ZV9wZXJpb2QgICAge3NoaWZ0LT51cGRhdGVQZXJpb2QoICAgIEBfKX0Kc3ViIHVwZGF0ZV9iYXNlICAgICAge3NoaWZ0LT51cGRhdGVCYXNlKCAgICAgIEBfKX0Kc3ViIHVwZGF0ZV9mcmVxdWVuY3kge3NoaWZ0LT51cGRhdGVGcmVxdWVuY3koIEBfKX0Kc3ViIHdlYm1hc3RlciAgICAgICAge3NoaWZ0LT53ZWJNYXN0ZXIoICAgICAgIEBfKX0KCgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCj1pdGVtIHRoZSBhY2Nlc3NvciBDPHJzc19yZXRlbnRpb24oSTxudW1iZXI+KT4KCklmIHlvdSBhcmUgdXNpbmcgYW4gQzxyc3NfaGlzdG9yeV9maWxlKEk8ZmlsZT4pPiwgdGhlIGhpc3RvcnkgZmlsZSB3aWxsCmFjY3JldGUgYSBsaXN0IG9mIGFsbCBVUkxzIGl0IGhhcyBzZWVuLiAgQnV0IHRvIGtlZXAgdGhpcyBmaWxlIGZyb20gcG90ZW50aWFsbHkKZ2V0dGluZyBpbW1lbnNlLCBpdGVtcyB0aGF0IGhhdmVuJ3QgYmVlbiBzZWVuIGZvciBhIHdoaWxlIGFyZSB0aHJvd24gb3V0LgpUaGUgcGVyaW9kIG9mIHRpbWUgYSBmZWVkJ3MgaXRlbXMgZ28gdW5zZWVuIGJlZm9yZSBlYWNoIGlzIGZvcmdvdHRlbiBpcwpjYWxsZWQgdGhhdCBmZWVkJ3MgQjxyZXRlbnRpb24+LCBhbmQgaXMgZXhwcmVzc2VkIGluIHNlY29uZHMuCgpUaGUgZGVmYXVsdCByZXRlbnRpb24gdmFsdWUgaXMgMzIgZGF5cyAoaS5lLiwgMzIqMjQqNjAqNjAsIHRoZSBudW1iZXIKb2Ygc2Vjb25kcyBpbiAzMiBkYXlzKS4gIElmIHlvdSB3YW50ZWQgdG8gY2hhbmdlIGl0IHRvIGp1c3QgYSB3ZWVrLAp5b3Ugd291bGQgZG8gdGhpcyB3aXRoIEM8cnNzX3JldGVudGlvbig3KjI0KjYwKjYwKT4uCgpBcyBhIHNwZWNpYWwgY2FzZSwgYSB6ZXJvIG9yIG5lZ2F0aXZlIHZhbHVlIGZvciB0aGUgcmV0ZW50aW9uIG1lYW5zCnRvIG5ldmVyIGNsZWFyIGFueXRoaW5nIGZyb20gdGhlIGhpc3RvcnkgZmlsZSwgbm8gbWF0dGVyIGhvdyBsb25nCml0IGhhcyBnb25lIHVuc2Vlbi4KCj1jdXQKCiMuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgoKPWl0ZW0gQzxyc3NfYWRkX2NvbW1lbnQoIEk8c3RyaW5ncz4gKTs+CgpDYWxsIHRoaXMgZnVuY3Rpb24gaWYgeW91IHdhbnQgdG8gYWRkIGV4dHJhIFhNTCBjb21tZW50cyB0byB0aGlzIFJTUyBmaWxlLgpGb3IgZXhhbXBsZSwgaWYgeW91IGNhbGwgdGhpczoKCiAgICAgICAgcnNzX2FkZF9jb21tZW50KAogICAgICAgICAgIk91ciB0ZXJtcyBvZiB1c2U6IGh0dHA6Ly93aGVyZXZlci5pbnQvcnNzdG91Lmh0bWwiLAogICAgICAgICAgIkFueSBxdWVzdGlvbnM/IEFzayBqaW1teUB3aGVyZXZlci5pbnQiLAogICAgICAgICk7CgouLi50aGVuIHRoaXMgUlNTIGZlZWQgd2lsbCBjb250YWluIHRoaXMgWE1MIGZhaXJseSBlYXJseSBvbiBpbiB0aGUgZmlsZToKCiAgICAgICAgPCEtLSBPdXIgdGVybXMgb2YgdXNlOiBodHRwOi8vd2hlcmV2ZXIuaW50L3Jzc3RvdS5odG1sIC0tPgogICAgICAgIDwhLS0gQW55IHF1ZXN0aW9ucz8gQXNrIGppbW15QHdoZXJldmVyLmludCAtLT4KCj1jdXQKCnN1YiBhZGRfY29tbWVudCB7CiAgbXkgJHNlbGYgPSBzaGlmdDsKICBmb3JlYWNoIG15ICRjIChAXykgewogICAgcHVzaCBAeyAkc2VsZi0+eydfY29tbWVudHMnfSB9LCAkYwogICAgIGlmIGRlZmluZWQgJGMgYW5kIGxlbmd0aCAkYyBhbmQgJGMgPX4gbS9cUy87CiAgICAgICMgbm8gcG9pbnQgaW4gaGF2aW5nIGNvbnRlbnRsZXNzIGNvbW1lbnRzCiAgfQogIHJldHVybjsKfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgo9aXRlbSB0aGUgYWNjZXNzb3IgQzxyc3NfY3NzKCBJPHVybD4gKT4KClRoaXMgZGVmaW5lcyB0aGUgZ2l2ZW4gVVJMIGFzIGJlaW5nIHRoZSBYTUwtQ1NTIHN0eWxlc2hlZXQgZm9yIHRoaXMgUlNTCmZlZWQuICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAiLi9yc3MuY3NzIiBpZiBDPC1lICJyc3MuY3NzIj4gaXMgdHJ1ZSwgb3RoZXJ3aXNlCmlzIHRoZSB2YWx1ZSBodHRwOi8vd3d3LmludGVyZ2xhY2lhbC5jb20vcnNzL3Jzcy5jc3MKCj1pdGVtIHRoZSBhY2Nlc3NvciBDPHJzc194c2woIEk8dXJsPiApPgoKVGhpcyBkZWZpbmVzIHRoZSBnaXZlbiBVUkwgYXMgYmVpbmcgdGhlIFhNTC1YU0wgc3R5bGVzaGVldCBmb3IgdGhpcyBSU1MKZmVlZC4gIFRoZSBkZWZhdWx0IHZhbHVlIGlzIG5vbmUuCgo9aXRlbSBUaGUgYWNjZXNzb3JzCkM8PApyc3NfdXJsKCBJPHN0cmluZz4gKSwgcnNzX3RpdGxlKCBJPHN0cmluZz4gKSwgcnNzX2Rlc2NyaXB0aW9uKCBJPHN0cmluZz4gKQo+PgoKVGhlc2UgZGVmaW5lIHRoaXMgZmVlZCdzIFVSTCwgdGl0bGUsIGFuZCBkZXNjcmlwdGlvbi4gIFRoZXNlIGZ1bmN0aW9ucwphcmUganVzdCBmb3IgY29tcGxldGVuZXNzLCBzaW5jZSBpdCdzIHNpbXBsZXIgdG8ganVzdCBzcGVjaWZ5IGFueS9hbGwgb2YKdGhlc2UgcGFyYW1ldGVycyBpbiB0aGUgY2FsbCB0byBDPHJzc19uZXc+LgoKPWl0ZW0gdGhlIGFjY2Vzc29yIEM8cnNzX3R0bCggSTxudW1iZXI+ICk+CgpUaGlzIHNldHMgdGhlIHBhcmFtZXRlciBvZiB0aGlzIFJTUyBmZWVkJ3MgQzx0dGw+IGVsZW1lbnQsIHdoaWNoCnN1Z2dlc3RzIGhvdyBsb25nIChpbiBtaW51dGVzLCBub3Qgc2Vjb25kcyEpIGFuIFJTUyByZWFkZXIgc2hvdWxkIHdhaXQgYWZ0ZXIgaXQgcG9sbHMKYSBmZWVkIHVudGlsIGl0IHBvbGxzIGl0IGFnYWluLiAgRm9yIGV4YW1wbGUsIEM8cnNzX3R0bCg5MCk+IHdvdWxkIHN1Z2dlc3QKdGhhdCBhIHJlYWRlciBzaG91bGQgbm90IHBvbGwgdGhpcyBmZWVkIG1vcmUgb2Z0ZW4gdGhhbiBldmVyeSA5MCBtaW51dGVzLgoKKFRoaXMgZWxlbWVudCBpcyBzb21ld2hhdCBvYnNvbGVzY2VudCBuZXh0IHRvIHRoZSBuZXdlciBhbmQgbW9yZQppbmZvcm1hdGl2ZSBDPHN5OnVwZGF0ZSo+IGVsZW1lbnRzLCBidXQgaXMgaW5jbHVkZWQgZm9yIGJhY2t3YXJkCmNvbXBhdGFiaWxpdHkuKQoKPWl0ZW0gdGhlIGFjY2Vzc29yIEM8cnNzX2FsbG93X2R1cGxpY2F0ZXMoIEk8Ym9vbGVhbj4gKT4KClRoaXMgY29udHJvbHMgd2hldGhlciBvciBub3QgZHVwbGljYXRlIGl0ZW1zIGFyZSBmaWx0ZXJlZCBvdXQgb3V0IHRoZQpmZWVkLiAgQnkgZGVmYXVsdCB0aGlzIGlzIEk8b24+LiAgTm90ZSB0aGF0IGR1cGxpY2F0ZXMgYXJlIGRldGVjdGVkIG9ubHkKYnkgdGhlaXIgVVJMLCBzbyBpZiB5b3UgY2FsbCB0aGlzOgoKICAgICAgICByc3NfaXRlbSgnaHR0cDovL2Zvby5pbnQvZG9uYXRlJywgIkdpdmUhIik7CiAgICAgICAgcnNzX2l0ZW0oJ2h0dHA6Ly9mb28uaW50L2RvbmF0ZScsICJXZSBuZWVkIG1vbmV5ISIpOwogICAgICAgIHJzc19zYXZlKCdiZWdnaW5nLnJzcycpOwoKLi4udGhlbiBvbmx5IHRoZSBmaXJzdCB3aWxsIGFwcGVhciBpbiB0aGUgZmVlZCwgc2luY2UgdGhlIHNlY29uZCBpdGVtCmhhcyBhIFVSTCB0aGF0IGlzIGFscmVhZHkgYmVpbmcgc2F2ZWQgaW4gdGhpcyBmZWVkLiAgKEhvd2V2ZXIsCkM8cnNzX2l0ZW1fY291bnQ+IGlzIHN0aWxsIDIsIGJlY2F1c2UgZmlsdGVyaW5nIG91dCBkdXBsaWNhdGVzIGlzCnNvbWV0aGluZyB0aGF0IG9ubHkgaGFwcGVucyBhcyB0aGUgZmVlZCBpcyBzYXZlZC4pCgo9aXRlbSB0aGUgYWNjZXNzb3IgQzxyc3NfZG9jcyggSTx1cmw+ICk+CgpUaGlzIHNldHMgdGhlIHZhbHVlIG9mIHRoZSBub3QtZ2VuZXJhbGx5LXVzZWZ1bCBDPGRvYz4gUlNTIGVsZW1lbnQuClRoZSBkZWZhdWx0IHZhbHVlIGlzICIuL2Fib3V0X3Jzcy5odG1sIiBpZiBDPC1lICJhYm91dF9yc3MuaHRtbCI+IGlzCnRydWUsIG90aGVyd2lzZSAiaHR0cDovL3d3dy5pbnRlcmdsYWNpYWwuY29tL3Jzcy9hYm91dC5odG1sIi4KCj1pdGVtIHRoZSBhY2Nlc3NvcnMKQzw8CnJzc19pbWFnZV91cmwoSTx1cmw+KSwgcnNzX2ltYWdlX3dpZHRoKEk8bnVtYmVyPiksCnJzc19pbWFnZV9oZWlnaHQoSTxudW1iZXI+KSwKcnNzX2ltYWdlX3RpdGxlKEk8dGV4dD4pLCByc3NfaW1hZ2VfbGluayhJPHVybD4pLApyc3NfaW1hZ2VfZGVzY3JpcHRpb24oSTx0ZXh0PikKPj4KClRoZXNlIGFyZSBmb3IgbWFudWFsbHkgc2V0dGluZyB0aGUgdmFsdWVzIG9mIHRoaXMgZmVlZCdzIGltYWdlIGVsZW1lbnQncwpzdWJlbGVtZW50czoKCiAgPGltYWdlPgogICAgICAgICAgICAgIDx1cmw+IChyc3NfaW1hZ2VfdXJsKSAgICAgICAgIDwvdXJsPgogICAgICAgICAgICA8d2lkdGg+IChyc3NfaW1hZ2Vfd2lkdGgpICAgICAgIDwvd2lkdGg+CiAgICAgICAgICAgPGhlaWdodD4gKHJzc19pbWFnZV9oZWlnaHQpICAgICAgPC9oZWlnaHQ+CiAgICAgICAgICAgIDx0aXRsZT4gKHJzc19pbWFnZV90aXRsZSkgICAgICAgPC90aXRsZT4KICAgICAgICAgICAgIDxsaW5rPiAocnNzX2ltYWdlX2xpbmspICAgICAgICA8L2xpbms+CiAgICAgIDxkZXNjcmlwdGlvbj4gKHJzc19pbWFnZV9kZXNjcmlwdGlvbikgPC9kZXNjcmlwdGlvbj4KICA8L2ltYWdlPgoKWW91IHJhcmVseSBuZWVkIHRvIGNhbGwgYW55IG9mIHRoZXNlIEM8cnNzX2ltYWdlX0k8d2hhdGV2ZXI+PiBmdW5jdGlvbnMgLS0KdXN1YWxseSBqdXN0IGNhbGxpbmcgQzxyc3NfaW1hZ2UoIEk8dXJsLCBoLCB3PiApOz4gaXMgZW5vdWdoLgoKPWN1dAoKIy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCgpteSBARG9XICAgPSBxdyhTdW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQpOwpteSBATW9udGggPSBxdyhKYW4gRmViIE1hciBBcHIgTWF5IEp1biBKdWwgQXVnIFNlcCBPY3QgTm92IERlYyk7CgpzdWIgX2RhdGVfcmZjODIyIHsKICBteSAkc2VsZiA9IHNoaWZ0OwogIG15IEB0aW1lbGlzdCA9IChAXyA9PSAwKSA/IGdtdGltZSA6IChAXyA9PSAxKSA/IGdtdGltZSgkX1swXSkgOiBAXzsKICAkdGltZWxpc3RbNV0gKz0gMTkwMDsKCiAgcmV0dXJuIHNwcmludGYoCiAgICAgIiVzLCAlMDJkICVzICUwNGQgJTAyZDolMDJkOiUwMmQgR01UIiwKICAgICAgJERvV1skdGltZWxpc3RbNl1dLAogICAgICAgICAgJHRpbWVsaXN0WzNdLAogICAgICAgICAgICAgICAkTW9udGhbJHRpbWVsaXN0WzRdXSwKICAgICAgICAgICAgICAgICAgICAgICBAdGltZWxpc3RbNSwgMiwxLDBdLAogICk7Cn0KCnN1YiBfY2hlY2tfYWdlIHsKICBteSgkc2VsZiwgJGZpbGVuYW1lLCAkbWF4YWdlKSA9IEBfOwogIG15ICRhZ2U7CiAgaWYoJGZpbGVuYW1lIGFuZCAkbWF4YWdlIGFuZCAkbWF4YWdlIDwgKCRhZ2UgPSAtTSAkZmlsZW5hbWUpKSB7CiAgICBDYXJwOjpjYXJwKAogICAgICBzcHJpbnRmICIlcyB3YXJuaW5nIC0gJXMgaXMgZ2V0dGluZyBvbGQgLS0gaXQgaGFzbid0IGNoYW5nZWQgaW4gJTAuMWYgZGF5cyEiLAogICAgICAgIHJlZigkc2VsZikgfHwgJHNlbGYsCiAgICAgICAgJGZpbGVuYW1lLAogICAgICAgICRhZ2UsCiAgICApOwogIH0KICByZXR1cm4gMDsKfQoKIy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCnN1YiBfdmFyaW91c19jb21tZW50cyB7CiAgbXkgJHNlbGYgPSAkX1swXTsKICBteSAkeDsKICByZXR1cm4KICAgIGpvaW4gJycsCiAgICBtYXAgezsgJHggPSAkXzsgJHggPX4gcy8tLS9fXy9nOyAiPCEtLSAkeCAtLT5cbiI7IH0KICAgIEB7ICRzZWxmLT57J19jb21tZW50cyd9IHx8IFtdIH0KICA7Cn0KCiMuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgoKc3ViIF9tb2R2ZXJzaW9uX2NvbW1lbnQgewogIG15ICRzZWxmID0gJF9bMF07CiAgbXkgJHNlbGZjbGFzcyA9IHJlZigkc2VsZik7CiAgbXkgJHYgPSBldmFsIHsgJHNlbGZjbGFzcy0+VkVSU0lPTiB9IHx8ICRWRVJTSU9OOwogIHJldHVybiAiXG48IS0tIEdlbmVyYXRlZCB3aXRoIFBlcmwncyAkc2VsZmNsYXNzIHYkdiAtLT5cbiI7Cn0KCiMuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgoKc3ViIF9hY2Nlc3Nvcml6ZSB7ICAjIEEgc2ltcGxlLW1pbmRlZCBtZXRob2QtbWFrZXIKICBubyBzdHJpY3QgJ3JlZnMnOwogIGZvcmVhY2ggbXkgJGF0dHJuYW1lIChAXykgewogICAgbmV4dCBpZiAkYXR0cm5hbWUgPX4gbS86Oi87ICMgYSBoYWNrCiAgICAqe2NhbGxlcigpIC4gJzo6JyAuICRhdHRybmFtZX0gPSBzdWIgewogICAgICB1c2Ugc3RyaWN0OwogICAgICB1bmxlc3MoKEBfID09IDEgb3IgQF8gPT0gMikgYW5kIHJlZiAkX1swXSApIHsKICAgICAgICAkQ2FycDo6Q2FycExldmVsID0gMTsKICAgICAgICBDYXJwOjpjcm9haygKICAgICAgICAgIkFjY2Vzc29yIHVzYWdlOiBcJG9iai0+JGF0dHJuYW1lKCkgb3IgXCRvYmotPiRhdHRybmFtZShcJG5ld192YWx1ZSkiCiAgICAgICAgKTsKICAgICAgfQogICAgICAoQF8gPT0gMSkgPyAgJF9bMF0tPnskYXR0cm5hbWV9CiAgICAgICAgICAgICAgICA6ICgkX1swXS0+eyRhdHRybmFtZX0gPSAkX1sxXSk7CiAgICB9OwogIH0KICAjIFlhIGtub3csIHRoZXkgc2F5IGFjY2Vzc29yaWVzIG1ha2UgdGhlIGVuc2VtYmxlIQogIHJldHVybjsKfQoKIy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCgpzdWIgeG1sZXNjIHsKICBteSAkc2VsZiA9IHNoaWZ0OwogIG15ICRvdXQgPSBqb2luICcnLCBAXzsKICAkb3V0ID1+IHM8KFteXHgyMFx4MjFceDIzXHgyNFx4MjVceDI3LVx4M2JceDNkXHgzZi1ceDdlXSk+CiAgICAgICAgICAgPCRDb21tb25FbnRzeyQxfSB8fCAoJyYjJy4ob3JkKCQxKSkuJzsnKSA+c2VnOwogIHJldHVybiAkb3V0Owp9CgpzdWIgeG1sZWxlbSB7CiAgbXkgJHNlbGYgPSBzaGlmdDsKICBteSAkZ2kgICA9IHNoaWZ0OwogIHJldHVybiAiPCRnaT4iIC4gJHNlbGYtPnhtbGVzYyhAXykgLiAiPC8kZ2k+IjsKfQoKIy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCgpzdWIgaHRtbDJ0ZXh0IHsKCiAgIyBBIHJ1ZGltZW50YXJ5IEhUTUwgdG9rZW5pemVyLCBhZGFwdGVkIGFuZCBzaW1wbGlmaWVkCiAgIyBmcm9tIEdpc2xlIEFhcydzIEhUTUw6OlBhcnNlciB2Mi4yNS4uLgoKICBsb2NhbCAkXzsKICBteSgkc2VsZiwgQG91dCk7CiAgKCRzZWxmLCAkXykgPSBAXzsKCiAgcmV0dXJuIHVuZGVmIHVubGVzcyBkZWZpbmVkICRfOwogIHJldHVybiAkJF8gICBpZiByZWYoJF8pIGVxICdTQ0FMQVInOyAgIyBQYXNzIGEgc2NhbGFyIHJlZiB0byBieXBhc3MhCiAgcmV0dXJuICcnICAgIHVubGVzcyBsZW5ndGggICRfOwoKICBpZiggbS9eW1x4MDAtXHg3ZV0rJC9zIGFuZCAhIG0vWzw+Jl0vcykgewogICAgIyBNb3N0IGNvbW1vbiBjYXNlOiBhIHNpbXBsZSBzdHJpbmcgbmVlZGluZyBubyBIVE1MIHBhcnNpbmcuCiAgICAjIFNvIGp1c3QgY29tcGFjdCBhbmQgdHJpbSB3aGl0ZXNwYWNlLCBhbmQgbW92ZSBvbi4KICAgIHRyL1xuXHJcZlx0IC8gL3M7CiAgICBzLyAkLy9zOwogICAgcy9eIC8vczsKICAgIHJldHVybiAkXzsKICB9CiAgCiAgd2hpbGUoIGxlbmd0aCgkXykgKSB7CiAgICBpZiAoIHNAXihbXiY8XSspQEBzKSB7ICAjIEFueSBwbGFpbnRleHQKICAgICAgREVCVUcgPiA1IGFuZCBwcmludCAiOjogUGxhaW50ZXh0IHskMX1cbiI7CiAgICAgIHB1c2ggQG91dCwgJDE7CiAgICB9IGVsc2lmICggc0BeCiAgICAgICgKICAgICAgICAmXCMKICAgICAgICAoPzoKICAgICAgICAgICg/OiAjIGRlYwogICAgICAgICAgICAoWzAtOV17MSw3fSkKICAgICAgICAgICl8KD86ICMgb3IgaGV4CiAgICAgICAgICAgW3hYXShbMC05YS1mQS1GXXsxLDd9KQogICAgICAgICAgKQogICAgICAgICkKICAgICAgKQogICAgICBcYgogICAgICA7PwogICAgICBAQHN4CiAgICApIHsKICAgICAgREVCVUcgPiA1IGFuZCBwcmludCAiOjogTnVtZXJpYyBlbnQgeyQxfSIsCiAgICAgICAgIGRlZmluZWQoJDIpID8gIiAoZGVjICQyKSIgCiAgICAgICA6IGRlZmluZWQoJDMpID8gIiAoaGV4ICQzKSIgCiAgICAgICA6ICIgKHdlaXJkISkiLAogICAgICAgIlxuIjsKCiAgICAgIGlmKCAgICAgIGRlZmluZWQgJDMgYW5kIGV4aXN0cyAkV2luTGFtZUVudGl0aWVze2hleCgkMyl9ICkgewogICAgICAgICMgaXQncyBhIHdpbmxhbWUgZW50LCBpbiBoZXgKICAgICAgICBERUJVRyA+IDYgYW5kIHByaW50ICIgQ29ycmVjdGluZyB0aGF0IHRvICYjJFdpbkxhbWVFbnRpdGllc3toZXgoJDMpfTtcbiI7CiAgICAgICAgcHVzaCBAb3V0LCBcIiYjJFdpbkxhbWVFbnRpdGllc3toZXgoJDMpfTsiIDsKICAgICAgfSBlbHNpZiggZGVmaW5lZCAkMiBhbmQgZXhpc3RzICRXaW5MYW1lRW50aXRpZXN7MCArICQyfSApIHsKICAgICAgICAjIGl0J3MgYSB3aW5sYW1lIGVudCwgaW4gZGVjaW1hbAogICAgICAgIERFQlVHID4gNiBhbmQgcHJpbnQgIiBDb3JyZWN0aW5nIHRoYXQgdG8gJiMkV2luTGFtZUVudGl0aWVzezAgKyAkMn07XG4iOwogICAgICAgIHB1c2ggQG91dCwgXCImIyRXaW5MYW1lRW50aXRpZXN7MCArICQyfTsiICA7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgIyBpdCdzIGEgbm9ybWFsIGVudGl0eQogICAgICAgIERFQlVHID4gNiBhbmQgcHJpbnQgIiBQYXNzaW5nIGl0IHRocnUgYXMgXCIkMTtcIlxuIjsKICAgICAgICBwdXNoIEBvdXQsIFwiJDE7IjsKICAgICAgfQogICAgICAKCiAgICB9IGVsc2lmICggc0BeJihbQS1aYS16XVtBLVphLXowLTldezAsMTB9KVxiKDs/KUBAcykgewoKICAgICAgREVCVUcgPiA1IGFuZCBwcmludCAiOjogTmFtZWQgZW50aXR5IHskMX1cbiI7CiAgICAgIGlmKGV4aXN0cyAkRW50aXRpZXN7JDF9KSB7CiAgICAgICAgcHVzaCBAb3V0LCBcICRFbnRpdGllc3skMX07CiAgICAgIH0gZWxzaWYoZXhpc3RzICRFbnRpdGllc3sgdWNmaXJzdChsYygkMSkpIH0pIHsKICAgICAgICBERUJVRyA+IDYgYW5kIHByaW50ICI6OjogVHJlYXRpbmcgYXMgaWYgaXQgd2VyZSAmIiwKICAgICAgICAgIHVjZmlyc3QobGMoJDEpKSwgIjtcbiI7CiAgICAgICAgcHVzaCBAb3V0LCBcICRFbnRpdGllc3sgdWNmaXJzdChsYygkMSkpIH07CiAgICAgIH0gZWxzZSB7CiAgICAgICAgREVCVUcgPiA2IGFuZCBwcmludCAiOjo6IFVucmVzb2x2YWJsZSEgIFRyZWF0aW5nIGFzIHBsYWludGV4dFxuIjsKICAgICAgICBwdXNoIEBvdXQsICImJDEiIC4gKCQyIHx8ICcnKTsKICAgICAgfQoKCiAgICAjIFRoaW5ncyB3ZSBqdXN0IGlnbm9yZToKICAgIH0gZWxzaWYoIHNAXig8IVxzKi0tLio/LS1ccyo+KUBAcyApIHsgICMgIk5ldHNjYXBlIiBjb21tZW50cwogICAgICBERUJVRyA+IDUgYW5kIHByaW50ICI6OiBTaW1wbGUgY29tbWVudCB7JDF9XG4iOwogICAgfSBlbHNpZiggc0BeKDxbIT9dW14+XSo+KUBAcyApIHsgIyBkb2N0eXBlLCBQSSwgb3IgYSB3ZWlyZCBjb21tZW50CiAgICAgIERFQlVHID4gNSBhbmQgcHJpbnQgIjo6IERpcmVjdGl2ZS9QSSB7JDF9XG4iOwogICAgfSBlbHNpZiggc0BePC8/KFthLXpBLVpdW2EtekEtWjAtOVwuXDpcX1wtXXswLDcyfSlccyovPz5AQCApIHsKICAgICAgIyBFbmQtdGFnLCBvciBhIHNpbXBsZSBzdGFydC10YWcKICAgICAgcHVzaCBAb3V0LCAnICcgaWYgJElzQmxvY2tNYXJrdXB7bGMgJDF9OwogICAgICBERUJVRyA+IDUgYW5kIHByaW50ICI6OiBTaW1wbGUgdGFnIHskMX0iLAogICAgICAgICRJc0Jsb2NrTWFya3Vwe2xjICQxfSA/ICIgK2JyZWFreSI6ICgpLCAiXG4iOwoKICAgIH0gZWxzaWYgKCAgICAjIGNvbXBsZXggc3RhcnQtdGFnCiAgICAgIHNACiAgICAgICBeCiAgICAgICAoCiAgICAgICAgPAogICAgICAgIChbYS16QS1aXVthLXpBLVowLTlcLlw6XF9cLV17MCw3Mn0pICAjIHRoZSBHLkkuCiAgICAgICAgKD86CiAgICAgICAgICBccysKICAgICAgICAgIFthLXpBLVpdW2EtekEtWjAtOVwuXDpcX1wtXXswLDcyfQogICAgICAgICAgKD86ICAjIEF0dHJpYnV0ZXMgY2FuIGJlIHZhbHVlbGVzcyEKICAgICAgICAgICAgXHMqCiAgICAgICAgICAgID0KICAgICAgICAgICAgXHMqCiAgICAgICAgICAgICg/OiAgICAgICAgICAgICAjIEF0dHJpYnV0ZSB2YWx1ZS4uLgogICAgICAgICAgICAgICg/OgogICAgICAgICAgICAgICAgIlteIl0qIiAgICAgICAjICJmb28gYmFyIgogICAgICAgICAgICAgICl8KD86CiAgICAgICAgICAgICAgICAnW14nXSonICAgICAgICMgJ2ZvbyBiYXInCiAgICAgICAgICAgICAgKXwoPzoKICAgICAgICAgICAgICAgIFtePD5cblxyXHQgXXswLDkwfSAjIGZvb2JhcmJhegogICAgICAgICAgICAgICAgICAjIDkwIGlzIG15IHNhbmUgbGVuZ3RoLWxpbWl0IG9uIHVucXVvdGVkIGF0dHJ2YWx1ZXMKICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICk/CiAgICAgICAgKSogICAjIGFueSBudWJtZXIgb2YgYXR0cmlicwogICAgICAgIFxzKiAgIyBvcHRpb25hbCBlbmRpbmcgd2hpdGVzcGFjZQogICAgICAgIC8/ICAgIyBvcHRpb25hbCBlbXB0aW5lc3MgZmxhZwogICAgICAgID4KICAgICAgICkKICAgICAgIEBAeAogICAgKSB7CiAgICAgIHB1c2ggQG91dCwgJyAnIGlmICRJc0Jsb2NrTWFya3Vwe2xjICQyfTsKICAgICAgREVCVUcgPiA1IGFuZCBwcmludCAiOjogQ29tcGxleCBzdGFydC10YWcgeyQyfSIsCiAgICAgICAgICAkSXNCbG9ja01hcmt1cHtsYyAkMn0gPyAiICticmVha3kiOiAoKSwgIlxuIjsKICAgICAgCiAgICAjIEdldHMgY2FsbGVkIG9ubHkgb24gYWJlcnJhbnQgaW5wdXQsIEkgdGhpbms6CiAgICB9IGVsc2lmKCBzQF4oLilAQHMgKSB7CiAgICAgIERFQlVHID4gNSBhbmQgcHJpbnQgIjo6IExhc3QtcmVzb3J0IHNpbmdsZSBjaGFyYWN0ZXIgeyQxfVxuIjsKICAgICAgcHVzaCBAb3V0LCAkMTsKICAgIAogICAgfSBlbHNlIHsKICAgICAgZGllICJJTVBPU1NJQkxFIHskX31cbiAhISEgIjsgIyBzYW5pdHktY2hlY2sKICAgIH0KICB9CiAgCiAgZm9yZWFjaCBteSAkeCAoQG91dCkgewogICAgaWYoIHJlZiAkeCApIHsKICAgICAgJHggPSAkJHg7CiAgICB9IGVsc2UgeyAgIyBkbyBuZWNlc3NhcnkgZXNjYXBpbmcKICAgICAgJHggPX4gdHIvXG5cclxmXHQgLyAvczsgIyBzbWFzaCB3aGl0ZXNwYWNlCiAgICAgICR4ID0gJHNlbGYtPnhtbGVzYygkeCkgdW5sZXNzICR4ID1+IG0vXlthLXpBLVowLTlfJyIsXC4gXSokL3MKICAgICAgICMgRG9kZ2UgY2FsbGluZyBvbiB0aGUgbW9zdCBjb21tb24gY2FzZSwgaS5lLiwgdGV4dAogICAgICAgIyAgdGhhdCByZWFsbHkgZG9lc24ndCBuZWVkIGFueSBleGN1c2UgYXQgYWxsLgogICAgfQogIH0KCiAgcmV0dXJuIGpvaW4gJycsIEBvdXQ7Cn0KCiMuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgoKJE1JTUVfVHlwZSA9ICdhcHBsaWNhdGlvbi9yc3MreG1sJzsKCiVXaW5MYW1lRW50aXRpZXMgPSAoCiBkbyB7OwogICBteSAkYyA9IDB4ODA7CiAgIG1hcCB7OyAkYysrID0+IChoZXgoJF8pIHx8IDB4MDA3ZSkgfQogICBxdygKMjBhYyAwMDAwIDIwMWEgMDE5MiAyMDFlIDIwMjYgMjAyMCAyMDIxIDAyYzYgMjAzMCAwMTYwIDIwMzkgMDE1MiAwMCAwMTdkIDAwMDAKMDAwMCAyMDE4IDIwMTkgMjAxYyAyMDFkIDIwMjIgMjAxMyAyMDE0IDAyZGMgMjEyMiAwMTYxIDIwM2EgMDE1MyAwMCAwMTdlIDAxNzgKKSMgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICAgICB8Cn0pOwoKX2luaXRfY29tbW9uX2VudHMoKTsKCnN1YiBfaW5pdF9jb21tb25fZW50cyB7CiAgJUNvbW1vbkVudHMgPSAoCiAgICAnJicgPT4gJyZhbXA7JywKICAgICc8JyA9PiAnJmx0OycsCiAgICAnPicgPT4gJyZndDsnLAogICAgJyInID0+ICcmcXVvdDsnLAogICAgKCBtYXAgezsgY2hyKCRfKSA9PiAiICIgfSAwIC4uIDMxICksCiAgICAoIG1hcCB7OyBjaHIoJF8pID0+ICImIyRXaW5MYW1lRW50aXRpZXN7JF99OyIgfSBrZXlzICVXaW5MYW1lRW50aXRpZXMgKSwKICApOwogIHJldHVybjsKfQoKJUVudGl0aWVzID0gKAogIyBIVE1MIGVudGl0aWVzIGdvdHRlbiBmcm9tIHRoZSBIVE1MIERURHMKIAogJ0FhY3V0ZScgPT4gJyYjeGMxOycsICAgICdhYWN1dGUnID0+ICcmI3hlMTsnLCAgICdBY2lyYycgPT4gJyYjeGMyOycsCiAnYWNpcmMnID0+ICcmI3hlMjsnLCAgICAgJ2FjdXRlJyA9PiAnJiN4YjQ7JywgICAgJ0FFbGlnJyA9PiAnJiN4YzY7JywKICdhZWxpZycgPT4gJyYjeGU2OycsICAgICAnQWdyYXZlJyA9PiAnJiN4YzA7JywgICAnYWdyYXZlJyA9PiAnJiN4ZTA7JywKICdhbGVmc3ltJyA9PiAnJiN4MjEzNTsnLCAnQWxwaGEnID0+ICcmI3gzOTE7JywgICAnYWxwaGEnID0+ICcmI3gzYjE7JywKICdhbXAnID0+ICcmI3gyNjsnLCAgICAgICAnYW5kJyA9PiAnJiN4MjIyNzsnLCAgICAnYW5nJyA9PiAnJiN4MjIyMDsnLAogJ2Fwb3MnID0+ICcmI3gyNzsnLCAgICAgICdBcmluZycgPT4gJyYjeGM1OycsICAgICdhcmluZycgPT4gJyYjeGU1OycsCiAnYXN5bXAnID0+ICcmI3gyMjQ4OycsICAgJ0F0aWxkZScgPT4gJyYjeGMzOycsICAgJ2F0aWxkZScgPT4gJyYjeGUzOycsCiAnQXVtbCcgPT4gJyYjeGM0OycsICAgICAgJ2F1bWwnID0+ICcmI3hlNDsnLCAgICAgJ2JkcXVvJyA9PiAnJiN4MjAxZTsnLAogJ0JldGEnID0+ICcmI3gzOTI7JywgICAgICdiZXRhJyA9PiAnJiN4M2IyOycsICAgICdicnZiYXInID0+ICcmI3hhNjsnLAogJ2J1bGwnID0+ICcmI3gyMDIyOycsICAgICdjYXAnID0+ICcmI3gyMjI5OycsICAgICdDY2VkaWwnID0+ICcmI3hjNzsnLAogJ2NjZWRpbCcgPT4gJyYjeGU3OycsICAgICdjZWRpbCcgPT4gJyYjeGI4OycsICAgICdjZW50JyA9PiAnJiN4YTI7JywKICdDaGknID0+ICcmI3gzYTc7JywgICAgICAnY2hpJyA9PiAnJiN4M2M3OycsICAgICAnY2lyYycgPT4gJyYjeDJjNjsnLAogJ2NsdWJzJyA9PiAnJiN4MjY2MzsnLCAgICdjb25nJyA9PiAnJiN4MjI0NTsnLCAgICdjb3B5JyA9PiAnJiN4YTk7JywKICdjcmFycicgPT4gJyYjeDIxYjU7JywgICAnY3VwJyA9PiAnJiN4MjIyYTsnLCAgICAnY3VycmVuJyA9PiAnJiN4YTQ7JywKICdkYWdnZXInID0+ICcmI3gyMDIwOycsICAnRGFnZ2VyJyA9PiAnJiN4MjAyMTsnLCAnZGFycicgPT4gJyYjeDIxOTM7JywKICdkQXJyJyA9PiAnJiN4MjFkMzsnLCAgICAnZGVnJyA9PiAnJiN4YjA7JywgICAgICAnRGVsdGEnID0+ICcmI3gzOTQ7JywKICdkZWx0YScgPT4gJyYjeDNiNDsnLCAgICAnZGlhbXMnID0+ICcmI3gyNjY2OycsICAnZGl2aWRlJyA9PiAnJiN4Zjc7JywKICdFYWN1dGUnID0+ICcmI3hjOTsnLCAgICAnZWFjdXRlJyA9PiAnJiN4ZTk7JywgICAnRWNpcmMnID0+ICcmI3hjYTsnLAogJ2VjaXJjJyA9PiAnJiN4ZWE7JywgICAgICdFZ3JhdmUnID0+ICcmI3hjODsnLCAgICdlZ3JhdmUnID0+ICcmI3hlODsnLAogJ2VtcHR5JyA9PiAnJiN4MjIwNTsnLCAgICdlbXNwJyA9PiAnJiN4MjAwMzsnLCAgICdlbnNwJyA9PiAnJiN4MjAwMjsnLAogJ0Vwc2lsb24nID0+ICcmI3gzOTU7JywgICdlcHNpbG9uJyA9PiAnJiN4M2I1OycsICdlcXVpdicgPT4gJyYjeDIyNjE7JywKICdFdGEnID0+ICcmI3gzOTc7JywgICAgICAnZXRhJyA9PiAnJiN4M2I3OycsICAgICAnRVRIJyA9PiAnJiN4ZDA7JywKICdldGgnID0+ICcmI3hmMDsnLCAgICAgICAnRXVtbCcgPT4gJyYjeGNiOycsICAgICAnZXVtbCcgPT4gJyYjeGViOycsCiAnZXVybycgPT4gJyYjeDIwYWM7JywgICAgJ2V4aXN0JyA9PiAnJiN4MjIwMzsnLCAgJ2Zub2YnID0+ICcmI3gxOTI7JywKICdmb3JhbGwnID0+ICcmI3gyMjAwOycsICAnZnJhYzEyJyA9PiAnJiN4YmQ7JywgICAnZnJhYzE0JyA9PiAnJiN4YmM7JywKICdmcmFjMzQnID0+ICcmI3hiZTsnLCAgICAnZnJhc2wnID0+ICcmI3gyMDQ0OycsICAnR2FtbWEnID0+ICcmI3gzOTM7JywKICdnYW1tYScgPT4gJyYjeDNiMzsnLCAgICAnZ2UnID0+ICcmI3gyMjY1OycsICAgICAnZ3QnID0+ICcmI3gzZTsnLAogJ2hhcnInID0+ICcmI3gyMTk0OycsICAgICdoQXJyJyA9PiAnJiN4MjFkNDsnLCAgICdoZWFydHMnID0+ICcmI3gyNjY1OycsCiAnaGVsbGlwJyA9PiAnJiN4MjAyNjsnLCAgJ0lhY3V0ZScgPT4gJyYjeGNkOycsICAgJ2lhY3V0ZScgPT4gJyYjeGVkOycsCiAnSWNpcmMnID0+ICcmI3hjZTsnLCAgICAgJ2ljaXJjJyA9PiAnJiN4ZWU7JywgICAgJ2lleGNsJyA9PiAnJiN4YTE7JywKICdJZ3JhdmUnID0+ICcmI3hjYzsnLCAgICAnaWdyYXZlJyA9PiAnJiN4ZWM7JywgICAnaW1hZ2UnID0+ICcmI3gyMTExOycsCiAnaW5maW4nID0+ICcmI3gyMjFlOycsICAgJ2ludCcgPT4gJyYjeDIyMmI7JywgICAgJ0lvdGEnID0+ICcmI3gzOTk7JywKICdpb3RhJyA9PiAnJiN4M2I5OycsICAgICAnaXF1ZXN0JyA9PiAnJiN4YmY7JywgICAnaXNpbicgPT4gJyYjeDIyMDg7JywKICdJdW1sJyA9PiAnJiN4Y2Y7JywgICAgICAnaXVtbCcgPT4gJyYjeGVmOycsICAgICAnS2FwcGEnID0+ICcmI3gzOWE7JywKICdrYXBwYScgPT4gJyYjeDNiYTsnLCAgICAnTGFtYmRhJyA9PiAnJiN4MzliOycsICAnbGFtYmRhJyA9PiAnJiN4M2JiOycsCiAnbGFuZycgPT4gJyYjeDIzMjk7JywgICAgJ2xhcXVvJyA9PiAnJiN4YWI7JywgICAgJ2xhcnInID0+ICcmI3gyMTkwOycsCiAnbEFycicgPT4gJyYjeDIxZDA7JywgICAgJ2xjZWlsJyA9PiAnJiN4MjMwODsnLCAgJ2xkcXVvJyA9PiAnJiN4MjAxYzsnLAogJ2xlJyA9PiAnJiN4MjI2NDsnLCAgICAgICdsZmxvb3InID0+ICcmI3gyMzBhOycsICdsb3dhc3QnID0+ICcmI3gyMjE3OycsCiAnbG96JyA9PiAnJiN4MjVjYTsnLCAgICAgJ2xybScgPT4gJyYjeDIwMGU7JywgICAgJ2xzYXF1bycgPT4gJyYjeDIwMzk7JywKICdsc3F1bycgPT4gJyYjeDIwMTg7JywgICAnbHQnID0+ICcmI3gzYzsnLCAgICAgICAnbWFjcicgPT4gJyYjeGFmOycsCiAnbWRhc2gnID0+ICcmI3gyMDE0OycsICAgJ21pY3JvJyA9PiAnJiN4YjU7JywgICAgJ21pZGRvdCcgPT4gJyYjeGI3OycsCiAnbWludXMnID0+ICcmI3gyMjEyOycsICAgJ011JyA9PiAnJiN4MzljOycsICAgICAgJ211JyA9PiAnJiN4M2JjOycsCiAnbmFibGEnID0+ICcmI3gyMjA3OycsICAgJ25ic3AnID0+ICcmI3hhMDsnLCAgICAgJ25kYXNoJyA9PiAnJiN4MjAxMzsnLAogJ25lJyA9PiAnJiN4MjI2MDsnLCAgICAgICduaScgPT4gJyYjeDIyMGI7JywgICAgICdub3QnID0+ICcmI3hhYzsnLAogJ25vdGluJyA9PiAnJiN4MjIwOTsnLCAgICduc3ViJyA9PiAnJiN4MjI4NDsnLCAgICdOdGlsZGUnID0+ICcmI3hkMTsnLAogJ250aWxkZScgPT4gJyYjeGYxOycsICAgICdOdScgPT4gJyYjeDM5ZDsnLCAgICAgICdudScgPT4gJyYjeDNiZDsnLAogJ09hY3V0ZScgPT4gJyYjeGQzOycsICAgICdvYWN1dGUnID0+ICcmI3hmMzsnLCAgICdPY2lyYycgPT4gJyYjeGQ0OycsCiAnb2NpcmMnID0+ICcmI3hmNDsnLCAgICAgJ09FbGlnJyA9PiAnJiN4MTUyOycsICAgJ29lbGlnJyA9PiAnJiN4MTUzOycsCiAnT2dyYXZlJyA9PiAnJiN4ZDI7JywgICAgJ29ncmF2ZScgPT4gJyYjeGYyOycsICAgJ29saW5lJyA9PiAnJiN4MjAzZTsnLAogJ09tZWdhJyA9PiAnJiN4M2E5OycsICAgICdvbWVnYScgPT4gJyYjeDNjOTsnLCAgICdPbWljcm9uJyA9PiAnJiN4MzlmOycsCiAnb21pY3JvbicgPT4gJyYjeDNiZjsnLCAgJ29wbHVzJyA9PiAnJiN4MjI5NTsnLCAgJ29yJyA9PiAnJiN4MjIyODsnLAogJ29yZGYnID0+ICcmI3hhYTsnLCAgICAgICdvcmRtJyA9PiAnJiN4YmE7JywgICAgICdPc2xhc2gnID0+ICcmI3hkODsnLAogJ29zbGFzaCcgPT4gJyYjeGY4OycsICAgICdPdGlsZGUnID0+ICcmI3hkNTsnLCAgICdvdGlsZGUnID0+ICcmI3hmNTsnLAogJ290aW1lcycgPT4gJyYjeDIyOTc7JywgICdPdW1sJyA9PiAnJiN4ZDY7JywgICAgICdvdW1sJyA9PiAnJiN4ZjY7JywKICdwYXJhJyA9PiAnJiN4YjY7JywgICAgICAncGFydCcgPT4gJyYjeDIyMDI7JywgICAncGVybWlsJyA9PiAnJiN4MjAzMDsnLAogJ3BlcnAnID0+ICcmI3gyMmE1OycsICAgICdQaGknID0+ICcmI3gzYTY7JywgICAgICdwaGknID0+ICcmI3gzYzY7JywKICdQaScgPT4gJyYjeDNhMDsnLCAgICAgICAncGknID0+ICcmI3gzYzA7JywgICAgICAncGl2JyA9PiAnJiN4M2Q2OycsCiAncGx1c21uJyA9PiAnJiN4YjE7JywgICAgJ3BvdW5kJyA9PiAnJiN4YTM7JywgICAgJ3ByaW1lJyA9PiAnJiN4MjAzMjsnLAogJ1ByaW1lJyA9PiAnJiN4MjAzMzsnLCAgICdwcm9kJyA9PiAnJiN4MjIwZjsnLCAgICdwcm9wJyA9PiAnJiN4MjIxZDsnLAogJ1BzaScgPT4gJyYjeDNhODsnLCAgICAgICdwc2knID0+ICcmI3gzYzg7JywgICAgICdxdW90JyA9PiAnJiN4MjI7JywKICdyYWRpYycgPT4gJyYjeDIyMWE7JywgICAncmFuZycgPT4gJyYjeDIzMmE7JywgICAncmFxdW8nID0+ICcmI3hiYjsnLAogJ3JhcnInID0+ICcmI3gyMTkyOycsICAgICdyQXJyJyA9PiAnJiN4MjFkMjsnLCAgICdyY2VpbCcgPT4gJyYjeDIzMDk7JywKICdyZHF1bycgPT4gJyYjeDIwMWQ7JywgICAncmVhbCcgPT4gJyYjeDIxMWM7JywgICAncmVnJyA9PiAnJiN4YWU7JywKICdyZmxvb3InID0+ICcmI3gyMzBiOycsICAnUmhvJyA9PiAnJiN4M2ExOycsICAgICAncmhvJyA9PiAnJiN4M2MxOycsCiAncmxtJyA9PiAnJiN4MjAwZjsnLCAgICAgJ3JzYXF1bycgPT4gJyYjeDIwM2E7JywgJ3JzcXVvJyA9PiAnJiN4MjAxOTsnLAogJ3NicXVvJyA9PiAnJiN4MjAxYTsnLCAgICdTY2Fyb24nID0+ICcmI3gxNjA7JywgICdzY2Fyb24nID0+ICcmI3gxNjE7JywKICdzZG90JyA9PiAnJiN4MjJjNTsnLCAgICAnc2VjdCcgPT4gJyYjeGE3OycsICAgICAnc2h5JyA9PiAnJiN4YWQ7JywKICdTaWdtYScgPT4gJyYjeDNhMzsnLCAgICAnc2lnbWEnID0+ICcmI3gzYzM7JywgICAnc2lnbWFmJyA9PiAnJiN4M2MyOycsCiAnc2ltJyA9PiAnJiN4MjIzYzsnLCAgICAgJ3NwYWRlcycgPT4gJyYjeDI2NjA7JywgJ3N1YicgPT4gJyYjeDIyODI7JywKICdzdWJlJyA9PiAnJiN4MjI4NjsnLCAgICAnc3VtJyA9PiAnJiN4MjIxMTsnLCAgICAnc3VwJyA9PiAnJiN4MjI4MzsnLAogJ3N1cDEnID0+ICcmI3hiOTsnLCAgICAgICdzdXAyJyA9PiAnJiN4YjI7JywgICAgICdzdXAzJyA9PiAnJiN4YjM7JywKICdzdXBlJyA9PiAnJiN4MjI4NzsnLCAgICAnc3psaWcnID0+ICcmI3hkZjsnLCAgICAnVGF1JyA9PiAnJiN4M2E0OycsCiAndGF1JyA9PiAnJiN4M2M0OycsICAgICAgJ3RoZXJlNCcgPT4gJyYjeDIyMzQ7JywgJ1RoZXRhJyA9PiAnJiN4Mzk4OycsCiAndGhldGEnID0+ICcmI3gzYjg7JywgICAgJ3RoZXRhc3ltJyA9PiAnJiN4M2QxOycsJ3RoaW5zcCcgPT4gJyYjeDIwMDk7JywKICdUSE9STicgPT4gJyYjeGRlOycsICAgICAndGhvcm4nID0+ICcmI3hmZTsnLCAgICAndGlsZGUnID0+ICcmI3gyZGM7JywKICd0aW1lcycgPT4gJyYjeGQ3OycsICAgICAndHJhZGUnID0+ICcmI3gyMTIyOycsICAnVWFjdXRlJyA9PiAnJiN4ZGE7JywKICd1YWN1dGUnID0+ICcmI3hmYTsnLCAgICAndWFycicgPT4gJyYjeDIxOTE7JywgICAndUFycicgPT4gJyYjeDIxZDE7JywKICdVY2lyYycgPT4gJyYjeGRiOycsICAgICAndWNpcmMnID0+ICcmI3hmYjsnLCAgICAnVWdyYXZlJyA9PiAnJiN4ZDk7JywKICd1Z3JhdmUnID0+ICcmI3hmOTsnLCAgICAndW1sJyA9PiAnJiN4YTg7JywgICAgICAndXBzaWgnID0+ICcmI3gzZDI7JywKICdVcHNpbG9uJyA9PiAnJiN4M2E1OycsICAndXBzaWxvbicgPT4gJyYjeDNjNTsnLCAnVXVtbCcgPT4gJyYjeGRjOycsCiAndXVtbCcgPT4gJyYjeGZjOycsICAgICAgJ3dlaWVycCcgPT4gJyYjeDIxMTg7JywgJ1hpJyA9PiAnJiN4MzllOycsCiAneGknID0+ICcmI3gzYmU7JywgICAgICAgJ1lhY3V0ZScgPT4gJyYjeGRkOycsICAgJ3lhY3V0ZScgPT4gJyYjeGZkOycsCiAneWVuJyA9PiAnJiN4YTU7JywgICAgICAgJ3l1bWwnID0+ICcmI3hmZjsnLCAgICAgJ1l1bWwnID0+ICcmI3gxNzg7JywKICdaZXRhJyA9PiAnJiN4Mzk2OycsICAgICAnemV0YScgPT4gJyYjeDNiNjsnLCAgICAnendqJyA9PiAnJiN4MjAwZDsnLAogJ3p3bmonID0+ICcmI3gyMDBjOycsCik7Cgpmb3JlYWNoIG15ICR0YWduYW1lICggcXd7CiBicgogYWRkcmVzcyBhcHBsZXQgYXJlYSBiYXNlIGJnc291bmQgYmxvY2txdW90ZSBib2R5IGJ1dHRvbiBjYXB0aW9uIGNlbnRlciBjb2wKIGNvbGdyb3VwIGRkIGRlbCBkaXIgZGl2IGRsIGR0IGZpZWxkc2V0IGZvcm0gZnJhbWUgZnJhbWVzZXQgaDEgaDIgaDMgaDQgaDUKIGg2IGhlYWQgaHIgaHRtbCBpZnJhbWUgaWxheWVyIGlucHV0IGlucyBpc2luZGV4IGxhYmVsIGxheWVyIGxlZ2VuZCBsaSBsaW5rCiBsaXN0aW5nIG1hcCBtZW51IG1ldGEgbXVsdGljb2wgbm9mcmFtZXMgbm9sYXllciBub3NjcmlwdCBvYmplY3Qgb2wKIG9wdGdyb3VwIG9wdGlvbiBwIHBhcmFtIHBsYWludGV4dCBwcmUgc2NyaXB0IHNlbGVjdCBzdHlsZSB0YWJsZSB0Ym9keSB0ZAogdGV4dGFyZWEgdGZvb3QgdGggdGhlYWQgdGl0bGUgdHIgdWwgeG1wCn0pIHsgJElzQmxvY2tNYXJrdXB7JHRhZ25hbWV9ID0gMSB1bmxlc3MgZXhpc3RzICRJc0Jsb2NrTWFya3VweyR0YWduYW1lfSB9CgojLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KIyBOb3cgdGhlIGZ1bmN0aW9uIGdlbmVyYXRvcnM6CkBFWFBPUlQgPSAoICdnZXRfdXJsJyApOwoKJEVYUE9SVF9UQUdTeydmdW5jdGlvbnMnfSA9IFxARVhQT1JUOyAgIyBqdXN0IGZvciBteSBvd24gYmFja3dhcmQgY29tcGF0Cgpmb3JlYWNoIG15ICRtZXRob2QgKAogIGRvIHsKICAgIG5vIHN0cmljdCAncmVmcyc7CiAgICBteSAldG9faGlkZTsKICAgIEB0b19oaWRle0BIaWRpZXN9ID0gKCk7CiAgICBzb3J0CiAgICAgIGdyZXAgIWV4aXN0cyAkdG9faGlkZXskX30gJiYgIW0vXnJzc18vcwogICAgICAgICYmIG0vXlthLXpdW19BLVphLXowLTldKyQvcyAmJiBkZWZpbmVkICZ7IlhNTDo6UlNTOjpTaW1wbGVHZW46OiRfIn0sCiAgICAgICAga2V5cyAlWE1MOjpSU1M6OlNpbXBsZUdlbjo6CiAgfQopIHsKICBteSAkZnVuY3Rpb24gPSAicnNzXyRtZXRob2QiOwogIERFQlVHID4gMjAgYW5kIHByaW50ICIkbWV0aG9kID0+ICRmdW5jdGlvblxuIjsKICBwdXNoIEBFWFBPUlQsICRmdW5jdGlvbjsKICBubyBzdHJpY3QgJ3JlZnMnOwogIHVubGVzcyggZGVmaW5lZCAmeyRmdW5jdGlvbn0gKSB7CiAgICBERUJVRyA+IDIwIGFuZCBwcmludCAiIERlZmluaW5nICRmdW5jdGlvbiA9PiAkZnVuY3Rpb25cbiI7CiAgICAqeyRmdW5jdGlvbn0gPSBzdWIgewogICAgICB1c2Ugc3RyaWN0ICdyZWZzJzsKICAgICAgdW5zaGlmdCBAXywgKCRSU1Nfb2JqIHx8PSBYTUw6OlJTUzo6U2ltcGxlR2VuOjotPm5ldyk7CiAgICAgIGdvdG8gJnsKICAgICAgICAkX1swXS0+Y2FuKCRtZXRob2QpCiAgICAgICAgfHwgZGllICJXaGVyZSdzICRtZXRob2QgZm9yICRfWzBdPyEiCiAgICAgICAgICAjIGluc2FuZSBlcnJvciwgc2hvdWxkIG5ldmVyIGhhcHBlbiwgdW5sZXNzIHNvbWVib2R5CiAgICAgICAgICAjIGdvZXMgdW5kZWZpbmluZyBleGlzdGluZyBtZXRob2RzIQogICAgICB9OwogICAgfTsKICB9Cn0KCnN1YiByc3NfbmV3IHsgJFJTU19vYmogPSBYTUw6OlJTUzo6U2ltcGxlR2VuLT5uZXcoQF8pIH0KREVCVUcgPiAyMCBhbmQgcHJpbnQgIkRvbmUgY29tcGlsaW5nICIsIF9fUEFDS0FHRV9fLCAiLlxuIjsKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoxOwpfX0VORF9fCgo9YmFjawoKPWhlYWQxIFJTUyBWRVJTSU9OCgpSU1MgZmVlZHMgZW1pdHRlZCBieSB0aGlzIG1vZHVsZSBhcmUgYmFzaWNhbGx5IGFjY29yZGluZyB0byB2MC45MiBSU1MsCndpdGggYSB2ZXJ5IGZldyBleHRlbnNpb25zIGZyb20gdjIuMCBSU1MuICBUaGV5IGFyZSBub3QgUkRGIGZpbGVzLgoKPWhlYWQxIFNFRSBBTFNPCgpMPFhNTDo6UlNTPgoKTDxodHRwOi8vbXkubmV0c2NhcGUuY29tL3B1Ymxpc2gvZm9ybWF0cy9yc3MtMC45MS5kdGQ+CgpMPGh0dHA6Ly9ibG9ncy5sYXcuaGFydmFyZC5lZHUvdGVjaC9yc3M+CgpMPGh0dHA6Ly9kaXJlY3RvcnkuZ29vZ2xlLmNvbS9Ub3AvUmVmZXJlbmNlL0xpYnJhcmllcy9MaWJyYXJ5X2FuZF9JbmZvcm1hdGlvbl9TY2llbmNlL1RlY2huaWNhbF9TZXJ2aWNlcy9DYXRhbG9ndWluZy9NZXRhZGF0YS9SREYvQXBwbGljYXRpb25zL1JTUy9TcGVjaWZpY2F0aW9ucy8+CgpMPGh0dHA6Ly9mZWVkdmFsaWRhdG9yLm9yZy8+CgpZb3UgbWlnaHQgYWxzbyBsaWtlIG15IGJvb2sgSTxQZXJsIGFuZCBMV1A+LCB3aGljaCBkaXNjdXNzZXMgdGhlIG1hbnkKc2NyZWVuLXNjcmFwaW5nIHRlY2huaXF1ZXMgdGhhdCB5b3Ugd291bGQgdXNlIGZvciBleHRyYWN0aW5nIGRhdGEgZnJvbQpIVE1MIHRvIG1ha2UgaW50byBSU1MgZmVlZHM6Cgo9b3ZlcgoKPWl0ZW0gTDxodHRwOi8vd3d3Lm9yZWlsbHkuY29tL2NhdGFsb2cvcGVybGx3cC8+Cgo9aXRlbSBMPGh0dHA6Ly93d3cuYW1hem9uLmNvbS9leGVjL29iaWRvcy9BU0lOLzA1OTYwMDE3ODkvPgoKPWl0ZW0gTDxodHRwOi8vd3d3LmFtYXpvbi5jby51ay9leGVjL29iaWRvcy9BU0lOLzA1OTYwMDE3ODkvdD4KCj1pdGVtIEw8aHR0cDovL2ludGVyZ2xhY2lhbC5jb20vZC9zY3JhcGVycz4gLS0gZXhhbXBsZXMgb2YgUGVybApwcm9ncmFtcyB0aGF0IHByb2R1Y2UgUlNTJ3MgKHdoaWNoIGFyZSB2aXNpYmxlIGF0Ckw8aHR0cDovL2ludGVyZ2xhY2lhbC5jb20vcnNzLz4gKQoKPWJhY2sKCgoKPWhlYWQxIENPUFlSSUdIVCBBTkQgRElTQ0xBSU1FUlMKCkNvcHlyaWdodCAoYykgMjAwMyw0IFNlYW4gTS4gQnVya2UuICBBbGwgcmlnaHRzIHJlc2VydmVkLgoKVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKaXQgdW5kZXIgdGhlIHNhbWUgdGVybXMgYXMgUGVybCBpdHNlbGYuCgpUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CndpdGhvdXQgYW55IHdhcnJhbnR5OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKbWVyY2hhbnRhYmlsaXR5IG9yIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgoKUG9ydGlvbnMgb2YgdGhlIGRhdGEgdGFibGVzIGluIHRoaXMgbW9kdWxlIGFyZSBkZXJpdmVkIGZyb20gdGhlCmVudGl0eSBkZWNsYXJhdGlvbnMgaW4gdGhlIFczQyBYSFRNTCBzcGVjaWZpY2F0aW9uLgoKQ3VycmVudGx5IChKYW51YXJ5IDIwMDQpLCB0aGF0J3MgdGhlc2UgdGhyZWU6CgogICAgICAgaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbC1sYXQxLmVudAogICAgICAgaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbC1zcGVjaWFsLmVudAogICAgICAgaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbC1zeW1ib2wuZW50CgpQb3J0aW9ucyBvZiB0aGUgY29kZSBpbiB0aGlzIG1vZHVsZSB3ZXJlIGFkYXB0ZWQgZnJvbSBwYXJ0cyBvZgpHaXNsZSBBYXMncyBMPExXUDo6U2ltcGxlPiBhbmQgdGhlIG9sZCAodjIueCkgdmVyc2lvbiBvZiBoaXMKTDxIVE1MOjpQYXJzZXI+LgoKPWhlYWQxIEFVVEhPUgoKU2VhbiBNLiBCdXJrZSBDPHNidXJrZUBjcGFuLm9yZz4KCj1jdXQKCiogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKgoKT24gQmFiYmFnZSdzIERpc2Vhc2U6CgpDaGFybGVzIEJhYmJhZ2UsIGFzIChuZWNlc3NhcmlseSkgdGhlIGZpcnN0IHBlcnNvbiB0byB3b3JrIHdpdGggbWFjaGluZXMKdGhhdCBjYW4gYXR0YWNrIHByb2JsZW1zIGF0IGFyYml0cmFyeSBsZXZlbHMgb2YgYWJzdHJhY3Rpb24sIGZlbGwgaW50byBhCnRyYXAgZmFtaWxpYXIgdG8gdG9vbHNtaXRocyBzaW5jZSwgYXMgZGVzY3JpYmVkIGhlcmUgYnkgdGhlIEVuZ2xpc2gKZXRoaWNpc3QsIExvcmQgTW91bHRvbjoKCiJPbmUgb2YgdGhlIHNhZCBtZW1vcmllcyBvZiBteSBsaWZlIGlzIGEgdmlzaXQgdG8gdGhlIGNlbGVicmF0ZWQKbWF0aGVtYXRpY2lhbiBhbmQgaW52ZW50b3IsIE1yIEJhYmJhZ2UuIEhlIHdhcyBmYXIgYWR2YW5jZWQgaW4gYWdlLCBidXQKaGlzIG1pbmQgd2FzIHN0aWxsIGFzIHZpZ29yb3VzIGFzIGV2ZXIuIEhlIHRvb2sgbWUgdGhyb3VnaCBoaXMKd29yay1yb29tcy4gSW4gdGhlIGZpcnN0IHJvb20gSSBzYXcgcGFydHMgb2YgdGhlIG9yaWdpbmFsIENhbGN1bGF0aW5nCk1hY2hpbmUsIHdoaWNoIGhhZCBiZWVuIHNob3duIGluIGFuIGluY29tcGxldGUgc3RhdGUgbWFueSB5ZWFycyBiZWZvcmUKYW5kIGhhZCBldmVuIGJlZW4gcHV0IHRvIHNvbWUgdXNlLiBJIGFza2VkIGhpbSBhYm91dCBpdHMgcHJlc2VudCBmb3JtLgonSSBoYXZlIG5vdCBmaW5pc2hlZCBpdCBiZWNhdXNlIGluIHdvcmtpbmcgYXQgaXQgSSBjYW1lIG9uIHRoZSBpZGVhIG9mCm15IEFuYWx5dGljYWwgTWFjaGluZSwgd2hpY2ggd291bGQgZG8gYWxsIHRoYXQgaXQgd2FzIGNhcGFibGUgb2YgZG9pbmcKYW5kIG11Y2ggbW9yZS4gSW5kZWVkLCB0aGUgaWRlYSB3YXMgc28gbXVjaCBzaW1wbGVyIHRoYXQgaXQgd291bGQgaGF2ZQp0YWtlbiBtb3JlIHdvcmsgdG8gY29tcGxldGUgdGhlIENhbGN1bGF0aW5nIE1hY2hpbmUgdGhhbiB0byBkZXNpZ24gYW5kCmNvbnN0cnVjdCB0aGUgb3RoZXIgaW4gaXRzIGVudGlyZXR5LCBzbyBJIHR1cm5lZCBteSBhdHRlbnRpb24gdG8gdGhlCkFuYWx5dGljYWwgTWFjaGluZS4nIgoKIkFmdGVyIGEgZmV3IG1pbnV0ZXMnIHRhbGssIHdlIHdlbnQgaW50byB0aGUgbmV4dCB3b3JrLXJvb20sIHdoZXJlIGhlCnNob3dlZCBhbmQgZXhwbGFpbmVkIHRvIG1lIHRoZSB3b3JraW5nIG9mIHRoZSBlbGVtZW50cyBvZiB0aGUgQW5hbHl0aWNhbApNYWNoaW5lLiBJIGFza2VkIGlmIEkgY291bGQgc2VlIGl0LiAnSSBoYXZlIG5ldmVyIGNvbXBsZXRlZCBpdCwnIGhlCnNhaWQsICdiZWNhdXNlIEkgaGl0IHVwb24gYW4gaWRlYSBvZiBkb2luZyB0aGUgc2FtZSB0aGluZyBieSBhIGRpZmZlcmVudAphbmQgZmFyIG1vcmUgZWZmZWN0aXZlIG1ldGhvZCwgYW5kIHRoaXMgcmVuZGVyZWQgaXQgdXNlbGVzcyB0byBwcm9jZWVkCm9uIHRoZSBvbGQgbGluZXMuJyBUaGVuIHdlIHdlbnQgaW50byB0aGUgdGhpcmQgcm9vbS4gVGhlcmUgbGF5IHNjYXR0ZXJlZApiaXRzIG9mIG1lY2hhbmlzbSwgYnV0IEkgc2F3IG5vIHRyYWNlIG9mIGFueSB3b3JraW5nIG1hY2hpbmUuIFZlcnkKY2F1dGlvdXNseSBJIGFwcHJvYWNoZWQgdGhlIHN1YmplY3QsIGFuZCByZWNlaXZlZCB0aGUgZHJlYWRlZCBhbnN3ZXIsCidJdCBpcyBub3QgY29uc3RydWN0ZWQgeWV0LCBidXQgSSBhbSB3b3JraW5nIG9uIGl0LCBhbmQgaXQgd2lsbCB0YWtlCmxlc3MgdGltZSB0byBjb25zdHJ1Y3QgaXQgYWx0b2dldGhlciB0aGFuIGl0IHdvdWxkIGhhdmUgdG9rZW4gdG8KY29tcGxldGUgdGhlIEFuYWx5dGljYWwgTWFjaGluZSBmcm9tIHRoZSBzdGFnZSBpbiB3aGljaCBJIGxlZnQgaXQuJyBJCnRvb2sgbGVhdmUgb2YgdGhlIG9sZCBtYW4gd2l0aCBhIGhlYXZ5IGhlYXJ0LiIKCiJXaGVuIGhlIGRpZWQgYSBmZXcgeWVhcnMgbGF0ZXIsIG5vdCBvbmx5IGhhZCBoZSBjb25zdHJ1Y3RlZCBubyBtYWNoaW5lLApidXQgdGhlIHZlcmRpY3Qgb2YgYSBqdXJ5IG9mIGtpbmQgYW5kIHN5bXBhdGhldGljIHNjaWVudGlmaWMgbWVuIHdobwp3ZXJlIGRlcHV0ZWQgdG8gcHJvbm91bmNlIHVwb24gd2hhdCBoZSBoYWQgbGVmdCBiZWhpbmQgaGltLCBlaXRoZXIgaW4KcGFwZXJzIG9yIGluIG1lY2hhbmlzbSwgd2FzIHRoYXQgZXZlcnl0aGluZyB3YXMgdG9vIGluY29tcGxldGUgb2YgYmUKY2FwYWJsZSBvZiBiZWluZyBwdXQgdG8gYW55IHVzZWZ1bCBwdXJwb3NlLiIKCltMb3JkIE1vdWx0b24sICJUaGUgaW52ZW50aW9uIG9mIGFsZ29yaXRobXMsIGl0cyBnZW5lc2lzLCBhbmQgZ3Jvd3RoIiwKaW4gRy4gQy4gS25vdHQsIGVkLiwgIk5hcGllciB0ZXJjZW50ZW5hcnkgbWVtb3JpYWwgdm9sdW1lIiAoTG9uZG9uLAoxOTE1KSwgcC4gMS0yNDsgcXVvdGVkIGluIENoYXJsZXMgQmFiYmFnZSAiUGFzc2FnZSBmcm9tIHRoZSBMaWZlIG9mIGEKUGhpbG9zb3BoZXIiLCBNYXJ0aW4gQ2FtcGJlbGwtS2VsbHksIGVkLiAoUnV0Z2VycyBVLiBQcmVzcyBhbmQgSUVFRQpQcmVzcywgMTk5NCksIHAuIDM0XS4KCiAtKi0KCg==</File>
        <File Location="Kernel/GenericInterface/Operation/FAQ/PublicCategoryList.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uOjpGQVE6OlB1YmxpY0NhdGVnb3J5TGlzdDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyhJc0FycmF5UmVmV2l0aERhdGEgSXNIYXNoUmVmV2l0aERhdGEgSXNTdHJpbmdXaXRoRGF0YSk7Cgp1c2UgcGFyZW50IHF3KAogICAgS2VybmVsOjpHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb246OkNvbW1vbgopOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uOjpGQVE6OlB1YmxpY0NhdGVnb3J5TGlzdCAtIEdlbmVyaWNJbnRlcmZhY2UgRkFRIFB1YmxpY0NhdGVnb3J5TGlzdCBPcGVyYXRpb24gYmFja2VuZAoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1oZWFkMiBuZXcoKQoKdXN1YWxseSwgeW91IHdhbnQgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIHRoaXMKYnkgdXNpbmcgS2VybmVsOjpHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb24tPm5ldygpOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgZm9yIG15ICROZWVkZWQgKHF3KCBEZWJ1Z2dlck9iamVjdCBXZWJzZXJ2aWNlSUQgKSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKCiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiR290IG5vICROZWVkZWQhIgogICAgICAgICAgICB9OwogICAgICAgIH0KCiAgICAgICAgJFNlbGYtPnskTmVlZGVkfSA9ICRQYXJhbXskTmVlZGVkfTsKICAgIH0KCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1oZWFkMiBSdW4oKQoKcGVyZm9ybSBQdWJsaWNDYXRlZ29yeUxpc3QgT3BlcmF0aW9uLiBUaGlzIHdpbGwgcmV0dXJuIHRoZSBjdXJyZW50IEZBUSBDYXRlZ29yaWVzLgoKICAgIG15ICRSZXN1bHQgPSAkT3BlcmF0aW9uT2JqZWN0LT5SdW4oCiAgICAgICAgRGF0YSA9PiB7fSwKICAgICk7CgogICAgJFJlc3VsdCA9IHsKICAgICAgICBTdWNjZXNzICAgICAgPT4gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgMCBvciAxCiAgICAgICAgRXJyb3JNZXNzYWdlID0+ICcnLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEluIGNhc2Ugb2YgYW4gZXJyb3IKICAgICAgICBEYXRhICAgICAgICAgPT4geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgcmVzdWx0IGRhdGEgcGF5bG9hZCBhZnRlciBPcGVyYXRpb24KICAgICAgICAgICAgQ2F0ZWdvcnkgPT4gWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElEID0+IDEsCiAgICAgICAgICAgICAgICAgICAgTmFtZT4gJ01pc2MnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJRCA9PiAyLAogICAgICAgICAgICAgICAgICAgIE5hbWU+ICdPbmVNb3JlQ2F0ZWdvcnknLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICMgLi4uCiAgICAgICAgICAgIF0sCiAgICAgICAgfSwKICAgIH07Cgo9Y3V0CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBTZXQgVXNlcklEIHRvIHJvb3QgYmVjYXVzZSBpbiBwdWJsaWMgaW50ZXJmYWNlIHRoZXJlIGlzIG5vIHVzZXIuCiAgICBteSAkQ2F0ZWdvcnlUcmVlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkZBUScpLT5HZXRQdWJsaWNDYXRlZ29yaWVzTG9uZ05hbWVzKAogICAgICAgIFZhbGlkICA9PiAxLAogICAgICAgIFR5cGUgICA9PiAncncnLAogICAgICAgIFVzZXJJRCA9PiAxLAogICAgKTsKCiAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSgkQ2F0ZWdvcnlUcmVlKSApIHsKCiAgICAgICAgbXkgJEVycm9yTWVzc2FnZSA9ICdDb3VsZCBub3QgZ2V0IGNhdGVnb3J5IGRhdGEnCiAgICAgICAgICAgIC4gJyBpbiBLZXJuZWw6OkdlbmVyaWNJbnRlcmZhY2U6Ok9wZXJhdGlvbjo6RkFROjpQdWJsaWNDYXRlZ29yeUxpc3Q6OlJ1bigpJzsKCiAgICAgICAgcmV0dXJuICRTZWxmLT5SZXR1cm5FcnJvcigKICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdQdWJsaWNDYXRlZ29yeUxpc3QuTm90Q2F0ZWdvcnlEYXRhJywKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJQdWJsaWNDYXRlZ29yeUxpc3Q6ICRFcnJvck1lc3NhZ2UiLAogICAgICAgICk7CgogICAgfQoKICAgIG15IEBQdWJsaWNDYXRlZ29yeUxpc3Q7CiAgICBmb3IgbXkgJEtleSAoIHNvcnQoIGtleXMgJXskQ2F0ZWdvcnlUcmVlfSApICkgewogICAgICAgIG15ICVDYXRlZ29yeSA9ICgKICAgICAgICAgICAgSUQgICA9PiAkS2V5LAogICAgICAgICAgICBOYW1lID0+ICRDYXRlZ29yeVRyZWUtPnskS2V5fSwKICAgICAgICApOwogICAgICAgIHB1c2ggQFB1YmxpY0NhdGVnb3J5TGlzdCwgeyVDYXRlZ29yeX07CiAgICB9CgogICAgIyBQcmVwYXJlIHJldHVybiBkYXRhLgogICAgbXkgJFJldHVybkRhdGEgPSB7CiAgICAgICAgU3VjY2VzcyA9PiAxLAogICAgICAgIERhdGEgICAgPT4ge30sCiAgICB9OwogICAgaWYgKCBzY2FsYXIgQFB1YmxpY0NhdGVnb3J5TGlzdCA+IDEgKSB7CiAgICAgICAgJFJldHVybkRhdGEtPntEYXRhfS0+e0NhdGVnb3J5fSA9IFxAUHVibGljQ2F0ZWdvcnlMaXN0OwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJFJldHVybkRhdGEtPntEYXRhfS0+e0NhdGVnb3J5fSA9ICRQdWJsaWNDYXRlZ29yeUxpc3RbMF07CiAgICB9CgogICAgcmV0dXJuICRSZXR1cm5EYXRhOwp9CgoxOwoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UT0JPIHByb2plY3QgKEw8aHR0cHM6Ly9vdG9iby5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dD4uCgo9Y3V0Cg==</File>
        <File Location="Kernel/GenericInterface/Operation/FAQ/LanguageList.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uOjpGQVE6Okxhbmd1YWdlTGlzdDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyhJc0FycmF5UmVmV2l0aERhdGEgSXNIYXNoUmVmV2l0aERhdGEgSXNTdHJpbmdXaXRoRGF0YSk7Cgp1c2UgcGFyZW50IHF3KAogICAgS2VybmVsOjpHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb246OkNvbW1vbgopOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uOjpGQVE6Okxhbmd1YWdlTGlzdCAtIEdlbmVyaWNJbnRlcmZhY2UgRkFRIExhbmd1YWdlTGlzdCBPcGVyYXRpb24gYmFja2VuZAoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1oZWFkMiBuZXcoKQoKdXN1YWxseSwgeW91IHdhbnQgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIHRoaXMKYnkgdXNpbmcgS2VybmVsOjpHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb24tPm5ldygpOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgZm9yIG15ICROZWVkZWQgKHF3KCBEZWJ1Z2dlck9iamVjdCBXZWJzZXJ2aWNlSUQgKSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKCiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiR290IG5vICROZWVkZWQhIgogICAgICAgICAgICB9OwogICAgICAgIH0KCiAgICAgICAgJFNlbGYtPnskTmVlZGVkfSA9ICRQYXJhbXskTmVlZGVkfTsKICAgIH0KCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1oZWFkMiBSdW4oKQoKcGVyZm9ybSBMYW5ndWFnZUxpc3QgT3BlcmF0aW9uLiBUaGlzIHdpbGwgcmV0dXJuIHRoZSBjdXJyZW50IEZBUSBMYW5ndWFnZXMuCgogICAgbXkgJFJlc3VsdCA9ICRPcGVyYXRpb25PYmplY3QtPlJ1bigKICAgICAgICBEYXRhID0+IHt9LAogICAgKTsKCiAgICAkUmVzdWx0ID0gewogICAgICAgIFN1Y2Nlc3MgICAgICA9PiAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAwIG9yIDEKICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJycsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgSW4gY2FzZSBvZiBhbiBlcnJvcgogICAgICAgIERhdGEgICAgICAgICA9PiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyByZXN1bHQgZGF0YSBwYXlsb2FkIGFmdGVyIE9wZXJhdGlvbgogICAgICAgICAgICBMYW5ndWFnZSA9PiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSUQgPT4gMSwKICAgICAgICAgICAgICAgICAgICBOYW1lPiAnZW4nLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJRCA9PiAyLAogICAgICAgICAgICAgICAgICAgIE5hbWU+ICdPbmVNb3JlTGFuZ3VhZ2UnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICMgLi4uCiAgICAgICAgICAgIF0sCiAgICAgICAgfSwKICAgIH07Cgo9Y3V0CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBTZXQgVXNlcklEIHRvIHJvb3QgYmVjYXVzZSBpbiBwdWJsaWMgaW50ZXJmYWNlIHRoZXJlIGlzIG5vIHVzZXIuCiAgICBteSAlTGFuZ3VhZ2VzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkZBUScpLT5MYW5ndWFnZUxpc3QoCiAgICAgICAgVXNlcklEID0+IDEsCiAgICApOwoKICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCBcJUxhbmd1YWdlcyApICkgewoKICAgICAgICBteSAkRXJyb3JNZXNzYWdlID0gJ0NvdWxkIG5vdCBnZXQgbGFuZ3VhZ2UgZGF0YScKICAgICAgICAgICAgLiAnIGluIEtlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uOjpGQVE6Okxhbmd1YWdlTGlzdDo6UnVuKCknOwoKICAgICAgICByZXR1cm4gJFNlbGYtPlJldHVybkVycm9yKAogICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1RpY2tldExpc3QuTm90TGFuZ3VhZ2VEYXRhJywKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJUaWNrZXRMaXN0OiAkRXJyb3JNZXNzYWdlIiwKICAgICAgICApOwogICAgfQoKICAgIG15IEBMYW5ndWFnZUxpc3Q7CiAgICBmb3IgbXkgJEtleSAoIHNvcnQga2V5cyAlTGFuZ3VhZ2VzICkgewogICAgICAgIG15ICVMYW5ndWFnZSA9ICgKICAgICAgICAgICAgSUQgICA9PiAkS2V5LAogICAgICAgICAgICBOYW1lID0+ICRMYW5ndWFnZXN7JEtleX0sCiAgICAgICAgKTsKICAgICAgICBwdXNoIEBMYW5ndWFnZUxpc3QsIHslTGFuZ3VhZ2V9OwogICAgfQoKICAgIHJldHVybiB7CiAgICAgICAgU3VjY2VzcyA9PiAxLAogICAgICAgIERhdGEgICAgPT4gewogICAgICAgICAgICBMYW5ndWFnZSA9PiBcQExhbmd1YWdlTGlzdCwKICAgICAgICB9LAogICAgfTsKfQoKMTsKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVE9CTyBwcm9qZWN0IChMPGh0dHBzOi8vb3RvYm8ub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQ+LgoKPWN1dAo=</File>
        <File Location="Kernel/GenericInterface/Operation/FAQ/PublicFAQSearch.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uOjpGQVE6OlB1YmxpY0ZBUVNlYXJjaDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBNSU1FOjpCYXNlNjQ7CnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyhJc0FycmF5UmVmV2l0aERhdGEgSXNIYXNoUmVmV2l0aERhdGEgSXNTdHJpbmdXaXRoRGF0YSk7Cgp1c2UgcGFyZW50IHF3KAogICAgS2VybmVsOjpHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb246OkNvbW1vbgopOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uOjpGQVE6OlB1YmxpY0ZBUVNlYXJjaCAtIEdlbmVyaWNJbnRlcmZhY2UgRkFRIFB1YmxpY0ZBUVNlYXJjaCBPcGVyYXRpb24gYmFja2VuZAoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1oZWFkMiBuZXcoKQoKdXN1YWxseSwgeW91IHdhbnQgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIHRoaXMKYnkgdXNpbmcgS2VybmVsOjpHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb24tPm5ldygpOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgZm9yIG15ICROZWVkZWQgKHF3KCBEZWJ1Z2dlck9iamVjdCBXZWJzZXJ2aWNlSUQgKSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKCiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiR290IG5vICROZWVkZWQhIgogICAgICAgICAgICB9OwogICAgICAgIH0KCiAgICAgICAgJFNlbGYtPnskTmVlZGVkfSA9ICRQYXJhbXskTmVlZGVkfTsKICAgIH0KCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1oZWFkMiBSdW4oKQoKcGVyZm9ybSBQdWJsaWNGQVFTZWFyY2ggT3BlcmF0aW9uLiBUaGlzIHdpbGwgcmV0dXJuIGEgbGlzdCBvZiBwdWJsaWMgRkFRIGVudHJpZXMuCgogICAgbXkgQElEcyA9ICRPcGVyYXRpb25PYmplY3QtPlJ1bigKICAgICAgICBEYXRhID0+IHsKCiAgICAgICAgICAgIE51bWJlciAgICA9PiAnKjEzNConLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgICAgIFRpdGxlICAgICA9PiAnKnNvbWUgdGl0bGUqJywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCgogICAgICAgICAgICAjIGlzIHNlYXJjaGluZyBpbiBOdW1iZXIsIFRpdGxlLCBLZXl3b3JkIGFuZCBGaWVsZDEtNgogICAgICAgICAgICBXaGF0ICAgICAgPT4gJypzb21lIHRleHQqJywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQoKICAgICAgICAgICAgS2V5d29yZCAgID0+ICcqd2Vic2VydmVyKicsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICAgICAgTGFuZ3VhZ2VJRHMgPT4gWyA0LCA1LCA2IF0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICAgICAgQ2F0ZWdvcnlJRHMgPT4gWyA3LCA4LCA5IF0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKCiAgICAgICAgICAgIE9yZGVyQnkgPT4gWyAnRkFRSUQnLCAnVGl0bGUnIF0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCgogICAgICAgICAgICAjIEFkZGl0aW9uYWwgaW5mb3JtYXRpb24gZm9yIE9yZGVyQnk6CiAgICAgICAgICAgICMgVGhlIE9yZGVyQnlEaXJlY3Rpb24gY2FuIGJlIHNwZWNpZmllZCBmb3IgZWFjaCBPcmRlckJ5IGF0dHJpYnV0ZS4KICAgICAgICAgICAgIyBUaGUgcGFpcmluZyBpcyBtYWRlIGJ5IHRoZSBhcnJheSBpbmRleGVzLgoKICAgICAgICAgICAgT3JkZXJCeURpcmVjdGlvbiA9PiAnRG93bicsICMgKERvd24gfCBVcCkgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgICAgICMgZGVmYXVsdDogJ0Rvd24nCiAgICAgICAgfSwKICAgICk7CgogICAgJFJlc3VsdCA9IHsKICAgICAgICBTdWNjZXNzICAgICAgPT4gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgMCBvciAxCiAgICAgICAgRXJyb3JNZXNzYWdlID0+ICcnLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEluIGNhc2Ugb2YgYW4gZXJyb3IKICAgICAgICBEYXRhICAgICAgICAgPT4geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgcmVzdWx0IGRhdGEgcGF5bG9hZCBhZnRlciBPcGVyYXRpb24KICAgICAgICAgICAgSUQgPT4gWwogICAgICAgICAgICAgICAgMzIsCiAgICAgICAgICAgICAgICAxMywKICAgICAgICAgICAgICAgIDEyLAogICAgICAgICAgICAgICAgOSwKICAgICAgICAgICAgICAgIDYsCiAgICAgICAgICAgICAgICA1LAogICAgICAgICAgICAgICAgNCwKICAgICAgICAgICAgICAgIDEsCiAgICAgICAgICAgIF0sCiAgICAgICAgfSwKICAgIH07Cgo9Y3V0CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBTZXQgU2VhcmNoTGltaXQgb24gMCBiZWNhdXNlIHdlIG5lZWQgdG8gZ2V0IGFsbCBlbnRyaWVzLgogICAgbXkgJFNlYXJjaExpbWl0ID0gMDsKCiAgICBteSAkQ29uZmlnID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCJGQVE6OkZyb250ZW5kOjpQdWJsaWNGQVFTZWFyY2giKTsKCiAgICBteSAkU29ydEJ5ID0gJFBhcmFte0RhdGF9LT57T3JkZXJCeX0KICAgICAgICB8fCAkQ29uZmlnLT57J1NvcnRCeTo6RGVmYXVsdCd9CiAgICAgICAgfHwgJ0ZBUUlEJzsKCiAgICAjIFRoZSBTb3J0QnkgcGFyYW0gY291bGQgYmUgYW4gQVJSQVkgYW4gU0NBTEFSIG9yIGFuIGVtcHR5IHZhbHVlLgogICAgaWYgKCAhSXNBcnJheVJlZldpdGhEYXRhKCRTb3J0QnkpICYmICRTb3J0QnkgbmUgJycgKSB7CiAgICAgICAgJFNvcnRCeSA9IFskU29ydEJ5XTsKICAgIH0KCiAgICBteSAkT3JkZXJCeSA9ICRQYXJhbXtEYXRhfS0+e09yZGVyQnlEaXJlY3Rpb259CiAgICAgICAgfHwgJENvbmZpZy0+eydPcmRlcjo6RGVmYXVsdCd9CiAgICAgICAgfHwgJ0Rvd24nOwoKICAgIG15ICRDYXRlZ29yeUlEczsKCiAgICAjIFRoZSBDYXRlZ29yeUlEIHBhcmFtIGNvdWxkIGJlIGFuIEFSUkFZIGFuIFNDQUxBUiBvciBhbiBlbXB0eSB2YWx1ZS4KICAgICRQYXJhbXtEYXRhfS0+e0NhdGVnb3J5SURzfSA9ICRQYXJhbXtEYXRhfS0+e0NhdGVnb3J5SURzfSB8fCAnJzsKICAgIGlmICggIUlzQXJyYXlSZWZXaXRoRGF0YSggJFBhcmFte0RhdGF9LT57Q2F0ZWdvcnlJRHN9ICkgJiYgJFBhcmFte0RhdGF9LT57Q2F0ZWdvcnlJRHN9IG5lICcnICkgewogICAgICAgICRDYXRlZ29yeUlEcyA9IFsgJFBhcmFte0RhdGF9LT57Q2F0ZWdvcnlJRHN9IF07CiAgICB9CiAgICBlbHNpZiAoICRQYXJhbXtEYXRhfS0+e0NhdGVnb3J5SURzfSBuZSAnJyApIHsKICAgICAgICAkQ2F0ZWdvcnlJRHMgPSAkUGFyYW17RGF0YX0tPntDYXRlZ29yeUlEc307CiAgICB9CgogICAgbXkgJExhbmd1YWdlSURzOwoKICAgICMgVGhlIExhbmd1YWdlSUQgcGFyYW0gY291bGQgYmUgYW4gQVJSQVkgYW4gU0NBTEFSIG9yIGFuIGVtcHR5IHZhbHVlLgogICAgJFBhcmFte0RhdGF9LT57TGFuZ3VhZ2VJRHN9ID0gJFBhcmFte0RhdGF9LT57TGFuZ3VhZ2VJRHN9IHx8ICcnOwogICAgaWYgKCAhSXNBcnJheVJlZldpdGhEYXRhKCAkUGFyYW17RGF0YX0tPntMYW5ndWFnZUlEc30gKSAmJiAkUGFyYW17RGF0YX0tPntMYW5ndWFnZUlEc30gbmUgJycgKSB7CiAgICAgICAgJExhbmd1YWdlSURzID0gWyAkUGFyYW17RGF0YX0tPntMYW5ndWFnZUlEc30gXTsKICAgIH0KICAgIGVsc2lmICggJFBhcmFte0RhdGF9LT57TGFuZ3VhZ2VJRHN9IG5lICcnICkgewogICAgICAgICRMYW5ndWFnZUlEcyA9ICRQYXJhbXtEYXRhfS0+e0xhbmd1YWdlSURzfTsKICAgIH0KCiAgICBteSAkRkFRT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkZBUScpOwoKICAgICMgU2V0IFVzZXJJRCB0byByb290IGJlY2F1c2UgaW4gcHVibGljIGludGVyZmFjZSB0aGVyZSBpcyBubyB1c2VyLgogICAgbXkgJFVzZXJJRCA9IDE7CgogICAgIyBTZXQgZGVmYXVsdCBpbnRlcmZhY2Ugc2V0dGluZ3MuCiAgICBteSAkSW50ZXJmYWNlID0gJEZBUU9iamVjdC0+U3RhdGVUeXBlR2V0KAogICAgICAgIE5hbWUgICA9PiAncHVibGljJywKICAgICAgICBVc2VySUQgPT4gJFVzZXJJRCwKICAgICk7CiAgICBteSAkSW50ZXJmYWNlU3RhdGVzID0gJEZBUU9iamVjdC0+U3RhdGVUeXBlTGlzdCgKICAgICAgICBUeXBlcyAgPT4gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdGQVE6OlB1YmxpYzo6U3RhdGVUeXBlcycpLAogICAgICAgIFVzZXJJRCA9PiAkVXNlcklELAogICAgKTsKCiAgICAjIFBlcmZvcm0gRkFRIHNlYXJjaC4KICAgIG15IEBWaWV3YWJsZUl0ZW1JRHMgPSAkRkFRT2JqZWN0LT5GQVFTZWFyY2goCiAgICAgICAgTnVtYmVyICAgICAgICAgICA9PiAkUGFyYW17RGF0YX0tPntOdW1iZXJ9ICB8fCAnJywKICAgICAgICBUaXRsZSAgICAgICAgICAgID0+ICRQYXJhbXtEYXRhfS0+e1RpdGxlfSAgIHx8ICcnLAogICAgICAgIFdoYXQgICAgICAgICAgICAgPT4gJFBhcmFte0RhdGF9LT57V2hhdH0gICAgfHwgJycsCiAgICAgICAgS2V5d29yZCAgICAgICAgICA9PiAkUGFyYW17RGF0YX0tPntLZXl3b3JkfSB8fCAnJywKICAgICAgICBMYW5ndWFnZUlEcyAgICAgID0+ICRMYW5ndWFnZUlEcywKICAgICAgICBDYXRlZ29yeUlEcyAgICAgID0+ICRDYXRlZ29yeUlEcywKICAgICAgICBPcmRlckJ5ICAgICAgICAgID0+ICRTb3J0QnksCiAgICAgICAgT3JkZXJCeURpcmVjdGlvbiA9PiBbJE9yZGVyQnldLAogICAgICAgIExpbWl0ICAgICAgICAgICAgPT4gJFNlYXJjaExpbWl0LAogICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gJFVzZXJJRCwKICAgICAgICBTdGF0ZXMgICAgICAgICAgID0+ICRJbnRlcmZhY2VTdGF0ZXMsCiAgICAgICAgSW50ZXJmYWNlICAgICAgICA9PiAkSW50ZXJmYWNlLAogICAgKTsKICAgIGlmICggIUlzQXJyYXlSZWZXaXRoRGF0YSggXEBWaWV3YWJsZUl0ZW1JRHMgKSApIHsKCiAgICAgICAgbXkgJEVycm9yTWVzc2FnZSA9ICdDb3VsZCBub3QgZ2V0IEZBUSBkYXRhJwogICAgICAgICAgICAuICcgaW4gS2VybmVsOjpHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb246OkZBUTo6UHVibGljRkFRU2VhcmNoOjpSdW4oKSc7CgogICAgICAgIHJldHVybiAkU2VsZi0+UmV0dXJuRXJyb3IoCiAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnUHVibGljRkFRU2VhcmNoLk5vdEZBUURhdGEnLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIlB1YmxpY0ZBUVNlYXJjaDogJEVycm9yTWVzc2FnZSIsCiAgICAgICAgKTsKCiAgICB9CgogICAgIyBQcmVwYXJlIHJldHVybiBkYXRhLgogICAgbXkgJFJldHVybkRhdGEgPSB7CiAgICAgICAgRGF0YSAgICA9PiB7fSwKICAgICAgICBTdWNjZXNzID0+IDEsCiAgICB9OwoKICAgICMgU2V0IEZBUSBlbnRyeSBkYXRhLgogICAgaWYgKCBzY2FsYXIgQFZpZXdhYmxlSXRlbUlEcyA+IDEgKSB7CiAgICAgICAgJFJldHVybkRhdGEtPntEYXRhfS0+e0lEfSA9IFxAVmlld2FibGVJdGVtSURzOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJFJldHVybkRhdGEtPntEYXRhfS0+e0lEfSA9ICRWaWV3YWJsZUl0ZW1JRHNbMF07CiAgICB9CgogICAgcmV0dXJuICRSZXR1cm5EYXRhOwp9CgoxOwoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UT0JPIHByb2plY3QgKEw8aHR0cHM6Ly9vdG9iby5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dD4uCgo9Y3V0Cg==</File>
        <File Location="Kernel/GenericInterface/Operation/FAQ/PublicFAQGet.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uOjpGQVE6OlB1YmxpY0ZBUUdldDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBNSU1FOjpCYXNlNjQ7CnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyhJc0FycmF5UmVmV2l0aERhdGEgSXNIYXNoUmVmV2l0aERhdGEgSXNTdHJpbmdXaXRoRGF0YSk7Cgp1c2UgcGFyZW50IHF3KAogICAgS2VybmVsOjpHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb246OkNvbW1vbgopOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uOjpGQVE6OlB1YmxpY0ZBUUdldCAtIEdlbmVyaWNJbnRlcmZhY2UgRkFRIFB1YmxpY0ZBUUdldCBPcGVyYXRpb24gYmFja2VuZAoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1oZWFkMiBuZXcoKQoKdXN1YWxseSwgeW91IHdhbnQgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIHRoaXMKYnkgdXNpbmcgS2VybmVsOjpHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb24tPm5ldygpOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgZm9yIG15ICROZWVkZWQgKHF3KCBEZWJ1Z2dlck9iamVjdCBXZWJzZXJ2aWNlSUQgKSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKCiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiR290IG5vICROZWVkZWQhIgogICAgICAgICAgICB9OwogICAgICAgIH0KCiAgICAgICAgJFNlbGYtPnskTmVlZGVkfSA9ICRQYXJhbXskTmVlZGVkfTsKICAgIH0KCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1oZWFkMiBSdW4oKQoKcGVyZm9ybSBQdWJsaWNGQVFHZXQgT3BlcmF0aW9uLiBUaGlzIHdpbGwgcmV0dXJuIGEgUHVibGljIEZBUSBlbnRyeS4KCiAgICBteSAkUmVzdWx0ID0gJE9wZXJhdGlvbk9iamVjdC0+UnVuKAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICBJdGVtSUQgPSAnMzIsMzMnLAogICAgICAgICAgICBHZXRBdHRhY2htZW50Q29udGVudHMgPSAxLCAgICAgICAgICAgICAgICAgICAgIyAwfDEsIGRlZmF1bHRzIHRvIDEKICAgICAgICB9LAogICAgKTsKCiAgICAkUmVzdWx0ID0gewogICAgICAgIFN1Y2Nlc3MgICAgICA9PiAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAwIG9yIDEKICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJycsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgSW4gY2FzZSBvZiBhbiBlcnJvcgogICAgICAgIERhdGEgICAgICAgICA9PiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyByZXN1bHQgZGF0YSBwYXlsb2FkIGFmdGVyIE9wZXJhdGlvbgogICAgICAgICAgICBJdGVtSUQgPT4gWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElEICAgICAgICAgICAgICAgID0+IDMyLAogICAgICAgICAgICAgICAgICAgIEl0ZW1JRCAgICAgICAgICAgID0+IDMyLAogICAgICAgICAgICAgICAgICAgIEZBUUlEICAgICAgICAgICAgID0+IDMyLAogICAgICAgICAgICAgICAgICAgIE51bWJlciAgICAgICAgICAgID0+IDEwMDAzMiwKICAgICAgICAgICAgICAgICAgICBDYXRlZ29yeUlEICAgICAgICA9PiAnMicsCiAgICAgICAgICAgICAgICAgICAgQ2F0ZWdvcnlOYW1lICAgICA9PiAnQ2F0ZWdvcnlBOjpDYXRlZ29yeUInLAogICAgICAgICAgICAgICAgICAgIENhdGVnb3J5U2hvcnROYW1lID0+ICdDYXRlZ29yeUInLAogICAgICAgICAgICAgICAgICAgIExhbmd1YWdlSUQgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICAgICAgTGFuZ3VhZ2UgICAgICAgICAgPT4gJ2VuJywKICAgICAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgICAgICA9PiAnQXJ0aWNsZSBUaXRsZScsCiAgICAgICAgICAgICAgICAgICAgRmllbGQxICAgICAgICAgICAgPT4gJ1RoZSBTeW1wdG9tcycsCiAgICAgICAgICAgICAgICAgICAgRmllbGQyICAgICAgICAgICAgPT4gJ1RoZSBQcm9ibGVtJywKICAgICAgICAgICAgICAgICAgICBGaWVsZDMgICAgICAgICAgICA9PiAnVGhlIFNvbHV0aW9uJywKICAgICAgICAgICAgICAgICAgICBGaWVsZDQgICAgICAgICAgICA9PiB1bmRlZiwgICAgICAgICAgICAgICAgICAgICAgICAgICMgTm90IGFjdGl2ZSBieSBkZWZhdWx0CiAgICAgICAgICAgICAgICAgICAgRmllbGQ1ICAgICAgICAgICAgPT4gdW5kZWYsICAgICAgICAgICAgICAgICAgICAgICAgICAjIE5vdCBhY3RpdmUgYnkgZGVmYXVsdAogICAgICAgICAgICAgICAgICAgIEZpZWxkNiAgICAgICAgICAgID0+ICdDb21tZW50cycsCiAgICAgICAgICAgICAgICAgICAgQXBwcm92ZWQgICAgICAgICAgPT4gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG9yIDAKICAgICAgICAgICAgICAgICAgICBLZXl3b3JkcyAgICAgICAgICA9PiAnS2V5V29yZDEgS2V5V29yZDInLAogICAgICAgICAgICAgICAgICAgIFZvdGVzICAgICAgICAgICAgID0+IDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBudW1iZXIgb2Ygdm90ZXMKICAgICAgICAgICAgICAgICAgICBWb3RlUmVzdWx0ICAgICAgICA9PiAnMC4wMCcsICAgICAgICAgICAgICAgICAgICAgICAgICMgYSBudW1iZXIgYmV0d2VlbiAwLjAwIGFuZCAxMDAuMDAKICAgICAgICAgICAgICAgICAgICBTdGF0ZUlEICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgICAgIFN0YXRlICAgICAgICAgICAgID0+ICdpbnRlcm5hbCAoYWdlbnQpJywgICAgICAgICAgICAgIyBvciAnZXh0ZXJuYWwgKGN1c3RvbWVyKScgb3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgJ3B1YmxpYyAoYWxsKScKICAgICAgICAgICAgICAgICAgICBTdGF0ZVR5cGVJRCAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgICAgIFN0YXRlVHlwZU5hbWUgICAgID0+ICdpbnRlcm5hbCcsICAgICAgICAgICAgICAgICAgICAgIyBvciAnZXh0ZXJuYWwnIG9yICdwdWJsaWMnCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlZEJ5ICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgICAgICBDaGFuZ2VkICAgICAgICAgICA9PiAnMjAxMS0wMS0wNSAyMTo1Mzo1MCcsCiAgICAgICAgICAgICAgICAgICAgQ2hhbmdlZEJ5ICAgICAgICAgPT4gJzEnLAogICAgICAgICAgICAgICAgICAgIENyZWF0ZWQgICAgICAgICAgID0+ICcyMDExLTAxLTA1IDIxOjUzOjUwJywKICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICAgICA9PiAnMTI5NDI4NjAzMC0zMS4xNjk3Mjk3MTA0NzMyJywgICMgRkFRIEFydGljbGUgbmFtZSBvcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBzeXN0ZW10aW1lICsgJy0nICsgcmFuZG9tIG51bWJlcgogICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlICAgICAgID0+ICd0ZXh0L2h0bWwnLAogICAgICAgICAgICAgICAgICAgIEF0dGFjaG1lbnQgPT4gewogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWxlc2l6ZSAgICA9PiAnNTQwMjg2JywgICAgICAgICAgICAgICAgIyBmaWxlIHNpemUgaW4gYnl0ZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICdpbWFnZS9qcGVnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbGVuYW1lICAgID0+ICdFcnJvci5qcGcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudCAgICAgPT4gJy4uLicsICAgICAgICAgICAgICAgICAgICMgYmFzZTY0IGNvbnRlbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElubGluZSAgICAgID0+IDAsICAgICAgICAgICAgICAgICAgICAgICAjIHNwZWNpZnkgaWYgaXMgYW4gaW5saW5lIGF0dGFjaG1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbGVJRCAgICAgID0+IDM0ICAgICAgICAgICAgICAgICAgICAgICAjIEZpbGVJRCBmb3IgcmVsYXRpb24gd2l0aCByaWNoIHRleHQgY29udGVudAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWxlc2l6ZSAgICA9PiAnNTQwMjg2JywgICAgICAgICAgICAgICAgIyBmaWxlIHNpemUgaW4gYnl0ZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICdpbWFnZS9qcGVnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbGVuYW1lICAgID0+ICdQZW5jaWwuanBnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgICAgID0+ICcuLi4nLCAgICAgICAgICAgICAgICAgICAjIGJhc2U2NCBjb250ZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmxpbmUgICAgICA9PiAxLCAgICAgICAgICAgICAgICAgICAgICAgIyBzcGVjaWZ5IGlmIGlzIGFuIGlubGluZSBhdHRhY2htZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWxlSUQgICAgICA9PiAzNSAgICAgICAgICAgICAgICAgICAgICAgIyBGaWxlSUQgZm9yIHJlbGF0aW9uIHdpdGggcmljaCB0ZXh0IGNvbnRlbnQKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJRCAgICAgICAgICAgICAgICA9PiAzMywKICAgICAgICAgICAgICAgICAgICBJdGVtSUQgICAgICAgICAgICA9PiAzMywKICAgICAgICAgICAgICAgICAgICBGQVFJRCAgICAgICAgICAgICA9PiAzMywKICAgICAgICAgICAgICAgICAgICBOdW1iZXIgICAgICAgICAgICA9PiAxMDAwMzMsCiAgICAgICAgICAgICAgICAgICAgQ2F0ZWdvcnlJRCAgICAgICAgPT4gJzMnLAogICAgICAgICAgICAgICAgICAgIENhdGVnb3J5TmFtZSAgICAgPT4gJ0NhdGVnb3J5RDo6Q2F0ZWdvcnlFJywKICAgICAgICAgICAgICAgICAgICBDYXRlZ29yeVNob3J0TmFtZSA9PiAnQ2F0ZWdvcnlFJywKICAgICAgICAgICAgICAgICAgICBMYW5ndWFnZUlEICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgICAgIExhbmd1YWdlICAgICAgICAgID0+ICdlbicsCiAgICAgICAgICAgICAgICAgICAgVGl0bGUgICAgICAgICAgICAgPT4gJ0FydGljbGUgVGl0bGUnLAogICAgICAgICAgICAgICAgICAgIEZpZWxkMSAgICAgICAgICAgID0+ICdUaGUgU3ltcHRvbXMnLAogICAgICAgICAgICAgICAgICAgIEZpZWxkMiAgICAgICAgICAgID0+ICdUaGUgUHJvYmxlbScsCiAgICAgICAgICAgICAgICAgICAgRmllbGQzICAgICAgICAgICAgPT4gJ1RoZSBTb2x1dGlvbicsCiAgICAgICAgICAgICAgICAgICAgRmllbGQ0ICAgICAgICAgICAgPT4gdW5kZWYsICAgICAgICAgICAgICAgICAgICAgICAgICAjIE5vdCBhY3RpdmUgYnkgZGVmYXVsdAogICAgICAgICAgICAgICAgICAgIEZpZWxkNSAgICAgICAgICAgID0+IHVuZGVmLCAgICAgICAgICAgICAgICAgICAgICAgICAgIyBOb3QgYWN0aXZlIGJ5IGRlZmF1bHQKICAgICAgICAgICAgICAgICAgICBGaWVsZDYgICAgICAgICAgICA9PiAnQ29tbWVudHMnLAogICAgICAgICAgICAgICAgICAgIEFwcHJvdmVkICAgICAgICAgID0+IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvciAwCiAgICAgICAgICAgICAgICAgICAgS2V5d29yZHMgICAgICAgICAgPT4gJ0tleVdvcmQxIEtleVdvcmQyJywKICAgICAgICAgICAgICAgICAgICBWb3RlcyAgICAgICAgICAgICA9PiAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgbnVtYmVyIG9mIHZvdGVzCiAgICAgICAgICAgICAgICAgICAgVm90ZVJlc3VsdCAgICAgICAgPT4gJzAuMDAnLCAgICAgICAgICAgICAgICAgICAgICAgICAjIGEgbnVtYmVyIGJldHdlZW4gMC4wMCBhbmQgMTAwLjAwCiAgICAgICAgICAgICAgICAgICAgU3RhdGVJRCAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgICAgICBTdGF0ZSAgICAgICAgICAgICA9PiAnaW50ZXJuYWwgKGFnZW50KScsICAgICAgICAgICAgICMgb3IgJ2V4dGVybmFsIChjdXN0b21lciknIG9yCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICdwdWJsaWMgKGFsbCknCiAgICAgICAgICAgICAgICAgICAgU3RhdGVUeXBlSUQgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgICAgICBTdGF0ZVR5cGVOYW1lICAgICA9PiAnaW50ZXJuYWwnLCAgICAgICAgICAgICAgICAgICAgICMgb3IgJ2V4dGVybmFsJyBvciAncHVibGljJwogICAgICAgICAgICAgICAgICAgIENyZWF0ZWRCeSAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICAgICAgQ2hhbmdlZCAgICAgICAgICA9PiAnMjAxMS0wMS0wNSAyMTo1Mzo1MCcsCiAgICAgICAgICAgICAgICAgICAgQ2hhbmdlZEJ5ICAgICAgICAgPT4gJzEnLAogICAgICAgICAgICAgICAgICAgIENyZWF0ZWQgICAgICAgICAgID0+ICcyMDExLTAxLTA1IDIxOjUzOjUwJywKICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICAgICA9PiAnMTI5NDI4NjAzMC0zMS4xNjk3Mjk3MTA0NzMyJywgICMgRkFRIEFydGljbGUgbmFtZSBvcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBzeXN0ZW10aW1lICsgJy0nICsgcmFuZG9tIG51bWJlcgogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICMgLi4uCiAgICAgICAgICAgIF0sCiAgICAgICAgfSwKICAgIH07Cgo9Y3V0CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgaWYgKCAhJFBhcmFte0RhdGF9LT57SXRlbUlEfSApIHsKCiAgICAgICAgcmV0dXJuICRTZWxmLT5SZXR1cm5FcnJvcigKICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdQdWJsaWNGQVFHZXQuTWlzc2luZ1BhcmFtZXRlcicsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiUHVibGljRkFRR2V0OiBHb3Qgbm8gSXRlbUlEISIsCiAgICAgICAgKTsKICAgIH0KICAgIGlmICggIWRlZmluZWQoICRQYXJhbXtEYXRhfS0+e0dldEF0dGFjaG1lbnRDb250ZW50c30gKSApIHsKICAgICAgICAkUGFyYW17RGF0YX0tPntHZXRBdHRhY2htZW50Q29udGVudHN9ID0gMTsKICAgIH0KCiAgICBteSAkRXJyb3JNZXNzYWdlID0gJyc7CgogICAgbXkgJFJldHVybkRhdGEgPSB7CiAgICAgICAgU3VjY2VzcyA9PiAxLAogICAgfTsKCiAgICBteSBASXRlbUlEcyA9IHNwbGl0KCAvLC8sICRQYXJhbXtEYXRhfS0+e0l0ZW1JRH0gKTsKICAgIG15IEBJdGVtOwoKICAgICMgU2V0IFVzZXJJRCB0byByb290IGJlY2F1c2UgaW4gcHVibGljIGludGVyZmFjZSB0aGVyZSBpcyBubyB1c2VyLgogICAgbXkgJFVzZXJJRCA9IDE7CgogICAgbXkgJEZBUU9iamVjdCAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpGQVEnKTsKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICMgR2V0IHB1YmxpYyBzdGF0ZSB0eXBlcy4KICAgIG15ICRJbnRlcmZhY2VTdGF0ZXMgPSAkRkFRT2JqZWN0LT5TdGF0ZVR5cGVMaXN0KAogICAgICAgIFR5cGVzICA9PiAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6UHVibGljOjpTdGF0ZVR5cGVzJyksCiAgICAgICAgVXNlcklEID0+ICRVc2VySUQsCiAgICApOwoKICAgIGZvciBteSAkSXRlbUlEIChASXRlbUlEcykgewoKICAgICAgICBteSAlRkFRRW50cnkgPSAkRkFRT2JqZWN0LT5GQVFHZXQoCiAgICAgICAgICAgIEl0ZW1JRCAgICAgPT4gJEl0ZW1JRCwKICAgICAgICAgICAgSXRlbUZpZWxkcyA9PiAxLAogICAgICAgICAgICBVc2VySUQgICAgID0+ICRVc2VySUQsCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoIFwlRkFRRW50cnkgKSApIHsKCiAgICAgICAgICAgICRFcnJvck1lc3NhZ2UgPSAnQ291bGQgbm90IGdldCBGQVEgZGF0YScKICAgICAgICAgICAgICAgIC4gJyBpbiBLZXJuZWw6OkdlbmVyaWNJbnRlcmZhY2U6Ok9wZXJhdGlvbjo6RkFROjpQdWJsaWNGQVFHZXQ6OlJ1bigpJzsKCiAgICAgICAgICAgIHJldHVybiAkU2VsZi0+UmV0dXJuRXJyb3IoCiAgICAgICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1B1YmxpY0ZBUUdldC5Ob3RWYWxpZEZBUUlEJywKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiUHVibGljRkFRR2V0OiAkRXJyb3JNZXNzYWdlIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgQ2hlY2sgcGVybWlzc2lvbnMuCiAgICAgICAgbXkgJEFwcHJvdmFsU3VjY2VzcyA9IDE7CiAgICAgICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6QXBwcm92YWxSZXF1aXJlZCcpICkgewogICAgICAgICAgICAkQXBwcm92YWxTdWNjZXNzID0gJEZBUUVudHJ5e0FwcHJvdmVkfTsKICAgICAgICB9CiAgICAgICAgaWYgKCAhJEFwcHJvdmFsU3VjY2VzcyB8fCAhJEludGVyZmFjZVN0YXRlcy0+eyAkRkFRRW50cnl7U3RhdGVUeXBlSUR9IH0gKSB7CgogICAgICAgICAgICAkRXJyb3JNZXNzYWdlID0gJ0NvdWxkIG5vdCBnZXQgRkFRIGRhdGEnCiAgICAgICAgICAgICAgICAuICcgaW4gS2VybmVsOjpHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb246OkZBUTo6UHVibGljRkFRR2V0OjpSdW4oKSc7CgogICAgICAgICAgICByZXR1cm4gJFNlbGYtPlJldHVybkVycm9yKAogICAgICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdQdWJsaWNGQVFHZXQuQWNjZXNzRGVuaWVkJywKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiUHVibGljRkFRR2V0OiAkRXJyb3JNZXNzYWdlIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIG15IEBJbmRleCA9ICRGQVFPYmplY3QtPkF0dGFjaG1lbnRJbmRleCgKICAgICAgICAgICAgSXRlbUlEICAgICA9PiAkSXRlbUlELAogICAgICAgICAgICBTaG93SW5saW5lID0+IDEsICAgICAgICAgIyAgICggMHwxLCBkZWZhdWx0IDEpCiAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gJFVzZXJJRCwKICAgICAgICApOwoKICAgICAgICBteSAlRmlsZTsKICAgICAgICBpZiAoIElzQXJyYXlSZWZXaXRoRGF0YSggXEBJbmRleCApICkgewoKICAgICAgICAgICAgbXkgQEF0dGFjaG1lbnRzOwogICAgICAgICAgICBmb3IgbXkgJEF0dGFjaG1lbnQgKEBJbmRleCkgewoKICAgICAgICAgICAgICAgIGlmICggJFBhcmFte0RhdGF9LT57R2V0QXR0YWNobWVudENvbnRlbnRzfSApIHsKICAgICAgICAgICAgICAgICAgICAlRmlsZSA9ICRGQVFPYmplY3QtPkF0dGFjaG1lbnRHZXQoCiAgICAgICAgICAgICAgICAgICAgICAgIEl0ZW1JRCA9PiAkSXRlbUlELAogICAgICAgICAgICAgICAgICAgICAgICBGaWxlSUQgPT4gJEF0dGFjaG1lbnQtPntGaWxlSUR9LAogICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFVzZXJJRCwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAjIENvbnZlcnQgY29udGVudCB0byBiYXNlNjQuCiAgICAgICAgICAgICAgICAgICAgJEZpbGV7Q29udGVudH0gPSBlbmNvZGVfYmFzZTY0KCAkRmlsZXtDb250ZW50fSApOwogICAgICAgICAgICAgICAgICAgICRGaWxle0lubGluZX0gID0gJEF0dGFjaG1lbnQtPntJbmxpbmV9OwogICAgICAgICAgICAgICAgICAgICRGaWxle0ZpbGVJRH0gID0gJEF0dGFjaG1lbnQtPntGaWxlSUR9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJUZpbGUgPSAoCiAgICAgICAgICAgICAgICAgICAgICAgIEZpbGVuYW1lICAgID0+ICRBdHRhY2htZW50LT57RmlsZW5hbWV9LAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAkQXR0YWNobWVudC0+e0NvbnRlbnRUeXBlfSwKICAgICAgICAgICAgICAgICAgICAgICAgRmlsZXNpemUgICAgPT4gJEF0dGFjaG1lbnQtPntGaWxlc2l6ZX0sCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgICAgID0+ICcnLAogICAgICAgICAgICAgICAgICAgICAgICBJbmxpbmUgICAgICA9PiAkQXR0YWNobWVudC0+e0lubGluZX0sCiAgICAgICAgICAgICAgICAgICAgICAgIEZpbGVJRCAgICAgID0+ICRBdHRhY2htZW50LT57RmlsZUlEfQogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBwdXNoIEBBdHRhY2htZW50cywgeyVGaWxlfTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBTZXQgRkFRIGVudHJ5IGRhdGEuCiAgICAgICAgICAgICRGQVFFbnRyeXtBdHRhY2htZW50fSA9IFxAQXR0YWNobWVudHM7CiAgICAgICAgfQoKICAgICAgICBwdXNoIEBJdGVtLCBcJUZBUUVudHJ5OwogICAgfQoKICAgIGlmICggIXNjYWxhciBASXRlbSApIHsKICAgICAgICAkRXJyb3JNZXNzYWdlID0gJ0NvdWxkIG5vdCBnZXQgRkFRIGRhdGEnCiAgICAgICAgICAgIC4gJyBpbiBLZXJuZWw6OkdlbmVyaWNJbnRlcmZhY2U6Ok9wZXJhdGlvbjo6RkFROjpQdWJsaWNGQVFHZXQ6OlJ1bigpJzsKCiAgICAgICAgcmV0dXJuICRTZWxmLT5SZXR1cm5FcnJvcigKICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdQdWJsaWNGQVFHZXQuTm9GQVFEYXRhJywKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJQdWJsaWNGQVFHZXQ6ICRFcnJvck1lc3NhZ2UiLAogICAgICAgICk7CgogICAgfQoKICAgICRSZXR1cm5EYXRhLT57RGF0YX0tPntGQVFJdGVtfSA9IFxASXRlbTsKCiAgICByZXR1cm4gJFJldHVybkRhdGE7Cn0KCjE7Cgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RPQk8gcHJvamVjdCAoTDxodHRwczovL290b2JvLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0Pi4KCj1jdXQK</File>
        <File Location="Kernel/Language/da_FAQ.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmRhX0ZBUTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRQWRkCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIEFydGljbGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnS2V5d29yZHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRlZ29yeSBpcyByZXF1aXJlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwcm92YWwnfSA9ICdHb2RrZW5kdCc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFDYXRlZ29yeQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIENhdGVnb3J5IE1hbmFnZW1lbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEZBUSBDYXRlZ29yeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEZBUSBDYXRlZ29yeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgY2F0ZWdvcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENhdGVnb3J5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ2F0ZWdvcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3ViY2F0ZWdvcnkgb2YnfSA9ICdVbmRlcmthdGVnb3JpIGFmJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYXQgbGVhc3Qgb25lIHBlcm1pc3Npb24gZ3JvdXAuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGdyb3VwcyB0aGF0IGNhbiBhY2Nlc3MgYXJ0aWNsZXMgaW4gdGhpcyBjYXRlZ29yeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2lsbCBiZSBzaG93biBhcyBjb21tZW50IGluIEV4cGxvcmVyLid9ID0gJ1ZpbCBibGl2ZSB2aXN0IHNvbSBrb21tZW50YXIgaSBFeHBsb3JlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY2F0ZWdvcnk/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gbm90IGRlbGV0ZSB0aGlzIGNhdGVnb3J5LiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBGQVEgYXJ0aWNsZSBhbmQvb3IgaXMgcGFyZW50IG9mIGF0IGxlYXN0IG9uZSBvdGhlciBjYXRlZ29yeSd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY2F0ZWdvcnkgaXMgdXNlZCBpbiB0aGUgZm9sbG93aW5nIEZBUSBhcnRpY2xlKHMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY2F0ZWdvcnkgaXMgcGFyZW50IG9mIHRoZSBmb2xsb3dpbmcgc3ViY2F0ZWdvcmllcyd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFEZWxldGUKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBGQVEgYXJ0aWNsZT8nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUV4cGxvcmVyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgRXhwbG9yZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVpY2sgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dpbGRjYXJkcyBhcmUgYWxsb3dlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWR2YW5jZWQgU2VhcmNoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1YmNhdGVnb3JpZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHN1YmNhdGVnb3JpZXMgZm91bmQuJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUhpc3RvcnkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YnfSA9ICdIaXN0b3JpayBhZic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IENvbnRlbnQnfSA9ICdIaXN0b3Jpayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGV0aW1lJ30gPSAnT3ByZXR0ZWxzZXN0aWQnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRSm91cm5hbE92ZXJ2aWV3U21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEZBUSBKb3VybmFsIGRhdGEgZm91bmQuJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUxhbmd1YWdlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgTGFuZ3VhZ2UgTWFuYWdlbWVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIExhbmd1YWdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgRkFRIExhbmd1YWdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZSB0aGlzIGZlYXR1cmUgaWYgeW91IHdhbnQgdG8gd29yayB3aXRoIG11bHRpcGxlIGxhbmd1YWdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbGFuZ3VhZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIExhbmd1YWdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgTGFuZ3VhZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgbGFuZ3VhZ2UuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIEZBUSBhcnRpY2xlISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbGFuZ3VhZ2UgaXMgdXNlZCBpbiB0aGUgZm9sbG93aW5nIEZBUSBBcnRpY2xlKHMpJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUU92ZXJ2aWV3TmF2QmFyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBhcnRpY2xlcyBwZXIgcGFnZSd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFPdmVydmlld1NtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBGQVEgZGF0YSBmb3VuZC4nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRUmVsYXRlZEFydGljbGVzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydvdXQgb2YgNSd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFTZWFyY2gKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0tleXdvcmQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSAoZS4gZy4gRXF1YWxzIDEwIG9yIEdyZWF0ZXJUaGFuIDYwKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRlIChlLiBnLiBFcXVhbHMgMjUlIG9yIEdyZWF0ZXJUaGFuIDc1JSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwcm92ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkIGJ5J30gPSAnU2lkc3Qgw6ZuZHJldCBhZic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDcmVhdGUgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDcmVhdGUgVGltZSAoYmV0d2VlbiknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ2hhbmdlIFRpbWUgKGJlZm9yZS9hZnRlciknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ2hhbmdlIFRpbWUgKGJldHdlZW4pJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVNlYXJjaE9wZW5TZWFyY2hEZXNjcmlwdGlvbkZ1bGx0ZXh0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVFGdWxsdGV4dCd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFTZWFyY2hTbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9maWxlIFNlbGVjdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWb3RlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHZvdGUgc2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWMgdm90ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZS4gZy4gRXF1YWxzIDEwIG9yIEdyZWF0ZXJUaGFuIDYwJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gcmF0ZSBzZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpYyByYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuIGcuIEVxdWFscyAyNSUgb3IgR3JlYXRlclRoYW4gNzUlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENyZWF0ZSBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENoYW5nZSBUaW1lJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVpvb20KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJbmZvcm1hdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZXMnfSA9ICdTdGVtbWVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHZvdGVzIGZvdW5kISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB2b3RlcyBmb3VuZCEgQmUgdGhlIGZpcnN0IG9uZSB0byByYXRlIHRoaXMgRkFRIGFydGljbGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Rvd25sb2FkIEF0dGFjaG1lbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gb3BlbiBsaW5rcyBpbiB0aGUgZm9sbG93aW5nIGRlc2NyaXB0aW9uIGJsb2NrcywgeW91IG1pZ2h0IG5lZWQgdG8gcHJlc3MgQ3RybCBvciBDbWQgb3IgU2hpZnQga2V5IHdoaWxlIGNsaWNraW5nIHRoZSBsaW5rIChkZXBlbmRpbmcgb24geW91ciBicm93c2VyIGFuZCBPUykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG93IGhlbHBmdWwgd2FzIHRoaXMgYXJ0aWNsZT8gUGxlYXNlIGdpdmUgdXMgeW91ciByYXRpbmcgYW5kIGhlbHAgdG8gaW1wcm92ZSB0aGUgRkFRIERhdGFiYXNlLiBUaGFuayBZb3UhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnbm90IGhlbHBmdWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndmVyeSBoZWxwZnVsJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVpvb21TbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEZBUSB0aXRsZSB0byBhcnRpY2xlIHN1YmplY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZBUSBUZXh0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGdWxsIEZBUSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRkFRIExpbmsnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZBUSBUZXh0ICYgTGluayd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRnVsbCBGQVEgJiBMaW5rJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBDdXN0b21lckZBUUV4cGxvcmVyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXRlc3QgdXBkYXRlZCBGQVEgYXJ0aWNsZXMnfSA9ICdTaWRzdCDDpm5kcmVkZSBhcnRpa2xlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBGQVEgYXJ0aWNsZXMgZm91bmQuJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBDdXN0b21lckZBUVJlbGF0ZWRBcnRpY2xlcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtaWdodCBiZSBoZWxwZnVsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvdW5kIG5vIGhlbHBmdWwgcmVzb3VyY2VzIGZvciB0aGUgc3ViamVjdCBhbmQgdGV4dC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZSBhIHN1YmplY3Qgb3IgdGV4dCB0byBnZXQgYSBsaXN0IG9mIGhlbHBmdWwgcmVzb3VyY2VzLid9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQ3VzdG9tZXJGQVFTZWFyY2gKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bGx0ZXh0IHNlYXJjaCBpbiBGQVEgYXJ0aWNsZXMgKGUuIGcuICJKb2huKm4iIG9yICJXaWxsKiIpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGUgcmVzdHJpY3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgRkFRIGFydGljbGVzIHdpdGggdm90ZXMuLi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0ZSByZXN0cmljdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSBGQVEgYXJ0aWNsZXMgd2l0aCByYXRlLi4uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVzdHJpY3Rpb25zJ30gPSAnVGlkc2JlZ3LDpm5zbmluZ2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgRkFRIGFydGljbGVzIGNyZWF0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSBGQVEgYXJ0aWNsZXMgY3JlYXRlZCBiZXR3ZWVuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaC1Qcm9maWxlIGFzIFRlbXBsYXRlPyd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQ3VzdG9tZXJGQVFab29tCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcnRpY2xlIE51bWJlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggZm9yIGFydGljbGVzIHdpdGgga2V5d29yZCd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogUHVibGljRkFRU2VhcmNoT3BlblNlYXJjaERlc2NyaXB0aW9uRkFRTnVtYmVyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMnfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IFB1YmxpY0ZBUVNlYXJjaFJlc3VsdFNob3J0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydCYWNrIHRvIEZBUSBFeHBsb3Jlcid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFBZGQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkIHJ3IHBlcm1pc3Npb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGNhdGVnb3JpZXMgZm91bmQgd2hlcmUgdXNlciBoYXMgcmVhZC93cml0ZSBwZXJtaXNzaW9ucyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGVmYXVsdCBsYW5ndWFnZSBmb3VuZCBhbmQgY2FuXCd0IGNyZWF0ZSBhIG5ldyBvbmUuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUNhdGVnb3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIENhdGVnb3J5SUQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgY2F0ZWdvcnkgc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGNhdGVnb3J5IGFscmVhZHkgZXhpc3RzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY2F0ZWdvcnkgYWxyZWFkeSBleGlzdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIENhdGVnb3J5SUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGNhdGVnb3J5ICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgY2F0ZWdvcnkgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGNhdGVnb3J5IGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQ2F0ZWdvcnknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBJdGVtSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIG5vIHBlcm1pc3Npb24gZm9yIHRoaXMgY2F0ZWdvcnkhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIEZBUSBhcnRpY2xlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFFeHBsb3Jlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIENhdGVnb3J5SUQgJXMgaXMgaW52YWxpZC4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRSGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gSXRlbUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSGlzdG9yeSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFKb3VybmFsLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSm91cm5hbCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIGNvbmZpZyBvcHRpb24gRkFROjpGcm9udGVuZDo6T3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlnIG9wdGlvbiBGQVE6OkZyb250ZW5kOjpPdmVydmlldyBuZWVkcyB0byBiZSBhIEhBU0ggcmVmISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGNvbmZpZyBvcHRpb24gZm91bmQgZm9yIHRoZSB2aWV3ICIlcyIhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUxhbmd1YWdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBMYW5ndWFnZUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgbmFtZSBpcyByZXF1aXJlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBsYW5ndWFnZSBhbHJlYWR5IGV4aXN0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgbGFuZ3VhZ2UgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBsYW5ndWFnZSB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgbGFuZ3VhZ2UgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBMYW5ndWFnZSAlcyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFQcmludC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzdWx0J30gPSAnUmVzdWx0YXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCB1cGRhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIER5bmFtaWMgRmllbGRzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUVJpY2hUZXh0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyAlcyBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGxvYWQgTGFuZ3VhZ2VPYmplY3QhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gUmVzdWx0ISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgTnVtYmVyJ30gPSAnRkFRIE51bW1lcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IENoYW5nZWQgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ3JlYXRlIFRpbWUgKGJlZm9yZS9hZnRlciknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ3JlYXRlIFRpbWUgKGJldHdlZW4pJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJdGVtIENoYW5nZSBUaW1lIChiZWZvcmUvYWZ0ZXIpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJdGVtIENoYW5nZSBUaW1lIChiZXR3ZWVuKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcXVhbHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JlYXRlciB0aGFuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyZWF0ZXIgdGhhbiBlcXVhbHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU21hbGxlciB0aGFuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NtYWxsZXIgdGhhbiBlcXVhbHMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRWm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBGaWxlSUQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoYW5rcyBmb3IgeW91ciB2b3RlISd9ID0gJ1RhayBmb3IgZGluIHN0ZW1tZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgYWxyZWFkeSB2b3RlZCEnfSA9ICdEdSBoYXIgYWxsZXJlZGUgc3RlbXQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHJhdGUgc2VsZWN0ZWQhJ30gPSAnSW5nZW4gcmF0ZSB2YWxndCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHZvdGluZyBtZWNoYW5pc20gaXMgbm90IGVuYWJsZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB2b3RlIHJhdGUgaXMgbm90IGRlZmluZWQhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9DdXN0b21lckZBUVByaW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBQcmludCd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQ3VzdG9tZXJGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZWQgYmV0d2Vlbid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQ3VzdG9tZXJGQVFab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIEl0ZW1JRCEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL1B1YmxpY0ZBUUV4cGxvcmVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZXMgKG5ldyBjcmVhdGVkKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZXMgKHJlY2VudGx5IGNoYW5nZWQpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlcyAoVG9wIDEwKSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvUHVibGljRkFRUlNTLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBUeXBlIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlIG11c3QgYmUgZWl0aGVyIExhc3RDcmVhdGUgb3IgTGFzdENoYW5nZSBvciBUb3AxMCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBSU1MgZmlsZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9IZWFkZXJNZXRhL0FnZW50RkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoRkFRRnVsbHRleHQpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvSGVhZGVyTWV0YS9DdXN0b21lckZBUVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgLSBDdXN0b21lciAoJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gQ3VzdG9tZXIgKEZBUUZ1bGx0ZXh0KSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0hlYWRlck1ldGEvUHVibGljRkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAtIFB1YmxpYyAoJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gUHVibGljIChGQVFGdWxsdGV4dCknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9MYXlvdXQvRkFRLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIHJhdGUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgYXJ0aWNsZSBpcyBlbXB0eSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGF0ZXN0IGNyZWF0ZWQgRkFRIGFydGljbGVzJ30gPSAnTnllc3RlIGFydGlrbGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvcCAxMCBGQVEgYXJ0aWNsZXMnfSA9ICdUb3AgMTAgYXJ0aWtsZXInOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9MaW5rT2JqZWN0L0ZBUS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29udGVudCBUeXBlJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0R5bmFtaWNGaWVsZC9Ecml2ZXIvRkFRLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgdGhlIGF0dHJpYnV0ZSB3aGljaCBGQVFzIHdpbGwgYmUgc2VhcmNoZWQgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXh0ZXJuYWwtc291cmNlIGtleSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgdGhlIHR5cGUgb2YgZGlzcGxheSd9ID0gJyc7CgogICAgIyBEYXRhYmFzZSBYTUwgLyBTT1BNIERlZmluaXRpb246IEZBUS5zb3BtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpbnRlcm5hbCd9ID0gJ2ludGVybic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydleHRlcm5hbCd9ID0gJ2Vrc3Rlcm4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncHVibGljJ30gPSAnb2ZmZW50bGlnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBmaWx0ZXIgZm9yIEhUTUwgb3V0cHV0IHRvIGFkZCBsaW5rcyBiZWhpbmQgYSBkZWZpbmVkIHN0cmluZy4gVGhlIGVsZW1lbnQgSW1hZ2UgYWxsb3dzIHR3byBpbnB1dCBraW5kcy4gRmlyc3QgdGhlIG5hbWUgb2YgYW4gaW1hZ2UgKGUuZy4gZmFxLnBuZykuIEluIHRoaXMgY2FzZSB0aGUgT1RPQk8gaW1hZ2UgcGF0aCB3aWxsIGJlIHVzZWQuIFRoZSBzZWNvbmQgcG9zc2liaWxpdHkgaXMgdG8gaW5zZXJ0IHRoZSBsaW5rIHRvIHRoZSBpbWFnZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIGFydGljbGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ1NTIGNvbG9yIGZvciB0aGUgdm90aW5nIHJlc3VsdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgVGltZSBUbyBMZWF2ZSBmb3IgRkFRIGl0ZW1zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSBNYW5hZ2VtZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGVnb3J5IE1hbmFnZW1lbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBQcmludC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIFJlbGF0ZWQgQXJ0aWNsZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIFJlbGF0ZWQgQXJ0aWNsZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgc2VhcmNoLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlY2ltYWwgcGxhY2VzIG9mIHRoZSB2b3RpbmcgcmVzdWx0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IGNhdGVnb3J5IG5hbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbGFuZ3VhZ2UgZm9yIEZBUSBhcnRpY2xlcyBvbiBzaW5nbGUgbGFuZ3VhZ2UgbW9kZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBtYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgcHJpb3JpdHkgb2YgdGlja2V0cyBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXRlIGZvciBGQVEgZW50cnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdGUgb2YgdGlja2V0cyBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCB0eXBlIG9mIHRpY2tldHMgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgdmFsdWUgZm9yIHRoZSBBY3Rpb24gcGFyYW1ldGVyIGZvciB0aGUgcHVibGljIGZyb250ZW5kLiBUaGUgQWN0aW9uIHBhcmFtZXRlciBpcyB1c2VkIGluIHRoZSBzY3JpcHRzIG9mIHRoZSBzeXN0ZW0uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIEFjdGlvbnMgd2hlcmUgYSBzZXR0aW5ncyBidXR0b24gaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rZWQgb2JqZWN0cyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gUGxlYXNlIG5vdGUgdGhhdCB0aGVzZSBBY3Rpb25zIG11c3QgaGF2ZSByZWdpc3RlcmVkIHRoZSBmb2xsb3dpbmcgSlMgYW5kIENTUyBmaWxlczogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgYW5kIENvcmUuQWdlbnQuTGlua09iamVjdC5qcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgaWYgdGhlIEZBUSB0aXRsZSBzaG91bGQgYmUgY29uY2F0ZW5hdGVkIHRvIGFydGljbGUgc3ViamVjdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBGQVFzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IEZBUSBhdHRyaWJ1dGVzIGFuZCBkeW5hbWljIGZpZWxkcyAoRHluYW1pY0ZpZWxkX05hbWVYKSBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIEZBUSBqb3VybmFsLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBGQVEgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIGEgRkFRIHNlYXJjaCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gYSBGQVEgc2VhcmNoIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiBhIEZBUSBzZWFyY2ggb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzaG93biBGQVEgc2VhcmNoIGF0dHJpYnV0ZSBmb3IgRkFRIHNlYXJjaCBzY3JlZW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaGVpZ2h0IGZvciB0aGUgcmljaCB0ZXh0IGVkaXRvciBjb21wb25lbnQgZm9yIHRoaXMgc2NyZWVuLiBFbnRlciBudW1iZXIgKHBpeGVscykgb3IgcGVyY2VudCB2YWx1ZSAocmVsYXRpdmUpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGluZm9ybWF0aW9uIHRvIGJlIGluc2VydGVkIGluIGEgRkFRIGJhc2VkIFRpY2tldC4gIkZ1bGwgRkFRIiBpbmNsdWRlcyB0ZXh0LCBhdHRhY2htZW50cyBhbmQgaW5saW5lIGltYWdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZGFzaGJvYXJkIGJhY2tlbmQuICJMaW1pdCIgZGVmaW5lcyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgZGlzcGxheWVkIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCBhY2Nlc3MgdG8gdGhlIHBsdWdpbiAoZS4gZy4gR3JvdXA6IGFkbWluO2dyb3VwMTtncm91cDI7KS4gIkRlZmF1bHQiIGluZGljYXRlcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgRkFRIEV4cGxvcmVyLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIEZBUSBqb3VybmFsLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIEZBUSBzZWFyY2guIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB3aGVyZSB0aGUgXCdJbnNlcnQgRkFRXCcgbGluayB3aWxsIGJlIGRpc3BsYXllZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5pdGlvbiBvZiBGQVEgaXRlbSBmcmVlIHRleHQgZmllbGQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGlzIEZBUSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBvdmVydmlldyBzY3JlZW4gb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIG92ZXJ2aWV3IHNjcmVlbiBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHByaW50IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgcHJpbnQgc2NyZWVuIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBwcmludCBzY3JlZW4gb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBzZWFyY2ggc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBzZWFyY2ggc2NyZWVuIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBzZWFyY2ggc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc21hbGwgZm9ybWF0IG92ZXJ2aWV3IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHpvb20gc2NyZWVuIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSB6b29tIHNjcmVlbiBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoaXMgRkFRJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSBtdWx0aXBsZSBsYW5ndWFnZXMgb24gRkFRIG1vZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHNlcnZpY2UgYXNzaWdubWVudCBmb3IgRkFRcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHRoZSByZWxhdGVkIGFydGljbGUgZmVhdHVyZSBmb3IgdGhlIGN1c3RvbWVyIGZyb250ZW5kLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB2b3RpbmcgbWVjaGFuaXNtIG9uIEZBUSBtb2R1bGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4cGxvcmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBSkFYIFJlc3BvbmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQUpBWCBSZXNwb25kZXIgZm9yIFJpY2h0ZXh0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJlYSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJlYS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIERlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBIaXN0b3J5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSm91cm5hbCBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBQcmludC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIHNlYXJjaCBiYWNrZW5kIHJvdXRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWVsZDQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmllbGQ1J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bGwgRkFRJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mIHRoaXMgRkFRJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGFjdGl2YXRlZCwgRkFRIGFydGljbGVzIG9mIHN0YXR1cyB0eXBlIGludGVybmFsIGFyZSBhbHNvIHRha2VuIGludG8gYWNjb3VudCBmb3IgdGhlIGFwcHJvdmFsIHByb2Nlc3MuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jbHVkZSBpbnRlcm5hbCBmaWVsZHMgb24gYSBGQVEgYmFzZWQgVGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNsdWRlIHRoZSBuYW1lIG9mIGVhY2ggZmllbGQgaW4gYSBGQVEgYmFzZWQgVGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnRlcmZhY2VzIHdoZXJlIHRoZSBxdWljayBzZWFyY2ggc2hvdWxkIGJlIHNob3duLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydKb3VybmFsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhbmd1YWdlIE1hbmFnZW1lbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFuZ3VhZ2UgTWFuYWdlbWVudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGltaXQgZm9yIHRoZSBzZWFyY2ggdG8gYnVpbGQgdGhlIGtleXdvcmQgRkFRIGFydGljbGUgbGlzdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayBhbm90aGVyIG9iamVjdCB0byB0aGlzIEZBUSBpdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2YgcXVldWUgbmFtZXMgZm9yIHdoaWNoIHRoZSByZWxhdGVkIGFydGljbGUgZmVhdHVyZSBpcyBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2Ygc3RhdGUgdHlwZXMgd2hpY2ggY2FuIGJlIHVzZWQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIHN0YXRlIHR5cGVzIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBzdGF0ZSB0eXBlcyB3aGljaCBjYW4gYmUgdXNlZCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb2FkZXIgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgam91cm5hbCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHJlc3VsdCBvZiBhIHNlYXJjaCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHJlc3VsdCBvZiBhIHNlYXJjaCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHJlc3VsdCBvZiBhIHNlYXJjaCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgRXhwbG9yZXIgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgRXhwbG9yZXIgaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgRXhwbG9yZXIgaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIFNlYXJjaCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBTZWFyY2ggaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgU2VhcmNoIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBqb3VybmFsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGdlbmVyYXRlIEhUTUwgT3BlblNlYXJjaCBwcm9maWxlIGZvciBzaG9ydCBGQVEgc2VhcmNoIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGdlbmVyYXRlIEhUTUwgT3BlblNlYXJjaCBwcm9maWxlIGZvciBzaG9ydCBGQVEgc2VhcmNoIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBnZW5lcmF0ZSBodG1sIE9wZW5TZWFyY2ggcHJvZmlsZSBmb3Igc2hvcnQgRkFRIHNlYXJjaC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgRkFRIEFydGljbGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBGQVEgYXJ0aWNsZXMgbmVlZCBhcHByb3ZhbCBiZWZvcmUgdGhleSBnZXQgcHVibGlzaGVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBvbiBlYWNoIHBhZ2Ugb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgb24gZWFjaCBwYWdlIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2Ygc2hvd24gaXRlbXMgaW4gbGFzdCBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2Ygc2hvd24gaXRlbXMgaW4gbGFzdCBjcmVhdGVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2Ygc2hvd24gaXRlbXMgaW4gdGhlIHRvcCAxMCBmZWF0dXJlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdXRwdXQgZmlsdGVyIHRvIGFkZCBKYXZhLXNjcmlwdCB0byBDdXN0b21lclRpY2tldE1lc3NhZ2Ugc2NyZWVuLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J091dHB1dCBsaW1pdCBmb3IgdGhlIHJlbGF0ZWQgRkFRIGFydGljbGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBGQVEgaXRlbXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgRkFRIGpvdXJuYWwgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgRkFRIGl0ZW1zIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIEZBUSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGlzIEZBUSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRIFByaW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRIFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBGQVEgc2VhcmNoLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydRdWV1ZSBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0ZXMgZm9yIHZvdGluZy4gS2V5IG11c3QgYmUgaW4gcGVyY2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggRkFRJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBGQVEgU21hbGwuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBGQVEuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBob3cgbWFueSBpdGVtcyBzaG91bGQgYmUgc2hvd24gaW4gSm91cm5hbCBPdmVydmlldyAiU21hbGwiIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGhvdyBtYW55IGl0ZW1zIHNob3VsZCBiZSBzaG93biBpbiBPdmVydmlldyAiU21hbGwiIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBkZWZhdWx0IGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gQWdlbnRGQVFab29tLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZGVmYXVsdCBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEN1c3RvbWVyRkFRWm9vbSAoYW5kIFB1YmxpY0ZBUVpvb20pLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgbWF4aW11bSBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEFnZW50RkFRWm9vbS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBDdXN0b21lckZBUVpvb20gKGFuZCBQdWJsaWNGQVFab29tKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93ICJJbnNlcnQgRkFRIExpbmsiIEJ1dHRvbiBpbiBBZ2VudEZBUVpvb21TbWFsbCBmb3IgcHVibGljIEZBUSBBcnRpY2xlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93ICJJbnNlcnQgRkFRIFRleHQgJiBMaW5rIiAvICJJbnNlcnQgRnVsbCBGQVEgJiBMaW5rIiBCdXR0b24gaW4gQWdlbnRGQVFab29tU21hbGwgZm9yIHB1YmxpYyBGQVEgQXJ0aWNsZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyAiSW5zZXJ0IEZBUSBUZXh0IiAvICJJbnNlcnQgRnVsbCBGQVEiIEJ1dHRvbiBpbiBBZ2VudEZBUVpvb21TbWFsbC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IEZBUSBBcnRpY2xlIHdpdGggSFRNTC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBGQVEgcGF0aCB5ZXMvbm8uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgaW52YWxpZCBpdGVtcyBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgaXRlbXMgb2Ygc3ViY2F0ZWdvcmllcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBsYXN0IGNoYW5nZSBpdGVtcyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgbGFzdCBjcmVhdGVkIGl0ZW1zIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyByZWxhdGVkIGFydGljbGVzIG9uIHNlcnZpY2UgY2hhbmdlIGV2ZW4gd2l0aCBlbXB0eSBzdWJqZWN0IGFuZCBib2R5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgdGhlIHN0YXJzIGZvciB0aGUgYXJ0aWNsZXMgd2l0aCBhIHJhdGluZyBlcXVhbCBvciBncmVhdGVyIGxpa2UgdGhlIGRlZmluZWQgdmFsdWUgKHNldCB2YWx1ZSBcJzBcJyB0byBkZWFjdGl2YXRlIHRoZSBvdXRwdXQpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgdG9wIDEwIGl0ZW1zIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB2b3RpbmcgaW4gZGVmaW5lZCBpbnRlcmZhY2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIEZBUSB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSB6b29tIHZpZXcgb2Ygc3VjaCBGQVEgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgdG8gZGVsZXRlIGEgRkFRIGluIGl0cyB6b29tIHZpZXcgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBoaXN0b3J5IG9mIGEgRkFRIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZWRpdCBhIEZBUSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSBGQVEgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgRkFRIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU29sdXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3ltcHRvbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZXh0IE9ubHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGRlZmF1bHQgbGFuZ3VhZ2VzIGZvciB0aGUgcmVsYXRlZCBGQVEgYXJ0aWNsZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIEZBUSwgZS5nLiBGQVEjLCBLQiMsIE15RkFRIy4gVGhlIGRlZmF1bHQgaXMgRkFRIy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnRkFRXCcgb2JqZWN0cyB1c2luZyB0aGUgXCdOb3JtYWxcJyBsaW5rIHR5cGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBzZXR0aW5nIGRlZmluZXMgdGhhdCBhIFwnRkFRXCcgb2JqZWN0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciBcJ0ZBUVwnIG9iamVjdHMgdXNpbmcgdGhlIFwnUGFyZW50Q2hpbGRcJyBsaW5rIHR5cGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBzZXR0aW5nIGRlZmluZXMgdGhhdCBhIFwnRkFRXCcgb2JqZWN0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciBcJ1RpY2tldFwnIG9iamVjdHMgdXNpbmcgdGhlIFwnTm9ybWFsXCcgbGluayB0eXBlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBkZWZpbmVzIHRoYXQgYSBcJ0ZBUVwnIG9iamVjdCBjYW4gYmUgbGlua2VkIHdpdGggb3RoZXIgXCdUaWNrZXRcJyBvYmplY3RzIHVzaW5nIHRoZSBcJ1BhcmVudENoaWxkXCcgbGluayB0eXBlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBib2R5IGZvciBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IHN1YmplY3QgZm9yIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlLiBQZXJtaXR0ZWQgbm90aWZpY2F0aW9uIHRhZ3MgYXJlIDxPVE9CT19GQVFfTlVNQkVSPiwgPE9UT0JPX0ZBUV9DQVRFR09SWUlEPiwgPE9UT0JPX0ZBUV9JVEVNSUQ+PiA8T1RPQk9fRkFRX1RJVExFPiBhbmQgPE9UT0JPX0ZBUV9TVEFURUlEPi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb29sYmFyIEl0ZW0gZm9yIGEgc2hvcnRjdXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2V4dGVybmFsIChjdXN0b21lciknfSA9ICdla3N0ZXJuIChrdW5kZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW50ZXJuYWwgKGFnZW50KSd9ID0gJ2ludGVybiAoYWdlbnQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3B1YmxpYyAoYWxsKSd9ID0gJ29mZmVudGxpZyAoYWxsZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncHVibGljIChwdWJsaWMpJ30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnTm8nLAogICAgJ09rJywKICAgICdTZXR0aW5ncycsCiAgICAnU3VibWl0JywKICAgICdUaGlzIG1pZ2h0IGJlIGhlbHBmdWwnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK</File>
        <File Location="Kernel/Language/de_FAQ.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmRlX0ZBUTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRQWRkCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIEFydGljbGUnfSA9ICdGQVEtQXJ0aWtlbCBoaW56dWbDvGdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydLZXl3b3Jkcyd9ID0gJ1NjaGzDvHNzZWx3w7ZydGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgY2F0ZWdvcnkgaXMgcmVxdWlyZWQuJ30gPSAnRWluZSBLYXRlZ29yaWUgaXN0IGVyZm9yZGVybGljaC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwcm92YWwnfSA9ICdGcmVpZ2FiZSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFDYXRlZ29yeQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIENhdGVnb3J5IE1hbmFnZW1lbnQnfSA9ICdGQVEtS2F0ZWdvcmllbnZlcndhbHR1bmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEZBUSBDYXRlZ29yeSd9ID0gJ0ZBUS1LYXRlZ29yaWUgaGluenVmw7xnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBGQVEgQ2F0ZWdvcnknfSA9ICdGQVEtS2F0ZWdvcmllIGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGNhdGVnb3J5J30gPSAnS2F0ZWdvcmllIGhpbnp1ZsO8Z2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRlZ29yeSd9ID0gJ0thdGVnb3JpZSBoaW56dWbDvGdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENhdGVnb3J5J30gPSAnS2F0ZWdvcmllIGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3ViY2F0ZWdvcnkgb2YnfSA9ICdVbnRlcmthdGVnb3JpZSB2b24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhdCBsZWFzdCBvbmUgcGVybWlzc2lvbiBncm91cC4nfSA9ICdXw6RobGVuIFNpZSBtaW5kZXN0ZW5zIGVpbmUgQmVyZWNodGlndW5nc2dydXBwZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgZ3JvdXBzIHRoYXQgY2FuIGFjY2VzcyBhcnRpY2xlcyBpbiB0aGlzIGNhdGVnb3J5Lid9ID0gJ0FnZW50ZW4tR3J1cHBlbiwgZGllIGJlcmVjaHRpZ3Qgc2luZCwgYXVmIEZBUS1BcnRpa2VsIGluIGRpZXNlciBLYXRlZ29yaWUgenV6dWdyZWlmZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dpbGwgYmUgc2hvd24gYXMgY29tbWVudCBpbiBFeHBsb3Jlci4nfSA9ICdXaXJkIGltIEV4cGxvcmVyIGFscyBLb21tZW50YXIgYW5nZXplaWd0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY2F0ZWdvcnk/J30gPSAnV29sbGVuIFNpZSBkaWVzZSBLYXRlZ29yaWUgd2lya2xpY2ggbMO2c2NoZW4/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gbm90IGRlbGV0ZSB0aGlzIGNhdGVnb3J5LiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBGQVEgYXJ0aWNsZSBhbmQvb3IgaXMgcGFyZW50IG9mIGF0IGxlYXN0IG9uZSBvdGhlciBjYXRlZ29yeSd9ID0KICAgICAgICAnU2llIGvDtm5uZW4gZGllc2UgS2F0ZWdvcmllIG5pY2h0IGzDtnNjaGVuLiBTaWUgd2lyZCBpbiBtaW5kZXN0ZW5zIGVpbmVtIEZBUS1BcnRpa2VsIHZlcndlbmRldCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBjYXRlZ29yeSBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgRkFRIGFydGljbGUocyknfSA9ICdEaWVzZSBLYXRlZ29yaWUgd2lyZCBpbiBkZW4gZm9sZ2VuZGVuIEZBUS1BcnRpa2VsbiB2ZXJ3ZW5kZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBjYXRlZ29yeSBpcyBwYXJlbnQgb2YgdGhlIGZvbGxvd2luZyBzdWJjYXRlZ29yaWVzJ30gPSAnRGllc2UgS2F0ZWdvcmllIGlzdCBlaW5lIFVudGVya2F0ZWdvcmllIGbDvHIgZm9sZ2VuZGUgS2F0ZWdvcmllbic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFEZWxldGUKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBGQVEgYXJ0aWNsZT8nfSA9ICdXb2xsZW4gU2llIGRpZXNlbiBGQVEtQXJ0aWtlbCB3aXJrbGljaCBsw7ZzY2hlbj8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRJ30gPSAnRkFRJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUV4cGxvcmVyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgRXhwbG9yZXInfSA9ICdGQVEtRXhwbG9yZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVpY2sgU2VhcmNoJ30gPSAnU2NobmVsbHN1Y2hlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dpbGRjYXJkcyBhcmUgYWxsb3dlZC4nfSA9ICdXaWxkY2FyZHMgc2luZCBlcmxhdWJ0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZHZhbmNlZCBTZWFyY2gnfSA9ICdFcndlaXRlcnRlIFN1Y2hlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1YmNhdGVnb3JpZXMnfSA9ICdVbnRlcmthdGVnb3JpZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGVzJ30gPSAnRkFRLUFydGlrZWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gc3ViY2F0ZWdvcmllcyBmb3VuZC4nfSA9ICdLZWluZSBVbnRlcmthdGVnb3JpZW4gZ2VmdW5kZW4uJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUhpc3RvcnkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YnfSA9ICfDhG5kZXJ1bmdzdmVybGF1ZiB2b24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBDb250ZW50J30gPSAnw4RuZGVydW5nc3ZlcmxhdWYnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRldGltZSd9ID0gJ0Vyc3RlbGx0IGFtJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUpvdXJuYWxPdmVydmlld1NtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBGQVEgSm91cm5hbCBkYXRhIGZvdW5kLid9ID0gJ0tlaW5lIEZBUS1Kb3VybmFsZGF0ZW4gZ2VmdW5kZW4uJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUxhbmd1YWdlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgTGFuZ3VhZ2UgTWFuYWdlbWVudCd9ID0gJ0ZBUS1TcHJhY2hlbnZlcndhbHR1bmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEZBUSBMYW5ndWFnZSd9ID0gJ0ZBUS1TcHJhY2hlIGhpbnp1ZsO8Z2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgRkFRIExhbmd1YWdlJ30gPSAnRkFRLVNwcmFjaGUgYmVhcmJlaXRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2UgdGhpcyBmZWF0dXJlIGlmIHlvdSB3YW50IHRvIHdvcmsgd2l0aCBtdWx0aXBsZSBsYW5ndWFnZXMuJ30gPQogICAgICAgICdWZXJ3ZW5kZW4gU2llIGRpZXNlIEZ1bmt0aW9uLCB3ZW5uIFNpZSBtaXQgbWVocmVyZW4gU3ByYWNoZW4gYXJiZWl0ZW4gd29sbGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbGFuZ3VhZ2UnfSA9ICdTcHJhY2hlIGhpbnp1ZsO8Z2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBMYW5ndWFnZSd9ID0gJ1NwcmFjaGUgaGluenVmw7xnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBMYW5ndWFnZSd9ID0gJ1NwcmFjaGUgYmVhcmJlaXRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBsYW5ndWFnZS4gSXQgaXMgdXNlZCBpbiBhdCBsZWFzdCBvbmUgRkFRIGFydGljbGUhJ30gPQogICAgICAgICdTaWUga8O2bm5lbiBkaWVzZSBTcHJhY2hlIG5pY2h0IGzDtnNjaGVuLiBTaWUgd2lyZCBpbiBtaW5kZXN0ZW5zIGVpbmVtIEZBUS1BcnRpa2VsIHZlcndlbmRldCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBsYW5ndWFnZSBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgRkFRIEFydGljbGUocyknfSA9ICdEaWVzZSBTcHJhY2hlIHdpcmQgaW4gZGVuIGZvbGdlbmRlbiBGQVEtQXJ0aWtlbG4gdmVyd2VuZGV0JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUU92ZXJ2aWV3TmF2QmFyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAnS29udGV4dC1FaW5zdGVsbHVuZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBhcnRpY2xlcyBwZXIgcGFnZSd9ID0gJ0ZBUS1BcnRpa2VsIHBybyBTZWl0ZSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFPdmVydmlld1NtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBGQVEgZGF0YSBmb3VuZC4nfSA9ICdLZWluZSBGQVEtRGF0ZW4gZ2VmdW5kZW4uJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVJlbGF0ZWRBcnRpY2xlcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnb3V0IG9mIDUnfSA9ICd2b24gNSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFTZWFyY2gKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0tleXdvcmQnfSA9ICdTY2hsw7xzc2Vsd29ydCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWb3RlIChlLiBnLiBFcXVhbHMgMTAgb3IgR3JlYXRlclRoYW4gNjApJ30gPSAnQWJzdGltbXVuZyAoWnVtIEJlaXNwaWVsOiA9MTAgb2RlciA+NjApJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGUgKGUuIGcuIEVxdWFscyAyNSUgb3IgR3JlYXRlclRoYW4gNzUlKSd9ID0gJ0FudGVpbCAoWnVtIEJlaXNwaWVsOiA9MjUlIG9kZXIgPjc1JSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwcm92ZWQnfSA9ICdHZW5laG1pZ3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkIGJ5J30gPSAnTGV0enRlIMOEbmRlcnVuZyB2b246JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENyZWF0ZSBUaW1lIChiZWZvcmUvYWZ0ZXIpJ30gPSAnRXJzdGVsbHplaXQgZGVzIEZBUS1BcnRpa2VsIChkYXZvci9kYW5hY2gpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENyZWF0ZSBUaW1lIChiZXR3ZWVuKSd9ID0gJ0Vyc3RlbGx6ZWl0IGRlcyBGQVEtQXJ0aWtlbCAoendpc2NoZW4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENoYW5nZSBUaW1lIChiZWZvcmUvYWZ0ZXIpJ30gPSAnTGV0enRlIMOEbmRlcnVuZyBkZXMgRkFRLUFydGlrZWwgKGRhdm9yL2RhbmFjaCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ2hhbmdlIFRpbWUgKGJldHdlZW4pJ30gPSAnTGV0enRlIMOEbmRlcnVuZyBkZXMgRkFRLUFydGlrZWwgKHp3aXNjaGVuKSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFTZWFyY2hPcGVuU2VhcmNoRGVzY3JpcHRpb25GdWxsdGV4dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRRnVsbHRleHQnfSA9ICdGQVEtVm9sbHRleHQnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRU2VhcmNoU21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBTZWFyY2gnfSA9ICdGQVEgU3VjaGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvZmlsZSBTZWxlY3Rpb24nfSA9ICdQcm9maWxhdXN3YWhsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGUnfSA9ICdBYnN0aW1tZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdm90ZSBzZXR0aW5ncyd9ID0gJ0tlaW5lIEVpbnN0ZWxsdW5nIGbDvHIgQWJzdGltbXVuZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpYyB2b3Rlcyd9ID0gJ3NwZXppZmlzY2hlIEFic3RpbW11bmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZS4gZy4gRXF1YWxzIDEwIG9yIEdyZWF0ZXJUaGFuIDYwJ30gPSAnWnVtIEJlaXNwaWVsOiA9MTAgb2RlciA+NjAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0ZSd9ID0gJ0FudGVpbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyByYXRlIHNldHRpbmdzJ30gPSAnS2VpbmUgRWluc3RlbGx1bmdlbiBmw7xyIEFudGVpbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpYyByYXRlJ30gPSAnYmVzdGltbXRlciBBbnRlaWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZS4gZy4gRXF1YWxzIDI1JSBvciBHcmVhdGVyVGhhbiA3NSUnfSA9ICdadW0gQmVpc3BpZWw6ID0yNSUgb2RlciA+NzUlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENyZWF0ZSBUaW1lJ30gPSAnRXJzdGVsbHplaXQgZGVzIEZBUS1BcnRpa2VsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENoYW5nZSBUaW1lJ30gPSAnTGV0enRlIMOEbmRlcnVuZyBkZXMgRkFRLUFydGlrZWwnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRWm9vbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEluZm9ybWF0aW9uJ30gPSAnRkFRLUluZm9ybWF0aW9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGluZyd9ID0gJ0Jld2VydHVuZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWb3Rlcyd9ID0gJ0Jld2VydHVuZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHZvdGVzIGZvdW5kISd9ID0gJ0tlaW5lIEJld2VydHVuZ2VuIGdlZnVuZGVuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB2b3RlcyBmb3VuZCEgQmUgdGhlIGZpcnN0IG9uZSB0byByYXRlIHRoaXMgRkFRIGFydGljbGUuJ30gPSAnS2VpbmUgQmV3ZXJ0dW5nZW4gZ2VmdW5kZW4hIFNlaWVuIFNpZSBkZXIgZXJzdGUgZGVyIGRpZXNlbiBGQVEtQXJ0aWtlbCBiZXdlcnRldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG93bmxvYWQgQXR0YWNobWVudCd9ID0gJ0FuaGFuZyBoZXJ1bnRlcmxhZGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIG9wZW4gbGlua3MgaW4gdGhlIGZvbGxvd2luZyBkZXNjcmlwdGlvbiBibG9ja3MsIHlvdSBtaWdodCBuZWVkIHRvIHByZXNzIEN0cmwgb3IgQ21kIG9yIFNoaWZ0IGtleSB3aGlsZSBjbGlja2luZyB0aGUgbGluayAoZGVwZW5kaW5nIG9uIHlvdXIgYnJvd3NlciBhbmQgT1MpLid9ID0KICAgICAgICAnVW0gZGllIExpbmtzIGltIGZvbGdlbmRlbiBCZWl0cmFnIHp1IMO2ZmZuZW4sIGthbm4gZXMgbm90d2VuZGlnIHNlaW4gU3RyZyBvZGVyIFNoaWZ0IHp1IGRyw7xja2VuLCB3w6RocmVuZCBhdWYgZGVuIExpbmsgZ2VrbGlja3Qgd2lyZCAoYWJow6RuZ2lnIHZvbSB2ZXJ3ZW5kZXRlbiBCcm93c2VyIHVuZCBCZXRyaWVic3N5c3RlbSkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdyBoZWxwZnVsIHdhcyB0aGlzIGFydGljbGU/IFBsZWFzZSBnaXZlIHVzIHlvdXIgcmF0aW5nIGFuZCBoZWxwIHRvIGltcHJvdmUgdGhlIEZBUSBEYXRhYmFzZS4gVGhhbmsgWW91ISd9ID0KICAgICAgICAnV2llIGhpbGZyZWljaCB3YXIgZGllc2VyIEFydGlrZWw/IEJpdHRlIGdlYmVuIFNpZSBJaHJlIEJld2VydHVuZyBhYiB1bmQgaGVsZmVuIFNpZSBtaXQgZGllIFF1YWxpdMOkdCBkZXIgRkFRLURhdGVuYmFuayB6dSB2ZXJiZXNzZXJuLiBWaWVsZW4gRGFuayEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnbm90IGhlbHBmdWwnfSA9ICduaWNodCBoaWxmcmVpY2gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndmVyeSBoZWxwZnVsJ30gPSAnc2VociBoaWxmcmVpY2gnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRWm9vbVNtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIHRpdGxlIHRvIGFydGljbGUgc3ViamVjdCd9ID0gJ0ZBUS1UaXRlbCBhbHMgQXJ0aWtlbGJldHJlZmYgaGluenVmw7xnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZBUSBUZXh0J30gPSAnRkFRLVRleHQgZWluZsO8Z2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGdWxsIEZBUSd9ID0gJ1ZvbGxzdMOkbmRpZ2UgRkFRIGVpbmbDvGdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRkFRIExpbmsnfSA9ICdGQVEtTGluayBlaW5mw7xnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZBUSBUZXh0ICYgTGluayd9ID0gJ0ZBUS1UZXh0ICYgTGluayBlaW5mw7xnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZ1bGwgRkFRICYgTGluayd9ID0gJ1ZvbGxzdMOkbmRpZ2UgRkFRICYgTGluayBlaW5mw7xnZW4nOwoKICAgICMgVGVtcGxhdGU6IEN1c3RvbWVyRkFRRXhwbG9yZXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhdGVzdCB1cGRhdGVkIEZBUSBhcnRpY2xlcyd9ID0gJ1p1bGV0enQgZ2XDpG5kZXJ0ZSBGQVEtQXJ0aWtlbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBGQVEgYXJ0aWNsZXMgZm91bmQuJ30gPSAnS2VpbmUgRkFRLUFydGlrZWwgZ2VmdW5kZW4uJzsKCiAgICAjIFRlbXBsYXRlOiBDdXN0b21lckZBUVJlbGF0ZWRBcnRpY2xlcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtaWdodCBiZSBoZWxwZnVsJ30gPSAnSGlsZnJlaWNoZSBBcnRpa2VsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvdW5kIG5vIGhlbHBmdWwgcmVzb3VyY2VzIGZvciB0aGUgc3ViamVjdCBhbmQgdGV4dC4nfSA9ICdMZWlkZXIgd3VyZGVuIGtlaW5lIHBhc3NlbmRlbiBBcnRpa2VsIGdlZnVuZGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlIGEgc3ViamVjdCBvciB0ZXh0IHRvIGdldCBhIGxpc3Qgb2YgaGVscGZ1bCByZXNvdXJjZXMuJ30gPSAnTmFjaCBkZW0gRWludGlwcGVuIGVpbmVzIEJldHJlZmZzIG9kZXIgVGV4dGVzIHdlcmRlbiBoaWVyIHBhc3NlbmRlIEFydGlrZWwgYW5nZXplaWd0Lic7CgogICAgIyBUZW1wbGF0ZTogQ3VzdG9tZXJGQVFTZWFyY2gKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bGx0ZXh0IHNlYXJjaCBpbiBGQVEgYXJ0aWNsZXMgKGUuIGcuICJKb2huKm4iIG9yICJXaWxsKiIpJ30gPSAnVm9sbHRleHQtU3VjaGUgaW4gRkFRLUFydGlrZWxuICh6LiBCLiAiSm9obipuIiBvciAiV2lsbCoiKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWb3RlIHJlc3RyaWN0aW9ucyd9ID0gJ1dhaGxlaW5zY2hyw6Rua3VuZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgRkFRIGFydGljbGVzIHdpdGggdm90ZXMuLi4nfSA9ICdOdXIgRkFRLUFydGlrZWwgbWl0IEFic3RpbW11bmdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRlIHJlc3RyaWN0aW9ucyd9ID0gJ0FudGVpbHNiZXNjaHLDpG5rdW5nZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSBGQVEgYXJ0aWNsZXMgd2l0aCByYXRlLi4uJ30gPSAnTnVyIEZBUS1BcnRpa2VsIG1pdCBlaW5lbSBBbnRlaWwgdm9uLi4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVzdHJpY3Rpb25zJ30gPSAnWmVpdGJlc2NocsOkbmt1bmdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IEZBUSBhcnRpY2xlcyBjcmVhdGVkJ30gPSAnTnVyIEZBUS1BcnRpa2VsIGVyc3RlbGx0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgRkFRIGFydGljbGVzIGNyZWF0ZWQgYmV0d2Vlbid9ID0gJ051ciBUaWNrZXRzLCBkaWUgZXJzdGVsbHQgd3VyZGVuIHp3aXNjaGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaC1Qcm9maWxlIGFzIFRlbXBsYXRlPyd9ID0gJ1N1Y2hwcm9maWwgYWxzIFZvcmxhZ2U/JzsKCiAgICAjIFRlbXBsYXRlOiBDdXN0b21lckZBUVpvb20KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FydGljbGUgTnVtYmVyJ30gPSAnQXJ0aWtlbG51bW1lcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggZm9yIGFydGljbGVzIHdpdGgga2V5d29yZCd9ID0gJ1N1Y2hlIG5hY2ggQXJ0aWtlbG4gbWl0IFNjaGzDvHNzZWx3w7ZydGVybic7CgogICAgIyBUZW1wbGF0ZTogUHVibGljRkFRU2VhcmNoT3BlblNlYXJjaERlc2NyaXB0aW9uRkFRTnVtYmVyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMnfSA9ICfDlmZmZW50bGljaCc7CgogICAgIyBUZW1wbGF0ZTogUHVibGljRkFRU2VhcmNoUmVzdWx0U2hvcnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0JhY2sgdG8gRkFRIEV4cGxvcmVyJ30gPSAnWnVyw7xjayB6dW0gRkFRLUV4cGxvcmVyJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUFkZC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgcncgcGVybWlzc2lvbiEnfSA9ICdTaWUgYmVuw7Z0aWdlbiBMZXNlLSB1bmQgU2NocmVpYnJlY2h0ZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY2F0ZWdvcmllcyBmb3VuZCB3aGVyZSB1c2VyIGhhcyByZWFkL3dyaXRlIHBlcm1pc3Npb25zISd9ID0gJ0tlaW5lIEthdGVnb3JpZW4gZ2VmdW5kZW4sIGluIGRlbmVuIGRlciBCZW51dHplciBMZXNlLS9TY2hyZWlicmVjaHRlIGJlc2l0enQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRlZmF1bHQgbGFuZ3VhZ2UgZm91bmQgYW5kIGNhblwndCBjcmVhdGUgYSBuZXcgb25lLid9ID0gJ1N0YW5kYXJkc3ByYWNoZSB3dXJkZSBuaWNodCBnZWZ1bmRlbi4gTmV1ZSBTdGFuZGFyZHNwcmFjaGUga29ubnRlIG5pY2h0IGVyc3RlbGx0IHdlcmRlbi4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRQ2F0ZWdvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgQ2F0ZWdvcnlJRCEnfSA9ICdCZW7DtnRpZ2UgS2F0ZWdvcmllLUlEISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGNhdGVnb3J5IHNob3VsZCBoYXZlIGEgbmFtZSEnfSA9ICdFaW5lIEthdGVnb3JpZSBiZW7DtnRpZ3QgZWluZW4gTmFtZW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY2F0ZWdvcnkgYWxyZWFkeSBleGlzdHMnfSA9ICdEaWVzZSBLYXRlZ29yaWUgZXhpc3RpZXJ0IGJlcmVpdHMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY2F0ZWdvcnkgYWxyZWFkeSBleGlzdHMhJ30gPSAnRGllc2UgS2F0ZWdvcmllIGV4aXN0aWVydCBiZXJlaXRzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBDYXRlZ29yeUlEIGlzIGdpdmVuISd9ID0gJ0VzIHd1cmRlIGtlaW5lIEthdGVnb3JpZS1JRCB2ZXJnZWJlbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgY2F0ZWdvcnkgJXMhJ30gPSAnS2F0ZWdvcmllICVzIGtvbm50ZSBuaWNodCBnZWzDtnNjaHQgd2VyZGVuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgY2F0ZWdvcnkgdXBkYXRlZCEnfSA9ICdGQVEtS2F0ZWdvcmllIGFrdHVhbGlzaWVydCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGNhdGVnb3J5IGFkZGVkISd9ID0gJ0ZBUS1LYXRlZ29yaWUgaGluenVnZWbDvGd0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQ2F0ZWdvcnknfSA9ICdLYXRlZ29yaWUgbMO2c2NoZW4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBJdGVtSUQgaXMgZ2l2ZW4hJ30gPSAnRXMgd3VyZGUga2VpbmUgRWludHJhZy1JRCB2ZXJnZWJlbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgbm8gcGVybWlzc2lvbiBmb3IgdGhpcyBjYXRlZ29yeSEnfSA9ICdTaWUgYmVzaXR6ZW4ga2VpbmUgQmVyZWNodGlndW5nIGbDvHIgZGllc2UgS2F0ZWdvcmllISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBGQVEgYXJ0aWNsZSAlcyEnfSA9ICdGQVEgQXJ0aWtlbCAlcyBrb25udGUgbmljaHQgZ2Vsw7ZzY2h0IHdlcmRlbiEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRRXhwbG9yZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBDYXRlZ29yeUlEICVzIGlzIGludmFsaWQuJ30gPSAnRGllIEthdGVnb3JpZS1JRCAlcyBpc3QgdW5nw7xsdGlnLic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBJdGVtSUQgaXMgZ2l2ZW4hJ30gPSAnS2FubiBIaXN0b3J5IG5pY2h0IGFuemVpZ2VuLCBrZWluZSBFaW50cmFnLUlEIMO8YmVybWl0dGVsdCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEhpc3RvcnknfSA9ICdGQVEgSGlzdG9yaWUnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRSm91cm5hbC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEpvdXJuYWwnfSA9ICdGQVEgSm91cm5hbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIGNvbmZpZyBvcHRpb24gRkFROjpGcm9udGVuZDo6T3ZlcnZpZXcnfSA9ICdLb25maWd1cmF0aW9uc29wdGlvbiBGQVE6OkZyb250ZW5kOjpPdmVydmlldyB3aXJkIGJlbsO2dGlndCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWcgb3B0aW9uIEZBUTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3IG5lZWRzIHRvIGJlIGEgSEFTSCByZWYhJ30gPQogICAgICAgICdLb25maWd1cmF0aW9uc29wdGlvbiBGQVE6OkZyb250ZW5kOjpPdmVydmlldyBtdXNzIGVpbmUgSEFTSCBSZWZlcmVueiBzZWluISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjb25maWcgb3B0aW9uIGZvdW5kIGZvciB0aGUgdmlldyAiJXMiISd9ID0gJ0tlaW5lIEtvbmZpZ3VyYXRpb25zb3B0aW9uIGbDvHIgZGllIEFuc2ljaHQgIiVzIiBnZWZ1bmRlbiEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRTGFuZ3VhZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIExhbmd1YWdlSUQgaXMgZ2l2ZW4hJ30gPSAnS2VpbmUgTGFuZ3VhZ2VJRCDDvGJlcm1pdHRlbHQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBuYW1lIGlzIHJlcXVpcmVkISd9ID0gJ0RlciBOYW1lIGlzdCBlcmZvcmRlcmxpY2ghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbGFuZ3VhZ2UgYWxyZWFkeSBleGlzdHMhJ30gPSAnRGllc2UgU3ByYWNoZSBleGlzdGllcnQgYmVyZWl0cyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgbGFuZ3VhZ2UgJXMhJ30gPSAnU3ByYWNoZSAlcyBrb25udGUgbmljaHQgZ2Vsw7ZzY2h0IHdlcmRlbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGxhbmd1YWdlIHVwZGF0ZWQhJ30gPSAnRkFRLVNwcmFjaGUgYWt0dWFsaXNpZXJ0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgbGFuZ3VhZ2UgYWRkZWQhJ30gPSAnRkFRLVNwcmFjaGUgaGluenVnZWbDvGd0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgTGFuZ3VhZ2UgJXMnfSA9ICdTcHJhY2hlIEzDtnNjaGVuICVzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUVByaW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXN1bHQnfSA9ICdFcmdlYm5pcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IHVwZGF0ZSd9ID0gJ0xldHp0ZSBBa3R1YWxpc2llcnVuZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgRHluYW1pYyBGaWVsZHMnfSA9ICdGQVEgRHluYW1pc2NoZSBGZWxkZXInOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRUmljaFRleHQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vICVzIGlzIGdpdmVuISd9ID0gJ0tlaW4oZSkgJXMgw7xiZXJtaXR0ZWx0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgbG9hZCBMYW5ndWFnZU9iamVjdCEnfSA9ICdMYW5ndWFnZU9iamVjdCBrYW5uIG5pY2h0IGdlbGFkZW4gd2VyZGVuISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFJlc3VsdCEnfSA9ICdLZWluIEVyZ2VibmlzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgTnVtYmVyJ30gPSAnRkFRLU51bW1lcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IENoYW5nZWQgYnknfSA9ICdMZXR6dGUgw4RuZGVydW5nIHZvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSXRlbSBDcmVhdGUgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJ0ZBUS1BcnRpa2VsIEVyc3RlbGx6ZWl0ICh2b3IvbmFjaCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ3JlYXRlIFRpbWUgKGJldHdlZW4pJ30gPSAnRkFRLUFydGlrZWwgRXJzdGVsbHplaXQgKHp3aXNjaGVuKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSXRlbSBDaGFuZ2UgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJ0ZBUS1BcnRpa2VsIMOEbmRlcnVuZ3N6ZWl0ICh2b3IvbmFjaCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ2hhbmdlIFRpbWUgKGJldHdlZW4pJ30gPSAnRkFRLUFydGlrZWwgw4RuZGVydW5nc3plaXQgKHp3aXNjaGVuKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcXVhbHMnfSA9ICdpc3QgZ2xlaWNoJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyZWF0ZXIgdGhhbid9ID0gJ0dyw7bDn2VyIGFscyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmVhdGVyIHRoYW4gZXF1YWxzJ30gPSAnaXN0IGdyw7bDn2VyL2dsZWljaCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTbWFsbGVyIHRoYW4nfSA9ICdLbGVpbmVyIGFscyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTbWFsbGVyIHRoYW4gZXF1YWxzJ30gPSAnS2xlaW5lci9nbGVpY2gnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRWm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBGaWxlSUQhJ30gPSAnQmVuw7Z0aWdlIERhdGVpLUlEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoYW5rcyBmb3IgeW91ciB2b3RlISd9ID0gJ1ZpZWxlbiBEYW5rIGbDvHIgSWhyZSBCZXdlcnR1bmchJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIGFscmVhZHkgdm90ZWQhJ30gPSAnU2llIGhhYmVuIGJlcmVpdHMgYWJnZXN0aW1tdCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gcmF0ZSBzZWxlY3RlZCEnfSA9ICdLZWluZSBCZXdlcnR1bmcgYXVzZ2V3w6RobHQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB2b3RpbmcgbWVjaGFuaXNtIGlzIG5vdCBlbmFibGVkISd9ID0gJ0Fic3RpbW11bmdzZnVua3Rpb24gaXN0IG5pY2h0IGFrdGl2aWVydC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHZvdGUgcmF0ZSBpcyBub3QgZGVmaW5lZCEnfSA9ICdEaWUgQWJzdGltbXVuZ3NyYXRlIGlzdCBuaWNodCBkZWZpbmllcnQhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9DdXN0b21lckZBUVByaW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBQcmludCd9ID0gJ0ZBUS1BcnRpa2VsLUF1c2RydWNrJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9DdXN0b21lckZBUVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBiZXR3ZWVuJ30gPSAnRXJzdGVsbHQgendpc2NoZW4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0N1c3RvbWVyRkFRWm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBJdGVtSUQhJ30gPSAnSXRlbUlEIGJlbsO2dGlndCEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL1B1YmxpY0ZBUUV4cGxvcmVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZXMgKG5ldyBjcmVhdGVkKSd9ID0gJ0ZBUS1BcnRpa2VsIChuZXUgZXJzdGVsbHRlKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZXMgKHJlY2VudGx5IGNoYW5nZWQpJ30gPSAnRkFRLUFydGlrZWwgKGFrdHVhbGlzaWVydGUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlcyAoVG9wIDEwKSd9ID0gJ0ZBUS1BcnRpa2VsIChUb3AgMTApJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9QdWJsaWNGQVFSU1MucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFR5cGUgaXMgZ2l2ZW4hJ30gPSAnS2VpbiBUeXAgaXN0IGRlZmluaWVydCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZSBtdXN0IGJlIGVpdGhlciBMYXN0Q3JlYXRlIG9yIExhc3RDaGFuZ2Ugb3IgVG9wMTAhJ30gPSAnVHlwIG11c3MgZW50d2VkZXIgTGFzdENyZWF0ZSBvZGVyIExhc3RDaGFuZ2Ugb2RlciBUb3AxMCBzZWluISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIFJTUyBmaWxlISd9ID0gJ1JTUyBEYXRlaSBrYW5uIG5pY2h0IGVyc3RlbGx0IHdlcmRlbiEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9IZWFkZXJNZXRhL0FnZW50RkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoRkFRRnVsbHRleHQpJ30gPSAnJXMgKEZBUSBWb2xsdGV4dCknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9IZWFkZXJNZXRhL0N1c3RvbWVyRkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAtIEN1c3RvbWVyICglcyknfSA9ICclcyAtIEt1bmRlICglcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgLSBDdXN0b21lciAoRkFRRnVsbHRleHQpJ30gPSAnJXMgLSBLdW5kZW4gKEZBUSBWb2xsdGV4dCknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9IZWFkZXJNZXRhL1B1YmxpY0ZBUVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgLSBQdWJsaWMgKCVzKSd9ID0gJyVzIC0gw5ZmZmVudGxpY2ggKCVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAtIFB1YmxpYyAoRkFRRnVsbHRleHQpJ30gPSAnJXMgLSDDlmZmZW50bGljaCAoRkFRIFZvbGx0ZXh0KSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0xheW91dC9GQVEucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgcmF0ZSEnfSA9ICdCZXdlcnR1bmcgYmVuw7Z0aWd0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGFydGljbGUgaXMgZW1wdHkhJ30gPSAnRGllc2VyIEFydGlrZWwgaXN0IGxlZXIhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhdGVzdCBjcmVhdGVkIEZBUSBhcnRpY2xlcyd9ID0gJ1p1bGV0enQgZXJzdGVsbHRlIEZBUS1BcnRpa2VsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvcCAxMCBGQVEgYXJ0aWNsZXMnfSA9ICdUb3AgMTAgRkFRLUFydGlrZWwnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9MaW5rT2JqZWN0L0ZBUS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29udGVudCBUeXBlJ30gPSAnSW5oYWx0c3R5cCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9EeW5hbWljRmllbGQvRHJpdmVyL0ZBUS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IHRoZSBhdHRyaWJ1dGUgd2hpY2ggRkFRcyB3aWxsIGJlIHNlYXJjaGVkIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4dGVybmFsLXNvdXJjZSBrZXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IHRoZSB0eXBlIG9mIGRpc3BsYXknfSA9ICcnOwoKICAgICMgRGF0YWJhc2UgWE1MIC8gU09QTSBEZWZpbml0aW9uOiBGQVEuc29wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW50ZXJuYWwnfSA9ICdpbnRlcm4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZXh0ZXJuYWwnfSA9ICdleHRlcm4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncHVibGljJ30gPSAnw7ZmZmVudGxpY2gnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGZpbHRlciBmb3IgSFRNTCBvdXRwdXQgdG8gYWRkIGxpbmtzIGJlaGluZCBhIGRlZmluZWQgc3RyaW5nLiBUaGUgZWxlbWVudCBJbWFnZSBhbGxvd3MgdHdvIGlucHV0IGtpbmRzLiBGaXJzdCB0aGUgbmFtZSBvZiBhbiBpbWFnZSAoZS5nLiBmYXEucG5nKS4gSW4gdGhpcyBjYXNlIHRoZSBPVE9CTyBpbWFnZSBwYXRoIHdpbGwgYmUgdXNlZC4gVGhlIHNlY29uZCBwb3NzaWJpbGl0eSBpcyB0byBpbnNlcnQgdGhlIGxpbmsgdG8gdGhlIGltYWdlLid9ID0KICAgICAgICAnRWluIEZpbHRlciB6dXIgYXV0b21hdGlzY2hlbiBHZW5lcmllcnVuZyB2b24gRkFRLUxpbmtzLCB3ZW5uIGVpbiBIaW53ZWlzIGF1ZiBlaW5lbiBGQVEtQXJ0aWtlbCBpZGVudGlmaXppZXJ0IHdpcmQuIERhcyBFbGVtZW50IEltYWdlIGVybGF1YnQgendlaSBFaW5nYWJlZm9ybWVuOiBFcnN0ZW5zIGRlciBOYW1lIGVpbmVzIEljb25zICh6LiBCLiBmYXEucG5nKS4gSW4gZGllc2VtIEZhbGwgd2lyZCBhdWYgZGFzIEdyYWZpay1WZXJ6ZWljaG5pcyBkZXMgT1RPQk8genVnZWdyaWZmZW4uIEFscyB6d2VpdGUgTcO2Z2xpY2hrZWl0IGthbm4gbWFuIGFiZXIgYXVjaCBkZW4gZGlyZWt0ZW4gTGluayB6dXIgR3JhZmlrIGFuZ2ViZW4gKHouIEIuIGh0dHA6Ly9vdG9iby5vcmcvZmFxLnBuZykuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBGQVEgYXJ0aWNsZSd9ID0gJ0ZBUS1BcnRpa2VsIGhpbnp1ZsO8Z2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NTUyBjb2xvciBmb3IgdGhlIHZvdGluZyByZXN1bHQuJ30gPSAnQ1NTLUZhcmJlIGbDvHIgZGFzIEJld2VydHVuZ3MtRXJnZWJuaXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIFRpbWUgVG8gTGVhdmUgZm9yIEZBUSBpdGVtcy4nfSA9ICdDYWNoZXplaXQgZsO8ciBGQVEtQXJ0aWtlbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0ZWdvcnkgTWFuYWdlbWVudCd9ID0gJ0thdGVnb3JpZW52ZXJ3YWx0dW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGVnb3J5IE1hbmFnZW1lbnQuJ30gPSAnS2F0ZWdvcmllbi1WZXJ3YWx0dW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBQcmludC4nfSA9ICdLdW5kZW4tRkFRIERydWNrZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBSZWxhdGVkIEFydGljbGVzJ30gPSAnS3VuZGVuLUZBUS1iZXpvZ2VuZSBBcnRpa2VsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBSZWxhdGVkIEFydGljbGVzLid9ID0gJ0t1bmRlbi1GQVEtYmV6b2dlbmUgQXJ0aWtlbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIFpvb20uJ30gPSAnS3VuZGVuIEZBUSBEZXRhaWxhbnNpY2h0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgc2VhcmNoLid9ID0gJ0t1bmRlbi1GQVEgU3VjaGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEuJ30gPSAnS3VuZGVuLUZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVjaW1hbCBwbGFjZXMgb2YgdGhlIHZvdGluZyByZXN1bHQuJ30gPSAnRGV6aW1hbHN0ZWxsZW4gZGVzIEVyZ2Vibmlzc2VzIGRlciBBcnRpa2VsYmV3ZXJ0dW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IGNhdGVnb3J5IG5hbWUuJ30gPSAnUm9vdC1LYXRlZ29yaWUtTmFtZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBsYW5ndWFnZSBmb3IgRkFRIGFydGljbGVzIG9uIHNpbmdsZSBsYW5ndWFnZSBtb2RlLid9ID0gJ1N0YW5kYXJkLVNwcmFjaGUgZsO8ciBGQVEtQXJ0aWtlbCBpbSBFaW56ZWwtU3ByYWNoLU1vZHVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG1heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24uJ30gPQogICAgICAgICdTdGFuZGFyZG3DpMOfaWcgbWF4aW1hbCBhbmdlemVpZ3RlIFplaWNoZW4gaW4gZGVuIFRpdGVsbiBkZXIgRkFRLUFydGlrZWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgcHJpb3JpdHkgb2YgdGlja2V0cyBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9CiAgICAgICAgJ1N0YW5kYXJkLVByaW9yaXTDpHQgdm9uIFRpY2tldHMgZsO8ciBkaWUgRnJlaWdhYmUgdm9uIEZBUS1BcnRpa2Vsbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0ZSBmb3IgRkFRIGVudHJ5Lid9ID0gJ1N0YW5kYXJkIFN0YXR1cyBlaW5lcyBGQVEtRWludHJhZ3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdGUgb2YgdGlja2V0cyBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICdTdGFuZGFyZC1TdGF0dXMgdm9uIFRpY2tldHMgZsO8ciBkaWUgRnJlaWdhYmUgdm9uIEZBUS1BcnRpa2Vsbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCB0eXBlIG9mIHRpY2tldHMgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPSAnU3RhbmRhcmQgVGlja2V0dHlwIGbDvHIgZGllIEdlbmVobWlndW5nIHZvbiBGQVEtQXJ0aWtlbG4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCB2YWx1ZSBmb3IgdGhlIEFjdGlvbiBwYXJhbWV0ZXIgZm9yIHRoZSBwdWJsaWMgZnJvbnRlbmQuIFRoZSBBY3Rpb24gcGFyYW1ldGVyIGlzIHVzZWQgaW4gdGhlIHNjcmlwdHMgb2YgdGhlIHN5c3RlbS4nfSA9CiAgICAgICAgJ1N0YW5kYXJkd2VydCBkZXMgQWN0aW9uLVBhcmFtZXRlcnMgZsO8ciBkZW4gw7ZmZmVudGxpY2hlbiBGQVEtQmVyZWljaC4gRGVyIEFjdGlvbi1QYXJhbWV0ZXIgd2lyZCB2b24gZGVuIFNrcmlwdGVuIGRlcyBTeXN0ZW1zIGJlbnV0enQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSBBY3Rpb25zIHdoZXJlIGEgc2V0dGluZ3MgYnV0dG9uIGlzIGF2YWlsYWJsZSBpbiB0aGUgbGlua2VkIG9iamVjdHMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIFBsZWFzZSBub3RlIHRoYXQgdGhlc2UgQWN0aW9ucyBtdXN0IGhhdmUgcmVnaXN0ZXJlZCB0aGUgZm9sbG93aW5nIEpTIGFuZCBDU1MgZmlsZXM6IENvcmUuQWxsb2NhdGlvbkxpc3QuY3NzLCBDb3JlLlVJLkFsbG9jYXRpb25MaXN0LmpzLCBDb3JlLlVJLlRhYmxlLlNvcnQuanMsIENvcmUuQWdlbnQuVGFibGVGaWx0ZXJzLmpzIGFuZCBDb3JlLkFnZW50LkxpbmtPYmplY3QuanMuJ30gPQogICAgICAgICdEZWZpbmllcmVuIFNpZSBBY3Rpb25zLCBpbiBkZW5lbiBpbSBWZXJrbsO8cGZ0ZS1PYmpla3RlLVdpZGdldCBlaW4gRWluc3RlbGx1bmdlbi1Lbm9wZiB2ZXJmw7xnYmFyIHNlaW4gc29sbCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBCaXR0ZSBiZWFjaHRlbiBTaWUsIGRhc3MgZsO8ciBkaWVzZSBBY3Rpb25zIGRpZSBmb2xnZW5kZW4gSlMtIHVuZCBDU1MtRGF0ZWllbiByZWdpc3RyaWVydCBzZWluIG3DvHNzZW46ICBDb3JlLkFsbG9jYXRpb25MaXN0LmNzcywgQ29yZS5VSS5BbGxvY2F0aW9uTGlzdC5qcywgQ29yZS5VSS5UYWJsZS5Tb3J0LmpzLCBDb3JlLkFnZW50LlRhYmxlRmlsdGVycy5qcyB1bmQgQ29yZS5BZ2VudC5MaW5rT2JqZWN0LmpzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgaWYgdGhlIEZBUSB0aXRsZSBzaG91bGQgYmUgY29uY2F0ZW5hdGVkIHRvIGFydGljbGUgc3ViamVjdC4nfSA9CiAgICAgICAgJ0RlZmluaWVydCBvYiBkZXIgRkFRLVRpdGVsIG1pdCBkZW0gQXJ0aWtlbGJldHJlZmYgdmVya2V0dGV0IHdlcmRlbiBzb2xsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBGQVFzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IEZBUSBhdHRyaWJ1dGVzIGFuZCBkeW5hbWljIGZpZWxkcyAoRHluYW1pY0ZpZWxkX05hbWVYKSBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIEZBUSBqb3VybmFsLid9ID0KICAgICAgICAnRGVmaW5pZXJ0IGVpbiDDnGJlcnNpY2h0cy1Nb2R1bCB1bSBkaWUgU21hbGwtQW5zaWNodCBpbSBGQVEtSm91cm5hbCBhbnp1emVpZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgRkFRIGxpc3QuJ30gPQogICAgICAgICdEZWZpbmllcnQgZWluIMOcYmVyc2ljaHRzLU1vZHVsIHVtIGRpZSBTbWFsbC1BbnNpY2h0IGVpbmVyIEZBUS1MaXN0ZSBhbnp1emVpZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIGEgRkFRIHNlYXJjaCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGVmaW5pZXJ0IGRhcyBTdGFuZGFyZC1GQVEtQXR0cmlidXQgZsO8ciBkaWUgU29ydGllcnVuZyBkZXIgRkFRLVN1Y2hlIGltIEFnZW50ZW4tSW50ZXJmYWNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIGEgRkFRIHNlYXJjaCBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGVmaW5pZXJ0IGRhcyBTdGFuZGFyZC1GQVEtQXR0cmlidXQgZsO8ciBkaWUgU29ydGllcnVuZyBkZXMgRkFRLVN1Y2hlIGltIEt1bmRlbi1JbnRlcmZhY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gYSBGQVEgc2VhcmNoIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGVmaW5pZXJ0IGRhcyBTdGFuZGFyZC1GQVEtQXR0cmlidXQgZsO8ciBkaWUgU29ydGllcnVuZyBkZXMgRkFRLVN1Y2hlIGltIFB1YmxpYy1JbnRlcmZhY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGVmaW5pZXJ0IGRhcyBTdGFuZGFyZC1GQVEtQXR0cmlidXQgZsO8ciBkaWUgU29ydGllcnVuZyBkZXMgRkFRLUV4cGxvcmVyIGltIEFnZW50ZW4tSW50ZXJmYWNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIHRoZSBGQVEgRXhwbG9yZXIgb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RlZmluaWVydCBkYXMgU3RhbmRhcmQtRkFRLUF0dHJpYnV0IGbDvHIgZGllIFNvcnRpZXJ1bmcgZGVzIEZBUS1FeHBsb3JlciBpbSBLdW5kZW4tSW50ZXJmYWNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIHRoZSBGQVEgRXhwbG9yZXIgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmllcnQgZGFzIFN0YW5kYXJkLUZBUS1BdHRyaWJ1dCBmw7xyIGRpZSBTb3J0aWVydW5nIGRlcyBGQVEtRXhwbG9yZXIgaW0gUHVibGljLUludGVyZmFjZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICdEZWZpbmllcnQgZGllIFN0YW5kYXJkLVNvcnRpZXJ1bmcgZGVzIEZBUS1FeHBsb3JlciBpbSBBZ2VudGVuLUludGVyZmFjZS4gQXVmOiDDhGx0ZXN0ZXIgRkFRLUFydGlrZWwgb2Jlbi4gQWI6IE5ldWVzdGVyIEZBUS1BcnRpa2VsIG9iZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnRGVmaW5pZXJ0IGRpZSBTdGFuZGFyZC1Tb3J0aWVydW5nIGRlcyBGQVEtRXhwbG9yZXIgaW0gS3VuZGVuLUludGVyZmFjZS4gQXVmOiDDhGx0ZXN0ZXIgRkFRLUFydGlrZWwgb2Jlbi4gQWI6IE5ldWVzdGVyIEZBUS1BcnRpa2VsIG9iZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ0RlZmluaWVydCBkaWUgU3RhbmRhcmQtU29ydGllcnVuZyBkZXMgRkFRLUV4cGxvcmVycyBpbSBQdWJsaWMtSW50ZXJmYWNlLiBBdWY6IMOEbHRlc3RlciBGQVEtQXJ0aWtlbCBvYmVuLiBBYjogTmV1ZXN0ZXIgRkFRLUFydGlrZWwgb2Jlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnRGVmaW5pZXJ0IGRpZSBTdGFuZGFyZC1Tb3J0aWVydW5nIGRlciBGQVEtU3VjaGUgaW0gQWdlbnRlbi1JbnRlcmZhY2UuIEF1Zjogw4RsdGVzdGVyIEZBUS1BcnRpa2VsIG9iZW4uIEFiOiBOZXVlc3RlciBGQVEtQXJ0aWtlbCBvYmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICdEZWZpbmllcnQgZGllIFN0YW5kYXJkLVNvcnRpZXJ1bmcgZGVyIEZBUS1TdWNoZSBpbSBLdW5kZW4tSW50ZXJmYWNlLiBBdWY6IMOEbHRlc3RlciBGQVEtQXJ0aWtlbCBvYmVuLiBBYjogTmV1ZXN0ZXIgRkFRLUFydGlrZWwgb2Jlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ0RlZmluaWVydCBkaWUgU3RhbmRhcmQtU29ydGllcnVuZyBkZXIgRkFRLVN1Y2hlIGltIFB1YmxpYy1JbnRlcmZhY2UuIEF1Zjogw4RsdGVzdGVyIEZBUS1BcnRpa2VsIG9iZW4uIEFiOiBOZXVlc3RlciBGQVEtQXJ0aWtlbCBvYmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNob3duIEZBUSBzZWFyY2ggYXR0cmlidXRlIGZvciBGQVEgc2VhcmNoIHNjcmVlbi4nfSA9CiAgICAgICAgJ0RlZmluaWVydCBkaWUgU3RhbmRhcmRhdHRyaWJ1dGUgZsO8ciBkaWUgU3VjaGUgaW4gZGVuIEjDpHVmaWctZ2VzdGVsbHRlbi1GcmFnZW4gaW0gSMOkdWZpZy1nZXN0ZWxsdGUtRnJhZ2VuIFN1Y2hkaWFsb2cuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGhlaWdodCBmb3IgdGhlIHJpY2ggdGV4dCBlZGl0b3IgY29tcG9uZW50IGZvciB0aGlzIHNjcmVlbi4gRW50ZXIgbnVtYmVyIChwaXhlbHMpIG9yIHBlcmNlbnQgdmFsdWUgKHJlbGF0aXZlKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBpbmZvcm1hdGlvbiB0byBiZSBpbnNlcnRlZCBpbiBhIEZBUSBiYXNlZCBUaWNrZXQuICJGdWxsIEZBUSIgaW5jbHVkZXMgdGV4dCwgYXR0YWNobWVudHMgYW5kIGlubGluZSBpbWFnZXMuJ30gPQogICAgICAgICdEZWZpbmllcnQgZGllIEluZm9ybWF0aW9uZW4sIHdlbGNoZSBpbiBlaW4gRkFRLWJhc2llcmVuZGVzIFRpY2tldCBlaW5nZWdlYmVuIHdlcmRlbi4gIktvbXBsZXR0ZSBGQVEiIGJlaW5oYWx0ZXQgZGVuIFRleHQsIEFuaMOkbmdlIHVuZCBJbmxpbmUtQmlsZGVyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZGFzaGJvYXJkIGJhY2tlbmQuICJMaW1pdCIgZGVmaW5lcyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgZGlzcGxheWVkIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCBhY2Nlc3MgdG8gdGhlIHBsdWdpbiAoZS4gZy4gR3JvdXA6IGFkbWluO2dyb3VwMTtncm91cDI7KS4gIkRlZmF1bHQiIGluZGljYXRlcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuJ30gPQogICAgICAgICdEZWZpbmllcnQgZGllIFBhcmFtZXRlciBmw7xyIGRhcyDDnGJlcnNpY2h0c3NlaXRlbi1CYWNrZW5kLiAiTGltaXQiIGRlZmluaWVydCBkaWUgQW56YWhsIGRlciBFaW50csOkZ2UsIGRpZSBzdGFuZGFyZG3DpMOfaWcgYW5nZXplaWd0IHdlcmRlbi4gIkdyb3VwIiB3aXJkIHZlcndlbmRldCwgdW0gZGVuIFp1Z3JpZmYgYXVmIGRhcyBQbHVnaW4genUgYmVncmVuemVuIChic3B3LiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgc3RldWVydCwgb2IgZGFzIFBsdWdpbiBzdGFuZGFyZG3DpMOfaWcgYWt0aXZpZXJ0IGlzdCBvZGVyIG9iIGRlciBVc2VyIGVzIG1hbnVlbGwgYWt0aXZpZXJlbiBtdXNzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBGQVEgRXhwbG9yZXIuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdEZWZpbmVydCBkaWUgYW5nZXplaWd0ZW4gU3BhbHRlbiBpbSBGQVEtRXhwbG9yZXIuIERpZXNlIE9wdGlvbiBoYXQga2VpbmUgQXVzd2lya3VuZyBhdWYgZGllIFBvc2l0aW9uIGRlciBTcGFsdGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBGQVEgam91cm5hbC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ0RlZmluZXJ0IGRpZSBhbmdlemVpZ3RlbiBTcGFsdGVuIGltIEZBUS1Kb3VybmFsLiBEaWVzZSBPcHRpb24gaGF0IGtlaW5lIEF1c3dpcmt1bmcgYXVmIGRpZSBQb3NpdGlvbiBkZXIgU3BhbHRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgRkFRIHNlYXJjaC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ0RlZmluZXJ0IGRpZSBhbmdlemVpZ3RlbiBTcGFsdGVuIGluIGRlciBGQVEtU3VjaGUuIERpZXNlIE9wdGlvbiBoYXQga2VpbmUgQXVzd2lya3VuZyBhdWYgZGllIFBvc2l0aW9uIGRlciBTcGFsdGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHdoZXJlIHRoZSBcJ0luc2VydCBGQVFcJyBsaW5rIHdpbGwgYmUgZGlzcGxheWVkLid9ID0gJ0RlZmluaWVydCB3byBkZXIgTGluayBhdXMgXCdGQVEgZWluZsO8Z2VuXCcgYW5nZXplaWd0IHdpcmQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluaXRpb24gb2YgRkFRIGl0ZW0gZnJlZSB0ZXh0IGZpZWxkLid9ID0gJ0RlZmluaXRpb24gZGVyIGZyZWllbiBUZXh0ZmVsZGVyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhpcyBGQVEnfSA9ICdEaWVzZSBGQVEgbMO2c2NoZW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQW5nZXplaWd0ZSBEeW5hbWlzY2hlIEZlbGRlciBpbSBGQVEgRXJzdGVsbC1CaWxkc2NoaXJtIGRlcyBBZ2VudGVuYmVyZWljaHMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0FuZ2V6ZWlndGUgRHluYW1pc2NoZSBGZWxkZXIgaW0gRkFRIEJlYXJiZWl0dW5ncy1CaWxkc2NoaXJtIGRlcyBBZ2VudGVuYmVyZWljaHMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgb3ZlcnZpZXcgc2NyZWVuIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICdBbmdlemVpZ3RlIER5bmFtaXNjaGUgRmVsZGVyIGluIGRlciBGQVEgw5xiZXJzaWNodCBkZXMgS3VuZGVuYmVyZWljaHMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgb3ZlcnZpZXcgc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQW5nZXplaWd0ZSBEeW5hbWlzY2hlIEZlbGRlciBpbiBkZXIgRkFRIMOcYmVyc2ljaHQgZGVzIMO2ZmZlbnRsaWNoZW4gQmVyZWljaHMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgcHJpbnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdBbmdlemVpZ3RlIER5bmFtaXNjaGUgRmVsZGVyIGltIEZBUSBEcnVjay1CaWxkc2NoaXJtIGRlcyBBZ2VudGVuYmVyZWljaHMuICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHByaW50IHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQW5nZXplaWd0ZSBEeW5hbWlzY2hlIEZlbGRlciBpbSBGQVEgRHJ1Y2stQmlsZHNjaGlybSBkZXMgS3VuZGVuYmVyZWljaHMuICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHByaW50IHNjcmVlbiBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0FuZ2V6ZWlndGUgRHluYW1pc2NoZSBGZWxkZXIgaW0gRkFRIERydWNrLUJpbGRzY2hpcm0gZGVzIMO2ZmZlbnRsaWNoZW4gQmVyZWljaHMuICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHNlYXJjaCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0FuZ2V6ZWlndGUgRHluYW1pc2NoZSBGZWxkZXIgaW0gRkFRIFN1Y2gtQmlsZHNjaGlybSBkZXMgQWdlbnRlbmJlcmVpY2hzLiAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBzZWFyY2ggc2NyZWVuIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICdBbmdlemVpZ3RlIER5bmFtaXNjaGUgRmVsZGVyIGltIEZBUSBTdWNoLUJpbGRzY2hpcm0gZGVzIEt1bmRlbmJlcmVpY2hzLiAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBzZWFyY2ggc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQW5nZXplaWd0ZSBEeW5hbWlzY2hlIEZlbGRlciBpbSBGQVEgU3VjaC1CaWxkc2NoaXJtIGRlcyDDtmZmZW50bGljaGVuIEJlcmVpY2hzLiAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBzbWFsbCBmb3JtYXQgb3ZlcnZpZXcgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdBbmdlemVpZ3RlIGR5bmFtaXNjaGUgRmVsZGVyIGluIGRlciBLbGVpbmFuc2ljaHQgdm9uIEZBUS1BcnRpa2VsbiBpbSBBZ2VudGVuYmVyZWljaC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQW5nZXplaWd0ZSBEeW5hbWlzY2hlIEZlbGRlciBpbSBGQVEgWm9vbS1CaWxkc2NoaXJtIGRlcyBBZ2VudGVuYmVyZWljaHMuICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHpvb20gc2NyZWVuIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICdBbmdlemVpZ3RlIER5bmFtaXNjaGUgRmVsZGVyIGltIEZBUSBab29tLUJpbGRzY2hpcm0gZGVzIEt1bmRlbmJlcmVpY2hzLiAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSB6b29tIHNjcmVlbiBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0FuZ2V6ZWlndGUgRHluYW1pc2NoZSBGZWxkZXIgaW0gRkFRIFpvb20tQmlsZHNjaGlybSBkZXMgw7ZmZmVudGxpY2hlbiBCZXJlaWNocy4gJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhpcyBGQVEnfSA9ICdGQVEgYmVhcmJlaXRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgbXVsdGlwbGUgbGFuZ3VhZ2VzIG9uIEZBUSBtb2R1bGUuJ30gPSAnTXVsdGlwbGUgU3ByYWNoZW4gaW0gRkFRLU1vZHVsIGFrdGl2aWVyZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSBzZXJ2aWNlIGFzc2lnbm1lbnQgZm9yIEZBUXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB0aGUgcmVsYXRlZCBhcnRpY2xlIGZlYXR1cmUgZm9yIHRoZSBjdXN0b21lciBmcm9udGVuZC4nfSA9CiAgICAgICAgJ0FrdGl2aWVyZW4gU2llIGRpZSB6dWdlaMO2cmlnZSBBcnRpa2VsZnVua3Rpb24gZsO8ciBkYXMgS3VuZGVuLUZyb250ZW5kLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgdm90aW5nIG1lY2hhbmlzbSBvbiBGQVEgbW9kdWxlLid9ID0gJ0Jld2VydHVuZ3MtTWVjaGFuaXNtdXMgaW0gRkFRLU1vZHVsIGFrdGl2aWVyZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4cGxvcmVyJ30gPSAnQW5zaWNodCBuYWNoIEthdGVnb3JpZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFKQVggUmVzcG9uZGVyJ30gPSAnRkFRIEFKQVggUmVzcG9uZGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBSkFYIFJlc3BvbmRlciBmb3IgUmljaHRleHQuJ30gPSAnRkFRIEFKQVggUmVzcG9uZGVyIGbDvHIgUmljaHRleHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcmVhJ30gPSAnRkFRLUJlcmVpY2gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFyZWEuJ30gPSAnRkFRLUJlcmVpY2guJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBEZWxldGUuJ30gPSAnRkFRIEzDtnNjaGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgRWRpdC4nfSA9ICdGQVEgQmVhcmJlaXRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEhpc3RvcnkuJ30gPSAnRkFRIEhpc3RvcmllLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSm91cm5hbCBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnRkFRLUpvdXJuYWwgQW56ZWlnZS1MaW1pdCBmw7xyIGRpZSBTbWFsbC1BbnNpY2h0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnRkFRLcOcYmVyc2ljaHQgImtsZWluZXMiIExpbWl0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBQcmludC4nfSA9ICdGQVEgRHJ1Y2tlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIHNlYXJjaCBiYWNrZW5kIHJvdXRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0gJ1N1Y2gtQmFja2VuZC1Sb3V0ZXIgZsO8ciBkaWUgRkFRLVN1Y2hlIGltIEFnZW50ZW4tSW50ZXJmYWNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWVsZDQnfSA9ICdGZWxkNCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWVsZDUnfSA9ICdGZWxkNSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGdWxsIEZBUSd9ID0gJ1ZvbGxzdMOkbmRpZ2VzIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICdHcnVwcGUgZsO8ciBkaWUgRnJlaWdhYmUgdm9uIEZBUS1BcnRpa2Vsbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiB0aGlzIEZBUSd9ID0gJ0ZBUS1IaXN0b3JpZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBhY3RpdmF0ZWQsIEZBUSBhcnRpY2xlcyBvZiBzdGF0dXMgdHlwZSBpbnRlcm5hbCBhcmUgYWxzbyB0YWtlbiBpbnRvIGFjY291bnQgZm9yIHRoZSBhcHByb3ZhbCBwcm9jZXNzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgaW50ZXJuYWwgZmllbGRzIG9uIGEgRkFRIGJhc2VkIFRpY2tldC4nfSA9ICdJbnRlcm5lIEZBUS1GZWxkZXIgaW4gZWluZW0gRkFRLWJhc2llcnRlblRpY2tldCB2ZXJ3ZW5kZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgdGhlIG5hbWUgb2YgZWFjaCBmaWVsZCBpbiBhIEZBUSBiYXNlZCBUaWNrZXQuJ30gPSAnRGVuIE5hbWVuIGplZGVzIEZBUS1GZWxkZXMgZWluZW0gRkFRLWJhc2llcnRlbiBUaWNrZXQgdmVyd2VuZGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnRlcmZhY2VzIHdoZXJlIHRoZSBxdWljayBzZWFyY2ggc2hvdWxkIGJlIHNob3duLid9ID0gJ09iZXJmbMOkY2hlIGF1ZiBkZXIgZGllIFNjaG5lbGxzdWNoZSBhbmdlemVpZ3Qgd2VyZGVuIHNvbGwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSm91cm5hbCd9ID0gJ0pvdXJuYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFuZ3VhZ2UgTWFuYWdlbWVudCd9ID0gJ1NwcmFjaGVudmVyd2FsdHVuZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYW5ndWFnZSBNYW5hZ2VtZW50Lid9ID0gJ1NwcmFjaGVudmVyd2FsdHVuZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGltaXQgZm9yIHRoZSBzZWFyY2ggdG8gYnVpbGQgdGhlIGtleXdvcmQgRkFRIGFydGljbGUgbGlzdC4nfSA9ICdMaW1pdCBmw7xyIGRpZSBTdWNoZSBiZWltIEVyc3RlbGxlbiBkZXIgU2NobMO8c3NlbHdvcnQtRkFRLUFydGlrZWwtTGlzdGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhpcyBGQVEgaXRlbSd9ID0gJ0RpZXNlIEZBUSBtaXQgZWluZW0gYW5kZXJlbiBPYmpla3QgdmVya27DvHBmZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBxdWV1ZSBuYW1lcyBmb3Igd2hpY2ggdGhlIHJlbGF0ZWQgYXJ0aWNsZSBmZWF0dXJlIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICdMaXN0ZSBkZXIgUXVldWUtTmFtZW4gZsO8ciB3ZWxjaGUgZGllIHp1Z2Vow7ZyaWdlbiBBcnRpa2VsLUZlYXR1cmUgYWt0aXZpZXJ0IHd1cmRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBzdGF0ZSB0eXBlcyB3aGljaCBjYW4gYmUgdXNlZCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTGlzdGUgZGVyIFN0YXR1c3R5cGVuLCBkaWUgaW4gZGVyIEFnZW50ZW5vYmVyZmzDpGNoZSBnZW51dHp0IHdlcmRlbiBrw7ZubmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIHN0YXRlIHR5cGVzIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICdMaXN0ZSBkZXIgU3RhdHVzdHlwZW4sIGRpZSBpbiBkZXIgS3VuZGVub2JlcmZsw6RjaGUgZ2VudXR6dCB3ZXJkZW4ga8O2bm5lbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBzdGF0ZSB0eXBlcyB3aGljaCBjYW4gYmUgdXNlZCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0xpc3RlIGRlciBTdGF0dXN0eXBlbiwgZGllIGluIGRlciDDtmZmZW50bGljaGVuIE9iZXJmbMOkY2hlIGdlbnV0enQgd2VyZGVuIGvDtm5uZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xvYWRlciBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9ICdMYWRlLU1vZHVscmVnaXN0cmllcnVuZyBmw7xyIGRhcyDDtmZmZW50bGljaGUgSW50ZXJmYWNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNYXhpbWFsZSBBbnphaGwgdm9uIEZBUS1BcnRpa2VsbiBkaWUgaW0gRkFRLUV4cGxvcmVybCBpbSBBZ2VudGVuLUludGVyZmFjZSBhbmdlemVpZ3Qgd2VyZGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNYXhpbWFsZSBBbnphaGwgdm9uIEZBUS1BcnRpa2VsbiBkaWUgaW4gZGVyIEZBUS1FeHBsb3JlciBpbSBLdW5kZW4tSW50ZXJmYWNlIGFuZ2V6ZWlndCB3ZXJkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNYXhpbWFsZSBBbnphaGwgdm9uIEZBUS1BcnRpa2VsbiBkaWUgaW4gZGVyIEZBUS1FeHBsb3JlciBpbSBQdWJsaWMtSW50ZXJmYWNlIGFuZ2V6ZWlndCB3ZXJkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBqb3VybmFsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNYXhpbWFsZSBBbnphaGwgdm9uIEZBUS1BcnRpa2VsbiBkaWUgaW0gRkFRLUpvdXJuYWwgaW0gQWdlbnRlbi1JbnRlcmZhY2UgYW5nZXplaWd0IHdlcmRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgcmVzdWx0IG9mIGEgc2VhcmNoIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNYXhpbWFsZSBBbnphaGwgdm9uIEZBUS1BcnRpa2VsbiBkaWUgaW4gZGVyIEZBUS1TdWNoZSBpbSBBZ2VudGVuLUludGVyZmFjZSBhbmdlemVpZ3Qgd2VyZGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSByZXN1bHQgb2YgYSBzZWFyY2ggaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01heGltYWxlIEFuemFobCB2b24gRkFRLUFydGlrZWxuIGRpZSBpbiBkZXIgRkFRLVN1Y2hlIGltIEt1bmRlbi1JbnRlcmZhY2UgYW5nZXplaWd0IHdlcmRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgcmVzdWx0IG9mIGEgc2VhcmNoIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWF4aW1hbGUgQW56YWhsIHZvbiBGQVEtQXJ0aWtlbG4gZGllIGluIGRlciBGQVEtU3VjaGUgaW0gUHVibGljLUludGVyZmFjZSBhbmdlemVpZ3Qgd2VyZGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgRXhwbG9yZXIgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01heGltYWxlIEdyw7bDn2Ugdm9uIFRpdGVsbiBpbiBIw6R1ZmlnLWdlc3RlbGx0ZW4tRnJhZ2VuLUJlaXRyw6RnZW4gd2VsY2hlIGltIEjDpHVmaWctZ2VzdGVsbHRlLUZyYWdlbi1FeHBsb3JlciBkZXIgQWdlbnRlbsO8YmVyc2ljaHQgYW5nZXplaWd0IHdlcmRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIEV4cGxvcmVyIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNYXhpbWFsZSBHcsO2w59lIHZvbiBUaXRlbG4gaW4gSMOkdWZpZy1nZXN0ZWxsdGVuLUZyYWdlbi1CZWl0csOkZ2VuIHdlbGNoZSBpbSBIw6R1ZmlnLWdlc3RlbGx0ZS1GcmFnZW4tRXhwbG9yZXIgZGVyIEt1bmRlbsO8YmVyc2ljaHQgYW5nZXplaWd0IHdlcmRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIEV4cGxvcmVyIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWF4aW1hbGUgR3LDtsOfZSB2b24gVGl0ZWxuIGluIEjDpHVmaWctZ2VzdGVsbHRlbi1GcmFnZW4tQmVpdHLDpGdlbiB3ZWxjaGUgaW0gSMOkdWZpZy1nZXN0ZWxsdGUtRnJhZ2VuLUV4cGxvcmVyIGRlciDDtmZmZW50bGljaGVuIMOcYmVyc2ljaHQgYW5nZXplaWd0IHdlcmRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIFNlYXJjaCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWF4aW1hbGUgR3LDtsOfZSB2b24gVGl0ZWxuIGluIEjDpHVmaWctZ2VzdGVsbHRlbi1GcmFnZW4tQmVpdHLDpGdlbiB3ZWxjaGUgaW4gZGVyIEjDpHVmaWctZ2VzdGVsbHRlLUZyYWdlbi1TdWNoZSBkZXIgQWdlbnRlbsO8YmVyc2ljaHQgYW5nZXplaWd0IHdlcmRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIFNlYXJjaCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWF4aW1hbGUgR3LDtsOfZSB2b24gVGl0ZWxuIGluIEjDpHVmaWctZ2VzdGVsbHRlbi1GcmFnZW4tQmVpdHLDpGdlbiB3ZWxjaGUgaW4gZGVyIEjDpHVmaWctZ2VzdGVsbHRlLUZyYWdlbi1TdWNoZSBkZXIgS3VuZGVuw7xiZXJzaWNodCBhbmdlemVpZ3Qgd2VyZGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgU2VhcmNoIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWF4aW1hbGUgR3LDtsOfZSB2b24gVGl0ZWxuIGluIEjDpHVmaWctZ2VzdGVsbHRlbi1GcmFnZW4tQmVpdHLDpGdlbiB3ZWxjaGUgaW4gZGVyIEjDpHVmaWctZ2VzdGVsbHRlLUZyYWdlbi1TdWNoZSBkZXIgw7ZmZmVudGxpY2hlbiDDnGJlcnNpY2h0IGFuZ2V6ZWlndCB3ZXJkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBqb3VybmFsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNYXhpbWFsZSBHcsO2w59lIHZvbiBUaXRlbG4gaW4gSMOkdWZpZy1nZXN0ZWxsdGVuLUZyYWdlbi1CZWl0csOkZ2VuIHdlbGNoZSBpbiBGQVEtQmVyaWNodGVuIGluIGRlciBBZ2VudGVuw7xiZXJzaWNodCBhbmdlemVpZ3Qgd2VyZGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gZ2VuZXJhdGUgSFRNTCBPcGVuU2VhcmNoIHByb2ZpbGUgZm9yIHNob3J0IEZBUSBzZWFyY2ggaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01vZHVsIHp1bSBFcnpldWdlbiBkZXMgSFRNTCBPcGVuU2VhcmNoLVByb2ZpbHMgZsO8ciBkaWUga3VyemUgRkFRLVN1Y2hlIGltIEt1bmRlbi1JbnRlcmZhY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBnZW5lcmF0ZSBIVE1MIE9wZW5TZWFyY2ggcHJvZmlsZSBmb3Igc2hvcnQgRkFRIHNlYXJjaCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01vZHVsIHp1bSBHZW5lcmllcmVuIGRlcyBIVE1MICJPcGVuU2VhcmNoIiBQcm9maWxzIHp1ciBGQVEtU3VjaGUgaW4gZGVyIMO2ZmZlbnRsaWNoZW4gT2JlcmZsw6RjaGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBnZW5lcmF0ZSBodG1sIE9wZW5TZWFyY2ggcHJvZmlsZSBmb3Igc2hvcnQgRkFRIHNlYXJjaC4nfSA9CiAgICAgICAgJ01vZHVsIHp1bSBHZW5lcmllcmVuIGRlcyBIVE1MICJPcGVuU2VhcmNoIi1Qcm9maWxzIHp1ciBGQVEtU3VjaGUgw7xiZXIgZGFzIEJyb3dzZXItU3VjaGZlbGQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBGQVEgQXJ0aWNsZS4nfSA9ICdOZXVlciBGQVEtQXJ0aWtlbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEZBUSBhcnRpY2xlcyBuZWVkIGFwcHJvdmFsIGJlZm9yZSB0aGV5IGdldCBwdWJsaXNoZWQuJ30gPSAnTmV1ZSBGQVEtQXJ0aWtlbCBiZW7DtnRpZ2VuIGVpbmUgRnJlaWdhYmUgdm9yIGRlciBWZXLDtmZmZW50bGljaHVuZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWF4aW1hbGUgQW56YWhsIHZvbiBGQVEtQXJ0aWtlbG4gZGllIGltIEZBUS1FeHBsb3JlciBpbSBLdW5kZW4tSW50ZXJmYWNlIGFuZ2V6ZWlndCB3ZXJkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNYXhpbWFsZSBBbnphaGwgdm9uIEZBUS1BcnRpa2VsbiBkaWUgaW0gRkFRLUV4cGxvcmVyIGluIGRlciDDtmZmZW50bGljaGVuIE9iZXJmbMOkY2hlIGFuZ2V6ZWlndCB3ZXJkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIG9uIGVhY2ggcGFnZSBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1NldHp0IGluIFN1Y2hlcmdlYm5pc3NlbiBkaWUgQW56YWhsIHZvbiBGQVEtQXJ0aWtlbG4gcHJvIFNlaXRlIGluIGRlciBLdW5kZW5vYmVyZmzDpGNoZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgb24gZWFjaCBwYWdlIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1NldHp0IGluIFN1Y2hlcmdlYm5pc3NlbiBkaWUgQW56YWhsIHZvbiBGQVEtQXJ0aWtlbG4gcHJvIFNlaXRlIGluIGRlciDDtmZmZW50bGljaGVuIE9iZXJmbMOkY2hlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2Ygc2hvd24gaXRlbXMgaW4gbGFzdCBjaGFuZ2VzLid9ID0gJ0FuemFobCBkZXIgenUgYW56ZWlnZW5kZW4gQXJ0aWtlbCBpbiBsZXR6dGVuIMOEbmRlcnVuZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2Ygc2hvd24gaXRlbXMgaW4gbGFzdCBjcmVhdGVkLid9ID0gJ0FuemFobCBkZXIgYW56dXplaWdlbmRlbiBBcnRpa2VsIGluIHp1bGV0enQgZXJzdGVsbHRlIEFydGlrZWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBzaG93biBpdGVtcyBpbiB0aGUgdG9wIDEwIGZlYXR1cmUuJ30gPSAnQW56YWhsIGRlciBhbnp1emVpZ2VuZGVuIEFydGlrZWwgaW0gVG9wIDEwIEZlYXR1cmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J091dHB1dCBmaWx0ZXIgdG8gYWRkIEphdmEtc2NyaXB0IHRvIEN1c3RvbWVyVGlja2V0TWVzc2FnZSBzY3JlZW4uJ30gPQogICAgICAgICdBdXNnYWJlZmlsdGVyIHp1bSBIaW56dWbDvGdlbiB2b24gSmF2YVNjcmlwdCB6dXIgS3VuZGVuLVRpY2tldC1BbnNpY2h0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdXRwdXQgbGltaXQgZm9yIHRoZSByZWxhdGVkIEZBUSBhcnRpY2xlcy4nfSA9ICdBdXNnYWJlLUxpbWl0IGRlciB6dWdlaMO2cmlnZW4gRkFRLUFydGlrZWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIEZBUSBpdGVtcyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBGQVEgam91cm5hbCBvdmVydmlldy4nfSA9CiAgICAgICAgJ1BhcmFtZXRlciBmw7xyIGRpZSBTZWl0ZW4gKGluIGRlbmVuIEZBUS1BcnRpa2VsIGFuZ2V6ZWlndCB3ZXJkZW4pIGbDvHIgZGllIFNtYWxsLUFuc2ljaHQgZGVzIEZBUS1Kb3VybmFscy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgRkFRIGl0ZW1zIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIEZBUSBvdmVydmlldy4nfSA9CiAgICAgICAgJ1BhcmFtZXRlciBmw7xyIGRpZSBTZWl0ZW4gKGluIGRlbmVuIEZBUS1BcnRpa2VsIGFuZ2V6ZWlndCB3ZXJkZW4pIGbDvHIgZGllIFNtYWxsLUFuc2ljaHQgZGVzIEZBUS1PdmVyaWV3cy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhpcyBGQVEnfSA9ICdGQVEgZHJ1Y2tlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRIFByaW50Lid9ID0gJ8OWZmZlbnRsaWNoZXMgRkFRIERydWNrZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBGQVEgWm9vbS4nfSA9ICfDlmZmZW50bGljaGUgRkFRIERldGFpbGFuc2ljaHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBGQVEgc2VhcmNoLid9ID0gJ8OWZmZlbnRsaWNoZXMgRkFRIFN1Y2hlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIEZBUS4nfSA9ICfDlmZmZW50bGljaGVzIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVldWUgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPSAnUXVldWUgZsO8ciBkaWUgRnJlaWdhYmUgdm9uIEZBUS1BcnRpa2Vsbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0ZXMgZm9yIHZvdGluZy4gS2V5IG11c3QgYmUgaW4gcGVyY2VudC4nfSA9ICdHZXdpY2h0dW5nIGbDvHIgZGllIEJld2VydHVuZy4gRGVyIEtleSBtdXNzIGluIFByb3plbnQgYW5nZWdlYmVuIHdlcmRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUyd9ID0gJ1MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIEZBUSd9ID0gJ0ZBUSBkdXJjaHN1Y2hlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggRkFRIFNtYWxsLid9ID0gJ0ZBUSBkdXJjaHN1Y2hlbiAiS2xlaW4iLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggRkFRLid9ID0gJ0ZBUSBkdXJjaHN1Y2hlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGhvdyBtYW55IGl0ZW1zIHNob3VsZCBiZSBzaG93biBpbiBKb3VybmFsIE92ZXJ2aWV3ICJTbWFsbCIgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJ0F1c3dhaGwsIHdpZSB2aWVsZSBGQVEtQXJ0aWtlbCBpbiBkZXIgSm91cm5hbC3DnGJlcnNpY2h0ICJLbGVpbiIgc3RhbmRhcmRtw6TDn2lnIGFuZ2V6ZWlndCB3ZXJkZW4gc29sbGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgaG93IG1hbnkgaXRlbXMgc2hvdWxkIGJlIHNob3duIGluIE92ZXJ2aWV3ICJTbWFsbCIgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJ0F1c3dhaGwsIHdpZSB2aWVsZSBGQVEtQXJ0aWtlbCBpbiBkZXIgw5xiZXJzaWNodCAiS2xlaW4iIHN0YW5kYXJkbcOkw59pZyBhbmdlemVpZ3Qgd2VyZGVuIHNvbGxlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBkZWZhdWx0IGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gQWdlbnRGQVFab29tLid9ID0KICAgICAgICAnU2V0enQgZGllIG1heGltYWxlIEjDtmhlIChpbiBQaXhlbG4pIHZvbiBJbmxpbmUtSFRNTC1GZWxkZXIgaW4gQWdlbnRGQVFab29tLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBDdXN0b21lckZBUVpvb20gKGFuZCBQdWJsaWNGQVFab29tKS4nfSA9CiAgICAgICAgJ1NldHp0IGRpZSBtYXhpbWFsZSBIw7ZoZSAoaW4gUGl4ZWxuKSB2b24gSW5saW5lLUhUTUwtRmVsZGVyIGluIEN1c3RvbWVyRkFRWm9vbSAodW5kIFB1YmxpY0ZBUVpvb20pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBBZ2VudEZBUVpvb20uJ30gPQogICAgICAgICdTZXR6dCBkaWUgbWF4aW1hbGUgSMO2aGUgKGluIFBpeGVsbikgdm9uIElubGluZS1IVE1MLUZlbGRlciBpbiBBZ2VudEZBUVpvb20uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgbWF4aW11bSBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEN1c3RvbWVyRkFRWm9vbSAoYW5kIFB1YmxpY0ZBUVpvb20pLid9ID0KICAgICAgICAnU2V0enQgZGllIG1heGltYWxlIEjDtmhlIChpbiBQaXhlbG4pIHZvbiBJbmxpbmUtSFRNTC1GZWxkZXIgaW4gQ3VzdG9tZXJGQVFab29tICh1bmQgUHVibGljRkFRWm9vbSkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgIkluc2VydCBGQVEgTGluayIgQnV0dG9uIGluIEFnZW50RkFRWm9vbVNtYWxsIGZvciBwdWJsaWMgRkFRIEFydGljbGVzLid9ID0KICAgICAgICAnWmVpZ3QgZGllIFNjaGFsdGZsw6RjaGUgIkZBUS1MaW5rIGVpbmbDvGdlbiIgaW4gQWdlbnRGQVFab29tU21hbGwgZsO8ciDDtmZmZW50bGljaGUgRkFRLUFydGlrZWwgYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgIkluc2VydCBGQVEgVGV4dCAmIExpbmsiIC8gIkluc2VydCBGdWxsIEZBUSAmIExpbmsiIEJ1dHRvbiBpbiBBZ2VudEZBUVpvb21TbWFsbCBmb3IgcHVibGljIEZBUSBBcnRpY2xlcy4nfSA9CiAgICAgICAgJ1plaWd0IGRpZSBTY2hhbHRmbMOkY2hlICJGQVEtVGV4dCAmIExpbmsgZWluZsO8Z2VuIC8gS29tcGxldHRlIEZBUSAmIExpbmsgZWluZsO8Z2VuIiBpbiBBZ2VudEZBUVpvb21TbWFsbCBmw7xyIMO2ZmZlbnRsaWNoZSBGQVEtQXJ0aWtlbCBhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyAiSW5zZXJ0IEZBUSBUZXh0IiAvICJJbnNlcnQgRnVsbCBGQVEiIEJ1dHRvbiBpbiBBZ2VudEZBUVpvb21TbWFsbC4nfSA9CiAgICAgICAgJ1plaWd0IGRpZSBTY2hhbHRmbMOkY2hlICJGQVEtVGV4dCBlaW5mw7xnZW4gLyBLb21wbGV0dGUgRkFRIGVpbmbDvGdlbiIgaW4gQWdlbnRGQVFab29tU21hbGwgYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgRkFRIEFydGljbGUgd2l0aCBIVE1MLid9ID0gJ0hUTUwgRGFyc3RlbGx1bmcgZGVyIEZBUS1BcnRpa2VsIGVpbnNjaGFsdGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IEZBUSBwYXRoIHllcy9uby4nfSA9ICdGQVEgUGZhZCBhbnplaWdlbiBqYS9uZWluLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGludmFsaWQgaXRlbXMgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1plaWdlIHVuZ8O8bHRpZ2UgRWludHLDpGdlIGltIEZBUS1FeHBsb3Jlci1FcmdlYm5pcyBkZXIgQWdlbnRlbi1PYmVyZmzDpGNoZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBpdGVtcyBvZiBzdWJjYXRlZ29yaWVzLid9ID0gJ0FydGlrZWwgYXVzIFN1YmthdGVnb3JpZW4gYW56ZWlnZW4gamEvbmVpbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBsYXN0IGNoYW5nZSBpdGVtcyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAnSW50ZXJmYWNlcyBpbiBkZW5lbiBkYXMgTGFzdENoYW5nZSBGZWF0dXJlIGFuZ2V6ZWlndCB3ZXJkZW4gc29sbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBsYXN0IGNyZWF0ZWQgaXRlbXMgaW4gZGVmaW5lZCBpbnRlcmZhY2VzLid9ID0gJ0ludGVyZmFjZXMgaW4gZGVuZW4gZGFzIExhc3RDcmVhdGUgRmVhdHVyZSBhbmdlemVpZ3Qgd2VyZGVuIHNvbGwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgcmVsYXRlZCBhcnRpY2xlcyBvbiBzZXJ2aWNlIGNoYW5nZSBldmVuIHdpdGggZW1wdHkgc3ViamVjdCBhbmQgYm9keS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHRoZSBzdGFycyBmb3IgdGhlIGFydGljbGVzIHdpdGggYSByYXRpbmcgZXF1YWwgb3IgZ3JlYXRlciBsaWtlIHRoZSBkZWZpbmVkIHZhbHVlIChzZXQgdmFsdWUgXCcwXCcgdG8gZGVhY3RpdmF0ZSB0aGUgb3V0cHV0KS4nfSA9CiAgICAgICAgJ1plaWd0IGRpZSBTdGVybmUgZsO8ciBkaWUgQXJ0aWtlbCBtaXQgZWluZXIgQmV3ZXJ0dW5nIGdsZWljaCBvZGVyIGdyw7bDn2VyIHdpZSBkZXIgZGVmaW5pZXJ0ZSBXZXJ0IGFuIChTZXR6ZW4gU2llIGRlbiBXZXJ0IGF1ZiBcJzBcJyB6dW0gRGVha3RpdmllcmVuIGRlciBBdXNnYWJlKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB0b3AgMTAgaXRlbXMgaW4gZGVmaW5lZCBpbnRlcmZhY2VzLid9ID0gJ0ludGVyZmFjZXMgaW4gZGVuZW4gZGFzIFRvcCAxMCBGZWF0dXJlIGFuZ2V6ZWlndCB3ZXJkZW4gc29sbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB2b3RpbmcgaW4gZGVmaW5lZCBpbnRlcmZhY2VzLid9ID0gJ0ludGVyZmFjZXMgaW4gZGVuZW4gZGFzIFZvdGluZyBGZWF0dXJlIGFuZ2V6ZWlndCB3ZXJkZW4gc29sbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSBGQVEgd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgem9vbSB2aWV3IG9mIHN1Y2ggRkFRIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdaZWlndCBlaW5lbiBMaW5rIGluIGRlciBNZW51LUxlaXN0ZSBpbiBkZXIgWm9vbS1BbnNpY2h0IGltIEFnZW50ZW4tSW50ZXJmYWNlIGFuLCBkZXIgZXMgZXJtw7ZnbGljaHQgZWluZW4gRkFRLUFydGlrZWwgbWl0IGFuZGVyZW4gT2JqZWt0ZW4genUgdmVya27DvHBmZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyB0byBkZWxldGUgYSBGQVEgaW4gaXRzIHpvb20gdmlldyBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnWmVpZ3QgZWluZW4gTGluayBpbiBkZXIgTWVudS1MZWlzdGUgaW4gZGVyIFpvb20tQW5zaWNodCBpbSBBZ2VudGVuLUludGVyZmFjZSBhbiwgZGVyIGVzIGVybcO2Z2xpY2h0IGVpbmVuIEZBUS1BcnRpa2VsIHp1IGzDtnNjaGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBoaXN0b3J5IG9mIGEgRkFRIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1plaWd0IGVpbmVuIExpbmsgaW4gZGVyIE1lbnUtTGVpc3RlIGluIGRlciBab29tLUFuc2ljaHQgaW0gQWdlbnRlbi1JbnRlcmZhY2UgYW4sIHVtIGRpZSBIaXN0b3JpZSBlaW5lcyBGQVEtQXJ0aWtlbHMgYW56dXplaWdlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSBGQVEgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1plaWd0IGVpbmVuIExpbmsgaW4gZGVyIE1lbnUtTGVpc3RlIGluIGRlciBab29tLUFuc2ljaHQgaW0gQWdlbnRlbi1JbnRlcmZhY2UgYW4sIGRlciBlcyBlcm3DtmdsaWNodCBlaW5lbiBGQVEtQXJ0aWtlbCB6dSBiZWFyYmVpdGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZ28gYmFjayBpbiB0aGUgRkFRIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnWmVpZ3QgZWluZW4gTGluayBpbiBkZXIgTWVudS1MZWlzdGUgaW4gZGVyIFpvb20tQW5zaWNodCBpbSBBZ2VudGVuLUludGVyZmFjZSBhbiwgZGVyIGVzIGVybcO2Z2xpY2h0IHp1ciB2b3JoZXJpZ2VuIFNlaXRlIHp1csO8Y2sgenUgZ2VoZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIEZBUSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnWmVpZ3QgZWluZW4gTGluayBpbiBkZXIgTWVudS1MZWlzdGUgaW4gZGVyIFpvb20tQW5zaWNodCBpbSBBZ2VudGVuLUludGVyZmFjZSBhbiwgZGVyIGVzIGVybcO2Z2xpY2h0IGVpbmVuIEZBUS1BcnRpa2VsIHp1IGRydWNrZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NvbHV0aW9uJ30gPSAnTMO2c3VuZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTeW1wdG9tJ30gPSAnU3ltcHRvbSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZXh0IE9ubHknfSA9ICdOdXIgVGV4dCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgZGVmYXVsdCBsYW5ndWFnZXMgZm9yIHRoZSByZWxhdGVkIEZBUSBhcnRpY2xlcy4nfSA9ICdTdGFuZGFyZC1TcHJhY2hlIGbDvHIgcGFzc2VuZGUgRkFRLUFydGlrZWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIEZBUSwgZS5nLiBGQVEjLCBLQiMsIE15RkFRIy4gVGhlIGRlZmF1bHQgaXMgRkFRIy4nfSA9CiAgICAgICAgJ0RlciBJZGVudGlmaWthdG9yIGbDvHIgZWluZW4gRkFRLUFydGlrZWwsIHouIEIuIEZBUSMsIEtCIywgTXlGQVEjLiBEZXIgU3RhbmRhcmR3ZXJ0IGlzdCBGQVEjLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnRkFRXCcgb2JqZWN0cyB1c2luZyB0aGUgXCdOb3JtYWxcJyBsaW5rIHR5cGUuJ30gPQogICAgICAgICdEZWZpbmllcnQsIGRhc3MgZWluIFwnRkFRXCctT2JqZWt0ZSBtaXQgZGVtIExpbmt0eXAgXCdOb3JtYWxcJyBtaXQgYW5kZXJlbiBcJ0ZBUVwnLU9iamVrdGVuIHZlcmxpbmt0IHdlcmRlbiBrYW5uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnRkFRXCcgb2JqZWN0cyB1c2luZyB0aGUgXCdQYXJlbnRDaGlsZFwnIGxpbmsgdHlwZS4nfSA9CiAgICAgICAgJ0RlZmluaWVydCwgZGFzcyBlaW4gXCdGQVFcJy1PYmpla3RlIG1pdCBkZW0gTGlua3R5cCBcJ1BhcmVudENoaWxkXCcgbWl0IGFuZGVyZW4gXCdGQVFcJy1PYmpla3RlbiB2ZXJsaW5rdCB3ZXJkZW4ga2Fubi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBzZXR0aW5nIGRlZmluZXMgdGhhdCBhIFwnRkFRXCcgb2JqZWN0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciBcJ1RpY2tldFwnIG9iamVjdHMgdXNpbmcgdGhlIFwnTm9ybWFsXCcgbGluayB0eXBlLid9ID0KICAgICAgICAnRGVmaW5pZXJ0LCBkYXNzIGVpbiBcJ0ZBUVwnLU9iamVrdGUgbWl0IGRlbSBMaW5rdHlwIFwnTm9ybWFsXCcgbWl0IGFuZGVyZW4gXCdUaWNrZXRcJy1PYmpla3RlbiB2ZXJsaW5rdCB3ZXJkZW4ga2Fubi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBzZXR0aW5nIGRlZmluZXMgdGhhdCBhIFwnRkFRXCcgb2JqZWN0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciBcJ1RpY2tldFwnIG9iamVjdHMgdXNpbmcgdGhlIFwnUGFyZW50Q2hpbGRcJyBsaW5rIHR5cGUuJ30gPQogICAgICAgICdEZWZpbmllcnQsIGRhc3MgZWluIFwnRkFRXCctT2JqZWt0ZSBtaXQgZGVtIExpbmt0eXAgXCdQYXJlbnRDaGlsZFwnIG1pdCBhbmRlcmVuIFwnVGlja2V0XCctT2JqZWt0ZW4gdmVybGlua3Qgd2VyZGVuIGthbm4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBib2R5IGZvciBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZS4nfSA9ICdCb2R5IGRlcyBUaWNrZXRzIHp1ciBGcmVpZ2FiZSBlaW5lcyBGQVEtQXJ0aWtlbHMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBzdWJqZWN0IGZvciBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZS4gUGVybWl0dGVkIG5vdGlmaWNhdGlvbiB0YWdzIGFyZSA8T1RPQk9fRkFRX05VTUJFUj4sIDxPVE9CT19GQVFfQ0FURUdPUllJRD4sIDxPVE9CT19GQVFfSVRFTUlEPj4gPE9UT0JPX0ZBUV9USVRMRT4gYW5kIDxPVE9CT19GQVFfU1RBVEVJRD4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG9vbGJhciBJdGVtIGZvciBhIHNob3J0Y3V0Lid9ID0gJ1dlcmt6ZXVnbGVpc3RlbmVpbnRyYWcgZsO8ciBkZW4gU2NobmVsbHp1Z3JpZmYuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2V4dGVybmFsIChjdXN0b21lciknfSA9ICdleHRlcm4gKEt1bmRlKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpbnRlcm5hbCAoYWdlbnQpJ30gPSAnaW50ZXJuIChBZ2VudCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncHVibGljIChhbGwpJ30gPSAnw7ZmZmVudGxpY2ggKEFsbGUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3B1YmxpYyAocHVibGljKSd9ID0gJ8O2ZmZlbnRsaWNoICjDtmZmZW50bGljaCknOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdObycsCiAgICAnT2snLAogICAgJ1NldHRpbmdzJywKICAgICdTdWJtaXQnLAogICAgJ1RoaXMgbWlnaHQgYmUgaGVscGZ1bCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Location="Kernel/Language/en_GB_FAQ.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmVuX0dCX0ZBUTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRQWRkCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIEFydGljbGUnfSA9ICdBZGQgRkFRIEFydGljbGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnS2V5d29yZHMnfSA9ICdLZXl3b3Jkcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGNhdGVnb3J5IGlzIHJlcXVpcmVkLid9ID0gJ0EgY2F0ZWdvcnkgaXMgcmVxdWlyZWQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FwcHJvdmFsJ30gPSAnQXBwcm92YWwnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRQ2F0ZWdvcnkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBDYXRlZ29yeSBNYW5hZ2VtZW50J30gPSAnRkFRIENhdGVnb3J5IE1hbmFnZW1lbnQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEZBUSBDYXRlZ29yeSd9ID0gJ0FkZCBGQVEgQ2F0ZWdvcnknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBGQVEgQ2F0ZWdvcnknfSA9ICdFZGl0IEZBUSBDYXRlZ29yeSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgY2F0ZWdvcnknfSA9ICdBZGQgY2F0ZWdvcnknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENhdGVnb3J5J30gPSAnQWRkIENhdGVnb3J5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ2F0ZWdvcnknfSA9ICdFZGl0IENhdGVnb3J5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1YmNhdGVnb3J5IG9mJ30gPSAnU3ViY2F0ZWdvcnkgb2YnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhdCBsZWFzdCBvbmUgcGVybWlzc2lvbiBncm91cC4nfSA9ICdQbGVhc2Ugc2VsZWN0IGF0IGxlYXN0IG9uZSBwZXJtaXNzaW9uIGdyb3VwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBncm91cHMgdGhhdCBjYW4gYWNjZXNzIGFydGljbGVzIGluIHRoaXMgY2F0ZWdvcnkuJ30gPSAnQWdlbnQgZ3JvdXBzIHRoYXQgY2FuIGFjY2VzcyBhcnRpY2xlcyBpbiB0aGlzIGNhdGVnb3J5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXaWxsIGJlIHNob3duIGFzIGNvbW1lbnQgaW4gRXhwbG9yZXIuJ30gPSAnV2lsbCBiZSBzaG93biBhcyBjb21tZW50IGluIEV4cGxvcmVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjYXRlZ29yeT8nfSA9ICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY2F0ZWdvcnk/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gbm90IGRlbGV0ZSB0aGlzIGNhdGVnb3J5LiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBGQVEgYXJ0aWNsZSBhbmQvb3IgaXMgcGFyZW50IG9mIGF0IGxlYXN0IG9uZSBvdGhlciBjYXRlZ29yeSd9ID0KICAgICAgICAnWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgY2F0ZWdvcnkuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIEZBUSBhcnRpY2xlIGFuZC9vciBpcyBwYXJlbnQgb2YgYXQgbGVhc3Qgb25lIG90aGVyIGNhdGVnb3J5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY2F0ZWdvcnkgaXMgdXNlZCBpbiB0aGUgZm9sbG93aW5nIEZBUSBhcnRpY2xlKHMpJ30gPSAnVGhpcyBjYXRlZ29yeSBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgRkFRIGFydGljbGUocyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBjYXRlZ29yeSBpcyBwYXJlbnQgb2YgdGhlIGZvbGxvd2luZyBzdWJjYXRlZ29yaWVzJ30gPSAnVGhpcyBjYXRlZ29yeSBpcyBwYXJlbnQgb2YgdGhlIGZvbGxvd2luZyBzdWJjYXRlZ29yaWVzJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUURlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIEZBUSBhcnRpY2xlPyd9ID0gJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBGQVEgYXJ0aWNsZT8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRJ30gPSAnRkFRJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUV4cGxvcmVyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgRXhwbG9yZXInfSA9ICdGQVEgRXhwbG9yZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVpY2sgU2VhcmNoJ30gPSAnUXVpY2sgU2VhcmNoJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dpbGRjYXJkcyBhcmUgYWxsb3dlZC4nfSA9ICdXaWxkY2FyZHMgYXJlIGFsbG93ZWQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkdmFuY2VkIFNlYXJjaCd9ID0gJ0FkdmFuY2VkIFNlYXJjaCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWJjYXRlZ29yaWVzJ30gPSAnU3ViY2F0ZWdvcmllcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZXMnfSA9ICdGQVEgQXJ0aWNsZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gc3ViY2F0ZWdvcmllcyBmb3VuZC4nfSA9ICdObyBzdWJjYXRlZ29yaWVzIGZvdW5kLic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFIaXN0b3J5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mJ30gPSAnSGlzdG9yeSBvZic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IENvbnRlbnQnfSA9ICdIaXN0b3J5IENvbnRlbnQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRldGltZSd9ID0gJ0NyZWF0ZXRpbWUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRSm91cm5hbE92ZXJ2aWV3U21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEZBUSBKb3VybmFsIGRhdGEgZm91bmQuJ30gPSAnTm8gRkFRIEpvdXJuYWwgZGF0YSBmb3VuZCc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFMYW5ndWFnZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIExhbmd1YWdlIE1hbmFnZW1lbnQnfSA9ICdGQVEgTGFuZ3VhZ2UgTWFuYWdlbWVudCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIExhbmd1YWdlJ30gPSAnQWRkIEZBUSBMYW5ndWFnZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEZBUSBMYW5ndWFnZSd9ID0gJ0VkaXQgRkFRIExhbmd1YWdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZSB0aGlzIGZlYXR1cmUgaWYgeW91IHdhbnQgdG8gd29yayB3aXRoIG11bHRpcGxlIGxhbmd1YWdlcy4nfSA9CiAgICAgICAgJ1VzZSB0aGlzIGZlYXR1cmUgaWYgeW91IHdhbnQgdG8gd29yayB3aXRoIG11bHRpcGxlIGxhbmd1YWdlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGxhbmd1YWdlJ30gPSAnQWRkIGxhbmd1YWdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBMYW5ndWFnZSd9ID0gJ0FkZCBMYW5ndWFnZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IExhbmd1YWdlJ30gPSAnRWRpdCBMYW5ndWFnZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBsYW5ndWFnZS4gSXQgaXMgdXNlZCBpbiBhdCBsZWFzdCBvbmUgRkFRIGFydGljbGUhJ30gPQogICAgICAgICdZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBsYW5ndWFnZS4gSXQgaXMgdXNlZCBpbiBhdCBsZWFzdCBvbmUgRkFRIGFydGljbGUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbGFuZ3VhZ2UgaXMgdXNlZCBpbiB0aGUgZm9sbG93aW5nIEZBUSBBcnRpY2xlKHMpJ30gPSAnVGhpcyBsYW5ndWFnZSBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgRkFRIEFydGljbGUocyknOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRT3ZlcnZpZXdOYXZCYXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRleHQgU2V0dGluZ3MnfSA9ICdDb250ZXh0IFNldHRpbmdzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBhcnRpY2xlcyBwZXIgcGFnZSd9ID0gJ0ZBUSBhcnRpY2xlcyBwZXIgcGFnZSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFPdmVydmlld1NtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBGQVEgZGF0YSBmb3VuZC4nfSA9ICdObyBGQVEgZGF0YSBmb3VuZC4nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRUmVsYXRlZEFydGljbGVzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydvdXQgb2YgNSd9ID0gJ291dCBvZiA1JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVNlYXJjaAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnS2V5d29yZCd9ID0gJ0tleXdvcmQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSAoZS4gZy4gRXF1YWxzIDEwIG9yIEdyZWF0ZXJUaGFuIDYwKSd9ID0gJ1ZvdGUgKGUuZy4gRXF1YWxzIDEwIG9yIEdyZWF0ZXJUaGFuIDYwKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRlIChlLiBnLiBFcXVhbHMgMjUlIG9yIEdyZWF0ZXJUaGFuIDc1JSknfSA9ICdSYXRlIChlLmcuIEVxdWFscyAyNSUgb3IgR3JlYXRlclRoYW4gNzUlKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcHByb3ZlZCd9ID0gJ0FwcHJvdmVkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgY2hhbmdlZCBieSd9ID0gJ0xhc3QgY2hhbmdlZCBieSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDcmVhdGUgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJ0ZBUSBBcnRpY2xlIENyZWF0ZSBUaW1lIChiZWZvcmUvYWZ0ZXIpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENyZWF0ZSBUaW1lIChiZXR3ZWVuKSd9ID0gJ0ZBUSBBcnRpY2xlIENyZWF0ZSBUaW1lIChiZXR3ZWVuKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDaGFuZ2UgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJ0ZBUSBBcnRpY2xlIENoYW5nZSBUaW1lIChiZWZvcmUvYWZ0ZXIpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENoYW5nZSBUaW1lIChiZXR3ZWVuKSd9ID0gJ0ZBUSBBcnRpY2xlIENoYW5nZSBUaW1lIChiZXR3ZWVuKSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFTZWFyY2hPcGVuU2VhcmNoRGVzY3JpcHRpb25GdWxsdGV4dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRRnVsbHRleHQnfSA9ICdGQVFGdWxsdGV4dCc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFTZWFyY2hTbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIFNlYXJjaCd9ID0gJ0ZBUSBTZWFyY2gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvZmlsZSBTZWxlY3Rpb24nfSA9ICdQcm9maWxlIFNlbGVjdGlvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWb3RlJ30gPSAnVm90ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB2b3RlIHNldHRpbmdzJ30gPSAnTm8gdm90ZSBzZXR0aW5ncyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpYyB2b3Rlcyd9ID0gJ1NwZWNpZmljIHZvdGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuIGcuIEVxdWFscyAxMCBvciBHcmVhdGVyVGhhbiA2MCd9ID0gJ2UuZy4gRXF1YWxzIDEwIG9yIEdyZWF0ZXJUaGFuIDYwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGUnfSA9ICdSYXRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHJhdGUgc2V0dGluZ3MnfSA9ICdObyByYXRlIHNldHRpbmdzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmljIHJhdGUnfSA9ICdTcGVjaWZpYyByYXRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuIGcuIEVxdWFscyAyNSUgb3IgR3JlYXRlclRoYW4gNzUlJ30gPSAnZS5nLiBFcXVhbHMgMjUlIG9yIEdyZWF0ZXJUaGFuIDc1JSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDcmVhdGUgVGltZSd9ID0gJ0ZBUSBBcnRpY2xlIENyZWF0ZSBUaW1lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENoYW5nZSBUaW1lJ30gPSAnRkFRIEFydGljbGUgQ2hhbmdlIFRpbWUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRWm9vbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEluZm9ybWF0aW9uJ30gPSAnRkFRIEluZm9ybWF0aW9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGluZyd9ID0gJ1JhdGluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWb3Rlcyd9ID0gJ1ZvdGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHZvdGVzIGZvdW5kISd9ID0gJ05vIHZvdGVzIGZvdW5kISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB2b3RlcyBmb3VuZCEgQmUgdGhlIGZpcnN0IG9uZSB0byByYXRlIHRoaXMgRkFRIGFydGljbGUuJ30gPSAnTm8gdm90ZXMgZm91bmQhIEJlIHRoZSBmaXJzdCBvbmUgdG8gcmF0ZSB0aGlzIEZBUSBhcnRpY2xlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEb3dubG9hZCBBdHRhY2htZW50J30gPSAnRG93bmxvYWQgQXR0YWNobWVudCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyBvcGVuIGxpbmtzIGluIHRoZSBmb2xsb3dpbmcgZGVzY3JpcHRpb24gYmxvY2tzLCB5b3UgbWlnaHQgbmVlZCB0byBwcmVzcyBDdHJsIG9yIENtZCBvciBTaGlmdCBrZXkgd2hpbGUgY2xpY2tpbmcgdGhlIGxpbmsgKGRlcGVuZGluZyBvbiB5b3VyIGJyb3dzZXIgYW5kIE9TKS4nfSA9CiAgICAgICAgJ1RvIG9wZW4gbGlua3MgaW4gdGhlIGZvbGxvd2luZyBkZXNjcmlwdGlvbiBibG9ja3MsIHlvdSBtaWdodCBuZWVkIHRvIHByZXNzIEN0cmwgb3IgQ21kIG9yIFNoaWZ0IGtleSB3aGlsZSBjbGlja2luZyB0aGUgbGluayAoZGVwZW5kaW5nIG9uIHlvdXIgYnJvd3NlciBhbmQgT1MpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3cgaGVscGZ1bCB3YXMgdGhpcyBhcnRpY2xlPyBQbGVhc2UgZ2l2ZSB1cyB5b3VyIHJhdGluZyBhbmQgaGVscCB0byBpbXByb3ZlIHRoZSBGQVEgRGF0YWJhc2UuIFRoYW5rIFlvdSEnfSA9CiAgICAgICAgJ0hvdyBoZWxwZnVsIHdhcyB0aGlzIGFydGljbGU/IFBsZWFzZSBnaXZlIHVzIHlvdXIgcmF0aW5nIGFuZCBoZWxwIHRvIGltcHJvdmUgdGhlIEZBUSBEYXRhYmFzZS4gVGhhbmsgeW91ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgaGVscGZ1bCd9ID0gJ25vdCBoZWxwZnVsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3ZlcnkgaGVscGZ1bCd9ID0gJ3ZlcnkgaGVscGZ1bCc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFab29tU21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBGQVEgdGl0bGUgdG8gYXJ0aWNsZSBzdWJqZWN0J30gPSAnQWRkIEZBUSB0aXRsZSB0byBhcnRpY2xlIHN1YmplY3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZBUSBUZXh0J30gPSAnSW5zZXJ0IEZBUSBUZXh0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGdWxsIEZBUSd9ID0gJ0luc2VydCBGdWxsIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRkFRIExpbmsnfSA9ICdJbnNlcnQgRkFRIExpbmsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZBUSBUZXh0ICYgTGluayd9ID0gJ0luc2VydCBGQVEgVGV4dCAmIExpbmsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZ1bGwgRkFRICYgTGluayd9ID0gJ0luc2VydCBGdWxsIEZBUSAmIExpbmsnOwoKICAgICMgVGVtcGxhdGU6IEN1c3RvbWVyRkFRRXhwbG9yZXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhdGVzdCB1cGRhdGVkIEZBUSBhcnRpY2xlcyd9ID0gJ0xhdGVzdCB1cGRhdGVkIEZBUSBhcnRpY2xlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBGQVEgYXJ0aWNsZXMgZm91bmQuJ30gPSAnTm8gRkFRIGFydGljbGVzIGZvdW5kLic7CgogICAgIyBUZW1wbGF0ZTogQ3VzdG9tZXJGQVFSZWxhdGVkQXJ0aWNsZXMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbWlnaHQgYmUgaGVscGZ1bCd9ID0gJ1RoaXMgbWlnaHQgYmUgaGVscGZ1bCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3VuZCBubyBoZWxwZnVsIHJlc291cmNlcyBmb3IgdGhlIHN1YmplY3QgYW5kIHRleHQuJ30gPSAnRm91bmQgbm8gaGVscGZ1bCByZXNvdXJjZXMgZm9yIHRoZSBzdWJqZWN0IGFuZCB0ZXh0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlIGEgc3ViamVjdCBvciB0ZXh0IHRvIGdldCBhIGxpc3Qgb2YgaGVscGZ1bCByZXNvdXJjZXMuJ30gPSAnVHlwZSBhIHN1YmplY3Qgb3IgdGV4dCB0byBnZXQgYSBsaXN0IG9mIGhlbHBmdWwgcmVzb3VyY2VzLic7CgogICAgIyBUZW1wbGF0ZTogQ3VzdG9tZXJGQVFTZWFyY2gKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bGx0ZXh0IHNlYXJjaCBpbiBGQVEgYXJ0aWNsZXMgKGUuIGcuICJKb2huKm4iIG9yICJXaWxsKiIpJ30gPSAnRnVsbHRleHQgc2VhcmNoIGluIEZBUSBhcnRpY2xlcyAoZS4gZy4gIkpvaG4qbiIgb3IgIldpbGwqIiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSByZXN0cmljdGlvbnMnfSA9ICdWb3RlIHJlc3RyaWN0aW9ucyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IEZBUSBhcnRpY2xlcyB3aXRoIHZvdGVzLi4uJ30gPSAnT25seSBGQVEgYXJ0aWNsZXMgd2l0aCB2b3Rlcy4uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRlIHJlc3RyaWN0aW9ucyd9ID0gJ1JhdGUgcmVzdHJpY3Rpb25zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgRkFRIGFydGljbGVzIHdpdGggcmF0ZS4uLid9ID0gJ09ubHkgRkFRIGFydGljbGVzIHdpdGggcmF0ZS4uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlc3RyaWN0aW9ucyd9ID0gJ1RpbWUgcmVzdHJpY3Rpb25zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgRkFRIGFydGljbGVzIGNyZWF0ZWQnfSA9ICdPbmx5IEZBUSBhcnRpY2xlcyBjcmVhdGVkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgRkFRIGFydGljbGVzIGNyZWF0ZWQgYmV0d2Vlbid9ID0gJ09ubHkgRkFRIGFydGljbGVzIGNyZWF0ZWQgYmV0d2Vlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2gtUHJvZmlsZSBhcyBUZW1wbGF0ZT8nfSA9ICdTZWFyY2gtUHJvZmlsZSBhcyBUZW1wbGF0ZT8nOwoKICAgICMgVGVtcGxhdGU6IEN1c3RvbWVyRkFRWm9vbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJ0aWNsZSBOdW1iZXInfSA9ICdBcnRpY2xlIE51bWJlcj8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIGZvciBhcnRpY2xlcyB3aXRoIGtleXdvcmQnfSA9ICdTZWFyY2ggZm9yIGFydGljbGVzIHdpdGgga2V5d29yZCc7CgogICAgIyBUZW1wbGF0ZTogUHVibGljRkFRU2VhcmNoT3BlblNlYXJjaERlc2NyaXB0aW9uRkFRTnVtYmVyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMnfSA9ICdQdWJsaWMnOwoKICAgICMgVGVtcGxhdGU6IFB1YmxpY0ZBUVNlYXJjaFJlc3VsdFNob3J0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydCYWNrIHRvIEZBUSBFeHBsb3Jlcid9ID0gJ0JhY2sgdG8gRkFRIEV4cGxvcmVyJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUFkZC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgcncgcGVybWlzc2lvbiEnfSA9ICdZb3UgbmVlZCBydyBwZXJtaXNzaW9uISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjYXRlZ29yaWVzIGZvdW5kIHdoZXJlIHVzZXIgaGFzIHJlYWQvd3JpdGUgcGVybWlzc2lvbnMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRlZmF1bHQgbGFuZ3VhZ2UgZm91bmQgYW5kIGNhblwndCBjcmVhdGUgYSBuZXcgb25lLid9ID0gJ05vIGRlZmF1bHQgbGFuZ3VhZ2UgZm91bmQgYW5kIGNhblwndCBjcmVhdGUgYSBuZXcgb25lLic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFDYXRlZ29yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBDYXRlZ29yeUlEISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGNhdGVnb3J5IHNob3VsZCBoYXZlIGEgbmFtZSEnfSA9ICdBIGNhdGVnb3J5IHNob3VsZCBoYXZlIGEgbmFtZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBjYXRlZ29yeSBhbHJlYWR5IGV4aXN0cyd9ID0gJ1RoaXMgY2F0ZWdvcnkgYWxyZWFkeSBleGlzdHMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBjYXRlZ29yeSBhbHJlYWR5IGV4aXN0cyEnfSA9ICdUaGlzIGNhdGVnb3J5IGFscmVhZHkgZXhpc3RzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBDYXRlZ29yeUlEIGlzIGdpdmVuISd9ID0gJ05vIENhdGVnb3J5SUQgaXMgZ2l2ZW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGNhdGVnb3J5ICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgY2F0ZWdvcnkgdXBkYXRlZCEnfSA9ICdGQVEgY2F0ZWdvcnkgdXBkYXRlZCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGNhdGVnb3J5IGFkZGVkISd9ID0gJ0ZBUSBjYXRlZ29yeSBhZGRlZCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIENhdGVnb3J5J30gPSAnRGVsZXRlIENhdGVnb3J5JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gSXRlbUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSBubyBwZXJtaXNzaW9uIGZvciB0aGlzIGNhdGVnb3J5ISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBGQVEgYXJ0aWNsZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRRXhwbG9yZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBDYXRlZ29yeUlEICVzIGlzIGludmFsaWQuJ30gPSAnVGhlIENhdGVnb3J5SUQgJXMgaXMgaW52YWxpZC4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRSGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gSXRlbUlEIGlzIGdpdmVuISd9ID0gJ0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIEl0ZW1JRCBpcyBnaXZlbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEhpc3RvcnknfSA9ICdGQVEgSGlzdG9yeSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFKb3VybmFsLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSm91cm5hbCd9ID0gJ0ZBUSBKb3VybmFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgY29uZmlnIG9wdGlvbiBGQVE6OkZyb250ZW5kOjpPdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWcgb3B0aW9uIEZBUTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3IG5lZWRzIHRvIGJlIGEgSEFTSCByZWYhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY29uZmlnIG9wdGlvbiBmb3VuZCBmb3IgdGhlIHZpZXcgIiVzIiEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRTGFuZ3VhZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIExhbmd1YWdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBuYW1lIGlzIHJlcXVpcmVkISd9ID0gJ1RoZSBuYW1lIGlzIHJlcXVpcmVkISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGxhbmd1YWdlIGFscmVhZHkgZXhpc3RzISd9ID0gJ1RoaXMgbGFuZ3VhZ2UgYWxyZWFkeSBleGlzdHMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGxhbmd1YWdlICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgbGFuZ3VhZ2UgdXBkYXRlZCEnfSA9ICdGQVEgbGFuZ3VhZ2UgdXBkYXRlZCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGxhbmd1YWdlIGFkZGVkISd9ID0gJ0ZBUSBsYW5ndWFnZSBhZGRlZCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIExhbmd1YWdlICVzJ30gPSAnRGVsZXRlIExhbmd1YWdlICUnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRUHJpbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc3VsdCd9ID0gJ1Jlc3VsdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IHVwZGF0ZSd9ID0gJ0xhc3QgdXBkYXRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBEeW5hbWljIEZpZWxkcyd9ID0gJ0ZBUSBEeW5hbWljIEZpZWxkcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFSaWNoVGV4dC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gJXMgaXMgZ2l2ZW4hJ30gPSAnTm8gJXMgaXMgZ2l2ZW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBsb2FkIExhbmd1YWdlT2JqZWN0ISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFJlc3VsdCEnfSA9ICdObyBSZXN1bHQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBOdW1iZXInfSA9ICdGQVEgbnVtYmVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgQ2hhbmdlZCBieSd9ID0gJ0xhc3QgQ2hhbmdlZCBieSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSXRlbSBDcmVhdGUgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSXRlbSBDcmVhdGUgVGltZSAoYmV0d2VlbiknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ2hhbmdlIFRpbWUgKGJlZm9yZS9hZnRlciknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ2hhbmdlIFRpbWUgKGJldHdlZW4pJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VxdWFscyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmVhdGVyIHRoYW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JlYXRlciB0aGFuIGVxdWFscyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTbWFsbGVyIHRoYW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU21hbGxlciB0aGFuIGVxdWFscyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIEZpbGVJRCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhhbmtzIGZvciB5b3VyIHZvdGUhJ30gPSAnVGhhbmtzIGZvciB5b3VyIHZvdGUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIGFscmVhZHkgdm90ZWQhJ30gPSAnWW91IGhhdmUgYWxyZWFkeSB2b3RlZCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gcmF0ZSBzZWxlY3RlZCEnfSA9ICdObyByYXRlIHNlbGVjdGVkISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdm90aW5nIG1lY2hhbmlzbSBpcyBub3QgZW5hYmxlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHZvdGUgcmF0ZSBpcyBub3QgZGVmaW5lZCEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0N1c3RvbWVyRkFRUHJpbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIFByaW50J30gPSAnRkFRIEFydGljbGUgUHJpbnQnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0N1c3RvbWVyRkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGVkIGJldHdlZW4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0N1c3RvbWVyRkFRWm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBJdGVtSUQhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9QdWJsaWNGQVFFeHBsb3Jlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGVzIChuZXcgY3JlYXRlZCknfSA9ICdGQVEgQXJ0aWNsZXMgKG5ldyBjcmVhdGVkKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZXMgKHJlY2VudGx5IGNoYW5nZWQpJ30gPSAnRkFRIEFydGljbGVzIChyZWNlbnRseSBjaGFuZ2VkKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZXMgKFRvcCAxMCknfSA9ICdGQVEgQXJ0aWNsZXMgKFRvcCAxMCknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL1B1YmxpY0ZBUVJTUy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gVHlwZSBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZSBtdXN0IGJlIGVpdGhlciBMYXN0Q3JlYXRlIG9yIExhc3RDaGFuZ2Ugb3IgVG9wMTAhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBjcmVhdGUgUlNTIGZpbGUhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvSGVhZGVyTWV0YS9BZ2VudEZBUVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEZBUUZ1bGx0ZXh0KSd9ID0gJyVzIChGQVFGdWxsdGV4dCknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9IZWFkZXJNZXRhL0N1c3RvbWVyRkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAtIEN1c3RvbWVyICglcyknfSA9ICclcyAtIEN1c3RvbWVyICglcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgLSBDdXN0b21lciAoRkFRRnVsbHRleHQpJ30gPSAnJXMgLSBDdXN0b21lciAoRkFRRnVsbHRleHQpJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvSGVhZGVyTWV0YS9QdWJsaWNGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gUHVibGljICglcyknfSA9ICclcyAtIFB1YmxpYyAoJXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gUHVibGljIChGQVFGdWxsdGV4dCknfSA9ICclcyAtIFB1YmxpYyAoRkFRRnVsbHRleHQpJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTGF5b3V0L0ZBUS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCByYXRlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGFydGljbGUgaXMgZW1wdHkhJ30gPSAnVGhpcyBhcnRpY2xlIGlzIGVtcHR5ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXRlc3QgY3JlYXRlZCBGQVEgYXJ0aWNsZXMnfSA9ICdMYXRlc3QgY3JlYXRlZCBGQVEgYXJ0aWNsZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG9wIDEwIEZBUSBhcnRpY2xlcyd9ID0gJ1RvcCAxMCBGQVEgYXJ0aWNsZXMnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9MaW5rT2JqZWN0L0ZBUS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29udGVudCBUeXBlJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0R5bmFtaWNGaWVsZC9Ecml2ZXIvRkFRLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgdGhlIGF0dHJpYnV0ZSB3aGljaCBGQVFzIHdpbGwgYmUgc2VhcmNoZWQgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXh0ZXJuYWwtc291cmNlIGtleSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgdGhlIHR5cGUgb2YgZGlzcGxheSd9ID0gJyc7CgogICAgIyBEYXRhYmFzZSBYTUwgLyBTT1BNIERlZmluaXRpb246IEZBUS5zb3BtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpbnRlcm5hbCd9ID0gJ2ludGVybmFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2V4dGVybmFsJ30gPSAnZXh0ZXJuYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncHVibGljJ30gPSAncHVibGljJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBmaWx0ZXIgZm9yIEhUTUwgb3V0cHV0IHRvIGFkZCBsaW5rcyBiZWhpbmQgYSBkZWZpbmVkIHN0cmluZy4gVGhlIGVsZW1lbnQgSW1hZ2UgYWxsb3dzIHR3byBpbnB1dCBraW5kcy4gRmlyc3QgdGhlIG5hbWUgb2YgYW4gaW1hZ2UgKGUuZy4gZmFxLnBuZykuIEluIHRoaXMgY2FzZSB0aGUgT1RPQk8gaW1hZ2UgcGF0aCB3aWxsIGJlIHVzZWQuIFRoZSBzZWNvbmQgcG9zc2liaWxpdHkgaXMgdG8gaW5zZXJ0IHRoZSBsaW5rIHRvIHRoZSBpbWFnZS4nfSA9CiAgICAgICAgJ0EgZmlsdGVyIGZvciBIVE1MIG91dHB1dCB0byBhZGQgbGlua3MgYmVoaW5kIGEgZGVmaW5lZCBzdHJpbmcuIFRoZSBlbGVtZW50IEltYWdlIGFsbG93cyB0d28gaW5wdXQga2luZHMuIEZpcnN0IHRoZSBuYW1lIG9mIGFuIGltYWdlIChlLmcuIGZhcS5wbmcpLiBJbiB0aGlzIGNhc2UgdGhlIE9UT0JPIGltYWdlIHBhdGggd2lsbCBiZSB1c2VkLiBUaGUgc2Vjb25kIHBvc3NpYmlsaXR5IGlzIHRvIGluc2VydCB0aGUgbGluayB0byB0aGUgaW1hZ2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBGQVEgYXJ0aWNsZSd9ID0gJ0FkZCBGQVEgYXJ0aWNsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDU1MgY29sb3IgZm9yIHRoZSB2b3RpbmcgcmVzdWx0Lid9ID0gJ0NTUyBjb2xvdXIgZm9yIHRoZSB2b3RpbmcgcmVzdWx0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSBUaW1lIFRvIExlYXZlIGZvciBGQVEgaXRlbXMuJ30gPSAnQ2FjaGUgVGltZSB0byBMZWF2ZSBmb3IgRkFRIGl0ZW1zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSBNYW5hZ2VtZW50J30gPSAnQ2F0ZWdvcnkgTWFuYWdlbWVudCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSBNYW5hZ2VtZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgUHJpbnQuJ30gPSAnQ3VzdG9tZXIgRkFRIFByaW50Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgUmVsYXRlZCBBcnRpY2xlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgUmVsYXRlZCBBcnRpY2xlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIFpvb20uJ30gPSAnQ3VzdG9tZXIgRkFRIFpvb20uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBzZWFyY2guJ30gPSAnQ3VzdG9tZXIgRkFRIHNlYXJjaC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRLid9ID0gJ0N1c3RvbWVyIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVjaW1hbCBwbGFjZXMgb2YgdGhlIHZvdGluZyByZXN1bHQuJ30gPSAnRGVjaW1hbCBwbGFjZXMgb2YgdGhlIHZvdGluZyByZXN1bHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgY2F0ZWdvcnkgbmFtZS4nfSA9ICdEZWZhdWx0IGNhdGVnb3J5IG5hbWUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbGFuZ3VhZ2UgZm9yIEZBUSBhcnRpY2xlcyBvbiBzaW5nbGUgbGFuZ3VhZ2UgbW9kZS4nfSA9ICdEZWZhdWx0IGxhbmd1YWdlIGZvciBGQVEgYXJ0aWNsZXMgb24gc2luZ2xlIGxhbmd1YWdlIG1vZGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93bi4nfSA9CiAgICAgICAgJ0RlZmF1bHQgbWF4aW11bSBzaXplIG9mIHRoZSB0aWxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHByaW9yaXR5IG9mIHRpY2tldHMgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPQogICAgICAgICdEZWZhdWx0IHByaW9yaXR5IG9mIHRpY2tldHMgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdGUgZm9yIEZBUSBlbnRyeS4nfSA9ICdEZWZhdWx0IHN0YXRlIGZvciBGQVEgZW50cnkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdGUgb2YgdGlja2V0cyBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICdEZWZhdWx0IHN0YXRlIG9mIHRpY2tldHMgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgdHlwZSBvZiB0aWNrZXRzIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0gJ0RlZmF1bHQgdHlwZSBvZiB0aWNrZXRzIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHZhbHVlIGZvciB0aGUgQWN0aW9uIHBhcmFtZXRlciBmb3IgdGhlIHB1YmxpYyBmcm9udGVuZC4gVGhlIEFjdGlvbiBwYXJhbWV0ZXIgaXMgdXNlZCBpbiB0aGUgc2NyaXB0cyBvZiB0aGUgc3lzdGVtLid9ID0KICAgICAgICAnRGVmYXVsdCB2YWx1ZSBmb3IgdGhlIEFjdGlvbiBwYXJhbWV0ZXIgZm9yIHRoZSBwdWJsaWMgZnJvbnRlbmQuIFRoZSBBY3Rpb24gcGFyYW1ldGVyIGlzIHVzZWQgaW4gdGhlIHNjcmlwdHMgb2YgdGhlIHN5c3RlbS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIEFjdGlvbnMgd2hlcmUgYSBzZXR0aW5ncyBidXR0b24gaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rZWQgb2JqZWN0cyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gUGxlYXNlIG5vdGUgdGhhdCB0aGVzZSBBY3Rpb25zIG11c3QgaGF2ZSByZWdpc3RlcmVkIHRoZSBmb2xsb3dpbmcgSlMgYW5kIENTUyBmaWxlczogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgYW5kIENvcmUuQWdlbnQuTGlua09iamVjdC5qcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgaWYgdGhlIEZBUSB0aXRsZSBzaG91bGQgYmUgY29uY2F0ZW5hdGVkIHRvIGFydGljbGUgc3ViamVjdC4nfSA9CiAgICAgICAgJ0RlZmluZSBpZiB0aGUgRkFRIHRpdGxlIHNob3VsZCBiZSBjb25jYXRlbmF0ZWQgdG8gYXJ0aWNsZSBzdWJqZWN0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBGQVFzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IEZBUSBhdHRyaWJ1dGVzIGFuZCBkeW5hbWljIGZpZWxkcyAoRHluYW1pY0ZpZWxkX05hbWVYKSBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIEZBUSBqb3VybmFsLid9ID0KICAgICAgICAnRGVmaW5lZCBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIEZBUSBqb3VybmFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgRkFRIGxpc3QuJ30gPQogICAgICAgICdEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgRkFRIGxpc3QuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gYSBGQVEgc2VhcmNoIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIGEgRkFRIHNlYXJjaCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIGEgRkFRIHNlYXJjaCBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiBhIEZBUSBzZWFyY2ggb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiBhIEZBUSBzZWFyY2ggb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIGEgRkFRIHNlYXJjaCBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIHRoZSBGQVEgRXhwbG9yZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIHRoZSBGQVEgRXhwbG9yZXIgb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgcHVibGljIGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICdEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgcHVibGljIGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzaG93biBGQVEgc2VhcmNoIGF0dHJpYnV0ZSBmb3IgRkFRIHNlYXJjaCBzY3JlZW4uJ30gPQogICAgICAgICdEZWZpbmVzIHRoZSBkZWZhdWx0IHNob3duIEZBUSBzZWFyY2ggYXR0cmlidXRlIGZvciBGQVEgc2VhcmNoIHNjcmVlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaGVpZ2h0IGZvciB0aGUgcmljaCB0ZXh0IGVkaXRvciBjb21wb25lbnQgZm9yIHRoaXMgc2NyZWVuLiBFbnRlciBudW1iZXIgKHBpeGVscykgb3IgcGVyY2VudCB2YWx1ZSAocmVsYXRpdmUpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGluZm9ybWF0aW9uIHRvIGJlIGluc2VydGVkIGluIGEgRkFRIGJhc2VkIFRpY2tldC4gIkZ1bGwgRkFRIiBpbmNsdWRlcyB0ZXh0LCBhdHRhY2htZW50cyBhbmQgaW5saW5lIGltYWdlcy4nfSA9CiAgICAgICAgJ0RlZmluZXMgdGhlIGluZm9ybWF0aW9uIHRvIGJlIGluc2VydGVkIGluIGEgRkFRIGJhc2VkIFRpY2tldC4gIkZ1bGwgRkFRIiBpbmNsdWRlcyB0ZXh0LCBhdHRhY2htZW50cyBhbmQgaW5saW5lIGltYWdlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcGFyYW1ldGVycyBmb3IgdGhlIGRhc2hib2FyZCBiYWNrZW5kLiAiTGltaXQiIGRlZmluZXMgdGhlIG51bWJlciBvZiBlbnRyaWVzIGRpc3BsYXllZCBieSBkZWZhdWx0LiAiR3JvdXAiIGlzIHVzZWQgdG8gcmVzdHJpY3QgYWNjZXNzIHRvIHRoZSBwbHVnaW4gKGUuIGcuIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiBpbmRpY2F0ZXMgaWYgdGhlIHBsdWdpbiBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb3IgaWYgdGhlIHVzZXIgbmVlZHMgdG8gZW5hYmxlIGl0IG1hbnVhbGx5Lid9ID0KICAgICAgICAnRGVmaW5lcyB0aGUgcGFyYW1ldGVycyBmb3IgdGhlIGRhc2hib2FyZCBiYWNrZW5kLiAiTGltaXQiIGRlZmluZXMgdGhlIG51bWJlciBvZiBlbnRyaWVzIGRpc3BsYXllZCBieSBkZWZhdWx0LiAiR3JvdXAiIGlzIHVzZWQgdG8gcmVzdHJpY3QgYWNjZXNzIHRvIHRoZSBwbHVnaW4gKGUuIGcuIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiBpbmRpY2F0ZXMgaWYgdGhlIHBsdWdpbiBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb3IgaWYgdGhlIHVzZXIgbmVlZHMgdG8gZW5hYmxlIGl0IG1hbnVhbGx5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBGQVEgRXhwbG9yZXIuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBGQVEgRXhwbG9yZXIuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIEZBUSBqb3VybmFsLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgRkFRIGpvdXJuYWwuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIEZBUSBzZWFyY2guIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBGQVEgc2VhcmNoLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHdoZXJlIHRoZSBcJ0luc2VydCBGQVFcJyBsaW5rIHdpbGwgYmUgZGlzcGxheWVkLid9ID0gJ0RlZmluZXMgd2hlcmUgdGhlIFwnSW5zZXJ0IEZBUVwnIGxpbmsgd2lsbCBiZSBkaXNwbGF5ZWQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluaXRpb24gb2YgRkFRIGl0ZW0gZnJlZSB0ZXh0IGZpZWxkLid9ID0gJ0RlZmluaXRpb24gb2YgRkFRIGl0ZW0gZnJlZSB0ZXh0IGZpZWxkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhpcyBGQVEnfSA9ICdEZWxldGUgdGhpcyBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgb3ZlcnZpZXcgc2NyZWVuIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBvdmVydmlldyBzY3JlZW4gb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBwcmludCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHByaW50IHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgcHJpbnQgc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc2VhcmNoIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc2VhcmNoIHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc2VhcmNoIHNjcmVlbiBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHNtYWxsIGZvcm1hdCBvdmVydmlldyBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSB6b29tIHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgem9vbSBzY3JlZW4gb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGlzIEZBUSd9ID0gJ0VkaXQgdGhpcyBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIG11bHRpcGxlIGxhbmd1YWdlcyBvbiBGQVEgbW9kdWxlLid9ID0gJ0VuYWJsZSBtdWx0aXBsZSBsYW5ndWFnZXMgb24gRkFRIG1vZHVsZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHNlcnZpY2UgYXNzaWdubWVudCBmb3IgRkFRcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHRoZSByZWxhdGVkIGFydGljbGUgZmVhdHVyZSBmb3IgdGhlIGN1c3RvbWVyIGZyb250ZW5kLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB2b3RpbmcgbWVjaGFuaXNtIG9uIEZBUSBtb2R1bGUuJ30gPSAnRW5hYmxlIHZvdGluZyBtZWNoYW5pc20gb24gRkFRIG1vZHVsZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwbG9yZXInfSA9ICdFeHBsb3Jlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQUpBWCBSZXNwb25kZXInfSA9ICdGQVEgQUpBWCBSZXNwb25kZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFKQVggUmVzcG9uZGVyIGZvciBSaWNodGV4dC4nfSA9ICdGQVEgQUpBWCBSZXNwb25kZXIgZm9yIFJpY2h0ZXh0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcmVhJ30gPSAnRkFRIEFyZWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFyZWEuJ30gPSAnRkFRIEFyZWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBEZWxldGUuJ30gPSAnRkFRIERlbGV0ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEVkaXQuJ30gPSAnRkFRIEVkaXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBIaXN0b3J5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSm91cm5hbCBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnRkFRIEpvdXJuYWwgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJ0ZBUSBPdmVydmlldyAiU21hbGwiIExpbWl0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBQcmludC4nfSA9ICdGQVEgUHJpbnQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBzZWFyY2ggYmFja2VuZCByb3V0ZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9ICdGQVEgc2VhcmNoIGJhY2tlbmQgcm91dGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpZWxkNCd9ID0gJ0ZpZWxkNCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWVsZDUnfSA9ICdGaWVsZDUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnVsbCBGQVEnfSA9ICdGdWxsIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICdHcm91cCBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiB0aGlzIEZBUSd9ID0gJ0hpc3Rvcnkgb2YgdGhpcyBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgYWN0aXZhdGVkLCBGQVEgYXJ0aWNsZXMgb2Ygc3RhdHVzIHR5cGUgaW50ZXJuYWwgYXJlIGFsc28gdGFrZW4gaW50byBhY2NvdW50IGZvciB0aGUgYXBwcm92YWwgcHJvY2Vzcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNsdWRlIGludGVybmFsIGZpZWxkcyBvbiBhIEZBUSBiYXNlZCBUaWNrZXQuJ30gPSAnSW5jbHVkZSBpbnRlcm5hbCBmaWVsZHMgb24gYW4gRkFRIGJhc2VkIFRpY2tldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jbHVkZSB0aGUgbmFtZSBvZiBlYWNoIGZpZWxkIGluIGEgRkFRIGJhc2VkIFRpY2tldC4nfSA9ICdJbmNsdWRlIHRoZSBuYW1lIG9mIGVhY2ggZmllbGQgaW4gYW4gRkFRIGJhc2VkIFRpY2tldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW50ZXJmYWNlcyB3aGVyZSB0aGUgcXVpY2sgc2VhcmNoIHNob3VsZCBiZSBzaG93bi4nfSA9ICdJbnRlcmZhY2VzIHdoZXJlIHRoZSBxdWljayBzZWFyY2ggc2hvdWxkIGJlIHNob3duLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydKb3VybmFsJ30gPSAnSm91cm5hbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYW5ndWFnZSBNYW5hZ2VtZW50J30gPSAnTGFuZ3VhZ2UgTWFuYWdlbWVudCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYW5ndWFnZSBNYW5hZ2VtZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW1pdCBmb3IgdGhlIHNlYXJjaCB0byBidWlsZCB0aGUga2V5d29yZCBGQVEgYXJ0aWNsZSBsaXN0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoaXMgRkFRIGl0ZW0nfSA9ICdMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoaXMgRkFRIGl0ZW0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBxdWV1ZSBuYW1lcyBmb3Igd2hpY2ggdGhlIHJlbGF0ZWQgYXJ0aWNsZSBmZWF0dXJlIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBzdGF0ZSB0eXBlcyB3aGljaCBjYW4gYmUgdXNlZCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTGlzdCBvZiBzdGF0ZSB0eXBlcyB3aGljaCBjYW4gYmUgdXNlZCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIHN0YXRlIHR5cGVzIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICdMaXN0IG9mIHN0YXRlIHR5cGVzIHdoY2loIGNhbiBiZSB1c2VkIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2Ygc3RhdGUgdHlwZXMgd2hpY2ggY2FuIGJlIHVzZWQgaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICdMaXN0IG9mIHN0YXRlIHR5cGVzIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb2FkZXIgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIGpvdXJuYWwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBqb3VybmFsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHJlc3VsdCBvZiBhIHNlYXJjaCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgcmVzdWx0IG9mIGEgc2VhcmNoIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHJlc3VsdCBvZiBhIHNlYXJjaCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgcmVzdWx0IG9mIGEgc2VhcmNoIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHJlc3VsdCBvZiBhIHNlYXJjaCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHJlc3VsdCBvZiBhIHNlYXJjaCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIEV4cGxvcmVyIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgRXhwbG9yZXIgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIEV4cGxvcmVyIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgRXhwbG9yZXIgaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIEV4cGxvcmVyIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIEV4cGxvcmVyIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgU2VhcmNoIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgU2VhcmNoIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBTZWFyY2ggaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBTZWFyY2ggaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIFNlYXJjaCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBTZWFyY2ggaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBqb3VybmFsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgam91cm5hbCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gZ2VuZXJhdGUgSFRNTCBPcGVuU2VhcmNoIHByb2ZpbGUgZm9yIHNob3J0IEZBUSBzZWFyY2ggaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gZ2VuZXJhdGUgSFRNTCBPcGVuU2VhcmNoIHByb2ZpbGUgZm9yIHNob3J0IEZBUSBzZWFyY2ggaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNb2R1bGUgdG8gZ2VuZXJhdGUgSFRNTCBPcGVuU2VhcmNoIHByb2ZpbGUgZm9yIHNob3J0IEZBUSBzZWFyY2ggaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBnZW5lcmF0ZSBodG1sIE9wZW5TZWFyY2ggcHJvZmlsZSBmb3Igc2hvcnQgRkFRIHNlYXJjaC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgRkFRIEFydGljbGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBGQVEgYXJ0aWNsZXMgbmVlZCBhcHByb3ZhbCBiZWZvcmUgdGhleSBnZXQgcHVibGlzaGVkLid9ID0gJ05ldyBGQVEgYXJ0aWNsZXMgbmVlZCBhcHByb3ZhbCBiZWZvcmUgaHRleSBnZXQgcHVibGlzaGVkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICdOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICdOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBvbiBlYWNoIHBhZ2Ugb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICdOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBvbiBlYWNoIHBhZ2Ugb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIG9uIGVhY2ggcGFnZSBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICdOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBvbiBlYWNoIHBhZ2Ugb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2Ygc2hvd24gaXRlbXMgaW4gbGFzdCBjaGFuZ2VzLid9ID0gJ051bWJlciBvZiBzaG93biBpdGVtcyBpbiBsYXN0IGNoYW5nZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBzaG93biBpdGVtcyBpbiBsYXN0IGNyZWF0ZWQuJ30gPSAnTnVtYmVyIG9mIHNob3duIGl0ZW1zIGluIGxhc3QgY3JlYXRlZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIHNob3duIGl0ZW1zIGluIHRoZSB0b3AgMTAgZmVhdHVyZS4nfSA9ICdOdW1iZXIgb2Ygc2hvd24gaXRlbXMgaW4gdGhlIHRvcCAxMCBmZWF0dXJlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdXRwdXQgZmlsdGVyIHRvIGFkZCBKYXZhLXNjcmlwdCB0byBDdXN0b21lclRpY2tldE1lc3NhZ2Ugc2NyZWVuLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J091dHB1dCBsaW1pdCBmb3IgdGhlIHJlbGF0ZWQgRkFRIGFydGljbGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBGQVEgaXRlbXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgRkFRIGpvdXJuYWwgb3ZlcnZpZXcuJ30gPQogICAgICAgICdQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBGQVEgaXRlbXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgRkFRIGpvdXJuYWwgb3ZlcnZpZXcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIEZBUSBpdGVtcyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBGQVEgb3ZlcnZpZXcuJ30gPQogICAgICAgICdQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBGQVEgaXRlbXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgRkFRIG92ZXJ2aWV3Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGlzIEZBUSd9ID0gJ1ByaW50IHRoaXMgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBGQVEgUHJpbnQuJ30gPSAnUHVibGljIEZBUSBQcmludC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIEZBUSBab29tLid9ID0gJ1B1YmxpYyBGQVEgWm9vbS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIEZBUSBzZWFyY2guJ30gPSAnUHVibGljIEZBUSBzZWFyY2guJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBGQVEuJ30gPSAnUHVibGljIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVldWUgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPSAnUXVldWUgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGVzIGZvciB2b3RpbmcuIEtleSBtdXN0IGJlIGluIHBlcmNlbnQuJ30gPSAnUmF0ZXMgZm9yIHZvdGluZy4gS2V5IG11c3QgYmUgaW4gcGVyY2VudC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUyd9ID0gJ1MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIEZBUSd9ID0gJ1NlYXJjaCBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIEZBUSBTbWFsbC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIEZBUS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGhvdyBtYW55IGl0ZW1zIHNob3VsZCBiZSBzaG93biBpbiBKb3VybmFsIE92ZXJ2aWV3ICJTbWFsbCIgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgaG93IG1hbnkgaXRlbXMgc2hvdWxkIGJlIHNob3duIGluIE92ZXJ2aWV3ICJTbWFsbCIgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBBZ2VudEZBUVpvb20uJ30gPQogICAgICAgICdTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBBZ2VudEZBUVpvb20uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZGVmYXVsdCBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEN1c3RvbWVyRkFRWm9vbSAoYW5kIFB1YmxpY0ZBUVpvb20pLid9ID0KICAgICAgICAnU2V0IHRoZSBkZWZhdWx0IGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gQ3VzdG9tZXJGQVFab29tIChhbmQgUHVibGljRkFRWm9vbSkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgbWF4aW11bSBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEFnZW50RkFRWm9vbS4nfSA9CiAgICAgICAgJ1NldCB0aGUgbWF4aW11bSBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEFnZW50RkFRWm9vbS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBtYXhpbXVtIGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gQ3VzdG9tZXJGQVFab29tIChhbmQgUHVibGljRkFRWm9vbSkuJ30gPQogICAgICAgICdTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBDdXN0b21lckZBUVpvb20gKGFuZCBQdWJsaWNGQVFab29tKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyAiSW5zZXJ0IEZBUSBMaW5rIiBCdXR0b24gaW4gQWdlbnRGQVFab29tU21hbGwgZm9yIHB1YmxpYyBGQVEgQXJ0aWNsZXMuJ30gPQogICAgICAgICdTaG93ICJJbnNlcnQgRkFRIExpbmsiIEJ1dHRvbiBpbiBBZ2VudEZBUVpvb21TbWFsbCBmb3IgcHVibGljIEZBUSBBcnRpY2xlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyAiSW5zZXJ0IEZBUSBUZXh0ICYgTGluayIgLyAiSW5zZXJ0IEZ1bGwgRkFRICYgTGluayIgQnV0dG9uIGluIEFnZW50RkFRWm9vbVNtYWxsIGZvciBwdWJsaWMgRkFRIEFydGljbGVzLid9ID0KICAgICAgICAnU2hvdyAiSW5zZXJ0IEZBUSBUZXh0ICYgTGluayIgLyAiSW5zZXJ0IEZ1bGwgRkFRICYgTGluayIgQnV0dG9uIGluIEFnZW50RkFRWm9vbVNtYWxsIGZvciBwdWJsaWMgRkFRIEFydGljbGVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93ICJJbnNlcnQgRkFRIFRleHQiIC8gIkluc2VydCBGdWxsIEZBUSIgQnV0dG9uIGluIEFnZW50RkFRWm9vbVNtYWxsLid9ID0KICAgICAgICAnU2hvdyAiSW5zZXJ0IEZBUSBUZXh0IiAvICJJbnNlcnQgRnVsbCBGQVEiIEJ1dHRvbiBpbiBBZ2VudEZBUVpvb21TbWFsbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBGQVEgQXJ0aWNsZSB3aXRoIEhUTUwuJ30gPSAnU2hvdyBGQVEgQXJ0aWNsZSB3aXRoIEhUTUwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgRkFRIHBhdGggeWVzL25vLid9ID0gJ1Nob3cgRkFRIHBhdGggeWVzL25vLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGludmFsaWQgaXRlbXMgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGl0ZW1zIG9mIHN1YmNhdGVnb3JpZXMuJ30gPSAnU2hvdyBpdGVtcyBvZiBzdWJjYXRlZ29yaWVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGxhc3QgY2hhbmdlIGl0ZW1zIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICdTaG93IGxhc3QgY2hhbmdlIGl0ZW1zIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBsYXN0IGNyZWF0ZWQgaXRlbXMgaW4gZGVmaW5lZCBpbnRlcmZhY2VzLid9ID0gJ1Nob3cgbGFzdCBjcmVhdGVkIGl0ZW1zIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyByZWxhdGVkIGFydGljbGVzIG9uIHNlcnZpY2UgY2hhbmdlIGV2ZW4gd2l0aCBlbXB0eSBzdWJqZWN0IGFuZCBib2R5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgdGhlIHN0YXJzIGZvciB0aGUgYXJ0aWNsZXMgd2l0aCBhIHJhdGluZyBlcXVhbCBvciBncmVhdGVyIGxpa2UgdGhlIGRlZmluZWQgdmFsdWUgKHNldCB2YWx1ZSBcJzBcJyB0byBkZWFjdGl2YXRlIHRoZSBvdXRwdXQpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgdG9wIDEwIGl0ZW1zIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICdTaG93IHRvcCAxMCBpdGVtcyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgdm90aW5nIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICdTaG93IHZvdGluZyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBsaW5raW5nIGEgRkFRIHdpdGggYW5vdGhlciBvYmplY3QgaW4gdGhlIHpvb20gdmlldyBvZiBzdWNoIEZBUSBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSBGQVEgd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgem9vbSB2aWV3IG9mIHN1Y2ggRkFRIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyB0byBkZWxldGUgYSBGQVEgaW4gaXRzIHpvb20gdmlldyBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIHRvIGRlbGV0ZSBhIEZBUSBpbiBpdHMgem9vbSB2aWV3IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSBGQVEgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIEZBUSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgRkFRIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZWRpdCBhIEZBUSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZ28gYmFjayBpbiB0aGUgRkFRIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIEZBUSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgRkFRIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSBGQVEgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU29sdXRpb24nfSA9ICdTb2x1dGlvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTeW1wdG9tJ30gPSAnU3ltcHRvbSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZXh0IE9ubHknfSA9ICdUZXh0IE9ubHknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGRlZmF1bHQgbGFuZ3VhZ2VzIGZvciB0aGUgcmVsYXRlZCBGQVEgYXJ0aWNsZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIEZBUSwgZS5nLiBGQVEjLCBLQiMsIE15RkFRIy4gVGhlIGRlZmF1bHQgaXMgRkFRIy4nfSA9CiAgICAgICAgJ1RoZSBpZGVudGlmaWVyIGZvciBhIEZBUSwgZS5nLiBGQVEjLCBLQiMsIE15RkFRIy4gVGhlIGRlZmF1bHQgaXMgRkFRIy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBzZXR0aW5nIGRlZmluZXMgdGhhdCBhIFwnRkFRXCcgb2JqZWN0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciBcJ0ZBUVwnIG9iamVjdHMgdXNpbmcgdGhlIFwnTm9ybWFsXCcgbGluayB0eXBlLid9ID0KICAgICAgICAnVGhpcyBzZXR0aW5nIGRlZmluZXMgdGhhdCBhIFwnRkFRXCcgb2JqZWN0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciBcJ0ZBUVwnIG9iamVjdHMgdXNpbmcgdGhlIFwnTm9ybWFsXCcgbGluayB0eXBlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnRkFRXCcgb2JqZWN0cyB1c2luZyB0aGUgXCdQYXJlbnRDaGlsZFwnIGxpbmsgdHlwZS4nfSA9CiAgICAgICAgJ1RoaXMgc2V0dGluZyBkZWZpbmVzIHRoYXQgYSBcJ0ZBUVwnIG9iamVjdCBjYW4gYmUgbGlua2VkIHdpdGggb3RoZXIgXCdGQVFcJyBvYmplY3RzIHVzaW5nIHRoZSBcJ1BhcmVudENoaWxkXCcgbGluayB0eXBlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnVGlja2V0XCcgb2JqZWN0cyB1c2luZyB0aGUgXCdOb3JtYWxcJyBsaW5rIHR5cGUuJ30gPQogICAgICAgICdUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnVGlja2V0XCcgb2JqZWN0cyB1c2luZyB0aGUgXCdOb3JtYWxcJyBsaW5rIHR5cGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBkZWZpbmVzIHRoYXQgYSBcJ0ZBUVwnIG9iamVjdCBjYW4gYmUgbGlua2VkIHdpdGggb3RoZXIgXCdUaWNrZXRcJyBvYmplY3RzIHVzaW5nIHRoZSBcJ1BhcmVudENoaWxkXCcgbGluayB0eXBlLid9ID0KICAgICAgICAnVGhpcyBzZXR0aW5nIGRlZmluZXMgdGhhdCBhIFwnRkFRXCcgb2JqZWN0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciBcJ1RpY2tldFwnIG9iamVjdHMgdXNpbmcgdGhlIFwnUGFyZW50Q2hpbGRcJyBsaW5rIHR5cGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBib2R5IGZvciBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZS4nfSA9ICdUaWNrZXQgYm9keSBmb3IgYXBwcm92YWwgb2YgRkFRIGFydGljbGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBzdWJqZWN0IGZvciBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZS4gUGVybWl0dGVkIG5vdGlmaWNhdGlvbiB0YWdzIGFyZSA8T1RPQk9fRkFRX05VTUJFUj4sIDxPVE9CT19GQVFfQ0FURUdPUllJRD4sIDxPVE9CT19GQVFfSVRFTUlEPj4gPE9UT0JPX0ZBUV9USVRMRT4gYW5kIDxPVE9CT19GQVFfU1RBVEVJRD4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG9vbGJhciBJdGVtIGZvciBhIHNob3J0Y3V0Lid9ID0gJ1Rvb2xiYXIgSXRlbSBmb3IgYSBzaG9ydGN1dC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZXh0ZXJuYWwgKGN1c3RvbWVyKSd9ID0gJ2V4dGVybmFsIChjdXN0b21lciknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW50ZXJuYWwgKGFnZW50KSd9ID0gJ2ludGVybmFsIChhZ2VudCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncHVibGljIChhbGwpJ30gPSAncHVibGljIChhbGwpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3B1YmxpYyAocHVibGljKSd9ID0gJ3B1YmxpYyAocHVibGljKSc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ05vJywKICAgICdPaycsCiAgICAnU2V0dGluZ3MnLAogICAgJ1N1Ym1pdCcsCiAgICAnVGhpcyBtaWdodCBiZSBoZWxwZnVsJywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==</File>
        <File Location="Kernel/Language/es_FAQ.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmVzX0ZBUTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRQWRkCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIEFydGljbGUnfSA9ICdBw7FhZGlyIGFydMOtY3VsbyBhIGxhcyBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0tleXdvcmRzJ30gPSAnUGFsYWJyYXMgY2xhdmVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgY2F0ZWdvcnkgaXMgcmVxdWlyZWQuJ30gPSAnU2UgcmVxdWllcmUgdW5hIGNhdGVnb3LDrWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FwcHJvdmFsJ30gPSAnQXByb2JhY2nDs24nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRQ2F0ZWdvcnkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBDYXRlZ29yeSBNYW5hZ2VtZW50J30gPSAnR2VzdGnDs24gbGFzIGNhdGVnb3LDrWFzIGRlIGxhcyBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEZBUSBDYXRlZ29yeSd9ID0gJ0FncmVnYXIgY2F0ZWdvcsOtYSBhIGxhcyBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBGQVEgQ2F0ZWdvcnknfSA9ICdFZGl0YXIgY2F0ZWdvcsOtYSBkZSBsYXMgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBjYXRlZ29yeSd9ID0gJ0HDsWFkaXIgY2F0ZWdvcsOtYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0ZWdvcnknfSA9ICdBw7FhZGlyIGNhdGVnb3LDrWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDYXRlZ29yeSd9ID0gJ0VkaXRhciBjYXRlZ29yw61hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1YmNhdGVnb3J5IG9mJ30gPSAnU3ViY2F0ZWdvcsOtYSBkZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2Ugc2VsZWN0IGF0IGxlYXN0IG9uZSBwZXJtaXNzaW9uIGdyb3VwLid9ID0gJ1BvciBmYXZvciwgc2VsZWNjaW9uZSBhbCBtZW5vcyB1biBncnVwbyBkZSBwZXJtaXNvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBncm91cHMgdGhhdCBjYW4gYWNjZXNzIGFydGljbGVzIGluIHRoaXMgY2F0ZWdvcnkuJ30gPSAnR3J1cG9zIGRlIGFnZW50ZXMgcXVlIHB1ZWRlbiBhY2NlZGVyIGEgbG9zIGFydMOtY3Vsb3MgZGUgZXN0YSBjYXRlZ29yw61hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dpbGwgYmUgc2hvd24gYXMgY29tbWVudCBpbiBFeHBsb3Jlci4nfSA9ICdTZSBtb3N0cmFyw6EgY29tbyBjb21lbnRhcmlvIGVuIGVsIGV4cGxvcmFkb3IuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjYXRlZ29yeT8nfSA9ICfCv1JlYWxtZW50ZSBkZXNlYSBlbGltaW5hciBlc3RhIGNhdGVnb3LDrWE/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gbm90IGRlbGV0ZSB0aGlzIGNhdGVnb3J5LiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBGQVEgYXJ0aWNsZSBhbmQvb3IgaXMgcGFyZW50IG9mIGF0IGxlYXN0IG9uZSBvdGhlciBjYXRlZ29yeSd9ID0KICAgICAgICAnTm8gcHVlZGUgYm9ycmFyIGVzdGEgY2F0ZWdvcsOtYS4gRXN0w6Egc2llbmRvIHVzYWRhIHBvciBhbCBtZW5vcyB1biBhcnTDrWN1bG8gRkFRIHkvbyBlcyBwYWRyZSBkZSBhbCBtZW5vcyBvdHJhIGNhdGVnb3LDrWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBjYXRlZ29yeSBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgRkFRIGFydGljbGUocyknfSA9ICdFc3RhIGNhdGVnb3LDrWEgZXN0w6Egc2llbmRvIHVzYWRhIHBvciBsb3Mgc2lndWllbnRlcyBhcnTDrWN1bG9zIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGNhdGVnb3J5IGlzIHBhcmVudCBvZiB0aGUgZm9sbG93aW5nIHN1YmNhdGVnb3JpZXMnfSA9ICdFc3RhIGNhdGVnb3LDrWEgZXMgcGFkcmUgZGUgbGFzIHNpZ3VpZW50ZXMgc3ViY2F0ZWdvcsOtYXMnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgRkFRIGFydGljbGU/J30gPSAnwr9SZWFsbWVudGUgZGVzZWEgZWxpbWluYXIgZXN0ZSBhcnTDrWN1bG8gRkFRPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEnfSA9ICdGQVEnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRRXhwbG9yZXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBFeHBsb3Jlcid9ID0gJ0V4cGxvcmFkb3IgZGUgbGFzIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydRdWljayBTZWFyY2gnfSA9ICdCw7pzcXVlZGEgcsOhcGlkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXaWxkY2FyZHMgYXJlIGFsbG93ZWQuJ30gPSAnRXN0YSBwZXJtaXRpZG8gbG9zIGNvbW9kaW5lcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWR2YW5jZWQgU2VhcmNoJ30gPSAnQsO6c3F1ZWRhIGF2YW56YWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1YmNhdGVnb3JpZXMnfSA9ICdTdWJjYXRlZ29yw61hcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZXMnfSA9ICdBcnTDrWN1bG9zIGRlIGxhcyBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gc3ViY2F0ZWdvcmllcyBmb3VuZC4nfSA9ICdObyBzZSBlbmNvbnRyYXJvbiBzdWJjYXRlZ29yw61hcy4nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRSGlzdG9yeQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZid9ID0gJ0hpc3RvcmlhbCBkZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IENvbnRlbnQnfSA9ICdDb250ZW5pZG8gZGVsIGhpc3RvcmlhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGV0aW1lJ30gPSAnRmVjaGEgZGUgQ3JlYWNpw7NuJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUpvdXJuYWxPdmVydmlld1NtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBGQVEgSm91cm5hbCBkYXRhIGZvdW5kLid9ID0gJ05vIHNlIGVuY29udHJhcm9uIGRhdG9zIGVuIGVsIERpYXJpbyBkZSBsYXMgRkFRLic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFMYW5ndWFnZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIExhbmd1YWdlIE1hbmFnZW1lbnQnfSA9ICdHZXN0acOzbiBkZSBJZGlvbWFzIGRlIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIExhbmd1YWdlJ30gPSAnQcOxYWRpciBsZW5ndWFqZSBQcmVndW50YXMgRnJlY3VlbnRlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEZBUSBMYW5ndWFnZSd9ID0gJ0VkaXRhciBsZW5ndWFqZSBQcmVndW50YXMgRnJlY3VlbnRlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2UgdGhpcyBmZWF0dXJlIGlmIHlvdSB3YW50IHRvIHdvcmsgd2l0aCBtdWx0aXBsZSBsYW5ndWFnZXMuJ30gPQogICAgICAgICdVdGlsaXphIGVzdGEgZnVuY2nDs24gc2kgZGVzZWFzIHRyYWJhamFyIGNvbiB2YXJpb3MgaWRpb21hcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGxhbmd1YWdlJ30gPSAnQcOxYWRpciBJZGlvbWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIExhbmd1YWdlJ30gPSAnQcOxYWRpciBJZGlvbWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBMYW5ndWFnZSd9ID0gJ0VkaXRhciBJZGlvbWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgbGFuZ3VhZ2UuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIEZBUSBhcnRpY2xlISd9ID0KICAgICAgICAnTm8gcHVlZGUgYm9ycmFyIGVzdGUgaWRpb21hLiDCoUVzdMOhIHNpZW5kbyB1c2FkbyBwb3IgYWwgbWVub3MgdW4gYXJ0w61jdWxvIGRlIGxhcyBGQVEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbGFuZ3VhZ2UgaXMgdXNlZCBpbiB0aGUgZm9sbG93aW5nIEZBUSBBcnRpY2xlKHMpJ30gPSAnRXN0ZSBpZGlvbWEgZXN0YSBzaWVuZG8gdXNhZG8gcG9yIGxvcyBzaWd1aWVudGVzIEFydMOtY3Vsb3MgRkFRJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUU92ZXJ2aWV3TmF2QmFyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAnQWp1c3RlcyBkZSBDb250ZXh0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgYXJ0aWNsZXMgcGVyIHBhZ2UnfSA9ICdBcnTDrWN1bG9zIEZBUSBwb3IgcMOhZ2luYSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFPdmVydmlld1NtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBGQVEgZGF0YSBmb3VuZC4nfSA9ICdObyBzZSBlbmNvbnRyYXJvbiBkYXRvcyBkZSBGQVEuJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVJlbGF0ZWRBcnRpY2xlcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnb3V0IG9mIDUnfSA9ICdkZSA1JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVNlYXJjaAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnS2V5d29yZCd9ID0gJ1BhbGFicmEgY2xhdmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSAoZS4gZy4gRXF1YWxzIDEwIG9yIEdyZWF0ZXJUaGFuIDYwKSd9ID0gJ1ZvdGEgKGVqbS4gSWd1YWwgYSAxMCBvIG1heW9yIGEgNjApJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGUgKGUuIGcuIEVxdWFscyAyNSUgb3IgR3JlYXRlclRoYW4gNzUlKSd9ID0gJ1B1bnTDumEgKEVqbS4gSWd1YWwgYSAyNSUgbyBtYXlvciBhIDc1JSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwcm92ZWQnfSA9ICdBcHJvYmFkbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQgYnknfSA9ICdVbHRpbW8gY2FtYmlvIHBvcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDcmVhdGUgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJ1RpZW1wbyBkZSBDcmVhY2nDs24gZGUgQXJ0w61jdWxvcyBGQVEgKGFudGVzIC8gZGVzcHXDqXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENyZWF0ZSBUaW1lIChiZXR3ZWVuKSd9ID0gJ1RpZW1wbyBkZSBDcmVhY2nDs24gZGVsIEFydGljdWxvIEZBUSAoZW50cmUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENoYW5nZSBUaW1lIChiZWZvcmUvYWZ0ZXIpJ30gPSAnVGllbXBvIGRlIEFjdHVhbGl6YWNpw7NuIGRlbCBBcnRpY3VsbyBGQVEgKGFudGVzL2Rlc3B1w6lzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDaGFuZ2UgVGltZSAoYmV0d2VlbiknfSA9ICdUaWVtcG8gZGUgQWN0dWFsaXphY2nDs24gZGVsIEFydGljdWxvIEZBUSAoZW50cmUpJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVNlYXJjaE9wZW5TZWFyY2hEZXNjcmlwdGlvbkZ1bGx0ZXh0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVFGdWxsdGV4dCd9ID0gJ1RleHRvIGNvbXBsZXRvIEZBUSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFTZWFyY2hTbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIFNlYXJjaCd9ID0gJ0LDunNxdWVkYSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvZmlsZSBTZWxlY3Rpb24nfSA9ICdTZWxlY2Npw7NuIGRlIHBlcmZpbCAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSd9ID0gJ1ZvdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdm90ZSBzZXR0aW5ncyd9ID0gJ1NpbiBhanVzdGVzIGRlIFZvdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWMgdm90ZXMnfSA9ICdWb3RvcyBlc3BlY8OtZmljb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZS4gZy4gRXF1YWxzIDEwIG9yIEdyZWF0ZXJUaGFuIDYwJ30gPSAnRWouIElndWFsIGEgMTAgbyBtYXlvciBhIDYwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGUnfSA9ICdQdW50dWFjacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyByYXRlIHNldHRpbmdzJ30gPSAnU2luIGFqdXN0ZXMgZGUgcHVudHVhY2nDs24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWMgcmF0ZSd9ID0gJ1B1bnR1YWNpw7NuIGVzcGVjw61maWNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuIGcuIEVxdWFscyAyNSUgb3IgR3JlYXRlclRoYW4gNzUlJ30gPSAnZWptOiBJZ3VhbCBhIDI1JSBvIG1heW9yIHF1ZSA3NSUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ3JlYXRlIFRpbWUnfSA9ICdUaWVtcG8gZGUgQ3JlYWNpw7NuIGRlbCBBcnTDrWN1bG8gRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENoYW5nZSBUaW1lJ30gPSAnVGllbXBvIGRlIEFjdHVhbGl6YWNpw7NuIGRlbCBBcnTDrWN1bG8gRkFRJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVpvb20KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJbmZvcm1hdGlvbid9ID0gJ0luZm9ybWFjacOzbiBkZSBsYXMgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGluZyd9ID0gJ1B1bnR1YWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGVzJ30gPSAnVm90b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdm90ZXMgZm91bmQhJ30gPSAnwqFObyBzZSBlbmNvbnRyw7MgbmluZ8O6biB2b3RvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB2b3RlcyBmb3VuZCEgQmUgdGhlIGZpcnN0IG9uZSB0byByYXRlIHRoaXMgRkFRIGFydGljbGUuJ30gPSAnTm8gc2UgZW5jb250csOzIG5pbmfDum4gdm90by4gU2VhIGVsIHByaW1lcm8gZW4gdmFsb3JhciBlc3RlIGFydMOtY3VsbyBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG93bmxvYWQgQXR0YWNobWVudCd9ID0gJ0Rlc2NhcmdhciBBcmNoaXZvIGFkanVudG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gb3BlbiBsaW5rcyBpbiB0aGUgZm9sbG93aW5nIGRlc2NyaXB0aW9uIGJsb2NrcywgeW91IG1pZ2h0IG5lZWQgdG8gcHJlc3MgQ3RybCBvciBDbWQgb3IgU2hpZnQga2V5IHdoaWxlIGNsaWNraW5nIHRoZSBsaW5rIChkZXBlbmRpbmcgb24geW91ciBicm93c2VyIGFuZCBPUykuJ30gPQogICAgICAgICdQYXJhIGFicmlyIGxpbmtzIGVuIGxvcyBzaWd1aWVudGVzIGJsb3F1ZXMgZGUgZGVzY3JpcGNpw7NuLCBwb2RyaWEgbmVjZXNpdGFyIHByZXNpb25hciBsYSB0ZWNsYXMgQ3RybCwgQ21kIG8gU2hpZnQgbWllbnRyYXMgcHJlc2lvbmEgZWwgbGluayAoZGVwZW5kZSBkZWwgYnJvd3NlciB5IGVsIFNPKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3cgaGVscGZ1bCB3YXMgdGhpcyBhcnRpY2xlPyBQbGVhc2UgZ2l2ZSB1cyB5b3VyIHJhdGluZyBhbmQgaGVscCB0byBpbXByb3ZlIHRoZSBGQVEgRGF0YWJhc2UuIFRoYW5rIFlvdSEnfSA9CiAgICAgICAgJ8K/UXXDqSB0YW4gw7p0aWwgZnVlIGVzdGUgYXJ0w61jdWxvPyBQb3IgZmF2b3IgZMOpbm9zIHN1IGNhbGlmaWNhY2nDs24geSBheXVkZSBhIG1lam9yYXIgbGEgYmFzZSBkZSBkYXRvcyBkZSBsYXMgRkFRLiDCoUdyYWNpYXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J25vdCBoZWxwZnVsJ30gPSAncG9jbyDDunRpbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd2ZXJ5IGhlbHBmdWwnfSA9ICdtdXkgw7p0aWwnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRWm9vbVNtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIHRpdGxlIHRvIGFydGljbGUgc3ViamVjdCd9ID0gJ0FncmVnYXIgdGl0dWxvIGRlIEZBUSBhIGFzdW50byBkZWwgYXJ0w61jdWxvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGQVEgVGV4dCd9ID0gJ0luc2VydGFyIFRleHRvIGRlIGxhIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRnVsbCBGQVEnfSA9ICdJbnNlcnRhciBGQVEgY29tcGxldGFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGQVEgTGluayd9ID0gJ0luc2VydGFyIEVubGFjZSBhIGxhIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRkFRIFRleHQgJiBMaW5rJ30gPSAnSW5zZXJ0YXIgdGV4dG8geSBlbmxhY2UgYSBsYSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZ1bGwgRkFRICYgTGluayd9ID0gJ0luc2VydGFyIEZBUSBjb21wbGV0YXMgeSBlbmxhY2UnOwoKICAgICMgVGVtcGxhdGU6IEN1c3RvbWVyRkFRRXhwbG9yZXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhdGVzdCB1cGRhdGVkIEZBUSBhcnRpY2xlcyd9ID0gJ8OabHRpbW9zIGFydMOtY3Vsb3MgZGUgbGFzIEZBUSBtb2RpZmljYWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBGQVEgYXJ0aWNsZXMgZm91bmQuJ30gPSAnTm8gc2UgZW5jb250cmFyb24gYXJ0w61jdWxvcyBGQVEnOwoKICAgICMgVGVtcGxhdGU6IEN1c3RvbWVyRkFRUmVsYXRlZEFydGljbGVzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1pZ2h0IGJlIGhlbHBmdWwnfSA9ICdFc3RvIHBvZHLDrWEgc2VyIMO6dGlsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvdW5kIG5vIGhlbHBmdWwgcmVzb3VyY2VzIGZvciB0aGUgc3ViamVjdCBhbmQgdGV4dC4nfSA9ICdObyBzZSBlbmNvbnRyYXRvbiByZWN1cnNvcyDDunRpbGVzIHBhcmEgZWwgdGVtYSB5IGVsIHRleHRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlIGEgc3ViamVjdCBvciB0ZXh0IHRvIGdldCBhIGxpc3Qgb2YgaGVscGZ1bCByZXNvdXJjZXMuJ30gPSAnRXNjcmliYSB1biB0ZW1hIG8gdGV4dG8gcGFyYSBvYnRlbmVyIHVuYSBsaXN0YSBkZSByZWN1cnNvcyDDunRpbGVzLic7CgogICAgIyBUZW1wbGF0ZTogQ3VzdG9tZXJGQVFTZWFyY2gKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bGx0ZXh0IHNlYXJjaCBpbiBGQVEgYXJ0aWNsZXMgKGUuIGcuICJKb2huKm4iIG9yICJXaWxsKiIpJ30gPSAnQsO6c3F1ZWRhIGRlIHRleHRvIGNvbXBsZXRvIGVuIGFydMOtY3Vsb3MgRkFRIChlajogIkpvaG4qbiIgbyAiV2lsbCoiKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWb3RlIHJlc3RyaWN0aW9ucyd9ID0gJ1Jlc3RyaWNjaW9uZXMgZGUgdm90byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IEZBUSBhcnRpY2xlcyB3aXRoIHZvdGVzLi4uJ30gPSAnU8OzbG8gbG9zIGFydMOtY3Vsb3MgRkFRIGNvbiB2b3Rvcy4uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRlIHJlc3RyaWN0aW9ucyd9ID0gJ1Jlc3RyaWNjaW9uZXMgZGUgcHVudHVhY2nDs24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSBGQVEgYXJ0aWNsZXMgd2l0aCByYXRlLi4uJ30gPSAnU8OzbG8gbG9zIGFydMOtY3Vsb3MgRkFRIGNvbiBjYWxpZmljYWNpw7NuLi4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVzdHJpY3Rpb25zJ30gPSAnUmVzdHJpY2Npb25lcyBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSBGQVEgYXJ0aWNsZXMgY3JlYXRlZCd9ID0gJ1PDs2xvIEFydMOtY3Vsb3MgRkFRIGNyZWFkb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSBGQVEgYXJ0aWNsZXMgY3JlYXRlZCBiZXR3ZWVuJ30gPSAnU8OzbG8gQXJ0w61jdWxvcyBGQVEgY3JlYWRvcyBlbnRyZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2gtUHJvZmlsZSBhcyBUZW1wbGF0ZT8nfSA9ICfCv1BlcmZpbCBkZSBCw7pzcXVlZGEgY29tbyBQbGFudGlsbGE/JzsKCiAgICAjIFRlbXBsYXRlOiBDdXN0b21lckZBUVpvb20KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FydGljbGUgTnVtYmVyJ30gPSAnTsO6bWVybyBkZSBBcnTDrWN1bG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIGZvciBhcnRpY2xlcyB3aXRoIGtleXdvcmQnfSA9ICdCdXNjYXIgYXJ0w61jdWxvcyBjb24gbGEgcGFsYWJyYSBjbGF2ZSc7CgogICAgIyBUZW1wbGF0ZTogUHVibGljRkFRU2VhcmNoT3BlblNlYXJjaERlc2NyaXB0aW9uRkFRTnVtYmVyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMnfSA9ICdQw7pibGljbyc7CgogICAgIyBUZW1wbGF0ZTogUHVibGljRkFRU2VhcmNoUmVzdWx0U2hvcnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0JhY2sgdG8gRkFRIEV4cGxvcmVyJ30gPSAnVm9sdmVyIGEgZXhwbG9yYWRvciBkZSBGQVEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCBydyBwZXJtaXNzaW9uISd9ID0gJ8KhTmVjZXNpdGFzIGVsIHBlcm1pc28gcncgISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjYXRlZ29yaWVzIGZvdW5kIHdoZXJlIHVzZXIgaGFzIHJlYWQvd3JpdGUgcGVybWlzc2lvbnMhJ30gPSAnwqFObyBzZSBlbmNvbnRyYXJvbiBjYXRlZ29yw61hcyBkb25kZSBlbCB1c3VhcmlvIHRlbmdhIHBlcm1pc29zIGRlIGxlY3R1cmEgLyBlc2NyaXR1cmEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRlZmF1bHQgbGFuZ3VhZ2UgZm91bmQgYW5kIGNhblwndCBjcmVhdGUgYSBuZXcgb25lLid9ID0gJ05vIHNlIGhhIGVuY29udHJhZG8gbmluZ8O6biBpZGlvbWEgcHJlZGV0ZXJtaW5hZG8geSBubyBzZSBwdWVkZSBjcmVhciB1bm8gbnVldm8uJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUNhdGVnb3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIENhdGVnb3J5SUQhJ30gPSAnwqFTZSBuZWNlc2l0YSBsYSBDYXRlZ29yeUlEISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGNhdGVnb3J5IHNob3VsZCBoYXZlIGEgbmFtZSEnfSA9ICfCoUxhcyBjYXRlZ29yw61hcyBkZWJlbiB0ZW5lciB1biBub21icmUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY2F0ZWdvcnkgYWxyZWFkeSBleGlzdHMnfSA9ICdFc3RhIGNhdGVnb3LDrWEgeWEgZXhpc3RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY2F0ZWdvcnkgYWxyZWFkeSBleGlzdHMhJ30gPSAnwqFFc3RhIGNhdGVnb3LDrWEgeWEgZXhpc3RlISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBDYXRlZ29yeUlEIGlzIGdpdmVuISd9ID0gJ8KhTm8gc2UgaGEgcHJvcG9yY2lvbmFkbyBuaW5nw7puYSBDYXRlZ29yeUlEISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBjYXRlZ29yeSAlcyEnfSA9ICfCoU5vIHNlIHB1ZG8gZWxpbWluYXIgbGEgY2F0ZWdvcsOtYSAlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGNhdGVnb3J5IHVwZGF0ZWQhJ30gPSAnwqFDYXRlZ29yw61hIGRlIGxhcyBGQVEgYWN0dWFsaXphZGEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBjYXRlZ29yeSBhZGRlZCEnfSA9ICfCoUNhdGVnb3LDrWEgZGUgbGFzIEZBUSBhw7FhZGlkYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIENhdGVnb3J5J30gPSAnQm9ycmFyIGNhdGVnb3LDrWEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBJdGVtSUQgaXMgZ2l2ZW4hJ30gPSAnwqFObyBzZSBoYSBwcm9wb3JjaW9uYWRvIG5pbmfDum4gIEl0ZW1JRCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgbm8gcGVybWlzc2lvbiBmb3IgdGhpcyBjYXRlZ29yeSEnfSA9ICfCoU5vIHRpZW5lIHBlcm1pc28gcGFyYSBlc3RhIGNhdGVnb3LDrWEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIEZBUSBhcnRpY2xlICVzISd9ID0gJ8KhTm8gc2UgcHVkbyBlbGltaW5hciBlbCBhcnTDrWN1bG8gZGUgbGFzIEZBUSAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRRXhwbG9yZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBDYXRlZ29yeUlEICVzIGlzIGludmFsaWQuJ30gPSAnTGEgQ2F0ZWdvcnlJRCAlcyBubyBlcyB2YWxpZGEuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUhpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIEl0ZW1JRCBpcyBnaXZlbiEnfSA9ICfCoU5vIHNlIHB1ZWRlIG1vc3RyYXIgZWwgaGlzdG9yaWFsLCB5YSBxdWUgbm8gc2UgaGEgcHJvcG9yY2lvbmFkbyBuaW5nw7puIEl0ZW1JRCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEhpc3RvcnknfSA9ICdIaXN0b3JpYWwgZGUgbGFzIEZBUSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFKb3VybmFsLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSm91cm5hbCd9ID0gJ0RpYXJpbyBkZSBsYXMgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgY29uZmlnIG9wdGlvbiBGQVE6OkZyb250ZW5kOjpPdmVydmlldyd9ID0gJ05lY2VzaXRhIHVuYSBvcGNpw7NuIGRlIGNvbmZpZ3VyYWNpw7NuIEZBUTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZyBvcHRpb24gRkFROjpGcm9udGVuZDo6T3ZlcnZpZXcgbmVlZHMgdG8gYmUgYSBIQVNIIHJlZiEnfSA9CiAgICAgICAgJ8KhTGEgb3BjacOzbiBkZSBjb25maWd1cmFjacOzbiBGQVE6OkZyb250ZW5kOjpPdmVydmlldyBuZWNlc2l0YSAgc2VyIHVuIHJlZmVyZW5jaWEgSEFTSCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY29uZmlnIG9wdGlvbiBmb3VuZCBmb3IgdGhlIHZpZXcgIiVzIiEnfSA9ICfCoU5vIHNlIGhhIGVuY29udHJhZG8gbmluZ3VuYSBvcGPDs24gZGUgY29uZmlndXJhY2nDs24gcGFyYSBsYSB2aXN0YSAiJXMiISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFMYW5ndWFnZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gTGFuZ3VhZ2VJRCBpcyBnaXZlbiEnfSA9ICfCoU5vIHNlIGhhIHByb3BvcmNpb25hZG8gTGFuZ3VhamVJRCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIG5hbWUgaXMgcmVxdWlyZWQhJ30gPSAnwqFTZSByZXF1aWVyZSBlbCBub21icmUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbGFuZ3VhZ2UgYWxyZWFkeSBleGlzdHMhJ30gPSAnwqFFc3RlIGlkaW9tYSB5YSBleGlzdGUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGxhbmd1YWdlICVzISd9ID0gJ8KhTm8gc2UgcHVkbyBlbGltaW5hciBlbCBpZGlvbWEgJXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBsYW5ndWFnZSB1cGRhdGVkISd9ID0gJ8KhSWRpb21hIGRlIGxhcyBGQVEgYWN0dWFsaXphZG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBsYW5ndWFnZSBhZGRlZCEnfSA9ICfCoUlkaW9tYSBkZSBsYXMgRkFRIGHDsWFkaWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgTGFuZ3VhZ2UgJXMnfSA9ICdCb3JyYXIgSWRpb21hICVzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUVByaW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXN1bHQnfSA9ICdSZXN1bHRhZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCB1cGRhdGUnfSA9ICdVbHRpbWEgYWN0dWFsaXphY2nDs24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIER5bmFtaWMgRmllbGRzJ30gPSAnQ2FtcG9zIERpbsOhbWljb3MgZGUgRkFRJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUVJpY2hUZXh0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyAlcyBpcyBnaXZlbiEnfSA9ICfCoU5vIHNlIGluZGljYSBlbCAlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGxvYWQgTGFuZ3VhZ2VPYmplY3QhJ30gPSAnwqFObyBzZSBwdWVkZSBjYXJnYXIgTGFuZ3VhamVPYmplY3QhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gUmVzdWx0ISd9ID0gJ8KhU2luIHJlc3VsdGFkb3MhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBOdW1iZXInfSA9ICdOw7ptZXJvIGRlIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IENoYW5nZWQgYnknfSA9ICdVbHRpbW8gY2FtYmlvIHBvcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSXRlbSBDcmVhdGUgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJ0FydGljdWxvIGRlIGxhcyBGQVEgY3JlYWRvIChhbnRlcy9kZXNwdcOpcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ3JlYXRlIFRpbWUgKGJldHdlZW4pJ30gPSAnQXJ0aWN1bG8gZGUgbGFzIEZBUSBjcmVhZG8gKGVudHJlKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSXRlbSBDaGFuZ2UgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJ0FydGljdWxvIGRlIGxhcyBGQVEgbW9kaWZpY2FkbyAoYW50ZXMvZGVzcHXDqXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJdGVtIENoYW5nZSBUaW1lIChiZXR3ZWVuKSd9ID0gJ0FydGljdWxvIGRlIGxhcyBGQVEgbW9kaWZpY2FkbyAoZW50cmUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VxdWFscyd9ID0gJ0lndWFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyZWF0ZXIgdGhhbid9ID0gJ01heW9yIHF1ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmVhdGVyIHRoYW4gZXF1YWxzJ30gPSAnTWF5b3IgcXVlIGlndWFsZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU21hbGxlciB0aGFuJ30gPSAnTWVub3IgcXVlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NtYWxsZXIgdGhhbiBlcXVhbHMnfSA9ICdNZW5vciBxdWUgaWd1YWxlcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIEZpbGVJRCEnfSA9ICfCoU5lY2VzaXRhIEZpbGVJRCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhhbmtzIGZvciB5b3VyIHZvdGUhJ30gPSAnwqFHcmFjaWFzIHBvciBzdSB2b3RvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSBhbHJlYWR5IHZvdGVkISd9ID0gJ8KhVXN0ZWQgeWEgaGEgdm90YWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyByYXRlIHNlbGVjdGVkISd9ID0gJ8KhTm8gc2UgaGEgc2VsZWNjaW9uYWRvIG5pbmd1bmEgcHVudHVhY2nDs24hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB2b3RpbmcgbWVjaGFuaXNtIGlzIG5vdCBlbmFibGVkISd9ID0gJ8KhRWwgbWVjYW5pc21vIGRlIHZvdGFjacOzbiBubyBlc3TDoSBoYWJpbGl0YWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdm90ZSByYXRlIGlzIG5vdCBkZWZpbmVkISd9ID0gJ8KhTGEgdGFzYSBkZSB2b3RhY2nDs24gbm8gZXN0w6EgZGVmaW5pZGEhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9DdXN0b21lckZBUVByaW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBQcmludCd9ID0gJ0ltcHJpbWlyIGVsIGFydMOtY3VsbyBkZSBsYXMgRkFRJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9DdXN0b21lckZBUVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBiZXR3ZWVuJ30gPSAnQ3JlYWRvIGVudHJlJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9DdXN0b21lckZBUVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgSXRlbUlEISd9ID0gJ8KhTmVjZXNpdGEgSXRlbUlEISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvUHVibGljRkFRRXhwbG9yZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlcyAobmV3IGNyZWF0ZWQpJ30gPSAnQXJ0w61jdWxvcyBkZSBsYXMgRkFRICAobnVldm9zKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZXMgKHJlY2VudGx5IGNoYW5nZWQpJ30gPSAnQXJ0w61jdWxvcyBkZSBsYXMgRkFRICAobW9kaWZpY2Fkb3MgcmVjaWVudGVtZW50ZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGVzIChUb3AgMTApJ30gPSAnQXJ0w61jdWxvcyBkZSBsYXMgRkFRIChUb3AgMTApJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9QdWJsaWNGQVFSU1MucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFR5cGUgaXMgZ2l2ZW4hJ30gPSAnwqFObyBzZSBoYSBwcm9wb3JjaW5hZG8gZWwgdGlwbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZSBtdXN0IGJlIGVpdGhlciBMYXN0Q3JlYXRlIG9yIExhc3RDaGFuZ2Ugb3IgVG9wMTAhJ30gPSAnwqFFbCB0aXBvIGRlYmUgc2VyIExhc3RDcmVhdGUgbyBMYXN0Q2hhbmdlIG8gVG9wMTAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBjcmVhdGUgUlNTIGZpbGUhJ30gPSAnwqFObyBzZSBwdWVkZSBjcmVhciBhcmNoaXZvIFJTUyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9IZWFkZXJNZXRhL0FnZW50RkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoRkFRRnVsbHRleHQpJ30gPSAnJXMgKFRleHRvIGNvbXBsZXRvIEZBUSknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9IZWFkZXJNZXRhL0N1c3RvbWVyRkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAtIEN1c3RvbWVyICglcyknfSA9ICclcyAtIENsaWVudGUgKCVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAtIEN1c3RvbWVyIChGQVFGdWxsdGV4dCknfSA9ICclcyAtIENsaWVudGUgKFRleHRvIGNvbXBsZXRvIEZBUSknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9IZWFkZXJNZXRhL1B1YmxpY0ZBUVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgLSBQdWJsaWMgKCVzKSd9ID0gJyVzIC0gUHVibGljbyAoJXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gUHVibGljIChGQVFGdWxsdGV4dCknfSA9ICclcyAtIFB1YmxpY28gKFRleHRvIGNvbXBsZXRvIEZBUSknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9MYXlvdXQvRkFRLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIHJhdGUhJ30gPSAnwqFOZWNlc2l0YSB0YXNhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGFydGljbGUgaXMgZW1wdHkhJ30gPSAnwqFFc3RlIGFydMOtY3VsbyBlc3RhIHZhY8OtbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGF0ZXN0IGNyZWF0ZWQgRkFRIGFydGljbGVzJ30gPSAnw5psdGltb3MgYXJ0w61jdWxvcyBkZSBsYXMgRkFRIGNyZWFkb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG9wIDEwIEZBUSBhcnRpY2xlcyd9ID0gJ1RvcCAxMCBkZSBsb3MgYXJ0w61jdWxvcyBkZSBsYXMgRkFRJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTGlua09iamVjdC9GQVEucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRlbnQgVHlwZSd9ID0gJ1RpcG8gZGUgY29udGVuaWRvJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0R5bmFtaWNGaWVsZC9Ecml2ZXIvRkFRLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgdGhlIGF0dHJpYnV0ZSB3aGljaCBGQVFzIHdpbGwgYmUgc2VhcmNoZWQgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXh0ZXJuYWwtc291cmNlIGtleSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgdGhlIHR5cGUgb2YgZGlzcGxheSd9ID0gJyc7CgogICAgIyBEYXRhYmFzZSBYTUwgLyBTT1BNIERlZmluaXRpb246IEZBUS5zb3BtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpbnRlcm5hbCd9ID0gJ2ludGVybm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZXh0ZXJuYWwnfSA9ICdleHRlcm5vJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3B1YmxpYyd9ID0gJ3DDumJsaWNvJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBmaWx0ZXIgZm9yIEhUTUwgb3V0cHV0IHRvIGFkZCBsaW5rcyBiZWhpbmQgYSBkZWZpbmVkIHN0cmluZy4gVGhlIGVsZW1lbnQgSW1hZ2UgYWxsb3dzIHR3byBpbnB1dCBraW5kcy4gRmlyc3QgdGhlIG5hbWUgb2YgYW4gaW1hZ2UgKGUuZy4gZmFxLnBuZykuIEluIHRoaXMgY2FzZSB0aGUgT1RPQk8gaW1hZ2UgcGF0aCB3aWxsIGJlIHVzZWQuIFRoZSBzZWNvbmQgcG9zc2liaWxpdHkgaXMgdG8gaW5zZXJ0IHRoZSBsaW5rIHRvIHRoZSBpbWFnZS4nfSA9CiAgICAgICAgJ0ZpbHRybyBwYXJhIGVsIEhUTUwgcmVzdWx0YW50ZSBwYXJhIGHDsWFkaXIgZW5sYWNlcyBhIHVuYSBjYWRlbmEgZGV0ZXJtaW5hZGEuIEVsIGVsZW1lbnRvIEltYWdlbiBjb250ZW1wbGEgZG9zIHRpcG9zIGRlIHJlZ2lzdHJvcy4gRWwgcHJpbWVybyBlcyBlbCBub21icmUgZGUgdW5hIGltYWdlbiAocG9yIGVqZW1wbG8gZmFxLnBuZykuIEVuIGVzdGUgY2FzbyBzZSB1dGlsaXphcsOhIGxhIHJ1dGEgZGUgaW3DoWdlbmVzIGRlIE9UT0JPLiBMYSBzZWd1bmRhIHBvc2liaWxpZGFkIGVzIGluc2VydGFyIGVsIGVubGFjZSBhIGxhIGltYWdlbi4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBGQVEgYXJ0aWNsZSd9ID0gJ0HDsWFkaXIgYXJ0w61jdWxvIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDU1MgY29sb3IgZm9yIHRoZSB2b3RpbmcgcmVzdWx0Lid9ID0gJ0NvbG9yIENTUyBwYXJhIGVsIHJlc3VsdGFkbyBkZSBsYSB2b3RhY2nDs24uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIFRpbWUgVG8gTGVhdmUgZm9yIEZBUSBpdGVtcy4nfSA9ICdUaWVtcG8gZGUgdmlkYSBkZSBsYSBjYWNow6kgcGFyYSBsb3MgZWxlbWVudG9zIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0ZWdvcnkgTWFuYWdlbWVudCd9ID0gJ0dlc3Rpw7NuIGRlIGxhcyBDYXRlZ29yw61hcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSBNYW5hZ2VtZW50Lid9ID0gJ0dlc3Rpw7NuIGRlIGNhdGVnb3LDrWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBQcmludC4nfSA9ICdJbXByaW1pciBGQVEgZGVsIGNsaWVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBSZWxhdGVkIEFydGljbGVzJ30gPSAnQXJ0w61jdWxvcyByZWxhY2lvbmFkb3MgY29uIGxhcyBwcmVndW50YXMgZnJlY3VlbnRlcyBkZWwgY2xpZW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgUmVsYXRlZCBBcnRpY2xlcy4nfSA9ICdBcnTDrWN1bG9zIHJlbGFjaW9uYWRvcyBjb24gbGFzIHByZWd1bnRhcyBmcmVjdWVudGVzIGRlbCBjbGllbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgWm9vbS4nfSA9ICdWaXN0YSBkZXRhbGxhZGEgZGUgbGFzIEZBUSBkZWwgY2xpZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIHNlYXJjaC4nfSA9ICdCdXNjYXIgRkFRIGRlbCBjbGllbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEuJ30gPSAnRkFRIGRlbCBjbGllbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWNpbWFsIHBsYWNlcyBvZiB0aGUgdm90aW5nIHJlc3VsdC4nfSA9ICdOw7ptZXJvIGRlIGRlY2ltYWxlcyBwYXJhIGVsIHJlc3VsdGFkbyBkZSBsYSB2b3RhY2nDs24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBjYXRlZ29yeSBuYW1lLid9ID0gJ05vbWJyZSBwcmVkZXRlcm1pbmFkbyBkZSBsYSBjYXRlZ29yw61hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IGxhbmd1YWdlIGZvciBGQVEgYXJ0aWNsZXMgb24gc2luZ2xlIGxhbmd1YWdlIG1vZGUuJ30gPSAnSWRpb21hIHBvciBvbWlzacOzbiBwYXJhIGxvcyBhcnTDrWN1bG9zIEZBUSBlbiBtb2RvIGlkaW9tYSDDum5pY28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBtYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duLid9ID0KICAgICAgICAnVGFtYcOxbyBtw6F4aW1vIHBvciBkZWZlY3RvIGRlIGxvcyB0w610dWxvcyBlbiB1biBhcnTDrWN1bG8gRkFRIGEgc2VyIG1vc3RyYWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHByaW9yaXR5IG9mIHRpY2tldHMgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPQogICAgICAgICdQcmlvcmlkYWQgcG9yIG9taXNpw7NuIGRlIGxvcyB0aWNrZXRzIHBhcmEgYXByb2JhY2nDs24gZGUgbG9zIGFydMOtY3Vsb3MgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXRlIGZvciBGQVEgZW50cnkuJ30gPSAnRXN0YWRvIHBvciBvbWlzacOzbiBwYXJhIGxvcyBhcnTDrWN1bG9zIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0ZSBvZiB0aWNrZXRzIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0gJ0VzdGFkbyBwb3Igb21pc2nDs24gZGUgbG9zIHRpY2tldHMgcGFyYSBhcHJvYmFjacOzbiBkZSBsb3MgYXJ0w61jdWxvcyBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgdHlwZSBvZiB0aWNrZXRzIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0gJ1RpcG8gcG9yIGRlZmVjdG8gZGUgdGlja2V0cyBwYXJhIGFwcm9iYWNpw7NuIGRlIGFydMOtY3Vsb3MgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHZhbHVlIGZvciB0aGUgQWN0aW9uIHBhcmFtZXRlciBmb3IgdGhlIHB1YmxpYyBmcm9udGVuZC4gVGhlIEFjdGlvbiBwYXJhbWV0ZXIgaXMgdXNlZCBpbiB0aGUgc2NyaXB0cyBvZiB0aGUgc3lzdGVtLid9ID0KICAgICAgICAnVmFsb3IgcG9yIG9taXNpw7NuIHBhcmEgZWwgcGFyw6FtZXRybyAiQWN0aW9uIiBwYXJhIGxhIGludGVyZmF6IHDDumJsaWNhLiBFbCBwYXLDoW1ldHJvICJBY3Rpb24iIHNlIHVzYSBlbiBsb3MgInNjcmlwdHMiIGRlbCBzaXN0ZW1hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgQWN0aW9ucyB3aGVyZSBhIHNldHRpbmdzIGJ1dHRvbiBpcyBhdmFpbGFibGUgaW4gdGhlIGxpbmtlZCBvYmplY3RzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBQbGVhc2Ugbm90ZSB0aGF0IHRoZXNlIEFjdGlvbnMgbXVzdCBoYXZlIHJlZ2lzdGVyZWQgdGhlIGZvbGxvd2luZyBKUyBhbmQgQ1NTIGZpbGVzOiBDb3JlLkFsbG9jYXRpb25MaXN0LmNzcywgQ29yZS5VSS5BbGxvY2F0aW9uTGlzdC5qcywgQ29yZS5VSS5UYWJsZS5Tb3J0LmpzLCBDb3JlLkFnZW50LlRhYmxlRmlsdGVycy5qcyBhbmQgQ29yZS5BZ2VudC5MaW5rT2JqZWN0LmpzLid9ID0KICAgICAgICAnRGVmaW5pciBhY2Npb25lcyBkb25kZSBlc3TDoSBkaXNwb25pYmxlIHVuIGJvdMOzbiBkZSBjb25maWd1cmFjacOzbiBlbiBlbCB3aWRnZXQgZGUgb2JqZXRvcyB2aW5jdWxhZG9zIChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIFRlbmdhIGVuIGN1ZW50YSBxdWUgZXN0YXMgYWNjaW9uZXMgZGViZW4gaGFiZXIgcmVnaXN0cmFkbyBsb3Mgc2lndWllbnRlcyBhcmNoaXZvcyBKUyB5IENTUzogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgeSBDb3JlLkFnZW50LkxpbmtPYmplY3QuanMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSBpZiB0aGUgRkFRIHRpdGxlIHNob3VsZCBiZSBjb25jYXRlbmF0ZWQgdG8gYXJ0aWNsZSBzdWJqZWN0Lid9ID0KICAgICAgICAnRGV0ZXJtaW5hIHNpIGVsIHTDrXR1bG8gZGUgRkFRIGRlYmUgc2VyIGNvbmNhdGVuYWRvIGFsIGFzdW50byBkZWwgYXJ0w61jdWxvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBGQVFzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IEZBUSBhdHRyaWJ1dGVzIGFuZCBkeW5hbWljIGZpZWxkcyAoRHluYW1pY0ZpZWxkX05hbWVYKSBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIEZBUSBqb3VybmFsLid9ID0KICAgICAgICAnRGVmaW5lIHVuIG3Ds2R1bG8gZGUgdmlzdGEgZ2VuZXJhbCBwYXJhIG1vc3RyYXIgbGEgdmlzdGEgcGVxdWXDsWEgZGUgRGlhcmlvIGRlIGxhcyBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBGQVEgbGlzdC4nfSA9CiAgICAgICAgJ0RlZmluZSB1biBtw7NkdWxvIGRlIHZpc3RhIHByZXZpYSBwYXJhIG1vc3RyYXIgbGEgdmlzdGEgcGVxdWXDsWEgZGUgdW4gbGlzdGFkbyBkZSBGQVFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gYSBGQVEgc2VhcmNoIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmUgZWwgYXRyaWJ1dG8gcG9yIG9taXNpw7NuIHBhcmEgb3JkZW5hciBsb3MgYXJ0w61jdWxvcyBGQVEgZW4gdW5hIGLDunNxdWVkYSBkZSBGQVEgZW4gbGEgaW50ZXJmYXogZGVsIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiBhIEZBUSBzZWFyY2ggb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RlZmluZSBlbCBhdHJpYnV0byBwb3Igb21pc2nDs24gcGFyYSBvcmRlbmFyIGxvcyBhcnTDrWN1bG9zIEZBUSBlbiB1bmEgYsO6c3F1ZWRhIGRlIEZBUSBlbiBsYSBpbnRlcmZheiBkZWwgY2xpZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiBhIEZBUSBzZWFyY2ggb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmUgZWwgYXRyaWJ1dG8gcG9yIG9taXNpw7NuIHBhcmEgb3JkZW5hciBsb3MgYXJ0w61jdWxvcyBGQVEgZW4gdW5hIGLDunNxdWVkYSBkZSBGQVEgZW4gbGEgaW50ZXJmYXogcMO6YmxpY2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGVmaW5lIGVsIGF0cmlidXRvIHBvciBvbWlzacOzbiBwYXJhIG9yZGVuYXIgbG9zIGFydMOtY3Vsb3MgRkFRIGVuIGVsIGV4cGxvcmFkb3IgZGUgRkFRIGRlIGxhIGludGVyZmF6IGRlbCBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnREVmaW5lIGVsIGF0cmlidXRvIHBvciBvbWlzacOzbiBwYXJhIG9yZGVuYXIgbGFzIEZBUSBlbiBlbCBleHBsb3JhZG9yIGRlIEZBUSBkZSBsYSBpbnRlcmZheiBkZWwgY2xpZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGVmaW5lIGVsIGF0cmlidXRvIGRlIEZBUSBxdWUgc2UgdXNhcsOhIHBvciBvbWlzacOzbiBwYXJhIG9yZGVuYXIgbGFzIEZBUSBlbiBlbCBleHBsb3JhZG9yIGRlIEZBUSBkZSBsYSBpbnRlcmZheiBww7pibGljYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICdEZWZpbmUgZWwgb3JkZW4gcG9yIG9taXNpw7NuIGRlIGxhcyBGQVEgZW4gbG9zIHJlc3VsdGFkb3MgZGVsIGV4cGxvcmFkb3IgZGUgRkFRIGRlIGxhIGludGVyZmF6IGRlbCBhZ2VudGUuIEFycmliYTogbG9zIG3DoXMgYW50aWd1b3MgZW4gbGEgcGFydGUgc3VwZXJpb3IuIEFiYWpvOiBMb3Mgw7psdGltb3MgZW4gbGEgcGFydGUgc3VwZXJpb3IuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnRGVmaW5lIGVsIG9yZGVuIHBvciBvbWlzacOzbiBkZSBsYXMgRkFRIGVuIGxvcyByZXN1bHRhZG9zIGRlbCBleHBsb3JhZG9yIGRlIEZBUSBkZSBsYSBpbnRlcmZheiBkZWwgY2xpZW50ZS4gQXJyaWJhOiBsb3MgbcOhcyBhbnRpZ3VvcyBlbiBsYSBwYXJ0ZSBzdXBlcmlvci4gQWJham86IGxvcyBtw6FzIHJlY2llbnRlcyBlbiBsYSBwYXJ0ZSBzdXBlcmlvci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnRGVmaW5lIGVsIG9yZGVuIHBvciBvbWlzacOzbiBkZSBsYXMgRkFRIGVuIGVsIGV4cGxvcmFkb3IgZGUgRkFRIGRlIGxhIGludGVyZmF6IHDDumJsaWNhLiBBcnJpYmE6IGxvcyBtw6FzIGFudGlndW9zIGVuIGxhIHBhcnRlIHN1cGVyaW9yLiBBYmFqbzogbG9zIG3DoXMgcmVjaWVudGVzIGVuIGxhIHBhcnRlIHN1cGVyaW9yLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICdEZWZpbmUgZWwgb3JkZW4gcG9yIG9taXNpw7NuIGRlIGxvcyByZXN1bHRhZG9zIGRlIHVuYSBiw7pzcXVlZGEgZW4gbGEgaW50ZXJmYWNlIGRlbCBhZ2VudGUuIEFycmliYTogbG9zIG3DoXMgYW50aWd1b3MgZW4gbGEgcGFydGUgc3VwZXJpb3IuIEFiYWpvOiBsb3Mgw7psdGltb3MgZW4gbGEgcGFydGUgc3VwZXJpb3IuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ0RlZmluZSBlbCBvcmRlbiBwb3Igb21pc2nDs24gZGUgbG9zIHJlc3VsdGFkb3MgZGUgdW5hIGLDunNxdWVkYSBlbiBsYSBpbnRlcmZhY2UgZGVsIGNsaWVudGUuIEFycmliYTogbG9zIG3DoXMgYW50aWd1b3MgZW4gbGEgcGFydGUgc3VwZXJpb3IuIEFiYWpvOiBsb3Mgw7psdGltb3MgZW4gbGEgcGFydGUgc3VwZXJpb3IuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICdEZWZpbmUgZWwgb3JkZW4gcG9yIG9taXNpw7NuIGRlIGxvcyByZXN1bHRhZG9zIGRlIHVuYSBiw7pzcXVlZGEgZW4gbGEgaW50ZXJmYWNlIHDDumJsaWNhLiBBcnJpYmE6IGxvcyBtw6FzIGFudGlndW9zIGVuIGxhIHBhcnRlIHN1cGVyaW9yLiBBYmFqbzogbG9zIMO6bHRpbW9zIGVuIGxhIHBhcnRlIHN1cGVyaW9yLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNob3duIEZBUSBzZWFyY2ggYXR0cmlidXRlIGZvciBGQVEgc2VhcmNoIHNjcmVlbi4nfSA9CiAgICAgICAgJ0RlZmluZSBlbCBhdHJpYnV0byBkZSBiw7pzcXVlZGEgRkFRIGEgbW9zdHJhciBwb3Igb21pc2nDs24gcGFyYSBsYSBwYW50YWxsYSBkZSBidXNxdWVkYSBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGhlaWdodCBmb3IgdGhlIHJpY2ggdGV4dCBlZGl0b3IgY29tcG9uZW50IGZvciB0aGlzIHNjcmVlbi4gRW50ZXIgbnVtYmVyIChwaXhlbHMpIG9yIHBlcmNlbnQgdmFsdWUgKHJlbGF0aXZlKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBpbmZvcm1hdGlvbiB0byBiZSBpbnNlcnRlZCBpbiBhIEZBUSBiYXNlZCBUaWNrZXQuICJGdWxsIEZBUSIgaW5jbHVkZXMgdGV4dCwgYXR0YWNobWVudHMgYW5kIGlubGluZSBpbWFnZXMuJ30gPQogICAgICAgICdEZWZpbmUgbGEgaW5mb3JtYWNpw7NuIGEgc2VyIGluc2VydGFkYSBlbiB1biB0aWNrZXQgYmFzYWRvIGVuIHVuYSBGQVEuICJGQVEgQ29tcGxldGEiIGluY2x1eWUgdGV4dG8sIGFyY2hpdm9zIGFkanVudG9zIGUgaW3DoWdlbmVzIGVuIGxpbmVhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZGFzaGJvYXJkIGJhY2tlbmQuICJMaW1pdCIgZGVmaW5lcyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgZGlzcGxheWVkIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCBhY2Nlc3MgdG8gdGhlIHBsdWdpbiAoZS4gZy4gR3JvdXA6IGFkbWluO2dyb3VwMTtncm91cDI7KS4gIkRlZmF1bHQiIGluZGljYXRlcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuJ30gPQogICAgICAgICdEZWZpbmUgbG9zIHBhcmFtZXRyb3MgcGFyYSBlbCBiYWNrZW5kIGRlbCBwYW5lbCBwcmluY2lwYWwuICJMaW1pdGUiIGVzIGVsIG7Dum1lcm8gZGUgZW50cmFkYSBtb3N0cmFkYXMgcG9yIGRlZmVjdG8uICJHcnVwbyIgZXMgdXNhZG8gcGFyYSByZXN0cmluZ2lyIGVsIGFjY2VzbyBhbCBwbHVnaW4gKEVqLiBHcnVwbzogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmZWN0byIgZGV0ZXJtaW5hIHNpIGVsIHBsdWdpbiBlcyBoYWJpbGl0YWRvIHBvciBkZWZlY3RvIG8gc2kgZWwgdXN1YXJpbyBuZWNlc2l0YSBoYWJpbGl0YXJsbyBtYW51YWxtZW50ZS4gJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIEZBUSBFeHBsb3Jlci4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ0RlZmluZSBsYXMgY29sdW1uYXMgcXVlIHNlIG1vc3RyYXLDoW4gZW4gZWwgRXhwbG9yYWRvciBkZSBGQVEuIEVzdGEgb3BjacOzbiBubyB0aWVuZSBlZmVjdG9zIGVuIGxhIHBvc2ljacOzbiBkZSBsYXMgY29sdW1uYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIEZBUSBqb3VybmFsLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnRGVmaW5lIGxhcyBjb2x1bW5hcyBxdWUgc2UgbW9zdHJhcsOhbiBlbiBlbCBEaWFyaW8gZGUgbGFzIEZBUS4gRXN0YSBvcGNpw7NuIG5vIHRpZW5lIGVmZWN0b3MgZW4gbGEgcG9zaWNpw7NuIGRlIGxhcyBjb2x1bW5hcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgRkFRIHNlYXJjaC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ0RlZmluZSBsYXMgY29sdW1uYXMgcXVlIHNlIG1vc3RyYXLDoW4gZW4gbGEgYsO6c3F1ZWRhIGRlIEZBUS4gRXN0YSBvcGNpw7NuIG5vIHRpZW5lIGVmZWN0b3MgZW4gbGEgcG9zaWNpw7NuIGRlIGxhcyBjb2x1bW5hcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB3aGVyZSB0aGUgXCdJbnNlcnQgRkFRXCcgbGluayB3aWxsIGJlIGRpc3BsYXllZC4nfSA9ICdEZWZpbmUgZG9uZGUgc2Vyw6EgbW9zdHJhZG8gZWwgbGluayBcJ0luc2VydGFyIEZBUVwnLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbml0aW9uIG9mIEZBUSBpdGVtIGZyZWUgdGV4dCBmaWVsZC4nfSA9ICdEZWZpbmljacOzbiBkZWwgY2FtcG8gwqt0ZXh0byBsaWJyZcK7IHBhcmEgbG9zIGFydMOtY3Vsb3MgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhpcyBGQVEnfSA9ICdCb3JyYXIgZXN0ZSBhcnTDrWN1bG8gZGUgbGFzIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0NhbXBvcyBkaW7DoW1pY29zIG1vc3RyYWRvcyBlbiBsYSBwYW50YWxsYSBkZSBhw7FhZGlyIFByZWd1bnRhcyBGcmVjdWVudGVzIGRlIGxhIGludGVyZmF6IGRlIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQ2FtcG9zIGRpbsOhbWljb3MgbW9zdHJhZG9zIGVuIGxhIHBhbnRhbGxhIGRlIGHDsWFkaXIgUHJlZ3VudGFzIGZyZWN1ZW50ZXMgZGUgbGEgaW50ZXJmYXogZGUgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIG92ZXJ2aWV3IHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQ2FtcG9zIGRpbsOhbWljb3MgbW9zdHJhZG9zIGVuIGxhIHBhbnRhbGxhIHJlc3VtZW4gZGUgUHJlZ3VudGFzIGZyZWN1ZW50ZXMgZGUgbGEgaW50ZXJmYXogZGUgY2xpZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBvdmVydmlldyBzY3JlZW4gb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICdDYW1wb3MgZGluw6FtaWNvcyBtb3N0cmFkb3MgZW4gbGEgcGFudGFsbGEgcmVzdW1lbiBkZSBQcmVndW50YXMgZnJlY3VlbnRlcyBkZSBsYSBpbnRlcmZheiBww7pibGljYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBwcmludCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0NhbXBvcyBkaW7DoW1pY29zIG1vc3RyYWRvcyBlbiBsYSBwYW50YWxsYSBkZSBpbXByZXNpw7NuIGRlIFByZWd1bnRhcyBmcmVjdWVudGVzIGRlIGxhIGludGVyZmF6IGRlIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBwcmludCBzY3JlZW4gb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0NhbXBvcyBkaW7DoW1pY29zIG1vc3RyYWRvcyBlbiBsYSBwYW50YWxsYSBkZSBpbXByZXNpw7NuIGRlIFByZWd1bnRhcyBmcmVjdWVudGVzIGRlIGxhIGludGVyZmF6IGRlIGNsaWVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgcHJpbnQgc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQ2FtcG9zIGRpbsOhbWljb3MgbW9zdHJhZG9zIGVuIGxhIHBhbnRhbGxhIGRlIGltcHJlc2nDs24gZGUgUHJlZ3VudGFzIGZyZWN1ZW50ZXMgZGUgbGEgaW50ZXJmYXogcMO6YmxpY2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc2VhcmNoIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQ2FtcG9zIGRpbsOhbWljb3MgbW9zdHJhZG9zIGVuIGxhIHBhbnRhbGxhIGRlIGLDunNxdWVkYSBkZSBQcmVndW50YXMgZnJlY3VlbnRlcyBkZSBsYSBpbnRlcmZheiBkZSBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc2VhcmNoIHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQ2FtcG9zIGRpbsOhbWljb3MgbW9zdHJhZG9zIGVuIGxhIHBhbnRhbGxhIGRlIGLDunNxdWVkYSBkZSBQcmVndW50YXMgZnJlY3VlbnRlcyBkZSBsYSBpbnRlcmZheiBkZSBjbGllbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHNlYXJjaCBzY3JlZW4gb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICdDYW1wb3MgZGluw6FtaWNvcyBtb3N0cmFkb3MgZW4gbGEgcGFudGFsbGEgZGUgYsO6c3F1ZWRhIGRlIFByZWd1bnRhcyBmcmVjdWVudGVzIGRlIGxhIGludGVyZmF6IHDDumJsaWNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHNtYWxsIGZvcm1hdCBvdmVydmlldyBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0NhbXBvcyBkaW7DoW1pY29zIG1vc3RyYWRvcyBlbiBsYSBwYW50YWxsYSByZXN1bWVuIGRlIGZvcm1hdG8gcmVkdWNpZG8gZGUgUHJlZ3VudGFzIGZyZWN1ZW50ZXMgZGUgbGEgaW50ZXJmYXogZGUgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdDYW1wb3MgZGluw6FtaWNvcyBtb3N0cmFkb3MgZW4gbGEgcGFudGFsbGEgZGV0YWxsZSBkZSBQcmVndW50YXMgZnJlY3VlbnRlcyBkZSBsYSBpbnRlcmZheiBkZSBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgem9vbSBzY3JlZW4gb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0NhbXBvcyBkaW7DoW1pY29zIG1vc3RyYWRvcyBlbiBsYSBwYW50YWxsYSBkZXRhbGxlIGRlIFByZWd1bnRhcyBmcmVjdWVudGVzIGRlIGxhIGludGVyZmF6IGRlIGNsaWVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgem9vbSBzY3JlZW4gb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICdDYW1wb3MgZGluw6FtaWNvcyBtb3N0cmFkb3MgZW4gbGEgcGFudGFsbGEgZGUgZGV0YWxsZSBkZSBQcmVndW50YXMgZnJlY3VlbnRlcyBkZSBsYSBpbnRlcmZheiBww7pibGljYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGlzIEZBUSd9ID0gJ0VkaXRhciBlc3RlIGFydMOtY3VsbyBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIG11bHRpcGxlIGxhbmd1YWdlcyBvbiBGQVEgbW9kdWxlLid9ID0gJ0hhYmlsaXRhciBtw7psdGlwbGVzIGlkaW9tYXMgZW4gZWwgbcOzZHVsbyBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHNlcnZpY2UgYXNzaWdubWVudCBmb3IgRkFRcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHRoZSByZWxhdGVkIGFydGljbGUgZmVhdHVyZSBmb3IgdGhlIGN1c3RvbWVyIGZyb250ZW5kLid9ID0KICAgICAgICAnSGFiaWxpdGEgbGEgY2FyYWN0ZXLDrXN0aWNhIGFydMOtY3VsbyByZWxhY2lvbmFkbyBwYXJhIGxhIHBhbnRhbGxhIGNsaWVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB2b3RpbmcgbWVjaGFuaXNtIG9uIEZBUSBtb2R1bGUuJ30gPSAnSGFiaWxpdGFyIGVsIG1lY2FuaXNtbyBkZSB2b3RhY2nDs24gZW4gZWwgbcOzZHVsbyBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwbG9yZXInfSA9ICdFeHBsb3JhZG9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBSkFYIFJlc3BvbmRlcid9ID0gJ1Jlc3BvbmRlZG9yIEFKQVggZGUgIFByZWd1bnRhcyBmcmVjdWVudGVzICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQUpBWCBSZXNwb25kZXIgZm9yIFJpY2h0ZXh0Lid9ID0gJ1Jlc3BvbmRlZG9yIEFKQVggcGFyYSBSaWNodGV4dCBkZSBQcmVndW50YXMgZnJlY3VlbnRlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJlYSd9ID0gJ8OBcmVhIGRlIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJlYS4nfSA9ICfDgXJlYSBkZSBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBEZWxldGUuJ30gPSAnQm9ycmFyIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEVkaXQuJ30gPSAnRWRpdGFyIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEhpc3RvcnkuJ30gPSAnSGlzdG9yaWFsIGRlIFByZWd1bnRhcyBmcmVjdWVudGVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSm91cm5hbCBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnTMOtbWl0ZSBwYXJhIGxhIHZpc3RhIGdlbmVyYWwgwqtwZXF1ZcOxYcK7IGRlIGVsIERpYXJpbyBkZSBsYXMgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnTMOtbWl0ZSBwYXJhIGxhIHZpc3RhIGdlbmVyYWwgwqtwZXF1ZcOxYcK7IGRlIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgUHJpbnQuJ30gPSAnSW1wcmltaXIgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgc2VhcmNoIGJhY2tlbmQgcm91dGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPSAnRW5jYW1pbmFkb3IgcGFyYSBsYSBiw7pzcXVlZGEgZGUgRkFRIGVuIGxhIGludGVyZmF6IGRlbCBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpZWxkNCd9ID0gJ0NhbXBvNCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWVsZDUnfSA9ICdDYW1wbzUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnVsbCBGQVEnfSA9ICdGQVEgY29tcGxldGFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0gJ0dydXBvIHBhcmEgbGEgYXByb2JhY2nDs24gZGUgbG9zIGFydMOtY3Vsb3MgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mIHRoaXMgRkFRJ30gPSAnSGlzdG9yaWEgZGUgZXN0ZSBhcnTDrWN1bG8gRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGFjdGl2YXRlZCwgRkFRIGFydGljbGVzIG9mIHN0YXR1cyB0eXBlIGludGVybmFsIGFyZSBhbHNvIHRha2VuIGludG8gYWNjb3VudCBmb3IgdGhlIGFwcHJvdmFsIHByb2Nlc3MuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jbHVkZSBpbnRlcm5hbCBmaWVsZHMgb24gYSBGQVEgYmFzZWQgVGlja2V0Lid9ID0gJ0luY2x1aXIgY2FtcG9zIGludGVybm9zIGVuIGxvcyB0aWNrZXRzIGJhc2Fkb3MgZW4gdW4gYXJ0w61jdWxvIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNsdWRlIHRoZSBuYW1lIG9mIGVhY2ggZmllbGQgaW4gYSBGQVEgYmFzZWQgVGlja2V0Lid9ID0gJ0luY2x1aXIgZWwgbm9tYnJlIGRlIGNhZGEgY2FtcG8gZW4gbG9zIHRpY2tldHMgYmFzYWRvcyBlbiB1biBhcnTDrWN1bG8gRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludGVyZmFjZXMgd2hlcmUgdGhlIHF1aWNrIHNlYXJjaCBzaG91bGQgYmUgc2hvd24uJ30gPSAnSW50ZXJmYWNlcyBkb25kZSBkZWJlcsOhIHNlciBtb3N0cmFkYSBsYSBiw7pzcXVlZGEgcsOhcGlkYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSm91cm5hbCd9ID0gJ0RpYXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYW5ndWFnZSBNYW5hZ2VtZW50J30gPSAnR2VzdGnDs24gZGUgSWRpb21hcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYW5ndWFnZSBNYW5hZ2VtZW50Lid9ID0gJ0dlc3Rpw7NuIGRlbCBsZW5ndWFqZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGltaXQgZm9yIHRoZSBzZWFyY2ggdG8gYnVpbGQgdGhlIGtleXdvcmQgRkFRIGFydGljbGUgbGlzdC4nfSA9ICdMw61taXRlIGxhIGLDunNxdWVkYSBwYXJhIGNyZWFyIGxhIGxpc3RhIGRlIHBhbGFicmFzIGNsYXZlIGRlIGxhIGxpc3RhIGFydMOtY3VsbyBkZSBQcmVndW50YXMgZnJlY3VlbnRlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayBhbm90aGVyIG9iamVjdCB0byB0aGlzIEZBUSBpdGVtJ30gPSAnRW5sYXphciBvdHJvIG9iamVjdG8gYSBlc3RlIGFydMOtY3VsbyBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBxdWV1ZSBuYW1lcyBmb3Igd2hpY2ggdGhlIHJlbGF0ZWQgYXJ0aWNsZSBmZWF0dXJlIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICdMaXN0YSBkZSBub21icmVzIGRlIGNvbGFzIHBhcmEgbG9zIHF1ZSBsYSBjYXJhY3RlcsOtc3RpY2EgZGUgYXJ0w61jdWxvIHJlbGFjaW9uYWRvIGVzdMOhIGhhYmlsaXRhZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2Ygc3RhdGUgdHlwZXMgd2hpY2ggY2FuIGJlIHVzZWQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0xpc3RhIGRlIHRpcG9zIGRlIGVzdGFkbyBxdWUgcHVlZGVuIHNlciB1c2Fkb3MgZW4gbGEgaW50ZXJmYWNlIGRlIGFnZW50ZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2Ygc3RhdGUgdHlwZXMgd2hpY2ggY2FuIGJlIHVzZWQgaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0xpc3RhIGRlIHRpcG9zIGRlIGVzdGFkbyBxdWUgcHVlZGVuIHNlciB1c2Fkb3MgZW4gbGEgaW50ZXJmYWNlIGRlIGNsaWVudGVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIHN0YXRlIHR5cGVzIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTGlzdGEgZGUgdGlwb3MgZGUgZXN0YWRvIHF1ZSBwdWVkZW4gc2VyIHVzYWRvcyBlbiBsYSBpbnRlcmZhY2UgcMO6YmxpY2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xvYWRlciBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9ICdSZWdpc3RybyBkZWwgbcOzZHVsbyBjYXJnYWRvciBwYXJhIGxhIGludGVyZmF6IHDDumJsaWNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdOw7ptZXJvIG3DoXhpbW8gZGUgYXJ0w61jdWxvcyBGQVEgYSBtb3N0cmFyIGVuIGxvcyByZXN1bHRhZG9zIGRlbCBleHBsb3JhZG9yIEZBUSBkZSBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICdOw7ptZXJvIG3DoXhpbW8gZGUgYXJ0w61jdWxvcyBGQVEgYSBtb3N0cmFyIGVuIGxvcyByZXN1bHRhZG9zIGRlbCBleHBsb3JhZG9yIEZBUSBkZSBsYSBpbnRlcmZheiBkZWwgY2xpZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ07Dum1lcm8gbcOheGltbyBkZSBhcnTDrWN1bG9zIEZBUSBhIG1vc3RyYXIgZW4gbG9zIHJlc3VsdGFkb3MgZGVsIGV4cGxvcmFkb3IgRkFRIGRlIGxhIGludGVyZmF6IHDDumJsaWNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgam91cm5hbCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTsO6bWVybyBtw6F4aW1vIGRlIGFydMOtY3Vsb3MgZGUgbGFzICBGQVEgYSBtb3N0cmFyIGVuIGVsIERpYXJpbyBkZSBsYXMgRkFRIGVuIGxhIGludGVyZmF6IGRlbCBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHJlc3VsdCBvZiBhIHNlYXJjaCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTsO6bWVybyBtw6F4aW1vIGRlIGFydMOtY3Vsb3MgRkFRIGEgbW9zdHJhciBjb21vIHJlc3VsdGFkbyBkZSB1bmEgYsO6c3F1ZWRhIGVuIGxhIGludGVyZmF6IGRlbCBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHJlc3VsdCBvZiBhIHNlYXJjaCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTsO6bWVybyBtw6F4aW1vIGRlIGFydMOtY3Vsb3MgRkFRIGEgbW9zdHJhciBjb21vIHJlc3VsdGFkbyBkZSB1bmEgYsO6c3F1ZWRhIGVuIGxhIGludGVyZmF6IGRlbCBjbGllbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSByZXN1bHQgb2YgYSBzZWFyY2ggaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICdOw7ptZXJvIG3DoXhpbW8gZGUgYXJ0w61jdWxvcyBGQVEgYSBtb3N0cmFyIGNvbW8gcmVzdWx0YWRvIGRlIHVuYSBiw7pzcXVlZGEgZW4gbGEgaW50ZXJmYXogcMO6YmxpY2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBFeHBsb3JlciBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnVGFtYcOxbyBtw6F4aW1vIGRlIGxvcyB0w610dWxvcyBlbiB1biBhcnTDrWN1bG8gRkFRIGEgc2VyIG1vc3RyYWRvIGVuIGVsIGV4cGxvcmFkb3IgZGUgRkFRIGVuIGxhIGludGVyZmFjZSBkZSBhZ2VudGVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgRXhwbG9yZXIgaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1RhbWHDsW8gbcOheGltbyBkZSBsb3MgdMOtdHVsb3MgZW4gdW4gYXJ0w61jdWxvIEZBUSBhIHNlciBtb3N0cmFkbyBlbiBlbCBleHBsb3JhZG9yIGRlIEZBUSBlbiBsYSBpbnRlcmZhY2UgZGUgY2xpZW50ZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBFeHBsb3JlciBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1RhbWHDsW8gbcOheGltbyBkZSBsb3MgdMOtdHVsb3MgZW4gdW4gYXJ0w61jdWxvIEZBUSBhIHNlciBtb3N0cmFkbyBlbiBlbCBleHBsb3JhZG9yIGRlIEZBUSBlbiBsYSBpbnRlcmZhY2UgcMO6YmxpY2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBTZWFyY2ggaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1RhbWHDsW8gbcOheGltbyBkZSBsb3MgdMOtdHVsb3MgZW4gdW4gYXJ0w61jdWxvIEZBUSBhIHNlciBtb3N0cmFkbyBlbiBlbCBidXNjYWRvciBkZSBGQVEgZW4gbGEgaW50ZXJmYWNlIGRlIGFnZW50ZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBTZWFyY2ggaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1RhbWHDsW8gbcOheGltbyBkZSBsb3MgdMOtdHVsb3MgZW4gdW4gYXJ0w61jdWxvIEZBUSBhIHNlciBtb3N0cmFkbyBlbiBlbCBidXNjYWRvciBkZSBGQVEgZW4gbGEgaW50ZXJmYWNlIGRlIGNsaWVudGVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgU2VhcmNoIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnVGFtYcOxbyBtw6F4aW1vIGRlIGxvcyB0w610dWxvcyBlbiB1biBhcnTDrWN1bG8gRkFRIGEgc2VyIG1vc3RyYWRvIGVuIGVsIGJ1c2NhZG9yIGRlIEZBUSBlbiBsYSBpbnRlcmZhY2UgcMO6YmxpY2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBqb3VybmFsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdUYW1hw7FvIG3DoXhpbW8gZGUgbG9zIHTDrXR1bG9zIGVuIHVuIGFydMOtY3VsbyBGQVEgcXVlIHNlcmEgbW9zdHJhZG8gZW4gZWwgRGlhcmlvIGRlIGxhcyBGQVEsIGVuIGxhIGludGVyZmF6IGRlbCBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBnZW5lcmF0ZSBIVE1MIE9wZW5TZWFyY2ggcHJvZmlsZSBmb3Igc2hvcnQgRkFRIHNlYXJjaCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTcOzZHVsbyBwYXJhIGdlbmVyYXIgZWwgcGVyZmlsIGRlIEhUTUwgT3BlblNlYXJjaCBwYXJhIGxhIGLDunNxdWVkYSBkZSBwcmVndW50YXMgZnJlY3VlbnRlcyBlbiBsYSBpbnRlcmZheiBkZSBjbGllbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gZ2VuZXJhdGUgSFRNTCBPcGVuU2VhcmNoIHByb2ZpbGUgZm9yIHNob3J0IEZBUSBzZWFyY2ggaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICdUYW1hw7FvIG3DoXhpbW8gZGUgbG9zIHTDrXR1bG9zIGVuIHVuIGFydMOtY3VsbyBGQVEgYSBzZXIgbW9zdHJhZG8gZW4gZWwgam91cm5hbCBkZSBGQVEgZW4gbGEgaW50ZXJmYWNlIHDDumJsaWNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gZ2VuZXJhdGUgaHRtbCBPcGVuU2VhcmNoIHByb2ZpbGUgZm9yIHNob3J0IEZBUSBzZWFyY2guJ30gPQogICAgICAgICdNw7NkdWxvIHBhcmEgZ2VuZXJhciBQZXJmaWwgaHRtbCBkZSBPcGVuU2VhcmNoIHBhcmEgYsO6c3F1ZWRhIGRlIHByZWd1bnRhcyBmcmVjdWVudGVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgRkFRIEFydGljbGUuJ30gPSAnTnVldm8gYXJ0w61jdWxvIGRlIFByZWd1bnRhcyBmcmVjdWVudGVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgRkFRIGFydGljbGVzIG5lZWQgYXBwcm92YWwgYmVmb3JlIHRoZXkgZ2V0IHB1Ymxpc2hlZC4nfSA9ICdMb3MgbnVldm9zIGFydMOtY3Vsb3MgRkFRIHJlcXVpZXJlbiBhcHJvYmFjacOzbiBhbnRlcyBkZSBwdWJsaWNhcnNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICdOw7ptZXJvIGRlIGFydMOtY3Vsb3MgRkFRIGEgbW9zdHJhciBlbiBlbCBleHBsb3JhZG9yIGRlIEZBUSBkZSBsYSBpbnRlcmZheiBkZWwgY2xpZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ07Dum1lcm8gZGUgYXJ0w61jdWxvcyBGQVEgYSBtb3N0cmFyIGVuIGVsIGV4cGxvcmFkb3IgZGUgRkFRIGRlIGxhIGludGVyZmF6IHDDumJsaWNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBvbiBlYWNoIHBhZ2Ugb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICdOw7ptZXJvIGRlIGFydMOtY3Vsb3MgRkFRIGEgbW9zdHJhciBlbiBjYWRhIHDDoWdpbmEgZGUgbG9zIHJlc3VsdGFkb3MgZGUgdW5hIGLDunNxdWVkYSBlbiBsYSBpbnRlcmZheiBkZWwgY2xpZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgb24gZWFjaCBwYWdlIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ07Dum1lcm8gZGUgYXJ0w61jdWxvcyBGQVEgYSBtb3N0cmFyIGVuIGNhZGEgcMOhZ2luYSBkZSBsb3MgcmVzdWx0YWRvcyBkZSB1bmEgYsO6c3F1ZWRhIGVuIGxhIGludGVyZmF6IHDDumJsaWNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2Ygc2hvd24gaXRlbXMgaW4gbGFzdCBjaGFuZ2VzLid9ID0gJ07Dum1lcm8gZGUgZWxlbWVudG9zIGEgbW9zdHJhciBlbiDDumx0aW1vcyBjYW1iaW9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2Ygc2hvd24gaXRlbXMgaW4gbGFzdCBjcmVhdGVkLid9ID0gJ07Dum1lcm8gZGUgZWxlbWVudG9zIGEgbW9zdHJhciBlbiDDumx0aW1vcyBjcmVhZG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2Ygc2hvd24gaXRlbXMgaW4gdGhlIHRvcCAxMCBmZWF0dXJlLid9ID0gJ07Dum1lcm8gZGUgZWxlbWVudG9zIGEgbW9zdHJhciBlbiBlbCBUb3AgMTAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J091dHB1dCBmaWx0ZXIgdG8gYWRkIEphdmEtc2NyaXB0IHRvIEN1c3RvbWVyVGlja2V0TWVzc2FnZSBzY3JlZW4uJ30gPQogICAgICAgICdGaWx0cm8gZGUgc2FsaWRhIHBhcmEgYWdyZWdhciBKYXZhLXNjcmlwdCAgYSBsYSBwYW50YWxsYSBDdXN0b21lclRpY2tldE1lc3NhZ2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J091dHB1dCBsaW1pdCBmb3IgdGhlIHJlbGF0ZWQgRkFRIGFydGljbGVzLid9ID0gJ0zDrW1pdGUgZGUgc2FsaWRhIHBhcmEgYXJ0w61jdWxvcyBkZSBwcmVndW50YXMgZnJlY3VlbnRlcyByZWxhY2lvbmFkb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgRkFRIGl0ZW1zIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIEZBUSBqb3VybmFsIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnUGFyw6FtZXRyb3MgZGUgbGFzIHDDoWdpbmFzIChlbiBsYXMgcXVlIHNlIG11ZXN0cmFuIGxvcyBlbGVtZW50b3MgRkFRKSBkZSBsYSB2aXN0YSBnZW5lcmFsIHBlcXVlw7FhIGRlbCBEaWFyaW8gZGUgbGFzIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgRkFRIGl0ZW1zIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIEZBUSBvdmVydmlldy4nfSA9CiAgICAgICAgJ1BhcsOhbWV0cm9zIGRlIGxhcyBww6FnaW5hcyAoZW4gbGFzIHF1ZSBzZSBtdWVzdHJhbiBsb3MgZWxlbWVudG9zIEZBUSkgZGUgbGEgdmlzdGEgZ2VuZXJhbCBkZSBGQVEgcGVxdWXDsWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW50IHRoaXMgRkFRJ30gPSAnSW1wcmltaXIgZXN0YSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIEZBUSBQcmludC4nfSA9ICdJbXByaW1pciBGQVEgcHVibGljYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBGQVEgWm9vbS4nfSA9ICdWaXN0YSBkZXRhbGxhZGEgZGUgbGFzIEZBUSBQdWJsaWNhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIEZBUSBzZWFyY2guJ30gPSAnQnVzY2FyIEZBUSBQdWJsaWNhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIEZBUS4nfSA9ICdGQVEgUHVibGljYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1F1ZXVlIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0gJ0ZpbGEgcGFyYSBsYSBhcHJvYmFjacOzbiBkZSBsb3MgYXJ0w61jdWxvcyBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGVzIGZvciB2b3RpbmcuIEtleSBtdXN0IGJlIGluIHBlcmNlbnQuJ30gPSAnUG9uZGVyYWNpw7NuIHBhcmEgbGEgdm90YWNpw7NuLiBMYSBjbGF2ZSBkZWJlIGV4cHJlc2Fyc2UgZW4gcG9yY2VudGFqZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUyd9ID0gJ1MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIEZBUSd9ID0gJ0LDunNxdWVkYSBkZSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIEZBUSBTbWFsbC4nfSA9ICdCw7pzcXVlZGEgcGVxdWXDsWEgZGUgUHJlZ3VudGFzIGZyZWN1ZW50ZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBGQVEuJ30gPSAnQsO6c3F1ZWRhIGRlIFByZWd1bnRhcyBmcmVjdWVudGVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgaG93IG1hbnkgaXRlbXMgc2hvdWxkIGJlIHNob3duIGluIEpvdXJuYWwgT3ZlcnZpZXcgIlNtYWxsIiBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnU2VsZWNjaW9uZSBjdcOhbnRvcyBlbGVtZW50b3Mgc2UgZGViZW4gbW9zdHJhciBlbiBsYSBEZXNjcmlwY2nDs24gZ2VuZXJhbCBkZSBsYSByZXZpc3RhICJQZXF1ZcOxbyIgcG9yIGRlZmVjdG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBob3cgbWFueSBpdGVtcyBzaG91bGQgYmUgc2hvd24gaW4gT3ZlcnZpZXcgIlNtYWxsIiBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnU2VsZWNjaW9uZSBjdcOhbnRvcyBlbGVtZW50b3Mgc2UgZGViZW4gbW9zdHJhciBlbiBlbCByZXN1bWVuICJQZXF1ZcOxbyIgcG9yIGRlZmVjdG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZGVmYXVsdCBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEFnZW50RkFRWm9vbS4nfSA9CiAgICAgICAgJ0VzdGFibGVjZXIgbGEgYWx0dXJhIHByZWRldGVybWluYWRhIChlbiBww614ZWxlcykgZGUgbG9zIGNhbXBvcyBIVE1MIMKraW5saW5lwrsgZGUgQWdlbnRGQVFab29tJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZGVmYXVsdCBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEN1c3RvbWVyRkFRWm9vbSAoYW5kIFB1YmxpY0ZBUVpvb20pLid9ID0KICAgICAgICAnRXN0YWJsZWNlciBsYSBhbHR1cmEgcHJlZGV0ZXJtaW5hZGEgKGVuIHDDrXhlbGVzKSBkZSBsb3MgY2FtcG9zIEhUTUwgwqtpbmxpbmXCuyBkZSBDdXN0b21lckZBUVpvb20gKHkgUHVibGljRkFRWm9vbSkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgbWF4aW11bSBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEFnZW50RkFRWm9vbS4nfSA9CiAgICAgICAgJ0VzdGFibGVjZXIgbGEgYWx0dXJhIG3DoXhpbWEgKGVuIHDDrXhlbGVzKSBkZSBsb3MgY2FtcG9zIEhUTUwgwqtpbmxpbmXCuyBkZSBBZ2VudEZBUVpvb20nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBtYXhpbXVtIGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gQ3VzdG9tZXJGQVFab29tIChhbmQgUHVibGljRkFRWm9vbSkuJ30gPQogICAgICAgICdFc3RhYmxlY2VyIGxhIGFsdHVyYSBtw6F4aW1hIChlbiBww614ZWxlcykgZGUgbG9zIGNhbXBvcyBIVE1MIMKraW5saW5lwrsgZGUgQ3VzdG9tZXJGQVFab29tICh5IFB1YmxpY0ZBUVpvb20pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93ICJJbnNlcnQgRkFRIExpbmsiIEJ1dHRvbiBpbiBBZ2VudEZBUVpvb21TbWFsbCBmb3IgcHVibGljIEZBUSBBcnRpY2xlcy4nfSA9CiAgICAgICAgJ01vc3RyYXIgYm90w7NuIMKrSW5zZXJ0YXIgZW5sYWNlIGEgRkFRwrsgZW4gQWdlbnRGQVFab29tU21hbGwgcGFyYSBsb3MgYXJ0w61jdWxvcyBGQVEgcMO6YmxpY29zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93ICJJbnNlcnQgRkFRIFRleHQgJiBMaW5rIiAvICJJbnNlcnQgRnVsbCBGQVEgJiBMaW5rIiBCdXR0b24gaW4gQWdlbnRGQVFab29tU21hbGwgZm9yIHB1YmxpYyBGQVEgQXJ0aWNsZXMuJ30gPQogICAgICAgICdNb3N0cmFyIGJvdMOzbiDCq0luc2VydGFyIHRleHRvIHkgZW5sYWNlIGEgRkFRwrsgLyDCq0luc2VydGFyIEZBUSBjb21wbGV0byB5IGVubGFjZcK7IGVuIEFnZW50RkFRWm9vbVNtYWxsIHBhcmEgQXJ0w61jdWxvcyBGQVEgcMO6YmxpY29zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93ICJJbnNlcnQgRkFRIFRleHQiIC8gIkluc2VydCBGdWxsIEZBUSIgQnV0dG9uIGluIEFnZW50RkFRWm9vbVNtYWxsLid9ID0KICAgICAgICAnTW9zdHJhciBib3TDs24gwqtJbnNlcnRhciB0ZXh0byBGQVHCuyAvIMKrSW5zZXJ0YXIgRkFRIGNvbXBsZXRvwrsgZW4gQWdlbnRGQVFab29tU21hbGwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgRkFRIEFydGljbGUgd2l0aCBIVE1MLid9ID0gJ8K/TW9zdHJhciBjb250ZW5pZG8gSFRNTCBlbiBsb3MgYXJ0w61jdWxvcyBGQVE/Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IEZBUSBwYXRoIHllcy9uby4nfSA9ICfCv01vc3RyYXIgbGEgcnV0YSBkZSBsYSBGQVE/IHPDrS9uby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBpbnZhbGlkIGl0ZW1zIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNb3N0cmFyIGVsZW1lbnRvcyBubyB2w6FsaWRvcyBlbiBlbCByZXN1bHRhZG8gZGVsIEV4cGxvcmFkb3IgZGUgbGFzIEZBUSBkZSBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGl0ZW1zIG9mIHN1YmNhdGVnb3JpZXMuJ30gPSAnwr9Nb3N0cmFyIGxvcyBlbGVtZW50b3MgZGUgbGFzIHN1YmNhdGVnb3LDrWFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGxhc3QgY2hhbmdlIGl0ZW1zIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICdNb3N0cmFyIGxvcyDDumx0aW1vcyBhcnTDrWN1bG9zIGFjdHVhbGl6YWRvcyBlbiBsYXMgaW50ZXJmYWNlcyBkZWZpbmlkYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgbGFzdCBjcmVhdGVkIGl0ZW1zIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICdNb3N0cmFyIGxvcyDDumx0aW1vcyBhcnTDrWN1bG9zIGNyZWFkb3MgZW4gbGFzIGludGVyZmFjZXMgZGVmaW5pZGFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHJlbGF0ZWQgYXJ0aWNsZXMgb24gc2VydmljZSBjaGFuZ2UgZXZlbiB3aXRoIGVtcHR5IHN1YmplY3QgYW5kIGJvZHkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB0aGUgc3RhcnMgZm9yIHRoZSBhcnRpY2xlcyB3aXRoIGEgcmF0aW5nIGVxdWFsIG9yIGdyZWF0ZXIgbGlrZSB0aGUgZGVmaW5lZCB2YWx1ZSAoc2V0IHZhbHVlIFwnMFwnIHRvIGRlYWN0aXZhdGUgdGhlIG91dHB1dCkuJ30gPQogICAgICAgICdNb3N0cmFyIGxhcyBlc3RyZWxsYXMgcGFyYSBsb3MgYXJ0w61jdWxvcyBjb24gdW5hIGNhbGlmaWNhY2nDs24gaWd1YWwgbyBzdXBlcmlvciBhbCB2YWxvciBkZWZpbmlkbyAoYWp1c3RlIGVsIHZhbG9yIFwnMFwnIHBhcmEgZGVzYWN0aXZhciBsYSBzYWxpZGEpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHRvcCAxMCBpdGVtcyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAnTW9zdHJhciBsb3MgYXJ0w61jdWxvcyBUb3AgMTAgZW4gbGFzIGludGVyZmFjZXMgZGVmaW5pZGFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHZvdGluZyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAnTW9zdHJhciBsYSB2b3RhY2nDs24gZW4gbGFzIGludGVyZmFjZXMgZGVmaW5pZGFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIEZBUSB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSB6b29tIHZpZXcgb2Ygc3VjaCBGQVEgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ011ZXN0cmEgdW4gZW5sYWNlIGVuIGVsIG1lbsO6IHF1ZSBwZXJtaXRlIGVubGF6YXIgYSB1biBhcnTDrWN1bG8gRkFRIGNvbiBvdHJvIG9iamV0byBlbiBzdSB2aXN0YSBhbXBsaWFkYSBkZSBlc2EgRkFRIGVuIGxhIGludGVyZmF6IGRlbCBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyB0byBkZWxldGUgYSBGQVEgaW4gaXRzIHpvb20gdmlldyBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTXVlc3RyYSB1biBlbmxhY2UgZW4gZWwgbWVuw7ogcXVlIHBlcm1pdGUgYm9ycmFyIHVuIGFydMOtY3VsbyBGQVEgZW4gbGEgdmlzdGEgYW1wbGlhZGEgZGUgZXNhIEZBUSBlbiBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBoaXN0b3J5IG9mIGEgRkFRIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ011ZXN0cmEgdW4gZW5sYWNlIGVuIGVsIG1lbsO6IHBhcmEgYWNjZWRlciBhbCBoaXN0b3JpYWwgZGUgdW4gYXJ0w61jdWxvIEZBUSBlbiBzdSB2aXN0YSBhbXBsaWFkYSBlbiBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZWRpdCBhIEZBUSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTXVlc3RyYSB1biBlbmxhY2UgZW4gZWwgbWVuw7ogcGFyYSBlZGl0YXIgdW4gYXJ0w61jdWxvIEZBUSBlbiBzdSB2aXN0YSBhbXBsaWFkYSBlbiBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZ28gYmFjayBpbiB0aGUgRkFRIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTXVlc3RyYSB1biBlbmxhY2UgZW4gZWwgbWVuw7ogcGFyYSByZXRyb2NlZGVyIGVuIGxhIHZpc3RhIGFtcGxpYWRhIGRlIEZBUSBlbiBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSBGQVEgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ011ZXN0cmEgdW4gZW5sYWNlIGVuIGVsIG1lbsO6IHBhcmEgaW1wcmltaXIgdW4gYXJ0w61jdWxvIEZBUSBlbiBzdSB2aXN0YSBhbXBsaWFkYSBlbiBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTb2x1dGlvbid9ID0gJ1NvbHVjacOzbiAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3ltcHRvbSd9ID0gJ1PDrW50b21hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RleHQgT25seSd9ID0gJ1NvbG8gdGV4dG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGRlZmF1bHQgbGFuZ3VhZ2VzIGZvciB0aGUgcmVsYXRlZCBGQVEgYXJ0aWNsZXMuJ30gPSAnTG9zIGxlbmd1YWplcyBwb3IgZGUgZGVmZWN0byBkZSBsb3MgYXJ0w61jdWxvcyByZWxhY2lvbmFkb3MgZGUgUHJlZ3VudGFzIGZyZWN1ZW50ZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIEZBUSwgZS5nLiBGQVEjLCBLQiMsIE15RkFRIy4gVGhlIGRlZmF1bHQgaXMgRkFRIy4nfSA9CiAgICAgICAgJ0VsIGlkZW50aWZpY2Fkb3IgcGFyYSB1bmEgRkFRLCBwb3IgZWplbXBsbyBGQVEjLCBLQiMsIE1pRkFRIy4gRWwgdmFsb3IgcHJlZGV0ZXJtaW5hZG8gZXMgRkFRIy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBzZXR0aW5nIGRlZmluZXMgdGhhdCBhIFwnRkFRXCcgb2JqZWN0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciBcJ0ZBUVwnIG9iamVjdHMgdXNpbmcgdGhlIFwnTm9ybWFsXCcgbGluayB0eXBlLid9ID0KICAgICAgICAnRXN0ZSBhanVzdGUgZGVmaW5lIHF1ZSB1biBvYmpldG8gwqtGQVHCuyBwdWVkZSBlbmxhemFyc2UgY29uIG90cm9zIG9iamV0b3MgwqtGQVHCuyB1dGlsaXphbmRvIGVsIHRpcG8gZGUgZW5sYWNlIMKrTm9ybWFswrsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBkZWZpbmVzIHRoYXQgYSBcJ0ZBUVwnIG9iamVjdCBjYW4gYmUgbGlua2VkIHdpdGggb3RoZXIgXCdGQVFcJyBvYmplY3RzIHVzaW5nIHRoZSBcJ1BhcmVudENoaWxkXCcgbGluayB0eXBlLid9ID0KICAgICAgICAnRXN0ZSBhanVzdGUgZGVmaW5lIHF1ZSB1biBvYmpldG8gwqtGQVHCuyBwdWVkZSBlbmxhemFyc2UgY29uIG90cm9zIG9iamV0b3MgwqtGQVHCuyB1dGlsaXphbmRvIGVsIHRpcG8gZGUgZW5sYWNlIMKrUGFyZW50Q2hpbGTCuy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBzZXR0aW5nIGRlZmluZXMgdGhhdCBhIFwnRkFRXCcgb2JqZWN0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciBcJ1RpY2tldFwnIG9iamVjdHMgdXNpbmcgdGhlIFwnTm9ybWFsXCcgbGluayB0eXBlLid9ID0KICAgICAgICAnRXN0ZSBhanVzdGUgZGVmaW5lIHF1ZSB1biBvYmpldG8gwqtGQVHCuyBwdWVkZSBlbmxhemFyc2UgY29uIG90cm9zIG9iamV0b3MgwqtUaWNrZXTCuyB1dGlsaXphbmRvIGVsIHRpcG8gZGUgZW5sYWNlIMKrTm9ybWFswrsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBkZWZpbmVzIHRoYXQgYSBcJ0ZBUVwnIG9iamVjdCBjYW4gYmUgbGlua2VkIHdpdGggb3RoZXIgXCdUaWNrZXRcJyBvYmplY3RzIHVzaW5nIHRoZSBcJ1BhcmVudENoaWxkXCcgbGluayB0eXBlLid9ID0KICAgICAgICAnRXN0ZSBhanVzdGUgZGVmaW5lIHF1ZSB1biBvYmpldG8gwqtGQVHCuyBwdWVkZSBlbmxhemFyc2UgY29uIG90cm9zIG9iamV0b3MgwqtUaWNrZXTCuyB1dGlsaXphbmRvIGVsIHRpcG8gZGUgZW5sYWNlIMKrUGFyZW50Q2hpbGTCuy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IGJvZHkgZm9yIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlLid9ID0gJ0N1ZXJwbyBkZWwgdGlja2V0IHBhcmEgYXByb2JhY2nDs24gZGUgYXJ0w61jdWxvcyBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBzdWJqZWN0IGZvciBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZS4gUGVybWl0dGVkIG5vdGlmaWNhdGlvbiB0YWdzIGFyZSA8T1RPQk9fRkFRX05VTUJFUj4sIDxPVE9CT19GQVFfQ0FURUdPUllJRD4sIDxPVE9CT19GQVFfSVRFTUlEPj4gPE9UT0JPX0ZBUV9USVRMRT4gYW5kIDxPVE9CT19GQVFfU1RBVEVJRD4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG9vbGJhciBJdGVtIGZvciBhIHNob3J0Y3V0Lid9ID0gJ0FydMOtY3VsbyBkZSBsYSBiYXJyYSBkZSBoZXJyYW1pZW50YXMgcGFyYSB1biBhY2Nlc28gZGlyZWN0by4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZXh0ZXJuYWwgKGN1c3RvbWVyKSd9ID0gJ2V4dGVybm8gKGNsaWVudGUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2ludGVybmFsIChhZ2VudCknfSA9ICdpbnRlcm5vIChhZ2VudGUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3B1YmxpYyAoYWxsKSd9ID0gJ3DDumJsaWNvICh0b2RvcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncHVibGljIChwdWJsaWMpJ30gPSAncMO6YmxpY28gKHDDumJsaWNvKSc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ05vJywKICAgICdPaycsCiAgICAnU2V0dGluZ3MnLAogICAgJ1N1Ym1pdCcsCiAgICAnVGhpcyBtaWdodCBiZSBoZWxwZnVsJywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==</File>
        <File Location="Kernel/Language/es_MX_FAQ.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmVzX01YX0ZBUTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRQWRkCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIEFydGljbGUnfSA9ICdBw7FhZGlyIGFydMOtY3VsbyBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0tleXdvcmRzJ30gPSAnUGFsYWJyYXMgQ2xhdmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRlZ29yeSBpcyByZXF1aXJlZC4nfSA9ICdTZSByZXF1aWVyZSB1bmEgY2F0ZWdvcsOtYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwcm92YWwnfSA9ICdBcHJvYmFjacOzbic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFDYXRlZ29yeQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIENhdGVnb3J5IE1hbmFnZW1lbnQnfSA9ICdHZXN0acOzbiBkZSBjYXRlZ29yw61hcyBkZSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEZBUSBDYXRlZ29yeSd9ID0gJ0HDsWFkaXIgQ2F0ZWdvcsOtYSBkZSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBGQVEgQ2F0ZWdvcnknfSA9ICdFZGl0YXIgQ2F0ZWdvcsOtYSBkZSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGNhdGVnb3J5J30gPSAnQcOxYWRpciBjYXRlZ29yw61hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRlZ29yeSd9ID0gJ0HDsWFkaXIgY2F0ZWdvcsOtYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENhdGVnb3J5J30gPSAnRWRpdGFyIGNhdGVnb3LDrWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3ViY2F0ZWdvcnkgb2YnfSA9ICdTdWJjYXRlZ29yw61hIGRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYXQgbGVhc3Qgb25lIHBlcm1pc3Npb24gZ3JvdXAuJ30gPSAnUG9yIGZhdm9yLCBzZWxlY2Npb25lIGFsIG1lbm9zIHVuIGdydXBvIGRlIHBlcm1pc29zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGdyb3VwcyB0aGF0IGNhbiBhY2Nlc3MgYXJ0aWNsZXMgaW4gdGhpcyBjYXRlZ29yeS4nfSA9ICdHcnVwb3MgZGUgYWdlbnRlcyBxdWUgcHVlZGVuIGFjY2VkZXIgYSBsb3MgYXJ0w61jdWxvcyBkZSBlc3RhIGNhdGVnb3LDrWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2lsbCBiZSBzaG93biBhcyBjb21tZW50IGluIEV4cGxvcmVyLid9ID0gJ1NlIG1vc3RyYXLDoSBjb21vIGNvbWVudGFyaW8gZW4gZWwgZXhwbG9yYWRvci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNhdGVnb3J5Pyd9ID0gJ8K/U2VndXJvIHF1ZSBkZXNlYSBib3JyYXIgZXN0YSBjYXRlZ29yw61hPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBjYXRlZ29yeS4gSXQgaXMgdXNlZCBpbiBhdCBsZWFzdCBvbmUgRkFRIGFydGljbGUgYW5kL29yIGlzIHBhcmVudCBvZiBhdCBsZWFzdCBvbmUgb3RoZXIgY2F0ZWdvcnknfSA9CiAgICAgICAgJ05vIHB1ZWRlIGJvcnJhciBlc3RhIGNhdGVnb3LDrWEuIEVzdMOhIHNpZW5kbyB1c2FkYSBwb3IgYWwgbWVub3MgdW4gYXJ0w61jdWxvIEZBUSB5L28gZXMgcGFkcmUgZGUgYWwgbWVub3Mgb3RyYSBjYXRlZ29yw61hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY2F0ZWdvcnkgaXMgdXNlZCBpbiB0aGUgZm9sbG93aW5nIEZBUSBhcnRpY2xlKHMpJ30gPSAnRXN0YSBjYXRlZ29yw61hIGVzdMOhIHNpZW5kbyB1c2FkYSBwb3IgbG9zIHNpZ3VpZW50ZXMgYXJ0w61jdWxvcyBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBjYXRlZ29yeSBpcyBwYXJlbnQgb2YgdGhlIGZvbGxvd2luZyBzdWJjYXRlZ29yaWVzJ30gPSAnRXN0YSBjYXRlZ29yw61hIGVzIHBhZHJlIGRlIGxhcyBzaWd1aWVudGVzIHN1YmNhdGVnb3LDrWFzJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUURlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIEZBUSBhcnRpY2xlPyd9ID0gJ8K/U2VndXJvIHF1ZSBkZXNlYSBib3JyYXIgZXN0ZSBhcnTDrWN1bG8gRkFRPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEnfSA9ICdGQVEnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRRXhwbG9yZXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBFeHBsb3Jlcid9ID0gJ0V4cGxvcmFkb3IgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1F1aWNrIFNlYXJjaCd9ID0gJ0LDunNxdWVkYSBSw6FwaWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dpbGRjYXJkcyBhcmUgYWxsb3dlZC4nfSA9ICdTZSBwZXJtaXRlbiBjb21vZGluZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkdmFuY2VkIFNlYXJjaCd9ID0gJ0LDunNxdWVkYSBBdmFuemFkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWJjYXRlZ29yaWVzJ30gPSAnU3ViY2F0ZWdvcsOtYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGVzJ30gPSAnQXJ0w61jdWxvcyBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gc3ViY2F0ZWdvcmllcyBmb3VuZC4nfSA9ICdObyBzZSBlbmNvbnRyYXJvbiBzdWJjYXRlZ29yw61hcy4nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRSGlzdG9yeQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZid9ID0gJ0hpc3RvcmlhIGRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgQ29udGVudCd9ID0gJ0NvbnRlbmlkbyBkZWwgSGlzdG9yaWFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZXRpbWUnfSA9ICdGZWNoYSBkZSBjcmVhY2nDs24gJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUpvdXJuYWxPdmVydmlld1NtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBGQVEgSm91cm5hbCBkYXRhIGZvdW5kLid9ID0gJ05vIHNlIGVuY29udHJhcm9uIGRhdG9zIGVuIGxhIEJpdMOhY29yYSBGQVEnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRTGFuZ3VhZ2UKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBMYW5ndWFnZSBNYW5hZ2VtZW50J30gPSAnR2VzdGnDs24gZGUgSWRpb21hcyBkZSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEZBUSBMYW5ndWFnZSd9ID0gJ0HDsWFkaXIgSWRpb21hIGRlIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEZBUSBMYW5ndWFnZSd9ID0gJ0VkaXRvciBJZGlvbWEgZGUgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZSB0aGlzIGZlYXR1cmUgaWYgeW91IHdhbnQgdG8gd29yayB3aXRoIG11bHRpcGxlIGxhbmd1YWdlcy4nfSA9CiAgICAgICAgJ1VzZSBlc3RhIGZ1bmNpb25hbGlkYWQgc2kgZGVzZWEgdHJhYmFqYXIgY29uIG11bHRpcGxlcyBpZGlvbWFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbGFuZ3VhZ2UnfSA9ICdBw7FhZGlyIElkaW9tYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgTGFuZ3VhZ2UnfSA9ICdBw7FhZGlyIElkaW9tYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IExhbmd1YWdlJ30gPSAnRWRpdGFyIElkaW9tYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBsYW5ndWFnZS4gSXQgaXMgdXNlZCBpbiBhdCBsZWFzdCBvbmUgRkFRIGFydGljbGUhJ30gPQogICAgICAgICdObyBwdWVkZSBib3JyYXIgZXN0ZSBpZGlvbWEuIEVzdMOhIHNpZW5kbyB1c2FkbyBwb3IgYWwgbWVub3MgdW4gYXJ0w61jdWxvIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGxhbmd1YWdlIGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBGQVEgQXJ0aWNsZShzKSd9ID0gJ0VzdGUgaWRpb21hIGVzdGEgc2llbmRvIHVzYWRvIHBvciBsb3Mgc2lndWllbnRlcyBBcnTDrWN1bG9zIEZBUSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFPdmVydmlld05hdkJhcgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29udGV4dCBTZXR0aW5ncyd9ID0gJ0FqdXN0ZXMgZGUgQ29udGV4dG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGFydGljbGVzIHBlciBwYWdlJ30gPSAnQXJ0w61jdWxvcyBGQVEgcG9yIHDDoWdpbmEnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRT3ZlcnZpZXdTbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gRkFRIGRhdGEgZm91bmQuJ30gPSAnTm8gc2UgZW5jb250cmFyb24gZGF0b3MgZGUgRkFRLic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFSZWxhdGVkQXJ0aWNsZXMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J291dCBvZiA1J30gPSAnZGUgNSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFTZWFyY2gKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0tleXdvcmQnfSA9ICdQYWxhYnJhIGNsYXZlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGUgKGUuIGcuIEVxdWFscyAxMCBvciBHcmVhdGVyVGhhbiA2MCknfSA9ICdWb3RvIChlLmcuIElndWFsIGEgMTAgbyBNYXlvclF1ZSA2MCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0ZSAoZS4gZy4gRXF1YWxzIDI1JSBvciBHcmVhdGVyVGhhbiA3NSUpJ30gPSAnVmFsb3JhY2nDs24gKGUuZy4gSWd1YWwgYSAyNSUgbyBNYXlvclF1ZSA3NSUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FwcHJvdmVkJ30gPSAnQXByb2JhZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkIGJ5J30gPSAnw5psdGltbyBjYW1iaW8gcG9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENyZWF0ZSBUaW1lIChiZWZvcmUvYWZ0ZXIpJ30gPSAnVGllbXBvIGRlIENyZWFjacOzbiBkZWwgQXJ0w61jdWxvIEZBUSAoYW50ZXMvZGVzcHXDqXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENyZWF0ZSBUaW1lIChiZXR3ZWVuKSd9ID0gJ1RpZW1wbyBkZSBDcmVhY2nDs24gZGVsIEFydMOtY3VsbyBGQVEgKGVudHJlKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDaGFuZ2UgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJ1RpZW1wbyBkZSBNb2RpZmljYWNpw7NuIGRlbCBBcnTDrWN1bG8gRkFRIChhbnRlcy9kZXNwdcOpcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ2hhbmdlIFRpbWUgKGJldHdlZW4pJ30gPSAnVGllbXBvIGRlIE1vZGlmaWNhY2nDs24gZGVsIEFydMOtY3VsbyBGQVEgKGVudHJlKSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFTZWFyY2hPcGVuU2VhcmNoRGVzY3JpcHRpb25GdWxsdGV4dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRRnVsbHRleHQnfSA9ICdUZXh0byBjb21wbGV0byBGQVEnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRU2VhcmNoU21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBTZWFyY2gnfSA9ICdCw7pzcXVlZGEgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2ZpbGUgU2VsZWN0aW9uJ30gPSAnU2VsZWNjacOzbiBkZSBwZXJmaWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSd9ID0gJ1ZvdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdm90ZSBzZXR0aW5ncyd9ID0gJ1NpbiBjb25maWd1cmFjacOzbiBkZSB2b3RhY2nDs24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWMgdm90ZXMnfSA9ICdWb3RvcyBlc3BlY8OzaWZpY29zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuIGcuIEVxdWFscyAxMCBvciBHcmVhdGVyVGhhbiA2MCd9ID0gJ2UuZy4gSWd1YWwgYSAxMCBvIE1heW9yUXVlIDYwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGUnfSA9ICdWYWxvcmFjacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyByYXRlIHNldHRpbmdzJ30gPSAnU2luIGNvbmZpZ3VyYWNpw7NuIGRlIHZhbG9yYWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmljIHJhdGUnfSA9ICdWYWxvcmFjacOzbiBlc3BlY8OtZmljYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlLiBnLiBFcXVhbHMgMjUlIG9yIEdyZWF0ZXJUaGFuIDc1JSd9ID0gJ2UuZy4gSWd1YWwgYSAyNSUgbyBNYXlvciBRdWUgNzUlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENyZWF0ZSBUaW1lJ30gPSAnVGllbXBvIGRlIGNyZWFjacOzbiBkZWwgYXJ0w61jdWxvIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDaGFuZ2UgVGltZSd9ID0gJ1RpZW1wbyBkZSBtb2RpZmljYWNpw7NuIGRlbCBhcnTDrWN1bG8gRkFRJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVpvb20KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJbmZvcm1hdGlvbid9ID0gJ0luZm9ybWFjacOzbiBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0aW5nJ30gPSAnUHVudHVhY2nDs24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZXMnfSA9ICdWb3Rvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB2b3RlcyBmb3VuZCEnfSA9ICfCoU5vIHNlIGVuY29udHLDsyBuaW5nw7puIHZvdG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHZvdGVzIGZvdW5kISBCZSB0aGUgZmlyc3Qgb25lIHRvIHJhdGUgdGhpcyBGQVEgYXJ0aWNsZS4nfSA9ICdObyBzZSBlbmNvbnRyw7MgbmluZ8O6biB2b3RvLiBTZWEgZWwgcHJpbWVybyBlbiB2YWxvcmFyIGVzdGUgYXJ0w61jdWxvIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEb3dubG9hZCBBdHRhY2htZW50J30gPSAnRGVzY2FyZ2FyIEFkanVudG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gb3BlbiBsaW5rcyBpbiB0aGUgZm9sbG93aW5nIGRlc2NyaXB0aW9uIGJsb2NrcywgeW91IG1pZ2h0IG5lZWQgdG8gcHJlc3MgQ3RybCBvciBDbWQgb3IgU2hpZnQga2V5IHdoaWxlIGNsaWNraW5nIHRoZSBsaW5rIChkZXBlbmRpbmcgb24geW91ciBicm93c2VyIGFuZCBPUykuJ30gPQogICAgICAgICdQYXJhIGFicmlyIGxvcyBlbmxhY2VzIGRlIGxhcyBzaWd1aWVudGVzIGRlc2NyaXBjaW9uZXMsIHB1ZWRlIG5lY2VzaXRhciBwcmVzaW9uYXIgbGEgdGVjbGEgQ3RybCwgQ21kIG8gU2hpZnQgbWllbnRyYXMgaGFjZSBjbGljIGVuIGVsIGVubGFjZSAoZGVwZW5kaWVuZG8gZGVsIG5hdmVnYWRvciB5IFNPIHF1ZSBlc3TDqSB1dGlsaXphbmRvKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3cgaGVscGZ1bCB3YXMgdGhpcyBhcnRpY2xlPyBQbGVhc2UgZ2l2ZSB1cyB5b3VyIHJhdGluZyBhbmQgaGVscCB0byBpbXByb3ZlIHRoZSBGQVEgRGF0YWJhc2UuIFRoYW5rIFlvdSEnfSA9CiAgICAgICAgJ8K/Q8OzbW8gZGUgw7p0aWwgZnVlIGVzdGUgYXJ0w61jdWxvPyBQb3IgZmF2b3IsIGTDqW5vcyBzdSBwdW50dWFjacOzbiB5IGF5dWRlIGEgbWVqb3JhciBsYSBiYXNlIGRlIGRhdG9zIGRlIEZBUS4gR3JhY2lhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnbm90IGhlbHBmdWwnfSA9ICdwb2NvIMO6dGlsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3ZlcnkgaGVscGZ1bCd9ID0gJ211eSDDunRpbCc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFab29tU21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBGQVEgdGl0bGUgdG8gYXJ0aWNsZSBzdWJqZWN0J30gPSAnQWdyZWdhciBlbCB0w610dWxvIGRlbCBGQVEgYWwgYXN1bnRvIGRlbCBhcnTDrWN1bG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZBUSBUZXh0J30gPSAnSW5zZXJ0YXIgVGV4dG8gZGUgbGEgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGdWxsIEZBUSd9ID0gJ0luc2VydGFyIEZBUSBDb21wbGV0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRkFRIExpbmsnfSA9ICdJbnNlcnRhciBFbmxhY2UgYSBsYSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZBUSBUZXh0ICYgTGluayd9ID0gJ0luc2VydGFyIHRleHRvIHkgRW5sYWNlIGEgbGEgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGdWxsIEZBUSAmIExpbmsnfSA9ICdJbnNlcnRhciBGQVEgQ29tcGxldG8gJiBFbmxhY2UnOwoKICAgICMgVGVtcGxhdGU6IEN1c3RvbWVyRkFRRXhwbG9yZXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhdGVzdCB1cGRhdGVkIEZBUSBhcnRpY2xlcyd9ID0gJ8OabHRpbW9zIGFydMOtY3Vsb3MgRkFRIG1vZGlmaWNhZG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEZBUSBhcnRpY2xlcyBmb3VuZC4nfSA9ICdObyBzZSBlbmNvbnRyYXJvbiBhcnTDrWN1bG9zIEZBUSc7CgogICAgIyBUZW1wbGF0ZTogQ3VzdG9tZXJGQVFSZWxhdGVkQXJ0aWNsZXMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbWlnaHQgYmUgaGVscGZ1bCd9ID0gJ0VzdG8gcG9kcsOtYSBzZXIgw7p0aWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm91bmQgbm8gaGVscGZ1bCByZXNvdXJjZXMgZm9yIHRoZSBzdWJqZWN0IGFuZCB0ZXh0Lid9ID0gJ05vIHNlIGVuY29udHJhcm9uIHJlY3Vyc29zIMO6dGlsZXMgcGFyYSBlbCBhc3VudG8geSB0ZXh0by4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZSBhIHN1YmplY3Qgb3IgdGV4dCB0byBnZXQgYSBsaXN0IG9mIGhlbHBmdWwgcmVzb3VyY2VzLid9ID0gJ0VzY3JpYmEgdW4gYXN1bnRvIG8gdGV4dG8gcGFyYSBvYnRlbmVyIHVuYSBsaXN0YSBkZSByZWN1cnNvcyDDunRpbGVzLic7CgogICAgIyBUZW1wbGF0ZTogQ3VzdG9tZXJGQVFTZWFyY2gKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bGx0ZXh0IHNlYXJjaCBpbiBGQVEgYXJ0aWNsZXMgKGUuIGcuICJKb2huKm4iIG9yICJXaWxsKiIpJ30gPSAnQsO6c3F1ZWRhIGRlIHRleHRvIGNvbXBsZXRvIGVuIGFydMOtY3Vsb3MgRkFRIChlajogIkpvaG4qbiIgbyAiV2lsbCoiKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWb3RlIHJlc3RyaWN0aW9ucyd9ID0gJ1Jlc3RyaWNjaW9uZXMgZGUgdm90YWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgRkFRIGFydGljbGVzIHdpdGggdm90ZXMuLi4nfSA9ICfDmm5pY2FtZW50ZSBhcnTDrWN1bG9zIEZBUSBjb24gdm90b3MuLi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0ZSByZXN0cmljdGlvbnMnfSA9ICdSZXN0cmljY2lvbmVzIGRlIHZhbG9yYWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgRkFRIGFydGljbGVzIHdpdGggcmF0ZS4uLid9ID0gJ1NvbG8gYXJ0w61jdWxvcyBGQVEgY29uIHZhbG9yYWNpw7NuLi4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVzdHJpY3Rpb25zJ30gPSAnUmVzdHJpY2Npb25lcyBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSBGQVEgYXJ0aWNsZXMgY3JlYXRlZCd9ID0gJ8O6bmljYW1lbnRlIGFydMOtY3Vsb3MgRkFRIGNyZWFkb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSBGQVEgYXJ0aWNsZXMgY3JlYXRlZCBiZXR3ZWVuJ30gPSAnw5puaWNhbWVudGUgYXJ0w61jdWxvcyBGQVEgY3JlYWRvcyBlbnRyZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2gtUHJvZmlsZSBhcyBUZW1wbGF0ZT8nfSA9ICfCv1BlcmZpbCBkZSBiw7pzcXVlZGEgY29tbyBwbGFudGlsbGE/JzsKCiAgICAjIFRlbXBsYXRlOiBDdXN0b21lckZBUVpvb20KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FydGljbGUgTnVtYmVyJ30gPSAnTsO6bWVybyBkZSBBcnTDrWN1bG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIGZvciBhcnRpY2xlcyB3aXRoIGtleXdvcmQnfSA9ICdCdXNjYXIgYXJ0w61jdWxvcyBjb24gbGEgcGFsYWJyYSBjbGF2ZSc7CgogICAgIyBUZW1wbGF0ZTogUHVibGljRkFRU2VhcmNoT3BlblNlYXJjaERlc2NyaXB0aW9uRkFRTnVtYmVyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMnfSA9ICdQw7pibGljbyc7CgogICAgIyBUZW1wbGF0ZTogUHVibGljRkFRU2VhcmNoUmVzdWx0U2hvcnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0JhY2sgdG8gRkFRIEV4cGxvcmVyJ30gPSAnUmVncmVzYXIgYWwgRXhwbG9yYWRvciBkZSBGQVEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCBydyBwZXJtaXNzaW9uISd9ID0gJ1JlcXVpcmUgcGVybWlzbyBydyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY2F0ZWdvcmllcyBmb3VuZCB3aGVyZSB1c2VyIGhhcyByZWFkL3dyaXRlIHBlcm1pc3Npb25zISd9ID0gJ05vIHNlIGVuY29udHJhcm9uIGNhdGVnb3LDrWFzIGRvbmRlIGVsIHVzdWFyaW8gdGVuZ2EgcGVybWlzb3MgZGUgbGVjdHVyYS9lc2NyaXR1cmEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRlZmF1bHQgbGFuZ3VhZ2UgZm91bmQgYW5kIGNhblwndCBjcmVhdGUgYSBuZXcgb25lLid9ID0gJ05vIHNlIGVuY29udHLDsyBlbCBpZGlvbWEgcG9yIG9taXNpw7NuIHkgbm8gc2UgcHVlZGUgY3JlYXIgdW5vIG51ZXZvLic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFDYXRlZ29yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBDYXRlZ29yeUlEISd9ID0gJ1NlIG5lY2VzaXRhIENhdGVnb3J5SUQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgY2F0ZWdvcnkgc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJ8KhTGFzIGNhdGVnb3LDrWFzIGRlYmUgdGVuZXIgbm9tYnJlISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGNhdGVnb3J5IGFscmVhZHkgZXhpc3RzJ30gPSAnRXN0YSBjYXRlZ29yw61hIHlhIGV4aXN0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGNhdGVnb3J5IGFscmVhZHkgZXhpc3RzISd9ID0gJ8OJc3RhIGNhdGVnb3LDrWEgeWEgZXhpc3RlISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBDYXRlZ29yeUlEIGlzIGdpdmVuISd9ID0gJ05vIHNlIGhhIGRhZG8gQ2F0ZWdvcnlJRCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgY2F0ZWdvcnkgJXMhJ30gPSAnTm8gZnVlIHBvc2libGUgYm9ycmFyIGxhIGNhdGVnb3LDrWEgJXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBjYXRlZ29yeSB1cGRhdGVkISd9ID0gJ0FjdHVhbGl6YWRhIGNhdGVnb3LDrWEgZGUgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBjYXRlZ29yeSBhZGRlZCEnfSA9ICdBw7FhZGlkYSBjYXRlZ29yw61hIGRlIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQ2F0ZWdvcnknfSA9ICdCb3JyYXIgY2F0ZWdvcsOtYSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEl0ZW1JRCBpcyBnaXZlbiEnfSA9ICdObyBzZSBoYSBkYWRvIEl0ZW1JRCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgbm8gcGVybWlzc2lvbiBmb3IgdGhpcyBjYXRlZ29yeSEnfSA9ICdVc3RlZCBubyB0aWVuZSBwZXJtaXNvcyBwYXJhIGVzdGEgY2F0ZWdvcsOtYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgRkFRIGFydGljbGUgJXMhJ30gPSAnTm8gZnVlIHBvc2libGUgZWxpbWluYXIgZWwgYXJ0w61jdWxvIEZBUSAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRRXhwbG9yZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBDYXRlZ29yeUlEICVzIGlzIGludmFsaWQuJ30gPSAnRWwgQ2F0ZWdvcnlJRCAlcyBlcyBpbnbDoWxpZG8uJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUhpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIEl0ZW1JRCBpcyBnaXZlbiEnfSA9ICdObyBzZSBwdWVkZSBtb3N0cmFyIGVsIGhpc3RvcmlhbCwgeWEgcXVlIG5vIHNlIGhhIGRhZG8gdW4gSXRlbUlEISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSGlzdG9yeSd9ID0gJ0hpc3RvcmlhbCBkZSBGQVEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRSm91cm5hbC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEpvdXJuYWwnfSA9ICdCaXTDoWNvcmEgZGUgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgY29uZmlnIG9wdGlvbiBGQVE6OkZyb250ZW5kOjpPdmVydmlldyd9ID0gJ1NlIHJlcXVpZXJlIGxhIG9wY2nDs24gZGUgY29uZmlndXJhY2nDs24gRkFROjpGcm9udGVuZDo6T3ZlcnZpZXcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlnIG9wdGlvbiBGQVE6OkZyb250ZW5kOjpPdmVydmlldyBuZWVkcyB0byBiZSBhIEhBU0ggcmVmISd9ID0KICAgICAgICAnwqFMYSBvcGNpw7NuIGRlIGNvbmZpZ3VyYWNpw7NuIEZBUTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3IG5lY2VzaXRhIHNlciB1bmEgcmVmZXJlbmNpYSBhIHVuIEhBU0ghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGNvbmZpZyBvcHRpb24gZm91bmQgZm9yIHRoZSB2aWV3ICIlcyIhJ30gPSAnwqFObyBzZSBlbmNvbnRyw7MgbGEgb3BjacOzbiBkZSBjb25maWd1cmFjacOzbiBwYXJhIGxhIHZpc3RhICIxJXMiISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFMYW5ndWFnZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gTGFuZ3VhZ2VJRCBpcyBnaXZlbiEnfSA9ICdObyBzZSBoYSBkYWRvIHVuIExhbmd1YWdlSUQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBuYW1lIGlzIHJlcXVpcmVkISd9ID0gJ0VsIG5vbWJyZSBlcyBpbXByZXNjaW5kaWJsZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBsYW5ndWFnZSBhbHJlYWR5IGV4aXN0cyEnfSA9ICdFc3RlIGlkaW9tYSB5YSBleGlzdGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGxhbmd1YWdlICVzISd9ID0gJ05vIHNlIGhhIHBvZGlkbyBlbGltaW5hciBlbCBpZGlvbWEgJXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBsYW5ndWFnZSB1cGRhdGVkISd9ID0gJ0FjdHVhbGl6YWRvIGlkaW9tYSBkZSBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBsYW5ndWFnZSBhZGRlZCEnfSA9ICdBw7FhZGlkbyBpZGlvbWEgZGUgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBMYW5ndWFnZSAlcyd9ID0gJ0JvcnJhciBJZGlvbWEgJXMnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRUHJpbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc3VsdCd9ID0gJ1Jlc3VsdGFkbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IHVwZGF0ZSd9ID0gJ8OabHRpbWEgQWN0dWFsaXphY2nDs24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIER5bmFtaWMgRmllbGRzJ30gPSAnQ2FtcG9zIERpbsOhbWljb3MgcGFyYSBGQVEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRUmljaFRleHQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vICVzIGlzIGdpdmVuISd9ID0gJ05vIHNlIGhhIGRhZG8gJXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBsb2FkIExhbmd1YWdlT2JqZWN0ISd9ID0gJ05vIHB1ZWRlIGNhcmdhcnNlIGVsIExhbmd1YWdlT2JqZWN0ISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFJlc3VsdCEnfSA9ICdTaW4gUmVzdWx0YWRvcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIE51bWJlcid9ID0gJ07Dum1lcm8gZGUgYXJ0w61jdWxvIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IENoYW5nZWQgYnknfSA9ICfDmmx0aW1vIENhbWJpbyBwb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ3JlYXRlIFRpbWUgKGJlZm9yZS9hZnRlciknfSA9ICdUaWVtcG8gZGUgQ3JlYWNpw7NuIGRlbCBBcnTDrWN1bG8gRkFRIChhbnRlcy9kZXNwdcOpcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ3JlYXRlIFRpbWUgKGJldHdlZW4pJ30gPSAnVGllbXBvIGRlIENyZWFjacOzbiBkZWwgQXJ0w61jdWxvIEZBUSAoZW50cmUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJdGVtIENoYW5nZSBUaW1lIChiZWZvcmUvYWZ0ZXIpJ30gPSAnVGllbXBvIGRlIEFjdHVhbGl6YWNpw7NuIGRlbCBBcnTDrWN1bG8gRkFRIChhbnRlcy9kZXNwdcOpcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ2hhbmdlIFRpbWUgKGJldHdlZW4pJ30gPSAnVGllbXBvIGRlIEFjdHVhbGl6YWNpw7NuIGRlbCBBcnTDrWN1bG8gRkFRIChlbnRyZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXF1YWxzJ30gPSAnSWd1YWwgYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmVhdGVyIHRoYW4nfSA9ICdNYXlvciBxdWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JlYXRlciB0aGFuIGVxdWFscyd9ID0gJ01heW9yIG8gaWd1YWwgcXVlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NtYWxsZXIgdGhhbid9ID0gJ01lbm9yIHF1ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTbWFsbGVyIHRoYW4gZXF1YWxzJ30gPSAnTWVub3IgbyBpZ3VhbCBxdWUnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRWm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBGaWxlSUQhJ30gPSAnU2UgbmVjZXNpdGEgRmlsZUlEISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGFua3MgZm9yIHlvdXIgdm90ZSEnfSA9ICfCoUdyYWNpYXMgcG9yIHN1IHZvdG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIGFscmVhZHkgdm90ZWQhJ30gPSAnwqFVc3RlZCB5YSBoYSB2b3RhZG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHJhdGUgc2VsZWN0ZWQhJ30gPSAnwqFObyBzZSBoYSBzZWxlY2Npb25hZG8gbmluZ3VuYSBwdW50dWFjacOzbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHZvdGluZyBtZWNoYW5pc20gaXMgbm90IGVuYWJsZWQhJ30gPSAnRWwgbWVjYW5pc21vIGRlIHZvdGFjacOzbiBubyBlc3TDoSBoYWJpbGl0YWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdm90ZSByYXRlIGlzIG5vdCBkZWZpbmVkISd9ID0gJ0xhIHByb3BvcmNpw7NuIGRlIHZvdGFjacOzbiBubyBlc3TDoSBkZWZpbmlkYSEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0N1c3RvbWVyRkFRUHJpbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIFByaW50J30gPSAnSW1wcmltaXIgZWwgYXJ0w61jdWxvIEZBUSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQ3VzdG9tZXJGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZWQgYmV0d2Vlbid9ID0gJ0NyZWFkbyBlbnJ0cmUnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0N1c3RvbWVyRkFRWm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBJdGVtSUQhJ30gPSAnU2UgbmVjZXNpdGEgSXRlbUlEISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvUHVibGljRkFRRXhwbG9yZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlcyAobmV3IGNyZWF0ZWQpJ30gPSAnQXJ0w61jdWxvcyBGQVEgKG51ZXZvcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGVzIChyZWNlbnRseSBjaGFuZ2VkKSd9ID0gJ0FydMOtY3Vsb3MgRkFRIChtb2RpZmljYWRvcyByZWNpZW50ZW1lbnRlKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZXMgKFRvcCAxMCknfSA9ICdBcnTDrWN1bG9zIEZBUSAoVG9wIDEwKSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvUHVibGljRkFRUlNTLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBUeXBlIGlzIGdpdmVuISd9ID0gJ05vIHNlIGhhIGRhZG8gVHlwZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlIG11c3QgYmUgZWl0aGVyIExhc3RDcmVhdGUgb3IgTGFzdENoYW5nZSBvciBUb3AxMCEnfSA9ICdFbCBUaXBvIGRlYmUgc2VyIExhc3RDcmVhdGUgTGFzdENoYW5nZSBvIFRvcDEwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBjcmVhdGUgUlNTIGZpbGUhJ30gPSAnTm8gc2UgcHVlZGUgY3JlYXIgZWwgYXJjaGl2byBSU1MnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9IZWFkZXJNZXRhL0FnZW50RkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoRkFRRnVsbHRleHQpJ30gPSAnMSVzIChGQVFUZXh0b0NvbXBsZXRvKSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0hlYWRlck1ldGEvQ3VzdG9tZXJGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gQ3VzdG9tZXIgKCVzKSd9ID0gJyVzIC0gQ2xpZW50ZSAoJXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gQ3VzdG9tZXIgKEZBUUZ1bGx0ZXh0KSd9ID0gJzElcyAtIENsaWVudGUgKEZBUVRleHRvQ29tcGxldG8pJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvSGVhZGVyTWV0YS9QdWJsaWNGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gUHVibGljICglcyknfSA9ICclcyAtIFDDumJsaWNvICglcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgLSBQdWJsaWMgKEZBUUZ1bGx0ZXh0KSd9ID0gJzElcyAtIFDDumJsaWNvIChGQVFUZXh0b0NvbXBsZXRvKSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0xheW91dC9GQVEucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgcmF0ZSEnfSA9ICfCoVJlcXVpZXJlIHZhbG9yYWNpw7NuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGFydGljbGUgaXMgZW1wdHkhJ30gPSAnRXN0ZSBhcnTDrWN1bG8gZXN0YSB2YWNpw7MhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhdGVzdCBjcmVhdGVkIEZBUSBhcnRpY2xlcyd9ID0gJ8OabHRpbW9zIGFydMOtY3Vsb3MgRkFRIGNyZWFkb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG9wIDEwIEZBUSBhcnRpY2xlcyd9ID0gJ1RvcCAxMCBkZSBhcnTDrWN1bG9zIEZBUSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0xpbmtPYmplY3QvRkFRLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZW50IFR5cGUnfSA9ICdUaXBvIGRlIENvbnRlbmlkbyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9EeW5hbWljRmllbGQvRHJpdmVyL0ZBUS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IHRoZSBhdHRyaWJ1dGUgd2hpY2ggRkFRcyB3aWxsIGJlIHNlYXJjaGVkIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4dGVybmFsLXNvdXJjZSBrZXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IHRoZSB0eXBlIG9mIGRpc3BsYXknfSA9ICcnOwoKICAgICMgRGF0YWJhc2UgWE1MIC8gU09QTSBEZWZpbml0aW9uOiBGQVEuc29wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW50ZXJuYWwnfSA9ICdpbnRlcm5vJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2V4dGVybmFsJ30gPSAnZXh0ZXJubyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwdWJsaWMnfSA9ICdww7pibGljbyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgZmlsdGVyIGZvciBIVE1MIG91dHB1dCB0byBhZGQgbGlua3MgYmVoaW5kIGEgZGVmaW5lZCBzdHJpbmcuIFRoZSBlbGVtZW50IEltYWdlIGFsbG93cyB0d28gaW5wdXQga2luZHMuIEZpcnN0IHRoZSBuYW1lIG9mIGFuIGltYWdlIChlLmcuIGZhcS5wbmcpLiBJbiB0aGlzIGNhc2UgdGhlIE9UT0JPIGltYWdlIHBhdGggd2lsbCBiZSB1c2VkLiBUaGUgc2Vjb25kIHBvc3NpYmlsaXR5IGlzIHRvIGluc2VydCB0aGUgbGluayB0byB0aGUgaW1hZ2UuJ30gPQogICAgICAgICdGaWx0cm8gcGFyYSBlbCBIVE1MIHJlc3VsdGFudGUgcGFyYSBhw7FhZGlyIGVubGFjZXMgYSB1bmEgY2FkZW5hIGRldGVybWluYWRhLiBFbCBlbGVtZW50byBJbWFnZW4gY29udGVtcGxhIGRvcyB0aXBvcyBkZSByZWdpc3Ryb3MuIEVsIHByaW1lcm8gZXMgZWwgbm9tYnJlIGRlIHVuYSBpbWFnZW4gKHBvciBlamVtcGxvIGZhcS5wbmcpLiBFbiBlc3RlIGNhc28gc2UgdXRpbGl6YXLDoSBsYSBydXRhIGRlIGltw6FnZW5lcyBkZSBPVE9CTy4gTGEgc2VndW5kYSBwb3NpYmlsaWRhZCBlcyBpbnNlcnRhciBlbCBlbmxhY2UgYSBsYSBpbWFnZW4uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIGFydGljbGUnfSA9ICdBw7FhZGlyIGFydMOtY3VsbyBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NTUyBjb2xvciBmb3IgdGhlIHZvdGluZyByZXN1bHQuJ30gPSAnQ29sb3IgQ1NTIHBhcmEgZWwgcmVzdWx0YWRvIGRlIGxhIHZvdGFjacOzbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgVGltZSBUbyBMZWF2ZSBmb3IgRkFRIGl0ZW1zLid9ID0gJ1RpZW1wbyBkZSB2aWRhIGRlIGxhIGNhY2jDqSBwYXJhIGxvcyBlbGVtZW50b3MgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSBNYW5hZ2VtZW50J30gPSAnR2VzdGnDs24gZGUgbGFzIENhdGVnb3LDrWFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGVnb3J5IE1hbmFnZW1lbnQuJ30gPSAnR2VzdGnDs24gZGUgQ2F0ZWdvcsOtYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBQcmludC4nfSA9ICdJbXByaW1pciBGQVEgZGVsIENsaWVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBSZWxhdGVkIEFydGljbGVzJ30gPSAnQXJ0w61jdWxvcyBGQVEgUmVsYWNpb25hZG9zIFBhcmEgTG9zIENsaWVudGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBSZWxhdGVkIEFydGljbGVzLid9ID0gJ0FydMOtY3Vsb3MgRkFRIFJlbGFjaW9uYWRvcyBQYXJhIExvcyBDbGllbnRlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIFpvb20uJ30gPSAnRGV0YWxsZSBGQVEgZGVsIENsaWVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBzZWFyY2guJ30gPSAnQsO6c3F1ZWRhIEZBUSBkZWwgQ2xpZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRLid9ID0gJ0ZBUSBkZWwgQ2xpZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVjaW1hbCBwbGFjZXMgb2YgdGhlIHZvdGluZyByZXN1bHQuJ30gPSAnTsO6bWVybyBkZSBkZWNpbWFsZXMgcGFyYSBlbCByZXN1bHRhZG8gZGUgbGEgdm90YWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgY2F0ZWdvcnkgbmFtZS4nfSA9ICdOb21icmUgcHJlZGV0ZXJtaW5hZG8gZGUgbGEgY2F0ZWdvcsOtYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IGxhbmd1YWdlIGZvciBGQVEgYXJ0aWNsZXMgb24gc2luZ2xlIGxhbmd1YWdlIG1vZGUuJ30gPSAnSWRpb21hIHBvciBvbWlzacOzbiBwYXJhIGxvcyBhcnTDrWN1bG9zIEZBUSBlbiBtb2RvIGlkaW9tYSDDum5pY28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBtYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duLid9ID0KICAgICAgICAnTcOheGltbyB0YW1hw7FvIHBvciBkZWZlY3RvIGEgbW9zdHJhciBkZSBsb3MgdMOtdHVsb3MgZW4gdW4gYXJ0w61jdWxvIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBwcmlvcml0eSBvZiB0aWNrZXRzIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0KICAgICAgICAnUHJpb3JpZGFkIHBvciBvbWlzacOzbiBkZSBsb3MgdGlja2V0cyBwYXJhIGFwcm9iYWNpw7NuIGRlIGxvcyBhcnTDrWN1bG9zIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0ZSBmb3IgRkFRIGVudHJ5Lid9ID0gJ0VzdGFkbyBwb3Igb21pc2nDs24gcGFyYSBsb3MgYXJ0w61jdWxvcyBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdGUgb2YgdGlja2V0cyBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICdFc3RhZG8gcG9yIG9taXNpw7NuIGRlIGxvcyB0aWNrZXRzIHBhcmEgYXByb2JhY2nDs24gZGUgbG9zIGFydMOtY3Vsb3MgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHR5cGUgb2YgdGlja2V0cyBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICdUaXBvIHBvciBkZWZlY3RvIGRlIGxvcyB0aWNrZXRzIHBhcmEgYXByb2JhY2nDs24gZGUgYXJ0w61jdWxvcyBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgdmFsdWUgZm9yIHRoZSBBY3Rpb24gcGFyYW1ldGVyIGZvciB0aGUgcHVibGljIGZyb250ZW5kLiBUaGUgQWN0aW9uIHBhcmFtZXRlciBpcyB1c2VkIGluIHRoZSBzY3JpcHRzIG9mIHRoZSBzeXN0ZW0uJ30gPQogICAgICAgICdWYWxvciBwb3Igb21pc2nDs24gcGFyYSBlbCBwYXLDoW1ldHJvICJBY3Rpb24iIHBhcmEgbGEgaW50ZXJmYXogcMO6YmxpY2EuIEVsIHBhcsOhbWV0cm8gIkFjdGlvbiIgc2UgdXNhIGVuIGxvcyAic2NyaXB0cyIgZGVsIHNpc3RlbWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSBBY3Rpb25zIHdoZXJlIGEgc2V0dGluZ3MgYnV0dG9uIGlzIGF2YWlsYWJsZSBpbiB0aGUgbGlua2VkIG9iamVjdHMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIFBsZWFzZSBub3RlIHRoYXQgdGhlc2UgQWN0aW9ucyBtdXN0IGhhdmUgcmVnaXN0ZXJlZCB0aGUgZm9sbG93aW5nIEpTIGFuZCBDU1MgZmlsZXM6IENvcmUuQWxsb2NhdGlvbkxpc3QuY3NzLCBDb3JlLlVJLkFsbG9jYXRpb25MaXN0LmpzLCBDb3JlLlVJLlRhYmxlLlNvcnQuanMsIENvcmUuQWdlbnQuVGFibGVGaWx0ZXJzLmpzIGFuZCBDb3JlLkFnZW50LkxpbmtPYmplY3QuanMuJ30gPQogICAgICAgICdEZWZpbmUgbGFzIEFjY2lvbmVzIGRvbmRlIGVsIGJvdMOzbiBkZSBjb25maWd1cmFjaW9uZXMgZXN0YSBkaXNwb25pYmxlIGVuIGVsICJ3aWRnZXQiIGRlIG9iamV0b3MgdmluY3VsYWRvcyAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBQb3IgZmF2b3Igbm90ZSBxdWUgZGljaGFzIEFjY2lvbmVzIGRlYmVuIHRlbmVyIHJlZ2lzdHJhZG9zIGxvcyBzaWd1aWVudGVzIGFyY2hpdm9zIEpTIHkgQ1NTOiBDb3JlLkFsbG9jYXRpb25MaXN0LmNzcywgQ29yZS5VSS5BbGxvY2F0aW9uTGlzdC5qcywgQ29yZS5VSS5UYWJsZS5Tb3J0LmpzLCBDb3JlLkFnZW50LlRhYmxlRmlsdGVycy5qcyBhbmQgQ29yZS5BZ2VudC5MaW5rT2JqZWN0LmpzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgaWYgdGhlIEZBUSB0aXRsZSBzaG91bGQgYmUgY29uY2F0ZW5hdGVkIHRvIGFydGljbGUgc3ViamVjdC4nfSA9CiAgICAgICAgJ0RlZmluZSBzaSBlbCB0w610dWxvIGRlbCBGQVEgZGViZSBlc3RhciBjb25jYXRlbmFkbyBhbCBhc3VudG8gZGVsIGFydMOtY3Vsby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgRkFRcyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90ZTogT25seSBGQVEgYXR0cmlidXRlcyBhbmQgZHluYW1pYyBmaWVsZHMgKER5bmFtaWNGaWVsZF9OYW1lWCkgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLid9ID0KICAgICAgICAnRGVmaW5lIGN1YWxlcyBjb2x1bW5hcyBzZXLDoW4gbW9zdHJhZGFzIGVuIGVsICJ3aWRnZXQiIGRlIEZBUSB2aW5jdWxhZG9zIChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGE6IFNvbGFtZW50ZSBhdHJpYnV0b3MgZGUgRkFRIHkgY2FtcG9zIGRpbsOhbWljb3MgKER5bmFtaWNGaWVsZF9Ob21icmVYKSBzb24gcGVybWl0aWRvcyBwYXJhIGNvbHVtbmFzIHBvciBvbWlzacOzbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIEZBUSBqb3VybmFsLid9ID0KICAgICAgICAnRGVmaW5lIHVuIG3Ds2R1bG8gZGUgdmlzdGEgZ2VuZXJhbCBwYXJhIG1vc3RyYXIgbGEgdmlzdGEgcGVxdWXDsWEgZGUgbGEgYml0w6Fjb3JhIGRlIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgRkFRIGxpc3QuJ30gPQogICAgICAgICdEZWZpbmUgdW4gbcOzZHVsbyBkZSB2aXN0YSBwcmV2aWEgcGFyYSBtb3N0cmFyIGxhIHZpc3RhIHBlcXVlw7FhIGRlIHVuIGxpc3RhZG8gZGUgRkFRcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIGEgRkFRIHNlYXJjaCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGVmaW5lIGVsIGF0cmlidXRvIHBvciBvbWlzacOzbiBwYXJhIG9yZGVuYXIgbG9zIGFydMOtY3Vsb3MgRkFRIGVuIHVuYSBiw7pzcXVlZGEgZGUgRkFRIGVuIGxhIGludGVyZmF6IGRlbCBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gYSBGQVEgc2VhcmNoIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmUgZWwgYXRyaWJ1dG8gcG9yIG9taXNpw7NuIHBhcmEgb3JkZW5hciBsb3MgYXJ0w61jdWxvcyBGQVEgZW4gdW5hIGLDunNxdWVkYSBkZSBGQVEgZW4gbGEgaW50ZXJmYXogZGVsIGNsaWVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gYSBGQVEgc2VhcmNoIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGVmaW5lIGVsIGF0cmlidXRvIHBvciBvbWlzacOzbiBwYXJhIG9yZGVuYXIgbG9zIGFydMOtY3Vsb3MgRkFRIGVuIHVuYSBiw7pzcXVlZGEgZGUgRkFRIGVuIGxhIGludGVyZmF6IHDDumJsaWNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIHRoZSBGQVEgRXhwbG9yZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RlZmluZSBlbCBhdHJpYnV0byBwb3Igb21pc2nDs24gcGFyYSBvcmRlbmFyIGxvcyBhcnTDrWN1bG9zIEZBUSBlbiBlbCBleHBsb3JhZG9yIGRlIEZBUSBkZSBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIHRoZSBGQVEgRXhwbG9yZXIgb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RFZmluZSBlbCBhdHJpYnV0byBwb3Igb21pc2nDs24gcGFyYSBvcmRlbmFyIGxhcyBGQVEgZW4gZWwgZXhwbG9yYWRvciBkZSBGQVEgZGUgbGEgaW50ZXJmYXogZGVsIGNsaWVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RlZmluZSBlbCBhdHJpYnV0byBkZSBGQVEgcXVlIHNlIHVzYXLDoSBwb3Igb21pc2nDs24gcGFyYSBvcmRlbmFyIGxhcyBGQVEgZW4gZWwgZXhwbG9yYWRvciBkZSBGQVEgZGUgbGEgaW50ZXJmYXogcMO6YmxpY2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnRGVmaW5lIGVsIG9yZGVuIHBvciBvbWlzacOzbiBkZSBsYXMgRkFRIGVuIGxvcyByZXN1bHRhZG9zIGRlbCBleHBsb3JhZG9yIGRlIEZBUSBkZSBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLiBBcnJpYmE6IGxvcyBtw6FzIGFudGlndW9zIGVuIGxhIHBhcnRlIHN1cGVyaW9yLiBBYmFqbzogTG9zIMO6bHRpbW9zIGVuIGxhIHBhcnRlIHN1cGVyaW9yLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ0RlZmluZSBlbCBvcmRlbiBwb3Igb21pc2nDs24gZGUgbGFzIEZBUSBlbiBsb3MgcmVzdWx0YWRvcyBkZWwgZXhwbG9yYWRvciBkZSBGQVEgZGUgbGEgaW50ZXJmYXogZGVsIGNsaWVudGUuIEFycmliYTogbG9zIG3DoXMgYW50aWd1b3MgZW4gbGEgcGFydGUgc3VwZXJpb3IuIEFiYWpvOiBsb3MgbcOhcyByZWNpZW50ZXMgZW4gbGEgcGFydGUgc3VwZXJpb3IuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ0RlZmluZSBlbCBvcmRlbiBwb3Igb21pc2nDs24gZGUgbGFzIEZBUSBlbiBlbCBleHBsb3JhZG9yIGRlIEZBUSBkZSBsYSBpbnRlcmZheiBww7pibGljYS4gQXJyaWJhOiBsb3MgbcOhcyBhbnRpZ3VvcyBlbiBsYSBwYXJ0ZSBzdXBlcmlvci4gQWJham86IGxvcyBtw6FzIHJlY2llbnRlcyBlbiBsYSBwYXJ0ZSBzdXBlcmlvci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnRGVmaW5lIGVsIG9yZGVuIHBvciBvbWlzacOzbiBkZSBsb3MgcmVzdWx0YWRvcyBkZSB1bmEgYsO6c3F1ZWRhIGVuIGxhIGludGVyZmFjZSBkZWwgYWdlbnRlLiBBcnJpYmE6IGxvcyBtw6FzIGFudGlndW9zIGVuIGxhIHBhcnRlIHN1cGVyaW9yLiBBYmFqbzogbG9zIMO6bHRpbW9zIGVuIGxhIHBhcnRlIHN1cGVyaW9yLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICdEZWZpbmUgZWwgb3JkZW4gcG9yIG9taXNpw7NuIGRlIGxvcyByZXN1bHRhZG9zIGRlIHVuYSBiw7pzcXVlZGEgZW4gbGEgaW50ZXJmYWNlIGRlbCBjbGllbnRlLiBBcnJpYmE6IGxvcyBtw6FzIGFudGlndW9zIGVuIGxhIHBhcnRlIHN1cGVyaW9yLiBBYmFqbzogbG9zIMO6bHRpbW9zIGVuIGxhIHBhcnRlIHN1cGVyaW9yLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnRGVmaW5lIGVsIG9yZGVuIHBvciBvbWlzacOzbiBkZSBsb3MgcmVzdWx0YWRvcyBkZSB1bmEgYsO6c3F1ZWRhIGVuIGxhIGludGVyZmFjZSBww7pibGljYS4gQXJyaWJhOiBsb3MgbcOhcyBhbnRpZ3VvcyBlbiBsYSBwYXJ0ZSBzdXBlcmlvci4gQWJham86IGxvcyDDumx0aW1vcyBlbiBsYSBwYXJ0ZSBzdXBlcmlvci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzaG93biBGQVEgc2VhcmNoIGF0dHJpYnV0ZSBmb3IgRkFRIHNlYXJjaCBzY3JlZW4uJ30gPQogICAgICAgICdEZWZpbmUgZWwgYXRyaWJ1dG8gZGUgYsO6c3F1ZWRhIGRlIEZBUSBtb3N0cmFkbyBwb3IgZGVmZWN0byBlbiBsYSBwYW50YWxsYSBkZSBiw7pzcXVlZGEgZGUgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBoZWlnaHQgZm9yIHRoZSByaWNoIHRleHQgZWRpdG9yIGNvbXBvbmVudCBmb3IgdGhpcyBzY3JlZW4uIEVudGVyIG51bWJlciAocGl4ZWxzKSBvciBwZXJjZW50IHZhbHVlIChyZWxhdGl2ZSkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaW5mb3JtYXRpb24gdG8gYmUgaW5zZXJ0ZWQgaW4gYSBGQVEgYmFzZWQgVGlja2V0LiAiRnVsbCBGQVEiIGluY2x1ZGVzIHRleHQsIGF0dGFjaG1lbnRzIGFuZCBpbmxpbmUgaW1hZ2VzLid9ID0KICAgICAgICAnRGVmaW5lIGxhIGluZm9ybWFjacOzbiBhIGluc2VydGFyIGVuIHVuIEZBUSBiYXNhZG8gZW4gdW4gdGlja2V0LiAiRkFRIGNvbXBsZXRvIiBpbmNsdXllIHRleHRvLCBhZGp1bnRvcyBlIGltw6FnZW5lcyBpbmNydXN0YWRhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcGFyYW1ldGVycyBmb3IgdGhlIGRhc2hib2FyZCBiYWNrZW5kLiAiTGltaXQiIGRlZmluZXMgdGhlIG51bWJlciBvZiBlbnRyaWVzIGRpc3BsYXllZCBieSBkZWZhdWx0LiAiR3JvdXAiIGlzIHVzZWQgdG8gcmVzdHJpY3QgYWNjZXNzIHRvIHRoZSBwbHVnaW4gKGUuIGcuIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiBpbmRpY2F0ZXMgaWYgdGhlIHBsdWdpbiBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb3IgaWYgdGhlIHVzZXIgbmVlZHMgdG8gZW5hYmxlIGl0IG1hbnVhbGx5Lid9ID0KICAgICAgICAnRGVmaW5lIGxvcyBwYXLDoW1ldHJvcyBwYXJhIGVsIGJhY2tlbmQgZGVsIHBhbmVsIHByaW5jaXBhbC4gIkxpbWl0IiBkZWZpbmUgZWwgbsO6bWVybyBkZSBlbnRyYWRhcyBtb3N0cmFkYXMgcG9yIGRlZmVjdG8uICJHcm91cCIgc2UgdXNhIHBhcmEgcmVzdHJpbmdpciBlbCBhY2Nlc28gYWwgcGx1Z2luIChwb3IgZWplbXBsbywgR3J1cG86IGFkbWluO2dydXBvMTtncnVwbzI7KS4gIkRlZmF1bHQiIGluZGljYSBzaSBlbCBwbHVnaW4gZXN0w6EgaGFiaWxpdGFkbyBwb3IgZGVmZWN0byBvIHNpIGVsIHVzdWFyaW8gbmVjZXNpdGEgaGFiaWxpdGFybG8gbWFudWFsbWVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIEZBUSBFeHBsb3Jlci4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ0RlZmluZSBsYXMgY29sdW1uYXMgcXVlIHNlIG1vc3RyYXLDoW4gZW4gZWwgRXhwbG9yYWRvciBkZSBGQVEuIEVzdGEgb3BjacOzbiBubyB0aWVuZSBlZmVjdG9zIGVuIGxhIHBvc2ljacOzbiBkZSBsYXMgY29sdW1uYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIEZBUSBqb3VybmFsLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnRGVmaW5lIGxhcyBjb2x1bW5hcyBxdWUgc2UgbW9zdHJhcsOhbiBlbiBsYSBiaXTDoWNvcmEgZGUgRkFRLiBFc3RhIG9wY2nDs24gbm8gdGllbmUgZWZlY3RvcyBlbiBsYSBwb3NpY2nDs24gZGUgbGFzIGNvbHVtbmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBGQVEgc2VhcmNoLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnRGVmaW5lIGxhcyBjb2x1bW5hcyBxdWUgc2UgbW9zdHJhcsOhbiBlbiBsYSBiw7pzcXVlZGEgZGUgRkFRLiBFc3RhIG9wY2nDs24gbm8gdGllbmUgZWZlY3RvcyBlbiBsYSBwb3NpY2nDs24gZGUgbGFzIGNvbHVtbmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHdoZXJlIHRoZSBcJ0luc2VydCBGQVFcJyBsaW5rIHdpbGwgYmUgZGlzcGxheWVkLid9ID0gJ0RlZmluaXIgZG9uZGUgc2Vyw6EgbW9zdHJhZG8gZWwgZW5sYWNlIFwnSW5zZXJ0YXIgRkFRXCcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5pdGlvbiBvZiBGQVEgaXRlbSBmcmVlIHRleHQgZmllbGQuJ30gPSAnRGVmaW5pY2nDs24gZGVsIGNhbXBvIMKrdGV4dG8gbGlicmXCuyBwYXJhIGxvcyBhcnTDrWN1bG9zIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoaXMgRkFRJ30gPSAnQm9ycmFyIGVzdGUgYXJ0w61jdWxvIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0NhbXBvcyBkaW7DoW1pY29zIG1vc3RyYWRvcyBlbiBsYSBwYW50YWxsYSBkZSBhw7FhZGlyIEZBUSBlbiBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdDYW1wb3MgZGluw6FtaWNvcyBtb3N0cmFkb3MgZW4gbGEgcGFudGFsbGEgZGUgdmlzdGEgZ2VuZXJhbCBkZSBGQVEgZW4gbGEgaW50ZXJmYXogZGVsIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBvdmVydmlldyBzY3JlZW4gb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0NhbXBvcyBkaW7DoW1pY29zIG1vc3RyYWRvcyBlbiBsYSBwYW50YWxsYSBkZSB2aXN0YSBnZW5lcmFsIGRlIEZBUSBlbiBsYSBpbnRlcmZheiBkZWwgY2xpZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBvdmVydmlldyBzY3JlZW4gb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICdDYW1wb3MgZGluw6FtaWNvcyBtb3N0cmFkb3MgZW4gbGEgcGFudGFsbGEgZGUgdmlzdGEgZ2VuZXJhbCBkZSBGQVEgZW4gbGEgaW50ZXJmYXogcMO6YmxpY2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgcHJpbnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdDYW1wb3MgZGluw6FtaWNvcyBtb3N0cmFkb3MgZW4gbGEgcGFudGFsbGEgZGUgaW1wcmVzacOzbiBkZSBGQVEgZW4gbGEgaW50ZXJmYXogZGVsIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBwcmludCBzY3JlZW4gb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0NhbXBvcyBkaW7DoW1pY29zIG1vc3RyYWRvcyBlbiBsYSBwYW50YWxsYSBkZSBpbXByZXNpw7NuIGRlIEZBUSBlbiBsYSBpbnRlcmZheiBkZWwgY2xpZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBwcmludCBzY3JlZW4gb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICdDYW1wb3MgZGluw6FtaWNvcyBtb3N0cmFkb3MgZW4gbGEgcGFudGFsbGEgZGUgaW1wcmVzacOzbiBkZSBGQVEgZW4gbGEgaW50ZXJmYXogcMO6YmxpY2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc2VhcmNoIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQ2FtcG9zIGRpbsOhbWljb3MgbW9zdHJhZG9zIGVuIGxhIHBhbnRhbGxhIGRlIGLDunNxdWVkYSBkZSBGQVEgZW4gbGEgaW50ZXJmYXogZGVsIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBzZWFyY2ggc2NyZWVuIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICdDYW1wb3MgZGluw6FtaWNvcyBtb3N0cmFkb3MgZW4gbGEgcGFudGFsbGEgZGUgYsO6c3F1ZWRhIGRlIEZBUSBlbiBsYSBpbnRlcmZheiBkZWwgY2xpZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBzZWFyY2ggc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQ2FtcG9zIGRpbsOhbWljb3MgbW9zdHJhZG9zIGVuIGxhIHBhbnRhbGxhIGRlIGLDunNxdWVkYSBkZSBGQVEgZW4gbGEgaW50ZXJmYXogcMO6YmxpY2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc21hbGwgZm9ybWF0IG92ZXJ2aWV3IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQ2FtcG9zIGRpbsOhbWljb3MgbW9zdHJhZG9zIGVuIGxhIHBhbnRhbGxhIGRlIHZpc3RhIGdlbmVyYWwgZGUgRkFRIGVuIGZvcm1hdG8gcGVxdWXDsW8gZW4gbGEgaW50ZXJmYXogZGVsIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQ2FtcG9zIGRpbsOhbWljb3MgbW9zdHJhZG9zIGVuIGxhIHBhbnRhbGxhIGRlIGRldGFsbGUgZGUgRkFRIGVuIGxhIGludGVyZmF6IGRlbCBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgem9vbSBzY3JlZW4gb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0NhbXBvcyBkaW7DoW1pY29zIG1vc3RyYWRvcyBlbiBsYSBwYW50YWxsYSBkZSBkZXRhbGxlIGRlIEZBUSBlbiBsYSBpbnRlcmZheiBkZWwgY2xpZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSB6b29tIHNjcmVlbiBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0NhbXBvcyBkaW7DoW1pY29zIG1vc3RyYWRvcyBlbiBsYSBwYW50YWxsYSBkZSBkZXRhbGxlIGRlIEZBUSBlbiBsYSBpbnRlcmZheiBww7pibGljYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGlzIEZBUSd9ID0gJ0VkaXRhciBlc3RlIGFydMOtY3VsbyBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIG11bHRpcGxlIGxhbmd1YWdlcyBvbiBGQVEgbW9kdWxlLid9ID0gJ0hhYmlsaXRhciBtw7psdGlwbGVzIGlkaW9tYXMgZW4gZWwgbcOzZHVsbyBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHNlcnZpY2UgYXNzaWdubWVudCBmb3IgRkFRcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHRoZSByZWxhdGVkIGFydGljbGUgZmVhdHVyZSBmb3IgdGhlIGN1c3RvbWVyIGZyb250ZW5kLid9ID0KICAgICAgICAnSGFiaWxpdGFyIGxhIGZ1bmNpb25hbGlkYWQgZGUgYXJ0w61jdWxvcyByZWxhY2lvbmFkb3MgZW4gbGEgaW50ZXJmYXogZGVsIGNsaWVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB2b3RpbmcgbWVjaGFuaXNtIG9uIEZBUSBtb2R1bGUuJ30gPSAnSGFiaWxpdGFyIGVsIG1lY2FuaXNtbyBkZSB2b3RhY2nDs24gZW4gZWwgbcOzZHVsbyBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwbG9yZXInfSA9ICdFeHBsb3JhZG9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBSkFYIFJlc3BvbmRlcid9ID0gJ1Jlc3BvbmRlZG9yIEFKQVggZGUgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQUpBWCBSZXNwb25kZXIgZm9yIFJpY2h0ZXh0Lid9ID0gJ1Jlc3BvbmRlZG9yIEFKQVggZGUgRkFRIHBhcmEgdGV4dG8gZW5yaXF1ZWNpZG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcmVhJ30gPSAnQXJlYSBkZSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFyZWEuJ30gPSAnw4FyZWEgZGUgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgRGVsZXRlLid9ID0gJ0JvcnJhciBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBFZGl0Lid9ID0gJ0VkaXRhciBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBIaXN0b3J5Lid9ID0gJ0hpc3RvcmlhbCBkZSBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBKb3VybmFsIE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICdMw61taXRlIHBhcmEgbGEgdmlzdGEgZ2VuZXJhbCDCq3BlcXVlw7FhwrsgZGUgbGEgQml0w6Fjb3JhIGRlIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJ0zDrW1pdGUgcGFyYSBsYSB2aXN0YSBnZW5lcmFsIMKrcGVxdWXDsWHCuyBkZSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIFByaW50Lid9ID0gJ0ltcHJpbWlyIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIHNlYXJjaCBiYWNrZW5kIHJvdXRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0gJ0VuY2FtaW5hZG9yIHBhcmEgbGEgYsO6c3F1ZWRhIGRlIEZBUSBlbiBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWVsZDQnfSA9ICdDYW1wbzQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmllbGQ1J30gPSAnQ2FtcG81JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bGwgRkFRJ30gPSAnRkFRIENvbXBsZXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0gJ0dydXBvIHBhcmEgbGEgYXByb2JhY2nDs24gZGUgbG9zIGFydMOtY3Vsb3MgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mIHRoaXMgRkFRJ30gPSAnSGlzdG9yaWEgZGUgZXN0ZSBhcnTDrWN1bG8gRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGFjdGl2YXRlZCwgRkFRIGFydGljbGVzIG9mIHN0YXR1cyB0eXBlIGludGVybmFsIGFyZSBhbHNvIHRha2VuIGludG8gYWNjb3VudCBmb3IgdGhlIGFwcHJvdmFsIHByb2Nlc3MuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jbHVkZSBpbnRlcm5hbCBmaWVsZHMgb24gYSBGQVEgYmFzZWQgVGlja2V0Lid9ID0gJ0luY2x1aXIgY2FtcG9zIGludGVybm9zIGVuIGxvcyB0aWNrZXRzIGJhc2Fkb3MgZW4gdW4gYXJ0w61jdWxvIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNsdWRlIHRoZSBuYW1lIG9mIGVhY2ggZmllbGQgaW4gYSBGQVEgYmFzZWQgVGlja2V0Lid9ID0gJ0luY2x1aXIgZWwgbm9tYnJlIGRlIGNhZGEgY2FtcG8gZW4gbG9zIHRpY2tldHMgYmFzYWRvcyBlbiB1biBhcnTDrWN1bG8gRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludGVyZmFjZXMgd2hlcmUgdGhlIHF1aWNrIHNlYXJjaCBzaG91bGQgYmUgc2hvd24uJ30gPSAnSW50ZXJmYWNlcyBkb25kZSBzZSBkZWJlIG1vc3RyYXIgbGEgYsO6c3F1ZWRhIHLDoXBpZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0pvdXJuYWwnfSA9ICdCaXTDoWNvcmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFuZ3VhZ2UgTWFuYWdlbWVudCd9ID0gJ0dlc3Rpw7NuIGRlIElkaW9tYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFuZ3VhZ2UgTWFuYWdlbWVudC4nfSA9ICdHZXN0acOzbiBkZSBJZGlvbWFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW1pdCBmb3IgdGhlIHNlYXJjaCB0byBidWlsZCB0aGUga2V5d29yZCBGQVEgYXJ0aWNsZSBsaXN0Lid9ID0gJ0zDrW1pdGUgZGUgbGEgYsO6c3F1ZWRhIHBhcmEgY29uc3RydWlyIGVsIGxpc3RhZG8gZGUgcGFsYWJyYXMgY2xhdmUgZGUgYXJ0w61jdWxvcyBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhpcyBGQVEgaXRlbSd9ID0gJ0VubGF6YXIgb3RybyBvYmplY3RvIGEgZXN0ZSBhcnTDrWN1bG8gRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2YgcXVldWUgbmFtZXMgZm9yIHdoaWNoIHRoZSByZWxhdGVkIGFydGljbGUgZmVhdHVyZSBpcyBlbmFibGVkLid9ID0KICAgICAgICAnTGlzdGEgZGUgbm9tYnJlcyBkZSBmaWxhcyBwYXJhIGxhcyBjdWFsZXMgbGEgZnVuY2lvbmFsaWRhZCBkZSBhcnTDrWN1bG9zIHJlbGFjaW9uYWRvcyBlc3TDoSBoYWJpbGl0YWRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIHN0YXRlIHR5cGVzIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdMaXN0YSBsb3MgdGlwb3MgZGUgZXN0YWRvcyBxdWUgcHVlZGVuIHNlciB1c2Fkb3MgZW4gbGEgaW50ZXJmYXogZGVsIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBzdGF0ZSB0eXBlcyB3aGljaCBjYW4gYmUgdXNlZCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTGlzdGEgbG9zIHRpcG9zIGRlIGVzdGFkb3MgcXVlIHB1ZWRlbiBzZXIgdXNhZG9zIGVuIGxhIGludGVyZmF6IGRlbCBjbGllbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIHN0YXRlIHR5cGVzIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTGlzdGEgbG9zIHRpcG9zIGRlIGVzdGFkb3MgcXVlIHB1ZWRlbiBzZXIgdXNhZG9zIGVuIGxhIGludGVyZmF6IHDDumJsaWNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb2FkZXIgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPSAnUmVnaXN0cm8gZGUgbcOzZHVsbyAiTG9hZGVyIiBlbiBsYSBpbnRlcmZheiBww7pibGljYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTsO6bWVybyBtw6F4aW1vIGRlIGFydMOtY3Vsb3MgRkFRIGEgbW9zdHJhciBlbiBsb3MgcmVzdWx0YWRvcyBkZWwgZXhwbG9yYWRvciBGQVEgZGUgbGEgaW50ZXJmYXogZGVsIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTsO6bWVybyBtw6F4aW1vIGRlIGFydMOtY3Vsb3MgRkFRIGEgbW9zdHJhciBlbiBsb3MgcmVzdWx0YWRvcyBkZWwgZXhwbG9yYWRvciBGQVEgZGUgbGEgaW50ZXJmYXogZGVsIGNsaWVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICdOw7ptZXJvIG3DoXhpbW8gZGUgYXJ0w61jdWxvcyBGQVEgYSBtb3N0cmFyIGVuIGxvcyByZXN1bHRhZG9zIGRlbCBleHBsb3JhZG9yIEZBUSBkZSBsYSBpbnRlcmZheiBww7pibGljYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIGpvdXJuYWwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ07Dum1lcm8gbcOheGltbyBkZSBhcnTDrWN1bG9zIEZBUSBhIG1vc3RyYXIgZW4gbGEgYml0w6Fjb3JhIGRlIEZBUSBlbiBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSByZXN1bHQgb2YgYSBzZWFyY2ggaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ07Dum1lcm8gbcOheGltbyBkZSBhcnTDrWN1bG9zIEZBUSBhIG1vc3RyYXIgY29tbyByZXN1bHRhZG8gZGUgdW5hIGLDunNxdWVkYSBlbiBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSByZXN1bHQgb2YgYSBzZWFyY2ggaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ07Dum1lcm8gbcOheGltbyBkZSBhcnTDrWN1bG9zIEZBUSBhIG1vc3RyYXIgY29tbyByZXN1bHRhZG8gZGUgdW5hIGLDunNxdWVkYSBlbiBsYSBpbnRlcmZheiBkZWwgY2xpZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgcmVzdWx0IG9mIGEgc2VhcmNoIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTsO6bWVybyBtw6F4aW1vIGRlIGFydMOtY3Vsb3MgRkFRIGEgbW9zdHJhciBjb21vIHJlc3VsdGFkbyBkZSB1bmEgYsO6c3F1ZWRhIGVuIGxhIGludGVyZmF6IHDDumJsaWNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgRXhwbG9yZXIgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1RhbWHDsW8gbcOheGltbyBkZWwgdMOtdHVsbyBlbiB1biBhcnTDrWN1bG8gIEZBUSBhIHNlciBtb3N0cmFkbyBlbiBlbCBFeHBsb3JhZG9yIGRlIEZBUXMgcXVlIHNlIG11ZXN0cmEgZW4gbGEgaW50ZXJmYXogZGVsIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIEV4cGxvcmVyIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICdUYW1hw7FvIG3DoXhpbW8gZGVsIHTDrXR1bG8gZW4gdW4gYXJ0w61jdWxvICBGQVEgYSBzZXIgbW9zdHJhZG8gZW4gZWwgRXhwbG9yYWRvciBkZSBGQVFzIHF1ZSBzZSBtdWVzdHJhIGVuIGxhIGludGVyZmF6IGRlbCBjbGllbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgRXhwbG9yZXIgaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICdUYW1hw7FvIG3DoXhpbW8gZGVsIHTDrXR1bG8gZW4gdW4gYXJ0w61jdWxvICBGQVEgYSBzZXIgbW9zdHJhZG8gZW4gZWwgRXhwbG9yYWRvciBkZSBGQVFzIHF1ZSBzZSBtdWVzdHJhIGVuIGxhIGludGVyZmF6IGFsIHDDumJsaWNvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgU2VhcmNoIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdUYW1hw7FvIG3DoXhpbW8gZGVsIHTDrXR1bG8gZW4gdW4gYXJ0w61jdWxvICBGQVEgYSBzZXIgbW9zdHJhZG8gZW4gZWwgQnVzY2Fkb3IgZGUgRkFRcyBxdWUgc2UgbXVlc3RyYSBlbiBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgU2VhcmNoIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICdUYW1hw7FvIG3DoXhpbW8gZGVsIHTDrXR1bG8gZW4gdW4gYXJ0w61jdWxvICBGQVEgYSBzZXIgbW9zdHJhZG8gZW4gZWwgQnVzY2Fkb3IgZGUgRkFRcyBxdWUgc2UgbXVlc3RyYSBlbiBsYSBpbnRlcmZheiBkZWwgY2xpZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIFNlYXJjaCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1RhbWHDsW8gbcOheGltbyBkZWwgdMOtdHVsbyBlbiB1biBhcnTDrWN1bG8gIEZBUSBhIHNlciBtb3N0cmFkbyBlbiBlbCBCdXNjYWRvciBkZSBGQVFzIHF1ZSBzZSBtdWVzdHJhIGVuIGxhIGludGVyZmF6IGFsIHDDumJsaWNvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgam91cm5hbCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnVGFtYcOxbyBtw6F4aW1vIGRlbCB0w610dWxvIGVuIHVuIGFydMOtY3VsbyAgRkFRIGEgc2VyIG1vc3RyYWRvIGVuIGVsIERpYXJpbyBkZSBOYXZlZ2FjacOzbiBkZSBGQVFzIHF1ZSBzZSBtdWVzdHJhIGVuIGxhIGludGVyZmF6IGRlbCBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBnZW5lcmF0ZSBIVE1MIE9wZW5TZWFyY2ggcHJvZmlsZSBmb3Igc2hvcnQgRkFRIHNlYXJjaCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTcOzZHVsbyBwYXJhIGdlbmVyYXIgZWwgcGVyZmlsIGh0bWwgIk9wZW5TZWFyY2giIHBhcmEgbGEgYsO6c3F1ZWRhIHLDoXBpZGEgZGUgRkFRIGVuIGxhIGludGVyZmFjZSBkZWwgY2xpZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGdlbmVyYXRlIEhUTUwgT3BlblNlYXJjaCBwcm9maWxlIGZvciBzaG9ydCBGQVEgc2VhcmNoIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTcOzZHVsbyBwYXJhIGdlbmVyYXIgZWwgcGVyZmlsIEhUTUwgT3BlblNlYXJjaCBwYXJhIGxhIGLDunNxdWVkYSBjb3J0YSBkZSBsYXMgRkFRIGVuIGxhIGludGVyZmF6IHDDumJsaWNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gZ2VuZXJhdGUgaHRtbCBPcGVuU2VhcmNoIHByb2ZpbGUgZm9yIHNob3J0IEZBUSBzZWFyY2guJ30gPQogICAgICAgICdNw7NkdWxvIHBhcmEgZ2VuZXJhciBlbCBwZXJmaWwgaHRtbCAiT3BlblNlYXJjaCIgcGFyYSBsYSBiw7pzcXVlZGEgcsOhcGlkYSBkZSBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBGQVEgQXJ0aWNsZS4nfSA9ICdOdWV2byBBcnTDrWN1bG8gRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgRkFRIGFydGljbGVzIG5lZWQgYXBwcm92YWwgYmVmb3JlIHRoZXkgZ2V0IHB1Ymxpc2hlZC4nfSA9ICdMb3MgbnVldm9zIGFydMOtY3Vsb3MgRkFRIHJlcXVpZXJlbiBhcHJvYmFjacOzbiBhbnRlcyBkZSBwdWJsaWNhcnNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICdOw7ptZXJvIGRlIGFydMOtY3Vsb3MgRkFRIGEgbW9zdHJhciBlbiBlbCBleHBsb3JhZG9yIGRlIEZBUSBkZSBsYSBpbnRlcmZheiBkZWwgY2xpZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ07Dum1lcm8gZGUgYXJ0w61jdWxvcyBGQVEgYSBtb3N0cmFyIGVuIGVsIGV4cGxvcmFkb3IgZGUgRkFRIGRlIGxhIGludGVyZmF6IHDDumJsaWNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBvbiBlYWNoIHBhZ2Ugb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICdOw7ptZXJvIGRlIGFydMOtY3Vsb3MgRkFRIGEgbW9zdHJhciBlbiBjYWRhIHDDoWdpbmEgZGUgbG9zIHJlc3VsdGFkb3MgZGUgdW5hIGLDunNxdWVkYSBlbiBsYSBpbnRlcmZheiBkZWwgY2xpZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgb24gZWFjaCBwYWdlIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ07Dum1lcm8gZGUgYXJ0w61jdWxvcyBGQVEgYSBtb3N0cmFyIGVuIGNhZGEgcMOhZ2luYSBkZSBsb3MgcmVzdWx0YWRvcyBkZSB1bmEgYsO6c3F1ZWRhIGVuIGxhIGludGVyZmF6IHDDumJsaWNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2Ygc2hvd24gaXRlbXMgaW4gbGFzdCBjaGFuZ2VzLid9ID0gJ07Dum1lcm8gZGUgZWxlbWVudG9zIGEgbW9zdHJhciBlbiDDumx0aW1vcyBjYW1iaW9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2Ygc2hvd24gaXRlbXMgaW4gbGFzdCBjcmVhdGVkLid9ID0gJ07Dum1lcm8gZGUgZWxlbWVudG9zIGEgbW9zdHJhciBlbiDDumx0aW1vcyBjcmVhZG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2Ygc2hvd24gaXRlbXMgaW4gdGhlIHRvcCAxMCBmZWF0dXJlLid9ID0gJ07Dum1lcm8gZGUgZWxlbWVudG9zIGEgbW9zdHJhciBlbiBlbCBUb3AgMTAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J091dHB1dCBmaWx0ZXIgdG8gYWRkIEphdmEtc2NyaXB0IHRvIEN1c3RvbWVyVGlja2V0TWVzc2FnZSBzY3JlZW4uJ30gPQogICAgICAgICdGaWx0cm8gZGUgc2FsaWRhIHBhcmEgYWdyZWdhciBKYXZhLVNjcmlwdCBhIGxhIHBhbnRhbGxhIEN1c3RvbWVyVGlja2V0TWVzc2FnZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3V0cHV0IGxpbWl0IGZvciB0aGUgcmVsYXRlZCBGQVEgYXJ0aWNsZXMuJ30gPSAnTMOtbWl0ZSBkZSBkZXNwbG9tZSBkZSBhcnTDrWN1bG9zIEZBUSByZWxhY2lvbmFkb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgRkFRIGl0ZW1zIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIEZBUSBqb3VybmFsIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnUGFyw6FtZXRyb3MgZGUgbGFzIHDDoWdpbmFzIChlbiBsYXMgcXVlIHNlIG11ZXN0cmFuIGxvcyBlbGVtZW50b3MgRkFRKSBkZSBsYSB2aXN0YSBnZW5lcmFsIHBlcXVlw7FhIGRlIGxhIGJpdMOhY29yYSBkZSBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIEZBUSBpdGVtcyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBGQVEgb3ZlcnZpZXcuJ30gPQogICAgICAgICdQYXLDoW1ldHJvcyBkZSBsYXMgcMOhZ2luYXMgKGVuIGxhcyBxdWUgc2UgbXVlc3RyYW4gbG9zIGVsZW1lbnRvcyBGQVEpIGRlIGxhIHZpc3RhIGdlbmVyYWwgZGUgRkFRIHBlcXVlw7FhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGlzIEZBUSd9ID0gJ0ltcHJpbWlyIGVzdGEgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBGQVEgUHJpbnQuJ30gPSAnSW1wcmltaXIgRkFRIFDDumJsaWNvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBGQVEgWm9vbS4nfSA9ICdEZXRhbGxlIEZBUSBQw7pibGljbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRIHNlYXJjaC4nfSA9ICdCw7pzcXVlZGEgRkFRIFDDumJsaWNvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBGQVEuJ30gPSAnRkFRIFDDumJsaWNvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1F1ZXVlIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0gJ0ZpbGEgcGFyYSBsYSBhcHJvYmFjacOzbiBkZSBsb3MgYXJ0w61jdWxvcyBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGVzIGZvciB2b3RpbmcuIEtleSBtdXN0IGJlIGluIHBlcmNlbnQuJ30gPSAnUG9uZGVyYWNpw7NuIHBhcmEgbGEgdm90YWNpw7NuLiBMYSBjbGF2ZSBkZWJlIGV4cHJlc2Fyc2UgZW4gcG9yY2VudGFqZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUyd9ID0gJ1AnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIEZBUSd9ID0gJ0LDunNxdWVkYSBkZSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIEZBUSBTbWFsbC4nfSA9ICdCw7pzcXVlZGEgcGVxdWXDsWEgZGUgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBGQVEuJ30gPSAnQsO6c3F1ZWRhIGRlIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGhvdyBtYW55IGl0ZW1zIHNob3VsZCBiZSBzaG93biBpbiBKb3VybmFsIE92ZXJ2aWV3ICJTbWFsbCIgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJ1NlbGVjY2lvbmFyIGN1w6FudG9zIGVsZW1lbnRvcyBkZWJlcsOhbiBzZXIgbW9zdHJhZG9zIGVuIGxhIHZpc3RhIGxhIHZpc3RhIGdlbmVyYWwgZGVsIGRpYXJpbyAicGVxdWXDsW8iIHBvciBvbWlzacOzbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGhvdyBtYW55IGl0ZW1zIHNob3VsZCBiZSBzaG93biBpbiBPdmVydmlldyAiU21hbGwiIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICdTZWxlY2Npb25hciBjdcOhbnRvcyBlbGVtZW50b3MgZGViZXLDoW4gc2VyIG1vc3RyYWRvcyBlbiBsYSB2aXN0YSBsYSB2aXN0YSBnZW5lcmFsICJwZXF1ZcOxYSIgcG9yIG9taXNpw7NuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBBZ2VudEZBUVpvb20uJ30gPQogICAgICAgICdFc3RhYmxlY2VyIGxhIGFsdHVyYSBwcmVkZXRlcm1pbmFkYSAoZW4gcMOteGVsZXMpIGRlIGxvcyBjYW1wb3MgSFRNTCDCq2lubGluZcK7IGRlIEFnZW50RkFRWm9vbSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBDdXN0b21lckZBUVpvb20gKGFuZCBQdWJsaWNGQVFab29tKS4nfSA9CiAgICAgICAgJ0VzdGFibGVjZXIgbGEgYWx0dXJhIHByZWRldGVybWluYWRhIChlbiBww614ZWxlcykgZGUgbG9zIGNhbXBvcyBIVE1MIMKraW5saW5lwrsgZGUgQ3VzdG9tZXJGQVFab29tICh5IFB1YmxpY0ZBUVpvb20pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBBZ2VudEZBUVpvb20uJ30gPQogICAgICAgICdFc3RhYmxlY2VyIGxhIGFsdHVyYSBtw6F4aW1hIChlbiBww614ZWxlcykgZGUgbG9zIGNhbXBvcyBIVE1MIMKraW5saW5lwrsgZGUgQWdlbnRGQVFab29tJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgbWF4aW11bSBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEN1c3RvbWVyRkFRWm9vbSAoYW5kIFB1YmxpY0ZBUVpvb20pLid9ID0KICAgICAgICAnRXN0YWJsZWNlciBsYSBhbHR1cmEgbcOheGltYSAoZW4gcMOteGVsZXMpIGRlIGxvcyBjYW1wb3MgSFRNTCDCq2lubGluZcK7IGRlIEN1c3RvbWVyRkFRWm9vbSAoeSBQdWJsaWNGQVFab29tKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyAiSW5zZXJ0IEZBUSBMaW5rIiBCdXR0b24gaW4gQWdlbnRGQVFab29tU21hbGwgZm9yIHB1YmxpYyBGQVEgQXJ0aWNsZXMuJ30gPQogICAgICAgICdNb3N0cmFyIGJvdMOzbiDCq0luc2VydGFyIGVubGFjZSBhIEZBUcK7IGVuIEFnZW50RkFRWm9vbVNtYWxsIHBhcmEgbG9zIGFydMOtY3Vsb3MgRkFRIHDDumJsaWNvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyAiSW5zZXJ0IEZBUSBUZXh0ICYgTGluayIgLyAiSW5zZXJ0IEZ1bGwgRkFRICYgTGluayIgQnV0dG9uIGluIEFnZW50RkFRWm9vbVNtYWxsIGZvciBwdWJsaWMgRkFRIEFydGljbGVzLid9ID0KICAgICAgICAnTW9zdHJhciBib3RvbmVzICJJbnNlcnRhciBUZXh0byB5IEVubGFjZSBkZSBsYSBGQVEiIC8gIkluc2VydGFyIEZBUSBDb21wbGV0YSB5IEVubGFjZSIgZW4gQWdlbnRGQVFab29tU21hbGwgcGFyYSBsYXMgZW50cmFkYXMgcMO6YmxpY2FzIGRlIGxhcyBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgIkluc2VydCBGQVEgVGV4dCIgLyAiSW5zZXJ0IEZ1bGwgRkFRIiBCdXR0b24gaW4gQWdlbnRGQVFab29tU21hbGwuJ30gPQogICAgICAgICdNb3N0cmFyIGVsIGJvdMOzbiAiSW5zZXJ0YXIgVGV4dG8gZGUgbGEgRkFRIiAvICJJbnRlcnRhciBGQVEgQ29tcGxldGEiIGVuIEFnZW50RkFRWm9vbVNtYWxsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IEZBUSBBcnRpY2xlIHdpdGggSFRNTC4nfSA9ICfCv01vc3RyYXIgY29udGVuaWRvIEhUTUwgZW4gbG9zIGFydMOtY3Vsb3MgRkFRPy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBGQVEgcGF0aCB5ZXMvbm8uJ30gPSAnwr9Nb3N0cmFyIGxhIHJ1dGEgZGUgbGEgRkFRPyBzw60vbm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgaW52YWxpZCBpdGVtcyBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTW9zdHJhciBlbnRyYWRhcyBpbnbDoWxpZGFzIGVuIGxvcyByZXN1bHRhZG9zIGRlbCBFeHBsb3JhZG9yIGRlIEZBUSBlbiBsYSBpbnRlcmZheiBkZWwgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGl0ZW1zIG9mIHN1YmNhdGVnb3JpZXMuJ30gPSAnwr9Nb3N0cmFyIGxvcyBlbGVtZW50b3MgZGUgbGFzIHN1YmNhdGVnb3LDrWFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGxhc3QgY2hhbmdlIGl0ZW1zIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICdNb3N0cmFyIGxvcyDDumx0aW1vcyBhcnTDrWN1bG9zIGFjdHVhbGl6YWRvcyBlbiBsYXMgaW50ZXJmYWNlcyBkZWZpbmlkYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgbGFzdCBjcmVhdGVkIGl0ZW1zIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICdNb3N0cmFyIGxvcyDDumx0aW1vcyBhcnTDrWN1bG9zIGNyZWFkb3MgZW4gbGFzIGludGVyZmFjZXMgZGVmaW5pZGFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHJlbGF0ZWQgYXJ0aWNsZXMgb24gc2VydmljZSBjaGFuZ2UgZXZlbiB3aXRoIGVtcHR5IHN1YmplY3QgYW5kIGJvZHkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB0aGUgc3RhcnMgZm9yIHRoZSBhcnRpY2xlcyB3aXRoIGEgcmF0aW5nIGVxdWFsIG9yIGdyZWF0ZXIgbGlrZSB0aGUgZGVmaW5lZCB2YWx1ZSAoc2V0IHZhbHVlIFwnMFwnIHRvIGRlYWN0aXZhdGUgdGhlIG91dHB1dCkuJ30gPQogICAgICAgICdNdWVzdHJhIGxhcyBlc3RyZWxsYXMgcGFyYSBsb3MgYXJ0w61jdWxvcyBjb24gdW5hIGNhbGlmaWNhY2nDs24gaWd1YWwgbyBzdXBlcmlvciBhbCB2YWxvciBkZWZpbmlkbyAoYWp1c3RlIGVsIHZhbG9yIFwnMFwnIHBhcmEgZGVzYWN0aXZhcikuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgdG9wIDEwIGl0ZW1zIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICdNb3N0cmFyIGxvcyBhcnTDrWN1bG9zIFRvcCAxMCBlbiBsYXMgaW50ZXJmYWNlcyBkZWZpbmlkYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgdm90aW5nIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICdNb3N0cmFyIGxhIHZvdGFjacOzbiBlbiBsYXMgaW50ZXJmYWNlcyBkZWZpbmlkYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBsaW5raW5nIGEgRkFRIHdpdGggYW5vdGhlciBvYmplY3QgaW4gdGhlIHpvb20gdmlldyBvZiBzdWNoIEZBUSBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTXVlc3RyYSB1biBlbmxhY2UgZW4gZWwgbWVuw7ogcXVlIHBlcm1pdGUgZW5sYXphciBhIHVuIGFydMOtY3VsbyBGQVEgY29uIG90cm8gb2JqZXRvIGVuIHN1IHZpc3RhIGFtcGxpYWRhIGRlIGVzYSBGQVEgZW4gbGEgaW50ZXJmYXogZGVsIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIHRvIGRlbGV0ZSBhIEZBUSBpbiBpdHMgem9vbSB2aWV3IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNdWVzdHJhIHVuIGVubGFjZSBlbiBlbCBtZW7DuiBxdWUgcGVybWl0ZSBib3JyYXIgdW4gYXJ0w61jdWxvIEZBUSBlbiBsYSB2aXN0YSBhbXBsaWFkYSBkZSBlc2EgRkFRIGVuIGxhIGludGVyZmF6IGRlbCBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSBGQVEgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTXVlc3RyYSB1biBlbmxhY2UgZW4gZWwgbWVuw7ogcGFyYSBhY2NlZGVyIGFsIGhpc3RvcmlhbCBkZSB1biBhcnTDrWN1bG8gRkFRIGVuIHN1IHZpc3RhIGFtcGxpYWRhIGVuIGxhIGludGVyZmF6IGRlbCBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgRkFRIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNdWVzdHJhIHVuIGVubGFjZSBlbiBlbCBtZW7DuiBwYXJhIGVkaXRhciB1biBhcnTDrWN1bG8gRkFRIGVuIHN1IHZpc3RhIGFtcGxpYWRhIGVuIGxhIGludGVyZmF6IGRlbCBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSBGQVEgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNdWVzdHJhIHVuIGVubGFjZSBlbiBlbCBtZW7DuiBwYXJhIHJldHJvY2VkZXIgZW4gbGEgdmlzdGEgYW1wbGlhZGEgZGUgRkFRIGVuIGxhIGludGVyZmF6IGRlbCBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIEZBUSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTXVlc3RyYSB1biBlbmxhY2UgZW4gZWwgbWVuw7ogcGFyYSBpbXByaW1pciB1biBhcnTDrWN1bG8gRkFRIGVuIHN1IHZpc3RhIGFtcGxpYWRhIGVuIGxhIGludGVyZmF6IGRlbCBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NvbHV0aW9uJ30gPSAnU29sdWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N5bXB0b20nfSA9ICdTw61udG9tYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZXh0IE9ubHknfSA9ICdTb2xvIFRleHRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBkZWZhdWx0IGxhbmd1YWdlcyBmb3IgdGhlIHJlbGF0ZWQgRkFRIGFydGljbGVzLid9ID0gJ0lkaW9tYXMgcG9yIGRlZmVjdG8gcGFyYSBsb3MgYXJ0w61jdWxvcyBGQVEgcmVsYWNpb25hZG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSBGQVEsIGUuZy4gRkFRIywgS0IjLCBNeUZBUSMuIFRoZSBkZWZhdWx0IGlzIEZBUSMuJ30gPQogICAgICAgICdFbCBpZGVudGlmaWNhZG9yIHBhcmEgdW5hIEZBUSwgcG9yIGVqZW1wbG8gRkFRIywgS0IjLCBNaUZBUSMuIEZBUSMgZXMgbGEgb3BjacOzbiBwb3Igb21pc2nDs24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBzZXR0aW5nIGRlZmluZXMgdGhhdCBhIFwnRkFRXCcgb2JqZWN0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciBcJ0ZBUVwnIG9iamVjdHMgdXNpbmcgdGhlIFwnTm9ybWFsXCcgbGluayB0eXBlLid9ID0KICAgICAgICAnRXN0ZSBhanVzdGUgZGVmaW5lIHF1ZSB1biBvYmpldG8gwqtGQVHCuyBwdWVkZSBlbmxhemFyc2UgY29uIG90cm9zIG9iamV0b3MgwqtGQVHCuyB1dGlsaXphbmRvIGVsIHRpcG8gZGUgZW5sYWNlIMKrTm9ybWFswrsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBkZWZpbmVzIHRoYXQgYSBcJ0ZBUVwnIG9iamVjdCBjYW4gYmUgbGlua2VkIHdpdGggb3RoZXIgXCdGQVFcJyBvYmplY3RzIHVzaW5nIHRoZSBcJ1BhcmVudENoaWxkXCcgbGluayB0eXBlLid9ID0KICAgICAgICAnRXN0ZSBhanVzdGUgZGVmaW5lIHF1ZSB1biBvYmpldG8gwqtGQVHCuyBwdWVkZSBlbmxhemFyc2UgY29uIG90cm9zIG9iamV0b3MgwqtGQVHCuyB1dGlsaXphbmRvIGVsIHRpcG8gZGUgZW5sYWNlIMKrUGFyZW50Q2hpbGTCuy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBzZXR0aW5nIGRlZmluZXMgdGhhdCBhIFwnRkFRXCcgb2JqZWN0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciBcJ1RpY2tldFwnIG9iamVjdHMgdXNpbmcgdGhlIFwnTm9ybWFsXCcgbGluayB0eXBlLid9ID0KICAgICAgICAnRXN0ZSBhanVzdGUgZGVmaW5lIHF1ZSB1biBvYmpldG8gwqtGQVHCuyBwdWVkZSBlbmxhemFyc2UgY29uIG90cm9zIG9iamV0b3MgwqtUaWNrZXTCuyB1dGlsaXphbmRvIGVsIHRpcG8gZGUgZW5sYWNlIMKrTm9ybWFswrsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBkZWZpbmVzIHRoYXQgYSBcJ0ZBUVwnIG9iamVjdCBjYW4gYmUgbGlua2VkIHdpdGggb3RoZXIgXCdUaWNrZXRcJyBvYmplY3RzIHVzaW5nIHRoZSBcJ1BhcmVudENoaWxkXCcgbGluayB0eXBlLid9ID0KICAgICAgICAnRXN0ZSBhanVzdGUgZGVmaW5lIHF1ZSB1biBvYmpldG8gwqtGQVHCuyBwdWVkZSBlbmxhemFyc2UgY29uIG90cm9zIG9iamV0b3MgwqtUaWNrZXTCuyB1dGlsaXphbmRvIGVsIHRpcG8gZGUgZW5sYWNlIMKrUGFyZW50Q2hpbGTCuy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IGJvZHkgZm9yIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlLid9ID0gJ0N1ZXJwbyBkZWwgdGlja2V0IHBhcmEgYXByb2JhY2nDs24gZGUgYXJ0w61jdWxvcyBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBzdWJqZWN0IGZvciBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZS4gUGVybWl0dGVkIG5vdGlmaWNhdGlvbiB0YWdzIGFyZSA8T1RPQk9fRkFRX05VTUJFUj4sIDxPVE9CT19GQVFfQ0FURUdPUllJRD4sIDxPVE9CT19GQVFfSVRFTUlEPj4gPE9UT0JPX0ZBUV9USVRMRT4gYW5kIDxPVE9CT19GQVFfU1RBVEVJRD4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG9vbGJhciBJdGVtIGZvciBhIHNob3J0Y3V0Lid9ID0gJ0VsZW1lbnRvIGRlIGxhIGJhcnJhIGRlIGhlcnJhbWllbnRhcyBwYXJhIHVuIGF0YWpvIChzaG9ydGN1dCkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2V4dGVybmFsIChjdXN0b21lciknfSA9ICdleHRlcm5vIChjbGllbnRlKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpbnRlcm5hbCAoYWdlbnQpJ30gPSAnaW50ZXJubyAoYWdlbnRlKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwdWJsaWMgKGFsbCknfSA9ICdww7pibGljbyAodG9kb3MpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3B1YmxpYyAocHVibGljKSd9ID0gJ3DDumJsaWNvIChww7pibGljbyknOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdObycsCiAgICAnT2snLAogICAgJ1NldHRpbmdzJywKICAgICdTdWJtaXQnLAogICAgJ1RoaXMgbWlnaHQgYmUgaGVscGZ1bCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Location="Kernel/Language/fa_FAQ.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmZhX0ZBUTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRQWRkCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIEFydGljbGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnS2V5d29yZHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRlZ29yeSBpcyByZXF1aXJlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwcm92YWwnfSA9ICfYqtin24zbjNivJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUNhdGVnb3J5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQ2F0ZWdvcnkgTWFuYWdlbWVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIENhdGVnb3J5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgRkFRIENhdGVnb3J5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBjYXRlZ29yeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0ZWdvcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDYXRlZ29yeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWJjYXRlZ29yeSBvZid9ID0gJ9iy24zYsSDZhdis2YXZiNi52YfigIzbjCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2Ugc2VsZWN0IGF0IGxlYXN0IG9uZSBwZXJtaXNzaW9uIGdyb3VwLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBncm91cHMgdGhhdCBjYW4gYWNjZXNzIGFydGljbGVzIGluIHRoaXMgY2F0ZWdvcnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dpbGwgYmUgc2hvd24gYXMgY29tbWVudCBpbiBFeHBsb3Jlci4nfSA9ICfYr9ixIEV4cGxvcmVyINio2Ycg2LXZiNix2Kog24zaqSDZhdiq2YYg2KrZiNi224zYrduMINmG2YXYp9uM2LQg2K/Yp9iv2Ycg2K7ZiNin2YfZhtivINi02K8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjYXRlZ29yeT8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgY2F0ZWdvcnkuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIEZBUSBhcnRpY2xlIGFuZC9vciBpcyBwYXJlbnQgb2YgYXQgbGVhc3Qgb25lIG90aGVyIGNhdGVnb3J5J30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBjYXRlZ29yeSBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgRkFRIGFydGljbGUocyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBjYXRlZ29yeSBpcyBwYXJlbnQgb2YgdGhlIGZvbGxvd2luZyBzdWJjYXRlZ29yaWVzJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUURlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIEZBUSBhcnRpY2xlPyd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEnfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRRXhwbG9yZXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBFeHBsb3Jlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydRdWljayBTZWFyY2gnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2lsZGNhcmRzIGFyZSBhbGxvd2VkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZHZhbmNlZCBTZWFyY2gnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3ViY2F0ZWdvcmllcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gc3ViY2F0ZWdvcmllcyBmb3VuZC4nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRSGlzdG9yeQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZid9ID0gJ9iz2YjYp9io2YInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBDb250ZW50J30gPSAn2YXYrdiq2YjYp9uMINiz2KfYqNmC2YcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRldGltZSd9ID0gJ9iy2YXYp9mGINin24zYrNin2K8gJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUpvdXJuYWxPdmVydmlld1NtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBGQVEgSm91cm5hbCBkYXRhIGZvdW5kLid9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFMYW5ndWFnZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIExhbmd1YWdlIE1hbmFnZW1lbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEZBUSBMYW5ndWFnZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEZBUSBMYW5ndWFnZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2UgdGhpcyBmZWF0dXJlIGlmIHlvdSB3YW50IHRvIHdvcmsgd2l0aCBtdWx0aXBsZSBsYW5ndWFnZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGxhbmd1YWdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBMYW5ndWFnZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IExhbmd1YWdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gbm90IGRlbGV0ZSB0aGlzIGxhbmd1YWdlLiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBGQVEgYXJ0aWNsZSEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGxhbmd1YWdlIGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBGQVEgQXJ0aWNsZShzKSd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFPdmVydmlld05hdkJhcgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29udGV4dCBTZXR0aW5ncyd9ID0gJ9iq2YbYuNuM2YXYp9iqINmF2YHYp9ivJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBhcnRpY2xlcyBwZXIgcGFnZSd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFPdmVydmlld1NtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBGQVEgZGF0YSBmb3VuZC4nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRUmVsYXRlZEFydGljbGVzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydvdXQgb2YgNSd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFTZWFyY2gKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0tleXdvcmQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSAoZS4gZy4gRXF1YWxzIDEwIG9yIEdyZWF0ZXJUaGFuIDYwKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRlIChlLiBnLiBFcXVhbHMgMjUlIG9yIEdyZWF0ZXJUaGFuIDc1JSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwcm92ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkIGJ5J30gPSAn2KLYrtix24zZhiDYqti624zbjNixINio2Ycg2YjYs9uM2YTZhyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDcmVhdGUgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDcmVhdGUgVGltZSAoYmV0d2VlbiknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ2hhbmdlIFRpbWUgKGJlZm9yZS9hZnRlciknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ2hhbmdlIFRpbWUgKGJldHdlZW4pJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVNlYXJjaE9wZW5TZWFyY2hEZXNjcmlwdGlvbkZ1bGx0ZXh0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVFGdWxsdGV4dCd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFTZWFyY2hTbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIFNlYXJjaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9maWxlIFNlbGVjdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWb3RlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHZvdGUgc2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWMgdm90ZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZS4gZy4gRXF1YWxzIDEwIG9yIEdyZWF0ZXJUaGFuIDYwJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gcmF0ZSBzZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpYyByYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuIGcuIEVxdWFscyAyNSUgb3IgR3JlYXRlclRoYW4gNzUlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENyZWF0ZSBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENoYW5nZSBUaW1lJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVpvb20KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJbmZvcm1hdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZXMnfSA9ICfYotix2KcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdm90ZXMgZm91bmQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHZvdGVzIGZvdW5kISBCZSB0aGUgZmlyc3Qgb25lIHRvIHJhdGUgdGhpcyBGQVEgYXJ0aWNsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG93bmxvYWQgQXR0YWNobWVudCd9ID0gJ9iv2LHbjNin2YHYqiDZvtuM2YjYs9iqJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIG9wZW4gbGlua3MgaW4gdGhlIGZvbGxvd2luZyBkZXNjcmlwdGlvbiBibG9ja3MsIHlvdSBtaWdodCBuZWVkIHRvIHByZXNzIEN0cmwgb3IgQ21kIG9yIFNoaWZ0IGtleSB3aGlsZSBjbGlja2luZyB0aGUgbGluayAoZGVwZW5kaW5nIG9uIHlvdXIgYnJvd3NlciBhbmQgT1MpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdyBoZWxwZnVsIHdhcyB0aGlzIGFydGljbGU/IFBsZWFzZSBnaXZlIHVzIHlvdXIgcmF0aW5nIGFuZCBoZWxwIHRvIGltcHJvdmUgdGhlIEZBUSBEYXRhYmFzZS4gVGhhbmsgWW91ISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J25vdCBoZWxwZnVsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3ZlcnkgaGVscGZ1bCd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFab29tU21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBGQVEgdGl0bGUgdG8gYXJ0aWNsZSBzdWJqZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGQVEgVGV4dCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRnVsbCBGQVEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZBUSBMaW5rJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGQVEgVGV4dCAmIExpbmsnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZ1bGwgRkFRICYgTGluayd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQ3VzdG9tZXJGQVFFeHBsb3JlcgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGF0ZXN0IHVwZGF0ZWQgRkFRIGFydGljbGVzJ30gPSAn2KLYrtix24zZhiDYp9mC2YTYp9mFINiq2LnYsduM2YEg2LTYr9mHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEZBUSBhcnRpY2xlcyBmb3VuZC4nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEN1c3RvbWVyRkFRUmVsYXRlZEFydGljbGVzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1pZ2h0IGJlIGhlbHBmdWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm91bmQgbm8gaGVscGZ1bCByZXNvdXJjZXMgZm9yIHRoZSBzdWJqZWN0IGFuZCB0ZXh0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlIGEgc3ViamVjdCBvciB0ZXh0IHRvIGdldCBhIGxpc3Qgb2YgaGVscGZ1bCByZXNvdXJjZXMuJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBDdXN0b21lckZBUVNlYXJjaAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnVsbHRleHQgc2VhcmNoIGluIEZBUSBhcnRpY2xlcyAoZS4gZy4gIkpvaG4qbiIgb3IgIldpbGwqIiknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSByZXN0cmljdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSBGQVEgYXJ0aWNsZXMgd2l0aCB2b3Rlcy4uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRlIHJlc3RyaWN0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IEZBUSBhcnRpY2xlcyB3aXRoIHJhdGUuLi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXN0cmljdGlvbnMnfSA9ICfZhdit2K/ZiNiv24zYquKAjNmH2KfbjCDYstmF2KfZhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IEZBUSBhcnRpY2xlcyBjcmVhdGVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgRkFRIGFydGljbGVzIGNyZWF0ZWQgYmV0d2Vlbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2gtUHJvZmlsZSBhcyBUZW1wbGF0ZT8nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEN1c3RvbWVyRkFRWm9vbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJ0aWNsZSBOdW1iZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIGZvciBhcnRpY2xlcyB3aXRoIGtleXdvcmQnfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IFB1YmxpY0ZBUVNlYXJjaE9wZW5TZWFyY2hEZXNjcmlwdGlvbkZBUU51bWJlcgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBQdWJsaWNGQVFTZWFyY2hSZXN1bHRTaG9ydAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQmFjayB0byBGQVEgRXhwbG9yZXInfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCBydyBwZXJtaXNzaW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjYXRlZ29yaWVzIGZvdW5kIHdoZXJlIHVzZXIgaGFzIHJlYWQvd3JpdGUgcGVybWlzc2lvbnMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRlZmF1bHQgbGFuZ3VhZ2UgZm91bmQgYW5kIGNhblwndCBjcmVhdGUgYSBuZXcgb25lLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFDYXRlZ29yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBDYXRlZ29yeUlEISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGNhdGVnb3J5IHNob3VsZCBoYXZlIGEgbmFtZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBjYXRlZ29yeSBhbHJlYWR5IGV4aXN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGNhdGVnb3J5IGFscmVhZHkgZXhpc3RzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBDYXRlZ29yeUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBjYXRlZ29yeSAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGNhdGVnb3J5IHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBjYXRlZ29yeSBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIENhdGVnb3J5J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gSXRlbUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSBubyBwZXJtaXNzaW9uIGZvciB0aGlzIGNhdGVnb3J5ISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBGQVEgYXJ0aWNsZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRRXhwbG9yZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBDYXRlZ29yeUlEICVzIGlzIGludmFsaWQuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUhpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIEl0ZW1JRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEhpc3RvcnknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRSm91cm5hbC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEpvdXJuYWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBjb25maWcgb3B0aW9uIEZBUTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZyBvcHRpb24gRkFROjpGcm9udGVuZDo6T3ZlcnZpZXcgbmVlZHMgdG8gYmUgYSBIQVNIIHJlZiEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjb25maWcgb3B0aW9uIGZvdW5kIGZvciB0aGUgdmlldyAiJXMiISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFMYW5ndWFnZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gTGFuZ3VhZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIG5hbWUgaXMgcmVxdWlyZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbGFuZ3VhZ2UgYWxyZWFkeSBleGlzdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGxhbmd1YWdlICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgbGFuZ3VhZ2UgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGxhbmd1YWdlIGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgTGFuZ3VhZ2UgJXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRUHJpbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc3VsdCd9ID0gJ9mG2KrbjNis2YcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCB1cGRhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIER5bmFtaWMgRmllbGRzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUVJpY2hUZXh0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyAlcyBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGxvYWQgTGFuZ3VhZ2VPYmplY3QhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gUmVzdWx0ISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgTnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgQ2hhbmdlZCBieSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSXRlbSBDcmVhdGUgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSXRlbSBDcmVhdGUgVGltZSAoYmV0d2VlbiknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ2hhbmdlIFRpbWUgKGJlZm9yZS9hZnRlciknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ2hhbmdlIFRpbWUgKGJldHdlZW4pJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VxdWFscyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmVhdGVyIHRoYW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JlYXRlciB0aGFuIGVxdWFscyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTbWFsbGVyIHRoYW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU21hbGxlciB0aGFuIGVxdWFscyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIEZpbGVJRCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhhbmtzIGZvciB5b3VyIHZvdGUhJ30gPSAn2KfYsiDYsdin24wg2LTZhdinINiz2b7Yp9iz2q/Ystin2LHbjNmFISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSBhbHJlYWR5IHZvdGVkISd9ID0gJ9i02YXYpyDZgtio2YTYpyDYsdin24wg2K/Yp9iv2YfigIzYp9uM2K8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHJhdGUgc2VsZWN0ZWQhJ30gPSAn2KfZhdiq24zYp9iyINix2Kcg2KfZhtiq2K7Yp9ioINmG2qnYsdiv2YfigIzYp9uM2K8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB2b3RpbmcgbWVjaGFuaXNtIGlzIG5vdCBlbmFibGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdm90ZSByYXRlIGlzIG5vdCBkZWZpbmVkISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQ3VzdG9tZXJGQVFQcmludC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgUHJpbnQnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0N1c3RvbWVyRkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGVkIGJldHdlZW4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0N1c3RvbWVyRkFRWm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBJdGVtSUQhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9QdWJsaWNGQVFFeHBsb3Jlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGVzIChuZXcgY3JlYXRlZCknfSA9ICfYp9iu2KjYp9ixIEZBUSAo2KzYr9uM2K/YpyDYp9uM2KzYp9ivINi02K/ZhyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGVzIChyZWNlbnRseSBjaGFuZ2VkKSd9ID0gJ9in2K7YqNin2LEgRkFRICjYrNiv24zYr9inINiq2LrbjNuM2LEg24zYp9mB2KrZhyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGVzIChUb3AgMTApJ30gPSAn2KfYrtio2KfYsSBGQVEgKNux27Ag2KrYp9uMINio2LHYqtixKSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvUHVibGljRkFRUlNTLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBUeXBlIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlIG11c3QgYmUgZWl0aGVyIExhc3RDcmVhdGUgb3IgTGFzdENoYW5nZSBvciBUb3AxMCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBSU1MgZmlsZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9IZWFkZXJNZXRhL0FnZW50RkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoRkFRRnVsbHRleHQpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvSGVhZGVyTWV0YS9DdXN0b21lckZBUVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgLSBDdXN0b21lciAoJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gQ3VzdG9tZXIgKEZBUUZ1bGx0ZXh0KSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0hlYWRlck1ldGEvUHVibGljRkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAtIFB1YmxpYyAoJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gUHVibGljIChGQVFGdWxsdGV4dCknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9MYXlvdXQvRkFRLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIHJhdGUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgYXJ0aWNsZSBpcyBlbXB0eSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGF0ZXN0IGNyZWF0ZWQgRkFRIGFydGljbGVzJ30gPSAn2KLYrtix24zZhiDYp9mC2YTYp9mFINin24zYrNin2K8g2LTYr9mHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvcCAxMCBGQVEgYXJ0aWNsZXMnfSA9ICfYqNin2YTYp9iq2LHbjNmGINux27Ag2YLZhNmFJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTGlua09iamVjdC9GQVEucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRlbnQgVHlwZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9EeW5hbWljRmllbGQvRHJpdmVyL0ZBUS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IHRoZSBhdHRyaWJ1dGUgd2hpY2ggRkFRcyB3aWxsIGJlIHNlYXJjaGVkIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4dGVybmFsLXNvdXJjZSBrZXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IHRoZSB0eXBlIG9mIGRpc3BsYXknfSA9ICcnOwoKICAgICMgRGF0YWJhc2UgWE1MIC8gU09QTSBEZWZpbml0aW9uOiBGQVEuc29wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW50ZXJuYWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZXh0ZXJuYWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncHVibGljJ30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBmaWx0ZXIgZm9yIEhUTUwgb3V0cHV0IHRvIGFkZCBsaW5rcyBiZWhpbmQgYSBkZWZpbmVkIHN0cmluZy4gVGhlIGVsZW1lbnQgSW1hZ2UgYWxsb3dzIHR3byBpbnB1dCBraW5kcy4gRmlyc3QgdGhlIG5hbWUgb2YgYW4gaW1hZ2UgKGUuZy4gZmFxLnBuZykuIEluIHRoaXMgY2FzZSB0aGUgT1RPQk8gaW1hZ2UgcGF0aCB3aWxsIGJlIHVzZWQuIFRoZSBzZWNvbmQgcG9zc2liaWxpdHkgaXMgdG8gaW5zZXJ0IHRoZSBsaW5rIHRvIHRoZSBpbWFnZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIGFydGljbGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ1NTIGNvbG9yIGZvciB0aGUgdm90aW5nIHJlc3VsdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgVGltZSBUbyBMZWF2ZSBmb3IgRkFRIGl0ZW1zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSBNYW5hZ2VtZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGVnb3J5IE1hbmFnZW1lbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBQcmludC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIFJlbGF0ZWQgQXJ0aWNsZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIFJlbGF0ZWQgQXJ0aWNsZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgc2VhcmNoLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlY2ltYWwgcGxhY2VzIG9mIHRoZSB2b3RpbmcgcmVzdWx0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IGNhdGVnb3J5IG5hbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbGFuZ3VhZ2UgZm9yIEZBUSBhcnRpY2xlcyBvbiBzaW5nbGUgbGFuZ3VhZ2UgbW9kZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBtYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgcHJpb3JpdHkgb2YgdGlja2V0cyBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXRlIGZvciBGQVEgZW50cnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdGUgb2YgdGlja2V0cyBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCB0eXBlIG9mIHRpY2tldHMgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgdmFsdWUgZm9yIHRoZSBBY3Rpb24gcGFyYW1ldGVyIGZvciB0aGUgcHVibGljIGZyb250ZW5kLiBUaGUgQWN0aW9uIHBhcmFtZXRlciBpcyB1c2VkIGluIHRoZSBzY3JpcHRzIG9mIHRoZSBzeXN0ZW0uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIEFjdGlvbnMgd2hlcmUgYSBzZXR0aW5ncyBidXR0b24gaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rZWQgb2JqZWN0cyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gUGxlYXNlIG5vdGUgdGhhdCB0aGVzZSBBY3Rpb25zIG11c3QgaGF2ZSByZWdpc3RlcmVkIHRoZSBmb2xsb3dpbmcgSlMgYW5kIENTUyBmaWxlczogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgYW5kIENvcmUuQWdlbnQuTGlua09iamVjdC5qcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgaWYgdGhlIEZBUSB0aXRsZSBzaG91bGQgYmUgY29uY2F0ZW5hdGVkIHRvIGFydGljbGUgc3ViamVjdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBGQVFzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IEZBUSBhdHRyaWJ1dGVzIGFuZCBkeW5hbWljIGZpZWxkcyAoRHluYW1pY0ZpZWxkX05hbWVYKSBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIEZBUSBqb3VybmFsLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBGQVEgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIGEgRkFRIHNlYXJjaCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gYSBGQVEgc2VhcmNoIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiBhIEZBUSBzZWFyY2ggb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzaG93biBGQVEgc2VhcmNoIGF0dHJpYnV0ZSBmb3IgRkFRIHNlYXJjaCBzY3JlZW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaGVpZ2h0IGZvciB0aGUgcmljaCB0ZXh0IGVkaXRvciBjb21wb25lbnQgZm9yIHRoaXMgc2NyZWVuLiBFbnRlciBudW1iZXIgKHBpeGVscykgb3IgcGVyY2VudCB2YWx1ZSAocmVsYXRpdmUpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGluZm9ybWF0aW9uIHRvIGJlIGluc2VydGVkIGluIGEgRkFRIGJhc2VkIFRpY2tldC4gIkZ1bGwgRkFRIiBpbmNsdWRlcyB0ZXh0LCBhdHRhY2htZW50cyBhbmQgaW5saW5lIGltYWdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZGFzaGJvYXJkIGJhY2tlbmQuICJMaW1pdCIgZGVmaW5lcyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgZGlzcGxheWVkIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCBhY2Nlc3MgdG8gdGhlIHBsdWdpbiAoZS4gZy4gR3JvdXA6IGFkbWluO2dyb3VwMTtncm91cDI7KS4gIkRlZmF1bHQiIGluZGljYXRlcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgRkFRIEV4cGxvcmVyLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIEZBUSBqb3VybmFsLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIEZBUSBzZWFyY2guIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB3aGVyZSB0aGUgXCdJbnNlcnQgRkFRXCcgbGluayB3aWxsIGJlIGRpc3BsYXllZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5pdGlvbiBvZiBGQVEgaXRlbSBmcmVlIHRleHQgZmllbGQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGlzIEZBUSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBvdmVydmlldyBzY3JlZW4gb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIG92ZXJ2aWV3IHNjcmVlbiBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHByaW50IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgcHJpbnQgc2NyZWVuIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBwcmludCBzY3JlZW4gb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBzZWFyY2ggc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBzZWFyY2ggc2NyZWVuIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBzZWFyY2ggc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc21hbGwgZm9ybWF0IG92ZXJ2aWV3IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHpvb20gc2NyZWVuIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSB6b29tIHNjcmVlbiBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoaXMgRkFRJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSBtdWx0aXBsZSBsYW5ndWFnZXMgb24gRkFRIG1vZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHNlcnZpY2UgYXNzaWdubWVudCBmb3IgRkFRcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHRoZSByZWxhdGVkIGFydGljbGUgZmVhdHVyZSBmb3IgdGhlIGN1c3RvbWVyIGZyb250ZW5kLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB2b3RpbmcgbWVjaGFuaXNtIG9uIEZBUSBtb2R1bGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4cGxvcmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBSkFYIFJlc3BvbmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQUpBWCBSZXNwb25kZXIgZm9yIFJpY2h0ZXh0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJlYSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJlYS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIERlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBIaXN0b3J5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSm91cm5hbCBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBQcmludC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIHNlYXJjaCBiYWNrZW5kIHJvdXRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWVsZDQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmllbGQ1J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bGwgRkFRJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mIHRoaXMgRkFRJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGFjdGl2YXRlZCwgRkFRIGFydGljbGVzIG9mIHN0YXR1cyB0eXBlIGludGVybmFsIGFyZSBhbHNvIHRha2VuIGludG8gYWNjb3VudCBmb3IgdGhlIGFwcHJvdmFsIHByb2Nlc3MuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jbHVkZSBpbnRlcm5hbCBmaWVsZHMgb24gYSBGQVEgYmFzZWQgVGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNsdWRlIHRoZSBuYW1lIG9mIGVhY2ggZmllbGQgaW4gYSBGQVEgYmFzZWQgVGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnRlcmZhY2VzIHdoZXJlIHRoZSBxdWljayBzZWFyY2ggc2hvdWxkIGJlIHNob3duLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydKb3VybmFsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhbmd1YWdlIE1hbmFnZW1lbnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFuZ3VhZ2UgTWFuYWdlbWVudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGltaXQgZm9yIHRoZSBzZWFyY2ggdG8gYnVpbGQgdGhlIGtleXdvcmQgRkFRIGFydGljbGUgbGlzdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayBhbm90aGVyIG9iamVjdCB0byB0aGlzIEZBUSBpdGVtJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2YgcXVldWUgbmFtZXMgZm9yIHdoaWNoIHRoZSByZWxhdGVkIGFydGljbGUgZmVhdHVyZSBpcyBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2Ygc3RhdGUgdHlwZXMgd2hpY2ggY2FuIGJlIHVzZWQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIHN0YXRlIHR5cGVzIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBzdGF0ZSB0eXBlcyB3aGljaCBjYW4gYmUgdXNlZCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb2FkZXIgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgam91cm5hbCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHJlc3VsdCBvZiBhIHNlYXJjaCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHJlc3VsdCBvZiBhIHNlYXJjaCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHJlc3VsdCBvZiBhIHNlYXJjaCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgRXhwbG9yZXIgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgRXhwbG9yZXIgaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgRXhwbG9yZXIgaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIFNlYXJjaCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBTZWFyY2ggaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgU2VhcmNoIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBqb3VybmFsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGdlbmVyYXRlIEhUTUwgT3BlblNlYXJjaCBwcm9maWxlIGZvciBzaG9ydCBGQVEgc2VhcmNoIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGdlbmVyYXRlIEhUTUwgT3BlblNlYXJjaCBwcm9maWxlIGZvciBzaG9ydCBGQVEgc2VhcmNoIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBnZW5lcmF0ZSBodG1sIE9wZW5TZWFyY2ggcHJvZmlsZSBmb3Igc2hvcnQgRkFRIHNlYXJjaC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgRkFRIEFydGljbGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBGQVEgYXJ0aWNsZXMgbmVlZCBhcHByb3ZhbCBiZWZvcmUgdGhleSBnZXQgcHVibGlzaGVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBvbiBlYWNoIHBhZ2Ugb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgb24gZWFjaCBwYWdlIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2Ygc2hvd24gaXRlbXMgaW4gbGFzdCBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2Ygc2hvd24gaXRlbXMgaW4gbGFzdCBjcmVhdGVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2Ygc2hvd24gaXRlbXMgaW4gdGhlIHRvcCAxMCBmZWF0dXJlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdXRwdXQgZmlsdGVyIHRvIGFkZCBKYXZhLXNjcmlwdCB0byBDdXN0b21lclRpY2tldE1lc3NhZ2Ugc2NyZWVuLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J091dHB1dCBsaW1pdCBmb3IgdGhlIHJlbGF0ZWQgRkFRIGFydGljbGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBGQVEgaXRlbXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgRkFRIGpvdXJuYWwgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgRkFRIGl0ZW1zIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIEZBUSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGlzIEZBUSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRIFByaW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRIFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBGQVEgc2VhcmNoLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydRdWV1ZSBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0ZXMgZm9yIHZvdGluZy4gS2V5IG11c3QgYmUgaW4gcGVyY2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggRkFRJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBGQVEgU21hbGwuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBGQVEuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBob3cgbWFueSBpdGVtcyBzaG91bGQgYmUgc2hvd24gaW4gSm91cm5hbCBPdmVydmlldyAiU21hbGwiIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGhvdyBtYW55IGl0ZW1zIHNob3VsZCBiZSBzaG93biBpbiBPdmVydmlldyAiU21hbGwiIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBkZWZhdWx0IGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gQWdlbnRGQVFab29tLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZGVmYXVsdCBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEN1c3RvbWVyRkFRWm9vbSAoYW5kIFB1YmxpY0ZBUVpvb20pLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgbWF4aW11bSBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEFnZW50RkFRWm9vbS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBDdXN0b21lckZBUVpvb20gKGFuZCBQdWJsaWNGQVFab29tKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93ICJJbnNlcnQgRkFRIExpbmsiIEJ1dHRvbiBpbiBBZ2VudEZBUVpvb21TbWFsbCBmb3IgcHVibGljIEZBUSBBcnRpY2xlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93ICJJbnNlcnQgRkFRIFRleHQgJiBMaW5rIiAvICJJbnNlcnQgRnVsbCBGQVEgJiBMaW5rIiBCdXR0b24gaW4gQWdlbnRGQVFab29tU21hbGwgZm9yIHB1YmxpYyBGQVEgQXJ0aWNsZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyAiSW5zZXJ0IEZBUSBUZXh0IiAvICJJbnNlcnQgRnVsbCBGQVEiIEJ1dHRvbiBpbiBBZ2VudEZBUVpvb21TbWFsbC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IEZBUSBBcnRpY2xlIHdpdGggSFRNTC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBGQVEgcGF0aCB5ZXMvbm8uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgaW52YWxpZCBpdGVtcyBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgaXRlbXMgb2Ygc3ViY2F0ZWdvcmllcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBsYXN0IGNoYW5nZSBpdGVtcyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgbGFzdCBjcmVhdGVkIGl0ZW1zIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyByZWxhdGVkIGFydGljbGVzIG9uIHNlcnZpY2UgY2hhbmdlIGV2ZW4gd2l0aCBlbXB0eSBzdWJqZWN0IGFuZCBib2R5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgdGhlIHN0YXJzIGZvciB0aGUgYXJ0aWNsZXMgd2l0aCBhIHJhdGluZyBlcXVhbCBvciBncmVhdGVyIGxpa2UgdGhlIGRlZmluZWQgdmFsdWUgKHNldCB2YWx1ZSBcJzBcJyB0byBkZWFjdGl2YXRlIHRoZSBvdXRwdXQpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgdG9wIDEwIGl0ZW1zIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB2b3RpbmcgaW4gZGVmaW5lZCBpbnRlcmZhY2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIEZBUSB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSB6b29tIHZpZXcgb2Ygc3VjaCBGQVEgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgdG8gZGVsZXRlIGEgRkFRIGluIGl0cyB6b29tIHZpZXcgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBoaXN0b3J5IG9mIGEgRkFRIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZWRpdCBhIEZBUSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSBGQVEgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgRkFRIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU29sdXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3ltcHRvbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZXh0IE9ubHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGRlZmF1bHQgbGFuZ3VhZ2VzIGZvciB0aGUgcmVsYXRlZCBGQVEgYXJ0aWNsZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIEZBUSwgZS5nLiBGQVEjLCBLQiMsIE15RkFRIy4gVGhlIGRlZmF1bHQgaXMgRkFRIy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnRkFRXCcgb2JqZWN0cyB1c2luZyB0aGUgXCdOb3JtYWxcJyBsaW5rIHR5cGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBzZXR0aW5nIGRlZmluZXMgdGhhdCBhIFwnRkFRXCcgb2JqZWN0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciBcJ0ZBUVwnIG9iamVjdHMgdXNpbmcgdGhlIFwnUGFyZW50Q2hpbGRcJyBsaW5rIHR5cGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBzZXR0aW5nIGRlZmluZXMgdGhhdCBhIFwnRkFRXCcgb2JqZWN0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciBcJ1RpY2tldFwnIG9iamVjdHMgdXNpbmcgdGhlIFwnTm9ybWFsXCcgbGluayB0eXBlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBkZWZpbmVzIHRoYXQgYSBcJ0ZBUVwnIG9iamVjdCBjYW4gYmUgbGlua2VkIHdpdGggb3RoZXIgXCdUaWNrZXRcJyBvYmplY3RzIHVzaW5nIHRoZSBcJ1BhcmVudENoaWxkXCcgbGluayB0eXBlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBib2R5IGZvciBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IHN1YmplY3QgZm9yIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlLiBQZXJtaXR0ZWQgbm90aWZpY2F0aW9uIHRhZ3MgYXJlIDxPVE9CT19GQVFfTlVNQkVSPiwgPE9UT0JPX0ZBUV9DQVRFR09SWUlEPiwgPE9UT0JPX0ZBUV9JVEVNSUQ+PiA8T1RPQk9fRkFRX1RJVExFPiBhbmQgPE9UT0JPX0ZBUV9TVEFURUlEPi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb29sYmFyIEl0ZW0gZm9yIGEgc2hvcnRjdXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2V4dGVybmFsIChjdXN0b21lciknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW50ZXJuYWwgKGFnZW50KSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwdWJsaWMgKGFsbCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncHVibGljIChwdWJsaWMpJ30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnTm8nLAogICAgJ09rJywKICAgICdTZXR0aW5ncycsCiAgICAnU3VibWl0JywKICAgICdUaGlzIG1pZ2h0IGJlIGhlbHBmdWwnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK</File>
        <File Location="Kernel/Language/fi_FAQ.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmZpX0ZBUTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRQWRkCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIEFydGljbGUnfSA9ICdMaXPDpMOkIFVLSyBhcnRpa2tlbGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnS2V5d29yZHMnfSA9ICdIYWt1c2FuYXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRlZ29yeSBpcyByZXF1aXJlZC4nfSA9ICdLYXRlZ29yaWEgb24gcGFrb2xsaW5lbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwcm92YWwnfSA9ICdIeXbDpGtzeW50w6QnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRQ2F0ZWdvcnkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBDYXRlZ29yeSBNYW5hZ2VtZW50J30gPSAnVUtLIGthdGVnb3Jpb2lkZW4gaGFsbGludGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEZBUSBDYXRlZ29yeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEZBUSBDYXRlZ29yeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgY2F0ZWdvcnknfSA9ICdMaXPDpMOkIGthdGVnb3JpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0ZWdvcnknfSA9ICdMaXPDpMOkIGthdGVnb3JpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENhdGVnb3J5J30gPSAnTXVva2thYSBrYXRlZ29yaWFhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1YmNhdGVnb3J5IG9mJ30gPSAnQWxha2F0ZWdvcmlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYXQgbGVhc3Qgb25lIHBlcm1pc3Npb24gZ3JvdXAuJ30gPSAnVmFsaXRzZSBhaW5ha2luIHlrc2kgb2lrZXVzcnlobcOkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBncm91cHMgdGhhdCBjYW4gYWNjZXNzIGFydGljbGVzIGluIHRoaXMgY2F0ZWdvcnkuJ30gPSAnQWdlbnR0aXJ5aG3DpHQsIGpvaWxsYSBvbiBww6TDpHN5IGFydGlra2VsZWloaW4gdMOkc3PDpCBrYXRlZ29yaWFzc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2lsbCBiZSBzaG93biBhcyBjb21tZW50IGluIEV4cGxvcmVyLid9ID0gJ07DpHl0ZXTDpMOkbiBrb21tZW50dGluYSBTZWxhaW1lc3NhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY2F0ZWdvcnk/J30gPSAnSGFsdWF0a28gdmFybWFzdGkgcG9pc3RhYSB0w6Rtw6RuIGthdGVnb3JpYW4/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gbm90IGRlbGV0ZSB0aGlzIGNhdGVnb3J5LiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBGQVEgYXJ0aWNsZSBhbmQvb3IgaXMgcGFyZW50IG9mIGF0IGxlYXN0IG9uZSBvdGhlciBjYXRlZ29yeSd9ID0KICAgICAgICAnRXQgdm9pIHBvaXN0YWEgdMOkdMOkIGthdGVnb3JpYWEhIFNlIHNpc8OkbHTDpMOkIGpva28gYXJ0aWtrZWxlaXRhIHRhaSBzZSBvbiB0b2lzZW4ga2F0ZWdvcmlhbiBpc8OkbnTDpGthdGVnb3JpYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBjYXRlZ29yeSBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgRkFRIGFydGljbGUocyknfSA9ICdTZXVyYWF2YXQgYXJ0aWtrZWxpdCBrdXVsdXZhdCB0w6Row6RuIGthdGVnb3JpYWFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY2F0ZWdvcnkgaXMgcGFyZW50IG9mIHRoZSBmb2xsb3dpbmcgc3ViY2F0ZWdvcmllcyd9ID0gJ07DpG3DpCBrYXRlZ29yaWF0IG92YXQgdMOkbcOkbiBrYXRlZ29yaWFuIGFsYWthdGVnb3Jpb2l0YSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFEZWxldGUKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBGQVEgYXJ0aWNsZT8nfSA9ICdIYWx1YXRrbyB2YXJtYXN0aSBwb2lzdGFhIHTDpG3DpG4gYXJ0aWtrZWxpbj8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRJ30gPSAnVUtLJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUV4cGxvcmVyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgRXhwbG9yZXInfSA9ICdTZWxhaW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVpY2sgU2VhcmNoJ30gPSAnUGlrYWhha3UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2lsZGNhcmRzIGFyZSBhbGxvd2VkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZHZhbmNlZCBTZWFyY2gnfSA9ICdNb25pcHVvbGluZW4gaGFrdSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWJjYXRlZ29yaWVzJ30gPSAnQWxha2F0ZWdvcmlhdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZXMnfSA9ICdBcnRpa2tlbGl0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHN1YmNhdGVnb3JpZXMgZm91bmQuJ30gPSAnRWkgYWxha2F0ZWdvcmlvaXRhLic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFIaXN0b3J5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mJ30gPSAnSGlzdG9yaWE6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgQ29udGVudCd9ID0gJ1RhcGFodHVtYXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRldGltZSd9ID0gJ0x1b250aWFpa2EnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRSm91cm5hbE92ZXJ2aWV3U21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEZBUSBKb3VybmFsIGRhdGEgZm91bmQuJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUxhbmd1YWdlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgTGFuZ3VhZ2UgTWFuYWdlbWVudCd9ID0gJ1VLSyBraWVsdGVuIGhhbGxpbnRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBGQVEgTGFuZ3VhZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBGQVEgTGFuZ3VhZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlIHRoaXMgZmVhdHVyZSBpZiB5b3Ugd2FudCB0byB3b3JrIHdpdGggbXVsdGlwbGUgbGFuZ3VhZ2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBsYW5ndWFnZSd9ID0gJ0xpc8Okw6Qga2llbGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIExhbmd1YWdlJ30gPSAnTGlzw6TDpCBraWVsaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IExhbmd1YWdlJ30gPSAnTXVva2thYSBraWVsdMOkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gbm90IGRlbGV0ZSB0aGlzIGxhbmd1YWdlLiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBGQVEgYXJ0aWNsZSEnfSA9CiAgICAgICAgJ0V0IHZvaSBwb2lzdGFhIHTDpHTDpCBraWVsdMOkLiBBaW5ha2luIHlrc2kgYXJ0aWtrZWxpIGvDpHl0dMOkw6QgdMOkdMOkIGtpZWx0w6QhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbGFuZ3VhZ2UgaXMgdXNlZCBpbiB0aGUgZm9sbG93aW5nIEZBUSBBcnRpY2xlKHMpJ30gPSAnU2V1cmFhdmF0IGFydGlra2VsaXQga8OkeXR0w6R2w6R0IHTDpHTDpCBraWVsdMOkJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUU92ZXJ2aWV3TmF2QmFyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBhcnRpY2xlcyBwZXIgcGFnZSd9ID0gJ0FydGlra2VsZWl0YSBwZXIgc2l2dSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFPdmVydmlld1NtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBGQVEgZGF0YSBmb3VuZC4nfSA9ICdZaHTDpMOkbiBhcnRpa2tlbGlhIGVpIGzDtnl0eW55dCc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFSZWxhdGVkQXJ0aWNsZXMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J291dCBvZiA1J30gPSAnLyA1JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVNlYXJjaAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnS2V5d29yZCd9ID0gJ0hha3VzYW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGUgKGUuIGcuIEVxdWFscyAxMCBvciBHcmVhdGVyVGhhbiA2MCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0ZSAoZS4gZy4gRXF1YWxzIDI1JSBvciBHcmVhdGVyVGhhbiA3NSUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FwcHJvdmVkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgY2hhbmdlZCBieSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDcmVhdGUgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDcmVhdGUgVGltZSAoYmV0d2VlbiknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ2hhbmdlIFRpbWUgKGJlZm9yZS9hZnRlciknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ2hhbmdlIFRpbWUgKGJldHdlZW4pJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVNlYXJjaE9wZW5TZWFyY2hEZXNjcmlwdGlvbkZ1bGx0ZXh0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVFGdWxsdGV4dCd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFTZWFyY2hTbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIFNlYXJjaCd9ID0gJ1VLSyBoYWt1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2ZpbGUgU2VsZWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdm90ZSBzZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpYyB2b3Rlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlLiBnLiBFcXVhbHMgMTAgb3IgR3JlYXRlclRoYW4gNjAnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyByYXRlIHNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmljIHJhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZS4gZy4gRXF1YWxzIDI1JSBvciBHcmVhdGVyVGhhbiA3NSUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ3JlYXRlIFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ2hhbmdlIFRpbWUnfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRWm9vbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEluZm9ybWF0aW9uJ30gPSAnVUtLIHRpZWRvdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRpbmcnfSA9ICdBcnZvc3RlbHV0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGVzJ30gPSAnw4TDpG5lc3R5a3NldCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB2b3RlcyBmb3VuZCEnfSA9ICdFaSDDpMOkbmnDpCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdm90ZXMgZm91bmQhIEJlIHRoZSBmaXJzdCBvbmUgdG8gcmF0ZSB0aGlzIEZBUSBhcnRpY2xlLid9ID0gJ0VpIGFubmV0dHVqYSDDpMOkbmnDpCEgw4TDpG5lc3TDpCB0w6R0w6QgYXJ0aWtrZWxpYSBlbnNpbW3DpGlzZW7DpC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG93bmxvYWQgQXR0YWNobWVudCd9ID0gJ0xhdGFhIGxpaXRldGllZG9zdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gb3BlbiBsaW5rcyBpbiB0aGUgZm9sbG93aW5nIGRlc2NyaXB0aW9uIGJsb2NrcywgeW91IG1pZ2h0IG5lZWQgdG8gcHJlc3MgQ3RybCBvciBDbWQgb3IgU2hpZnQga2V5IHdoaWxlIGNsaWNraW5nIHRoZSBsaW5rIChkZXBlbmRpbmcgb24geW91ciBicm93c2VyIGFuZCBPUykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG93IGhlbHBmdWwgd2FzIHRoaXMgYXJ0aWNsZT8gUGxlYXNlIGdpdmUgdXMgeW91ciByYXRpbmcgYW5kIGhlbHAgdG8gaW1wcm92ZSB0aGUgRkFRIERhdGFiYXNlLiBUaGFuayBZb3UhJ30gPQogICAgICAgICdLdWlua2EgaHnDtmR5bGxpbmVuIHTDpG3DpCBhcnRpa2tlbGkgb2xpPyBBcnZvc3RlbGUgYXJ0aWtrZWxpLCBqb3R0YSB2b2ltbWUga2VoaXR0w6TDpCBVS0stdGlldG9rYW50YWFtbWUuIEtpaXRvcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnbm90IGhlbHBmdWwnfSA9ICdoecO2ZHl0w7ZuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3ZlcnkgaGVscGZ1bCd9ID0gJ2h5w7ZkeWxsaW5lbic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFab29tU21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBGQVEgdGl0bGUgdG8gYXJ0aWNsZSBzdWJqZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGQVEgVGV4dCd9ID0gJ0xpc8Okw6QgVUtLIHRla3N0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRnVsbCBGQVEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZBUSBMaW5rJ30gPSAnTGlzw6TDpCBVS0sgbGlua2tpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGQVEgVGV4dCAmIExpbmsnfSA9ICdMaXPDpMOkIFVLSyB0ZWtzdGkgamEgbGlua2tpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGdWxsIEZBUSAmIExpbmsnfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEN1c3RvbWVyRkFRRXhwbG9yZXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhdGVzdCB1cGRhdGVkIEZBUSBhcnRpY2xlcyd9ID0gJ1ZpaW1la3NpIHDDpGl2aXRldHl0IGFydGlra2VsaXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gRkFRIGFydGljbGVzIGZvdW5kLid9ID0gJ1lodMOkw6RuIGFydGlra2VsaWEgZWkgbMO2eXR5bnl0Lic7CgogICAgIyBUZW1wbGF0ZTogQ3VzdG9tZXJGQVFSZWxhdGVkQXJ0aWNsZXMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbWlnaHQgYmUgaGVscGZ1bCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3VuZCBubyBoZWxwZnVsIHJlc291cmNlcyBmb3IgdGhlIHN1YmplY3QgYW5kIHRleHQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGUgYSBzdWJqZWN0IG9yIHRleHQgdG8gZ2V0IGEgbGlzdCBvZiBoZWxwZnVsIHJlc291cmNlcy4nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEN1c3RvbWVyRkFRU2VhcmNoCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGdWxsdGV4dCBzZWFyY2ggaW4gRkFRIGFydGljbGVzIChlLiBnLiAiSm9obipuIiBvciAiV2lsbCoiKSd9ID0gJ0hhZSBhcnRpa2tlbGVpc3RhIChlc2ltLiAiTWF0dGkqIiB0YWkgIk1laWsqbmVuIiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSByZXN0cmljdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSBGQVEgYXJ0aWNsZXMgd2l0aCB2b3Rlcy4uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRlIHJlc3RyaWN0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IEZBUSBhcnRpY2xlcyB3aXRoIHJhdGUuLi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXN0cmljdGlvbnMnfSA9ICdBaWthcmFqb2l0dXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSBGQVEgYXJ0aWNsZXMgY3JlYXRlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IEZBUSBhcnRpY2xlcyBjcmVhdGVkIGJldHdlZW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoLVByb2ZpbGUgYXMgVGVtcGxhdGU/J30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBDdXN0b21lckZBUVpvb20KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FydGljbGUgTnVtYmVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBmb3IgYXJ0aWNsZXMgd2l0aCBrZXl3b3JkJ30gPSAnRXRzaSBhcnRpa2tlbGVqYSBoYWt1c2FuYWxsYSc7CgogICAgIyBUZW1wbGF0ZTogUHVibGljRkFRU2VhcmNoT3BlblNlYXJjaERlc2NyaXB0aW9uRkFRTnVtYmVyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMnfSA9ICdKdWxraW5lbic7CgogICAgIyBUZW1wbGF0ZTogUHVibGljRkFRU2VhcmNoUmVzdWx0U2hvcnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0JhY2sgdG8gRkFRIEV4cGxvcmVyJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUFkZC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgcncgcGVybWlzc2lvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY2F0ZWdvcmllcyBmb3VuZCB3aGVyZSB1c2VyIGhhcyByZWFkL3dyaXRlIHBlcm1pc3Npb25zISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkZWZhdWx0IGxhbmd1YWdlIGZvdW5kIGFuZCBjYW5cJ3QgY3JlYXRlIGEgbmV3IG9uZS4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRQ2F0ZWdvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgQ2F0ZWdvcnlJRCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRlZ29yeSBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAnS2F0ZWdvcmlhbGxhIHR1bGVlIG9sbGEgbmltaSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBjYXRlZ29yeSBhbHJlYWR5IGV4aXN0cyd9ID0gJ1TDpG3DpCBrYXRlZ29yaWEgb24gam8gb2xlbWFzc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBjYXRlZ29yeSBhbHJlYWR5IGV4aXN0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQ2F0ZWdvcnlJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgY2F0ZWdvcnkgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBjYXRlZ29yeSB1cGRhdGVkISd9ID0gJ0thdGVnb3JpYSBww6Rpdml0ZXR0eSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGNhdGVnb3J5IGFkZGVkISd9ID0gJ0thdGVnb3JpYSBsaXPDpHR0eSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIENhdGVnb3J5J30gPSAnUG9pc3RhIGthdGVnb3JpYSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEl0ZW1JRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgbm8gcGVybWlzc2lvbiBmb3IgdGhpcyBjYXRlZ29yeSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgRkFRIGFydGljbGUgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUV4cGxvcmVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgQ2F0ZWdvcnlJRCAlcyBpcyBpbnZhbGlkLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBJdGVtSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBIaXN0b3J5J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUpvdXJuYWwucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBKb3VybmFsJ30gPSAnVUtLIGFpa2Fqw6RyamVzdHlzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgY29uZmlnIG9wdGlvbiBGQVE6OkZyb250ZW5kOjpPdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWcgb3B0aW9uIEZBUTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3IG5lZWRzIHRvIGJlIGEgSEFTSCByZWYhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY29uZmlnIG9wdGlvbiBmb3VuZCBmb3IgdGhlIHZpZXcgIiVzIiEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRTGFuZ3VhZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIExhbmd1YWdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBuYW1lIGlzIHJlcXVpcmVkISd9ID0gJ05pbWkgb24gcGFrb2xsaW5lbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBsYW5ndWFnZSBhbHJlYWR5IGV4aXN0cyEnfSA9ICdUw6Rtw6Qga2llbGkgb24gam8gb2xlbWFzc2EhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGxhbmd1YWdlICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgbGFuZ3VhZ2UgdXBkYXRlZCEnfSA9ICdLaWVsaSBww6Rpdml0ZXR0eSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGxhbmd1YWdlIGFkZGVkISd9ID0gJ0tpZWxpIGxpc8OkdHR5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBMYW5ndWFnZSAlcyd9ID0gJ1BvaXN0YSBraWVsaSAlcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFQcmludC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzdWx0J30gPSAnVmFzdGF1cyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IHVwZGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgRHluYW1pYyBGaWVsZHMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRUmljaFRleHQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vICVzIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgbG9hZCBMYW5ndWFnZU9iamVjdCEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBSZXN1bHQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBOdW1iZXInfSA9ICdVS0sgbnVtZXJvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgQ2hhbmdlZCBieSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSXRlbSBDcmVhdGUgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSXRlbSBDcmVhdGUgVGltZSAoYmV0d2VlbiknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ2hhbmdlIFRpbWUgKGJlZm9yZS9hZnRlciknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ2hhbmdlIFRpbWUgKGJldHdlZW4pJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VxdWFscyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmVhdGVyIHRoYW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JlYXRlciB0aGFuIGVxdWFscyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTbWFsbGVyIHRoYW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU21hbGxlciB0aGFuIGVxdWFscyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIEZpbGVJRCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhhbmtzIGZvciB5b3VyIHZvdGUhJ30gPSAnS2lpdG9zIGFydm9zdGVsdXN0YXNpISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSBhbHJlYWR5IHZvdGVkISd9ID0gJ09sZXQgam8gYXJ2b3N0ZWxsdXQgdMOkbcOkbiBhcnRpa2tlbGluISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyByYXRlIHNlbGVjdGVkISd9ID0gJ0VpIHZhbGl0dHVhIGFydmlvdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHZvdGluZyBtZWNoYW5pc20gaXMgbm90IGVuYWJsZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB2b3RlIHJhdGUgaXMgbm90IGRlZmluZWQhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9DdXN0b21lckZBUVByaW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBQcmludCd9ID0gJ1R1bG9zdGEgYXJ0aWtrZWxpJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9DdXN0b21lckZBUVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBiZXR3ZWVuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9DdXN0b21lckZBUVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgSXRlbUlEISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvUHVibGljRkFRRXhwbG9yZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlcyAobmV3IGNyZWF0ZWQpJ30gPSAnQXJ0aWtrZWxpICh1dWRldCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGVzIChyZWNlbnRseSBjaGFuZ2VkKSd9ID0gJ0FydGlra2VsaSAocMOkaXZpdGV0dHkgw6Rza2V0dMOkaW4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlcyAoVG9wIDEwKSd9ID0gJ0FydGlra2VsaXQgKFRvcCAxMCknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL1B1YmxpY0ZBUVJTUy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gVHlwZSBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZSBtdXN0IGJlIGVpdGhlciBMYXN0Q3JlYXRlIG9yIExhc3RDaGFuZ2Ugb3IgVG9wMTAhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBjcmVhdGUgUlNTIGZpbGUhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvSGVhZGVyTWV0YS9BZ2VudEZBUVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEZBUUZ1bGx0ZXh0KSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0hlYWRlck1ldGEvQ3VzdG9tZXJGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gQ3VzdG9tZXIgKCVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAtIEN1c3RvbWVyIChGQVFGdWxsdGV4dCknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9IZWFkZXJNZXRhL1B1YmxpY0ZBUVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgLSBQdWJsaWMgKCVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAtIFB1YmxpYyAoRkFRRnVsbHRleHQpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTGF5b3V0L0ZBUS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCByYXRlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGFydGljbGUgaXMgZW1wdHkhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhdGVzdCBjcmVhdGVkIEZBUSBhcnRpY2xlcyd9ID0gJ1ZpaW1la3NpIGp1bGthaXN0dXQgYXJ0aWtrZWxpdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3AgMTAgRkFRIGFydGljbGVzJ30gPSAnVG9wIDEwIGFydGlra2VsaXQnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9MaW5rT2JqZWN0L0ZBUS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29udGVudCBUeXBlJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0R5bmFtaWNGaWVsZC9Ecml2ZXIvRkFRLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgdGhlIGF0dHJpYnV0ZSB3aGljaCBGQVFzIHdpbGwgYmUgc2VhcmNoZWQgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXh0ZXJuYWwtc291cmNlIGtleSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgdGhlIHR5cGUgb2YgZGlzcGxheSd9ID0gJyc7CgogICAgIyBEYXRhYmFzZSBYTUwgLyBTT1BNIERlZmluaXRpb246IEZBUS5zb3BtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpbnRlcm5hbCd9ID0gJ3Npc8OkaW5lbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydleHRlcm5hbCd9ID0gJ3Vsa29pbmVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3B1YmxpYyd9ID0gJ2p1bGtpbmVuJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBmaWx0ZXIgZm9yIEhUTUwgb3V0cHV0IHRvIGFkZCBsaW5rcyBiZWhpbmQgYSBkZWZpbmVkIHN0cmluZy4gVGhlIGVsZW1lbnQgSW1hZ2UgYWxsb3dzIHR3byBpbnB1dCBraW5kcy4gRmlyc3QgdGhlIG5hbWUgb2YgYW4gaW1hZ2UgKGUuZy4gZmFxLnBuZykuIEluIHRoaXMgY2FzZSB0aGUgT1RPQk8gaW1hZ2UgcGF0aCB3aWxsIGJlIHVzZWQuIFRoZSBzZWNvbmQgcG9zc2liaWxpdHkgaXMgdG8gaW5zZXJ0IHRoZSBsaW5rIHRvIHRoZSBpbWFnZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIGFydGljbGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ1NTIGNvbG9yIGZvciB0aGUgdm90aW5nIHJlc3VsdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgVGltZSBUbyBMZWF2ZSBmb3IgRkFRIGl0ZW1zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSBNYW5hZ2VtZW50J30gPSAnS2F0ZWdvcmlhaGFsbGludGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0ZWdvcnkgTWFuYWdlbWVudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIFByaW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgUmVsYXRlZCBBcnRpY2xlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgUmVsYXRlZCBBcnRpY2xlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBzZWFyY2guJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVjaW1hbCBwbGFjZXMgb2YgdGhlIHZvdGluZyByZXN1bHQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgY2F0ZWdvcnkgbmFtZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBsYW5ndWFnZSBmb3IgRkFRIGFydGljbGVzIG9uIHNpbmdsZSBsYW5ndWFnZSBtb2RlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG1heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBwcmlvcml0eSBvZiB0aWNrZXRzIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdGUgZm9yIEZBUSBlbnRyeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0ZSBvZiB0aWNrZXRzIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHR5cGUgb2YgdGlja2V0cyBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCB2YWx1ZSBmb3IgdGhlIEFjdGlvbiBwYXJhbWV0ZXIgZm9yIHRoZSBwdWJsaWMgZnJvbnRlbmQuIFRoZSBBY3Rpb24gcGFyYW1ldGVyIGlzIHVzZWQgaW4gdGhlIHNjcmlwdHMgb2YgdGhlIHN5c3RlbS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgQWN0aW9ucyB3aGVyZSBhIHNldHRpbmdzIGJ1dHRvbiBpcyBhdmFpbGFibGUgaW4gdGhlIGxpbmtlZCBvYmplY3RzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBQbGVhc2Ugbm90ZSB0aGF0IHRoZXNlIEFjdGlvbnMgbXVzdCBoYXZlIHJlZ2lzdGVyZWQgdGhlIGZvbGxvd2luZyBKUyBhbmQgQ1NTIGZpbGVzOiBDb3JlLkFsbG9jYXRpb25MaXN0LmNzcywgQ29yZS5VSS5BbGxvY2F0aW9uTGlzdC5qcywgQ29yZS5VSS5UYWJsZS5Tb3J0LmpzLCBDb3JlLkFnZW50LlRhYmxlRmlsdGVycy5qcyBhbmQgQ29yZS5BZ2VudC5MaW5rT2JqZWN0LmpzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSBpZiB0aGUgRkFRIHRpdGxlIHNob3VsZCBiZSBjb25jYXRlbmF0ZWQgdG8gYXJ0aWNsZSBzdWJqZWN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB3aGljaCBjb2x1bW5zIGFyZSBzaG93biBpbiB0aGUgbGlua2VkIEZBUXMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGU6IE9ubHkgRkFRIGF0dHJpYnV0ZXMgYW5kIGR5bmFtaWMgZmllbGRzIChEeW5hbWljRmllbGRfTmFtZVgpIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgRkFRIGpvdXJuYWwuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIEZBUSBsaXN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gYSBGQVEgc2VhcmNoIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiBhIEZBUSBzZWFyY2ggb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIGEgRkFRIHNlYXJjaCBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIHRoZSBGQVEgRXhwbG9yZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIHRoZSBGQVEgRXhwbG9yZXIgb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIHRoZSBGQVEgRXhwbG9yZXIgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNob3duIEZBUSBzZWFyY2ggYXR0cmlidXRlIGZvciBGQVEgc2VhcmNoIHNjcmVlbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBoZWlnaHQgZm9yIHRoZSByaWNoIHRleHQgZWRpdG9yIGNvbXBvbmVudCBmb3IgdGhpcyBzY3JlZW4uIEVudGVyIG51bWJlciAocGl4ZWxzKSBvciBwZXJjZW50IHZhbHVlIChyZWxhdGl2ZSkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaW5mb3JtYXRpb24gdG8gYmUgaW5zZXJ0ZWQgaW4gYSBGQVEgYmFzZWQgVGlja2V0LiAiRnVsbCBGQVEiIGluY2x1ZGVzIHRleHQsIGF0dGFjaG1lbnRzIGFuZCBpbmxpbmUgaW1hZ2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZC4gIkxpbWl0IiBkZWZpbmVzIHRoZSBudW1iZXIgb2YgZW50cmllcyBkaXNwbGF5ZWQgYnkgZGVmYXVsdC4gIkdyb3VwIiBpcyB1c2VkIHRvIHJlc3RyaWN0IGFjY2VzcyB0byB0aGUgcGx1Z2luIChlLiBnLiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgaW5kaWNhdGVzIGlmIHRoZSBwbHVnaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIGlmIHRoZSB1c2VyIG5lZWRzIHRvIGVuYWJsZSBpdCBtYW51YWxseS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBGQVEgRXhwbG9yZXIuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgRkFRIGpvdXJuYWwuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgRkFRIHNlYXJjaC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHdoZXJlIHRoZSBcJ0luc2VydCBGQVFcJyBsaW5rIHdpbGwgYmUgZGlzcGxheWVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbml0aW9uIG9mIEZBUSBpdGVtIGZyZWUgdGV4dCBmaWVsZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoaXMgRkFRJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIG92ZXJ2aWV3IHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgb3ZlcnZpZXcgc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgcHJpbnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBwcmludCBzY3JlZW4gb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHByaW50IHNjcmVlbiBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHNlYXJjaCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHNlYXJjaCBzY3JlZW4gb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHNlYXJjaCBzY3JlZW4gb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBzbWFsbCBmb3JtYXQgb3ZlcnZpZXcgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgem9vbSBzY3JlZW4gb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHpvb20gc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhpcyBGQVEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIG11bHRpcGxlIGxhbmd1YWdlcyBvbiBGQVEgbW9kdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgc2VydmljZSBhc3NpZ25tZW50IGZvciBGQVFzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgdGhlIHJlbGF0ZWQgYXJ0aWNsZSBmZWF0dXJlIGZvciB0aGUgY3VzdG9tZXIgZnJvbnRlbmQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHZvdGluZyBtZWNoYW5pc20gb24gRkFRIG1vZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwbG9yZXInfSA9ICdTZWxhaW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFKQVggUmVzcG9uZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBSkFYIFJlc3BvbmRlciBmb3IgUmljaHRleHQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcmVhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcmVhLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgRGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEhpc3RvcnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBKb3VybmFsIE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIFByaW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgc2VhcmNoIGJhY2tlbmQgcm91dGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpZWxkNCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWVsZDUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnVsbCBGQVEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgdGhpcyBGQVEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgYWN0aXZhdGVkLCBGQVEgYXJ0aWNsZXMgb2Ygc3RhdHVzIHR5cGUgaW50ZXJuYWwgYXJlIGFsc28gdGFrZW4gaW50byBhY2NvdW50IGZvciB0aGUgYXBwcm92YWwgcHJvY2Vzcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNsdWRlIGludGVybmFsIGZpZWxkcyBvbiBhIEZBUSBiYXNlZCBUaWNrZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgdGhlIG5hbWUgb2YgZWFjaCBmaWVsZCBpbiBhIEZBUSBiYXNlZCBUaWNrZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludGVyZmFjZXMgd2hlcmUgdGhlIHF1aWNrIHNlYXJjaCBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0pvdXJuYWwnfSA9ICdBaWthasOkcmplc3R5cyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYW5ndWFnZSBNYW5hZ2VtZW50J30gPSAnS2llbHRlbiBoYWxsaW50YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYW5ndWFnZSBNYW5hZ2VtZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW1pdCBmb3IgdGhlIHNlYXJjaCB0byBidWlsZCB0aGUga2V5d29yZCBGQVEgYXJ0aWNsZSBsaXN0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoaXMgRkFRIGl0ZW0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBxdWV1ZSBuYW1lcyBmb3Igd2hpY2ggdGhlIHJlbGF0ZWQgYXJ0aWNsZSBmZWF0dXJlIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBzdGF0ZSB0eXBlcyB3aGljaCBjYW4gYmUgdXNlZCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2Ygc3RhdGUgdHlwZXMgd2hpY2ggY2FuIGJlIHVzZWQgaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIHN0YXRlIHR5cGVzIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xvYWRlciBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBqb3VybmFsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgcmVzdWx0IG9mIGEgc2VhcmNoIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgcmVzdWx0IG9mIGEgc2VhcmNoIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgcmVzdWx0IG9mIGEgc2VhcmNoIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBFeHBsb3JlciBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBFeHBsb3JlciBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBFeHBsb3JlciBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgU2VhcmNoIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIFNlYXJjaCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBTZWFyY2ggaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIGpvdXJuYWwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gZ2VuZXJhdGUgSFRNTCBPcGVuU2VhcmNoIHByb2ZpbGUgZm9yIHNob3J0IEZBUSBzZWFyY2ggaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gZ2VuZXJhdGUgSFRNTCBPcGVuU2VhcmNoIHByb2ZpbGUgZm9yIHNob3J0IEZBUSBzZWFyY2ggaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGdlbmVyYXRlIGh0bWwgT3BlblNlYXJjaCBwcm9maWxlIGZvciBzaG9ydCBGQVEgc2VhcmNoLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBGQVEgQXJ0aWNsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEZBUSBhcnRpY2xlcyBuZWVkIGFwcHJvdmFsIGJlZm9yZSB0aGV5IGdldCBwdWJsaXNoZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIG9uIGVhY2ggcGFnZSBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBvbiBlYWNoIHBhZ2Ugb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBzaG93biBpdGVtcyBpbiBsYXN0IGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBzaG93biBpdGVtcyBpbiBsYXN0IGNyZWF0ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBzaG93biBpdGVtcyBpbiB0aGUgdG9wIDEwIGZlYXR1cmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J091dHB1dCBmaWx0ZXIgdG8gYWRkIEphdmEtc2NyaXB0IHRvIEN1c3RvbWVyVGlja2V0TWVzc2FnZSBzY3JlZW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3V0cHV0IGxpbWl0IGZvciB0aGUgcmVsYXRlZCBGQVEgYXJ0aWNsZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIEZBUSBpdGVtcyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBGQVEgam91cm5hbCBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBGQVEgaXRlbXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgRkFRIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW50IHRoaXMgRkFRJ30gPSAnVHVsb3N0YSBhcnRpa2tlbGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIEZBUSBQcmludC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIEZBUSBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRIHNlYXJjaC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIEZBUS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVldWUgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGVzIGZvciB2b3RpbmcuIEtleSBtdXN0IGJlIGluIHBlcmNlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIEZBUSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggRkFRIFNtYWxsLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggRkFRLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgaG93IG1hbnkgaXRlbXMgc2hvdWxkIGJlIHNob3duIGluIEpvdXJuYWwgT3ZlcnZpZXcgIlNtYWxsIiBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBob3cgbWFueSBpdGVtcyBzaG91bGQgYmUgc2hvd24gaW4gT3ZlcnZpZXcgIlNtYWxsIiBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZGVmYXVsdCBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEFnZW50RkFRWm9vbS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBDdXN0b21lckZBUVpvb20gKGFuZCBQdWJsaWNGQVFab29tKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBBZ2VudEZBUVpvb20uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBtYXhpbXVtIGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gQ3VzdG9tZXJGQVFab29tIChhbmQgUHVibGljRkFRWm9vbSkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyAiSW5zZXJ0IEZBUSBMaW5rIiBCdXR0b24gaW4gQWdlbnRGQVFab29tU21hbGwgZm9yIHB1YmxpYyBGQVEgQXJ0aWNsZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyAiSW5zZXJ0IEZBUSBUZXh0ICYgTGluayIgLyAiSW5zZXJ0IEZ1bGwgRkFRICYgTGluayIgQnV0dG9uIGluIEFnZW50RkFRWm9vbVNtYWxsIGZvciBwdWJsaWMgRkFRIEFydGljbGVzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgIkluc2VydCBGQVEgVGV4dCIgLyAiSW5zZXJ0IEZ1bGwgRkFRIiBCdXR0b24gaW4gQWdlbnRGQVFab29tU21hbGwuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBGQVEgQXJ0aWNsZSB3aXRoIEhUTUwuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgRkFRIHBhdGggeWVzL25vLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGludmFsaWQgaXRlbXMgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGl0ZW1zIG9mIHN1YmNhdGVnb3JpZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgbGFzdCBjaGFuZ2UgaXRlbXMgaW4gZGVmaW5lZCBpbnRlcmZhY2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGxhc3QgY3JlYXRlZCBpdGVtcyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgcmVsYXRlZCBhcnRpY2xlcyBvbiBzZXJ2aWNlIGNoYW5nZSBldmVuIHdpdGggZW1wdHkgc3ViamVjdCBhbmQgYm9keS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHRoZSBzdGFycyBmb3IgdGhlIGFydGljbGVzIHdpdGggYSByYXRpbmcgZXF1YWwgb3IgZ3JlYXRlciBsaWtlIHRoZSBkZWZpbmVkIHZhbHVlIChzZXQgdmFsdWUgXCcwXCcgdG8gZGVhY3RpdmF0ZSB0aGUgb3V0cHV0KS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHRvcCAxMCBpdGVtcyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgdm90aW5nIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSBGQVEgd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgem9vbSB2aWV3IG9mIHN1Y2ggRkFRIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIHRvIGRlbGV0ZSBhIEZBUSBpbiBpdHMgem9vbSB2aWV3IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIEZBUSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSBGQVEgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZ28gYmFjayBpbiB0aGUgRkFRIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIEZBUSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NvbHV0aW9uJ30gPSAnUmF0a2Fpc3UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3ltcHRvbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZXh0IE9ubHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGRlZmF1bHQgbGFuZ3VhZ2VzIGZvciB0aGUgcmVsYXRlZCBGQVEgYXJ0aWNsZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIEZBUSwgZS5nLiBGQVEjLCBLQiMsIE15RkFRIy4gVGhlIGRlZmF1bHQgaXMgRkFRIy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnRkFRXCcgb2JqZWN0cyB1c2luZyB0aGUgXCdOb3JtYWxcJyBsaW5rIHR5cGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBzZXR0aW5nIGRlZmluZXMgdGhhdCBhIFwnRkFRXCcgb2JqZWN0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciBcJ0ZBUVwnIG9iamVjdHMgdXNpbmcgdGhlIFwnUGFyZW50Q2hpbGRcJyBsaW5rIHR5cGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBzZXR0aW5nIGRlZmluZXMgdGhhdCBhIFwnRkFRXCcgb2JqZWN0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciBcJ1RpY2tldFwnIG9iamVjdHMgdXNpbmcgdGhlIFwnTm9ybWFsXCcgbGluayB0eXBlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBkZWZpbmVzIHRoYXQgYSBcJ0ZBUVwnIG9iamVjdCBjYW4gYmUgbGlua2VkIHdpdGggb3RoZXIgXCdUaWNrZXRcJyBvYmplY3RzIHVzaW5nIHRoZSBcJ1BhcmVudENoaWxkXCcgbGluayB0eXBlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBib2R5IGZvciBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IHN1YmplY3QgZm9yIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlLiBQZXJtaXR0ZWQgbm90aWZpY2F0aW9uIHRhZ3MgYXJlIDxPVE9CT19GQVFfTlVNQkVSPiwgPE9UT0JPX0ZBUV9DQVRFR09SWUlEPiwgPE9UT0JPX0ZBUV9JVEVNSUQ+PiA8T1RPQk9fRkFRX1RJVExFPiBhbmQgPE9UT0JPX0ZBUV9TVEFURUlEPi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb29sYmFyIEl0ZW0gZm9yIGEgc2hvcnRjdXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2V4dGVybmFsIChjdXN0b21lciknfSA9ICd1bGtvaW5lbiAoYXNpYWtrYWF0KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpbnRlcm5hbCAoYWdlbnQpJ30gPSAnc2lzw6RpbmVuIChhZ2VudGl0KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwdWJsaWMgKGFsbCknfSA9ICdqdWxraW5lbiAoa2Fpa2tpKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwdWJsaWMgKHB1YmxpYyknfSA9ICcnOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdObycsCiAgICAnT2snLAogICAgJ1NldHRpbmdzJywKICAgICdTdWJtaXQnLAogICAgJ1RoaXMgbWlnaHQgYmUgaGVscGZ1bCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Location="Kernel/Language/fr_FAQ.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmZyX0ZBUTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRQWRkCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIEFydGljbGUnfSA9ICdBam91dGVyIHVuIGFydGljbGUgZGFucyBsYSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnS2V5d29yZHMnfSA9ICdNb3RzLWNsw6lzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgY2F0ZWdvcnkgaXMgcmVxdWlyZWQuJ30gPSAnVW5lIGNhdMOpZ29yaWUgZXN0IHJlcXVpc2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FwcHJvdmFsJ30gPSAnQXV0b3Jpc2F0aW9uJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUNhdGVnb3J5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQ2F0ZWdvcnkgTWFuYWdlbWVudCd9ID0gJ0dlc3Rpb24gZGVzIGNhdMOpZ29yaWVzIGRlIGxhIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIENhdGVnb3J5J30gPSAnQWpvdXRlciB1bmUgY2F0w6lnb3JpZSBkYW5zIGxhIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEZBUSBDYXRlZ29yeSd9ID0gJ8OJZGl0ZXIgdW5lIGNhdMOpZ29yaWUgZGFucyBsYSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGNhdGVnb3J5J30gPSAnQWpvdXRlciB1bmUgY2F0w6lnb3JpZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0ZWdvcnknfSA9ICdBam91dGVyIHVuZSBjYXTDqWdvcmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ2F0ZWdvcnknfSA9ICfDiWRpdGVyIHVuZSBjYXTDqWdvcmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1YmNhdGVnb3J5IG9mJ30gPSAnU291cy1jYXTDqWdvcmllIGRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYXQgbGVhc3Qgb25lIHBlcm1pc3Npb24gZ3JvdXAuJ30gPSAnTWVyY2kgZGUgc8OpbGVjdGlvbm5lciBhdSBtb2lucyB1biBncm91cGUgZGUgcGVybWlzc2lvbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgZ3JvdXBzIHRoYXQgY2FuIGFjY2VzcyBhcnRpY2xlcyBpbiB0aGlzIGNhdGVnb3J5Lid9ID0gJ0dyb3VwZXMgZFwnYWdlbnRzIHBvdXZhbnQgYWNjw6lkZXIgYXV4IGFydGljbGVzIGRlIGNldHRlIGNhdMOpZ29yaWUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dpbGwgYmUgc2hvd24gYXMgY29tbWVudCBpbiBFeHBsb3Jlci4nfSA9ICdTZXJhIGFmZmljaMOpIGNvbW1lIHVuIGNvbW1lbnRhaXJlIGRhbnMgbFwnZXhwbG9yYXRldXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjYXRlZ29yeT8nfSA9ICdWb3VsZXotdm91cyB2cmFpbWVudCBzdXBwcmltZXIgY2V0dGUgY2F0w6lnb3JpZSA/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gbm90IGRlbGV0ZSB0aGlzIGNhdGVnb3J5LiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBGQVEgYXJ0aWNsZSBhbmQvb3IgaXMgcGFyZW50IG9mIGF0IGxlYXN0IG9uZSBvdGhlciBjYXRlZ29yeSd9ID0KICAgICAgICAnVm91cyBuZSBwb3V2ZXogcGFzIHN1cHByaW1lciBjZXR0ZSBjYXTDqWdvcmllLiBFbGxlIGVzdCB1dGlsaXPDqWUgZGFucyBhdSBtb2lucyB1biBhcnRpY2xlIGRlIEZBUSBldC9vdSBlc3QgcGFyZW50ZSBkXCdhdSBtb2lucyB1bmUgYXV0cmUgY2F0w6lnb3JpZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBjYXRlZ29yeSBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgRkFRIGFydGljbGUocyknfSA9ICdDZXR0ZSBjYXTDqWdvcmllIGVzdCB1dGlsaXPDqWUgZGFucyBsZXMgYXJ0aWNsZXMgZGUgRkFRIHN1aXZhbnRzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY2F0ZWdvcnkgaXMgcGFyZW50IG9mIHRoZSBmb2xsb3dpbmcgc3ViY2F0ZWdvcmllcyd9ID0gJ0NldHRlIGNhdMOpZ29yaWUgZXN0IHBhcmVudGUgZGVzIHNvdXMtY2F0w6lnb3JpZXMgc3VpdmFudGVzJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUURlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIEZBUSBhcnRpY2xlPyd9ID0gJ1ZvdWxlei12b3VzIHZyYWltZW50IHN1cHByaW1lciBjZXQgYXJ0aWNsZSBkZSBsYSBGQVEgPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEnfSA9ICdGQVEnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRRXhwbG9yZXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBFeHBsb3Jlcid9ID0gJ0V4cGxvcmF0ZXVyIGRlIGxhIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydRdWljayBTZWFyY2gnfSA9ICdSZWNoZXJjaGUgcmFwaWRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dpbGRjYXJkcyBhcmUgYWxsb3dlZC4nfSA9ICdMZXMgbcOpdGFjYXJhY3TDqHJlcyBzb250IGF1dG9yaXPDqXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkdmFuY2VkIFNlYXJjaCd9ID0gJ1JlY2hlcmNoZSBhdmFuY8OpZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWJjYXRlZ29yaWVzJ30gPSAnU291cy1jYXTDqWdvcmllcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZXMnfSA9ICdBcnRpY2xlcyBkZSBsYSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gc3ViY2F0ZWdvcmllcyBmb3VuZC4nfSA9ICdQYXMgZGUgc291cy1jYXTDqWdvcmllcyB0cm91dsOpZXMuJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUhpc3RvcnkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YnfSA9ICdIaXN0b3JpcXVlIGRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgQ29udGVudCd9ID0gJ0NvbnRlbnUgZGUgbFwnaGlzdG9yaXF1ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGV0aW1lJ30gPSAnRGF0ZSBkZSBjcsOpYXRpb24nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRSm91cm5hbE92ZXJ2aWV3U21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEZBUSBKb3VybmFsIGRhdGEgZm91bmQuJ30gPSAnUGFzIGRlIGpvdXJuYWwgZGUgZG9ubsOpZXMgdHJvdXbDqSBkYW5zIGxhIEZBUS4nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRTGFuZ3VhZ2UKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBMYW5ndWFnZSBNYW5hZ2VtZW50J30gPSAnR2VzdGlvbiBkZXMgbGFuZ3VlcyBkZSBsYSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEZBUSBMYW5ndWFnZSd9ID0gJ0Fqb3V0ZXIgdW5lIGxhbmd1ZSBkYW5zIGxhIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEZBUSBMYW5ndWFnZSd9ID0gJ8OJZGl0ZXIgdW5lIGxhbmd1ZSBkYW5zIGxhIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2UgdGhpcyBmZWF0dXJlIGlmIHlvdSB3YW50IHRvIHdvcmsgd2l0aCBtdWx0aXBsZSBsYW5ndWFnZXMuJ30gPQogICAgICAgICdVdGlsaXNleiBjZXR0ZSBmb25jdGlvbm5hbGl0w6kgYWZpbiBkZSB0cmF2YWlsbGVyIGF2ZWMgcGx1c2lldXJzIGxhbmd1ZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBsYW5ndWFnZSd9ID0gJ0Fqb3V0ZXIgdW5lIGxhbmd1ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgTGFuZ3VhZ2UnfSA9ICdBam91dGVyIHVuZSBsYW5ndWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBMYW5ndWFnZSd9ID0gJ8OJZGl0ZXIgbGEgbGFuZ3VlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gbm90IGRlbGV0ZSB0aGlzIGxhbmd1YWdlLiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBGQVEgYXJ0aWNsZSEnfSA9CiAgICAgICAgJ1ZvdXMgbmUgcG91dmV6IHBhcyBzdXBwcmltZXIgY2V0dGUgbGFuZ3VlLiBFbGxlIGVzdCB1dGlsaXPDqWUgZGFucyBhdSBtb2lucyB1biBhcnRpY2xlIGRlIGxhIEZBUSAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbGFuZ3VhZ2UgaXMgdXNlZCBpbiB0aGUgZm9sbG93aW5nIEZBUSBBcnRpY2xlKHMpJ30gPSAnQ2V0dGUgbGFuZ3VlIGVzdCB1dGlsaXPDqWUgZGFucyBsZXMgYXJ0aWNsZXMgZGUgbGEgRkFRIHN1aXZhbnRzJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUU92ZXJ2aWV3TmF2QmFyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAnUGFyYW3DqHRyZXMgZHUgY29udGV4dGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGFydGljbGVzIHBlciBwYWdlJ30gPSAnTm9tYnJlIGRcJ2FydGljbGVzIHBhciBwYWdlJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUU92ZXJ2aWV3U21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEZBUSBkYXRhIGZvdW5kLid9ID0gJ1BhcyBkZSBkb25uw6llcyB0cm91dsOpZXMgZGFucyBsYSBGQVEuJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVJlbGF0ZWRBcnRpY2xlcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnb3V0IG9mIDUnfSA9ICdzdXIgNSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFTZWFyY2gKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0tleXdvcmQnfSA9ICdNb3QtY2zDqSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWb3RlIChlLiBnLiBFcXVhbHMgMTAgb3IgR3JlYXRlclRoYW4gNjApJ30gPSAnVm90ZSAocGFyIGV4ZW1wbGUgw6lnYWwgw6AgMTAgb3Ugc3Vww6lyaWV1ciDDoCA2MCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0ZSAoZS4gZy4gRXF1YWxzIDI1JSBvciBHcmVhdGVyVGhhbiA3NSUpJ30gPSAnVGF1eCAocGFyIGV4ZW1wbGUgw6lnYWwgw6AgMjUlIG91IHN1cMOpcmlldXIgw6AgNzUlKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcHByb3ZlZCd9ID0gJ0FwcHJvdXbDqSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQgYnknfSA9ICdEZXJuacOocmVzIG1vZGlmaWNhdGlvbnMgcGFyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENyZWF0ZSBUaW1lIChiZWZvcmUvYWZ0ZXIpJ30gPSAnRGF0ZSBkZSBjcsOpYXRpb24gZGUgbFwnYXJ0aWNsZSBkZSBsYSBGQVEgKGF2YW50L2FwcsOocyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ3JlYXRlIFRpbWUgKGJldHdlZW4pJ30gPSAnRGF0ZSBkZSBjcsOpYXRpb24gZGUgbFwnYXJ0aWNsZSBkZSBsYSBGQVEgKGVudHJlKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDaGFuZ2UgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJ0RhdGUgZGUgbW9kaWZpY2F0aW9uIGRlIGxcJ2FydGljbGUgZGUgbGEgRkFRIChhdmFudC9hcHLDqHMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENoYW5nZSBUaW1lIChiZXR3ZWVuKSd9ID0gJ0RhdGUgZGUgbW9kaWZpY2F0aW9uIGRlIGxcJ2FydGljbGUgZGUgbGEgRkFRIChlbnRyZSknOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRU2VhcmNoT3BlblNlYXJjaERlc2NyaXB0aW9uRnVsbHRleHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUUZ1bGx0ZXh0J30gPSAnVGV4dGUgaW50w6lncmFsJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVNlYXJjaFNtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgU2VhcmNoJ30gPSAnUmVjaGVyY2hlIGRhbnMgbGEgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2ZpbGUgU2VsZWN0aW9uJ30gPSAnU8OpbGVjdGlvbiBkdSBwcm9maWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSd9ID0gJ1ZvdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdm90ZSBzZXR0aW5ncyd9ID0gJ1BhcyBkZSBwYXJhbcOodHJlcyBkZSB2b3RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmljIHZvdGVzJ30gPSAnVm90ZSBzcMOpY2lmaXF1ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlLiBnLiBFcXVhbHMgMTAgb3IgR3JlYXRlclRoYW4gNjAnfSA9ICdwYXIgZXhlbXBsZSDDqWdhbCDDoCAxMCBvdSBzdXDDqXJpZXVyIMOgIDYwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGUnfSA9ICdUYXV4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHJhdGUgc2V0dGluZ3MnfSA9ICdQYXMgZGUgcsOpZ2xhZ2UgZHUgdGF1eCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpYyByYXRlJ30gPSAnVGF1eCBzcMOpY2lmaXF1ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlLiBnLiBFcXVhbHMgMjUlIG9yIEdyZWF0ZXJUaGFuIDc1JSd9ID0gJ3BhciBleGVtcGxlIMOpZ2FsIMOgIDI1JSBvdSBzdXDDqXJpZXVyIMOgIDc1JSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDcmVhdGUgVGltZSd9ID0gJ0hldXJlIGRlIGNyw6lhdGlvbiBkZSBsXCdhcnRpY2xlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENoYW5nZSBUaW1lJ30gPSAnRGF0ZSBkZSBtb2RpZmljYXRpb24gZGUgbFwnYXJ0aWNsZSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFab29tCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSW5mb3JtYXRpb24nfSA9ICdJbmZvcm1hdGlvbnMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0aW5nJ30gPSAnTm90ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWb3Rlcyd9ID0gJ1ZvdGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHZvdGVzIGZvdW5kISd9ID0gJ0F1Y3VucyB2b3RlcyB0cm91dsOpcyAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHZvdGVzIGZvdW5kISBCZSB0aGUgZmlyc3Qgb25lIHRvIHJhdGUgdGhpcyBGQVEgYXJ0aWNsZS4nfSA9ICdBdWN1bnMgdm90ZXMgISBTb3lleiBsZSBwcmVtaWVyIMOgIG5vdGVyIGNldCBhcnRpY2xlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEb3dubG9hZCBBdHRhY2htZW50J30gPSAnVMOpbMOpY2hhcmdlciB1biBmaWNoaWVyIGpvaW50JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIG9wZW4gbGlua3MgaW4gdGhlIGZvbGxvd2luZyBkZXNjcmlwdGlvbiBibG9ja3MsIHlvdSBtaWdodCBuZWVkIHRvIHByZXNzIEN0cmwgb3IgQ21kIG9yIFNoaWZ0IGtleSB3aGlsZSBjbGlja2luZyB0aGUgbGluayAoZGVwZW5kaW5nIG9uIHlvdXIgYnJvd3NlciBhbmQgT1MpLid9ID0KICAgICAgICAnUG91ciBvdXZyaXIgbGVzIGxpZW5zIGRhbnMgbGVzIGJsb2NzIGRlIGRlc2NyaXB0aW9uIHN1aXZhbnRlcywgdm91cyBwb3VycmlleiBhdm9pciBiZXNvaW4gZFwnYXBwdXllciBzdXIgQ3RybCBvdSBDbWQgb3UgTWFqIHRvdXQgZW4gY2xpcXVhbnQgc3VyIGxlIGxpZW4gKGVuIGZvbmN0aW9uIGRlIHZvdHJlIG5hdmlnYXRldXIgZXQgT1MpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3cgaGVscGZ1bCB3YXMgdGhpcyBhcnRpY2xlPyBQbGVhc2UgZ2l2ZSB1cyB5b3VyIHJhdGluZyBhbmQgaGVscCB0byBpbXByb3ZlIHRoZSBGQVEgRGF0YWJhc2UuIFRoYW5rIFlvdSEnfSA9CiAgICAgICAgJ0NldCBhcnRpY2xlIMOpdGFpdC1pbCB1dGlsZSA/IE1lcmNpIGRlIGRvbm5lciB1bmUgbm90ZSBldCBkZSBwYXJ0aWNpcGVyIMOgIGxcJ2Ftw6lsaW9yYXRpb24gZGUgbGEgYmFzZSBkZSBkb25uw6llcy4gTWVyY2kgISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgaGVscGZ1bCd9ID0gJ3BldSB1dGlsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd2ZXJ5IGhlbHBmdWwnfSA9ICd0csOocyB1dGlsZSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFab29tU21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBGQVEgdGl0bGUgdG8gYXJ0aWNsZSBzdWJqZWN0J30gPSAnQWpvdXRlciB1biB0aXRyZSBhdSBzdWpldCBkZSBsXCdhcnRpY2xlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGQVEgVGV4dCd9ID0gJ0luc8OpcmVyIGxlIHRleHRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGdWxsIEZBUSd9ID0gJ0luc8OpcmVyIHRvdXQgbFwnYXJ0aWNsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRkFRIExpbmsnfSA9ICdJbnPDqXJlciBsZSBsaWVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGQVEgVGV4dCAmIExpbmsnfSA9ICdJbnPDqXJlciBsZSB0ZXh0ZSBldCBsaWVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGdWxsIEZBUSAmIExpbmsnfSA9ICdJbnPDqXJlciBsZSBsXCdhcnRpY2xlIGV0IGxlIGxpZW4nOwoKICAgICMgVGVtcGxhdGU6IEN1c3RvbWVyRkFRRXhwbG9yZXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhdGVzdCB1cGRhdGVkIEZBUSBhcnRpY2xlcyd9ID0gJ0Rlcm5pZXJzIGFydGljbGVzIG1vZGlmacOpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBGQVEgYXJ0aWNsZXMgZm91bmQuJ30gPSAnUGFzIGRcJ2FydGljbGVzIHRyb3V2w6lzLic7CgogICAgIyBUZW1wbGF0ZTogQ3VzdG9tZXJGQVFSZWxhdGVkQXJ0aWNsZXMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbWlnaHQgYmUgaGVscGZ1bCd9ID0gJ0NlbGEgcG91cnJhaXQgw6p0cmUgdXRpbGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm91bmQgbm8gaGVscGZ1bCByZXNvdXJjZXMgZm9yIHRoZSBzdWJqZWN0IGFuZCB0ZXh0Lid9ID0gJ1BhcyBkZSByZXNzb3VyY2VzIHV0aWxlcyB0cm91dsOpZXMgcG91ciBjZXR0ZSByZWNoZXJjaGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGUgYSBzdWJqZWN0IG9yIHRleHQgdG8gZ2V0IGEgbGlzdCBvZiBoZWxwZnVsIHJlc291cmNlcy4nfSA9ICdUYXBleiB1biBzdWpldCBvdSB1biBtb3QgcG91ciBvYnRlbmlyIHVuZSBsaXN0ZSBkZSByZXNzb3VyY2VzIHV0aWxlcy4nOwoKICAgICMgVGVtcGxhdGU6IEN1c3RvbWVyRkFRU2VhcmNoCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGdWxsdGV4dCBzZWFyY2ggaW4gRkFRIGFydGljbGVzIChlLiBnLiAiSm9obipuIiBvciAiV2lsbCoiKSd9ID0gJ1JlY2hlcmNoZXIgdW4gdGV4dGUgaW50w6lncmFsZSBkYW5zIGxlcyBhcnRpY2xlcyAocGFyIGV4ZW1wbGUgIldpbGwqIiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSByZXN0cmljdGlvbnMnfSA9ICdSZXN0cmljdGlvbnMgZGUgdm90ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IEZBUSBhcnRpY2xlcyB3aXRoIHZvdGVzLi4uJ30gPSAnVW5pcXVlbWVudCBsZXMgYXJ0aWNsZXMgYXZlYyBkZXMgdm90ZXMuLi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0ZSByZXN0cmljdGlvbnMnfSA9ICdSZXN0cmljdGlvbnMgZGUgbm90ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IEZBUSBhcnRpY2xlcyB3aXRoIHJhdGUuLi4nfSA9ICdVbmlxdWVtZW50IGxlcyBhcnRpY2xlcyAgYXZlYyB1bmUgbm90ZSBkZSAuLi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXN0cmljdGlvbnMnfSA9ICdSZXN0cmljdGlvbnMgZGUgdGVtcHMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSBGQVEgYXJ0aWNsZXMgY3JlYXRlZCd9ID0gJ1VuaXF1ZW1lbnQgbGVzIG5vdXZlYXV4IGFydGljbGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgRkFRIGFydGljbGVzIGNyZWF0ZWQgYmV0d2Vlbid9ID0gJ1VuaXF1ZW1lbnQgbGVzIGFydGljbGVzIGNyw6nDqXMgZW50cmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoLVByb2ZpbGUgYXMgVGVtcGxhdGU/J30gPSAnTW9kw6hsZSBkZSByZWNoZXJjaGUgZW4gbW9kw6hsZSA/JzsKCiAgICAjIFRlbXBsYXRlOiBDdXN0b21lckZBUVpvb20KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FydGljbGUgTnVtYmVyJ30gPSAnTnVtw6lybyBkXCdhcnRpY2xlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBmb3IgYXJ0aWNsZXMgd2l0aCBrZXl3b3JkJ30gPSAnUmVjaGVyY2hlciBkZXMgYXJ0aWNsZXMgYXZlYyBtb3QtY2zDqSc7CgogICAgIyBUZW1wbGF0ZTogUHVibGljRkFRU2VhcmNoT3BlblNlYXJjaERlc2NyaXB0aW9uRkFRTnVtYmVyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMnfSA9ICdQdWJsaXF1ZSc7CgogICAgIyBUZW1wbGF0ZTogUHVibGljRkFRU2VhcmNoUmVzdWx0U2hvcnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0JhY2sgdG8gRkFRIEV4cGxvcmVyJ30gPSAnUmV2ZW5pciDDoCBsXCdleHBsb3JhdGV1ciBkZSBsYSBGQVEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCBydyBwZXJtaXNzaW9uISd9ID0gJ0xlcyBwZXJtaXNzaW9ucyBkXCfDqWNyaXR1cmUgc29udCByZXF1aXNlcyAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGNhdGVnb3JpZXMgZm91bmQgd2hlcmUgdXNlciBoYXMgcmVhZC93cml0ZSBwZXJtaXNzaW9ucyEnfSA9ICdBdWN1bmVzIGNhdMOpZ29yaWVzIHRyb3V2w6llcyBkYW5zIGxlc3F1ZWxsZXMgdm91cyBhdmV6IGxlIGRyb2l0IGRcJ8OpY3JpdHVyZSAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRlZmF1bHQgbGFuZ3VhZ2UgZm91bmQgYW5kIGNhblwndCBjcmVhdGUgYSBuZXcgb25lLid9ID0gJ0F1Y3VuZXMgbGFuZ3VlcyBwYXIgZMOpZmF1dCB0cm91dsOpZXMgZXQgaW1wb3NzaWJsZSBkXCdlbiBjcsOpZXIgdW5lIG5vdXZlbGxlLic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFDYXRlZ29yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBDYXRlZ29yeUlEISd9ID0gJ0Jlc29pbiBkZSBsXCdJRCBkZSBsYSBjYXTDqWdvcmllICEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRlZ29yeSBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAnVW5lIGNhdMOpZ29yaWUgZGV2cmFpdCBhdm9pciB1biBub20gISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGNhdGVnb3J5IGFscmVhZHkgZXhpc3RzJ30gPSAnQ2V0dGUgY2F0w6lnb3JpZSBleGlzdGUgZMOpasOgICEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBjYXRlZ29yeSBhbHJlYWR5IGV4aXN0cyEnfSA9ICdDZXR0ZSBjYXTDqWdvcmllIGV4aXN0ZSBkw6lqw6AgISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBDYXRlZ29yeUlEIGlzIGdpdmVuISd9ID0gJ0F1Y3VuIElEIGRlIGNhdMOpZ29yaWUgblwnYSDDqXTDqSBkb25uw6kgISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBjYXRlZ29yeSAlcyEnfSA9ICdJbXBvc3NpYmxlIGRlIHN1cHByaW1lciBsYSBjYXTDqWdvcmllICVzICEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGNhdGVnb3J5IHVwZGF0ZWQhJ30gPSAnQ2F0w6lnb3JpZSBtaXNlIMOgIGpvdXIgISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgY2F0ZWdvcnkgYWRkZWQhJ30gPSAnQ2F0w6lnb3JpZSBham91dMOpZSAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBDYXRlZ29yeSd9ID0gJ1N1cHByaW1lciBsYSBjYXTDqWdvcmllJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gSXRlbUlEIGlzIGdpdmVuISd9ID0gJ0F1Y3VuIElEIGRcJ8OpbMOpbWVudCBuXCdhIMOpdMOpIGRvbm7DqSAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIG5vIHBlcm1pc3Npb24gZm9yIHRoaXMgY2F0ZWdvcnkhJ30gPSAnVm91cyBuXCdhdmV6IHBhcyBsYSBwZXJtaXNzaW9uIHBvdXIgY2V0dGUgY2F0w6lnb3JpZSAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIEZBUSBhcnRpY2xlICVzISd9ID0gJ0ltcG9zc2libGUgZGUgc3VwcHJpbWVyIGxcJ2FydGljbGUgJXMgISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFFeHBsb3Jlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIENhdGVnb3J5SUQgJXMgaXMgaW52YWxpZC4nfSA9ICdMXCdJRCBkZSBjYXTDqWdvcmllICVzIGVzdCBpbnZhbGlkZSAhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUhpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIEl0ZW1JRCBpcyBnaXZlbiEnfSA9ICdJbXBvc3NpYmxlIGRcJ2FmZmljaGVyIGxcJ2hpc3RvcmlxdWUsIHB1aXNxdVwnYXVjdW4gSUQgZFwnw6lsw6ltZW50IG5cJ2Egw6l0w6kgZG9ubsOpICEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEhpc3RvcnknfSA9ICdIaXN0b3JpcXVlIGRlIGxhIEZBUSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFKb3VybmFsLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSm91cm5hbCd9ID0gJ0pvdXJuYWwgZGUgbGEgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgY29uZmlnIG9wdGlvbiBGQVE6OkZyb250ZW5kOjpPdmVydmlldyd9ID0gJ0NvbmZpZ3VyYXRpb24gZHUgbW9kdWxlIEZBUTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3IG7DqWNlc3NhaXJlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZyBvcHRpb24gRkFROjpGcm9udGVuZDo6T3ZlcnZpZXcgbmVlZHMgdG8gYmUgYSBIQVNIIHJlZiEnfSA9CiAgICAgICAgJ0NvbmZpZ3VyYXRpb24gZHUgbW9kdWxlIEZBUTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3IGRvaXQgw6p0cmUgdW5lIHLDqWbDqXJlbmNlICJoYXNoIiAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGNvbmZpZyBvcHRpb24gZm91bmQgZm9yIHRoZSB2aWV3ICIlcyIhJ30gPSAnQXVjdW5lcyBjb25maWd1cmF0aW9ucyB0cm91dsOpZXMgcG91ciBsYSB2dWUgIiVzIiAhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUxhbmd1YWdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBMYW5ndWFnZUlEIGlzIGdpdmVuISd9ID0gJ0F1Y3VuIElEIGRlIGxhbmdhZ2UgblwnYSDDqXTDqSBkb25uw6kgISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgbmFtZSBpcyByZXF1aXJlZCEnfSA9ICdMZSBub20gZXN0IHJlcXVpcyAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbGFuZ3VhZ2UgYWxyZWFkeSBleGlzdHMhJ30gPSAnQ2V0dGUgbGFuZ3VlIGV4aXN0ZSBkw6lqw6AgISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBsYW5ndWFnZSAlcyEnfSA9ICdJbXBvc3NpYmxlIGRlIHN1cHByaW1lciBsYSBsYW5ndWUgJXMgISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgbGFuZ3VhZ2UgdXBkYXRlZCEnfSA9ICdMYW5ndWUgbWlzZSDDoCBqb3VyICEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGxhbmd1YWdlIGFkZGVkISd9ID0gJ0xhbmd1ZSBham91dMOpZSAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBMYW5ndWFnZSAlcyd9ID0gJ1N1cHByaW1lciBsYSBsYW5ndWUgJXMnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRUHJpbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc3VsdCd9ID0gJ1LDqXN1bHRhdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IHVwZGF0ZSd9ID0gJ0Rlcm5pw6hyZSBtaXNlIMOgIGpvdXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIER5bmFtaWMgRmllbGRzJ30gPSAnQ2hhbXBzIGR5bmFtaXF1ZXMnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRUmljaFRleHQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vICVzIGlzIGdpdmVuISd9ID0gJ0F1Y3VuICVzIG5cJ2Egw6l0w6kgZG9ubsOpICEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGxvYWQgTGFuZ3VhZ2VPYmplY3QhJ30gPSAnSW1wb3NzaWJsZSBkZSBjaGFyZ2VyICJMYW5ndWFnZU9iamVjdCIgISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFJlc3VsdCEnfSA9ICdBdWN1bnMgcsOpc3VsdGF0cyAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBOdW1iZXInfSA9ICdOdW3DqXJvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgQ2hhbmdlZCBieSd9ID0gJ0Rlcm5pw6hyZXMgbW9kaWZpY2F0aW9ucyBwYXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ3JlYXRlIFRpbWUgKGJlZm9yZS9hZnRlciknfSA9ICdEYXRlIGRlIGNyw6lhdGlvbiBkZSBsXCfDqWzDqW1lbnQgKGF2YW50L2FwcsOocyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ3JlYXRlIFRpbWUgKGJldHdlZW4pJ30gPSAnRGF0ZSBkZSBjcsOpYXRpb24gZGUgbFwnw6lsw6ltZW50IChlbnRyZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ2hhbmdlIFRpbWUgKGJlZm9yZS9hZnRlciknfSA9ICdEYXRlIGRlIG1vZGlmaWNhdGlvbiBkZSBsXCfDqWzDqW1lbnQgKGF2YW50L2FwcsOocyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ2hhbmdlIFRpbWUgKGJldHdlZW4pJ30gPSAnRGF0ZSBkZSBtb2RpZmljYXRpb24gZGUgbFwnw6lsw6ltZW50IChlbnRyZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXF1YWxzJ30gPSAnw4lnYWwgw6AnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JlYXRlciB0aGFuJ30gPSAnUGx1cyBncmFuZCBxdWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JlYXRlciB0aGFuIGVxdWFscyd9ID0gJ1BsdXMgZ3JhbmQgb3Ugw6lnYWwgw6AnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU21hbGxlciB0aGFuJ30gPSAnUGx1cyBwZXRpdCBxdWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU21hbGxlciB0aGFuIGVxdWFscyd9ID0gJ1BsdXMgcGV0aXQgb3Ugw6lnYWwgw6AnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRWm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBGaWxlSUQhJ30gPSAnTFwnSUQgZHUgZmljaGllciBlc3QgbsOpY2Vzc2FpcmUgISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGFua3MgZm9yIHlvdXIgdm90ZSEnfSA9ICdNZXJjaSBwb3VyIHZvdHJlIHZvdGUgISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSBhbHJlYWR5IHZvdGVkISd9ID0gJ1ZvdXMgYXZleiBkw6lqw6Agdm90w6kgISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyByYXRlIHNlbGVjdGVkISd9ID0gJ0F1Y3VuZSBub3RlIHPDqWxlY3Rpb25uw6llICEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHZvdGluZyBtZWNoYW5pc20gaXMgbm90IGVuYWJsZWQhJ30gPSAnTGUgbcOpY2FuaXNtZSBkZSB2b3RlIG5cJ2VzdCBwYXMgYWN0aXbDqSAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB2b3RlIHJhdGUgaXMgbm90IGRlZmluZWQhJ30gPSAnTGUgdGF1eCBkZSB2b3RlIG5cJ2EgcGFzIMOpdMOpIGTDqWZpbmkgISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQ3VzdG9tZXJGQVFQcmludC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgUHJpbnQnfSA9ICdJbXByaW1lciBjZXQgYXJ0aWNsZSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQ3VzdG9tZXJGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZWQgYmV0d2Vlbid9ID0gJ0Nyw6nDqSBlbnRyZSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQ3VzdG9tZXJGQVFab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIEl0ZW1JRCEnfSA9ICdMXCdJRCBkZSBsXCfDqWzDqW1lbnQgZXN0IG7DqWNlc3NhaXJlICEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL1B1YmxpY0ZBUUV4cGxvcmVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZXMgKG5ldyBjcmVhdGVkKSd9ID0gJ0Rlcm5pZXJzIGFydGljbGVzIGNyw6nDqXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGVzIChyZWNlbnRseSBjaGFuZ2VkKSd9ID0gJ0Rlcm5pZXJzIGFydGljbGVzIG1vZGlmacOpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZXMgKFRvcCAxMCknfSA9ICdUb3AgMTAgZGVzIGFydGljbGVzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9QdWJsaWNGQVFSU1MucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFR5cGUgaXMgZ2l2ZW4hJ30gPSAnQXVjdW4gdHlwZSBuXCdhIMOpdMOpIGRvbm7DqSAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGUgbXVzdCBiZSBlaXRoZXIgTGFzdENyZWF0ZSBvciBMYXN0Q2hhbmdlIG9yIFRvcDEwISd9ID0gJ0xlIHR5cGUgZG9pdCDDqnRyZSBzb2l0ICJEZXJuaWVycyBhcnRpY2xlcyBjcsOpw6lzIiwgc29pdCAiRGVybmllcnMgYXJ0aWNsZXMgbW9kaWZpw6lzIiwgc29pdCAiVG9wIDEwIGRlcyBhcnRpY2xlcyIgISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIFJTUyBmaWxlISd9ID0gJ0ltcG9zc2libGUgZGUgY3LDqWVyIHVuIGZpY2hpZXIgUlNTICEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9IZWFkZXJNZXRhL0FnZW50RkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoRkFRRnVsbHRleHQpJ30gPSAnJXMgKHRleHRlIGludMOpZ3JhbCknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9IZWFkZXJNZXRhL0N1c3RvbWVyRkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAtIEN1c3RvbWVyICglcyknfSA9ICclcyAtIENsaWVudCAoJXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gQ3VzdG9tZXIgKEZBUUZ1bGx0ZXh0KSd9ID0gJyVzIC0gQ2xpZW50ICh0ZXh0ZSBpbnTDqWdyYWwpJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvSGVhZGVyTWV0YS9QdWJsaWNGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gUHVibGljICglcyknfSA9ICclcyAtIFB1YmxpcXVlICglcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgLSBQdWJsaWMgKEZBUUZ1bGx0ZXh0KSd9ID0gJyVzIC0gUHVibGlxdWUgKHRleHRlIGludMOpZ3JhbCknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9MYXlvdXQvRkFRLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIHJhdGUhJ30gPSAnTm90ZSBuw6ljZXNzYWlyZSAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgYXJ0aWNsZSBpcyBlbXB0eSEnfSA9ICdDZXQgYXJ0aWNsZSBlc3QgdmlkZSAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhdGVzdCBjcmVhdGVkIEZBUSBhcnRpY2xlcyd9ID0gJ0Rlcm5pZXJzIGFydGljbGVzIGNyw6nDqXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG9wIDEwIEZBUSBhcnRpY2xlcyd9ID0gJ1RvcCAxMCBkZXMgYXJ0aWNsZXMnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9MaW5rT2JqZWN0L0ZBUS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29udGVudCBUeXBlJ30gPSAnVHlwZSBkZSBjb250ZW51JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0R5bmFtaWNGaWVsZC9Ecml2ZXIvRkFRLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgdGhlIGF0dHJpYnV0ZSB3aGljaCBGQVFzIHdpbGwgYmUgc2VhcmNoZWQgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXh0ZXJuYWwtc291cmNlIGtleSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgdGhlIHR5cGUgb2YgZGlzcGxheSd9ID0gJyc7CgogICAgIyBEYXRhYmFzZSBYTUwgLyBTT1BNIERlZmluaXRpb246IEZBUS5zb3BtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpbnRlcm5hbCd9ID0gJ2ludGVybmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZXh0ZXJuYWwnfSA9ICdleHRlcm5lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3B1YmxpYyd9ID0gJ3B1YmxpcXVlJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBmaWx0ZXIgZm9yIEhUTUwgb3V0cHV0IHRvIGFkZCBsaW5rcyBiZWhpbmQgYSBkZWZpbmVkIHN0cmluZy4gVGhlIGVsZW1lbnQgSW1hZ2UgYWxsb3dzIHR3byBpbnB1dCBraW5kcy4gRmlyc3QgdGhlIG5hbWUgb2YgYW4gaW1hZ2UgKGUuZy4gZmFxLnBuZykuIEluIHRoaXMgY2FzZSB0aGUgT1RPQk8gaW1hZ2UgcGF0aCB3aWxsIGJlIHVzZWQuIFRoZSBzZWNvbmQgcG9zc2liaWxpdHkgaXMgdG8gaW5zZXJ0IHRoZSBsaW5rIHRvIHRoZSBpbWFnZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIGFydGljbGUnfSA9ICdBam91dGVyIHVuIGFydGljbGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ1NTIGNvbG9yIGZvciB0aGUgdm90aW5nIHJlc3VsdC4nfSA9ICdDb3VsZXVyIENTUyBwb3VyIGxlIHLDqXN1bHRhdCBkdSB2b3RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIFRpbWUgVG8gTGVhdmUgZm9yIEZBUSBpdGVtcy4nfSA9ICdEdXLDqWUgZGUgdmFsaWRpdMOpIGR1IGNhY2hlIHBvdXIgbGVzIMOpbMOpbWVudHMgZGUgbGEgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSBNYW5hZ2VtZW50J30gPSAnR2VzdGlvbiBkZXMgY2F0w6lnb3JpZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0ZWdvcnkgTWFuYWdlbWVudC4nfSA9ICdHZXN0aW9uIGRlcyBjYXTDqWdvcmllcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIFByaW50Lid9ID0gJ0ltcHJlc3Npb24gY2xpZW50Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgUmVsYXRlZCBBcnRpY2xlcyd9ID0gJ0FydGljbGVzIGxpw6lzIGF1IGNsaWVudCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgUmVsYXRlZCBBcnRpY2xlcy4nfSA9ICdBcnRpY2xlcyBsacOpcyBhdSBjbGllbnQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBab29tLid9ID0gJ1pvb20gY2xpZW50Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgc2VhcmNoLid9ID0gJ1JlY2hlcmNoZSBjbGllbnQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUS4nfSA9ICdDbGllbnQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVjaW1hbCBwbGFjZXMgb2YgdGhlIHZvdGluZyByZXN1bHQuJ30gPSAnUG9zaXRpb25uZW1lbnQgZMOpY2ltYWwgZHUgcsOpc3VsdGF0IGRlcyB2b3Rlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBjYXRlZ29yeSBuYW1lLid9ID0gJ05vbSBkZSBjYXTDqWdvcmllIHBhciBkw6lmYXV0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IGxhbmd1YWdlIGZvciBGQVEgYXJ0aWNsZXMgb24gc2luZ2xlIGxhbmd1YWdlIG1vZGUuJ30gPSAnTGFuZ3VlIHBhciBkw6lmYXV0IHBvdXIgbGVzIGFydGljbGVzIGVuIG1vZGUgbGFuZ2FnZSB1bmlxdWUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93bi4nfSA9CiAgICAgICAgJ1RhaWxsZSBtYXhpbXVtIHBhciBkw6lmYXV0IGRlcyB0aXRyZXMgZGFucyB1biBhcnRpY2xlIMOgIG1vbnRyZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgcHJpb3JpdHkgb2YgdGlja2V0cyBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9CiAgICAgICAgJ1ByaW9yaXTDqSBwYXIgZMOpZmF1dCBkZXMgdGlja2V0cyBwb3VyIGxcJ2FwcHJvYmF0aW9uIGRcJ2FydGljbGVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXRlIGZvciBGQVEgZW50cnkuJ30gPSAnw4l0YXQgcGFyIGTDqWZhdXQgZFwndW5lIGVudHLDqWUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdGUgb2YgdGlja2V0cyBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICfDiXRhdCBwYXIgZMOpZmF1dCBkZXMgdGlja2V0cyBwb3VyIGxcJ2FwcHJvYmF0aW9uIGRcJ2FydGljbGVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHR5cGUgb2YgdGlja2V0cyBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICdUeXBlIHBhciBkw6lmYXV0IGRlcyB0aWNrZXRzIHBvdXIgbFwnYXBwcm9iYXRpb24gZFwnYXJ0aWNsZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgdmFsdWUgZm9yIHRoZSBBY3Rpb24gcGFyYW1ldGVyIGZvciB0aGUgcHVibGljIGZyb250ZW5kLiBUaGUgQWN0aW9uIHBhcmFtZXRlciBpcyB1c2VkIGluIHRoZSBzY3JpcHRzIG9mIHRoZSBzeXN0ZW0uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIEFjdGlvbnMgd2hlcmUgYSBzZXR0aW5ncyBidXR0b24gaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rZWQgb2JqZWN0cyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gUGxlYXNlIG5vdGUgdGhhdCB0aGVzZSBBY3Rpb25zIG11c3QgaGF2ZSByZWdpc3RlcmVkIHRoZSBmb2xsb3dpbmcgSlMgYW5kIENTUyBmaWxlczogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgYW5kIENvcmUuQWdlbnQuTGlua09iamVjdC5qcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgaWYgdGhlIEZBUSB0aXRsZSBzaG91bGQgYmUgY29uY2F0ZW5hdGVkIHRvIGFydGljbGUgc3ViamVjdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBGQVFzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IEZBUSBhdHRyaWJ1dGVzIGFuZCBkeW5hbWljIGZpZWxkcyAoRHluYW1pY0ZpZWxkX05hbWVYKSBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIEZBUSBqb3VybmFsLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBGQVEgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIGEgRkFRIHNlYXJjaCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gYSBGQVEgc2VhcmNoIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiBhIEZBUSBzZWFyY2ggb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzaG93biBGQVEgc2VhcmNoIGF0dHJpYnV0ZSBmb3IgRkFRIHNlYXJjaCBzY3JlZW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaGVpZ2h0IGZvciB0aGUgcmljaCB0ZXh0IGVkaXRvciBjb21wb25lbnQgZm9yIHRoaXMgc2NyZWVuLiBFbnRlciBudW1iZXIgKHBpeGVscykgb3IgcGVyY2VudCB2YWx1ZSAocmVsYXRpdmUpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGluZm9ybWF0aW9uIHRvIGJlIGluc2VydGVkIGluIGEgRkFRIGJhc2VkIFRpY2tldC4gIkZ1bGwgRkFRIiBpbmNsdWRlcyB0ZXh0LCBhdHRhY2htZW50cyBhbmQgaW5saW5lIGltYWdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZGFzaGJvYXJkIGJhY2tlbmQuICJMaW1pdCIgZGVmaW5lcyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgZGlzcGxheWVkIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCBhY2Nlc3MgdG8gdGhlIHBsdWdpbiAoZS4gZy4gR3JvdXA6IGFkbWluO2dyb3VwMTtncm91cDI7KS4gIkRlZmF1bHQiIGluZGljYXRlcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgRkFRIEV4cGxvcmVyLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIEZBUSBqb3VybmFsLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIEZBUSBzZWFyY2guIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB3aGVyZSB0aGUgXCdJbnNlcnQgRkFRXCcgbGluayB3aWxsIGJlIGRpc3BsYXllZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5pdGlvbiBvZiBGQVEgaXRlbSBmcmVlIHRleHQgZmllbGQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGlzIEZBUSd9ID0gJ1N1cHByaW1lciBjZXR0ZSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgb3ZlcnZpZXcgc2NyZWVuIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBvdmVydmlldyBzY3JlZW4gb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBwcmludCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHByaW50IHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgcHJpbnQgc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc2VhcmNoIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc2VhcmNoIHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc2VhcmNoIHNjcmVlbiBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHNtYWxsIGZvcm1hdCBvdmVydmlldyBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSB6b29tIHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgem9vbSBzY3JlZW4gb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGlzIEZBUSd9ID0gJ01vZGlmaWVyIGNldHRlIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgbXVsdGlwbGUgbGFuZ3VhZ2VzIG9uIEZBUSBtb2R1bGUuJ30gPSAnQWN0aXZlciBsZSBtb2R1bGUgImxhbmdhZ2VzIG11bHRpcGxlcyIgZGUgbGEgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgc2VydmljZSBhc3NpZ25tZW50IGZvciBGQVFzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgdGhlIHJlbGF0ZWQgYXJ0aWNsZSBmZWF0dXJlIGZvciB0aGUgY3VzdG9tZXIgZnJvbnRlbmQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHZvdGluZyBtZWNoYW5pc20gb24gRkFRIG1vZHVsZS4nfSA9ICdBY3RpdmVyIGxlIG1vZHVsZSBkZSBtw6ljYW5pc21lIGRlIHZvdGUgZGUgbGEgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHBsb3Jlcid9ID0gJ0V4cGxvcmF0ZXVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBSkFYIFJlc3BvbmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQUpBWCBSZXNwb25kZXIgZm9yIFJpY2h0ZXh0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJlYSd9ID0gJ1pvbmUgZGUgbGEgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcmVhLid9ID0gJ1pvbmUgZGUgbGEgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgRGVsZXRlLid9ID0gJ1N1cHByaW1lciBsYSBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBFZGl0Lid9ID0gJ8OJZGl0ZXIgbGEgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSGlzdG9yeS4nfSA9ICdIaXN0b3JpcXVlIGRlIGxhIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEpvdXJuYWwgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgUHJpbnQuJ30gPSAnSW1wcmVzc2lvbiBkZSBsYSBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBzZWFyY2ggYmFja2VuZCByb3V0ZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmllbGQ0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpZWxkNSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGdWxsIEZBUSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiB0aGlzIEZBUSd9ID0gJ0hpc3RvcmlxdWUgZGUgY2V0dGUgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGFjdGl2YXRlZCwgRkFRIGFydGljbGVzIG9mIHN0YXR1cyB0eXBlIGludGVybmFsIGFyZSBhbHNvIHRha2VuIGludG8gYWNjb3VudCBmb3IgdGhlIGFwcHJvdmFsIHByb2Nlc3MuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jbHVkZSBpbnRlcm5hbCBmaWVsZHMgb24gYSBGQVEgYmFzZWQgVGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNsdWRlIHRoZSBuYW1lIG9mIGVhY2ggZmllbGQgaW4gYSBGQVEgYmFzZWQgVGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnRlcmZhY2VzIHdoZXJlIHRoZSBxdWljayBzZWFyY2ggc2hvdWxkIGJlIHNob3duLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydKb3VybmFsJ30gPSAnSm91cm5hbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYW5ndWFnZSBNYW5hZ2VtZW50J30gPSAnR2VzdGlvbiBkZXMgbGFuZ3Vlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYW5ndWFnZSBNYW5hZ2VtZW50Lid9ID0gJ0dlc3Rpb24gZGVzIGxhbmd1ZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbWl0IGZvciB0aGUgc2VhcmNoIHRvIGJ1aWxkIHRoZSBrZXl3b3JkIEZBUSBhcnRpY2xlIGxpc3QuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhpcyBGQVEgaXRlbSd9ID0gJ0xpZXIgdW4gYXV0cmUgb2JqZXQgw6AgY2V0IMOpbMOpbWVudCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIHF1ZXVlIG5hbWVzIGZvciB3aGljaCB0aGUgcmVsYXRlZCBhcnRpY2xlIGZlYXR1cmUgaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIHN0YXRlIHR5cGVzIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBzdGF0ZSB0eXBlcyB3aGljaCBjYW4gYmUgdXNlZCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2Ygc3RhdGUgdHlwZXMgd2hpY2ggY2FuIGJlIHVzZWQgaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIGpvdXJuYWwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSByZXN1bHQgb2YgYSBzZWFyY2ggaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSByZXN1bHQgb2YgYSBzZWFyY2ggaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSByZXN1bHQgb2YgYSBzZWFyY2ggaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIEV4cGxvcmVyIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIEV4cGxvcmVyIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIEV4cGxvcmVyIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBTZWFyY2ggaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgU2VhcmNoIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIFNlYXJjaCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgam91cm5hbCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBnZW5lcmF0ZSBIVE1MIE9wZW5TZWFyY2ggcHJvZmlsZSBmb3Igc2hvcnQgRkFRIHNlYXJjaCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBnZW5lcmF0ZSBIVE1MIE9wZW5TZWFyY2ggcHJvZmlsZSBmb3Igc2hvcnQgRkFRIHNlYXJjaCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gZ2VuZXJhdGUgaHRtbCBPcGVuU2VhcmNoIHByb2ZpbGUgZm9yIHNob3J0IEZBUSBzZWFyY2guJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEZBUSBBcnRpY2xlLid9ID0gJ05vdXZlbCBhcnRpY2xlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgRkFRIGFydGljbGVzIG5lZWQgYXBwcm92YWwgYmVmb3JlIHRoZXkgZ2V0IHB1Ymxpc2hlZC4nfSA9ICdMZXMgbm91dmVhdXggYXJ0aWNsZXMgZG9pdmVudCDDqnRyZSBhcHByb3V2w6lzIGF2YW50IGRcJ8OqdHJlIHB1Ymxpw6lzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBvbiBlYWNoIHBhZ2Ugb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgb24gZWFjaCBwYWdlIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2Ygc2hvd24gaXRlbXMgaW4gbGFzdCBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2Ygc2hvd24gaXRlbXMgaW4gbGFzdCBjcmVhdGVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2Ygc2hvd24gaXRlbXMgaW4gdGhlIHRvcCAxMCBmZWF0dXJlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdXRwdXQgZmlsdGVyIHRvIGFkZCBKYXZhLXNjcmlwdCB0byBDdXN0b21lclRpY2tldE1lc3NhZ2Ugc2NyZWVuLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J091dHB1dCBsaW1pdCBmb3IgdGhlIHJlbGF0ZWQgRkFRIGFydGljbGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBGQVEgaXRlbXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgRkFRIGpvdXJuYWwgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgRkFRIGl0ZW1zIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIEZBUSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGlzIEZBUSd9ID0gJ0ltcHJpbWVyIGNldHRlIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRIFByaW50Lid9ID0gJ0ltcHJlc3Npb24gZGUgbGEgRkFRIHB1YmxpcXVlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRIFpvb20uJ30gPSAnVnVlIGTDqXRhaWxsw6llIGRlIGxhIEZBUSBwdWJsaXF1ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIEZBUSBzZWFyY2guJ30gPSAnUmVjaGVyY2hlIGRhbnMgbGEgRkFRIHB1YmxpcXVlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRLid9ID0gJ0ZBUSBQdWJsaXF1ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVldWUgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGVzIGZvciB2b3RpbmcuIEtleSBtdXN0IGJlIGluIHBlcmNlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1MnfSA9ICdTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBGQVEnfSA9ICdSZWNoZXJjaGVyIGRhbnMgbGEgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBGQVEgU21hbGwuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBGQVEuJ30gPSAnUmVjaGVyY2hlciBkYW5zIGxhIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgaG93IG1hbnkgaXRlbXMgc2hvdWxkIGJlIHNob3duIGluIEpvdXJuYWwgT3ZlcnZpZXcgIlNtYWxsIiBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBob3cgbWFueSBpdGVtcyBzaG91bGQgYmUgc2hvd24gaW4gT3ZlcnZpZXcgIlNtYWxsIiBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZGVmYXVsdCBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEFnZW50RkFRWm9vbS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBDdXN0b21lckZBUVpvb20gKGFuZCBQdWJsaWNGQVFab29tKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBBZ2VudEZBUVpvb20uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBtYXhpbXVtIGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gQ3VzdG9tZXJGQVFab29tIChhbmQgUHVibGljRkFRWm9vbSkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyAiSW5zZXJ0IEZBUSBMaW5rIiBCdXR0b24gaW4gQWdlbnRGQVFab29tU21hbGwgZm9yIHB1YmxpYyBGQVEgQXJ0aWNsZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyAiSW5zZXJ0IEZBUSBUZXh0ICYgTGluayIgLyAiSW5zZXJ0IEZ1bGwgRkFRICYgTGluayIgQnV0dG9uIGluIEFnZW50RkFRWm9vbVNtYWxsIGZvciBwdWJsaWMgRkFRIEFydGljbGVzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgIkluc2VydCBGQVEgVGV4dCIgLyAiSW5zZXJ0IEZ1bGwgRkFRIiBCdXR0b24gaW4gQWdlbnRGQVFab29tU21hbGwuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBGQVEgQXJ0aWNsZSB3aXRoIEhUTUwuJ30gPSAnQWZmaWNoZXIgbFwnYXJ0aWNsZSBlbiBIVE1MLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IEZBUSBwYXRoIHllcy9uby4nfSA9ICdBZmZpY2hlciBsZSBjaGVtaW4gb3VpL25vbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBpbnZhbGlkIGl0ZW1zIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBpdGVtcyBvZiBzdWJjYXRlZ29yaWVzLid9ID0gJ0FmZmljaGVyIGxlcyDDqWzDqW1lbnRzIGRlcyBzb3VzLWNhdMOpZ29yaWVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgbGFzdCBjaGFuZ2UgaXRlbXMgaW4gZGVmaW5lZCBpbnRlcmZhY2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGxhc3QgY3JlYXRlZCBpdGVtcyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgcmVsYXRlZCBhcnRpY2xlcyBvbiBzZXJ2aWNlIGNoYW5nZSBldmVuIHdpdGggZW1wdHkgc3ViamVjdCBhbmQgYm9keS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHRoZSBzdGFycyBmb3IgdGhlIGFydGljbGVzIHdpdGggYSByYXRpbmcgZXF1YWwgb3IgZ3JlYXRlciBsaWtlIHRoZSBkZWZpbmVkIHZhbHVlIChzZXQgdmFsdWUgXCcwXCcgdG8gZGVhY3RpdmF0ZSB0aGUgb3V0cHV0KS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHRvcCAxMCBpdGVtcyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgdm90aW5nIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSBGQVEgd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgem9vbSB2aWV3IG9mIHN1Y2ggRkFRIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIHRvIGRlbGV0ZSBhIEZBUSBpbiBpdHMgem9vbSB2aWV3IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIEZBUSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSBGQVEgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZ28gYmFjayBpbiB0aGUgRkFRIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIEZBUSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NvbHV0aW9uJ30gPSAnU29sdXRpb24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3ltcHRvbSd9ID0gJ1N5bXB0w7RtZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZXh0IE9ubHknfSA9ICdUZXh0ZSB1bmlxdWVtZW50JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBkZWZhdWx0IGxhbmd1YWdlcyBmb3IgdGhlIHJlbGF0ZWQgRkFRIGFydGljbGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSBGQVEsIGUuZy4gRkFRIywgS0IjLCBNeUZBUSMuIFRoZSBkZWZhdWx0IGlzIEZBUSMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBzZXR0aW5nIGRlZmluZXMgdGhhdCBhIFwnRkFRXCcgb2JqZWN0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciBcJ0ZBUVwnIG9iamVjdHMgdXNpbmcgdGhlIFwnTm9ybWFsXCcgbGluayB0eXBlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBkZWZpbmVzIHRoYXQgYSBcJ0ZBUVwnIG9iamVjdCBjYW4gYmUgbGlua2VkIHdpdGggb3RoZXIgXCdGQVFcJyBvYmplY3RzIHVzaW5nIHRoZSBcJ1BhcmVudENoaWxkXCcgbGluayB0eXBlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBkZWZpbmVzIHRoYXQgYSBcJ0ZBUVwnIG9iamVjdCBjYW4gYmUgbGlua2VkIHdpdGggb3RoZXIgXCdUaWNrZXRcJyBvYmplY3RzIHVzaW5nIHRoZSBcJ05vcm1hbFwnIGxpbmsgdHlwZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnVGlja2V0XCcgb2JqZWN0cyB1c2luZyB0aGUgXCdQYXJlbnRDaGlsZFwnIGxpbmsgdHlwZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgYm9keSBmb3IgYXBwcm92YWwgb2YgRkFRIGFydGljbGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBzdWJqZWN0IGZvciBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZS4gUGVybWl0dGVkIG5vdGlmaWNhdGlvbiB0YWdzIGFyZSA8T1RPQk9fRkFRX05VTUJFUj4sIDxPVE9CT19GQVFfQ0FURUdPUllJRD4sIDxPVE9CT19GQVFfSVRFTUlEPj4gPE9UT0JPX0ZBUV9USVRMRT4gYW5kIDxPVE9CT19GQVFfU1RBVEVJRD4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG9vbGJhciBJdGVtIGZvciBhIHNob3J0Y3V0Lid9ID0gJ8OJbMOpbWVudCBiYXJyZSDDoCBvdXRpbHMgcG91ciByYWNjb3VyY2kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2V4dGVybmFsIChjdXN0b21lciknfSA9ICdleHRlcm5lIChjbGllbnQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2ludGVybmFsIChhZ2VudCknfSA9ICdpbnRlcm5lIChvcMOpcmF0ZXVyKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwdWJsaWMgKGFsbCknfSA9ICdwdWJsaXF1ZSAodG91cyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncHVibGljIChwdWJsaWMpJ30gPSAncHVibGlxdWUgKHB1YmxpYyknOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdObycsCiAgICAnT2snLAogICAgJ1NldHRpbmdzJywKICAgICdTdWJtaXQnLAogICAgJ1RoaXMgbWlnaHQgYmUgaGVscGZ1bCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Location="Kernel/Language/hu_FAQ.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6Omh1X0ZBUTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRQWRkCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIEFydGljbGUnfSA9ICdHeUlLIGJlamVneXrDqXMgaG96esOhYWTDoXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0tleXdvcmRzJ30gPSAnS3VsY3NzemF2YWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRlZ29yeSBpcyByZXF1aXJlZC4nfSA9ICdFZ3kga2F0ZWfDs3JpYSBrw7Z0ZWxlesWRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcHByb3ZhbCd9ID0gJ0rDs3bDoWhhZ3nDoXMnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRQ2F0ZWdvcnkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBDYXRlZ29yeSBNYW5hZ2VtZW50J30gPSAnR3lJSyBrYXRlZ8Ozcmlha2V6ZWzDqXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEZBUSBDYXRlZ29yeSd9ID0gJ0d5SUsga2F0ZWfDs3JpYSBob3p6w6FhZMOhc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBGQVEgQ2F0ZWdvcnknfSA9ICdHeUlLIGthdGVnw7NyaWEgc3plcmtlc3p0w6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgY2F0ZWdvcnknfSA9ICdLYXRlZ8OzcmlhIGhvenrDoWFkw6FzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0ZWdvcnknfSA9ICdLYXRlZ8OzcmlhIGhvenrDoWFkw6FzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENhdGVnb3J5J30gPSAnS2F0ZWfDs3JpYSBzemVya2VzenTDqXNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1YmNhdGVnb3J5IG9mJ30gPSAnQWxrYXRlZ8OzcmnDoWphIGVubmVrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYXQgbGVhc3Qgb25lIHBlcm1pc3Npb24gZ3JvdXAuJ30gPSAnVsOhbGFzc3pvbiBsZWdhbMOhYmIgZWd5IGpvZ29zdWx0c8OhZyBjc29wb3J0b3QuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGdyb3VwcyB0aGF0IGNhbiBhY2Nlc3MgYXJ0aWNsZXMgaW4gdGhpcyBjYXRlZ29yeS4nfSA9ICfDnGd5aW50w6l6xZFjc29wb3J0b2ssIGFtZWx5ZWsgaG96esOhZsOpcm5layBhIGJlamVneXrDqXNla2hleiBlYmJlbiBhIGthdGVnw7NyacOhYmFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXaWxsIGJlIHNob3duIGFzIGNvbW1lbnQgaW4gRXhwbG9yZXIuJ30gPSAnQSBiw7ZuZ8Opc3rFkWJlbiBtZWdqZWd5esOpc2vDqW50IGZvZyBtZWdqZWxlbm5pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY2F0ZWdvcnk/J30gPSAnVmFsw7NiYW4gdMO2csO2bG5pIHN6ZXJldG7DqSBlenQgYSBrYXRlZ8OzcmnDoXQ/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gbm90IGRlbGV0ZSB0aGlzIGNhdGVnb3J5LiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBGQVEgYXJ0aWNsZSBhbmQvb3IgaXMgcGFyZW50IG9mIGF0IGxlYXN0IG9uZSBvdGhlciBjYXRlZ29yeSd9ID0KICAgICAgICAnTmVtIHTDtnLDtmxoZXRpIGV6dCBhIGthdGVnw7NyacOhdC4gTGVnYWzDoWJiIGVneSBHeUlLIGJlamVneXrDqXNiZW4gaGFzem7DoWxqw6FrIMOpcy92YWd5IGxlZ2Fsw6FiYiBlZ3kgbcOhc2lrIGthdGVnw7NyaWEgc3rDvGzFkWplJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY2F0ZWdvcnkgaXMgdXNlZCBpbiB0aGUgZm9sbG93aW5nIEZBUSBhcnRpY2xlKHMpJ30gPSAnRXp0IGEga2F0ZWfDs3Jpw6F0IGEga8O2dmV0a2V6xZEgR3lJSyBiZWplZ3l6w6lzZWtuw6lsIGhhc3puw6FsasOhayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGNhdGVnb3J5IGlzIHBhcmVudCBvZiB0aGUgZm9sbG93aW5nIHN1YmNhdGVnb3JpZXMnfSA9ICdFeiBhIGthdGVnw7NyaWEgYSBrw7Z2ZXRrZXrFkSBhbGthdGVnw7NyacOhayBzesO8bMWRamUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgRkFRIGFydGljbGU/J30gPSAnVmFsw7NiYW4gdMO2csO2bG5pIHN6ZXJldG7DqSBlenQgYSBHeUlLIGJlamVneXrDqXN0Pyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEnfSA9ICdHeUlLJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUV4cGxvcmVyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgRXhwbG9yZXInfSA9ICdHeUlLIGLDtm5nw6lzesWRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1F1aWNrIFNlYXJjaCd9ID0gJ0d5b3JzIGtlcmVzw6lzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dpbGRjYXJkcyBhcmUgYWxsb3dlZC4nfSA9ICdIZWx5ZXR0ZXPDrXTFkSBrYXJha3RlcmVrIGVuZ2Vkw6lseWV6ZXR0ZWsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkdmFuY2VkIFNlYXJjaCd9ID0gJ1NwZWNpw6FsaXMga2VyZXPDqXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3ViY2F0ZWdvcmllcyd9ID0gJ0Fsa2F0ZWfDs3Jpw6FrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlcyd9ID0gJ0d5SUsgYmVqZWd5esOpc2VrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHN1YmNhdGVnb3JpZXMgZm91bmQuJ30gPSAnTmVtIHRhbMOhbGhhdMOzayBhbGthdGVnw7NyacOhay4nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRSGlzdG9yeQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZid9ID0gJ0VsxZF6bcOpbnllayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IENvbnRlbnQnfSA9ICdFbMWRem3DqW55dGFydGFsb20nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRldGltZSd9ID0gJ0zDqXRyZWhvesOhcyBpZGVqZSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFKb3VybmFsT3ZlcnZpZXdTbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gRkFRIEpvdXJuYWwgZGF0YSBmb3VuZC4nfSA9ICdOZW0gdGFsw6FsaGF0w7NrIEd5SUsgbmFwbMOzIGFkYXRvay4nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRTGFuZ3VhZ2UKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBMYW5ndWFnZSBNYW5hZ2VtZW50J30gPSAnR3lJSyBueWVsdmtlemVsw6lzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBGQVEgTGFuZ3VhZ2UnfSA9ICdHeUlLIG55ZWx2IGhvenrDoWFkw6FzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEZBUSBMYW5ndWFnZSd9ID0gJ0d5SUsgbnllbHYgc3plcmtlc3p0w6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2UgdGhpcyBmZWF0dXJlIGlmIHlvdSB3YW50IHRvIHdvcmsgd2l0aCBtdWx0aXBsZSBsYW5ndWFnZXMuJ30gPQogICAgICAgICdBa2tvciBoYXN6bsOhbGphIGV6dCBhIHN6b2xnw6FsdGF0w6FzdCwgaGEgdMO2YmIgbnllbHZ2ZWwgc3plcmV0bmUgZG9sZ296bmkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBsYW5ndWFnZSd9ID0gJ055ZWx2IGhvenrDoWFkw6FzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgTGFuZ3VhZ2UnfSA9ICdOeWVsdiBob3p6w6FhZMOhc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBMYW5ndWFnZSd9ID0gJ055ZWx2IHN6ZXJrZXN6dMOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgbGFuZ3VhZ2UuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIEZBUSBhcnRpY2xlISd9ID0KICAgICAgICAnTmVtIHTDtnLDtmxoZXRpIGV6dCBhIG55ZWx2ZXQuIExlZ2Fsw6FiYiBlZ3kgR3lJSyBiZWplZ3l6w6lzYmVuIGhhc3puw6FsasOhayEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBsYW5ndWFnZSBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgRkFRIEFydGljbGUocyknfSA9ICdFenQgYSBueWVsdmV0IGEga8O2dmV0a2V6xZEgR3lJSyBiZWplZ3l6w6lzZWtuw6lsIGhhc3puw6FsasOhayc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFPdmVydmlld05hdkJhcgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29udGV4dCBTZXR0aW5ncyd9ID0gJ0vDtnJueWV6ZXQgYmXDoWxsw610w6Fzb2snOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGFydGljbGVzIHBlciBwYWdlJ30gPSAnR3lJSyBiZWplZ3l6w6lzZWsgb2xkYWxhbmvDqW50JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUU92ZXJ2aWV3U21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEZBUSBkYXRhIGZvdW5kLid9ID0gJ05lbSB0YWzDoWxoYXTDs2sgR3lJSyBhZGF0b2suJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVJlbGF0ZWRBcnRpY2xlcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnb3V0IG9mIDUnfSA9ICdheiA1LWLFkWwnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRU2VhcmNoCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydLZXl3b3JkJ30gPSAnS3VsY3NzesOzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGUgKGUuIGcuIEVxdWFscyAxMCBvciBHcmVhdGVyVGhhbiA2MCknfSA9ICdTemF2YXrDoXMgKHDDqWxkw6F1bCBFZ3llbmzFkSAxMCB2YWd5IE5hZ3lvYmIgbWludCA2MCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0ZSAoZS4gZy4gRXF1YWxzIDI1JSBvciBHcmVhdGVyVGhhbiA3NSUpJ30gPSAnw4lydMOpa2Vsw6lzIChww6lsZMOhdWwgRWd5ZW5sxZEgMjUlIHZhZ3kgTmFneW9iYiBtaW50IDc1JSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwcm92ZWQnfSA9ICdKw7N2w6FoYWd5dmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkIGJ5J30gPSAnVXRvbGrDoXJhIG3Ds2Rvc8OtdG90dGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ3JlYXRlIFRpbWUgKGJlZm9yZS9hZnRlciknfSA9ICdHeUlLIGJlamVneXrDqXMgbMOpdHJlaG96w6FzaSBpZGVqZSAoZWzFkXR0L3V0w6FuKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDcmVhdGUgVGltZSAoYmV0d2VlbiknfSA9ICdHeUlLIGJlamVneXrDqXMgbMOpdHJlaG96w6FzaSBpZGVqZSAoa8O2esO2dHQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENoYW5nZSBUaW1lIChiZWZvcmUvYWZ0ZXIpJ30gPSAnR3lJSyBiZWplZ3l6w6lzIG3Ds2Rvc8OtdMOhc2kgaWRlamUgKGVsxZF0dC91dMOhbiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ2hhbmdlIFRpbWUgKGJldHdlZW4pJ30gPSAnR3lJSyBiZWplZ3l6w6lzIG3Ds2Rvc8OtdMOhc2kgaWRlamUgKGvDtnrDtnR0KSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFTZWFyY2hPcGVuU2VhcmNoRGVzY3JpcHRpb25GdWxsdGV4dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRRnVsbHRleHQnfSA9ICdHeUlLIHN6YWJhZC1zemF2YXMnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRU2VhcmNoU21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBTZWFyY2gnfSA9ICdHeUlLIGtlcmVzw6lzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2ZpbGUgU2VsZWN0aW9uJ30gPSAnUHJvZmlsIGtpdsOhbGFzenTDoXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSd9ID0gJ1N6YXZhesOhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB2b3RlIHNldHRpbmdzJ30gPSAnTmluY3NlbmVrIHN6YXZhesOhc2kgYmXDoWxsw610w6Fzb2snOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWMgdm90ZXMnfSA9ICdBZG90dCBzemF2YXphdG9rJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuIGcuIEVxdWFscyAxMCBvciBHcmVhdGVyVGhhbiA2MCd9ID0gJ3DDqWxkw6F1bCBFZ3llbmzFkSAxMCB2YWd5IE5hZ3lvYmIgbWludCA2MCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRlJ30gPSAnw4lydMOpa2Vsw6lzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHJhdGUgc2V0dGluZ3MnfSA9ICdOaW5jc2VuZWsgw6lydMOpa2Vsw6lzaSBiZcOhbGzDrXTDoXNvayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpYyByYXRlJ30gPSAnQWRvdHQgw6lydMOpa2Vsw6lzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuIGcuIEVxdWFscyAyNSUgb3IgR3JlYXRlclRoYW4gNzUlJ30gPSAncMOpbGTDoXVsIEVneWVubMWRIDI1JSB2YWd5IE5hZ3lvYmIgbWludCA3NSUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ3JlYXRlIFRpbWUnfSA9ICdHeUlLIGJlamVneXrDqXMgbMOpdHJlaG96w6FzaSBpZGVqZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDaGFuZ2UgVGltZSd9ID0gJ0d5SUsgYmVqZWd5esOpcyBtw7Nkb3PDrXTDoXNpIGlkZWplJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVpvb20KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJbmZvcm1hdGlvbid9ID0gJ0d5SUsgaW5mb3Jtw6FjacOzayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRpbmcnfSA9ICfDiXJ0w6lrZWzDqXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZXMnfSA9ICdTemF2YXphdG9rJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHZvdGVzIGZvdW5kISd9ID0gJ05lbSB0YWzDoWxoYXTDs2sgc3phdmF6YXRvayEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdm90ZXMgZm91bmQhIEJlIHRoZSBmaXJzdCBvbmUgdG8gcmF0ZSB0aGlzIEZBUSBhcnRpY2xlLid9ID0gJ05lbSB0YWzDoWxoYXTDs2sgc3phdmF6YXRvayEgTGVneWVuIGF6IGVsc8WRLCBha2kgw6lydMOpa2VsaSBlenQgYSBHeUlLIGJlamVneXrDqXN0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEb3dubG9hZCBBdHRhY2htZW50J30gPSAnTWVsbMOpa2xldCBsZXTDtmx0w6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyBvcGVuIGxpbmtzIGluIHRoZSBmb2xsb3dpbmcgZGVzY3JpcHRpb24gYmxvY2tzLCB5b3UgbWlnaHQgbmVlZCB0byBwcmVzcyBDdHJsIG9yIENtZCBvciBTaGlmdCBrZXkgd2hpbGUgY2xpY2tpbmcgdGhlIGxpbmsgKGRlcGVuZGluZyBvbiB5b3VyIGJyb3dzZXIgYW5kIE9TKS4nfSA9CiAgICAgICAgJ0Ega8O2dmV0a2V6xZEgbGXDrXLDoXNpIGJsb2trb2tiYW4gbMOpdsWRIGhpdmF0a296w6Fzb2sgbWVnbnlpdMOhc8OhaG96IGxlaGV0c8OpZ2VzLCBob2d5IGxlIGtlbGwgbnlvbW5pYSBhIEN0cmwgdmFneSBDbWQgdmFneSBTaGlmdCBiaWxsZW50ecWxdCwgbWlrw7Z6YmVuIGEgaGl2YXRrb3rDoXNyYSBrYXR0aW50IChhIGLDtm5nw6lzesWRasOpdMWRbCDDqXMgb3BlcsOhY2nDs3MgcmVuZHN6ZXLDqXTFkWwgZsO8Z2fFkWVuKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG93IGhlbHBmdWwgd2FzIHRoaXMgYXJ0aWNsZT8gUGxlYXNlIGdpdmUgdXMgeW91ciByYXRpbmcgYW5kIGhlbHAgdG8gaW1wcm92ZSB0aGUgRkFRIERhdGFiYXNlLiBUaGFuayBZb3UhJ30gPQogICAgICAgICdNZW5ueWlyZSB2b2x0IGhhc3pub3MgZXogYSBiZWplZ3l6w6lzPyBLw6lyasO8ayBrw7xsZGplIGVsIG5la8O8bmsgYXogw6lydMOpa2Vsw6lzw6l0IGEgR3lJSyBhZGF0YsOhemlzIHTDtmvDqWxldGVzw610w6lzw6loZXouIEvDtnN6w7ZuasO8ayEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnbm90IGhlbHBmdWwnfSA9ICduZW0gaGFzem5vcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd2ZXJ5IGhlbHBmdWwnfSA9ICduYWd5b24gaGFzem5vcyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFab29tU21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBGQVEgdGl0bGUgdG8gYXJ0aWNsZSBzdWJqZWN0J30gPSAnR3lJSyBjw61tIGhvenrDoWFkw6FzYSBhIGJlamVneXrDqXMgdMOhcmd5w6Fob3onOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZBUSBUZXh0J30gPSAnR3lJSyBzesO2dmVnIGJlc3rDunLDoXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGdWxsIEZBUSd9ID0gJ1RlbGplcyBHeUlLIGJlc3rDunLDoXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGQVEgTGluayd9ID0gJ0d5SUsgaGl2YXRrb3rDoXMgYmVzesO6csOhc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZBUSBUZXh0ICYgTGluayd9ID0gJ0d5SUsgc3rDtnZlZyDDqXMgaGl2YXRrb3rDoXMgYmVzesO6csOhc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZ1bGwgRkFRICYgTGluayd9ID0gJ1RlbGplcyBHeUlLIMOpcyBoaXZhdGtvesOhcyBiZXN6w7pyw6FzYSc7CgogICAgIyBUZW1wbGF0ZTogQ3VzdG9tZXJGQVFFeHBsb3JlcgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGF0ZXN0IHVwZGF0ZWQgRkFRIGFydGljbGVzJ30gPSAnTGVndXTDs2JiIGZyaXNzw610ZXR0IEd5SUsgYmVqZWd5esOpc2VrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEZBUSBhcnRpY2xlcyBmb3VuZC4nfSA9ICdOZW0gdGFsw6FsaGF0w7NrIEd5SUsgYmVqZWd5esOpc2VrLic7CgogICAgIyBUZW1wbGF0ZTogQ3VzdG9tZXJGQVFSZWxhdGVkQXJ0aWNsZXMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbWlnaHQgYmUgaGVscGZ1bCd9ID0gJ0V6IGhhc3pub3MgbGVoZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm91bmQgbm8gaGVscGZ1bCByZXNvdXJjZXMgZm9yIHRoZSBzdWJqZWN0IGFuZCB0ZXh0Lid9ID0gJ05lbSB0YWzDoWxoYXTDs2sgaGFzem5vcyBlcsWRZm9ycsOhc29rIGEgdMOhcmd5aG96IMOpcyBhIHN6w7Z2ZWdoZXouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGUgYSBzdWJqZWN0IG9yIHRleHQgdG8gZ2V0IGEgbGlzdCBvZiBoZWxwZnVsIHJlc291cmNlcy4nfSA9ICfDjXJqb24gYmUgZWd5IHTDoXJneWF0IHZhZ3kgc3rDtnZlZ2V0IGEgaGFzem5vcyBlcsWRZm9ycsOhc29rIGxpc3TDoWrDoW5hayBsZWvDqXLDqXPDqWhlei4nOwoKICAgICMgVGVtcGxhdGU6IEN1c3RvbWVyRkFRU2VhcmNoCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGdWxsdGV4dCBzZWFyY2ggaW4gRkFRIGFydGljbGVzIChlLiBnLiAiSm9obipuIiBvciAiV2lsbCoiKSd9ID0gJ1N6YWJhZC1zemF2YXMga2VyZXPDqXMgYSBHeUlLIGJlamVneXrDqXNla2JlbiAocMOpbGTDoXVsIOKAnkoqbm9z4oCdIHZhZ3kg4oCeS292KuKAnSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSByZXN0cmljdGlvbnMnfSA9ICdTemF2YXrDoXNpIGtvcmzDoXRvesOhc29rJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgRkFRIGFydGljbGVzIHdpdGggdm90ZXMuLi4nfSA9ICdDc2FrIGEgc3phdmF6YXRva2thbCByZW5kZWxrZXrFkSBHeUlLIGJlamVneXrDqXNla+KApic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRlIHJlc3RyaWN0aW9ucyd9ID0gJ8OJcnTDqWtlbMOpcyBrb3Jsw6F0b3rDoXNvayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IEZBUSBhcnRpY2xlcyB3aXRoIHJhdGUuLi4nfSA9ICdDc2FrIGF6IMOpcnTDqWtlbMOpc3NlbCByZW5kZWxrZXrFkSBHeUlLIGJlamVneXrDqXNla+KApic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlc3RyaWN0aW9ucyd9ID0gJ0lkxZEgbWVna8O2dMOpc2VrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgRkFRIGFydGljbGVzIGNyZWF0ZWQnfSA9ICdDc2FrIGF6IGVra29yIGzDqXRyZWhvem90dCBHeUlLIGJlamVneXrDqXNlayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IEZBUSBhcnRpY2xlcyBjcmVhdGVkIGJldHdlZW4nfSA9ICdDc2FrIGF6IGUga8O2esO2dHQgbMOpdHJlaG96b3R0IEd5SUsgYmVqZWd5esOpc2VrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaC1Qcm9maWxlIGFzIFRlbXBsYXRlPyd9ID0gJ0tlcmVzw6lzaSBwcm9maWwgc2FibG9ua8OpbnQ/JzsKCiAgICAjIFRlbXBsYXRlOiBDdXN0b21lckZBUVpvb20KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FydGljbGUgTnVtYmVyJ30gPSAnQmVqZWd5esOpc3N6w6FtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBmb3IgYXJ0aWNsZXMgd2l0aCBrZXl3b3JkJ30gPSAnQmVqZWd5esOpc2VrIGtlcmVzw6lzZSBrdWxjc3N6YXZha2thbCc7CgogICAgIyBUZW1wbGF0ZTogUHVibGljRkFRU2VhcmNoT3BlblNlYXJjaERlc2NyaXB0aW9uRkFRTnVtYmVyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMnfSA9ICdOeWlsdsOhbm9zJzsKCiAgICAjIFRlbXBsYXRlOiBQdWJsaWNGQVFTZWFyY2hSZXN1bHRTaG9ydAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQmFjayB0byBGQVEgRXhwbG9yZXInfSA9ICdWaXNzemEgYSBHeUlLIGLDtm5nw6lzesWRaMO2eic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFBZGQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkIHJ3IHBlcm1pc3Npb24hJ30gPSAnw41yw6FzLCBvbHZhc8OhcyBqb2dvc3VsdHPDoWdyYSB2YW4gc3rDvGtzw6lnZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY2F0ZWdvcmllcyBmb3VuZCB3aGVyZSB1c2VyIGhhcyByZWFkL3dyaXRlIHBlcm1pc3Npb25zISd9ID0gJ05lbSB0YWzDoWxoYXTDs2sgb2x5YW4ga2F0ZWfDs3Jpw6FrLCBhaG9sIGEgZmVsaGFzem7DoWzDs25hayDDrXLDoXNpL29sdmFzw6FzaSBqb2dvc3VsdHPDoWdhaSB2YW5uYWshJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRlZmF1bHQgbGFuZ3VhZ2UgZm91bmQgYW5kIGNhblwndCBjcmVhdGUgYSBuZXcgb25lLid9ID0gJ05lbSB0YWzDoWxoYXTDsyBhbGFww6lydGVsbWV6ZXR0IG55ZWx2LCDDqXMgbmVtIGxlaGV0IMO6amF0IGzDqXRyZWhvem5pLic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFDYXRlZ29yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBDYXRlZ29yeUlEISd9ID0gJ0thdGVnw7NyaWEtYXpvbm9zw610w7Mgc3rDvGtzw6lnZXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgY2F0ZWdvcnkgc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJ0VneSBrYXRlZ8OzcmnDoW5hayByZW5kZWxrZXpuaWUga2VsbCBuw6l2dmVsISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGNhdGVnb3J5IGFscmVhZHkgZXhpc3RzJ30gPSAnRXogYSBrYXRlZ8OzcmlhIG3DoXIgbMOpdGV6aWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBjYXRlZ29yeSBhbHJlYWR5IGV4aXN0cyEnfSA9ICdFeiBhIGthdGVnw7NyaWEgbcOhciBsw6l0ZXppayEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQ2F0ZWdvcnlJRCBpcyBnaXZlbiEnfSA9ICdOaW5jcyBrYXRlZ8OzcmlhLWF6b25vc8OtdMOzIG1lZ2FkdmEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGNhdGVnb3J5ICVzISd9ID0gJ05lbSBzaWtlcsO8bHQgYSh6KSAlcyBrYXRlZ8OzcmlhIHTDtnJsw6lzZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGNhdGVnb3J5IHVwZGF0ZWQhJ30gPSAnR3lJSyBrYXRlZ8OzcmlhIGZyaXNzw610dmUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBjYXRlZ29yeSBhZGRlZCEnfSA9ICdHeUlLIGthdGVnw7NyaWEgaG96esOhYWR2YSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIENhdGVnb3J5J30gPSAnS2F0ZWfDs3JpYSB0w7ZybMOpc2UnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBJdGVtSUQgaXMgZ2l2ZW4hJ30gPSAnTmluY3MgZWxlbWF6b25vc8OtdMOzIG1lZ2FkdmEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIG5vIHBlcm1pc3Npb24gZm9yIHRoaXMgY2F0ZWdvcnkhJ30gPSAnTmluY3Mgam9nb3N1bHRzw6FnYSBlaGhleiBhIGthdGVnw7NyacOhaG96ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBGQVEgYXJ0aWNsZSAlcyEnfSA9ICdOZW0gc2lrZXLDvGx0IGEoeikgJXMgR3lJSyBiZWplZ3l6w6lzIHTDtnJsw6lzZSEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRRXhwbG9yZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBDYXRlZ29yeUlEICVzIGlzIGludmFsaWQuJ30gPSAnQSh6KSAlcyBrYXRlZ8OzcmlhLWF6b25vc8OtdMOzIMOpcnbDqW55dGVsZW4uJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUhpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIEl0ZW1JRCBpcyBnaXZlbiEnfSA9ICdOZW0gbGVoZXQgbWVnamVsZW7DrXRlbmkgYXogZWzFkXptw6lueWVrZXQsIG1pdmVsIG5pbmNzIGVsZW1hem9ub3PDrXTDsyBtZWdhZHZhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSGlzdG9yeSd9ID0gJ0d5SUsgZWzFkXptw6lueWVrJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUpvdXJuYWwucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBKb3VybmFsJ30gPSAnR3lJSyBuYXBsw7MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBjb25maWcgb3B0aW9uIEZBUTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3J30gPSAnQSBGQVE6OkZyb250ZW5kOjpPdmVydmlldyBrb25maWd1csOhY2nDs3MgYmXDoWxsw610w6FzIHN6w7xrc8OpZ2VzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZyBvcHRpb24gRkFROjpGcm9udGVuZDo6T3ZlcnZpZXcgbmVlZHMgdG8gYmUgYSBIQVNIIHJlZiEnfSA9CiAgICAgICAgJ0EgRkFROjpGcm9udGVuZDo6T3ZlcnZpZXcga29uZmlndXLDoWNpw7NzIGJlw6FsbMOtdMOhc25hayBraXZvbmF0LWhpdmF0a296w6FzbmFrIGtlbGwgbGVubmllISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjb25maWcgb3B0aW9uIGZvdW5kIGZvciB0aGUgdmlldyAiJXMiISd9ID0gJ05lbSB0YWzDoWxoYXTDsyBrb25maWd1csOhY2nDs3MgYmXDoWxsw610w6FzIGEoeikg4oCeJXPigJ0gbsOpemV0aGV6ISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFMYW5ndWFnZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gTGFuZ3VhZ2VJRCBpcyBnaXZlbiEnfSA9ICdOaW5jcyBueWVsdmF6b25vc8OtdMOzIG1lZ2FkdmEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBuYW1lIGlzIHJlcXVpcmVkISd9ID0gJ0EgbsOpdiBrw7Z0ZWxlesWRISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGxhbmd1YWdlIGFscmVhZHkgZXhpc3RzISd9ID0gJ0V6IGEgbnllbHYgbcOhciBsw6l0ZXppayEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgbGFuZ3VhZ2UgJXMhJ30gPSAnTmVtIHNpa2Vyw7xsdCBhKHopICVzIG55ZWx2IHTDtnJsw6lzZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGxhbmd1YWdlIHVwZGF0ZWQhJ30gPSAnR3lJSyBueWVsdiBmcmlzc8OtdHZlISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgbGFuZ3VhZ2UgYWRkZWQhJ30gPSAnR3lJSyBueWVsdiBob3p6w6FhZHZhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgTGFuZ3VhZ2UgJXMnfSA9ICclcyBueWVsdiB0w7ZybMOpc2UnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRUHJpbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc3VsdCd9ID0gJ0VyZWRtw6lueSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IHVwZGF0ZSd9ID0gJ1V0b2xzw7MgZnJpc3PDrXTDqXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIER5bmFtaWMgRmllbGRzJ30gPSAnR3lJSyBkaW5hbWlrdXMgbWV6xZFrJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUVJpY2hUZXh0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyAlcyBpcyBnaXZlbiEnfSA9ICdOaW5jcyAlcyBtZWdhZHZhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgbG9hZCBMYW5ndWFnZU9iamVjdCEnfSA9ICdOZW0gbGVoZXQgYmV0w7ZsdGVuaSBhIG55ZWx2b2JqZWt0dW1vdCEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBSZXN1bHQhJ30gPSAnTmluY3MgdGFsw6FsYXQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBOdW1iZXInfSA9ICdHeUlLIHN6w6FtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgQ2hhbmdlZCBieSd9ID0gJ1V0b2xqw6FyYSBtw7Nkb3PDrXRvdHRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJdGVtIENyZWF0ZSBUaW1lIChiZWZvcmUvYWZ0ZXIpJ30gPSAnR3lJSyBlbGVtIGzDqXRyZWhvesOhc2kgaWRlamUgKGVsxZF0dC91dMOhbiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ3JlYXRlIFRpbWUgKGJldHdlZW4pJ30gPSAnR3lJSyBlbGVtIGzDqXRyZWhvesOhc2kgaWRlamUgKGvDtnrDtnR0KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSXRlbSBDaGFuZ2UgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJ0d5SUsgZWxlbSBtw7Nkb3PDrXTDoXNpIGlkZWplIChlbMWRdHQvdXTDoW4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJdGVtIENoYW5nZSBUaW1lIChiZXR3ZWVuKSd9ID0gJ0d5SUsgZWxlbSBtw7Nkb3PDrXTDoXNpIGlkZWplIChrw7Z6w7Z0dCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXF1YWxzJ30gPSAnRWd5ZW5sxZEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JlYXRlciB0aGFuJ30gPSAnTmFneW9iYiBtaW50JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyZWF0ZXIgdGhhbiBlcXVhbHMnfSA9ICdOYWd5b2JiIG1pbnQgdmFneSBlZ3llbmzFkSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTbWFsbGVyIHRoYW4nfSA9ICdLaXNlYmIgbWludCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTbWFsbGVyIHRoYW4gZXF1YWxzJ30gPSAnS2lzZWJiIG1pbnQgdmFneSBlZ3llbmzFkSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIEZpbGVJRCEnfSA9ICdGw6FqbGF6b25vc8OtdMOzIHN6w7xrc8OpZ2VzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGFua3MgZm9yIHlvdXIgdm90ZSEnfSA9ICdLw7ZzesO2bmrDvGsgYSBzemF2YXphdMOhdCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgYWxyZWFkeSB2b3RlZCEnfSA9ICdNw6FyIHN6YXZhem90dCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gcmF0ZSBzZWxlY3RlZCEnfSA9ICdOaW5jcyDDqXJ0w6lrZWzDqXMga2l2w6FsYXN6dHZhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdm90aW5nIG1lY2hhbmlzbSBpcyBub3QgZW5hYmxlZCEnfSA9ICdBIHN6YXZhesOhc2kgbWVjaGFuaXptdXMgbmluY3MgZW5nZWTDqWx5ZXp2ZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHZvdGUgcmF0ZSBpcyBub3QgZGVmaW5lZCEnfSA9ICdBIHN6YXZhesOhc8OpcnTDqWtlbMOpcyBuaW5jcyBtZWdoYXTDoXJvenZhISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQ3VzdG9tZXJGQVFQcmludC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgUHJpbnQnfSA9ICdHeUlLIGJlamVneXrDqXMgbnlvbXRhdMOhc2EnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0N1c3RvbWVyRkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGVkIGJldHdlZW4nfSA9ICdMw6l0cmVob3p2YSBlemVrIGvDtnrDtnR0JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9DdXN0b21lckZBUVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgSXRlbUlEISd9ID0gJ0VsZW1hem9ub3PDrXTDsyBzesO8a3PDqWdlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL1B1YmxpY0ZBUUV4cGxvcmVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZXMgKG5ldyBjcmVhdGVkKSd9ID0gJ0d5SUsgYmVqZWd5esOpc2VrICjDumpvbm5hbiBsw6l0cmVob3p2YSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGVzIChyZWNlbnRseSBjaGFuZ2VkKSd9ID0gJ0d5SUsgYmVqZWd5esOpc2VrIChsZWd1dMOzYmIgbcOzZG9zw610dmEpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlcyAoVG9wIDEwKSd9ID0gJ0d5SUsgYmVqZWd5esOpc2VrIChsZWdqb2JiIDEwKSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvUHVibGljRkFRUlNTLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBUeXBlIGlzIGdpdmVuISd9ID0gJ05pbmNzIHTDrXB1cyBtZWdhZHZhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlIG11c3QgYmUgZWl0aGVyIExhc3RDcmVhdGUgb3IgTGFzdENoYW5nZSBvciBUb3AxMCEnfSA9ICdBIHTDrXB1cyBjc2FrIExhc3RDcmVhdGUsIExhc3RDaGFuZ2UgdmFneSBUb3AxMCBsZWhldCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBSU1MgZmlsZSEnfSA9ICdOZW0gbGVoZXQgbMOpdHJlaG96bmkgUlNTLWbDoWpsdCEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9IZWFkZXJNZXRhL0FnZW50RkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoRkFRRnVsbHRleHQpJ30gPSAnJXMgKEd5SUsgc3phYmFkLXN6YXZhcyknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9IZWFkZXJNZXRhL0N1c3RvbWVyRkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAtIEN1c3RvbWVyICglcyknfSA9ICclcyAtIMO8Z3lmw6lsICglcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgLSBDdXN0b21lciAoRkFRRnVsbHRleHQpJ30gPSAnJXMgLSDDvGd5ZsOpbCAoR3lJSyBzemFiYWQtc3phdmFzKSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0hlYWRlck1ldGEvUHVibGljRkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAtIFB1YmxpYyAoJXMpJ30gPSAnJXMgLSBueWlsdsOhbm9zICglcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgLSBQdWJsaWMgKEZBUUZ1bGx0ZXh0KSd9ID0gJyVzIC0gbnlpbHbDoW5vcyAoR3lJSyBzemFiYWQtc3phdmFzKSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0xheW91dC9GQVEucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgcmF0ZSEnfSA9ICfDiXJ0w6lrZWzDqXMgc3rDvGtzw6lnZXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgYXJ0aWNsZSBpcyBlbXB0eSEnfSA9ICdFeiBhIGJlamVneXrDqXMgw7xyZXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhdGVzdCBjcmVhdGVkIEZBUSBhcnRpY2xlcyd9ID0gJ0xlZ3V0w7NiYiBsw6l0cmVob3pvdHQgR3lJSyBiZWplZ3l6w6lzZWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG9wIDEwIEZBUSBhcnRpY2xlcyd9ID0gJ0xlZ2pvYmIgMTAgR3lJSyBiZWplZ3l6w6lzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTGlua09iamVjdC9GQVEucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRlbnQgVHlwZSd9ID0gJ1RhcnRhbG9tdMOtcHVzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0R5bmFtaWNGaWVsZC9Ecml2ZXIvRkFRLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgdGhlIGF0dHJpYnV0ZSB3aGljaCBGQVFzIHdpbGwgYmUgc2VhcmNoZWQgYnknfSA9ICdBem9uIGF0dHJpYsO6dHVtIGtpdsOhbGFzenTDoXNhLCBhbWVseSBhbGFwasOhbiBhIEd5SUsgYmVqZWd5esOpc2VrIGtlcmVzdmUgbGVzem5layc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHRlcm5hbC1zb3VyY2Uga2V5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCB0aGUgdHlwZSBvZiBkaXNwbGF5J30gPSAnJzsKCiAgICAjIERhdGFiYXNlIFhNTCAvIFNPUE0gRGVmaW5pdGlvbjogRkFRLnNvcG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2ludGVybmFsJ30gPSAnYmVsc8WRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2V4dGVybmFsJ30gPSAna8O8bHPFkSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwdWJsaWMnfSA9ICdueWlsdsOhbm9zJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBmaWx0ZXIgZm9yIEhUTUwgb3V0cHV0IHRvIGFkZCBsaW5rcyBiZWhpbmQgYSBkZWZpbmVkIHN0cmluZy4gVGhlIGVsZW1lbnQgSW1hZ2UgYWxsb3dzIHR3byBpbnB1dCBraW5kcy4gRmlyc3QgdGhlIG5hbWUgb2YgYW4gaW1hZ2UgKGUuZy4gZmFxLnBuZykuIEluIHRoaXMgY2FzZSB0aGUgT1RPQk8gaW1hZ2UgcGF0aCB3aWxsIGJlIHVzZWQuIFRoZSBzZWNvbmQgcG9zc2liaWxpdHkgaXMgdG8gaW5zZXJ0IHRoZSBsaW5rIHRvIHRoZSBpbWFnZS4nfSA9CiAgICAgICAgJ0VneSBzesWxcsWRIGEgSFRNTCBraW1lbmV0aGV6LCBob2d5IGhpdmF0a296w6Fzb2thdCBhZGpvbiBlZ3kgbWVnaGF0w6Fyb3pvdHQgc3rDtnZlZyBtw7Znw6kuIEF6IEltYWdlIGVsZW0ga8OpdGbDqWxlIGJlbWVuZXRldCBmb2dhZC4gQXogZWxzxZEgYSBrw6lwIG5ldmUgKHDDqWxkw6F1bCBmYXEucG5nKS4gRWJiZW4gYXogZXNldGJlbiBheiBPVE9CTyBrw6lwZWsgw7p0dm9uYWxhIGxlc3ogZmVsaGFzem7DoWx2YS4gQSBtw6Fzb2RpayBsZWhldMWRc8OpZyBhIGvDqXByZSBtdXRhdMOzIGhpdmF0a296w6FzIGJlc3rDunLDoXNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIGFydGljbGUnfSA9ICdHeUlLIGJlamVneXrDqXMgaG96esOhYWTDoXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NTUyBjb2xvciBmb3IgdGhlIHZvdGluZyByZXN1bHQuJ30gPSAnQ1NTIHN6w61uIGEgc3phdmF6w6FzIGVyZWRtw6luecOpaGV6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSBUaW1lIFRvIExlYXZlIGZvciBGQVEgaXRlbXMuJ30gPSAnR3lvcnPDrXTDs3TDoXIgaWTFkSBhIEd5SUsgZWxlbWVrIGVsaGFnecOhc8OhaG96Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSBNYW5hZ2VtZW50J30gPSAnS2F0ZWfDs3JpYWtlemVsw6lzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGVnb3J5IE1hbmFnZW1lbnQuJ30gPSAnS2F0ZWfDs3JpYWtlemVsw6lzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgUHJpbnQuJ30gPSAnw5xneWbDqWwgR3lJSyBueW9tdGF0w6FzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgUmVsYXRlZCBBcnRpY2xlcyd9ID0gJ8OcZ3lmw6lsIEd5SUsga2FwY3NvbMOzZMOzIGJlamVneXrDqXNlayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgUmVsYXRlZCBBcnRpY2xlcy4nfSA9ICfDnGd5ZsOpbCBHeUlLIGthcGNzb2zDs2TDsyBiZWplZ3l6w6lzZWsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBab29tLid9ID0gJ8OcZ3lmw6lsIEd5SUsgbmFnecOtdMOhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIHNlYXJjaC4nfSA9ICfDnGd5ZsOpbCBHeUlLIGtlcmVzw6lzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEuJ30gPSAnw5xneWbDqWwgR3lJSy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVjaW1hbCBwbGFjZXMgb2YgdGhlIHZvdGluZyByZXN1bHQuJ30gPSAnQSBzemF2YXrDoXNpIGVyZWRtw6lueSB0aXplZGVzamVneWVpbmVrIHN6w6FtYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBjYXRlZ29yeSBuYW1lLid9ID0gJ0FsYXDDqXJ0ZWxtZXpldHQga2F0ZWfDs3JpYW7DqXYuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbGFuZ3VhZ2UgZm9yIEZBUSBhcnRpY2xlcyBvbiBzaW5nbGUgbGFuZ3VhZ2UgbW9kZS4nfSA9ICdBIEd5SUsgYmVqZWd5esOpc2VrIGFsYXDDqXJ0ZWxtZXpldHQgbnllbHZlIGVneW55ZWx2xbEgbcOzZGJhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBtYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duLid9ID0KICAgICAgICAnRWd5IEd5SUsgYmVqZWd5esOpc2JlbiBtZWdqZWxlbsOtdGVuZMWRIGPDrW1layBhbGFww6lydGVsbWV6ZXR0IGxlZ25hZ3lvYmIgbcOpcmV0ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBwcmlvcml0eSBvZiB0aWNrZXRzIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0KICAgICAgICAnQSBqZWd5ZWsgYWxhcMOpcnRlbG1lemV0dCBwcmlvcml0w6FzYSBhIEd5SUsgYmVqZWd5esOpc2VrIGrDs3bDoWhhZ3nDoXPDoW7DoWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdGUgZm9yIEZBUSBlbnRyeS4nfSA9ICdBIEd5SUsgYmVqZWd5esOpcyBhbGFww6lydGVsbWV6ZXR0IMOhbGxhcG90YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0ZSBvZiB0aWNrZXRzIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0gJ0EgamVneWVrIGFsYXDDqXJ0ZWxtZXpldHQgw6FsbGFwb3RhIGEgR3lJSyBiZWplZ3l6w6lzZWsgasOzdsOhaGFnecOhc8OhbsOhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCB0eXBlIG9mIHRpY2tldHMgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPSAnQSBqZWd5ZWsgYWxhcMOpcnRlbG1lemV0dCB0w61wdXNhIGEgR3lJSyBiZWplZ3l6w6lzZWsgasOzdsOhaGFnecOhc8OhbsOhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCB2YWx1ZSBmb3IgdGhlIEFjdGlvbiBwYXJhbWV0ZXIgZm9yIHRoZSBwdWJsaWMgZnJvbnRlbmQuIFRoZSBBY3Rpb24gcGFyYW1ldGVyIGlzIHVzZWQgaW4gdGhlIHNjcmlwdHMgb2YgdGhlIHN5c3RlbS4nfSA9CiAgICAgICAgJ0EgbcWxdmVsZXQgcGFyYW3DqXRlciBhbGFww6lydGVsbWV6ZXR0IMOpcnTDqWtlIGEgbnlpbHbDoW5vcyBlbMWRdMOpdHByb2dyYW1uw6FsLiBBIG3FsXZlbGV0IHBhcmFtw6l0ZXJ0IGEgcmVuZHN6ZXIgcGFyYW5jc2bDoWpsamFpYmFuIGhhc3puw6FsasOhay4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIEFjdGlvbnMgd2hlcmUgYSBzZXR0aW5ncyBidXR0b24gaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rZWQgb2JqZWN0cyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gUGxlYXNlIG5vdGUgdGhhdCB0aGVzZSBBY3Rpb25zIG11c3QgaGF2ZSByZWdpc3RlcmVkIHRoZSBmb2xsb3dpbmcgSlMgYW5kIENTUyBmaWxlczogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgYW5kIENvcmUuQWdlbnQuTGlua09iamVjdC5qcy4nfSA9CiAgICAgICAgJ03FsXZlbGV0ZWsgbWVnaGF0w6Fyb3rDoXNhLCBhaG9sIGVneSBiZcOhbGzDrXTDoXNvayBnb21iIMOpcmhldMWRIGVsIGEga2FwY3NvbHQgb2JqZWt0dW1vayBmZWzDvGxldGkgZWxlbWVuIChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9IOKAnsO2c3N6ZXRldHTigJ0pLiBOZSBmZWxlZGplLCBob2d5IGV6ZWtuZWsgYSBtxbF2ZWxldGVrbmVrIHJlbmRlbGtlem5pw7xrIGtlbGwgYSBrw7Z2ZXRrZXrFkSBKUyDDqXMgQ1NTIGbDoWpsb2sgcmVnaXN6dHLDoWzDoXPDoXZhbDogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgw6lzIENvcmUuQWdlbnQuTGlua09iamVjdC5qcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIGlmIHRoZSBGQVEgdGl0bGUgc2hvdWxkIGJlIGNvbmNhdGVuYXRlZCB0byBhcnRpY2xlIHN1YmplY3QuJ30gPQogICAgICAgICdNZWdoYXTDoXJvenphLCBob2d5IGEgR3lJSyBjw61tw6l0IMO2c3N6ZSBrZWxsLWUgZsWxem5pIGEgYmVqZWd5esOpcyB0w6FyZ3nDoXZhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgRkFRcyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90ZTogT25seSBGQVEgYXR0cmlidXRlcyBhbmQgZHluYW1pYyBmaWVsZHMgKER5bmFtaWNGaWVsZF9OYW1lWCkgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLid9ID0KICAgICAgICAnQW5uYWsgbWVnaGF0w6Fyb3rDoXNhLCBob2d5IG1lbHkgb3N6bG9wb2sgbGVneWVuZWsgbMOhdGhhdMOzayBhIGthcGNzb2x0IEd5SUstb2sgZmVsw7xsZXRpIGVsZW1lbiAoTGlua09iamVjdDo6Vmlld01vZGUgPSDigJ7DtnNzemV0ZXR04oCdKS4gTWVnamVneXrDqXM6IGNzYWsgR3lJSyBhdHRyaWLDunR1bW9rIMOpcyBkaW5hbWlrdXMgbWV6xZFrIChEeW5hbWljRmllbGRfTsOpdlgpIGVuZ2Vkw6lseWV6ZXR0ZWsgYSBEZWZhdWx0Q29sdW1ucyDDqXJ0w6lrZWluw6lsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgRkFRIGpvdXJuYWwuJ30gPQogICAgICAgICdFZ3kgw6F0dGVraW50xZEgbW9kdWx0IGhhdMOhcm96IG1lZyBlZ3kgR3lJSyBuYXBsw7Mga2lzIG7DqXpldMOpbmVrIG1lZ2plbGVuw610w6lzw6loZXouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBGQVEgbGlzdC4nfSA9CiAgICAgICAgJ0VneSDDoXR0ZWtpbnTFkSBtb2R1bHQgaGF0w6Fyb3ogbWVnIGVneSBHeUlLIGxpc3RhIGtpcyBuw6l6ZXTDqW5layBtZWdqZWxlbsOtdMOpc8OpaGV6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIGEgRkFRIHNlYXJjaCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSBheiBhbGFww6lydGVsbWV6ZXR0IEd5SUsgYXR0cmliw7p0dW1vdCBhIEd5SUsgcmVuZGV6w6lzaGV6IGF6IMO8Z3lpbnTDqXrFkWkgZmVsw7xsZXQgR3lJSyBrZXJlc8Opc8OpYmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIGEgRkFRIHNlYXJjaCBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSBheiBhbGFww6lydGVsbWV6ZXR0IEd5SUsgYXR0cmliw7p0dW1vdCBhIEd5SUsgcmVuZGV6w6lzaGV6IGF6IMO8Z3lmw6lsZmVsw7xsZXQgR3lJSyBrZXJlc8Opc8OpYmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIGEgRkFRIHNlYXJjaCBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01lZ2hhdMOhcm96emEgYXogYWxhcMOpcnRlbG1lemV0dCBHeUlLIGF0dHJpYsO6dHVtb3QgYSBHeUlLIHJlbmRlesOpc2hleiBhIG55aWx2w6Fub3MgZmVsw7xsZXQgR3lJSyBrZXJlc8Opc8OpYmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIHRoZSBGQVEgRXhwbG9yZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01lZ2hhdMOhcm96emEgYXogYWxhcMOpcnRlbG1lemV0dCBHeUlLIGF0dHJpYsO6dHVtb3QgYSBHeUlLIHJlbmRlesOpc2hleiBheiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0IEd5SUsgYsO2bmfDqXN6xZFqw6liZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSBheiBhbGFww6lydGVsbWV6ZXR0IEd5SUsgYXR0cmliw7p0dW1vdCBhIEd5SUsgcmVuZGV6w6lzaGV6IGF6IMO8Z3lmw6lsZmVsw7xsZXQgR3lJSyBiw7ZuZ8Opc3rFkWrDqWJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSBheiBhbGFww6lydGVsbWV6ZXR0IEd5SUsgYXR0cmliw7p0dW1vdCBhIEd5SUsgcmVuZGV6w6lzaGV6IGEgbnlpbHbDoW5vcyBmZWzDvGxldCBHeUlLIGLDtm5nw6lzesWRasOpYmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ01lZ2hhdMOhcm96emEgYXogYWxhcMOpcnRlbG1lemV0dCBHeUlLIHNvcnJlbmRldCBheiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0IEd5SUsgYsO2bmfDqXN6xZFqw6luZWsgZXJlZG3DqW55w6liZW4uIEZlbDogbGVncsOpZ2ViYmkgZmVsw7xscmUuIExlOiBsZWfDumphYmIgZmVsw7xscmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSBheiBhbGFww6lydGVsbWV6ZXR0IEd5SUsgc29ycmVuZGV0IGF6IMO8Z3lmw6lsZmVsw7xsZXQgR3lJSyBiw7ZuZ8Opc3rFkWrDqW5layBlcmVkbcOpbnnDqWJlbi4gRmVsOiBsZWdyw6lnZWJiaSBmZWzDvGxyZS4gTGU6IGxlZ8O6amFiYiBmZWzDvGxyZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSBheiBhbGFww6lydGVsbWV6ZXR0IEd5SUsgc29ycmVuZGV0IGEgbnlpbHbDoW5vcyBmZWzDvGxldCBHeUlLIGLDtm5nw6lzesWRasOpbmVrIGVyZWRtw6luecOpYmVuLiBGZWw6IGxlZ3LDqWdlYmJpIGZlbMO8bHJlLiBMZTogbGVnw7pqYWJiIGZlbMO8bHJlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICdNZWdoYXTDoXJvenphIGVneSBrZXJlc8Opc2kgZXJlZG3DqW55IGFsYXDDqXJ0ZWxtZXpldHQgR3lJSyBzb3JyZW5kasOpdCBheiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0ZW4uIEZlbDogbGVncsOpZ2ViYmkgZmVsw7xscmUuIExlOiBsZWfDumphYmIgZmVsw7xscmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ01lZ2hhdMOhcm96emEgZWd5IGtlcmVzw6lzaSBlcmVkbcOpbnkgYWxhcMOpcnRlbG1lemV0dCBHeUlLIHNvcnJlbmRqw6l0IGF6IMO8Z3lmw6lsZmVsw7xsZXRlbi4gRmVsOiBsZWdyw6lnZWJiaSBmZWzDvGxyZS4gTGU6IGxlZ8O6amFiYiBmZWzDvGxyZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ01lZ2hhdMOhcm96emEgZWd5IGtlcmVzw6lzaSBlcmVkbcOpbnkgYWxhcMOpcnRlbG1lemV0dCBHeUlLIHNvcnJlbmRqw6l0IGEgbnlpbHbDoW5vcyBmZWzDvGxldGVuLiBGZWw6IGxlZ3LDqWdlYmJpIGZlbMO8bHJlLiBMZTogbGVnw7pqYWJiIGZlbMO8bHJlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNob3duIEZBUSBzZWFyY2ggYXR0cmlidXRlIGZvciBGQVEgc2VhcmNoIHNjcmVlbi4nfSA9CiAgICAgICAgJ01lZ2hhdMOhcm96emEgYXogYWxhcMOpcnRlbG1lemV0dGVuIG1lZ2plbGVuw610ZXR0IEd5SUsga2VyZXPDqXNpIGF0dHJpYsO6dHVtb3QgYSBHeUlLIGtlcmVzw6lzIGvDqXBlcm55xZFuw6lsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBoZWlnaHQgZm9yIHRoZSByaWNoIHRleHQgZWRpdG9yIGNvbXBvbmVudCBmb3IgdGhpcyBzY3JlZW4uIEVudGVyIG51bWJlciAocGl4ZWxzKSBvciBwZXJjZW50IHZhbHVlIChyZWxhdGl2ZSkuJ30gPQogICAgICAgICdNZWdoYXTDoXJvenphIGEgUmljaCBUZXh0IHN6ZXJrZXN6dMWRLcO2c3N6ZXRldsWRIG1hZ2Fzc8OhZ8OhdCBlbm7DqWwgYSBrw6lwZXJuecWRbsOpbC4gU3rDoW0gKGvDqXBwb250KSB2YWd5IHN6w6F6YWzDqWsgKHJlbGF0w612KSDDqXJ0w6lrZXQgYWRqb24gbWVnLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBpbmZvcm1hdGlvbiB0byBiZSBpbnNlcnRlZCBpbiBhIEZBUSBiYXNlZCBUaWNrZXQuICJGdWxsIEZBUSIgaW5jbHVkZXMgdGV4dCwgYXR0YWNobWVudHMgYW5kIGlubGluZSBpbWFnZXMuJ30gPQogICAgICAgICdNZWdoYXTDoXJvenphIGVneSBHeUlLLWFsYXDDuiBqZWd5YmUgYmVzesO6cmFuZMOzIGluZm9ybcOhY2nDs2thdC4gQSDigJ5UZWxqZXMgR3lJS+KAnSBzesO2dmVnZXQsIG1lbGzDqWtsZXRla2V0IMOpcyBiZcOhZ3lhem90dCBrw6lwZWtldCB0YXJ0YWxtYXouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZC4gIkxpbWl0IiBkZWZpbmVzIHRoZSBudW1iZXIgb2YgZW50cmllcyBkaXNwbGF5ZWQgYnkgZGVmYXVsdC4gIkdyb3VwIiBpcyB1c2VkIHRvIHJlc3RyaWN0IGFjY2VzcyB0byB0aGUgcGx1Z2luIChlLiBnLiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgaW5kaWNhdGVzIGlmIHRoZSBwbHVnaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIGlmIHRoZSB1c2VyIG5lZWRzIHRvIGVuYWJsZSBpdCBtYW51YWxseS4nfSA9CiAgICAgICAgJ01lZ2hhdMOhcm96emEgYSB2ZXrDqXJsxZFwdWx0IGjDoXR0w6lycHJvZ3JhbSBwYXJhbcOpdGVyZWl0LiBBIOKAnkxpbWl04oCdIGhhdMOhcm96emEgbWVnIGF6IGFsYXDDqXJ0ZWxtZXpldHRlbiBtZWdqZWxlbsOtdGV0dCBiZWplZ3l6w6lzZWsgc3rDoW3DoXQuIEEg4oCeR3JvdXDigJ0gaGFzem7DoWxoYXTDsyBhIGhvenrDoWbDqXLDqXMga29ybMOhdG96w6Fzw6Fob3ogYSBixZF2w610bcOpbnlyZSAocMOpbGTDoXVsIEdyb3VwOiBhZG1pbjtjc29wb3J0MTtjc29wb3J0MjspLiBBIOKAnkRlZmF1bHTigJ0gamVsemksIGhvZ3kgYSBixZF2w610bcOpbnkgYWxhcMOpcnRlbG1lemV0dGVuIGVuZ2Vkw6lseWV6dmUgdmFuLCB2YWd5IGhvZ3kgYSBmZWxoYXN6bsOhbMOzbmFrIGvDqXp6ZWwga2VsbCBlbmdlZMOpbHllem5pZSBhenQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIEZBUSBFeHBsb3Jlci4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ01lZ2hhdMOhcm96emEgYSBtZWdqZWxlbsOtdGV0dCBvc3psb3Bva2F0IGEgR3lJSyBiw7ZuZ8Opc3rFkWJlbi4gRW5uZWsgYSBiZcOhbGzDrXTDoXNuYWsgbmluY3MgaGF0w6FzYSBheiBvc3psb3AgaGVseXpldMOpcmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIEZBUSBqb3VybmFsLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSBhIG1lZ2plbGVuw610ZXR0IG9zemxvcG9rYXQgYSBHeUlLIG5hcGzDs2Jhbi4gRW5uZWsgYSBiZcOhbGzDrXTDoXNuYWsgbmluY3MgaGF0w6FzYSBheiBvc3psb3AgaGVseXpldMOpcmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIEZBUSBzZWFyY2guIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdNZWdoYXTDoXJvenphIGEgbWVnamVsZW7DrXRldHQgb3N6bG9wb2thdCBhIEd5SUsga2VyZXPFkWJlbi4gRW5uZWsgYSBiZcOhbGzDrXTDoXNuYWsgbmluY3MgaGF0w6FzYSBheiBvc3psb3AgaGVseXpldMOpcmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgd2hlcmUgdGhlIFwnSW5zZXJ0IEZBUVwnIGxpbmsgd2lsbCBiZSBkaXNwbGF5ZWQuJ30gPSAnTWVnaGF0w6Fyb3p6YSwgaG9neSBhIOKAnkd5SUsgYmVzesO6csOhc2HigJ0gaGl2YXRrb3rDoXMgaG9sIGxlZ3llbiBtZWdqZWxlbsOtdHZlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbml0aW9uIG9mIEZBUSBpdGVtIGZyZWUgdGV4dCBmaWVsZC4nfSA9ICdBIEd5SUsgZWxlbSBzemFiYWQgc3rDtnZlZ2VzIG1lesWRasOpbmVrIG1lZ2hhdMOhcm96w6FzYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoaXMgRkFRJ30gPSAnQSBHeUlLIHTDtnJsw6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0F6IMO8Z3lpbnTDqXrFkWkgZmVsw7xsZXQgR3lJSyBob3p6w6FhZMOhc2Ega8OpcGVybnnFkWrDqW4gbWVnamVsZW7DrXRldHQgZGluYW1pa3VzIG1lesWRay4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQXogw7xneWludMOpesWRaSBmZWzDvGxldCBHeUlLIHN6ZXJrZXN6dMOpc2Uga8OpcGVybnnFkWrDqW4gbWVnamVsZW7DrXRldHQgZGluYW1pa3VzIG1lesWRay4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBvdmVydmlldyBzY3JlZW4gb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0F6IMO8Z3lmw6lsZmVsw7xsZXQgR3lJSyDDoXR0ZWtpbnTFkSBrw6lwZXJuecWRasOpbiBtZWdqZWxlbsOtdGV0dCBkaW5hbWlrdXMgbWV6xZFrLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIG92ZXJ2aWV3IHNjcmVlbiBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0EgbnlpbHbDoW5vcyBmZWzDvGxldCBHeUlLIMOhdHRla2ludMWRIGvDqXBlcm55xZFqw6luIG1lZ2plbGVuw610ZXR0IGRpbmFtaWt1cyBtZXrFkWsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgcHJpbnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdBeiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0IEd5SUsgbnlvbXRhdMOhc2Ega8OpcGVybnnFkWrDqW4gbWVnamVsZW7DrXRldHQgZGluYW1pa3VzIG1lesWRay4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBwcmludCBzY3JlZW4gb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0F6IMO8Z3lmw6lsZmVsw7xsZXQgR3lJSyBueW9tdGF0w6FzYSBrw6lwZXJuecWRasOpbiBtZWdqZWxlbsOtdGV0dCBkaW5hbWlrdXMgbWV6xZFrLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHByaW50IHNjcmVlbiBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0EgbnlpbHbDoW5vcyBmZWzDvGxldCBHeUlLIG55b210YXTDoXNhIGvDqXBlcm55xZFqw6luIG1lZ2plbGVuw610ZXR0IGRpbmFtaWt1cyBtZXrFkWsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc2VhcmNoIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQXogw7xneWludMOpesWRaSBmZWzDvGxldCBHeUlLIGtlcmVzw6lzZSBrw6lwZXJuecWRasOpbiBtZWdqZWxlbsOtdGV0dCBkaW5hbWlrdXMgbWV6xZFrLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHNlYXJjaCBzY3JlZW4gb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0F6IMO8Z3lmw6lsZmVsw7xsZXQgR3lJSyBrZXJlc8Opc2Uga8OpcGVybnnFkWrDqW4gbWVnamVsZW7DrXRldHQgZGluYW1pa3VzIG1lesWRay4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBzZWFyY2ggc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQSBueWlsdsOhbm9zIGZlbMO8bGV0IEd5SUsga2VyZXPDqXNlIGvDqXBlcm55xZFqw6luIG1lZ2plbGVuw610ZXR0IGRpbmFtaWt1cyBtZXrFkWsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc21hbGwgZm9ybWF0IG92ZXJ2aWV3IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQXogw7xneWludMOpesWRaSBmZWzDvGxldCBHeUlLIGtpcyBmb3Jtw6F0dW0gw6F0dGVraW50xZEga8OpcGVybnnFkWrDqW4gbWVnamVsZW7DrXRldHQgZGluYW1pa3VzIG1lesWRay4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQXogw7xneWludMOpesWRaSBmZWzDvGxldCBHeUlLIG5hZ3nDrXTDoXNhIGvDqXBlcm55xZFqw6luIG1lZ2plbGVuw610ZXR0IGRpbmFtaWt1cyBtZXrFkWsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgem9vbSBzY3JlZW4gb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0F6IMO8Z3lmw6lsZmVsw7xsZXQgR3lJSyBuYWd5w610w6FzYSBrw6lwZXJuecWRasOpbiBtZWdqZWxlbsOtdGV0dCBkaW5hbWlrdXMgbWV6xZFrLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHpvb20gc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQSBueWlsdsOhbm9zIGZlbMO8bGV0IEd5SUsgbmFnecOtdMOhc2Ega8OpcGVybnnFkWrDqW4gbWVnamVsZW7DrXRldHQgZGluYW1pa3VzIG1lesWRay4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGlzIEZBUSd9ID0gJ0EgR3lJSyBzemVya2VzenTDqXNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSBtdWx0aXBsZSBsYW5ndWFnZXMgb24gRkFRIG1vZHVsZS4nfSA9ICdUw7ZiYiBueWVsdiBlbmdlZMOpbHllesOpc2UgYSBHeUlLIG1vZHVsYmFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgc2VydmljZSBhc3NpZ25tZW50IGZvciBGQVFzLid9ID0gJ1N6b2xnw6FsdGF0w6FzLWhvenrDoXJlbmRlbMOpcyBlbmdlZMOpbHllesOpc2UgYSBHeUlLLWJlamVneXrDqXNla2hlei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHRoZSByZWxhdGVkIGFydGljbGUgZmVhdHVyZSBmb3IgdGhlIGN1c3RvbWVyIGZyb250ZW5kLid9ID0KICAgICAgICAnQSBrYXBjc29sw7Nkw7MgYmVqZWd5esOpc2VrIGZ1bmtjacOzIGVuZ2Vkw6lseWV6w6lzZSBheiDDvGd5ZsOpbCBlbMWRdMOpdHByb2dyYW1ob3ouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB2b3RpbmcgbWVjaGFuaXNtIG9uIEZBUSBtb2R1bGUuJ30gPSAnU3phdmF6w6FzaSBtZWNoYW5pem11cyBlbmdlZMOpbHllesOpc2UgYSBHeUlLIG1vZHVsYmFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHBsb3Jlcid9ID0gJ0LDtm5nw6lzesWRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBSkFYIFJlc3BvbmRlcid9ID0gJ0d5SUsgQUpBWCB2w6FsYXN6YWTDsyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQUpBWCBSZXNwb25kZXIgZm9yIFJpY2h0ZXh0Lid9ID0gJ0d5SUsgQUpBWCB2w6FsYXN6YWTDsyBhIFJpY2h0ZXh0aGV6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJlYSd9ID0gJ0d5SUsgdGVyw7xsZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFyZWEuJ30gPSAnR3lJSyB0ZXLDvGxldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIERlbGV0ZS4nfSA9ICdHeUlLIHTDtnJsw6lzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgRWRpdC4nfSA9ICdHeUlLIHN6ZXJrZXN6dMOpcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEhpc3RvcnkuJ30gPSAnR3lJSyBlbMWRem3DqW55ZWsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBKb3VybmFsIE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICdHeUlLIG5hcGzDsyDDoXR0ZWtpbnTFkSDigJ5raXPigJ0ga29ybMOhdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJ0d5SUsgw6F0dGVraW50xZEg4oCea2lz4oCdIGtvcmzDoXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIFByaW50Lid9ID0gJ0d5SUsgbnlvbXRhdMOhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIHNlYXJjaCBiYWNrZW5kIHJvdXRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0gJ0F6IMO8Z3lpbnTDqXrFkWkgZmVsw7xsZXQgR3lJSyBrZXJlc8Opc2kgaMOhdHTDqXJwcm9ncmFtIMO6dHbDoWxhc3p0w7NqYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmllbGQ0J30gPSAnNC4gbWV6xZEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmllbGQ1J30gPSAnNS4gbWV6xZEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnVsbCBGQVEnfSA9ICdUZWxqZXMgR3lJSyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICdDc29wb3J0IGEgR3lJSyBiZWplZ3l6w6lzZWsgasOzdsOhaGFnecOhc2hvei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiB0aGlzIEZBUSd9ID0gJ0EgR3lJSyBlbMWRem3DqW55ZWknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgYWN0aXZhdGVkLCBGQVEgYXJ0aWNsZXMgb2Ygc3RhdHVzIHR5cGUgaW50ZXJuYWwgYXJlIGFsc28gdGFrZW4gaW50byBhY2NvdW50IGZvciB0aGUgYXBwcm92YWwgcHJvY2Vzcy4nfSA9CiAgICAgICAgJ0hhIGFrdGl2w6FsdmEgdmFuLCBha2tvciBhIGJlbHPFkSDDoWxsYXBvdHTDrXB1c8O6IEd5SUsgYmVqZWd5esOpc2VrIGlzIGZpZ3llbGVtYmUgbGVzem5layB2w6l2ZSBhIGrDs3bDoWhhZ3nDoXNpIGZvbHlhbWF0bsOhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jbHVkZSBpbnRlcm5hbCBmaWVsZHMgb24gYSBGQVEgYmFzZWQgVGlja2V0Lid9ID0gJ0JlbHPFkSBtZXrFkWsgZmVsdsOpdGVsZSBlZ3kgR3lJSy1hbGFww7ogamVneWVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNsdWRlIHRoZSBuYW1lIG9mIGVhY2ggZmllbGQgaW4gYSBGQVEgYmFzZWQgVGlja2V0Lid9ID0gJ01pbmRlbiBtZXrFkSBuZXbDqW5layBmZWx2w6l0ZWxlIGVneSBHeUlLLWFsYXDDuiBqZWd5YmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnRlcmZhY2VzIHdoZXJlIHRoZSBxdWljayBzZWFyY2ggc2hvdWxkIGJlIHNob3duLid9ID0gJ0F6b2sgYSBmZWzDvGxldGVrLCBhaG9sIGEgZ3lvcnMga2VyZXPDqXNuZWsgbWVnIGtlbGwgamVsZW5uaWUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0pvdXJuYWwnfSA9ICdOYXBsw7MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFuZ3VhZ2UgTWFuYWdlbWVudCd9ID0gJ055ZWx2a2V6ZWzDqXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFuZ3VhZ2UgTWFuYWdlbWVudC4nfSA9ICdOeWVsdmtlemVsw6lzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW1pdCBmb3IgdGhlIHNlYXJjaCB0byBidWlsZCB0aGUga2V5d29yZCBGQVEgYXJ0aWNsZSBsaXN0Lid9ID0gJ0Ega2VyZXPDqXMga29ybMOhdG96w6FzYSBhIGt1bGNzc3rDsyBHeUlLIGJlamVneXrDqXNsaXN0YSDDtnNzemXDoWxsw610w6Fzw6Fob3ouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhpcyBGQVEgaXRlbSd9ID0gJ03DoXNpayBvYmpla3R1bSBob3p6w6FrYXBjc29sw6FzYSBlaGhleiBhIEd5SUsgZWxlbWhleic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIHF1ZXVlIG5hbWVzIGZvciB3aGljaCB0aGUgcmVsYXRlZCBhcnRpY2xlIGZlYXR1cmUgaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJ0F6b24gdsOhcsOzbGlzdGFuZXZlayBsaXN0w6FqYSwgYW1lbHlla27DqWwgYSBrYXBjc29sw7Nkw7MgYmVqZWd5esOpcyBmdW5rY2nDsyBlbmdlZMOpbHllenZlIHZhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBzdGF0ZSB0eXBlcyB3aGljaCBjYW4gYmUgdXNlZCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnw4FsbGFwb3R0w61wdXNvayBsaXN0w6FqYSwgYW1lbHllayBoYXN6bsOhbGhhdMOzayBheiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2Ygc3RhdGUgdHlwZXMgd2hpY2ggY2FuIGJlIHVzZWQgaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ8OBbGxhcG90dMOtcHVzb2sgbGlzdMOhamEsIGFtZWx5ZWsgaGFzem7DoWxoYXTDs2sgYXogw7xneWbDqWxmZWzDvGxldGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIHN0YXRlIHR5cGVzIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnw4FsbGFwb3R0w61wdXNvayBsaXN0w6FqYSwgYW1lbHllayBoYXN6bsOhbGhhdMOzayBhIG55aWx2w6Fub3MgZmVsw7xsZXRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0gJ0JldMO2bHTFkW1vZHVsIHJlZ2lzenRyw6FjacOzIGEgbnlpbHbDoW5vcyBmZWzDvGxldGhlei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQXogw7xneWludMOpesWRaSBmZWzDvGxldCBHeUlLIGLDtm5nw6lzesWRIGVyZWRtw6luecOpYmVuIG1lZ2plbGVuw610ZW5kxZEgR3lJSyBiZWplZ3l6w6lzZWsgbGVnbmFneW9iYiBzesOhbWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0F6IMO8Z3lmw6lsZmVsw7xsZXQgR3lJSyBiw7ZuZ8Opc3rFkSBlcmVkbcOpbnnDqWJlbiBtZWdqZWxlbsOtdGVuZMWRIEd5SUsgYmVqZWd5esOpc2VrIGxlZ25hZ3lvYmIgc3rDoW1hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQSBueWlsdsOhbm9zIGZlbMO8bGV0IEd5SUsgYsO2bmfDqXN6xZEgZXJlZG3DqW55w6liZW4gbWVnamVsZW7DrXRlbmTFkSBHeUlLIGJlamVneXrDqXNlayBsZWduYWd5b2JiIHN6w6FtYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIGpvdXJuYWwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0F6IMO8Z3lpbnTDqXrFkWkgZmVsw7xsZXRlbiBsw6l2xZEgR3lJSyBuYXBsw7NiYW4gbWVnamVsZW7DrXRlbmTFkSBHeUlLIGJlamVneXrDqXNlayBsZWduYWd5b2JiIHN6w6FtYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgcmVzdWx0IG9mIGEgc2VhcmNoIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdFZ3kga2VyZXPDqXMgZXJlZG3DqW55w6liZW4gbWVnamVsZW7DrXRlbmTFkSBHeUlLIGJlamVneXrDqXNlayBsZWduYWd5b2JiIHN6w6FtYSBheiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHJlc3VsdCBvZiBhIHNlYXJjaCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRWd5IGtlcmVzw6lzIGVyZWRtw6luecOpYmVuIG1lZ2plbGVuw610ZW5kxZEgR3lJSyBiZWplZ3l6w6lzZWsgbGVnbmFneW9iYiBzesOhbWEgYXogw7xneWbDqWxmZWzDvGxldGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSByZXN1bHQgb2YgYSBzZWFyY2ggaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICdFZ3kga2VyZXPDqXMgZXJlZG3DqW55w6liZW4gbWVnamVsZW7DrXRlbmTFkSBHeUlLIGJlamVneXrDqXNlayBsZWduYWd5b2JiIHN6w6FtYSBhIG55aWx2w6Fub3MgZmVsw7xsZXRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIEV4cGxvcmVyIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdBIEd5SUsgYsO2bmfDqXN6xZFiZW4gbWVnamVsZW7DrXRlbmTFkSBHeUlLIGJlamVneXrDqXNiZW4gbMOpdsWRIGPDrW1layBsZWduYWd5b2JiIG3DqXJldGUgYXogw7xneWludMOpesWRaSBmZWzDvGxldGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgRXhwbG9yZXIgaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0EgR3lJSyBiw7ZuZ8Opc3rFkWJlbiBtZWdqZWxlbsOtdGVuZMWRIEd5SUsgYmVqZWd5esOpc2JlbiBsw6l2xZEgY8OtbWVrIGxlZ25hZ3lvYmIgbcOpcmV0ZSBheiDDvGd5ZsOpbGZlbMO8bGV0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBFeHBsb3JlciBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0EgR3lJSyBiw7ZuZ8Opc3rFkWJlbiBtZWdqZWxlbsOtdGVuZMWRIEd5SUsgYmVqZWd5esOpc2JlbiBsw6l2xZEgY8OtbWVrIGxlZ25hZ3lvYmIgbcOpcmV0ZSBhIG55aWx2w6Fub3MgZmVsw7xsZXRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIFNlYXJjaCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQSBHeUlLIGtlcmVzxZFiZW4gbWVnamVsZW7DrXRlbmTFkSBHeUlLIGJlamVneXrDqXNiZW4gbMOpdsWRIGPDrW1layBsZWduYWd5b2JiIG3DqXJldGUgYXogw7xneWludMOpesWRaSBmZWzDvGxldGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgU2VhcmNoIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICdBIEd5SUsga2VyZXPFkWJlbiBtZWdqZWxlbsOtdGVuZMWRIEd5SUsgYmVqZWd5esOpc2JlbiBsw6l2xZEgY8OtbWVrIGxlZ25hZ3lvYmIgbcOpcmV0ZSBheiDDvGd5ZsOpbGZlbMO8bGV0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBTZWFyY2ggaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICdBIEd5SUsga2VyZXPFkWJlbiBtZWdqZWxlbsOtdGVuZMWRIEd5SUsgYmVqZWd5esOpc2JlbiBsw6l2xZEgY8OtbWVrIGxlZ25hZ3lvYmIgbcOpcmV0ZSBhIG55aWx2w6Fub3MgZmVsw7xsZXRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIGpvdXJuYWwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0EgR3lJSyBuYXBsw7NiYW4gbWVnamVsZW7DrXRlbmTFkSBHeUlLIGJlamVneXrDqXNiZW4gbMOpdsWRIGPDrW1layBsZWduYWd5b2JiIG3DqXJldGUgYXogw7xneWludMOpesWRaSBmZWzDvGxldGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gZ2VuZXJhdGUgSFRNTCBPcGVuU2VhcmNoIHByb2ZpbGUgZm9yIHNob3J0IEZBUSBzZWFyY2ggaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0VneSBtb2R1bCBhIEhUTUwgT3BlblNlYXJjaCBwcm9maWwgZWzFkcOhbGzDrXTDoXPDoWhveiBhIHLDtnZpZCBHeUlLIGtlcmVzw6lzbsOpbCBheiDDvGd5ZsOpbGZlbMO8bGV0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBnZW5lcmF0ZSBIVE1MIE9wZW5TZWFyY2ggcHJvZmlsZSBmb3Igc2hvcnQgRkFRIHNlYXJjaCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0VneSBtb2R1bCBhIEhUTUwgT3BlblNlYXJjaCBwcm9maWwgZWzFkcOhbGzDrXTDoXPDoWhveiBhIHLDtnZpZCBHeUlLIGtlcmVzw6lzaGV6IGEgbnlpbHbDoW5vcyBmZWzDvGxldGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gZ2VuZXJhdGUgaHRtbCBPcGVuU2VhcmNoIHByb2ZpbGUgZm9yIHNob3J0IEZBUSBzZWFyY2guJ30gPQogICAgICAgICdFZ3kgbW9kdWwgYSBneW9ycyBHeUlLIGtlcmVzw6lzIEhUTUwgT3BlblNlYXJjaCBwcm9maWxqw6FuYWsgZWzFkcOhbGzDrXTDoXPDoWhvei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEZBUSBBcnRpY2xlLid9ID0gJ8OaaiBHeUlLIGJlamVneXrDqXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBGQVEgYXJ0aWNsZXMgbmVlZCBhcHByb3ZhbCBiZWZvcmUgdGhleSBnZXQgcHVibGlzaGVkLid9ID0gJ0F6IMO6aiBHeUlLIGJlamVneXrDqXNlayBqw7N2w6FoYWd5w6FzYSBzesO8a3PDqWdlcyBhIGvDtnp6w6l0w6l0ZWzDvGsgZWzFkXR0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICdBeiDDvGd5ZsOpbGZlbMO8bGV0IEd5SUsgYsO2bmfDqXN6xZFqw6liZW4gbWVnamVsZW7DrXRlbmTFkSBHeUlLIGJlamVneXrDqXNlayBzesOhbWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICdBIG55aWx2w6Fub3MgZmVsw7xsZXQgR3lJSyBiw7ZuZ8Opc3rFkWrDqWJlbiBtZWdqZWxlbsOtdGVuZMWRIEd5SUsgYmVqZWd5esOpc2VrIHN6w6FtYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgb24gZWFjaCBwYWdlIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRWd5IGtlcmVzw6lzaSBlcmVkbcOpbnkgbWluZGVuIG9sZGFsw6FuIG1lZ2plbGVuw610ZW5kxZEgR3lJSyBiZWplZ3l6w6lzZWsgc3rDoW1hIGF6IMO8Z3lmw6lsZmVsw7xsZXRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgb24gZWFjaCBwYWdlIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0VneSBrZXJlc8Opc2kgZXJlZG3DqW55IG1pbmRlbiBvbGRhbMOhbiBtZWdqZWxlbsOtdGVuZMWRIEd5SUsgYmVqZWd5esOpc2VrIHN6w6FtYSBhIG55aWx2w6Fub3MgZmVsw7xsZXRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIHNob3duIGl0ZW1zIGluIGxhc3QgY2hhbmdlcy4nfSA9ICdBIG1lZ2plbGVuw610ZXR0IGVsZW1layBzesOhbWEgYSBsZWd1dMOzYmIgbcOzZG9zw610b3R0YWtiYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBzaG93biBpdGVtcyBpbiBsYXN0IGNyZWF0ZWQuJ30gPSAnQSBtZWdqZWxlbsOtdGV0dCBlbGVtZWsgc3rDoW1hIGEgbGVndXTDs2JiIGzDqXRyZWhvem90dGFrYmFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2Ygc2hvd24gaXRlbXMgaW4gdGhlIHRvcCAxMCBmZWF0dXJlLid9ID0gJ0EgbWVnamVsZW7DrXRldHQgZWxlbWVrIHN6w6FtYSBhIGxlZ2pvYmIgMTAgc3pvbGfDoWx0YXTDoXNiYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J091dHB1dCBmaWx0ZXIgdG8gYWRkIEphdmEtc2NyaXB0IHRvIEN1c3RvbWVyVGlja2V0TWVzc2FnZSBzY3JlZW4uJ30gPQogICAgICAgICdLaW1lbmV0c3rFsXLFkSBKYXZhU2NyaXB0IGhvenrDoWFkw6Fzw6Fob3ogYXogw7xneWbDqWxqZWd5IMO8emVuZXQga8OpcGVybnnFkWjDtnouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J091dHB1dCBsaW1pdCBmb3IgdGhlIHJlbGF0ZWQgRkFRIGFydGljbGVzLid9ID0gJ0tpbWVuZXRrb3Jsw6F0IGEga2FwY3NvbMOzZMOzIEd5SUsgYmVqZWd5esOpc2VraGV6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBGQVEgaXRlbXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgRkFRIGpvdXJuYWwgb3ZlcnZpZXcuJ30gPQogICAgICAgICdQYXJhbcOpdGVyZWsgYSBraXMgR3lJSyBuYXBsw7Mgw6F0dGVraW50xZEgb2xkYWxhaWhveiAoYW1lbHlla2JlbiBhIEd5SUsgZWxlbWVrIG1lZ2plbGVubmVrKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgRkFRIGl0ZW1zIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIEZBUSBvdmVydmlldy4nfSA9CiAgICAgICAgJ1BhcmFtw6l0ZXJlayBhIGtpcyBHeUlLIMOhdHRla2ludMWRIG9sZGFsYWlob3ogKGFtZWx5ZWtiZW4gYSBHeUlLIGVsZW1layBtZWdqZWxlbm5laykuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW50IHRoaXMgRkFRJ30gPSAnQSBHeUlLIG55b210YXTDoXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBGQVEgUHJpbnQuJ30gPSAnTnlpbHbDoW5vcyBHeUlLIG55b210YXTDoXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBGQVEgWm9vbS4nfSA9ICdOeWlsdsOhbm9zIEd5SUsgbmFnecOtdMOhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIEZBUSBzZWFyY2guJ30gPSAnTnlpbHbDoW5vcyBHeUlLIGtlcmVzw6lzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRLid9ID0gJ055aWx2w6Fub3MgR3lJSy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVldWUgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPSAnVsOhcsOzbGlzdGEgYSBHeUlLIGJlamVneXrDqXNlayBqw7N2w6FoYWd5w6Fzw6Fob3ouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGVzIGZvciB2b3RpbmcuIEtleSBtdXN0IGJlIGluIHBlcmNlbnQuJ30gPSAnw4lydMOpa2Vsw6lzZWsgYSBzemF2YXrDoXNob3ouIEEga3VsY3NuYWsgc3rDoXphbMOpa2JhbiBrZWxsIGxlbm5pZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUyd9ID0gJ1MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIEZBUSd9ID0gJ0d5SUsga2VyZXPDqXNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBGQVEgU21hbGwuJ30gPSAnS2lzIEd5SUsga2VyZXPDqXNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggRkFRLid9ID0gJ0d5SUsga2VyZXPDqXNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgaG93IG1hbnkgaXRlbXMgc2hvdWxkIGJlIHNob3duIGluIEpvdXJuYWwgT3ZlcnZpZXcgIlNtYWxsIiBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnQW5uYWsga2l2w6FsYXN6dMOhc2EsIGhvZ3kgYWxhcMOpcnRlbG1lemV0dGVuIGjDoW55IGVsZW0gamVsZW5qZW4gbWVnIGEg4oCea2lz4oCdIG5hcGzDsyDDoXR0ZWtpbnTFkWJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGhvdyBtYW55IGl0ZW1zIHNob3VsZCBiZSBzaG93biBpbiBPdmVydmlldyAiU21hbGwiIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICdBbm5hayBraXbDoWxhc3p0w6FzYSwgaG9neSBhbGFww6lydGVsbWV6ZXR0ZW4gaMOhbnkgZWxlbSBqZWxlbmplbiBtZWcgYSDigJ5raXPigJ0gw6F0dGVraW50xZFiZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZGVmYXVsdCBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEFnZW50RkFRWm9vbS4nfSA9CiAgICAgICAgJ0EgYmXDoWd5YXpvdHQgSFRNTCBtZXrFkWsgYWxhcMOpcnRlbG1lemV0dCBtYWdhc3PDoWfDoW5hayBiZcOhbGzDrXTDoXNhIChrw6lwcG9udGJhbikgYXogw7xneWludMOpesWRaSBHeUlLLW5hZ3nDrXTDoXMgbsOpemV0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZGVmYXVsdCBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEN1c3RvbWVyRkFRWm9vbSAoYW5kIFB1YmxpY0ZBUVpvb20pLid9ID0KICAgICAgICAnQSBiZcOhZ3lhem90dCBIVE1MIG1lesWRayBhbGFww6lydGVsbWV6ZXR0IG1hZ2Fzc8OhZ8OhbmFrIGJlw6FsbMOtdMOhc2EgKGvDqXBwb250YmFuKSBheiDDvGd5ZsOpbCBHeUlLLW5hZ3nDrXTDoXMgKMOpcyBueWlsdsOhbm9zIEd5SUstbmFnecOtdMOhcykgbsOpemV0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgbWF4aW11bSBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEFnZW50RkFRWm9vbS4nfSA9CiAgICAgICAgJ0EgYmXDoWd5YXpvdHQgSFRNTCBtZXrFkWsgbGVnbmFneW9iYiBtYWdhc3PDoWfDoW5hayBiZcOhbGzDrXTDoXNhIChrw6lwcG9udGJhbikgYXogw7xneWludMOpesWRaSBHeUlLLW5hZ3nDrXTDoXMgbsOpemV0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgbWF4aW11bSBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEN1c3RvbWVyRkFRWm9vbSAoYW5kIFB1YmxpY0ZBUVpvb20pLid9ID0KICAgICAgICAnQSBiZcOhZ3lhem90dCBIVE1MIG1lesWRayBsZWduYWd5b2JiIG1hZ2Fzc8OhZ8OhbmFrIGJlw6FsbMOtdMOhc2EgKGvDqXBwb250YmFuKSBheiDDvGd5ZsOpbCBHeUlLLW5hZ3nDrXTDoXMgKMOpcyBueWlsdsOhbm9zIEd5SUstbmFnecOtdMOhcykgbsOpemV0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgIkluc2VydCBGQVEgTGluayIgQnV0dG9uIGluIEFnZW50RkFRWm9vbVNtYWxsIGZvciBwdWJsaWMgRkFRIEFydGljbGVzLid9ID0KICAgICAgICAnQSDigJ5HeUlLIGhpdmF0a296w6FzIGJlc3rDunLDoXNh4oCdIGdvbWIgbWVnamVsZW7DrXTDqXNlIGF6IMO8Z3lpbnTDqXrFkWkgR3lJSy1uYWd5w610w6FzIGtpcyBuw6l6ZXTDqWJlbiBhIG55aWx2w6Fub3MgR3lJSyBiZWplZ3l6w6lzZWtuw6lsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93ICJJbnNlcnQgRkFRIFRleHQgJiBMaW5rIiAvICJJbnNlcnQgRnVsbCBGQVEgJiBMaW5rIiBCdXR0b24gaW4gQWdlbnRGQVFab29tU21hbGwgZm9yIHB1YmxpYyBGQVEgQXJ0aWNsZXMuJ30gPQogICAgICAgICdBIOKAnkd5SUsgc3rDtnZlZyDDqXMgaGl2YXRrb3rDoXMgYmVzesO6csOhc2HigJ0gLyDigJ5UZWxqZXMgR3lJSyDDqXMgaGl2YXRrb3rDoXMgYmVzesO6csOhc2HigJ0gZ29tYiBtZWdqZWxlbsOtdMOpc2UgYXogw7xneWludMOpesWRaSBHeUlLLW5hZ3nDrXTDoXMga2lzIG7DqXpldMOpYmVuIGEgbnlpbHbDoW5vcyBHeUlLIGJlamVneXrDqXNla27DqWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgIkluc2VydCBGQVEgVGV4dCIgLyAiSW5zZXJ0IEZ1bGwgRkFRIiBCdXR0b24gaW4gQWdlbnRGQVFab29tU21hbGwuJ30gPQogICAgICAgICdBIOKAnkd5SUsgc3rDtnZlZyBiZXN6w7pyw6FzYeKAnSAvIOKAnlRlbGplcyBHeUlLIGJlc3rDunLDoXNh4oCdIGdvbWIgbWVnamVsZW7DrXTDqXNlIGF6IMO8Z3lpbnTDqXrFkWkgR3lJSy1uYWd5w610w6FzIGtpcyBuw6l6ZXTDqWJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBGQVEgQXJ0aWNsZSB3aXRoIEhUTUwuJ30gPSAnR3lJSyBiZWplZ3l6w6lzIG1lZ2plbGVuw610w6lzZSBIVE1MIGZvcm3DoXrDoXNzYWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgRkFRIHBhdGggeWVzL25vLid9ID0gJ0d5SUsgw7p0dm9uYWwgbWVnamVsZW7DrXTDqXNlIGlnZW4vbmVtLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGludmFsaWQgaXRlbXMgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ8OJcnbDqW55dGVsZW4gZWxlbWVrIG1lZ2plbGVuw610w6lzZSBheiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0IEd5SUsgYsO2bmfDqXN6xZFqw6luZWsgZXJlZG3DqW55w6liZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgaXRlbXMgb2Ygc3ViY2F0ZWdvcmllcy4nfSA9ICdBbGthdGVnw7NyacOhayBlbGVtZWluZWsgbWVnamVsZW7DrXTDqXNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGxhc3QgY2hhbmdlIGl0ZW1zIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICdBeiB1dG9sasOhcmEgbcOzZG9zw610b3R0IGVsZW1layBtZWdqZWxlbsOtdMOpc2UgYSBtZWdoYXTDoXJvem90dCBmZWzDvGxldGVrZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgbGFzdCBjcmVhdGVkIGl0ZW1zIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICdBeiB1dG9sasOhcmEgbMOpdHJlaG96b3R0IGVsZW1layBtZWdqZWxlbsOtdMOpc2UgYSBtZWdoYXTDoXJvem90dCBmZWzDvGxldGVrZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgcmVsYXRlZCBhcnRpY2xlcyBvbiBzZXJ2aWNlIGNoYW5nZSBldmVuIHdpdGggZW1wdHkgc3ViamVjdCBhbmQgYm9keS4nfSA9CiAgICAgICAgJ0thcGNzb2zDs2TDsyBiZWplZ3l6w6lzZWsgbWVnamVsZW7DrXTDqXNlIGEgc3pvbGfDoWx0YXTDoXMgdsOhbHRvenRhdMOhc2Frb3Igw7xyZXMgdMOhcmd5IMOpcyB0w7ZyenMgZXNldMOpbiBpcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB0aGUgc3RhcnMgZm9yIHRoZSBhcnRpY2xlcyB3aXRoIGEgcmF0aW5nIGVxdWFsIG9yIGdyZWF0ZXIgbGlrZSB0aGUgZGVmaW5lZCB2YWx1ZSAoc2V0IHZhbHVlIFwnMFwnIHRvIGRlYWN0aXZhdGUgdGhlIG91dHB1dCkuJ30gPQogICAgICAgICdDc2lsbGFnb2sgbWVnamVsZW7DrXTDqXNlIGEgbWVnaGF0w6Fyb3pvdHQgw6lydMOpa2tlbCBlZ3llbmzFkSB2YWd5IGFubsOhbCBqb2JiIMOpcnTDqWtlbMOpc3NlbCByZW5kZWxrZXrFkSBiZWplZ3l6w6lzZWtuw6lsICjDoWxsw610c2EgYXogw6lydMOpa2V0IOKAnjDigJ0tcmEgYSBraW1lbmV0IGtpa2FwY3NvbMOhc8OhaG96KS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB0b3AgMTAgaXRlbXMgaW4gZGVmaW5lZCBpbnRlcmZhY2VzLid9ID0gJ0EgbGVnam9iYiAxMCBlbGVtIG1lZ2plbGVuw610w6lzZSBhIG1lZ2hhdMOhcm96b3R0IGZlbMO8bGV0ZWtlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB2b3RpbmcgaW4gZGVmaW5lZCBpbnRlcmZhY2VzLid9ID0gJ1N6YXZhesOhcyBtZWdqZWxlbsOtdMOpc2UgYSBtZWdoYXTDoXJvem90dCBmZWzDvGxldGVrZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBsaW5raW5nIGEgRkFRIHdpdGggYW5vdGhlciBvYmplY3QgaW4gdGhlIHpvb20gdmlldyBvZiBzdWNoIEZBUSBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRWd5IGhpdmF0a296w6FzdCBqZWxlbsOtdCBtZWcgYSBtZW7DvGJlbiwgYW1lbHkgbGVoZXTFkXbDqSB0ZXN6aSBlZ3kgR3lJSyBob3p6w6FrYXBjc29sw6Fzw6F0IGVneSBtw6FzaWsgb2JqZWt0dW1ob3ogYXogw7xneWludMOpesWRaSBmZWzDvGxldG5layBheiBpbHllbiBHeUlLIG5hZ3nDrXTDoXNpIG7DqXpldMOpbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIHRvIGRlbGV0ZSBhIEZBUSBpbiBpdHMgem9vbSB2aWV3IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdFZ3kgaGl2YXRrb3rDoXN0IGplbGVuw610IG1lZyBhIG1lbsO8YmVuLCBhbWVseSBsZWhldMWRdsOpIHRlc3ppIGVneSBHeUlLIHTDtnJsw6lzw6l0IGFubmFrIG5hZ3nDrXTDoXNpIG7DqXpldMOpbiBheiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSBGQVEgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRWd5IGhpdmF0a296w6FzdCBqZWxlbsOtdCBtZWcgYSBtZW7DvGJlbiBlZ3kgR3lJSyBlbMWRem3DqW55ZWluZWsgZWzDqXLDqXPDqWhleiBheiDDvGd5aW50w6l6xZFpIGZlbMO8bGV0ZW4gYXogZWxlbSBuYWd5w610w6FzaSBuw6l6ZXTDqWJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSBGQVEgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0VneSBoaXZhdGtvesOhc3QgamVsZW7DrXQgbWVnIGEgbWVuw7xiZW4gZWd5IEd5SUsgc3plcmtlc3p0w6lzw6loZXogYXogw7xneWludMOpesWRaSBmZWzDvGxldGVuIGF6IGVsZW0gbmFnecOtdMOhc2kgbsOpemV0w6liZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSBGQVEgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdFZ3kgaGl2YXRrb3rDoXN0IGplbGVuw610IG1lZyBhIG1lbsO8YmVuIGF6IMO8Z3lpbnTDqXrFkWkgZmVsw7xsZXQgR3lJSyBuYWd5w610w6FzaSBuw6l6ZXTDqWJlIHZhbMOzIHZpc3N6YXTDqXLDqXNoZXouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIEZBUSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRWd5IGhpdmF0a296w6FzdCBqZWxlbsOtdCBtZWcgYSBtZW7DvGJlbiBlZ3kgR3lJSyBueW9tdGF0w6Fzw6Fob3ogYXogw7xneWludMOpesWRaSBmZWzDvGxldGVuIGF6IGVsZW0gbmFnecOtdMOhc2kgbsOpemV0w6liZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NvbHV0aW9uJ30gPSAnTWVnb2xkw6FzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N5bXB0b20nfSA9ICdKZWxlbnPDqWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGV4dCBPbmx5J30gPSAnQ3NhayBzesO2dmVnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBkZWZhdWx0IGxhbmd1YWdlcyBmb3IgdGhlIHJlbGF0ZWQgRkFRIGFydGljbGVzLid9ID0gJ0F6IGFsYXDDqXJ0ZWxtZXpldHQgbnllbHZlayBhIGthcGNzb2zDs2TDsyBHeUlLIGJlamVneXrDqXNla27DqWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIEZBUSwgZS5nLiBGQVEjLCBLQiMsIE15RkFRIy4gVGhlIGRlZmF1bHQgaXMgRkFRIy4nfSA9CiAgICAgICAgJ0VneSBHeUlLIGF6b25vc8OtdMOzamEsIHDDqWxkw6F1bCBGQVEjLCBUQiMsIEd5SUsjLiBBeiBhbGFww6lydGVsbWV6ZXR0OiBGQVEjLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnRkFRXCcgb2JqZWN0cyB1c2luZyB0aGUgXCdOb3JtYWxcJyBsaW5rIHR5cGUuJ30gPQogICAgICAgICdFeiBhIGJlw6FsbMOtdMOhcyBoYXTDoXJvenphIG1lZywgaG9neSBlZ3kg4oCeR3lJS+KAnSBvYmpla3R1bSDDtnNzemVrw7Z0aGV0xZEtZSBtw6FzIOKAnkd5SUvigJ0gb2JqZWt0dW1va2thbCBhIOKAnk5vcm3DoWzigJ0gaGl2YXRrb3rDoXN0w61wdXMgaGFzem7DoWxhdMOhdmFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnRkFRXCcgb2JqZWN0cyB1c2luZyB0aGUgXCdQYXJlbnRDaGlsZFwnIGxpbmsgdHlwZS4nfSA9CiAgICAgICAgJ0V6IGEgYmXDoWxsw610w6FzIGhhdMOhcm96emEgbWVnLCBob2d5IGVneSDigJ5HeUlL4oCdIG9iamVrdHVtIMO2c3N6ZWvDtnRoZXTFkS1lIG3DoXMg4oCeR3lJS+KAnSBvYmpla3R1bW9ra2FsIGEg4oCeU3rDvGzFkS1neWVybWVr4oCdIGhpdmF0a296w6FzdMOtcHVzIGhhc3puw6FsYXTDoXZhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBzZXR0aW5nIGRlZmluZXMgdGhhdCBhIFwnRkFRXCcgb2JqZWN0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciBcJ1RpY2tldFwnIG9iamVjdHMgdXNpbmcgdGhlIFwnTm9ybWFsXCcgbGluayB0eXBlLid9ID0KICAgICAgICAnRXogYSBiZcOhbGzDrXTDoXMgaGF0w6Fyb3p6YSBtZWcsIGhvZ3kgZWd5IOKAnkd5SUvigJ0gb2JqZWt0dW0gw7Zzc3pla8O2dGhldMWRLWUgbcOhcyDigJ5KZWd54oCdIG9iamVrdHVtb2trYWwgYSDigJ5Ob3Jtw6Fs4oCdIGhpdmF0a296w6FzdMOtcHVzIGhhc3puw6FsYXTDoXZhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBzZXR0aW5nIGRlZmluZXMgdGhhdCBhIFwnRkFRXCcgb2JqZWN0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciBcJ1RpY2tldFwnIG9iamVjdHMgdXNpbmcgdGhlIFwnUGFyZW50Q2hpbGRcJyBsaW5rIHR5cGUuJ30gPQogICAgICAgICdFeiBhIGJlw6FsbMOtdMOhcyBoYXTDoXJvenphIG1lZywgaG9neSBlZ3kg4oCeR3lJS+KAnSBvYmpla3R1bSDDtnNzemVrw7Z0aGV0xZEtZSBtw6FzIOKAnkplZ3nigJ0gb2JqZWt0dW1va2thbCBhIOKAnlN6w7xsxZEtZ3llcm1la+KAnSBoaXZhdGtvesOhc3TDrXB1cyBoYXN6bsOhbGF0w6F2YWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBib2R5IGZvciBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZS4nfSA9ICdKZWd5IHTDtnJ6c2UgZWd5IEd5SUsgYmVqZWd5esOpcyBqw7N2w6FoYWd5w6Fzw6Fob3ouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBzdWJqZWN0IGZvciBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZS4gUGVybWl0dGVkIG5vdGlmaWNhdGlvbiB0YWdzIGFyZSA8T1RPQk9fRkFRX05VTUJFUj4sIDxPVE9CT19GQVFfQ0FURUdPUllJRD4sIDxPVE9CT19GQVFfSVRFTUlEPj4gPE9UT0JPX0ZBUV9USVRMRT4gYW5kIDxPVE9CT19GQVFfU1RBVEVJRD4uJ30gPQogICAgICAgICdKZWd5IHTDoXJneWEgZWd5IEd5SUsgYmVqZWd5esOpcyBqw7N2w6FoYWd5w6Fzw6Fob3ouIEEgbWVnZW5nZWRldHQgw6lydGVzw610w6lzaSBjw61ta8OpayBhIGvDtnZldGtlesWRazogPE9UT0JPX0ZBUV9OVU1CRVI+LCA8T1RPQk9fRkFRX0NBVEVHT1JZSUQ+LCA8T1RPQk9fRkFRX0lURU1JRD4sIDxPVE9CT19GQVFfVElUTEU+IMOpcyA8T1RPQk9fRkFRX1NUQVRFSUQ+Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb29sYmFyIEl0ZW0gZm9yIGEgc2hvcnRjdXQuJ30gPSAnRXN6a8O2enTDoXJlbGVtIGVneSBneW9yc2JpbGxlbnR5xbFow7Z6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydleHRlcm5hbCAoY3VzdG9tZXIpJ30gPSAna8O8bHPFkSAow7xneWbDqWwpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2ludGVybmFsIChhZ2VudCknfSA9ICdiZWxzxZEgKMO8Z3lpbnTDqXrFkSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncHVibGljIChhbGwpJ30gPSAnbnlpbHbDoW5vcyAow7Zzc3plcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncHVibGljIChwdWJsaWMpJ30gPSAnbnlpbHbDoW5vcyAobnlpbHbDoW5vcyknOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdObycsCiAgICAnT2snLAogICAgJ1NldHRpbmdzJywKICAgICdTdWJtaXQnLAogICAgJ1RoaXMgbWlnaHQgYmUgaGVscGZ1bCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Location="Kernel/Language/id_FAQ.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmlkX0ZBUTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRQWRkCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIEFydGljbGUnfSA9ICdUYW1iYWggQXJ0aWtlbCBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnS2V5d29yZHMnfSA9ICdLYXRha3VuY2knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRlZ29yeSBpcyByZXF1aXJlZC4nfSA9ICdTZWJ1YWgga2F0ZWdvcmkgZGlidXR1aGthbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwcm92YWwnfSA9ICdQZXJzZXR1anVhbic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFDYXRlZ29yeQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIENhdGVnb3J5IE1hbmFnZW1lbnQnfSA9ICdNYW5hamVtZW4gS2F0ZWdvcmkgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBGQVEgQ2F0ZWdvcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBGQVEgQ2F0ZWdvcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGNhdGVnb3J5J30gPSAnVGFtYmFoIGthdGVnb3JpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRlZ29yeSd9ID0gJ1RhbWJhaCBLYXRlZ29yaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENhdGVnb3J5J30gPSAnRWRpdCBLYXRlZ29yaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWJjYXRlZ29yeSBvZid9ID0gJ1N1Yi1rYXRlZ29yaSBkYXJpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYXQgbGVhc3Qgb25lIHBlcm1pc3Npb24gZ3JvdXAuJ30gPSAnU2lsYWhrYW4gcGlsaWggc2V0aWRha255YSBzYXR1IGl6aW4gZ3J1cCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBncm91cHMgdGhhdCBjYW4gYWNjZXNzIGFydGljbGVzIGluIHRoaXMgY2F0ZWdvcnkuJ30gPSAnR3J1cCBBZ2VuIHlhbmcgZGFwYXQgbWVuZ2Frc2VzIGFydGlrZWwgZGFsYW0ga2F0ZWdvcmkgaW5pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dpbGwgYmUgc2hvd24gYXMgY29tbWVudCBpbiBFeHBsb3Jlci4nfSA9ICdBa2FuIGRpdGFtcGlsa2FuIHNlYmFnYWkga29tZW50YXIgZGkgRXhwbG9yZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNhdGVnb3J5Pyd9ID0gJ0FuZGEgeWFraW4gYWthbiBtZW5naGFwdXMga2F0ZWdvcmkgaW5pPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBjYXRlZ29yeS4gSXQgaXMgdXNlZCBpbiBhdCBsZWFzdCBvbmUgRkFRIGFydGljbGUgYW5kL29yIGlzIHBhcmVudCBvZiBhdCBsZWFzdCBvbmUgb3RoZXIgY2F0ZWdvcnknfSA9CiAgICAgICAgJ0FuZGEgdGlkYWsgZGFwYXQgbWVuZ2hhcHVzIGthdGVnb3JpIGluaS4gS2F0ZWdvcmkgaW5pIGRpcGFrYWkgcGFkYSBzZXRpZGFrbnlhIHNhdHUgYXJ0aWtlbCBGQVEgZGFuL2F0YXUgbWVydXBha2FuIHBhcmVudCBkYXJpIHNhbGFoIHNhdHUga2F0ZWdvcmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBjYXRlZ29yeSBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgRkFRIGFydGljbGUocyknfSA9ICdLYXRlZ29yaSBpbmkgZGlndW5ha2FuIGRhbGFtIGFydGlrZWwgRkFRIGJlcmlrdXQgaW5pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY2F0ZWdvcnkgaXMgcGFyZW50IG9mIHRoZSBmb2xsb3dpbmcgc3ViY2F0ZWdvcmllcyd9ID0gJ0thdGVnb3JpIGluaSBtZXJ1cGFrYW4gcGFyZW50IGRhcmkgc3Via2F0ZWdvcmkgYmVyaWt1dCBpbmknOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgRkFRIGFydGljbGU/J30gPSAnQW5kYSB5YWtpbiBha2FuIG1lbmdoYXB1cyBhcnRpa2VsIEZBUSBpbmk/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUVkaXQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSd9ID0gJ0ZBUSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFFeHBsb3JlcgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEV4cGxvcmVyJ30gPSAnRWtzcGxvcmVyIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydRdWljayBTZWFyY2gnfSA9ICdQZW5jYXJpYW4gQ2VwYXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2lsZGNhcmRzIGFyZSBhbGxvd2VkLid9ID0gJ0thcmFrdGVyIGJlYmFzIGRpcGVya2VuYW5rYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWR2YW5jZWQgU2VhcmNoJ30gPSAnUGVuY2FyaWFuIExlYmloIExhbmp1dCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWJjYXRlZ29yaWVzJ30gPSAnU3Via2F0ZWdvcmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGVzJ30gPSAnQXJ0aWtlbCBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gc3ViY2F0ZWdvcmllcyBmb3VuZC4nfSA9ICdTdWJrYXRlZ29yaSB0aWRhayBkaXRlbXVrYW4nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRSGlzdG9yeQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZid9ID0gJ1Jpd2F5YXQgZGFyaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IENvbnRlbnQnfSA9ICdJc2kgc2VqYXJhaCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGV0aW1lJ30gPSAnQnVhdFdha3R1JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUpvdXJuYWxPdmVydmlld1NtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBGQVEgSm91cm5hbCBkYXRhIGZvdW5kLid9ID0gJ0RhdGEgSnVybmFsIEZBUSB0aWRhayBkaXRlbXVrYW4uJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUxhbmd1YWdlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgTGFuZ3VhZ2UgTWFuYWdlbWVudCd9ID0gJ01hbmFqZW1lbiBCYWhhc2EgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBGQVEgTGFuZ3VhZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBGQVEgTGFuZ3VhZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlIHRoaXMgZmVhdHVyZSBpZiB5b3Ugd2FudCB0byB3b3JrIHdpdGggbXVsdGlwbGUgbGFuZ3VhZ2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBsYW5ndWFnZSd9ID0gJ1RhbWJhaCBiYWhhc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIExhbmd1YWdlJ30gPSAnVGFtYmFoIEJhaGFzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IExhbmd1YWdlJ30gPSAnRWRpdCBCYWhhc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgbGFuZ3VhZ2UuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIEZBUSBhcnRpY2xlISd9ID0KICAgICAgICAnQW5kYSB0aWRhayBkYXBhdCBtZW5naGFwdXMgYmFoYXNhIGluaS4gQmFoYXNhIGluaSBkaWd1bmFrYW4gcGFkYSBzYWxhaCBzYXR1IGFydGlrZWwgRkFRISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGxhbmd1YWdlIGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBGQVEgQXJ0aWNsZShzKSd9ID0gJ0JhaGFzYSBpbmkgZGlndW5ha2FuIHBhZGEgQXJ0aWtlbC1hcnRpa2VsIEZBUSBiZXJpa3V0JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUU92ZXJ2aWV3TmF2QmFyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAnUGVuZ2F0dXJhbiBLb250ZWtzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBhcnRpY2xlcyBwZXIgcGFnZSd9ID0gJ0FydGlrZWwgRkFRIHBlciBoYWxhbWFuJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUU92ZXJ2aWV3U21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEZBUSBkYXRhIGZvdW5kLid9ID0gJ1RpZGFrIGRpdGVtdWthbiBkYXRhIEZBUS4nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRUmVsYXRlZEFydGljbGVzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydvdXQgb2YgNSd9ID0gJ2RhcmkgNSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFTZWFyY2gKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0tleXdvcmQnfSA9ICdLYXRhIGt1bmNpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGUgKGUuIGcuIEVxdWFscyAxMCBvciBHcmVhdGVyVGhhbiA2MCknfSA9ICdQaWxpaCAoY29udG9oOiBTYW1hIERlbmdhbiAxMCBhdGF1IExlYmloIEJlc2FyIGRhcmkgNjApJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGUgKGUuIGcuIEVxdWFscyAyNSUgb3IgR3JlYXRlclRoYW4gNzUlKSd9ID0gJ1BlcmluZ2thdCAoY29udG9oOiBTYW1hIGRlbmdhbiAyNSUgYXRhdSBMZWJpaCBCZXNhciBkYXJpIDc1JSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwcm92ZWQnfSA9ICdEaXNldHVqdWknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkIGJ5J30gPSAnVGVyYWtoaXIgZGlydWJhaCBvbGVoJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENyZWF0ZSBUaW1lIChiZWZvcmUvYWZ0ZXIpJ30gPSAnV2FrdHUgUGVtYnVhdGFuIEFydGlrZWwgRkFRIChzZWJlbHVtL3NldGVsYWgpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENyZWF0ZSBUaW1lIChiZXR3ZWVuKSd9ID0gJ1dha3R1IFBlbWJ1YXRhbiBBcnRpa2VsIEZBUSAoYW50YXJhKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDaGFuZ2UgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJ1dha3R1IFBlcnViYWhhbiBBcnRpa2VsIEZBUSAoc2ViZWx1bS9zZXRlbGFoKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDaGFuZ2UgVGltZSAoYmV0d2VlbiknfSA9ICdXYWt0dSBQZXJ1YmFoYW4gQXJ0aWtlbCBGQVEgKGFudGFyYSknOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRU2VhcmNoT3BlblNlYXJjaERlc2NyaXB0aW9uRnVsbHRleHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUUZ1bGx0ZXh0J30gPSAnRkFRVGVrc2xlbmdrYXAnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRU2VhcmNoU21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBTZWFyY2gnfSA9ICdQZW5jYXJpYW4gRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2ZpbGUgU2VsZWN0aW9uJ30gPSAnUGVtaWxpaGFuIFByb2ZpbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWb3RlJ30gPSAnUGlsaWgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdm90ZSBzZXR0aW5ncyd9ID0gJ1RpZGFrIGFkYSBwZW5nYXR1cmFuIHBlbWlsaWhhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpYyB2b3Rlcyd9ID0gJ1BlbWlsaWhhbiBraHVzdXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZS4gZy4gRXF1YWxzIDEwIG9yIEdyZWF0ZXJUaGFuIDYwJ30gPSAnY29udG9oOiBTYW1hIERlbmdhbiAxMCBhdGF1IExlYmloIEJlc2FyIGRhcmkgNjAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0ZSd9ID0gJ1BlcmluZ2thdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyByYXRlIHNldHRpbmdzJ30gPSAnVGlkYWsgYWRhIHBlbmdhdHVyYW4gcGVyaW5na2F0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmljIHJhdGUnfSA9ICdQZXJpbmdrYXQga2h1c3VzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuIGcuIEVxdWFscyAyNSUgb3IgR3JlYXRlclRoYW4gNzUlJ30gPSAnY29udG9oOiBTYW1hIGRlbmdhbiAyNSUgYXRhdSBMZWJpaCBCZXNhciBkYXJpIDc1JSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDcmVhdGUgVGltZSd9ID0gJ1dha3R1IFBlbWJ1YXRhbiBBcnRpa2VsIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDaGFuZ2UgVGltZSd9ID0gJ1dha3R1IFBlcnViYWhhbiBBcnRpa2VsIEZBUSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFab29tCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSW5mb3JtYXRpb24nfSA9ICdJbmZvcm1hc2kgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGluZyd9ID0gJ1BlcmluZ2thdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWb3Rlcyd9ID0gJ1BlbWlsaWhhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB2b3RlcyBmb3VuZCEnfSA9ICdUdGRhayBkaXRlbXVrYW4gcGVtaWxpaGFuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB2b3RlcyBmb3VuZCEgQmUgdGhlIGZpcnN0IG9uZSB0byByYXRlIHRoaXMgRkFRIGFydGljbGUuJ30gPSAnQmVsdW0gYWRhIFBlbWlsaWhhbiEgSmFkaWxhaCB5YW5nIHBlcnRhbWEgbWVsYWt1a2FuIHBlbWVyaW5na2F0YW4gYXJ0aWtlbCBGQVEgaW5pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEb3dubG9hZCBBdHRhY2htZW50J30gPSAnVW5kdWggTGFtcGlyYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gb3BlbiBsaW5rcyBpbiB0aGUgZm9sbG93aW5nIGRlc2NyaXB0aW9uIGJsb2NrcywgeW91IG1pZ2h0IG5lZWQgdG8gcHJlc3MgQ3RybCBvciBDbWQgb3IgU2hpZnQga2V5IHdoaWxlIGNsaWNraW5nIHRoZSBsaW5rIChkZXBlbmRpbmcgb24geW91ciBicm93c2VyIGFuZCBPUykuJ30gPQogICAgICAgICdVbnR1ayBtZW1idWthIHRhdXRhbiBwYWRhIGJhZ2lhbiBkZXNrcmlwc2kgYmVyaWt1dCwgQW5kYSBoYXJ1cyBtZW5la2FuIHRvbWJvbCBDdHJsIGF0YXUgQ21zIGF0YXUgU2hpZnQgc2FtYmlsIG1lbmVrYW4gdGF1dGFubnlhICh0ZXJnYW50dW5nIHBhZGEgU2lzdGVtIE9wZXJhc2kgZGFuIFBlcmFtYmFuKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3cgaGVscGZ1bCB3YXMgdGhpcyBhcnRpY2xlPyBQbGVhc2UgZ2l2ZSB1cyB5b3VyIHJhdGluZyBhbmQgaGVscCB0byBpbXByb3ZlIHRoZSBGQVEgRGF0YWJhc2UuIFRoYW5rIFlvdSEnfSA9CiAgICAgICAgJ1NlYmVyYXBhIGJlc2FyIGFydGlrZWwgaW5pIG1lbWJhbnR1PyBNb2hvbiBiZXJpa2FuIHBlcmluZ2thdCBBbmRhIGRhbiBpa3V0IG1lbWJhbnR1IERhdGFiYXNlIEZBUS4gVGVyaW1hIGthc2loISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgaGVscGZ1bCd9ID0gJ3RpZGFrIG1lbWJhbnR1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3ZlcnkgaGVscGZ1bCd9ID0gJ3NhbmdhdCBtZW1iYW50dSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFab29tU21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBGQVEgdGl0bGUgdG8gYXJ0aWNsZSBzdWJqZWN0J30gPSAnVGFtYmFoa2FuIGp1ZHVsIEZBUSBwYWRhIHN1YmplayBhcnRpa2VsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGQVEgVGV4dCd9ID0gJ01hc3Vra2FuIFRla3MgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGdWxsIEZBUSd9ID0gJ01hc3Vra2FuIFNlbHVydWggRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGQVEgTGluayd9ID0gJ01hc3Vra2FuIFRhdXRhbiBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZBUSBUZXh0ICYgTGluayd9ID0gJ01hc3VrYW4gVGVrcyBkYW4gVGF1dGFuIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRnVsbCBGQVEgJiBMaW5rJ30gPSAnTWFzdWtrYW4gU2VsdXJ1aCBMaW5rIGRhbiBGQVEnOwoKICAgICMgVGVtcGxhdGU6IEN1c3RvbWVyRkFRRXhwbG9yZXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhdGVzdCB1cGRhdGVkIEZBUSBhcnRpY2xlcyd9ID0gJ0FydGlrZWwgRkFRIHBhbGluZyBiYXJ1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEZBUSBhcnRpY2xlcyBmb3VuZC4nfSA9ICdUaWRhayBkaXRlbXVrYW4gYXJ0aWtlbCBGQVEnOwoKICAgICMgVGVtcGxhdGU6IEN1c3RvbWVyRkFRUmVsYXRlZEFydGljbGVzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1pZ2h0IGJlIGhlbHBmdWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm91bmQgbm8gaGVscGZ1bCByZXNvdXJjZXMgZm9yIHRoZSBzdWJqZWN0IGFuZCB0ZXh0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlIGEgc3ViamVjdCBvciB0ZXh0IHRvIGdldCBhIGxpc3Qgb2YgaGVscGZ1bCByZXNvdXJjZXMuJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBDdXN0b21lckZBUVNlYXJjaAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnVsbHRleHQgc2VhcmNoIGluIEZBUSBhcnRpY2xlcyAoZS4gZy4gIkpvaG4qbiIgb3IgIldpbGwqIiknfSA9ICdQZW5jYXJpYW4gVGVrc3BlbnVoIHBhZGEgQXJ0aWtlbCBGQVEgKGNvbnRvaDogIkpvaG4qbiIgYXRhdSAiV2lsbCIpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGUgcmVzdHJpY3Rpb25zJ30gPSAnQmF0YXNhbiBQZW1pbGloYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSBGQVEgYXJ0aWNsZXMgd2l0aCB2b3Rlcy4uLid9ID0gJ0hhbnlhIGFydGlrZWwgRkFRIHlhbmcgdGVsYWggZGlwaWxpaC4uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRlIHJlc3RyaWN0aW9ucyd9ID0gJ0JhdGFzYW4gUGVyaW5na2F0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgRkFRIGFydGljbGVzIHdpdGggcmF0ZS4uLid9ID0gJ0hhbnlhIEFydGlrZWwgeWFuZyBtZW1pbGlraSBwZXJpbmdrYXQuLi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXN0cmljdGlvbnMnfSA9ICdQZW1iYXRhc2FuIHdha3R1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgRkFRIGFydGljbGVzIGNyZWF0ZWQnfSA9ICdIYW55YSBhcnRpa2VsIEZBUSB5YW5nIGRpYnVhdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IEZBUSBhcnRpY2xlcyBjcmVhdGVkIGJldHdlZW4nfSA9ICdIYW55YSBhcnRpa2VsIEZBUSB5YW5nIGRpYnVhdCBwYWRhICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2gtUHJvZmlsZSBhcyBUZW1wbGF0ZT8nfSA9ICdQZW5jYXJpYW4tUHJvZmlsIHNlYmFnYWkgVGVtcGxhdGU/JzsKCiAgICAjIFRlbXBsYXRlOiBDdXN0b21lckZBUVpvb20KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FydGljbGUgTnVtYmVyJ30gPSAnTm9tb3IgQXJ0aWtlbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggZm9yIGFydGljbGVzIHdpdGgga2V5d29yZCd9ID0gJ0NhcmkgYXJ0aWtlbCBkZW5nYW4ga2F0YSBrdW5jaSc7CgogICAgIyBUZW1wbGF0ZTogUHVibGljRkFRU2VhcmNoT3BlblNlYXJjaERlc2NyaXB0aW9uRkFRTnVtYmVyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMnfSA9ICdVbXVtJzsKCiAgICAjIFRlbXBsYXRlOiBQdWJsaWNGQVFTZWFyY2hSZXN1bHRTaG9ydAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQmFjayB0byBGQVEgRXhwbG9yZXInfSA9ICdLZW1iYWxpIGtlIEVrc3Bsb3JlciBGQVEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCBydyBwZXJtaXNzaW9uISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjYXRlZ29yaWVzIGZvdW5kIHdoZXJlIHVzZXIgaGFzIHJlYWQvd3JpdGUgcGVybWlzc2lvbnMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRlZmF1bHQgbGFuZ3VhZ2UgZm91bmQgYW5kIGNhblwndCBjcmVhdGUgYSBuZXcgb25lLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFDYXRlZ29yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBDYXRlZ29yeUlEISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGNhdGVnb3J5IHNob3VsZCBoYXZlIGEgbmFtZSEnfSA9ICdTZWJ1YWgga2F0ZWdvcmkgaGFydXMgbWVtaWxpa2kgbmFtYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBjYXRlZ29yeSBhbHJlYWR5IGV4aXN0cyd9ID0gJ0thdGVnb3JpIGluaSBzdWRhaCBhZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBjYXRlZ29yeSBhbHJlYWR5IGV4aXN0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQ2F0ZWdvcnlJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgY2F0ZWdvcnkgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBjYXRlZ29yeSB1cGRhdGVkISd9ID0gJ0thdGVnb3JpIEZBUSBkaXVwZGF0ZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGNhdGVnb3J5IGFkZGVkISd9ID0gJ0thdGVnb3JpIEZBUSBkaXRhbWJhaGthbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIENhdGVnb3J5J30gPSAnSGFwdXMgS2F0ZWdvcmknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBJdGVtSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIG5vIHBlcm1pc3Npb24gZm9yIHRoaXMgY2F0ZWdvcnkhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIEZBUSBhcnRpY2xlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFFeHBsb3Jlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIENhdGVnb3J5SUQgJXMgaXMgaW52YWxpZC4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRSGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gSXRlbUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSGlzdG9yeSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFKb3VybmFsLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSm91cm5hbCd9ID0gJ0p1cm5hbCBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBjb25maWcgb3B0aW9uIEZBUTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZyBvcHRpb24gRkFROjpGcm9udGVuZDo6T3ZlcnZpZXcgbmVlZHMgdG8gYmUgYSBIQVNIIHJlZiEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjb25maWcgb3B0aW9uIGZvdW5kIGZvciB0aGUgdmlldyAiJXMiISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFMYW5ndWFnZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gTGFuZ3VhZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIG5hbWUgaXMgcmVxdWlyZWQhJ30gPSAnTmFtYSBkaWJ1dHVoa2FuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGxhbmd1YWdlIGFscmVhZHkgZXhpc3RzISd9ID0gJ0JhaGFzYSBpbmkgc3VkYWggYWRhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBsYW5ndWFnZSAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGxhbmd1YWdlIHVwZGF0ZWQhJ30gPSAnQmFoYXNhIEZBUSBkaXBlcmJhcnVpISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgbGFuZ3VhZ2UgYWRkZWQhJ30gPSAnQmFoYXNhIEZBUSBkaXRhbWJhaGthbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIExhbmd1YWdlICVzJ30gPSAnSGFwdXMgQmFoYXNhICVzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUVByaW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXN1bHQnfSA9ICdIYXNpbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IHVwZGF0ZSd9ID0gJ1BlcmJhcnVhbiB0ZXJha2hpcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgRHluYW1pYyBGaWVsZHMnfSA9ICdCaWRhbmcgZGluYW1pcyBGQVEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRUmljaFRleHQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vICVzIGlzIGdpdmVuISd9ID0gJ1RpZGFrIGFkYSAlcyBkaWJlcmlrYW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBsb2FkIExhbmd1YWdlT2JqZWN0ISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFJlc3VsdCEnfSA9ICdUaWRhayBhZGEgaGFzaWwhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBOdW1iZXInfSA9ICdOb21vciBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBDaGFuZ2VkIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJdGVtIENyZWF0ZSBUaW1lIChiZWZvcmUvYWZ0ZXIpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJdGVtIENyZWF0ZSBUaW1lIChiZXR3ZWVuKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSXRlbSBDaGFuZ2UgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSXRlbSBDaGFuZ2UgVGltZSAoYmV0d2VlbiknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXF1YWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyZWF0ZXIgdGhhbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmVhdGVyIHRoYW4gZXF1YWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NtYWxsZXIgdGhhbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTbWFsbGVyIHRoYW4gZXF1YWxzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgRmlsZUlEISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGFua3MgZm9yIHlvdXIgdm90ZSEnfSA9ICdUZXJpbWEga2FzaWggYXRhcyBwaWxpaGFubnlhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSBhbHJlYWR5IHZvdGVkISd9ID0gJ0FuZGEgc3VkYWggcGVybmFoIG1lbWlsaWghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHJhdGUgc2VsZWN0ZWQhJ30gPSAnVGlkYWsgYWRhIHBlcmluZ2thdCB5YW5nIGRpcGlsaWgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHZvdGluZyBtZWNoYW5pc20gaXMgbm90IGVuYWJsZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB2b3RlIHJhdGUgaXMgbm90IGRlZmluZWQhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9DdXN0b21lckZBUVByaW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBQcmludCd9ID0gJ0NldGFrIEFydGlrZWwgRkFRJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9DdXN0b21lckZBUVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBiZXR3ZWVuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9DdXN0b21lckZBUVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgSXRlbUlEISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvUHVibGljRkFRRXhwbG9yZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlcyAobmV3IGNyZWF0ZWQpJ30gPSAnQXJ0aWtlbCBGQVEgKHRlcmJhcnUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlcyAocmVjZW50bHkgY2hhbmdlZCknfSA9ICdBcnRpa2VsIEZBUSAodGVyYWtoaXIgZGlydWJhaCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGVzIChUb3AgMTApJ30gPSAnQXJ0aWtlbCBGQVEgKDEwIHRlcmF0YXMpJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9QdWJsaWNGQVFSU1MucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFR5cGUgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGUgbXVzdCBiZSBlaXRoZXIgTGFzdENyZWF0ZSBvciBMYXN0Q2hhbmdlIG9yIFRvcDEwISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIFJTUyBmaWxlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0hlYWRlck1ldGEvQWdlbnRGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChGQVFGdWxsdGV4dCknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9IZWFkZXJNZXRhL0N1c3RvbWVyRkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAtIEN1c3RvbWVyICglcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgLSBDdXN0b21lciAoRkFRRnVsbHRleHQpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvSGVhZGVyTWV0YS9QdWJsaWNGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gUHVibGljICglcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgLSBQdWJsaWMgKEZBUUZ1bGx0ZXh0KSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0xheW91dC9GQVEucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgcmF0ZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBhcnRpY2xlIGlzIGVtcHR5ISd9ID0gJ0FydGlrZWwgaW5pIGtvc29uZyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGF0ZXN0IGNyZWF0ZWQgRkFRIGFydGljbGVzJ30gPSAnQXJ0aWtlbCBGQVEgdGVyYWtoaXIgZGlidWF0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvcCAxMCBGQVEgYXJ0aWNsZXMnfSA9ICdBcnRpa2VsIEZBUSAxMCB0ZXJhdGFzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTGlua09iamVjdC9GQVEucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRlbnQgVHlwZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9EeW5hbWljRmllbGQvRHJpdmVyL0ZBUS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IHRoZSBhdHRyaWJ1dGUgd2hpY2ggRkFRcyB3aWxsIGJlIHNlYXJjaGVkIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4dGVybmFsLXNvdXJjZSBrZXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IHRoZSB0eXBlIG9mIGRpc3BsYXknfSA9ICcnOwoKICAgICMgRGF0YWJhc2UgWE1MIC8gU09QTSBEZWZpbml0aW9uOiBGQVEuc29wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW50ZXJuYWwnfSA9ICdpbnRlcm5hbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydleHRlcm5hbCd9ID0gJ2Vrc3Rlcm5hbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwdWJsaWMnfSA9ICd1bXVtJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBmaWx0ZXIgZm9yIEhUTUwgb3V0cHV0IHRvIGFkZCBsaW5rcyBiZWhpbmQgYSBkZWZpbmVkIHN0cmluZy4gVGhlIGVsZW1lbnQgSW1hZ2UgYWxsb3dzIHR3byBpbnB1dCBraW5kcy4gRmlyc3QgdGhlIG5hbWUgb2YgYW4gaW1hZ2UgKGUuZy4gZmFxLnBuZykuIEluIHRoaXMgY2FzZSB0aGUgT1RPQk8gaW1hZ2UgcGF0aCB3aWxsIGJlIHVzZWQuIFRoZSBzZWNvbmQgcG9zc2liaWxpdHkgaXMgdG8gaW5zZXJ0IHRoZSBsaW5rIHRvIHRoZSBpbWFnZS4nfSA9CiAgICAgICAgJ1NlYnVhaCBmaWx0ZXIgdW50dWsgb3V0cHV0IEhUTUwgdW50dWsgbWVuYW1iYWhrYW4gdGF1dGFuIHRlcmthaXQgc3RyaW5nIHlhbmcgZGl0ZW50dWthbi4gRHVhIGJ1YWggbWFzdWthbiBkaXBlcmtlbmFua2FuIHVudHVrIEVsZW1lbiBHYW1iYXIuIFBlcnRhbWEgbmFtYSBkYXJpIGdhbWJhciAoY29udG9oOiBmYXEucG5nKS4gUGFkYSBrYXN1cyBpbmkgcGF0aCBnYW1iYXIgT1RPQk8geWFuZyBkaWd1bmFrYW4uIEtlbXVuZ2tpbmFuIGtlZHVhIGFkYWxhaCBtZW1hc3Vra2FuIHRhdXRhbiBrZSBkYWxhbSBnYW1iYXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBGQVEgYXJ0aWNsZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDU1MgY29sb3IgZm9yIHRoZSB2b3RpbmcgcmVzdWx0Lid9ID0gJ1dhcm5hIENTUyB1bnR1ayBoYXNpbCBwZW1pbGloYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIFRpbWUgVG8gTGVhdmUgZm9yIEZBUSBpdGVtcy4nfSA9ICdXYWt0dSBDYWNoZSBVbnR1ayBLZWx1YXIgZGFsYW0gaXRlbSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0ZWdvcnkgTWFuYWdlbWVudCd9ID0gJ01hbmFqZW1lbiBLYXRlZ29yaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSBNYW5hZ2VtZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgUHJpbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBSZWxhdGVkIEFydGljbGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBSZWxhdGVkIEFydGljbGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIHNlYXJjaC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWNpbWFsIHBsYWNlcyBvZiB0aGUgdm90aW5nIHJlc3VsdC4nfSA9ICdQb3Npc2kgZGVzaW1hbCBwYWRhIGhhc2lsIHBlbWlsaWhhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBjYXRlZ29yeSBuYW1lLid9ID0gJ05hbWEga2F0ZWdvcmkgZGVmYXVsdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBsYW5ndWFnZSBmb3IgRkFRIGFydGljbGVzIG9uIHNpbmdsZSBsYW5ndWFnZSBtb2RlLid9ID0gJ0JhaGFzYSBkZWZhdWx0IHVudHVrIGFydGlrZWwgRkFRIHBhZGEgbW9kZSBzYXR1IGJhaGFzYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBtYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duLid9ID0KICAgICAgICAnRGVmYXVsdCB1a3VyYW4gbWFrc2ltdW0ganVkdWwgZGFsYW0gYXJ0aWtlbCBGQVEgeWFuZyBha2FuIGRpdGFtcGlsa2FuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHByaW9yaXR5IG9mIHRpY2tldHMgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPQogICAgICAgICdEZWZhdWx0IHByaW90aXRhcyBkYXJpIHRpa2V0IHVudHVrIHBlcnNldHVqdWFuIGFydGlrZWwgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXRlIGZvciBGQVEgZW50cnkuJ30gPSAnU3RhdHVzIGRlZmF1bHQgdW50dWsgZW50cmkgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdGUgb2YgdGlja2V0cyBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICdTdGF0dXMgZGVmYXVsdCB0aWtldCB1bnR1ayBwZXJzZXR1anVhbiBwYWRhIGFydGlrZWwgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgdHlwZSBvZiB0aWNrZXRzIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0gJ1RpcGUgdGlrZXQgZGVmYXVsdCB1bnR1ayBwZXJzZXR1anVhbiBhcnRpa2VsIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHZhbHVlIGZvciB0aGUgQWN0aW9uIHBhcmFtZXRlciBmb3IgdGhlIHB1YmxpYyBmcm9udGVuZC4gVGhlIEFjdGlvbiBwYXJhbWV0ZXIgaXMgdXNlZCBpbiB0aGUgc2NyaXB0cyBvZiB0aGUgc3lzdGVtLid9ID0KICAgICAgICAnTmlsYWkgZGVmYXVsdCB1bnR1ayBwYXJhbWV0ZXIgQWtzaSB1bnR1ayBmcm9udGVuZCB1bXVtLiBQYXJhbWV0ZXIgYWtzaSBkaWd1bmFrYW4gcGFkYSBza3JpcCBkYXJpIFNpc3RlbS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIEFjdGlvbnMgd2hlcmUgYSBzZXR0aW5ncyBidXR0b24gaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rZWQgb2JqZWN0cyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gUGxlYXNlIG5vdGUgdGhhdCB0aGVzZSBBY3Rpb25zIG11c3QgaGF2ZSByZWdpc3RlcmVkIHRoZSBmb2xsb3dpbmcgSlMgYW5kIENTUyBmaWxlczogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgYW5kIENvcmUuQWdlbnQuTGlua09iamVjdC5qcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgaWYgdGhlIEZBUSB0aXRsZSBzaG91bGQgYmUgY29uY2F0ZW5hdGVkIHRvIGFydGljbGUgc3ViamVjdC4nfSA9CiAgICAgICAgJ1RlbnR1a2FuIGppa2EganVkdWwgRkFRIGhhcnVzIHRlcnNhbWJ1bmcga2Ugc3ViamVrIGFydGlrZWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgRkFRcyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90ZTogT25seSBGQVEgYXR0cmlidXRlcyBhbmQgZHluYW1pYyBmaWVsZHMgKER5bmFtaWNGaWVsZF9OYW1lWCkgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBGQVEgam91cm5hbC4nfSA9CiAgICAgICAgJ1RlbnR1a2FuIHNlYnVhaCBnYW1iYXJhbiBtb2R1bCB1bnR1ayBtZW5hbXBpbGthbiB0YW1waWxhbiBrZWNpbCBkYXJpIHNlYnVhaCBqdXJuYWwgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBGQVEgbGlzdC4nfSA9CiAgICAgICAgJ1RlbnR1a2FuIHNlYnVhaCBnYW1iYXJhbiBtb2R1bCB1bnR1ayBtZW5hbXBpbGthbiB0YW1waWxhbiBrZWNpbCBkYXJpIHNlYnVhaCBkYWZ0YXIgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIGEgRkFRIHNlYXJjaCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnVGVudHVrYW4gYXRyaWJ1dCBkZWZhdWx0IEZBUSB1bnR1ayBwZW55b3J0aXJhbiBGQVEgZGFsYW0gcGVuY2FyaWFuIEZBUSBkYXJpIGFudGFybXVrYSBhZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gYSBGQVEgc2VhcmNoIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICdUZW50dWthbiBhdHJpYnV0IHN0YW5kYXIgRkFRIHVudHVrIHBlbnlvcnRpcmFuIGRhbGFtIFBlbmNhcmlhbiBGQVEgZGFyaSBhbnRhcm11a2EgcGVsYW5nZ2FuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gYSBGQVEgc2VhcmNoIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnVGVudHVrYW4gYXRyaWJ1dCBzdGFuZGFyIEZBUSB1bnR1ayBwZW55b3J0aXJhbiBkYWxhbSBwZW5jYXJpYW4gRkFRIHVudHVrIGFudGFybXVrYSB1bXVtLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIHRoZSBGQVEgRXhwbG9yZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1RlbnR1a2FuIGF0cmlidXQgc3RhbmRhciBGQVEgdW50dWsgcGVueW9ydGlyYW4gRkFRIGRhbGFtIEVrc3Bsb3JlciBGQVEgcGFkYSBhbnRhcm11a2EgYWdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIHRoZSBGQVEgRXhwbG9yZXIgb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1RlbnR1a2FuIGF0cmlidXQgc3RhbmRhciBGQVEgdW50dWsgcGVueW9ydGlyYW4gRkFRIGRhbGFtIEVrc3Bsb3JlciBGQVEgcGFkYSBhbnRhcm11a2EgcGVsYW5nZ2FuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1RlbnR1a2FuIGF0cmlidXQgc3RhbmRhciBGQVEgdW50dWsgcGVueW9ydGlyYW4gRkFRIGRhbGFtIEVrc3Bsb3JlciBGQVEgcGFkYSBhbnRhcm11a2EgdW11bSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ1RlbnR1a2FuIHVydXRhbiBzdGFuZGFyIEZBUSBkYWxhbSBoYXNpbCBFa3NwbG9yZXIgRkFRIHBhZGEgYW50YXJtdWthIGFnZW4uIE5haWs6IFRlcmxhbWEgZGkgYXRhcy4gVHVydW46IFRlcmJhcnUgZGkgYXRhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICdUZW50dWthbiB1cnV0YW4gc3RhbmRhciBGQVEgZGFsYW0gaGFzaWwgRWtzcGxvcmVyIEZBUSBwYWRhIGFudGFybXVrYSBwZWxhbmdnYW4uIE5haWs6IFRlcmxhbWEgZGkgYXRhcy4gVHVydW46IFRlcmJhcnUgZGkgYXRhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnVGVudHVrYW4gdXJ1dGFuIHN0YW5kYXIgRkFRIGRhbGFtIGhhc2lsIEVrc3Bsb3JlciBGQVEgcGFkYSBhbnRhcm11a2EgdW11bS4gTmFpazogVGVybGFtYSBkaSBhdGFzLiBUdXJ1bjogVGVyYmFydSBkaSBhdGFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICdUZW50dWthbiB1cnV0YW4gc3RhbmRhciBGQVEgZGFsYW0gaGFzaWwgcGVuY2FyaWFuIHBhZGEgYW50YXJtdWthIGFnZW4uIE5haWs6IFRlcmxhbWEgZGkgYXRhcy4gVHVydW46IFRlcmJhcnUgZGkgYXRhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnVGVudHVrYW4gdXJ1dGFuIHN0YW5kYXIgRkFRIGRhbGFtIGhhc2lsIHBlbmNhcmlhbiBwYWRhIGFudGFybXVrYSBwZWxhbmdnYW4uIE5haWs6IFRlcmxhbWEgZGkgYXRhcy4gVHVydW46IFRlcmJhcnUgZGkgYXRhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ1RlbnR1a2FuIHVydXRhbiBzdGFuZGFyIEZBUSBkYWxhbSBoYXNpbCBwZW5jYXJpYW4gcGFkYSBhbnRhcm11a2EgdW11bS4gTmFpazogVGVybGFtYSBkaSBhdGFzLiBUdXJ1bjogVGVyYmFydSBkaSBhdGFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNob3duIEZBUSBzZWFyY2ggYXR0cmlidXRlIGZvciBGQVEgc2VhcmNoIHNjcmVlbi4nfSA9CiAgICAgICAgJ1RlbnR1a2FuIGF0cmlidXQgcGVuY2FyaWFuIEZBUSBzdGFuZGFyIHlhbmcgZGl0YW1waWxrYW4gdW50dWsgbGF5YXIgcGVuY2FyaWFuIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBoZWlnaHQgZm9yIHRoZSByaWNoIHRleHQgZWRpdG9yIGNvbXBvbmVudCBmb3IgdGhpcyBzY3JlZW4uIEVudGVyIG51bWJlciAocGl4ZWxzKSBvciBwZXJjZW50IHZhbHVlIChyZWxhdGl2ZSkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaW5mb3JtYXRpb24gdG8gYmUgaW5zZXJ0ZWQgaW4gYSBGQVEgYmFzZWQgVGlja2V0LiAiRnVsbCBGQVEiIGluY2x1ZGVzIHRleHQsIGF0dGFjaG1lbnRzIGFuZCBpbmxpbmUgaW1hZ2VzLid9ID0KICAgICAgICAnVGVudHVrYW4gaW5mb3JtYXNpIHlhbmcgYWthbiBkaSBtYXN1a2FuIGtlIGRhbGFtIHNlYnVhaCBUaWtldCBiZXJkYXNhciBGQVEuICJGQVEgbGVuZ2thcCIgYmVyaXNpIHRla3MsIGxhbXBpcmFuLCBkYW4gZ2FtYmFyIGRpIGJhcmlzYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZC4gIkxpbWl0IiBkZWZpbmVzIHRoZSBudW1iZXIgb2YgZW50cmllcyBkaXNwbGF5ZWQgYnkgZGVmYXVsdC4gIkdyb3VwIiBpcyB1c2VkIHRvIHJlc3RyaWN0IGFjY2VzcyB0byB0aGUgcGx1Z2luIChlLiBnLiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgaW5kaWNhdGVzIGlmIHRoZSBwbHVnaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIGlmIHRoZSB1c2VyIG5lZWRzIHRvIGVuYWJsZSBpdCBtYW51YWxseS4nfSA9CiAgICAgICAgJ1RlbnR1a2FuIHBhcmFtZXRlciB1bnR1ayBiYWNrZW5kIGRhc2Jvci4gIkxpbWl0IiBtZW5lbnR1a2FuIGp1bWxhaCBlbnRyaSB5YW5nIGRpIHRhbXBpbGthbiBzZWNhcmEgZGVmYXVsdC4gIkdyb3VwIiBkaSBndW5ha2FuIHVudHVrIG1lbWJhdGFzaSBha3NlcyBrZSBwbHVnaW4gKG1pc2FsbnlhIEdydXA6IGFkbWluO2dydXAxO2dydXAyOykuICJEZWZhdWx0IiBtZW5naW5kaWthc2lrYW5qaWthIHBsdWdpbiBkaWFrdGlma2FuIHNlY2FyYSBkZWZhdWx0IGF0YXUgamlrYSBwZW5nZ3VuYSBwZXJsdSBtZW5nYWt0aWZrYW5ueWEgc2VjYXJhIG1hbnVhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgRkFRIEV4cGxvcmVyLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnVGVudHVrYW4ga29sb20geWFuZyBkaXRhbXBpbGthbiBkaSBFa3NwbG9yZXIgRkFRLiBQaWxpaGFuIGluaSB0aWRhayBtZW1wZW5nYXJ1aGkgcG9zaXNpIGtvbG9tLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBGQVEgam91cm5hbC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ1RlbnR1a2FuIGtvbG9tIHlhbmcgZGkgdGFtcGlsa2FuIGRpIGp1cm5hbCBGQVEuIFBpbGloYW4gaW5pIHRpZGFrIG1lbXBlbmdhcnVoaSBwb3Npc2kga29sb20uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIEZBUSBzZWFyY2guIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdUZW50dWthbiBrb2xvbSB5YW5nIGRpIHRhbXBpbGthbiBkaWRhbGFtIHBlbmNhcmlhbiBGQVEuIFBpbGloYW4gaW5pIHRpZGFrIG1lbXBlbmdhcnVoaSBwb3Npc2kga29sb20uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgd2hlcmUgdGhlIFwnSW5zZXJ0IEZBUVwnIGxpbmsgd2lsbCBiZSBkaXNwbGF5ZWQuJ30gPSAnVGVudHVrYW4gZGltYW5hIHRhdXRhbiBcJ01hc3Vra2FuIEZBUVwnIGFrYW4gZGl0YW1waWxrYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluaXRpb24gb2YgRkFRIGl0ZW0gZnJlZSB0ZXh0IGZpZWxkLid9ID0gJ0RlZmluaXNpIGRhcmkgaXRlbSB0ZWtzIGZpZWxkIGJlYmFzIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhpcyBGQVEnfSA9ICdIYXB1cyBGQVEgaW5pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIG92ZXJ2aWV3IHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgb3ZlcnZpZXcgc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgcHJpbnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBwcmludCBzY3JlZW4gb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHByaW50IHNjcmVlbiBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHNlYXJjaCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHNlYXJjaCBzY3JlZW4gb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHNlYXJjaCBzY3JlZW4gb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBzbWFsbCBmb3JtYXQgb3ZlcnZpZXcgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgem9vbSBzY3JlZW4gb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHpvb20gc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhpcyBGQVEnfSA9ICd1YmFoIEZBUSBpbmkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSBtdWx0aXBsZSBsYW5ndWFnZXMgb24gRkFRIG1vZHVsZS4nfSA9ICdBa3RpZmthbiBtdWx0aWJhaGFzYSBwYWRhIG1vZHVsIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHNlcnZpY2UgYXNzaWdubWVudCBmb3IgRkFRcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHRoZSByZWxhdGVkIGFydGljbGUgZmVhdHVyZSBmb3IgdGhlIGN1c3RvbWVyIGZyb250ZW5kLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB2b3RpbmcgbWVjaGFuaXNtIG9uIEZBUSBtb2R1bGUuJ30gPSAnQWt0aWZrYW4gbWVrYW5pc21lIHZvdGluZyBwYWRhIG1vZHVsIEZBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4cGxvcmVyJ30gPSAnRWtzcGxvcmVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBSkFYIFJlc3BvbmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQUpBWCBSZXNwb25kZXIgZm9yIFJpY2h0ZXh0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJlYSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJlYS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIERlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBIaXN0b3J5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSm91cm5hbCBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnSnVybmFsIGdhbWJhcmFuIGJhdGFzICJrZWNpbCIgIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJ0dhbWJhcmFuIGJhdGFzICJLZWNpbCInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIFByaW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgc2VhcmNoIGJhY2tlbmQgcm91dGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPSAnUGVuY2FyaWFuIHBlbmVydXMgYmFja2VuZCBGQVEgcGFkYSBhbnRhcm11a2EgYWdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWVsZDQnfSA9ICdGaWVsZDQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmllbGQ1J30gPSAnRmllbGQ1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bGwgRkFRJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0gJ0dydXAgdW50dWsgcGVyc2V0dWp1YW4gYXJ0aWtlbCBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiB0aGlzIEZBUSd9ID0gJ1NlamFyYWggZGFyaSBGQVEgaW5pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGFjdGl2YXRlZCwgRkFRIGFydGljbGVzIG9mIHN0YXR1cyB0eXBlIGludGVybmFsIGFyZSBhbHNvIHRha2VuIGludG8gYWNjb3VudCBmb3IgdGhlIGFwcHJvdmFsIHByb2Nlc3MuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jbHVkZSBpbnRlcm5hbCBmaWVsZHMgb24gYSBGQVEgYmFzZWQgVGlja2V0Lid9ID0gJ01hc3VrYW4gYmlkYW5nIGludGVybmFsIHBhZGEgVGlrZXQgYmVyZGFzYXIgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNsdWRlIHRoZSBuYW1lIG9mIGVhY2ggZmllbGQgaW4gYSBGQVEgYmFzZWQgVGlja2V0Lid9ID0gJ01hc3VrYW4gbmFtYSBzZXRpYXAgYmlkYW5nIHBhZGEgVGlrZXQgYmVyZGFzYXIgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnRlcmZhY2VzIHdoZXJlIHRoZSBxdWljayBzZWFyY2ggc2hvdWxkIGJlIHNob3duLid9ID0gJ0FudGFybXVrYSBkaW1hbmEgcGVuY2FyaWFuIGNlcGF0IGhhcnVzIGRpIHRhbXBpbGthbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydKb3VybmFsJ30gPSAnSnVybmFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhbmd1YWdlIE1hbmFnZW1lbnQnfSA9ICdNYW5hamVtZW4gQmFoYXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhbmd1YWdlIE1hbmFnZW1lbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbWl0IGZvciB0aGUgc2VhcmNoIHRvIGJ1aWxkIHRoZSBrZXl3b3JkIEZBUSBhcnRpY2xlIGxpc3QuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhpcyBGQVEgaXRlbSd9ID0gJ1RhdXRrYW4gb2JqZWsgbGFpbm55YSBrZSBpdGVtIEZBUSBpbmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBxdWV1ZSBuYW1lcyBmb3Igd2hpY2ggdGhlIHJlbGF0ZWQgYXJ0aWNsZSBmZWF0dXJlIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBzdGF0ZSB0eXBlcyB3aGljaCBjYW4gYmUgdXNlZCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGFmdGFyIGplbmlzIHN0YXR1cyB5YW5nIGRhcGF0IGRpZ3VuYWthbiBwYWRhIGFudGFybXVrYSBhZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIHN0YXRlIHR5cGVzIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEYWZ0YXIgamVuaXMgc3RhdHVzIHlhbmcgZGFwYXQgZGlndW5ha2FuIHBhZGEgYW50YXJtdWthIHBlbGFuZ2dhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBzdGF0ZSB0eXBlcyB3aGljaCBjYW4gYmUgdXNlZCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RhZnRhciBqZW5pcyBzdGF0dXMgeWFuZyBkYXBhdCBkaWd1bmFrYW4gcGFkYSBhbnRhcm11a2EgdW11bS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdKdW1sYWggYXJ0aWtlbCBGQVEgbWFrc2ltYWwgeWFuZyBha2FuIGRpdGFtcGlsa2FuIGRpIGRhbGFtIGhhc2lsIEVrc3Bsb3JlciBGQVEgZGkgYW50YXJtdWthIGFnZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0p1bWxhaCBhcnRpa2VsIEZBUSBtYWtzaW1hbCB5YW5nIGFrYW4gZGl0YW1waWxrYW4gZGkgZGFsYW0gaGFzaWwgRWtzcGxvcmVyIEZBUSBkaSBhbnRhcm11a2EgcGVsYW5nZ2FuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnSnVtbGFoIGFydGlrZWwgRkFRIG1ha3NpbWFsIHlhbmcgYWthbiBkaXRhbXBpbGthbiBkaSBkYWxhbSBoYXNpbCBFa3NwbG9yZXIgRkFRIGRpIGFudGFybXVrYSB1bXVtLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgam91cm5hbCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnSnVtbGFoIGFydGlrZWwgRkFRIG1ha3NpbWFsIHlhbmcgYWthbiBkaXRhbXBpbGthbiBkaSBkYWxhbSBoYXNpbCBqdXJuYWwgRkFRIGRpIGFudGFybXVrYSBhZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSByZXN1bHQgb2YgYSBzZWFyY2ggaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0p1bWxhaCBhcnRpa2VsIEZBUSBtYWtzaW1hbCB5YW5nIGFrYW4gZGl0YW1waWxrYW4gZGkgZGFsYW0gaGFzaWwgcGVuY2FyaWFuIGRpIGFudGFybXVrYSBhZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSByZXN1bHQgb2YgYSBzZWFyY2ggaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0p1bWxhaCBhcnRpa2VsIEZBUSBtYWtzaW1hbCB5YW5nIGFrYW4gZGl0YW1waWxrYW4gZGkgZGFsYW0gaGFzaWwganVybmFsIEZBUSBkaSBhbnRhcm11a2EgcGVsYW5nZ2FuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSByZXN1bHQgb2YgYSBzZWFyY2ggaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICdKdW1sYWggYXJ0aWtlbCBGQVEgbWFrc2ltYWwgeWFuZyBha2FuIGRpdGFtcGlsa2FuIGRpIGRhbGFtIGhhc2lsIGp1cm5hbCBGQVEgZGkgYW50YXJtdWthIHVtdW0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBFeHBsb3JlciBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnVWt1cmFuIG1ha3NpbWFsIEp1ZHVsIGRpIGRhbGFtIGFydGlrZWwgRkFRIHlhbmcgYWthbiBkaSB0YW1waWxrYW4gZGkgZGFsYW0gRWtzcGxvcmVyIEZBUSBwYWRhIGFudGFybXVrYSBhZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgRXhwbG9yZXIgaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1VrdXJhbiBtYWtzaW1hbCBKdWR1bCBkaSBkYWxhbSBhcnRpa2VsIEZBUSB5YW5nIGFrYW4gZGkgdGFtcGlsa2FuIGRpIGRhbGFtIEVrc3Bsb3JlciBGQVEgcGFkYSBhbnRhcm11a2EgcGVsYW5nZ2FuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgRXhwbG9yZXIgaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICdVa3VyYW4gbWFrc2ltYWwgSnVkdWwgZGkgZGFsYW0gYXJ0aWtlbCBGQVEgeWFuZyBha2FuIGRpIHRhbXBpbGthbiBkaSBkYWxhbSBFa3NwbG9yZXIgRkFRIHBhZGEgYW50YXJtdWthIHVtdW0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBTZWFyY2ggaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1VrdXJhbiBtYWtzaW1hbCBKdWR1bCBkaSBkYWxhbSBhcnRpa2VsIEZBUSB5YW5nIGFrYW4gZGkgdGFtcGlsa2FuIGRpIGRhbGFtIFBlbmNhcmlhbiBGQVEgcGFkYSBhbnRhcm11a2EgYWdlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIFNlYXJjaCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnVWt1cmFuIG1ha3NpbWFsIEp1ZHVsIGRpIGRhbGFtIGFydGlrZWwgRkFRIHlhbmcgYWthbiBkaSB0YW1waWxrYW4gZGkgZGFsYW0gUGVuY2FyaWFuIEZBUSBwYWRhIGFudGFybXVrYSBwZWxhbmdnYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBTZWFyY2ggaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICdVa3VyYW4gbWFrc2ltYWwgSnVkdWwgZGkgZGFsYW0gYXJ0aWtlbCBGQVEgeWFuZyBha2FuIGRpIHRhbXBpbGthbiBkaSBkYWxhbSBQZW5jYXJpYW4gRkFRIHBhZGEgYW50YXJtdWthIHVtdW0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBqb3VybmFsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdVa3VyYW4gbWFrc2ltYWwgSnVkdWwgZGkgZGFsYW0gYXJ0aWtlbCBGQVEgeWFuZyBha2FuIGRpIHRhbXBpbGthbiBkaSBkYWxhbSBKb3VybmFsIEZBUSBwYWRhIGFudGFybXVrYSBhZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gZ2VuZXJhdGUgSFRNTCBPcGVuU2VhcmNoIHByb2ZpbGUgZm9yIHNob3J0IEZBUSBzZWFyY2ggaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gZ2VuZXJhdGUgSFRNTCBPcGVuU2VhcmNoIHByb2ZpbGUgZm9yIHNob3J0IEZBUSBzZWFyY2ggaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNb2R1bCB1bnR1ayBtZW5naGFzaWxrYW4gcHJvZmlsIEhUTUwgUGVuY2FyaWFuVGVyYnVrYSB1bnR1ayBQZW5jYXJpYW4gcGVuZGVrIEZBUSBkaSBhbnRhcm11a2EgdW11bS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGdlbmVyYXRlIGh0bWwgT3BlblNlYXJjaCBwcm9maWxlIGZvciBzaG9ydCBGQVEgc2VhcmNoLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBGQVEgQXJ0aWNsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEZBUSBhcnRpY2xlcyBuZWVkIGFwcHJvdmFsIGJlZm9yZSB0aGV5IGdldCBwdWJsaXNoZWQuJ30gPSAnQXJ0aWtlbCBGQVEgYmFydSBtZW1idXR1aGthbiBlcnNldHVqdWFuIHNlYmVsdW0gZGlwdWJsaWthc2lrYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0p1bWxhaCBhcnRpa2VsIEZBUSB5YW5nIGFrYW4gZGl0YW1waWxrYW4gcGFkYSBFa3NwbG9yZXIgRkFRIGRpIGFudGFybXVrYSBwZWxhbmdnYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICdKdW1sYWggYXJ0aWtlbCBGQVEgeWFuZyBha2FuIGRpIHRhbXBpbGthbiBkaSBFa3NwbG9yZXIgRkFRIHBhZGEgYW50YXJtdWthIHVtdW0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIG9uIGVhY2ggcGFnZSBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0p1bWxhaCBhcnRpa2VsIEZBUSB5YW5nIGFrYW4gZGkgdGFtcGlsa2FuIHBhZGEgc2V0aWFwIGhhbGFtYW4gZGFyaSBoYXNpbCBwZW5jYXJpYW4gcGFkYSBhbnRhcm11a2EgcGVsYW5nZ2FuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBvbiBlYWNoIHBhZ2Ugb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnSnVtbGFoIGFydGlrZWwgRkFRIHlhbmcgYWthbiBkaSB0YW1waWxrYW4gcGFkYSBzZXRpYXAgaGFsYW1hbiBkYXJpIGhhc2lsIHBlbmNhcmlhbiBwYWRhIGFudGFybXVrYSB1bXVtLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2Ygc2hvd24gaXRlbXMgaW4gbGFzdCBjaGFuZ2VzLid9ID0gJ0p1bWxhaCBpdGVtIHlhbmcgZGl0YW1waWxrYW4gZGFsYW0gcGVydWJhaGFuIHRlcmFraGlyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2Ygc2hvd24gaXRlbXMgaW4gbGFzdCBjcmVhdGVkLid9ID0gJ0p1bWxhaCBpdGVtIHlhbmcgZGkgdGFtcGlsa2FuIGRhbGFtIHBlbWJ1YXRhbiB0ZXJha2hpci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIHNob3duIGl0ZW1zIGluIHRoZSB0b3AgMTAgZmVhdHVyZS4nfSA9ICdKdW1sYWggaXRlbSB5YW5nIGRpdGFtcGlsa2FuIGRhbGFtIDEwIGZpdHVyIHRlcmF0YXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J091dHB1dCBmaWx0ZXIgdG8gYWRkIEphdmEtc2NyaXB0IHRvIEN1c3RvbWVyVGlja2V0TWVzc2FnZSBzY3JlZW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3V0cHV0IGxpbWl0IGZvciB0aGUgcmVsYXRlZCBGQVEgYXJ0aWNsZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIEZBUSBpdGVtcyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBGQVEgam91cm5hbCBvdmVydmlldy4nfSA9CiAgICAgICAgJ1BhcmFtZXRlciB1bnR1ayBoYWxhbWFuIChkaW1hbmEgaXRlbSBGQVEgZGkgdGFtcGlsa2FuKSBqdXJuYWwga2VjaWwgZ2FtYmFyYW4gRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBGQVEgaXRlbXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgRkFRIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnUGFyYW1ldGVyIHVudHVrIGhhbGFtYW4gKGRpbWFuYSBpdGVtIEZBUSBkaSB0YW1waWxrYW4pIGdhbWJhcmFuIGtlY2lsIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhpcyBGQVEnfSA9ICdDZXRhayBGQVEgaW5pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRIFByaW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRIFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBGQVEgc2VhcmNoLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydRdWV1ZSBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICdBbnRyaWFuIHVudHVrIGRpc2V0dWp1aW55YSBhcnRpa2VsIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRlcyBmb3Igdm90aW5nLiBLZXkgbXVzdCBiZSBpbiBwZXJjZW50Lid9ID0gJ1BlcmluZ2thdGthbiB1bnR1ayBtZW1pbGloLiAgS3VuY2kgaGFydXMgZGFsYW0gcGVyc2VudGFzZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggRkFRJ30gPSAnQ2FyaSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIEZBUSBTbWFsbC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIEZBUS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGhvdyBtYW55IGl0ZW1zIHNob3VsZCBiZSBzaG93biBpbiBKb3VybmFsIE92ZXJ2aWV3ICJTbWFsbCIgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgaG93IG1hbnkgaXRlbXMgc2hvdWxkIGJlIHNob3duIGluIE92ZXJ2aWV3ICJTbWFsbCIgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBBZ2VudEZBUVpvb20uJ30gPQogICAgICAgICdUZW50dWthbiB0aW5nZ2kgZGVmYXVsdCAoZGFsYW0gcGlrc2VsKSAgcGFkYSBiaWRhbmcgc2ViYXJpcyBIVE1MIHBhZGEgQWdlbnRGQVFab29tLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBDdXN0b21lckZBUVpvb20gKGFuZCBQdWJsaWNGQVFab29tKS4nfSA9CiAgICAgICAgJ1RlbnR1a2FuIHRpbmdnaSBkZWZhdWx0IChkYWxhbSBwaWtzZWwpICBwYWRhIGJpZGFuZyBzZWJhcmlzIEhUTUwgcGFkYSBDdXN0b21lckZBUVpvb20gKGRhbiBQdWJsaWNGQVFab29tKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBtYXhpbXVtIGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gQWdlbnRGQVFab29tLid9ID0KICAgICAgICAnVGVudHVrYW4gdGluZ2dpIG1ha3NpbWFsIChkYWxhbSBwaWtzZWwpICBwYWRhIGJpZGFuZyBzZWJhcmlzIEhUTUwgcGFkYSBBZ2VudEZBUVpvb20uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgbWF4aW11bSBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEN1c3RvbWVyRkFRWm9vbSAoYW5kIFB1YmxpY0ZBUVpvb20pLid9ID0KICAgICAgICAnVGVudHVrYW4gdGluZ2dpIG1ha3NpbWFsIChkYWxhbSBwaWtzZWwpICBwYWRhIGJpZGFuZyBzZWJhcmlzIEhUTUwgcGFkYSBDdXN0b21lckZBUVpvb20gKGRhbiBQdWJsaWNGQVFab29tKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyAiSW5zZXJ0IEZBUSBMaW5rIiBCdXR0b24gaW4gQWdlbnRGQVFab29tU21hbGwgZm9yIHB1YmxpYyBGQVEgQXJ0aWNsZXMuJ30gPQogICAgICAgICdUYW1waWxrYW4gdG9tYm9sICJNYXN1a2FuIHRhdXRhbiBGQVEiIHBhZGEgQWdlbnRGQVFab29tU21hbGwgdW50dWsgYXJ0aWtlbCBGQVEgdW11bSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93ICJJbnNlcnQgRkFRIFRleHQgJiBMaW5rIiAvICJJbnNlcnQgRnVsbCBGQVEgJiBMaW5rIiBCdXR0b24gaW4gQWdlbnRGQVFab29tU21hbGwgZm9yIHB1YmxpYyBGQVEgQXJ0aWNsZXMuJ30gPQogICAgICAgICdUYW1wbGlrYW4gdG9tYm9sICJNYXN1a2FuIHRla3MgJiB0YXV0YW4gRkFRIiAvICJNYXN1a2FuIEZBUSAmIFRhdXRhbiBsZW5na2FwIiBwYWRhIEFnZW50RkFRWm9vbVNtYWxsIHVudHVrIGFydGlrZWwgRkFRIHVtdW0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgIkluc2VydCBGQVEgVGV4dCIgLyAiSW5zZXJ0IEZ1bGwgRkFRIiBCdXR0b24gaW4gQWdlbnRGQVFab29tU21hbGwuJ30gPQogICAgICAgICdUYW1waWxrYW4gdG9tYm9sICJNYXN1a2FuIHRla3MgRkFRIiAvICJNYXN1a2FuIEZBUSBsZW5na2FwIiBwYWRhIEFnZW50RkFRWm9vbVNtYWxsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IEZBUSBBcnRpY2xlIHdpdGggSFRNTC4nfSA9ICdUYW1waWxrYW4gYXJ0aWtlbCBGQVEgZGVuZ2FuIEhUTUwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgRkFRIHBhdGggeWVzL25vLid9ID0gJ1RhbXBpbGthbiBKYWx1ciBGQVEgaXlhL3RpZGFrLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGludmFsaWQgaXRlbXMgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGl0ZW1zIG9mIHN1YmNhdGVnb3JpZXMuJ30gPSAnVGFtcGlsa2FuIGl0ZW0gZGFyaSBzdWJrYXRlZ29yaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBsYXN0IGNoYW5nZSBpdGVtcyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAnVGFtcGlsa2FuIGl0ZW0gdGVyYWtoaXIgeWFuZyBkaSB1YmFoIHBhZGEgYW50YXJtdWthIHlhbmcgZGkgdGVudHVrYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgbGFzdCBjcmVhdGVkIGl0ZW1zIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICdUYW1waWxrYW4gaXRlbSB0ZXJha2hpciB5YW5nIGRpIGNpcHRha2FuIHBhZGEgYW50YXJtdWthIHlhbmcgZGkgdGVudHVrYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgcmVsYXRlZCBhcnRpY2xlcyBvbiBzZXJ2aWNlIGNoYW5nZSBldmVuIHdpdGggZW1wdHkgc3ViamVjdCBhbmQgYm9keS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHRoZSBzdGFycyBmb3IgdGhlIGFydGljbGVzIHdpdGggYSByYXRpbmcgZXF1YWwgb3IgZ3JlYXRlciBsaWtlIHRoZSBkZWZpbmVkIHZhbHVlIChzZXQgdmFsdWUgXCcwXCcgdG8gZGVhY3RpdmF0ZSB0aGUgb3V0cHV0KS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHRvcCAxMCBpdGVtcyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAnVGFtcGlsa2FuIDEwIGl0ZW0gdGVyYXRhcyBwYWRhIGFudGFybXVrYSB5YW5nIGRpIHRlbnR1a2FuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHZvdGluZyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAnVGFtcGlsa2FuIHBlbWlsaWhhbiBwYWRhIGFudGFybXVrYSB5YW5nIGRpIHRlbnR1a2FuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIEZBUSB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSB6b29tIHZpZXcgb2Ygc3VjaCBGQVEgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1RhbXBpbGthbiB0YXV0YW4gZGkgbWVudSB5YW5nIG1lbmdpemlua2FuIGh1YnVuZ2FuIEZBUSBkZW5nYW4gb2JqZWsgbGFpbiBkaSB0YW1waWxhbiB6b29tIHNlcGVydGkgRkFRIHBhZGEgYW50YXJtdWthIGFnZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyB0byBkZWxldGUgYSBGQVEgaW4gaXRzIHpvb20gdmlldyBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnVGFtcGlsa2FuIHRhdXRhbiBwYWRhIG1lbnUgeWFuZyBtZW5naXppbmthbiBwZW5naGFwdXNhbiBGQVEgcGFkYSB0YW1waWxhbiB6b29tIHBhZGEgYW50YXJtdWthIGFnZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSBGQVEgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnVGFtcGlsa2FuIHRhdXRhbiBwYWRhIG1lbnUgdW50dWsgbWVuZ2Frc2VzIHNlamFyYWggRkFRIHBhZGEgdGFtcGlsYW4gem9vbW55YSBkaSBhbnRhcm11a2EgYWdlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSBGQVEgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1RhbXBpbGthbiB0YXV0YW4gcGFkYSBtZW51IHVudHVrIG1lbmd1YmFoIEZBUSBwYWRhIHRhbXBpbGFuIHpvb21ueWEgZGkgYW50YXJtdWthIGFnZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSBGQVEgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdUYW1waWxrYW4gdGF1dGFuIHBhZGEgbWVudSB1bnR1ayBrZW1iYWxpIHBhZGEgRkFRIHBhZGEgdGFtcGlsYW4gem9vbSBkaSBhbnRhcm11a2EgYWdlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgRkFRIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdUYW1waWxrYW4gdGF1dGFuIHBhZGEgbWVudSB1bnR1ayBtZW5jZXRhayBGQVEgcGFkYSB0YW1waWxhbiB6b29tbnlhIGRpIGFudGFybXVrYSBhZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTb2x1dGlvbid9ID0gJ1NvbHVzaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTeW1wdG9tJ30gPSAnR2VqYWxhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RleHQgT25seSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgZGVmYXVsdCBsYW5ndWFnZXMgZm9yIHRoZSByZWxhdGVkIEZBUSBhcnRpY2xlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgRkFRLCBlLmcuIEZBUSMsIEtCIywgTXlGQVEjLiBUaGUgZGVmYXVsdCBpcyBGQVEjLid9ID0KICAgICAgICAnUGVuZ2lkZW50aWZpa2FzaSB1bnR1ayBGQVEsIE1pc2FsbnlhIEZBUSMsIEtCIywgTXlGQVEjLiBTdGFuZGFybnlhIGFkYWxhaCBGQVEjLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnRkFRXCcgb2JqZWN0cyB1c2luZyB0aGUgXCdOb3JtYWxcJyBsaW5rIHR5cGUuJ30gPQogICAgICAgICdQZW5nYXR1cmFuIGluaSBtZW5kZWZpbmlza2FuIGJhaHdhIG9iamVrIFwnRkFRXCcgZGFwYXQgZGkgaHVidW5na2FuIGRlbmdhbiBvYmplayBcJ0ZBUVwnIGxhaW4gZGVuZ2FuIG1lbmdndW5ha2FuIHR5cGUgdGF1dGFuIFwnTm9ybWFsXCcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBkZWZpbmVzIHRoYXQgYSBcJ0ZBUVwnIG9iamVjdCBjYW4gYmUgbGlua2VkIHdpdGggb3RoZXIgXCdGQVFcJyBvYmplY3RzIHVzaW5nIHRoZSBcJ1BhcmVudENoaWxkXCcgbGluayB0eXBlLid9ID0KICAgICAgICAnUGVuZ2F0dXJhbiBpbmkgbWVuZGVmaW5pc2thbiBiYWh3YSBvYmplayBcJ0ZBUVwnIGRhcGF0IGRpIGh1YnVuZ2thbiBkZW5nYW4gb2JqZWsgXCdGQVFcJyBsYWluIGRlbmdhbiBtZW5nZ3VuYWthbiB0eXBlIHRhdXRhbiBcJ1BhcmVudENoaWxkXCcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBkZWZpbmVzIHRoYXQgYSBcJ0ZBUVwnIG9iamVjdCBjYW4gYmUgbGlua2VkIHdpdGggb3RoZXIgXCdUaWNrZXRcJyBvYmplY3RzIHVzaW5nIHRoZSBcJ05vcm1hbFwnIGxpbmsgdHlwZS4nfSA9CiAgICAgICAgJ1BlbmdhdHVyYW4gaW5pIG1lbmRlZmluaXNrYW4gYmFod2Egb2JqZWsgXCdGQVFcJyBkYXBhdCBkaSBodWJ1bmdrYW4gZGVuZ2FuIG9iamVrIFwnVGlrZXRcJyBsYWluIGRlbmdhbiBtZW5nZ3VuYWthbiB0eXBlIHRhdXRhbiBcJ05vcm1hbFwnLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnVGlja2V0XCcgb2JqZWN0cyB1c2luZyB0aGUgXCdQYXJlbnRDaGlsZFwnIGxpbmsgdHlwZS4nfSA9CiAgICAgICAgJ1BlbmdhdHVyYW4gaW5pIG1lbmRlZmluaXNrYW4gYmFod2Egb2JqZWsgXCdGQVFcJyBkYXBhdCBkaSBodWJ1bmdrYW4gZGVuZ2FuIG9iamVrIFwnVGlja2V0XCcgbGFpbiBkZW5nYW4gbWVuZ2d1bmFrYW4gdHlwZSB0YXV0YW4gXCdQYXJlbnRDaGlsZFwnLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgYm9keSBmb3IgYXBwcm92YWwgb2YgRkFRIGFydGljbGUuJ30gPSAnSXNpIHRpa2V0IHVudHVrIHBlcnNldHVqdWFuIGFydGlrZWwgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgc3ViamVjdCBmb3IgYXBwcm92YWwgb2YgRkFRIGFydGljbGUuIFBlcm1pdHRlZCBub3RpZmljYXRpb24gdGFncyBhcmUgPE9UT0JPX0ZBUV9OVU1CRVI+LCA8T1RPQk9fRkFRX0NBVEVHT1JZSUQ+LCA8T1RPQk9fRkFRX0lURU1JRD4+IDxPVE9CT19GQVFfVElUTEU+IGFuZCA8T1RPQk9fRkFRX1NUQVRFSUQ+Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rvb2xiYXIgSXRlbSBmb3IgYSBzaG9ydGN1dC4nfSA9ICdJdGVtIHRvb2xiYXIgdW50dWsgamFsYW4gcGludGFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2V4dGVybmFsIChjdXN0b21lciknfSA9ICdla3N0ZXJuYWwgKHBlbGFuZ2dhbiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW50ZXJuYWwgKGFnZW50KSd9ID0gJ2ludGVybmFsIChhZ2VuKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwdWJsaWMgKGFsbCknfSA9ICd1bXVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3B1YmxpYyAocHVibGljKSd9ID0gJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ05vJywKICAgICdPaycsCiAgICAnU2V0dGluZ3MnLAogICAgJ1N1Ym1pdCcsCiAgICAnVGhpcyBtaWdodCBiZSBoZWxwZnVsJywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==</File>
        <File Location="Kernel/Language/it_FAQ.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6Oml0X0ZBUTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRQWRkCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIEFydGljbGUnfSA9ICdBZ2dpdW5nZXJlIGFydGljb2xvIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydLZXl3b3Jkcyd9ID0gJ1Bhcm9sZSBjaGlhdmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRlZ29yeSBpcyByZXF1aXJlZC4nfSA9ICdVbmEgY2F0ZWdvcmlhIMOoIG9iYmxpZ2F0b3JpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcHByb3ZhbCd9ID0gJ0FwcHJvdmF6aW9uZSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFDYXRlZ29yeQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIENhdGVnb3J5IE1hbmFnZW1lbnQnfSA9ICdHZXN0aW9uaSBDYXRlZ29yaWUgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBGQVEgQ2F0ZWdvcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBGQVEgQ2F0ZWdvcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGNhdGVnb3J5J30gPSAnQWdnaXVuZ2kgY2F0ZWdvcmlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRlZ29yeSd9ID0gJ0FnZ2l1bmdpIENhdGVnb3JpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENhdGVnb3J5J30gPSAnTW9kaWZpY2EgQ2F0ZWdvcmlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1YmNhdGVnb3J5IG9mJ30gPSAnU290dG9jYXRlZ29yaWEgZGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhdCBsZWFzdCBvbmUgcGVybWlzc2lvbiBncm91cC4nfSA9ICdTZWxlemlvbmFyZSBhbG1lbm8gdW4gZ3J1cHBvIGRpIHBlcm1lc3NpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBncm91cHMgdGhhdCBjYW4gYWNjZXNzIGFydGljbGVzIGluIHRoaXMgY2F0ZWdvcnkuJ30gPSAnR3J1cHBvIGRpIHRlY25pY2kgdGhlIHB1w7IgYWNjZWRlcmUgYWdsaSBhcml0Y29saSBpbiBxdWVzdGEgY2F0ZWdvcmlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dpbGwgYmUgc2hvd24gYXMgY29tbWVudCBpbiBFeHBsb3Jlci4nfSA9ICdTYXJhbm5vIHZpc2liaWxpIGNvbWUgY29tbWVudGkgaW4gRXhwbG9yZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjYXRlZ29yeT8nfSA9ICdTaSBkZXNpZGVyYSB2ZXJhbWVudGUgZWxpbWluYXJlIHF1ZXN0YSBjYXRlZ29yaWE/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gbm90IGRlbGV0ZSB0aGlzIGNhdGVnb3J5LiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBGQVEgYXJ0aWNsZSBhbmQvb3IgaXMgcGFyZW50IG9mIGF0IGxlYXN0IG9uZSBvdGhlciBjYXRlZ29yeSd9ID0KICAgICAgICAnTm9uIMOoIHBvc3NpYmlsZSBlbGltaW5hcmUgcXVlc3RhIGNhdGVnb3JpYS4gVmllbmUgdXRpbGl6emF0YSBpbiBhbG1lbm8gdW4gYXJ0aWNvbG8gZS9vIMOoIGNvbGxlZ2F0YSBhZCBhbG1lbm8gdW5cJ2FsdHJhIGNhdGVnb3JpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGNhdGVnb3J5IGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBGQVEgYXJ0aWNsZShzKSd9ID0gJ1F1ZXN0YSBjYXRlZ29yaWEgw6ggdXRpbGl6emF0YSBuZWwoaSkgc2VndWVudGUoaSkgYXJ0aWNvbGkgZGVsbGEgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY2F0ZWdvcnkgaXMgcGFyZW50IG9mIHRoZSBmb2xsb3dpbmcgc3ViY2F0ZWdvcmllcyd9ID0gJ1F1ZXN0YSBjYXRlZ29yaWEgw6ggY2Fwb2dydXBwbyBkZWxsZSBzZWd1ZW50aSBzb3R0b2NhdGVnb3JpZSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFEZWxldGUKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBGQVEgYXJ0aWNsZT8nfSA9ICdTaSBkZXNpZGVyYSB2ZXJhbWVudGUgZWxpbWluYXJlIHF1ZXN0byBhcnRpY29sbyBkaSBGQVE/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUVkaXQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSd9ID0gJ0ZBUSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFFeHBsb3JlcgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEV4cGxvcmVyJ30gPSAnRXNwbG9yYXRvcmUgZGkgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1F1aWNrIFNlYXJjaCd9ID0gJ1JpY2VyY2EgVmVsb2NlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dpbGRjYXJkcyBhcmUgYWxsb3dlZC4nfSA9ICdXaWxkY2FyZCBzb25vIHBlcm1lc3NpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZHZhbmNlZCBTZWFyY2gnfSA9ICdSaWNlcmNhIEF2YW56YXRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1YmNhdGVnb3JpZXMnfSA9ICdTb3R0b2NhdGVnb3JpZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZXMnfSA9ICdBcnRpY29saSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gc3ViY2F0ZWdvcmllcyBmb3VuZC4nfSA9ICdOZXNzdW5hIHNvdHRvY2F0ZWdvcmlhIHRyb3ZhdGEuJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUhpc3RvcnkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YnfSA9ICdTdG9yaWNvIGRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgQ29udGVudCd9ID0gJ0NvbnRlbnV0byBkZWxsbyBzdG9yaWNvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZXRpbWUnfSA9ICdJc3RhbnRlIGRpIGNyZWF6aW9uZSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFKb3VybmFsT3ZlcnZpZXdTbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gRkFRIEpvdXJuYWwgZGF0YSBmb3VuZC4nfSA9ICdOZXNzdW4gZGF0byB0cm92YXRvIG5lbCBSaWVwaWxvZ28gRkFRLic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFMYW5ndWFnZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIExhbmd1YWdlIE1hbmFnZW1lbnQnfSA9ICdHZXN0aW9uZSBMaW5ndWFnZ2lvIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIExhbmd1YWdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgRkFRIExhbmd1YWdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZSB0aGlzIGZlYXR1cmUgaWYgeW91IHdhbnQgdG8gd29yayB3aXRoIG11bHRpcGxlIGxhbmd1YWdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbGFuZ3VhZ2UnfSA9ICdBZ2dpdW5naSBsaW5ndWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIExhbmd1YWdlJ30gPSAnQWdnaXVuZ2kgTGluZ3VhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgTGFuZ3VhZ2UnfSA9ICdNb2RpZmljYSBkZWxsYSBsaW5ndWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgbGFuZ3VhZ2UuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIEZBUSBhcnRpY2xlISd9ID0KICAgICAgICAnTm9uIMOoIHBvc3NpYmlsZSBlbGltaW5hcmUgcXVlc3RhIGxpbmd1YS4gRVwnIHV0aWxpenphdGEgaW4gYWxtZW5vIHVuIGFydGljb2xvIGRlbGxhIEZBUSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBsYW5ndWFnZSBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgRkFRIEFydGljbGUocyknfSA9ICdRdWVzdG8gbGluZ3VhZ2dpbyDDqCB1dGlsaXp6YXRvIG5lbChpKSBzZWd1ZW50ZShpKSBhcnRpY29saSBkZWxsYSBGQVEnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRT3ZlcnZpZXdOYXZCYXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRleHQgU2V0dGluZ3MnfSA9ICdJbXBvc3RhemlvbmkgZGkgY29udGVzdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGFydGljbGVzIHBlciBwYWdlJ30gPSAnQXJ0aWNvbGkgRkFRIHBlciBwYWdpbmEnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRT3ZlcnZpZXdTbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gRkFRIGRhdGEgZm91bmQuJ30gPSAnTmVzc3VuIGRhdG8gZGVsbGEgRkFRIHRyb3ZhdG8uJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVJlbGF0ZWRBcnRpY2xlcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnb3V0IG9mIDUnfSA9ICdzdSA1JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVNlYXJjaAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnS2V5d29yZCd9ID0gJ1Bhcm9sYSBjaGlhdmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSAoZS4gZy4gRXF1YWxzIDEwIG9yIEdyZWF0ZXJUaGFuIDYwKSd9ID0gJ1ZvdG8gKGVzOiBVZ3VhbGUgMTAgbyBNYWdnaW9yZSBkaSA2MCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0ZSAoZS4gZy4gRXF1YWxzIDI1JSBvciBHcmVhdGVyVGhhbiA3NSUpJ30gPSAnUGVyY2VudHVhbGUgKGVzOiBVZ3VhbGUgMjUlIG8gTWFnZ2lvcmUgZGkgNzUlKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcHByb3ZlZCd9ID0gJ0FwcHJvdmF0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQgYnknfSA9ICdVbHRpbWEgbW9kaWZpY2EgZWZmZXR0dWF0YSBkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDcmVhdGUgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJ0lzdGFudGUgZGkgY3JlYXppb25lIGRlbGxcJ0FydGljb2xvIEZBUSAocHJpbWEvZG9wbyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ3JlYXRlIFRpbWUgKGJldHdlZW4pJ30gPSAnSXN0YW50ZSBkaSBjcmVhemlvbmUgZGVsbFwnQXJ0aWNvbG8gRkFRIChmcmEpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENoYW5nZSBUaW1lIChiZWZvcmUvYWZ0ZXIpJ30gPSAnSXN0YW50ZSBkaSBtb2RpZmljYSBkZWxsXCdBcnRpY29sbyBGQVEgKHByaW1hL2RvcG8pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENoYW5nZSBUaW1lIChiZXR3ZWVuKSd9ID0gJ0lzdGFudGUgZGkgbW9kaWZpY2EgZGVsbFwnQXJ0aWNvbG8gRkFRIChmcmEpJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVNlYXJjaE9wZW5TZWFyY2hEZXNjcmlwdGlvbkZ1bGx0ZXh0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVFGdWxsdGV4dCd9ID0gJ0ZBUUZ1bGxUZXh0JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVNlYXJjaFNtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgU2VhcmNoJ30gPSAnQ2VyY2EgbmVsbGUgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2ZpbGUgU2VsZWN0aW9uJ30gPSAnU2VsZXppb25hIFByb2ZpbG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSd9ID0gJ1ZvdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdm90ZSBzZXR0aW5ncyd9ID0gJ05lc3N1bmEgaW1wb3N0YXppb25lIHZvdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWMgdm90ZXMnfSA9ICdWb3RpIHNwZWNpZmljaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlLiBnLiBFcXVhbHMgMTAgb3IgR3JlYXRlclRoYW4gNjAnfSA9ICdlcy4gVWd1YWxlIGEgMTAgbyBNYWdnaW9yZSBkaSA2MCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRlJ30gPSAnUGVyY2VudHVhbGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gcmF0ZSBzZXR0aW5ncyd9ID0gJ05vbiBjaSBzb25vIGltcG9zdGF6aW9uaSBzdWxsYSBwZXJjZW50dWFsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpYyByYXRlJ30gPSAnUGVyY2VudHVhbGUgc3BlY2lmaWNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuIGcuIEVxdWFscyAyNSUgb3IgR3JlYXRlclRoYW4gNzUlJ30gPSAnZXMuIFVndWFsZSBhIDI1JSBvIE1hZ2dpb3JlIGRpIDc1JSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDcmVhdGUgVGltZSd9ID0gJ0lzdGFudGUgZGkgQ3JlYXppb25lIGRlbGxcJ0FydGljb2xvIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDaGFuZ2UgVGltZSd9ID0gJ0lzdGFudGUgZGkgbW9kaWZpY2EgZGVsbFwnQXJ0aWNvbG8gRkFRJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVpvb20KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJbmZvcm1hdGlvbid9ID0gJ0luZm9ybWF6aW9uaSBzdWxsZSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0aW5nJ30gPSAnVmFsdXRhemlvbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZXMnfSA9ICdWb3RpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHZvdGVzIGZvdW5kISd9ID0gJ05lc3N1biB2b3RvIHRyb3ZhdG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHZvdGVzIGZvdW5kISBCZSB0aGUgZmlyc3Qgb25lIHRvIHJhdGUgdGhpcyBGQVEgYXJ0aWNsZS4nfSA9ICdOZXNzdW4gdm90byB0cm92YXRvISBQdW9pIGVzc2VyZSBpbCBwcmltbyBhIHZvdGFyZSBxdWVzdGEgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEb3dubG9hZCBBdHRhY2htZW50J30gPSAnU2NhcmljYSBBbGxlZ2F0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyBvcGVuIGxpbmtzIGluIHRoZSBmb2xsb3dpbmcgZGVzY3JpcHRpb24gYmxvY2tzLCB5b3UgbWlnaHQgbmVlZCB0byBwcmVzcyBDdHJsIG9yIENtZCBvciBTaGlmdCBrZXkgd2hpbGUgY2xpY2tpbmcgdGhlIGxpbmsgKGRlcGVuZGluZyBvbiB5b3VyIGJyb3dzZXIgYW5kIE9TKS4nfSA9CiAgICAgICAgJ1BlciBhcHJpcmUgaSBjb2xsZWdhbWVudGkgbmVpIHNlZ3VlbnRpIGJsb2NjaGkgZGVzY3JpemlvbmUsIHBvdHJlYmJlIGVzc2VyZSBuZWNlc3NhcmlvIHByZW1lcmUgQ3RybCBvIENtZCBvIFNoaWZ0IG1lbnRyZSBzaSBjbGljY2Egc3VsIGNvbGxlZ2FtZW50byAoYSBzZWNvbmRhIGRlbCBicm93c2VyIGUgZGVsIFNpc3RlbWEgT3BlcmF0aXZvKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG93IGhlbHBmdWwgd2FzIHRoaXMgYXJ0aWNsZT8gUGxlYXNlIGdpdmUgdXMgeW91ciByYXRpbmcgYW5kIGhlbHAgdG8gaW1wcm92ZSB0aGUgRkFRIERhdGFiYXNlLiBUaGFuayBZb3UhJ30gPQogICAgICAgICdWaSDDqCBzdGF0byB1dGlsZSBxdWVzdG8gYXJ0aWNvbG8/IFZpIHByZWdoaWFtbyBkaSBkYXJlIHVuIHZvdG8gcGVyIGNvbnRyaWJ1aXJlIGEgbWlnbGlvcmFyZSBpbCBEYXRhYmFzZSBkZWxsZSBGQVEuIEdyYXppZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnbm90IGhlbHBmdWwnfSA9ICdub24gw6ggc3RhdG8gdXRpbGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndmVyeSBoZWxwZnVsJ30gPSAnbW9sdG8gdXRpbGUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRWm9vbVNtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIHRpdGxlIHRvIGFydGljbGUgc3ViamVjdCd9ID0gJ0FnZ2l1bmdpIGlsIHRpdG9sbyBkZWxsYSBGQVEgbmVsIHNvZ2dldHRvIGRlbGxcJ2FydGljb2xvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGQVEgVGV4dCd9ID0gJ0luc2VyaXNjaSBpbCB0ZXN0byBkZWxsYSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZ1bGwgRkFRJ30gPSAnSW5zZXJpc2NpIHVuYSBGQVEgY29tcGxldGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZBUSBMaW5rJ30gPSAnSW5zZXJpc2NpIEZBUSBMaW5rJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGQVEgVGV4dCAmIExpbmsnfSA9ICdJbnNlcmlyZSBUZXN0byBlIGxpbmsgZGVsbGEgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGdWxsIEZBUSAmIExpbmsnfSA9ICdJbnNlcmlyZSBsYSBGQVEgY29tcGxldGEgZSBpbCBMaW5rJzsKCiAgICAjIFRlbXBsYXRlOiBDdXN0b21lckZBUUV4cGxvcmVyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXRlc3QgdXBkYXRlZCBGQVEgYXJ0aWNsZXMnfSA9ICdVbHRpbWkgYXJ0aWNvbGkgRkFRIGFnZ2lvcm5hdGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gRkFRIGFydGljbGVzIGZvdW5kLid9ID0gJ05lc3N1biBhcnRpY29sbyBGQVEgdHJvdmF0by4nOwoKICAgICMgVGVtcGxhdGU6IEN1c3RvbWVyRkFRUmVsYXRlZEFydGljbGVzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1pZ2h0IGJlIGhlbHBmdWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm91bmQgbm8gaGVscGZ1bCByZXNvdXJjZXMgZm9yIHRoZSBzdWJqZWN0IGFuZCB0ZXh0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlIGEgc3ViamVjdCBvciB0ZXh0IHRvIGdldCBhIGxpc3Qgb2YgaGVscGZ1bCByZXNvdXJjZXMuJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBDdXN0b21lckZBUVNlYXJjaAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnVsbHRleHQgc2VhcmNoIGluIEZBUSBhcnRpY2xlcyAoZS4gZy4gIkpvaG4qbiIgb3IgIldpbGwqIiknfSA9ICdSaWNlcmNhIHRlc3R1YWxlIG5lZ2xpIGFydGljb2xpIEZBUSAoYWQgZXNlbXBpbyAiSm9obipuIiBvciAiV2lsbCoiKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWb3RlIHJlc3RyaWN0aW9ucyd9ID0gJ1Jlc3RyaXppb25pIHN1bCBWb3RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgRkFRIGFydGljbGVzIHdpdGggdm90ZXMuLi4nfSA9ICdTb2xvIGFydGljb2xpIGRpIEZBUSBjb24gdm90aS4uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRlIHJlc3RyaWN0aW9ucyd9ID0gJ1Jlc3RyaXppb25pIHN1bGxlIHBlcmNlbnR1YWxpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgRkFRIGFydGljbGVzIHdpdGggcmF0ZS4uLid9ID0gJ1NvbG8gYXJ0aWNvbGkgZGkgRkFRIGNvbiBwZXJjZW50dWFsZS4uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlc3RyaWN0aW9ucyd9ID0gJ1Jlc3RyaXppb25pIGRpIHRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgRkFRIGFydGljbGVzIGNyZWF0ZWQnfSA9ICdTb2xvIGFydGljb2xpIGRpIEZBUSBjcmVhdGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSBGQVEgYXJ0aWNsZXMgY3JlYXRlZCBiZXR3ZWVuJ30gPSAnU29sbyBhcnRpY29saSBkaSBGQVEgY3JlYXRpIGZyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2gtUHJvZmlsZSBhcyBUZW1wbGF0ZT8nfSA9ICdQcm9maWxvIGRpIFJpY2VyY2EgY29tZSBNb2RlbGxvPyc7CgogICAgIyBUZW1wbGF0ZTogQ3VzdG9tZXJGQVFab29tCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcnRpY2xlIE51bWJlcid9ID0gJ051bWVybyBBcnRpY29sbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggZm9yIGFydGljbGVzIHdpdGgga2V5d29yZCd9ID0gJ0NlcmNhIGFydGljb2xpIGNvbiBwYXJvbGEgY2hpYXZlJzsKCiAgICAjIFRlbXBsYXRlOiBQdWJsaWNGQVFTZWFyY2hPcGVuU2VhcmNoRGVzY3JpcHRpb25GQVFOdW1iZXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyd9ID0gJ1B1YmJsaWNvJzsKCiAgICAjIFRlbXBsYXRlOiBQdWJsaWNGQVFTZWFyY2hSZXN1bHRTaG9ydAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQmFjayB0byBGQVEgRXhwbG9yZXInfSA9ICdUb3JuYSBhbCBuYXZpZ2F0b3JlIGRlbGxlIEZBUSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFBZGQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkIHJ3IHBlcm1pc3Npb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGNhdGVnb3JpZXMgZm91bmQgd2hlcmUgdXNlciBoYXMgcmVhZC93cml0ZSBwZXJtaXNzaW9ucyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGVmYXVsdCBsYW5ndWFnZSBmb3VuZCBhbmQgY2FuXCd0IGNyZWF0ZSBhIG5ldyBvbmUuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUNhdGVnb3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIENhdGVnb3J5SUQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgY2F0ZWdvcnkgc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJ1VuYSBjYXRlZ29yaWEgZGV2ZSBhdmVyZSB1biBub21lISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGNhdGVnb3J5IGFscmVhZHkgZXhpc3RzJ30gPSAnQ2F0ZWdvcmlhIGVzaXN0ZW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGNhdGVnb3J5IGFscmVhZHkgZXhpc3RzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBDYXRlZ29yeUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBjYXRlZ29yeSAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGNhdGVnb3J5IHVwZGF0ZWQhJ30gPSAnQ2F0ZWdvcmlhIEZBUSBhZ2dpb3JuYXRhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgY2F0ZWdvcnkgYWRkZWQhJ30gPSAnQ2F0ZWdvcmlhIEZBUSBhZ2dpdW50YSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIENhdGVnb3J5J30gPSAnRWxpbWluYSBjYXRlZ29yaWEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBJdGVtSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIG5vIHBlcm1pc3Npb24gZm9yIHRoaXMgY2F0ZWdvcnkhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIEZBUSBhcnRpY2xlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFFeHBsb3Jlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIENhdGVnb3J5SUQgJXMgaXMgaW52YWxpZC4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRSGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gSXRlbUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSGlzdG9yeSd9ID0gJ0Nyb25vbG9naWEgRkFRJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUpvdXJuYWwucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBKb3VybmFsJ30gPSAnUmVnaXN0cm8gZGVsbGUgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgY29uZmlnIG9wdGlvbiBGQVE6OkZyb250ZW5kOjpPdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWcgb3B0aW9uIEZBUTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3IG5lZWRzIHRvIGJlIGEgSEFTSCByZWYhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY29uZmlnIG9wdGlvbiBmb3VuZCBmb3IgdGhlIHZpZXcgIiVzIiEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRTGFuZ3VhZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIExhbmd1YWdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBuYW1lIGlzIHJlcXVpcmVkISd9ID0gJ0lsIG5vbWUgw6ggb2JibGlnYXRvcmlvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGxhbmd1YWdlIGFscmVhZHkgZXhpc3RzISd9ID0gJ0xpbmd1YWdnaW8gZXNpc3RlbnRlISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBsYW5ndWFnZSAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGxhbmd1YWdlIHVwZGF0ZWQhJ30gPSAnTGluZ3VhZ2dpbyBGQVEgYWdnaW9ybmF0byEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGxhbmd1YWdlIGFkZGVkISd9ID0gJ0xpbmd1YWdnaW8gRkFRIGFnZ2l1bnRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgTGFuZ3VhZ2UgJXMnfSA9ICdFbGltaW5hIExpbmd1YSAlcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFQcmludC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzdWx0J30gPSAnUmlzdWx0YXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgdXBkYXRlJ30gPSAnVWx0aW1vIGFnZ2lvcm5hbWVudG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIER5bmFtaWMgRmllbGRzJ30gPSAnQ2FtcGkgZGluYW1pY2kgRkFRJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUVJpY2hUZXh0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyAlcyBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGxvYWQgTGFuZ3VhZ2VPYmplY3QhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gUmVzdWx0ISd9ID0gJ05lc3N1biByaXN1bHRhdG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBOdW1iZXInfSA9ICdOdW1lcm8gRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgQ2hhbmdlZCBieSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSXRlbSBDcmVhdGUgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSXRlbSBDcmVhdGUgVGltZSAoYmV0d2VlbiknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ2hhbmdlIFRpbWUgKGJlZm9yZS9hZnRlciknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ2hhbmdlIFRpbWUgKGJldHdlZW4pJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VxdWFscyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmVhdGVyIHRoYW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JlYXRlciB0aGFuIGVxdWFscyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTbWFsbGVyIHRoYW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU21hbGxlciB0aGFuIGVxdWFscyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIEZpbGVJRCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhhbmtzIGZvciB5b3VyIHZvdGUhJ30gPSAnR3JhemllIHBlciBpbCB0dW8gdm90byEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgYWxyZWFkeSB2b3RlZCEnfSA9ICdIYWkgZ2nDoCB2b3RhdG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHJhdGUgc2VsZWN0ZWQhJ30gPSAnTmVzc3VuYSB2YWx1dGF6aW9uZSBzZWxlemlvbmF0YSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHZvdGluZyBtZWNoYW5pc20gaXMgbm90IGVuYWJsZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB2b3RlIHJhdGUgaXMgbm90IGRlZmluZWQhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9DdXN0b21lckZBUVByaW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBQcmludCd9ID0gJ1N0YW1wYSBhcnRpY29sbyBGQVEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0N1c3RvbWVyRkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGVkIGJldHdlZW4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0N1c3RvbWVyRkFRWm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBJdGVtSUQhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9QdWJsaWNGQVFFeHBsb3Jlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGVzIChuZXcgY3JlYXRlZCknfSA9ICdBcnRpY29saSBGQVEgKG51b3ZpIGNyZWF0aSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGVzIChyZWNlbnRseSBjaGFuZ2VkKSd9ID0gJ0FydGljb2xpIEZBUSAocmVjZW50ZW1lbnRlIG1vZGlmaWNhdGkpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlcyAoVG9wIDEwKSd9ID0gJ0FydGljb2xpIEZBUSAoUHJpbWkgMTApJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9QdWJsaWNGQVFSU1MucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFR5cGUgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGUgbXVzdCBiZSBlaXRoZXIgTGFzdENyZWF0ZSBvciBMYXN0Q2hhbmdlIG9yIFRvcDEwISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIFJTUyBmaWxlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0hlYWRlck1ldGEvQWdlbnRGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChGQVFGdWxsdGV4dCknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9IZWFkZXJNZXRhL0N1c3RvbWVyRkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAtIEN1c3RvbWVyICglcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgLSBDdXN0b21lciAoRkFRRnVsbHRleHQpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvSGVhZGVyTWV0YS9QdWJsaWNGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gUHVibGljICglcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgLSBQdWJsaWMgKEZBUUZ1bGx0ZXh0KSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0xheW91dC9GQVEucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgcmF0ZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBhcnRpY2xlIGlzIGVtcHR5ISd9ID0gJ1F1ZXN0byBhcnRpY29sbyDDqCB2dW90byEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGF0ZXN0IGNyZWF0ZWQgRkFRIGFydGljbGVzJ30gPSAnVWx0aW1pIGFydGljb2xpIEZBUSBjcmVhdGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG9wIDEwIEZBUSBhcnRpY2xlcyd9ID0gJ1RvcCAxMCBhcnRpY29saSBGQVEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9MaW5rT2JqZWN0L0ZBUS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29udGVudCBUeXBlJ30gPSAnVGlwbyBkaSBjb250ZW51dG8nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vRHluYW1pY0ZpZWxkL0RyaXZlci9GQVEucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCB0aGUgYXR0cmlidXRlIHdoaWNoIEZBUXMgd2lsbCBiZSBzZWFyY2hlZCBieSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHRlcm5hbC1zb3VyY2Uga2V5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCB0aGUgdHlwZSBvZiBkaXNwbGF5J30gPSAnJzsKCiAgICAjIERhdGFiYXNlIFhNTCAvIFNPUE0gRGVmaW5pdGlvbjogRkFRLnNvcG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2ludGVybmFsJ30gPSAnaW50ZXJubyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydleHRlcm5hbCd9ID0gJ2VzdGVybm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncHVibGljJ30gPSAncHViYmxpY28nOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGZpbHRlciBmb3IgSFRNTCBvdXRwdXQgdG8gYWRkIGxpbmtzIGJlaGluZCBhIGRlZmluZWQgc3RyaW5nLiBUaGUgZWxlbWVudCBJbWFnZSBhbGxvd3MgdHdvIGlucHV0IGtpbmRzLiBGaXJzdCB0aGUgbmFtZSBvZiBhbiBpbWFnZSAoZS5nLiBmYXEucG5nKS4gSW4gdGhpcyBjYXNlIHRoZSBPVE9CTyBpbWFnZSBwYXRoIHdpbGwgYmUgdXNlZC4gVGhlIHNlY29uZCBwb3NzaWJpbGl0eSBpcyB0byBpbnNlcnQgdGhlIGxpbmsgdG8gdGhlIGltYWdlLid9ID0KICAgICAgICAnVW4gZmlsdHJvIHBlciBsXCdvdXRwdXQgSFRNTCBwZXIgYWdnaXVuZ2VyZSBjb2xsZWdhbWVudGkgYWQgdW5hIHN0cmluZ2EgZGVmaW5pdGEuIExcJ2VsZW1lbnRvIEltbWFnaW5lIHBlcm1ldHRlIGR1ZSB0aXBpIGRpIGluZ3Jlc3NvLiBQcmltbyBpbCBub21lIGRpIHVuXCdpbW1hZ2luZSAoYWQgZXNlbXBpbyBmYXEucG5nKS4gSW4gcXVlc3RvIGNhc28gdmVycsOgIHV0aWxpenphdG8gaWwgcGVyY29yc28gZGVsbGUgaW1tYWdpbmkgZGkgT1RPQk8uIExhIHNlY29uZGEgcG9zc2liaWxpdMOgIMOoIHF1ZWxsYSBkaSBpbnNlcmlyZSBpbCBjb2xsZWdhbWVudG8gYWxsXCdpbW1hZ2luZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEZBUSBhcnRpY2xlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NTUyBjb2xvciBmb3IgdGhlIHZvdGluZyByZXN1bHQuJ30gPSAnQ29sb3JlIENTUyBwZXIgaWwgcmlzdWx0YXRvIGRlbCB2b3RvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSBUaW1lIFRvIExlYXZlIGZvciBGQVEgaXRlbXMuJ30gPSAnVGVtcG8gZGkgZHVyYXRhIG5lbGxhIENhY2hlIGRlbGxlIHZvY2kgZGkgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGVnb3J5IE1hbmFnZW1lbnQnfSA9ICdHZXN0aW9uZSBDYXRlZ29yaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0ZWdvcnkgTWFuYWdlbWVudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIFByaW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgUmVsYXRlZCBBcnRpY2xlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgUmVsYXRlZCBBcnRpY2xlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBzZWFyY2guJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVjaW1hbCBwbGFjZXMgb2YgdGhlIHZvdGluZyByZXN1bHQuJ30gPSAnUG9zaXppb25pIGRlY2ltYWxpIGRlbCByaXN1bHRhdG8gZGVsIHZvdG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgY2F0ZWdvcnkgbmFtZS4nfSA9ICdOb21lIFByZWRlZmluaXRvIGRlbGxhIGNhdGVnb3JpYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBsYW5ndWFnZSBmb3IgRkFRIGFydGljbGVzIG9uIHNpbmdsZSBsYW5ndWFnZSBtb2RlLid9ID0gJ0xpbmd1YSBwcmVkZWZpbml0YSBwZXIgZ2xpIGFydGljb2xpICBGQVEgcGVyIGxhIG1vZGFsaXTDoCBzaW5nb2xhIGxpbmd1YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBtYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duLid9ID0KICAgICAgICAnRGVmYXVsdCBudW1lcm8gZGkgY2F0dGVyaSBkZWwgdGl0b2xvIGRpIHVuYSBGQVEgZGEgdmlzdWFsaXp6YXJlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgcHJpb3JpdHkgb2YgdGlja2V0cyBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9CiAgICAgICAgJ1ByaW9yaXTDoCBwcmVkZWZpbml0YSBkZWkgdGlja2V0IHBlciBsXCdhcHByb3ZhemlvbmUgZGkgYXJ0aWNvbGkgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXRlIGZvciBGQVEgZW50cnkuJ30gPSAnU3RhdG8gZGkgZGVmYXVsdCBwZXIgbGEgdm9jZSBkZWxsZSBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdGUgb2YgdGlja2V0cyBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICdTdGF0byBQcmVkZWZpbml0byBkZWkgdGlja2V0IHBlciBsXCdhcHByb3ZhemlvbmUgZGkgYXJ0aWNvbGkgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHR5cGUgb2YgdGlja2V0cyBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICdUaXBvIHByZWRlZmluaXRvIGRlaSB0aWNrZXQgcGVyIGxcJ2FwcHJvdmF6aW9uZSBkaSBhcnRpY29saSBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgdmFsdWUgZm9yIHRoZSBBY3Rpb24gcGFyYW1ldGVyIGZvciB0aGUgcHVibGljIGZyb250ZW5kLiBUaGUgQWN0aW9uIHBhcmFtZXRlciBpcyB1c2VkIGluIHRoZSBzY3JpcHRzIG9mIHRoZSBzeXN0ZW0uJ30gPQogICAgICAgICdJbCB2YWxvcmUgcHJlZGVmaW5pdG8gcGVyIGlsIHBhcmFtZXRybyBBemlvbmUgcGVyIGlsIGZyb250ZW5kIHB1YmJsaWNvLiBJbCBwYXJhbWV0cm8gQXppb25lIHZpZW5lIHV0aWxpenphdG8gbmVnbGkgc2NyaXB0IGRlbCBzaXN0ZW1hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgQWN0aW9ucyB3aGVyZSBhIHNldHRpbmdzIGJ1dHRvbiBpcyBhdmFpbGFibGUgaW4gdGhlIGxpbmtlZCBvYmplY3RzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBQbGVhc2Ugbm90ZSB0aGF0IHRoZXNlIEFjdGlvbnMgbXVzdCBoYXZlIHJlZ2lzdGVyZWQgdGhlIGZvbGxvd2luZyBKUyBhbmQgQ1NTIGZpbGVzOiBDb3JlLkFsbG9jYXRpb25MaXN0LmNzcywgQ29yZS5VSS5BbGxvY2F0aW9uTGlzdC5qcywgQ29yZS5VSS5UYWJsZS5Tb3J0LmpzLCBDb3JlLkFnZW50LlRhYmxlRmlsdGVycy5qcyBhbmQgQ29yZS5BZ2VudC5MaW5rT2JqZWN0LmpzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSBpZiB0aGUgRkFRIHRpdGxlIHNob3VsZCBiZSBjb25jYXRlbmF0ZWQgdG8gYXJ0aWNsZSBzdWJqZWN0Lid9ID0KICAgICAgICAnRGVmaW5pc2NlIHNlIGlsIHRpdG9sbyBGQVEgZG92cmViYmUgZXNzZXJlIGNvbmNhdGVuYXRvIGNvbiBsXCdvZ2dldHRvIGRlbGxcJ2FydGljb2xvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBGQVFzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IEZBUSBhdHRyaWJ1dGVzIGFuZCBkeW5hbWljIGZpZWxkcyAoRHluYW1pY0ZpZWxkX05hbWVYKSBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIEZBUSBqb3VybmFsLid9ID0KICAgICAgICAnRGVmaW5pc2NlIHVuIG1vZHVsbyBwYW5vcmFtaWNhIHBlciBtb3N0cmFyZSB1bmEgdmlzdGEgYWJicmV2aWF0YSBkaSB1bmEgbGlzdGEgZGkgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgRkFRIGxpc3QuJ30gPQogICAgICAgICdEZWZpbmlzY2UgdW4gbW9kdWxvIHBhbm9yYW1pY2EgcGVyIG1vc3RyYXJlIGxhIHZpc3RhIHBpY2NvbGEgZGkgdW5hIGxpc3RhIGRpIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiBhIEZBUSBzZWFyY2ggb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIGEgRkFRIHNlYXJjaCBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gYSBGQVEgc2VhcmNoIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ0RlZmluaXNjZSBsXCdvcmRpbmUgRkFRIHByZWRlZmluaXRvIG5lbCByaXN1bHRhdG8gRkFRIEV4cGxvcmVyIGRlbGxcJ2ludGVyZmFjY2lhIGNsaWVudGUuIFN1OiBtZW5vIHJlY2VudGUgc3VsbGEgcGFydGUgc3VwZXJpb3JlLiBHacO5OiBwacO5IHJlY2VudGUgaW4gY2ltYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnRGVmaW5pc2NlIGxcJ29yZGluZSBGQVEgcHJlZGVmaW5pdG8gbmVsIHJpc3VsdGF0byBGQVEgRXhwbG9yZXIgZGVsbFwnaW50ZXJmYWNjaWEgcHViYmxpY2EuIFN1OiBtZW5vIHJlY2VudGUgaW4gY2ltYS4gR2nDuTogcGnDuSByZWNlbnRlIGluIGNpbWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ0RlZmluaXNjZSBsXCdvcmRpbmUgRkFRIHByZWRlZmluaXRvIG5lbCByaXN1bHRhdG8gZGVsbGEgcmljZXJjYSBuZWxsXCdpbnRlcmZhY2NpYSBhZ2VudGUuIFN1OiBtZW5vIHJlY2VudGUgaW4gY2ltYS4gR2nDuTogcGnDuSByZWNlbnRlIGluIGNpbWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ0RlZmluaXNjZSBsXCdvcmRpbmUgRkFRIHByZWRlZmluaXRvIG5lbCByaXN1bHRhdG8gZGVsbGEgcmljZXJjYSBuZWxsXCdpbnRlcmZhY2NpYSBjbGllbnRlLiBTdTogbWVubyByZWNlbnRlIGluIGNpbWEuIEdpw7k6IHBpw7kgcmVjZW50ZSBpbiBjaW1hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnRGVmaW5pc2NlIGxcJ29yZGluZSBGQVEgcHJlZGVmaW5pdG8gbmVsIHJpc3VsdGF0byBkZWxsYSByaWNlcmNhIG5lbGxcJ2ludGVyZmFjY2lhIHB1YmJsaWNhLiBTdTogbWVubyByZWNlbnRlIGluIGNpbWEuIEdpw7k6IHBpw7kgcmVjZW50ZSBpbiBjaW1hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNob3duIEZBUSBzZWFyY2ggYXR0cmlidXRlIGZvciBGQVEgc2VhcmNoIHNjcmVlbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBoZWlnaHQgZm9yIHRoZSByaWNoIHRleHQgZWRpdG9yIGNvbXBvbmVudCBmb3IgdGhpcyBzY3JlZW4uIEVudGVyIG51bWJlciAocGl4ZWxzKSBvciBwZXJjZW50IHZhbHVlIChyZWxhdGl2ZSkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaW5mb3JtYXRpb24gdG8gYmUgaW5zZXJ0ZWQgaW4gYSBGQVEgYmFzZWQgVGlja2V0LiAiRnVsbCBGQVEiIGluY2x1ZGVzIHRleHQsIGF0dGFjaG1lbnRzIGFuZCBpbmxpbmUgaW1hZ2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZC4gIkxpbWl0IiBkZWZpbmVzIHRoZSBudW1iZXIgb2YgZW50cmllcyBkaXNwbGF5ZWQgYnkgZGVmYXVsdC4gIkdyb3VwIiBpcyB1c2VkIHRvIHJlc3RyaWN0IGFjY2VzcyB0byB0aGUgcGx1Z2luIChlLiBnLiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgaW5kaWNhdGVzIGlmIHRoZSBwbHVnaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIGlmIHRoZSB1c2VyIG5lZWRzIHRvIGVuYWJsZSBpdCBtYW51YWxseS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBGQVEgRXhwbG9yZXIuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgRkFRIGpvdXJuYWwuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgRkFRIHNlYXJjaC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ0RlZmluaXNjZSBsZSBjb2xvbm5lIHZpc2liaWxpIG5lbGxhIHJpY2VyY2EgRkFRLiBRdWVzdGEgb3B6aW9uZSBub24gaGEgZWZmZXR0byBuZWxsYSBwb3NpemlvbmUgZGVsbGEgY29sb25uYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB3aGVyZSB0aGUgXCdJbnNlcnQgRkFRXCcgbGluayB3aWxsIGJlIGRpc3BsYXllZC4nfSA9ICdEZWZpbmlzY2UgZG92ZSB2ZXJyw6AgdmlzdWFsaXp6YXRvIGlsIGNvbGxlZ2FtZW50byBcJ0luc2VyaXNjaSBGQVFcJy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5pdGlvbiBvZiBGQVEgaXRlbSBmcmVlIHRleHQgZmllbGQuJ30gPSAnRGVmaW5pemlvbmUgZGVsIGNhbXBvIHRlc3RvIGxpYmVybyBkZWxsZSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoaXMgRkFRJ30gPSAnRWxpbWluYSBxdWVzdGEgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIG92ZXJ2aWV3IHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgb3ZlcnZpZXcgc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgcHJpbnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBwcmludCBzY3JlZW4gb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHByaW50IHNjcmVlbiBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHNlYXJjaCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHNlYXJjaCBzY3JlZW4gb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHNlYXJjaCBzY3JlZW4gb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBzbWFsbCBmb3JtYXQgb3ZlcnZpZXcgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgem9vbSBzY3JlZW4gb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHpvb20gc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhpcyBGQVEnfSA9ICdNb2RpZmljYSBxdWVzdGEgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSBtdWx0aXBsZSBsYW5ndWFnZXMgb24gRkFRIG1vZHVsZS4nfSA9ICdBYmlsaXRhIHBpw7kgbGluZ3VlIG5lbCBtb2R1bG8gRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgc2VydmljZSBhc3NpZ25tZW50IGZvciBGQVFzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgdGhlIHJlbGF0ZWQgYXJ0aWNsZSBmZWF0dXJlIGZvciB0aGUgY3VzdG9tZXIgZnJvbnRlbmQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHZvdGluZyBtZWNoYW5pc20gb24gRkFRIG1vZHVsZS4nfSA9ICdBYmlsaXRhIG1lY2NhbmlzbW8gZGkgdm90byBuZWwgbW9kdWxvIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwbG9yZXInfSA9ICdFc3Bsb3JhdG9yZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQUpBWCBSZXNwb25kZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFKQVggUmVzcG9uZGVyIGZvciBSaWNodGV4dC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFyZWEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFyZWEuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBEZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSGlzdG9yeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEpvdXJuYWwgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgUHJpbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBzZWFyY2ggYmFja2VuZCByb3V0ZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmllbGQ0J30gPSAnQ2FtcG80JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpZWxkNSd9ID0gJ0NhbXBvNSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGdWxsIEZBUSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICdHcnVwcG8gcGVyIGxcJ2FwcHJvdmF6aW9uZSBkaSBhcnRpY29saSBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgdGhpcyBGQVEnfSA9ICdTdG9yaWNvIGRpIHF1ZXN0YSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgYWN0aXZhdGVkLCBGQVEgYXJ0aWNsZXMgb2Ygc3RhdHVzIHR5cGUgaW50ZXJuYWwgYXJlIGFsc28gdGFrZW4gaW50byBhY2NvdW50IGZvciB0aGUgYXBwcm92YWwgcHJvY2Vzcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNsdWRlIGludGVybmFsIGZpZWxkcyBvbiBhIEZBUSBiYXNlZCBUaWNrZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgdGhlIG5hbWUgb2YgZWFjaCBmaWVsZCBpbiBhIEZBUSBiYXNlZCBUaWNrZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludGVyZmFjZXMgd2hlcmUgdGhlIHF1aWNrIHNlYXJjaCBzaG91bGQgYmUgc2hvd24uJ30gPSAnSW50ZXJmYWNjZSBkb3ZlIGxhIHJpY2VyY2EgcmFwaWRhIGRvdnJlYmJlIGVzc2VyZSB2aXN0YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSm91cm5hbCd9ID0gJ1JlZ2lzdHJvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhbmd1YWdlIE1hbmFnZW1lbnQnfSA9ICdHZXN0aW9uZSBkZWxsYSBsaW5ndWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFuZ3VhZ2UgTWFuYWdlbWVudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGltaXQgZm9yIHRoZSBzZWFyY2ggdG8gYnVpbGQgdGhlIGtleXdvcmQgRkFRIGFydGljbGUgbGlzdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayBhbm90aGVyIG9iamVjdCB0byB0aGlzIEZBUSBpdGVtJ30gPSAnQ29sbGVnYSB1blwnYWx0cm8gb2dnZXR0byBhIHF1ZXN0byBvZ2dldHRvIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIHF1ZXVlIG5hbWVzIGZvciB3aGljaCB0aGUgcmVsYXRlZCBhcnRpY2xlIGZlYXR1cmUgaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIHN0YXRlIHR5cGVzIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBzdGF0ZSB0eXBlcyB3aGljaCBjYW4gYmUgdXNlZCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2Ygc3RhdGUgdHlwZXMgd2hpY2ggY2FuIGJlIHVzZWQgaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIGpvdXJuYWwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSByZXN1bHQgb2YgYSBzZWFyY2ggaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSByZXN1bHQgb2YgYSBzZWFyY2ggaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSByZXN1bHQgb2YgYSBzZWFyY2ggaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIEV4cGxvcmVyIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIEV4cGxvcmVyIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIEV4cGxvcmVyIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBTZWFyY2ggaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgU2VhcmNoIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIFNlYXJjaCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgam91cm5hbCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBnZW5lcmF0ZSBIVE1MIE9wZW5TZWFyY2ggcHJvZmlsZSBmb3Igc2hvcnQgRkFRIHNlYXJjaCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBnZW5lcmF0ZSBIVE1MIE9wZW5TZWFyY2ggcHJvZmlsZSBmb3Igc2hvcnQgRkFRIHNlYXJjaCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gZ2VuZXJhdGUgaHRtbCBPcGVuU2VhcmNoIHByb2ZpbGUgZm9yIHNob3J0IEZBUSBzZWFyY2guJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEZBUSBBcnRpY2xlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgRkFRIGFydGljbGVzIG5lZWQgYXBwcm92YWwgYmVmb3JlIHRoZXkgZ2V0IHB1Ymxpc2hlZC4nfSA9ICdJIG51b3ZpIGFydGljb2xpIEZBUSByaWNoaWVkb25vIGFwcHJvdmF6aW9uZSBwcmltYSBkaSBlc3NlcmUgcHViYmxpY2F0aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgb24gZWFjaCBwYWdlIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIG9uIGVhY2ggcGFnZSBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIHNob3duIGl0ZW1zIGluIGxhc3QgY2hhbmdlcy4nfSA9ICdOdW1lcm8gZGkgZWxlbWVudGkgbW9zdHJhdGkgbmVpIG1vZGlmaWNhdGkgZGkgcmVjZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIHNob3duIGl0ZW1zIGluIGxhc3QgY3JlYXRlZC4nfSA9ICdOdW1lcm8gZGkgZWxlbWVudGkgbW9zdHJhdGkgbmVpIGNyZWF0aSBkaSByZWNlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2Ygc2hvd24gaXRlbXMgaW4gdGhlIHRvcCAxMCBmZWF0dXJlLid9ID0gJ051bWVybyBkaSBlbGVtZW50aSBtb3N0cmF0aSBuZWxsYSBmdW56aW9uYWxpdMOgIHByaW5jaXBhbGkgMTAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J091dHB1dCBmaWx0ZXIgdG8gYWRkIEphdmEtc2NyaXB0IHRvIEN1c3RvbWVyVGlja2V0TWVzc2FnZSBzY3JlZW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3V0cHV0IGxpbWl0IGZvciB0aGUgcmVsYXRlZCBGQVEgYXJ0aWNsZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIEZBUSBpdGVtcyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBGQVEgam91cm5hbCBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBGQVEgaXRlbXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgRkFRIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW50IHRoaXMgRkFRJ30gPSAnU3RhbXBhIHF1ZXN0YSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIEZBUSBQcmludC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIEZBUSBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRIHNlYXJjaC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIEZBUS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVldWUgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPSAnQ29kYSBwZXIgbFwnYXBwcm92YXppb25lIGRlZ2xpIGFydGljb2xpIGRlbGxlIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0ZXMgZm9yIHZvdGluZy4gS2V5IG11c3QgYmUgaW4gcGVyY2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUyd9ID0gJ1MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIEZBUSd9ID0gJ0NlcmNhIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggRkFRIFNtYWxsLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggRkFRLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgaG93IG1hbnkgaXRlbXMgc2hvdWxkIGJlIHNob3duIGluIEpvdXJuYWwgT3ZlcnZpZXcgIlNtYWxsIiBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBob3cgbWFueSBpdGVtcyBzaG91bGQgYmUgc2hvd24gaW4gT3ZlcnZpZXcgIlNtYWxsIiBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZGVmYXVsdCBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEFnZW50RkFRWm9vbS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBDdXN0b21lckZBUVpvb20gKGFuZCBQdWJsaWNGQVFab29tKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBBZ2VudEZBUVpvb20uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBtYXhpbXVtIGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gQ3VzdG9tZXJGQVFab29tIChhbmQgUHVibGljRkFRWm9vbSkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyAiSW5zZXJ0IEZBUSBMaW5rIiBCdXR0b24gaW4gQWdlbnRGQVFab29tU21hbGwgZm9yIHB1YmxpYyBGQVEgQXJ0aWNsZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyAiSW5zZXJ0IEZBUSBUZXh0ICYgTGluayIgLyAiSW5zZXJ0IEZ1bGwgRkFRICYgTGluayIgQnV0dG9uIGluIEFnZW50RkFRWm9vbVNtYWxsIGZvciBwdWJsaWMgRkFRIEFydGljbGVzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgIkluc2VydCBGQVEgVGV4dCIgLyAiSW5zZXJ0IEZ1bGwgRkFRIiBCdXR0b24gaW4gQWdlbnRGQVFab29tU21hbGwuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBGQVEgQXJ0aWNsZSB3aXRoIEhUTUwuJ30gPSAnTW9zdHJhIGFydGljb2xvIEZBUSBjb24gSFRNTC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBGQVEgcGF0aCB5ZXMvbm8uJ30gPSAnTW9zdHJhIHBlcmNvcnNvIEZBUSBzw6wvbm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgaW52YWxpZCBpdGVtcyBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgaXRlbXMgb2Ygc3ViY2F0ZWdvcmllcy4nfSA9ICdNb3N0cmEgZ2xpIGVsZW1lbnRpIGRlbGxlIHNvdHRvY2F0ZWdvcmllLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGxhc3QgY2hhbmdlIGl0ZW1zIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBsYXN0IGNyZWF0ZWQgaXRlbXMgaW4gZGVmaW5lZCBpbnRlcmZhY2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHJlbGF0ZWQgYXJ0aWNsZXMgb24gc2VydmljZSBjaGFuZ2UgZXZlbiB3aXRoIGVtcHR5IHN1YmplY3QgYW5kIGJvZHkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB0aGUgc3RhcnMgZm9yIHRoZSBhcnRpY2xlcyB3aXRoIGEgcmF0aW5nIGVxdWFsIG9yIGdyZWF0ZXIgbGlrZSB0aGUgZGVmaW5lZCB2YWx1ZSAoc2V0IHZhbHVlIFwnMFwnIHRvIGRlYWN0aXZhdGUgdGhlIG91dHB1dCkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB0b3AgMTAgaXRlbXMgaW4gZGVmaW5lZCBpbnRlcmZhY2VzLid9ID0gJ01vc3RyYSBpIHByaW5jaXBhbGkgMTAgbmVsbGUgaW50ZXJmYWNjZSBzcGVjaWZpY2F0ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB2b3RpbmcgaW4gZGVmaW5lZCBpbnRlcmZhY2VzLid9ID0gJ01vc3RyYSBsYSB2b3RhemlvbmUgbmVsbGUgaW50ZXJmYWNjZSBzcGVjaWZpY2F0ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSBGQVEgd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgem9vbSB2aWV3IG9mIHN1Y2ggRkFRIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIHRvIGRlbGV0ZSBhIEZBUSBpbiBpdHMgem9vbSB2aWV3IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIEZBUSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSBGQVEgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZ28gYmFjayBpbiB0aGUgRkFRIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIEZBUSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NvbHV0aW9uJ30gPSAnU29sdXppb25lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N5bXB0b20nfSA9ICdTaW50b21vJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RleHQgT25seSd9ID0gJ1NvbG8gdGVzdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGRlZmF1bHQgbGFuZ3VhZ2VzIGZvciB0aGUgcmVsYXRlZCBGQVEgYXJ0aWNsZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIEZBUSwgZS5nLiBGQVEjLCBLQiMsIE15RkFRIy4gVGhlIGRlZmF1bHQgaXMgRkFRIy4nfSA9CiAgICAgICAgJ0lkZW50aWZpY2F0b3JlIHBlciBsZSBGQVEsIGVzOiBGQVEjLCBLQiMsIE15RkFRIy4gSWwgdmFsb3JlIHByZWRlZmluaXRvIMOoIEZBUSMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBkZWZpbmVzIHRoYXQgYSBcJ0ZBUVwnIG9iamVjdCBjYW4gYmUgbGlua2VkIHdpdGggb3RoZXIgXCdGQVFcJyBvYmplY3RzIHVzaW5nIHRoZSBcJ05vcm1hbFwnIGxpbmsgdHlwZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnRkFRXCcgb2JqZWN0cyB1c2luZyB0aGUgXCdQYXJlbnRDaGlsZFwnIGxpbmsgdHlwZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnVGlja2V0XCcgb2JqZWN0cyB1c2luZyB0aGUgXCdOb3JtYWxcJyBsaW5rIHR5cGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBzZXR0aW5nIGRlZmluZXMgdGhhdCBhIFwnRkFRXCcgb2JqZWN0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciBcJ1RpY2tldFwnIG9iamVjdHMgdXNpbmcgdGhlIFwnUGFyZW50Q2hpbGRcJyBsaW5rIHR5cGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IGJvZHkgZm9yIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlLid9ID0gJ0NvcnBvIGRlbCB0aWNrZXQgcGVyIGxcJ2FwcHJvdmF6aW9uZSBkZWxsXCdhcnRpY29sbyBkZWxsZSBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBzdWJqZWN0IGZvciBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZS4gUGVybWl0dGVkIG5vdGlmaWNhdGlvbiB0YWdzIGFyZSA8T1RPQk9fRkFRX05VTUJFUj4sIDxPVE9CT19GQVFfQ0FURUdPUllJRD4sIDxPVE9CT19GQVFfSVRFTUlEPj4gPE9UT0JPX0ZBUV9USVRMRT4gYW5kIDxPVE9CT19GQVFfU1RBVEVJRD4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG9vbGJhciBJdGVtIGZvciBhIHNob3J0Y3V0Lid9ID0gJ0VsZW1lbnRvIGRlbGxhIGJhcnJhIGRlZ2xpIHN0cnVtZW50aSBwZXIgdW5hIHNjb3JjaWF0b2lhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydleHRlcm5hbCAoY3VzdG9tZXIpJ30gPSAnZXN0ZXJubyAoY2xpZW50ZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW50ZXJuYWwgKGFnZW50KSd9ID0gJ2ludGVybm8gKGFnZW50ZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncHVibGljIChhbGwpJ30gPSAncHViYmxpY28gKHR1dHRpKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwdWJsaWMgKHB1YmxpYyknfSA9ICcnOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdObycsCiAgICAnT2snLAogICAgJ1NldHRpbmdzJywKICAgICdTdWJtaXQnLAogICAgJ1RoaXMgbWlnaHQgYmUgaGVscGZ1bCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Location="Kernel/Language/ja_FAQ.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmphX0ZBUTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRQWRkCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIEFydGljbGUnfSA9ICdGQVHjga7mlrDopo/ov73liqAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnS2V5d29yZHMnfSA9ICfjgq3jg7zjg6/jg7zjg4knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRlZ29yeSBpcyByZXF1aXJlZC4nfSA9ICfjgqvjg4bjgrTjg6rjga/lv4XpoIjpoIXnm67jgafjgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwcm92YWwnfSA9ICfmib/oqo0nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRQ2F0ZWdvcnkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBDYXRlZ29yeSBNYW5hZ2VtZW50J30gPSAnRkFRIOOCq+ODhuOCtOODqueuoeeQhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIENhdGVnb3J5J30gPSAnRkFRIOOCq+ODhuOCtOODquOCkui/veWKoCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEZBUSBDYXRlZ29yeSd9ID0gJ0ZBUSDjgqvjg4bjgrTjg6rjgpLnt6jpm4YnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGNhdGVnb3J5J30gPSAn44Kr44OG44K044Oq44KS6L+95YqgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRlZ29yeSd9ID0gJ+OCq+ODhuOCtOODquOCkui/veWKoCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENhdGVnb3J5J30gPSAn44Kr44OG44K044Oq44KS57eo6ZuGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1YmNhdGVnb3J5IG9mJ30gPSAn6Kaq44Kr44OG44K044OqJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYXQgbGVhc3Qgb25lIHBlcm1pc3Npb24gZ3JvdXAuJ30gPSAn44Gy44Go44Gk5Lul5LiK44Gu5qip6ZmQ44Gu44Kw44Or44O844OX44KS6YG45oqe44GX44Gm44GP44Gg44GV44GE44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGdyb3VwcyB0aGF0IGNhbiBhY2Nlc3MgYXJ0aWNsZXMgaW4gdGhpcyBjYXRlZ29yeS4nfSA9ICfjgZPjga7jgqvjg4bjgrTjg6rjgafpoIXnm67jgavjgqLjgq/jgrvjgrnjgafjgY3jgovmi4XlvZPogIXjgrDjg6vjg7zjg5cnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2lsbCBiZSBzaG93biBhcyBjb21tZW50IGluIEV4cGxvcmVyLid9ID0gJ+S4gOimp+OBp+OCs+ODoeODs+ODiOOBqOOBl+OBpuihqOekuuOBleOCjOOBvuOBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY2F0ZWdvcnk/J30gPSAn44GT44Gu44Kr44OG44K044Oq44KS5YmK6Zmk44GX44Gm44KI44KN44GX44GE44Gn44GZ44GL77yfJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gbm90IGRlbGV0ZSB0aGlzIGNhdGVnb3J5LiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBGQVEgYXJ0aWNsZSBhbmQvb3IgaXMgcGFyZW50IG9mIGF0IGxlYXN0IG9uZSBvdGhlciBjYXRlZ29yeSd9ID0KICAgICAgICAn44GT44Gu44Kr44OG44K044Oq44KS5YmK6Zmk44GZ44KL44GT44Go44Gv44Gn44GN44G+44Gb44KT44CC5LiA44Gk5Lul5LiK44GuRkFR6KiY5LqL44Gn5L2/55So44GV44KM44Gm44GE44KL44GL44CB44G+44Gf44Gv5LuW44Gu44Kr44OG44K044Oq44Gu6Kaq44Kr44OG44K044Oq44Gr44Gq44Gj44Gm44GE44G+44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY2F0ZWdvcnkgaXMgdXNlZCBpbiB0aGUgZm9sbG93aW5nIEZBUSBhcnRpY2xlKHMpJ30gPSAn44GT44Gu44Kr44OG44K044Oq44Gv5Lul5LiL44Gu6KiY5LqL44Gn5L2/55So44GV44KM44Gm44GE44G+44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY2F0ZWdvcnkgaXMgcGFyZW50IG9mIHRoZSBmb2xsb3dpbmcgc3ViY2F0ZWdvcmllcyd9ID0gJ+OBk+OBruOCq+ODhuOCtOODquOBr+S7peS4i+OBruOCq+ODhuOCtOODquOBruimquOCq+ODhuOCtOODquOBp+OBmeOAgic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFEZWxldGUKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBGQVEgYXJ0aWNsZT8nfSA9ICfjgZPjga7oqJjkuovjgpLliYrpmaTjgZfjgabjgojjgo3jgZfjgYTjgafjgZnjgYvvvJ8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRJ30gPSAnRkFRJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUV4cGxvcmVyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgRXhwbG9yZXInfSA9ICdGQVHkuIDopqcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVpY2sgU2VhcmNoJ30gPSAn5qSc57SiJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dpbGRjYXJkcyBhcmUgYWxsb3dlZC4nfSA9ICfjg6/jgqTjg6vjg4njgqvjg7zjg4njgYzliKnnlKjlj6/og73jgafjgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWR2YW5jZWQgU2VhcmNoJ30gPSAn6auY5qmf6IO95qSc57SiJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1YmNhdGVnb3JpZXMnfSA9ICfjgrXjg5bjgqvjg4bjgrTjg6onOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGVzJ30gPSAnRkFR6aCF55uuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHN1YmNhdGVnb3JpZXMgZm91bmQuJ30gPSAn5a2Q44Kr44OG44K044Oq44Gv44GC44KK44G+44Gb44KT44CCJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUhpc3RvcnkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YnfSA9ICflsaXmrbQ6ICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IENvbnRlbnQnfSA9ICflsaXmrbTlhoXlrrknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRldGltZSd9ID0gJ+S9nOaIkOaXpeaZgic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFKb3VybmFsT3ZlcnZpZXdTbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gRkFRIEpvdXJuYWwgZGF0YSBmb3VuZC4nfSA9ICfjgrjjg6Pjg7zjg4rjg6vjga7mg4XloLHjgYzjgYLjgorjgb7jgZvjgpPjgIInOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRTGFuZ3VhZ2UKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBMYW5ndWFnZSBNYW5hZ2VtZW50J30gPSAnRkFRIOiogOiqnueuoeeQhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIExhbmd1YWdlJ30gPSAnRkFRIOiogOiqnuOCkui/veWKoCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEZBUSBMYW5ndWFnZSd9ID0gJ0ZBUSDoqIDoqp7jgpLnt6jpm4YnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlIHRoaXMgZmVhdHVyZSBpZiB5b3Ugd2FudCB0byB3b3JrIHdpdGggbXVsdGlwbGUgbGFuZ3VhZ2VzLid9ID0KICAgICAgICAn5aSa6KiA6Kqe44Gn5L2c5qWt44KS44GX44Gf44GE5aC05ZCI44CB44GT44Gu6aCF55uu44KS6Kit5a6a44GX44Gm44GP44Gg44GV44GE44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBsYW5ndWFnZSd9ID0gJ+iogOiqnuOCkui/veWKoCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgTGFuZ3VhZ2UnfSA9ICfoqIDoqp7jgpLov73liqAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBMYW5ndWFnZSd9ID0gJ+iogOiqnuOCkue3qOmbhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBsYW5ndWFnZS4gSXQgaXMgdXNlZCBpbiBhdCBsZWFzdCBvbmUgRkFRIGFydGljbGUhJ30gPQogICAgICAgICfjgZPjga7oqIDoqp7jgpLliYrpmaTjgZnjgovjgZPjgajjga/jgafjgY3jgb7jgZvjgpPjgILkuIDjgaTku6XkuIrjga5GQVHjgafkvb/nlKjjgZXjgozjgabjgYTjgb7jgZnvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBsYW5ndWFnZSBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgRkFRIEFydGljbGUocyknfSA9ICfjgZPjga7oqIDoqp7jga/jgIHku6XkuIvjga5GQVHjgafkvb/nlKjjgZXjgozjgabjgYTjgb7jgZnjgIInOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRT3ZlcnZpZXdOYXZCYXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRleHQgU2V0dGluZ3MnfSA9ICfoqK3lrponOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGFydGljbGVzIHBlciBwYWdlJ30gPSAn44Oa44O844K45q+O44Gu6KiY5LqL5pWwJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUU92ZXJ2aWV3U21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEZBUSBkYXRhIGZvdW5kLid9ID0gJ0ZBUeODh+ODvOOCv+OBr+OBguOCiuOBvuOBm+OCk+OAgic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFSZWxhdGVkQXJ0aWNsZXMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J291dCBvZiA1J30gPSAnNeOBpOaYn+OBruOBhuOBoSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFTZWFyY2gKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0tleXdvcmQnfSA9ICfjgq3jg7zjg6/jg7zjg4knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSAoZS4gZy4gRXF1YWxzIDEwIG9yIEdyZWF0ZXJUaGFuIDYwKSd9ID0gJ+aKleelqCAo5L6LLiAxMOOBq+etieOBl+OBhCDjgYLjgovjgYTjga8gNjDjgojjgorlpKfjgY3jgYQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGUgKGUuIGcuIEVxdWFscyAyNSUgb3IgR3JlYXRlclRoYW4gNzUlKSd9ID0gJ+ODrOODvOODiCAo5L6LLiAyNSXjgavnrYnjgZfjgYQg44GC44KL44GE44GvIDc1JeOCiOOCiuWkp+OBjeOBhCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwcm92ZWQnfSA9ICfmib/oqo0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkIGJ5J30gPSAn5pyA57WC5pu05paw6ICFJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENyZWF0ZSBUaW1lIChiZWZvcmUvYWZ0ZXIpJ30gPSAnRkFR6aCF55uu5L2c5oiQ5pel5pmCICjku6XliY0v5Lul5b6MKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDcmVhdGUgVGltZSAoYmV0d2VlbiknfSA9ICdGQVHpoIXnm67kvZzmiJDml6XmmYIgKOacn+mWk+aMh+WumiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ2hhbmdlIFRpbWUgKGJlZm9yZS9hZnRlciknfSA9ICdGQVHpoIXnm67lpInmm7Tml6XmmYIgKOS7peWJjS/ku6XlvowpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENoYW5nZSBUaW1lIChiZXR3ZWVuKSd9ID0gJ0ZBUemgheebruWkieabtOaXpeaZgiAo5pyf6ZaT5oyH5a6aKSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFTZWFyY2hPcGVuU2VhcmNoRGVzY3JpcHRpb25GdWxsdGV4dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRRnVsbHRleHQnfSA9ICdGQVHlhajmlocnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRU2VhcmNoU21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBTZWFyY2gnfSA9ICdGQVHmpJzntKInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvZmlsZSBTZWxlY3Rpb24nfSA9ICfjg5fjg63jg5XjgqHjgqTjg6vpgbjmip4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSd9ID0gJ+aKleelqCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB2b3RlIHNldHRpbmdzJ30gPSAn5oqV56Wo44Gu6Kit5a6a44GM44GC44KK44G+44Gb44KTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmljIHZvdGVzJ30gPSAn54m55a6a44Gu5oqV56WoJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuIGcuIEVxdWFscyAxMCBvciBHcmVhdGVyVGhhbiA2MCd9ID0gJ+S+iy4gMTAg44Gr562J44GX44GEIOOBguOCi+OBhOOBryA2MCDjgojjgorlpKfjgY3jgYQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0ZSd9ID0gJ+ODrOODvOODiCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyByYXRlIHNldHRpbmdzJ30gPSAn44Os44O844OI44Gu6Kit5a6a44GM44GC44KK44G+44Gb44KTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmljIHJhdGUnfSA9ICfnibnlrprjga7jg6zjg7zjg4gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZS4gZy4gRXF1YWxzIDI1JSBvciBHcmVhdGVyVGhhbiA3NSUnfSA9ICfkvosuIDI1JeOBq+etieOBl+OBhCDjgYLjgovjgYTjga8gNzUl5Lul5LiKJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENyZWF0ZSBUaW1lJ30gPSAnRkFR6aCF55uu5L2c5oiQ5pel5pmCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENoYW5nZSBUaW1lJ30gPSAnRkFR6aCF55uu5aSJ5pu05pmC6ZaTJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVpvb20KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJbmZvcm1hdGlvbid9ID0gJ0ZBUeaDheWgsSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRpbmcnfSA9ICfjg6zjg7zjg4bjgqPjg7PjgrAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZXMnfSA9ICfmipXnpagnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdm90ZXMgZm91bmQhJ30gPSAn5oqV56Wo44Gv44GC44KK44G+44Gb44KT44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHZvdGVzIGZvdW5kISBCZSB0aGUgZmlyc3Qgb25lIHRvIHJhdGUgdGhpcyBGQVEgYXJ0aWNsZS4nfSA9ICfmipXnpajjga/jgYLjgorjgb7jgZvjgpPjgILjgZPjga7oqJjkuovjgavmnIDliJ3jga7oqZXkvqHjgpLmipXnpajjgZfjgb7jgZfjgofjgYbjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG93bmxvYWQgQXR0YWNobWVudCd9ID0gJ+a3u+S7mOODleOCoeOCpOODq+OCkuODgOOCpuODs+ODreODvOODiSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyBvcGVuIGxpbmtzIGluIHRoZSBmb2xsb3dpbmcgZGVzY3JpcHRpb24gYmxvY2tzLCB5b3UgbWlnaHQgbmVlZCB0byBwcmVzcyBDdHJsIG9yIENtZCBvciBTaGlmdCBrZXkgd2hpbGUgY2xpY2tpbmcgdGhlIGxpbmsgKGRlcGVuZGluZyBvbiB5b3VyIGJyb3dzZXIgYW5kIE9TKS4nfSA9CiAgICAgICAgJyjkuIDpg6jjga5PU+OBq+OBiuOBhOOBpuOBrynkuIvoqJjjga7jg6rjg7Pjgq/jgpLjgqrjg7zjg5fjg7PjgZnjgovjgZ/jgoHjgavjgq/jg6rjg4Pjgq/mmYLjgavjgIFDdHJsIOOBguOCi+OBhOOBryBDbWQg44G+44Gf44GvIFNoaWZ044Kt44O844KS5oq85LiL44GZ44KL5b+F6KaB44GM44KL5aC05ZCI44GM44GC44KK44G+44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdyBoZWxwZnVsIHdhcyB0aGlzIGFydGljbGU/IFBsZWFzZSBnaXZlIHVzIHlvdXIgcmF0aW5nIGFuZCBoZWxwIHRvIGltcHJvdmUgdGhlIEZBUSBEYXRhYmFzZS4gVGhhbmsgWW91ISd9ID0KICAgICAgICAn44GT44GuRkFR6aCF55uu44Gv44GK5b2544Gr44Gf44Gh44G+44GX44Gf44GLPyDjgIBGQVHjg4fjg7zjgr/jg7zjg5njg7zjgrnjga7mlLnlloTjgavlvbnnq4vjgabjgb7jgZnjga7jgafjgIHjg6zjg7zjg4bjgqPjg7PjgrDjgavljZTlipvjgY/jgaDjgZXjgYTjgILjgojjgo3jgZfjgY/jgYrpoZjjgYTjgZfjgb7jgZknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnbm90IGhlbHBmdWwnfSA9ICfjgYLjgb7jgorlvbnjgavnq4vjgZ/jgarjgYvjgaPjgZ8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndmVyeSBoZWxwZnVsJ30gPSAn44Go44Gm44KC5b2544Gr56uL44Gj44GfJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVpvb21TbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEZBUSB0aXRsZSB0byBhcnRpY2xlIHN1YmplY3QnfSA9ICfpoIXnm67jga7kuLvpoYzjgatGQVHjgr/jgqTjg4jjg6vjgpLov73liqDjgZnjgosnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZBUSBUZXh0J30gPSAn6KiY5LqL44KS5oy/5YWl44GZ44KLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGdWxsIEZBUSd9ID0gJ0ZBUeWFqOaWh+OCkuaMv+WFpeOBmeOCiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRkFRIExpbmsnfSA9ICfjg6rjg7Pjgq/jgpLmjL/lhaXjgZnjgosnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZBUSBUZXh0ICYgTGluayd9ID0gJ+iomOS6i+OBqOODquODs+OCr+OCkuaMv+WFpeOBmeOCiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRnVsbCBGQVEgJiBMaW5rJ30gPSAnRkFR5YWo5paH44Go44Oq44Oz44Kv44KS5oy/5YWl44GZ44KLJzsKCiAgICAjIFRlbXBsYXRlOiBDdXN0b21lckZBUUV4cGxvcmVyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXRlc3QgdXBkYXRlZCBGQVEgYXJ0aWNsZXMnfSA9ICfmnIDlvozjgavmm7TmlrDjgZXjgozjgZ9GQVHpoIXnm64nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gRkFRIGFydGljbGVzIGZvdW5kLid9ID0gJ+ipsuW9k+OBmeOCi+iomOS6i+OBr+OBguOCiuOBvuOBm+OCk+OAgic7CgogICAgIyBUZW1wbGF0ZTogQ3VzdG9tZXJGQVFSZWxhdGVkQXJ0aWNsZXMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbWlnaHQgYmUgaGVscGZ1bCd9ID0gJ+OBk+OBoeOCieOBruaDheWgseOCguW9ueOBq+OBn+OBpOOBi+OCguOBl+OCjOOBvuOBm+OCkyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3VuZCBubyBoZWxwZnVsIHJlc291cmNlcyBmb3IgdGhlIHN1YmplY3QgYW5kIHRleHQuJ30gPSAn5Lu25ZCN44Go5pys5paH44GL44KJ5pyJ5Yq544Gq5oOF5aCx44Gv6KaL44Gk44GL44KK44G+44Gb44KT44Gn44GX44GfJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGUgYSBzdWJqZWN0IG9yIHRleHQgdG8gZ2V0IGEgbGlzdCBvZiBoZWxwZnVsIHJlc291cmNlcy4nfSA9ICfku7blkI3jgYvmnKzmlofjgpLoqJjlhaXjgZfjgabjgIHmnInlirnjgarmg4XloLHjga7jg6rjgrnjg4jjgpLlj5blvpcnOwoKICAgICMgVGVtcGxhdGU6IEN1c3RvbWVyRkFRU2VhcmNoCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGdWxsdGV4dCBzZWFyY2ggaW4gRkFRIGFydGljbGVzIChlLiBnLiAiSm9obipuIiBvciAiV2lsbCoiKSd9ID0gJ0ZBUeWFqOaWh+aknOe0ou+8iOS+i++8miJKb2huKm4i44CBIldpbGwqIu+8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWb3RlIHJlc3RyaWN0aW9ucyd9ID0gJ+aKleelqOimj+WItic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IEZBUSBhcnRpY2xlcyB3aXRoIHZvdGVzLi4uJ30gPSAn5oqV56Wo44GV44KM44Gm44GE44KLRkFR44Gu44G/Li4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGUgcmVzdHJpY3Rpb25zJ30gPSAn44Os44O844OI6KaP5Yi2JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgRkFRIGFydGljbGVzIHdpdGggcmF0ZS4uLid9ID0gJ+ODrOODvOODiOOBleOCjOOBpuOBhOOCi0ZBUeOBruOBvy4uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlc3RyaWN0aW9ucyd9ID0gJ+aZgumWk+WItumZkCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IEZBUSBhcnRpY2xlcyBjcmVhdGVkJ30gPSAn5L2c5oiQ44GV44KM44GfRkFR6aCF55uu44Gu44G/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgRkFRIGFydGljbGVzIGNyZWF0ZWQgYmV0d2Vlbid9ID0gJ+acn+mWk+WGheOBq+S9nOaIkOOBleOCjOOBn0ZBUemgheebruOBruOBvyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2gtUHJvZmlsZSBhcyBUZW1wbGF0ZT8nfSA9ICdTZWFyY2gtUHJvZmlsZS3mpJzntKLjg5fjg63jg5XjgqPjg7zjg6vjgIDjgpLjg4bjg7Pjg5fjg6zjg7zjg4jjgavjgZfjgb7jgZnjgYs/JzsKCiAgICAjIFRlbXBsYXRlOiBDdXN0b21lckZBUVpvb20KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FydGljbGUgTnVtYmVyJ30gPSAnIEZBUSDpoIXnm67jg4rjg7Pjg5Djg7wnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIGZvciBhcnRpY2xlcyB3aXRoIGtleXdvcmQnfSA9ICfoqJjkuovjga7jgq3jg7zjg6/jg7zjg4nmpJzntKInOwoKICAgICMgVGVtcGxhdGU6IFB1YmxpY0ZBUVNlYXJjaE9wZW5TZWFyY2hEZXNjcmlwdGlvbkZBUU51bWJlcgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljJ30gPSAn5YWs6ZaLJzsKCiAgICAjIFRlbXBsYXRlOiBQdWJsaWNGQVFTZWFyY2hSZXN1bHRTaG9ydAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQmFjayB0byBGQVEgRXhwbG9yZXInfSA9ICdGQVHjgqjjgq/jgrnjg5fjg63jg7zjg6njg7zjgavmiLvjgosnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCBydyBwZXJtaXNzaW9uISd9ID0gJ+iqreabuOOBjShydynjga7mqKnpmZDjgYzlv4XopoHjgafjgZnvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY2F0ZWdvcmllcyBmb3VuZCB3aGVyZSB1c2VyIGhhcyByZWFkL3dyaXRlIHBlcm1pc3Npb25zISd9ID0gJ+ODpuODvOOCtuODvOOBjOOAgOiqreOCgC/mm7jjgY8g5qip6ZmQ44Gu44GC44KL44Kr44OG44K044Oq44O844GM6KaL44Gk44GL44KK44G+44Gb44KT44Gn44GX44GfJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRlZmF1bHQgbGFuZ3VhZ2UgZm91bmQgYW5kIGNhblwndCBjcmVhdGUgYSBuZXcgb25lLid9ID0gJ+ODh+ODleOCqeODq+ODiOiogOiqnuOBjOS4jeaYjuOBruOBn+OCgeOAgeaWsOOBl+OBhOOCq+ODhuOCtOODquOBruS9nOaIkOOBjOOBp+OBjeOBvuOBm+OCk+OBp+OBl+OBn+OAgic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFDYXRlZ29yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBDYXRlZ29yeUlEISd9ID0gJ+OCq+ODhuOCtOODqklE44Gu5YWl5Yqb44GM5b+F6KaB44Gn44GZ77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgY2F0ZWdvcnkgc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJ+OAjOWQjeWJjeOAjeOBr+W/hemgiOmgheebruOBp+OBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGNhdGVnb3J5IGFscmVhZHkgZXhpc3RzJ30gPSAn44GT44Gu44Kr44OG44K044Oq44Gv44GZ44Gn44Gr5a2Y5Zyo44GX44Gm44GE44G+44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY2F0ZWdvcnkgYWxyZWFkeSBleGlzdHMhJ30gPSAn44GT44Gu44Kr44OG44K044Oq44Gv44GZ44Gn44Gr5a2Y5Zyo44GX44Gm44GE44G+44GZ77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIENhdGVnb3J5SUQgaXMgZ2l2ZW4hJ30gPSAn44Kr44OG44K044OqSUQg44GM5oyH5a6a44GV44KM44Gm44GE44G+44Gb44KT77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGNhdGVnb3J5ICVzISd9ID0gJ+OCq+ODhuOCtOODqiAlcyDjga7liYrpmaTjgYzjgafjgY3jgb7jgZvjgpPjgafjgZfjgZ/vvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGNhdGVnb3J5IHVwZGF0ZWQhJ30gPSAn44Kr44OG44K044Oq44GM5pu05paw44GV44KM44G+44GX44Gf44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBjYXRlZ29yeSBhZGRlZCEnfSA9ICfmlrDjgZfjgYTjgqvjg4bjgrTjg6rjgYzov73liqDjgZXjgozjgb7jgZfjgZ/jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIENhdGVnb3J5J30gPSAn44Kr44OG44K044Oq44KS5YmK6ZmkJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gSXRlbUlEIGlzIGdpdmVuISd9ID0gJ+OCouOCpOODhuODoElEIOOBjOaMh+WumuOBleOCjOOBpuOBhOOBvuOBm+OCk++8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSBubyBwZXJtaXNzaW9uIGZvciB0aGlzIGNhdGVnb3J5ISd9ID0gJ+OBguOBquOBn+OBr+OBk+OBruOCq+ODhuOCtOODquOBuOOBruaoqemZkOOBjOOBguOCiuOBvuOBm+OCk++8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBGQVEgYXJ0aWNsZSAlcyEnfSA9ICdGQVEg6KiY5LqLICVzIOOCkuWJiumZpOOBp+OBjeOBvuOBm+OCk+OBp+OBl+OBn++8gSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFFeHBsb3Jlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIENhdGVnb3J5SUQgJXMgaXMgaW52YWxpZC4nfSA9ICdDYXRlZ29yeUlEICVz44Gu5YCk44GM5LiN5q2j44Gn44GZ44CCJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUhpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIEl0ZW1JRCBpcyBnaXZlbiEnfSA9ICdJdGVtSUQg44GM5LiO44GI44KJ44KM44Gm44GE44Gq44GE44Gf44KB44CB5bGl5q2044KS6KGo56S644Gn44GN44G+44Gb44KT44Gn44GX44Gf77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBIaXN0b3J5J30gPSAnRkFRIOODkuOCueODiOODquODvCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFKb3VybmFsLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSm91cm5hbCd9ID0gJ0ZBUSDjgrjjg6Pjg7zjg4rjg6snOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBjb25maWcgb3B0aW9uIEZBUTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3J30gPSAnRkFROjpGcm9udGVuZDo6T3ZlcnZpZXfoqK3lrprjgqrjg5fjgrfjg6fjg7PjgYzlv4XopoHjgafjgZknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlnIG9wdGlvbiBGQVE6OkZyb250ZW5kOjpPdmVydmlldyBuZWVkcyB0byBiZSBhIEhBU0ggcmVmISd9ID0KICAgICAgICAn6Kit5a6a44Kq44OX44K344On44OzIEZBUTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3IOOBr+ODj+ODg+OCt+ODpeWPgueFp+OBp+OBguOCi+W/heimgeOBjOOBguOCiuOBvuOBme+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjb25maWcgb3B0aW9uIGZvdW5kIGZvciB0aGUgdmlldyAiJXMiISd9ID0gJyIlcyLjgpLplrLopqfjgZnjgovjgZ/jgoHjga7oqK3lrprlgKTjgYzjgYLjgorjgb7jgZvjgpPvvIEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRTGFuZ3VhZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIExhbmd1YWdlSUQgaXMgZ2l2ZW4hJ30gPSAn6KiA6KqeSUTjgYzmjIflrprjgZXjgozjgabjgYTjgb7jgZvjgpPvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIG5hbWUgaXMgcmVxdWlyZWQhJ30gPSAn44CM5ZCN5YmN44CN44Gv5b+F6aCI6aCF55uu44Gn44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbGFuZ3VhZ2UgYWxyZWFkeSBleGlzdHMhJ30gPSAn44GT44Gu6KiA6Kqe44Gv6Kit5a6a5riI44Gn44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGxhbmd1YWdlICVzISd9ID0gJ+iogOiqniAlcyDjga7liYrpmaTjgYzjgafjgY3jgb7jgZvjgpPjgafjgZfjgZ/vvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGxhbmd1YWdlIHVwZGF0ZWQhJ30gPSAn6KiA6Kqe44GM5pu05paw44GV44KM44G+44GX44Gf44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBsYW5ndWFnZSBhZGRlZCEnfSA9ICfoqIDoqp7jgYzov73liqDjgZXjgozjgb7jgZfjgZ/jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIExhbmd1YWdlICVzJ30gPSAn6KiA6Kqe44KS5YmK6ZmkICVzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUVByaW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXN1bHQnfSA9ICfntZDmnpwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCB1cGRhdGUnfSA9ICfmnIDntYLmm7TmlrDml6UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIER5bmFtaWMgRmllbGRzJ30gPSAnRkFRIOODgOOCpOODiuODn+ODg+OCr+ODu+ODleOCo+ODvOODq+ODiSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFSaWNoVGV4dC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gJXMgaXMgZ2l2ZW4hJ30gPSAnJXPCoCDjgYzkuI3otrPjgZfjgabjgYTjgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGxvYWQgTGFuZ3VhZ2VPYmplY3QhJ30gPSAnTGFuZ3VhZ2VPYmplY3QgKOiogOiqnuOCquODluOCuOOCp+OCr+ODiCnjgYzoqq3jgb/ovrzjgoHjgb7jgZvjgpMnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBSZXN1bHQhJ30gPSAn57WQ5p6c44GM44GC44KK44G+44Gb44KT44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBOdW1iZXInfSA9ICdGQVHjg4rjg7Pjg5Djg7wnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBDaGFuZ2VkIGJ5J30gPSAn5pyA57WC5pu05pawJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJdGVtIENyZWF0ZSBUaW1lIChiZWZvcmUvYWZ0ZXIpJ30gPSAnRkFR6aCF55uu5L2c5oiQ5pel5pmCICjku6XliY0v5Lul5b6MKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSXRlbSBDcmVhdGUgVGltZSAoYmV0d2VlbiknfSA9ICdGQVHpoIXnm67kvZzmiJDml6XmmYIgKOacn+mWk+aMh+WumiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ2hhbmdlIFRpbWUgKGJlZm9yZS9hZnRlciknfSA9ICdGQVHpoIXnm67lpInmm7Tml6XmmYIgKOS7peWJjS/ku6XlvowpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJdGVtIENoYW5nZSBUaW1lIChiZXR3ZWVuKSd9ID0gJ0ZBUemgheebruWkieabtOaXpeaZgiAo5pyf6ZaT5oyH5a6aKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcXVhbHMnfSA9ICfnrYnjgZfjgYQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JlYXRlciB0aGFuJ30gPSAn6LaFJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyZWF0ZXIgdGhhbiBlcXVhbHMnfSA9ICfku6XkuIonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU21hbGxlciB0aGFuJ30gPSAn5pyq5rqAJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NtYWxsZXIgdGhhbiBlcXVhbHMnfSA9ICfku6XkuIsnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRWm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBGaWxlSUQhJ30gPSAn44OV44Kh44Kk44OrSUTjgYzlv4XopoHjgafjgZnvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhhbmtzIGZvciB5b3VyIHZvdGUhJ30gPSAn6KmV5L6h44KS44GE44Gf44Gg44GN44GC44KK44GM44Go44GG44GU44GW44GE44G+44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIGFscmVhZHkgdm90ZWQhJ30gPSAn44GC44Gq44Gf44Gv44GZ44Gn44Gr6KmV5L6h5riI44Gn44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHJhdGUgc2VsZWN0ZWQhJ30gPSAn6KmV5L6h44GM6YG45oqe44GV44KM44Gm44GE44G+44Gb44KT44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB2b3RpbmcgbWVjaGFuaXNtIGlzIG5vdCBlbmFibGVkISd9ID0gJ+ipleS+oeOBruapn+iDveOCkuacieWKueOBq+OBquOBo+OBpuOBhOOBvuOBm+OCk++8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdm90ZSByYXRlIGlzIG5vdCBkZWZpbmVkISd9ID0gJ+aKleelqOeOh+OBr+Wumue+qeOBleOCjOOBpuOBhOOBvuOBm+OCkyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0N1c3RvbWVyRkFRUHJpbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIFByaW50J30gPSAn6KiY5LqL5Y2w5Yi3JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9DdXN0b21lckZBUVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBiZXR3ZWVuJ30gPSAn44GT44Gu5pyf6ZaT5YaF44Gr5L2c5oiQ44GV44KM44GfJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9DdXN0b21lckZBUVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgSXRlbUlEISd9ID0gJ+OCouOCpOODhuODoElE44Gu5YWl5Yqb44GM5b+F6KaB44Gn44GZ77yBJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9QdWJsaWNGQVFFeHBsb3Jlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGVzIChuZXcgY3JlYXRlZCknfSA9ICfmlrDnnYDoqJjkuosnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGVzIChyZWNlbnRseSBjaGFuZ2VkKSd9ID0gJ+acgOi/keabtOaWsOOBleOCjOOBn+iomOS6iyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZXMgKFRvcCAxMCknfSA9ICfkuIrkvY0xMOS7tuOBruiomOS6iyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvUHVibGljRkFRUlNTLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBUeXBlIGlzIGdpdmVuISd9ID0gJ+OCv+OCpOODl+OBjOaMh+WumuOBleOCjOOBpuOBhOOBvuOBm+OCk++8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlIG11c3QgYmUgZWl0aGVyIExhc3RDcmVhdGUgb3IgTGFzdENoYW5nZSBvciBUb3AxMCEnfSA9ICfjgr/jgqTjg5fjga8gTGFzdENyZWF0ZeOAgUxhc3RDaGFuZ2XjgIFUb3AxMCDjga7jgYTjgZrjgozjgYvjgafjgYLjgovlv4XopoHjgYzjgYLjgorjgb7jgZnvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBSU1MgZmlsZSEnfSA9ICdSU1Pjg5XjgqHjgqTjg6vjgYzkvZzmiJDjgafjgY3jgb7jgZvjgpPvvIEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9IZWFkZXJNZXRhL0FnZW50RkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoRkFRRnVsbHRleHQpJ30gPSAnJXMgKEZBUeWFqOaWhyknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9IZWFkZXJNZXRhL0N1c3RvbWVyRkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAtIEN1c3RvbWVyICglcyknfSA9ICclcyAtIOmhp+WuouOBruOBvyAoJXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gQ3VzdG9tZXIgKEZBUUZ1bGx0ZXh0KSd9ID0gJyVzIC0g6aGn5a6i44Gu44G/IChGQVHlhajmlocpJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvSGVhZGVyTWV0YS9QdWJsaWNGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gUHVibGljICglcyknfSA9ICclcyAtIOWFrOmWiyAoJXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gUHVibGljIChGQVFGdWxsdGV4dCknfSA9ICclcyAtIOWFrOmWiyAoRkFR5YWo5paHKSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0xheW91dC9GQVEucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgcmF0ZSEnfSA9ICfoqZXkvqHjgZfjgabjgY/jgaDjgZXjgYTjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBhcnRpY2xlIGlzIGVtcHR5ISd9ID0gJ+OBk+OBruiomOS6i+OBr+epuuOBp+OBmSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGF0ZXN0IGNyZWF0ZWQgRkFRIGFydGljbGVzJ30gPSAn5pyA5b6M44Gr5L2c5oiQ44GV44KM44GfRkFR6aCF55uuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvcCAxMCBGQVEgYXJ0aWNsZXMnfSA9ICdUb3AgMTAgRkFR6aCF55uuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTGlua09iamVjdC9GQVEucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRlbnQgVHlwZSd9ID0gJ+OCs+ODs+ODhuODs+ODhOOCv+OCpOODlyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9EeW5hbWljRmllbGQvRHJpdmVyL0ZBUS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IHRoZSBhdHRyaWJ1dGUgd2hpY2ggRkFRcyB3aWxsIGJlIHNlYXJjaGVkIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4dGVybmFsLXNvdXJjZSBrZXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IHRoZSB0eXBlIG9mIGRpc3BsYXknfSA9ICcnOwoKICAgICMgRGF0YWJhc2UgWE1MIC8gU09QTSBEZWZpbml0aW9uOiBGQVEuc29wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW50ZXJuYWwnfSA9ICflhoXpg6jlkJEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZXh0ZXJuYWwnfSA9ICflpJbpg6jlkJEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncHVibGljJ30gPSAn5YWs6ZaLJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBmaWx0ZXIgZm9yIEhUTUwgb3V0cHV0IHRvIGFkZCBsaW5rcyBiZWhpbmQgYSBkZWZpbmVkIHN0cmluZy4gVGhlIGVsZW1lbnQgSW1hZ2UgYWxsb3dzIHR3byBpbnB1dCBraW5kcy4gRmlyc3QgdGhlIG5hbWUgb2YgYW4gaW1hZ2UgKGUuZy4gZmFxLnBuZykuIEluIHRoaXMgY2FzZSB0aGUgT1RPQk8gaW1hZ2UgcGF0aCB3aWxsIGJlIHVzZWQuIFRoZSBzZWNvbmQgcG9zc2liaWxpdHkgaXMgdG8gaW5zZXJ0IHRoZSBsaW5rIHRvIHRoZSBpbWFnZS4nfSA9CiAgICAgICAgJ+ODleOCo+ODq+OCv+Wumue+qeOAgC3lrprnvqnjgZXjgozjgZ/mloflrZfliJfvvIhzdHJpbmfvvInjgavjg6rjg7Pjgq/jgpLov73liqDjgZnjgotodG1s44Ki44Km44OI44OX44OD44OILSAg44Ko44Os44Oh44Oz44OI44O744Kk44Oh44O844K444Gv44CBMueorumhnuOBruOCpOODs+ODl+ODg+ODiOOBjOWPr+iDveOBp+OBmeOAgjHjgaTnm67jgIHjgqTjg6Hjg7zjgrjjga7lkI3liY3jgafjgZkgKOS+iy4gZmFxLnBuZynjgILjgZPjga7loLTlkIjjgIFPVE9CT+OCpOODoeODvOOCuOODu+ODkeOCueOBjOS9v+eUqOOBleOCjOOBvuOBmeOAgjLjgaTnm67jgIHjgqTjg6Hjg7zjgrjjgavjg6rjg7Pjgq/jgpLmjL/lhaXjgZnjgovjgZPjgajjgYzlj6/og73mgKfjgafjgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEZBUSBhcnRpY2xlJ30gPSAnRkFRIOiomOS6i+OCkui/veWKoOOBmeOCiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDU1MgY29sb3IgZm9yIHRoZSB2b3RpbmcgcmVzdWx0Lid9ID0gJ+ipleS+oeOBrue1kOaenOihqOekuuOCiOOBhuOBruOCq+ODqeODvO+8iOOCueOCv+OCpOODq+OCt+ODvOODiO+8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSBUaW1lIFRvIExlYXZlIGZvciBGQVEgaXRlbXMuJ30gPSAnRkFR6aCF55uu44GL44KJ6Zui6ISx44GZ44KL44G+44Gn44Gu44Kt44Oj44OD44K344Ol5pmC6ZaTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGVnb3J5IE1hbmFnZW1lbnQnfSA9ICfjgqvjg4bjgrTjg6rjg7znrqHnkIYnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0ZWdvcnkgTWFuYWdlbWVudC4nfSA9ICfjgqvjg4bjgrTjg6rjg7znrqHnkIbjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIFByaW50Lid9ID0gJ+mhp+WuoueUqEZBUeOBruihqOekuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgUmVsYXRlZCBBcnRpY2xlcyd9ID0gJ+OBiuWuouanmEZBUemWoumAo+iomOS6iyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgUmVsYXRlZCBBcnRpY2xlcy4nfSA9ICfpoaflrqJGQVHplqLpgKPoqJjkuovjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIFpvb20uJ30gPSAn6aGn5a6i55SoRkFR44Gu6Kmz57Sw6KGo56S6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBzZWFyY2guJ30gPSAn6aGn5a6i55SoRkFR44Gu5qSc57SiJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUS4nfSA9ICfpoaflrqLnlKhGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVjaW1hbCBwbGFjZXMgb2YgdGhlIHZvdGluZyByZXN1bHQuJ30gPSAn5oqV56Wo44Gu57WQ5p6c44Gu5bCP5pWw54K55Lul5LiL44Gu5qGB5pWwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgY2F0ZWdvcnkgbmFtZS4nfSA9ICfml6Llrprjga7jgqvjg4bjgrTjg6onOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBsYW5ndWFnZSBmb3IgRkFRIGFydGljbGVzIG9uIHNpbmdsZSBsYW5ndWFnZSBtb2RlLid9ID0gJ+imj+WumuOBruiogOiqnu+8iOWNmOS4gOiogOiqnuODouODvOODieOBp+mBi+eUqOaZgu+8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG1heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24uJ30gPQogICAgICAgICfjg4fjg5Xjgqnjg6vjg4jjgafooajnpLrjgZXjgozjgotGQVHpoIXnm67jgr/jgqTjg4jjg6vjga7jg4fjg5Xjgqnjg6vjg4jmnIDlpKflgKQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBwcmlvcml0eSBvZiB0aWNrZXRzIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0KICAgICAgICAnRkFR44G444Gu5Y+W44KK6L6844G/44KS6KGM44GG44OB44Kx44OD44OI44Gu5YSq5YWI6aCG5L2N44Gu5pei5a6a5YCkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdGUgZm9yIEZBUSBlbnRyeS4nfSA9ICfoqJjkuovjgqjjg7Pjg4jjg6rjg7zmmYLjga7opo/lrprjga7jgrnjg4bjg7zjgr/jgrknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0ZSBvZiB0aWNrZXRzIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0gJ0ZBUeOBuOOBruWPluOCiui+vOOBv+OCkuihjOOBhuODgeOCseODg+ODiOOBruWEquWFiOmghuS9jeOBruaXouWumuWApCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHR5cGUgb2YgdGlja2V0cyBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICdGQVHpoIXnm67mib/oqo3nlKjjg4fjg5Xjgqnjg6vjg4jjg4HjgrHjg4Pjg4jjgr/jgqTjg5cnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCB2YWx1ZSBmb3IgdGhlIEFjdGlvbiBwYXJhbWV0ZXIgZm9yIHRoZSBwdWJsaWMgZnJvbnRlbmQuIFRoZSBBY3Rpb24gcGFyYW1ldGVyIGlzIHVzZWQgaW4gdGhlIHNjcmlwdHMgb2YgdGhlIHN5c3RlbS4nfSA9CiAgICAgICAgJ+WFrOmWi+eUu+mdoueUqOODkeODqeODoeODvOOCv+OBruODh+ODleOCqeODq+ODiOWApOOAguODkeODqeODoeODvOOCv++8iEFjdGlvbj1YWFhYWFjvvInjga/jgIHjgrnjgq/jg6rjg5fjg4jjgafkvb/nlKjjgZXjgozjgabjgYTjgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIEFjdGlvbnMgd2hlcmUgYSBzZXR0aW5ncyBidXR0b24gaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rZWQgb2JqZWN0cyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gUGxlYXNlIG5vdGUgdGhhdCB0aGVzZSBBY3Rpb25zIG11c3QgaGF2ZSByZWdpc3RlcmVkIHRoZSBmb2xsb3dpbmcgSlMgYW5kIENTUyBmaWxlczogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgYW5kIENvcmUuQWdlbnQuTGlua09iamVjdC5qcy4nfSA9CiAgICAgICAgJ+ODquODs+OCr+OCquODluOCuOOCp+OCr+ODiOOCpuOCo+OCuOOCp+ODg+ODiO+8iExpbmtPYmplY3QgOjogVmlld01vZGUgPSAiY29tcGxleCLvvInjgafoqK3lrprjg5zjgr/jg7PjgpLkvb/nlKjjgafjgY3jgovjgqLjgq/jgrfjg6fjg7PjgpLlrprnvqnjgZfjgb7jgZnjgIIg44GT44KM44KJ44Gu44Ki44Kv44K344On44Oz44Gv44CB5qyh44GuSlPjgYrjgojjgbNDU1Pjg5XjgqHjgqTjg6vjgpLnmbvpjLLjgZfjgabjgYTjgovlv4XopoHjgYzjgYLjgorjgb7jgZnjgIJDb3JlLkFsbG9jYXRpb25MaXN0LmNzc+OAgUNvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanPjgIFDb3JlLlVJLlRhYmxlLlNvcnQuanPjgIFDb3JlLkFnZW50LlRhYmxlRmlsdGVycy5qc+OAgeWPiuOBs0NvcmUuQWdlbnQgLkxpbmtPYmplY3QuanMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIGlmIHRoZSBGQVEgdGl0bGUgc2hvdWxkIGJlIGNvbmNhdGVuYXRlZCB0byBhcnRpY2xlIHN1YmplY3QuJ30gPQogICAgICAgICdGQVHjgr/jgqTjg4jjg6vjgYzoqJjkuovjga7ku7blkI3jgavpgKPntZDjgZnjgovjgYvjganjgYbjgYvjgpLlrprnvqnjgZfjgb7jgZknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgRkFRcyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90ZTogT25seSBGQVEgYXR0cmlidXRlcyBhbmQgZHluYW1pYyBmaWVsZHMgKER5bmFtaWNGaWVsZF9OYW1lWCkgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLid9ID0KICAgICAgICAn44Oq44Oz44Kv44GV44KM44GfIEZBUSDjgqbjgqPjgrjjgqfjg4Pjg4jjgavooajnpLrjgZXjgozjgovliJfjgpLlrprnvqnjgZfjgb7jgZkgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKeOAguazqDogRGVmYXVsdENvbHVtbnMg44Gn44Gv44CBRkFRIOWxnuaAp+OBqOODgOOCpOODiuODn+ODg+OCr+ODleOCo+ODvOODq+ODiSAoRHluYW1pY0ZpZWxkX05hbWVYKSDjga7jgb/jgYzoqLHlj6/jgZXjgozjgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIEZBUSBqb3VybmFsLid9ID0KICAgICAgICAn57Ch5piT54mIRkFR44K444Oj44O844OK44Or6KGo56S655So44Oi44K444Ol44O844Or44Gu5qaC6KaB44KS5a6a576pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBGQVEgbGlzdC4nfSA9CiAgICAgICAgJ+ewoeaYk+eJiEZBUeS4gOimp+ihqOekuueUqOODouOCuOODpeODvOODq+OBruamguimgeOCkuWumue+qSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIGEgRkFRIHNlYXJjaCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5ouF5b2T6ICF44Kk44Oz44K/44O844OV44Kn44Kk44K544Gr44GK44GR44KL44CBRkFR5qSc57Si57WQ5p6c5Lim44Gz5pu/44GI44Gr5Yip55So44GZ44KL5bGe5oCn6aCG44Gu5pei5a6a5YCk44KS5a6a576p44GX44G+44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gYSBGQVEgc2VhcmNoIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICfpoaflrqLnlKjnlLvpnaLjgavjgYrjgZHjgovjgIFGQVHmpJzntKLntZDmnpzkuKbjgbPmm7/jgYjjgavliKnnlKjjgZnjgovlsZ7mgKfpoIbjga7ml6LlrprlgKTjgpLlrprnvqnjgZfjgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiBhIEZBUSBzZWFyY2ggb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICflhazplovnlLvpnaLjgavjgYrjgZHjgovjgIFGQVHmpJzntKLntZDmnpzkuKbjgbPmm7/jgYjjgavliKnnlKjjgZnjgovlsZ7mgKfpoIbjga7ml6LlrprlgKTjgpLlrprnvqnjgZfjgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfmi4XlvZPogIXjgqTjg7Pjgr/jg7zjg5XjgqfjgqTjgrnvvIhGQVHkuIDopqfvvInjgavjgYrjgZHjgovjgIFGQVHmpJzntKLntZDmnpzkuKbjgbPmm7/jgYjjgavliKnnlKjjgZnjgovlsZ7mgKfpoIbjga7ml6LlrprlgKTjgpLlrprnvqnjgZfjgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICfpoaflrqLnlKjnlLvpnaLvvIhGQVHkuIDopqfvvInjgavjgYrjgZHjgovjgIFGQVHmpJzntKLntZDmnpzkuKbjgbPmm7/jgYjjgavliKnnlKjjgZnjgovlsZ7mgKfpoIbjga7ml6LlrprlgKTjgpLlrprnvqnjgZfjgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5YWs6ZaL55S76Z2i77yIRkFR5LiA6Kan77yJ44Gr44GK44GR44KL44CBRkFR5qSc57Si57WQ5p6c5Lim44Gz5pu/44GI44Gr5Yip55So44GZ44KL5bGe5oCn6aCG44Gu5pei5a6a5YCk44KS5a6a576p44GX44G+44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAn5ouF5b2T6ICF44Kk44Oz44K/44O844OV44Kn44Kk44K544Gr44GK44GR44KL44CBRkFR5LiA6Kan44Gu6KGo56S66aCG44Gu5pei5a6a5YCk44KS5a6a576p44GX44G+44GZ44CCVXA6IOWPpOOBhOmghiAvIERvd246IOaWsOOBl+OBhOmghic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ+mhp+WuoueUqOeUu+mdouOBq+OBiuOBkeOCi+OAgUZBUeS4gOimp+OBruihqOekuumghuOBruaXouWumuWApOOCkuWumue+qeOBl+OBvuOBmeOAglVwOiDlj6TjgYTpoIYgLyBEb3duOiDmlrDjgZfjgYTpoIYnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAn5YWs6ZaL55S76Z2i44Gr44GK44GR44KL44CBRkFR5LiA6Kan44Gu6KGo56S66aCG44Gu5pei5a6a5YCk44KS5a6a576p44GX44G+44GZ44CCVXA6IOWPpOOBhOmghiAvIERvd246IOaWsOOBl+OBhOmghic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICfmi4XlvZPogIXjgqTjg7Pjgr/jg7zjg5XjgqfjgqTjgrnvvIhGQVHkuIDopqfvvInjgavjgYrjgZHjgovjgIFGQVHmpJzntKLntZDmnpzkuKbjgbPpoIbjga7ml6LlrprlgKTjgpLlrprnvqnjgZfjgb7jgZnjgIJVcDog5Y+k44GE6aCGIC8gRG93bjog5paw44GX44GE6aCGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ+mhp+WuoueUqOeUu+mdouOBq+OBiuOBkeOCi+OAgUZBUeaknOe0oue1kOaenOS4puOBs+mghuOBruaXouWumuWApOOCkuWumue+qeOBl+OBvuOBmeOAglVwOiDlj6TjgYTpoIYgLyBEb3duOiDmlrDjgZfjgYTpoIYnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ+WFrOmWi+eUu+mdouOBq+OBiuOBkeOCi+OAgUZBUeaknOe0oue1kOaenOS4puOBs+mghuOBruaXouWumuWApOOCkuWumue+qeOBl+OBvuOBmeOAglVwOiDlj6TjgYTpoIYgLyBEb3duOiDmlrDjgZfjgYTpoIYnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzaG93biBGQVEgc2VhcmNoIGF0dHJpYnV0ZSBmb3IgRkFRIHNlYXJjaCBzY3JlZW4uJ30gPQogICAgICAgICdGQVEg5qSc57Si55S76Z2i44Gr6KGo56S644GV44KM44KLRkFRIOaknOe0ouWxnuaAp+OBruODh+ODleOCqeODq+ODiOWApOOCkuWumue+qeOBmeOCi+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBoZWlnaHQgZm9yIHRoZSByaWNoIHRleHQgZWRpdG9yIGNvbXBvbmVudCBmb3IgdGhpcyBzY3JlZW4uIEVudGVyIG51bWJlciAocGl4ZWxzKSBvciBwZXJjZW50IHZhbHVlIChyZWxhdGl2ZSkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaW5mb3JtYXRpb24gdG8gYmUgaW5zZXJ0ZWQgaW4gYSBGQVEgYmFzZWQgVGlja2V0LiAiRnVsbCBGQVEiIGluY2x1ZGVzIHRleHQsIGF0dGFjaG1lbnRzIGFuZCBpbmxpbmUgaW1hZ2VzLid9ID0KICAgICAgICAnRkFR6KiY5LqL44GL44KJ44OB44Kx44OD44OI44G444Gu5oy/5YWl44GV44KM44KL5oOF5aCx44KS5a6a576p44GZ44KL44CC44CMRkFR44GZ44G544Gm44CN44Gr44Gv44OG44Kt44K544OI44O75re75LuY44O75Y+K44Gz44Kk44Oz44Op44Kk44Oz44Gu55S75YOP44GM5ZCr44G+44KM44G+44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZC4gIkxpbWl0IiBkZWZpbmVzIHRoZSBudW1iZXIgb2YgZW50cmllcyBkaXNwbGF5ZWQgYnkgZGVmYXVsdC4gIkdyb3VwIiBpcyB1c2VkIHRvIHJlc3RyaWN0IGFjY2VzcyB0byB0aGUgcGx1Z2luIChlLiBnLiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgaW5kaWNhdGVzIGlmIHRoZSBwbHVnaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIGlmIHRoZSB1c2VyIG5lZWRzIHRvIGVuYWJsZSBpdCBtYW51YWxseS4nfSA9CiAgICAgICAgJ+ODgOODg+OCt+ODpeODnOODvOODieOBruODkOODg+OCr+OCqOODs+ODieODkeODqeODoeODvOOCv+OCkuWumue+qeOAguOAjExpbWl0IOODquODn+ODg+ODiOOAjeOBr+aomea6luOBp+ihqOekuuOBleOCjOOCi+OCqOODs+ODiOODquODvOOCkuWumue+qeOBl+OBvuOBmeOAguOAjEdyb3VwIOOCsOODq+ODvOODl+OAjeOBr+ODl+ODqeOCsOOCpOODs+OBuOOBruOCouOCr+OCu+OCueOCkuWItumZkOOBl+OBvuOBmeOAgijkvosuIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyKeOAguOAjERlZmF1bHTjgIDjg4fjg5Xjgqnjg6vjg4jjgI3jga/jg5fjg6njgrDjgqTjg7PjgYzmqJnmupbjgafmnInlirnjgavjgarjgaPjgabjgYTjgovjgYvjgIHjg6bjg7zjgrbjg7zjgYzmiYvli5XjgafmnInlirnjgavjgZnjgovlv4XopoHjgYzjgYLjgovjgYvjgpLlrprnvqnjgZfjgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgRkFRIEV4cGxvcmVyLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAn5ouF5b2T6ICF55S76Z2i44Gr44GK44GR44KL44CBRkFR5LiA6Kan44Gn44Gu6KGo56S66aCF55uu44Gu6Kit5a6a44CC44GT44Gu6Kit5a6a44Gr44KI44Gj44Gm6aCF55uu44Gu5Lim44Gz6aCG44KS5Yi25b6h44GZ44KL44GT44Go44Gv44Gn44GN44G+44Gb44KT44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIEZBUSBqb3VybmFsLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAn6aGn5a6i55So55S76Z2i44Gr44GK44GR44KL44CBRkFR5LiA6Kan44Gn44Gu6KGo56S66aCF55uu44Gu6Kit5a6a44CC44GT44Gu6Kit5a6a44Gr44KI44Gj44Gm6aCF55uu44Gu5Lim44Gz6aCG44KS5Yi25b6h44GZ44KL44GT44Go44Gv44Gn44GN44G+44Gb44KT44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIEZBUSBzZWFyY2guIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICflhazplovnlLvpnaLjgavjgYrjgZHjgovjgIFGQVHkuIDopqfjgafjga7ooajnpLrpoIXnm67jga7oqK3lrprjgILjgZPjga7oqK3lrprjgavjgojjgaPjgabpoIXnm67jga7kuKbjgbPpoIbjgpLliLblvqHjgZnjgovjgZPjgajjga/jgafjgY3jgb7jgZvjgpPjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB3aGVyZSB0aGUgXCdJbnNlcnQgRkFRXCcgbGluayB3aWxsIGJlIGRpc3BsYXllZC4nfSA9ICdGQVHjg6rjg7Pjgq/jgYzjganjgZPjgavooajnpLrjgZXjgozjgovjgYvlrprnvqnjgZnjgosnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5pdGlvbiBvZiBGQVEgaXRlbSBmcmVlIHRleHQgZmllbGQuJ30gPSAnRkFR44Gu44OV44Oq44O844OG44Kt44K544OI44OV44Kj44O844Or44OJ44Gu5a6a576p44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGlzIEZBUSd9ID0gJ+OBk+OBruiomOS6i+OCkuWJiumZpCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+aLheW9k+iAheOCpOODs+OCv+ODleOCp+ODvOOCueOBriBGQVEg6L+95Yqg55S76Z2i44Gr6KGo56S644GZ44KL44OA44Kk44OK44Of44OD44Kv44O744OV44Kj44O844Or44OJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+aLheW9k+iAheOCpOODs+OCv+ODleOCp+ODvOOCueOBriBGQVEg57eo6ZuG55S76Z2i44Gr6KGo56S644GZ44KL44OA44Kk44OK44Of44OD44Kv44O744OV44Kj44O844Or44OJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgb3ZlcnZpZXcgc2NyZWVuIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICfpoaflrqLjgqTjg7Pjgr/jg7zjg5XjgqfjgqTjgrkg44GuIEZBUSDkuIDopqfnlLvpnaLjgavooajnpLrjgZnjgosg44OA44Kk44OK44Of44OD44Kv44O744OV44Kj44O844Or44OJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgb3ZlcnZpZXcgc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5YWs6ZaL44Kk44Oz44K/44O844OV44Kn44Kk44K5IOOBriBGQVEg5LiA6Kan55S76Z2i44Gr6KGo56S644GZ44KLIOODgOOCpOODiuODn+ODg+OCr+ODu+ODleOCo+ODvOODq+ODiSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHByaW50IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5ouF5b2T6ICF44Kk44Oz44K/44OV44Kn44O844K544GuIEZBUSDljbDliLfnlLvpnaLjgavooajnpLrjgZnjgovjg4DjgqTjg4rjg5/jg4Pjgq/jg7vjg5XjgqPjg7zjg6vjg4knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBwcmludCBzY3JlZW4gb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+mhp+WuouOCpOODs+OCv+ODvOODleOCp+OCpOOCuSDjga4gRkFRIOWNsOWIt+eUu+mdouOBq+ihqOekuuOBmeOCiyDjg4DjgqTjg4rjg5/jg4Pjgq/jg7vjg5XjgqPjg7zjg6vjg4knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBwcmludCBzY3JlZW4gb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICflhazplovjgqTjg7Pjgr/jg7zjg5XjgqfjgqTjgrkg44GuIEZBUSDljbDliLfnlLvpnaLjgavooajnpLrjgZnjgosg44OA44Kk44OK44Of44OD44Kv44O744OV44Kj44O844Or44OJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc2VhcmNoIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5ouF5b2T6ICF44Kk44Oz44K/44OV44Kn44O844K544GuIEZBUSDmpJzntKLnlLvpnaLjgavooajnpLrjgZnjgovjg4DjgqTjg4rjg5/jg4Pjgq/jg7vjg5XjgqPjg7zjg6vjg4knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBzZWFyY2ggc2NyZWVuIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICfpoaflrqLjgqTjg7Pjgr/jg7zjg5XjgqfjgqTjgrkg44GuIEZBUSDmpJzntKLnlLvpnaLjgavooajnpLrjgZnjgosg44OA44Kk44OK44Of44OD44Kv44O744OV44Kj44O844Or44OJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc2VhcmNoIHNjcmVlbiBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+WFrOmWi+OCpOODs+OCv+ODvOODleOCp+OCpOOCuSDjga4gRkFRIOaknOe0oueUu+mdouOBq+ihqOekuuOBmeOCiyDjg4DjgqTjg4rjg5/jg4Pjgq/jg7vjg5XjgqPjg7zjg6vjg4knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBzbWFsbCBmb3JtYXQgb3ZlcnZpZXcgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfmi4XlvZPogIXjgqTjg7Pjgr/jg7zjg5XjgqfjgqTjgrnjga7jgrPjg7Pjg5Hjgq/jg4jjgapGQVHmpoLopoHnlLvpnaLjgavooajnpLrjgZnjgovjg4DjgqTjg4rjg5/jg4Pjgq/jg7vjg5XjgqPjg7zjg6vjg4knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5ouF5b2T6ICF44Kk44Oz44K/44O844OV44Kn44Kk44K544GuRkFR44K644O844Og55S76Z2i44Gr6KGo56S644GZ44KL44OA44Kk44OK44Of44OD44Kv44O744OV44Kj44O844Or44OJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgem9vbSBzY3JlZW4gb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+mhp+WuouOCpOODs+OCv+ODvOODleOCp+OCpOOCueOBrkZBUeOCuuODvOODoOeUu+mdouOBq+ihqOekuuOBmeOCi+ODgOOCpOODiuODn+ODg+OCr+ODu+ODleOCo+ODvOODq+ODiSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHpvb20gc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5YWs6ZaL44Kk44Oz44K/44O844OV44Kn44Kk44K544GuRkFR44K644O844Og55S76Z2i44Gr6KGo56S644GZ44KL44OA44Kk44OK44Of44OD44Kv44O744OV44Kj44O844Or44OJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhpcyBGQVEnfSA9ICfjgZPjga7oqJjkuovjgpLnt6jpm4YnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIG11bHRpcGxlIGxhbmd1YWdlcyBvbiBGQVEgbW9kdWxlLid9ID0gJ+WkmuiogOiqnuOCkuacieWKueOBq+OBmeOCiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgc2VydmljZSBhc3NpZ25tZW50IGZvciBGQVFzLid9ID0gJ0ZBUSDjga7jgrXjg7zjg5PjgrnlibLjgorlvZPjgabjgpLmnInlirnjgavjgZfjgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHRoZSByZWxhdGVkIGFydGljbGUgZmVhdHVyZSBmb3IgdGhlIGN1c3RvbWVyIGZyb250ZW5kLid9ID0KICAgICAgICAn6aGn5a6i44OV44Ot44Oz44OI44Ko44Oz44OJ44Gu6Zai6YCj6KiY5LqL5qmf6IO944KS5pyJ5Yq544Gr44GX44G+44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB2b3RpbmcgbWVjaGFuaXNtIG9uIEZBUSBtb2R1bGUuJ30gPSAn6KmV5L6h44Gu5qmf6IO944KS5pyJ5Yq544Gr44GZ44KLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4cGxvcmVyJ30gPSAn5LiA6KanJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBSkFYIFJlc3BvbmRlcid9ID0gJ0ZBUSBBSkFYIOODrOOCueODneODs+ODgOODvCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQUpBWCBSZXNwb25kZXIgZm9yIFJpY2h0ZXh0Lid9ID0gJ+ODquODg+ODgeODhuOCreOCueODiOeUqOOBriBGQVEgQUpBWCDjg6zjgrnjg53jg7Pjg4Djg7zjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFyZWEnfSA9ICdGQVHjgqjjg6rjgqInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFyZWEuJ30gPSAnRkFR44Ko44Oq44Ki44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBEZWxldGUuJ30gPSAnRkFRIOOBruWJiumZpCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgRWRpdC4nfSA9ICdGQVEg44Gu57eo6ZuGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBIaXN0b3J5Lid9ID0gJ0ZBUSDmm7TmlrDlsaXmrbQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEpvdXJuYWwgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJ0ZBUeOCuOODo+ODvOODiuODq+S4gOimpyhTKeOBruihqOekuuaVsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJ0ZBUeS4gOimpyhTKeOBruihqOekuuaVsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgUHJpbnQuJ30gPSAnRkFRIOOBruihqOekuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgc2VhcmNoIGJhY2tlbmQgcm91dGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPSAn5ouF5b2T6ICF44Kk44Oz44K/44O844OV44Kn44Kk44K544Gr44GK44GR44KL44CBRkFR5qSc57Si44Gu44OQ44OD44Kv44Ko44Oz44OJ44Or44O844K/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpZWxkNCd9ID0gJ0ZpZWxkNCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWVsZDUnfSA9ICdGaWVsZDUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnVsbCBGQVEnfSA9ICdGQVHlhajmlocnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPSAnRkFR44Gu6KiY5LqL44Gu5om/6KqN44Gu44Gf44KB44Gu44Kw44Or44O844OXJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgdGhpcyBGQVEnfSA9ICfjgZPjga7oqJjkuovjga7lsaXmrbQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgYWN0aXZhdGVkLCBGQVEgYXJ0aWNsZXMgb2Ygc3RhdHVzIHR5cGUgaW50ZXJuYWwgYXJlIGFsc28gdGFrZW4gaW50byBhY2NvdW50IGZvciB0aGUgYXBwcm92YWwgcHJvY2Vzcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNsdWRlIGludGVybmFsIGZpZWxkcyBvbiBhIEZBUSBiYXNlZCBUaWNrZXQuJ30gPSAnRkFR55Sx5p2l44Gu44OB44Kx44OD44OI44Gr5ZCr44G+44KM44KL5YaF6YOo6aCF55uuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgdGhlIG5hbWUgb2YgZWFjaCBmaWVsZCBpbiBhIEZBUSBiYXNlZCBUaWNrZXQuJ30gPSAnRkFR55Sx5p2l44Gu44OB44Kx44OD44OI44Gr5ZCr44G+44KM44KL5YaF6YOo6aCF55uu44GZ44G544Gm44Gu5ZCN56ewJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludGVyZmFjZXMgd2hlcmUgdGhlIHF1aWNrIHNlYXJjaCBzaG91bGQgYmUgc2hvd24uJ30gPSAn44Kv44Kk44OD44Kv5qSc57Si44GM6KGo56S644GV44KM44KL55S76Z2iJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0pvdXJuYWwnfSA9ICfjgrjjg6Pjg7zjg4rjg6snOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFuZ3VhZ2UgTWFuYWdlbWVudCd9ID0gJ+iogOiqnueuoeeQhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYW5ndWFnZSBNYW5hZ2VtZW50Lid9ID0gJ+iogOiqnueuoeeQhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW1pdCBmb3IgdGhlIHNlYXJjaCB0byBidWlsZCB0aGUga2V5d29yZCBGQVEgYXJ0aWNsZSBsaXN0Lid9ID0gJ+OCreODvOODr+ODvOODiSBGQVEg6KiY5LqL44Oq44K544OI44KS5qeL56+J44GZ44KL44Gf44KB44Gu5qSc57Si44Gu5Yi26ZmQ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhpcyBGQVEgaXRlbSd9ID0gJ+OBk+OBrkZBUeiomOS6i+OBq+S7luOCquODluOCuOOCp+OCr+ODiOOCkumWoumAo+S7mOOBkeOCiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIHF1ZXVlIG5hbWVzIGZvciB3aGljaCB0aGUgcmVsYXRlZCBhcnRpY2xlIGZlYXR1cmUgaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJ+mWoumAo+iomOS6i+apn+iDveOBjOacieWKueOBq+OBquOBo+OBpuOBhOOCi+OCreODpeODvOWQjeOBruODquOCueODiOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIHN0YXRlIHR5cGVzIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfmi4XlvZPogIXjgqTjg7Pjgr/jg7zjg5XjgqfjgqTjgrnjgafliKnnlKjlj6/og73jgarjgrnjg4bjg7zjg4jjgr/jgqTjg5fjg6rjgrnjg4gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBzdGF0ZSB0eXBlcyB3aGljaCBjYW4gYmUgdXNlZCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAn6aGn5a6i55S76Z2i44Gn5Yip55So5Y+v6IO944Gq44K544OG44O844OI44K/44Kk44OX44Oq44K544OIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2Ygc3RhdGUgdHlwZXMgd2hpY2ggY2FuIGJlIHVzZWQgaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICflhazplovnlLvpnaLjgafliKnnlKjlj6/og73jgarjgrnjg4bjg7zjg4jjgr/jgqTjg5fjg6rjgrnjg4gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0gJ+S4gOiIrFdlYuOCpOODs+OCv+ODvOODleOCp+OCpOOCueOBruODreODvOODgOODvCDjg6Ljgrjjg6Xjg7zjg6vjga7nmbvpjLLjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5ouF5b2T6ICF44Kk44Oz44K/44O844OV44Kn44Kk44K544GuRkFR5LiA6Kan44Gn6KGo56S644GZ44KL6KiY5LqL44Gu5pyA5aSn5pWwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+mhp+WuoueUqOeUu+mdouOBrkZBUeS4gOimp+OBp+ihqOekuuOBmeOCi+iomOS6i+OBruacgOWkp+aVsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5YWs6ZaL55S76Z2i44GuRkFR5LiA6Kan44Gn6KGo56S644GZ44KL6KiY5LqL44Gu5pyA5aSn5pWwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBqb3VybmFsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfmi4XlvZPogIXjgqTjg7Pjgr/jg7zjg5XjgqfjgqTjgrnjga5GQVHjgrjjg6Pjg7zjg4rjg6vjgafooajnpLrjgZnjgovoqJjkuovjga7mnIDlpKfmlbAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgcmVzdWx0IG9mIGEgc2VhcmNoIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfmpJzntKLntZDmnpzjgajjgZfjgabmi4XlvZPogIXjgqTjg7Pjgr/jg7zjg5XjgqfjgqTjgrnjgafooajnpLrjgZXjgozjgotGQVHpoIXnm67jga7mnIDlpKfmlbAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgcmVzdWx0IG9mIGEgc2VhcmNoIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICfmpJzntKLntZDmnpzjgajjgZfjgabpoaflrqLnlLvpnaLjgafooajnpLrjgZXjgozjgotGQVHpoIXnm67jga7mnIDlpKfmlbAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgcmVzdWx0IG9mIGEgc2VhcmNoIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5qSc57Si57WQ5p6c44Go44GX44Gm5YWs6ZaL55S76Z2i44Gn6KGo56S644GV44KM44KLRkFR6aCF55uu44Gu5pyA5aSn5pWwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBFeHBsb3JlciBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5ouF5b2T6ICF44Kk44Oz44K/44O844OV44Kn44Kk44K544GuRkFRIEV4cGxvcmVy44Gn6KGo56S644GV44KM44KL5Lu25ZCN44GuRkFR6KiY5LqL44Gu5pyA5aSn44K144Kk44K6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBFeHBsb3JlciBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAn6aGn5a6i44Kk44Oz44K/44O844OV44Kn44Kk44K544GuRkFRIEV4cGxvcmVyIOOBq+ihqOekuuOBleOCjOOCi+OAjEZBUemgheebruOBruS7tuWQjeOAjeOBruacgOWkp+WApOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgRXhwbG9yZXIgaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICflhazplovjgqTjg7Pjgr/jg7zjg5XjgqfjgqTjgrnjga5GQVEgRXhwbG9yZXIg44Gr6KGo56S644GV44KM44KL44CMRkFR6aCF55uu44Gu5Lu25ZCN44CN44Gu5pyA5aSn5YCk44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBTZWFyY2ggaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+aLheW9k+iAheOCpOODs+OCv+ODvOODleOCp+OCpOOCueOBrkZBUSDmpJzntKLjgafooajnpLrjgZXjgozjgovku7blkI3jga5GQVHoqJjkuovjga7mnIDlpKfjgrXjgqTjgronOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIFNlYXJjaCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAn6aGn5a6i44Kk44Oz44K/44O844OV44Kn44Kk44K544GuRkFRIOaknOe0oiDjgavooajnpLrjgZXjgozjgovjgIxGQVHpoIXnm67jga7ku7blkI3jgI3jga7mnIDlpKflgKTjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIFNlYXJjaCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+WFrOmWi+OCpOODs+OCv+ODvOODleOCp+OCpOOCueOBrkZBUSDmpJzntKIg44Gr6KGo56S644GV44KM44KL44CMRkFR6aCF55uu44Gu5Lu25ZCN44CN44Gu5pyA5aSn5YCk44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBqb3VybmFsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfmi4XlvZPogIXjgqTjg7Pjgr/jg7zjg5XjgqfjgqTjgrnjga5GQVEg44K444Oj44O844OK44Or44Gn6KGo56S644GV44KM44KL5Lu25ZCN44GuRkFR6KiY5LqL44Gu5pyA5aSn44K144Kk44K6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBnZW5lcmF0ZSBIVE1MIE9wZW5TZWFyY2ggcHJvZmlsZSBmb3Igc2hvcnQgRkFRIHNlYXJjaCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAn6aGn5a6iV2Vi44Kk44Oz44K/44O844OV44Kn44O844K544Gn44Gu55+t44GEIEZBUSDmpJzntKLnlKjjga4gSFRNTCBPcGVuU2VhcmNoIOODl+ODreODleOCoeOCpOODq+OCkueUn+aIkOOBmeOCi+ODouOCuOODpeODvOODq+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gZ2VuZXJhdGUgSFRNTCBPcGVuU2VhcmNoIHByb2ZpbGUgZm9yIHNob3J0IEZBUSBzZWFyY2ggaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICflhazplovjgqTjg7Pjgr/jg5Xjgqfjg7zjgrnjgavjgYrjgYTjgabjgIHjgrfjg6fjg7zjg4jjg7vjg4HjgrHjg4Pjg4jmpJzntKLjga7jgZ/jgoHjga5odG1sIE9wZW5TZWFyY2jjg5fjg63jg5XjgqPjg7zjg6vjgpLnlJ/miJDjgZnjgovjg6Ljgrjjg6Xjg7zjg6vjgafjgZknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGdlbmVyYXRlIGh0bWwgT3BlblNlYXJjaCBwcm9maWxlIGZvciBzaG9ydCBGQVEgc2VhcmNoLid9ID0KICAgICAgICAn55+t44GEIEZBUSDmpJzntKLnlKjjga4gSFRNTCBPcGVuU2VhcmNoIOODl+ODreODleOCoeOCpOODq+OCkueUn+aIkOOBmeOCi+ODouOCuOODpeODvOODq+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgRkFRIEFydGljbGUuJ30gPSAn5paw6KaPIEZBUSDpoIXnm64nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEZBUSBhcnRpY2xlcyBuZWVkIGFwcHJvdmFsIGJlZm9yZSB0aGV5IGdldCBwdWJsaXNoZWQuJ30gPSAn5paw6KaPIEZBUSDpoIXnm67jgpLlhazplovjgZnjgovjgavjga/kuovliY3jgavmib/oqo3jgZXjgozjgovjgZPjgajjgYzlv4XopoHjgafjgZknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAn6aGn5a6i55So44Kk44Oz44K/44O844OV44Kn44Kk44K544Gn6KGo56S644GV44KM44KLIEZBUSDpoIXnm67jga7mlbAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+WFrOmWi+eUqOOCpOODs+OCv+ODvOODleOCp+OCpOOCueOBp+ihqOekuuOBleOCjOOCiyBGQVEg6aCF55uu44Gu5pWwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIG9uIGVhY2ggcGFnZSBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+mhp+WuoueUqOOCpOODs+OCv+ODvOODleOCp+OCpOOCuSDmpJzntKLntZDmnpzooajnpLrjga7lkITnlLvpnaLjgafooajnpLrjgZXjgozjgosgRkFRIOmgheebruOBruaVsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBvbiBlYWNoIHBhZ2Ugb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5YWs6ZaL44Kk44Oz44K/44O844OV44Kn44Kk44K5IOOBruaknOe0oue1kOaenOihqOekuuOBruWQhOeUu+mdouOBp+ihqOekuuOBleOCjOOCiyBGQVEg6aCF55uu44Gu5pWwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBzaG93biBpdGVtcyBpbiBsYXN0IGNoYW5nZXMuJ30gPSAn44CM5pyA6L+R44Gu5aSJ5pu044CN44Gr5L2V5Lu244G+44Gn6KGo56S644GZ44KL44GLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBzaG93biBpdGVtcyBpbiBsYXN0IGNyZWF0ZWQuJ30gPSAn44CM5pyA5paw44Gu5paw6KaP5L2c5oiQ44CN44Gr5L2V5Lu244G+44Gn6KGo56S644GZ44KL44GLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBzaG93biBpdGVtcyBpbiB0aGUgdG9wIDEwIGZlYXR1cmUuJ30gPSAn44CM44OI44OD44OXMTDoqJjkuovjgI3jgavkvZXku7bjgb7jgafooajnpLrjgZnjgovjgYsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3V0cHV0IGZpbHRlciB0byBhZGQgSmF2YS1zY3JpcHQgdG8gQ3VzdG9tZXJUaWNrZXRNZXNzYWdlIHNjcmVlbi4nfSA9CiAgICAgICAgJ0N1c3RvbWVyVGlja2V0TWVzc2FnZSDnlLvpnaLjgasgSmF2YSDjgrnjgq/jg6rjg5fjg4jjgpLov73liqDjgZnjgovjgZ/jgoHjga7lh7rlipvjg5XjgqPjg6vjgr/jg7zjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3V0cHV0IGxpbWl0IGZvciB0aGUgcmVsYXRlZCBGQVEgYXJ0aWNsZXMuJ30gPSAn6Zai6YCj44GZ44KLRkFR6KiY5LqL44Gu5Ye65Yqb5Yi26ZmQ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIEZBUSBpdGVtcyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBGQVEgam91cm5hbCBvdmVydmlldy4nfSA9CiAgICAgICAgJ+ewoeaYk+eJiEZBUeOCuOODo+ODvOODiuODq+S4gOimp+OBruODmuODvOOCuOaMh+WumueUqOOBruODkeODqeODoeODvOOCvyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBGQVEgaXRlbXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgRkFRIG92ZXJ2aWV3Lid9ID0KICAgICAgICAn57Ch5piT54mIRkFR5qaC6KaB44Gu44Oa44O844K45oyH5a6a55So44Gu44OR44Op44Oh44O844K/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW50IHRoaXMgRkFRJ30gPSAn44GT44Gu6KiY5LqL44KS5Y2w5Yi3JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBGQVEgUHJpbnQuJ30gPSAn5YWs6ZaLRkFR44Gu6KGo56S6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBGQVEgWm9vbS4nfSA9ICflhazplotGQVHjga7oqbPntLDjgpLooajnpLonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIEZBUSBzZWFyY2guJ30gPSAn5YWs6ZaLRkFR44Gu5qSc57SiJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBGQVEuJ30gPSAn5YWs6ZaLRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1F1ZXVlIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0gJ+iomOS6i+aJv+iqjeOCreODpeODvCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRlcyBmb3Igdm90aW5nLiBLZXkgbXVzdCBiZSBpbiBwZXJjZW50Lid9ID0gJ+ipleS+oeeOh+OAguOCreODvOOBr+OAgeODkeODvOOCu+ODs+ODiOOBp+aMh+WumuOBmeOCi+W/heimgeOBjOOBguOCiuOBvuOBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTJ30gPSAnUyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggRkFRJ30gPSAnRkFR44KS5qSc57SiJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBGQVEgU21hbGwuJ30gPSAnRkFRKOWwjynjgpLmpJzntKLjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIEZBUS4nfSA9ICdGQVHjga7mpJzntKInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGhvdyBtYW55IGl0ZW1zIHNob3VsZCBiZSBzaG93biBpbiBKb3VybmFsIE92ZXJ2aWV3ICJTbWFsbCIgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJ+OCuOODo+ODvOODiuODq+amguimgeOBq+ODh+ODleOCqeODq+ODiOOBp+OAjOWwj+OAjeOBqOOBl+OBpuihqOekuuOBleOCjOOCi+mgheebruOBruaVsOOCkumBuOaKnuOBl+OBvuOBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgaG93IG1hbnkgaXRlbXMgc2hvdWxkIGJlIHNob3duIGluIE92ZXJ2aWV3ICJTbWFsbCIgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJ+amguimgeOBq+ihqOekuuOBmeOCi+mgheebruOBruaVsOOCkumBuOaKnuOBl+OBvuOBmeOAguODh+ODleOCqeODq+ODiOOBp+OBr+OAjOWwj+OAjeOBp+OBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBBZ2VudEZBUVpvb20uJ30gPQogICAgICAgICdBZ2VudEZBUVpvb23jgafooajnpLrjgZXjgozjgovjgqTjg7Pjg6njgqTjg7NIVE1M44Gu44OH44OV44Kp44Or44OI6auY44GVKOODlOOCr+OCu+ODq+ihqOiomCnjgpLoqK3lrponOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBkZWZhdWx0IGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gQ3VzdG9tZXJGQVFab29tIChhbmQgUHVibGljRkFRWm9vbSkuJ30gPQogICAgICAgICdDdXN0b21lckZBUVpvb20gKOWPiuOBsyBQdWJsaWNGQVFab29tKeOBp+ihqOekuuOBleOCjOOCi+OCpOODs+ODqeOCpOODs0hUTUzjga7jg4fjg5Xjgqnjg6vjg4jpq5jjgZUo44OU44Kv44K744Or6KGo6KiYKeOCkuioreWumic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBBZ2VudEZBUVpvb20uJ30gPQogICAgICAgICdBZ2VudEZBUVpvb23jgafooajnpLrjgZXjgozjgovjgqTjg7Pjg6njgqTjg7NIVE1M44Gu5pyA5aSn44Gu6auY44GVKOODlOOCr+OCu+ODq+ihqOiomCnjgpLoqK3lrponOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBtYXhpbXVtIGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gQ3VzdG9tZXJGQVFab29tIChhbmQgUHVibGljRkFRWm9vbSkuJ30gPQogICAgICAgICdDdXN0b21lckZBUVpvb20gKOWPiuOBsyBQdWJsaWNGQVFab29tKeOBp+ihqOekuuOBleOCjOOCi+OCpOODs+ODqeOCpOODs0hUTUzjga7mnIDlpKfjga7pq5jjgZUo44OU44Kv44K744Or6KGo6KiYKeOCkuioreWumic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93ICJJbnNlcnQgRkFRIExpbmsiIEJ1dHRvbiBpbiBBZ2VudEZBUVpvb21TbWFsbCBmb3IgcHVibGljIEZBUSBBcnRpY2xlcy4nfSA9CiAgICAgICAgJ1wnQWdlbnRGQVFab29tU21hbGxcJ+OBruioreWumuOAguWFrOmWi+eUu+mdouOBq+OBiuOBhOOBpuOAjOODquODs+OCr+OCkuaMv+WFpeOBmeOCi+OAjeODnOOCv+ODs+OCkuihqOekuuOBmeOCiy/ooajnpLrjgZfjgarjgYQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyAiSW5zZXJ0IEZBUSBUZXh0ICYgTGluayIgLyAiSW5zZXJ0IEZ1bGwgRkFRICYgTGluayIgQnV0dG9uIGluIEFnZW50RkFRWm9vbVNtYWxsIGZvciBwdWJsaWMgRkFRIEFydGljbGVzLid9ID0KICAgICAgICAn5YWs6ZaL44GV44KM44GfRkFR6KiY5LqL44GuQWdlbnRGQVFab29tU21hbGzjgasiRkFR44Gu44OG44Kt44K544OI44CB44GK44KI44Gz44Oq44Oz44Kv44KS5oy/5YWlIiAvICJGQVHjga7jgZnjgbnjgabjgIHjgYrjgojjgbPjg6rjg7Pjgq/jgpLmjL/lhaUiIOODnOOCv+ODs+OCkuihqOekuuOBmeOCiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93ICJJbnNlcnQgRkFRIFRleHQiIC8gIkluc2VydCBGdWxsIEZBUSIgQnV0dG9uIGluIEFnZW50RkFRWm9vbVNtYWxsLid9ID0KICAgICAgICAnQWdlbnRGQVFab29tU21hbGzjgasiRkFR44Gu44OG44Kt44K544OI44KS5oy/5YWlIiAvICJGQVHjga7jgZnjgbnjgabjgpLmjL/lhaUi44Oc44K/44Oz44KS6KGo56S644GZ44KLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgRkFRIEFydGljbGUgd2l0aCBIVE1MLid9ID0gJ+iomOS6i+OBp0hUTUzjgr/jgrDjgpLooajnpLrjgZnjgosv6KGo56S644GX44Gq44GEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgRkFRIHBhdGggeWVzL25vLid9ID0gJ+iomOS6i+OBruODkeOCueOCkuihqOekuuOBmeOCiy/ooajnpLrjgZfjgarjgYQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBpbnZhbGlkIGl0ZW1zIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfmi4XlvZPogIVXZWLjgqTjg7Pjgr/jg7zjg5XjgqfjgqTjgrnjga4gRkFRIOOCqOOCr+OCueODl+ODreODvOODqeODvOOBrue1kOaenOOBq+eEoeWKueOBqumgheebruOCkuihqOekuuOBl+OBvuOBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGl0ZW1zIG9mIHN1YmNhdGVnb3JpZXMuJ30gPSAn44K144OW44Kr44OG44K044Oq44O844Gu44OI44OU44OD44Kv44KS6KGo56S644GZ44KLL+ihqOekuuOBl+OBquOBhCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGxhc3QgY2hhbmdlIGl0ZW1zIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICfmnIDmlrDjga7lpInmm7TjgpLooajnpLrjgZnjgovnlLvpnaLvvIjmi4XlvZPogIXnlKgv6aGn5a6i55SoL+WFrOmWi++8ieOCkuWumue+qSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGxhc3QgY3JlYXRlZCBpdGVtcyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAn5pyA5paw44Gu5paw6KaP5L2c5oiQ44KS6KGo56S644GZ44KL55S76Z2i77yI5ouF5b2T6ICF55SoL+mhp+WuoueUqC/lhazplovvvInjgpLlrprnvqknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyByZWxhdGVkIGFydGljbGVzIG9uIHNlcnZpY2UgY2hhbmdlIGV2ZW4gd2l0aCBlbXB0eSBzdWJqZWN0IGFuZCBib2R5Lid9ID0KICAgICAgICAn5Lu25ZCN44Go5pys5paH44GM56m644Gu5aC05ZCI44Gn44KC44CB44K144O844OT44K55aSJ5pu044Gr6Zai44GZ44KL6Zai6YCj6KiY5LqL44KS6KGo56S644GX44G+44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgdGhlIHN0YXJzIGZvciB0aGUgYXJ0aWNsZXMgd2l0aCBhIHJhdGluZyBlcXVhbCBvciBncmVhdGVyIGxpa2UgdGhlIGRlZmluZWQgdmFsdWUgKHNldCB2YWx1ZSBcJzBcJyB0byBkZWFjdGl2YXRlIHRoZSBvdXRwdXQpLid9ID0KICAgICAgICAn5a6a576p44GV44KM44Gf5YCk5Lul5LiK44Gu6KmV5L6h44KS5oyB44Gk6KiY5LqL44Gr5pif44KS6KGo56S644GX44G+44GZICjlh7rlipvjgpLnhKHlirnjgavjgZnjgovjgavjga/lgKTjgpIgXCcwXCcg44Gr6Kit5a6a44GX44G+44GZKeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHRvcCAxMCBpdGVtcyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAn44OI44OD44OXMTDjgpLooajnpLrjgZnjgovnlLvpnaLvvIjmi4XlvZPogIXnlKgv6aGn5a6i55SoL+WFrOmWi++8ieOCkuWumue+qSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHZvdGluZyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAn6KmV5L6h44KS6KGo56S644GZ44KL55S76Z2i77yI5ouF5b2T6ICF55SoL+mhp+WuoueUqC/lhazplovvvInjgpLlrprnvqknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSBGQVEgd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgem9vbSB2aWV3IG9mIHN1Y2ggRkFRIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfmi4XlvZPogIXjgqTjg7Pjgr/jg5Xjgqfjg7zjgrnjgarjganjga7jgrrjg7zjg6Djg7vjg5Pjg6Xjg7zjgafjgIFGQVHjgpLku5bjga7jgqrjg5bjgrjjgqfjgq/jg4jjgajjg6rjg7Pjgq/jgZXjgZvjgovjg6rjg7Pjgq/jgpLjg6Hjg4vjg6Xjg7zjgavooajnpLrjgZfjgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIHRvIGRlbGV0ZSBhIEZBUSBpbiBpdHMgem9vbSB2aWV3IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfmi4XlvZPogIXjgqTjg7Pjgr/jg7zjg5XjgqfjgqTjgrnjga7jgrrjg7zjg6Djg5Pjg6Xjg7zjgadGQVHliYrpmaTjga7jg6rjg7Pjgq/jgpLooajnpLrjgZnjgovjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIEZBUSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfmi4XlvZPogIXjgqTjg7Pjgr/jg7zjg5XjgqfjgqTjgrnjga7jgrrjg7zjg6Djg5Pjg6Xjg7zjgadGQVHjga7lsaXmrbTjga7jg6rjg7Pjgq/jgpLooajnpLrjgZnjgovjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSBGQVEgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+aLheW9k+iAheOCpOODs+OCv+ODvOODleOCp+OCpOOCueOBruOCuuODvOODoOODk+ODpeODvOOBp0ZBUee3qOmbhuOBruODquODs+OCr+OCkuihqOekuuOBmeOCi+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZ28gYmFjayBpbiB0aGUgRkFRIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5ouF5b2T6ICF44Kk44Oz44K/44O844OV44Kn44Kk44K544Gu44K644O844Og44OT44Ol44O844Gn44CM5oi744KL44CN44Gu44Oq44Oz44Kv44KS6KGo56S644GZ44KL44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIEZBUSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5ouF5b2T6ICF44Kk44Oz44K/44O844OV44Kn44Kk44K544Gu44K644O844Og44OT44Ol44O844GnRkFR44KS5Y2w5Yi344Oq44Oz44Kv44KS6KGo56S644GZ44KL44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NvbHV0aW9uJ30gPSAn6Kej5rG6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N5bXB0b20nfSA9ICfnl4fnirYnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGV4dCBPbmx5J30gPSAn44OG44Kt44K544OI44Gu44G/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBkZWZhdWx0IGxhbmd1YWdlcyBmb3IgdGhlIHJlbGF0ZWQgRkFRIGFydGljbGVzLid9ID0gJ+mWoumAo+OBmeOCiyBGQVEg6KiY5LqL44Gu44OH44OV44Kp44Or44OI44Gu6KiA6Kqe44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIEZBUSwgZS5nLiBGQVEjLCBLQiMsIE15RkFRIy4gVGhlIGRlZmF1bHQgaXMgRkFRIy4nfSA9CiAgICAgICAgJ0ZBUeeUqOOBruitmOWIpeWtkCDkvosuIEZBUSMsIEtCIywgTXlGQVEjLiDjg4fjg5Xjgqnjg6vjg4jjgafjga8gRkFRIyDjgajjgarjgaPjgabjgYTjgb7jgZknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBzZXR0aW5nIGRlZmluZXMgdGhhdCBhIFwnRkFRXCcgb2JqZWN0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciBcJ0ZBUVwnIG9iamVjdHMgdXNpbmcgdGhlIFwnTm9ybWFsXCcgbGluayB0eXBlLid9ID0KICAgICAgICAn4oCYTm9ybWFs4oCZ44Oq44Oz44Kv44O744K/44Kk44OX44KS5L2/55So44GX44Gm44CB4oCYRkFR4oCZ44Kq44OW44K444Kn44Kv44OI44GM5LuW44Gu4oCYRkFR4oCZ44Kq44OW44K444Kn44Kv44OI44Go44Oq44Oz44Kv44GV44KM44KL44KI44GG44Gr44CB5a6a576p44GX44G+44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBkZWZpbmVzIHRoYXQgYSBcJ0ZBUVwnIG9iamVjdCBjYW4gYmUgbGlua2VkIHdpdGggb3RoZXIgXCdGQVFcJyBvYmplY3RzIHVzaW5nIHRoZSBcJ1BhcmVudENoaWxkXCcgbGluayB0eXBlLid9ID0KICAgICAgICAn4oCYUGFyZW50Q2hpbGTigJnjg6rjg7Pjgq/jg7vjgr/jgqTjg5fjgpLkvb/nlKjjgZfjgabjgIHigJhGQVHigJnjgqrjg5bjgrjjgqfjgq/jg4jjgYzku5bjga7igJhGQVHigJnjgqrjg5bjgrjjgqfjgq/jg4jjgajjg6rjg7Pjgq/jgZXjgozjgovjgojjgYbjgavjgIHlrprnvqnjgZfjgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBzZXR0aW5nIGRlZmluZXMgdGhhdCBhIFwnRkFRXCcgb2JqZWN0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciBcJ1RpY2tldFwnIG9iamVjdHMgdXNpbmcgdGhlIFwnTm9ybWFsXCcgbGluayB0eXBlLid9ID0KICAgICAgICAn4oCYTm9ybWFs4oCZ44Oq44Oz44Kv44O744K/44Kk44OX44KS5L2/55So44GX44Gm44CB4oCYRkFR4oCZ44Kq44OW44K444Kn44Kv44OI44GM5LuW44Gu4oCYVGlja2V04oCZ44Kq44OW44K444Kn44Kv44OI44Go44Oq44Oz44Kv44GV44KM44KL44KI44GG44Gr44CB5a6a576p44GX44G+44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBkZWZpbmVzIHRoYXQgYSBcJ0ZBUVwnIG9iamVjdCBjYW4gYmUgbGlua2VkIHdpdGggb3RoZXIgXCdUaWNrZXRcJyBvYmplY3RzIHVzaW5nIHRoZSBcJ1BhcmVudENoaWxkXCcgbGluayB0eXBlLid9ID0KICAgICAgICAn4oCYUGFyZW50Q2hpbGTigJnjg6rjg7Pjgq/jg7vjgr/jgqTjg5fjgpLkvb/nlKjjgZfjgabjgIHigJhGQVHigJnjgqrjg5bjgrjjgqfjgq/jg4jjgYzku5bjga7igJhUaWNrZXTigJnjgqrjg5bjgrjjgqfjgq/jg4jjgajjg6rjg7Pjgq/jgZXjgozjgovjgojjgYbjgavjgIHlrprnvqnjgZfjgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IGJvZHkgZm9yIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlLid9ID0gJ0ZBUeaJv+iqjeODgeOCseODg+ODiOeUqOOAgOODgeOCseODg+ODiOacrOaWhyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgc3ViamVjdCBmb3IgYXBwcm92YWwgb2YgRkFRIGFydGljbGUuIFBlcm1pdHRlZCBub3RpZmljYXRpb24gdGFncyBhcmUgPE9UT0JPX0ZBUV9OVU1CRVI+LCA8T1RPQk9fRkFRX0NBVEVHT1JZSUQ+LCA8T1RPQk9fRkFRX0lURU1JRD4+IDxPVE9CT19GQVFfVElUTEU+IGFuZCA8T1RPQk9fRkFRX1NUQVRFSUQ+Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rvb2xiYXIgSXRlbSBmb3IgYSBzaG9ydGN1dC4nfSA9ICfjgrfjg6fjg7zjg4jjgqvjg4Pjg4jjga7jgZ/jgoHjga7jg4Tjg7zjg6vjg5Djg7zjg7vjgqLjgqTjg4bjg6DjgafjgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZXh0ZXJuYWwgKGN1c3RvbWVyKSd9ID0gJ+WklumDqCAo6aGn5a6iKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpbnRlcm5hbCAoYWdlbnQpJ30gPSAn5YaF6YOoICjmi4XlvZPogIUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3B1YmxpYyAoYWxsKSd9ID0gJ+WFrOmWiyAo5YWo5ZOhKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwdWJsaWMgKHB1YmxpYyknfSA9ICflhazplovjgIAo44OR44OW44Oq44OD44KvKSc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ05vJywKICAgICdPaycsCiAgICAnU2V0dGluZ3MnLAogICAgJ1N1Ym1pdCcsCiAgICAnVGhpcyBtaWdodCBiZSBoZWxwZnVsJywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==</File>
        <File Location="Kernel/Language/ms_FAQ.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6Om1zX0ZBUTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRQWRkCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIEFydGljbGUnfSA9ICdUYW1iYWggYXJ0aWtlbCBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnS2V5d29yZHMnfSA9ICdLYXRhIGt1bmNpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgY2F0ZWdvcnkgaXMgcmVxdWlyZWQuJ30gPSAnS2F0ZWdvcmkgZGlwZXJsdWthbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwcm92YWwnfSA9ICdQZW5nZXNhaGFuJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUNhdGVnb3J5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQ2F0ZWdvcnkgTWFuYWdlbWVudCd9ID0gJ1Blbmd1cnVzYW4gS2F0ZWdvcmkgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBGQVEgQ2F0ZWdvcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBGQVEgQ2F0ZWdvcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGNhdGVnb3J5J30gPSAnVGFtYmFoIGthdGVnb3JpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRlZ29yeSd9ID0gJ1RhbWJhaCBrYXRlZ29yaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENhdGVnb3J5J30gPSAnQXVkaXQgS2F0ZWdvcmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3ViY2F0ZWdvcnkgb2YnfSA9ICdTdWIta2F0ZWdvcmkgZGFyaXBhZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhdCBsZWFzdCBvbmUgcGVybWlzc2lvbiBncm91cC4nfSA9ICdTaWxhIHBpbGloIHNla3VyYW5nLWt1cmFuZ255YSBzYXR1IHBlcm1pbnRhYW4ga3VtcHVsYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGdyb3VwcyB0aGF0IGNhbiBhY2Nlc3MgYXJ0aWNsZXMgaW4gdGhpcyBjYXRlZ29yeS4nfSA9ICdLdW1wdWxhbiBlamVuIGJvbGVoIG1lbmdha3NlcyBhcnRpa2VsIGRhbGFtIGthdGVnb3JpIGluaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2lsbCBiZSBzaG93biBhcyBjb21tZW50IGluIEV4cGxvcmVyLid9ID0gJ0FrYW4gZGlwYXBhcmthbiBzZWJhZ2FpIGtvbWVuIGRhbGFtIEV4cGxvcmVyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY2F0ZWdvcnk/J30gPSAnQWRha2FoIGFuZGEgaW5naW4gbWVtYWRhbSBrYXRlZ29yaSBpbmk/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gbm90IGRlbGV0ZSB0aGlzIGNhdGVnb3J5LiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBGQVEgYXJ0aWNsZSBhbmQvb3IgaXMgcGFyZW50IG9mIGF0IGxlYXN0IG9uZSBvdGhlciBjYXRlZ29yeSd9ID0KICAgICAgICAnQW5kYSB0aWRhayBib2xlaCBtZW1hZGFtIGthdGVnb3JpIGluaS4gSWEgZGlndW5ha2FuIGRhbGFtIHNla3VyYW5nLWt1cmFuZ255YSBzYXR1IGF0aWtlbCBGQVEgZGFuL2F0YXUgYWRhbGFoIGlidWJhcGEga2VwYWRhIHNla3VyYW5nLWt1cmFuZ255YSBzYXR1IGthdGVnb3JpIGxhaW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY2F0ZWdvcnkgaXMgdXNlZCBpbiB0aGUgZm9sbG93aW5nIEZBUSBhcnRpY2xlKHMpJ30gPSAnS2F0ZWdvcmkgaW5pIGRpZ3VuYWthbiBkYWxhbSBhdGlrZXQgRkFRIGJlcmlrdXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBjYXRlZ29yeSBpcyBwYXJlbnQgb2YgdGhlIGZvbGxvd2luZyBzdWJjYXRlZ29yaWVzJ30gPSAnS2F0ZWdvcmkgaW5pIGFkYWxhaCBpYnViYXBhIGtlcGFkYSBzdWIta2F0ZWdvcmkgYmVyaWt1dCc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFEZWxldGUKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBGQVEgYXJ0aWNsZT8nfSA9ICdBZGFrYWggYW5kYSBpbmdpbiBtZW1hZGFtIGFydGlrZWwgRkFRIGluaT8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRJ30gPSAnRkFRJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUV4cGxvcmVyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgRXhwbG9yZXInfSA9ICdGQVEtRXhwbG9yZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVpY2sgU2VhcmNoJ30gPSAnQ2FyaWFuIFBhbnRhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXaWxkY2FyZHMgYXJlIGFsbG93ZWQuJ30gPSAnV2lsZGNhcmRzIGFkYWxhaCBkaWJlbmFya2FuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZHZhbmNlZCBTZWFyY2gnfSA9ICdDYXJpYW4gVGVycGVyaW5jaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWJjYXRlZ29yaWVzJ30gPSAnU3ViLWthdGVnb3JpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlcyd9ID0gJ0FydGlrZXQgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHN1YmNhdGVnb3JpZXMgZm91bmQuJ30gPSAnVGlhZGEgc3ViLWthdGVnb3JpIGRpdGVtdWkuJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUhpc3RvcnkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YnfSA9ICdTZWphcmFoIHVudHVrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgQ29udGVudCd9ID0gJ0thbmR1bmdhbiBzZWphcmFoJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZXRpbWUnfSA9ICdDaXB0YSBtYXNhJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUpvdXJuYWxPdmVydmlld1NtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBGQVEgSm91cm5hbCBkYXRhIGZvdW5kLid9ID0gJ1RpYWRhIGRhdGEgSnVybmFsIEZBUSBkaXRlbXVpLic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFMYW5ndWFnZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIExhbmd1YWdlIE1hbmFnZW1lbnQnfSA9ICdQZW5ndXJ1c2FuIEJhaGFzYSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEZBUSBMYW5ndWFnZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEZBUSBMYW5ndWFnZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2UgdGhpcyBmZWF0dXJlIGlmIHlvdSB3YW50IHRvIHdvcmsgd2l0aCBtdWx0aXBsZSBsYW5ndWFnZXMuJ30gPQogICAgICAgICdndW5ha2FuIGNpcmkgaW5pIGppa2EgYW5kYSBtYWh1IHVudHVrIGJla2VyamEgZGVuZ2FuIHBlbGJhZ2FpIGJhaGFzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbGFuZ3VhZ2UnfSA9ICdUYW1iYWggYmFoYXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBMYW5ndWFnZSd9ID0gJ1RhbWJhaCBiYWhhc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBMYW5ndWFnZSd9ID0gJ0F1ZGl0IGJhaGFzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBsYW5ndWFnZS4gSXQgaXMgdXNlZCBpbiBhdCBsZWFzdCBvbmUgRkFRIGFydGljbGUhJ30gPQogICAgICAgICdBbmRhIHRpZGFrIGJvbGVoIG1lbWFkYW0gYmFoYXNhIGluaS4gSWEgZGlndW5ha2FuIHNla3VyYW5nLWt1cmFuZ255YSBzYXR1IGFydGlrZWwgRkFRISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGxhbmd1YWdlIGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBGQVEgQXJ0aWNsZShzKSd9ID0gJ0JhaGFzYSBpbmkgZGlndW5ha2FuIGRhbGFtIEFydGlrZWwgRkFRIHlhbmcgYmVyaWt1dCc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFPdmVydmlld05hdkJhcgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29udGV4dCBTZXR0aW5ncyd9ID0gJ0F0dXJhbiBrb250ZWtzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBhcnRpY2xlcyBwZXIgcGFnZSd9ID0gJ0FydGlrZWwgRkFRIHBlciBtdWthIHN1cmF0JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUU92ZXJ2aWV3U21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEZBUSBkYXRhIGZvdW5kLid9ID0gJ1RpYWRhIGRhdGEgRkFRIGRpdGVtdWkuJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVJlbGF0ZWRBcnRpY2xlcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnb3V0IG9mIDUnfSA9ICdkYXJpcGFkYSA1JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVNlYXJjaAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnS2V5d29yZCd9ID0gJ0thdGEga3VuY2knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSAoZS4gZy4gRXF1YWxzIDEwIG9yIEdyZWF0ZXJUaGFuIDYwKSd9ID0gJ1VuZGkgKGNvbnRvaDogQmVyc2FtYWFuIDEwIGF0YXUgbGViaWggYmVzYXIgZGFyaXBhZGEgNjApJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGUgKGUuIGcuIEVxdWFscyAyNSUgb3IgR3JlYXRlclRoYW4gNzUlKSd9ID0gJ0thZGFyIChjb250b2g6IEJlcnNhbWFhbiAyNSUgYXRhdSBsZWJpaCBiZXNhciBkYXJpcGFkYSA3NSUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FwcHJvdmVkJ30gPSAnRGlsdWx1c2thbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQgYnknfSA9ICdUZXJha2hpciBkaXViYWggb2xlaCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDcmVhdGUgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJ1dha3R1IGNpcHRhIGFydGlrZWwgRkFRIChzZWJlbHVtL3NlbGVwYXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENyZWF0ZSBUaW1lIChiZXR3ZWVuKSd9ID0gJ1dha3R1IGNpcHRhIGFydGlrZWwgRkFRIChkaSBhbnRhcmEpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENoYW5nZSBUaW1lIChiZWZvcmUvYWZ0ZXIpJ30gPSAnV2FrdHUgcGVydWJhaGFuIGFydGlrZWwgRkFRIChzZWJlbHVtL3NlbGVwYXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENoYW5nZSBUaW1lIChiZXR3ZWVuKSd9ID0gJ1dha3R1IHBlcnViYWhhbiBhcnRpa2VsIEZBUSAoZGkgYW50YXJhKSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFTZWFyY2hPcGVuU2VhcmNoRGVzY3JpcHRpb25GdWxsdGV4dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRRnVsbHRleHQnfSA9ICdGQVFUZWtzUGVudWgnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRU2VhcmNoU21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBTZWFyY2gnfSA9ICdDYXJpYW4gRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2ZpbGUgU2VsZWN0aW9uJ30gPSAnUGlsaWhhbiBwcm9maWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSd9ID0gJ1VuZGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdm90ZSBzZXR0aW5ncyd9ID0gJ1RpYWRhIHRldGFwYW4gdW5kaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpYyB2b3Rlcyd9ID0gJ1VuZGkgc3Blc2lmaWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZS4gZy4gRXF1YWxzIDEwIG9yIEdyZWF0ZXJUaGFuIDYwJ30gPSAnY29udG9oOiBTYW1hIGRlbmdhbiAxMCBhdGF1IExlYmloIGJlc2FyIGRhcmlwYWRhIDYwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGUnfSA9ICdLYWRhcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyByYXRlIHNldHRpbmdzJ30gPSAnVGlhZGEgdGV0YXBhbiBrYWRhcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpYyByYXRlJ30gPSAnS2FkYXIgc3Blc2lmaWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZS4gZy4gRXF1YWxzIDI1JSBvciBHcmVhdGVyVGhhbiA3NSUnfSA9ICdjb250b2g6IFNhbWEgZGVuZ2FuIDI1JSBhdGF1IGxlYmloIGJlc2FyIGRhcmlwYWRhIDc1JSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDcmVhdGUgVGltZSd9ID0gJ1dha3R1IGNpcHRhIGFydGlrZWwgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENoYW5nZSBUaW1lJ30gPSAnV2FrdHUgcGVydWJhaGFuIGFydGlrZWwgRkFRJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVpvb20KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJbmZvcm1hdGlvbid9ID0gJ0luZm9ybWFzaSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0aW5nJ30gPSAnTWVuaWxhaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWb3Rlcyd9ID0gJ1VuZGlhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB2b3RlcyBmb3VuZCEnfSA9ICdUaWFkYSB1bmRpYW4gZGl0ZW11aSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdm90ZXMgZm91bmQhIEJlIHRoZSBmaXJzdCBvbmUgdG8gcmF0ZSB0aGlzIEZBUSBhcnRpY2xlLid9ID0gJ1RpYWRhIHVuZGlhbiBkaXRlbXVpISBKYWRpbGFoIG9yYW5nIHBlcnRhbWEgbWVuaWxhaSBhcml0bCBGQVEgaW5pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEb3dubG9hZCBBdHRhY2htZW50J30gPSAnTXVhdCB0dXJ1biBsYW1waXJhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyBvcGVuIGxpbmtzIGluIHRoZSBmb2xsb3dpbmcgZGVzY3JpcHRpb24gYmxvY2tzLCB5b3UgbWlnaHQgbmVlZCB0byBwcmVzcyBDdHJsIG9yIENtZCBvciBTaGlmdCBrZXkgd2hpbGUgY2xpY2tpbmcgdGhlIGxpbmsgKGRlcGVuZGluZyBvbiB5b3VyIGJyb3dzZXIgYW5kIE9TKS4nfSA9CiAgICAgICAgJ1VudHVrIG1lbWJ1a2EgcGF1dGFuIGRhbGFtIGtldGVyYW5nYW4gYmxvayBiZXJpa3V0LCBhbmRhIG11bmdraW4gcGVybHUgbWVuZWthbiBrZWt1bmNpIEN0cmwgYXRhdSBDbWQgYXRhdSBTaGlmdCBzZW1hc2EgbWVuZWthbiBwYXV0YW4gKGJlcmdhbnR1bmcga2VwYWRhIHBlbGF5YXIgZGFuIHNpc3RlbSBvcGVyYXNpIGFuZGEpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3cgaGVscGZ1bCB3YXMgdGhpcyBhcnRpY2xlPyBQbGVhc2UgZ2l2ZSB1cyB5b3VyIHJhdGluZyBhbmQgaGVscCB0byBpbXByb3ZlIHRoZSBGQVEgRGF0YWJhc2UuIFRoYW5rIFlvdSEnfSA9CiAgICAgICAgJ0JlcmFwYSBiYW55YWsgYXJpa2VsIGluaSBtZW1iYW50dT8gU2lsYSBiZXJpIGthbWkgcGVuaWxhaWFuIGFuZGEgZGFuIGJhbnR1IHVudHVrIG1lbmluZ2thdGthbiBwYW5na2FsYW4gZGF0YSBGQVEuIFRlcmltYSBLYXNpaCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnbm90IGhlbHBmdWwnfSA9ICdUaWRhayBtZW1iYW50dSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd2ZXJ5IGhlbHBmdWwnfSA9ICdTYW5nYXQgbWVtYmFudHUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRWm9vbVNtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIHRpdGxlIHRvIGFydGljbGUgc3ViamVjdCd9ID0gJ1RhbWJhaCB0YWp1ayBGQVEgcGFkYSBzdWJqZWsgYXJ0aWtlbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRkFRIFRleHQnfSA9ICdNYXN1ayBUZWtzIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRnVsbCBGQVEnfSA9ICdNYXN1a2thbiBGQVEgcGVudWgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZBUSBMaW5rJ30gPSAnTWFzdWsgcGF1dGFuIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRkFRIFRleHQgJiBMaW5rJ30gPSAnTWFzdWsgVGVrcyBGQVEgJiBQYXV0YW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZ1bGwgRkFRICYgTGluayd9ID0gJ01hc3Vra2FuIEZBUSBwZW51aCBkYW4gcGF1dGFuJzsKCiAgICAjIFRlbXBsYXRlOiBDdXN0b21lckZBUUV4cGxvcmVyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXRlc3QgdXBkYXRlZCBGQVEgYXJ0aWNsZXMnfSA9ICdLZW1hc2tpbmkgQXJ0aWtlbCBGQVEgdGVyYmFydSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBGQVEgYXJ0aWNsZXMgZm91bmQuJ30gPSAnVGlhZGEgYXJ0aWtlbCBGQVEgZGlqdW1wYWkuJzsKCiAgICAjIFRlbXBsYXRlOiBDdXN0b21lckZBUVJlbGF0ZWRBcnRpY2xlcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtaWdodCBiZSBoZWxwZnVsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvdW5kIG5vIGhlbHBmdWwgcmVzb3VyY2VzIGZvciB0aGUgc3ViamVjdCBhbmQgdGV4dC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZSBhIHN1YmplY3Qgb3IgdGV4dCB0byBnZXQgYSBsaXN0IG9mIGhlbHBmdWwgcmVzb3VyY2VzLid9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQ3VzdG9tZXJGQVFTZWFyY2gKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bGx0ZXh0IHNlYXJjaCBpbiBGQVEgYXJ0aWNsZXMgKGUuIGcuICJKb2huKm4iIG9yICJXaWxsKiIpJ30gPSAnQ2FyaWFuIFRla3MgcGVudWggZGFsYW0gYXJ0aWtlbCBGQVEgKGNvbnRvaC4gIkpvaG4qbiIgb3IgIldpbGwqIiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSByZXN0cmljdGlvbnMnfSA9ICdTZWthdGFuIHVuZGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSBGQVEgYXJ0aWNsZXMgd2l0aCB2b3Rlcy4uLid9ID0gJ0hhbnlhIGFydGlrZWwgRkFRIGJlcnNlcnRhIHVuZGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0ZSByZXN0cmljdGlvbnMnfSA9ICdTZWthdGFuIGthZGFyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgRkFRIGFydGljbGVzIHdpdGggcmF0ZS4uLid9ID0gJ0hhbnlhIGFydGlrZWwgRkFRIGJlcnNlcnRhIGthZGFyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVzdHJpY3Rpb25zJ30gPSAnS2VrYW5nYW4gbWFzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IEZBUSBhcnRpY2xlcyBjcmVhdGVkJ30gPSAnSGFueWEgYXJ0aWtlbCBGQVEgeWFuZyBkaWNpcHRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgRkFRIGFydGljbGVzIGNyZWF0ZWQgYmV0d2Vlbid9ID0gJ0hhbnlhIGFydGlrZWwgRkFRIHlhbmcgZGljaXB0YSBkaSBhbnRhcmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoLVByb2ZpbGUgYXMgVGVtcGxhdGU/J30gPSAnQ2FyaWFuIGJlcnByb2ZpbCBzZWJhZ2FpIHRlbXBsYXQ/JzsKCiAgICAjIFRlbXBsYXRlOiBDdXN0b21lckZBUVpvb20KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FydGljbGUgTnVtYmVyJ30gPSAnTm9tYm9yIEFydGlrZWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIGZvciBhcnRpY2xlcyB3aXRoIGtleXdvcmQnfSA9ICdDYXJpYW4gdW50dWsgYXJ0aWtlbCBkZW5nYW4ga2VrdW5jaSBwZXJrYXRhYW4nOwoKICAgICMgVGVtcGxhdGU6IFB1YmxpY0ZBUVNlYXJjaE9wZW5TZWFyY2hEZXNjcmlwdGlvbkZBUU51bWJlcgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljJ30gPSAnVW11bSc7CgogICAgIyBUZW1wbGF0ZTogUHVibGljRkFRU2VhcmNoUmVzdWx0U2hvcnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0JhY2sgdG8gRkFRIEV4cGxvcmVyJ30gPSAnQmFsaWsga2VwYWRhIHBlbmVyb2thIEZBUSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFBZGQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkIHJ3IHBlcm1pc3Npb24hJ30gPSAnQW5kYSBwZXJsdWthbiBrZWl6aW5hbiBydyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY2F0ZWdvcmllcyBmb3VuZCB3aGVyZSB1c2VyIGhhcyByZWFkL3dyaXRlIHBlcm1pc3Npb25zISd9ID0gJ1RpYWRhIGthdGVnb3JpIHlhbmcgZGlqdW1wYWkgZGltYW5hIHBlbmdndW5hIHBlcmx1IGFkYSBrZWl6aW5hbiBiYWNhL3R1bGlzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkZWZhdWx0IGxhbmd1YWdlIGZvdW5kIGFuZCBjYW5cJ3QgY3JlYXRlIGEgbmV3IG9uZS4nfSA9ICdUaWFkYSBiYWhhc2EgbGF6aW0geWFuZyBkaWp1bXBhaSBkYW4gdGlkYWsgYm9sZWggbWVtYnVhdCB5YW5nIGJhcnUuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUNhdGVnb3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIENhdGVnb3J5SUQhJ30gPSAnUGVybHVrYW4gQ2F0ZWdvcnlJRCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRlZ29yeSBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAnS2F0ZWdvcmkgcGVybHUgbWVtcHVueWFpIG5hbWEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY2F0ZWdvcnkgYWxyZWFkeSBleGlzdHMnfSA9ICdrYXRlZ29yaSBpbmkgc3VkYWggd3VqdWQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY2F0ZWdvcnkgYWxyZWFkeSBleGlzdHMhJ30gPSAnS2F0ZWdvcmkgaW5pIHRlbGFoIHd1anVkISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBDYXRlZ29yeUlEIGlzIGdpdmVuISd9ID0gJ1RpYWRhIENhdGVnb3J5SUQgeWFuZyBkaWJlcmlrYW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGNhdGVnb3J5ICVzISd9ID0gJ1RpZGFrIG1hbXB1IHVudHVrIG1lbWJ1YW5nIGthdGVnb3JpICVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgY2F0ZWdvcnkgdXBkYXRlZCEnfSA9ICdLYXRlZ29yaSBGQVEgZGlrZW1hc2tpbmkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBjYXRlZ29yeSBhZGRlZCEnfSA9ICdrYXRlZ29yaSBGQVEgZGl0YW1iYWghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBDYXRlZ29yeSd9ID0gJ1BhZGFtIGthdGVnb3JpJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gSXRlbUlEIGlzIGdpdmVuISd9ID0gJ1RpYWRhIEl0ZW1JRCBkaWJlcmlrYW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIG5vIHBlcm1pc3Npb24gZm9yIHRoaXMgY2F0ZWdvcnkhJ30gPSAnQW5kYSB0aWRhayBtZW1wdW55YWkga2VpemluYW4gdW50dWsga2F0ZWdvcmkgaW5pISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBGQVEgYXJ0aWNsZSAlcyEnfSA9ICd0aWRhayBtYW1wdSB1bnR1ayBtZW1idWFuZyBhcnRpa2VsIEZBUSAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRRXhwbG9yZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBDYXRlZ29yeUlEICVzIGlzIGludmFsaWQuJ30gPSAnQ2F0ZWdvcnlJRCAlcyBpdHUgdGlkYWsgc2FoLic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBJdGVtSUQgaXMgZ2l2ZW4hJ30gPSAnVGlkYWsgYm9sZWggbWVudW5qdWtrYW4gc2VqYXJhaCwgc2ViYWdhaSB0aWFkYSBJdGVtSUQgeWFuZyBkaWJlcmlrYW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBIaXN0b3J5J30gPSAnU2VqYXJhaCBGQVEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRSm91cm5hbC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEpvdXJuYWwnfSA9ICdqdXJuYWwgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgY29uZmlnIG9wdGlvbiBGQVE6OkZyb250ZW5kOjpPdmVydmlldyd9ID0gJ1Blcmx1a2FuIHBpbGloYW4gRkFROjpGcm9udGVuZDo6T3ZlcnZpZXcgY29uZmlnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZyBvcHRpb24gRkFROjpGcm9udGVuZDo6T3ZlcnZpZXcgbmVlZHMgdG8gYmUgYSBIQVNIIHJlZiEnfSA9CiAgICAgICAgJ3BpbGloYW4gRkFROjpGcm9udGVuZDo6T3ZlcnZpZXcgY29uZmlnIG1lbWVybHVrYW4gdW50dWsgbWVuamFkaSBzdWF0dSBydWogSEFTSCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY29uZmlnIG9wdGlvbiBmb3VuZCBmb3IgdGhlIHZpZXcgIiVzIiEnfSA9ICdUaWFkYSBwaWxpaGFuIGNvbmZpZyBkaWp1bXBhaSB1bnR1ayBwYW5kYW5nYW4gIiVzIiEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRTGFuZ3VhZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIExhbmd1YWdlSUQgaXMgZ2l2ZW4hJ30gPSAnVGlhZGEgTGFuZ3VhZ2VJRCBkaWJlcmlrYW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBuYW1lIGlzIHJlcXVpcmVkISd9ID0gJ05hbWEgZGlwZXJsdWthbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBsYW5ndWFnZSBhbHJlYWR5IGV4aXN0cyEnfSA9ICdCYWhhc2EgaW5pIHN1ZGFoIHd1anVkISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBsYW5ndWFnZSAlcyEnfSA9ICdUaWRhayBtYW1wdSB1bnR1ayBtZW1idWFuZyBiYWhhc2EgJXMgaXR1ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgbGFuZ3VhZ2UgdXBkYXRlZCEnfSA9ICdCYWhhc2EgRkFRIGRpa2VtYXNraW5pISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgbGFuZ3VhZ2UgYWRkZWQhJ30gPSAnQmFoYXNhIEZBUSBkaXRhbWJhaCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIExhbmd1YWdlICVzJ30gPSAnUGFkYW0gYmFoYXNhICVzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUVByaW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXN1bHQnfSA9ICdLZXB1dHVzYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCB1cGRhdGUnfSA9ICdLZW1hc2tpbmkga2FsaSB0ZXJha2hpcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgRHluYW1pYyBGaWVsZHMnfSA9ICdNZWRhbiBEaW5hbWlrIEZBUSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFSaWNoVGV4dC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gJXMgaXMgZ2l2ZW4hJ30gPSAnVGlhZGEgJXMgZGliZXJpa2FuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgbG9hZCBMYW5ndWFnZU9iamVjdCEnfSA9ICdUaWRhayBib2xlaCBtZW11YXRrYW4gT2JqZWtCYWhhc2EhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gUmVzdWx0ISd9ID0gJ1RpYWRhIEtlcHV0dXNhbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIE51bWJlcid9ID0gJ05vbWJvciBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBDaGFuZ2VkIGJ5J30gPSAnUGVydHVrYXJhbiBBa2hpciBvbGVoJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJdGVtIENyZWF0ZSBUaW1lIChiZWZvcmUvYWZ0ZXIpJ30gPSAnRkFRIEl0ZW0gQ2lwdGEgTWFzYSAoc2ViZWx1bS9zZWxlcGFzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSXRlbSBDcmVhdGUgVGltZSAoYmV0d2VlbiknfSA9ICdGQVEgSXRlbSBDaXB0YSBNYXNhIChkaSBhbnRhcmEpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJdGVtIENoYW5nZSBUaW1lIChiZWZvcmUvYWZ0ZXIpJ30gPSAnRkFRIEl0ZW0gVWJhaCBNYXNhIChzZWJlbHVtL3NlbGVwYXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJdGVtIENoYW5nZSBUaW1lIChiZXR3ZWVuKSd9ID0gJ0ZBUSBJdGVtIFViYWggTWFzYSAoZGkgYW50YXJhKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcXVhbHMnfSA9ICdTYW1hIERlbmdhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmVhdGVyIHRoYW4nfSA9ICdsZWJpaCBCZXNhciBkYXJpcGFkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmVhdGVyIHRoYW4gZXF1YWxzJ30gPSAnbGViaWggQmVzYXIgZGFyaXBhZGEgc2FtYSBkZW5nYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU21hbGxlciB0aGFuJ30gPSAnTGViaWggS2VjaWwgZGFyaXBhZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU21hbGxlciB0aGFuIGVxdWFscyd9ID0gJ0xlYmloIEtlY2lsIGRhcmlwYWRhIHNhbWEgZGVuZ2FuICc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIEZpbGVJRCEnfSA9ICdQZXJsdWthbiBGaWxlSUQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoYW5rcyBmb3IgeW91ciB2b3RlISd9ID0gJ1RlcmltYSBrYXNpaCB1bnR1ayB1bmRpYW4gYW5kYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgYWxyZWFkeSB2b3RlZCEnfSA9ICdBbmQgc3VkYWggbWVuZ3VuZGkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHJhdGUgc2VsZWN0ZWQhJ30gPSAnVGlhZGEga2FkYXIgZGlwaWxpaCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHZvdGluZyBtZWNoYW5pc20gaXMgbm90IGVuYWJsZWQhJ30gPSAnTWVrYW5pc21hIG1lbmd1bmRpIHRpZGFrIGRpYm9sZWhrYW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB2b3RlIHJhdGUgaXMgbm90IGRlZmluZWQhJ30gPSAnS2FkYXIgdW5kaWFuIHRpZGFrIGRpdGFrcmlma2FuISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQ3VzdG9tZXJGQVFQcmludC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgUHJpbnQnfSA9ICdBcnRpa2VsIEZBUSBkaWNldGFrJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9DdXN0b21lckZBUVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBiZXR3ZWVuJ30gPSAnRGljaXB0YSBkaSBhbnRhcmEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0N1c3RvbWVyRkFRWm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBJdGVtSUQhJ30gPSAnUGVybHVrYW4gSXRlbUlEISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvUHVibGljRkFRRXhwbG9yZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlcyAobmV3IGNyZWF0ZWQpJ30gPSAnQXJ0aWtlbCBGQVEgKGJhcnUgZGljaXB0YSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGVzIChyZWNlbnRseSBjaGFuZ2VkKSd9ID0gJ0FydGlrZWwgRkFRIChiYXJ1IGRpdWJhaCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGVzIChUb3AgMTApJ30gPSAnQXJ0aWtlbCBGQVEgKDEwIHRlcmJhaWspJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9QdWJsaWNGQVFSU1MucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFR5cGUgaXMgZ2l2ZW4hJ30gPSAnVGlhZGEgSmVuaXMgZGliZXJpa2FuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlIG11c3QgYmUgZWl0aGVyIExhc3RDcmVhdGUgb3IgTGFzdENoYW5nZSBvciBUb3AxMCEnfSA9ICdKZW5pcyBtZXN0aSBhbnRhcmEgTGFzdENyZWF0ZSBhdGF1IExhc3RDaGFuZ2UgYXRhdSBUb3AxMCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBSU1MgZmlsZSEnfSA9ICdUaWRhayBib2xlaCBtZW5jaXB0YSBmYWlsIFJTUyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9IZWFkZXJNZXRhL0FnZW50RkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoRkFRRnVsbHRleHQpJ30gPSAnJXMgKFRla3NwZW51aEZBUSknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9IZWFkZXJNZXRhL0N1c3RvbWVyRkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAtIEN1c3RvbWVyICglcyknfSA9ICclcyAtIFBlbGFuZ2dhbiAoJXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gQ3VzdG9tZXIgKEZBUUZ1bGx0ZXh0KSd9ID0gJyVzIC0gUGVsYW5nZ2FuIChUZWtzcGVudWhGQVEpJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvSGVhZGVyTWV0YS9QdWJsaWNGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gUHVibGljICglcyknfSA9ICclcyAtIFVtdW0gKCVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAtIFB1YmxpYyAoRkFRRnVsbHRleHQpJ30gPSAnJXMgLSBVbXVtICh0ZWtzcGVudWhGQVEpJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTGF5b3V0L0ZBUS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCByYXRlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGFydGljbGUgaXMgZW1wdHkhJ30gPSAnQXJ0aWtlbCBpbmkga29zb25nISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXRlc3QgY3JlYXRlZCBGQVEgYXJ0aWNsZXMnfSA9ICdNZW5jaXB0YSBhcml0a2VsIEZBUSB0ZXJiYXJ1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvcCAxMCBGQVEgYXJ0aWNsZXMnfSA9ICdBcml0a2VsIEZBUSAxMCB0ZXJiYWlrJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTGlua09iamVjdC9GQVEucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRlbnQgVHlwZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9EeW5hbWljRmllbGQvRHJpdmVyL0ZBUS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IHRoZSBhdHRyaWJ1dGUgd2hpY2ggRkFRcyB3aWxsIGJlIHNlYXJjaGVkIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4dGVybmFsLXNvdXJjZSBrZXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IHRoZSB0eXBlIG9mIGRpc3BsYXknfSA9ICcnOwoKICAgICMgRGF0YWJhc2UgWE1MIC8gU09QTSBEZWZpbml0aW9uOiBGQVEuc29wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW50ZXJuYWwnfSA9ICdkYWxhbWFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2V4dGVybmFsJ30gPSAnbHVhcmFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3B1YmxpYyd9ID0gJ3VtdW0nOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGZpbHRlciBmb3IgSFRNTCBvdXRwdXQgdG8gYWRkIGxpbmtzIGJlaGluZCBhIGRlZmluZWQgc3RyaW5nLiBUaGUgZWxlbWVudCBJbWFnZSBhbGxvd3MgdHdvIGlucHV0IGtpbmRzLiBGaXJzdCB0aGUgbmFtZSBvZiBhbiBpbWFnZSAoZS5nLiBmYXEucG5nKS4gSW4gdGhpcyBjYXNlIHRoZSBPVE9CTyBpbWFnZSBwYXRoIHdpbGwgYmUgdXNlZC4gVGhlIHNlY29uZCBwb3NzaWJpbGl0eSBpcyB0byBpbnNlcnQgdGhlIGxpbmsgdG8gdGhlIGltYWdlLid9ID0KICAgICAgICAnQXNpbmdhbiB1bnR1ayBoYXNpbCBrZWx1YXJhbiB1bnR1ayBtZW5hbWJhaCBwYXV0YW4gZGliZWxha2FuZyBqYXJpbmdhbiBzdHJpbmcuIEVsZW1lbiBnYW1iYXIgZGliZW5hcmthbiBkdWEgaW5wdXQuIHBlcnRhbWEgbmFtYSBnYW1iYXIgdGVyc2VidXQgKGZhcS5wbmcpLiBEYWxhbSBrZXMgaW5pLCBqYWxhbiBnYW1iYXIgT1RPQk8gYWthbiBkaWd1bmFrYW4uIGtlZHVhbnlhIGtlbXVuZ2tpbmFuIGFkYWxhaCB1bnR1ayBtZW1hc3Vra2FuIHBhdXRhbiBwYWRhIGdhbWJhci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEZBUSBhcnRpY2xlJ30gPSAndGFtYmFoIGFydGlrZWwgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NTUyBjb2xvciBmb3IgdGhlIHZvdGluZyByZXN1bHQuJ30gPSAnV2FybmEgQ1NTIHVudHVrIGtlcHV0dXNhbiB1bmRpYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIFRpbWUgVG8gTGVhdmUgZm9yIEZBUSBpdGVtcy4nfSA9ICdXYWt0dSBjYWNoZSB1bnR1ayBtZW5pbmdnYWxrYW4gYmFnaSBpdGVtIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSBNYW5hZ2VtZW50J30gPSAnUGVuZ3VydXNhbiBrYXRlZ29yaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSBNYW5hZ2VtZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgUHJpbnQuJ30gPSAnQ2V0YWthbiBGQVEgUGVsYW5nZ2FuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBSZWxhdGVkIEFydGljbGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBSZWxhdGVkIEFydGljbGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgWm9vbS4nfSA9ICdadW0gRkFRIFBlbGFuZ2dhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgc2VhcmNoLid9ID0gJ2NhcmlhbiBGQVEgcGVsYW5nZ2FuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUS4nfSA9ICdGQVEgUGVsYW5nZ2FuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlY2ltYWwgcGxhY2VzIG9mIHRoZSB2b3RpbmcgcmVzdWx0Lid9ID0gJ1RpdGlrIHBlcnB1bHVoYW4gZGFyaXBhZGEga2VwdXR1c2FuIHVuZGlhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBjYXRlZ29yeSBuYW1lLid9ID0gJ0thdGVnb3JpIG5hbWEgc2VkaWEgYWRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IGxhbmd1YWdlIGZvciBGQVEgYXJ0aWNsZXMgb24gc2luZ2xlIGxhbmd1YWdlIG1vZGUuJ30gPSAnQmFoYXNhIHNlZGlhIGFkYSB1bnR1ayBhcnRpa2VsIEZBUSBwYWRhIHNhdHUgbW9kIGJhaGFzYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBtYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duLid9ID0KICAgICAgICAnU2FpeiBtYWtzaW11bSB0ZXRhcGFuIGF3YWwgZGFyaXBhZGEgdGFqdWsgZGFsYW0gYXJ0aWtlbCBGQVEgdW50dWsgZGl0dW5qdWtrYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgcHJpb3JpdHkgb2YgdGlja2V0cyBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9CiAgICAgICAgJ0tldXRhbWFhbiBzZWRpYSBhZGEgdGlrZXQgdW50dWsgcGVuZ2VzYWhhbiBhcnRpa2VsIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0ZSBmb3IgRkFRIGVudHJ5Lid9ID0gJ0tlYWRhYW4gc2VkaWEgYWRhIHVudHVrIGtlbWFzdWthbiBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdGUgb2YgdGlja2V0cyBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICdLZWFkYWFuIHNlZGlhIGFkYSB0aWtldCB1bnR1ayBwZW5nZXNhaGFuIGRhcmlwYWRhIGFydGlrZWwgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHR5cGUgb2YgdGlja2V0cyBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICdKZW5pcyB0ZXRhcGFuIGF3YWwgdGlrZXQgdW50dWsga2VsdWx1c2FuIGFydGlrZWwgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHZhbHVlIGZvciB0aGUgQWN0aW9uIHBhcmFtZXRlciBmb3IgdGhlIHB1YmxpYyBmcm9udGVuZC4gVGhlIEFjdGlvbiBwYXJhbWV0ZXIgaXMgdXNlZCBpbiB0aGUgc2NyaXB0cyBvZiB0aGUgc3lzdGVtLid9ID0KICAgICAgICAnTmlsYWkgc2VkaWEgYWRhIHVudHVrIHRpbmRha2FuIHBhcmFtZXRlciBrZXBhZGEgZGVwYW5ha2hpciB1bXVtLiBUaW5kYWthbiBwYXJhbWV0ZXIgZGlndW5ha2FuIGRhbGFtIHNrcmlwIHNpc3RlbSB0ZXJzZWJ1dC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIEFjdGlvbnMgd2hlcmUgYSBzZXR0aW5ncyBidXR0b24gaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rZWQgb2JqZWN0cyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gUGxlYXNlIG5vdGUgdGhhdCB0aGVzZSBBY3Rpb25zIG11c3QgaGF2ZSByZWdpc3RlcmVkIHRoZSBmb2xsb3dpbmcgSlMgYW5kIENTUyBmaWxlczogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgYW5kIENvcmUuQWdlbnQuTGlua09iamVjdC5qcy4nfSA9CiAgICAgICAgJ1Rha3JpZmthbiBUaW5kYWthbiBkaW1hbmEgYnV0YW5nIHRldGFwYW4gaXR1IGFkYSBkYWxhbSB3aWRnZXQgb2JqZWsgYmVyc2FtYnVuZyAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBTaWxhIHBhc3Rpa2FuIHlhbmcgVGluZGFrYW4gaW5pIHBlcmx1IGRpZGFmdGFya2FuIHlhbmcgYmVyaWt1dCBmYWlsLWZhaWwgSlMgZGFuIENTUzogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgYW5kIENvcmUuQWdlbnQuTGlua09iamVjdC5qcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIGlmIHRoZSBGQVEgdGl0bGUgc2hvdWxkIGJlIGNvbmNhdGVuYXRlZCB0byBhcnRpY2xlIHN1YmplY3QuJ30gPQogICAgICAgICdUZW50dWthbiBqaWthIHRhanVrIEZBUSBwZXJsdSBkaXJhbmdrYWlrYW4ga2VwYWRhIGFydGlrZWwgc3ViamVrLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBGQVFzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IEZBUSBhdHRyaWJ1dGVzIGFuZCBkeW5hbWljIGZpZWxkcyAoRHluYW1pY0ZpZWxkX05hbWVYKSBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIEZBUSBqb3VybmFsLid9ID0KICAgICAgICAnS2VuYWxwYXN0aSBsaWhhdCBzZW11bGEgbW9kdWwgdW50dWsgcGFwYXIgcGFwYXJhbiBrZWNpbCBkYXJpIEp1cm5hbCBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBGQVEgbGlzdC4nfSA9CiAgICAgICAgJ0tlbmFscGFzdGkgbGloYXQgc2VtdWxhIG1vZHVsIHVudHVrIHBhcGFyIHBhcGFyYW4ga2VjaWwgZGFyaSBzZW5hcmFpIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiBhIEZBUSBzZWFyY2ggb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0tlbmFscGFzdGkgc2lmYXQgc2VkaWEgYWRhIEZBUSBtZW55dXN1biBkYWxhbSBjYXJpYW4gRkFRIGRhcmlwYWRhIGludGVyZmFjZSBlamVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIGEgRkFRIHNlYXJjaCBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnS2VuYWxwYXN0aSBzaWZhdCBzZWRpYSBhZGEgRkFRIG1lbnl1c3VuIGRhbGFtIGNhcmlhbiBGQVEgZGFyaXBhZGEgaW50ZXJmYWNlIHBlbGFuZ2dhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiBhIEZBUSBzZWFyY2ggb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICdLZW5hbHBhc3RpIHNpZmF0IHNlZGlhIGFkYSBGQVEgbWVueXVzdW4gZGFsYW0gY2FyaWFuIEZBUSBkYXJpcGFkYSBpbnRlcmZhY2UgdW11bS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdLZW5hbHBhc3RpIHNpZmF0IHNlZGlhIGFkYSBGQVEgbWVueXVzdW4gZGFsYW0gY2FyaWFuIEZBUSBkYXJpcGFkYSBlamVuIGludGVyZmFjZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIHRoZSBGQVEgRXhwbG9yZXIgb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01lbnRha3JpZmthbiB0ZXRhcGFuIGF3YWwgc2lmYXQgRkFRIHVudHVrIHN1c3VuYW4gRkFRIGRhbGFtIHBlbmVyb2thIEZBUSBhbnRhcmEgbXVrYSBwZWxhbmdnYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWVudGFrcmlma2FuIHRldGFwYW4gYXdhbCBzaWZhdCBGQVEgdW50dWsgc3VzdW5hbiBGQVEgZGFsYW0gcGVuZXJva2EgRkFRIGFudGFyYSBtdWthIG9yYW5nIGF3YW0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICdNZW50YWtyaWZrYW4gcGVyaW50YWggRkFRIGxhbGFpIGRhbGFtIGhhc2lsIEZBUSBFeHBsb3JlciBiYWdpIGFudGFyYSBtdWthIGVqZW4uIEF0YXM6IHRlcnR1YSBkaSBhdGFzLiBCYXdhaDogdGVya2luaSBkaSBhdGFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ01lbnRha3JpZmthbiBwZXJpbnRhaCBGQVEgbGFsYWkgZGFsYW0gaGFzaWwgRkFRIEV4cGxvcmVyIGJhZ2kgYW50YXJhIG11a2EgcGVsYW5nZ2FuLiBBdGFzOiB0ZXJ0dWEgZGkgYXRhcy4gQmF3YWg6IHRlcmtpbmkgZGkgYXRhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnTWVudGFrcmlma2FuIHBlcmludGFoIEZBUSBsYWxhaSBkYWxhbSBoYXNpbCBGQVEgRXhwbG9yZXIgYmFnaSBhbnRhcmEgbXVrYSBvcmFuZyBhd2FtLiBBdGFzOiB0ZXJ0dWEgZGkgYXRhcy4gQmF3YWg6IHRlcmtpbmkgZGkgYXRhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnTWVudGFrcmlma2FuIHBlcmludGFoIGxhbGFpIEZBUSBoYXNpbCBjYXJpYW4gZGFsYW0gYW50YXJhIG11a2EgZWplbi4gQXRhczogdGVydHVhIGRpIGF0YXMuIEJhd2FoOiB0ZXJiYXJ1IGRpIGF0YXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ01lbnRha3JpZmthbiBwZXJpbnRhaCBsYWxhaSBGQVEgaGFzaWwgY2FyaWFuIGRhbGFtIGFudGFyYSBtdWthIHBlbGFuZ2dhbi4gQXRhczogdGVydHVhIGRpIGF0YXMuIEJhd2FoOiB0ZXJiYXJ1IGRpIGF0YXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICdNZW50YWtyaWZrYW4gcGVyaW50YWggbGFsYWkgRkFRIGhhc2lsIGNhcmlhbiBkYWxhbSBhbnRhcmEgbXVrYSBhd2FtLiBBdGFzOiB0ZXJ0dWEgZGkgYXRhcy4gQmF3YWg6IHRlcmJhcnUgZGkgYXRhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzaG93biBGQVEgc2VhcmNoIGF0dHJpYnV0ZSBmb3IgRkFRIHNlYXJjaCBzY3JlZW4uJ30gPQogICAgICAgICdNZW50YWtyaWZrYW4gbGFsYWkgZGl0dW5qdWtrYW4gRkFRIGF0cmlidXQgY2FyaWFuIHVudHVrIHNrcmluIEZBUSBjYXJpYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGhlaWdodCBmb3IgdGhlIHJpY2ggdGV4dCBlZGl0b3IgY29tcG9uZW50IGZvciB0aGlzIHNjcmVlbi4gRW50ZXIgbnVtYmVyIChwaXhlbHMpIG9yIHBlcmNlbnQgdmFsdWUgKHJlbGF0aXZlKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBpbmZvcm1hdGlvbiB0byBiZSBpbnNlcnRlZCBpbiBhIEZBUSBiYXNlZCBUaWNrZXQuICJGdWxsIEZBUSIgaW5jbHVkZXMgdGV4dCwgYXR0YWNobWVudHMgYW5kIGlubGluZSBpbWFnZXMuJ30gPQogICAgICAgICdNZW50YWtyaWZrYW4gbWFrbHVtYXQgeWFuZyBha2FuIGRpbWFzdWtrYW4gZGFsYW0gdGlrZXQgYmVyZGFzYXJrYW4gRkFRLiAiRkFRIFBlbnVoIiB0ZXJtYXN1ayB0ZWtzLCBsYW1waXJhbiBkYW4gaW1laiBzZWJhcmlzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZGFzaGJvYXJkIGJhY2tlbmQuICJMaW1pdCIgZGVmaW5lcyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgZGlzcGxheWVkIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCBhY2Nlc3MgdG8gdGhlIHBsdWdpbiAoZS4gZy4gR3JvdXA6IGFkbWluO2dyb3VwMTtncm91cDI7KS4gIkRlZmF1bHQiIGluZGljYXRlcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuJ30gPQogICAgICAgICdNZW50YWtyaWZrYW4gcGFyYW1ldGVyIHVudHVrIGJhY2tlbmQgcGFwYW4gcGVtdWthLiAiSGFkIiBtZW50YWtyaWZrYW4gYmlsYW5nYW4gcGVueWVydGFhbiBkaXBhcGFya2FuIHNlY2FyYSBsYWxhaS4gIkt1bXB1bGFuIiBkaWd1bmFrYW4gdW50dWsgbWVueWVrYXQgYWtzZXMga2VwYWRhIHBsdWdpbiAoY29udG9oOiBLdW1wdWxhbjogYWRtaW47IGdyb3VwMSA7IGdyb3VwMiA7KS4gIkRlZmF1bHQiIG1lbnVuanVra2FuIGppa2EgcGx1Z2luIGluaSBkaWFrdGlma2FuIHNlY2FyYSBsYWxhaSBhdGF1IGppa2EgcGVuZ2d1bmEgcGVybHUgdW50dWsgbWVtYm9sZWhrYW4gc2VjYXJhIG1hbnVhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgRkFRIEV4cGxvcmVyLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnTWVudGFrcmlma2FuIGxhanVyIG1lbnVuanVra2FuIGRpIEV4cGxvcmVyIEZBUS4gUGlsaWhhbiBpbmkgdGlkYWsgbWVtcHVueWFpIGtlc2FuIGtlIGF0YXMga2VkdWR1a2FuIHRpYW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBGQVEgam91cm5hbC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ01lbnRha3JpZmthbiBydWFuZ2FuIHlhbmcgZGl0dW5qdWtrYW4gZGFsYW0ganVybmFsIEZBUS4gUGlsaWhhbiBpbmkgdGlkYWsgbWVtcHVueWFpIGtlc2FuIGtlIGF0YXMga2VkdWR1a2FuIHRpYW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBGQVEgc2VhcmNoLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnTWVudGFrcmlma2FuIHJ1YW5nYW4geWFuZyBkaXR1bmp1a2thbiBkYWxhbSBjYXJpYW4gRkFRLiBQaWxpaGFuIGluaSB0aWRhayBtZW1wdW55YWkga2VzYW4ga2UgYXRhcyBrZWR1ZHVrYW4gdGlhbmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgd2hlcmUgdGhlIFwnSW5zZXJ0IEZBUVwnIGxpbmsgd2lsbCBiZSBkaXNwbGF5ZWQuJ30gPSAnTWVudGFrcmlma2FuIGRpIG1hbmEgcGF1dGFuIFwnSW5zZXJ0IEZBUVwnIGFrYW4gZGlwYXBhcmthbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5pdGlvbiBvZiBGQVEgaXRlbSBmcmVlIHRleHQgZmllbGQuJ30gPSAnRGVmaW5pc2kgaXRlbSBGQVEgcGVyY3VtYSBiaWRhbmcgdGVrcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoaXMgRkFRJ30gPSAnUGFkYW0gRkFRIGluaSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgb3ZlcnZpZXcgc2NyZWVuIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBvdmVydmlldyBzY3JlZW4gb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBwcmludCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHByaW50IHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgcHJpbnQgc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc2VhcmNoIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc2VhcmNoIHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc2VhcmNoIHNjcmVlbiBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHNtYWxsIGZvcm1hdCBvdmVydmlldyBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSB6b29tIHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgem9vbSBzY3JlZW4gb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGlzIEZBUSd9ID0gJ0F1ZGl0IEZBUSBpbmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIG11bHRpcGxlIGxhbmd1YWdlcyBvbiBGQVEgbW9kdWxlLid9ID0gJ0FrdGlma2FuIHBlbGJhZ2FpIGJhaGFzYSBwYWRhIG1vZHVsIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHNlcnZpY2UgYXNzaWdubWVudCBmb3IgRkFRcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHRoZSByZWxhdGVkIGFydGljbGUgZmVhdHVyZSBmb3IgdGhlIGN1c3RvbWVyIGZyb250ZW5kLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB2b3RpbmcgbWVjaGFuaXNtIG9uIEZBUSBtb2R1bGUuJ30gPSAnQWt0aWZrYW4gdW5kaWFuIG1la2FuaXNtYSBwYWRhIG1vZHVsIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwbG9yZXInfSA9ICdQZW5lcm9rYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQUpBWCBSZXNwb25kZXInfSA9ICdQZW5ndWxhcyBBSkFYIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQUpBWCBSZXNwb25kZXIgZm9yIFJpY2h0ZXh0Lid9ID0gJ1JpY2h0ZXh0IHVudHVrIEFKQVggRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcmVhJ30gPSAnQmFoYWdpYW4gRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcmVhLid9ID0gJ0JhaGFnaWFuIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIERlbGV0ZS4nfSA9ICdCdWFuZyBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEVkaXQuJ30gPSAnU3VudGluZyBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEhpc3RvcnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBKb3VybmFsIE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICdKdXJuYWwgRkFRIGxpaGF0IHNlbXVsYSAiS2VjaWwiIGhhZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJ0xpaGF0IHNlbXVsYSBGQVEgaGFkICJrZWNpbCInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIFByaW50Lid9ID0gJ0NldGFrYW4gRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgc2VhcmNoIGJhY2tlbmQgcm91dGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPSAnQ2FyaWFuIFNvYWxhbiBMYXppbSBiYWNrZW5kIHJvdXRlciBtdWthIGVqZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpZWxkNCd9ID0gJ01lZGFuNCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWVsZDUnfSA9ICdNZWRhbjUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnVsbCBGQVEnfSA9ICdGQVEgcGVudWgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPSAnS3VtcHVsYW4gYmFnaSBrZWx1bHVzYW4gYXJ0aWtlbCBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgdGhpcyBGQVEnfSA9ICdTZWphcmFoIEZBUSBpbmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgYWN0aXZhdGVkLCBGQVEgYXJ0aWNsZXMgb2Ygc3RhdHVzIHR5cGUgaW50ZXJuYWwgYXJlIGFsc28gdGFrZW4gaW50byBhY2NvdW50IGZvciB0aGUgYXBwcm92YWwgcHJvY2Vzcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNsdWRlIGludGVybmFsIGZpZWxkcyBvbiBhIEZBUSBiYXNlZCBUaWNrZXQuJ30gPSAnVGVybWFzdWsgYmlkYW5nIGRhbGFtYW4gVGlrZXQgYmVyYXNhc2thbiBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgdGhlIG5hbWUgb2YgZWFjaCBmaWVsZCBpbiBhIEZBUSBiYXNlZCBUaWNrZXQuJ30gPSAnVGVybWFzdWsgbmFtYSBzZXRpYXAgYmlkYW5nIGRhbGFtIFRpa2V0IGJlcmFzYXNrYW4gRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnRlcmZhY2VzIHdoZXJlIHRoZSBxdWljayBzZWFyY2ggc2hvdWxkIGJlIHNob3duLid9ID0gJ0FudGFyYSBtdWthIGRpIG1hbmEgY2FyaWFuIGNlcGF0IGhlbmRha2xhaCBkaXR1bmp1a2thbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSm91cm5hbCd9ID0gJ0p1cm5hbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYW5ndWFnZSBNYW5hZ2VtZW50J30gPSAnUGVuZ3VydXNhbiBCYWhhc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFuZ3VhZ2UgTWFuYWdlbWVudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGltaXQgZm9yIHRoZSBzZWFyY2ggdG8gYnVpbGQgdGhlIGtleXdvcmQgRkFRIGFydGljbGUgbGlzdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayBhbm90aGVyIG9iamVjdCB0byB0aGlzIEZBUSBpdGVtJ30gPSAnRkFRIHBhdXRhbiBpbmkga2VwYWRhIG9iamVrIGxhaW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBxdWV1ZSBuYW1lcyBmb3Igd2hpY2ggdGhlIHJlbGF0ZWQgYXJ0aWNsZSBmZWF0dXJlIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBzdGF0ZSB0eXBlcyB3aGljaCBjYW4gYmUgdXNlZCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnU2VuYXJhaSBqZW5pcyBrZWFkYWFuIHlhbmcgYm9sZWggZGlndW5ha2FuIGRhbGFtIHJ1YW5nIGFudGFyYSBtdWthIGVqZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2Ygc3RhdGUgdHlwZXMgd2hpY2ggY2FuIGJlIHVzZWQgaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1NlbmFyYWkgamVuaXMga2VhZGFhbiB5YW5nIGJvbGVoIGRpZ3VuYWthbiBkYWxhbSBydWFuZyBhbnRhcmEgbXVrYSBwZWxhbmdnYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2Ygc3RhdGUgdHlwZXMgd2hpY2ggY2FuIGJlIHVzZWQgaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICdTZW5hcmFpIGplbmlzIGtlYWRhYW4geWFuZyBib2xlaCBkaWd1bmFrYW4gZGFsYW0gYW50YXJhIG11a2EgYXdhbS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdCaWxhbmdhbiBtYWtzaW11bSBhcnRpa2VsIEZBUSBha2FuIGRpcGFwYXJrYW4gZGFsYW0gaGFzaWwgRkFRIEV4cGxvcmVyIG11a2EgZWplbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICdCaWxhbmdhbiBtYWtzaW11bSBhcnRpa2VsIEZBUSBha2FuIGRpcGFwYXJrYW4gZGFsYW0gaGFzaWwgRkFRIEV4cGxvcmVyIG11a2EgcGVsYW5nZ2FuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICdCaWxhbmdhbiBtYWtzaW11bSBhcnRpa2VsIEZBUSB5YW5nIGFrYW4gZGlwYXBhcmthbiBkYWxhbSBoYXNpbCBGQVEgRXhwbG9yZXIgYW50YXJhIG11a2EgYXdhbS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIGpvdXJuYWwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0JpbGFuZ2FuIG1ha3NpbXVtIEZBUSBhcnRpa2VsIHVudHVrIGRpcGFwYXJrYW4gZGFsYW0ganVybmFsIEZBUSBkaSBtdWthIGVqZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHJlc3VsdCBvZiBhIHNlYXJjaCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQmlsYW5nYW4gbWFrc2ltdW0gYXJ0aWtlbCBGQVEgdW50dWsgZGlwYXBhcmthbiBkYWxhbSBoYXNpbCBjYXJpYW4gZGFsYW0gYW50YXJhIG11a2EgZWplbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgcmVzdWx0IG9mIGEgc2VhcmNoIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICdCaWxhbmdhbiBtYWtzaW11bSBhcnRpa2VsIEZBUSB1bnR1ayBkaXBhcGFya2FuIGRhbGFtIGhhc2lsIGNhcmlhbiBkYWxhbSBhbnRhcmEgbXVrYSBwZWxhbmdnYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHJlc3VsdCBvZiBhIHNlYXJjaCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0JpbGFuZ2FuIG1ha3NpbXVtIGFydGlrZWwgRkFRIHVudHVrIGRpcGFwYXJrYW4gZGFsYW0gaGFzaWwgY2FyaWFuIGRhbGFtIGFudGFyYSBtdWthIGF3YW0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBFeHBsb3JlciBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnU2FpeiBtYWtzaW11bSB0YWp1ayBkYWxhbSBhcnRpa2VsIEZBUSB1bnR1ayBkaXR1bmp1a2thbiBkYWxhbSBGQVEgRXhwbG9yZXIgZGFsYW0gYW50YXJhIG11a2EgZWplbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIEV4cGxvcmVyIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICdTYWl6IG1ha3NpbXVtIHRhanVrIGRhbGFtIGFydGlrZWwgRkFRIHVudHVrIGRpdHVuanVra2FuIGRhbGFtIEZBUSBFeHBsb3JlciBkYWxhbSBhbnRhcmEgbXVrYSBwZWxhbmdnYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIEV4cGxvcmVyIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnU2FpeiBtYWtzaW11bSB0YWp1ayBkYWxhbSBhcnRpa2VsIEZBUSB1bnR1ayBkaXR1bmp1a2thbiBkYWxhbSBGQVEgRXhwbG9yZXIgZGFsYW0gYW50YXJhIG11a2EgYXdhbS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIFNlYXJjaCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnU2FpeiBtYWtzaW11bSB0YWp1ayBkYWxhbSBhcnRpa2VsIEZBUSB1bnR1ayBkaXR1bmp1a2thbiBkaSBGQVEgQ2FyaWFuIGRhbGFtIGFudGFyYSBtdWthIGVqZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBTZWFyY2ggaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1NhaXogbWFrc2ltdW0gdGFqdWsgZGFsYW0gYXJ0aWtlbCBGQVEgdW50dWsgZGl0dW5qdWtrYW4gZGkgRkFRIENhcmlhbiBkYWxhbSBhbnRhcmEgbXVrYSBwZWxhbmdnYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBTZWFyY2ggaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICdTYWl6IG1ha3NpbXVtIHRhanVrIGRhbGFtIGFydGlrZWwgRkFRIHVudHVrIGRpdHVuanVra2FuIGRpIEZBUSBDYXJpYW4gZGFsYW0gYW50YXJhIG11a2EgYXdhbS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIGpvdXJuYWwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1NhaXogbWFrc2ltdW0gdGFqdWsgZGFsYW0gYXJ0aWtlbCBGQVEgdW50dWsgZGl0dW5qdWtrYW4gZGFsYW0ganVybmFsIEZBUSBkYWxhbSBhbnRhcmEgbXVrYSBlamVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gZ2VuZXJhdGUgSFRNTCBPcGVuU2VhcmNoIHByb2ZpbGUgZm9yIHNob3J0IEZBUSBzZWFyY2ggaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gZ2VuZXJhdGUgSFRNTCBPcGVuU2VhcmNoIHByb2ZpbGUgZm9yIHNob3J0IEZBUSBzZWFyY2ggaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNb2R1bCB1bnR1ayBtZW5qYW5hIHByb2ZpbCBIVE1MIE9wZW5TZWFyY2ggdW50dWsgY2FyaWFuIEZBUSBwZW5kZWsgZGFsYW0gYW50YXJhIG11a2EgYXdhbSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gZ2VuZXJhdGUgaHRtbCBPcGVuU2VhcmNoIHByb2ZpbGUgZm9yIHNob3J0IEZBUSBzZWFyY2guJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEZBUSBBcnRpY2xlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgRkFRIGFydGljbGVzIG5lZWQgYXBwcm92YWwgYmVmb3JlIHRoZXkgZ2V0IHB1Ymxpc2hlZC4nfSA9ICdBcnRpa2VsIGJhcnUgRkFRIHBlcmx1IGtlbHVsdXNhbiBzZWJlbHVtIG1lcmVrYSBtZW5kYXBhdCBkaXRlcmJpdGthbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQmlsYW5nYW4gYXJ0aWtlbCBGQVEgdW50dWsgZGlwYXBhcmthbiBkYWxhbSBFeHBsb3JlciBGQVEgYW50YXJhIG11a2EgcGVsYW5nZ2FuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICdCaWxhbmdhbiBhcnRpa2VsIEZBUSB1bnR1ayBkaXBhcGFya2FuIGRhbGFtIEV4cGxvcmVyIEZBUSBhbnRhcmEgbXVrYSBhd2FtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIG9uIGVhY2ggcGFnZSBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0JpbGFuZ2FuIGFydGlrZWwgRkFRIHVudHVrIGRpcGFwYXJrYW4gcGFkYSBzZXRpYXAgaGFsYW1hbiBoYXNpbCBjYXJpYW4gZGFsYW0gYW50YXJhIG11a2EgcGVsYW5nZ2FuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIG9uIGVhY2ggcGFnZSBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICdCaWxhbmdhbiBhcnRpa2VsIEZBUSBha2FuIGRpcGFwYXJrYW4gcGFkYSBzZXRpYXAgaGFsYW1hbiBoYXNpbCBjYXJpYW4gZGFsYW0gYW50YXJhIG11a2EgYXdhbS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIHNob3duIGl0ZW1zIGluIGxhc3QgY2hhbmdlcy4nfSA9ICdCaWxhbmdhbiBpdGVtIHlhbmcgZGl0dW5qdWtrYW4gZGFsYW0gcGVydWJhaGFuIHRlcmFraGlyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2Ygc2hvd24gaXRlbXMgaW4gbGFzdCBjcmVhdGVkLid9ID0gJ0JpbGFuZ2FuIGl0ZW0geWFuZyBkaXR1bmp1a2thbiBkYWxhbSB0ZXJha2hpciBkaWNpcHRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2Ygc2hvd24gaXRlbXMgaW4gdGhlIHRvcCAxMCBmZWF0dXJlLid9ID0gJ0JpbGFuZ2FuIGl0ZW0geWFuZyBkaXR1bmp1a2thbiBkYWxhbSAxMCB0ZXJhdGFzIGNpcmkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J091dHB1dCBmaWx0ZXIgdG8gYWRkIEphdmEtc2NyaXB0IHRvIEN1c3RvbWVyVGlja2V0TWVzc2FnZSBzY3JlZW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3V0cHV0IGxpbWl0IGZvciB0aGUgcmVsYXRlZCBGQVEgYXJ0aWNsZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIEZBUSBpdGVtcyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBGQVEgam91cm5hbCBvdmVydmlldy4nfSA9CiAgICAgICAgJ1BhcmFtZXRlciB1bnR1ayBtdWthIHN1cmF0IChkaSBtYW5hIGl0ZW0gRkFRIGRpdHVuanVra2FuKSBnYW1iYXJhbiBrZWNpbCBqdXJuYWwgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBGQVEgaXRlbXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgRkFRIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnUGFyYW1ldGVyIHVudHVrIG11a2Egc3VyYXQgKGRpIG1hbmEgaXRlbSBGQVEgZGl0dW5qdWtrYW4pIGdhbWJhcmFuIGtlc2VsdXJ1aGFuIEZBUSBrZWNpbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhpcyBGQVEnfSA9ICdDZXRhayBoYWxhbWFuIEZBUSBpbmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIEZBUSBQcmludC4nfSA9ICdjZXRha2FuIEZBUSB1bXVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBGQVEgWm9vbS4nfSA9ICd6dW0gRkFRIHVtdW0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIEZBUSBzZWFyY2guJ30gPSAnY2FyaWFuIEZBUSB1bXVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBGQVEuJ30gPSAnRkFRIFVtdW0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVldWUgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPSAnQmVyYXR1ciB1bnR1ayBrZWx1bHVzYW4gYXJ0aWtlbCBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGVzIGZvciB2b3RpbmcuIEtleSBtdXN0IGJlIGluIHBlcmNlbnQuJ30gPSAnS2FkYXIgdW50dWsgbWVuZ3VuZGkuIEt1bmNpIG1lc3RpbGFoIGRhbGFtIHBlcmF0dXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1MnfSA9ICdTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBGQVEnfSA9ICdDYXJpYW4gRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBGQVEgU21hbGwuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBGQVEuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBob3cgbWFueSBpdGVtcyBzaG91bGQgYmUgc2hvd24gaW4gSm91cm5hbCBPdmVydmlldyAiU21hbGwiIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGhvdyBtYW55IGl0ZW1zIHNob3VsZCBiZSBzaG93biBpbiBPdmVydmlldyAiU21hbGwiIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBkZWZhdWx0IGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gQWdlbnRGQVFab29tLid9ID0KICAgICAgICAnTWVuZXRhcGthbiBrZXRpbmdnaWFuIGxhbGFpIChkYWxhbSBwaWtzZWwpIGJpZGFuZyBIVE1MIHNlYmFyaXMgZGFsYW0gQWdlbnRGQVFab29tLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBDdXN0b21lckZBUVpvb20gKGFuZCBQdWJsaWNGQVFab29tKS4nfSA9CiAgICAgICAgJ01lbmV0YXBrYW4ga2V0aW5nZ2lhbiBsYWxhaSAoZGFsYW0gcGlrc2VsKSBiaWRhbmcgSFRNTCBzZWJhcmlzIGRhbGFtIEN1c3RvbWVyRkFRWm9vbSAoZGFuIFB1YmxpY0ZBUVpvb20pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBBZ2VudEZBUVpvb20uJ30gPQogICAgICAgICdNZW5ldGFwa2FuIGtldGluZ2dpYW4gbWFrc2ltdW0gKGRhbGFtIHBpa3NlbCkgYmlkYW5nIEhUTUwgc2ViYXJpcyBkYWxhbSBBZ2VudEZBUVpvb20uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgbWF4aW11bSBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEN1c3RvbWVyRkFRWm9vbSAoYW5kIFB1YmxpY0ZBUVpvb20pLid9ID0KICAgICAgICAnTWVuZXRhcGthbiBrZXRpbmdnaWFuIG1ha3NpbXVtIChkYWxhbSBwaWtzZWwpIGJpZGFuZyBIVE1MIHNlYmFyaXMgZGFsYW0gQ3VzdG9tZXJGQVFab29tIChkYW4gUHVibGljRkFRWm9vbSkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgIkluc2VydCBGQVEgTGluayIgQnV0dG9uIGluIEFnZW50RkFRWm9vbVNtYWxsIGZvciBwdWJsaWMgRkFRIEFydGljbGVzLid9ID0KICAgICAgICAnVHVuanVra2FuICJTaXNpcGFuIEZBUSBMaW5rIiBCdXRhbmcgZGkgQWdlbnRGQVFab29tU21hbGwgdW50dWsgYXdhbSBGQVEgQXJ0aWtlbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyAiSW5zZXJ0IEZBUSBUZXh0ICYgTGluayIgLyAiSW5zZXJ0IEZ1bGwgRkFRICYgTGluayIgQnV0dG9uIGluIEFnZW50RkFRWm9vbVNtYWxsIGZvciBwdWJsaWMgRkFRIEFydGljbGVzLid9ID0KICAgICAgICAnVHVuanVra2FuIGJ1dGFuZyAiU2lzaXBhbiBGQVEgTGluayAmIFRla3MiLyAiU2lzaXBhbiBwZW51aCBGQVEiIGRpIEFnZW50RkFRWm9vbVNtYWxsIHVudHVrIGF3YW0gRkFRIEFydGlrZWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgIkluc2VydCBGQVEgVGV4dCIgLyAiSW5zZXJ0IEZ1bGwgRkFRIiBCdXR0b24gaW4gQWdlbnRGQVFab29tU21hbGwuJ30gPQogICAgICAgICdUdW5qdWtrYW4gYnV0YW5nICJTaXNpcGFuIFRla3MgRkFRIiAvICJTaXNpcGFuIFBlbnVoIEZBUSIgZGkgQWdlbnRGQVFab29tU21hbGwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgRkFRIEFydGljbGUgd2l0aCBIVE1MLid9ID0gJ1BhcGFyIEZBUSBQZXJrYXJhIGRlbmdhbiBIVE1MLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IEZBUSBwYXRoIHllcy9uby4nfSA9ICdQYXBhciBGQVEgamFsYW4geWEgLyB0aWRhay4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBpbnZhbGlkIGl0ZW1zIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdUdW5qdWtrYW4gaXRlbS1pdGVtIHRpZGFrIHNhaGloIGRhbGFtIGtlcHV0dXNhbiBQZW5lcm9rYSBGQVEgYmFnaSBhbnRhcmFtdWthIGFnZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgaXRlbXMgb2Ygc3ViY2F0ZWdvcmllcy4nfSA9ICdQYXBhciBpdGVtIHN1YmthdGVnb3JpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGxhc3QgY2hhbmdlIGl0ZW1zIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICdNZW51bmp1a2thbiBpdGVtIHBlcnViYWhhbiB0ZXJha2hpciBkYWxhbSBhbnRhcmEgbXVrYSB5YW5nIGRpdGFrcmlma2FuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGxhc3QgY3JlYXRlZCBpdGVtcyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAnVHVuanVra2FuIGFraGlyIG1lbmNpcHRhIGl0ZW0gZGFsYW0gYW50YXJhIG11a2EgeWFuZyBkaXRha3JpZmthbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyByZWxhdGVkIGFydGljbGVzIG9uIHNlcnZpY2UgY2hhbmdlIGV2ZW4gd2l0aCBlbXB0eSBzdWJqZWN0IGFuZCBib2R5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgdGhlIHN0YXJzIGZvciB0aGUgYXJ0aWNsZXMgd2l0aCBhIHJhdGluZyBlcXVhbCBvciBncmVhdGVyIGxpa2UgdGhlIGRlZmluZWQgdmFsdWUgKHNldCB2YWx1ZSBcJzBcJyB0byBkZWFjdGl2YXRlIHRoZSBvdXRwdXQpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgdG9wIDEwIGl0ZW1zIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICdQYXBhciB0b3AgMTAgaXRlbSBkYWxhbSBhbnRhcmEgbXVrYSB5YW5nIGRpdGFrcmlma2FuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHZvdGluZyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAnUGFwYXIgbWVuZ3VuZGkgZGFsYW0gYW50YXJhIG11a2EgeWFuZyBkaXRha3JpZmthbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSBGQVEgd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgem9vbSB2aWV3IG9mIHN1Y2ggRkFRIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNZW51bmp1a2thbiBwYXV0YW4gZGFsYW0gbWVudSB5YW5nIG1lbWJvbGVoa2FuIG1lbmdodWJ1bmdrYW4gRkFRIGRlbmdhbiBvYmplayBsYWluIGRhbGFtIHBhbmRhbmdhbiB6b29tIEZBUSBtdWthIGVqZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyB0byBkZWxldGUgYSBGQVEgaW4gaXRzIHpvb20gdmlldyBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWVudW5qdWtrYW4gcGF1dGFuIGRpIGJhciBtZW51IGRhbGFtIHBhbmRhbmdhbiBkaXp1bSBkYWxhbSBhbnRhcmEgbXVrYSBwZWxhbmdnYW4geWFuZyBtZW1ib2xlaGthbiB1bnR1ayBtZW1hZGFtIGFydGlrZWwgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBoaXN0b3J5IG9mIGEgRkFRIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01lbnVuanVra2FuIHBhdXRhbiBkaSBiYXIgbWVudSBkYWxhbSBwYW5kYW5nYW4gZGl6dW0gZGFsYW0gZWplbiB1bnR1ayBtZWxpaGF0IHNlamFyYWggYXJ0aWtlbCBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgRkFRIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNZW51bmp1a2thbiBwYXV0YW4gZGkgYmFyIG1lbnUgZGFsYW0gcGFuZGFuZ2FuIGRpenVtIGRhbGFtIGFudGFyYSBtdWthIHBlbGFuZ2dhbiB5YW5nIG1lbWJvbGVoa2FuIHVudHVrIG1lbmdlZGl0IGFydGlrZWwgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZ28gYmFjayBpbiB0aGUgRkFRIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWVudW5qdWtrYW4gcGF1dGFuIGRpIGJhciBtZW51IGRhbGFtIHBhbmRhbmdhbiBkaXp1bSBkYWxhbSBhbnRhcmEgbXVrYSBwZWxhbmdnYW4geWFuZyBtZW1ib2xlaGthbiB1bnR1ayBrZW1iYWxpIGtlIGhhbGFtYW4gc2ViZWx1bW55YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgRkFRIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNZW51bmp1a2thbiBwYXV0YW4gZGkgYmFyIG1lbnUgZGFsYW0gcGFuZGFuZ2FuIGRpenVtIGRhbGFtIGFudGFyYSBtdWthIGVqZW4sIHlhbmcgbWVtYm9sZWhrYW4gdW50dWsgbWVuY2V0YWsgYXJ0aWtlbCBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NvbHV0aW9uJ30gPSAnUGVueWVsZXNhaWFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N5bXB0b20nfSA9ICdTaW1wdG9tJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RleHQgT25seSd9ID0gJ2hhbnlhIHRla3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGRlZmF1bHQgbGFuZ3VhZ2VzIGZvciB0aGUgcmVsYXRlZCBGQVEgYXJ0aWNsZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIEZBUSwgZS5nLiBGQVEjLCBLQiMsIE15RkFRIy4gVGhlIGRlZmF1bHQgaXMgRkFRIy4nfSA9CiAgICAgICAgJ1BlbmdlY2FtIHVudHVrIGl0ZW0gRkFRLCBzZXBlcnRpIEZBUSAjLCAjIEtCLCBNeUZBUSAjLiBOaWxhaSBsYWxhaSBhZGFsYWggIyBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBkZWZpbmVzIHRoYXQgYSBcJ0ZBUVwnIG9iamVjdCBjYW4gYmUgbGlua2VkIHdpdGggb3RoZXIgXCdGQVFcJyBvYmplY3RzIHVzaW5nIHRoZSBcJ05vcm1hbFwnIGxpbmsgdHlwZS4nfSA9CiAgICAgICAgJ1RldGFwYW4gaW5pIG1lbnRha3JpZmthbiBiYWhhd2Egb2JqZWsgXCdGQVFcJyBib2xlaCBkaXBhdXQgZGVuZ2FuIG9iamVrIFwnRkFRXCcgbGFpbiBtZW5nZ3VuYWthbiBqZW5pcyBwYXV0YW4gXCdOb3JtYWxcJy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBzZXR0aW5nIGRlZmluZXMgdGhhdCBhIFwnRkFRXCcgb2JqZWN0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciBcJ0ZBUVwnIG9iamVjdHMgdXNpbmcgdGhlIFwnUGFyZW50Q2hpbGRcJyBsaW5rIHR5cGUuJ30gPQogICAgICAgICdNZW50YWtyaWZrYW4gYmFoYXdhIG9iamVrIFwnRkFRXCcgYm9sZWggZGlwYXV0IGRlbmdhbiBvYmplayBcJ0ZBUVwnIGxhaW4gbWVuZ2d1bmFrYW4gamVuaXMgcGF1dGFuIFwnUGFyZW50Q2hpbGRcJy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBzZXR0aW5nIGRlZmluZXMgdGhhdCBhIFwnRkFRXCcgb2JqZWN0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciBcJ1RpY2tldFwnIG9iamVjdHMgdXNpbmcgdGhlIFwnTm9ybWFsXCcgbGluayB0eXBlLid9ID0KICAgICAgICAnTWVudGFrcmlma2FuIGJhaGF3YSBcJyBGQVFcJyBvYmplayBkZW5nYW4gamVuaXMgcGF1dGFuIFwnYmlhc2FcJyBsYWluIFwnVGlrZXRcJyBib2xlaCBkaWthaXRrYW4gZGVuZ2FuIG9iamVrLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnVGlja2V0XCcgb2JqZWN0cyB1c2luZyB0aGUgXCdQYXJlbnRDaGlsZFwnIGxpbmsgdHlwZS4nfSA9CiAgICAgICAgJ1RldGFwYW4gaW5pIG1lbnRha3JpZmthbiBiYWhhd2Egb2JqZWsgXCdGQVFcJyBib2xlaCBkaXBhdXQgZGVuZ2FuIFwnVGlrZXRcJyBsYWluIG1lbmdndW5ha2FuIGplbmlzIHBhdXRhbiBcJ1BhcmVudENoaWxkXCcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBib2R5IGZvciBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZS4nfSA9ICdCYWRhbiB0aWtldCB1bnR1ayBtZWxlcGFza2FuIGFydGlrZWwgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgc3ViamVjdCBmb3IgYXBwcm92YWwgb2YgRkFRIGFydGljbGUuIFBlcm1pdHRlZCBub3RpZmljYXRpb24gdGFncyBhcmUgPE9UT0JPX0ZBUV9OVU1CRVI+LCA8T1RPQk9fRkFRX0NBVEVHT1JZSUQ+LCA8T1RPQk9fRkFRX0lURU1JRD4+IDxPVE9CT19GQVFfVElUTEU+IGFuZCA8T1RPQk9fRkFRX1NUQVRFSUQ+Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rvb2xiYXIgSXRlbSBmb3IgYSBzaG9ydGN1dC4nfSA9ICdJdGVtIFRvb2xiYXIgdW50dWsgamFsYW4gcGludGFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydleHRlcm5hbCAoY3VzdG9tZXIpJ30gPSAnbHVhcmFuIChwZWxhbmdnYW4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2ludGVybmFsIChhZ2VudCknfSA9ICdkYWxhbWFuIChlamVuKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwdWJsaWMgKGFsbCknfSA9ICdVbXVtIChTZW11YSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncHVibGljIChwdWJsaWMpJ30gPSAnYXdhbSAoYXdhbSknOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdObycsCiAgICAnT2snLAogICAgJ1NldHRpbmdzJywKICAgICdTdWJtaXQnLAogICAgJ1RoaXMgbWlnaHQgYmUgaGVscGZ1bCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Location="Kernel/Language/nb_NO_FAQ.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6Om5iX05PX0ZBUTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRQWRkCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIEFydGljbGUnfSA9ICdMZWdnIHRpbCBPU1MtYXJ0aWtrZWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnS2V5d29yZHMnfSA9ICdOw7hra2Vsb3JkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgY2F0ZWdvcnkgaXMgcmVxdWlyZWQuJ30gPSAnS2F0ZWdvcmkgZXIgb2JsaWdhdG9yaXNrLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcHByb3ZhbCd9ID0gJ0dvZGtqZW5uaW5nJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUNhdGVnb3J5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQ2F0ZWdvcnkgTWFuYWdlbWVudCd9ID0gJ0thdGVnb3Jpb3Bwc2V0dCBmb3IgT1NTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBGQVEgQ2F0ZWdvcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBGQVEgQ2F0ZWdvcnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGNhdGVnb3J5J30gPSAnTGVnZyB0aWwga2F0ZWdvcmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENhdGVnb3J5J30gPSAnTGVnZyB0aWwga2F0ZWdvcmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDYXRlZ29yeSd9ID0gJ0VuZHJlIGthdGVnb3JpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1YmNhdGVnb3J5IG9mJ30gPSAnVW5kZXJrYXRlZ29yaSBhdic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2Ugc2VsZWN0IGF0IGxlYXN0IG9uZSBwZXJtaXNzaW9uIGdyb3VwLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBncm91cHMgdGhhdCBjYW4gYWNjZXNzIGFydGljbGVzIGluIHRoaXMgY2F0ZWdvcnkuJ30gPSAnU2Frc2JlaGFuZGxlcmdydXBwZXIgc29tIGhhciB0aWxnYW5nIHRpbCBhcnRpa2xlciBpIGRlbm5lIGthdGVnb3JpZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2lsbCBiZSBzaG93biBhcyBjb21tZW50IGluIEV4cGxvcmVyLid9ID0gJ1ZpbCB2aXNlcyBzb20ga29tbWVudGFyIGkgdXRmb3Jza2VyZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNhdGVnb3J5Pyd9ID0gJ1ZpbCBkdSB2aXJrZWxpZyBzbGV0dGUgZGVubmUga2F0ZWdvcmllbj8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgY2F0ZWdvcnkuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIEZBUSBhcnRpY2xlIGFuZC9vciBpcyBwYXJlbnQgb2YgYXQgbGVhc3Qgb25lIG90aGVyIGNhdGVnb3J5J30gPQogICAgICAgICdEdSBrYW4gaWtrZSBzbGV0dGUgZGVubmUga2F0ZWdvcmllbiwgZm9yZGkgZGVuIGVyIGJydWt0IGkgbWluc3QgZW4gT1NTLWFydGlra2VsIG9nL2VsbGVyIGZvcmVsZHJlIHRpbCBtaW5zdCBlbiBhbm5lbiBrYXRlZ29yaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGNhdGVnb3J5IGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBGQVEgYXJ0aWNsZShzKSd9ID0gJ0Rlbm5lIGthdGVnb3JpZW4gZXIgYnJ1a3QgaSBmw7hsZ2VuZGUgT1NTLWFydGlrbGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY2F0ZWdvcnkgaXMgcGFyZW50IG9mIHRoZSBmb2xsb3dpbmcgc3ViY2F0ZWdvcmllcyd9ID0gJ0Rlbm5lIGthdGVnb3JpZW4gZXIgZm9yZWxkcmUgdGlsIGbDuGxnZW5kZSB1bmRlcmthdGVnb3JpZXInOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgRkFRIGFydGljbGU/J30gPSAnVmlsIGR1IHZpcmtlbGlnIHNsZXR0ZSBkZW5uZSBhcnRpa2tlbGVuPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEnfSA9ICdPU1MnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRRXhwbG9yZXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBFeHBsb3Jlcid9ID0gJ1V0Zm9yc2tlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydRdWljayBTZWFyY2gnfSA9ICdIdXJ0aWdzw7hrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dpbGRjYXJkcyBhcmUgYWxsb3dlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWR2YW5jZWQgU2VhcmNoJ30gPSAnQXZhbnNlcnQgc8O4ayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWJjYXRlZ29yaWVzJ30gPSAnVW5kZXJrYXRlZ29yaWVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlcyd9ID0gJ09mdGUgU3RpbHRlIFNww7hyc23DpWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gc3ViY2F0ZWdvcmllcyBmb3VuZC4nfSA9ICdJbmdlbiB1bmRlcmthdGVnb3JpZXIgZnVubmV0JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUhpc3RvcnkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YnfSA9ICdIaXN0b3Jpa2sgZm9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgQ29udGVudCd9ID0gJ0hpc3Rvcmlrayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGV0aW1lJ30gPSAnT3BwcmV0dGV0JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUpvdXJuYWxPdmVydmlld1NtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBGQVEgSm91cm5hbCBkYXRhIGZvdW5kLid9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFMYW5ndWFnZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIExhbmd1YWdlIE1hbmFnZW1lbnQnfSA9ICdTcHLDpWtvcHBzZXR0IGZvciBPU1MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEZBUSBMYW5ndWFnZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEZBUSBMYW5ndWFnZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2UgdGhpcyBmZWF0dXJlIGlmIHlvdSB3YW50IHRvIHdvcmsgd2l0aCBtdWx0aXBsZSBsYW5ndWFnZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGxhbmd1YWdlJ30gPSAnTGVnZyB0aWwgc3Byw6VrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBMYW5ndWFnZSd9ID0gJ0xlZ2cgdGlsIHNwcsOlayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IExhbmd1YWdlJ30gPSAnRW5kcmUgc3Byw6VrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gbm90IGRlbGV0ZSB0aGlzIGxhbmd1YWdlLiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBGQVEgYXJ0aWNsZSEnfSA9CiAgICAgICAgJ0R1IGthbiBpa2tlIHNsZXR0ZSBkZXR0ZSBzcHLDpWtldC4gRGV0IGVyIGJydWt0IGkgbWluc3QgZW4gT1NTIGFydGlra2VsISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGxhbmd1YWdlIGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBGQVEgQXJ0aWNsZShzKSd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFPdmVydmlld05hdkJhcgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29udGV4dCBTZXR0aW5ncyd9ID0gJ0tvbnRla3N0dmFsZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgYXJ0aWNsZXMgcGVyIHBhZ2UnfSA9ICdPU1MgYXJ0aWtsZXIgcGVyIHNpZGUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRT3ZlcnZpZXdTbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gRkFRIGRhdGEgZm91bmQuJ30gPSAnSW5nZW4gYXJ0aWtsZXIgZnVubmV0JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVJlbGF0ZWRBcnRpY2xlcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnb3V0IG9mIDUnfSA9ICdhdiA1JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVNlYXJjaAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnS2V5d29yZCd9ID0gJ07DuGtrZWxvcmQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSAoZS4gZy4gRXF1YWxzIDEwIG9yIEdyZWF0ZXJUaGFuIDYwKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRlIChlLiBnLiBFcXVhbHMgMjUlIG9yIEdyZWF0ZXJUaGFuIDc1JSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwcm92ZWQnfSA9ICdHb2RramVudCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQgYnknfSA9ICdTaXN0IGVuZHJldCBhdic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDcmVhdGUgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJ09wcHJldHRlbHNlc3RpZHNwdW5rdCBmb3IgT1NTIGFydGlra2VsZW4gKGbDuHIvZXR0ZXIpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENyZWF0ZSBUaW1lIChiZXR3ZWVuKSd9ID0gJ09wcHJldHRlbHNlc3RpZHNwdW5rdCBmb3IgT1NTIGFydGlra2VsZW4gKG1lbGxvbSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ2hhbmdlIFRpbWUgKGJlZm9yZS9hZnRlciknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ2hhbmdlIFRpbWUgKGJldHdlZW4pJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVNlYXJjaE9wZW5TZWFyY2hEZXNjcmlwdGlvbkZ1bGx0ZXh0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVFGdWxsdGV4dCd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFTZWFyY2hTbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIFNlYXJjaCd9ID0gJ09TUy1zw7hrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2ZpbGUgU2VsZWN0aW9uJ30gPSAnUHJvZmlsdmFsZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWb3RlJ30gPSAnU3RlbSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB2b3RlIHNldHRpbmdzJ30gPSAnSW5nZW4gc3RlbW1laW5uc3RpbGxpbmdlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpYyB2b3Rlcyd9ID0gJ1NwZXNpZmlrayBub3Rpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlLiBnLiBFcXVhbHMgMTAgb3IgR3JlYXRlclRoYW4gNjAnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0ZSd9ID0gJ1Jhbmdlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyByYXRlIHNldHRpbmdzJ30gPSAnSW5nZW4gcmFuZ2VyaW5nc2lubnN0aWxsaW5nZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWMgcmF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlLiBnLiBFcXVhbHMgMjUlIG9yIEdyZWF0ZXJUaGFuIDc1JSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDcmVhdGUgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDaGFuZ2UgVGltZSd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFab29tCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSW5mb3JtYXRpb24nfSA9ICdJbmZvIG9tIE9TUyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRpbmcnfSA9ICdSYXRpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZXMnfSA9ICdTdGVtbWVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHZvdGVzIGZvdW5kISd9ID0gJ0luZ2VuIHN0ZW1tZXIgZnVubmV0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB2b3RlcyBmb3VuZCEgQmUgdGhlIGZpcnN0IG9uZSB0byByYXRlIHRoaXMgRkFRIGFydGljbGUuJ30gPSAnSW5nZW4gc3RlbW1lciBhdmdpdHQhIEJsaSBkZW4gZsO4cnN0ZSB0aWwgw6Ugc3RlbW1lIHDDpSBkZW5uZSBhcnRpa2tlbGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEb3dubG9hZCBBdHRhY2htZW50J30gPSAnTGFzdCBuZWQgdmVkbGVnZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyBvcGVuIGxpbmtzIGluIHRoZSBmb2xsb3dpbmcgZGVzY3JpcHRpb24gYmxvY2tzLCB5b3UgbWlnaHQgbmVlZCB0byBwcmVzcyBDdHJsIG9yIENtZCBvciBTaGlmdCBrZXkgd2hpbGUgY2xpY2tpbmcgdGhlIGxpbmsgKGRlcGVuZGluZyBvbiB5b3VyIGJyb3dzZXIgYW5kIE9TKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3cgaGVscGZ1bCB3YXMgdGhpcyBhcnRpY2xlPyBQbGVhc2UgZ2l2ZSB1cyB5b3VyIHJhdGluZyBhbmQgaGVscCB0byBpbXByb3ZlIHRoZSBGQVEgRGF0YWJhc2UuIFRoYW5rIFlvdSEnfSA9CiAgICAgICAgJ1ZhciBkZW5uZSBhcnRpa2tlbGVuIHRpbCBoamVscD8gVsOmciBzbmlsbCBvZyBnaSBvc3MgZGluIHN0ZW1tZSwgc2xpayBhdCB2aSBrYW4gZm9yYmVkcmUgZGF0YWJhc2VuLiBUdXNlbiB0YWtrISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgaGVscGZ1bCd9ID0gJ2lra2UgdGlsIGhqZWxwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3ZlcnkgaGVscGZ1bCd9ID0gJ3ZlbGRpZyBueXR0aWcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRWm9vbVNtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIHRpdGxlIHRvIGFydGljbGUgc3ViamVjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRkFRIFRleHQnfSA9ICdTZXR0IGlubiBPU1MtdGVrc3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZ1bGwgRkFRJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGQVEgTGluayd9ID0gJ1NldHQgaW5uIE9TUy1sZW5rZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRkFRIFRleHQgJiBMaW5rJ30gPSAnU2V0dCBpbm4gT1NTLXRla3N0IG9nIC1sZW5rZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRnVsbCBGQVEgJiBMaW5rJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBDdXN0b21lckZBUUV4cGxvcmVyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXRlc3QgdXBkYXRlZCBGQVEgYXJ0aWNsZXMnfSA9ICdTaXN0IG9wcGRhdGVydGUgT1NTLWFydGlrbGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEZBUSBhcnRpY2xlcyBmb3VuZC4nfSA9ICdJbmdlbiBPU1MtYXJ0aWtsZXIgYmxlIGZ1bm5ldCc7CgogICAgIyBUZW1wbGF0ZTogQ3VzdG9tZXJGQVFSZWxhdGVkQXJ0aWNsZXMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbWlnaHQgYmUgaGVscGZ1bCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3VuZCBubyBoZWxwZnVsIHJlc291cmNlcyBmb3IgdGhlIHN1YmplY3QgYW5kIHRleHQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGUgYSBzdWJqZWN0IG9yIHRleHQgdG8gZ2V0IGEgbGlzdCBvZiBoZWxwZnVsIHJlc291cmNlcy4nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEN1c3RvbWVyRkFRU2VhcmNoCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGdWxsdGV4dCBzZWFyY2ggaW4gRkFRIGFydGljbGVzIChlLiBnLiAiSm9obipuIiBvciAiV2lsbCoiKSd9ID0gJ0Z1bGx0ZWtzdHPDuGsgaSBPU1MtYXJ0aWtsZXIgKGYuZWtzLiAiT2wqIiBlbGxlciAiQW5kcmVhcypuIic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWb3RlIHJlc3RyaWN0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IEZBUSBhcnRpY2xlcyB3aXRoIHZvdGVzLi4uJ30gPSAnQmFyZSBPU1MgYXJ0aWtsZXIgbWVkIHN0ZW1tZXIuLi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0ZSByZXN0cmljdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSBGQVEgYXJ0aWNsZXMgd2l0aCByYXRlLi4uJ30gPSAnQmFyZSBPU1MgYXJ0aWtsZXIgbWVkIHJhbmdlcmluZ2VyLi4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVzdHJpY3Rpb25zJ30gPSAnVGlkc2JlZ3JlbnNuaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgRkFRIGFydGljbGVzIGNyZWF0ZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSBGQVEgYXJ0aWNsZXMgY3JlYXRlZCBiZXR3ZWVuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaC1Qcm9maWxlIGFzIFRlbXBsYXRlPyd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQ3VzdG9tZXJGQVFab29tCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcnRpY2xlIE51bWJlcid9ID0gJ0FydGlra2VsbnVtbWVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBmb3IgYXJ0aWNsZXMgd2l0aCBrZXl3b3JkJ30gPSAnU8O4ayBldHRlciBhcnRpa2xlciBtZWQgbsO4a2tlbG9yZCc7CgogICAgIyBUZW1wbGF0ZTogUHVibGljRkFRU2VhcmNoT3BlblNlYXJjaERlc2NyaXB0aW9uRkFRTnVtYmVyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMnfSA9ICdPZmZlbnRsaWcnOwoKICAgICMgVGVtcGxhdGU6IFB1YmxpY0ZBUVNlYXJjaFJlc3VsdFNob3J0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydCYWNrIHRvIEZBUSBFeHBsb3Jlcid9ID0gJ1RpbGJha2UgdGlsIE9TUyB1dGZvcnNrZXJlbic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFBZGQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkIHJ3IHBlcm1pc3Npb24hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGNhdGVnb3JpZXMgZm91bmQgd2hlcmUgdXNlciBoYXMgcmVhZC93cml0ZSBwZXJtaXNzaW9ucyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGVmYXVsdCBsYW5ndWFnZSBmb3VuZCBhbmQgY2FuXCd0IGNyZWF0ZSBhIG5ldyBvbmUuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUNhdGVnb3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIENhdGVnb3J5SUQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgY2F0ZWdvcnkgc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJ0VuIGthdGVnb3JpIG3DpSBoYSBldCBuYXZuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGNhdGVnb3J5IGFscmVhZHkgZXhpc3RzJ30gPSAnRGVubmUga2F0ZWdvcmllbiBla3Npc3RlcmVyIGFsbGVyZWRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY2F0ZWdvcnkgYWxyZWFkeSBleGlzdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIENhdGVnb3J5SUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGNhdGVnb3J5ICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgY2F0ZWdvcnkgdXBkYXRlZCEnfSA9ICdPU1Mta2F0ZWdvcmkgb3BwZGF0ZXJ0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgY2F0ZWdvcnkgYWRkZWQhJ30gPSAnT1NTLWthdGVnb3JpIGxhZ3QgdGlsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBDYXRlZ29yeSd9ID0gJ1NsZXR0IGthdGVnb3JpJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gSXRlbUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSBubyBwZXJtaXNzaW9uIGZvciB0aGlzIGNhdGVnb3J5ISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBGQVEgYXJ0aWNsZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRRXhwbG9yZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBDYXRlZ29yeUlEICVzIGlzIGludmFsaWQuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUhpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIEl0ZW1JRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEhpc3RvcnknfSA9ICdPU1MtaGlzdG9yaWtrJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUpvdXJuYWwucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBKb3VybmFsJ30gPSAnT1NTLWpvdXJuYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBjb25maWcgb3B0aW9uIEZBUTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZyBvcHRpb24gRkFROjpGcm9udGVuZDo6T3ZlcnZpZXcgbmVlZHMgdG8gYmUgYSBIQVNIIHJlZiEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjb25maWcgb3B0aW9uIGZvdW5kIGZvciB0aGUgdmlldyAiJXMiISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFMYW5ndWFnZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gTGFuZ3VhZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIG5hbWUgaXMgcmVxdWlyZWQhJ30gPSAnTmF2biBlciBww6VrcmV2ZCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBsYW5ndWFnZSBhbHJlYWR5IGV4aXN0cyEnfSA9ICdEZXR0ZSBzcHLDpWtldCBmaW5uZXMgYWxsZXJlZGUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGxhbmd1YWdlICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgbGFuZ3VhZ2UgdXBkYXRlZCEnfSA9ICdPU1Mtc3Byw6VrIG9wcGRhdGVydCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGxhbmd1YWdlIGFkZGVkISd9ID0gJ09TUy1zcHLDpWsgbGFndCB0aWwhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBMYW5ndWFnZSAlcyd9ID0gJ1NsZXR0IHNwcsOlayAlcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFQcmludC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzdWx0J30gPSAnUmVzdWx0YXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCB1cGRhdGUnfSA9ICdTaXN0IG9wcGRhdGVydCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgRHluYW1pYyBGaWVsZHMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRUmljaFRleHQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vICVzIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgbG9hZCBMYW5ndWFnZU9iamVjdCEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBSZXN1bHQhJ30gPSAnSW5nZW4gcmVzdWx0YXRlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgTnVtYmVyJ30gPSAnT1NTLW51bW1lcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IENoYW5nZWQgYnknfSA9ICdTaXN0IGVuZHJldCBhdic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSXRlbSBDcmVhdGUgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSXRlbSBDcmVhdGUgVGltZSAoYmV0d2VlbiknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ2hhbmdlIFRpbWUgKGJlZm9yZS9hZnRlciknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ2hhbmdlIFRpbWUgKGJldHdlZW4pJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VxdWFscyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmVhdGVyIHRoYW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JlYXRlciB0aGFuIGVxdWFscyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTbWFsbGVyIHRoYW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU21hbGxlciB0aGFuIGVxdWFscyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIEZpbGVJRCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhhbmtzIGZvciB5b3VyIHZvdGUhJ30gPSAnVGFrayBmb3IgZGluIHN0ZW1tZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgYWxyZWFkeSB2b3RlZCEnfSA9ICdEdSBoYXIgYWxsZXJlZGUgc3RlbXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gcmF0ZSBzZWxlY3RlZCEnfSA9ICdJbmdlbiByYXRpbmcgdmFsZ3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHZvdGluZyBtZWNoYW5pc20gaXMgbm90IGVuYWJsZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB2b3RlIHJhdGUgaXMgbm90IGRlZmluZWQhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9DdXN0b21lckZBUVByaW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBQcmludCd9ID0gJ1V0c2tyaWZ0IGF2IE9TUy1hcnRpa2tlbCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQ3VzdG9tZXJGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZWQgYmV0d2Vlbid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQ3VzdG9tZXJGQVFab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIEl0ZW1JRCEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL1B1YmxpY0ZBUUV4cGxvcmVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZXMgKG5ldyBjcmVhdGVkKSd9ID0gJ09TUy1hcnRpa2xlciAobnlsaWcgb3BwcmV0dGV0KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZXMgKHJlY2VudGx5IGNoYW5nZWQpJ30gPSAnT1NTLWFydGlrbGVyIChueWxpZyBlbmRyZXQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlcyAoVG9wIDEwKSd9ID0gJ09TUy1hcnRpa2xlciAoVG9wcCAxMCknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL1B1YmxpY0ZBUVJTUy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gVHlwZSBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZSBtdXN0IGJlIGVpdGhlciBMYXN0Q3JlYXRlIG9yIExhc3RDaGFuZ2Ugb3IgVG9wMTAhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBjcmVhdGUgUlNTIGZpbGUhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvSGVhZGVyTWV0YS9BZ2VudEZBUVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEZBUUZ1bGx0ZXh0KSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0hlYWRlck1ldGEvQ3VzdG9tZXJGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gQ3VzdG9tZXIgKCVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAtIEN1c3RvbWVyIChGQVFGdWxsdGV4dCknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9IZWFkZXJNZXRhL1B1YmxpY0ZBUVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgLSBQdWJsaWMgKCVzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAtIFB1YmxpYyAoRkFRRnVsbHRleHQpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTGF5b3V0L0ZBUS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCByYXRlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGFydGljbGUgaXMgZW1wdHkhJ30gPSAnRGVubmUgYXJ0aWtrZWxlbiBlciB0b20hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhdGVzdCBjcmVhdGVkIEZBUSBhcnRpY2xlcyd9ID0gJ1Npc3Qgb3BwcmV0dGVkZSBPU1MtYXJ0aWtsZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG9wIDEwIEZBUSBhcnRpY2xlcyd9ID0gJ1RvcHAgMTAgT1NTJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTGlua09iamVjdC9GQVEucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRlbnQgVHlwZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9EeW5hbWljRmllbGQvRHJpdmVyL0ZBUS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IHRoZSBhdHRyaWJ1dGUgd2hpY2ggRkFRcyB3aWxsIGJlIHNlYXJjaGVkIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4dGVybmFsLXNvdXJjZSBrZXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IHRoZSB0eXBlIG9mIGRpc3BsYXknfSA9ICcnOwoKICAgICMgRGF0YWJhc2UgWE1MIC8gU09QTSBEZWZpbml0aW9uOiBGQVEuc29wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW50ZXJuYWwnfSA9ICdpbnRlcm4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZXh0ZXJuYWwnfSA9ICdla3N0ZXJuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3B1YmxpYyd9ID0gJ29mZmVudGxpZyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgZmlsdGVyIGZvciBIVE1MIG91dHB1dCB0byBhZGQgbGlua3MgYmVoaW5kIGEgZGVmaW5lZCBzdHJpbmcuIFRoZSBlbGVtZW50IEltYWdlIGFsbG93cyB0d28gaW5wdXQga2luZHMuIEZpcnN0IHRoZSBuYW1lIG9mIGFuIGltYWdlIChlLmcuIGZhcS5wbmcpLiBJbiB0aGlzIGNhc2UgdGhlIE9UT0JPIGltYWdlIHBhdGggd2lsbCBiZSB1c2VkLiBUaGUgc2Vjb25kIHBvc3NpYmlsaXR5IGlzIHRvIGluc2VydCB0aGUgbGluayB0byB0aGUgaW1hZ2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEZBUSBhcnRpY2xlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NTUyBjb2xvciBmb3IgdGhlIHZvdGluZyByZXN1bHQuJ30gPSAnQ1NTLWZhcmdlIGZvciBhdnN0ZW1uaW5nc3Jlc3VsdGF0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIFRpbWUgVG8gTGVhdmUgZm9yIEZBUSBpdGVtcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0ZWdvcnkgTWFuYWdlbWVudCd9ID0gJ0thdGVnb3Jpb3Bwc2V0dCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSBNYW5hZ2VtZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgUHJpbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBSZWxhdGVkIEFydGljbGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBSZWxhdGVkIEFydGljbGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIHNlYXJjaC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWNpbWFsIHBsYWNlcyBvZiB0aGUgdm90aW5nIHJlc3VsdC4nfSA9ICdBbnRhbGwgZGVzaW1hbGVyIGZvciBhdnN0ZW1uaW5nc3Jlc3VsdGF0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgY2F0ZWdvcnkgbmFtZS4nfSA9ICdGb3J2YWxndCBrYXRlZ29yaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IGxhbmd1YWdlIGZvciBGQVEgYXJ0aWNsZXMgb24gc2luZ2xlIGxhbmd1YWdlIG1vZGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHByaW9yaXR5IG9mIHRpY2tldHMgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPQogICAgICAgICdTdGFuZGFyZCBwcmlvcml0ZXQgZm9yIHNha2VyIGZvciBnb2RramVubmluZyBhdiBPU1MtYXJ0aWtsZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdGUgZm9yIEZBUSBlbnRyeS4nfSA9ICdTdGFuZGFyZCBzdGF0dXMgZm9yIGV0IE9TUy1vYmpla3QuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdGUgb2YgdGlja2V0cyBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICdTdGFuZGFyZCBzdGF0dXMgZm9yIHNha2VyIGZvciBnb2RramVubmluZyBhdiBPU1MtYXJ0aWtsZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgdHlwZSBvZiB0aWNrZXRzIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHZhbHVlIGZvciB0aGUgQWN0aW9uIHBhcmFtZXRlciBmb3IgdGhlIHB1YmxpYyBmcm9udGVuZC4gVGhlIEFjdGlvbiBwYXJhbWV0ZXIgaXMgdXNlZCBpbiB0aGUgc2NyaXB0cyBvZiB0aGUgc3lzdGVtLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSBBY3Rpb25zIHdoZXJlIGEgc2V0dGluZ3MgYnV0dG9uIGlzIGF2YWlsYWJsZSBpbiB0aGUgbGlua2VkIG9iamVjdHMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIFBsZWFzZSBub3RlIHRoYXQgdGhlc2UgQWN0aW9ucyBtdXN0IGhhdmUgcmVnaXN0ZXJlZCB0aGUgZm9sbG93aW5nIEpTIGFuZCBDU1MgZmlsZXM6IENvcmUuQWxsb2NhdGlvbkxpc3QuY3NzLCBDb3JlLlVJLkFsbG9jYXRpb25MaXN0LmpzLCBDb3JlLlVJLlRhYmxlLlNvcnQuanMsIENvcmUuQWdlbnQuVGFibGVGaWx0ZXJzLmpzIGFuZCBDb3JlLkFnZW50LkxpbmtPYmplY3QuanMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIGlmIHRoZSBGQVEgdGl0bGUgc2hvdWxkIGJlIGNvbmNhdGVuYXRlZCB0byBhcnRpY2xlIHN1YmplY3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgRkFRcyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90ZTogT25seSBGQVEgYXR0cmlidXRlcyBhbmQgZHluYW1pYyBmaWVsZHMgKER5bmFtaWNGaWVsZF9OYW1lWCkgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBGQVEgam91cm5hbC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgRkFRIGxpc3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiBhIEZBUSBzZWFyY2ggb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIGEgRkFRIHNlYXJjaCBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gYSBGQVEgc2VhcmNoIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgcHVibGljIGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc2hvd24gRkFRIHNlYXJjaCBhdHRyaWJ1dGUgZm9yIEZBUSBzZWFyY2ggc2NyZWVuLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGhlaWdodCBmb3IgdGhlIHJpY2ggdGV4dCBlZGl0b3IgY29tcG9uZW50IGZvciB0aGlzIHNjcmVlbi4gRW50ZXIgbnVtYmVyIChwaXhlbHMpIG9yIHBlcmNlbnQgdmFsdWUgKHJlbGF0aXZlKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBpbmZvcm1hdGlvbiB0byBiZSBpbnNlcnRlZCBpbiBhIEZBUSBiYXNlZCBUaWNrZXQuICJGdWxsIEZBUSIgaW5jbHVkZXMgdGV4dCwgYXR0YWNobWVudHMgYW5kIGlubGluZSBpbWFnZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcGFyYW1ldGVycyBmb3IgdGhlIGRhc2hib2FyZCBiYWNrZW5kLiAiTGltaXQiIGRlZmluZXMgdGhlIG51bWJlciBvZiBlbnRyaWVzIGRpc3BsYXllZCBieSBkZWZhdWx0LiAiR3JvdXAiIGlzIHVzZWQgdG8gcmVzdHJpY3QgYWNjZXNzIHRvIHRoZSBwbHVnaW4gKGUuIGcuIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiBpbmRpY2F0ZXMgaWYgdGhlIHBsdWdpbiBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb3IgaWYgdGhlIHVzZXIgbmVlZHMgdG8gZW5hYmxlIGl0IG1hbnVhbGx5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIEZBUSBFeHBsb3Jlci4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBGQVEgam91cm5hbC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBGQVEgc2VhcmNoLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgd2hlcmUgdGhlIFwnSW5zZXJ0IEZBUVwnIGxpbmsgd2lsbCBiZSBkaXNwbGF5ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluaXRpb24gb2YgRkFRIGl0ZW0gZnJlZSB0ZXh0IGZpZWxkLid9ID0gJ0RlZmluaXNqb24gYXYgZnJpdGVrc3RmZWx0IGZvciBPU1MtYXJ0aWtsZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoaXMgRkFRJ30gPSAnU2xldHQgZGVubmUgYXJ0aWtrZWxlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBvdmVydmlldyBzY3JlZW4gb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIG92ZXJ2aWV3IHNjcmVlbiBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHByaW50IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgcHJpbnQgc2NyZWVuIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBwcmludCBzY3JlZW4gb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBzZWFyY2ggc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBzZWFyY2ggc2NyZWVuIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBzZWFyY2ggc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc21hbGwgZm9ybWF0IG92ZXJ2aWV3IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHpvb20gc2NyZWVuIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSB6b29tIHNjcmVlbiBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoaXMgRkFRJ30gPSAnRW5kcmUgZGVubmUgYXJ0aWtrZWxlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgbXVsdGlwbGUgbGFuZ3VhZ2VzIG9uIEZBUSBtb2R1bGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSBzZXJ2aWNlIGFzc2lnbm1lbnQgZm9yIEZBUXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB0aGUgcmVsYXRlZCBhcnRpY2xlIGZlYXR1cmUgZm9yIHRoZSBjdXN0b21lciBmcm9udGVuZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgdm90aW5nIG1lY2hhbmlzbSBvbiBGQVEgbW9kdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHBsb3Jlcid9ID0gJ1V0Zm9yc2snOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFKQVggUmVzcG9uZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBSkFYIFJlc3BvbmRlciBmb3IgUmljaHRleHQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcmVhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcmVhLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgRGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEhpc3RvcnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBKb3VybmFsIE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIFByaW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgc2VhcmNoIGJhY2tlbmQgcm91dGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpZWxkNCd9ID0gJ0ZlbHQgNCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWVsZDUnfSA9ICdGZWx0IDUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnVsbCBGQVEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPSAnR3J1cHBlIHNvbSBza2FsIGdvZGtqZW5uZSBPU1MtYXJ0aWtsZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgdGhpcyBGQVEnfSA9ICdIaXN0b3Jpa2sgb3ZlciBkZW5uZSBhcnRpa2tlbGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGFjdGl2YXRlZCwgRkFRIGFydGljbGVzIG9mIHN0YXR1cyB0eXBlIGludGVybmFsIGFyZSBhbHNvIHRha2VuIGludG8gYWNjb3VudCBmb3IgdGhlIGFwcHJvdmFsIHByb2Nlc3MuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jbHVkZSBpbnRlcm5hbCBmaWVsZHMgb24gYSBGQVEgYmFzZWQgVGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNsdWRlIHRoZSBuYW1lIG9mIGVhY2ggZmllbGQgaW4gYSBGQVEgYmFzZWQgVGlja2V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnRlcmZhY2VzIHdoZXJlIHRoZSBxdWljayBzZWFyY2ggc2hvdWxkIGJlIHNob3duLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydKb3VybmFsJ30gPSAnSm91cm5hbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYW5ndWFnZSBNYW5hZ2VtZW50J30gPSAnU3Byw6Vrb3Bwc2V0dCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYW5ndWFnZSBNYW5hZ2VtZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW1pdCBmb3IgdGhlIHNlYXJjaCB0byBidWlsZCB0aGUga2V5d29yZCBGQVEgYXJ0aWNsZSBsaXN0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoaXMgRkFRIGl0ZW0nfSA9ICdMZW5rIG9wcCBldCBhbm5ldCBvYmpla3QgdGlsIGRlbm5lIGFydGlra2VsZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBxdWV1ZSBuYW1lcyBmb3Igd2hpY2ggdGhlIHJlbGF0ZWQgYXJ0aWNsZSBmZWF0dXJlIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBzdGF0ZSB0eXBlcyB3aGljaCBjYW4gYmUgdXNlZCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2Ygc3RhdGUgdHlwZXMgd2hpY2ggY2FuIGJlIHVzZWQgaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIHN0YXRlIHR5cGVzIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xvYWRlciBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBqb3VybmFsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgcmVzdWx0IG9mIGEgc2VhcmNoIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgcmVzdWx0IG9mIGEgc2VhcmNoIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgcmVzdWx0IG9mIGEgc2VhcmNoIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBFeHBsb3JlciBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBFeHBsb3JlciBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBFeHBsb3JlciBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgU2VhcmNoIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIFNlYXJjaCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBTZWFyY2ggaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIGpvdXJuYWwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gZ2VuZXJhdGUgSFRNTCBPcGVuU2VhcmNoIHByb2ZpbGUgZm9yIHNob3J0IEZBUSBzZWFyY2ggaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gZ2VuZXJhdGUgSFRNTCBPcGVuU2VhcmNoIHByb2ZpbGUgZm9yIHNob3J0IEZBUSBzZWFyY2ggaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGdlbmVyYXRlIGh0bWwgT3BlblNlYXJjaCBwcm9maWxlIGZvciBzaG9ydCBGQVEgc2VhcmNoLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBGQVEgQXJ0aWNsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEZBUSBhcnRpY2xlcyBuZWVkIGFwcHJvdmFsIGJlZm9yZSB0aGV5IGdldCBwdWJsaXNoZWQuJ30gPSAnTnllIGFydGlrbGVyIHRyZW5nZXIgZ29ka2plbm5pbmcgZsO4ciBkZSBrYW4gcHVibGlzZXJlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgb24gZWFjaCBwYWdlIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIG9uIGVhY2ggcGFnZSBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIHNob3duIGl0ZW1zIGluIGxhc3QgY2hhbmdlcy4nfSA9ICdBbnRhbGwgb2JqZWt0ZXIgdmlzdCBpIHNpc3RlIGVuZHJpbmdlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIHNob3duIGl0ZW1zIGluIGxhc3QgY3JlYXRlZC4nfSA9ICdBbnRhbGwgdmlzdGUgb2JqZWt0ZXIgdW5kZXIgc2lzdCBvcHByZXR0ZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBzaG93biBpdGVtcyBpbiB0aGUgdG9wIDEwIGZlYXR1cmUuJ30gPSAnQW50YWxsIHZpc3RlIGFydGlrbGVyIGkgIlRvcHAgMTAiLWZ1bmtzam9uZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3V0cHV0IGZpbHRlciB0byBhZGQgSmF2YS1zY3JpcHQgdG8gQ3VzdG9tZXJUaWNrZXRNZXNzYWdlIHNjcmVlbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdXRwdXQgbGltaXQgZm9yIHRoZSByZWxhdGVkIEZBUSBhcnRpY2xlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgRkFRIGl0ZW1zIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIEZBUSBqb3VybmFsIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIEZBUSBpdGVtcyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBGQVEgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhpcyBGQVEnfSA9ICdTa3JpdiB1dCBkZW5uZSBhcnRpa2tlbGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBGQVEgUHJpbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBGQVEgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIEZBUSBzZWFyY2guJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBGQVEuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1F1ZXVlIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0gJ0vDuCBmb3IgZ29ka2plbm5pbmcgYXYgT1NTLWFydGlrbGVyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRlcyBmb3Igdm90aW5nLiBLZXkgbXVzdCBiZSBpbiBwZXJjZW50Lid9ID0gJ1JhdGVyIGZvciBhdnN0ZW1taW5nLiBOw7hra2VsIG3DpSB2w6ZyZSBpIHByb3NlbnQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIEZBUSd9ID0gJ1PDuGsgaSBPU1MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIEZBUSBTbWFsbC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIEZBUS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGhvdyBtYW55IGl0ZW1zIHNob3VsZCBiZSBzaG93biBpbiBKb3VybmFsIE92ZXJ2aWV3ICJTbWFsbCIgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgaG93IG1hbnkgaXRlbXMgc2hvdWxkIGJlIHNob3duIGluIE92ZXJ2aWV3ICJTbWFsbCIgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBBZ2VudEZBUVpvb20uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBkZWZhdWx0IGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gQ3VzdG9tZXJGQVFab29tIChhbmQgUHVibGljRkFRWm9vbSkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBtYXhpbXVtIGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gQWdlbnRGQVFab29tLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgbWF4aW11bSBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEN1c3RvbWVyRkFRWm9vbSAoYW5kIFB1YmxpY0ZBUVpvb20pLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgIkluc2VydCBGQVEgTGluayIgQnV0dG9uIGluIEFnZW50RkFRWm9vbVNtYWxsIGZvciBwdWJsaWMgRkFRIEFydGljbGVzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgIkluc2VydCBGQVEgVGV4dCAmIExpbmsiIC8gIkluc2VydCBGdWxsIEZBUSAmIExpbmsiIEJ1dHRvbiBpbiBBZ2VudEZBUVpvb21TbWFsbCBmb3IgcHVibGljIEZBUSBBcnRpY2xlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93ICJJbnNlcnQgRkFRIFRleHQiIC8gIkluc2VydCBGdWxsIEZBUSIgQnV0dG9uIGluIEFnZW50RkFRWm9vbVNtYWxsLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgRkFRIEFydGljbGUgd2l0aCBIVE1MLid9ID0gJ1ZpcyBIVE1MIGkgT1NTLWFydGlra2VsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IEZBUSBwYXRoIHllcy9uby4nfSA9ICdWaXMgT1NTLXN0aSAoamEvbmVpKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGludmFsaWQgaXRlbXMgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGl0ZW1zIG9mIHN1YmNhdGVnb3JpZXMuJ30gPSAnVmlzIGlubmhvbGQgaSB1bmRlcmthdGVnb3JpZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgbGFzdCBjaGFuZ2UgaXRlbXMgaW4gZGVmaW5lZCBpbnRlcmZhY2VzLid9ID0gJ1ZpcyBzaXN0IGVuZHJlZGUgYXJ0aWtsZXIgaSBkZWZpbmVydGUgZ3JlbnNlc25pdHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgbGFzdCBjcmVhdGVkIGl0ZW1zIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICdWaXMgc2lzdCBvcHByZXR0ZWRlIGFydGlrbGVyIGkgZGVmaW5lcnRlIGdyZW5zZXNuaXR0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgcmVsYXRlZCBhcnRpY2xlcyBvbiBzZXJ2aWNlIGNoYW5nZSBldmVuIHdpdGggZW1wdHkgc3ViamVjdCBhbmQgYm9keS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHRoZSBzdGFycyBmb3IgdGhlIGFydGljbGVzIHdpdGggYSByYXRpbmcgZXF1YWwgb3IgZ3JlYXRlciBsaWtlIHRoZSBkZWZpbmVkIHZhbHVlIChzZXQgdmFsdWUgXCcwXCcgdG8gZGVhY3RpdmF0ZSB0aGUgb3V0cHV0KS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHRvcCAxMCBpdGVtcyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAnVmlzICJUb3BwIDEwIiBpIGRlZmluZXJ0ZSBncmVuc2Vzbml0dC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB2b3RpbmcgaW4gZGVmaW5lZCBpbnRlcmZhY2VzLid9ID0gJ1ZpcyBhdnN0ZW1taW5nIGkgZGVmaW5lcnRlIGdyZW5zZW5zbml0dCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIEZBUSB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSB6b29tIHZpZXcgb2Ygc3VjaCBGQVEgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgdG8gZGVsZXRlIGEgRkFRIGluIGl0cyB6b29tIHZpZXcgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBoaXN0b3J5IG9mIGEgRkFRIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZWRpdCBhIEZBUSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSBGQVEgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgRkFRIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU29sdXRpb24nfSA9ICdMw7hzbmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTeW1wdG9tJ30gPSAnU3ltcHRvbSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZXh0IE9ubHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGRlZmF1bHQgbGFuZ3VhZ2VzIGZvciB0aGUgcmVsYXRlZCBGQVEgYXJ0aWNsZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIEZBUSwgZS5nLiBGQVEjLCBLQiMsIE15RkFRIy4gVGhlIGRlZmF1bHQgaXMgRkFRIy4nfSA9CiAgICAgICAgJ0lkZW50aWZpa2F0b3IgZm9yIGVuIE9TUy1hcnRpa2tlbCwgZi5la3MuIEZBUSMsIEtCIywgT1NTIywgTWluT1NTIy4gU3RhbmRhcmQgZXIgRkFRIy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBzZXR0aW5nIGRlZmluZXMgdGhhdCBhIFwnRkFRXCcgb2JqZWN0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciBcJ0ZBUVwnIG9iamVjdHMgdXNpbmcgdGhlIFwnTm9ybWFsXCcgbGluayB0eXBlLid9ID0KICAgICAgICAnRGVubmUgaW5uc3RpbGxpbmdlbiBkZWZpbmVyZXIgYXQgZW4gT1NTLWFydGlra2VsIGthbiBsZW5rZXMgdGlsIGFuZHJlIE9TUy1hcnRpa2xlciBtZWQgIk5vcm1hbCIgbGVua2V0eXBlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnRkFRXCcgb2JqZWN0cyB1c2luZyB0aGUgXCdQYXJlbnRDaGlsZFwnIGxpbmsgdHlwZS4nfSA9CiAgICAgICAgJ0Rlbm5lIGlubnN0aWxsaW5nZW4gZGVmaW5lcmVyIGF0IGVuIE9TUy1hcnRpa2tlbCBrYW4gbGVua2VzIHRpbCBhbmRyZSBPU1MtYXJ0aWtsZXIgbWVkICJGb3JlbGRyZS9CYXJuIi1sZW5rZXR5cGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBkZWZpbmVzIHRoYXQgYSBcJ0ZBUVwnIG9iamVjdCBjYW4gYmUgbGlua2VkIHdpdGggb3RoZXIgXCdUaWNrZXRcJyBvYmplY3RzIHVzaW5nIHRoZSBcJ05vcm1hbFwnIGxpbmsgdHlwZS4nfSA9CiAgICAgICAgJ0Rlbm5lIGlubnN0aWxsaW5nZW4gZGVmaW5lcmVyIGF0IGVuIE9TUy1hcnRpa2tlbCBrYW4gbGVua2VzIHRpbCBhbmRyZSBzYWtlciBtZWQgIk5vcm1hbCIgbGVua2V0eXBlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnVGlja2V0XCcgb2JqZWN0cyB1c2luZyB0aGUgXCdQYXJlbnRDaGlsZFwnIGxpbmsgdHlwZS4nfSA9CiAgICAgICAgJ0Rlbm5lIGlubnN0aWxsaW5nZW4gZGVmaW5lcmVyIGF0IGVuIE9TUy1hcnRpa2tlbCBrYW4gbGVua2VzIHRpbCBhbmRyZSBzYWtlciBtZWQgIkZvcmVsZHJlL0Jhcm4iLWxlbmtldHlwZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IGJvZHkgZm9yIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlLid9ID0gJ1Nha3Npbm5ob2xkIGZvciBnb2RramVubmluZyBhdiBPU1MtYXJ0aWtsZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBzdWJqZWN0IGZvciBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZS4gUGVybWl0dGVkIG5vdGlmaWNhdGlvbiB0YWdzIGFyZSA8T1RPQk9fRkFRX05VTUJFUj4sIDxPVE9CT19GQVFfQ0FURUdPUllJRD4sIDxPVE9CT19GQVFfSVRFTUlEPj4gPE9UT0JPX0ZBUV9USVRMRT4gYW5kIDxPVE9CT19GQVFfU1RBVEVJRD4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG9vbGJhciBJdGVtIGZvciBhIHNob3J0Y3V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydleHRlcm5hbCAoY3VzdG9tZXIpJ30gPSAna3VuIHRpbCBrdW5kZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW50ZXJuYWwgKGFnZW50KSd9ID0gJ2t1biBpbnRlcm50IChhZ2VudGVyKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwdWJsaWMgKGFsbCknfSA9ICdvZmZlbnRsaWcgKGFsbGUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3B1YmxpYyAocHVibGljKSd9ID0gJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ05vJywKICAgICdPaycsCiAgICAnU2V0dGluZ3MnLAogICAgJ1N1Ym1pdCcsCiAgICAnVGhpcyBtaWdodCBiZSBoZWxwZnVsJywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==</File>
        <File Location="Kernel/Language/nl_FAQ.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6Om5sX0ZBUTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRQWRkCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIEFydGljbGUnfSA9ICdBcnRpa2VsIHRvZXZvZWdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydLZXl3b3Jkcyd9ID0gJ1RyZWZ3b29yZGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgY2F0ZWdvcnkgaXMgcmVxdWlyZWQuJ30gPSAnS2llcyBlZW4gY2F0ZWdvcmllLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcHByb3ZhbCd9ID0gJ0dvZWRrZXVyaW5nJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUNhdGVnb3J5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQ2F0ZWdvcnkgTWFuYWdlbWVudCd9ID0gJ0ZBUSBjYXRlZ29yaWViZWhlZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEZBUSBDYXRlZ29yeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEZBUSBDYXRlZ29yeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgY2F0ZWdvcnknfSA9ICdDYXRlZ29yaWUgdG9ldm9lZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRlZ29yeSd9ID0gJ0NhdGVnb3JpZSB0b2V2b2VnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDYXRlZ29yeSd9ID0gJ0NhdGVnb3JpZSBiZXdlcmtlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWJjYXRlZ29yeSBvZid9ID0gJ1N1YmNhdGVnb3JpZSB2YW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhdCBsZWFzdCBvbmUgcGVybWlzc2lvbiBncm91cC4nfSA9ICdTZWxlY3RlZXIgdGVubWluc3RlIMOpw6luIHBlcm1pc3NpZWdyb2VwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBncm91cHMgdGhhdCBjYW4gYWNjZXNzIGFydGljbGVzIGluIHRoaXMgY2F0ZWdvcnkuJ30gPSAnR2VicnVpa2VycyBtZXQgcmVjaHRlbiBvcCBhcnRpa2VsZW4gaW4gZGV6ZSBjYXRlZ29yaWUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dpbGwgYmUgc2hvd24gYXMgY29tbWVudCBpbiBFeHBsb3Jlci4nfSA9ICdXb3JkdCBpbiB3ZWJpbnRlcmZhY2UgZ2V0b29uZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNhdGVnb3J5Pyd9ID0gJ1dpbHQgdSBkZXplIGNhdGVnb3JpZSB2ZXJ3aWpkZXJlbj8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgY2F0ZWdvcnkuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIEZBUSBhcnRpY2xlIGFuZC9vciBpcyBwYXJlbnQgb2YgYXQgbGVhc3Qgb25lIG90aGVyIGNhdGVnb3J5J30gPQogICAgICAgICdVIGt1bnQgZGV6ZSBjYXRlZ29yaWUgbmlldCB2ZXJ3aWpkZXJlbi4gSGlqIHdvcmR0IGdlYnJ1aWt0IGluIGVlbiBvZiBtZWVyIGFydGlrZWxlbiBlbi9vZiBoZWVmdCBvbmRlcmxpZ2dlbmRlIGNhdGVnb3Jpw6tuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGNhdGVnb3J5IGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBGQVEgYXJ0aWNsZShzKSd9ID0gJ0RlemUgY2F0ZWdvcmllIHdvcmR0IGdlYnJ1aWt0IGRvb3IgZGUgdm9sZ2VuZGUgYXJ0aWtlbGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY2F0ZWdvcnkgaXMgcGFyZW50IG9mIHRoZSBmb2xsb3dpbmcgc3ViY2F0ZWdvcmllcyd9ID0gJ0RlemUgY2F0ZWdvcmllIGhlZWZ0IGRlIHZvbGdlbmRlIHN1YmNhdGVnb3Jpw6tuJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUURlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIEZBUSBhcnRpY2xlPyd9ID0gJ1dpbHQgdSBkaXQgYXJ0aWtlbCB2ZXJ3aWpkZXJlbj8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRJ30gPSAnRkFRJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUV4cGxvcmVyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgRXhwbG9yZXInfSA9ICdGQVEgdmVya2VubmVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1F1aWNrIFNlYXJjaCd9ID0gJ1pvZWtlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXaWxkY2FyZHMgYXJlIGFsbG93ZWQuJ30gPSAnV2lsZGNhcmRzIHppam4gdG9lZ2VzdGFhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWR2YW5jZWQgU2VhcmNoJ30gPSAnVWl0Z2VicmVpZCB6b2VrZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3ViY2F0ZWdvcmllcyd9ID0gJ1N1YmNhdGVnb3Jpw6tuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlcyd9ID0gJ0FydGlrZWxlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBzdWJjYXRlZ29yaWVzIGZvdW5kLid9ID0gJ0dlZW4gc3ViY2F0ZWdvcmnDq24gZ2V2b25kZW4uJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUhpc3RvcnkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YnfSA9ICdHZXNjaGllZGVuaXMgdmFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgQ29udGVudCd9ID0gJ0luaG91ZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGV0aW1lJ30gPSAnQWFuZ2VtYWFrdCBvcCc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFKb3VybmFsT3ZlcnZpZXdTbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gRkFRIEpvdXJuYWwgZGF0YSBmb3VuZC4nfSA9ICdHZWVuIGRhdGEgZ2V2b25kZW4uJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUxhbmd1YWdlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgTGFuZ3VhZ2UgTWFuYWdlbWVudCd9ID0gJ0JlaGVlciB0YWxlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIExhbmd1YWdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgRkFRIExhbmd1YWdlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZSB0aGlzIGZlYXR1cmUgaWYgeW91IHdhbnQgdG8gd29yayB3aXRoIG11bHRpcGxlIGxhbmd1YWdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbGFuZ3VhZ2UnfSA9ICdUYWFsIHRvZXZvZWdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgTGFuZ3VhZ2UnfSA9ICdUYWFsIHRvZXZvZWdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IExhbmd1YWdlJ30gPSAnVGFhbCBiZXdlcmtlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBsYW5ndWFnZS4gSXQgaXMgdXNlZCBpbiBhdCBsZWFzdCBvbmUgRkFRIGFydGljbGUhJ30gPQogICAgICAgICdVIGt1bnQgZGV6ZSB0YWFsIG5pZXQgdmVyd2lqZGVyZW4sIGhpaiB3b3JkdCBnZWJydWlrdCBkb29yIGVlbiBvZiBtZWVyIGFydGlrZWxlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBsYW5ndWFnZSBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgRkFRIEFydGljbGUocyknfSA9ICdEZXplIHRhYWwgaXMgZ2VicnVpa3Qgdm9vciBkZSB2b2xnZW5kZSBhcnRpa2VsZW4nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRT3ZlcnZpZXdOYXZCYXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRleHQgU2V0dGluZ3MnfSA9ICdDb250ZXh0IEluc3RlbGxpbmdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgYXJ0aWNsZXMgcGVyIHBhZ2UnfSA9ICdBYW50YWwgYXJ0aWtlbGVuIHBlciBwYWdpbmEnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRT3ZlcnZpZXdTbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gRkFRIGRhdGEgZm91bmQuJ30gPSAnR2VlbiBGQVEgZGF0YSBnZXZvbmRlbi4nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRUmVsYXRlZEFydGljbGVzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydvdXQgb2YgNSd9ID0gJ3ZhbiA1JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVNlYXJjaAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnS2V5d29yZCd9ID0gJ1RyZWZ3b29yZGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGUgKGUuIGcuIEVxdWFscyAxMCBvciBHcmVhdGVyVGhhbiA2MCknfSA9ICdTdGVtIChiaWp2LiBnZWxpamsgYWFuIDEwIG9mIGdyb3RlciBkYW4gNjApJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGUgKGUuIGcuIEVxdWFscyAyNSUgb3IgR3JlYXRlclRoYW4gNzUlKSd9ID0gJ1ZlcmhvdWRpbmcgKHZiOiBHZWxpamsgYWFuIDI1JSBvZiBHcm90ZXIgZGFuIDc1JSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwcm92ZWQnfSA9ICdBYW5nZW5vbWVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgY2hhbmdlZCBieSd9ID0gJ0xhYXRzdCBnZXdpanppZ2QgZG9vcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDcmVhdGUgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJ0ZBUSBBcnRpY2xlIENyZWF0ZSBUaW1lICh2b29yL25hKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDcmVhdGUgVGltZSAoYmV0d2VlbiknfSA9ICdGQVEgQXJ0aWNsZSBDcmVhdGUgVGltZSAodHVzc2VuKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDaGFuZ2UgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJ0ZBUSBBcnRpY2xlIENoYW5nZSBUaW1lICh2b29yL25hKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDaGFuZ2UgVGltZSAoYmV0d2VlbiknfSA9ICdGQVEgQXJ0aWNsZSBDaGFuZ2UgVGltZSAodHVzc2VuKSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFTZWFyY2hPcGVuU2VhcmNoRGVzY3JpcHRpb25GdWxsdGV4dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRRnVsbHRleHQnfSA9ICdab2VrZW4gaW4gRkFRJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVNlYXJjaFNtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgU2VhcmNoJ30gPSAnRkFRIHpvZWtlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9maWxlIFNlbGVjdGlvbid9ID0gJ1Byb2ZpZWwgc2VsZWN0aWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSd9ID0gJ1N0ZW0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdm90ZSBzZXR0aW5ncyd9ID0gJ0dlZW4gaW5zdGVsbGluZ2VuIG9tIHRlIHN0ZW1tZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWMgdm90ZXMnfSA9ICdTcGVjaWZpZWtlIHN0ZW1tZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZS4gZy4gRXF1YWxzIDEwIG9yIEdyZWF0ZXJUaGFuIDYwJ30gPSAndmI6IEdlbGlqayBhYW4gMTAgb2YgR3JvdGVyIERhbiA2MCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRlJ30gPSAnQmVvb3JkZWxpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gcmF0ZSBzZXR0aW5ncyd9ID0gJ0dlZW4gYmVvb3JkZWxpbmcgaW5zdGVsbGluZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmljIHJhdGUnfSA9ICdTcGVjaWZpZWtlIGJlb29yZGVsaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuIGcuIEVxdWFscyAyNSUgb3IgR3JlYXRlclRoYW4gNzUlJ30gPSAnYmlqdi4gZ2VsaWprIDI1JSBvZiBncm90ZXIgZGFuIDc1JSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDcmVhdGUgVGltZSd9ID0gJ0ZBUSBBcnRpY2xlIENyZWF0ZSBUaW1lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENoYW5nZSBUaW1lJ30gPSAnRkFRIEFydGljbGUgQ2hhbmdlIFRpbWUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRWm9vbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEluZm9ybWF0aW9uJ30gPSAnSW5mb3JtYXRpZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRpbmcnfSA9ICdCZW9vcmRlbGluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWb3Rlcyd9ID0gJ1N0ZW1tZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdm90ZXMgZm91bmQhJ30gPSAnR2VlbiBzdGVtbWVuIGdldm9uZGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHZvdGVzIGZvdW5kISBCZSB0aGUgZmlyc3Qgb25lIHRvIHJhdGUgdGhpcyBGQVEgYXJ0aWNsZS4nfSA9ICdHZWVuIHN0ZW1tZW4gZ2V2b25kZW4uIFdlZXMgZGUgZWVyc3RlIG9tIGRpdCBhcnRpa2VsIHRlIGJlb29yZGVsZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Rvd25sb2FkIEF0dGFjaG1lbnQnfSA9ICdTbGEgYmlqbGFnZSBvcCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyBvcGVuIGxpbmtzIGluIHRoZSBmb2xsb3dpbmcgZGVzY3JpcHRpb24gYmxvY2tzLCB5b3UgbWlnaHQgbmVlZCB0byBwcmVzcyBDdHJsIG9yIENtZCBvciBTaGlmdCBrZXkgd2hpbGUgY2xpY2tpbmcgdGhlIGxpbmsgKGRlcGVuZGluZyBvbiB5b3VyIGJyb3dzZXIgYW5kIE9TKS4nfSA9CiAgICAgICAgJ09tIGRlIGxpbmtzIGluIGRlIG9tc2NocmlqdmluZ2VuIHRlIG9wZW5lbiBpcyBoZXQgbW9nZWxpamsgZGF0IHUgQ3RybCBvZiBDbWQgb2YgU2hpZnQgbW9ldCBpbmRydWtrZW4gdGVyd2lqbCB1IG9wIGRlIGxpbmsga2xpa3QgKGFmaGFua2VsaWprIHZhbiB1dyBicm93c2VyIGVuIGJlc3R1cmluZ3NzeXN0ZWVtKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG93IGhlbHBmdWwgd2FzIHRoaXMgYXJ0aWNsZT8gUGxlYXNlIGdpdmUgdXMgeW91ciByYXRpbmcgYW5kIGhlbHAgdG8gaW1wcm92ZSB0aGUgRkFRIERhdGFiYXNlLiBUaGFuayBZb3UhJ30gPQogICAgICAgICdIaWVscCBkaXQgYXJ0aWtlbCBiaWogaGV0IGJlYW50d29vcmRlbiB2YW4gdXcgdnJhYWc/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J25vdCBoZWxwZnVsJ30gPSAnaGVsZW1hYWwgbmlldCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd2ZXJ5IGhlbHBmdWwnfSA9ICdoZWVsIGVyZyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFab29tU21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBGQVEgdGl0bGUgdG8gYXJ0aWNsZSBzdWJqZWN0J30gPSAnRkFRIHRpdGVsIHRvZXZvZWdlbiBhYW4gb25kZXJ3ZXJwIHZhbiBoZXQgYXJ0aWtlbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRkFRIFRleHQnfSA9ICdWb2VnIEZBUSB0ZWtzdCBpbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRnVsbCBGQVEnfSA9ICdWb2xsZWRpZ2UgRkFRIGludm9lZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGQVEgTGluayd9ID0gJ1ZvZWcgbGluayBuYWFyIEZBUSBpbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRkFRIFRleHQgJiBMaW5rJ30gPSAnVm9lZyBGQVEgdGVrc3QgZW4gbGluayBpbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRnVsbCBGQVEgJiBMaW5rJ30gPSAnVm9sbGVkaWdlIEZBUSAmIExpbmsgaW52b2VnZW4nOwoKICAgICMgVGVtcGxhdGU6IEN1c3RvbWVyRkFRRXhwbG9yZXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhdGVzdCB1cGRhdGVkIEZBUSBhcnRpY2xlcyd9ID0gJ0xhYXRzdCBnZXdpanppZ2RlIGFydGlrZWxlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBGQVEgYXJ0aWNsZXMgZm91bmQuJ30gPSAnR2VlbiBhcnRpa2VsZW4gZ2V2b25kZW4uJzsKCiAgICAjIFRlbXBsYXRlOiBDdXN0b21lckZBUVJlbGF0ZWRBcnRpY2xlcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtaWdodCBiZSBoZWxwZnVsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvdW5kIG5vIGhlbHBmdWwgcmVzb3VyY2VzIGZvciB0aGUgc3ViamVjdCBhbmQgdGV4dC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZSBhIHN1YmplY3Qgb3IgdGV4dCB0byBnZXQgYSBsaXN0IG9mIGhlbHBmdWwgcmVzb3VyY2VzLid9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQ3VzdG9tZXJGQVFTZWFyY2gKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bGx0ZXh0IHNlYXJjaCBpbiBGQVEgYXJ0aWNsZXMgKGUuIGcuICJKb2huKm4iIG9yICJXaWxsKiIpJ30gPSAnWm9la2VuIGluIHRla3N0IHZhbiBhcnRpa2VsZW4gKGJpanYuICJKYW5zKmVuIiBvZiAiUHJpbnQqIiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSByZXN0cmljdGlvbnMnfSA9ICdTdGVtbWluZ3NiZXBlcmtpbmdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IEZBUSBhcnRpY2xlcyB3aXRoIHZvdGVzLi4uJ30gPSAnQWxsZWVuIEZBUSBhcnRpa2VsZW4gd2Fhcm9wIGdlc3RlbWQgd2VyZC4uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRlIHJlc3RyaWN0aW9ucyd9ID0gJ0JlcGVya2luZ2VuIHZhbiBiZW9vcmRlbGluZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgRkFRIGFydGljbGVzIHdpdGggcmF0ZS4uLid9ID0gJ0FsbGVlbiBGQVEgYXJ0aWtlbGVuIG1ldCBlZW4gYmVvb3JkZWxpbmcgLi4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVzdHJpY3Rpb25zJ30gPSAnVGlqZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IEZBUSBhcnRpY2xlcyBjcmVhdGVkJ30gPSAnQWxsZWVuIEZBUSBhcnRpa2VscyBkaWUgYWFuZ2VtYWFrdCB3ZXJkZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSBGQVEgYXJ0aWNsZXMgY3JlYXRlZCBiZXR3ZWVuJ30gPSAnQWxsZWVuIEZBUSBhcnRpa2VsIGRpZSBhYW5nZW1hYWt0IHdlcmRlbiB0dXNzZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoLVByb2ZpbGUgYXMgVGVtcGxhdGU/J30gPSAnWm9lay1Qcm9maWVsIGFscyB0ZW1wbGF0ZT8nOwoKICAgICMgVGVtcGxhdGU6IEN1c3RvbWVyRkFRWm9vbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJ0aWNsZSBOdW1iZXInfSA9ICdBcnRpa2VsbnVtbWVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBmb3IgYXJ0aWNsZXMgd2l0aCBrZXl3b3JkJ30gPSAnWm9layBvcCBhcnRpa2VsZW4gbWV0IHRyZWZ3b29yZCc7CgogICAgIyBUZW1wbGF0ZTogUHVibGljRkFRU2VhcmNoT3BlblNlYXJjaERlc2NyaXB0aW9uRkFRTnVtYmVyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMnfSA9ICdPcGVuYmFhcic7CgogICAgIyBUZW1wbGF0ZTogUHVibGljRkFRU2VhcmNoUmVzdWx0U2hvcnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0JhY2sgdG8gRkFRIEV4cGxvcmVyJ30gPSAnVGVydWcgbmFhciBkZSBGQVEgVmVya2VubmVyJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUFkZC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgcncgcGVybWlzc2lvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY2F0ZWdvcmllcyBmb3VuZCB3aGVyZSB1c2VyIGhhcyByZWFkL3dyaXRlIHBlcm1pc3Npb25zISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkZWZhdWx0IGxhbmd1YWdlIGZvdW5kIGFuZCBjYW5cJ3QgY3JlYXRlIGEgbmV3IG9uZS4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRQ2F0ZWdvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgQ2F0ZWdvcnlJRCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRlZ29yeSBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAnR2VlZiBlZW4gbmFhbSBvcCB2b29yIGRlIGNhdGVnb3JpZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBjYXRlZ29yeSBhbHJlYWR5IGV4aXN0cyd9ID0gJ0RlemUgY2F0ZWdvcmllIGJlc3RhYXQgYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBjYXRlZ29yeSBhbHJlYWR5IGV4aXN0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQ2F0ZWdvcnlJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgY2F0ZWdvcnkgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBjYXRlZ29yeSB1cGRhdGVkISd9ID0gJ0ZBUSBjYXRlZ29yaWUgYmlqZ2V3ZXJrdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGNhdGVnb3J5IGFkZGVkISd9ID0gJ0ZBUSBjYXRlZ29yaWUgdG9lZ2V2b2VnZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIENhdGVnb3J5J30gPSAnQ2F0ZWdvcmllIHZlcndpamRlcmVuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gSXRlbUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSBubyBwZXJtaXNzaW9uIGZvciB0aGlzIGNhdGVnb3J5ISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBGQVEgYXJ0aWNsZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRRXhwbG9yZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBDYXRlZ29yeUlEICVzIGlzIGludmFsaWQuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUhpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIEl0ZW1JRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEhpc3RvcnknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRSm91cm5hbC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEpvdXJuYWwnfSA9ICdGQVEgam91cm5hYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBjb25maWcgb3B0aW9uIEZBUTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZyBvcHRpb24gRkFROjpGcm9udGVuZDo6T3ZlcnZpZXcgbmVlZHMgdG8gYmUgYSBIQVNIIHJlZiEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjb25maWcgb3B0aW9uIGZvdW5kIGZvciB0aGUgdmlldyAiJXMiISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFMYW5ndWFnZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gTGFuZ3VhZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIG5hbWUgaXMgcmVxdWlyZWQhJ30gPSAnRGUgbmFhbSBpcyB2ZXJwbGljaHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbGFuZ3VhZ2UgYWxyZWFkeSBleGlzdHMhJ30gPSAnRGV6ZSB0YWFsIGJlc3RhYXQgYWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGxhbmd1YWdlICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgbGFuZ3VhZ2UgdXBkYXRlZCEnfSA9ICdUYWFsIGJpamdld2Vya3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGxhbmd1YWdlIGFkZGVkISd9ID0gJ1RhYWwgdG9lZ2V2b2VnZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIExhbmd1YWdlICVzJ30gPSAnVGFhbCB2ZXJ3aWpkZXJlbiAlcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFQcmludC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzdWx0J30gPSAnUmVzdWx0YWF0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgdXBkYXRlJ30gPSAnTGFhdHN0ZSB1cGRhdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIER5bmFtaWMgRmllbGRzJ30gPSAnRkFRIER5bmFtaXNjaGUgdmVsZGVuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUVJpY2hUZXh0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyAlcyBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGxvYWQgTGFuZ3VhZ2VPYmplY3QhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gUmVzdWx0ISd9ID0gJ0dlZW4gcmVzdWx0YWF0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgTnVtYmVyJ30gPSAnRkFRIG51bW1lcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IENoYW5nZWQgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ3JlYXRlIFRpbWUgKGJlZm9yZS9hZnRlciknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ3JlYXRlIFRpbWUgKGJldHdlZW4pJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJdGVtIENoYW5nZSBUaW1lIChiZWZvcmUvYWZ0ZXIpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJdGVtIENoYW5nZSBUaW1lIChiZXR3ZWVuKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcXVhbHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JlYXRlciB0aGFuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyZWF0ZXIgdGhhbiBlcXVhbHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU21hbGxlciB0aGFuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NtYWxsZXIgdGhhbiBlcXVhbHMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRWm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBGaWxlSUQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoYW5rcyBmb3IgeW91ciB2b3RlISd9ID0gJ0JlZGFua3Qgdm9vciB1dyBzdGVtISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSBhbHJlYWR5IHZvdGVkISd9ID0gJ1UgaGVlZnQgYWwgZ2VzdGVtZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gcmF0ZSBzZWxlY3RlZCEnfSA9ICdHZWVuIHdhYXJkZXJpbmcgZ2VzZWxlY3RlZXJkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdm90aW5nIG1lY2hhbmlzbSBpcyBub3QgZW5hYmxlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHZvdGUgcmF0ZSBpcyBub3QgZGVmaW5lZCEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0N1c3RvbWVyRkFRUHJpbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIFByaW50J30gPSAnQXJ0aWtlbCBhZmRydWtrZW4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0N1c3RvbWVyRkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGVkIGJldHdlZW4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0N1c3RvbWVyRkFRWm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBJdGVtSUQhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9QdWJsaWNGQVFFeHBsb3Jlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGVzIChuZXcgY3JlYXRlZCknfSA9ICdBcnRpa2VsZW4gKG5pZXV3IGFhbmdlbWFha3QpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlcyAocmVjZW50bHkgY2hhbmdlZCknfSA9ICdBcnRpa2VsZW4gKGxhYXRzdCBnZXdpanppZ2QpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlcyAoVG9wIDEwKSd9ID0gJ0FydGlrZWxlbiAodG9wIDEwKSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvUHVibGljRkFRUlNTLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBUeXBlIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlIG11c3QgYmUgZWl0aGVyIExhc3RDcmVhdGUgb3IgTGFzdENoYW5nZSBvciBUb3AxMCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBSU1MgZmlsZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9IZWFkZXJNZXRhL0FnZW50RkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoRkFRRnVsbHRleHQpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvSGVhZGVyTWV0YS9DdXN0b21lckZBUVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgLSBDdXN0b21lciAoJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gQ3VzdG9tZXIgKEZBUUZ1bGx0ZXh0KSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0hlYWRlck1ldGEvUHVibGljRkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAtIFB1YmxpYyAoJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gUHVibGljIChGQVFGdWxsdGV4dCknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9MYXlvdXQvRkFRLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIHJhdGUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgYXJ0aWNsZSBpcyBlbXB0eSEnfSA9ICdEaXQgaXRlbSBoZWVmdCBnZWVuIHdhYXJkZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGF0ZXN0IGNyZWF0ZWQgRkFRIGFydGljbGVzJ30gPSAnTGFhdHN0IGFhbmdlbWFha3RlIGFydGlrZWxlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3AgMTAgRkFRIGFydGljbGVzJ30gPSAnUG9wdWxhaXJzdGUgYXJ0aWtlbGVuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTGlua09iamVjdC9GQVEucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRlbnQgVHlwZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9EeW5hbWljRmllbGQvRHJpdmVyL0ZBUS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IHRoZSBhdHRyaWJ1dGUgd2hpY2ggRkFRcyB3aWxsIGJlIHNlYXJjaGVkIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4dGVybmFsLXNvdXJjZSBrZXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IHRoZSB0eXBlIG9mIGRpc3BsYXknfSA9ICcnOwoKICAgICMgRGF0YWJhc2UgWE1MIC8gU09QTSBEZWZpbml0aW9uOiBGQVEuc29wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW50ZXJuYWwnfSA9ICdpbnRlcm4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZXh0ZXJuYWwnfSA9ICdleHRlcm4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncHVibGljJ30gPSAncHVibGllayc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgZmlsdGVyIGZvciBIVE1MIG91dHB1dCB0byBhZGQgbGlua3MgYmVoaW5kIGEgZGVmaW5lZCBzdHJpbmcuIFRoZSBlbGVtZW50IEltYWdlIGFsbG93cyB0d28gaW5wdXQga2luZHMuIEZpcnN0IHRoZSBuYW1lIG9mIGFuIGltYWdlIChlLmcuIGZhcS5wbmcpLiBJbiB0aGlzIGNhc2UgdGhlIE9UT0JPIGltYWdlIHBhdGggd2lsbCBiZSB1c2VkLiBUaGUgc2Vjb25kIHBvc3NpYmlsaXR5IGlzIHRvIGluc2VydCB0aGUgbGluayB0byB0aGUgaW1hZ2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEZBUSBhcnRpY2xlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NTUyBjb2xvciBmb3IgdGhlIHZvdGluZyByZXN1bHQuJ30gPSAnQ1NTIGtsZXVyIHZvb3IgZGUgc3RlbW1pbmdzdWl0c2xhZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgVGltZSBUbyBMZWF2ZSBmb3IgRkFRIGl0ZW1zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSBNYW5hZ2VtZW50J30gPSAnQmVoZWVyIGNhdGVnb3Jpw6tuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGVnb3J5IE1hbmFnZW1lbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBQcmludC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIFJlbGF0ZWQgQXJ0aWNsZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIFJlbGF0ZWQgQXJ0aWNsZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgc2VhcmNoLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlY2ltYWwgcGxhY2VzIG9mIHRoZSB2b3RpbmcgcmVzdWx0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IGNhdGVnb3J5IG5hbWUuJ30gPSAnU3RhbmRhYXJkIGNhdGVnb3JpZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IGxhbmd1YWdlIGZvciBGQVEgYXJ0aWNsZXMgb24gc2luZ2xlIGxhbmd1YWdlIG1vZGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHByaW9yaXR5IG9mIHRpY2tldHMgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPQogICAgICAgICdTdGFuZGFhcmQgcHJpb3JpdGVpdCB2YW4gdGlja2V0cyB2b29yIGdvZWRrZXVyaW5nIHZhbiBGQVEgYXJ0aWtlbHMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdGUgZm9yIEZBUSBlbnRyeS4nfSA9ICdTdGFuZGFhcmQgc3RhdHVzIHZvb3IgRkFRIGFydGlrZWxzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdGUgb2YgdGlja2V0cyBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICdTdGFuZGFhcmQgc3RhdHVzIHZhbiBoZXQgdGlja2V0IHZvb3IgaGV0IGdvZWRrZXVyZW4gdmFuIEZBUSBhcnRpa2Vscy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCB0eXBlIG9mIHRpY2tldHMgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgdmFsdWUgZm9yIHRoZSBBY3Rpb24gcGFyYW1ldGVyIGZvciB0aGUgcHVibGljIGZyb250ZW5kLiBUaGUgQWN0aW9uIHBhcmFtZXRlciBpcyB1c2VkIGluIHRoZSBzY3JpcHRzIG9mIHRoZSBzeXN0ZW0uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIEFjdGlvbnMgd2hlcmUgYSBzZXR0aW5ncyBidXR0b24gaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rZWQgb2JqZWN0cyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gUGxlYXNlIG5vdGUgdGhhdCB0aGVzZSBBY3Rpb25zIG11c3QgaGF2ZSByZWdpc3RlcmVkIHRoZSBmb2xsb3dpbmcgSlMgYW5kIENTUyBmaWxlczogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgYW5kIENvcmUuQWdlbnQuTGlua09iamVjdC5qcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgaWYgdGhlIEZBUSB0aXRsZSBzaG91bGQgYmUgY29uY2F0ZW5hdGVkIHRvIGFydGljbGUgc3ViamVjdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBGQVFzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IEZBUSBhdHRyaWJ1dGVzIGFuZCBkeW5hbWljIGZpZWxkcyAoRHluYW1pY0ZpZWxkX05hbWVYKSBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIEZBUSBqb3VybmFsLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBGQVEgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIGEgRkFRIHNlYXJjaCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gYSBGQVEgc2VhcmNoIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiBhIEZBUSBzZWFyY2ggb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzaG93biBGQVEgc2VhcmNoIGF0dHJpYnV0ZSBmb3IgRkFRIHNlYXJjaCBzY3JlZW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaGVpZ2h0IGZvciB0aGUgcmljaCB0ZXh0IGVkaXRvciBjb21wb25lbnQgZm9yIHRoaXMgc2NyZWVuLiBFbnRlciBudW1iZXIgKHBpeGVscykgb3IgcGVyY2VudCB2YWx1ZSAocmVsYXRpdmUpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGluZm9ybWF0aW9uIHRvIGJlIGluc2VydGVkIGluIGEgRkFRIGJhc2VkIFRpY2tldC4gIkZ1bGwgRkFRIiBpbmNsdWRlcyB0ZXh0LCBhdHRhY2htZW50cyBhbmQgaW5saW5lIGltYWdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZGFzaGJvYXJkIGJhY2tlbmQuICJMaW1pdCIgZGVmaW5lcyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgZGlzcGxheWVkIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCBhY2Nlc3MgdG8gdGhlIHBsdWdpbiAoZS4gZy4gR3JvdXA6IGFkbWluO2dyb3VwMTtncm91cDI7KS4gIkRlZmF1bHQiIGluZGljYXRlcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgRkFRIEV4cGxvcmVyLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIEZBUSBqb3VybmFsLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIEZBUSBzZWFyY2guIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB3aGVyZSB0aGUgXCdJbnNlcnQgRkFRXCcgbGluayB3aWxsIGJlIGRpc3BsYXllZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5pdGlvbiBvZiBGQVEgaXRlbSBmcmVlIHRleHQgZmllbGQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGlzIEZBUSd9ID0gJ1ZlcndpamRlciBkaXQgYXJ0aWtlbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBvdmVydmlldyBzY3JlZW4gb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIG92ZXJ2aWV3IHNjcmVlbiBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHByaW50IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgcHJpbnQgc2NyZWVuIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBwcmludCBzY3JlZW4gb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBzZWFyY2ggc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBzZWFyY2ggc2NyZWVuIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBzZWFyY2ggc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc21hbGwgZm9ybWF0IG92ZXJ2aWV3IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHpvb20gc2NyZWVuIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSB6b29tIHNjcmVlbiBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoaXMgRkFRJ30gPSAnQmV3ZXJrIGRpdCBhcnRpa2VsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSBtdWx0aXBsZSBsYW5ndWFnZXMgb24gRkFRIG1vZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHNlcnZpY2UgYXNzaWdubWVudCBmb3IgRkFRcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHRoZSByZWxhdGVkIGFydGljbGUgZmVhdHVyZSBmb3IgdGhlIGN1c3RvbWVyIGZyb250ZW5kLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB2b3RpbmcgbWVjaGFuaXNtIG9uIEZBUSBtb2R1bGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4cGxvcmVyJ30gPSAnT3ZlcnppY2h0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBSkFYIFJlc3BvbmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQUpBWCBSZXNwb25kZXIgZm9yIFJpY2h0ZXh0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJlYSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJlYS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIERlbGV0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBIaXN0b3J5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSm91cm5hbCBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBQcmludC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIHNlYXJjaCBiYWNrZW5kIHJvdXRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWVsZDQnfSA9ICdWZWxkNCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWVsZDUnfSA9ICdWZWxkNSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGdWxsIEZBUSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICdHcm9lcCB2b29yIGRlIGdvZWRrZXVyaW5nIHZhbiBGQVEgaXRlbXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiB0aGlzIEZBUSd9ID0gJ0dlc2NoaWVkZW5pcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBhY3RpdmF0ZWQsIEZBUSBhcnRpY2xlcyBvZiBzdGF0dXMgdHlwZSBpbnRlcm5hbCBhcmUgYWxzbyB0YWtlbiBpbnRvIGFjY291bnQgZm9yIHRoZSBhcHByb3ZhbCBwcm9jZXNzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgaW50ZXJuYWwgZmllbGRzIG9uIGEgRkFRIGJhc2VkIFRpY2tldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jbHVkZSB0aGUgbmFtZSBvZiBlYWNoIGZpZWxkIGluIGEgRkFRIGJhc2VkIFRpY2tldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW50ZXJmYWNlcyB3aGVyZSB0aGUgcXVpY2sgc2VhcmNoIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSm91cm5hbCd9ID0gJ0xvZ2JvZWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFuZ3VhZ2UgTWFuYWdlbWVudCd9ID0gJ0JlaGVlciB0YWxlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYW5ndWFnZSBNYW5hZ2VtZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW1pdCBmb3IgdGhlIHNlYXJjaCB0byBidWlsZCB0aGUga2V5d29yZCBGQVEgYXJ0aWNsZSBsaXN0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoaXMgRkFRIGl0ZW0nfSA9ICdLb3BwZWwgZWVuIGFuZGVyIG9iamVjdCBhYW4gZGl0IGFydGlrZWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBxdWV1ZSBuYW1lcyBmb3Igd2hpY2ggdGhlIHJlbGF0ZWQgYXJ0aWNsZSBmZWF0dXJlIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBzdGF0ZSB0eXBlcyB3aGljaCBjYW4gYmUgdXNlZCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2Ygc3RhdGUgdHlwZXMgd2hpY2ggY2FuIGJlIHVzZWQgaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIHN0YXRlIHR5cGVzIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xvYWRlciBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBqb3VybmFsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgcmVzdWx0IG9mIGEgc2VhcmNoIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgcmVzdWx0IG9mIGEgc2VhcmNoIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgcmVzdWx0IG9mIGEgc2VhcmNoIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBFeHBsb3JlciBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBFeHBsb3JlciBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBFeHBsb3JlciBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgU2VhcmNoIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIFNlYXJjaCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBTZWFyY2ggaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIGpvdXJuYWwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gZ2VuZXJhdGUgSFRNTCBPcGVuU2VhcmNoIHByb2ZpbGUgZm9yIHNob3J0IEZBUSBzZWFyY2ggaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gZ2VuZXJhdGUgSFRNTCBPcGVuU2VhcmNoIHByb2ZpbGUgZm9yIHNob3J0IEZBUSBzZWFyY2ggaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGdlbmVyYXRlIGh0bWwgT3BlblNlYXJjaCBwcm9maWxlIGZvciBzaG9ydCBGQVEgc2VhcmNoLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBGQVEgQXJ0aWNsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEZBUSBhcnRpY2xlcyBuZWVkIGFwcHJvdmFsIGJlZm9yZSB0aGV5IGdldCBwdWJsaXNoZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIG9uIGVhY2ggcGFnZSBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBvbiBlYWNoIHBhZ2Ugb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBzaG93biBpdGVtcyBpbiBsYXN0IGNoYW5nZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBzaG93biBpdGVtcyBpbiBsYXN0IGNyZWF0ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBzaG93biBpdGVtcyBpbiB0aGUgdG9wIDEwIGZlYXR1cmUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J091dHB1dCBmaWx0ZXIgdG8gYWRkIEphdmEtc2NyaXB0IHRvIEN1c3RvbWVyVGlja2V0TWVzc2FnZSBzY3JlZW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3V0cHV0IGxpbWl0IGZvciB0aGUgcmVsYXRlZCBGQVEgYXJ0aWNsZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIEZBUSBpdGVtcyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBGQVEgam91cm5hbCBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBGQVEgaXRlbXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgRkFRIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW50IHRoaXMgRkFRJ30gPSAnQXJ0aWtlbCBhZmRydWtrZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIEZBUSBQcmludC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIEZBUSBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRIHNlYXJjaC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIEZBUS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVldWUgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGVzIGZvciB2b3RpbmcuIEtleSBtdXN0IGJlIGluIHBlcmNlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIEZBUSd9ID0gJ1pvZWtlbiBpbiBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIEZBUSBTbWFsbC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIEZBUS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGhvdyBtYW55IGl0ZW1zIHNob3VsZCBiZSBzaG93biBpbiBKb3VybmFsIE92ZXJ2aWV3ICJTbWFsbCIgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgaG93IG1hbnkgaXRlbXMgc2hvdWxkIGJlIHNob3duIGluIE92ZXJ2aWV3ICJTbWFsbCIgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBBZ2VudEZBUVpvb20uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBkZWZhdWx0IGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gQ3VzdG9tZXJGQVFab29tIChhbmQgUHVibGljRkFRWm9vbSkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBtYXhpbXVtIGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gQWdlbnRGQVFab29tLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgbWF4aW11bSBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEN1c3RvbWVyRkFRWm9vbSAoYW5kIFB1YmxpY0ZBUVpvb20pLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgIkluc2VydCBGQVEgTGluayIgQnV0dG9uIGluIEFnZW50RkFRWm9vbVNtYWxsIGZvciBwdWJsaWMgRkFRIEFydGljbGVzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgIkluc2VydCBGQVEgVGV4dCAmIExpbmsiIC8gIkluc2VydCBGdWxsIEZBUSAmIExpbmsiIEJ1dHRvbiBpbiBBZ2VudEZBUVpvb21TbWFsbCBmb3IgcHVibGljIEZBUSBBcnRpY2xlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93ICJJbnNlcnQgRkFRIFRleHQiIC8gIkluc2VydCBGdWxsIEZBUSIgQnV0dG9uIGluIEFnZW50RkFRWm9vbVNtYWxsLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgRkFRIEFydGljbGUgd2l0aCBIVE1MLid9ID0gJ1Rvb24gRkFRIGl0ZW0gbWV0IEhUTUwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBGQVEgcGF0aCB5ZXMvbm8uJ30gPSAnVG9vbiBGQVEgcGFkIGphL25lZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGludmFsaWQgaXRlbXMgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGl0ZW1zIG9mIHN1YmNhdGVnb3JpZXMuJ30gPSAnVG9vbiBpdGVtcyB2YW4gc3ViY2F0ZWdvcmnDq24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBsYXN0IGNoYW5nZSBpdGVtcyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgbGFzdCBjcmVhdGVkIGl0ZW1zIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyByZWxhdGVkIGFydGljbGVzIG9uIHNlcnZpY2UgY2hhbmdlIGV2ZW4gd2l0aCBlbXB0eSBzdWJqZWN0IGFuZCBib2R5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgdGhlIHN0YXJzIGZvciB0aGUgYXJ0aWNsZXMgd2l0aCBhIHJhdGluZyBlcXVhbCBvciBncmVhdGVyIGxpa2UgdGhlIGRlZmluZWQgdmFsdWUgKHNldCB2YWx1ZSBcJzBcJyB0byBkZWFjdGl2YXRlIHRoZSBvdXRwdXQpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgdG9wIDEwIGl0ZW1zIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB2b3RpbmcgaW4gZGVmaW5lZCBpbnRlcmZhY2VzLid9ID0gJ1Rvb24gc3RlbS1mZWF0dXJlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBsaW5raW5nIGEgRkFRIHdpdGggYW5vdGhlciBvYmplY3QgaW4gdGhlIHpvb20gdmlldyBvZiBzdWNoIEZBUSBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyB0byBkZWxldGUgYSBGQVEgaW4gaXRzIHpvb20gdmlldyBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSBGQVEgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgRkFRIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIEZBUSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSBGQVEgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTb2x1dGlvbid9ID0gJ09wbG9zc2luZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTeW1wdG9tJ30gPSAnU3ltcHRvb20nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGV4dCBPbmx5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBkZWZhdWx0IGxhbmd1YWdlcyBmb3IgdGhlIHJlbGF0ZWQgRkFRIGFydGljbGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSBGQVEsIGUuZy4gRkFRIywgS0IjLCBNeUZBUSMuIFRoZSBkZWZhdWx0IGlzIEZBUSMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBzZXR0aW5nIGRlZmluZXMgdGhhdCBhIFwnRkFRXCcgb2JqZWN0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciBcJ0ZBUVwnIG9iamVjdHMgdXNpbmcgdGhlIFwnTm9ybWFsXCcgbGluayB0eXBlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBkZWZpbmVzIHRoYXQgYSBcJ0ZBUVwnIG9iamVjdCBjYW4gYmUgbGlua2VkIHdpdGggb3RoZXIgXCdGQVFcJyBvYmplY3RzIHVzaW5nIHRoZSBcJ1BhcmVudENoaWxkXCcgbGluayB0eXBlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBkZWZpbmVzIHRoYXQgYSBcJ0ZBUVwnIG9iamVjdCBjYW4gYmUgbGlua2VkIHdpdGggb3RoZXIgXCdUaWNrZXRcJyBvYmplY3RzIHVzaW5nIHRoZSBcJ05vcm1hbFwnIGxpbmsgdHlwZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnVGlja2V0XCcgb2JqZWN0cyB1c2luZyB0aGUgXCdQYXJlbnRDaGlsZFwnIGxpbmsgdHlwZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgYm9keSBmb3IgYXBwcm92YWwgb2YgRkFRIGFydGljbGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBzdWJqZWN0IGZvciBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZS4gUGVybWl0dGVkIG5vdGlmaWNhdGlvbiB0YWdzIGFyZSA8T1RPQk9fRkFRX05VTUJFUj4sIDxPVE9CT19GQVFfQ0FURUdPUllJRD4sIDxPVE9CT19GQVFfSVRFTUlEPj4gPE9UT0JPX0ZBUV9USVRMRT4gYW5kIDxPVE9CT19GQVFfU1RBVEVJRD4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG9vbGJhciBJdGVtIGZvciBhIHNob3J0Y3V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydleHRlcm5hbCAoY3VzdG9tZXIpJ30gPSAnZXh0ZXJuIChrbGFudGVuKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpbnRlcm5hbCAoYWdlbnQpJ30gPSAnaW50ZXJuIChnZWJydWlrZXJzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwdWJsaWMgKGFsbCknfSA9ICdwdWJsaWVrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3B1YmxpYyAocHVibGljKSd9ID0gJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ05vJywKICAgICdPaycsCiAgICAnU2V0dGluZ3MnLAogICAgJ1N1Ym1pdCcsCiAgICAnVGhpcyBtaWdodCBiZSBoZWxwZnVsJywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==</File>
        <File Location="Kernel/Language/pl_FAQ.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnBsX0ZBUTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRQWRkCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIEFydGljbGUnfSA9ICdEb2RhaiBhcnR5a3XFgiBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnS2V5d29yZHMnfSA9ICdzxYJvd2Ega2x1Y3pvd2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRlZ29yeSBpcyByZXF1aXJlZC4nfSA9ICdLYXRlZ29yaWEgamVzdCB3eW1hZ2FuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwcm92YWwnfSA9ICdaYXR3aWVyZHplbmllJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUNhdGVnb3J5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQ2F0ZWdvcnkgTWFuYWdlbWVudCd9ID0gJ1phcnrEhWR6YW5pZSBrYXRlZ29yaWFtaSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEZBUSBDYXRlZ29yeSd9ID0gJ0RvZGFqIGthdGVnb3JpxJnCoEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEZBUSBDYXRlZ29yeSd9ID0gJ0VkeXR1aiBrYXRlZ29yacSZIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgY2F0ZWdvcnknfSA9ICdEb2RhaiBrYXRlZ29yacSZJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRlZ29yeSd9ID0gJ0RvZGFqIGthdGVnb3JpxJknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDYXRlZ29yeSd9ID0gJ0VkeXR1aiBrYXRlZ29yacSZJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1YmNhdGVnb3J5IG9mJ30gPSAnUG9ka2F0ZWdvcmlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYXQgbGVhc3Qgb25lIHBlcm1pc3Npb24gZ3JvdXAuJ30gPSAnWmF6bmFjeiBwcnp5bmFqbW5pZWogamVkbsSFIGdydXDEmSB1cHJhd25pZcWELic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBncm91cHMgdGhhdCBjYW4gYWNjZXNzIGFydGljbGVzIGluIHRoaXMgY2F0ZWdvcnkuJ30gPSAnR3J1cHkgYWduZXTDs3csIGt0w7NyZSBtYWrEhSBkb3N0xJlwIGRvIHRlaiBrYXRlZ29yaWkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dpbGwgYmUgc2hvd24gYXMgY29tbWVudCBpbiBFeHBsb3Jlci4nfSA9ICdab3N0YW5pZSBwb2themFueSBqYWtvIGtvbWVudGFyeiB3IGVrc3Bsb3JlcnplLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY2F0ZWdvcnk/J30gPSAnQ3p5IG5hIHBld25vIGNoY2VzeiB1c3VuxIXEhyB0xJkga2F0ZWdvcmnEmT8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgY2F0ZWdvcnkuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIEZBUSBhcnRpY2xlIGFuZC9vciBpcyBwYXJlbnQgb2YgYXQgbGVhc3Qgb25lIG90aGVyIGNhdGVnb3J5J30gPQogICAgICAgICdOaWUgbW/FvGVzeiB1c3VuxIXEhyB0ZWoga2F0ZWdvcmlpLiBKZXN0IG9uYSB1xbx5d2FuYSBwcnpleiBwcnp5bmFqbW5pZWogamVkZW4gYXJ0eWt1xYIgRkFRIGx1Yi9pIGplc3Qgcm9kemljZW0gcHJ6bmFqbW5pZWogamVkbmVqIGlubmVqIGthdGVnb3JpaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGNhdGVnb3J5IGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBGQVEgYXJ0aWNsZShzKSd9ID0gJ1RhIGthdGVnb3JpYSBqZXN0IHXFvHl3YW5hIHcgbmFzdMSZcHVqxIVjeWNoIGFydHlrdcWCYWNoIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGNhdGVnb3J5IGlzIHBhcmVudCBvZiB0aGUgZm9sbG93aW5nIHN1YmNhdGVnb3JpZXMnfSA9ICdUYSBrYXRlZ29yaWEgamVzdCByb2R6aWNlbSBuYXN0xJlwdWrEhWN5Y2ggcG9ka2F0ZWdvcmlpJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUURlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIEZBUSBhcnRpY2xlPyd9ID0gJ0N6eSBuYSBwZXdubyBjaGNlc3ogdXN1bsSFxIcgdGVuIGFydHlrdcWCIEZBUT8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRJ30gPSAnRkFRJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUV4cGxvcmVyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgRXhwbG9yZXInfSA9ICdFa3NwbG9yZXIgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1F1aWNrIFNlYXJjaCd9ID0gJ1N6eWJraWUgd3lzenVraXdhbmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dpbGRjYXJkcyBhcmUgYWxsb3dlZC4nfSA9ICdabmFraSB3aWVsb3puYWN6bmUgc8SFIGRvendvbG9uZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWR2YW5jZWQgU2VhcmNoJ30gPSAnV3lzenVraXdhbmllIHphYXdhbnNvd2FuZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWJjYXRlZ29yaWVzJ30gPSAnUG9ka2F0ZWdvcmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlcyd9ID0gJ0FydHlrdcWCeSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gc3ViY2F0ZWdvcmllcyBmb3VuZC4nfSA9ICdCcmFrIHBvZGthdGVnb3JpaS4nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRSGlzdG9yeQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZid9ID0gJ0hpc3RvcmlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgQ29udGVudCd9ID0gJ1phd2FydG/Fm8SHIGhpc3RvcmlpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZXRpbWUnfSA9ICdVdHdvcnpvbmUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRSm91cm5hbE92ZXJ2aWV3U21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEZBUSBKb3VybmFsIGRhdGEgZm91bmQuJ30gPSAnQnJhayBkYW55Y2ggdyBkemllbm5pa3UgRkFRLic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFMYW5ndWFnZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIExhbmd1YWdlIE1hbmFnZW1lbnQnfSA9ICdaYXJ6xIVkemFuaWUgasSZenlrYW1pIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIExhbmd1YWdlJ30gPSAnRG9kYWogasSZenlrIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEZBUSBMYW5ndWFnZSd9ID0gJ0VkeXR1aiBqxJl6eWsgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZSB0aGlzIGZlYXR1cmUgaWYgeW91IHdhbnQgdG8gd29yayB3aXRoIG11bHRpcGxlIGxhbmd1YWdlcy4nfSA9CiAgICAgICAgJ1XFvHlqIHRlaiBmdW5rY2ppIGplxZtsaSBjaGNlc3ogcHJhY293YcSHIHogd2llbG9tYSBqxJl6eWthbWkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBsYW5ndWFnZSd9ID0gJ0RvZGFqIGrEmXp5ayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgTGFuZ3VhZ2UnfSA9ICdEb2RhaiBqxJl6eWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBMYW5ndWFnZSd9ID0gJ0VkeXR1aiBqxJl6eWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgbGFuZ3VhZ2UuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIEZBUSBhcnRpY2xlISd9ID0KICAgICAgICAnTmllIG1vxbxlc3ogdXN1bsSFxIcgdGVnbyBqxJl6eWthLiBKZXN0IG9uIHXFvHl3YW55IHcgcHJ6eW5ham1uaWVqIGplZG55bSBhcnR5a3VsZSBGQVEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbGFuZ3VhZ2UgaXMgdXNlZCBpbiB0aGUgZm9sbG93aW5nIEZBUSBBcnRpY2xlKHMpJ30gPSAnVGVuIGrEmXp5ayBqZXN0IHXFvHl3YW55IHcgbmFzdMSZcHVqxIVjeWNoIGFydHVrdcWCYWNoIEZBUSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFPdmVydmlld05hdkJhcgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29udGV4dCBTZXR0aW5ncyd9ID0gJ1VzdGF3aWVuaWEga29udGVrc3Rvd2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGFydGljbGVzIHBlciBwYWdlJ30gPSAnTGljemJhIGFydHlrdcWCw7N3IEZBUSBuYSBzdHJvbsSZJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUU92ZXJ2aWV3U21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEZBUSBkYXRhIGZvdW5kLid9ID0gJ0JyYWsgZGFueWNoIEZBUS4nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRUmVsYXRlZEFydGljbGVzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydvdXQgb2YgNSd9ID0gJ3ogNSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFTZWFyY2gKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0tleXdvcmQnfSA9ICdTxYJvd28ga2x1Y3pvd2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSAoZS4gZy4gRXF1YWxzIDEwIG9yIEdyZWF0ZXJUaGFuIDYwKSd9ID0gJ0fFgm9zdWogKG5wLjogcsOzd25lIDEwIGx1YiB3acSZY2VqIG5pxbwgNjApJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGUgKGUuIGcuIEVxdWFscyAyNSUgb3IgR3JlYXRlclRoYW4gNzUlKSd9ID0gJ09jZcWEIChucC46IHLDs3duZSAyNSUgbHViIHdpxJljZWogbmnFvCA3NSUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FwcHJvdmVkJ30gPSAnWmF0d2llcmR6b25lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgY2hhbmdlZCBieSd9ID0gJ09zdGF0bmlvIHptaWVuaW9uZSBwcnpleic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDcmVhdGUgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJ0ZBUSBDemFzIHR3b3J6ZW5pYSB6Z8WCb3N6ZW5pYSAocHJ6ZWQvcG8pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENyZWF0ZSBUaW1lIChiZXR3ZWVuKSd9ID0gJ0ZBUSBDemFzIHR3b3J6ZW5pYSB6Z8WCb3N6ZW5pYSAocG9tacSZZHp5KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDaGFuZ2UgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJ0ZBUSBDemFzIHptaWFueSB6Z8WCb3N6ZW5pYSAocHJ6ZWQvcG8pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENoYW5nZSBUaW1lIChiZXR3ZWVuKSd9ID0gJ0ZBUSBDemFzIHptaWFueSB6Z8WCb3N6ZW5pYSAocG9tacSZZHp5KSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFTZWFyY2hPcGVuU2VhcmNoRGVzY3JpcHRpb25GdWxsdGV4dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRRnVsbHRleHQnfSA9ICdGQVEgcGXFgm5vdGVrc3Rvd28nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRU2VhcmNoU21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBTZWFyY2gnfSA9ICdXeXN6dWtpd2FuaWUgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2ZpbGUgU2VsZWN0aW9uJ30gPSAnV3liw7NyIHByb2ZpbHUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSd9ID0gJ0fFgm9zdWonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdm90ZSBzZXR0aW5ncyd9ID0gJ0JyYWsgdXN0YXdpZcWEIGfFgm9zb3dhbmlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmljIHZvdGVzJ30gPSAnS29ua3JldG5lIGfFgm9zeSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlLiBnLiBFcXVhbHMgMTAgb3IgR3JlYXRlclRoYW4gNjAnfSA9ICducC46IHLDs3duZSAxMCBsdWIgd2nEmWNlaiBuacW8IDYwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGUnfSA9ICdPY2XFhCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyByYXRlIHNldHRpbmdzJ30gPSAnQnJhayB1c3Rhd2llxYQgb2Nlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpYyByYXRlJ30gPSAnS29ua3JldG5hIG9jZW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuIGcuIEVxdWFscyAyNSUgb3IgR3JlYXRlclRoYW4gNzUlJ30gPSAnbnAuOiByw7N3bmUgMjUlIGx1YiB3acSZY2VqIG5pxbwgNzUlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENyZWF0ZSBUaW1lJ30gPSAnQ3phcyB1dHdvcnplbmlhIGFydHlrdcWCdSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ2hhbmdlIFRpbWUnfSA9ICdGQVEgQ3phcyB6bWlhbnkgemfFgm9zemVuaWEnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRWm9vbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEluZm9ybWF0aW9uJ30gPSAnSW5mb3JtYWNqZSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0aW5nJ30gPSAnT2NlbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZXMnfSA9ICdHxYJvc3knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdm90ZXMgZm91bmQhJ30gPSAnQnJhayBnxYJvc8OzdyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdm90ZXMgZm91bmQhIEJlIHRoZSBmaXJzdCBvbmUgdG8gcmF0ZSB0aGlzIEZBUSBhcnRpY2xlLid9ID0gJ0JyYWsgZ8WCb3PDs3chIELEhWTFuiBwaWVyd3N6eSBpIG9jZcWEIHRlbiBhcnR5a3XFgiBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Rvd25sb2FkIEF0dGFjaG1lbnQnfSA9ICdQb2JpZXJ6IHphxYLEhWN6bmlrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIG9wZW4gbGlua3MgaW4gdGhlIGZvbGxvd2luZyBkZXNjcmlwdGlvbiBibG9ja3MsIHlvdSBtaWdodCBuZWVkIHRvIHByZXNzIEN0cmwgb3IgQ21kIG9yIFNoaWZ0IGtleSB3aGlsZSBjbGlja2luZyB0aGUgbGluayAoZGVwZW5kaW5nIG9uIHlvdXIgYnJvd3NlciBhbmQgT1MpLid9ID0KICAgICAgICAnQWJ5IG90d29yennEhyDFgsSFY3phLCB3IHBvbmnFvHN6eWNoIGJsb2thY2ggb3Bpc3UsIG5hbGXFvHkgcHJ6eWNpc27EhcSHIGtsYXdpc3ogQ3RybCwgQ21kIGx1YiBTaGlmdCBwb2RjemFzIGtsaWtuacSZY2lhICh3IHphbGXFvG5vxZtjaSBvZCBwcnplZ2zEhWRhcmtpIGkgc3lzdGVtdSBvcGVyYWN5am5lZ28pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3cgaGVscGZ1bCB3YXMgdGhpcyBhcnRpY2xlPyBQbGVhc2UgZ2l2ZSB1cyB5b3VyIHJhdGluZyBhbmQgaGVscCB0byBpbXByb3ZlIHRoZSBGQVEgRGF0YWJhc2UuIFRoYW5rIFlvdSEnfSA9CiAgICAgICAgJ0phayBwb21vY255IGJ5xYIgdGVuIGFydHlrdcWCPyBQcm9zaW15IG8gdHdvasSFIG9jZW7EmSBpIHBvbW9jIHByenkgdWRvc2tvbmFsYW5pdSBiYXp5IEZBUS4gRHppxJlrdWplbXkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J25vdCBoZWxwZnVsJ30gPSAnbmllcHJ6eWRhdG5lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3ZlcnkgaGVscGZ1bCd9ID0gJ3BvbW9jbmUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRWm9vbVNtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIHRpdGxlIHRvIGFydGljbGUgc3ViamVjdCd9ID0gJ0RvZGFqIHR5dHXFgsKgRkFRIGpha28gdGVtYXQgd2lhZG9tb8WbY2knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZBUSBUZXh0J30gPSAnV3N0YXcgdGVrc3QgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGdWxsIEZBUSd9ID0gJ1dzdGF3IGNhxYJ5IEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRkFRIExpbmsnfSA9ICdXc3RhdyBvZG5vxZtuaWsgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGQVEgVGV4dCAmIExpbmsnfSA9ICdXc3RhdyB0ZWtzdCBpIG9kbm/Fm25payBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZ1bGwgRkFRICYgTGluayd9ID0gJ1dzdGF3IGNhxYJ5IEZBUSBpIG9kbm/Fm25payc7CgogICAgIyBUZW1wbGF0ZTogQ3VzdG9tZXJGQVFFeHBsb3JlcgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGF0ZXN0IHVwZGF0ZWQgRkFRIGFydGljbGVzJ30gPSAnT3N0YXRuaW8gemFrdHVhbGl6b3dhbmUgaW5mb3JtYWNqZSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gRkFRIGFydGljbGVzIGZvdW5kLid9ID0gJ05pZSB6bmFsZXppb25vIGFydHlrdcWCw7N3IEZBUS4nOwoKICAgICMgVGVtcGxhdGU6IEN1c3RvbWVyRkFRUmVsYXRlZEFydGljbGVzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1pZ2h0IGJlIGhlbHBmdWwnfSA9ICdUbyBtb8W8ZSBiecSHIHByenlkYXRuZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3VuZCBubyBoZWxwZnVsIHJlc291cmNlcyBmb3IgdGhlIHN1YmplY3QgYW5kIHRleHQuJ30gPSAnTmllIHpuYWxlemlvbm8gemFzb2LDs3cgcG9tb2N5IGRsYSBwb2RhbmVnbyB0ZW1hdHUgaSB0cmXFm2NpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGUgYSBzdWJqZWN0IG9yIHRleHQgdG8gZ2V0IGEgbGlzdCBvZiBoZWxwZnVsIHJlc291cmNlcy4nfSA9ICdXcGlzeiBvYm9rIHRlbWF0IGx1YiB0cmXFm8SHIHpnxYJvc3plbmlhIGFieSBwcnplc3p1a2HEhyB6YXNvYnkgcG9tb2N5Lic7CgogICAgIyBUZW1wbGF0ZTogQ3VzdG9tZXJGQVFTZWFyY2gKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bGx0ZXh0IHNlYXJjaCBpbiBGQVEgYXJ0aWNsZXMgKGUuIGcuICJKb2huKm4iIG9yICJXaWxsKiIpJ30gPSAnV3lzenVraXdhbmllIHBlxYJub3Rla3N0b3dlIHcgYXJ0eWt1xYJhY2ggRkFRIChucC4gIk5haipwc3p5IiBsdWIgIktvd2Fsc2sqIiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSByZXN0cmljdGlvbnMnfSA9ICdPZ3JhbmljemVuaWEgZ8WCb3Nvd2FuaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSBGQVEgYXJ0aWNsZXMgd2l0aCB2b3Rlcy4uLid9ID0gJ1R5bGtvIGFydHlrdcWCeSBGQVEgeiBnxYJvc2FtaS4uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRlIHJlc3RyaWN0aW9ucyd9ID0gJ09ncmFuaWN6ZW5pYSBvY2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgRkFRIGFydGljbGVzIHdpdGggcmF0ZS4uLid9ID0gJ1R5bGtvIGFydHlrdcWCeSBGQVEgeiBvY2VuxIUuLi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXN0cmljdGlvbnMnfSA9ICdPZ3JhbmljemVuaWEgY3phc293ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IEZBUSBhcnRpY2xlcyBjcmVhdGVkJ30gPSAnVHlsa28gdXR3b3J6b25lIGFydHlrdcWCeSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSBGQVEgYXJ0aWNsZXMgY3JlYXRlZCBiZXR3ZWVuJ30gPSAnVHlsa28gYXJ0eWt1xYJ5IEZBUSB1dHdvcnpvbmUgcG9tacSZZHp5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaC1Qcm9maWxlIGFzIFRlbXBsYXRlPyd9ID0gJ1Byb2ZpbCB3eXN6dWtpd2FuaWEgamFrbyBTemFibG9uPyc7CgogICAgIyBUZW1wbGF0ZTogQ3VzdG9tZXJGQVFab29tCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcnRpY2xlIE51bWJlcid9ID0gJ051bWVyIGFydHlrdcWCdSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggZm9yIGFydGljbGVzIHdpdGgga2V5d29yZCd9ID0gJ1N6dWthaiBhcnR5a3XFgsOzdyB6YSBwb21vY8SFIHPFgm93YSBrbHVjem93ZWdvJzsKCiAgICAjIFRlbXBsYXRlOiBQdWJsaWNGQVFTZWFyY2hPcGVuU2VhcmNoRGVzY3JpcHRpb25GQVFOdW1iZXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyd9ID0gJ1BvYmxpY3puZSc7CgogICAgIyBUZW1wbGF0ZTogUHVibGljRkFRU2VhcmNoUmVzdWx0U2hvcnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0JhY2sgdG8gRkFRIEV4cGxvcmVyJ30gPSAnV3LDs8SHIGRvIFByemVnbMSFZHUgRkFRJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUFkZC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgcncgcGVybWlzc2lvbiEnfSA9ICdQb3RyemVidWplc3ogcHJhdyBvZGN6eXR1L3phcGlzdSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY2F0ZWdvcmllcyBmb3VuZCB3aGVyZSB1c2VyIGhhcyByZWFkL3dyaXRlIHBlcm1pc3Npb25zISd9ID0gJ0JyYWsga2F0ZWdvcmlpIGdkemllIHXFvHl0a293bmlrIHBvc2lhZGEgcHJhd2EgemFwaXN1L29kY3p5dHUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRlZmF1bHQgbGFuZ3VhZ2UgZm91bmQgYW5kIGNhblwndCBjcmVhdGUgYSBuZXcgb25lLid9ID0gJ0JyYWsgZG9tecWbbG5lZ28gasSZenlrYSBpIG5pZSBtb8W8bmEgc3R3b3J6ecSHIG5vd2Vnby4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRQ2F0ZWdvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgQ2F0ZWdvcnlJRCEnfSA9ICdQb3RyemVibmUgQ2F0ZWdvcnlJRCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRlZ29yeSBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAnS2F0ZWdvcmlhIHBvd2lubmEgcG9zaWFkYcSHIG5henfEmSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBjYXRlZ29yeSBhbHJlYWR5IGV4aXN0cyd9ID0gJ1RhIGthdGVnb3JpYSBqdcW8IGlzdG5pZWplJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY2F0ZWdvcnkgYWxyZWFkeSBleGlzdHMhJ30gPSAnVGEga2F0ZWdvcmlhIGp1xbwgaXN0bmllamUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIENhdGVnb3J5SUQgaXMgZ2l2ZW4hJ30gPSAnTmllIHphZGVrbGFyb3dhbm8gQ2F0ZWdvcnlJRCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgY2F0ZWdvcnkgJXMhJ30gPSAnTmllIG1vxbxuYSB1c3VuxIXEhyBrYXRlZ29yaWkgJXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBjYXRlZ29yeSB1cGRhdGVkISd9ID0gJ0thdGVnb3JpYSBGQVEgemFrdHVhbGl6b3dhbmEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBjYXRlZ29yeSBhZGRlZCEnfSA9ICdLYXRlZ29yaWEgRkFRIGRvZGFuYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIENhdGVnb3J5J30gPSAnVXN1xYQga2F0ZWdvcmnEmSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEl0ZW1JRCBpcyBnaXZlbiEnfSA9ICdOaWUgemFkZWtsYXJvd2FubyBJdGVtSUQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIG5vIHBlcm1pc3Npb24gZm9yIHRoaXMgY2F0ZWdvcnkhJ30gPSAnTmllIG1hc3ogdXByYXduaWXFhCBkbyB0eWNoIGthdGVnb3JpaSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgRkFRIGFydGljbGUgJXMhJ30gPSAnTmllIG1vxbxlc3ogdXN1bsSFxIcgYXJ0eWt1xYJ1IEZBUSAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRRXhwbG9yZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBDYXRlZ29yeUlEICVzIGlzIGludmFsaWQuJ30gPSAnQ2F0ZWdvcnlJRCAlcyBqZXN0IG5pZSBwcmF3aWTFgm93ZS4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRSGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gSXRlbUlEIGlzIGdpdmVuISd9ID0gJ05pZSBtb8W8bmEgd3nFm3dpZXRsacSHIGhpc3RvcmlpLCBuaWUgcG9kYW5vIEl0ZW1JRCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEhpc3RvcnknfSA9ICdIaXN0b3JpYSBGQVEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRSm91cm5hbC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEpvdXJuYWwnfSA9ICdEemllbm5payBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBjb25maWcgb3B0aW9uIEZBUTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3J30gPSAnUG90cnplYm5hIGtvbmZpZ3VyYWNqYSBvcGNqaSBGQVE6OkZyb250ZW5kOjpPdmVydmlldyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWcgb3B0aW9uIEZBUTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3IG5lZWRzIHRvIGJlIGEgSEFTSCByZWYhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY29uZmlnIG9wdGlvbiBmb3VuZCBmb3IgdGhlIHZpZXcgIiVzIiEnfSA9ICdCcmFrIGtvbmZpZ3VyYWNqaSBvcGNqaSBkbGEgd2lkb2t1ICIlcyIhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUxhbmd1YWdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBMYW5ndWFnZUlEIGlzIGdpdmVuISd9ID0gJ0JyYWsgemFkZWtsYXJvd2FuZWdvIExhbmd1YWdlSUQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBuYW1lIGlzIHJlcXVpcmVkISd9ID0gJ05hendhIGplc3Qgd3ltYWdhbmEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbGFuZ3VhZ2UgYWxyZWFkeSBleGlzdHMhJ30gPSAnVGVuIGrEmXp5ayBqdcW8IGlzdG5pZWplISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBsYW5ndWFnZSAlcyEnfSA9ICdOaWUgbW/FvGVteSB1c3VuxIXEhyBqxJl6eWthICVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgbGFuZ3VhZ2UgdXBkYXRlZCEnfSA9ICdKxJl6eWsgRkFRIHpha3R1YWxpem93YW55ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgbGFuZ3VhZ2UgYWRkZWQhJ30gPSAnSsSZenlrIEZBUSBkb2RhbnkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBMYW5ndWFnZSAlcyd9ID0gJ1VzdcWEIGrEmXp5ayAlcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFQcmludC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzdWx0J30gPSAnV3luaWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCB1cGRhdGUnfSA9ICdPc3RhdG5pYSBha3R1YWxpemFjamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIER5bmFtaWMgRmllbGRzJ30gPSAnUG9sYSBEeW5hbWljem5lIEZBUSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFSaWNoVGV4dC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gJXMgaXMgZ2l2ZW4hJ30gPSAnTmllIHphZGVrbGFyb3dhbm8gJXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBsb2FkIExhbmd1YWdlT2JqZWN0ISd9ID0gJ05pZSBtb8W8bmEgemHFgmFkb3dhxIcgTGFuZ3VhZ2VPYmplY3QhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gUmVzdWx0ISd9ID0gJ0JyYWsgV3luaWvDs3chJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBOdW1iZXInfSA9ICdOdW1lciBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBDaGFuZ2VkIGJ5J30gPSAnT3N0YXRuaW8gWm1pZW5pb25lIHByemV6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJdGVtIENyZWF0ZSBUaW1lIChiZWZvcmUvYWZ0ZXIpJ30gPSAnQ3phcyB1dHdvcnplbmlhIGVsZW1lbnR1IEZBUSAocHJ6ZWQvcG8pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJdGVtIENyZWF0ZSBUaW1lIChiZXR3ZWVuKSd9ID0gJ0N6YXMgdXR3b3J6ZW5pYSBlbGVtZW50dSBGQVEgKHBvbWnEmWR6eSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ2hhbmdlIFRpbWUgKGJlZm9yZS9hZnRlciknfSA9ICdDemFzIHptaWFueSBlbGVtZW50dSBGQVEgKHByemVkL3BvKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSXRlbSBDaGFuZ2UgVGltZSAoYmV0d2VlbiknfSA9ICdDemFzIHptaWFueSBlbGVtZW50dSBGQVEgKHBvbWnEmWR6eSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXF1YWxzJ30gPSAnUsOzd25lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyZWF0ZXIgdGhhbid9ID0gJ1dpxJlrc3plIG5pxbwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JlYXRlciB0aGFuIGVxdWFscyd9ID0gJ1dpxJlrc3plIGx1YiByw7N3bmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU21hbGxlciB0aGFuJ30gPSAnTW5pZWpzemUgbmnFvCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTbWFsbGVyIHRoYW4gZXF1YWxzJ30gPSAnTW5pZWpzemUgbHViIHLDs3duZSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIEZpbGVJRCEnfSA9ICdQb3RyemVibnkgRmlsZUlEISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGFua3MgZm9yIHlvdXIgdm90ZSEnfSA9ICdEemnEmWt1amVteSB6YSBvZGRhbmllIGfFgm9zdSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgYWxyZWFkeSB2b3RlZCEnfSA9ICdKdcW8IHJheiBnxYJvc293YcWCZcWbISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyByYXRlIHNlbGVjdGVkISd9ID0gJ05pZSB3eWJyYcWCZcWbIG9jZW55ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdm90aW5nIG1lY2hhbmlzbSBpcyBub3QgZW5hYmxlZCEnfSA9ICdNZWNoYW5pem0gZ8WCb3Nvd2FuaWEgbmllIGplc3Qgd8WCxIVjem9ueSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHZvdGUgcmF0ZSBpcyBub3QgZGVmaW5lZCEnfSA9ICdXc2thxbpuaWsgZ8WCb3Nvd2FuaWEgbmllIGplc3Qgb2tyZcWbbG9ueSEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0N1c3RvbWVyRkFRUHJpbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIFByaW50J30gPSAnRHJ1a3VqIGluZm9ybWFjasSZIEZBUSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQ3VzdG9tZXJGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZWQgYmV0d2Vlbid9ID0gJ1N0d29yem9uZSBwb21pxJlkenknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0N1c3RvbWVyRkFRWm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBJdGVtSUQhJ30gPSAnUG90cnplYm5lIEl0ZW1JRCEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL1B1YmxpY0ZBUUV4cGxvcmVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZXMgKG5ldyBjcmVhdGVkKSd9ID0gJ0FydHlrdcWCeSBGQVEgKG5vd2UpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlcyAocmVjZW50bHkgY2hhbmdlZCknfSA9ICdBcnR5a3XFgnkgRkFRIChvc3RhdG5pbyB6bWllbmlvbmUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlcyAoVG9wIDEwKSd9ID0gJ0FydHlrdcWCeSBGQVEgKDEwIG5hamxlcHN6eWNoKSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvUHVibGljRkFRUlNTLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBUeXBlIGlzIGdpdmVuISd9ID0gJ0JyYWsgemFkZWtsYXJvd2FuZWdvIFR5cHUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGUgbXVzdCBiZSBlaXRoZXIgTGFzdENyZWF0ZSBvciBMYXN0Q2hhbmdlIG9yIFRvcDEwISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIFJTUyBmaWxlISd9ID0gJ05pZSBtb8W8bmEgc3R3b3J6ecSHIHBsaWt1IFJTUyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9IZWFkZXJNZXRhL0FnZW50RkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoRkFRRnVsbHRleHQpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvSGVhZGVyTWV0YS9DdXN0b21lckZBUVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgLSBDdXN0b21lciAoJXMpJ30gPSAnJXMgLSBLbGllbnQgKCVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAtIEN1c3RvbWVyIChGQVFGdWxsdGV4dCknfSA9ICclcyAtIEtsaWVudCAoRkFRRnVsbHRleHQpJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvSGVhZGVyTWV0YS9QdWJsaWNGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gUHVibGljICglcyknfSA9ICclcyAtIFB1YmxpY3puZSAoJXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gUHVibGljIChGQVFGdWxsdGV4dCknfSA9ICclcyAtIFB1YmxpY3puZSAoRkFRRnVsbHRleHQpJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTGF5b3V0L0ZBUS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCByYXRlISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGFydGljbGUgaXMgZW1wdHkhJ30gPSAnVGVuIGFydHlrdcWCIGplc3QgcHVzdHkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhdGVzdCBjcmVhdGVkIEZBUSBhcnRpY2xlcyd9ID0gJ09zdGF0bmlvIGRvZGFuZSBpbmZvcm1hY2plIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3AgMTAgRkFRIGFydGljbGVzJ30gPSAnVG9wIDEwIGluZm9ybWFjamkgRkFRJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTGlua09iamVjdC9GQVEucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRlbnQgVHlwZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9EeW5hbWljRmllbGQvRHJpdmVyL0ZBUS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IHRoZSBhdHRyaWJ1dGUgd2hpY2ggRkFRcyB3aWxsIGJlIHNlYXJjaGVkIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4dGVybmFsLXNvdXJjZSBrZXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IHRoZSB0eXBlIG9mIGRpc3BsYXknfSA9ICcnOwoKICAgICMgRGF0YWJhc2UgWE1MIC8gU09QTSBEZWZpbml0aW9uOiBGQVEuc29wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW50ZXJuYWwnfSA9ICd3ZXduxJl0cnpueSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydleHRlcm5hbCd9ID0gJ3pld27EmXRyem5lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3B1YmxpYyd9ID0gJ3B1YmxpY3pueSc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgZmlsdGVyIGZvciBIVE1MIG91dHB1dCB0byBhZGQgbGlua3MgYmVoaW5kIGEgZGVmaW5lZCBzdHJpbmcuIFRoZSBlbGVtZW50IEltYWdlIGFsbG93cyB0d28gaW5wdXQga2luZHMuIEZpcnN0IHRoZSBuYW1lIG9mIGFuIGltYWdlIChlLmcuIGZhcS5wbmcpLiBJbiB0aGlzIGNhc2UgdGhlIE9UT0JPIGltYWdlIHBhdGggd2lsbCBiZSB1c2VkLiBUaGUgc2Vjb25kIHBvc3NpYmlsaXR5IGlzIHRvIGluc2VydCB0aGUgbGluayB0byB0aGUgaW1hZ2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEZBUSBhcnRpY2xlJ30gPSAnRG9kYWogYXJ0eWt1xYIgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NTUyBjb2xvciBmb3IgdGhlIHZvdGluZyByZXN1bHQuJ30gPSAnS29sb3IgQ1NTIGRsYSB3eW5pa8OzdyBnxYJvc293YW5pYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgVGltZSBUbyBMZWF2ZSBmb3IgRkFRIGl0ZW1zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSBNYW5hZ2VtZW50J30gPSAnWmFyesSFZHphbmllIGthdGVnb3JpYW1pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGVnb3J5IE1hbmFnZW1lbnQuJ30gPSAnWmFyesSFZHphbmllIEthdGVnb3JpxIUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBQcmludC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIFJlbGF0ZWQgQXJ0aWNsZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIFJlbGF0ZWQgQXJ0aWNsZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgc2VhcmNoLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlY2ltYWwgcGxhY2VzIG9mIHRoZSB2b3RpbmcgcmVzdWx0Lid9ID0gJ01pZWpzY2EgcG8gcG90cnplY2lua3UgdyB3eW5pa2FjaCBnxYJvc293YW5pYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBjYXRlZ29yeSBuYW1lLid9ID0gJ0RvbXnFm2xuYSBuYXp3YSBrYXRlZ29yaWkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbGFuZ3VhZ2UgZm9yIEZBUSBhcnRpY2xlcyBvbiBzaW5nbGUgbGFuZ3VhZ2UgbW9kZS4nfSA9ICdEb215xZtsbnkgasSZenlrIGRsYSBhcnR5a3XFgsOzdyBGQVEgdyB0cnliaWUgcG9qZWR5bmN6ZWdvIGrEmXp5a2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHByaW9yaXR5IG9mIHRpY2tldHMgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPQogICAgICAgICdEb215xZtsbnkgcHJpb3J5dGV0IHpnxYJvc3plxYQgZGxhIHphdHdpZXJkemXFhCBhcnR5a3XFgsOzdyBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdGUgZm9yIEZBUSBlbnRyeS4nfSA9ICdEb215xZtsbnkgc3RhbiBkbGEgcG96eWNqaSBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdGUgb2YgdGlja2V0cyBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCB0eXBlIG9mIHRpY2tldHMgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgdmFsdWUgZm9yIHRoZSBBY3Rpb24gcGFyYW1ldGVyIGZvciB0aGUgcHVibGljIGZyb250ZW5kLiBUaGUgQWN0aW9uIHBhcmFtZXRlciBpcyB1c2VkIGluIHRoZSBzY3JpcHRzIG9mIHRoZSBzeXN0ZW0uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIEFjdGlvbnMgd2hlcmUgYSBzZXR0aW5ncyBidXR0b24gaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rZWQgb2JqZWN0cyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gUGxlYXNlIG5vdGUgdGhhdCB0aGVzZSBBY3Rpb25zIG11c3QgaGF2ZSByZWdpc3RlcmVkIHRoZSBmb2xsb3dpbmcgSlMgYW5kIENTUyBmaWxlczogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgYW5kIENvcmUuQWdlbnQuTGlua09iamVjdC5qcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgaWYgdGhlIEZBUSB0aXRsZSBzaG91bGQgYmUgY29uY2F0ZW5hdGVkIHRvIGFydGljbGUgc3ViamVjdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBGQVFzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IEZBUSBhdHRyaWJ1dGVzIGFuZCBkeW5hbWljIGZpZWxkcyAoRHluYW1pY0ZpZWxkX05hbWVYKSBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIEZBUSBqb3VybmFsLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBGQVEgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIGEgRkFRIHNlYXJjaCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gYSBGQVEgc2VhcmNoIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiBhIEZBUSBzZWFyY2ggb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzaG93biBGQVEgc2VhcmNoIGF0dHJpYnV0ZSBmb3IgRkFRIHNlYXJjaCBzY3JlZW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaGVpZ2h0IGZvciB0aGUgcmljaCB0ZXh0IGVkaXRvciBjb21wb25lbnQgZm9yIHRoaXMgc2NyZWVuLiBFbnRlciBudW1iZXIgKHBpeGVscykgb3IgcGVyY2VudCB2YWx1ZSAocmVsYXRpdmUpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGluZm9ybWF0aW9uIHRvIGJlIGluc2VydGVkIGluIGEgRkFRIGJhc2VkIFRpY2tldC4gIkZ1bGwgRkFRIiBpbmNsdWRlcyB0ZXh0LCBhdHRhY2htZW50cyBhbmQgaW5saW5lIGltYWdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZGFzaGJvYXJkIGJhY2tlbmQuICJMaW1pdCIgZGVmaW5lcyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgZGlzcGxheWVkIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCBhY2Nlc3MgdG8gdGhlIHBsdWdpbiAoZS4gZy4gR3JvdXA6IGFkbWluO2dyb3VwMTtncm91cDI7KS4gIkRlZmF1bHQiIGluZGljYXRlcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgRkFRIEV4cGxvcmVyLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIEZBUSBqb3VybmFsLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIEZBUSBzZWFyY2guIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB3aGVyZSB0aGUgXCdJbnNlcnQgRkFRXCcgbGluayB3aWxsIGJlIGRpc3BsYXllZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5pdGlvbiBvZiBGQVEgaXRlbSBmcmVlIHRleHQgZmllbGQuJ30gPSAnRGVmaW5pY2phIHBvbGEgZnJlZSB0ZXh0IHBvenljamkgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhpcyBGQVEnfSA9ICdVc3XFhCB0byBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgb3ZlcnZpZXcgc2NyZWVuIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBvdmVydmlldyBzY3JlZW4gb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBwcmludCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHByaW50IHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgcHJpbnQgc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc2VhcmNoIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc2VhcmNoIHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc2VhcmNoIHNjcmVlbiBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHNtYWxsIGZvcm1hdCBvdmVydmlldyBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSB6b29tIHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgem9vbSBzY3JlZW4gb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGlzIEZBUSd9ID0gJ0VkeXR1aiB0byBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIG11bHRpcGxlIGxhbmd1YWdlcyBvbiBGQVEgbW9kdWxlLid9ID0gJ1fFgsSFY3ogd2llbGUgasSZenlrw7N3IHcgbW9kdWxlIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHNlcnZpY2UgYXNzaWdubWVudCBmb3IgRkFRcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHRoZSByZWxhdGVkIGFydGljbGUgZmVhdHVyZSBmb3IgdGhlIGN1c3RvbWVyIGZyb250ZW5kLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB2b3RpbmcgbWVjaGFuaXNtIG9uIEZBUSBtb2R1bGUuJ30gPSAnV8WCxIVjeiBtZWNoYW5pem0gZ8WCb3Nvd2FuaWEgdyBtb2R1bGUgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHBsb3Jlcid9ID0gJ0Vrc3Bsb3Jlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQUpBWCBSZXNwb25kZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFKQVggUmVzcG9uZGVyIGZvciBSaWNodGV4dC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFyZWEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFyZWEuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBEZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBFZGl0Lid9ID0gJ0VkeWNqYSBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBIaXN0b3J5Lid9ID0gJ0hpc3RvcmlhIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEpvdXJuYWwgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJ0xpbWl0IEZBUSB3IHByemVnbMSFZHppZSBkemllbm5pa2EgdyB0cnliaWUgIk1hxYJlIic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJ0xpbWl0IEZBUSB3IHByemVnbMSFZHppZSB3IHRyeWJpZSAiTWHFgmUiJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBQcmludC4nfSA9ICdEcnVrdWogRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgc2VhcmNoIGJhY2tlbmQgcm91dGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpZWxkNCd9ID0gJ1BvbGU0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpZWxkNSd9ID0gJ1BvbGU1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bGwgRkFRJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0gJ0dydXBhYSBkbGEgYWtjZXB0YWNqaSBhcnR5a3XFgsOzdyBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgdGhpcyBGQVEnfSA9ICdIaXN0b3JpYSB0ZWdvIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBhY3RpdmF0ZWQsIEZBUSBhcnRpY2xlcyBvZiBzdGF0dXMgdHlwZSBpbnRlcm5hbCBhcmUgYWxzbyB0YWtlbiBpbnRvIGFjY291bnQgZm9yIHRoZSBhcHByb3ZhbCBwcm9jZXNzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgaW50ZXJuYWwgZmllbGRzIG9uIGEgRkFRIGJhc2VkIFRpY2tldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jbHVkZSB0aGUgbmFtZSBvZiBlYWNoIGZpZWxkIGluIGEgRkFRIGJhc2VkIFRpY2tldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW50ZXJmYWNlcyB3aGVyZSB0aGUgcXVpY2sgc2VhcmNoIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSm91cm5hbCd9ID0gJ0R6aWVubmlrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhbmd1YWdlIE1hbmFnZW1lbnQnfSA9ICdaYXJ6xIVkemFuaWUgasSZenlrYW1pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhbmd1YWdlIE1hbmFnZW1lbnQuJ30gPSAnWmFyesSFZHphbmllIErEmXp5a2llbSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW1pdCBmb3IgdGhlIHNlYXJjaCB0byBidWlsZCB0aGUga2V5d29yZCBGQVEgYXJ0aWNsZSBsaXN0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoaXMgRkFRIGl0ZW0nfSA9ICdQb8WCxIVjeiBpbm55IG9iaWVrdCB6IHR5bSBlbGVtZW50ZW0gRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2YgcXVldWUgbmFtZXMgZm9yIHdoaWNoIHRoZSByZWxhdGVkIGFydGljbGUgZmVhdHVyZSBpcyBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2Ygc3RhdGUgdHlwZXMgd2hpY2ggY2FuIGJlIHVzZWQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIHN0YXRlIHR5cGVzIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBzdGF0ZSB0eXBlcyB3aGljaCBjYW4gYmUgdXNlZCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb2FkZXIgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01ha3N5bWFsbmEgbGljemJhIGFydHlrdcWCw7N3IEZBUSBrdMOzcmUgYsSZZMSFIHd5xZt3aWV0bGFuZSB3IFByemVnbMSFZHppZSBGQVEgdyBpbnRlcmZlanNpZSB1xbx5dGtvd25pa2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01ha3N5bWFsbmEgbGljemJhIGFydHlrdcWCw7N3IEZBUSBrdMOzcmUgYsSZZMSFIHd5xZt3aWV0bGFuZSB3IFByemVnbMSFZHppZSBGQVEgdyBpbnRlcmZlanNpZSBrbGllbnRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBqb3VybmFsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgcmVzdWx0IG9mIGEgc2VhcmNoIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgcmVzdWx0IG9mIGEgc2VhcmNoIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgcmVzdWx0IG9mIGEgc2VhcmNoIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBFeHBsb3JlciBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBFeHBsb3JlciBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBFeHBsb3JlciBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgU2VhcmNoIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIFNlYXJjaCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBTZWFyY2ggaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIGpvdXJuYWwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gZ2VuZXJhdGUgSFRNTCBPcGVuU2VhcmNoIHByb2ZpbGUgZm9yIHNob3J0IEZBUSBzZWFyY2ggaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gZ2VuZXJhdGUgSFRNTCBPcGVuU2VhcmNoIHByb2ZpbGUgZm9yIHNob3J0IEZBUSBzZWFyY2ggaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGdlbmVyYXRlIGh0bWwgT3BlblNlYXJjaCBwcm9maWxlIGZvciBzaG9ydCBGQVEgc2VhcmNoLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBGQVEgQXJ0aWNsZS4nfSA9ICdOb3d5IEFydHlrdcWCIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEZBUSBhcnRpY2xlcyBuZWVkIGFwcHJvdmFsIGJlZm9yZSB0aGV5IGdldCBwdWJsaXNoZWQuJ30gPSAnTm93ZSBhcnR5a3XFgnkgRkFRIHd5bWFnYWrEhSB6YXR3aWVyZHplbmlhIHByemVkIHB1Ymxpa2FjasSFLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBvbiBlYWNoIHBhZ2Ugb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgb24gZWFjaCBwYWdlIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2Ygc2hvd24gaXRlbXMgaW4gbGFzdCBjaGFuZ2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2Ygc2hvd24gaXRlbXMgaW4gbGFzdCBjcmVhdGVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2Ygc2hvd24gaXRlbXMgaW4gdGhlIHRvcCAxMCBmZWF0dXJlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdXRwdXQgZmlsdGVyIHRvIGFkZCBKYXZhLXNjcmlwdCB0byBDdXN0b21lclRpY2tldE1lc3NhZ2Ugc2NyZWVuLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J091dHB1dCBsaW1pdCBmb3IgdGhlIHJlbGF0ZWQgRkFRIGFydGljbGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBGQVEgaXRlbXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgRkFRIGpvdXJuYWwgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgRkFRIGl0ZW1zIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIEZBUSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGlzIEZBUSd9ID0gJ1d5ZHJ1a3VqIHRvIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRIFByaW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRIFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBGQVEgc2VhcmNoLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydRdWV1ZSBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICdLb2xlamthIGRsYSB6YXR3aWVyZHplxYQgYWFydHlrdcWCw7N3IEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0ZXMgZm9yIHZvdGluZy4gS2V5IG11c3QgYmUgaW4gcGVyY2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggRkFRJ30gPSAnU3p1a2FqIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggRkFRIFNtYWxsLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggRkFRLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgaG93IG1hbnkgaXRlbXMgc2hvdWxkIGJlIHNob3duIGluIEpvdXJuYWwgT3ZlcnZpZXcgIlNtYWxsIiBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBob3cgbWFueSBpdGVtcyBzaG91bGQgYmUgc2hvd24gaW4gT3ZlcnZpZXcgIlNtYWxsIiBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZGVmYXVsdCBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEFnZW50RkFRWm9vbS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBDdXN0b21lckZBUVpvb20gKGFuZCBQdWJsaWNGQVFab29tKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBBZ2VudEZBUVpvb20uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBtYXhpbXVtIGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gQ3VzdG9tZXJGQVFab29tIChhbmQgUHVibGljRkFRWm9vbSkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyAiSW5zZXJ0IEZBUSBMaW5rIiBCdXR0b24gaW4gQWdlbnRGQVFab29tU21hbGwgZm9yIHB1YmxpYyBGQVEgQXJ0aWNsZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyAiSW5zZXJ0IEZBUSBUZXh0ICYgTGluayIgLyAiSW5zZXJ0IEZ1bGwgRkFRICYgTGluayIgQnV0dG9uIGluIEFnZW50RkFRWm9vbVNtYWxsIGZvciBwdWJsaWMgRkFRIEFydGljbGVzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgIkluc2VydCBGQVEgVGV4dCIgLyAiSW5zZXJ0IEZ1bGwgRkFRIiBCdXR0b24gaW4gQWdlbnRGQVFab29tU21hbGwuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBGQVEgQXJ0aWNsZSB3aXRoIEhUTUwuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgRkFRIHBhdGggeWVzL25vLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGludmFsaWQgaXRlbXMgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGl0ZW1zIG9mIHN1YmNhdGVnb3JpZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgbGFzdCBjaGFuZ2UgaXRlbXMgaW4gZGVmaW5lZCBpbnRlcmZhY2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGxhc3QgY3JlYXRlZCBpdGVtcyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgcmVsYXRlZCBhcnRpY2xlcyBvbiBzZXJ2aWNlIGNoYW5nZSBldmVuIHdpdGggZW1wdHkgc3ViamVjdCBhbmQgYm9keS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHRoZSBzdGFycyBmb3IgdGhlIGFydGljbGVzIHdpdGggYSByYXRpbmcgZXF1YWwgb3IgZ3JlYXRlciBsaWtlIHRoZSBkZWZpbmVkIHZhbHVlIChzZXQgdmFsdWUgXCcwXCcgdG8gZGVhY3RpdmF0ZSB0aGUgb3V0cHV0KS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHRvcCAxMCBpdGVtcyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgdm90aW5nIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSBGQVEgd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgem9vbSB2aWV3IG9mIHN1Y2ggRkFRIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIHRvIGRlbGV0ZSBhIEZBUSBpbiBpdHMgem9vbSB2aWV3IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIEZBUSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSBGQVEgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZ28gYmFjayBpbiB0aGUgRkFRIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIEZBUSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NvbHV0aW9uJ30gPSAnUm96d2nEhXphbmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N5bXB0b20nfSA9ICdPYmphdyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZXh0IE9ubHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGRlZmF1bHQgbGFuZ3VhZ2VzIGZvciB0aGUgcmVsYXRlZCBGQVEgYXJ0aWNsZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIEZBUSwgZS5nLiBGQVEjLCBLQiMsIE15RkFRIy4gVGhlIGRlZmF1bHQgaXMgRkFRIy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnRkFRXCcgb2JqZWN0cyB1c2luZyB0aGUgXCdOb3JtYWxcJyBsaW5rIHR5cGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBzZXR0aW5nIGRlZmluZXMgdGhhdCBhIFwnRkFRXCcgb2JqZWN0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciBcJ0ZBUVwnIG9iamVjdHMgdXNpbmcgdGhlIFwnUGFyZW50Q2hpbGRcJyBsaW5rIHR5cGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBzZXR0aW5nIGRlZmluZXMgdGhhdCBhIFwnRkFRXCcgb2JqZWN0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciBcJ1RpY2tldFwnIG9iamVjdHMgdXNpbmcgdGhlIFwnTm9ybWFsXCcgbGluayB0eXBlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBkZWZpbmVzIHRoYXQgYSBcJ0ZBUVwnIG9iamVjdCBjYW4gYmUgbGlua2VkIHdpdGggb3RoZXIgXCdUaWNrZXRcJyBvYmplY3RzIHVzaW5nIHRoZSBcJ1BhcmVudENoaWxkXCcgbGluayB0eXBlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBib2R5IGZvciBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IHN1YmplY3QgZm9yIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlLiBQZXJtaXR0ZWQgbm90aWZpY2F0aW9uIHRhZ3MgYXJlIDxPVE9CT19GQVFfTlVNQkVSPiwgPE9UT0JPX0ZBUV9DQVRFR09SWUlEPiwgPE9UT0JPX0ZBUV9JVEVNSUQ+PiA8T1RPQk9fRkFRX1RJVExFPiBhbmQgPE9UT0JPX0ZBUV9TVEFURUlEPi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb29sYmFyIEl0ZW0gZm9yIGEgc2hvcnRjdXQuJ30gPSAnUG96eWNqYSBwYXNrYSBuYXJ6xJlkemlvd2VnbyBkbGEgc2tyw7N0dS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZXh0ZXJuYWwgKGN1c3RvbWVyKSd9ID0gJ3pld27EmXRyem5lIChrbGllbmNpKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpbnRlcm5hbCAoYWdlbnQpJ30gPSAnd2V3bsSZdHJ6bmUgKGFnZW5jaSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncHVibGljIChhbGwpJ30gPSAncHVibGljem5lICh3c3p5c2N5KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwdWJsaWMgKHB1YmxpYyknfSA9ICdwdWJsaWN6bmUgKHB1YmxpYyknOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdObycsCiAgICAnT2snLAogICAgJ1NldHRpbmdzJywKICAgICdTdWJtaXQnLAogICAgJ1RoaXMgbWlnaHQgYmUgaGVscGZ1bCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Location="Kernel/Language/pt_FAQ.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnB0X0ZBUTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRQWRkCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIEFydGljbGUnfSA9ICdBZGljaW9uYXIgYXJ0aWdvIGRlIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydLZXl3b3Jkcyd9ID0gJ1BhbGF2cmFzLWNoYXZlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgY2F0ZWdvcnkgaXMgcmVxdWlyZWQuJ30gPSAnw4kgbmVjZXNzw6FyaWEgdW1hIGNhdGVnb3JpYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwcm92YWwnfSA9ICdBcHJvdmHDp8Ojbyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFDYXRlZ29yeQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIENhdGVnb3J5IE1hbmFnZW1lbnQnfSA9ICdHZXN0w6NvIGRlIENhdGVnb3JpYXMgZGUgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBGQVEgQ2F0ZWdvcnknfSA9ICdBZGljaW9uYXIgQ2F0ZWdvcmlhIGRlIFBlcmd1bnRhcyBlIFJlc3Bvc3Rhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEZBUSBDYXRlZ29yeSd9ID0gJ0VkaXRyYXIgY2F0ZWdvcmlhIGRlIFBlcmd1bnRhcyBlIFJlc3Bvc3Rhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgY2F0ZWdvcnknfSA9ICdBZGljaW9uYXIgY2F0ZWdvcmlhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0ZWdvcnknfSA9ICdBZGljaW9uYXIgQ2F0ZWdvcmlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ2F0ZWdvcnknfSA9ICdFZGl0YXIgQ2F0ZWdvcmlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1YmNhdGVnb3J5IG9mJ30gPSAnU3ViY2F0ZWdvcmlhIGRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBzZWxlY3QgYXQgbGVhc3Qgb25lIHBlcm1pc3Npb24gZ3JvdXAuJ30gPSAnU2VsZWNpb25lIHBlbG8gbWVub3MgdW0gZ3J1cG8gZGUgcGVybWlzc8O1ZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGdyb3VwcyB0aGF0IGNhbiBhY2Nlc3MgYXJ0aWNsZXMgaW4gdGhpcyBjYXRlZ29yeS4nfSA9ICdHcnVwb3MgZGUgYWdlbnRlcyBjb20gYWNlc3NvIGEgYXJ0aWdvcyBuZXN0YSBjYXRlZ29yaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2lsbCBiZSBzaG93biBhcyBjb21tZW50IGluIEV4cGxvcmVyLid9ID0gJ0NvbWVudMOhcmlvIGEgYXByZXNlbnRhciBubyBicm93c2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjYXRlZ29yeT8nfSA9ICdDb25maXJtYSBhIHJlbW/Dp8OjbyBkZXN0YSBjYXRlZ29yaWE/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gbm90IGRlbGV0ZSB0aGlzIGNhdGVnb3J5LiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBGQVEgYXJ0aWNsZSBhbmQvb3IgaXMgcGFyZW50IG9mIGF0IGxlYXN0IG9uZSBvdGhlciBjYXRlZ29yeSd9ID0KICAgICAgICAnTsOjbyBwb2RlIHJlbW92ZXIgZXN0YSBjYXRlZ29yaWEuIFRlbSBwZWxvIG1lbm9zIHVtIGFydGlnbyBlL291IHVtYSBzdWJjYXRlZ29yaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBjYXRlZ29yeSBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgRkFRIGFydGljbGUocyknfSA9ICdFc3RhIGNhdGVnb3JpYSDDqSB1dGlsaXphZGEgbm8ocykgc2VndWludGUocykgYXJ0aWdvKHMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY2F0ZWdvcnkgaXMgcGFyZW50IG9mIHRoZSBmb2xsb3dpbmcgc3ViY2F0ZWdvcmllcyd9ID0gJ0VzdGEgY2F0ZWdvcmlhIHRlbSBhcyBzZWd1aW50ZXMgc3ViY2F0ZWdvcmlhcyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFEZWxldGUKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBGQVEgYXJ0aWNsZT8nfSA9ICdDb25maXJtYSBhIHJlbW/Dp8OjbyBkZXN0ZSBhcnRpZ28/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUVkaXQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSd9ID0gJ0ZBUSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFFeHBsb3JlcgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEV4cGxvcmVyJ30gPSAnRXhwbG9yYWRvciBkYSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVpY2sgU2VhcmNoJ30gPSAnUGVzcXVpc2EgcsOhcGlkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXaWxkY2FyZHMgYXJlIGFsbG93ZWQuJ30gPSAnQXN0ZXJpc2NvcygqKSBzw6NvIHBlcm1pdGlkb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWR2YW5jZWQgU2VhcmNoJ30gPSAnUGVzcXVpc2EgYXZhbsOnYWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1YmNhdGVnb3JpZXMnfSA9ICdTdWJjYXRlZ29yaWFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlcyd9ID0gJ0FydGlnb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gc3ViY2F0ZWdvcmllcyBmb3VuZC4nfSA9ICdOZW5odW1hIHN1YmNhdGVnb3JpYSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFIaXN0b3J5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mJ30gPSAnSGlzdMOzcmljbyBkZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IENvbnRlbnQnfSA9ICdIaXN0w7NyaWNvIGRvIGNvbnRlw7pkbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGV0aW1lJ30gPSAnSG9yYSBkZSBjcmlhw6fDo28nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRSm91cm5hbE92ZXJ2aWV3U21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEZBUSBKb3VybmFsIGRhdGEgZm91bmQuJ30gPSAnU2VtIGRhZG9zIGRlIGRpw6FyaW8uJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUxhbmd1YWdlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgTGFuZ3VhZ2UgTWFuYWdlbWVudCd9ID0gJ0dlc3TDo28gZGUgaWRpb21hcyBkZSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEZBUSBMYW5ndWFnZSd9ID0gJ0FkaWNpb25hciBQZXJndW50YXMgZSBSZXNwb3N0YXMgZW0gTGluZ3VhIEVzdHJhbmdlaXJhICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEZBUSBMYW5ndWFnZSd9ID0gJ0VkaXRhciBMaW5ndWFnZW0gZGUgUGVyZ3VudGFzIGUgUmVzcG9zdGFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZSB0aGlzIGZlYXR1cmUgaWYgeW91IHdhbnQgdG8gd29yayB3aXRoIG11bHRpcGxlIGxhbmd1YWdlcy4nfSA9CiAgICAgICAgJ1VzZSBlc3RhIGZ1bmNpb25hbGlkYWRlIHNlIGRlc2VqYSB0cmFiYWxoYXIgY29tIG3Dumx0aXBsb3MgaWRpb21hcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGxhbmd1YWdlJ30gPSAnQWRpY2lvbmFyIGlkaW9tYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgTGFuZ3VhZ2UnfSA9ICdBZGljaW9uYXIgaWRpb21hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgTGFuZ3VhZ2UnfSA9ICdFZGl0YXIgaWRpb21hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gbm90IGRlbGV0ZSB0aGlzIGxhbmd1YWdlLiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBGQVEgYXJ0aWNsZSEnfSA9CiAgICAgICAgJ07Do28gcG9kZSByZW1vdmVyIGVzdGUgaWRpb21hLiDDiSB1dGlsaXphZG8gZW0gcGVsbyBtZW5vcyB1bSBhcnRpZ28gZGEgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGxhbmd1YWdlIGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBGQVEgQXJ0aWNsZShzKSd9ID0gJ0VzdGUgaWRpb21hIMOpIHV0aWxpemFkbyBubyhzKSBzZWd1aW50ZShzKSBhcnRpZ28ocyknOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRT3ZlcnZpZXdOYXZCYXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRleHQgU2V0dGluZ3MnfSA9ICdDb25maWd1cmHDp8O1ZXMgZGUgQ29udGV4dG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGFydGljbGVzIHBlciBwYWdlJ30gPSAnQXJ0aWdvcyBwb3IgcMOhZ2luYSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFPdmVydmlld1NtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBGQVEgZGF0YSBmb3VuZC4nfSA9ICdOZW5odW1hcyBQZXJndW50YXMgZSBSZXNwb3N0YXMgRW5jb250cmFkYXMnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRUmVsYXRlZEFydGljbGVzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydvdXQgb2YgNSd9ID0gJ2RlIDUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRU2VhcmNoCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydLZXl3b3JkJ30gPSAnUGFsYXZyYS1jaGF2ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWb3RlIChlLiBnLiBFcXVhbHMgMTAgb3IgR3JlYXRlclRoYW4gNjApJ30gPSAnVm90YXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0ZSAoZS4gZy4gRXF1YWxzIDI1JSBvciBHcmVhdGVyVGhhbiA3NSUpJ30gPSAnQ2xhc3NpZmljYXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwcm92ZWQnfSA9ICdBcHJvdmFkbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQgYnknfSA9ICfDmmx0aW1hIGFsdGVyYcOnw6NvIHBvcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDcmVhdGUgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJ0RhdGEgZGUgY3JpYcOnw6NvIGRvIGFydGlnbyAoYW50ZXMvZGVwb2lzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDcmVhdGUgVGltZSAoYmV0d2VlbiknfSA9ICdEYXRhIGRlIGNyaWHDp8OjbyBkbyBhcnRpZ28gKGVudHJlKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDaGFuZ2UgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJ0RhdGEgZGUgbW9kaWZpY2HDp8OjbyBkbyBhcnRpZ28gKGFudGVzL2RlcG9pcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ2hhbmdlIFRpbWUgKGJldHdlZW4pJ30gPSAnRGF0YSBkZSBtb2RpZmljYcOnw6NvIGRvIGFydGlnbyAoZW50cmUpJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVNlYXJjaE9wZW5TZWFyY2hEZXNjcmlwdGlvbkZ1bGx0ZXh0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVFGdWxsdGV4dCd9ID0gJ1RleHRvIGludGVncmFsJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVNlYXJjaFNtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgU2VhcmNoJ30gPSAnUGVzcXVpc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvZmlsZSBTZWxlY3Rpb24nfSA9ICdTZWxlw6fDo28gZGUgcGVyZmlsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGUnfSA9ICdWb3Rhcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB2b3RlIHNldHRpbmdzJ30gPSAnU2VtIGRlZmluacOnw6NvIGRlIHZvdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWMgdm90ZXMnfSA9ICdWb3RvcyBlc3BlY8OtZmljb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZS4gZy4gRXF1YWxzIDEwIG9yIEdyZWF0ZXJUaGFuIDYwJ30gPSAnZXg6IElndWFsIGEgMTAgb3UgU3VwZXJpb3IgYSA2MCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRlJ30gPSAnQ2xhc3NpZmljYXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gcmF0ZSBzZXR0aW5ncyd9ID0gJ1NlbSBjb25maWd1cmHDp8O1ZXMgZGUgcG9udHVhw6fDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWMgcmF0ZSd9ID0gJ0NsYXNzaWZpY2HDp8OjbyBlc3BlY8OtZmljYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlLiBnLiBFcXVhbHMgMjUlIG9yIEdyZWF0ZXJUaGFuIDc1JSd9ID0gJ2V4LiBJZ3VhbCBhIDI1JSBvdSBtYWlvciBxdWUgNzUlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENyZWF0ZSBUaW1lJ30gPSAnRGF0YSBkZSBjcmlhw6fDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ2hhbmdlIFRpbWUnfSA9ICdEYXRhIGRlIG1vZGlmaWNhw6fDo28nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRWm9vbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEluZm9ybWF0aW9uJ30gPSAnSW5mb3JtYcOnw6NvIGRvIGFydGlnbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRpbmcnfSA9ICdDbGFzc2lmaWNhw6fDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZXMnfSA9ICdWb3Rvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB2b3RlcyBmb3VuZCEnfSA9ICdTZW0gdm90b3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHZvdGVzIGZvdW5kISBCZSB0aGUgZmlyc3Qgb25lIHRvIHJhdGUgdGhpcyBGQVEgYXJ0aWNsZS4nfSA9ICdTZW0gdm90b3MuIFNlamEgbyBwcmltZWlybyBhIGNsYXNzaWZpY2FyIGVzdGUgYXJ0aWdvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEb3dubG9hZCBBdHRhY2htZW50J30gPSAnRGVzY2FycmVnYXIgQW5leG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gb3BlbiBsaW5rcyBpbiB0aGUgZm9sbG93aW5nIGRlc2NyaXB0aW9uIGJsb2NrcywgeW91IG1pZ2h0IG5lZWQgdG8gcHJlc3MgQ3RybCBvciBDbWQgb3IgU2hpZnQga2V5IHdoaWxlIGNsaWNraW5nIHRoZSBsaW5rIChkZXBlbmRpbmcgb24geW91ciBicm93c2VyIGFuZCBPUykuJ30gPQogICAgICAgICdQYXJhIGFicmlyIGFzIGxpZ2HDp8O1ZXMgYWJhaXhvIHBvZGVyw6EgbmVjZXNzaXRhciBkZSBwcmVtaXIgYSB0ZWNsYSBDVFJMIChvdSBDTUQpIG91IFNoaWZ0IChkZXBlbmRlbmRvIGRvIGJyb3dzZXIgZSBkbyBzaXN0ZW1hIG9wZXJhdGl2bykgcXVhbmRvIGNsaWNhciBzb2JyZSBhIGxpZ2HDp8Ojbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3cgaGVscGZ1bCB3YXMgdGhpcyBhcnRpY2xlPyBQbGVhc2UgZ2l2ZSB1cyB5b3VyIHJhdGluZyBhbmQgaGVscCB0byBpbXByb3ZlIHRoZSBGQVEgRGF0YWJhc2UuIFRoYW5rIFlvdSEnfSA9CiAgICAgICAgJ0VzdGUgYXJ0aWdvIGZvaSDDunRpbD8gVXRpbGl6ZSBhIGNsYXNzaWZpY2HDp8OjbyBwYXJhIG5vcyBhanVkYXIgYSBtZWxob3JhciBhIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnbm90IGhlbHBmdWwnfSA9ICduw6NvIGFqdWRvdSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd2ZXJ5IGhlbHBmdWwnfSA9ICdhanVkb3UgbXVpdG8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRWm9vbVNtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIHRpdGxlIHRvIGFydGljbGUgc3ViamVjdCd9ID0gJ0FkaWNpb25hciBvIHTDrXR1bG8gZGEgRkFRIGFvIGFzc3VudG8gZG8gYXJ0aWdvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGQVEgVGV4dCd9ID0gJ0luc2VyaXIgbyB0ZXh0byBkYSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZ1bGwgRkFRJ30gPSAnSW5zZXJpciBhIEZBUSBjb21wbGV0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRkFRIExpbmsnfSA9ICdJbnNlcmlyIGxpZ2HDp8OjbyBwYXJhIGEgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGQVEgVGV4dCAmIExpbmsnfSA9ICdJbnNlcmlyIHRleHRvIGUgYSBsaWdhw6fDo28gcGFyYSBhIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRnVsbCBGQVEgJiBMaW5rJ30gPSAnSW5zZXJpciBvIHRleHRvIGNvbXBsZXRvIGUgYSBsaWdhw6fDo28gcGFyYSBhIEZBUSc7CgogICAgIyBUZW1wbGF0ZTogQ3VzdG9tZXJGQVFFeHBsb3JlcgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGF0ZXN0IHVwZGF0ZWQgRkFRIGFydGljbGVzJ30gPSAnw5psdGltb3MgYXJ0aWdvcyBGQVEgYXR1YWxpemFkb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gRkFRIGFydGljbGVzIGZvdW5kLid9ID0gJ05lbmh1bSBhcnRpZ28gRkFRIGVuY29udHJhZG8uJzsKCiAgICAjIFRlbXBsYXRlOiBDdXN0b21lckZBUVJlbGF0ZWRBcnRpY2xlcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtaWdodCBiZSBoZWxwZnVsJ30gPSAnSXN0byBwb2RlIEFqdWRhcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3VuZCBubyBoZWxwZnVsIHJlc291cmNlcyBmb3IgdGhlIHN1YmplY3QgYW5kIHRleHQuJ30gPSAnTsOjbyBmb3JhbSBlbmNvbnRyYWRvcyByZXN1bHRhZG9zIMO6dGVpcyBwYXJhIG8gYXNzdW50byBvdSB0ZXh0by4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZSBhIHN1YmplY3Qgb3IgdGV4dCB0byBnZXQgYSBsaXN0IG9mIGhlbHBmdWwgcmVzb3VyY2VzLid9ID0gJ0luc2lyYSB1bSBhc3N1bnRvIG91IHRleHRvIHBhcmEgbGlzdGFyIGFydGlnb3MgcmVsZXZhbnRlcy4nOwoKICAgICMgVGVtcGxhdGU6IEN1c3RvbWVyRkFRU2VhcmNoCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGdWxsdGV4dCBzZWFyY2ggaW4gRkFRIGFydGljbGVzIChlLiBnLiAiSm9obipuIiBvciAiV2lsbCoiKSd9ID0gJ1Blc3F1aXNhIG5vIHRleHRvIGludGVncmFsIGRvcyBhcnRpZ29zIGRhIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWb3RlIHJlc3RyaWN0aW9ucyd9ID0gJ1Jlc3RyacOnw7VlcyBkZSB2b3Rvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IEZBUSBhcnRpY2xlcyB3aXRoIHZvdGVzLi4uJ30gPSAnQXBlbmFzIGFydGlnb3MgY29tIHZvdG9zLi4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGUgcmVzdHJpY3Rpb25zJ30gPSAnUmVzdHJpw6fDtWVzIGRlIGNsYXNzaWZpY2HDp8Ojbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IEZBUSBhcnRpY2xlcyB3aXRoIHJhdGUuLi4nfSA9ICdBcGVuYXMgYXJ0aWdvcyBjb20gY2xhc3NpZmljYcOnw6NvLi4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVzdHJpY3Rpb25zJ30gPSAnUmVzdHJpw6fDo28gaG9yw6FyaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSBGQVEgYXJ0aWNsZXMgY3JlYXRlZCd9ID0gJ0FwZW5hcyBhcnRpZ29zIGNyaWFkb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSBGQVEgYXJ0aWNsZXMgY3JlYXRlZCBiZXR3ZWVuJ30gPSAnQXBlbmFzIGFydGlnb3MgY3JpYWRvcyBlbnRyZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2gtUHJvZmlsZSBhcyBUZW1wbGF0ZT8nfSA9ICdHdWFyZGFyIG1vZGVsbyBkZSBwZXNxdWlzYT8nOwoKICAgICMgVGVtcGxhdGU6IEN1c3RvbWVyRkFRWm9vbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJ0aWNsZSBOdW1iZXInfSA9ICdOw7ptZXJvIGRvIGFydGlnbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggZm9yIGFydGljbGVzIHdpdGgga2V5d29yZCd9ID0gJ1Byb2N1cmFyIGFydGlnb3MgY29tIGEgcGFsYXZyYS1jaGF2ZSc7CgogICAgIyBUZW1wbGF0ZTogUHVibGljRkFRU2VhcmNoT3BlblNlYXJjaERlc2NyaXB0aW9uRkFRTnVtYmVyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMnfSA9ICdQdWJsaWNvJzsKCiAgICAjIFRlbXBsYXRlOiBQdWJsaWNGQVFTZWFyY2hSZXN1bHRTaG9ydAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQmFjayB0byBGQVEgRXhwbG9yZXInfSA9ICdWb2x0YXIgYW8gZXhwbG9yYWRvciBkYSBGQVEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCBydyBwZXJtaXNzaW9uISd9ID0gJ05lY2Vzc2l0YSBkZSBwZXJtaXNzw6NvIGRlIGVzY3JpdGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGNhdGVnb3JpZXMgZm91bmQgd2hlcmUgdXNlciBoYXMgcmVhZC93cml0ZSBwZXJtaXNzaW9ucyEnfSA9ICdOw6NvIGZvcmFtIGVuY29udHJhZGFzIGNhdGVnb3JpYXMgb25kZSBvIHV0aWxpemFkb3IgcG9zc3VhIHBlcm1pc3PDtWVzIGRlIGxlaXR1cmEgZSBlc2NyaXRhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkZWZhdWx0IGxhbmd1YWdlIGZvdW5kIGFuZCBjYW5cJ3QgY3JlYXRlIGEgbmV3IG9uZS4nfSA9ICdOw6NvIGZvaSBlbmNvbnRyYWRvIHVtIGlkaW9tYSBwYWRyw6NvIGUgdMOjbyBwb3VjbyBjcmlhciB1bSBub3ZvLic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFDYXRlZ29yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBDYXRlZ29yeUlEISd9ID0gJ05lY2Vzc8OhcmlvIENhdGVnb3J5SUQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgY2F0ZWdvcnkgc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJ0EgY2F0ZWdvcmlhIGRldmUgdGVyIHVtIG5vbWUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY2F0ZWdvcnkgYWxyZWFkeSBleGlzdHMnfSA9ICdFc3RhIGNhdGVnb3JpYSBqw6EgZXhpc3RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY2F0ZWdvcnkgYWxyZWFkeSBleGlzdHMhJ30gPSAnRXN0YSBjYXRlZ29yaWEgasOhIGV4aXN0ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQ2F0ZWdvcnlJRCBpcyBnaXZlbiEnfSA9ICdDYXRlZ29yeUlEIGVtIGZhbHRhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBjYXRlZ29yeSAlcyEnfSA9ICdOw6NvIGZvaSBwb3Nzw612ZWwgYXBhZ2FyIGEgY2F0ZWdvcmlhICVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgY2F0ZWdvcnkgdXBkYXRlZCEnfSA9ICdDYXRlZ29yaWEgZGUgRkFRIGF0dWFsaXphZGEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBjYXRlZ29yeSBhZGRlZCEnfSA9ICdDYXRlZ29yaWEgZGUgRkFRIGFkaWNpb25hZGEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBDYXRlZ29yeSd9ID0gJ0VsaW1pbmFyIENhdGVnb3JpYSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEl0ZW1JRCBpcyBnaXZlbiEnfSA9ICdJdGVtSUQgZW0gZmFsdGEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIG5vIHBlcm1pc3Npb24gZm9yIHRoaXMgY2F0ZWdvcnkhJ30gPSAnTsOjbyBkaXNww7VlIGRlIHBlcm1pc3PDtWVzIHBhcmEgZXN0YSBjYXRlZ29yaWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIEZBUSBhcnRpY2xlICVzISd9ID0gJ07Do28gZm9pIHBvc3PDrXZlbCBhcGFnYXIgbyBhcnRpZ28gJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUV4cGxvcmVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgQ2F0ZWdvcnlJRCAlcyBpcyBpbnZhbGlkLid9ID0gJ0EgQ2F0ZWdvcmlhSUQgJXMgw6kgaW52w6FsaWRhLic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBJdGVtSUQgaXMgZ2l2ZW4hJ30gPSAnTsOjbyDDqSBwb3Nzw612ZWwgbW9zdHJhciBvIGhpc3TDs3JpY28sIGZhbHRhIG8gSXRlbUlEISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSGlzdG9yeSd9ID0gJ0hpc3TDs3JpY28gZGEgRkFRJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUpvdXJuYWwucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBKb3VybmFsJ30gPSAnRGnDoXJpbyBkYSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBjb25maWcgb3B0aW9uIEZBUTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3J30gPSAnw4kgbmVjZXNzw6FyaWEgYSBvcMOnw6NvIGRlIGNvbmZpZ3VyYcOnw6NvIEZBUTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZyBvcHRpb24gRkFROjpGcm9udGVuZDo6T3ZlcnZpZXcgbmVlZHMgdG8gYmUgYSBIQVNIIHJlZiEnfSA9CiAgICAgICAgJ0Egb3DDp8OjbyBkZSBjb25maWd1cmHDp8OjbyBGQVE6OkZyb250ZW5kOjpPdmVydmlldyBwcmVjaXNhIHNlciB1bSB2YWxvciBIQVNIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGNvbmZpZyBvcHRpb24gZm91bmQgZm9yIHRoZSB2aWV3ICIlcyIhJ30gPSAnTsOjbyBmb3JhbSBlbmNvbnRyYWRhcyBvcMOnw7VlcyBkZSBjb25maWd1cmHDp8OjbyBwYXJhIGEgdmlzdWFsaXphw6fDo28gIiVzIiEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRTGFuZ3VhZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIExhbmd1YWdlSUQgaXMgZ2l2ZW4hJ30gPSAnSWRpb21hSUQgZW0gZmFsdGEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBuYW1lIGlzIHJlcXVpcmVkISd9ID0gJ8OJIG5lY2Vzc8OhcmlvIG8gbm9tZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBsYW5ndWFnZSBhbHJlYWR5IGV4aXN0cyEnfSA9ICdFc3RhIExpbmd1YWdlbSBqw6EgZXhpc3RlISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBsYW5ndWFnZSAlcyEnfSA9ICdOw6NvIGZvaSBwb3Nzw612ZWwgYXBhZ2FyIG8gaWRpb21hICVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgbGFuZ3VhZ2UgdXBkYXRlZCEnfSA9ICdMaW5ndWFnZW0gZGUgRkFRIGF0dWFsaXphZGEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBsYW5ndWFnZSBhZGRlZCEnfSA9ICdMaW5ndWFnZW0gZGUgRkFRIGFkaWNpb25hZGEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBMYW5ndWFnZSAlcyd9ID0gJ1JlbW92ZXIgaWRpb21hICVzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUVByaW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXN1bHQnfSA9ICdSZXN1bHRhZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCB1cGRhdGUnfSA9ICfDmmx0aW1hIGF0dWFsaXphw6fDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIER5bmFtaWMgRmllbGRzJ30gPSAnQ2FtcG9zIGRpbsOibWljb3MgRkFRJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUVJpY2hUZXh0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyAlcyBpcyBnaXZlbiEnfSA9ICclcyBlbSBmYWx0YSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGxvYWQgTGFuZ3VhZ2VPYmplY3QhJ30gPSAnTsOjbyBmb2kgcG9zc8OtdmVsIGNhcnJlZ2FyIExhbmd1YWdlT2JqZWN0ISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFJlc3VsdCEnfSA9ICdTZW0gcmVzdWx0YWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgTnVtYmVyJ30gPSAnTsO6bWVybyBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBDaGFuZ2VkIGJ5J30gPSAnw5psdGltYSBtb2RpZmljYcOnw6NvIHBvcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSXRlbSBDcmVhdGUgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJ0RhdGEgZGUgY3JpYcOnw6NvIGRvIGFydGlnbyAoYW50ZXMvZGVwb2lzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSXRlbSBDcmVhdGUgVGltZSAoYmV0d2VlbiknfSA9ICdEYXRhIGRlIGNyaWHDp8OjbyBkbyBhcnRpZ28gKGVudHJlKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSXRlbSBDaGFuZ2UgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJ0RhdGEgZGUgYWx0ZXJhw6fDo28gZG8gYXJ0aWdvIChlbnRyZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ2hhbmdlIFRpbWUgKGJldHdlZW4pJ30gPSAnRGF0YSBkZSBhbHRlcmHDp8OjbyBkbyBhcnRpZ28gKGVudHJlKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcXVhbHMnfSA9ICdJZ3VhbCBhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyZWF0ZXIgdGhhbid9ID0gJ1N1cGVyaW9yIGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JlYXRlciB0aGFuIGVxdWFscyd9ID0gJ01haW9yIG91IGlndWFsIGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU21hbGxlciB0aGFuJ30gPSAnSW5mZXJpb3IgYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTbWFsbGVyIHRoYW4gZXF1YWxzJ30gPSAnTWVub3Igb3UgaWd1YWwgYSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIEZpbGVJRCEnfSA9ICdOZWNlc3NpdGEgZG8gQXJxdWl2b0lEISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGFua3MgZm9yIHlvdXIgdm90ZSEnfSA9ICdPYnJpZ2FkbyBwZWxvIHNldSB2b3RvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSBhbHJlYWR5IHZvdGVkISd9ID0gJ0rDoSB2b3RvdSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gcmF0ZSBzZWxlY3RlZCEnfSA9ICdQb250dWHDp8OjbyBuw6NvIHNlbGVjY2lvbmFkYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHZvdGluZyBtZWNoYW5pc20gaXMgbm90IGVuYWJsZWQhJ30gPSAnQSBmdW5jaW9uYWxpZGFkZSBkZSB2b3Rhw6fDo28gbsOjbyBlc3TDoSBhY3RpdmEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB2b3RlIHJhdGUgaXMgbm90IGRlZmluZWQhJ30gPSAnTyBwZXNvIGRvcyB2b3RvcyBuw6NvIGZvaSBkZWZpbmlkbyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0N1c3RvbWVyRkFRUHJpbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIFByaW50J30gPSAnSW1wcmltaXIgYXJ0aWdvIGRlIEZBUSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQ3VzdG9tZXJGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZWQgYmV0d2Vlbid9ID0gJ0NyaWFkbyBlbnRyZSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQ3VzdG9tZXJGQVFab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIEl0ZW1JRCEnfSA9ICfDiSBuZWNlc3PDoXJpbyBvIEl0ZW1JRC4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL1B1YmxpY0ZBUUV4cGxvcmVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZXMgKG5ldyBjcmVhdGVkKSd9ID0gJ0FydGlnb3MgZGUgRkFRIChjcmlhZG9zIHJlY2VudGVtZW50ZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGVzIChyZWNlbnRseSBjaGFuZ2VkKSd9ID0gJ0FydGlnb3MgZGUgRkFRIChhbHRlcmFkb3MgcmVjZW50ZW1lbnRlKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZXMgKFRvcCAxMCknfSA9ICdBcnRpZ29zIGRlIEZBUSAoVG9wIDEwKSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvUHVibGljRkFRUlNTLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBUeXBlIGlzIGdpdmVuISd9ID0gJ1RpcG8gZW0gZmFsdGEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGUgbXVzdCBiZSBlaXRoZXIgTGFzdENyZWF0ZSBvciBMYXN0Q2hhbmdlIG9yIFRvcDEwISd9ID0gJ08gVGlwbyBkZXZlIHNlciDDmmx0aW1vQ3JpYWRvLCDDmmx0aW1vQWx0ZXJhZG8gb3UgVG9wMTAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBjcmVhdGUgUlNTIGZpbGUhJ30gPSAnTsOjbyBmb2kgcG9zc8OtdmVsIGNyaWFyIG8gZmljaGVpcm8gUlNTISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0hlYWRlck1ldGEvQWdlbnRGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChGQVFGdWxsdGV4dCknfSA9ICclcyAoRkFRLVRleHRvQ29tcGxldG8pJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvSGVhZGVyTWV0YS9DdXN0b21lckZBUVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgLSBDdXN0b21lciAoJXMpJ30gPSAnJXMgLSBDbGllbnRlICglcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgLSBDdXN0b21lciAoRkFRRnVsbHRleHQpJ30gPSAnJXMgLSBDbGllbnRlIChGQVEtVGV4dG9Db21wbGV0byknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9IZWFkZXJNZXRhL1B1YmxpY0ZBUVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgLSBQdWJsaWMgKCVzKSd9ID0gJyVzIC0gUMO6YmxpY28gKCVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAtIFB1YmxpYyAoRkFRRnVsbHRleHQpJ30gPSAnJXMgLSBQw7pibGljbyAoRkFRLVRleHRvQ29tcGxldG8pJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTGF5b3V0L0ZBUS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCByYXRlISd9ID0gJ05lY2Vzc2l0YSBkZSBjbGFzc2lmaWNhw6fDo28hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgYXJ0aWNsZSBpcyBlbXB0eSEnfSA9ICdFc3RlIGFydGlnbyBlc3TDoSB2YXppbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGF0ZXN0IGNyZWF0ZWQgRkFRIGFydGljbGVzJ30gPSAnw5psdGltb3MgYXJ0aWdvcyBGQVEgY3JpYWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3AgMTAgRkFRIGFydGljbGVzJ30gPSAnVG9wIDEwIGFydGlnb3MgRkFRJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTGlua09iamVjdC9GQVEucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRlbnQgVHlwZSd9ID0gJ1RpcG8gZGUgY29udGXDumRvJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0R5bmFtaWNGaWVsZC9Ecml2ZXIvRkFRLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgdGhlIGF0dHJpYnV0ZSB3aGljaCBGQVFzIHdpbGwgYmUgc2VhcmNoZWQgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXh0ZXJuYWwtc291cmNlIGtleSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgdGhlIHR5cGUgb2YgZGlzcGxheSd9ID0gJyc7CgogICAgIyBEYXRhYmFzZSBYTUwgLyBTT1BNIERlZmluaXRpb246IEZBUS5zb3BtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpbnRlcm5hbCd9ID0gJ2ludGVybm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZXh0ZXJuYWwnfSA9ICdleHRlcm5vJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3B1YmxpYyd9ID0gJ3DDumJsaWNvJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBmaWx0ZXIgZm9yIEhUTUwgb3V0cHV0IHRvIGFkZCBsaW5rcyBiZWhpbmQgYSBkZWZpbmVkIHN0cmluZy4gVGhlIGVsZW1lbnQgSW1hZ2UgYWxsb3dzIHR3byBpbnB1dCBraW5kcy4gRmlyc3QgdGhlIG5hbWUgb2YgYW4gaW1hZ2UgKGUuZy4gZmFxLnBuZykuIEluIHRoaXMgY2FzZSB0aGUgT1RPQk8gaW1hZ2UgcGF0aCB3aWxsIGJlIHVzZWQuIFRoZSBzZWNvbmQgcG9zc2liaWxpdHkgaXMgdG8gaW5zZXJ0IHRoZSBsaW5rIHRvIHRoZSBpbWFnZS4nfSA9CiAgICAgICAgJ1VtIGZpbHRybyBkZSBIVE1MIGRlIG91dHB1dCBwYXJhIGFkaWNpb25hciBsaW5rcyBhbnRlcyBkZSB1bSBkZXRlcm1pbmFkbyB0ZXh0by4gTyBlbGVtZW50byBJbWFnZW0gcGVybWl0ZSBkb2lzIHRpcG9zIGRlIGlucHV0LiBQcmltZWlybywgbyBub21lIGRlIHVtYSBpbWFnZW0gKGV4LiBmYXEucG5nKS4gTmVzdGUgY2FzbywgbyBjYW1pbmhvIHBhcmEgaW1hZ2VucyBPVE9CTyBzZXLDoSB1c2Fkby4gQSBzZWd1bmRhIHBvc3NpYmlsaWRhZGUgw6kgaW5zZXJpciBvIGxpbmsgcGFyYSBhIGltYWdlbS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEZBUSBhcnRpY2xlJ30gPSAnQWRpY2lvbmFyIGFydGlnbyDDoCBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ1NTIGNvbG9yIGZvciB0aGUgdm90aW5nIHJlc3VsdC4nfSA9ICdDb3IgQ1NTIHBhcmEgbyByZXN1bHRhZG8gZGEgdm90YcOnw6NvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSBUaW1lIFRvIExlYXZlIGZvciBGQVEgaXRlbXMuJ30gPSAnVGVtcG8gZGUgcGVybWFuw6puY2lhIGVtIGNhY2hlIGRvcyBhcnRpZ29zIGRhIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0ZWdvcnkgTWFuYWdlbWVudCd9ID0gJ0dlc3TDo28gZGUgY2F0ZWdvcmlhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSBNYW5hZ2VtZW50Lid9ID0gJ0dlc3TDo28gZGUgQ2F0ZWdvcmlhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIFByaW50Lid9ID0gJ0ltcHJlc3PDo28gZGEgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBSZWxhdGVkIEFydGljbGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBSZWxhdGVkIEFydGljbGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgWm9vbS4nfSA9ICdWaXN1YWxpemHDp8OjbyBkYSBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBzZWFyY2guJ30gPSAnUGVzcXVpc2EgZGEgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEuJ30gPSAnRkFRIGRvIGNsaWVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlY2ltYWwgcGxhY2VzIG9mIHRoZSB2b3RpbmcgcmVzdWx0Lid9ID0gJ07Dum1lcm8gZGUgY2FzYXMgZGVjaW1haXMgZG8gcmVzdWx0YWRvIGRhIHZvdGHDp8Ojby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBjYXRlZ29yeSBuYW1lLid9ID0gJ05vbWUgZGEgY2F0ZWdvcmlhIHBvciBvbWlzc8Ojby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBsYW5ndWFnZSBmb3IgRkFRIGFydGljbGVzIG9uIHNpbmdsZSBsYW5ndWFnZSBtb2RlLid9ID0gJ0lkaW9tYSBwb3Igb21pc3PDo28gZG9zIGFydGlnb3MgZGEgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG1heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24uJ30gPQogICAgICAgICdUYW1hbmhvIG3DoXhpbW8gZG8gdMOtdHVsbyBkbyBhcnRpZ28gRkFRIGEgc2VyIGV4aWJpZG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgcHJpb3JpdHkgb2YgdGlja2V0cyBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9CiAgICAgICAgJ1ByaW9yaWRhZGUgZG9zIHRpY2tldHMgcGFyYSBhcHJvdmHDp8OjbyBkb3MgYXJ0aWdvcyBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdGUgZm9yIEZBUSBlbnRyeS4nfSA9ICdFc3RhZG8gcG9yIG9taXNzw6NvIHBhcmEgbm92YXMgZW50cmFkYXMgbmEgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXRlIG9mIHRpY2tldHMgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPSAnRXN0YWRvIGRvcyB0aWNrZXRzIHBhcmEgYXByb3Zhw6fDo28gZG9zIGFydGlnb3MgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHR5cGUgb2YgdGlja2V0cyBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICdUaXBvIGRlIHRpY2tldHMgcGFyYSBhIGFwcm92YcOnw6NvIGRlIGFydGlnb3MgZGEgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHZhbHVlIGZvciB0aGUgQWN0aW9uIHBhcmFtZXRlciBmb3IgdGhlIHB1YmxpYyBmcm9udGVuZC4gVGhlIEFjdGlvbiBwYXJhbWV0ZXIgaXMgdXNlZCBpbiB0aGUgc2NyaXB0cyBvZiB0aGUgc3lzdGVtLid9ID0KICAgICAgICAnVmFsb3IgZG8gcGFyw6JtZXRybyBcJ0FjdGlvblwnIG5hIGludGVyZmFjZSBww7pibGljYS4gRXN0ZSBwYXLDom1ldHJvIMOpIHVzYWRvIG5vcyBzY3JpcHRzIGRvIHNpc3RlbWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSBBY3Rpb25zIHdoZXJlIGEgc2V0dGluZ3MgYnV0dG9uIGlzIGF2YWlsYWJsZSBpbiB0aGUgbGlua2VkIG9iamVjdHMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIFBsZWFzZSBub3RlIHRoYXQgdGhlc2UgQWN0aW9ucyBtdXN0IGhhdmUgcmVnaXN0ZXJlZCB0aGUgZm9sbG93aW5nIEpTIGFuZCBDU1MgZmlsZXM6IENvcmUuQWxsb2NhdGlvbkxpc3QuY3NzLCBDb3JlLlVJLkFsbG9jYXRpb25MaXN0LmpzLCBDb3JlLlVJLlRhYmxlLlNvcnQuanMsIENvcmUuQWdlbnQuVGFibGVGaWx0ZXJzLmpzIGFuZCBDb3JlLkFnZW50LkxpbmtPYmplY3QuanMuJ30gPQogICAgICAgICdEZWZpbmlyIEFjw6fDtWVzIG9uZGUgdW0gYm90w6NvIGRlIGNvbmZpZ3VyYcOnw7VlcyBlc3TDoSBkaXNwb27DrXZlbCBuYSB3aWRnZXQgdGhlIG9iamVjdG9zIGxpZ2Fkb3MgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gIEVzdGFzIEFjw6fDtWVzIGRldmVtIGVzdGFyIHJlZ2lzdGFkYXMgbm9zIHNlZ3VpbnRlcyBmaWNoZWlyb3MgSlMgZSBDU1M6IENvcmUuQWxsb2NhdGlvbkxpc3QuY3NzLCBDb3JlLlVJLkFsbG9jYXRpb25MaXN0LmpzLCBDb3JlLlVJLlRhYmxlLlNvcnQuanMsIENvcmUuQWdlbnQuVGFibGVGaWx0ZXJzLmpzIGFuZCBDb3JlLkFnZW50LkxpbmtPYmplY3QuanMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSBpZiB0aGUgRkFRIHRpdGxlIHNob3VsZCBiZSBjb25jYXRlbmF0ZWQgdG8gYXJ0aWNsZSBzdWJqZWN0Lid9ID0KICAgICAgICAnSW5kaXF1ZSBzZSBvIHTDrXR1bG8gZG8gRkFRIGRldmUgc2VyIGNvbmNhdGVuYWRvIGFvIGFzc3VudG8gZG8gYXJ0aWdvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBGQVFzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IEZBUSBhdHRyaWJ1dGVzIGFuZCBkeW5hbWljIGZpZWxkcyAoRHluYW1pY0ZpZWxkX05hbWVYKSBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIEZBUSBqb3VybmFsLid9ID0KICAgICAgICAnRGVmaW5lIHVtIG3Ds2R1bG8gZGUgcmVzdW1vIHBhcmEgbW9zdHJhciBhIHZpc3VhbGl6YcOnw6NvIHBlcXVlbmEgZGUgdW0gam9ybmFsIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIEZBUSBsaXN0Lid9ID0KICAgICAgICAnRGVmaW5lIHVtIG3Ds2R1bG8gZGUgcmVzdW1vIHBhcmEgbW9zdHJhciBhIHZpc3VhbGl6YcOnw6NvIHBlcXVlbmEgZGUgdW1hIGxpc3RhIGRlIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiBhIEZBUSBzZWFyY2ggb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RlZmluZSBvIGF0cmlidXRvIHBhZHLDo28gRkFRIHBhcmEgY2xhc3NpZmljYXIgbyBGQVEgZW0gdW1hIHBlc3F1aXNhIEZBUSBkYSBpbnRlcmZhY2UgZG8gYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIGEgRkFRIHNlYXJjaCBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGVmaW5lIG8gYXRyaWJ1dG8gcGFkcsOjbyBGQVEgcGFyYSBjbGFzc2lmaWNhciBvIEZBUSBlbSB1bWEgcGVzcXVpc2EgRkFRIGRhIGludGVyZmFjZSBkbyBjbGllbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIGEgRkFRIHNlYXJjaCBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RlZmluZSBvIGF0cmlidXRvIHBhZHLDo28gRkFRIHBhcmEgY2xhc3NpZmljYXIgbyBGQVEgZW0gdW1hIHBlc3F1aXNhIEZBUSBkYSBpbnRlcmZhY2UgcMO6YmxpY2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGVmaW5lIG8gYXRyaWJ1dG8gcGFkcsOjbyBkZSBvcmRlbmHDp8OjbyBubyBFeHBsb3JhZG9yIGRlIEZBUSBkYSBpbnRlcmZhY2UgZG8gYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIHRoZSBGQVEgRXhwbG9yZXIgb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RlZmluZSBvIGF0cmlidXRvIHBhZHLDo28gZGUgb3JkZW5hw6fDo28gbm8gRXhwbG9yYWRvciBkZSBGQVEgZGEgaW50ZXJmYWNlIGRvIGNsaWVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RlZmluZSBvIGF0cmlidXRvIHBhZHLDo28gZGUgb3JkZW5hw6fDo28gbm8gRXhwbG9yYWRvciBkZSBGQVEgZGEgaW50ZXJmYWNlIHDDumJsaWNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ0RlZmluZSBhIG9yZGVuYcOnw6NvIHBhZHLDo28gZG9zIHJlc3VsdGFkb3Mgbm8gRXhwbG9yYWRvciBkZSBGQVEgbmEgaW50ZXJmYWNlIGRvIGFnZW50ZS4gQWNpbWE6IG1haXMgYW50aWdvcyBubyB0b3BvLiBBYmFpeG86IG1haXMgcmVjZW50ZXMgbm8gdG9wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICdEZWZpbmUgYSBvcmRlbmHDp8OjbyBwYWRyw6NvIGRvcyByZXN1bHRhZG9zIG5vIEV4cGxvcmFkb3IgZGUgRkFRIG5hIGludGVyZmFjZSBkbyBjbGllbnRlLiBBY2ltYTogbWFpcyBhbnRpZ29zIG5vIHRvcG8uIEFiYWl4bzogbWFpcyByZWNlbnRlcyBubyB0b3BvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgcHVibGljIGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICdEZWZpbmUgYSBvcmRlbmHDp8OjbyBwYWRyw6NvIGRvcyByZXN1bHRhZG9zIG5vIEV4cGxvcmFkb3IgZGUgRkFRIG5hIGludGVyZmFjZSBww7pibGljYS4gQWNpbWE6IG1haXMgYW50aWdvcyBubyB0b3BvLiBBYmFpeG86IG1haXMgcmVjZW50ZXMgbm8gdG9wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnRGVmaW5lIGEgb3JkZW5hw6fDo28gcGFkcsOjbyBkb3MgcmVzdWx0YWRvcyBuYSBwZXNxdWlzYSBkZSBGQVEgbmEgaW50ZXJmYWNlIGRvIGFnZW50ZS4gQWNpbWE6IG1haXMgYW50aWdvcyBubyB0b3BvLiBBYmFpeG86IG1haXMgcmVjZW50ZXMgbm8gdG9wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnRGVmaW5lIGEgb3JkZW5hw6fDo28gcGFkcsOjbyBkb3MgcmVzdWx0YWRvcyBuYSBwZXNxdWlzYSBkZSBGQVEgbmEgaW50ZXJmYWNlIGRvIGNsaWVudGUuIEFjaW1hOiBtYWlzIGFudGlnb3Mgbm8gdG9wby4gQWJhaXhvOiBtYWlzIHJlY2VudGVzIG5vIHRvcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICdEZWZpbmUgYSBvcmRlbmHDp8OjbyBwYWRyw6NvIGRvcyByZXN1bHRhZG9zIG5hIHBlc3F1aXNhIGRlIEZBUSBuYSBpbnRlcmZhY2UgcMO6YmxpY2EuIEFjaW1hOiBtYWlzIGFudGlnb3Mgbm8gdG9wby4gQWJhaXhvOiBtYWlzIHJlY2VudGVzIG5vIHRvcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc2hvd24gRkFRIHNlYXJjaCBhdHRyaWJ1dGUgZm9yIEZBUSBzZWFyY2ggc2NyZWVuLid9ID0KICAgICAgICAnRGVmaW5lIG8gYXRyaWJ1dG8gcGFkcsOjbyBubyBlY3LDoyBkZSBwZXNxdWlzYSBkZSBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGhlaWdodCBmb3IgdGhlIHJpY2ggdGV4dCBlZGl0b3IgY29tcG9uZW50IGZvciB0aGlzIHNjcmVlbi4gRW50ZXIgbnVtYmVyIChwaXhlbHMpIG9yIHBlcmNlbnQgdmFsdWUgKHJlbGF0aXZlKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBpbmZvcm1hdGlvbiB0byBiZSBpbnNlcnRlZCBpbiBhIEZBUSBiYXNlZCBUaWNrZXQuICJGdWxsIEZBUSIgaW5jbHVkZXMgdGV4dCwgYXR0YWNobWVudHMgYW5kIGlubGluZSBpbWFnZXMuJ30gPQogICAgICAgICdEZWZpbmUgYSBpbmZvcm1hw6fDo28gYSBzZXIgaW5zZXJpZGEgbm8gY2hhbWFkbyBiYXNlYWRvIGVtIEZBUS4gIlRvZG8gbyBGQVEiIGluY2x1aSB0ZXh0bywgYW5leG9zIGUgaW1hZ2VucyBlbWJ1dGlkYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZC4gIkxpbWl0IiBkZWZpbmVzIHRoZSBudW1iZXIgb2YgZW50cmllcyBkaXNwbGF5ZWQgYnkgZGVmYXVsdC4gIkdyb3VwIiBpcyB1c2VkIHRvIHJlc3RyaWN0IGFjY2VzcyB0byB0aGUgcGx1Z2luIChlLiBnLiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgaW5kaWNhdGVzIGlmIHRoZSBwbHVnaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIGlmIHRoZSB1c2VyIG5lZWRzIHRvIGVuYWJsZSBpdCBtYW51YWxseS4nfSA9CiAgICAgICAgJ0RlZmluZSBvcyBwYXLDom1ldHJvcyBwYXJhIG8gYmFja2VuZCBkbyBkYXNoYm9hcmQuICJMaW1pdGUiIGRlZmluZSBvIG7Dum1lcm8gZGUgZW50cmFkYXMgZXhpYmlkYXMgcG9yIHBhZHLDo28uICJHcnVwbyIgw6kgdXNhZG8gcGFyYSByZXN0cmluZ2lyIG8gYWNlc3NvIGFvIHBsdWdpbiAoZXguOiBHcnVwbzogYWRtaW4sIGdydXBvMSwgZ3J1cG8yKS4gIlBhZHLDo28iIGluZGljYSBzZSBvIHBsdWdpbiDDqSBoYWJpbGl0YWRvIHBvciBwYWRyw6NvIG91IHNlIG8gdXN1w6FyaW8gcHJlY2lzYSBoYWJpbGl0w6EtbG8gbWFudWFsbWVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIEZBUSBFeHBsb3Jlci4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ0RlZmluZSBhcyBjb2x1bmFzIG1vc3RyYWRhcyBubyBFeHBsb3JhZG9yIGRlIEZBUS4gRXN0YSBvcMOnw6NvIG7Do28gdGVtIGVmZWl0byBzb2JyZSBhIHBvc2nDp8OjbyBkYSBjb2x1bmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIEZBUSBqb3VybmFsLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnRGVmaW5lIGFzIGNvbHVuYXMgbW9zdHJhZGFzIG5vIGpvcm5hbCBGQVEuIEVzdGEgb3DDp8OjbyBuw6NvIHRlbSBlZmVpdG8gc29icmUgYSBwb3Npw6fDo28gZGEgY29sdW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBGQVEgc2VhcmNoLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnRGVmaW5lIGFzIGNvbHVuYXMgbW9zdHJhZGFzIG5hIHBlc3F1aXNhIEZBUS4gRXN0YSBvcMOnw6NvIG7Do28gdGVtIGVmZWl0byBzb2JyZSBhIHBvc2nDp8OjbyBkYSBjb2x1bmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgd2hlcmUgdGhlIFwnSW5zZXJ0IEZBUVwnIGxpbmsgd2lsbCBiZSBkaXNwbGF5ZWQuJ30gPSAnRGVmaW5lIG9uZGUgbyBsaW5rICJJbnNlcmlyIEZBUSIgc2Vyw6EgZXhpYmlkby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5pdGlvbiBvZiBGQVEgaXRlbSBmcmVlIHRleHQgZmllbGQuJ30gPSAnRGVmaW5pw6fDo28gZGUgY2FtcG9zIGRlIHRleHRvIGxpdnJlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhpcyBGQVEnfSA9ICdBcGFnYXIgZXN0YSBGQVEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQ2FtcG9zIGRpbsOibWljb3MgZXhpYmlkb3Mgbm8gZWNyw6MgZGUgYWRpY2lvbmFyIEZBUSBkYSBpbnRlcmZhY2UgZGUgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdDYW1wb3MgZGluw6JtaWNvcyBleGliaWRvcyBucCBlY3LDoyBkZSBlZGl0YXIgRkFRIGRhIGludGVyZmFjZSBkZSBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgb3ZlcnZpZXcgc2NyZWVuIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBvdmVydmlldyBzY3JlZW4gb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBwcmludCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0NhbXBvcyBkaW7Dom1pY29zIGV4aWJpZG9zIG5vIGVjcsOjIGRlIGltcHJpbWlyIEZBUSBkYSBpbnRlcmZhY2UgZGUgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHByaW50IHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgcHJpbnQgc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc2VhcmNoIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQ2FtcG9zIGRpbsOibWljb3MgbW9zdHJhZG9zIG5vIGVjcsOjIGRlIHBlc3F1aXNhIGRlIEZBUSBkYSBpbnRlcmZhY2UgZGUgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHNlYXJjaCBzY3JlZW4gb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHNlYXJjaCBzY3JlZW4gb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBzbWFsbCBmb3JtYXQgb3ZlcnZpZXcgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdDYW1wb3MgZGluw6JtaWNvcyBleGliaWRvcyBubyBlY3LDoyB2aXPDo28gZ2VyYWwgZGUgRkFRIGVtIGZvcm1hdG8gcGVxdWVubyBkYSBpbnRlcmZhY2UgZGUgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdDYW1wb3MgZGluw6JtaWNvcyBleGliaWRvcyBubyBlY3LDoyBkZSB6b29tIGRlIEZBUSBkYSBpbnRlcmZhY2UgZGUgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHpvb20gc2NyZWVuIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSB6b29tIHNjcmVlbiBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoaXMgRkFRJ30gPSAnRWRpdGFyIGVzdGEgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSBtdWx0aXBsZSBsYW5ndWFnZXMgb24gRkFRIG1vZHVsZS4nfSA9ICdQZXJtaXRpciB2w6FyaW9zIGlkaW9tYXMgbm8gbcOzZHVsbyBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSBzZXJ2aWNlIGFzc2lnbm1lbnQgZm9yIEZBUXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB0aGUgcmVsYXRlZCBhcnRpY2xlIGZlYXR1cmUgZm9yIHRoZSBjdXN0b21lciBmcm9udGVuZC4nfSA9CiAgICAgICAgJ0F0aXZhciBhIGZ1bmNpb25hbGlkYWRlIGRlIGFydGlnb3MgcmVsYWNpb25hZG9zIG5hIGludGVyZmFjZSBkbyBjbGllbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgdm90aW5nIG1lY2hhbmlzbSBvbiBGQVEgbW9kdWxlLid9ID0gJ0F0aXZhciBmdW5jaW9uYWxpZGFkZSBkZSB2b3Rhw6fDo28gbm8gbcOzZHVsbyBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4cGxvcmVyJ30gPSAnRXhwbG9yYWRvcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQUpBWCBSZXNwb25kZXInfSA9ICdGQVEgQUpBWCBSZXNwb25kZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFKQVggUmVzcG9uZGVyIGZvciBSaWNodGV4dC4nfSA9ICdGQVEgQUpBWCBSZXNwb25kZXIgZW0gUmljaHRleHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcmVhJ30gPSAnw4FyZWEgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcmVhLid9ID0gJ8OBcmVhIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIERlbGV0ZS4nfSA9ICdBcGFnYXIgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgRWRpdC4nfSA9ICdFZGl0YXIgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSGlzdG9yeS4nfSA9ICdIaXN0w7NyaWNvIGRlIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEpvdXJuYWwgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJ0xpbWl0ZSBkYSBWaXPDo28gR2VyYWwgIlBlcXVlbm8iIGRvIEpvcm5hbCBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICdMaW1pdGUgZGEgVmlzw6NvIEdlcmFsIEZBUSAiUGVxdWVubyInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIFByaW50Lid9ID0gJ0ltcHJpbWlyIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIHNlYXJjaCBiYWNrZW5kIHJvdXRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0gJ0ZBUSBidXNjYSBzZXJ2aWRvciByb3RlYWRvciBkYSBpbnRlcmZhY2UgZG8gYXRlbmRlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWVsZDQnfSA9ICdDYW1wbzQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmllbGQ1J30gPSAnQ2FtcG81JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bGwgRkFRJ30gPSAnRkFRIGNvbXBsZXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0gJ0dydXBvIHBhcmEgYSBhcHJvdmHDp8OjbyBkb3MgYXJ0aWdvcyBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgdGhpcyBGQVEnfSA9ICdIaXN0w7NyaWNvIGRlc3RlIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBhY3RpdmF0ZWQsIEZBUSBhcnRpY2xlcyBvZiBzdGF0dXMgdHlwZSBpbnRlcm5hbCBhcmUgYWxzbyB0YWtlbiBpbnRvIGFjY291bnQgZm9yIHRoZSBhcHByb3ZhbCBwcm9jZXNzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgaW50ZXJuYWwgZmllbGRzIG9uIGEgRkFRIGJhc2VkIFRpY2tldC4nfSA9ICdJbmNsdWlyIGNhbXBvcyBpbnRlcm5vcyBkZSB1bSBDaGFtYWRvIGJhc2UgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNsdWRlIHRoZSBuYW1lIG9mIGVhY2ggZmllbGQgaW4gYSBGQVEgYmFzZWQgVGlja2V0Lid9ID0gJ0luY2x1aXIgbyBub21lIGRlIGNhZGEgY2FtcG8gZW0gdW0gQ2hhbWFkbyBiYXNlIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW50ZXJmYWNlcyB3aGVyZSB0aGUgcXVpY2sgc2VhcmNoIHNob3VsZCBiZSBzaG93bi4nfSA9ICdJbnRlcmZhY2VzIG9uZGUgYSBwZXNxdWlzYSByw6FwaWRhIGRldmUgc2VyIG1vc3RyYWRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydKb3VybmFsJ30gPSAnSm9ybmFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhbmd1YWdlIE1hbmFnZW1lbnQnfSA9ICdHZXN0w6NvIGRlIGlkaW9tYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFuZ3VhZ2UgTWFuYWdlbWVudC4nfSA9ICdHZXJlbmNpYW1lbnRvIGRlIElkaW9tYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbWl0IGZvciB0aGUgc2VhcmNoIHRvIGJ1aWxkIHRoZSBrZXl3b3JkIEZBUSBhcnRpY2xlIGxpc3QuJ30gPSAnTGltaXRlIHBhcmEgYSBwZXNxdWlzYSBjb25zdHJ1aXIgYSBsaXN0YSBkZSBwYWxhdnJhcy1jaGF2ZSBkZSBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhpcyBGQVEgaXRlbSd9ID0gJ0xpbmsgZGUgb3V0cm8gYXJ0aWdvIHBhcmEgZXN0ZSBpdGVtIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIHF1ZXVlIG5hbWVzIGZvciB3aGljaCB0aGUgcmVsYXRlZCBhcnRpY2xlIGZlYXR1cmUgaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJ0xpc3RhIGRvIG5vbWVzIGRlIGZpbGFzIHBhcmEgb3MgcXVhaXMgbyByZWN1cnNvIGRlc3NlIGFydGlnbyBlc3TDoSBhdGl2YWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIHN0YXRlIHR5cGVzIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdMaXN0YSBkb3MgdGlwb3MgZGUgZXN0YWRvIHF1ZSBwb2RlIHNlciB1dGlsaXphZG8gbmEgaW50ZXJmYWNlIGRlIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBzdGF0ZSB0eXBlcyB3aGljaCBjYW4gYmUgdXNlZCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTGlzdGEgZG9zIHRpcG9zIGRlIGVzdGFkbyBxdWUgcG9kZSBzZXIgdXRpbGl6YWRvIG5hIGludGVyZmFjZSBkZSBjbGllbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIHN0YXRlIHR5cGVzIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTGlzdGEgZG9zIHRpcG9zIGRlIGVzdGFkbyBxdWUgcG9kZSBzZXIgdXRpbGl6YWRvIG5hIGludGVyZmFjZSBww7pibGljYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdPIG7Dum1lcm8gbcOheGltbyBkZSBhcnRpZ29zIEZBUSBwYXJhIHNlciBleGliaWRvIG5vIHJlc3VsdGFkbyBkbyBHZXJlbmNpYWRvciBGQVEgZGEgaW50ZXJmYWNlIGRvIGF0ZW5kZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTyBuw7ptZXJvIG3DoXhpbW8gZGUgYXJ0aWdvcyBGQVEgcGFyYSBzZXIgZXhpYmlkbyBubyByZXN1bHRhZG8gZG8gR2VyZW5jaWFkb3IgRkFRIGRhIGludGVyZmFjZSBkbyBjbGllbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTyBuw7ptZXJvIG3DoXhpbW8gZGUgYXJ0aWdvcyBGQVEgcGFyYSBzZXIgZXhpYmlkbyBubyByZXN1bHRhZG8gZG8gR2VyZW5jaWFkb3IgRkFRIGRhIGludGVyZmFjZSBww7pibGljYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIGpvdXJuYWwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ08gbsO6bWVybyBtw6F4aW1vIGRlIGFydGlnb3MgRkFRIHBhcmEgc2VyIGV4aWJpZG8gbm8gam9ybmFsIEZBUSBkYSBpbnRlcmZhY2UgZG8gYXRlbmRlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSByZXN1bHQgb2YgYSBzZWFyY2ggaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ08gbsO6bWVybyBtw6F4aW1vIGRlIGFydGlnb3MgRkFRIHBhcmEgc2VyIGV4aWJpZG8gbm8gcmVzdWx0YWRvIGRlIHVtYSBwZXNxdWlzYSBuYSBpbnRlcmZhY2UgZG8gYXRlbmRlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSByZXN1bHQgb2YgYSBzZWFyY2ggaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ08gbsO6bWVybyBtw6F4aW1vIGRlIGFydGlnb3MgRkFRIHBhcmEgc2VyIGV4aWJpZG8gbm8gcmVzdWx0YWRvIGRlIHVtYSBwZXNxdWlzYSBuYSBpbnRlcmZhY2UgZG8gY2xpZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgcmVzdWx0IG9mIGEgc2VhcmNoIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTyBuw7ptZXJvIG3DoXhpbW8gZGUgYXJ0aWdvcyBGQVEgcGFyYSBzZXIgZXhpYmlkbyBubyByZXN1bHRhZG8gZGUgdW1hIHBlc3F1aXNhIG5hIGludGVyZmFjZSBwdWJsaWNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgRXhwbG9yZXIgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1RhbWFuaG8gbcOheGltbyBkZSB0w610dWxvcyBlbSB1bSBhcnRpZ28gRkFRIGEgc2VyZW0gZXhpYmlkb3MgbmEgbGlzdGEgZGUgZW50cmFkYXMgZGEgRkFRIGRhIGludGVyZmFjZSBkZSBhdGVuZGVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBFeHBsb3JlciBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnVGFtYW5obyBtw6F4aW1vIGRlIHTDrXR1bG9zIGVtIHVtIGFydGlnbyBGQVEgYSBzZXJlbSBleGliaWRvcyBuYSBsaXN0YSBkZSBlbnRyYWRhcyBkYSBGQVEgZGEgaW50ZXJmYWNlIGRlIGNsaWVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBFeHBsb3JlciBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1RhbWFuaG8gbcOheGltbyBkZSB0w610dWxvcyBlbSB1bSBhcnRpZ28gRkFRIGEgc2VyZW0gZXhpYmlkb3MgbmEgbGlzdGEgZGUgZW50cmFkYXMgZGEgRkFRIGRhIGludGVyZmFjZSBww7pibGljYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIFNlYXJjaCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnVGFtYW5obyBtw6F4aW1vIGRlIHTDrXR1bG9zIGVtIHVtIGFydGlnbyBGQVEgYSBzZXJlbSBleGliaWRvcyBuYSBQZXNxdWlzYSBkZSBGQVEgZGEgaW50ZXJmYWNlIGRlIGF0ZW5kZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIFNlYXJjaCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnVGFtYW5obyBtw6F4aW1vIGRlIHTDrXR1bG9zIGVtIHVtIGFydGlnbyBGQVEgYSBzZXJlbSBleGliaWRvcyBuYSBQZXNxdWlzYSBkZSBGQVEgZGEgaW50ZXJmYWNlIGRlIGNsaWVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBTZWFyY2ggaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICdUYW1hbmhvIG3DoXhpbW8gZGUgdMOtdHVsb3MgZW0gdW0gYXJ0aWdvIEZBUSBhIHNlcmVtIGV4aWJpZG9zIG5hIFBlc3F1aXNhIGRlIEZBUSBkYSBpbnRlcmZhY2UgcMO6YmxpY2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBqb3VybmFsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdUYW1hbmhvIG3DoXhpbW8gZGUgdMOtdHVsb3MgZW0gdW0gYXJ0aWdvIEZBUSBhIHNlcmVtIGV4aWJpZG9zIG5vIEpvcm5hbCBGQVEgZGEgaW50ZXJmYWNlIGRlIGF0ZW5kZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGdlbmVyYXRlIEhUTUwgT3BlblNlYXJjaCBwcm9maWxlIGZvciBzaG9ydCBGQVEgc2VhcmNoIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGdlbmVyYXRlIEhUTUwgT3BlblNlYXJjaCBwcm9maWxlIGZvciBzaG9ydCBGQVEgc2VhcmNoIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTcOzZHVsbyBwYXJhIGdlcmFyIHBlcmZpbCBIVE1MIE9wZW5TZWFyY2ggcGFyYSBwZXNxdWlzYXMgY3VydGFzIGRlIEZBUSBuYSBpbnRlcmZhY2UgcMO6YmxpY2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBnZW5lcmF0ZSBodG1sIE9wZW5TZWFyY2ggcHJvZmlsZSBmb3Igc2hvcnQgRkFRIHNlYXJjaC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgRkFRIEFydGljbGUuJ30gPSAnTm92byBBcnRpZ28gZGUgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgRkFRIGFydGljbGVzIG5lZWQgYXBwcm92YWwgYmVmb3JlIHRoZXkgZ2V0IHB1Ymxpc2hlZC4nfSA9ICdOb3ZvcyBhcnRpZ29zIEZBUSBwcmVjaXNhbSBkZSBhcHJvdmHDp8OjbyBhbnRlcyBkZSBzZXIgcHVibGljYWRvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTsO6bWVybyBkZSBhcnRpZ29zIEZBUSBwYXJhIHNlciBleGliaWRvIG5vIEdlcmVuY2lhZG9yIEZBUSBkYSBpbnRlcmZhY2UgZG8gY2xpZW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTsO6bWVybyBkZSBhcnRpZ29zIEZBUSBwYXJhIHNlciBleGliaWRvIG5vIEdlcmVuY2lhZG9yIEZBUSBkYSBpbnRlcmZhY2UgcHVibGljYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBvbiBlYWNoIHBhZ2Ugb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICdOw7ptZXJvIGRlIGFydGlnb3MgRkFRIHBhcmEgc2VyIGV4aWJpZG8gZW0gY2FkYSBww6FnaW5hIGRlIHVtIHJlc3VsdGFkbyBkZSBwZXNxdWlzYSBuYSBpbnRlcmZhY2UgZG8gY2xpZW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBvbiBlYWNoIHBhZ2Ugb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTsO6bWVybyBkZSBhcnRpZ29zIEZBUSBwYXJhIHNlciBleGliaWRvIGVtIGNhZGEgcMOhZ2luYSBkZSB1bSByZXN1bHRhZG8gZGUgcGVzcXVpc2EgbmEgaW50ZXJmYWNlIHB1YmxpY2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIHNob3duIGl0ZW1zIGluIGxhc3QgY2hhbmdlcy4nfSA9ICdOw7ptZXJvIGRlIGl0ZW5zIG1vc3RyYWRvcyBlbSDDumx0aW1hcyBhbHRlcmHDp8O1ZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBzaG93biBpdGVtcyBpbiBsYXN0IGNyZWF0ZWQuJ30gPSAnTsO6bWVybyBkZSBpdGVucyBtb3N0cmFkb3MgZW0gw7psdGltYXMgY3JpYcOnw7Vlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIHNob3duIGl0ZW1zIGluIHRoZSB0b3AgMTAgZmVhdHVyZS4nfSA9ICdOw7ptZXJvIGRlIGl0ZW5zIG1vc3RyYWRvcyBubyByZWN1cnNvIHRvcCAxMC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3V0cHV0IGZpbHRlciB0byBhZGQgSmF2YS1zY3JpcHQgdG8gQ3VzdG9tZXJUaWNrZXRNZXNzYWdlIHNjcmVlbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdXRwdXQgbGltaXQgZm9yIHRoZSByZWxhdGVkIEZBUSBhcnRpY2xlcy4nfSA9ICdMaW1pdGUgZGUgc2HDrWRhIHBhcmEgb3MgYXJ0aWdvcyBkZXNzZSBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIEZBUSBpdGVtcyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBGQVEgam91cm5hbCBvdmVydmlldy4nfSA9CiAgICAgICAgJ1BhcsOibWV0cm9zIGRlIHDDoWdpbmFzIChuYXMgcXVhaXMgb3MgaXRlbnMgRkFRIHPDo28gbW9zdHJhZG9zKSBkYSB2aXPDo28gZ2VyYWwgcGVxdWVuYSBkbyBqb3JuYWwgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBGQVEgaXRlbXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgRkFRIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnUGFyw6JtZXRyb3MgZGUgcMOhZ2luYXMgKG5hcyBxdWFpcyBvcyBpdGVucyBGQVEgc8OjbyBtb3N0cmFkb3MpIGRhIHZpc8OjbyBnZXJhbCBwZXF1ZW5hIGRlIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhpcyBGQVEnfSA9ICdJbXByaW1pciBlc3RlIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRIFByaW50Lid9ID0gJ0ltcHJpbWlyIEZBUSBww7pibGljby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIEZBUSBab29tLid9ID0gJ1pvb20gZW0gRkFRIHDDumJsaWNvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRIHNlYXJjaC4nfSA9ICdCdXNjYSBGQVEgcMO6YmxpY28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBGQVEuJ30gPSAnRkFRIHDDumJsaWNvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydRdWV1ZSBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICdGaWxhIHBhcmEgYSBhcHJvdmHDp8OjbyBkb3MgYXJ0aWdvcyBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGVzIGZvciB2b3RpbmcuIEtleSBtdXN0IGJlIGluIHBlcmNlbnQuJ30gPSAnQ29uZGnDp8OjbyBwYXJhIGEgYXZhbGlhw6fDo28uIENoYXZlIGRldmUgc2VyIGVtIHBlcmNlbnR1YWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1MnfSA9ICdTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBGQVEnfSA9ICdQZXNxdWlzYSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIEZBUSBTbWFsbC4nfSA9ICdQZXNxdWlzYXIgRkFRIFBlcXVlbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIEZBUS4nfSA9ICdQZXNxdWlzYXIgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgaG93IG1hbnkgaXRlbXMgc2hvdWxkIGJlIHNob3duIGluIEpvdXJuYWwgT3ZlcnZpZXcgIlNtYWxsIiBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnU2VsZWNpb25lIHF1YW50b3MgaXRlbnMgZGV2ZW0gc2VyIG1vc3RyYWRvcyBuYSB2aXPDo28gZ2VyYWwgZG8gZGnDoXJpbyAiU21hbGwiIHBvciBwYWRyw6NvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgaG93IG1hbnkgaXRlbXMgc2hvdWxkIGJlIHNob3duIGluIE92ZXJ2aWV3ICJTbWFsbCIgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJ1NlbGVjaW9uZSBxdWFudG9zIGl0ZW5zIGRldmVtIHNlciBtb3N0cmFkb3MgbmEgdmlzw6NvIGdlcmFsICJTbWFsbCIgcG9yIHBhZHLDo28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZGVmYXVsdCBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEFnZW50RkFRWm9vbS4nfSA9CiAgICAgICAgJ0NvbmZpZ3VyYSBhIGFsdHVyYSBwYWRyw6NvIChlbSBwaXhlbHMpIGRlIGNhbXBvcyBIVE1MIGVtYnV0aWRvcyBubyBBZ2VudEZBUVpvb20uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZGVmYXVsdCBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEN1c3RvbWVyRkFRWm9vbSAoYW5kIFB1YmxpY0ZBUVpvb20pLid9ID0KICAgICAgICAnQ29uZmlndXJhIGEgYWx0dXJhIHBhZHLDo28gKGVtIHBpeGVscykgZGUgY2FtcG9zIEhUTUwgZW1idXRpZG9zIGVtIEN1c3RvbWVyRkFRWm9vbSAoZSBQdWJsaWNGQVFab29tKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBtYXhpbXVtIGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gQWdlbnRGQVFab29tLid9ID0KICAgICAgICAnQ29uZmlndXJhIGEgYWx0dXJhIG3DoXhpbWEgKGVtIHBpeGVscykgZGUgY2FtcG9zIEhUTUwgZW1idXRpZG9zIG5vIEFnZW50RkFRWm9vbS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBtYXhpbXVtIGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gQ3VzdG9tZXJGQVFab29tIChhbmQgUHVibGljRkFRWm9vbSkuJ30gPQogICAgICAgICdDb25maWd1cmEgYSBhbHR1cmEgbcOheGltYSAoZW0gcGl4ZWxzKSBkZSBjYW1wb3MgSFRNTCBlbWJ1dGlkb3MgZW0gQ3VzdG9tZXJGQVFab29tIChlIFB1YmxpY0ZBUVpvb20pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93ICJJbnNlcnQgRkFRIExpbmsiIEJ1dHRvbiBpbiBBZ2VudEZBUVpvb21TbWFsbCBmb3IgcHVibGljIEZBUSBBcnRpY2xlcy4nfSA9CiAgICAgICAgJ01vc3RyYSBib3TDo28gIkluc2VyaXIgTGluayBGQVEiIGVtIEFtcGxpYcOnw6NvIHBlcXVlbmEgcGFyYSBvIGFydGlnb3MgRkFRIHDDumJsaWNvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93ICJJbnNlcnQgRkFRIFRleHQgJiBMaW5rIiAvICJJbnNlcnQgRnVsbCBGQVEgJiBMaW5rIiBCdXR0b24gaW4gQWdlbnRGQVFab29tU21hbGwgZm9yIHB1YmxpYyBGQVEgQXJ0aWNsZXMuJ30gPQogICAgICAgICdNb3N0cmFyIGJvdMO1ZXMgIkluc2VyaXIgdGV4dG8gZG8gRkFRIGUgbGluayIgLyAiSW5zZXJpciB0b2RvIG8gRkFRIGUgbGluayIgZW0gQWdlbnRGQVFab29tU21hbGwgcGFyYSBBcnRpZ29zIGRlIEZBUSBww7pibGljb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgIkluc2VydCBGQVEgVGV4dCIgLyAiSW5zZXJ0IEZ1bGwgRkFRIiBCdXR0b24gaW4gQWdlbnRGQVFab29tU21hbGwuJ30gPQogICAgICAgICdNb3N0cmFyIGJvdMO1ZXMgIkluc2VyaXIgdGV4dG8gZG8gRkFRIiAvICJJbnNlcmlyIHRvZG8gbyBGQVEiIGVtIEFnZW50RkFRWm9vbVNtYWxsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IEZBUSBBcnRpY2xlIHdpdGggSFRNTC4nfSA9ICdNb3N0cmFyIGFydGlnbyBGQVEgY29tIEhUTUwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgRkFRIHBhdGggeWVzL25vLid9ID0gJ01vc3RyYXIgY2FtaW5obyBGQVEgc2ltIC8gbsOjby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBpbnZhbGlkIGl0ZW1zIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNb3N0cmFyIGl0ZW5zIGludsOhbGlkb3Mgbm8gcmVzdWx0YWRvIGRvIEV4cGxvcmFkb3IgZGUgRkFRIG5hIGludGVyZmFjZSBkZSBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgaXRlbXMgb2Ygc3ViY2F0ZWdvcmllcy4nfSA9ICdNb3N0cmFyIGl0ZW5zIGRlIHN1YmNhdGVnb3JpYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgbGFzdCBjaGFuZ2UgaXRlbXMgaW4gZGVmaW5lZCBpbnRlcmZhY2VzLid9ID0gJ01vc3RyYXIgYXMgw7psdGltYXMgYWx0ZXJhw6fDtWVzIGRlIGl0ZW5zIGVtIGludGVyZmFjZXMgZGVmaW5pZGFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGxhc3QgY3JlYXRlZCBpdGVtcyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAnTW9zdHJhciBvcyDDumx0aW1vcyBpdGVucyBjcmlhZG9zIGVtIGludGVyZmFjZXMgZGVmaW5pZGFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHJlbGF0ZWQgYXJ0aWNsZXMgb24gc2VydmljZSBjaGFuZ2UgZXZlbiB3aXRoIGVtcHR5IHN1YmplY3QgYW5kIGJvZHkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB0aGUgc3RhcnMgZm9yIHRoZSBhcnRpY2xlcyB3aXRoIGEgcmF0aW5nIGVxdWFsIG9yIGdyZWF0ZXIgbGlrZSB0aGUgZGVmaW5lZCB2YWx1ZSAoc2V0IHZhbHVlIFwnMFwnIHRvIGRlYWN0aXZhdGUgdGhlIG91dHB1dCkuJ30gPQogICAgICAgICdNb3N0cmUgYXMgZXN0cmVsYXMgcGFyYSBvcyBhcnRpZ29zIGNvbSB1bWEgY2xhc3NpZmljYcOnw6NvIGlndWFsIG91IG1haW9yIGRvIHZhbG9yIGRlZmluaWRvIChkZWZpbmEgbyB2YWxvciBcJzBcJyBwYXJhIGRlc2F0aXZhciBhIHNhw61kYSkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgdG9wIDEwIGl0ZW1zIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICdNb3N0cmFyIG9zIDEwIGl0ZW5zIHN1cGVyaW9yIGVtIGludGVyZmFjZXMgZGVmaW5pZGFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHZvdGluZyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAnTW9zdHJhciB2b3Rhw6fDo28gZW0gaW50ZXJmYWNlcyBkZWZpbmlkYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBsaW5raW5nIGEgRkFRIHdpdGggYW5vdGhlciBvYmplY3QgaW4gdGhlIHpvb20gdmlldyBvZiBzdWNoIEZBUSBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTW9zdHJhIHVtIGxpbmsgbm8gbWVudSBxdWUgcGVybWl0ZSBsaWdhciB1bSBGQVEgY29tIG91dHJvIG9iamV0byBubyBtb2RvIGRlIGV4aWJpw6fDo28gYW1wbGlhZGEgbmEgaW50ZXJmYWNlIGRvIGF0ZW5kZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIHRvIGRlbGV0ZSBhIEZBUSBpbiBpdHMgem9vbSB2aWV3IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNb3N0cmEgdW0gbGluayBubyBtZW51IHF1ZSBwZXJtaXRlIGV4Y2x1aXIgdW0gRkFRIG5vIG1vZG8gZGUgZXhpYmnDp8OjbyBhbXBsaWFkYSBuYSBpbnRlcmZhY2UgZG8gYXRlbmRlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBoaXN0b3J5IG9mIGEgRkFRIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01vc3RyYSB1bSBsaW5rIG5vIG1lbnUgcGFyYSBhY2Vzc2FyIG8gaGlzdMOzcmljbyBkZSB1bSBGQVEgbm8gbW9kbyBkZSBleGliacOnw6NvIGFtcGxpYWRhIG5hIGludGVyZmFjZSBkbyBhdGVuZGVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgRkFRIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNb3N0cmEgdW0gbGluayBubyBtZW51IHBhcmEgZWRpdGFyIHVtIEZBUSBubyBtb2RvIGRlIGV4aWJpw6fDo28gYW1wbGlhZGEgbmEgaW50ZXJmYWNlIGRvIGF0ZW5kZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIEZBUSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01vc3RyYSB1bSBsaW5rIG5vIG1lbnUgcGFyYSB2b2x0YXIgdW0gRkFRIG5vIG1vZG8gZGUgZXhpYmnDp8OjbyBhbXBsaWFkYSBuYSBpbnRlcmZhY2UgZG8gYXRlbmRlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSBGQVEgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01vc3RyYSB1bSBsaW5rIG5vIG1lbnUgcGFyYSBpbXByaW1pciB1bSBGQVEgbm8gbW9kbyBkZSBleGliacOnw6NvIGFtcGxpYWRhIG5hIGludGVyZmFjZSBkbyBhdGVuZGVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NvbHV0aW9uJ30gPSAnU29sdcOnw6NvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N5bXB0b20nfSA9ICdTaW50b21hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RleHQgT25seSd9ID0gJ0FwZW5hcyB0ZXh0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgZGVmYXVsdCBsYW5ndWFnZXMgZm9yIHRoZSByZWxhdGVkIEZBUSBhcnRpY2xlcy4nfSA9ICdPIGlkaW9tYSBwYWRyw6NvIHBhcmEgb3MgYXJ0aWdvcyBkZXNzZSBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIEZBUSwgZS5nLiBGQVEjLCBLQiMsIE15RkFRIy4gVGhlIGRlZmF1bHQgaXMgRkFRIy4nfSA9CiAgICAgICAgJ08gaWRlbnRpZmljYWRvciBwYXJhIHVtIEZBUSwgZXhlbXBsbyBGQVEgIyBLQiAjICMgTXlGQVEuIE8gcGFkcsOjbyDDqSBGQVEgIy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBzZXR0aW5nIGRlZmluZXMgdGhhdCBhIFwnRkFRXCcgb2JqZWN0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciBcJ0ZBUVwnIG9iamVjdHMgdXNpbmcgdGhlIFwnTm9ybWFsXCcgbGluayB0eXBlLid9ID0KICAgICAgICAnRXNzYSBjb25maWd1cmHDp8OjbyBkZWZpbmUgcXVlIHVtIG9iamV0byBcJ0ZBUVwnIHBvZGUgc2VyIHJlbGFjaW9uYWRvIGNvbSBvdXRyb3Mgb2JqZXRvcyBcJ0ZBUVwnIHVzYW5kbyBvIHRpcG8gZGUgdsOtbmN1bG8gXCdOb3JtYWxcJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnRkFRXCcgb2JqZWN0cyB1c2luZyB0aGUgXCdQYXJlbnRDaGlsZFwnIGxpbmsgdHlwZS4nfSA9CiAgICAgICAgJ0Vzc2EgY29uZmlndXJhw6fDo28gZGVmaW5lIHF1ZSB1bSBvYmpldG8gXCdGQVFcJyBwb2RlIHNlciByZWxhY2lvbmFkbyBjb20gb3V0cm9zIG9iamV0b3MgXCdGQVFcJyB1c2FuZG8gbyB0aXBvIGRlIHbDrW5jdWxvIFwnUGFpIGUgZmlsaG9cJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnVGlja2V0XCcgb2JqZWN0cyB1c2luZyB0aGUgXCdOb3JtYWxcJyBsaW5rIHR5cGUuJ30gPQogICAgICAgICdFc3NhIGNvbmZpZ3VyYcOnw6NvIGRlZmluZSBxdWUgdW0gb2JqZXRvIFwnRkFRXCcgcG9kZSBzZXIgcmVsYWNpb25hZG8gY29tIG91dHJvcyBvYmpldG9zIFwnQ2hhbWFkb1wnIHVzYW5kbyBvIHRpcG8gZGUgdsOtbmN1bG8gXCdOb3JtYWxcJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnVGlja2V0XCcgb2JqZWN0cyB1c2luZyB0aGUgXCdQYXJlbnRDaGlsZFwnIGxpbmsgdHlwZS4nfSA9CiAgICAgICAgJ0Vzc2EgY29uZmlndXJhw6fDo28gZGVmaW5lIHF1ZSB1bSBvYmpldG8gXCdGQVFcJyBwb2RlIHNlciByZWxhY2lvbmFkbyBjb20gb3V0cm9zIG9iamV0b3MgXCdDaGFtYWRvXCcgdXNhbmRvIG8gdGlwbyBkZSB2w61uY3VsbyBcJ1BhaSBlIGZpbGhvXCcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IGJvZHkgZm9yIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlLid9ID0gJ0NvcnBvIGRvIGNoYW1hZG8gcGFyYSBhcHJvdmHDp8OjbyBkZSB1bSBhcnRpZ28gRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgc3ViamVjdCBmb3IgYXBwcm92YWwgb2YgRkFRIGFydGljbGUuIFBlcm1pdHRlZCBub3RpZmljYXRpb24gdGFncyBhcmUgPE9UT0JPX0ZBUV9OVU1CRVI+LCA8T1RPQk9fRkFRX0NBVEVHT1JZSUQ+LCA8T1RPQk9fRkFRX0lURU1JRD4+IDxPVE9CT19GQVFfVElUTEU+IGFuZCA8T1RPQk9fRkFRX1NUQVRFSUQ+Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rvb2xiYXIgSXRlbSBmb3IgYSBzaG9ydGN1dC4nfSA9ICdJdGVtIGRhIGJhcnJhIGRlIGZlcnJhbWVudGFzIHBhcmEgdW0gYXRhbGhvLiAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZXh0ZXJuYWwgKGN1c3RvbWVyKSd9ID0gJ2V4dGVybm8gKGNsaWVudGUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2ludGVybmFsIChhZ2VudCknfSA9ICdpbnRlcm5vIChhZ2VudGUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3B1YmxpYyAoYWxsKSd9ID0gJ3DDumJsaWNvICh0b2RvcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncHVibGljIChwdWJsaWMpJ30gPSAncMO6YmxpY28gKHDDumJsaWNvKSc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ05vJywKICAgICdPaycsCiAgICAnU2V0dGluZ3MnLAogICAgJ1N1Ym1pdCcsCiAgICAnVGhpcyBtaWdodCBiZSBoZWxwZnVsJywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==</File>
        <File Location="Kernel/Language/pt_BR_FAQ.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnB0X0JSX0ZBUTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRQWRkCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIEFydGljbGUnfSA9ICdBZGljaW9uYXIgQXJ0aWdvIGRlIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydLZXl3b3Jkcyd9ID0gJ1BhbGF2cmFzLWNoYXZlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgY2F0ZWdvcnkgaXMgcmVxdWlyZWQuJ30gPSAnVW1hIGNhdGVnb3JpYSDDqSBuZWNlc3PDoXJpYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwcm92YWwnfSA9ICdBcHJvdmHDp8Ojbyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFDYXRlZ29yeQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIENhdGVnb3J5IE1hbmFnZW1lbnQnfSA9ICdHZXJlbmNpYW1lbnRvIGRlIENhdGVnb3JpYSBkZSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEZBUSBDYXRlZ29yeSd9ID0gJ0FkaWNpb25hciBDYXRlZ29yaWEgZGUgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgRkFRIENhdGVnb3J5J30gPSAnRWRpdGFyIENhdGVnb3JpYSBkZSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGNhdGVnb3J5J30gPSAnQWRpY2lvbmFyIGNhdGVnb3JpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0ZWdvcnknfSA9ICdBZGljaW9uYXIgY2F0ZWdvcmlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ2F0ZWdvcnknfSA9ICdBbHRlcmFyIGNhdGVnb3JpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWJjYXRlZ29yeSBvZid9ID0gJ1N1YmNhdGVnb3JpYSBkZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2Ugc2VsZWN0IGF0IGxlYXN0IG9uZSBwZXJtaXNzaW9uIGdyb3VwLid9ID0gJ1BvciBmYXZvciwgc2VsZWNpb25lIHBlbG8gbWVub3MgdW0gZ3J1cG8gZGUgcGVybWlzc8Ojby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgZ3JvdXBzIHRoYXQgY2FuIGFjY2VzcyBhcnRpY2xlcyBpbiB0aGlzIGNhdGVnb3J5Lid9ID0gJ0dydXBvcyBkZSBhdGVuZGVudGVzIHF1ZSBwb2RlbSBhY2Vzc2FyIGFydGlnb3MgbmVzdGEgY2F0ZWdvcmlhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXaWxsIGJlIHNob3duIGFzIGNvbW1lbnQgaW4gRXhwbG9yZXIuJ30gPSAnU2Vyw6EgZXhpYmlkbyBjb21vIGNvbWVudMOhcmlvIG5hIGxpc3RhIGRlIGVudHJhZGFzIGRhIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY2F0ZWdvcnk/J30gPSAnVm9jw6ogcmVhbG1lbnRlIHF1ZXIgYXBhZ2FyIGVzdGEgY2F0ZWdvcmlhPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBjYXRlZ29yeS4gSXQgaXMgdXNlZCBpbiBhdCBsZWFzdCBvbmUgRkFRIGFydGljbGUgYW5kL29yIGlzIHBhcmVudCBvZiBhdCBsZWFzdCBvbmUgb3RoZXIgY2F0ZWdvcnknfSA9CiAgICAgICAgJ1ZvY8OqIG7Do28gcG9kZSByZW1vdmVyIGVzc2EgY2F0ZWdvcmlhLiBFbGEgw6kgdXRpbGl6YWRhIHBvciBwZWxvIG1lbm9zIHVtIEFydGlnbyBkYSBGQVEgZS9vdSDDqSBwYWkgZGUgcGVsbyBtZW5vcyB1bWEgb3V0cmEgY2F0ZWdvcmlhLiAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBjYXRlZ29yeSBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgRkFRIGFydGljbGUocyknfSA9ICdFc3RhIGNhdGVnb3JpYSDDqSB1dGlsaXphZGEgbm8ocykgc2VndWludGUocykgYXJ0aWdvKHMpIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGNhdGVnb3J5IGlzIHBhcmVudCBvZiB0aGUgZm9sbG93aW5nIHN1YmNhdGVnb3JpZXMnfSA9ICdFc3RhIGNhdGVnb3JpYSDDqSBwYWkgZGFzIHNlZ3VpbnRlcyBzdWJjYXRlZ29yaWFzJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUURlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIEZBUSBhcnRpY2xlPyd9ID0gJ1ZvY8OqIHJlYWxtZW50ZSBxdWVyIGV4Y2x1aXIgZXN0ZSBhcnRpZ28gRkFRPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEnfSA9ICdGQVEnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRRXhwbG9yZXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBFeHBsb3Jlcid9ID0gJ0V4cGxvcmFyIGEgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1F1aWNrIFNlYXJjaCd9ID0gJ0J1c2NhIFLDoXBpZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2lsZGNhcmRzIGFyZSBhbGxvd2VkLid9ID0gJ0NvcmluZ2FzIHPDo28gcGVybWl0aWRvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWR2YW5jZWQgU2VhcmNoJ30gPSAnUGVzcXVpc2EgQXZhbsOnYWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1YmNhdGVnb3JpZXMnfSA9ICdTdWJjYXRlZ29yaWFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlcyd9ID0gJ0FydGlnb3MgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHN1YmNhdGVnb3JpZXMgZm91bmQuJ30gPSAnU3ViY2F0ZWdvcmlhcyBuw6NvIGVuY29udHJhZGFzLic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFIaXN0b3J5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mJ30gPSAnSGlzdMOzcmljbyBkZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IENvbnRlbnQnfSA9ICdDb250ZcO6ZG8gZG8gSGlzdMOzcmljbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGV0aW1lJ30gPSAnSG9yYSBkZSBjcmlhw6fDo28nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRSm91cm5hbE92ZXJ2aWV3U21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEZBUSBKb3VybmFsIGRhdGEgZm91bmQuJ30gPSAnTsOjbyBmb3JhbSBlbmNvbnRyYWRvcyBkYWRvcyBkZSBKb3JuYWwgRkFRLic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFMYW5ndWFnZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIExhbmd1YWdlIE1hbmFnZW1lbnQnfSA9ICdHZXJlbmNpYW1lbnRvIGRlIElkaW9tYXMgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBGQVEgTGFuZ3VhZ2UnfSA9ICdBZGljaW9uYXIgSWRpb21hIGRlIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEZBUSBMYW5ndWFnZSd9ID0gJ0VkaXRhciBJZGlvbWEgZG8gRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZSB0aGlzIGZlYXR1cmUgaWYgeW91IHdhbnQgdG8gd29yayB3aXRoIG11bHRpcGxlIGxhbmd1YWdlcy4nfSA9CiAgICAgICAgJ1VzZSBlc3NlIHJlY3Vyc28gc2Ugdm9jw6ogZGVzZWphIHRyYWJhbGhhciBjb20gbcO6bHRpcGxvcyBpZGlvbWFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbGFuZ3VhZ2UnfSA9ICdBZGljaW9uYXIgaWRpb21hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBMYW5ndWFnZSd9ID0gJ0FkaWNpb25hciBJZGlvbWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBMYW5ndWFnZSd9ID0gJ0VkaXRhciBJZGlvbWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgbGFuZ3VhZ2UuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIEZBUSBhcnRpY2xlISd9ID0KICAgICAgICAnVm9jw6ogbsOjbyBwb2RlIGV4Y2x1aXIgZXN0ZSBpZGlvbWEuIEVsZSDDqSB1c2FkbyBlbSBwZWxvIG1lbm9zIHVtIGFydGlnbyBGQVEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbGFuZ3VhZ2UgaXMgdXNlZCBpbiB0aGUgZm9sbG93aW5nIEZBUSBBcnRpY2xlKHMpJ30gPSAnRXN0ZSBpZGlvbWEgw6kgdXNhZG8gbm9zIHNlZ3VpbnRlcyBhcnRpZ28ocykgRkFRJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUU92ZXJ2aWV3TmF2QmFyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAnQ29uZmlndXJhw6fDtWVzIGRlIENvbnRleHRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBhcnRpY2xlcyBwZXIgcGFnZSd9ID0gJ0FydGlnb3MgRkFRIHBvciBww6FnaW5hJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUU92ZXJ2aWV3U21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEZBUSBkYXRhIGZvdW5kLid9ID0gJ07Do28gZm9yYW0gZW5jb250cmFkb3MgZGFkb3MgZGUgRkFRLic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFSZWxhdGVkQXJ0aWNsZXMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J291dCBvZiA1J30gPSAnZGUgNSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFTZWFyY2gKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0tleXdvcmQnfSA9ICdQYWxhdnJhLWNoYXZlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGUgKGUuIGcuIEVxdWFscyAxMCBvciBHcmVhdGVyVGhhbiA2MCknfSA9ICdWb3RvIChleC4gSWd1YWwgYSAxMCBvdSBtYWlvciBxdWUgNjApJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGUgKGUuIGcuIEVxdWFscyAyNSUgb3IgR3JlYXRlclRoYW4gNzUlKSd9ID0gJ1BvbnR1YcOnw6NvIChleC4gSWd1YWwgYSAyNSUgb3UgbWFpb3IgcXVlIDc1JSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwcm92ZWQnfSA9ICdBcHJvdmFkbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQgYnknfSA9ICdBbHRlcmFkbyBwZWxhIMO6bHRpbWEgdmV6IHBvcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDcmVhdGUgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJ0hvcsOhcmlvIGRlIGNyaWHDp8OjbyBkZSBhcnRpZ28gZGUgRkFRIChhbnRlcy9kZXBvaXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENyZWF0ZSBUaW1lIChiZXR3ZWVuKSd9ID0gJ0hvcsOhcmlvIGRlIGNyaWHDp8OjbyBkZSBhcnRpZ28gZGUgRkFRIChlbnRyZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ2hhbmdlIFRpbWUgKGJlZm9yZS9hZnRlciknfSA9ICdIb3LDoXJpbyBkZSBhbHRlcmHDp8OjbyBkZSBhcnRpZ28gZGUgRkFRIChhbnRlcy9kZXBvaXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENoYW5nZSBUaW1lIChiZXR3ZWVuKSd9ID0gJ0hvcsOhcmlvIGRlIGFsdGVyYcOnw6NvIGRlIGFydGlnbyBkZSBGQVEgKGVudHJlKSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFTZWFyY2hPcGVuU2VhcmNoRGVzY3JpcHRpb25GdWxsdGV4dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRRnVsbHRleHQnfSA9ICdGQVEtVGV4dG9Db21wbGV0byc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFTZWFyY2hTbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIFNlYXJjaCd9ID0gJ0J1c2NhIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9maWxlIFNlbGVjdGlvbid9ID0gJ1NlbGXDp8OjbyBkZSBwZXJmaWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSd9ID0gJ1ZvdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdm90ZSBzZXR0aW5ncyd9ID0gJ1NlbSBjb25maWd1cmHDp8O1ZXMgZGUgdm90byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpYyB2b3Rlcyd9ID0gJ1ZvdG9zIGVzcGVjw61maWNvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlLiBnLiBFcXVhbHMgMTAgb3IgR3JlYXRlclRoYW4gNjAnfSA9ICdleC4gSWd1YWwgYSAxMCBvdSBtYWlvciBxdWUgNjAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0ZSd9ID0gJ1BvbnR1YcOnw6NvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHJhdGUgc2V0dGluZ3MnfSA9ICdTZW0gY29uZmlndXJhw6fDtWVzIGRlIHBvbnR1YcOnw6NvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmljIHJhdGUnfSA9ICdQb250dWHDp8OjbyBlc3BlY8OtZmljYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlLiBnLiBFcXVhbHMgMjUlIG9yIEdyZWF0ZXJUaGFuIDc1JSd9ID0gJ2V4LiBJZ3VhbCBhIDI1JSBvdSBtYWlvciBxdWUgNzUlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENyZWF0ZSBUaW1lJ30gPSAnSG9yw6FyaW8gZGUgY3JpYcOnw6NvIGRlIGFydGlnbyBkZSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ2hhbmdlIFRpbWUnfSA9ICdIb3LDoXJpbyBkZSBhbHRlcmHDp8OjbyBkZSBhcnRpZ28gZGUgRkFRJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVpvb20KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJbmZvcm1hdGlvbid9ID0gJ0luZm9ybWHDp8OjbyBkbyBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0aW5nJ30gPSAnTm90YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWb3Rlcyd9ID0gJ1ZvdG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHZvdGVzIGZvdW5kISd9ID0gJ05lbmh1bSB2b3RvIGVuY29udHJhZG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHZvdGVzIGZvdW5kISBCZSB0aGUgZmlyc3Qgb25lIHRvIHJhdGUgdGhpcyBGQVEgYXJ0aWNsZS4nfSA9ICdOZW5odW0gdm90byBlbmNvbnRyYWRvISBTZWphIG8gcHJpbWVpcm8gYSBhdmFsaWFyIGVzdGUgYXJ0aWdvIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG93bmxvYWQgQXR0YWNobWVudCd9ID0gJ0JhaXhhciBhbmV4b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gb3BlbiBsaW5rcyBpbiB0aGUgZm9sbG93aW5nIGRlc2NyaXB0aW9uIGJsb2NrcywgeW91IG1pZ2h0IG5lZWQgdG8gcHJlc3MgQ3RybCBvciBDbWQgb3IgU2hpZnQga2V5IHdoaWxlIGNsaWNraW5nIHRoZSBsaW5rIChkZXBlbmRpbmcgb24geW91ciBicm93c2VyIGFuZCBPUykuJ30gPQogICAgICAgICdQYXJhIGFicmlyIGxpbmtzIG5vcyBibG9jb3MgZGUgZGVzY3Jpw6fDo28gc2VndWludGVzLCB0YWx2ZXogdm9jw6ogcHJlY2lzZSBwcmVzc2lvbmFyIEN0cmwsIENtZCBvdSBTaGlmdCBlbnF1YW50byBjbGljYSBubyBsaW5rIChkZXBlbmRlbmRvIGRvIHNldSBuYXZlZ2Fkb3Igb3Ugc2lzdGVtYSBvcGVyYWNpb25hbCkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdyBoZWxwZnVsIHdhcyB0aGlzIGFydGljbGU/IFBsZWFzZSBnaXZlIHVzIHlvdXIgcmF0aW5nIGFuZCBoZWxwIHRvIGltcHJvdmUgdGhlIEZBUSBEYXRhYmFzZS4gVGhhbmsgWW91ISd9ID0KICAgICAgICAnRXN0ZSBhcnRpZ28gdGUgYWp1ZG91Pyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgaGVscGZ1bCd9ID0gJ3BvdWNvIMO6dGlsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3ZlcnkgaGVscGZ1bCd9ID0gJ211aXRvIMO6dGlsJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVpvb21TbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEZBUSB0aXRsZSB0byBhcnRpY2xlIHN1YmplY3QnfSA9ICdBZGljaW9uYXIgYXNzdW50byBubyBhcnRpZ28gZGEgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRkFRIFRleHQnfSA9ICdJbnNlcmlyIHRleHRvIGRvIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRnVsbCBGQVEnfSA9ICdJbnNlcmlyIHRvZG8gbyBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZBUSBMaW5rJ30gPSAnSW5zZXJpciBsaW5rIGRvIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRkFRIFRleHQgJiBMaW5rJ30gPSAnSW5zZXJpciB0ZXh0byBkbyBGQVEgZSBsaW5rJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGdWxsIEZBUSAmIExpbmsnfSA9ICdJbnNlcmlyIHRvZG8gbyBGQVEgZSBsaW5rJzsKCiAgICAjIFRlbXBsYXRlOiBDdXN0b21lckZBUUV4cGxvcmVyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXRlc3QgdXBkYXRlZCBGQVEgYXJ0aWNsZXMnfSA9ICdBcnRpZ29zIGRhIEZBUSBhdHVhbGl6YWRvcyByZWNlbnRlbWVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEZBUSBhcnRpY2xlcyBmb3VuZC4nfSA9ICdOZW5odW0gYXJ0aWdvIEZBUSBlbmNvbnRyYWRvLic7CgogICAgIyBUZW1wbGF0ZTogQ3VzdG9tZXJGQVFSZWxhdGVkQXJ0aWNsZXMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbWlnaHQgYmUgaGVscGZ1bCd9ID0gJ0lzc28gcG9kZSBzZXIgw7p0aWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm91bmQgbm8gaGVscGZ1bCByZXNvdXJjZXMgZm9yIHRoZSBzdWJqZWN0IGFuZCB0ZXh0Lid9ID0gJ07Do28gZm9yYW0gZW5jb250cmFkb3MgcmVzdWx0YWRvcyDDunRlaXMgcGFyYSBvIGFzc3VudG8gb3UgdGV4dG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGUgYSBzdWJqZWN0IG9yIHRleHQgdG8gZ2V0IGEgbGlzdCBvZiBoZWxwZnVsIHJlc291cmNlcy4nfSA9ICdJbnNpcmEgdW0gYXNzdW50byBvdSB0ZXh0byBwYXJhIGxpc3RhciBvcyByZWN1cnNvcyDDunRlaXMuJzsKCiAgICAjIFRlbXBsYXRlOiBDdXN0b21lckZBUVNlYXJjaAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnVsbHRleHQgc2VhcmNoIGluIEZBUSBhcnRpY2xlcyAoZS4gZy4gIkpvaG4qbiIgb3IgIldpbGwqIiknfSA9ICdQZXNxdWlzYSBjb21wbGV0YSBkZSB0ZXh0b3MgZW0gYXJ0aWdvcyBGQVEgKHBvciBleGVtcGxvLCAiSm8qbyIgb3IgIldpbGwqIiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSByZXN0cmljdGlvbnMnfSA9ICdSZXN0cmnDp8O1ZXMgZGUgdm90byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IEZBUSBhcnRpY2xlcyB3aXRoIHZvdGVzLi4uJ30gPSAnQXBlbmFzIGFydGlnb3MgZGUgRkFRIGNvbSB2b3Rvcy4uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRlIHJlc3RyaWN0aW9ucyd9ID0gJ1Jlc3RyacOnw7VlcyBkZSBwb250dWHDp8Ojbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IEZBUSBhcnRpY2xlcyB3aXRoIHJhdGUuLi4nfSA9ICdBcGVuYXMgYXJ0aWdvcyBkZSBGQVEgY29tIHBvbnR1YcOnw6NvLi4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVzdHJpY3Rpb25zJ30gPSAnUmVzdHJpw6fDtWVzIGRlIHRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgRkFRIGFydGljbGVzIGNyZWF0ZWQnfSA9ICdBcGVuYXMgYXJ0aWdvcyBkZSBGQVEgY3JpYWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IEZBUSBhcnRpY2xlcyBjcmVhdGVkIGJldHdlZW4nfSA9ICdBcGVuYXMgYXJ0aWdvcyBkZSBGQVEgY3JpYWRvcyBlbnRyZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2gtUHJvZmlsZSBhcyBUZW1wbGF0ZT8nfSA9ICdQZXJmaWwgZGUgcGVzcXVpc2EgY29tbyBtb2RlbG8/JzsKCiAgICAjIFRlbXBsYXRlOiBDdXN0b21lckZBUVpvb20KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FydGljbGUgTnVtYmVyJ30gPSAnTsO6bWVybyBkbyBBcnRpZ28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIGZvciBhcnRpY2xlcyB3aXRoIGtleXdvcmQnfSA9ICdQcm9jdXJlIHBvciBhcnRpZ29zIGNvbSBwYWxhdnJhcy1jaGF2ZSc7CgogICAgIyBUZW1wbGF0ZTogUHVibGljRkFRU2VhcmNoT3BlblNlYXJjaERlc2NyaXB0aW9uRkFRTnVtYmVyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMnfSA9ICdQw7pibGljbyc7CgogICAgIyBUZW1wbGF0ZTogUHVibGljRkFRU2VhcmNoUmVzdWx0U2hvcnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0JhY2sgdG8gRkFRIEV4cGxvcmVyJ30gPSAnVm9sdGFyIHBhcmEgYSBsaXN0YSBkZSBlbnRyYWRhcyBkYSBGQVEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCBydyBwZXJtaXNzaW9uISd9ID0gJ1ZvY8OqIHByZWNpc2EgZGUgcGVybWlzc8OjbyBydyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY2F0ZWdvcmllcyBmb3VuZCB3aGVyZSB1c2VyIGhhcyByZWFkL3dyaXRlIHBlcm1pc3Npb25zISd9ID0gJ07Do28gZm9yYW0gZW5jb250cmFkYXMgY2F0ZWdvcmlhcyBvbmRlIG8gdXN1w6FyaW8gcG9zc3VhIHBlcm1pc3PDo28gZGUgbGVpdHVyYSBlIGVzY3JpdGEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRlZmF1bHQgbGFuZ3VhZ2UgZm91bmQgYW5kIGNhblwndCBjcmVhdGUgYSBuZXcgb25lLid9ID0gJ07Do28gZm9pIGVuY29udHJhZG8gdW0gaWRpb21hIHBhZHLDo28gZSB0w6NvIHBvdWNvIGNyaWFyIHVtIG5vdm8uJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUNhdGVnb3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIENhdGVnb3J5SUQhJ30gPSAnTmVjZXNzw6FyaWEgQ2F0ZWdvcnlJRCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRlZ29yeSBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAnVW1hIGNhdGVnb3JpYSBwcmVjaXNhIHRlciB1bSBub21lISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGNhdGVnb3J5IGFscmVhZHkgZXhpc3RzJ30gPSAnRXN0YSBjYXRlZ29yaWEgasOhIGV4aXN0ZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBjYXRlZ29yeSBhbHJlYWR5IGV4aXN0cyEnfSA9ICdFc3NhIGNhdGVnb3JpYSBqw6EgZXhpc3RlISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBDYXRlZ29yeUlEIGlzIGdpdmVuISd9ID0gJ05lbmh1bWEgQ2F0ZWdvcnlJRCBmb2kgaW5mb3JtYWRhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBjYXRlZ29yeSAlcyEnfSA9ICdOw6NvIGZvaSBwb3Nzw612ZWwgZXhjbHVpciBhIGNhdGVnb3JpYSAlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGNhdGVnb3J5IHVwZGF0ZWQhJ30gPSAnQ2F0ZWdvcmlhIGRlIEZBUSBhdHVhbGl6YWRhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgY2F0ZWdvcnkgYWRkZWQhJ30gPSAnQ2F0ZWdvcmlhIGRlIEZBUSBhZGljaW9uYWRhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQ2F0ZWdvcnknfSA9ICdFeGNsdWlyIGNhdGVnb3JpYSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEl0ZW1JRCBpcyBnaXZlbiEnfSA9ICdOZW5odW0gSXRlbUlEIGZvaSBpbmZvcm1hZG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIG5vIHBlcm1pc3Npb24gZm9yIHRoaXMgY2F0ZWdvcnkhJ30gPSAnVm9jw6ogbsOjbyBwb3NzdcOtIGluZm9ybWHDp8O1ZXMgcGFyYSBlc3NhIGNhdGVnb3JpYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgRkFRIGFydGljbGUgJXMhJ30gPSAnTsOjbyBmb2kgcG9zc8OtdmVsIGRlbGV0YXIgbyBhcnRpZ28gJXMsIGRvIEZBUSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFFeHBsb3Jlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIENhdGVnb3J5SUQgJXMgaXMgaW52YWxpZC4nfSA9ICdBIENhdGVnb3JpYUlEICVTIMOpIGludsOhbGlkYSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBJdGVtSUQgaXMgZ2l2ZW4hJ30gPSAnTsOjbyDDqSBwb3Nzw612ZWwgbW9zdHJhciBvIGhpc3TDs3JpY28sIG7Do28gZm9pIGluZm9ybWFkbyB1bSBJdGVtSUQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBIaXN0b3J5J30gPSAnSGlzdMOzcmljbyBkZSBGQVEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRSm91cm5hbC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEpvdXJuYWwnfSA9ICdKb3JuYWwgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgY29uZmlnIG9wdGlvbiBGQVE6OkZyb250ZW5kOjpPdmVydmlldyd9ID0gJ05lY2Vzc8OhcmlhIGEgb3DDp8OjbyBkZSBjb25maWd1cmHDp8OjbyBGQVE6OkZyb250ZW5kOjpPdmVydmlldyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWcgb3B0aW9uIEZBUTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3IG5lZWRzIHRvIGJlIGEgSEFTSCByZWYhJ30gPQogICAgICAgICdPcMOnw6NvIGRlIGNvbmZpZ3VyYcOnw6NvIEZBUTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3IHByZWNpc2Egc2VyIHVtIHZhbG9yIEhBU0gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY29uZmlnIG9wdGlvbiBmb3VuZCBmb3IgdGhlIHZpZXcgIiVzIiEnfSA9ICdOw6NvIGZvcmFtIGVuY29udHJhZGFzIG9ww6fDtWVzIGRlIGNvbmZpZ3VyYcOnw6NvIHBhcmEgYSB2aXN1YWxpemHDp8OjbyAiJXMiISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFMYW5ndWFnZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gTGFuZ3VhZ2VJRCBpcyBnaXZlbiEnfSA9ICdOZW5odW0gSWRpb21hSUQgaW5mb3JtYWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgbmFtZSBpcyByZXF1aXJlZCEnfSA9ICdPIG5vbWUgw6kgb2JyaWdhdMOzcmlvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGxhbmd1YWdlIGFscmVhZHkgZXhpc3RzISd9ID0gJ0Vzc2UgaWRpb21hIGrDoSBleGlzdGUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGxhbmd1YWdlICVzISd9ID0gJ07Do28gZm9pIHBvc3PDrXZlbCBhcGFnYXIgbyBpZGlvbWElIHMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBsYW5ndWFnZSB1cGRhdGVkISd9ID0gJ0lkaW9tYSBkZSBGQVEgYXR1YWxpemFkbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGxhbmd1YWdlIGFkZGVkISd9ID0gJ0lkaW9tYSBkZSBGQVEgYWRpY2lvbmFkbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIExhbmd1YWdlICVzJ30gPSAnRXhjbHVpciBpZGlvbWEgJXMnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRUHJpbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc3VsdCd9ID0gJ1Jlc3VsdGFkbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IHVwZGF0ZSd9ID0gJ8OabHRpbWEgYXR1YWxpemHDp8Ojbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgRHluYW1pYyBGaWVsZHMnfSA9ICdDYW1wb3MgZGluw6JtaWNvcyBkYSBGQVEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRUmljaFRleHQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vICVzIGlzIGdpdmVuISd9ID0gJ05lbmh1bSAlcyBpbmZvcm1hZG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBsb2FkIExhbmd1YWdlT2JqZWN0ISd9ID0gJ07Do28gZm9pIHBvc3PDrXZlbCBjYXJyZWdhciBMYW5ndWFnZU9iamVjdCEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBSZXN1bHQhJ30gPSAnTmVuaHVtIHJlc3VsdGFkbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIE51bWJlcid9ID0gJ07Dum1lcm8gZGEgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgQ2hhbmdlZCBieSd9ID0gJ8OabHRpbWEgbW9kaWZpY2HDp8OjbyBwb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ3JlYXRlIFRpbWUgKGJlZm9yZS9hZnRlciknfSA9ICdGQVEgVGVtcG8gZGUgQ3JpYcOnw6NvIGRlIEl0ZW0gKGFudGVzL2RlcG9pcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ3JlYXRlIFRpbWUgKGJldHdlZW4pJ30gPSAnRkFRIFRlbXBvIGRlIENyaWHDp8OjbyBkZSBJdGVtIChlbnRyZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ2hhbmdlIFRpbWUgKGJlZm9yZS9hZnRlciknfSA9ICdGQVEgVGVtcG8gZGUgQWx0ZXJhw6fDo28gZG8gSXRlbSAoZW50cmUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJdGVtIENoYW5nZSBUaW1lIChiZXR3ZWVuKSd9ID0gJ1RlbXBvIGRlIEFsdGVyYcOnw6NvIGRlIEZBUSAoZW50cmUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VxdWFscyd9ID0gJ0lndWFpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmVhdGVyIHRoYW4nfSA9ICdNYWlvciBxdWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JlYXRlciB0aGFuIGVxdWFscyd9ID0gJ01haW9yLWlndWFsIHF1ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTbWFsbGVyIHRoYW4nfSA9ICdNZW5vciBxdWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU21hbGxlciB0aGFuIGVxdWFscyd9ID0gJ01lbm9yLWlndWFsIHF1ZSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIEZpbGVJRCEnfSA9ICdOZWNlc3NpdGEgZG8gQXJxdWl2b0lEISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGFua3MgZm9yIHlvdXIgdm90ZSEnfSA9ICdPYnJpZ2FkbyBwb3Igc2V1IHZvdG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIGFscmVhZHkgdm90ZWQhJ30gPSAnVm9jw6ogasOhIHZvdG91ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyByYXRlIHNlbGVjdGVkISd9ID0gJ05lbmh1bWEgcG9udHVhw6fDo28gc2VsZWNpb25hZGEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB2b3RpbmcgbWVjaGFuaXNtIGlzIG5vdCBlbmFibGVkISd9ID0gJ08gbWVjYW5pc21vIGRlIHZvdGHDp8OjbyBuw6NvIGVzdMOhIGhhYmlsaXRhZG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB2b3RlIHJhdGUgaXMgbm90IGRlZmluZWQhJ30gPSAnTyBwZXNvIGRvcyB2b3RvcyBuw6NvIGZvaSBkZWZpbmlkbyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0N1c3RvbWVyRkFRUHJpbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIFByaW50J30gPSAnSW1wcmltaXIgYXJ0aWdvIGRhIEZBUSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQ3VzdG9tZXJGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZWQgYmV0d2Vlbid9ID0gJ0NyaWFkbyBlbnRyZSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQ3VzdG9tZXJGQVFab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIEl0ZW1JRCEnfSA9ICdOZWNlc3NpdGEgZG8gSXRlbUlEISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvUHVibGljRkFRRXhwbG9yZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlcyAobmV3IGNyZWF0ZWQpJ30gPSAnQXJ0aWdvcyBkYSBGQVEgKHJlY8OpbSBjcmlhZG9zKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZXMgKHJlY2VudGx5IGNoYW5nZWQpJ30gPSAnQXJ0aWdvcyBkYSBGQVEgKGFsdGVyYWRvcyByZWNlbnRlbWVudGUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlcyAoVG9wIDEwKSd9ID0gJ0FydGlnb3MgZGEgRkFRIChUb3AgMTApJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9QdWJsaWNGQVFSU1MucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFR5cGUgaXMgZ2l2ZW4hJ30gPSAnU2VtIFRpcG8gaW5mb3JtYWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlIG11c3QgYmUgZWl0aGVyIExhc3RDcmVhdGUgb3IgTGFzdENoYW5nZSBvciBUb3AxMCEnfSA9ICdUaXBvIGRldmUgc2VyIMOabHRpbW9DcmlhZG8gb3Ugw5psdGltb0FsdGVyYWRvIG91IFRvcDEwISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIFJTUyBmaWxlISd9ID0gJ07Do28gZm9pIHBvc3PDrXZlbCBjcmlhciBvIGFycXVpdm8gUlNTISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0hlYWRlck1ldGEvQWdlbnRGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChGQVFGdWxsdGV4dCknfSA9ICclcyAoRkFRLVRleHRvQ29tcGxldG8pJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvSGVhZGVyTWV0YS9DdXN0b21lckZBUVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgLSBDdXN0b21lciAoJXMpJ30gPSAnJXMgLSBDbGllbnRlICglcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgLSBDdXN0b21lciAoRkFRRnVsbHRleHQpJ30gPSAnJXMgLSBDbGllbnRlIChGQVEtVGV4dG9Db21wbGV0byknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9IZWFkZXJNZXRhL1B1YmxpY0ZBUVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgLSBQdWJsaWMgKCVzKSd9ID0gJyVzIC0gUMO6YmxpY28gKCVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAtIFB1YmxpYyAoRkFRRnVsbHRleHQpJ30gPSAnJXMgLSBQw7pibGljbyAoRkFRLVRleHRvQ29tcGxldG8pJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTGF5b3V0L0ZBUS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCByYXRlISd9ID0gJ1VtYSBwcm9wb3LDp8OjbyDDqSBuZWNlc3PDoXJpYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBhcnRpY2xlIGlzIGVtcHR5ISd9ID0gJ08gYXJ0aWdvIGVzdMOhIHZhemlvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXRlc3QgY3JlYXRlZCBGQVEgYXJ0aWNsZXMnfSA9ICdBcnRpZ29zIGRhIEZBUSBjcmlhZG9zIHJlY2VudGVtZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG9wIDEwIEZBUSBhcnRpY2xlcyd9ID0gJ1RvcCAxMCBhcnRpZ29zIGRhIEZBUSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0xpbmtPYmplY3QvRkFRLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZW50IFR5cGUnfSA9ICdUaXBvIGRlIGNvbnRlw7pkbyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9EeW5hbWljRmllbGQvRHJpdmVyL0ZBUS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IHRoZSBhdHRyaWJ1dGUgd2hpY2ggRkFRcyB3aWxsIGJlIHNlYXJjaGVkIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4dGVybmFsLXNvdXJjZSBrZXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IHRoZSB0eXBlIG9mIGRpc3BsYXknfSA9ICcnOwoKICAgICMgRGF0YWJhc2UgWE1MIC8gU09QTSBEZWZpbml0aW9uOiBGQVEuc29wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW50ZXJuYWwnfSA9ICdpbnRlcm5vJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2V4dGVybmFsJ30gPSAnZXh0ZXJubyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwdWJsaWMnfSA9ICdww7pibGljbyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgZmlsdGVyIGZvciBIVE1MIG91dHB1dCB0byBhZGQgbGlua3MgYmVoaW5kIGEgZGVmaW5lZCBzdHJpbmcuIFRoZSBlbGVtZW50IEltYWdlIGFsbG93cyB0d28gaW5wdXQga2luZHMuIEZpcnN0IHRoZSBuYW1lIG9mIGFuIGltYWdlIChlLmcuIGZhcS5wbmcpLiBJbiB0aGlzIGNhc2UgdGhlIE9UT0JPIGltYWdlIHBhdGggd2lsbCBiZSB1c2VkLiBUaGUgc2Vjb25kIHBvc3NpYmlsaXR5IGlzIHRvIGluc2VydCB0aGUgbGluayB0byB0aGUgaW1hZ2UuJ30gPQogICAgICAgICdVbSBmaWx0cm8gZGUgc2HDrWRhIEhUTUwgcGFyYSBhZGljaW9uYXIgbGlua3MgcGFyYSB0csOhcyB1bWEgc2Vxw7zDqm5jaWEgZGVmaW5pZGEuIE8gZWxlbWVudG8gZGUgaW1hZ2VtIHBlcm1pdGUgZG9pcyB0aXBvcyBkZSBlbnRyYWRhLiBQcmltZWlybywgbyBub21lIGRlIHVtYSBpbWFnZW0gKGZhcS5wbmcsIHBvciBleGVtcGxvKS4gTmVzdGUgY2FzbywgbyBjYW1pbmhvIGRhIGltYWdlbSBPVE9CTyBzZXLDoSB1c2Fkby4gQSBzZWd1bmRhIHBvc3NpYmlsaWRhZGUgw6kgaW5zZXJpciBvIGxpbmsgcGFyYSBhIGltYWdlbS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEZBUSBhcnRpY2xlJ30gPSAnQWRpY2lvbmFyIEFydGlnbyBkZSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ1NTIGNvbG9yIGZvciB0aGUgdm90aW5nIHJlc3VsdC4nfSA9ICdDU1MgY29yIHBhcmEgbyByZXN1bHRhZG8gZGEgdm90YcOnw6NvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSBUaW1lIFRvIExlYXZlIGZvciBGQVEgaXRlbXMuJ30gPSAnVGVtcG8gZGUgZXhwaXJhw6fDo28gZGUgY2FjaGUgcGFyYSBpdGVucyBkZSBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGVnb3J5IE1hbmFnZW1lbnQnfSA9ICdHZXJlbmNpYW1lbnRvIGRlIENhdGVnb3JpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSBNYW5hZ2VtZW50Lid9ID0gJ0dlcmVuY2lhbWVudG8gZGUgQ2F0ZWdvcmlhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgUHJpbnQuJ30gPSAnSW1wcmltaXIgRkFRIGRlIENsaWVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBSZWxhdGVkIEFydGljbGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBSZWxhdGVkIEFydGljbGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgWm9vbS4nfSA9ICdab29tIGVtIEZBUSBkZSBDbGllbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgc2VhcmNoLid9ID0gJ0J1c2NhIGVtIEZBUSBkZSBDbGllbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEuJ30gPSAnRkFRIGRlIENsaWVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlY2ltYWwgcGxhY2VzIG9mIHRoZSB2b3RpbmcgcmVzdWx0Lid9ID0gJ0Nhc2FzIGRlY2ltYWlzIGRvIHJlc3VsdGFkbyBkYSB2b3Rhw6fDo28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgY2F0ZWdvcnkgbmFtZS4nfSA9ICdOb21lIHBhZHLDo28gZGEgY2F0ZWdvcmlhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IGxhbmd1YWdlIGZvciBGQVEgYXJ0aWNsZXMgb24gc2luZ2xlIGxhbmd1YWdlIG1vZGUuJ30gPSAnSWRpb21hIHBhZHLDo28gcGFyYSBvcyBhcnRpZ29zIEZBUSBubyBtb2RvIGRlIGlkaW9tYSDDum5pY28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93bi4nfSA9CiAgICAgICAgJ1RhbWFuaG8gbcOheGltbyBwYWRyw6NvIGRvcyB0w610dWxvcyBlbSB1bSBhcnRpZ28gZGUgRkFRIGEgc2VyZW0gZXhpYmlkb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgcHJpb3JpdHkgb2YgdGlja2V0cyBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9CiAgICAgICAgJ1ByaW9yaWRhZGUgcGFkcsOjbyBkZSBjaGFtYWRvcyBwYXJhIGEgYXByb3Zhw6fDo28gZG9zIGFydGlnb3MgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXRlIGZvciBGQVEgZW50cnkuJ30gPSAnRXN0YWRvIHBhZHLDo28gZGUgZW50cmFkYSBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdGUgb2YgdGlja2V0cyBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICdFc3RhZG8gcGFkcsOjbyBkZSBjaGFtYWRvcyBwYXJhIGEgYXByb3Zhw6fDo28gZG9zIGFydGlnb3MgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHR5cGUgb2YgdGlja2V0cyBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICdUaXBvIHBhZHLDo28gZG8gY2hhbWFkb3MgcGFyYSBhIGFwcm92YcOnw6NvIGRlIGFydGlnb3MgZGEgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHZhbHVlIGZvciB0aGUgQWN0aW9uIHBhcmFtZXRlciBmb3IgdGhlIHB1YmxpYyBmcm9udGVuZC4gVGhlIEFjdGlvbiBwYXJhbWV0ZXIgaXMgdXNlZCBpbiB0aGUgc2NyaXB0cyBvZiB0aGUgc3lzdGVtLid9ID0KICAgICAgICAnVmFsb3IgcGFkcsOjbyBwYXJhIG8gcGFyw6JtZXRybyBkZSBSZWN1cnNvIHBhcmEgYSBpbnRlcmZhY2UgcMO6YmxpY2EuIE8gcGFyw6JtZXRybyBkZSBhw6fDo28gw6kgdXNhZG8gbm9zIHNjcmlwdHMgZG8gc2lzdGVtYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIEFjdGlvbnMgd2hlcmUgYSBzZXR0aW5ncyBidXR0b24gaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rZWQgb2JqZWN0cyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gUGxlYXNlIG5vdGUgdGhhdCB0aGVzZSBBY3Rpb25zIG11c3QgaGF2ZSByZWdpc3RlcmVkIHRoZSBmb2xsb3dpbmcgSlMgYW5kIENTUyBmaWxlczogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgYW5kIENvcmUuQWdlbnQuTGlua09iamVjdC5qcy4nfSA9CiAgICAgICAgJ0RlZmluYSBBw6fDtWVzIG9uZGUgdW0gYm90w6NvIGRlIGNvbmZpZ3VyYcOnw7VlcyBlc3TDoSBkaXNwb27DrXZlbCBubyB3aWRnZXQgZGUgb2JqZXRvcyB2aW5jdWxhZG9zIChMaW5rT2JqZWN0OjpWaWV3TW9kZT0iY29tcGxleCIpLiBPYnNlcnZlIHF1ZSBlc3NhcyBhw6fDtWVzIGRldmVtIHRlciByZWdpc3RyYWRvIG9zIHNlZ3VpbnRlcyBhcnF1aXZvcyBKUyBlIENTUzogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgZSBDb3JlLkFnZW50IC5MaW5rT2JqZWN0LmpzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgaWYgdGhlIEZBUSB0aXRsZSBzaG91bGQgYmUgY29uY2F0ZW5hdGVkIHRvIGFydGljbGUgc3ViamVjdC4nfSA9CiAgICAgICAgJ0RlZmluZSBzZSBvIHTDrXR1bG8gZG8gRkFRIGRldmUgc2VyIGNvbmNhdGVuYWRvIGFvIGFzc3VudG8gZG8gYXJ0aWdvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBGQVFzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IEZBUSBhdHRyaWJ1dGVzIGFuZCBkeW5hbWljIGZpZWxkcyAoRHluYW1pY0ZpZWxkX05hbWVYKSBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIEZBUSBqb3VybmFsLid9ID0KICAgICAgICAnRGVmaW5lIHVtIG3Ds2R1bG8gZGUgcmVzdW1vIHBhcmEgbW9zdHJhciBhIHZpc3VhbGl6YcOnw6NvIHBlcXVlbmEgZGUgdW0gam9ybmFsIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIEZBUSBsaXN0Lid9ID0KICAgICAgICAnRGVmaW5lIHVtIG3Ds2R1bG8gZGUgcmVzdW1vIHBhcmEgbW9zdHJhciBhIHZpc3VhbGl6YXIgZGUgdW1hIHBlcXVlbmEgbGlzdGEgZGUgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIGEgRkFRIHNlYXJjaCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGVmaW5lIG8gYXRyaWJ1dG8gcGFkcsOjbyBGQVEgcGFyYSBjbGFzc2lmaWNhciBvIEZBUSBlbSB1bWEgcGVzcXVpc2EgRkFRIGRhIGludGVyZmFjZSBkbyBhdGVuZGVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gYSBGQVEgc2VhcmNoIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmUgbyBhdHJpYnV0byBwYWRyw6NvIEZBUSBwYXJhIGNsYXNzaWZpY2FyIG8gRkFRIGVtIHVtYSBwZXNxdWlzYSBGQVEgZGEgaW50ZXJmYWNlIGRvIGNsaWVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gYSBGQVEgc2VhcmNoIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGVmaW5lIG8gYXRyaWJ1dG8gcGFkcsOjbyBGQVEgcGFyYSBjbGFzc2lmaWNhciBvIEZBUSBlbSB1bWEgcGVzcXVpc2EgRkFRIGRhIGludGVyZmFjZSBww7pibGljYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmUgbyBhdHJpYnV0byBwYWRyw6NvIEZBUSBwYXJhIGNsYXNzaWZpY2FyIG8gRkFRIG5vIEdlcmVuY2lhZG9yIEZBUSBkYSBpbnRlcmZhY2UgZG8gYXRlbmRlbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGVmaW5lIG8gYXRyaWJ1dG8gcGFkcsOjbyBGQVEgcGFyYSBjbGFzc2lmaWNhciBvIEZBUSBubyBHZXJlbmNpYWRvciBGQVEgZGEgaW50ZXJmYWNlIGRvIGNsaWVudGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGVmaW5lIG8gYXRyaWJ1dG8gcGFkcsOjbyBGQVEgcGFyYSBjbGFzc2lmaWNhciBvIEZBUSBubyBHZXJlbmNpYWRvciBGQVEgZGEgaW50ZXJmYWNlIHDDumJsaWNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnRGVmaW5lIGEgb3JkZW0gcGFkcsOjbyBkZSBGQVEgbm8gcmVzdWx0YWRvIGRvIEdlcmVuY2lhZG9yIEZBUSBkYSBpbnRlcmZhY2UgZG8gYXRlbmRlbnRlLiBBY2ltYTogQSBtYWlzIGFudGlnYSBubyB0b3BvLiBBYmFpeG86IG1haXMgcmVjZW50ZXMgbm8gdG9wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICdEZWZpbmUgYSBvcmRlbSBwYWRyw6NvIGRlIEZBUSBubyByZXN1bHRhZG8gZG8gR2VyZW5jaWFkb3IgRkFRIGRhIGludGVyZmFjZSBkbyBjbGllbnRlLiBBY2ltYTogQSBtYWlzIGFudGlnYSBubyB0b3BvLiBBYmFpeG86IG1haXMgcmVjZW50ZXMgbm8gdG9wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnRGVmaW5lIGEgb3JkZW0gcGFkcsOjbyBkZSBGQVEgbm8gcmVzdWx0YWRvIGRvIEdlcmVuY2lhZG9yIEZBUSBkYSBpbnRlcmZhY2UgcMO6YmxpY2EuIEFjaW1hOiBBIG1haXMgYW50aWdhIG5vIHRvcG8uIEFiYWl4bzogbWFpcyByZWNlbnRlcyBubyB0b3BvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICdEZWZpbmUgYSBvcmRlbSBwYWRyw6NvIGRlIEZBUSBubyByZXN1bHRhZG8gZGEgcGVzcXVpc2EgbmEgaW50ZXJmYWNlIGRvIGF0ZW5kZW50ZS4gQWNpbWE6IEEgbWFpcyBhbnRpZ2Egbm8gdG9wby4gQWJhaXhvOiBtYWlzIHJlY2VudGVzIG5vIHRvcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ0RlZmluZSBhIG9yZGVtIHBhZHLDo28gZGUgRkFRIG5vIHJlc3VsdGFkbyBkYSBwZXNxdWlzYSBuYSBpbnRlcmZhY2UgZG8gY2xpZW50ZS4gQWNpbWE6IEEgbWFpcyBhbnRpZ2Egbm8gdG9wby4gQWJhaXhvOiBtYWlzIHJlY2VudGVzIG5vIHRvcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICdEZWZpbmUgYSBvcmRlbSBwYWRyw6NvIGRlIEZBUSBubyByZXN1bHRhZG8gZGEgcGVzcXVpc2EgbmEgaW50ZXJmYWNlIHDDumJsaWNhLiBBY2ltYTogQSBtYWlzIGFudGlnYSBubyB0b3BvLiBBYmFpeG86IG1haXMgcmVjZW50ZXMgbm8gdG9wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzaG93biBGQVEgc2VhcmNoIGF0dHJpYnV0ZSBmb3IgRkFRIHNlYXJjaCBzY3JlZW4uJ30gPQogICAgICAgICdEZWZpbmUgbyBhdHJpYnV0byBkZSBwZXNxdWlzYSBkZSBGQVEgcGFkcsOjbyBuYSB0ZWxhIGRlIHByb2N1cmEgZGUgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBoZWlnaHQgZm9yIHRoZSByaWNoIHRleHQgZWRpdG9yIGNvbXBvbmVudCBmb3IgdGhpcyBzY3JlZW4uIEVudGVyIG51bWJlciAocGl4ZWxzKSBvciBwZXJjZW50IHZhbHVlIChyZWxhdGl2ZSkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaW5mb3JtYXRpb24gdG8gYmUgaW5zZXJ0ZWQgaW4gYSBGQVEgYmFzZWQgVGlja2V0LiAiRnVsbCBGQVEiIGluY2x1ZGVzIHRleHQsIGF0dGFjaG1lbnRzIGFuZCBpbmxpbmUgaW1hZ2VzLid9ID0KICAgICAgICAnRGVmaW5lIGEgaW5mb3JtYcOnw6NvIGEgc2VyIGluc2VyaWRhIG5vIGNoYW1hZG8gYmFzZWFkbyBlbSBGQVEuICJUb2RvIG8gRkFRIiBpbmNsdWkgdGV4dG8sIGFuZXhvcyBlIGltYWdlbnMgZW1idXRpZGFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZGFzaGJvYXJkIGJhY2tlbmQuICJMaW1pdCIgZGVmaW5lcyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgZGlzcGxheWVkIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCBhY2Nlc3MgdG8gdGhlIHBsdWdpbiAoZS4gZy4gR3JvdXA6IGFkbWluO2dyb3VwMTtncm91cDI7KS4gIkRlZmF1bHQiIGluZGljYXRlcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuJ30gPQogICAgICAgICdEZWZpbmUgb3MgcGFyw6JtZXRyb3MgcGFyYSBvIGJhY2tlbmQgZG8gZGFzaGJvYXJkLiAiTGltaXRlIiBkZWZpbmUgbyBuw7ptZXJvIGRlIGVudHJhZGFzIGV4aWJpZGFzIHBvciBwYWRyw6NvLiAiR3J1cG8iIMOpIHVzYWRvIHBhcmEgcmVzdHJpbmdpciBvIGFjZXNzbyBhbyBwbHVnaW4gKGV4LjogR3J1cG86IGFkbWluLCBncnVwbzEsIGdydXBvMikuICJQYWRyw6NvIiBpbmRpY2Egc2UgbyBwbHVnaW4gw6kgaGFiaWxpdGFkbyBwb3IgcGFkcsOjbyBvdSBzZSBvIHVzdcOhcmlvIHByZWNpc2EgaGFiaWxpdMOhLWxvIG1hbnVhbG1lbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBGQVEgRXhwbG9yZXIuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdEZWZpbmUgYXMgY29sdW5hcyBtb3N0cmFkYXMgbm8gR2VyZW5jaWFkb3IgRkFRLiBFc3RhIG9ww6fDo28gbsOjbyB0ZW0gZWZlaXRvIHNvYnJlIGEgcG9zacOnw6NvIGRhIGNvbHVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgRkFRIGpvdXJuYWwuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdEZWZpbmUgYXMgY29sdW5hcyBtb3N0cmFkYXMgbm8gam9ybmFsIEZBUS4gRXN0YSBvcMOnw6NvIG7Do28gdGVtIGVmZWl0byBzb2JyZSBhIHBvc2nDp8OjbyBkYSBjb2x1bmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIEZBUSBzZWFyY2guIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdEZWZpbmUgYXMgY29sdW5hcyBtb3N0cmFkYXMgbmEgcGVzcXVpc2EgRkFRLiBFc3RhIG9ww6fDo28gbsOjbyB0ZW0gZWZlaXRvIHNvYnJlIGEgcG9zacOnw6NvIGRhIGNvbHVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB3aGVyZSB0aGUgXCdJbnNlcnQgRkFRXCcgbGluayB3aWxsIGJlIGRpc3BsYXllZC4nfSA9ICdEZWZpbmUgb25kZSBvIGxpbmsgIkluc2VyaXIgRkFRIiBzZXLDoSBleGliaWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbml0aW9uIG9mIEZBUSBpdGVtIGZyZWUgdGV4dCBmaWVsZC4nfSA9ICdEZWZpbmnDp8OjbyBkZSBjYW1wb3MgZGUgdGV4dG8gbGl2cmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGlzIEZBUSd9ID0gJ0V4Y2x1aXIgZXN0ZSBGQVEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQ2FtcG9zIGRpbsOibWljb3MgZXhpYmlkb3MgbmEgdGVsYSBkZSBhZGljaW9uYXIgRkFRIGRhIGludGVyZmFjZSBkZSBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0NhbXBvcyBkaW7Dom1pY29zIGV4aWJpZG9zIG5hIHRlbGEgZGUgZWRpdGFyIEZBUSBkYSBpbnRlcmZhY2UgZGUgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIG92ZXJ2aWV3IHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgb3ZlcnZpZXcgc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgcHJpbnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdDYW1wb3MgZGluw6JtaWNvcyBleGliaWRvcyBuYSB0ZWxhIGRlIGltcHJpbWlyIEZBUSBkYSBpbnRlcmZhY2UgZGUgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHByaW50IHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgcHJpbnQgc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc2VhcmNoIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQ2FtcG9zIGRpbsOibWljb3MgbW9zdHJhZG9zIG5hIHRlbGEgZGUgcGVzcXVpc2EgZGUgRkFRIGRhIGludGVyZmFjZSBkZSBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc2VhcmNoIHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc2VhcmNoIHNjcmVlbiBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHNtYWxsIGZvcm1hdCBvdmVydmlldyBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0NhbXBvcyBkaW7Dom1pY29zIGV4aWJpZG9zIG5hIHRlbGEgdmlzw6NvIGdlcmFsIGRlIEZBUSBlbSBmb3JtYXRvIHBlcXVlbm8gZGEgaW50ZXJmYWNlIGRlIGFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQ2FtcG9zIGRpbsOibWljb3MgZXhpYmlkb3MgbmEgdGVsYSBkZSB6b29tIGRlIEZBUSBkYSBpbnRlcmZhY2UgZGUgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHpvb20gc2NyZWVuIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSB6b29tIHNjcmVlbiBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoaXMgRkFRJ30gPSAnRWRpdGFyIGVzdGUgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSBtdWx0aXBsZSBsYW5ndWFnZXMgb24gRkFRIG1vZHVsZS4nfSA9ICdQZXJtaXRpciB2w6FyaW9zIGlkaW9tYXMgbm8gbcOzZHVsbyBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSBzZXJ2aWNlIGFzc2lnbm1lbnQgZm9yIEZBUXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB0aGUgcmVsYXRlZCBhcnRpY2xlIGZlYXR1cmUgZm9yIHRoZSBjdXN0b21lciBmcm9udGVuZC4nfSA9CiAgICAgICAgJ0F0aXZhciBvcyByZWN1cnNvcyBkZXNzZSBhcnRpZ28gcGFyYSBhIGludGVyZmFjZSBkZSBjbGllbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgdm90aW5nIG1lY2hhbmlzbSBvbiBGQVEgbW9kdWxlLid9ID0gJ1Blcm1pdGlyIG1lY2FuaXNtbyBkZSBBdmFsaWHDp8OjbyBubyBtw7NkdWxvIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwbG9yZXInfSA9ICdFeHBsb3Jhcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQUpBWCBSZXNwb25kZXInfSA9ICdGQVEgQUpBWCBSZXNwb25kZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFKQVggUmVzcG9uZGVyIGZvciBSaWNodGV4dC4nfSA9ICdGQVEgQUpBWCBSZXNwb25kZXIgZW0gUmljaHRleHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcmVhJ30gPSAnw4FyZWEgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcmVhLid9ID0gJ8OBcmVhIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIERlbGV0ZS4nfSA9ICdEZWxldGFyIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEVkaXQuJ30gPSAnRWRpdGFyIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEhpc3RvcnkuJ30gPSAnSGlzdMOzcmljbyBkZSBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBKb3VybmFsIE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICdMaW1pdGUgZGEgVmlzw6NvIEdlcmFsICJQZXF1ZW5vIiBkbyBKb3JuYWwgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnTGltaXRlIGRhIFZpc8OjbyBHZXJhbCBGQVEgIlBlcXVlbm8iJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBQcmludC4nfSA9ICdpbXByaW1pciBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBzZWFyY2ggYmFja2VuZCByb3V0ZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9ICdGQVEgYnVzY2Egc2Vydmlkb3Igcm90ZWFkb3IgZGEgaW50ZXJmYWNlIGRvIGF0ZW5kZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmllbGQ0J30gPSAnQ2FtcG80JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpZWxkNSd9ID0gJ0NhbXBvNSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGdWxsIEZBUSd9ID0gJ0ZBUSBjb21wbGV0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICdHcnVwbyBwYXJhIGEgYXByb3Zhw6fDo28gZG9zIGFydGlnb3MgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mIHRoaXMgRkFRJ30gPSAnSGlzdMOzcmljbyBkZXN0ZSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgYWN0aXZhdGVkLCBGQVEgYXJ0aWNsZXMgb2Ygc3RhdHVzIHR5cGUgaW50ZXJuYWwgYXJlIGFsc28gdGFrZW4gaW50byBhY2NvdW50IGZvciB0aGUgYXBwcm92YWwgcHJvY2Vzcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNsdWRlIGludGVybmFsIGZpZWxkcyBvbiBhIEZBUSBiYXNlZCBUaWNrZXQuJ30gPSAnSW5jbHVpciBjYW1wb3MgaW50ZXJub3MgZGUgdW0gQ2hhbWFkbyBiYXNlIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jbHVkZSB0aGUgbmFtZSBvZiBlYWNoIGZpZWxkIGluIGEgRkFRIGJhc2VkIFRpY2tldC4nfSA9ICdJbmNsdWlyIG8gbm9tZSBkZSBjYWRhIGNhbXBvIGVtIHVtIENoYW1hZG8gYmFzZSBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludGVyZmFjZXMgd2hlcmUgdGhlIHF1aWNrIHNlYXJjaCBzaG91bGQgYmUgc2hvd24uJ30gPSAnSW50ZXJmYWNlcyBvbmRlIGEgcGVzcXVpc2EgcsOhcGlkYSBkZXZlIHNlciBtb3N0cmFkYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSm91cm5hbCd9ID0gJ0pvcm5hbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYW5ndWFnZSBNYW5hZ2VtZW50J30gPSAnR2VzdMOjbyBkZSBpZGlvbWFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhbmd1YWdlIE1hbmFnZW1lbnQuJ30gPSAnR2VyZW5jaWFtZW50byBkZSBJZGlvbWFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW1pdCBmb3IgdGhlIHNlYXJjaCB0byBidWlsZCB0aGUga2V5d29yZCBGQVEgYXJ0aWNsZSBsaXN0Lid9ID0gJ0xpbWl0ZSBwYXJhIGEgcGVzcXVpc2EgY29uc3RydWlyIGEgbGlzdGEgZGUgcGFsYXZyYXMtY2hhdmUgZGUgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoaXMgRkFRIGl0ZW0nfSA9ICdMaW5rIGRlIG91dHJvIGFydGlnbyBwYXJhIGVzdGUgaXRlbSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBxdWV1ZSBuYW1lcyBmb3Igd2hpY2ggdGhlIHJlbGF0ZWQgYXJ0aWNsZSBmZWF0dXJlIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICdMaXN0YSBkbyBub21lcyBkZSBmaWxhcyBwYXJhIG9zIHF1YWlzIG8gcmVjdXJzbyBkZXNzZSBhcnRpZ28gZXN0w6EgYXRpdmFkby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBzdGF0ZSB0eXBlcyB3aGljaCBjYW4gYmUgdXNlZCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTGlzdGEgZG9zIHRpcG9zIGRlIGVzdGFkbyBxdWUgcG9kZSBzZXIgdXRpbGl6YWRvIG5hIGludGVyZmFjZSBkZSBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2Ygc3RhdGUgdHlwZXMgd2hpY2ggY2FuIGJlIHVzZWQgaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0xpc3RhIGRvcyB0aXBvcyBkZSBlc3RhZG8gcXVlIHBvZGUgc2VyIHV0aWxpemFkbyBuYSBpbnRlcmZhY2UgZGUgY2xpZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBzdGF0ZSB0eXBlcyB3aGljaCBjYW4gYmUgdXNlZCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0xpc3RhIGRvcyB0aXBvcyBkZSBlc3RhZG8gcXVlIHBvZGUgc2VyIHV0aWxpemFkbyBuYSBpbnRlcmZhY2UgcMO6YmxpY2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xvYWRlciBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTyBuw7ptZXJvIG3DoXhpbW8gZGUgYXJ0aWdvcyBGQVEgcGFyYSBzZXIgZXhpYmlkbyBubyByZXN1bHRhZG8gZG8gR2VyZW5jaWFkb3IgRkFRIGRhIGludGVyZmFjZSBkbyBhdGVuZGVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ08gbsO6bWVybyBtw6F4aW1vIGRlIGFydGlnb3MgRkFRIHBhcmEgc2VyIGV4aWJpZG8gbm8gcmVzdWx0YWRvIGRvIEdlcmVuY2lhZG9yIEZBUSBkYSBpbnRlcmZhY2UgZG8gY2xpZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ08gbsO6bWVybyBtw6F4aW1vIGRlIGFydGlnb3MgRkFRIHBhcmEgc2VyIGV4aWJpZG8gbm8gcmVzdWx0YWRvIGRvIEdlcmVuY2lhZG9yIEZBUSBkYSBpbnRlcmZhY2UgcMO6YmxpY2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBqb3VybmFsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdPIG7Dum1lcm8gbcOheGltbyBkZSBhcnRpZ29zIEZBUSBwYXJhIHNlciBleGliaWRvIG5vIGpvcm5hbCBGQVEgZGEgaW50ZXJmYWNlIGRvIGF0ZW5kZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgcmVzdWx0IG9mIGEgc2VhcmNoIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdPIG7Dum1lcm8gbcOheGltbyBkZSBhcnRpZ29zIEZBUSBwYXJhIHNlciBleGliaWRvIG5vIHJlc3VsdGFkbyBkZSB1bWEgcGVzcXVpc2EgbmEgaW50ZXJmYWNlIGRvIGF0ZW5kZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgcmVzdWx0IG9mIGEgc2VhcmNoIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICdPIG7Dum1lcm8gbcOheGltbyBkZSBhcnRpZ29zIEZBUSBwYXJhIHNlciBleGliaWRvIG5vIHJlc3VsdGFkbyBkZSB1bWEgcGVzcXVpc2EgbmEgaW50ZXJmYWNlIGRvIGNsaWVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHJlc3VsdCBvZiBhIHNlYXJjaCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ08gbsO6bWVybyBtw6F4aW1vIGRlIGFydGlnb3MgRkFRIHBhcmEgc2VyIGV4aWJpZG8gbm8gcmVzdWx0YWRvIGRlIHVtYSBwZXNxdWlzYSBuYSBpbnRlcmZhY2UgcHVibGljYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIEV4cGxvcmVyIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdUYW1hbmhvIG3DoXhpbW8gZGUgdMOtdHVsb3MgZW0gdW0gYXJ0aWdvIEZBUSBhIHNlcmVtIGV4aWJpZG9zIG5hIGxpc3RhIGRlIGVudHJhZGFzIGRhIEZBUSBkYSBpbnRlcmZhY2UgZGUgYXRlbmRlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgRXhwbG9yZXIgaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1RhbWFuaG8gbcOheGltbyBkZSB0w610dWxvcyBlbSB1bSBhcnRpZ28gRkFRIGEgc2VyZW0gZXhpYmlkb3MgbmEgbGlzdGEgZGUgZW50cmFkYXMgZGEgRkFRIGRhIGludGVyZmFjZSBkZSBjbGllbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgRXhwbG9yZXIgaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICdUYW1hbmhvIG3DoXhpbW8gZGUgdMOtdHVsb3MgZW0gdW0gYXJ0aWdvIEZBUSBhIHNlcmVtIGV4aWJpZG9zIG5hIGxpc3RhIGRlIGVudHJhZGFzIGRhIEZBUSBkYSBpbnRlcmZhY2UgcMO6YmxpY2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBTZWFyY2ggaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1RhbWFuaG8gbcOheGltbyBkZSB0w610dWxvcyBlbSB1bSBhcnRpZ28gRkFRIGEgc2VyZW0gZXhpYmlkb3MgbmEgUGVzcXVpc2EgZGUgRkFRIGRhIGludGVyZmFjZSBkZSBhdGVuZGVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBTZWFyY2ggaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1RhbWFuaG8gbcOheGltbyBkZSB0w610dWxvcyBlbSB1bSBhcnRpZ28gRkFRIGEgc2VyZW0gZXhpYmlkb3MgbmEgUGVzcXVpc2EgZGUgRkFRIGRhIGludGVyZmFjZSBkZSBjbGllbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgU2VhcmNoIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnVGFtYW5obyBtw6F4aW1vIGRlIHTDrXR1bG9zIGVtIHVtIGFydGlnbyBGQVEgYSBzZXJlbSBleGliaWRvcyBuYSBQZXNxdWlzYSBkZSBGQVEgZGEgaW50ZXJmYWNlIHDDumJsaWNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgam91cm5hbCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnVGFtYW5obyBtw6F4aW1vIGRlIHTDrXR1bG9zIGVtIHVtIGFydGlnbyBGQVEgYSBzZXJlbSBleGliaWRvcyBubyBKb3JuYWwgRkFRIGRhIGludGVyZmFjZSBkZSBhdGVuZGVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBnZW5lcmF0ZSBIVE1MIE9wZW5TZWFyY2ggcHJvZmlsZSBmb3Igc2hvcnQgRkFRIHNlYXJjaCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBnZW5lcmF0ZSBIVE1MIE9wZW5TZWFyY2ggcHJvZmlsZSBmb3Igc2hvcnQgRkFRIHNlYXJjaCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ03Ds2R1bG8gcGFyYSBnZXJhciBwZXJmaWwgSFRNTCBPcGVuU2VhcmNoIHBhcmEgcGVzcXVpc2FzIGN1cnRhcyBkZSBGQVEgbmEgaW50ZXJmYWNlIHDDumJsaWNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gZ2VuZXJhdGUgaHRtbCBPcGVuU2VhcmNoIHByb2ZpbGUgZm9yIHNob3J0IEZBUSBzZWFyY2guJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEZBUSBBcnRpY2xlLid9ID0gJ05vdm8gQXJ0aWdvIGRlIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEZBUSBhcnRpY2xlcyBuZWVkIGFwcHJvdmFsIGJlZm9yZSB0aGV5IGdldCBwdWJsaXNoZWQuJ30gPSAnTm92b3MgYXJ0aWdvcyBGQVEgcHJlY2lzYW0gZGUgYXByb3Zhw6fDo28gYW50ZXMgZGUgc2VyIHB1YmxpY2Fkb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ07Dum1lcm8gZGUgYXJ0aWdvcyBGQVEgcGFyYSBzZXIgZXhpYmlkbyBubyBHZXJlbmNpYWRvciBGQVEgZGEgaW50ZXJmYWNlIGRvIGNsaWVudGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ07Dum1lcm8gZGUgYXJ0aWdvcyBGQVEgcGFyYSBzZXIgZXhpYmlkbyBubyBHZXJlbmNpYWRvciBGQVEgZGEgaW50ZXJmYWNlIHB1YmxpY2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgb24gZWFjaCBwYWdlIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTsO6bWVybyBkZSBhcnRpZ29zIEZBUSBwYXJhIHNlciBleGliaWRvIGVtIGNhZGEgcMOhZ2luYSBkZSB1bSByZXN1bHRhZG8gZGUgcGVzcXVpc2EgbmEgaW50ZXJmYWNlIGRvIGNsaWVudGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgb24gZWFjaCBwYWdlIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ07Dum1lcm8gZGUgYXJ0aWdvcyBGQVEgcGFyYSBzZXIgZXhpYmlkbyBlbSBjYWRhIHDDoWdpbmEgZGUgdW0gcmVzdWx0YWRvIGRlIHBlc3F1aXNhIG5hIGludGVyZmFjZSBwdWJsaWNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBzaG93biBpdGVtcyBpbiBsYXN0IGNoYW5nZXMuJ30gPSAnTsO6bWVybyBkZSBpdGVucyBtb3N0cmFkb3MgZW0gw7psdGltYXMgYWx0ZXJhw6fDtWVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2Ygc2hvd24gaXRlbXMgaW4gbGFzdCBjcmVhdGVkLid9ID0gJ07Dum1lcm8gZGUgaXRlbnMgbW9zdHJhZG9zIGVtIMO6bHRpbWFzIGNyaWHDp8O1ZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBzaG93biBpdGVtcyBpbiB0aGUgdG9wIDEwIGZlYXR1cmUuJ30gPSAnTsO6bWVybyBkZSBpdGVucyBtb3N0cmFkb3Mgbm8gcmVjdXJzbyB0b3AgMTAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J091dHB1dCBmaWx0ZXIgdG8gYWRkIEphdmEtc2NyaXB0IHRvIEN1c3RvbWVyVGlja2V0TWVzc2FnZSBzY3JlZW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3V0cHV0IGxpbWl0IGZvciB0aGUgcmVsYXRlZCBGQVEgYXJ0aWNsZXMuJ30gPSAnTGltaXRlIGRlIHNhw61kYSBwYXJhIG9zIGFydGlnb3MgZGVzc2UgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBGQVEgaXRlbXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgRkFRIGpvdXJuYWwgb3ZlcnZpZXcuJ30gPQogICAgICAgICdQYXLDom1ldHJvcyBkZSBww6FnaW5hcyAobmFzIHF1YWlzIG9zIGl0ZW5zIEZBUSBzw6NvIG1vc3RyYWRvcykgZGEgdmlzw6NvIGdlcmFsIHBlcXVlbmEgZG8gam9ybmFsIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgRkFRIGl0ZW1zIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIEZBUSBvdmVydmlldy4nfSA9CiAgICAgICAgJ1BhcsOibWV0cm9zIGRlIHDDoWdpbmFzIChuYXMgcXVhaXMgb3MgaXRlbnMgRkFRIHPDo28gbW9zdHJhZG9zKSBkYSB2aXPDo28gZ2VyYWwgcGVxdWVuYSBkZSBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW50IHRoaXMgRkFRJ30gPSAnSW1wcmltaXIgZXN0ZSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIEZBUSBQcmludC4nfSA9ICdJbXByaW1pciBGQVEgcMO6YmxpY28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBGQVEgWm9vbS4nfSA9ICdab29tIGVtIEZBUSBww7pibGljby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIEZBUSBzZWFyY2guJ30gPSAnQnVzY2EgRkFRIHDDumJsaWNvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRLid9ID0gJ0ZBUSBww7pibGljby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVldWUgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPSAnRmlsYSBwYXJhIGEgYXByb3Zhw6fDo28gZG9zIGFydGlnb3MgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRlcyBmb3Igdm90aW5nLiBLZXkgbXVzdCBiZSBpbiBwZXJjZW50Lid9ID0gJ0NvbmRpw6fDo28gcGFyYSBhIGF2YWxpYcOnw6NvLiBDaGF2ZSBkZXZlIHNlciBlbSBwZXJjZW50dWFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTJ30gPSAnUyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggRkFRJ30gPSAnUGVzcXVpc2EgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBGQVEgU21hbGwuJ30gPSAnUGVzcXVpc2FyIEZBUSBQZXF1ZW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBGQVEuJ30gPSAnUGVzcXVpc2FyIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGhvdyBtYW55IGl0ZW1zIHNob3VsZCBiZSBzaG93biBpbiBKb3VybmFsIE92ZXJ2aWV3ICJTbWFsbCIgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJ1NlbGVjaW9uZSBxdWFudG9zIGl0ZW5zIGRldmVtIHNlciBtb3N0cmFkb3MgbmEgdmlzw6NvIGdlcmFsIGRvIGRpw6FyaW8gIlNtYWxsIiBwb3IgcGFkcsOjby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGhvdyBtYW55IGl0ZW1zIHNob3VsZCBiZSBzaG93biBpbiBPdmVydmlldyAiU21hbGwiIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICdTZWxlY2lvbmUgcXVhbnRvcyBpdGVucyBkZXZlbSBzZXIgbW9zdHJhZG9zIG5hIHZpc8OjbyBnZXJhbCAiU21hbGwiIHBvciBwYWRyw6NvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBBZ2VudEZBUVpvb20uJ30gPQogICAgICAgICdDb25maWd1cmEgYSBhbHR1cmEgcGFkcsOjbyAoZW0gcGl4ZWxzKSBkZSBjYW1wb3MgSFRNTCBlbWJ1dGlkb3Mgbm8gQWdlbnRGQVFab29tLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBDdXN0b21lckZBUVpvb20gKGFuZCBQdWJsaWNGQVFab29tKS4nfSA9CiAgICAgICAgJ0NvbmZpZ3VyYSBhIGFsdHVyYSBwYWRyw6NvIChlbSBwaXhlbHMpIGRlIGNhbXBvcyBIVE1MIGVtYnV0aWRvcyBlbSBDdXN0b21lckZBUVpvb20gKGUgUHVibGljRkFRWm9vbSkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgbWF4aW11bSBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEFnZW50RkFRWm9vbS4nfSA9CiAgICAgICAgJ0NvbmZpZ3VyYSBhIGFsdHVyYSBtw6F4aW1hIChlbSBwaXhlbHMpIGRlIGNhbXBvcyBIVE1MIGVtYnV0aWRvcyBubyBBZ2VudEZBUVpvb20uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgbWF4aW11bSBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEN1c3RvbWVyRkFRWm9vbSAoYW5kIFB1YmxpY0ZBUVpvb20pLid9ID0KICAgICAgICAnQ29uZmlndXJhIGEgYWx0dXJhIG3DoXhpbWEgKGVtIHBpeGVscykgZGUgY2FtcG9zIEhUTUwgZW1idXRpZG9zIGVtIEN1c3RvbWVyRkFRWm9vbSAoZSBQdWJsaWNGQVFab29tKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyAiSW5zZXJ0IEZBUSBMaW5rIiBCdXR0b24gaW4gQWdlbnRGQVFab29tU21hbGwgZm9yIHB1YmxpYyBGQVEgQXJ0aWNsZXMuJ30gPQogICAgICAgICdNb3N0cmEgYm90w6NvICJJbnNlcmlyIExpbmsgRkFRIiBlbSBBbXBsaWHDp8OjbyBwZXF1ZW5hIHBhcmEgbyBhcnRpZ29zIEZBUSBww7pibGljb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyAiSW5zZXJ0IEZBUSBUZXh0ICYgTGluayIgLyAiSW5zZXJ0IEZ1bGwgRkFRICYgTGluayIgQnV0dG9uIGluIEFnZW50RkFRWm9vbVNtYWxsIGZvciBwdWJsaWMgRkFRIEFydGljbGVzLid9ID0KICAgICAgICAnTW9zdHJhciBib3TDtWVzICJJbnNlcmlyIHRleHRvIGRvIEZBUSBlIGxpbmsiIC8gIkluc2VyaXIgdG9kbyBvIEZBUSBlIGxpbmsiIGVtIEFnZW50RkFRWm9vbVNtYWxsIHBhcmEgQXJ0aWdvcyBkZSBGQVEgcMO6YmxpY29zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93ICJJbnNlcnQgRkFRIFRleHQiIC8gIkluc2VydCBGdWxsIEZBUSIgQnV0dG9uIGluIEFnZW50RkFRWm9vbVNtYWxsLid9ID0KICAgICAgICAnTW9zdHJhciBib3TDtWVzICJJbnNlcmlyIHRleHRvIGRvIEZBUSIgLyAiSW5zZXJpciB0b2RvIG8gRkFRIiBlbSBBZ2VudEZBUVpvb21TbWFsbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBGQVEgQXJ0aWNsZSB3aXRoIEhUTUwuJ30gPSAnTW9zdHJhciBhcnRpZ28gRkFRIGNvbSBIVE1MLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IEZBUSBwYXRoIHllcy9uby4nfSA9ICdNb3N0cmFyIGNhbWluaG8gRkFRIHNpbSAvIG7Do28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgaW52YWxpZCBpdGVtcyBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTW9zdHJhciBpdGVucyBpbnbDoWxpZG9zIG5vIHJlc3VsdGFkbyBkbyBFeHBsb3JhZG9yIGRlIEZBUSBuYSBpbnRlcmZhY2UgZGUgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGl0ZW1zIG9mIHN1YmNhdGVnb3JpZXMuJ30gPSAnTW9zdHJhciBpdGVucyBkZSBzdWJjYXRlZ29yaWFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGxhc3QgY2hhbmdlIGl0ZW1zIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICdNb3N0cmFyIGFzIMO6bHRpbWFzIGFsdGVyYcOnw7VlcyBkZSBpdGVucyBlbSBpbnRlcmZhY2VzIGRlZmluaWRhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBsYXN0IGNyZWF0ZWQgaXRlbXMgaW4gZGVmaW5lZCBpbnRlcmZhY2VzLid9ID0gJ01vc3RyYXIgb3Mgw7psdGltb3MgaXRlbnMgY3JpYWRvcyBlbSBpbnRlcmZhY2VzIGRlZmluaWRhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyByZWxhdGVkIGFydGljbGVzIG9uIHNlcnZpY2UgY2hhbmdlIGV2ZW4gd2l0aCBlbXB0eSBzdWJqZWN0IGFuZCBib2R5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgdGhlIHN0YXJzIGZvciB0aGUgYXJ0aWNsZXMgd2l0aCBhIHJhdGluZyBlcXVhbCBvciBncmVhdGVyIGxpa2UgdGhlIGRlZmluZWQgdmFsdWUgKHNldCB2YWx1ZSBcJzBcJyB0byBkZWFjdGl2YXRlIHRoZSBvdXRwdXQpLid9ID0KICAgICAgICAnTW9zdHJlIGFzIGVzdHJlbGFzIHBhcmEgb3MgYXJ0aWdvcyBjb20gdW1hIGNsYXNzaWZpY2HDp8OjbyBpZ3VhbCBvdSBtYWlvciBkbyB2YWxvciBkZWZpbmlkbyAoZGVmaW5hIG8gdmFsb3IgXCcwXCcgcGFyYSBkZXNhdGl2YXIgYSBzYcOtZGEpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHRvcCAxMCBpdGVtcyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAnTW9zdHJhciBvcyAxMCBpdGVucyBzdXBlcmlvciBlbSBpbnRlcmZhY2VzIGRlZmluaWRhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB2b3RpbmcgaW4gZGVmaW5lZCBpbnRlcmZhY2VzLid9ID0gJ01vc3RyYXIgdm90YcOnw6NvIGVtIGludGVyZmFjZXMgZGVmaW5pZGFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIEZBUSB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSB6b29tIHZpZXcgb2Ygc3VjaCBGQVEgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01vc3RyYSB1bSBsaW5rIG5vIG1lbnUgcXVlIHBlcm1pdGUgbGlnYXIgdW0gRkFRIGNvbSBvdXRybyBvYmpldG8gbm8gbW9kbyBkZSBleGliacOnw6NvIGFtcGxpYWRhIG5hIGludGVyZmFjZSBkbyBhdGVuZGVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyB0byBkZWxldGUgYSBGQVEgaW4gaXRzIHpvb20gdmlldyBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTW9zdHJhIHVtIGxpbmsgbm8gbWVudSBxdWUgcGVybWl0ZSBleGNsdWlyIHVtIEZBUSBubyBtb2RvIGRlIGV4aWJpw6fDo28gYW1wbGlhZGEgbmEgaW50ZXJmYWNlIGRvIGF0ZW5kZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIEZBUSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNb3N0cmEgdW0gbGluayBubyBtZW51IHBhcmEgYWNlc3NhciBvIGhpc3TDs3JpY28gZGUgdW0gRkFRIG5vIG1vZG8gZGUgZXhpYmnDp8OjbyBhbXBsaWFkYSBuYSBpbnRlcmZhY2UgZG8gYXRlbmRlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZWRpdCBhIEZBUSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTW9zdHJhIHVtIGxpbmsgbm8gbWVudSBwYXJhIGVkaXRhciB1bSBGQVEgbm8gbW9kbyBkZSBleGliacOnw6NvIGFtcGxpYWRhIG5hIGludGVyZmFjZSBkbyBhdGVuZGVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBnbyBiYWNrIGluIHRoZSBGQVEgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNb3N0cmEgdW0gbGluayBubyBtZW51IHBhcmEgdm9sdGFyIHVtIEZBUSBubyBtb2RvIGRlIGV4aWJpw6fDo28gYW1wbGlhZGEgbmEgaW50ZXJmYWNlIGRvIGF0ZW5kZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgRkFRIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNb3N0cmEgdW0gbGluayBubyBtZW51IHBhcmEgaW1wcmltaXIgdW0gRkFRIG5vIG1vZG8gZGUgZXhpYmnDp8OjbyBhbXBsaWFkYSBuYSBpbnRlcmZhY2UgZG8gYXRlbmRlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTb2x1dGlvbid9ID0gJ1NvbHXDp8Ojbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTeW1wdG9tJ30gPSAnU2ludG9tYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZXh0IE9ubHknfSA9ICdBcGVuYXMgdGV4dG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGRlZmF1bHQgbGFuZ3VhZ2VzIGZvciB0aGUgcmVsYXRlZCBGQVEgYXJ0aWNsZXMuJ30gPSAnTyBpZGlvbWEgcGFkcsOjbyBwYXJhIG9zIGFydGlnb3MgZGVzc2UgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSBGQVEsIGUuZy4gRkFRIywgS0IjLCBNeUZBUSMuIFRoZSBkZWZhdWx0IGlzIEZBUSMuJ30gPQogICAgICAgICdPIGlkZW50aWZpY2Fkb3IgcGFyYSB1bSBGQVEsIGV4ZW1wbG8gRkFRICMgS0IgIyAjIE15RkFRLiBPIHBhZHLDo28gw6kgRkFRICMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBkZWZpbmVzIHRoYXQgYSBcJ0ZBUVwnIG9iamVjdCBjYW4gYmUgbGlua2VkIHdpdGggb3RoZXIgXCdGQVFcJyBvYmplY3RzIHVzaW5nIHRoZSBcJ05vcm1hbFwnIGxpbmsgdHlwZS4nfSA9CiAgICAgICAgJ0Vzc2EgY29uZmlndXJhw6fDo28gZGVmaW5lIHF1ZSB1bSBvYmpldG8gXCdGQVFcJyBwb2RlIHNlciByZWxhY2lvbmFkbyBjb20gb3V0cm9zIG9iamV0b3MgXCdGQVFcJyB1c2FuZG8gbyB0aXBvIGRlIHbDrW5jdWxvIFwnTm9ybWFsXCcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBzZXR0aW5nIGRlZmluZXMgdGhhdCBhIFwnRkFRXCcgb2JqZWN0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciBcJ0ZBUVwnIG9iamVjdHMgdXNpbmcgdGhlIFwnUGFyZW50Q2hpbGRcJyBsaW5rIHR5cGUuJ30gPQogICAgICAgICdFc3NhIGNvbmZpZ3VyYcOnw6NvIGRlZmluZSBxdWUgdW0gb2JqZXRvIFwnRkFRXCcgcG9kZSBzZXIgcmVsYWNpb25hZG8gY29tIG91dHJvcyBvYmpldG9zIFwnRkFRXCcgdXNhbmRvIG8gdGlwbyBkZSB2w61uY3VsbyBcJ1BhaSBlIGZpbGhvXCcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBzZXR0aW5nIGRlZmluZXMgdGhhdCBhIFwnRkFRXCcgb2JqZWN0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciBcJ1RpY2tldFwnIG9iamVjdHMgdXNpbmcgdGhlIFwnTm9ybWFsXCcgbGluayB0eXBlLid9ID0KICAgICAgICAnRXNzYSBjb25maWd1cmHDp8OjbyBkZWZpbmUgcXVlIHVtIG9iamV0byBcJ0ZBUVwnIHBvZGUgc2VyIHJlbGFjaW9uYWRvIGNvbSBvdXRyb3Mgb2JqZXRvcyBcJ0NoYW1hZG9cJyB1c2FuZG8gbyB0aXBvIGRlIHbDrW5jdWxvIFwnTm9ybWFsXCcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBzZXR0aW5nIGRlZmluZXMgdGhhdCBhIFwnRkFRXCcgb2JqZWN0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciBcJ1RpY2tldFwnIG9iamVjdHMgdXNpbmcgdGhlIFwnUGFyZW50Q2hpbGRcJyBsaW5rIHR5cGUuJ30gPQogICAgICAgICdFc3NhIGNvbmZpZ3VyYcOnw6NvIGRlZmluZSBxdWUgdW0gb2JqZXRvIFwnRkFRXCcgcG9kZSBzZXIgcmVsYWNpb25hZG8gY29tIG91dHJvcyBvYmpldG9zIFwnQ2hhbWFkb1wnIHVzYW5kbyBvIHRpcG8gZGUgdsOtbmN1bG8gXCdQYWkgZSBmaWxob1wnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBib2R5IGZvciBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZS4nfSA9ICdDb3JwbyBkbyBjaGFtYWRvIHBhcmEgYXByb3Zhw6fDo28gZGUgdW0gYXJ0aWdvIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IHN1YmplY3QgZm9yIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlLiBQZXJtaXR0ZWQgbm90aWZpY2F0aW9uIHRhZ3MgYXJlIDxPVE9CT19GQVFfTlVNQkVSPiwgPE9UT0JPX0ZBUV9DQVRFR09SWUlEPiwgPE9UT0JPX0ZBUV9JVEVNSUQ+PiA8T1RPQk9fRkFRX1RJVExFPiBhbmQgPE9UT0JPX0ZBUV9TVEFURUlEPi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb29sYmFyIEl0ZW0gZm9yIGEgc2hvcnRjdXQuJ30gPSAnSXRlbSBkYSBiYXJyYSBkZSBmZXJyYW1lbnRhcyBwYXJhIHVtIGF0YWxoby4gJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2V4dGVybmFsIChjdXN0b21lciknfSA9ICdleHRlcm5vIChjbGllbnRlKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpbnRlcm5hbCAoYWdlbnQpJ30gPSAnaW50ZXJubyAoYXRlbmRlbnRlKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwdWJsaWMgKGFsbCknfSA9ICdww7pibGljbyAodG9kb3MpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3B1YmxpYyAocHVibGljKSd9ID0gJ3DDumJsaWNvIChww7pibGljbyknOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdObycsCiAgICAnT2snLAogICAgJ1NldHRpbmdzJywKICAgICdTdWJtaXQnLAogICAgJ1RoaXMgbWlnaHQgYmUgaGVscGZ1bCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Location="Kernel/Language/ru_FAQ.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnJ1X0ZBUTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRQWRkCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIEFydGljbGUnfSA9ICfQlNC+0LHQsNCy0LjRgtGMINGB0YLQsNGC0YzRjiBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnS2V5d29yZHMnfSA9ICfQmtC70Y7Rh9C10LLRi9C1INGB0LvQvtCy0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRlZ29yeSBpcyByZXF1aXJlZC4nfSA9ICfQndGD0LbQvdC+INCy0YvQsdGA0LDRgtGMINC60LDRgtC10LPQvtGA0LjRji4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwcm92YWwnfSA9ICfQntC00L7QsdGA0LXQvdC+JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUNhdGVnb3J5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQ2F0ZWdvcnkgTWFuYWdlbWVudCd9ID0gJ9Cj0L/RgNCw0LLQu9C10L3QuNC1INC60LDRgtC10LPQvtGA0LjRj9C80LggRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBGQVEgQ2F0ZWdvcnknfSA9ICfQlNC+0LHQsNCy0LjRgtGMINC60LDRgtC10LPQvtGA0LjRjiBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBGQVEgQ2F0ZWdvcnknfSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQutCw0YLQtdCz0L7RgNC40Y4gRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBjYXRlZ29yeSd9ID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0LrQsNGC0LXQs9C+0YDQuNGOJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRlZ29yeSd9ID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0LrQsNGC0LXQs9C+0YDQuNGOJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ2F0ZWdvcnknfSA9ICfQo9C00LDQu9C40YLRjCDQutCw0YLQtdCz0L7RgNC40Y4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3ViY2F0ZWdvcnkgb2YnfSA9ICfQn9C+0LTRgNCw0LfQtNC10LsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhdCBsZWFzdCBvbmUgcGVybWlzc2lvbiBncm91cC4nfSA9ICfQo9C60LDQttC40YLQtSDRhdC+0YLRjyDQsdGLINC+0LTQvdGDINCz0YDRg9C/0L/Rgy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgZ3JvdXBzIHRoYXQgY2FuIGFjY2VzcyBhcnRpY2xlcyBpbiB0aGlzIGNhdGVnb3J5Lid9ID0gJ9CT0YDRg9C/0L/RiyDQsNCz0LXQvdGC0L7Qsiwg0LjQvNC10Y7RidC40YUg0LTQvtGB0YLRg9C/INC6INGB0YLQsNGC0YzRj9C8INGN0YLQvtC5INC60LDRgtC10LPQvtGA0LjQuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2lsbCBiZSBzaG93biBhcyBjb21tZW50IGluIEV4cGxvcmVyLid9ID0gJ9CR0YPQtNC10YIg0L/QvtC60LDQt9Cw0L3QviDQsiBFeHBsb3JlciDQutCw0Log0LrQvtC80LzQtdC90YLQsNGA0LjQuS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNhdGVnb3J5Pyd9ID0gJ9Cf0L7QtNGC0LLQtdGA0LTQuNGC0LUg0YPQtNCw0LvQtdC90LjQtSDRjdGC0L7QuSDQutCw0YLQtdCz0L7RgNC40LghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gbm90IGRlbGV0ZSB0aGlzIGNhdGVnb3J5LiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBGQVEgYXJ0aWNsZSBhbmQvb3IgaXMgcGFyZW50IG9mIGF0IGxlYXN0IG9uZSBvdGhlciBjYXRlZ29yeSd9ID0KICAgICAgICAn0K3RgtGDINC60LDRgtC10LPQvtGA0LjRjiDRg9C00LDQu9GP0YLRjCDQvdC10LvRjNC30Y8hINCSINC90LXQuSDRgdC+0LTQtdGA0LbQuNGC0YHRjyDQutCw0Log0LzQuNC90LjQvNGD0Lwg0L7QtNC90LAg0YHRgtCw0YLRjNGPIEZBUSDQuC/QuNC70Lgg0L7QvdCwINGP0LLQu9GP0LXRgtGB0Y8g0YDQvtC00LjRgtC10LvRjNGB0LrQvtC5INC00LvRjyDQtNGA0YPQs9C40YUg0LrQsNGC0LXQs9C+0YDQuNC5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY2F0ZWdvcnkgaXMgdXNlZCBpbiB0aGUgZm9sbG93aW5nIEZBUSBhcnRpY2xlKHMpJ30gPSAn0JIg0Y3RgtC+0Lkg0LrQsNGC0LXQs9C+0YDQuNC4INC40LzQtdGO0YLRgdGPINGB0LvQtdC00YPRjtGJ0LjQtSDRgdGC0LDRgtGM0LggRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY2F0ZWdvcnkgaXMgcGFyZW50IG9mIHRoZSBmb2xsb3dpbmcgc3ViY2F0ZWdvcmllcyd9ID0gJ9Ct0YLQsCDQutCw0YLQtdCz0L7RgNC40Y8g0Y/QstC70Y/QtdGC0YHRjyDRgNC+0LTQuNGC0LXQu9GM0YHQutC+0Lkg0LTQu9GPINGB0LvQtdC00YPRjtGJ0LjRhSDQv9C+0LTRgNCw0LfQtNC10LvQvtCyJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUURlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIEZBUSBhcnRpY2xlPyd9ID0gJ9Cf0L7QtNGC0LLQtdGA0LTQuNGC0LUg0YPQtNCw0LvQtdC90LjQtSDRjdGC0L7QuSDRgdGC0LDRgtGM0LggRkFRISc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEnfSA9ICdGQVEnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRRXhwbG9yZXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBFeHBsb3Jlcid9ID0gJ0ZBUSDQntCx0LfQvtGAJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1F1aWNrIFNlYXJjaCd9ID0gJ9CR0YvRgdGC0YDRi9C5INC/0L7QuNGB0LonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2lsZGNhcmRzIGFyZSBhbGxvd2VkLid9ID0gJ9Cg0LDQt9GA0LXRiNC10L3QviDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjQtSDRgdC40LzQstC+0LvQvtCyINGI0LDQsdC70L7QvdCwINGC0LjQv9CwIFwnKlwnLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZHZhbmNlZCBTZWFyY2gnfSA9ICfQoNCw0YHRiNC40YDQtdC90L3Ri9C5INC/0L7QuNGB0LonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3ViY2F0ZWdvcmllcyd9ID0gJ9Cf0L7QtNGA0LDQt9C00LXQu9GLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlcyd9ID0gJ9Ch0YLQsNGC0YzQuCBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gc3ViY2F0ZWdvcmllcyBmb3VuZC4nfSA9ICfQn9C+0LTRgNCw0LfQtNC10LvRiyDQvdC1INC90LDQudC00LXQvdGLLic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFIaXN0b3J5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mJ30gPSAn0JjRgdGC0L7RgNC40Y8g0LTQu9GPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgQ29udGVudCd9ID0gJ9Ch0L7QtNC10YDQttC40LzQvtC1INC40YHRgtC+0YDQuNC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZXRpbWUnfSA9ICfQktGA0LXQvNGPINGB0L7Qt9C00LDQvdC40Y8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRSm91cm5hbE92ZXJ2aWV3U21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEZBUSBKb3VybmFsIGRhdGEgZm91bmQuJ30gPSAn0JTQsNC90L3Ri9GFINC20YPRgNC90LDQu9CwIEZBUSDQvdC10YIuJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUxhbmd1YWdlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgTGFuZ3VhZ2UgTWFuYWdlbWVudCd9ID0gJ9Cj0L/RgNCw0LLQu9C10L3QuNC1INGP0LfRi9C60LDQvNC4IEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIExhbmd1YWdlJ30gPSAn0JTQvtCx0LDQstC40YLRjCDRj9C30YvQuiDQtNC70Y8gRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgRkFRIExhbmd1YWdlJ30gPSAn0JjQt9C80LXQvdC40YLRjCDRj9C30YvQuiBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlIHRoaXMgZmVhdHVyZSBpZiB5b3Ugd2FudCB0byB3b3JrIHdpdGggbXVsdGlwbGUgbGFuZ3VhZ2VzLid9ID0KICAgICAgICAn0JjRgdC/0L7Qu9GM0LfRg9C50YLQtSDRjdGC0YMg0YTRg9C90LrRhtC40Y4g0L/RgNC4INC90LXQvtCx0YXQvtC00LjQvNC+0YHRgtC4INGA0LDQsdC+0YLRiyDRgSDQvdC10YHQutC+0LvRjNC60LjQvNC4INGP0LfRi9C60LDQvNC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbGFuZ3VhZ2UnfSA9ICfQlNC+0LHQsNCy0LjRgtGMINGP0LfRi9C6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBMYW5ndWFnZSd9ID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0Y/Qt9GL0LonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBMYW5ndWFnZSd9ID0gJ9CY0LfQvNC10L3QuNGC0Ywg0Y/Qt9GL0LonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgbGFuZ3VhZ2UuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIEZBUSBhcnRpY2xlISd9ID0KICAgICAgICAn0K3RgtC+0YIg0Y/Qt9GL0Log0YPQtNCw0LvRj9GC0Ywg0L3QtdC70YzQt9GPLiDQndCwINC90ZHQvCDQvdCw0L/QuNGB0LDQvdCwINC60LDQuiDQvNC40L3QuNC80YPQvCDQvtC00L3QsCDRgdGC0LDRgtGM0Y8gRkFRISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGxhbmd1YWdlIGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBGQVEgQXJ0aWNsZShzKSd9ID0gJ9Ct0YLQvtGCINGP0LfRi9C6INC40YHQv9C+0LvRjNC30L7QstCw0L0g0LIg0YHQu9C10LTRg9GO0YnQuNGFINGB0YLQsNGC0YzRj9GFIEZBUSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFPdmVydmlld05hdkJhcgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29udGV4dCBTZXR0aW5ncyd9ID0gJ9Cf0LDRgNCw0LzQtdGC0YDRiyDQutC+0L3RgtC10LrRgdGC0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGFydGljbGVzIHBlciBwYWdlJ30gPSAn0JrQvtC70LjRh9C10YHRgtCy0L4g0YHRgtCw0YLQtdC5INC90LAg0YHRgtGA0LDQvdC40YbRgyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFPdmVydmlld1NtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBGQVEgZGF0YSBmb3VuZC4nfSA9ICfQlNCw0L3QvdGL0LUgRkFRINC90LUg0L3QsNC50LTQtdC90YsuJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVJlbGF0ZWRBcnRpY2xlcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnb3V0IG9mIDUnfSA9ICfQuNC3IDUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRU2VhcmNoCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydLZXl3b3JkJ30gPSAn0JrQu9GO0YfQtdCy0L7QtSDRgdC70L7QstC+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGUgKGUuIGcuIEVxdWFscyAxMCBvciBHcmVhdGVyVGhhbiA2MCknfSA9ICfQk9C+0LvQvtGB0L7QstCw0L3QuNC1ICjQvdCw0L/RgNC40LzQtdGALCDRgNCw0LLQvdC+IDEwINC40LvQuCDQsdC+0LvQtdC1INGH0LXQvCA2MCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0ZSAoZS4gZy4gRXF1YWxzIDI1JSBvciBHcmVhdGVyVGhhbiA3NSUpJ30gPSAn0J7RhtC10L3QuNGC0YwgKNC90LDQv9GA0LjQvNC10YAsINGA0LDQstC90L4gMjUlINC40LvQuCDQsdC+0LvQtdC1INGH0LXQvCA3NSUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FwcHJvdmVkJ30gPSAn0KPRgtCy0LXRgNC20LTQtdC90L4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkIGJ5J30gPSAn0J/QvtGB0LvQtdC00L3QuNC8INC40LfQvNC10L3QuNC7JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENyZWF0ZSBUaW1lIChiZWZvcmUvYWZ0ZXIpJ30gPSAn0JLRgNC10LzRjyDRgdC+0LfQtNCw0L3QuNGPINGB0YLQsNGC0YzQuCBGQVEgKNC00L4v0L/QvtGB0LvQtSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ3JlYXRlIFRpbWUgKGJldHdlZW4pJ30gPSAn0JLRgNC10LzRjyDRgdC+0LfQtNCw0L3QuNGPINGB0YLQsNGC0YzQuCBGQVEgKNC80LXQttC00YMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENoYW5nZSBUaW1lIChiZWZvcmUvYWZ0ZXIpJ30gPSAn0JLRgNC10LzRjyDQuNC30LzQtdC90LXQvdC40Y8g0YHRgtCw0YLRjNC4IEZBUSAo0LTQvi/Qv9C+0YHQu9C1KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDaGFuZ2UgVGltZSAoYmV0d2VlbiknfSA9ICfQktGA0LXQvNGPINC40LfQvNC10L3QtdC90LjRjyDRgdGC0LDRgtGM0LggRkFRICjQvNC10LbQtNGDKSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFTZWFyY2hPcGVuU2VhcmNoRGVzY3JpcHRpb25GdWxsdGV4dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRRnVsbHRleHQnfSA9ICfQn9C+0LvQvdC+0YLQtdC60YHRgtC+0LLRi9C5INC/0L7QuNGB0Log0LIgRkFRJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVNlYXJjaFNtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgU2VhcmNoJ30gPSAn0J/QvtC40YHQuiDQsiBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvZmlsZSBTZWxlY3Rpb24nfSA9ICfQktGL0LHQvtGAINGI0LDQsdC70L7QvdCwINC/0L7QuNGB0LrQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWb3RlJ30gPSAn0JPQvtC70L7RgdC+0LLQsNGC0YwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdm90ZSBzZXR0aW5ncyd9ID0gJ9Cd0LDRgdGC0YDQvtC50LrQuCDQs9C+0LvQvtGB0L7QstCw0L3QuNGPINC90LUg0LfQsNC00LDQvdGLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmljIHZvdGVzJ30gPSAn0J7Qv9GA0LXQtNC10LvQtdC90L3Ri9C1INCz0L7Qu9C+0YHQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlLiBnLiBFcXVhbHMgMTAgb3IgR3JlYXRlclRoYW4gNjAnfSA9ICfQvdCw0L/RgNC40LzQtdGALCDRgNCw0LLQvdC+IDEwINC40LvQuCDQsdC+0LvQtdC1INGH0LXQvCA2MCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRlJ30gPSAn0J7RhtC10L3QuNGC0YwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gcmF0ZSBzZXR0aW5ncyd9ID0gJ9Cd0LDRgdGC0YDQvtC50LrQuCDQtNC70Y8g0L7RhtC10L3QutC4L9GA0LXQudGC0LjQvdCz0LAg0L3QtSDQt9Cw0LTQsNC90YsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWMgcmF0ZSd9ID0gJ9Ce0L/RgNC10LTQtdC00LXQu9C10L3QvdGL0LUg0L7RhtC10L3QutC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuIGcuIEVxdWFscyAyNSUgb3IgR3JlYXRlclRoYW4gNzUlJ30gPSAn0L3QsNC/0YDQuNC80LXRgCwg0YDQsNCy0L3QviAyNSUg0LjQu9C4INCx0L7Qu9C10LUg0YfQtdC8IDc1JSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDcmVhdGUgVGltZSd9ID0gJ9CS0YDQtdC80Y8g0YHQvtC30LTQsNC90LjRjyDRgdGC0LDRgtGM0LggRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENoYW5nZSBUaW1lJ30gPSAn0JLRgNC10LzRjyDQuNC30LzQtdC90LXQvdC40Y8g0YHRgtCw0YLRjNC4IEZBUSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFab29tCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSW5mb3JtYXRpb24nfSA9ICfQmNC90YTQvtGA0LzQsNGG0LjRjyBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0aW5nJ30gPSAn0J7RhtC10L3QutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGVzJ30gPSAn0JPQvtC70L7RgdCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHZvdGVzIGZvdW5kISd9ID0gJ9CT0L7Qu9C+0YHQvtCyINC90LUg0L3QsNC50LTQtdC90L4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHZvdGVzIGZvdW5kISBCZSB0aGUgZmlyc3Qgb25lIHRvIHJhdGUgdGhpcyBGQVEgYXJ0aWNsZS4nfSA9ICfQntGG0LXQvdC+0Log0L3QtSDQvdCw0LnQtNC10L3QviEg0J7RhtC10L3QuNGC0LUg0Y3RgtGDINGB0YLQsNGC0YzRjiBGQVEg0L/QtdGA0LLRi9C8Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEb3dubG9hZCBBdHRhY2htZW50J30gPSAn0KHQutCw0YfQsNGC0Ywg0LLQu9C+0LbQtdC90LjQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyBvcGVuIGxpbmtzIGluIHRoZSBmb2xsb3dpbmcgZGVzY3JpcHRpb24gYmxvY2tzLCB5b3UgbWlnaHQgbmVlZCB0byBwcmVzcyBDdHJsIG9yIENtZCBvciBTaGlmdCBrZXkgd2hpbGUgY2xpY2tpbmcgdGhlIGxpbmsgKGRlcGVuZGluZyBvbiB5b3VyIGJyb3dzZXIgYW5kIE9TKS4nfSA9CiAgICAgICAgJ9CU0LvRjyDQvtGC0LrRgNGL0YLQuNGPINGB0YHRi9C70LrQuCDQsiDRgdC70LXQtNGD0Y7RidC10Lwg0YHQvtC+0LHRidC10L3QuNC4L9C30LDQvNC10YLQutC1INC90LXQvtCx0YXQvtC00LjQvNC+INC90LDQttCw0YLRjCDQuCDRg9C00LXRgNC20LjQstCw0YLRjCDQutC70LDQstC40YjRgyBDdHJsINC40LvQuCBDbWQg0LjQu9C4IFNoaWZ0INC4INC60LvQuNC60L3Rg9GC0Ywg0L/QviDRgdGB0YvQu9C60LUgKNC30LDQstC40YHQuNGCINC+0YIg0LLQsNGI0LXQs9C+INCx0YDQsNGD0LfQtdGA0LAg0Lgg0J7QoSkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdyBoZWxwZnVsIHdhcyB0aGlzIGFydGljbGU/IFBsZWFzZSBnaXZlIHVzIHlvdXIgcmF0aW5nIGFuZCBoZWxwIHRvIGltcHJvdmUgdGhlIEZBUSBEYXRhYmFzZS4gVGhhbmsgWW91ISd9ID0KICAgICAgICAn0J3QsNGB0LrQvtC70YzQutC+INCx0YvQu9CwINC/0L7Qu9C10LfQvdCwINGN0YLQsCDRgdGC0LDRgtGM0Y8/INCf0L7QttCw0LvRg9C50YHRgtCwLCDQvtGG0LXQvdC40YLQtSDQtdGRLCDRh9GC0L7QsdGLINC80Ysg0LzQvtCz0LvQuCDRg9C70YPRh9GI0LjRgtGMINCx0LDQt9GDIEZBUS4g0KHQv9Cw0YHQuNCx0L4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J25vdCBoZWxwZnVsJ30gPSAn0LHQtdGB0L/QvtC70LXQt9C90LDRjyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd2ZXJ5IGhlbHBmdWwnfSA9ICfQvtGH0LXQvdGMINC/0L7Qu9C10LfQvdCw0Y8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRWm9vbVNtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIHRpdGxlIHRvIGFydGljbGUgc3ViamVjdCd9ID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0LfQsNCz0L7Qu9C+0LLQvtC6INC6INGB0YLQsNGC0YzQtSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZBUSBUZXh0J30gPSAn0JLRgdGC0LDQstC40YLRjCDRgtC10LrRgdGCIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRnVsbCBGQVEnfSA9ICfQktGB0YLQsNCy0LjRgtGMINC/0L7Qu9C90L7RgdGC0YzRjiBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZBUSBMaW5rJ30gPSAn0JLRgdGC0LDQstC40YLRjCDRgdGB0YvQu9C60YMg0L3QsCBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZBUSBUZXh0ICYgTGluayd9ID0gJ9CS0YHRgtCw0LLQuNGC0Ywg0YLQtdC60YHRgiBGQVEg0Lgg0YHRgdGL0LvQutGDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGdWxsIEZBUSAmIExpbmsnfSA9ICfQktGB0YLQsNCy0LjRgtGMINC/0L7Qu9C90L7RgdGC0YzRjiBGQVEg0Lgg0YHRgdGL0LvQutGDJzsKCiAgICAjIFRlbXBsYXRlOiBDdXN0b21lckZBUUV4cGxvcmVyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXRlc3QgdXBkYXRlZCBGQVEgYXJ0aWNsZXMnfSA9ICfQn9C+0YHQu9C10LTQvdC40LUg0L7QsdC90L7QstC70LXQvdC40Y8g0YHRgtCw0YLQtdC5IEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBGQVEgYXJ0aWNsZXMgZm91bmQuJ30gPSAn0KHRgtCw0YLRjNC4IEZBUSDQvdC1INC90LDQudC00LXQvdGLLic7CgogICAgIyBUZW1wbGF0ZTogQ3VzdG9tZXJGQVFSZWxhdGVkQXJ0aWNsZXMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbWlnaHQgYmUgaGVscGZ1bCd9ID0gJ9Ct0YLQviDQvNC+0LbQtdGCINCx0YvRgtGMINCS0LDQvCDQv9C+0LvQtdC30L3Qvic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3VuZCBubyBoZWxwZnVsIHJlc291cmNlcyBmb3IgdGhlIHN1YmplY3QgYW5kIHRleHQuJ30gPSAn0J3QtdGCINC/0L7Qu9C10LfQvdGL0YUg0YHRgtCw0YLQtdC5INC90LAg0Y3RgtGDINGC0LXQvNGDLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlIGEgc3ViamVjdCBvciB0ZXh0IHRvIGdldCBhIGxpc3Qgb2YgaGVscGZ1bCByZXNvdXJjZXMuJ30gPSAn0JLQstC10LTQuNGC0LUg0YLQtdC80YMg0LjQu9C4INGC0LXQutGB0YIg0LTQu9GPINC/0L7Qu9GD0YfQtdC90LjRjyDRgdC/0LjRgdC60LAg0L/QvtC70LXQt9C90YvRhSDRgdC/0YDQsNCy0L7Rh9C90YvRhSDRgdGC0LDRgtC10LkgRkFRLic7CgogICAgIyBUZW1wbGF0ZTogQ3VzdG9tZXJGQVFTZWFyY2gKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bGx0ZXh0IHNlYXJjaCBpbiBGQVEgYXJ0aWNsZXMgKGUuIGcuICJKb2huKm4iIG9yICJXaWxsKiIpJ30gPSAn0J/QvtC70L3QvtGC0LXQutGB0YLQvtCy0YvQuSDQv9C+0LjRgdC6INCyINGB0YLQsNGC0YzRj9GFIEZBUSAo0L3QsNC/0YDQuNC80LXRgCwgItCw0LLRgtC+0Lwq0LrQuCIg0LjQu9C4ICLQnNC+0YHQuioiKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWb3RlIHJlc3RyaWN0aW9ucyd9ID0gJ9Ce0LPRgNCw0L3QuNGH0LXQvdC40Y8g0L3QsCDQs9C+0LvQvtGB0L7QstCw0L3QuNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgRkFRIGFydGljbGVzIHdpdGggdm90ZXMuLi4nfSA9ICfQotC+0LvRjNC60L4g0YHRgtCw0YLRjNC4IEZBUSDRgSDQs9C+0LvQvtGB0LDQvNC4Li4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGUgcmVzdHJpY3Rpb25zJ30gPSAn0J7Qs9GA0LDQvdC40YfQtdC90LjRjyDQvtGG0LXQvdC+0LonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSBGQVEgYXJ0aWNsZXMgd2l0aCByYXRlLi4uJ30gPSAn0KLQvtC70YzQutC+INGB0YLQsNGC0YzQuCBGQVEg0YEg0L7RhtC10L3QutC+0LkuLi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXN0cmljdGlvbnMnfSA9ICfQktGA0LXQvNC10L3QvdGL0LUg0YDQsNC80LrQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IEZBUSBhcnRpY2xlcyBjcmVhdGVkJ30gPSAn0KLQvtC70YzQutC+INGB0YLQsNGC0YzQuCBGQVEg0YHQvtC30LTQsNC90L3Ri9C1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgRkFRIGFydGljbGVzIGNyZWF0ZWQgYmV0d2Vlbid9ID0gJ9Ci0L7Qu9GM0LrQviDRgdGC0LDRgtGM0LggRkFRLCDRgdC+0LfQtNCw0L3QvdGL0LUg0LzQtdC20LTRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2gtUHJvZmlsZSBhcyBUZW1wbGF0ZT8nfSA9ICfQmNGB0L/QvtC70YzQt9C+0LLQsNGC0Ywg0L/QsNGA0LDQvNC10YLRgNGLINC/0L7QuNGB0LrQsCDQutCw0Log0YjQsNCx0LvQvtC9Pyc7CgogICAgIyBUZW1wbGF0ZTogQ3VzdG9tZXJGQVFab29tCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcnRpY2xlIE51bWJlcid9ID0gJ9Cd0L7QvNC10YAg0YHRgtCw0YLRjNC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBmb3IgYXJ0aWNsZXMgd2l0aCBrZXl3b3JkJ30gPSAn0J/QvtC40YHQuiDRgdGC0LDRgtC10Lkg0L/QviDQutC70Y7Rh9C10LLQvtC80YMg0YHQu9C+0LLRgyc7CgogICAgIyBUZW1wbGF0ZTogUHVibGljRkFRU2VhcmNoT3BlblNlYXJjaERlc2NyaXB0aW9uRkFRTnVtYmVyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMnfSA9ICfQntCx0YnQtdC00L7RgdGC0YPQv9C90L7QtSc7CgogICAgIyBUZW1wbGF0ZTogUHVibGljRkFRU2VhcmNoUmVzdWx0U2hvcnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0JhY2sgdG8gRkFRIEV4cGxvcmVyJ30gPSAn0JLQtdGA0L3Rg9GC0YzRgdGPINCyINC+0LHQt9C+0YAgRkFRJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUFkZC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgcncgcGVybWlzc2lvbiEnfSA9ICfQndC10L7QsdGF0L7QtNC40LzRiyDQv9GA0LDQstCwIHJ3ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjYXRlZ29yaWVzIGZvdW5kIHdoZXJlIHVzZXIgaGFzIHJlYWQvd3JpdGUgcGVybWlzc2lvbnMhJ30gPSAn0J7RgtGB0YPRgtGB0YLQstGD0Y7RgiDQutCw0YLQtdCz0L7RgNC40Lgg0LIg0LrQvtGC0L7RgNGL0YUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GMINC40LzQtdC10YIg0L/RgNCw0LLQsCDRh9GC0LXQvdC40Y8v0LfQsNC/0LjRgdC4ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkZWZhdWx0IGxhbmd1YWdlIGZvdW5kIGFuZCBjYW5cJ3QgY3JlYXRlIGEgbmV3IG9uZS4nfSA9ICfQndC1INGD0LrQsNC30LDQvSDRj9C30YvQuiDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQuCDQvdC10LLQvtC30LzQvtC20L3QviDQt9Cw0LTQsNGC0Ywg0L3QvtCy0YvQuS4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRQ2F0ZWdvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgQ2F0ZWdvcnlJRCEnfSA9ICfQotGA0LXQsdGD0LXRgtGB0Y8gQ2F0ZWdvcnlJRCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRlZ29yeSBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAn0KMg0LrQsNGC0LXQs9C+0YDQuNC4INC00L7Qu9C20L3QviDQsdGL0YLRjCDQvdCw0LfQstCw0L3QuNC1ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGNhdGVnb3J5IGFscmVhZHkgZXhpc3RzJ30gPSAn0KLQsNC60LDRjyDQutCw0YLQtdCz0L7RgNC40Y8g0YPQttC1INGB0YPRidC10YHRgtCy0YPQtdGCISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGNhdGVnb3J5IGFscmVhZHkgZXhpc3RzISd9ID0gJ9Ci0LDQutCw0Y8g0LrQsNGC0LXQs9C+0YDQuNGPINGD0LbQtSDRgdGD0YnQtdGB0YLQstGD0LXRgiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQ2F0ZWdvcnlJRCBpcyBnaXZlbiEnfSA9ICdDYXRlZ29yeUlEINC90LUg0LfQsNC00LDQvSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgY2F0ZWdvcnkgJXMhJ30gPSAn0J3QtSDRg9C00LDQu9C+0YHRjCDRg9C00LDQu9C40YLRjCDQutCw0YLQtdCz0L7RgNC40Y4gJXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBjYXRlZ29yeSB1cGRhdGVkISd9ID0gJ9Ca0LDRgtC10LPQvtGA0LjRjyBGQVEg0LjQt9C80LXQvdC10L3QsCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGNhdGVnb3J5IGFkZGVkISd9ID0gJ9Ca0LDRgtC10LPQvtGA0LjRjyBGQVEg0LTQvtCx0LDQstC70LXQvdCwISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgQ2F0ZWdvcnknfSA9ICfQo9C00LDQu9C40YLRjCDQutCw0YLQtdCz0L7RgNC40Y4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBJdGVtSUQgaXMgZ2l2ZW4hJ30gPSAn0J3QtSDRg9C60LDQt9Cw0L0gSXRlbUlEISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSBubyBwZXJtaXNzaW9uIGZvciB0aGlzIGNhdGVnb3J5ISd9ID0gJ9CjINCy0LDRgSDQvdC10YIg0L/RgNCw0LIg0L3QsCDQtNC+0YHRgtGD0L8g0Log0Y3RgtC+0Lkg0LrQsNGC0LXQs9C+0YDQuNC4ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBGQVEgYXJ0aWNsZSAlcyEnfSA9ICfQndC1INGD0LTQsNC70L7RgdGMINGD0LTQsNC70LjRgtGMINGB0YLQsNGC0YzRjiBGQVEgJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUV4cGxvcmVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgQ2F0ZWdvcnlJRCAlcyBpcyBpbnZhbGlkLid9ID0gJ0NhdGVnb3J5SUQgJXMg0L3QtdCy0LXRgNC10L0uJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUhpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIEl0ZW1JRCBpcyBnaXZlbiEnfSA9ICfQndC10LLQvtC30LzQvtC20L3QviDQvtGC0L7QsdGA0LDQt9C40YLRjCDQuNGB0YLQvtGA0LjRjiwg0YLQsNC6INC60LDQuiDQvdC1INC30LDQtNCw0L0gSXRlbUlEISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSGlzdG9yeSd9ID0gJ9CY0YHRgtC+0YDQuNGPIEZBUSAnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRSm91cm5hbC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEpvdXJuYWwnfSA9ICfQltGD0YDQvdCw0LsgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgY29uZmlnIG9wdGlvbiBGQVE6OkZyb250ZW5kOjpPdmVydmlldyd9ID0gJ9Cd0LXQvtCx0YXQvtC00LjQvNC+INC90LDRgdGC0YDQvtC40YLRjCDQv9Cw0YDQsNC80LXRgtGAIEZBUTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZyBvcHRpb24gRkFROjpGcm9udGVuZDo6T3ZlcnZpZXcgbmVlZHMgdG8gYmUgYSBIQVNIIHJlZiEnfSA9CiAgICAgICAgJ9Cf0LDRgNCw0LzQtdGC0YAgRkFROjpGcm9udGVuZDo6T3ZlcnZpZXcgLSDRgtGA0LXQsdGD0LXRgtGB0Y8g0YHRgdGL0LvQutCwINC90LAgSEFTSCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY29uZmlnIG9wdGlvbiBmb3VuZCBmb3IgdGhlIHZpZXcgIiVzIiEnfSA9ICfQndC1INC90LDRgdGC0YDQvtC10L0g0L7QsdC30L7RgCAiJXMiISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFMYW5ndWFnZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gTGFuZ3VhZ2VJRCBpcyBnaXZlbiEnfSA9ICdMYW5ndWFnZUlEINC90LUg0LfQsNC00LDQvSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIG5hbWUgaXMgcmVxdWlyZWQhJ30gPSAn0J3QtdC+0LHRhdC+0LTQuNC80L4g0LfQsNC00LDRgtGMINC90LDQt9Cy0LDQvdC40LUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbGFuZ3VhZ2UgYWxyZWFkeSBleGlzdHMhJ30gPSAn0KLQsNC60L7QuSDRj9C30YvQuiDRg9C20LUg0YHRg9GJ0LXRgdGC0LLRg9C10YIhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGxhbmd1YWdlICVzISd9ID0gJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0YPQtNCw0LvQuNGC0Ywg0Y/Qt9GL0LogJXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBsYW5ndWFnZSB1cGRhdGVkISd9ID0gJ9Cv0LfRi9C6INC00LvRjyBGQVEg0LjQt9C80LXQvdGR0L0hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBsYW5ndWFnZSBhZGRlZCEnfSA9ICfQr9C30YvQuiDQtNC70Y8gRkFRINC00L7QsdCw0LLQu9C10L0hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBMYW5ndWFnZSAlcyd9ID0gJ9Cj0LTQsNC70LjRgtGMINGP0LfRi9C6ICVzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUVByaW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXN1bHQnfSA9ICfQoNC10LfRg9C70YzRgtCw0YInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCB1cGRhdGUnfSA9ICfQn9C+0YHQu9C10LTQvdC10LUg0L7QsdC90L7QstC70LXQvdC40LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIER5bmFtaWMgRmllbGRzJ30gPSAn0JTQuNC90LDQvNC40YfQtdGB0LrQuNC1INC/0L7Qu9GPINC00LvRjyBGQVEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRUmljaFRleHQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vICVzIGlzIGdpdmVuISd9ID0gJyVzINC90LUg0LfQsNC00LDQvSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGxvYWQgTGFuZ3VhZ2VPYmplY3QhJ30gPSAn0L3QtdCy0L7Qt9C80L7QttC90L4g0LfQsNCz0YDRg9C30LjRgtGMIExhbmd1YWdlT2JqZWN0ISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFJlc3VsdCEnfSA9ICfQndC10YIg0YDQtdC30YPQu9GM0YLQsNGC0LAv0KDQtdGI0LXQvdC40Y8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBOdW1iZXInfSA9ICfQndC+0LzQtdGAIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IENoYW5nZWQgYnknfSA9ICfQn9C+0YHQu9C10LTQvdC40Lwg0LjQt9C80LXQvdC40LsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ3JlYXRlIFRpbWUgKGJlZm9yZS9hZnRlciknfSA9ICfQktGA0LXQvNGPINGB0L7Qt9C00LDQvdC40Y8g0YHRgtCw0YLRjNC4IEZBUSAo0LTQvi/Qv9C+0YHQu9C1KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSXRlbSBDcmVhdGUgVGltZSAoYmV0d2VlbiknfSA9ICfQktGA0LXQvNGPINGB0L7Qt9C00LDQvdC40Y8g0YHRgtCw0YLRjNC4IEZBUSAo0LzQtdC20LTRgyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ2hhbmdlIFRpbWUgKGJlZm9yZS9hZnRlciknfSA9ICfQktGA0LXQvNGPINC40LfQvNC10L3QtdC90LjRjyDRgdGC0LDRgtGM0LggRkFRICjQtNC+L9C/0L7RgdC70LUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJdGVtIENoYW5nZSBUaW1lIChiZXR3ZWVuKSd9ID0gJ9CS0YDQtdC80Y8g0LjQt9C80LXQvdC10L3QuNGPINGB0YLQsNGC0YzQuCBGQVEgKNC80LXQttC00YMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VxdWFscyd9ID0gJ9GA0LDQstC90Y/QtdGC0YHRjyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmVhdGVyIHRoYW4nfSA9ICfQsdC+0LvRjNGI0LUg0YfQtdC8JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyZWF0ZXIgdGhhbiBlcXVhbHMnfSA9ICfQsdC+0LvRjNGI0LUg0LjQu9C4INGA0LDQstC90L4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU21hbGxlciB0aGFuJ30gPSAn0LzQtdC90YzRiNC1INGH0LXQvCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTbWFsbGVyIHRoYW4gZXF1YWxzJ30gPSAn0LzQtdC90YzRiNC1INC40LvQuCDRgNCw0LLQvdC+JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgRmlsZUlEISd9ID0gJ9Ci0YDQtdCx0YPQtdGC0YHRjyBGaWxlSUQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoYW5rcyBmb3IgeW91ciB2b3RlISd9ID0gJ9Ch0L/QsNGB0LjQsdC+INC30LAg0LLQsNGI0YMg0L7RhtC10L3QutGDISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSBhbHJlYWR5IHZvdGVkISd9ID0gJ9CS0Ysg0YPQttC1INC/0L7RgdGC0LDQstC40LvQuCDQvtGG0LXQvdC60YMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHJhdGUgc2VsZWN0ZWQhJ30gPSAn0J7RhtC10L3QutCwINC+0YLRgdGD0YLRgdGC0LLRg9C10YIhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB2b3RpbmcgbWVjaGFuaXNtIGlzIG5vdCBlbmFibGVkISd9ID0gJ9Cc0LXRhdCw0L3QuNC30Lwg0LPQvtC70L7RgdC+0LLQsNC90LjRjyDQvdC1INCy0LrQu9GO0YfQtdC9ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdm90ZSByYXRlIGlzIG5vdCBkZWZpbmVkISd9ID0gJ9Cf0YDQtdC00LXQu9GM0L3Ri9C5INGD0YDQvtCy0LXQvdGMINC00LvRjyDQs9C+0LvQvtGB0L7QstCw0L3QuNGPINC90LUg0LfQsNC00LDQvSEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0N1c3RvbWVyRkFRUHJpbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIFByaW50J30gPSAn0J/QtdGH0LDRgtGMINGB0YLQsNGC0YzQuCBGQVEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0N1c3RvbWVyRkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGVkIGJldHdlZW4nfSA9ICfQodC+0LfQtNCw0L3QsCDQvNC10LbQtNGDJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9DdXN0b21lckZBUVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgSXRlbUlEISd9ID0gJ9Ci0YDQtdCx0YPQtdGC0YHRjyBJdGVtSUQhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9QdWJsaWNGQVFFeHBsb3Jlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGVzIChuZXcgY3JlYXRlZCknfSA9ICfQodGC0LDRgtGM0LggRkFRICjQvdC+0LLRi9C1KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZXMgKHJlY2VudGx5IGNoYW5nZWQpJ30gPSAn0KHRgtCw0YLRjNC4IEZBUSAo0L7QsdC90L7QstC70ZHQvdC90YvQtSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGVzIChUb3AgMTApJ30gPSAn0KHRgtCw0YLRjNC4IEZBUSAoVG9wIDEwKSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvUHVibGljRkFRUlNTLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBUeXBlIGlzIGdpdmVuISd9ID0gJ9Cd0LUg0YPQutCw0LfQsNC9INCi0LjQvyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZSBtdXN0IGJlIGVpdGhlciBMYXN0Q3JlYXRlIG9yIExhc3RDaGFuZ2Ugb3IgVG9wMTAhJ30gPSAn0KLQuNC/INC00L7Qu9C20LXQvSDQuNC80LXRgtGMINC30L3QsNGH0LXQvdC40LUgTGFzdENyZWF0ZS/Qn9C+0YHQu9C10LTQvdC40LUg0YHQvtC30LTQsNC90L3Ri9C1INC40LvQuCBMYXN0Q2hhbmdlL9Cf0L7RgdC70LXQtNC90LjQtSDQuNC30LzQtdC90LXQvdC90YvQtSDQuNC70LggVG9wMTAvMTAg0LvRg9GH0YjQuNGFISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIFJTUyBmaWxlISd9ID0gJ9Cd0LXQstC+0LfQvNC+0LbQvdC+INGB0L7Qt9C00LDRgtGMIFJTUyDRhNCw0LnQuyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9IZWFkZXJNZXRhL0FnZW50RkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoRkFRRnVsbHRleHQpJ30gPSAnJXMgKEZBUUZ1bGx0ZXh0KSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0hlYWRlck1ldGEvQ3VzdG9tZXJGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gQ3VzdG9tZXIgKCVzKSd9ID0gJyVzIC0g0JrQu9C40LXQvdGCICglcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgLSBDdXN0b21lciAoRkFRRnVsbHRleHQpJ30gPSAnJXMgLSDQmtC70LjQtdC90YIgKEZBUUZ1bGx0ZXh0KSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0hlYWRlck1ldGEvUHVibGljRkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAtIFB1YmxpYyAoJXMpJ30gPSAnJXMgLSDQntCx0YnQtdC00L7RgdGC0YPQv9C90YvQuSAoJXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gUHVibGljIChGQVFGdWxsdGV4dCknfSA9ICclcyAtINCe0LHRidC10LTQvtGB0YLRg9C/0L3Ri9C5IChGQVFGdWxsdGV4dCknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9MYXlvdXQvRkFRLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIHJhdGUhJ30gPSAn0J3Rg9C20L3QsCDQvtGG0LXQvdC60LAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgYXJ0aWNsZSBpcyBlbXB0eSEnfSA9ICfQrdGC0LAg0YHRgtCw0YLRjNGPINC/0YPRgdGC0LAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhdGVzdCBjcmVhdGVkIEZBUSBhcnRpY2xlcyd9ID0gJ9Cd0L7QstGL0LUg0YHRgtCw0YLRjNC4IEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3AgMTAgRkFRIGFydGljbGVzJ30gPSAnVG9wIDEwINGB0YLQsNGC0LXQuSBGQVEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9MaW5rT2JqZWN0L0ZBUS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29udGVudCBUeXBlJ30gPSAn0KLQuNC/INGB0L7QtNC10YDQttC40LzQvtCz0L4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vRHluYW1pY0ZpZWxkL0RyaXZlci9GQVEucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCB0aGUgYXR0cmlidXRlIHdoaWNoIEZBUXMgd2lsbCBiZSBzZWFyY2hlZCBieSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHRlcm5hbC1zb3VyY2Uga2V5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCB0aGUgdHlwZSBvZiBkaXNwbGF5J30gPSAnJzsKCiAgICAjIERhdGFiYXNlIFhNTCAvIFNPUE0gRGVmaW5pdGlvbjogRkFRLnNvcG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2ludGVybmFsJ30gPSAn0YHQu9GD0LbQtdCx0L3QvtC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2V4dGVybmFsJ30gPSAn0L7RgtC60YDRi9GC0L7QtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwdWJsaWMnfSA9ICfQvtCx0YnQtdC00L7RgdGC0YPQv9C90L7QtSc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgZmlsdGVyIGZvciBIVE1MIG91dHB1dCB0byBhZGQgbGlua3MgYmVoaW5kIGEgZGVmaW5lZCBzdHJpbmcuIFRoZSBlbGVtZW50IEltYWdlIGFsbG93cyB0d28gaW5wdXQga2luZHMuIEZpcnN0IHRoZSBuYW1lIG9mIGFuIGltYWdlIChlLmcuIGZhcS5wbmcpLiBJbiB0aGlzIGNhc2UgdGhlIE9UT0JPIGltYWdlIHBhdGggd2lsbCBiZSB1c2VkLiBUaGUgc2Vjb25kIHBvc3NpYmlsaXR5IGlzIHRvIGluc2VydCB0aGUgbGluayB0byB0aGUgaW1hZ2UuJ30gPQogICAgICAgICfQpNC40LvRjNGC0YAg0LTQu9GPIEhUTUwg0LTQu9GPINC00L7QsdCw0LLQu9C10L3QuNGPINGB0YHRi9C70LrQuCDQv9C+0LfQsNC00Lgg0LfQsNC00LDQvdC90L7QuSDRgdGC0YDQvtC60LguINCt0LvQtdC80LXQvdGCIEltYWdlINC80L7QttC10YIg0LHRi9GC0Ywg0LLQstC10LTQtdC9INC00LLRg9C80Y8g0YHQv9C+0YHQvtCx0LDQvNC4LiDQn9C10YDQstGL0LkgLSDRjdGC0L4g0LjQvNGPINGE0LDQudC70LAo0YIu0LUuIGZhcS5wbmcpLiDQkiDRjdGC0L7QvCDRgdC70YPRh9Cw0LUg0LjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC/0YPRgtGMINC6INGE0LDQudC70LDQvCDQuNC30L7QsdGA0LDQttC10L3QuNC5IE9UT0JPLiDQktGC0L7RgNC+0Lkg0LLQsNGA0LjQsNC90YIg0LIg0YPQutCw0LfQsNC90LjQuCDRgdGB0YvQu9C60Lgg0L3QsCDQuNC30L7QsdGA0LDQttC10L3QuNC1KNC90LDQv9GA0LjQvNC10YAsIGh0dHA6Ly9vdG9iby5vcmcvZmFxLnBuZykuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBGQVEgYXJ0aWNsZSd9ID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0YHRgtCw0YLRjNGOIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDU1MgY29sb3IgZm9yIHRoZSB2b3RpbmcgcmVzdWx0Lid9ID0gJ0NTUy3RhtCy0LXRgiDQtNC70Y8g0YDQtdC30YPQu9GM0YLQsNGC0LAg0LPQvtC70L7RgdC+0LLQsNC90LjRjy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgVGltZSBUbyBMZWF2ZSBmb3IgRkFRIGl0ZW1zLid9ID0gJ9CS0YDQtdC80Y8g0LTQu9GPINCy0YvRhdC+0LTQsCDQuNC3INGA0LXQtNCw0LrRgtC40YDQvtCy0LDQvdC40Y8gRkFRINC/0YPQvdC60YLQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSBNYW5hZ2VtZW50J30gPSAn0KPQv9GA0LDQstC70LXQvdC40LUg0LrQsNGC0LXQs9C+0YDQuNGP0LzQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSBNYW5hZ2VtZW50Lid9ID0gJ9Cj0L/RgNCw0LLQu9C10L3QuNC1INC60LDRgtC10LPQvtGA0LjRj9C80LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBQcmludC4nfSA9ICfQn9C10YfQsNGC0Ywg0YHRgtCw0YLRjNC4IEZBUSDQutC70LjQtdC90YLQvtC8JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBSZWxhdGVkIEFydGljbGVzJ30gPSAn0KfQsNGB0YLQviDQt9Cw0LTQsNCy0LDQtdC80YvQtSDQstC+0L/RgNC+0YHRiyDQv9C+INC60LvQuNC10L3RgtGDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBSZWxhdGVkIEFydGljbGVzLid9ID0gJ9Cn0LDRgdGC0L4g0LfQsNC00LDQstCw0LXQvNGL0LUg0LLQvtC/0YDQvtGB0Ysg0L/QviDQutC70LjQtdC90YLRgy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIFpvb20uJ30gPSAn0J/RgNC+0YHQvNC+0YLRgCDRgdGC0LDRgtGM0LggRkFRINC60LvQuNC10L3RgtC+0LwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBzZWFyY2guJ30gPSAn0J/QvtC40YHQuiDRgdGC0LDRgtGM0LggRkFRINC60LvQuNC10L3RgtC+0LwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUS4nfSA9ICdGQVEg0LTQu9GPINC60LvQuNC10L3RgtC+0LIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlY2ltYWwgcGxhY2VzIG9mIHRoZSB2b3RpbmcgcmVzdWx0Lid9ID0gJ9CU0LXRgdGP0YLQuNGH0L3Ri9GFINC30L3QsNC60L7QsiDQsiDRgNC10LfRg9C70YzRgtCw0YLQtSDQs9C+0LvQvtGB0L7QstCw0L3QuNGPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgY2F0ZWdvcnkgbmFtZS4nfSA9ICfQndCw0LfQstCw0L3QuNC1INC60LDRgtC10LPQvtGA0LjQuCDQv9C+LdGD0LzQvtC70YfQsNC90LjRji4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBsYW5ndWFnZSBmb3IgRkFRIGFydGljbGVzIG9uIHNpbmdsZSBsYW5ndWFnZSBtb2RlLid9ID0gJ9Cv0LfRi9C6INGB0YLQsNGC0LXQuSBGQVEg0L/Qvi3Rg9C80L7Qu9GH0LDQvdC40Y4g0LIg0L7QtNC90L7Rj9C30YvRh9C90L7QvCDRgNC10LbQuNC80LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93bi4nfSA9CiAgICAgICAgJ9Cc0LDQutGB0LjQvNCw0LvRjNC90YvQuSDRgNCw0LfQvNC10YAg0LfQsNCz0L7Qu9C+0LLQutC+0LIsINC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOLCDQv9C+0LrQsNC30YvQstCw0LXQvNGL0YUg0LIg0YHRgtCw0YLRjNGP0YUgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHByaW9yaXR5IG9mIHRpY2tldHMgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPQogICAgICAgICfQn9GA0LjQvtGA0LjRgtC10YIg0LfQsNGP0LLQvtC6INC90LAg0L7QtNC+0LHRgNC10L3QuNC1INGB0YLQsNGC0LXQuSBGQVEg0L/Qvi3Rg9C80L7Qu9GH0LDQvdC40Y4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdGUgZm9yIEZBUSBlbnRyeS4nfSA9ICfQodGC0LDRgtGD0YEg0LfQsNC/0LjRgdC4IEZBUSDQv9C+LdGD0LzQvtC70YfQsNC90LjRji4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0ZSBvZiB0aWNrZXRzIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0gJ9Ch0YLQsNGC0YPRgSDQt9Cw0Y/QstC+0Log0L3QsCDQvtC00L7QsdGA0LXQvdC40LUg0YHRgtCw0YLQtdC5IEZBUSDQv9C+LdGD0LzQvtC70YfQsNC90LjRji4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCB0eXBlIG9mIHRpY2tldHMgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPSAn0KLQuNC/INC30LDRj9Cy0L7QuiDQvdCwINC+0LTQvtCx0YDQtdC90LjQtSDRgdGC0LDRgtC10LkgRkFRINC/0L4t0YPQvNC+0LvRh9Cw0L3QuNGOLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHZhbHVlIGZvciB0aGUgQWN0aW9uIHBhcmFtZXRlciBmb3IgdGhlIHB1YmxpYyBmcm9udGVuZC4gVGhlIEFjdGlvbiBwYXJhbWV0ZXIgaXMgdXNlZCBpbiB0aGUgc2NyaXB0cyBvZiB0aGUgc3lzdGVtLid9ID0KICAgICAgICAn0JfQvdCw0YfQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQv9Cw0YDQsNC80LXRgtGA0LAgQWN0aW9uINC00LvRjyDQvtCx0YnQtdC00L7RgdGC0YPQv9C90L7Qs9C+INGE0YDQvtC90YLQtdC90LTQsC4g0J/QsNGA0LDQvNC10YLRgCBBY3Rpb24g0LjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINCyINGB0LrRgNC40L/RgtCw0YUg0YHQuNGB0YLQtdC80YsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSBBY3Rpb25zIHdoZXJlIGEgc2V0dGluZ3MgYnV0dG9uIGlzIGF2YWlsYWJsZSBpbiB0aGUgbGlua2VkIG9iamVjdHMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIFBsZWFzZSBub3RlIHRoYXQgdGhlc2UgQWN0aW9ucyBtdXN0IGhhdmUgcmVnaXN0ZXJlZCB0aGUgZm9sbG93aW5nIEpTIGFuZCBDU1MgZmlsZXM6IENvcmUuQWxsb2NhdGlvbkxpc3QuY3NzLCBDb3JlLlVJLkFsbG9jYXRpb25MaXN0LmpzLCBDb3JlLlVJLlRhYmxlLlNvcnQuanMsIENvcmUuQWdlbnQuVGFibGVGaWx0ZXJzLmpzIGFuZCBDb3JlLkFnZW50LkxpbmtPYmplY3QuanMuJ30gPQogICAgICAgICfQl9Cw0LTQsNC10YIg0JTQtdC50YHRgtCy0LjRjy9BY3Rpb25zINC60L7Qs9C00LAg0LrQvdC+0L/QutCwINC90LDRgdGC0YDQvtC50LrQuCDQtNC+0YHRgtGD0L/QvdCwINCyINGB0LLRj9C30LDQvdC90L7QvCDQstC40LTQttC10YLQtSAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiDQntCx0YDQsNGC0LjRgtC1INCy0L3QuNC80LDQvdC40LUsINGH0YLQviDRjdGC0Lgg0JTQtdC50YHRgtCy0LjRjy9BY3Rpb25zINC00L7Qu9C20L3RiyDQuNC80LXRgtGMINC30LDRgNC10LPQuNGB0YLRgNC40YDQvtCy0LDQvdC90YvQtSBKUyDQuNC70LggQ1NTINGE0LDQudC70Ys6IENvcmUuQWxsb2NhdGlvbkxpc3QuY3NzLCBDb3JlLlVJLkFsbG9jYXRpb25MaXN0LmpzLCBDb3JlLlVJLlRhYmxlLlNvcnQuanMsIENvcmUuQWdlbnQuVGFibGVGaWx0ZXJzLmpzINC4IENvcmUuQWdlbnQuTGlua09iamVjdC5qcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIGlmIHRoZSBGQVEgdGl0bGUgc2hvdWxkIGJlIGNvbmNhdGVuYXRlZCB0byBhcnRpY2xlIHN1YmplY3QuJ30gPQogICAgICAgICfQl9Cw0LTQsNC10YIsINC00L7Qu9C20LXQvSDQu9C4INC30LDQs9C+0LvQvtCy0L7QuiBGQVEg0L7QsdGK0LXQtNC40L3Rj9GC0YzRgdGPINGBINGC0LXQvNC+0Lkg0YHRgtCw0YLRjNC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBGQVFzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IEZBUSBhdHRyaWJ1dGVzIGFuZCBkeW5hbWljIGZpZWxkcyAoRHluYW1pY0ZpZWxkX05hbWVYKSBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIEZBUSBqb3VybmFsLid9ID0KICAgICAgICAn0JfQsNC00LDQtdGCINC80L7QtNGD0LvRjCDQv9GA0L7RgdC80L7RgtGA0LAg0LTQu9GPINC+0YLQvtCx0YDQsNC20LXQvdC40Y8g0LbRg9GA0L3QsNC70LAgRkFRINCyIHNtYWxsINGE0L7RgNC80LDRgtC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBGQVEgbGlzdC4nfSA9CiAgICAgICAgJ9CX0LDQtNCw0LXRgiDQvNC+0LTRg9C70Ywg0L/RgNC+0YHQvNC+0YLRgNCwINC00LvRjyDQvtGC0L7QsdGA0LDQttC10L3QuNGPINGB0L/QuNGB0LrQsCDRgdGC0LDRgtC10LkgRkFRINCyIHNtYWxsINGE0L7RgNC80LDRgtC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gYSBGQVEgc2VhcmNoIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQo9C60LDQttC40YLQtSDRgdGC0LDQvdC00LDRgNGC0L3QvtC1INC30L3QsNGH0LXQvdC40LUg0LDRgtGA0LjQsdGD0YLQsCBGQVEg0LTQu9GPINGB0L7RgNGC0LjRgNC+0LLQutC4INGA0LXQt9GD0LvRjNGC0LDRgtC+0LIg0L/QvtC40YHQutCwINCyIEZBUSDQsiDQuNC90YLQtdGA0YTQtdC50YHQtSDQsNCz0LXQvdGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gYSBGQVEgc2VhcmNoIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQo9C60LDQttC40YLQtSDRgdGC0LDQvdC00LDRgNGC0L3QvtC1INC30L3QsNGH0LXQvdC40LUg0LDRgtGA0LjQsdGD0YLQsCBGQVEg0LTQu9GPINGB0L7RgNGC0LjRgNC+0LLQutC4INGA0LXQt9GD0LvRjNGC0LDRgtC+0LIg0L/QvtC40YHQutCwINCyIEZBUSDQsiDQuNC90YLQtdGA0YTQtdC50YHQtSDQutC70LjQtdC90YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiBhIEZBUSBzZWFyY2ggb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQo9C60LDQttC40YLQtSDRgdGC0LDQvdC00LDRgNGC0L3QvtC1INC30L3QsNGH0LXQvdC40LUg0LDRgtGA0LjQsdGD0YLQsCDRgdC+0YDRgtC40YDQvtCy0LrQuCDRgNC10LfRg9C70YzRgtCw0YLQsCDQv9C+0LjRgdC60LAg0LIg0L7QsdGJ0LXQtNC+0YHRgtGD0L/QvdC+0Lwg0LjQvdGC0LXRgNGE0LXQudGB0LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0KPQutCw0LbQuNGC0LUg0YHRgtCw0L3QtNCw0YDRgtC90L7QtSDQt9C90LDRh9C10L3QuNC1INCw0YLRgNC40LHRg9GC0LAg0YHQvtGA0YLQuNGA0L7QstC60Lgg0LIgRkFRIEV4cGxvcmVyZSDQuNC90YLQtdGA0YTQtdC50YHQsCDQsNCz0LXQvdGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0KPQutCw0LbQuNGC0LUg0YHRgtCw0L3QtNCw0YDRgtC90L7QtSDQt9C90LDRh9C10L3QuNC1INCw0YLRgNC40LHRg9GC0LAg0YHQvtGA0YLQuNGA0L7QstC60Lgg0LIgRkFRIEV4cGxvcmVyZSDQuNC90YLQtdGA0YTQtdC50YHQsCDQutC70LjQtdC90YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0KPQutCw0LbQuNGC0LUg0YHRgtCw0L3QtNCw0YDRgtC90L7QtSDQt9C90LDRh9C10L3QuNC1INCw0YLRgNC40LHRg9GC0LAg0YHQvtGA0YLQuNGA0L7QstC60Lgg0LIgRkFRIEV4cGxvcmVyZSDQsiDQvtCx0YnQtdC00L7RgdGC0YPQv9C90L7QvCAg0LjQvdGC0LXRgNGE0LXQudGB0LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAn0KPQutCw0LbQuNGC0LUg0YHRgtCw0L3QtNCw0YDRgtC90YvQuSDQv9C+0YDRj9C00L7QuiDQsiDRgNC10LfRg9C70YzRgtCw0YLQsNGFIEZBUSBFeHBsb3JlciDQuNC90YLQtdGA0YTQtdC50YHQsCDQsNCz0LXQvdGC0LAuIFVwOiDQv9C+0LfQtNC90LXQtSDQvdCw0LLQtdGA0YXRgy4gRG93bjog0L3QvtCy0L7QtSDQvdCw0LLQtdGA0YXRgy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICfQo9C60LDQttC40YLQtSDRgdGC0LDQvdC00LDRgNGC0L3Ri9C5INC/0L7RgNGP0LTQvtC6INCyINGA0LXQt9GD0LvRjNGC0LDRgtCw0YUgRkFRIEV4cGxvcmVyINC40L3RgtC10YDRhNC10LnRgdCwINC60LvQuNC10L3RgtCwLiBVcDog0L/QvtC30LTQvdC10LUg0L3QsNCy0LXRgNGF0YMuIERvd246INC90L7QstC+0LUg0L3QsNCy0LXRgNGF0YMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ9Cj0LrQsNC20LjRgtC1INGB0YLQsNC90LTQsNGA0YLQvdGL0Lkg0L/QvtGA0Y/QtNC+0Log0LIg0YDQtdC30YPQu9GM0YLQsNGC0LDRhSBGQVEgRXhwbG9yZXIg0LIg0L7QsdGJ0LXQtNC+0YHRgtGD0L/QvdC+0Lwg0LjQvdGC0LXRgNGE0LXQudGB0LUuIFVwOiDQv9C+0LfQtNC90LXQtSDQvdCw0LLQtdGA0YXRgy4gRG93bjog0L3QvtCy0L7QtSDQvdCw0LLQtdGA0YXRgy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAn0JfQsNC00LDQtdGCINGB0YLQsNC90LTQsNGA0YLQvdGL0Lkg0L/QvtGA0Y/QtNC+0Log0YHQvtGA0YLQuNGA0L7QstC60Lgg0LIg0YDQtdC30YPQu9GM0YLQsNGC0LDRhSDQv9C+0LjRgdC60LAg0LIgRkFRINCyINC40L3RgtC10YDRhNC10LnRgdC1INCw0LPQtdC90YLQsC4gVXA6INGB0YLQsNGA0YvQtSDQstCy0LXRgNGF0YMuIERvd246INC90L7QstGL0LUg0LLQstC10YDRhdGDLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICfQl9Cw0LTQsNC10YIg0YHRgtCw0L3QtNCw0YDRgtC90YvQuSDQv9C+0YDRj9C00L7QuiDRgdC+0YDRgtC40YDQvtCy0LrQuCDQsiDRgNC10LfRg9C70YzRgtCw0YLQsNGFINC/0L7QuNGB0LrQsCDQsiBGQVEg0LIg0LjQvdGC0LXRgNGE0LXQudGB0LUg0LrQu9C40LXQvdGC0LAuIFVwOiDRgdGC0LDRgNGL0LUg0LLQstC10YDRhdGDLiBEb3duOiDQvdC+0LLRi9C1INCy0LLQtdGA0YXRgy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ9CX0LDQtNCw0LXRgiDRgdGC0LDQvdC00LDRgNGC0L3Ri9C5INC/0L7RgNGP0LTQvtC6INGB0L7RgNGC0LjRgNC+0LLQutC4INCyINGA0LXQt9GD0LvRjNGC0LDRgtCw0YUg0L/QvtC40YHQutCwINCyIEZBUSDQsiDQvtCx0YnQtdC8L9C/0YPQsdC70LjRh9C90L7QvCDQuNC90YLQtdGA0YTQtdC50YHQtS4gVXA6INGB0YLQsNGA0YvQtSDQstCy0LXRgNGF0YMuIERvd246INC90L7QstGL0LUg0LLQstC10YDRhdGDLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNob3duIEZBUSBzZWFyY2ggYXR0cmlidXRlIGZvciBGQVEgc2VhcmNoIHNjcmVlbi4nfSA9CiAgICAgICAgJ9CX0LDQtNCw0LXRgiDQsNGC0YDQuNCx0YPRgiBGQVEg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0LTQu9GPINC/0L7QutCw0LfQsCDQvdCwINGN0LrRgNCw0L3QtSDQv9C+0LjRgdC60L7QstC+0LPQviDQt9Cw0L/RgNC+0YHQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaGVpZ2h0IGZvciB0aGUgcmljaCB0ZXh0IGVkaXRvciBjb21wb25lbnQgZm9yIHRoaXMgc2NyZWVuLiBFbnRlciBudW1iZXIgKHBpeGVscykgb3IgcGVyY2VudCB2YWx1ZSAocmVsYXRpdmUpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGluZm9ybWF0aW9uIHRvIGJlIGluc2VydGVkIGluIGEgRkFRIGJhc2VkIFRpY2tldC4gIkZ1bGwgRkFRIiBpbmNsdWRlcyB0ZXh0LCBhdHRhY2htZW50cyBhbmQgaW5saW5lIGltYWdlcy4nfSA9CiAgICAgICAgJ9Ce0L/RgNC10LTQtdC70Y/QtdGCINC/0LXRgNC10YfQtdC90Ywg0LjQvdGE0L7RgNC80LDRhtC40Lgg0LLQutC70Y7Rh9Cw0LXQvNC+0Lkg0LIg0LfQsNGP0LLQutGDINC40LcgRkFRLiAiRnVsbCBGQVEiINCy0LrQu9GO0YfQsNC10YIg0YLQutC10YHRgiwg0LLQu9C+0LbQtdC90LjRjyDQuCDQstGB0YLRgNC+0LXQvdC90YvQtSDQuNC30L7QsdGA0LDQttC10L3QuNGPLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZGFzaGJvYXJkIGJhY2tlbmQuICJMaW1pdCIgZGVmaW5lcyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgZGlzcGxheWVkIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCBhY2Nlc3MgdG8gdGhlIHBsdWdpbiAoZS4gZy4gR3JvdXA6IGFkbWluO2dyb3VwMTtncm91cDI7KS4gIkRlZmF1bHQiIGluZGljYXRlcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuJ30gPQogICAgICAgICfQl9Cw0LTQsNC10YIg0L/QsNGA0LDQvNC10YLRgNGLINC00LvRjyDQvtGC0L7QsdGA0LDQttC10L3QuNGPINCyINCU0LDQudC00LbQtdGB0YLQtS4gIkxpbWl0IiDQt9Cw0LTQsNC10YIg0LrQvtC70LjRh9C10YHRgtCy0L4g0YHRgtCw0YLQtdC5LCDQvtGC0L7QsdGA0LDQttCw0LXQvNGL0YUg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4uICJHcm91cCIg0LjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC00LvRjyDQvtCz0YDQsNC90LjRh9C10L3QuNGPINC00L7RgdGC0YPQv9CwINC6INC00LDQvdC90YvQvCDQvNC+0LTRg9C70Y8gKNC90LDQv9GA0LjQvNC10YAsIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiDQvtC30L3QsNGH0LDQtdGCLCDRh9GC0L4g0LzQvtC00YPQu9GMINC70LjQsdC+INCy0LrQu9GO0YfQtdC9INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOLCDQu9C40LHQviDQsNCz0LXQvdGCLCDQv9GA0Lgg0L3QtdC+0LHRhdC+0LTQuNC80L7RgdGC0LgsINC80L7QttC10YIg0LXQs9C+INCy0LrQu9GO0YfQuNGC0Ywg0LLRgNGD0YfQvdGD0Y4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIEZBUSBFeHBsb3Jlci4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ9CX0LDQtNCw0LXRgiDQv9C10YDQtdGH0LXQvdGMINC60L7Qu9C+0L3QvtC6LCDQvtGC0L7QsdGA0LDQttCw0LXQvNGL0YUg0LIg0J7QsdC30L7RgNC1IEZBUS4g0K3RgtC+0YIg0L/QsNGA0LDQvNC10YLRgCDQvdC1INCy0LvQuNGP0LXRgiDQvdCwINC/0L7RgNGP0LTQvtC6INC60L7Qu9C+0L3QvtC6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBGQVEgam91cm5hbC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ9CX0LDQtNCw0LXRgiDQv9C10YDQtdGH0LXQvdGMINC60L7Qu9C+0L3QvtC6LCDQvtGC0L7QsdGA0LDQttCw0LXQvNGL0YUg0LIg0JjRgdGC0L7RgNC40LggRkFRLiDQrdGC0L7RgiDQv9Cw0YDQsNC80LXRgtGAINC90LUg0LLQu9C40Y/QtdGCINC90LAg0L/QvtGA0Y/QtNC+0Log0LrQvtC70L7QvdC+0LouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIEZBUSBzZWFyY2guIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICfQl9Cw0LTQsNC10YIg0L/QtdGA0LXRh9C10L3RjCDQutC+0LvQvtC90L7Quiwg0L7RgtC+0LHRgNCw0LbQsNC10LzRi9GFINCyINGA0LXQt9GD0LvRjNGC0LDRgtCw0YUg0L/QvtC40YHQutCwINCyIEZBUS4g0K3RgtC+0YIg0L/QsNGA0LDQvNC10YLRgCDQvdC1INCy0LvQuNGP0LXRgiDQvdCwINC/0L7RgNGP0LTQvtC6INC60L7Qu9C+0L3QvtC6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHdoZXJlIHRoZSBcJ0luc2VydCBGQVFcJyBsaW5rIHdpbGwgYmUgZGlzcGxheWVkLid9ID0gJ9Ce0L/RgNC10LTQtdC70Y/QtdGCLCDQs9C00LUg0LHRg9C00LXRgiDQvtGC0L7QsdGA0LDQttCw0YLRjNGB0Y8g0YHRgdGL0LvQutCwICLQktGB0YLQsNCy0LjRgtGMINC40LcgRkFRIi9cJ0luc2VydCBGQVFcJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbml0aW9uIG9mIEZBUSBpdGVtIGZyZWUgdGV4dCBmaWVsZC4nfSA9ICfQntC/0YDQtdC00LXQu9C10L3QuNC1INGB0LLQvtCx0L7QtNC90YvRhSDQv9C+0LvQtdC5INGN0LvQtdC80LXQvdGC0L7QsiBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGlzIEZBUSd9ID0gJ9Cj0LTQsNC70LjRgtGMINGN0YLQvtGCIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9CU0LjQvdCw0LzQuNGH0LXRgdC60LjQtSDQv9C+0LvRjywg0L7RgtC+0LHRgNCw0LbQsNC10LzRi9C1INCyINC+0LrQvdC1INC00L7QsdCw0LLQu9C10L3QuNGPINGB0YLQsNGC0YzQuCBGQVEg0LIg0LjQvdGC0LXRgNGE0LXQudGB0LUg0LDQs9C10L3RgtCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIGVkaXQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQlNC40L3QsNC80LjRh9C10YHQutC40LUg0L/QvtC70Y8sINC+0YLQvtCx0YDQsNC20LDQtdC80YvQtSDQsiDQvtC60L3QtSDRgNC10LTQsNC60YLQuNGA0L7QstCw0L3QuNGPINGB0YLQsNGC0YzQuCBGQVEg0LIg0LjQvdGC0LXRgNGE0LXQudGB0LUg0LDQs9C10L3RgtCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIG92ZXJ2aWV3IHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JTQuNC90LDQvNC40YfQtdGB0LrQuNC1INC/0L7Qu9GPLCDQvtGC0L7QsdGA0LDQttCw0LXQvNGL0LUg0LIg0L7QutC90LUg0L7QsdC30L7RgNCwIEZBUSDQsiDQuNC90YLQtdGA0YTQtdC50YHQtSDQutC70LjQtdC90YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBvdmVydmlldyBzY3JlZW4gb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQlNC40L3QsNC80LjRh9C10YHQutC40LUg0L/QvtC70Y8sINC+0YLQvtCx0YDQsNC20LDQtdC80YvQtSDQsiDQvtC60L3QtSDQvtCx0LfQvtGA0LAgRkFRINCyINC+0LHRidC10LTQvtGB0YLRg9C/0L3QvtC8INC40L3RgtC10YDRhNC10LnRgdC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHByaW50IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JTQuNC90LDQvNC40YfQtdGB0LrQuNC1INC/0L7Qu9GPLCDQvtGC0L7QsdGA0LDQttCw0LXQvNGL0LUg0LIg0L7QutC90LUg0L/QtdGH0LDRgtC4IEZBUSDQsiDQuNC90YLQtdGA0YTQtdC50YHQtSDQsNCz0LXQvdGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgcHJpbnQgc2NyZWVuIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQlNC40L3QsNC80LjRh9C10YHQutC40LUg0L/QvtC70Y8sINC+0YLQvtCx0YDQsNC20LDQtdC80YvQtSDQsiDQvtC60L3QtSDQv9C10YfQsNGC0LggRkFRINCyINC40L3RgtC10YDRhNC10LnRgdC1INC60LvQuNC10L3RgtCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHByaW50IHNjcmVlbiBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9CU0LjQvdCw0LzQuNGH0LXRgdC60LjQtSDQv9C+0LvRjywg0L7RgtC+0LHRgNCw0LbQsNC10LzRi9C1INCyINC+0LrQvdC1INC/0LXRh9Cw0YLQuCBGQVEg0LIg0L7QsdGJ0LXQtNC+0YHRgtGD0L/QvdC+0Lwg0LjQvdGC0LXRgNGE0LXQudGB0LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc2VhcmNoIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JTQuNC90LDQvNC40YfQtdGB0LrQuNC1INC/0L7Qu9GPLCDQvtGC0L7QsdGA0LDQttCw0LXQvNGL0LUg0LIg0L7QutC90LUg0L/QvtC40YHQutCwIEZBUSDQsiDQuNC90YLQtdGA0YTQtdC50YHQtSDQsNCz0LXQvdGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc2VhcmNoIHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JTQuNC90LDQvNC40YfQtdGB0LrQuNC1INC/0L7Qu9GPLCDQvtGC0L7QsdGA0LDQttCw0LXQvNGL0LUg0LIg0L7QutC90LUg0L/QvtC40YHQutCwIEZBUSDQsiDQuNC90YLQtdGA0YTQtdC50YHQtSDQutC70LjQtdC90YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBzZWFyY2ggc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JTQuNC90LDQvNC40YfQtdGB0LrQuNC1INC/0L7Qu9GPLCDQvtGC0L7QsdGA0LDQttCw0LXQvNGL0LUg0LIg0L7QutC90LUg0L/QvtC40YHQutCwIEZBUSDQsiDQvtCx0YnQtdC00L7RgdGC0YPQv9C90L7QvCDQuNC90YLQtdGA0YTQtdC50YHQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBzbWFsbCBmb3JtYXQgb3ZlcnZpZXcgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQlNC40L3QsNC80LjRh9C10YHQutC40LUg0L/QvtC70Y8sINC+0YLQvtCx0YDQsNC20LDQtdC80YvQtSDQsiDQvtC60L3QtSDQutGA0LDRgtC60L7Qs9C+INC+0LHQt9C+0YDQsCBGQVEg0LIg0LjQvdGC0LXRgNGE0LXQudGB0LUg0LDQs9C10L3RgtCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQlNC40L3QsNC80LjRh9C10YHQutC40LUg0L/QvtC70Y8sINC+0YLQvtCx0YDQsNC20LDQtdC80YvQtSDQsiDQvtC60L3QtSDQv9C+0LTRgNC+0LHQvdC+0LPQviDQv9GA0L7RgdC80L7RgtGA0LAg0YHRgtCw0YLRjNC4IEZBUSDQsiDQuNC90YLQtdGA0YTQtdC50YHQtSDQsNCz0LXQvdGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgem9vbSBzY3JlZW4gb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9CU0LjQvdCw0LzQuNGH0LXRgdC60LjQtSDQv9C+0LvRjywg0L7RgtC+0LHRgNCw0LbQsNC10LzRi9C1INCyINC+0LrQvdC1INC/0L7QtNGA0L7QsdC90L7Qs9C+INC/0YDQvtGB0LzQvtGC0YDQsCDRgdGC0LDRgtGM0LggRkFRINCyINC40L3RgtC10YDRhNC10LnRgdC1INC60LvQuNC10L3RgtCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHpvb20gc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JTQuNC90LDQvNC40YfQtdGB0LrQuNC1INC/0L7Qu9GPLCDQvtGC0L7QsdGA0LDQttCw0LXQvNGL0LUg0LIg0L7QutC90LUg0L/QvtC00YDQvtCx0L3QvtCz0L4g0L/RgNC+0YHQvNC+0YLRgNCwINGB0YLQsNGC0YzQuCBGQVEg0LIg0L7QsdGJ0LXQtNC+0YHRgtGD0L/QvdC+0Lwg0LjQvdGC0LXRgNGE0LXQudGB0LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhpcyBGQVEnfSA9ICfQmNC30LzQtdC90LjRgtGMINGN0YLQvtGCIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgbXVsdGlwbGUgbGFuZ3VhZ2VzIG9uIEZBUSBtb2R1bGUuJ30gPSAn0KDQsNC30YDQtdGI0LjRgtGMINC80L3QvtCz0L7Rj9C30YvRh9C90L7RgdGC0Ywg0LIg0LzQvtC00YPQu9C1IEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHNlcnZpY2UgYXNzaWdubWVudCBmb3IgRkFRcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHRoZSByZWxhdGVkIGFydGljbGUgZmVhdHVyZSBmb3IgdGhlIGN1c3RvbWVyIGZyb250ZW5kLid9ID0KICAgICAgICAn0JLQutC70Y7Rh9C40YLRjCDQstC+0LfQvNC+0LbQvdC+0YHRgtGMINC/0L7QuNGB0LrQsCDRgdC+0L7RgtCy0LXRgtGB0YLQstGD0Y7RidC40YUg0LrQvtC90YLQtdC60YHRgtGDINGB0YLQsNGC0LXQuSBGQVEg0LIg0LjQvdGC0LXRgNGE0LXQudGB0LUg0LrQu9C40LXQvdGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB2b3RpbmcgbWVjaGFuaXNtIG9uIEZBUSBtb2R1bGUuJ30gPSAn0KDQsNC30YDQtdGI0LjRgtGMINGE0YPQvdC60YbQuNGOINC+0YbQtdC90LrQuCDQsiDQvNC+0LTRg9C70LUgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHBsb3Jlcid9ID0gJ9Ce0LHQt9C+0YAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFKQVggUmVzcG9uZGVyJ30gPSAnRkFRIEFKQVgg0L7RgtCy0LXRgtGH0LjQuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQUpBWCBSZXNwb25kZXIgZm9yIFJpY2h0ZXh0Lid9ID0gJ0ZBUSBBSkFYINC+0YLQstC10YLRh9C40Log0LTQu9GPIFJpY2h0ZXh0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJlYSd9ID0gJ9Ce0LHQu9Cw0YHRgtGMIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJlYS4nfSA9ICfQntCx0LvQsNGB0YLRjCBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBEZWxldGUuJ30gPSAn0KPQtNCw0LvQuNGC0Ywg0YHRgtCw0YLRjNGOIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEVkaXQuJ30gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0Ywg0YHRgtCw0YLRjNGOIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEhpc3RvcnkuJ30gPSAn0JjRgdGC0L7RgNC40Y8gRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSm91cm5hbCBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAn0JrQvtC70LjRh9C10YHRgtCy0L4g0YHRgtCw0YLQtdC5LCDQvtGC0L7QsdGA0LDQttCw0LXQvNGL0YUg0L/RgNC4INC/0YDQvtGB0LzQvtGC0YDQtSDQltGD0YDQvdCw0LvQsCBGQVEg0LIgIlNtYWxsIiDRhNC+0YDQvNCw0YLQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJ9Ca0L7Qu9C40YfQtdGB0YLQstC+INGB0YLQsNGC0LXQuSwg0L7RgtC+0LHRgNCw0LbQsNC10LzRi9GFINC/0YDQuCDQv9GA0L7RgdC80L7RgtGA0LUg0J7QsdC30L7RgNCwIEZBUSDQsiAiU21hbGwiINGE0L7RgNC80LDRgtC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBQcmludC4nfSA9ICfQn9C10YfQsNGC0Ywg0YHRgtCw0YLRjNC4IEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIHNlYXJjaCBiYWNrZW5kIHJvdXRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0gJ9CS0LrQu9GO0YfQuNGC0Ywg0Lgg0L3QsNGB0YLRgNC+0LjRgtGMINC80L7QtNGD0LvRjCDQv9C+0LjRgdC60LAgRkFRINC00LvRjyDQuNC90YLQtdGA0YTQtdC50YHQsCDQsNCz0LXQvdGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpZWxkNCd9ID0gJ9Cf0L7Qu9C1NCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWVsZDUnfSA9ICfQn9C+0LvQtTUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnVsbCBGQVEnfSA9ICfQn9C+0LvQvdGL0LkgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0gJ9CT0YDRg9C/0L/QsCDQtNC70Y8g0L7QtNC+0LHRgNC10L3QuNGPINGB0YLQsNGC0LXQuSBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgdGhpcyBGQVEnfSA9ICfQmNGB0YLQvtGA0LjRjyDRjdGC0L7Qs9C+IEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBhY3RpdmF0ZWQsIEZBUSBhcnRpY2xlcyBvZiBzdGF0dXMgdHlwZSBpbnRlcm5hbCBhcmUgYWxzbyB0YWtlbiBpbnRvIGFjY291bnQgZm9yIHRoZSBhcHByb3ZhbCBwcm9jZXNzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgaW50ZXJuYWwgZmllbGRzIG9uIGEgRkFRIGJhc2VkIFRpY2tldC4nfSA9ICfQktC60LvRjtGH0LjRgtGMINCy0L3Rg9GC0YDQtdC90L3QuNC1INC/0L7Qu9GPINCyINC30LDRj9Cy0LrRgywg0L7RgdC90L7QstCw0L3QvdGD0Y4g0L3QsCDRgdGC0LDRgtGM0LUgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNsdWRlIHRoZSBuYW1lIG9mIGVhY2ggZmllbGQgaW4gYSBGQVEgYmFzZWQgVGlja2V0Lid9ID0gJ9CS0LrQu9GO0YfQuNGC0Ywg0LjQvNGPINC60LDQttC00L7Qs9C+INC/0L7Qu9GPINCyINC30LDRj9Cy0LrRgywg0L7RgdC90L7QstCw0L3QvdGD0Y4g0L3QsCDRgdGC0LDRgtGM0LUgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnRlcmZhY2VzIHdoZXJlIHRoZSBxdWljayBzZWFyY2ggc2hvdWxkIGJlIHNob3duLid9ID0gJ9CY0L3RgtC10YDRhNC10LnRgdGLLCDQsiDQutC+0YLQvtGA0YvRhSDQv9Cw0L3QtdC70Ywg0LHRi9GB0YLRgNC+0LPQviDQv9C+0LjRgdC60LAg0LzQvtC20LXRgiDQvtGC0L7QsdGA0LDQttCw0YLRjNGB0Y8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0pvdXJuYWwnfSA9ICfQltGD0YDQvdCw0LsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFuZ3VhZ2UgTWFuYWdlbWVudCd9ID0gJ9Cj0L/RgNCw0LLQu9C10L3QuNC1INGP0LfRi9C60LDQvNC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhbmd1YWdlIE1hbmFnZW1lbnQuJ30gPSAn0KPQv9GA0LDQstC70LXQvdC40LUg0Y/Qt9GL0LrQsNC80LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbWl0IGZvciB0aGUgc2VhcmNoIHRvIGJ1aWxkIHRoZSBrZXl3b3JkIEZBUSBhcnRpY2xlIGxpc3QuJ30gPSAn0JvQuNC80LjRgiAg0LTQu9GPINC/0L7QuNGB0LrQsCDQtNC70Y8g0L/QvtGB0YLRgNC+0LXQvdC40Y8g0YHQv9C40YHQutCwINC60L7QvdGC0LXQutGB0YLQvdGL0YUg0YHRgtCw0YLQtdC5IEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayBhbm90aGVyIG9iamVjdCB0byB0aGlzIEZBUSBpdGVtJ30gPSAn0J/RgNC40LLRj9C30LDRgtGMINC00YDRg9Cz0L7QuSDQvtCx0YrQtdC60YIg0Log0Y3RgtC+0LzRgyDRjdC70LXQvNC10L3RgtGDIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIHF1ZXVlIG5hbWVzIGZvciB3aGljaCB0aGUgcmVsYXRlZCBhcnRpY2xlIGZlYXR1cmUgaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJ9Ch0L/QuNGB0L7QuiDQvtGH0LXRgNC10LTQtdC5INC00LvRjyDQutC+0YLQvtGA0YvRhSDQstC+0LfQvNC+0LbQvdC+0YHRgtGMINC/0L7QuNGB0LrQsCDQutC+0L3RgtC10LrRgdGC0L3Ri9GFINGB0YLQsNGC0LXQuSBGQVEg0LLQutC70Y7Rh9C10L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBzdGF0ZSB0eXBlcyB3aGljaCBjYW4gYmUgdXNlZCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0KHQv9C40YHQvtC6INGC0LjQv9C+0LIg0YHQvtGB0YLQvtGP0L3QuNC5LCDQutC+0YLQvtGA0YvQtSDQvNC+0LPRg9GCINC40YHQv9C+0LvRjNC30L7QstCw0YLRjNGB0Y8g0LIg0LjQvdGC0LXRgNGE0LXQudGB0LUg0LDQs9C10L3RgtCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIHN0YXRlIHR5cGVzIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQodC/0LjRgdC+0Log0YLQuNC/0L7QsiDRgdC+0YHRgtC+0Y/QvdC40LksINC60L7RgtC+0YDRi9C1INC80L7Qs9GD0YIg0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGM0YHRjyDQsiDQuNC90YLQtdGA0YTQtdC50YHQtSDQutC70LjQtdC90YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBzdGF0ZSB0eXBlcyB3aGljaCBjYW4gYmUgdXNlZCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Ch0L/QuNGB0L7QuiDRgtC40L/QvtCyINGB0L7RgdGC0L7Rj9C90LjQuSwg0LrQvtGC0L7RgNGL0LUg0LzQvtCz0YPRgiDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0YzRgdGPINCyINC/0YPQsdC70LjRh9C90L7QvC/QvtCx0YnQtdC00L7RgdGC0YPQv9C90L7QvCDQuNC90YLQtdGA0YTQtdC50YHQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0gJ0xvYWRlciBtb2R1bGUgcmVnaXN0cmF0aW9uINC00LvRjyDQv9GD0LHQu9C40YfQvdC+0LPQviDQuNC90YLQtdGA0YTQtdC50YHQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JzQsNC60YHQuNC80LDQu9GM0L3QvtC1INC60L7Qu9C40YfQtdGB0YLQstC+INGB0YLQsNGC0LXQuSwg0LLRi9Cy0L7QtNC40LzQvtC1INCyIEZBUSBFeHBsb3JlciDQsiDQuNC90YLQtdGA0YTQtdC50YHQtSDQsNCz0LXQvdGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Cc0LDQutGB0LjQvNCw0LvRjNC90L7QtSDQutC+0LvQuNGH0LXRgdGC0LLQviDRgdGC0LDRgtC10LksINCy0YvQstC+0LTQuNC80L7QtSDQsiBGQVEgRXhwbG9yZXIg0LIg0LjQvdGC0LXRgNGE0LXQudGB0LUg0LrQu9C40LXQvdGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQnNCw0LrRgdC40LzQsNC70YzQvdC+0LUg0LrQvtC70LjRh9C10YHRgtCy0L4g0YHRgtCw0YLQtdC5LCDQstGL0LLQvtC00LjQvNC+0LUg0LIgRkFRIEV4cGxvcmVyINCyINC+0LHRidC10LTQvtGB0YLRg9C/0L3QvtC8INC40L3RgtC10YDRhNC10LnRgdC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgam91cm5hbCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JzQsNC60YHQuNC80LDQu9GM0L3QvtC1INC60L7Qu9C40YfQtdGB0YLQstC+INGB0YLQsNGC0LXQuSwg0LLRi9Cy0L7QtNC40LzRi9GFINCyINC20YPRgNC90LDQu9C1IEZBUSDQsiDQuNC90YLQtdGA0YTQtdC50YHQtSDQsNCz0LXQvdGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHJlc3VsdCBvZiBhIHNlYXJjaCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JzQsNC60YHQuNC80LDQu9GM0L3QvtC1INC60L7Qu9C40YfQtdGB0YLQstC+INGB0YLQsNGC0LXQuSwg0LLRi9Cy0L7QtNC40LzRi9GFINCyINGA0LXQt9GD0LvRjNGC0LDRgtC1INC/0L7QuNGB0LrQsCDQsiDQuNC90YLQtdGA0YTQtdC50YHQtSDQsNCz0LXQvdGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHJlc3VsdCBvZiBhIHNlYXJjaCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JzQsNC60YHQuNC80LDQu9GM0L3QvtC1INC60L7Qu9C40YfQtdGB0YLQstC+INGB0YLQsNGC0LXQuSwg0LLRi9Cy0L7QtNC40LzRi9GFINCyINGA0LXQt9GD0LvRjNGC0LDRgtC1INC/0L7QuNGB0LrQsCDQsiDQuNC90YLQtdGA0YTQtdC50YHQtSDQutC70LjQtdC90YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgcmVzdWx0IG9mIGEgc2VhcmNoIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JzQsNC60YHQuNC80LDQu9GM0L3QvtC1INC60L7Qu9C40YfQtdGB0YLQstC+INGB0YLQsNGC0LXQuSwg0LLRi9Cy0L7QtNC40LzRi9GFINCyINGA0LXQt9GD0LvRjNGC0LDRgtC1INC/0L7QuNGB0LrQsCDQsiDQvtCx0YnQtdC00L7RgdGC0YPQv9C90L7QvCDQuNC90YLQtdGA0YTQtdC50YHQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIEV4cGxvcmVyIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQnNCw0LrRgdC40LzQsNC70YzQvdGL0Lkg0YDQsNC30LzQtdGAINC30LDQs9C+0LvQvtCy0LrQvtCyINCyINGB0YLQsNGC0YzQtSBGQVEg0L/QvtC60LDQt9GL0LLQsNC10LzRi9GFINCyINC+0LHQt9C+0YDQtSBGQVEg0LIg0LjQvdGC0LXRgNGE0LXQudGB0LUg0LDQs9C10L3RgtCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgRXhwbG9yZXIgaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Cc0LDQutGB0LjQvNCw0LvRjNC90YvQuSDRgNCw0LfQvNC10YAg0LfQsNCz0L7Qu9C+0LLQutC+0LIg0LIg0YHRgtCw0YLRjNC1IEZBUSDQv9C+0LrQsNC30YvQstCw0LXQvNGL0YUg0LIg0L7QsdC30L7RgNC1IEZBUSDQsiDQuNC90YLQtdGA0YTQtdC50YHQtSDQutC70LjQtdC90YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIEV4cGxvcmVyIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JzQsNC60YHQuNC80LDQu9GM0L3Ri9C5INGA0LDQt9C80LXRgCDQt9Cw0LPQvtC70L7QstC60L7QsiDQsiDRgdGC0LDRgtGM0LUgRkFRINC/0L7QutCw0LfRi9Cy0LDQtdC80YvRhSDQsiDQvtCx0LfQvtGA0LUgRkFRINCyINC/0YPQsdC70LjRh9C90L7QvCDQuNC90YLQtdGA0YTQtdC50YHQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIFNlYXJjaCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JzQsNC60YHQuNC80LDQu9GM0L3Ri9C5INGA0LDQt9C80LXRgCDQt9Cw0LPQvtC70L7QstC60L7QsiDQsiDRgdGC0LDRgtGM0LUgRkFRINC/0L7QutCw0LfRi9Cy0LDQtdC80YvRhSDQsiDQvtC60L3QtSDQv9C+0LjRgdC60LAgRkFRINCyINC40L3RgtC10YDRhNC10LnRgdC1INCw0LPQtdC90YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIFNlYXJjaCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JzQsNC60YHQuNC80LDQu9GM0L3Ri9C5INGA0LDQt9C80LXRgCDQt9Cw0LPQvtC70L7QstC60L7QsiDQsiDRgdGC0LDRgtGM0LUgRkFRINC/0L7QutCw0LfRi9Cy0LDQtdC80YvRhSDQsiDQvtC60L3QtSDQv9C+0LjRgdC60LAgRkFRINCyINC40L3RgtC10YDRhNC10LnRgdC1INC60LvQuNC10L3RgtCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgU2VhcmNoIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JzQsNC60YHQuNC80LDQu9GM0L3Ri9C5INGA0LDQt9C80LXRgCDQt9Cw0LPQvtC70L7QstC60L7QsiDQsiDRgdGC0LDRgtGM0LUgRkFRINC/0L7QutCw0LfRi9Cy0LDQtdC80YvRhSDQsiDQvtC60L3QtSDQv9C+0LjRgdC60LAgRkFRINCyINC+0LHRidC10LTQvtGB0YLRg9C/0L3QvtC8INC40L3RgtC10YDRhNC10LnRgdC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgam91cm5hbCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JzQsNC60YHQuNC80LDQu9GM0L3Ri9C5INGA0LDQt9C80LXRgCDQt9Cw0LPQvtC70L7QstC60L7QsiDQsiDRgdGC0LDRgtGM0LUgRkFRINC/0L7QutCw0LfRi9Cy0LDQtdC80YvRhSDQsiDQttGD0YDQvdCw0LvQtSBGQVEg0LIg0LjQvdGC0LXRgNGE0LXQudGB0LUg0LDQs9C10L3RgtCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gZ2VuZXJhdGUgSFRNTCBPcGVuU2VhcmNoIHByb2ZpbGUgZm9yIHNob3J0IEZBUSBzZWFyY2ggaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Cc0L7QtNGD0LvRjCDQtNC70Y8g0LPQtdC90LXRgNCw0YbQuNC4IEhUTUwgT3BlblNlYXJjaCDRiNCw0LHQu9C+0L3QvtCyINC00LvRjyDQsdGL0YHRgtGA0L7Qs9C+INC/0L7QuNGB0LrQsCDQsiBGQVEg0LIg0LjQvdGC0LXRgNGE0LXQudGB0LUg0LrQu9C40LXQvdGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBnZW5lcmF0ZSBIVE1MIE9wZW5TZWFyY2ggcHJvZmlsZSBmb3Igc2hvcnQgRkFRIHNlYXJjaCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Cc0L7QtNGD0LvRjCDQtNC70Y8g0LPQtdC90LXRgNCw0YbQuNC4IEhUTUwgT3BlblNlYXJjaCDRiNCw0LHQu9C+0L3QvtCyINC00LvRjyDQsdGL0YHRgtGA0L7Qs9C+INC/0L7QuNGB0LrQsCDQsiBGQVEg0LIg0L7QsdGJ0LXQtNC+0YHRgtGD0L/QvdC+0Lwg0LjQvdGC0LXRgNGE0LXQudGB0LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBnZW5lcmF0ZSBodG1sIE9wZW5TZWFyY2ggcHJvZmlsZSBmb3Igc2hvcnQgRkFRIHNlYXJjaC4nfSA9CiAgICAgICAgJ9Cc0L7QtNGD0LvRjCDQtNC70Y8g0LPQtdC90LXRgNCw0YbQuNC4IEhUTUwgT3BlblNlYXJjaCDRiNCw0LHQu9C+0L3QvtCyINC00LvRjyDQsdGL0YHRgtGA0L7Qs9C+INC/0L7QuNGB0LrQsCDQsiBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBGQVEgQXJ0aWNsZS4nfSA9ICfQndC+0LLQsNGPINGB0YLQsNGC0YzRjyDQsiBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBGQVEgYXJ0aWNsZXMgbmVlZCBhcHByb3ZhbCBiZWZvcmUgdGhleSBnZXQgcHVibGlzaGVkLid9ID0gJ9Cd0L7QstCw0Y8g0YHRgtCw0YLRjNGPIEZBUSDQv9C10YDQtdC0INC/0YPQsdC70LjQutCw0YbQuNC10Lkg0YLRgNC10LHRg9C10YIg0L7QtNC+0LHRgNC10L3QuNGPLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQmtC+0LvQuNGH0LXRgdGC0LLQviDRgdGC0LDRgtC10LksINCy0YvQstC+0LTQuNC80YvRhSDQsiBGQVEgRXhwbG9yZXIg0LIg0LjQvdGC0LXRgNGE0LXQudGB0LUg0LrQu9C40LXQvdGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQmtC+0LvQuNGH0LXRgdGC0LLQviDRgdGC0LDRgtC10LksINCy0YvQstC+0LTQuNC80YvRhSDQsiBGQVEgRXhwbG9yZXIg0LIg0L7QsdGJ0LXQtNC+0YHRgtGD0L/QvdC+0Lwg0LjQvdGC0LXRgNGE0LXQudGB0LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIG9uIGVhY2ggcGFnZSBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Ca0L7Qu9C40YfQtdGB0YLQstC+INGB0YLQsNGC0LXQuSwg0LLRi9Cy0L7QtNC40LzRi9GFINC90LAg0LrQsNC20LTQvtC5INGB0YLRgNCw0L3QuNGG0LUg0YDQtdC30YPQu9GM0YLQsNGC0LAg0L/QvtC40YHQutCwINCyICDQuNC90YLQtdGA0YTQtdC50YHQtSDQutC70LjQtdC90YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgb24gZWFjaCBwYWdlIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Ca0L7Qu9C40YfQtdGB0YLQstC+INGB0YLQsNGC0LXQuSwg0LLRi9Cy0L7QtNC40LzRi9GFINC90LAg0LrQsNC20LTQvtC5INGB0YLRgNCw0L3QuNGG0LUg0YDQtdC30YPQu9GM0YLQsNGC0LAg0L/QvtC40YHQutCwINCyINC+0LHRidC10LTQvtGB0YLRg9C/0L3QvtC8INC40L3RgtC10YDRhNC10LnRgdC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2Ygc2hvd24gaXRlbXMgaW4gbGFzdCBjaGFuZ2VzLid9ID0gJ9Ca0L7Qu9C40YfQtdGB0YLQstC+INC+0YLQvtCx0YDQsNC20LDQtdC80YvRhSDQv9C+0LfQuNGG0LjQuSDQsiDQv9C+0YHQu9C10LTQvdC40YUg0LjQt9C80LXQvdC10L3QuNGP0YUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBzaG93biBpdGVtcyBpbiBsYXN0IGNyZWF0ZWQuJ30gPSAn0JrQvtC70LjRh9C10YHRgtCy0L4g0L7RgtC+0LHRgNCw0LbQsNC10LzRi9GFINC/0L7Qt9C40YbQuNC5INCyINC90L7QstGL0YUg0YHRgtCw0YLRjNGP0YUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBzaG93biBpdGVtcyBpbiB0aGUgdG9wIDEwIGZlYXR1cmUuJ30gPSAn0JrQvtC70LjRh9C10YHRgtCy0L4g0L7RgtC+0LHRgNCw0LbQsNC10LzRi9GFINC/0L7Qt9C40YbQuNC5INCyINGE0YPQvdC60YbQuNC4IFRvcCAxMC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3V0cHV0IGZpbHRlciB0byBhZGQgSmF2YS1zY3JpcHQgdG8gQ3VzdG9tZXJUaWNrZXRNZXNzYWdlIHNjcmVlbi4nfSA9CiAgICAgICAgJ9CS0YvRhdC+0LTQvdC+0Lkg0YTQuNC70YzRgtGAINC00LvRjyDQtNC+0LHQsNCy0LvQtdC90LjRjyBKYXZhLXNjcmlwdCDQtNC70Y8g0Y3QutGA0LDQvdCwIEN1c3RvbWVyVGlja2V0TWVzc2FnZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3V0cHV0IGxpbWl0IGZvciB0aGUgcmVsYXRlZCBGQVEgYXJ0aWNsZXMuJ30gPSAn0JvQuNC80LjRgiDQtNC70Y8g0LLRi9Cy0L7QtNCwINGB0LLRj9C30LDQvdC90YvRhS/QutC+0L3RgtC10LrRgdGC0L3Ri9GFINGB0YLQsNGC0LXQuSBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIEZBUSBpdGVtcyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBGQVEgam91cm5hbCBvdmVydmlldy4nfSA9CiAgICAgICAgJ9Cf0LDRgNCw0LzQtdGC0YDRiyDQtNC70Y8g0YHRgtGA0LDQvdC40YbRiyAo0L3QsCDQutC+0YLQvtGA0L7QuSDQvtGC0L7QsdGA0LDQttCw0Y7RgtGB0Y8g0Y3Qu9C10LzQtdC90YLRiyBGQVEpINC/0YDQuCDQvtCx0LfQvtGA0LUg0LbRg9GA0L3QsNC70LAgRkFRINCyIHNtYWxsINGE0L7RgNC80LDRgtC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBGQVEgaXRlbXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgRkFRIG92ZXJ2aWV3Lid9ID0KICAgICAgICAn0J/QsNGA0LDQvNC10YLRgNGLINC00LvRjyDRgdGC0YDQsNC90LjRhtGLICjQvdCwINC60L7RgtC+0YDQvtC5INC+0YLQvtCx0YDQsNC20LDRjtGC0YHRjyDRjdC70LXQvNC10L3RgtGLIEZBUSkg0L/RgNC4INC+0LHQt9C+0YDQtSBGQVEg0LIgc21hbGwg0YTQvtGA0LzQsNGC0LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW50IHRoaXMgRkFRJ30gPSAn0J/QtdGH0LDRgtGMINGN0YLQvtCz0L4gRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBGQVEgUHJpbnQuJ30gPSAn0J/QtdGH0LDRgtGMINC/0YPQsdC70LjRh9C90L7QuSDRgdGC0LDRgtGM0LggRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRIFpvb20uJ30gPSAn0J/RgNC+0YHQvNC+0YLRgCDQv9GD0LHQu9C40YfQvdC+0Lkg0YHRgtCw0YLRjNC4IEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIEZBUSBzZWFyY2guJ30gPSAn0J/QvtC40YHQuiDRgdGC0LDRgtGM0Lgg0LIg0L/Rg9Cx0LvQuNGH0L3QvtC8IEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIEZBUS4nfSA9ICfQntCx0YnQtdC00L7RgdGC0YPQv9C90YvQuS/Qv9GD0LHQu9C40YfQvdGL0LkgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydRdWV1ZSBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICfQntGH0LXRgNC10LTRjCDQvdCwINC+0LTQvtCx0YDQtdC90LjQtSDRgdGC0LDRgtC10LkgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRlcyBmb3Igdm90aW5nLiBLZXkgbXVzdCBiZSBpbiBwZXJjZW50Lid9ID0gJ9Ce0YbQtdC90LrQuCDQtNC70Y8g0LPQvtC70L7RgdC+0LLQsNC90LjRjy4g0JrQu9GO0Ycg0LTQvtC70LbQtdC9INCx0YvRgtGMINC30LDQtNCw0L0g0LIg0L/RgNC+0YbQtdC90YLQsNGFLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTJ30gPSAnUyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggRkFRJ30gPSAn0J/QvtC40YHQuiDQsiBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIEZBUSBTbWFsbC4nfSA9ICfQn9C+0LjRgdC6INCyIEZBUSDRgdC+0LrRgNCw0YnQtdC90L3Ri9C5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggRkFRLid9ID0gJ9Cf0L7QuNGB0Log0LIgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgaG93IG1hbnkgaXRlbXMgc2hvdWxkIGJlIHNob3duIGluIEpvdXJuYWwgT3ZlcnZpZXcgIlNtYWxsIiBieSBkZWZhdWx0Lid9ID0KICAgICAgICAn0JLRi9Cx0LXRgNC40YLQtSwg0YHQutC+0LvRjNC60L4g0Y3Qu9C10LzQtdC90YLQvtCyINC00L7Qu9C20L3QviDQvtGC0L7QsdGA0LDQttCw0YLRjNGB0Y8g0LIg0L7QsdC30L7RgNC1INC20YPRgNC90LDQu9CwIMKr0JrRgNCw0YLQutC40LnCuyDQv9C+INGD0LzQvtC70YfQsNC90LjRji4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGhvdyBtYW55IGl0ZW1zIHNob3VsZCBiZSBzaG93biBpbiBPdmVydmlldyAiU21hbGwiIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICfQktGL0LHQtdGA0LjRgtC1LCDRgdC60L7Qu9GM0LrQviDRjdC70LXQvNC10L3RgtC+0LIg0LTQvtC70LbQvdC+INC+0YLQvtCx0YDQsNC20LDRgtGM0YHRjyDQsiDQvtCx0LfQvtGA0LUgwqvQmtGA0LDRgtC60LjQucK7INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBBZ2VudEZBUVpvb20uJ30gPQogICAgICAgICfQl9Cw0LTQsNC10YIg0LLRi9GB0L7RgtGDICjQsiDQv9C40LrRgdC10LvQsNGFKSDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQtNC70Y8gaW5saW5lIEhUTUwg0L/QvtC70LXQuSDQsiBBZ2VudEZBUVpvb20uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZGVmYXVsdCBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEN1c3RvbWVyRkFRWm9vbSAoYW5kIFB1YmxpY0ZBUVpvb20pLid9ID0KICAgICAgICAn0JfQsNC00LDQtdGCINCy0YvRgdC+0YLRgyAo0LIg0L/QuNC60YHQtdC70LDRhSkg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0LTQu9GPIGlubGluZSBIVE1MINC/0L7Qu9C10Lkg0LIgQ3VzdG9tZXJGQVFab29tICjQuCBQdWJsaWNGQVFab29tKS4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgbWF4aW11bSBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEFnZW50RkFRWm9vbS4nfSA9CiAgICAgICAgJ9CX0LDQtNCw0LXRgiDQvNCw0LrRgdC40LzQsNC70YzQvdGD0Y4g0LLRi9GB0L7RgtGDICjQsiDQv9C40LrRgdC10LvQsNGFKSDQtNC70Y8gaW5saW5lIEhUTUwg0L/QvtC70LXQuSDQsiBBZ2VudEZBUVpvb20uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgbWF4aW11bSBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEN1c3RvbWVyRkFRWm9vbSAoYW5kIFB1YmxpY0ZBUVpvb20pLid9ID0KICAgICAgICAn0JfQsNC00LDQtdGCINC80LDQutGB0LjQvNCw0LvRjNC90YPRjiDQstGL0YHQvtGC0YMgKNCyINC/0LjQutGB0LXQu9Cw0YUpINC00LvRjyBpbmxpbmUgSFRNTCDQv9C+0LvQtdC5INCyIEN1c3RvbWVyRkFRWm9vbSAo0LggUHVibGljRkFRWm9vbSkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgIkluc2VydCBGQVEgTGluayIgQnV0dG9uIGluIEFnZW50RkFRWm9vbVNtYWxsIGZvciBwdWJsaWMgRkFRIEFydGljbGVzLid9ID0KICAgICAgICAn0J/QvtC60LDQt9Cw0YLRjCDQutC90L7Qv9C60YMgIkluc2VydCBGQVEgTGluay/QktC60LvRjtGH0LjRgtGMINGB0YHRi9C70LrRgyDQvdCwIEZBUSIg0LIgQWdlbnRGQVFab29tU21hbGwg0LTQu9GPINC/0YPQsdC70LjRh9C90YvRhSDRgdGC0LDRgtC10LkgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93ICJJbnNlcnQgRkFRIFRleHQgJiBMaW5rIiAvICJJbnNlcnQgRnVsbCBGQVEgJiBMaW5rIiBCdXR0b24gaW4gQWdlbnRGQVFab29tU21hbGwgZm9yIHB1YmxpYyBGQVEgQXJ0aWNsZXMuJ30gPQogICAgICAgICfQn9C+0LrQsNC30LDRgtGMINC60L3QvtC/0LrRgyAiSW5zZXJ0IEZBUSBUZXh0ICYgTGluayIgLyAiSW5zZXJ0IEZ1bGwgRkFRICYgTGluayIvItCS0YHRgtCw0LLQuNGC0Ywg0YLQtdC60YHRgiBGQVEg0Lgg0YHQstGP0LfQsNGC0YwiL9CS0YHRgtCw0LLQuNGC0Ywg0L/QvtC70L3Ri9C5IEZBUSDQuCDRgdCy0Y/Qt9Cw0YLRjCIg0LIgQWdlbnRGQVFab29tU21hbGwg0LTQu9GPINC/0YPQsdC70LjRh9C90YvRhSDRgdGC0LDRgtC10LkgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93ICJJbnNlcnQgRkFRIFRleHQiIC8gIkluc2VydCBGdWxsIEZBUSIgQnV0dG9uIGluIEFnZW50RkFRWm9vbVNtYWxsLid9ID0KICAgICAgICAn0J/QvtC60LDQt9GL0LLQsNGC0Ywg0LrQvdC+0L/QutGDICLQktGB0YLQsNCy0LjRgtGMINGC0LXQutGB0YIgRkFRISAvICLQktGB0YLQsNCy0LjRgtGMINGB0YLQsNGC0YzRjiBGQVEg0L/QvtC70L3QvtGB0YLRjNGOIiDQvdCwINGN0LrRgNCw0L3QtSBBZ2VudEZBUVpvb21TbWFsbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBGQVEgQXJ0aWNsZSB3aXRoIEhUTUwuJ30gPSAn0J/QvtC60LDQt9GL0LLQsNGC0Ywg0YHRgtCw0YLRjNGOIEZBUSDQsiBIVE1MLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IEZBUSBwYXRoIHllcy9uby4nfSA9ICfQn9C+0LrQsNC30YvQstCw0YLRjCDQv9GD0YLRjCBGQVEg0LTQsC/QvdC10YIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgaW52YWxpZCBpdGVtcyBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0J/QvtC60LDQt9GL0LLQsNGC0Ywg0L3QtdC00LXQudGB0YLQstC40YLQtdC70YzQvdGL0LUg0YHRgtCw0YLRjNC4INCyINC+0LHQt9C+0YDQtSBGQVEgRXhwbG9yZXIg0LIg0LjQvdGC0LXRgNGE0LXQudGB0LUg0LDQs9C10L3RgtCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGl0ZW1zIG9mIHN1YmNhdGVnb3JpZXMuJ30gPSAn0J/QvtC60LDQt9GL0LLQsNGC0Ywg0YHQvtC00LXRgNC20LjQvNC+0LUg0L/QvtC00YDQsNC30LTQtdC70L7Qsi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBsYXN0IGNoYW5nZSBpdGVtcyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAn0J/QvtC60LDQt9GL0LLQsNGC0Ywg0L/QvtGB0LvQtdC00L3QuNC1INC40LfQvNC10L3QtdC90LjRjyDQsiDRg9C60LDQt9Cw0L3Ri9GFINC40L3RgtC10YDRhNC10LnRgdCw0YUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgbGFzdCBjcmVhdGVkIGl0ZW1zIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICfQn9C+0LrQsNC30YvQstCw0YLRjCDQvdC+0LLRi9C1INC/0YPQvdC60YLRiyDQsiDRg9C60LDQt9Cw0L3QvdGL0YUg0LjQvdGC0LXRgNGE0LXQudGB0LDRhS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyByZWxhdGVkIGFydGljbGVzIG9uIHNlcnZpY2UgY2hhbmdlIGV2ZW4gd2l0aCBlbXB0eSBzdWJqZWN0IGFuZCBib2R5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgdGhlIHN0YXJzIGZvciB0aGUgYXJ0aWNsZXMgd2l0aCBhIHJhdGluZyBlcXVhbCBvciBncmVhdGVyIGxpa2UgdGhlIGRlZmluZWQgdmFsdWUgKHNldCB2YWx1ZSBcJzBcJyB0byBkZWFjdGl2YXRlIHRoZSBvdXRwdXQpLid9ID0KICAgICAgICAn0J/QvtC60LDQt9GL0LLQsNGC0YwgItC30LLQtdC30LTRiyIg0LTQu9GPINGB0YLQsNGC0LXQuSDRgSDRgNC10LnRgtC40L3Qs9C+0Lwg0YDQsNCy0L3Ri9C8INC40LvQuCDQsdC+0LvRjNGI0LUg0LfQsNC00LDQvdC90L7Qs9C+INC30LTQtdGB0Ywg0LfQvdCw0YfQtdC90LjRjyAo0YPRgdGC0LDQvdC+0LLQuNGC0LUg0LIgIjAiINC00LvRjyDQvtGC0LrQu9GO0YfQtdC90LjRjyDQv9C+0LrQsNC30LApLsKgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgdG9wIDEwIGl0ZW1zIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICfQn9C+0LrQsNC30YvQstCw0YLRjCBUb3AgMTAg0LIg0YPQutCw0LfQsNC90L3Ri9GFINC40L3RgtC10YDRhNC10LnRgdCw0YUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgdm90aW5nIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICfQn9C+0LrQsNC30YvQstCw0YLRjCDQvtGG0LXQvdC60YMg0LIg0YPQutCw0LfQsNC90L3Ri9GFINC40L3RgtC10YDRhNC10LnRgdCw0YUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBsaW5raW5nIGEgRkFRIHdpdGggYW5vdGhlciBvYmplY3QgaW4gdGhlIHpvb20gdmlldyBvZiBzdWNoIEZBUSBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0J/QvtC60LDQt9GL0LLQsNC10YIg0L/Rg9C90LrRgiDQvNC10L3Rjiwg0L/QvtC30LLQvtC70Y/RjtGJ0LjQuSDRgdCy0Y/Qt9Cw0YLRjCDRgdGC0LDRgtGM0Y4gRkFRINGBINC00YDRg9Cz0LjQvCDQvtCx0YrQtdC60YLQvtC8INC/0YDQuCDQv9GA0L7RgdC80L7RgtGA0LUg0Y3RgtC+0Lkg0YHRgtCw0YLRjNC4INCyINC40L3RgtC10YDRhNC10LnRgdC1INCw0LPQtdC90YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIHRvIGRlbGV0ZSBhIEZBUSBpbiBpdHMgem9vbSB2aWV3IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQn9C+0LrQsNC30YvQstCw0LXRgiDQv9GD0L3QutGCINC80LXQvdGOLCDQv9C+0LfQstC+0LvRj9GO0YnQuNC5INGD0LTQsNC70LjRgtGMINGB0YLQsNGC0YzRjiBGQVEg0L/RgNC4INC/0YDQvtGB0LzQvtGC0YDQtSDRjdGC0L7QuSDRgdGC0LDRgtGM0Lgg0LIg0LjQvdGC0LXRgNGE0LXQudGB0LUg0LDQs9C10L3RgtCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBoaXN0b3J5IG9mIGEgRkFRIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Cf0L7QutCw0LfRi9Cy0LDQtdGCINC/0YPQvdC60YIg0LzQtdC90Y4sINC/0L7Qt9Cy0L7Qu9GP0Y7RidC40Lkg0LTQvtGB0YLRg9C/INC6INC40YHRgtC+0YDQuNC4INGB0YLQsNGC0YzQuCBGQVEg0L/RgNC4INC10LUg0L/RgNC+0YHQvNC+0YLRgNC1INCyINC40L3RgtC10YDRhNC10LnRgdC1INCw0LPQtdC90YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSBGQVEgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Cf0L7QutCw0LfRi9Cy0LDQtdGCINC/0YPQvdC60YIg0LzQtdC90Y4sINC/0L7Qt9Cy0L7Qu9GP0Y7RidC40Lkg0YDQtdC00LDQutGC0LjRgNC+0LLQsNGC0Ywg0YHRgtCw0YLRjNGOIEZBUSDQv9GA0Lgg0LXQtSDQv9GA0L7RgdC80L7RgtGA0LUg0LIg0LjQvdGC0LXRgNGE0LXQudGB0LUg0LDQs9C10L3RgtCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZ28gYmFjayBpbiB0aGUgRkFRIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0J/QvtC60LDQt9GL0LLQsNC10YIg0L/Rg9C90LrRgiDQvNC10L3Rjiwg0L/QvtC30LLQvtC70Y/RjtGJ0LjQuSDQstC10YDQvdGD0YLRjNGB0Y8g0L3QsNC30LDQtCDQv9GA0Lgg0L/RgNC+0YHQvNC+0YLRgNC1INGB0YLQsNGC0YzQuCBGQVEg0LIg0LjQvdGC0LXRgNGE0LXQudGB0LUg0LDQs9C10L3RgtCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSBGQVEgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Cf0L7QutCw0LfRi9Cy0LDQtdGCINC/0YPQvdC60YIg0LzQtdC90Y4g0J/QtdGH0LDRgtGMINC/0YDQuCDQv9GA0L7RgdC80L7RgtGA0LUg0YHRgtCw0YLRjNC4IEZBUSDQsiDQuNC90YLQtdGA0YTQtdC50YHQtSDQsNCz0LXQvdGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NvbHV0aW9uJ30gPSAn0KDQtdGI0LXQvdC40LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3ltcHRvbSd9ID0gJ9Ch0LjQvNC/0YLQvtC80YsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGV4dCBPbmx5J30gPSAn0KLQvtC70YzQutC+INGC0LXQutGB0YInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGRlZmF1bHQgbGFuZ3VhZ2VzIGZvciB0aGUgcmVsYXRlZCBGQVEgYXJ0aWNsZXMuJ30gPSAn0K/Qt9GL0LrQuCDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQtNC70Y8g0LjRgdC60L7QvNGL0YUg0YHRgtCw0YLQtdC5IEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgRkFRLCBlLmcuIEZBUSMsIEtCIywgTXlGQVEjLiBUaGUgZGVmYXVsdCBpcyBGQVEjLid9ID0KICAgICAgICAn0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAgRkFRLCDQvdCw0L/RgNC40LzQtdGALCBGQVEjLCBLQiMsIE15RkFRIy4g0J/QviDRg9C80L7Qu9GH0LDQvdC40Y4gLSBGQVEjLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnRkFRXCcgb2JqZWN0cyB1c2luZyB0aGUgXCdOb3JtYWxcJyBsaW5rIHR5cGUuJ30gPQogICAgICAgICfQrdGC0L7RgiDQv9Cw0YDQsNC80LXRgtGAINC30LDQtNCw0LXRgiDQstC+0LfQvNC+0LbQvdC+0YHRgtGMINGB0LLRj9C30LDRgtGMINC+0LHRitC10LrRgiBcJ0ZBUVwnINGBINC00YDRg9Cz0LjQvCDQv9C+0LTQvtCx0L3Ri9C8INC+0LHRitC10LrRgtC+0Lwg0LjRgdC/0L7Qu9GM0LfRg9GPINGC0LjQvyDRgdCy0Y/Qt9C4IFwnTm9ybWFsXCcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBkZWZpbmVzIHRoYXQgYSBcJ0ZBUVwnIG9iamVjdCBjYW4gYmUgbGlua2VkIHdpdGggb3RoZXIgXCdGQVFcJyBvYmplY3RzIHVzaW5nIHRoZSBcJ1BhcmVudENoaWxkXCcgbGluayB0eXBlLid9ID0KICAgICAgICAn0K3RgtC+0YIg0L/QsNGA0LDQvNC10YLRgCDQt9Cw0LTQsNC10YIg0LLQvtC30LzQvtC20L3QvtGB0YLRjCDRgdCy0Y/Qt9Cw0YLRjCDQvtCx0YrQtdC60YIgXCdGQVFcJyDRgSDQtNGA0YPQs9C40Lwg0L/QvtC00L7QsdC90YvQvCDQvtCx0YrQtdC60YLQvtC8INC40YHQv9C+0LvRjNC30YPRjyDRgtC40L8g0YHQstGP0LfQuCBcJ1BhcmVudENoaWxkXCcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBkZWZpbmVzIHRoYXQgYSBcJ0ZBUVwnIG9iamVjdCBjYW4gYmUgbGlua2VkIHdpdGggb3RoZXIgXCdUaWNrZXRcJyBvYmplY3RzIHVzaW5nIHRoZSBcJ05vcm1hbFwnIGxpbmsgdHlwZS4nfSA9CiAgICAgICAgJ9Ct0YLQvtGCINC/0LDRgNCw0LzQtdGC0YAg0LfQsNC00LDQtdGCINCy0L7Qt9C80L7QttC90L7RgdGC0Ywg0YHQstGP0LfQsNGC0Ywg0L7QsdGK0LXQutGCIFwnRkFRXCcg0YEg0LTRgNGD0LPQuNC80Lgg0L7QsdGK0LXQutGC0LDQvNC4INGC0LjQv9CwICLQl9Cw0Y/QstC60LAiINC40YHQv9C+0LvRjNC30YPRjyDRgtC40L8g0YHQstGP0LfQuCBcJ05vcm1hbFwnLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnVGlja2V0XCcgb2JqZWN0cyB1c2luZyB0aGUgXCdQYXJlbnRDaGlsZFwnIGxpbmsgdHlwZS4nfSA9CiAgICAgICAgJ9Ct0YLQvtGCINC/0LDRgNCw0LzQtdGC0YAg0LfQsNC00LDQtdGCINCy0L7Qt9C80L7QttC90L7RgdGC0Ywg0YHQstGP0LfQsNGC0Ywg0L7QsdGK0LXQutGCIFwnRkFRXCcg0YEg0LTRgNGD0LPQuNC80Lgg0L7QsdGK0LXQutGC0LDQvNC4INGC0LjQv9CwICLQl9Cw0Y/QstC60LAiINC40YHQv9C+0LvRjNC30YPRjyDRgtC40L8g0YHQstGP0LfQuCBcJ1BhcmVudENoaWxkXCcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBib2R5IGZvciBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZS4nfSA9ICfQotC10LvQviDQt9Cw0Y/QstC60Lgg0L3QsCDQvtC00L7QsdGA0LXQvdC40LUg0YHRgtCw0YLRjNC4IEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IHN1YmplY3QgZm9yIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlLiBQZXJtaXR0ZWQgbm90aWZpY2F0aW9uIHRhZ3MgYXJlIDxPVE9CT19GQVFfTlVNQkVSPiwgPE9UT0JPX0ZBUV9DQVRFR09SWUlEPiwgPE9UT0JPX0ZBUV9JVEVNSUQ+PiA8T1RPQk9fRkFRX1RJVExFPiBhbmQgPE9UT0JPX0ZBUV9TVEFURUlEPi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb29sYmFyIEl0ZW0gZm9yIGEgc2hvcnRjdXQuJ30gPSAn0J7Qv9C40YHQsNC90LjQtSDRj9GA0LvRi9C60LAo0LjQutC+0L3QutC4KSDQtNC70Y8g0L3QsNCy0LjQs9Cw0YbQuNC+0L3QvdC+0Lkg0L/QsNC90LXQu9C4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydleHRlcm5hbCAoY3VzdG9tZXIpJ30gPSAn0L7RgtC60YDRi9GC0L7QtSAo0LrQu9C40LXQvdGC0LDQvCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW50ZXJuYWwgKGFnZW50KSd9ID0gJ9GB0LvRg9C20LXQsdC90L7QtSAo0LDQs9C10L3RgtCw0LwpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3B1YmxpYyAoYWxsKSd9ID0gJ9C+0LHRidC10LTQvtGB0YLRg9C/0L3QvtC1ICjQstGB0LXQvCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncHVibGljIChwdWJsaWMpJ30gPSAn0L7QsdGJ0LXQtNC+0YHRgtGD0L/QvdGL0LkgKNC/0YPQsdC70LjRh9C90YvQuSknOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdObycsCiAgICAnT2snLAogICAgJ1NldHRpbmdzJywKICAgICdTdWJtaXQnLAogICAgJ1RoaXMgbWlnaHQgYmUgaGVscGZ1bCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Location="Kernel/Language/sr_Cyrl_FAQ.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnNyX0N5cmxfRkFROwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFBZGQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBGQVEgQXJ0aWNsZSd9ID0gJ9CU0L7QtNCw0ZggRkFRINGH0LvQsNC90LDQuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydLZXl3b3Jkcyd9ID0gJ9Ca0ZnRg9GH0L3QtSDRgNC10YfQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGNhdGVnb3J5IGlzIHJlcXVpcmVkLid9ID0gJ9Ca0LDRgtC10LPQvtGA0LjRmNCwINGY0LUg0L7QsdCw0LLQtdC30L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwcm92YWwnfSA9ICfQntC00L7QsdGA0LXRmtC1JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUNhdGVnb3J5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQ2F0ZWdvcnkgTWFuYWdlbWVudCd9ID0gJ9Cj0L/RgNCw0LLRmdCw0ZrQtSBGQVEg0LrQsNGC0LXQs9C+0YDQuNGY0LDQvNCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBGQVEgQ2F0ZWdvcnknfSA9ICfQlNC+0LTQsNGYIEZBUSDQutCw0YLQtdCz0L7RgNC40ZjRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEZBUSBDYXRlZ29yeSd9ID0gJ9Cj0YDQtdC00LggRkFRINC60LDRgtC10LPQvtGA0LjRmNGDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBjYXRlZ29yeSd9ID0gJ9CU0L7QtNCw0Zgg0LrQsNGC0LXQs9C+0YDQuNGY0YMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENhdGVnb3J5J30gPSAn0JTQvtC00LDRmCDQutCw0YLQtdCz0L7RgNC40ZjRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENhdGVnb3J5J30gPSAn0KPRgNC10LTQuCDQutCw0YLQtdCz0L7RgNC40ZjRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWJjYXRlZ29yeSBvZid9ID0gJ9Cf0L7QtNC60LDRgtC10LPQvtGA0LjRmNCwINC+0LQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhdCBsZWFzdCBvbmUgcGVybWlzc2lvbiBncm91cC4nfSA9ICfQnNC+0LvQuNC80L4g0LTQsCDQuNC30LDQsdC10YDQtdGC0LUg0LHQsNGAINGY0LXQtNC90YMg0LPRgNGD0L/RgyDQtNC+0LfQstC+0LvQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgZ3JvdXBzIHRoYXQgY2FuIGFjY2VzcyBhcnRpY2xlcyBpbiB0aGlzIGNhdGVnb3J5Lid9ID0gJ9CT0YDRg9C/0LUg0L7Qv9C10YDQsNGC0LXRgNCwINC60L7RmNC1INC80L7Qs9GDINC/0YDQuNGB0YLRg9C/0LjRgtC4INGH0LvQsNC90YbQuNC80LAg0YMg0L7QstC+0Zgg0LrQsNGC0LXQs9C+0YDQuNGY0LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dpbGwgYmUgc2hvd24gYXMgY29tbWVudCBpbiBFeHBsb3Jlci4nfSA9ICfQkdC40ZvQtSDQv9GA0LjQutCw0LfQsNC90L4g0LrQsNC+INC60L7QvNC10L3RgtCw0YAg0YMg0JjRgdGC0YDQsNC20LjQstCw0YfRgy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNhdGVnb3J5Pyd9ID0gJ9CU0LAg0LvQuCDRgdGC0LLQsNGA0L3QviDQttC10LvQuNGC0LUg0LTQsCDQvtCx0YDQuNGI0LXRgtC1INC+0LLRgyDQutCw0YLQtdCz0L7RgNC40ZjRgz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgY2F0ZWdvcnkuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIEZBUSBhcnRpY2xlIGFuZC9vciBpcyBwYXJlbnQgb2YgYXQgbGVhc3Qgb25lIG90aGVyIGNhdGVnb3J5J30gPQogICAgICAgICfQndC1INC80L7QttC10YLQtSDQvtCx0YDQuNGB0LDRgtC4INC+0LLRgyDQutCw0YLQtdCz0L7RgNC40ZjRgy4g0KPQv9C+0YLRgNC10LHRmdC10L3QsCDRmNC1INGDINCx0LDRgCDRmNC10LTQvdC+0LwgRkFRINGH0LvQsNC90LrRgyDQuC/QuNC70Lgg0ZjQtSDQvdCw0LTRgNC10ZLQtdC90LAg0L3QsNGY0LzQsNGa0LUg0ZjQtdC00L3QvtGYINC00YDRg9Cz0L7RmCDQutCw0YLQtdCz0L7RgNC40ZjQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGNhdGVnb3J5IGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBGQVEgYXJ0aWNsZShzKSd9ID0gJ9Ce0LLQsCDQutCw0YLQtdCz0L7RgNC40ZjQsCDRmNC1INGD0L/QvtGC0YDQtdCx0ZnQtdC90LAg0YMg0YHQu9C10LTQtdGb0LjQvCBGQVEg0YfQu9Cw0L3RhtC40LzQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGNhdGVnb3J5IGlzIHBhcmVudCBvZiB0aGUgZm9sbG93aW5nIHN1YmNhdGVnb3JpZXMnfSA9ICfQntCy0LAg0LrQsNGC0LXQs9C+0YDQuNGY0LAg0ZjQtSDQvdCw0LTRgNC10ZLQtdC90LAg0YHQu9C10LTQtdGb0LjQvCDQv9C+0LTQutCw0YLQtdCz0L7RgNC40ZjQsNC80LAnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgRkFRIGFydGljbGU/J30gPSAn0JTQsCDQu9C4INGB0YLQstCw0YDQvdC+INC20LXQu9C40YLQtSDQtNCwINC+0LHRgNC40YjQtdGC0LUg0L7QstCw0ZggRkFRINGH0LvQsNC90LDQuj8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRJ30gPSAnRkFRJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUV4cGxvcmVyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgRXhwbG9yZXInfSA9ICdGQVEg0L/RgNC10YLRgNCw0LbQuNCy0LDRhyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydRdWljayBTZWFyY2gnfSA9ICfQkdGA0LfQviDRgtGA0LDQttC10ZrQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXaWxkY2FyZHMgYXJlIGFsbG93ZWQuJ30gPSAn0I/QvtC60LXRgNGB0LrQuCDQt9C90LDRhtC4INGB0YMg0LTQvtC30LLQvtGZ0LXQvdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZHZhbmNlZCBTZWFyY2gnfSA9ICfQndCw0L/RgNC10LTQvdCwINC/0YDQtdGC0YDQsNCz0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3ViY2F0ZWdvcmllcyd9ID0gJ9Cf0L7QtNC60LDRgtC10LPQvtGA0LjRmNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlcyd9ID0gJ0ZBUSDRh9C70LDQvdGG0LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gc3ViY2F0ZWdvcmllcyBmb3VuZC4nfSA9ICfQn9C+0LTQutCw0YLQtdCz0L7RgNC40ZjQtSDQvdC40YHRgyDQv9GA0L7QvdCw0ZLQtdC90LUuJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUhpc3RvcnkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YnfSA9ICfQmNGB0YLQvtGA0LjRmNCwINC+0LQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBDb250ZW50J30gPSAn0KHQsNC00YDQttCw0Zgg0LjRgdGC0L7RgNC40ZjQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGV0aW1lJ30gPSAn0JLRgNC10LzQtSDQutGA0LXQuNGA0LDRmtCwJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUpvdXJuYWxPdmVydmlld1NtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBGQVEgSm91cm5hbCBkYXRhIGZvdW5kLid9ID0gJ9Cd0LjRgdGDINC/0YDQvtC90LDRktC10L3QuCDQv9C+0LTQsNGG0LggRkFRINC00L3QtdCy0L3QuNC60LAuJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUxhbmd1YWdlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgTGFuZ3VhZ2UgTWFuYWdlbWVudCd9ID0gJ9Cj0L/RgNCw0LLRmdCw0ZrQtSBGQVEg0ZjQtdC30LjRhtC40LzQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIExhbmd1YWdlJ30gPSAn0JTQvtC00LDRmCBGQVEg0ZjQtdC30LjQuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEZBUSBMYW5ndWFnZSd9ID0gJ9Cj0YDQtdC00LggRkFRINGY0LXQt9C40LonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlIHRoaXMgZmVhdHVyZSBpZiB5b3Ugd2FudCB0byB3b3JrIHdpdGggbXVsdGlwbGUgbGFuZ3VhZ2VzLid9ID0KICAgICAgICAn0KPQv9C+0YLRgNC10LHQuNGC0LUg0L7QstGDINGE0YPQvdC60YbQuNGY0YMg0LDQutC+INC20LXQu9C40YLQtSDQtNCwINC60L7RgNC40YHRgtC40YLQtSDQstC40YjQtSDRmNC10LfQuNC60LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBsYW5ndWFnZSd9ID0gJ9CU0L7QtNCw0Zgg0ZjQtdC30LjQuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgTGFuZ3VhZ2UnfSA9ICfQlNC+0LTQsNGYINCI0LXQt9C40LonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBMYW5ndWFnZSd9ID0gJ9Cj0YDQtdC00Lgg0IjQtdC30LjQuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBsYW5ndWFnZS4gSXQgaXMgdXNlZCBpbiBhdCBsZWFzdCBvbmUgRkFRIGFydGljbGUhJ30gPQogICAgICAgICfQndC1INC80L7QttC10YLQtSDQvtCx0YDQuNGB0LDRgtC4INC+0LLQsNGYINGY0LXQt9C40LouINCj0L/QvtGC0YDQtdCx0ZnQtdC9INGY0LUg0YMg0LHQsNGAINGY0LXQtNC90L7QvCBGQVEg0YfQu9Cw0L3QutGDISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGxhbmd1YWdlIGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBGQVEgQXJ0aWNsZShzKSd9ID0gJ9Ce0LLQsNGYINGY0LXQt9C40Log0ZjQtSDRg9C/0L7RgtGA0LXQsdGZ0LXQvSDRgyDRgdC70LXQtNC10ZvQuNC8IEZBUSDRh9C70LDQvdGG0LjQvNCwJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUU92ZXJ2aWV3TmF2QmFyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAn0J/QvtC00LXRiNCw0LLQsNGa0LUg0LrQvtC90YLQtdC60YHRgtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBhcnRpY2xlcyBwZXIgcGFnZSd9ID0gJ0ZBUSDRh9C70LDQvdCw0LrQsCDQv9C+INGB0YLRgNCw0L3QuCc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFPdmVydmlld1NtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBGQVEgZGF0YSBmb3VuZC4nfSA9ICfQndC40YHRgyDQv9GA0L7QvdCw0ZLQtdC90LggRkFRINC/0L7QtNCw0YbQuC4nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRUmVsYXRlZEFydGljbGVzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydvdXQgb2YgNSd9ID0gJ9C+0LQgNSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFTZWFyY2gKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0tleXdvcmQnfSA9ICfQmtGZ0YPRh9C90LAg0YDQtdGHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGUgKGUuIGcuIEVxdWFscyAxMCBvciBHcmVhdGVyVGhhbiA2MCknfSA9ICfQk9C70LDRgdCw0ZggKNC90L/RgCDRmNC10LTQvdCw0LrQviAxMCDQuNC70Lgg0LLQtdGb0LUg0L7QtCA2MCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0ZSAoZS4gZy4gRXF1YWxzIDI1JSBvciBHcmVhdGVyVGhhbiA3NSUpJ30gPSAn0J7RhtC10L3QuCAo0L3Qv9GAINGY0LXQtNC90LDQutC+IDI1JSDQuNC70Lgg0LLQtdGb0LUg0L7QtCA3NSUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FwcHJvdmVkJ30gPSAn0J7QtNC+0LHRgNC10L3Qvic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQgYnknfSA9ICfQn9C+0YHQu9C10LTRmtC4INGY0LUg0LzQtdGa0LDQvic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDcmVhdGUgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJ9CS0YDQtdC80LUg0LrRgNC10LjRgNCw0ZrQsCBGQVEg0YfQu9Cw0L3QutCwICjQv9GA0LUv0L/QvtGB0LvQtSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ3JlYXRlIFRpbWUgKGJldHdlZW4pJ30gPSAn0JLRgNC10LzQtSDQutGA0LXQuNGA0LDRmtCwIEZBUSDRh9C70LDQvdC60LAgKNC40LfQvNC10ZLRgyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ2hhbmdlIFRpbWUgKGJlZm9yZS9hZnRlciknfSA9ICfQktGA0LXQvNC1INC/0YDQvtC80LXQvdC1IEZBUSDRh9C70LDQvdC60LAgKNC/0YDQtS/Qv9C+0YHQu9C1KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDaGFuZ2UgVGltZSAoYmV0d2VlbiknfSA9ICfQktGA0LXQvNC1INC/0YDQvtC80LXQvdC1IEZBUSDRh9C70LDQvdC60LAgKNC40LfQvNC10ZLRgyknOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRU2VhcmNoT3BlblNlYXJjaERlc2NyaXB0aW9uRnVsbHRleHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUUZ1bGx0ZXh0J30gPSAnRkFRINGC0LXQutGB0YInOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRU2VhcmNoU21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBTZWFyY2gnfSA9ICdGQVEg0L/RgNC10YLRgNCw0LPQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9maWxlIFNlbGVjdGlvbid9ID0gJ9CY0LfQsdC+0YAg0L/RgNC+0YTQuNC70LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSd9ID0gJ9CT0LvQsNGBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHZvdGUgc2V0dGluZ3MnfSA9ICfQndC10LzQsCDQv9C+0LTQtdGI0LDQstCw0ZrQsCDQt9CwINCz0LvQsNGB0LDRmtC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmljIHZvdGVzJ30gPSAn0KHQv9C10YbQuNGE0LjRh9C90Lgg0LPQu9Cw0YHQvtCy0LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZS4gZy4gRXF1YWxzIDEwIG9yIEdyZWF0ZXJUaGFuIDYwJ30gPSAn0L3Qv9GAINGY0LXQtNC90LDQutC+IDEwINC40LvQuCDQstC10ZvQtSDQvtC0IDYwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGUnfSA9ICfQntGG0LXQvdCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHJhdGUgc2V0dGluZ3MnfSA9ICfQndC10LzQsCDQv9C+0LTQtdGI0LDQstCw0ZrQsCDQt9CwINC+0YbQtdGa0LjQstCw0ZrQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpYyByYXRlJ30gPSAn0KHQv9C10YbQuNGE0LjRh9C90LAg0L7RhtC10L3QsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlLiBnLiBFcXVhbHMgMjUlIG9yIEdyZWF0ZXJUaGFuIDc1JSd9ID0gJ9C90L/RgCDRmNC10LTQvdCw0LrQviAyNSUg0LjQu9C4INCy0LXRm9C1INC+0LQgNzUlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENyZWF0ZSBUaW1lJ30gPSAn0JLRgNC10LzQtSDQutGA0LXQuNGA0LDRmtCwIEZBUSDRh9C70LDQvdC60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ2hhbmdlIFRpbWUnfSA9ICfQktGA0LXQvNC1INC/0YDQvtC80LXQvdC1IEZBUSDRh9C70LDQvdC60LAnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRWm9vbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEluZm9ybWF0aW9uJ30gPSAnRkFRINC40L3RhNC+0YDQvNCw0YbQuNGY0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0aW5nJ30gPSAn0J7RhtC10ZrQuNCy0LDRmtC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGVzJ30gPSAn0JPQu9Cw0YHQvtCy0LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdm90ZXMgZm91bmQhJ30gPSAn0JPQu9Cw0YHQvtCy0Lgg0L3QuNGB0YMg0L/RgNC+0L3QsNGS0LXQvdC4ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB2b3RlcyBmb3VuZCEgQmUgdGhlIGZpcnN0IG9uZSB0byByYXRlIHRoaXMgRkFRIGFydGljbGUuJ30gPSAn0JPQu9Cw0YHQvtCy0Lgg0L3QuNGB0YMg0L/RgNC+0L3QsNGS0LXQvdC4ISDQkdGD0LTQuNGC0LUg0L/RgNCy0Lgg0LrQvtGY0Lgg0ZvQtSDQvtGG0LXQvdC40YLQuCDQvtCy0LDRmCBGQVEg0YfQu9Cw0L3QsNC6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEb3dubG9hZCBBdHRhY2htZW50J30gPSAn0J/RgNC10YPQt9C80Lgg0L/RgNC40LvQvtCzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIG9wZW4gbGlua3MgaW4gdGhlIGZvbGxvd2luZyBkZXNjcmlwdGlvbiBibG9ja3MsIHlvdSBtaWdodCBuZWVkIHRvIHByZXNzIEN0cmwgb3IgQ21kIG9yIFNoaWZ0IGtleSB3aGlsZSBjbGlja2luZyB0aGUgbGluayAoZGVwZW5kaW5nIG9uIHlvdXIgYnJvd3NlciBhbmQgT1MpLid9ID0KICAgICAgICAn0JTQsCDQsdC40YHRgtC1INC+0YLQstC+0YDQuNC70Lgg0LLQtdC30LUg0YMg0YHQu9C10LTQtdGb0LjQvCDQsdC70L7QutC+0LLQuNC80LAg0L7Qv9C40YHQsCwg0LzQvtC20LTQsCDRm9C10YLQtSDRgtGA0LXQsdCw0YLQuCDQtNCwINC/0YDQuNGC0LjRgdC90LXRgtC1IOKAnkN0cmzigJ0g0LjQu9C4IOKAnkNtZOKAnSDQuNC70Lgg4oCeU2hpZnTigJ0g0YLQsNGB0YLQtdGAINC00L7QuiDQuNGB0YLQvtCy0YDQtdC80LXQvdC+INC60LvQuNC60L3QtdGC0LUg0L3QsCDQstC10LfRgyAo0LfQsNCy0LjRgdC4INC+0LQg0LLQsNGI0LXQsyDQntChINC4INC/0YDQtdCz0LvQtdC00LDRh9CwKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG93IGhlbHBmdWwgd2FzIHRoaXMgYXJ0aWNsZT8gUGxlYXNlIGdpdmUgdXMgeW91ciByYXRpbmcgYW5kIGhlbHAgdG8gaW1wcm92ZSB0aGUgRkFRIERhdGFiYXNlLiBUaGFuayBZb3UhJ30gPQogICAgICAgICfQmtC+0LvQuNC60L4g0ZjQtSDQutC+0YDQuNGB0YLQsNC9INC+0LLQsNGYINGH0LvQsNC90LDQuj8g0JzQvtC70LjQvNC+INCy0LDRgSDQtNCwINC00LDRgtC1INCy0LDRiNGDINC+0YbQtdC90YMg0Lgg0L/QvtC80L7Qs9C90LXRgtC1INC/0L7QtNC40LfQsNGa0YMg0LrQstCw0LvQuNGC0LDRgtCwINCx0LDQt9C1INGH0LXRgdGC0L4g0L/QvtGB0YLQsNCy0ZnQsNC90LjRhSDQv9C40YLQsNGa0LAuINCl0LLQsNC70LAg0JLQsNC8ISAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnbm90IGhlbHBmdWwnfSA9ICfQvdC40ZjQtSDQutC+0YDQuNGB0L3Qvic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd2ZXJ5IGhlbHBmdWwnfSA9ICfQstGA0LvQviDQutC+0YDQuNGB0L3Qvic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFab29tU21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBGQVEgdGl0bGUgdG8gYXJ0aWNsZSBzdWJqZWN0J30gPSAn0JTQvtC00LDRmCDQvdCw0YHQu9C+0LIgRkFRINGH0LvQsNC90LrRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRkFRIFRleHQnfSA9ICfQo9C90LXRgdC4IEZBUSDRgtC10LrRgdGCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGdWxsIEZBUSd9ID0gJ9Cj0L3QtdGB0Lgg0LrQvtC80L/Qu9C10YLQsNC9IEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRkFRIExpbmsnfSA9ICfQo9C90LXRgdC4IEZBUSDQstC10LfRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRkFRIFRleHQgJiBMaW5rJ30gPSAn0KPQvdC10YHQuCBGQVEg0YLQtdC60YHRgiDQuCDQstC10LfRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRnVsbCBGQVEgJiBMaW5rJ30gPSAn0KPQvdC10YHQuCDQutC+0LzQv9C70LXRgtCw0L0gRkFRINC4INCy0LXQt9GDJzsKCiAgICAjIFRlbXBsYXRlOiBDdXN0b21lckZBUUV4cGxvcmVyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXRlc3QgdXBkYXRlZCBGQVEgYXJ0aWNsZXMnfSA9ICfQn9C+0YHQu9C10LTRmtC1INCw0LbRg9GA0LjRgNCw0L3QuCBGQVEg0YfQu9Cw0L3RhtC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEZBUSBhcnRpY2xlcyBmb3VuZC4nfSA9ICfQndC40YHRgyDQv9GA0L7QvdCw0ZLQtdC90LggRkFRINGH0LvQsNC90YbQuC4nOwoKICAgICMgVGVtcGxhdGU6IEN1c3RvbWVyRkFRUmVsYXRlZEFydGljbGVzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1pZ2h0IGJlIGhlbHBmdWwnfSA9ICfQntCy0L4g0LzQvtC20LUg0LTQsCDQsdGD0LTQtSDQvtC0INC/0L7QvNC+0ZvQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3VuZCBubyBoZWxwZnVsIHJlc291cmNlcyBmb3IgdGhlIHN1YmplY3QgYW5kIHRleHQuJ30gPSAn0JrQvtGA0LjRgdC90Lgg0YDQtdGB0YPRgNGB0Lgg0LfQsCDRg9C90LXRgtC4INC/0YDQtdC00LzQtdGCINC4INGC0LXQutGB0YIg0L3QuNGB0YMg0L/RgNC+0L3QsNGS0LXQvdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlIGEgc3ViamVjdCBvciB0ZXh0IHRvIGdldCBhIGxpc3Qgb2YgaGVscGZ1bCByZXNvdXJjZXMuJ30gPSAn0JfQsCDQu9C40YHRgtGDINC60L7RgNC40YHQvdC40YUg0YDQtdGB0YPRgNGB0LAsINC80L7Qu9C40LzQviDRg9C90LXRgdC40YLQtSDQv9GA0LXQtNC80LXRgiDQuNC70Lgg0YLQtdC60YHRgi4nOwoKICAgICMgVGVtcGxhdGU6IEN1c3RvbWVyRkFRU2VhcmNoCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGdWxsdGV4dCBzZWFyY2ggaW4gRkFRIGFydGljbGVzIChlLiBnLiAiSm9obipuIiBvciAiV2lsbCoiKSd9ID0gJ9Cf0L7RgtC/0YPQvdCwINGC0LXQutGB0YLRg9Cw0LvQvdCwINC/0YDQtdGC0YDQsNCz0LAg0YMgRkFRINGH0LvQsNC90YbQuNC80LAgKNC90L/RgC4gIkpvaG4qbiIg0LjQu9C4ICJXaWxsKiIpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGUgcmVzdHJpY3Rpb25zJ30gPSAn0J7Qs9GA0LDQvdC40YfQtdGa0LAg0LPQu9Cw0YHQsNGa0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSBGQVEgYXJ0aWNsZXMgd2l0aCB2b3Rlcy4uLid9ID0gJ9Ch0LDQvNC+IEZBUSDRh9C70LDQvdGG0Lgg0YHQsCDQs9C70LDRgdC+0LLQuNC80LAuLi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0ZSByZXN0cmljdGlvbnMnfSA9ICfQntCz0YDQsNC90LjRh9C10ZrQsCDQvtGG0LXRmtC40LLQsNGa0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSBGQVEgYXJ0aWNsZXMgd2l0aCByYXRlLi4uJ30gPSAn0KHQsNC80L4gRkFRINGH0LvQsNC90YbQuCDRgdCwINC+0YbQtdC90L7QvC4uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlc3RyaWN0aW9ucyd9ID0gJ9CS0YDQtdC80LXQvdGB0LrQsCDQvtCz0YDQsNC90LjRh9C10ZrQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IEZBUSBhcnRpY2xlcyBjcmVhdGVkJ30gPSAn0KHQsNC80L4gRkFRINGH0LvQsNC90YbQuCDQutGA0LXQuNGA0LDQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgRkFRIGFydGljbGVzIGNyZWF0ZWQgYmV0d2Vlbid9ID0gJ9Ch0LDQvNC+IEZBUSDRh9C70LDQvdGG0Lgg0LrRgNC10LjRgNCw0L3QuCDQuNC30LzQtdGS0YMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoLVByb2ZpbGUgYXMgVGVtcGxhdGU/J30gPSAn0J/RgNC+0YTQuNC7INC/0YDQtdGC0YDQsNCz0LUg0LrQsNC+INGI0LDQsdC70L7QvT8nOwoKICAgICMgVGVtcGxhdGU6IEN1c3RvbWVyRkFRWm9vbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJ0aWNsZSBOdW1iZXInfSA9ICfQkdGA0L7RmCDRh9C70LDQvdC60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIGZvciBhcnRpY2xlcyB3aXRoIGtleXdvcmQnfSA9ICfQotGA0LDQttC4INGH0LvQsNC90LrQtSDRgdCwINC60ZnRg9GH0L3QvtC8INGA0LXRh9C4JzsKCiAgICAjIFRlbXBsYXRlOiBQdWJsaWNGQVFTZWFyY2hPcGVuU2VhcmNoRGVzY3JpcHRpb25GQVFOdW1iZXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyd9ID0gJ9CI0LDQstC90L4nOwoKICAgICMgVGVtcGxhdGU6IFB1YmxpY0ZBUVNlYXJjaFJlc3VsdFNob3J0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydCYWNrIHRvIEZBUSBFeHBsb3Jlcid9ID0gJ9Cd0LDQt9Cw0LQg0L3QsCBGQVEg0L/RgNC10YLRgNCw0LbQuNCy0LDRhyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFBZGQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkIHJ3IHBlcm1pc3Npb24hJ30gPSAn0J/QvtGC0YDQtdCx0L3QsCDQstCw0Lwg0ZjQtSDigJ5yd+KAnSDQtNC+0LfQstC+0LvQsCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY2F0ZWdvcmllcyBmb3VuZCB3aGVyZSB1c2VyIGhhcyByZWFkL3dyaXRlIHBlcm1pc3Npb25zISd9ID0gJ9Ca0LDRgtC10LPQvtGA0LjRmNC1INGDINC60L7RmNC+0Zgg0LrQvtGA0LjRgdC90LjQuiDQuNC80LAg0L/RgNC40YHRgtGD0L8g0LHQtdC3INC+0LPRgNCw0L3QuNGH0LXRmtCwINC90LjRgdGDINC/0YDQvtC90LDRktC10L3QtSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGVmYXVsdCBsYW5ndWFnZSBmb3VuZCBhbmQgY2FuXCd0IGNyZWF0ZSBhIG5ldyBvbmUuJ30gPSAn0J3QuNGY0LUg0L/RgNC+0L3QsNGS0LXQvSDQv9C+0LTRgNCw0LfRg9C80LXQstCw0L3QuCDRmNC10LfQuNC6INC4INC90LUg0LzQvtC20LUg0YHQtSDQutGA0LXQuNGA0LDRgtC4INC90L7Qsi4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRQ2F0ZWdvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgQ2F0ZWdvcnlJRCEnfSA9ICfQn9C+0YLRgNC10LHQsNC9INCY0JQg0JrQsNGC0LXQs9C+0YDQuNGY0LUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgY2F0ZWdvcnkgc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJ9Ca0LDRgtC10LPQvtGA0LjRmNCwINGC0YDQtdCx0LAg0LTQsCDQuNC80LAg0LjQvNC1ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGNhdGVnb3J5IGFscmVhZHkgZXhpc3RzJ30gPSAn0J7QstCwINC60LDRgtC10LPQvtGA0LjRmNCwINCy0LXRmyDQv9C+0YHRgtC+0ZjQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGNhdGVnb3J5IGFscmVhZHkgZXhpc3RzISd9ID0gJ9Ce0LLQsCDQutCw0YLQtdCz0L7RgNC40ZjQsCDQstC10Zsg0L/QvtGB0YLQvtGY0LghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIENhdGVnb3J5SUQgaXMgZ2l2ZW4hJ30gPSAn0J3QuNGY0LUg0LTQsNGCINCY0JQg0JrQsNGC0LXQs9C+0YDQuNGY0LUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGNhdGVnb3J5ICVzISd9ID0gJ9Cd0LjRmNC1INCx0LjQu9C+INC80L7Qs9GD0ZvQtSDQvtCx0YDQuNGB0LDRgtC4INC60LDRgtC10LPQvtGA0LjRmNGDICVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgY2F0ZWdvcnkgdXBkYXRlZCEnfSA9ICdGQVEg0LrQsNGC0LXQs9C+0YDQuNGY0LAg0LDQttGD0YDQuNGA0LDQvdCwISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgY2F0ZWdvcnkgYWRkZWQhJ30gPSAnRkFRINC60LDRgtC10LPQvtGA0LjRmNCwINC00L7QtNCw0YLQsCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIENhdGVnb3J5J30gPSAn0J7QsdGA0LjRiNC4INC60LDRgtC10LPQvtGA0LjRmNGDJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gSXRlbUlEIGlzIGdpdmVuISd9ID0gJ9Cd0LjRmNC1INC00LDRgiDQmNCUINCh0YLQsNCy0LrQtSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgbm8gcGVybWlzc2lvbiBmb3IgdGhpcyBjYXRlZ29yeSEnfSA9ICfQndC10LzQsNGC0LUg0LTQvtC30LLQvtC70YMg0LfQsCDQvtCy0YMg0LrQsNGC0LXQs9C+0YDQuNGY0YMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIEZBUSBhcnRpY2xlICVzISd9ID0gJ9Cd0LjRmNC1INCx0LjQu9C+INC80L7Qs9GD0ZvQtSDQvtCx0YDQuNGB0LDRgtC4IEZBUSDRh9C70LDQvdCw0LogJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUV4cGxvcmVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgQ2F0ZWdvcnlJRCAlcyBpcyBpbnZhbGlkLid9ID0gJ9CY0JQg0JrQsNGC0LXQs9C+0YDQuNGY0LUgJXMg0ZjQtSDQvdC10LjRgdC/0YDQsNCy0LDQvSEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRSGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gSXRlbUlEIGlzIGdpdmVuISd9ID0gJ9Cd0LUg0LzQvtC20LUg0YHQtSDQv9GA0LjQutCw0LfQsNGC0Lgg0LjRgdGC0L7RgNC40ZjQsNGCLCDRmNC10YAg0L3QuNGY0LUg0LTQsNGCINCY0JQg0KHRgtCw0LLQutC1ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSGlzdG9yeSd9ID0gJ0ZBUSDQuNGB0YLQvtGA0LjRmNCw0YInOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRSm91cm5hbC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEpvdXJuYWwnfSA9ICdGQVEg0LTQvdC10LLQvdC40LonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBjb25maWcgb3B0aW9uIEZBUTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3J30gPSAn0J/QvtGC0YDQtdCx0L3QsCDQutC+0L3RhNC40LPRg9GA0LDRhtC40L7QvdCwINC+0L/RhtC40ZjQsCBGQVE6OkZyb250ZW5kOjpPdmVydmlldyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWcgb3B0aW9uIEZBUTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3IG5lZWRzIHRvIGJlIGEgSEFTSCByZWYhJ30gPQogICAgICAgICfQmtC+0L3RhNC40LPRg9GA0LDRhtC40L7QvdCwINC+0L/RhtC40ZjQsCBGQVE6OkZyb250ZW5kOjpPdmVydmlldyDQvNC+0YDQsCDQtNCwINCx0YPQtNC1IEhBU0gg0YDQtdGE0LXRgNC10L3RhtCwISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjb25maWcgb3B0aW9uIGZvdW5kIGZvciB0aGUgdmlldyAiJXMiISd9ID0gJ9Cd0LjRmNC1INC/0YDQvtC90LDRktC10L3QsCDQutC+0L3RhNC40LPRg9GA0LDRhtC40L7QvdCwINGB0YLQsNCy0LrQsCDQt9CwINC/0YDQtdCz0LvQtdC0ICIlcyIhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUxhbmd1YWdlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBMYW5ndWFnZUlEIGlzIGdpdmVuISd9ID0gJ9Cd0LjRmNC1INC00LDRgiDQmNCUINCI0LXQt9C40LrQsCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIG5hbWUgaXMgcmVxdWlyZWQhJ30gPSAn0JjQvNC1INGY0LUg0L7QsdCw0LLQtdC30L3QviEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBsYW5ndWFnZSBhbHJlYWR5IGV4aXN0cyEnfSA9ICfQntCy0LDRmCDRmNC10LfQuNC6INCy0LXRmyDQv9C+0YHRgtC+0ZjQuCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgbGFuZ3VhZ2UgJXMhJ30gPSAn0J3QuNGY0LUg0LHQuNC70L4g0LzQvtCz0YPRm9C1INC+0LHRgNC40YHQsNGC0Lgg0ZjQtdC30LjQuiAlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGxhbmd1YWdlIHVwZGF0ZWQhJ30gPSAn0JDQttGD0YDQuNGA0LDQvSBGQVEg0ZjQtdC30LjQuiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGxhbmd1YWdlIGFkZGVkISd9ID0gJ9CU0L7QtNCw0YIgRkFRINGY0LXQt9C40LohJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBMYW5ndWFnZSAlcyd9ID0gJ9Ce0LHRgNC40YjQuCDRmNC10LfQuNC6ICVzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUVByaW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXN1bHQnfSA9ICfQoNC10LfRg9C70YLQsNGCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgdXBkYXRlJ30gPSAn0J/QvtGB0LvQtdC00ZrQtSDQsNC20YPRgNC40YDQsNGa0LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIER5bmFtaWMgRmllbGRzJ30gPSAnRkFRINC00LjQvdCw0LzQuNGH0LrQsCDQv9C+0ZnQsCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFSaWNoVGV4dC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gJXMgaXMgZ2l2ZW4hJ30gPSAn0J3QuNGY0LUg0LTQsNGCICVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgbG9hZCBMYW5ndWFnZU9iamVjdCEnfSA9ICfQiNC10LfQuNGH0LrQuCDQvtCx0ZjQtdC60YIg0YHQtSDQvdC1INC80L7QttC1INGD0YfQuNGC0LDRgtC4ISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFJlc3VsdCEnfSA9ICfQndC10LzQsCDRgNC10LfRg9C70YLQsNGC0LAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBOdW1iZXInfSA9ICdGQVEg0LHRgNC+0ZgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBDaGFuZ2VkIGJ5J30gPSAn0J/QvtGB0LvQtdC00ZrQuCDRmNC1INC80LXRmtCw0L4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ3JlYXRlIFRpbWUgKGJlZm9yZS9hZnRlciknfSA9ICfQktGA0LXQvNC1INC60YDQtdC40YDQsNGa0LAgRkFRINGB0YLQsNCy0LrQtSAo0L/RgNC1L9C/0L7RgdC70LUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJdGVtIENyZWF0ZSBUaW1lIChiZXR3ZWVuKSd9ID0gJ9CS0YDQtdC80LUg0LrRgNC10LjRgNCw0ZrQsCBGQVEg0YHRgtCw0LLQutC1ICjQuNC30LzQtdGS0YMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJdGVtIENoYW5nZSBUaW1lIChiZWZvcmUvYWZ0ZXIpJ30gPSAn0JLRgNC10LzQtSDQuNC30LzQtdC90LUgRkFRINGB0YLQsNCy0LrQtSAo0L/RgNC1L9C/0L7RgdC70LUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJdGVtIENoYW5nZSBUaW1lIChiZXR3ZWVuKSd9ID0gJ9CS0YDQtdC80LUg0LjQt9C80LXQvdC1IEZBUSDRgdGC0LDQstC60LUgKNC40LfQvNC10ZLRgyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXF1YWxzJ30gPSAn0IjQtdC00L3QsNC60L4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JlYXRlciB0aGFuJ30gPSAn0JLQtdGb0LUg0L7QtCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmVhdGVyIHRoYW4gZXF1YWxzJ30gPSAn0IjQtdC00L3QsNC60L4g0LjQu9C4INCy0LXRm9C1INC+0LQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU21hbGxlciB0aGFuJ30gPSAn0JzQsNGa0LUg0L7QtCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTbWFsbGVyIHRoYW4gZXF1YWxzJ30gPSAn0IjQtdC00L3QsNC60L4g0LjQu9C4INC80LDRmtC1INC+0LQnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRWm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBGaWxlSUQhJ30gPSAn0J/QvtGC0YDQtdCx0LDQvSDQmNCUINCf0L7RmdCwISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGFua3MgZm9yIHlvdXIgdm90ZSEnfSA9ICfQpdCy0LDQu9CwINC90LAg0LLQsNGI0LXQvCDQs9C70LDRgdGDISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSBhbHJlYWR5IHZvdGVkISd9ID0gJ9CS0LXRmyDRgdGC0LUg0LPQu9Cw0YHQsNC70LghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHJhdGUgc2VsZWN0ZWQhJ30gPSAn0J3QuNGY0LUg0LjQt9Cw0LHRgNCw0L3QsCDQvdC4INGY0LXQtNC90LAg0L7RhtC10L3QsCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHZvdGluZyBtZWNoYW5pc20gaXMgbm90IGVuYWJsZWQhJ30gPSAn0JzQtdGF0LDQvdC40LfQsNC8INC30LAg0LPQu9Cw0YHQsNGa0LUg0L3QuNGY0LUg0LDQutGC0LjQstC40YDQsNC9ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdm90ZSByYXRlIGlzIG5vdCBkZWZpbmVkISd9ID0gJ9Ce0YbQtdGa0LjQstCw0ZrQtSDQs9C70LDRgdCw0ZrQsCDQvdC40ZjQtSDQtNC10YTQuNC90LjRgdCw0L3QviEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0N1c3RvbWVyRkFRUHJpbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIFByaW50J30gPSAn0KjRgtCw0LzQv9CwIEZBUSDRh9C70LDQvdC60LAnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0N1c3RvbWVyRkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGVkIGJldHdlZW4nfSA9ICfQmtGA0LXQuNGA0LDQvSDQuNC30LzQtdGS0YMnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0N1c3RvbWVyRkFRWm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBJdGVtSUQhJ30gPSAn0J/QvtGC0YDQtdCx0LDQvSDQmNCUINCh0YLQsNCy0LrQtSEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL1B1YmxpY0ZBUUV4cGxvcmVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZXMgKG5ldyBjcmVhdGVkKSd9ID0gJ0ZBUSDRh9C70LDQvdGG0LggKNC90L7QstC+INC60YDQtdC40YDQsNC90LgpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlcyAocmVjZW50bHkgY2hhbmdlZCknfSA9ICdGQVEg0YfQu9Cw0L3RhtC4ICjQvdC10LTQsNCy0L3QviDQvNC10ZrQsNC90LgpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlcyAoVG9wIDEwKSd9ID0gJ0ZBUSDRh9C70LDQvdGG0LggKNC/0YDQstC40YUgMTApJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9QdWJsaWNGQVFSU1MucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFR5cGUgaXMgZ2l2ZW4hJ30gPSAn0J3QuNGY0LUg0LTQsNGCINCi0LjQvyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZSBtdXN0IGJlIGVpdGhlciBMYXN0Q3JlYXRlIG9yIExhc3RDaGFuZ2Ugb3IgVG9wMTAhJ30gPSAnVHlwZSDQvNC+0YDQsCDQsdC40YLQuCBMYXN0Q3JlYXRlLCBMYXN0Q2hhbmdlINC40LvQuCBUb3AxMCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBSU1MgZmlsZSEnfSA9ICdSU1Mg0LTQsNGC0L7RgtC10LrQsCDQvdC1INC80L7Rm9C1INCx0LjRgtC4INGB0L3QuNC80ZnQtdC90LAhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvSGVhZGVyTWV0YS9BZ2VudEZBUVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgKEZBUUZ1bGx0ZXh0KSd9ID0gJyVzIChGQVEg0YLQtdC60YHRgiknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9IZWFkZXJNZXRhL0N1c3RvbWVyRkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAtIEN1c3RvbWVyICglcyknfSA9ICclcyAtINCa0LvQuNGY0LXQvdGCICglcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgLSBDdXN0b21lciAoRkFRRnVsbHRleHQpJ30gPSAnJXMgLSDQmtC70LjRmNC10L3RgiAoRkFRINGC0LXQutGB0YIpJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvSGVhZGVyTWV0YS9QdWJsaWNGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gUHVibGljICglcyknfSA9ICclcyAtINCI0LDQstC90L4gKCVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAtIFB1YmxpYyAoRkFRRnVsbHRleHQpJ30gPSAnJXMgLSDQiNCw0LLQvdC+IChGQVEg0YLQtdC60YHRgiknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9MYXlvdXQvRkFRLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIHJhdGUhJ30gPSAn0J3QtdC+0L/RhdC+0LTQvdCwINC+0YbQtdC90LAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgYXJ0aWNsZSBpcyBlbXB0eSEnfSA9ICfQp9C70LDQvdCw0Log0ZjQtSDQv9GA0LDQt9Cw0L0hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhdGVzdCBjcmVhdGVkIEZBUSBhcnRpY2xlcyd9ID0gJ9Cf0L7RgdC70LXQtNGa0LUg0LrRgNC10LjRgNCw0L3QuCBGQVEg0YfQu9Cw0L3RhtC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvcCAxMCBGQVEgYXJ0aWNsZXMnfSA9ICfQndCw0ZjQv9C+0L/Rg9C70LDRgNC90LjRmNC40YUgMTAgRkFRINGH0LvQsNC90LDQutCwJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTGlua09iamVjdC9GQVEucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRlbnQgVHlwZSd9ID0gJ9Ci0LjQvyDRgdCw0LTRgNC20LDRmNCwJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvU3lzdGVtL0R5bmFtaWNGaWVsZC9Ecml2ZXIvRkFRLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgdGhlIGF0dHJpYnV0ZSB3aGljaCBGQVFzIHdpbGwgYmUgc2VhcmNoZWQgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXh0ZXJuYWwtc291cmNlIGtleSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgdGhlIHR5cGUgb2YgZGlzcGxheSd9ID0gJyc7CgogICAgIyBEYXRhYmFzZSBYTUwgLyBTT1BNIERlZmluaXRpb246IEZBUS5zb3BtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpbnRlcm5hbCd9ID0gJ9C40L3RgtC10YDQvdC+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2V4dGVybmFsJ30gPSAn0LXQutGB0YLQtdGA0L3Qvic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwdWJsaWMnfSA9ICfRmNCw0LLQvdC+JzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBmaWx0ZXIgZm9yIEhUTUwgb3V0cHV0IHRvIGFkZCBsaW5rcyBiZWhpbmQgYSBkZWZpbmVkIHN0cmluZy4gVGhlIGVsZW1lbnQgSW1hZ2UgYWxsb3dzIHR3byBpbnB1dCBraW5kcy4gRmlyc3QgdGhlIG5hbWUgb2YgYW4gaW1hZ2UgKGUuZy4gZmFxLnBuZykuIEluIHRoaXMgY2FzZSB0aGUgT1RPQk8gaW1hZ2UgcGF0aCB3aWxsIGJlIHVzZWQuIFRoZSBzZWNvbmQgcG9zc2liaWxpdHkgaXMgdG8gaW5zZXJ0IHRoZSBsaW5rIHRvIHRoZSBpbWFnZS4nfSA9CiAgICAgICAgJ9Ck0LjQu9GC0LXRgCDQt9CwIOKAnkhUTUzigJ0g0LjQt9C70LDQtyDQt9CwINC00L7QtNCw0LLQsNGa0LUg0LLQtdC30LUg0LjQt9CwINC00LXRhNC40L3QuNGB0LDQvdC+0LMg0L3QuNC30LAg0LfQvdCw0LrQvtCy0LAuINCV0LvQtdC80LXQvdGCINCh0LvQuNC60LAg0LTQvtC30LLQvtGZ0LDQstCwINC00LLQsCDQvdCw0YfQuNC90LAg0YPQvdC+0YHQsC4g0J/RgNCy0Lgg0ZjQtSDQvdCw0LfQuNCyINGB0LvQuNC60LUgKNC90L/RgCBmYXEucG5nKS4g0YMg0L7QstC+0Lwg0YHQu9GD0YfQsNGY0YMg0LHQuNGb0LUg0LrQvtGA0LjRiNGb0LXQvdCwIOKAnk9UT0JP4oCdINC/0YPRgtCw0ZrQsCDQtNC+INGB0LvQuNC60LUuICDQlNGA0YPQs9CwINC80L7Qs9GD0ZvQvdC+0YHRgiDRmNC1INGD0L3QvtGBINCy0LXQt9C1INC00L4g0YHQu9C40LrQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEZBUSBhcnRpY2xlJ30gPSAn0JTQvtC00LDRmCBGQVEg0YfQu9Cw0L3QsNC6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NTUyBjb2xvciBmb3IgdGhlIHZvdGluZyByZXN1bHQuJ30gPSAn4oCeQ1NT4oCdINCx0L7RmNCwINC30LAg0YDQtdC30YPQu9GC0LDRgiDQs9C70LDRgdCw0ZrQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgVGltZSBUbyBMZWF2ZSBmb3IgRkFRIGl0ZW1zLid9ID0gJ9CS0YDQtdC80LUg0L7RgdC70L7QsdCw0ZLQsNGa0LAg0LrQtdGI0LAg0LfQsCBGQVEg0YHRgtCw0LLQutC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSBNYW5hZ2VtZW50J30gPSAn0KPQv9GA0LDQstGZ0LDRmtC1INC60LDRgtC10LPQvtGA0LjRmNCw0LzQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSBNYW5hZ2VtZW50Lid9ID0gJ9Cj0L/RgNCw0LLRmdCw0ZrQtSDQutCw0YLQtdCz0L7RgNC40ZjQsNC80LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBQcmludC4nfSA9ICfQqNGC0LDQvNC/0LDRmtC1INC60LvQuNGY0LXQvdGC0YHQutC+0LMgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgUmVsYXRlZCBBcnRpY2xlcyd9ID0gJ9Ch0YDQvtC00L3QuCBGQVEg0YfQu9Cw0L3RhtC4INGDINC40L3RgtC10YDRhNC10ZjRgdGDINC60LvQuNGY0LXQvdGC0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIFJlbGF0ZWQgQXJ0aWNsZXMuJ30gPSAn0KHRgNC+0LTQvdC4IEZBUSDRh9C70LDQvdGG0Lgg0YMg0LjQvdGC0LXRgNGE0LXRmNGB0YMg0LrQu9C40ZjQtdC90YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIFpvb20uJ30gPSAn0JTQtdGC0LDRmdC4INC60LvQuNGY0LXQvdGC0YHQutC+0LMgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgc2VhcmNoLid9ID0gJ9Cf0YDQtdGC0YDQsNCz0LAg0LrQu9C40ZjQtdC90YLRgdC60L7QsyBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUS4nfSA9ICfQmtC70LjRmNC10L3RgtGB0LrQuCBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlY2ltYWwgcGxhY2VzIG9mIHRoZSB2b3RpbmcgcmVzdWx0Lid9ID0gJ9CR0YDQvtGYINC00LXRhtC40LzQsNC70LAg0YMg0YDQtdC30YPQu9GC0LDRgtGDINCz0LvQsNGB0LDRmtCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IGNhdGVnb3J5IG5hbWUuJ30gPSAn0J3QsNC30LjQsiDQv9C+0LTRgNCw0LfRg9C80LXQstCw0L3QtSDQutCw0YLQtdCz0L7RgNC40ZjQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBsYW5ndWFnZSBmb3IgRkFRIGFydGljbGVzIG9uIHNpbmdsZSBsYW5ndWFnZSBtb2RlLid9ID0gJ9Cf0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC4INGY0LXQt9C40LogRkFRINGH0LvQsNC90LDQutCwINGDINGY0LXQtNC90L7RmNC10LfQuNGH0LrQvtC8INC90LDRh9C40L3RgyDRgNCw0LTQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBtYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duLid9ID0KICAgICAgICAn0J/QvtC00YDQsNC30YPQvNC10LLQsNC90LAg0LzQsNC60YHQuNC80LDQu9C90LAg0LTRg9C20LjQvdCwINC90LDRgdC70L7QstCwIEZBUSDRh9C70LDQvdC60LAg0LrQvtGY0LAg0ZvQtSDQsdC40YLQuCDQv9GA0LjQutCw0LfQsNC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgcHJpb3JpdHkgb2YgdGlja2V0cyBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9CiAgICAgICAgJ9Cf0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC4INC/0YDQuNC+0YDQuNGC0LXRgiDRgtC40LrQtdGC0LAg0LfQsCDQvtC00L7QsdGA0LDQstCw0ZrQtSBGQVEg0YfQu9Cw0L3QsNC60LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdGUgZm9yIEZBUSBlbnRyeS4nfSA9ICfQn9C+0LTRgNCw0LfRg9C80LXQstCw0L3QviDRgdGC0LDRmtC1IEZBUSDRg9C90L7RgdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXRlIG9mIHRpY2tldHMgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPSAn0J/QvtC00YDQsNC30YPQvNC10LLQsNC90L4g0YHRgtCw0ZrQtSDRgtC40LrQtdGC0LAg0LfQsCDQvtC00L7QsdGA0LDQstCw0ZrQtSBGQVEg0YfQu9Cw0L3QsNC60LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgdHlwZSBvZiB0aWNrZXRzIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0gJ9Cf0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC4INGC0LjQvyDRgtC40LrQtdGC0LAg0LfQsCDQvtC00L7QsdGA0LDQstCw0ZrQtSBGQVEg0YfQu9Cw0L3QsNC60LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgdmFsdWUgZm9yIHRoZSBBY3Rpb24gcGFyYW1ldGVyIGZvciB0aGUgcHVibGljIGZyb250ZW5kLiBUaGUgQWN0aW9uIHBhcmFtZXRlciBpcyB1c2VkIGluIHRoZSBzY3JpcHRzIG9mIHRoZSBzeXN0ZW0uJ30gPQogICAgICAgICfQn9C+0LTRgNCw0LfRg9C80LXQstCw0L3QsCDQstGA0LXQtNC90L7RgdGCINC30LAg4oCeQWN0aW9u4oCdINC/0LDRgNCw0LzQtdGC0LDRgCDRgyDRmNCw0LLQvdC+0Lwg0YTRgNC+0L3RgtC10L3QtNGDLiDQntCy0LDRmCDQv9Cw0YDQsNC80LXRgtCw0YAg0LrQvtGA0LjRgdGC0LUg0YHQutGA0LjQv9GC0LUg0YHQuNGB0YLQtdC80LAuICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgQWN0aW9ucyB3aGVyZSBhIHNldHRpbmdzIGJ1dHRvbiBpcyBhdmFpbGFibGUgaW4gdGhlIGxpbmtlZCBvYmplY3RzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBQbGVhc2Ugbm90ZSB0aGF0IHRoZXNlIEFjdGlvbnMgbXVzdCBoYXZlIHJlZ2lzdGVyZWQgdGhlIGZvbGxvd2luZyBKUyBhbmQgQ1NTIGZpbGVzOiBDb3JlLkFsbG9jYXRpb25MaXN0LmNzcywgQ29yZS5VSS5BbGxvY2F0aW9uTGlzdC5qcywgQ29yZS5VSS5UYWJsZS5Tb3J0LmpzLCBDb3JlLkFnZW50LlRhYmxlRmlsdGVycy5qcyBhbmQgQ29yZS5BZ2VudC5MaW5rT2JqZWN0LmpzLid9ID0KICAgICAgICAn0JTQtdGE0LjQvdC40YjQtSDQkNC60YbQuNGY0LUg0LPQtNC1INGY0LUg0LTRg9Cz0LzQtSDQv9C+0YHRgtCw0LLQutC4INC00L7RgdGC0YPQv9C90L4g0YMg0L/QvtCy0LXQt9Cw0L3QvtC8INCz0YDQsNGE0LjRh9C60L7QvCDQtdC70LXQvNC10L3RgtGDINC+0LHRmNC10LrRgtCwIChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuINCc0L7Qu9C40LzQviDQtNCwINC40LzQsNGC0LUg0L3QsCDRg9C80YMg0LTQsCDQvtCy0LUg0JDQutGG0LjRmNC1INC80L7RgNCw0ZjRgyDQtNCwINCx0YPQtNGDINGA0LXQs9C40YHRgtGA0L7QstCw0L3QtSDRgyDRgdC70LXQtNC10ZvQuNC8IEpTINC4IENTUyDQtNCw0YLQvtGC0LXQutCw0LzQsDogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMg0LggQ29yZS5BZ2VudC5MaW5rT2JqZWN0LmpzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgaWYgdGhlIEZBUSB0aXRsZSBzaG91bGQgYmUgY29uY2F0ZW5hdGVkIHRvIGFydGljbGUgc3ViamVjdC4nfSA9CiAgICAgICAgJ9Ce0LTRgNC10ZLRg9GY0LUg0LTQsCDQu9C4INC90LDRgdC70L7QsiBGQVEg0YLRgNC10LHQsCDQtNCwINCx0YPQtNC1INC00L7QtNCw0YIg0L3QsCDRgtC10LzRgyDRh9C70LDQvdC60LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB3aGljaCBjb2x1bW5zIGFyZSBzaG93biBpbiB0aGUgbGlua2VkIEZBUXMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGU6IE9ubHkgRkFRIGF0dHJpYnV0ZXMgYW5kIGR5bmFtaWMgZmllbGRzIChEeW5hbWljRmllbGRfTmFtZVgpIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgRkFRIGpvdXJuYWwuJ30gPQogICAgICAgICfQlNC10YTQuNC90LjRiNC1INC80L7QtNGD0Lsg0L/RgNC10LPQu9C10LTQsCDQt9CwINC80LDQu9C4INC/0YDQuNC60LDQtyBGQVEg0LTQvdC10LLQvdC40LrQsC4gJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBGQVEgbGlzdC4nfSA9CiAgICAgICAgJ9CU0LXRhNC40L3QuNGI0LUg0LzQvtC00YPQuyDQv9GA0LXQs9C70LXQtNCwINC30LAg0LzQsNC70Lgg0L/RgNC40LrQsNC3IEZBUSDQu9C40YHRgtC1LiAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiBhIEZBUSBzZWFyY2ggb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9CU0LXRhNC40L3QuNGI0LUg0L/QvtC00YDQsNC30YPQvNC10LLQsNC90Lgg0LDRgtGA0LjQsdGD0YIg0LfQsCDRgdC+0YDRgtC40YDQsNGa0LUgRkFRINC/0YDQtdGC0YDQsNC30LggRkFRICDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyAg0L7Qv9C10YDQsNGC0LXRgNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIGEgRkFRIHNlYXJjaCBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JTQtdGE0LjQvdC40YjQtSDQv9C+0LTRgNCw0LfRg9C80LXQstCw0L3QuCDQsNGC0YDQuNCx0YPRgiDQt9CwINGB0L7RgNGC0LjRgNCw0ZrQtSBGQVEg0YMg0L/RgNC10YLRgNCw0LfQuCBGQVEgINGDINC40L3RgtC10YDRhNC10ZjRgdGDINC60LvQuNGY0LXQvdGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gYSBGQVEgc2VhcmNoIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JTQtdGE0LjQvdC40YjQtSDQv9C+0LTRgNCw0LfRg9C80LXQstCw0L3QuCDQsNGC0YDQuNCx0YPRgiDQt9CwINGB0L7RgNGC0LjRgNCw0ZrQtSBGQVEg0YMg0L/RgNC10YLRgNCw0LfQuCBGQVEgINGDINGY0LDQstC90L7QvCDQuNC90YLQtdGA0YTQtdGY0YHRgy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQlNC10YTQuNC90LjRiNC1INC/0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC4INCw0YLRgNC40LHRg9GCINC30LAg0YHQvtGA0YLQuNGA0LDRmtC1IEZBUSDRgyBGQVEg0L/RgNC10YLRgNCw0LbQuNCy0LDRh9GDINGDINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/QtdGA0LDRgtC10YDQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQlNC10YTQuNC90LjRiNC1INC/0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC4INCw0YLRgNC40LHRg9GCINC30LAg0YHQvtGA0YLQuNGA0LDRmtC1IEZBUSDRgyBGQVEg0L/RgNC10YLRgNCw0LbQuNCy0LDRh9GDINGDINC40L3RgtC10YDRhNC10ZjRgdGDINC60LvQuNGY0LXQvdGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9CU0LXRhNC40L3QuNGI0LUg0L/QvtC00YDQsNC30YPQvNC10LLQsNC90Lgg0LDRgtGA0LjQsdGD0YIg0LfQsCDRgdC+0YDRgtC40YDQsNGa0LUgRkFRINGDIEZBUSDQv9GA0LXRgtGA0LDQttC40LLQsNGH0YMg0YMg0ZjQsNCy0L3QvtC8INC40L3RgtC10YDRhNC10ZjRgdGDLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ9CU0LXRhNC40L3QuNGI0LUg0L/QvtC00YDQsNC30YPQvNC10LLQsNC90Lgg0YDQtdC00L7RgdC70LXQtCBGQVEg0YMg0YDQtdC30YPQu9GC0LDRgtC40LzQsCBGQVEg0L/RgNC10YLRgNCw0LbQuNCy0LDRh9CwINGDINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/RgNC10YDQsNGC0LXRgNCwLiDQk9C+0YDQtTog0L3QsNGY0YHRgtCw0YDQuNGY0Lgg0L3QsCDQstGA0YXRgy4g0JTQvtC70LU6INC90LDRmNC90L7QstC40ZjQtSDQvdCwINCy0YDRhdGDLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ9CU0LXRhNC40L3QuNGI0LUg0L/QvtC00YDQsNC30YPQvNC10LLQsNC90Lgg0YDQtdC00L7RgdC70LXQtCBGQVEg0YMg0YDQtdC30YPQu9GC0LDRgtC40LzQsCBGQVEg0L/RgNC10YLRgNCw0LbQuNCy0LDRh9CwINGDINC40L3RgtC10YDRhNC10ZjRgdGDINC60LvQuNGY0LXQvdGC0LAuINCT0L7RgNC1OiDQvdCw0ZjRgdGC0LDRgNC40ZjQuCDQvdCwINCy0YDRhdGDLiDQlNC+0LvQtTog0L3QsNGY0L3QvtCy0LjRmNC1INC90LAg0LLRgNGF0YMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ9CU0LXRhNC40L3QuNGI0LUg0L/QvtC00YDQsNC30YPQvNC10LLQsNC90Lgg0YDQtdC00L7RgdC70LXQtCBGQVEg0YDQtdC30YPQu9GC0LDRgtC40LzQsCBGQVEg0L/RgNC10YLRgNCw0LbQuNCy0LDRh9CwINGDINGY0LDQstC90L7QvCDQuNC90YLQtdGA0YTQtdGY0YHRgy4g0JPQvtGA0LU6INC90LDRmNGB0YLQsNGA0LjRmNC4INC90LAg0LLRgNGF0YMuINCU0L7Qu9C1OiDQvdCw0ZjQvdC+0LLQuNGY0LUg0L3QsCDQstGA0YXRgy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAn0JTQtdGE0LjQvdC40YjQtSDQv9C+0LTRgNCw0LfRg9C80LXQstCw0L3QuCDRgNC10LTQvtGB0LvQtdC0IEZBUSDRgyDRgNC10LfRg9C70YLQsNGC0LjQvNCwINC/0YDQtdGC0YDQsNCz0LUg0YMg0LjQvdGC0LXRgNGE0LXRmNGB0YMg0L7Qv9GA0LXRgNCw0YLQtdGA0LAuINCT0L7RgNC1OiDQvdCw0ZjRgdGC0LDRgNC40ZjQuCDQvdCwINCy0YDRhdGDLiDQlNC+0LvQtTog0L3QsNGY0L3QvtCy0LjRmNC1INC90LAg0LLRgNGF0YMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ9CU0LXRhNC40L3QuNGI0LUg0L/QvtC00YDQsNC30YPQvNC10LLQsNC90Lgg0YDQtdC00L7RgdC70LXQtCBGQVEg0YMg0YDQtdC30YPQu9GC0LDRgtC40LzQsCDQv9GA0LXRgtGA0LDQs9C1INGDINC40L3RgtC10YDRhNC10ZjRgdGDINC60LvQuNGY0LXQvdGC0LAuINCT0L7RgNC1OiDQvdCw0ZjRgdGC0LDRgNC40ZjQuCDQvdCwINCy0YDRhdGDLiDQlNC+0LvQtTog0L3QsNGY0L3QvtCy0LjRmNC1INC90LAg0LLRgNGF0YMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICfQlNC10YTQuNC90LjRiNC1INC/0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC4INGA0LXQtNC+0YHQu9C10LQgRkFRINGDINGA0LXQt9GD0LvRgtCw0YLQuNC80LAg0L/RgNC10YLRgNCw0LPQtSDRgyDRmNCw0LLQvdC+0Lwg0LjQvdGC0LXRgNGE0LXRmNGB0YMuINCT0L7RgNC1OiDQvdCw0ZjRgdGC0LDRgNC40ZjQuCDQvdCwINCy0YDRhdGDLiDQlNC+0LvQtTog0L3QsNGY0L3QvtCy0LjRmNC1INC90LAg0LLRgNGF0YMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc2hvd24gRkFRIHNlYXJjaCBhdHRyaWJ1dGUgZm9yIEZBUSBzZWFyY2ggc2NyZWVuLid9ID0KICAgICAgICAn0JTQtdGE0LjQvdC40YjQtSDQv9C+0LTRgNCw0LfRg9C80LXQstCw0L3QuCDQv9GA0LjQutCw0LfQsNC90LggRkFRINCw0YLRgNC40LHRg9GCINC/0YDQtdGC0YDQsNCz0LUg0LfQsCBGQVEg0L/RgNC+0LfQvtGAINC30LAg0L/RgNC10YLRgNCw0LPRgy4gJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGhlaWdodCBmb3IgdGhlIHJpY2ggdGV4dCBlZGl0b3IgY29tcG9uZW50IGZvciB0aGlzIHNjcmVlbi4gRW50ZXIgbnVtYmVyIChwaXhlbHMpIG9yIHBlcmNlbnQgdmFsdWUgKHJlbGF0aXZlKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBpbmZvcm1hdGlvbiB0byBiZSBpbnNlcnRlZCBpbiBhIEZBUSBiYXNlZCBUaWNrZXQuICJGdWxsIEZBUSIgaW5jbHVkZXMgdGV4dCwgYXR0YWNobWVudHMgYW5kIGlubGluZSBpbWFnZXMuJ30gPQogICAgICAgICfQntC00YDQtdGS0YPRmNC1INC40L3RhNC+0YDQvNCw0YbQuNGY0LUg0LrQvtGY0LUg0ZvQtSDQsdC40YLQuCDRg9Cx0LDRh9C10L3QtSDRgyBGQVEg0LHQsNC30LjRgNCw0L3QuCDRgtC40LrQtdGCLiAi0JrQvtC80L/Qu9C10YLQsNC9IEZBUSIg0YPQutGZ0YPRh9GD0ZjQtSDRgtC10LrRgdGCLCDQv9GA0LjQu9C+0LPQtSDQuCDRg9C80LXRgtC90YPRgtC1INGB0LvQuNC60LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZC4gIkxpbWl0IiBkZWZpbmVzIHRoZSBudW1iZXIgb2YgZW50cmllcyBkaXNwbGF5ZWQgYnkgZGVmYXVsdC4gIkdyb3VwIiBpcyB1c2VkIHRvIHJlc3RyaWN0IGFjY2VzcyB0byB0aGUgcGx1Z2luIChlLiBnLiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgaW5kaWNhdGVzIGlmIHRoZSBwbHVnaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIGlmIHRoZSB1c2VyIG5lZWRzIHRvIGVuYWJsZSBpdCBtYW51YWxseS4nfSA9CiAgICAgICAgJ9CU0LXRhNC40L3QuNGI0LUg0L/QvtC30LDQtNC40L3RgdC60LUg0L/QsNGA0LDQvNC10YLRgNC1INC30LAg0LrQvtC90YLRgNC+0LvQvdGDINGC0LDQsdC70YMuICLQm9C40LzQuNGCIiDQtNC10YTQuNC90LjRiNC1INCx0YDQvtGYINC/0L7QtNGA0LXQt9GD0LzQtdCy0LDQvdC+INC/0YDQuNC60LDQt9Cw0L3QuNGFINGD0L3QvtGB0LAuICLQk9GA0YPQv9CwIiDRgdC1INC60L7RgNC40YHRgtC4INC00LAg0L7Qs9GA0LDQvdC40YfQuCDQv9GA0LjRgdGC0YPQvyDQtNC+0LTQsNGC0LrRgyAo0L3Qv9GALiDQk9GA0YPQv9CwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuItCf0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC+IiDRg9C60LDQt9GD0ZjQtSDQvdCwINGC0L4g0LTQsCDQu9C4INGY0LUg0LTQvtC00LDRgtCw0Log0L/QvtC00YDQsNC30YPQvNC10LLQsNC90L4g0LDQutGC0LjQstC40YDQsNC9INC40LvQuCDQtNCwINGY0LUg0L/QvtGC0YDQtdCx0L3QviDQtNCwINCz0LAg0LrQvtGA0LjRgdC90LjQuiDQvNCw0L3Rg9C10LvQvdC+INCw0LrRgtC40LLQuNGA0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIEZBUSBFeHBsb3Jlci4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ9CU0LXRhNC40L3QuNGI0LUg0L/RgNC40LrQsNC30LDQvdC1INC60L7Qu9C+0L3QtSDRgyBGQVEg0L/RgNC10YLRgNCw0LbQuNCy0LDRh9GDLiDQntCy0LAg0L7Qv9GG0LjRmNCwINC90LXQvNCwINGD0YLQuNGG0LDRmCDQvdCwINC/0L7Qt9C40YbQuNGY0LUg0LrQvtC70L7QvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBGQVEgam91cm5hbC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ9CU0LXRhNC40L3QuNGI0LUg0L/RgNC40LrQsNC30LDQvdC1INC60L7Qu9C+0L3QtSDRgyBGQVEg0LTQvdC10LLQvdC40LrRgy4g0J7QstCwINC+0L/RhtC40ZjQsCDQvdC10LzQsCDRg9GC0LjRhtCw0Zgg0L3QsCDQv9C+0LfQuNGG0LjRmNC1INC60L7Qu9C+0L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgRkFRIHNlYXJjaC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ9CU0LXRhNC40L3QuNGI0LUg0L/RgNC40LrQsNC30LDQvdC1INC60L7Qu9C+0L3QtSDRgyBGQVEg0L/RgNC10YLRgNCw0LfQuC4g0J7QstCwINC+0L/RhtC40ZjQsCDQvdC10LzQsCDRg9GC0LjRhtCw0Zgg0L3QsCDQv9C+0LfQuNGG0LjRmNC1INC60L7Qu9C+0L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB3aGVyZSB0aGUgXCdJbnNlcnQgRkFRXCcgbGluayB3aWxsIGJlIGRpc3BsYXllZC4nfSA9ICfQlNC10YTQuNC90LjRiNC1INCz0LTQtSDRm9C1ICLQo9Cx0LDRhtC4IEZBUSIg0LLQtdC30LAg0LHQuNGC0Lgg0L/RgNC40LrQsNC30LDQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbml0aW9uIG9mIEZBUSBpdGVtIGZyZWUgdGV4dCBmaWVsZC4nfSA9ICfQlNC10YTQuNC90LjRhtC40ZjQsCDQv9C+0ZnQsCDRgdC70L7QsdC+0LTQvdC+0LMg0YLQtdC60YHRgtCwINC30LAgRkFRINGB0YLQsNCy0LrRgy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoaXMgRkFRJ30gPSAn0J7QsdGA0LjRiNC4INC+0LLQsNGYIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9CU0LjQvdCw0LzQuNGH0LrQsCDQv9C+0ZnQsCDQv9GA0LjQutCw0YLQsNC90LAg0YMg0LXQutGA0LDQvdGDINC00L7QtNCw0LLQsNGa0LAgRkFRINGDINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/QtdGA0LDRgtC10YDQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JTQuNC90LDQvNC40YfQutCwINC/0L7RmdCwINC/0YDQuNC60LDQt9Cw0L3QsCDRgyDQtdC60YDQsNC90YMg0LjQt9C80LXQvdC1IEZBUSDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgb3ZlcnZpZXcgc2NyZWVuIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQlNC40L3QsNC80LjRh9C60LAg0L/QvtGZ0LAg0L/RgNC40LrQsNC30LDQvdCwINGDINC/0YDQtdCz0LvQtdC00YMgRkFRINGDINC40L3RgtC10YDRhNC10ZjRgdGDINC60LvQuNGY0LXQvdGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgb3ZlcnZpZXcgc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JTQuNC90LDQvNC40YfQutCwINC/0L7RmdCwINC/0YDQuNC60LDQt9Cw0L3QsCDRgyDQv9GA0LXQs9C70LXQtNGDIEZBUSDRgyDRmNCw0LLQvdC+0Lwg0LjQvdGC0LXRgNGE0LXRmNGB0YMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgcHJpbnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQlNC40L3QsNC80LjRh9C60LAg0L/QvtGZ0LAg0L/RgNC40LrQsNC30LDQvdCwINGDINC10LrRgNCw0L3RgyDRiNGC0LDQvNC/0LUgRkFRINGDINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/QtdGA0LDRgtC10YDQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBwcmludCBzY3JlZW4gb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9CU0LjQvdCw0LzQuNGH0LrQsCDQv9C+0ZnQsCDQv9GA0LjQutCw0LfQsNC90LAg0YMg0LXQutGA0LDQvdGDINGI0YLQsNC80L/QtSBGQVEg0YMg0LjQvdGC0LXRgNGE0LXRmNGB0YMg0LrQu9C40ZjQtdC90YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBwcmludCBzY3JlZW4gb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQlNC40L3QsNC80LjRh9C60LAg0L/QvtGZ0LAg0L/RgNC40LrQsNC30LDQvdCwINGDINC10LrRgNCw0L3RgyDRiNGC0LDQvNC/0LUgRkFRINGDINGY0LDQstC90L7QvCDQuNC90YLQtdGA0YTQtdGY0YHRgy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBzZWFyY2ggc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQlNC40L3QsNC80LjRh9C60LAg0L/QvtGZ0LAg0L/RgNC40LrQsNC30LDQvdCwINGDINC10LrRgNCw0L3RgyDQv9GA0LXRgtGA0LDQs9C1IEZBUSDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc2VhcmNoIHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JTQuNC90LDQvNC40YfQutCwINC/0L7RmdCwINC/0YDQuNC60LDQt9Cw0L3QsCDRgyDQtdC60YDQsNC90YMg0L/RgNC10YLRgNCw0LPQtSBGQVEg0YMg0LjQvdGC0LXRgNGE0LXRmNGB0YMg0LrQu9C40ZjQtdC90YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBzZWFyY2ggc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JTQuNC90LDQvNC40YfQutCwINC/0L7RmdCwINC/0YDQuNC60LDQt9Cw0L3QsCDRgyDQtdC60YDQsNC90YMg0L/RgNC10YLRgNCw0LPQtSBGQVEg0YMg0ZjQsNCy0L3QvtC8INC40L3RgtC10YDRhNC10ZjRgdGDLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHNtYWxsIGZvcm1hdCBvdmVydmlldyBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9CU0LjQvdCw0LzQuNGH0LrQsCDQv9C+0ZnQsCDQv9GA0LjQutCw0LfQsNC90LAg0YMg0L/RgNC10LPQu9C10LTRgyBGQVEg0LzQsNC70L7QsyDRhNC+0YDQvNCw0YLQsCDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgem9vbSBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9CU0LjQvdCw0LzQuNGH0LrQsCDQv9C+0ZnQsCDQv9GA0LjQutCw0LfQsNC90LAg0YMg0LTQtdGC0LDRmdC90L7QvCDQv9GA0LXQs9C70LXQtNGDIEZBUSDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgem9vbSBzY3JlZW4gb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9CU0LjQvdCw0LzQuNGH0LrQsCDQv9C+0ZnQsCDQv9GA0LjQutCw0LfQsNC90LAg0YMg0LTQtdGC0LDRmdC90L7QvCDQv9GA0LXQs9C70LXQtNGDIEZBUSDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQutC70LjRmNC10L3RgtCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHpvb20gc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JTQuNC90LDQvNC40YfQutCwINC/0L7RmdCwINC/0YDQuNC60LDQt9Cw0L3QsCDRgyDQtNC10YLQsNGZ0L3QvtC8INC/0YDQtdCz0LvQtdC00YMgRkFRINGDINGY0LDQstC90L7QvCDQuNC90YLQtdGA0YTQtdGY0YHRgy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGlzIEZBUSd9ID0gJ9Cj0YDQtdC00Lgg0L7QstCw0ZggRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSBtdWx0aXBsZSBsYW5ndWFnZXMgb24gRkFRIG1vZHVsZS4nfSA9ICfQkNC60YLQuNCy0LjRgNCw0ZrQtSDQstC40YjQtSDRmNC10LfQuNC60LAg0L3QsCBGQVEg0LzQvtC00YPQu9GDLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgc2VydmljZSBhc3NpZ25tZW50IGZvciBGQVFzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgdGhlIHJlbGF0ZWQgYXJ0aWNsZSBmZWF0dXJlIGZvciB0aGUgY3VzdG9tZXIgZnJvbnRlbmQuJ30gPQogICAgICAgICfQkNC60YLQuNCy0LjRgNCwINGE0YPQvdC60YbQuNGY0YMg0YHRgNC+0LTQvdC40YUg0YfQu9Cw0L3QsNC60LAg0LfQsCDQuNC90YLQtdGA0YTQtdGY0YEg0LrQu9C40ZjQtdC90YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHZvdGluZyBtZWNoYW5pc20gb24gRkFRIG1vZHVsZS4nfSA9ICfQkNC60YLQuNCy0LjRgNCw0ZrQtSDQvNC10YXQsNC90LjQt9C80LAg0LfQsCDQs9C70LDRgdCw0ZrQtSDQvdCwIEZBUSDQvNC+0LTRg9C70YMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4cGxvcmVyJ30gPSAn0JjRgdGC0YDQsNC20LjQstCw0YcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFKQVggUmVzcG9uZGVyJ30gPSAnRkFRIEFKQVgg0L7QtNCz0L7QstCw0YDQsNGHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBSkFYIFJlc3BvbmRlciBmb3IgUmljaHRleHQuJ30gPSAnRkFRIEFKQVgg0L7QtNCz0L7QstCw0YDQsNGHINC30LAgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJlYSd9ID0gJ0ZBUSDQv9GA0L7RgdGC0L7RgCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJlYS4nfSA9ICdGQVEg0L/RgNC+0YHRgtC+0YAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBEZWxldGUuJ30gPSAn0J7QsdGA0LjRiNC4IEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEVkaXQuJ30gPSAn0KPRgNC10LTQuCBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBIaXN0b3J5Lid9ID0gJ9CY0YHRgtC+0YDQuNGY0LDRgiBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBKb3VybmFsIE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICfQntCz0YDQsNC90LjRh9C10ZrQtSDQv9GA0LXQs9C70LXQtNCwIEZBUSDQtNC90LXQstC90LjQutCwICLQvNCw0LvQviInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICfQntCz0YDQsNC90LjRh9C10ZrQtSDQv9GA0LXQs9C70LXQtNCwIEZBUSAi0LzQsNC70L4iJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBQcmludC4nfSA9ICfQqNGC0LDQvNC/0LDRmCBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBzZWFyY2ggYmFja2VuZCByb3V0ZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9ICfQnNC+0LTRg9C7INGA0YPRgtC10YDQsCBGQVEg0L/RgNC10YLRgNCw0LPQtSDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpZWxkNCd9ID0gJ9Cf0L7RmdC1NCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWVsZDUnfSA9ICfQn9C+0ZnQtTUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnVsbCBGQVEnfSA9ICdL0L7QvNC/0LvQtdGC0LDQvSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPSAn0JPRgNGD0L/QsCDQt9CwINC+0LTQvtCx0YDQsNCy0LDRmtC1IEZBUSDRh9C70LDQvdCw0LrQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiB0aGlzIEZBUSd9ID0gJ9CY0YHRgtC+0YDQuNGY0LDRgiDQvtCy0L7QsyBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgYWN0aXZhdGVkLCBGQVEgYXJ0aWNsZXMgb2Ygc3RhdHVzIHR5cGUgaW50ZXJuYWwgYXJlIGFsc28gdGFrZW4gaW50byBhY2NvdW50IGZvciB0aGUgYXBwcm92YWwgcHJvY2Vzcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNsdWRlIGludGVybmFsIGZpZWxkcyBvbiBhIEZBUSBiYXNlZCBUaWNrZXQuJ30gPSAn0KPQutGZ0YPRh9C4INC40L3RgtC10YDQvdCwINC/0L7RmdCwINGDIEZBUSDQsdCw0LfQuNGA0LDQvSDRgtC40LrQtdGCLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNsdWRlIHRoZSBuYW1lIG9mIGVhY2ggZmllbGQgaW4gYSBGQVEgYmFzZWQgVGlja2V0Lid9ID0gJ9Cj0LrRmdGD0YfQuCDQvdCw0LfQuNCyINGB0LLQsNC60L7QsyDQv9C+0ZnQsCDRgyBGQVEg0LHQsNC30LjRgNCw0L0g0YLQuNC60LXRgi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW50ZXJmYWNlcyB3aGVyZSB0aGUgcXVpY2sgc2VhcmNoIHNob3VsZCBiZSBzaG93bi4nfSA9ICfQmNC90YLQtdGA0YTQtdGY0YEg0L3QsCDQutC+0Lwg0YLRgNC10LHQsCDQv9GA0LjQutCw0LfQsNGC0Lgg0LHRgNC30YMg0L/RgNC10YLRgNCw0LPRgy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSm91cm5hbCd9ID0gJ9CU0L3QtdCy0L3QuNC6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhbmd1YWdlIE1hbmFnZW1lbnQnfSA9ICfQo9C/0YDQsNCy0ZnQsNGa0LUg0ZjQtdC30LjRhtC40LzQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYW5ndWFnZSBNYW5hZ2VtZW50Lid9ID0gJ9Cj0L/RgNCw0LLRmdCw0ZrQtSDRmNC10LfQuNGG0LjQvNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW1pdCBmb3IgdGhlIHNlYXJjaCB0byBidWlsZCB0aGUga2V5d29yZCBGQVEgYXJ0aWNsZSBsaXN0Lid9ID0gJ9Ce0LPRgNCw0L3QuNGH0LXRmtC1INC/0YDQtdGC0YDQsNCz0LUg0LfQsCDQs9C10L3QtdGA0LjRgdCw0ZrQtSDQu9C40YHRgtC1INC60ZnRg9GH0L3QuNGFINGA0LXRh9C4IEZBUSDRh9C70LDQvdCw0LrQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayBhbm90aGVyIG9iamVjdCB0byB0aGlzIEZBUSBpdGVtJ30gPSAn0J/QvtCy0LXQttC4INC00YDRg9Cz0Lgg0L7QsdGY0LXQutCw0YIg0YHQsCDQvtCy0L7QvCDRgdGC0LDQstC60L7QvCBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBxdWV1ZSBuYW1lcyBmb3Igd2hpY2ggdGhlIHJlbGF0ZWQgYXJ0aWNsZSBmZWF0dXJlIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICfQm9C40YHRgtCwINC40LzQtdC90LAg0YDQtdC00L7QstCwINC30LAg0LrQvtGY0LUg0ZjQtSDRhNGD0L3RhtC40ZjQsCDRgdGA0L7QtNC90LjRhSDRh9C70LDQvdCw0LrQsCDQsNC60YLQuNCy0LjRgNCw0L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBzdGF0ZSB0eXBlcyB3aGljaCBjYW4gYmUgdXNlZCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JvQuNGB0YLQsCDRgtC40L/QvtCy0LAg0YHRgtCw0ZrQsCDQutC+0ZjQuCDRgdC1INC80L7Qs9GDINC60L7RgNC40YHRgtC40YLQuCDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2Ygc3RhdGUgdHlwZXMgd2hpY2ggY2FuIGJlIHVzZWQgaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Cb0LjRgdGC0LAg0YLQuNC/0L7QstCwINGB0YLQsNGa0LAg0LrQvtGY0Lgg0YHQtSDQvNC+0LPRgyDQutC+0YDQuNGB0YLQuNGC0Lgg0YMg0LjQvdGC0LXRgNGE0LXRmNGB0YMg0LrQu9C40ZjQtdC90YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBzdGF0ZSB0eXBlcyB3aGljaCBjYW4gYmUgdXNlZCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Cb0LjRgdGC0LAg0YLQuNC/0L7QstCwINGB0YLQsNGa0LAg0LrQvtGY0Lgg0YHQtSDQvNC+0LPRgyDQutC+0YDQuNGB0YLQuNGC0Lgg0YMg0ZjQsNCy0L3QvtC8INC40L3RgtC10YDRhNC10ZjRgdGDLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb2FkZXIgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPSAn0KDQtdCz0LjRgdGC0YDQsNGG0LjRmNCwINC80L7QtNGD0LvQsCDQt9CwINGD0YfQuNGC0LDQstCw0ZrQtSDQt9CwINGY0LDQstC90Lgg0LjQvdGC0LXRgNGE0LXRmNGBLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQnNCw0LrRgdC40LzQsNC70L3QuCDQsdGA0L7RmCBGQVEg0YfQu9Cw0L3QsNC60LAg0LrQvtGY0Lgg0ZvQtSDQsdC40YLQuCDQv9GA0LjQutCw0LfQsNC90Lgg0YMg0YDQtdC30YPQu9GC0LDRgtGDIEZBUSDQv9GA0LXRgtGA0LDQttC40LLQsNGH0LAg0YMg0LjQvdGC0LXRgNGE0LXRmNGB0YMg0L7Qv9C10YDQsNGC0LXRgNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQnNCw0LrRgdC40LzQsNC70L3QuCDQsdGA0L7RmCBGQVEg0YfQu9Cw0L3QsNC60LAg0LrQvtGY0Lgg0ZvQtSDQsdC40YLQuCDQv9GA0LjQutCw0LfQsNC90Lgg0YMg0YDQtdC30YPQu9GC0LDRgtGDIEZBUSDQv9GA0LXRgtGA0LDQttC40LLQsNGH0LAg0YMg0LjQvdGC0LXRgNGE0LXRmNGB0YMg0LrQu9C40ZjQtdC90YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Cc0LDQutGB0LjQvNCw0LvQvdC4INCx0YDQvtGYIEZBUSDRh9C70LDQvdCw0LrQsCDQutC+0ZjQuCDRm9C1INCx0LjRgtC4INC/0YDQuNC60LDQt9Cw0L3QuCDRgyDRgNC10LfRg9C70YLQsNGC0YMgRkFRINC/0YDQtdGC0YDQsNC20LjQstCw0YfQsCDRgyDRmNCw0LLQvdC+0Lwg0LjQvdGC0LXRgNGE0LXRmNGB0YMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBqb3VybmFsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQnNCw0LrRgdC40LzQsNC70L3QuCDQsdGA0L7RmCBGQVEg0YfQu9Cw0L3QsNC60LAg0LrQvtGY0Lgg0ZvQtSDQsdC40YLQuCDQv9GA0LjQutCw0LfQsNC90Lgg0YMgRkFRINC00L3QtdCy0L3QuNC60YMg0YMg0LjQvdGC0LXRgNGE0LXRmNGB0YMg0L7Qv9C10YDQsNGC0LXRgNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSByZXN1bHQgb2YgYSBzZWFyY2ggaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Cc0LDQutGB0LjQvNCw0LvQvdC4INCx0YDQvtGYIEZBUSDRh9C70LDQvdCw0LrQsCDQutC+0ZjQuCDRm9C1INCx0LjRgtC4INC/0YDQuNC60LDQt9Cw0L3QuCDRgyDRgNC10LfRg9C70YLQsNGC0YMg0L/RgNC10YLRgNCw0LPQtSDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHJlc3VsdCBvZiBhIHNlYXJjaCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JzQsNC60YHQuNC80LDQu9C90Lgg0LHRgNC+0ZggRkFRINGH0LvQsNC90LDQutCwINC60L7RmNC4INGb0LUg0LHQuNGC0Lgg0L/RgNC40LrQsNC30LDQvdC4INGDINGA0LXQt9GD0LvRgtCw0YLRgyDQv9GA0LXRgtGA0LDQs9C1INGDINC40L3RgtC10YDRhNC10ZjRgdGDINC60LvQuNGY0LXQvdGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHJlc3VsdCBvZiBhIHNlYXJjaCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Cc0LDQutGB0LjQvNCw0LvQvdC4INCx0YDQvtGYIEZBUSDRh9C70LDQvdCw0LrQsCDQutC+0ZjQuCDRm9C1INCx0LjRgtC4INC/0YDQuNC60LDQt9Cw0L3QuCDRgyDRgNC10LfRg9C70YLQsNGC0YMg0L/RgNC10YLRgNCw0LPQtSDRgyDRmNCw0LLQvdC+0Lwg0LjQvdGC0LXRgNGE0LXRmNGB0YMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBFeHBsb3JlciBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JzQsNC60YHQuNC80LDQu9C90LAg0LTRg9C20LjQvdCwINC90LDRgdC70L7QstCwINGDIEZBUSDRh9C70LDQvdC60YMg0LrQvtGY0Lgg0ZvQtSDQsdC40YLQuCDQv9GA0LjQutCw0LfQsNC90Lgg0YMgRkFRINC/0YDQtdGC0YDQsNC20LjQstCw0YfRgyDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBFeHBsb3JlciBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JzQsNC60YHQuNC80LDQu9C90LAg0LTRg9C20LjQvdCwINC90LDRgdC70L7QstCwINGDIEZBUSDRh9C70LDQvdC60YMg0LrQvtGY0Lgg0ZvQtSDQsdC40YLQuCDQv9GA0LjQutCw0LfQsNC90Lgg0YMgRkFRINC/0YDQtdGC0YDQsNC20LjQstCw0YfRgyDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQutC70LjRmNC10L3RgtCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgRXhwbG9yZXIgaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQnNCw0LrRgdC40LzQsNC70L3QsCDQtNGD0LbQuNC90LAg0L3QsNGB0LvQvtCy0LAg0YMgRkFRINGH0LvQsNC90LrRgyDQutC+0ZjQuCDRm9C1INCx0LjRgtC4INC/0YDQuNC60LDQt9Cw0L3QuCDRgyBGQVEg0LjRgdGC0YDQsNC20LjQstCw0YfRgyDRgyDRmNCw0LLQvdC+0Lwg0LjQvdGC0LXRgNGE0LXRmNGB0YMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBTZWFyY2ggaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Cc0LDQutGB0LjQvNCw0LvQvdCwINC00YPQttC40L3QsCDQvdCw0YHQu9C+0LLQsCDRgyBGQVEg0YfQu9Cw0L3QutGDINC60L7RmNC4INGb0LUg0LHQuNGC0Lgg0L/RgNC40LrQsNC30LDQvdC4INGDIEZBUSDQv9GA0LXRgtGA0LDQt9C4INGDINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/QtdGA0LDRgtC10YDQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIFNlYXJjaCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JzQsNC60YHQuNC80LDQu9C90LAg0LTRg9C20LjQvdCwINC90LDRgdC70L7QstCwINGDIEZBUSDRh9C70LDQvdC60YMg0LrQvtGY0Lgg0ZvQtSDQsdC40YLQuCDQv9GA0LjQutCw0LfQsNC90Lgg0YMgRkFRINC/0YDQtdGC0YDQsNC30Lgg0YMg0LjQvdGC0LXRgNGE0LXRmNGB0YMg0LrQu9C40ZjQtdC90YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIFNlYXJjaCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Cc0LDQutGB0LjQvNCw0LvQvdCwINC00YPQttC40L3QsCDQvdCw0YHQu9C+0LLQsCDRgyBGQVEg0YfQu9Cw0L3QutGDINC60L7RmNC4INGb0LUg0LHQuNGC0Lgg0L/RgNC40LrQsNC30LDQvdC4INGDIEZBUSDQv9GA0LXRgtGA0LDQt9C4INGDINGY0LDQstC90L7QvCDQuNC90YLQtdGA0YTQtdGY0YHRgy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIGpvdXJuYWwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Cc0LDQutGB0LjQvNCw0LvQvdCwINC00YPQttC40L3QsCDQvdCw0YHQu9C+0LLQsCDRgyBGQVEg0YfQu9Cw0L3QutGDINC60L7RmNC4INGb0LUg0LHQuNGC0Lgg0L/RgNC40LrQsNC30LDQvdC4INGDIEZBUSDQtNC90LXQstC90LjQutGDINGDINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/QtdGA0LDRgtC10YDQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGdlbmVyYXRlIEhUTUwgT3BlblNlYXJjaCBwcm9maWxlIGZvciBzaG9ydCBGQVEgc2VhcmNoIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQnNC+0LTRg9C7INC30LAg0LPQtdC90LXRgNC40YHQsNGa0LUgSFRNTCBPcGVuU2VhcmNoINC/0YDQvtGE0LjQu9CwINC30LAg0LrRgNCw0YLQutGDIEZBUSDQv9GA0LXRgtGA0LDQs9GDINGDINC40L3RgtC10YDRhNC10ZjRgdGDINC60LvQuNGY0LXQvdGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBnZW5lcmF0ZSBIVE1MIE9wZW5TZWFyY2ggcHJvZmlsZSBmb3Igc2hvcnQgRkFRIHNlYXJjaCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Cc0L7QtNGD0Lsg0LfQsCDQs9C10L3QtdGA0LjRgdCw0ZrQtSBIVE1MIE9wZW5TZWFyY2gg0L/RgNC+0YTQuNC70LAg0LfQsCDQutGA0LDRgtC60YMgRkFRINC/0YDQtdGC0YDQsNCz0YMg0YMg0ZjQsNCy0L3QvtC8INC/0YDQvtGE0LjQu9GDLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gZ2VuZXJhdGUgaHRtbCBPcGVuU2VhcmNoIHByb2ZpbGUgZm9yIHNob3J0IEZBUSBzZWFyY2guJ30gPQogICAgICAgICfQnNC+0LTRg9C7INC30LAg0LPQtdC90LXRgNC40YHQsNGa0LUgSFRNTCBPcGVuU2VhcmNoINC/0YDQvtGE0LjQu9CwINC30LAg0LrRgNCw0YLQutGDIEZBUSDQv9GA0LXRgtGA0LDQs9GDLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgRkFRIEFydGljbGUuJ30gPSAn0J3QvtCy0LggRkFRINGH0LvQsNC90LDQui4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEZBUSBhcnRpY2xlcyBuZWVkIGFwcHJvdmFsIGJlZm9yZSB0aGV5IGdldCBwdWJsaXNoZWQuJ30gPSAn0J3QvtCy0LggRkFRINGH0LvQsNC90YbQuCDRgtGA0LXQsdCw0ZjRgyDQsdC40YLQuCDQvtC00L7QsdGA0LXQvdC4INC/0YDQtSDQvtCx0ZjQsNCy0ZnQuNCy0LDRmtCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQkdGA0L7RmCBGQVEg0YfQu9Cw0L3QsNC60LAg0LrQvtGY0Lgg0ZvQtSDQsdC40YLQuCDQv9GA0LjQutCw0LfQsNC90Lgg0YMgRkFRINC/0YDQtdGC0YDQsNC20LjQstCw0YfRgyDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQutC70LjRmNC10L3RgtCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0JHRgNC+0ZggRkFRINGH0LvQsNC90LDQutCwINC60L7RmNC4INGb0LUg0LHQuNGC0Lgg0L/RgNC40LrQsNC30LDQvdC4INGDIEZBUSDQv9GA0LXRgtGA0LDQttC40LLQsNGH0YMg0YMg0ZjQsNCy0L3QvtC8INC40L3RgtC10YDRhNC10ZjRgdGDLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBvbiBlYWNoIHBhZ2Ugb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQkdGA0L7RmCBGQVEg0YfQu9Cw0L3QsNC60LAg0LrQvtGY0Lgg0ZvQtSDQsdC40YLQuCDQv9GA0LjQutCw0LfQsNC90Lgg0L3QsCDRgdCy0LDQutC+0Zgg0YHRgtGA0LDQvdC4INGA0LXQt9GD0LvRgtCw0YLQsCDQv9GA0LXRgtGA0LDQs9C1INGDINC40L3RgtC10YDRhNC10ZjRgdGDINC60LvQuNGY0LXQvdGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIG9uIGVhY2ggcGFnZSBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQkdGA0L7RmCBGQVEg0YfQu9Cw0L3QsNC60LAg0LrQvtGY0Lgg0ZvQtSDQsdC40YLQuCDQv9GA0LjQutCw0LfQsNC90Lgg0L3QsCDRgdCy0LDQutC+0Zgg0YHRgtGA0LDQvdC4INGA0LXQt9GD0LvRgtCw0YLQsCDQv9GA0LXRgtGA0LDQs9C1INGDINGY0LDQstC90L7QvCDQuNC90YLQtdGA0YTQtdGY0YHRgy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIHNob3duIGl0ZW1zIGluIGxhc3QgY2hhbmdlcy4nfSA9ICfQkdGA0L7RmCDQv9GA0LjQutCw0LfQsNC90LjRhSDRgdGC0LDQstC60Lgg0YMg0L/QvtGB0LvQtdC00ZrQuNC8INC40LfQvNC10L3QsNC80LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBzaG93biBpdGVtcyBpbiBsYXN0IGNyZWF0ZWQuJ30gPSAn0JHRgNC+0Zgg0L/RgNC40LrQsNC30LDQvdC40YUg0YHRgtCw0LLQutC4INGDINC/0L7RgdC70LXQtNGa0LUg0LrRgNC10LjRgNCw0L3QuNC8Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2Ygc2hvd24gaXRlbXMgaW4gdGhlIHRvcCAxMCBmZWF0dXJlLid9ID0gJ9CR0YDQvtGYINC/0YDQuNC60LDQt9Cw0L3QuNGFINGB0YLQsNCy0LrQuCDRgyAi0L/RgNCy0LjRhSAxMCIgLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdXRwdXQgZmlsdGVyIHRvIGFkZCBKYXZhLXNjcmlwdCB0byBDdXN0b21lclRpY2tldE1lc3NhZ2Ugc2NyZWVuLid9ID0KICAgICAgICAn0JjQt9C70LDQt9C90Lgg0YTQuNC70YLQtdGAINC30LAg0YPQsdCw0YbQuNCy0LDRmtC1IEphdmFTY3JpcHQg0YMgQ3VzdG9tZXJUaWNrZXRNZXNzYWdlINC10LrRgNCw0L0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J091dHB1dCBsaW1pdCBmb3IgdGhlIHJlbGF0ZWQgRkFRIGFydGljbGVzLid9ID0gJ9Ce0LPRgNCw0L3QuNGH0LXRmtC1INCx0YDQvtGY0LAg0L/RgNC40LrQsNC30LDQvdC40YUg0YHRgNC+0LTQvdC40YUgRkFRINGH0LvQsNC90LDQutCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBGQVEgaXRlbXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgRkFRIGpvdXJuYWwgb3ZlcnZpZXcuJ30gPQogICAgICAgICfQn9Cw0YDQsNC80LXRgtGA0Lgg0YHRgtGA0LDQvdC40YbQsCAo0L3QsCDQutC+0ZjQuNC80LAg0YHRgyBGQVEg0YHRgtCw0LLQutC1INC/0YDQuNC60LDQt9Cw0L3QtSkg0L3QsCDQvNCw0LvQvtC8INC/0YDQuNC60LDQt9GDINC/0YDQtdCz0LvQtdC00LAgRkFRINC00L3QtdCy0L3QuNC60LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIEZBUSBpdGVtcyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBGQVEgb3ZlcnZpZXcuJ30gPQogICAgICAgICfQn9Cw0YDQsNC80LXRgtGA0Lgg0YHRgtGA0LDQvdC40YbQsCAo0L3QsCDQutC+0ZjQuNC80LAg0YHRgyDQstC40LTRmdC40LLQtSBGQVEg0YHRgtCw0LLQutC1KSDRgdC80LDRmtC10L3QvtCzINC/0YDQtdCz0LvQtdC00LAgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGlzIEZBUSd9ID0gJ9Co0YLQsNC80L/QsNGYINC+0LLQsNGYIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRIFByaW50Lid9ID0gJ9Co0YLQsNC80L/QsNGa0LUg0ZjQsNCy0L3QuNGFIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIEZBUSBab29tLid9ID0gJ9CU0LXRgtCw0ZnQuCDRmNCw0LLQvdC40YUgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRIHNlYXJjaC4nfSA9ICfQn9GA0LXRgtGA0LDQs9CwINGY0LDQstC90LjRhSBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBGQVEuJ30gPSAn0IjQsNCy0L3QuCBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1F1ZXVlIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0gJ9Cg0LXQtCDQt9CwINC+0LTQvtCx0YDQsNCy0LDRmtC1IEZBUSDRh9C70LDQvdCw0LrQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0ZXMgZm9yIHZvdGluZy4gS2V5IG11c3QgYmUgaW4gcGVyY2VudC4nfSA9ICfQntGG0LXQvdC1INC30LAg0LPQu9Cw0YHQsNGa0LUuINCa0ZnRg9GHINC80L7RgNCwINCx0LjRgtC4INGDINC/0YDQvtGG0LXQvdGC0LjQvNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTJ30gPSAn0KEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIEZBUSd9ID0gJ9Cf0YDQtdGC0YDQsNC20LggRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBGQVEgU21hbGwuJ30gPSAn0JzQsNC70LAgRkFRINC/0YDQtdGC0YDQsNCz0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBGQVEuJ30gPSAn0J/RgNC10YLRgNCw0LPQsCBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBob3cgbWFueSBpdGVtcyBzaG91bGQgYmUgc2hvd24gaW4gSm91cm5hbCBPdmVydmlldyAiU21hbGwiIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICfQmNC30LDQsdC10YDQuNGC0LUg0LrQvtC70LjQutC+INGb0LUg0YHRgtCw0LLQutC4INCx0LjRgtC4INC/0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC+INC/0YDQuNC60LDQt9Cw0L3QviDRgyDQv9GA0LXQs9C70LXQtNGDINC00L3QtdCy0L3QuNC60LAg0LzQsNC70L7QsyDRhNC+0YDQvNCw0YLQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGhvdyBtYW55IGl0ZW1zIHNob3VsZCBiZSBzaG93biBpbiBPdmVydmlldyAiU21hbGwiIGJ5IGRlZmF1bHQuJ30gPQogICAgICAgICfQmNC30LDQsdC10YDQuNGC0LUg0LrQvtC70LjQutC+INGb0LUg0YHRgtCw0LLQutC4INCx0LjRgtC4INC/0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC+INC/0YDQuNC60LDQt9Cw0L3QviDRgyDQv9GA0LXQs9C70LXQtNGDINC80LDQu9C+0LMg0YTQvtGA0LzQsNGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZGVmYXVsdCBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEFnZW50RkFRWm9vbS4nfSA9CiAgICAgICAgJ9Cf0L7QtNC10YHQuCDQv9C+0LTRgNCw0LfRg9C80LXQstCw0L3RgyDQstC40YHQuNC90YMgKNGDINC/0LjQutGB0LXQu9C40LzQsCkg0LjQvdC70LjQvdC1IEhUTUwg0L/QvtGZ0LAg0YMgQWdlbnRGQVFab29tLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBDdXN0b21lckZBUVpvb20gKGFuZCBQdWJsaWNGQVFab29tKS4nfSA9CiAgICAgICAgJ9Cf0L7QtNC10YHQuCDQv9C+0LTRgNCw0LfRg9C80LXQstCw0L3RgyDQstC40YHQuNC90YMgKNGDINC/0LjQutGB0LXQu9C40LzQsCkg0LjQvdC70LjQvdC1IEhUTUwg0L/QvtGZ0LAg0YMgQ3VzdG9tZXJGQVFab29tICjQuCBQdWJsaWNGQVFab29tKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBtYXhpbXVtIGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gQWdlbnRGQVFab29tLid9ID0KICAgICAgICAn0J/QvtC00LXRgdC4INC80LDQutGB0LjQvNCw0LvQvdGDINCy0LjRgdC40L3RgyAo0YMg0L/QuNC60YHQtdC70LjQvNCwKSDQuNC90LvQuNC90LUgSFRNTCDQv9C+0ZnQsCDRgyBBZ2VudEZBUVpvb20uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgbWF4aW11bSBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEN1c3RvbWVyRkFRWm9vbSAoYW5kIFB1YmxpY0ZBUVpvb20pLid9ID0KICAgICAgICAn0J/QvtC00LXRgdC4INC80LDQutGB0LjQvNCw0LvQvdGDINCy0LjRgdC40L3RgyAo0YMg0L/QuNC60YHQtdC70LjQvNCwKSDQuNC90LvQuNC90LUgSFRNTCDQv9C+0ZnQsCDRgyBDdXN0b21lckZBUVpvb20gKNC4IFB1YmxpY0ZBUVpvb20pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93ICJJbnNlcnQgRkFRIExpbmsiIEJ1dHRvbiBpbiBBZ2VudEZBUVpvb21TbWFsbCBmb3IgcHVibGljIEZBUSBBcnRpY2xlcy4nfSA9CiAgICAgICAgJ9Cf0YDQuNC60LDQttC4ICLQo9Cx0LDRhtC4IEZBUSDQstC10LfRgyIg0LTRg9Cz0LzQtSDRgyBBZ2VudEZBUVpvb21TbWFsbCDQt9CwINGY0LDQstC90LUgRkFRINCw0YDRgtC40LrQu9C1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93ICJJbnNlcnQgRkFRIFRleHQgJiBMaW5rIiAvICJJbnNlcnQgRnVsbCBGQVEgJiBMaW5rIiBCdXR0b24gaW4gQWdlbnRGQVFab29tU21hbGwgZm9yIHB1YmxpYyBGQVEgQXJ0aWNsZXMuJ30gPQogICAgICAgICfQn9GA0LjQutCw0LbQuCAi0KPQsdCw0YbQuCBGQVEg0YLQtdC60YHRgiDQuCDQstC10LfRgyIgLyAi0KPQsdCw0YbQuCDRhtC10L4gRkFRINC4INCy0LXQt9GDINC00YPQs9C80LUg0YMgQWdlbnRGQVFab29tU21hbGwg0LfQsCDRmNCw0LLQvdC1IEZBUSDQsNGA0YLQuNC60LvQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyAiSW5zZXJ0IEZBUSBUZXh0IiAvICJJbnNlcnQgRnVsbCBGQVEiIEJ1dHRvbiBpbiBBZ2VudEZBUVpvb21TbWFsbC4nfSA9CiAgICAgICAgJ9Cf0YDQuNC60LDQttC4ICLQo9Cx0LDRhtC4IEZBUSDRgtC10LrRgdGCIiAvICLQo9Cx0LDRhtC4INGG0LXQviBGQVEiINC00YPQs9C80LUg0YMgQWdlbnRGQVFab29tU21hbGwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgRkFRIEFydGljbGUgd2l0aCBIVE1MLid9ID0gJ9Cf0YDQuNC60LDQtyBGQVEg0YfQu9Cw0L3QutCwINC60LDQviBIVE1MLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IEZBUSBwYXRoIHllcy9uby4nfSA9ICfQn9GA0LjQutCw0LbQuCDQv9GD0YLQsNGa0YMg0LTQviBGQVEg0LTQsC/QvdC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGludmFsaWQgaXRlbXMgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9Cf0YDQuNC60LDQtyDQvdC10LjRgdC/0YDQstC90LjRhSDRgdGC0LDQstC60Lgg0YMg0YDQtdC30YPQu9GC0LDRgtC40LzQsCBGQVEg0L/RgNC10YLRgNCw0LbQuNCy0LDRh9CwINGDINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/QtdGA0LDRgtC10YDQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBpdGVtcyBvZiBzdWJjYXRlZ29yaWVzLid9ID0gJ9Cf0YDQuNC60LDQttC4INGB0YLQsNCy0LrQtSDRgdGD0LHQutCw0YLQtdCz0L7RgNC40ZjQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBsYXN0IGNoYW5nZSBpdGVtcyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAn0J/RgNC40LrQsNC20Lgg0LfQsNC00ZrQtSDQv9GA0L7QvNC10ZrQtdC90LUg0YHRgtCw0LLQutC1INGDINC00LXRhNC40L3QuNGB0LDQvdC40Lwg0LjQvdGC0LXRgNGE0LXRmNGB0LjQvNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGxhc3QgY3JlYXRlZCBpdGVtcyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAn0J/RgNC40LrQsNC20Lgg0LfQsNC00ZrQtSDQutGA0LXQuNGA0LDQvdC1INGB0YLQsNCy0LrQtSDRgyDQtNC10YTQuNC90LjRgdCw0L3QuNC8INC40L3RgtC10YDRhNC10ZjRgdC40LzQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyByZWxhdGVkIGFydGljbGVzIG9uIHNlcnZpY2UgY2hhbmdlIGV2ZW4gd2l0aCBlbXB0eSBzdWJqZWN0IGFuZCBib2R5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgdGhlIHN0YXJzIGZvciB0aGUgYXJ0aWNsZXMgd2l0aCBhIHJhdGluZyBlcXVhbCBvciBncmVhdGVyIGxpa2UgdGhlIGRlZmluZWQgdmFsdWUgKHNldCB2YWx1ZSBcJzBcJyB0byBkZWFjdGl2YXRlIHRoZSBvdXRwdXQpLid9ID0KICAgICAgICAn0J/RgNC40LrQsNC20Lgg0LfQstC10LfQtNC40YbQtSDQt9CwINGH0LvQsNC90LrQtSDRgdCwINGY0LXQtNC90LDQutC+0Lwg0LjQu9C4INCx0L7RmdC+0Lwg0L7RhtC10L3QvtC8INC+0LQg0LTQtdGE0LjQvdC40YHQsNC90LUg0LLRgNC10LTQvdC+0YHRgtC4ICjQv9C+0YHRgtCw0LLQuNGC0LUg0LLRgNC10LTQvdC+0YHRgiBcJzBcJyDQt9CwINC00LXQsNC60YLQuNCy0LjRgNCw0ZrQtSDQv9GA0LjQutCw0LfQsCkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgdG9wIDEwIGl0ZW1zIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICfQn9GA0LjQutCw0LbQuCDQv9GA0LLQuNGFIDEwINGB0YLQsNCy0LrQuCDRgyDQtNC10YTQuNC90LjRgdCw0L3QuNC8INC40L3RgtC10YDRhNC10ZjRgdC40LzQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB2b3RpbmcgaW4gZGVmaW5lZCBpbnRlcmZhY2VzLid9ID0gJ9Cf0YDQuNC60LDQttC4INCz0LvQsNGB0LDRmtC1INGDINC00LXRhNC40L3QuNGB0LDQvdC40Lwg0LjQvdGC0LXRgNGE0LXRmNGB0LjQvNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgbGlua2luZyBhIEZBUSB3aXRoIGFub3RoZXIgb2JqZWN0IGluIHRoZSB6b29tIHZpZXcgb2Ygc3VjaCBGQVEgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9CjINC80LXQvdC40ZjRgyDQv9GA0LjQutCw0LfRg9GY0LUg0LLQtdC30YMg0LrQvtGY0LAg0L7QvNC+0LPRg9Gb0LDQstCwINC/0L7QstC10LfQuNCy0LDRmtC1IEZBUSDRgdCwINC00YDRg9Cz0LjQvCDQvtCx0ZjQtdC60YLQvtC8INGDINC00LXRgtCw0ZnQvdC+0Lwg0L/RgNC40LrQsNC30YMg0YLQvtCzIEZBUSDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyB0byBkZWxldGUgYSBGQVEgaW4gaXRzIHpvb20gdmlldyBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn0KMg0LzQtdC90LjRmNGDINC/0YDQuNC60LDQt9GD0ZjQtSDQstC10LfRgyDQutC+0ZjQsCDQvtC80L7Qs9GD0ZvQsNCy0LAg0LHRgNC40YHQsNGa0LUgRkFRINGDINC00LXRgtCw0ZnQvdC+0Lwg0L/RgNC40LrQsNC30YMg0YMg0LjQvdGC0LXRgNGE0LXRmNGB0YMg0L7Qv9C10YDQsNGC0LXRgNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBoaXN0b3J5IG9mIGEgRkFRIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9CjINC80LXQvdC40ZjRgyDQv9GA0LjQutCw0LfRg9GY0LUg0LLQtdC30YMg0LfQsCDQv9GA0LjRgdGC0YPQvyBGQVEg0LjRgdGC0L7RgNC40ZjQsNGC0YMg0YMg0LTQtdGC0LDRmdC90L7QvCDQv9GA0LjQutCw0LfRgyDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgRkFRIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQoyDQvNC10L3QuNGY0YMg0L/RgNC40LrQsNC30YPRmNC1INCy0LXQt9GDINC30LAg0LjQt9C80LXQvdGDIEZBUSDRgyDQtNC10YLQsNGZ0L3QvtC8INC/0YDQuNC60LDQt9GDINGDINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/QtdGA0LDRgtC10YDQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIEZBUSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ9CjINC80LXQvdC40ZjRgyDQv9GA0LjQutCw0LfRg9GY0LUg0LLQtdC30YMg0LfQsCDQv9C+0LLRgNCw0YLQsNC6INGDINC00LXRgtCw0ZnQvdC4INC/0YDQuNC60LDQtyBGQVEg0YMgINC40L3RgtC10YDRhNC10ZjRgdGDINC+0L/QtdGA0LDRgtC10YDQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgRkFRIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfQoyDQvNC10L3QuNGY0YMg0L/RgNC40LrQsNC30YPRmNC1INCy0LXQt9GDINC30LAg0YjRgtCw0LzQv9Cw0ZrQtSBGQVEg0YMg0LTQtdGC0LDRmdC90L7QvCDQv9GA0LjQutCw0LfRgyDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NvbHV0aW9uJ30gPSAn0KDQtdGI0LXRmtC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N5bXB0b20nfSA9ICfQodC40LzQv9GC0L7QvCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZXh0IE9ubHknfSA9ICfQodCw0LzQviDRgtC10LrRgdGCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBkZWZhdWx0IGxhbmd1YWdlcyBmb3IgdGhlIHJlbGF0ZWQgRkFRIGFydGljbGVzLid9ID0gJ9Cf0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC4INGY0LXQt9C40YbQuCDQt9CwINGB0YDQvtC00L3QtSBGQVEg0YfQu9Cw0L3QutC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSBGQVEsIGUuZy4gRkFRIywgS0IjLCBNeUZBUSMuIFRoZSBkZWZhdWx0IGlzIEZBUSMuJ30gPQogICAgICAgICfQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQt9CwIEZBUSwg0L3Qv9GALiBGQVEjLCBLQiMsIE15RkFRIy4g0J/QvtC00YDQsNC30YPQvNC10LLQsNC90L4g0ZjQtSBGQVEjLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnRkFRXCcgb2JqZWN0cyB1c2luZyB0aGUgXCdOb3JtYWxcJyBsaW5rIHR5cGUuJ30gPQogICAgICAgICfQntCy0L4g0L/QvtC00LXRiNCw0LLQsNGa0LUg0LTQtdGE0LjQvdC40YjQtSDQtNCwIEZBUSDQvtCx0ZjQtdC60YIg0LzQvtC20LUg0LTQsCDRgdC1INC/0L7QstC10LbQtSDRgdCwINC00YDRg9Cz0LjQvCBGQVEg0L7QsdGY0LXQutGC0LjQvNCwINC60L7RgNC40YHRgtC10ZvQuCDQstC10LfRgyDRgtC40L/QsCBcJ05vcm1hbFwnLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnRkFRXCcgb2JqZWN0cyB1c2luZyB0aGUgXCdQYXJlbnRDaGlsZFwnIGxpbmsgdHlwZS4nfSA9CiAgICAgICAgJ9Ce0LLQviDQv9C+0LTQtdGI0LDQstCw0ZrQtSDQtNC10YTQuNC90LjRiNC1INC00LAgRkFRINC+0LHRmNC10Lph0YIg0LzQvtC20LUg0LTQsCDRgdC1INC/0L7QstC10LbQtSDRgdCwINC00YDRg9Cz0LjQvCBGQVEg0L7QsdGY0LXQutGC0LjQvNCwINC60L7RgNC40YHRgtC10ZvQuCDQstC10LfRgyDRgtC40L/QsCBcJ1BhcmVudENoaWxkXCcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBkZWZpbmVzIHRoYXQgYSBcJ0ZBUVwnIG9iamVjdCBjYW4gYmUgbGlua2VkIHdpdGggb3RoZXIgXCdUaWNrZXRcJyBvYmplY3RzIHVzaW5nIHRoZSBcJ05vcm1hbFwnIGxpbmsgdHlwZS4nfSA9CiAgICAgICAgJ9Ce0LLQviDQv9C+0LTQtdGI0LDQstCw0ZrQtSDQtNC10YTQuNC90LjRiNC1INC00LAgRkFRINC+0LHRmNC10LrRgiDQvNC+0LbQtSDQtNCwINGB0LUg0L/QvtCy0LXQttC1INGB0LAg0LTRgNGD0LPQuNC8INGC0LjQutC10YIg0L7QsdGY0LXQutGC0LjQvNCwINC60L7RgNC40YHRgtC10ZvQuCDQstC10LfRgyDRgtC40L/QsCBcJ05vcm1hbFwnLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnVGlja2V0XCcgb2JqZWN0cyB1c2luZyB0aGUgXCdQYXJlbnRDaGlsZFwnIGxpbmsgdHlwZS4nfSA9CiAgICAgICAgJ9Ce0LLQviDQv9C+0LTQtdGI0LDQstCw0ZrQtSDQtNC10YTQuNC90LjRiNC1INC00LAgRkFRINC+0LHRmNC10LrRgiDQvNC+0LbQtSDQtNCwINGB0LUg0L/QvtCy0LXQttC1INGB0LAg0LTRgNGD0LPQuNC8INGC0LjQutC10YIg0L7QsdGY0LXQutGC0LjQvNCwINC60L7RgNC40YHRgtC10ZvQuCDQstC10LfRgyDRgtC40L/QsCBcJ1BhcmVudENoaWxkXCcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBib2R5IGZvciBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZS4nfSA9ICfQodCw0LTRgNC20LDRmCDRgtC40LrQtdGC0LAg0LfQsCDQvtC00L7QsdGA0LDQstCw0ZrQtSBGQVEg0YfQu9Cw0L3QsNC60LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBzdWJqZWN0IGZvciBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZS4gUGVybWl0dGVkIG5vdGlmaWNhdGlvbiB0YWdzIGFyZSA8T1RPQk9fRkFRX05VTUJFUj4sIDxPVE9CT19GQVFfQ0FURUdPUllJRD4sIDxPVE9CT19GQVFfSVRFTUlEPj4gPE9UT0JPX0ZBUV9USVRMRT4gYW5kIDxPVE9CT19GQVFfU1RBVEVJRD4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG9vbGJhciBJdGVtIGZvciBhIHNob3J0Y3V0Lid9ID0gJ9Ch0YLQsNCy0LrQsCDQsNC70LDRgtC90LUg0LvQuNC90LjRmNC1INC30LAg0YHQutGA0LDRm9C10L3QuNGG0YMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2V4dGVybmFsIChjdXN0b21lciknfSA9ICfQtdC60YHRgtC10YDQvdC+ICjQutC70LjRmNC10L3RgiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW50ZXJuYWwgKGFnZW50KSd9ID0gJ9C40L3RgtC10YDQvdC+ICjQvtC/0LXRgNCw0YLQtdGAKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwdWJsaWMgKGFsbCknfSA9ICfRmNCw0LLQvdC+ICjRgdCy0LUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3B1YmxpYyAocHVibGljKSd9ID0gJ9GY0LDQstC90L4gKNGY0LDQstC90L4pJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnTm8nLAogICAgJ09rJywKICAgICdTZXR0aW5ncycsCiAgICAnU3VibWl0JywKICAgICdUaGlzIG1pZ2h0IGJlIGhlbHBmdWwnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK</File>
        <File Location="Kernel/Language/sr_Latn_FAQ.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnNyX0xhdG5fRkFROwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFBZGQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBGQVEgQXJ0aWNsZSd9ID0gJ0RvZGFqIEZBUSDEjWxhbmFrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0tleXdvcmRzJ30gPSAnS2xqdcSNbmUgcmXEjWknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRlZ29yeSBpcyByZXF1aXJlZC4nfSA9ICdLYXRlZ29yaWphIGplIG9iYXZlem5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcHByb3ZhbCd9ID0gJ09kb2JyZW5qZSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFDYXRlZ29yeQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIENhdGVnb3J5IE1hbmFnZW1lbnQnfSA9ICdVcHJhdmxqYW5qZSBGQVEga2F0ZWdvcmlqYW1hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBGQVEgQ2F0ZWdvcnknfSA9ICdEb2RhaiBGQVEga2F0ZWdvcmlqdSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEZBUSBDYXRlZ29yeSd9ID0gJ1VyZWRpIEZBUSBrYXRlZ29yaWp1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBjYXRlZ29yeSd9ID0gJ0RvZGFqIGthdGVnb3JpanUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENhdGVnb3J5J30gPSAnRG9kYWoga2F0ZWdvcmlqdSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENhdGVnb3J5J30gPSAnVXJlZGkga2F0ZWdvcmlqdSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWJjYXRlZ29yeSBvZid9ID0gJ1BvZGthdGVnb3JpamEgb2QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhdCBsZWFzdCBvbmUgcGVybWlzc2lvbiBncm91cC4nfSA9ICdNb2xpbW8gZGEgaXphYmVyZXRlIGJhciBqZWRudSBncnVwdSBkb3p2b2xhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBncm91cHMgdGhhdCBjYW4gYWNjZXNzIGFydGljbGVzIGluIHRoaXMgY2F0ZWdvcnkuJ30gPSAnR3J1cGUgb3BlcmF0ZXJhIGtvamUgbW9ndSBwcmlzdHVwaXRpIMSNbGFuY2ltYSB1IG92b2oga2F0ZWdvcmlqaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2lsbCBiZSBzaG93biBhcyBjb21tZW50IGluIEV4cGxvcmVyLid9ID0gJ0JpxIdlIHByaWthemFubyBrYW8ga29tZW50YXIgdSBJc3RyYcW+aXZhxI11Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY2F0ZWdvcnk/J30gPSAnRGEgbGkgc3R2YXJubyDFvmVsaXRlIGRhIG9icmnFoWV0ZSBvdnUga2F0ZWdvcmlqdT8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgY2F0ZWdvcnkuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIEZBUSBhcnRpY2xlIGFuZC9vciBpcyBwYXJlbnQgb2YgYXQgbGVhc3Qgb25lIG90aGVyIGNhdGVnb3J5J30gPQogICAgICAgICdOZSBtb8W+ZXRlIG9icmlzYXRpIG92dSBrYXRlZ29yaWp1LiBVcG90cmVibGplbmEgamUgdSBiYXIgamVkbm9tIEZBUSDEjWxhbmt1IGkvaWxpIGplIG5hZHJlxJFlbmEgbmFqbWFuamUgamVkbm9qIGRydWdvaiBrYXRlZ29yaWppJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY2F0ZWdvcnkgaXMgdXNlZCBpbiB0aGUgZm9sbG93aW5nIEZBUSBhcnRpY2xlKHMpJ30gPSAnT3ZhIGthdGVnb3JpamEgamUgdXBvdHJlYmxqZW5hIHUgc2xlZGXEh2ltIEZBUSDEjWxhbmNpbWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBjYXRlZ29yeSBpcyBwYXJlbnQgb2YgdGhlIGZvbGxvd2luZyBzdWJjYXRlZ29yaWVzJ30gPSAnT3ZhIGthdGVnb3JpamEgamUgbmFkcmXEkWVuYSBzbGVkZcSHaW0gcG9ka2F0ZWdvcmlqYW1hJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUURlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIEZBUSBhcnRpY2xlPyd9ID0gJ0RhIGxpIHN0dmFybm8gxb5lbGl0ZSBkYSBvYnJpxaFldGUgb3ZhaiBGQVEgxI1sYW5haz8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRJ30gPSAnRkFRJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUV4cGxvcmVyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgRXhwbG9yZXInfSA9ICdGQVEgcHJldHJhxb5pdmHEjSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydRdWljayBTZWFyY2gnfSA9ICdCcnpvIHRyYcW+ZW5qZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXaWxkY2FyZHMgYXJlIGFsbG93ZWQuJ30gPSAnRMW+b2tlcnNraSB6bmFjaSBzdSBkb3p2b2xqZW5pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZHZhbmNlZCBTZWFyY2gnfSA9ICdOYXByZWRuYSBwcmV0cmFnYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWJjYXRlZ29yaWVzJ30gPSAnUG9ka2F0ZWdvcmlqZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZXMnfSA9ICdGQVEgxI1sYW5jaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBzdWJjYXRlZ29yaWVzIGZvdW5kLid9ID0gJ1BvZGthdGVnb3JpamUgbmlzdSBwcm9uYcSRZW5lLic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFIaXN0b3J5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mJ30gPSAnSXN0b3JpamEgb2QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBDb250ZW50J30gPSAnU2FkcsW+YWogaXN0b3JpamUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRldGltZSd9ID0gJ1ZyZW1lIGtyZWlyYW5qYSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFKb3VybmFsT3ZlcnZpZXdTbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gRkFRIEpvdXJuYWwgZGF0YSBmb3VuZC4nfSA9ICdOaXN1IHByb25hxJFlbmkgcG9kYWNpIEZBUSBkbmV2bmlrYS4nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRTGFuZ3VhZ2UKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBMYW5ndWFnZSBNYW5hZ2VtZW50J30gPSAnVXByYXZsamFuamUgRkFRIGplemljaW1hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBGQVEgTGFuZ3VhZ2UnfSA9ICdEb2RhaiBGQVEgamV6aWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBGQVEgTGFuZ3VhZ2UnfSA9ICdVcmVkaSBGQVEgamV6aWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlIHRoaXMgZmVhdHVyZSBpZiB5b3Ugd2FudCB0byB3b3JrIHdpdGggbXVsdGlwbGUgbGFuZ3VhZ2VzLid9ID0KICAgICAgICAnVXBvdHJlYml0ZSBvdnUgZnVua2NpanUgYWtvIMW+ZWxpdGUgZGEga29yaXN0aXRlIHZpxaFlIGplemlrYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGxhbmd1YWdlJ30gPSAnRG9kYWogamV6aWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIExhbmd1YWdlJ30gPSAnRG9kYWogSmV6aWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBMYW5ndWFnZSd9ID0gJ1VyZWRpIEplemlrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gbm90IGRlbGV0ZSB0aGlzIGxhbmd1YWdlLiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBGQVEgYXJ0aWNsZSEnfSA9CiAgICAgICAgJ05lIG1vxb5ldGUgb2JyaXNhdGkgb3ZhaiBqZXppay4gVXBvdHJlYmxqZW4gamUgdSBiYXIgamVkbm9tIEZBUSDEjWxhbmt1ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGxhbmd1YWdlIGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBGQVEgQXJ0aWNsZShzKSd9ID0gJ092YWogamV6aWsgamUgdXBvdHJlYmxqZW4gdSBzbGVkZcSHaW0gRkFRIMSNbGFuY2ltYSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFPdmVydmlld05hdkJhcgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29udGV4dCBTZXR0aW5ncyd9ID0gJ1BvZGXFoWF2YW5qZSBrb250ZWtzdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGFydGljbGVzIHBlciBwYWdlJ30gPSAnRkFRIMSNbGFuYWthIHBvIHN0cmFuaSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFPdmVydmlld1NtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBGQVEgZGF0YSBmb3VuZC4nfSA9ICdOaXN1IHByb25hxJFlbmkgRkFRIHBvZGFjaS4nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRUmVsYXRlZEFydGljbGVzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydvdXQgb2YgNSd9ID0gJ29kIDUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRU2VhcmNoCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydLZXl3b3JkJ30gPSAnS2xqdcSNbmEgcmXEjSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWb3RlIChlLiBnLiBFcXVhbHMgMTAgb3IgR3JlYXRlclRoYW4gNjApJ30gPSAnR2xhc2FqIChucHIgamVkbmFrbyAxMCBpbGkgdmXEh2Ugb2QgNjApJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGUgKGUuIGcuIEVxdWFscyAyNSUgb3IgR3JlYXRlclRoYW4gNzUlKSd9ID0gJ09jZW5pIChucHIgamVkbmFrbyAyNSUgaWxpIHZlxIdlIG9kIDc1JSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwcm92ZWQnfSA9ICdPZG9icmVubyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQgYnknfSA9ICdQb3NsZWRuamkgamUgbWVuamFvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENyZWF0ZSBUaW1lIChiZWZvcmUvYWZ0ZXIpJ30gPSAnVnJlbWUga3JlaXJhbmphIEZBUSDEjWxhbmthIChwcmUvcG9zbGUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENyZWF0ZSBUaW1lIChiZXR3ZWVuKSd9ID0gJ1ZyZW1lIGtyZWlyYW5qYSBGQVEgxI1sYW5rYSAoaXptZcSRdSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ2hhbmdlIFRpbWUgKGJlZm9yZS9hZnRlciknfSA9ICdWcmVtZSBwcm9tZW5lIEZBUSDEjWxhbmthIChwcmUvcG9zbGUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENoYW5nZSBUaW1lIChiZXR3ZWVuKSd9ID0gJ1ZyZW1lIHByb21lbmUgRkFRIMSNbGFua2EgKGl6bWXEkXUpJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVNlYXJjaE9wZW5TZWFyY2hEZXNjcmlwdGlvbkZ1bGx0ZXh0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVFGdWxsdGV4dCd9ID0gJ0ZBUSB0ZWtzdCc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFTZWFyY2hTbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIFNlYXJjaCd9ID0gJ0ZBUSBwcmV0cmFnYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9maWxlIFNlbGVjdGlvbid9ID0gJ0l6Ym9yIHByb2ZpbGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSd9ID0gJ0dsYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdm90ZSBzZXR0aW5ncyd9ID0gJ05lbWEgcG9kZcWhYXZhbmphIHphIGdsYXNhbmplJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmljIHZvdGVzJ30gPSAnU3BlY2lmacSNbmkgZ2xhc292aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlLiBnLiBFcXVhbHMgMTAgb3IgR3JlYXRlclRoYW4gNjAnfSA9ICducHIgamVkbmFrbyAxMCBpbGkgdmXEh2Ugb2QgNjAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0ZSd9ID0gJ09jZW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHJhdGUgc2V0dGluZ3MnfSA9ICdOZW1hIHBvZGXFoWF2YW5qYSB6YSBvY2Vuaml2YW5qZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpYyByYXRlJ30gPSAnU3BlY2lmacSNbmEgb2NlbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZS4gZy4gRXF1YWxzIDI1JSBvciBHcmVhdGVyVGhhbiA3NSUnfSA9ICducHIgamVkbmFrbyAyNSUgaWxpIHZlxIdlIG9kIDc1JSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDcmVhdGUgVGltZSd9ID0gJ1ZyZW1lIGtyZWlyYW5qYSBGQVEgxI1sYW5rYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDaGFuZ2UgVGltZSd9ID0gJ1ZyZW1lIHByb21lbmUgRkFRIMSNbGFua2EnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRWm9vbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEluZm9ybWF0aW9uJ30gPSAnRkFRIGluZm9ybWFjaWphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGluZyd9ID0gJ09jZW5qaXZhbmplJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGVzJ30gPSAnR2xhc292aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB2b3RlcyBmb3VuZCEnfSA9ICdHbGFzb3ZpIG5pc3UgcHJvbmHEkWVuaSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdm90ZXMgZm91bmQhIEJlIHRoZSBmaXJzdCBvbmUgdG8gcmF0ZSB0aGlzIEZBUSBhcnRpY2xlLid9ID0gJ0dsYXNvdmkgbmlzdSBwcm9uYcSRZW5pISBCdWRpdGUgcHJ2aSBrb2ppIMSHZSBvY2VuaXRpIG92YWogRkFRIMSNbGFuYWsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Rvd25sb2FkIEF0dGFjaG1lbnQnfSA9ICdQcmV1em1pIHByaWxvZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyBvcGVuIGxpbmtzIGluIHRoZSBmb2xsb3dpbmcgZGVzY3JpcHRpb24gYmxvY2tzLCB5b3UgbWlnaHQgbmVlZCB0byBwcmVzcyBDdHJsIG9yIENtZCBvciBTaGlmdCBrZXkgd2hpbGUgY2xpY2tpbmcgdGhlIGxpbmsgKGRlcGVuZGluZyBvbiB5b3VyIGJyb3dzZXIgYW5kIE9TKS4nfSA9CiAgICAgICAgJ0RhIGJpc3RlIG90dm9yaWxpIHZlemUgdSBzbGVkZcSHaW0gYmxva292aW1hIG9waXNhLCBtb8W+ZGEgxIdldGUgdHJlYmF0aSBkYSBwcml0aXNuZXRlIOKAnkN0cmzigJ0gaWxpIOKAnkNtZOKAnSBpbGkg4oCeU2hpZnTigJ0gdGFzdGVyIGRvayBpc3RvdnJlbWVubyBrbGlrbmV0ZSBuYSB2ZXp1ICh6YXZpc2kgb2QgdmHFoWVnIE9TIGkgcHJlZ2xlZGHEjWEpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3cgaGVscGZ1bCB3YXMgdGhpcyBhcnRpY2xlPyBQbGVhc2UgZ2l2ZSB1cyB5b3VyIHJhdGluZyBhbmQgaGVscCB0byBpbXByb3ZlIHRoZSBGQVEgRGF0YWJhc2UuIFRoYW5rIFlvdSEnfSA9CiAgICAgICAgJ0tvbGlrbyBqZSBrb3Jpc3RhbiBvdmFqIMSNbGFuYWs/IE1vbGltbyB2YXMgZGEgZGF0ZSB2YcWhdSBvY2VudSBpIHBvbW9nbmV0ZSBwb2RpemFuanUga3ZhbGl0YXRhIGJhemUgxI1lc3RvIHBvc3RhdmxqYW5paCBwaXRhbmphLiBIdmFsYSBWYW0hICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgaGVscGZ1bCd9ID0gJ25pamUga29yaXNubyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd2ZXJ5IGhlbHBmdWwnfSA9ICd2cmxvIGtvcmlzbm8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRWm9vbVNtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIHRpdGxlIHRvIGFydGljbGUgc3ViamVjdCd9ID0gJ0RvZGFqIG5hc2xvdiBGQVEgxI1sYW5rdSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRkFRIFRleHQnfSA9ICdVbmVzaSBGQVEgdGVrc3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZ1bGwgRkFRJ30gPSAnVW5lc2kga29tcGxldGFuIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRkFRIExpbmsnfSA9ICdVbmVzaSBGQVEgdmV6dSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRkFRIFRleHQgJiBMaW5rJ30gPSAnVW5lc2kgRkFRIHRla3N0IGkgdmV6dSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRnVsbCBGQVEgJiBMaW5rJ30gPSAnVW5lc2kga29tcGxldGFuIEZBUSBpIHZlenUnOwoKICAgICMgVGVtcGxhdGU6IEN1c3RvbWVyRkFRRXhwbG9yZXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhdGVzdCB1cGRhdGVkIEZBUSBhcnRpY2xlcyd9ID0gJ1Bvc2xlZG5qZSBhxb51cmlyYW5pIEZBUSDEjWxhbmNpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEZBUSBhcnRpY2xlcyBmb3VuZC4nfSA9ICdOaXN1IHByb25hxJFlbmkgRkFRIMSNbGFuY2kuJzsKCiAgICAjIFRlbXBsYXRlOiBDdXN0b21lckZBUVJlbGF0ZWRBcnRpY2xlcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtaWdodCBiZSBoZWxwZnVsJ30gPSAnT3ZvIG1vxb5lIGRhIGJ1ZGUgb2QgcG9tb8SHaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3VuZCBubyBoZWxwZnVsIHJlc291cmNlcyBmb3IgdGhlIHN1YmplY3QgYW5kIHRleHQuJ30gPSAnS29yaXNuaSByZXN1cnNpIHphIHVuZXRpIHByZWRtZXQgaSB0ZWtzdCBuaXN1IHByb25hxJFlbmkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGUgYSBzdWJqZWN0IG9yIHRleHQgdG8gZ2V0IGEgbGlzdCBvZiBoZWxwZnVsIHJlc291cmNlcy4nfSA9ICdaYSBsaXN0dSBrb3Jpc25paCByZXN1cnNhLCBtb2xpbW8gdW5lc2l0ZSBwcmVkbWV0IGlsaSB0ZWtzdC4nOwoKICAgICMgVGVtcGxhdGU6IEN1c3RvbWVyRkFRU2VhcmNoCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGdWxsdGV4dCBzZWFyY2ggaW4gRkFRIGFydGljbGVzIChlLiBnLiAiSm9obipuIiBvciAiV2lsbCoiKSd9ID0gJ1BvdHB1bmEgdGVrc3R1YWxuYSBwcmV0cmFnYSB1IEZBUSDEjWxhbmNpbWEgKG5wci4gIkpvaG4qbiIgaWxpICJXaWxsKiIpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGUgcmVzdHJpY3Rpb25zJ30gPSAnT2dyYW5pxI1lbmphIGdsYXNhbmphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgRkFRIGFydGljbGVzIHdpdGggdm90ZXMuLi4nfSA9ICdTYW1vIEZBUSDEjWxhbmNpIHNhIGdsYXNvdmltYS4uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRlIHJlc3RyaWN0aW9ucyd9ID0gJ09ncmFuacSNZW5qYSBvY2Vuaml2YW5qYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IEZBUSBhcnRpY2xlcyB3aXRoIHJhdGUuLi4nfSA9ICdTYW1vIEZBUSDEjWxhbmNpIHNhIG9jZW5vbS4uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlc3RyaWN0aW9ucyd9ID0gJ1ZyZW1lbnNrYSBvZ3JhbmnEjWVuamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSBGQVEgYXJ0aWNsZXMgY3JlYXRlZCd9ID0gJ1NhbW8gRkFRIMSNbGFuY2kga3JlaXJhbmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSBGQVEgYXJ0aWNsZXMgY3JlYXRlZCBiZXR3ZWVuJ30gPSAnU2FtbyBGQVEgxI1sYW5jaSBrcmVpcmFuaSBpem1lxJF1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaC1Qcm9maWxlIGFzIFRlbXBsYXRlPyd9ID0gJ1Byb2ZpbCBwcmV0cmFnZSBrYW8gxaFhYmxvbj8nOwoKICAgICMgVGVtcGxhdGU6IEN1c3RvbWVyRkFRWm9vbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJ0aWNsZSBOdW1iZXInfSA9ICdCcm9qIMSNbGFua2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIGZvciBhcnRpY2xlcyB3aXRoIGtleXdvcmQnfSA9ICdUcmHFvmkgxI1sYW5rZSBzYSBrbGp1xI1ub20gcmXEjWknOwoKICAgICMgVGVtcGxhdGU6IFB1YmxpY0ZBUVNlYXJjaE9wZW5TZWFyY2hEZXNjcmlwdGlvbkZBUU51bWJlcgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljJ30gPSAnSmF2bm8nOwoKICAgICMgVGVtcGxhdGU6IFB1YmxpY0ZBUVNlYXJjaFJlc3VsdFNob3J0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydCYWNrIHRvIEZBUSBFeHBsb3Jlcid9ID0gJ05hemFkIG5hIEZBUSBwcmV0cmHFvml2YcSNJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUFkZC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgcncgcGVybWlzc2lvbiEnfSA9ICdQb3RyZWJuYSB2YW0gamUg4oCecnfigJ0gZG96dm9sYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY2F0ZWdvcmllcyBmb3VuZCB3aGVyZSB1c2VyIGhhcyByZWFkL3dyaXRlIHBlcm1pc3Npb25zISd9ID0gJ0thdGVnb3JpamUgdSBrb2pvaiBrb3Jpc25payBpbWEgcHJpc3R1cCBiZXogb2dyYW5pxI1lbmphIG5pc3UgcHJvbmHEkWVuZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGVmYXVsdCBsYW5ndWFnZSBmb3VuZCBhbmQgY2FuXCd0IGNyZWF0ZSBhIG5ldyBvbmUuJ30gPSAnTmlqZSBwcm9uYcSRZW4gcG9kcmF6dW1ldmFuaSBqZXppayBpIG5lIG1vxb5lIHNlIGtyZWlyYXRpIG5vdi4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRQ2F0ZWdvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgQ2F0ZWdvcnlJRCEnfSA9ICdQb3RyZWJhbiBJRCBLYXRlZ29yaWplISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGNhdGVnb3J5IHNob3VsZCBoYXZlIGEgbmFtZSEnfSA9ICdLYXRlZ29yaWphIHRyZWJhIGRhIGltYSBpbWUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY2F0ZWdvcnkgYWxyZWFkeSBleGlzdHMnfSA9ICdPdmEga2F0ZWdvcmlqYSB2ZcSHIHBvc3RvamknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBjYXRlZ29yeSBhbHJlYWR5IGV4aXN0cyEnfSA9ICdPdmEga2F0ZWdvcmlqYSB2ZcSHIHBvc3RvamkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIENhdGVnb3J5SUQgaXMgZ2l2ZW4hJ30gPSAnTmlqZSBkYXQgSUQgS2F0ZWdvcmlqZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgY2F0ZWdvcnkgJXMhJ30gPSAnTmlqZSBiaWxvIG1vZ3XEh2Ugb2JyaXNhdGkga2F0ZWdvcmlqdSAlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGNhdGVnb3J5IHVwZGF0ZWQhJ30gPSAnRkFRIGthdGVnb3JpamEgYcW+dXJpcmFuYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGNhdGVnb3J5IGFkZGVkISd9ID0gJ0ZBUSBrYXRlZ29yaWphIGRvZGF0YSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIENhdGVnb3J5J30gPSAnT2JyacWhaSBrYXRlZ29yaWp1JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gSXRlbUlEIGlzIGdpdmVuISd9ID0gJ05pamUgZGF0IElEIFN0YXZrZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgbm8gcGVybWlzc2lvbiBmb3IgdGhpcyBjYXRlZ29yeSEnfSA9ICdOZW1hdGUgZG96dm9sdSB6YSBvdnUga2F0ZWdvcmlqdSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgRkFRIGFydGljbGUgJXMhJ30gPSAnTmlqZSBiaWxvIG1vZ3XEh2Ugb2JyaXNhdGkgRkFRIMSNbGFuYWsgJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUV4cGxvcmVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgQ2F0ZWdvcnlJRCAlcyBpcyBpbnZhbGlkLid9ID0gJ0lEIEthdGVnb3JpamUgJXMgamUgbmVpc3ByYXZhbiEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRSGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gSXRlbUlEIGlzIGdpdmVuISd9ID0gJ05lIG1vxb5lIHNlIHByaWthemF0aSBpc3RvcmlqYXQsIGplciBuaWplIGRhdCBJRCBTdGF2a2UhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBIaXN0b3J5J30gPSAnRkFRIGlzdG9yaWphdCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFKb3VybmFsLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSm91cm5hbCd9ID0gJ0ZBUSBkbmV2bmlrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgY29uZmlnIG9wdGlvbiBGQVE6OkZyb250ZW5kOjpPdmVydmlldyd9ID0gJ1BvdHJlYm5hIGtvbmZpZ3VyYWNpb25hIG9wY2lqYSBGQVE6OkZyb250ZW5kOjpPdmVydmlldyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWcgb3B0aW9uIEZBUTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3IG5lZWRzIHRvIGJlIGEgSEFTSCByZWYhJ30gPQogICAgICAgICdLb25maWd1cmFjaW9uYSBvcGNpamEgRkFROjpGcm9udGVuZDo6T3ZlcnZpZXcgbW9yYSBkYSBidWRlIEhBU0ggcmVmZXJlbmNhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjb25maWcgb3B0aW9uIGZvdW5kIGZvciB0aGUgdmlldyAiJXMiISd9ID0gJ05pamUgcHJvbmHEkWVuYSBrb25maWd1cmFjaW9uYSBzdGF2a2EgemEgcHJlZ2xlZCAiJXMiISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFMYW5ndWFnZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gTGFuZ3VhZ2VJRCBpcyBnaXZlbiEnfSA9ICdOaWplIGRhdCBJRCBKZXppa2EhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBuYW1lIGlzIHJlcXVpcmVkISd9ID0gJ0ltZSBqZSBvYmF2ZXpubyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBsYW5ndWFnZSBhbHJlYWR5IGV4aXN0cyEnfSA9ICdPdmFqIGplemlrIHZlxIcgcG9zdG9qaSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgbGFuZ3VhZ2UgJXMhJ30gPSAnTmlqZSBiaWxvIG1vZ3XEh2Ugb2JyaXNhdGkgamV6aWsgJXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBsYW5ndWFnZSB1cGRhdGVkISd9ID0gJ0HFvnVyaXJhbiBGQVEgamV6aWshJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBsYW5ndWFnZSBhZGRlZCEnfSA9ICdEb2RhdCBGQVEgamV6aWshJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBMYW5ndWFnZSAlcyd9ID0gJ09icmnFoWkgamV6aWsgJXMnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRUHJpbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Jlc3VsdCd9ID0gJ1JlenVsdGF0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgdXBkYXRlJ30gPSAnUG9zbGVkbmplIGHFvnVyaXJhbmplJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBEeW5hbWljIEZpZWxkcyd9ID0gJ0ZBUSBkaW5hbWnEjWthIHBvbGphJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUVJpY2hUZXh0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyAlcyBpcyBnaXZlbiEnfSA9ICdOaWplIGRhdCAlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGxvYWQgTGFuZ3VhZ2VPYmplY3QhJ30gPSAnSmV6acSNa2kgb2JqZWt0IHNlIG5lIG1vxb5lIHXEjWl0YXRpISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFJlc3VsdCEnfSA9ICdOZW1hIHJlenVsdGF0YSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIE51bWJlcid9ID0gJ0ZBUSBicm9qJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgQ2hhbmdlZCBieSd9ID0gJ1Bvc2xlZG5qaSBqZSBtZW5qYW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ3JlYXRlIFRpbWUgKGJlZm9yZS9hZnRlciknfSA9ICdWcmVtZSBrcmVpcmFuamEgRkFRIHN0YXZrZSAocHJlL3Bvc2xlKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSXRlbSBDcmVhdGUgVGltZSAoYmV0d2VlbiknfSA9ICdWcmVtZSBrcmVpcmFuamEgRkFRIHN0YXZrZSAoaXptZcSRdSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ2hhbmdlIFRpbWUgKGJlZm9yZS9hZnRlciknfSA9ICdWcmVtZSBpem1lbmUgRkFRIHN0YXZrZSAocHJlL3Bvc2xlKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSXRlbSBDaGFuZ2UgVGltZSAoYmV0d2VlbiknfSA9ICdWcmVtZSBpem1lbmUgRkFRIHN0YXZrZSAoaXptZcSRdSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXF1YWxzJ30gPSAnSmVkbmFrbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmVhdGVyIHRoYW4nfSA9ICdWZcSHZSBvZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmVhdGVyIHRoYW4gZXF1YWxzJ30gPSAnSmVkbmFrbyBpbGkgdmXEh2Ugb2QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU21hbGxlciB0aGFuJ30gPSAnTWFuamUgb2QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU21hbGxlciB0aGFuIGVxdWFscyd9ID0gJ0plZG5ha28gaWxpIG1hbmplIG9kJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgRmlsZUlEISd9ID0gJ1BvdHJlYmFuIElEIFBvbGphISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGFua3MgZm9yIHlvdXIgdm90ZSEnfSA9ICdIdmFsYSBuYSB2YcWhZW0gZ2xhc3UhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIGFscmVhZHkgdm90ZWQhJ30gPSAnVmXEhyBzdGUgZ2xhc2FsaSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gcmF0ZSBzZWxlY3RlZCEnfSA9ICdOaWplIGl6YWJyYW5hIG5pIGplZG5hIG9jZW5hISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdm90aW5nIG1lY2hhbmlzbSBpcyBub3QgZW5hYmxlZCEnfSA9ICdNZWhhbml6YW0gemEgZ2xhc2FuamUgbmlqZSBha3RpdmlyYW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB2b3RlIHJhdGUgaXMgbm90IGRlZmluZWQhJ30gPSAnT2NlbmppdmFuamUgZ2xhc2FuamEgbmlqZSBkZWZpbmlzYW5vISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQ3VzdG9tZXJGQVFQcmludC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgUHJpbnQnfSA9ICfFoHRhbXBhIEZBUSDEjWxhbmthJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9DdXN0b21lckZBUVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBiZXR3ZWVuJ30gPSAnS3JlaXJhbiBpem1lxJF1JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9DdXN0b21lckZBUVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgSXRlbUlEISd9ID0gJ1BvdHJlYmFuIElEIFN0YXZrZSEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL1B1YmxpY0ZBUUV4cGxvcmVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZXMgKG5ldyBjcmVhdGVkKSd9ID0gJ0ZBUSDEjWxhbmNpIChub3ZvIGtyZWlyYW5pKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZXMgKHJlY2VudGx5IGNoYW5nZWQpJ30gPSAnRkFRIMSNbGFuY2kgKG5lZGF2bm8gbWVuamFuaSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGVzIChUb3AgMTApJ30gPSAnRkFRIMSNbGFuY2kgKHBydmloIDEwKSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvUHVibGljRkFRUlNTLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBUeXBlIGlzIGdpdmVuISd9ID0gJ05pamUgZGF0IFRpcCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZSBtdXN0IGJlIGVpdGhlciBMYXN0Q3JlYXRlIG9yIExhc3RDaGFuZ2Ugb3IgVG9wMTAhJ30gPSAnVHlwZSBtb3JhIGJpdGkgTGFzdENyZWF0ZSwgTGFzdENoYW5nZSBpbGkgVG9wMTAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBjcmVhdGUgUlNTIGZpbGUhJ30gPSAnUlNTIGRhdG90ZWthIG5lIG1vxIdlIGJpdGkgc25pbWxqZW5hISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0hlYWRlck1ldGEvQWdlbnRGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChGQVFGdWxsdGV4dCknfSA9ICclcyAoRkFRIHRla3N0KSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0hlYWRlck1ldGEvQ3VzdG9tZXJGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gQ3VzdG9tZXIgKCVzKSd9ID0gJyVzIC0gS2xpamVudCAoJXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gQ3VzdG9tZXIgKEZBUUZ1bGx0ZXh0KSd9ID0gJyVzIC0gS2xpamVudCAoRkFRIHRla3N0KSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0hlYWRlck1ldGEvUHVibGljRkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAtIFB1YmxpYyAoJXMpJ30gPSAnJXMgLSBKYXZubyAoJXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gUHVibGljIChGQVFGdWxsdGV4dCknfSA9ICclcyAtIEphdm5vIChGQVEgdGVrc3QpJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTGF5b3V0L0ZBUS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCByYXRlISd9ID0gJ05lb3Bob2RuYSBvY2VuYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBhcnRpY2xlIGlzIGVtcHR5ISd9ID0gJ8SMbGFuYWsgamUgcHJhemFuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXRlc3QgY3JlYXRlZCBGQVEgYXJ0aWNsZXMnfSA9ICdQb3NsZWRuamUga3JlaXJhbmkgRkFRIMSNbGFuY2knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG9wIDEwIEZBUSBhcnRpY2xlcyd9ID0gJ05hanBvcHVsYXJuaWppaCAxMCBGQVEgxI1sYW5ha2EnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9MaW5rT2JqZWN0L0ZBUS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29udGVudCBUeXBlJ30gPSAnVGlwIHNhZHLFvmFqYSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9EeW5hbWljRmllbGQvRHJpdmVyL0ZBUS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IHRoZSBhdHRyaWJ1dGUgd2hpY2ggRkFRcyB3aWxsIGJlIHNlYXJjaGVkIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4dGVybmFsLXNvdXJjZSBrZXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IHRoZSB0eXBlIG9mIGRpc3BsYXknfSA9ICcnOwoKICAgICMgRGF0YWJhc2UgWE1MIC8gU09QTSBEZWZpbml0aW9uOiBGQVEuc29wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW50ZXJuYWwnfSA9ICdpbnRlcm5vJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2V4dGVybmFsJ30gPSAnZWtzdGVybm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncHVibGljJ30gPSAnamF2bm8nOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGZpbHRlciBmb3IgSFRNTCBvdXRwdXQgdG8gYWRkIGxpbmtzIGJlaGluZCBhIGRlZmluZWQgc3RyaW5nLiBUaGUgZWxlbWVudCBJbWFnZSBhbGxvd3MgdHdvIGlucHV0IGtpbmRzLiBGaXJzdCB0aGUgbmFtZSBvZiBhbiBpbWFnZSAoZS5nLiBmYXEucG5nKS4gSW4gdGhpcyBjYXNlIHRoZSBPVE9CTyBpbWFnZSBwYXRoIHdpbGwgYmUgdXNlZC4gVGhlIHNlY29uZCBwb3NzaWJpbGl0eSBpcyB0byBpbnNlcnQgdGhlIGxpbmsgdG8gdGhlIGltYWdlLid9ID0KICAgICAgICAnRmlsdGVyIHphIOKAnkhUTUzigJ0gaXpsYXogemEgZG9kYXZhbmplIHZlemUgaXphIGRlZmluaXNhbm9nIG5pemEgem5ha292YS4gRWxlbWVudCBTbGlrYSBkb3p2b2xqYXZhIGR2YSBuYcSNaW5hIHVub3NhLiBQcnZpIGplIG5heml2IHNsaWtlIChucHIgZmFxLnBuZykuIHUgb3ZvbSBzbHXEjWFqdSBiacSHZSBrb3JpxaHEh2VuYSDigJ5PVE9CT+KAnSBwdXRhbmphIGRvIHNsaWtlLiAgRHJ1Z2EgbW9ndcSHbm9zdCBqZSB1bm9zIHZlemUgZG8gc2xpa2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBGQVEgYXJ0aWNsZSd9ID0gJ0RvZGFqIEZBUSDEjWxhbmFrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NTUyBjb2xvciBmb3IgdGhlIHZvdGluZyByZXN1bHQuJ30gPSAn4oCeQ1NT4oCdIGJvamEgemEgcmV6dWx0YXQgZ2xhc2FuamEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIFRpbWUgVG8gTGVhdmUgZm9yIEZBUSBpdGVtcy4nfSA9ICdWcmVtZSBvc2xvYmHEkWFuamEga2XFoWEgemEgRkFRIHN0YXZrZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0ZWdvcnkgTWFuYWdlbWVudCd9ID0gJ1VwcmF2bGphbmplIGthdGVnb3JpamFtYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSBNYW5hZ2VtZW50Lid9ID0gJ1VwcmF2bGphbmplIGthdGVnb3JpamFtYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIFByaW50Lid9ID0gJ8WgdGFtcGFuamUga2xpamVudHNrb2cgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgUmVsYXRlZCBBcnRpY2xlcyd9ID0gJ1Nyb2RuaSBGQVEgxI1sYW5jaSB1IGludGVyZmVqc3Uga2xpamVudGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIFJlbGF0ZWQgQXJ0aWNsZXMuJ30gPSAnU3JvZG5pIEZBUSDEjWxhbmNpIHUgaW50ZXJmZWpzdSBrbGlqZW50YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIFpvb20uJ30gPSAnRGV0YWxqaSBrbGlqZW50c2tvZyBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBzZWFyY2guJ30gPSAnUHJldHJhZ2Ega2xpamVudHNrb2cgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEuJ30gPSAnS2xpamVudHNraSBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlY2ltYWwgcGxhY2VzIG9mIHRoZSB2b3RpbmcgcmVzdWx0Lid9ID0gJ0Jyb2ogZGVjaW1hbGEgdSByZXp1bHRhdHUgZ2xhc2FuamEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgY2F0ZWdvcnkgbmFtZS4nfSA9ICdOYXppdiBwb2RyYXp1bWV2YW5lIGthdGVnb3JpamUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbGFuZ3VhZ2UgZm9yIEZBUSBhcnRpY2xlcyBvbiBzaW5nbGUgbGFuZ3VhZ2UgbW9kZS4nfSA9ICdQb2RyYXp1bWV2YW5pIGplemlrIEZBUSDEjWxhbmFrYSB1IGplZG5vamV6acSNa29tIG5hxI1pbnUgcmFkYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBtYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duLid9ID0KICAgICAgICAnUG9kcmF6dW1ldmFuYSBtYWtzaW1hbG5hIGR1xb5pbmEgbmFzbG92YSBGQVEgxI1sYW5rYSBrb2phIMSHZSBiaXRpIHByaWthemFuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBwcmlvcml0eSBvZiB0aWNrZXRzIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0KICAgICAgICAnUG9kcmF6dW1ldmFuaSBwcmlvcml0ZXQgdGlrZXRhIHphIG9kb2JyYXZhbmplIEZBUSDEjWxhbmFrYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0ZSBmb3IgRkFRIGVudHJ5Lid9ID0gJ1BvZHJhenVtZXZhbm8gc3RhbmplIEZBUSB1bm9zYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0ZSBvZiB0aWNrZXRzIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0gJ1BvZHJhenVtZXZhbm8gc3RhbmplIHRpa2V0YSB6YSBvZG9icmF2YW5qZSBGQVEgxI1sYW5ha2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgdHlwZSBvZiB0aWNrZXRzIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0gJ1BvZHJhenVtZXZhbmkgdGlwIHRpa2V0YSB6YSBvZG9icmF2YW5qZSBGQVEgxI1sYW5ha2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgdmFsdWUgZm9yIHRoZSBBY3Rpb24gcGFyYW1ldGVyIGZvciB0aGUgcHVibGljIGZyb250ZW5kLiBUaGUgQWN0aW9uIHBhcmFtZXRlciBpcyB1c2VkIGluIHRoZSBzY3JpcHRzIG9mIHRoZSBzeXN0ZW0uJ30gPQogICAgICAgICdQb2RyYXp1bWV2YW5hIHZyZWRub3N0IHphIOKAnkFjdGlvbuKAnSBwYXJhbWV0YXIgdSBqYXZub20gZnJvbnRlbmR1LiBPdmFqIHBhcmFtZXRhciBrb3Jpc3RlIHNrcmlwdGUgc2lzdGVtYS4gJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSBBY3Rpb25zIHdoZXJlIGEgc2V0dGluZ3MgYnV0dG9uIGlzIGF2YWlsYWJsZSBpbiB0aGUgbGlua2VkIG9iamVjdHMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIFBsZWFzZSBub3RlIHRoYXQgdGhlc2UgQWN0aW9ucyBtdXN0IGhhdmUgcmVnaXN0ZXJlZCB0aGUgZm9sbG93aW5nIEpTIGFuZCBDU1MgZmlsZXM6IENvcmUuQWxsb2NhdGlvbkxpc3QuY3NzLCBDb3JlLlVJLkFsbG9jYXRpb25MaXN0LmpzLCBDb3JlLlVJLlRhYmxlLlNvcnQuanMsIENvcmUuQWdlbnQuVGFibGVGaWx0ZXJzLmpzIGFuZCBDb3JlLkFnZW50LkxpbmtPYmplY3QuanMuJ30gPQogICAgICAgICdEZWZpbmnFoWUgQWtjaWplIGdkZSBqZSBkdWdtZSBwb3N0YXZraSBkb3N0dXBubyB1IHBvdmV6YW5vbSBncmFmacSNa29tIGVsZW1lbnR1IG9iamVrdGEgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTW9saW1vIGRhIGltYXRlIG5hIHVtdSBkYSBvdmUgQWtjaWplIG1vcmFqdSBkYSBidWR1IHJlZ2lzdHJvdmFuZSB1IHNsZWRlxIdpbSBKUyBpIENTUyBkYXRvdGVrYW1hOiBDb3JlLkFsbG9jYXRpb25MaXN0LmNzcywgQ29yZS5VSS5BbGxvY2F0aW9uTGlzdC5qcywgQ29yZS5VSS5UYWJsZS5Tb3J0LmpzLCBDb3JlLkFnZW50LlRhYmxlRmlsdGVycy5qcyBpIENvcmUuQWdlbnQuTGlua09iamVjdC5qcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIGlmIHRoZSBGQVEgdGl0bGUgc2hvdWxkIGJlIGNvbmNhdGVuYXRlZCB0byBhcnRpY2xlIHN1YmplY3QuJ30gPQogICAgICAgICdPZHJlxJF1amUgZGEgbGkgbmFzbG92IEZBUSB0cmViYSBkYSBidWRlIGRvZGF0IG5hIHRlbXUgxI1sYW5rYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgRkFRcyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90ZTogT25seSBGQVEgYXR0cmlidXRlcyBhbmQgZHluYW1pYyBmaWVsZHMgKER5bmFtaWNGaWVsZF9OYW1lWCkgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBGQVEgam91cm5hbC4nfSA9CiAgICAgICAgJ0RlZmluacWhZSBtb2R1bCBwcmVnbGVkYSB6YSBtYWxpIHByaWtheiBGQVEgZG5ldm5pa2EuICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgRkFRIGxpc3QuJ30gPQogICAgICAgICdEZWZpbmnFoWUgbW9kdWwgcHJlZ2xlZGEgemEgbWFsaSBwcmlrYXogRkFRIGxpc3RlLiAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiBhIEZBUSBzZWFyY2ggb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RlZmluacWhZSBwb2RyYXp1bWV2YW5pIGF0cmlidXQgemEgc29ydGlyYW5qZSBGQVEgcHJldHJhemkgRkFRICB1IGludGVyZmVqc3UgIG9wZXJhdGVyYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiBhIEZBUSBzZWFyY2ggb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RlZmluacWhZSBwb2RyYXp1bWV2YW5pIGF0cmlidXQgemEgc29ydGlyYW5qZSBGQVEgdSBwcmV0cmF6aSBGQVEgIHUgaW50ZXJmZWpzdSBrbGlqZW50YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiBhIEZBUSBzZWFyY2ggb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmnFoWUgcG9kcmF6dW1ldmFuaSBhdHJpYnV0IHphIHNvcnRpcmFuamUgRkFRIHUgcHJldHJhemkgRkFRICB1IGphdm5vbSBpbnRlcmZlanN1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIHRoZSBGQVEgRXhwbG9yZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RlZmluacWhZSBwb2RyYXp1bWV2YW5pIGF0cmlidXQgemEgc29ydGlyYW5qZSBGQVEgdSBGQVEgcHJldHJhxb5pdmHEjXUgdSBpbnRlcmZlanN1IG9wZXJhdGVyYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEZWZpbmnFoWUgcG9kcmF6dW1ldmFuaSBhdHJpYnV0IHphIHNvcnRpcmFuamUgRkFRIHUgRkFRIHByZXRyYcW+aXZhxI11IHUgaW50ZXJmZWpzdSBrbGlqZW50YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGVmaW5pxaFlIHBvZHJhenVtZXZhbmkgYXRyaWJ1dCB6YSBzb3J0aXJhbmplIEZBUSB1IEZBUSBwcmV0cmHFvml2YcSNdSB1IGphdm5vbSBpbnRlcmZlanN1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ0RlZmluacWhZSBwb2RyYXp1bWV2YW5pIHJlZG9zbGVkIEZBUSB1IHJlenVsdGF0aW1hIEZBUSBwcmV0cmHFvml2YcSNYSB1IGludGVyZmVqc3Ugb3ByZXJhdGVyYS4gR29yZTogbmFqc3RhcmlqaSBuYSB2cmh1LiBEb2xlOiBuYWpub3ZpamUgbmEgdnJodS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICdEZWZpbmnFoWUgcG9kcmF6dW1ldmFuaSByZWRvc2xlZCBGQVEgdSByZXp1bHRhdGltYSBGQVEgcHJldHJhxb5pdmHEjWEgdSBpbnRlcmZlanN1IGtsaWplbnRhLiBHb3JlOiBuYWpzdGFyaWppIG5hIHZyaHUuIERvbGU6IG5ham5vdmlqZSBuYSB2cmh1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgcHVibGljIGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICdEZWZpbmnFoWUgcG9kcmF6dW1ldmFuaSByZWRvc2xlZCBGQVEgcmV6dWx0YXRpbWEgRkFRIHByZXRyYcW+aXZhxI1hIHUgamF2bm9tIGludGVyZmVqc3UuIEdvcmU6IG5hanN0YXJpamkgbmEgdnJodS4gRG9sZTogbmFqbm92aWplIG5hIHZyaHUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ0RlZmluacWhZSBwb2RyYXp1bWV2YW5pIHJlZG9zbGVkIEZBUSB1IHJlenVsdGF0aW1hIHByZXRyYWdlIHUgaW50ZXJmZWpzdSBvcHJlcmF0ZXJhLiBHb3JlOiBuYWpzdGFyaWppIG5hIHZyaHUuIERvbGU6IG5ham5vdmlqZSBuYSB2cmh1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICdEZWZpbmnFoWUgcG9kcmF6dW1ldmFuaSByZWRvc2xlZCBGQVEgdSByZXp1bHRhdGltYSBwcmV0cmFnZSB1IGludGVyZmVqc3Uga2xpamVudGEuIEdvcmU6IG5hanN0YXJpamkgbmEgdnJodS4gRG9sZTogbmFqbm92aWplIG5hIHZyaHUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICdEZWZpbmnFoWUgcG9kcmF6dW1ldmFuaSByZWRvc2xlZCBGQVEgdSByZXp1bHRhdGltYSBwcmV0cmFnZSB1IGphdm5vbSBpbnRlcmZlanN1LiBHb3JlOiBuYWpzdGFyaWppIG5hIHZyaHUuIERvbGU6IG5ham5vdmlqZSBuYSB2cmh1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNob3duIEZBUSBzZWFyY2ggYXR0cmlidXRlIGZvciBGQVEgc2VhcmNoIHNjcmVlbi4nfSA9CiAgICAgICAgJ0RlZmluacWhZSBwb2RyYXp1bWV2YW5pIHByaWthemFuaSBGQVEgYXRyaWJ1dCBwcmV0cmFnZSB6YSBGQVEgcHJvem9yIHphIHByZXRyYWd1LiAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaGVpZ2h0IGZvciB0aGUgcmljaCB0ZXh0IGVkaXRvciBjb21wb25lbnQgZm9yIHRoaXMgc2NyZWVuLiBFbnRlciBudW1iZXIgKHBpeGVscykgb3IgcGVyY2VudCB2YWx1ZSAocmVsYXRpdmUpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGluZm9ybWF0aW9uIHRvIGJlIGluc2VydGVkIGluIGEgRkFRIGJhc2VkIFRpY2tldC4gIkZ1bGwgRkFRIiBpbmNsdWRlcyB0ZXh0LCBhdHRhY2htZW50cyBhbmQgaW5saW5lIGltYWdlcy4nfSA9CiAgICAgICAgJ09kcmXEkXVqZSBpbmZvcm1hY2lqZSBrb2plIMSHZSBiaXRpIHViYcSNZW5lIHUgRkFRIGJhemlyYW5pIHRpa2V0LiAiS29tcGxldGFuIEZBUSIgdWtsanXEjXVqZSB0ZWtzdCwgcHJpbG9nZSBpIHVtZXRudXRlIHNsaWtlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZGFzaGJvYXJkIGJhY2tlbmQuICJMaW1pdCIgZGVmaW5lcyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgZGlzcGxheWVkIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCBhY2Nlc3MgdG8gdGhlIHBsdWdpbiAoZS4gZy4gR3JvdXA6IGFkbWluO2dyb3VwMTtncm91cDI7KS4gIkRlZmF1bHQiIGluZGljYXRlcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuJ30gPQogICAgICAgICdEZWZpbmnFoWUgcG96YWRpbnNrZSBwYXJhbWV0cmUgemEga29udHJvbG51IHRhYmx1LiAiTGltaXQiIGRlZmluacWhZSBicm9qIHBvZHJlenVtZXZhbm8gcHJpa2F6YW5paCB1bm9zYS4gIkdydXBhIiBzZSBrb3Jpc3RpIGRhIG9ncmFuacSNaSBwcmlzdHVwIGRvZGF0a3UgKG5wci4gR3J1cGE6IGFkbWluO2dyb3VwMTtncm91cDI7KS4iUG9kcmF6dW1ldmFubyIgdWthenVqZSBuYSB0byBkYSBsaSBqZSBkb2RhdGFrIHBvZHJhenVtZXZhbm8gYWt0aXZpcmFuIGlsaSBkYSBqZSBwb3RyZWJubyBkYSBnYSBrb3Jpc25payBtYW51ZWxubyBha3RpdmlyYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgRkFRIEV4cGxvcmVyLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnRGVmaW5pxaFlIHByaWthemFuZSBrb2xvbmUgdSBGQVEgcHJldHJhxb5pdmHEjXUuIE92YSBvcGNpamEgbmVtYSB1dGljYWogbmEgcG96aWNpamUga29sb25hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBGQVEgam91cm5hbC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ0RlZmluacWhZSBwcmlrYXphbmUga29sb25lIHUgRkFRIGRuZXZuaWt1LiBPdmEgb3BjaWphIG5lbWEgdXRpY2FqIG5hIHBvemljaWplIGtvbG9uYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgRkFRIHNlYXJjaC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ0RlZmluacWhZSBwcmlrYXphbmUga29sb25lIHUgRkFRIHByZXRyYXppLiBPdmEgb3BjaWphIG5lbWEgdXRpY2FqIG5hIHBvemljaWplIGtvbG9uYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB3aGVyZSB0aGUgXCdJbnNlcnQgRkFRXCcgbGluayB3aWxsIGJlIGRpc3BsYXllZC4nfSA9ICdEZWZpbmnFoWUgZ2RlIMSHZSAiVWJhY2kgRkFRIiB2ZXphIGJpdGkgcHJpa2F6YW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbml0aW9uIG9mIEZBUSBpdGVtIGZyZWUgdGV4dCBmaWVsZC4nfSA9ICdEZWZpbmljaWphIHBvbGphIHNsb2JvZG5vZyB0ZWtzdGEgemEgRkFRIHN0YXZrdS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoaXMgRkFRJ30gPSAnT2JyacWhaSBvdmFqIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIGFkZCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RpbmFtacSNa2EgcG9samEgcHJpa2F0YW5hIHUgZWtyYW51IGRvZGF2YW5qYSBGQVEgdSBpbnRlcmZlanN1IG9wZXJhdGVyYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGluYW1pxI1rYSBwb2xqYSBwcmlrYXphbmEgdSBla3JhbnUgaXptZW5lIEZBUSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIG92ZXJ2aWV3IHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGluYW1pxI1rYSBwb2xqYSBwcmlrYXphbmEgdSBwcmVnbGVkdSBGQVEgdSBpbnRlcmZlanN1IGtsaWplbnRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIG92ZXJ2aWV3IHNjcmVlbiBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RpbmFtacSNa2EgcG9samEgcHJpa2F6YW5hIHUgcHJlZ2xlZHUgRkFRIHUgamF2bm9tIGludGVyZmVqc3UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgcHJpbnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEaW5hbWnEjWthIHBvbGphIHByaWthemFuYSB1IGVrcmFudSDFoXRhbXBlIEZBUSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHByaW50IHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGluYW1pxI1rYSBwb2xqYSBwcmlrYXphbmEgdSBla3JhbnUgxaF0YW1wZSBGQVEgdSBpbnRlcmZlanN1IGtsaWplbnRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHByaW50IHNjcmVlbiBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RpbmFtacSNa2EgcG9samEgcHJpa2F6YW5hIHUgZWtyYW51IMWhdGFtcGUgRkFRIHUgamF2bm9tIGludGVyZmVqc3UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc2VhcmNoIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGluYW1pxI1rYSBwb2xqYSBwcmlrYXphbmEgdSBla3JhbnUgcHJldHJhZ2UgRkFRIHUgaW50ZXJmZWpzdSBvcGVyYXRlcmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc2VhcmNoIHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGluYW1pxI1rYSBwb2xqYSBwcmlrYXphbmEgdSBla3JhbnUgcHJldHJhZ2UgRkFRIHUgaW50ZXJmZWpzdSBrbGlqZW50YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBzZWFyY2ggc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGluYW1pxI1rYSBwb2xqYSBwcmlrYXphbmEgdSBla3JhbnUgcHJldHJhZ2UgRkFRIHUgamF2bm9tIGludGVyZmVqc3UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc21hbGwgZm9ybWF0IG92ZXJ2aWV3IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGluYW1pxI1rYSBwb2xqYSBwcmlrYXphbmEgdSBwcmVnbGVkdSBGQVEgbWFsb2cgZm9ybWF0YSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdEaW5hbWnEjWthIHBvbGphIHByaWthemFuYSB1IGRldGFsam5vbSBwcmVnbGVkdSBGQVEgdSBpbnRlcmZlanN1IG9wZXJhdGVyYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSB6b29tIHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRGluYW1pxI1rYSBwb2xqYSBwcmlrYXphbmEgdSBkZXRhbGpub20gcHJlZ2xlZHUgRkFRIHUgaW50ZXJmZWpzdSBrbGlqZW50YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSB6b29tIHNjcmVlbiBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0RpbmFtacSNa2EgcG9samEgcHJpa2F6YW5hIHUgZGV0YWxqbm9tIHByZWdsZWR1IEZBUSB1IGphdm5vbSBpbnRlcmZlanN1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRoaXMgRkFRJ30gPSAnVXJlZGkgb3ZhaiBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIG11bHRpcGxlIGxhbmd1YWdlcyBvbiBGQVEgbW9kdWxlLid9ID0gJ0FrdGl2aXJhbmplIHZpxaFlIGplemlrYSBuYSBGQVEgbW9kdWx1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgc2VydmljZSBhc3NpZ25tZW50IGZvciBGQVFzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgdGhlIHJlbGF0ZWQgYXJ0aWNsZSBmZWF0dXJlIGZvciB0aGUgY3VzdG9tZXIgZnJvbnRlbmQuJ30gPQogICAgICAgICdBa3RpdmlyYSBmdW5rY2lqdSBzcm9kbmloIMSNbGFuYWthIHphIGludGVyZmVqcyBrbGlqZW50YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHZvdGluZyBtZWNoYW5pc20gb24gRkFRIG1vZHVsZS4nfSA9ICdBa3RpdmlyYW5qZSBtZWhhbml6bWEgemEgZ2xhc2FuamUgbmEgRkFRIG1vZHVsdS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwbG9yZXInfSA9ICdJc3RyYcW+aXZhxI0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFKQVggUmVzcG9uZGVyJ30gPSAnRkFRIEFKQVggb2Rnb3ZhcmHEjSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQUpBWCBSZXNwb25kZXIgZm9yIFJpY2h0ZXh0Lid9ID0gJ0ZBUSBBSkFYIG9kZ292YXJhxI0gemEgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJlYSd9ID0gJ0ZBUSBwcm9zdG9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcmVhLid9ID0gJ0ZBUSBwcm9zdG9yLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgRGVsZXRlLid9ID0gJ09icmnFoWkgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgRWRpdC4nfSA9ICdVcmVkaSBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBIaXN0b3J5Lid9ID0gJ0lzdG9yaWphdCBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBKb3VybmFsIE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICdPZ3JhbmnEjWVuamUgcHJlZ2xlZGEgRkFRIGRuZXZuaWthICJtYWxvIic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJ09ncmFuacSNZW5qZSBwcmVnbGVkYSBGQVEgIm1hbG8iJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBQcmludC4nfSA9ICfFoHRhbXBhaiBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBzZWFyY2ggYmFja2VuZCByb3V0ZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9ICdNb2R1bCBydXRlcmEgRkFRIHByZXRyYWdlIHUgaW50ZXJmZWpzdSBvcGVyYXRlcmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpZWxkNCd9ID0gJ1BvbGplNCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWVsZDUnfSA9ICdQb2xqZTUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnVsbCBGQVEnfSA9ICdLb21wbGV0YW4gRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0gJ0dydXBhIHphIG9kb2JyYXZhbmplIEZBUSDEjWxhbmFrYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiB0aGlzIEZBUSd9ID0gJ0lzdG9yaWphdCBvdm9nIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBhY3RpdmF0ZWQsIEZBUSBhcnRpY2xlcyBvZiBzdGF0dXMgdHlwZSBpbnRlcm5hbCBhcmUgYWxzbyB0YWtlbiBpbnRvIGFjY291bnQgZm9yIHRoZSBhcHByb3ZhbCBwcm9jZXNzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgaW50ZXJuYWwgZmllbGRzIG9uIGEgRkFRIGJhc2VkIFRpY2tldC4nfSA9ICdVa2xqdcSNaSBpbnRlcm5hIHBvbGphIHUgRkFRIGJhemlyYW4gdGlrZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgdGhlIG5hbWUgb2YgZWFjaCBmaWVsZCBpbiBhIEZBUSBiYXNlZCBUaWNrZXQuJ30gPSAnVWtsanXEjWkgbmF6aXYgc3Zha29nIHBvbGphIHUgRkFRIGJhemlyYW4gdGlrZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludGVyZmFjZXMgd2hlcmUgdGhlIHF1aWNrIHNlYXJjaCBzaG91bGQgYmUgc2hvd24uJ30gPSAnSW50ZXJmZWpzIG5hIGtvbSB0cmViYSBwcmlrYXphdGkgYnJ6dSBwcmV0cmFndS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSm91cm5hbCd9ID0gJ0RuZXZuaWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFuZ3VhZ2UgTWFuYWdlbWVudCd9ID0gJ1VwcmF2bGphbmplIGplemljaW1hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhbmd1YWdlIE1hbmFnZW1lbnQuJ30gPSAnVXByYXZsamFuamUgamV6aWNpbWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbWl0IGZvciB0aGUgc2VhcmNoIHRvIGJ1aWxkIHRoZSBrZXl3b3JkIEZBUSBhcnRpY2xlIGxpc3QuJ30gPSAnT2dyYW5pxI1lbmplIHByZXRyYWdlIHphIGdlbmVyaXNhbmplIGxpc3RlIGtsanXEjW5paCByZcSNaSBGQVEgxI1sYW5ha2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhpcyBGQVEgaXRlbSd9ID0gJ1BvdmXFvmkgZHJ1Z2kgb2JqZWthdCBzYSBvdm9tIHN0YXZrb20gRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2YgcXVldWUgbmFtZXMgZm9yIHdoaWNoIHRoZSByZWxhdGVkIGFydGljbGUgZmVhdHVyZSBpcyBlbmFibGVkLid9ID0KICAgICAgICAnTGlzdGEgaW1lbmEgcmVkb3ZhIHphIGtvamUgamUgZnVuY2lqYSBzcm9kbmloIMSNbGFuYWthIGFrdGl2aXJhbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2Ygc3RhdGUgdHlwZXMgd2hpY2ggY2FuIGJlIHVzZWQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0xpc3RhIHRpcG92YSBzdGFuamEga29qaSBzZSBtb2d1IGtvcmlzdGl0aSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIHN0YXRlIHR5cGVzIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICdMaXN0YSB0aXBvdmEgc3RhbmphIGtvamkgc2UgbW9ndSBrb3Jpc3RpdGkgdSBpbnRlcmZlanN1IGtsaWplbnRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIHN0YXRlIHR5cGVzIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTGlzdGEgdGlwb3ZhIHN0YW5qYSBrb2ppIHNlIG1vZ3Uga29yaXN0aXRpIHUgamF2bm9tIGludGVyZmVqc3UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xvYWRlciBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9ICdSZWdpc3RyYWNpamEgbW9kdWxhIHphIHXEjWl0YXZhbmplIHphIGphdm5pIGludGVyZmVqcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWFrc2ltYWxuaSBicm9qIEZBUSDEjWxhbmFrYSBrb2ppIMSHZSBiaXRpIHByaWthemFuaSB1IHJlenVsdGF0dSBGQVEgcHJldHJhxb5pdmHEjWEgdSBpbnRlcmZlanN1IG9wZXJhdGVyYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWFrc2ltYWxuaSBicm9qIEZBUSDEjWxhbmFrYSBrb2ppIMSHZSBiaXRpIHByaWthemFuaSB1IHJlenVsdGF0dSBGQVEgcHJldHJhxb5pdmHEjWEgdSBpbnRlcmZlanN1IGtsaWplbnRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWFrc2ltYWxuaSBicm9qIEZBUSDEjWxhbmFrYSBrb2ppIMSHZSBiaXRpIHByaWthemFuaSB1IHJlenVsdGF0dSBGQVEgcHJldHJhxb5pdmHEjWEgdSBqYXZub20gaW50ZXJmZWpzdS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIGpvdXJuYWwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01ha3NpbWFsbmkgYnJvaiBGQVEgxI1sYW5ha2Ega29qaSDEh2UgYml0aSBwcmlrYXphbmkgdSBGQVEgZG5ldm5pa3UgdSBpbnRlcmZlanN1IG9wZXJhdGVyYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgcmVzdWx0IG9mIGEgc2VhcmNoIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNYWtzaW1hbG5pIGJyb2ogRkFRIMSNbGFuYWthIGtvamkgxIdlIGJpdGkgcHJpa2F6YW5pIHUgcmV6dWx0YXR1IHByZXRyYWdlIHUgaW50ZXJmZWpzdSBvcGVyYXRlcmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHJlc3VsdCBvZiBhIHNlYXJjaCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWFrc2ltYWxuaSBicm9qIEZBUSDEjWxhbmFrYSBrb2ppIMSHZSBiaXRpIHByaWthemFuaSB1IHJlenVsdGF0dSBwcmV0cmFnZSB1IGludGVyZmVqc3Uga2xpamVudGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHJlc3VsdCBvZiBhIHNlYXJjaCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01ha3NpbWFsbmkgYnJvaiBGQVEgxI1sYW5ha2Ega29qaSDEh2UgYml0aSBwcmlrYXphbmkgdSByZXp1bHRhdHUgcHJldHJhZ2UgdSBqYXZub20gaW50ZXJmZWpzdS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIEV4cGxvcmVyIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNYWtzaW1hbG5hIGR1xb5pbmEgbmFzbG92YSB1IEZBUSDEjWxhbmt1IGtvamkgxIdlIGJpdGkgcHJpa2F6YW5pIHUgRkFRIHByZXRyYcW+aXZhxI11IHUgaW50ZXJmZWpzdSBvcGVyYXRlcmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBFeHBsb3JlciBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWFrc2ltYWxuYSBkdcW+aW5hIG5hc2xvdmEgdSBGQVEgxI1sYW5rdSBrb2ppIMSHZSBiaXRpIHByaWthemFuaSB1IEZBUSBwcmV0cmHFvml2YcSNdSB1IGludGVyZmVqc3Uga2xpamVudGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBFeHBsb3JlciBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01ha3NpbWFsbmEgZHXFvmluYSBuYXNsb3ZhIHUgRkFRIMSNbGFua3Uga29qaSDEh2UgYml0aSBwcmlrYXphbmkgdSBGQVEgaXN0cmHFvml2YcSNdSB1IGphdm5vbSBpbnRlcmZlanN1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgU2VhcmNoIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNYWtzaW1hbG5hIGR1xb5pbmEgbmFzbG92YSB1IEZBUSDEjWxhbmt1IGtvamkgxIdlIGJpdGkgcHJpa2F6YW5pIHUgRkFRIHByZXRyYXppIHUgaW50ZXJmZWpzdSBvcGVyYXRlcmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBTZWFyY2ggaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01ha3NpbWFsbmEgZHXFvmluYSBuYXNsb3ZhIHUgRkFRIMSNbGFua3Uga29qaSDEh2UgYml0aSBwcmlrYXphbmkgdSBGQVEgcHJldHJhemkgdSBpbnRlcmZlanN1IGtsaWplbnRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgU2VhcmNoIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWFrc2ltYWxuYSBkdcW+aW5hIG5hc2xvdmEgdSBGQVEgxI1sYW5rdSBrb2ppIMSHZSBiaXRpIHByaWthemFuaSB1IEZBUSBwcmV0cmF6aSB1IGphdm5vbSBpbnRlcmZlanN1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgam91cm5hbCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTWFrc2ltYWxuYSBkdcW+aW5hIG5hc2xvdmEgdSBGQVEgxI1sYW5rdSBrb2ppIMSHZSBiaXRpIHByaWthemFuaSB1IEZBUSBkbmV2bmlrdSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gZ2VuZXJhdGUgSFRNTCBPcGVuU2VhcmNoIHByb2ZpbGUgZm9yIHNob3J0IEZBUSBzZWFyY2ggaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01vZHVsIHphIGdlbmVyaXNhbmplIEhUTUwgT3BlblNlYXJjaCBwcm9maWxhIHphIGtyYXRrdSBGQVEgcHJldHJhZ3UgdSBpbnRlcmZlanN1IGtsaWplbnRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gZ2VuZXJhdGUgSFRNTCBPcGVuU2VhcmNoIHByb2ZpbGUgZm9yIHNob3J0IEZBUSBzZWFyY2ggaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICdNb2R1bCB6YSBnZW5lcmlzYW5qZSBIVE1MIE9wZW5TZWFyY2ggcHJvZmlsYSB6YSBrcmF0a3UgRkFRIHByZXRyYWd1IHUgamF2bm9tIHByb2ZpbHUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBnZW5lcmF0ZSBodG1sIE9wZW5TZWFyY2ggcHJvZmlsZSBmb3Igc2hvcnQgRkFRIHNlYXJjaC4nfSA9CiAgICAgICAgJ01vZHVsIHphIGdlbmVyaXNhbmplIEhUTUwgT3BlblNlYXJjaCBwcm9maWxhIHphIGtyYXRrdSBGQVEgcHJldHJhZ3UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBGQVEgQXJ0aWNsZS4nfSA9ICdOb3ZpIEZBUSDEjWxhbmFrLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgRkFRIGFydGljbGVzIG5lZWQgYXBwcm92YWwgYmVmb3JlIHRoZXkgZ2V0IHB1Ymxpc2hlZC4nfSA9ICdOb3ZpIEZBUSDEjWxhbmNpIHRyZWJhanUgYml0aSBvZG9icmVuaSBwcmUgb2JqYXZsaml2YW5qYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQnJvaiBGQVEgxI1sYW5ha2Ega29qaSDEh2UgYml0aSBwcmlrYXphbmkgdSBGQVEgcHJldHJhxb5pdmHEjXUgdSBpbnRlcmZlanN1IGtsaWplbnRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQnJvaiBGQVEgxI1sYW5ha2Ega29qaSDEh2UgYml0aSBwcmlrYXphbmkgdSBGQVEgcHJldHJhxb5pdmHEjXUgdSBqYXZub20gaW50ZXJmZWpzdS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgb24gZWFjaCBwYWdlIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQnJvaiBGQVEgxI1sYW5ha2Ega29qaSDEh2UgYml0aSBwcmlrYXphbmkgbmEgc3Zha29qIHN0cmFuaSByZXp1bHRhdGEgcHJldHJhZ2UgdSBpbnRlcmZlanN1IGtsaWplbnRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBvbiBlYWNoIHBhZ2Ugb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnQnJvaiBGQVEgxI1sYW5ha2Ega29qaSDEh2UgYml0aSBwcmlrYXphbmkgbmEgc3Zha29qIHN0cmFuaSByZXp1bHRhdGEgcHJldHJhZ2UgdSBqYXZub20gaW50ZXJmZWpzdS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIHNob3duIGl0ZW1zIGluIGxhc3QgY2hhbmdlcy4nfSA9ICdCcm9qIHByaWthemFuaWggc3RhdmtpIHUgcG9zbGVkbmppbSBpem1lbmFtYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIHNob3duIGl0ZW1zIGluIGxhc3QgY3JlYXRlZC4nfSA9ICdCcm9qIHByaWthemFuaWggc3RhdmtpIHUgcG9zbGVkbmplIGtyZWlyYW5pbS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIHNob3duIGl0ZW1zIGluIHRoZSB0b3AgMTAgZmVhdHVyZS4nfSA9ICdCcm9qIHByaWthemFuaWggc3RhdmtpIHUgInBydmloIDEwIiAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J091dHB1dCBmaWx0ZXIgdG8gYWRkIEphdmEtc2NyaXB0IHRvIEN1c3RvbWVyVGlja2V0TWVzc2FnZSBzY3JlZW4uJ30gPQogICAgICAgICdJemxhem5pIGZpbHRlciB6YSB1YmFjaXZhbmplIEphdmFTY3JpcHQgdSBDdXN0b21lclRpY2tldE1lc3NhZ2UgZWtyYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J091dHB1dCBsaW1pdCBmb3IgdGhlIHJlbGF0ZWQgRkFRIGFydGljbGVzLid9ID0gJ09ncmFuacSNZW5qZSBicm9qYSBwcmlrYXphbmloIHNyb2RuaWggRkFRIMSNbGFuYWthLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBGQVEgaXRlbXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgRkFRIGpvdXJuYWwgb3ZlcnZpZXcuJ30gPQogICAgICAgICdQYXJhbWV0cmkgc3RyYW5pY2EgKG5hIGtvamltYSBzdSBGQVEgc3RhdmtlIHByaWthemFuZSkgbmEgbWFsb20gcHJpa2F6dSBwcmVnbGVkYSBGQVEgZG5ldm5pa2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIEZBUSBpdGVtcyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBGQVEgb3ZlcnZpZXcuJ30gPQogICAgICAgICdQYXJhbWV0cmkgc3RyYW5pY2EgKG5hIGtvamltYSBzdSB2aWRsaml2ZSBGQVEgc3RhdmtlKSBzbWFuamVub2cgcHJlZ2xlZGEgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGlzIEZBUSd9ID0gJ8WgdGFtcGFqIG92YWogRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBGQVEgUHJpbnQuJ30gPSAnxaB0YW1wYW5qZSBqYXZuaWggRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRIFpvb20uJ30gPSAnRGV0YWxqaSBqYXZuaWggRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRIHNlYXJjaC4nfSA9ICdQcmV0cmFnYSBqYXZuaWggRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRLid9ID0gJ0phdm5pIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVldWUgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPSAnUmVkIHphIG9kb2JyYXZhbmplIEZBUSDEjWxhbmFrYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0ZXMgZm9yIHZvdGluZy4gS2V5IG11c3QgYmUgaW4gcGVyY2VudC4nfSA9ICdPY2VuZSB6YSBnbGFzYW5qZS4gS2xqdcSNIG1vcmEgYml0aSB1IHByb2NlbnRpbWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1MnfSA9ICdTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBGQVEnfSA9ICdQcmV0cmHFvmkgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBGQVEgU21hbGwuJ30gPSAnTWFsYSBGQVEgcHJldHJhZ2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBGQVEuJ30gPSAnUHJldHJhZ2EgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgaG93IG1hbnkgaXRlbXMgc2hvdWxkIGJlIHNob3duIGluIEpvdXJuYWwgT3ZlcnZpZXcgIlNtYWxsIiBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnSXphYmVyaXRlIGtvbGlrbyDEh2Ugc3RhdmtpIGJpdGkgcG9kcmF6dW1ldmFubyBwcmlrYXphbm8gdSBwcmVnbGVkdSBkbmV2bmlrYSBtYWxvZyBmb3JtYXRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgaG93IG1hbnkgaXRlbXMgc2hvdWxkIGJlIHNob3duIGluIE92ZXJ2aWV3ICJTbWFsbCIgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJ0l6YWJlcml0ZSBrb2xpa28gxIdlIHN0YXZraSBiaXRpIHBvZHJhenVtZXZhbm8gcHJpa2F6YW5vIHUgcHJlZ2xlZHUgbWFsb2cgZm9ybWF0YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBkZWZhdWx0IGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gQWdlbnRGQVFab29tLid9ID0KICAgICAgICAnUG9kZXNpIHBvZHJhenVtZXZhbnUgdmlzaW51ICh1IHBpa3NlbGltYSkgaW5saW5lIEhUTUwgcG9samEgdSBBZ2VudEZBUVpvb20uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZGVmYXVsdCBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEN1c3RvbWVyRkFRWm9vbSAoYW5kIFB1YmxpY0ZBUVpvb20pLid9ID0KICAgICAgICAnUG9kZXNpIHBvZHJhenVtZXZhbnUgdmlzaW51ICh1IHBpa3NlbGltYSkgaW5saW5lIEhUTUwgcG9samEgdSBDdXN0b21lckZBUVpvb20gKGkgUHVibGljRkFRWm9vbSkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgbWF4aW11bSBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEFnZW50RkFRWm9vbS4nfSA9CiAgICAgICAgJ1BvZGVzaSBtYWtzaW1hbG51IHZpc2ludSAodSBwaWtzZWxpbWEpIGlubGluZSBIVE1MIHBvbGphIHUgQWdlbnRGQVFab29tLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBDdXN0b21lckZBUVpvb20gKGFuZCBQdWJsaWNGQVFab29tKS4nfSA9CiAgICAgICAgJ1BvZGVzaSBtYWtzaW1hbG51IHZpc2ludSAodSBwaWtzZWxpbWEpIGlubGluZSBIVE1MIHBvbGphIHUgQ3VzdG9tZXJGQVFab29tIChpIFB1YmxpY0ZBUVpvb20pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93ICJJbnNlcnQgRkFRIExpbmsiIEJ1dHRvbiBpbiBBZ2VudEZBUVpvb21TbWFsbCBmb3IgcHVibGljIEZBUSBBcnRpY2xlcy4nfSA9CiAgICAgICAgJ1ByaWthxb5pICJVYmFjaSBGQVEgdmV6dSIgZHVnbWUgdSBBZ2VudEZBUVpvb21TbWFsbCB6YSBqYXZuZSBGQVEgYXJ0aWtsZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyAiSW5zZXJ0IEZBUSBUZXh0ICYgTGluayIgLyAiSW5zZXJ0IEZ1bGwgRkFRICYgTGluayIgQnV0dG9uIGluIEFnZW50RkFRWm9vbVNtYWxsIGZvciBwdWJsaWMgRkFRIEFydGljbGVzLid9ID0KICAgICAgICAnUHJpa2HFvmkgIlViYWNpIEZBUSB0ZWtzdCBpIHZlenUiIC8gIlViYWNpIGNlbyBGQVEgaSB2ZXp1IGR1Z21lIHUgQWdlbnRGQVFab29tU21hbGwgemEgamF2bmUgRkFRIGFydGlrbGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgIkluc2VydCBGQVEgVGV4dCIgLyAiSW5zZXJ0IEZ1bGwgRkFRIiBCdXR0b24gaW4gQWdlbnRGQVFab29tU21hbGwuJ30gPQogICAgICAgICdQcmlrYcW+aSAiVWJhY2kgRkFRIHRla3N0IiAvICJVYmFjaSBjZW8gRkFRIiBkdWdtZSB1IEFnZW50RkFRWm9vbVNtYWxsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IEZBUSBBcnRpY2xlIHdpdGggSFRNTC4nfSA9ICdQcmlrYXogRkFRIMSNbGFua2Ega2FvIEhUTUwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgRkFRIHBhdGggeWVzL25vLid9ID0gJ1ByaWthxb5pIHB1dGFuanUgZG8gRkFRIGRhL25lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGludmFsaWQgaXRlbXMgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1ByaWtheiBuZWlzcHJ2bmloIHN0YXZraSB1IHJlenVsdGF0aW1hIEZBUSBwcmV0cmHFvml2YcSNYSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGl0ZW1zIG9mIHN1YmNhdGVnb3JpZXMuJ30gPSAnUHJpa2HFvmkgc3RhdmtlIHN1YmthdGVnb3JpamEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgbGFzdCBjaGFuZ2UgaXRlbXMgaW4gZGVmaW5lZCBpbnRlcmZhY2VzLid9ID0gJ1ByaWthxb5pIHphZG5qZSBwcm9tZW5qZW5lIHN0YXZrZSB1IGRlZmluaXNhbmltIGludGVyZmVqc2ltYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBsYXN0IGNyZWF0ZWQgaXRlbXMgaW4gZGVmaW5lZCBpbnRlcmZhY2VzLid9ID0gJ1ByaWthxb5pIHphZG5qZSBrcmVpcmFuZSBzdGF2a2UgdSBkZWZpbmlzYW5pbSBpbnRlcmZlanNpbWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgcmVsYXRlZCBhcnRpY2xlcyBvbiBzZXJ2aWNlIGNoYW5nZSBldmVuIHdpdGggZW1wdHkgc3ViamVjdCBhbmQgYm9keS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHRoZSBzdGFycyBmb3IgdGhlIGFydGljbGVzIHdpdGggYSByYXRpbmcgZXF1YWwgb3IgZ3JlYXRlciBsaWtlIHRoZSBkZWZpbmVkIHZhbHVlIChzZXQgdmFsdWUgXCcwXCcgdG8gZGVhY3RpdmF0ZSB0aGUgb3V0cHV0KS4nfSA9CiAgICAgICAgJ1ByaWthxb5pIHp2ZXpkaWNlIHphIMSNbGFua2Ugc2EgamVkbmFrb20gaWxpIGJvbGpvbSBvY2Vub20gb2QgZGVmaW5pc2FuZSB2cmVkbm9zdGkgKHBvc3Rhdml0ZSB2cmVkbm9zdCBcJzBcJyB6YSBkZWFrdGl2aXJhbmplIHByaWthemEpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHRvcCAxMCBpdGVtcyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAnUHJpa2HFvmkgcHJ2aWggMTAgc3RhdmtpIHUgZGVmaW5pc2FuaW0gaW50ZXJmZWpzaW1hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHZvdGluZyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAnUHJpa2HFvmkgZ2xhc2FuamUgdSBkZWZpbmlzYW5pbSBpbnRlcmZlanNpbWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBsaW5raW5nIGEgRkFRIHdpdGggYW5vdGhlciBvYmplY3QgaW4gdGhlIHpvb20gdmlldyBvZiBzdWNoIEZBUSBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnVSBtZW5panUgcHJpa2F6dWplIHZlenUga29qYSBvbW9ndcSHYXZhIHBvdmV6aXZhbmplIEZBUSBzYSBkcnVnaW0gb2JqZWt0b20gdSBkZXRhbGpub20gcHJpa2F6dSB0b2cgRkFRIHUgaW50ZXJmZWpzdSBvcGVyYXRlcmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyB0byBkZWxldGUgYSBGQVEgaW4gaXRzIHpvb20gdmlldyBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnVSBtZW5panUgcHJpa2F6dWplIHZlenUga29qYSBvbW9ndcSHYXZhIGJyaXNhbmplIEZBUSB1IGRldGFsam5vbSBwcmlrYXp1IHUgaW50ZXJmZWpzdSBvcGVyYXRlcmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSBGQVEgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnVSBtZW5panUgcHJpa2F6dWplIHZlenUgemEgcHJpc3R1cCBGQVEgaXN0b3JpamF0dSB1IGRldGFsam5vbSBwcmlrYXp1IHUgaW50ZXJmZWpzdSBvcGVyYXRlcmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgRkFRIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdVIG1lbmlqdSBwcmlrYXp1amUgdmV6dSB6YSBpem1lbnUgRkFRIHUgZGV0YWxqbm9tIHByaWthenUgdSBpbnRlcmZlanN1IG9wZXJhdGVyYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIEZBUSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1UgbWVuaWp1IHByaWthenVqZSB2ZXp1IHphIHBvdnJhdGFrIHUgZGV0YWxqbmkgcHJpa2F6IEZBUSB1ICBpbnRlcmZlanN1IG9wZXJhdGVyYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIHByaW50IGEgRkFRIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdVIG1lbmlqdSBwcmlrYXp1amUgdmV6dSB6YSDFoXRhbXBhbmplIEZBUSB1IGRldGFsam5vbSBwcmlrYXp1IHUgaW50ZXJmZWpzdSBvcGVyYXRlcmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NvbHV0aW9uJ30gPSAnUmXFoWVuamUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3ltcHRvbSd9ID0gJ1NpbXB0b20nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGV4dCBPbmx5J30gPSAnU2FtbyB0ZWtzdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgZGVmYXVsdCBsYW5ndWFnZXMgZm9yIHRoZSByZWxhdGVkIEZBUSBhcnRpY2xlcy4nfSA9ICdQb2RyYXp1bWV2YW5pIGplemljaSB6YSBzcm9kbmUgRkFRIMSNbGFua2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIEZBUSwgZS5nLiBGQVEjLCBLQiMsIE15RkFRIy4gVGhlIGRlZmF1bHQgaXMgRkFRIy4nfSA9CiAgICAgICAgJ0lkZW50aWZpa2F0b3IgemEgRkFRLCBucHIuIEZBUSMsIEtCIywgTXlGQVEjLiBQb2RyYXp1bWV2YW5vIGplIEZBUSMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBkZWZpbmVzIHRoYXQgYSBcJ0ZBUVwnIG9iamVjdCBjYW4gYmUgbGlua2VkIHdpdGggb3RoZXIgXCdGQVFcJyBvYmplY3RzIHVzaW5nIHRoZSBcJ05vcm1hbFwnIGxpbmsgdHlwZS4nfSA9CiAgICAgICAgJ092byBwb2RlxaFhdmFuamUgZGVmaW5pxaFlIGRhIEZBUSBvYmpla3QgbW/FvmUgZGEgc2UgcG92ZcW+ZSBzYSBkcnVnaW0gRkFRIG9iamVrdGltYSBrb3Jpc3RlxIdpIHZlenUgdGlwYSBcJ05vcm1hbFwnLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnRkFRXCcgb2JqZWN0cyB1c2luZyB0aGUgXCdQYXJlbnRDaGlsZFwnIGxpbmsgdHlwZS4nfSA9CiAgICAgICAgJ092byBwb2RlxaFhdmFuamUgZGVmaW5pxaFlIGRhIEZBUSBvYmpla2F0IG1vxb5lIGRhIHNlIHBvdmXFvmUgc2EgZHJ1Z2ltIEZBUSBvYmpla3RpbWEga29yaXN0ZcSHaSB2ZXp1IHRpcGEgXCdQYXJlbnRDaGlsZFwnLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnVGlja2V0XCcgb2JqZWN0cyB1c2luZyB0aGUgXCdOb3JtYWxcJyBsaW5rIHR5cGUuJ30gPQogICAgICAgICdPdm8gcG9kZcWhYXZhbmplIGRlZmluacWhZSBkYSBGQVEgb2JqZWt0IG1vxb5lIGRhIHNlIHBvdmXFvmUgc2EgZHJ1Z2ltIHRpa2V0IG9iamVrdGltYSBrb3Jpc3RlxIdpIHZlenUgdGlwYSBcJ05vcm1hbFwnLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnVGlja2V0XCcgb2JqZWN0cyB1c2luZyB0aGUgXCdQYXJlbnRDaGlsZFwnIGxpbmsgdHlwZS4nfSA9CiAgICAgICAgJ092byBwb2RlxaFhdmFuamUgZGVmaW5pxaFlIGRhIEZBUSBvYmpla3QgbW/FvmUgZGEgc2UgcG92ZcW+ZSBzYSBkcnVnaW0gdGlrZXQgb2JqZWt0aW1hIGtvcmlzdGXEh2kgdmV6dSB0aXBhIFwnUGFyZW50Q2hpbGRcJy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IGJvZHkgZm9yIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlLid9ID0gJ1NhZHLFvmFqIHRpa2V0YSB6YSBvZG9icmF2YW5qZSBGQVEgxI1sYW5ha2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBzdWJqZWN0IGZvciBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZS4gUGVybWl0dGVkIG5vdGlmaWNhdGlvbiB0YWdzIGFyZSA8T1RPQk9fRkFRX05VTUJFUj4sIDxPVE9CT19GQVFfQ0FURUdPUllJRD4sIDxPVE9CT19GQVFfSVRFTUlEPj4gPE9UT0JPX0ZBUV9USVRMRT4gYW5kIDxPVE9CT19GQVFfU1RBVEVJRD4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG9vbGJhciBJdGVtIGZvciBhIHNob3J0Y3V0Lid9ID0gJ1N0YXZrYSBhbGF0bmUgbGluaWplIHphIHNrcmHEh2VuaWN1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydleHRlcm5hbCAoY3VzdG9tZXIpJ30gPSAnZWtzdGVybm8gKGtsaWplbnQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2ludGVybmFsIChhZ2VudCknfSA9ICdpbnRlcm5vIChvcGVyYXRlciknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncHVibGljIChhbGwpJ30gPSAnamF2bm8gKHN2ZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncHVibGljIChwdWJsaWMpJ30gPSAnamF2bm8gKGphdm5vKSc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ05vJywKICAgICdPaycsCiAgICAnU2V0dGluZ3MnLAogICAgJ1N1Ym1pdCcsCiAgICAnVGhpcyBtaWdodCBiZSBoZWxwZnVsJywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==</File>
        <File Location="Kernel/Language/sv_FAQ.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnN2X0ZBUTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRQWRkCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIEFydGljbGUnfSA9ICdTa2FwYSBGQVEgYXJ0aWtlbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydLZXl3b3Jkcyd9ID0gJ055Y2tlbG9yZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGNhdGVnb3J5IGlzIHJlcXVpcmVkLid9ID0gJ0VuIGthdGVnb3JpIGtyw6R2cy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwcm92YWwnfSA9ICdHb2Rrw6RubmFuZGUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRQ2F0ZWdvcnkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBDYXRlZ29yeSBNYW5hZ2VtZW50J30gPSAnRkFRIGthdGVnb3JpaGFudGVyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBGQVEgQ2F0ZWdvcnknfSA9ICdMw6RnZyB0aWxsIEZBUS1rYXRlZ29yaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEZBUSBDYXRlZ29yeSd9ID0gJ1JlZGlnZXJhIEZBUS1rYXRlZ29yaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgY2F0ZWdvcnknfSA9ICdTa2FwYSBrYXRlZ29yaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0ZWdvcnknfSA9ICdTa2FwYSBrYXRlZ29yaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IENhdGVnb3J5J30gPSAnUmVkaWdlcmEga2F0ZWdvcmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3ViY2F0ZWdvcnkgb2YnfSA9ICdVbmRlcmthdGVnb3JpIHRpbGwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhdCBsZWFzdCBvbmUgcGVybWlzc2lvbiBncm91cC4nfSA9ICdWw6RubGlnZW4gdsOkbGogbWluc3QgZW4gcsOkdHRpZ2hldHNncnVwcCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBncm91cHMgdGhhdCBjYW4gYWNjZXNzIGFydGljbGVzIGluIHRoaXMgY2F0ZWdvcnkuJ30gPSAnQWdlbnQtZ3J1cHBlciBtZWQgw6V0a29tc3QgdGlsbCBhcnRpa2xhcm5hIGkgZGVubmEga2F0ZWdvcmkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dpbGwgYmUgc2hvd24gYXMgY29tbWVudCBpbiBFeHBsb3Jlci4nfSA9ICdWaXNhcyBzb20ga29tbWVudGFyIGkgVXRmb3Jza2FyZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjYXRlZ29yeT8nfSA9ICdWaWxsIGR1IHZlcmtsaWdlbiB0YSBib3J0IGRlbm5hIGthdGVnb3JpPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBjYXRlZ29yeS4gSXQgaXMgdXNlZCBpbiBhdCBsZWFzdCBvbmUgRkFRIGFydGljbGUgYW5kL29yIGlzIHBhcmVudCBvZiBhdCBsZWFzdCBvbmUgb3RoZXIgY2F0ZWdvcnknfSA9CiAgICAgICAgJ0R1IGthbiBpbnRlIHRhIGJvcnQgZGVubmEga2F0ZWdvcmluLiBEZXQgYW52w6RuZHMgYXYgbWluc3QgZW4gRkFRLWFydGlrZWwhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY2F0ZWdvcnkgaXMgdXNlZCBpbiB0aGUgZm9sbG93aW5nIEZBUSBhcnRpY2xlKHMpJ30gPSAnRGVubmEga2F0ZWdvcmkgYW52w6RuZHMgYXYgZsO2bGphbmRlIEZBUS1hcnRpa2xhcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGNhdGVnb3J5IGlzIHBhcmVudCBvZiB0aGUgZm9sbG93aW5nIHN1YmNhdGVnb3JpZXMnfSA9ICdEZW5uYSBrYXRlZ29yaSDDpHIgZsO2csOkbGRlciBmw7ZyIGbDtmxqYW5kZSB1bmRlcmthdGVncm9pZXInOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgRkFRIGFydGljbGU/J30gPSAnVmlsbCBkdSB2ZXJrbGlnZW4gdGEgYm9ydCBkZW5uYSBGQVEtYXJ0aWtlbD8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRJ30gPSAnRkFRJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUV4cGxvcmVyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgRXhwbG9yZXInfSA9ICdGQVEtdXRmb3Jza2FyZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydRdWljayBTZWFyY2gnfSA9ICdTbmFiYnPDtmsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2lsZGNhcmRzIGFyZSBhbGxvd2VkLid9ID0gJ0pva2VydGVja2VuIMOkciB0aWxsw6V0bmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkdmFuY2VkIFNlYXJjaCd9ID0gJ0F2YW5jZXJhZCBzw7ZrbmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWJjYXRlZ29yaWVzJ30gPSAnVW5kZXJrYXRlZ29yaWVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlcyd9ID0gJ0ZBUS1hcnRpa2xhcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBzdWJjYXRlZ29yaWVzIGZvdW5kLid9ID0gJ0luZ2EgdW5kZXJrYXRlZ29yaWVyIGhpdHRhZGVzLic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFIaXN0b3J5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mJ30gPSAnSGlzdG9yaWsgZsO2cic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IENvbnRlbnQnfSA9ICdIaXN0b3Jpa2lubmVow6VsbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGV0aW1lJ30gPSAnVGlkcHVua3QgZsO2ciBza2FwYW5kZSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFKb3VybmFsT3ZlcnZpZXdTbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gRkFRIEpvdXJuYWwgZGF0YSBmb3VuZC4nfSA9ICdEZXQgZmlubnMgaW5nZW4gZGF0YSBpIEZBUS1sb2dnYm9rZW4nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRTGFuZ3VhZ2UKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBMYW5ndWFnZSBNYW5hZ2VtZW50J30gPSAnRkFRIHNwcsOla2hhbnRlcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIExhbmd1YWdlJ30gPSAnTMOkZ2cgdGlsbCBGQVEtc3Byw6VrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgRkFRIExhbmd1YWdlJ30gPSAnUmVkaWdlcmEgRkFRLXNwcsOlayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2UgdGhpcyBmZWF0dXJlIGlmIHlvdSB3YW50IHRvIHdvcmsgd2l0aCBtdWx0aXBsZSBsYW5ndWFnZXMuJ30gPQogICAgICAgICdBbnbDpG5kIGRlbiBow6RyIGZ1bmt0aW9uZW4gb20gZHUgdmlsbCBhcmJldGEgbWVkIGZsZXJhIHNwcsOlay4gJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBsYW5ndWFnZSd9ID0gJ0zDpGdnIHRpbGwgc3Byw6VrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBMYW5ndWFnZSd9ID0gJ0zDpGdnIHRpbGwgc3Byw6VrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgTGFuZ3VhZ2UnfSA9ICdSZWRpZ2VyYSBzcHLDpWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgbGFuZ3VhZ2UuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIEZBUSBhcnRpY2xlISd9ID0KICAgICAgICAnRHUga2FuIGludGUgdGEgYm9ydCBkZXR0YSBzcHLDpWsuIERldCBhbnbDpG5kcyBpIG1pbnN0IGVuIEZBUS1hcnRpa2VsISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGxhbmd1YWdlIGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBGQVEgQXJ0aWNsZShzKSd9ID0gJ0RldHRhIHNwcsOlayBhbnbDpG5kcyBhdiBmw7ZsamFuZGUgRkFRLWFydGlrbGFyJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUU92ZXJ2aWV3TmF2QmFyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAnQW5wYXNzYSB2eSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgYXJ0aWNsZXMgcGVyIHBhZ2UnfSA9ICdGQVEtYXJ0aWtsYXIgcGVyIHNpZGEnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRT3ZlcnZpZXdTbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gRkFRIGRhdGEgZm91bmQuJ30gPSAnSW5nZW4gRkFRLWluZm9ybWF0aW9uIGhpdHRhZGVzLic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFSZWxhdGVkQXJ0aWNsZXMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J291dCBvZiA1J30gPSAnYXYgNSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFTZWFyY2gKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0tleXdvcmQnfSA9ICdOeWNrZWxvcmQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSAoZS4gZy4gRXF1YWxzIDEwIG9yIEdyZWF0ZXJUaGFuIDYwKSd9ID0gJ1LDtnN0ZXIgKGV4LiBsaWthIG1lZCAxMCBlbGxlciBmbGVyIMOkbiA2MCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0ZSAoZS4gZy4gRXF1YWxzIDI1JSBvciBHcmVhdGVyVGhhbiA3NSUpJ30gPSAnQmV0eWcgKGV4LiBsaWthIG1lZCAyNSUgZWxsZXIgbWVyIMOkbiA3NSUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FwcHJvdmVkJ30gPSAnR29ka8OkbmQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBjaGFuZ2VkIGJ5J30gPSAnU2VuYXN0IMOkbmRyYWQgYXYnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ3JlYXRlIFRpbWUgKGJlZm9yZS9hZnRlciknfSA9ICdGQVEtQXJ0aWtlbCBTa2FwYWQgVGlkIChmw7ZyZS9lZnRlciknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ3JlYXRlIFRpbWUgKGJldHdlZW4pJ30gPSAnRkFRLUFydGlrZWwgU2thcGFkIFRpZCAobWVsbGFuKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDaGFuZ2UgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJ0ZBUSBBcnRpa2VsIMOEbmRyYWQgVGlkIChmw7ZyZS9lZnRlciknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ2hhbmdlIFRpbWUgKGJldHdlZW4pJ30gPSAnRkFRLUFydGlrZWwgw4RuZHJhZCBUaWQgKG1lbGxhbiknOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRU2VhcmNoT3BlblNlYXJjaERlc2NyaXB0aW9uRnVsbHRleHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUUZ1bGx0ZXh0J30gPSAnRkFRLUZ1bGx0ZXh0JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVNlYXJjaFNtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgU2VhcmNoJ30gPSAnRkFRIHPDtmsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvZmlsZSBTZWxlY3Rpb24nfSA9ICdQcm9maWx2YWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSd9ID0gJ1LDtnN0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB2b3RlIHNldHRpbmdzJ30gPSAnSW5nYSByw7ZzdGluc3TDpGxsbmluZ2FyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmljIHZvdGVzJ30gPSAnU3BlY2lmaWthIHLDtnN0ZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZS4gZy4gRXF1YWxzIDEwIG9yIEdyZWF0ZXJUaGFuIDYwJ30gPSAnZS5nLiBMaWthIG1lZCAxMCBlbGxlciBTdMO2cnJlw4RuIDYwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGUnfSA9ICdCZXR5Z3PDpHR0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHJhdGUgc2V0dGluZ3MnfSA9ICdJbmdhIGJldHlnc2luc3TDpGxsbmluZ2FyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmljIHJhdGUnfSA9ICdTcGVjaWZpa3QgYmV0eWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZS4gZy4gRXF1YWxzIDI1JSBvciBHcmVhdGVyVGhhbiA3NSUnfSA9ICdlLmcuIExpa2EgbWVkIDI1JSBlbGxlciBTdMO2cnJlw4RuIDc1JSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDcmVhdGUgVGltZSd9ID0gJ0ZBUS1BcnRpa2VsIFNrYXBhZCBUaWQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ2hhbmdlIFRpbWUnfSA9ICdGQVEgYXJ0aWtlbCDDpG5kcmluZ3N0aWRwdW5rdCc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFab29tCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSW5mb3JtYXRpb24nfSA9ICdGQVEtSW5mb3JtYXRpb24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0aW5nJ30gPSAnQmV0eWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZXMnfSA9ICdSw7ZzdGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHZvdGVzIGZvdW5kISd9ID0gJ0luZ2EgcsO2c3RlciBmdW5uYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdm90ZXMgZm91bmQhIEJlIHRoZSBmaXJzdCBvbmUgdG8gcmF0ZSB0aGlzIEZBUSBhcnRpY2xlLid9ID0gJ0luZ2EgcsO2c3RlciBmdW5uYSEgQmxpIGRlbiBmw7Zyc3RhIGF0dCBiZXR5Z3PDpHR0YSBkZW5uYSBGQVEtYXJ0aWtlbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG93bmxvYWQgQXR0YWNobWVudCd9ID0gJ0xhZGRhIG5lciBiaWxhZ2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gb3BlbiBsaW5rcyBpbiB0aGUgZm9sbG93aW5nIGRlc2NyaXB0aW9uIGJsb2NrcywgeW91IG1pZ2h0IG5lZWQgdG8gcHJlc3MgQ3RybCBvciBDbWQgb3IgU2hpZnQga2V5IHdoaWxlIGNsaWNraW5nIHRoZSBsaW5rIChkZXBlbmRpbmcgb24geW91ciBicm93c2VyIGFuZCBPUykuJ30gPQogICAgICAgICdGw7ZyIGF0dCDDtnBwbmEgbMOkbmthciBpIGbDtmxqYW5kZSBiZXNrcml2bmluZ3NibG9jayBiZWjDtnZlciBkdSBrYW5za2UgdHJ5Y2thIDxDdHJsPiBlbGxlciA8Q21kPiBlbGxlciA8U2hpZnQ+IG1lZGFuIGR1IGtsaWNrYXIgcMOlIGzDpG5rZW4gKGJlcm9lbmRlIHDDpSB2aWxrZW4gd2ViYmzDpHNhcmUgZWxsZXIgb3BlcmF0aXZzeXN0ZW0gZHUgaGFyKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG93IGhlbHBmdWwgd2FzIHRoaXMgYXJ0aWNsZT8gUGxlYXNlIGdpdmUgdXMgeW91ciByYXRpbmcgYW5kIGhlbHAgdG8gaW1wcm92ZSB0aGUgRkFRIERhdGFiYXNlLiBUaGFuayBZb3UhJ30gPQogICAgICAgICdIdXIgaGrDpGxwc2FtIHZhciBkZW4gaMOkciBhcnRpa2Vsbj8gVsOkbmxpZ2VuIGdlIG9zcyBkaXR0IGJldHlnIG9jaCBoasOkbHAgb3NzIGbDtnJiw6R0dHJhIEZBUS1kYXRhYmFzZW4uIFRhY2shJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J25vdCBoZWxwZnVsJ30gPSAnaW50ZSBoasOkbHBzYW0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndmVyeSBoZWxwZnVsJ30gPSAndsOkbGRpZ3QgaGrDpGxwc2FtJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVpvb21TbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEZBUSB0aXRsZSB0byBhcnRpY2xlIHN1YmplY3QnfSA9ICdMw6RnZyB0aWxsIEZBUS10aXRlbG4gdGlsbCBhcnRpa2VsbnMgw6RtbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZBUSBUZXh0J30gPSAnS2xpc3RyYSBpbiBGQVEtdGV4dCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRnVsbCBGQVEnfSA9ICdLbGlzdHJhIGluIGZ1bGxzdMOkbmRpZyBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZBUSBMaW5rJ30gPSAnS2xpc3RyYSBpbiBsw6RuayB0aWxsIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRkFRIFRleHQgJiBMaW5rJ30gPSAnS2xpc3RyYSBpbiBGQVEtdGV4dCAmIGzDpG5rJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGdWxsIEZBUSAmIExpbmsnfSA9ICdLbGlzdHJhIGluIGZ1bGxzdMOkbmRpZyBGQVEgJiBsw6Ruayc7CgogICAgIyBUZW1wbGF0ZTogQ3VzdG9tZXJGQVFFeHBsb3JlcgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGF0ZXN0IHVwZGF0ZWQgRkFRIGFydGljbGVzJ30gPSAnU2VuYXN0IHVwcGRhdGVyYWRlIEZBUS1hcnRpa2xhcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBGQVEgYXJ0aWNsZXMgZm91bmQuJ30gPSAnSW5nYSBGQVEgYXJ0aWtsYXIgZnVubmEuJzsKCiAgICAjIFRlbXBsYXRlOiBDdXN0b21lckZBUVJlbGF0ZWRBcnRpY2xlcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtaWdodCBiZSBoZWxwZnVsJ30gPSAnRGVzc2EgYXJ0aWtsYXIga2FuIHZhcmEgYW52w6RuZGJhcmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm91bmQgbm8gaGVscGZ1bCByZXNvdXJjZXMgZm9yIHRoZSBzdWJqZWN0IGFuZCB0ZXh0Lid9ID0gJ0hpdHRhZGUgaW5nYSBhbnbDpG5kYmFyYSBhcnRpa2xhciBmw7ZyIGRldHRhIMOkbW5ldCBvY2ggdGV4dGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGUgYSBzdWJqZWN0IG9yIHRleHQgdG8gZ2V0IGEgbGlzdCBvZiBoZWxwZnVsIHJlc291cmNlcy4nfSA9ICdTa3JpdiBldHQgw6RtbmUgZWxsZXIgdGV4dCBmw7ZyIGF0dCBmw6UgZW4gbGlzdGEgw7Z2ZXIgaGrDpGxwZnVsbGEgYXJ0aWtsYXInOwoKICAgICMgVGVtcGxhdGU6IEN1c3RvbWVyRkFRU2VhcmNoCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGdWxsdGV4dCBzZWFyY2ggaW4gRkFRIGFydGljbGVzIChlLiBnLiAiSm9obipuIiBvciAiV2lsbCoiKSd9ID0gJ0Z1bGx0ZXh0LXPDtmsgaSBGQVEtYXJ0aWtsYXIgKGUuIGcuICJKb2huKm4iIGVsbGVyICJXaWxsKiIpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGUgcmVzdHJpY3Rpb25zJ30gPSAnUsO2c3QtcmVzdHJpa3Rpb25lcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IEZBUSBhcnRpY2xlcyB3aXRoIHZvdGVzLi4uJ30gPSAnRW5kYXN0IEZBUSBhcnRpa2xhciBtZWQgcsO2c3Rlci4uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRlIHJlc3RyaWN0aW9ucyd9ID0gJ0JldHlncy1yZXN0cmlrdGlvbmVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgRkFRIGFydGljbGVzIHdpdGggcmF0ZS4uLid9ID0gJ0VuZGFzdCBGQVEgYXJ0aWtsYXIgbWVkIGJldHlnLi4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVzdHJpY3Rpb25zJ30gPSAnVGlkc3Jlc3RyaWt0aW9uZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSBGQVEgYXJ0aWNsZXMgY3JlYXRlZCd9ID0gJ0VuZGFzdCBGQVEgYXJ0aWtsYXIgc2thcGFkZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IEZBUSBhcnRpY2xlcyBjcmVhdGVkIGJldHdlZW4nfSA9ICdFbmRhc3QgRkFRIGFydGlrbGFyIHNrYXBhZGUgbWVsbGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaC1Qcm9maWxlIGFzIFRlbXBsYXRlPyd9ID0gJ1PDtmstcHJvZmlsIHNvbSBtYWxsPyc7CgogICAgIyBUZW1wbGF0ZTogQ3VzdG9tZXJGQVFab29tCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcnRpY2xlIE51bWJlcid9ID0gJ0FydGlrZWxudW1tZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIGZvciBhcnRpY2xlcyB3aXRoIGtleXdvcmQnfSA9ICdTw7ZrIGVmdGVyIGFydGlrbGFyIG1lZCBueWNrZWxvcmQnOwoKICAgICMgVGVtcGxhdGU6IFB1YmxpY0ZBUVNlYXJjaE9wZW5TZWFyY2hEZXNjcmlwdGlvbkZBUU51bWJlcgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljJ30gPSAnT2ZmZW50bGlnJzsKCiAgICAjIFRlbXBsYXRlOiBQdWJsaWNGQVFTZWFyY2hSZXN1bHRTaG9ydAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQmFjayB0byBGQVEgRXhwbG9yZXInfSA9ICdUaWxsYmFrYSB0aWxsIEZBUS11dGZvcnNrYXJlbic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFBZGQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkIHJ3IHBlcm1pc3Npb24hJ30gPSAnRHUgYmVow7Z2ZXIgcnctYmVow7ZyaWdoZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY2F0ZWdvcmllcyBmb3VuZCB3aGVyZSB1c2VyIGhhcyByZWFkL3dyaXRlIHBlcm1pc3Npb25zISd9ID0gJ0luZ2Ega2F0ZWdvcmllciBoaXR0YWRlcyBkw6RyIGFudsOkbmRhcmVuIGhhciBsw6RzL3Nrcml2LXLDpHR0aWdoZXRlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkZWZhdWx0IGxhbmd1YWdlIGZvdW5kIGFuZCBjYW5cJ3QgY3JlYXRlIGEgbmV3IG9uZS4nfSA9ICdTdGFuZGFyZC1zcHLDpWsgc2FrbmFzIG9jaCBueXR0IGthbiBlaiBza2FwYXMnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRQ2F0ZWdvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgQ2F0ZWdvcnlJRCEnfSA9ICdLYXRlZ29yaS1JRCBrcsOkdnMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgY2F0ZWdvcnkgc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJ0VuIGthdGVnb3JpIGJlaMO2dmVyIGV0dCBuYW1uISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGNhdGVnb3J5IGFscmVhZHkgZXhpc3RzJ30gPSAnRGVubmEga2F0ZWdvcmkgZmlubnMgcmVkYW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY2F0ZWdvcnkgYWxyZWFkeSBleGlzdHMhJ30gPSAnRGVubmEga2F0ZWdvcmkgZmlubnMgcmVkYW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIENhdGVnb3J5SUQgaXMgZ2l2ZW4hJ30gPSAnSW5nZXQgw4RyZW5kZUlEIMOkciBhbmdpdmV0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBjYXRlZ29yeSAlcyEnfSA9ICdTeXN0ZW1ldCBrdW5kZSBpbnRlIHRhIGJvcnQga2F0ZWdvcmluJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBjYXRlZ29yeSB1cGRhdGVkISd9ID0gJ0ZBUS1rYXRlZ29yaSB1cHBkYXRlcmFkISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgY2F0ZWdvcnkgYWRkZWQhJ30gPSAnRkFRLWthdGVnb3JpIHRpbGxhZ2QhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBDYXRlZ29yeSd9ID0gJ1RhIGJvcnQga2F0ZWdvcmknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBJdGVtSUQgaXMgZ2l2ZW4hJ30gPSAnSW5nZXQgSXRlbUlEIMOkciBhbmdpdmV0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSBubyBwZXJtaXNzaW9uIGZvciB0aGlzIGNhdGVnb3J5ISd9ID0gJ0R1IHNha25hciBiZWjDtnJpZ2hldCBmw7ZyIGRlbiBow6RyIGthdGVnb3JpbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgRkFRIGFydGljbGUgJXMhJ30gPSAnS3VuZGUgaW50ZSB0YSBib3J0IEZBUS1hcnRpa2VsbiAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRRXhwbG9yZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBDYXRlZ29yeUlEICVzIGlzIGludmFsaWQuJ30gPSAnS2F0ZWdvcmlJRDp0ICVzIMOkciBvZ2lsdGlndC4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRSGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gSXRlbUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSGlzdG9yeSd9ID0gJ0ZBUS1oaXN0b3Jpayc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFKb3VybmFsLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSm91cm5hbCd9ID0gJ0ZBUS1sb2dnYm9rZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBjb25maWcgb3B0aW9uIEZBUTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpZyBvcHRpb24gRkFROjpGcm9udGVuZDo6T3ZlcnZpZXcgbmVlZHMgdG8gYmUgYSBIQVNIIHJlZiEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBjb25maWcgb3B0aW9uIGZvdW5kIGZvciB0aGUgdmlldyAiJXMiISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFMYW5ndWFnZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gTGFuZ3VhZ2VJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIG5hbWUgaXMgcmVxdWlyZWQhJ30gPSAnTmFtbiBrcsOkdnMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbGFuZ3VhZ2UgYWxyZWFkeSBleGlzdHMhJ30gPSAnRGV0dGEgc3Byw6VrIGZpbm5zIHJlZGFuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBsYW5ndWFnZSAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGxhbmd1YWdlIHVwZGF0ZWQhJ30gPSAnRkFRLXNwcsOlayB1cHBkYXRlcmF0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgbGFuZ3VhZ2UgYWRkZWQhJ30gPSAnRkFRLXNwcsOlayBza2FwYXQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBMYW5ndWFnZSAlcyd9ID0gJ1RhIGJvcnQgc3Byw6VrICVzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUVByaW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXN1bHQnfSA9ICdSZXN1bHRhdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IHVwZGF0ZSd9ID0gJ1NlbmFzdCB1cHBkYXRlcmFkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBEeW5hbWljIEZpZWxkcyd9ID0gJ0ZBUSBEeW5hbWlza2EgRsOkbHQnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRUmljaFRleHQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vICVzIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgbG9hZCBMYW5ndWFnZU9iamVjdCEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBSZXN1bHQhJ30gPSAnSW5nZXQgcmVzdWx0YXQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBOdW1iZXInfSA9ICdGQVEtbnVtbWVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgQ2hhbmdlZCBieSd9ID0gJ1NlbmFzdCDDpG5kcmFkIGF2JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJdGVtIENyZWF0ZSBUaW1lIChiZWZvcmUvYWZ0ZXIpJ30gPSAnRkFRLUFydGlrZWwgU2thcGFkIFRpZCAoZsO2cmUvZWZ0ZXIpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJdGVtIENyZWF0ZSBUaW1lIChiZXR3ZWVuKSd9ID0gJ0ZBUS1BcnRpa2VsIFNrYXBhZCBUaWQgKG1lbGxhbiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ2hhbmdlIFRpbWUgKGJlZm9yZS9hZnRlciknfSA9ICdGQVEgQXJ0aWtlbCDDhG5kcmFkIFRpZCAoZsO2cmUvZWZ0ZXIpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJdGVtIENoYW5nZSBUaW1lIChiZXR3ZWVuKSd9ID0gJ0ZBUS1BcnRpa2VsIMOEbmRyYWQgVGlkIChtZWxsYW4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VxdWFscyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmVhdGVyIHRoYW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JlYXRlciB0aGFuIGVxdWFscyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTbWFsbGVyIHRoYW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU21hbGxlciB0aGFuIGVxdWFscyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIEZpbGVJRCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhhbmtzIGZvciB5b3VyIHZvdGUhJ30gPSAnVGFjayBmw7ZyIGRpbiByw7ZzdCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgYWxyZWFkeSB2b3RlZCEnfSA9ICdEdSBoYXIgcmVkYW4gcsO2c3RhdCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gcmF0ZSBzZWxlY3RlZCEnfSA9ICdJbmdldCBiZXR5ZyBzYXR0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdm90aW5nIG1lY2hhbmlzbSBpcyBub3QgZW5hYmxlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHZvdGUgcmF0ZSBpcyBub3QgZGVmaW5lZCEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0N1c3RvbWVyRkFRUHJpbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIFByaW50J30gPSAnRkFRLWFydGlrZWwgdXRza3JpZnQnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0N1c3RvbWVyRkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGVkIGJldHdlZW4nfSA9ICdTa2FwYXQgbWVsbGFuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9DdXN0b21lckZBUVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgSXRlbUlEISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvUHVibGljRkFRRXhwbG9yZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlcyAobmV3IGNyZWF0ZWQpJ30gPSAnRkFRLWFydGlrbGFyIChueWxpZ2VuIHNrYXBhZCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGVzIChyZWNlbnRseSBjaGFuZ2VkKSd9ID0gJ0ZBUS1hcnRpa2xhciAobnlsaWdlbiDDpG5kcmFkZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGVzIChUb3AgMTApJ30gPSAnRkFRLWFydGlrbGFyIChUb3BwIDEwKSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvUHVibGljRkFRUlNTLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBUeXBlIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlIG11c3QgYmUgZWl0aGVyIExhc3RDcmVhdGUgb3IgTGFzdENoYW5nZSBvciBUb3AxMCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBSU1MgZmlsZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9IZWFkZXJNZXRhL0FnZW50RkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoRkFRRnVsbHRleHQpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvSGVhZGVyTWV0YS9DdXN0b21lckZBUVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgLSBDdXN0b21lciAoJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gQ3VzdG9tZXIgKEZBUUZ1bGx0ZXh0KSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0hlYWRlck1ldGEvUHVibGljRkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAtIFB1YmxpYyAoJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gUHVibGljIChGQVFGdWxsdGV4dCknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9MYXlvdXQvRkFRLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIHJhdGUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgYXJ0aWNsZSBpcyBlbXB0eSEnfSA9ICdEZW4gaMOkciBhcnRpa2VsbiDDpHIgdG9tISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXRlc3QgY3JlYXRlZCBGQVEgYXJ0aWNsZXMnfSA9ICdTZW5hc3Qgc2thcGFkZSBGQVEtYXJ0aWtsYXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG9wIDEwIEZBUSBhcnRpY2xlcyd9ID0gJ1RvcHAgMTAgRkFRLWFydGlrbGFyJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTGlua09iamVjdC9GQVEucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRlbnQgVHlwZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9EeW5hbWljRmllbGQvRHJpdmVyL0ZBUS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IHRoZSBhdHRyaWJ1dGUgd2hpY2ggRkFRcyB3aWxsIGJlIHNlYXJjaGVkIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4dGVybmFsLXNvdXJjZSBrZXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IHRoZSB0eXBlIG9mIGRpc3BsYXknfSA9ICcnOwoKICAgICMgRGF0YWJhc2UgWE1MIC8gU09QTSBEZWZpbml0aW9uOiBGQVEuc29wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW50ZXJuYWwnfSA9ICdpbnRlcm4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZXh0ZXJuYWwnfSA9ICdleHRlcm4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncHVibGljJ30gPSAnb2ZmZW50bGlnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBmaWx0ZXIgZm9yIEhUTUwgb3V0cHV0IHRvIGFkZCBsaW5rcyBiZWhpbmQgYSBkZWZpbmVkIHN0cmluZy4gVGhlIGVsZW1lbnQgSW1hZ2UgYWxsb3dzIHR3byBpbnB1dCBraW5kcy4gRmlyc3QgdGhlIG5hbWUgb2YgYW4gaW1hZ2UgKGUuZy4gZmFxLnBuZykuIEluIHRoaXMgY2FzZSB0aGUgT1RPQk8gaW1hZ2UgcGF0aCB3aWxsIGJlIHVzZWQuIFRoZSBzZWNvbmQgcG9zc2liaWxpdHkgaXMgdG8gaW5zZXJ0IHRoZSBsaW5rIHRvIHRoZSBpbWFnZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIGFydGljbGUnfSA9ICdMw6RnZyB0aWxsIEZBUS1hcnRpa2VsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NTUyBjb2xvciBmb3IgdGhlIHZvdGluZyByZXN1bHQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIFRpbWUgVG8gTGVhdmUgZm9yIEZBUSBpdGVtcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0ZWdvcnkgTWFuYWdlbWVudCd9ID0gJ0thdGVnb3JpaGFudGVyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGVnb3J5IE1hbmFnZW1lbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBQcmludC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIFJlbGF0ZWQgQXJ0aWNsZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIFJlbGF0ZWQgQXJ0aWNsZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgc2VhcmNoLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlY2ltYWwgcGxhY2VzIG9mIHRoZSB2b3RpbmcgcmVzdWx0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IGNhdGVnb3J5IG5hbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbGFuZ3VhZ2UgZm9yIEZBUSBhcnRpY2xlcyBvbiBzaW5nbGUgbGFuZ3VhZ2UgbW9kZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBtYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgcHJpb3JpdHkgb2YgdGlja2V0cyBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXRlIGZvciBGQVEgZW50cnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdGUgb2YgdGlja2V0cyBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCB0eXBlIG9mIHRpY2tldHMgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgdmFsdWUgZm9yIHRoZSBBY3Rpb24gcGFyYW1ldGVyIGZvciB0aGUgcHVibGljIGZyb250ZW5kLiBUaGUgQWN0aW9uIHBhcmFtZXRlciBpcyB1c2VkIGluIHRoZSBzY3JpcHRzIG9mIHRoZSBzeXN0ZW0uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIEFjdGlvbnMgd2hlcmUgYSBzZXR0aW5ncyBidXR0b24gaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rZWQgb2JqZWN0cyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gUGxlYXNlIG5vdGUgdGhhdCB0aGVzZSBBY3Rpb25zIG11c3QgaGF2ZSByZWdpc3RlcmVkIHRoZSBmb2xsb3dpbmcgSlMgYW5kIENTUyBmaWxlczogQ29yZS5BbGxvY2F0aW9uTGlzdC5jc3MsIENvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanMsIENvcmUuVUkuVGFibGUuU29ydC5qcywgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanMgYW5kIENvcmUuQWdlbnQuTGlua09iamVjdC5qcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgaWYgdGhlIEZBUSB0aXRsZSBzaG91bGQgYmUgY29uY2F0ZW5hdGVkIHRvIGFydGljbGUgc3ViamVjdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgd2hpY2ggY29sdW1ucyBhcmUgc2hvd24gaW4gdGhlIGxpbmtlZCBGQVFzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBOb3RlOiBPbmx5IEZBUSBhdHRyaWJ1dGVzIGFuZCBkeW5hbWljIGZpZWxkcyAoRHluYW1pY0ZpZWxkX05hbWVYKSBhcmUgYWxsb3dlZCBmb3IgRGVmYXVsdENvbHVtbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIEZBUSBqb3VybmFsLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBGQVEgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIGEgRkFRIHNlYXJjaCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gYSBGQVEgc2VhcmNoIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiBhIEZBUSBzZWFyY2ggb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzaG93biBGQVEgc2VhcmNoIGF0dHJpYnV0ZSBmb3IgRkFRIHNlYXJjaCBzY3JlZW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaGVpZ2h0IGZvciB0aGUgcmljaCB0ZXh0IGVkaXRvciBjb21wb25lbnQgZm9yIHRoaXMgc2NyZWVuLiBFbnRlciBudW1iZXIgKHBpeGVscykgb3IgcGVyY2VudCB2YWx1ZSAocmVsYXRpdmUpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGluZm9ybWF0aW9uIHRvIGJlIGluc2VydGVkIGluIGEgRkFRIGJhc2VkIFRpY2tldC4gIkZ1bGwgRkFRIiBpbmNsdWRlcyB0ZXh0LCBhdHRhY2htZW50cyBhbmQgaW5saW5lIGltYWdlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZGFzaGJvYXJkIGJhY2tlbmQuICJMaW1pdCIgZGVmaW5lcyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgZGlzcGxheWVkIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCBhY2Nlc3MgdG8gdGhlIHBsdWdpbiAoZS4gZy4gR3JvdXA6IGFkbWluO2dyb3VwMTtncm91cDI7KS4gIkRlZmF1bHQiIGluZGljYXRlcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgRkFRIEV4cGxvcmVyLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIEZBUSBqb3VybmFsLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIEZBUSBzZWFyY2guIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB3aGVyZSB0aGUgXCdJbnNlcnQgRkFRXCcgbGluayB3aWxsIGJlIGRpc3BsYXllZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5pdGlvbiBvZiBGQVEgaXRlbSBmcmVlIHRleHQgZmllbGQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSB0aGlzIEZBUSd9ID0gJ1JhZGVyYSBkZW5uYSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgb3ZlcnZpZXcgc2NyZWVuIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBvdmVydmlldyBzY3JlZW4gb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBwcmludCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHByaW50IHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgcHJpbnQgc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc2VhcmNoIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc2VhcmNoIHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc2VhcmNoIHNjcmVlbiBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHNtYWxsIGZvcm1hdCBvdmVydmlldyBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSB6b29tIHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgem9vbSBzY3JlZW4gb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGlzIEZBUSd9ID0gJ1JlZGlnZXJhIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgbXVsdGlwbGUgbGFuZ3VhZ2VzIG9uIEZBUSBtb2R1bGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSBzZXJ2aWNlIGFzc2lnbm1lbnQgZm9yIEZBUXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB0aGUgcmVsYXRlZCBhcnRpY2xlIGZlYXR1cmUgZm9yIHRoZSBjdXN0b21lciBmcm9udGVuZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgdm90aW5nIG1lY2hhbmlzbSBvbiBGQVEgbW9kdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHBsb3Jlcid9ID0gJ1V0Zm9yc2thcmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFKQVggUmVzcG9uZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBSkFYIFJlc3BvbmRlciBmb3IgUmljaHRleHQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcmVhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcmVhLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgRGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEhpc3RvcnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBKb3VybmFsIE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIFByaW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgc2VhcmNoIGJhY2tlbmQgcm91dGVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpZWxkNCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWVsZDUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnVsbCBGQVEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgdGhpcyBGQVEnfSA9ICdGQVEtaGlzdG9yaWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgYWN0aXZhdGVkLCBGQVEgYXJ0aWNsZXMgb2Ygc3RhdHVzIHR5cGUgaW50ZXJuYWwgYXJlIGFsc28gdGFrZW4gaW50byBhY2NvdW50IGZvciB0aGUgYXBwcm92YWwgcHJvY2Vzcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNsdWRlIGludGVybmFsIGZpZWxkcyBvbiBhIEZBUSBiYXNlZCBUaWNrZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgdGhlIG5hbWUgb2YgZWFjaCBmaWVsZCBpbiBhIEZBUSBiYXNlZCBUaWNrZXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludGVyZmFjZXMgd2hlcmUgdGhlIHF1aWNrIHNlYXJjaCBzaG91bGQgYmUgc2hvd24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0pvdXJuYWwnfSA9ICdMb2dnYm9rJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhbmd1YWdlIE1hbmFnZW1lbnQnfSA9ICdTcHLDpWtoYW50ZXJpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFuZ3VhZ2UgTWFuYWdlbWVudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGltaXQgZm9yIHRoZSBzZWFyY2ggdG8gYnVpbGQgdGhlIGtleXdvcmQgRkFRIGFydGljbGUgbGlzdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGluayBhbm90aGVyIG9iamVjdCB0byB0aGlzIEZBUSBpdGVtJ30gPSAnTMOkbmthIGV0dCBhbm5hdCBvYmpla3QgdGlsbCBkZW5uYSBGQVEtYXJ0aWtlbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIHF1ZXVlIG5hbWVzIGZvciB3aGljaCB0aGUgcmVsYXRlZCBhcnRpY2xlIGZlYXR1cmUgaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIHN0YXRlIHR5cGVzIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBzdGF0ZSB0eXBlcyB3aGljaCBjYW4gYmUgdXNlZCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2Ygc3RhdGUgdHlwZXMgd2hpY2ggY2FuIGJlIHVzZWQgaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIGpvdXJuYWwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSByZXN1bHQgb2YgYSBzZWFyY2ggaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSByZXN1bHQgb2YgYSBzZWFyY2ggaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSByZXN1bHQgb2YgYSBzZWFyY2ggaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIEV4cGxvcmVyIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIEV4cGxvcmVyIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIEV4cGxvcmVyIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBTZWFyY2ggaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgU2VhcmNoIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIFNlYXJjaCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgam91cm5hbCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBnZW5lcmF0ZSBIVE1MIE9wZW5TZWFyY2ggcHJvZmlsZSBmb3Igc2hvcnQgRkFRIHNlYXJjaCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBnZW5lcmF0ZSBIVE1MIE9wZW5TZWFyY2ggcHJvZmlsZSBmb3Igc2hvcnQgRkFRIHNlYXJjaCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gZ2VuZXJhdGUgaHRtbCBPcGVuU2VhcmNoIHByb2ZpbGUgZm9yIHNob3J0IEZBUSBzZWFyY2guJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEZBUSBBcnRpY2xlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgRkFRIGFydGljbGVzIG5lZWQgYXBwcm92YWwgYmVmb3JlIHRoZXkgZ2V0IHB1Ymxpc2hlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgb24gZWFjaCBwYWdlIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIG9uIGVhY2ggcGFnZSBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIHNob3duIGl0ZW1zIGluIGxhc3QgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIHNob3duIGl0ZW1zIGluIGxhc3QgY3JlYXRlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIHNob3duIGl0ZW1zIGluIHRoZSB0b3AgMTAgZmVhdHVyZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3V0cHV0IGZpbHRlciB0byBhZGQgSmF2YS1zY3JpcHQgdG8gQ3VzdG9tZXJUaWNrZXRNZXNzYWdlIHNjcmVlbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdXRwdXQgbGltaXQgZm9yIHRoZSByZWxhdGVkIEZBUSBhcnRpY2xlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgRkFRIGl0ZW1zIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIEZBUSBqb3VybmFsIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIEZBUSBpdGVtcyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBGQVEgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhpcyBGQVEnfSA9ICdTa3JpdiB1dCBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIEZBUSBQcmludC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIEZBUSBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRIHNlYXJjaC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIEZBUS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVldWUgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPSAnS8O2IGbDtnIgZ29ka8Okbm5hbmRlIGF2IEZBUS1hcnRpa2xhci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0ZXMgZm9yIHZvdGluZy4gS2V5IG11c3QgYmUgaW4gcGVyY2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggRkFRJ30gPSAnU8O2ayBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIEZBUSBTbWFsbC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIEZBUS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGhvdyBtYW55IGl0ZW1zIHNob3VsZCBiZSBzaG93biBpbiBKb3VybmFsIE92ZXJ2aWV3ICJTbWFsbCIgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgaG93IG1hbnkgaXRlbXMgc2hvdWxkIGJlIHNob3duIGluIE92ZXJ2aWV3ICJTbWFsbCIgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBBZ2VudEZBUVpvb20uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBkZWZhdWx0IGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gQ3VzdG9tZXJGQVFab29tIChhbmQgUHVibGljRkFRWm9vbSkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBtYXhpbXVtIGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gQWdlbnRGQVFab29tLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgbWF4aW11bSBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEN1c3RvbWVyRkFRWm9vbSAoYW5kIFB1YmxpY0ZBUVpvb20pLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgIkluc2VydCBGQVEgTGluayIgQnV0dG9uIGluIEFnZW50RkFRWm9vbVNtYWxsIGZvciBwdWJsaWMgRkFRIEFydGljbGVzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgIkluc2VydCBGQVEgVGV4dCAmIExpbmsiIC8gIkluc2VydCBGdWxsIEZBUSAmIExpbmsiIEJ1dHRvbiBpbiBBZ2VudEZBUVpvb21TbWFsbCBmb3IgcHVibGljIEZBUSBBcnRpY2xlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93ICJJbnNlcnQgRkFRIFRleHQiIC8gIkluc2VydCBGdWxsIEZBUSIgQnV0dG9uIGluIEFnZW50RkFRWm9vbVNtYWxsLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgRkFRIEFydGljbGUgd2l0aCBIVE1MLid9ID0gJ1Zpc2EgRkFRLWFydGlrZWwgbWVkIEhUTUwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgRkFRIHBhdGggeWVzL25vLid9ID0gJ1Zpc2EgRkFRIHPDtmt2w6RnIGphL25lai4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBpbnZhbGlkIGl0ZW1zIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBpdGVtcyBvZiBzdWJjYXRlZ29yaWVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGxhc3QgY2hhbmdlIGl0ZW1zIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBsYXN0IGNyZWF0ZWQgaXRlbXMgaW4gZGVmaW5lZCBpbnRlcmZhY2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHJlbGF0ZWQgYXJ0aWNsZXMgb24gc2VydmljZSBjaGFuZ2UgZXZlbiB3aXRoIGVtcHR5IHN1YmplY3QgYW5kIGJvZHkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB0aGUgc3RhcnMgZm9yIHRoZSBhcnRpY2xlcyB3aXRoIGEgcmF0aW5nIGVxdWFsIG9yIGdyZWF0ZXIgbGlrZSB0aGUgZGVmaW5lZCB2YWx1ZSAoc2V0IHZhbHVlIFwnMFwnIHRvIGRlYWN0aXZhdGUgdGhlIG91dHB1dCkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB0b3AgMTAgaXRlbXMgaW4gZGVmaW5lZCBpbnRlcmZhY2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHZvdGluZyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBsaW5raW5nIGEgRkFRIHdpdGggYW5vdGhlciBvYmplY3QgaW4gdGhlIHpvb20gdmlldyBvZiBzdWNoIEZBUSBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyB0byBkZWxldGUgYSBGQVEgaW4gaXRzIHpvb20gdmlldyBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSBGQVEgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgRkFRIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIEZBUSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSBGQVEgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTb2x1dGlvbid9ID0gJ0zDtnNuaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N5bXB0b20nfSA9ICdTeW1wdG9tJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RleHQgT25seSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgZGVmYXVsdCBsYW5ndWFnZXMgZm9yIHRoZSByZWxhdGVkIEZBUSBhcnRpY2xlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgRkFRLCBlLmcuIEZBUSMsIEtCIywgTXlGQVEjLiBUaGUgZGVmYXVsdCBpcyBGQVEjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBkZWZpbmVzIHRoYXQgYSBcJ0ZBUVwnIG9iamVjdCBjYW4gYmUgbGlua2VkIHdpdGggb3RoZXIgXCdGQVFcJyBvYmplY3RzIHVzaW5nIHRoZSBcJ05vcm1hbFwnIGxpbmsgdHlwZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnRkFRXCcgb2JqZWN0cyB1c2luZyB0aGUgXCdQYXJlbnRDaGlsZFwnIGxpbmsgdHlwZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnVGlja2V0XCcgb2JqZWN0cyB1c2luZyB0aGUgXCdOb3JtYWxcJyBsaW5rIHR5cGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBzZXR0aW5nIGRlZmluZXMgdGhhdCBhIFwnRkFRXCcgb2JqZWN0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciBcJ1RpY2tldFwnIG9iamVjdHMgdXNpbmcgdGhlIFwnUGFyZW50Q2hpbGRcJyBsaW5rIHR5cGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IGJvZHkgZm9yIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgc3ViamVjdCBmb3IgYXBwcm92YWwgb2YgRkFRIGFydGljbGUuIFBlcm1pdHRlZCBub3RpZmljYXRpb24gdGFncyBhcmUgPE9UT0JPX0ZBUV9OVU1CRVI+LCA8T1RPQk9fRkFRX0NBVEVHT1JZSUQ+LCA8T1RPQk9fRkFRX0lURU1JRD4+IDxPVE9CT19GQVFfVElUTEU+IGFuZCA8T1RPQk9fRkFRX1NUQVRFSUQ+Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rvb2xiYXIgSXRlbSBmb3IgYSBzaG9ydGN1dC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZXh0ZXJuYWwgKGN1c3RvbWVyKSd9ID0gJ2V4dGVybiAoa3VuZGVyKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpbnRlcm5hbCAoYWdlbnQpJ30gPSAnaW50ZXJuIChhZ2VudCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncHVibGljIChhbGwpJ30gPSAnb2ZmZW50bGlnIChhbGxhKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwdWJsaWMgKHB1YmxpYyknfSA9ICcnOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdObycsCiAgICAnT2snLAogICAgJ1NldHRpbmdzJywKICAgICdTdWJtaXQnLAogICAgJ1RoaXMgbWlnaHQgYmUgaGVscGZ1bCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Location="Kernel/Language/sw_FAQ.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnN3X0ZBUTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRQWRkCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIEFydGljbGUnfSA9ICdPbmdlemEgbWFrYWxhIHlhIG1hc3dhbGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnS2V5d29yZHMnfSA9ICdNYW5lbm8gbWFrdXUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRlZ29yeSBpcyByZXF1aXJlZC4nfSA9ICdTZWhlbXUgaW5haGl0YWppa2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwcm92YWwnfSA9ICdJZGhpbmknOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRQ2F0ZWdvcnkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBDYXRlZ29yeSBNYW5hZ2VtZW50J30gPSAnU2VoZW11IHlhIG1lbmVqaW1lbnRpIHlhIG1hc3dhbGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEZBUSBDYXRlZ29yeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEZBUSBDYXRlZ29yeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgY2F0ZWdvcnknfSA9ICdPbmdlemEgc2VoZW11JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBDYXRlZ29yeSd9ID0gJ09uZ2V6YSBzZWhlbXUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDYXRlZ29yeSd9ID0gJ0hhcmlyaSBzZWhlbXUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3ViY2F0ZWdvcnkgb2YnfSA9ICdLaWppc2VoZW11IGNoYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2Ugc2VsZWN0IGF0IGxlYXN0IG9uZSBwZXJtaXNzaW9uIGdyb3VwLid9ID0gJ1RhZmFkaGFsaSBjaGFndWEgamFwbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBncm91cHMgdGhhdCBjYW4gYWNjZXNzIGFydGljbGVzIGluIHRoaXMgY2F0ZWdvcnkuJ30gPSAnTWFrdW5kaSB5YSB3YWthbGEgeWVueWUgcnVodXNhIGt3YSBoaWkgbWFrYWxhIGthdGlrYSBrYXRlZ29yaSBoaWkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dpbGwgYmUgc2hvd24gYXMgY29tbWVudCBpbiBFeHBsb3Jlci4nfSA9ICdJdGFvbnllc2h3YSBrYW1hIHRhbWtvIGt3ZW55ZSBFeHBsb3Jlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNhdGVnb3J5Pyd9ID0gJ0plIHVuYXRha2Ega3VmdXRhIGhpaSBzZWhlbXU/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gbm90IGRlbGV0ZSB0aGlzIGNhdGVnb3J5LiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBGQVEgYXJ0aWNsZSBhbmQvb3IgaXMgcGFyZW50IG9mIGF0IGxlYXN0IG9uZSBvdGhlciBjYXRlZ29yeSd9ID0KICAgICAgICAnSHV3ZXppIGt1ZnV0YSBzZWhlbXUgaGlpLkltZXR1bWlrYSBuYSBtYWthbGEgeWEgbWFzd2FsaSBzaSBjaGluaSB5YSBtb2phIG5hL2F1IGlwbyBuZGFuaSB5YSBrYXRlZ29yaSBueWluZ2luZSBzaSBjaGluaSB5YSBtb2phLiAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBjYXRlZ29yeSBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgRkFRIGFydGljbGUocyknfSA9ICdIaWkgc2VoZW11IGluYXR1bWlrYSBrYXRpa2EgbWFrYWxhIHlhIG1hc3dhbGkgaWZ1YXRheW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY2F0ZWdvcnkgaXMgcGFyZW50IG9mIHRoZSBmb2xsb3dpbmcgc3ViY2F0ZWdvcmllcyd9ID0gJ0hpaSBuaSBzZWhlbXUgbWFtYSB5YSB2aWppc2VoZW11IHZpZnVhdGF2eW8gJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUURlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIEZBUSBhcnRpY2xlPyd9ID0gJ0plIHVuYXRha2EgS3VmdXRhIGhpaSBtYWthbGEgeWEgbWFzd2FsaT8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRJ30gPSAnTWFzd2FsaSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFFeHBsb3JlcgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEV4cGxvcmVyJ30gPSAnS2ljaHVuZ3V6YWppIG1hc3dhbGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVpY2sgU2VhcmNoJ30gPSAnVGFmdXRhIGhhcmFrYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXaWxkY2FyZHMgYXJlIGFsbG93ZWQuJ30gPSAnV2lsZGNhcmQgaGF6aXJ1aHVzaXdpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkdmFuY2VkIFNlYXJjaCd9ID0gJ1RhZnV0YSB6YWlkaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWJjYXRlZ29yaWVzJ30gPSAnS2lqaWtpc2VoZW11JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlcyd9ID0gJ01ha2FsYSB5YSBNYXN3YWxpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHN1YmNhdGVnb3JpZXMgZm91bmQuJ30gPSAnSGFrdW5hIHZpamlzZWhlbXUgdmlsaXZ5b3BhdGlrYW5hLic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFIaXN0b3J5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mJ30gPSAnSGlzdG9yaWEgeWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBDb250ZW50J30gPSAnTWF1ZGh1aSB5YSBoaXN0b3JpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGV0aW1lJ30gPSAnTXVkYSB3YSBrdXRlbmdlbmV6YSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFKb3VybmFsT3ZlcnZpZXdTbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gRkFRIEpvdXJuYWwgZGF0YSBmb3VuZC4nfSA9ICdEYXRhIHphIGphcmlkYSBsYSBtYXN3YWxpIGhhemlqYXBhdGlrYW5hLic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFMYW5ndWFnZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIExhbmd1YWdlIE1hbmFnZW1lbnQnfSA9ICdNZW5lamltZW50aSB5YSBsdWdoYSB5YSBtYXN3YWxpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBGQVEgTGFuZ3VhZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBGQVEgTGFuZ3VhZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlIHRoaXMgZmVhdHVyZSBpZiB5b3Ugd2FudCB0byB3b3JrIHdpdGggbXVsdGlwbGUgbGFuZ3VhZ2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBsYW5ndWFnZSd9ID0gJ09uZ2V6YSBsdWdoYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgTGFuZ3VhZ2UnfSA9ICdPbmdlemEgTHVnaGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBMYW5ndWFnZSd9ID0gJ0hhcmlyaSBMdWdoYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBsYW5ndWFnZS4gSXQgaXMgdXNlZCBpbiBhdCBsZWFzdCBvbmUgRkFRIGFydGljbGUhJ30gPQogICAgICAgICdIdXdlemkga3VmdXRhIGx1Z2hhIGhpaS4gSW1ldHVtaWthIGt3ZW55ZSBtYWthbGEgeWEgbWFzd2FsaSB6YWlkaSB5YSBtb2phLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGxhbmd1YWdlIGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBGQVEgQXJ0aWNsZShzKSd9ID0gJ0hpaSBsdWdoYSBpbWV0dW1pa2Ega2F0aWthIG1ha2FsYSB5YSh6YSkgbWFzd2FsaSBpZnVhdGF5by4nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRT3ZlcnZpZXdOYXZCYXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRleHQgU2V0dGluZ3MnfSA9ICdNaXBhbmdpbGlvIHlhIG11a3RhZGhhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBhcnRpY2xlcyBwZXIgcGFnZSd9ID0gJ01ha2FsYSB5YSBtYXN3YWxpIGt3YSB1a3VyYXNhJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUU92ZXJ2aWV3U21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEZBUSBkYXRhIGZvdW5kLid9ID0gJ0hha3VuYSBkYXRhIHphIG1hc3dhbGknOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRUmVsYXRlZEFydGljbGVzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydvdXQgb2YgNSd9ID0gJ0thdGkgeWEgNSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFTZWFyY2gKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0tleXdvcmQnfSA9ICdOZW5vIGt1dSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWb3RlIChlLiBnLiBFcXVhbHMgMTAgb3IgR3JlYXRlclRoYW4gNjApJ30gPSAnS3VyYSAobWZhbm8uIHNhd2EgbmEgMTAgYXUgWmFpZGkgeWEgNjApJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGUgKGUuIGcuIEVxdWFscyAyNSUgb3IgR3JlYXRlclRoYW4gNzUlKSd9ID0gJ0tpd2FuZ28gKG1mYW5vIFNhd2EgbmEgMjUlIGF1IFphaWRpIHlhIDc1JSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXBwcm92ZWQnfSA9ICdLdWlkaGluaXNoYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQgYnknfSA9ICdNYXJhIHlhIG13aXNobyBpbWViYWRpbGlzaHdhIG5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENyZWF0ZSBUaW1lIChiZWZvcmUvYWZ0ZXIpJ30gPSAnTXVkYSB3YSBrdXRlbmdlbmV6YSBtYWthbGEgeWEgbWFzd2FsaSAoa2FibGEvYmFhZGEpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENyZWF0ZSBUaW1lIChiZXR3ZWVuKSd9ID0gJ011ZGEgd2Ega3V0ZW5nZW5lemEgTWFrYWxhIHlhIG1hc3dhbGkgKGthdGlrYXRpKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDaGFuZ2UgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJ011ZGEgd2Ega3ViYWRpbGlzaGEgbWFrYWxhIHlhIG1hc3dhbGkgKGthYmxhL2JhYWRhKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDaGFuZ2UgVGltZSAoYmV0d2VlbiknfSA9ICdNdWRhIHdhIGt1YmFkaWxpc2hhIG1ha2FsYSB5YSBtYXN3YWxpIChrYXRpa2F0aSknOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRU2VhcmNoT3BlblNlYXJjaERlc2NyaXB0aW9uRnVsbHRleHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUUZ1bGx0ZXh0J30gPSAnTmFrYWxhIG56aW1hIHlhIG1hc3dhbGkgeWFuYXlvIHVsaXp3YSBtYXJhIGt3YSBtYXJhLic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFTZWFyY2hTbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIFNlYXJjaCd9ID0gJ1RhZnV0YSBtYXN3YWxpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2ZpbGUgU2VsZWN0aW9uJ30gPSAnQ2hhZ3VvIGxhIG1hZWxlem8gbWFmdXBpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGUnfSA9ICdLdXJhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHZvdGUgc2V0dGluZ3MnfSA9ICdIYWt1bmEgTWlwYW5naWxpbyB5YSBrdXJhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmljIHZvdGVzJ30gPSAnS3VyYSBtYWFsdW11JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuIGcuIEVxdWFscyAxMCBvciBHcmVhdGVyVGhhbiA2MCd9ID0gJ01hZmFubyBTYXdhIG5hIDEwIGF1IFphaWRpIHlhIDYwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGUnfSA9ICdLaXdhbmdvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHJhdGUgc2V0dGluZ3MnfSA9ICdIYWt1bmEgbWlwYW5naWxpbyB5YSBraXdhbmdvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmljIHJhdGUnfSA9ICdLaXdhbmdvIG1hYWx1bSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlLiBnLiBFcXVhbHMgMjUlIG9yIEdyZWF0ZXJUaGFuIDc1JSd9ID0gJ01mYW5vIFNhd2EgbmEgMjUlIGF1IFphaWRpIHlhIDc1JSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDcmVhdGUgVGltZSd9ID0gJ011ZGEgd2Ega3V0ZW5nZW5lemEgbWFrYWxhIHlhIG1hc3dhbGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ2hhbmdlIFRpbWUnfSA9ICdNdWRhIHdhIGt1YmFkaWxpIG1ha2FsYSB5YSBtYXN3YWxpJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVpvb20KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJbmZvcm1hdGlvbid9ID0gJ0hhYmFyaSB6YSBNYXN3YWxpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGluZyd9ID0gJ1RoYW1pbmlzaGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZXMnfSA9ICdLdXJhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHZvdGVzIGZvdW5kISd9ID0gJ0hha3VuYSBLdXJhIHppbGl6b3BhdGlrYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB2b3RlcyBmb3VuZCEgQmUgdGhlIGZpcnN0IG9uZSB0byByYXRlIHRoaXMgRkFRIGFydGljbGUuJ30gPSAnSGFrdW5hIGt1cmEuIEt1d2Egd2Ega3dhbnphIGt1dGhhbWluaXNoYSBtYWthbGEgaGlpIHlhIG1hc3dhbGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Rvd25sb2FkIEF0dGFjaG1lbnQnfSA9ICdEb3dubG9hZCBLaWFtYmF0YW5pc2h3YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyBvcGVuIGxpbmtzIGluIHRoZSBmb2xsb3dpbmcgZGVzY3JpcHRpb24gYmxvY2tzLCB5b3UgbWlnaHQgbmVlZCB0byBwcmVzcyBDdHJsIG9yIENtZCBvciBTaGlmdCBrZXkgd2hpbGUgY2xpY2tpbmcgdGhlIGxpbmsgKGRlcGVuZGluZyBvbiB5b3VyIGJyb3dzZXIgYW5kIE9TKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3cgaGVscGZ1bCB3YXMgdGhpcyBhcnRpY2xlPyBQbGVhc2UgZ2l2ZSB1cyB5b3VyIHJhdGluZyBhbmQgaGVscCB0byBpbXByb3ZlIHRoZSBGQVEgRGF0YWJhc2UuIFRoYW5rIFlvdSEnfSA9CiAgICAgICAgJ05pIGt3YSBraWFzaSBnYW4gbWFrYWxhIGhpaSBpbWVzYWlkaWE/IFRhZmFkaGFsaSB0dXNhaWRpZSBrdXRoYW1pbmlzaGEga3VsZXRhIG1hYmFkaWxpa28ga2F0aWthIGRhdGFiYXNlIHlhIE1hc3dhbGkuIEFzYW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgaGVscGZ1bCd9ID0gJ0hhaW5hIE1zYWFkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd2ZXJ5IGhlbHBmdWwnfSA9ICdJbmEgbXNhYWRhIHNhbmEnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRWm9vbVNtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIHRpdGxlIHRvIGFydGljbGUgc3ViamVjdCd9ID0gJ09uZ2V6YSBraWNod2EgY2hhIGhhYmFyaSBjaGEgbWFzd2FsaSBrYXRpa2Egc29tbyB5YSBtYWthbGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZBUSBUZXh0J30gPSAnSW5naXphIG1hdGluaSB5YSBtYXN3YWxpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGdWxsIEZBUSd9ID0gJ0luZ2l6YSBtYXN3YWxpIHlvdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZBUSBMaW5rJ30gPSAnSW5naXphIGxpbmsgeWEgbWFzd2FsaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRkFRIFRleHQgJiBMaW5rJ30gPSAnSW5naXphIG5ha2FsYSB5YSBtYXN3YWxpIG5hIExpbmsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZ1bGwgRkFRICYgTGluayd9ID0gJ0luZ2l6YSBtYXN3YWxpIHlvdGUgbmEgbGluayc7CgogICAgIyBUZW1wbGF0ZTogQ3VzdG9tZXJGQVFFeHBsb3JlcgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGF0ZXN0IHVwZGF0ZWQgRkFRIGFydGljbGVzJ30gPSAnTWFyZWtlYmlzaG8gbWFweWEgeWEgbWFrYWxhIHlhIG1hc3dhbGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gRkFRIGFydGljbGVzIGZvdW5kLid9ID0gJ0hha3VuYSBtYWthbGEgeWEgbWFzd2FsaSBpbGl5b3BhdGlrYW5hJzsKCiAgICAjIFRlbXBsYXRlOiBDdXN0b21lckZBUVJlbGF0ZWRBcnRpY2xlcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtaWdodCBiZSBoZWxwZnVsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvdW5kIG5vIGhlbHBmdWwgcmVzb3VyY2VzIGZvciB0aGUgc3ViamVjdCBhbmQgdGV4dC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZSBhIHN1YmplY3Qgb3IgdGV4dCB0byBnZXQgYSBsaXN0IG9mIGhlbHBmdWwgcmVzb3VyY2VzLid9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQ3VzdG9tZXJGQVFTZWFyY2gKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bGx0ZXh0IHNlYXJjaCBpbiBGQVEgYXJ0aWNsZXMgKGUuIGcuICJKb2huKm4iIG9yICJXaWxsKiIpJ30gPSAnVGFmdXRhIG5ha2FsYSBrYW1pbGkga2F0aWthIG1hc3dhbGkgeWFuYXlvb3VsaXp3YSBtYXJhIGt3YSBtYXJhIChtZmFubyAiSm9obiIgYXUgIldpbGwiKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWb3RlIHJlc3RyaWN0aW9ucyd9ID0gJ1ZpenVpemkgdnlhIGt1cmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSBGQVEgYXJ0aWNsZXMgd2l0aCB2b3Rlcy4uLid9ID0gJ01ha2FsYSB5YSBtYXN3YWxpIHllbnllIGt1cmEgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGUgcmVzdHJpY3Rpb25zJ30gPSAnVml6dWl6aSB2eWEgdGhhbWFuaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IEZBUSBhcnRpY2xlcyB3aXRoIHJhdGUuLi4nfSA9ICdNYWthbGEgeWEgbWFzd2FsaSB5YWxpeW90aGFtaW5pc2h3YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlc3RyaWN0aW9ucyd9ID0gJ1ZpenVpemkgdnlhIG11ZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSBGQVEgYXJ0aWNsZXMgY3JlYXRlZCd9ID0gJ01ha2FsYSB5YSBtYXN3YWxpIHlhbGl5b3RlbmdlbmV6d2EgdHUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSBGQVEgYXJ0aWNsZXMgY3JlYXRlZCBiZXR3ZWVuJ30gPSAnTWFrYWxhIHlhIG1hc3dhbGkgeWFsaXRlbmdlbmV6d2Ega2F0aSB5YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2gtUHJvZmlsZSBhcyBUZW1wbGF0ZT8nfSA9ICdUYWZ1dGEgbWFlbGV6byBtYWZ1cGkga2FtYSBraWVsZXpvJzsKCiAgICAjIFRlbXBsYXRlOiBDdXN0b21lckZBUVpvb20KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FydGljbGUgTnVtYmVyJ30gPSAnTmFtYmEgeWEgbWFrYWxhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBmb3IgYXJ0aWNsZXMgd2l0aCBrZXl3b3JkJ30gPSAnVGFmdXRhIE1ha2FsYSBrd2EgbmVubyBrdXUnOwoKICAgICMgVGVtcGxhdGU6IFB1YmxpY0ZBUVNlYXJjaE9wZW5TZWFyY2hEZXNjcmlwdGlvbkZBUU51bWJlcgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljJ30gPSAnVW1tYSc7CgogICAgIyBUZW1wbGF0ZTogUHVibGljRkFRU2VhcmNoUmVzdWx0U2hvcnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0JhY2sgdG8gRkFRIEV4cGxvcmVyJ30gPSAnQmFjayB0byBGQVEgbWNodW5ndXppJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUFkZC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgcncgcGVybWlzc2lvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY2F0ZWdvcmllcyBmb3VuZCB3aGVyZSB1c2VyIGhhcyByZWFkL3dyaXRlIHBlcm1pc3Npb25zISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkZWZhdWx0IGxhbmd1YWdlIGZvdW5kIGFuZCBjYW5cJ3QgY3JlYXRlIGEgbmV3IG9uZS4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRQ2F0ZWdvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgQ2F0ZWdvcnlJRCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRlZ29yeSBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAnc2VoZW11IGl3ZSBuYSBqaW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY2F0ZWdvcnkgYWxyZWFkeSBleGlzdHMnfSA9ICdIaWkgc2VoZW11IHRheWFyaSBpcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBjYXRlZ29yeSBhbHJlYWR5IGV4aXN0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gQ2F0ZWdvcnlJRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgY2F0ZWdvcnkgJXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBjYXRlZ29yeSB1cGRhdGVkISd9ID0gJ1NlaGVtdSB5YSBtYXN3YWxpIGlsaXlvYmFkaWxpc2h3YSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGNhdGVnb3J5IGFkZGVkISd9ID0gJ1NlaGVtdSB5YSBtYXN3YWxpIGlsaXlvb25nZXp3YSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIENhdGVnb3J5J30gPSAnRnV0YSBzZWhlbXUnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRRGVsZXRlLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBJdGVtSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIG5vIHBlcm1pc3Npb24gZm9yIHRoaXMgY2F0ZWdvcnkhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIEZBUSBhcnRpY2xlICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFFeHBsb3Jlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIENhdGVnb3J5SUQgJXMgaXMgaW52YWxpZC4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRSGlzdG9yeS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNob3cgaGlzdG9yeSwgYXMgbm8gSXRlbUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSGlzdG9yeSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFKb3VybmFsLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSm91cm5hbCd9ID0gJ0phcmlkYSBsYSBtYXN3YWxpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgY29uZmlnIG9wdGlvbiBGQVE6OkZyb250ZW5kOjpPdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWcgb3B0aW9uIEZBUTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3IG5lZWRzIHRvIGJlIGEgSEFTSCByZWYhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY29uZmlnIG9wdGlvbiBmb3VuZCBmb3IgdGhlIHZpZXcgIiVzIiEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRTGFuZ3VhZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIExhbmd1YWdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBuYW1lIGlzIHJlcXVpcmVkISd9ID0gJ0ppbmEgbGluYWhpdGFqaWthISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGxhbmd1YWdlIGFscmVhZHkgZXhpc3RzISd9ID0gJ0x1Z2hhIGlwbyB0YXlhcmkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGxhbmd1YWdlICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgbGFuZ3VhZ2UgdXBkYXRlZCEnfSA9ICdMdWdoYSB5YSBtYXN3YWxpIGltZWJhZGlsaXNod2EhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBsYW5ndWFnZSBhZGRlZCEnfSA9ICdMdWdoYSB5YSBtYXN3YWxpICBpbWVvbmdlendhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgTGFuZ3VhZ2UgJXMnfSA9ICdGdXRhIEx1Z2hhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUVByaW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXN1bHQnfSA9ICdNYXRva2VvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgdXBkYXRlJ30gPSAnTWFiYWRpbGlrbyB5YSBtd2lzaG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIER5bmFtaWMgRmllbGRzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUVJpY2hUZXh0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyAlcyBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGxvYWQgTGFuZ3VhZ2VPYmplY3QhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gUmVzdWx0ISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgTnVtYmVyJ30gPSAnaWRhZGkgeWEgbWFzd2FsaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IENoYW5nZWQgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ3JlYXRlIFRpbWUgKGJlZm9yZS9hZnRlciknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ3JlYXRlIFRpbWUgKGJldHdlZW4pJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJdGVtIENoYW5nZSBUaW1lIChiZWZvcmUvYWZ0ZXIpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJdGVtIENoYW5nZSBUaW1lIChiZXR3ZWVuKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcXVhbHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JlYXRlciB0aGFuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyZWF0ZXIgdGhhbiBlcXVhbHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU21hbGxlciB0aGFuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NtYWxsZXIgdGhhbiBlcXVhbHMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRWm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBGaWxlSUQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoYW5rcyBmb3IgeW91ciB2b3RlISd9ID0gJ0FzYW50ZSBrd2EgS3VyYSB5YWtvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSBhbHJlYWR5IHZvdGVkISd9ID0gJ1VtZXNoYXBpZ2Ega3VyYSB0YXlhcmkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHJhdGUgc2VsZWN0ZWQhJ30gPSAnSGFrdW5hIGNoYWd1byBsYSBraXdhbmdvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB2b3RpbmcgbWVjaGFuaXNtIGlzIG5vdCBlbmFibGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdm90ZSByYXRlIGlzIG5vdCBkZWZpbmVkISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQ3VzdG9tZXJGQVFQcmludC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgUHJpbnQnfSA9ICdDaGFwaXNoYSBtYWthbGEgeWEgbWFzd2FsaSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQ3VzdG9tZXJGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZWQgYmV0d2Vlbid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQ3VzdG9tZXJGQVFab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIEl0ZW1JRCEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL1B1YmxpY0ZBUUV4cGxvcmVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZXMgKG5ldyBjcmVhdGVkKSd9ID0gJ01ha2FsYSB5YSBtYXN3YWxpIChNcHlhIGlsaXlvdGVuZ2VuZXp3YSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGVzIChyZWNlbnRseSBjaGFuZ2VkKSd9ID0gJ01ha2FsYSB5YSBtYXN3YWxpIChJbGl5b2JhZGlsaXNod2EgaGl2aSBrYXJpYnVuaSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGVzIChUb3AgMTApJ30gPSAnTWFrYWxhIHlhIG1hc3dhbGkgKDEwIGJvcmEpJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9QdWJsaWNGQVFSU1MucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFR5cGUgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGUgbXVzdCBiZSBlaXRoZXIgTGFzdENyZWF0ZSBvciBMYXN0Q2hhbmdlIG9yIFRvcDEwISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIFJTUyBmaWxlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0hlYWRlck1ldGEvQWdlbnRGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChGQVFGdWxsdGV4dCknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9IZWFkZXJNZXRhL0N1c3RvbWVyRkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAtIEN1c3RvbWVyICglcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgLSBDdXN0b21lciAoRkFRRnVsbHRleHQpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvSGVhZGVyTWV0YS9QdWJsaWNGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gUHVibGljICglcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgLSBQdWJsaWMgKEZBUUZ1bGx0ZXh0KSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0xheW91dC9GQVEucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgcmF0ZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBhcnRpY2xlIGlzIGVtcHR5ISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXRlc3QgY3JlYXRlZCBGQVEgYXJ0aWNsZXMnfSA9ICdNYWthbGEgbXB5YSB5YSBtYXN3YWxpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvcCAxMCBGQVEgYXJ0aWNsZXMnfSA9ICdNYWthbGEgMTAgYm9yYSB5YSBNYXN3YWxpJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTGlua09iamVjdC9GQVEucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRlbnQgVHlwZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9EeW5hbWljRmllbGQvRHJpdmVyL0ZBUS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IHRoZSBhdHRyaWJ1dGUgd2hpY2ggRkFRcyB3aWxsIGJlIHNlYXJjaGVkIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4dGVybmFsLXNvdXJjZSBrZXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IHRoZSB0eXBlIG9mIGRpc3BsYXknfSA9ICcnOwoKICAgICMgRGF0YWJhc2UgWE1MIC8gU09QTSBEZWZpbml0aW9uOiBGQVEuc29wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW50ZXJuYWwnfSA9ICduZGFuaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydleHRlcm5hbCd9ID0gJ25qZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwdWJsaWMnfSA9ICd1bW1hJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBmaWx0ZXIgZm9yIEhUTUwgb3V0cHV0IHRvIGFkZCBsaW5rcyBiZWhpbmQgYSBkZWZpbmVkIHN0cmluZy4gVGhlIGVsZW1lbnQgSW1hZ2UgYWxsb3dzIHR3byBpbnB1dCBraW5kcy4gRmlyc3QgdGhlIG5hbWUgb2YgYW4gaW1hZ2UgKGUuZy4gZmFxLnBuZykuIEluIHRoaXMgY2FzZSB0aGUgT1RPQk8gaW1hZ2UgcGF0aCB3aWxsIGJlIHVzZWQuIFRoZSBzZWNvbmQgcG9zc2liaWxpdHkgaXMgdG8gaW5zZXJ0IHRoZSBsaW5rIHRvIHRoZSBpbWFnZS4nfSA9CiAgICAgICAgJ0tpY2h1amlvIGNoYSBtYXRva2VvIHlhIEhUTUwgaWxpIGt1b25nZXphIHZpdW5nbyBrd2EgdHVuZ28gemlsaXpvIGZhZmFudWxpd2EuIFN1cmEgeWEgZWxlbW50aSBoaWkgaW5hcnVodXN1IG1haW5naXpvIHlhIGFpbmEgbWJpbGkuIEt3YW56YSBqaW5hbGEgc3VyYSAobWYuIGZhcS5wbmcpLiBLd2Ega2VzaSBoaWkgc3VyYSB5YSBuamlhIHlhIE9UT0JPIGl0YXR1bWlrYS4gTmppYSB5YSBwaWxpIG5pIGt1aW5naXphIGtpdW5nbyBjaGEgaGl5byBzdXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIGFydGljbGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ1NTIGNvbG9yIGZvciB0aGUgdm90aW5nIHJlc3VsdC4nfSA9ICdSYW5naSB5YSBDU1Mga3dhIG1hdG9rZW8geWEga3VyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSBUaW1lIFRvIExlYXZlIGZvciBGQVEgaXRlbXMuJ30gPSAnTXVkYSB3YSBtYXN3YWxpIHlhbGl5eW91bGl6d2EgbWFyYSBteWluZ2kga3VmdXRpa2Ega3V0b2thIGt3ZW55ZSBrdW1idWt1bWJ1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGVnb3J5IE1hbmFnZW1lbnQnfSA9ICdVc2ltYW1pemkgd2Ega2F0ZWdvcmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0ZWdvcnkgTWFuYWdlbWVudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIFByaW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgUmVsYXRlZCBBcnRpY2xlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgUmVsYXRlZCBBcnRpY2xlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBzZWFyY2guJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVjaW1hbCBwbGFjZXMgb2YgdGhlIHZvdGluZyByZXN1bHQuJ30gPSAnTXdvbmdvIHdhIG1hdG9rZW8geWEga3VyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IGNhdGVnb3J5IG5hbWUuJ30gPSAnSmluYSBsYSBjaGFndW8tbXNpbmdpIGxhIGthdGVnb3JpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbGFuZ3VhZ2UgZm9yIEZBUSBhcnRpY2xlcyBvbiBzaW5nbGUgbGFuZ3VhZ2UgbW9kZS4nfSA9ICdDaGFndW8tbXNpbmdpIGxhIGx1Z2hhIHlhIG1ha2FsYSB5YSBtYXN3YWxpIHlhbGl5b3VsaXp3YSBtYXJhIG55aW5naSBrYXRpa2EgbHVnaGEgbW9qYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBtYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duLid9ID0KICAgICAgICAnVWt1YndhIHdhIHVwZW8gd2EganV1IGNoYWd1byBtc2luZ2kgd2EgdmljaHdhIGthdGlrYSBtYWthbGEgeWEgbWFzd2FsaSB5YW5heW91bGl6d2EgbWFyYSBrd2EgbWFyYSBrdW9ueWVzaHdhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHByaW9yaXR5IG9mIHRpY2tldHMgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPQogICAgICAgICdLaXBhdW1iZWxlIGNoYSBjaGFndW8tbXNpbmdpIGNoYSB0aWtldGkga3dhIGlkaGluaSB5YSBtYWthbGEgeWEgbWFzd2FsaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXRlIGZvciBGQVEgZW50cnkuJ30gPSAnSGFsaSB5YSBjaGFndW8tbXNpbmdpIHlhIGluZ2l6byBsYSBtYXN3YWxpIHlhbGl5b3VsaXp3YSBtYXJhIGt3YSBtYXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXRlIG9mIHRpY2tldHMgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPSAnSGFsaSB5YSBjaGFndW8tbXNpbmdpIGt3YSB0aWtldGkgemEgaWRoaW5pIHlhIG1ha2FsYSB5YSBtYXN3YWxpIHlhbGl5b3VsaXp3YSBtYXJhIGt3YSBtYXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHR5cGUgb2YgdGlja2V0cyBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICdIYWxpIHlhIGNoYWd1by1tc2luZ2kga3dhIHRpa2V0aSB6YSBtYWthbGEgeWEgbWFzd2FsaSB5YWxpeW91bGl6d2EgbWFyYSBrd2EgbWFyYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCB2YWx1ZSBmb3IgdGhlIEFjdGlvbiBwYXJhbWV0ZXIgZm9yIHRoZSBwdWJsaWMgZnJvbnRlbmQuIFRoZSBBY3Rpb24gcGFyYW1ldGVyIGlzIHVzZWQgaW4gdGhlIHNjcmlwdHMgb2YgdGhlIHN5c3RlbS4nfSA9CiAgICAgICAgJ1RoYW1hbmkgeWEgY2hhZ3VvLW1zaW5naSBrd2EgcGF0YW1ldGEgYW1pbGlmdSBrd2EgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSBBY3Rpb25zIHdoZXJlIGEgc2V0dGluZ3MgYnV0dG9uIGlzIGF2YWlsYWJsZSBpbiB0aGUgbGlua2VkIG9iamVjdHMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIFBsZWFzZSBub3RlIHRoYXQgdGhlc2UgQWN0aW9ucyBtdXN0IGhhdmUgcmVnaXN0ZXJlZCB0aGUgZm9sbG93aW5nIEpTIGFuZCBDU1MgZmlsZXM6IENvcmUuQWxsb2NhdGlvbkxpc3QuY3NzLCBDb3JlLlVJLkFsbG9jYXRpb25MaXN0LmpzLCBDb3JlLlVJLlRhYmxlLlNvcnQuanMsIENvcmUuQWdlbnQuVGFibGVGaWx0ZXJzLmpzIGFuZCBDb3JlLkFnZW50LkxpbmtPYmplY3QuanMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIGlmIHRoZSBGQVEgdGl0bGUgc2hvdWxkIGJlIGNvbmNhdGVuYXRlZCB0byBhcnRpY2xlIHN1YmplY3QuJ30gPQogICAgICAgICdFbGV6YSBrYW1hIGtpY2h3YSBjaGEgaGFiYXJpIGNoYSBtYXN3YWxpIHlhbGl5b3VsaXp3YSBtYXJhbnlpbmdpIGtpdW5nYW5pc2h3ZSBuYSBzb21vIGxhIG1ha2FsYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgRkFRcyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90ZTogT25seSBGQVEgYXR0cmlidXRlcyBhbmQgZHluYW1pYyBmaWVsZHMgKER5bmFtaWNGaWVsZF9OYW1lWCkgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBGQVEgam91cm5hbC4nfSA9CiAgICAgICAgJ0luYWVsZXphIG1hcGl0aW8geWEgbW9kdWxpIGt1b255ZXNoYSAgbXVvbmVrYW5vIG1kb2dvIHdhIGphcmlkYSBsYSBtYXN3YWxpIHlhbGl5b3VsaXp3YSBtYXJhIGt3YSBtYXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgRkFRIGxpc3QuJ30gPQogICAgICAgICdJbmFlbGV6YSBtYXBpdGlvIHlhIG1vZHVsaSBrdW9ueWVzaGEgbXVvbmVrYW5vIG1kb2dvIHdhIG9yb2RoYSB5YSBtYXN3YWxpIHlhbGl5b3VsaXp3YSBtYXJhIGt3YSBtYXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIGEgRkFRIHNlYXJjaCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnSW5hZmFmYW51YSBjaGFndW8tbXNpbmdpIGtpdW1iaSBjaGEgbWFzd2FsaSB5YW5heW91bGl6d2EgbWFyYSBrd2EgbWFyYSBrd2EgYWppbGkgeWEgdXBhbmdhamkgd2EgbWFzd2FsaSB5YW5heW91bGl6d2EgbWFyYSBrd2EgbWFyYSBrYXRpa2EgbWFzd2FsaSB5YW5heW91bGl6d2EgbWFyYSBrd2EgbWFyYSB0YWZ1dGkgeWEga2lvbGVzdXJhIGNoYSB3YWthbGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gYSBGQVEgc2VhcmNoIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICdJbmFmYWZhbnVhIGNoYWd1by1tc2luZ2kga2l1bWJpIGNoYSBtYXN3YWxpIHlhbmF5b3VsaXp3YSBtYXJhIGt3YSBtYXJhIGt3YSBhamlsaSB5YSB1cGFuZ2FqaSB3YSBtYXN3YWxpIHlhbmF5b3VsaXp3YSBtYXJhIGt3YSBtYXJhIHRhZnV0aSB5YSBraW9sZXN1cmEgY2hhIG10ZWphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIGEgRkFRIHNlYXJjaCBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0luYWZhZmFudWEgY2hhZ3VvLW1zaW5naSBraXVtYmkgY2hhIG1hc3dhbGkgeWFuYXlvdWxpendhIG1hcmEga3dhIG1hcmEga3dhIGFqaWxpIHlhIHVwYW5nYWppIHdhIG1hc3dhbGkgeWFuYXlvdWxpendhIG1hcmEga3dhIG1hcmEgdGFmdXRpIHlhIGtpb2xlc3VyYSBjaGEgdW1tYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdJbmFmYWZhbnVhIGNoYWd1by1tc2luZ2kga2l1bWJpIGNoYSBtYXN3YWxpIHlhbmF5b3VsaXp3YSBtYXJhIGt3YSBtYXJhIGt3YSBhamlsaSB5YSB1cGFuZ2FqaSB3YSBtYXN3YWxpIHlhbmF5b3VsaXp3YSBtYXJhIGt3YSBtYXJhIGthdGlrYSBraWNodW5ndXppIGNoYSBtYXN3YWxpIHlhbmF5b3VsaXp3YSBtYXJhIGt3YSBtYXJhIHlhIGtpb2xlc3VyYSBjaGEgd2FrYWxhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIHRoZSBGQVEgRXhwbG9yZXIgb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0luYWZhZmFudWEgY2hhZ3VvLW1zaW5naSBraXVtYmkgY2hhIG1hc3dhbGkgeWFuYXlvdWxpendhIG1hcmEga3dhIG1hcmEga3dhIGFqaWxpIHlhIHVwYW5nYWppIHdhIG1hc3dhbGkgeWFuYXlvdWxpendhIG1hcmEga3dhIG1hcmEga2F0aWthIGtpY2h1bmd1emkgY2hhIG1hc3dhbGkgeWFuYXlvdWxpendhIG1hcmEga3dhIG1hcmEgeWEga2lvbGVzdXJhIGNoYSBtdGVqYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnSW5hZmFmYW51YSBjaGFndW8tbXNpbmdpIGtpdW1iaSBjaGEgbWFzd2FsaSB5YW5heW91bGl6d2EgbWFyYSBrd2EgbWFyYSBrd2EgYWppbGkgeWEgdXBhbmdhamkgd2EgbWFzd2FsaSB5YW5heW91bGl6d2EgbWFyYSBrd2EgbWFyYSBrYXRpa2Ega2ljaHVuZ3V6aSBjaGEgbWFzd2FsaSB5YW5heW91bGl6d2EgbWFyYSBrd2EgbWFyYSB5YSBraW9sZXN1cmEgY2hhIHVtbWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnRmFmYW51YSBjaGFndW8tbXNpbmdpIHdhIG1wYW5naWxpbyB3YSBtYXN3YWxpIHlhbmF5b3VsaXp3YSBtYXJhIGt3YSBtYXJhIGthdGlrYSBtYXRva2VvIHlhIGtpY2h1bmd1emkgY2hhIG1hc3dhbGkgeWFuYXlvdWxpendhIG1hcmEga3dhIG1hcmEgeWEga2lvbGVzdXJhIGNoYSB3YWthbGEuIEp1dTogS29uZ3dlIGp1dS4gQ2hpbmk6IHlhIHNhc2FoaXZpIGp1dSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ0ZhZmFudWEgY2hhZ3VvLW1zaW5naSB3YSBtcGFuZ2lsaW8gd2EgbWFzd2FsaSB5YW5heW91bGl6d2EgbWFyYSBrd2EgbWFyYSBrYXRpa2EgbWF0b2tlbyB5YSBraWNodW5ndXppIGNoYSBtYXN3YWxpIHlhbmF5b3VsaXp3YSBtYXJhIGt3YSBtYXJhIHlhIGtpb2xlc3VyYSBjaGEgbXRlamEuIEp1dTogS29uZ3dlIGp1dS4gQ2hpbmk6IHlhIHNhc2FoaXZpIGp1dSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgcHVibGljIGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICdGYWZhbnVhIGNoYWd1by1tc2luZ2kgd2EgbXBhbmdpbGlvIHdhIG1hc3dhbGkgeWFuYXlvdWxpendhIG1hcmEga3dhIG1hcmEga2F0aWthIG1hdG9rZW8geWEga2ljaHVuZ3V6aSBjaGEgbWFzd2FsaSB5YW5heW91bGl6d2EgbWFyYSBrd2EgbWFyYSB5YSBraW9sZXN1cmEgY2hhIHVtbWEuIEp1dTogS29uZ3dlIGp1dS4gQ2hpbmk6IHlhIHNhc2FoaXZpIGp1dSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICdGYWZhbnVhIGNoYWd1by1tc2luZ2kgd2EgbXBhbmdpbGlvIHdhIG1hc3dhbGkgeWFuYXlvdWxpendhIG1hcmEga3dhIG1hcmEga2F0aWthIG1hdG9rZW8geWEga3V0YWZ1dGEga2F0aWthIGtpb2xlc3VyYSBjaGEgd2FrYWxhLiBKdXU6IEtvbmd3ZSBqdXUuIENoaW5pOiB5YSBzYXNhaGl2aSBqdXUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnRmFmYW51YSBjaGFndW8tbXNpbmdpIHdhIG1wYW5naWxpbyB3YSBtYXN3YWxpIHlhbmF5b3VsaXp3YSBtYXJhIGt3YSBtYXJhIGthdGlrYSBtYXRva2VvIHlhIGt1dGFmdXRhIGthdGlrYSBraW9sZXN1cmEgY2hhIG10ZWphLiBKdXU6IEtvbmd3ZSBqdXUuIENoaW5pOiB5YSBzYXNhaGl2aSBqdXUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ0ZhZmFudWEgY2hhZ3VvLW1zaW5naSB3YSBtYXN3YWxpIHlhbmF5b3VsaXp3YSBtYXJhIGt3YSBtYXJhIHlhIG1hamlidSB5YSB1dGFmdXRhamkga2F0aWthIGludGFmYXNlIHlhIHVtbWEuIEp1dTogS29uZ3dlIHphaWRpIGp1dS4gQ2hpbmk6IFlhIHNhc2EgaGl2aSBqdXUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBzaG93biBGQVEgc2VhcmNoIGF0dHJpYnV0ZSBmb3IgRkFRIHNlYXJjaCBzY3JlZW4uJ30gPQogICAgICAgICdJbmFmYWZhbmEgc2lmYSB5YSB1dGFmdXRhamkgd2EgbWFzd2FsaSB5YW5heW91bGl6d2EgbWFyYSBrd2EgbWFyYSBrd2EgYWppbGkgeWEgc2tyaW5pIHlhIHV0YWZ1dGFqaSBtYXN3YWxpIHlhbmF5b3VsaXp3YSBtYXJhIGt3YSBtYXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBoZWlnaHQgZm9yIHRoZSByaWNoIHRleHQgZWRpdG9yIGNvbXBvbmVudCBmb3IgdGhpcyBzY3JlZW4uIEVudGVyIG51bWJlciAocGl4ZWxzKSBvciBwZXJjZW50IHZhbHVlIChyZWxhdGl2ZSkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaW5mb3JtYXRpb24gdG8gYmUgaW5zZXJ0ZWQgaW4gYSBGQVEgYmFzZWQgVGlja2V0LiAiRnVsbCBGQVEiIGluY2x1ZGVzIHRleHQsIGF0dGFjaG1lbnRzIGFuZCBpbmxpbmUgaW1hZ2VzLid9ID0KICAgICAgICAnRmFmYW51YSB0YWFyaWZhIGl0YWtheW9pbmdpendhIGt3ZW55ZSBtYXN3YWxpIHlhbmF5b3VsaXp3YSBtYXJhIGt3YSBtYXJhIGt3YSBtaXNpbmdpIHlhIHRpa2V0aS4gIk1hc3dhbGkgeWFsaXlvamFhIG5heWF5b3VsaXp3YSBtYXJhIGt3YSBtYXJhIiB5YW5heW9qdW11aXNoYSBuYWthbGEsIHZpYW1iYXRhbmlzaGkgbmEgdGFzd2FpcmEgeWEgbXN0YXJpIHdhIG5kYW5pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZGFzaGJvYXJkIGJhY2tlbmQuICJMaW1pdCIgZGVmaW5lcyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgZGlzcGxheWVkIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCBhY2Nlc3MgdG8gdGhlIHBsdWdpbiAoZS4gZy4gR3JvdXA6IGFkbWluO2dyb3VwMTtncm91cDI7KS4gIkRlZmF1bHQiIGluZGljYXRlcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgRkFRIEV4cGxvcmVyLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnRmFmYW51YSBzYWZ1IHppbGl6b29ueWVzaHdhIGthdGlrYSBraXRhZnV0YSBtYXN3YWxpLiBIaWxpIGNoYWd1byBoYWxpbmEgbWFkaGFyYSBrYXRpa2EgbmFmYXNpIGt3ZW55ZSBzYWZ1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBGQVEgam91cm5hbC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ0ZhZmFudWEgc2FmdSB6aWxpem9vbnllc2h3YSBrYXRpa2EgamFyaWRhIGxhIG1hc3dhbGkuIEhpbGkgY2hhZ3VvIGhhbGluYSBtYWRoYXJhIGthdGlrYSBuYWZhc2kga3dlbnllIHNhZnUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIEZBUSBzZWFyY2guIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdGYWZhbnVhIHNhZnUgemlsaXpvb255ZXNod2Ega2F0aWthIG1ha2FsYSB5YSBtYXN3YWxpLiBIaWxpIGNoYWd1byBoYWxpbmEgbWFkaGFyYSBrYXRpa2EgbmFmYXNpIGt3ZW55ZSBzYWZ1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHdoZXJlIHRoZSBcJ0luc2VydCBGQVFcJyBsaW5rIHdpbGwgYmUgZGlzcGxheWVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbml0aW9uIG9mIEZBUSBpdGVtIGZyZWUgdGV4dCBmaWVsZC4nfSA9ICdVZmFmYW51emkgd2EgdWdhIHlhIG1hdGluaSBodXJ1IHlhIGtpcGVuZ2VsZSBjaGEgbWFzd2FsaSB5YW5heW91bGl6d2EgbWFyYSBrd2EgbWFyYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoaXMgRkFRJ30gPSAnRnV0YSBoYXlhIG1hc3dhbGkgeWFsaXlvdWxpendhIG1hcmEga3dhIG1hcmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgb3ZlcnZpZXcgc2NyZWVuIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBvdmVydmlldyBzY3JlZW4gb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBwcmludCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHByaW50IHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgcHJpbnQgc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc2VhcmNoIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc2VhcmNoIHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc2VhcmNoIHNjcmVlbiBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHNtYWxsIGZvcm1hdCBvdmVydmlldyBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSB6b29tIHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgem9vbSBzY3JlZW4gb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGlzIEZBUSd9ID0gJ0hhcmlyaSBtYWthbGEgaGlpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSBtdWx0aXBsZSBsYW5ndWFnZXMgb24gRkFRIG1vZHVsZS4nfSA9ICdXZXplc2hhIEx1Z2hhIG55aW5naSBueWluZ2kga2F0aWthIG1hc3dhbGkgaGF5YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHNlcnZpY2UgYXNzaWdubWVudCBmb3IgRkFRcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHRoZSByZWxhdGVkIGFydGljbGUgZmVhdHVyZSBmb3IgdGhlIGN1c3RvbWVyIGZyb250ZW5kLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB2b3RpbmcgbWVjaGFuaXNtIG9uIEZBUSBtb2R1bGUuJ30gPSAnV2V6ZXNoYSAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwbG9yZXInfSA9ICdLaWNodW5ndXphamknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFKQVggUmVzcG9uZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBSkFYIFJlc3BvbmRlciBmb3IgUmljaHRleHQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcmVhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcmVhLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgRGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEhpc3RvcnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBKb3VybmFsIE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICcgS2lrb21vICJraWRvZ28iIGNoYSBtYXBpdGlvIHlhIGphcmlkYSBsYSBtYXN3YWxpIHlhbGl5b3VsaXp3YSBtYXJhIGt3YSBtYXJhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnS2lrb21vICJraWRvZ28iIGNoYSBtYXBpdGlvIHlhIG1hc3dhbGkgeWFsaXlvdWxpendhIG1hcmEga3dhIG1hcmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBQcmludC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIHNlYXJjaCBiYWNrZW5kIHJvdXRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0gJ01hc3dhbGkgeWFuYXlvdWxpendhIG1hcmEga3dhIG1hcmEgdGFmdXRhIGJhY2tlbmQgcnV0YSB5YSBraW9sZXN1cmEgY2hhIHdha2FsYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmllbGQ0J30gPSAnU2VoZW11NCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWVsZDUnfSA9ICdTZWhlbXU1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bGwgRkFRJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0gJ01ha3VuZGkgeWEgaWRoaW5pIGt3YSBtYXN3YWxpIHlhbGl5b3VsaXp3YSBtYXJhIGt3YSBtYXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mIHRoaXMgRkFRJ30gPSAnSGlzdG9yaWEgeWEgbWFzd2FsaSBoYXlhIHlhbGl5b3VsaXp3YSBtYXJhIGt3YSBtYXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBhY3RpdmF0ZWQsIEZBUSBhcnRpY2xlcyBvZiBzdGF0dXMgdHlwZSBpbnRlcm5hbCBhcmUgYWxzbyB0YWtlbiBpbnRvIGFjY291bnQgZm9yIHRoZSBhcHByb3ZhbCBwcm9jZXNzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgaW50ZXJuYWwgZmllbGRzIG9uIGEgRkFRIGJhc2VkIFRpY2tldC4nfSA9ICdKdW11aXNoYSBzZWhlbXUgemEgbmRhbmkgemEgbWFzd2FsaSB5YWxpeW91bGl6d2EgbWFyYSBrd2EgbWFyYSBrdWxpbmdhbmEgbmEgdGlrZXRpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNsdWRlIHRoZSBuYW1lIG9mIGVhY2ggZmllbGQgaW4gYSBGQVEgYmFzZWQgVGlja2V0Lid9ID0gJ0p1bXVpc2hhIGppbmEgbGEga2lsYSBzZWhlbXUgeWEgbWFzd2FsaSB5YWxpeW91bGl6d2EgbWFyYSBueWluZ2kga3VsaW5nYW5hIG5hIHRpa2V0aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW50ZXJmYWNlcyB3aGVyZSB0aGUgcXVpY2sgc2VhcmNoIHNob3VsZCBiZSBzaG93bi4nfSA9ICdLaW9sZXN1cmEgYW1iYWNobyB1dGFmdXRhamkgd2EgaGFyYWthIHVuYXRha2l3YSBrdW9ueWVzaHdhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydKb3VybmFsJ30gPSAnSmFyaWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhbmd1YWdlIE1hbmFnZW1lbnQnfSA9ICdNZW5lamltZW50aSB5YSBsdWdoYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYW5ndWFnZSBNYW5hZ2VtZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW1pdCBmb3IgdGhlIHNlYXJjaCB0byBidWlsZCB0aGUga2V5d29yZCBGQVEgYXJ0aWNsZSBsaXN0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoaXMgRkFRIGl0ZW0nfSA9ICdVbmdhbmlzaGdhIGtpdHUga2luZ2luZSBuYSBraXBlbmdlbGUgaGlraSBjaGEgIG1hc3dhbGkgeWFsaXlvdWxpendhIG1hcmEga3dhIG1hcmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBxdWV1ZSBuYW1lcyBmb3Igd2hpY2ggdGhlIHJlbGF0ZWQgYXJ0aWNsZSBmZWF0dXJlIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBzdGF0ZSB0eXBlcyB3aGljaCBjYW4gYmUgdXNlZCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnT3JvZGhhIHlhIGFpbmEgeWEgaGFsaSBhbWJhem8gemluYXdlemEga3V0dW1pa2Ega2F0aWthIGtpb2xlc3VyYSBjaGEgd2FrYWxhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIHN0YXRlIHR5cGVzIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICdPcm9kaGEgeWEgYWluYSB5YSBoYWxpIGFtYmF6byB6aW5hd2V6YSBrdXR1bWlrYSBrYXRpa2Ega2lvbGVzdXJhIGNoYSBtdGVqYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBzdGF0ZSB0eXBlcyB3aGljaCBjYW4gYmUgdXNlZCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ09yb2RoYSB5YSBhaW5hIHlhIGhhbGkgYW1iYXpvIHppbmF3ZXphIGt1dHVtaWthIGthdGlrYSBraW9sZXN1cmEgY2hhIHVtbWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xvYWRlciBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTmFtYmEgeWEgdXBlbyB3YSBqdXUgeWEgbWFzd2FsaSB5YW5heW91bGl6d2EgbWFyYSBrd2EgbWFyYSB5YW5heWF0YXlvb255ZXNod2Ega2F0aWthIG1hamlidSB5YSBraWNodW5ndXppIGNoYSBtYXN3YWxpIHlhbmF5b3VsaXp3YSBtYXJhIGt3YSBtYXJhIHlhIGtpb2xlc3VyYSBjaGEgd2FrYWxhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICdOYW1iYSB5YSB1cGVvIHdhIGp1dSB5YSBtYXN3YWxpIHlhbmF5b3VsaXp3YSBtYXJhIGt3YSBtYXJhIHlhbmF5YXRheW9vbnllc2h3YSBrYXRpa2EgbWFqaWJ1IHlhIGtpY2h1bmd1emkgY2hhIG1hc3dhbGkgeWFuYXlvdWxpendhIG1hcmEga3dhIG1hcmEgeWEga2lvbGVzdXJhIGNoYSBtdGVqYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ05hbWJhIHlhIHVwZW8gd2EganV1IHlhIG1hc3dhbGkgeWFuYXlvdWxpendhIG1hcmEga3dhIG1hcmEgeWFuYXlhdGF5b29ueWVzaHdhIGthdGlrYSBtYWppYnUgeWEga2ljaHVuZ3V6aSBjaGEgbWFzd2FsaSB5YW5heW91bGl6d2EgbWFyYSBrd2EgbWFyYSB5YSBraW9sZXN1cmEgY2hhIHVtbWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBqb3VybmFsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdOYW1iYSB5YSB1cGVvIHdhIGp1dSB5YSBtYXN3YWxpIHlhbmF5b3VsaXp3YSBtYXJhIGt3YSBtYXJhIHlhbmF5YXRheW9vbnllc2h3YSBrYXRpa2EgIG1ha2FsYSB5YSBtYXN3YWxpIHlhbmF5b3VsaXp3YSBtYXJhIGt3YSBtYXJhIGthdGlrYSBraW9sZXN1cmEgY2hhIHdha2FsYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgcmVzdWx0IG9mIGEgc2VhcmNoIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdOYW1iYSB5YSB1cGVvIHdhIGp1dSB5YSBtYXN3YWxpIHlhbmF5b3VsaXp3YSBtYXJhIGt3YSBtYXJhIHlhbmF5YXRheW9vbnllc2h3YSBrYXRpa2EgbWFqaWJ1IHlhIHVjaHVuZ3V6aSAgeWEga2lvbGVzdXJhIGNoYSB3YWthbGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHJlc3VsdCBvZiBhIHNlYXJjaCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTmFtYmEgeWEgdXBlbyB3YSBqdXUgeWEgbWFzd2FsaSB5YW5heW91bGl6d2EgbWFyYSBrd2EgbWFyYSB5YW5heWF0YXlvb255ZXNod2Ega2F0aWthIG1hamlidSB5YSB1Y2h1bmd1emkgIHlhIGtpb2xlc3VyYSBjaGEgbXRlamEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHJlc3VsdCBvZiBhIHNlYXJjaCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ05hbWJhIHlhIHVwZW8gd2EganV1IHlhIG1hc3dhbGkgeWFuYXlvdWxpendhIG1hcmEga3dhIG1hcmEgeWFuYXlhdGF5b29ueWVzaHdhIGthdGlrYSBtYWppYnUgeWEgdWNodW5ndXppICB5YSBraW9sZXN1cmEgY2hhIHVtbWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBFeHBsb3JlciBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnVXBlbyB3YSBqdXUgd2EgdWt1YndhIHdhIHZpY2h3YSBrYXRpa2EgbWFrYWxhIHlhIG1hc3dhbGkgaW5heW9vbnllc2h3YSBrYXRpa2Ega2l2aW5qYXJpIGNoYSBtYXN3YWxpIHlhbmF5b3VsaXp3YSBtYXJhIGt3YSBtYXJhIGthdGlrYSBraW9sZXN1cmEgY2hhIHdha2FsYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIEV4cGxvcmVyIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICdVcGVvIHdhIGp1dSB3YSB1a3Vid2Egd2EgdmljaHdhIGthdGlrYSBtYWthbGEgeWEgbWFzd2FsaSBpbmF5b29ueWVzaHdhIGthdGlrYSBraXZpbmphcmkgY2hhIG1hc3dhbGkgeWFuYXlvdWxpendhIG1hcmEga3dhIG1hcmEga2F0aWthIGtpb2xlc3VyYSBjaGEgbXRlamEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBFeHBsb3JlciBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1VwZW8gd2EganV1IHdhIHVrdWJ3YSB3YSB2aWNod2Ega2F0aWthIG1ha2FsYSB5YSBtYXN3YWxpIGluYXlvb255ZXNod2Ega2F0aWthIGtpdmluamFyaSBjaGEgbWFzd2FsaSB5YW5heW91bGl6d2EgbWFyYSBrd2EgbWFyYSBrYXRpa2Ega2lvbGVzdXJhIGNoYSB1bW1hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgU2VhcmNoIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdVcGVvIHdhIGp1dSB3YSB1a3Vid2Egd2EgdmljaHdhIGthdGlrYSBtYWthbGEgeWEgbWFzd2FsaSBpbmF5b29ueWVzaHdhIGthdGlrYSB1dGFmdXRhamkgd2EgbWFzd2FsaSB5YW5heW91bGl6d2EgbWFyYSBrd2EgbWFyYSBrYXRpa2Ega2lvbGVzdXJhIGNoYSB3YWthbGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBTZWFyY2ggaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1VwZW8gd2EganV1IHdhIHVrdWJ3YSB3YSB2aWNod2Ega2F0aWthIG1ha2FsYSB5YSBtYXN3YWxpIGluYXlvb255ZXNod2Ega2F0aWthIHV0YWZ1dGFqaSB3YSBtYXN3YWxpIHlhbmF5b3VsaXp3YSBtYXJhIGt3YSBtYXJhICBrYXRpa2Ega2lvbGVzdXJhIGNoYSBtdGVqYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIFNlYXJjaCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ1VwZW8gd2EganV1IHdhIHVrdWJ3YSB3YSB2aWNod2Ega2F0aWthIG1ha2FsYSB5YSBtYXN3YWxpIGluYXlvb255ZXNod2Ega2F0aWthIHV0YWZ1dGFqaSB3YSBtYXN3YWxpIHlhbmF5b3VsaXp3YSBtYXJhIGt3YSBtYXJhIGthdGlrYSBraW9sZXN1cmEgY2hhIHVtbWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBqb3VybmFsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdVcGVvIHdhIGp1dSB3YSB1a3Vid2Egd2EgdmljaHdhIGthdGlrYSBtYWthbGEgeWEgbWFzd2FsaSBpbmF5b29ueWVzaHdhIGthdGlrYSBqYXJpZGEgbGEgbWFzd2FsaSB5YW5heW91bGl6d2EgbWFyYSBrd2EgbWFyYSBrYXRpa2Ega2lvbGVzdXJhIGNoYSB3YWthbGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBnZW5lcmF0ZSBIVE1MIE9wZW5TZWFyY2ggcHJvZmlsZSBmb3Igc2hvcnQgRkFRIHNlYXJjaCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBnZW5lcmF0ZSBIVE1MIE9wZW5TZWFyY2ggcHJvZmlsZSBmb3Igc2hvcnQgRkFRIHNlYXJjaCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01vZHVsaSB5YSBrdXphbGlzaGEgbWFlbGV6byBtYWZ1cGkgeWEgdXRhZnV0YWppIHdhIHdhemkgd2EgSFRNTCBrd2EgdXRhZnV0YWppIG1mdXBpIHdhIG1hc3dhbGkgeWFuYXlvdWxpendhIG1hcmEga3dhIG1hcmEga2F0aWthIGtpb2xlc3VyYSBjaGEgdW1tYS4gJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBnZW5lcmF0ZSBodG1sIE9wZW5TZWFyY2ggcHJvZmlsZSBmb3Igc2hvcnQgRkFRIHNlYXJjaC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgRkFRIEFydGljbGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBGQVEgYXJ0aWNsZXMgbmVlZCBhcHByb3ZhbCBiZWZvcmUgdGhleSBnZXQgcHVibGlzaGVkLid9ID0gJ01ha2FsYSBtcHlhIHlhIG1hc3dhbGkgeWFuYWhpdGFqaSBpZGhpbmlzaG8ga2FibGEgaGF5YXRvbGV3YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTmFtYmEgeWEgbWFrYWxhIHlhIG1hc3dhbGkgeWFuYXlvdWxpendhIG1hcmEga3dhIG1hcmEgeWF0YWtheW9vbnllc2h3YSBrYXRpa2Ega2l0YWZ1dGEgbWFzd2FsaSB5YW5heW91bGl6d2EgbWFyYSBrd2EgbWFyYSB5YSBraW9sZXN1cmEgY2hhIG10ZWphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTmFtYmEgeWEgbWFrYWxhIHlhIG1hc3dhbGkgeWFuYXlvdWxpendhIG1hcmEga3dhIG1hcmEgeWF0YWtheW9vbnllc2h3YSBrYXRpa2Ega2l0YWZ1dGEgbWFzd2FsaSB5YW5heW91bGl6d2EgbWFyYSBrd2EgbWFyYSB5YSBraW9sZXN1cmEgY2hhIHVtbWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIG9uIGVhY2ggcGFnZSBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ05hbWJhIHlhIG1ha2FsYSB5YSBtYXN3YWxpIHlhbmF5b3VsaXp3YSBtYXJhIGt3YSBtYXJhIHlhdGFrYXlvb255ZXNod2Ega2F0aWthIGtpbGEgdWt1cmFzYSB3YSBtYXRva2VvIHlhIHV0YWZ1dGFqaSB5YSBraW9sZXN1cmEgY2hhIG10ZWphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBvbiBlYWNoIHBhZ2Ugb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTmFtYmEgeWEgbWFrYWxhIHlhIG1hc3dhbGkgeWFuYXlvdWxpendhIG1hcmEga3dhIG1hcmEgeWF0YWtheW9vbnllc2h3YSBrYXRpa2Ega2lsYSB1a3VyYXNhIHdhIG1hdG9rZW8geWEgdXRhZnV0YWppIHlhIGtpb2xlc3VyYSBjaGEgdW1tYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIHNob3duIGl0ZW1zIGluIGxhc3QgY2hhbmdlcy4nfSA9ICdOYW1iYSB5YSB2aXR1IHZpbGl2b29ueXdlc2h3YSBrYXRpa2EgbWFiYWRpbGlrbyB5YSBtd2lzaG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBzaG93biBpdGVtcyBpbiBsYXN0IGNyZWF0ZWQuJ30gPSAnTmFtYmEgeWEgdml0dSB2aWxpdm90ZW5nZW5lendhIG13aXNob25pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2Ygc2hvd24gaXRlbXMgaW4gdGhlIHRvcCAxMCBmZWF0dXJlLid9ID0gJ05hbWJhIHlhIHZpdHUgdmlsaXZvb255d2VzaHdhIGthdGlrYSB2aXBlbmdlbGUgMTAgYm9yYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3V0cHV0IGZpbHRlciB0byBhZGQgSmF2YS1zY3JpcHQgdG8gQ3VzdG9tZXJUaWNrZXRNZXNzYWdlIHNjcmVlbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdXRwdXQgbGltaXQgZm9yIHRoZSByZWxhdGVkIEZBUSBhcnRpY2xlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgRkFRIGl0ZW1zIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIEZBUSBqb3VybmFsIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnUGFyYW1ldGEgemEga3VyYXNhIChhbWJhem8gdmlwZW5nZWUgdnlhIG1hc3dhbGkgeWFuYXlvdWxpendhIG1hcmEga3dhIG1hcmEgemltZW9ueWVzaHdhKSB6YSBtYXBpdGlvIG1hZG9nbyB5YSBqYXJpZGEgbGEgbWFzd2FsaSB5YW5heW91bGl6d2EgbWFyYSBrd2EgbWFyYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgRkFRIGl0ZW1zIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIEZBUSBvdmVydmlldy4nfSA9CiAgICAgICAgJ1BhcmFtZXRhIHphIGt1cmFzYSAoYW1iYXpvIHZpcGVuZ2VlIHZ5YSBtYXN3YWxpIHlhbmF5b3VsaXp3YSBtYXJhIGt3YSBtYXJhIHppbWVvbnllc2h3YSkgemEgbWFwaXRpbyBtYWRvZ28geWEgIG1hc3dhbGkgeWFuYXlvdWxpendhIG1hcmEga3dhIG1hcmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByaW50IHRoaXMgRkFRJ30gPSAnQ2hhcGlzaGEgbWFzd2FsaSBoYXlhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRIFByaW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRIFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBGQVEgc2VhcmNoLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydRdWV1ZSBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICdGb2xlbmkgeWEgaWRoaW5pIHlhIG1ha2FsYSB5YSBtYXN3YWxpIHlhbmF5b3VsaXp3YSBtYXJhIGFrd2EgbWFyYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0ZXMgZm9yIHZvdGluZy4gS2V5IG11c3QgYmUgaW4gcGVyY2VudC4nfSA9ICdUaGFtaW5pc2hvIGxhIGt1cmEuIEZ1bmd1byBsYXppbWEgaXdlIGt3ZW55ZSBhc2lsaW1pYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggRkFRJ30gPSAnVGFmdXRhIG1hc3dhbGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIEZBUSBTbWFsbC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIEZBUS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGhvdyBtYW55IGl0ZW1zIHNob3VsZCBiZSBzaG93biBpbiBKb3VybmFsIE92ZXJ2aWV3ICJTbWFsbCIgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgaG93IG1hbnkgaXRlbXMgc2hvdWxkIGJlIHNob3duIGluIE92ZXJ2aWV3ICJTbWFsbCIgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBBZ2VudEZBUVpvb20uJ30gPQogICAgICAgICdTZXRpIHVyZWZ1IHdhIGNoYWd1by1tc2luZ2kgKGthdGlrYSBwaWtzZWxpKSB5YSBuZGFuaSB5YSBtc3Rhcmkgd2EgdWdvIHdhIEhUTUwga2F0aWthIHVrdXphamkgd2EgbWFzd2FsaSB5YW5heW91bGl6d2EgbWFyYSBrd2EgbWFyYSB5YSB3YWthbGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZGVmYXVsdCBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEN1c3RvbWVyRkFRWm9vbSAoYW5kIFB1YmxpY0ZBUVpvb20pLid9ID0KICAgICAgICAnU2V0aSB1cmVmdSB3YSBjaGFndW8tbXNpbmdpIChrYXRpa2EgcGlrc2VsaSkgeWEgbmRhbmkgeWEgbXN0YXJpIHdhIHVnbyB3YSBIVE1MIGthdGlrYSB1a3V6YWppIHdhIG1hc3dhbGkgeWFuYXlvdWxpendhIG1hcmEga3dhIG1hcmEgeWEgbXRlamEuKG5hIHVrdXphamkgd2EgbWFzd2FsaSB5YW5heW91bGl6d2EgbWFyYSBrd2EgbWFyYXlhIHVtbWEgKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBBZ2VudEZBUVpvb20uJ30gPQogICAgICAgICdTZXRpIHVwZW8gd2EganV1IHdhIHVyZWZ1IChrYXRpa2EgcGlrc2VsaSkgeWEgbmRhbmkgeWEgbXN0YXJpIHdhIHVnbyB3YSBIVE1MIGthdGlrYSB1a3V6YWppIHdhIG1hc3dhbGkgeWFuYXlvdWxpendhIG1hcmEga3dhIG1hcmEgeWEgd2FrYWxhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBDdXN0b21lckZBUVpvb20gKGFuZCBQdWJsaWNGQVFab29tKS4nfSA9CiAgICAgICAgJ1NldGkgdXBlbyB3YSBqdXUgd2EgdXJlZnUgKGthdGlrYSBwaWtzZWxpKSB5YSBuZGFuaSB5YSBtc3Rhcmkgd2EgdWdvIHdhIEhUTUwga2F0aWthIHVrdXphamkgd2EgbWFzd2FsaSB5YW5heW91bGl6d2EgbWFyYSBrd2EgbWFyYSB5YSBtdGVqYS4oYW5kIHVrdXphamkgd2EgbWFzd2FsaSB5YW5heW91bGl6d2EgbWFyYSBrd2EgbWFyYSB5YSB1bW1hKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyAiSW5zZXJ0IEZBUSBMaW5rIiBCdXR0b24gaW4gQWdlbnRGQVFab29tU21hbGwgZm9yIHB1YmxpYyBGQVEgQXJ0aWNsZXMuJ30gPQogICAgICAgICdJbmFvbnllc2hhIGtpdHVmZSBjaGEgXCdcJyBJbmdpemEga2l1bmdhbmlzaGkgY2hhIG1hc3dhbGkgeWFuYXlvdWxpendhIG1hcmEga3dhIG1hcmFcJ1wnIGthdGlrYSB3YWthbGEgZmlmaXphIHdhIG1hc3dhbGkgeWFuYXlvdWxpendhIG1hcmEga3dhIG1hcmEga3dhIG1ha2FsYSB5YSBtYXN3YWxpIHlhbmF5b3VsaXp3YSBtYXJhIGt3YSBtYXJhIHlhIHVtbWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgIkluc2VydCBGQVEgVGV4dCAmIExpbmsiIC8gIkluc2VydCBGdWxsIEZBUSAmIExpbmsiIEJ1dHRvbiBpbiBBZ2VudEZBUVpvb21TbWFsbCBmb3IgcHVibGljIEZBUSBBcnRpY2xlcy4nfSA9CiAgICAgICAgJ0luYW9ueWVzaGEga2l0dWZlIGNoYSBcJ1wnSW5naXphIG1hdGluaSB5YSBtYXN3YWxpIHlhbmF5b3VsaXp3YSBtYXJhIGt3YSBtYXJhICYga2l1bmdhbmlzaGlcJ1wnIC8gXCdcJ2luZ2l6YSBtYXdhbGkgeWFuYXlvdWxpendhIG1hcmEga3dhIG1hcmEgeW90ZSAma2l1bmdhbmlzaGlcJ1wnIGthdGlrYSB3YWthbGEgZmlmaXphIHdhIG1hc3dhbGkgeWFuYXlvdWxpendhIG1hcmEga3dhIG1hcmEga3dhIG1ha2FsYSB5YSBtYXN3YWxpIHlhbmF5b3VsaXp3YSBtYXJhIGt3YSBtYXJhIHlhIHVtbWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgIkluc2VydCBGQVEgVGV4dCIgLyAiSW5zZXJ0IEZ1bGwgRkFRIiBCdXR0b24gaW4gQWdlbnRGQVFab29tU21hbGwuJ30gPQogICAgICAgICdJbmFvbnllc2hhIGtpdHVmZSBjaGEgXCdcJyBJbmdpemEgbWF0aW5pIHlhIG1hc3dhbGkgeWFuYXlvdWxpendhIG1hcmEga3dhIG1hcmFcJ1wnIC8gXCdcJ0luZ2l6YSBtYXN3YWxpIHlhbmF5b3VsaXp3YSBtYXJhIGt3YSBtYXJhIHlvdGVcJ1wnICBrYXRpa2Egd2FrYWxhICBmaWZpemEgd2EgbWFzd2FsaSB5YW5heW91bGl6d2EgbWFyYSBrd2EgbWFyYSAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBGQVEgQXJ0aWNsZSB3aXRoIEhUTUwuJ30gPSAnT255ZXNoYSBtYWthbGEgeWEgbWFzd2FsaSBuYSBIVE1MJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgRkFRIHBhdGggeWVzL25vLid9ID0gJ09ueWVzaGEgbmppYSB5YSBtYXN3YWxpIG5kaW8vaGFwYW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGludmFsaWQgaXRlbXMgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGl0ZW1zIG9mIHN1YmNhdGVnb3JpZXMuJ30gPSAnSW5hb255ZXNoYSB2aXBlbmdlbGUgdnlhIGthdGVnb3JpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGxhc3QgY2hhbmdlIGl0ZW1zIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICdJbmFvbnllc2hhIHZpcGVuZ2VsZSB2aWxpdnlvYmFkaWxpc2h3YSBrYXRpa2Ega2lvbGVzdXJhIGtpbGljaG9mYWZhbnVsaXdhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGxhc3QgY3JlYXRlZCBpdGVtcyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAnSW5hb255ZXNoYSB2aXBlbmdlbGUgdmlsaXZ5b3RlbmdlbmV6d2EgbXdpc2hvbmkga2F0aWthIGtpb2xlc3VyYSAga2lsaWNob2ZhZmFudWxpd2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgcmVsYXRlZCBhcnRpY2xlcyBvbiBzZXJ2aWNlIGNoYW5nZSBldmVuIHdpdGggZW1wdHkgc3ViamVjdCBhbmQgYm9keS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHRoZSBzdGFycyBmb3IgdGhlIGFydGljbGVzIHdpdGggYSByYXRpbmcgZXF1YWwgb3IgZ3JlYXRlciBsaWtlIHRoZSBkZWZpbmVkIHZhbHVlIChzZXQgdmFsdWUgXCcwXCcgdG8gZGVhY3RpdmF0ZSB0aGUgb3V0cHV0KS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHRvcCAxMCBpdGVtcyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAnSW5hb255ZXNoYSB2aXBlbmdlbGUgIDEwICBib3JhIGthdGlrYSBraW9sZXN1cmEga2lsaWNob2ZhZmFudWxpd2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgdm90aW5nIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICdJbmFvbnllc2hhIGt1cGlnYSBrdXJhIGthdGlrYSBraW9sZXN1cmEga2lsaWNob2ZhZmFudWxpd2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBsaW5raW5nIGEgRkFRIHdpdGggYW5vdGhlciBvYmplY3QgaW4gdGhlIHpvb20gdmlldyBvZiBzdWNoIEZBUSBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnSW5hb255ZXNoYSBraXVuZ2FuaXNoaSBrYXRpa2Egb3JvZGhhIGFtYmFjaG8ga2luYXJ1aHVzdSBrdXVuZ2FuaXNod2Ega3dhIG1hc3dhbGkgeWFuYXlvdWxpendhIG1hcmEga3dhIG1hcmEgbmEga2lwZW5nZWxlIGtpbmdpbmUga2F0aWthIG1hbmRoYXJpIGt1endhIHlhIGhheW8gbWFzd2FsaSB5YW5heW91bGl6d2EgbWFyYSBrd2EgbWFyYSB5YSB3YWthbGEgd2Ega2lvbGVzdXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgdG8gZGVsZXRlIGEgRkFRIGluIGl0cyB6b29tIHZpZXcgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0luYW9ueWVzaGEga2l1bmdhbmlzaGkga2F0aWthIG9yb2RoYSBhbWFiY2hvIGtpbmFydWh1c3Uga3VmdXRhIG1hc3dhbGkgeWFuYXlvdWxpendhIG1hcmEga3dhIG1hcmEga2F0aWthIG1hbmRoYW5pIGt1endhIGthdGlrYSB3YWthbGEgd2Ega2lvbGVzdXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gYWNjZXNzIHRoZSBoaXN0b3J5IG9mIGEgRkFRIGluIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0luYW9ueWVzaGEga2l1bmdhbmlzaGkga2F0aWthIG9yb2RoYSBrdWZpa2lhIGhpc3RvcmlhIHlhIG1hc3dhbGkgeWFuYXlvdWxpendhIG1hcmEga3dhIG1hcmEga2F0aWthIG1hbmRoYXJpIGt1endhIHlhIHdha2FsYSB3YSBraW9sZXN1cmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgRkFRIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdJbmFvbnllc2hhIGt1aW5nYW5pc2hpIGthdGlrYSBvcm9kaGEga3VoYXJpcmkga2F0aWthIG1hbmRoYXJpIGt1endhIHlhIG1hc3dhbGkgeWFuYXlvdWxpendhIG1hcmEga3dhIG1hcmEgeWEgd2FrYWxhIHdhIGtpb2xlc3VyYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIEZBUSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0luYW9ueWVzaGEga2l1bmdhbmlzaGkga2F0aWthIG9yb2RoYSBjaGEga3VydWRpIG55dW1hIGthdGlrYSBtYW5kaGFyaSBrdXp3YSB5YSBtYXN3YWxpIHlhbmF5b3VsaXp3YSBtYXJhIGt3YSBtYXJhIHlhIHdha2FsYSB3YSBraW9sZXN1cmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIEZBUSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnSW5hb255ZXNoYSBraXVuZ2FuaXNoaSBrYXRpa2Egb3JvZGhhIGt1Y2hhcGlzaGEgbWFzd2FsaSB5YW5heW91bGl6d2EgbWFyYSBrd2EgbWFyYSBrYXRpa2EgbWFuZGhhcmkgaWxpeW9rdXp3YSB5YSB3YWthbGEgd2Ega2lvbGVzdXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTb2x1dGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTeW1wdG9tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RleHQgT25seSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgZGVmYXVsdCBsYW5ndWFnZXMgZm9yIHRoZSByZWxhdGVkIEZBUSBhcnRpY2xlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgRkFRLCBlLmcuIEZBUSMsIEtCIywgTXlGQVEjLiBUaGUgZGVmYXVsdCBpcyBGQVEjLid9ID0KICAgICAgICAnS2l0YW1idWxpc2hpIGNoYSBtYXN3YWxpIHlhbmF5b3VsaXp3YSBtYXJhIGt3YSBtYXJhLCBtZmFubyBtYXN3YWxpIHlhbmF5b3VsaXp3YSBtYXJhIGt3YSBtYXJhIyxLQiMsIE15RkFRIy4gQ2hhZ3VvIG1zaW5naSBuaSBtYXN3YWxpIHlhbmF5b3VsaXp3YSBtYXJhIGt3YSBtYXJhIy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBzZXR0aW5nIGRlZmluZXMgdGhhdCBhIFwnRkFRXCcgb2JqZWN0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciBcJ0ZBUVwnIG9iamVjdHMgdXNpbmcgdGhlIFwnTm9ybWFsXCcgbGluayB0eXBlLid9ID0KICAgICAgICAnTXBhbmdpbGlvIGh1dSB1bmFmYWZhbnVhIGt3YW1iYSBraXBlbmdlbGUgY2hhIG1hc3dhbGkgeWFuYXlvdWxpendhIG1hcmEga3dhIG1hcmEga2luYXdlemEga3V1bmdhbmlzaHdhIG5hIGtpcGVuZ2VsZSBraW5naW5lIGNoYSBtYXN3YWxpIHlhbmF5b3VsaXp3YSBtYXJhIGt3YSBtYXJhIGt3YSBrdXR1bWlhIGtpdW5nYW5pc2hpIGFpbmEgeWEgXCdrYXdhaWRhXCcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBkZWZpbmVzIHRoYXQgYSBcJ0ZBUVwnIG9iamVjdCBjYW4gYmUgbGlua2VkIHdpdGggb3RoZXIgXCdGQVFcJyBvYmplY3RzIHVzaW5nIHRoZSBcJ1BhcmVudENoaWxkXCcgbGluayB0eXBlLid9ID0KICAgICAgICAnTXBhbmdpbGlvIGh1dSB1bmFmYWZhbnVhIGt3YW1iYSBraXBlbmdlbGUgY2hhIG1hc3dhbGkgeWFuYXlvdWxpendhIG1hcmEga3dhIG1hcmEga2luYXdlemEga3V1bmdhbmlzaHdhIG5hIGtpcGVuZ2VsZSBraW5naW5lIGNoYSB0aWtldGkga3dhIGt1dHVtaWEga2l1bmdhbmlzaGkgYWluYSB5YSBcJ1phemlNdG90b1wnLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnVGlja2V0XCcgb2JqZWN0cyB1c2luZyB0aGUgXCdOb3JtYWxcJyBsaW5rIHR5cGUuJ30gPQogICAgICAgICdNcGFuZ2lsaW8gaHV1IHVuYWZhZmFudWEga3dhbWJhIGtpcGVuZ2VsZSBjaGEgbWFzd2FsaSB5YW5heW91bGl6d2EgbWFyYSBrd2EgbWFyYSBraW5hd2V6YSBrdXVuZ2FuaXNod2EgbmEga2lwZW5nZWxlIGtpbmdpbmUgY2hhIHRpa2V0aSBrd2Ega3V0dW1pYSBraXVuZ2FuaXNoaSBhaW5hIHlhIFwna2F3YWlkYVwnLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnVGlja2V0XCcgb2JqZWN0cyB1c2luZyB0aGUgXCdQYXJlbnRDaGlsZFwnIGxpbmsgdHlwZS4nfSA9CiAgICAgICAgJ01wYW5naWxpbyBodXUgdW5hZmFmYW51YSBrd2FtYmEga2lwZW5nZWxlIGNoYSBtYXN3YWxpIHlhbmF5b3VsaXp3YSBtYXJhIGt3YSBtYXJhIGtpbmF3ZXphIGt1dW5nYW5pc2h3YSBuYSBraXBlbmdlbGUga2luZ2luZSBjaGEgdGlrZXRpIGt3YSBrdXR1bWlhIGFpbmEgeWEga2l1bmdhbmlzaGkga2l6YXppLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgYm9keSBmb3IgYXBwcm92YWwgb2YgRkFRIGFydGljbGUuJ30gPSAnS2lpbmkgY2hhIHRpa2V0aSBrd2EgSWRoaW5pIHlhIG1ha2FsYSB5YSBtYXN3YWxpIHlhbmF5b3VsaXp3YSBtYXJhIGt3YSBtYXJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgc3ViamVjdCBmb3IgYXBwcm92YWwgb2YgRkFRIGFydGljbGUuIFBlcm1pdHRlZCBub3RpZmljYXRpb24gdGFncyBhcmUgPE9UT0JPX0ZBUV9OVU1CRVI+LCA8T1RPQk9fRkFRX0NBVEVHT1JZSUQ+LCA8T1RPQk9fRkFRX0lURU1JRD4+IDxPVE9CT19GQVFfVElUTEU+IGFuZCA8T1RPQk9fRkFRX1NUQVRFSUQ+Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rvb2xiYXIgSXRlbSBmb3IgYSBzaG9ydGN1dC4nfSA9ICdLaXBlbmdlbGUgY2hhIG13YW1iYWEgemFuYSBrd2EgYWppbGkgeWEgbWthdG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2V4dGVybmFsIChjdXN0b21lciknfSA9ICduamUgKG10ZWphKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpbnRlcm5hbCAoYWdlbnQpJ30gPSAnbmRhbmkgKHdha2FsYSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncHVibGljIChhbGwpJ30gPSAnVW1tYSAod290ZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncHVibGljIChwdWJsaWMpJ30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnTm8nLAogICAgJ09rJywKICAgICdTZXR0aW5ncycsCiAgICAnU3VibWl0JywKICAgICdUaGlzIG1pZ2h0IGJlIGhlbHBmdWwnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK</File>
        <File Location="Kernel/Language/th_TH_FAQ.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnRoX1RIX0ZBUTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRQWRkCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIEFydGljbGUnfSA9ICfguYDguJ7guLTguYjguKHguJrguJfguITguKfguLLguKEgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0tleXdvcmRzJ30gPSAn4LiE4Li14Lii4LmM4LmA4Lin4Li04Lij4LmM4LiUJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgY2F0ZWdvcnkgaXMgcmVxdWlyZWQuJ30gPSAn4LiV4LmJ4Lit4LiH4Lij4Liw4Lia4Li44Lir4Lih4Lin4LiU4Lir4Lih4Li54LmIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FwcHJvdmFsJ30gPSAn4LiB4Liy4Lij4Lit4LiZ4Li44Lih4Lix4LiV4Li0JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUNhdGVnb3J5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQ2F0ZWdvcnkgTWFuYWdlbWVudCd9ID0gJ+C4geC4suC4o+C4iOC4seC4lOC4geC4suC4o+C4q+C4oeC4p+C4lOC4q+C4oeC4ueC5iCBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEZBUSBDYXRlZ29yeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEZBUSBDYXRlZ29yeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgY2F0ZWdvcnknfSA9ICfguYDguJ7guLTguYjguKHguKvguKHguKfguJTguKvguKHguLnguYgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIENhdGVnb3J5J30gPSAn4LmA4Lie4Li04LmI4Lih4Lir4Lih4Lin4LiU4Lir4Lih4Li54LmIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ2F0ZWdvcnknfSA9ICfguYHguIHguYnguYTguILguKvguKHguKfguJTguKvguKHguLnguYgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3ViY2F0ZWdvcnkgb2YnfSA9ICfguKvguKHguKfguJTguKvguKHguLnguYjguKLguYjguK3guKLguILguK3guIcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhdCBsZWFzdCBvbmUgcGVybWlzc2lvbiBncm91cC4nfSA9ICfguIHguKPguLjguJPguLLguYDguKXguLfguK3guIHguK3guKLguYjguLLguIfguJnguYnguK3guKLguKvguJnguLbguYjguIfguIHguKXguLjguYjguKHguJfguLXguYjguYTguJTguYnguKPguLHguJrguK3guJnguLjguI3guLLguJUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgZ3JvdXBzIHRoYXQgY2FuIGFjY2VzcyBhcnRpY2xlcyBpbiB0aGlzIGNhdGVnb3J5Lid9ID0gJ+C4geC4peC4uOC5iOC4oeC5gOC4reC5gOC4ouC5iOC4meC4leC5jOC4l+C4teC5iOC4quC4suC4oeC4suC4o+C4luC5gOC4guC5ieC4suC4luC4tuC4h+C4muC4l+C4hOC4p+C4suC4oeC5g+C4meC4q+C4oeC4p+C4lOC4q+C4oeC4ueC5iOC4meC4teC5iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXaWxsIGJlIHNob3duIGFzIGNvbW1lbnQgaW4gRXhwbG9yZXIuJ30gPSAn4LiI4Liw4LmB4Liq4LiU4LiH4LmA4Lib4LmH4LiZ4LiE4Lin4Liy4Lih4LiE4Li04LiU4LmA4Lir4LmH4LiZ4LmD4LiZRXhwbG9yZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNhdGVnb3J5Pyd9ID0gJ+C4hOC4uOC4k+C4leC5ieC4reC4h+C4geC4suC4o+C4l+C4teC5iOC4iOC4sOC4peC4muC4q+C4oeC4p+C4lOC4q+C4oeC4ueC5iOC4meC4teC5ieC4q+C4o+C4t+C4reC5hOC4oeC5iD8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgY2F0ZWdvcnkuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIEZBUSBhcnRpY2xlIGFuZC9vciBpcyBwYXJlbnQgb2YgYXQgbGVhc3Qgb25lIG90aGVyIGNhdGVnb3J5J30gPQogICAgICAgICfguITguLjguJPguYTguKHguYjguKrguLLguKHguLLguKPguJbguKXguJrguKvguKHguKfguJTguKvguKHguLnguYjguJnguLXguYnguYTguJTguYnguYDguJ7guKPguLLguLDguKvguKHguKfguJTguKvguKHguLnguYjguJnguLXguYnguJbguLnguIHguYPguIrguYnguYPguJnguK3guKLguYjguLLguIfguJnguYnguK3guKLguKvguJnguLbguYjguIfguJrguJfguITguKfguLLguKEgRkFRIOC4q+C4o+C4t+C4rSDguKvguKHguKfguJTguKvguKHguLnguYjguJnguLXguYnguITguLfguK0g4Lir4Lih4Lin4LiU4Lir4Lih4Li54LmI4Lir4Lil4Lix4LiBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY2F0ZWdvcnkgaXMgdXNlZCBpbiB0aGUgZm9sbG93aW5nIEZBUSBhcnRpY2xlKHMpJ30gPSAn4Lir4Lih4Lin4LiU4Lir4Lih4Li54LmI4LiZ4Li14LmJ4LmD4LiK4LmJ4LmD4LiZ4LiB4Liy4Lij4LiV4Li04LiU4LiV4Liy4Lih4Lia4LiX4LiE4Lin4Liy4LihIEZBUSAocyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBjYXRlZ29yeSBpcyBwYXJlbnQgb2YgdGhlIGZvbGxvd2luZyBzdWJjYXRlZ29yaWVzJ30gPSAn4Lir4Lih4Lin4LiU4Lir4Lih4Li54LmI4LiZ4Li14LmJ4LiE4Li34Lit4Lir4Lih4Lin4LiU4Lir4Lih4Li54LmI4Lir4Lil4Lix4LiB4LiC4Lit4LiH4Lir4Lih4Lin4LiU4Lir4Lih4Li54LmI4Lii4LmI4Lit4Lii4LiV4LmI4Lit4LmE4Lib4LiZ4Li14LmJJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUURlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIEZBUSBhcnRpY2xlPyd9ID0gJ+C4hOC4uOC4k+C4leC5ieC4reC4h+C4geC4suC4o+C4peC4muC4q+C4seC4p+C4guC5ieC4rSBGQVEg4LiZ4Li14LmJ4Lir4Lij4Li34Lit4LmE4Lih4LmIPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEnfSA9ICdGQVEnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRRXhwbG9yZXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBFeHBsb3Jlcid9ID0gJ+C4meC4seC4geC4quC4s+C4o+C4p+C4iCBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVpY2sgU2VhcmNoJ30gPSAn4LiB4Liy4Lij4LiE4LmJ4LiZ4Lir4Liy4LmB4Lia4Lia4Lij4Lin4LiU4LmA4Lij4LmH4LinJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dpbGRjYXJkcyBhcmUgYWxsb3dlZC4nfSA9ICfguYTguKfguKXguJTguYzguIHguLLguKPguYzguJTguYTguJTguYnguKPguLHguJrguK3guJnguLjguI3guLLguJUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWR2YW5jZWQgU2VhcmNoJ30gPSAn4LiB4Liy4Lij4LiE4LmJ4LiZ4Lir4Liy4LmB4Lia4Lia4Lil4Liw4LmA4Lit4Li14Lii4LiUJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1YmNhdGVnb3JpZXMnfSA9ICfguKvguKHguKfguJTguKvguKHguLnguYjguKLguYjguK3guKInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGVzJ30gPSAn4Lia4LiX4LiE4Lin4Liy4LihIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBzdWJjYXRlZ29yaWVzIGZvdW5kLid9ID0gJ+C5hOC4oeC5iOC4nuC4muC4q+C4oeC4p+C4lOC4q+C4oeC4ueC5iOC4ouC5iOC4reC4oic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFIaXN0b3J5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mJ30gPSAn4Lib4Lij4Liw4Lin4Lix4LiV4Li04LiC4Lit4LiHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3RvcnkgQ29udGVudCd9ID0gJ+C5gOC4meC4t+C5ieC4reC4q+C4suC4m+C4o+C4sOC4p+C4seC4leC4tCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGV0aW1lJ30gPSAn4LmA4Lin4Lil4Liy4LiX4Li14LmI4Liq4Lij4LmJ4Liy4LiHJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUpvdXJuYWxPdmVydmlld1NtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBGQVEgSm91cm5hbCBkYXRhIGZvdW5kLid9ID0gJ+C5hOC4oeC5iOC4nuC4muC4p+C4suC4o+C4quC4suC4oyBGQVEgJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUxhbmd1YWdlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgTGFuZ3VhZ2UgTWFuYWdlbWVudCd9ID0gJ+C4geC4suC4o+C4iOC4seC4lOC4geC4suC4o+C4oOC4suC4qeC4siBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEZBUSBMYW5ndWFnZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEZBUSBMYW5ndWFnZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2UgdGhpcyBmZWF0dXJlIGlmIHlvdSB3YW50IHRvIHdvcmsgd2l0aCBtdWx0aXBsZSBsYW5ndWFnZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGxhbmd1YWdlJ30gPSAn4LmA4Lie4Li04LmI4Lih4Lig4Liy4Lip4LiyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBMYW5ndWFnZSd9ID0gJ+C5gOC4nuC4tOC5iOC4oeC4oOC4suC4qeC4sic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IExhbmd1YWdlJ30gPSAn4LmB4LiB4LmJ4LmE4LiC4Lig4Liy4Lip4LiyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gbm90IGRlbGV0ZSB0aGlzIGxhbmd1YWdlLiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBGQVEgYXJ0aWNsZSEnfSA9CiAgICAgICAgJ+C4hOC4uOC4k+C5hOC4oeC5iOC4quC4suC4oeC4suC4o+C4luC4peC4muC4oOC4suC4qeC4suC4meC4teC5ieC5gOC4nuC4o+C4suC4sOC4oOC4suC4qeC4suC4meC4teC5ieC4geC4s+C4peC4seC4h+C5g+C4iuC5ieC5g+C4meC4reC4ouC5iOC4suC4h+C4meC5ieC4reC4ouC4q+C4meC4tuC5iOC4h+C5g+C4meC4muC4l+C4hOC4p+C4suC4oSBGQVEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbGFuZ3VhZ2UgaXMgdXNlZCBpbiB0aGUgZm9sbG93aW5nIEZBUSBBcnRpY2xlKHMpJ30gPSAn4Lig4Liy4Lip4Liy4LiZ4Li14LmJ4LmD4LiK4LmJ4LmD4LiZ4Lia4LiX4LiE4Lin4Liy4LihIEZBUShzKSDguYDguKvguKXguYjguLLguJnguLXguYknOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRT3ZlcnZpZXdOYXZCYXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRleHQgU2V0dGluZ3MnfSA9ICfguIHguLLguKPguJXguLHguYnguIfguITguYjguLLguILguYnguK3guITguKfguLLguKEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGFydGljbGVzIHBlciBwYWdlJ30gPSAn4Lia4LiX4LiE4Lin4Liy4LihIEZBUSDguILguK3guIfguYHguJXguYjguKXguLDguKvguJnguYnguLInOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRT3ZlcnZpZXdTbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gRkFRIGRhdGEgZm91bmQuJ30gPSAn4LmE4Lih4LmI4Lie4Lia4LiC4LmJ4Lit4Lih4Li54LilIEZBUSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFSZWxhdGVkQXJ0aWNsZXMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J291dCBvZiA1J30gPSAnMSDguYPguJkgIDUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRU2VhcmNoCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydLZXl3b3JkJ30gPSAn4LiE4Li14Lii4LmM4LmA4Lin4Li04Lij4LmM4LiUJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGUgKGUuIGcuIEVxdWFscyAxMCBvciBHcmVhdGVyVGhhbiA2MCknfSA9ICfguYLguKvguKfguJUgKOC5gOC4iuC5iOC4mSDguYDguJfguYjguLLguIHguLHguJogMTAg4Lir4Lij4Li34Lit4Lih4Liy4LiB4LiB4Lin4LmI4LiyNjApJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGUgKGUuIGcuIEVxdWFscyAyNSUgb3IgR3JlYXRlclRoYW4gNzUlKSd9ID0gJ+C5gOC4o+C4lSAo4LmA4LiK4LmI4LiZIOC5gOC4l+C5iOC4suC4geC4seC4miAyNSUg4Lir4Lij4Li34LitIOC4oeC4suC4geC4geC4p+C5iOC4siA3NSUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FwcHJvdmVkJ30gPSAn4Lit4LiZ4Li44Lih4Lix4LiV4Li04LmB4Lil4LmJ4LinJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgY2hhbmdlZCBieSd9ID0gJ+C4geC4suC4o+C5gOC4m+C4peC4teC5iOC4ouC4meC5geC4m+C4peC4h+C4peC5iOC4suC4quC4uOC4lOC5guC4lOC4oic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDcmVhdGUgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJ+C5gOC4p+C4peC4suC4l+C4teC5iOC4quC4o+C5ieC4suC4h+C4muC4l+C4hOC4p+C4suC4oSBGQVEgKOC4geC5iOC4reC4mS/guKvguKXguLHguIcpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENyZWF0ZSBUaW1lIChiZXR3ZWVuKSd9ID0gJ+C5gOC4p+C4peC4suC4l+C4teC5iOC4quC4o+C5ieC4suC4h+C4muC4l+C4hOC4p+C4suC4oSBGQVEgKOC5g+C4meC4o+C4sOC4q+C4p+C5iOC4suC4hyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ2hhbmdlIFRpbWUgKGJlZm9yZS9hZnRlciknfSA9ICfguYDguKfguKXguLLguJfguLXguYjguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIfguJrguJfguITguKfguLLguKEgRkFRICjguIHguYjguK3guJkv4Lir4Lil4Lix4LiHKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDaGFuZ2UgVGltZSAoYmV0d2VlbiknfSA9ICfguYDguKfguKXguLLguJfguLXguYjguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIfguJrguJfguITguKfguLLguKEgRkFRICjguYPguJnguKPguLDguKvguKfguYjguLLguIcpJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVNlYXJjaE9wZW5TZWFyY2hEZXNjcmlwdGlvbkZ1bGx0ZXh0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVFGdWxsdGV4dCd9ID0gJ+C4guC5ieC4reC4hOC4p+C4suC4oUZBUeC4ieC4muC4seC4muC5gOC4leC5h+C4oSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFTZWFyY2hTbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIFNlYXJjaCd9ID0gJ+C4geC4suC4o+C4hOC5ieC4meC4q+C4suC5guC4lOC4oiBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvZmlsZSBTZWxlY3Rpb24nfSA9ICfguIHguLLguKPguYDguKXguLfguK3guIHguYLguJvguKPguYTguJ/guKXguYwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSd9ID0gJ+C5guC4q+C4p+C4lSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB2b3RlIHNldHRpbmdzJ30gPSAn4LmE4Lih4LmI4Lih4Li14LiB4Liy4Lij4LiV4Lix4LmJ4LiH4LiE4LmI4Liy4LiB4Liy4Lij4LmC4Lir4Lin4LiVJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmljIHZvdGVzJ30gPSAn4LiB4Liy4Lij4LmC4Lir4Lin4LiV4LiX4Li14LmI4LmA4LiJ4Lie4Liy4Liw4LmA4LiI4Liy4Liw4LiI4LiHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuIGcuIEVxdWFscyAxMCBvciBHcmVhdGVyVGhhbiA2MCd9ID0gJ+C5gOC4iuC5iOC4mSDguYDguJfguYjguLLguIHguLHguJogMTAg4Lir4Lij4Li34Lit4Lih4Liy4LiB4LiB4Lin4LmI4LiyNjAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0ZSd9ID0gJ+C5gOC4o+C4lSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyByYXRlIHNldHRpbmdzJ30gPSAn4LmE4Lih4LmI4Lih4Li14LiB4Liy4Lij4LiV4Lix4LmJ4LiH4LiE4LmI4Liy4LiB4Liy4Lij4LmA4Lij4LiVJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmljIHJhdGUnfSA9ICfguIHguLLguKPguJvguKPguLDguYDguKHguLTguJnguJfguLXguYjguYDguInguJ7guLLguLDguYDguIjguLLguLDguIjguIcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZS4gZy4gRXF1YWxzIDI1JSBvciBHcmVhdGVyVGhhbiA3NSUnfSA9ICfguYDguIrguYjguJkg4LmA4LiX4LmI4Liy4LiB4Lix4LiaIDI1JSDguKvguKPguLfguK0g4Lih4Liy4LiB4LiB4Lin4LmI4LiyIDc1JSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDcmVhdGUgVGltZSd9ID0gJ+C5gOC4p+C4peC4suC4l+C4teC5iOC4quC4o+C5ieC4suC4h+C4muC4l+C4hOC4p+C4suC4oSBGQVEgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENoYW5nZSBUaW1lJ30gPSAn4LmA4Lin4Lil4Liy4LiX4Li14LmI4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiH4Lia4LiX4LiE4Lin4Liy4LihJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVpvb20KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJbmZvcm1hdGlvbid9ID0gJ+C4guC5ieC4reC4oeC4ueC4pSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0aW5nJ30gPSAn4LmA4Lij4LiV4LiV4Li04LmJ4LiHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGVzJ30gPSAn4LmC4Lir4Lin4LiVJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHZvdGVzIGZvdW5kISd9ID0gJ+C5hOC4oeC5iOC4nuC4muC4geC4suC4o+C5guC4q+C4p+C4lSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdm90ZXMgZm91bmQhIEJlIHRoZSBmaXJzdCBvbmUgdG8gcmF0ZSB0aGlzIEZBUSBhcnRpY2xlLid9ID0gJ+C5hOC4oeC5iOC4nuC4muC4geC4suC4o+C5guC4q+C4p+C4lSEg4LmA4Lib4LmH4LiZ4LiE4LiZ4LmB4Lij4LiB4LmD4LiZ4LiB4Liy4Lij4Lib4Lij4Liw4LmA4Lih4Li04LiZ4Lir4Lix4Lin4LiC4LmJ4LitIEZBUSDguJnguLXguYknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG93bmxvYWQgQXR0YWNobWVudCd9ID0gJ+C4lOC4suC4p+C4meC5jOC5guC4q+C4peC4lOC4quC4tOC5iOC4h+C4l+C4teC5iOC5geC4meC4muC4oeC4sic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyBvcGVuIGxpbmtzIGluIHRoZSBmb2xsb3dpbmcgZGVzY3JpcHRpb24gYmxvY2tzLCB5b3UgbWlnaHQgbmVlZCB0byBwcmVzcyBDdHJsIG9yIENtZCBvciBTaGlmdCBrZXkgd2hpbGUgY2xpY2tpbmcgdGhlIGxpbmsgKGRlcGVuZGluZyBvbiB5b3VyIGJyb3dzZXIgYW5kIE9TKS4nfSA9CiAgICAgICAgJ+C5g+C4meC4geC4suC4o+C5gOC4m+C4tOC4lOC4geC4suC4o+C4peC4tOC4h+C4hOC5jOC5g+C4meC4muC4peC5h+C4reC4geC4hOC4s+C4reC4mOC4tOC4muC4suC4ouC4leC5iOC4reC5hOC4m+C4meC4teC5iSDguITguLjguJPguK3guLLguIjguIjguLDguJXguYnguK3guIfguIHguJTguJvguLjguYjguKEgQ3RybCDguKvguKPguLfguK0gQ21kIOC4q+C4o+C4t+C4rSBTaGlmdCDguYPguJnguILguJPguLDguJfguLXguYjguIHguJTguKXguLTguIfguITguYwgKOC4guC4tuC5ieC4meC4reC4ouC4uOC5iOC4geC4seC4muC5gOC4muC4o+C4suC5gOC4i+C4reC4o+C5jOC5geC4peC4sOC4o+C4sOC4muC4muC4m+C4juC4tOC4muC4seC4leC4tOC4geC4suC4o+C4guC4reC4h+C4hOC4uOC4kyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG93IGhlbHBmdWwgd2FzIHRoaXMgYXJ0aWNsZT8gUGxlYXNlIGdpdmUgdXMgeW91ciByYXRpbmcgYW5kIGhlbHAgdG8gaW1wcm92ZSB0aGUgRkFRIERhdGFiYXNlLiBUaGFuayBZb3UhJ30gPQogICAgICAgICfguKvguLHguKfguILguYnguK3guJnguLXguYnguYTguJTguYnguJvguKPguLDguYLguKLguIrguJnguYzguIHguLHguJrguITguLjguJPguKvguKPguLfguK3guYTguKHguYg/IOC4geC4o+C4uOC4k+C4suC5g+C4q+C5ieC4hOC4sOC5geC4meC4meC4guC4reC4h+C4hOC4uOC4k+C5geC4peC4sOC4iuC5iOC4p+C4ouC5g+C4meC4geC4suC4o+C4m+C4o+C4seC4muC4m+C4o+C4uOC4h+C4kOC4suC4meC4guC5ieC4reC4oeC4ueC4pSBGQVEuIOC4guC4reC4muC4hOC4uOC4kyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnbm90IGhlbHBmdWwnfSA9ICfguYTguKHguYjguKHguLXguJvguKPguLDguYLguKLguIrguJnguYwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndmVyeSBoZWxwZnVsJ30gPSAn4Lih4Li14Lib4Lij4Liw4LmC4Lii4LiK4LiZ4LmM4Lih4Liy4LiBJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVpvb21TbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEZBUSB0aXRsZSB0byBhcnRpY2xlIHN1YmplY3QnfSA9ICfguYDguJ7guLTguYjguKHguKvguLHguKfguILguYnguK0gRkFRIOC5g+C4meC4leC4seC4p+C4muC4l+C4guC4reC4h+C4muC4l+C4hOC4p+C4suC4oSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRkFRIFRleHQnfSA9ICfguJvguYnguK3guJnguILguYnguK3guITguKfguLLguKEgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGdWxsIEZBUSd9ID0gJ+C4m+C5ieC4reC4mSBGQVEg4LiJ4Lia4Lix4Lia4LmA4LiV4LmH4LihJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGQVEgTGluayd9ID0gJ+C4m+C5ieC4reC4meC4peC4tOC4h+C4hOC5jCBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZBUSBUZXh0ICYgTGluayd9ID0gJ+C4m+C5ieC4reC4meC4peC4tOC4h+C4hOC5jOC5geC4peC4sOC4guC5ieC4reC4hOC4p+C4suC4oSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZ1bGwgRkFRICYgTGluayd9ID0gJ+C4m+C5ieC4reC4mSBGQVEg4LiJ4Lia4Lix4Lia4LmA4LiV4LmH4Lih4LmB4Lil4Liw4Lil4Li04LiH4LiE4LmMJzsKCiAgICAjIFRlbXBsYXRlOiBDdXN0b21lckZBUUV4cGxvcmVyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXRlc3QgdXBkYXRlZCBGQVEgYXJ0aWNsZXMnfSA9ICfguJrguJfguITguKfguLLguKEgRkFRIOC4l+C4teC5iOC4reC4seC4m+C5gOC4lOC4leC4peC5iOC4suC4quC4uOC4lCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBGQVEgYXJ0aWNsZXMgZm91bmQuJ30gPSAn4LmE4Lih4LmI4Lie4Lia4Lia4LiX4LiE4Lin4Liy4LihIEZBUSAnOwoKICAgICMgVGVtcGxhdGU6IEN1c3RvbWVyRkFRUmVsYXRlZEFydGljbGVzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1pZ2h0IGJlIGhlbHBmdWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm91bmQgbm8gaGVscGZ1bCByZXNvdXJjZXMgZm9yIHRoZSBzdWJqZWN0IGFuZCB0ZXh0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlIGEgc3ViamVjdCBvciB0ZXh0IHRvIGdldCBhIGxpc3Qgb2YgaGVscGZ1bCByZXNvdXJjZXMuJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBDdXN0b21lckZBUVNlYXJjaAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnVsbHRleHQgc2VhcmNoIGluIEZBUSBhcnRpY2xlcyAoZS4gZy4gIkpvaG4qbiIgb3IgIldpbGwqIiknfSA9ICfguITguYnguJnguKvguLLguYHguJrguJrguInguJrguLHguJrguYDguJXguYfguKHguYPguJnguJrguJfguITguKfguLLguKEgRkFRICjguYDguIrguYjguJkgIkpvaG4qbiIgb3IgIldpbGwqIiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSByZXN0cmljdGlvbnMnfSA9ICfguILguYnguK3guIjguLPguIHguLHguJTguIHguLLguKPguYLguKvguKfguJUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSBGQVEgYXJ0aWNsZXMgd2l0aCB2b3Rlcy4uLid9ID0gJ+C5gOC4ieC4nuC4suC4sOC4muC4l+C4hOC4p+C4suC4oUZBUSDguYLguJTguKLguIHguLLguKPguYLguKvguKfguJQuLi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0ZSByZXN0cmljdGlvbnMnfSA9ICfguILguYnguK3guIjguLPguIHguLHguJTguIHguLLguKPguJvguKPguLDguYDguKHguLTguJknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSBGQVEgYXJ0aWNsZXMgd2l0aCByYXRlLi4uJ30gPSAn4LmA4LiJ4Lie4Liy4Liw4Lia4LiX4LiE4Lin4Liy4LihRkFRIOC5guC4lOC4ouC4geC4suC4o+C4m+C4o+C4sOC5gOC4oeC4tOC4mS4uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlc3RyaWN0aW9ucyd9ID0gJ+C4geC4suC4o+C4iOC4s+C4geC4seC4lOC5gOC4p+C4peC4sic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IEZBUSBhcnRpY2xlcyBjcmVhdGVkJ30gPSAn4LmA4LiJ4Lie4Liy4Liw4Lia4LiX4LiE4Lin4Liy4LihIEZBUeC4l+C4teC5iOC4quC4o+C5ieC4suC4h+C5geC4peC5ieC4pyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IEZBUSBhcnRpY2xlcyBjcmVhdGVkIGJldHdlZW4nfSA9ICfguYDguInguJ7guLLguLDguJrguJfguITguKfguLLguKEgRkFR4LiX4Li14LmI4Liq4Lij4LmJ4Liy4LiH4LmD4LiZ4Lij4Liw4Lir4Lin4LmI4Liy4LiHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaC1Qcm9maWxlIGFzIFRlbXBsYXRlPyd9ID0gJ1NlYXJjaC1Qcm9maWxlIOC5gOC4m+C5h+C4meC5geC4oeC5iOC5geC4muC4mj8nOwoKICAgICMgVGVtcGxhdGU6IEN1c3RvbWVyRkFRWm9vbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJ0aWNsZSBOdW1iZXInfSA9ICfguKvguKHguLLguKLguYDguKXguILguJrguJfguITguKfguLLguKEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIGZvciBhcnRpY2xlcyB3aXRoIGtleXdvcmQnfSA9ICfguITguYnguJnguKvguLLguJrguJfguITguKfguLLguKHguJTguYnguKfguKLguITguLXguKLguYzguYDguKfguLTguKPguYzguJQnOwoKICAgICMgVGVtcGxhdGU6IFB1YmxpY0ZBUVNlYXJjaE9wZW5TZWFyY2hEZXNjcmlwdGlvbkZBUU51bWJlcgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljJ30gPSAn4Liq4Liy4LiY4Liy4Lij4LiT4LiwJzsKCiAgICAjIFRlbXBsYXRlOiBQdWJsaWNGQVFTZWFyY2hSZXN1bHRTaG9ydAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQmFjayB0byBGQVEgRXhwbG9yZXInfSA9ICfguIHguKXguLHguJrguYTguJvguJfguLXguYggRkFRIEV4cGxvcmVyJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUFkZC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgcncgcGVybWlzc2lvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY2F0ZWdvcmllcyBmb3VuZCB3aGVyZSB1c2VyIGhhcyByZWFkL3dyaXRlIHBlcm1pc3Npb25zISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkZWZhdWx0IGxhbmd1YWdlIGZvdW5kIGFuZCBjYW5cJ3QgY3JlYXRlIGEgbmV3IG9uZS4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRQ2F0ZWdvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgQ2F0ZWdvcnlJRCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRlZ29yeSBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAn4LiV4LmJ4Lit4LiH4Lij4Liw4Lia4Li44LiK4Li34LmI4Lit4Lir4Lih4Lin4LiU4Lir4Lih4Li54LmIISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGNhdGVnb3J5IGFscmVhZHkgZXhpc3RzJ30gPSAn4Lir4Lih4Lin4LiU4Lir4Lih4Li54LmI4LiZ4Li14LmJ4Lih4Li14Lit4Lii4Li54LmI4LmB4Lil4LmJ4LinISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGNhdGVnb3J5IGFscmVhZHkgZXhpc3RzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBDYXRlZ29yeUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBjYXRlZ29yeSAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGNhdGVnb3J5IHVwZGF0ZWQhJ30gPSAn4Lit4Lix4Lib4LmA4LiU4LiV4Lir4Lih4Lin4LiU4Lir4Lih4Li54LmIIEZBUSDguYHguKXguYnguKchJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBjYXRlZ29yeSBhZGRlZCEnfSA9ICfguYDguJ7guLTguYjguKHguKvguKHguKfguJTguKvguKHguLnguYggRkFRIOC5geC4peC5ieC4pyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIENhdGVnb3J5J30gPSAn4Lil4Lia4Lir4Lih4Lin4LiU4Lir4Lih4Li54LmIJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gSXRlbUlEIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSBubyBwZXJtaXNzaW9uIGZvciB0aGlzIGNhdGVnb3J5ISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBGQVEgYXJ0aWNsZSAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRRXhwbG9yZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBDYXRlZ29yeUlEICVzIGlzIGludmFsaWQuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUhpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIEl0ZW1JRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEhpc3RvcnknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRSm91cm5hbC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEpvdXJuYWwnfSA9ICfguKfguLLguKPguKrguLLguKMgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgY29uZmlnIG9wdGlvbiBGQVE6OkZyb250ZW5kOjpPdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWcgb3B0aW9uIEZBUTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3IG5lZWRzIHRvIGJlIGEgSEFTSCByZWYhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY29uZmlnIG9wdGlvbiBmb3VuZCBmb3IgdGhlIHZpZXcgIiVzIiEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRTGFuZ3VhZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIExhbmd1YWdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBuYW1lIGlzIHJlcXVpcmVkISd9ID0gJ+C4leC5ieC4reC4h+C4o+C4sOC4muC4uOC4iuC4t+C5iOC4rSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBsYW5ndWFnZSBhbHJlYWR5IGV4aXN0cyEnfSA9ICfguKDguLLguKnguLLguJnguLXguYnguKHguLXguK3guKLguLnguYjguYHguKXguYnguKchJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGxhbmd1YWdlICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgbGFuZ3VhZ2UgdXBkYXRlZCEnfSA9ICfguK3guLHguJvguYDguJTguJXguKDguLLguKnguLIgRkFRIOC5geC4peC5ieC4pyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGxhbmd1YWdlIGFkZGVkISd9ID0gJ+C5gOC4nuC4tOC5iOC4oeC4oOC4suC4qeC4siBGQVEg4LmB4Lil4LmJ4LinISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgTGFuZ3VhZ2UgJXMnfSA9ICfguKXguJrguKDguLLguKnguLIgJSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFQcmludC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzdWx0J30gPSAn4Lic4Lil4Lil4Lix4Lie4LiY4LmMJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgdXBkYXRlJ30gPSAn4Lit4Lix4Lib4LmA4LiU4LiV4Lil4LmI4Liy4Liq4Li44LiUJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBEeW5hbWljIEZpZWxkcyd9ID0gJ+C5hOC4lOC4oeC4suC4meC4tOC4hOC4n+C4tOC4peC4lOC5jOC4guC4reC4hyBGQVEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRUmljaFRleHQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vICVzIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgbG9hZCBMYW5ndWFnZU9iamVjdCEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBSZXN1bHQhJ30gPSAn4LmE4Lih4LmI4Lih4Li14Lic4Lil4Lil4Lix4Lie4LiY4LmMISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgTnVtYmVyJ30gPSAn4Lir4Lih4Liy4Lii4LmA4Lil4LiCIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IENoYW5nZWQgYnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ3JlYXRlIFRpbWUgKGJlZm9yZS9hZnRlciknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ3JlYXRlIFRpbWUgKGJldHdlZW4pJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJdGVtIENoYW5nZSBUaW1lIChiZWZvcmUvYWZ0ZXIpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJdGVtIENoYW5nZSBUaW1lIChiZXR3ZWVuKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcXVhbHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JlYXRlciB0aGFuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyZWF0ZXIgdGhhbiBlcXVhbHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU21hbGxlciB0aGFuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NtYWxsZXIgdGhhbiBlcXVhbHMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRWm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBGaWxlSUQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoYW5rcyBmb3IgeW91ciB2b3RlISd9ID0gJ+C4guC4reC4muC4hOC4uOC4k+C4quC4s+C4q+C4o+C4seC4muC4geC4suC4o+C5guC4q+C4p+C4leC4guC4reC4h+C4hOC4uOC4kyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgYWxyZWFkeSB2b3RlZCEnfSA9ICfguITguLjguJPguYTguJTguYnguJfguLPguIHguLLguKPguYLguKvguKfguJXguYHguKXguYnguKchJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHJhdGUgc2VsZWN0ZWQhJ30gPSAn4LmE4Lih4LmI4Lih4Li14LmA4Lij4LiX4LiX4Li14LmI4LiW4Li54LiB4LmA4Lil4Li34Lit4LiBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB2b3RpbmcgbWVjaGFuaXNtIGlzIG5vdCBlbmFibGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdm90ZSByYXRlIGlzIG5vdCBkZWZpbmVkISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQ3VzdG9tZXJGQVFQcmludC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgUHJpbnQnfSA9ICfguJ7guLTguKHguJ7guYzguJrguJfguITguKfguLLguKEgRkFRICc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQ3VzdG9tZXJGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZWQgYmV0d2Vlbid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQ3VzdG9tZXJGQVFab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIEl0ZW1JRCEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL1B1YmxpY0ZBUUV4cGxvcmVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZXMgKG5ldyBjcmVhdGVkKSd9ID0gJ+C4muC4l+C4hOC4p+C4suC4oSBGQVEgKOC5gOC4nuC4tOC5iOC4h+C4quC4o+C5ieC4suC4h+C5g+C4q+C4oeC5iCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGVzIChyZWNlbnRseSBjaGFuZ2VkKSd9ID0gJ+C4muC4l+C4hOC4p+C4suC4oSBGQVEgKOC5gOC4nuC4tOC5iOC4h+C5gOC4m+C4peC4teC5iOC4ouC4meC5geC4m+C4peC4hyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGVzIChUb3AgMTApJ30gPSAn4Lia4LiX4LiE4Lin4Liy4LihIEZBUSAoMTAg4Lit4Lix4LiZ4LiU4Lix4Lia4Lii4Lit4LiU4LiZ4Li04Lii4LihKSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvUHVibGljRkFRUlNTLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBUeXBlIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlIG11c3QgYmUgZWl0aGVyIExhc3RDcmVhdGUgb3IgTGFzdENoYW5nZSBvciBUb3AxMCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBSU1MgZmlsZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9IZWFkZXJNZXRhL0FnZW50RkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoRkFRRnVsbHRleHQpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvSGVhZGVyTWV0YS9DdXN0b21lckZBUVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgLSBDdXN0b21lciAoJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gQ3VzdG9tZXIgKEZBUUZ1bGx0ZXh0KSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0hlYWRlck1ldGEvUHVibGljRkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAtIFB1YmxpYyAoJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gUHVibGljIChGQVFGdWxsdGV4dCknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9MYXlvdXQvRkFRLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIHJhdGUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgYXJ0aWNsZSBpcyBlbXB0eSEnfSA9ICfguJrguJfguITguKfguLLguKHguJnguLXguYnguKfguYjguLLguIfguYDguJvguKXguYjguLInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGF0ZXN0IGNyZWF0ZWQgRkFRIGFydGljbGVzJ30gPSAn4Lia4LiX4LiE4Lin4Liy4LihIEZBUSDguJfguLXguYjguKrguKPguYnguLLguIfguKXguYjguLLguKrguLjguJQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG9wIDEwIEZBUSBhcnRpY2xlcyd9ID0gJzEwIOC4muC4l+C4hOC4p+C4suC4oSBGQVEg4Lii4Lit4LiU4LiZ4Li04Lii4LihJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTGlua09iamVjdC9GQVEucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRlbnQgVHlwZSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL1N5c3RlbS9EeW5hbWljRmllbGQvRHJpdmVyL0ZBUS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IHRoZSBhdHRyaWJ1dGUgd2hpY2ggRkFRcyB3aWxsIGJlIHNlYXJjaGVkIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0V4dGVybmFsLXNvdXJjZSBrZXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IHRoZSB0eXBlIG9mIGRpc3BsYXknfSA9ICcnOwoKICAgICMgRGF0YWJhc2UgWE1MIC8gU09QTSBEZWZpbml0aW9uOiBGQVEuc29wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW50ZXJuYWwnfSA9ICfguKDguLLguKLguYPguJknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZXh0ZXJuYWwnfSA9ICfguKDguLLguKLguJnguK3guIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncHVibGljJ30gPSAn4Liq4Liy4LiY4Liy4Lij4LiT4LiwJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBmaWx0ZXIgZm9yIEhUTUwgb3V0cHV0IHRvIGFkZCBsaW5rcyBiZWhpbmQgYSBkZWZpbmVkIHN0cmluZy4gVGhlIGVsZW1lbnQgSW1hZ2UgYWxsb3dzIHR3byBpbnB1dCBraW5kcy4gRmlyc3QgdGhlIG5hbWUgb2YgYW4gaW1hZ2UgKGUuZy4gZmFxLnBuZykuIEluIHRoaXMgY2FzZSB0aGUgT1RPQk8gaW1hZ2UgcGF0aCB3aWxsIGJlIHVzZWQuIFRoZSBzZWNvbmQgcG9zc2liaWxpdHkgaXMgdG8gaW5zZXJ0IHRoZSBsaW5rIHRvIHRoZSBpbWFnZS4nfSA9CiAgICAgICAgJ+C4leC4seC4p+C4geC4o+C4reC4h+C4quC4s+C4q+C4o+C4seC4muC4geC4suC4o+C5geC4quC4lOC4h+C4nOC4pSBIVE1M4LmA4Lie4Li34LmI4Lit4LmA4Lie4Li04LmI4Lih4LiB4Liy4Lij4LmA4LiK4Li34LmI4Lit4Lih4LmC4Lii4LiH4LiX4Li14LmI4Lit4Lii4Li54LmI4LmA4Lia4Li34LmJ4Lit4LiH4Lir4Lil4Lix4LiH4LiC4Lit4LiH4Lit4Lix4LiB4LiC4Lij4Liw4LiX4Li14LmI4LiB4Liz4Lir4LiZ4LiU4LmE4Lin4LmJIOC4reC4h+C4hOC5jOC4m+C4o+C4sOC4geC4reC4muC4guC4reC4h+C4oOC4suC4nuC4l+C4teC5iOC4iOC4sOC4iuC5iOC4p+C4ouC5g+C4q+C5ieC4quC4suC4oeC4suC4o+C4luC4m+C5ieC4reC4meC4guC5ieC4reC4oeC4ueC4peC4quC4reC4h+C4iuC4meC4tOC4lOC5hOC4lOC5iSDguKvguJnguLbguYjguIfguITguLfguK3guIrguLfguYjguK3guILguK3guIfguKDguLLguJ4gKOC5gOC4iuC5iOC4mSBmYXEucG5nKeC5g+C4meC4geC4o+C4k+C4teC4meC4teC5ieC5gOC4quC5ieC4meC4l+C4suC4h+C4guC4reC4h+C4oOC4suC4nk9UT0JPIOC4iOC4sOC4luC4ueC4geC4meC4s+C4oeC4suC5g+C4iuC5iSDguKrguK3guIfguITguLfguK3guIHguLLguKPguYHguJfguKPguIHguIHguLLguKPguYDguIrguLfguYjguK3guKHguYLguKLguIfguYTguJvguKLguLHguIfguKDguLLguJ4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEZBUSBhcnRpY2xlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NTUyBjb2xvciBmb3IgdGhlIHZvdGluZyByZXN1bHQuJ30gPSAn4Liq4Li1IENTUyDguKrguLPguKvguKPguLHguJrguJzguKXguIHguLLguKPguYLguKvguKfguJUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FjaGUgVGltZSBUbyBMZWF2ZSBmb3IgRkFRIGl0ZW1zLid9ID0gJ+C5gOC4p+C4peC4suC5geC4hOC4iuC4l+C4teC5iOC4iOC4sOC4m+C4peC5iOC4reC4ouC5g+C4q+C5ieC4quC4s+C4q+C4o+C4seC4muC4o+C4suC4ouC4geC4suC4o0ZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSBNYW5hZ2VtZW50J30gPSAn4LiB4Liy4Lij4LiI4Lix4LiU4LiB4Liy4Lij4Lir4Lih4Lin4LiU4Lir4Lih4Li54LmIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGVnb3J5IE1hbmFnZW1lbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBQcmludC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIFJlbGF0ZWQgQXJ0aWNsZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIFJlbGF0ZWQgQXJ0aWNsZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgc2VhcmNoLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlY2ltYWwgcGxhY2VzIG9mIHRoZSB2b3RpbmcgcmVzdWx0Lid9ID0gJ+C4leC4s+C5geC4q+C4meC5iOC4h+C4l+C4qOC4meC4tOC4ouC4oeC4guC4reC4h+C4nOC4peC4geC4suC4o+C4meC4seC4muC4hOC4sOC5geC4meC4mSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IGNhdGVnb3J5IG5hbWUuJ30gPSAn4LiK4Li34LmI4Lit4Lir4Lih4Lin4LiU4Lir4Lih4Li54LmI4LmA4Lij4Li04LmI4Lih4LiV4LmJ4LiZJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbGFuZ3VhZ2UgZm9yIEZBUSBhcnRpY2xlcyBvbiBzaW5nbGUgbGFuZ3VhZ2UgbW9kZS4nfSA9ICfguKDguLLguKnguLLguYDguKPguLTguYjguKHguJXguYnguJnguKrguLPguKvguKPguLHguJogRkFRIOC5g+C4meC5guC4q+C4oeC4lOC4oOC4suC4qeC4suC5gOC4lOC4teC4ouC4pyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG1heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24uJ30gPQogICAgICAgICfguILguJnguLLguJTguYDguKPguLTguYjguKHguJXguYnguJnguJfguLXguYjguKrguLnguIfguKrguLjguJTguILguK3guIfguKvguLHguKfguILguYnguK3guYPguJnguJrguJfguITguKfguLLguKEgRkFRIOC4l+C4teC5iOC4iOC4sOC5geC4quC4lOC4hyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHByaW9yaXR5IG9mIHRpY2tldHMgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPQogICAgICAgICfguKXguLPguJTguLHguJrguITguKfguLLguKHguKrguLPguITguLHguI3guYDguKPguLTguYjguKHguJXguYnguJnguILguK3guIfguJXguLHguYvguKfguKrguLPguKvguKPguLHguJrguIHguLLguKPguK3guJnguLjguKHguLHguJXguLTguILguK3guIfguJrguJfguITguKfguLLguKEgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXRlIGZvciBGQVEgZW50cnkuJ30gPSAn4Liq4LiW4Liy4LiZ4Lig4Liy4Lie4LmA4Lij4Li04LmI4Lih4LiV4LmJ4LiZ4Liq4Liz4Lir4Lij4Lix4Lia4LiB4Liy4Lij4LiB4Lij4Lit4LiB4LiC4LmJ4Lit4Lih4Li54LilIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0ZSBvZiB0aWNrZXRzIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0gJ+C4quC4luC4suC4meC4oOC4suC4nuC4leC4seC5i+C4p+C5gOC4o+C4tOC5iOC4oeC4leC5ieC4meC4quC4s+C4q+C4o+C4seC4muC4geC4suC4o+C4reC4meC4uOC4oeC4seC4leC4tOC4muC4l+C4hOC4p+C4suC4oSBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgdHlwZSBvZiB0aWNrZXRzIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0gJ+C4m+C4o+C4sOC5gOC4oOC4l+C4leC4seC5i+C4p+C5gOC4o+C4tOC5iOC4oeC4leC5ieC4meC4quC4s+C4q+C4o+C4seC4muC4geC4suC4o+C4reC4meC4uOC4oeC4seC4leC4tOC4muC4l+C4hOC4p+C4suC4oSBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgdmFsdWUgZm9yIHRoZSBBY3Rpb24gcGFyYW1ldGVyIGZvciB0aGUgcHVibGljIGZyb250ZW5kLiBUaGUgQWN0aW9uIHBhcmFtZXRlciBpcyB1c2VkIGluIHRoZSBzY3JpcHRzIG9mIHRoZSBzeXN0ZW0uJ30gPQogICAgICAgICfguITguYjguLLguYDguKPguLTguYjguKHguJXguYnguJnguKrguLPguKvguKPguLHguJrguJ7guLLguKPguLLguKHguLTguYDguJXguK3guKPguYzguIHguLLguKPguJTguLPguYDguJnguLTguJnguIHguLLguKPguYPguJnguKvguJnguYnguLLguKrguLLguJjguLLguKPguJPguLAg4Lie4Liy4Lij4Liy4Lih4Li04LmA4LiV4Lit4Lij4LmM4LiB4Liy4Lij4LiU4Liz4LmA4LiZ4Li04LiZ4LiB4Liy4Lij4LiW4Li54LiB4LiZ4Liz4Lih4Liy4LmD4LiK4LmJ4LmD4LiZ4Liq4LiE4Lij4Li04Lib4LiV4LmM4LiC4Lit4LiH4Lij4Liw4Lia4LiaJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSBBY3Rpb25zIHdoZXJlIGEgc2V0dGluZ3MgYnV0dG9uIGlzIGF2YWlsYWJsZSBpbiB0aGUgbGlua2VkIG9iamVjdHMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIFBsZWFzZSBub3RlIHRoYXQgdGhlc2UgQWN0aW9ucyBtdXN0IGhhdmUgcmVnaXN0ZXJlZCB0aGUgZm9sbG93aW5nIEpTIGFuZCBDU1MgZmlsZXM6IENvcmUuQWxsb2NhdGlvbkxpc3QuY3NzLCBDb3JlLlVJLkFsbG9jYXRpb25MaXN0LmpzLCBDb3JlLlVJLlRhYmxlLlNvcnQuanMsIENvcmUuQWdlbnQuVGFibGVGaWx0ZXJzLmpzIGFuZCBDb3JlLkFnZW50LkxpbmtPYmplY3QuanMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIGlmIHRoZSBGQVEgdGl0bGUgc2hvdWxkIGJlIGNvbmNhdGVuYXRlZCB0byBhcnRpY2xlIHN1YmplY3QuJ30gPQogICAgICAgICfguIHguLPguKvguJnguJTguITguYjguLLguJbguYnguLLguKvguLLguIHguKvguLHguKfguILguYnguK1GQVEg4LiE4Lin4Lij4LmE4LiU4LmJ4Lij4Lix4Lia4LiB4Liy4Lij4LiV4Lix4LiU4LmB4Lia4LmI4LiH4LiC4LmJ4Lit4LiE4Lin4Liy4Lih4LmE4Lib4Lii4Lix4LiH4Lia4LiX4LiE4Lin4Liy4LihJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB3aGljaCBjb2x1bW5zIGFyZSBzaG93biBpbiB0aGUgbGlua2VkIEZBUXMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGU6IE9ubHkgRkFRIGF0dHJpYnV0ZXMgYW5kIGR5bmFtaWMgZmllbGRzIChEeW5hbWljRmllbGRfTmFtZVgpIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgRkFRIGpvdXJuYWwuJ30gPQogICAgICAgICfguIHguLPguKvguJnguJTguYLguKHguJTguLnguKXguKDguLLguJ7guKPguKfguKHguJfguLXguYjguIjguLDguYHguKrguJTguIfguKHguLjguKHguKHguK3guIfguYDguKXguYfguIEg4LmGIOC4guC4reC4h+C4p+C4suC4o+C4quC4suC4oyBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBGQVEgbGlzdC4nfSA9CiAgICAgICAgJ+C4geC4s+C4q+C4meC4lOC5guC4oeC4lOC4ueC4peC4oOC4suC4nuC4o+C4p+C4oeC4l+C4teC5iOC4iOC4sOC5geC4quC4lOC4h+C4oeC4uOC4oeC4oeC4reC4h+C5gOC4peC5h+C4gSDguYYg4LiC4Lit4LiH4Lij4Liy4Lii4LiB4Liy4LijIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiBhIEZBUSBzZWFyY2ggb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+C4geC4s+C4q+C4meC4lOC4hOC5geC4reC4leC4l+C4o+C4tOC4muC4tOC4p+C4leC5jCBGQVEg4LmA4Lij4Li04LmI4Lih4LiV4LmJ4LiZ4Liq4Liz4Lir4Lij4Lix4Lia4LiB4Liy4Lij4LmA4Lij4Li14Lii4LiH4Lil4Liz4LiU4Lix4LiaRkFRIOC5g+C4meC4geC4suC4o+C4hOC5ieC4meC4q+C4suC4guC4reC4h0ZBUSDguYPguJnguK3guLTguJnguYDguJXguK3guKPguYzguYDguJ/guIvguYDguK3guYDguKLguYjguJnguJXguYwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiBhIEZBUSBzZWFyY2ggb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+C4geC4s+C4q+C4meC4lOC4hOC5geC4reC4leC4l+C4o+C4tOC4muC4tOC4p+C4leC5jCBGQVEg4LmA4Lij4Li04LmI4Lih4LiV4LmJ4LiZ4Liq4Liz4Lir4Lij4Lix4Lia4LiB4Liy4Lij4LmA4Lij4Li14Lii4LiH4Lil4Liz4LiU4Lix4LiaRkFRIOC5g+C4meC4geC4suC4o+C4hOC5ieC4meC4q+C4suC4guC4reC4hyBGQVEg4LmD4LiZ4Lit4Li04LiZ4LmA4LiV4Lit4Lij4LmM4LmA4Lif4LiL4Lil4Li54LiB4LiE4LmJ4LiyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gYSBGQVEgc2VhcmNoIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAn4LiB4Liz4Lir4LiZ4LiU4LiE4LmB4Lit4LiV4LiX4Lij4Li04Lia4Li04Lin4LiV4LmMIEZBUSDguYDguKPguLTguYjguKHguJXguYnguJnguKrguLPguKvguKPguLHguJrguIHguLLguKPguYDguKPguLXguKLguIfguKXguLPguJTguLHguJogRkFRIOC5g+C4meC4geC4suC4o+C4hOC5ieC4meC4q+C4suC4guC4reC4h0ZBUSDguYPguJnguK3guLTguJnguYDguJXguK3guKPguYzguYDguJ/guIvguKrguLLguJjguLLguKPguJPguLAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfguIHguLPguKvguJnguJTguITguYHguK3guJXguJfguKPguLTguJrguLTguKfguJXguYwgRkFRIOC5gOC4o+C4tOC5iOC4oeC4leC5ieC4meC4quC4s+C4q+C4o+C4seC4muC4geC4suC4o+C5gOC4o+C4teC4ouC4h+C4peC4s+C4lOC4seC4mkZBUSDguYPguJkgRkFRIEV4cGxvcmVyIOC4guC4reC4h+C4reC4tOC4meC5gOC4leC4reC4o+C5jOC5gOC4n+C4i+C5gOC4reC5gOC4ouC5iOC4meC4leC5jCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIHRoZSBGQVEgRXhwbG9yZXIgb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+C4geC4s+C4q+C4meC4lOC4hOC5geC4reC4leC4l+C4o+C4tOC4muC4tOC4p+C4leC5jCBGQVEg4LmA4Lij4Li04LmI4Lih4LiV4LmJ4LiZ4Liq4Liz4Lir4Lij4Lix4Lia4LiB4Liy4Lij4LmA4Lij4Li14Lii4LiH4Lil4Liz4LiU4Lix4LiaICBGQVEg4LmD4LiZRkFRIEV4cGxvcmVyIOC4guC4reC4h+C4reC4tOC4meC5gOC4leC4reC4o+C5jOC5gOC4n+C4i+C4peC4ueC4geC4hOC5ieC4sic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIHRoZSBGQVEgRXhwbG9yZXIgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICfguIHguLPguKvguJnguJTguITguYHguK3guJXguJfguKPguLTguJrguLTguKfguJXguYwgRkFRIOC5gOC4o+C4tOC5iOC4oeC4leC5ieC4meC4quC4s+C4q+C4o+C4seC4muC4geC4suC4o+C5gOC4o+C4teC4ouC4h+C4peC4s+C4lOC4seC4miAgRkFRIOC5g+C4mUZBUSBFeHBsb3JlciDguILguK3guIfguK3guLTguJnguYDguJXguK3guKPguYzguYDguJ/guIvguKrguLLguJjguLLguKPguJPguLAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICfguIHguLPguKvguJnguJQgRkFRIG9yZGVyIOC5gOC4o+C4tOC5iOC4oeC4leC5ieC4mSDguYPguJnguJzguKXguIHguLLguKPguITguYnguJnguKvguLIgRkFRIEV4cGxvcmVyIOC4guC4reC4h+C4reC4tOC4meC5gOC4leC4reC4o+C5jOC5gOC4n+C4i+C5gOC4reC5gOC4ouC5iOC4meC4leC5jCDguILguLbguYnguJk6IOC5gOC4geC5iOC4suC4l+C4teC5iOC4quC4uOC4lOC4lOC5ieC4suC4meC4muC4mSDguKXguIc6IOC4peC5iOC4suC4quC4uOC4lOC4lOC5ieC4suC4meC4muC4mSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ+C4geC4s+C4q+C4meC4lCBGQVEgb3JkZXIg4LmA4Lij4Li04LmI4Lih4LiV4LmJ4LiZIOC5g+C4meC4nOC4peC4geC4suC4o+C4hOC5ieC4meC4q+C4siBGQVEgRXhwbG9yZXIg4LiC4Lit4LiH4Lit4Li04LiZ4LmA4LiV4Lit4Lij4LmM4LmA4Lif4LiL4Lil4Li54LiB4LiE4LmJ4LiyIOC4guC4tuC5ieC4mTog4LmA4LiB4LmI4Liy4LiX4Li14LmI4Liq4Li44LiU4LiU4LmJ4Liy4LiZ4Lia4LiZIOC4peC4hzog4Lil4LmI4Liy4Liq4Li44LiU4LiU4LmJ4Liy4LiZ4Lia4LiZJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ+C4geC4s+C4q+C4meC4lCBGQVEgb3JkZXIg4LmA4Lij4Li04LmI4Lih4LiV4LmJ4LiZIOC5g+C4meC4nOC4peC4geC4suC4o+C4hOC5ieC4meC4q+C4siBGQVEgRXhwbG9yZXIg4LiC4Lit4LiH4Lit4Li04LiZ4LmA4LiV4Lit4Lij4LmM4LmA4Lif4LiL4Liq4Liy4LiY4Liy4Lij4LiT4LiwIOC4guC4tuC5ieC4mTog4LmA4LiB4LmI4Liy4LiX4Li14LmI4Liq4Li44LiU4LiU4LmJ4Liy4LiZ4Lia4LiZIOC4peC4hzog4Lil4LmI4Liy4Liq4Li44LiU4LiU4LmJ4Liy4LiZ4Lia4LiZJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ+C4geC4s+C4q+C4meC4lCBGQVEgb3JkZXIg4LmA4Lij4Li04LmI4Lih4LiV4LmJ4LiZIOC4guC4reC4h+C4nOC4peC4geC4suC4o+C4hOC5ieC4meC4q+C4suC5g+C4meC4reC4tOC4meC4leC4reC4o+C5jOC5gOC4n+C4i+C5gOC4reC5gOC4ouC5iOC4meC4leC5jCDguILguLbguYnguJk6IOC5gOC4geC5iOC4suC4l+C4teC5iOC4quC4uOC4lOC4lOC5ieC4suC4meC4muC4mSDguKXguIc6IOC4peC5iOC4suC4quC4uOC4lOC4lOC5ieC4suC4meC4muC4mSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICfguIHguLPguKvguJnguJQgRkFRIG9yZGVyIOC5gOC4o+C4tOC5iOC4oeC4leC5ieC4mSDguILguK3guIfguJzguKXguIHguLLguKPguITguYnguJnguKvguLLguYPguJnguK3guLTguJnguJXguK3guKPguYzguYDguJ/guIvguKXguLnguIHguITguYnguLIg4LiC4Li24LmJ4LiZOiDguYDguIHguYjguLLguJfguLXguYjguKrguLjguJTguJTguYnguLLguJnguJrguJkg4Lil4LiHOiDguKXguYjguLLguKrguLjguJTguJTguYnguLLguJnguJrguJknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ+C4geC4s+C4q+C4meC4lCBGQVEgb3JkZXIg4LmA4Lij4Li04LmI4Lih4LiV4LmJ4LiZIOC4guC4reC4h+C4nOC4peC4geC4suC4o+C4hOC5ieC4meC4q+C4suC5g+C4meC4reC4tOC4meC4leC4reC4o+C5jOC5gOC4n+C4i+C4quC4suC4mOC4suC4o+C4k+C4sCDguILguLbguYnguJk6IOC5gOC4geC5iOC4suC4l+C4teC5iOC4quC4uOC4lOC4lOC5ieC4suC4meC4muC4mSDguKXguIc6IOC4peC5iOC4suC4quC4uOC4lOC4lOC5ieC4suC4meC4muC4mSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNob3duIEZBUSBzZWFyY2ggYXR0cmlidXRlIGZvciBGQVEgc2VhcmNoIHNjcmVlbi4nfSA9CiAgICAgICAgJ+C4geC4s+C4q+C4meC4lOC4hOC5iOC4suC4hOC5iOC4suC5gOC4o+C4tOC5iOC4oeC4leC5ieC4meC4l+C4teC5iOC5geC4quC4lOC4h+C5geC4reC4leC4l+C4o+C4tOC4muC4tOC4p+C4leC5jOC4guC4reC4h+C4geC4suC4o+C4hOC5ieC4meC4q+C4suC4guC4reC4h0ZBUSDguKrguLPguKvguKPguLHguJrguKvguJnguYnguLLguIjguK3guIHguLLguKPguITguYnguJnguKvguLLguILguK3guIdGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaGVpZ2h0IGZvciB0aGUgcmljaCB0ZXh0IGVkaXRvciBjb21wb25lbnQgZm9yIHRoaXMgc2NyZWVuLiBFbnRlciBudW1iZXIgKHBpeGVscykgb3IgcGVyY2VudCB2YWx1ZSAocmVsYXRpdmUpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGluZm9ybWF0aW9uIHRvIGJlIGluc2VydGVkIGluIGEgRkFRIGJhc2VkIFRpY2tldC4gIkZ1bGwgRkFRIiBpbmNsdWRlcyB0ZXh0LCBhdHRhY2htZW50cyBhbmQgaW5saW5lIGltYWdlcy4nfSA9CiAgICAgICAgJ+C4geC4s+C4q+C4meC4lOC4guC5ieC4reC4oeC4ueC4peC4l+C4teC5iOC4iOC4sOC5geC4l+C4o+C4geC5g+C4mUZBUSDguJXguLLguJfguJXguLHguYvguKcgIkZBUSDguInguJrguLHguJrguYDguJXguYfguKEiIOC4iOC4sOC4o+C4p+C4oeC4luC4tuC4h+C4guC5ieC4reC4hOC4p+C4suC4oeC5geC4peC4sOC4oOC4suC4nuC4l+C4teC5iOC5geC4meC4muC4oeC4suC5geC4muC4muC4reC4tOC4meC5hOC4peC4meC5jCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZGFzaGJvYXJkIGJhY2tlbmQuICJMaW1pdCIgZGVmaW5lcyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgZGlzcGxheWVkIGJ5IGRlZmF1bHQuICJHcm91cCIgaXMgdXNlZCB0byByZXN0cmljdCBhY2Nlc3MgdG8gdGhlIHBsdWdpbiAoZS4gZy4gR3JvdXA6IGFkbWluO2dyb3VwMTtncm91cDI7KS4gIkRlZmF1bHQiIGluZGljYXRlcyBpZiB0aGUgcGx1Z2luIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiB0aGUgdXNlciBuZWVkcyB0byBlbmFibGUgaXQgbWFudWFsbHkuJ30gPQogICAgICAgICfguIHguLPguKvguJnguJTguJ7guLLguKPguLLguKHguLTguYDguJXguK3guKPguYzguKrguLPguKvguKPguLHguJrguYHguJTguIrguJrguK3guKPguYzguJTguYDguJrguLfguYnguK3guIfguKvguKXguLHguIcgICLguIjguLPguIHguLHguJQiIOC4hOC4t+C4reC4geC4s+C4q+C4meC4lOC4iOC4s+C4meC4p+C4meC4guC4reC4h+C4o+C4suC4ouC4geC4suC4o+C4l+C4teC5iOC5geC4quC4lOC4h+C5guC4lOC4ouC4hOC5iOC4suC5gOC4o+C4tOC5iOC4oeC4leC5ieC4mSAi4LiB4Lil4Li44LmI4LihIiDguIjguLDguJbguLnguIHguJnguLPguKHguLLguYPguIrguYnguYDguJ7guLfguYjguK3guIjguLPguIHguLHguJTguIHguLLguKPguYDguILguYnguLLguJbguLbguIfguJvguKXguLHguYrguIHguK3guLTguJkgKOC5gOC4iuC5iOC4meC4geC4peC4uOC5iOC4oTog4Lic4Li54LmJ4LiU4Li54LmB4Lil4Lij4Liw4Lia4LiaOyDguIHguKXguLjguYjguKEgMTsg4LiB4Lil4Li44LmI4LihMjspICLguYDguKPguLTguYjguKHguJXguYnguJkiIOC4o+C4sOC4muC4uOC4p+C5iOC4suC4luC5ieC4suC4m+C4peC4seC5iuC4geC4reC4tOC4meC4luC4ueC4geC5gOC4m+C4tOC4lOC5g+C4iuC5ieC4h+C4suC4meC5guC4lOC4ouC4hOC5iOC4suC5gOC4o+C4tOC5iOC4oeC4leC5ieC4meC4q+C4o+C4t+C4reC4q+C4suC4geC4nOC4ueC5ieC5g+C4iuC5ieC4leC5ieC4reC4h+C4geC4suC4o+C5gOC4nuC4t+C5iOC4reC5gOC4m+C4tOC4lOC5g+C4iuC5ieC4h+C4suC4meC5hOC4lOC5ieC4lOC5ieC4p+C4ouC4leC4meC5gOC4reC4hyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBGQVEgRXhwbG9yZXIuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICfguIHguLPguKvguJnguJTguITguK3guKXguLHguKHguJnguYzguJfguLXguYjguYHguKrguJTguIfguK3guKLguLnguYjguYPguJkgRkFRIEV4cGxvcmVyICDguIvguLbguYjguIfguJXguLHguKfguYDguKXguLfguK3guIHguJnguLXguYnguIjguLDguYTguKHguYjguKHguLXguJzguKXguJXguYjguK3guJXguLPguYHguKvguJnguYjguIfguILguK3guIfguITguK3guKXguLHguKHguJnguYwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgRkFRIGpvdXJuYWwuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICfguIHguLPguKvguJnguJTguITguK3guKXguLHguKHguJnguYzguJfguLXguYjguYHguKrguJTguIfguK3guKLguLnguYjguYPguJnguJnguLTguJXguKLguKrguLLguKMgRkFRIOC4i+C4tuC5iOC4h+C4leC4seC4p+C5gOC4peC4t+C4reC4geC4meC4teC5ieC4iOC4sOC5hOC4oeC5iOC4oeC4teC4nOC4peC4leC5iOC4reC4leC4s+C5geC4q+C4meC5iOC4h+C4guC4reC4h+C4hOC4reC4peC4seC4oeC4meC5jCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBGQVEgc2VhcmNoLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAn4LiB4Liz4Lir4LiZ4LiU4LiE4Lit4Lil4Lix4Lih4LiZ4LmM4LiX4Li14LmI4LmB4Liq4LiU4LiH4Lit4Lii4Li54LmI4LmD4LiZ4LiB4Liy4Lij4LiE4LmJ4LiZ4Lir4LiyIEZBUSDguIvguLbguYjguIfguJXguLHguKfguYDguKXguLfguK3guIHguJnguLXguYnguIjguLDguYTguKHguYjguKHguLXguJzguKXguJXguYjguK3guJXguLPguYHguKvguJnguYjguIfguILguK3guIfguITguK3guKXguLHguKHguJnguYwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB3aGVyZSB0aGUgXCdJbnNlcnQgRkFRXCcgbGluayB3aWxsIGJlIGRpc3BsYXllZC4nfSA9ICfguIHguLPguKvguJnguJTguKrguJbguLLguJnguJfguLXguYjguJfguLXguYjguKXguLTguIfguITguYwgXCfguYHguJfguKPguIFGQVEgXCcg4LiI4Liw4Lib4Lij4Liy4LiB4LiPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluaXRpb24gb2YgRkFRIGl0ZW0gZnJlZSB0ZXh0IGZpZWxkLid9ID0gJ+C4hOC4s+C4meC4tOC4ouC4suC4oeC4guC4reC4h+C4iuC5iOC4reC4h+C4guC5ieC4reC4hOC4p+C4suC4oeC4guC4reC4h+C4o+C4suC4ouC4geC4suC4oyBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoaXMgRkFRJ30gPSAn4Lil4LiaIEZBUSDguJnguLXguYkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIG92ZXJ2aWV3IHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgb3ZlcnZpZXcgc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgcHJpbnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBwcmludCBzY3JlZW4gb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHByaW50IHNjcmVlbiBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHNlYXJjaCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHNlYXJjaCBzY3JlZW4gb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHNlYXJjaCBzY3JlZW4gb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBzbWFsbCBmb3JtYXQgb3ZlcnZpZXcgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgem9vbSBzY3JlZW4gb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHpvb20gc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhpcyBGQVEnfSA9ICfguYHguIHguYnguYTguIIgRkFRIOC4meC4teC5iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgbXVsdGlwbGUgbGFuZ3VhZ2VzIG9uIEZBUSBtb2R1bGUuJ30gPSAn4LmA4Lib4Li04LiU4LmD4LiK4LmJ4LiH4Liy4LiZ4Lir4Lil4Liy4LiB4Lir4Lil4Liy4Lii4Lig4Liy4Lip4LiyIOC5g+C4meC5guC4oeC4lOC4ueC4pSBGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSBzZXJ2aWNlIGFzc2lnbm1lbnQgZm9yIEZBUXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB0aGUgcmVsYXRlZCBhcnRpY2xlIGZlYXR1cmUgZm9yIHRoZSBjdXN0b21lciBmcm9udGVuZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgdm90aW5nIG1lY2hhbmlzbSBvbiBGQVEgbW9kdWxlLid9ID0gJ+C5gOC4m+C4tOC4lOC5g+C4iuC5ieC4h+C4suC4meC4geC4peC5hOC4geC4geC4suC4o+C5guC4q+C4p+C4leC5g+C4meC5guC4oeC4lOC4ueC4pUZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwbG9yZXInfSA9ICfguJnguLHguIHguKrguLPguKPguKfguIgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFKQVggUmVzcG9uZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBSkFYIFJlc3BvbmRlciBmb3IgUmljaHRleHQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcmVhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcmVhLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgRGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEhpc3RvcnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBKb3VybmFsIE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICfguKDguLLguJ7guKPguKfguKHguILguK3guIfguKfguLLguKPguKrguLLguKNGQVEi4LiC4LiZ4Liy4LiU4LmA4Lil4LmH4LiBIic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJ+C4oOC4suC4nuC4o+C4p+C4oeC4guC4reC4h0ZBUSLguILguJnguLLguJTguYDguKXguYfguIEiJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBQcmludC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIHNlYXJjaCBiYWNrZW5kIHJvdXRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0gJ2JhY2tlbmQgcm91dGVyIOC4hOC5ieC4meC4q+C4siBGQVEg4LiC4Lit4LiH4Lit4Li04LiZ4LmA4LiV4Lit4Lij4LmM4LmA4Lif4LiL4LmA4Lit4LmA4Lii4LmI4LiZ4LiV4LmMJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpZWxkNCd9ID0gJ+C4n+C4tOC4peC4lOC5jDQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmllbGQ1J30gPSAn4Lif4Li04Lil4LiU4LmMNSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGdWxsIEZBUSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICfguIHguKXguLjguYjguKHguKrguLPguKvguKPguLHguJrguIHguLLguKPguK3guJnguLjguKHguLHguJXguLTguJrguJfguITguKfguLLguKEgRkFRLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mIHRoaXMgRkFRJ30gPSAn4Lib4Lij4Liw4Lin4Lix4LiV4Li04LiC4Lit4LiHIEZBUSDguJnguLXguYknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgYWN0aXZhdGVkLCBGQVEgYXJ0aWNsZXMgb2Ygc3RhdHVzIHR5cGUgaW50ZXJuYWwgYXJlIGFsc28gdGFrZW4gaW50byBhY2NvdW50IGZvciB0aGUgYXBwcm92YWwgcHJvY2Vzcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNsdWRlIGludGVybmFsIGZpZWxkcyBvbiBhIEZBUSBiYXNlZCBUaWNrZXQuJ30gPSAn4Lij4Lin4Lih4LmA4LiC4LiV4LiC4LmJ4Lit4Lih4Li54Lil4Lig4Liy4Lii4LmD4LiZ4LmA4LiB4Li14LmI4Lii4Lin4LiB4Lix4LiaRkFRIOC4leC4suC4oeC4leC4seC5i+C4pyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNsdWRlIHRoZSBuYW1lIG9mIGVhY2ggZmllbGQgaW4gYSBGQVEgYmFzZWQgVGlja2V0Lid9ID0gJ+C4o+C4p+C4oeC4luC4tuC4h+C4iuC4t+C5iOC4reC4guC4reC4h+C5geC4leC5iOC4peC4sOC5gOC4guC4leC4guC5ieC4reC4oeC4ueC4peC4oOC4suC4ouC5g+C4mUZBUSDguJXguLLguKHguJXguLHguYvguKcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW50ZXJmYWNlcyB3aGVyZSB0aGUgcXVpY2sgc2VhcmNoIHNob3VsZCBiZSBzaG93bi4nfSA9ICfguK3guLTguJnguYDguJXguK3guKPguYzguYDguJ/guIvguJfguLXguYjguIHguLLguKPguITguYnguJnguKvguLLguYHguJrguJrguKPguKfguJTguYDguKPguYfguKfguITguKfguKPguIjguLDguYHguKrguJTguIcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSm91cm5hbCd9ID0gJ+C4p+C4suC4o+C4quC4suC4oyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYW5ndWFnZSBNYW5hZ2VtZW50J30gPSAn4LiB4Liy4Lij4LiI4Lix4LiU4LiB4Liy4Lij4Lig4Liy4Lip4LiyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhbmd1YWdlIE1hbmFnZW1lbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbWl0IGZvciB0aGUgc2VhcmNoIHRvIGJ1aWxkIHRoZSBrZXl3b3JkIEZBUSBhcnRpY2xlIGxpc3QuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhpcyBGQVEgaXRlbSd9ID0gJ+C4peC4tOC4h+C4hOC5jOC4reC4reC4muC5gOC4iOC4geC4leC5jOC4reC4t+C5iOC4meC5hOC4m+C4ouC4seC4hyBGQVEg4LiZ4Li14LmJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2YgcXVldWUgbmFtZXMgZm9yIHdoaWNoIHRoZSByZWxhdGVkIGFydGljbGUgZmVhdHVyZSBpcyBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2Ygc3RhdGUgdHlwZXMgd2hpY2ggY2FuIGJlIHVzZWQgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+C4o+C4suC4ouC4iuC4t+C5iOC4reC4guC4reC4h+C4m+C4o+C4sOC5gOC4oOC4l+C4quC4luC4suC4meC4oOC4suC4nuC4leC5iOC4suC4h+C5huC4l+C4teC5iOC4quC4suC4oeC4suC4o+C4luC5g+C4iuC5ieC4h+C4suC4meC5g+C4meC4reC4tOC4meC5gOC4leC4reC4o+C5jOC5gOC4n+C4i+C4guC4reC4h+C5gOC4reC5gOC4ouC5iOC4meC4leC5jOC5hOC4lOC5iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIHN0YXRlIHR5cGVzIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICfguKPguLLguKLguIrguLfguYjguK3guILguK3guIfguJvguKPguLDguYDguKDguJfguKrguJbguLLguJnguKDguLLguJ7guJXguYjguLLguIfguYbguJfguLXguYjguKrguLLguKHguLLguKPguJbguYPguIrguYnguIfguLLguJnguYPguJnguK3guLTguJnguYDguJXguK3guKPguYzguYDguJ/guIvguILguK3guIfguKXguLnguIHguITguYnguLLguYTguJTguYknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBzdGF0ZSB0eXBlcyB3aGljaCBjYW4gYmUgdXNlZCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+C4o+C4suC4ouC4iuC4t+C5iOC4reC4guC4reC4h+C4m+C4o+C4sOC5gOC4oOC4l+C4quC4luC4suC4meC4oOC4suC4nuC4leC5iOC4suC4h+C5huC4l+C4teC5iOC4quC4suC4oeC4suC4o+C4luC5g+C4iuC5ieC4h+C4suC4meC5g+C4meC4reC4tOC4meC5gOC4leC4reC4o+C5jOC5gOC4n+C4i+C4quC4suC4mOC4suC4o+C4k+C4sOC5hOC4lOC5iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMb2FkZXIgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+C4iOC4s+C4meC4p+C4meC4muC4l+C4hOC4p+C4suC4oSBGQVEg4Liq4Li54LiH4Liq4Li44LiU4LiX4Li14LmI4LiI4Liw4LmB4Liq4LiU4LiH4LmD4LiZIEZBUSBFeHBsb3JlciDguYPguJnguK3guLTguJnguYDguJXguK3guKPguYzguYDguJ/guIvguILguK3guIfguYDguK3guYDguKLguYjguJnguJXguYwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAn4LiI4Liz4LiZ4Lin4LiZ4Lia4LiX4LiE4Lin4Liy4LihIEZBUSDguKrguLnguIfguKrguLjguJTguJfguLXguYjguIjguLDguYHguKrguJTguIfguYPguJkgRkFRIEV4cGxvcmVyIOC5g+C4meC4reC4tOC4meC5gOC4leC4reC4o+C5jOC5gOC4n+C4i+C4guC4reC4h+C4peC4ueC4geC4hOC5ieC4sic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAn4LiI4Liz4LiZ4Lin4LiZ4Lia4LiX4LiE4Lin4Liy4LihIEZBUSDguKrguLnguIfguKrguLjguJTguJfguLXguYjguIjguLDguYHguKrguJTguIfguYPguJkgRkFRICBFeHBsb3JlciDguYPguJnguK3guLTguJnguYDguJXguK3guKPguYzguYDguJ/guIvguJfguLXguYjguKrguLLguJjguLLguKPguJPguLAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIGpvdXJuYWwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+C4iOC4s+C4meC4p+C4meC4muC4l+C4hOC4p+C4suC4oSBGQVEg4Liq4Li54LiH4Liq4Li44LiU4LiX4Li14LmI4LiI4Liw4LmB4Liq4LiU4LiH4LmD4LiZ4Lin4Liy4Lij4Liq4Liy4LijIEZBUSDguYPguJnguK3guLTguJnguYDguJXguK3guKPguYzguYDguJ/guIvguILguK3guIfguYDguK3guYDguKLguYjguJnguJXguYwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgcmVzdWx0IG9mIGEgc2VhcmNoIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfguIjguLPguJnguKfguJnguJrguJfguITguKfguLLguKEgRkFRIOC4quC4ueC4h+C4quC4uOC4lOC4l+C4teC5iOC4iOC4sOC5geC4quC4lOC4h+C5g+C4meC4nOC4peC4geC4suC4o+C4hOC5ieC4meC4q+C4suC5g+C4meC4reC4tOC4meC5gOC4leC4reC4o+C5jOC5gOC4n+C4i+C4guC4reC4h+C5gOC4reC5gOC4ouC5iOC4meC4leC5jCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSByZXN1bHQgb2YgYSBzZWFyY2ggaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+C4iOC4s+C4meC4p+C4meC4muC4l+C4hOC4p+C4suC4oSBGQVEg4Liq4Li54LiH4Liq4Li44LiU4LiX4Li14LmI4LiI4Liw4LmB4Liq4LiU4LiH4LmD4LiZ4Lic4Lil4LiB4Liy4Lij4LiE4LmJ4LiZ4Lir4Liy4LmD4LiZ4Lit4Li04LiZ4LmA4LiV4Lit4Lij4LmM4LmA4Lif4LiL4LiC4Lit4LiH4Lil4Li54LiB4LiE4LmJ4LiyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHJlc3VsdCBvZiBhIHNlYXJjaCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+C4iOC4s+C4meC4p+C4meC4muC4l+C4hOC4p+C4suC4oSBGQVEg4Liq4Li54LiH4Liq4Li44LiU4LiX4Li14LmI4LiI4Liw4LmB4Liq4LiU4LiH4LmD4LiZ4Lic4Lil4LiB4Liy4Lij4LiE4LmJ4LiZ4Lir4Liy4LmD4LiZ4Lit4Li04LiZ4LmA4LiV4Lit4Lij4LmM4LmA4Lif4LiL4LiX4Li14LmI4Liq4Liy4LiY4Liy4Lij4LiT4LiwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBFeHBsb3JlciBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn4LiI4Liz4LiZ4Lin4LiZ4Lir4Lix4Lin4LiC4LmJ4Lit4Liq4Li54LiH4Liq4Li44LiU4LmD4LiZ4Lia4LiX4LiE4Lin4Liy4LihIEZBUSAg4LiX4Li14LmI4LiI4Liw4LmB4Liq4LiU4LiH4LmD4LiZIEZBUSBFeHBsb3JlciDguYPguJnguK3guLTguJnguYDguJXguK3guKPguYzguYDguJ/guIvguILguK3guIfguYDguK3guYDguKLguYjguJnguJXguYwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIEV4cGxvcmVyIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICfguIjguLPguJnguKfguJnguKvguLHguKfguILguYnguK3guKrguLnguIfguKrguLjguJTguYPguJnguJrguJfguITguKfguLLguKEgRkFRICDguJfguLXguYjguIjguLDguYHguKrguJTguIfguYPguJkgRkFRIEV4cGxvcmVyIOC5g+C4meC4reC4tOC4meC5gOC4leC4reC4o+C5jOC5gOC4n+C4i+C4guC4reC4h+C4peC4ueC4geC4hOC5ieC4sic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgRXhwbG9yZXIgaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICfguIjguLPguJnguKfguJnguKvguLHguKfguILguYnguK3guKrguLnguIfguKrguLjguJTguYPguJnguJrguJfguITguKfguLLguKEgRkFRICDguJfguLXguYjguIjguLDguYHguKrguJTguIfguYPguJkgRkFRIEV4cGxvcmVyIOC5g+C4meC4reC4tOC4meC5gOC4leC4reC4o+C5jOC5gOC4n+C4i+C4quC4suC4mOC4suC4o+C4k+C4sCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgU2VhcmNoIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfguIjguLPguJnguKfguJnguKvguLHguKfguILguYnguK3guKrguLnguIfguKrguLjguJTguYPguJnguJrguJfguITguKfguLLguKEgRkFRICDguJfguLXguYjguIjguLDguYHguKrguJTguIfguYPguJnguIHguLLguKPguITguYnguJnguKvguLLguILguK3guIcgRkFRIOC5g+C4meC4reC4tOC4meC5gOC4leC4reC4o+C5jOC5gOC4n+C4i+C4guC4reC4h+C5gOC4reC5gOC4ouC5iOC4meC4leC5jCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgU2VhcmNoIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICfguIjguLPguJnguKfguJnguKvguLHguKfguILguYnguK3guKrguLnguIfguKrguLjguJTguYPguJnguJrguJfguITguKfguLLguKEgRkFRICDguJfguLXguYjguIjguLDguYHguKrguJTguIfguYPguJnguIHguLLguKPguITguYnguJnguKvguLLguILguK3guIcgRkFRIOC5g+C4meC4reC4tOC4meC5gOC4leC4reC4o+C5jOC5gOC4n+C4i+C4guC4reC4h+C4peC4ueC4geC4hOC5ieC4sic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgU2VhcmNoIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAn4LiI4Liz4LiZ4Lin4LiZ4Lir4Lix4Lin4LiC4LmJ4Lit4Liq4Li54LiH4Liq4Li44LiU4LmD4LiZ4Lia4LiX4LiE4Lin4Liy4LihIEZBUSAg4LiX4Li14LmI4LiI4Liw4LmB4Liq4LiU4LiH4LmD4LiZ4LiB4Liy4Lij4LiE4LmJ4LiZ4Lir4Liy4LiC4Lit4LiHIEZBUSDguYPguJnguK3guLTguJnguYDguJXguK3guKPguYzguYDguJ/guIvguKrguLLguJjguLLguKPguJPguLAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIGpvdXJuYWwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+C4iOC4s+C4meC4p+C4meC4q+C4seC4p+C4guC5ieC4reC4quC4ueC4h+C4quC4uOC4lOC5g+C4meC4muC4l+C4hOC4p+C4suC4oSBGQVEg4LiX4Li14LmI4LiI4Liw4LmB4Liq4LiU4LiH4LmD4LiZ4Lin4Liy4Lij4Liq4Liy4LijIEZBUSDguYPguJnguK3guLTguJnguYDguJXguK3guKPguYzguYDguJ/guIvguILguK3guIfguYDguK3guYDguKLguYjguJnguJXguYwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGdlbmVyYXRlIEhUTUwgT3BlblNlYXJjaCBwcm9maWxlIGZvciBzaG9ydCBGQVEgc2VhcmNoIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGdlbmVyYXRlIEhUTUwgT3BlblNlYXJjaCBwcm9maWxlIGZvciBzaG9ydCBGQVEgc2VhcmNoIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAn4LmC4Lih4LiU4Li54Lil4LmD4LiZ4LiB4Liy4Lij4Liq4Lij4LmJ4Liy4LiH4LmC4Lib4Lij4LmE4Lif4Lil4LmMIE9wZW5TZWFyY2ggaHRtbCDguKrguLPguKvguKPguLHguJrguIHguLLguKPguITguYnguJnguKvguLIgRkFRIOC5geC4muC4muC4geC4o+C4sOC4iuC4seC4miDguYPguJnguK3guLTguJnguYDguJXguK3guKPguYzguYDguJ/guIvguJfguLXguYjguKrguLLguJjguLLguKPguJPguLAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGdlbmVyYXRlIGh0bWwgT3BlblNlYXJjaCBwcm9maWxlIGZvciBzaG9ydCBGQVEgc2VhcmNoLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBGQVEgQXJ0aWNsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEZBUSBhcnRpY2xlcyBuZWVkIGFwcHJvdmFsIGJlZm9yZSB0aGV5IGdldCBwdWJsaXNoZWQuJ30gPSAn4Lia4LiX4LiE4Lin4Liy4LihRkFRIOC5g+C4q+C4oeC5iOC4leC5ieC4reC4h+C4l+C4teC5iOC5hOC4lOC5ieC4o+C4seC4muC4geC4suC4o+C4reC4meC4uOC4oeC4seC4leC4tOC4geC5iOC4reC4meC5hOC4lOC5ieC4o+C4seC4muC4geC4suC4o+C4leC4teC4nuC4tOC4oeC4nuC5jCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICfguIjguLPguJnguKfguJnguJrguJfguITguKfguLLguKEgRkFRIOC4l+C4teC5iOC4iOC4sOC5geC4quC4lOC4h+C5g+C4mSBGQVEgRXhwbG9yZXIg4LmD4LiZ4Lit4Li04LiZ4LmA4LiV4Lit4Lij4LmM4LmA4Lif4LiL4LiC4Lit4LiH4Lil4Li54LiB4LiE4LmJ4LiyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICfguIjguLPguJnguKfguJnguJrguJfguITguKfguLLguKEgRkFRIOC4l+C4teC5iOC4iOC4sOC5geC4quC4lOC4h+C5g+C4mSBGQVEgRXhwbG9yZXIg4LmD4LiZ4Lit4Li04LiZ4LmA4LiV4Lit4Lij4LmM4LmA4Lif4LiL4Liq4Liy4LiY4Liy4Lij4LiT4LiwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIG9uIGVhY2ggcGFnZSBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+C4iOC4s+C4meC4p+C4meC4muC4l+C4hOC4p+C4suC4oSBGQVEg4LiX4Li14LmI4LiI4Liw4LmB4Liq4LiU4LiH4Lia4LiZ4LmB4LiV4LmI4Lil4Liw4Lir4LiZ4LmJ4Liy4LiC4Lit4LiH4Lic4Lil4LiB4Liy4Lij4LiE4LmJ4LiZ4Lir4Liy4LmD4LiZ4Lit4Li04LiZ4LmA4LiV4Lit4Lij4LmM4LmA4Lif4LiL4LiC4Lit4LiH4Lil4Li54LiB4LiE4LmJ4LiyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIG9uIGVhY2ggcGFnZSBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICfguIjguLPguJnguKfguJnguJrguJfguITguKfguLLguKEgRkFRIOC4l+C4teC5iOC4iOC4sOC5geC4quC4lOC4h+C4muC4meC5geC4leC5iOC4peC4sOC4q+C4meC5ieC4suC4guC4reC4h+C4nOC4peC4geC4suC4o+C4hOC5ieC4meC4q+C4suC5g+C4meC4reC4tOC4meC5gOC4leC4reC4o+C5jOC5gOC4n+C4i+C4quC4suC4mOC4suC4o+C4k+C4sCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2Ygc2hvd24gaXRlbXMgaW4gbGFzdCBjaGFuZ2VzLid9ID0gJ+C4iOC4s+C4meC4p+C4mSBpdGVtcyDguJfguLXguYjguYHguKrguJTguIfguYPguJnguIrguYjguKfguIfguJfguLXguYjguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIfguITguKPguLHguYnguIfguKXguYjguLLguKrguLjguJQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIHNob3duIGl0ZW1zIGluIGxhc3QgY3JlYXRlZC4nfSA9ICfguIjguLPguJnguKfguJkgaXRlbXMg4LiX4Li14LmI4LmB4Liq4LiU4LiH4LmD4LiZ4LiK4LmI4Lin4LiH4LiX4Li14LmI4Liq4Lij4LmJ4Liy4LiH4LiC4Li24LmJ4LiZ4LiE4Lij4Lix4LmJ4LiH4Lil4LmI4Liy4Liq4Li44LiUJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBzaG93biBpdGVtcyBpbiB0aGUgdG9wIDEwIGZlYXR1cmUuJ30gPSAn4LiI4Liz4LiZ4Lin4LiZ4Lij4Liy4Lii4LiB4Liy4Lij4LiX4Li14LmI4LmB4Liq4LiU4LiH4Lif4Li14LmA4LiI4Lit4Lij4LmM4LmD4LiZIDEwIOC4reC4seC4meC4lOC4seC4muC5geC4o+C4gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdXRwdXQgZmlsdGVyIHRvIGFkZCBKYXZhLXNjcmlwdCB0byBDdXN0b21lclRpY2tldE1lc3NhZ2Ugc2NyZWVuLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J091dHB1dCBsaW1pdCBmb3IgdGhlIHJlbGF0ZWQgRkFRIGFydGljbGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBGQVEgaXRlbXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgRkFRIGpvdXJuYWwgb3ZlcnZpZXcuJ30gPQogICAgICAgICfguJ7guLLguKPguLLguKHguLTguYDguJXguK3guKPguYzguKrguLPguKvguKPguLHguJrguKvguJnguYnguLLguYPguJnguKPguLLguKLguIHguLLguKMgKOC4i+C4tuC5iOC4h+C4iOC4sOC5geC4quC4lOC4h+C4o+C4suC4ouC4geC4suC4oyBGQVEgKSDguILguK3guIfguKfguLLguKPguKrguLLguKMgRkFRIOC4guC4meC4suC4lOC5gOC4peC5h+C4gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBGQVEgaXRlbXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgRkFRIG92ZXJ2aWV3Lid9ID0KICAgICAgICAn4Lie4Liy4Lij4Liy4Lih4Li04LmA4LiV4Lit4Lij4LmM4Liq4Liz4Lir4Lij4Lix4Lia4Lir4LiZ4LmJ4Liy4LmD4LiZ4Lij4Liy4Lii4LiB4Liy4LijICAo4LiL4Li24LmI4LiH4LiI4Liw4LmB4Liq4LiU4LiH4Lij4Liy4Lii4LiB4Liy4LijIEZBUSkg4LiC4Lit4LiHIOC4oOC4suC4nuC4o+C4p+C4oSBGQVHguILguJnguLLguJTguYDguKXguYfguIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhpcyBGQVEnfSA9ICfguJ7guLTguKHguJ7guYwgRkFRIOC4meC4teC5iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRIFByaW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRIFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBGQVEgc2VhcmNoLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydRdWV1ZSBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICfguITguLTguKfguYPguJnguIHguLLguKPguK3guJnguLjguKHguLHguJXguLTguJrguJfguITguKfguLLguKFGQVEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGVzIGZvciB2b3RpbmcuIEtleSBtdXN0IGJlIGluIHBlcmNlbnQuJ30gPSAn4LmA4Lij4LiV4Liq4Liz4Lir4Lij4Lix4Lia4LiB4Liy4Lij4LmC4Lir4Lin4LiV4LiV4LmJ4Lit4LiH4LiB4Liz4Lir4LiZ4LiU4LmA4Lib4LmH4LiZ4Lij4LmJ4Lit4Lii4Lil4LiwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIEZBUSd9ID0gJ+C4hOC5ieC4meC4q+C4siBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIEZBUSBTbWFsbC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIEZBUS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGhvdyBtYW55IGl0ZW1zIHNob3VsZCBiZSBzaG93biBpbiBKb3VybmFsIE92ZXJ2aWV3ICJTbWFsbCIgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgaG93IG1hbnkgaXRlbXMgc2hvdWxkIGJlIHNob3duIGluIE92ZXJ2aWV3ICJTbWFsbCIgYnkgZGVmYXVsdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBBZ2VudEZBUVpvb20uJ30gPQogICAgICAgICfguYDguIvguJXguITguYjguLLguITguKfguLLguKHguKrguLnguIfguYDguKPguLTguYjguKHguJXguYnguJko4Lie4Li04LiB4LmA4LiL4LilKSDguILguK3guIfguJ/guLTguKXguJTguYxIVE1MIOC5geC4muC4muC4reC4tOC4meC5hOC4peC4meC5jOC5g+C4mSBBZ2VudEZBUVpvb20uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZGVmYXVsdCBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEN1c3RvbWVyRkFRWm9vbSAoYW5kIFB1YmxpY0ZBUVpvb20pLid9ID0KICAgICAgICAn4LmA4LiL4LiV4LiE4LmI4Liy4LiE4Lin4Liy4Lih4Liq4Li54LiH4LmA4Lij4Li04LmI4Lih4LiV4LmJ4LiZKOC4nuC4tOC4geC5gOC4i+C4pSkg4LiC4Lit4LiH4Lif4Li04Lil4LiU4LmMSFRNTCDguYHguJrguJrguK3guLTguJnguYTguKXguJnguYzguYPguJlDdXN0b21lckZBUVpvb20gICjguYHguKXguLAgUHVibGljRkFRWm9vbSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBtYXhpbXVtIGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gQWdlbnRGQVFab29tLid9ID0KICAgICAgICAn4LmA4LiL4LiV4LiE4LmI4Liy4LiE4Lin4Liy4Lih4Liq4Li54LiH4Liq4Li54LiH4Liq4Li44LiUKOC4nuC4tOC4geC5gOC4i+C4pSkg4LiC4Lit4LiH4Lif4Li04Lil4LiU4LmMSFRNTCDguYHguJrguJrguK3guLTguJnguYTguKXguJnguYzguYPguJkgQWdlbnRGQVFab29tLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBDdXN0b21lckZBUVpvb20gKGFuZCBQdWJsaWNGQVFab29tKS4nfSA9CiAgICAgICAgJ+C5gOC4i+C4leC4hOC5iOC4suC4hOC4p+C4suC4oeC4quC4ueC4h+C4quC4ueC4h+C4quC4uOC4lCjguJ7guLTguIHguYDguIvguKUpIOC4guC4reC4h+C4n+C4tOC4peC4lOC5jEhUTUwg4LmB4Lia4Lia4Lit4Li04LiZ4LmE4Lil4LiZ4LmM4LmD4LiZQ3VzdG9tZXJGQVFab29tICjguYHguKXguLAgUHVibGljRkFRWm9vbSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyAiSW5zZXJ0IEZBUSBMaW5rIiBCdXR0b24gaW4gQWdlbnRGQVFab29tU21hbGwgZm9yIHB1YmxpYyBGQVEgQXJ0aWNsZXMuJ30gPQogICAgICAgICfguYHguKrguJTguIfguJvguLjguYjguKEgIuC5geC4l+C4o+C4geC4peC4tOC4h+C4hOC5jCBGQVEgIiDguYPguJkgQWdlbnRGQVFab29tU21hbGwg4Liq4Liz4Lir4Lij4Lix4Lia4Lia4LiX4LiE4Lin4Liy4LihRkFRIOC4quC4suC4mOC4suC4o+C4k+C4sCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93ICJJbnNlcnQgRkFRIFRleHQgJiBMaW5rIiAvICJJbnNlcnQgRnVsbCBGQVEgJiBMaW5rIiBCdXR0b24gaW4gQWdlbnRGQVFab29tU21hbGwgZm9yIHB1YmxpYyBGQVEgQXJ0aWNsZXMuJ30gPQogICAgICAgICfguYHguKrguJTguIfguJvguLjguYjguKEgIuC5geC4l+C4o+C4geC4guC5ieC4reC4hOC4p+C4suC4oSBGQVHguYHguKXguLDguKXguLTguIfguITguYwgIiDguYPguJkgQWdlbnRGQVFab29tU21hbGwg4Liq4Liz4Lir4Lij4Lix4Lia4Lia4LiX4LiE4Lin4Liy4LihIEZBUSDguKrguLLguJjguLLguKPguJPguLAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyAiSW5zZXJ0IEZBUSBUZXh0IiAvICJJbnNlcnQgRnVsbCBGQVEiIEJ1dHRvbiBpbiBBZ2VudEZBUVpvb21TbWFsbC4nfSA9CiAgICAgICAgJ+C5geC4quC4lOC4h+C4m+C4uOC5iOC4oSAi4LmB4LiX4Lij4LiB4LiC4LmJ4Lit4LiE4Lin4Liy4LihIEZBUSAiIOC5g+C4mSBBZ2VudEZBUVpvb21TbWFsbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IEZBUSBBcnRpY2xlIHdpdGggSFRNTC4nfSA9ICfguYHguKrguJTguIfguJrguJfguITguKfguLLguKFGQVEg4LiU4LmJ4Lin4LiiIEhUTUwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgRkFRIHBhdGggeWVzL25vLid9ID0gJ+C5geC4quC4lOC4hyDguYPguIrguYgvIOC5hOC4oeC5iOC5g+C4iuC5iCDguJ7guLLguJhGQVEgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgaW52YWxpZCBpdGVtcyBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgaXRlbXMgb2Ygc3ViY2F0ZWdvcmllcy4nfSA9ICfguYHguKrguJTguIfguKPguLLguKLguIHguLLguKPguILguK3guIfguKvguKHguKfguJTguKvguKHguLnguYjguKLguYjguK3guKInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBsYXN0IGNoYW5nZSBpdGVtcyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAn4LmB4Liq4LiU4LiH4Lij4Liy4Lii4LiB4Liy4Lij4LiB4Liy4Lij4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiH4LiX4Li14LmI4Lic4LmI4Liy4LiZ4Lih4Liy4Lil4LmI4Liy4Liq4Li44LiU4LmD4LiZ4Lit4Li04LiZ4LmA4LiV4Lit4Lij4LmM4LmA4Lif4LiL4LiX4Li14LmI4LiB4Liz4Lir4LiZ4LiU4LmE4Lin4LmJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgbGFzdCBjcmVhdGVkIGl0ZW1zIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICfguYHguKrguJTguIfguKPguLLguKLguIHguLLguKPguJfguLXguYjguKrguKPguYnguLLguIfguKXguYjguLLguKrguLjguJTguYPguJnguK3guLTguJnguYDguJXguK3guKPguYzguYDguJ/guIvguJfguLXguYjguIHguLPguKvguJnguJTguYTguKfguYkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgcmVsYXRlZCBhcnRpY2xlcyBvbiBzZXJ2aWNlIGNoYW5nZSBldmVuIHdpdGggZW1wdHkgc3ViamVjdCBhbmQgYm9keS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHRoZSBzdGFycyBmb3IgdGhlIGFydGljbGVzIHdpdGggYSByYXRpbmcgZXF1YWwgb3IgZ3JlYXRlciBsaWtlIHRoZSBkZWZpbmVkIHZhbHVlIChzZXQgdmFsdWUgXCcwXCcgdG8gZGVhY3RpdmF0ZSB0aGUgb3V0cHV0KS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHRvcCAxMCBpdGVtcyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAn4LmB4Liq4LiU4LiHMTAg4Lij4Liy4Lii4LiB4Liy4Lij4Lii4Lit4LiU4LiZ4Li04Lii4Lih4LmD4LiZ4Lit4Li04LiZ4LmA4LiV4Lit4Lij4LmM4LmA4Lif4LiL4LiX4Li14LmI4LiB4Liz4Lir4LiZ4LiU4LmE4Lin4LmJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgdm90aW5nIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICfguYHguKrguJTguIfguIHguLLguKPguYLguKvguKfguJXguYPguJnguK3guLTguJnguYDguJXguK3guKPguYzguYDguJ/guIvguJfguLXguYjguIHguLPguKvguJnguJTguYTguKfguYknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSBGQVEgd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgem9vbSB2aWV3IG9mIHN1Y2ggRkFRIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfguYHguKrguJTguIfguKXguLTguIfguITguYzguYPguJnguYDguKHguJnguLnguYDguJ7guLfguYjguK3guKXguLTguIfguITguYwgRkFRIOC4geC4seC4muC4reC4reC4muC5gOC4iOC4geC4hOC5jOC4reC4t+C5iOC4meC5g+C4meC4geC4suC4o+C4i+C4ueC4oeC5g+C4meC4reC4tOC4meC5gOC4leC4reC4o+C5jOC5gOC4n+C4i+C5gOC4reC5gOC4ouC5iOC4meC4leC5jCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdGhhdCBhbGxvd3MgdG8gZGVsZXRlIGEgRkFRIGluIGl0cyB6b29tIHZpZXcgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+C5geC4quC4lOC4h+C4peC4tOC4h+C4hOC5jOC5g+C4meC5gOC4oeC4meC4ueC5gOC4nuC4t+C5iOC4reC4reC4meC4uOC4jeC4suC4leC4geC4suC4o+C4peC4miBGQVHguYPguJnguIHguLLguKPguIvguLnguKHguILguK3guIfguK3guLTguJnguYDguJXguK3guKPguYzguYDguJ/guIvguYDguK3guYDguKLguYjguJnguJXguYwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIEZBUSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICfguYHguKrguJTguIfguKXguLTguIfguITguYzguYPguJnguYDguKHguJnguLnguYDguJ7guLfguYjguK3guYDguILguYnguLLguJTguLnguJvguKPguLDguKfguLHguJXguLTguILguK3guIcgRkFRIOC5g+C4meC4geC4suC4o+C4i+C4ueC4oeC4guC4reC4h+C4reC4tOC4meC5gOC4leC4reC4o+C5jOC5gOC4n+C4i+C5gOC4reC5gOC4ouC5iOC4meC4leC5jCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZWRpdCBhIEZBUSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn4LmB4Liq4LiU4LiH4Lil4Li04LiH4LiE4LmM4LmD4LiZ4LmA4Lih4LiZ4Li54LmA4Lie4Li34LmI4Lit4LmB4LiB4LmJ4LmE4LiCIEZBUSDguYPguJnguIHguLLguKPguIvguLnguKHguILguK3guIfguK3guLTguJnguYDguJXguK3guKPguYzguYDguJ/guIvguYDguK3guYDguKLguYjguJnguJXguYwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIEZBUSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+C5geC4quC4lOC4h+C4peC4tOC4h+C4hOC5jOC5g+C4meC5gOC4oeC4meC4ueC5gOC4nuC4t+C5iOC4reC4ouC5ieC4reC4meC4geC4peC4seC4miBGQVEg4LmD4LiZ4LiB4Liy4Lij4LiL4Li54Lih4LiC4Lit4LiH4Lit4Li04LiZ4LmA4LiV4Lit4Lij4LmM4LmA4Lif4LiL4LmA4Lit4LmA4Lii4LmI4LiZ4LiV4LmMJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIEZBUSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn4LmB4Liq4LiU4LiH4Lil4Li04LiH4LiE4LmM4LmD4LiZ4LmA4Lih4LiZ4Li54LmA4Lie4Li34LmI4Lit4Lie4Li04Lih4Lie4LmMIEZBUSDguYPguJnguIHguLLguKPguIvguLnguKHguILguK3guIfguK3guLTguJnguYDguJXguK3guKPguYzguYDguJ/guIvguYDguK3guYDguKLguYjguJnguJXguYwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU29sdXRpb24nfSA9ICfguKfguLTguJjguLXguYHguIHguYnguJvguLHguI3guKvguLInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3ltcHRvbSd9ID0gJ+C5gOC4hOC4o+C4t+C5iOC4reC4h+C5geC4quC4lOC4hyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZXh0IE9ubHknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGRlZmF1bHQgbGFuZ3VhZ2VzIGZvciB0aGUgcmVsYXRlZCBGQVEgYXJ0aWNsZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIEZBUSwgZS5nLiBGQVEjLCBLQiMsIE15RkFRIy4gVGhlIGRlZmF1bHQgaXMgRkFRIy4nfSA9CiAgICAgICAgJ+C4leC4seC4p+C4muC5iOC4h+C4iuC4teC5ieC4quC4s+C4q+C4o+C4seC4miBGQVEsIOC5gOC4iuC5iOC4mSBGQVEjLCAgS0IjLCBNeUZBUSAjLiDguITguYjguLLguYDguKPguLTguYjguKHguJXguYnguJnguITguLfguK0gRkFRIyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnRkFRXCcgb2JqZWN0cyB1c2luZyB0aGUgXCdOb3JtYWxcJyBsaW5rIHR5cGUuJ30gPQogICAgICAgICfguIHguLLguKPguJXguLHguYnguIfguITguYjguLLguJnguLXguYnguIHguLPguKvguJnguJTguKfguYjguLLguK3guK3guJrguYDguIjguIHguITguYwgIFwnRkFRXCcg4Liq4Liy4Lih4Liy4Lij4LiW4Lil4Li04LiH4LiE4LmM4LiB4Lix4Lia4Lit4Lit4Lia4LmA4LiI4LiB4LiE4LmMICBcJ0ZBUVwnIOC4reC4t+C5iOC4mSDguYLguJTguKLguIHguLLguKPguYPguIrguYnguKXguLTguIfguITguYwgIFwnTm9ybWFsXCcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBzZXR0aW5nIGRlZmluZXMgdGhhdCBhIFwnRkFRXCcgb2JqZWN0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciBcJ0ZBUVwnIG9iamVjdHMgdXNpbmcgdGhlIFwnUGFyZW50Q2hpbGRcJyBsaW5rIHR5cGUuJ30gPQogICAgICAgICfguIHguLLguKPguJXguLHguYnguIfguITguYjguLLguJnguLXguYnguIHguLPguKvguJnguJTguKfguYjguLLguK3guK3guJrguYDguIjguIHguITguYwgXCdGQVFcJyDguKrguLLguKHguLLguKPguJbguKXguLTguIfguITguYzguIHguLHguJrguK3guK3guJrguYDguIjguIHguITguYwgXCdGQVFcJyDguK3guLfguYjguJkg4LmC4LiU4Lii4LiB4Liy4Lij4LmD4LiK4LmJ4Lil4Li04LiH4LiE4LmMIFwnUGFyZW50Q2hpbGRcJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnVGlja2V0XCcgb2JqZWN0cyB1c2luZyB0aGUgXCdOb3JtYWxcJyBsaW5rIHR5cGUuJ30gPQogICAgICAgICfguIHguLLguKPguJXguLHguYnguIfguITguYjguLLguJnguLXguYnguIHguLPguKvguJnguJTguKfguYjguLLguK3guK3guJrguYDguIjguIHguITguYwgIFwnRkFRXCcg4Liq4Liy4Lih4Liy4Lij4LiW4Lil4Li04LiH4LiE4LmM4LiB4Lix4Lia4Lit4Lit4Lia4LmA4LiI4LiB4LiE4LmMICBcJ+C4leC4seC5i+C4p1wnIOC4reC4t+C5iOC4mSDguYLguJTguKLguIHguLLguKPguYPguIrguYnguKXguLTguIfguITguYwgIFwnTm9ybWFsXCcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBzZXR0aW5nIGRlZmluZXMgdGhhdCBhIFwnRkFRXCcgb2JqZWN0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciBcJ1RpY2tldFwnIG9iamVjdHMgdXNpbmcgdGhlIFwnUGFyZW50Q2hpbGRcJyBsaW5rIHR5cGUuJ30gPQogICAgICAgICfguIHguLLguKPguJXguLHguYnguIfguITguYjguLLguJnguLXguYnguIHguLPguKvguJnguJTguKfguYjguLLguK3guK3guJrguYDguIjguIHguITguYwgXCdGQVFcJyDguKrguLLguKHguLLguKPguJbguKXguLTguIfguITguYzguIHguLHguJrguK3guK3guJrguYDguIjguIHguITguYwgXCdGQVFcJyDguK3guLfguYjguJkg4LmC4LiU4Lii4LiB4Liy4Lij4LmD4LiK4LmJ4Lil4Li04LiH4LiE4LmMIFwnUGFyZW50Q2hpbGRcJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgYm9keSBmb3IgYXBwcm92YWwgb2YgRkFRIGFydGljbGUuJ30gPSAn4LmA4LiZ4Li34LmJ4Lit4LmA4Lij4Li34LmI4Lit4LiH4LiC4Lit4LiH4LiV4Lix4LmL4Lin4Liq4Liz4Lir4Lij4Lix4Lia4LiB4Liy4Lij4Lit4LiZ4Li44Lih4Lix4LiV4Li04LiC4Lit4LiH4Lia4LiX4LiE4Lin4Liy4LihIEZBUS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IHN1YmplY3QgZm9yIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlLiBQZXJtaXR0ZWQgbm90aWZpY2F0aW9uIHRhZ3MgYXJlIDxPVE9CT19GQVFfTlVNQkVSPiwgPE9UT0JPX0ZBUV9DQVRFR09SWUlEPiwgPE9UT0JPX0ZBUV9JVEVNSUQ+PiA8T1RPQk9fRkFRX1RJVExFPiBhbmQgPE9UT0JPX0ZBUV9TVEFURUlEPi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb29sYmFyIEl0ZW0gZm9yIGEgc2hvcnRjdXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2V4dGVybmFsIChjdXN0b21lciknfSA9ICfguKDguLLguKLguJnguK3guIEgKOC4peC4ueC4geC4hOC5ieC4siknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW50ZXJuYWwgKGFnZW50KSd9ID0gJ+C4oOC4suC4ouC5g+C4mSAo4LmA4Lit4LmA4Lii4LmI4LiZ4LiV4LmMKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwdWJsaWMgKGFsbCknfSA9ICfguKrguLLguJjguLLguKPguJPguLAgKOC4l+C4seC5ieC4h+C4q+C4oeC4lCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncHVibGljIChwdWJsaWMpJ30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnTm8nLAogICAgJ09rJywKICAgICdTZXR0aW5ncycsCiAgICAnU3VibWl0JywKICAgICdUaGlzIG1pZ2h0IGJlIGhlbHBmdWwnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK</File>
        <File Location="Kernel/Language/uk_FAQ.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnVrX0ZBUTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRQWRkCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIEFydGljbGUnfSA9ICfQlNC+0LTQsNGC0Lgg0LDRgNGC0LjQutGD0Lsg0LTQvtCy0ZbQtNC90LjQutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0tleXdvcmRzJ30gPSAn0JrQu9GO0YfQvtCy0ZYg0YHQu9C+0LLQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIGNhdGVnb3J5IGlzIHJlcXVpcmVkLid9ID0gJ9Ca0LDRgtC10LPQvtGA0ZbRjyDQvtCx0L7Qslwn0Y/Qt9C60L7QstCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FwcHJvdmFsJ30gPSAn0J/QvtCz0L7QtNC20LXQvdC90Y8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRQ2F0ZWdvcnkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBDYXRlZ29yeSBNYW5hZ2VtZW50J30gPSAn0JzQtdC90LXQtNC20LXRgCDQutCw0YLQtdCz0L7RgNGW0ZcgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBGQVEgQ2F0ZWdvcnknfSA9ICfQlNC+0LTQsNGC0Lgg0LrQsNGC0LXQs9C+0YDRltGOIEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEZBUSBDYXRlZ29yeSd9ID0gJ9Cg0LXQtNCw0LPRg9Cy0LDRgtC4INC60LDRgtC10LPQvtGA0ZbRjiBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGNhdGVnb3J5J30gPSAn0JTQvtC00LDRgtC4INC60LDRgtC10LPQvtGA0ZbRjic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0ZWdvcnknfSA9ICfQlNC+0LTQsNGC0Lgg0LrQsNGC0LXQs9C+0YDRltGOJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQ2F0ZWdvcnknfSA9ICfQoNC10LTQsNCz0YPQstCw0YLQuCDQutCw0YLQtdCz0L7RgNGW0Y4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3ViY2F0ZWdvcnkgb2YnfSA9ICfQn9GW0LTQutCw0YLQtdCz0L7RgNGW0ZcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIHNlbGVjdCBhdCBsZWFzdCBvbmUgcGVybWlzc2lvbiBncm91cC4nfSA9ICfQkdGD0LTRjCDQu9Cw0YHQutCwINCy0LjQsdC10YDRltGC0Ywg0YXQvtGHINC+0LTQvdGDINCz0YDRg9C/0YMg0LTQvtGB0YLRg9C/0YMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgZ3JvdXBzIHRoYXQgY2FuIGFjY2VzcyBhcnRpY2xlcyBpbiB0aGlzIGNhdGVnb3J5Lid9ID0gJ9CT0YDRg9C/0Lgg0LDQvdCz0LXQvdGC0ZbQsiwg0YnQviDQvNCw0Y7RgtGMINC00L7RgdGC0YPQvyDQtNC+INGB0YLQsNGC0YLQtdC5INCyINGG0ZbQuSDQutCw0YLQtdCz0L7RgNGW0ZcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2lsbCBiZSBzaG93biBhcyBjb21tZW50IGluIEV4cGxvcmVyLid9ID0gJ9CR0YPQtNC1INC/0L7QutCw0LfQsNC90L4sINGP0Log0LrQvtC80LXQvdGC0LDRgCDRgyDQn9GA0L7QstGW0LTQvdC40LrRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY2F0ZWdvcnk/J30gPSAn0JLQuCDQtNGW0LnRgdC90L4g0YXQvtGH0LXRgtC1INCy0LjQtNCw0LvQuNGC0Lgg0YbRjiDQutCw0YLQtdCz0L7RgNGW0Y4/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gbm90IGRlbGV0ZSB0aGlzIGNhdGVnb3J5LiBJdCBpcyB1c2VkIGluIGF0IGxlYXN0IG9uZSBGQVEgYXJ0aWNsZSBhbmQvb3IgaXMgcGFyZW50IG9mIGF0IGxlYXN0IG9uZSBvdGhlciBjYXRlZ29yeSd9ID0KICAgICAgICAn0JLQuCDQvdC1INC80L7QttC10YLQtSDQstC40LTQsNC70LjRgtC4INGG0Y4g0LrQsNGC0LXQs9C+0YDRltGOLiDQktC+0L3QsCDQstC40LrQvtGA0LjRgdGC0L7QstGD0ZTRgtGM0YHRjyDQsNCx0L4g0ZQg0LHQsNGC0YzQutGW0LLRgdGM0LrQvtGOINC00LvRjyDRltC90YjQvtGXINC60LDRgtC10LPQvtGA0ZbRlyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGNhdGVnb3J5IGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBGQVEgYXJ0aWNsZShzKSd9ID0gJ9Cm0Y8g0LrQsNGC0LXQs9C+0YDRltGPINCy0LjQutC+0YDQuNGB0YLQvtCy0YPRlNGC0YzRgdGPINCyINC90LDRgdGC0YPQv9C90LjRhSDRgdGC0LDRgtGC0Y/RhSBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBjYXRlZ29yeSBpcyBwYXJlbnQgb2YgdGhlIGZvbGxvd2luZyBzdWJjYXRlZ29yaWVzJ30gPSAn0KbRjyDQutCw0YLQtdCz0L7RgNGW0Y8g0ZQg0LHQsNGC0YzQutGW0LLRgdGM0LrQvtGOINC00LvRjyDQvdCw0YHRgtGD0L/QvdC40YUg0L/RltC00LrQsNGC0LXQs9C+0YDRltC5JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUURlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIEZBUSBhcnRpY2xlPyd9ID0gJ9CS0Lgg0LTRltC50YHQvdC+INGF0L7Rh9C10YLQtSDQstC40LTQsNC70LjRgtC4INGG0Y4g0YHRgtCw0YLRgtGOPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEnfSA9ICfQkdCw0LfQsCDQt9C90LDQvdGMJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUV4cGxvcmVyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgRXhwbG9yZXInfSA9ICfQntCz0LvRj9C0INCR0LDQt9C4INC30L3QsNC90YwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVpY2sgU2VhcmNoJ30gPSAn0KjQstC40LTQutC40Lkg0L/QvtGI0YPQuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXaWxkY2FyZHMgYXJlIGFsbG93ZWQuJ30gPSAn0J/RltC00YHRgtCw0L3QvtCy0LrQsCDQtNC+0LfQstC+0LvQtdC90LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWR2YW5jZWQgU2VhcmNoJ30gPSAn0KDQvtC30YjQuNGA0LXQvdC40Lkg0L/QvtGI0YPQuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWJjYXRlZ29yaWVzJ30gPSAn0J/RltC00LrQsNGC0LXQs9C+0YDRltGXJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlcyd9ID0gJ9Ch0YLQsNGC0YLRliDQkdCw0LfQuCDQt9C90LDQvdGMJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHN1YmNhdGVnb3JpZXMgZm91bmQuJ30gPSAn0J/RltC00LrQsNGC0LXQs9C+0YDRltGXINC90LUg0LfQvdCw0LnQtNC10L3Rlic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFIaXN0b3J5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IG9mJ30gPSAn0IbRgdGC0L7RgNGW0Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBDb250ZW50J30gPSAn0IbRgdGC0L7RgNGW0Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRldGltZSd9ID0gJ9Cn0LDRgSDRgdGC0LLQvtGA0LXQvdC90Y8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRSm91cm5hbE92ZXJ2aWV3U21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEZBUSBKb3VybmFsIGRhdGEgZm91bmQuJ30gPSAn0J3QtSDQvNCw0ZQg0LbRg9GA0L3QsNC70YMgRkFRJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUxhbmd1YWdlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgTGFuZ3VhZ2UgTWFuYWdlbWVudCd9ID0gJ9Ca0LXRgNGD0LLQsNC90L3RjyDQvNC+0LLQsNC80LggRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBGQVEgTGFuZ3VhZ2UnfSA9ICfQlNC+0LTQsNGC0Lgg0LzQvtCy0YMgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgRkFRIExhbmd1YWdlJ30gPSAn0KDQtdC00LDQs9GD0LLQsNGC0Lgg0LzQvtCy0YMgRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZSB0aGlzIGZlYXR1cmUgaWYgeW91IHdhbnQgdG8gd29yayB3aXRoIG11bHRpcGxlIGxhbmd1YWdlcy4nfSA9CiAgICAgICAgJ9CS0LjQutC+0YDQuNGB0YLQvtCy0YPQudGC0LUg0YbRjiDQvtC/0YbRltGOINGP0LrRidC+INCy0Lgg0YXQvtGH0LXRgtC1INC/0YDQsNGG0Y7QstCw0YLQuCDQtyDQtNC10LrRltC70YzQutC+0LzQsCDQvNC+0LLQsNC80LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGxhbmd1YWdlJ30gPSAn0JTQvtC00LDRgtC4INC80L7QstGDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBMYW5ndWFnZSd9ID0gJ9CU0L7QtNCw0YLQuCDQvNC+0LLRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IExhbmd1YWdlJ30gPSAn0KDQtdC00LDQs9GD0LLQsNGC0Lgg0LzQvtCy0YMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgbGFuZ3VhZ2UuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIEZBUSBhcnRpY2xlISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbGFuZ3VhZ2UgaXMgdXNlZCBpbiB0aGUgZm9sbG93aW5nIEZBUSBBcnRpY2xlKHMpJ30gPSAn0KbRjyDQvNC+0LLQsCDQstC40LrQvtGA0LjRgdGC0L7QstGD0ZTRgtGM0YHRjyDQsiDQvdCw0YHRgtGD0L/QvdC40YUg0YHRgtCw0YLRgtGP0YUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRT3ZlcnZpZXdOYXZCYXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRleHQgU2V0dGluZ3MnfSA9ICfQndCw0LvQsNGI0YLRg9Cy0LDQvdC90Y8g0LrQvtC90YLQtdC60YHRgtGDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBhcnRpY2xlcyBwZXIgcGFnZSd9ID0gJ9Ca0ZbQu9GM0LrRltGB0YLRjCDRgdGC0LDRgtGC0LXQuSDQvdCwINGB0YLQvtGA0ZbQvdC60YMnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRT3ZlcnZpZXdTbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gRkFRIGRhdGEgZm91bmQuJ30gPSAn0J3QtSDQt9C90LDQudC00LXQvdC+INC00LDQvdC40YUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRUmVsYXRlZEFydGljbGVzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydvdXQgb2YgNSd9ID0gJ9C3IDUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRU2VhcmNoCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydLZXl3b3JkJ30gPSAn0JrQu9GO0YfQvtCy0LXRgdC70L7QstC+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGUgKGUuIGcuIEVxdWFscyAxMCBvciBHcmVhdGVyVGhhbiA2MCknfSA9ICfQntGG0ZbQvdC60LAgKNC00ZbQsNC/0LDQt9C+0L0g0LfQvdCw0YfQtdC90L3RjyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0ZSAoZS4gZy4gRXF1YWxzIDI1JSBvciBHcmVhdGVyVGhhbiA3NSUpJ30gPSAn0KDQtdC50YLQuNC90LMgJSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcHByb3ZlZCd9ID0gJ9Cf0L7Qs9C+0LTQttC10L3Qvic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IGNoYW5nZWQgYnknfSA9ICfQkiDQvtGB0YLQsNC90L3RlCDQt9C80ZbQvdC10L3QvjonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ3JlYXRlIFRpbWUgKGJlZm9yZS9hZnRlciknfSA9ICfQp9Cw0YEg0YHRgtCy0L7RgNC10L3QvdGPINGB0YLQsNGC0YLRliAo0LTQvi/Qv9GW0YHQu9GPKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDcmVhdGUgVGltZSAoYmV0d2VlbiknfSA9ICfQp9Cw0YEg0YHRgtCy0L7RgNC10L3QvdGPINGB0YLQsNGC0YLRliAo0LzRltC2KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDaGFuZ2UgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJ9Cn0LDRgSDQt9C80ZbQvdC4INGB0YLQsNGC0YLRliAo0LTQvi/Qv9GW0YHQu9GPKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDaGFuZ2UgVGltZSAoYmV0d2VlbiknfSA9ICfQp9Cw0YEg0LfQvNGW0L3QuCDRgdGC0LDRgtGC0ZYgKNC80ZbQtiknOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRU2VhcmNoT3BlblNlYXJjaERlc2NyaXB0aW9uRnVsbHRleHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUUZ1bGx0ZXh0J30gPSAn0J/QvtCy0L3QvtGC0LXQutGC0L7QstC40LknOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRU2VhcmNoU21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBTZWFyY2gnfSA9ICfQn9C+0YjRg9C6IEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9maWxlIFNlbGVjdGlvbid9ID0gJ9CS0LjQsdGW0YAg0L/RgNC+0YTRltC70Y4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSd9ID0gJ9Ce0YbRltC90LrQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB2b3RlIHNldHRpbmdzJ30gPSAn0J3QtdC80LDRlCDQvtGG0ZbQvdC+0LonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWMgdm90ZXMnfSA9ICfQntC60YDQtdC80ZYg0L7RhtGW0L3QutC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuIGcuIEVxdWFscyAxMCBvciBHcmVhdGVyVGhhbiA2MCd9ID0gJ9Cf0YDQuNC60LvQsNC0OiDRgNGW0LLQvdC1IDEwINGH0Lgg0LHRltC70YzRiNC1INC90ZbQtiA2MCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRlJ30gPSAn0KDQtdC50YLQuNC90LMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gcmF0ZSBzZXR0aW5ncyd9ID0gJ9Cd0LXQvNCw0ZQg0YDQtdC50YLQuNC90LPRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpYyByYXRlJ30gPSAn0J7QutGA0LXQvNC40Lkg0YDQtdC50YLQuNC90LMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZS4gZy4gRXF1YWxzIDI1JSBvciBHcmVhdGVyVGhhbiA3NSUnfSA9ICfQn9GA0LjQutC70LDQtDog0KDRltCy0L3QtSAyNSUg0LDQsdC+INCx0Y7RltC70YzRiNC1INC90ZbQtiA3NSUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ3JlYXRlIFRpbWUnfSA9ICfQp9Cw0YEg0YHRgtCy0L7QtdGA0L3QvdGPINGB0YLQsNGC0YLRlic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDaGFuZ2UgVGltZSd9ID0gJ9Cn0LDRgSDQt9C80ZbQvdC4INGB0YLQsNGC0YLRlic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFab29tCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSW5mb3JtYXRpb24nfSA9ICfQhtC90YTQvtGA0LzQsNGG0ZbRjyDQkdCw0LfQuCDQt9C90LDQvdGMJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGluZyd9ID0gJ9Cg0LXQudGC0LjQvdCzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGVzJ30gPSAn0J7RhtGW0L3QutC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHZvdGVzIGZvdW5kISd9ID0gJ9Cd0LXQvNCw0ZQg0L7RhtGW0L3QvtC6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHZvdGVzIGZvdW5kISBCZSB0aGUgZmlyc3Qgb25lIHRvIHJhdGUgdGhpcyBGQVEgYXJ0aWNsZS4nfSA9ICfQndC1INC30L3QsNC50LTQtdC90L4g0L7RhtGW0L3QvtC6ISDQkdGD0LTRjNGC0LUg0L/QtdGA0YjQuNC8INGF0YLQviDQvtGG0ZbQvdC40YLRjCDQtNCw0L3RhiDRgdGC0LDRgtGC0Y4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG93bmxvYWQgQXR0YWNobWVudCd9ID0gJ9CX0LDQstCw0L3RgtCw0LbQuNGC0Lgg0LLQutC70LDQtNC10L3QvdGPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIG9wZW4gbGlua3MgaW4gdGhlIGZvbGxvd2luZyBkZXNjcmlwdGlvbiBibG9ja3MsIHlvdSBtaWdodCBuZWVkIHRvIHByZXNzIEN0cmwgb3IgQ21kIG9yIFNoaWZ0IGtleSB3aGlsZSBjbGlja2luZyB0aGUgbGluayAoZGVwZW5kaW5nIG9uIHlvdXIgYnJvd3NlciBhbmQgT1MpLid9ID0KICAgICAgICAn0JTQu9GPINCy0ZbQutGA0LjRgtGC0Y8g0L/QvtGB0LjQu9Cw0L3QvdGPINCyINC90LDRgdGC0YPQv9C90LjRhSDQvtC/0LjRgdC+0LLQuNGFINCx0LvQvtC60LDRhSwg0JLQsNC8INC80L7QttC70LjQstC+INC00L7QstC10LTQtdGC0YzRgdGPINC90LDRgtC40YHQvdGD0YLQuCBDdHJsINCw0LHQviBDbWQg0LDQsdC+IFNoaWZ0INC/0ZbQtCDRh9Cw0YEg0LLQuNCx0L7RgNGDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdyBoZWxwZnVsIHdhcyB0aGlzIGFydGljbGU/IFBsZWFzZSBnaXZlIHVzIHlvdXIgcmF0aW5nIGFuZCBoZWxwIHRvIGltcHJvdmUgdGhlIEZBUSBEYXRhYmFzZS4gVGhhbmsgWW91ISd9ID0KICAgICAgICAn0J3QsNGB0LrRltC70YzQutC4INC60L7RgNC40YHQvdC+0Y4g0LHRg9C70LAg0YbRjyDRgdGC0LDRgtGC0Y8/INCR0YPQtNGMINC70LDRgdC60LAg0LfQsNC70LjRiNGC0LUg0L7RhtGW0LrRgyDRliDQtNC+0L/QvtC80L7QttGW0YLRjCDQvdCw0Lwg0L/QvtC60YDQsNGJ0YPQstCw0YLQuCDQkdCw0LfRgyDQl9C90LDQvdGMLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgaGVscGZ1bCd9ID0gJ9C90LUg0LTQvtC/0L7QvNC+0LPQu9C+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3ZlcnkgaGVscGZ1bCd9ID0gJ9C00YPQttC1INC00L7Qv9C+0LzQvtCz0LvQvic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFab29tU21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBGQVEgdGl0bGUgdG8gYXJ0aWNsZSBzdWJqZWN0J30gPSAn0JTQvtC00LDRgtC4INC30LDQs9C+0LvQvtCy0L7QuiDRgdGC0LDRgtGC0ZYg0LTQviDRgtC10LzQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRkFRIFRleHQnfSA9ICfQktGB0YLQsNCy0LjRgtC4INGC0LXQutGB0YIg0YHRgtCw0YLRgtGWJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGdWxsIEZBUSd9ID0gJ9CS0YHRgtCw0LLQuNGC0Lgg0L/QvtCy0L3RgyDRgdGC0LDRgtGC0Y4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZBUSBMaW5rJ30gPSAn0JLRgdGC0LDQstC40YLQuCDQv9C+0YHQuNC70LDQvdC90Y8g0L3QsCDRgdGC0LDRgtGC0Y4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZBUSBUZXh0ICYgTGluayd9ID0gJ9CS0YHRgtCw0LLQuNGC0Lgg0YLQtdC60YHRgiDRgdGC0LDRgtGC0ZYg0YLQsCDQv9C+0YHQuNC70LDQvdC90Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZ1bGwgRkFRICYgTGluayd9ID0gJ9CS0YHRgtCw0LLQuNGC0Lgg0L/QvtCy0L3RgyDRgdGC0LDRgtGC0Y4g0YLQsCDQu9GW0L3Quic7CgogICAgIyBUZW1wbGF0ZTogQ3VzdG9tZXJGQVFFeHBsb3JlcgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGF0ZXN0IHVwZGF0ZWQgRkFRIGFydGljbGVzJ30gPSAn0J7RgdGC0LDQvdC90Y8g0LfQvNGW0L3QtdC90LAg0YHRgtCw0YLRgtGPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEZBUSBhcnRpY2xlcyBmb3VuZC4nfSA9ICfQndC1INC30L3QsNC50LTQtdC90L4g0YHRgtCw0YLRgtC10LknOwoKICAgICMgVGVtcGxhdGU6IEN1c3RvbWVyRkFRUmVsYXRlZEFydGljbGVzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1pZ2h0IGJlIGhlbHBmdWwnfSA9ICfQptC1INC80L7QttC1INCx0YPRgtC4INC60L7RgNC40YHQvdC40LwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm91bmQgbm8gaGVscGZ1bCByZXNvdXJjZXMgZm9yIHRoZSBzdWJqZWN0IGFuZCB0ZXh0Lid9ID0gJ9Cd0LUg0LfQvdCw0LnQtNC10L3QviDQutC+0YDQuNGB0L3QvtC70Zcg0ZbQvdGE0L7RgNC80LDRhtGW0Zcg0L/QviDQstCy0LXQtNC10L3RltC5INGC0LXQvNGWINGC0LAg0YLRltC70YMg0LfQstC10YDQvdC10L3QvdGPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGUgYSBzdWJqZWN0IG9yIHRleHQgdG8gZ2V0IGEgbGlzdCBvZiBoZWxwZnVsIHJlc291cmNlcy4nfSA9ICfQktCy0LXQtNGW0YLRjCDRgtC10LzRgyDRh9C4INGC0LXQutGB0YIg0LfQstC10YDQvdC10L3QvdGPINGJ0L7QsSDQvtGC0YDQuNC80LDRgtC4INC60L7RgNC40YHQvdGDINGW0L3RhNC+0YDQvNGG0ZbRjic7CgogICAgIyBUZW1wbGF0ZTogQ3VzdG9tZXJGQVFTZWFyY2gKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bGx0ZXh0IHNlYXJjaCBpbiBGQVEgYXJ0aWNsZXMgKGUuIGcuICJKb2huKm4iIG9yICJXaWxsKiIpJ30gPSAn0J/QvtCy0L3QvtGC0LXQutGB0YLQvtCy0LjQuSDQv9C+0YjRg9C6INC/0L4g0YHRgtCw0YLRgtGP0YUg0JHQsNC30Lgg0JfQvdCw0L3RjCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWb3RlIHJlc3RyaWN0aW9ucyd9ID0gJ9Ce0LHQvNC10LbQtdC90L3RjyDQvtGG0ZbQvdC60LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSBGQVEgYXJ0aWNsZXMgd2l0aCB2b3Rlcy4uLid9ID0gJ9Ci0ZbQu9GM0LrQuCDRgdGC0LDRgtGC0ZYg0Lcg0L7RhtGW0L3QutCw0LzQuC4uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRlIHJlc3RyaWN0aW9ucyd9ID0gJ9Ce0LHQvNC10LbQtdC90L3RjyDRgNC10LnRgtC40L3Qs9GDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgRkFRIGFydGljbGVzIHdpdGggcmF0ZS4uLid9ID0gJ9Ci0ZbQu9GM0LrQuCDRgdGC0LDRgtGC0ZYg0Lcg0YDQtdC50YLQuNC90LPQvtC8JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVzdHJpY3Rpb25zJ30gPSAn0KLQuNC80YfQsNGB0L7QstGWINGA0LDQvNC60LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSBGQVEgYXJ0aWNsZXMgY3JlYXRlZCd9ID0gJ9Ci0ZbQu9GM0LrQuCDRgdGC0LDRgtGC0ZYg0YHRgtCy0L7RgNC10L3Rlic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IEZBUSBhcnRpY2xlcyBjcmVhdGVkIGJldHdlZW4nfSA9ICfQotGW0LvRjNC60Lgg0YHRgtCw0YLRgtGWINGB0YLQstC+0YDQtdC90ZYg0LzRltC2JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaC1Qcm9maWxlIGFzIFRlbXBsYXRlPyd9ID0gJ9Cf0YDQvtGE0ZbQu9GMINC/0L7RiNGD0LrRgyDRj9C6INGI0LDQsdC70L7QvT8nOwoKICAgICMgVGVtcGxhdGU6IEN1c3RvbWVyRkFRWm9vbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJ0aWNsZSBOdW1iZXInfSA9ICfQndC+0LzQtdGAINGB0YLQsNGC0YLRlic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggZm9yIGFydGljbGVzIHdpdGgga2V5d29yZCd9ID0gJ9Co0YPQutCw0YLQuCDRgdGC0LDRgtGC0Y4g0L/QvtC60LvRjtGH0L7QstC+0LzRgyDRgdC70L7QstGDJzsKCiAgICAjIFRlbXBsYXRlOiBQdWJsaWNGQVFTZWFyY2hPcGVuU2VhcmNoRGVzY3JpcHRpb25GQVFOdW1iZXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyd9ID0gJ9Cf0YPQsdC70ZbRh9C90LjQuSc7CgogICAgIyBUZW1wbGF0ZTogUHVibGljRkFRU2VhcmNoUmVzdWx0U2hvcnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0JhY2sgdG8gRkFRIEV4cGxvcmVyJ30gPSAn0J/QvtCy0LXRgNC90YPRgtC40YHRjCDQtNC+INC/0YDQvtCy0ZbQtNC90LjQutCwINCR0LDQt9C4INCX0L3QsNC90YwnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRQWRkLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgbmVlZCBydyBwZXJtaXNzaW9uISd9ID0gJ9CS0LDQvCDQvdC10L7QsdGF0ZbQtNC90ZYg0L/RgNCw0LLQsCDQvdCwINC30LDQv9C40YEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY2F0ZWdvcmllcyBmb3VuZCB3aGVyZSB1c2VyIGhhcyByZWFkL3dyaXRlIHBlcm1pc3Npb25zISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkZWZhdWx0IGxhbmd1YWdlIGZvdW5kIGFuZCBjYW5cJ3QgY3JlYXRlIGEgbmV3IG9uZS4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRQ2F0ZWdvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgQ2F0ZWdvcnlJRCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRlZ29yeSBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAn0JrQsNGC0LXQs9C+0YDRltGPINC/0L7QstC40L3QvdCwINC80LDRgtC4INC90LDQt9Cy0YMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY2F0ZWdvcnkgYWxyZWFkeSBleGlzdHMnfSA9ICfQlNCw0L3QsCDQutCw0YLQtdCz0L7RgNGW0Y8g0YPQttC1INGW0YHQvdGD0ZQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY2F0ZWdvcnkgYWxyZWFkeSBleGlzdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIENhdGVnb3J5SUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGNhdGVnb3J5ICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgY2F0ZWdvcnkgdXBkYXRlZCEnfSA9ICfQntC90L7QstC70LXQvdC90ZYg0LrQsNGC0LXQs9C+0YDRltGXINC00L7QstGW0LTQvdC40LrQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGNhdGVnb3J5IGFkZGVkISd9ID0gJ9CU0L7QtNCw0L3RliDQutCw0YLQtdCz0L7RgNGW0Zcg0LTQvtCy0ZbQtNC90LjQutCw0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBDYXRlZ29yeSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEl0ZW1JRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgbm8gcGVybWlzc2lvbiBmb3IgdGhpcyBjYXRlZ29yeSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgRkFRIGFydGljbGUgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUV4cGxvcmVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgQ2F0ZWdvcnlJRCAlcyBpcyBpbnZhbGlkLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBJdGVtSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBIaXN0b3J5J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUpvdXJuYWwucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBKb3VybmFsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgY29uZmlnIG9wdGlvbiBGQVE6OkZyb250ZW5kOjpPdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWcgb3B0aW9uIEZBUTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3IG5lZWRzIHRvIGJlIGEgSEFTSCByZWYhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY29uZmlnIG9wdGlvbiBmb3VuZCBmb3IgdGhlIHZpZXcgIiVzIiEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRTGFuZ3VhZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIExhbmd1YWdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBuYW1lIGlzIHJlcXVpcmVkISd9ID0gJ9Cd0LXQvtCx0YXRltC00L3QviDQstCy0LXRgdGC0Lgg0L3QsNC30LLRgyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBsYW5ndWFnZSBhbHJlYWR5IGV4aXN0cyEnfSA9ICfQptGPINC80L7QstCwINCy0LbQtSDRltGB0L3Rg9GUISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBsYW5ndWFnZSAlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGxhbmd1YWdlIHVwZGF0ZWQhJ30gPSAn0J7QvdC+0LLQu9C10L3QviDQvNC+0LLRgyDQtNC+0LLRltC00LrQuCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGxhbmd1YWdlIGFkZGVkISd9ID0gJ9CU0L7QtNCw0L3QviDQvNC+0LLRgyDQtNC+0LLRltC00LrQuCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIExhbmd1YWdlICVzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUVByaW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXN1bHQnfSA9ICfQoNC10LfRg9C70YzRgtCw0YInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCB1cGRhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIER5bmFtaWMgRmllbGRzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUVJpY2hUZXh0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyAlcyBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGxvYWQgTGFuZ3VhZ2VPYmplY3QhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gUmVzdWx0ISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgTnVtYmVyJ30gPSAn0J3QvtC80LXRgCBGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBDaGFuZ2VkIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJdGVtIENyZWF0ZSBUaW1lIChiZWZvcmUvYWZ0ZXIpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJdGVtIENyZWF0ZSBUaW1lIChiZXR3ZWVuKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSXRlbSBDaGFuZ2UgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSXRlbSBDaGFuZ2UgVGltZSAoYmV0d2VlbiknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXF1YWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyZWF0ZXIgdGhhbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmVhdGVyIHRoYW4gZXF1YWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NtYWxsZXIgdGhhbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTbWFsbGVyIHRoYW4gZXF1YWxzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgRmlsZUlEISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGFua3MgZm9yIHlvdXIgdm90ZSEnfSA9ICfQlNGP0LrRg9GU0LzQviwg0LfQsCDRgtC1LCDRidC+INC/0YDQvtCz0L7Qu9C+0YHRg9Cy0LDQu9C4ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSBhbHJlYWR5IHZvdGVkISd9ID0gJ9CS0Lgg0LLQttC1INCz0L7Qu9C+0YHRg9Cy0LDQu9C4ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyByYXRlIHNlbGVjdGVkISd9ID0gJ9Cd0LXQvNCw0ZQg0L7QsdGA0LDQvdC+0Zcg0LrQsNGC0LXQs9C+0YDRltGXISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdm90aW5nIG1lY2hhbmlzbSBpcyBub3QgZW5hYmxlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHZvdGUgcmF0ZSBpcyBub3QgZGVmaW5lZCEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0N1c3RvbWVyRkFRUHJpbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIFByaW50J30gPSAn0J3QsNC00YDRg9C60YPQstCw0YLQuCDRgdGC0LDRgtGC0Y4g0LTQvtCy0ZbQtNC90LjQutCwJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9DdXN0b21lckZBUVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBiZXR3ZWVuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9DdXN0b21lckZBUVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgSXRlbUlEISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvUHVibGljRkFRRXhwbG9yZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlcyAobmV3IGNyZWF0ZWQpJ30gPSAn0JTQvtCy0ZbQtNC90LjQuiAo0L3QvtCy0ZYg0YHRgtCw0YLRgtGWKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZXMgKHJlY2VudGx5IGNoYW5nZWQpJ30gPSAn0JTQvtCy0ZbQtNC90LjQuiAo0L3QtdC00LDQstC90L4g0LfQvNGW0L3QtdC90ZYg0YHRgtCw0YLRgtGWKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZXMgKFRvcCAxMCknfSA9ICfQlNC+0LLRltC00L3QuNC6ICjQvdCw0LnQutGA0LDRidGWIDEwINGB0YLQsNGC0YLQtdC5KSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvUHVibGljRkFRUlNTLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBUeXBlIGlzIGdpdmVuISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlIG11c3QgYmUgZWl0aGVyIExhc3RDcmVhdGUgb3IgTGFzdENoYW5nZSBvciBUb3AxMCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBSU1MgZmlsZSEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9IZWFkZXJNZXRhL0FnZW50RkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoRkFRRnVsbHRleHQpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvSGVhZGVyTWV0YS9DdXN0b21lckZBUVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgLSBDdXN0b21lciAoJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gQ3VzdG9tZXIgKEZBUUZ1bGx0ZXh0KSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0hlYWRlck1ldGEvUHVibGljRkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAtIFB1YmxpYyAoJXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gUHVibGljIChGQVFGdWxsdGV4dCknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9MYXlvdXQvRkFRLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIHJhdGUhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgYXJ0aWNsZSBpcyBlbXB0eSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGF0ZXN0IGNyZWF0ZWQgRkFRIGFydGljbGVzJ30gPSAn0J7RgdGC0LDQvdC90Y8g0YHRgtCy0L7RgNC10L3QsCDRgdGC0LDRgtGC0Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG9wIDEwIEZBUSBhcnRpY2xlcyd9ID0gJ9Ci0L7QvyAxMCDRgdGC0LDRgtGC0LXQuSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0xpbmtPYmplY3QvRkFRLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZW50IFR5cGUnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vRHluYW1pY0ZpZWxkL0RyaXZlci9GQVEucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCB0aGUgYXR0cmlidXRlIHdoaWNoIEZBUXMgd2lsbCBiZSBzZWFyY2hlZCBieSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHRlcm5hbC1zb3VyY2Uga2V5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCB0aGUgdHlwZSBvZiBkaXNwbGF5J30gPSAnJzsKCiAgICAjIERhdGFiYXNlIFhNTCAvIFNPUE0gRGVmaW5pdGlvbjogRkFRLnNvcG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2ludGVybmFsJ30gPSAn0LLQvdGD0YLRgNGW0YjQvdGW0LknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZXh0ZXJuYWwnfSA9ICfQt9C+0LLQvWnRiNC90ZQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncHVibGljJ30gPSAn0L/Rg9Cx0LvRltGH0L3QtSc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgZmlsdGVyIGZvciBIVE1MIG91dHB1dCB0byBhZGQgbGlua3MgYmVoaW5kIGEgZGVmaW5lZCBzdHJpbmcuIFRoZSBlbGVtZW50IEltYWdlIGFsbG93cyB0d28gaW5wdXQga2luZHMuIEZpcnN0IHRoZSBuYW1lIG9mIGFuIGltYWdlIChlLmcuIGZhcS5wbmcpLiBJbiB0aGlzIGNhc2UgdGhlIE9UT0JPIGltYWdlIHBhdGggd2lsbCBiZSB1c2VkLiBUaGUgc2Vjb25kIHBvc3NpYmlsaXR5IGlzIHRvIGluc2VydCB0aGUgbGluayB0byB0aGUgaW1hZ2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEZBUSBhcnRpY2xlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NTUyBjb2xvciBmb3IgdGhlIHZvdGluZyByZXN1bHQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhY2hlIFRpbWUgVG8gTGVhdmUgZm9yIEZBUSBpdGVtcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0ZWdvcnkgTWFuYWdlbWVudCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYXRlZ29yeSBNYW5hZ2VtZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgUHJpbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBSZWxhdGVkIEFydGljbGVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBSZWxhdGVkIEFydGljbGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgWm9vbS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIHNlYXJjaC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWNpbWFsIHBsYWNlcyBvZiB0aGUgdm90aW5nIHJlc3VsdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBjYXRlZ29yeSBuYW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IGxhbmd1YWdlIGZvciBGQVEgYXJ0aWNsZXMgb24gc2luZ2xlIGxhbmd1YWdlIG1vZGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHByaW9yaXR5IG9mIHRpY2tldHMgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0ZSBmb3IgRkFRIGVudHJ5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXRlIG9mIHRpY2tldHMgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgdHlwZSBvZiB0aWNrZXRzIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHZhbHVlIGZvciB0aGUgQWN0aW9uIHBhcmFtZXRlciBmb3IgdGhlIHB1YmxpYyBmcm9udGVuZC4gVGhlIEFjdGlvbiBwYXJhbWV0ZXIgaXMgdXNlZCBpbiB0aGUgc2NyaXB0cyBvZiB0aGUgc3lzdGVtLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSBBY3Rpb25zIHdoZXJlIGEgc2V0dGluZ3MgYnV0dG9uIGlzIGF2YWlsYWJsZSBpbiB0aGUgbGlua2VkIG9iamVjdHMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIFBsZWFzZSBub3RlIHRoYXQgdGhlc2UgQWN0aW9ucyBtdXN0IGhhdmUgcmVnaXN0ZXJlZCB0aGUgZm9sbG93aW5nIEpTIGFuZCBDU1MgZmlsZXM6IENvcmUuQWxsb2NhdGlvbkxpc3QuY3NzLCBDb3JlLlVJLkFsbG9jYXRpb25MaXN0LmpzLCBDb3JlLlVJLlRhYmxlLlNvcnQuanMsIENvcmUuQWdlbnQuVGFibGVGaWx0ZXJzLmpzIGFuZCBDb3JlLkFnZW50LkxpbmtPYmplY3QuanMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIGlmIHRoZSBGQVEgdGl0bGUgc2hvdWxkIGJlIGNvbmNhdGVuYXRlZCB0byBhcnRpY2xlIHN1YmplY3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgRkFRcyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90ZTogT25seSBGQVEgYXR0cmlidXRlcyBhbmQgZHluYW1pYyBmaWVsZHMgKER5bmFtaWNGaWVsZF9OYW1lWCkgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBGQVEgam91cm5hbC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgRkFRIGxpc3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiBhIEZBUSBzZWFyY2ggb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIGEgRkFRIHNlYXJjaCBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gYSBGQVEgc2VhcmNoIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgcHVibGljIGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc2hvd24gRkFRIHNlYXJjaCBhdHRyaWJ1dGUgZm9yIEZBUSBzZWFyY2ggc2NyZWVuLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGhlaWdodCBmb3IgdGhlIHJpY2ggdGV4dCBlZGl0b3IgY29tcG9uZW50IGZvciB0aGlzIHNjcmVlbi4gRW50ZXIgbnVtYmVyIChwaXhlbHMpIG9yIHBlcmNlbnQgdmFsdWUgKHJlbGF0aXZlKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBpbmZvcm1hdGlvbiB0byBiZSBpbnNlcnRlZCBpbiBhIEZBUSBiYXNlZCBUaWNrZXQuICJGdWxsIEZBUSIgaW5jbHVkZXMgdGV4dCwgYXR0YWNobWVudHMgYW5kIGlubGluZSBpbWFnZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcGFyYW1ldGVycyBmb3IgdGhlIGRhc2hib2FyZCBiYWNrZW5kLiAiTGltaXQiIGRlZmluZXMgdGhlIG51bWJlciBvZiBlbnRyaWVzIGRpc3BsYXllZCBieSBkZWZhdWx0LiAiR3JvdXAiIGlzIHVzZWQgdG8gcmVzdHJpY3QgYWNjZXNzIHRvIHRoZSBwbHVnaW4gKGUuIGcuIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiBpbmRpY2F0ZXMgaWYgdGhlIHBsdWdpbiBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb3IgaWYgdGhlIHVzZXIgbmVlZHMgdG8gZW5hYmxlIGl0IG1hbnVhbGx5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIEZBUSBFeHBsb3Jlci4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBGQVEgam91cm5hbC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBGQVEgc2VhcmNoLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgd2hlcmUgdGhlIFwnSW5zZXJ0IEZBUVwnIGxpbmsgd2lsbCBiZSBkaXNwbGF5ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluaXRpb24gb2YgRkFRIGl0ZW0gZnJlZSB0ZXh0IGZpZWxkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgdGhpcyBGQVEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBhZGQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBlZGl0IHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgb3ZlcnZpZXcgc2NyZWVuIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBvdmVydmlldyBzY3JlZW4gb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBwcmludCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHByaW50IHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgcHJpbnQgc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc2VhcmNoIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc2VhcmNoIHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgc2VhcmNoIHNjcmVlbiBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHNtYWxsIGZvcm1hdCBvdmVydmlldyBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHpvb20gc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSB6b29tIHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgem9vbSBzY3JlZW4gb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aGlzIEZBUSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgbXVsdGlwbGUgbGFuZ3VhZ2VzIG9uIEZBUSBtb2R1bGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSBzZXJ2aWNlIGFzc2lnbm1lbnQgZm9yIEZBUXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSB0aGUgcmVsYXRlZCBhcnRpY2xlIGZlYXR1cmUgZm9yIHRoZSBjdXN0b21lciBmcm9udGVuZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgdm90aW5nIG1lY2hhbmlzbSBvbiBGQVEgbW9kdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHBsb3Jlcid9ID0gJ9Cf0YDQvtCy0ZbQtNC90LjQuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQUpBWCBSZXNwb25kZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFKQVggUmVzcG9uZGVyIGZvciBSaWNodGV4dC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFyZWEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFyZWEuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBEZWxldGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBFZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSGlzdG9yeS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEpvdXJuYWwgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgUHJpbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBzZWFyY2ggYmFja2VuZCByb3V0ZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmllbGQ0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpZWxkNSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGdWxsIEZBUSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcm91cCBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZiB0aGlzIEZBUSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBhY3RpdmF0ZWQsIEZBUSBhcnRpY2xlcyBvZiBzdGF0dXMgdHlwZSBpbnRlcm5hbCBhcmUgYWxzbyB0YWtlbiBpbnRvIGFjY291bnQgZm9yIHRoZSBhcHByb3ZhbCBwcm9jZXNzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgaW50ZXJuYWwgZmllbGRzIG9uIGEgRkFRIGJhc2VkIFRpY2tldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jbHVkZSB0aGUgbmFtZSBvZiBlYWNoIGZpZWxkIGluIGEgRkFRIGJhc2VkIFRpY2tldC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW50ZXJmYWNlcyB3aGVyZSB0aGUgcXVpY2sgc2VhcmNoIHNob3VsZCBiZSBzaG93bi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSm91cm5hbCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYW5ndWFnZSBNYW5hZ2VtZW50J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhbmd1YWdlIE1hbmFnZW1lbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbWl0IGZvciB0aGUgc2VhcmNoIHRvIGJ1aWxkIHRoZSBrZXl3b3JkIEZBUSBhcnRpY2xlIGxpc3QuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpbmsgYW5vdGhlciBvYmplY3QgdG8gdGhpcyBGQVEgaXRlbSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIHF1ZXVlIG5hbWVzIGZvciB3aGljaCB0aGUgcmVsYXRlZCBhcnRpY2xlIGZlYXR1cmUgaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIHN0YXRlIHR5cGVzIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBzdGF0ZSB0eXBlcyB3aGljaCBjYW4gYmUgdXNlZCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2Ygc3RhdGUgdHlwZXMgd2hpY2ggY2FuIGJlIHVzZWQgaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIGpvdXJuYWwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSByZXN1bHQgb2YgYSBzZWFyY2ggaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSByZXN1bHQgb2YgYSBzZWFyY2ggaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSByZXN1bHQgb2YgYSBzZWFyY2ggaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIEV4cGxvcmVyIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIEV4cGxvcmVyIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIEV4cGxvcmVyIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBTZWFyY2ggaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgU2VhcmNoIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIFNlYXJjaCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgam91cm5hbCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBnZW5lcmF0ZSBIVE1MIE9wZW5TZWFyY2ggcHJvZmlsZSBmb3Igc2hvcnQgRkFRIHNlYXJjaCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vZHVsZSB0byBnZW5lcmF0ZSBIVE1MIE9wZW5TZWFyY2ggcHJvZmlsZSBmb3Igc2hvcnQgRkFRIHNlYXJjaCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gZ2VuZXJhdGUgaHRtbCBPcGVuU2VhcmNoIHByb2ZpbGUgZm9yIHNob3J0IEZBUSBzZWFyY2guJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEZBUSBBcnRpY2xlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgRkFRIGFydGljbGVzIG5lZWQgYXBwcm92YWwgYmVmb3JlIHRoZXkgZ2V0IHB1Ymxpc2hlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgb24gZWFjaCBwYWdlIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIG9uIGVhY2ggcGFnZSBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIHNob3duIGl0ZW1zIGluIGxhc3QgY2hhbmdlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIHNob3duIGl0ZW1zIGluIGxhc3QgY3JlYXRlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIHNob3duIGl0ZW1zIGluIHRoZSB0b3AgMTAgZmVhdHVyZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3V0cHV0IGZpbHRlciB0byBhZGQgSmF2YS1zY3JpcHQgdG8gQ3VzdG9tZXJUaWNrZXRNZXNzYWdlIHNjcmVlbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdXRwdXQgbGltaXQgZm9yIHRoZSByZWxhdGVkIEZBUSBhcnRpY2xlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgRkFRIGl0ZW1zIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIEZBUSBqb3VybmFsIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIEZBUSBpdGVtcyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBGQVEgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhpcyBGQVEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIEZBUSBQcmludC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIEZBUSBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRIHNlYXJjaC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIEZBUS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVldWUgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGVzIGZvciB2b3RpbmcuIEtleSBtdXN0IGJlIGluIHBlcmNlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIEZBUSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggRkFRIFNtYWxsLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggRkFRLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgaG93IG1hbnkgaXRlbXMgc2hvdWxkIGJlIHNob3duIGluIEpvdXJuYWwgT3ZlcnZpZXcgIlNtYWxsIiBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBob3cgbWFueSBpdGVtcyBzaG91bGQgYmUgc2hvd24gaW4gT3ZlcnZpZXcgIlNtYWxsIiBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZGVmYXVsdCBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEFnZW50RkFRWm9vbS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIGRlZmF1bHQgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBDdXN0b21lckZBUVpvb20gKGFuZCBQdWJsaWNGQVFab29tKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBBZ2VudEZBUVpvb20uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBtYXhpbXVtIGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gQ3VzdG9tZXJGQVFab29tIChhbmQgUHVibGljRkFRWm9vbSkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyAiSW5zZXJ0IEZBUSBMaW5rIiBCdXR0b24gaW4gQWdlbnRGQVFab29tU21hbGwgZm9yIHB1YmxpYyBGQVEgQXJ0aWNsZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyAiSW5zZXJ0IEZBUSBUZXh0ICYgTGluayIgLyAiSW5zZXJ0IEZ1bGwgRkFRICYgTGluayIgQnV0dG9uIGluIEFnZW50RkFRWm9vbVNtYWxsIGZvciBwdWJsaWMgRkFRIEFydGljbGVzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgIkluc2VydCBGQVEgVGV4dCIgLyAiSW5zZXJ0IEZ1bGwgRkFRIiBCdXR0b24gaW4gQWdlbnRGQVFab29tU21hbGwuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBGQVEgQXJ0aWNsZSB3aXRoIEhUTUwuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgRkFRIHBhdGggeWVzL25vLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGludmFsaWQgaXRlbXMgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGl0ZW1zIG9mIHN1YmNhdGVnb3JpZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgbGFzdCBjaGFuZ2UgaXRlbXMgaW4gZGVmaW5lZCBpbnRlcmZhY2VzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IGxhc3QgY3JlYXRlZCBpdGVtcyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgcmVsYXRlZCBhcnRpY2xlcyBvbiBzZXJ2aWNlIGNoYW5nZSBldmVuIHdpdGggZW1wdHkgc3ViamVjdCBhbmQgYm9keS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHRoZSBzdGFycyBmb3IgdGhlIGFydGljbGVzIHdpdGggYSByYXRpbmcgZXF1YWwgb3IgZ3JlYXRlciBsaWtlIHRoZSBkZWZpbmVkIHZhbHVlIChzZXQgdmFsdWUgXCcwXCcgdG8gZGVhY3RpdmF0ZSB0aGUgb3V0cHV0KS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHRvcCAxMCBpdGVtcyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgdm90aW5nIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIGxpbmtpbmcgYSBGQVEgd2l0aCBhbm90aGVyIG9iamVjdCBpbiB0aGUgem9vbSB2aWV3IG9mIHN1Y2ggRkFRIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRoYXQgYWxsb3dzIHRvIGRlbGV0ZSBhIEZBUSBpbiBpdHMgem9vbSB2aWV3IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGFjY2VzcyB0aGUgaGlzdG9yeSBvZiBhIEZBUSBpbiBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGVkaXQgYSBGQVEgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gZ28gYmFjayBpbiB0aGUgRkFRIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBwcmludCBhIEZBUSBpbiB0aGUgaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NvbHV0aW9uJ30gPSAn0KDRltGI0LXQvdC90Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3ltcHRvbSd9ID0gJ9Ch0LjQvNC/0YLQvtC80LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGV4dCBPbmx5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBkZWZhdWx0IGxhbmd1YWdlcyBmb3IgdGhlIHJlbGF0ZWQgRkFRIGFydGljbGVzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSBGQVEsIGUuZy4gRkFRIywgS0IjLCBNeUZBUSMuIFRoZSBkZWZhdWx0IGlzIEZBUSMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBzZXR0aW5nIGRlZmluZXMgdGhhdCBhIFwnRkFRXCcgb2JqZWN0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciBcJ0ZBUVwnIG9iamVjdHMgdXNpbmcgdGhlIFwnTm9ybWFsXCcgbGluayB0eXBlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBkZWZpbmVzIHRoYXQgYSBcJ0ZBUVwnIG9iamVjdCBjYW4gYmUgbGlua2VkIHdpdGggb3RoZXIgXCdGQVFcJyBvYmplY3RzIHVzaW5nIHRoZSBcJ1BhcmVudENoaWxkXCcgbGluayB0eXBlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBkZWZpbmVzIHRoYXQgYSBcJ0ZBUVwnIG9iamVjdCBjYW4gYmUgbGlua2VkIHdpdGggb3RoZXIgXCdUaWNrZXRcJyBvYmplY3RzIHVzaW5nIHRoZSBcJ05vcm1hbFwnIGxpbmsgdHlwZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnVGlja2V0XCcgb2JqZWN0cyB1c2luZyB0aGUgXCdQYXJlbnRDaGlsZFwnIGxpbmsgdHlwZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgYm9keSBmb3IgYXBwcm92YWwgb2YgRkFRIGFydGljbGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBzdWJqZWN0IGZvciBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZS4gUGVybWl0dGVkIG5vdGlmaWNhdGlvbiB0YWdzIGFyZSA8T1RPQk9fRkFRX05VTUJFUj4sIDxPVE9CT19GQVFfQ0FURUdPUllJRD4sIDxPVE9CT19GQVFfSVRFTUlEPj4gPE9UT0JPX0ZBUV9USVRMRT4gYW5kIDxPVE9CT19GQVFfU1RBVEVJRD4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG9vbGJhciBJdGVtIGZvciBhIHNob3J0Y3V0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydleHRlcm5hbCAoY3VzdG9tZXIpJ30gPSAn0LLRltC00LrRgNC40YLQtSAo0LrQu9GW0ZTQvdGC0LDQvCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW50ZXJuYWwgKGFnZW50KSd9ID0gJ9Cy0ZbQtNC60YDQuNGC0LUgKNCw0LPQtdC90YLQsNC8KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwdWJsaWMgKGFsbCknfSA9ICfQl9Cw0LPQsNC70YzQvdC+0LTQvtGB0YLRg9C/0L3QtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydwdWJsaWMgKHB1YmxpYyknfSA9ICcnOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdObycsCiAgICAnT2snLAogICAgJ1NldHRpbmdzJywKICAgICdTdWJtaXQnLAogICAgJ1RoaXMgbWlnaHQgYmUgaGVscGZ1bCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=</File>
        <File Location="Kernel/Language/zh_CN_FAQ.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnpoX0NOX0ZBUTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRQWRkCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIEFydGljbGUnfSA9ICfmt7vliqBGQVHmlofnq6AnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnS2V5d29yZHMnfSA9ICflhbPplK7lrZcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRlZ29yeSBpcyByZXF1aXJlZC4nfSA9ICfnsbvliKvmmK/lv4XpnIDnmoQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FwcHJvdmFsJ30gPSAn5a6h5om5JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUNhdGVnb3J5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQ2F0ZWdvcnkgTWFuYWdlbWVudCd9ID0gJ0ZBUeexu+WIq+euoeeQhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIENhdGVnb3J5J30gPSAn5re75YqgRkFR57G75YirJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgRkFRIENhdGVnb3J5J30gPSAn57yW6L6RRkFR57G75YirJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBjYXRlZ29yeSd9ID0gJ+a3u+WKoOexu+WIqyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0ZWdvcnknfSA9ICfmt7vliqDnsbvliKsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDYXRlZ29yeSd9ID0gJ+e8lui+keexu+WIqyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWJjYXRlZ29yeSBvZid9ID0gJ+WtkOexu+WIq+S6jic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2Ugc2VsZWN0IGF0IGxlYXN0IG9uZSBwZXJtaXNzaW9uIGdyb3VwLid9ID0gJ+ivt+iHs+WwkemAieaLqeS4gOS4que7hOadg+mZkC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgZ3JvdXBzIHRoYXQgY2FuIGFjY2VzcyBhcnRpY2xlcyBpbiB0aGlzIGNhdGVnb3J5Lid9ID0gJ+iDveiuv+mXruatpOexu+WIq+aWh+eroOeahOacjeWKoeS6uuWRmOe7hCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXaWxsIGJlIHNob3duIGFzIGNvbW1lbnQgaW4gRXhwbG9yZXIuJ30gPSAn5bCG5L2c5Li65rOo6YeK5Zyo5rWP6KeI5pe25pi+56S6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgY2F0ZWdvcnk/J30gPSAn5L2g56Gu5a6a6KaB5Yig6Zmk6L+Z5Liq57G75Yir5ZCXPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBjYXRlZ29yeS4gSXQgaXMgdXNlZCBpbiBhdCBsZWFzdCBvbmUgRkFRIGFydGljbGUgYW5kL29yIGlzIHBhcmVudCBvZiBhdCBsZWFzdCBvbmUgb3RoZXIgY2F0ZWdvcnknfSA9CiAgICAgICAgJ+S9oOS4jeiDveWIoOmZpOi/meS4quexu+WIq++8jOivpeexu+WIq+iHs+WwkeWMheWQq+S4gOevh0ZBUeaWh+eroO+8jOaIluiAheiHs+WwkeWMheWQq+S4gOS4quWtkOexu+WIq+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGNhdGVnb3J5IGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBGQVEgYXJ0aWNsZShzKSd9ID0gJ+S4i+WIl0ZBUeaWh+eroOS9v+eUqOivpeexu+WIqyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGNhdGVnb3J5IGlzIHBhcmVudCBvZiB0aGUgZm9sbG93aW5nIHN1YmNhdGVnb3JpZXMnfSA9ICfor6XnsbvliKvmmK/kuIvliJflrZDnsbvliKvnmoTniLbnsbvliKsnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgRkFRIGFydGljbGU/J30gPSAn5L2g56Gu5a6a6KaB5Yig6Zmk6K+lRkFR5paH56ug5ZCXPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEnfSA9ICdGQVHnn6Xor4blupMnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRRXhwbG9yZXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBFeHBsb3Jlcid9ID0gJ0ZBUea1j+iniOWZqCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydRdWljayBTZWFyY2gnfSA9ICflv6vpgJ/mkJzntKInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2lsZGNhcmRzIGFyZSBhbGxvd2VkLid9ID0gJ+WFgeiuuOS9v+eUqOmAmumFjeespuOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZHZhbmNlZCBTZWFyY2gnfSA9ICfpq5jnuqfmkJzntKInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3ViY2F0ZWdvcmllcyd9ID0gJ+WtkOexu+WIqyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZXMnfSA9ICdGQVHmlofnq6AnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gc3ViY2F0ZWdvcmllcyBmb3VuZC4nfSA9ICfmsqHmnInmib7liLDlrZDnsbvliKsuJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUhpc3RvcnkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YnfSA9ICfljoblj7InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBDb250ZW50J30gPSAn5Y6G5Y+y5YC8JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZXRpbWUnfSA9ICfliJvlu7rml7bpl7QnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRSm91cm5hbE92ZXJ2aWV3U21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEZBUSBKb3VybmFsIGRhdGEgZm91bmQuJ30gPSAn5rKh5pyJ5om+5YiwRkFR5pel5b+X5pWw5o2u44CCJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUxhbmd1YWdlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgTGFuZ3VhZ2UgTWFuYWdlbWVudCd9ID0gJ0ZBUeivreiogOeuoeeQhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIExhbmd1YWdlJ30gPSAn5re75YqgRkFR6K+t6KiAJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgRkFRIExhbmd1YWdlJ30gPSAn57yW6L6RRkFR6K+t6KiAJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZSB0aGlzIGZlYXR1cmUgaWYgeW91IHdhbnQgdG8gd29yayB3aXRoIG11bHRpcGxlIGxhbmd1YWdlcy4nfSA9CiAgICAgICAgJ+WmguaenOimgeS9v+eUqOWkmuivreiogOWwseS9v+eUqOacrOWKn+iDveOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgbGFuZ3VhZ2UnfSA9ICfmt7vliqDor63oqIAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIExhbmd1YWdlJ30gPSAn5re75Yqg6K+t6KiAJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgTGFuZ3VhZ2UnfSA9ICfnvJbovpHor63oqIAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgbGFuZ3VhZ2UuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIEZBUSBhcnRpY2xlISd9ID0KICAgICAgICAn5L2g5LiN6IO95Yig6Zmk6L+Z5Liq6K+t6KiA77yM6Iez5bCR5pyJ5LiA56+HRkFR5paH56ug5L2/55So6K+l6K+t6KiAISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGxhbmd1YWdlIGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBGQVEgQXJ0aWNsZShzKSd9ID0gJ+S4i+WIl0ZBUeaWh+eroOS9v+eUqOivpeivreiogCc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFPdmVydmlld05hdkJhcgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29udGV4dCBTZXR0aW5ncyd9ID0gJ+S4iuS4i+aWh+iuvue9ric7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgYXJ0aWNsZXMgcGVyIHBhZ2UnfSA9ICfmr4/pobXmmL7npLrnmoRGQVHmlofnq6DmlbAnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRT3ZlcnZpZXdTbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gRkFRIGRhdGEgZm91bmQuJ30gPSAn5rKh5pyJ5om+5YiwRkFR5pWw5o2u44CCJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVJlbGF0ZWRBcnRpY2xlcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnb3V0IG9mIDUnfSA9ICcoNeWIhuWItiknOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRU2VhcmNoCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydLZXl3b3JkJ30gPSAn5YWz6ZSu5a2XJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGUgKGUuIGcuIEVxdWFscyAxMCBvciBHcmVhdGVyVGhhbiA2MCknfSA9ICfmipXnpajmlbAgKOS+i+Wmgu+8jD0gMTAg5oiWID49IDYwKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRlIChlLiBnLiBFcXVhbHMgMjUlIG9yIEdyZWF0ZXJUaGFuIDc1JSknfSA9ICfor4TliIYgKOS+i+Wmgu+8jD0gMTAlIOaIliA+PSA3NSUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FwcHJvdmVkJ30gPSAn6YCa6L+H5a6h5om5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgY2hhbmdlZCBieSd9ID0gJ+S4iuasoeS/ruaUueS6uic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDcmVhdGUgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJ0ZBUeaWh+eroOWIm+W7uuaXtumXtCjnm7jlr7kpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENyZWF0ZSBUaW1lIChiZXR3ZWVuKSd9ID0gJ0ZBUeaWh+eroOWIm+W7uuaXtumXtCjnu53lr7kpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENoYW5nZSBUaW1lIChiZWZvcmUvYWZ0ZXIpJ30gPSAnRkFR5paH56ug5L+u5pS55pe26Ze0KOebuOWvuSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ2hhbmdlIFRpbWUgKGJldHdlZW4pJ30gPSAnRkFR5paH56ug5L+u5pS55pe26Ze0KOe7neWvuSknOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRU2VhcmNoT3BlblNlYXJjaERlc2NyaXB0aW9uRnVsbHRleHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUUZ1bGx0ZXh0J30gPSAnRkFR5YWo5paHJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVNlYXJjaFNtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgU2VhcmNoJ30gPSAnRkFR5pCc57SiJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2ZpbGUgU2VsZWN0aW9uJ30gPSAn6YWN572u6YCJ5oupJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGUnfSA9ICfmipXnpagnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdm90ZSBzZXR0aW5ncyd9ID0gJ+aXoOaKleelqOiuvue9ric7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpYyB2b3Rlcyd9ID0gJ+aMh+WumuaKleelqCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlLiBnLiBFcXVhbHMgMTAgb3IgR3JlYXRlclRoYW4gNjAnfSA9ICfkvovlpoLvvJrnrYnkuo4xMOaIluiAheWkp+S6jjYwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGUnfSA9ICfor4TliIYnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gcmF0ZSBzZXR0aW5ncyd9ID0gJ+aXoOivhOWIhuiuvue9ric7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpYyByYXRlJ30gPSAn5oyH5a6a6K+E5YiGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuIGcuIEVxdWFscyAyNSUgb3IgR3JlYXRlclRoYW4gNzUlJ30gPSAn5L6L5aaC77ya562J5LqOMjUl5oiW5aSn5LqONzUlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENyZWF0ZSBUaW1lJ30gPSAnRkFR5paH56ug5Yib5bu65pe26Ze0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENoYW5nZSBUaW1lJ30gPSAnRkFR5paH56ug5L+u5pS55pe26Ze0JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVpvb20KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJbmZvcm1hdGlvbid9ID0gJ0ZBUeivpue7huS/oeaBryc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRpbmcnfSA9ICfor4TliIYnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZXMnfSA9ICfmipXnpajmrKHmlbAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdm90ZXMgZm91bmQhJ30gPSAn6L+Y5rKh5pyJ5oqV56WoISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB2b3RlcyBmb3VuZCEgQmUgdGhlIGZpcnN0IG9uZSB0byByYXRlIHRoaXMgRkFRIGFydGljbGUuJ30gPSAn6L+Y5rKh5pyJ5oqV56WoISDov5nlsIbmmK/or6UgRkFRIOaWh+eroOeahOesrOS4gOS4quaKleelqOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEb3dubG9hZCBBdHRhY2htZW50J30gPSAn5LiL6L296ZmE5Lu2JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIG9wZW4gbGlua3MgaW4gdGhlIGZvbGxvd2luZyBkZXNjcmlwdGlvbiBibG9ja3MsIHlvdSBtaWdodCBuZWVkIHRvIHByZXNzIEN0cmwgb3IgQ21kIG9yIFNoaWZ0IGtleSB3aGlsZSBjbGlja2luZyB0aGUgbGluayAoZGVwZW5kaW5nIG9uIHlvdXIgYnJvd3NlciBhbmQgT1MpLid9ID0KICAgICAgICAn6KaB5omT5byA5LiL6Z2i5o+P6L+w5Lit55qE6ZO+5o6l77yM5L2g5Y+v6IO96ZyA6KaB5Zyo5Y2V5Ye76ZO+5o6l55qE5ZCM5pe25oyJ5L2PIEN0cmwg5oiWIENtZCDmiJYgU2hpZnQg6ZSuIO+8iOWPluWGs+S6juaCqOeahOa1j+iniOWZqOWSjOaTjeS9nOezu+e7nyDvvInjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG93IGhlbHBmdWwgd2FzIHRoaXMgYXJ0aWNsZT8gUGxlYXNlIGdpdmUgdXMgeW91ciByYXRpbmcgYW5kIGhlbHAgdG8gaW1wcm92ZSB0aGUgRkFRIERhdGFiYXNlLiBUaGFuayBZb3UhJ30gPQogICAgICAgICfmraTmlofmoaPlr7nmgqjmnInluK7liqnlkJfvvJ/or7fnu5nlh7rmgqjnmoTor4Tku7fvvIzluK7liqnmiJHku6zlrozlloTnn6Xor4blupPvvIzosKLosKLvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnbm90IGhlbHBmdWwnfSA9ICfmsqHmnInluK7liqknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsndmVyeSBoZWxwZnVsJ30gPSAn5b6I5pyJ5biu5YqpJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVpvb21TbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEZBUSB0aXRsZSB0byBhcnRpY2xlIHN1YmplY3QnfSA9ICflop7liqBGQVHmoIfpopjliLDmlofnq6DkuLvpopjkuK0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZBUSBUZXh0J30gPSAn5o+S5YWlRkFR5paH5pysJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGdWxsIEZBUSd9ID0gJ+aPkuWFpeWujOaVtEZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRkFRIExpbmsnfSA9ICfmj5LlhaVGQVHpk77mjqUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZBUSBUZXh0ICYgTGluayd9ID0gJ+aPkuWFpUZBUeato+aWh+WSjOmTvuaOpSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRnVsbCBGQVEgJiBMaW5rJ30gPSAn5o+S5YWl5a6M5pW0RkFR5ZKM6ZO+5o6lJzsKCiAgICAjIFRlbXBsYXRlOiBDdXN0b21lckZBUUV4cGxvcmVyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXRlc3QgdXBkYXRlZCBGQVEgYXJ0aWNsZXMnfSA9ICfmnIDov5Hkv67mlLnnmoRGQVHmlofnq6AnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gRkFRIGFydGljbGVzIGZvdW5kLid9ID0gJ+acquaJvuWIsEZBUeaWh+eroOOAgic7CgogICAgIyBUZW1wbGF0ZTogQ3VzdG9tZXJGQVFSZWxhdGVkQXJ0aWNsZXMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbWlnaHQgYmUgaGVscGZ1bCd9ID0gJ+i/meacieWKqeS6jic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3VuZCBubyBoZWxwZnVsIHJlc291cmNlcyBmb3IgdGhlIHN1YmplY3QgYW5kIHRleHQuJ30gPSAn5rKh5pyJ5om+5Yiw5pyJ55So55qE5Li76aKY5ZKM5q2j5paH6LWE5rqQ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGUgYSBzdWJqZWN0IG9yIHRleHQgdG8gZ2V0IGEgbGlzdCBvZiBoZWxwZnVsIHJlc291cmNlcy4nfSA9ICfplK7lhaXkuLvpopjmiJbmraPmlofku6Xojrflj5bmnInnlKjnmoTotYTmupDmuIXljZXjgIInOwoKICAgICMgVGVtcGxhdGU6IEN1c3RvbWVyRkFRU2VhcmNoCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGdWxsdGV4dCBzZWFyY2ggaW4gRkFRIGFydGljbGVzIChlLiBnLiAiSm9obipuIiBvciAiV2lsbCoiKSd9ID0gJ+WcqEZBUeS4rei/m+ihjOWFqOaWh+acrOaQnOe0ou+8iOS+i+Wmgu+8muKAnEpvaG4qbuKAneaIluKAnFdpbGwq4oCd77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGUgcmVzdHJpY3Rpb25zJ30gPSAn5oqV56Wo6ZmQ5Yi25p2h5Lu2JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgRkFRIGFydGljbGVzIHdpdGggdm90ZXMuLi4nfSA9ICfku4VGQVHmlofnq6DnmoTmipXnpajmlbDigKbigKYnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0ZSByZXN0cmljdGlvbnMnfSA9ICfor4TliIbpmZDliLbmnaHku7YnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSBGQVEgYXJ0aWNsZXMgd2l0aCByYXRlLi4uJ30gPSAn5LuFRkFR5paH56ug55qE6K+E5YiG4oCm4oCmJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVzdHJpY3Rpb25zJ30gPSAn5pe26Ze05p+l6K+i5p2h5Lu2JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09ubHkgRkFRIGFydGljbGVzIGNyZWF0ZWQnfSA9ICfku4VGQVHmlofnq6DnmoTliJvlu7rml7bpl7QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSBGQVEgYXJ0aWNsZXMgY3JlYXRlZCBiZXR3ZWVuJ30gPSAn5LuF5Zyo5Lul5LiL5pe26Ze05q615Yib5bu655qERkFR5paH56ugJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaC1Qcm9maWxlIGFzIFRlbXBsYXRlPyd9ID0gJ+WwhuaQnOe0oumFjee9ruiuvue9ruS4uuaooeadv++8nyc7CgogICAgIyBUZW1wbGF0ZTogQ3VzdG9tZXJGQVFab29tCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcnRpY2xlIE51bWJlcid9ID0gJ+aWh+eroOe8luWPtyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggZm9yIGFydGljbGVzIHdpdGgga2V5d29yZCd9ID0gJ+S9v+eUqOWFs+mUruWtl+aQnOe0ouaWh+eroCc7CgogICAgIyBUZW1wbGF0ZTogUHVibGljRkFRU2VhcmNoT3BlblNlYXJjaERlc2NyaXB0aW9uRkFRTnVtYmVyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMnfSA9ICflhazlvIAnOwoKICAgICMgVGVtcGxhdGU6IFB1YmxpY0ZBUVNlYXJjaFJlc3VsdFNob3J0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydCYWNrIHRvIEZBUSBFeHBsb3Jlcid9ID0gJ+i/lOWbnkZBUea1j+iniOWZqCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFBZGQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBuZWVkIHJ3IHBlcm1pc3Npb24hJ30gPSAn5L2g6ZyA6KaBcnfmnYPpmZDvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY2F0ZWdvcmllcyBmb3VuZCB3aGVyZSB1c2VyIGhhcyByZWFkL3dyaXRlIHBlcm1pc3Npb25zISd9ID0gJ+ayoeacieaJvuWIsOeUqOaIt+acieivu+WGmeadg+mZkOeahOexu+WIq+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkZWZhdWx0IGxhbmd1YWdlIGZvdW5kIGFuZCBjYW5cJ3QgY3JlYXRlIGEgbmV3IG9uZS4nfSA9ICfmsqHmnInmib7liLDpu5jorqTor63oqIDkuJTml6Dms5XliJvlu7rmlrDnmoTor63oqIDjgIInOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRQ2F0ZWdvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgQ2F0ZWdvcnlJRCEnfSA9ICfpnIDopoFDYXRlZ29yeUlE77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgY2F0ZWdvcnkgc2hvdWxkIGhhdmUgYSBuYW1lISd9ID0gJ+W/hemhu+i+k+WFpeexu+WIq+WQjeensCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBjYXRlZ29yeSBhbHJlYWR5IGV4aXN0cyd9ID0gJ+exu+WIq+W3suWtmOWcqCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGNhdGVnb3J5IGFscmVhZHkgZXhpc3RzISd9ID0gJ+ivpeexu+WIq+W3suWtmOWcqO+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBDYXRlZ29yeUlEIGlzIGdpdmVuISd9ID0gJ+ayoeacieaMh+WumkNhdGVnb3J5SUQg77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGNhdGVnb3J5ICVzISd9ID0gJ+S4jeiDveWIoOmZpOexu+WIqyVz77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBjYXRlZ29yeSB1cGRhdGVkISd9ID0gJ0ZBUeexu+WIq+W3suabtOaWsCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGNhdGVnb3J5IGFkZGVkISd9ID0gJ0ZBUeexu+WIq+W3sua3u+WKoCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIENhdGVnb3J5J30gPSAn5Yig6Zmk57G75YirJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUURlbGV0ZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gSXRlbUlEIGlzIGdpdmVuISd9ID0gJ+ayoeacieaMh+Wumkl0ZW1JRO+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSBubyBwZXJtaXNzaW9uIGZvciB0aGlzIGNhdGVnb3J5ISd9ID0gJ+S9oOayoeacieadg+mZkOS9v+eUqOatpOexu+WIq++8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBGQVEgYXJ0aWNsZSAlcyEnfSA9ICfkuI3og73liKDpmaTnn6Xor4blupPmlofnq6Alc++8gSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFFeHBsb3Jlci5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIENhdGVnb3J5SUQgJXMgaXMgaW52YWxpZC4nfSA9ICdDYXRlZ29yeUlEICVz5peg5pWI44CCJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUhpc3RvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIEl0ZW1JRCBpcyBnaXZlbiEnfSA9ICfkuI3og73mmL7npLrljoblj7Lkv6Hmga/vvIzlm6DkuLrmsqHmnInmjIflrppJdGVtSUTvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEhpc3RvcnknfSA9ICdGQVHljoblj7InOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRSm91cm5hbC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEpvdXJuYWwnfSA9ICdGQVHml6Xlv5cnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBjb25maWcgb3B0aW9uIEZBUTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3J30gPSAn6ZyA6KaB6YWN572u6YCJ6aG5RkFROjpGcm9udGVuZDo6T3ZlcnZpZXfjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlnIG9wdGlvbiBGQVE6OkZyb250ZW5kOjpPdmVydmlldyBuZWVkcyB0byBiZSBhIEhBU0ggcmVmISd9ID0KICAgICAgICAn6YWN572u6YCJ6aG5RkFROjpGcm9udGVuZDo6T3ZlcnZpZXfpnIDopoHmmK/kuIDkuKrlk4jluIzlvJXnlKjvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY29uZmlnIG9wdGlvbiBmb3VuZCBmb3IgdGhlIHZpZXcgIiVzIiEnfSA9ICfmsqHmnInmib7liLDop4blm77igJwlc+KAneeahOmFjee9rumAiemhue+8gSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFMYW5ndWFnZS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gTGFuZ3VhZ2VJRCBpcyBnaXZlbiEnfSA9ICfmsqHmnInmjIflrppMYW5ndWFnZUlE77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBuYW1lIGlzIHJlcXVpcmVkISd9ID0gJ+WQjeensOaYr+W/hemcgOeahCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBsYW5ndWFnZSBhbHJlYWR5IGV4aXN0cyEnfSA9ICfor6Xor63oqIDlt7Lnu4/lrZjlnKghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGxhbmd1YWdlICVzISd9ID0gJ+S4jeiDveWIoOmZpOivreiogCVz77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBsYW5ndWFnZSB1cGRhdGVkISd9ID0gJ0ZBUeivreiogOW3suabtOaWsCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGxhbmd1YWdlIGFkZGVkISd9ID0gJ0ZBUeivreiogOW3sua3u+WKoCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIExhbmd1YWdlICVzJ30gPSAn5Yig6Zmk6K+t6KiAICVzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUVByaW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXN1bHQnfSA9ICfnu5PmnpwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCB1cGRhdGUnfSA9ICfkuIrmrKHmm7TmlrAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIER5bmFtaWMgRmllbGRzJ30gPSAnRkFR5Yqo5oCB5a2X5q61JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUVJpY2hUZXh0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyAlcyBpcyBnaXZlbiEnfSA9ICfmsqHmnInmjIflrpolc++8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgbG9hZCBMYW5ndWFnZU9iamVjdCEnfSA9ICfkuI3og73ovb3lhaXor63oqIDlr7nosaHvvIEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBSZXN1bHQhJ30gPSAn5peg57uT5p6c77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBOdW1iZXInfSA9ICdGQVHnvJblj7cnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBDaGFuZ2VkIGJ5J30gPSAn5pyA5ZCO5L+u5pS55Lq6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJdGVtIENyZWF0ZSBUaW1lIChiZWZvcmUvYWZ0ZXIpJ30gPSAn55+l6K+G5bqT5p2h55uu5Yib5bu65pe26Ze077yI5ZyoLi4u5LmL5YmNL+S5i+WQju+8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSXRlbSBDcmVhdGUgVGltZSAoYmV0d2VlbiknfSA9ICfnn6Xor4blupPmnaHnm67liJvlu7rml7bpl7TvvIjlnKguLi7kuYvpl7TvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEl0ZW0gQ2hhbmdlIFRpbWUgKGJlZm9yZS9hZnRlciknfSA9ICfnn6Xor4blupPmnaHnm67kv67mlLnml7bpl7TvvIjlnKguLi7kuYvliY0v5LmL5ZCO77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJdGVtIENoYW5nZSBUaW1lIChiZXR3ZWVuKSd9ID0gJ+efpeivhuW6k+adoeebruS/ruaUueaXtumXtO+8iOWcqC4uLuS5i+mXtO+8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcXVhbHMnfSA9ICfnrYnkuo4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JlYXRlciB0aGFuJ30gPSAn5aSn5LqOJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyZWF0ZXIgdGhhbiBlcXVhbHMnfSA9ICflpKfkuo7nrYnkuo4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU21hbGxlciB0aGFuJ30gPSAn5bCP5LqOJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NtYWxsZXIgdGhhbiBlcXVhbHMnfSA9ICflsI/kuo7nrYnkuo4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRWm9vbS5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVlZCBGaWxlSUQhJ30gPSAn6ZyA6KaBRmlsZUlE77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoYW5rcyBmb3IgeW91ciB2b3RlISd9ID0gJ+aEn+iwouaCqOeahOaKleelqCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgYWxyZWFkeSB2b3RlZCEnfSA9ICfmgqjlt7Lnu4/mipXnpaghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHJhdGUgc2VsZWN0ZWQhJ30gPSAn5rKh5pyJ6YCJ5oup5oqV56WoISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgdm90aW5nIG1lY2hhbmlzbSBpcyBub3QgZW5hYmxlZCEnfSA9ICfmipXnpajmnLrliLbmsqHmnInlkK/nlKjvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHZvdGUgcmF0ZSBpcyBub3QgZGVmaW5lZCEnfSA9ICfmsqHmnInlrprkuYnmipXnpajnmoTmnIDlpKfor4TliIbmlbDvvIEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0N1c3RvbWVyRkFRUHJpbnQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIFByaW50J30gPSAnRkFR5paH56ug5omT5Y2wJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9DdXN0b21lckZBUVNlYXJjaC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBiZXR3ZWVuJ30gPSAn5ZyoLi4u5LmL6Ze05Yib5bu6JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9DdXN0b21lckZBUVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgSXRlbUlEISd9ID0gJ+mcgOimgUl0ZW1JRO+8gSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvUHVibGljRkFRRXhwbG9yZXIucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlcyAobmV3IGNyZWF0ZWQpJ30gPSAnRkFR5paH56ugKOaWsOWIm+W7uueahCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGVzIChyZWNlbnRseSBjaGFuZ2VkKSd9ID0gJ0ZBUeaWh+eroCjmnIDov5Hkv67mlLnnmoQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlcyAoVG9wIDEwKSd9ID0gJ0ZBUeaWh+eroCjliY0xMOWQjSknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL1B1YmxpY0ZBUVJTUy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gVHlwZSBpcyBnaXZlbiEnfSA9ICfmsqHmnInmjIflrprnsbvlnovvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZSBtdXN0IGJlIGVpdGhlciBMYXN0Q3JlYXRlIG9yIExhc3RDaGFuZ2Ugb3IgVG9wMTAhJ30gPSAn57G75Z6L5b+F6aG75piv5pyA5ZCO5Yib5bu644CB5pyA5ZCO5L+u5pS55oiWVG9wMTDvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGNyZWF0ZSBSU1MgZmlsZSEnfSA9ICfkuI3og73liJvlu7pSU1Pmlofku7bvvIEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9IZWFkZXJNZXRhL0FnZW50RkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAoRkFRRnVsbHRleHQpJ30gPSAnJXPvvIhGQVHlhajmlofvvIknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9IZWFkZXJNZXRhL0N1c3RvbWVyRkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAtIEN1c3RvbWVyICglcyknfSA9ICclcyAtIOWuouaIt++8iCVz77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gQ3VzdG9tZXIgKEZBUUZ1bGx0ZXh0KSd9ID0gJyVzIC0g5a6i5oi377yIRkFR5YWo5paH77yJJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvSGVhZGVyTWV0YS9QdWJsaWNGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gUHVibGljICglcyknfSA9ICclcyAtIOWFrOW8gO+8iCVz77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gUHVibGljIChGQVFGdWxsdGV4dCknfSA9ICclcyAtIOWFrOW8gO+8iEZBUeWFqOaWh++8iSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0xheW91dC9GQVEucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgcmF0ZSEnfSA9ICfor7for4TliIbvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBhcnRpY2xlIGlzIGVtcHR5ISd9ID0gJ+aWh+eroOaXoOWGheWuue+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXRlc3QgY3JlYXRlZCBGQVEgYXJ0aWNsZXMnfSA9ICfmnIDov5HliJvlu7rnmoRGQVHmlofnq6AnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG9wIDEwIEZBUSBhcnRpY2xlcyd9ID0gJ+acgOW4uOeUqOeahOaWh+eroCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0xpbmtPYmplY3QvRkFRLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZW50IFR5cGUnfSA9ICflhoXlrrnnsbvlnosnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vRHluYW1pY0ZpZWxkL0RyaXZlci9GQVEucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCB0aGUgYXR0cmlidXRlIHdoaWNoIEZBUXMgd2lsbCBiZSBzZWFyY2hlZCBieSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHRlcm5hbC1zb3VyY2Uga2V5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCB0aGUgdHlwZSBvZiBkaXNwbGF5J30gPSAnJzsKCiAgICAjIERhdGFiYXNlIFhNTCAvIFNPUE0gRGVmaW5pdGlvbjogRkFRLnNvcG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2ludGVybmFsJ30gPSAn5YaF6YOoJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2V4dGVybmFsJ30gPSAn5aSW6YOoJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3B1YmxpYyd9ID0gJ+WFrOW8gCc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgZmlsdGVyIGZvciBIVE1MIG91dHB1dCB0byBhZGQgbGlua3MgYmVoaW5kIGEgZGVmaW5lZCBzdHJpbmcuIFRoZSBlbGVtZW50IEltYWdlIGFsbG93cyB0d28gaW5wdXQga2luZHMuIEZpcnN0IHRoZSBuYW1lIG9mIGFuIGltYWdlIChlLmcuIGZhcS5wbmcpLiBJbiB0aGlzIGNhc2UgdGhlIE9UT0JPIGltYWdlIHBhdGggd2lsbCBiZSB1c2VkLiBUaGUgc2Vjb25kIHBvc3NpYmlsaXR5IGlzIHRvIGluc2VydCB0aGUgbGluayB0byB0aGUgaW1hZ2UuJ30gPQogICAgICAgICflnKhIVE1M6L6T5Ye657uT5p6c5Lit5Li66aKE5a6a5LmJ5a2X56ym5Liy5re75Yqg6ZO+5o6l55qE6L+H5ruk5Zmo44CC5Zu+5YOP5YWD57Sg5YWB6K645Lik56eN6L6T5YWl5pa55byP77ya56ys5LiA56eN5piv55So5Zu+5YOP55qE5ZCN56ew77yI5aaCZmFxLnBuZ++8ie+8jOWcqOi/meenjeaDheWGteS4i+S8muS9v+eUqE9UT0JP55qE5Zu+5YOP6Lev5b6E77yb56ys5LqM56eN5piv5o+S5YWl5Zu+5YOP55qE6ZO+5o6l44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBGQVEgYXJ0aWNsZSd9ID0gJ+a3u+WKoEZBUeaWh+eroCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDU1MgY29sb3IgZm9yIHRoZSB2b3RpbmcgcmVzdWx0Lid9ID0gJ+aKleelqOe7k+aenOeahENTU+minOiJsuOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSBUaW1lIFRvIExlYXZlIGZvciBGQVEgaXRlbXMuJ30gPSAnRkFR5paH56ug6IO95pi+56S655qE5pe26Ze044CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGVnb3J5IE1hbmFnZW1lbnQnfSA9ICfnrqHnkIbnsbvliKsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0ZWdvcnkgTWFuYWdlbWVudC4nfSA9ICfnrqHnkIbnsbvliKvjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIFByaW50Lid9ID0gJ+WuouaIt0ZBUeaJk+WNsOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgUmVsYXRlZCBBcnRpY2xlcyd9ID0gJ+WuouaIt0ZBUeebuOWFs+eahOaWh+eroCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgUmVsYXRlZCBBcnRpY2xlcy4nfSA9ICflrqLmiLdGQVHnm7jlhbPnmoTmlofnq6DjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIFpvb20uJ30gPSAn5a6i5oi3RkFR6K+m5oOF44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBzZWFyY2guJ30gPSAn5a6i5oi3RkFR5pCc57SiJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUS4nfSA9ICflrqLmiLdGQVHjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVjaW1hbCBwbGFjZXMgb2YgdGhlIHZvdGluZyByZXN1bHQuJ30gPSAn5Lul5Y2B5YiG5Yi25pi+56S66K+E5YiG57uT5p6c44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgY2F0ZWdvcnkgbmFtZS4nfSA9ICfpu5jorqTnmoTnm67lvZXlkI3np7DjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBsYW5ndWFnZSBmb3IgRkFRIGFydGljbGVzIG9uIHNpbmdsZSBsYW5ndWFnZSBtb2RlLid9ID0gJ+WNleivreiogOaooeW8j+S4i0ZBUeaWh+eroOeahOm7mOiupOivreiogOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG1heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24uJ30gPQogICAgICAgICdGQVHmlofnq6Dpu5jorqTmmL7npLrmoIfpopjnmoTmnIDlpKflrZfnrKbmlbDjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBwcmlvcml0eSBvZiB0aWNrZXRzIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0KICAgICAgICAnRkFRIOaWh+eroOWuoeaJueivt+axguW3peWNleeahOm7mOiupOS8mOWFiOe6p+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXRlIGZvciBGQVEgZW50cnkuJ30gPSAnRkFR5paH56ug55qE6buY6K6k54q25oCB44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdGUgb2YgdGlja2V0cyBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICdGQVEg5paH56ug6K+35rGC5om55YeG5bel5Y2V55qE6buY6K6k54q25oCB44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgdHlwZSBvZiB0aWNrZXRzIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0gJ0ZBUSDmlofnq6Dor7fmsYLmibnlh4blt6XljZXnmoTpu5jorqTnsbvlnovjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCB2YWx1ZSBmb3IgdGhlIEFjdGlvbiBwYXJhbWV0ZXIgZm9yIHRoZSBwdWJsaWMgZnJvbnRlbmQuIFRoZSBBY3Rpb24gcGFyYW1ldGVyIGlzIHVzZWQgaW4gdGhlIHNjcmlwdHMgb2YgdGhlIHN5c3RlbS4nfSA9CiAgICAgICAgJ+WFrOWFseWJjeerr+eVjOmdouaMh+S7pOWPguaVsOeahOm7mOiupOWAvO+8jOaMh+S7pOWPguaVsOeUqOS6juezu+e7n+iEmuacrOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgQWN0aW9ucyB3aGVyZSBhIHNldHRpbmdzIGJ1dHRvbiBpcyBhdmFpbGFibGUgaW4gdGhlIGxpbmtlZCBvYmplY3RzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBQbGVhc2Ugbm90ZSB0aGF0IHRoZXNlIEFjdGlvbnMgbXVzdCBoYXZlIHJlZ2lzdGVyZWQgdGhlIGZvbGxvd2luZyBKUyBhbmQgQ1NTIGZpbGVzOiBDb3JlLkFsbG9jYXRpb25MaXN0LmNzcywgQ29yZS5VSS5BbGxvY2F0aW9uTGlzdC5qcywgQ29yZS5VSS5UYWJsZS5Tb3J0LmpzLCBDb3JlLkFnZW50LlRhYmxlRmlsdGVycy5qcyBhbmQgQ29yZS5BZ2VudC5MaW5rT2JqZWN0LmpzLid9ID0KICAgICAgICAn5a6a5LmJ6ZO+5o6l5a+56LGh5bCP6YOo5Lu2KExpbmtPYmplY3Q6OlZpZXdNb2RlID0gXCJjb21wbGV4XCIp6K6+572u5oyJ6ZKu5Lit55qE5pON5L2c44CC6K+35rOo5oSP77yM6L+Z5Lqb5pON5L2c5b+F6aG75bey57uP5Zyo5Lul5LiLSlPlkoxDU1Pmlofku7bkuK3ms6jlhozvvJpDb3JlLkFsbG9jYXRpb25MaXN0LmNzc+OAgUNvcmUuVUkuQWxsb2NhdGlvbkxpc3QuanPjgIEgQ29yZS5VSS5UYWJsZS5Tb3J0Lmpz44CBQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuanPlkoxDb3JlLkFnZW50LkxpbmtPYmplY3QuanPjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIGlmIHRoZSBGQVEgdGl0bGUgc2hvdWxkIGJlIGNvbmNhdGVuYXRlZCB0byBhcnRpY2xlIHN1YmplY3QuJ30gPQogICAgICAgICflrprkuYlGQVHmoIfpopjmmK/lkKbopoHliqDliLDmlofnq6DkuLvpopjkuK3jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lIHdoaWNoIGNvbHVtbnMgYXJlIHNob3duIGluIHRoZSBsaW5rZWQgRkFRcyB3aWRnZXQgKExpbmtPYmplY3Q6OlZpZXdNb2RlID0gImNvbXBsZXgiKS4gTm90ZTogT25seSBGQVEgYXR0cmlidXRlcyBhbmQgZHluYW1pYyBmaWVsZHMgKER5bmFtaWNGaWVsZF9OYW1lWCkgYXJlIGFsbG93ZWQgZm9yIERlZmF1bHRDb2x1bW5zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBGQVEgam91cm5hbC4nfSA9CiAgICAgICAgJ+WumuS5ieS4gOS4quaYvuekukZBUeaXpeW/l+eugOa0geinhuWbvueahOamguiniOaooeWdl+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgRkFRIGxpc3QuJ30gPQogICAgICAgICflrprkuYnkuIDkuKrmmL7npLpGQVHliJfooajnroDmtIHop4blm77nmoTmpoLop4jmqKHlnZfjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiBhIEZBUSBzZWFyY2ggb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+WumuS5ieWcqOacjeWKoeS6uuWRmOeVjOmdoueahEZBUeaQnOe0oue7k+aenOS4reaOkuW6j+eahOm7mOiupEZBUeWxnuaAp+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIGEgRkFRIHNlYXJjaCBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5a6a5LmJ5Zyo5a6i5oi355WM6Z2i55qERkFR5pCc57Si57uT5p6c5Lit5o6S5bqP55qE6buY6K6kRkFR5bGe5oCn44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gYSBGQVEgc2VhcmNoIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5a6a5LmJ5Zyo5YWs5YWx55WM6Z2i55qERkFR5pCc57Si57uT5p6c5Lit5o6S5bqP55qE6buY6K6kRkFR5bGe5oCn44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5a6a5LmJ5Zyo5pyN5Yqh5Lq65ZGY55WM6Z2i55qERkFR5rWP6KeI5Zmo5Lit5o6S5bqP55qE6buY6K6kRkFR5bGe5oCn44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5a6a5LmJ5Zyo5a6i5oi355WM6Z2i55qERkFR5rWP6KeI5Zmo5Lit5o6S5bqP55qE6buY6K6kRkFR5bGe5oCn44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+WumuS5ieWcqOWFrOWFseeVjOmdoueahEZBUea1j+iniOWZqOS4reaOkuW6j+eahOm7mOiupEZBUeWxnuaAp+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ+WumuS5ieWcqOacjeWKoeS6uuWRmOeVjOmdoueahEZBUea1j+iniOWZqOS4reaYvuekukZBUeeahOmhuuW6j+OAguWQkeS4iu+8muacgOaXqeeahOWcqOacgOS4iumdou+8jOWQkeS4i++8muacgOaWsOeahOWcqOacgOS4iumdouOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ+WumuS5ieWcqOWuouaIt+eVjOmdoueahEZBUea1j+iniOWZqOS4reaYvuekukZBUeeahOmhuuW6j+OAguWQkeS4iu+8muacgOaXqeeahOWcqOacgOS4iumdou+8jOWQkeS4i++8muacgOaWsOeahOWcqOacgOS4iumdouOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgcHVibGljIGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICflrprkuYnlnKjlhazlhbHnlYzpnaLnmoRGQVHmtY/op4jlmajkuK3mmL7npLpGQVHnmoTpobrluo/jgILlkJHkuIrvvJrmnIDml6nnmoTlnKjmnIDkuIrpnaLvvIzlkJHkuIvvvJrmnIDmlrDnmoTlnKjmnIDkuIrpnaLjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAn5a6a5LmJ5Zyo5pyN5Yqh5Lq65ZGY55WM6Z2i55qERkFR5pCc57Si57uT5p6c5Lit55qE5pi+56S66aG65bqP44CC5ZCR5LiK77ya5pyA5pep55qE5Zyo5pyA5LiK6Z2i77yM5ZCR5LiL77ya5pyA5paw55qE5Zyo5pyA5LiK6Z2i44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJ+WumuS5ieWcqOWuouaIt+eVjOmdoueahEZBUeaQnOe0oue7k+aenOS4reeahOaYvuekuumhuuW6j+OAguWQkeS4iu+8muacgOaXqeeahOWcqOacgOS4iumdou+8jOWQkeS4i++8muacgOaWsOeahOWcqOacgOS4iumdouOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAn5a6a5LmJ5Zyo5YWs5YWx55WM6Z2i55qERkFR5pCc57Si57uT5p6c5Lit55qE5pi+56S66aG65bqP44CC5ZCR5LiK77ya5pyA5pep55qE5Zyo5pyA5LiK6Z2i77yM5ZCR5LiL77ya5pyA5paw55qE5Zyo5pyA5LiK6Z2i44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgc2hvd24gRkFRIHNlYXJjaCBhdHRyaWJ1dGUgZm9yIEZBUSBzZWFyY2ggc2NyZWVuLid9ID0KICAgICAgICAn5a6a5LmJRkFR5pCc57Si56qX5Y+j5Lit6buY6K6k55qE55So5LqO5pCc57Si55qERkFR5bGe5oCn44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGhlaWdodCBmb3IgdGhlIHJpY2ggdGV4dCBlZGl0b3IgY29tcG9uZW50IGZvciB0aGlzIHNjcmVlbi4gRW50ZXIgbnVtYmVyIChwaXhlbHMpIG9yIHBlcmNlbnQgdmFsdWUgKHJlbGF0aXZlKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBpbmZvcm1hdGlvbiB0byBiZSBpbnNlcnRlZCBpbiBhIEZBUSBiYXNlZCBUaWNrZXQuICJGdWxsIEZBUSIgaW5jbHVkZXMgdGV4dCwgYXR0YWNobWVudHMgYW5kIGlubGluZSBpbWFnZXMuJ30gPQogICAgICAgICflrprkuYnln7rkuo5GQVHnmoTlt6XljZXkuK3opoHmj5LlhaXnmoTkv6Hmga/jgILigJzlrozmlbRGQVHigJ3ljIXmi6zmlofmnKzjgIHpmYTku7blkozlhoXltYzlm77lg4/jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcGFyYW1ldGVycyBmb3IgdGhlIGRhc2hib2FyZCBiYWNrZW5kLiAiTGltaXQiIGRlZmluZXMgdGhlIG51bWJlciBvZiBlbnRyaWVzIGRpc3BsYXllZCBieSBkZWZhdWx0LiAiR3JvdXAiIGlzIHVzZWQgdG8gcmVzdHJpY3QgYWNjZXNzIHRvIHRoZSBwbHVnaW4gKGUuIGcuIEdyb3VwOiBhZG1pbjtncm91cDE7Z3JvdXAyOykuICJEZWZhdWx0IiBpbmRpY2F0ZXMgaWYgdGhlIHBsdWdpbiBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb3IgaWYgdGhlIHVzZXIgbmVlZHMgdG8gZW5hYmxlIGl0IG1hbnVhbGx5Lid9ID0KICAgICAgICAn5a6a5LmJ5Luq6KGo5p2/55qE5ZCO56uv5Y+C5pWw44CC4oCc6ZmQ5Yi24oCd5a6a5LmJ6buY6K6k5pi+56S65p2h55uu55qE5pWw6YeP44CC4oCc57uE4oCd55So5LqO5o6n5Yi26IO96K6/6Zeu5q2k5qih5Z2X55qE57uE77yI5aaC77yaYWRtaW47Z3JvdXAxO2dyb3VwMue7hO+8ieOAguKAnOm7mOiupOKAneihqOekuuatpOaooeWdl+m7mOiupOS4uuWPr+eUqOaIlumcgOimgeeUqOaIt+aJi+WKqOWQr+eUqOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBGQVEgRXhwbG9yZXIuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICflrprkuYnlnKhGQVHmtY/op4jlmajkuK3opoHmmL7npLrnmoTliJfjgILov5nkuKrpgInpobnkuI3kvJrlvbHlk43liJfnmoTkvY3nva7jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgRkFRIGpvdXJuYWwuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICflrprkuYnlnKhGQVHml6Xlv5fkuK3opoHmmL7npLrnmoTliJfjgILov5nkuKrpgInpobnkuI3kvJrlvbHlk43liJfnmoTkvY3nva7jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgRkFRIHNlYXJjaC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ+WumuS5ieWcqEZBUeaQnOe0oue7k+aenOS4reimgeaYvuekuueahOWIl+OAgui/meS4qumAiemhueS4jeS8muW9seWTjeWIl+eahOS9jee9ruOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHdoZXJlIHRoZSBcJ0luc2VydCBGQVFcJyBsaW5rIHdpbGwgYmUgZGlzcGxheWVkLid9ID0gJ+WumuS5ieKAnOaPkuWFpUZBUeKAnemTvuaOpeWcqOS9leWkhOaYvuekuuOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbml0aW9uIG9mIEZBUSBpdGVtIGZyZWUgdGV4dCBmaWVsZC4nfSA9ICflrprkuYkgRkFRIOadoeebrueahOS4jeWPl+mZkOaWh+Wtl+Wtl+autS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoaXMgRkFRJ30gPSAn5Yig6Zmk6L+Z56+HRkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5Zyo5pyN5Yqh5Lq65ZGY55WM6Z2i5re75YqgRkFR56qX5Y+j5Lit5pi+56S655qE5Yqo5oCB5a2X5q6144CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+WcqOacjeWKoeS6uuWRmOeVjOmdoue8lui+kUZBUeeql+WPo+S4reaYvuekuueahOWKqOaAgeWtl+auteOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIG92ZXJ2aWV3IHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5Zyo5a6i5oi355WM6Z2iRkFR5qaC6KeI56qX5Y+j5Lit5pi+56S655qE5Yqo5oCB5a2X5q6144CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgb3ZlcnZpZXcgc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5Zyo5YWs5YWx55WM6Z2iRkFR5qaC6KeI56qX5Y+j5Lit5pi+56S655qE5Yqo5oCB5a2X5q6144CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgcHJpbnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICflnKjmnI3liqHkurrlkZjnlYzpnaLmiZPljbBGQVHnqpflj6PkuK3mmL7npLrnmoTliqjmgIHlrZfmrrXjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBwcmludCBzY3JlZW4gb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+WcqOWuouaIt+eVjOmdouaJk+WNsEZBUeeql+WPo+S4reaYvuekuueahOWKqOaAgeWtl+auteOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHByaW50IHNjcmVlbiBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+WcqOWFrOWFseeVjOmdouaJk+WNsEZBUeeql+WPo+S4reaYvuekuueahOWKqOaAgeWtl+auteOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHNlYXJjaCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+WcqOacjeWKoeS6uuWRmOeVjOmdouaQnOe0okZBUeeql+WPo+S4reaYvuekuueahOWKqOaAgeWtl+auteOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHNlYXJjaCBzY3JlZW4gb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+WcqOWuouaIt+eVjOmdouaQnOe0okZBUeeql+WPo+S4reaYvuekuueahOWKqOaAgeWtl+auteOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHNlYXJjaCBzY3JlZW4gb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICflnKjlhazlhbHnlYzpnaLmkJzntKJGQVHnqpflj6PkuK3mmL7npLrnmoTliqjmgIHlrZfmrrXjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBzbWFsbCBmb3JtYXQgb3ZlcnZpZXcgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICflnKjmnI3liqHkurrlkZjnlYzpnaJGQVHmpoLop4jnroDmtIHmoLzlvI/nqpflj6PkuK3mmL7npLrnmoTliqjmgIHlrZfmrrXjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5Zyo5pyN5Yqh5Lq65ZGY55WM6Z2iRkFR6K+m5oOF56qX5Y+j5Lit5pi+56S655qE5Yqo5oCB5a2X5q6144CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgem9vbSBzY3JlZW4gb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+WcqOWuouaIt+eVjOmdokZBUeivpuaDheeql+WPo+S4reaYvuekuueahOWKqOaAgeWtl+auteOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHpvb20gc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5Zyo5YWs5YWx55WM6Z2iRkFR6K+m5oOF56qX5Y+j5Lit5pi+56S655qE5Yqo5oCB5a2X5q6144CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhpcyBGQVEnfSA9ICfnvJbovpFGQVEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIG11bHRpcGxlIGxhbmd1YWdlcyBvbiBGQVEgbW9kdWxlLid9ID0gJ+WcqEZBUeaooeWdl+S4reWQr+eUqOWkmuenjeivreiogOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgc2VydmljZSBhc3NpZ25tZW50IGZvciBGQVFzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgdGhlIHJlbGF0ZWQgYXJ0aWNsZSBmZWF0dXJlIGZvciB0aGUgY3VzdG9tZXIgZnJvbnRlbmQuJ30gPQogICAgICAgICflkK/nlKjlrqLmiLfliY3nq6/nmoTnm7jlhbPmlofnq6Dlip/og73jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHZvdGluZyBtZWNoYW5pc20gb24gRkFRIG1vZHVsZS4nfSA9ICflnKhGQVHmqKHlnZfkuK3lkK/nlKjmipXnpajmnLrliLbjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwbG9yZXInfSA9ICfmtY/op4gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFKQVggUmVzcG9uZGVyJ30gPSAnRkFRIEFKQVggUmVzcG9uZGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBSkFYIFJlc3BvbmRlciBmb3IgUmljaHRleHQuJ30gPSAn55So5LqORkFR5a+M5paH5pys55qEQUpBWCBSZXNwb25kZXLjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFyZWEnfSA9ICdGQVHljLrln58nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFyZWEuJ30gPSAnRkFR5Yy65Z+f44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBEZWxldGUuJ30gPSAnRkFR5Yig6Zmk44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBFZGl0Lid9ID0gJ0ZBUee8lui+keOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSGlzdG9yeS4nfSA9ICdGQVHljoblj7LjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEpvdXJuYWwgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJ0ZBUeaXpeW/l+amguiniOKAnOeugOa0geinhuWbvuKAnemZkOWItic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJ0ZBUeamguiniOKAnOeugOa0geinhuWbvuKAnemZkOWItic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgUHJpbnQuJ30gPSAnRkFR5omT5Y2w44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBzZWFyY2ggYmFja2VuZCByb3V0ZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9ICfmnI3liqHkurrlkZjnlYzpnaLkuK3vvIxGQVHmkJzntKLnmoTlkI7lj7DpgInpobnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmllbGQ0J30gPSAn5a2X5q61NCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWVsZDUnfSA9ICflrZfmrrU1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bGwgRkFRJ30gPSAn5a6M5pW0RkFRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0gJ+aJueWHhiBGQVEg5paH56ug6K+35rGC55qE576k57uE44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgdGhpcyBGQVEnfSA9ICdGQVHmlofnq6DnmoTljoblj7Lkv6Hmga8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgYWN0aXZhdGVkLCBGQVEgYXJ0aWNsZXMgb2Ygc3RhdHVzIHR5cGUgaW50ZXJuYWwgYXJlIGFsc28gdGFrZW4gaW50byBhY2NvdW50IGZvciB0aGUgYXBwcm92YWwgcHJvY2Vzcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNsdWRlIGludGVybmFsIGZpZWxkcyBvbiBhIEZBUSBiYXNlZCBUaWNrZXQuJ30gPSAn5Zyo5Z+65LqORkFR5paH56ug55qE5bel5Y2V5Lit5YyF5ZCr5YaF6YOo5a2X5q6144CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgdGhlIG5hbWUgb2YgZWFjaCBmaWVsZCBpbiBhIEZBUSBiYXNlZCBUaWNrZXQuJ30gPSAn5Zyo5Z+65LqORkFR5paH56ug55qE5bel5Y2V5Lit5YyF5ZCr5q+P5Liq5a2X5q6155qE5ZCN56ew44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludGVyZmFjZXMgd2hlcmUgdGhlIHF1aWNrIHNlYXJjaCBzaG91bGQgYmUgc2hvd24uJ30gPSAn5b+r6YCf5pCc57Si5pe25pi+56S655qE55WM6Z2iJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0pvdXJuYWwnfSA9ICfml6Xlv5cnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFuZ3VhZ2UgTWFuYWdlbWVudCd9ID0gJ+euoeeQhuivreiogCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYW5ndWFnZSBNYW5hZ2VtZW50Lid9ID0gJ+euoeeQhuivreiogCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW1pdCBmb3IgdGhlIHNlYXJjaCB0byBidWlsZCB0aGUga2V5d29yZCBGQVEgYXJ0aWNsZSBsaXN0Lid9ID0gJ+S4uuW7uueri+WFs+mUruWtl0ZBUeaWh+eroOWIl+ihqOeahOaQnOe0oumZkOWItuOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoaXMgRkFRIGl0ZW0nfSA9ICfpk77mjqXlr7nosaHliLDov5nkuKpGQVHmnaHnm64nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBxdWV1ZSBuYW1lcyBmb3Igd2hpY2ggdGhlIHJlbGF0ZWQgYXJ0aWNsZSBmZWF0dXJlIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICflkK/nlKjnm7jlhbPmlofnq6Dlip/og73nmoTpmJ/liJflkI3np7DliJfooajjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBzdGF0ZSB0eXBlcyB3aGljaCBjYW4gYmUgdXNlZCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5Zyo5pyN5Yqh5Lq65ZGY55WM6Z2i5Lit6IO95aSf5L2/55So55qE54q25oCB57G75Z6L5YiX6KGo44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2Ygc3RhdGUgdHlwZXMgd2hpY2ggY2FuIGJlIHVzZWQgaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+WcqOWuouaIt+eVjOmdouS4reiDveWkn+S9v+eUqOeahOeKtuaAgeexu+Wei+WIl+ihqOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIHN0YXRlIHR5cGVzIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5Zyo5YWs5YWx55WM6Z2i5Lit6IO95aSf5L2/55So55qE54q25oCB57G75Z6L5YiX6KGo44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xvYWRlciBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9ICflhazlhbHnlYzpnaLnmoTliqDovb3mqKHlnZfms6jlhozjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5Zyo5pyN5Yqh5Lq65ZGY55WM6Z2i5Lit77yMRkFR5rWP6KeI5Zmo6IO95aSf5pi+56S6RkFR5paH56ug55qE5pyA5aSn5pWw6YeP44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+WcqOWuouaIt+eVjOmdouS4re+8jEZBUea1j+iniOWZqOiDveWkn+aYvuekukZBUeaWh+eroOeahOacgOWkp+aVsOmHj+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5Zyo5YWs5YWx55WM6Z2i5Lit77yMRkFR5rWP6KeI5Zmo6IO95aSf5pi+56S6RkFR5paH56ug55qE5pyA5aSn5pWw6YeP44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBqb3VybmFsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICflnKjmnI3liqHkurrlkZjnlYzpnaLkuK3vvIxGQVHml6Xlv5fog73lpJ/mmL7npLpGQVHmlofnq6DnmoTmnIDlpKfmlbDph4/jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgcmVzdWx0IG9mIGEgc2VhcmNoIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICflnKjmnI3liqHkurrlkZjnlYzpnaLkuK3vvIxGQVHmkJzntKLnu5Pmnpzog73lpJ/mmL7npLrnmoTmnIDlpKfmlbDph4/jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgcmVzdWx0IG9mIGEgc2VhcmNoIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICflnKjlrqLmiLfnlYzpnaLkuK3vvIxGQVHmkJzntKLnu5Pmnpzog73lpJ/mmL7npLrnmoTmnIDlpKfmlbDph4/jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgcmVzdWx0IG9mIGEgc2VhcmNoIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5Zyo5YWs5YWx55WM6Z2i5Lit77yMRkFR5pCc57Si57uT5p6c6IO95aSf5pi+56S655qE5pyA5aSn5pWw6YeP44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBFeHBsb3JlciBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5Zyo5pyN5Yqh5Lq65ZGY55WM6Z2i5Lit77yMRkFR5rWP6KeI5Zmo5pi+56S6RkFR5paH56ug5qCH6aKY55qE5pyA6ZW/5a2X56ym5pWw44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBFeHBsb3JlciBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5Zyo5a6i5oi355WM6Z2i5Lit77yMRkFR5rWP6KeI5Zmo5pi+56S6RkFR5paH56ug5qCH6aKY55qE5pyA6ZW/5a2X56ym5pWw44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBFeHBsb3JlciBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+WcqOWFrOWFseeVjOmdouS4re+8jEZBUea1j+iniOWZqOaYvuekukZBUeaWh+eroOagh+mimOeahOacgOmVv+Wtl+espuaVsOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgU2VhcmNoIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICflnKjmnI3liqHkurrlkZjnlYzpnaLkuK3vvIxGQVHmkJzntKLnu5PmnpzmmL7npLpGQVHmlofnq6DmoIfpopjnmoTmnIDplb/lrZfnrKbmlbDjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIFNlYXJjaCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5Zyo5a6i5oi355WM6Z2i5Lit77yMRkFR5pCc57Si57uT5p6c5pi+56S6RkFR5paH56ug5qCH6aKY55qE5pyA6ZW/5a2X56ym5pWw44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBTZWFyY2ggaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICflnKjlhazlhbHnlYzpnaLkuK3vvIxGQVHmkJzntKLnu5PmnpzmmL7npLpGQVHmlofnq6DmoIfpopjnmoTmnIDplb/lrZfnrKbmlbDjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIGpvdXJuYWwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+WcqOacjeWKoeS6uuWRmOeVjOmdouS4re+8jEZBUeaXpeW/l+inhuWbvuaYvuekukZBUeaWh+eroOagh+mimOeahOacgOmVv+Wtl+espuaVsOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gZ2VuZXJhdGUgSFRNTCBPcGVuU2VhcmNoIHByb2ZpbGUgZm9yIHNob3J0IEZBUSBzZWFyY2ggaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+WcqOWuouaIt+eVjOmdouS4re+8jOeUqOS6jueugOefreeahEZBUeaQnOe0ouiAjOeUn+aIkEhUTUzlvIDmlL7lvI/mkJzntKLphY3nva7mlofku7bnmoTmqKHlnZfjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGdlbmVyYXRlIEhUTUwgT3BlblNlYXJjaCBwcm9maWxlIGZvciBzaG9ydCBGQVEgc2VhcmNoIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5Zyo5YWs5YWx55WM6Z2i5Lit77yM5Li65LyY5YyWRkFR5pCc57Si55So5LqO55Sf5oiQSFRNTOW8gOaUvuaQnOe0ou+8iE9wZW5TZWFyY2jvvInphY3nva7nmoTmqKHlnZfjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGdlbmVyYXRlIGh0bWwgT3BlblNlYXJjaCBwcm9maWxlIGZvciBzaG9ydCBGQVEgc2VhcmNoLid9ID0KICAgICAgICAn5Zyo5pyN5Yqh5Lq65ZGY55WM6Z2i5Lit77yM55So5LqO566A55+t55qERkFR5pCc57Si6ICM55Sf5oiQSFRNTOW8gOaUvuW8j+aQnOe0oumFjee9ruaWh+S7tueahOaooeWdl+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgRkFRIEFydGljbGUuJ30gPSAn5Yib5bu6RkFR5paH56ug44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBGQVEgYXJ0aWNsZXMgbmVlZCBhcHByb3ZhbCBiZWZvcmUgdGhleSBnZXQgcHVibGlzaGVkLid9ID0gJ+aWsOW7uueahEZBUeaWh+eroOWcqOWPkeW4g+S5i+WJjemcgOimgeWuoeaJueOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICflnKjlrqLmiLfnlYzpnaLkuK3vvIxGQVHmtY/op4jlmajop4blm77mmL7npLrnmoRGQVHmlofnq6DmlbDph4/jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+WcqOWFrOWFseeVjOmdouS4re+8jEZBUea1j+iniOWZqOinhuWbvuaYvuekuueahEZBUeaWh+eroOaVsOmHj+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBvbiBlYWNoIHBhZ2Ugb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICflnKjlrqLmiLfnlYzpnaLkuK3vvIxGQVHmkJzntKLnu5Pmnpzmr4/pobXmmL7npLrnmoRGQVHmlofnq6DmlbDph4/jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgb24gZWFjaCBwYWdlIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+WcqOWFrOWFseeVjOmdouS4re+8jEZBUeaQnOe0oue7k+aenOavj+mhteaYvuekuueahEZBUeaWh+eroOaVsOmHj+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2Ygc2hvd24gaXRlbXMgaW4gbGFzdCBjaGFuZ2VzLid9ID0gJ+aYvuekuuacgOi/keabtOaUueadoeebrueahOaVsOmHj+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2Ygc2hvd24gaXRlbXMgaW4gbGFzdCBjcmVhdGVkLid9ID0gJ+aYvuekuuacgOaWsOWIm+W7uuadoeebrueahOaVsOmHj+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2Ygc2hvd24gaXRlbXMgaW4gdGhlIHRvcCAxMCBmZWF0dXJlLid9ID0gJ+aMiVRvcDEw5qC85byP5pi+56S655qE5p2h55uu5pWw44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J091dHB1dCBmaWx0ZXIgdG8gYWRkIEphdmEtc2NyaXB0IHRvIEN1c3RvbWVyVGlja2V0TWVzc2FnZSBzY3JlZW4uJ30gPQogICAgICAgICfmt7vliqBKYXZhc2NyaXB05Yiw5a6i5oi35bel5Y2V5raI5oGv56qX5Y+j55qE6L6T5Ye66L+H5ruk5Zmo44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J091dHB1dCBsaW1pdCBmb3IgdGhlIHJlbGF0ZWQgRkFRIGFydGljbGVzLid9ID0gJ+ebuOWFs0ZBUeaWh+eroOeahOi+k+WHuumZkOWItuOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBGQVEgaXRlbXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgRkFRIGpvdXJuYWwgb3ZlcnZpZXcuJ30gPQogICAgICAgICfmmL7npLpGQVHmnaHnm67nmoTlvq7lnotGQVHml6Xlv5fmpoLop4jnmoTpobXpnaLlj4LmlbDjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgRkFRIGl0ZW1zIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIEZBUSBvdmVydmlldy4nfSA9CiAgICAgICAgJ+aYvuekukZBUeadoeebrueahEZBUeamguiniOeugOa0geinhuWbvueahOmhtemdouWPguaVsOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmludCB0aGlzIEZBUSd9ID0gJ+aJk+WNsOi/meevh0ZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRIFByaW50Lid9ID0gJ+WFrOW8gEZBUeaJk+WNsOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRIFpvb20uJ30gPSAn5YWs5byARkFR6K+m5oOF44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBGQVEgc2VhcmNoLid9ID0gJ+WFrOW8gEZBUeaQnOe0ouOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRLid9ID0gJ+WFrOW8gEZBUeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydRdWV1ZSBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICflrqHmibkgRkFRIOaWh+eroOeahOmYn+WIl+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRlcyBmb3Igdm90aW5nLiBLZXkgbXVzdCBiZSBpbiBwZXJjZW50Lid9ID0gJ+WlveivhOeOhywg6ZSu5YC85b+F6aG75Lul55m+5YiG5q+U6KGo56S644CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1MnfSA9ICfnroDmtIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIEZBUSd9ID0gJ+aQnOe0okZBUSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggRkFRIFNtYWxsLid9ID0gJ+aQnOe0okZBUe+8iOeugOa0geagvOW8j++8ieOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggRkFRLid9ID0gJ+aQnOe0okZBUeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgaG93IG1hbnkgaXRlbXMgc2hvdWxkIGJlIHNob3duIGluIEpvdXJuYWwgT3ZlcnZpZXcgIlNtYWxsIiBieSBkZWZhdWx0Lid9ID0KICAgICAgICAn6YCJ5oup5pyf5YiK5qaC6KeI77yI566A5rSB5qC85byP77yJ5Lit6buY6K6k55qE5pi+56S65p2h55uu5pWw44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBob3cgbWFueSBpdGVtcyBzaG91bGQgYmUgc2hvd24gaW4gT3ZlcnZpZXcgIlNtYWxsIiBieSBkZWZhdWx0Lid9ID0KICAgICAgICAn6YCJ5oup5qaC6KeI77yI566A5rSB5qC85byP77yJ5Lit6buY6K6k55qE5pi+56S65p2h55uu5pWw44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZGVmYXVsdCBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEFnZW50RkFRWm9vbS4nfSA9CiAgICAgICAgJ+WcqOKAnUFnZW50RkFRWm9vbeKAnOS4re+8jOiuvue9ruWGhee9rkhUTUzlrZfmrrXnmoTpu5jorqTpq5jluqbvvIjljZXkvY3vvJrlg4/ntKDvvInjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBkZWZhdWx0IGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gQ3VzdG9tZXJGQVFab29tIChhbmQgUHVibGljRkFRWm9vbSkuJ30gPQogICAgICAgICflnKjlrqLmiLdGQVHor6bmg4XlkozlhazlvIBGQVHor6bmg4XkuK3vvIzorr7nva7lhoXnva5IVE1M5a2X5q6155qE6buY6K6k6auY5bqm77yI5oyJ5YOP57Sg77yJ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgbWF4aW11bSBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEFnZW50RkFRWm9vbS4nfSA9CiAgICAgICAgJ+WcqOacjeWKoeS6uuWRmEZBUeivpuaDheS4re+8jOiuvue9ruWGhee9rkhUTUzlrZfmrrXnmoTmnIDlpKfpq5jluqbvvIjmjInlg4/ntKDvvInjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBtYXhpbXVtIGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gQ3VzdG9tZXJGQVFab29tIChhbmQgUHVibGljRkFRWm9vbSkuJ30gPQogICAgICAgICflnKjlrqLmiLdGQVHor6bmg4XlkozlhazlvIBGQVHor6bmg4XkuK3vvIzorr7nva7lhoXnva5IVE1M5a2X5q6155qE5pyA5aSn6auY5bqm77yI5oyJ5YOP57Sg77yJ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgIkluc2VydCBGQVEgTGluayIgQnV0dG9uIGluIEFnZW50RkFRWm9vbVNtYWxsIGZvciBwdWJsaWMgRkFRIEFydGljbGVzLid9ID0KICAgICAgICAn5a+55LqO5YWs5byA55qERkFR5paH56ug77yM5Zyo5pyN5Yqh5Lq65ZGYRkFR6K+m5oOF56qX5Y+j5Lit5pi+56S64oCc5o+S5YWlRkFR6ZO+5o6l4oCd5oyJ6ZKu44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgIkluc2VydCBGQVEgVGV4dCAmIExpbmsiIC8gIkluc2VydCBGdWxsIEZBUSAmIExpbmsiIEJ1dHRvbiBpbiBBZ2VudEZBUVpvb21TbWFsbCBmb3IgcHVibGljIEZBUSBBcnRpY2xlcy4nfSA9CiAgICAgICAgJ+WvueS6juWFrOW8gOeahEZBUeaWh+eroO+8jOWcqOacjeWKoeS6uuWRmEZBUeivpuaDheeql+WPo+S4reaYvuekuuKAnOaPkuWFpUZBUeaWh+acrOWSjOmTvuaOpeKAnS/igJzmj5LlhaXlrozmlbRGQVHlkozpk77mjqXigJ3mjInpkq7jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyAiSW5zZXJ0IEZBUSBUZXh0IiAvICJJbnNlcnQgRnVsbCBGQVEiIEJ1dHRvbiBpbiBBZ2VudEZBUVpvb21TbWFsbC4nfSA9CiAgICAgICAgJ+WcqOacjeWKoeS6uuWRmEZBUeivpuaDheeql+WPo+S4reaYvuekuuKAnOaPkuWFpUZBUeaWh+acrOKAnS/igJzmj5LlhaXlrozmlbRGQVHigJ3mjInpkq7jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBGQVEgQXJ0aWNsZSB3aXRoIEhUTUwuJ30gPSAn5LulIEhUTUwg5qC85byP5pi+56S6IEZBUSDmlofnq6DjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBGQVEgcGF0aCB5ZXMvbm8uJ30gPSAn5pivL+WQpuaYvuekuiBGQVEg6Lev5b6E44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgaW52YWxpZCBpdGVtcyBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5Zyo5pyN5Yqh5Lq65ZGY55WM6Z2i5Lit77yM5ZyoRkFR5rWP6KeI5Zmo57uT5p6c5Lit5pi+56S65peg5pWI5p2h55uu44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgaXRlbXMgb2Ygc3ViY2F0ZWdvcmllcy4nfSA9ICfmmL7npLrlrZDnm67lvZXnmoTmnaHnm67jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBsYXN0IGNoYW5nZSBpdGVtcyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAn5Zyo5a6a5LmJ55qE55WM6Z2i5LiK5pi+56S65pyA6L+R5pu05pS555qE5p2h55uu44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgbGFzdCBjcmVhdGVkIGl0ZW1zIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICflnKjlrprkuYnnmoTnlYzpnaLkuIrmmL7npLrmnIDmlrDliJvlu7rnmoTmnaHnm67jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyByZWxhdGVkIGFydGljbGVzIG9uIHNlcnZpY2UgY2hhbmdlIGV2ZW4gd2l0aCBlbXB0eSBzdWJqZWN0IGFuZCBib2R5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgdGhlIHN0YXJzIGZvciB0aGUgYXJ0aWNsZXMgd2l0aCBhIHJhdGluZyBlcXVhbCBvciBncmVhdGVyIGxpa2UgdGhlIGRlZmluZWQgdmFsdWUgKHNldCB2YWx1ZSBcJzBcJyB0byBkZWFjdGl2YXRlIHRoZSBvdXRwdXQpLid9ID0KICAgICAgICAn5pi+56S65pif57qn5aSn5LqO5oiW562J5LqO5a6a5LmJ5YC855qE5paH56ug77yI6K6+572u5YC8XCcwXCfku6XnpoHnlKjovpPlh7rvvInjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyB0b3AgMTAgaXRlbXMgaW4gZGVmaW5lZCBpbnRlcmZhY2VzLid9ID0gJ+WcqOWumuS5ieeahOeVjOmdouS4iuaYvuekuueCueWHu+mHj+WJjeWNgeS4quadoeebruOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHZvdGluZyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAn5Zyo5a6a5LmJ55qE55WM6Z2i5LiK5pi+56S65paH56ug6K+E5YiG44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBsaW5raW5nIGEgRkFRIHdpdGggYW5vdGhlciBvYmplY3QgaW4gdGhlIHpvb20gdmlldyBvZiBzdWNoIEZBUSBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5Zyo5pyN5Yqh5Lq65ZGY55WM6Z2i5Lit77yM5Zyo6K+lRkFR6K+m5oOF56qX5Y+j6I+c5Y2V5Lit5pi+56S65YWB6K645bCGRkFR6ZO+5o6l5Yiw5Y+m5LiA5Liq5a+56LGh55qE6ZO+5o6l44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyB0byBkZWxldGUgYSBGQVEgaW4gaXRzIHpvb20gdmlldyBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5Zyo5pyN5Yqh5Lq65ZGY55WM6Z2i5Lit77yM5Zyo6K+lRkFR55qE6K+m5oOF56qX5Y+j6I+c5Y2V5Lit5pi+56S65YWB6K645Yig6ZmkRkFR55qE6ZO+5o6l44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSBGQVEgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5Zyo5pyN5Yqh5Lq65ZGY55WM6Z2i5Lit77yM5Zyo6K+lRkFR55qE6K+m5oOF56qX5Y+j6I+c5Y2V5Lit5pi+56S66K6/6ZeuRkFR5Y6G5Y+y55qE6ZO+5o6l44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgRkFRIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICflnKjmnI3liqHkurrlkZjnlYzpnaLkuK3vvIzlnKjor6VGQVHnmoTor6bmg4Xnqpflj6Poj5zljZXkuK3mmL7npLrnvJbovpFGQVHnmoTpk77mjqXjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIEZBUSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+WcqOacjeWKoeS6uuWRmOeVjOmdouS4re+8jOWcqOivpUZBUeeahOivpuaDheeql+WPo+iPnOWNleS4reaYvuekuuWQjumAgOeahOmTvuaOpeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSBGQVEgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+WcqOacjeWKoeS6uuWRmOeVjOmdoueahOivpuaDheeql+WPo+iPnOWNleS4re+8jOaYvuekuuaJk+WNsEZBUeeahOmTvuaOpeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTb2x1dGlvbid9ID0gJ+ino+WGs+aWueahiCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTeW1wdG9tJ30gPSAn55eH54q2JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RleHQgT25seSd9ID0gJ+S7heaWh+acrCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgZGVmYXVsdCBsYW5ndWFnZXMgZm9yIHRoZSByZWxhdGVkIEZBUSBhcnRpY2xlcy4nfSA9ICfnm7jlhbNGQVHmlofnq6DnmoTpu5jorqTor63oqIDjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgRkFRLCBlLmcuIEZBUSMsIEtCIywgTXlGQVEjLiBUaGUgZGVmYXVsdCBpcyBGQVEjLid9ID0KICAgICAgICAnRkFRIOeahOagh+ivhuespiwg5L6L5aaCICjluLjop4Hpl67popjop6PnrZQpRkFRIywgKOefpeivhuW6kylLQiMsIOm7mOiupOS4uiBGQVEj44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBkZWZpbmVzIHRoYXQgYSBcJ0ZBUVwnIG9iamVjdCBjYW4gYmUgbGlua2VkIHdpdGggb3RoZXIgXCdGQVFcJyBvYmplY3RzIHVzaW5nIHRoZSBcJ05vcm1hbFwnIGxpbmsgdHlwZS4nfSA9CiAgICAgICAgJ+ivpeiuvue9ruWumuS5ieS6huS4gOS4quiDvemAmui/h+KAnOaZrumAmu+8iE5vcm1hbO+8ieKAneeahOmTvuaOpeexu+Wei+S4juWFtuS7lkZBUeWvueixoei/nuaOpeeahEZBUeWvueixoeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnRkFRXCcgb2JqZWN0cyB1c2luZyB0aGUgXCdQYXJlbnRDaGlsZFwnIGxpbmsgdHlwZS4nfSA9CiAgICAgICAgJ+ivpeiuvue9ruWumuS5ieS6huS4gOS4quiDvemAmui/h+KAnOeItuWtkO+8iFBhcmVudENoaWxk77yJ4oCd55qE6ZO+5o6l57G75Z6L5LiO5YW25LuWRkFR5a+56LGh6L+e5o6l55qERkFR5a+56LGh44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBkZWZpbmVzIHRoYXQgYSBcJ0ZBUVwnIG9iamVjdCBjYW4gYmUgbGlua2VkIHdpdGggb3RoZXIgXCdUaWNrZXRcJyBvYmplY3RzIHVzaW5nIHRoZSBcJ05vcm1hbFwnIGxpbmsgdHlwZS4nfSA9CiAgICAgICAgJ+ivpeiuvue9ruWumuS5ieS6huS4gOS4quiDvemAmui/h+KAnOaZrumAmu+8iE5vcm1hbO+8ieKAneeahOmTvuaOpeexu+Wei+S4juWFtuS7luW3peWNleWvueixoei/nuaOpeeahEZBUeWvueixoeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnVGlja2V0XCcgb2JqZWN0cyB1c2luZyB0aGUgXCdQYXJlbnRDaGlsZFwnIGxpbmsgdHlwZS4nfSA9CiAgICAgICAgJ+ivpeiuvue9ruWumuS5ieS6huS4gOS4quiDvemAmui/h+KAnOeItuWtkO+8iFBhcmVudENoaWxk77yJ4oCd55qE6ZO+5o6l57G75Z6L5LiO5YW25LuW5bel5Y2V5a+56LGh6L+e5o6l55qERkFR5a+56LGh44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBib2R5IGZvciBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZS4nfSA9ICdGQVEg5paH56ug5a6h5om56K+35rGC55qE5bel5Y2V5q2j5paH44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBzdWJqZWN0IGZvciBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZS4gUGVybWl0dGVkIG5vdGlmaWNhdGlvbiB0YWdzIGFyZSA8T1RPQk9fRkFRX05VTUJFUj4sIDxPVE9CT19GQVFfQ0FURUdPUllJRD4sIDxPVE9CT19GQVFfSVRFTUlEPj4gPE9UT0JPX0ZBUV9USVRMRT4gYW5kIDxPVE9CT19GQVFfU1RBVEVJRD4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG9vbGJhciBJdGVtIGZvciBhIHNob3J0Y3V0Lid9ID0gJ+W/q+aNt+mUrueahOW3peWFt+agj+adoeebruOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydleHRlcm5hbCAoY3VzdG9tZXIpJ30gPSAn5aSW6YOoKOeUqOaItyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnaW50ZXJuYWwgKGFnZW50KSd9ID0gJ+WGhemDqCjmnI3liqHkurrlkZgpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3B1YmxpYyAoYWxsKSd9ID0gJ+WFrOW8gCjlhoXlpJYpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3B1YmxpYyAocHVibGljKSd9ID0gJ+WFrOW8gO+8iOWFrOW8gO+8iSc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ05vJywKICAgICdPaycsCiAgICAnU2V0dGluZ3MnLAogICAgJ1N1Ym1pdCcsCiAgICAnVGhpcyBtaWdodCBiZSBoZWxwZnVsJywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==</File>
        <File Location="Kernel/Language/zh_TW_FAQ.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnpoX1RXX0ZBUTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRQWRkCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIEFydGljbGUnfSA9ICfmt7vliqDluLjopovllY/poYzmlofnq6AnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnS2V5d29yZHMnfSA9ICfpl5zpjbXlrZcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRlZ29yeSBpcyByZXF1aXJlZC4nfSA9ICfnm67pjITliIbpoZ7ngrrlv4XpoIjnmoQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FwcHJvdmFsJ30gPSAn5a+p5om5JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUUNhdGVnb3J5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQ2F0ZWdvcnkgTWFuYWdlbWVudCd9ID0gJ+W4uOimi+WVj+mhjOebrumMhOWIhumhnueuoeeQhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIENhdGVnb3J5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgRkFRIENhdGVnb3J5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBjYXRlZ29yeSd9ID0gJ+a3u+WKoOebrumMhOWIhumhnic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQ2F0ZWdvcnknfSA9ICfmt7vliqDnm67pjITliIbpoZ4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBDYXRlZ29yeSd9ID0gJ+e3qOi8r+ebrumMhOWIhumhnic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWJjYXRlZ29yeSBvZid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2Ugc2VsZWN0IGF0IGxlYXN0IG9uZSBwZXJtaXNzaW9uIGdyb3VwLid9ID0gJ+iri+mBuOaTh+iHs+WwkeS4gOWAi+asiumZkOe1hOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBncm91cHMgdGhhdCBjYW4gYWNjZXNzIGFydGljbGVzIGluIHRoaXMgY2F0ZWdvcnkuJ30gPSAn5Y+v5Lul5a2Y5Y+W5q2k55uu6YyE5YiG6aGe5paH56ug55qE5pyN5YuZ5ZOh57WE5Yil44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dpbGwgYmUgc2hvd24gYXMgY29tbWVudCBpbiBFeHBsb3Jlci4nfSA9ICflnKjngI/opr3lmajkuK3lsIfmnIPpoa/npLrngrroqZXoqIDjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNhdGVnb3J5Pyd9ID0gJ+aCqOeiuuWumuimgeWIqumZpOatpOebrumMhOWIhumhnu+8nyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBjYXRlZ29yeS4gSXQgaXMgdXNlZCBpbiBhdCBsZWFzdCBvbmUgRkFRIGFydGljbGUgYW5kL29yIGlzIHBhcmVudCBvZiBhdCBsZWFzdCBvbmUgb3RoZXIgY2F0ZWdvcnknfSA9CiAgICAgICAgJ+aCqOeEoeazleWIqumZpOatpOebrumMhOWIhumhnuOAguiHs+Wwkeiiq+S4gOevh+W4uOimi+WVj+mhjOaWh+eroOWcqOatpOebrumMhOWIhumhnuWFp++8jOWPii/miJblroPmmK/oh7PlsJHkuIDlgIvlhbbku5bnm67pjITliIbpoZ7mmK/lroPnmoTmr43nm67pjITliIbpoZ7jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBjYXRlZ29yeSBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgRkFRIGFydGljbGUocyknfSA9ICfku6XkuIvnmoTluLjopovllY/poYzmlofnq6Dkvb/nlKjmraTnm67poZ7liIbpoZ4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBjYXRlZ29yeSBpcyBwYXJlbnQgb2YgdGhlIGZvbGxvd2luZyBzdWJjYXRlZ29yaWVzJ30gPSAn5Lul5LiL55uu6YyE5YiG6aGe5piv5q2k55uu6YyE5YiG6aGe55qE5a2Q55uu6YyE5YiG6aGeJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUURlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIEZBUSBhcnRpY2xlPyd9ID0gJ+aCqOeiuuWumuimgeWIqumZpOatpOW4uOimi+WVj+mhjOaWh+eroO+8nyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEnfSA9ICfluLjopovllY/poYwnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRRXhwbG9yZXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBFeHBsb3Jlcid9ID0gJ+aOoue0ouW4uOimi+WVj+mhjCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydRdWljayBTZWFyY2gnfSA9ICflv6vpgJ/mkJzlsIsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2lsZGNhcmRzIGFyZSBhbGxvd2VkLid9ID0gJ+WuueioseS9v+eUqOmAmumFjeespuiZn+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZHZhbmNlZCBTZWFyY2gnfSA9ICfpgLLpmo7mkJzlsIsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3ViY2F0ZWdvcmllcyd9ID0gJ+WtkOebrumMhOWIhumhnic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZXMnfSA9ICfluLjopovllY/poYzmlofnq6AnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gc3ViY2F0ZWdvcmllcyBmb3VuZC4nfSA9ICfmspLmnInmib7liLDlrZDnm67pjITliIbpoZ7jgIInOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRSGlzdG9yeQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGlzdG9yeSBvZid9ID0gJ+att+WPsic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIaXN0b3J5IENvbnRlbnQnfSA9ICfmrbflj7LlhoXlrrknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRldGltZSd9ID0gJ+WJteW7uuaZgumWkyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFKb3VybmFsT3ZlcnZpZXdTbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gRkFRIEpvdXJuYWwgZGF0YSBmb3VuZC4nfSA9ICfmspLmnInmib7liLDluLjopovllY/poYzml6Xoqozmlbjmk5rjgIInOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRTGFuZ3VhZ2UKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBMYW5ndWFnZSBNYW5hZ2VtZW50J30gPSAn5bi46KaL5ZWP6aGM6Kqe6KiA566h55CGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBGQVEgTGFuZ3VhZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBGQVEgTGFuZ3VhZ2UnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlIHRoaXMgZmVhdHVyZSBpZiB5b3Ugd2FudCB0byB3b3JrIHdpdGggbXVsdGlwbGUgbGFuZ3VhZ2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBsYW5ndWFnZSd9ID0gJ+a3u+WKoOiqnuiogCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgTGFuZ3VhZ2UnfSA9ICfmt7vliqDoqp7oqIAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBMYW5ndWFnZSd9ID0gJ+e3qOi8r+iqnuiogCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBsYW5ndWFnZS4gSXQgaXMgdXNlZCBpbiBhdCBsZWFzdCBvbmUgRkFRIGFydGljbGUhJ30gPQogICAgICAgICfmgqjnhKHms5XliKrpmaTmraToqp7oqIDjgILlroPooqvoh7PlsJHkuIDnr4fluLjopovllY/poYzmlofnq6Dkvb/nlKjkuK3jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBsYW5ndWFnZSBpcyB1c2VkIGluIHRoZSBmb2xsb3dpbmcgRkFRIEFydGljbGUocyknfSA9ICfku6XkuIvluLjopovllY/poYzmlofnq6DmraPkvb/nlKjmraTnm67pjITliIbpoZ4nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRT3ZlcnZpZXdOYXZCYXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRleHQgU2V0dGluZ3MnfSA9ICfkuIrkuIvmlofoqK3nva4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIGFydGljbGVzIHBlciBwYWdlJ30gPSAn5bi46KaL5ZWP6aGM5paH56ugL+mggSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFPdmVydmlld1NtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBGQVEgZGF0YSBmb3VuZC4nfSA9ICfmspLmnInmib7liLDluLjopovllY/poYzmlbjmk5rjgIInOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRUmVsYXRlZEFydGljbGVzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydvdXQgb2YgNSd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRGQVFTZWFyY2gKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0tleXdvcmQnfSA9ICfpl5zpjbXlrZcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSAoZS4gZy4gRXF1YWxzIDEwIG9yIEdyZWF0ZXJUaGFuIDYwKSd9ID0gJ+aKleelqCAo5L6L77ya562J5pa8MTDmiJblpKfmlrw2MCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmF0ZSAoZS4gZy4gRXF1YWxzIDI1JSBvciBHcmVhdGVyVGhhbiA3NSUpJ30gPSAn6KmV5YiGICjkvovvvJrnrYnmlrwyNSXmiJblpKfmlrw3NSUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FwcHJvdmVkJ30gPSAn5bey6YCa6YGO5a+p5om5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgY2hhbmdlZCBieSd9ID0gJ+acgOW+jOS/ruaUueaWvCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBDcmVhdGUgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJ+W4uOimi+WVj+mhjOaWh+eroOWJteW7uuaZgumWkyAo5LmL5YmNL+S5i+W+jCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ3JlYXRlIFRpbWUgKGJldHdlZW4pJ30gPSAn5bi46KaL5ZWP6aGM5paH56ug5Ym15bu65pmC6ZaTKOS5i+mWkyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ2hhbmdlIFRpbWUgKGJlZm9yZS9hZnRlciknfSA9ICfluLjopovllY/poYzmlofnq6Dmm7TmlrDmmYLplpMo5LmL5YmNL+S5i+W+jCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFydGljbGUgQ2hhbmdlIFRpbWUgKGJldHdlZW4pJ30gPSAn5bi46KaL5ZWP6aGM5paH56ug5pu05paw5pmC6ZaTKOS5i+mWkyknOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRU2VhcmNoT3BlblNlYXJjaERlc2NyaXB0aW9uRnVsbHRleHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUUZ1bGx0ZXh0J30gPSAn5bi46KaL5ZWP6aGM5YWo5paH5YWn5a65JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVNlYXJjaFNtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgU2VhcmNoJ30gPSAn5bi46KaL5ZWP6aGM5pCc5bCLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2ZpbGUgU2VsZWN0aW9uJ30gPSAn5qqU5qGI6LOH5paZ6YG46aCFJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGUnfSA9ICfmipXnpagnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdm90ZSBzZXR0aW5ncyd9ID0gJ+aykuacieaKleelqOioreWumic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpYyB2b3Rlcyd9ID0gJ+aMh+WumumBuOelqCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydlLiBnLiBFcXVhbHMgMTAgb3IgR3JlYXRlclRoYW4gNjAnfSA9ICfkvovvvJrnrYnmlrwxMOaIluWkp+aWvDYwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGUnfSA9ICfoqZXliIYnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gcmF0ZSBzZXR0aW5ncyd9ID0gJ+aykuacieipleWIhuioreWumic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpYyByYXRlJ30gPSAn5oyH5a6a6KmV5YiGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2UuIGcuIEVxdWFscyAyNSUgb3IgR3JlYXRlclRoYW4gNzUlJ30gPSAn5L6L77ya562J5pa8MjUl5oiW5aSn5pa8NzUlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENyZWF0ZSBUaW1lJ30gPSAn5bi46KaL5ZWP6aGM5paH56ug5Ym15bu65pmC6ZaTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlIENoYW5nZSBUaW1lJ30gPSAn5bi46KaL5ZWP6aGM5paH56ug57eo6Lyv5pmC6ZaTJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudEZBUVpvb20KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJbmZvcm1hdGlvbid9ID0gJ+W4uOimi+WVj+mhjOizh+ioiic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRpbmcnfSA9ICfoqZXliIYnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZXMnfSA9ICfpgbjnpagnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdm90ZXMgZm91bmQhJ30gPSAn5rKS5pyJ5om+5Yiw6YG456Wo77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHZvdGVzIGZvdW5kISBCZSB0aGUgZmlyc3Qgb25lIHRvIHJhdGUgdGhpcyBGQVEgYXJ0aWNsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG93bmxvYWQgQXR0YWNobWVudCd9ID0gJ+S4i+i8iemZhOS7tic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyBvcGVuIGxpbmtzIGluIHRoZSBmb2xsb3dpbmcgZGVzY3JpcHRpb24gYmxvY2tzLCB5b3UgbWlnaHQgbmVlZCB0byBwcmVzcyBDdHJsIG9yIENtZCBvciBTaGlmdCBrZXkgd2hpbGUgY2xpY2tpbmcgdGhlIGxpbmsgKGRlcGVuZGluZyBvbiB5b3VyIGJyb3dzZXIgYW5kIE9TKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3cgaGVscGZ1bCB3YXMgdGhpcyBhcnRpY2xlPyBQbGVhc2UgZ2l2ZSB1cyB5b3VyIHJhdGluZyBhbmQgaGVscCB0byBpbXByb3ZlIHRoZSBGQVEgRGF0YWJhc2UuIFRoYW5rIFlvdSEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgaGVscGZ1bCd9ID0gJ+aykuacieW5q+WKqSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyd2ZXJ5IGhlbHBmdWwnfSA9ICflvojmnInluavliqknOwoKICAgICMgVGVtcGxhdGU6IEFnZW50RkFRWm9vbVNtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgRkFRIHRpdGxlIHRvIGFydGljbGUgc3ViamVjdCd9ID0gJ+a3u+WKoOW4uOimi+WVj+mhjOaomemhjOWIsOaWh+eroOaomemhjCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRkFRIFRleHQnfSA9ICfmj5LlhaXluLjopovllY/poYzmloflrZcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5zZXJ0IEZ1bGwgRkFRJ30gPSAn5o+S5YWl5YWo6YOo5bi46KaL5ZWP6aGMJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGQVEgTGluayd9ID0gJ+aPkuWFpeW4uOimi+WVj+mhjOmAo+e1kCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnNlcnQgRkFRIFRleHQgJiBMaW5rJ30gPSAn5o+S5YWl5bi46KaL5ZWP6aGM5paH5a2X5Y+K6YCj57WQJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luc2VydCBGdWxsIEZBUSAmIExpbmsnfSA9ICfmj5LlhaXlhajpg6jluLjopovllY/poYzlj4rpgKPntZAnOwoKICAgICMgVGVtcGxhdGU6IEN1c3RvbWVyRkFRRXhwbG9yZXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhdGVzdCB1cGRhdGVkIEZBUSBhcnRpY2xlcyd9ID0gJ+acgOi/keabtOaWsOW4uOimi+WVj+mhjOaWh+eroCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBGQVEgYXJ0aWNsZXMgZm91bmQuJ30gPSAn5rKS5pyJ5om+5Yiw5bi46KaL5ZWP6aGM5paH56ug44CCJzsKCiAgICAjIFRlbXBsYXRlOiBDdXN0b21lckZBUVJlbGF0ZWRBcnRpY2xlcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtaWdodCBiZSBoZWxwZnVsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvdW5kIG5vIGhlbHBmdWwgcmVzb3VyY2VzIGZvciB0aGUgc3ViamVjdCBhbmQgdGV4dC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZSBhIHN1YmplY3Qgb3IgdGV4dCB0byBnZXQgYSBsaXN0IG9mIGhlbHBmdWwgcmVzb3VyY2VzLid9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQ3VzdG9tZXJGQVFTZWFyY2gKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Z1bGx0ZXh0IHNlYXJjaCBpbiBGQVEgYXJ0aWNsZXMgKGUuIGcuICJKb2huKm4iIG9yICJXaWxsKiIpJ30gPSAn5bi46KaL5ZWP6aGM5paH56ug5YWo5paH5qqi57SiICjkvovvvJoiSm9obipuIiDmiJYgIldpbGwqIiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSByZXN0cmljdGlvbnMnfSA9ICfmipXnpajpmZDliLbmop3ku7YnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSBGQVEgYXJ0aWNsZXMgd2l0aCB2b3Rlcy4uLid9ID0gJ+WPquaYr+acieiiq+aKlemBuOeahOW4uOimi+WVj+mhjOaWh+eroCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYXRlIHJlc3RyaWN0aW9ucyd9ID0gJ+ipleWIhumZkOWItuaineS7tic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IEZBUSBhcnRpY2xlcyB3aXRoIHJhdGUuLi4nfSA9ICflj6rmmK/mnInoqZXliIbnmoTluLjopovllY/poYzmlofnq6AnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXN0cmljdGlvbnMnfSA9ICfmmYLplpPmn6XoqaLmop3ku7YnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT25seSBGQVEgYXJ0aWNsZXMgY3JlYXRlZCd9ID0gJ+WPquaYr+W3suWJteW7uueahOW4uOimi+WVj+mhjOaWh+eroCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbmx5IEZBUSBhcnRpY2xlcyBjcmVhdGVkIGJldHdlZW4nfSA9ICflj6rmmK/luLjopovllY/poYzmlofnq6DlibXlu7rmlrwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoLVByb2ZpbGUgYXMgVGVtcGxhdGU/J30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBDdXN0b21lckZBUVpvb20KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FydGljbGUgTnVtYmVyJ30gPSAn5paH56ug57eo6JmfJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlYXJjaCBmb3IgYXJ0aWNsZXMgd2l0aCBrZXl3b3JkJ30gPSAn55So6Zec6Y215a2X5pCc5bCL5paH56ugJzsKCiAgICAjIFRlbXBsYXRlOiBQdWJsaWNGQVFTZWFyY2hPcGVuU2VhcmNoRGVzY3JpcHRpb25GQVFOdW1iZXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyd9ID0gJ+WFrOmWiyc7CgogICAgIyBUZW1wbGF0ZTogUHVibGljRkFRU2VhcmNoUmVzdWx0U2hvcnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0JhY2sgdG8gRkFRIEV4cGxvcmVyJ30gPSAn5Zue5Yiw5bi46KaL5ZWP6aGM54CP6Ka95ZmoJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUFkZC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IG5lZWQgcncgcGVybWlzc2lvbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY2F0ZWdvcmllcyBmb3VuZCB3aGVyZSB1c2VyIGhhcyByZWFkL3dyaXRlIHBlcm1pc3Npb25zISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkZWZhdWx0IGxhbmd1YWdlIGZvdW5kIGFuZCBjYW5cJ3QgY3JlYXRlIGEgbmV3IG9uZS4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRQ2F0ZWdvcnkucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgQ2F0ZWdvcnlJRCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBjYXRlZ29yeSBzaG91bGQgaGF2ZSBhIG5hbWUhJ30gPSAn55uu6YyE5YiG6aGe5b+F6aCI5pyJ5ZCN56ixISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGNhdGVnb3J5IGFscmVhZHkgZXhpc3RzJ30gPSAn5q2k55uu6YyE5YiG6aGe5bey57aT5a2Y5ZyoJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY2F0ZWdvcnkgYWxyZWFkeSBleGlzdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIENhdGVnb3J5SUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGNhdGVnb3J5ICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgY2F0ZWdvcnkgdXBkYXRlZCEnfSA9ICfluLjopovllY/poYznm67pjITliIbpoZ7lt7Lmm7TmlrAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBjYXRlZ29yeSBhZGRlZCEnfSA9ICfluLjopovllY/poYznm67pjITliIbpoZ7lt7Lmt7vliqAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBDYXRlZ29yeSd9ID0gJ+WIqumZpOebrumMhOWIhumhnic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFEZWxldGUucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIEl0ZW1JRCBpcyBnaXZlbiEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgbm8gcGVybWlzc2lvbiBmb3IgdGhpcyBjYXRlZ29yeSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2FzIG5vdCBhYmxlIHRvIGRlbGV0ZSB0aGUgRkFRIGFydGljbGUgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUV4cGxvcmVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgQ2F0ZWdvcnlJRCAlcyBpcyBpbnZhbGlkLid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFIaXN0b3J5LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2hvdyBoaXN0b3J5LCBhcyBubyBJdGVtSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBIaXN0b3J5J30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUUpvdXJuYWwucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBKb3VybmFsJ30gPSAn5bi46KaL5ZWP6aGM5pel6KqMJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgY29uZmlnIG9wdGlvbiBGQVE6OkZyb250ZW5kOjpPdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maWcgb3B0aW9uIEZBUTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3IG5lZWRzIHRvIGJlIGEgSEFTSCByZWYhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gY29uZmlnIG9wdGlvbiBmb3VuZCBmb3IgdGhlIHZpZXcgIiVzIiEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50RkFRTGFuZ3VhZ2UucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIExhbmd1YWdlSUQgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBuYW1lIGlzIHJlcXVpcmVkISd9ID0gJ+WQjeeoseeCuuW/hemgiOeahCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBsYW5ndWFnZSBhbHJlYWR5IGV4aXN0cyEnfSA9ICfmraToqp7oqIDlt7LlrZjlnKghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dhcyBub3QgYWJsZSB0byBkZWxldGUgdGhlIGxhbmd1YWdlICVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgbGFuZ3VhZ2UgdXBkYXRlZCEnfSA9ICfluLjopovllY/poYzoqp7oqIDlt7Lmm7TmlrAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBsYW5ndWFnZSBhZGRlZCEnfSA9ICfluLjopovllY/poYzoqp7oqIDlt7Lmt7vliqAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBMYW5ndWFnZSAlcyd9ID0gJ+WIqumZpOiqnuiogCAlcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFQcmludC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVzdWx0J30gPSAn57WQ5p6cJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgdXBkYXRlJ30gPSAn5pyA5b6M5pu05pawJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBEeW5hbWljIEZpZWxkcyd9ID0gJ+W4uOimi+WVj+mhjOWLleaFi+ashOS9jSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFSaWNoVGV4dC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gJXMgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBsb2FkIExhbmd1YWdlT2JqZWN0ISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFJlc3VsdCEnfSA9ICfmspLmnInntZDmnpwhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBOdW1iZXInfSA9ICfluLjopovllY/poYznt6jomZ8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBDaGFuZ2VkIGJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJdGVtIENyZWF0ZSBUaW1lIChiZWZvcmUvYWZ0ZXIpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBJdGVtIENyZWF0ZSBUaW1lIChiZXR3ZWVuKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSXRlbSBDaGFuZ2UgVGltZSAoYmVmb3JlL2FmdGVyKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgSXRlbSBDaGFuZ2UgVGltZSAoYmV0d2VlbiknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXF1YWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyZWF0ZXIgdGhhbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmVhdGVyIHRoYW4gZXF1YWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NtYWxsZXIgdGhhbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTbWFsbGVyIHRoYW4gZXF1YWxzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudEZBUVpvb20ucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgRmlsZUlEISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGFua3MgZm9yIHlvdXIgdm90ZSEnfSA9ICfmhJ/orJ3mgqjnmoTmipXnpaghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIGFscmVhZHkgdm90ZWQhJ30gPSAn5oKo5bex57aT5oqV56WoISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyByYXRlIHNlbGVjdGVkISd9ID0gJ+aykuaciemBuOWPluipleWIhiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHZvdGluZyBtZWNoYW5pc20gaXMgbm90IGVuYWJsZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSB2b3RlIHJhdGUgaXMgbm90IGRlZmluZWQhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9DdXN0b21lckZBUVByaW50LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZSBQcmludCd9ID0gJ+W4uOimi+WVj+mhjOaWh+eroOWIl+WNsCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQ3VzdG9tZXJGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZWQgYmV0d2Vlbid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQ3VzdG9tZXJGQVFab29tLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWVkIEl0ZW1JRCEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL1B1YmxpY0ZBUUV4cGxvcmVyLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZXMgKG5ldyBjcmVhdGVkKSd9ID0gJ+W4uOimi+WVj+mhjOaWh+eroCAo5paw5re75YqgKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgQXJ0aWNsZXMgKHJlY2VudGx5IGNoYW5nZWQpJ30gPSAn5bi46KaL5ZWP6aGM5paH56ugICjmnIDov5Hmm7TmlrApJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcnRpY2xlcyAoVG9wIDEwKSd9ID0gJ+W4uOimi+WVj+mhjOaWh+eroCAo6aaWMTDnr4cpJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9QdWJsaWNGQVFSU1MucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIFR5cGUgaXMgZ2l2ZW4hJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGUgbXVzdCBiZSBlaXRoZXIgTGFzdENyZWF0ZSBvciBMYXN0Q2hhbmdlIG9yIFRvcDEwISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgY3JlYXRlIFJTUyBmaWxlISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0hlYWRlck1ldGEvQWdlbnRGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIChGQVFGdWxsdGV4dCknfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9IZWFkZXJNZXRhL0N1c3RvbWVyRkFRU2VhcmNoLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyclcyAtIEN1c3RvbWVyICglcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgLSBDdXN0b21lciAoRkFRRnVsbHRleHQpJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvSGVhZGVyTWV0YS9QdWJsaWNGQVFTZWFyY2gucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JyVzIC0gUHVibGljICglcyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnJXMgLSBQdWJsaWMgKEZBUUZ1bGx0ZXh0KSd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0xheW91dC9GQVEucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZWQgcmF0ZSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBhcnRpY2xlIGlzIGVtcHR5ISd9ID0gJ+atpOaWh+eroOeCuuepuueZvSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGF0ZXN0IGNyZWF0ZWQgRkFRIGFydGljbGVzJ30gPSAn5pyA6L+R5re75Yqg55qE5bi46KaL5ZWP6aGM5paH56ugJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvcCAxMCBGQVEgYXJ0aWNsZXMnfSA9ICfpppYxMOevh+W4uOimi+WVj+mhjOaWh+eroCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML0xpbmtPYmplY3QvRkFRLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZW50IFR5cGUnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9TeXN0ZW0vRHluYW1pY0ZpZWxkL0RyaXZlci9GQVEucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCB0aGUgYXR0cmlidXRlIHdoaWNoIEZBUXMgd2lsbCBiZSBzZWFyY2hlZCBieSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFeHRlcm5hbC1zb3VyY2Uga2V5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCB0aGUgdHlwZSBvZiBkaXNwbGF5J30gPSAnJzsKCiAgICAjIERhdGFiYXNlIFhNTCAvIFNPUE0gRGVmaW5pdGlvbjogRkFRLnNvcG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2ludGVybmFsJ30gPSAn5YWn6YOo55qEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2V4dGVybmFsJ30gPSAn5aSW6YOo55qEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3B1YmxpYyd9ID0gJ+WFrOmWi+eahCc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgZmlsdGVyIGZvciBIVE1MIG91dHB1dCB0byBhZGQgbGlua3MgYmVoaW5kIGEgZGVmaW5lZCBzdHJpbmcuIFRoZSBlbGVtZW50IEltYWdlIGFsbG93cyB0d28gaW5wdXQga2luZHMuIEZpcnN0IHRoZSBuYW1lIG9mIGFuIGltYWdlIChlLmcuIGZhcS5wbmcpLiBJbiB0aGlzIGNhc2UgdGhlIE9UT0JPIGltYWdlIHBhdGggd2lsbCBiZSB1c2VkLiBUaGUgc2Vjb25kIHBvc3NpYmlsaXR5IGlzIHRvIGluc2VydCB0aGUgbGluayB0byB0aGUgaW1hZ2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEZBUSBhcnRpY2xlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NTUyBjb2xvciBmb3IgdGhlIHZvdGluZyByZXN1bHQuJ30gPSAn6YG456Wo57WQ5p6c5L2/55So55qEQ1NTIOmhj+iJsic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYWNoZSBUaW1lIFRvIExlYXZlIGZvciBGQVEgaXRlbXMuJ30gPSAn6Zui6ZaL5bi46KaL5ZWP6aGM6aCF55uu55qE57ep5a2Y5pmC6ZaTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhdGVnb3J5IE1hbmFnZW1lbnQnfSA9ICfnm67pjITliIbpoZ7nrqHnkIYnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2F0ZWdvcnkgTWFuYWdlbWVudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIFByaW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgUmVsYXRlZCBBcnRpY2xlcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXN0b21lciBGQVEgUmVsYXRlZCBBcnRpY2xlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VzdG9tZXIgRkFRIFpvb20uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUSBzZWFyY2guJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1c3RvbWVyIEZBUS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVjaW1hbCBwbGFjZXMgb2YgdGhlIHZvdGluZyByZXN1bHQuJ30gPSAn6YG456Wo57WQ5p6c5bCP5pW45L2NJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgY2F0ZWdvcnkgbmFtZS4nfSA9ICfpu5joqLHnm67pjITliIbpoZ7lkI3nqLEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBsYW5ndWFnZSBmb3IgRkFRIGFydGljbGVzIG9uIHNpbmdsZSBsYW5ndWFnZSBtb2RlLid9ID0gJ+WWruS4gOiqnuiogOaooeW8j+S4i+eahOW4uOimi+WVj+mhjOaWh+eroOm7mOioseiqnuiogCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG1heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24uJ30gPQogICAgICAgICfpu5joqLHluLjopovllY/poYzmlofnq6DmqJnpoYzpoa/npLrnmoTmnIDlpKflgLwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBwcmlvcml0eSBvZiB0aWNrZXRzIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0KICAgICAgICAn562J5b6F5a+p5om55bi46KaL5ZWP6aGM5paH56ug5bel5Zau6aCQ6Kit5YSq5YWI5YC8JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdGUgZm9yIEZBUSBlbnRyeS4nfSA9ICfluLjopovllY/poYzmop3nm67poJDoqK3ni4DmhYsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0ZSBvZiB0aWNrZXRzIGZvciB0aGUgYXBwcm92YWwgb2YgRkFRIGFydGljbGVzLid9ID0gJ+etieW+heWvqeaJueW4uOimi+WVj+mhjOaWh+eroOeahOW3peWWrum7mOioseeLgOaFiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHR5cGUgb2YgdGlja2V0cyBmb3IgdGhlIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlcy4nfSA9ICfnrYnlvoXlr6nmibnluLjopovllY/poYzmlofnq6DnmoTlt6Xllq7pu5joqLHpoZ7liKUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCB2YWx1ZSBmb3IgdGhlIEFjdGlvbiBwYXJhbWV0ZXIgZm9yIHRoZSBwdWJsaWMgZnJvbnRlbmQuIFRoZSBBY3Rpb24gcGFyYW1ldGVyIGlzIHVzZWQgaW4gdGhlIHNjcmlwdHMgb2YgdGhlIHN5c3RlbS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmUgQWN0aW9ucyB3aGVyZSBhIHNldHRpbmdzIGJ1dHRvbiBpcyBhdmFpbGFibGUgaW4gdGhlIGxpbmtlZCBvYmplY3RzIHdpZGdldCAoTGlua09iamVjdDo6Vmlld01vZGUgPSAiY29tcGxleCIpLiBQbGVhc2Ugbm90ZSB0aGF0IHRoZXNlIEFjdGlvbnMgbXVzdCBoYXZlIHJlZ2lzdGVyZWQgdGhlIGZvbGxvd2luZyBKUyBhbmQgQ1NTIGZpbGVzOiBDb3JlLkFsbG9jYXRpb25MaXN0LmNzcywgQ29yZS5VSS5BbGxvY2F0aW9uTGlzdC5qcywgQ29yZS5VSS5UYWJsZS5Tb3J0LmpzLCBDb3JlLkFnZW50LlRhYmxlRmlsdGVycy5qcyBhbmQgQ29yZS5BZ2VudC5MaW5rT2JqZWN0LmpzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSBpZiB0aGUgRkFRIHRpdGxlIHNob3VsZCBiZSBjb25jYXRlbmF0ZWQgdG8gYXJ0aWNsZSBzdWJqZWN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZSB3aGljaCBjb2x1bW5zIGFyZSBzaG93biBpbiB0aGUgbGlua2VkIEZBUXMgd2lkZ2V0IChMaW5rT2JqZWN0OjpWaWV3TW9kZSA9ICJjb21wbGV4IikuIE5vdGU6IE9ubHkgRkFRIGF0dHJpYnV0ZXMgYW5kIGR5bmFtaWMgZmllbGRzIChEeW5hbWljRmllbGRfTmFtZVgpIGFyZSBhbGxvd2VkIGZvciBEZWZhdWx0Q29sdW1ucy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgRkFRIGpvdXJuYWwuJ30gPQogICAgICAgICfoqK3lrprpoa/npLrluLjopovllY/poYzml6XoqozlsI/mqqLplrHmqKHlvI/nmoTmpoLms4HmqKHntYQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIEZBUSBsaXN0Lid9ID0KICAgICAgICAn6Kit5a6a6aGv56S65bi46KaL5ZWP6aGM5YiX6KGo5bCP5qqi6Zax5qih5byP55qE5qaC5rOB5qih57WEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIGF0dHJpYnV0ZSBmb3IgRkFRIHNvcnRpbmcgaW4gYSBGQVEgc2VhcmNoIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgYXR0cmlidXRlIGZvciBGQVEgc29ydGluZyBpbiBhIEZBUSBzZWFyY2ggb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIGEgRkFRIHNlYXJjaCBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIHRoZSBGQVEgRXhwbG9yZXIgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIHRoZSBGQVEgRXhwbG9yZXIgb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBhdHRyaWJ1dGUgZm9yIEZBUSBzb3J0aW5nIGluIHRoZSBGQVEgRXhwbG9yZXIgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGFnZW50IGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuIFVwOiBvbGRlc3Qgb24gdG9wLiBEb3duOiBsYXRlc3Qgb24gdG9wLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgRkFRIG9yZGVyIG9mIGEgc2VhcmNoIHJlc3VsdCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IEZBUSBvcmRlciBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4gVXA6IG9sZGVzdCBvbiB0b3AuIERvd246IGxhdGVzdCBvbiB0b3AuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBGQVEgb3JkZXIgb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLiBVcDogb2xkZXN0IG9uIHRvcC4gRG93bjogbGF0ZXN0IG9uIHRvcC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IHNob3duIEZBUSBzZWFyY2ggYXR0cmlidXRlIGZvciBGQVEgc2VhcmNoIHNjcmVlbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBoZWlnaHQgZm9yIHRoZSByaWNoIHRleHQgZWRpdG9yIGNvbXBvbmVudCBmb3IgdGhpcyBzY3JlZW4uIEVudGVyIG51bWJlciAocGl4ZWxzKSBvciBwZXJjZW50IHZhbHVlIChyZWxhdGl2ZSkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgaW5mb3JtYXRpb24gdG8gYmUgaW5zZXJ0ZWQgaW4gYSBGQVEgYmFzZWQgVGlja2V0LiAiRnVsbCBGQVEiIGluY2x1ZGVzIHRleHQsIGF0dGFjaG1lbnRzIGFuZCBpbmxpbmUgaW1hZ2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBkYXNoYm9hcmQgYmFja2VuZC4gIkxpbWl0IiBkZWZpbmVzIHRoZSBudW1iZXIgb2YgZW50cmllcyBkaXNwbGF5ZWQgYnkgZGVmYXVsdC4gIkdyb3VwIiBpcyB1c2VkIHRvIHJlc3RyaWN0IGFjY2VzcyB0byB0aGUgcGx1Z2luIChlLiBnLiBHcm91cDogYWRtaW47Z3JvdXAxO2dyb3VwMjspLiAiRGVmYXVsdCIgaW5kaWNhdGVzIGlmIHRoZSBwbHVnaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIGlmIHRoZSB1c2VyIG5lZWRzIHRvIGVuYWJsZSBpdCBtYW51YWxseS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBGQVEgRXhwbG9yZXIuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgRkFRIGpvdXJuYWwuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgRkFRIHNlYXJjaC4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHdoZXJlIHRoZSBcJ0luc2VydCBGQVFcJyBsaW5rIHdpbGwgYmUgZGlzcGxheWVkLid9ID0gJ+ioreWumiBcJ+aPkuWFpeW4uOimi+WVj+mhjFwnIOmhr+ekuuS9jee9ric7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbml0aW9uIG9mIEZBUSBpdGVtIGZyZWUgdGV4dCBmaWVsZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIHRoaXMgRkFRJ30gPSAn5Yiq6Zmk5q2k5bi46KaL5ZWP6aGMJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgYWRkIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgZWRpdCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIG92ZXJ2aWV3IHNjcmVlbiBvZiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgb3ZlcnZpZXcgc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgcHJpbnQgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBwcmludCBzY3JlZW4gb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHByaW50IHNjcmVlbiBvZiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHNlYXJjaCBzY3JlZW4gb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHNlYXJjaCBzY3JlZW4gb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHNlYXJjaCBzY3JlZW4gb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSBzbWFsbCBmb3JtYXQgb3ZlcnZpZXcgc2NyZWVuIG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIEZBUSB6b29tIHNjcmVlbiBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0R5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBGQVEgem9vbSBzY3JlZW4gb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgRkFRIHpvb20gc2NyZWVuIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGhpcyBGQVEnfSA9ICfnt6jovK/mraTluLjopovllY/poYwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIG11bHRpcGxlIGxhbmd1YWdlcyBvbiBGQVEgbW9kdWxlLid9ID0gJ+WVk+eUqOW4uOimi+WVj+mhjOaooee1hOWkmueoruiqnuiogCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgc2VydmljZSBhc3NpZ25tZW50IGZvciBGQVFzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgdGhlIHJlbGF0ZWQgYXJ0aWNsZSBmZWF0dXJlIGZvciB0aGUgY3VzdG9tZXIgZnJvbnRlbmQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIHZvdGluZyBtZWNoYW5pc20gb24gRkFRIG1vZHVsZS4nfSA9ICfllZPnlKjluLjopovllY/poYzmqKHntYTmipXnpajmqZ/liLYnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXhwbG9yZXInfSA9ICfngI/opr3lmagnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEFKQVggUmVzcG9uZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBSkFYIFJlc3BvbmRlciBmb3IgUmljaHRleHQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcmVhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBBcmVhLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgRGVsZXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGQVEgRWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIEhpc3RvcnkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBKb3VybmFsIE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICfluLjopovllY/poYzml6XoqozmpoLms4EgIuWwjyIg5qih5byP6ZmQ5Yi2JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAn5bi46KaL5ZWP6aGM5qaC5rOBICLlsI8i5qih5byP6ZmQ5Yi2JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZBUSBQcmludC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRkFRIHNlYXJjaCBiYWNrZW5kIHJvdXRlciBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWVsZDQnfSA9ICfmrITkvY00JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpZWxkNSd9ID0gJ+ashOS9jTUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnVsbCBGQVEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXAgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPSAn5bi46KaL5ZWP6aGM5paH56ug5a+p5om555So5oi257WEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hpc3Rvcnkgb2YgdGhpcyBGQVEnfSA9ICfmraTluLjopovllY/poYzmrbflj7InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgYWN0aXZhdGVkLCBGQVEgYXJ0aWNsZXMgb2Ygc3RhdHVzIHR5cGUgaW50ZXJuYWwgYXJlIGFsc28gdGFrZW4gaW50byBhY2NvdW50IGZvciB0aGUgYXBwcm92YWwgcHJvY2Vzcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNsdWRlIGludGVybmFsIGZpZWxkcyBvbiBhIEZBUSBiYXNlZCBUaWNrZXQuJ30gPSAn5bi46KaL5ZWP6aGM54K65pys55qE5bel5Zau5YyF5ZCr55qE5YWn6YOo5qyE5L2NJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY2x1ZGUgdGhlIG5hbWUgb2YgZWFjaCBmaWVsZCBpbiBhIEZBUSBiYXNlZCBUaWNrZXQuJ30gPSAn5bi46KaL5ZWP6aGM54K65pys55qE5bel5Zau5YyF5ZCr55qE5q+P5LiA5qyE5L2N5ZCN56ixJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludGVyZmFjZXMgd2hlcmUgdGhlIHF1aWNrIHNlYXJjaCBzaG91bGQgYmUgc2hvd24uJ30gPSAn6aGv56S65b+r6YCf5pCc5bCL55qE5LuL6Z2iJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0pvdXJuYWwnfSA9ICfml6XoqownOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFuZ3VhZ2UgTWFuYWdlbWVudCd9ID0gJ+iqnuiogOeuoeeQhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYW5ndWFnZSBNYW5hZ2VtZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW1pdCBmb3IgdGhlIHNlYXJjaCB0byBidWlsZCB0aGUga2V5d29yZCBGQVEgYXJ0aWNsZSBsaXN0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaW5rIGFub3RoZXIgb2JqZWN0IHRvIHRoaXMgRkFRIGl0ZW0nfSA9ICfpgKPntZDlhbbku5bnianku7bliLDmraTluLjopovllY/poYznianku7YnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBxdWV1ZSBuYW1lcyBmb3Igd2hpY2ggdGhlIHJlbGF0ZWQgYXJ0aWNsZSBmZWF0dXJlIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlzdCBvZiBzdGF0ZSB0eXBlcyB3aGljaCBjYW4gYmUgdXNlZCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5Zyo5pyN5YuZ5ZOh5LuL6Z2i5Y+v5L2/55So55qE54uA5oWL5YiG6aGe5YiX6KGoJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpc3Qgb2Ygc3RhdGUgdHlwZXMgd2hpY2ggY2FuIGJlIHVzZWQgaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+WcqOWuouaItuS7i+mdouWPr+S9v+eUqOeahOeLgOaFi+WIhumhnuWIl+ihqCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaXN0IG9mIHN0YXRlIHR5cGVzIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5Zyo5YWs6ZaL5LuL6Z2i5Y+v5L2/55So55qE54uA5oWL5YiG6aGe5YiX6KGoJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xvYWRlciBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5Zyo5pyN5YuZ5ZOh5LuL6Z2i5Y+v6aGv56S65pa85bi46KaL5ZWP6aGM54CP6Ka95Zmo57WQ5p6c55qE5bi46KaL5ZWP6aGM5paH56ug5pyA5aSa5pW46YePJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBFeHBsb3JlciByZXN1bHQgb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJ+WcqOWuouaItuS7i+mdouWPr+mhr+ekuuaWvOW4uOimi+WVj+mhjOeAj+imveWZqOe1kOaenOeahOW4uOimi+WVj+mhjOaWh+eroOacgOWkp+aVuOmHjyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgcmVzdWx0IG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5Zyo5YWs6ZaL5LuL6Z2i5Y+v6aGv56S65pa85bi46KaL5ZWP6aGM54CP6Ka95Zmo57WQ5p6c55qE5bi46KaL5ZWP6aGM5paH56ug5pyA5aSn5pW46YePJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIEZBUSBqb3VybmFsIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICflnKjmnI3li5nlk6Hku4vpnaLlj6/poa/npLrmlrzluLjopovllY/poYzml6XoqoznmoTluLjopovllY/poYzmlofnq6DmnIDlpKfmlbjph48nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgcmVzdWx0IG9mIGEgc2VhcmNoIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICflnKjmnI3li5nlk6Hku4vpnaLlj6/poa/npLrmlrzmkJzlsIvntZDmnpznmoTluLjopovllY/poYzmlofnq6DmnIDlpKfmlbjph48nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgcmVzdWx0IG9mIGEgc2VhcmNoIGluIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuJ30gPQogICAgICAgICflnKjlrqLmiLbku4vpnaLlj6/poa/npLrmlrzmkJzlsIvntZDmnpznmoTluLjopovllY/poYzmlofnq6DmnIDlpKfmlbjph48nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgcmVzdWx0IG9mIGEgc2VhcmNoIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAn5Zyo5YWs6ZaL5LuL6Z2i5Y+v6aGv56S65pa85pCc5bCL57WQ5p6c55qE5bi46KaL5ZWP6aGM5paH56ug5pyA5aSn5pW46YePJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBFeHBsb3JlciBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBFeHBsb3JlciBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBFeHBsb3JlciBpbiB0aGUgcHVibGljIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIHNpemUgb2YgdGhlIHRpdGxlcyBpbiBhIEZBUSBhcnRpY2xlIHRvIGJlIHNob3duIGluIHRoZSBGQVEgU2VhcmNoIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIFNlYXJjaCBpbiB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gc2l6ZSBvZiB0aGUgdGl0bGVzIGluIGEgRkFRIGFydGljbGUgdG8gYmUgc2hvd24gaW4gdGhlIEZBUSBTZWFyY2ggaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBzaXplIG9mIHRoZSB0aXRsZXMgaW4gYSBGQVEgYXJ0aWNsZSB0byBiZSBzaG93biBpbiB0aGUgRkFRIGpvdXJuYWwgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gZ2VuZXJhdGUgSFRNTCBPcGVuU2VhcmNoIHByb2ZpbGUgZm9yIHNob3J0IEZBUSBzZWFyY2ggaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb2R1bGUgdG8gZ2VuZXJhdGUgSFRNTCBPcGVuU2VhcmNoIHByb2ZpbGUgZm9yIHNob3J0IEZBUSBzZWFyY2ggaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9kdWxlIHRvIGdlbmVyYXRlIGh0bWwgT3BlblNlYXJjaCBwcm9maWxlIGZvciBzaG9ydCBGQVEgc2VhcmNoLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBGQVEgQXJ0aWNsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IEZBUSBhcnRpY2xlcyBuZWVkIGFwcHJvdmFsIGJlZm9yZSB0aGV5IGdldCBwdWJsaXNoZWQuJ30gPSAn5paw5bi46KaL5ZWP6aGM5paH56ug55m85L2I5YmN6ZyA6KaB57aT6YGO5a+p5om5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBGQVEgRXhwbG9yZXIgb2YgdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgRkFRIEV4cGxvcmVyIG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBGQVEgYXJ0aWNsZXMgdG8gYmUgZGlzcGxheWVkIG9uIGVhY2ggcGFnZSBvZiBhIHNlYXJjaCByZXN1bHQgaW4gdGhlIGN1c3RvbWVyIGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOdW1iZXIgb2YgRkFRIGFydGljbGVzIHRvIGJlIGRpc3BsYXllZCBvbiBlYWNoIHBhZ2Ugb2YgYSBzZWFyY2ggcmVzdWx0IGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBzaG93biBpdGVtcyBpbiBsYXN0IGNoYW5nZXMuJ30gPSAn5pyA6L+R5pu05paw6aGv56S66aCF55uu5pW46YePJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBzaG93biBpdGVtcyBpbiBsYXN0IGNyZWF0ZWQuJ30gPSAn5pyA6L+R5Ym15bu66aGv56S66aCF55uu5pW46YePJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J051bWJlciBvZiBzaG93biBpdGVtcyBpbiB0aGUgdG9wIDEwIGZlYXR1cmUuJ30gPSAn6aaWMTDnr4flip/og73poa/npLrpoIXnm67mlbjph48nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3V0cHV0IGZpbHRlciB0byBhZGQgSmF2YS1zY3JpcHQgdG8gQ3VzdG9tZXJUaWNrZXRNZXNzYWdlIHNjcmVlbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdXRwdXQgbGltaXQgZm9yIHRoZSByZWxhdGVkIEZBUSBhcnRpY2xlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgRkFRIGl0ZW1zIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIEZBUSBqb3VybmFsIG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIEZBUSBpdGVtcyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBGQVEgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJpbnQgdGhpcyBGQVEnfSA9ICfliJfljbDmraTluLjopovllY/poYwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIEZBUSBQcmludC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIEZBUSBab29tLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgRkFRIHNlYXJjaC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIEZBUS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVldWUgZm9yIHRoZSBhcHByb3ZhbCBvZiBGQVEgYXJ0aWNsZXMuJ30gPSAn5bi46KaL5ZWP6aGM5paH56ug5a+p5om55L2H5YiXJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhdGVzIGZvciB2b3RpbmcuIEtleSBtdXN0IGJlIGluIHBlcmNlbnQuJ30gPSAn5oqV56Wo6KmV5YiG44CC5pW45YC85b+F6aCI54K655m+5YiG546H44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VhcmNoIEZBUSd9ID0gJ+aQnOWwi+W4uOimi+WVj+mhjCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggRkFRIFNtYWxsLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWFyY2ggRkFRLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgaG93IG1hbnkgaXRlbXMgc2hvdWxkIGJlIHNob3duIGluIEpvdXJuYWwgT3ZlcnZpZXcgIlNtYWxsIiBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBob3cgbWFueSBpdGVtcyBzaG91bGQgYmUgc2hvd24gaW4gT3ZlcnZpZXcgIlNtYWxsIiBieSBkZWZhdWx0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldCB0aGUgZGVmYXVsdCBoZWlnaHQgKGluIHBpeGVscykgb2YgaW5saW5lIEhUTUwgZmllbGRzIGluIEFnZW50RkFRWm9vbS4nfSA9CiAgICAgICAgJ+ioreWumuWcqEFnZW50RkFRWm9vbeS4reWFp+W1jEhUTUzmrITkvY3pu5joqLHpq5jluqYgKOWDj+e0oCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBkZWZhdWx0IGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gQ3VzdG9tZXJGQVFab29tIChhbmQgUHVibGljRkFRWm9vbSkuJ30gPQogICAgICAgICfoqK3lrprlnKhDdXN0b21lckZBUVpvb20gKOWPilB1YmxpY0ZBUVpvb20p5Lit5YWn5bWMSFRNTOashOS9jem7mOiosemrmOW6piAo5YOP57SgKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXQgdGhlIG1heGltdW0gaGVpZ2h0IChpbiBwaXhlbHMpIG9mIGlubGluZSBIVE1MIGZpZWxkcyBpbiBBZ2VudEZBUVpvb20uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0IHRoZSBtYXhpbXVtIGhlaWdodCAoaW4gcGl4ZWxzKSBvZiBpbmxpbmUgSFRNTCBmaWVsZHMgaW4gQ3VzdG9tZXJGQVFab29tIChhbmQgUHVibGljRkFRWm9vbSkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyAiSW5zZXJ0IEZBUSBMaW5rIiBCdXR0b24gaW4gQWdlbnRGQVFab29tU21hbGwgZm9yIHB1YmxpYyBGQVEgQXJ0aWNsZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyAiSW5zZXJ0IEZBUSBUZXh0ICYgTGluayIgLyAiSW5zZXJ0IEZ1bGwgRkFRICYgTGluayIgQnV0dG9uIGluIEFnZW50RkFRWm9vbVNtYWxsIGZvciBwdWJsaWMgRkFRIEFydGljbGVzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgIkluc2VydCBGQVEgVGV4dCIgLyAiSW5zZXJ0IEZ1bGwgRkFRIiBCdXR0b24gaW4gQWdlbnRGQVFab29tU21hbGwuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBGQVEgQXJ0aWNsZSB3aXRoIEhUTUwuJ30gPSAn5LulSFRNTOagvOW8j+mhr+ekuuW4uOimi+WVj+mhjOaWh+eroCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IEZBUSBwYXRoIHllcy9uby4nfSA9ICfpoa/npLrluLjopovllY/poYzot6/lvpEgKOaYry/lkKYpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgaW52YWxpZCBpdGVtcyBpbiB0aGUgRkFRIEV4cGxvcmVyIHJlc3VsdCBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgaXRlbXMgb2Ygc3ViY2F0ZWdvcmllcy4nfSA9ICfpoa/npLrlrZDnm67pjITliIbpoZ7poIXnm64nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBsYXN0IGNoYW5nZSBpdGVtcyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAn6aGv56S65oyH5a6a5LuL6Z2i55qE5pyA6L+R5pu05paw6aCF55uuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgbGFzdCBjcmVhdGVkIGl0ZW1zIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICfpoa/npLrmjIflrprku4vpnaLnmoTmnIDov5HlibXlu7rpoIXnm64nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyByZWxhdGVkIGFydGljbGVzIG9uIHNlcnZpY2UgY2hhbmdlIGV2ZW4gd2l0aCBlbXB0eSBzdWJqZWN0IGFuZCBib2R5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgdGhlIHN0YXJzIGZvciB0aGUgYXJ0aWNsZXMgd2l0aCBhIHJhdGluZyBlcXVhbCBvciBncmVhdGVyIGxpa2UgdGhlIGRlZmluZWQgdmFsdWUgKHNldCB2YWx1ZSBcJzBcJyB0byBkZWFjdGl2YXRlIHRoZSBvdXRwdXQpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgdG9wIDEwIGl0ZW1zIGluIGRlZmluZWQgaW50ZXJmYWNlcy4nfSA9ICfpoa/npLrmjIflrprku4vpnaLnmoTpppYxMOWAi+mgheebric7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IHZvdGluZyBpbiBkZWZpbmVkIGludGVyZmFjZXMuJ30gPSAn6aGv56S65oyH5a6a5LuL6Z2i55qE5oqV56WoJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyBsaW5raW5nIGEgRkFRIHdpdGggYW5vdGhlciBvYmplY3QgaW4gdGhlIHpvb20gdmlldyBvZiBzdWNoIEZBUSBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0aGF0IGFsbG93cyB0byBkZWxldGUgYSBGQVEgaW4gaXRzIHpvb20gdmlldyBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBhY2Nlc3MgdGhlIGhpc3Rvcnkgb2YgYSBGQVEgaW4gaXRzIHpvb20gdmlldyBvZiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3dzIGEgbGluayBpbiB0aGUgbWVudSB0byBlZGl0IGEgRkFRIGluIHRoZSBpdHMgem9vbSB2aWV3IG9mIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvd3MgYSBsaW5rIGluIHRoZSBtZW51IHRvIGdvIGJhY2sgaW4gdGhlIEZBUSB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93cyBhIGxpbmsgaW4gdGhlIG1lbnUgdG8gcHJpbnQgYSBGQVEgaW4gdGhlIGl0cyB6b29tIHZpZXcgb2YgdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTb2x1dGlvbid9ID0gJ+ino+axuuaWueahiCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTeW1wdG9tJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RleHQgT25seSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgZGVmYXVsdCBsYW5ndWFnZXMgZm9yIHRoZSByZWxhdGVkIEZBUSBhcnRpY2xlcy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgRkFRLCBlLmcuIEZBUSMsIEtCIywgTXlGQVEjLiBUaGUgZGVmYXVsdCBpcyBGQVEjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgc2V0dGluZyBkZWZpbmVzIHRoYXQgYSBcJ0ZBUVwnIG9iamVjdCBjYW4gYmUgbGlua2VkIHdpdGggb3RoZXIgXCdGQVFcJyBvYmplY3RzIHVzaW5nIHRoZSBcJ05vcm1hbFwnIGxpbmsgdHlwZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnRkFRXCcgb2JqZWN0cyB1c2luZyB0aGUgXCdQYXJlbnRDaGlsZFwnIGxpbmsgdHlwZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIHNldHRpbmcgZGVmaW5lcyB0aGF0IGEgXCdGQVFcJyBvYmplY3QgY2FuIGJlIGxpbmtlZCB3aXRoIG90aGVyIFwnVGlja2V0XCcgb2JqZWN0cyB1c2luZyB0aGUgXCdOb3JtYWxcJyBsaW5rIHR5cGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBzZXR0aW5nIGRlZmluZXMgdGhhdCBhIFwnRkFRXCcgb2JqZWN0IGNhbiBiZSBsaW5rZWQgd2l0aCBvdGhlciBcJ1RpY2tldFwnIG9iamVjdHMgdXNpbmcgdGhlIFwnUGFyZW50Q2hpbGRcJyBsaW5rIHR5cGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IGJvZHkgZm9yIGFwcHJvdmFsIG9mIEZBUSBhcnRpY2xlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgc3ViamVjdCBmb3IgYXBwcm92YWwgb2YgRkFRIGFydGljbGUuIFBlcm1pdHRlZCBub3RpZmljYXRpb24gdGFncyBhcmUgPE9UT0JPX0ZBUV9OVU1CRVI+LCA8T1RPQk9fRkFRX0NBVEVHT1JZSUQ+LCA8T1RPQk9fRkFRX0lURU1JRD4+IDxPVE9CT19GQVFfVElUTEU+IGFuZCA8T1RPQk9fRkFRX1NUQVRFSUQ+Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rvb2xiYXIgSXRlbSBmb3IgYSBzaG9ydGN1dC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZXh0ZXJuYWwgKGN1c3RvbWVyKSd9ID0gJ+WklumDqCAo5a6i5oi2KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydpbnRlcm5hbCAoYWdlbnQpJ30gPSAn5YWn6YOoICjmnI3li5nlk6EpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J3B1YmxpYyAoYWxsKSd9ID0gJ+WFrOmWiyAgKOWFqOmDqCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsncHVibGljIChwdWJsaWMpJ30gPSAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnTm8nLAogICAgJ09rJywKICAgICdTZXR0aW5ncycsCiAgICAnU3VibWl0JywKICAgICdUaGlzIG1pZ2h0IGJlIGhlbHBmdWwnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK</File>
        <File Location="Kernel/Modules/AgentFAQAdd.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWdlbnRGQVFBZGQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpMYW5ndWFnZSAgICAgICAgICAgICAgcXcoVHJhbnNsYXRhYmxlKTsKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgQWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdC4KICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBHZXQgY29uZmlnIG9mIGZyb250ZW5kIG1vZHVsZS4KICAgICRTZWxmLT57Q29uZmlnfSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgiRkFROjpGcm9udGVuZDo6JFNlbGYtPntBY3Rpb259IikgfHwgJyc7CgogICAgIyBHZXQgdGhlIGR5bmFtaWMgZmllbGRzIGZvciB0aGlzIHNjcmVlbi4KICAgIG15ICREeW5hbWljRmllbGRMaXN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpLT5EeW5hbWljRmllbGRMaXN0R2V0KAogICAgICAgIFZhbGlkICAgICAgID0+IDEsCiAgICAgICAgT2JqZWN0VHlwZSAgPT4gJ0ZBUScsCiAgICAgICAgRmllbGRGaWx0ZXIgPT4gJFNlbGYtPntDb25maWd9LT57RHluYW1pY0ZpZWxkfSB8fCB7fSwKICAgICk7CgogICAgJFNlbGYtPntEeW5hbWljRmllbGR9ID0ge307CgogICAgIyBjcmVhdGUgZHluYW1pYyBmaWVsZCBoYXNoIGFuZCBkZWZpbml0aW9uCiAgICBEWU5BTUlDRklFTEQ6CiAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7ICREeW5hbWljRmllbGRMaXN0IC8vIFtdIH0gKSB7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgdW5sZXNzIElzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICBwdXNoICRTZWxmLT57TWFza0RlZmluaXRpb259LT5AKiwgewogICAgICAgICAgICBERiAgICAgICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9LAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gJFNlbGYtPntDb25maWd9LT57RHluYW1pY0ZpZWxkfXsgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0gPT0gMiA/IDEgOiAwLAogICAgICAgIH07CgogICAgICAgIGlmICggJFNlbGYtPntDb25maWd9LT57RHluYW1pY0ZpZWxkfXsgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0gPT0gMiApIHsKICAgICAgICAgICAgJER5bmFtaWNGaWVsZENvbmZpZy0+e01hbmRhdG9yeX0gPSAxOwogICAgICAgIH0KCiAgICAgICAgJFNlbGYtPntEeW5hbWljRmllbGR9eyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSA9ICREeW5hbWljRmllbGRDb25maWc7CiAgICB9CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIFBlcm1pc3Npb24gY2hlY2suCiAgICBpZiAoICEkU2VsZi0+e0FjY2Vzc1J3fSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Tm9QZXJtaXNzaW9uKAogICAgICAgICAgICBNZXNzYWdlICAgID0+IFRyYW5zbGF0YWJsZSgnWW91IG5lZWQgcncgcGVybWlzc2lvbiEnKSwKICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICApOwogICAgfQoKICAgIG15ICRQYXJhbU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKCiAgICAjIEdldCBwYXJhbWV0ZXJzIGZyb20gd2ViIHJlcXVlc3QuCiAgICBteSAlR2V0UGFyYW07CiAgICBmb3IgbXkgJFBhcmFtTmFtZSAoCiAgICAgICAgcXcoVGl0bGUgQ2F0ZWdvcnlJRCBTdGF0ZUlEIExhbmd1YWdlSUQgVmFsaWRJRCBLZXl3b3JkcyBBcHByb3ZlZCBGaWVsZDEgRmllbGQyIEZpZWxkMyBGaWVsZDQgRmllbGQ1IEZpZWxkNikKICAgICAgICApCiAgICB7CiAgICAgICAgJEdldFBhcmFteyRQYXJhbU5hbWV9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtTmFtZSApOwogICAgfQoKICAgIG15ICRGQVFPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RkFRJyk7CgogICAgIyBHZXQgY2F0ZWdvcmllcyAod2l0aCBjYXRlZ29yeSBsb25nIG5hbWVzKSB3aGVyZSB1c2VyIGhhcyByaWdodHMuCiAgICBteSAkVXNlckNhdGVnb3JpZXNMb25nTmFtZXMgPSAkRkFRT2JqZWN0LT5HZXRVc2VyQ2F0ZWdvcmllc0xvbmdOYW1lcygKICAgICAgICBUeXBlICAgPT4gJ3J3JywKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIENoZWNrIHRoYXQgdGhlcmUgYXJlIGNhdGVnb3JpZXMgYXZhaWxhYmxlIGZvciB0aGlzIHVzZXIuCiAgICBpZiAoCiAgICAgICAgISRVc2VyQ2F0ZWdvcmllc0xvbmdOYW1lcwogICAgICAgIHx8IHJlZiAkVXNlckNhdGVnb3JpZXNMb25nTmFtZXMgbmUgJ0hBU0gnCiAgICAgICAgfHwgISV7JFVzZXJDYXRlZ29yaWVzTG9uZ05hbWVzfQogICAgICAgICkKICAgIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdObyBjYXRlZ29yaWVzIGZvdW5kIHdoZXJlIHVzZXIgaGFzIHJlYWQvd3JpdGUgcGVybWlzc2lvbnMhJyksCiAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICApOwogICAgfQoKICAgICMgR2V0IGR5bmFtaWMgZmllbGQgdmFsdWVzIGZvcm0gaHR0cCByZXF1ZXN0LgogICAgbXkgJUR5bmFtaWNGaWVsZFZhbHVlczsKCiAgICBteSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKTsKCiAgICBEWU5BTUlDRklFTEQ6CiAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIHZhbHVlcyAkU2VsZi0+e0R5bmFtaWNGaWVsZH0tPiUqICkgewoKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CgogICAgICAgICMgRXh0cmFjdCB0aGUgZHluYW1pYyBmaWVsZCB2YWx1ZSBmb3JtIHRoZSB3ZWIgcmVxdWVzdC4KICAgICAgICAkRHluYW1pY0ZpZWxkVmFsdWVzeyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5FZGl0RmllbGRWYWx1ZUdldCgKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgIFBhcmFtT2JqZWN0ICAgICAgICA9PiAkUGFyYW1PYmplY3QsCiAgICAgICAgICAgIExheW91dE9iamVjdCAgICAgICA9PiAkTGF5b3V0T2JqZWN0LAogICAgICAgICk7CiAgICB9CgogICAgbXkgJFVwbG9hZENhY2hlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6VXBsb2FkQ2FjaGUnKTsKCiAgICAjIGdldCBmb3JtIGlkCiAgICBteSAkRm9ybUlEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6Rm9ybUNhY2hlJyktPlByZXBhcmVGb3JtSUQoCiAgICAgICAgUGFyYW1PYmplY3QgID0+ICRQYXJhbU9iamVjdCwKICAgICAgICBMYXlvdXRPYmplY3QgPT4gJExheW91dE9iamVjdCwKICAgICk7CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBzZXQgY29udGVudCB0eXBlCiAgICBteSAkQ29udGVudFR5cGUgPSAndGV4dC9wbGFpbic7CiAgICBpZiAoICRMYXlvdXRPYmplY3QtPntCcm93c2VyUmljaFRleHR9ICYmICRDb25maWdPYmplY3QtPkdldCgnRkFROjpJdGVtOjpIVE1MJykgKSB7CiAgICAgICAgJENvbnRlbnRUeXBlID0gJ3RleHQvaHRtbCc7CiAgICB9CgogICAgbXkgJFF1ZXVlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlF1ZXVlJyk7CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBTaG93IHRoZSBGQVEgYWRkIHNjcmVlbi4KICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGlmICggISRTZWxmLT57U3ViYWN0aW9ufSApIHsKCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwoKICAgICAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgnRkFROjpBcHByb3ZhbFJlcXVpcmVkJykgKSB7CgogICAgICAgICAgICAjIEdldCBBcHByb3ZhbCBxdWV1ZSBuYW1lLgogICAgICAgICAgICBteSAkQXBwcm92YWxRdWV1ZSA9ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpBcHByb3ZhbFF1ZXVlJykgfHwgJyc7CgogICAgICAgICAgICAjIENoZWNrIGlmIEFwcHJvdmFsIHF1ZXVlIGV4aXN0cy4KICAgICAgICAgICAgbXkgJEFwcHJvdmFsUXVldWVJRCA9ICRRdWV1ZU9iamVjdC0+UXVldWVMb29rdXAoCiAgICAgICAgICAgICAgICBRdWV1ZSA9PiAkQXBwcm92YWxRdWV1ZSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgU2hvdyBub3RpZmljYXRpb24gaWYgQXBwcm92YWwgcXVldWUgZG9lcyBub3QgZXhpc3RzLgogICAgICAgICAgICBpZiAoICEkQXBwcm92YWxRdWV1ZUlEICkgewogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ0Vycm9yJywKICAgICAgICAgICAgICAgICAgICBJbmZvICAgICA9PiAiRkFRIEFwcHJvdmFsIGlzIGVuYWJsZWQgYnV0IHF1ZXVlICckQXBwcm92YWxRdWV1ZScgZG9lcyBub3QgZXhpc3RzIiwKICAgICAgICAgICAgICAgICAgICBMaW5rICAgICA9PiAkTGF5b3V0T2JqZWN0LT57QmFzZWxpbmt9CiAgICAgICAgICAgICAgICAgICAgICAgIC4gJ0FjdGlvbj1BZG1pblN5c3RlbUNvbmZpZ3VyYXRpb247U3ViYWN0aW9uPVZpZXdDdXN0b21Hcm91cDtOYW1lcz1GQVE6OkFwcHJvdmFsUXVldWUnLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgJE91dHB1dCAuPSAkU2VsZi0+X01hc2tOZXcoCiAgICAgICAgICAgIEZvcm1JRCAgICAgICAgICAgICAgICAgID0+ICRGb3JtSUQsCiAgICAgICAgICAgIFVzZXJDYXRlZ29yaWVzTG9uZ05hbWVzID0+ICRVc2VyQ2F0ZWdvcmllc0xvbmdOYW1lcywKICAgICAgICAgICAgRHluYW1pY0ZpZWxkICAgICAgICAgICAgPT4gXCVEeW5hbWljRmllbGRWYWx1ZXMsCgogICAgICAgICAgICAjIExhc3Qgdmlld2VkIGNhdGVnb3J5IGZyb20gc2Vzc2lvbiAod3JpdHRlbiBieSBGQVEgZXhwbG9yZXIpLgogICAgICAgICAgICBDYXRlZ29yeUlEICA9PiAkU2VsZi0+e1Nlc3Npb259e0xhc3RWaWV3ZWRDYXRlZ29yeX0sCiAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICRDb250ZW50VHlwZSwKICAgICAgICApOwoKICAgICAgICAjIGZvb3RlcgogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgU2F2ZSB0aGUgRkFRLgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ1NhdmUnICkgewoKICAgICAgICAjIENoYWxsZW5nZSB0b2tlbiBjaGVjayBmb3Igd3JpdGUgYWN0aW9uLgogICAgICAgICRMYXlvdXRPYmplY3QtPkNoYWxsZW5nZVRva2VuQ2hlY2soKTsKCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwoKICAgICAgICBteSAlRXJyb3I7CiAgICAgICAgZm9yIG15ICRQYXJhbU5hbWUgKHF3KFRpdGxlIENhdGVnb3J5SUQpKSB7CgogICAgICAgICAgICAjIElmIHJlcXVpcmVkIGZpZWxkIGlzIG5vdCBnaXZlbiwgYWRkIHNlcnZlciBlcnJvciBjbGFzcy4KICAgICAgICAgICAgaWYgKCAhJEdldFBhcmFteyRQYXJhbU5hbWV9ICkgewogICAgICAgICAgICAgICAgJEVycm9yeyAkUGFyYW1OYW1lIC4gJ1NlcnZlckVycm9yJyB9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6U2VydmljZScpICkgewogICAgICAgICAgICBteSAkUGFyYW1PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CgogICAgICAgICAgICAjIGdldCBhbGwgc2VydmljZXMKICAgICAgICAgICAgbXkgJVNlcnZpY2VMaXN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlNlcnZpY2UnKS0+U2VydmljZUxpc3QoCiAgICAgICAgICAgICAgICBLZWVwQ2hpbGRyZW4gPT4gJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OlNlcnZpY2U6OktlZXBDaGlsZHJlbicpIC8vIDAsCiAgICAgICAgICAgICAgICBWYWxpZCAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBteSBAU2VydmljZUlEczsKICAgICAgICAgICAgaWYgKCAkUGFyYW1PYmplY3QtPkdldEFycmF5KCBQYXJhbSA9PiAnU2VydmljZUlEJyApICkgewogICAgICAgICAgICAgICAgQFNlcnZpY2VJRHMgPSAkUGFyYW1PYmplY3QtPkdldEFycmF5KCBQYXJhbSA9PiAnU2VydmljZUlEJyApOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRHZXRQYXJhbXtTZXJ2aWNlSUR9ICAgPSBcQFNlcnZpY2VJRHM7CiAgICAgICAgICAgICRHZXRQYXJhbXtTZXJ2aWNlTGlzdH0gPSBcJVNlcnZpY2VMaXN0OwogICAgICAgIH0KCiAgICAgICAgIyBzdG9yZSBkeW5hbWljIGZpZWxkIHZhbGlkYXRpb24gcmVzdWx0cwogICAgICAgIG15ICVEeW5hbWljRmllbGRWYWxpZGF0aW9uUmVzdWx0OwoKICAgICAgICBEWU5BTUlDRklFTEQ6CiAgICAgICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCB2YWx1ZXMgJFNlbGYtPntEeW5hbWljRmllbGR9LT4lKiApIHsKICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICAgICAgbXkgJFZhbGlkYXRpb25SZXN1bHQgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+RWRpdEZpZWxkVmFsdWVWYWxpZGF0ZSgKICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICAgICAgUGFyYW1PYmplY3QgICAgICAgID0+ICRQYXJhbU9iamVjdCwKICAgICAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PgogICAgICAgICAgICAgICAgICAgICRTZWxmLT57Q29uZmlnfS0+e0R5bmFtaWNGaWVsZH0tPnsgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0gPT0gMiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCRWYWxpZGF0aW9uUmVzdWx0KSApIHsKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgJ0NvdWxkIG5vdCBwZXJmb3JtIHZhbGlkYXRpb24gb24gZmllbGQgJXMhJywKICAgICAgICAgICAgICAgICAgICAgICAgJER5bmFtaWNGaWVsZENvbmZpZy0+e0xhYmVsfSwKICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgUHJvcGFnYXRlIHZhbGlkYXRpb24gZXJyb3IgdG8gdGhlIEVycm9yIHZhcmlhYmxlIHRvIGJlIGRldGVjdGVkIGJ5IHRoZSBmcm9udGVuZC4KICAgICAgICAgICAgaWYgKCAkVmFsaWRhdGlvblJlc3VsdC0+e1NlcnZlckVycm9yfSApIHsKICAgICAgICAgICAgICAgICRFcnJvcnsgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0gICAgICAgICAgICAgICAgICAgICAgICA9ICcgU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgJER5bmFtaWNGaWVsZFZhbGlkYXRpb25SZXN1bHR7ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9ID0gJFZhbGlkYXRpb25SZXN1bHQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgU2VuZCBzZXJ2ZXIgZXJyb3IgaWYgYW55IHJlcXVpcmVkIHBhcmFtZXRlciBpcyBtaXNzaW5nLgogICAgICAgIGlmICglRXJyb3IpIHsKCiAgICAgICAgICAgICMgR2V0IGFsbCBhdHRhY2htZW50cyBtZXRhIGRhdGEuCiAgICAgICAgICAgIG15IEBBdHRhY2htZW50cyA9ICRVcGxvYWRDYWNoZU9iamVjdC0+Rm9ybUlER2V0QWxsRmlsZXNNZXRhKAogICAgICAgICAgICAgICAgRm9ybUlEID0+ICRGb3JtSUQsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgnRkFROjpBcHByb3ZhbFJlcXVpcmVkJykgKSB7CgogICAgICAgICAgICAgICAgbXkgJEFwcHJvdmFsUXVldWUgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6QXBwcm92YWxRdWV1ZScpIHx8ICcnOwoKICAgICAgICAgICAgICAgICMgQ2hlY2sgaWYgQXBwcm92YWwgcXVldWUgZXhpc3RzLgogICAgICAgICAgICAgICAgbXkgJEFwcHJvdmFsUXVldWVJRCA9ICRRdWV1ZU9iamVjdC0+UXVldWVMb29rdXAoCiAgICAgICAgICAgICAgICAgICAgUXVldWUgPT4gJEFwcHJvdmFsUXVldWUsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgU2hvdyBub3RpZmljYXRpb24gaWYgQXBwcm92YWwgcXVldWUgZG9lcyBub3QgZXhpc3RzLgogICAgICAgICAgICAgICAgaWYgKCAhJEFwcHJvdmFsUXVldWVJRCApIHsKICAgICAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ0Vycm9yJywKICAgICAgICAgICAgICAgICAgICAgICAgSW5mbyAgICAgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGQVEgQXBwcm92YWwgaXMgZW5hYmxlZCBidXQgcXVldWUgJyRBcHByb3ZhbFF1ZXVlJyBkb2VzIG5vdCBleGlzdHMiLAogICAgICAgICAgICAgICAgICAgICAgICBMaW5rID0+ICRMYXlvdXRPYmplY3QtPntCYXNlbGlua30KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJ0FjdGlvbj1BZG1pblN5c3RlbUNvbmZpZ3VyYXRpb247U3ViYWN0aW9uPVZpZXdDdXN0b21Hcm91cDtOYW1lcz1GQVE6OkFwcHJvdmFsUXVldWUnLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRPdXRwdXQgLj0gJFNlbGYtPl9NYXNrTmV3KAogICAgICAgICAgICAgICAgVXNlckNhdGVnb3JpZXNMb25nTmFtZXMgPT4gJFVzZXJDYXRlZ29yaWVzTG9uZ05hbWVzLAogICAgICAgICAgICAgICAgQXR0YWNobWVudHMgICAgICAgICAgICAgPT4gXEBBdHRhY2htZW50cywKICAgICAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgICAgICVFcnJvciwKICAgICAgICAgICAgICAgIEZvcm1JRCAgICAgICA9PiAkRm9ybUlELAogICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkID0+IFwlRHluYW1pY0ZpZWxkVmFsdWVzLAogICAgICAgICAgICAgICAgREZFcnJvcnMgICAgID0+IFwlRHluYW1pY0ZpZWxkVmFsaWRhdGlvblJlc3VsdCwKICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlICA9PiAkQ29udGVudFR5cGUsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgICAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICAgICAgfQoKICAgICAgICAjIEFkZCB0aGUgbmV3IEZBUSBpdGVtLgogICAgICAgIG15ICRJdGVtSUQgPSAkRkFRT2JqZWN0LT5GQVFBZGQoCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJENvbnRlbnRUeXBlLAogICAgICAgICAgICBVc2VySUQgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBTaG93IGVycm9yIGlmIEZBUSBpdGVtIGNvdWxkIG5vdCBiZSBhZGRlZC4KICAgICAgICBpZiAoICEkSXRlbUlEICkgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oKTsKICAgICAgICB9CgogICAgICAgICMgR2V0IGFsbCBhdHRhY2htZW50cyBmcm9tIHVwbG9hZCBjYWNoZS4KICAgICAgICBteSBAQXR0YWNobWVudHMgPSAkVXBsb2FkQ2FjaGVPYmplY3QtPkZvcm1JREdldEFsbEZpbGVzRGF0YSgKICAgICAgICAgICAgRm9ybUlEID0+ICRGb3JtSUQsCiAgICAgICAgKTsKCiAgICAgICAgIyBXcml0ZSBhdHRhY2htZW50cwogICAgICAgIEFUVEFDSE1FTlQ6CiAgICAgICAgZm9yIG15ICRBdHRhY2htZW50IChAQXR0YWNobWVudHMpIHsKCiAgICAgICAgICAgICMgQ2hlY2sgaWYgYXR0YWNobWVudCBpcyBhbiBpbmxpbmUgYXR0YWNobWVudC4KICAgICAgICAgICAgbXkgJElubGluZSA9IDA7CiAgICAgICAgICAgIGlmICggJEF0dGFjaG1lbnQtPntDb250ZW50SUR9ICkgewoKICAgICAgICAgICAgICAgICMgUmVtZW1iZXIgdGhhdCBpdCBpcyBpbmxpbmUuCiAgICAgICAgICAgICAgICAkSW5saW5lID0gMTsKCiAgICAgICAgICAgICAgICAjIFJlbWVtYmVyIGlmIHRoaXMgaW5saW5lIGF0dGFjaG1lbnQgaXMgdXNlZCBpbiBhbnkgRkFRIGFydGljbGUuCiAgICAgICAgICAgICAgICBteSAkQ29udGVudElERm91bmQ7CgogICAgICAgICAgICAgICAgIyBDaGVjayBhbGwgZmllbGRzIGZvciBjb250ZW50LWlkLgogICAgICAgICAgICAgICAgRklFTEQ6CiAgICAgICAgICAgICAgICBmb3IgbXkgJE51bWJlciAoIDEgLi4gNiApIHsKCiAgICAgICAgICAgICAgICAgICAgbXkgJEZpZWxkID0gJEdldFBhcmFteyAnRmllbGQnIC4gJE51bWJlciB9OwoKICAgICAgICAgICAgICAgICAgICAjIFNraXAgZW1wdHkgZmllbGRzLgogICAgICAgICAgICAgICAgICAgIG5leHQgRklFTEQgaWYgISRGaWVsZDsKCiAgICAgICAgICAgICAgICAgICAgIyBTa2lwIGZpZWxkcyB0aGF0IGRvIG5vdCBjb250YWluIHRoZSBjb250ZW50LWlkLgogICAgICAgICAgICAgICAgICAgIG5leHQgRklFTEQgaWYgJEZpZWxkICF+IG17ICRBdHRhY2htZW50LT57Q29udGVudElEfSB9eG1zOwoKICAgICAgICAgICAgICAgICAgICAkQ29udGVudElERm91bmQgPSAxOwogICAgICAgICAgICAgICAgICAgIGxhc3QgRklFTEQ7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBXZSBkbyBub3Qgd2FudCB0byBrZWVwIHRoaXMgYXR0YWNobWVudCwgYmVjYXVzZSBpdCB3YXMgZGVsZXRlZCBpbiB0aGUgcmljaC10ZXh0IGVkaXRvcgogICAgICAgICAgICAgICAgbmV4dCBBVFRBQ0hNRU5UIGlmICEkQ29udGVudElERm91bmQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG15ICRGaWxlSUQgPSAkRkFRT2JqZWN0LT5BdHRhY2htZW50QWRkKAogICAgICAgICAgICAgICAgJXskQXR0YWNobWVudH0sCiAgICAgICAgICAgICAgICBJdGVtSUQgPT4gJEl0ZW1JRCwKICAgICAgICAgICAgICAgIElubGluZSA9PiAkSW5saW5lLAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaWYgKCAhJEZpbGVJRCApIHsKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5GYXRhbEVycm9yKCk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG5leHQgQVRUQUNITUVOVCBpZiAhJElubGluZTsKICAgICAgICAgICAgbmV4dCBBVFRBQ0hNRU5UIGlmICEkTGF5b3V0T2JqZWN0LT57QnJvd3NlclJpY2hUZXh0fTsKCiAgICAgICAgICAgICMgUmV3cml0ZSB0aGUgVVJMcyBvZiB0aGUgaW5saW5lIGltYWdlcyBmb3IgdGhlIHVwbG9hZGVkIHBpY3R1cmVzLgogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRGQVFPYmplY3QtPkZBUUlubGluZUF0dGFjaG1lbnRVUkxVcGRhdGUoCiAgICAgICAgICAgICAgICBBdHRhY2htZW50ID0+ICRBdHRhY2htZW50LAogICAgICAgICAgICAgICAgRm9ybUlEICAgICA9PiAkRm9ybUlELAogICAgICAgICAgICAgICAgSXRlbUlEICAgICA9PiAkSXRlbUlELAogICAgICAgICAgICAgICAgRmlsZUlEICAgICA9PiAkRmlsZUlELAogICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGlmICggISRTdWNjZXNzICkgewogICAgICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiQ291bGQgbm90IHVwZGF0ZSB0aGUgaW5saW5lIGltYWdlIFVSTHMgZm9yIEZBUSBJdGVtIyAnJEl0ZW1JRCchIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgcmVtb3ZlIGFsbCBmb3JtIGRhdGEKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpGb3JtQ2FjaGUnKS0+Rm9ybUlEUmVtb3ZlKCBGb3JtSUQgPT4gJEZvcm1JRCApOwoKICAgICAgICAjIFNldCBkeW5hbWljIGZpZWxkcy4KICAgICAgICBEWU5BTUlDRklFTEQ6CiAgICAgICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCB2YWx1ZXMgJFNlbGYtPntEeW5hbWljRmllbGR9LT4lKiApIHsKICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+VmFsdWVTZXQoCiAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgIE9iamVjdElEICAgICAgICAgICA9PiAkSXRlbUlELAogICAgICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICREeW5hbWljRmllbGRWYWx1ZXN7ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgUmVkaXJlY3QgdG8gRkFRIHpvb20uCiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KCBPUCA9PiAnQWN0aW9uPUFnZW50RkFRWm9vbTtJdGVtSUQ9JyAuICRJdGVtSUQgKTsKICAgIH0KfQoKc3ViIF9NYXNrTmV3IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBHZXQgbGlzdCB0eXBlLgogICAgbXkgJFRyZWVWaWV3ID0gMDsKICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpMaXN0VHlwZScpIGVxICd0cmVlJyApIHsKICAgICAgICAkVHJlZVZpZXcgPSAxOwogICAgfQoKICAgICMgR2V0IHZhbGlkIGxpc3QuCiAgICBteSAlVmFsaWRMaXN0ICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcpLT5WYWxpZExpc3QoKTsKICAgIG15ICVWYWxpZExpc3RSZXZlcnNlID0gcmV2ZXJzZSAlVmFsaWRMaXN0OwoKICAgIG15ICVEYXRhOwoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBCdWlsZCB2YWxpZCBzZWxlY3Rpb24uCiAgICAkRGF0YXtWYWxpZE9wdGlvbn0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgID0+IFwlVmFsaWRMaXN0LAogICAgICAgIE5hbWUgICAgICAgPT4gJ1ZhbGlkSUQnLAogICAgICAgIFNlbGVjdGVkSUQgPT4gJFBhcmFte1ZhbGlkSUR9IHx8ICRWYWxpZExpc3RSZXZlcnNle3ZhbGlkfSwKICAgICAgICBDbGFzcyAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKCiAgICAjIFNldCBubyBzZXJ2ZXIgZXJyb3IgY2xhc3MgYXMgZGVmYXVsdC4KICAgICRQYXJhbXtDYXRlZ29yeUlEU2VydmVyRXJyb3J9IHx8PSAnJzsKCiAgICAjIEJ1aWxkIGNhdGVnb3J5IHNlbGVjdGlvbi4KICAgICREYXRhe0NhdGVnb3J5T3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgICA9PiAkUGFyYW17VXNlckNhdGVnb3JpZXNMb25nTmFtZXN9LAogICAgICAgIE5hbWUgICAgICAgICA9PiAnQ2F0ZWdvcnlJRCcsCiAgICAgICAgU2VsZWN0ZWRJRCAgID0+ICRQYXJhbXtDYXRlZ29yeUlEfSwKICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMSwKICAgICAgICBDbGFzcyAgICAgICAgPT4gJ1ZhbGlkYXRlX1JlcXVpcmVkIE1vZGVybml6ZSAnIC4gJFBhcmFte0NhdGVnb3J5SURTZXJ2ZXJFcnJvcn0sCiAgICAgICAgVHJhbnNsYXRpb24gID0+IDAsCiAgICAgICAgVHJlZVZpZXcgICAgID0+IDEsCiAgICApOwoKICAgIG15ICRGQVFPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RkFRJyk7CgogICAgbXkgJUxhbmd1YWdlcyA9ICRGQVFPYmplY3QtPkxhbmd1YWdlTGlzdCgKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIEdldCB0aGUgc2VsZWN0ZWQgbGFuZ3VhZ2UuCiAgICBteSAkU2VsZWN0ZWRMYW5ndWFnZTsKICAgIGlmICggJFBhcmFte0xhbmd1YWdlSUR9ICYmICRMYW5ndWFnZXN7ICRQYXJhbXtMYW5ndWFnZUlEfSB9ICkgewoKICAgICAgICAjIEdldCBsYW5ndWFnZSBmcm9tIGdpdmVuIExhbmd1YWdlSUQuCiAgICAgICAgJFNlbGVjdGVkTGFuZ3VhZ2UgPSAkTGFuZ3VhZ2VzeyAkUGFyYW17TGFuZ3VhZ2VJRH0gfTsKICAgIH0KICAgIGVsc2UgewoKICAgICAgICAjIFVzZSB0aGUgdXNlciBsYW5ndWFnZSwgb3IgaWYgbm90IGZvdW5kICdlbicKICAgICAgICAkU2VsZWN0ZWRMYW5ndWFnZSA9ICRMYXlvdXRPYmplY3QtPntVc2VyTGFuZ3VhZ2V9IHx8ICdlbic7CgogICAgICAgICMgR2V0IHVzZXIgTGFuZ3VhZ2VJRAogICAgICAgIG15ICRTZWxlY3RlZExhbmd1YWdlSUQgPSAkRkFRT2JqZWN0LT5MYW5ndWFnZUxvb2t1cCgKICAgICAgICAgICAgTmFtZSA9PiAkU2VsZWN0ZWRMYW5ndWFnZSwKICAgICAgICApOwoKICAgICAgICAjIENoZWNrIGlmIExhbmR1YWdlSUQgZG9lcyBub3QgZXhpc3RzCiAgICAgICAgaWYgKCAhJFNlbGVjdGVkTGFuZ3VhZ2VJRCApIHsKCiAgICAgICAgICAgICMgR2V0IHRoZSBsb3dlc3QgbGFuZ3VhZ2VJRCBmcm9tIHRoZSBGQVEgbGFuZ3VhZ2VzIGxpc3QKICAgICAgICAgICAgbXkgQExhbmd1YWdlSURzID0gc29ydCBrZXlzICVMYW5ndWFnZXM7CiAgICAgICAgICAgICRTZWxlY3RlZExhbmd1YWdlSUQgPSAkTGFuZ3VhZ2VJRHNbMF07CgogICAgICAgICAgICAjIFNldCB0aGUgbGFuZ3VhZ2Ugd2l0aCBsb3dlc3QgTGFuZ3VhZ2VJRCBhcyBzZWxlY3RlZCBsYW5ndWFnZSwKICAgICAgICAgICAgIyAgIGFzIHRoaXMgaXMgdGhlIGZpcnN0IGFuZCAod2UgYXNzdW1lZCkgdGhlIG1vc3QgdXNlZCBsYW5ndWFnZQogICAgICAgICAgICAkU2VsZWN0ZWRMYW5ndWFnZSA9ICRMYW5ndWFnZXN7JFNlbGVjdGVkTGFuZ3VhZ2VJRH07CiAgICAgICAgfQogICAgfQoKICAgICMgQnVpbGQgdGhlIGxhbmd1YWdlIHNlbGVjdGlvbi4KICAgICREYXRhe0xhbmd1YWdlT3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgICAgPT4gXCVMYW5ndWFnZXMsCiAgICAgICAgTmFtZSAgICAgICAgICA9PiAnTGFuZ3VhZ2VJRCcsCiAgICAgICAgU2VsZWN0ZWRWYWx1ZSA9PiAkU2VsZWN0ZWRMYW5ndWFnZSwKICAgICAgICBUcmFuc2xhdGlvbiAgID0+IDAsCiAgICAgICAgQ2xhc3MgICAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgbXkgQFN0YXRlVHlwZXMgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6QWdlbnQ6OlN0YXRlVHlwZXMnKTsKICAgIG15ICVTdGF0ZXMgICAgID0gJEZBUU9iamVjdC0+U3RhdGVMaXN0KAogICAgICAgIFR5cGVzICA9PiBAU3RhdGVUeXBlcywKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIEdldCB0aGUgc2VsZWN0ZWQgc3RhdGUuCiAgICBteSAkU2VsZWN0ZWRTdGF0ZTsKICAgIGlmICggJFBhcmFte1N0YXRlSUR9ICYmICRTdGF0ZXN7ICRQYXJhbXtTdGF0ZUlEfSB9ICkgewoKICAgICAgICAjIEdldCBzdGF0ZSBmcm9tIGdpdmVuIFN0YXRlSUQuCiAgICAgICAgJFNlbGVjdGVkU3RhdGUgPSAkU3RhdGVzeyAkUGFyYW17U3RhdGVJRH0gfTsKICAgIH0KICAgIGVsc2UgewoKICAgICAgICAjIEdldCBkZWZhdWx0IHN0YXRlLgogICAgICAgICRTZWxlY3RlZFN0YXRlID0gJENvbmZpZ09iamVjdC0+R2V0KCdGQVE6OkRlZmF1bHQ6OlN0YXRlJykgfHwgJ2ludGVybmFsIChhZ2VudCknOwogICAgfQoKICAgICMgQnVpbGQgdGhlIHN0YXRlIHNlbGVjdGlvbi4KICAgICREYXRhe1N0YXRlT3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgICAgPT4gXCVTdGF0ZXMsCiAgICAgICAgTmFtZSAgICAgICAgICA9PiAnU3RhdGVJRCcsCiAgICAgICAgU2VsZWN0ZWRWYWx1ZSA9PiAkU2VsZWN0ZWRTdGF0ZSwKICAgICAgICBUcmFuc2xhdGlvbiAgID0+IDEsCiAgICAgICAgQ2xhc3MgICAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgIyBTaG93IGF0dGFjaG1lbnRzLgogICAgQVRUQUNITUVOVDoKICAgIGZvciBteSAkQXR0YWNobWVudCAoIEB7ICRQYXJhbXtBdHRhY2htZW50c30gfSApIHsKCiAgICAgICAgIyBEbyBub3Qgc2hvdyBpbmxpbmUgaW1hZ2VzIGFzIGF0dGFjaG1lbnRzICh0aGV5IGhhdmUgYSBDb250ZW50SUQpLgogICAgICAgIGlmICggJEF0dGFjaG1lbnQtPntDb250ZW50SUR9ICYmICRMYXlvdXRPYmplY3QtPntCcm93c2VyUmljaFRleHR9ICkgewogICAgICAgICAgICBuZXh0IEFUVEFDSE1FTlQ7CiAgICAgICAgfQoKICAgICAgICBwdXNoIEB7ICRQYXJhbXtBdHRhY2htZW50TGlzdH0gfSwgJEF0dGFjaG1lbnQ7CiAgICB9CgogICAgIyByZW5kZXIgZHluYW1pYyBmaWVsZHMKICAgICRQYXJhbXtEeW5hbWljRmllbGRIVE1MfSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpEeW5hbWljRmllbGQ6Ok1hc2snKS0+RWRpdFNlY3Rpb25SZW5kZXIoCiAgICAgICAgQ29udGVudCAgICAgICAgICAgID0+ICRTZWxmLT57TWFza0RlZmluaXRpb259LAogICAgICAgIER5bmFtaWNGaWVsZHMgICAgICA9PiAkU2VsZi0+e0R5bmFtaWNGaWVsZH0sCiAgICAgICAgTGF5b3V0T2JqZWN0ICAgICAgID0+ICRMYXlvdXRPYmplY3QsCiAgICAgICAgUGFyYW1PYmplY3QgICAgICAgID0+ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKSwKICAgICAgICBEeW5hbWljRmllbGRWYWx1ZXMgPT4gJFBhcmFte0R5bmFtaWNGaWVsZH0sCiAgICAgICAgRXJyb3JzICAgICAgICAgICAgID0+ICRQYXJhbXtERkVycm9yc30sCiAgICAgICAgT2JqZWN0ICAgICAgICAgICAgID0+IHsKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgJFBhcmFte0R5bmFtaWNGaWVsZH0tPiUqLAogICAgICAgIH0sCiAgICAgICAgQUpBWFVwZGF0ZSA9PiAwLAogICAgKTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdGQVFBZGQnLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICVEYXRhLAogICAgICAgIH0sCiAgICApOwoKICAgICMgc2hvdyBzZXJ2aWNlcwogICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6U2VydmljZScpICkgewoKICAgICAgICAjIGdldCBhbGwgc2VydmljZXMKICAgICAgICBteSAlU2VydmljZUxpc3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U2VydmljZScpLT5TZXJ2aWNlTGlzdCgKICAgICAgICAgICAgS2VlcENoaWxkcmVuID0+ICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpTZXJ2aWNlOjpLZWVwQ2hpbGRyZW4nKSAvLyAwLAogICAgICAgICAgICBWYWxpZCAgICAgICAgPT4gMSwKICAgICAgICAgICAgVXNlcklEICAgICAgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgcGFyYW0gb2JqZWN0CiAgICAgICAgbXkgJFBhcmFtT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwoKICAgICAgICBteSBAU2VydmljZUlEczsKICAgICAgICBpZiAoICRQYXJhbU9iamVjdC0+R2V0QXJyYXkoIFBhcmFtID0+ICdTZXJ2aWNlSUQnICkgKSB7CiAgICAgICAgICAgIEBTZXJ2aWNlSURzID0gJFBhcmFtT2JqZWN0LT5HZXRBcnJheSggUGFyYW0gPT4gJ1NlcnZpY2VJRCcgKTsKICAgICAgICB9CgogICAgICAgICMgQnVpbGQgdGhlIHN0YXRlIHNlbGVjdGlvbi4KICAgICAgICBteSAkU2VydmljZUhUTUwgPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgRGF0YSAgICAgICAgPT4gXCVTZXJ2aWNlTGlzdCwKICAgICAgICAgICAgTmFtZSAgICAgICAgPT4gJ1NlcnZpY2VJRCcsCiAgICAgICAgICAgIENsYXNzICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgICAgICAgICBNdWx0aXBsZSAgICA9PiAxLAogICAgICAgICAgICBTaXplICAgICAgICA9PiAxMCwKICAgICAgICAgICAgU2VsZWN0ZWRJRCAgPT4gXEBTZXJ2aWNlSURzLAogICAgICAgICAgICBTb3J0ICAgICAgICA9PiAnQWxwaGFudW1lcmljVmFsdWUnLAogICAgICAgICAgICBUcmFuc2xhdGlvbiA9PiAwLAogICAgICAgICAgICBUcmVlVmlldyAgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1NlcnZpY2UnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIFNlcnZpY2VPcHRpb24gPT4gJFNlcnZpY2VIVE1MLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgIyBTaG93IGxhbmd1YWdlcyBmaWVsZC4KICAgIG15ICRNdWx0aUxhbmd1YWdlID0gJENvbmZpZ09iamVjdC0+R2V0KCdGQVE6Ok11bHRpTGFuZ3VhZ2UnKTsKICAgIGlmICgkTXVsdGlMYW5ndWFnZSkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdMYW5ndWFnZScsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgJURhdGEsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2UgewoKICAgICAgICAjIEdldCBkZWZhdWx0IGxhbmd1YWdlLgogICAgICAgIG15ICREZWZhdWx0TGFuZ3VhZ2UgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6RGVmYXVsdDo6TGFuZ3VhZ2UnKSB8fCAnZW4nOwoKICAgICAgICAjIEdldCBkZWZhdWx0IExhbmd1YWdlSUQKICAgICAgICBteSAkTGFuZ3VhZ2VJRCA9ICRGQVFPYmplY3QtPkxhbmd1YWdlTG9va3VwKAogICAgICAgICAgICBOYW1lID0+ICREZWZhdWx0TGFuZ3VhZ2UsCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgZGVmYXVsdCBsYW5ndWFnZSBpZiBpdCB3YXMgZGVsZXRlZCBvciBkb2VzIG5vdCBleGlzdHMuCiAgICAgICAgaWYgKCAhJExhbmd1YWdlSUQgKSB7CiAgICAgICAgICAgIG15ICRJbnNlcnRMYW5ndWFnZSA9ICRGQVFPYmplY3QtPkxhbmd1YWdlQWRkKAogICAgICAgICAgICAgICAgTmFtZSAgID0+ICREZWZhdWx0TGFuZ3VhZ2UsCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGlmICggISRJbnNlcnRMYW5ndWFnZSApIHsKCiAgICAgICAgICAgICAgICAjIFJldHVybiB3aXRoIGVycm9yIHNjcmVlbi4KICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnTm8gZGVmYXVsdCBsYW5ndWFnZSBmb3VuZCBhbmQgY2FuXCd0IGNyZWF0ZSBhIG5ldyBvbmUuJyksCiAgICAgICAgICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBHZXQgZGVmYXVsdCBMYW5ndWFnZUlELgogICAgICAgICAgICAkTGFuZ3VhZ2VJRCA9ICRGQVFPYmplY3QtPkxhbmd1YWdlTG9va3VwKAogICAgICAgICAgICAgICAgTmFtZSA9PiAkRGVmYXVsdExhbmd1YWdlLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgJFBhcmFte0xhbmd1YWdlSUR9ID0gJExhbmd1YWdlSUQ7CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdOb0xhbmd1YWdlJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAlRGF0YSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgICMgU2hvdyBhcHByb3ZhbCBmaWVsZC4KICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdGQVE6OkFwcHJvdmFsUmVxdWlyZWQnKSApIHsKCiAgICAgICAgbXkgJEFwcHJvdmFsUmVxdWlyZWQgICAgICAgID0gMTsKICAgICAgICBteSAkQXBwcm92YWxJbmNsdWRlSW50ZXJuYWwgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6QXBwcm92YWw6OkluY2x1ZGVJbnRlcm5hbCcpOwoKICAgICAgICBpZiAoICEkQXBwcm92YWxJbmNsdWRlSW50ZXJuYWwgKSB7CiAgICAgICAgICAgIG15ICVJbnRlcm5hbFN0YXRlID0gJEZBUU9iamVjdC0+U3RhdGVMaXN0KAogICAgICAgICAgICAgICAgVHlwZXMgID0+IFsnaW50ZXJuYWwnXSwKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCAkSW50ZXJuYWxTdGF0ZXsgJFBhcmFte1N0YXRlSUR9IH0gKSB7CiAgICAgICAgICAgICAgICAkQXBwcm92YWxSZXF1aXJlZCA9IDA7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICggJEFwcHJvdmFsUmVxdWlyZWQgKSB7CgogICAgICAgICAgICAjIENoZWNrIHBlcm1pc3Npb24uCiAgICAgICAgICAgIG15ICVHcm91cHMgPSByZXZlcnNlICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpLT5Hcm91cE1lbWJlckxpc3QoCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgVHlwZSAgID0+ICdybycsCiAgICAgICAgICAgICAgICBSZXN1bHQgPT4gJ0hBU0gnLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBHZXQgdGhlIEZBUSBhcHByb3ZhbCBncm91cCBmcm9tIGNvbmZpZy4KICAgICAgICAgICAgbXkgJEFwcHJvdmFsR3JvdXAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6QXBwcm92YWxHcm91cCcpIHx8ICcnOwoKICAgICAgICAgICAgIyBCdWlsZCB0aGUgYXBwcm92YWwgc2VsZWN0aW9uIGlmIHVzZXIgaXMgaW4gdGhlIGFwcHJvdmFsIGdyb3VwLgogICAgICAgICAgICBpZiAoICRHcm91cHN7JEFwcHJvdmFsR3JvdXB9ICkgewoKICAgICAgICAgICAgICAgICREYXRhe0FwcHJvdmFsT3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0FwcHJvdmVkJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgMCA9PiBUcmFuc2xhdGFibGUoJ05vJyksCiAgICAgICAgICAgICAgICAgICAgICAgIDEgPT4gVHJhbnNsYXRhYmxlKCdZZXMnKSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIFNlbGVjdGVkSUQgPT4gJFBhcmFte0FwcHJvdmVkfSB8fCAwLAogICAgICAgICAgICAgICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQXBwcm92YWwnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAlRGF0YSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIEdldCBjb25maWcgb2YgZnJvbnRlbmQgbW9kdWxlLgogICAgbXkgJENvbmZpZyA9ICRDb25maWdPYmplY3QtPkdldCgiRkFROjpGcm9udGVuZDo6JFNlbGYtPntBY3Rpb259IikgfHwgJyc7CgogICAgIyBBZGQgcmljaCB0ZXh0IGVkaXRvciBKYXZhU2NyaXB0IG9ubHkgaWYgYWN0aXZhdGVkIGFuZCB0aGUgYnJvd3NlciBjYW4gaGFuZGxlIGl0CiAgICAjICAgb3RoZXJ3aXNlIGp1c3QgYSB0ZXh0LWFyZWEgaXMgc2hvd24KICAgIGlmICggJExheW91dE9iamVjdC0+e0Jyb3dzZXJSaWNoVGV4dH0gJiYgJENvbmZpZ09iamVjdC0+R2V0KCdGQVE6Okl0ZW06OkhUTUwnKSApIHsKCiAgICAgICAgIyBVc2UgaGVpZ2h0L3dpZHRoIGRlZmluZWQgZm9yIHRoaXMgc2NyZWVuLgogICAgICAgICRQYXJhbXtSaWNoVGV4dEhlaWdodH0gPSAkQ29uZmlnLT57UmljaFRleHRIZWlnaHR9IHx8IDA7CiAgICAgICAgJFBhcmFte1JpY2hUZXh0V2lkdGh9ICA9ICRDb25maWctPntSaWNoVGV4dFdpZHRofSAgfHwgMDsKCiAgICAgICAgIyBTZXQgdXAgcmljaCB0ZXh0IGVkaXRvci4KICAgICAgICAkTGF5b3V0T2JqZWN0LT5TZXRSaWNoVGV4dFBhcmFtZXRlcnMoCiAgICAgICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgfQoKICAgICMgU2V0IGRlZmF1bHQgaW50ZXJmYWNlIHNldHRpbmdzLgogICAgbXkgJEludGVyZmFjZVN0YXRlcyA9ICRGQVFPYmplY3QtPlN0YXRlVHlwZUxpc3QoCiAgICAgICAgVHlwZXMgID0+IEBTdGF0ZVR5cGVzLAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgU2hvdyBGQVEgQ29udGVudC4KICAgICRMYXlvdXRPYmplY3QtPkZBUUNvbnRlbnRTaG93KAogICAgICAgIEZBUU9iamVjdCAgICAgICA9PiAkRkFRT2JqZWN0LAogICAgICAgIEludGVyZmFjZVN0YXRlcyA9PiAkSW50ZXJmYWNlU3RhdGVzLAogICAgICAgIEZBUURhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICB9LAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudEZBUUFkZCcsCiAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICApOwp9CgoxOwo=</File>
        <File Location="Kernel/Modules/AgentFAQCategory.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWdlbnRGQVFDYXRlZ29yeTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6Okxhbmd1YWdlIHF3KFRyYW5zbGF0YWJsZSk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBBbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0LgogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgUGVybWlzc2lvbiBjaGVjay4KICAgIGlmICggISRTZWxmLT57QWNjZXNzUnd9ICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Ob1Blcm1pc3Npb24oCiAgICAgICAgICAgIE1lc3NhZ2UgICAgPT4gVHJhbnNsYXRhYmxlKCdZb3UgbmVlZCBydyBwZXJtaXNzaW9uIScpLAogICAgICAgICAgICBXaXRoSGVhZGVyID0+ICd5ZXMnLAogICAgICAgICk7CiAgICB9CgogICAgbXkgJFBhcmFtT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwoKICAgICMgR2V0IHBhcmFtZXRlcnMgZnJvbSB3ZWIgcmVxdWVzdC4KICAgIG15ICVHZXRQYXJhbTsKICAgIGZvciBteSAkUGFyYW1OYW1lIChxdyhDYXRlZ29yeUlEIE5hbWUgUGFyZW50SUQgQ29tbWVudCBWYWxpZElEKSkgewogICAgICAgICRHZXRQYXJhbXskUGFyYW1OYW1lfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbU5hbWUgKTsKICAgIH0KCiAgICAjIFNldCBkZWZhdWx0cwogICAgJEdldFBhcmFte0NhdGVnb3J5SUR9IHx8PSAwOwogICAgJEdldFBhcmFte1BhcmVudElEfSAgIHx8PSAwOwoKICAgICMgR2V0IGFycmF5IHBhcmFtZXRlcnMgZnJvbSB3ZWIgcmVxdWVzdC4KICAgIEB7ICRHZXRQYXJhbXtQZXJtaXNzaW9uR3JvdXBzfSB9ID0gJFBhcmFtT2JqZWN0LT5HZXRBcnJheSggUGFyYW0gPT4gJ1Blcm1pc3Npb25Hcm91cHMnICk7CgogICAgbXkgJEZBUU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpGQVEnKTsKCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIENoYW5nZQogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0NoYW5nZScgKSB7CgogICAgICAgIGlmICggISRHZXRQYXJhbXtDYXRlZ29yeUlEfSApIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+RmF0YWxFcnJvcigKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdOZWVkIENhdGVnb3J5SUQhJyksCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBteSAlQ2F0ZWdvcnlEYXRhID0gJEZBUU9iamVjdC0+Q2F0ZWdvcnlHZXQoCiAgICAgICAgICAgIENhdGVnb3J5SUQgPT4gJEdldFBhcmFte0NhdGVnb3J5SUR9LAogICAgICAgICAgICBVc2VySUQgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIEdldCBwZXJtaXNzaW9uIGdyb3Vwcy4KICAgICAgICAkQ2F0ZWdvcnlEYXRhe1Blcm1pc3Npb25Hcm91cHN9ID0gJEZBUU9iamVjdC0+Q2F0ZWdvcnlHcm91cEdldCgKICAgICAgICAgICAgQ2F0ZWdvcnlJRCA9PiAkR2V0UGFyYW17Q2F0ZWdvcnlJRH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKCiAgICAgICAgJFNlbGYtPl9FZGl0KAogICAgICAgICAgICBBY3Rpb24gPT4gJ0NoYW5nZScsCiAgICAgICAgICAgICVDYXRlZ29yeURhdGEsCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudEZBUUNhdGVnb3J5JywKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgKTsKCiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBDaGFuZ2UgYWN0aW9uCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQ2hhbmdlQWN0aW9uJyApIHsKCiAgICAgICAgIyBDaGFsbGVuZ2UgdG9rZW4gY2hlY2sgZm9yIHdyaXRlIGFjdGlvbi4KICAgICAgICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKCiAgICAgICAgZm9yIG15ICRQYXJhbU5hbWUgKHF3KFBhcmVudElEIFZhbGlkSUQpKSB7CiAgICAgICAgICAgIGlmICggIWRlZmluZWQgJEdldFBhcmFteyRQYXJhbU5hbWV9ICkgewoKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5GYXRhbEVycm9yKAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnTmVlZCAlcyEnLCAkUGFyYW1OYW1lICksCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBteSAlRXJyb3I7CiAgICAgICAgZm9yIG15ICRQYXJhbU5hbWUgKHF3KE5hbWUgQ29tbWVudCBQZXJtaXNzaW9uR3JvdXBzKSkgewoKICAgICAgICAgICAgaWYgKCAhJEdldFBhcmFteyRQYXJhbU5hbWV9ICkgewoKICAgICAgICAgICAgICAgICMgQWRkIHNlcnZlciBlcnJvciBlcnJvciBjbGFzcy4KICAgICAgICAgICAgICAgICRFcnJvcnsgJFBhcmFtTmFtZSAuICdTZXJ2ZXJFcnJvcicgfSA9ICdTZXJ2ZXJFcnJvcic7CgogICAgICAgICAgICAgICAgIyBBZGQgc2VydmVyIGVycm9yIHN0cmluZyBmb3IgY2F0ZWdvcnkgbmFtZSBmaWVsZC4KICAgICAgICAgICAgICAgIGlmICggJFBhcmFtTmFtZSBlcSAnTmFtZScgKSB7CiAgICAgICAgICAgICAgICAgICAgJEVycm9ye05hbWVTZXJ2ZXJFcnJvck1lc3NhZ2V9ID0gVHJhbnNsYXRhYmxlKCdBIGNhdGVnb3J5IHNob3VsZCBoYXZlIGEgbmFtZSEnKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKCAkR2V0UGFyYW17TmFtZX0gKSB7CgogICAgICAgICAgICAjIENoZWNrIGZvciBkdXBsaWNhdGUgY2F0ZWdvcnkgbmFtZSB3aXRoIHRoZSBzYW1lIHBhcmVudCBjYXRlZ29yeS4KICAgICAgICAgICAgbXkgJENhdGVnb3J5RXhpc3RzQWxyZWFkeSA9ICRGQVFPYmplY3QtPkNhdGVnb3J5RHVwbGljYXRlQ2hlY2soCiAgICAgICAgICAgICAgICBDYXRlZ29yeUlEID0+ICRHZXRQYXJhbXtDYXRlZ29yeUlEfSwKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgPT4gJEdldFBhcmFte05hbWV9LAogICAgICAgICAgICAgICAgUGFyZW50SUQgICA9PiAkR2V0UGFyYW17UGFyZW50SUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGlmICgkQ2F0ZWdvcnlFeGlzdHNBbHJlYWR5KSB7CiAgICAgICAgICAgICAgICAkRXJyb3J7TmFtZVNlcnZlckVycm9yfSAgICAgICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgJEVycm9ye05hbWVTZXJ2ZXJFcnJvck1lc3NhZ2V9ID0gVHJhbnNsYXRhYmxlKCdUaGlzIGNhdGVnb3J5IGFscmVhZHkgZXhpc3RzJyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgU2VuZCBzZXJ2ZXIgZXJyb3IgaWYgYW55IHJlcXVpcmVkIHBhcmFtZXRlciBpcyBtaXNzaW5nIG9yIHdyb25nLgogICAgICAgIGlmICglRXJyb3IpIHsKCiAgICAgICAgICAgICRTZWxmLT5fRWRpdCgKICAgICAgICAgICAgICAgIEFjdGlvbiA9PiAnQ2hhbmdlJywKICAgICAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgICAgICVFcnJvciwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50RkFRQ2F0ZWdvcnknLAogICAgICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgICAgICB9CgogICAgICAgIG15ICRDYXRlZ29yeVVwZGF0ZVN1Y2Nlc3NmdWwgPSAkRkFRT2JqZWN0LT5DYXRlZ29yeVVwZGF0ZSgKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CiAgICAgICAgaWYgKCAhJENhdGVnb3J5VXBkYXRlU3VjY2Vzc2Z1bCApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKCk7CiAgICAgICAgfQoKICAgICAgICAkRkFRT2JqZWN0LT5TZXRDYXRlZ29yeUdyb3VwKAogICAgICAgICAgICBDYXRlZ29yeUlEID0+ICRHZXRQYXJhbXtDYXRlZ29yeUlEfSwKICAgICAgICAgICAgR3JvdXBJRHMgICA9PiAkR2V0UGFyYW17UGVybWlzc2lvbkdyb3Vwc30sCiAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCggT1AgPT4gIkFjdGlvbj0kU2VsZi0+e0FjdGlvbn07Tm90aWZpY2F0aW9uPVVwZGF0ZSIgKTsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIEFkZAogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0FkZCcgKSB7CgogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKCiAgICAgICAgJFNlbGYtPl9FZGl0KAogICAgICAgICAgICBBY3Rpb24gPT4gJ0FkZCcsCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50RkFRQ2F0ZWdvcnknLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwoKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGFkZCBhY3Rpb24KICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdBZGRBY3Rpb24nICkgewoKICAgICAgICAjIENoYWxsZW5nZSB0b2tlbiBjaGVjayBmb3Igd3JpdGUgYWN0aW9uLgogICAgICAgICRMYXlvdXRPYmplY3QtPkNoYWxsZW5nZVRva2VuQ2hlY2soKTsKCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwoKICAgICAgICAjIENoZWNrIHJlcXVpcmVkIHBhcmFtZXRlcnMuCiAgICAgICAgZm9yIG15ICRQYXJhbU5hbWUgKHF3KFBhcmVudElEIFZhbGlkSUQpKSB7CiAgICAgICAgICAgIGlmICggIWRlZmluZWQgJEdldFBhcmFteyRQYXJhbU5hbWV9ICkgewogICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkZhdGFsRXJyb3IoCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdOZWVkICVzIScsICRQYXJhbU5hbWUgKSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgQ2hlY2sgcmVxdWlyZWQgcGFyYW1ldGVycwogICAgICAgIG15ICVFcnJvcjsKICAgICAgICBmb3IgbXkgJFBhcmFtTmFtZSAocXcoTmFtZSBDb21tZW50IFBlcm1pc3Npb25Hcm91cHMpKSB7CgogICAgICAgICAgICAjIElmIHJlcXVpcmVkIGZpZWxkIGlzIG5vdCBnaXZlbi4KICAgICAgICAgICAgaWYgKCAhJEdldFBhcmFteyRQYXJhbU5hbWV9ICkgewoKICAgICAgICAgICAgICAgICMgQWRkIHZhbGlkYXRpb24gY2xhc3MgYW5kIHNlcnZlciBlcnJvciBlcnJvciBjbGFzcy4KICAgICAgICAgICAgICAgICRFcnJvcnsgJFBhcmFtTmFtZSAuICdTZXJ2ZXJFcnJvcicgfSA9ICdTZXJ2ZXJFcnJvcic7CgogICAgICAgICAgICAgICAgIyBBZGQgc2VydmVyIGVycm9yIHN0cmluZyBmb3IgY2F0ZWdvcnkgbmFtZSBmaWVsZC4KICAgICAgICAgICAgICAgIGlmICggJFBhcmFtTmFtZSBlcSAnTmFtZScgKSB7CiAgICAgICAgICAgICAgICAgICAgJEVycm9ye05hbWVTZXJ2ZXJFcnJvck1lc3NhZ2V9ID0gVHJhbnNsYXRhYmxlKCdBIGNhdGVnb3J5IHNob3VsZCBoYXZlIGEgbmFtZSEnKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKCAkR2V0UGFyYW17TmFtZX0gKSB7CgogICAgICAgICAgICAjIENoZWNrIGZvciBkdXBsaWNhdGUgY2F0ZWdvcnkgbmFtZSB3aXRoIHRoZSBzYW1lIHBhcmVudCBjYXRlZ29yeQogICAgICAgICAgICBteSAkQ2F0ZWdvcnlFeGlzdHNBbHJlYWR5ID0gJEZBUU9iamVjdC0+Q2F0ZWdvcnlEdXBsaWNhdGVDaGVjaygKICAgICAgICAgICAgICAgIENhdGVnb3J5SUQgPT4gJEdldFBhcmFte0NhdGVnb3J5SUR9LAogICAgICAgICAgICAgICAgTmFtZSAgICAgICA9PiAkR2V0UGFyYW17TmFtZX0sCiAgICAgICAgICAgICAgICBQYXJlbnRJRCAgID0+ICRHZXRQYXJhbXtQYXJlbnRJRH0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaWYgKCRDYXRlZ29yeUV4aXN0c0FscmVhZHkpIHsKICAgICAgICAgICAgICAgICRFcnJvcntOYW1lU2VydmVyRXJyb3J9ICAgICAgICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAkRXJyb3J7TmFtZVNlcnZlckVycm9yTWVzc2FnZX0gPSBUcmFuc2xhdGFibGUoJ1RoaXMgY2F0ZWdvcnkgYWxyZWFkeSBleGlzdHMhJyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgU2VuZCBzZXJ2ZXIgZXJyb3IgaWYgYW55IHJlcXVpcmVkIHBhcmFtZXRlcnMgYXJlIG1pc3Npbmcgb3Igd3JvbmcKICAgICAgICBpZiAoJUVycm9yKSB7CgogICAgICAgICAgICAjIEhUTUwgb3V0cHV0CiAgICAgICAgICAgICRTZWxmLT5fRWRpdCgKICAgICAgICAgICAgICAgIEFjdGlvbiA9PiAnQWRkJywKICAgICAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgICAgICVFcnJvciwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50RkFRQ2F0ZWdvcnknLAogICAgICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGZvb3RlcgogICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgICAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICAgICAgfQoKICAgICAgICAjIEFkZCBuZXcgY2F0ZWdvcnkuCiAgICAgICAgbXkgJENhdGVnb3J5SUQgPSAkRkFRT2JqZWN0LT5DYXRlZ29yeUFkZCgKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CiAgICAgICAgaWYgKCAhJENhdGVnb3J5SUQgKSB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigpOwogICAgICAgIH0KCiAgICAgICAgJEZBUU9iamVjdC0+U2V0Q2F0ZWdvcnlHcm91cCgKICAgICAgICAgICAgQ2F0ZWdvcnlJRCA9PiAkQ2F0ZWdvcnlJRCwKICAgICAgICAgICAgR3JvdXBJRHMgICA9PiAkR2V0UGFyYW17UGVybWlzc2lvbkdyb3Vwc30sCiAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCggT1AgPT4gIkFjdGlvbj0kU2VsZi0+e0FjdGlvbn07Tm90aWZpY2F0aW9uPUFkZCIgKTsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIERlbGV0ZQogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0RlbGV0ZScgKSB7CgogICAgICAgIG15ICRDYXRlZ29yeUlEID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0NhdGVnb3J5SUQnICkgfHwgJyc7CiAgICAgICAgaWYgKCAhJENhdGVnb3J5SUQgKSB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdObyBDYXRlZ29yeUlEIGlzIGdpdmVuIScpLAogICAgICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgbXkgJUNhdGVnb3J5RGF0YSA9ICRGQVFPYmplY3QtPkNhdGVnb3J5R2V0KAogICAgICAgICAgICBDYXRlZ29yeUlEID0+ICRDYXRlZ29yeUlELAogICAgICAgICAgICBVc2VySUQgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwogICAgICAgIGlmICggISVDYXRlZ29yeURhdGEgKSB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigpOwogICAgICAgIH0KCiAgICAgICAgIyBHZXQgYWxsIGFmZmVjdGVkIEZBUSBhcnRpY2xlcwogICAgICAgIG15IEBBZmZlY3RlZEl0ZW1zID0gJEZBUU9iamVjdC0+RkFRU2VhcmNoKAogICAgICAgICAgICBDYXRlZ29yeUlEcyA9PiBbJENhdGVnb3J5SURdLAogICAgICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgR2V0IGFsbCBhZmZlY3RlZCBTdWJDY2F0ZWdvcmllcy4KICAgICAgICBteSAkQWZmZWN0ZWRTdWJDYXRlZ29yaWVzID0gJEZBUU9iamVjdC0+Q2F0ZWdvcnlTdWJDYXRlZ29yeUlETGlzdCgKICAgICAgICAgICAgUGFyZW50SUQgPT4gJENhdGVnb3J5SUQsCiAgICAgICAgICAgIE1vZGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0RlbGV0ZScsCiAgICAgICAgICAgIERhdGEgPT4geyVDYXRlZ29yeURhdGF9LAogICAgICAgICk7CgogICAgICAgICMgU2V0IHRoZSBkaWFsb2cgdHlwZS4gQXMgZGVmYXVsdCwgdGhlIGRpYWxvZyB3aWxsIGhhdmUgMiBidXR0b25zOiBZZXMgYW5kIE5vLgogICAgICAgIG15ICREaWFsb2dUeXBlID0gJ0NvbmZpcm1hdGlvbic7CgogICAgICAgICMgRGlzcGxheSBsaXN0IG9mIGFmZmVjdGVkIEZBUSBhcnRpY2xlcyBvciBTdWJDYXRlZ29yaWVzLgogICAgICAgIGlmICggQEFmZmVjdGVkSXRlbXMgfHwgQHskQWZmZWN0ZWRTdWJDYXRlZ29yaWVzfSApIHsKCiAgICAgICAgICAgICMgU2V0IHRoZSBkaWFsb2cgdHlwZSB0byBoYXZlIG9ubHkgMSBidXR0b246IE9LLgogICAgICAgICAgICAkRGlhbG9nVHlwZSA9ICdNZXNzYWdlJzsKCiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnQWZmZWN0ZWQnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgRGlzcGxheSBBZmZlY3RlZCBGQVEgYXJ0aWNsZXMuCiAgICAgICAgICAgIGlmIChAQWZmZWN0ZWRJdGVtcykgewoKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0FmZmVjdGVkSXRlbXMnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIElURU1JRDoKICAgICAgICAgICAgICAgIGZvciBteSAkSXRlbUlEIChAQWZmZWN0ZWRJdGVtcykgewoKICAgICAgICAgICAgICAgICAgICBteSAlRkFRRGF0YSA9ICRGQVFPYmplY3QtPkZBUUdldCgKICAgICAgICAgICAgICAgICAgICAgICAgSXRlbUlEICAgICA9PiAkSXRlbUlELAogICAgICAgICAgICAgICAgICAgICAgICBJdGVtRmllbGRzID0+IDAsCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgbmV4dCBJVEVNSUQgaWYgISVGQVFEYXRhOwoKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQWZmZWN0ZWRJdGVtc1JvdycsCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJUZBUURhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBEaXNwbGF5IEFmZmVjdGVkIFN1YmNhdGVnb3JpZXMuCiAgICAgICAgICAgIGlmICggQHskQWZmZWN0ZWRTdWJDYXRlZ29yaWVzfSApIHsKCiAgICAgICAgICAgICAgICAjIEdldCBjYXRlZ29yaWVzIGxvbmcgbmFtZXMuCiAgICAgICAgICAgICAgICBteSAkQ2F0ZWdvcnlMb25nTmFtZXMgPSAkRkFRT2JqZWN0LT5HZXRVc2VyQ2F0ZWdvcmllc0xvbmdOYW1lcygKICAgICAgICAgICAgICAgICAgICBUeXBlICAgPT4gJ3JvJywKICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdBZmZlY3RlZFN1YkNhdGVnb3JpZXMnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgQ0FURUdPUllJRDoKICAgICAgICAgICAgICAgIGZvciBteSAkQ2F0ZWdvcnlJRCAoIEB7JEFmZmVjdGVkU3ViQ2F0ZWdvcmllc30gKSB7CgogICAgICAgICAgICAgICAgICAgIG15ICVDYXRlZ29yeURhdGEgPSAkRkFRT2JqZWN0LT5DYXRlZ29yeUdldCgKICAgICAgICAgICAgICAgICAgICAgICAgQ2F0ZWdvcnlJRCA9PiAkQ2F0ZWdvcnlJRCwKICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgIyBTZXQgY2F0ZWdvcnkgbG9uZyBuYW1lLgogICAgICAgICAgICAgICAgICAgICRDYXRlZ29yeURhdGF7TG9uZ05hbWV9ID0gJENhdGVnb3J5TG9uZ05hbWVzLT57JENhdGVnb3J5SUR9OwoKICAgICAgICAgICAgICAgICAgICBuZXh0IENBVEVHT1JZSUQgaWYgISVDYXRlZ29yeURhdGE7CgogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdBZmZlY3RlZFN1YkNhdGVnb3JpZXNSb3cnLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICVDYXRlZ29yeURhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdOb0FmZmVjdGVkJywKICAgICAgICAgICAgICAgIERhdGEgPT4geyVDYXRlZ29yeURhdGF9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudEZBUUNhdGVnb3J5JywKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IHt9LAogICAgICAgICk7CgogICAgICAgICMgQnVpbGQgdGhlIHJldHVybmVkIGRhdGEgc3RydWN0dXJlLgogICAgICAgIG15ICVEYXRhID0gKAogICAgICAgICAgICBIVE1MICAgICAgID0+ICRPdXRwdXQsCiAgICAgICAgICAgIERpYWxvZ1R5cGUgPT4gJERpYWxvZ1R5cGUsCiAgICAgICAgKTsKCiAgICAgICAgIyBSZXR1cm4gSlNPTi1TdHJpbmcgYmVjYXVzZSBvZiBBSkFYLU1vZGUuCiAgICAgICAgbXkgJE91dHB1dEpTT04gPSAkTGF5b3V0T2JqZWN0LT5KU09ORW5jb2RlKCBEYXRhID0+IFwlRGF0YSApOwoKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+QXR0YWNobWVudCgKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9JyAuICRMYXlvdXRPYmplY3QtPntDaGFyc2V0fSwKICAgICAgICAgICAgQ29udGVudCAgICAgPT4gJE91dHB1dEpTT04sCiAgICAgICAgICAgIFR5cGUgICAgICAgID0+ICdpbmxpbmUnLAogICAgICAgICAgICBOb0NhY2hlICAgICA9PiAxLAogICAgICAgICk7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBkZWxldGUgYWN0aW9uCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnRGVsZXRlQWN0aW9uJyApIHsKCiAgICAgICAgbXkgJENhdGVnb3J5SUQgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnQ2F0ZWdvcnlJRCcgKSB8fCAnJzsKCiAgICAgICAgaWYgKCAhJENhdGVnb3J5SUQgKSB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdObyBDYXRlZ29yeUlEIGlzIGdpdmVuIScpLAogICAgICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgbXkgJUNhdGVnb3J5RGF0YSA9ICRGQVFPYmplY3QtPkNhdGVnb3J5R2V0KAogICAgICAgICAgICBDYXRlZ29yeUlEID0+ICRDYXRlZ29yeUlELAogICAgICAgICAgICBVc2VySUQgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICBpZiAoICElQ2F0ZWdvcnlEYXRhICkgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oKTsKICAgICAgICB9CgogICAgICAgICMgRGVsZXRlIHRoZSBjYXRlZ29yeS4KICAgICAgICBteSAkQ291bGREZWxldGVDYXRlZ29yeSA9ICRGQVFPYmplY3QtPkNhdGVnb3J5RGVsZXRlKAogICAgICAgICAgICBDYXRlZ29yeUlEID0+ICRDYXRlZ29yeUlELAogICAgICAgICAgICBVc2VySUQgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICBpZiAoJENvdWxkRGVsZXRlQ2F0ZWdvcnkpIHsKCiAgICAgICAgICAgICMgUmVkaXJlY3QgdG8gZXhwbG9yZXIsIHdoZW4gdGhlIGRlbGV0aW9uIHdhcyBzdWNjZXNzZnVsLgogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgICAgICBPUCA9PiAiQWN0aW9uPUFnZW50RkFRQ2F0ZWdvcnkiLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgU2hvdyBlcnJvciBtZXNzYWdlLCB3aGVuIGRlbGV0ZSBmYWlsZWQuCiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKAogICAgICAgICAgICAgICAgICAgICdXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBjYXRlZ29yeSAlcyEnLAogICAgICAgICAgICAgICAgICAgICRDYXRlZ29yeUlELAogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgT3ZlcnZpZXcKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNlIHsKCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwoKICAgICAgICBteSAkTm90aWZpY2F0aW9uICAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdOb3RpZmljYXRpb24nICkgfHwgJyc7CiAgICAgICAgbXkgJU5vdGlmaWNhdGlvblRleHQgPSAoCiAgICAgICAgICAgIFVwZGF0ZSA9PiBUcmFuc2xhdGFibGUoJ0ZBUSBjYXRlZ29yeSB1cGRhdGVkIScpLAogICAgICAgICAgICBBZGQgICAgPT4gVHJhbnNsYXRhYmxlKCdGQVEgY2F0ZWdvcnkgYWRkZWQhJyksCiAgICAgICAgKTsKICAgICAgICBpZiAoICROb3RpZmljYXRpb24gJiYgJE5vdGlmaWNhdGlvblRleHR7JE5vdGlmaWNhdGlvbn0gKSB7CiAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KCBJbmZvID0+ICROb3RpZmljYXRpb25UZXh0eyROb3RpZmljYXRpb259ICk7CiAgICAgICAgfQoKICAgICAgICAkU2VsZi0+X092ZXJ2aWV3KCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRGQVFDYXRlZ29yeScsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KfQoKc3ViIF9FZGl0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdPdmVydmlldycsCiAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgKTsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0FjdGlvbkxpc3QnLAogICAgICAgIERhdGEgPT4ge30sCiAgICApOwogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnQWN0aW9uT3ZlcnZpZXcnLAogICAgICAgIERhdGEgPT4ge30sCiAgICApOwoKICAgIG15ICVWYWxpZExpc3QgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZhbGlkJyktPlZhbGlkTGlzdCgpOwogICAgbXkgJVZhbGlkTGlzdFJldmVyc2UgPSByZXZlcnNlICVWYWxpZExpc3Q7CgogICAgbXkgJURhdGE7CgogICAgIyBCdWlsZCB0aGUgdmFsaWQgc2VsZWN0aW9uLgogICAgJERhdGF7VmFsaWRPcHRpb259ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICA9PiBcJVZhbGlkTGlzdCwKICAgICAgICBOYW1lICAgICAgID0+ICdWYWxpZElEJywKICAgICAgICBTZWxlY3RlZElEID0+ICRQYXJhbXtWYWxpZElEfSB8fCAkVmFsaWRMaXN0UmV2ZXJzZXt2YWxpZH0sCiAgICAgICAgQ2xhc3MgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgIyBHZXQgYWxsIHZhbGlkIGdyb3Vwcy4KICAgIG15ICVHcm91cHMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKS0+R3JvdXBMaXN0KAogICAgICAgIFZhbGlkID0+IDEsCiAgICApOwoKICAgICMgU2V0IG5vIHNlcnZlciBlcnJvciBjbGFzcyBhcyBkZWZhdWx0LgogICAgJFBhcmFte1Blcm1pc3Npb25Hcm91cHNTZXJ2ZXJFcnJvcn0gfHw9ICcnOwoKICAgICMgQnVpbGQgdGhlIGdyb3VwIHNlbGVjdGlvbi4KICAgICREYXRhe0dyb3VwT3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgID0+IFwlR3JvdXBzLAogICAgICAgIE5hbWUgICAgICAgID0+ICdQZXJtaXNzaW9uR3JvdXBzJywKICAgICAgICBNdWx0aXBsZSAgICA9PiAxLAogICAgICAgIFRyYW5zbGF0aW9uID0+IDAsCiAgICAgICAgQ2xhc3MgICAgICAgPT4gJ1ZhbGlkYXRlX1JlcXVpcmVkIE1vZGVybml6ZSAnIC4gJFBhcmFte1Blcm1pc3Npb25Hcm91cHNTZXJ2ZXJFcnJvcn0sCiAgICAgICAgU2VsZWN0ZWRJRCAgPT4gJFBhcmFte1Blcm1pc3Npb25Hcm91cHN9LAogICAgKTsKCiAgICAjIEdldCBhbGwgY2F0ZWdvcmllcyB3aXRoIHRoZWlyIGxvbmcgbmFtZXMuCiAgICBteSAkQ2F0ZWdvcnlUcmVlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkZBUScpLT5DYXRlZ29yeVRyZWVMaXN0KAogICAgICAgIFZhbGlkICA9PiAwLAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgQnVpbGQgdGhlIGNhdGVnb3J5IHNlbGVjdGlvbi4KICAgICREYXRhe0NhdGVnb3J5T3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgICAgID0+ICRDYXRlZ29yeVRyZWUsCiAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJ1BhcmVudElEJywKICAgICAgICBTZWxlY3RlZElEICAgICA9PiAkUGFyYW17UGFyZW50SUR9LAogICAgICAgIFBvc3NpYmxlTm9uZSAgID0+IDEsCiAgICAgICAgRGlzYWJsZWRCcmFuY2ggPT4gJENhdGVnb3J5VHJlZS0+eyAkUGFyYW17Q2F0ZWdvcnlJRH0gfSB8fCAnJywKICAgICAgICBUcmFuc2xhdGlvbiAgICA9PiAwLAogICAgICAgIENsYXNzICAgICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdPdmVydmlld1VwZGF0ZScsCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgJURhdGEsCiAgICAgICAgfSwKICAgICk7CgogICAgaWYgKCAkUGFyYW17QWN0aW9ufSBlcSAnQ2hhbmdlJyApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnSGVhZGVyRWRpdCcsCiAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdIZWFkZXJBZGQnLAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCnN1YiBfT3ZlcnZpZXcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkT3V0cHV0ID0gJyc7CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdPdmVydmlldycsCiAgICAgICAgRGF0YSA9PiB7fSwKICAgICk7CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdBY3Rpb25MaXN0JywKICAgICAgICBEYXRhID0+IHt9LAogICAgKTsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0FjdGlvbkFkZCcsCiAgICAgICAgRGF0YSA9PiB7fSwKICAgICk7CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdPdmVydmlld1Jlc3VsdCcsCiAgICAgICAgRGF0YSA9PiB7fSwKICAgICk7CgogICAgbXkgJEZBUU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpGQVEnKTsKCiAgICAjIEdldCBhbGwgY2F0ZWdvcmllcyB3aXRoIHRoZWlyIGxvbmcgbmFtZXMuCiAgICBteSAkQ2F0ZWdvcnlUcmVlID0gJEZBUU9iamVjdC0+Q2F0ZWdvcnlUcmVlTGlzdCgKICAgICAgICBWYWxpZCAgPT4gMCwKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIElmIHRoZXJlIGFyZSBhbnkgY2F0ZWdvcmllcywgdGhleSBhcmUgc2hvd24uCiAgICBpZiAoICRDYXRlZ29yeVRyZWUgJiYgcmVmICRDYXRlZ29yeVRyZWUgZXEgJ0hBU0gnICYmICV7JENhdGVnb3J5VHJlZX0gKSB7CgogICAgICAgIG15ICVWYWxpZExpc3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnKS0+VmFsaWRMaXN0KCk7CgogICAgICAgICMgU29ydCB0aGUgY2F0ZWdvcnkgaWRzIGJ5IHRoZSBsb25nIGNhdGVnb3J5IG5hbWUuCiAgICAgICAgbXkgQENhdGVnb3J5SURzU29ydGVkID0gc29ydCB7ICRDYXRlZ29yeVRyZWUtPnskYX0gY21wICRDYXRlZ29yeVRyZWUtPnskYn0gfSBrZXlzICV7JENhdGVnb3J5VHJlZX07CgogICAgICAgIG15ICVKU0RhdGE7CgogICAgICAgICMgU2hvdyBhbGwgY2F0ZWdvcmllcy4KICAgICAgICBmb3IgbXkgJENhdGVnb3J5SUQgKEBDYXRlZ29yeUlEc1NvcnRlZCkgewoKICAgICAgICAgICAgIyBDcmVhdGUgc3RydWN0dXJlIGZvciBKUy4KICAgICAgICAgICAgJEpTRGF0YXskQ2F0ZWdvcnlJRH0gPSB7CiAgICAgICAgICAgICAgICBFbGVtZW50SUQgICAgICAgICAgICAgICAgICA9PiAnRGVsZXRlQ2F0ZWdvcnlJRCcgLiAkQ2F0ZWdvcnlJRCwKICAgICAgICAgICAgICAgIEVsZW1lbnRTZWxlY3RvciAgICAgICAgICAgID0+ICcjRGVsZXRlQ2F0ZWdvcnlJRCcgLiAkQ2F0ZWdvcnlJRCwKICAgICAgICAgICAgICAgIERpYWxvZ0NvbnRlbnRRdWVyeVN0cmluZyAgID0+ICdBY3Rpb249QWdlbnRGQVFDYXRlZ29yeTtTdWJhY3Rpb249RGVsZXRlO0NhdGVnb3J5SUQ9JyAuICRDYXRlZ29yeUlELAogICAgICAgICAgICAgICAgQ29uZmlybWVkQWN0aW9uUXVlcnlTdHJpbmcgPT4gJ0FjdGlvbj1BZ2VudEZBUUNhdGVnb3J5O1N1YmFjdGlvbj1EZWxldGVBY3Rpb247Q2F0ZWdvcnlJRD0nCiAgICAgICAgICAgICAgICAgICAgLiAkQ2F0ZWdvcnlJRCwKICAgICAgICAgICAgICAgIERpYWxvZ1RpdGxlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnRGVsZXRlIENhdGVnb3J5JyksCiAgICAgICAgICAgIH07CgogICAgICAgICAgICAjIEdldCBjYXRlZ29yeSBkYXRhLgogICAgICAgICAgICBteSAlQ2F0ZWdvcnlEYXRhID0gJEZBUU9iamVjdC0+Q2F0ZWdvcnlHZXQoCiAgICAgICAgICAgICAgICBDYXRlZ29yeUlEID0+ICRDYXRlZ29yeUlELAogICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIEdldCB2YWxpZCBzdHJpbmcgYmFzZWQgb24gVmFsaWRJRC4KICAgICAgICAgICAgJENhdGVnb3J5RGF0YXtWYWxpZH0gPSAkVmFsaWRMaXN0eyAkQ2F0ZWdvcnlEYXRhe1ZhbGlkSUR9IH07CgogICAgICAgICAgICAjIE92ZXJ3cml0ZSB0aGUgbmFtZSB3aXRoIHRoZSBsb25nIG5hbWUuCiAgICAgICAgICAgICRDYXRlZ29yeURhdGF7TmFtZX0gPSAkQ2F0ZWdvcnlUcmVlLT57JENhdGVnb3J5SUR9OwoKICAgICAgICAgICAgIyBPdXRwdXQgdGhlIGNhdGVnb3J5IGRhdGEuCiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdSZXN1bHRSb3cnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7JUNhdGVnb3J5RGF0YX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgICAgIEtleSAgID0+ICdGQVFEYXRhJywKICAgICAgICAgICAgVmFsdWUgPT4gXCVKU0RhdGEsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIE90aGVyd2lzZSBhIG5vIGRhdGEgZm91bmQgbWVzc2FnZSBpcyBkaXNwbGF5ZWQuCiAgICBlbHNlIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnTm9EYXRhRm91bmRNc2cnLAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCjE7Cg==</File>
        <File Location="Kernel/Modules/AgentFAQDelete.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWdlbnRGQVFEZWxldGU7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpMYW5ndWFnZSBxdyhUcmFuc2xhdGFibGUpOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgQWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdC4KICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIFBlcm1pc3Npb24gY2hlY2suCiAgICBpZiAoICEkU2VsZi0+e0FjY2Vzc1JvfSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Tm9QZXJtaXNzaW9uKAogICAgICAgICAgICBNZXNzYWdlICAgID0+IFRyYW5zbGF0YWJsZSgnWW91IG5lZWQgcm8gcGVybWlzc2lvbiEnKSwKICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICApOwogICAgfQoKICAgIG15ICVHZXRQYXJhbTsKCiAgICAjIEdldCBuZWVkZWQgSXRlbUlECiAgICAkR2V0UGFyYW17SXRlbUlEfSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKS0+R2V0UGFyYW0oIFBhcmFtID0+ICdJdGVtSUQnICk7CgogICAgaWYgKCAhJEdldFBhcmFte0l0ZW1JRH0gKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnTm8gSXRlbUlEIGlzIGdpdmVuIScpLAogICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgKTsKICAgIH0KCiAgICBteSAkRkFRT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkZBUScpOwoKICAgIG15ICVGQVFEYXRhID0gJEZBUU9iamVjdC0+RkFRR2V0KAogICAgICAgIEl0ZW1JRCAgICAgPT4gJEdldFBhcmFte0l0ZW1JRH0sCiAgICAgICAgSXRlbUZpZWxkcyA9PiAwLAogICAgICAgIFVzZXJJRCAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKICAgIGlmICggISVGQVFEYXRhICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigpOwogICAgfQoKICAgICMgQ2hlY2sgdXNlciBwZXJtaXNzaW9uLgogICAgbXkgJFBlcm1pc3Npb24gPSAkRkFRT2JqZWN0LT5DaGVja0NhdGVnb3J5VXNlclBlcm1pc3Npb24oCiAgICAgICAgVXNlcklEICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgQ2F0ZWdvcnlJRCA9PiAkRkFRRGF0YXtDYXRlZ29yeUlEfSwKICAgICAgICBUeXBlICAgICAgID0+ICdydycsCiAgICApOwogICAgaWYgKCAhJFBlcm1pc3Npb24gKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgTWVzc2FnZSAgICA9PiBUcmFuc2xhdGFibGUoJ1lvdSBoYXZlIG5vIHBlcm1pc3Npb24gZm9yIHRoaXMgY2F0ZWdvcnkhJyksCiAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgKTsKICAgIH0KCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnRGVsZXRlJyApIHsKCiAgICAgICAgIyBEZWxldGUgdGhlIEZBUSBhcnRpY2xlLgogICAgICAgIG15ICRDb3VsZERlbGV0ZUl0ZW0gPSAkRkFRT2JqZWN0LT5GQVFEZWxldGUoCiAgICAgICAgICAgIEl0ZW1JRCA9PiAkRkFRRGF0YXtJdGVtSUR9LAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgIGlmICgkQ291bGREZWxldGVJdGVtKSB7CgogICAgICAgICAgICAjIFJlZGlyZWN0IHRvIGV4cGxvcmVyLCB3aGVuIHRoZSBkZWxldGlvbiB3YXMgc3VjY2Vzc2Z1bC4KICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICAgICAgT1AgPT4gIkFjdGlvbj1BZ2VudEZBUUV4cGxvcmVyO0NhdGVnb3J5SUQ9JEZBUURhdGF7Q2F0ZWdvcnlJRH0iLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgU2hvdyBlcnJvciBtZXNzYWdlLCB3aGVuIGRlbGV0ZSBmYWlsZWQuCiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKAogICAgICAgICAgICAgICAgICAgICdXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBGQVEgYXJ0aWNsZSAlcyEnLAogICAgICAgICAgICAgICAgICAgICRGQVFEYXRhe0l0ZW1JRH0sCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIFNldCB0aGUgZGlhbG9nIHR5cGUuIEFzIGRlZmF1bHQsIHRoZSBkaWFsb2cgd2lsbCBoYXZlIDIgYnV0dG9uczogWWVzIGFuZCBOby4KICAgIG15ICREaWFsb2dUeXBlID0gJ0NvbmZpcm1hdGlvbic7CgogICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50RkFRRGVsZXRlJywKICAgICAgICBEYXRhICAgICAgICAgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICVGQVFEYXRhLAogICAgICAgIH0sCiAgICApOwoKICAgICMgQnVpbGQgdGhlIHJldHVybmVkIGRhdGEgc3RydWN0dXJlLgogICAgbXkgJURhdGEgPSAoCiAgICAgICAgSFRNTCAgICAgICA9PiAkT3V0cHV0LAogICAgICAgIERpYWxvZ1R5cGUgPT4gJERpYWxvZ1R5cGUsCiAgICApOwoKICAgICMgUmV0dXJuIEpTT04tU3RyaW5nIGJlY2F1c2Ugb2YgQUpBWC1Nb2RlLgogICAgbXkgJE91dHB1dEpTT04gPSAkTGF5b3V0T2JqZWN0LT5KU09ORW5jb2RlKCBEYXRhID0+IFwlRGF0YSApOwoKICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5BdHRhY2htZW50KAogICAgICAgIENvbnRlbnRUeXBlID0+ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PScgLiAkTGF5b3V0T2JqZWN0LT57Q2hhcnNldH0sCiAgICAgICAgQ29udGVudCAgICAgPT4gJE91dHB1dEpTT04sCiAgICAgICAgVHlwZSAgICAgICAgPT4gJ2lubGluZScsCiAgICAgICAgTm9DYWNoZSAgICAgPT4gMSwKICAgICk7Cn0KCjE7Cg==</File>
        <File Location="Kernel/Modules/AgentFAQEdit.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWdlbnRGQVFFZGl0OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6TGFuZ3VhZ2UgICAgICAgICAgICAgIHF3KFRyYW5zbGF0YWJsZSk7CnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIEFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QuCiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgR2V0IGNvbmZpZyBvZiBmcm9udGVuZCBtb2R1bGUuCiAgICAkU2VsZi0+e0NvbmZpZ30gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoIkZBUTo6RnJvbnRlbmQ6OiRTZWxmLT57QWN0aW9ufSIpIHx8ICcnOwoKICAgICMgR2V0IHRoZSBkeW5hbWljIGZpZWxkcyBmb3IgdGhpcyBzY3JlZW4uCiAgICBteSAkRHluYW1pY0ZpZWxkTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKS0+RHluYW1pY0ZpZWxkTGlzdEdldCgKICAgICAgICBWYWxpZCAgICAgICA9PiAxLAogICAgICAgIE9iamVjdFR5cGUgID0+ICdGQVEnLAogICAgICAgIEZpZWxkRmlsdGVyID0+ICRTZWxmLT57Q29uZmlnfS0+e0R5bmFtaWNGaWVsZH0gfHwge30sCiAgICApOwoKICAgICRTZWxmLT57RHluYW1pY0ZpZWxkfSA9IHt9OwoKICAgICMgY3JlYXRlIGR5bmFtaWMgZmllbGQgaGFzaCBhbmQgZGVmaW5pdGlvbgogICAgRFlOQU1JQ0ZJRUxEOgogICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyAkRHluYW1pY0ZpZWxkTGlzdCAvLyBbXSB9ICkgewogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIHVubGVzcyBJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKCiAgICAgICAgcHVzaCAkU2VsZi0+e01hc2tEZWZpbml0aW9ufS0+QCosIHsKICAgICAgICAgICAgREYgICAgICAgID0+ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+ICRTZWxmLT57Q29uZmlnfS0+e0R5bmFtaWNGaWVsZH17ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9ID09IDIgPyAxIDogMCwKICAgICAgICB9OwoKICAgICAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e0R5bmFtaWNGaWVsZH17ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9ID09IDIgKSB7CiAgICAgICAgICAgICREeW5hbWljRmllbGRDb25maWctPntNYW5kYXRvcnl9ID0gMTsKICAgICAgICB9CgogICAgICAgICRTZWxmLT57RHluYW1pY0ZpZWxkfXsgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0gPSAkRHluYW1pY0ZpZWxkQ29uZmlnOwogICAgfQoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBQZXJtaXNzaW9uIGNoZWNrLgogICAgaWYgKCAhJFNlbGYtPntBY2Nlc3NSd30gKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgTWVzc2FnZSAgICA9PiBUcmFuc2xhdGFibGUoJ1lvdSBuZWVkIHJ3IHBlcm1pc3Npb24hJyksCiAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgKTsKICAgIH0KCiAgICBteSAkUGFyYW1PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CgogICAgIyBHZXQgcGFyYW1ldGVycyBmcm9tIHdlYiByZXF1ZXN0LgogICAgbXkgJUdldFBhcmFtOwogICAgZm9yIG15ICRQYXJhbU5hbWUgKAogICAgICAgIHF3KEl0ZW1JRCBUaXRsZSBDYXRlZ29yeUlEIFN0YXRlSUQgTGFuZ3VhZ2VJRCBWYWxpZElEIEtleXdvcmRzIEFwcHJvdmVkIEZpZWxkMSBGaWVsZDIgRmllbGQzIEZpZWxkNCBGaWVsZDUgRmllbGQ2KQogICAgICAgICkKICAgIHsKICAgICAgICAkR2V0UGFyYW17JFBhcmFtTmFtZX0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1OYW1lICk7CiAgICB9CgogICAgIyBDaGVjayBuZWVkZWQgc3R1ZmYuCiAgICBpZiAoICEkR2V0UGFyYW17SXRlbUlEfSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdObyBJdGVtSUQgaXMgZ2l2ZW4hJyksCiAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICApOwogICAgfQoKICAgIG15ICRGQVFPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RkFRJyk7CgojIEZBUSBTZXJ2aWNlICMgVE9ETwogICAgbXkgJUZBUURhdGEgPSAkRkFRT2JqZWN0LT5GQVFHZXQoCiAgICAgICAgSXRlbUlEICAgICAgICA9PiAkR2V0UGFyYW17SXRlbUlEfSwKICAgICAgICBJdGVtRmllbGRzICAgID0+IDEsCiAgICAgICAgVXNlcklEICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgRHluYW1pY0ZpZWxkcyA9PiAxLAogICAgKTsKICAgIGlmICggISVGQVFEYXRhICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigpOwogICAgfQoKICAgICMgQ2hlY2sgdXNlciBwZXJtaXNzaW9uLgogICAgbXkgJFBlcm1pc3Npb24gPSAkRkFRT2JqZWN0LT5DaGVja0NhdGVnb3J5VXNlclBlcm1pc3Npb24oCiAgICAgICAgVXNlcklEICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgQ2F0ZWdvcnlJRCA9PiAkRkFRRGF0YXtDYXRlZ29yeUlEfSwKICAgICAgICBUeXBlICAgICAgID0+ICdydycsCiAgICApOwogICAgaWYgKCAhJFBlcm1pc3Npb24gKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgTWVzc2FnZSAgICA9PiBUcmFuc2xhdGFibGUoJ1lvdSBoYXZlIG5vIHBlcm1pc3Npb24gZm9yIHRoaXMgY2F0ZWdvcnkhJyksCiAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgKTsKICAgIH0KCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAjIEdldCBkeW5hbWljIGZpZWxkIHZhbHVlcyBmb3JtIHdlYiByZXF1ZXN0LgogICAgbXkgJUR5bmFtaWNGaWVsZFZhbHVlczsKCiAgICBteSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKTsKCiAgICBEWU5BTUlDRklFTEQ6CiAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIHZhbHVlcyAkU2VsZi0+e0R5bmFtaWNGaWVsZH0tPiUqICkgewogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKCiAgICAgICAgIyBFeHRyYWN0IHRoZSBkeW5hbWljIGZpZWxkIHZhbHVlIGZvcm0gdGhlIHdlYiByZXF1ZXN0LgogICAgICAgICREeW5hbWljRmllbGRWYWx1ZXN7ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9ID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPkVkaXRGaWVsZFZhbHVlR2V0KAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgUGFyYW1PYmplY3QgICAgICAgID0+ICRQYXJhbU9iamVjdCwKICAgICAgICAgICAgTGF5b3V0T2JqZWN0ICAgICAgID0+ICRMYXlvdXRPYmplY3QsCiAgICAgICAgKTsKICAgIH0KCiAgICBteSAkVXBsb2FkQ2FjaGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpVcGxvYWRDYWNoZScpOwoKICAgICMgZ2V0IGZvcm0gaWQKICAgIG15ICRGb3JtSUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpGb3JtQ2FjaGUnKS0+UHJlcGFyZUZvcm1JRCgKICAgICAgICBQYXJhbU9iamVjdCAgPT4gJFBhcmFtT2JqZWN0LAogICAgICAgIExheW91dE9iamVjdCA9PiAkTGF5b3V0T2JqZWN0LAogICAgKTsKCiAgICAjIEdldCBzY3JlZW4gdHlwZS4KICAgIG15ICRTY3JlZW5UeXBlID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1NjcmVlblR5cGUnICkgfHwgJyc7CgogICAgbXkgJFF1ZXVlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlF1ZXVlJyk7CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBzaG93IHRoZSBGQVEgZWRpdCBzY3JlZW4KICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGlmICggISRTZWxmLT57U3ViYWN0aW9ufSApIHsKCiAgICAgICAgbXkgJE91dHB1dDsKCiAgICAgICAgIyBTaG93IGEgcG9wLXVwIHNjcmVlbi4KICAgICAgICBpZiAoICRTY3JlZW5UeXBlIGVxICdQb3B1cCcgKSB7CgogICAgICAgICAgICAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKAogICAgICAgICAgICAgICAgVHlwZSAgICAgID0+ICdTbWFsbCcsCiAgICAgICAgICAgICAgICBCb2R5Q2xhc3MgPT4gJ1BvcHVwJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdTdGFydFNtYWxsJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICVGQVFEYXRhLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgU2hvdyBhIG5vcm1hbCB3aW5kb3cuCiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdTdGFydE5vcm1hbCcsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAlRkFRRGF0YSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIEdldCBhbGwgZXhpc3RpbmcgYXR0YWNobWVudHMgKHdpdGhvdXQgaW5saW5lIGF0dGFjaG1lbnRzKS4KICAgICAgICBteSBARXhpc3RpbmdBdHRhY2htZW50cyA9ICRGQVFPYmplY3QtPkF0dGFjaG1lbnRJbmRleCgKICAgICAgICAgICAgSXRlbUlEICAgICA9PiAkR2V0UGFyYW17SXRlbUlEfSwKICAgICAgICAgICAgU2hvd0lubGluZSA9PiAwLAogICAgICAgICAgICBVc2VySUQgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIENvcHkgYWxsIGV4aXN0aW5nIGF0dGFjaG1lbnRzIHRvIHVwbG9hZCBjYWNoZS4KICAgICAgICBmb3IgbXkgJEF0dGFjaG1lbnQgKEBFeGlzdGluZ0F0dGFjaG1lbnRzKSB7CgogICAgICAgICAgICAjIEdldCB0aGUgZXhpc3RpbmcgYXR0YWNobWVudCBkYXRhLgogICAgICAgICAgICBteSAlRmlsZSA9ICRGQVFPYmplY3QtPkF0dGFjaG1lbnRHZXQoCiAgICAgICAgICAgICAgICBJdGVtSUQgPT4gJEdldFBhcmFte0l0ZW1JRH0sCiAgICAgICAgICAgICAgICBGaWxlSUQgPT4gJEF0dGFjaG1lbnQtPntGaWxlSUR9LAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgR2V0IGNvbnRlbnQgZGlzcG9zaXRpb24gKGlmIGl0cyBhbiBpbmxpbmUgYXR0YWNobWVudCkuCiAgICAgICAgICAgIG15ICREaXNwb3NpdGlvbiA9ICRBdHRhY2htZW50LT57SW5saW5lfSA/ICdpbmxpbmUnIDogJyc7CgogICAgICAgICAgICAjIEFkZCBhdHRhY2htZW50cyB0byB0aGUgdXBsb2FkIGNhY2hlLgogICAgICAgICAgICAkVXBsb2FkQ2FjaGVPYmplY3QtPkZvcm1JREFkZEZpbGUoCiAgICAgICAgICAgICAgICBGb3JtSUQgICAgICA9PiAkRm9ybUlELAogICAgICAgICAgICAgICAgRmlsZW5hbWUgICAgPT4gJEZpbGV7RmlsZW5hbWV9LAogICAgICAgICAgICAgICAgQ29udGVudCAgICAgPT4gJEZpbGV7Q29udGVudH0sCiAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAkRmlsZXtDb250ZW50VHlwZX0sCiAgICAgICAgICAgICAgICBEaXNwb3NpdGlvbiA9PiAkRGlzcG9zaXRpb24sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIEdldCBhbGwgYXR0YWNobWVudHMgbWV0YSBkYXRhIGZyb20gdXBsb2FkIGNhY2hlLgogICAgICAgIG15IEBBdHRhY2htZW50cyA9ICRVcGxvYWRDYWNoZU9iamVjdC0+Rm9ybUlER2V0QWxsRmlsZXNNZXRhKAogICAgICAgICAgICBGb3JtSUQgPT4gJEZvcm1JRCwKICAgICAgICApOwoKICAgICAgICAjIFJld3JpdGUgb2xkIHN0eWxlIGlubGluZSBpbWFnZSBVUkxzLgogICAgICAgIEZJRUxEOgogICAgICAgIGZvciBteSAkRmllbGQgKHF3KEZpZWxkMSBGaWVsZDIgRmllbGQzIEZpZWxkNCBGaWVsZDUgRmllbGQ2KSkgewoKICAgICAgICAgICAgbmV4dCBGSUVMRCBpZiAhJEZBUURhdGF7JEZpZWxkfTsKCiAgICAgICAgICAgICMgUmV3cml0ZSBoYW5kbGUgYW5kIGFjdGlvbiwgdGFrZSBjYXJlIG9mIG9sZCBzdHlsZSBiZWZvcmUgRkFRIDIuMC54LgogICAgICAgICAgICAkRkFRRGF0YXskRmllbGR9ID1+IHN7CiAgICAgICAgICAgICAgICBBY3Rpb249QWdlbnRGQVEgWyZdKGFtcDspPyBTdWJhY3Rpb249RG93bmxvYWQgWyZdKGFtcDspPwogICAgICAgICAgICB9e0FjdGlvbj1BZ2VudEZBUVpvb207U3ViYWN0aW9uPURvd25sb2FkQXR0YWNobWVudDt9Z3htczsKICAgICAgICB9CgogICAgICAgICMgc2VwYXJhdGUgZHluYW1pYyBmaWVsZCBkYXRhIHRvIHBhc3MgdG8gbWFzayByb3V0aW5lCiAgICAgICAgbXkgJUZBUURhdGFEeW5hbWljRmllbGRWYWx1ZXMgPSBtYXAgeyAkRkFRRGF0YXsiRHluYW1pY0ZpZWxkXyRfIn0gPyAoICJEeW5hbWljRmllbGRfJF8iID0+ICRGQVFEYXRheyJEeW5hbWljRmllbGRfJF8ifSApIDogKCkgfSBrZXlzICRTZWxmLT57RHluYW1pY0ZpZWxkfS0+JSo7CgogICAgICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdGQVE6OkFwcHJvdmFsUmVxdWlyZWQnKSApIHsKCiAgICAgICAgICAgIG15ICRBcHByb3ZhbFF1ZXVlID0gJENvbmZpZ09iamVjdC0+R2V0KCdGQVE6OkFwcHJvdmFsUXVldWUnKSB8fCAnJzsKCiAgICAgICAgICAgICMgQ2hlY2sgaWYgQXBwcm92YWwgcXVldWUgZXhpc3RzLgogICAgICAgICAgICBteSAkQXBwcm92YWxRdWV1ZUlEID0gJFF1ZXVlT2JqZWN0LT5RdWV1ZUxvb2t1cCgKICAgICAgICAgICAgICAgIFF1ZXVlID0+ICRBcHByb3ZhbFF1ZXVlLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBTaG93IG5vdGlmaWNhdGlvbiBpZiBBcHByb3ZhbCBxdWV1ZSBkb2VzIG5vdCBleGlzdHMuCiAgICAgICAgICAgIGlmICggISRBcHByb3ZhbFF1ZXVlSUQgKSB7CiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnRXJyb3InLAogICAgICAgICAgICAgICAgICAgIEluZm8gICAgID0+ICJGQVEgQXBwcm92YWwgaXMgZW5hYmxlZCBidXQgcXVldWUgJyRBcHByb3ZhbFF1ZXVlJyBkb2VzIG5vdCBleGlzdHMiLAogICAgICAgICAgICAgICAgICAgIExpbmsgICAgID0+ICRMYXlvdXRPYmplY3QtPntCYXNlbGlua30KICAgICAgICAgICAgICAgICAgICAgICAgLiAnQWN0aW9uPUFkbWluU3lzdGVtQ29uZmlndXJhdGlvbjtTdWJhY3Rpb249Vmlld0N1c3RvbUdyb3VwO05hbWVzPUZBUTo6QXBwcm92YWxRdWV1ZScsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkT3V0cHV0IC49ICRTZWxmLT5fTWFza05ldygKICAgICAgICAgICAgJUZBUURhdGEsCiAgICAgICAgICAgIEF0dGFjaG1lbnRzICA9PiBcQEF0dGFjaG1lbnRzLAogICAgICAgICAgICBTY3JlZW5UeXBlICAgPT4gJFNjcmVlblR5cGUsCiAgICAgICAgICAgIEZvcm1JRCAgICAgICA9PiAkRm9ybUlELAogICAgICAgICAgICBEeW5hbWljRmllbGQgPT4gXCVGQVFEYXRhRHluYW1pY0ZpZWxkVmFsdWVzLAogICAgICAgICk7CgogICAgICAgIGlmICggJFNjcmVlblR5cGUgZXEgJ1BvcHVwJyApIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdFbmRTbWFsbCcsCiAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICApOwogICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlciggVHlwZSA9PiAnU21hbGwnICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0VuZE5vcm1hbCcsCiAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICApOwogICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBTYXZlIHRoZSBGQVEKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdTYXZlJyApIHsKCiAgICAgICAgIyBDaGFsbGVuZ2UgdG9rZW4gY2hlY2sgZm9yIHdyaXRlIGFjdGlvbi4KICAgICAgICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgICAgIG15ICRPdXRwdXQ7CgogICAgICAgICMgU2hvdyBhIHBvcC11cCBzY3JlZW4uCiAgICAgICAgaWYgKCAkU2NyZWVuVHlwZSBlcSAnUG9wdXAnICkgewogICAgICAgICAgICAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKAogICAgICAgICAgICAgICAgVHlwZSAgICAgID0+ICdTbWFsbCcsCiAgICAgICAgICAgICAgICBCb2R5Q2xhc3MgPT4gJ1BvcHVwJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdTdGFydFNtYWxsJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICVGQVFEYXRhLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgU2hvdyBhIG5vcm1hbCB3aW5kb3cuCiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnU3RhcnROb3JtYWwnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgJUZBUURhdGEsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgbXkgJUVycm9yOwogICAgICAgIGZvciBteSAkUGFyYW1OYW1lIChxdyhUaXRsZSBDYXRlZ29yeUlEKSkgewoKICAgICAgICAgICAgIyBJZiByZXF1aXJlZCBmaWVsZCBpcyBub3QgZ2l2ZW4sIGFkZCBzZXJ2ZXIgZXJyb3IgY2xhc3MuCiAgICAgICAgICAgIGlmICggISRHZXRQYXJhbXskUGFyYW1OYW1lfSApIHsKICAgICAgICAgICAgICAgICRFcnJvcnsgJFBhcmFtTmFtZSAuICdTZXJ2ZXJFcnJvcicgfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgIyBDaGVjayBpZiBhbiBhdHRhY2htZW50IG11c3QgYmUgZGVsZXRlZC4KICAgICAgICAjIG15IEBBdHRhY2htZW50SURzID0gbWFwIHsKICAgICAgICAjICAgICBteSAoJElEKSA9ICRfID1+IG17IFxBIEF0dGFjaG1lbnREZWxldGUgKFxkKykgXHogfXhtczsKICAgICAgICAjICAgICAkSUQgPyAkSUQgOiAoKTsKICAgICAgICAjIH0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbU5hbWVzKCk7CgogICAgICAgICMgQ09VTlQ6CiAgICAgICAgIyBmb3IgbXkgJENvdW50ICggcmV2ZXJzZSBzb3J0IEBBdHRhY2htZW50SURzICkgewoKICAgICAgICAjICAgICAjIGNoZWNrIGlmIHRoZSBkZWxldGUgYnV0dG9uIHdhcyBwcmVzc2VkIGZvciB0aGlzIGF0dGFjaG1lbnQKICAgICAgICAjICAgICBteSAkRGVsZXRlID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gIkF0dGFjaG1lbnREZWxldGUkQ291bnQiICk7CgogICAgICAgICMgICAgICMgY2hlY2sgbmV4dCBhdHRhY2htZW50IGlmIGl0IHdhcyBub3QgcHJlc3NlZAogICAgICAgICMgICAgIG5leHQgQ09VTlQgaWYgISREZWxldGU7CgogICAgICAgICMgICAgICMgcmVtZW1iZXIgdGhhdCB3ZSBuZWVkIHRvIHNob3cgdGhlIHBhZ2UgYWdhaW4KICAgICAgICAjICAgICAkRXJyb3J7QXR0YWNobWVudH0gPSAxOwoKICAgICAgICAjICAgICAjIHJlbW92ZSB0aGUgYXR0YWNobWVudCBmcm9tIHRoZSB1cGxvYWQgY2FjaGUKICAgICAgICAjICAgICAkVXBsb2FkQ2FjaGVPYmplY3QtPkZvcm1JRFJlbW92ZUZpbGUoCiAgICAgICAgIyAgICAgICAgIEZvcm1JRCA9PiAkRm9ybUlELAogICAgICAgICMgICAgICAgICBGaWxlSUQgPT4gJENvdW50LAogICAgICAgICMgICAgICk7CiAgICAgICAgIyB9CgogICAgICAgICMgIyBjaGVjayBpZiB0aGVyZSB3YXMgYW4gYXR0YWNobWVudCB1cGxvYWQKICAgICAgICAjIGlmICggJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0F0dGFjaG1lbnRVcGxvYWQnICkgKSB7CgogICAgICAgICMgICAgICMgcmVtZW1iZXIgdGhhdCB3ZSBuZWVkIHRvIHNob3cgdGhlIHBhZ2UgYWdhaW4KICAgICAgICAjICAgICAkRXJyb3J7QXR0YWNobWVudH0gPSAxOwoKICAgICAgICAjICAgICAjIGdldCB0aGUgdXBsb2FkZWQgYXR0YWNobWVudAogICAgICAgICMgICAgIG15ICVVcGxvYWRTdHVmZiA9ICRQYXJhbU9iamVjdC0+R2V0VXBsb2FkQWxsKAogICAgICAgICMgICAgICAgICBQYXJhbSAgPT4gJ0ZpbGVVcGxvYWQnLAogICAgICAgICMgICAgICAgICBTb3VyY2UgPT4gJ3N0cmluZycsCiAgICAgICAgIyAgICAgKTsKCiAgICAgICAgIyAgICAgIyBhZGQgYXR0YWNobWVudCB0byB0aGUgdXBsb2FkIGNhY2hlCiAgICAgICAgIyAgICAgJFVwbG9hZENhY2hlT2JqZWN0LT5Gb3JtSURBZGRGaWxlKAogICAgICAgICMgICAgICAgICBGb3JtSUQgPT4gJEZvcm1JRCwKICAgICAgICAjICAgICAgICAgJVVwbG9hZFN0dWZmLAogICAgICAgICMgICAgICk7CiAgICAgICAgIyB9CgogICAgICAgICMgc3RvcmUgZHluYW1pYyBmaWVsZCB2YWxpZGF0aW9uIHJlc3VsdHMKICAgICAgICBteSAlRHluYW1pY0ZpZWxkVmFsaWRhdGlvblJlc3VsdDsKCiAgICAgICAgRFlOQU1JQ0ZJRUxEOgogICAgICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggdmFsdWVzICRTZWxmLT57RHluYW1pY0ZpZWxkfS0+JSogKSB7CiAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKCiAgICAgICAgICAgIG15ICRWYWxpZGF0aW9uUmVzdWx0ID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPkVkaXRGaWVsZFZhbHVlVmFsaWRhdGUoCiAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgIFBhcmFtT2JqZWN0ICAgICAgICA9PiAkUGFyYW1PYmplY3QsCiAgICAgICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4KICAgICAgICAgICAgICAgICAgICAkU2VsZi0+e0NvbmZpZ30tPntEeW5hbWljRmllbGR9LT57ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9ID09IDIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSgkVmFsaWRhdGlvblJlc3VsdCkgKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoCiAgICAgICAgICAgICAgICAgICAgICAgICdDb3VsZCBub3QgcGVyZm9ybSB2YWxpZGF0aW9uIG9uIGZpZWxkICVzIScsCiAgICAgICAgICAgICAgICAgICAgICAgICREeW5hbWljRmllbGRDb25maWctPntMYWJlbH0sCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIFByb3BhZ2F0ZSB2YWxpZGF0aW9uIGVycm9yIHRvIHRoZSBFcnJvciB2YXJpYWJsZSB0byBiZSBkZXRlY3RlZCBieSB0aGUgZnJvbnRlbmQuCiAgICAgICAgICAgIGlmICggJFZhbGlkYXRpb25SZXN1bHQtPntTZXJ2ZXJFcnJvcn0gKSB7CiAgICAgICAgICAgICAgICAkRXJyb3J7ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9ICAgICAgICAgICAgICAgICAgICAgICAgPSAnIFNlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICREeW5hbWljRmllbGRWYWxpZGF0aW9uUmVzdWx0eyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSA9ICRWYWxpZGF0aW9uUmVzdWx0OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIFNlbmQgc2VydmVyIGVycm9yIGlmIGFueSByZXF1aXJlZCBwYXJhbWV0ZXIgaXMgbWlzc2luZwogICAgICAgIGlmICglRXJyb3IpIHsKCiAgICAgICAgICAgICMgIyBpZiB0aGVyZSB3YXMgYW4gYXR0YWNobWVudCBkZWxldGUgb3IgdXBsb2FkCiAgICAgICAgICAgICMgIyB3ZSBkbyBub3Qgd2FudCB0byBzaG93IHZhbGlkYXRpb24gZXJyb3JzIGZvciBvdGhlciBmaWVsZHMKICAgICAgICAgICAgIyBpZiAoICRFcnJvcntBdHRhY2htZW50fSApIHsKICAgICAgICAgICAgIyAgICAgJUVycm9yID0gKCk7CiAgICAgICAgICAgICMgfQoKICAgICAgICAgICAgIyBnZXQgYWxsIGF0dGFjaG1lbnRzIG1ldGEgZGF0YQogICAgICAgICAgICBteSBAQXR0YWNobWVudHMgPSAkVXBsb2FkQ2FjaGVPYmplY3QtPkZvcm1JREdldEFsbEZpbGVzTWV0YSgKICAgICAgICAgICAgICAgIEZvcm1JRCA9PiAkRm9ybUlELAogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6QXBwcm92YWxSZXF1aXJlZCcpICkgewoKICAgICAgICAgICAgICAgIG15ICRBcHByb3ZhbFF1ZXVlID0gJENvbmZpZ09iamVjdC0+R2V0KCdGQVE6OkFwcHJvdmFsUXVldWUnKSB8fCAnJzsKCiAgICAgICAgICAgICAgICAjIENoZWNrIGlmIEFwcHJvdmFsIHF1ZXVlIGV4aXN0cy4KICAgICAgICAgICAgICAgIG15ICRBcHByb3ZhbFF1ZXVlSUQgPSAkUXVldWVPYmplY3QtPlF1ZXVlTG9va3VwKAogICAgICAgICAgICAgICAgICAgIFF1ZXVlID0+ICRBcHByb3ZhbFF1ZXVlLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIFNob3cgbm90aWZpY2F0aW9uIGlmIEFwcHJvdmFsIHF1ZXVlIGRvZXMgbm90IGV4aXN0cy4KICAgICAgICAgICAgICAgIGlmICggISRBcHByb3ZhbFF1ZXVlSUQgKSB7CiAgICAgICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdFcnJvcicsCiAgICAgICAgICAgICAgICAgICAgICAgIEluZm8gICAgID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRkFRIEFwcHJvdmFsIGlzIGVuYWJsZWQgYnV0IHF1ZXVlICckQXBwcm92YWxRdWV1ZScgZG9lcyBub3QgZXhpc3RzIiwKICAgICAgICAgICAgICAgICAgICAgICAgTGluayA9PiAkTGF5b3V0T2JqZWN0LT57QmFzZWxpbmt9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICdBY3Rpb249QWRtaW5TeXN0ZW1Db25maWd1cmF0aW9uO1N1YmFjdGlvbj1WaWV3Q3VzdG9tR3JvdXA7TmFtZXM9RkFROjpBcHByb3ZhbFF1ZXVlJywKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAkT3V0cHV0IC49ICRTZWxmLT5fTWFza05ldygKICAgICAgICAgICAgICAgIEF0dGFjaG1lbnRzID0+IFxAQXR0YWNobWVudHMsCiAgICAgICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgICAgICAlRXJyb3IsCiAgICAgICAgICAgICAgICBTY3JlZW5UeXBlICAgPT4gJFNjcmVlblR5cGUsCiAgICAgICAgICAgICAgICBGb3JtSUQgICAgICAgPT4gJEZvcm1JRCwKICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZCA9PiBcJUR5bmFtaWNGaWVsZFZhbHVlcywKICAgICAgICAgICAgICAgIERGRXJyb3JzICAgICA9PiBcJUR5bmFtaWNGaWVsZFZhbGlkYXRpb25SZXN1bHQsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoICRTY3JlZW5UeXBlIGVxICdQb3B1cCcgKSB7CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdFbmRTbWFsbCcsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoIFR5cGUgPT4gJ1NtYWxsJyApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnRW5kTm9ybWFsJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgICAgIH0KCiAgICAgICAgIyBTZXQgdGhlIGNvbnRlbnQgdHlwZS4KICAgICAgICBteSAkQ29udGVudFR5cGUgPSAndGV4dC9wbGFpbic7CiAgICAgICAgaWYgKCAkTGF5b3V0T2JqZWN0LT57QnJvd3NlclJpY2hUZXh0fSAmJiAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6SXRlbTo6SFRNTCcpICkgewogICAgICAgICAgICAkQ29udGVudFR5cGUgPSAndGV4dC9odG1sJzsKICAgICAgICB9CgogICAgICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdGQVE6OlNlcnZpY2UnKSApIHsKICAgICAgICAgICAgbXkgJFBhcmFtT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwoKICAgICAgICAgICAgIyBnZXQgYWxsIHNlcnZpY2VzCiAgICAgICAgICAgIG15ICVTZXJ2aWNlTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTZXJ2aWNlJyktPlNlcnZpY2VMaXN0KAogICAgICAgICAgICAgICAgS2VlcENoaWxkcmVuID0+ICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpTZXJ2aWNlOjpLZWVwQ2hpbGRyZW4nKSAvLyAwLAogICAgICAgICAgICAgICAgVmFsaWQgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG15IEBTZXJ2aWNlSURzOwogICAgICAgICAgICBpZiAoICRQYXJhbU9iamVjdC0+R2V0QXJyYXkoIFBhcmFtID0+ICdTZXJ2aWNlSUQnICkgKSB7CiAgICAgICAgICAgICAgICBAU2VydmljZUlEcyA9ICRQYXJhbU9iamVjdC0+R2V0QXJyYXkoIFBhcmFtID0+ICdTZXJ2aWNlSUQnICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJEdldFBhcmFte1NlcnZpY2VJRH0gICA9IFxAU2VydmljZUlEczsKICAgICAgICAgICAgJEdldFBhcmFte1NlcnZpY2VMaXN0fSA9IFwlU2VydmljZUxpc3Q7CiAgICAgICAgfQoKICAgICAgICAjIFVwZGF0ZSB0aGUgbmV3IEZBUSBpdGVtLgogICAgICAgIG15ICRVcGRhdGVTdWNjZXNzID0gJEZBUU9iamVjdC0+RkFRVXBkYXRlKAogICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICRDb250ZW50VHlwZSwKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgU2hvdyBlcnJvciBpZiBGQVEgaXRlbSBjb3VsZCBub3QgYmUgdXBkYXRlZC4KICAgICAgICBpZiAoICEkVXBkYXRlU3VjY2VzcyApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKCk7CiAgICAgICAgfQoKICAgICAgICAjIEdldCBhbGwgYXR0YWNobWVudHMgZnJvbSB1cGxvYWQgY2FjaGUuCiAgICAgICAgbXkgQEF0dGFjaG1lbnRzID0gJFVwbG9hZENhY2hlT2JqZWN0LT5Gb3JtSURHZXRBbGxGaWxlc0RhdGEoCiAgICAgICAgICAgIEZvcm1JRCA9PiAkRm9ybUlELAogICAgICAgICk7CgogICAgICAgICMgR2V0IGFsbCBleGlzdGluZyBhdHRhY2htZW50cy4KICAgICAgICBteSBARXhpc3RpbmdBdHRhY2htZW50cyA9ICRGQVFPYmplY3QtPkF0dGFjaG1lbnRJbmRleCgKICAgICAgICAgICAgSXRlbUlEICAgICA9PiAkR2V0UGFyYW17SXRlbUlEfSwKICAgICAgICAgICAgU2hvd0lubGluZSA9PiAxLAogICAgICAgICAgICBVc2VySUQgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIExvb2t1cCBvbGQgaW5saW5lIGF0dGFjaG1lbnRzIChpbml0aWFsbHkgbG9hZGVkIHRvIEFnZW50RkFRRWRpdC5wbSBzY3JlZW4pCiAgICAgICAgIyBhbmQgcHVzaCB0byBBdHRhY2htZW50cyBhcnJheSBpZiB0aGV5IHN0aWxsIGV4aXN0IGluIHRoZSBmb3JtLgogICAgICAgIEFUVEFDSE1FTlQ6CiAgICAgICAgZm9yIG15ICRBdHRhY2htZW50IChARXhpc3RpbmdBdHRhY2htZW50cykgewoKICAgICAgICAgICAgbmV4dCBBVFRBQ0hNRU5UIGlmICEkQXR0YWNobWVudC0+e0lubGluZX07CgogICAgICAgICAgICBOVU1CRVI6CiAgICAgICAgICAgIGZvciBteSAkTnVtYmVyICggMSAuLiA2ICkgewoKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAkRkFRRGF0YXsgJ0ZpZWxkJyAuICROdW1iZXIgfQogICAgICAgICAgICAgICAgICAgID1+IG17IEFjdGlvbj1BZ2VudEZBUVpvb207U3ViYWN0aW9uPURvd25sb2FkQXR0YWNobWVudDtJdGVtSUQ9JEdldFBhcmFte0l0ZW1JRH07RmlsZUlEPSRBdHRhY2htZW50LT57RmlsZUlEfSB9bXN4CiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewoKICAgICAgICAgICAgICAgICAgICAjIEdldCB0aGUgZXhpc3RpbmcgaW5saW5lIGF0dGFjaG1lbnQgZGF0YS4KICAgICAgICAgICAgICAgICAgICBteSAlRmlsZSA9ICRGQVFPYmplY3QtPkF0dGFjaG1lbnRHZXQoCiAgICAgICAgICAgICAgICAgICAgICAgIEl0ZW1JRCA9PiAkR2V0UGFyYW17SXRlbUlEfSwKICAgICAgICAgICAgICAgICAgICAgICAgRmlsZUlEID0+ICRBdHRhY2htZW50LT57RmlsZUlEfSwKICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICBwdXNoIEBBdHRhY2htZW50cywgewogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50ICAgICA9PiAkRmlsZXtDb250ZW50fSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJEZpbGV7Q29udGVudFR5cGV9LAogICAgICAgICAgICAgICAgICAgICAgICBGaWxlbmFtZSAgICA9PiAkRmlsZXtGaWxlbmFtZX0sCiAgICAgICAgICAgICAgICAgICAgICAgIEZpbGVzaXplICAgID0+ICRGaWxle0ZpbGVzaXplfSwKICAgICAgICAgICAgICAgICAgICAgICAgRGlzcG9zaXRpb24gPT4gJ2lubGluZScsCiAgICAgICAgICAgICAgICAgICAgICAgIEZpbGVJRCAgICAgID0+ICRBdHRhY2htZW50LT57RmlsZUlEfSwKICAgICAgICAgICAgICAgICAgICB9OwoKICAgICAgICAgICAgICAgICAgICBsYXN0IE5VTUJFUjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBCdWlsZCBhIGxvb2t1cCBoYXNoIG9mIHRoZSBuZXcgYXR0YWNobWVudHMuCiAgICAgICAgbXkgJU5ld0F0dGFjaG1lbnQ7CiAgICAgICAgZm9yIG15ICRBdHRhY2htZW50IChAQXR0YWNobWVudHMpIHsKCiAgICAgICAgICAgICMgVGhlIGtleSBpcyB0aGUgZmlsZW5hbWUgKyBmaWxlc2l6ZSArIGNvbnRlbnQgdHlwZS4KICAgICAgICAgICAgbXkgJEtleSA9ICRBdHRhY2htZW50LT57RmlsZW5hbWV9CiAgICAgICAgICAgICAgICAuICRBdHRhY2htZW50LT57RmlsZXNpemV9CiAgICAgICAgICAgICAgICAuICRBdHRhY2htZW50LT57Q29udGVudFR5cGV9OwoKICAgICAgICAgICAgIyBBcHBlbmQgY29udGVudCBpZCBpZiBhdmFpbGFibGUgKGZvciBuZXcgaW5saW5lIGltYWdlcykuCiAgICAgICAgICAgIGlmICggJEF0dGFjaG1lbnQtPntDb250ZW50SUR9ICkgewogICAgICAgICAgICAgICAgJEtleSAuPSAkQXR0YWNobWVudC0+e0NvbnRlbnRJRH07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgU3RvcmUgYWxsIG9mIHRoZSBuZXcgYXR0YWNobWVudCBkYXRhLgogICAgICAgICAgICAkTmV3QXR0YWNobWVudHskS2V5fSA9ICRBdHRhY2htZW50OwogICAgICAgIH0KCiAgICAgICAgIyBDaGVjayB0aGUgZXhpc3RpbmcgYXR0YWNobWVudHMuCiAgICAgICAgQVRUQUNITUVOVDoKICAgICAgICBmb3IgbXkgJEF0dGFjaG1lbnQgKEBFeGlzdGluZ0F0dGFjaG1lbnRzKSB7CgogICAgICAgICAgICAjIFRoZSBrZXkgaXMgdGhlIGZpbGVuYW1lICsgZmlsZXNpemVyYXcgKyBjb250ZW50IHR5cGUgKG5vIGNvbnRlbnQgaWQsIGFzIGV4aXN0aW5nIGF0dGFjaG1lbnRzIGRvbid0IGhhdmUgaXQpLgogICAgICAgICAgICBteSAkS2V5ID0gJEF0dGFjaG1lbnQtPntGaWxlbmFtZX0KICAgICAgICAgICAgICAgIC4gJEF0dGFjaG1lbnQtPntGaWxlc2l6ZVJhd30KICAgICAgICAgICAgICAgIC4gJEF0dGFjaG1lbnQtPntDb250ZW50VHlwZX07CgogICAgICAgICAgICAjIEF0dGFjaG1lbnQgaXMgYWxyZWFkeSBleGlzdGluZywgd2UgY2FuIGRlbGV0ZSBpdCBmcm9tIHRoZSBuZXcgYXR0YWNobWVudCBoYXNoLgogICAgICAgICAgICBpZiAoICROZXdBdHRhY2htZW50eyRLZXl9ICkgewogICAgICAgICAgICAgICAgZGVsZXRlICROZXdBdHRhY2htZW50eyRLZXl9OwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIEV4aXN0aW5nIGF0dGFjaG1lbnQgaXMgbm8gbG9uZ2VyIGluIG5ldyBhdHRhY2htZW50cyBoYXNoLgogICAgICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICAgICAjIERlbGV0ZSB0aGUgZXhpc3RpbmcgYXR0YWNobWVudC4KICAgICAgICAgICAgICAgIG15ICREZWxldGVTdWNjZXNzZnVsID0gJEZBUU9iamVjdC0+QXR0YWNobWVudERlbGV0ZSgKICAgICAgICAgICAgICAgICAgICBJdGVtSUQgPT4gJEdldFBhcmFte0l0ZW1JRH0sCiAgICAgICAgICAgICAgICAgICAgRmlsZUlEID0+ICRBdHRhY2htZW50LT57RmlsZUlEfSwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIGlmICggISREZWxldGVTdWNjZXNzZnVsICkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5GYXRhbEVycm9yKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgV3JpdGUgdGhlIG5ldyBhdHRhY2htZW50cy4KICAgICAgICBBVFRBQ0hNRU5UOgogICAgICAgIGZvciBteSAkQXR0YWNobWVudCAoIHZhbHVlcyAlTmV3QXR0YWNobWVudCApIHsKCiAgICAgICAgICAgICMgQ2hlY2sgaWYgYXR0YWNobWVudCBpcyBhbiBpbmxpbmUgYXR0YWNobWVudC4KICAgICAgICAgICAgbXkgJElubGluZSA9IDA7CiAgICAgICAgICAgIGlmICggJEF0dGFjaG1lbnQtPntEaXNwb3NpdGlvbn0gZXEgJ2lubGluZScgKSB7CgogICAgICAgICAgICAgICAgIyBSZW1lbWJlciB0aGF0IGl0IGlzIGlubGluZS4KICAgICAgICAgICAgICAgICRJbmxpbmUgPSAxOwoKICAgICAgICAgICAgICAgICMgUmVtZW1iZXIgaWYgdGhpcyBpbmxpbmUgYXR0YWNobWVudCBpcyBhbHJlYWR5IHVzZWQgaW4gYW55IEZBUSBpdGVtLgogICAgICAgICAgICAgICAgbXkgJElubGluZUF0dGFjaG1lbnRGb3VuZDsKCiAgICAgICAgICAgICAgICAjIENoZWNrIGFsbCBmaWVsZHMgZm9yIHRoZSBpbmxpbmUgYXR0YWNobWVudC4KICAgICAgICAgICAgICAgIE5VTUJFUjoKICAgICAgICAgICAgICAgIGZvciBteSAkTnVtYmVyICggMSAuLiA2ICkgewoKICAgICAgICAgICAgICAgICAgICAjIEdldCBGQVEgZmllbGQuCiAgICAgICAgICAgICAgICAgICAgbXkgJEZpZWxkID0gJEdldFBhcmFteyAnRmllbGQnIC4gJE51bWJlciB9OwoKICAgICAgICAgICAgICAgICAgICAjIFNraXAgZW1wdHkgZmllbGRzLgogICAgICAgICAgICAgICAgICAgIG5leHQgTlVNQkVSIGlmICEkRmllbGQ7CgogICAgICAgICAgICAgICAgICAgICMgU2tpcCBpZiB0aGUgZmllbGQgaXMgbm90IG5ldyAoYWRkZWQpIG9yIG9sZCAoaW5pdGlhbGx5IGxvYWRlZCkgaW5saW5lIGF0dGFjaG1lbnQuCiAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgICAkRmllbGQgIX4gbXsgJEF0dGFjaG1lbnQtPntDb250ZW50SUR9IH14bXMKICAgICAgICAgICAgICAgICAgICAgICAgJiYgJEZpZWxkCiAgICAgICAgICAgICAgICAgICAgICAgICF+IG17IEFjdGlvbj1BZ2VudEZBUVpvb207U3ViYWN0aW9uPURvd25sb2FkQXR0YWNobWVudDtJdGVtSUQ9JEdldFBhcmFte0l0ZW1JRH07RmlsZUlEPSRBdHRhY2htZW50LT57RmlsZUlEfSB9eG1zCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgTlVNQkVSOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgIyBGb3VuZCB0aGUgaW5saW5lIGF0dGFjaG1lbnQuCiAgICAgICAgICAgICAgICAgICAgJElubGluZUF0dGFjaG1lbnRGb3VuZCA9IDE7CgogICAgICAgICAgICAgICAgICAgICMgV2UgZG8gbm90IG5lZWQgdG8gc2VhcmNoIGZ1cnRoZXIuCiAgICAgICAgICAgICAgICAgICAgbGFzdCBOVU1CRVI7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBXZSBkbyBub3Qgd2FudCB0byBrZWVwIHRoaXMgYXR0YWNobWVudCwgYmVjYXVzZSBpdCB3YXMgZGVsZXRlZCBpbiB0aGUgcmljaC10ZXh0IGVkaXRvci4KICAgICAgICAgICAgICAgIG5leHQgQVRUQUNITUVOVCBpZiAhJElubGluZUF0dGFjaG1lbnRGb3VuZDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBBZGQgYXR0YWNobWVudC4KICAgICAgICAgICAgbXkgJEZpbGVJRCA9ICRGQVFPYmplY3QtPkF0dGFjaG1lbnRBZGQoCiAgICAgICAgICAgICAgICAleyRBdHRhY2htZW50fSwKICAgICAgICAgICAgICAgIEl0ZW1JRCA9PiAkR2V0UGFyYW17SXRlbUlEfSwKICAgICAgICAgICAgICAgIElubGluZSA9PiAkSW5saW5lLAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaWYgKCAhJEZpbGVJRCApIHsKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5GYXRhbEVycm9yKCk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG5leHQgQVRUQUNITUVOVCBpZiAhJElubGluZTsKICAgICAgICAgICAgbmV4dCBBVFRBQ0hNRU5UIGlmICEkTGF5b3V0T2JqZWN0LT57QnJvd3NlclJpY2hUZXh0fTsKCiAgICAgICAgICAgICMgUmV3cml0ZSB0aGUgVVJMcyBvZiB0aGUgaW5saW5lIGltYWdlcyBmb3IgdGhlIHVwbG9hZGVkIHBpY3R1cmVzLgogICAgICAgICAgICBteSAkT0sgPSAkRkFRT2JqZWN0LT5GQVFJbmxpbmVBdHRhY2htZW50VVJMVXBkYXRlKAogICAgICAgICAgICAgICAgQXR0YWNobWVudCA9PiAkQXR0YWNobWVudCwKICAgICAgICAgICAgICAgIEZvcm1JRCAgICAgPT4gJEZvcm1JRCwKICAgICAgICAgICAgICAgIEl0ZW1JRCAgICAgPT4gJEdldFBhcmFte0l0ZW1JRH0sCiAgICAgICAgICAgICAgICBGaWxlSUQgICAgID0+ICRGaWxlSUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaWYgKCAhJE9LICkgewogICAgICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiQ291bGQgbm90IHVwZGF0ZSB0aGUgaW5saW5lIGltYWdlIFVSTHMgIgogICAgICAgICAgICAgICAgICAgICAgICAuICJmb3IgRkFRIEl0ZW0jICckR2V0UGFyYW17SXRlbUlEfSchIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgcmVtb3ZlIGFsbCBmb3JtIGRhdGEKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpGb3JtQ2FjaGUnKS0+Rm9ybUlEUmVtb3ZlKCBGb3JtSUQgPT4gJEZvcm1JRCApOwoKICAgICAgICAjIFNldCBkeW5hbWljIGZpZWxkcy4KICAgICAgICBEWU5BTUlDRklFTEQ6CiAgICAgICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCB2YWx1ZXMgJFNlbGYtPntEeW5hbWljRmllbGR9LT4lKiApIHsKICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICAgICAgIyBTZXQgdGhlIHZhbHVlLgogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5WYWx1ZVNldCgKICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICAgICAgT2JqZWN0SUQgICAgICAgICAgID0+ICRHZXRQYXJhbXtJdGVtSUR9LAogICAgICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICREeW5hbWljRmllbGRWYWx1ZXN7ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgQ2hlY2sgaWYgdGhlcmUgaWYgd2UgbmVlZCB0byBjbG9zZSBhIHBvcC11cCBzY3JlZW4gb3Igbm90LgogICAgICAgIGlmICggJFNjcmVlblR5cGUgZXEgJ1BvcHVwJyApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlBvcHVwQ2xvc2UoCiAgICAgICAgICAgICAgICBVUkwgPT4gIkFjdGlvbj1BZ2VudEZBUVpvb207SXRlbUlEPSRHZXRQYXJhbXtJdGVtSUR9IiwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgICAgIE9QID0+ICJBY3Rpb249QWdlbnRGQVFab29tO0l0ZW1JRD0kR2V0UGFyYW17SXRlbUlEfSIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQp9CgpzdWIgX01hc2tOZXcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAjIEdldCBsaXN0IHR5cGUuCiAgICBteSAkVHJlZVZpZXcgPSAwOwogICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6RnJvbnRlbmQ6Okxpc3RUeXBlJykgZXEgJ3RyZWUnICkgewogICAgICAgICRUcmVlVmlldyA9IDE7CiAgICB9CgogICAgbXkgJVZhbGlkTGlzdCAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnKS0+VmFsaWRMaXN0KCk7CiAgICBteSAlVmFsaWRMaXN0UmV2ZXJzZSA9IHJldmVyc2UgJVZhbGlkTGlzdDsKCiAgICBteSAlRGF0YTsKCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgQnVpbGQgdmFsaWQgc2VsZWN0aW9uLgogICAgJERhdGF7VmFsaWRPcHRpb259ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICA9PiBcJVZhbGlkTGlzdCwKICAgICAgICBOYW1lICAgICAgID0+ICdWYWxpZElEJywKICAgICAgICBTZWxlY3RlZElEID0+ICRQYXJhbXtWYWxpZElEfSB8fCAkVmFsaWRMaXN0UmV2ZXJzZXt2YWxpZH0sCiAgICAgICAgQ2xhc3MgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgbXkgJEZBUU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpGQVEnKTsKCiAgICAjIEdldCBjYXRlZ29yaWVzICh3aXRoIGNhdGVnb3J5IGxvbmcgbmFtZXMpIHdoZXJlIHVzZXIgaGFzIHJpZ2h0cy4KICAgIG15ICRVc2VyQ2F0ZWdvcmllc0xvbmdOYW1lcyA9ICRGQVFPYmplY3QtPkdldFVzZXJDYXRlZ29yaWVzTG9uZ05hbWVzKAogICAgICAgIFR5cGUgICA9PiAncncnLAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgU2V0IG5vIHNlcnZlciBlcnJvciBjbGFzcyBhcyBkZWZhdWx0LgogICAgJFBhcmFte0NhdGVnb3J5SURTZXJ2ZXJFcnJvcn0gfHw9ICcnOwoKICAgICMgQnVpbGQgY2F0ZWdvcnkgc2VsZWN0aW9uLgogICAgJERhdGF7Q2F0ZWdvcnlPcHRpb259ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICAgID0+ICRVc2VyQ2F0ZWdvcmllc0xvbmdOYW1lcywKICAgICAgICBOYW1lICAgICAgICAgPT4gJ0NhdGVnb3J5SUQnLAogICAgICAgIFNlbGVjdGVkSUQgICA9PiAkUGFyYW17Q2F0ZWdvcnlJRH0sCiAgICAgICAgUG9zc2libGVOb25lID0+IDEsCiAgICAgICAgQ2xhc3MgICAgICAgID0+ICdWYWxpZGF0ZV9SZXF1aXJlZCBNb2Rlcm5pemUgJyAuICRQYXJhbXtDYXRlZ29yeUlEU2VydmVyRXJyb3J9LAogICAgICAgIFRyYW5zbGF0aW9uICA9PiAwLAogICAgICAgIFRyZWVWaWV3ICAgICA9PiAkVHJlZVZpZXcsCiAgICApOwoKICAgIG15ICVMYW5ndWFnZXMgPSAkRkFRT2JqZWN0LT5MYW5ndWFnZUxpc3QoCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBHZXQgdGhlIHNlbGVjdGVkIGxhbmd1YWdlLgogICAgbXkgJFNlbGVjdGVkTGFuZ3VhZ2U7CiAgICBpZiAoICRQYXJhbXtMYW5ndWFnZUlEfSAmJiAkTGFuZ3VhZ2VzeyAkUGFyYW17TGFuZ3VhZ2VJRH0gfSApIHsKCiAgICAgICAgIyBHZXQgbGFuZ3VhZ2UgZnJvbSBnaXZlbiBMYW5ndWFnZUlECiAgICAgICAgJFNlbGVjdGVkTGFuZ3VhZ2UgPSAkTGFuZ3VhZ2VzeyAkUGFyYW17TGFuZ3VhZ2VJRH0gfTsKICAgIH0KICAgIGVsc2UgewoKICAgICAgICAjIFVzZSB0aGUgdXNlciBsYW5ndWFnZSwgb3IgaWYgbm90IGZvdW5kICdlbicuCiAgICAgICAgJFNlbGVjdGVkTGFuZ3VhZ2UgPSAkTGF5b3V0T2JqZWN0LT57VXNlckxhbmd1YWdlfSB8fCAnZW4nOwoKICAgICAgICAjIEdldCB1c2VyIExhbmd1YWdlSUQKICAgICAgICBteSAkU2VsZWN0ZWRMYW5ndWFnZUlEID0gJEZBUU9iamVjdC0+TGFuZ3VhZ2VMb29rdXAoCiAgICAgICAgICAgIE5hbWUgPT4gJFNlbGVjdGVkTGFuZ3VhZ2UsCiAgICAgICAgKTsKCiAgICAgICAgIyBDaGVjayBpZiBMYW5ndWFnZUlEIGRvZXMgbm90IGV4aXN0cy4KICAgICAgICBpZiAoICEkU2VsZWN0ZWRMYW5ndWFnZUlEICkgewoKICAgICAgICAgICAgIyBHZXQgdGhlIGxvd2VzdCBMYW5ndWFnZUlEIGZvcm0gdGhlIEZBUSBsYW5ndWFnZSBsaXN0IGFzIGl0cyB0aGUgZmlyc3QgYWRkZWQgYW5kCiAgICAgICAgICAgICMgICAod2UgYXNzdW1lKSB0aGUgbW9zdCBmcmVxdWVudGx5IHVzZWQuCiAgICAgICAgICAgIG15IEBMYW5ndWFnZUlEcyA9IHNvcnQga2V5cyAlTGFuZ3VhZ2VzOwogICAgICAgICAgICAkU2VsZWN0ZWRMYW5ndWFnZUlEID0gJExhbmd1YWdlSURzWzBdOwoKICAgICAgICAgICAgIyBTZXQgdGhlIGxhbmd1YWdlIHdpdGggbG93ZXN0IGxhbmd1YWdlSUQgYXMgc2VsZWN0ZWQgbGFuZ3VhZ2UuCiAgICAgICAgICAgICRTZWxlY3RlZExhbmd1YWdlID0gJExhbmd1YWdlc3skU2VsZWN0ZWRMYW5ndWFnZUlEfTsKICAgICAgICB9CiAgICB9CgogICAgIyBCdWlsZCB0aGUgbGFuZ3VhZ2Ugc2VsZWN0aW9uLgogICAgJERhdGF7TGFuZ3VhZ2VPcHRpb259ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICAgICA9PiBcJUxhbmd1YWdlcywKICAgICAgICBOYW1lICAgICAgICAgID0+ICdMYW5ndWFnZUlEJywKICAgICAgICBTZWxlY3RlZFZhbHVlID0+ICRTZWxlY3RlZExhbmd1YWdlLAogICAgICAgIFRyYW5zbGF0aW9uICAgPT4gMCwKICAgICAgICBDbGFzcyAgICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKCiAgICBteSBAU3RhdGVUeXBlcyA9ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpBZ2VudDo6U3RhdGVUeXBlcycpOwogICAgbXkgJVN0YXRlcyAgICAgPSAkRkFRT2JqZWN0LT5TdGF0ZUxpc3QoCiAgICAgICAgVHlwZXMgID0+IEBTdGF0ZVR5cGVzLAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgR2V0IHRoZSBzZWxlY3RlZCBzdGF0ZS4KICAgIG15ICRTZWxlY3RlZFN0YXRlOwogICAgaWYgKCAkUGFyYW17U3RhdGVJRH0gJiYgJFN0YXRlc3sgJFBhcmFte1N0YXRlSUR9IH0gKSB7CgogICAgICAgICMgR2V0IHN0YXRlIGZyb20gZ2l2ZW4gU3RhdGVJRAogICAgICAgICRTZWxlY3RlZFN0YXRlID0gJFN0YXRlc3sgJFBhcmFte1N0YXRlSUR9IH07CiAgICB9CiAgICBlbHNlIHsKCiAgICAgICAgIyBHZXQgZGVmYXVsdCBzdGF0ZS4KICAgICAgICAkU2VsZWN0ZWRTdGF0ZSA9ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpEZWZhdWx0OjpTdGF0ZScpIHx8ICdpbnRlcm5hbCAoYWdlbnQpJzsKICAgIH0KCiAgICAjIEJ1aWxkIHRoZSBzdGF0ZSBzZWxlY3Rpb24uCiAgICAkRGF0YXtTdGF0ZU9wdGlvbn0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgICAgID0+IFwlU3RhdGVzLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ1N0YXRlSUQnLAogICAgICAgIFNlbGVjdGVkVmFsdWUgPT4gJFNlbGVjdGVkU3RhdGUsCiAgICAgICAgVHJhbnNsYXRpb24gICA9PiAxLAogICAgICAgIENsYXNzICAgICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwoKICAgICMgR2V0IHNjcmVlbiB0eXBlLgogICAgbXkgJFNjcmVlblR5cGUgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0JyktPkdldFBhcmFtKCBQYXJhbSA9PiAnU2NyZWVuVHlwZScgKSB8fCAnJzsKCiAgICBteSAkRmllbGRzZXRDbGFzcyA9ICcnOwogICAgaWYgKCAkU2NyZWVuVHlwZSBlcSAnUG9wdXAnICkgewogICAgICAgICRGaWVsZHNldENsYXNzID0gJ0ZpeGVkTGFiZWwnOwogICAgfQoKICAgICMgU2hvdyBhdHRhY2htZW50cy4KICAgIEFUVEFDSE1FTlQ6CiAgICBmb3IgbXkgJEF0dGFjaG1lbnQgKCBAeyAkUGFyYW17QXR0YWNobWVudHN9IH0gKSB7CgogICAgICAgICMgRG8gbm90IHNob3cgaW5saW5lIGltYWdlcyBhcyBhdHRhY2htZW50cyAodGhleSBoYXZlIGEgY29udGVudCBpZCkKICAgICAgICBpZiAoICRBdHRhY2htZW50LT57Q29udGVudElEfSAmJiAkTGF5b3V0T2JqZWN0LT57QnJvd3NlclJpY2hUZXh0fSApIHsKICAgICAgICAgICAgbmV4dCBBVFRBQ0hNRU5UOwogICAgICAgIH0KCiAgICAgICAgcHVzaCBAeyAkUGFyYW17QXR0YWNobWVudExpc3R9IH0sICRBdHRhY2htZW50OwogICAgfQoKICAgICMgcmVuZGVyIGR5bmFtaWMgZmllbGRzCiAgICAkUGFyYW17RHluYW1pY0ZpZWxkSFRNTH0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6RHluYW1pY0ZpZWxkOjpNYXNrJyktPkVkaXRTZWN0aW9uUmVuZGVyKAogICAgICAgIENvbnRlbnQgICAgICAgICAgICA9PiAkU2VsZi0+e01hc2tEZWZpbml0aW9ufSwKICAgICAgICBEeW5hbWljRmllbGRzICAgICAgPT4gJFNlbGYtPntEeW5hbWljRmllbGR9LAogICAgICAgIExheW91dE9iamVjdCAgICAgICA9PiAkTGF5b3V0T2JqZWN0LAogICAgICAgIFBhcmFtT2JqZWN0ICAgICAgICA9PiAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0JyksCiAgICAgICAgRHluYW1pY0ZpZWxkVmFsdWVzID0+ICRQYXJhbXtEeW5hbWljRmllbGR9LAogICAgICAgIEVycm9ycyAgICAgICAgICAgICA9PiAkUGFyYW17REZFcnJvcnN9LAogICAgICAgIE9iamVjdCAgICAgICAgICAgICA9PiB7CiAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICRQYXJhbXtEeW5hbWljRmllbGR9LT4lKiwKICAgICAgICB9LAogICAgICAgIEFKQVhVcGRhdGUgPT4gMCwKICAgICk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnRkFRRWRpdCcsCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgJURhdGEsCiAgICAgICAgICAgIEZpZWxkc2V0Q2xhc3MgPT4gJEZpZWxkc2V0Q2xhc3MsCiAgICAgICAgfSwKICAgICk7CgogICAgIyBzaG93IHNlcnZpY2VzCiAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgnRkFROjpTZXJ2aWNlJykgKSB7CgogICAgICAgICMgZ2V0IGFsbCBzZXJ2aWNlcwogICAgICAgIG15ICVTZXJ2aWNlTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTZXJ2aWNlJyktPlNlcnZpY2VMaXN0KAogICAgICAgICAgICBLZWVwQ2hpbGRyZW4gPT4gJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OlNlcnZpY2U6OktlZXBDaGlsZHJlbicpIC8vIDAsCiAgICAgICAgICAgIFZhbGlkICAgICAgICA9PiAxLAogICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIGdldCBwYXJhbSBvYmplY3QKICAgICAgICBteSAkUGFyYW1PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CgogICAgICAgIG15IEBTZXJ2aWNlSURzID0gJFBhcmFte1NlcnZpY2VMaXN0fSA/IGtleXMgJXsgJFBhcmFte1NlcnZpY2VMaXN0fSB9IDogKCk7CgogICAgICAgICMgQnVpbGQgdGhlIHN0YXRlIHNlbGVjdGlvbi4KICAgICAgICBteSAkU2VydmljZUhUTUwgPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgRGF0YSAgICAgICAgPT4gXCVTZXJ2aWNlTGlzdCwKICAgICAgICAgICAgTmFtZSAgICAgICAgPT4gJ1NlcnZpY2VJRCcsCiAgICAgICAgICAgIENsYXNzICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgICAgICAgICBNdWx0aXBsZSAgICA9PiAxLAogICAgICAgICAgICBTaXplICAgICAgICA9PiAxMCwKICAgICAgICAgICAgU2VsZWN0ZWRJRCAgPT4gXEBTZXJ2aWNlSURzLAogICAgICAgICAgICBTb3J0ICAgICAgICA9PiAnQWxwaGFudW1lcmljVmFsdWUnLAogICAgICAgICAgICBUcmFuc2xhdGlvbiA9PiAwLAogICAgICAgICAgICBUcmVlVmlldyAgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1NlcnZpY2UnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIFNlcnZpY2VPcHRpb24gPT4gJFNlcnZpY2VIVE1MLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgIyBTaG93IGxhbmd1YWdlcyBmaWVsZC4KICAgIG15ICRNdWx0aUxhbmd1YWdlID0gJENvbmZpZ09iamVjdC0+R2V0KCdGQVE6Ok11bHRpTGFuZ3VhZ2UnKTsKICAgIGlmICgkTXVsdGlMYW5ndWFnZSkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdMYW5ndWFnZScsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgJURhdGEsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdOb0xhbmd1YWdlJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAlRGF0YSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgICMgU2hvdyBhcHByb3ZhbCBmaWVsZC4KICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdGQVE6OkFwcHJvdmFsUmVxdWlyZWQnKSApIHsKCiAgICAgICAgbXkgJEFwcHJvdmFsUmVxdWlyZWQgICAgICAgID0gMTsKICAgICAgICBteSAkQXBwcm92YWxJbmNsdWRlSW50ZXJuYWwgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6QXBwcm92YWw6OkluY2x1ZGVJbnRlcm5hbCcpOwoKICAgICAgICBpZiAoICEkQXBwcm92YWxJbmNsdWRlSW50ZXJuYWwgKSB7CiAgICAgICAgICAgIG15ICVJbnRlcm5hbFN0YXRlID0gJEZBUU9iamVjdC0+U3RhdGVMaXN0KAogICAgICAgICAgICAgICAgVHlwZXMgID0+IFsnaW50ZXJuYWwnXSwKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCAkSW50ZXJuYWxTdGF0ZXsgJFBhcmFte1N0YXRlSUR9IH0gKSB7CiAgICAgICAgICAgICAgICAkQXBwcm92YWxSZXF1aXJlZCA9IDA7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICggJEFwcHJvdmFsUmVxdWlyZWQgKSB7CgogICAgICAgICAgICAjIENoZWNrIHBlcm1pc3Npb24uCiAgICAgICAgICAgIG15ICVHcm91cHMgPSByZXZlcnNlICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpLT5Hcm91cE1lbWJlckxpc3QoCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgVHlwZSAgID0+ICdybycsCiAgICAgICAgICAgICAgICBSZXN1bHQgPT4gJ0hBU0gnLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBHZXQgdGhlIEZBUSBhcHByb3ZhbCBncm91cCBmcm9tIGNvbmZpZy4KICAgICAgICAgICAgbXkgJEFwcHJvdmFsR3JvdXAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6QXBwcm92YWxHcm91cCcpIHx8ICcnOwoKICAgICAgICAgICAgIyBCdWlsZCB0aGUgYXBwcm92YWwgc2VsZWN0aW9uIGlmIHVzZXIgaXMgaW4gdGhlIGFwcHJvdmFsIGdyb3VwLgogICAgICAgICAgICBpZiAoICRHcm91cHN7JEFwcHJvdmFsR3JvdXB9ICkgewoKICAgICAgICAgICAgICAgICREYXRhe0FwcHJvdmFsT3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0FwcHJvdmVkJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgMCA9PiBUcmFuc2xhdGFibGUoJ05vJyksCiAgICAgICAgICAgICAgICAgICAgICAgIDEgPT4gVHJhbnNsYXRhYmxlKCdZZXMnKSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIFNlbGVjdGVkSUQgPT4gJFBhcmFte0FwcHJvdmVkfSB8fCAwLAogICAgICAgICAgICAgICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQXBwcm92YWwnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAlRGF0YSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIEdldCBjb25maWcgb2YgZnJvbnRlbmQgbW9kdWxlLgogICAgbXkgJENvbmZpZyA9ICRDb25maWdPYmplY3QtPkdldCgiRkFROjpGcm9udGVuZDo6JFNlbGYtPntBY3Rpb259IikgfHwgJyc7CgogICAgIyBBZGQgcmljaCB0ZXh0IGVkaXRvciBKYXZhU2NyaXB0IG9ubHkgaWYgYWN0aXZhdGVkIGFuZCB0aGUgYnJvd3NlciBjYW4gaGFuZGxlIGl0CiAgICAjICAgb3RoZXJ3aXNlIGp1c3QgYSB0ZXh0LWFyZWEgaXMgc2hvd24KICAgIGlmICggJExheW91dE9iamVjdC0+e0Jyb3dzZXJSaWNoVGV4dH0gJiYgJENvbmZpZ09iamVjdC0+R2V0KCdGQVE6Okl0ZW06OkhUTUwnKSApIHsKCiAgICAgICAgIyBVc2UgaGVpZ2h0L3dpZHRoIGRlZmluZWQgZm9yIHRoaXMgc2NyZWVuLgogICAgICAgICRQYXJhbXtSaWNoVGV4dEhlaWdodH0gPSAkQ29uZmlnLT57UmljaFRleHRIZWlnaHR9IHx8IDA7CiAgICAgICAgJFBhcmFte1JpY2hUZXh0V2lkdGh9ICA9ICRDb25maWctPntSaWNoVGV4dFdpZHRofSAgfHwgMDsKCiAgICAgICAgIyBTZXQgdXAgcmljaCB0ZXh0IGVkaXRvci4KICAgICAgICAkTGF5b3V0T2JqZWN0LT5TZXRSaWNoVGV4dFBhcmFtZXRlcnMoCiAgICAgICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgfQoKICAgICMgU2V0IGRlZmF1bHQgaW50ZXJmYWNlIHNldHRpbmdzLgogICAgbXkgJEludGVyZmFjZVN0YXRlcyA9ICRGQVFPYmplY3QtPlN0YXRlVHlwZUxpc3QoCiAgICAgICAgVHlwZXMgID0+IEBTdGF0ZVR5cGVzLAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgU2hvdyBGQVEgQ29udGVudC4KICAgICRMYXlvdXRPYmplY3QtPkZBUUNvbnRlbnRTaG93KAogICAgICAgIEZBUU9iamVjdCAgICAgICA9PiAkRkFRT2JqZWN0LAogICAgICAgIEludGVyZmFjZVN0YXRlcyA9PiAkSW50ZXJmYWNlU3RhdGVzLAogICAgICAgIEZBUURhdGEgICAgICAgICA9PiB7JVBhcmFtfSwKICAgICAgICBVc2VySUQgICAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICBpZiAoICRTY3JlZW5UeXBlIG5lICdQb3B1cCcgKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0VuZE5vcm1hbCcsCiAgICAgICAgKTsKICAgIH0KCiAgICBpZiAoICRTY3JlZW5UeXBlIGVxICdQb3B1cCcgKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0VuZFNtYWxsJywKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudEZBUUVkaXQnLAogICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgKTsKfQoKMTsK</File>
        <File Location="Kernel/Modules/AgentFAQExplorer.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWdlbnRGQVFFeHBsb3JlcjsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6Okxhbmd1YWdlIHF3KFRyYW5zbGF0YWJsZSk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBBbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0LgogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgUGVybWlzc2lvbiBjaGVjay4KICAgIGlmICggISRTZWxmLT57QWNjZXNzUm99ICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Ob1Blcm1pc3Npb24oCiAgICAgICAgICAgIE1lc3NhZ2UgICAgPT4gVHJhbnNsYXRhYmxlKCdZb3UgbmVlZCBybyBwZXJtaXNzaW9uIScpLAogICAgICAgICAgICBXaXRoSGVhZGVyID0+ICd5ZXMnLAogICAgICAgICk7CiAgICB9CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBHZXQgY29uZmlnIG9mIGZyb250ZW5kIG1vZHVsZS4KICAgIG15ICRDb25maWcgPSAkQ29uZmlnT2JqZWN0LT5HZXQoIkZBUTo6RnJvbnRlbmQ6OiRTZWxmLT57QWN0aW9ufSIpOwoKICAgIG15ICRQYXJhbU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKCiAgICAjIEdldCBjb25maWcgZGF0YS4KICAgIG15ICRTdGFydEhpdCAgICA9IGludCggJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1N0YXJ0SGl0JyApIHx8IDEgKTsKICAgIG15ICRTZWFyY2hMaW1pdCA9ICRDb25maWctPntTZWFyY2hMaW1pdH0gfHwgNTAwOwogICAgbXkgJEZpbHRlciAgICAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0ZpbHRlcicgKSB8fCAnJzsKICAgIG15ICRWaWV3ICAgICAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdWaWV3JyApICAgfHwgJyc7CiAgICBteSAkU29ydEJ5ICAgICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnU29ydEJ5JyApCiAgICAgICAgfHwgJENvbmZpZy0+eydTb3J0Qnk6OkRlZmF1bHQnfQogICAgICAgIHx8ICdGQVFJRCc7CiAgICBteSAkT3JkZXJCeSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdPcmRlckJ5JyApCiAgICAgICAgfHwgJENvbmZpZy0+eydPcmRlcjo6RGVmYXVsdCd9CiAgICAgICAgfHwgJ0Rvd24nOwoKICAgICMgR2V0IENhdGVnb3J5SUQuCiAgICBteSAkQ2F0ZWdvcnlJRCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdDYXRlZ29yeUlEJyApIHx8IDA7CgogICAgIyBDaGVjayBmb3Igbm9uIG51bWVyaWMgQ2F0ZWdvcnlJRAogICAgaWYgKCAkQ2F0ZWdvcnlJRCAhfiAvXGQrLyApIHsKICAgICAgICAkQ2F0ZWdvcnlJRCA9IDA7CiAgICB9CgogICAgbXkgJENhdGVnb3J5ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0NhdGVnb3J5JyApIHx8ICcnOwoKICAgIG15ICRGQVFPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RkFRJyk7CgogICAgIyBUcnkgdG8gZ2V0IHRoZSBDYXRlZ29yeUlEIGZyb20gY2F0ZWdvcnkgbmFtZSBpZiBubyBDYXRlZ29yeUlECiAgICBpZiAoICRDYXRlZ29yeSAmJiAhJENhdGVnb3J5SUQgKSB7CgogICAgICAgICMgR2V0IHRoZSBjYXRlZ29yeSB0cmVlLgogICAgICAgIG15ICRDYXRlZ29yeVRyZWUgPSAkRkFRT2JqZWN0LT5DYXRlZ29yeVRyZWVMaXN0KAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgUmV2ZXJzZSB0aGUgaGFzaCBmb3IgZWFzeSBsb29rdXAuCiAgICAgICAgbXkgJVJldmVyc2VDYXRlZ29yeVRyZWUgPSByZXZlcnNlICV7JENhdGVnb3J5VHJlZX07CgogICAgICAgICRDYXRlZ29yeUlEID0gJFJldmVyc2VDYXRlZ29yeVRyZWV7JENhdGVnb3J5fSB8fCAwOwogICAgfQoKICAgICMgR2V0IG5hdmlnYXRpb24gYmFyIG9wdGlvbi4KICAgIG15ICROYXYgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnTmF2JyApIHx8ICcnOwoKICAgIG15ICRTZXNzaW9uT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkF1dGhTZXNzaW9uJyk7CgogICAgIyBTYXZlIENhdGVnb3J5SUQgdG8gc2Vzc2lvbiwgdG8gYmUgdXNlZCBpbiBGQVEgYWRkIHNjcmVlbi4KICAgICRTZXNzaW9uT2JqZWN0LT5VcGRhdGVTZXNzaW9uSUQoCiAgICAgICAgU2Vzc2lvbklEID0+ICRTZWxmLT57U2Vzc2lvbklEfSwKICAgICAgICBLZXkgICAgICAgPT4gJ0xhc3RWaWV3ZWRDYXRlZ29yeScsCiAgICAgICAgVmFsdWUgICAgID0+ICRDYXRlZ29yeUlELAogICAgKTsKCiAgICAjIFN0b3JlIGxhc3Qgb3ZlcnZpZXcgc2NyZWVuIChmb3IgYmFjayBtZW51IGFjdGlvbikgYnV0IG9ubHkgaWYgdGhlIEZBUSBleHBsb3JlciBpcyBub3Qgc2hvd24gYXMgb3ZlcmxheS4KICAgIGlmICggISROYXYgfHwgJE5hdiBuZSAnTm9uZScgKSB7CgogICAgICAgIG15ICRVUkwgPSAiQWN0aW9uPUFnZW50RkFRRXhwbG9yZXI7U29ydEJ5PSRTb3J0QnkiCiAgICAgICAgICAgIC4gIjtDYXRlZ29yeUlEPSRDYXRlZ29yeUlEO05hdj0kTmF2IgogICAgICAgICAgICAuICI7T3JkZXJCeT0kT3JkZXJCeTtTdGFydEhpdD0kU3RhcnRIaXQiOwogICAgICAgICRTZXNzaW9uT2JqZWN0LT5VcGRhdGVTZXNzaW9uSUQoCiAgICAgICAgICAgIFNlc3Npb25JRCA9PiAkU2VsZi0+e1Nlc3Npb25JRH0sCiAgICAgICAgICAgIEtleSAgICAgICA9PiAnTGFzdFNjcmVlbk92ZXJ2aWV3JywKICAgICAgICAgICAgVmFsdWUgICAgID0+ICRVUkwsCiAgICAgICAgKTsKICAgICAgICAkU2Vzc2lvbk9iamVjdC0+VXBkYXRlU2Vzc2lvbklEKAogICAgICAgICAgICBTZXNzaW9uSUQgPT4gJFNlbGYtPntTZXNzaW9uSUR9LAogICAgICAgICAgICBLZXkgICAgICAgPT4gJ0xhc3RTY3JlZW5WaWV3JywKICAgICAgICAgICAgVmFsdWUgICAgID0+ICRVUkwsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIFRyeSB0byBnZXQgdGhlIGNhdGVnb3J5IGRhdGEuCiAgICBteSAlQ2F0ZWdvcnlEYXRhOwogICAgaWYgKCRDYXRlZ29yeUlEKSB7CgogICAgICAgICVDYXRlZ29yeURhdGEgPSAkRkFRT2JqZWN0LT5DYXRlZ29yeUdldCgKICAgICAgICAgICAgQ2F0ZWdvcnlJRCA9PiAkQ2F0ZWdvcnlJRCwKICAgICAgICAgICAgVXNlcklEICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKICAgICAgICBpZiAoICElQ2F0ZWdvcnlEYXRhICkgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJ1RoZSBDYXRlZ29yeUlEICVzIGlzIGludmFsaWQuJywgJENhdGVnb3J5SUQgKSwKICAgICAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgQ2hlY2sgdXNlciBwZXJtaXNzaW9uLgogICAgICAgIG15ICRQZXJtaXNzaW9uID0gJEZBUU9iamVjdC0+Q2hlY2tDYXRlZ29yeVVzZXJQZXJtaXNzaW9uKAogICAgICAgICAgICBVc2VySUQgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgQ2F0ZWdvcnlJRCA9PiAkQ2F0ZWdvcnlJRCwKICAgICAgICAgICAgVHlwZSAgICAgICA9PiAncm8nLAogICAgICAgICk7CiAgICAgICAgaWYgKCAhJFBlcm1pc3Npb24gKSB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Ob1Blcm1pc3Npb24oCiAgICAgICAgICAgICAgICBNZXNzYWdlICAgID0+IFRyYW5zbGF0YWJsZSgnWW91IGhhdmUgbm8gcGVybWlzc2lvbiBmb3IgdGhpcyBjYXRlZ29yeSEnKSwKICAgICAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIG15ICRPdXRwdXQ7CiAgICBpZiAoICROYXYgJiYgJE5hdiBlcSAnTm9uZScgKSB7CiAgICAgICAgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigKICAgICAgICAgICAgVHlwZSA9PiAnU21hbGwnLAogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICB9CgogICAgJExheW91dE9iamVjdC0+RkFRUGF0aFNob3coCiAgICAgICAgRkFRT2JqZWN0ICA9PiAkRkFRT2JqZWN0LAogICAgICAgIENhdGVnb3J5SUQgPT4gJENhdGVnb3J5SUQsCiAgICAgICAgVXNlcklEICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgTmF2ICAgICAgICA9PiAkTmF2LAogICAgKTsKCiAgICAjIEdldCBhbGwgZGlyZWN0IHN1YmNhdGVnb3JpZXMgb2YgdGhlIHNlbGVjdGVkIGNhdGVnb3J5LgogICAgbXkgJENhdGVnb3J5SURzUmVmID0gJEZBUU9iamVjdC0+QWdlbnRDYXRlZ29yeVNlYXJjaCgKICAgICAgICBQYXJlbnRJRCA9PiAkQ2F0ZWdvcnlJRCwKICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ1N1YmNhdGVnb3JpZXMnLAogICAgICAgIERhdGEgPT4ge30sCiAgICApOwogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdSZXN1bHQnLAogICAgICAgIERhdGEgPT4ge30sCiAgICApOwoKICAgICMgU2V0IGRlZmF1bHQgaW50ZXJmYWNlIHNldHRpbmdzLgogICAgbXkgJEludGVyZmFjZSA9ICRGQVFPYmplY3QtPlN0YXRlVHlwZUdldCgKICAgICAgICBOYW1lICAgPT4gJ2ludGVybmFsJywKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKICAgIG15ICRJbnRlcmZhY2VTdGF0ZXMgPSAkRkFRT2JqZWN0LT5TdGF0ZVR5cGVMaXN0KAogICAgICAgIFR5cGVzICA9PiAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6QWdlbnQ6OlN0YXRlVHlwZXMnKSwKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIEdldCBhbGwgaXRlbXMgKHZhbGlkIGFuZCBpbnZhbGlkKSBpZiBTeVNDb25maWcgaXMgc2V0LgogICAgbXkgJFZhbGlkT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZhbGlkJyk7CiAgICBteSBAVmFsaWRJRHM7CiAgICBteSAkVmFsaWQgPSAxOwogICAgaWYgKCAkQ29uZmlnLT57U2hvd0ludmFsaWRGQVFJdGVtc30gKSB7CiAgICAgICAgbXkgJVZhbGlkTGlzdCA9ICRWYWxpZE9iamVjdC0+VmFsaWRMaXN0KCk7CiAgICAgICAgQFZhbGlkSURzID0ga2V5cyAlVmFsaWRMaXN0OwogICAgICAgICRWYWxpZCAgICA9IDA7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBAVmFsaWRJRHMgPSAoICRWYWxpZE9iamVjdC0+VmFsaWRMb29rdXAoIFZhbGlkID0+ICd2YWxpZCcgKSApOwogICAgfQoKICAgICMgQ2hlY2sgaWYgdGhlcmUgYXJlIHN1YmNhdGVnb3JpZXMuCiAgICBpZiAoICRDYXRlZ29yeUlEc1JlZiAmJiByZWYgJENhdGVnb3J5SURzUmVmIGVxICdBUlJBWScgJiYgQHskQ2F0ZWdvcnlJRHNSZWZ9ICkgewoKICAgICAgICAjIFNob3cgZGF0YSBmb3IgZWFjaCBzdWJjYXRlZ29yeS4KICAgICAgICBmb3IgbXkgJFN1YkNhdGVnb3J5SUQgKCBAeyRDYXRlZ29yeUlEc1JlZn0gKSB7CgogICAgICAgICAgICBteSAlU3ViQ2F0ZWdvcnlEYXRhID0gJEZBUU9iamVjdC0+Q2F0ZWdvcnlHZXQoCiAgICAgICAgICAgICAgICBDYXRlZ29yeUlEID0+ICRTdWJDYXRlZ29yeUlELAogICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIEdldCB0aGUgbnVtYmVyIG9mIHN1YmNhdGVnb3JpZXMgb2YgdGhpcyBzdWJjYXRlZ29yeS4KICAgICAgICAgICAgJFN1YkNhdGVnb3J5RGF0YXtTdWJDYXRlZ29yeUNvdW50fSA9ICRGQVFPYmplY3QtPkNhdGVnb3J5Q291bnQoCiAgICAgICAgICAgICAgICBQYXJlbnRJRHMgPT4gWyRTdWJDYXRlZ29yeUlEXSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIEdldCB0aGUgbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyBpbiB0aGlzIGNhdGVnb3J5LgogICAgICAgICAgICAkU3ViQ2F0ZWdvcnlEYXRhe0FydGljbGVDb3VudH0gPSAkRkFRT2JqZWN0LT5GQVFDb3VudCgKICAgICAgICAgICAgICAgIENhdGVnb3J5SURzICA9PiBbJFN1YkNhdGVnb3J5SURdLAogICAgICAgICAgICAgICAgSXRlbVN0YXRlcyAgID0+ICRJbnRlcmZhY2VTdGF0ZXMsCiAgICAgICAgICAgICAgICBPbmx5QXBwcm92ZWQgPT4gMCwKICAgICAgICAgICAgICAgIFZhbGlkICAgICAgICA9PiAkVmFsaWQsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBPdXRwdXQgdGhlIGNhdGVnb3J5IGRhdGEuCiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdSZXN1bHRSb3cnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgTmF2ID0+ICROYXYsCiAgICAgICAgICAgICAgICAgICAgJVN1YkNhdGVnb3J5RGF0YSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgT3RoZXJ3aXNlIGEgbm8gZGF0YSBmb3VuZCBtZXNzYWdlIGlzIGRpc3BsYXllZC4KICAgIGVsc2UgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdOb0RhdGFGb3VuZE1zZycsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIFNlYXJjaCBhbGwgRkFRIGl0ZW1zIHdpdGhpbiB0aGUgZ2l2ZW4gY2F0ZWdvcnkuCiAgICBteSBAVmlld2FibGVJdGVtSURzID0gJEZBUU9iamVjdC0+RkFRU2VhcmNoKAogICAgICAgIE9yZGVyQnkgICAgICAgICAgPT4gWyRTb3J0QnldLAogICAgICAgIE9yZGVyQnlEaXJlY3Rpb24gPT4gWyRPcmRlckJ5XSwKICAgICAgICBMaW1pdCAgICAgICAgICAgID0+ICRTZWFyY2hMaW1pdCwKICAgICAgICBVc2VySUQgICAgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICBTdGF0ZXMgICAgICAgICAgID0+ICRJbnRlcmZhY2VTdGF0ZXMsCiAgICAgICAgSW50ZXJmYWNlICAgICAgICA9PiAkSW50ZXJmYWNlLAogICAgICAgIENhdGVnb3J5SURzICAgICAgPT4gWyRDYXRlZ29yeUlEXSwKICAgICAgICBWYWxpZElEcyAgICAgICAgID0+IFxAVmFsaWRJRHMsCiAgICApOwoKICAgICMgQnVpbGQgbmVjZXNzYXJ5IHN0dWZmIGZvciB0aGUgRkFRIGFydGljbGUgbGlzdC4KICAgIG15ICRMaW5rUGFnZSA9ICdGaWx0ZXI9JwogICAgICAgIC4gJExheW91dE9iamVjdC0+TGlua0VuY29kZSgkRmlsdGVyKQogICAgICAgIC4gJztWaWV3PScgLiAkTGF5b3V0T2JqZWN0LT5MaW5rRW5jb2RlKCRWaWV3KQogICAgICAgIC4gJztOYXY9JyAuICROYXYKICAgICAgICAuICc7U29ydEJ5PScgLiAkTGF5b3V0T2JqZWN0LT5MaW5rRW5jb2RlKCRTb3J0QnkpCiAgICAgICAgLiAnO09yZGVyQnk9JyAuICRMYXlvdXRPYmplY3QtPkxpbmtFbmNvZGUoJE9yZGVyQnkpCiAgICAgICAgLiAnO0NhdGVnb3J5SUQ9JyAuICRDYXRlZ29yeUlECiAgICAgICAgLiAnOyc7CiAgICBteSAkTGlua1NvcnQgPSAnRmlsdGVyPScKICAgICAgICAuICRMYXlvdXRPYmplY3QtPkxpbmtFbmNvZGUoJEZpbHRlcikKICAgICAgICAuICc7Vmlldz0nIC4gJExheW91dE9iamVjdC0+TGlua0VuY29kZSgkVmlldykKICAgICAgICAuICc7TmF2PScgLiAkTmF2CiAgICAgICAgLiAnO0NhdGVnb3J5SUQ9JyAuICRDYXRlZ29yeUlECiAgICAgICAgLiAnOyc7CiAgICBteSAkRmlsdGVyTGluayA9ICdTb3J0Qnk9JyAuICRMYXlvdXRPYmplY3QtPkxpbmtFbmNvZGUoJFNvcnRCeSkKICAgICAgICAuICc7T3JkZXJCeT0nIC4gJExheW91dE9iamVjdC0+TGlua0VuY29kZSgkT3JkZXJCeSkKICAgICAgICAuICc7Vmlldz0nIC4gJExheW91dE9iamVjdC0+TGlua0VuY29kZSgkVmlldykKICAgICAgICAuICc7TmF2PScgLiAkTmF2CiAgICAgICAgLiAnO0NhdGVnb3J5SUQ9JyAuICRDYXRlZ29yeUlECiAgICAgICAgLiAnOyc7CgogICAgIyBGaW5kIG91dCB3aGljaCBjb2x1bW5zIHNob3VsZCBiZSBzaG93bi4KICAgIG15IEBTaG93Q29sdW1uczsKICAgIGlmICggJENvbmZpZy0+e1Nob3dDb2x1bW5zfSApIHsKCiAgICAgICAgIyBHZXQgYWxsIHBvc3NpYmxlIGNvbHVtbnMgZnJvbSBjb25maWcuCiAgICAgICAgbXkgJVBvc3NpYmxlQ29sdW1uID0gJXsgJENvbmZpZy0+e1Nob3dDb2x1bW5zfSB9OwoKICAgICAgICAjIEdldCB0aGUgY29sdW1uIG5hbWVzIHRoYXQgc2hvdWxkIGJlIHNob3duLgogICAgICAgIENPTFVNTk5BTUU6CiAgICAgICAgZm9yIG15ICROYW1lICggc29ydCBrZXlzICVQb3NzaWJsZUNvbHVtbiApIHsKICAgICAgICAgICAgbmV4dCBDT0xVTU5OQU1FIGlmICEkUG9zc2libGVDb2x1bW57JE5hbWV9OwogICAgICAgICAgICBwdXNoIEBTaG93Q29sdW1ucywgJE5hbWU7CiAgICAgICAgfQoKICAgICAgICAjIEVuZm9yY2UgRkFRIG51bWJlciBjb2x1bW4gc2luY2UgaXMgdGhlIGxpbmsgTWFzdGVyQWN0aW9uIGhvb2suCiAgICAgICAgaWYgKCAhJFBvc3NpYmxlQ29sdW1ueydOdW1iZXInfSApIHsKICAgICAgICAgICAgcHVzaCBAU2hvd0NvbHVtbnMsICdOdW1iZXInOwogICAgICAgIH0KICAgIH0KCiAgICAjIEJ1aWxkIHRoZSB0aXRsZSB2YWx1ZSAob24gdG9wIG9mIHRoZSBhcnRpY2xlIGxpc3QpLgogICAgbXkgJFRpdGxlID0gJENhdGVnb3J5RGF0YXtOYW1lfQogICAgICAgIHx8ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpEZWZhdWx0OjpSb290Q2F0ZWdvcnlOYW1lJykKICAgICAgICB8fCAnJzsKCiAgICAjIEJ1aWxkIHRoZSBIVE1MIGZvciB0aGUgbGlzdCBvZiBGQVEgYXJ0aWNsZXMgaW4gdGhlIGdpdmVuIGNhdGVnb3J5LgogICAgbXkgJEZBUUl0ZW1MaXN0SFRNTCA9ICRMYXlvdXRPYmplY3QtPkZBUUxpc3RTaG93KAogICAgICAgIEZBUUlEcyAgICAgPT4gXEBWaWV3YWJsZUl0ZW1JRHMsCiAgICAgICAgVG90YWwgICAgICA9PiBzY2FsYXIgQFZpZXdhYmxlSXRlbUlEcywKICAgICAgICBWaWV3ICAgICAgID0+ICRWaWV3LAogICAgICAgIEVudiAgICAgICAgPT4gJFNlbGYsCiAgICAgICAgTGlua1BhZ2UgICA9PiAkTGlua1BhZ2UsCiAgICAgICAgTGlua1NvcnQgICA9PiAkTGlua1NvcnQsCiAgICAgICAgTGlua0ZpbHRlciA9PiAkRmlsdGVyTGluaywKCiAgICAgICAgVGl0bGVOYW1lICA9PiBUcmFuc2xhdGFibGUoJ0ZBUSBBcnRpY2xlcycpLAogICAgICAgIFRpdGxlVmFsdWUgPT4gJFRpdGxlLAoKICAgICAgICBMaW1pdCAgICAgICAgPT4gJFNlYXJjaExpbWl0LAogICAgICAgIEZpbHRlciAgICAgICA9PiAkRmlsdGVyLAogICAgICAgIEZpbHRlckxpbmsgICA9PiAkRmlsdGVyTGluaywKICAgICAgICBPcmRlckJ5ICAgICAgPT4gJE9yZGVyQnksCiAgICAgICAgU29ydEJ5ICAgICAgID0+ICRTb3J0QnksCiAgICAgICAgU2hvd0NvbHVtbnMgID0+IFxAU2hvd0NvbHVtbnMsCiAgICAgICAgT3V0cHV0ICAgICAgID0+IDEsCiAgICAgICAgTmF2ICAgICAgICAgID0+ICROYXYsCiAgICAgICAgRkFRVGl0bGVTaXplID0+ICRDb25maWctPntUaXRsZVNpemV9LAogICAgKTsKCiAgICAjIFNob3cgdGhlIEZBUSBhcnRpY2xlIGxpc3QuCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdGQVFJdGVtTGlzdCcsCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgIEZBUUl0ZW1MaXN0SFRNTCA9PiAkRkFRSXRlbUxpc3RIVE1MLAogICAgICAgIH0sCiAgICApOwoKICAgICMgU2V0IFF1aWNrU2VhcmNoIG1vZGUuCiAgICBteSAkTW9kZSA9ICdBZ2VudCc7CiAgICBpZiAoICROYXYgZXEgJ05vbmUnICkgewogICAgICAgICRNb2RlID0gJ0FnZW50U21hbGwnOwogICAgfQoKICAgICMgU2hvdyBRdWlja1NlYXJjaC4KICAgICRMYXlvdXRPYmplY3QtPkZBUVNob3dRdWlja1NlYXJjaCgKICAgICAgICBNb2RlICAgICAgICAgICAgPT4gJE1vZGUsCiAgICAgICAgSW50ZXJmYWNlICAgICAgID0+ICRJbnRlcmZhY2UsCiAgICAgICAgSW50ZXJmYWNlU3RhdGVzID0+ICRJbnRlcmZhY2VTdGF0ZXMsCiAgICAgICAgVXNlcklEICAgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICBOYXYgICAgICAgICAgICAgPT4gJE5hdiwKICAgICk7CgogICAgbXkgJUluZm9Cb3hSZXN1bHRzOwoKICAgICMgU2hvdyBsYXN0IGFkZGVkIGFuZCBsYXN0IHVwZGF0ZWQgYXJ0aWNsZXMuCiAgICBmb3IgbXkgJFR5cGUgKHF3KExhc3RDcmVhdGUgTGFzdENoYW5nZSkpIHsKCiAgICAgICAgbXkgJFNob3dPayA9ICRMYXlvdXRPYmplY3QtPkZBUVNob3dMYXRlc3ROZXdzQm94KAogICAgICAgICAgICBGQVFPYmplY3QgICAgICAgPT4gJEZBUU9iamVjdCwKICAgICAgICAgICAgVHlwZSAgICAgICAgICAgID0+ICRUeXBlLAogICAgICAgICAgICBNb2RlICAgICAgICAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgQ2F0ZWdvcnlJRCAgICAgID0+ICRDYXRlZ29yeUlELAogICAgICAgICAgICBJbnRlcmZhY2UgICAgICAgPT4gJEludGVyZmFjZSwKICAgICAgICAgICAgSW50ZXJmYWNlU3RhdGVzID0+ICRJbnRlcmZhY2VTdGF0ZXMsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgIE5hdiAgICAgICAgICAgICA9PiAkTmF2LAogICAgICAgICk7CiAgICAgICAgaWYgKCAhJFNob3dPayApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKCk7CiAgICAgICAgfQoKICAgICAgICAjIFN0b3JlIHRoZSBOZXdzQm94UmVzdWx0LgogICAgICAgICRJbmZvQm94UmVzdWx0c3skVHlwZX0gPSAkU2hvd09rOwogICAgfQoKICAgICMgU2hvdyB0b3AgdGVuIGFydGljbGVzLgogICAgbXkgJFNob3dPayA9ICRMYXlvdXRPYmplY3QtPkZBUVNob3dUb3AxMCgKICAgICAgICBGQVFPYmplY3QgICAgICAgPT4gJEZBUU9iamVjdCwKICAgICAgICBNb2RlICAgICAgICAgICAgPT4gJ0FnZW50JywKICAgICAgICBDYXRlZ29yeUlEICAgICAgPT4gJENhdGVnb3J5SUQsCiAgICAgICAgSW50ZXJmYWNlICAgICAgID0+ICRJbnRlcmZhY2UsCiAgICAgICAgSW50ZXJmYWNlU3RhdGVzID0+ICRJbnRlcmZhY2VTdGF0ZXMsCiAgICAgICAgVXNlcklEICAgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICBOYXYgICAgICAgICAgICAgPT4gJE5hdiwKICAgICk7CiAgICBpZiAoICEkU2hvd09rICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigpOwogICAgfQoKICAgICMgU3RvcmUgdGhlIE5ld3NCb3hSZXN1bHQuCiAgICAkSW5mb0JveFJlc3VsdHN7VG9wMTB9ID0gJFNob3dPazsKCiAgICAjIFNldCB0aGUgU2lkZWJhciB3aWR0aC4KICAgIG15ICRTaWRlYmFyQ2xhc3MgPSAnTGFyZ2UnOwoKICAgICMgQ2hlY2sgaWYgYWxsIEluZm9Cb3hlcyBhcmUgZW1wdHkgYW5kIGhpZGUgdGhlIFNpZGViYXIuCiAgICBpZiAoCiAgICAgICAgJEluZm9Cb3hSZXN1bHRze0xhc3RDcmVhdGV9IGVxIC0xCiAgICAgICAgJiYgJEluZm9Cb3hSZXN1bHRze0xhc3RDaGFuZ2V9IGVxIC0xCiAgICAgICAgJiYgJEluZm9Cb3hSZXN1bHRze1RvcDEwfSBlcSAtMQogICAgICAgICkKICAgIHsKICAgICAgICAkU2lkZWJhckNsYXNzID0gJ0hpZGRlbic7CiAgICB9CgogICAgaWYgKCAkTmF2ICYmICROYXYgZXEgJ05vbmUnICkgewogICAgICAgICRTaWRlYmFyQ2xhc3MgPSAnTWVkaXVtJzsKICAgIH0KCiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50RkFRRXhwbG9yZXInLAogICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgQ2F0ZWdvcnlJRCAgID0+ICRDYXRlZ29yeUlELAogICAgICAgICAgICBTaWRlYmFyQ2xhc3MgPT4gJFNpZGViYXJDbGFzcywKICAgICAgICAgICAgJUNhdGVnb3J5RGF0YSwKICAgICAgICB9LAogICAgKTsKCiAgICBpZiAoICROYXYgJiYgJE5hdiBlcSAnTm9uZScgKSB7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoCiAgICAgICAgICAgIFR5cGUgPT4gJ1NtYWxsJywKICAgICAgICApOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKICAgIH0KCiAgICByZXR1cm4gJE91dHB1dDsKfQoKMTsK</File>
        <File Location="Kernel/Modules/AgentFAQHistory.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWdlbnRGQVFIaXN0b3J5OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6TGFuZ3VhZ2UgcXcoVHJhbnNsYXRhYmxlKTsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIEFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QuCiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBQZXJtaXNzaW9uIGNoZWNrLgogICAgaWYgKCAhJFNlbGYtPntBY2Nlc3NSb30gKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgTWVzc2FnZSAgICA9PiBUcmFuc2xhdGFibGUoJ1lvdSBuZWVkIHJvIHBlcm1pc3Npb24hJyksCiAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgKTsKICAgIH0KCiAgICBteSAlR2V0UGFyYW07CgogICAgIyBHZXQgbmVlZGVkIEl0ZW1JRAogICAgJEdldFBhcmFte0l0ZW1JRH0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0JyktPkdldFBhcmFtKCBQYXJhbSA9PiAnSXRlbUlEJyApOwoKICAgIGlmICggISRHZXRQYXJhbXtJdGVtSUR9ICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ0NhblwndCBzaG93IGhpc3RvcnksIGFzIG5vIEl0ZW1JRCBpcyBnaXZlbiEnKSwKICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICk7CiAgICB9CgogICAgbXkgJEZBUU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpGQVEnKTsKCiAgICBteSAlRkFRRGF0YSA9ICRGQVFPYmplY3QtPkZBUUdldCgKICAgICAgICBJdGVtSUQgICAgID0+ICRHZXRQYXJhbXtJdGVtSUR9LAogICAgICAgIEl0ZW1GaWVsZHMgPT4gMCwKICAgICAgICBVc2VySUQgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CiAgICBpZiAoICElRkFRRGF0YSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oKTsKICAgIH0KCiAgICAjIENoZWNrIHVzZXIgcGVybWlzc2lvbi4KICAgIG15ICRQZXJtaXNzaW9uID0gJEZBUU9iamVjdC0+Q2hlY2tDYXRlZ29yeVVzZXJQZXJtaXNzaW9uKAogICAgICAgIFVzZXJJRCAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgIENhdGVnb3J5SUQgPT4gJEZBUURhdGF7Q2F0ZWdvcnlJRH0sCiAgICAgICAgVHlwZSAgICAgICA9PiAncm8nLAogICAgKTsKICAgIGlmICggISRQZXJtaXNzaW9uICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Ob1Blcm1pc3Npb24oCiAgICAgICAgICAgIE1lc3NhZ2UgICAgPT4gVHJhbnNsYXRhYmxlKCdZb3UgaGF2ZSBubyBwZXJtaXNzaW9uIGZvciB0aGlzIGNhdGVnb3J5IScpLAogICAgICAgICAgICBXaXRoSGVhZGVyID0+ICd5ZXMnLAogICAgICAgICk7CiAgICB9CgogICAgbXkgJEhpc3RvcnkgPSAkRkFRT2JqZWN0LT5GQVFIaXN0b3J5R2V0KAogICAgICAgIEl0ZW1JRCA9PiAkRkFRRGF0YXtJdGVtSUR9LAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgIGZvciBteSAkSGlzdG9yeUVudHJ5ICggQHskSGlzdG9yeX0gKSB7CgogICAgICAgICMgUmVwbGFjZSBJRCB3aXRoIGZ1bGwgdXNlciBuYW1lIG9uIENyZWF0ZWRCeSBrZXkKICAgICAgICBteSAlVXNlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPkdldFVzZXJEYXRhKAogICAgICAgICAgICBVc2VySUQgPT4gJEhpc3RvcnlFbnRyeS0+e0NyZWF0ZWRCeX0sCiAgICAgICAgICAgIENhY2hlZCA9PiAxLAogICAgICAgICk7CiAgICAgICAgJEhpc3RvcnlFbnRyeS0+e0NyZWF0ZWRCeX0gPSAiJFVzZXJ7VXNlckxvZ2lufSAoJFVzZXJ7VXNlckZ1bGxuYW1lfSkiOwoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnUm93JywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAleyRIaXN0b3J5RW50cnl9LAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigKICAgICAgICBUeXBlICA9PiAnU21hbGwnLAogICAgICAgIFRpdGxlID0+IFRyYW5zbGF0YWJsZSgnRkFRIEhpc3RvcnknKSwKICAgICk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50RkFRSGlzdG9yeScsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAlRkFRRGF0YSwKICAgICAgICB9LAogICAgKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKAogICAgICAgIFR5cGUgPT4gJ1NtYWxsJywKICAgICk7CgogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCjE7Cg==</File>
        <File Location="Kernel/Modules/AgentFAQJournal.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWdlbnRGQVFKb3VybmFsOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6TGFuZ3VhZ2UgcXcoVHJhbnNsYXRhYmxlKTsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIEFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QuCiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgR2V0IGNvbmZpZyBmb3IgZnJvbnRlbmQuCiAgICBteSAkQ29uZmlnID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCJGQVE6OkZyb250ZW5kOjokU2VsZi0+e0FjdGlvbn0iKTsKCiAgICBteSAkSm91cm5hbExpbWl0ID0gJENvbmZpZy0+e0pvdXJuYWxMaW1pdH0gfHwgNTAwOwoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBQZXJtaXNzaW9uIGNoZWNrLgogICAgaWYgKCAhJFNlbGYtPntBY2Nlc3NSb30gKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgTWVzc2FnZSAgICA9PiBUcmFuc2xhdGFibGUoJ1lvdSBuZWVkIHJvIHBlcm1pc3Npb24hJyksCiAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIEdldCBKb3VybmFsIGVudHJpZXMuCiAgICBteSAkSm91cm5hbCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpGQVEnKS0+RkFRSm91cm5hbEdldCgKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKSAvLyBbXTsKCiAgICAjIEZpbmQgb3V0IHdoaWNoIGNvbHVtbnMgc2hvdWxkIGJlIHNob3duLgogICAgbXkgQFNob3dDb2x1bW5zOwogICAgaWYgKCAkQ29uZmlnLT57U2hvd0NvbHVtbnN9ICkgewoKICAgICAgICAjIEdldCBhbGwgcG9zc2libGUgY29sdW1ucyBmcm9tIGNvbmZpZy4KICAgICAgICBteSAlUG9zc2libGVDb2x1bW4gPSAleyAkQ29uZmlnLT57U2hvd0NvbHVtbnN9IH07CgogICAgICAgICMgR2V0IHRoZSBjb2x1bW4gbmFtZXMgdGhhdCBzaG91bGQgYmUgc2hvd24uCiAgICAgICAgQ09MVU1OTkFNRToKICAgICAgICBmb3IgbXkgJE5hbWUgKCBzb3J0IGtleXMgJVBvc3NpYmxlQ29sdW1uICkgewogICAgICAgICAgICBuZXh0IENPTFVNTk5BTUUgaWYgISRQb3NzaWJsZUNvbHVtbnskTmFtZX07CiAgICAgICAgICAgIHB1c2ggQFNob3dDb2x1bW5zLCAkTmFtZTsKICAgICAgICB9CgogICAgICAgICMgRW5mb3JjZSBGQVEgbnVtYmVyIGNvbHVtbiBzaW5jZSBpcyB0aGUgbGluayBNYXN0ZXJBY3Rpb24gaG9vay4KICAgICAgICBpZiAoICEkUG9zc2libGVDb2x1bW57J051bWJlcid9ICkgewogICAgICAgICAgICBwdXNoIEBTaG93Q29sdW1ucywgJ051bWJlcic7CiAgICAgICAgfQogICAgfQoKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoCiAgICAgICAgVmFsdWUgPT4gVHJhbnNsYXRhYmxlKCdGQVEgSm91cm5hbCcpLAogICAgKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwoKICAgICRPdXRwdXQgLj0gJFNlbGYtPl9GQVFKb3VybmFsU2hvdygKICAgICAgICBKb3VybmFsICAgICAgICAgID0+ICRKb3VybmFsLAogICAgICAgIFRvdGFsICAgICAgICAgICAgPT4gc2NhbGFyIEB7JEpvdXJuYWx9LAogICAgICAgIFRpdGxlTmFtZSAgICAgICAgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdGQVEgSm91cm5hbCcpLAogICAgICAgIExpbWl0ICAgICAgICAgICAgPT4gJEpvdXJuYWxMaW1pdCwKICAgICAgICBTaG93Q29sdW1ucyAgICAgID0+IFxAU2hvd0NvbHVtbnMsCiAgICAgICAgSm91cm5hbFRpdGxlU2l6ZSA9PiAkQ29uZmlnLT57VGl0bGVTaXplfSwKICAgICk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgIHJldHVybiAkT3V0cHV0Owp9CgpzdWIgX0ZBUUpvdXJuYWxTaG93IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBMb29rdXAgbGF0ZXN0IHVzZWQgdmlldyBtb2RlLgogICAgaWYgKCAhJFBhcmFte1ZpZXd9ICYmICRTZWxmLT57ICdVc2VyRkFRSm91cm5hbE92ZXJ2aWV3JyAuICRTZWxmLT57QWN0aW9ufSB9ICkgewogICAgICAgICRQYXJhbXtWaWV3fSA9ICRTZWxmLT57ICdVc2VyRkFRSm91cm5hbE92ZXJ2aWV3JyAuICRTZWxmLT57QWN0aW9ufSB9OwogICAgfQoKICAgICMgU2V0IGZyb250ZW5kLgogICAgbXkgJEZyb250ZW5kID0gJ0FnZW50JzsKCiAgICAjIFNldCBkZWZhdWx0IHZpZXcgbW9kZSB0byAnc21hbGwnLgogICAgbXkgJFZpZXcgPSAkUGFyYW17Vmlld30gfHwgJ1NtYWxsJzsKCiAgICBteSAkU2Vzc2lvbk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpBdXRoU2Vzc2lvbicpOwoKICAgICMgU3RvcmUgbGF0ZXN0IHZpZXcgbW9kZS4KICAgICRTZXNzaW9uT2JqZWN0LT5VcGRhdGVTZXNzaW9uSUQoCiAgICAgICAgU2Vzc2lvbklEID0+ICRTZWxmLT57U2Vzc2lvbklEfSwKICAgICAgICBLZXkgICAgICAgPT4gJ1VzZXJGQVFKb3VybmFsT3ZlcnZpZXcnIC4gJFNlbGYtPntBY3Rpb259LAogICAgICAgIFZhbHVlICAgICA9PiAkVmlldywKICAgICk7CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICMgZ2V0IGJhY2tlbmQgZnJvbSBjb25maWcKICAgIG15ICRCYWNrZW5kcyA9ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpGcm9udGVuZDo6Sm91cm5hbE92ZXJ2aWV3Jyk7CiAgICBpZiAoICEkQmFja2VuZHMgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkZhdGFsRXJyb3IoCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdOZWVkIGNvbmZpZyBvcHRpb24gRkFROjpGcm9udGVuZDo6T3ZlcnZpZXcnKSwKICAgICAgICApOwogICAgfQogICAgaWYgKCByZWYgJEJhY2tlbmRzIG5lICdIQVNIJyApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RmF0YWxFcnJvcigKICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ0NvbmZpZyBvcHRpb24gRkFROjpGcm9udGVuZDo6T3ZlcnZpZXcgbmVlZHMgdG8gYmUgYSBIQVNIIHJlZiEnKSwKICAgICAgICApOwogICAgfQoKICAgICMgQ2hlY2sgZm9yIGNvbmZpZyBrZXkuCiAgICBpZiAoICEkQmFja2VuZHMtPnskVmlld30gKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkZhdGFsRXJyb3IoCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnTm8gY29uZmlnIG9wdGlvbiBmb3VuZCBmb3IgdGhlIHZpZXcgIiVzIiEnLCAkVmlldyApLAogICAgICAgICk7CiAgICB9CgogICAgbXkgJFN0YXJ0SGl0ID0gaW50KCAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0JyktPkdldFBhcmFtKCBQYXJhbSA9PiAnU3RhcnRIaXQnICkgfHwgMSApOwoKICAgICMgR2V0IHBlcnNvbmFsIHBhZ2Ugc2hvd24gY291bnQuCiAgICBteSAkUGFnZVNob3duUHJlZmVyZW5jZXNLZXkgPSAnVXNlckZBUUpvdXJuYWxPdmVydmlldycgLiAkVmlldyAuICdQYWdlU2hvd24nOwogICAgbXkgJFBhZ2VTaG93biAgICAgICAgICAgICAgID0gJFNlbGYtPntTZXNzaW9ufXskUGFnZVNob3duUHJlZmVyZW5jZXNLZXl9IHx8IDEwOwogICAgbXkgJEdyb3VwICAgICAgICAgICAgICAgICAgID0gJ0ZBUUpvdXJuYWxPdmVydmlldycgLiAkVmlldyAuICdQYWdlU2hvd24nOwoKICAgICMgQ2hlY2sgc3RhcnQgb3B0aW9uLCBpZiBoaWdoZXIgdGhlbiBlbGVtZW50cyBhdmFpbGFibGUsIHNldCBpdCB0byB0aGUgbGFzdCBvdmVydmlldyBwYWdlCiAgICAjICAgKFRoYW5rcyB0byBTdGVmYW4gU2NobWlkdCEpCiAgICBpZiAoICRTdGFydEhpdCA+ICRQYXJhbXtUb3RhbH0gKSB7CiAgICAgICAgbXkgJFBhZ2VzID0gaW50KCAoICRQYXJhbXtUb3RhbH0gLyAkUGFnZVNob3duICkgKyAwLjk5OTk5ICk7CiAgICAgICAgJFN0YXJ0SGl0ID0gKCAoICRQYWdlcyAtIDEgKSAqICRQYWdlU2hvd24gKSArIDE7CiAgICB9CgogICAgIyBHZXQgZGF0YSBzZWxlY3Rpb24uCiAgICBteSAlRGF0YTsKICAgIG15ICRDb25maWcgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1ByZWZlcmVuY2VzR3JvdXBzJyk7CiAgICBpZiAoICRDb25maWcgJiYgJENvbmZpZy0+eyRHcm91cH0gJiYgJENvbmZpZy0+eyRHcm91cH0tPntEYXRhfSApIHsKICAgICAgICAlRGF0YSA9ICV7ICRDb25maWctPnskR3JvdXB9LT57RGF0YX0gfTsKICAgIH0KCiAgICAjIFNldCBwYWdlIGxpbWl0IGFuZCBidWlsZCBwYWdlIG5hdmlnYXRpb24uCiAgICBteSAkTGltaXQgICA9ICRQYXJhbXtMaW1pdH0gfHwgMjBfMDAwOwogICAgbXkgJVBhZ2VOYXYgPSAkTGF5b3V0T2JqZWN0LT5QYWdlTmF2QmFyKAogICAgICAgIExpbWl0ICAgICA9PiAkTGltaXQsCiAgICAgICAgU3RhcnRIaXQgID0+ICRTdGFydEhpdCwKICAgICAgICBQYWdlU2hvd24gPT4gJFBhZ2VTaG93biwKICAgICAgICBBbGxIaXRzICAgPT4gJFBhcmFte1RvdGFsfSB8fCAwLAogICAgICAgIEFjdGlvbiAgICA9PiAnQWN0aW9uPScgLiAkTGF5b3V0T2JqZWN0LT57QWN0aW9ufSwKICAgICAgICBMaW5rICAgICAgPT4gJFBhcmFte0xpbmtQYWdlfSwKICAgICk7CgogICAgIyBCdWlsZCBzaG93biBGQVEgYXJ0aWNsZXMgb24gYSBwYWdlLgogICAgJFBhcmFte1JlcXVlc3RlZFVSTH0gICAgPSAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufSI7CiAgICAkUGFyYW17R3JvdXB9ICAgICAgICAgICA9ICRHcm91cDsKICAgICRQYXJhbXtQcmVmZXJlbmNlc0tleX0gID0gJFBhZ2VTaG93blByZWZlcmVuY2VzS2V5OwogICAgJFBhcmFte1BhZ2VTaG93blN0cmluZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBOYW1lICAgICAgID0+ICRQYWdlU2hvd25QcmVmZXJlbmNlc0tleSwKICAgICAgICBTZWxlY3RlZElEID0+ICRQYWdlU2hvd24sCiAgICAgICAgRGF0YSAgICAgICA9PiBcJURhdGEsCiAgICApOwoKICAgICMgU3RvcmUgbGFzdCBvdmVydmlldyBzY3JlZW4gKGZvciBiYWNrIG1lbnUgYWN0aW9uKS4KICAgICRTZXNzaW9uT2JqZWN0LT5VcGRhdGVTZXNzaW9uSUQoCiAgICAgICAgU2Vzc2lvbklEID0+ICRTZWxmLT57U2Vzc2lvbklEfSwKICAgICAgICBLZXkgICAgICAgPT4gJ0xhc3RTY3JlZW5PdmVydmlldycsCiAgICAgICAgVmFsdWUgICAgID0+ICRQYXJhbXtSZXF1ZXN0ZWRVUkx9LAogICAgKTsKICAgICRTZXNzaW9uT2JqZWN0LT5VcGRhdGVTZXNzaW9uSUQoCiAgICAgICAgU2Vzc2lvbklEID0+ICRTZWxmLT57U2Vzc2lvbklEfSwKICAgICAgICBLZXkgICAgICAgPT4gJ0xhc3RTY3JlZW5WaWV3JywKICAgICAgICBWYWx1ZSAgICAgPT4gJFBhcmFte1JlcXVlc3RlZFVSTH0sCiAgICApOwoKICAgICMgQnVpbGQgbmF2aWdhdGlvbiBiYXIgY29udGVudC4KICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3TmF2QmFyJywKICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICApOwoKICAgIGZvciBteSAkQmFja2VuZCAoIHNvcnQga2V5cyAleyRCYWNrZW5kc30gKSB7CgogICAgICAgICMgQnVpbGQgbmF2aWdhdGlvbiBiYXIgdmlldyBtb2RlLgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld05hdkJhclZpZXdNb2RlJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAleyAkQmFja2VuZHMtPnskQmFja2VuZH0gfSwKICAgICAgICAgICAgICAgIEZpbHRlciA9PiAkUGFyYW17RmlsdGVyfSwKICAgICAgICAgICAgICAgIFZpZXcgICA9PiAkQmFja2VuZCwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIEN1cnJlbnQgdmlldyBpcyBjb25maWd1cmVkIGluIGJhY2tlbmQuCiAgICAgICAgaWYgKCAkVmlldyBlcSAkQmFja2VuZCApIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld05hdkJhclZpZXdNb2RlU2VsZWN0ZWQnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICV7ICRCYWNrZW5kcy0+eyRCYWNrZW5kfSB9LAogICAgICAgICAgICAgICAgICAgIEZpbHRlciA9PiAkUGFyYW17RmlsdGVyfSwKICAgICAgICAgICAgICAgICAgICBWaWV3ICAgPT4gJEJhY2tlbmQsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld05hdkJhclZpZXdNb2RlTm90U2VsZWN0ZWQnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICV7ICRCYWNrZW5kcy0+eyRCYWNrZW5kfSB9LAogICAgICAgICAgICAgICAgICAgIEZpbHRlciA9PiAkUGFyYW17RmlsdGVyfSwKICAgICAgICAgICAgICAgICAgICBWaWV3ICAgPT4gJEJhY2tlbmQsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIENoZWNrIGlmIHBhZ2UgbmF2aWdhdGlvbiBpcyBhdmFpbGFibGUuCiAgICBpZiAoJVBhZ2VOYXYpIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdOYXZCYXJQYWdlTmF2QmFyJywKICAgICAgICAgICAgRGF0YSA9PiBcJVBhZ2VOYXYsCiAgICAgICAgKTsKCiAgICAgICAgIyBEb24ndCBzaG93IGNvbnRleHQgc2V0dGluZ3MgaW4gQUpBWCBjYXNlIChlLiBnLiBpbiBjdXN0b21lciBGQVEgaGlzdG9yeSksIGJlY2F1c2UgdGhlCiAgICAgICAgIyAgIHN1Ym1pdCB3aXRoIHBhZ2UgcmVsb2FkIHdpbGwgbm90IHdvcmsgdGhlcmUKICAgICAgICBpZiAoICEkUGFyYW17QUpBWH0gKSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnQ29udGV4dFNldHRpbmdzJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICVQYWdlTmF2LAogICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIG15ICRPdXRwdXROYXZCYXIgPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudEZBUU92ZXJ2aWV3TmF2QmFyJywKICAgICAgICBEYXRhICAgICAgICAgPT4gewogICAgICAgICAgICBWaWV3ID0+ICRWaWV3LAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgfSwKICAgICk7CgogICAgbXkgJE91dHB1dFJhdyA9ICRPdXRwdXROYXZCYXI7CgogICAgaWYgKCAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok1haW4nKS0+UmVxdWlyZSggJEJhY2tlbmRzLT57JFZpZXd9LT57TW9kdWxlfSApICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5GYXRhbEVycm9yKCk7CiAgICB9CgogICAgIyBDaGVjayBmb3IgYmFja2VuZCBvYmplY3QuCiAgICBteSAkT2JqZWN0ID0gJEJhY2tlbmRzLT57JFZpZXd9LT57TW9kdWxlfS0+bmV3KCAleyRTZWxmfSApOwogICAgcmV0dXJuIGlmICEkT2JqZWN0OwoKICAgICMgUnVuIG1vZHVsZS4KICAgIG15ICRPdXRwdXQgPSAkT2JqZWN0LT5SdW4oCiAgICAgICAgJVBhcmFtLAogICAgICAgIExpbWl0ICAgICA9PiAkTGltaXQsCiAgICAgICAgU3RhcnRIaXQgID0+ICRTdGFydEhpdCwKICAgICAgICBQYWdlU2hvd24gPT4gJFBhZ2VTaG93biwKICAgICAgICBBbGxIaXRzICAgPT4gJFBhcmFte1RvdGFsfSB8fCAwLAogICAgICAgIEZyb250ZW5kICA9PiAkRnJvbnRlbmQsCiAgICAgICAgVGl0bGVTaXplID0+ICRQYXJhbXtKb3VybmFsVGl0bGVTaXplfSwKICAgICk7CgogICAgJE91dHB1dFJhdyAuPSAkT3V0cHV0OwoKICAgICMgQ3JlYXRlIG92ZXJ2aWV3IG5hdmlnYXRpb24gYmFyLgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdOYXZCYXInLAogICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICApOwoKICAgICMgUmV0dXJuIGNvbnRlbnQgaWYgYXZhaWxhYmxlLgogICAgcmV0dXJuICRPdXRwdXRSYXc7Cn0KCjE7Cg==</File>
        <File Location="Kernel/Modules/AgentFAQLanguage.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWdlbnRGQVFMYW5ndWFnZTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6Okxhbmd1YWdlIHF3KFRyYW5zbGF0YWJsZSk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBBbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0LgogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgUGVybWlzc2lvbiBjaGVjay4KICAgIGlmICggISRTZWxmLT57QWNjZXNzUnd9ICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Ob1Blcm1pc3Npb24oCiAgICAgICAgICAgIE1lc3NhZ2UgICAgPT4gVHJhbnNsYXRhYmxlKCdZb3UgbmVlZCBydyBwZXJtaXNzaW9uIScpLAogICAgICAgICAgICBXaXRoSGVhZGVyID0+ICd5ZXMnLAogICAgICAgICk7CiAgICB9CgogICAgbXkgJUdldFBhcmFtOwoKICAgIG15ICRNdWx0aUxhbmd1YWdlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdGQVE6Ok11bHRpTGFuZ3VhZ2UnKTsKCiAgICBteSAkRkFRT2JqZWN0ICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RkFRJyk7CiAgICBteSAkUGFyYW1PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBDaGFuZ2UKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdDaGFuZ2UnICYmICRNdWx0aUxhbmd1YWdlICkgewoKICAgICAgICAjIEdldCB0aGUgTGFuZ3VhZ2VJRAogICAgICAgIG15ICRMYW5ndWFnZUlEID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0xhbmd1YWdlSUQnICkgfHwgJyc7CgogICAgICAgICMgQ2hlY2sgcmVxdWlyZWQgcGFyYW1ldGVycy4KICAgICAgICBpZiAoICEkTGFuZ3VhZ2VJRCApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ05vIExhbmd1YWdlSUQgaXMgZ2l2ZW4hJyksCiAgICAgICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBteSAlTGFuZ3VhZ2VEYXRhID0gJEZBUU9iamVjdC0+TGFuZ3VhZ2VHZXQoCiAgICAgICAgICAgIExhbmd1YWdlSUQgPT4gJExhbmd1YWdlSUQsCiAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKCiAgICAgICAgJFNlbGYtPl9FZGl0KAogICAgICAgICAgICBBY3Rpb24gPT4gJ0NoYW5nZScsCiAgICAgICAgICAgICVMYW5ndWFnZURhdGEsCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50RkFRTGFuZ3VhZ2UnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gewogICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBDaGFuZ2UgYWN0aW9uCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQ2hhbmdlQWN0aW9uJyAmJiAkTXVsdGlMYW5ndWFnZSApIHsKCiAgICAgICAgIyBDaGFsbGVuZ2UgdG9rZW4gY2hlY2sgZm9yIHdyaXRlIGFjdGlvbi4KICAgICAgICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKCiAgICAgICAgbXkgJUVycm9yOwogICAgICAgIGZvciBteSAkUGFyYW1OYW1lIChxdyhMYW5ndWFnZUlEIE5hbWUpKSB7CgogICAgICAgICAgICAjIFN0b3JlIG5lZWRlZCBwYXJhbWV0ZXJzIGluICVHZXRQYXJhbSB0byBtYWtlIGl0IHJlLWxvYWRhYmxlCiAgICAgICAgICAgICRHZXRQYXJhbXskUGFyYW1OYW1lfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbU5hbWUgKTsKCiAgICAgICAgICAgIGlmICggISRHZXRQYXJhbXskUGFyYW1OYW1lfSApIHsKCiAgICAgICAgICAgICAgICAjIEFkZCB2YWxpZGF0aW9uIGNsYXNzIGFuZCBzZXJ2ZXIgZXJyb3IgZXJyb3IgY2xhc3MuCiAgICAgICAgICAgICAgICAkRXJyb3J7ICRQYXJhbU5hbWUgLiAnU2VydmVyRXJyb3InIH0gPSAnU2VydmVyRXJyb3InOwoKICAgICAgICAgICAgICAgICMgQWRkIHNlcnZlciBlcnJvciBzdHJpbmcgZm9yIGNhdGVnb3J5IG5hbWUgZmllbGQuCiAgICAgICAgICAgICAgICBpZiAoICRQYXJhbU5hbWUgZXEgJ05hbWUnICkgewogICAgICAgICAgICAgICAgICAgICRFcnJvcntOYW1lU2VydmVyRXJyb3JNZXNzYWdlfSA9IFRyYW5zbGF0YWJsZSgnVGhlIG5hbWUgaXMgcmVxdWlyZWQhJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICggJFBhcmFte05hbWV9ICkgewoKICAgICAgICAgICAgIyBjaGVjayBmb3IgZHVwbGljYXRlIGxhbmd1YWdlIG5hbWUKICAgICAgICAgICAgbXkgJExhbmd1YWdlRXhpc3RzQWxyZWFkeSA9ICRGQVFPYmplY3QtPkxhbmd1YWdlRHVwbGljYXRlQ2hlY2soCiAgICAgICAgICAgICAgICBOYW1lICAgICAgID0+ICRHZXRQYXJhbXtOYW1lfSwKICAgICAgICAgICAgICAgIExhbmd1YWdlSUQgPT4gJEdldFBhcmFte0xhbmd1YWdlSUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGlmICgkTGFuZ3VhZ2VFeGlzdHNBbHJlYWR5KSB7CiAgICAgICAgICAgICAgICAkRXJyb3J7TmFtZVNlcnZlckVycm9yfSAgICAgICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgJEVycm9ye05hbWVTZXJ2ZXJFcnJvck1lc3NhZ2V9ID0gVHJhbnNsYXRhYmxlKCdUaGlzIGxhbmd1YWdlIGFscmVhZHkgZXhpc3RzIScpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoJUVycm9yKSB7CiAgICAgICAgICAgICRTZWxmLT5fRWRpdCgKICAgICAgICAgICAgICAgIEFjdGlvbiA9PiAnQ2hhbmdlJywKICAgICAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgICAgICVFcnJvciwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50RkFRTGFuZ3VhZ2UnLAogICAgICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgICAgICB9CgogICAgICAgICMgVXBkYXRlIHRoZSBsYW5ndWFnZS4KICAgICAgICBteSAkTGFuZ3VhZ2VVcGRhdGVTdWNjZXNzZnVsID0gJEZBUU9iamVjdC0+TGFuZ3VhZ2VVcGRhdGUoCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwogICAgICAgIGlmICggISRMYW5ndWFnZVVwZGF0ZVN1Y2Nlc3NmdWwgKSB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigpOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KCBPUCA9PiAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufTtOb3RpZmljYXRpb249VXBkYXRlIiApOwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgQWRkCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQWRkJyAmJiAkTXVsdGlMYW5ndWFnZSApIHsKCiAgICAgICAgIyBHZXQgdGhlIG5ldyBuYW1lLgogICAgICAgICRHZXRQYXJhbXtOYW1lfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdOYW1lJyApOwoKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CgogICAgICAgICRTZWxmLT5fRWRpdCgKICAgICAgICAgICAgQWN0aW9uID0+ICdBZGQnLAogICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudEZBUUxhbmd1YWdlJywKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgQWRkIGFjdGlvbgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0FkZEFjdGlvbicgJiYgJE11bHRpTGFuZ3VhZ2UgKSB7CgogICAgICAgICMgQ2hhbGxlbmdlIHRva2VuIGNoZWNrIGZvciB3cml0ZSBhY3Rpb24uCiAgICAgICAgJExheW91dE9iamVjdC0+Q2hhbGxlbmdlVG9rZW5DaGVjaygpOwoKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CgogICAgICAgICMgR2V0IHRoZSBuYW1lLgogICAgICAgICRHZXRQYXJhbXtOYW1lfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdOYW1lJyApOwoKICAgICAgICBteSAlRXJyb3I7CgogICAgICAgICMgY2hlY2sgZm9yIG5hbWUKICAgICAgICBpZiAoICEkR2V0UGFyYW17TmFtZX0gKSB7CiAgICAgICAgICAgICRFcnJvcntOYW1lU2VydmVyRXJyb3J9ICAgICAgICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICRFcnJvcntOYW1lU2VydmVyRXJyb3JNZXNzYWdlfSA9IFRyYW5zbGF0YWJsZSgnVGhlIG5hbWUgaXMgcmVxdWlyZWQhJyk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBDaGVjayBmb3IgZHVwbGljYXRlIGxhbmd1YWdlIG5hbWUuCiAgICAgICAgICAgIG15ICRMYW5ndWFnZUV4aXN0c0FscmVhZHkgPSAkRkFRT2JqZWN0LT5MYW5ndWFnZUR1cGxpY2F0ZUNoZWNrKAogICAgICAgICAgICAgICAgTmFtZSAgICAgICA9PiAkR2V0UGFyYW17TmFtZX0sCiAgICAgICAgICAgICAgICBMYW5ndWFnZUlEID0+ICRHZXRQYXJhbXtMYW5ndWFnZUlEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgICAgICBpZiAoJExhbmd1YWdlRXhpc3RzQWxyZWFkeSkgewogICAgICAgICAgICAgICAgJEVycm9ye05hbWVTZXJ2ZXJFcnJvcn0gICAgICAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICRFcnJvcntOYW1lU2VydmVyRXJyb3JNZXNzYWdlfSA9IFRyYW5zbGF0YWJsZSgnVGhpcyBsYW5ndWFnZSBhbHJlYWR5IGV4aXN0cyEnKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKCVFcnJvcikgewogICAgICAgICAgICAkU2VsZi0+X0VkaXQoCiAgICAgICAgICAgICAgICBBY3Rpb24gPT4gJ0FkZCcsCiAgICAgICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgICAgICAlRXJyb3IsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudEZBUUxhbmd1YWdlJywKICAgICAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICAgICApOwogICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgICAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICAgICAgfQoKICAgICAgICAjIEFkZCB0aGUgbmV3IGxhbmd1YWdlLgogICAgICAgIG15ICRMYW5ndWFnZUFkZFN1Y2Nlc3NmdWwgPSAkRkFRT2JqZWN0LT5MYW5ndWFnZUFkZCgKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CiAgICAgICAgaWYgKCAhJExhbmd1YWdlQWRkU3VjY2Vzc2Z1bCApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKCk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoIE9QID0+ICJBY3Rpb249JFNlbGYtPntBY3Rpb259O05vdGlmaWNhdGlvbj1BZGQiICk7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBEZWxldGUKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdEZWxldGUnICYmICRNdWx0aUxhbmd1YWdlICkgewoKICAgICAgICAjIEdldCB0aGUgTGFuZ3VhZ2VJRC4KICAgICAgICBteSAkTGFuZ3VhZ2VJRCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdMYW5ndWFnZUlEJyApIHx8ICcnOwoKICAgICAgICBpZiAoICEkTGFuZ3VhZ2VJRCApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ05vIExhbmd1YWdlSUQgaXMgZ2l2ZW4hJyksCiAgICAgICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBteSAlTGFuZ3VhZ2VEYXRhID0gJEZBUU9iamVjdC0+TGFuZ3VhZ2VHZXQoCiAgICAgICAgICAgIExhbmd1YWdlSUQgPT4gJExhbmd1YWdlSUQsCiAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgIGlmICggISVMYW5ndWFnZURhdGEgKSB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigpOwogICAgICAgIH0KCiAgICAgICAgbXkgQEFmZmVjdGVkSXRlbXMgPSAkRkFRT2JqZWN0LT5GQVFTZWFyY2goCiAgICAgICAgICAgIExhbmd1YWdlSURzID0+IFskTGFuZ3VhZ2VJRF0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0RlbGV0ZScsCiAgICAgICAgICAgIERhdGEgPT4geyVMYW5ndWFnZURhdGF9LAogICAgICAgICk7CgogICAgICAgICMgU2V0IHRoZSBkaWFsb2cgdHlwZS4gQXMgZGVmYXVsdCwgdGhlIGRpYWxvZyB3aWxsIGhhdmUgMiBidXR0b25zOiBZZXMgYW5kIE5vLgogICAgICAgIG15ICREaWFsb2dUeXBlID0gJ0NvbmZpcm1hdGlvbic7CgogICAgICAgICMgRGlzcGxheSBsaXN0IG9mIGFmZmVjdGVkIEZBUSBhcnRpY2xlcy4KICAgICAgICBpZiAoQEFmZmVjdGVkSXRlbXMpIHsKCiAgICAgICAgICAgICMgU2V0IHRoZSBkaWFsb2cgdHlwZSB0byBoYXZlIG9ubHkgMSBidXR0b246IE9LLgogICAgICAgICAgICAkRGlhbG9nVHlwZSA9ICdNZXNzYWdlJzsKCiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnQWZmZWN0ZWRJdGVtcycsCiAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgSVRFTUlEOgogICAgICAgICAgICBmb3IgbXkgJEl0ZW1JRCAoQEFmZmVjdGVkSXRlbXMpIHsKCiAgICAgICAgICAgICAgICBteSAlRkFRRGF0YSA9ICRGQVFPYmplY3QtPkZBUUdldCgKICAgICAgICAgICAgICAgICAgICBJdGVtSUQgICAgID0+ICRJdGVtSUQsCiAgICAgICAgICAgICAgICAgICAgSXRlbUZpZWxkcyA9PiAwLAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBuZXh0IElURU1JRCBpZiAhJUZBUURhdGE7CgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQWZmZWN0ZWRJdGVtc1JvdycsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICVGQVFEYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnTm9BZmZlY3RlZEl0ZW1zJywKICAgICAgICAgICAgICAgIERhdGEgPT4geyVMYW5ndWFnZURhdGF9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudEZBUUxhbmd1YWdlJywKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IHt9LAogICAgICAgICk7CgogICAgICAgICMgQnVpbGQgdGhlIHJldHVybmVkIGRhdGEgc3RydWN0dXJlLgogICAgICAgIG15ICVEYXRhID0gKAogICAgICAgICAgICBIVE1MICAgICAgID0+ICRPdXRwdXQsCiAgICAgICAgICAgIERpYWxvZ1R5cGUgPT4gJERpYWxvZ1R5cGUsCiAgICAgICAgKTsKCiAgICAgICAgIyBSZXR1cm4gSlNPTi1TdHJpbmcgYmVjYXVzZSBvZiBBSkFYLU1vZGUuCiAgICAgICAgbXkgJE91dHB1dEpTT04gPSAkTGF5b3V0T2JqZWN0LT5KU09ORW5jb2RlKCBEYXRhID0+IFwlRGF0YSApOwoKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+QXR0YWNobWVudCgKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9JyAuICRMYXlvdXRPYmplY3QtPntDaGFyc2V0fSwKICAgICAgICAgICAgQ29udGVudCAgICAgPT4gJE91dHB1dEpTT04sCiAgICAgICAgICAgIFR5cGUgICAgICAgID0+ICdpbmxpbmUnLAogICAgICAgICAgICBOb0NhY2hlICAgICA9PiAxLAogICAgICAgICk7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBEZWxldGUgYWN0aW9uCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnRGVsZXRlQWN0aW9uJyAmJiAkTXVsdGlMYW5ndWFnZSApIHsKCiAgICAgICAgIyBHZXQgdGhlIExhbmd1YWdlSUQuCiAgICAgICAgbXkgJExhbmd1YWdlSUQgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnTGFuZ3VhZ2VJRCcgKSB8fCAnJzsKCiAgICAgICAgaWYgKCAhJExhbmd1YWdlSUQgKSB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdObyBMYW5ndWFnZUlEIGlzIGdpdmVuIScpLAogICAgICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgbXkgJUxhbmd1YWdlRGF0YSA9ICRGQVFPYmplY3QtPkxhbmd1YWdlR2V0KAogICAgICAgICAgICBMYW5ndWFnZUlEID0+ICRMYW5ndWFnZUlELAogICAgICAgICAgICBVc2VySUQgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICBpZiAoICElTGFuZ3VhZ2VEYXRhICkgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oKTsKICAgICAgICB9CgogICAgICAgICMgRGVsZXRlIHRoZSBsYW5ndWFnZS4KICAgICAgICBteSAkQ291bGREZWxldGVMYW5ndWFnZSA9ICRGQVFPYmplY3QtPkxhbmd1YWdlRGVsZXRlKAogICAgICAgICAgICBMYW5ndWFnZUlEID0+ICRMYW5ndWFnZUlELAogICAgICAgICAgICBVc2VySUQgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICBpZiAoJENvdWxkRGVsZXRlTGFuZ3VhZ2UpIHsKCiAgICAgICAgICAgICMgUmVkaXJlY3QgdG8gZXhwbG9yZXIsIHdoZW4gdGhlIGRlbGV0aW9uIHdhcyBzdWNjZXNzZnVsLgogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgICAgICBPUCA9PiAiQWN0aW9uPUFnZW50RkFRTGFuZ3VhZ2UiLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgU2hvdyBlcnJvciBtZXNzYWdlLCB3aGVuIGRlbGV0ZSBmYWlsZWQuCiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKAogICAgICAgICAgICAgICAgICAgICdXYXMgbm90IGFibGUgdG8gZGVsZXRlIHRoZSBsYW5ndWFnZSAlcyEnLAogICAgICAgICAgICAgICAgICAgICRMYW5ndWFnZUlELAogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgT3ZlcnZpZXcKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNlIHsKCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwoKICAgICAgICBteSAkTm90aWZpY2F0aW9uICAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdOb3RpZmljYXRpb24nICkgfHwgJyc7CiAgICAgICAgbXkgJU5vdGlmaWNhdGlvblRleHQgPSAoCiAgICAgICAgICAgIFVwZGF0ZSA9PiBUcmFuc2xhdGFibGUoJ0ZBUSBsYW5ndWFnZSB1cGRhdGVkIScpLAogICAgICAgICAgICBBZGQgICAgPT4gVHJhbnNsYXRhYmxlKCdGQVEgbGFuZ3VhZ2UgYWRkZWQhJyksCiAgICAgICAgKTsKICAgICAgICBpZiAoICROb3RpZmljYXRpb24gJiYgJE5vdGlmaWNhdGlvblRleHR7JE5vdGlmaWNhdGlvbn0gKSB7CiAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KCBJbmZvID0+ICROb3RpZmljYXRpb25UZXh0eyROb3RpZmljYXRpb259ICk7CiAgICAgICAgfQoKICAgICAgICAkU2VsZi0+X092ZXJ2aWV3KCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRGQVFMYW5ndWFnZScsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KfQoKc3ViIF9FZGl0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdPdmVydmlldycsCiAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgKTsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0FjdGlvbkxpc3QnLAogICAgICAgIERhdGEgPT4ge30sCiAgICApOwogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnQWN0aW9uT3ZlcnZpZXcnLAogICAgICAgIERhdGEgPT4ge30sCiAgICApOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3VXBkYXRlJywKICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICApOwoKICAgIGlmICggJFBhcmFte0FjdGlvbn0gZXEgJ0NoYW5nZScgKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0hlYWRlckVkaXQnLAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnSGVhZGVyQWRkJywKICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAxOwp9CgpzdWIgX092ZXJ2aWV3IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJE91dHB1dCA9ICcnOwoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXcnLAogICAgICAgIERhdGEgPT4ge30sCiAgICApOwoKICAgIG15ICRNdWx0aUxhbmd1YWdlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdGQVE6Ok11bHRpTGFuZ3VhZ2UnKTsKICAgIGlmICgkTXVsdGlMYW5ndWFnZSkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdBY3Rpb25MaXN0JywKICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICApOwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdBY3Rpb25BZGQnLAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0JywKICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICApOwoKICAgICAgICBteSAkRkFRT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkZBUScpOwoKICAgICAgICBteSAlTGFuZ3VhZ2VzID0gJEZBUU9iamVjdC0+TGFuZ3VhZ2VMaXN0KAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgIG15ICVKU0RhdGE7CgogICAgICAgICMgSWYgdGhlcmUgYXJlIGFueSBsYW5ndWFnZXMsIHRoZXkgYXJlIHNob3duLgogICAgICAgIGlmICglTGFuZ3VhZ2VzKSB7CiAgICAgICAgICAgIGZvciBteSAkTGFuZ3VhZ2VJRCAoIHNvcnQgeyAkTGFuZ3VhZ2VzeyRhfSBjbXAgJExhbmd1YWdlc3skYn0gfSBrZXlzICVMYW5ndWFnZXMgKSB7CgogICAgICAgICAgICAgICAgIyBDcmVhdGUgc3RydWN0dXJlIGZvciBKUy4KICAgICAgICAgICAgICAgICRKU0RhdGF7JExhbmd1YWdlSUR9ID0gewogICAgICAgICAgICAgICAgICAgIEVsZW1lbnRJRCAgICAgICAgICAgICAgICAgID0+ICdEZWxldGVMYW5ndWFnZUlEJyAuICRMYW5ndWFnZUlELAogICAgICAgICAgICAgICAgICAgIEVsZW1lbnRTZWxlY3RvciAgICAgICAgICAgID0+ICcjRGVsZXRlTGFuZ3VhZ2VJRCcgLiAkTGFuZ3VhZ2VJRCwKICAgICAgICAgICAgICAgICAgICBEaWFsb2dDb250ZW50UXVlcnlTdHJpbmcgICA9PiAnQWN0aW9uPUFnZW50RkFRTGFuZ3VhZ2U7U3ViYWN0aW9uPURlbGV0ZTtMYW5ndWFnZUlEPScgLiAkTGFuZ3VhZ2VJRCwKICAgICAgICAgICAgICAgICAgICBDb25maXJtZWRBY3Rpb25RdWVyeVN0cmluZyA9PiAnQWN0aW9uPUFnZW50RkFRTGFuZ3VhZ2U7U3ViYWN0aW9uPURlbGV0ZUFjdGlvbjtMYW5ndWFnZUlEPScKICAgICAgICAgICAgICAgICAgICAgICAgLiAkTGFuZ3VhZ2VJRCwKICAgICAgICAgICAgICAgICAgICBEaWFsb2dUaXRsZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoCiAgICAgICAgICAgICAgICAgICAgICAgICdEZWxldGUgTGFuZ3VhZ2UgJXMnLAogICAgICAgICAgICAgICAgICAgICAgICAkTGFuZ3VhZ2VzeyRMYW5ndWFnZUlEfSwKICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgfTsKCiAgICAgICAgICAgICAgICAjIEdldCBsYW5ndWFnZXMgcmVzdWx0LgogICAgICAgICAgICAgICAgbXkgJUxhbmd1YWdlRGF0YSA9ICRGQVFPYmplY3QtPkxhbmd1YWdlR2V0KAogICAgICAgICAgICAgICAgICAgIExhbmd1YWdlSUQgPT4gJExhbmd1YWdlSUQsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0Um93JywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHslTGFuZ3VhZ2VEYXRhfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkFkZEpTRGF0YSgKICAgICAgICAgICAgICAgIEtleSAgID0+ICdGQVFEYXRhJywKICAgICAgICAgICAgICAgIFZhbHVlID0+IFwlSlNEYXRhLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBPdGhlcndpc2UgYSBubyBkYXRhIGZvdW5kIG1lc3NhZ2UgaXMgZGlzcGxheWVkLgogICAgICAgIGVsc2UgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ05vRGF0YUZvdW5kTXNnJywKICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQogICAgZWxzZSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0Rpc2FibGVkJywKICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAxOwp9CgoxOwo=</File>
        <File Location="Kernel/Modules/AgentFAQPrint.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWdlbnRGQVFQcmludDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6Okxhbmd1YWdlICAgICAgICAgICAgICBxdyhUcmFuc2xhdGFibGUpOwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBBbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0LgogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgUGVybWlzc2lvbiBjaGVjay4KICAgIGlmICggISRTZWxmLT57QWNjZXNzUm99ICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Ob1Blcm1pc3Npb24oCiAgICAgICAgICAgIE1lc3NhZ2UgICAgPT4gVHJhbnNsYXRhYmxlKCdZb3UgbmVlZCBybyBwZXJtaXNzaW9uIScpLAogICAgICAgICAgICBXaXRoSGVhZGVyID0+ICd5ZXMnLAogICAgICAgICk7CiAgICB9CgogICAgbXkgJE91dHB1dDsKCiAgICAjIEdldCBwYXJhbWV0ZXJzIGZyb20gd2ViIHJlcXVlc3QuCiAgICBteSAlR2V0UGFyYW07CiAgICAkR2V0UGFyYW17SXRlbUlEfSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKS0+R2V0UGFyYW0oIFBhcmFtID0+ICdJdGVtSUQnICk7CgogICAgaWYgKCAhJEdldFBhcmFte0l0ZW1JRH0gKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnTm8gSXRlbUlEIGlzIGdpdmVuIScpLAogICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgKTsKICAgIH0KCiAgICBteSAkRkFRT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkZBUScpOwoKICAgIG15ICVGQVFEYXRhID0gJEZBUU9iamVjdC0+RkFRR2V0KAogICAgICAgIEl0ZW1JRCAgICAgPT4gJEdldFBhcmFte0l0ZW1JRH0sCiAgICAgICAgSXRlbUZpZWxkcyA9PiAxLAogICAgICAgIFVzZXJJRCAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKICAgIGlmICggISVGQVFEYXRhICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigpOwogICAgfQoKICAgICMgQ2hlY2sgdXNlciBwZXJtaXNzaW9uLgogICAgbXkgJFBlcm1pc3Npb24gPSAkRkFRT2JqZWN0LT5DaGVja0NhdGVnb3J5VXNlclBlcm1pc3Npb24oCiAgICAgICAgVXNlcklEICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgQ2F0ZWdvcnlJRCA9PiAkRkFRRGF0YXtDYXRlZ29yeUlEfSwKICAgICAgICBUeXBlICAgICAgID0+ICdybycsCiAgICApOwogICAgaWYgKCAhJFBlcm1pc3Npb24gKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgTWVzc2FnZSAgICA9PiBUcmFuc2xhdGFibGUoJ1lvdSBoYXZlIG5vIHBlcm1pc3Npb24gZm9yIHRoaXMgY2F0ZWdvcnkhJyksCiAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgKTsKICAgIH0KCiAgICBteSAkTGlua09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMaW5rT2JqZWN0Jyk7CgogICAgIyBHZXQgbGlua2VkIG9iamVjdHMuCiAgICBteSAkTGlua0xpc3RXaXRoRGF0YSA9ICRMaW5rT2JqZWN0LT5MaW5rTGlzdFdpdGhEYXRhKAogICAgICAgIE9iamVjdCA9PiAnRkFRJywKICAgICAgICBLZXkgICAgPT4gJEdldFBhcmFte0l0ZW1JRH0sCiAgICAgICAgU3RhdGUgID0+ICdWYWxpZCcsCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBHZXQgbGluayB0eXBlIGxpc3QuCiAgICBteSAlTGlua1R5cGVMaXN0ID0gJExpbmtPYmplY3QtPlR5cGVMaXN0KAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgR2V0IHRoZSBsaW5rIGRhdGEuCiAgICBteSAlTGlua0RhdGE7CiAgICBpZiAoICRMaW5rTGlzdFdpdGhEYXRhICYmIHJlZiAkTGlua0xpc3RXaXRoRGF0YSBlcSAnSEFTSCcgJiYgJXskTGlua0xpc3RXaXRoRGF0YX0gKSB7CiAgICAgICAgJUxpbmtEYXRhID0gJExheW91dE9iamVjdC0+TGlua09iamVjdFRhYmxlQ3JlYXRlKAogICAgICAgICAgICBMaW5rTGlzdFdpdGhEYXRhID0+ICRMaW5rTGlzdFdpdGhEYXRhLAogICAgICAgICAgICBWaWV3TW9kZSAgICAgICAgID0+ICdTaW1wbGVSYXcnLAogICAgICAgICk7CiAgICB9CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBQcmVwYXJlIGZpZWxkcyBkYXRhLgogICAgRklFTEQ6CiAgICBmb3IgbXkgJEZpZWxkIChxdyhGaWVsZDEgRmllbGQyIEZpZWxkMyBGaWVsZDQgRmllbGQ1IEZpZWxkNikpIHsKICAgICAgICBuZXh0IEZJRUxEIGlmICEkRkFRRGF0YXskRmllbGR9OwoKICAgICAgICAjIE5vIHF1b3RpbmcgaWYgSFRNTCB2aWV3IGlzIGVuYWJsZWQuCiAgICAgICAgbmV4dCBGSUVMRCBpZiAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6SXRlbTo6SFRNTCcpOwoKICAgICAgICAjIEhUTUwgcXVvdGluZy4KICAgICAgICAkRkFRRGF0YXskRmllbGR9ID0gJExheW91dE9iamVjdC0+QXNjaWkySHRtbCgKICAgICAgICAgICAgTmV3TGluZSAgICAgICAgPT4gMCwKICAgICAgICAgICAgVGV4dCAgICAgICAgICAgPT4gJEZBUURhdGF7JEZpZWxkfSwKICAgICAgICAgICAgVk1heCAgICAgICAgICAgPT4gNTAwMCwKICAgICAgICAgICAgSFRNTFJlc3VsdE1vZGUgPT4gMSwKICAgICAgICAgICAgTGlua0ZlYXR1cmUgICAgPT4gMSwKICAgICAgICApOwogICAgfQoKICAgIG15ICRVc2VyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKCiAgICAjIEdldCB1c2VyIGluZm8gKENyZWF0ZWRCeSkuCiAgICBteSAlVXNlckluZm8gPSAkVXNlck9iamVjdC0+R2V0VXNlckRhdGEoCiAgICAgICAgVXNlcklEID0+ICRGQVFEYXRhe0NyZWF0ZWRCeX0KICAgICk7CiAgICAkUGFyYW17Q3JlYXRlZEJ5TG9naW59ID0gJFVzZXJJbmZve1VzZXJMb2dpbn07CgogICAgIyBHZXQgdXNlciBpbmZvIChDaGFuZ2VkQnkpLgogICAgJVVzZXJJbmZvID0gJFVzZXJPYmplY3QtPkdldFVzZXJEYXRhKAogICAgICAgIFVzZXJJRCA9PiAkRkFRRGF0YXtDaGFuZ2VkQnl9CiAgICApOwogICAgJFBhcmFte0NoYW5nZWRCeUxvZ2lufSA9ICRVc2VySW5mb3tVc2VyTG9naW59OwoKICAgIG15ICRQREZPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6UERGJyk7CgogICAgIyBHZW5lcmF0ZSBQREYgb3V0cHV0LgogICAgbXkgJFByaW50ZWRCeSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgncHJpbnRlZCBieScpOwogICAgbXkgJFRpbWUgICAgICA9ICRMYXlvdXRPYmplY3QtPntUaW1lfTsKICAgIG15ICVQYWdlOwoKICAgICMgR2V0IG1heGltdW0gbnVtYmVyIG9mIHBhZ2VzLgogICAgJFBhZ2V7TWF4UGFnZXN9ID0gJENvbmZpZ09iamVjdC0+R2V0KCdQREY6Ok1heFBhZ2VzJyk7CiAgICBpZiAoICEkUGFnZXtNYXhQYWdlc30gfHwgJFBhZ2V7TWF4UGFnZXN9IDwgMSB8fCAkUGFnZXtNYXhQYWdlc30gPiAxMDAwICkgewogICAgICAgICRQYWdle01heFBhZ2VzfSA9IDEwMDsKICAgIH0KICAgIG15ICRIZWFkZXJSaWdodCAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6RkFRSG9vaycpIC4gJEZBUURhdGF7TnVtYmVyfTsKICAgIG15ICRIZWFkbGluZUxlZnQgPSAkSGVhZGVyUmlnaHQ7CiAgICBteSAkVGl0bGUgICAgICAgID0gJEhlYWRlclJpZ2h0OwogICAgaWYgKCAkRkFRRGF0YXtUaXRsZX0gKSB7CiAgICAgICAgJEhlYWRsaW5lTGVmdCA9ICRGQVFEYXRhe1RpdGxlfTsKICAgICAgICAkVGl0bGUgLj0gJyAvICcgLiAkRkFRRGF0YXtUaXRsZX07CiAgICB9CgogICAgJFBhZ2V7TWFyZ2luVG9wfSAgICA9IDMwOwogICAgJFBhZ2V7TWFyZ2luUmlnaHR9ICA9IDQwOwogICAgJFBhZ2V7TWFyZ2luQm90dG9tfSA9IDQwOwogICAgJFBhZ2V7TWFyZ2luTGVmdH0gICA9IDQwOwogICAgJFBhZ2V7SGVhZGVyUmlnaHR9ICA9ICRIZWFkZXJSaWdodDsKICAgICRQYWdle0Zvb3RlckxlZnR9ICAgPSAnJzsKICAgICRQYWdle1BhZ2VUZXh0fSAgICAgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ1BhZ2UnKTsKICAgICRQYWdle1BhZ2VDb3VudH0gICAgPSAxOwoKICAgICMgQ3JlYXRlIG5ldyBQREYgZG9jdW1lbnQuCiAgICAkUERGT2JqZWN0LT5Eb2N1bWVudE5ldygKICAgICAgICBUaXRsZSAgPT4gJENvbmZpZ09iamVjdC0+R2V0KCdQcm9kdWN0JykgLiAnOiAnIC4gJFRpdGxlLAogICAgICAgIEVuY29kZSA9PiAkTGF5b3V0T2JqZWN0LT57VXNlckNoYXJzZXR9LAogICAgKTsKCiAgICAjIENyZWF0ZSBmaXJzdCBQREYgcGFnZS4KICAgICRQREZPYmplY3QtPlBhZ2VOZXcoCiAgICAgICAgJVBhZ2UsCiAgICAgICAgRm9vdGVyUmlnaHQgPT4gJFBhZ2V7UGFnZVRleHR9IC4gJyAnIC4gJFBhZ2V7UGFnZUNvdW50fSwKICAgICk7CiAgICAkUGFnZXtQYWdlQ291bnR9Kys7CgogICAgJFBERk9iamVjdC0+UG9zaXRpb25TZXQoCiAgICAgICAgTW92ZSA9PiAncmVsYXRpdicsCiAgICAgICAgWSAgICA9PiAtNiwKICAgICk7CgogICAgIyBPdXRwdXQgdGl0bGUuCiAgICAkUERGT2JqZWN0LT5UZXh0KAogICAgICAgIFRleHQgICAgID0+ICRGQVFEYXRhe1RpdGxlfSwKICAgICAgICBGb250U2l6ZSA9PiAxMywKICAgICk7CgogICAgJFBERk9iamVjdC0+UG9zaXRpb25TZXQoCiAgICAgICAgTW92ZSA9PiAncmVsYXRpdicsCiAgICAgICAgWSAgICA9PiAtNiwKICAgICk7CgogICAgIyBPdXRwdXQgInByaW50ZWQgYnkiLgogICAgJFBERk9iamVjdC0+VGV4dCgKICAgICAgICBUZXh0ID0+ICRQcmludGVkQnkgLiAnICcKICAgICAgICAgICAgLiAkU2VsZi0+e1VzZXJGdWxsbmFtZX0gLiAnICgnCiAgICAgICAgICAgIC4gJFNlbGYtPntVc2VyRW1haWx9IC4gJyknCiAgICAgICAgICAgIC4gJywgJyAuICRUaW1lLAogICAgICAgIEZvbnRTaXplID0+IDksCiAgICApOwoKICAgICRQREZPYmplY3QtPlBvc2l0aW9uU2V0KAogICAgICAgIE1vdmUgPT4gJ3JlbGF0aXYnLAogICAgICAgIFkgICAgPT4gLTE0LAogICAgKTsKCiAgICAjIE91dHB1dCBGQVEgaW5mb3JtYXRpb24uCiAgICAkU2VsZi0+X1BERk91dHB1dEZBUUhlYWRlckluZm8oCiAgICAgICAgUGFnZURhdGEgPT4gXCVQYWdlLAogICAgICAgIEZBUURhdGEgID0+IFwlRkFRRGF0YSwKICAgICk7CgogICAgaWYgKCAkRkFRRGF0YXtLZXl3b3Jkc30gKSB7CiAgICAgICAgJFNlbGYtPl9QREZPdXRwdXRLZXl3b3JkcygKICAgICAgICAgICAgUGFnZURhdGEgPT4gXCVQYWdlLAogICAgICAgICAgICBGQVFEYXRhICA9PiBcJUZBUURhdGEsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIE91dHB1dCBGQVEgZHluYW1pYyBmaWVsZHMuCiAgICAkU2VsZi0+X1BERk91dHB1dEZBUUR5bmFtaWNGaWVsZHMoCiAgICAgICAgUGFnZURhdGEgPT4gXCVQYWdlLAogICAgICAgIEZBUURhdGEgID0+IFwlRkFRRGF0YSwKICAgICk7CgogICAgJFNlbGYtPl9QREZPdXB1dEZBUUNvbnRlbnQoCiAgICAgICAgUGFnZURhdGEgPT4gXCVQYWdlLAogICAgICAgIEZBUURhdGEgID0+IFwlRkFRRGF0YSwKICAgICk7CgogICAgIyBPdXRwdXQgbGlua2VkIG9iamVjdHMuCiAgICBpZiAoJUxpbmtEYXRhKSB7CiAgICAgICAgJFNlbGYtPl9QREZPdXRwdXRMaW5rZWRPYmplY3RzKAogICAgICAgICAgICBQYWdlRGF0YSAgICAgPT4gXCVQYWdlLAogICAgICAgICAgICBMaW5rRGF0YSAgICAgPT4gXCVMaW5rRGF0YSwKICAgICAgICAgICAgTGlua1R5cGVMaXN0ID0+IFwlTGlua1R5cGVMaXN0LAogICAgICAgICk7CiAgICB9CgogICAgIyBSZXR1cm4gdGhlIFBERiBkb2N1bWVudC4KICAgIG15ICRGaWxlbmFtZSA9ICdGQVFfJyAuICRGQVFEYXRhe051bWJlcn07CgogICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CiAgICBteSAkRGF0ZVRpbWUgICAgICAgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwogICAgbXkgJFkgICAgICAgICAgICAgID0gJERhdGVUaW1lLT57WWVhcn07CiAgICBteSAkTSAgICAgICAgICAgICAgPSBzcHJpbnRmKCAiJTAyZCIsICREYXRlVGltZS0+e01vbnRofSApOwogICAgbXkgJEQgICAgICAgICAgICAgID0gc3ByaW50ZiggIiUwMmQiLCAkRGF0ZVRpbWUtPntEYXl9ICk7CiAgICBteSAkaCAgICAgICAgICAgICAgPSBzcHJpbnRmKCAiJTAyZCIsICREYXRlVGltZS0+e0hvdXJ9ICk7CiAgICBteSAkbSAgICAgICAgICAgICAgPSBzcHJpbnRmKCAiJTAyZCIsICREYXRlVGltZS0+e01pbnV0ZX0gKTsKCiAgICBteSAkUERGU3RyaW5nID0gJFBERk9iamVjdC0+RG9jdW1lbnRPdXRwdXQoKTsKICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5BdHRhY2htZW50KAogICAgICAgIEZpbGVuYW1lICAgID0+ICRGaWxlbmFtZSAuICJfIiAuICIkWS0kTS0kRCIgLiAiXyIgLiAiJGgtJG0ucGRmIiwKICAgICAgICBDb250ZW50VHlwZSA9PiAiYXBwbGljYXRpb24vcGRmIiwKICAgICAgICBDb250ZW50ICAgICA9PiAkUERGU3RyaW5nLAogICAgICAgIFR5cGUgICAgICAgID0+ICdpbmxpbmUnLAogICAgKTsKCn0KCnN1YiBfUERGT3V0cHV0RkFRSGVhZGVySW5mbyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkTmVlZGVkIChxdyhQYWdlRGF0YSBGQVFEYXRhKSkgewogICAgICAgIGlmICggIWRlZmluZWQoICRQYXJhbXskTmVlZGVkfSApICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KICAgIG15ICVGQVFEYXRhID0gJXsgJFBhcmFte0ZBUURhdGF9IH07CiAgICBteSAlUGFnZSAgICA9ICV7ICRQYXJhbXtQYWdlRGF0YX0gfTsKCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgQ3JlYXRlIGxlZnQgdGFibGUuCiAgICBteSAkVGFibGVMZWZ0ID0gWwogICAgICAgIHsKICAgICAgICAgICAgS2V5ICAgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdDYXRlZ29yeScpIC4gJzonLAogICAgICAgICAgICBWYWx1ZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICRGQVFEYXRhe0NhdGVnb3J5TmFtZX0gKSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgS2V5ICAgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdTdGF0ZScpIC4gJzonLAogICAgICAgICAgICBWYWx1ZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICRGQVFEYXRhe1N0YXRlfSApLAogICAgICAgIH0sCiAgICBdOwoKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICMgTGFuZ3VhZ2Ugcm93LCBmZWF0dXJlIGlzIGVuYWJsZWQuCiAgICBteSAkTXVsdGlMYW5ndWFnZSA9ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpNdWx0aUxhbmd1YWdlJyk7CiAgICBpZiAoJE11bHRpTGFuZ3VhZ2UpIHsKICAgICAgICBteSAkUm93ID0gewogICAgICAgICAgICBLZXkgICA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ0xhbmd1YWdlJykgLiAnOicsCiAgICAgICAgICAgIFZhbHVlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJEZBUURhdGF7TGFuZ3VhZ2V9ICksCiAgICAgICAgfTsKICAgICAgICBwdXNoIEB7JFRhYmxlTGVmdH0sICRSb3c7CiAgICB9CgogICAgIyBBcHByb3ZhbCBzdGF0ZSByb3csIGZlYXR1cmUgaXMgZW5hYmxlZC4KICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdGQVE6OkFwcHJvdmFsUmVxdWlyZWQnKSApIHsKICAgICAgICAkRkFRRGF0YXtBcHByb3ZhbH0gPSAkRkFRRGF0YXtBcHByb3ZlZH0gPyAnWWVzJyA6ICdObyc7CiAgICAgICAgbXkgJFJvdyA9IHsKICAgICAgICAgICAgS2V5ICAgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdBcHByb3ZhbCcpIC4gJzonLAogICAgICAgICAgICBWYWx1ZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICRGQVFEYXRhe0FwcHJvdmFsfSApLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAeyRUYWJsZUxlZnR9LCAkUm93OwogICAgfQoKICAgICMgQ3JlYXRlIHJpZ2h0IHRhYmxlLgogICAgbXkgJFRhYmxlUmlnaHQ7CgogICAgbXkgJFZvdGluZyA9ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpWb3RpbmcnKTsKCiAgICAjIFZvdGluZyByb3dzLCBmZWF0dXJlIGlzIGVuYWJsZWQuCiAgICBpZiAoJFZvdGluZykgewogICAgICAgICRUYWJsZVJpZ2h0ID0gWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBLZXkgICA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ1ZvdGVzJykgLiAnOicsCiAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkRkFRRGF0YXtWb3Rlc30sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEtleSAgID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnUmVzdWx0JykgLiAnOicsCiAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkRkFRRGF0YXtWb3RlUmVzdWx0fSAuICIgJSIsCiAgICAgICAgICAgIH0sCiAgICAgICAgXTsKICAgIH0KCiAgICAjIExhc3QgdXBkYXRlIHJvdy4KICAgIHB1c2ggQHskVGFibGVSaWdodH0sIHsKICAgICAgICBLZXkgICA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ0xhc3QgdXBkYXRlJykgLiAnOicsCiAgICAgICAgVmFsdWUgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+Rm9ybWF0VGltZVN0cmluZygKICAgICAgICAgICAgJEZBUURhdGF7Q2hhbmdlZH0sCiAgICAgICAgICAgICdEYXRlRm9ybWF0TG9uZycsCiAgICAgICAgKSwKICAgIH07CgogICAgbXkgJFJvd3MgPSBAeyRUYWJsZUxlZnR9OwogICAgaWYgKCBAeyRUYWJsZVJpZ2h0fSA+ICRSb3dzICkgewogICAgICAgICRSb3dzID0gQHskVGFibGVSaWdodH07CiAgICB9CgogICAgbXkgJVRhYmxlUGFyYW07CiAgICBmb3IgbXkgJFJvdyAoIDEgLi4gJFJvd3MgKSB7CiAgICAgICAgJFJvdy0tOwogICAgICAgICRUYWJsZVBhcmFte0NlbGxEYXRhfVskUm93XVswXXtDb250ZW50fSAgICAgICAgID0gJFRhYmxlTGVmdC0+WyRSb3ddLT57S2V5fTsKICAgICAgICAkVGFibGVQYXJhbXtDZWxsRGF0YX1bJFJvd11bMF17Rm9udH0gICAgICAgICAgICA9ICdQcm9wb3J0aW9uYWxCb2xkJzsKICAgICAgICAkVGFibGVQYXJhbXtDZWxsRGF0YX1bJFJvd11bMV17Q29udGVudH0gICAgICAgICA9ICRUYWJsZUxlZnQtPlskUm93XS0+e1ZhbHVlfTsKICAgICAgICAkVGFibGVQYXJhbXtDZWxsRGF0YX1bJFJvd11bMl17Q29udGVudH0gICAgICAgICA9ICcgJzsKICAgICAgICAkVGFibGVQYXJhbXtDZWxsRGF0YX1bJFJvd11bMl17QmFja2dyb3VuZENvbG9yfSA9ICcjRkZGRkZGJzsKICAgICAgICAkVGFibGVQYXJhbXtDZWxsRGF0YX1bJFJvd11bM117Q29udGVudH0gICAgICAgICA9ICRUYWJsZVJpZ2h0LT5bJFJvd10tPntLZXl9OwogICAgICAgICRUYWJsZVBhcmFte0NlbGxEYXRhfVskUm93XVszXXtGb250fSAgICAgICAgICAgID0gJ1Byb3BvcnRpb25hbEJvbGQnOwogICAgICAgICRUYWJsZVBhcmFte0NlbGxEYXRhfVskUm93XVs0XXtDb250ZW50fSAgICAgICAgID0gJFRhYmxlUmlnaHQtPlskUm93XS0+e1ZhbHVlfTsKICAgIH0KCiAgICAkVGFibGVQYXJhbXtDb2x1bW5EYXRhfVswXXtXaWR0aH0gPSA4MDsKICAgICRUYWJsZVBhcmFte0NvbHVtbkRhdGF9WzFde1dpZHRofSA9IDE3MC41OwogICAgJFRhYmxlUGFyYW17Q29sdW1uRGF0YX1bMl17V2lkdGh9ID0gNDsKICAgICRUYWJsZVBhcmFte0NvbHVtbkRhdGF9WzNde1dpZHRofSA9IDgwOwogICAgJFRhYmxlUGFyYW17Q29sdW1uRGF0YX1bNF17V2lkdGh9ID0gMTcwLjU7CgogICAgJFRhYmxlUGFyYW17VHlwZX0gICAgICAgICAgICAgICAgPSAnQ3V0JzsKICAgICRUYWJsZVBhcmFte0JvcmRlcn0gICAgICAgICAgICAgID0gMDsKICAgICRUYWJsZVBhcmFte0ZvbnRTaXplfSAgICAgICAgICAgID0gNjsKICAgICRUYWJsZVBhcmFte0JhY2tncm91bmRDb2xvckV2ZW59ID0gJyNEREREREQnOwogICAgJFRhYmxlUGFyYW17UGFkZGluZ30gICAgICAgICAgICAgPSAxOwogICAgJFRhYmxlUGFyYW17UGFkZGluZ1RvcH0gICAgICAgICAgPSAzOwogICAgJFRhYmxlUGFyYW17UGFkZGluZ0JvdHRvbX0gICAgICAgPSAzOwoKICAgICMgT3V0cHV0IHRhYmxlLgogICAgUEFHRToKICAgIGZvciAoICRQYWdle1BhZ2VDb3VudH0gLi4gJFBhZ2V7TWF4UGFnZXN9ICkgewoKICAgICAgICBteSAkUERGT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlBERicpOwoKICAgICAgICAjIE91dHB1dCB0YWJsZSAob3IgYSBmcmFnbWVudCBvZiBpdCkuCiAgICAgICAgJVRhYmxlUGFyYW0gPSAkUERGT2JqZWN0LT5UYWJsZSggJVRhYmxlUGFyYW0sICk7CgogICAgICAgICMgU3RvcCBvdXRwdXQgb3Igb3V0cHV0IG5leHQgcGFnZS4KICAgICAgICBpZiAoICRUYWJsZVBhcmFte1N0YXRlfSApIHsKICAgICAgICAgICAgbGFzdCBQQUdFOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFBERk9iamVjdC0+UGFnZU5ldygKICAgICAgICAgICAgICAgICVQYWdlLAogICAgICAgICAgICAgICAgRm9vdGVyUmlnaHQgPT4gJFBhZ2V7UGFnZVRleHR9IC4gJyAnIC4gJFBhZ2V7UGFnZUNvdW50fSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFBhZ2V7UGFnZUNvdW50fSsrOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiAxOwp9CgpzdWIgX1BERk91dHB1dExpbmtlZE9iamVjdHMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoUGFnZURhdGEgTGlua0RhdGEgTGlua1R5cGVMaXN0KSkgewogICAgICAgIGlmICggIWRlZmluZWQoICRQYXJhbXskTmVlZGVkfSApICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJVBhZ2UgICAgID0gJXsgJFBhcmFte1BhZ2VEYXRhfSB9OwogICAgbXkgJVR5cGVMaXN0ID0gJXsgJFBhcmFte0xpbmtUeXBlTGlzdH0gfTsKICAgIG15ICVUYWJsZVBhcmFtOwogICAgbXkgJFJvdyA9IDA7CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICBmb3IgbXkgJExpbmtUeXBlTGlua0RpcmVjdGlvbiAoIHNvcnQgeyBsYyAkYSBjbXAgbGMgJGIgfSBrZXlzICV7ICRQYXJhbXtMaW5rRGF0YX0gfSApIHsKCiAgICAgICAgIyBJbnZlc3RpZ2F0ZSBsaW5rIHR5cGUgbmFtZS4KICAgICAgICBteSBATGlua0RhdGEgICAgID0gc3BsaXQgLzo6LywgJExpbmtUeXBlTGlua0RpcmVjdGlvbjsKICAgICAgICBteSAkTGlua1R5cGVOYW1lID0gJFR5cGVMaXN0eyAkTGlua0RhdGFbMF0gfS0+eyAkTGlua0RhdGFbMV0gLiAnTmFtZScgfTsKICAgICAgICAkTGlua1R5cGVOYW1lID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCRMaW5rVHlwZU5hbWUpOwoKICAgICAgICAjIERlZmluZSBoZWFkbGluZS4KICAgICAgICAkVGFibGVQYXJhbXtDZWxsRGF0YX1bJFJvd11bMF17Q29udGVudH0gPSAkTGlua1R5cGVOYW1lIC4gJzonOwogICAgICAgICRUYWJsZVBhcmFte0NlbGxEYXRhfVskUm93XVswXXtGb250fSAgICA9ICdQcm9wb3J0aW9uYWxCb2xkJzsKICAgICAgICAkVGFibGVQYXJhbXtDZWxsRGF0YX1bJFJvd11bMV17Q29udGVudH0gPSAnJzsKCiAgICAgICAgIyBFeHRyYWN0IG9iamVjdCBsaXN0LgogICAgICAgIG15ICRPYmplY3RMaXN0ID0gJFBhcmFte0xpbmtEYXRhfS0+eyRMaW5rVHlwZUxpbmtEaXJlY3Rpb259OwoKICAgICAgICBmb3IgbXkgJE9iamVjdCAoIHNvcnQgeyBsYyAkYSBjbXAgbGMgJGIgfSBrZXlzICV7JE9iamVjdExpc3R9ICkgewoKICAgICAgICAgICAgZm9yIG15ICRJdGVtICggQHsgJE9iamVjdExpc3QtPnskT2JqZWN0fSB9ICkgewoKICAgICAgICAgICAgICAgICRUYWJsZVBhcmFte0NlbGxEYXRhfVskUm93XVswXXtDb250ZW50fSB8fD0gJyc7CiAgICAgICAgICAgICAgICAkVGFibGVQYXJhbXtDZWxsRGF0YX1bJFJvd11bMV17Q29udGVudH0gPSAkSXRlbS0+e1RpdGxlfSB8fCAnJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBjb250aW51ZSB7CiAgICAgICAgICAgICAgICAkUm93Kys7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgJFRhYmxlUGFyYW17Q29sdW1uRGF0YX1bMF17V2lkdGh9ID0gODA7CiAgICAkVGFibGVQYXJhbXtDb2x1bW5EYXRhfVsxXXtXaWR0aH0gPSA0MzE7CgogICAgbXkgJFBERk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpQREYnKTsKCiAgICAjIFNldCBuZXcgcG9zaXRpb24uCiAgICAkUERGT2JqZWN0LT5Qb3NpdGlvblNldCgKICAgICAgICBNb3ZlID0+ICdyZWxhdGl2JywKICAgICAgICBZICAgID0+IC0xNSwKICAgICk7CgogICAgIyBPdXRwdXQgaGVhZGxpbmUuCiAgICAkUERGT2JqZWN0LT5UZXh0KAogICAgICAgIFRleHQgICAgID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnTGlua2VkIE9iamVjdHMnKSwKICAgICAgICBIZWlnaHQgICA9PiA3LAogICAgICAgIFR5cGUgICAgID0+ICdDdXQnLAogICAgICAgIEZvbnQgICAgID0+ICdQcm9wb3J0aW9uYWxCb2xkSXRhbGljJywKICAgICAgICBGb250U2l6ZSA9PiA3LAogICAgICAgIENvbG9yICAgID0+ICcjNjY2NjY2JywKICAgICk7CgogICAgIyBTZXQgbmV3IHBvc2l0aW9uLgogICAgJFBERk9iamVjdC0+UG9zaXRpb25TZXQoCiAgICAgICAgTW92ZSA9PiAncmVsYXRpdicsCiAgICAgICAgWSAgICA9PiAtNCwKICAgICk7CgogICAgIyBUYWJsZSBwYXJhbXMuCiAgICAkVGFibGVQYXJhbXtUeXBlfSAgICAgICAgICAgID0gJ0N1dCc7CiAgICAkVGFibGVQYXJhbXtCb3JkZXJ9ICAgICAgICAgID0gMDsKICAgICRUYWJsZVBhcmFte0ZvbnRTaXplfSAgICAgICAgPSA2OwogICAgJFRhYmxlUGFyYW17QmFja2dyb3VuZENvbG9yfSA9ICcjREREREREJzsKICAgICRUYWJsZVBhcmFte1BhZGRpbmd9ICAgICAgICAgPSAxOwogICAgJFRhYmxlUGFyYW17UGFkZGluZ1RvcH0gICAgICA9IDM7CiAgICAkVGFibGVQYXJhbXtQYWRkaW5nQm90dG9tfSAgID0gMzsKCiAgICAjIE91dHB1dCB0YWJsZS4KICAgIFBBR0U6CiAgICBmb3IgKCAkUGFnZXtQYWdlQ291bnR9IC4uICRQYWdle01heFBhZ2VzfSApIHsKCiAgICAgICAgIyBPdXRwdXQgdGFibGUgKG9yIGEgZnJhZ21lbnQgb2YgaXQpLgogICAgICAgICVUYWJsZVBhcmFtID0gJFBERk9iamVjdC0+VGFibGUoICVUYWJsZVBhcmFtLCApOwoKICAgICAgICAjIFN0b3Agb3V0cHV0IG9yIG91dHB1dCBuZXh0IHBhZ2UuCiAgICAgICAgaWYgKCAkVGFibGVQYXJhbXtTdGF0ZX0gKSB7CiAgICAgICAgICAgIGxhc3QgUEFHRTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRQREZPYmplY3QtPlBhZ2VOZXcoCiAgICAgICAgICAgICAgICAlUGFnZSwKICAgICAgICAgICAgICAgIEZvb3RlclJpZ2h0ID0+ICRQYWdle1BhZ2VUZXh0fSAuICcgJyAuICRQYWdle1BhZ2VDb3VudH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRQYWdle1BhZ2VDb3VudH0rKzsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gMTsKfQoKc3ViIF9QREZPdXRwdXRLZXl3b3JkcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkTmVlZGVkIChxdyhQYWdlRGF0YSBGQVFEYXRhKSkgewogICAgICAgIGlmICggIWRlZmluZWQoICRQYXJhbXskTmVlZGVkfSApICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CiAgICBteSAlRkFRRGF0YSA9ICV7ICRQYXJhbXtGQVFEYXRhfSB9OwogICAgbXkgJVBhZ2UgICAgPSAleyAkUGFyYW17UGFnZURhdGF9IH07CiAgICBteSAlVGFibGVQYXJhbTsKCiAgICAkVGFibGVQYXJhbXtDZWxsRGF0YX1bMF1bMF17Q29udGVudH0gPSAkRkFRRGF0YXtLZXl3b3Jkc30gfHwgJyc7CiAgICAkVGFibGVQYXJhbXtDb2x1bW5EYXRhfVswXXtXaWR0aH0gPSA1MTE7CgogICAgbXkgJFBERk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpQREYnKTsKCiAgICAjIFNldCBuZXcgcG9zaXRpb24uCiAgICAkUERGT2JqZWN0LT5Qb3NpdGlvblNldCgKICAgICAgICBNb3ZlID0+ICdyZWxhdGl2JywKICAgICAgICBZICAgID0+IC0xNSwKICAgICk7CgogICAgIyBPdXRwdXQgaGVhZGxpbmUuCiAgICAkUERGT2JqZWN0LT5UZXh0KAogICAgICAgIFRleHQgICAgID0+ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKS0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdLZXl3b3JkcycpLAogICAgICAgIEhlaWdodCAgID0+IDcsCiAgICAgICAgVHlwZSAgICAgPT4gJ0N1dCcsCiAgICAgICAgRm9udCAgICAgPT4gJ1Byb3BvcnRpb25hbEJvbGRJdGFsaWMnLAogICAgICAgIEZvbnRTaXplID0+IDcsCiAgICAgICAgQ29sb3IgICAgPT4gJyM2NjY2NjYnLAogICAgKTsKCiAgICAjIFNldCBuZXcgcG9zaXRpb24uCiAgICAkUERGT2JqZWN0LT5Qb3NpdGlvblNldCgKICAgICAgICBNb3ZlID0+ICdyZWxhdGl2JywKICAgICAgICBZICAgID0+IC00LAogICAgKTsKCiAgICAjIFRhYmxlIHBhcmFtcy4KICAgICRUYWJsZVBhcmFte1R5cGV9ICAgICAgICAgICAgPSAnQ3V0JzsKICAgICRUYWJsZVBhcmFte0JvcmRlcn0gICAgICAgICAgPSAwOwogICAgJFRhYmxlUGFyYW17Rm9udFNpemV9ICAgICAgICA9IDY7CiAgICAkVGFibGVQYXJhbXtCYWNrZ3JvdW5kQ29sb3J9ID0gJyNEREREREQnOwogICAgJFRhYmxlUGFyYW17UGFkZGluZ30gICAgICAgICA9IDE7CiAgICAkVGFibGVQYXJhbXtQYWRkaW5nVG9wfSAgICAgID0gMzsKICAgICRUYWJsZVBhcmFte1BhZGRpbmdCb3R0b219ICAgPSAzOwoKICAgICMgT3V0cHV0IHRhYmxlLgogICAgUEFHRToKICAgIGZvciAoICRQYWdle1BhZ2VDb3VudH0gLi4gJFBhZ2V7TWF4UGFnZXN9ICkgewoKICAgICAgICAjIE91dHB1dCB0YWJsZSAob3IgYSBmcmFnbWVudCBvZiBpdCkuCiAgICAgICAgJVRhYmxlUGFyYW0gPSAkUERGT2JqZWN0LT5UYWJsZSggJVRhYmxlUGFyYW0sICk7CgogICAgICAgICMgU3RvcCBvdXRwdXQgb3Igb3V0cHV0IG5leHQgcGFnZS4KICAgICAgICBpZiAoICRUYWJsZVBhcmFte1N0YXRlfSApIHsKICAgICAgICAgICAgbGFzdCBQQUdFOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFBERk9iamVjdC0+UGFnZU5ldygKICAgICAgICAgICAgICAgICVQYWdlLAogICAgICAgICAgICAgICAgRm9vdGVyUmlnaHQgPT4gJFBhZ2V7UGFnZVRleHR9IC4gJyAnIC4gJFBhZ2V7UGFnZUNvdW50fSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFBhZ2V7UGFnZUNvdW50fSsrOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiAxOwp9CgpzdWIgX1BERk91dHB1dEZBUUR5bmFtaWNGaWVsZHMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoUGFnZURhdGEgRkFRRGF0YSkpIHsKICAgICAgICBpZiAoICFkZWZpbmVkKCAkUGFyYW17JE5lZWRlZH0gKSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQogICAgbXkgJE91dHB1dCA9IDA7CiAgICBteSAlRkFRICAgID0gJXsgJFBhcmFte0ZBUURhdGF9IH07CiAgICBteSAlUGFnZSAgID0gJXsgJFBhcmFte1BhZ2VEYXRhfSB9OwoKICAgIG15ICVUYWJsZVBhcmFtOwogICAgbXkgJFJvdyA9IDA7CgogICAgIyBHZXQgZHluYW1pYyBmaWVsZCBjb25maWcgZm9yIGZyb250ZW5kIG1vZHVsZS4KICAgIG15ICREeW5hbWljRmllbGRGaWx0ZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoIkZBUTo6RnJvbnRlbmQ6OkFnZW50RkFRUHJpbnQiKS0+e0R5bmFtaWNGaWVsZH07CgogICAgIyBHZXQgdGhlIGR5bmFtaWMgZmllbGRzIGZvciBGQVEgb2JqZWN0LgogICAgbXkgJER5bmFtaWNGaWVsZCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKS0+RHluYW1pY0ZpZWxkTGlzdEdldCgKICAgICAgICBWYWxpZCAgICAgICA9PiAxLAogICAgICAgIE9iamVjdFR5cGUgID0+IFsnRkFRJ10sCiAgICAgICAgRmllbGRGaWx0ZXIgPT4gJER5bmFtaWNGaWVsZEZpbHRlciB8fCB7fSwKICAgICk7CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIEdlbmVyYXRlIHRhYmxlLgogICAgRFlOQU1JQ0ZJRUxEOgogICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyREeW5hbWljRmllbGR9ICkgewogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKCiAgICAgICAgbXkgJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kJyk7CgogICAgICAgIG15ICRWYWx1ZSA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5WYWx1ZUdldCgKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgIE9iamVjdElEICAgICAgICAgICA9PiAkRkFRe0ZBUUlEfSwKICAgICAgICApOwoKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJFZhbHVlOwogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICRWYWx1ZSBlcSAiIjsKCiAgICAgICAgIyBHZXQgcHJpbnQgc3RyaW5nIGZvciB0aGlzIGR5bmFtaWMgZmllbGQuCiAgICAgICAgbXkgJFZhbHVlU3RyZyA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5EaXNwbGF5VmFsdWVSZW5kZXIoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJFZhbHVlLAogICAgICAgICAgICBIVE1MT3V0cHV0ICAgICAgICAgPT4gMCwKICAgICAgICAgICAgTGF5b3V0T2JqZWN0ICAgICAgID0+ICRMYXlvdXRPYmplY3QsCiAgICAgICAgKTsKCiAgICAgICAgJFRhYmxlUGFyYW17Q2VsbERhdGF9WyRSb3ddWzBde0NvbnRlbnR9CiAgICAgICAgICAgID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TGFiZWx9ICkKICAgICAgICAgICAgLiAnOic7CiAgICAgICAgJFRhYmxlUGFyYW17Q2VsbERhdGF9WyRSb3ddWzBde0ZvbnR9ICAgID0gJ1Byb3BvcnRpb25hbEJvbGQnOwogICAgICAgICRUYWJsZVBhcmFte0NlbGxEYXRhfVskUm93XVsxXXtDb250ZW50fSA9ICRWYWx1ZVN0cmctPntWYWx1ZX07CgogICAgICAgICRSb3crKzsKICAgICAgICAkT3V0cHV0ID0gMTsKICAgIH0KCiAgICAkVGFibGVQYXJhbXtDb2x1bW5EYXRhfVswXXtXaWR0aH0gPSA4MDsKICAgICRUYWJsZVBhcmFte0NvbHVtbkRhdGF9WzFde1dpZHRofSA9IDQzMTsKCiAgICBteSAkUERGT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlBERicpOwoKICAgICMgT3V0cHV0IEZBUSBkeW5hbWljIGZpZWxkcy4KICAgIGlmICgkT3V0cHV0KSB7CgogICAgICAgICMgU2V0IG5ldyBwb3NpdGlvbi4KICAgICAgICAkUERGT2JqZWN0LT5Qb3NpdGlvblNldCgKICAgICAgICAgICAgTW92ZSA9PiAncmVsYXRpdicsCiAgICAgICAgICAgIFkgICAgPT4gLTE1LAogICAgICAgICk7CgogICAgICAgICMgT3V0cHV0IGhlYWRsaW5lLAogICAgICAgICRQREZPYmplY3QtPlRleHQoCiAgICAgICAgICAgIFRleHQgICAgID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnRkFRIER5bmFtaWMgRmllbGRzJyksCiAgICAgICAgICAgIEhlaWdodCAgID0+IDcsCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdDdXQnLAogICAgICAgICAgICBGb250ICAgICA9PiAnUHJvcG9ydGlvbmFsQm9sZEl0YWxpYycsCiAgICAgICAgICAgIEZvbnRTaXplID0+IDcsCiAgICAgICAgICAgIENvbG9yICAgID0+ICcjNjY2NjY2JywKICAgICAgICApOwoKICAgICAgICAjIFNldCBuZXcgcG9zaXRpb24uCiAgICAgICAgJFBERk9iamVjdC0+UG9zaXRpb25TZXQoCiAgICAgICAgICAgIE1vdmUgPT4gJ3JlbGF0aXYnLAogICAgICAgICAgICBZICAgID0+IC00LAogICAgICAgICk7CgogICAgICAgICMgVGFibGUgcGFyYW1zLgogICAgICAgICRUYWJsZVBhcmFte1R5cGV9ICAgICAgICAgICAgPSAnQ3V0JzsKICAgICAgICAkVGFibGVQYXJhbXtCb3JkZXJ9ICAgICAgICAgID0gMDsKICAgICAgICAkVGFibGVQYXJhbXtGb250U2l6ZX0gICAgICAgID0gNjsKICAgICAgICAkVGFibGVQYXJhbXtCYWNrZ3JvdW5kQ29sb3J9ID0gJyNEREREREQnOwogICAgICAgICRUYWJsZVBhcmFte1BhZGRpbmd9ICAgICAgICAgPSAxOwogICAgICAgICRUYWJsZVBhcmFte1BhZGRpbmdUb3B9ICAgICAgPSAzOwogICAgICAgICRUYWJsZVBhcmFte1BhZGRpbmdCb3R0b219ICAgPSAzOwoKICAgICAgICAjIE91dHB1dCB0YWJsZS4KICAgICAgICBQQUdFOgogICAgICAgIGZvciAoICRQYWdle1BhZ2VDb3VudH0gLi4gJFBhZ2V7TWF4UGFnZXN9ICkgewoKICAgICAgICAgICAgIyBPdXRwdXQgdGFibGUgKG9yIGEgZnJhZ21lbnQgb2YgaXQpLgogICAgICAgICAgICAlVGFibGVQYXJhbSA9ICRQREZPYmplY3QtPlRhYmxlKCAlVGFibGVQYXJhbSwgKTsKCiAgICAgICAgICAgICMgU3RvcCBvdXRwdXQgb3Igb3V0cHV0IG5leHQgcGFnZS4KICAgICAgICAgICAgaWYgKCAkVGFibGVQYXJhbXtTdGF0ZX0gKSB7CiAgICAgICAgICAgICAgICBsYXN0IFBBR0U7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkUERGT2JqZWN0LT5QYWdlTmV3KAogICAgICAgICAgICAgICAgICAgICVQYWdlLAogICAgICAgICAgICAgICAgICAgIEZvb3RlclJpZ2h0ID0+ICRQYWdle1BhZ2VUZXh0fSAuICcgJyAuICRQYWdle1BhZ2VDb3VudH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJFBhZ2V7UGFnZUNvdW50fSsrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIDE7Cn0KCnN1YiBfUERGT3VwdXRGQVFDb250ZW50IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICRQYXJhbU5hbWUgKHF3KFBhZ2VEYXRhIEZBUURhdGEpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRQYXJhbU5hbWV9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkUGFyYW1OYW1lISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJUZBUURhdGEgPSAleyAkUGFyYW17RkFRRGF0YX0gfTsKICAgIG15ICVQYWdlICAgID0gJXsgJFBhcmFte1BhZ2VEYXRhfSB9OwoKICAgICMgR2V0IHRoZSBjb25maWcgb2YgRkFRIGZpZWxkcyB0aGF0IHNob3VsZCBiZSBzaG93bi4KICAgIG15ICVGaWVsZHM7CiAgICBGSUVMRDoKICAgIGZvciBteSAkTnVtYmVyICggMSAuLiA2ICkgewoKICAgICAgICAjIEdldCBjb25maWcgb2YgRkFRIGZpZWxkLgogICAgICAgIG15ICRDb25maWcgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoICdGQVE6Okl0ZW06OkZpZWxkJyAuICROdW1iZXIgKTsKCiAgICAgICAgIyBTa2lwIG92ZXIgbm90IHNob3duIGZpZWxkcy4KICAgICAgICBuZXh0IEZJRUxEIGlmICEkQ29uZmlnLT57U2hvd307CgogICAgICAgICMgU3RvcmUgb25seSB0aGUgY29uZmlnIG9mIGZpZWxkcyB0aGF0IHNob3VsZCBiZSBzaG93bi4KICAgICAgICAkRmllbGRzeyAiRmllbGQiIC4gJE51bWJlciB9ID0gJENvbmZpZzsKICAgIH0KCiAgICAjIFNvcnQgc2hvd24gZmllbGRzIGJ5IHByaW9yaXR5LgogICAgRklFTEQ6CiAgICBmb3IgbXkgJEZpZWxkICggc29ydCB7ICRGaWVsZHN7JGF9LT57UHJpb30gPD0+ICRGaWVsZHN7JGJ9LT57UHJpb30gfSBrZXlzICVGaWVsZHMgKSB7CgogICAgICAgICMgR2V0IHRoZSBzdGF0ZSB0eXBlIGRhdGEgb2YgdGhpcyBmaWVsZC4KICAgICAgICBteSAkU3RhdGVUeXBlRGF0YSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpGQVEnKS0+U3RhdGVUeXBlR2V0KAogICAgICAgICAgICBOYW1lICAgPT4gJEZpZWxkc3skRmllbGR9LT57U2hvd30sCiAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgbXkgJVRhYmxlUGFyYW07CgogICAgICAgICMgQ29udmVydCBIVE1MIHRvIEFTQ0lJLgogICAgICAgIG15ICRBc2NpaUZpZWxkID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkhUTUxVdGlscycpLT5Ub0FzY2lpKAogICAgICAgICAgICBTdHJpbmcgPT4gJEZBUURhdGF7JEZpZWxkfSwKICAgICAgICApOwoKICAgICAgICAkVGFibGVQYXJhbXtDZWxsRGF0YX1bMF1bMF17Q29udGVudH0gPSAkQXNjaWlGaWVsZCB8fCAnJzsKICAgICAgICAkVGFibGVQYXJhbXtDb2x1bW5EYXRhfVswXXtXaWR0aH0gPSA1MTE7CgogICAgICAgIG15ICRQREZPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6UERGJyk7CgogICAgICAgICMgU2V0IG5ldyBwb3NpdGlvbi4KICAgICAgICAkUERGT2JqZWN0LT5Qb3NpdGlvblNldCgKICAgICAgICAgICAgTW92ZSA9PiAncmVsYXRpdicsCiAgICAgICAgICAgIFkgICAgPT4gLTE1LAogICAgICAgICk7CgogICAgICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgICAgICMgVHJhbnNsYXRlIHRoZSBmaWVsZCBuYW1lIGFuZCBzdGF0ZS4KICAgICAgICBteSAkRmllbGROYW1lID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAkRmllbGRzeyRGaWVsZH0tPnsnQ2FwdGlvbid9ICkKICAgICAgICAgICAgLiAnICgnCiAgICAgICAgICAgIC4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAkU3RhdGVUeXBlRGF0YS0+e05hbWV9ICkKICAgICAgICAgICAgLiAnKSc7CgogICAgICAgICMgT3V0cHV0IGhlYWRsaW5lLgogICAgICAgICRQREZPYmplY3QtPlRleHQoCiAgICAgICAgICAgIFRleHQgICAgID0+ICRGaWVsZE5hbWUsCiAgICAgICAgICAgIEhlaWdodCAgID0+IDcsCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdDdXQnLAogICAgICAgICAgICBGb250ICAgICA9PiAnUHJvcG9ydGlvbmFsQm9sZEl0YWxpYycsCiAgICAgICAgICAgIEZvbnRTaXplID0+IDcsCiAgICAgICAgICAgIENvbG9yICAgID0+ICcjNjY2NjY2JywKICAgICAgICApOwoKICAgICAgICAjIFNldCBuZXcgcG9zaXRpb24uCiAgICAgICAgJFBERk9iamVjdC0+UG9zaXRpb25TZXQoCiAgICAgICAgICAgIE1vdmUgPT4gJ3JlbGF0aXYnLAogICAgICAgICAgICBZICAgID0+IC00LAogICAgICAgICk7CgogICAgICAgICMgVGFibGUgcGFyYW1zLgogICAgICAgICRUYWJsZVBhcmFte1R5cGV9ICAgICAgICAgICAgPSAnQ3V0JzsKICAgICAgICAkVGFibGVQYXJhbXtCb3JkZXJ9ICAgICAgICAgID0gMDsKICAgICAgICAkVGFibGVQYXJhbXtGb250U2l6ZX0gICAgICAgID0gNjsKICAgICAgICAkVGFibGVQYXJhbXtCYWNrZ3JvdW5kQ29sb3J9ID0gJyNEREREREQnOwogICAgICAgICRUYWJsZVBhcmFte1BhZGRpbmd9ICAgICAgICAgPSAxOwogICAgICAgICRUYWJsZVBhcmFte1BhZGRpbmdUb3B9ICAgICAgPSAzOwogICAgICAgICRUYWJsZVBhcmFte1BhZGRpbmdCb3R0b219ICAgPSAzOwoKICAgICAgICAjIE91dHB1dCB0YWJsZS4KICAgICAgICBQQUdFOgogICAgICAgIGZvciAoICRQYWdle1BhZ2VDb3VudH0gLi4gJFBhZ2V7TWF4UGFnZXN9ICkgewoKICAgICAgICAgICAgIyBPdXRwdXQgdGFibGUgKG9yIGEgZnJhZ21lbnQgb2YgaXQpLgogICAgICAgICAgICAlVGFibGVQYXJhbSA9ICRQREZPYmplY3QtPlRhYmxlKCAlVGFibGVQYXJhbSwgKTsKCiAgICAgICAgICAgICMgU3RvcCBvdXRwdXQgb3Igb3V0cHV0IG5leHQgcGFnZS4KICAgICAgICAgICAgaWYgKCAkVGFibGVQYXJhbXtTdGF0ZX0gKSB7CiAgICAgICAgICAgICAgICBsYXN0IFBBR0U7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkUERGT2JqZWN0LT5QYWdlTmV3KAogICAgICAgICAgICAgICAgICAgICVQYWdlLAogICAgICAgICAgICAgICAgICAgIEZvb3RlclJpZ2h0ID0+ICRQYWdle1BhZ2VUZXh0fSAuICcgJyAuICRQYWdle1BhZ2VDb3VudH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJFBhZ2V7UGFnZUNvdW50fSsrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIDE7Cn0KCjE7Cg==</File>
        <File Location="Kernel/Modules/AgentFAQRelatedArticles.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWdlbnRGQVFSZWxhdGVkQXJ0aWNsZXM7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRDb25maWcgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoIkZBUTo6RnJvbnRlbmQ6OiRTZWxmLT57QWN0aW9ufSIpOwoKICAgIG15ICRKU09OID0gJyc7CgogICAgbXkgJFBhcmFtT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwoKICAgIG15ICRTdWJqZWN0ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1N1YmplY3QnICk7CiAgICBteSAkQm9keSAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdCb2R5JyApOwoKICAgIG15IEBSZWxhdGVkRkFRQXJ0aWNsZUxpc3Q7CiAgICBteSAkUmVsYXRlZEZBUUFydGljbGVGb3VuZE5vdGhpbmc7CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICBpZiAoICRTdWJqZWN0IHx8ICRCb2R5ICkgewoKICAgICAgICAjIEdldCB0aGUgbGFuZ3VhZ2UgZnJvbSB0aGUgdXNlciBhbmQgYWRkIHRoZSBkZWZhdWx0IGxhbmd1YWdlcyBmcm9tIHRoZSBjb25maWcuCiAgICAgICAgbXkgJFJlbGF0ZWRBcnRpY2xlTGFuZ3VhZ2VzID0gJENvbmZpZy0+eydEZWZhdWx0TGFuZ3VhZ2VzJ30gfHwgW107CgogICAgICAgICMgQ2hlY2sgaWYgdGhlIHVzZXIgbGFuZ3VhZ2UgYWxyZWFkeSBleGlzdHMuCiAgICAgICAgbXkgJUxvb2t1cFJlbGF0ZWRGQVFBcnRpY2xlc0xhbmd1YWdlID0gbWFwIHsgJF8gPT4gMSB9IEB7JFJlbGF0ZWRBcnRpY2xlTGFuZ3VhZ2VzfTsKICAgICAgICBpZiAoICEkTG9va3VwUmVsYXRlZEZBUUFydGljbGVzTGFuZ3VhZ2V7ICRMYXlvdXRPYmplY3QtPntVc2VyTGFuZ3VhZ2V9IH0gKSB7CiAgICAgICAgICAgIHB1c2ggQHskUmVsYXRlZEFydGljbGVMYW5ndWFnZXN9LCAkTGF5b3V0T2JqZWN0LT57VXNlckxhbmd1YWdlfTsKICAgICAgICB9CgogICAgICAgIEBSZWxhdGVkRkFRQXJ0aWNsZUxpc3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RkFRJyktPlJlbGF0ZWRBZ2VudEFydGljbGVMaXN0KAogICAgICAgICAgICBTdWJqZWN0ICAgPT4gJFN1YmplY3QsCiAgICAgICAgICAgIEJvZHkgICAgICA9PiAkQm9keSwKICAgICAgICAgICAgTGFuZ3VhZ2VzID0+ICRSZWxhdGVkQXJ0aWNsZUxhbmd1YWdlcywKICAgICAgICAgICAgTGltaXQgICAgID0+ICRDb25maWctPntTaG93TGltaXR9IHx8IDEwLAogICAgICAgICAgICBVc2VySUQgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgIGlmICggIUBSZWxhdGVkRkFRQXJ0aWNsZUxpc3QgKSB7CiAgICAgICAgICAgICRSZWxhdGVkRkFRQXJ0aWNsZUZvdW5kTm90aGluZyA9IDE7CiAgICAgICAgfQogICAgfQoKICAgIGlmIChAUmVsYXRlZEZBUUFydGljbGVMaXN0KSB7CgogICAgICAgICMgR2VuZXJhdGUgdGhlIGh0bWwgZm9yIHRoZSB3aWRnZXQuCiAgICAgICAgbXkgJEFnZW50UmVsYXRlZEZBUUFydGljbGVzSFRNTFN0cmluZyA9ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudEZBUVJlbGF0ZWRBcnRpY2xlcycsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgICAgICBSZWxhdGVkRkFRQXJ0aWNsZUxpc3QgICAgICAgICA9PiBcQFJlbGF0ZWRGQVFBcnRpY2xlTGlzdCwKICAgICAgICAgICAgICAgIFJlbGF0ZWRGQVFBcnRpY2xlRm91bmROb3RoaW5nID0+ICRSZWxhdGVkRkFRQXJ0aWNsZUZvdW5kTm90aGluZywKICAgICAgICAgICAgICAgIFZvdGVTdGFyc1Zpc2libGUgICAgICAgICAgICAgID0+ICRDb25maWctPntWb3RlU3RhcnNWaXNpYmxlfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAkSlNPTiA9ICRMYXlvdXRPYmplY3QtPkpTT05FbmNvZGUoCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgQWdlbnRSZWxhdGVkRkFRQXJ0aWNsZXNIVE1MU3RyaW5nID0+ICRBZ2VudFJlbGF0ZWRGQVFBcnRpY2xlc0hUTUxTdHJpbmcsCiAgICAgICAgICAgICAgICBTdWNjZXNzICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQogICAgZWxzZSB7CgogICAgICAgICRKU09OID0gJExheW91dE9iamVjdC0+SlNPTkVuY29kZSgKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBTdWNjZXNzID0+IDAsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNlbmQgSlNPTiByZXNwb25zZQogICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkF0dGFjaG1lbnQoCiAgICAgICAgQ29udGVudFR5cGUgPT4gJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9JyAuICRMYXlvdXRPYmplY3QtPntDaGFyc2V0fSwKICAgICAgICBDb250ZW50ICAgICA9PiAkSlNPTiwKICAgICAgICBUeXBlICAgICAgICA9PiAnaW5saW5lJywKICAgICAgICBOb0NhY2hlICAgICA9PiAxLAogICAgKTsKfQoKMTsK</File>
        <File Location="Kernel/Modules/AgentFAQRichText.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWdlbnRGQVFSaWNoVGV4dDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBNSU1FOjpCYXNlNjQgICAgIHF3KCk7CnVzZSBLZXJuZWw6Okxhbmd1YWdlIHF3KFRyYW5zbGF0YWJsZSk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBBbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0LgogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkUGFyYW1PYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIEdldCBwYXJhbWV0ZXJzIGZyb20gd2ViIHJlcXVlc3QKICAgIG15ICVHZXRQYXJhbTsKICAgIGZvciBteSAkS2V5IChxdyhJdGVtSUQpKSB7CiAgICAgICAgJEdldFBhcmFteyRLZXl9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJEtleSApOwogICAgICAgIGlmICggISRHZXRQYXJhbXskS2V5fSApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdObyAlcyBpcyBnaXZlbiEnLCAkS2V5ICksCiAgICAgICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIG15ICRGQVFPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RkFRJyk7CgogICAgbXkgJUZBUUl0ZW0gPSAkRkFRT2JqZWN0LT5GQVFHZXQoCiAgICAgICAgSXRlbUlEICAgICA9PiAkR2V0UGFyYW17SXRlbUlEfSwKICAgICAgICBJdGVtRmllbGRzID0+IDEsCiAgICAgICAgVXNlcklEICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgbXkgJFNjcmlwdEFsaWFzID0gJENvbmZpZ09iamVjdC0+R2V0KCdTY3JpcHRBbGlhcycpIHx8ICdvdG9iby8nOwogICAgbXkgJFVSTFJlZ2V4ICAgID0gJy8nIC4gJFNjcmlwdEFsaWFzIC4gJ2luZGV4LnBsXD9BY3Rpb249QWdlbnRGQVFab29tOycKICAgICAgICAuICdTdWJhY3Rpb249RG93bmxvYWRBdHRhY2htZW50O0l0ZW1JRD0nIC4gJEdldFBhcmFte0l0ZW1JRH0gLiAnO0ZpbGVJRD1bMC05XSsnOwogICAgbXkgJEVsZW1SZWdleCA9ICdzcmM9IignIC4gJFVSTFJlZ2V4IC4gJykiJzsKCiAgICBteSBARmllbGRzOwoKICAgIG15ICRMb2FkZWQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TWFpbicpLT5SZXF1aXJlKAogICAgICAgICdLZXJuZWw6Okxhbmd1YWdlJywKICAgICk7CgogICAgaWYgKCAhJExvYWRlZCApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdDYW5cJ3QgbG9hZCBMYW5ndWFnZU9iamVjdCEnKSwKICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICk7CiAgICB9CgogICAgbXkgJEZBUUxhbmd1YWdlT2JqZWN0ID0gS2VybmVsOjpMYW5ndWFnZS0+bmV3KAogICAgICAgIFVzZXJMYW5ndWFnZSA9PiAkRkFRSXRlbXtMYW5ndWFnZX0sCiAgICApOwoKICAgICMgR2V0IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgVGlja2V0IENvbXBvc2UuCiAgICBteSAkVGlja2V0Q29tcG9zZUNvbmZpZyA9ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpUaWNrZXRDb21wb3NlJyk7CgogICAgbXkgJEludGVybmFsU3RhdGVUeXBlID0gJEZBUU9iamVjdC0+U3RhdGVUeXBlR2V0KAogICAgICAgIE5hbWUgICA9PiAnaW50ZXJuYWwnLAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgIG15ICRJbnRlcm5hbFN0YXRlSUQgPSAkSW50ZXJuYWxTdGF0ZVR5cGUtPntTdGF0ZUlEfTsKCiAgICBteSAkVXBsb2FkQ2FjaGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpVcGxvYWRDYWNoZScpOwoKICAgICMgZ2V0IGZvcm0gaWQKICAgIG15ICRGb3JtSUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpGb3JtQ2FjaGUnKS0+UHJlcGFyZUZvcm1JRCgKICAgICAgICBQYXJhbU9iamVjdCAgPT4gJFBhcmFtT2JqZWN0LAogICAgICAgIExheW91dE9iamVjdCA9PiAkTGF5b3V0T2JqZWN0LAogICAgKTsKCiAgICBGSUVMRDoKICAgIGZvciBteSAkRmllbGQgKCAxIC4uIDYgKSB7CgogICAgICAgICMgRG9uJ3Qgd2FzdGUgYW55IGZ1cnRoZXIgcHJvY2Vzc2luZyBwb3dlciwgaWYgdGhlIGN1cnJlbnQgZmllbGQgZG9lc24ndCBoYXZlIGFueSBjb250ZW50LgogICAgICAgIG5leHQgRklFTEQgaWYgISRGQVFJdGVteyAnRmllbGQnIC4gJEZpZWxkIH07CgogICAgICAgIG15ICRGaWVsZENvbnRlbnQgPSAkRkFRSXRlbXsgJ0ZpZWxkJyAuICRGaWVsZCB9OwoKICAgICAgICAjIEdldCBjb25maWcgb2YgY3VycmVudCBGQVEgZmllbGQgZnJvbSBTeXNDb25maWcuCiAgICAgICAgbXkgJEZpZWxkQ29uZmlnID0gJENvbmZpZ09iamVjdC0+R2V0KCAnRkFROjpJdGVtOjpGaWVsZCcgLiAkRmllbGQgKTsKCiAgICAgICAgbmV4dCBGSUVMRCBpZiAhJEZpZWxkQ29uZmlnOwogICAgICAgIG5leHQgRklFTEQgaWYgcmVmICRGaWVsZENvbmZpZyBuZSAnSEFTSCc7CiAgICAgICAgbmV4dCBGSUVMRCBpZiAhJEZpZWxkQ29uZmlnLT57U2hvd307CgogICAgICAgIG15ICRTdGF0ZVR5cGVEYXRhID0gJEZBUU9iamVjdC0+U3RhdGVUeXBlR2V0KAogICAgICAgICAgICBOYW1lICAgPT4gJEZpZWxkQ29uZmlnLT57U2hvd30sCiAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBDaGVjayBpZiBjdXJyZW50IGZpZWxkIGlzIGludGVybmFsLgogICAgICAgIG15ICRJc0ludGVybmFsOwogICAgICAgIGlmICggJFN0YXRlVHlwZURhdGEtPntTdGF0ZUlEfSA9PSAkSW50ZXJuYWxTdGF0ZUlEICkgewogICAgICAgICAgICAkSXNJbnRlcm5hbCA9IDE7CiAgICAgICAgfQoKICAgICAgICAjIENoZWNrIHdoZXRoZXIgdGhlIGN1cnJlbnQgZmllbGQgc2hvdWxkIGJlIHZpc2libGUgdG8gdGhlIHB1YmxpYywgdGh1cyBiZSBpbnNlcnRlZCBpbnRvIGEKICAgICAgICAjICAgcmVzcG9uc2UgdG8gYSBjdXN0b21lciBvciBub3QuCiAgICAgICAgaWYgKCAhJFRpY2tldENvbXBvc2VDb25maWctPntJbmNsdWRlSW50ZXJuYWx9ICYmICRJc0ludGVybmFsICkgewogICAgICAgICAgICBuZXh0IEZJRUxEOwogICAgICAgIH0KCiAgICAgICAgIyBFeHRyYWN0IGFsbCBVUkxzIHdoaWNoIHBvaW50IHRvIGFuIGVtYmVkZGVkIGltYWdlLgogICAgICAgIG15IEBNYXRjaGVkVVJMcyA9ICggJEZpZWxkQ29udGVudCA9fiBteyRFbGVtUmVnZXh9eGdtcyApOwogICAgICAgIGZvciBteSAkVVJMIChATWF0Y2hlZFVSTHMpIHsKCiAgICAgICAgICAgICMgRXh0cmFjdCB0aGUgSUQgb2YgdGhlIGF0dGFjaG1lbnQKICAgICAgICAgICAgbXkgKCRGaWxlSUQpID0gJFVSTCA9fiBteyBGaWxlSUQ9KFswLTldKykgfW1zeDsKCiAgICAgICAgICAgIGlmICggJENvbmZpZ09iamVjdC0+e0RlYnVnfSA+IDAgKSB7CiAgICAgICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZGVidWcnLAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJGaWxlSUQ6ICRGaWxlSUQiLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBHZXQgdGhlIGF0dGFjaG1lbnQgdG8gd2hpY2ggdGhlIGN1cnJlbnQgVVJMIHBvaW50cy4KICAgICAgICAgICAgbXkgJUF0dGFjaG1lbnQgPSAkRkFRT2JqZWN0LT5BdHRhY2htZW50R2V0KAogICAgICAgICAgICAgICAgSXRlbUlEID0+ICRHZXRQYXJhbXtJdGVtSUR9LAogICAgICAgICAgICAgICAgRmlsZUlEID0+ICRGaWxlSUQsCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgbXkgQEF0dGFjaG1lbnRNZXRhID0gJFVwbG9hZENhY2hlT2JqZWN0LT5Gb3JtSURHZXRBbGxGaWxlc01ldGEoCiAgICAgICAgICAgICAgICBGb3JtSUQgPT4gJEZvcm1JRCwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG15ICRGaWxlbmFtZVRtcCAgICA9ICRBdHRhY2htZW50e0ZpbGVuYW1lfTsKICAgICAgICAgICAgbXkgJFN1ZmZpeFRtcCAgICAgID0gMDsKICAgICAgICAgICAgbXkgJFVuaXF1ZUZpbGVuYW1lID0gJyc7CgogICAgICAgICAgICAjIENyZWF0ZSBub3cgYW4gYXJ0aWNsZSBhdHRhY2htZW50IChpbmxpbmUpIGJhc2VkIG9uIHRoZSBkYXRhIG9mICVBdHRhY2htZW50IChGQVEpLgogICAgICAgICAgICBpZiAoJUF0dGFjaG1lbnQpIHsKCiAgICAgICAgICAgICAgICAjIENoZWNrIGlmIG5hbWUgYWxyZWFkeSBleGlzdHMuCiAgICAgICAgICAgICAgICB3aGlsZSAoICEkVW5pcXVlRmlsZW5hbWUgKSB7CiAgICAgICAgICAgICAgICAgICAgJFVuaXF1ZUZpbGVuYW1lID0gJEZpbGVuYW1lVG1wOwogICAgICAgICAgICAgICAgICAgIE5FV05BTUU6CiAgICAgICAgICAgICAgICAgICAgZm9yIG15ICRBdHRhY2htZW50ICggcmV2ZXJzZSBAQXR0YWNobWVudE1ldGEgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgTkVXTkFNRSBpZiAkRmlsZW5hbWVUbXAgbmUgJEF0dGFjaG1lbnQtPntGaWxlbmFtZX07CgogICAgICAgICAgICAgICAgICAgICAgICAjIE5hbWUgZXhpc3RzIC0+IGNoYW5nZS4KICAgICAgICAgICAgICAgICAgICAgICAgKyskU3VmZml4VG1wOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoICRBdHRhY2htZW50e0ZpbGVuYW1lfSA9fiBte1xBICguKikgXC4gKC4rPykgXHp9bXN4ICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJEZpbGVuYW1lVG1wID0gIiQxLSRTdWZmaXhUbXAuJDIiOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJEZpbGVuYW1lVG1wID0gIiRBdHRhY2htZW50e0ZpbGVuYW1lfS0kU3VmZml4VG1wIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAkVW5pcXVlRmlsZW5hbWUgPSAnJzsKICAgICAgICAgICAgICAgICAgICAgICAgbGFzdCBORVdOQU1FOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkQXR0YWNobWVudHtGaWxlbmFtZX0gPSAkRmlsZW5hbWVUbXA7CiAgICAgICAgICAgICAgICBkZWxldGUgJEF0dGFjaG1lbnR7Q29udGVudElEfTsKCiAgICAgICAgICAgICAgICAjIEFkZCB0aGUgYXR0YWNobWVudCB0byB0aGUgdXBsb2FkIGNhY2hlIG9mIHRoZSBjdXJyZW50IHRpY2tldC4KICAgICAgICAgICAgICAgICRVcGxvYWRDYWNoZU9iamVjdC0+Rm9ybUlEQWRkRmlsZSgKICAgICAgICAgICAgICAgICAgICBGb3JtSUQgICAgICA9PiAkRm9ybUlELAogICAgICAgICAgICAgICAgICAgIERpc3Bvc2l0aW9uID0+ICdpbmxpbmUnLAogICAgICAgICAgICAgICAgICAgICVBdHRhY2htZW50LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ0NvdWxkblwndCBnZXQgRkFRIGF0dGFjaG1lbnQgJwogICAgICAgICAgICAgICAgICAgICAgICAuICIoSXRlbUlEOiAkR2V0UGFyYW17SXRlbUlEfSwgRmlsZUlEOiAkRmlsZUlEKSEiLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIEdldCBuZXcgQ29udGVudElECiAgICAgICAgICAgIG15ICRDb250ZW50SUROZXcgPSAnJzsKICAgICAgICAgICAgQEF0dGFjaG1lbnRNZXRhID0gJFVwbG9hZENhY2hlT2JqZWN0LT5Gb3JtSURHZXRBbGxGaWxlc01ldGEoCiAgICAgICAgICAgICAgICBGb3JtSUQgPT4gJEZvcm1JRCwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIEFUVEFDSE1FTlQ6CiAgICAgICAgICAgIGZvciBteSAkQXR0YWNobWVudCAoQEF0dGFjaG1lbnRNZXRhKSB7CiAgICAgICAgICAgICAgICBuZXh0IEFUVEFDSE1FTlQgaWYgJEZpbGVuYW1lVG1wIG5lICRBdHRhY2htZW50LT57RmlsZW5hbWV9OwogICAgICAgICAgICAgICAgJENvbnRlbnRJRE5ldyA9ICRBdHRhY2htZW50LT57Q29udGVudElEfTsKICAgICAgICAgICAgICAgIGxhc3QgQVRUQUNITUVOVDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCAkQ29udGVudElETmV3IGVxICcnICkgewogICAgICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiQ291bGRuJ3QgZGV0ZXJtaW5lIGEgbmV3IENvbnRlbnRJRCEiLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIEV4dHJhY3QgdGhlIGFjdHVhbCBNSU1FIHR5cGUgZnJvbSB0aGUgY29udGVudCB0eXBlLCB3aGljaCBhbHNvIGNvbnRhaW5zIHRoZSBmaWxlbmFtZS4KICAgICAgICAgICAgbXkgKCRNaW1lVHlwZSkgPSAkQXR0YWNobWVudHtDb250ZW50VHlwZX0gPX4gbXteKC4rLy4rKTsgWyBdIG5hbWU9LiskfXhtczsKCiAgICAgICAgICAgIG15ICRTZXNzaW9uID0gJyc7CiAgICAgICAgICAgIGlmICggJFNlbGYtPntTZXNzaW9uSUR9ICYmICEkU2VsZi0+e1Nlc3Npb25JRENvb2tpZX0gKSB7CiAgICAgICAgICAgICAgICAkU2Vzc2lvbiA9ICcmJyAuICRTZWxmLT57U2Vzc2lvbk5hbWV9IC4gJz0nIC4gJFNlbGYtPntTZXNzaW9uSUR9OwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIENyZWF0ZSB0aGUgbmV3IGlubGluZSBpbWFnZSBVUkwuCiAgICAgICAgICAgIG15ICRJbmxpbmVJbWFnZSA9ICRMYXlvdXRPYmplY3QtPntCYXNlbGlua30KICAgICAgICAgICAgICAgIC4gIkFjdGlvbj1QaWN0dXJlVXBsb2FkO0Zvcm1JRD0kRm9ybUlEO0NvbnRlbnRJRD0kQ29udGVudElETmV3JFNlc3Npb24iOwoKICAgICAgICAgICAgIyBSZXBsYWNlIHRoZSBpbWFnZSBVUkwgd2l0aCB0aGUgaW5saW5lIGltYWdlLgogICAgICAgICAgICAkRmllbGRDb250ZW50ID1+IHN7XFEkVVJMXEV9eyRJbmxpbmVJbWFnZX14bXM7CiAgICAgICAgfQoKICAgICAgICAjIEFkZCB0aGUgbmFtZSBvZiB0aGUgZmllbGQgYXMgaGVhZGVyLgogICAgICAgIGlmICggJEZpZWxkQ29uZmlnLT57Q2FwdGlvbn0gJiYgJFRpY2tldENvbXBvc2VDb25maWctPntTaG93RmllbGROYW1lc30gKSB7CgogICAgICAgICAgICAjIFRyYW5zbGF0ZSB0aGUgY2FwdGlvbiB0byB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIEZBUSBpdGVtLgogICAgICAgICAgICBteSAkVHJhbnNsYXRlZENhcHRpb24gPSAkRkFRTGFuZ3VhZ2VPYmplY3QtPlRyYW5zbGF0ZSggJEZpZWxkQ29uZmlnLT57Q2FwdGlvbn0gKTsKCiAgICAgICAgICAgIGlmICgkVHJhbnNsYXRlZENhcHRpb24pIHsKICAgICAgICAgICAgICAgICRGaWVsZENvbnRlbnQgPSAnPGgyPicgLiAkVHJhbnNsYXRlZENhcHRpb24gLiAnOjwvaDI+JyAuICRGaWVsZENvbnRlbnQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcHVzaCBARmllbGRzLCAkRmllbGRDb250ZW50OwogICAgfQoKICAgIG15ICRGQVFIVE1MID0gam9pbiggJzxiciAvPicsIEBGaWVsZHMgKTsKCiAgICAjIEdldCBhbGwgbm9uLWlubGluZSBhdHRhY2htZW50cyBvZiB0aGUgRkFRIGl0ZW0uCiAgICBteSBAQXR0YWNobWVudHMgPSAkRkFRT2JqZWN0LT5BdHRhY2htZW50SW5kZXgoCiAgICAgICAgSXRlbUlEICAgICA9PiAkR2V0UGFyYW17SXRlbUlEfSwKICAgICAgICBTaG93SW5saW5lID0+IDAsCiAgICAgICAgVXNlcklEICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgIG15IEBEYXRhID0gJFVwbG9hZENhY2hlT2JqZWN0LT5Gb3JtSURHZXRBbGxGaWxlc01ldGEoCiAgICAgICAgRm9ybUlEID0+ICRGb3JtSUQsCiAgICApOwoKICAgIEFUVEFDSE1FTlQ6CiAgICBmb3IgbXkgJEF0dGFjaG1lbnREYXRhIChAQXR0YWNobWVudHMpIHsKCiAgICAgICAgbXkgJUF0dGFjaG1lbnQgPSAkRkFRT2JqZWN0LT5BdHRhY2htZW50R2V0KAogICAgICAgICAgICBJdGVtSUQgPT4gJEdldFBhcmFte0l0ZW1JRH0sCiAgICAgICAgICAgIEZpbGVJRCA9PiAkQXR0YWNobWVudERhdGEtPntGaWxlSUR9LAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgIGlmICglQXR0YWNobWVudCkgewoKICAgICAgICAgICAgbmV4dCBBVFRBQ0hNRU5UIGlmIGdyZXAgeyAkQXR0YWNobWVudHtGaWxlbmFtZX0gZXEgJF8tPntGaWxlbmFtZX0gfSBARGF0YTsKCiAgICAgICAgICAgICMgQWRkIHRoZSBhdHRhY2htZW50IHRvIHRoZSB1cGxvYWQgY2FjaGUgb2YgdGhlIGN1cnJlbnQgdGlja2V0LgogICAgICAgICAgICAkVXBsb2FkQ2FjaGVPYmplY3QtPkZvcm1JREFkZEZpbGUoCiAgICAgICAgICAgICAgICBGb3JtSUQgPT4gJEZvcm1JRCwKICAgICAgICAgICAgICAgICVBdHRhY2htZW50LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ0NvdWxkblwndCBnZXQgRkFRIGF0dGFjaG1lbnQgJwogICAgICAgICAgICAgICAgICAgIC4gIihJdGVtSUQ6ICRHZXRQYXJhbXtJdGVtSUR9LCBGaWxlSUQ6ICRBdHRhY2htZW50RGF0YS0+e0ZpbGVJRH0pISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigpOwogICAgICAgIH0KICAgIH0KCiAgICAjIFNlbmQgYSBsaXN0IG9mIGF0dGFjaG1lbnRzIGluIHRoZSB1cGxvYWQgY2FjaGUgYmFjayB0byB0aGUgY2xpZW50IHNpZGUgSmF2YVNjcmlwdCB3aGljaAogICAgIyAgIHJlbmRlcnMgdGhlbiB0aGUgbGlzdCBvZiBjdXJyZW50bHkgdXBsb2FkZWQgYXR0YWNobWVudHMuCiAgICBteSBAVGlja2V0QXR0YWNobWVudHMgPSAkVXBsb2FkQ2FjaGVPYmplY3QtPkZvcm1JREdldEFsbEZpbGVzTWV0YSgKICAgICAgICBGb3JtSUQgPT4gJEZvcm1JRCwKICAgICk7CgogICAgbXkgQEZpbHRlcmVkVGlja2V0QXR0YWNobWVudHM7CgogICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoJ0Zyb250ZW5kOjpSaWNoVGV4dCcpICkgewoKICAgICAgICAjIFJlbW92ZSB0aGUgaW5saW5lLWF0dGFjaG1lbnRzIHdoaWNoIHNob3VsZG4ndCBiZSBzaG93biBpbiB0aGUgcmVndWxhciBhdHRhY2htZW50IGxpc3QuCiAgICAgICAgQVRUQUNITUVOVDoKICAgICAgICBmb3IgbXkgJEF0dGFjaG1lbnQgKEBUaWNrZXRBdHRhY2htZW50cykgewogICAgICAgICAgICBpZiAoIGRlZmluZWQgJEF0dGFjaG1lbnQtPntDb250ZW50SUR9ICYmICRBdHRhY2htZW50LT57Q29udGVudElEfSA9fiBte1xBIGlubGluZX1tc3ggKSB7CiAgICAgICAgICAgICAgICBuZXh0IEFUVEFDSE1FTlQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcHVzaCBARmlsdGVyZWRUaWNrZXRBdHRhY2htZW50cywgJEF0dGFjaG1lbnQ7CiAgICAgICAgfQogICAgfQogICAgZWxzZSB7CgogICAgICAgICMgSWYgcmljaC10ZXh0IGlzIG5vdCBhY3RpdmUgdGhlbiBzZXQgYWxzbyBpbmxpbmUgYXR0YWNobWVudHMgYXMgcmVndWxhciBhdHRhY2htZW50cy4KICAgICAgICBARmlsdGVyZWRUaWNrZXRBdHRhY2htZW50cyA9IEBUaWNrZXRBdHRhY2htZW50czsKICAgIH0KCiAgICBmb3IgbXkgJEF0dGFjaG1lbnQgKEBGaWx0ZXJlZFRpY2tldEF0dGFjaG1lbnRzKSB7CiAgICAgICAgJEF0dGFjaG1lbnQtPntGaWxlc2l6ZX0gPSAkTGF5b3V0T2JqZWN0LT5IdW1hblJlYWRhYmxlRGF0YVNpemUoCiAgICAgICAgICAgIFNpemUgPT4gJEF0dGFjaG1lbnQtPntGaWxlc2l6ZX0sCiAgICAgICAgKTsKICAgIH0KCiAgICBteSAkSlNPTiA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpKU09OJyktPkVuY29kZSgKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgRkFRVGl0bGUgICAgICAgICAgPT4gJEZBUUl0ZW17VGl0bGV9LAogICAgICAgICAgICBGQVFDb250ZW50ICAgICAgICA9PiAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SFRNTFV0aWxzJyktPlRvQXNjaWkoIFN0cmluZyA9PiAkRkFRSFRNTCApIHx8ICcnLAogICAgICAgICAgICBGQVFIVE1MQ29udGVudCAgICA9PiAkRkFRSFRNTCwKICAgICAgICAgICAgVGlja2V0QXR0YWNobWVudHMgPT4gXEBGaWx0ZXJlZFRpY2tldEF0dGFjaG1lbnRzLAogICAgICAgICAgICBMb2NhbGl6YXRpb24gICAgICA9PiB7CiAgICAgICAgICAgICAgICBEZWxldGUgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdEZWxldGUnKSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgRm9ybUlEID0+ICRGb3JtSUQsCiAgICAgICAgfSwKICAgICk7CgogICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkF0dGFjaG1lbnQoCiAgICAgICAgQ29udGVudFR5cGUgPT4gJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9JyAuICRMYXlvdXRPYmplY3QtPntDaGFyc2V0fSwKICAgICAgICBDb250ZW50ICAgICA9PiAkSlNPTiwKICAgICAgICBUeXBlICAgICAgICA9PiAnaW5saW5lJywKICAgICAgICBOb0NhY2hlICAgICA9PiAxLAogICAgKTsKfQoKMTsK</File>
        <File Location="Kernel/Modules/AgentFAQSearch.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWdlbnRGQVFTZWFyY2g7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpMYW5ndWFnZSAgICAgICAgICAgICAgcXcoVHJhbnNsYXRhYmxlKTsKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgQWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdC4KICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBHZXQgY29uZmlnIGZvciBmcm9udGVuZC4KICAgICRTZWxmLT57Q29uZmlnfSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgiRkFROjpGcm9udGVuZDo6JFNlbGYtPntBY3Rpb259Iik7CgogICAgIyBHZXQgdGhlIGR5bmFtaWMgZmllbGRzIGZvciBGQVEgb2JqZWN0LgogICAgJFNlbGYtPntEeW5hbWljRmllbGR9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpLT5EeW5hbWljRmllbGRMaXN0R2V0KAogICAgICAgIFZhbGlkICAgICAgID0+IDEsCiAgICAgICAgT2JqZWN0VHlwZSAgPT4gJ0ZBUScsCiAgICAgICAgRmllbGRGaWx0ZXIgPT4gJFNlbGYtPntDb25maWd9LT57RHluYW1pY0ZpZWxkfSB8fCB7fSwKICAgICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJE91dHB1dDsKCiAgICBteSAkUGFyYW1PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CgogICAgIyBHZXQgY29uZmlnIGZyb20gY29uc3RydWN0b3IuCiAgICBteSAkQ29uZmlnID0gJFNlbGYtPntDb25maWd9OwoKICAgICMgR2V0IGNvbmZpZyBkYXRhLgogICAgbXkgJFN0YXJ0SGl0ICAgID0gaW50KCAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnU3RhcnRIaXQnICkgfHwgMSApOwogICAgbXkgJFNlYXJjaExpbWl0ID0gJENvbmZpZy0+e1NlYXJjaExpbWl0fSB8fCA1MDA7CiAgICBteSAkU29ydEJ5ICAgICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnU29ydEJ5JyApCiAgICAgICAgfHwgJENvbmZpZy0+eydTb3J0Qnk6OkRlZmF1bHQnfQogICAgICAgIHx8ICdGQVFJRCc7CiAgICBteSAkT3JkZXJCeSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdPcmRlckJ5JyApCiAgICAgICAgfHwgJENvbmZpZy0+eydPcmRlcjo6RGVmYXVsdCd9CiAgICAgICAgfHwgJ0Rvd24nOwogICAgbXkgJFByb2ZpbGUgICAgICAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1Byb2ZpbGUnICkgICAgICAgIHx8ICcnOwogICAgbXkgJFNhdmVQcm9maWxlICAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1NhdmVQcm9maWxlJyApICAgIHx8ICcnOwogICAgbXkgJFRha2VMYXN0U2VhcmNoID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1Rha2VMYXN0U2VhcmNoJyApIHx8ICcnOwogICAgbXkgJEVyYXNlVGVtcGxhdGUgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0VyYXNlVGVtcGxhdGUnICkgIHx8ICcnOwoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBCdWlsZCBvdXRwdXQgZm9yIG9wZW4gc2VhcmNoIGRlc2NyaXB0aW9uIGJ5IEZBUSBudW1iZXIuCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnT3BlblNlYXJjaERlc2NyaXB0aW9uRkFRTnVtYmVyJyApIHsKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50RkFRU2VhcmNoT3BlblNlYXJjaERlc2NyaXB0aW9uRkFRTnVtYmVyJywKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+QXR0YWNobWVudCgKICAgICAgICAgICAgRmlsZW5hbWUgICAgPT4gJ09wZW5TZWFyY2hEZXNjcmlwdGlvbkZBUU51bWJlci54bWwnLAogICAgICAgICAgICBDb250ZW50VHlwZSA9PiAnYXBwbGljYXRpb24vb3BlbnNlYXJjaGRlc2NyaXB0aW9uK3htbCcsCiAgICAgICAgICAgIENvbnRlbnQgICAgID0+ICRPdXRwdXQsCiAgICAgICAgICAgIFR5cGUgICAgICAgID0+ICdpbmxpbmUnLAogICAgICAgICk7CiAgICB9CgogICAgIyBCdWlsZCBvdXRwdXQgZm9yIG9wZW4gc2VhcmNoIGRlc2NyaXB0aW9uIGJ5IGZ1bGwtdGV4dC4KICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdPcGVuU2VhcmNoRGVzY3JpcHRpb25GdWxsdGV4dCcgKSB7CiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudEZBUVNlYXJjaE9wZW5TZWFyY2hEZXNjcmlwdGlvbkZ1bGx0ZXh0JywKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+QXR0YWNobWVudCgKICAgICAgICAgICAgRmlsZW5hbWUgICAgPT4gJ09wZW5TZWFyY2hEZXNjcmlwdGlvbkZ1bGx0ZXh0LnhtbCcsCiAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICdhcHBsaWNhdGlvbi9vcGVuc2VhcmNoZGVzY3JpcHRpb24reG1sJywKICAgICAgICAgICAgQ29udGVudCAgICAgPT4gJE91dHB1dCwKICAgICAgICAgICAgVHlwZSAgICAgICAgPT4gJ2lubGluZScsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIFNlYXJjaCB3aXRoIGEgc2F2ZWQgdGVtcGxhdGUuCiAgICBpZiAoICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdTZWFyY2hUZW1wbGF0ZScgKSAmJiAkUHJvZmlsZSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgIE9QID0+CiAgICAgICAgICAgICAgICAiQWN0aW9uPUFnZW50RkFRU2VhcmNoO1N1YmFjdGlvbj1TZWFyY2g7VGFrZUxhc3RTZWFyY2g9MTtTYXZlUHJvZmlsZT0xO1Byb2ZpbGU9JFByb2ZpbGUiLAogICAgICAgICk7CiAgICB9CgogICAgbXkgJUdldFBhcmFtOwoKICAgIG15ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZCcpOwogICAgbXkgJFNlYXJjaFByb2ZpbGVPYmplY3QgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U2VhcmNoUHJvZmlsZScpOwoKICAgICMgTG9hZCBwcm9maWxlcyBzdHJpbmcgcGFyYW1zIChwcmVzcyBsb2FkIHByb2ZpbGUpLgogICAgaWYgKCAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnTG9hZFByb2ZpbGUnICYmICRQcm9maWxlICkgfHwgJFRha2VMYXN0U2VhcmNoICkgewogICAgICAgICVHZXRQYXJhbSA9ICRTZWFyY2hQcm9maWxlT2JqZWN0LT5TZWFyY2hQcm9maWxlR2V0KAogICAgICAgICAgICBCYXNlICAgICAgPT4gJ0ZBUVNlYXJjaCcsCiAgICAgICAgICAgIE5hbWUgICAgICA9PiAkUHJvZmlsZSwKICAgICAgICAgICAgVXNlckxvZ2luID0+ICRTZWxmLT57VXNlckxvZ2lufSwKICAgICAgICApOwogICAgfQoKICAgICMgR2V0IHNlYXJjaCBzdHJpbmcgcGFyYW1zIChnZXQgc3VibWl0dGVkIHBhcmFtcykuCiAgICBlbHNlIHsKCiAgICAgICAgIyBHZXQgc2NhbGFyIHNlYXJjaCBwYXJhbWV0ZXJzIGZyb20gd2ViIHJlcXVlc3QuCiAgICAgICAgZm9yIG15ICRQYXJhbU5hbWUgKAogICAgICAgICAgICBxdyhOdW1iZXIgVGl0bGUgS2V5d29yZCBGdWxsdGV4dCBSZXN1bHRGb3JtIFZvdGVTZWFyY2ggVm90ZVNlYXJjaFR5cGUgUmF0ZVNlYXJjaAogICAgICAgICAgICBSYXRlU2VhcmNoVHlwZSBBcHByb3ZlZFNlYXJjaAogICAgICAgICAgICBUaW1lU2VhcmNoVHlwZSBDaGFuZ2VUaW1lU2VhcmNoVHlwZQogICAgICAgICAgICBJdGVtQ3JlYXRlVGltZVBvaW50Rm9ybWF0IEl0ZW1DcmVhdGVUaW1lUG9pbnQKICAgICAgICAgICAgSXRlbUNyZWF0ZVRpbWVQb2ludFN0YXJ0CiAgICAgICAgICAgIEl0ZW1DcmVhdGVUaW1lU3RhcnQgSXRlbUNyZWF0ZVRpbWVTdGFydERheSBJdGVtQ3JlYXRlVGltZVN0YXJ0TW9udGgKICAgICAgICAgICAgSXRlbUNyZWF0ZVRpbWVTdGFydFllYXIKICAgICAgICAgICAgSXRlbUNyZWF0ZVRpbWVTdG9wIEl0ZW1DcmVhdGVUaW1lU3RvcERheSBJdGVtQ3JlYXRlVGltZVN0b3BNb250aAogICAgICAgICAgICBJdGVtQ3JlYXRlVGltZVN0b3BZZWFyCiAgICAgICAgICAgIEl0ZW1DaGFuZ2VUaW1lUG9pbnRGb3JtYXQgSXRlbUNoYW5nZVRpbWVQb2ludAogICAgICAgICAgICBJdGVtQ2hhbmdlVGltZVBvaW50U3RhcnQKICAgICAgICAgICAgSXRlbUNoYW5nZVRpbWVTdGFydCBJdGVtQ2hhbmdlVGltZVN0YXJ0RGF5IEl0ZW1DaGFuZ2VUaW1lU3RhcnRNb250aAogICAgICAgICAgICBJdGVtQ2hhbmdlVGltZVN0YXJ0WWVhcgogICAgICAgICAgICBJdGVtQ2hhbmdlVGltZVN0b3AgSXRlbUNoYW5nZVRpbWVTdG9wRGF5IEl0ZW1DaGFuZ2VUaW1lU3RvcE1vbnRoCiAgICAgICAgICAgIEl0ZW1DaGFuZ2VUaW1lU3RvcFllYXIKICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkR2V0UGFyYW17JFBhcmFtTmFtZX0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1OYW1lICk7CgogICAgICAgICAgICAjIFJlbW92ZSB3aGl0ZXNwYWNlIG9uIHRoZSBzdGFydCBhbmQgZW5kLgogICAgICAgICAgICBpZiAoICRHZXRQYXJhbXskUGFyYW1OYW1lfSApIHsKICAgICAgICAgICAgICAgICRHZXRQYXJhbXskUGFyYW1OYW1lfSA9fiBzeyBcQSBccysgfXt9eG1zOwogICAgICAgICAgICAgICAgJEdldFBhcmFteyRQYXJhbU5hbWV9ID1+IHN7IFxzKyBceiB9e314bXM7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgR2V0IGFycmF5IHNlYXJjaCBwYXJhbWV0ZXJzIGZyb20gd2ViIHJlcXVlc3QuCiAgICAgICAgZm9yIG15ICRTZWFyY2hQYXJhbSAoCiAgICAgICAgICAgIHF3KENhdGVnb3J5SURzIExhbmd1YWdlSURzIFZhbGlkSURzIFN0YXRlSURzIENyZWF0ZWRVc2VySURzIExhc3RDaGFuZ2VkVXNlcklEcykKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgbXkgQEFycmF5ID0gJFBhcmFtT2JqZWN0LT5HZXRBcnJheSggUGFyYW0gPT4gJFNlYXJjaFBhcmFtICk7CiAgICAgICAgICAgIGlmIChAQXJyYXkpIHsKICAgICAgICAgICAgICAgICRHZXRQYXJhbXskU2VhcmNoUGFyYW19ID0gXEBBcnJheTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBHZXQgRHluYW1pYyBmaWVsZHMgZnJvbSBwYXJhbSBvYmplY3QuCiAgICAgICAgRFlOQU1JQ0ZJRUxEOgogICAgICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHsgJFNlbGYtPntEeW5hbWljRmllbGR9IH0gKSB7CiAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKCiAgICAgICAgICAgICMgR2V0IHNlYXJjaCBmaWVsZCBwcmVmZXJlbmNlcy4KICAgICAgICAgICAgbXkgJFNlYXJjaEZpZWxkUHJlZmVyZW5jZXMgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+U2VhcmNoRmllbGRQcmVmZXJlbmNlcygKICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzQXJyYXlSZWZXaXRoRGF0YSgkU2VhcmNoRmllbGRQcmVmZXJlbmNlcyk7CgogICAgICAgICAgICBQUkVGRVJFTkNFOgogICAgICAgICAgICBmb3IgbXkgJFByZWZlcmVuY2UgKCBAeyRTZWFyY2hGaWVsZFByZWZlcmVuY2VzfSApIHsKCiAgICAgICAgICAgICAgICAjIEV4dHJhY3QgdGhlIGR5bmFtaWMgZmllbGQgdmFsdWUgZnJvbSB0aGUgd2ViIHJlcXVlc3QuCiAgICAgICAgICAgICAgICBteSAkRHluYW1pY0ZpZWxkVmFsdWUgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+U2VhcmNoRmllbGRWYWx1ZUdldCgKICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgICAgID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICAgICAgICAgUGFyYW1PYmplY3QgICAgICAgICAgICA9PiAkUGFyYW1PYmplY3QsCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuUHJvZmlsZVN0cnVjdHVyZSA9PiAxLAogICAgICAgICAgICAgICAgICAgIExheW91dE9iamVjdCAgICAgICAgICAgPT4gJExheW91dE9iamVjdCwKICAgICAgICAgICAgICAgICAgICBUeXBlICAgICAgICAgICAgICAgICAgID0+ICRQcmVmZXJlbmNlLT57VHlwZX0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgU2V0IHRoZSBjb21wbGV0ZSB2YWx1ZSBzdHJ1Y3R1cmUgaW4gR2V0UGFyYW0gdG8gc3RvcmUgaXQgbGF0ZXIgaW4gdGhlIHNlYXJjaCBwcm9maWxlLgogICAgICAgICAgICAgICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkVmFsdWUpICkgewogICAgICAgICAgICAgICAgICAgICVHZXRQYXJhbSA9ICggJUdldFBhcmFtLCAleyREeW5hbWljRmllbGRWYWx1ZX0gKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIEdldCBhcHByb3ZlZCBvcHRpb24uCiAgICBpZiAoICRHZXRQYXJhbXtBcHByb3ZlZFNlYXJjaH0gJiYgJEdldFBhcmFte0FwcHJvdmVkU2VhcmNofSBlcSAnWWVzJyApIHsKICAgICAgICAkR2V0UGFyYW17QXBwcm92ZWR9ID0gMTsKICAgIH0KICAgIGVsc2lmICggJEdldFBhcmFte0FwcHJvdmVkU2VhcmNofSAmJiAkR2V0UGFyYW17QXBwcm92ZWRTZWFyY2h9IGVxICdObycgKSB7CiAgICAgICAgJEdldFBhcmFte0FwcHJvdmVkfSA9IDA7CiAgICB9CgogICAgIyBHZXQgY3JlYXRlIHRpbWUgb3B0aW9uLgogICAgaWYgKCAhJEdldFBhcmFte1RpbWVTZWFyY2hUeXBlfSApIHsKICAgICAgICAkR2V0UGFyYW17J1RpbWVTZWFyY2hUeXBlOjpOb25lJ30gPSAxOwogICAgfQogICAgZWxzaWYgKCAkR2V0UGFyYW17VGltZVNlYXJjaFR5cGV9IGVxICdUaW1lUG9pbnQnICkgewogICAgICAgICRHZXRQYXJhbXsnVGltZVNlYXJjaFR5cGU6OlRpbWVQb2ludCd9ID0gMTsKICAgIH0KICAgIGVsc2lmICggJEdldFBhcmFte1RpbWVTZWFyY2hUeXBlfSBlcSAnVGltZVNsb3QnICkgewogICAgICAgICRHZXRQYXJhbXsnVGltZVNlYXJjaFR5cGU6OlRpbWVTbG90J30gPSAxOwogICAgfQoKICAgICMgR2V0IGNoYW5nZSB0aW1lIG9wdGlvbi4KICAgIGlmICggISRHZXRQYXJhbXtDaGFuZ2VUaW1lU2VhcmNoVHlwZX0gKSB7CiAgICAgICAgJEdldFBhcmFteydDaGFuZ2VUaW1lU2VhcmNoVHlwZTo6Tm9uZSd9ID0gMTsKICAgIH0KICAgIGVsc2lmICggJEdldFBhcmFte0NoYW5nZVRpbWVTZWFyY2hUeXBlfSBlcSAnVGltZVBvaW50JyApIHsKICAgICAgICAkR2V0UGFyYW17J0NoYW5nZVRpbWVTZWFyY2hUeXBlOjpUaW1lUG9pbnQnfSA9IDE7CiAgICB9CiAgICBlbHNpZiAoICRHZXRQYXJhbXtDaGFuZ2VUaW1lU2VhcmNoVHlwZX0gZXEgJ1RpbWVTbG90JyApIHsKICAgICAgICAkR2V0UGFyYW17J0NoYW5nZVRpbWVTZWFyY2hUeXBlOjpUaW1lU2xvdCd9ID0gMTsKICAgIH0KCiAgICAjIFNldCByZXN1bHQgZm9ybSBFTlYuCiAgICBpZiAoICEkR2V0UGFyYW17UmVzdWx0Rm9ybX0gKSB7CiAgICAgICAgJEdldFBhcmFte1Jlc3VsdEZvcm19ID0gJyc7CiAgICB9CgogICAgbXkgJEZBUU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpGQVEnKTsKCiAgICAjIFNob3cgcmVzdWx0IHNpdGUuCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnU2VhcmNoJyAmJiAhJEVyYXNlVGVtcGxhdGUgKSB7CgogICAgICAgICMgRmlsbCB1cCBwcm9maWxlIG5hbWUgKGUuZy4gd2l0aCBsYXN0LXNlYXJjaCkuCiAgICAgICAgaWYgKCAhJFByb2ZpbGUgfHwgISRTYXZlUHJvZmlsZSApIHsKICAgICAgICAgICAgJFByb2ZpbGUgPSAnbGFzdC1zZWFyY2gnOwogICAgICAgIH0KCiAgICAgICAgbXkgJFNlc3Npb25PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6QXV0aFNlc3Npb24nKTsKCiAgICAgICAgIyBTdG9yZSBsYXN0IG92ZXJ2aWV3IHNjcmVlbi4KICAgICAgICBteSAkVVJMID0gIkFjdGlvbj1BZ2VudEZBUVNlYXJjaDtTdWJhY3Rpb249U2VhcmNoIgogICAgICAgICAgICAuICI7UHJvZmlsZT0iIC4gJExheW91dE9iamVjdC0+TGlua0VuY29kZSgkUHJvZmlsZSkKICAgICAgICAgICAgLiAiO1NvcnRCeT0iIC4gJExheW91dE9iamVjdC0+TGlua0VuY29kZSgkU29ydEJ5KQogICAgICAgICAgICAuICI7T3JkZXJCeT0iIC4gJExheW91dE9iamVjdC0+TGlua0VuY29kZSgkT3JkZXJCeSkKICAgICAgICAgICAgLiAiO1Rha2VMYXN0U2VhcmNoPTEiCiAgICAgICAgICAgIC4gIjtTdGFydEhpdD0iIC4gJExheW91dE9iamVjdC0+TGlua0VuY29kZSgkU3RhcnRIaXQpOwoKICAgICAgICAkU2Vzc2lvbk9iamVjdC0+VXBkYXRlU2Vzc2lvbklEKAogICAgICAgICAgICBTZXNzaW9uSUQgPT4gJFNlbGYtPntTZXNzaW9uSUR9LAogICAgICAgICAgICBLZXkgICAgICAgPT4gJ0xhc3RTY3JlZW5PdmVydmlldycsCiAgICAgICAgICAgIFZhbHVlICAgICA9PiAkVVJMLAogICAgICAgICk7CiAgICAgICAgJFNlc3Npb25PYmplY3QtPlVwZGF0ZVNlc3Npb25JRCgKICAgICAgICAgICAgU2Vzc2lvbklEID0+ICRTZWxmLT57U2Vzc2lvbklEfSwKICAgICAgICAgICAgS2V5ICAgICAgID0+ICdMYXN0U2NyZWVuVmlldycsCiAgICAgICAgICAgIFZhbHVlICAgICA9PiAkVVJMLAogICAgICAgICk7CgogICAgICAgICMgU2F2ZSBzZWFyY2ggcHJvZmlsZSAodW5kZXIgbGFzdC1zZWFyY2ggb3IgcmVhbCBwcm9maWxlIG5hbWUpLgogICAgICAgICRTYXZlUHJvZmlsZSA9IDE7CgogICAgICAgICMgUmVtZW1iZXIgbGFzdCBzZWFyY2ggdmFsdWVzLgogICAgICAgIGlmICggJFNhdmVQcm9maWxlICYmICRQcm9maWxlICkgewoKICAgICAgICAgICAgIyBSZW1vdmUgb2xkIHByb2ZpbGUgc3R1ZmYuCiAgICAgICAgICAgICRTZWFyY2hQcm9maWxlT2JqZWN0LT5TZWFyY2hQcm9maWxlRGVsZXRlKAogICAgICAgICAgICAgICAgQmFzZSAgICAgID0+ICdGQVFTZWFyY2gnLAogICAgICAgICAgICAgICAgTmFtZSAgICAgID0+ICRQcm9maWxlLAogICAgICAgICAgICAgICAgVXNlckxvZ2luID0+ICRTZWxmLT57VXNlckxvZ2lufSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgSW5zZXJ0IG5ldyBwcm9maWxlIHBhcmFtZXRlcnMuCiAgICAgICAgICAgIGZvciBteSAkS2V5ICggc29ydCBrZXlzICVHZXRQYXJhbSApIHsKICAgICAgICAgICAgICAgIGlmICggJEdldFBhcmFteyRLZXl9ICkgewogICAgICAgICAgICAgICAgICAgICRTZWFyY2hQcm9maWxlT2JqZWN0LT5TZWFyY2hQcm9maWxlQWRkKAogICAgICAgICAgICAgICAgICAgICAgICBCYXNlICAgICAgPT4gJ0ZBUVNlYXJjaCcsCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICA9PiAkUHJvZmlsZSwKICAgICAgICAgICAgICAgICAgICAgICAgS2V5ICAgICAgID0+ICRLZXksCiAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlICAgICA9PiAkR2V0UGFyYW17JEtleX0sCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJMb2dpbiA9PiAkU2VsZi0+e1VzZXJMb2dpbn0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgbXkgJVRpbWVNYXAgPSAoCiAgICAgICAgICAgIEl0ZW1DcmVhdGUgPT4gJ1RpbWUnLAogICAgICAgICAgICBJdGVtQ2hhbmdlID0+ICdDaGFuZ2VUaW1lJywKICAgICAgICApOwoKICAgICAgICBmb3IgbXkgJFRpbWVUeXBlICggc29ydCBrZXlzICVUaW1lTWFwICkgewoKICAgICAgICAgICAgaWYgKCAhJEdldFBhcmFteyAkVGltZU1hcHskVGltZVR5cGV9IC4gJ1NlYXJjaFR5cGUnIH0gKSB7CgogICAgICAgICAgICAgICAgIyBEbyBub3RoaW5nIHdpdGggdGltZSBzdHVmZgogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJEdldFBhcmFteyAkVGltZU1hcHskVGltZVR5cGV9IC4gJ1NlYXJjaFR5cGUnIH0gZXEgJ1RpbWVTbG90JyApIHsKICAgICAgICAgICAgICAgIGZvciBteSAkS2V5IChxdyhNb250aCBEYXkpKSB7CiAgICAgICAgICAgICAgICAgICAgJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVN0YXJ0JyAuICRLZXkgfQogICAgICAgICAgICAgICAgICAgICAgICA9IHNwcmludGYoICIlMDJkIiwgJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVN0YXJ0JyAuICRLZXkgfSApOwogICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVTdG9wJyAuICRLZXkgfQogICAgICAgICAgICAgICAgICAgICAgICA9IHNwcmludGYoICIlMDJkIiwgJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVN0b3AnIC4gJEtleSB9ICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVN0YXJ0RGF5JyB9CiAgICAgICAgICAgICAgICAgICAgJiYgJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVN0YXJ0TW9udGgnIH0KICAgICAgICAgICAgICAgICAgICAmJiAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lU3RhcnRZZWFyJyB9CiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVOZXdlckRhdGUnIH0gPSAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lU3RhcnRZZWFyJyB9IC4gJy0nCiAgICAgICAgICAgICAgICAgICAgICAgIC4gJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVN0YXJ0TW9udGgnIH0gLiAnLScKICAgICAgICAgICAgICAgICAgICAgICAgLiAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lU3RhcnREYXknIH0KICAgICAgICAgICAgICAgICAgICAgICAgLiAnIDAwOjAwOjAwJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lU3RvcERheScgfQogICAgICAgICAgICAgICAgICAgICYmICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVTdG9wTW9udGgnIH0KICAgICAgICAgICAgICAgICAgICAmJiAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lU3RvcFllYXInIH0KICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZU9sZGVyRGF0ZScgfSA9ICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVTdG9wWWVhcicgfSAuICctJwogICAgICAgICAgICAgICAgICAgICAgICAuICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVTdG9wTW9udGgnIH0gLiAnLScKICAgICAgICAgICAgICAgICAgICAgICAgLiAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lU3RvcERheScgfQogICAgICAgICAgICAgICAgICAgICAgICAuICcgMjM6NTk6NTknOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJEdldFBhcmFteyAkVGltZU1hcHskVGltZVR5cGV9IC4gJ1NlYXJjaFR5cGUnIH0gZXEgJ1RpbWVQb2ludCcgKSB7CiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVBvaW50JyB9CiAgICAgICAgICAgICAgICAgICAgJiYgJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVBvaW50U3RhcnQnIH0KICAgICAgICAgICAgICAgICAgICAmJiAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lUG9pbnRGb3JtYXQnIH0KICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgbXkgJFRpbWUgPSAwOwogICAgICAgICAgICAgICAgICAgIGlmICggJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVBvaW50Rm9ybWF0JyB9IGVxICdtaW51dGUnICkgewogICAgICAgICAgICAgICAgICAgICAgICAkVGltZSA9ICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVQb2ludCcgfTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzaWYgKCAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lUG9pbnRGb3JtYXQnIH0gZXEgJ2hvdXInICkgewogICAgICAgICAgICAgICAgICAgICAgICAkVGltZSA9ICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVQb2ludCcgfSAqIDYwOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNpZiAoICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVQb2ludEZvcm1hdCcgfSBlcSAnZGF5JyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJFRpbWUgPSAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lUG9pbnQnIH0gKiA2MCAqIDI0OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNpZiAoICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVQb2ludEZvcm1hdCcgfSBlcSAnd2VlaycgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRUaW1lID0gJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVBvaW50JyB9ICogNjAgKiAyNCAqIDc7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2lmICggJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVBvaW50Rm9ybWF0JyB9IGVxICdtb250aCcgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRUaW1lID0gJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVBvaW50JyB9ICogNjAgKiAyNCAqIDMwOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNpZiAoICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVQb2ludEZvcm1hdCcgfSBlcSAneWVhcicgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRUaW1lID0gJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVBvaW50JyB9ICogNjAgKiAyNCAqIDM2NTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKCAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lUG9pbnRTdGFydCcgfSBlcSAnQmVmb3JlJyApIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICMgTW9yZSB0aGFuIC4uLiBhZ28uCiAgICAgICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVPbGRlck1pbnV0ZXMnIH0gPSAkVGltZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzaWYgKCAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lUG9pbnRTdGFydCcgfSBlcSAnTmV4dCcgKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAjIFdpdGhpbiBuZXh0LgogICAgICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lTmV3ZXJNaW51dGVzJyB9ID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZU9sZGVyTWludXRlcycgfSA9IC0kVGltZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICMgV2l0aGluIGxhc3QgLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVPbGRlck1pbnV0ZXMnIH0gPSAwOwogICAgICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lTmV3ZXJNaW51dGVzJyB9ID0gJFRpbWU7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIER5bmFtaWMgZmllbGRzIHNlYXJjaCBwYXJhbWV0ZXJzIGZvciBGQVEgc2VhcmNoLgogICAgICAgIG15ICVEeW5hbWljRmllbGRTZWFyY2hQYXJhbWV0ZXJzOwoKICAgICAgICBEWU5BTUlDRklFTEQ6CiAgICAgICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gfSApIHsKICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICAgICAgIyBHZXQgc2VhcmNoIGZpZWxkIHByZWZlcmVuY2VzLgogICAgICAgICAgICBteSAkU2VhcmNoRmllbGRQcmVmZXJlbmNlcyA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5TZWFyY2hGaWVsZFByZWZlcmVuY2VzKAogICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNBcnJheVJlZldpdGhEYXRhKCRTZWFyY2hGaWVsZFByZWZlcmVuY2VzKTsKCiAgICAgICAgICAgIFBSRUZFUkVOQ0U6CiAgICAgICAgICAgIGZvciBteSAkUHJlZmVyZW5jZSAoIEB7JFNlYXJjaEZpZWxkUHJlZmVyZW5jZXN9ICkgewoKICAgICAgICAgICAgICAgIG15ICREeW5hbWljRmllbGRWYWx1ZSA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5TZWFyY2hGaWVsZFZhbHVlR2V0KAogICAgICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgICAgICBQYXJhbU9iamVjdCAgICAgICAgICAgID0+ICRQYXJhbU9iamVjdCwKICAgICAgICAgICAgICAgICAgICBUeXBlICAgICAgICAgICAgICAgICAgID0+ICRQcmVmZXJlbmNlLT57VHlwZX0sCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuUHJvZmlsZVN0cnVjdHVyZSA9PiAxLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIFNldCB0aGUgY29tcGxldGUgdmFsdWUgc3RydWN0dXJlIGluICVEeW5hbWljRmllbGRWYWx1ZXMgdG8gZGlzY2FyZCB0aG9zZSB3aGVyZSB0aGUKICAgICAgICAgICAgICAgICMgICB2YWx1ZSB3aWxsIG5vdCBiZSBwb3NzaWJsZSB0byBnZXQuCiAgICAgICAgICAgICAgICBuZXh0IFBSRUZFUkVOQ0UgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRWYWx1ZSk7CgogICAgICAgICAgICAgICAgIyBFeHRyYWN0IHRoZSBkeW5hbWljIGZpZWxkIHZhbHVlIGZyb20gdGhlIHByb2ZpbGUuCiAgICAgICAgICAgICAgICBteSAkU2VhcmNoUGFyYW1ldGVyID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPlNlYXJjaEZpZWxkUGFyYW1ldGVyQnVpbGQoCiAgICAgICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICAgICAgICAgUHJvZmlsZSAgICAgICAgICAgID0+IFwlR2V0UGFyYW0sCiAgICAgICAgICAgICAgICAgICAgTGF5b3V0T2JqZWN0ICAgICAgID0+ICRMYXlvdXRPYmplY3QsCiAgICAgICAgICAgICAgICAgICAgVHlwZSAgICAgICAgICAgICAgID0+ICRQcmVmZXJlbmNlLT57VHlwZX0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgU2V0IHNlYXJjaCBwYXJhbWV0ZXIuCiAgICAgICAgICAgICAgICBpZiAoIGRlZmluZWQgJFNlYXJjaFBhcmFtZXRlciApIHsKICAgICAgICAgICAgICAgICAgICAkRHluYW1pY0ZpZWxkU2VhcmNoUGFyYW1ldGVyc3sgJ0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0KICAgICAgICAgICAgICAgICAgICAgICAgPSAkU2VhcmNoUGFyYW1ldGVyLT57UGFyYW1ldGVyfTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBQcmVwYXJlIGZ1bGwtdGV4dCBzZWFyY2guCiAgICAgICAgaWYgKCAkR2V0UGFyYW17RnVsbHRleHR9ICkgewogICAgICAgICAgICAkR2V0UGFyYW17Q29udGVudFNlYXJjaH0gPSAnT1InOwogICAgICAgICAgICAkR2V0UGFyYW17V2hhdH0gICAgICAgICAgPSAkR2V0UGFyYW17RnVsbHRleHR9OwogICAgICAgIH0KCiAgICAgICAgbXkgJVZhbGlkTGlzdCAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZhbGlkJyktPlZhbGlkTGlzdCgpOwogICAgICAgIG15IEBBbGxWYWxpZElEcyA9IGtleXMgJVZhbGlkTGlzdDsKCiAgICAgICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgICAgICMgU2V0IGRlZmF1bHQgaW50ZXJmYWNlIHNldHRpbmdzLgogICAgICAgIG15ICRJbnRlcmZhY2UgPSAkRkFRT2JqZWN0LT5TdGF0ZVR5cGVHZXQoCiAgICAgICAgICAgIE5hbWUgICA9PiAnaW50ZXJuYWwnLAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CiAgICAgICAgbXkgJEludGVyZmFjZVN0YXRlcyA9ICRGQVFPYmplY3QtPlN0YXRlVHlwZUxpc3QoCiAgICAgICAgICAgIFR5cGVzICA9PiAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6QWdlbnQ6OlN0YXRlVHlwZXMnKSwKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIFByZXBhcmUgc2VhcmNoIHN0YXRlcy4KICAgICAgICBteSAkU2VhcmNoU3RhdGVzOwogICAgICAgIGlmICggIUlzQXJyYXlSZWZXaXRoRGF0YSggJEdldFBhcmFte1N0YXRlSURzfSApICkgewogICAgICAgICAgICAkU2VhcmNoU3RhdGVzID0gJEludGVyZmFjZVN0YXRlczsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIFNUQVRFVFlQRUlEOgogICAgICAgICAgICBmb3IgbXkgJFN0YXRlVHlwZUlEICggQHsgJEdldFBhcmFte1N0YXRlSURzfSB9ICkgewogICAgICAgICAgICAgICAgbmV4dCBTVEFURVRZUEVJRCBpZiAhJFN0YXRlVHlwZUlEOwogICAgICAgICAgICAgICAgbmV4dCBTVEFURVRZUEVJRCBpZiAhJEludGVyZmFjZVN0YXRlcy0+eyRTdGF0ZVR5cGVJRH07CiAgICAgICAgICAgICAgICAkU2VhcmNoU3RhdGVzLT57JFN0YXRlVHlwZUlEfSA9ICRJbnRlcmZhY2VTdGF0ZXMtPnskU3RhdGVUeXBlSUR9OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoIElzTnVtYmVyKCAkR2V0UGFyYW17Vm90ZVNlYXJjaH0gKSApIHsKICAgICAgICAgICAgJEdldFBhcmFte1ZvdGVzfSA9IHsKICAgICAgICAgICAgICAgICRHZXRQYXJhbXtWb3RlU2VhcmNoVHlwZX0gPT4gJEdldFBhcmFte1ZvdGVTZWFyY2h9CiAgICAgICAgICAgIH07CiAgICAgICAgfQoKICAgICAgICBpZiAoIElzTnVtYmVyKCAkR2V0UGFyYW17UmF0ZVNlYXJjaH0gKSApIHsKICAgICAgICAgICAgJEdldFBhcmFte1JhdGV9ID0gewogICAgICAgICAgICAgICAgJEdldFBhcmFte1JhdGVTZWFyY2hUeXBlfSA9PiAkR2V0UGFyYW17UmF0ZVNlYXJjaH0KICAgICAgICAgICAgfTsKICAgICAgICB9CgogICAgICAgICMgR2V0IFVzZXJDYXRlZ29yeUdyb3VwIEhhc2guCiAgICAgICAgIyBUaGlzIHJldHVybnMgYSBIYXNoIG9mIHRoZSBmb2xsb3dpbmcgc2FtcGxlIGRhdGEgc3RydWN0dXJlOgogICAgICAgICMKICAgICAgICAjICRVc2VyQ2F0R3JvdXAgPSB7CiAgICAgICAgIyAgICcxJyA9PiB7CiAgICAgICAgIyAgICAgICAgICAnMycgPT4gJ01pc2NTdWInCiAgICAgICAgIyAgICAgICAgfSwKICAgICAgICAjICAgJzMnID0+IHt9LAogICAgICAgICMgICAnMCcgPT4gewogICAgICAgICMgICAgICAgICAgICAnMScgPT4gJ01pc2MnLAogICAgICAgICMgICAgICAgICAgICAnMicgPT4gJ3NlY3JldCcKICAgICAgICAjICAgICAgICAgIH0sCiAgICAgICAgIyAgICcyJyA9PiB7fQogICAgICAgICMgfTsKICAgICAgICAjCiAgICAgICAgIyBLZXlzIG9mIHRoZSBvdXRlciBoYXNoIGluZm9ybSBhYm91dCBzdWJjYXRlZ29yaWVzLgogICAgICAgICMgICAwIFNob3dzIHRvcCBsZXZlbCBDYXRlZ29yeUlEcy4KICAgICAgICAjICAgMSBTaG93cyB0aGUgU3ViY2F0ZWdvcnlJRHMgb2YgQ2F0ZWdvcnkgMS4KICAgICAgICAjICAgMiBhbmQgMyBhcmUgZW1wdHkgaGFzaGVzIGJlY2F1c2UgdGhlc2UgY2F0ZWdvcmllcyBkb24ndCBoYXZlIHN1YmNhdGVnb3JpZXMuCiAgICAgICAgIwogICAgICAgICMgS2V5cyBvZiB0aGUgaW5uZXIgaGFzaGVzIGFyZSBDYXRlZ29yeUlEcyBhIHVzZXIgaXMgYWxsb3dlZCB0byBoYXZlIHJvIGFjY2VzcyB0by4KICAgICAgICAjIFZhbHVlcyBhcmUgdGhlIENhdGVnb3J5IG5hbWVzLgoKICAgICAgICBteSAkVXNlckNhdEdyb3VwID0gJEZBUU9iamVjdC0+R2V0VXNlckNhdGVnb3JpZXMoCiAgICAgICAgICAgIFR5cGUgICA9PiAncm8nLAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgRmluZCBDYXRlZ29yeUlEcyB0aGUgY3VycmVudCBVc2VyIGlzIGFsbG93ZWQgdG8gdmlldy4KICAgICAgICBteSAlQWxsb3dlZENhdGVnb3J5SURzID0gKCk7CgogICAgICAgIGlmICggJFVzZXJDYXRHcm91cCAmJiByZWYgJFVzZXJDYXRHcm91cCBlcSAnSEFTSCcgKSB7CgogICAgICAgICAgICAjIFNvIG5vdyB3ZSBoYXZlIHRvIGV4dHJhY3QgYWxsIENhdGVnb3J5IElEJ3Mgb2YgdGhlICJpbm5lciBoYXNoZXMiCiAgICAgICAgICAgICMgICAtPiBMb29wIHRocm91Z2ggdGhlIG91dGVyIGNhdGVnb3J5IElEJ3MuCiAgICAgICAgICAgIGZvciBteSAkTGV2ZWwgKCBzb3J0IGtleXMgJXskVXNlckNhdEdyb3VwfSApIHsKCiAgICAgICAgICAgICAgICAjIENoZWNrIGlmIHRoZSBWYWx1ZSBvZiB0aGUgY3VycmVudCBoYXNoIGtleSBpcyBhIGhhc2ggcmVmLgogICAgICAgICAgICAgICAgaWYgKCAkVXNlckNhdEdyb3VwLT57JExldmVsfSAmJiByZWYgJFVzZXJDYXRHcm91cC0+eyRMZXZlbH0gZXEgJ0hBU0gnICkgewoKICAgICAgICAgICAgICAgICAgICAjIE1hcCB0aGUga2V5cyBvZiB0aGUgaW5uZXIgaGFzaCB0byBhIFRlbXBJRHMgaGFzaC4KICAgICAgICAgICAgICAgICAgICAjIE9yaWdpbmFsIERhdGEgc3RydWN0dXJlOgogICAgICAgICAgICAgICAgICAgICMgICB7CiAgICAgICAgICAgICAgICAgICAgIyAgICAgICAnMScgPT4gJ01pc2MnLAogICAgICAgICAgICAgICAgICAgICMgICAgICAgJzInID0+ICdzZWNyZXQnCiAgICAgICAgICAgICAgICAgICAgIyAgIH0KICAgICAgICAgICAgICAgICAgICAjCiAgICAgICAgICAgICAgICAgICAgIyAgIGFmdGVyIG1hcHBpbmc6CiAgICAgICAgICAgICAgICAgICAgIwogICAgICAgICAgICAgICAgICAgICMgICB7CiAgICAgICAgICAgICAgICAgICAgIyAgICAgICAnMScgPT4gMSwKICAgICAgICAgICAgICAgICAgICAjICAgICAgICcyJyA9PiAxJwogICAgICAgICAgICAgICAgICAgICMgICB9CgogICAgICAgICAgICAgICAgICAgIG15ICVUZW1wSURzID0gbWFwIHsgJF8gPT4gMSB9IGtleXMgJXsgJFVzZXJDYXRHcm91cC0+eyRMZXZlbH0gfTsKCiAgICAgICAgICAgICAgICAgICAgIyBQdXQgdGhlIFRlbXBJRHMgb3ZlciB0aGUgZm9ybWFsbHkgZm91bmQgQWxsb3dlZENhdGVnb3J5cyB0byBwcm9kdWNlIGEgaGFzaAogICAgICAgICAgICAgICAgICAgICMgICB0aGF0IGhvbGRzIGFsbCBDYXRlZ29yeUlEIGFzIGtleXMgYW5kIHRoZSBudW1iZXIgMSBhcyB2YWx1ZXMuCiAgICAgICAgICAgICAgICAgICAgJUFsbG93ZWRDYXRlZ29yeUlEcyA9ICgKICAgICAgICAgICAgICAgICAgICAgICAgJUFsbG93ZWRDYXRlZ29yeUlEcywKICAgICAgICAgICAgICAgICAgICAgICAgJVRlbXBJRHMKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIEZvciB0aGUgZGF0YWJhc2UgcXVlcnkgaXQncyBuZWNlc3NhcnkgdG8gaGF2ZSBhbiBhcnJheSBvZiBDYXRlZ29yeUlEcy4KICAgICAgICBteSBAQ2F0ZWdvcnlJRHMgPSAoKTsKCiAgICAgICAgaWYgKCVBbGxvd2VkQ2F0ZWdvcnlJRHMpIHsKICAgICAgICAgICAgQENhdGVnb3J5SURzID0gc29ydCBrZXlzICVBbGxvd2VkQ2F0ZWdvcnlJRHM7CiAgICAgICAgfQoKICAgICAgICAjIENhdGVnb3JpZXMgZ290IGZyb20gdGhlIHdlYiByZXF1ZXN0IGNvdWxkIGluY2x1ZGUgYSBub3QgYWxsb3dlZCBjYXRlZ29yeSBpZiB0aGUgdXNlcgogICAgICAgICMgICAgdGVtcGVyIHdpdGggdGhlIGNhdGVnb3JpZXMgZHJvcC1ib3gsIGEgY2hlY2sgaXMgbmVlZGVkLgogICAgICAgICMKICAgICAgICAjICJNYXAiIGNvcHkgZnJvbSBvbmUgYXJyYXkgdG8gYW5vdGhlciwgd2hpbGUgImdyZXAiIHdpbGwgb25seSBsZXQgcGFzcyB0aGUgY2F0ZWdvcmllcwogICAgICAgICMgICAgdGhhdCBhcmUgZGVmaW5lZCBpbiB0aGUgJUFsbG93ZWRDYXRlZ29yeUlEcyBoYXNoLgogICAgICAgIGlmICggSXNBcnJheVJlZldpdGhEYXRhKCAkR2V0UGFyYW17Q2F0ZWdvcnlJRHN9ICkgKSB7CiAgICAgICAgICAgIEB7ICRHZXRQYXJhbXtDYXRlZ29yeUlEc30gfSA9IG1hcCB7JF99IGdyZXAgeyAkQWxsb3dlZENhdGVnb3J5SURzeyRffSB9IEB7ICRHZXRQYXJhbXtDYXRlZ29yeUlEc30gfTsKICAgICAgICB9CgogICAgICAgICMgSnVzdCBzZWFyY2ggaWYgd2UgZG8gaGF2ZSBjYXRlZ29yaWVzLCB3ZSBoYXZlIGFjY2VzcyB0by4KICAgICAgICAjIElmIHdlIGRvbid0IGhhdmUgYWNjZXNzIHRvIGFueSBjYXRlZ29yeSwgYSBzZWFyY2ggd2l0aCBubyBDYXRlZ29yeUlEcwogICAgICAgICMgICB3b3VsZCByZXN1bHQgaW4gZmluZGluZyBhbGwgY2F0ZWdvcmllcy4KICAgICAgICAjCiAgICAgICAgIyBJdCBpcyBub3QgcG9zc2libGUgdG8gY3JlYXRlIEZBUSdzIHdpdGhvdXQgY2F0ZWdvcmllcwogICAgICAgICMgICBzbyBhdCBsZWFzdCBvbmUgY2F0ZWdvcnkgaGFzIHRvIGJlIHByZXNlbnQKCiAgICAgICAgbXkgQFZpZXdhYmxlSXRlbUlEcyA9ICgpOwoKICAgICAgICBpZiAoQENhdGVnb3J5SURzKSB7CgogICAgICAgICAgICAjIFBlcmZvcm0gRkFRIHNlYXJjaC4KICAgICAgICAgICAgIyBEZWZhdWx0IHNlYXJjaCBvbiBhbGwgdmFsaWQgaWRzLCB0aGlzIGNhbiBiZSBvdmVyd3JpdHRlbiBieSAlR2V0UGFyYW0uCiAgICAgICAgICAgIEBWaWV3YWJsZUl0ZW1JRHMgPSAkRkFRT2JqZWN0LT5GQVFTZWFyY2goCiAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgICAgID0+IFskU29ydEJ5XSwKICAgICAgICAgICAgICAgIE9yZGVyQnlEaXJlY3Rpb24gICAgPT4gWyRPcmRlckJ5XSwKICAgICAgICAgICAgICAgIExpbWl0ICAgICAgICAgICAgICAgPT4gJFNlYXJjaExpbWl0LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICBTdGF0ZXMgICAgICAgICAgICAgID0+ICRTZWFyY2hTdGF0ZXMsCiAgICAgICAgICAgICAgICBJbnRlcmZhY2UgICAgICAgICAgID0+ICRJbnRlcmZhY2UsCiAgICAgICAgICAgICAgICBDb250ZW50U2VhcmNoUHJlZml4ID0+ICcqJywKICAgICAgICAgICAgICAgIENvbnRlbnRTZWFyY2hTdWZmaXggPT4gJyonLAogICAgICAgICAgICAgICAgVmFsaWRJRHMgICAgICAgICAgICA9PiBcQEFsbFZhbGlkSURzLAogICAgICAgICAgICAgICAgQ2F0ZWdvcnlJRHMgICAgICAgICA9PiBcQENhdGVnb3J5SURzLAogICAgICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAgICAgJUR5bmFtaWNGaWVsZFNlYXJjaFBhcmFtZXRlcnMsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBteSAkTXVsdGlMYW5ndWFnZSA9ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpNdWx0aUxhbmd1YWdlJyk7CgogICAgICAgICMgQ1NWIGFuZCBFeGNlbCBvdXRwdXQuCiAgICAgICAgaWYgKAogICAgICAgICAgICAkR2V0UGFyYW17UmVzdWx0Rm9ybX0gZXEgJ0NTVicKICAgICAgICAgICAgfHwgJEdldFBhcmFte1Jlc3VsdEZvcm19IGVxICdFeGNlbCcKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgbXkgQFRtcENTVkhlYWQ7CiAgICAgICAgICAgIG15IEBDU1ZIZWFkOwogICAgICAgICAgICBteSBAQ1NWRGF0YTsKCiAgICAgICAgICAgICMgR2V0IHRoZSBGQVEgZHluYW1pYyBmaWVsZHMgZm9yIENTViBkaXNwbGF5LgogICAgICAgICAgICBteSAkQ1NWRHluYW1pY0ZpZWxkID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpLT5EeW5hbWljRmllbGRMaXN0R2V0KAogICAgICAgICAgICAgICAgVmFsaWQgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIE9iamVjdFR5cGUgID0+ICdGQVEnLAogICAgICAgICAgICAgICAgRmllbGRGaWx0ZXIgPT4gJENvbmZpZy0+e1NlYXJjaENTVkR5bmFtaWNGaWVsZH0gfHwge30sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBmb3IgbXkgJEl0ZW1JRCAoQFZpZXdhYmxlSXRlbUlEcykgewoKICAgICAgICAgICAgICAgICMgR2V0IEZBUSBkYXRhIGRldGFpbHMuCiAgICAgICAgICAgICAgICBteSAlRkFRRGF0YSA9ICRGQVFPYmplY3QtPkZBUUdldCgKICAgICAgICAgICAgICAgICAgICBJdGVtSUQgICAgICAgID0+ICRJdGVtSUQsCiAgICAgICAgICAgICAgICAgICAgSXRlbUZpZWxkcyAgICA9PiAwLAogICAgICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZHMgPT4gMSwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBHZXQgaW5mbyBmb3IgQ1NWIG91dHB1dC4KICAgICAgICAgICAgICAgIG15ICVDU1ZJbmZvID0gKCVGQVFEYXRhKTsKCiAgICAgICAgICAgICAgICAkQ1NWSW5mb3tDaGFuZ2VkfSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPkZvcm1hdFRpbWVTdHJpbmcoCiAgICAgICAgICAgICAgICAgICAgJEZBUURhdGF7Q2hhbmdlZH0sCiAgICAgICAgICAgICAgICAgICAgJ0RhdGVGb3JtYXQnLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIENTViBxdW90ZS4KICAgICAgICAgICAgICAgIGlmICggIUBDU1ZIZWFkICkgewogICAgICAgICAgICAgICAgICAgIEBUbXBDU1ZIZWFkID0gcXcoIEZBUU51bWJlciBUaXRsZSBDYXRlZ29yeSk7CiAgICAgICAgICAgICAgICAgICAgQENTVkhlYWQgICAgPSBxdyggRkFRTnVtYmVyIFRpdGxlIENhdGVnb3J5KTsKCiAgICAgICAgICAgICAgICAgICAgIyBJbnNlcnQgbGFuZ3VhZ2UgaGVhZGVyLgogICAgICAgICAgICAgICAgICAgIGlmICgkTXVsdGlMYW5ndWFnZSkgewogICAgICAgICAgICAgICAgICAgICAgICBwdXNoIEBUbXBDU1ZIZWFkLCAnTGFuZ3VhZ2UnOwogICAgICAgICAgICAgICAgICAgICAgICBwdXNoIEBDU1ZIZWFkLCAgICAnTGFuZ3VhZ2UnOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgcHVzaCBAVG1wQ1NWSGVhZCwgcXcoU3RhdGUgQ2hhbmdlZCk7CiAgICAgICAgICAgICAgICAgICAgcHVzaCBAQ1NWSGVhZCwgICAgcXcoU3RhdGUgQ2hhbmdlZCk7CgogICAgICAgICAgICAgICAgICAgICMgSW5jbHVkZSB0aGUgc2VsZWN0ZWQgZHluYW1pYyBmaWVsZHMgb24gQ1ZTIHJlc3VsdHMuCiAgICAgICAgICAgICAgICAgICAgRFlOQU1JQ0ZJRUxEOgogICAgICAgICAgICAgICAgICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHskQ1NWRHluYW1pY0ZpZWxkfSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwogICAgICAgICAgICAgICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9OwogICAgICAgICAgICAgICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gZXEgJyc7CgogICAgICAgICAgICAgICAgICAgICAgICBwdXNoIEBUbXBDU1ZIZWFkLCAnRHluYW1pY0ZpZWxkXycgLiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX07CiAgICAgICAgICAgICAgICAgICAgICAgIHB1c2ggQENTVkhlYWQsICAgICREeW5hbWljRmllbGRDb25maWctPntMYWJlbH07CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgSW5zZXJ0IGRhdGEuCiAgICAgICAgICAgICAgICBteSBARGF0YTsKICAgICAgICAgICAgICAgIGZvciBteSAkSGVhZGVyIChAVG1wQ1NWSGVhZCkgewoKICAgICAgICAgICAgICAgICAgICAjIENoZWNrIGlmIGhlYWRlciBpcyBhIGR5bmFtaWMgZmllbGQgYW5kIGdldCB0aGUgdmFsdWUgZnJvbSBkeW5hbWljIGZpZWxkIGJhY2tlbmQKICAgICAgICAgICAgICAgICAgICBpZiAoICRIZWFkZXIgPX4gbXtcQSBEeW5hbWljRmllbGRfICggW2EtekEtWlxkXSsgKSBcen14bXMgKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAjIExvb3Agb3ZlciB0aGUgZHluYW1pYyBmaWVsZHMgY29uZmlndXJlZCBmb3IgQ1NWIG91dHB1dC4KICAgICAgICAgICAgICAgICAgICAgICAgRFlOQU1JQ0ZJRUxEOgogICAgICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7JENTVkR5bmFtaWNGaWVsZH0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9OwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgU2tpcCBhbGwgZmllbGRzIHRoYXQgZG9lcyBub3QgbWF0Y2ggd2l0aCBjdXJyZW50IGZpZWxkIG5hbWUgKCQxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgIHdpdGggb3V0IHRoZSAnRHluYW1pY0ZpZWxkXycgcHJlZml4LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IG5lICQxOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgR2V0IHRoZSB2YWx1ZSBhcyBmb3IgcHJpbnQgKHRvIGNvcnJlY3RseSBkaXNwbGF5KS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15ICRWYWx1ZVN0cmcgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+RGlzcGxheVZhbHVlUmVuZGVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAkQ1NWSW5mb3skSGVhZGVyfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIVE1MT3V0cHV0ICAgICAgICAgPT4gMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYXlvdXRPYmplY3QgICAgICAgPT4gJExheW91dE9iamVjdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoIEBEYXRhLCAkVmFsdWVTdHJnLT57VmFsdWV9OwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3QgRFlOQU1JQ0ZJRUxEOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAjIE90aGVyd2lzZSByZXRyaWV2ZSBkYXRhIGZyb20gRkFRIGl0ZW0uCiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICggJEhlYWRlciBlcSAnRkFRTnVtYmVyJyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2ggQERhdGEsICRDU1ZJbmZveydOdW1iZXInfTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNpZiAoICRIZWFkZXIgZXEgJ0NhdGVnb3J5JyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2ggQERhdGEsICRDU1ZJbmZveydDYXRlZ29yeU5hbWUnfTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2ggQERhdGEsICRDU1ZJbmZveyRIZWFkZXJ9OwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcHVzaCBAQ1NWRGF0YSwgXEBEYXRhOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIENTViBxdW90ZS4KICAgICAgICAgICAgIyBUcmFuc2xhdGUgbm9uIGV4aXN0aW5nIGhlYWRlciBtYXkgcmVzdWx0IGluIGEgZ2FyYmFnZSBmaWxlLgogICAgICAgICAgICBpZiAoICFAQ1NWSGVhZCApIHsKICAgICAgICAgICAgICAgIEBUbXBDU1ZIZWFkID0gcXcoRkFRTnVtYmVyIFRpdGxlIENhdGVnb3J5KTsKICAgICAgICAgICAgICAgIEBDU1ZIZWFkICAgID0gcXcoRkFRTnVtYmVyIFRpdGxlIENhdGVnb3J5KTsKCiAgICAgICAgICAgICAgICAjIEluc2VydCBsYW5ndWFnZSBoZWFkZXIuCiAgICAgICAgICAgICAgICBpZiAoJE11bHRpTGFuZ3VhZ2UpIHsKICAgICAgICAgICAgICAgICAgICBwdXNoIEBUbXBDU1ZIZWFkLCAnTGFuZ3VhZ2UnOwogICAgICAgICAgICAgICAgICAgIHB1c2ggQENTVkhlYWQsICAgICdMYW5ndWFnZSc7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgcHVzaCBAVG1wQ1NWSGVhZCwgcXcoU3RhdGUgQ2hhbmdlZCk7CiAgICAgICAgICAgICAgICBwdXNoIEBDU1ZIZWFkLCAgICBxdyhTdGF0ZSBDaGFuZ2VkKTsKCiAgICAgICAgICAgICAgICAjIEluY2x1ZGUgdGhlIHNlbGVjdGVkIGR5bmFtaWMgZmllbGRzIG9uIENWUyByZXN1bHRzLgogICAgICAgICAgICAgICAgRFlOQU1JQ0ZJRUxEOgogICAgICAgICAgICAgICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyRDU1ZEeW5hbWljRmllbGR9ICkgewogICAgICAgICAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKICAgICAgICAgICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9OwogICAgICAgICAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSBlcSAnJzsKCiAgICAgICAgICAgICAgICAgICAgcHVzaCBAVG1wQ1NWSGVhZCwgJ0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9OwogICAgICAgICAgICAgICAgICAgIHB1c2ggQENTVkhlYWQsICAgICREeW5hbWljRmllbGRDb25maWctPntMYWJlbH07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgR2V0IFNlcGFyYXRvciBmcm9tIGxhbmd1YWdlIGZpbGUuCiAgICAgICAgICAgIG15ICRVc2VyQ1NWU2VwYXJhdG9yID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+e1NlcGFyYXRvcn07CgogICAgICAgICAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgnUHJlZmVyZW5jZXNHcm91cHMnKS0+e0NTVlNlcGFyYXRvcn0tPntBY3RpdmV9ICkgewogICAgICAgICAgICAgICAgbXkgJVVzZXJEYXRhID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+R2V0VXNlckRhdGEoCiAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBpZiAoICRVc2VyRGF0YXtVc2VyQ1NWU2VwYXJhdG9yfSApIHsKICAgICAgICAgICAgICAgICAgICAkVXNlckNTVlNlcGFyYXRvciA9ICRVc2VyRGF0YXtVc2VyQ1NWU2VwYXJhdG9yfTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBUcmFuc2xhdGUgaGVhZGVycy4KICAgICAgICAgICAgZm9yIG15ICRIZWFkZXIgKEBDU1ZIZWFkKSB7CgogICAgICAgICAgICAgICAgIyBSZXBsYWNlIEZBUU51bWJlciBoZWFkZXIgd2l0aCB0aGUgY3VycmVudCBGQVFIb29rIGZyb20gY29uZmlnLgogICAgICAgICAgICAgICAgaWYgKCAkSGVhZGVyIGVxICdGQVFOdW1iZXInICkgewogICAgICAgICAgICAgICAgICAgICRIZWFkZXIgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6RkFRSG9vaycpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJEhlYWRlciA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgkSGVhZGVyKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBSZXR1cm4gQ1NWIHRvIGRvd25sb2FkLgogICAgICAgICAgICBteSAkRmlsZU5hbWUgPSAnRkFRX3NlYXJjaCc7CgogICAgICAgICAgICBteSAkRGF0ZVRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKCdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnKTsKICAgICAgICAgICAgbXkgJERhdGVUaW1lICAgICAgID0gJERhdGVUaW1lT2JqZWN0LT5HZXQoKTsKICAgICAgICAgICAgbXkgJFkgICAgICAgICAgICAgID0gJERhdGVUaW1lLT57WWVhcn07CiAgICAgICAgICAgIG15ICRNICAgICAgICAgICAgICA9IHNwcmludGYoICIlMDJkIiwgJERhdGVUaW1lLT57TW9udGh9ICk7CiAgICAgICAgICAgIG15ICREICAgICAgICAgICAgICA9IHNwcmludGYoICIlMDJkIiwgJERhdGVUaW1lLT57RGF5fSApOwogICAgICAgICAgICBteSAkaCAgICAgICAgICAgICAgPSBzcHJpbnRmKCAiJTAyZCIsICREYXRlVGltZS0+e0hvdXJ9ICk7CiAgICAgICAgICAgIG15ICRtICAgICAgICAgICAgICA9IHNwcmludGYoICIlMDJkIiwgJERhdGVUaW1lLT57TWludXRlfSApOwoKICAgICAgICAgICAgbXkgJENTVk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDU1YnKTsKCiAgICAgICAgICAgICMgR2VuZXJhdGUgQ1NWIG91dHB1dC4KICAgICAgICAgICAgaWYgKCAkR2V0UGFyYW17UmVzdWx0Rm9ybX0gZXEgJ0NTVicgKSB7CgogICAgICAgICAgICAgICAgbXkgJENTViA9ICRDU1ZPYmplY3QtPkFycmF5MkNTVigKICAgICAgICAgICAgICAgICAgICBIZWFkICAgICAgPT4gXEBDU1ZIZWFkLAogICAgICAgICAgICAgICAgICAgIERhdGEgICAgICA9PiBcQENTVkRhdGEsCiAgICAgICAgICAgICAgICAgICAgU2VwYXJhdG9yID0+ICRVc2VyQ1NWU2VwYXJhdG9yLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIFJldHVybiBDU1YgdG8gZG93bmxvYWQsCiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+QXR0YWNobWVudCgKICAgICAgICAgICAgICAgICAgICBGaWxlbmFtZSAgICA9PiAkRmlsZU5hbWUgLiAiXyIgLiAiJFktJE0tJEQiIC4gIl8iIC4gIiRoLSRtLmNzdiIsCiAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gInRleHQvY3N2OyBjaGFyc2V0PSIgLiAkTGF5b3V0T2JqZWN0LT57VXNlckNoYXJzZXR9LAogICAgICAgICAgICAgICAgICAgIENvbnRlbnQgICAgID0+ICRDU1YsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIEdlbmVyYXRlIEV4Y2VsIG91dHB1dC4KICAgICAgICAgICAgZWxzaWYgKCAkR2V0UGFyYW17UmVzdWx0Rm9ybX0gZXEgJ0V4Y2VsJyApIHsKICAgICAgICAgICAgICAgIG15ICRFeGNlbCA9ICRDU1ZPYmplY3QtPkFycmF5MkNTVigKICAgICAgICAgICAgICAgICAgICBIZWFkICAgPT4gXEBDU1ZIZWFkLAogICAgICAgICAgICAgICAgICAgIERhdGEgICA9PiBcQENTVkRhdGEsCiAgICAgICAgICAgICAgICAgICAgRm9ybWF0ID0+ICdFeGNlbCcsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgUmV0dXJuIEV4Y2VsIHRvIGRvd25sb2FkLgogICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkF0dGFjaG1lbnQoCiAgICAgICAgICAgICAgICAgICAgRmlsZW5hbWUgICAgPT4gJEZpbGVOYW1lIC4gIl8iIC4gIiRZLSRNLSREIiAuICJfIiAuICIkaC0kbS54bHN4IiwKICAgICAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PgogICAgICAgICAgICAgICAgICAgICAgICAiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQiLAogICAgICAgICAgICAgICAgICAgIENvbnRlbnQgPT4gJEV4Y2VsLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNpZiAoICRHZXRQYXJhbXtSZXN1bHRGb3JtfSBlcSAnUHJpbnQnICkgewoKICAgICAgICAgICAgbXkgJFBERk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpQREYnKTsKCiAgICAgICAgICAgIG15IEBQREZEYXRhOwogICAgICAgICAgICBmb3IgbXkgJEl0ZW1JRCAoQFZpZXdhYmxlSXRlbUlEcykgewoKICAgICAgICAgICAgICAgIG15ICVGQVFEYXRhID0gJEZBUU9iamVjdC0+RkFRR2V0KAogICAgICAgICAgICAgICAgICAgIEl0ZW1JRCAgICAgPT4gJEl0ZW1JRCwKICAgICAgICAgICAgICAgICAgICBJdGVtRmllbGRzID0+IDAsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgU2V0IGNoYW5nZSBkYXRlIHRvIGxvbmcgZm9ybWF0LgogICAgICAgICAgICAgICAgbXkgJENoYW5nZWQgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5Gb3JtYXRUaW1lU3RyaW5nKAogICAgICAgICAgICAgICAgICAgICRGQVFEYXRhe0NoYW5nZWR9LAogICAgICAgICAgICAgICAgICAgICdEYXRlRm9ybWF0TG9uZycsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgQ3JlYXRlIFBERiBSb3dzLgogICAgICAgICAgICAgICAgbXkgQFBERlJvdzsKICAgICAgICAgICAgICAgIHB1c2ggQFBERlJvdywgJEZBUURhdGF7TnVtYmVyfTsKICAgICAgICAgICAgICAgIHB1c2ggQFBERlJvdywgJEZBUURhdGF7VGl0bGV9OwogICAgICAgICAgICAgICAgcHVzaCBAUERGUm93LCAkRkFRRGF0YXtDYXRlZ29yeU5hbWV9OwoKICAgICAgICAgICAgICAgICMgQ3JlYXRlIGxhbmd1YWdlIHJvdy4KICAgICAgICAgICAgICAgIGlmICgkTXVsdGlMYW5ndWFnZSkgewogICAgICAgICAgICAgICAgICAgIHB1c2ggQFBERlJvdywgJEZBUURhdGF7TGFuZ3VhZ2V9OwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHB1c2ggQFBERlJvdywgICRGQVFEYXRhe1N0YXRlfTsKICAgICAgICAgICAgICAgIHB1c2ggQFBERlJvdywgICRDaGFuZ2VkOwogICAgICAgICAgICAgICAgcHVzaCBAUERGRGF0YSwgXEBQREZSb3c7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgUERGIE91dHB1dC4KICAgICAgICAgICAgbXkgJFRpdGxlID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdGQVEnKSAuICcgJwogICAgICAgICAgICAgICAgLiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ1NlYXJjaCcpOwogICAgICAgICAgICBteSAkUHJpbnRlZEJ5ID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdwcmludGVkIGJ5Jyk7CiAgICAgICAgICAgIG15ICRQYWdlICAgICAgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ1BhZ2UnKTsKICAgICAgICAgICAgbXkgJFRpbWUgICAgICA9ICRMYXlvdXRPYmplY3QtPntUaW1lfTsKCiAgICAgICAgICAgICMgR2V0IG1heGltdW0gbnVtYmVyIG9mIHBhZ2VzLgogICAgICAgICAgICBteSAkTWF4UGFnZXMgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1BERjo6TWF4UGFnZXMnKTsKICAgICAgICAgICAgaWYgKCAhJE1heFBhZ2VzIHx8ICRNYXhQYWdlcyA8IDEgfHwgJE1heFBhZ2VzID4gMTAwMCApIHsKICAgICAgICAgICAgICAgICRNYXhQYWdlcyA9IDEwMDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBDcmVhdGUgdGhlIGhlYWRlci4KICAgICAgICAgICAgbXkgJENlbGxEYXRhOwoKICAgICAgICAgICAgIyBPdXRwdXQgJ05vIFJlc3VsdCcsIGlmIG5vIGNvbnRlbnQgd2FzIGdpdmVuLgogICAgICAgICAgICBpZiAoQFBERkRhdGEpIHsKCiAgICAgICAgICAgICAgICAkQ2VsbERhdGEtPlswXS0+WzBdLT57Q29udGVudH0gPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6RkFRSG9vaycpOwogICAgICAgICAgICAgICAgJENlbGxEYXRhLT5bMF0tPlswXS0+e0ZvbnR9ICAgID0gJ1Byb3BvcnRpb25hbEJvbGQnOwogICAgICAgICAgICAgICAgJENlbGxEYXRhLT5bMF0tPlsxXS0+e0NvbnRlbnR9ID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdUaXRsZScpOwogICAgICAgICAgICAgICAgJENlbGxEYXRhLT5bMF0tPlsxXS0+e0ZvbnR9ICAgID0gJ1Byb3BvcnRpb25hbEJvbGQnOwogICAgICAgICAgICAgICAgJENlbGxEYXRhLT5bMF0tPlsyXS0+e0NvbnRlbnR9ID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdDYXRlZ29yeScpOwogICAgICAgICAgICAgICAgJENlbGxEYXRhLT5bMF0tPlsyXS0+e0ZvbnR9ICAgID0gJ1Byb3BvcnRpb25hbEJvbGQnOwoKICAgICAgICAgICAgICAgICMgU3RvcmUgdGhlIGNvcnJlY3QgaGVhZGVyIGluZGV4LgogICAgICAgICAgICAgICAgbXkgJE5leHRIZWFkZXJJbmRleCA9IDM7CgogICAgICAgICAgICAgICAgIyBBZGQgbGFuZ3VhZ2UgaGVhZGVyLgogICAgICAgICAgICAgICAgaWYgKCRNdWx0aUxhbmd1YWdlKSB7CiAgICAgICAgICAgICAgICAgICAgJENlbGxEYXRhLT5bMF0tPlszXS0+e0NvbnRlbnR9ID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdMYW5ndWFnZScpOwogICAgICAgICAgICAgICAgICAgICRDZWxsRGF0YS0+WzBdLT5bM10tPntGb250fSAgICA9ICdQcm9wb3J0aW9uYWxCb2xkJzsKICAgICAgICAgICAgICAgICAgICAkTmV4dEhlYWRlckluZGV4ICAgICAgICAgICAgICAgPSA0OwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICRDZWxsRGF0YS0+WzBdLT5bJE5leHRIZWFkZXJJbmRleF0tPntDb250ZW50fSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnU3RhdGUnKTsKICAgICAgICAgICAgICAgICRDZWxsRGF0YS0+WzBdLT5bJE5leHRIZWFkZXJJbmRleF0tPntGb250fSAgICA9ICdQcm9wb3J0aW9uYWxCb2xkJzsKCiAgICAgICAgICAgICAgICAkQ2VsbERhdGEtPlswXS0+WyAkTmV4dEhlYWRlckluZGV4ICsgMSBdLT57Q29udGVudH0KICAgICAgICAgICAgICAgICAgICA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnQ2hhbmdlZCcpOwogICAgICAgICAgICAgICAgJENlbGxEYXRhLT5bMF0tPlsgJE5leHRIZWFkZXJJbmRleCArIDEgXS0+e0ZvbnR9ID0gJ1Byb3BvcnRpb25hbEJvbGQnOwoKICAgICAgICAgICAgICAgICMgQ3JlYXRlIHRoZSBjb250ZW50IGFycmF5LgogICAgICAgICAgICAgICAgbXkgJENvdW50ZXJSb3cgPSAxOwogICAgICAgICAgICAgICAgZm9yIG15ICRSb3cgKEBQREZEYXRhKSB7CiAgICAgICAgICAgICAgICAgICAgbXkgJENvdW50ZXJDb2x1bW4gPSAwOwogICAgICAgICAgICAgICAgICAgIGZvciBteSAkQ29udGVudCAoIEB7JFJvd30gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRDZWxsRGF0YS0+WyRDb3VudGVyUm93XS0+WyRDb3VudGVyQ29sdW1uXS0+e0NvbnRlbnR9ID0gJENvbnRlbnQ7CiAgICAgICAgICAgICAgICAgICAgICAgICRDb3VudGVyQ29sdW1uKys7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICRDb3VudGVyUm93Kys7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkQ2VsbERhdGEtPlswXS0+WzBdLT57Q29udGVudH0gPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ05vIFJlc3VsdCEnKTsKCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgUGFnZSBwYXJhbXMuCiAgICAgICAgICAgIG15ICVQYWdlUGFyYW07CiAgICAgICAgICAgICRQYWdlUGFyYW17UGFnZU9yaWVudGF0aW9ufSA9ICdsYW5kc2NhcGUnOwogICAgICAgICAgICAkUGFnZVBhcmFte01hcmdpblRvcH0gICAgICAgPSAzMDsKICAgICAgICAgICAgJFBhZ2VQYXJhbXtNYXJnaW5SaWdodH0gICAgID0gNDA7CiAgICAgICAgICAgICRQYWdlUGFyYW17TWFyZ2luQm90dG9tfSAgICA9IDQwOwogICAgICAgICAgICAkUGFnZVBhcmFte01hcmdpbkxlZnR9ICAgICAgPSA0MDsKICAgICAgICAgICAgJFBhZ2VQYXJhbXtIZWFkZXJSaWdodH0gICAgID0gJFRpdGxlOwogICAgICAgICAgICAkUGFnZVBhcmFte0hlYWRsaW5lTGVmdH0gICAgPSAkVGl0bGU7CgogICAgICAgICAgICAjIFRhYmxlIHBhcmFtcy4KICAgICAgICAgICAgbXkgJVRhYmxlUGFyYW07CiAgICAgICAgICAgICRUYWJsZVBhcmFte0NlbGxEYXRhfSAgICAgICAgICAgID0gJENlbGxEYXRhOwogICAgICAgICAgICAkVGFibGVQYXJhbXtUeXBlfSAgICAgICAgICAgICAgICA9ICdDdXQnOwogICAgICAgICAgICAkVGFibGVQYXJhbXtGb250U2l6ZX0gICAgICAgICAgICA9IDY7CiAgICAgICAgICAgICRUYWJsZVBhcmFte0JvcmRlcn0gICAgICAgICAgICAgID0gMDsKICAgICAgICAgICAgJFRhYmxlUGFyYW17QmFja2dyb3VuZENvbG9yRXZlbn0gPSAnI0RERERERCc7CiAgICAgICAgICAgICRUYWJsZVBhcmFte1BhZGRpbmd9ICAgICAgICAgICAgID0gMTsKICAgICAgICAgICAgJFRhYmxlUGFyYW17UGFkZGluZ1RvcH0gICAgICAgICAgPSAzOwogICAgICAgICAgICAkVGFibGVQYXJhbXtQYWRkaW5nQm90dG9tfSAgICAgICA9IDM7CgogICAgICAgICAgICAjIENyZWF0ZSBuZXcgUERGIGRvY3VtZW50LgogICAgICAgICAgICAkUERGT2JqZWN0LT5Eb2N1bWVudE5ldygKICAgICAgICAgICAgICAgIFRpdGxlICA9PiAkQ29uZmlnT2JqZWN0LT5HZXQoJ1Byb2R1Y3QnKSAuICc6ICcgLiAkVGl0bGUsCiAgICAgICAgICAgICAgICBFbmNvZGUgPT4gJExheW91dE9iamVjdC0+e1VzZXJDaGFyc2V0fSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgU3RhcnQgdGFibGUgb3V0cHV0LgogICAgICAgICAgICAkUERGT2JqZWN0LT5QYWdlTmV3KAogICAgICAgICAgICAgICAgJVBhZ2VQYXJhbSwKICAgICAgICAgICAgICAgIEZvb3RlclJpZ2h0ID0+ICRQYWdlIC4gJyAxJywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRQREZPYmplY3QtPlBvc2l0aW9uU2V0KAogICAgICAgICAgICAgICAgTW92ZSA9PiAncmVsYXRpdicsCiAgICAgICAgICAgICAgICBZICAgID0+IC02LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBPdXRwdXQgdGl0bGUuCiAgICAgICAgICAgICRQREZPYmplY3QtPlRleHQoCiAgICAgICAgICAgICAgICBUZXh0ICAgICA9PiAkVGl0bGUsCiAgICAgICAgICAgICAgICBGb250U2l6ZSA9PiAxMywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRQREZPYmplY3QtPlBvc2l0aW9uU2V0KAogICAgICAgICAgICAgICAgTW92ZSA9PiAncmVsYXRpdicsCiAgICAgICAgICAgICAgICBZICAgID0+IC02LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBPdXRwdXQgInByaW50ZWQgYnkiLgogICAgICAgICAgICAkUERGT2JqZWN0LT5UZXh0KAogICAgICAgICAgICAgICAgVGV4dCA9PiAkUHJpbnRlZEJ5IC4gJyAnCiAgICAgICAgICAgICAgICAgICAgLiAkU2VsZi0+e1VzZXJGdWxsbmFtZX0gLiAnICgnCiAgICAgICAgICAgICAgICAgICAgLiAkU2VsZi0+e1VzZXJFbWFpbH0gLiAnKScKICAgICAgICAgICAgICAgICAgICAuICcsICcgLiAkVGltZSwKICAgICAgICAgICAgICAgIEZvbnRTaXplID0+IDksCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkUERGT2JqZWN0LT5Qb3NpdGlvblNldCgKICAgICAgICAgICAgICAgIE1vdmUgPT4gJ3JlbGF0aXYnLAogICAgICAgICAgICAgICAgWSAgICA9PiAtMTQsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBQQUdFOgogICAgICAgICAgICBmb3IgKCAyIC4uICRNYXhQYWdlcyApIHsKCiAgICAgICAgICAgICAgICAjIE91dHB1dCB0YWJsZSAob3IgYSBmcmFnbWVudCBvZiBpdCkuCiAgICAgICAgICAgICAgICAlVGFibGVQYXJhbSA9ICRQREZPYmplY3QtPlRhYmxlKCAlVGFibGVQYXJhbSwgKTsKCiAgICAgICAgICAgICAgICAjIFN0b3Agb3V0cHV0IG9yIGFub3RoZXIgcGFnZS4KICAgICAgICAgICAgICAgIGlmICggJFRhYmxlUGFyYW17U3RhdGV9ICkgewogICAgICAgICAgICAgICAgICAgIGxhc3QgUEFHRTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICRQREZPYmplY3QtPlBhZ2VOZXcoCiAgICAgICAgICAgICAgICAgICAgICAgICVQYWdlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgIEZvb3RlclJpZ2h0ID0+ICRQYWdlIC4gJyAnIC4gJF8sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBSZXR1cm4gdGhlIFBERiBkb2N1bWVudC4KICAgICAgICAgICAgbXkgJEZpbGVuYW1lID0gJ0ZBUV9zZWFyY2gnOwoKICAgICAgICAgICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CiAgICAgICAgICAgIG15ICREYXRlVGltZSAgICAgICA9ICREYXRlVGltZU9iamVjdC0+R2V0KCk7CiAgICAgICAgICAgIG15ICRZICAgICAgICAgICAgICA9ICREYXRlVGltZS0+e1llYXJ9OwogICAgICAgICAgICBteSAkTSAgICAgICAgICAgICAgPSBzcHJpbnRmKCAiJTAyZCIsICREYXRlVGltZS0+e01vbnRofSApOwogICAgICAgICAgICBteSAkRCAgICAgICAgICAgICAgPSBzcHJpbnRmKCAiJTAyZCIsICREYXRlVGltZS0+e0RheX0gKTsKICAgICAgICAgICAgbXkgJGggICAgICAgICAgICAgID0gc3ByaW50ZiggIiUwMmQiLCAkRGF0ZVRpbWUtPntIb3VyfSApOwogICAgICAgICAgICBteSAkbSAgICAgICAgICAgICAgPSBzcHJpbnRmKCAiJTAyZCIsICREYXRlVGltZS0+e01pbnV0ZX0gKTsKCiAgICAgICAgICAgIG15ICRQREZTdHJpbmcgPSAkUERGT2JqZWN0LT5Eb2N1bWVudE91dHB1dCgpOwogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+QXR0YWNobWVudCgKICAgICAgICAgICAgICAgIEZpbGVuYW1lICAgID0+ICRGaWxlbmFtZSAuICJfIiAuICIkWS0kTS0kRCIgLiAiXyIgLiAiJGgtJG0ucGRmIiwKICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICJhcHBsaWNhdGlvbi9wZGYiLAogICAgICAgICAgICAgICAgQ29udGVudCAgICAgPT4gJFBERlN0cmluZywKICAgICAgICAgICAgICAgIFR5cGUgICAgICAgID0+ICdpbmxpbmUnLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgU3RhcnQgSFRNTCBwYWdlLgogICAgICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwoKICAgICAgICAgICAgbXkgJEZpbHRlciA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdGaWx0ZXInICkgfHwgJyc7CiAgICAgICAgICAgIG15ICRWaWV3ICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnVmlldycgKSAgIHx8ICcnOwoKICAgICAgICAgICAgIyBTaG93IEZBUSdzLgogICAgICAgICAgICBteSAkTGlua1BhZ2UgPSAnRmlsdGVyPScKICAgICAgICAgICAgICAgIC4gJExheW91dE9iamVjdC0+TGlua0VuY29kZSgkRmlsdGVyKQogICAgICAgICAgICAgICAgLiAnO1ZpZXc9JyAuICRMYXlvdXRPYmplY3QtPkxpbmtFbmNvZGUoJFZpZXcpCiAgICAgICAgICAgICAgICAuICc7U29ydEJ5PScgLiAkTGF5b3V0T2JqZWN0LT5MaW5rRW5jb2RlKCRTb3J0QnkpCiAgICAgICAgICAgICAgICAuICc7T3JkZXJCeT0nIC4gJExheW91dE9iamVjdC0+TGlua0VuY29kZSgkT3JkZXJCeSkKICAgICAgICAgICAgICAgIC4gJztQcm9maWxlPScgLiAkTGF5b3V0T2JqZWN0LT5MaW5rRW5jb2RlKCRQcm9maWxlKSAuICc7VGFrZUxhc3RTZWFyY2g9MTtTdWJhY3Rpb249U2VhcmNoJwogICAgICAgICAgICAgICAgLiAnOyc7CiAgICAgICAgICAgIG15ICRMaW5rU29ydCA9ICdGaWx0ZXI9JwogICAgICAgICAgICAgICAgLiAkTGF5b3V0T2JqZWN0LT5MaW5rRW5jb2RlKCRGaWx0ZXIpCiAgICAgICAgICAgICAgICAuICc7Vmlldz0nIC4gJExheW91dE9iamVjdC0+TGlua0VuY29kZSgkVmlldykKICAgICAgICAgICAgICAgIC4gJztQcm9maWxlPScgLiAkTGF5b3V0T2JqZWN0LT5MaW5rRW5jb2RlKCRQcm9maWxlKSAuICc7VGFrZUxhc3RTZWFyY2g9MTtTdWJhY3Rpb249U2VhcmNoJwogICAgICAgICAgICAgICAgLiAnOyc7CiAgICAgICAgICAgIG15ICRMaW5rRmlsdGVyID0gJ1Rha2VMYXN0U2VhcmNoPTE7U3ViYWN0aW9uPVNlYXJjaDtQcm9maWxlPScKICAgICAgICAgICAgICAgIC4gJExheW91dE9iamVjdC0+TGlua0VuY29kZSgkUHJvZmlsZSkKICAgICAgICAgICAgICAgIC4gJzsnOwogICAgICAgICAgICBteSAkTGlua0JhY2sgPSAnU3ViYWN0aW9uPUxvYWRQcm9maWxlO1Byb2ZpbGU9JwogICAgICAgICAgICAgICAgLiAkTGF5b3V0T2JqZWN0LT5MaW5rRW5jb2RlKCRQcm9maWxlKQogICAgICAgICAgICAgICAgLiAnO1Rha2VMYXN0U2VhcmNoPTE7JzsKCiAgICAgICAgICAgIG15ICRGaWx0ZXJMaW5rID0gJ1NvcnRCeT0nIC4gJExheW91dE9iamVjdC0+TGlua0VuY29kZSgkU29ydEJ5KQogICAgICAgICAgICAgICAgLiAnO09yZGVyQnk9JyAuICRMYXlvdXRPYmplY3QtPkxpbmtFbmNvZGUoJE9yZGVyQnkpCiAgICAgICAgICAgICAgICAuICc7Vmlldz0nIC4gJExheW91dE9iamVjdC0+TGlua0VuY29kZSgkVmlldykKICAgICAgICAgICAgICAgIC4gJztQcm9maWxlPScgLiAkTGF5b3V0T2JqZWN0LT5MaW5rRW5jb2RlKCRQcm9maWxlKSAuICc7VGFrZUxhc3RTZWFyY2g9MTtTdWJhY3Rpb249U2VhcmNoJwogICAgICAgICAgICAgICAgLiAnOyc7CgogICAgICAgICAgICAjIEZpbmQgb3V0IHdoaWNoIGNvbHVtbnMgc2hvdWxkIGJlIHNob3duLgogICAgICAgICAgICBteSBAU2hvd0NvbHVtbnM7CiAgICAgICAgICAgIGlmICggJENvbmZpZy0+e1Nob3dDb2x1bW5zfSApIHsKCiAgICAgICAgICAgICAgICAjIEdldCBhbGwgcG9zc2libGUgY29sdW1ucyBmcm9tIGNvbmZpZy4KICAgICAgICAgICAgICAgIG15ICVQb3NzaWJsZUNvbHVtbiA9ICV7ICRDb25maWctPntTaG93Q29sdW1uc30gfTsKCiAgICAgICAgICAgICAgICAjIEdldCB0aGUgY29sdW1uIG5hbWVzIHRoYXQgc2hvdWxkIGJlIHNob3duLgogICAgICAgICAgICAgICAgQ09MVU1OTkFNRToKICAgICAgICAgICAgICAgIGZvciBteSAkTmFtZSAoIHNvcnQga2V5cyAlUG9zc2libGVDb2x1bW4gKSB7CiAgICAgICAgICAgICAgICAgICAgbmV4dCBDT0xVTU5OQU1FIGlmICEkUG9zc2libGVDb2x1bW57JE5hbWV9OwogICAgICAgICAgICAgICAgICAgIHB1c2ggQFNob3dDb2x1bW5zLCAkTmFtZTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIEVuZm9yY2UgRkFRIG51bWJlciBjb2x1bW4gc2luY2UgaXMgdGhlIGxpbmsgTWFzdGVyQWN0aW9uIGhvb2suCiAgICAgICAgICAgICAgICBpZiAoICEkUG9zc2libGVDb2x1bW57J051bWJlcid9ICkgewogICAgICAgICAgICAgICAgICAgIHB1c2ggQFNob3dDb2x1bW5zLCAnTnVtYmVyJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5GQVFMaXN0U2hvdygKICAgICAgICAgICAgICAgIEZBUUlEcyA9PiBcQFZpZXdhYmxlSXRlbUlEcywKICAgICAgICAgICAgICAgIFRvdGFsICA9PiBzY2FsYXIgQFZpZXdhYmxlSXRlbUlEcywKCiAgICAgICAgICAgICAgICBWaWV3ID0+ICRWaWV3LAoKICAgICAgICAgICAgICAgIEVudiAgICAgICAgPT4gJFNlbGYsCiAgICAgICAgICAgICAgICBMaW5rUGFnZSAgID0+ICRMaW5rUGFnZSwKICAgICAgICAgICAgICAgIExpbmtTb3J0ICAgPT4gJExpbmtTb3J0LAogICAgICAgICAgICAgICAgTGlua0ZpbHRlciA9PiAkTGlua0ZpbHRlciwKICAgICAgICAgICAgICAgIExpbmtCYWNrICAgPT4gJExpbmtCYWNrLAogICAgICAgICAgICAgICAgUHJvZmlsZSAgICA9PiAkUHJvZmlsZSwKCiAgICAgICAgICAgICAgICBUaXRsZU5hbWUgPT4gVHJhbnNsYXRhYmxlKCdTZWFyY2ggUmVzdWx0JyksCiAgICAgICAgICAgICAgICBMaW1pdCAgICAgPT4gJFNlYXJjaExpbWl0LAoKICAgICAgICAgICAgICAgIEZpbHRlciAgICAgPT4gJEZpbHRlciwKICAgICAgICAgICAgICAgIEZpbHRlckxpbmsgPT4gJEZpbHRlckxpbmssCgogICAgICAgICAgICAgICAgT3JkZXJCeSA9PiAkT3JkZXJCeSwKICAgICAgICAgICAgICAgIFNvcnRCeSAgPT4gJFNvcnRCeSwKCiAgICAgICAgICAgICAgICBTaG93Q29sdW1ucyAgPT4gXEBTaG93Q29sdW1ucywKICAgICAgICAgICAgICAgIEZBUVRpdGxlU2l6ZSA9PiAkQ29uZmlnLT57VGl0bGVTaXplfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CiAgICAgICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgICAgIH0KICAgIH0KCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQUpBWFByb2ZpbGVEZWxldGUnICkgewogICAgICAgIG15ICRQcm9maWxlID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1Byb2ZpbGUnICk7CgogICAgICAgICMgUmVtb3ZlIG9sZCBwcm9maWxlIHN0dWZmLgogICAgICAgICRTZWFyY2hQcm9maWxlT2JqZWN0LT5TZWFyY2hQcm9maWxlRGVsZXRlKAogICAgICAgICAgICBCYXNlICAgICAgPT4gJ0ZBUVNlYXJjaCcsCiAgICAgICAgICAgIE5hbWUgICAgICA9PiAkUHJvZmlsZSwKICAgICAgICAgICAgVXNlckxvZ2luID0+ICRTZWxmLT57VXNlckxvZ2lufSwKICAgICAgICApOwogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5KU09ORW5jb2RlKAogICAgICAgICAgICBEYXRhID0+IDEsCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+QXR0YWNobWVudCgKICAgICAgICAgICAgTm9DYWNoZSAgICAgPT4gMSwKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvaHRtbCcsCiAgICAgICAgICAgIENvbnRlbnQgICAgID0+ICRPdXRwdXQsCiAgICAgICAgICAgIFR5cGUgICAgICAgID0+ICdpbmxpbmUnLAogICAgICAgICk7CiAgICB9CgogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0FKQVgnICkgewoKICAgICAgICBteSAkT3V0cHV0ID0gJFNlbGYtPl9NYXNrRm9ybSgKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICk7CgogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5BdHRhY2htZW50KAogICAgICAgICAgICBOb0NhY2hlICAgICA9PiAxLAogICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9odG1sJywKICAgICAgICAgICAgQ2hhcnNldCAgICAgPT4gJExheW91dE9iamVjdC0+e1VzZXJDaGFyc2V0fSwKICAgICAgICAgICAgQ29udGVudCAgICAgPT4gJE91dHB1dCwKICAgICAgICAgICAgVHlwZSAgICAgICAgPT4gJ2lubGluZScsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIFNob3cgZGVmYXVsdCBzZWFyY2ggc2NyZWVuLgogICAgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CgogICAgIyBTZW5kIGRhdGEgdG8gSlMuCiAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgS2V5ICAgPT4gJ0FnZW50RkFRU2VhcmNoJywKICAgICAgICBWYWx1ZSA9PiAxLAogICAgKTsKCiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50RkFRU2VhcmNoJywKICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwogICAgcmV0dXJuICRPdXRwdXQ7Cgp9CgpzdWIgX01hc2tGb3JtIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgbXkgJFRyZWVWaWV3ID0gMDsKICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpMaXN0VHlwZScpIGVxICd0cmVlJyApIHsKICAgICAgICAkVHJlZVZpZXcgPSAxOwogICAgfQoKICAgIG15ICRQYXJhbU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKCiAgICBteSAkUHJvZmlsZSAgICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnUHJvZmlsZScgKSB8fCAnJzsKICAgIG15ICRFbXB0eVNlYXJjaCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdFbXB0eVNlYXJjaCcgKTsKICAgIGlmICggISRQcm9maWxlICkgewogICAgICAgICRFbXB0eVNlYXJjaCA9IDE7CiAgICB9CgogICAgbXkgJFNlYXJjaFByb2ZpbGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U2VhcmNoUHJvZmlsZScpOwoKICAgIG15ICVHZXRQYXJhbSA9ICRTZWFyY2hQcm9maWxlT2JqZWN0LT5TZWFyY2hQcm9maWxlR2V0KAogICAgICAgIEJhc2UgICAgICA9PiAnRkFRU2VhcmNoJywKICAgICAgICBOYW1lICAgICAgPT4gJFByb2ZpbGUsCiAgICAgICAgVXNlckxvZ2luID0+ICRTZWxmLT57VXNlckxvZ2lufSwKICAgICk7CgogICAgIyBHZXQgY29uZmlnIGZyb20gY29uc3RydWN0b3IuCiAgICBteSAkQ29uZmlnID0gJFNlbGYtPntDb25maWd9OwoKICAgICMgSWYgbm8gcHJvZmlsZSBpcyB1c2VkLCBzZXQgZGVmYXVsdCBwYXJhbXMgb2YgZGVmYXVsdCBhdHRyaWJ1dGVzLgogICAgaWYgKCAhJFByb2ZpbGUgKSB7CiAgICAgICAgaWYgKCAkQ29uZmlnLT57RGVmYXVsdHN9ICkgewogICAgICAgICAgICBBVFRSSUJVVEU6CiAgICAgICAgICAgIGZvciBteSAkQXR0cmlidXRlICggc29ydCBrZXlzICV7ICRDb25maWctPntEZWZhdWx0c30gfSApIHsKICAgICAgICAgICAgICAgIG5leHQgQVRUUklCVVRFIGlmICEkQ29uZmlnLT57RGVmYXVsdHN9LT57JEF0dHJpYnV0ZX07CiAgICAgICAgICAgICAgICBuZXh0IEFUVFJJQlVURSBpZiAkQXR0cmlidXRlIGVxICdEeW5hbWljRmllbGQnOwogICAgICAgICAgICAgICAgJEdldFBhcmFteyRBdHRyaWJ1dGV9ID0gJENvbmZpZy0+e0RlZmF1bHRzfS0+eyRBdHRyaWJ1dGV9OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgU2V0IGF0dHJpYnV0ZXMgc3RyaW5nLgogICAgbXkgQEF0dHJpYnV0ZXMgPSAoCiAgICAgICAgewogICAgICAgICAgICBLZXkgICA9PiAnTnVtYmVyJywKICAgICAgICAgICAgVmFsdWUgPT4gVHJhbnNsYXRhYmxlKCdGQVEgTnVtYmVyJyksCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIEtleSAgID0+ICdGdWxsdGV4dCcsCiAgICAgICAgICAgIFZhbHVlID0+IFRyYW5zbGF0YWJsZSgnRnVsbHRleHQnKSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgS2V5ICAgPT4gJ1RpdGxlJywKICAgICAgICAgICAgVmFsdWUgPT4gVHJhbnNsYXRhYmxlKCdUaXRsZScpLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBLZXkgICA9PiAnS2V5d29yZCcsCiAgICAgICAgICAgIFZhbHVlID0+IFRyYW5zbGF0YWJsZSgnS2V5d29yZCcpLAogICAgICAgIH0sCiAgICApOwoKICAgICMgU2hvdyBMYW5ndWFnZXMgYXR0cmlidXRlLgogICAgbXkgJE11bHRpTGFuZ3VhZ2UgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6TXVsdGlMYW5ndWFnZScpOwogICAgaWYgKCRNdWx0aUxhbmd1YWdlKSB7CiAgICAgICAgcHVzaCBAQXR0cmlidXRlcywgKAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBLZXkgICA9PiAnTGFuZ3VhZ2VJRHMnLAogICAgICAgICAgICAgICAgVmFsdWUgPT4gVHJhbnNsYXRhYmxlKCdMYW5ndWFnZScpLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgcHVzaCBAQXR0cmlidXRlcywgKAogICAgICAgIHsKICAgICAgICAgICAgS2V5ICAgPT4gJ0NhdGVnb3J5SURzJywKICAgICAgICAgICAgVmFsdWUgPT4gVHJhbnNsYXRhYmxlKCdDYXRlZ29yeScpLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBLZXkgICA9PiAnVmFsaWRJRHMnLAogICAgICAgICAgICBWYWx1ZSA9PiBUcmFuc2xhdGFibGUoJ1ZhbGlkaXR5JyksCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIEtleSAgID0+ICdTdGF0ZUlEcycsCiAgICAgICAgICAgIFZhbHVlID0+IFRyYW5zbGF0YWJsZSgnU3RhdGUnKSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgS2V5ICAgPT4gJ1ZvdGVTZWFyY2hUeXBlJywKICAgICAgICAgICAgVmFsdWUgPT4gVHJhbnNsYXRhYmxlKCdWb3RlcycpLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBLZXkgICA9PiAnUmF0ZVNlYXJjaFR5cGUnLAogICAgICAgICAgICBWYWx1ZSA9PiBUcmFuc2xhdGFibGUoJ1JhdGUnKSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgS2V5ICAgPT4gJ0FwcHJvdmVkU2VhcmNoJywKICAgICAgICAgICAgVmFsdWUgPT4gVHJhbnNsYXRhYmxlKCdBcHByb3ZlZCcpLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBLZXkgICA9PiAnQ3JlYXRlZFVzZXJJRHMnLAogICAgICAgICAgICBWYWx1ZSA9PiBUcmFuc2xhdGFibGUoJ0NyZWF0ZWQgYnknKSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgS2V5ICAgPT4gJ0xhc3RDaGFuZ2VkVXNlcklEcycsCiAgICAgICAgICAgIFZhbHVlID0+IFRyYW5zbGF0YWJsZSgnTGFzdCBDaGFuZ2VkIGJ5JyksCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIEtleSAgID0+ICdJdGVtQ3JlYXRlVGltZVBvaW50JywKICAgICAgICAgICAgVmFsdWUgPT4gVHJhbnNsYXRhYmxlKCdGQVEgSXRlbSBDcmVhdGUgVGltZSAoYmVmb3JlL2FmdGVyKScpLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBLZXkgICA9PiAnSXRlbUNyZWF0ZVRpbWVTbG90JywKICAgICAgICAgICAgVmFsdWUgPT4gVHJhbnNsYXRhYmxlKCdGQVEgSXRlbSBDcmVhdGUgVGltZSAoYmV0d2VlbiknKSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgS2V5ICAgPT4gJ0l0ZW1DaGFuZ2VUaW1lUG9pbnQnLAogICAgICAgICAgICBWYWx1ZSA9PiBUcmFuc2xhdGFibGUoJ0ZBUSBJdGVtIENoYW5nZSBUaW1lIChiZWZvcmUvYWZ0ZXIpJyksCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIEtleSAgID0+ICdJdGVtQ2hhbmdlVGltZVNsb3QnLAogICAgICAgICAgICBWYWx1ZSA9PiBUcmFuc2xhdGFibGUoJ0ZBUSBJdGVtIENoYW5nZSBUaW1lIChiZXR3ZWVuKScpLAogICAgICAgIH0sCiAgICApOwoKICAgIG15ICREeW5hbWljRmllbGRTZXBhcmF0b3IgPSAxOwoKICAgIG15ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZCcpOwogICAgbXkgJExheW91dE9iamVjdCAgICAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBDcmVhdGUgZHluYW1pYyBmaWVsZHMgc2VhcmNoIG9wdGlvbnMgZm9yIGF0dHJpYnV0ZSBzZWxlY3QuCiAgICBEWU5BTUlDRklFTEQ6CiAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7ICRTZWxmLT57RHluYW1pY0ZpZWxkfSB9ICkgewogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9OwogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSBlcSAnJzsKCiAgICAgICAgIyBDcmVhdGUgYSBzZXBhcmF0b3IgZm9yIGR5bmFtaWMgZmllbGRzIGF0dHJpYnV0ZXMuCiAgICAgICAgaWYgKCREeW5hbWljRmllbGRTZXBhcmF0b3IpIHsKICAgICAgICAgICAgcHVzaCBAQXR0cmlidXRlcywgKAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEtleSAgICAgID0+ICcnLAogICAgICAgICAgICAgICAgICAgIFZhbHVlICAgID0+ICctJywKICAgICAgICAgICAgICAgICAgICBEaXNhYmxlZCA9PiAxLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICREeW5hbWljRmllbGRTZXBhcmF0b3IgPSAwOwogICAgICAgIH0KCiAgICAgICAgbXkgJFNlYXJjaEZpZWxkUHJlZmVyZW5jZXMgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+U2VhcmNoRmllbGRQcmVmZXJlbmNlcygKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgKTsKCiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzQXJyYXlSZWZXaXRoRGF0YSgkU2VhcmNoRmllbGRQcmVmZXJlbmNlcyk7CgogICAgICAgIG15ICRUcmFuc2xhdGVkRHluYW1pY0ZpZWxkTGFiZWwgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoCiAgICAgICAgICAgICREeW5hbWljRmllbGRDb25maWctPntMYWJlbH0sCiAgICAgICAgKTsKCiAgICAgICAgUFJFRkVSRU5DRToKICAgICAgICBmb3IgbXkgJFByZWZlcmVuY2UgKCBAeyRTZWFyY2hGaWVsZFByZWZlcmVuY2VzfSApIHsKCiAgICAgICAgICAgIG15ICRUcmFuc2xhdGVkU3VmZml4ID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKAogICAgICAgICAgICAgICAgJFByZWZlcmVuY2UtPntMYWJlbFN1ZmZpeH0sCiAgICAgICAgICAgICkgfHwgJyc7CgogICAgICAgICAgICBpZiAoJFRyYW5zbGF0ZWRTdWZmaXgpIHsKICAgICAgICAgICAgICAgICRUcmFuc2xhdGVkU3VmZml4ID0gJyAoJyAuICRUcmFuc2xhdGVkU3VmZml4IC4gJyknOwogICAgICAgICAgICB9CgogICAgICAgICAgICBwdXNoIEBBdHRyaWJ1dGVzLCAoCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgS2V5ID0+ICdTZWFyY2hfRHluYW1pY0ZpZWxkXycKICAgICAgICAgICAgICAgICAgICAgICAgLiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0KICAgICAgICAgICAgICAgICAgICAgICAgLiAkUHJlZmVyZW5jZS0+e1R5cGV9LAogICAgICAgICAgICAgICAgICAgIFZhbHVlID0+ICRUcmFuc2xhdGVkRHluYW1pY0ZpZWxkTGFiZWwgLiAkVHJhbnNsYXRlZFN1ZmZpeCwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgQ3JlYXRlIGEgc2VwYXJhdG9yIGlmIGEgZHluYW1pYyBmaWVsZCBhdHRyaWJ1dGUgd2FzIHB1c2hlZC4KICAgIGlmICggISREeW5hbWljRmllbGRTZXBhcmF0b3IgKSB7CiAgICAgICAgcHVzaCBAQXR0cmlidXRlcywgKAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBLZXkgICAgICA9PiAnJywKICAgICAgICAgICAgICAgIFZhbHVlICAgID0+ICctJywKICAgICAgICAgICAgICAgIERpc2FibGVkID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIENyZWF0ZSBIVE1MIHN0cmluZ3MgZm9yIGFsbCBkeW5hbWljIGZpZWxkcy4KICAgIG15ICVEeW5hbWljRmllbGRIVE1MOwoKICAgIERZTkFNSUNGSUVMRDoKICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHsgJFNlbGYtPntEeW5hbWljRmllbGR9IH0gKSB7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICBteSAkU2VhcmNoRmllbGRQcmVmZXJlbmNlcyA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5TZWFyY2hGaWVsZFByZWZlcmVuY2VzKAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICApOwoKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNBcnJheVJlZldpdGhEYXRhKCRTZWFyY2hGaWVsZFByZWZlcmVuY2VzKTsKCiAgICAgICAgUFJFRkVSRU5DRToKICAgICAgICBmb3IgbXkgJFByZWZlcmVuY2UgKCBAeyRTZWFyY2hGaWVsZFByZWZlcmVuY2VzfSApIHsKCiAgICAgICAgICAgICMgR2V0IGZpZWxkIEhUTUwuCiAgICAgICAgICAgICREeW5hbWljRmllbGRIVE1MeyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gLiAkUHJlZmVyZW5jZS0+e1R5cGV9IH0KICAgICAgICAgICAgICAgID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPlNlYXJjaEZpZWxkUmVuZGVyKAogICAgICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICAgICAgICAgIFByb2ZpbGUgICAgICAgICAgICA9PiBcJUdldFBhcmFtLAogICAgICAgICAgICAgICAgICAgIERlZmF1bHRWYWx1ZSAgICAgICA9PgogICAgICAgICAgICAgICAgICAgICRDb25maWctPntEZWZhdWx0c30tPntEeW5hbWljRmllbGR9CiAgICAgICAgICAgICAgICAgICAgLT57ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9LAogICAgICAgICAgICAgICAgICAgIExheW91dE9iamVjdCA9PiAkTGF5b3V0T2JqZWN0LAogICAgICAgICAgICAgICAgICAgIFR5cGUgICAgICAgICA9PiAkUHJlZmVyZW5jZS0+e1R5cGV9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBEcm9wLWRvd24gbWVudSBmb3IgJ2F0dHJpYnV0ZXMnLgogICAgJFBhcmFte0F0dHJpYnV0ZXNTdHJnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIFBvc3NpYmxlTm9uZSA9PiAxLAogICAgICAgIERhdGEgICAgICAgICA9PiBcQEF0dHJpYnV0ZXMsCiAgICAgICAgTmFtZSAgICAgICAgID0+ICdBdHRyaWJ1dGUnLAogICAgICAgIE11bHRpcGxlICAgICA9PiAwLAogICAgICAgIENsYXNzICAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CiAgICAkUGFyYW17QXR0cmlidXRlc09yaWdTdHJnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIFBvc3NpYmxlTm9uZSA9PiAxLAogICAgICAgIERhdGEgICAgICAgICA9PiBcQEF0dHJpYnV0ZXMsCiAgICAgICAgTmFtZSAgICAgICAgID0+ICdBdHRyaWJ1dGVPcmlnJywKICAgICAgICBNdWx0aXBsZSAgICAgPT4gMCwKICAgICAgICBDbGFzcyAgICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwoKICAgIG15ICRGQVFPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RkFRJyk7CgogICAgbXkgJUxhbmd1YWdlcyA9ICRGQVFPYmplY3QtPkxhbmd1YWdlTGlzdCgKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIERyb3AtZG93biBtZW51IGZvciAnbGFuZ3VhZ2VzJy4KICAgICRQYXJhbXtMYW5ndWFnZXNTZWxlY3Rpb25TdHJnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgPT4gXCVMYW5ndWFnZXMsCiAgICAgICAgTmFtZSAgICAgICA9PiAnTGFuZ3VhZ2VJRHMnLAogICAgICAgIFNpemUgICAgICAgPT4gNSwKICAgICAgICBNdWx0aXBsZSAgID0+IDEsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkR2V0UGFyYW17TGFuZ3VhZ2VJRHN9IHx8IFtdLAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwoKICAgICMgR2V0IGNhdGVnb3JpZXMgKHdpdGggY2F0ZWdvcnkgbG9uZyBuYW1lcykgd2hlcmUgdXNlciBoYXMgcmlnaHRzLgogICAgbXkgJFVzZXJDYXRlZ29yaWVzTG9uZ05hbWVzID0gJEZBUU9iamVjdC0+R2V0VXNlckNhdGVnb3JpZXNMb25nTmFtZXMoCiAgICAgICAgVHlwZSAgID0+ICdybycsCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBCdWlsZCB0aGUgY2F0ZWdvcnkgc2VsZWN0aW9uLgogICAgJFBhcmFte0NhdGVnb3JpZXNTZWxlY3Rpb25TdHJnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgID0+ICRVc2VyQ2F0ZWdvcmllc0xvbmdOYW1lcywKICAgICAgICBOYW1lICAgICAgICA9PiAnQ2F0ZWdvcnlJRHMnLAogICAgICAgIFNpemUgICAgICAgID0+IDUsCiAgICAgICAgU2VsZWN0ZWRJRCAgPT4gJEdldFBhcmFte0NhdGVnb3J5SURzfSB8fCBbXSwKICAgICAgICBUcmFuc2xhdGlvbiA9PiAwLAogICAgICAgIE11bHRpcGxlICAgID0+IDEsCiAgICAgICAgVHJlZVZpZXcgICAgPT4gJFRyZWVWaWV3LAogICAgICAgIENsYXNzICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKCiAgICBteSAlVmFsaWRMaXN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZhbGlkJyktPlZhbGlkTGlzdCgpOwoKICAgICMgQnVpbGQgdGhlIHZhbGlkIHNlbGVjdGlvbi4KICAgICRQYXJhbXtWYWxpZFNlbGVjdGlvblN0cmd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICAgPT4gXCVWYWxpZExpc3QsCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ1ZhbGlkSURzJywKICAgICAgICBTaXplICAgICAgICA9PiA1LAogICAgICAgIFNlbGVjdGVkSUQgID0+ICRHZXRQYXJhbXtWYWxpZElEc30gfHwgW10sCiAgICAgICAgVHJhbnNsYXRpb24gPT4gMCwKICAgICAgICBNdWx0aXBsZSAgICA9PiAxLAogICAgICAgIENsYXNzICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKCiAgICAjIENyZWF0ZSBhIG1peCBvZiBzdGF0ZSBhbmQgc3RhdGUgdHlwZXMgaGFzaCBpbiBvcmRlciB0byBoYXZlIHRoZSBzdGF0ZSB0eXBlIElEcyB3aXRoIHN0YXRlIG5hbWVzLgogICAgbXkgJVN0YXRlTGlzdCA9ICRGQVFPYmplY3QtPlN0YXRlTGlzdCgKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICBteSAlU3RhdGVzOwogICAgZm9yIG15ICRTdGF0ZUlEICggc29ydCBrZXlzICVTdGF0ZUxpc3QgKSB7CiAgICAgICAgbXkgJVN0YXRlRGF0YSA9ICRGQVFPYmplY3QtPlN0YXRlR2V0KAogICAgICAgICAgICBTdGF0ZUlEID0+ICRTdGF0ZUlELAogICAgICAgICAgICBVc2VySUQgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwogICAgICAgICRTdGF0ZXN7ICRTdGF0ZURhdGF7VHlwZUlEfSB9ID0gJFN0YXRlRGF0YXtOYW1lfTsKICAgIH0KCiAgICAkUGFyYW17U3RhdGVTZWxlY3Rpb25TdHJnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgID0+IFwlU3RhdGVzLAogICAgICAgIE5hbWUgICAgICAgID0+ICdTdGF0ZUlEcycsCiAgICAgICAgU2l6ZSAgICAgICAgPT4gMywKICAgICAgICBTZWxlY3RlZElEICA9PiAkR2V0UGFyYW17U3RhdGVJRHN9IHx8IFtdLAogICAgICAgIFRyYW5zbGF0aW9uID0+IDEsCiAgICAgICAgTXVsdGlwbGUgICAgPT4gMSwKICAgICAgICBDbGFzcyAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgbXkgJVZvdGluZ09wZXJhdG9ycyA9ICgKICAgICAgICBFcXVhbHMgICAgICAgICAgICA9PiBUcmFuc2xhdGFibGUoJ0VxdWFscycpLAogICAgICAgIEdyZWF0ZXJUaGFuICAgICAgID0+IFRyYW5zbGF0YWJsZSgnR3JlYXRlciB0aGFuJyksCiAgICAgICAgR3JlYXRlclRoYW5FcXVhbHMgPT4gVHJhbnNsYXRhYmxlKCdHcmVhdGVyIHRoYW4gZXF1YWxzJyksCiAgICAgICAgU21hbGxlclRoYW4gICAgICAgPT4gVHJhbnNsYXRhYmxlKCdTbWFsbGVyIHRoYW4nKSwKICAgICAgICBTbWFsbGVyVGhhbkVxdWFscyA9PiBUcmFuc2xhdGFibGUoJ1NtYWxsZXIgdGhhbiBlcXVhbHMnKSwKICAgICk7CgogICAgJFBhcmFte1ZvdGVTZWFyY2hUeXBlU2VsZWN0aW9uU3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgICA9PiBcJVZvdGluZ09wZXJhdG9ycywKICAgICAgICBOYW1lICAgICAgICA9PiAnVm90ZVNlYXJjaFR5cGUnLAogICAgICAgIFNpemUgICAgICAgID0+IDEsCiAgICAgICAgU2VsZWN0ZWRJRCAgPT4gJEdldFBhcmFte1ZvdGVTZWFyY2hUeXBlfSB8fCAnJywKICAgICAgICBUcmFuc2xhdGlvbiA9PiAxLAogICAgICAgIE11bHRpcGxlICAgID0+IDAsCiAgICAgICAgQ2xhc3MgICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwoKICAgICRQYXJhbXtSYXRlU2VhcmNoVHlwZVNlbGVjdGlvblN0cmd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICAgPT4gXCVWb3RpbmdPcGVyYXRvcnMsCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ1JhdGVTZWFyY2hUeXBlJywKICAgICAgICBTaXplICAgICAgICA9PiAxLAogICAgICAgIFNlbGVjdGVkSUQgID0+ICRHZXRQYXJhbXtSYXRlU2VhcmNoVHlwZX0gfHwgJycsCiAgICAgICAgVHJhbnNsYXRpb24gPT4gMSwKICAgICAgICBNdWx0aXBsZSAgICA9PiAwLAogICAgICAgIENsYXNzICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKICAgICRQYXJhbXtSYXRlU2VhcmNoU2VsZWN0aW9uU3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgMCAgID0+ICcwJScsCiAgICAgICAgICAgIDI1ICA9PiAnMjUlJywKICAgICAgICAgICAgNTAgID0+ICc1MCUnLAogICAgICAgICAgICA3NSAgPT4gJzc1JScsCiAgICAgICAgICAgIDEwMCA9PiAnMTAwJScsCiAgICAgICAgfSwKICAgICAgICBTb3J0ICAgICAgICA9PiAnTnVtZXJpY0tleScsCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ1JhdGVTZWFyY2gnLAogICAgICAgIFNpemUgICAgICAgID0+IDEsCiAgICAgICAgU2VsZWN0ZWRJRCAgPT4gJEdldFBhcmFte1JhdGVTZWFyY2h9IHx8ICcnLAogICAgICAgIFRyYW5zbGF0aW9uID0+IDAsCiAgICAgICAgTXVsdGlwbGUgICAgPT4gMCwKICAgICAgICBDbGFzcyAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgJFBhcmFte0FwcHJvdmVkU3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgTm8gID0+IFRyYW5zbGF0YWJsZSgnTm8nKSwKICAgICAgICAgICAgWWVzID0+IFRyYW5zbGF0YWJsZSgnWWVzJyksCiAgICAgICAgfSwKICAgICAgICBOYW1lICAgICAgICA9PiAnQXBwcm92ZWRTZWFyY2gnLAogICAgICAgIFNlbGVjdGVkSUQgID0+ICRHZXRQYXJhbXtBcHByb3ZlZFNlYXJjaH0gfHwgJ1llcycsCiAgICAgICAgTXVsdGlwbGUgICAgPT4gMCwKICAgICAgICBUcmFuc2xhdGlvbiA9PiAxLAogICAgICAgIENsYXNzICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKCiAgICAjIEdldCBhIGxpc3Qgb2YgYWxsIHVzZXJzIHRvIGRpc3BsYXkuCiAgICBteSAlU2hvd25Vc2VycyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPlVzZXJMaXN0KAogICAgICAgIFR5cGUgID0+ICdMb25nJywKICAgICAgICBWYWxpZCA9PiAxLAogICAgKTsKCiAgICBteSAkRnJvbnRlbmRDb25maWcgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0Zyb250ZW5kOjpNb2R1bGUnKTsKICAgIG15ICRGQVFBZGRHcm91cHMgICA9ICRGcm9udGVuZENvbmZpZy0+e0FnZW50RkFRQWRkfS0+e0dyb3VwfSB8fCBbXTsKCiAgICBteSAlRkFRQWRkVXNlcnMgPSAlU2hvd25Vc2VyczsKICAgIGlmICggSXNBcnJheVJlZldpdGhEYXRhKCRGQVFBZGRHcm91cHMpICkgewoKICAgICAgICBteSAlR3JvdXBVc2VyczsKICAgICAgICBmb3IgbXkgJEdyb3VwICggQHskRkFRQWRkR3JvdXBzfSApIHsKCiAgICAgICAgICAgIG15ICRHcm91cE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpOwoKICAgICAgICAgICAgbXkgJEdyb3VwSUQgPSAkR3JvdXBPYmplY3QtPkdyb3VwTG9va3VwKCBHcm91cCA9PiAkR3JvdXAgKTsKICAgICAgICAgICAgbXkgJVVzZXJzICAgPSAkR3JvdXBPYmplY3QtPkdyb3VwTWVtYmVyTGlzdCgKICAgICAgICAgICAgICAgIEdyb3VwSUQgPT4gJEdyb3VwSUQsCiAgICAgICAgICAgICAgICBUeXBlICAgID0+ICdydycsCiAgICAgICAgICAgICAgICBSZXN1bHQgID0+ICdIQVNIJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJUdyb3VwVXNlcnMgPSAoICVHcm91cFVzZXJzLCAlVXNlcnMgKTsKICAgICAgICB9CgogICAgICAgICMgUmVtb3ZlIGFsbCB1c2VycyB0aGF0IGFyZSBub3QgaW4gdGhlIEZBUSBvciBmYXFfYWRtaW4gZ3JvdXBzLgogICAgICAgIGZvciBteSAkVXNlcklEICggc29ydCBrZXlzICVGQVFBZGRVc2VycyApIHsKICAgICAgICAgICAgaWYgKCAhJEdyb3VwVXNlcnN7JFVzZXJJRH0gKSB7CiAgICAgICAgICAgICAgICBkZWxldGUgJEZBUUFkZFVzZXJzeyRVc2VySUR9OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgJFBhcmFte0NyZWF0ZWRVc2VyU3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgID0+IFwlRkFRQWRkVXNlcnMsCiAgICAgICAgTmFtZSAgICAgICA9PiAnQ3JlYXRlZFVzZXJJRHMnLAogICAgICAgIFNpemUgICAgICAgPT4gNSwKICAgICAgICBNdWx0aXBsZSAgID0+IDEsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkR2V0UGFyYW17Q3JlYXRlZFVzZXJJRHN9LAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwoKICAgIG15ICRGQVFFZGl0R3JvdXBzID0gJEZyb250ZW5kQ29uZmlnLT57QWdlbnRGQVFFZGl0fS0+e0dyb3VwfSB8fCBbXTsKCiAgICBteSAlRkFRRWRpdFVzZXJzID0gJVNob3duVXNlcnM7CiAgICBpZiAoIElzQXJyYXlSZWZXaXRoRGF0YSgkRkFRRWRpdEdyb3VwcykgKSB7CgogICAgICAgIG15ICVHcm91cFVzZXJzOwogICAgICAgIGZvciBteSAkR3JvdXAgKCBAeyRGQVFFZGl0R3JvdXBzfSApIHsKCiAgICAgICAgICAgIG15ICRHcm91cE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpOwoKICAgICAgICAgICAgbXkgJEdyb3VwSUQgPSAkR3JvdXBPYmplY3QtPkdyb3VwTG9va3VwKCBHcm91cCA9PiAkR3JvdXAgKTsKICAgICAgICAgICAgbXkgJVVzZXJzICAgPSAkR3JvdXBPYmplY3QtPkdyb3VwTWVtYmVyTGlzdCgKICAgICAgICAgICAgICAgIEdyb3VwSUQgPT4gJEdyb3VwSUQsCiAgICAgICAgICAgICAgICBUeXBlICAgID0+ICdydycsCiAgICAgICAgICAgICAgICBSZXN1bHQgID0+ICdIQVNIJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJUdyb3VwVXNlcnMgPSAoICVHcm91cFVzZXJzLCAlVXNlcnMgKTsKICAgICAgICB9CgogICAgICAgICMgUmVtb3ZlIGFsbCB1c2VycyB0aGF0IGFyZSBub3QgaW4gdGhlIEZBUSBvciBmYXFfYWRtaW4gZ3JvdXBzLgogICAgICAgIGZvciBteSAkVXNlcklEICggc29ydCBrZXlzICVGQVFFZGl0VXNlcnMgKSB7CiAgICAgICAgICAgIGlmICggISRHcm91cFVzZXJzeyRVc2VySUR9ICkgewogICAgICAgICAgICAgICAgZGVsZXRlICRGQVFFZGl0VXNlcnN7JFVzZXJJRH07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgJFBhcmFte0xhc3RDaGFuZ2VkVXNlclN0cmd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICA9PiBcJUZBUUVkaXRVc2VycywKICAgICAgICBOYW1lICAgICAgID0+ICdMYXN0Q2hhbmdlZFVzZXJJRHMnLAogICAgICAgIFNpemUgICAgICAgPT4gNSwKICAgICAgICBNdWx0aXBsZSAgID0+IDEsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkR2V0UGFyYW17TGFzdENoYW5nZWRVc2VySURzfSwKICAgICAgICBDbGFzcyAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKCiAgICAkUGFyYW17SXRlbUNyZWF0ZVRpbWVQb2ludFN0cmd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICA9PiBbIDEgLi4gNTkgXSwKICAgICAgICBOYW1lICAgICAgID0+ICdJdGVtQ3JlYXRlVGltZVBvaW50JywKICAgICAgICBTZWxlY3RlZElEID0+ICRHZXRQYXJhbXtJdGVtQ3JlYXRlVGltZVBvaW50fSwKICAgICk7CiAgICAkUGFyYW17SXRlbUNyZWF0ZVRpbWVQb2ludFN0YXJ0U3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgJ0xhc3QnICAgPT4gVHJhbnNsYXRhYmxlKCd3aXRoaW4gdGhlIGxhc3QgLi4uJyksCiAgICAgICAgICAgICdCZWZvcmUnID0+IFRyYW5zbGF0YWJsZSgnbW9yZSB0aGFuIC4uLiBhZ28nKSwKICAgICAgICB9LAogICAgICAgIE5hbWUgICAgICAgPT4gJ0l0ZW1DcmVhdGVUaW1lUG9pbnRTdGFydCcsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkR2V0UGFyYW17SXRlbUNyZWF0ZVRpbWVQb2ludFN0YXJ0fSB8fCAnTGFzdCcsCiAgICApOwogICAgJFBhcmFte0l0ZW1DcmVhdGVUaW1lUG9pbnRGb3JtYXRTdHJnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICBtaW51dGUgPT4gVHJhbnNsYXRhYmxlKCdtaW51dGUocyknKSwKICAgICAgICAgICAgaG91ciAgID0+IFRyYW5zbGF0YWJsZSgnaG91cihzKScpLAogICAgICAgICAgICBkYXkgICAgPT4gVHJhbnNsYXRhYmxlKCdkYXkocyknKSwKICAgICAgICAgICAgd2VlayAgID0+IFRyYW5zbGF0YWJsZSgnd2VlayhzKScpLAogICAgICAgICAgICBtb250aCAgPT4gVHJhbnNsYXRhYmxlKCdtb250aChzKScpLAogICAgICAgICAgICB5ZWFyICAgPT4gVHJhbnNsYXRhYmxlKCd5ZWFyKHMpJyksCiAgICAgICAgfSwKICAgICAgICBOYW1lICAgICAgID0+ICdJdGVtQ3JlYXRlVGltZVBvaW50Rm9ybWF0JywKICAgICAgICBTZWxlY3RlZElEID0+ICRHZXRQYXJhbXtJdGVtQ3JlYXRlVGltZVBvaW50Rm9ybWF0fSwKICAgICk7CiAgICAkUGFyYW17SXRlbUNyZWF0ZVRpbWVTdGFydFN0cmd9ID0gJExheW91dE9iamVjdC0+QnVpbGREYXRlU2VsZWN0aW9uKAogICAgICAgICVHZXRQYXJhbSwKICAgICAgICBQcmVmaXggICA9PiAnSXRlbUNyZWF0ZVRpbWVTdGFydCcsCiAgICAgICAgRm9ybWF0ICAgPT4gJ0RhdGVJbnB1dEZvcm1hdCcsCiAgICAgICAgRGlmZlRpbWUgPT4gLSggKCA2MCAqIDYwICogMjQgKSAqIDMwICksCiAgICApOwogICAgJFBhcmFte0l0ZW1DcmVhdGVUaW1lU3RvcFN0cmd9ID0gJExheW91dE9iamVjdC0+QnVpbGREYXRlU2VsZWN0aW9uKAogICAgICAgICVHZXRQYXJhbSwKICAgICAgICBQcmVmaXggPT4gJ0l0ZW1DcmVhdGVUaW1lU3RvcCcsCiAgICAgICAgRm9ybWF0ID0+ICdEYXRlSW5wdXRGb3JtYXQnLAogICAgKTsKCiAgICAkUGFyYW17SXRlbUNoYW5nZVRpbWVQb2ludFN0cmd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICA9PiBbIDEgLi4gNTkgXSwKICAgICAgICBOYW1lICAgICAgID0+ICdJdGVtQ2hhbmdlVGltZVBvaW50JywKICAgICAgICBTZWxlY3RlZElEID0+ICRHZXRQYXJhbXtJdGVtQ2hhbmdlVGltZVBvaW50fSwKICAgICk7CiAgICAkUGFyYW17SXRlbUNoYW5nZVRpbWVQb2ludFN0YXJ0U3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgJ0xhc3QnICAgPT4gVHJhbnNsYXRhYmxlKCd3aXRoaW4gdGhlIGxhc3QgLi4uJyksCiAgICAgICAgICAgICdCZWZvcmUnID0+IFRyYW5zbGF0YWJsZSgnbW9yZSB0aGFuIC4uLiBhZ28nKSwKICAgICAgICB9LAogICAgICAgIE5hbWUgICAgICAgPT4gJ0l0ZW1DaGFuZ2VUaW1lUG9pbnRTdGFydCcsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkR2V0UGFyYW17SXRlbUNoYW5nZVRpbWVQb2ludFN0YXJ0fSB8fCAnTGFzdCcsCiAgICApOwogICAgJFBhcmFte0l0ZW1DaGFuZ2VUaW1lUG9pbnRGb3JtYXRTdHJnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICBtaW51dGUgPT4gVHJhbnNsYXRhYmxlKCdtaW51dGUocyknKSwKICAgICAgICAgICAgaG91ciAgID0+IFRyYW5zbGF0YWJsZSgnaG91cihzKScpLAogICAgICAgICAgICBkYXkgICAgPT4gVHJhbnNsYXRhYmxlKCdkYXkocyknKSwKICAgICAgICAgICAgd2VlayAgID0+IFRyYW5zbGF0YWJsZSgnd2VlayhzKScpLAogICAgICAgICAgICBtb250aCAgPT4gVHJhbnNsYXRhYmxlKCdtb250aChzKScpLAogICAgICAgICAgICB5ZWFyICAgPT4gVHJhbnNsYXRhYmxlKCd5ZWFyKHMpJyksCiAgICAgICAgfSwKICAgICAgICBOYW1lICAgICAgID0+ICdJdGVtQ2hhbmdlVGltZVBvaW50Rm9ybWF0JywKICAgICAgICBTZWxlY3RlZElEID0+ICRHZXRQYXJhbXtJdGVtQ2hhbmdlVGltZVBvaW50Rm9ybWF0fSwKICAgICk7CiAgICAkUGFyYW17SXRlbUNoYW5nZVRpbWVTdGFydFN0cmd9ID0gJExheW91dE9iamVjdC0+QnVpbGREYXRlU2VsZWN0aW9uKAogICAgICAgICVHZXRQYXJhbSwKICAgICAgICBQcmVmaXggICA9PiAnSXRlbUNoYW5nZVRpbWVTdGFydCcsCiAgICAgICAgRm9ybWF0ICAgPT4gJ0RhdGVJbnB1dEZvcm1hdCcsCiAgICAgICAgRGlmZlRpbWUgPT4gLSggKCA2MCAqIDYwICogMjQgKSAqIDMwICksCiAgICApOwogICAgJFBhcmFte0l0ZW1DaGFuZ2VUaW1lU3RvcFN0cmd9ID0gJExheW91dE9iamVjdC0+QnVpbGREYXRlU2VsZWN0aW9uKAogICAgICAgICVHZXRQYXJhbSwKICAgICAgICBQcmVmaXggPT4gJ0l0ZW1DaGFuZ2VUaW1lU3RvcCcsCiAgICAgICAgRm9ybWF0ID0+ICdEYXRlSW5wdXRGb3JtYXQnLAogICAgKTsKCiAgICBteSAlUHJvZmlsZXMgPSAkU2VhcmNoUHJvZmlsZU9iamVjdC0+U2VhcmNoUHJvZmlsZUxpc3QoCiAgICAgICAgQmFzZSAgICAgID0+ICdGQVFTZWFyY2gnLAogICAgICAgIFVzZXJMb2dpbiA9PiAkU2VsZi0+e1VzZXJMb2dpbn0sCiAgICApOwogICAgZGVsZXRlICRQcm9maWxlc3snJ307CiAgICBkZWxldGUgJFByb2ZpbGVzeydsYXN0LXNlYXJjaCd9OwogICAgaWYgKCRFbXB0eVNlYXJjaCkgewogICAgICAgICRQcm9maWxlc3snJ30gPSAnLSc7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkUHJvZmlsZXN7J2xhc3Qtc2VhcmNoJ30gPSAnLSc7CiAgICB9CiAgICAkUGFyYW17UHJvZmlsZXNTdHJnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgPT4gXCVQcm9maWxlcywKICAgICAgICBOYW1lICAgICAgID0+ICdQcm9maWxlJywKICAgICAgICBJRCAgICAgICAgID0+ICdTZWFyY2hQcm9maWxlJywKICAgICAgICBTZWxlY3RlZElEID0+ICRQcm9maWxlLAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwoKICAgICRQYXJhbXtSZXN1bHRGb3JtU3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgTm9ybWFsID0+IFRyYW5zbGF0YWJsZSgnTm9ybWFsJyksCiAgICAgICAgICAgIFByaW50ICA9PiBUcmFuc2xhdGFibGUoJ1ByaW50JyksCiAgICAgICAgICAgIENTViAgICA9PiBUcmFuc2xhdGFibGUoJ0NTVicpLAogICAgICAgICAgICBFeGNlbCAgPT4gVHJhbnNsYXRhYmxlKCdFeGNlbCcpLAogICAgICAgIH0sCiAgICAgICAgTmFtZSAgICAgICA9PiAnUmVzdWx0Rm9ybScsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkR2V0UGFyYW17UmVzdWx0Rm9ybX0gfHwgJ05vcm1hbCcsCiAgICAgICAgQ2xhc3MgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnU2VhcmNoQUpBWCcsCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICBFbXB0eVNlYXJjaCA9PiAkRW1wdHlTZWFyY2gsCiAgICAgICAgfSwKICAgICk7CgogICAgIyBPdXRwdXQgRHluYW1pYyBmaWVsZHMgYmxvY2tzLgogICAgRFlOQU1JQ0ZJRUxEOgogICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gfSApIHsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CgogICAgICAgICMgR2V0IHNlYXJjaCBmaWVsZCBwcmVmZXJlbmNlcy4KICAgICAgICBteSAkU2VhcmNoRmllbGRQcmVmZXJlbmNlcyA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5TZWFyY2hGaWVsZFByZWZlcmVuY2VzKAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICApOwoKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNBcnJheVJlZldpdGhEYXRhKCRTZWFyY2hGaWVsZFByZWZlcmVuY2VzKTsKCiAgICAgICAgUFJFRkVSRU5DRToKICAgICAgICBmb3IgbXkgJFByZWZlcmVuY2UgKCBAeyRTZWFyY2hGaWVsZFByZWZlcmVuY2VzfSApIHsKCiAgICAgICAgICAgICMgc2tpcCBmaWVsZHMgdGhhdCBIVE1MIGNvdWxkIG5vdCBiZSByZXRyaWV2ZWQKICAgICAgICAgICAgbmV4dCBQUkVGRVJFTkNFIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgKICAgICAgICAgICAgICAgICREeW5hbWljRmllbGRIVE1MeyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gLiAkUHJlZmVyZW5jZS0+e1R5cGV9IH0KICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnRHluYW1pY0ZpZWxkJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgIExhYmVsID0+CiAgICAgICAgICAgICAgICAgICAgICAgICREeW5hbWljRmllbGRIVE1MeyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gLiAkUHJlZmVyZW5jZS0+e1R5cGV9IH0KICAgICAgICAgICAgICAgICAgICAgICAgLT57TGFiZWx9LAogICAgICAgICAgICAgICAgICAgIEZpZWxkID0+CiAgICAgICAgICAgICAgICAgICAgICAgICREeW5hbWljRmllbGRIVE1MeyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gLiAkUHJlZmVyZW5jZS0+e1R5cGV9IH0KICAgICAgICAgICAgICAgICAgICAgICAgLT57RmllbGR9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBTaG93IGF0dHJpYnV0ZXMuCiAgICBteSBAU2VhcmNoQXR0cmlidXRlczsKICAgIG15ICVBbHJlYWR5U2hvd247CiAgICBpZiAoJFByb2ZpbGUpIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgICAgIEtleSAgID0+ICdGQVFTZWFyY2hQcm9maWxlJywKICAgICAgICAgICAgVmFsdWUgPT4gJFByb2ZpbGUsCiAgICAgICAgKTsKICAgIH0KCiAgICBJVEVNOgogICAgZm9yIG15ICRJdGVtIChAQXR0cmlidXRlcykgewogICAgICAgIG15ICRLZXkgPSAkSXRlbS0+e0tleX07CiAgICAgICAgbmV4dCBJVEVNIGlmICEkS2V5OwogICAgICAgIG5leHQgSVRFTSBpZiAhZGVmaW5lZCAkR2V0UGFyYW17JEtleX07CiAgICAgICAgbmV4dCBJVEVNIGlmICRHZXRQYXJhbXskS2V5fSBlcSAnJzsKCiAgICAgICAgbmV4dCBJVEVNIGlmICRBbHJlYWR5U2hvd257JEtleX07CiAgICAgICAgJEFscmVhZHlTaG93bnskS2V5fSA9IDE7CiAgICAgICAgcHVzaCBAU2VhcmNoQXR0cmlidXRlcywgJEtleTsKICAgIH0KCiAgICAjIGlmIG5vIGF0dHJpYnV0ZSBpcyBzaG93biwgc2hvdyBmdWxsLXRleHQgc2VhcmNoLgogICAgaWYgKCAhJFByb2ZpbGUgKSB7CgogICAgICAgICMgTWVyZ2UgcmVndWxhciBzaG93L2hpZGUgc2V0dGluZ3MgYW5kIHRoZSBzZXR0aW5ncyBmb3IgdGhlIGR5bmFtaWMgZmllbGRzLgogICAgICAgIG15ICVEZWZhdWx0cyA9ICV7ICRDb25maWctPntEZWZhdWx0c30gfHwge30gfTsKCiAgICAgICAgZGVsZXRlICREZWZhdWx0c3tEeW5hbWljRmllbGR9OwoKICAgICAgICBmb3IgbXkgJER5bmFtaWNGaWVsZEl0ZW0gKCBzb3J0IGtleXMgJXsgJENvbmZpZy0+e0R5bmFtaWNGaWVsZH0gfHwge30gfSApIHsKICAgICAgICAgICAgaWYgKCAkQ29uZmlnLT57RHluYW1pY0ZpZWxkfS0+eyREeW5hbWljRmllbGRJdGVtfSA9PSAyICkgewogICAgICAgICAgICAgICAgJERlZmF1bHRzeyJTZWFyY2hfRHluYW1pY0ZpZWxkXyREeW5hbWljRmllbGRJdGVtIn0gPSAxOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoJURlZmF1bHRzKSB7CiAgICAgICAgICAgIERFRkFVTFQ6CiAgICAgICAgICAgIGZvciBteSAkS2V5ICggc29ydCBrZXlzICVEZWZhdWx0cyApIHsKICAgICAgICAgICAgICAgIG5leHQgREVGQVVMVCBpZiAkS2V5IGVxICdEeW5hbWljRmllbGQnOyAgICAjIGlnbm9yZSBlbnRyeSBmb3IgREYgY29uZmlnCiAgICAgICAgICAgICAgICBuZXh0IERFRkFVTFQgaWYgJEFscmVhZHlTaG93bnskS2V5fTsKICAgICAgICAgICAgICAgICRBbHJlYWR5U2hvd257JEtleX0gPSAxOwogICAgICAgICAgICAgICAgcHVzaCBAU2VhcmNoQXR0cmlidXRlcywgJEtleTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgSWYgbm8gYXR0cmlidXRlIGlzIHNob3duLCBzaG93IGZ1bGwtdGV4dCBzZWFyY2guCiAgICAgICAgICAgIGlmICggIWtleXMgJUFscmVhZHlTaG93biApIHsKICAgICAgICAgICAgICAgIHB1c2ggQFNlYXJjaEF0dHJpYnV0ZXMsICdGdWxsdGV4dCc7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgJExheW91dE9iamVjdC0+QWRkSlNEYXRhKAogICAgICAgIEtleSAgID0+ICdTZWFyY2hBdHRyaWJ1dGVzJywKICAgICAgICBWYWx1ZSA9PiBcQFNlYXJjaEF0dHJpYnV0ZXMsCiAgICApOwoKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudEZBUVNlYXJjaCcsCiAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgQUpBWCAgICAgICAgID0+IDEsCiAgICApOwogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCjE7Cg==</File>
        <File Location="Kernel/Modules/AgentFAQSearchSmall.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWdlbnRGQVFTZWFyY2hTbWFsbDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6Okxhbmd1YWdlICAgICAgICAgICAgICBxdyhUcmFuc2xhdGFibGUpOwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBBbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0LgogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIEdldCBjb25maWcgZm9yIGZyb250ZW5kLgogICAgJFNlbGYtPntDb25maWd9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCJGQVE6OkZyb250ZW5kOjpBZ2VudEZBUVNlYXJjaCIpOwoKICAgICMgR2V0IHRoZSBkeW5hbWljIGZpZWxkcyBmb3IgRkFRIG9iamVjdC4KICAgICRTZWxmLT57RHluYW1pY0ZpZWxkfSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKS0+RHluYW1pY0ZpZWxkTGlzdEdldCgKICAgICAgICBWYWxpZCAgICAgICA9PiAxLAogICAgICAgIE9iamVjdFR5cGUgID0+ICdGQVEnLAogICAgICAgIEZpZWxkRmlsdGVyID0+ICRTZWxmLT57Q29uZmlnfS0+e0R5bmFtaWNGaWVsZH0gfHwge30sCiAgICApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRPdXRwdXQ7CgogICAgbXkgJFBhcmFtT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwoKICAgICMgR2V0IGNvbmZpZyBmcm9tIGNvbnN0cnVjdG9yLgogICAgbXkgJENvbmZpZyA9ICRTZWxmLT57Q29uZmlnfTsKCiAgICAjIEdldCBjb25maWcgZGF0YS4KICAgIG15ICRTdGFydEhpdCAgICA9IGludCggJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1N0YXJ0SGl0JyApIHx8IDEgKTsKICAgIG15ICRTZWFyY2hMaW1pdCA9ICRDb25maWctPntTZWFyY2hMaW1pdH0gfHwgNTAwOwogICAgbXkgJFNvcnRCeSAgICAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1NvcnRCeScgKQogICAgICAgIHx8ICRDb25maWctPnsnU29ydEJ5OjpEZWZhdWx0J30KICAgICAgICB8fCAnRkFRSUQnOwogICAgbXkgJE9yZGVyQnkgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnT3JkZXJCeScgKQogICAgICAgIHx8ICRDb25maWctPnsnT3JkZXI6OkRlZmF1bHQnfQogICAgICAgIHx8ICdEb3duJzsKICAgIG15ICRQcm9maWxlICAgICAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdQcm9maWxlJyApICAgICAgICB8fCAnJzsKICAgIG15ICRTYXZlUHJvZmlsZSAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdTYXZlUHJvZmlsZScgKSAgICB8fCAnJzsKICAgIG15ICRUYWtlTGFzdFNlYXJjaCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdUYWtlTGFzdFNlYXJjaCcgKSB8fCAnJzsKICAgIG15ICRFcmFzZVRlbXBsYXRlICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdFcmFzZVRlbXBsYXRlJyApICB8fCAnJzsKICAgIG15ICROYXYgICAgICAgICAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdOYXYnICkgICAgICAgICAgICB8fCAnJzsKCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgU2VhcmNoIHdpdGggYSBzYXZlZCB0ZW1wbGF0ZS4KICAgIGlmICggJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1NlYXJjaFRlbXBsYXRlJyApICYmICRQcm9maWxlICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgT1AgPT4KICAgICAgICAgICAgICAgICJBY3Rpb249QWdlbnRGQVFTZWFyY2hTbWFsbDtTdWJhY3Rpb249U2VhcmNoO1Rha2VMYXN0U2VhcmNoPTE7U2F2ZVByb2ZpbGU9MTtQcm9maWxlPSRQcm9maWxlO05hdj0kTmF2IgogICAgICAgICk7CiAgICB9CgogICAgIyBHZXQgc2luZ2xlIHBhcmFtcy4KICAgIG15ICVHZXRQYXJhbTsKCiAgICBteSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKTsKICAgIG15ICRTZWFyY2hQcm9maWxlT2JqZWN0ICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlNlYXJjaFByb2ZpbGUnKTsKCiAgICAjIExvYWQgcHJvZmlsZXMgc3RyaW5nIHBhcmFtcyAocHJlc3MgbG9hZCBwcm9maWxlKS4KICAgIGlmICggKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0xvYWRQcm9maWxlJyAmJiAkUHJvZmlsZSApIHx8ICRUYWtlTGFzdFNlYXJjaCApIHsKICAgICAgICAlR2V0UGFyYW0gPSAkU2VhcmNoUHJvZmlsZU9iamVjdC0+U2VhcmNoUHJvZmlsZUdldCgKICAgICAgICAgICAgQmFzZSAgICAgID0+ICdGQVFTZWFyY2gnLAogICAgICAgICAgICBOYW1lICAgICAgPT4gJFByb2ZpbGUsCiAgICAgICAgICAgIFVzZXJMb2dpbiA9PiAkU2VsZi0+e1VzZXJMb2dpbn0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIEdldCBzZWFyY2ggc3RyaW5nIHBhcmFtZXRlcnMgKGdldCBzdWJtaXR0ZWQgcGFyYW1zKS4KICAgIGVsc2UgewoKICAgICAgICAjIEdldCBzY2FsYXIgc2VhcmNoIHBhcmFtZXRlcnMgZnJvbSB3ZWIgcmVxdWVzdC4KICAgICAgICBmb3IgbXkgJFBhcmFtTmFtZSAoCiAgICAgICAgICAgIHF3KE51bWJlciBUaXRsZSBLZXl3b3JkIEZ1bGx0ZXh0IFJlc3VsdEZvcm0gVm90ZVNlYXJjaCBWb3RlU2VhcmNoVHlwZSBWb3RlU2VhcmNoT3B0aW9uCiAgICAgICAgICAgIFJhdGVTZWFyY2ggUmF0ZVNlYXJjaFR5cGUgUmF0ZVNlYXJjaE9wdGlvbiBBcHByb3ZlZFNlYXJjaAogICAgICAgICAgICBUaW1lU2VhcmNoVHlwZSBDaGFuZ2VUaW1lU2VhcmNoVHlwZQogICAgICAgICAgICBJdGVtQ3JlYXRlVGltZVBvaW50Rm9ybWF0IEl0ZW1DcmVhdGVUaW1lUG9pbnQKICAgICAgICAgICAgSXRlbUNyZWF0ZVRpbWVQb2ludFN0YXJ0CiAgICAgICAgICAgIEl0ZW1DcmVhdGVUaW1lU3RhcnQgSXRlbUNyZWF0ZVRpbWVTdGFydERheSBJdGVtQ3JlYXRlVGltZVN0YXJ0TW9udGgKICAgICAgICAgICAgSXRlbUNyZWF0ZVRpbWVTdGFydFllYXIKICAgICAgICAgICAgSXRlbUNyZWF0ZVRpbWVTdG9wIEl0ZW1DcmVhdGVUaW1lU3RvcERheSBJdGVtQ3JlYXRlVGltZVN0b3BNb250aAogICAgICAgICAgICBJdGVtQ3JlYXRlVGltZVN0b3BZZWFyCiAgICAgICAgICAgIEl0ZW1DaGFuZ2VUaW1lUG9pbnRGb3JtYXQgSXRlbUNoYW5nZVRpbWVQb2ludAogICAgICAgICAgICBJdGVtQ2hhbmdlVGltZVBvaW50U3RhcnQKICAgICAgICAgICAgSXRlbUNoYW5nZVRpbWVTdGFydCBJdGVtQ2hhbmdlVGltZVN0YXJ0RGF5IEl0ZW1DaGFuZ2VUaW1lU3RhcnRNb250aAogICAgICAgICAgICBJdGVtQ2hhbmdlVGltZVN0YXJ0WWVhcgogICAgICAgICAgICBJdGVtQ2hhbmdlVGltZVN0b3AgSXRlbUNoYW5nZVRpbWVTdG9wRGF5IEl0ZW1DaGFuZ2VUaW1lU3RvcE1vbnRoCiAgICAgICAgICAgIEl0ZW1DaGFuZ2VUaW1lU3RvcFllYXIKICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkR2V0UGFyYW17JFBhcmFtTmFtZX0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1OYW1lICk7CgogICAgICAgICAgICAjIFJlbW92ZSB3aGl0ZXNwYWNlIG9uIHRoZSBzdGFydCBhbmQgZW5kLgogICAgICAgICAgICBpZiAoICRHZXRQYXJhbXskUGFyYW1OYW1lfSApIHsKICAgICAgICAgICAgICAgICRHZXRQYXJhbXskUGFyYW1OYW1lfSA9fiBzeyBcQSBccysgfXt9eG1zOwogICAgICAgICAgICAgICAgJEdldFBhcmFteyRQYXJhbU5hbWV9ID1+IHN7IFxzKyBceiB9e314bXM7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgR2V0IGFycmF5IHNlYXJjaCBwYXJhbWV0ZXJzIGZyb20gd2ViIHJlcXVlc3QuCiAgICAgICAgZm9yIG15ICRTZWFyY2hQYXJhbSAoCiAgICAgICAgICAgIHF3KENhdGVnb3J5SURzIExhbmd1YWdlSURzIFZhbGlkSURzIFN0YXRlSURzIENyZWF0ZWRVc2VySURzIExhc3RDaGFuZ2VkVXNlcklEcykKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgbXkgQEFycmF5ID0gJFBhcmFtT2JqZWN0LT5HZXRBcnJheSggUGFyYW0gPT4gJFNlYXJjaFBhcmFtICk7CiAgICAgICAgICAgIGlmIChAQXJyYXkpIHsKICAgICAgICAgICAgICAgICRHZXRQYXJhbXskU2VhcmNoUGFyYW19ID0gXEBBcnJheTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBHZXQgRHluYW1pYyBmaWVsZHMgZnJvbSBwYXJhbSBvYmplY3QuCiAgICAgICAgRFlOQU1JQ0ZJRUxEOgogICAgICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHsgJFNlbGYtPntEeW5hbWljRmllbGR9IH0gKSB7CiAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKCiAgICAgICAgICAgICMgR2V0IHNlYXJjaCBmaWVsZCBwcmVmZXJlbmNlcy4KICAgICAgICAgICAgbXkgJFNlYXJjaEZpZWxkUHJlZmVyZW5jZXMgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+U2VhcmNoRmllbGRQcmVmZXJlbmNlcygKICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzQXJyYXlSZWZXaXRoRGF0YSgkU2VhcmNoRmllbGRQcmVmZXJlbmNlcyk7CgogICAgICAgICAgICBQUkVGRVJFTkNFOgogICAgICAgICAgICBmb3IgbXkgJFByZWZlcmVuY2UgKCBAeyRTZWFyY2hGaWVsZFByZWZlcmVuY2VzfSApIHsKCiAgICAgICAgICAgICAgICAjIEV4dHJhY3QgdGhlIGR5bmFtaWMgZmllbGQgdmFsdWUgZnJvbSB0aGUgd2ViIHJlcXVlc3QuCiAgICAgICAgICAgICAgICBteSAkRHluYW1pY0ZpZWxkVmFsdWUgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+U2VhcmNoRmllbGRWYWx1ZUdldCgKICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgICAgID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICAgICAgICAgUGFyYW1PYmplY3QgICAgICAgICAgICA9PiAkUGFyYW1PYmplY3QsCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuUHJvZmlsZVN0cnVjdHVyZSA9PiAxLAogICAgICAgICAgICAgICAgICAgIExheW91dE9iamVjdCAgICAgICAgICAgPT4gJExheW91dE9iamVjdCwKICAgICAgICAgICAgICAgICAgICBUeXBlICAgICAgICAgICAgICAgICAgID0+ICRQcmVmZXJlbmNlLT57VHlwZX0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgU2V0IHRoZSBjb21wbGV0ZSB2YWx1ZSBzdHJ1Y3R1cmUgaW4gR2V0UGFyYW0gdG8gc3RvcmUgaXQgbGF0ZXIgaW4gdGhlIHNlYXJjaCBwcm9maWxlLgogICAgICAgICAgICAgICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkVmFsdWUpICkgewogICAgICAgICAgICAgICAgICAgICVHZXRQYXJhbSA9ICggJUdldFBhcmFtLCAleyREeW5hbWljRmllbGRWYWx1ZX0gKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIEdldCBhcHByb3ZlZCBvcHRpb24uCiAgICBpZiAoICRHZXRQYXJhbXtBcHByb3ZlZFNlYXJjaH0gJiYgJEdldFBhcmFte0FwcHJvdmVkU2VhcmNofSBlcSAnWWVzJyApIHsKICAgICAgICAkR2V0UGFyYW17QXBwcm92ZWR9ID0gMTsKICAgIH0KICAgIGVsc2lmICggJEdldFBhcmFte0FwcHJvdmVkU2VhcmNofSAmJiAkR2V0UGFyYW17QXBwcm92ZWRTZWFyY2h9IGVxICdObycgKSB7CiAgICAgICAgJEdldFBhcmFte0FwcHJvdmVkfSA9IDA7CiAgICB9CgogICAgIyBHZXQgdm90ZSBvcHRpb24uCiAgICBpZiAoICEkR2V0UGFyYW17Vm90ZVNlYXJjaE9wdGlvbn0gKSB7CiAgICAgICAgJEdldFBhcmFteydWb3RlU2VhcmNoT3B0aW9uOjpOb25lJ30gPSAnY2hlY2tlZD0iY2hlY2tlZCInOwogICAgfQogICAgZWxzaWYgKCAkR2V0UGFyYW17Vm90ZVNlYXJjaE9wdGlvbn0gZXEgJ1ZvdGVQb2ludCcgKSB7CiAgICAgICAgJEdldFBhcmFteydWb3RlU2VhcmNoT3B0aW9uOjpWb3RlUG9pbnQnfSA9ICdjaGVja2VkPSJjaGVja2VkIic7CiAgICB9CgogICAgIyBHZXQgcmF0ZSBvcHRpb24uCiAgICBpZiAoICEkR2V0UGFyYW17UmF0ZVNlYXJjaE9wdGlvbn0gKSB7CiAgICAgICAgJEdldFBhcmFteydSYXRlU2VhcmNoT3B0aW9uOjpOb25lJ30gPSAnY2hlY2tlZD0iY2hlY2tlZCInOwogICAgfQogICAgZWxzaWYgKCAkR2V0UGFyYW17UmF0ZVNlYXJjaE9wdGlvbn0gZXEgJ1JhdGVQb2ludCcgKSB7CiAgICAgICAgJEdldFBhcmFteydSYXRlU2VhcmNoT3B0aW9uOjpSYXRlUG9pbnQnfSA9ICdjaGVja2VkPSJjaGVja2VkIic7CiAgICB9CgogICAgIyBHZXQgY3JlYXRlIHRpbWUgb3B0aW9uLgogICAgaWYgKCAhJEdldFBhcmFte1RpbWVTZWFyY2hUeXBlfSApIHsKICAgICAgICAkR2V0UGFyYW17J1RpbWVTZWFyY2hUeXBlOjpOb25lJ30gPSAnY2hlY2tlZD0iY2hlY2tlZCInOwogICAgfQogICAgZWxzaWYgKCAkR2V0UGFyYW17VGltZVNlYXJjaFR5cGV9IGVxICdUaW1lUG9pbnQnICkgewogICAgICAgICRHZXRQYXJhbXsnVGltZVNlYXJjaFR5cGU6OlRpbWVQb2ludCd9ID0gJ2NoZWNrZWQ9ImNoZWNrZWQiJzsKICAgIH0KICAgIGVsc2lmICggJEdldFBhcmFte1RpbWVTZWFyY2hUeXBlfSBlcSAnVGltZVNsb3QnICkgewogICAgICAgICRHZXRQYXJhbXsnVGltZVNlYXJjaFR5cGU6OlRpbWVTbG90J30gPSAnY2hlY2tlZD0iY2hlY2tlZCInOwogICAgfQoKICAgICMgR2V0IGNoYW5nZSB0aW1lIG9wdGlvbi4KICAgIGlmICggISRHZXRQYXJhbXtDaGFuZ2VUaW1lU2VhcmNoVHlwZX0gKSB7CiAgICAgICAgJEdldFBhcmFteydDaGFuZ2VUaW1lU2VhcmNoVHlwZTo6Tm9uZSd9ID0gJ2NoZWNrZWQ9ImNoZWNrZWQiJzsKICAgIH0KICAgIGVsc2lmICggJEdldFBhcmFte0NoYW5nZVRpbWVTZWFyY2hUeXBlfSBlcSAnVGltZVBvaW50JyApIHsKICAgICAgICAkR2V0UGFyYW17J0NoYW5nZVRpbWVTZWFyY2hUeXBlOjpUaW1lUG9pbnQnfSA9ICdjaGVja2VkPSJjaGVja2VkIic7CiAgICB9CiAgICBlbHNpZiAoICRHZXRQYXJhbXtDaGFuZ2VUaW1lU2VhcmNoVHlwZX0gZXEgJ1RpbWVTbG90JyApIHsKICAgICAgICAkR2V0UGFyYW17J0NoYW5nZVRpbWVTZWFyY2hUeXBlOjpUaW1lU2xvdCd9ID0gJ2NoZWNrZWQ9ImNoZWNrZWQiJzsKICAgIH0KCiAgICAjIFNldCByZXN1bHQgZm9ybSBFTlYuCiAgICBpZiAoICEkR2V0UGFyYW17UmVzdWx0Rm9ybX0gKSB7CiAgICAgICAgJEdldFBhcmFte1Jlc3VsdEZvcm19ID0gJyc7CiAgICB9CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBTaG93IHJlc3VsdCBzaXRlLgogICAgaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ1NlYXJjaCcgJiYgISRFcmFzZVRlbXBsYXRlICkgewoKICAgICAgICAjIEZpbGwgdXAgcHJvZmlsZSBuYW1lIChlLmcuIHdpdGggbGFzdC1zZWFyY2gpLgogICAgICAgIGlmICggISRQcm9maWxlIHx8ICEkU2F2ZVByb2ZpbGUgKSB7CiAgICAgICAgICAgICRQcm9maWxlID0gJ2xhc3Qtc2VhcmNoJzsKICAgICAgICB9CgogICAgICAgIG15ICRTZXNzaW9uT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkF1dGhTZXNzaW9uJyk7CgogICAgICAgICMgU3RvcmUgbGFzdCBvdmVydmlldyBzY3JlZW4uCiAgICAgICAgbXkgJFVSTCA9ICJBY3Rpb249QWdlbnRGQVFTZWFyY2hTbWFsbDtTdWJhY3Rpb249U2VhcmNoIgogICAgICAgICAgICAuICI7UHJvZmlsZT0iIC4gJExheW91dE9iamVjdC0+TGlua0VuY29kZSgkUHJvZmlsZSkKICAgICAgICAgICAgLiAiO1NvcnRCeT0iIC4gJExheW91dE9iamVjdC0+TGlua0VuY29kZSgkU29ydEJ5KQogICAgICAgICAgICAuICI7T3JkZXJCeT0iIC4gJExheW91dE9iamVjdC0+TGlua0VuY29kZSgkT3JkZXJCeSkKICAgICAgICAgICAgLiAiO1Rha2VMYXN0U2VhcmNoPTEiCiAgICAgICAgICAgIC4gIjtTdGFydEhpdD0iIC4gJExheW91dE9iamVjdC0+TGlua0VuY29kZSgkU3RhcnRIaXQpCiAgICAgICAgICAgIC4gIjtOYXY9JE5hdiI7CgogICAgICAgICRTZXNzaW9uT2JqZWN0LT5VcGRhdGVTZXNzaW9uSUQoCiAgICAgICAgICAgIFNlc3Npb25JRCA9PiAkU2VsZi0+e1Nlc3Npb25JRH0sCiAgICAgICAgICAgIEtleSAgICAgICA9PiAnTGFzdFNjcmVlbk92ZXJ2aWV3JywKICAgICAgICAgICAgVmFsdWUgICAgID0+ICRVUkwsCiAgICAgICAgKTsKICAgICAgICAkU2Vzc2lvbk9iamVjdC0+VXBkYXRlU2Vzc2lvbklEKAogICAgICAgICAgICBTZXNzaW9uSUQgPT4gJFNlbGYtPntTZXNzaW9uSUR9LAogICAgICAgICAgICBLZXkgICAgICAgPT4gJ0xhc3RTY3JlZW5WaWV3JywKICAgICAgICAgICAgVmFsdWUgICAgID0+ICRVUkwsCiAgICAgICAgKTsKCiAgICAgICAgIyBTYXZlIHNlYXJjaCBwcm9maWxlICh1bmRlciBsYXN0LXNlYXJjaCBvciByZWFsIHByb2ZpbGUgbmFtZSkuCiAgICAgICAgJFNhdmVQcm9maWxlID0gMTsKCiAgICAgICAgIyBSZW1lbWJlciBsYXN0IHNlYXJjaCB2YWx1ZXMuCiAgICAgICAgaWYgKCAkU2F2ZVByb2ZpbGUgJiYgJFByb2ZpbGUgKSB7CgogICAgICAgICAgICAjIFJlbW92ZSBvbGQgcHJvZmlsZSBzdHVmZi4KICAgICAgICAgICAgJFNlYXJjaFByb2ZpbGVPYmplY3QtPlNlYXJjaFByb2ZpbGVEZWxldGUoCiAgICAgICAgICAgICAgICBCYXNlICAgICAgPT4gJ0ZBUVNlYXJjaCcsCiAgICAgICAgICAgICAgICBOYW1lICAgICAgPT4gJFByb2ZpbGUsCiAgICAgICAgICAgICAgICBVc2VyTG9naW4gPT4gJFNlbGYtPntVc2VyTG9naW59LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBJbnNlcnQgbmV3IHByb2ZpbGUgcGFyYW1ldGVycy4KICAgICAgICAgICAgZm9yIG15ICRLZXkgKCBzb3J0IGtleXMgJUdldFBhcmFtICkgewogICAgICAgICAgICAgICAgaWYgKCAkR2V0UGFyYW17JEtleX0gKSB7CiAgICAgICAgICAgICAgICAgICAgJFNlYXJjaFByb2ZpbGVPYmplY3QtPlNlYXJjaFByb2ZpbGVBZGQoCiAgICAgICAgICAgICAgICAgICAgICAgIEJhc2UgICAgICA9PiAnRkFRU2VhcmNoJywKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgID0+ICRQcm9maWxlLAogICAgICAgICAgICAgICAgICAgICAgICBLZXkgICAgICAgPT4gJEtleSwKICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWUgICAgID0+ICRHZXRQYXJhbXskS2V5fSwKICAgICAgICAgICAgICAgICAgICAgICAgVXNlckxvZ2luID0+ICRTZWxmLT57VXNlckxvZ2lufSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIFByZXBhcmUgdm90ZXMgc2VhcmNoLgogICAgICAgIGlmICggSXNOdW1iZXIoICRHZXRQYXJhbXtWb3RlU2VhcmNofSApICYmICRHZXRQYXJhbXtWb3RlU2VhcmNoT3B0aW9ufSApIHsKICAgICAgICAgICAgJEdldFBhcmFte1ZvdGVzfSA9IHsKICAgICAgICAgICAgICAgICRHZXRQYXJhbXtWb3RlU2VhcmNoVHlwZX0gPT4gJEdldFBhcmFte1ZvdGVTZWFyY2h9CiAgICAgICAgICAgIH07CiAgICAgICAgfQoKICAgICAgICAjIFByZXBhcmUgcmF0ZSBzZWFyY2guCiAgICAgICAgaWYgKCBJc051bWJlciggJEdldFBhcmFte1JhdGVTZWFyY2h9ICkgJiYgJEdldFBhcmFte1JhdGVTZWFyY2hPcHRpb259ICkgewogICAgICAgICAgICAkR2V0UGFyYW17UmF0ZX0gPSB7CiAgICAgICAgICAgICAgICAkR2V0UGFyYW17UmF0ZVNlYXJjaFR5cGV9ID0+ICRHZXRQYXJhbXtSYXRlU2VhcmNofQogICAgICAgICAgICB9OwogICAgICAgIH0KCiAgICAgICAgbXkgJVRpbWVNYXAgPSAoCiAgICAgICAgICAgIEl0ZW1DcmVhdGUgPT4gJ1RpbWUnLAogICAgICAgICAgICBJdGVtQ2hhbmdlID0+ICdDaGFuZ2VUaW1lJywKICAgICAgICApOwoKICAgICAgICBmb3IgbXkgJFRpbWVUeXBlICggc29ydCBrZXlzICVUaW1lTWFwICkgewoKICAgICAgICAgICAgIyBHZXQgY3JlYXRlIHRpbWUgc2V0dGluZ3MuCiAgICAgICAgICAgIGlmICggISRHZXRQYXJhbXsgJFRpbWVNYXB7JFRpbWVUeXBlfSAuICdTZWFyY2hUeXBlJyB9ICkgewoKICAgICAgICAgICAgICAgICMgRG8gbm90aGluZyB3aXRoIHRpbWUgc3R1ZmYuCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkR2V0UGFyYW17ICRUaW1lTWFweyRUaW1lVHlwZX0gLiAnU2VhcmNoVHlwZScgfSBlcSAnVGltZVNsb3QnICkgewogICAgICAgICAgICAgICAgZm9yIG15ICRLZXkgKHF3KE1vbnRoIERheSkpIHsKICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lU3RhcnQnIC4gJEtleSB9CiAgICAgICAgICAgICAgICAgICAgICAgID0gc3ByaW50ZiggIiUwMmQiLCAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lU3RhcnQnIC4gJEtleSB9ICk7CiAgICAgICAgICAgICAgICAgICAgJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVN0b3AnIC4gJEtleSB9CiAgICAgICAgICAgICAgICAgICAgICAgID0gc3ByaW50ZiggIiUwMmQiLCAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lU3RvcCcgLiAkS2V5IH0gKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lU3RhcnREYXknIH0KICAgICAgICAgICAgICAgICAgICAmJiAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lU3RhcnRNb250aCcgfQogICAgICAgICAgICAgICAgICAgICYmICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVTdGFydFllYXInIH0KICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZU5ld2VyRGF0ZScgfSA9ICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVTdGFydFllYXInIH0gLiAnLScKICAgICAgICAgICAgICAgICAgICAgICAgLiAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lU3RhcnRNb250aCcgfSAuICctJwogICAgICAgICAgICAgICAgICAgICAgICAuICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVTdGFydERheScgfQogICAgICAgICAgICAgICAgICAgICAgICAuICcgMDA6MDA6MDAnOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVTdG9wRGF5JyB9CiAgICAgICAgICAgICAgICAgICAgJiYgJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVN0b3BNb250aCcgfQogICAgICAgICAgICAgICAgICAgICYmICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVTdG9wWWVhcicgfQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lT2xkZXJEYXRlJyB9ID0gJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVN0b3BZZWFyJyB9IC4gJy0nCiAgICAgICAgICAgICAgICAgICAgICAgIC4gJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVN0b3BNb250aCcgfSAuICctJwogICAgICAgICAgICAgICAgICAgICAgICAuICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVTdG9wRGF5JyB9CiAgICAgICAgICAgICAgICAgICAgICAgIC4gJyAyMzo1OTo1OSc7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkR2V0UGFyYW17ICRUaW1lTWFweyRUaW1lVHlwZX0gLiAnU2VhcmNoVHlwZScgfSBlcSAnVGltZVBvaW50JyApIHsKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lUG9pbnQnIH0KICAgICAgICAgICAgICAgICAgICAmJiAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lUG9pbnRTdGFydCcgfQogICAgICAgICAgICAgICAgICAgICYmICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVQb2ludEZvcm1hdCcgfQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBteSAkVGltZSA9IDA7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lUG9pbnRGb3JtYXQnIH0gZXEgJ21pbnV0ZScgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRUaW1lID0gJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVBvaW50JyB9OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNpZiAoICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVQb2ludEZvcm1hdCcgfSBlcSAnaG91cicgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRUaW1lID0gJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVBvaW50JyB9ICogNjA7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2lmICggJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVBvaW50Rm9ybWF0JyB9IGVxICdkYXknICkgewogICAgICAgICAgICAgICAgICAgICAgICAkVGltZSA9ICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVQb2ludCcgfSAqIDYwICogMjQ7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2lmICggJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVBvaW50Rm9ybWF0JyB9IGVxICd3ZWVrJyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJFRpbWUgPSAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lUG9pbnQnIH0gKiA2MCAqIDI0ICogNzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzaWYgKCAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lUG9pbnRGb3JtYXQnIH0gZXEgJ21vbnRoJyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJFRpbWUgPSAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lUG9pbnQnIH0gKiA2MCAqIDI0ICogMzA7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2lmICggJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVBvaW50Rm9ybWF0JyB9IGVxICd5ZWFyJyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJFRpbWUgPSAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lUG9pbnQnIH0gKiA2MCAqIDI0ICogMzY1OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVQb2ludFN0YXJ0JyB9IGVxICdCZWZvcmUnICkgewoKICAgICAgICAgICAgICAgICAgICAgICAgIyBNb3JlIHRoYW4gLi4uIGFnby4KICAgICAgICAgICAgICAgICAgICAgICAgJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZU9sZGVyTWludXRlcycgfSA9ICRUaW1lOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNpZiAoICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVQb2ludFN0YXJ0JyB9IGVxICdOZXh0JyApIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICMgV2l0aGluIG5leHQuCiAgICAgICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVOZXdlck1pbnV0ZXMnIH0gPSAwOwogICAgICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lT2xkZXJNaW51dGVzJyB9ID0gLSRUaW1lOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgIyBXaXRoaW4gbGFzdCAuLi4KICAgICAgICAgICAgICAgICAgICAgICAgJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZU9sZGVyTWludXRlcycgfSA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVOZXdlck1pbnV0ZXMnIH0gPSAkVGltZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgUHJlcGFyZSBmdWxsLXRleHQgc2VhcmNoLgogICAgICAgIGlmICggJEdldFBhcmFte0Z1bGx0ZXh0fSApIHsKICAgICAgICAgICAgJEdldFBhcmFte0NvbnRlbnRTZWFyY2h9ID0gJ09SJzsKICAgICAgICAgICAgJEdldFBhcmFte1doYXR9ICAgICAgICAgID0gJEdldFBhcmFte0Z1bGx0ZXh0fTsKICAgICAgICB9CgogICAgICAgIG15ICVWYWxpZExpc3QgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcpLT5WYWxpZExpc3QoKTsKICAgICAgICBteSBAQWxsVmFsaWRJRHMgPSBrZXlzICVWYWxpZExpc3Q7CgogICAgICAgIG15ICRGQVFPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RkFRJyk7CgogICAgICAgICMgU2V0IGRlZmF1bHQgaW50ZXJmYWNlIHNldHRpbmdzLgogICAgICAgIG15ICRJbnRlcmZhY2UgPSAkRkFRT2JqZWN0LT5TdGF0ZVR5cGVHZXQoCiAgICAgICAgICAgIE5hbWUgICA9PiAnaW50ZXJuYWwnLAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CiAgICAgICAgbXkgJEludGVyZmFjZVN0YXRlcyA9ICRGQVFPYmplY3QtPlN0YXRlVHlwZUxpc3QoCiAgICAgICAgICAgIFR5cGVzICA9PiAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6QWdlbnQ6OlN0YXRlVHlwZXMnKSwKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIFByZXBhcmUgc2VhcmNoIHN0YXRlcy4KICAgICAgICBteSAkU2VhcmNoU3RhdGVzOwogICAgICAgIGlmICggIUlzQXJyYXlSZWZXaXRoRGF0YSggJEdldFBhcmFte1N0YXRlSURzfSApICkgewogICAgICAgICAgICAkU2VhcmNoU3RhdGVzID0gJEludGVyZmFjZVN0YXRlczsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIFNUQVRFVFlQRUlEOgogICAgICAgICAgICBmb3IgbXkgJFN0YXRlVHlwZUlEICggQHsgJEdldFBhcmFte1N0YXRlSURzfSB9ICkgewogICAgICAgICAgICAgICAgbmV4dCBTVEFURVRZUEVJRCBpZiAhJFN0YXRlVHlwZUlEOwogICAgICAgICAgICAgICAgbmV4dCBTVEFURVRZUEVJRCBpZiAhJEludGVyZmFjZVN0YXRlcy0+eyRTdGF0ZVR5cGVJRH07CiAgICAgICAgICAgICAgICAkU2VhcmNoU3RhdGVzLT57JFN0YXRlVHlwZUlEfSA9ICRJbnRlcmZhY2VTdGF0ZXMtPnskU3RhdGVUeXBlSUR9OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIFByZXBhcmUgdm90ZXMgc2VhcmNoLgogICAgICAgIGlmICggSXNOdW1iZXIoICRHZXRQYXJhbXtWb3RlU2VhcmNofSApICYmICRHZXRQYXJhbXtWb3RlU2VhcmNoT3B0aW9ufSApIHsKICAgICAgICAgICAgJEdldFBhcmFte1ZvdGVzfSA9IHsKICAgICAgICAgICAgICAgICRHZXRQYXJhbXtWb3RlU2VhcmNoVHlwZX0gPT4gJEdldFBhcmFte1ZvdGVTZWFyY2h9CiAgICAgICAgICAgIH07CiAgICAgICAgfQoKICAgICAgICAjIFByZXBhcmUgcmF0ZSBzZWFyY2guCiAgICAgICAgaWYgKCBJc051bWJlciggJEdldFBhcmFte1JhdGVTZWFyY2h9ICkgJiYgJEdldFBhcmFte1JhdGVTZWFyY2hPcHRpb259ICkgewogICAgICAgICAgICAkR2V0UGFyYW17UmF0ZX0gPSB7CiAgICAgICAgICAgICAgICAkR2V0UGFyYW17UmF0ZVNlYXJjaFR5cGV9ID0+ICRHZXRQYXJhbXtSYXRlU2VhcmNofQogICAgICAgICAgICB9OwogICAgICAgIH0KCiAgICAgICAgIyBEeW5hbWljIGZpZWxkcyBzZWFyY2ggcGFyYW1ldGVycyBmb3IgRkFRIHNlYXJjaC4KICAgICAgICBteSAlRHluYW1pY0ZpZWxkU2VhcmNoUGFyYW1ldGVyczsKCiAgICAgICAgRFlOQU1JQ0ZJRUxEOgogICAgICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHsgJFNlbGYtPntEeW5hbWljRmllbGR9IH0gKSB7CiAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKCiAgICAgICAgICAgICMgR2V0IHNlYXJjaCBmaWVsZCBwcmVmZXJlbmNlcy4KICAgICAgICAgICAgbXkgJFNlYXJjaEZpZWxkUHJlZmVyZW5jZXMgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+U2VhcmNoRmllbGRQcmVmZXJlbmNlcygKICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzQXJyYXlSZWZXaXRoRGF0YSgkU2VhcmNoRmllbGRQcmVmZXJlbmNlcyk7CgogICAgICAgICAgICBQUkVGRVJFTkNFOgogICAgICAgICAgICBmb3IgbXkgJFByZWZlcmVuY2UgKCBAeyRTZWFyY2hGaWVsZFByZWZlcmVuY2VzfSApIHsKCiAgICAgICAgICAgICAgICAjIEV4dHJhY3QgdGhlIGR5bmFtaWMgZmllbGQgdmFsdWUgZnJvbSB0aGUgcHJvZmlsZS4KICAgICAgICAgICAgICAgIG15ICRTZWFyY2hQYXJhbWV0ZXIgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+U2VhcmNoRmllbGRQYXJhbWV0ZXJCdWlsZCgKICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgICAgICBQcm9maWxlICAgICAgICAgICAgPT4gXCVHZXRQYXJhbSwKICAgICAgICAgICAgICAgICAgICBMYXlvdXRPYmplY3QgICAgICAgPT4gJExheW91dE9iamVjdCwKICAgICAgICAgICAgICAgICAgICBUeXBlICAgICAgICAgICAgICAgPT4gJFByZWZlcmVuY2UtPntUeXBlfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBTZXQgc2VhcmNoIHBhcmFtZXRlci4KICAgICAgICAgICAgICAgIGlmICggZGVmaW5lZCAkU2VhcmNoUGFyYW1ldGVyICkgewogICAgICAgICAgICAgICAgICAgICREeW5hbWljRmllbGRTZWFyY2hQYXJhbWV0ZXJzeyAnRHluYW1pY0ZpZWxkXycgLiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfQogICAgICAgICAgICAgICAgICAgICAgICA9ICRTZWFyY2hQYXJhbWV0ZXItPntQYXJhbWV0ZXJ9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIEdldCBVc2VyQ2F0ZWdvcnlHcm91cCBIYXNoLgogICAgICAgICMgVGhpcyByZXR1cm5zIGEgSGFzaCBvZiB0aGUgZm9sbG93aW5nIHNhbXBsZSBkYXRhIHN0cnVjdHVyZToKICAgICAgICAjCiAgICAgICAgIyAkVXNlckNhdEdyb3VwID0gewogICAgICAgICMgICAnMScgPT4gewogICAgICAgICMgICAgICAgICAgJzMnID0+ICdNaXNjU3ViJwogICAgICAgICMgICAgICAgIH0sCiAgICAgICAgIyAgICczJyA9PiB7fSwKICAgICAgICAjICAgJzAnID0+IHsKICAgICAgICAjICAgICAgICAgICAgJzEnID0+ICdNaXNjJywKICAgICAgICAjICAgICAgICAgICAgJzInID0+ICdzZWNyZXQnCiAgICAgICAgIyAgICAgICAgICB9LAogICAgICAgICMgICAnMicgPT4ge30KICAgICAgICAjIH07CiAgICAgICAgIwogICAgICAgICMgS2V5cyBvZiB0aGUgb3V0ZXIgaGFzaCBpbmZvcm0gYWJvdXQgc3ViY2F0ZWdvcmllcy4KICAgICAgICAjICAgMCBTaG93cyB0b3AgbGV2ZWwgQ2F0ZWdvcnlJRHMuCiAgICAgICAgIyAgIDEgU2hvd3MgdGhlIFN1YmNhdGVnb3J5SURzIG9mIENhdGVnb3J5IDEuCiAgICAgICAgIyAgIDIgYW5kIDMgYXJlIGVtcHR5IGhhc2hlcyBiZWNhdXNlIHRoZXNlIGNhdGVnb3JpZXMgZG9uJ3QgaGF2ZSBzdWJjYXRlZ29yaWVzLgogICAgICAgICMKICAgICAgICAjIEtleXMgb2YgdGhlIGlubmVyIGhhc2hlcyBhcmUgQ2F0ZWdvcnlJRHMgYSB1c2VyIGlzIGFsbG93ZWQgdG8gaGF2ZSBydyBhY2Nlc3MgdG8uCiAgICAgICAgIyBWYWx1ZXMgYXJlIHRoZSBDYXRlZ29yeSBuYW1lcy4KCiAgICAgICAgbXkgJFVzZXJDYXRHcm91cCA9ICRGQVFPYmplY3QtPkdldFVzZXJDYXRlZ29yaWVzKAogICAgICAgICAgICBUeXBlICAgPT4gJ3JvJywKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIEZpbmQgQ2F0ZWdvcnlJRHMgdGhlIGN1cnJlbnQgVXNlciBpcyBhbGxvd2VkIHRvIHZpZXcuCiAgICAgICAgbXkgJUFsbG93ZWRDYXRlZ29yeUlEcyA9ICgpOwoKICAgICAgICBpZiAoICRVc2VyQ2F0R3JvdXAgJiYgcmVmICRVc2VyQ2F0R3JvdXAgZXEgJ0hBU0gnICkgewoKICAgICAgICAgICAgIyBTbyBub3cgd2UgaGF2ZSB0byBleHRyYWN0IGFsbCBDYXRlZ29yeUlEJ3Mgb2YgdGhlICJpbm5lciBoYXNoZXMiCiAgICAgICAgICAgICMgICAtPiBMb29wIHRocm91Z2ggdGhlIG91dGVyIENhdGVnb3J5SUQncy4KICAgICAgICAgICAgZm9yIG15ICRMZXZlbCAoIHNvcnQga2V5cyAleyRVc2VyQ2F0R3JvdXB9ICkgewoKICAgICAgICAgICAgICAgICMgQ2hlY2sgaWYgdGhlIFZhbHVlIG9mIHRoZSBjdXJyZW50IGhhc2gga2V5IGlzIGEgaGFzaCByZWYKICAgICAgICAgICAgICAgIGlmICggJFVzZXJDYXRHcm91cC0+eyRMZXZlbH0gJiYgcmVmICRVc2VyQ2F0R3JvdXAtPnskTGV2ZWx9IGVxICdIQVNIJyApIHsKCiAgICAgICAgICAgICAgICAgICAgIyBNYXAgdGhlIGtleXMgb2YgdGhlIGlubmVyIGhhc2ggdG8gYSBUZW1wSURzIGhhc2guCiAgICAgICAgICAgICAgICAgICAgIyBPcmlnaW5hbCBEYXRhc3RydWN0dXJlOgogICAgICAgICAgICAgICAgICAgICMgICB7CiAgICAgICAgICAgICAgICAgICAgIyAgICAgICAnMScgPT4gJ01pc2MnLAogICAgICAgICAgICAgICAgICAgICMgICAgICAgJzInID0+ICdzZWNyZXQnCiAgICAgICAgICAgICAgICAgICAgIyAgIH0KICAgICAgICAgICAgICAgICAgICAjCiAgICAgICAgICAgICAgICAgICAgIyAgIGFmdGVyIG1hcHBpbmc6CiAgICAgICAgICAgICAgICAgICAgIwogICAgICAgICAgICAgICAgICAgICMgICB7CiAgICAgICAgICAgICAgICAgICAgIyAgICAgICAnMScgPT4gMSwKICAgICAgICAgICAgICAgICAgICAjICAgICAgICcyJyA9PiAxJwogICAgICAgICAgICAgICAgICAgICMgICB9CgogICAgICAgICAgICAgICAgICAgIG15ICVUZW1wSURzID0gbWFwIHsgJF8gPT4gMSB9IGtleXMgJXsgJFVzZXJDYXRHcm91cC0+eyRMZXZlbH0gfTsKCiAgICAgICAgICAgICAgICAgICAgIyBQdXQgdGhlIFRlbXBJRHMgb3ZlciB0aGUgZm9ybWFsbHkgZm91bmQgQWxsb3dlZENhdGVnb3J5cyB0byBwcm9kdWNlIGEgaGFzaAogICAgICAgICAgICAgICAgICAgICMgICB0aGF0IGhvbGRzIGFsbCBDYXRlZ29yeUlEIGFzIGtleXMgYW5kIHRoZSBudW1iZXIgMSBhcyB2YWx1ZXMuCiAgICAgICAgICAgICAgICAgICAgJUFsbG93ZWRDYXRlZ29yeUlEcyA9ICgKICAgICAgICAgICAgICAgICAgICAgICAgJUFsbG93ZWRDYXRlZ29yeUlEcywKICAgICAgICAgICAgICAgICAgICAgICAgJVRlbXBJRHMKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIEZvciB0aGUgZGF0YWJhc2UgcXVlcnkgaXQncyBuZWNlc3NhcnkgdG8gaGF2ZSBhbiBhcnJheSBvZiBDYXRlZ29yeUlEcy4KICAgICAgICBteSBAQ2F0ZWdvcnlJRHMgPSAoKTsKCiAgICAgICAgaWYgKCVBbGxvd2VkQ2F0ZWdvcnlJRHMpIHsKICAgICAgICAgICAgQENhdGVnb3J5SURzID0gc29ydCBrZXlzICVBbGxvd2VkQ2F0ZWdvcnlJRHM7CiAgICAgICAgfQoKICAgICAgICAjIENhdGVnb3JpZXMgZ290IGZyb20gdGhlIHdlYiByZXF1ZXN0IGNvdWxkIGluY2x1ZGUgYSBub3QgYWxsb3dlZCBjYXRlZ29yeSBpZiB0aGUgdXNlcgogICAgICAgICMgICAgdGVtcGVyIHdpdGggdGhlIGNhdGVnb3JpZXMgZHJvcC1ib3gsIGEgY2hlY2sgaXMgbmVlZGVkLgogICAgICAgICMKICAgICAgICAjICJNYXAiIGNvcHkgZnJvbSBvbmUgYXJyYXkgdG8gYW5vdGhlciwgd2hpbGUgImdyZXAiIHdpbGwgb25seSBsZXQgcGFzcyB0aGUgY2F0ZWdvcmllcwogICAgICAgICMgICAgdGhhdCBhcmUgZGVmaW5lZCBpbiB0aGUgJUFsbG93ZWRDYXRlZ29yeUlEcyBoYXNoLgogICAgICAgIGlmICggSXNBcnJheVJlZldpdGhEYXRhKCAkR2V0UGFyYW17Q2F0ZWdvcnlJRHN9ICkgKSB7CiAgICAgICAgICAgIEB7ICRHZXRQYXJhbXtDYXRlZ29yeUlEc30gfSA9IG1hcCB7JF99IGdyZXAgeyAkQWxsb3dlZENhdGVnb3J5SURzeyRffSB9IEB7ICRHZXRQYXJhbXtDYXRlZ29yeUlEc30gfTsKICAgICAgICB9CgogICAgICAgICMgSnVzdCBzZWFyY2ggaWYgd2UgZG8gaGF2ZSBjYXRlZ29yaWVzLCB3ZSBoYXZlIGFjY2VzcyB0by4KICAgICAgICAjIElmIHdlIGRvbid0IGhhdmUgYWNjZXNzIHRvIGFueSBjYXRlZ29yeSwgYSBzZWFyY2ggd2l0aCBubyBDYXRlZ29yeUlEcwogICAgICAgICMgICB3b3VsZCByZXN1bHQgaW4gZmluZGluZyBhbGwgY2F0ZWdvcmllcy4KICAgICAgICAjCiAgICAgICAgIyBJdCBpcyBub3QgcG9zc2libGUgdG8gY3JlYXRlIEZBUSdzIHdpdGhvdXQgY2F0ZWdvcmllcwogICAgICAgICMgICBzbyBhdCBsZWFzdCBvbmUgY2F0ZWdvcnkgaGFzIHRvIGJlIHByZXNlbnQuCgogICAgICAgIG15IEBWaWV3YWJsZUl0ZW1JRHMgPSAoKTsKCiAgICAgICAgaWYgKEBDYXRlZ29yeUlEcykgewoKICAgICAgICAgICAgIyBQZXJmb3JtIEZBUSBzZWFyY2guCiAgICAgICAgICAgICMgRGVmYXVsdCBzZWFyY2ggb24gYWxsIHZhbGlkIGlkcywgdGhpcyBjYW4gYmUgb3ZlcndyaXR0ZW4gYnkgJUdldFBhcmFtLgogICAgICAgICAgICBAVmlld2FibGVJdGVtSURzID0gJEZBUU9iamVjdC0+RkFRU2VhcmNoKAogICAgICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgICAgICA9PiBbJFNvcnRCeV0sCiAgICAgICAgICAgICAgICBPcmRlckJ5RGlyZWN0aW9uICAgID0+IFskT3JkZXJCeV0sCiAgICAgICAgICAgICAgICBMaW1pdCAgICAgICAgICAgICAgID0+ICRTZWFyY2hMaW1pdCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgU3RhdGVzICAgICAgICAgICAgICA9PiAkU2VhcmNoU3RhdGVzLAogICAgICAgICAgICAgICAgSW50ZXJmYWNlICAgICAgICAgICA9PiAkSW50ZXJmYWNlLAogICAgICAgICAgICAgICAgQ29udGVudFNlYXJjaFByZWZpeCA9PiAnKicsCiAgICAgICAgICAgICAgICBDb250ZW50U2VhcmNoU3VmZml4ID0+ICcqJywKICAgICAgICAgICAgICAgIFZhbGlkSURzICAgICAgICAgICAgPT4gXEBBbGxWYWxpZElEcywKICAgICAgICAgICAgICAgIENhdGVnb3J5SURzICAgICAgICAgPT4gXEBDYXRlZ29yeUlEcywKICAgICAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgICAgICVEeW5hbWljRmllbGRTZWFyY2hQYXJhbWV0ZXJzLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBTdGFydCBIVE1MIHBhZ2UuCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigKICAgICAgICAgICAgVHlwZSA9PiAnU21hbGwnLAogICAgICAgICk7CgogICAgICAgIG15ICRGaWx0ZXIgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnRmlsdGVyJyApIHx8ICcnOwogICAgICAgIG15ICRWaWV3ICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnVmlldycgKSAgIHx8ICcnOwoKICAgICAgICAjIFNob3cgRkFRJ3MuCiAgICAgICAgbXkgJExpbmtQYWdlID0gJ0ZpbHRlcj0nCiAgICAgICAgICAgIC4gJExheW91dE9iamVjdC0+TGlua0VuY29kZSgkRmlsdGVyKQogICAgICAgICAgICAuICc7Vmlldz0nIC4gJExheW91dE9iamVjdC0+TGlua0VuY29kZSgkVmlldykKICAgICAgICAgICAgLiAnO1NvcnRCeT0nIC4gJExheW91dE9iamVjdC0+TGlua0VuY29kZSgkU29ydEJ5KQogICAgICAgICAgICAuICc7T3JkZXJCeT0nIC4gJExheW91dE9iamVjdC0+TGlua0VuY29kZSgkT3JkZXJCeSkKICAgICAgICAgICAgLiAnO1Byb2ZpbGU9JyAuICRMYXlvdXRPYmplY3QtPkxpbmtFbmNvZGUoJFByb2ZpbGUpIC4gJztUYWtlTGFzdFNlYXJjaD0xO1N1YmFjdGlvbj1TZWFyY2gnCiAgICAgICAgICAgIC4gJztOYXY9JyAuICROYXYKICAgICAgICAgICAgLiAnOyc7CiAgICAgICAgbXkgJExpbmtTb3J0ID0gJ0ZpbHRlcj0nCiAgICAgICAgICAgIC4gJExheW91dE9iamVjdC0+TGlua0VuY29kZSgkRmlsdGVyKQogICAgICAgICAgICAuICc7Vmlldz0nIC4gJExheW91dE9iamVjdC0+TGlua0VuY29kZSgkVmlldykKICAgICAgICAgICAgLiAnO1Byb2ZpbGU9JyAuICRMYXlvdXRPYmplY3QtPkxpbmtFbmNvZGUoJFByb2ZpbGUpIC4gJztUYWtlTGFzdFNlYXJjaD0xO1N1YmFjdGlvbj1TZWFyY2gnCiAgICAgICAgICAgIC4gJztOYXY9JyAuICROYXYKCiAgICAgICAgICAgIC4gJzsnOwogICAgICAgIG15ICRMaW5rRmlsdGVyID0gJ1Rha2VMYXN0U2VhcmNoPTE7U3ViYWN0aW9uPVNlYXJjaDtQcm9maWxlPScKICAgICAgICAgICAgLiAkTGF5b3V0T2JqZWN0LT5MaW5rRW5jb2RlKCRQcm9maWxlKQogICAgICAgICAgICAuICc7TmF2PScgLiAkTmF2CiAgICAgICAgICAgIC4gJzsnOwogICAgICAgIG15ICRMaW5rQmFjayA9ICdTdWJhY3Rpb249TG9hZFByb2ZpbGU7UHJvZmlsZT0nCiAgICAgICAgICAgIC4gJExheW91dE9iamVjdC0+TGlua0VuY29kZSgkUHJvZmlsZSkKICAgICAgICAgICAgLiAnO05hdj0nIC4gJE5hdgogICAgICAgICAgICAuICc7VGFrZUxhc3RTZWFyY2g9MTsnOwoKICAgICAgICBteSAkRmlsdGVyTGluayA9ICdTb3J0Qnk9JyAuICRMYXlvdXRPYmplY3QtPkxpbmtFbmNvZGUoJFNvcnRCeSkKICAgICAgICAgICAgLiAnO09yZGVyQnk9JyAuICRMYXlvdXRPYmplY3QtPkxpbmtFbmNvZGUoJE9yZGVyQnkpCiAgICAgICAgICAgIC4gJztWaWV3PScgLiAkTGF5b3V0T2JqZWN0LT5MaW5rRW5jb2RlKCRWaWV3KQogICAgICAgICAgICAuICc7UHJvZmlsZT0nIC4gJFByb2ZpbGUgLiAnO1Rha2VMYXN0U2VhcmNoPTE7U3ViYWN0aW9uPVNlYXJjaCcKICAgICAgICAgICAgLiAnO05hdj0nIC4gJE5hdgogICAgICAgICAgICAuICc7JzsKCiAgICAgICAgIyBGaW5kIG91dCB3aGljaCBjb2x1bW5zIHNob3VsZCBiZSBzaG93bi4KICAgICAgICBteSBAU2hvd0NvbHVtbnM7CiAgICAgICAgaWYgKCAkQ29uZmlnLT57U2hvd0NvbHVtbnN9ICkgewoKICAgICAgICAgICAgIyBHZXQgYWxsIHBvc3NpYmxlIGNvbHVtbnMgZnJvbSBjb25maWcuCiAgICAgICAgICAgIG15ICVQb3NzaWJsZUNvbHVtbiA9ICV7ICRDb25maWctPntTaG93Q29sdW1uc30gfTsKCiAgICAgICAgICAgICMgR2V0IHRoZSBjb2x1bW4gbmFtZXMgdGhhdCBzaG91bGQgYmUgc2hvd24uCiAgICAgICAgICAgIENPTFVNTk5BTUU6CiAgICAgICAgICAgIGZvciBteSAkTmFtZSAoIHNvcnQga2V5cyAlUG9zc2libGVDb2x1bW4gKSB7CiAgICAgICAgICAgICAgICBuZXh0IENPTFVNTk5BTUUgaWYgISRQb3NzaWJsZUNvbHVtbnskTmFtZX07CiAgICAgICAgICAgICAgICBwdXNoIEBTaG93Q29sdW1ucywgJE5hbWU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgRW5mb3JjZSBGQVEgbnVtYmVyIGNvbHVtbiBzaW5jZSBpcyB0aGUgbGluayBNYXN0ZXJBY3Rpb24gaG9vay4KICAgICAgICAgICAgaWYgKCAhJFBvc3NpYmxlQ29sdW1ueydOdW1iZXInfSApIHsKICAgICAgICAgICAgICAgIHB1c2ggQFNob3dDb2x1bW5zLCAnTnVtYmVyJzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5GQVFMaXN0U2hvdygKICAgICAgICAgICAgRkFRSURzID0+IFxAVmlld2FibGVJdGVtSURzLAogICAgICAgICAgICBUb3RhbCAgPT4gc2NhbGFyIEBWaWV3YWJsZUl0ZW1JRHMsCgogICAgICAgICAgICBWaWV3ID0+ICRWaWV3LAoKICAgICAgICAgICAgRW52ICAgICAgICA9PiAkU2VsZiwKICAgICAgICAgICAgTGlua1BhZ2UgICA9PiAkTGlua1BhZ2UsCiAgICAgICAgICAgIExpbmtTb3J0ICAgPT4gJExpbmtTb3J0LAogICAgICAgICAgICBMaW5rRmlsdGVyID0+ICRMaW5rRmlsdGVyLAogICAgICAgICAgICBMaW5rQmFjayAgID0+ICRMaW5rQmFjaywKICAgICAgICAgICAgUHJvZmlsZSAgICA9PiAkUHJvZmlsZSwKCiAgICAgICAgICAgIFRpdGxlTmFtZSA9PiBUcmFuc2xhdGFibGUoJ1NlYXJjaCBSZXN1bHQnKSwKICAgICAgICAgICAgTGltaXQgICAgID0+ICRTZWFyY2hMaW1pdCwKCiAgICAgICAgICAgIEZpbHRlciAgICAgPT4gJEZpbHRlciwKICAgICAgICAgICAgRmlsdGVyTGluayA9PiAkRmlsdGVyTGluaywKCiAgICAgICAgICAgIE9yZGVyQnkgPT4gJE9yZGVyQnksCiAgICAgICAgICAgIFNvcnRCeSAgPT4gJFNvcnRCeSwKCiAgICAgICAgICAgIFNob3dDb2x1bW5zID0+IFxAU2hvd0NvbHVtbnMsCiAgICAgICAgICAgIE5hdiAgICAgICAgID0+ICROYXYsCiAgICAgICAgKTsKCiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoCiAgICAgICAgICAgIFR5cGUgPT4gJ1NtYWxsJywKICAgICAgICApOwogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgIGVsc2UgewogICAgICAgICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoCiAgICAgICAgICAgIFR5cGUgPT4gJ1NtYWxsJywKICAgICAgICApOwoKICAgICAgICAkT3V0cHV0IC49ICRTZWxmLT5fTWFza0Zvcm0oCiAgICAgICAgICAgIE5hdiA9PiAkTmF2LAogICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigKICAgICAgICAgICAgVHlwZSA9PiAnU21hbGwnLAogICAgICAgICk7CgogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQp9CgpzdWIgX01hc2tGb3JtIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgbXkgJFRyZWVWaWV3ID0gMDsKICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpMaXN0VHlwZScpIGVxICd0cmVlJyApIHsKICAgICAgICAkVHJlZVZpZXcgPSAxOwogICAgfQoKICAgIG15ICVQcm9maWxlcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTZWFyY2hQcm9maWxlJyktPlNlYXJjaFByb2ZpbGVMaXN0KAogICAgICAgIEJhc2UgICAgICA9PiAnRkFRU2VhcmNoJywKICAgICAgICBVc2VyTG9naW4gPT4gJFNlbGYtPntVc2VyTG9naW59LAogICAgKTsKCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgQnVpbGQgcHJvZmlsZXMgb3V0cHV0IGxpc3QuCiAgICAkUGFyYW17UHJvZmlsZXNTdHJnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgICA9PiB7JVByb2ZpbGVzfSwKICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMSwKICAgICAgICBOYW1lICAgICAgICAgPT4gJ1Byb2ZpbGUnLAogICAgICAgIFNlbGVjdGVkSUQgICA9PiAkUGFyYW17UHJvZmlsZX0sCiAgICAgICAgQ2xhc3MgICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKCiAgICBteSAkRkFRT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkZBUScpOwoKICAgIG15ICVMYW5ndWFnZXMgPSAkRkFRT2JqZWN0LT5MYW5ndWFnZUxpc3QoCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBEcm9wLWRvd24gbWVudSBmb3IgJ2xhbmd1YWdlcycuCiAgICAkUGFyYW17TGFuZ3VhZ2VzU2VsZWN0aW9uU3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgID0+IFwlTGFuZ3VhZ2VzLAogICAgICAgIE5hbWUgICAgICAgPT4gJ0xhbmd1YWdlSURzJywKICAgICAgICBTaXplICAgICAgID0+IDUsCiAgICAgICAgTXVsdGlwbGUgICA9PiAxLAogICAgICAgIFNlbGVjdGVkSUQgPT4gJFBhcmFte0xhbmd1YWdlSURzfSB8fCBbXSwKICAgICAgICBDbGFzcyAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKCiAgICAjIEdldCBjYXRlZ29yaWVzICh3aXRoIGNhdGVnb3J5IGxvbmcgbmFtZXMpIHdoZXJlIHVzZXIgaGFzIHJpZ2h0cy4KICAgIG15ICRVc2VyQ2F0ZWdvcmllc0xvbmdOYW1lcyA9ICRGQVFPYmplY3QtPkdldFVzZXJDYXRlZ29yaWVzTG9uZ05hbWVzKAogICAgICAgIFR5cGUgICA9PiAncm8nLAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgQnVpbGQgdGhlIGNhdGVnb3J5IHNlbGVjdGlvbi4KICAgICRQYXJhbXtDYXRlZ29yaWVzU2VsZWN0aW9uU3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgICA9PiAkVXNlckNhdGVnb3JpZXNMb25nTmFtZXMsCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ0NhdGVnb3J5SURzJywKICAgICAgICBTaXplICAgICAgICA9PiA1LAogICAgICAgIFNlbGVjdGVkSUQgID0+ICRQYXJhbXtDYXRlZ29yeUlEc30gfHwgW10sCiAgICAgICAgVHJhbnNsYXRpb24gPT4gMCwKICAgICAgICBNdWx0aXBsZSAgICA9PiAxLAogICAgICAgIFRyZWVWaWV3ICAgID0+ICRUcmVlVmlldywKICAgICAgICBDbGFzcyAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgbXkgJVZhbGlkTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcpLT5WYWxpZExpc3QoKTsKCiAgICAjIEJ1aWxkIHRoZSB2YWxpZCBzZWxlY3Rpb24uCiAgICAkUGFyYW17VmFsaWRTZWxlY3Rpb25TdHJnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgID0+IFwlVmFsaWRMaXN0LAogICAgICAgIE5hbWUgICAgICAgID0+ICdWYWxpZElEcycsCiAgICAgICAgU2l6ZSAgICAgICAgPT4gNSwKICAgICAgICBTZWxlY3RlZElEICA9PiAkUGFyYW17VmFsaWRJRHN9IHx8IFtdLAogICAgICAgIFRyYW5zbGF0aW9uID0+IDAsCiAgICAgICAgTXVsdGlwbGUgICAgPT4gMSwKICAgICAgICBDbGFzcyAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgIyBDcmVhdGUgYSBtaXggb2Ygc3RhdGUgYW5kIHN0YXRlIHR5cGVzIGhhc2ggaW4gb3JkZXIgdG8gaGF2ZSB0aGUgc3RhdGUgdHlwZSBJRHMgd2l0aCBzdGF0ZSBuYW1lcy4KICAgIG15ICVTdGF0ZUxpc3QgPSAkRkFRT2JqZWN0LT5TdGF0ZUxpc3QoCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgbXkgJVN0YXRlczsKICAgIGZvciBteSAkU3RhdGVJRCAoIHNvcnQga2V5cyAlU3RhdGVMaXN0ICkgewogICAgICAgIG15ICVTdGF0ZURhdGEgPSAkRkFRT2JqZWN0LT5TdGF0ZUdldCgKICAgICAgICAgICAgU3RhdGVJRCA9PiAkU3RhdGVJRCwKICAgICAgICAgICAgVXNlcklEICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKICAgICAgICAkU3RhdGVzeyAkU3RhdGVEYXRhe1R5cGVJRH0gfSA9ICRTdGF0ZURhdGF7TmFtZX07CiAgICB9CgogICAgJFBhcmFte1N0YXRlU2VsZWN0aW9uU3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgICA9PiBcJVN0YXRlcywKICAgICAgICBOYW1lICAgICAgICA9PiAnU3RhdGVJRHMnLAogICAgICAgIFNpemUgICAgICAgID0+IDMsCiAgICAgICAgU2VsZWN0ZWRJRCAgPT4gJFBhcmFte1N0YXRlSURzfSB8fCBbXSwKICAgICAgICBUcmFuc2xhdGlvbiA9PiAxLAogICAgICAgIE11bHRpcGxlICAgID0+IDEsCiAgICAgICAgQ2xhc3MgICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwoKICAgIG15ICVWb3RpbmdPcGVyYXRvcnMgPSAoCiAgICAgICAgRXF1YWxzICAgICAgICAgICAgPT4gVHJhbnNsYXRhYmxlKCdFcXVhbHMnKSwKICAgICAgICBHcmVhdGVyVGhhbiAgICAgICA9PiBUcmFuc2xhdGFibGUoJ0dyZWF0ZXIgdGhhbicpLAogICAgICAgIEdyZWF0ZXJUaGFuRXF1YWxzID0+IFRyYW5zbGF0YWJsZSgnR3JlYXRlciB0aGFuIGVxdWFscycpLAogICAgICAgIFNtYWxsZXJUaGFuICAgICAgID0+IFRyYW5zbGF0YWJsZSgnU21hbGxlciB0aGFuJyksCiAgICAgICAgU21hbGxlclRoYW5FcXVhbHMgPT4gVHJhbnNsYXRhYmxlKCdTbWFsbGVyIHRoYW4gZXF1YWxzJyksCiAgICApOwoKICAgICRQYXJhbXtWb3RlU2VhcmNoVHlwZVNlbGVjdGlvblN0cmd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICAgPT4gXCVWb3RpbmdPcGVyYXRvcnMsCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ1ZvdGVTZWFyY2hUeXBlJywKICAgICAgICBTaXplICAgICAgICA9PiAxLAogICAgICAgIFNlbGVjdGVkSUQgID0+ICRQYXJhbXtWb3RlU2VhcmNoVHlwZX0gfHwgJycsCiAgICAgICAgVHJhbnNsYXRpb24gPT4gMSwKICAgICAgICBNdWx0aXBsZSAgICA9PiAwLAogICAgICAgIENsYXNzICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKCiAgICAkUGFyYW17UmF0ZVNlYXJjaFR5cGVTZWxlY3Rpb25TdHJnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgID0+IFwlVm90aW5nT3BlcmF0b3JzLAogICAgICAgIE5hbWUgICAgICAgID0+ICdSYXRlU2VhcmNoVHlwZScsCiAgICAgICAgU2l6ZSAgICAgICAgPT4gMSwKICAgICAgICBTZWxlY3RlZElEICA9PiAkUGFyYW17UmF0ZVNlYXJjaFR5cGV9IHx8ICcnLAogICAgICAgIFRyYW5zbGF0aW9uID0+IDEsCiAgICAgICAgTXVsdGlwbGUgICAgPT4gMCwKICAgICAgICBDbGFzcyAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CiAgICAkUGFyYW17UmF0ZVNlYXJjaFNlbGVjdGlvblN0cmd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgIDAgICA9PiAnMCUnLAogICAgICAgICAgICAyNSAgPT4gJzI1JScsCiAgICAgICAgICAgIDUwICA9PiAnNTAlJywKICAgICAgICAgICAgNzUgID0+ICc3NSUnLAogICAgICAgICAgICAxMDAgPT4gJzEwMCUnLAogICAgICAgIH0sCiAgICAgICAgU29ydCAgICAgICAgPT4gJ051bWVyaWNLZXknLAogICAgICAgIE5hbWUgICAgICAgID0+ICdSYXRlU2VhcmNoJywKICAgICAgICBTaXplICAgICAgICA9PiAxLAogICAgICAgIFNlbGVjdGVkSUQgID0+ICRQYXJhbXtSYXRlU2VhcmNofSB8fCAnJywKICAgICAgICBUcmFuc2xhdGlvbiA9PiAwLAogICAgICAgIE11bHRpcGxlICAgID0+IDAsCiAgICAgICAgQ2xhc3MgICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwoKICAgICRQYXJhbXtBcHByb3ZlZFN0cmd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgIE5vICA9PiBUcmFuc2xhdGFibGUoJ05vJyksCiAgICAgICAgICAgIFllcyA9PiBUcmFuc2xhdGFibGUoJ1llcycpLAogICAgICAgIH0sCiAgICAgICAgTmFtZSAgICAgICAgID0+ICdBcHByb3ZlZFNlYXJjaCcsCiAgICAgICAgU2VsZWN0ZWRJRCAgID0+ICRQYXJhbXtBcHByb3ZlZFNlYXJjaH0gfHwgJycsCiAgICAgICAgTXVsdGlwbGUgICAgID0+IDAsCiAgICAgICAgVHJhbnNsYXRpb24gID0+IDEsCiAgICAgICAgUG9zc2libGVOb25lID0+IDEsCiAgICAgICAgQ2xhc3MgICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKCiAgICAjIEdldCBhIGxpc3Qgb2YgYWxsIHVzZXJzIHRvIGRpc3BsYXkuCiAgICBteSAlU2hvd25Vc2VycyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPlVzZXJMaXN0KAogICAgICAgIFR5cGUgID0+ICdMb25nJywKICAgICAgICBWYWxpZCA9PiAxLAogICAgKTsKCiAgICBteSAkRnJvbnRlbmRDb25maWcgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0Zyb250ZW5kOjpNb2R1bGUnKTsKICAgIG15ICRGQVFBZGRHcm91cHMgICA9ICRGcm9udGVuZENvbmZpZy0+e0FnZW50RkFRQWRkfS0+e0dyb3VwfSB8fCBbXTsKCiAgICBteSAlRkFRQWRkVXNlcnMgPSAlU2hvd25Vc2VyczsKICAgIGlmICggSXNBcnJheVJlZldpdGhEYXRhKCRGQVFBZGRHcm91cHMpICkgewoKICAgICAgICBteSAlR3JvdXBVc2VyczsKICAgICAgICBmb3IgbXkgJEdyb3VwICggQHskRkFRQWRkR3JvdXBzfSApIHsKCiAgICAgICAgICAgIG15ICRHcm91cE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpOwoKICAgICAgICAgICAgbXkgJEdyb3VwSUQgPSAkR3JvdXBPYmplY3QtPkdyb3VwTG9va3VwKCBHcm91cCA9PiAkR3JvdXAgKTsKICAgICAgICAgICAgbXkgJVVzZXJzICAgPSAkR3JvdXBPYmplY3QtPkdyb3VwTWVtYmVyTGlzdCgKICAgICAgICAgICAgICAgIEdyb3VwSUQgPT4gJEdyb3VwSUQsCiAgICAgICAgICAgICAgICBUeXBlICAgID0+ICdydycsCiAgICAgICAgICAgICAgICBSZXN1bHQgID0+ICdIQVNIJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJUdyb3VwVXNlcnMgPSAoICVHcm91cFVzZXJzLCAlVXNlcnMgKTsKICAgICAgICB9CgogICAgICAgICMgUmVtb3ZlIGFsbCB1c2VycyB0aGF0IGFyZSBub3QgaW4gdGhlIEZBUSBvciBmYXFfYWRtaW4gZ3JvdXBzLgogICAgICAgIGZvciBteSAkVXNlcklEICggc29ydCBrZXlzICVGQVFBZGRVc2VycyApIHsKICAgICAgICAgICAgaWYgKCAhJEdyb3VwVXNlcnN7JFVzZXJJRH0gKSB7CiAgICAgICAgICAgICAgICBkZWxldGUgJEZBUUFkZFVzZXJzeyRVc2VySUR9OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgJFBhcmFte0NyZWF0ZWRVc2VyU3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgID0+IFwlRkFRQWRkVXNlcnMsCiAgICAgICAgTmFtZSAgICAgICA9PiAnQ3JlYXRlZFVzZXJJRHMnLAogICAgICAgIFNpemUgICAgICAgPT4gNSwKICAgICAgICBNdWx0aXBsZSAgID0+IDEsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkUGFyYW17Q3JlYXRlZFVzZXJJRHN9LAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwoKICAgIG15ICRGQVFFZGl0R3JvdXBzID0gJEZyb250ZW5kQ29uZmlnLT57QWdlbnRGQVFFZGl0fS0+e0dyb3VwfSB8fCBbXTsKCiAgICBteSAlRkFRRWRpdFVzZXJzID0gJVNob3duVXNlcnM7CiAgICBpZiAoIElzQXJyYXlSZWZXaXRoRGF0YSgkRkFRRWRpdEdyb3VwcykgKSB7CgogICAgICAgIG15ICVHcm91cFVzZXJzOwogICAgICAgIGZvciBteSAkR3JvdXAgKCBAeyRGQVFFZGl0R3JvdXBzfSApIHsKCiAgICAgICAgICAgIG15ICRHcm91cE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpOwoKICAgICAgICAgICAgbXkgJEdyb3VwSUQgPSAkR3JvdXBPYmplY3QtPkdyb3VwTG9va3VwKCBHcm91cCA9PiAkR3JvdXAgKTsKICAgICAgICAgICAgbXkgJVVzZXJzICAgPSAkR3JvdXBPYmplY3QtPkdyb3VwTWVtYmVyTGlzdCgKICAgICAgICAgICAgICAgIEdyb3VwSUQgPT4gJEdyb3VwSUQsCiAgICAgICAgICAgICAgICBUeXBlICAgID0+ICdydycsCiAgICAgICAgICAgICAgICBSZXN1bHQgID0+ICdIQVNIJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJUdyb3VwVXNlcnMgPSAoICVHcm91cFVzZXJzLCAlVXNlcnMgKTsKICAgICAgICB9CgogICAgICAgICMgUmVtb3ZlIGFsbCB1c2VycyB0aGF0IGFyZSBub3QgaW4gdGhlIEZBUSBvciBmYXFfYWRtaW4gZ3JvdXBzLgogICAgICAgIGZvciBteSAkVXNlcklEICggc29ydCBrZXlzICVGQVFFZGl0VXNlcnMgKSB7CiAgICAgICAgICAgIGlmICggISRHcm91cFVzZXJzeyRVc2VySUR9ICkgewogICAgICAgICAgICAgICAgZGVsZXRlICRGQVFFZGl0VXNlcnN7JFVzZXJJRH07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgJFBhcmFte0xhc3RDaGFuZ2VkVXNlclN0cmd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICA9PiBcJUZBUUVkaXRVc2VycywKICAgICAgICBOYW1lICAgICAgID0+ICdMYXN0Q2hhbmdlZFVzZXJJRHMnLAogICAgICAgIFNpemUgICAgICAgPT4gNSwKICAgICAgICBNdWx0aXBsZSAgID0+IDEsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkUGFyYW17TGFzdENoYW5nZWRVc2VySURzfSwKICAgICAgICBDbGFzcyAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKCiAgICAkUGFyYW17SXRlbUNyZWF0ZVRpbWVQb2ludFN0cmd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICA9PiBbIDEgLi4gNTkgXSwKICAgICAgICBOYW1lICAgICAgID0+ICdJdGVtQ3JlYXRlVGltZVBvaW50JywKICAgICAgICBTZWxlY3RlZElEID0+ICRQYXJhbXtJdGVtQ3JlYXRlVGltZVBvaW50fSwKICAgICk7CiAgICAkUGFyYW17SXRlbUNyZWF0ZVRpbWVQb2ludFN0YXJ0U3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgJ0xhc3QnICAgPT4gVHJhbnNsYXRhYmxlKCd3aXRoaW4gdGhlIGxhc3QgLi4uJyksCiAgICAgICAgICAgICdCZWZvcmUnID0+IFRyYW5zbGF0YWJsZSgnbW9yZSB0aGFuIC4uLiBhZ28nKSwKICAgICAgICB9LAogICAgICAgIE5hbWUgICAgICAgPT4gJ0l0ZW1DcmVhdGVUaW1lUG9pbnRTdGFydCcsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkUGFyYW17SXRlbUNyZWF0ZVRpbWVQb2ludFN0YXJ0fSB8fCAnTGFzdCcsCiAgICApOwogICAgJFBhcmFte0l0ZW1DcmVhdGVUaW1lUG9pbnRGb3JtYXRTdHJnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICBtaW51dGUgPT4gVHJhbnNsYXRhYmxlKCdtaW51dGUocyknKSwKICAgICAgICAgICAgaG91ciAgID0+IFRyYW5zbGF0YWJsZSgnaG91cihzKScpLAogICAgICAgICAgICBkYXkgICAgPT4gVHJhbnNsYXRhYmxlKCdkYXkocyknKSwKICAgICAgICAgICAgd2VlayAgID0+IFRyYW5zbGF0YWJsZSgnd2VlayhzKScpLAogICAgICAgICAgICBtb250aCAgPT4gVHJhbnNsYXRhYmxlKCdtb250aChzKScpLAogICAgICAgICAgICB5ZWFyICAgPT4gVHJhbnNsYXRhYmxlKCd5ZWFyKHMpJyksCiAgICAgICAgfSwKICAgICAgICBOYW1lICAgICAgID0+ICdJdGVtQ3JlYXRlVGltZVBvaW50Rm9ybWF0JywKICAgICAgICBTZWxlY3RlZElEID0+ICRQYXJhbXtJdGVtQ3JlYXRlVGltZVBvaW50Rm9ybWF0fSwKICAgICk7CiAgICAkUGFyYW17SXRlbUNyZWF0ZVRpbWVTdGFydFN0cmd9ID0gJExheW91dE9iamVjdC0+QnVpbGREYXRlU2VsZWN0aW9uKAogICAgICAgICVQYXJhbSwKICAgICAgICBQcmVmaXggICA9PiAnSXRlbUNyZWF0ZVRpbWVTdGFydCcsCiAgICAgICAgRm9ybWF0ICAgPT4gJ0RhdGVJbnB1dEZvcm1hdCcsCiAgICAgICAgRGlmZlRpbWUgPT4gLSggKCA2MCAqIDYwICogMjQgKSAqIDMwICksCiAgICApOwogICAgJFBhcmFte0l0ZW1DcmVhdGVUaW1lU3RvcFN0cmd9ID0gJExheW91dE9iamVjdC0+QnVpbGREYXRlU2VsZWN0aW9uKAogICAgICAgICVQYXJhbSwKICAgICAgICBQcmVmaXggPT4gJ0l0ZW1DcmVhdGVUaW1lU3RvcCcsCiAgICAgICAgRm9ybWF0ID0+ICdEYXRlSW5wdXRGb3JtYXQnLAogICAgKTsKCiAgICAkUGFyYW17SXRlbUNoYW5nZVRpbWVQb2ludFN0cmd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICA9PiBbIDEgLi4gNTkgXSwKICAgICAgICBOYW1lICAgICAgID0+ICdJdGVtQ2hhbmdlVGltZVBvaW50JywKICAgICAgICBTZWxlY3RlZElEID0+ICRQYXJhbXtJdGVtQ2hhbmdlVGltZVBvaW50fSwKICAgICk7CiAgICAkUGFyYW17SXRlbUNoYW5nZVRpbWVQb2ludFN0YXJ0U3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgJ0xhc3QnICAgPT4gVHJhbnNsYXRhYmxlKCd3aXRoaW4gdGhlIGxhc3QgLi4uJyksCiAgICAgICAgICAgICdCZWZvcmUnID0+IFRyYW5zbGF0YWJsZSgnbW9yZSB0aGFuIC4uLiBhZ28nKSwKICAgICAgICB9LAogICAgICAgIE5hbWUgICAgICAgPT4gJ0l0ZW1DaGFuZ2VUaW1lUG9pbnRTdGFydCcsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkUGFyYW17SXRlbUNoYW5nZVRpbWVQb2ludFN0YXJ0fSB8fCAnTGFzdCcsCiAgICApOwogICAgJFBhcmFte0l0ZW1DaGFuZ2VUaW1lUG9pbnRGb3JtYXRTdHJnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICBtaW51dGUgPT4gVHJhbnNsYXRhYmxlKCdtaW51dGUocyknKSwKICAgICAgICAgICAgaG91ciAgID0+IFRyYW5zbGF0YWJsZSgnaG91cihzKScpLAogICAgICAgICAgICBkYXkgICAgPT4gVHJhbnNsYXRhYmxlKCdkYXkocyknKSwKICAgICAgICAgICAgd2VlayAgID0+IFRyYW5zbGF0YWJsZSgnd2VlayhzKScpLAogICAgICAgICAgICBtb250aCAgPT4gVHJhbnNsYXRhYmxlKCdtb250aChzKScpLAogICAgICAgICAgICB5ZWFyICAgPT4gVHJhbnNsYXRhYmxlKCd5ZWFyKHMpJyksCiAgICAgICAgfSwKICAgICAgICBOYW1lICAgICAgID0+ICdJdGVtQ2hhbmdlVGltZVBvaW50Rm9ybWF0JywKICAgICAgICBTZWxlY3RlZElEID0+ICRQYXJhbXtJdGVtQ2hhbmdlVGltZVBvaW50Rm9ybWF0fSwKICAgICk7CiAgICAkUGFyYW17SXRlbUNoYW5nZVRpbWVTdGFydFN0cmd9ID0gJExheW91dE9iamVjdC0+QnVpbGREYXRlU2VsZWN0aW9uKAogICAgICAgICVQYXJhbSwKICAgICAgICBQcmVmaXggICA9PiAnSXRlbUNoYW5nZVRpbWVTdGFydCcsCiAgICAgICAgRm9ybWF0ICAgPT4gJ0RhdGVJbnB1dEZvcm1hdCcsCiAgICAgICAgRGlmZlRpbWUgPT4gLSggKCA2MCAqIDYwICogMjQgKSAqIDMwICksCiAgICApOwogICAgJFBhcmFte0l0ZW1DaGFuZ2VUaW1lU3RvcFN0cmd9ID0gJExheW91dE9iamVjdC0+QnVpbGREYXRlU2VsZWN0aW9uKAogICAgICAgICVQYXJhbSwKICAgICAgICBQcmVmaXggPT4gJ0l0ZW1DaGFuZ2VUaW1lU3RvcCcsCiAgICAgICAgRm9ybWF0ID0+ICdEYXRlSW5wdXRGb3JtYXQnLAogICAgKTsKCiAgICAjIENyZWF0ZSBIVE1MIHN0cmluZ3MgZm9yIGFsbCBkeW5hbWljIGZpZWxkcy4KICAgIG15ICVEeW5hbWljRmllbGRIVE1MOwoKICAgIG15ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZCcpOwoKICAgIERZTkFNSUNGSUVMRDoKICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHsgJFNlbGYtPntEeW5hbWljRmllbGR9IH0gKSB7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICAjIEdldCBzZWFyY2ggZmllbGQgcHJlZmVyZW5jZXMuCiAgICAgICAgbXkgJFNlYXJjaEZpZWxkUHJlZmVyZW5jZXMgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+U2VhcmNoRmllbGRQcmVmZXJlbmNlcygKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgKTsKCiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzQXJyYXlSZWZXaXRoRGF0YSgkU2VhcmNoRmllbGRQcmVmZXJlbmNlcyk7CgogICAgICAgIFBSRUZFUkVOQ0U6CiAgICAgICAgZm9yIG15ICRQcmVmZXJlbmNlICggQHskU2VhcmNoRmllbGRQcmVmZXJlbmNlc30gKSB7CgogICAgICAgICAgICAjIEdldCBmaWVsZCBIVE1MLgogICAgICAgICAgICAkRHluYW1pY0ZpZWxkSFRNTHsgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IC4gJFByZWZlcmVuY2UtPntUeXBlfSB9CiAgICAgICAgICAgICAgICA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5TZWFyY2hGaWVsZFJlbmRlcigKICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgICAgICBQcm9maWxlICAgICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICAgICAgICAgICAgICBEZWZhdWx0VmFsdWUgICAgICAgPT4KICAgICAgICAgICAgICAgICAgICAkU2VsZi0+e0NvbmZpZ30tPntEZWZhdWx0c30tPntEeW5hbWljRmllbGR9LT57ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9LAogICAgICAgICAgICAgICAgICAgIExheW91dE9iamVjdCA9PiAkTGF5b3V0T2JqZWN0LAogICAgICAgICAgICAgICAgICAgIFR5cGUgICAgICAgICA9PiAkUHJlZmVyZW5jZS0+e1R5cGV9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnU2VhcmNoJywKICAgICAgICBEYXRhID0+IHslUGFyYW19LAogICAgKTsKCiAgICBteSAkTXVsdGlMYW5ndWFnZSA9ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpNdWx0aUxhbmd1YWdlJyk7CiAgICBpZiAoJE11bHRpTGFuZ3VhZ2UpIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnTGFuZ3VhZ2UnLAogICAgICAgICAgICBEYXRhID0+IHslUGFyYW19LAogICAgICAgICk7CiAgICB9CgogICAgIyBPdXRwdXQgRHluYW1pYyBmaWVsZHMgYmxvY2tzLgogICAgRFlOQU1JQ0ZJRUxEOgogICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gfSApIHsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CgogICAgICAgICMgR2V0IHNlYXJjaCBmaWVsZCBwcmVmZXJlbmNlcy4KICAgICAgICBteSAkU2VhcmNoRmllbGRQcmVmZXJlbmNlcyA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5TZWFyY2hGaWVsZFByZWZlcmVuY2VzKAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICApOwoKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNBcnJheVJlZldpdGhEYXRhKCRTZWFyY2hGaWVsZFByZWZlcmVuY2VzKTsKCiAgICAgICAgUFJFRkVSRU5DRToKICAgICAgICBmb3IgbXkgJFByZWZlcmVuY2UgKCBAeyRTZWFyY2hGaWVsZFByZWZlcmVuY2VzfSApIHsKCiAgICAgICAgICAgICMgU2tpcCBmaWVsZHMgdGhhdCBIVE1MIGNvdWxkIG5vdCBiZSByZXRyaWV2ZWQuCiAgICAgICAgICAgIG5leHQgUFJFRkVSRU5DRSBpZiAhSXNIYXNoUmVmV2l0aERhdGEoCiAgICAgICAgICAgICAgICAkRHluYW1pY0ZpZWxkSFRNTHsgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IC4gJFByZWZlcmVuY2UtPntUeXBlfSB9CiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0R5bmFtaWNGaWVsZCcsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBMYWJlbCA9PgogICAgICAgICAgICAgICAgICAgICAgICAkRHluYW1pY0ZpZWxkSFRNTHsgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IC4gJFByZWZlcmVuY2UtPntUeXBlfSB9CiAgICAgICAgICAgICAgICAgICAgICAgIC0+e0xhYmVsfSwKICAgICAgICAgICAgICAgICAgICBGaWVsZCA9PgogICAgICAgICAgICAgICAgICAgICAgICAkRHluYW1pY0ZpZWxkSFRNTHsgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IC4gJFByZWZlcmVuY2UtPntUeXBlfSB9CiAgICAgICAgICAgICAgICAgICAgICAgIC0+e0ZpZWxkfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudEZBUVNlYXJjaFNtYWxsJywKICAgICAgICBEYXRhICAgICAgICAgPT4geyVQYXJhbX0sCiAgICApOwp9CgoxOwo=</File>
        <File Location="Kernel/Modules/AgentFAQZoom.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWdlbnRGQVFab29tOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6TGFuZ3VhZ2UgICAgICAgICAgICAgIHF3KFRyYW5zbGF0YWJsZSk7CnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIEFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QuCiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIG15ICVVc2VyUHJlZmVyZW5jZXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5HZXRQcmVmZXJlbmNlcygKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICBpZiAoICFkZWZpbmVkICRTZWxmLT57RG9Ob3RTaG93QnJvd3NlckxpbmtNZXNzYWdlfSApIHsKICAgICAgICBpZiAoICRVc2VyUHJlZmVyZW5jZXN7VXNlckFnZW50RG9Ob3RTaG93QnJvd3NlckxpbmtNZXNzYWdlfSApIHsKICAgICAgICAgICAgJFNlbGYtPntEb05vdFNob3dCcm93c2VyTGlua01lc3NhZ2V9ID0gMTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRTZWxmLT57RG9Ob3RTaG93QnJvd3NlckxpbmtNZXNzYWdlfSA9IDA7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBQZXJtaXNzaW9uIGNoZWNrLgogICAgaWYgKCAhJFNlbGYtPntBY2Nlc3NSb30gKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgTWVzc2FnZSAgICA9PiBUcmFuc2xhdGFibGUoJ1lvdSBuZWVkIHJvIHBlcm1pc3Npb24hJyksCiAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgKTsKICAgIH0KCiAgICBteSAkUGFyYW1PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CgogICAgIyBHZXQgcGFyYW1ldGVycyBmcm9tIHdlYiByZXF1ZXN0LgogICAgbXkgJUdldFBhcmFtOwogICAgJEdldFBhcmFte0l0ZW1JRH0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnSXRlbUlEJyApOwogICAgJEdldFBhcmFte1JhdGV9ICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnUmF0ZScgKTsKCiAgICAjIEdldCBuYXZpZ2F0aW9uIGJhciBvcHRpb24uCiAgICBteSAkTmF2ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ05hdicgKSB8fCAnJzsKCiAgICBpZiAoICEkR2V0UGFyYW17SXRlbUlEfSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdObyBJdGVtSUQgaXMgZ2l2ZW4hJyksCiAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICApOwogICAgfQoKICAgIG15ICRGQVFPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RkFRJyk7CgogICAgbXkgJUZBUURhdGEgPSAkRkFRT2JqZWN0LT5GQVFHZXQoCiAgICAgICAgSXRlbUlEICAgICAgICA9PiAkR2V0UGFyYW17SXRlbUlEfSwKICAgICAgICBJdGVtRmllbGRzICAgID0+IDEsCiAgICAgICAgVXNlcklEICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgRHluYW1pY0ZpZWxkcyA9PiAxLAogICAgKTsKICAgIGlmICggISVGQVFEYXRhICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigpOwogICAgfQoKICAgICMgQ2hlY2sgdXNlciBwZXJtaXNzaW9uLgogICAgbXkgJFBlcm1pc3Npb24gPSAkRkFRT2JqZWN0LT5DaGVja0NhdGVnb3J5VXNlclBlcm1pc3Npb24oCiAgICAgICAgVXNlcklEICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgQ2F0ZWdvcnlJRCA9PiAkRkFRRGF0YXtDYXRlZ29yeUlEfSwKICAgICAgICBUeXBlICAgICAgID0+ICdybycsCiAgICApOwogICAgaWYgKCAhJFBlcm1pc3Npb24gKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgTWVzc2FnZSAgICA9PiBUcmFuc2xhdGFibGUoJ1lvdSBoYXZlIG5vIHBlcm1pc3Npb24gZm9yIHRoaXMgY2F0ZWdvcnkhJyksCiAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgKTsKICAgIH0KCiAgICBteSAkSFRNTFV0aWxzT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkhUTUxVdGlscycpOwoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIEhUTUxWaWV3IFN1YmFjdGlvbgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdIVE1MVmlldycgKSB7CgogICAgICAgICMgZ2V0IHBhcmFtcwogICAgICAgIG15ICRGaWVsZCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICJGaWVsZCIgKTsKCiAgICAgICAgZm9yIG15ICROZWVkZWQgKHF3KCBJdGVtSUQgRmllbGQgKSkgewogICAgICAgICAgICBpZiAoICEkTmVlZGVkICkgewogICAgICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZGVkIFBhcmFtOiAkTmVlZGVkISIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGdldCB0aGUgRmllbGQgY29udGVudAogICAgICAgIG15ICRGaWVsZENvbnRlbnQgPSAkRkFRT2JqZWN0LT5JdGVtRmllbGRHZXQoCiAgICAgICAgICAgIEl0ZW1JRCA9PiAkR2V0UGFyYW17SXRlbUlEfSwKICAgICAgICAgICAgRmllbGQgID0+ICRGaWVsZCwKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIFJld3JpdGUgaGFuZGxlIGFuZCBhY3Rpb24sIHRha2UgY2FyZSBvZiBvbGQgc3R5bGUgYmVmb3JlIEZBUSAyLjAueC4KICAgICAgICAkRmllbGRDb250ZW50ID1+IHN7CiAgICAgICAgICAgIEFjdGlvbj1BZ2VudEZBUSBbJl0oYW1wOyk/IFN1YmFjdGlvbj1Eb3dubG9hZCBbJl0oYW1wOyk/CiAgICAgICAgfXtBY3Rpb249QWdlbnRGQVFab29tO1N1YmFjdGlvbj1Eb3dubG9hZEF0dGFjaG1lbnQ7fWd4bXM7CgogICAgICAgICMgYnVpbGQgYmFzZSBVUkwgZm9yIGlubGluZSBpbWFnZXMKICAgICAgICBteSAkU2Vzc2lvbklEID0gJyc7CiAgICAgICAgaWYgKCAkU2VsZi0+e1Nlc3Npb25JRH0gJiYgISRTZWxmLT57U2Vzc2lvbklEQ29va2llfSApIHsKICAgICAgICAgICAgJFNlc3Npb25JRCA9ICc7JyAuICRTZWxmLT57U2Vzc2lvbk5hbWV9IC4gJz0nIC4gJFNlbGYtPntTZXNzaW9uSUR9OwogICAgICAgICAgICAkRmllbGRDb250ZW50ID1+IHN7CiAgICAgICAgICAgICAgICAoQWN0aW9uPUFnZW50RkFRWm9vbTtTdWJhY3Rpb249RG93bmxvYWRBdHRhY2htZW50O0l0ZW1JRD1cZCs7RmlsZUlEPVxkKykKICAgICAgICAgICAgfXskMSRTZXNzaW9uSUR9Z21zeDsKICAgICAgICB9CgogICAgICAgICMgQ29udmVydCBjb250ZW50IHRvIEhUTUwgaWYgbmVlZGVkLgogICAgICAgIGlmICgKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdGQVE6Okl0ZW06OkhUTUwnKQogICAgICAgICAgICAmJiAkTGF5b3V0T2JqZWN0LT57QnJvd3NlclJpY2hUZXh0fQogICAgICAgICAgICAmJiAkRkFRRGF0YXtDb250ZW50VHlwZX0gbmUgJ3RleHQvaHRtbCcKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJEZpZWxkQ29udGVudCA9ICRIVE1MVXRpbHNPYmplY3QtPlRvSFRNTCgKICAgICAgICAgICAgICAgIFN0cmluZyA9PiAkRmllbGRDb250ZW50LAogICAgICAgICAgICApIHx8ICcnOwogICAgICAgIH0KCiAgICAgICAgIyBEZXRlY3QgYWxsIHBsYWluIHRleHQgbGlua3MgYW5kIHB1dCB0aGVtIGludG8gYW4gSFRNTCA8YT4gdGFnLgogICAgICAgICRGaWVsZENvbnRlbnQgPSAkSFRNTFV0aWxzT2JqZWN0LT5MaW5rUXVvdGUoCiAgICAgICAgICAgIFN0cmluZyA9PiAkRmllbGRDb250ZW50LAogICAgICAgICk7CgogICAgICAgICMgU2V0IHRhcmdldD0iX2JsYW5rIiBhdHRyaWJ1dGUgdG8gYWxsIEhUTUwgPGE+IHRhZ3MgdGhlIExpbmtRdW90ZSBmdW5jdGlvbiBuZWVkcyB0byBiZQogICAgICAgICMgICBjYWxsZWQgYWdhaW4KICAgICAgICAkRmllbGRDb250ZW50ID0gJEhUTUxVdGlsc09iamVjdC0+TGlua1F1b3RlKAogICAgICAgICAgICBTdHJpbmcgICAgPT4gJEZpZWxkQ29udGVudCwKICAgICAgICAgICAgVGFyZ2V0QWRkID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBhZGQgbmVlZGVkIEhUTUwgaGVhZGVycwogICAgICAgICRGaWVsZENvbnRlbnQgPSAkSFRNTFV0aWxzT2JqZWN0LT5Eb2N1bWVudENvbXBsZXRlKAogICAgICAgICAgICBTdHJpbmcgID0+ICRGaWVsZENvbnRlbnQsCiAgICAgICAgICAgIENoYXJzZXQgPT4gJ3V0Zi04JywKICAgICAgICApOwoKICAgICAgICAjIHJldHVybiBjb21wbGV0ZSBIVE1MIGFzIGFuIGF0dGFjaG1lbnQKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+QXR0YWNobWVudCgKICAgICAgICAgICAgVHlwZSAgICAgICAgPT4gJ2lubGluZScsCiAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L2h0bWwnLAogICAgICAgICAgICBDb250ZW50ICAgICA9PiAkRmllbGRDb250ZW50LAogICAgICAgICk7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgRG93bmxvYWRBdHRhY2htZW50IFN1Yi1hY3Rpb24KICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnRG93bmxvYWRBdHRhY2htZW50JyApIHsKCiAgICAgICAgJEdldFBhcmFte0ZpbGVJRH0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnRmlsZUlEJyApOwoKICAgICAgICBpZiAoICFkZWZpbmVkICRHZXRQYXJhbXtGaWxlSUR9ICkgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RmF0YWxFcnJvcigKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdOZWVkIEZpbGVJRCEnKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgR2V0IGF0dGFjaG1lbnRzLgogICAgICAgIG15ICVGaWxlID0gJEZBUU9iamVjdC0+QXR0YWNobWVudEdldCgKICAgICAgICAgICAgSXRlbUlEID0+ICRHZXRQYXJhbXtJdGVtSUR9LAogICAgICAgICAgICBGaWxlSUQgPT4gJEdldFBhcmFte0ZpbGVJRH0sCiAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKICAgICAgICBpZiAoJUZpbGUpIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkF0dGFjaG1lbnQoJUZpbGUpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTm8gc3VjaCBhdHRhY2htZW50ICgkR2V0UGFyYW17RmlsZUlEfSkhIE1heSBiZSBhbiBhdHRhY2shISEiLAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKCk7CiAgICAgICAgfQogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIE90aGVyIHN1Yi1hY3Rpb25zIGNvbnRpbnVlcyBoZXJlCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgbXkgJE91dHB1dDsKICAgIGlmICggJE5hdiBlcSAnTm9uZScgKSB7CiAgICAgICAgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlciggVHlwZSA9PiAnU21hbGwnICk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKAogICAgICAgICAgICBWYWx1ZSA9PiAkRkFRRGF0YXtUaXRsZX0sCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgIH0KCiAgICAjIERlZmluZSBkaWZmZXJlbnQgbm90aWZpY2F0aW9ucy4KICAgIG15ICVOb3RpZmljYXRpb25zID0gKAogICAgICAgIFRoYW5rcyA9PiB7CiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdJbmZvJywKICAgICAgICAgICAgSW5mbyAgICAgPT4gVHJhbnNsYXRhYmxlKCdUaGFua3MgZm9yIHlvdXIgdm90ZSEnKSwKICAgICAgICB9LAogICAgICAgIEFscmVhZHlWb3RlZCA9PiB7CiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdFcnJvcicsCiAgICAgICAgICAgIEluZm8gICAgID0+IFRyYW5zbGF0YWJsZSgnWW91IGhhdmUgYWxyZWFkeSB2b3RlZCEnKSwKICAgICAgICB9LAogICAgICAgIE5vUmF0ZSA9PiB7CiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdFcnJvcicsCiAgICAgICAgICAgIEluZm8gICAgID0+IFRyYW5zbGF0YWJsZSgnTm8gcmF0ZSBzZWxlY3RlZCEnKSwKICAgICAgICB9LAogICAgKTsKCiAgICAjIE91dHB1dCBub3RpZmljYXRpb25zIGlmIGFueS4KICAgIG15ICROb3RpZnkgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnTm90aWZ5JyApIHx8ICcnOwogICAgaWYgKCAkTm90aWZ5ICYmIElzSGFzaFJlZldpdGhEYXRhKCAkTm90aWZpY2F0aW9uc3skTm90aWZ5fSApICkgewogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICAleyAkTm90aWZpY2F0aW9uc3skTm90aWZ5fSB9LAogICAgICAgICk7CiAgICB9CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBHZXQgZGVmYXVsdCBvcHRpb25zLgogICAgbXkgJE11bHRpTGFuZ3VhZ2UgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6TXVsdGlMYW5ndWFnZScpOwogICAgbXkgJFZvdGluZyAgICAgICAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6Vm90aW5nJyk7CgogICAgIyBTZXQgZGVmYXVsdCBpbnRlcmZhY2Ugc2V0dGluZ3MuCiAgICBteSAkSW50ZXJmYWNlID0gJEZBUU9iamVjdC0+U3RhdGVUeXBlR2V0KAogICAgICAgIE5hbWUgICA9PiAnaW50ZXJuYWwnLAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwogICAgbXkgJEludGVyZmFjZVN0YXRlcyA9ICRGQVFPYmplY3QtPlN0YXRlVHlwZUxpc3QoCiAgICAgICAgVHlwZXMgID0+ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpBZ2VudDo6U3RhdGVUeXBlcycpLAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgR2V0IEZBUSB2b3RlIGluZm9ybWF0aW9uLgogICAgbXkgJFZvdGVEYXRhOwogICAgaWYgKCRWb3RpbmcpIHsKICAgICAgICAkVm90ZURhdGEgPSAkRkFRT2JqZWN0LT5Wb3RlR2V0KAogICAgICAgICAgICBDcmVhdGVCeSAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICBJdGVtSUQgICAgPT4gJEZBUURhdGF7SXRlbUlEfSwKICAgICAgICAgICAgSW50ZXJmYWNlID0+ICRJbnRlcmZhY2UtPntTdGF0ZUlEfSwKICAgICAgICAgICAgSVAgICAgICAgID0+ICRQYXJhbU9iamVjdC0+UmVtb3RlQWRkcigpLAogICAgICAgICAgICBVc2VySUQgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CiAgICB9CgogICAgIyBDaGVjayBpZiB1c2VyIGFscmVhZHkgdm90ZWQgdGhpcyBGQVEgaXRlbS4KICAgIG15ICRBbHJlYWR5Vm90ZWQ7CiAgICBpZiAoJFZvdGVEYXRhKSB7CgogICAgICAgIG15ICRJdGVtQ2hhbmdlZFN5c3RlbVRpbWUgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgICAgIFN0cmluZyA9PiAkRkFRRGF0YXtDaGFuZ2VkfSB8fCAnJywKICAgICAgICAgICAgfQogICAgICAgICktPlRvRXBvY2goKTsKCiAgICAgICAgbXkgJFZvdGVDcmVhdGVkU3lzdGVtVGltZSA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICAgICAgU3RyaW5nID0+ICRWb3RlRGF0YS0+e0NyZWF0ZWR9IHx8ICcnLAogICAgICAgICAgICB9CiAgICAgICAgKS0+VG9FcG9jaCgpOwoKICAgICAgICBpZiAoICRJdGVtQ2hhbmdlZFN5c3RlbVRpbWUgPD0gJFZvdGVDcmVhdGVkU3lzdGVtVGltZSApIHsKICAgICAgICAgICAgJEFscmVhZHlWb3RlZCA9IDE7CiAgICAgICAgfQogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIFZvdGUgU3ViLWFjdGlvbgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdWb3RlJyApIHsKCiAgICAgICAgIyBVc2VyIGNhbid0IHVzZSB0aGlzIHN1Yi1hY3Rpb24gaWYgaXMgbm90IGVuYWJsZWQuCiAgICAgICAgaWYgKCAhJFZvdGluZyApIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+RmF0YWxFcnJvcigKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdUaGUgdm90aW5nIG1lY2hhbmlzbSBpcyBub3QgZW5hYmxlZCEnKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgVXNlciBjYW4gdm90ZSBvbmx5IG9uY2UgcGVyIEZBUSByZXZpc2lvbi4KICAgICAgICBpZiAoJEFscmVhZHlWb3RlZCkgewoKICAgICAgICAgICAgIyBSZWRpcmVjdCB0byBGQVEgem9vbS4KICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICAgICAgT1AgPT4gJ0FjdGlvbj1BZ2VudEZBUVpvb207SXRlbUlEPScKICAgICAgICAgICAgICAgICAgICAuICRHZXRQYXJhbXtJdGVtSUR9CiAgICAgICAgICAgICAgICAgICAgLiAnO05hdj0kTmF2O05vdGlmeT1BbHJlYWR5Vm90ZWQnCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIFNldCB0aGUgdm90ZSBpZiBhbnkuCiAgICAgICAgZWxzaWYgKCBkZWZpbmVkICRHZXRQYXJhbXtSYXRlfSApIHsKCiAgICAgICAgICAgICMgR2V0IHJhdGVzIGNvbmZpZy4KICAgICAgICAgICAgbXkgJFZvdGluZ1JhdGVzID0gJENvbmZpZ09iamVjdC0+R2V0KCdGQVE6Okl0ZW06OlZvdGluZzo6UmF0ZXMnKTsKICAgICAgICAgICAgbXkgJFJhdGUgICAgICAgID0gJEdldFBhcmFte1JhdGV9OwoKICAgICAgICAgICAgIyBTZW5kIGVycm9yIGlmIHJhdGUgaXMgbm90IGRlZmluZWQgaW4gY29uZmlnLgogICAgICAgICAgICBpZiAoICEkVm90aW5nUmF0ZXMtPnskUmF0ZX0gKSB7CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5GYXRhbEVycm9yKAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdUaGUgdm90ZSByYXRlIGlzIG5vdCBkZWZpbmVkIScpLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBPdGhlcndpc2UgYWRkIHRoZSB2b3RlLgogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRGQVFPYmplY3QtPlZvdGVBZGQoCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlZEJ5ID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICBJdGVtSUQgICAgPT4gJEdldFBhcmFte0l0ZW1JRH0sCiAgICAgICAgICAgICAgICAgICAgSVAgICAgICAgID0+ICRQYXJhbU9iamVjdC0+UmVtb3RlQWRkcigpLAogICAgICAgICAgICAgICAgICAgIEludGVyZmFjZSA9PiAkSW50ZXJmYWNlLT57U3RhdGVJRH0sCiAgICAgICAgICAgICAgICAgICAgUmF0ZSAgICAgID0+ICRHZXRQYXJhbXtSYXRlfSwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIERvIG5vdCBzaG93IHRoZSB2b3RpbmcgZm9ybS4KICAgICAgICAgICAgICAgICRBbHJlYWR5Vm90ZWQgPSAxOwoKICAgICAgICAgICAgICAgICMgUmVmcmVzaCBGQVEgaXRlbSBkYXRhLgogICAgICAgICAgICAgICAgJUZBUURhdGEgPSAkRkFRT2JqZWN0LT5GQVFHZXQoCiAgICAgICAgICAgICAgICAgICAgSXRlbUlEICAgICAgICA9PiAkR2V0UGFyYW17SXRlbUlEfSwKICAgICAgICAgICAgICAgICAgICBJdGVtRmllbGRzICAgID0+IDEsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkcyA9PiAxLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIGlmICggISVGQVFEYXRhICkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgUmVkaXJlY3QgdG8gRkFRIHpvb20uCiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgICAgICAgICAgT1AgPT4gJ0FjdGlvbj1BZ2VudEZBUVpvb207SXRlbUlEPScKICAgICAgICAgICAgICAgICAgICAgICAgLiAkR2V0UGFyYW17SXRlbUlEfQogICAgICAgICAgICAgICAgICAgICAgICAuICc7TmF2PSROYXY7Tm90aWZ5PVRoYW5rcycKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgVXNlciBpcyBhYmxlIHRvIHZvdGUgYnV0IG5vIHJhdGUgaGFzIGJlZW4gc2VsZWN0ZWQuCiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIFJlZGlyZWN0IHRvIEZBUSB6b29tCiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgICAgIE9QID0+ICdBY3Rpb249QWdlbnRGQVFab29tO0l0ZW1JRD0nIC4gJEdldFBhcmFte0l0ZW1JRH0gLiAnO05hdj0kTmF2O05vdGlmeT1Ob1JhdGUnCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgUHJlcGFyZSBmaWVsZHMgZGF0YSAoU3RpbGwgbmVlZGVkIGZvciBQbGFpblRleHQpLgogICAgRklFTEQ6CiAgICBmb3IgbXkgJEZpZWxkIChxdyhGaWVsZDEgRmllbGQyIEZpZWxkMyBGaWVsZDQgRmllbGQ1IEZpZWxkNikpIHsKICAgICAgICBuZXh0IEZJRUxEIGlmICEkRkFRRGF0YXskRmllbGR9OwoKICAgICAgICAjIFJld3JpdGUgaGFuZGxlIGFuZCBhY3Rpb24sIHRha2UgY2FyZSBvZiBvbGQgc3R5bGUgYmVmb3JlIEZBUSAyLjAueC4KICAgICAgICAkRkFRRGF0YXskRmllbGR9ID1+IHN7CiAgICAgICAgICAgIEFjdGlvbj1BZ2VudEZBUSBbJl0oYW1wOyk/IFN1YmFjdGlvbj1Eb3dubG9hZCBbJl0oYW1wOyk/CiAgICAgICAgfXtBY3Rpb249QWdlbnRGQVFab29tO1N1YmFjdGlvbj1Eb3dubG9hZEF0dGFjaG1lbnQ7fWd4bXM7CgogICAgICAgICMgTm8gcXVvdGluZyBpZiBIVE1MIHZpZXcgaXMgZW5hYmxlZC4KICAgICAgICBuZXh0IEZJRUxEIGlmICRDb25maWdPYmplY3QtPkdldCgnRkFROjpJdGVtOjpIVE1MJyk7CgogICAgICAgICMgSFRNTCBxdW90aW5nLgogICAgICAgICRGQVFEYXRheyRGaWVsZH0gPSAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKAogICAgICAgICAgICBOZXdMaW5lICAgICAgICA9PiAwLAogICAgICAgICAgICBUZXh0ICAgICAgICAgICA9PiAkRkFRRGF0YXskRmllbGR9LAogICAgICAgICAgICBWTWF4ICAgICAgICAgICA9PiA1MDAwLAogICAgICAgICAgICBIVE1MUmVzdWx0TW9kZSA9PiAxLAogICAgICAgICAgICBMaW5rRmVhdHVyZSAgICA9PiAxLAogICAgICAgICk7CiAgICB9CgogICAgbXkgJFVzZXJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwoKICAgICMgR2V0IHVzZXIgaW5mbyAoQ3JlYXRlZEJ5KS4KICAgIG15ICVVc2VySW5mbyA9ICRVc2VyT2JqZWN0LT5HZXRVc2VyRGF0YSgKICAgICAgICBVc2VySUQgPT4gJEZBUURhdGF7Q3JlYXRlZEJ5fQogICAgKTsKICAgICRQYXJhbXtDcmVhdGVkQnlVc2VyfSA9ICIkVXNlckluZm97VXNlckZ1bGxuYW1lfSI7CgogICAgIyBHZXQgdXNlciBpbmZvIChDaGFuZ2VkQnkpLgogICAgJVVzZXJJbmZvID0gJFVzZXJPYmplY3QtPkdldFVzZXJEYXRhKAogICAgICAgIFVzZXJJRCA9PiAkRkFRRGF0YXtDaGFuZ2VkQnl9CiAgICApOwogICAgJFBhcmFte0NoYW5nZWRCeVVzZXJ9ID0gIiRVc2VySW5mb3tVc2VyRnVsbG5hbWV9IjsKCiAgICAjIFNldCB2b3RpbmcgcmVzdWx0cy4KICAgICRQYXJhbXtWb3RpbmdSZXN1bHRDb2xvcn0gPSAkTGF5b3V0T2JqZWN0LT5HZXRGQVFJdGVtVm90aW5nUmF0ZUNvbG9yKAogICAgICAgIFJhdGUgPT4gJEZBUURhdGF7Vm90ZVJlc3VsdH0sCiAgICApOwoKICAgIGlmICggISRQYXJhbXtWb3RpbmdSZXN1bHRDb2xvcn0gfHwgJEZBUURhdGF7Vm90ZXN9IGVxICcwJyApIHsKICAgICAgICAkUGFyYW17Vm90aW5nUmVzdWx0Q29sb3J9ID0gJ0dyYXknOwogICAgfQoKICAgIGlmICggJE5hdiBuZSAnTm9uZScgKSB7CgogICAgICAgICMgUnVuIEZBUSBtZW51IG1vZHVsZXMuCiAgICAgICAgaWYgKCByZWYgJENvbmZpZ09iamVjdC0+R2V0KCdGQVE6OkZyb250ZW5kOjpNZW51TW9kdWxlJykgZXEgJ0hBU0gnICkgewogICAgICAgICAgICBteSAlTWVudXMgICA9ICV7ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpGcm9udGVuZDo6TWVudU1vZHVsZScpIH07CiAgICAgICAgICAgIG15ICRDb3VudGVyID0gMDsKICAgICAgICAgICAgZm9yIG15ICRNZW51ICggc29ydCBrZXlzICVNZW51cyApIHsKCiAgICAgICAgICAgICAgICAjIExvYWQgbW9kdWxlLgogICAgICAgICAgICAgICAgaWYgKCAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TWFpbicpLT5SZXF1aXJlKCAkTWVudXN7JE1lbnV9LT57TW9kdWxlfSApICkgewogICAgICAgICAgICAgICAgICAgIG15ICRPYmplY3QgPSAkTWVudXN7JE1lbnV9LT57TW9kdWxlfS0+bmV3KAogICAgICAgICAgICAgICAgICAgICAgICAleyRTZWxmfSwKICAgICAgICAgICAgICAgICAgICAgICAgSXRlbUlEID0+ICRGQVFEYXRhe0l0ZW1JRH0sCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgIyBTZXQgQ1NTIGNsYXNzZXMuCiAgICAgICAgICAgICAgICAgICAgaWYgKCAkTWVudXN7JE1lbnV9LT57VGFyZ2V0fSApIHsKCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICggJE1lbnVzeyRNZW51fS0+e1RhcmdldH0gZXEgJ1BvcFVwJyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRNZW51c3skTWVudX0tPntDbGFzc30gPSAnQXNQb3B1cCc7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzaWYgKCAkTWVudXN7JE1lbnV9LT57VGFyZ2V0fSBlcSAnQmFjaycgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkTWVudXN7JE1lbnV9LT57Q2xhc3N9ID0gJ0hpc3RvcnlCYWNrJzsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNpZiAoICRNZW51c3skTWVudX0tPntUYXJnZXR9IGVxICdDb25maXJtYXRpb25EaWFsb2cnICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJE1lbnVzeyRNZW51fS0+e0NsYXNzfSA9ICdBc0NvbmZpcm1hdGlvbkRpYWxvZyc7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAjIFJ1biBtb2R1bGUuCiAgICAgICAgICAgICAgICAgICAgJENvdW50ZXIgPSAkT2JqZWN0LT5SdW4oCiAgICAgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgRkFRSXRlbSA9PiB7JUZBUURhdGF9LAogICAgICAgICAgICAgICAgICAgICAgICBDb3VudGVyID0+ICRDb3VudGVyLAogICAgICAgICAgICAgICAgICAgICAgICBDb25maWcgID0+ICRNZW51c3skTWVudX0sCiAgICAgICAgICAgICAgICAgICAgICAgIE1lbnVJRCAgPT4gJ01lbnUnIC4gJE1lbnUsCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5GYXRhbEVycm9yKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBPdXRwdXQgYXBwcm92YWwgc3RhdGUuCiAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgnRkFROjpBcHByb3ZhbFJlcXVpcmVkJykgKSB7CiAgICAgICAgJFBhcmFte0FwcHJvdmFsfSA9ICRGQVFEYXRhe0FwcHJvdmVkfSA/ICdZZXMnIDogJ05vJzsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnVmlld0FwcHJvdmFsJywKICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICApOwogICAgfQoKICAgIGlmICgkVm90aW5nKSB7CgogICAgICAgICMgT3V0cHV0IHZvdGVzIG51bWJlciBpZiBhbnkuCiAgICAgICAgaWYgKCAkRkFRRGF0YXtWb3Rlc30gKSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnVmlld1ZvdGVzJywKICAgICAgICAgICAgICAgIERhdGEgPT4geyVGQVFEYXRhfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgT3RoZXJ3aXNlIGRpc3BsYXkgYSBObyBWb3RlcyBmb3VuZCBtZXNzYWdlLgogICAgICAgIGVsc2UgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAnVmlld05vVm90ZXMnICk7CiAgICAgICAgfQogICAgfQoKICAgIG15ICRTaG93RkFRUGF0aCA9ICRMYXlvdXRPYmplY3QtPkZBUVBhdGhTaG93KAogICAgICAgIEZBUU9iamVjdCAgID0+ICRGQVFPYmplY3QsCiAgICAgICAgQ2F0ZWdvcnlJRCAgPT4gJEZBUURhdGF7Q2F0ZWdvcnlJRH0sCiAgICAgICAgVXNlcklEICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgIFBhdGhGb3JJdGVtID0+IDEsCiAgICAgICAgTmF2ICAgICAgICAgPT4gJE5hdiwKICAgICk7CiAgICBpZiAoJFNob3dGQVFQYXRoKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0ZBUVBhdGhJdGVtRWxlbWVudCcsCiAgICAgICAgICAgIERhdGEgPT4geyVGQVFEYXRhfSwKICAgICAgICAgICAgTmF2ICA9PiAkTmF2LAogICAgICAgICk7CiAgICB9CgogICAgIyBTaG93IGtleXdvcmRzIGFzIHNlYXJjaCBsaW5rcy4KICAgIGlmICggJEZBUURhdGF7S2V5d29yZHN9ICkgewoKICAgICAgICAjIFJlcGxhY2UgY29tbWFzIGFuZCBzZW1pY29sb25zLgogICAgICAgICRGQVFEYXRhe0tleXdvcmRzfSA9fiBzLywvIC9nOwogICAgICAgICRGQVFEYXRhe0tleXdvcmRzfSA9fiBzLzsvIC9nOwoKICAgICAgICBteSBAS2V5d29yZHMgPSBzcGxpdCAvXHMrLywgJEZBUURhdGF7S2V5d29yZHN9OwogICAgICAgIGZvciBteSAkS2V5d29yZCAoQEtleXdvcmRzKSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnS2V5d29yZHMnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgS2V5d29yZCA9PiAkS2V5d29yZCwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgU2hvdyBsYW5ndWFnZXMuCiAgICBpZiAoJE11bHRpTGFuZ3VhZ2UpIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnTGFuZ3VhZ2UnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICVGQVFEYXRhLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgIyBPdXRwdXQgcmF0aW5nIHN0YXJzLgogICAgaWYgKCRWb3RpbmcpIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5GQVFSYXRpbmdTdGFyc1Nob3coCiAgICAgICAgICAgIFZvdGVSZXN1bHQgPT4gJEZBUURhdGF7Vm90ZVJlc3VsdH0sCiAgICAgICAgICAgIFZvdGVzICAgICAgPT4gJEZBUURhdGF7Vm90ZXN9LAogICAgICAgICk7CiAgICB9CiAgICBpZiAoICROYXYgbmUgJ05vbmUnICkgewoKICAgICAgICAjIE91dHB1dCBleGlzdGluZyBhdHRhY2htZW50cy4KICAgICAgICBteSBAQXR0YWNobWVudEluZGV4ID0gJEZBUU9iamVjdC0+QXR0YWNobWVudEluZGV4KAogICAgICAgICAgICBJdGVtSUQgICAgID0+ICRHZXRQYXJhbXtJdGVtSUR9LAogICAgICAgICAgICBTaG93SW5saW5lID0+IDAsCiAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgT3V0cHV0IGhlYWRlciBhbmQgYWxsIGF0dGFjaG1lbnRzLgogICAgICAgIGlmIChAQXR0YWNobWVudEluZGV4KSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnQXR0YWNobWVudEhlYWRlcicsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGZvciBteSAkQXR0YWNobWVudCAoQEF0dGFjaG1lbnRJbmRleCkgewogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQXR0YWNobWVudFJvdycsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICVGQVFEYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAleyRBdHRhY2htZW50fSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIFNob3cgbWVzc2FnZSBhYm91dCBsaW5rcyBpbiBpZnJhbWVzLCBpZiB1c2VyIGRpZG4ndCBjbG9zZSBpdCBhbHJlYWR5LgogICAgaWYgKCAhJFNlbGYtPntEb05vdFNob3dCcm93c2VyTGlua01lc3NhZ2V9ICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdCcm93c2VyTGlua01lc3NhZ2UnLAogICAgICAgICk7CiAgICB9CgogICAgIyBTaG93IEZBUSBDb250ZW50LgogICAgbXkgJEZBUUJvZHkgPSAkTGF5b3V0T2JqZWN0LT5GQVFDb250ZW50U2hvdygKICAgICAgICBGQVFPYmplY3QgICAgICAgPT4gJEZBUU9iamVjdCwKICAgICAgICBJbnRlcmZhY2VTdGF0ZXMgPT4gJEludGVyZmFjZVN0YXRlcywKICAgICAgICBGQVFEYXRhICAgICAgICAgPT4geyVGQVFEYXRhfSwKICAgICAgICBVc2VySUQgICAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgIFJldHVybkNvbnRlbnQgICA9PiAxLAogICAgKTsKCiAgICAjIEdldCBjb25maWcgb2YgZnJvbnRlbmQgbW9kdWxlLgogICAgbXkgJENvbmZpZyA9ICRDb25maWdPYmplY3QtPkdldCgiRkFROjpGcm9udGVuZDo6JFNlbGYtPntBY3Rpb259Iik7CgogICAgIyBHZXQgdGhlIGR5bmFtaWMgZmllbGRzIGZvciB0aGlzIHNjcmVlbi4KICAgIG15ICREeW5hbWljRmllbGQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJyktPkR5bmFtaWNGaWVsZExpc3RHZXQoCiAgICAgICAgVmFsaWQgICAgICAgPT4gMSwKICAgICAgICBPYmplY3RUeXBlICA9PiAnRkFRJywKICAgICAgICBGaWVsZEZpbHRlciA9PiAkQ29uZmlnLT57RHluYW1pY0ZpZWxkfSB8fCB7fSwKICAgICk7CgogICAgRFlOQU1JQ0ZJRUxEOgogICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyREeW5hbWljRmllbGR9ICkgewogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKCiAgICAgICAgIyBHZXQgcHJpbnQgc3RyaW5nIGZvciB0aGlzIGR5bmFtaWMgZmllbGQuCiAgICAgICAgbXkgJFZhbHVlU3RyZyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKS0+RGlzcGxheVZhbHVlUmVuZGVyKAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICRGQVFEYXRheyAnRHluYW1pY0ZpZWxkXycgLiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSwKICAgICAgICAgICAgVmFsdWVNYXhDaGFycyAgICAgID0+IDI1MCwKICAgICAgICAgICAgTGF5b3V0T2JqZWN0ICAgICAgID0+ICRMYXlvdXRPYmplY3QsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJExhYmVsID0gJER5bmFtaWNGaWVsZENvbmZpZy0+e0xhYmVsfTsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0ZBUUR5bmFtaWNGaWVsZCcsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgTGFiZWwgPT4gJExhYmVsLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgIGlmICggJFZhbHVlU3RyZy0+e0xpbmt9ICkgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0ZBUUR5bmFtaWNGaWVsZExpbmsnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgICAgICAgICAgID0+ICRWYWx1ZVN0cmctPntWYWx1ZX0sCiAgICAgICAgICAgICAgICAgICAgVGl0bGUgICAgICAgICAgICAgICAgICAgICAgID0+ICRWYWx1ZVN0cmctPntUaXRsZX0sCiAgICAgICAgICAgICAgICAgICAgTGluayAgICAgICAgICAgICAgICAgICAgICAgID0+ICRWYWx1ZVN0cmctPntMaW5rfSwKICAgICAgICAgICAgICAgICAgICAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gPT4gJFZhbHVlU3RyZy0+e1RpdGxlfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0ZBUUR5bmFtaWNGaWVsZFBsYWluJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgIFZhbHVlID0+ICRWYWx1ZVN0cmctPntWYWx1ZX0sCiAgICAgICAgICAgICAgICAgICAgVGl0bGUgPT4gJFZhbHVlU3RyZy0+e1RpdGxlfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIEV4YW1wbGUgb2YgZHluYW1pYyBmaWVsZHMgb3JkZXIgY3VzdG9taXphdGlvbi4KICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnRkFRRHluYW1pY0ZpZWxkXycgLiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0sCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgTGFiZWwgPT4gJExhYmVsLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdGQVFEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSAuICdfUGxhaW4nLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIFZhbHVlID0+ICRWYWx1ZVN0cmctPntWYWx1ZX0sCiAgICAgICAgICAgICAgICBUaXRsZSA9PiAkVmFsdWVTdHJnLT57VGl0bGV9LAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgaWYgKCAkTmF2IG5lICdOb25lJyApIHsKCiAgICAgICAgIyBTaG93IEZBUSBWb3RpbmcuCiAgICAgICAgaWYgKCRWb3RpbmcpIHsKCiAgICAgICAgICAgICMgR2V0IHZvdGluZyBjb25maWcuCiAgICAgICAgICAgIG15ICRTaG93Vm90aW5nQ29uZmlnID0gJENvbmZpZ09iamVjdC0+R2V0KCdGQVE6Okl0ZW06OlZvdGluZzo6U2hvdycpOwogICAgICAgICAgICBpZiAoICRTaG93Vm90aW5nQ29uZmlnLT57ICRJbnRlcmZhY2UtPntOYW1lfSB9ICkgewoKICAgICAgICAgICAgICAgICMgQ2hlY2sgaWYgdGhlIHVzZXIgYWxyZWFkeSB2b3RlZCBhZnRlciBsYXN0IGNoYW5nZS4KICAgICAgICAgICAgICAgIGlmICggISRBbHJlYWR5Vm90ZWQgKSB7CiAgICAgICAgICAgICAgICAgICAgJFNlbGYtPl9GQVFWb3RpbmcoIEZBUURhdGEgPT4geyVGQVFEYXRhfSApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIEdldCBsaW5rZWQgb2JqZWN0cy4KICAgICAgICBteSAkTGlua0xpc3RXaXRoRGF0YSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMaW5rT2JqZWN0JyktPkxpbmtMaXN0V2l0aERhdGEoCiAgICAgICAgICAgIE9iamVjdCA9PiAnRkFRJywKICAgICAgICAgICAgS2V5ICAgID0+ICRHZXRQYXJhbXtJdGVtSUR9LAogICAgICAgICAgICBTdGF0ZSAgPT4gJ1ZhbGlkJywKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICBteSAkTGlua1RhYmxlVmlld01vZGUgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0xpbmtPYmplY3Q6OlZpZXdNb2RlJyk7CgogICAgICAgICMgQ3JlYXRlIHRoZSBsaW5rIHRhYmxlLgogICAgICAgIG15ICRMaW5rVGFibGVTdHJnID0gJExheW91dE9iamVjdC0+TGlua09iamVjdFRhYmxlQ3JlYXRlKAogICAgICAgICAgICBMaW5rTGlzdFdpdGhEYXRhID0+ICRMaW5rTGlzdFdpdGhEYXRhLAogICAgICAgICAgICBWaWV3TW9kZSAgICAgICAgID0+ICRMaW5rVGFibGVWaWV3TW9kZSwKICAgICAgICAgICAgT2JqZWN0ICAgICAgICAgICA9PiAnRkFRJywKICAgICAgICAgICAgS2V5ICAgICAgICAgICAgICA9PiAkR2V0UGFyYW17SXRlbUlEfSwKICAgICAgICApOwoKICAgICAgICAjIE91dHB1dCB0aGUgbGluayB0YWJsZS4KICAgICAgICBpZiAoJExpbmtUYWJsZVN0cmcpIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdMaW5rVGFibGUnIC4gJExpbmtUYWJsZVZpZXdNb2RlLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgTGlua1RhYmxlU3RyZyA9PiAkTGlua1RhYmxlU3RyZywKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgTG9nIGFjY2VzcyB0byB0aGlzIEZBUSBpdGVtLgogICAgJEZBUU9iamVjdC0+RkFRTG9nQWRkKAogICAgICAgIEl0ZW1JRCAgICA9PiAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnSXRlbUlEJyApLAogICAgICAgIEludGVyZmFjZSA9PiAkSW50ZXJmYWNlLT57TmFtZX0sCiAgICAgICAgVXNlcklEICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBTdGFydCB0ZW1wbGF0ZSBvdXRwdXQuCiAgICBpZiAoICROYXYgJiYgJE5hdiBlcSAnTm9uZScgKSB7CgogICAgICAgICMgT25seSBjb252ZXJ0IEhUTUwgdG8gcGxhaW4gdGV4dCBpZiByaWNoIHRleHQgZWRpdG9yIGlzIG5vdCB1c2VkLgogICAgICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdGcm9udGVuZDo6UmljaFRleHQnKSApIHsKICAgICAgICAgICAgJEZBUURhdGF7RnVsbEJvZHl9ID0gJEZBUUJvZHk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkRkFRRGF0YXtGdWxsQm9keX0gPSAkSFRNTFV0aWxzT2JqZWN0LT5Ub0FzY2lpKAogICAgICAgICAgICAgICAgU3RyaW5nID0+ICRGQVFCb2R5LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBHZXQgdGhlIHB1YmxpYyBzdGF0ZSB0eXBlLgogICAgICAgIG15ICRQdWJsaWNTdGF0ZVR5cGUgPSAkRkFRT2JqZWN0LT5TdGF0ZVR5cGVHZXQoCiAgICAgICAgICAgIE5hbWUgICA9PiAncHVibGljJywKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIFJlbW92ZSBpbi1saW5lIGltYWdlIGxpbmtzIHRvIEZBUSBpbWFnZXMuCiAgICAgICAgJEZBUURhdGF7RnVsbEJvZHl9CiAgICAgICAgICAgID1+IHN7IDxpbWcgW148Pl0rIEFjdGlvbj0oQWdlbnR8Q3VzdG9tZXJ8UHVibGljKUZBUSBbXjw+XSsgPiB9e31neG1zOwoKICAgICAgICAjIEdldCBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIFRpY2tldCBDb21wb3NlLgogICAgICAgIG15ICRUaWNrZXRDb21wb3NlQ29uZmlnID0gJENvbmZpZ09iamVjdC0+R2V0KCdGQVE6OlRpY2tldENvbXBvc2UnKTsKCiAgICAgICAgJFBhcmFte1VwZGF0ZUFydGljbGVTdWJqZWN0fSA9ICRUaWNrZXRDb21wb3NlQ29uZmlnLT57VXBkYXRlQXJ0aWNsZVN1YmplY3R9IHx8IDA7CiAgICAgICAgaWYgKCAkUGFyYW17VXBkYXRlQXJ0aWNsZVN1YmplY3R9ICkgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1VwZGF0ZUFydGljbGVTdWJqZWN0JywKICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIFNlbmQgZGF0YSB0byBKUy4KICAgICAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgICAgIEtleSAgID0+ICdUaWNrZXRDb21wb3NlLlVwZGF0ZUFydGljbGVTdWJqZWN0JywKICAgICAgICAgICAgVmFsdWUgPT4gJFBhcmFte1VwZGF0ZUFydGljbGVTdWJqZWN0fSwKICAgICAgICApOwoKICAgICAgICBteSAkU2hvd09yQmxvY2s7CgogICAgICAgICMgU2hvdyAiSW5zZXJ0IFRleHQiIGJ1dHRvbi4KICAgICAgICBpZiAoICRUaWNrZXRDb21wb3NlQ29uZmlnLT57U2hvd0luc2VydFRleHRCdXR0b259ICkgewogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICBkZWZpbmVkICRUaWNrZXRDb21wb3NlQ29uZmlnLT57SW5zZXJ0TWV0aG9kfQogICAgICAgICAgICAgICAgJiYgJFRpY2tldENvbXBvc2VDb25maWctPntJbnNlcnRNZXRob2R9IGVxICdGdWxsJwogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdJbnNlcnRGdWxsJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0luc2VydFRleHQnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkU2hvd09yQmxvY2sgPSAxOwogICAgICAgIH0KCiAgICAgICAgIyBDaGVjayBpZiBGQVEgYXJ0aWNsZSBpcyBwdWJsaWMuCiAgICAgICAgaWYgKCAkRkFRRGF0YXtTdGF0ZVR5cGVJRH0gPT0gJFB1YmxpY1N0YXRlVHlwZS0+e1N0YXRlSUR9ICkgewoKICAgICAgICAgICAgbXkgJEhUVFBUeXBlID0gJENvbmZpZ09iamVjdC0+R2V0KCdIdHRwVHlwZScpOwogICAgICAgICAgICBteSAkRlFETiAgICAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZRRE4nKTsKICAgICAgICAgICAgbXkgJEJhc2VsaW5rID0gJExheW91dE9iamVjdC0+e0Jhc2VsaW5rfTsKCiAgICAgICAgICAgICMgUmV3cml0ZSBoYW5kbGUuCiAgICAgICAgICAgICRCYXNlbGluawogICAgICAgICAgICAgICAgPX4gc3sgaW5kZXhbLl1wbCBbP10gfXtwdWJsaWMucGw/fWd4bXM7CgogICAgICAgICAgICAkRkFRRGF0YXtQdWJsaWNsaW5rfSA9ICRIVFRQVHlwZSAuICc6Ly8nIC4gJEZRRE4gLiAkQmFzZWxpbmsKICAgICAgICAgICAgICAgIC4gIkFjdGlvbj1QdWJsaWNGQVFab29tO0l0ZW1JRD0kRkFRRGF0YXtJdGVtSUR9IjsKCiAgICAgICAgICAgICNTc2hvdyAiSW5zZXJ0IExpbmsiIGJ1dHRvbi4KICAgICAgICAgICAgaWYgKCAkVGlja2V0Q29tcG9zZUNvbmZpZy0+e1Nob3dJbnNlcnRMaW5rQnV0dG9ufSApIHsKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0luc2VydExpbmsnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJFNob3dPckJsb2NrID0gMTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBTaG93ICJJbnNlcnQgVGV4dCBhbmQgTGluayIgYnV0dG9uLgogICAgICAgICAgICBpZiAoICRUaWNrZXRDb21wb3NlQ29uZmlnLT57U2hvd0luc2VydFRleHRBbmRMaW5rQnV0dG9ufSApIHsKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICBkZWZpbmVkICRUaWNrZXRDb21wb3NlQ29uZmlnLT57SW5zZXJ0TWV0aG9kfQogICAgICAgICAgICAgICAgICAgICYmICRUaWNrZXRDb21wb3NlQ29uZmlnLT57SW5zZXJ0TWV0aG9kfSBlcSAnRnVsbCcKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0luc2VydEZ1bGxBbmRMaW5rJywKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0luc2VydFRleHRBbmRMaW5rJywKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJFNob3dPckJsb2NrID0gMTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgbXkgJENhbmNlbEJ1dHRvbkNsYXNzID0gJ1pvb21TbWFsbEJ1dHRvbic7CgogICAgICAgICMgU2hvdyB0aGUgIk9yIiBibG9jayBiZXR3ZWVuIHRoZSBidXR0b25zIGFuZCB0aGUgQ2FuY2VsICYgY2xvc2Ugd2luZG93IGxhYmVsLgogICAgICAgIGlmICgkU2hvd09yQmxvY2spIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdPcicsCiAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBTZXQgdGhlICRDYW5jZWxCdXR0b25DbGFzcyB0byAnJy4KICAgICAgICAgICAgJENhbmNlbEJ1dHRvbkNsYXNzID0gJyc7CiAgICAgICAgfQoKICAgICAgICAjIFNlbmQgZGF0YSB0byBKUy4KICAgICAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgICAgIEtleSAgID0+ICdBZ2VudEZBUVpvb21TbWFsbCcsCiAgICAgICAgICAgIFZhbHVlID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRGQVFab29tU21hbGwnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gewogICAgICAgICAgICAgICAgJUZBUURhdGEsCiAgICAgICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICBDYW5jZWxCdXR0b25DbGFzcyA9PiAkQ2FuY2VsQnV0dG9uQ2xhc3MgfHwgJycsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50RkFRWm9vbScsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgICAgICAlRkFRRGF0YSwKICAgICAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQogICAgaWYgKCAkTmF2ICYmICROYXYgZXEgJ05vbmUnICkgewogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCBUeXBlID0+ICdTbWFsbCcgKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CiAgICB9CgogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCnN1YiBfRkFRVm90aW5nIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJUZBUURhdGEgPSAleyAkUGFyYW17RkFRRGF0YX0gfTsKCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0ZBUVZvdGluZycsCiAgICAgICAgRGF0YSA9PiB7JUZBUURhdGF9LAogICAgKTsKCiAgICAjIEdldCBWb3RpbmcgcmF0ZXMgc2V0dGluZy4KICAgIG15ICRWb3RpbmdSYXRlcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnRkFROjpJdGVtOjpWb3Rpbmc6OlJhdGVzJyk7CiAgICBmb3IgbXkgJFJhdGVWYWx1ZSAoIHNvcnQgeyAkYSA8PT4gJGIgfSBrZXlzICV7JFZvdGluZ1JhdGVzfSApIHsKCiAgICAgICAgIyBDcmVhdGUgZGF0YSBzdHJ1Y3R1cmUgZm9yIG91dHB1dC4KICAgICAgICBteSAlRGF0YSA9ICgKICAgICAgICAgICAgVmFsdWUgPT4gJFJhdGVWYWx1ZSwKICAgICAgICAgICAgVGl0bGUgPT4gJFZvdGluZ1JhdGVzLT57JFJhdGVWYWx1ZX0sCiAgICAgICAgKTsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0ZBUVZvdGluZ1JhdGVSb3cnLAogICAgICAgICAgICBEYXRhID0+IHslRGF0YX0sCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gMTsKfQoKMTsK</File>
        <File Location="Kernel/Modules/CustomerFAQExplorer.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6Q3VzdG9tZXJGQVFFeHBsb3JlcjsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIEtlcm5lbDo6TGFuZ3VhZ2UgcXcoVHJhbnNsYXRhYmxlKTsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBnZXQgY29uZmlnIG9mIGZyb250ZW5kIG1vZHVsZQogICAgbXkgJENvbmZpZyA9ICRDb25maWdPYmplY3QtPkdldCgiRkFROjpGcm9udGVuZDo6JFNlbGYtPntBY3Rpb259Iik7CgogICAgbXkgJFBhcmFtT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwoKICAgICMgZ2V0IGNvbmZpZyBkYXRhCiAgICBteSAkU3RhcnRIaXQgICAgICAgID0gaW50KCAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnU3RhcnRIaXQnICkgfHwgMSApOwogICAgbXkgJFNlYXJjaExpbWl0ICAgICA9ICRDb25maWctPntTZWFyY2hMaW1pdH0gICAgIHx8IDIwMDsKICAgIG15ICRTZWFyY2hQYWdlU2hvd24gPSAkQ29uZmlnLT57U2VhcmNoUGFnZVNob3dufSB8fCAzOwogICAgbXkgJFNvcnRCeSAgICAgICAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdTb3J0QnknICkKICAgICAgICB8fCAkQ29uZmlnLT57J1NvcnRCeTo6RGVmYXVsdCd9CiAgICAgICAgfHwgJ0ZBUUlEJzsKICAgIG15ICRPcmRlckJ5ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ09yZGVyJyApCiAgICAgICAgfHwgJENvbmZpZy0+eydPcmRlcjo6RGVmYXVsdCd9CiAgICAgICAgfHwgJ0Rvd24nOwoKICAgIG15ICRDYXRlZ29yeUlEID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0NhdGVnb3J5SUQnICkgfHwgMDsKCiAgICBteSAkRkFRT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkZBUScpOwoKICAgICMgY2hlY2sgZm9yIG5vbiBudW1lcmljIENhdGVnb3J5SUQKICAgIGlmICggJENhdGVnb3J5SUQgIX4gL1xkKy8gKSB7CiAgICAgICAgJENhdGVnb3J5SUQgPSAwOwogICAgfQoKICAgICMgZ2V0IGNhdGVnb3J5IGJ5IG5hbWUKICAgIG15ICRDYXRlZ29yeSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdDYXRlZ29yeScgKSB8fCAnJzsKCiAgICAjIHRyeSB0byBnZXQgdGhlIENhdGVnb3J5IElEIGZyb20gY2F0ZWdvcnkgbmFtZSBpZiBubyBDYXRlZ29yeSBJRAogICAgaWYgKCAkQ2F0ZWdvcnkgJiYgISRDYXRlZ29yeUlEICkgewoKICAgICAgICAjIGdldCB0aGUgY2F0ZWdvcnkgdHJlZQogICAgICAgIG15ICRDYXRlZ29yeVRyZWUgPSAkRkFRT2JqZWN0LT5DYXRlZ29yeVRyZWVMaXN0KAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgcmV2ZXJzZSB0aGUgaGFzIGZvciBlYXN5IGxvb2t1cAogICAgICAgIG15ICVSZXZlcnNlQ2F0ZWdvcnlUcmVlID0gcmV2ZXJzZSAleyRDYXRlZ29yeVRyZWV9OwoKICAgICAgICAkQ2F0ZWdvcnlJRCA9ICRSZXZlcnNlQ2F0ZWdvcnlUcmVleyRDYXRlZ29yeX0gfHwgMDsKICAgIH0KCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgdHJ5IHRvIGdldCB0aGUgY2F0ZWdvcnkgZGF0YQogICAgbXkgJUNhdGVnb3J5RGF0YTsKICAgIGlmICgkQ2F0ZWdvcnlJRCkgewoKICAgICAgICAjIGdldCBjYXRlZ29yeSBkYXRhCiAgICAgICAgJUNhdGVnb3J5RGF0YSA9ICRGQVFPYmplY3QtPkNhdGVnb3J5R2V0KAogICAgICAgICAgICBDYXRlZ29yeUlEID0+ICRDYXRlZ29yeUlELAogICAgICAgICAgICBVc2VySUQgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwogICAgICAgIGlmICggISVDYXRlZ29yeURhdGEgKSB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5DdXN0b21lck5vUGVybWlzc2lvbigKICAgICAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIHVzZXIgcGVybWlzc2lvbgogICAgICAgIG15ICRQZXJtaXNzaW9uID0gJEZBUU9iamVjdC0+Q2hlY2tDYXRlZ29yeUN1c3RvbWVyUGVybWlzc2lvbigKICAgICAgICAgICAgQ3VzdG9tZXJVc2VyID0+ICRTZWxmLT57VXNlckxvZ2lufSwKICAgICAgICAgICAgQ2F0ZWdvcnlJRCAgID0+ICRDYXRlZ29yeUlELAogICAgICAgICAgICBVc2VySUQgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CiAgICAgICAgaWYgKCAhJFBlcm1pc3Npb24gKSB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5DdXN0b21lck5vUGVybWlzc2lvbigKICAgICAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgc3RvcmUgdGhlIGxhc3Qgc2NyZWVuIG92ZXJ2aWV3IGluIHNlc3Npb24KICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpBdXRoU2Vzc2lvbicpLT5VcGRhdGVTZXNzaW9uSUQoCiAgICAgICAgU2Vzc2lvbklEID0+ICRTZWxmLT57U2Vzc2lvbklEfSwKICAgICAgICBLZXkgICAgICAgPT4gJ0xhc3RTY3JlZW5PdmVydmlldycsCiAgICAgICAgVmFsdWUgICAgID0+ICRTZWxmLT57UmVxdWVzdGVkVVJMfSwKICAgICk7CgogICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkN1c3RvbWVySGVhZGVyKAogICAgICAgIFZhbHVlID0+ICcnLAogICAgKTsKCiAgICAjIEFkZEpTRGF0YSBmb3IgRVMKICAgIG15ICRFU0FjdGl2ZSA9ICRDb25maWdPYmplY3QtPkdldCgnRWxhc3RpY3NlYXJjaDo6QWN0aXZlJyk7CgogICAgJExheW91dE9iamVjdC0+QWRkSlNEYXRhKAogICAgICAgIEtleSAgID0+ICdFU0FjdGl2ZScsCiAgICAgICAgVmFsdWUgPT4gJEVTQWN0aXZlLAogICAgKTsKCiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkN1c3RvbWVyTmF2aWdhdGlvbkJhcigpOwoKICAgIG15ICRDYXRlZ29yeUlEc1JlZjsKICAgIG15ICVTZWFyY2g7CiAgICBteSAlRkFRU2VhcmNoOwoKICAgICMgc2hvdyBzZWFyY2ggcmVzdWx0cwogICAgaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gJiYgJFNlbGYtPntTdWJhY3Rpb259IGVxICdTZWFyY2gnICkgewogICAgICAgIG15ICRTZWFyY2hOYW1lID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCJTZWFyY2giKSAuICI6IjsKICAgICAgICBmb3IgbXkgJE1vZGUgKHF3L0tleXdvcmQgV2hhdC8pIHsKICAgICAgICAgICAgbXkgJFN0cmluZyA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRNb2RlICk7CiAgICAgICAgICAgIGlmICgkU3RyaW5nKSB7CiAgICAgICAgICAgICAgICAkU2VhcmNoeyRNb2RlfSAgICA9ICRTdHJpbmc7CiAgICAgICAgICAgICAgICAkRkFRU2VhcmNoeyRNb2RlfSA9ICIqJFN0cmluZyoiOwogICAgICAgICAgICAgICAgbXkgJE1vZGVOYW1lID0gJE1vZGUgZXEgJ1doYXQnID8gJ0Z1bGx0ZXh0JyA6ICRNb2RlOwogICAgICAgICAgICAgICAgJFNlYXJjaE5hbWUgLj0gIiAiIC4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCRNb2RlTmFtZSkgLiAiIFwiJFN0cmluZ1wiOyI7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgb3V0cHV0IGNhdGVnb3J5IHJvb3QgKCBkb25lIGluIExheW91dE9iamVjdCBmb3Igbm9uIHNlYXJjaGVzICkKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnRkFRUGF0aENhdGVnb3J5RWxlbWVudCcsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgTmFtZSAgICAgICA9PiAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6RGVmYXVsdDo6Um9vdENhdGVnb3J5TmFtZScpLAogICAgICAgICAgICAgICAgQ2F0ZWdvcnlJRCA9PiAwLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgb3V0cHV0IHNlYXJjaCBpbmZvcm1hdGlvbgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdGQVFQYXRoQ2F0ZWdvcnlFbGVtZW50Tm9MaW5rJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBOYW1lID0+ICRTZWFyY2hOYW1lLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgZGlzYWJsZSBjYXRlZ29yeSBzcGVjaWZpYyBzdHVmZgogICAgICAgICRDYXRlZ29yeUlEID0gLTE7CiAgICB9CgogICAgIyBubyBzZWFyY2ggKCBzdGFuZGFyZCBtb2RlICkKICAgIGVsc2UgewogICAgICAgICMgc2hvdyBGQVEgcGF0aAogICAgICAgICRMYXlvdXRPYmplY3QtPkZBUVBhdGhTaG93KAogICAgICAgICAgICBGQVFPYmplY3QgID0+ICRGQVFPYmplY3QsCiAgICAgICAgICAgIENhdGVnb3J5SUQgPT4gJENhdGVnb3J5SUQsCiAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgZ2V0IGFsbCBkaXJlY3Qgc3ViY2F0ZWdvcmllcyBvZiB0aGUgc2VsZWN0ZWQgY2F0ZWdvcnkKICAgICAgICAkQ2F0ZWdvcnlJRHNSZWYgPSAkRkFRT2JqZWN0LT5DdXN0b21lckNhdGVnb3J5U2VhcmNoKAogICAgICAgICAgICBQYXJlbnRJRCAgICAgPT4gJENhdGVnb3J5SUQsCiAgICAgICAgICAgIEN1c3RvbWVyVXNlciA9PiAkU2VsZi0+e1VzZXJMb2dpbn0sCiAgICAgICAgICAgIE1vZGUgICAgICAgICA9PiAnQ3VzdG9tZXInLAogICAgICAgICAgICBVc2VySUQgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgaW50ZXJmYWNlIHN0YXRlcyBsaXN0CiAgICBteSAkSW50ZXJmYWNlU3RhdGVzID0gJEZBUU9iamVjdC0+U3RhdGVUeXBlTGlzdCgKICAgICAgICBUeXBlcyAgPT4gJENvbmZpZ09iamVjdC0+R2V0KCdGQVE6OkN1c3RvbWVyOjpTdGF0ZVR5cGVzJyksCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBjaGVjayBpZiB0aGVyZSBhcmUgc3ViY2F0ZWdvcmllcwogICAgaWYgKCAkQ2F0ZWdvcnlJRHNSZWYgJiYgcmVmICRDYXRlZ29yeUlEc1JlZiBlcSAnQVJSQVknICYmIEB7JENhdGVnb3J5SURzUmVmfSApIHsKCiAgICAgICAgIyBzaG93IHN1YmNhdGVnb3JpZXMgbGlzdAogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdTdWJjYXRlZ29yaWVzJywKICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICApOwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld1Jlc3VsdCcsCiAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgKTsKCiAgICAgICAgIyBzaG93IGRhdGEgZm9yIGVhY2ggc3ViY2F0ZWdvcnkKICAgICAgICBmb3IgbXkgJFN1YkNhdGVnb3J5SUQgKCBAeyRDYXRlZ29yeUlEc1JlZn0gKSB7CgogICAgICAgICAgICBteSAlU3ViQ2F0ZWdvcnlEYXRhID0gJEZBUU9iamVjdC0+Q2F0ZWdvcnlHZXQoCiAgICAgICAgICAgICAgICBDYXRlZ29yeUlEID0+ICRTdWJDYXRlZ29yeUlELAogICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGdldCB0aGUgbnVtYmVyIG9mIHN1YmNhdGVnb3JpZXMgb2YgdGhpcyBzdWJjYXRlZ29yeQogICAgICAgICAgICAkU3ViQ2F0ZWdvcnlEYXRhe1N1YkNhdGVnb3J5Q291bnR9ID0gJEZBUU9iamVjdC0+Q2F0ZWdvcnlDb3VudCgKICAgICAgICAgICAgICAgIFBhcmVudElEcyA9PiBbJFN1YkNhdGVnb3J5SURdLAogICAgICAgICAgICAgICAgVXNlcklEICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgZ2V0IHRoZSBudW1iZXIgb2YgRkFRIGFydGljbGVzIGluIHRoaXMgY2F0ZWdvcnkKICAgICAgICAgICAgJFN1YkNhdGVnb3J5RGF0YXtBcnRpY2xlQ291bnR9ID0gJEZBUU9iamVjdC0+RkFRQ291bnQoCiAgICAgICAgICAgICAgICBDYXRlZ29yeUlEcyAgPT4gWyRTdWJDYXRlZ29yeUlEXSwKICAgICAgICAgICAgICAgIEl0ZW1TdGF0ZXMgICA9PiAkSW50ZXJmYWNlU3RhdGVzLAogICAgICAgICAgICAgICAgT25seUFwcHJvdmVkID0+IDEsCiAgICAgICAgICAgICAgICBWYWxpZCAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIG91dHB1dCB0aGUgY2F0ZWdvcnkgZGF0YQogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0Um93JywKICAgICAgICAgICAgICAgIERhdGEgPT4geyVTdWJDYXRlZ29yeURhdGF9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIHNldCBkZWZhdWx0IGludGVyZmFjZSBzZXR0aW5ncwogICAgbXkgJEludGVyZmFjZSA9ICRGQVFPYmplY3QtPlN0YXRlVHlwZUdldCgKICAgICAgICBOYW1lICAgPT4gJ2V4dGVybmFsJywKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGluY2x1ZGUgQ2F0ZWdvcnkgaWYgbm90IGluIGJhc2UgQ2F0ZWdvcnkgKDApLCBvciBzZWFyY2ggbW9kZQogICAgaWYgKCAkQ2F0ZWdvcnlJRCA+IDAgKSB7CiAgICAgICAgJEZBUVNlYXJjaHtDYXRlZ29yeUlEc30gPSBbJENhdGVnb3J5SURdOwogICAgfQoKICAgICMgZ2V0IHRoZSBsYXRlc3QgYXJ0aWNsZXMgZm9yIHRoZSByb290IGNhdGVnb3J5IChlbHNlIGVtcHR5KQogICAgZWxzaWYgKCAhJVNlYXJjaCApIHsKICAgICAgICAkU29ydEJ5ICAgICAgPSAnQ2hhbmdlZCc7CiAgICAgICAgJE9yZGVyQnkgICAgID0gJ0Rvd24nOwogICAgICAgICRTZWFyY2hMaW1pdCA9IDEwOwogICAgfQoKICAgICMgc2VhcmNoIGFsbCBGQVEgYXJ0aWNsZXMgd2l0aGluIHRoZSBnaXZlbiBjYXRlZ29yeQogICAgbXkgQFZpZXdhYmxlSXRlbUlEcyA9ICRGQVFPYmplY3QtPkZBUVNlYXJjaCgKICAgICAgICBPcmRlckJ5ICAgICAgICAgID0+IFskU29ydEJ5XSwKICAgICAgICBPcmRlckJ5RGlyZWN0aW9uID0+IFskT3JkZXJCeV0sCiAgICAgICAgTGltaXQgICAgICAgICAgICA9PiAkU2VhcmNoTGltaXQsCiAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgU3RhdGVzICAgICAgICAgICA9PiAkSW50ZXJmYWNlU3RhdGVzLAogICAgICAgIEludGVyZmFjZSAgICAgICAgPT4gJEludGVyZmFjZSwKICAgICAgICAlRkFRU2VhcmNoLAogICAgKTsKCiAgICAjIHNldCB0aGUgU29ydEJ5IENsYXNzCiAgICBteSAkU29ydENsYXNzOwoKICAgICMgdGhpcyBzZXRzIHRoZSBvcHBvc2l0ZSB0byB0aGUgT3JkZXJCeSBwYXJhbWV0ZXIKICAgIGlmICggJE9yZGVyQnkgZXEgJ0Rvd24nICkgewogICAgICAgICRTb3J0Q2xhc3MgPSAnU29ydEFzY2VuZGluZyc7CiAgICB9CiAgICBlbHNpZiAoICRPcmRlckJ5IGVxICdVcCcgKSB7CiAgICAgICAgJFNvcnRDbGFzcyA9ICdTb3J0RGVzY2VuZGluZyc7CiAgICB9CgogICAgIyBzZXQgdGhlIFNvcnRCeSBDbGFzcyB0byB0aGUgY29ycmVjdCBmaWVsZAogICAgbXkgJUNTU1NvcnQ7CiAgICBteSAkQ1NTU29ydEJ5ID0gJFNvcnRCeSAuICdTb3J0JzsKICAgICRDU1NTb3J0eyRDU1NTb3J0Qnl9ID0gJFNvcnRDbGFzczsKCiAgICBteSAlTmV3T3JkZXIgPSAoCiAgICAgICAgRG93biA9PiAnVXAnLAogICAgICAgIFVwICAgPT4gJ0Rvd24nLAogICAgKTsKCiAgICAjIHNob3cgdGhlIEZBUSBhcnRpY2xlIGxpc3QKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0ZBUUl0ZW1MaXN0JywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgQ2F0ZWdvcnlJRCA9PiAkQ2F0ZWdvcnlJRCwKICAgICAgICAgICAgJUNTU1NvcnQsCiAgICAgICAgICAgIE9yZGVyID0+ICROZXdPcmRlcnskT3JkZXJCeX0sCiAgICAgICAgfSwKICAgICk7CgogICAgbXkgJE11bHRpTGFuZ3VhZ2UgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6TXVsdGlMYW5ndWFnZScpOwoKICAgICMgc2hvdyBsYW5ndWFnZSBoZWFkZXIKICAgIGlmICgkTXVsdGlMYW5ndWFnZSkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdIZWFkZXJMYW5ndWFnZScsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgQ2F0ZWdvcnlJRCA9PiAkQ2F0ZWdvcnlJRCwKICAgICAgICAgICAgICAgICVDU1NTb3J0LAogICAgICAgICAgICAgICAgT3JkZXIgPT4gJE5ld09yZGVyeyRPcmRlckJ5fSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgIG15ICRDb3VudGVyID0gMDsKICAgIGlmIChAVmlld2FibGVJdGVtSURzKSB7CgogICAgICAgIGZvciBteSAkSXRlbUlEIChAVmlld2FibGVJdGVtSURzKSB7CgogICAgICAgICAgICAkQ291bnRlcisrOwoKICAgICAgICAgICAgIyBidWlsZCBzZWFyY2ggcmVzdWx0CiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICRDb3VudGVyID49ICRTdGFydEhpdAogICAgICAgICAgICAgICAgJiYgJENvdW50ZXIgPCAoICRTZWFyY2hQYWdlU2hvd24gKyAkU3RhcnRIaXQgKQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CgogICAgICAgICAgICAgICAgbXkgJUZBUURhdGEgPSAkRkFRT2JqZWN0LT5GQVFHZXQoCiAgICAgICAgICAgICAgICAgICAgSXRlbUlEICAgICA9PiAkSXRlbUlELAogICAgICAgICAgICAgICAgICAgIEl0ZW1GaWVsZHMgPT4gMCwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgJEZBUURhdGF7Q2xlYW5UaXRsZX0gPSAkRkFRT2JqZWN0LT5GQVFBcnRpY2xlVGl0bGVDbGVhbigKICAgICAgICAgICAgICAgICAgICBUaXRsZSA9PiAkRkFRRGF0YXtUaXRsZX0sCiAgICAgICAgICAgICAgICAgICAgU2l6ZSAgPT4gJENvbmZpZy0+e1RpdGxlU2l6ZX0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgYWRkIGJsb2NrcyB0byB0ZW1wbGF0ZQogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUmVjb3JkJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgJUZBUURhdGEsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBhZGQgbGFuZ3VhZ2UgZGF0YQogICAgICAgICAgICAgICAgaWYgKCRNdWx0aUxhbmd1YWdlKSB7CiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1JlY29yZExhbmd1YWdlJywKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAlRkFRRGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgb3RoZXJ3aXNlIGEgbm8gZGF0YSBmb3VuZCBtZXNzYWdlIGlzIGRpc3BsYXllZAogICAgZWxzZSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ05vRkFRRGF0YUZvdW5kTXNnJywKICAgICAgICApOwogICAgfQoKICAgIG15ICRMaW5rID0gJ1NvcnRCeT0nIC4gJExheW91dE9iamVjdC0+TGlua0VuY29kZSgkU29ydEJ5KSAuICc7JzsKICAgICRMaW5rIC49ICdPcmRlcj0nIC4gJExheW91dE9iamVjdC0+TGlua0VuY29kZSgkT3JkZXJCeSkgLiAnOyc7CgogICAgbXkgJEFjdGlvblN0cmluZzsKICAgIGlmICglU2VhcmNoKSB7CiAgICAgICAgJEFjdGlvblN0cmluZyA9ICJBY3Rpb249Q3VzdG9tZXJGQVFFeHBsb3JlcjtTdWJhY3Rpb249U2VhcmNoOyI7CiAgICAgICAgaWYgKCAkRkFRU2VhcmNoe0NhdGVnb3J5SURzfSApIHsKICAgICAgICAgICAgJEFjdGlvblN0cmluZyAuPSAiQ2F0ZWdvcnlJRD0kQ2F0ZWdvcnlJRDsiOwogICAgICAgIH0KICAgICAgICBmb3IgbXkgJE1vZGUgKCBrZXlzICVTZWFyY2ggKSB7CiAgICAgICAgICAgICRBY3Rpb25TdHJpbmcgLj0gIiRNb2RlPSRTZWFyY2h7ICRNb2RlIH07IjsKICAgICAgICB9CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkQWN0aW9uU3RyaW5nID0gIkFjdGlvbj1DdXN0b21lckZBUUV4cGxvcmVyO0NhdGVnb3J5SUQ9JENhdGVnb3J5SUQiOwogICAgfQoKICAgICMgYnVpbGQgc2VhcmNoIG5hdmlnYXRpb24gYmFyCiAgICBteSAlUGFnZU5hdiA9ICRMYXlvdXRPYmplY3QtPlBhZ2VOYXZCYXIoCiAgICAgICAgTGltaXQgICAgID0+ICRTZWFyY2hMaW1pdCwKICAgICAgICBTdGFydEhpdCAgPT4gJFN0YXJ0SGl0LAogICAgICAgIFBhZ2VTaG93biA9PiAkU2VhcmNoUGFnZVNob3duLAogICAgICAgIEFsbEhpdHMgICA9PiAkQ291bnRlciwKICAgICAgICBBY3Rpb24gICAgPT4gJEFjdGlvblN0cmluZywKICAgICAgICBMaW5rICAgICAgPT4gJExpbmssCiAgICAgICAgSURQcmVmaXggID0+ICJDdXN0b21lckZBUUV4cGxvcmVyIiwKICAgICk7CgogICAgaWYgKCAkUGFnZU5hdntUb3RhbEhpdHN9ID1+IG0vPHNwYW5cc2NsYXNzPSJQYWdpbmF0aW9uTGltaXQiPihcZC4qKTxcL3NwYW4+L2cgKSB7CiAgICAgICAgJFBhZ2VOYXZ7VG90YWxIaXRzfSA9ICQxOwogICAgfQoKICAgICMgc2hvdyBmb290ZXIgZmlsdGVyIC0gc2hvdyBvbmx5IGlmIG1vcmUgdGhlIG9uZSBwYWdlIGlzIGF2YWlsYWJsZQogICAgaWYgKCBkZWZpbmVkICRQYWdlTmF2e1RvdGFsSGl0c30gJiYgKCAkUGFnZU5hdntUb3RhbEhpdHN9ID4gJFNlYXJjaFBhZ2VTaG93biApICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdQYWdpbmF0aW9uJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAlUGFnZU5hdiwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgICMgc2hvdyBRdWlja1NlYXJjaAogICAgJExheW91dE9iamVjdC0+RkFRU2hvd1F1aWNrU2VhcmNoKAogICAgICAgIE1vZGUgICAgICAgICAgICA9PiAnQ3VzdG9tZXInLAogICAgICAgIEN1c3RvbWVyVXNlciAgICA9PiAkU2VsZi0+e1VzZXJMb2dpbn0sCiAgICAgICAgSW50ZXJmYWNlICAgICAgID0+ICRJbnRlcmZhY2UsCiAgICAgICAgSW50ZXJmYWNlU3RhdGVzID0+ICRJbnRlcmZhY2VTdGF0ZXMsCiAgICAgICAgVXNlcklEICAgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBzaG93IGxhc3QgYWRkZWQgYW5kIGxhc3QgdXBkYXRlZCBhcnRpY2xlcwogICAgZm9yIG15ICRUeXBlIChxdyhMYXN0Q3JlYXRlIExhc3RDaGFuZ2UpKSB7CgogICAgICAgIG15ICRTaG93T2sgPSAkTGF5b3V0T2JqZWN0LT5GQVFTaG93TGF0ZXN0TmV3c0JveCgKICAgICAgICAgICAgRkFRT2JqZWN0ICAgICAgID0+ICRGQVFPYmplY3QsCiAgICAgICAgICAgIFR5cGUgICAgICAgICAgICA9PiAkVHlwZSwKICAgICAgICAgICAgTW9kZSAgICAgICAgICAgID0+ICdDdXN0b21lcicsCiAgICAgICAgICAgIEN1c3RvbWVyVXNlciAgICA9PiAkU2VsZi0+e1VzZXJMb2dpbn0sCiAgICAgICAgICAgIENhdGVnb3J5SUQgICAgICA9PiAkQ2F0ZWdvcnlJRCwKICAgICAgICAgICAgSW50ZXJmYWNlICAgICAgID0+ICRJbnRlcmZhY2UsCiAgICAgICAgICAgIEludGVyZmFjZVN0YXRlcyA9PiAkSW50ZXJmYWNlU3RhdGVzLAogICAgICAgICAgICBVc2VySUQgICAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CiAgICAgICAgaWYgKCAhJFNob3dPayApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKCk7CiAgICAgICAgfQogICAgfQoKICAgICMgc2hvdyB0b3AgdGVuIGFydGljbGVzCiAgICBteSAkU2hvd09rID0gJExheW91dE9iamVjdC0+RkFRU2hvd1RvcDEwKAogICAgICAgIEZBUU9iamVjdCAgICAgICA9PiAkRkFRT2JqZWN0LAogICAgICAgIE1vZGUgICAgICAgICAgICA9PiAnQ3VzdG9tZXInLAogICAgICAgIEN1c3RvbWVyVXNlciAgICA9PiAkU2VsZi0+e1VzZXJMb2dpbn0sCiAgICAgICAgQ2F0ZWdvcnlJRCAgICAgID0+ICRDYXRlZ29yeUlELAogICAgICAgIEludGVyZmFjZSAgICAgICA9PiAkSW50ZXJmYWNlLAogICAgICAgIEludGVyZmFjZVN0YXRlcyA9PiAkSW50ZXJmYWNlU3RhdGVzLAogICAgICAgIFVzZXJJRCAgICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwogICAgaWYgKCAhJFNob3dPayApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oKTsKICAgIH0KCiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0N1c3RvbWVyRkFRRXhwbG9yZXInLAogICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgQ2F0ZWdvcnlJRCA9PiAkQ2F0ZWdvcnlJRCwKICAgICAgICAgICAgJUNhdGVnb3J5RGF0YSwKICAgICAgICB9LAogICAgKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Q3VzdG9tZXJGb290ZXIoKTsKCiAgICByZXR1cm4gJE91dHB1dDsKfQoKMTsK</File>
        <File Location="Kernel/Modules/CustomerFAQPrint.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6Q3VzdG9tZXJGQVFQcmludDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6Okxhbmd1YWdlICAgICAgICAgICAgICBxdyhUcmFuc2xhdGFibGUpOwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBwZXJtaXNzaW9uIGNoZWNrCiAgICBpZiAoICEkU2VsZi0+e0FjY2Vzc1JvfSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Tm9QZXJtaXNzaW9uKAogICAgICAgICAgICBNZXNzYWdlICAgID0+IFRyYW5zbGF0YWJsZSgnWW91IG5lZWQgcm8gcGVybWlzc2lvbiEnKSwKICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IHBhcmFtcwogICAgbXkgJUdldFBhcmFtOwogICAgJEdldFBhcmFte0l0ZW1JRH0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0JyktPkdldFBhcmFtKCBQYXJhbSA9PiAnSXRlbUlEJyApOwoKICAgIGlmICggISRHZXRQYXJhbXtJdGVtSUR9ICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5DdXN0b21lckZhdGFsRXJyb3IoCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdObyBJdGVtSUQgaXMgZ2l2ZW4hJyksCiAgICAgICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgYWRtaW5pc3RyYXRvci4nKSwKICAgICAgICApOwogICAgfQoKICAgIG15ICRGQVFPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RkFRJyk7CgogICAgbXkgJUZBUURhdGEgPSAkRkFRT2JqZWN0LT5GQVFHZXQoCiAgICAgICAgSXRlbUlEICAgICA9PiAkR2V0UGFyYW17SXRlbUlEfSwKICAgICAgICBJdGVtRmllbGRzID0+IDEsCiAgICAgICAgVXNlcklEICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwogICAgaWYgKCAhJUZBUURhdGEgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkN1c3RvbWVyRmF0YWxFcnJvcigpOwogICAgfQoKICAgICMgY2hlY2sgdXNlciBwZXJtaXNzaW9uCiAgICBteSAkUGVybWlzc2lvbiA9ICRGQVFPYmplY3QtPkNoZWNrQ2F0ZWdvcnlDdXN0b21lclBlcm1pc3Npb24oCiAgICAgICAgQ3VzdG9tZXJVc2VyID0+ICRTZWxmLT57VXNlckxvZ2lufSwKICAgICAgICBDYXRlZ29yeUlEICAgPT4gJEZBUURhdGF7Q2F0ZWdvcnlJRH0sCiAgICAgICAgVXNlcklEICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBnZXQgY29uZmlnIG9iamVjdAogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBnZXQgaW50ZXJmYWNlIHN0YXRlIGxpc3QKICAgIG15ICRJbnRlcmZhY2VTdGF0ZXMgPSAkRkFRT2JqZWN0LT5TdGF0ZVR5cGVMaXN0KAogICAgICAgIFR5cGVzICA9PiAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6Q3VzdG9tZXI6OlN0YXRlVHlwZXMnKSwKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIHNob3cgbm8gcGVybWlzc2lvbiBlcnJvcgogICAgaWYgKAogICAgICAgICEkUGVybWlzc2lvbgogICAgICAgIHx8ICEkRkFRRGF0YXtBcHByb3ZlZH0KICAgICAgICB8fCAhJEludGVyZmFjZVN0YXRlcy0+eyAkRkFRRGF0YXtTdGF0ZVR5cGVJRH0gfQogICAgICAgICkKICAgIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Q3VzdG9tZXJOb1Blcm1pc3Npb24oIFdpdGhIZWFkZXIgPT4gJ3llcycgKTsKICAgIH0KCiAgICAjIHNldCBkZWZhdWx0IGludGVyZmFjZSBzZXR0aW5ncwogICAgbXkgJEludGVyZmFjZSA9ICRGQVFPYmplY3QtPlN0YXRlVHlwZUdldCgKICAgICAgICBOYW1lICAgPT4gJ2V4dGVybmFsJywKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIHByZXBhcmUgZmllbGRzIGRhdGEKICAgIEZJRUxEOgogICAgZm9yIG15ICRGaWVsZCAocXcoRmllbGQxIEZpZWxkMiBGaWVsZDMgRmllbGQ0IEZpZWxkNSBGaWVsZDYpKSB7CiAgICAgICAgbmV4dCBGSUVMRCBpZiAhJEZBUURhdGF7JEZpZWxkfTsKCiAgICAgICAgIyByZXdyaXRlIGxpbmtzIHRvIGVtYmVkZGVkIGltYWdlcyBmb3IgY3VzdG9tZXIgYW5kIHB1YmxpYyBpbnRlcmZhY2UKICAgICAgICBpZiAoICRJbnRlcmZhY2UtPntOYW1lfSBlcSAnZXh0ZXJuYWwnICkgewogICAgICAgICAgICAkRkFRRGF0YXskRmllbGR9CiAgICAgICAgICAgICAgICA9fiBzeyBpbmRleFsuXXBsIFs/XSBBY3Rpb249QWdlbnRGQVFab29tIH17Y3VzdG9tZXIucGw/QWN0aW9uPUN1c3RvbWVyRkFRWm9vbX1neG1zOwogICAgICAgIH0KICAgIH0KCiAgICBteSAkUERGT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlBERicpOwoKICAgICMgZ2VuZXJhdGUgUERGIG91dHB1dAogICAgbXkgJFByaW50ZWRCeSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgncHJpbnRlZCBieScpOwogICAgbXkgJFRpbWUgICAgICA9ICRMYXlvdXRPYmplY3QtPntUaW1lfTsKICAgIG15ICVQYWdlOwoKICAgICMgZ2V0IG1heGltdW0gbnVtYmVyIG9mIHBhZ2VzCiAgICAkUGFnZXtNYXhQYWdlc30gPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1BERjo6TWF4UGFnZXMnKTsKICAgIGlmICggISRQYWdle01heFBhZ2VzfSB8fCAkUGFnZXtNYXhQYWdlc30gPCAxIHx8ICRQYWdle01heFBhZ2VzfSA+IDEwMDAgKSB7CiAgICAgICAgJFBhZ2V7TWF4UGFnZXN9ID0gMTAwOwogICAgfQogICAgbXkgJEhlYWRlclJpZ2h0ICA9ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpGQVFIb29rJykgLiAkRkFRRGF0YXtOdW1iZXJ9OwogICAgbXkgJEhlYWRsaW5lTGVmdCA9ICRIZWFkZXJSaWdodDsKICAgIG15ICRUaXRsZSAgICAgICAgPSAkSGVhZGVyUmlnaHQ7CiAgICBpZiAoICRGQVFEYXRhe1RpdGxlfSApIHsKICAgICAgICAkSGVhZGxpbmVMZWZ0ID0gJEZBUURhdGF7VGl0bGV9OwogICAgICAgICRUaXRsZSAuPSAnIC8gJyAuICRGQVFEYXRhe1RpdGxlfTsKICAgIH0KCiAgICAkUGFnZXtNYXJnaW5Ub3B9ICAgICA9IDMwOwogICAgJFBhZ2V7TWFyZ2luUmlnaHR9ICAgPSA0MDsKICAgICRQYWdle01hcmdpbkJvdHRvbX0gID0gNDA7CiAgICAkUGFnZXtNYXJnaW5MZWZ0fSAgICA9IDQwOwogICAgJFBhZ2V7SGVhZGVyUmlnaHR9ICAgPSAkSGVhZGVyUmlnaHQ7CiAgICAkUGFnZXtIZWFkbGluZVJpZ2h0fSA9ICRQcmludGVkQnkgLiAnICcKICAgICAgICAuICRTZWxmLT57VXNlckZ1bGxuYW1lfSAuICcgKCcKICAgICAgICAuICRTZWxmLT57VXNlckVtYWlsfSAuICcpICcKICAgICAgICAuICRUaW1lOwogICAgJFBhZ2V7UGFnZVRleHR9ICA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnUGFnZScpOwogICAgJFBhZ2V7UGFnZUNvdW50fSA9IDE7CgogICAgIyBjcmVhdGUgbmV3IFBERiBkb2N1bWVudAogICAgJFBERk9iamVjdC0+RG9jdW1lbnROZXcoCiAgICAgICAgVGl0bGUgID0+ICRDb25maWdPYmplY3QtPkdldCgnUHJvZHVjdCcpIC4gJzogJyAuICRUaXRsZSwKICAgICAgICBFbmNvZGUgPT4gJExheW91dE9iamVjdC0+e1VzZXJDaGFyc2V0fSwKICAgICk7CgogICAgIyBjcmVhdGUgZmlyc3QgUERGIHBhZ2UKICAgICRQREZPYmplY3QtPlBhZ2VOZXcoCiAgICAgICAgJVBhZ2UsCiAgICAgICAgRm9vdGVyUmlnaHQgPT4gJFBhZ2V7UGFnZVRleHR9IC4gJyAnIC4gJFBhZ2V7UGFnZUNvdW50fSwKICAgICk7CiAgICAkUGFnZXtQYWdlQ291bnR9Kys7CgogICAgJFBERk9iamVjdC0+UG9zaXRpb25TZXQoCiAgICAgICAgTW92ZSA9PiAncmVsYXRpdicsCiAgICAgICAgWSAgICA9PiAtNiwKICAgICk7CgogICAgIyBvdXRwdXQgaGVhZGxpbmUKICAgICRQREZPYmplY3QtPlRleHQoCiAgICAgICAgVGV4dCAgICAgPT4gJEZBUURhdGF7VGl0bGV9LAogICAgICAgIEZvbnRTaXplID0+IDEzLAoKICAgICk7CgogICAgJFBERk9iamVjdC0+UG9zaXRpb25TZXQoCiAgICAgICAgTW92ZSA9PiAncmVsYXRpdicsCiAgICAgICAgWSAgICA9PiAtNiwKICAgICk7CgogICAgIyBvdXRwdXQgInByaW50ZWQgYnkiCiAgICAkUERGT2JqZWN0LT5UZXh0KAogICAgICAgIFRleHQgPT4gJFByaW50ZWRCeSAuICcgJwogICAgICAgICAgICAuICRTZWxmLT57VXNlckZ1bGxuYW1lfSAuICcgKCcKICAgICAgICAgICAgLiAkU2VsZi0+e1VzZXJFbWFpbH0gLiAnKScKICAgICAgICAgICAgLiAnLCAnIC4gJFRpbWUsCiAgICAgICAgRm9udFNpemUgPT4gOSwKICAgICk7CgogICAgJFBERk9iamVjdC0+UG9zaXRpb25TZXQoCiAgICAgICAgTW92ZSA9PiAncmVsYXRpdicsCiAgICAgICAgWSAgICA9PiAtMTQsCiAgICApOwoKICAgICMgdHlwZSBvZiBwcmludCB0YWcKICAgIG15ICRQcmludFRhZyA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnRkFRIEFydGljbGUgUHJpbnQnKTsKCiAgICAjIG91dHB1dCBoZWFkbGluZQogICAgJFBERk9iamVjdC0+VGV4dCgKICAgICAgICBUZXh0ICAgICA9PiAkUHJpbnRUYWcsCiAgICAgICAgSGVpZ2h0ICAgPT4gOSwKICAgICAgICBUeXBlICAgICA9PiAnQ3V0JywKICAgICAgICBGb250ICAgICA9PiAnUHJvcG9ydGlvbmFsQm9sZCcsCiAgICAgICAgQWxpZ24gICAgPT4gJ3JpZ2h0JywKICAgICAgICBGb250U2l6ZSA9PiA5LAogICAgICAgIENvbG9yICAgID0+ICcjNjY2NjY2JywKICAgICk7CgogICAgJFBERk9iamVjdC0+UG9zaXRpb25TZXQoCiAgICAgICAgTW92ZSA9PiAncmVsYXRpdicsCiAgICAgICAgWSAgICA9PiAtNiwKICAgICk7CgogICAgIyBvdXRwdXQgRkFRIGluZm9ybWF0aW9uCiAgICAkU2VsZi0+X1BERk91dHB1dEZBUUhlYWRlckluZm8oCiAgICAgICAgUGFnZURhdGEgPT4gXCVQYWdlLAogICAgICAgIEZBUURhdGEgID0+IFwlRkFRRGF0YSwKICAgICk7CgogICAgaWYgKCAkRkFRRGF0YXtLZXl3b3Jkc30gKSB7CiAgICAgICAgJFNlbGYtPl9QREZPdXRwdXRLZXl3b3JkcygKICAgICAgICAgICAgUGFnZURhdGEgPT4gXCVQYWdlLAogICAgICAgICAgICBGQVFEYXRhICA9PiBcJUZBUURhdGEsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIG91dHB1dCBGQVEgZHluYW1pYyBmaWVsZHMKICAgICRTZWxmLT5fUERGT3V0cHV0RkFRRHluYW1pY0ZpZWxkcygKICAgICAgICBQYWdlRGF0YSA9PiBcJVBhZ2UsCiAgICAgICAgRkFRRGF0YSAgPT4gXCVGQVFEYXRhLAogICAgKTsKCiAgICAkU2VsZi0+X1BERk91cHV0RkFRQ29udGVudCgKICAgICAgICBQYWdlRGF0YSAgICAgICAgPT4gXCVQYWdlLAogICAgICAgIEZBUURhdGEgICAgICAgICA9PiBcJUZBUURhdGEsCiAgICAgICAgSW50ZXJmYWNlU3RhdGVzID0+ICRJbnRlcmZhY2VTdGF0ZXMsCiAgICApOwoKICAgICMgUmV0dXJuIHRoZSBQREYgZG9jdW1lbnQuCiAgICBteSAkRmlsZW5hbWUgPSAnRkFRXycgLiAkRkFRRGF0YXtOdW1iZXJ9OwoKICAgIG15ICREYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpOwogICAgbXkgJERhdGVUaW1lICAgICAgID0gJERhdGVUaW1lT2JqZWN0LT5HZXQoKTsKICAgIG15ICRZICAgICAgICAgICAgICA9ICREYXRlVGltZS0+e1llYXJ9OwogICAgbXkgJE0gICAgICAgICAgICAgID0gc3ByaW50ZiggIiUwMmQiLCAkRGF0ZVRpbWUtPntNb250aH0gKTsKICAgIG15ICREICAgICAgICAgICAgICA9IHNwcmludGYoICIlMDJkIiwgJERhdGVUaW1lLT57RGF5fSApOwogICAgbXkgJGggICAgICAgICAgICAgID0gc3ByaW50ZiggIiUwMmQiLCAkRGF0ZVRpbWUtPntIb3VyfSApOwogICAgbXkgJG0gICAgICAgICAgICAgID0gc3ByaW50ZiggIiUwMmQiLCAkRGF0ZVRpbWUtPntNaW51dGV9ICk7CgogICAgbXkgJFBERlN0cmluZyA9ICRQREZPYmplY3QtPkRvY3VtZW50T3V0cHV0KCk7CiAgICByZXR1cm4gJExheW91dE9iamVjdC0+QXR0YWNobWVudCgKICAgICAgICBGaWxlbmFtZSAgICA9PiAkRmlsZW5hbWUgLiAiXyIgLiAiJFktJE0tJEQiIC4gIl8iIC4gIiRoLSRtLnBkZiIsCiAgICAgICAgQ29udGVudFR5cGUgPT4gImFwcGxpY2F0aW9uL3BkZiIsCiAgICAgICAgQ29udGVudCAgICAgPT4gJFBERlN0cmluZywKICAgICAgICBUeXBlICAgICAgICA9PiAnaW5saW5lJywKICAgICk7Cn0KCnN1YiBfUERGT3V0cHV0RkFRSGVhZGVySW5mbyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkTmVlZGVkIChxdyhQYWdlRGF0YSBGQVFEYXRhKSkgewogICAgICAgIGlmICggIWRlZmluZWQoICRQYXJhbXskTmVlZGVkfSApICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CiAgICBteSAlRkFRRGF0YSA9ICV7ICRQYXJhbXtGQVFEYXRhfSB9OwogICAgbXkgJVBhZ2UgICAgPSAleyAkUGFyYW17UGFnZURhdGF9IH07CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIGNyZWF0ZSBsZWZ0IHRhYmxlCiAgICBteSAkVGFibGVMZWZ0ID0gWwogICAgICAgIHsKICAgICAgICAgICAgS2V5ICAgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdDYXRlZ29yeScpIC4gJzonLAogICAgICAgICAgICBWYWx1ZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICRGQVFEYXRhe0NhdGVnb3J5TmFtZX0gKSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgS2V5ICAgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdTdGF0ZScpIC4gJzonLAogICAgICAgICAgICBWYWx1ZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICRGQVFEYXRhe1N0YXRlfSApLAogICAgICAgIH0sCiAgICBdOwoKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICMgZ2V0IGRlZmF1bHQgbXVsdGkgbGFuZ3VhZ2Ugb3B0aW9uCiAgICBteSAkTXVsdGlMYW5ndWFnZSA9ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpNdWx0aUxhbmd1YWdlJyk7CgogICAgIyBsYW5ndWFnZSByb3csIGZlYXR1cmUgaXMgZW5hYmxlZAogICAgaWYgKCRNdWx0aUxhbmd1YWdlKSB7CiAgICAgICAgbXkgJFJvdyA9IHsKICAgICAgICAgICAgS2V5ICAgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdMYW5ndWFnZScpIC4gJzonLAogICAgICAgICAgICBWYWx1ZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICRGQVFEYXRhe0xhbmd1YWdlfSApLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAeyRUYWJsZUxlZnR9LCAkUm93OwogICAgfQoKICAgICMgY3JlYXRlIHJpZ2h0IHRhYmxlCiAgICBteSAkVGFibGVSaWdodDsKCiAgICAjIGdldCBkZWZhdWx0IHZvdGluZyBvcHRpb24KICAgIG15ICRWb3RpbmcgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6Vm90aW5nJyk7CgogICAgIyB2b3Rpbmcgcm93cywgZmVhdHVyZSBpcyBlbmFibGVkCiAgICBpZiAoJFZvdGluZykgewogICAgICAgICRUYWJsZVJpZ2h0ID0gWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBLZXkgICA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ1ZvdGVzJykgLiAnOicsCiAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkRkFRRGF0YXtWb3Rlc30sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEtleSAgID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnUmVzdWx0JykgLiAnOicsCiAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkRkFRRGF0YXtWb3RlUmVzdWx0fSAuICIgJSIsCiAgICAgICAgICAgIH0sCiAgICAgICAgXTsKICAgIH0KCiAgICAjIGxhc3QgdXBkYXRlIHJvdwogICAgcHVzaCBAeyRUYWJsZVJpZ2h0fSwgewogICAgICAgIEtleSAgID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnTGFzdCB1cGRhdGUnKSAuICc6JywKICAgICAgICBWYWx1ZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5Gb3JtYXRUaW1lU3RyaW5nKAogICAgICAgICAgICAkRkFRRGF0YXtDaGFuZ2VkfSwKICAgICAgICAgICAgJ0RhdGVGb3JtYXQnLAogICAgICAgICksCiAgICB9OwoKICAgIG15ICRSb3dzID0gQHskVGFibGVMZWZ0fTsKICAgIGlmICggQHskVGFibGVSaWdodH0gPiAkUm93cyApIHsKICAgICAgICAkUm93cyA9IEB7JFRhYmxlUmlnaHR9OwogICAgfQoKICAgIG15ICVUYWJsZVBhcmFtOwogICAgZm9yIG15ICRSb3cgKCAxIC4uICRSb3dzICkgewogICAgICAgICRSb3ctLTsKICAgICAgICAkVGFibGVQYXJhbXtDZWxsRGF0YX1bJFJvd11bMF17Q29udGVudH0gICAgICAgICA9ICRUYWJsZUxlZnQtPlskUm93XS0+e0tleX07CiAgICAgICAgJFRhYmxlUGFyYW17Q2VsbERhdGF9WyRSb3ddWzBde0ZvbnR9ICAgICAgICAgICAgPSAnUHJvcG9ydGlvbmFsQm9sZCc7CiAgICAgICAgJFRhYmxlUGFyYW17Q2VsbERhdGF9WyRSb3ddWzFde0NvbnRlbnR9ICAgICAgICAgPSAkVGFibGVMZWZ0LT5bJFJvd10tPntWYWx1ZX07CiAgICAgICAgJFRhYmxlUGFyYW17Q2VsbERhdGF9WyRSb3ddWzJde0NvbnRlbnR9ICAgICAgICAgPSAnICc7CiAgICAgICAgJFRhYmxlUGFyYW17Q2VsbERhdGF9WyRSb3ddWzJde0JhY2tncm91bmRDb2xvcn0gPSAnI0ZGRkZGRic7CiAgICAgICAgJFRhYmxlUGFyYW17Q2VsbERhdGF9WyRSb3ddWzNde0NvbnRlbnR9ICAgICAgICAgPSAkVGFibGVSaWdodC0+WyRSb3ddLT57S2V5fTsKICAgICAgICAkVGFibGVQYXJhbXtDZWxsRGF0YX1bJFJvd11bM117Rm9udH0gICAgICAgICAgICA9ICdQcm9wb3J0aW9uYWxCb2xkJzsKICAgICAgICAkVGFibGVQYXJhbXtDZWxsRGF0YX1bJFJvd11bNF17Q29udGVudH0gICAgICAgICA9ICRUYWJsZVJpZ2h0LT5bJFJvd10tPntWYWx1ZX07CiAgICB9CgogICAgJFRhYmxlUGFyYW17Q29sdW1uRGF0YX1bMF17V2lkdGh9ID0gODA7CiAgICAkVGFibGVQYXJhbXtDb2x1bW5EYXRhfVsxXXtXaWR0aH0gPSAxNzAuNTsKICAgICRUYWJsZVBhcmFte0NvbHVtbkRhdGF9WzJde1dpZHRofSA9IDQ7CiAgICAkVGFibGVQYXJhbXtDb2x1bW5EYXRhfVszXXtXaWR0aH0gPSA4MDsKICAgICRUYWJsZVBhcmFte0NvbHVtbkRhdGF9WzRde1dpZHRofSA9IDE3MC41OwoKICAgICRUYWJsZVBhcmFte1R5cGV9ICAgICAgICAgICAgICAgID0gJ0N1dCc7CiAgICAkVGFibGVQYXJhbXtCb3JkZXJ9ICAgICAgICAgICAgICA9IDA7CiAgICAkVGFibGVQYXJhbXtGb250U2l6ZX0gICAgICAgICAgICA9IDY7CiAgICAkVGFibGVQYXJhbXtCYWNrZ3JvdW5kQ29sb3JFdmVufSA9ICcjREREREREJzsKICAgICRUYWJsZVBhcmFte1BhZGRpbmd9ICAgICAgICAgICAgID0gMTsKICAgICRUYWJsZVBhcmFte1BhZGRpbmdUb3B9ICAgICAgICAgID0gMzsKICAgICRUYWJsZVBhcmFte1BhZGRpbmdCb3R0b219ICAgICAgID0gMzsKCiAgICBteSAkUERGT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlBERicpOwoKICAgICMgb3V0cHV0IHRhYmxlCiAgICBQQUdFOgogICAgZm9yICggJFBhZ2V7UGFnZUNvdW50fSAuLiAkUGFnZXtNYXhQYWdlc30gKSB7CgogICAgICAgICMgb3V0cHV0IHRhYmxlIChvciBhIGZyYWdtZW50IG9mIGl0KQogICAgICAgICVUYWJsZVBhcmFtID0gJFBERk9iamVjdC0+VGFibGUoICVUYWJsZVBhcmFtLCApOwoKICAgICAgICAjIHN0b3Agb3V0cHV0IG9yIG91dHB1dCBuZXh0IHBhZ2UKICAgICAgICBpZiAoICRUYWJsZVBhcmFte1N0YXRlfSApIHsKICAgICAgICAgICAgbGFzdCBQQUdFOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFBERk9iamVjdC0+UGFnZU5ldygKICAgICAgICAgICAgICAgICVQYWdlLAogICAgICAgICAgICAgICAgRm9vdGVyUmlnaHQgPT4gJFBhZ2V7UGFnZVRleHR9IC4gJyAnIC4gJFBhZ2V7UGFnZUNvdW50fSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFBhZ2V7UGFnZUNvdW50fSsrOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiAxOwp9CgpzdWIgX1BERk91dHB1dEtleXdvcmRzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICROZWVkZWQgKHF3KFBhZ2VEYXRhIEZBUURhdGEpKSB7CiAgICAgICAgaWYgKCAhZGVmaW5lZCggJFBhcmFteyROZWVkZWR9ICkgKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIgogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQogICAgbXkgJUZBUURhdGEgPSAleyAkUGFyYW17RkFRRGF0YX0gfTsKICAgIG15ICVQYWdlICAgID0gJXsgJFBhcmFte1BhZ2VEYXRhfSB9OwogICAgbXkgJVRhYmxlUGFyYW07CgogICAgJFRhYmxlUGFyYW17Q2VsbERhdGF9WzBdWzBde0NvbnRlbnR9ID0gJEZBUURhdGF7S2V5d29yZHN9IHx8ICcnOwogICAgJFRhYmxlUGFyYW17Q29sdW1uRGF0YX1bMF17V2lkdGh9ID0gNTExOwoKICAgICMgZ2V0IFBERiBvYmplY3QKICAgIG15ICRQREZPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6UERGJyk7CgogICAgIyBzZXQgbmV3IHBvc2l0aW9uCiAgICAkUERGT2JqZWN0LT5Qb3NpdGlvblNldCgKICAgICAgICBNb3ZlID0+ICdyZWxhdGl2JywKICAgICAgICBZICAgID0+IC0xNSwKICAgICk7CgogICAgIyBvdXRwdXQgaGVhZGxpbmUKICAgICRQREZPYmplY3QtPlRleHQoCiAgICAgICAgVGV4dCAgICAgPT4gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpLT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ0tleXdvcmRzJyksCiAgICAgICAgSGVpZ2h0ICAgPT4gNywKICAgICAgICBUeXBlICAgICA9PiAnQ3V0JywKICAgICAgICBGb250ICAgICA9PiAnUHJvcG9ydGlvbmFsQm9sZEl0YWxpYycsCiAgICAgICAgRm9udFNpemUgPT4gNywKICAgICAgICBDb2xvciAgICA9PiAnIzY2NjY2NicsCiAgICApOwoKICAgICMgc2V0IG5ldyBwb3NpdGlvbgogICAgJFBERk9iamVjdC0+UG9zaXRpb25TZXQoCiAgICAgICAgTW92ZSA9PiAncmVsYXRpdicsCiAgICAgICAgWSAgICA9PiAtNCwKICAgICk7CgogICAgIyB0YWJsZSBwYXJhbXMKICAgICRUYWJsZVBhcmFte1R5cGV9ICAgICAgICAgICAgPSAnQ3V0JzsKICAgICRUYWJsZVBhcmFte0JvcmRlcn0gICAgICAgICAgPSAwOwogICAgJFRhYmxlUGFyYW17Rm9udFNpemV9ICAgICAgICA9IDY7CiAgICAkVGFibGVQYXJhbXtCYWNrZ3JvdW5kQ29sb3J9ID0gJyNEREREREQnOwogICAgJFRhYmxlUGFyYW17UGFkZGluZ30gICAgICAgICA9IDE7CiAgICAkVGFibGVQYXJhbXtQYWRkaW5nVG9wfSAgICAgID0gMzsKICAgICRUYWJsZVBhcmFte1BhZGRpbmdCb3R0b219ICAgPSAzOwoKICAgICMgb3V0cHV0IHRhYmxlCiAgICBQQUdFOgogICAgZm9yICggJFBhZ2V7UGFnZUNvdW50fSAuLiAkUGFnZXtNYXhQYWdlc30gKSB7CgogICAgICAgICMgb3V0cHV0IHRhYmxlIChvciBhIGZyYWdtZW50IG9mIGl0KQogICAgICAgICVUYWJsZVBhcmFtID0gJFBERk9iamVjdC0+VGFibGUoICVUYWJsZVBhcmFtLCApOwoKICAgICAgICAjIHN0b3Agb3V0cHV0IG9yIG91dHB1dCBuZXh0IHBhZ2UKICAgICAgICBpZiAoICRUYWJsZVBhcmFte1N0YXRlfSApIHsKICAgICAgICAgICAgbGFzdCBQQUdFOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFBERk9iamVjdC0+UGFnZU5ldygKICAgICAgICAgICAgICAgICVQYWdlLAogICAgICAgICAgICAgICAgRm9vdGVyUmlnaHQgPT4gJFBhZ2V7UGFnZVRleHR9IC4gJyAnIC4gJFBhZ2V7UGFnZUNvdW50fSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFBhZ2V7UGFnZUNvdW50fSsrOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiAxOwp9CgpzdWIgX1BERk91dHB1dEZBUUR5bmFtaWNGaWVsZHMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoUGFnZURhdGEgRkFRRGF0YSkpIHsKICAgICAgICBpZiAoICFkZWZpbmVkKCAkUGFyYW17JE5lZWRlZH0gKSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CiAgICBteSAkT3V0cHV0ID0gMDsKICAgIG15ICVGQVEgICAgPSAleyAkUGFyYW17RkFRRGF0YX0gfTsKICAgIG15ICVQYWdlICAgPSAleyAkUGFyYW17UGFnZURhdGF9IH07CgogICAgbXkgJVRhYmxlUGFyYW07CiAgICBteSAkUm93ID0gMDsKCiAgICAjIGdldCBkeW5hbWljIGZpZWxkIGNvbmZpZyBmb3IgZnJvbnRlbmQgbW9kdWxlCiAgICBteSAkRHluYW1pY0ZpZWxkRmlsdGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCJGQVE6OkZyb250ZW5kOjpDdXN0b21lckZBUVByaW50IiktPntEeW5hbWljRmllbGR9OwoKICAgICMgZ2V0IHRoZSBkeW5hbWljIGZpZWxkcyBmb3IgRkFRIG9iamVjdAogICAgbXkgJER5bmFtaWNGaWVsZCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKS0+RHluYW1pY0ZpZWxkTGlzdEdldCgKICAgICAgICBWYWxpZCAgICAgICA9PiAxLAogICAgICAgIE9iamVjdFR5cGUgID0+IFsnRkFRJ10sCiAgICAgICAgRmllbGRGaWx0ZXIgPT4gJER5bmFtaWNGaWVsZEZpbHRlciB8fCB7fSwKICAgICk7CgogICAgbXkgJExheW91dE9iamVjdCAgICAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CiAgICBteSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKTsKCiAgICAjIGdlbmVyYXRlIHRhYmxlCiAgICBEWU5BTUlDRklFTEQ6CiAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7JER5bmFtaWNGaWVsZH0gKSB7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICAjIHNraXAgZHluYW1pYyBmaWVsZCBpZiBpcyBub3QgZGVzaWduZWQgZm9yIGN1c3RvbWVyIGludGVyZmFjZQogICAgICAgIG15ICRJc0N1c3RvbWVySW50ZXJmYWNlQ2FwYWJsZSA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5IYXNCZWhhdmlvcigKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgIEJlaGF2aW9yICAgICAgICAgICA9PiAnSXNDdXN0b21lckludGVyZmFjZUNhcGFibGUnLAogICAgICAgICk7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgISRJc0N1c3RvbWVySW50ZXJmYWNlQ2FwYWJsZTsKCiAgICAgICAgbXkgJFZhbHVlID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPlZhbHVlR2V0KAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgT2JqZWN0SUQgICAgICAgICAgID0+ICRGQVF7RkFRSUR9LAogICAgICAgICk7CgogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICEkVmFsdWU7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgJFZhbHVlIGVxICIiOwoKICAgICAgICAjIGdldCBwcmludCBzdHJpbmcgZm9yIHRoaXMgZHluYW1pYyBmaWVsZAogICAgICAgIG15ICRWYWx1ZVN0cmcgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+RGlzcGxheVZhbHVlUmVuZGVyKAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICRWYWx1ZSwKICAgICAgICAgICAgSFRNTE91dHB1dCAgICAgICAgID0+IDAsCiAgICAgICAgICAgIExheW91dE9iamVjdCAgICAgICA9PiAkTGF5b3V0T2JqZWN0LAogICAgICAgICk7CiAgICAgICAgJFRhYmxlUGFyYW17Q2VsbERhdGF9WyRSb3ddWzBde0NvbnRlbnR9CiAgICAgICAgICAgID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TGFiZWx9ICkKICAgICAgICAgICAgLiAnOic7CiAgICAgICAgJFRhYmxlUGFyYW17Q2VsbERhdGF9WyRSb3ddWzBde0ZvbnR9ICAgID0gJ1Byb3BvcnRpb25hbEJvbGQnOwogICAgICAgICRUYWJsZVBhcmFte0NlbGxEYXRhfVskUm93XVsxXXtDb250ZW50fSA9ICRWYWx1ZVN0cmctPntWYWx1ZX07CgogICAgICAgICRSb3crKzsKICAgICAgICAkT3V0cHV0ID0gMTsKICAgIH0KCiAgICAkVGFibGVQYXJhbXtDb2x1bW5EYXRhfVswXXtXaWR0aH0gPSA4MDsKICAgICRUYWJsZVBhcmFte0NvbHVtbkRhdGF9WzFde1dpZHRofSA9IDQzMTsKCiAgICAjIG91dHB1dCBGQVEgZHluYW1pYyBmaWVsZHMKICAgIGlmICgkT3V0cHV0KSB7CgogICAgICAgIG15ICRQREZPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6UERGJyk7CgogICAgICAgICMgc2V0IG5ldyBwb3NpdGlvbgogICAgICAgICRQREZPYmplY3QtPlBvc2l0aW9uU2V0KAogICAgICAgICAgICBNb3ZlID0+ICdyZWxhdGl2JywKICAgICAgICAgICAgWSAgICA9PiAtMTUsCiAgICAgICAgKTsKCiAgICAgICAgIyBvdXRwdXQgaGVhZGxpbmUKICAgICAgICAkUERGT2JqZWN0LT5UZXh0KAogICAgICAgICAgICBUZXh0ICAgICA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ0ZBUSBEeW5hbWljIEZpZWxkcycpLAogICAgICAgICAgICBIZWlnaHQgICA9PiA3LAogICAgICAgICAgICBUeXBlICAgICA9PiAnQ3V0JywKICAgICAgICAgICAgRm9udCAgICAgPT4gJ1Byb3BvcnRpb25hbEJvbGRJdGFsaWMnLAogICAgICAgICAgICBGb250U2l6ZSA9PiA3LAogICAgICAgICAgICBDb2xvciAgICA9PiAnIzY2NjY2NicsCiAgICAgICAgKTsKCiAgICAgICAgIyBzZXQgbmV3IHBvc2l0aW9uCiAgICAgICAgJFBERk9iamVjdC0+UG9zaXRpb25TZXQoCiAgICAgICAgICAgIE1vdmUgPT4gJ3JlbGF0aXYnLAogICAgICAgICAgICBZICAgID0+IC00LAogICAgICAgICk7CgogICAgICAgICMgdGFibGUgcGFyYW1zCiAgICAgICAgJFRhYmxlUGFyYW17VHlwZX0gICAgICAgICAgICA9ICdDdXQnOwogICAgICAgICRUYWJsZVBhcmFte0JvcmRlcn0gICAgICAgICAgPSAwOwogICAgICAgICRUYWJsZVBhcmFte0ZvbnRTaXplfSAgICAgICAgPSA2OwogICAgICAgICRUYWJsZVBhcmFte0JhY2tncm91bmRDb2xvcn0gPSAnI0RERERERCc7CiAgICAgICAgJFRhYmxlUGFyYW17UGFkZGluZ30gICAgICAgICA9IDE7CiAgICAgICAgJFRhYmxlUGFyYW17UGFkZGluZ1RvcH0gICAgICA9IDM7CiAgICAgICAgJFRhYmxlUGFyYW17UGFkZGluZ0JvdHRvbX0gICA9IDM7CgogICAgICAgICMgb3V0cHV0IHRhYmxlCiAgICAgICAgUEFHRToKICAgICAgICBmb3IgKCAkUGFnZXtQYWdlQ291bnR9IC4uICRQYWdle01heFBhZ2VzfSApIHsKCiAgICAgICAgICAgICMgb3V0cHV0IHRhYmxlIChvciBhIGZyYWdtZW50IG9mIGl0KQogICAgICAgICAgICAlVGFibGVQYXJhbSA9ICRQREZPYmplY3QtPlRhYmxlKCAlVGFibGVQYXJhbSwgKTsKCiAgICAgICAgICAgICMgc3RvcCBvdXRwdXQgb3Igb3V0cHV0IG5leHQgcGFnZQogICAgICAgICAgICBpZiAoICRUYWJsZVBhcmFte1N0YXRlfSApIHsKICAgICAgICAgICAgICAgIGxhc3QgUEFHRTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRQREZPYmplY3QtPlBhZ2VOZXcoCiAgICAgICAgICAgICAgICAgICAgJVBhZ2UsCiAgICAgICAgICAgICAgICAgICAgRm9vdGVyUmlnaHQgPT4gJFBhZ2V7UGFnZVRleHR9IC4gJyAnIC4gJFBhZ2V7UGFnZUNvdW50fSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkUGFnZXtQYWdlQ291bnR9Kys7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gMTsKfQoKc3ViIF9QREZPdXB1dEZBUUNvbnRlbnQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJFBhcmFtTmFtZSAocXcoUGFnZURhdGEgRkFRRGF0YSkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JFBhcmFtTmFtZX0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRQYXJhbU5hbWUhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBteSAlRkFRRGF0YSA9ICV7ICRQYXJhbXtGQVFEYXRhfSB9OwogICAgbXkgJVBhZ2UgICAgPSAleyAkUGFyYW17UGFnZURhdGF9IH07CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBnZXQgdGhlIGNvbmZpZyBvZiBGQVEgZmllbGRzIHRoYXQgc2hvdWxkIGJlIHNob3duCiAgICBteSAlRmllbGRzOwogICAgTlVNQkVSOgogICAgZm9yIG15ICROdW1iZXIgKCAxIC4uIDYgKSB7CgogICAgICAgICMgZ2V0IGNvbmZpZyBvZiBGQVEgZmllbGQKICAgICAgICBteSAkQ29uZmlnID0gJENvbmZpZ09iamVjdC0+R2V0KCAnRkFROjpJdGVtOjpGaWVsZCcgLiAkTnVtYmVyICk7CgogICAgICAgICMgc2tpcCBvdmVyIG5vdCBzaG93biBmaWVsZHMKICAgICAgICBuZXh0IE5VTUJFUiBpZiAhJENvbmZpZy0+e1Nob3d9OwoKICAgICAgICAjIHN0b3JlIG9ubHkgdGhlIGNvbmZpZyBvZiBmaWVsZHMgdGhhdCBzaG91bGQgYmUgc2hvd24KICAgICAgICAkRmllbGRzeyAiRmllbGQiIC4gJE51bWJlciB9ID0gJENvbmZpZzsKICAgIH0KCiAgICBteSAkRkFRT2JqZWN0ICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkZBUScpOwogICAgbXkgJFBERk9iamVjdCAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpQREYnKTsKICAgIG15ICRIVE1MVXRpbHNPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SFRNTFV0aWxzJyk7CiAgICBteSAkTGF5b3V0T2JqZWN0ICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgc29ydCBzaG93biBmaWVsZHMgYnkgcHJpb3JpdHkKICAgIEZJRUxEOgogICAgZm9yIG15ICRGaWVsZCAoIHNvcnQgeyAkRmllbGRzeyRhfS0+e1ByaW99IDw9PiAkRmllbGRzeyRifS0+e1ByaW99IH0ga2V5cyAlRmllbGRzICkgewoKICAgICAgICAjIGdldCB0aGUgc3RhdGUgdHlwZSBkYXRhIG9mIHRoaXMgZmllbGQKICAgICAgICBteSAkU3RhdGVUeXBlRGF0YSA9ICRGQVFPYmplY3QtPlN0YXRlVHlwZUdldCgKICAgICAgICAgICAgTmFtZSAgID0+ICRGaWVsZHN7JEZpZWxkfS0+e1Nob3d9LAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgZG8gbm90IHNob3cgZmllbGRzIHRoYXQgYXJlIG5vdCBhbGxvd2VkIGluIHRoZSBnaXZlbiBpbnRlcmZhY2UKICAgICAgICBuZXh0IEZJRUxEIGlmICEkUGFyYW17SW50ZXJmYWNlU3RhdGVzfS0+eyAkU3RhdGVUeXBlRGF0YS0+e1N0YXRlSUR9IH07CgogICAgICAgIG15ICVUYWJsZVBhcmFtOwoKICAgICAgICAjIGNvbnZlcnQgSFRNTCB0byBBU0NJSQogICAgICAgIG15ICRBc2NpaUZpZWxkID0gJEhUTUxVdGlsc09iamVjdC0+VG9Bc2NpaSggU3RyaW5nID0+ICRGQVFEYXRheyRGaWVsZH0gKTsKCiAgICAgICAgJFRhYmxlUGFyYW17Q2VsbERhdGF9WzBdWzBde0NvbnRlbnR9ID0gJEFzY2lpRmllbGQgfHwgJyc7CiAgICAgICAgJFRhYmxlUGFyYW17Q29sdW1uRGF0YX1bMF17V2lkdGh9ID0gNTExOwoKICAgICAgICAjIHNldCBuZXcgcG9zaXRpb24KICAgICAgICAkUERGT2JqZWN0LT5Qb3NpdGlvblNldCgKICAgICAgICAgICAgTW92ZSA9PiAncmVsYXRpdicsCiAgICAgICAgICAgIFkgICAgPT4gLTE1LAogICAgICAgICk7CgogICAgICAgICMgdHJhbnNsYXRlIHRoZSBmaWVsZCBuYW1lIGFuZCBzdGF0ZQogICAgICAgIG15ICRGaWVsZE5hbWUgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICRGaWVsZHN7JEZpZWxkfS0+eydDYXB0aW9uJ30gKQogICAgICAgICAgICAuICcgKCcKICAgICAgICAgICAgLiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICRTdGF0ZVR5cGVEYXRhLT57TmFtZX0gKQogICAgICAgICAgICAuICcpJzsKCiAgICAgICAgIyBvdXRwdXQgaGVhZGxpbmUKICAgICAgICAkUERGT2JqZWN0LT5UZXh0KAogICAgICAgICAgICBUZXh0ICAgICA9PiAkRmllbGROYW1lLAogICAgICAgICAgICBIZWlnaHQgICA9PiA3LAogICAgICAgICAgICBUeXBlICAgICA9PiAnQ3V0JywKICAgICAgICAgICAgRm9udCAgICAgPT4gJ1Byb3BvcnRpb25hbEJvbGRJdGFsaWMnLAogICAgICAgICAgICBGb250U2l6ZSA9PiA3LAogICAgICAgICAgICBDb2xvciAgICA9PiAnIzY2NjY2NicsCiAgICAgICAgKTsKCiAgICAgICAgIyBzZXQgbmV3IHBvc2l0aW9uCiAgICAgICAgJFBERk9iamVjdC0+UG9zaXRpb25TZXQoCiAgICAgICAgICAgIE1vdmUgPT4gJ3JlbGF0aXYnLAogICAgICAgICAgICBZICAgID0+IC00LAogICAgICAgICk7CgogICAgICAgICMgdGFibGUgcGFyYW1zCiAgICAgICAgJFRhYmxlUGFyYW17VHlwZX0gICAgICAgICAgICA9ICdDdXQnOwogICAgICAgICRUYWJsZVBhcmFte0JvcmRlcn0gICAgICAgICAgPSAwOwogICAgICAgICRUYWJsZVBhcmFte0ZvbnRTaXplfSAgICAgICAgPSA2OwogICAgICAgICRUYWJsZVBhcmFte0JhY2tncm91bmRDb2xvcn0gPSAnI0RERERERCc7CiAgICAgICAgJFRhYmxlUGFyYW17UGFkZGluZ30gICAgICAgICA9IDE7CiAgICAgICAgJFRhYmxlUGFyYW17UGFkZGluZ1RvcH0gICAgICA9IDM7CiAgICAgICAgJFRhYmxlUGFyYW17UGFkZGluZ0JvdHRvbX0gICA9IDM7CgogICAgICAgICMgb3V0cHV0IHRhYmxlCiAgICAgICAgUEFHRToKICAgICAgICBmb3IgKCAkUGFnZXtQYWdlQ291bnR9IC4uICRQYWdle01heFBhZ2VzfSApIHsKCiAgICAgICAgICAgICMgb3V0cHV0IHRhYmxlIChvciBhIGZyYWdtZW50IG9mIGl0KQogICAgICAgICAgICAlVGFibGVQYXJhbSA9ICRQREZPYmplY3QtPlRhYmxlKCAlVGFibGVQYXJhbSwgKTsKCiAgICAgICAgICAgICMgc3RvcCBvdXRwdXQgb3Igb3V0cHV0IG5leHQgcGFnZQogICAgICAgICAgICBpZiAoICRUYWJsZVBhcmFte1N0YXRlfSApIHsKICAgICAgICAgICAgICAgIGxhc3QgUEFHRTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRQREZPYmplY3QtPlBhZ2VOZXcoCiAgICAgICAgICAgICAgICAgICAgJVBhZ2UsCiAgICAgICAgICAgICAgICAgICAgRm9vdGVyUmlnaHQgPT4gJFBhZ2V7UGFnZVRleHR9IC4gJyAnIC4gJFBhZ2V7UGFnZUNvdW50fSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkUGFnZXtQYWdlQ291bnR9Kys7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gMTsKfQoKMTsK</File>
        <File Location="Kernel/Modules/CustomerFAQRelatedArticles.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6Q3VzdG9tZXJGQVFSZWxhdGVkQXJ0aWNsZXM7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRKU09OID0gJyc7CgogICAgbXkgJFBhcmFtT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwoKICAgIG15ICRTdWJqZWN0ICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnU3ViamVjdCcgKTsKICAgIG15ICRCb2R5ICAgICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnQm9keScgKTsKICAgIG15ICRTZXJ2aWNlSUQgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnU2VydmljZUlEJyApOwoKICAgIG15IEBSZWxhdGVkRkFRQXJ0aWNsZUxpc3Q7CiAgICBteSAkUmVsYXRlZEZBUUFydGljbGVGb3VuZE5vdGhpbmc7CgogICAgbXkgJENvbmZpZyAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgiRkFROjpGcm9udGVuZDo6JFNlbGYtPntBY3Rpb259Iik7CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgZ2V0IEZBUXMgYnkgc2VydmljZSBvbmx5LCBpZiBGQVE6OkN1c3RvbWVyOjpSZWxhdGVkQXJ0aWNsZXNPblNlcnZpY2VPbmx5CiAgICBteSAkQ29uZmlnT2JqZWN0ICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKICAgIG15ICRGQVFTZXJ2aWNlc0VuYWJsZWQgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6U2VydmljZScpOwogICAgbXkgJFNob3dPblNlcnZpY2VPbmx5ICA9ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpDdXN0b21lcjo6UmVsYXRlZEFydGljbGVzT25TZXJ2aWNlT25seScpOwogICAgbXkgJVNlcnZpY2VJRCAgICAgICAgICA9ICRGQVFTZXJ2aWNlc0VuYWJsZWQgPyAoIFNlcnZpY2VJRCA9PiAkU2VydmljZUlEICkgOiAoKTsKCiAgICBpZiAoICRGQVFTZXJ2aWNlc0VuYWJsZWQgJiYgISRTZXJ2aWNlSUQgKSB7CiAgICAgICAgJFJlbGF0ZWRGQVFBcnRpY2xlRm91bmROb3RoaW5nID0gMTsKICAgIH0KICAgIGVsc2lmICggJEZBUVNlcnZpY2VzRW5hYmxlZCAmJiAkU2hvd09uU2VydmljZU9ubHkgJiYgJFNlcnZpY2VJRCApIHsKCiAgICAgICAgIyBHZXQgdGhlIGxhbmd1YWdlIGZyb20gdGhlIHVzZXIgYW5kIGFkZCB0aGUgZGVmYXVsdCBsYW5ndWFnZXMgZnJvbSB0aGUgY29uZmlnLgogICAgICAgIG15ICRSZWxhdGVkQXJ0aWNsZUxhbmd1YWdlcyA9ICRDb25maWctPnsnRGVmYXVsdExhbmd1YWdlcyd9IHx8IFtdOwoKICAgICAgICAjIENoZWNrIGlmIHRoZSB1c2VyIGxhbmd1YWdlIGFscmVhZHkgZXhpc3RzLgogICAgICAgIG15ICVMb29rdXBSZWxhdGVkRkFRQXJ0aWNsZXNMYW5ndWFnZSA9IG1hcCB7ICRfID0+IDEgfSBAeyRSZWxhdGVkQXJ0aWNsZUxhbmd1YWdlc307CiAgICAgICAgaWYgKCAhJExvb2t1cFJlbGF0ZWRGQVFBcnRpY2xlc0xhbmd1YWdleyAkTGF5b3V0T2JqZWN0LT57VXNlckxhbmd1YWdlfSB9ICkgewogICAgICAgICAgICBwdXNoIEB7JFJlbGF0ZWRBcnRpY2xlTGFuZ3VhZ2VzfSwgJExheW91dE9iamVjdC0+e1VzZXJMYW5ndWFnZX07CiAgICAgICAgfQoKICAgICAgICBAUmVsYXRlZEZBUUFydGljbGVMaXN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkZBUScpLT5SZWxhdGVkQ3VzdG9tZXJTZXJ2aWNlQXJ0aWNsZUxpc3QoCiAgICAgICAgICAgICVTZXJ2aWNlSUQsCiAgICAgICAgICAgIExhbmd1YWdlcyA9PiAkUmVsYXRlZEFydGljbGVMYW5ndWFnZXMsCiAgICAgICAgICAgIExpbWl0ICAgICA9PiAkQ29uZmlnLT57U2hvd0xpbWl0fSB8fCAxMCwKICAgICAgICAgICAgVXNlcklEICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICBpZiAoICFAUmVsYXRlZEZBUUFydGljbGVMaXN0ICkgewogICAgICAgICAgICAkUmVsYXRlZEZBUUFydGljbGVGb3VuZE5vdGhpbmcgPSAxOwogICAgICAgIH0KICAgIH0KICAgIGVsc2lmICggJFN1YmplY3QgfHwgJEJvZHkgKSB7CgogICAgICAgICMgR2V0IHRoZSBsYW5ndWFnZSBmcm9tIHRoZSB1c2VyIGFuZCBhZGQgdGhlIGRlZmF1bHQgbGFuZ3VhZ2VzIGZyb20gdGhlIGNvbmZpZy4KICAgICAgICBteSAkUmVsYXRlZEFydGljbGVMYW5ndWFnZXMgPSAkQ29uZmlnLT57J0RlZmF1bHRMYW5ndWFnZXMnfSB8fCBbXTsKCiAgICAgICAgIyBDaGVjayBpZiB0aGUgdXNlciBsYW5ndWFnZSBhbHJlYWR5IGV4aXN0cy4KICAgICAgICBteSAlTG9va3VwUmVsYXRlZEZBUUFydGljbGVzTGFuZ3VhZ2UgPSBtYXAgeyAkXyA9PiAxIH0gQHskUmVsYXRlZEFydGljbGVMYW5ndWFnZXN9OwogICAgICAgIGlmICggISRMb29rdXBSZWxhdGVkRkFRQXJ0aWNsZXNMYW5ndWFnZXsgJExheW91dE9iamVjdC0+e1VzZXJMYW5ndWFnZX0gfSApIHsKICAgICAgICAgICAgcHVzaCBAeyRSZWxhdGVkQXJ0aWNsZUxhbmd1YWdlc30sICRMYXlvdXRPYmplY3QtPntVc2VyTGFuZ3VhZ2V9OwogICAgICAgIH0KCiAgICAgICAgQFJlbGF0ZWRGQVFBcnRpY2xlTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpGQVEnKS0+UmVsYXRlZEN1c3RvbWVyQXJ0aWNsZUxpc3QoCiAgICAgICAgICAgICVTZXJ2aWNlSUQsCiAgICAgICAgICAgIFN1YmplY3QgICA9PiAkU3ViamVjdCwKICAgICAgICAgICAgQm9keSAgICAgID0+ICRCb2R5LAogICAgICAgICAgICBMYW5ndWFnZXMgPT4gJFJlbGF0ZWRBcnRpY2xlTGFuZ3VhZ2VzLAogICAgICAgICAgICBMaW1pdCAgICAgPT4gJENvbmZpZy0+e1Nob3dMaW1pdH0gfHwgMTAsCiAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAhQFJlbGF0ZWRGQVFBcnRpY2xlTGlzdCApIHsKICAgICAgICAgICAgJFJlbGF0ZWRGQVFBcnRpY2xlRm91bmROb3RoaW5nID0gMTsKICAgICAgICB9CiAgICB9CgogICAgIyBHZW5lcmF0ZSB0aGUgaHRtbCBmb3IgdGhlIHdpZGdldC4KICAgIG15ICRDdXN0b21lclJlbGF0ZWRGQVFBcnRpY2xlc0hUTUxTdHJpbmcgPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdDdXN0b21lckZBUVJlbGF0ZWRBcnRpY2xlcycsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgUmVsYXRlZEZBUUFydGljbGVMaXN0ICAgICAgICAgPT4gXEBSZWxhdGVkRkFRQXJ0aWNsZUxpc3QsCiAgICAgICAgICAgIFJlbGF0ZWRGQVFBcnRpY2xlRm91bmROb3RoaW5nID0+ICRSZWxhdGVkRkFRQXJ0aWNsZUZvdW5kTm90aGluZywKICAgICAgICAgICAgVm90ZVN0YXJzVmlzaWJsZSAgICAgICAgICAgICAgPT4gJENvbmZpZy0+e1ZvdGVTdGFyc1Zpc2libGV9LAogICAgICAgIH0sCiAgICApOwoKICAgICRKU09OID0gJExheW91dE9iamVjdC0+SlNPTkVuY29kZSgKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgQ3VzdG9tZXJSZWxhdGVkRkFRQXJ0aWNsZXNIVE1MU3RyaW5nID0+ICRDdXN0b21lclJlbGF0ZWRGQVFBcnRpY2xlc0hUTUxTdHJpbmcsCiAgICAgICAgfSwKICAgICk7CgogICAgIyBidWlsZCBlbXB0eSBKU09OIG91dHB1dCBpZiBKU09OIGlzIGVtcHR5CiAgICBpZiAoICEkSlNPTiApIHsKICAgICAgICAkSlNPTiA9ICRMYXlvdXRPYmplY3QtPkpTT05FbmNvZGUoCiAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNlbmQgSlNPTiByZXNwb25zZQogICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkF0dGFjaG1lbnQoCiAgICAgICAgQ29udGVudFR5cGUgPT4gJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9JyAuICRMYXlvdXRPYmplY3QtPntDaGFyc2V0fSwKICAgICAgICBDb250ZW50ICAgICA9PiAkSlNPTiwKICAgICAgICBUeXBlICAgICAgICA9PiAnaW5saW5lJywKICAgICAgICBOb0NhY2hlICAgICA9PiAxLAogICAgKTsKfQoKMTsK</File>
        <File Location="Kernel/Modules/CustomerFAQSearch.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6Q3VzdG9tZXJGQVFTZWFyY2g7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpMYW5ndWFnZSAgICAgICAgICAgICAgcXcoVHJhbnNsYXRhYmxlKTsKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIGdldCBjb25maWcgZm9yIGZyb250ZW5kCiAgICAkU2VsZi0+e0NvbmZpZ30gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoIkZBUTo6RnJvbnRlbmQ6OiRTZWxmLT57QWN0aW9ufSIpOwoKICAgICMgZ2V0IGR5bmFtaWMgZmllbGQgY29uZmlnIGZvciBmcm9udGVuZCBtb2R1bGUKICAgIG15ICREeW5hbWljRmllbGRGaWx0ZXIgPSAkU2VsZi0+e0NvbmZpZ30tPntEeW5hbWljRmllbGR9OwoKICAgICMgZ2V0IHRoZSBkeW5hbWljIGZpZWxkcyBmb3IgRkFRIG9iamVjdAogICAgJFNlbGYtPntEeW5hbWljRmllbGR9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpLT5EeW5hbWljRmllbGRMaXN0R2V0KAogICAgICAgIFZhbGlkICAgICAgID0+IDEsCiAgICAgICAgT2JqZWN0VHlwZSAgPT4gJ0ZBUScsCiAgICAgICAgRmllbGRGaWx0ZXIgPT4gJER5bmFtaWNGaWVsZEZpbHRlciB8fCB7fSwKICAgICk7CgogICAgIyByZWR1Y2UgdGhlIGR5bmFtaWMgZmllbGRzIHRvIG9ubHkgdGhlIG9uZXMgdGhhdCBhcmUgZGVzaWduZWQgZm9yIGN1c3RvbWVyIGludGVyZmFjZQogICAgbXkgQEN1c3RvbWVyRHluYW1pY0ZpZWxkczsKICAgIERZTkFNSUNGSUVMRDoKICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHsgJFNlbGYtPntEeW5hbWljRmllbGR9IH0gKSB7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICBteSAkSXNDdXN0b21lckludGVyZmFjZUNhcGFibGUgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kJyktPkhhc0JlaGF2aW9yKAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgQmVoYXZpb3IgICAgICAgICAgID0+ICdJc0N1c3RvbWVySW50ZXJmYWNlQ2FwYWJsZScsCiAgICAgICAgKTsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJElzQ3VzdG9tZXJJbnRlcmZhY2VDYXBhYmxlOwoKICAgICAgICBwdXNoIEBDdXN0b21lckR5bmFtaWNGaWVsZHMsICREeW5hbWljRmllbGRDb25maWc7CiAgICB9CiAgICAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gPSBcQEN1c3RvbWVyRHluYW1pY0ZpZWxkczsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkT3V0cHV0OwoKICAgICMgZ2V0IGNvbmZpZyBmcm9tIGNvbnN0cnVjdG9yCiAgICBteSAkQ29uZmlnID0gJFNlbGYtPntDb25maWd9OwoKICAgIG15ICRQYXJhbU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKCiAgICAjIGdldCBjb25maWcgZGF0YQogICAgbXkgJFN0YXJ0SGl0ICAgICAgICA9IGludCggJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1N0YXJ0SGl0JyApIHx8IDEgKTsKICAgIG15ICRTZWFyY2hMaW1pdCAgICAgPSAkQ29uZmlnLT57U2VhcmNoTGltaXR9ICAgICB8fCAyMDA7CiAgICBteSAkU2VhcmNoUGFnZVNob3duID0gJENvbmZpZy0+e1NlYXJjaFBhZ2VTaG93bn0gfHwgNDA7CiAgICBteSAkU29ydEJ5ICAgICAgICAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1NvcnRCeScgKQogICAgICAgIHx8ICRDb25maWctPnsnU29ydEJ5OjpEZWZhdWx0J30KICAgICAgICB8fCAnRkFRSUQnOwogICAgbXkgJE9yZGVyQnkgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnT3JkZXInICkKICAgICAgICB8fCAkQ29uZmlnLT57J09yZGVyOjpEZWZhdWx0J30KICAgICAgICB8fCAnRG93bic7CgogICAgbXkgJFByb2ZpbGUgICAgICAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1Byb2ZpbGUnICkgICAgICAgIHx8ICcnOwogICAgbXkgJFNhdmVQcm9maWxlICAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1NhdmVQcm9maWxlJyApICAgIHx8ICcnOwogICAgbXkgJFRha2VMYXN0U2VhcmNoID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1Rha2VMYXN0U2VhcmNoJyApIHx8ICcnOwogICAgbXkgJEVyYXNlVGVtcGxhdGUgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0VyYXNlVGVtcGxhdGUnICkgIHx8ICcnOwoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBzZWFyY2ggd2l0aCBhIHNhdmVkIHRlbXBsYXRlCiAgICBpZiAoICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdTZWFyY2hUZW1wbGF0ZScgKSAmJiAkUHJvZmlsZSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgIE9QID0+CiAgICAgICAgICAgICAgICAiQWN0aW9uPUN1c3RvbWVyRkFRU2VhcmNoO1N1YmFjdGlvbj1TZWFyY2g7VGFrZUxhc3RTZWFyY2g9MTtTYXZlUHJvZmlsZT0xO1Byb2ZpbGU9JFByb2ZpbGUiLAogICAgICAgICk7CiAgICB9CgogICAgIyBidWlsZCBvdXRwdXQgZm9yIG9wZW4gc2VhcmNoIGRlc2NyaXB0aW9uIGJ5IEZBUSBudW1iZXIKICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdPcGVuU2VhcmNoRGVzY3JpcHRpb25GQVFOdW1iZXInICkgewogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQ3VzdG9tZXJGQVFTZWFyY2hPcGVuU2VhcmNoRGVzY3JpcHRpb25GQVFOdW1iZXInLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5BdHRhY2htZW50KAogICAgICAgICAgICBGaWxlbmFtZSAgICA9PiAnT3BlblNlYXJjaERlc2NyaXB0aW9uRkFRTnVtYmVyLnhtbCcsCiAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICdhcHBsaWNhdGlvbi9vcGVuc2VhcmNoZGVzY3JpcHRpb24reG1sJywKICAgICAgICAgICAgQ29udGVudCAgICAgPT4gJE91dHB1dCwKICAgICAgICAgICAgVHlwZSAgICAgICAgPT4gJ2lubGluZScsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGJ1aWxkIG91dHB1dCBmb3Igb3BlbiBzZWFyY2ggZGVzY3JpcHRpb24gYnkgZnVsbC10ZXh0CiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnT3BlblNlYXJjaERlc2NyaXB0aW9uRnVsbHRleHQnICkgewogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQ3VzdG9tZXJGQVFTZWFyY2hPcGVuU2VhcmNoRGVzY3JpcHRpb25GdWxsVGV4dCcsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkF0dGFjaG1lbnQoCiAgICAgICAgICAgIEZpbGVuYW1lICAgID0+ICdPcGVuU2VhcmNoRGVzY3JpcHRpb25GdWxsdGV4dC54bWwnLAogICAgICAgICAgICBDb250ZW50VHlwZSA9PiAnYXBwbGljYXRpb24vb3BlbnNlYXJjaGRlc2NyaXB0aW9uK3htbCcsCiAgICAgICAgICAgIENvbnRlbnQgICAgID0+ICRPdXRwdXQsCiAgICAgICAgICAgIFR5cGUgICAgICAgID0+ICdpbmxpbmUnLAogICAgICAgICk7CiAgICB9CgogICAgIyByZW1lbWJlciBleGNsdWRlIGF0dHJpYnV0ZXMKICAgIG15IEBFeGNsdWRlcyA9ICRQYXJhbU9iamVjdC0+R2V0QXJyYXkoIFBhcmFtID0+ICdFeGNsdWRlJyApOwoKICAgICMgZ2V0IHNpbmdsZSBwYXJhbXMKICAgIG15ICVHZXRQYXJhbTsKCiAgICBteSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKTsKICAgIG15ICRTZWFyY2hQcm9maWxlT2JqZWN0ICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlNlYXJjaFByb2ZpbGUnKTsKCiAgICAjIGxvYWQgcHJvZmlsZXMgc3RyaW5nIHBhcmFtcyAocHJlc3MgbG9hZCBwcm9maWxlKQogICAgaWYgKCAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnTG9hZFByb2ZpbGUnICYmICRQcm9maWxlICkgfHwgJFRha2VMYXN0U2VhcmNoICkgewogICAgICAgICVHZXRQYXJhbSA9ICRTZWFyY2hQcm9maWxlT2JqZWN0LT5TZWFyY2hQcm9maWxlR2V0KAogICAgICAgICAgICBCYXNlICAgICAgPT4gJ0N1c3RvbWVyRkFRU2VhcmNoJywKICAgICAgICAgICAgTmFtZSAgICAgID0+ICRQcm9maWxlLAogICAgICAgICAgICBVc2VyTG9naW4gPT4gJFNlbGYtPntVc2VyTG9naW59LAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgc2VhcmNoIHN0cmluZyBwYXJhbXMgKGdldCBzdWJtaXR0ZWQgcGFyYW1zKQogICAgZWxzZSB7CiAgICAgICAgZm9yIG15ICRQYXJhbU5hbWUgKAogICAgICAgICAgICBxdyhOdW1iZXIgVGl0bGUgS2V5d29yZCBGdWxsdGV4dCBSZXN1bHRGb3JtIFRpbWVTZWFyY2hUeXBlIFZvdGVTZWFyY2ggVm90ZVNlYXJjaFR5cGUKICAgICAgICAgICAgVm90ZVNlYXJjaE9wdGlvbiBSYXRlU2VhcmNoIFJhdGVTZWFyY2hUeXBlIFJhdGVTZWFyY2hPcHRpb24KICAgICAgICAgICAgSXRlbUNyZWF0ZVRpbWVQb2ludEZvcm1hdCBJdGVtQ3JlYXRlVGltZVBvaW50CiAgICAgICAgICAgIEl0ZW1DcmVhdGVUaW1lUG9pbnRTdGFydAogICAgICAgICAgICBJdGVtQ3JlYXRlVGltZVN0YXJ0IEl0ZW1DcmVhdGVUaW1lU3RhcnREYXkgSXRlbUNyZWF0ZVRpbWVTdGFydE1vbnRoCiAgICAgICAgICAgIEl0ZW1DcmVhdGVUaW1lU3RhcnRZZWFyCiAgICAgICAgICAgIEl0ZW1DcmVhdGVUaW1lU3RvcCBJdGVtQ3JlYXRlVGltZVN0b3BEYXkgSXRlbUNyZWF0ZVRpbWVTdG9wTW9udGgKICAgICAgICAgICAgSXRlbUNyZWF0ZVRpbWVTdG9wWWVhcgogICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICB7CgogICAgICAgICAgICAjIGdldCBzZWFyY2ggc3RyaW5nIHBhcmFtcyAoZ2V0IHN1Ym1pdHRlZCBwYXJhbXMpCiAgICAgICAgICAgICRHZXRQYXJhbXskUGFyYW1OYW1lfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbU5hbWUgKTsKCiAgICAgICAgICAgICMgcmVtb3ZlIHdoaXRlc3BhY2Ugb24gdGhlIHN0YXJ0IGFuZCBlbmQKICAgICAgICAgICAgaWYgKCAkR2V0UGFyYW17JFBhcmFtTmFtZX0gKSB7CiAgICAgICAgICAgICAgICAkR2V0UGFyYW17JFBhcmFtTmFtZX0gPX4gc3sgXEEgXHMrIH17fXhtczsKICAgICAgICAgICAgICAgICRHZXRQYXJhbXskUGFyYW1OYW1lfSA9fiBzeyBccysgXHogfXt9eG1zOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGdldCBhcnJheSBwYXJhbXMKICAgICAgICBmb3IgbXkgJFBhcmFtTmFtZSAocXcoQ2F0ZWdvcnlJRHMgTGFuZ3VhZ2VJRHMgKSkgewoKICAgICAgICAgICAgIyBnZXQgc2VhcmNoIGFycmF5IHBhcmFtcyAoZ2V0IHN1Ym1pdHRlZCBwYXJhbXMpCiAgICAgICAgICAgIG15IEBBcnJheSA9ICRQYXJhbU9iamVjdC0+R2V0QXJyYXkoIFBhcmFtID0+ICRQYXJhbU5hbWUgKTsKICAgICAgICAgICAgaWYgKEBBcnJheSkgewogICAgICAgICAgICAgICAgJEdldFBhcmFteyRQYXJhbU5hbWV9ID0gXEBBcnJheTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBnZXQgRHluYW1pYyBmaWVsZHMgZm9ybSBwYXJhbSBvYmplY3QKICAgICAgICBEWU5BTUlDRklFTEQ6CiAgICAgICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gfSApIHsKICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICAgICAgIyBnZXQgc2VhcmNoIGZpZWxkIHByZWZlcmVuY2VzCiAgICAgICAgICAgIG15ICRTZWFyY2hGaWVsZFByZWZlcmVuY2VzID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPlNlYXJjaEZpZWxkUHJlZmVyZW5jZXMoCiAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0FycmF5UmVmV2l0aERhdGEoJFNlYXJjaEZpZWxkUHJlZmVyZW5jZXMpOwoKICAgICAgICAgICAgUFJFRkVSRU5DRToKICAgICAgICAgICAgZm9yIG15ICRQcmVmZXJlbmNlICggQHskU2VhcmNoRmllbGRQcmVmZXJlbmNlc30gKSB7CgogICAgICAgICAgICAgICAgIyBleHRyYWN0IHRoZSBkeW5hbWljIGZpZWxkIHZhbHVlIGZyb20gdGhlIHdlYiByZXF1ZXN0CiAgICAgICAgICAgICAgICBteSAkRHluYW1pY0ZpZWxkVmFsdWUgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+U2VhcmNoRmllbGRWYWx1ZUdldCgKICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgICAgID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICAgICAgICAgUGFyYW1PYmplY3QgICAgICAgICAgICA9PiAkUGFyYW1PYmplY3QsCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuUHJvZmlsZVN0cnVjdHVyZSA9PiAxLAogICAgICAgICAgICAgICAgICAgIExheW91dE9iamVjdCAgICAgICAgICAgPT4gJExheW91dE9iamVjdCwKICAgICAgICAgICAgICAgICAgICBUeXBlICAgICAgICAgICAgICAgICAgID0+ICRQcmVmZXJlbmNlLT57VHlwZX0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgc2V0IHRoZSBjb21wbGV0ZSB2YWx1ZSBzdHJ1Y3R1cmUgaW4gR2V0UGFyYW0gdG8gc3RvcmUgaXQgbGF0ZXIgaW4gdGhlIHNlYXJjaAogICAgICAgICAgICAgICAgIyBwcm9maWxlCiAgICAgICAgICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRWYWx1ZSkgKSB7CiAgICAgICAgICAgICAgICAgICAgJUdldFBhcmFtID0gKCAlR2V0UGFyYW0sICV7JER5bmFtaWNGaWVsZFZhbHVlfSApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgaWYgaXRlbSBuZWVkIHRvIGdldCBleGNsdWRlZAogICAgZm9yIG15ICRFeGNsdWRlIChARXhjbHVkZXMpIHsKICAgICAgICBpZiAoICRHZXRQYXJhbXskRXhjbHVkZX0gKSB7CiAgICAgICAgICAgIGRlbGV0ZSAkR2V0UGFyYW17JEV4Y2x1ZGV9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCB2b3RlIG9wdGlvbgogICAgaWYgKCAhJEdldFBhcmFte1ZvdGVTZWFyY2hPcHRpb259ICkgewogICAgICAgICRHZXRQYXJhbXsnVm90ZVNlYXJjaE9wdGlvbjo6Tm9uZSd9ID0gJ2NoZWNrZWQ9ImNoZWNrZWQiJzsKICAgIH0KICAgIGVsc2lmICggJEdldFBhcmFte1ZvdGVTZWFyY2hPcHRpb259IGVxICdWb3RlUG9pbnQnICkgewogICAgICAgICRHZXRQYXJhbXsnVm90ZVNlYXJjaE9wdGlvbjo6Vm90ZVBvaW50J30gPSAnY2hlY2tlZD0iY2hlY2tlZCInOwogICAgfQoKICAgICMgZ2V0IHJhdGUgb3B0aW9uCiAgICBpZiAoICEkR2V0UGFyYW17UmF0ZVNlYXJjaE9wdGlvbn0gKSB7CiAgICAgICAgJEdldFBhcmFteydSYXRlU2VhcmNoT3B0aW9uOjpOb25lJ30gPSAnY2hlY2tlZD0iY2hlY2tlZCInOwogICAgfQogICAgZWxzaWYgKCAkR2V0UGFyYW17UmF0ZVNlYXJjaE9wdGlvbn0gZXEgJ1JhdGVQb2ludCcgKSB7CiAgICAgICAgJEdldFBhcmFteydSYXRlU2VhcmNoT3B0aW9uOjpSYXRlUG9pbnQnfSA9ICdjaGVja2VkPSJjaGVja2VkIic7CiAgICB9CgogICAgIyBnZXQgdGltZSBvcHRpb24KICAgIGlmICggISRHZXRQYXJhbXtUaW1lU2VhcmNoVHlwZX0gKSB7CiAgICAgICAgJEdldFBhcmFteydUaW1lU2VhcmNoVHlwZTo6Tm9uZSd9ID0gJ2NoZWNrZWQ9ImNoZWNrZWQiJzsKICAgIH0KICAgIGVsc2lmICggJEdldFBhcmFte1RpbWVTZWFyY2hUeXBlfSBlcSAnVGltZVBvaW50JyApIHsKICAgICAgICAkR2V0UGFyYW17J1RpbWVTZWFyY2hUeXBlOjpUaW1lUG9pbnQnfSA9ICdjaGVja2VkPSJjaGVja2VkIic7CiAgICB9CiAgICBlbHNpZiAoICRHZXRQYXJhbXtUaW1lU2VhcmNoVHlwZX0gZXEgJ1RpbWVTbG90JyApIHsKICAgICAgICAkR2V0UGFyYW17J1RpbWVTZWFyY2hUeXBlOjpUaW1lU2xvdCd9ID0gJ2NoZWNrZWQ9ImNoZWNrZWQiJzsKICAgIH0KCiAgICAjIHNldCByZXN1bHQgZm9ybSBFTlYKICAgIGlmICggISRHZXRQYXJhbXtSZXN1bHRGb3JtfSApIHsKICAgICAgICAkR2V0UGFyYW17UmVzdWx0Rm9ybX0gPSAnJzsKICAgIH0KICAgIGlmICggJEdldFBhcmFte1Jlc3VsdEZvcm19IGVxICdQcmludCcgKSB7CiAgICAgICAgJFNlYXJjaFBhZ2VTaG93biA9ICRTZWFyY2hMaW1pdDsKICAgIH0KCiAgICAjIGNoZWNrIHJlcXVlc3QKICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdPcGVuU2VhcmNoRGVzY3JpcHRpb24nICkgewogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQ3VzdG9tZXJGQVFTZWFyY2hPcGVuU2VhcmNoRGVzY3JpcHRpb24nLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4geyVQYXJhbX0sCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+QXR0YWNobWVudCgKICAgICAgICAgICAgRmlsZW5hbWUgICAgPT4gJ09wZW5TZWFyY2hEZXNjcmlwdGlvbi54bWwnLAogICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC94bWwnLAogICAgICAgICAgICBDb250ZW50ICAgICA9PiAkT3V0cHV0LAogICAgICAgICAgICBUeXBlICAgICAgICA9PiAnaW5saW5lJywKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICMgZ2V0IGRlZmF1bHQgbXVsdGkgbGFuZ3VhZ2Ugb3B0aW9uCiAgICBteSAkTXVsdGlMYW5ndWFnZSA9ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpNdWx0aUxhbmd1YWdlJyk7CgogICAgIyBzaG93IHJlc3VsdCBwYWdlCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnU2VhcmNoJyAmJiAhJEVyYXNlVGVtcGxhdGUgKSB7CgogICAgICAgICMgZmlsbCB1cCBwcm9maWxlIG5hbWUgKGUuZy4gd2l0aCBsYXN0LXNlYXJjaCkKICAgICAgICBpZiAoICEkUHJvZmlsZSB8fCAhJFNhdmVQcm9maWxlICkgewogICAgICAgICAgICAkUHJvZmlsZSA9ICdsYXN0LXNlYXJjaCc7CiAgICAgICAgfQoKICAgICAgICAjIHN0b3JlIGxhc3Qgb3ZlcnZpZXcgc2NyZWVuCiAgICAgICAgbXkgJFVSTCA9ICJBY3Rpb249Q3VzdG9tZXJGQVFTZWFyY2g7U3ViYWN0aW9uPVNlYXJjaDtQcm9maWxlPSRQcm9maWxlIgogICAgICAgICAgICAuICI7U29ydEJ5PSRTb3J0Qnk7T3JkZXJCeT0kT3JkZXJCeTtUYWtlTGFzdFNlYXJjaD0xIgogICAgICAgICAgICAuICI7U3RhcnRIaXQ9JFN0YXJ0SGl0IjsKCiAgICAgICAgbXkgJFNlc3Npb25PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6QXV0aFNlc3Npb24nKTsKCiAgICAgICAgIyBzdG9yZSBsYXN0IHNjcmVlbgogICAgICAgICRTZXNzaW9uT2JqZWN0LT5VcGRhdGVTZXNzaW9uSUQoCiAgICAgICAgICAgIFNlc3Npb25JRCA9PiAkU2VsZi0+e1Nlc3Npb25JRH0sCiAgICAgICAgICAgIEtleSAgICAgICA9PiAnTGFzdFNjcmVlblZpZXcnLAogICAgICAgICAgICBWYWx1ZSAgICAgPT4gJFVSTCwKICAgICAgICApOwogICAgICAgICRTZXNzaW9uT2JqZWN0LT5VcGRhdGVTZXNzaW9uSUQoCiAgICAgICAgICAgIFNlc3Npb25JRCA9PiAkU2VsZi0+e1Nlc3Npb25JRH0sCiAgICAgICAgICAgIEtleSAgICAgICA9PiAnTGFzdFNjcmVlbk92ZXJ2aWV3JywKICAgICAgICAgICAgVmFsdWUgICAgID0+ICRVUkwsCiAgICAgICAgKTsKCiAgICAgICAgIyBzYXZlIHNlYXJjaCBwcm9maWxlICh1bmRlciBsYXN0LXNlYXJjaCBvciByZWFsIHByb2ZpbGUgbmFtZSkKICAgICAgICAkU2F2ZVByb2ZpbGUgPSAxOwoKICAgICAgICAjIHJlbWVtYmVyIGxhc3Qgc2VhcmNoIHZhbHVlcwogICAgICAgIGlmICggJFNhdmVQcm9maWxlICYmICRQcm9maWxlICkgewoKICAgICAgICAgICAgIyByZW1vdmUgb2xkIHByb2ZpbGUgc3R1ZmYKICAgICAgICAgICAgJFNlYXJjaFByb2ZpbGVPYmplY3QtPlNlYXJjaFByb2ZpbGVEZWxldGUoCiAgICAgICAgICAgICAgICBCYXNlICAgICAgPT4gJ0N1c3RvbWVyRkFRU2VhcmNoJywKICAgICAgICAgICAgICAgIE5hbWUgICAgICA9PiAkUHJvZmlsZSwKICAgICAgICAgICAgICAgIFVzZXJMb2dpbiA9PiAkU2VsZi0+e1VzZXJMb2dpbn0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGluc2VydCBuZXcgcHJvZmlsZSBwYXJhbXMKICAgICAgICAgICAgZm9yIG15ICRQYXJhbU5hbWUgKCBzb3J0IGtleXMgJUdldFBhcmFtICkgewogICAgICAgICAgICAgICAgaWYgKCAkR2V0UGFyYW17JFBhcmFtTmFtZX0gKSB7CiAgICAgICAgICAgICAgICAgICAgJFNlYXJjaFByb2ZpbGVPYmplY3QtPlNlYXJjaFByb2ZpbGVBZGQoCiAgICAgICAgICAgICAgICAgICAgICAgIEJhc2UgICAgICA9PiAnQ3VzdG9tZXJGQVFTZWFyY2gnLAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgPT4gJFByb2ZpbGUsCiAgICAgICAgICAgICAgICAgICAgICAgIEtleSAgICAgICA9PiAkUGFyYW1OYW1lLAogICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSAgICAgPT4gJEdldFBhcmFteyRQYXJhbU5hbWV9LAogICAgICAgICAgICAgICAgICAgICAgICBVc2VyTG9naW4gPT4gJFNlbGYtPntVc2VyTG9naW59LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgZHluYW1pYyBmaWVsZHMgc2VhcmNoIHBhcmFtZXRlcnMgZm9yIEZBUSBzZWFyY2gKICAgICAgICBteSAlRHluYW1pY0ZpZWxkU2VhcmNoUGFyYW1ldGVyczsKICAgICAgICBteSAlRHluYW1pY0ZpZWxkU2VhcmNoRGlzcGxheTsKCiAgICAgICAgRFlOQU1JQ0ZJRUxEOgogICAgICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHsgJFNlbGYtPntEeW5hbWljRmllbGR9IH0gKSB7CiAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKCiAgICAgICAgICAgICMgZ2V0IHNlYXJjaCBmaWVsZCBwcmVmZXJlbmNlcwogICAgICAgICAgICBteSAkU2VhcmNoRmllbGRQcmVmZXJlbmNlcyA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5TZWFyY2hGaWVsZFByZWZlcmVuY2VzKAogICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNBcnJheVJlZldpdGhEYXRhKCRTZWFyY2hGaWVsZFByZWZlcmVuY2VzKTsKCiAgICAgICAgICAgIFBSRUZFUkVOQ0U6CiAgICAgICAgICAgIGZvciBteSAkUHJlZmVyZW5jZSAoIEB7JFNlYXJjaEZpZWxkUHJlZmVyZW5jZXN9ICkgewoKICAgICAgICAgICAgICAgIG15ICREeW5hbWljRmllbGRWYWx1ZSA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5TZWFyY2hGaWVsZFZhbHVlR2V0KAogICAgICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgICAgICBQYXJhbU9iamVjdCAgICAgICAgICAgID0+ICRQYXJhbU9iamVjdCwKICAgICAgICAgICAgICAgICAgICBUeXBlICAgICAgICAgICAgICAgICAgID0+ICRQcmVmZXJlbmNlLT57VHlwZX0sCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuUHJvZmlsZVN0cnVjdHVyZSA9PiAxLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIHNldCB0aGUgY29tcGxldGUgdmFsdWUgc3RydWN0dXJlIGluICVEeW5hbWljRmllbGRWYWx1ZXMgdG8gZGlzY2FyZCB0aG9zZSB3aGVyZSB0aGUKICAgICAgICAgICAgICAgICMgdmFsdWUgd2lsbCBub3QgYmUgcG9zc2libGUgdG8gZ2V0CiAgICAgICAgICAgICAgICBuZXh0IFBSRUZFUkVOQ0UgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRWYWx1ZSk7CgogICAgICAgICAgICAgICAgIyBleHRyYWN0IHRoZSBkeW5hbWljIGZpZWxkIHZhbHVlIGZyb20gdGhlIHByb2ZpbGUKICAgICAgICAgICAgICAgIG15ICRTZWFyY2hQYXJhbWV0ZXIgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+U2VhcmNoRmllbGRQYXJhbWV0ZXJCdWlsZCgKICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgICAgICBQcm9maWxlICAgICAgICAgICAgPT4gXCVHZXRQYXJhbSwKICAgICAgICAgICAgICAgICAgICBMYXlvdXRPYmplY3QgICAgICAgPT4gJExheW91dE9iamVjdCwKICAgICAgICAgICAgICAgICAgICBUeXBlICAgICAgICAgICAgICAgPT4gJFByZWZlcmVuY2UtPntUeXBlfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBzZXQgc2VhcmNoIHBhcmFtZXRlcgogICAgICAgICAgICAgICAgaWYgKCBkZWZpbmVkICRTZWFyY2hQYXJhbWV0ZXIgKSB7CiAgICAgICAgICAgICAgICAgICAgJER5bmFtaWNGaWVsZFNlYXJjaFBhcmFtZXRlcnN7ICdEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9CiAgICAgICAgICAgICAgICAgICAgICAgID0gJFNlYXJjaFBhcmFtZXRlci0+e1BhcmFtZXRlcn07CgogICAgICAgICAgICAgICAgICAgICMgc2V0IHZhbHVlIHRvIGRpc3BsYXkKICAgICAgICAgICAgICAgICAgICAkRHluYW1pY0ZpZWxkU2VhcmNoRGlzcGxheXsgJ0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0KICAgICAgICAgICAgICAgICAgICAgICAgPSAkU2VhcmNoUGFyYW1ldGVyLT57RGlzcGxheX07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgcHJlcGFyZSBmdWxsLXRleHQgc2VhcmNoCiAgICAgICAgaWYgKCAkR2V0UGFyYW17RnVsbHRleHR9ICkgewogICAgICAgICAgICAkR2V0UGFyYW17Q29udGVudFNlYXJjaH0gPSAnT1InOwogICAgICAgICAgICAkR2V0UGFyYW17V2hhdH0gICAgICAgICAgPSAkR2V0UGFyYW17RnVsbHRleHR9OwogICAgICAgIH0KCiAgICAgICAgIyBwcmVwYXJlIHZvdGVzIHNlYXJjaAogICAgICAgIGlmICggSXNOdW1iZXIoICRHZXRQYXJhbXtWb3RlU2VhcmNofSApICYmICRHZXRQYXJhbXtWb3RlU2VhcmNoT3B0aW9ufSApIHsKICAgICAgICAgICAgJEdldFBhcmFte1ZvdGVzfSA9IHsKICAgICAgICAgICAgICAgICRHZXRQYXJhbXtWb3RlU2VhcmNoVHlwZX0gPT4gJEdldFBhcmFte1ZvdGVTZWFyY2h9CiAgICAgICAgICAgIH07CiAgICAgICAgfQoKICAgICAgICAjIHByZXBhcmUgcmF0ZSBzZWFyY2gKICAgICAgICBpZiAoIElzTnVtYmVyKCAkR2V0UGFyYW17UmF0ZVNlYXJjaH0gKSAmJiAkR2V0UGFyYW17UmF0ZVNlYXJjaE9wdGlvbn0gKSB7CiAgICAgICAgICAgICRHZXRQYXJhbXtSYXRlfSA9IHsKICAgICAgICAgICAgICAgICRHZXRQYXJhbXtSYXRlU2VhcmNoVHlwZX0gPT4gJEdldFBhcmFte1JhdGVTZWFyY2h9CiAgICAgICAgICAgIH07CiAgICAgICAgfQoKICAgICAgICBteSAlVGltZU1hcCA9ICgKICAgICAgICAgICAgSXRlbUNyZWF0ZSA9PiAnVGltZScsCiAgICAgICAgKTsKCiAgICAgICAgZm9yIG15ICRUaW1lVHlwZSAoIHNvcnQga2V5cyAlVGltZU1hcCApIHsKCiAgICAgICAgICAgICMgZ2V0IGNyZWF0ZSB0aW1lIHNldHRpbmdzCiAgICAgICAgICAgIGlmICggISRHZXRQYXJhbXsgJFRpbWVNYXB7JFRpbWVUeXBlfSAuICdTZWFyY2hUeXBlJyB9ICkgewoKICAgICAgICAgICAgICAgICMgZG8gbm90aGluZyB3aXRoIHRpbWUgc3R1ZmYKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRHZXRQYXJhbXsgJFRpbWVNYXB7JFRpbWVUeXBlfSAuICdTZWFyY2hUeXBlJyB9IGVxICdUaW1lU2xvdCcgKSB7CiAgICAgICAgICAgICAgICBmb3IgbXkgJEtleSAocXcoTW9udGggRGF5KSkgewogICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVTdGFydCcgLiAkS2V5IH0KICAgICAgICAgICAgICAgICAgICAgICAgPSBzcHJpbnRmKCAiJTAyZCIsICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVTdGFydCcgLiAkS2V5IH0gKTsKICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lU3RvcCcgLiAkS2V5IH0KICAgICAgICAgICAgICAgICAgICAgICAgPSBzcHJpbnRmKCAiJTAyZCIsICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVTdG9wJyAuICRLZXkgfSApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVTdGFydERheScgfQogICAgICAgICAgICAgICAgICAgICYmICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVTdGFydE1vbnRoJyB9CiAgICAgICAgICAgICAgICAgICAgJiYgJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVN0YXJ0WWVhcicgfQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lTmV3ZXJEYXRlJyB9ID0gJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVN0YXJ0WWVhcicgfSAuICctJwogICAgICAgICAgICAgICAgICAgICAgICAuICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVTdGFydE1vbnRoJyB9IC4gJy0nCiAgICAgICAgICAgICAgICAgICAgICAgIC4gJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVN0YXJ0RGF5JyB9CiAgICAgICAgICAgICAgICAgICAgICAgIC4gJyAwMDowMDowMCc7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVN0b3BEYXknIH0KICAgICAgICAgICAgICAgICAgICAmJiAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lU3RvcE1vbnRoJyB9CiAgICAgICAgICAgICAgICAgICAgJiYgJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVN0b3BZZWFyJyB9CiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVPbGRlckRhdGUnIH0gPSAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lU3RvcFllYXInIH0gLiAnLScKICAgICAgICAgICAgICAgICAgICAgICAgLiAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lU3RvcE1vbnRoJyB9IC4gJy0nCiAgICAgICAgICAgICAgICAgICAgICAgIC4gJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVN0b3BEYXknIH0KICAgICAgICAgICAgICAgICAgICAgICAgLiAnIDIzOjU5OjU5JzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRHZXRQYXJhbXsgJFRpbWVNYXB7JFRpbWVUeXBlfSAuICdTZWFyY2hUeXBlJyB9IGVxICdUaW1lUG9pbnQnICkgewogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVQb2ludCcgfQogICAgICAgICAgICAgICAgICAgICYmICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVQb2ludFN0YXJ0JyB9CiAgICAgICAgICAgICAgICAgICAgJiYgJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVBvaW50Rm9ybWF0JyB9CiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIG15ICRUaW1lID0gMDsKICAgICAgICAgICAgICAgICAgICBpZiAoICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVQb2ludEZvcm1hdCcgfSBlcSAnbWludXRlJyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJFRpbWUgPSAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lUG9pbnQnIH07CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2lmICggJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVBvaW50Rm9ybWF0JyB9IGVxICdob3VyJyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJFRpbWUgPSAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lUG9pbnQnIH0gKiA2MDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzaWYgKCAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lUG9pbnRGb3JtYXQnIH0gZXEgJ2RheScgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRUaW1lID0gJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVBvaW50JyB9ICogNjAgKiAyNDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzaWYgKCAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lUG9pbnRGb3JtYXQnIH0gZXEgJ3dlZWsnICkgewogICAgICAgICAgICAgICAgICAgICAgICAkVGltZSA9ICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVQb2ludCcgfSAqIDYwICogMjQgKiA3OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNpZiAoICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVQb2ludEZvcm1hdCcgfSBlcSAnbW9udGgnICkgewogICAgICAgICAgICAgICAgICAgICAgICAkVGltZSA9ICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVQb2ludCcgfSAqIDYwICogMjQgKiAzMDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzaWYgKCAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lUG9pbnRGb3JtYXQnIH0gZXEgJ3llYXInICkgewogICAgICAgICAgICAgICAgICAgICAgICAkVGltZSA9ICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVQb2ludCcgfSAqIDYwICogMjQgKiAzNjU7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmICggJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVBvaW50U3RhcnQnIH0gZXEgJ0JlZm9yZScgKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAjIG1vcmUgdGhhbiAuLi4gYWdvCiAgICAgICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVPbGRlck1pbnV0ZXMnIH0gPSAkVGltZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzaWYgKCAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lUG9pbnRTdGFydCcgfSBlcSAnTmV4dCcgKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAjIHdpdGhpbiBuZXh0CiAgICAgICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVOZXdlck1pbnV0ZXMnIH0gPSAwOwogICAgICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lT2xkZXJNaW51dGVzJyB9ID0gLSRUaW1lOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgIyB3aXRoaW4gbGFzdCAuLi4KICAgICAgICAgICAgICAgICAgICAgICAgJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZU9sZGVyTWludXRlcycgfSA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVOZXdlck1pbnV0ZXMnIH0gPSAkVGltZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIG15ICRGQVFPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RkFRJyk7CgogICAgICAgICMgc2V0IGRlZmF1bHQgaW50ZXJmYWNlIHNldHRpbmdzCiAgICAgICAgbXkgJEludGVyZmFjZSA9ICRGQVFPYmplY3QtPlN0YXRlVHlwZUdldCgKICAgICAgICAgICAgTmFtZSAgID0+ICdleHRlcm5hbCcsCiAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKICAgICAgICBteSAkSW50ZXJmYWNlU3RhdGVzID0gJEZBUU9iamVjdC0+U3RhdGVUeXBlTGlzdCgKICAgICAgICAgICAgVHlwZXMgID0+ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpDdXN0b21lcjo6U3RhdGVUeXBlcycpLAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgR2V0IFVzZXJDYXRlZ29yeUdyb3VwIEhhc2guCiAgICAgICAgIyBUaGlzIHJldHVybnMgYSBIYXNoIG9mIHRoZSBmb2xsb3dpbmcgc2FtcGxlIGRhdGEgc3RydWN0dXJlOgogICAgICAgICMKICAgICAgICAjICRDdXN0b21lclVzZXJDYXRHcm91cCA9IHsKICAgICAgICAjICAgJzEnID0+IHsKICAgICAgICAjICAgICAgICAgICczJyA9PiAnTWlzY1N1YicKICAgICAgICAjICAgICAgICB9LAogICAgICAgICMgICAnMycgPT4ge30sCiAgICAgICAgIyAgICcwJyA9PiB7CiAgICAgICAgIyAgICAgICAgICAgICcxJyA9PiAnTWlzYycsCiAgICAgICAgIyAgICAgICAgICAgICcyJyA9PiAnc2VjcmV0JwogICAgICAgICMgICAgICAgICAgfSwKICAgICAgICAjICAgJzInID0+IHt9CiAgICAgICAgIyB9OwogICAgICAgICMKICAgICAgICAjIEtleXMgb2YgdGhlIG91dGVyIGhhc2ggaW5mb3JtIGFib3V0IHN1YmNhdGVnb3JpZXMuCiAgICAgICAgIyAgIDAgU2hvd3MgdG9wIGxldmVsIENhdGVnb3J5SURzLgogICAgICAgICMgICAxIFNob3dzIHRoZSBTdWJjYXRlZ29yeUlEcyBvZiBDYXRlZ29yeSAxLgogICAgICAgICMgICAyIGFuZCAzIGFyZSBlbXB0eSBoYXNoZXMgYmVjYXVzZSB0aGVzZSBjYXRlZ29yaWVzIGRvbid0IGhhdmUgc3ViY2F0ZWdvcmllcy4KICAgICAgICAjCiAgICAgICAgIyBLZXlzIG9mIHRoZSBpbm5lciBoYXNoZXMgYXJlIENhdGVnb3J5SURzIGEgdXNlciBpcyBhbGxvd2VkIHRvIGhhdmUgcm8gYWNjZXNzIHRvLgogICAgICAgICMgVmFsdWVzIGFyZSB0aGUgQ2F0ZWdvcnkgbmFtZXMuCgogICAgICAgIG15ICRDdXN0b21lclVzZXJDYXRHcm91cCA9ICRGQVFPYmplY3QtPkdldEN1c3RvbWVyQ2F0ZWdvcmllcygKICAgICAgICAgICAgQ3VzdG9tZXJVc2VyID0+ICRTZWxmLT57VXNlckxvZ2lufSwKICAgICAgICAgICAgVHlwZSAgICAgICAgID0+ICdybycsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBGaW5kIENhdGVnb3J5SURzIHRoZSBjdXJyZW50IFVzZXIgaXMgYWxsb3dlZCB0byB2aWV3LgogICAgICAgIG15ICVBbGxvd2VkQ2F0ZWdvcnlJRHMgPSAoKTsKCiAgICAgICAgaWYgKCAkQ3VzdG9tZXJVc2VyQ2F0R3JvdXAgJiYgcmVmICRDdXN0b21lclVzZXJDYXRHcm91cCBlcSAnSEFTSCcgKSB7CgogICAgICAgICAgICAjIFNvIG5vdyB3ZSBoYXZlIHRvIGV4dHJhY3QgYWxsIENhdGVnb3J5IElEJ3Mgb2YgdGhlICJpbm5lciBoYXNoZXMiCiAgICAgICAgICAgICMgICAtPiBMb29wIHRocm91Z2ggdGhlIG91dGVyIGNhdGVnb3J5IElEJ3MuCiAgICAgICAgICAgIGZvciBteSAkTGV2ZWwgKCBzb3J0IGtleXMgJXskQ3VzdG9tZXJVc2VyQ2F0R3JvdXB9ICkgewoKICAgICAgICAgICAgICAgICMgQ2hlY2sgaWYgdGhlIFZhbHVlIG9mIHRoZSBjdXJyZW50IGhhc2gga2V5IGlzIGEgaGFzaCByZWYuCiAgICAgICAgICAgICAgICBpZiAoICRDdXN0b21lclVzZXJDYXRHcm91cC0+eyRMZXZlbH0gJiYgcmVmICRDdXN0b21lclVzZXJDYXRHcm91cC0+eyRMZXZlbH0gZXEgJ0hBU0gnICkgewoKICAgICAgICAgICAgICAgICAgICAjIE1hcCB0aGUga2V5cyBvZiB0aGUgaW5uZXIgaGFzaCB0byBhIFRlbXBJRHMgaGFzaC4KICAgICAgICAgICAgICAgICAgICAjIE9yaWdpbmFsIERhdGEgc3RydWN0dXJlOgogICAgICAgICAgICAgICAgICAgICMgICB7CiAgICAgICAgICAgICAgICAgICAgIyAgICAgICAnMScgPT4gJ01pc2MnLAogICAgICAgICAgICAgICAgICAgICMgICAgICAgJzInID0+ICdzZWNyZXQnCiAgICAgICAgICAgICAgICAgICAgIyAgIH0KICAgICAgICAgICAgICAgICAgICAjCiAgICAgICAgICAgICAgICAgICAgIyAgIGFmdGVyIG1hcHBpbmc6CiAgICAgICAgICAgICAgICAgICAgIwogICAgICAgICAgICAgICAgICAgICMgICB7CiAgICAgICAgICAgICAgICAgICAgIyAgICAgICAnMScgPT4gMSwKICAgICAgICAgICAgICAgICAgICAjICAgICAgICcyJyA9PiAxJwogICAgICAgICAgICAgICAgICAgICMgICB9CgogICAgICAgICAgICAgICAgICAgIG15ICVUZW1wSURzID0gbWFwIHsgJF8gPT4gMSB9IGtleXMgJXsgJEN1c3RvbWVyVXNlckNhdEdyb3VwLT57JExldmVsfSB9OwoKICAgICAgICAgICAgICAgICAgICAjIFB1dCB0aGUgVGVtcElEcyBvdmVyIHRoZSBmb3JtYWxseSBmb3VuZCBBbGxvd2VkQ2F0ZWdvcnlzIHRvIHByb2R1Y2UgYSBoYXNoCiAgICAgICAgICAgICAgICAgICAgIyAgIHRoYXQgaG9sZHMgYWxsIENhdGVnb3J5SUQgYXMga2V5cyBhbmQgdGhlIG51bWJlciAxIGFzIHZhbHVlcy4KICAgICAgICAgICAgICAgICAgICAlQWxsb3dlZENhdGVnb3J5SURzID0gKAogICAgICAgICAgICAgICAgICAgICAgICAlQWxsb3dlZENhdGVnb3J5SURzLAogICAgICAgICAgICAgICAgICAgICAgICAlVGVtcElEcwogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgRm9yIHRoZSBkYXRhYmFzZSBxdWVyeSBpdCdzIG5lY2Vzc2FyeSB0byBoYXZlIGFuIGFycmF5IG9mIENhdGVnb3J5SURzLgogICAgICAgIG15IEBDYXRlZ29yeUlEcyA9ICgpOwoKICAgICAgICBpZiAoJUFsbG93ZWRDYXRlZ29yeUlEcykgewogICAgICAgICAgICBAQ2F0ZWdvcnlJRHMgPSBzb3J0IGtleXMgJUFsbG93ZWRDYXRlZ29yeUlEczsKICAgICAgICB9CgogICAgICAgICMgQ2F0ZWdvcmllcyBnb3QgZnJvbSB0aGUgd2ViIHJlcXVlc3QgY291bGQgaW5jbHVkZSBhIG5vdCBhbGxvd2VkIGNhdGVnb3J5IGlmIHRoZSB1c2VyCiAgICAgICAgIyAgICB0ZW1wZXIgd2l0aCB0aGUgY2F0ZWdvcmllcyBkcm9wLWJveCwgYSBjaGVjayBpcyBuZWVkZWQuCiAgICAgICAgIwogICAgICAgICMgIk1hcCIgY29weSBmcm9tIG9uZSBhcnJheSB0byBhbm90aGVyLCB3aGlsZSAiZ3JlcCIgd2lsbCBvbmx5IGxldCBwYXNzIHRoZSBjYXRlZ29yaWVzCiAgICAgICAgIyAgICB0aGF0IGFyZSBkZWZpbmVkIGluIHRoZSAlQWxsb3dlZENhdGVnb3J5SURzIGhhc2guCiAgICAgICAgaWYgKCBJc0FycmF5UmVmV2l0aERhdGEoICRHZXRQYXJhbXtDYXRlZ29yeUlEc30gKSApIHsKICAgICAgICAgICAgQHsgJEdldFBhcmFte0NhdGVnb3J5SURzfSB9ID0gbWFwIHskX30gZ3JlcCB7ICRBbGxvd2VkQ2F0ZWdvcnlJRHN7JF99IH0gQHsgJEdldFBhcmFte0NhdGVnb3J5SURzfSB9OwogICAgICAgIH0KCiAgICAgICAgIyBKdXN0IHNlYXJjaCBpZiB3ZSBkbyBoYXZlIGNhdGVnb3JpZXMsIHdlIGhhdmUgYWNjZXNzIHRvLgogICAgICAgICMgSWYgd2UgZG9uJ3QgaGF2ZSBhY2Nlc3MgdG8gYW55IGNhdGVnb3J5LCBhIHNlYXJjaCB3aXRoIG5vIENhdGVnb3J5SURzCiAgICAgICAgIyAgIHdvdWxkIHJlc3VsdCBpbiBmaW5kaW5nIGFsbCBjYXRlZ29yaWVzLgogICAgICAgICMKICAgICAgICAjIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBjcmVhdGUgRkFRJ3Mgd2l0aG91dCBjYXRlZ29yaWVzCiAgICAgICAgIyAgIHNvIGF0IGxlYXN0IG9uZSBjYXRlZ29yeSBoYXMgdG8gYmUgcHJlc2VudAoKICAgICAgICBteSBAVmlld2FibGVJdGVtSURzID0gKCk7CgogICAgICAgIGlmIChAQ2F0ZWdvcnlJRHMpIHsKCiAgICAgICAgICAgICMgcGVyZm9ybSBGQVEgc2VhcmNoCiAgICAgICAgICAgIEBWaWV3YWJsZUl0ZW1JRHMgPSAkRkFRT2JqZWN0LT5GQVFTZWFyY2goCiAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgICAgID0+IFskU29ydEJ5XSwKICAgICAgICAgICAgICAgIE9yZGVyQnlEaXJlY3Rpb24gICAgPT4gWyRPcmRlckJ5XSwKICAgICAgICAgICAgICAgIExpbWl0ICAgICAgICAgICAgICAgPT4gJFNlYXJjaExpbWl0LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICBTdGF0ZXMgICAgICAgICAgICAgID0+ICRJbnRlcmZhY2VTdGF0ZXMsCiAgICAgICAgICAgICAgICBJbnRlcmZhY2UgICAgICAgICAgID0+ICRJbnRlcmZhY2UsCiAgICAgICAgICAgICAgICBDb250ZW50U2VhcmNoUHJlZml4ID0+ICcqJywKICAgICAgICAgICAgICAgIENvbnRlbnRTZWFyY2hTdWZmaXggPT4gJyonLAogICAgICAgICAgICAgICAgQ2F0ZWdvcnlJRHMgICAgICAgICA9PiBcQENhdGVnb3J5SURzLAogICAgICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAgICAgJUR5bmFtaWNGaWVsZFNlYXJjaFBhcmFtZXRlcnMsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBteSAkRHluYW1pY0ZpZWxkT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpOwoKICAgICAgICAjIENTViBvdXRwdXQKICAgICAgICBpZiAoICRHZXRQYXJhbXtSZXN1bHRGb3JtfSBlcSAnQ1NWJyApIHsKICAgICAgICAgICAgbXkgQFRtcENTVkhlYWQ7CiAgICAgICAgICAgIG15IEBDU1ZIZWFkOwogICAgICAgICAgICBteSBAQ1NWRGF0YTsKCiAgICAgICAgICAgICMgZ2V0IHRoZSBGQVEgZHluYW1pYyBmaWVsZHMgZm9yIENTViBkaXNwbGF5CiAgICAgICAgICAgIG15ICRDU1ZEeW5hbWljRmllbGQgPSAkRHluYW1pY0ZpZWxkT2JqZWN0LT5EeW5hbWljRmllbGRMaXN0R2V0KAogICAgICAgICAgICAgICAgVmFsaWQgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIE9iamVjdFR5cGUgID0+ICdGQVEnLAogICAgICAgICAgICAgICAgRmllbGRGaWx0ZXIgPT4gJENvbmZpZy0+e1NlYXJjaENTVkR5bmFtaWNGaWVsZH0gfHwge30sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHJlZHVjZSB0aGUgZHluYW1pYyBmaWVsZHMgdG8gb25seSB0aGUgb25lcyB0aGF0IGFyZSBkZXNpZ25lZCBmb3IgY3VzdG9tZXIgaW50ZXJmYWNlCiAgICAgICAgICAgIG15IEBDU1ZDdXN0b21lckR5bmFtaWNGaWVsZHM7CiAgICAgICAgICAgIERZTkFNSUNGSUVMRDoKICAgICAgICAgICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyRDU1ZEeW5hbWljRmllbGR9ICkgewogICAgICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICAgICAgICAgIG15ICRJc0N1c3RvbWVySW50ZXJmYWNlQ2FwYWJsZSA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5IYXNCZWhhdmlvcigKICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgICAgICBCZWhhdmlvciAgICAgICAgICAgPT4gJ0lzQ3VzdG9tZXJJbnRlcmZhY2VDYXBhYmxlJywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJElzQ3VzdG9tZXJJbnRlcmZhY2VDYXBhYmxlOwoKICAgICAgICAgICAgICAgIHB1c2ggQENTVkN1c3RvbWVyRHluYW1pY0ZpZWxkcywgJER5bmFtaWNGaWVsZENvbmZpZzsKICAgICAgICAgICAgfQogICAgICAgICAgICAkQ1NWRHluYW1pY0ZpZWxkID0gXEBDU1ZDdXN0b21lckR5bmFtaWNGaWVsZHM7CgogICAgICAgICAgICBmb3IgbXkgJEl0ZW1JRCAoQFZpZXdhYmxlSXRlbUlEcykgewoKICAgICAgICAgICAgICAgIG15ICVGQVFEYXRhID0gJEZBUU9iamVjdC0+RkFRR2V0KAogICAgICAgICAgICAgICAgICAgIEl0ZW1JRCAgICAgICAgPT4gJEl0ZW1JRCwKICAgICAgICAgICAgICAgICAgICBJdGVtRmllbGRzICAgID0+IDAsCiAgICAgICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkcyA9PiAxLAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIGdldCBpbmZvIGZvciBDU1Ygb3V0cHV0CiAgICAgICAgICAgICAgICBteSAlQ1NWSW5mbyA9ICglRkFRRGF0YSk7CgogICAgICAgICAgICAgICAgIyBmb3JtYXQgdGhlIGNoYW5nZSB0aW1lCiAgICAgICAgICAgICAgICAkQ1NWSW5mb3tDaGFuZ2VkfSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPkZvcm1hdFRpbWVTdHJpbmcoCiAgICAgICAgICAgICAgICAgICAgJEZBUURhdGF7Q2hhbmdlZH0sCiAgICAgICAgICAgICAgICAgICAgJ0RhdGVGb3JtYXQnLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIENTViBxdW90ZQogICAgICAgICAgICAgICAgaWYgKCAhQENTVkhlYWQgKSB7CiAgICAgICAgICAgICAgICAgICAgQFRtcENTVkhlYWQgPSBxdyggRkFRTnVtYmVyIFRpdGxlIENhdGVnb3J5KTsKICAgICAgICAgICAgICAgICAgICBAQ1NWSGVhZCAgICA9IHF3KCBGQVFOdW1iZXIgVGl0bGUgQ2F0ZWdvcnkpOwoKICAgICAgICAgICAgICAgICAgICAjIGluc2VydCBsYW5ndWFnZSBoZWFkZXIKICAgICAgICAgICAgICAgICAgICBpZiAoJE11bHRpTGFuZ3VhZ2UpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcHVzaCBAVG1wQ1NWSGVhZCwgJ0xhbmd1YWdlJzsKICAgICAgICAgICAgICAgICAgICAgICAgcHVzaCBAQ1NWSGVhZCwgICAgJ0xhbmd1YWdlJzsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIHB1c2ggQFRtcENTVkhlYWQsIHF3KFN0YXRlIENoYW5nZWQpOwogICAgICAgICAgICAgICAgICAgIHB1c2ggQENTVkhlYWQsICAgIHF3KFN0YXRlIENoYW5nZWQpOwoKICAgICAgICAgICAgICAgICAgICAjIGluY2x1ZGUgdGhlIHNlbGVjdGVkIGR5bmFtaWMgZmllbGRzIG9uIENWUyByZXN1bHRzCiAgICAgICAgICAgICAgICAgICAgRFlOQU1JQ0ZJRUxEOgogICAgICAgICAgICAgICAgICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHskQ1NWRHluYW1pY0ZpZWxkfSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwogICAgICAgICAgICAgICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9OwogICAgICAgICAgICAgICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gZXEgJyc7CgogICAgICAgICAgICAgICAgICAgICAgICBwdXNoIEBUbXBDU1ZIZWFkLCAnRHluYW1pY0ZpZWxkXycgLiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX07CiAgICAgICAgICAgICAgICAgICAgICAgIHB1c2ggQENTVkhlYWQsICAgICREeW5hbWljRmllbGRDb25maWctPntMYWJlbH07CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgbXkgQERhdGE7CiAgICAgICAgICAgICAgICBmb3IgbXkgJEhlYWRlciAoQFRtcENTVkhlYWQpIHsKCiAgICAgICAgICAgICAgICAgICAgIyBjaGVjayBpZiBoZWFkZXIgaXMgYSBkeW5hbWljIGZpZWxkIGFuZCBnZXQgdGhlIHZhbHVlIGZyb20gZHluYW1pYyBmaWVsZAogICAgICAgICAgICAgICAgICAgICMgYmFja2VuZAogICAgICAgICAgICAgICAgICAgIGlmICggJEhlYWRlciA9fiBte1xBIER5bmFtaWNGaWVsZF8gKCBbYS16QS1aXGRdKyApIFx6fXhtcyApIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICMgbG9vcCBvdmVyIHRoZSBkeW5hbWljIGZpZWxkcyBjb25maWd1cmVkIGZvciBDU1Ygb3V0cHV0CiAgICAgICAgICAgICAgICAgICAgICAgIERZTkFNSUNGSUVMRDoKICAgICAgICAgICAgICAgICAgICAgICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyRDU1ZEeW5hbWljRmllbGR9ICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgISREeW5hbWljRmllbGRDb25maWctPntOYW1lfTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHNraXAgYWxsIGZpZWxkcyB0aGF0IGRvZXMgbm90IG1hdGNoIHdpdGggY3VycmVudCBmaWVsZCBuYW1lICgkMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgd2l0aCBvdXQgdGhlICdEeW5hbWljRmllbGRfJyBwcmVmaXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSBuZSAkMTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGdldCB0aGUgdmFsdWUgYXMgZm9yIHByaW50ICh0byBjb3JyZWN0bHkgZGlzcGxheSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15ICRWYWx1ZVN0cmcgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+RGlzcGxheVZhbHVlUmVuZGVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAkQ1NWSW5mb3skSGVhZGVyfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIVE1MT3V0cHV0ICAgICAgICAgPT4gMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYXlvdXRPYmplY3QgICAgICAgPT4gJExheW91dE9iamVjdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoIEBEYXRhLCAkVmFsdWVTdHJnLT57VmFsdWV9OwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgdGVybWluYXRlIHRoZSBEWU5BTUlDRklFTEQgbG9vcAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdCBEWU5BTUlDRklFTEQ7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICMgb3RoZXJ3aXNlIHJldHJpZXZlIGRhdGEgZnJvbSBGQVEgaXRlbQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoICRIZWFkZXIgZXEgJ0ZBUU51bWJlcicgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoIEBEYXRhLCAkQ1NWSW5mb3snTnVtYmVyJ307CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzaWYgKCAkSGVhZGVyIGVxICdDYXRlZ29yeScgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoIEBEYXRhLCAkQ1NWSW5mb3snQ2F0ZWdvcnlOYW1lJ307CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoIEBEYXRhLCAkQ1NWSW5mb3skSGVhZGVyfTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHB1c2ggQENTVkRhdGEsIFxARGF0YTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBDU1YgcXVvdGUKICAgICAgICAgICAgIyB0cmFuc2xhdGUgbm9uIGV4aXN0aW5nIGhlYWRlciBtYXkgcmVzdWx0IGluIGEgZ2FyYmFnZSBmaWxlCiAgICAgICAgICAgIGlmICggIUBDU1ZIZWFkICkgewogICAgICAgICAgICAgICAgQFRtcENTVkhlYWQgPSBxdyhGQVFOdW1iZXIgVGl0bGUgQ2F0ZWdvcnkpOwogICAgICAgICAgICAgICAgQENTVkhlYWQgICAgPSBxdyhGQVFOdW1iZXIgVGl0bGUgQ2F0ZWdvcnkpOwoKICAgICAgICAgICAgICAgICMgaW5zZXJ0IGxhbmd1YWdlIGhlYWRlcgogICAgICAgICAgICAgICAgaWYgKCRNdWx0aUxhbmd1YWdlKSB7CiAgICAgICAgICAgICAgICAgICAgcHVzaCBAVG1wQ1NWSGVhZCwgJ0xhbmd1YWdlJzsKICAgICAgICAgICAgICAgICAgICBwdXNoIEBDU1ZIZWFkLCAgICAnTGFuZ3VhZ2UnOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHB1c2ggQFRtcENTVkhlYWQsIHF3KFN0YXRlIENoYW5nZWQpOwogICAgICAgICAgICAgICAgcHVzaCBAQ1NWSGVhZCwgICAgcXcoU3RhdGUgQ2hhbmdlZCk7CgogICAgICAgICAgICAgICAgIyBpbmNsdWRlIHRoZSBzZWxlY3RlZCBkeW5hbWljIGZpZWxkcyBvbiBDVlMgcmVzdWx0cwogICAgICAgICAgICAgICAgRFlOQU1JQ0ZJRUxEOgogICAgICAgICAgICAgICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyRDU1ZEeW5hbWljRmllbGR9ICkgewogICAgICAgICAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKICAgICAgICAgICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9OwogICAgICAgICAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSBlcSAnJzsKCiAgICAgICAgICAgICAgICAgICAgcHVzaCBAVG1wQ1NWSGVhZCwgJ0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9OwogICAgICAgICAgICAgICAgICAgIHB1c2ggQENTVkhlYWQsICAgICREeW5hbWljRmllbGRDb25maWctPntMYWJlbH07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgdHJhbnNsYXRlIGhlYWRlcnMKICAgICAgICAgICAgZm9yIG15ICRIZWFkZXIgKEBDU1ZIZWFkKSB7CgogICAgICAgICAgICAgICAgIyByZXBsYWNlIEZBUU51bWJlciBoZWFkZXIgd2l0aCB0aGUgY3VycmVudCBGQVFIb29rIGZyb20gY29uZmlnCiAgICAgICAgICAgICAgICBpZiAoICRIZWFkZXIgZXEgJ0ZBUU51bWJlcicgKSB7CiAgICAgICAgICAgICAgICAgICAgJEhlYWRlciA9ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpGQVFIb29rJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkSGVhZGVyID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCRIZWFkZXIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGFzc2VtYmxlIENTViBkYXRhCiAgICAgICAgICAgIG15ICRDU1YgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q1NWJyktPkFycmF5MkNTVigKICAgICAgICAgICAgICAgIEhlYWQgICAgICA9PiBcQENTVkhlYWQsCiAgICAgICAgICAgICAgICBEYXRhICAgICAgPT4gXEBDU1ZEYXRhLAogICAgICAgICAgICAgICAgU2VwYXJhdG9yID0+ICRTZWxmLT57VXNlckNTVlNlcGFyYXRvcn0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIFJldHVybiBDU1YgdG8gZG93bmxvYWQuCiAgICAgICAgICAgIG15ICRDU1ZGaWxlID0gJ0ZBUV9zZWFyY2gnOwoKICAgICAgICAgICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CiAgICAgICAgICAgIG15ICREYXRlVGltZSAgICAgICA9ICREYXRlVGltZU9iamVjdC0+R2V0KCk7CiAgICAgICAgICAgIG15ICRZICAgICAgICAgICAgICA9ICREYXRlVGltZS0+e1llYXJ9OwogICAgICAgICAgICBteSAkTSAgICAgICAgICAgICAgPSBzcHJpbnRmKCAiJTAyZCIsICREYXRlVGltZS0+e01vbnRofSApOwogICAgICAgICAgICBteSAkRCAgICAgICAgICAgICAgPSBzcHJpbnRmKCAiJTAyZCIsICREYXRlVGltZS0+e0RheX0gKTsKICAgICAgICAgICAgbXkgJGggICAgICAgICAgICAgID0gc3ByaW50ZiggIiUwMmQiLCAkRGF0ZVRpbWUtPntIb3VyfSApOwogICAgICAgICAgICBteSAkbSAgICAgICAgICAgICAgPSBzcHJpbnRmKCAiJTAyZCIsICREYXRlVGltZS0+e01pbnV0ZX0gKTsKCiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5BdHRhY2htZW50KAogICAgICAgICAgICAgICAgRmlsZW5hbWUgICAgPT4gJENTVkZpbGUgLiAiXyIgLiAiJFktJE0tJEQiIC4gIl8iIC4gIiRoLSRtLmNzdiIsCiAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAidGV4dC9jc3Y7IGNoYXJzZXQ9IiAuICRMYXlvdXRPYmplY3QtPntVc2VyQ2hhcnNldH0sCiAgICAgICAgICAgICAgICBDb250ZW50ICAgICA9PiAkQ1NWLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoICRHZXRQYXJhbXtSZXN1bHRGb3JtfSBlcSAnUHJpbnQnICkgewoKICAgICAgICAgICAgbXkgJFBERk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpQREYnKTsKCiAgICAgICAgICAgIG15IEBQREZEYXRhOwogICAgICAgICAgICBmb3IgbXkgJEl0ZW1JRCAoQFZpZXdhYmxlSXRlbUlEcykgewoKICAgICAgICAgICAgICAgIG15ICVGQVFEYXRhID0gJEZBUU9iamVjdC0+RkFRR2V0KAogICAgICAgICAgICAgICAgICAgIEl0ZW1JRCAgICAgPT4gJEl0ZW1JRCwKICAgICAgICAgICAgICAgICAgICBJdGVtRmllbGRzID0+IDAsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgc2V0IGNoYW5nZSBkYXRlIHRvIGxvbmcgZm9ybWF0CiAgICAgICAgICAgICAgICBteSAkQ2hhbmdlZCA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPkZvcm1hdFRpbWVTdHJpbmcoCiAgICAgICAgICAgICAgICAgICAgJEZBUURhdGF7Q2hhbmdlZH0sCiAgICAgICAgICAgICAgICAgICAgJ0RhdGVGb3JtYXRMb25nJywKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBjcmVhdGUgUERGIFJvd3MKICAgICAgICAgICAgICAgIG15IEBQREZSb3c7CiAgICAgICAgICAgICAgICBwdXNoIEBQREZSb3csICRGQVFEYXRhe051bWJlcn07CiAgICAgICAgICAgICAgICBwdXNoIEBQREZSb3csICRGQVFEYXRhe1RpdGxlfTsKICAgICAgICAgICAgICAgIHB1c2ggQFBERlJvdywgJEZBUURhdGF7Q2F0ZWdvcnlOYW1lfTsKCiAgICAgICAgICAgICAgICAjIGNyZWF0ZSBsYW5ndWFnZSByb3cKICAgICAgICAgICAgICAgIGlmICgkTXVsdGlMYW5ndWFnZSkgewogICAgICAgICAgICAgICAgICAgIHB1c2ggQFBERlJvdywgJEZBUURhdGF7TGFuZ3VhZ2V9OwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHB1c2ggQFBERlJvdywgICRGQVFEYXRhe1N0YXRlfTsKICAgICAgICAgICAgICAgIHB1c2ggQFBERlJvdywgICRDaGFuZ2VkOwogICAgICAgICAgICAgICAgcHVzaCBAUERGRGF0YSwgXEBQREZSb3c7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgUERGIE91dHB1dAogICAgICAgICAgICBteSAkVGl0bGUgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ0ZBUScpIC4gJyAnCiAgICAgICAgICAgICAgICAuICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnU2VhcmNoJyk7CiAgICAgICAgICAgIG15ICRQcmludGVkQnkgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ3ByaW50ZWQgYnknKTsKICAgICAgICAgICAgbXkgJFBhZ2UgICAgICA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnUGFnZScpOwogICAgICAgICAgICBteSAkVGltZSAgICAgID0gJExheW91dE9iamVjdC0+e1RpbWV9OwoKICAgICAgICAgICAgIyBnZXQgbWF4aW11bSBudW1iZXIgb2YgcGFnZXMKICAgICAgICAgICAgbXkgJE1heFBhZ2VzID0gJENvbmZpZ09iamVjdC0+R2V0KCdQREY6Ok1heFBhZ2VzJyk7CiAgICAgICAgICAgIGlmICggISRNYXhQYWdlcyB8fCAkTWF4UGFnZXMgPCAxIHx8ICRNYXhQYWdlcyA+IDEwMDAgKSB7CiAgICAgICAgICAgICAgICAkTWF4UGFnZXMgPSAxMDA7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG15ICRDZWxsRGF0YTsKCiAgICAgICAgICAgICMgb3V0cHV0ICdObyBSZXN1bHQnLCBpZiBubyBjb250ZW50IHdhcyBnaXZlbgogICAgICAgICAgICBpZiAoQFBERkRhdGEpIHsKCiAgICAgICAgICAgICAgICAjIGNyZWF0ZSB0aGUgaGVhZGVyCiAgICAgICAgICAgICAgICAkQ2VsbERhdGEtPlswXS0+WzBdLT57Q29udGVudH0gPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6RkFRSG9vaycpOwogICAgICAgICAgICAgICAgJENlbGxEYXRhLT5bMF0tPlswXS0+e0ZvbnR9ICAgID0gJ1Byb3BvcnRpb25hbEJvbGQnOwogICAgICAgICAgICAgICAgJENlbGxEYXRhLT5bMF0tPlsxXS0+e0NvbnRlbnR9ID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdUaXRsZScpOwogICAgICAgICAgICAgICAgJENlbGxEYXRhLT5bMF0tPlsxXS0+e0ZvbnR9ICAgID0gJ1Byb3BvcnRpb25hbEJvbGQnOwogICAgICAgICAgICAgICAgJENlbGxEYXRhLT5bMF0tPlsyXS0+e0NvbnRlbnR9ID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdDYXRlZ29yeScpOwogICAgICAgICAgICAgICAgJENlbGxEYXRhLT5bMF0tPlsyXS0+e0ZvbnR9ICAgID0gJ1Byb3BvcnRpb25hbEJvbGQnOwoKICAgICAgICAgICAgICAgICMgc3RvcmUgdGhlIGNvcnJlY3QgaGVhZGVyIGluZGV4CiAgICAgICAgICAgICAgICBteSAkTmV4dEhlYWRlckluZGV4ID0gMzsKCiAgICAgICAgICAgICAgICAjIGFkZCBsYW5ndWFnZSBoZWFkZXIKICAgICAgICAgICAgICAgIGlmICgkTXVsdGlMYW5ndWFnZSkgewogICAgICAgICAgICAgICAgICAgICRDZWxsRGF0YS0+WzBdLT5bM10tPntDb250ZW50fSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnTGFuZ3VhZ2UnKTsKICAgICAgICAgICAgICAgICAgICAkQ2VsbERhdGEtPlswXS0+WzNdLT57Rm9udH0gICAgPSAnUHJvcG9ydGlvbmFsQm9sZCc7CiAgICAgICAgICAgICAgICAgICAgJE5leHRIZWFkZXJJbmRleCAgICAgICAgICAgICAgID0gNDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkQ2VsbERhdGEtPlswXS0+WyROZXh0SGVhZGVySW5kZXhdLT57Q29udGVudH0gPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ1N0YXRlJyk7CiAgICAgICAgICAgICAgICAkQ2VsbERhdGEtPlswXS0+WyROZXh0SGVhZGVySW5kZXhdLT57Rm9udH0gICAgPSAnUHJvcG9ydGlvbmFsQm9sZCc7CgogICAgICAgICAgICAgICAgJENlbGxEYXRhLT5bMF0tPlsgJE5leHRIZWFkZXJJbmRleCArIDEgXS0+e0NvbnRlbnR9CiAgICAgICAgICAgICAgICAgICAgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ0NoYW5nZWQnKTsKICAgICAgICAgICAgICAgICRDZWxsRGF0YS0+WzBdLT5bICROZXh0SGVhZGVySW5kZXggKyAxIF0tPntGb250fSA9ICdQcm9wb3J0aW9uYWxCb2xkJzsKCiAgICAgICAgICAgICAgICAjIGNyZWF0ZSB0aGUgY29udGVudCBhcnJheQogICAgICAgICAgICAgICAgbXkgJENvdW50ZXJSb3cgPSAxOwogICAgICAgICAgICAgICAgZm9yIG15ICRSb3cgKEBQREZEYXRhKSB7CiAgICAgICAgICAgICAgICAgICAgbXkgJENvdW50ZXJDb2x1bW4gPSAwOwogICAgICAgICAgICAgICAgICAgIGZvciBteSAkQ29udGVudCAoIEB7JFJvd30gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRDZWxsRGF0YS0+WyRDb3VudGVyUm93XS0+WyRDb3VudGVyQ29sdW1uXS0+e0NvbnRlbnR9ID0gJENvbnRlbnQ7CiAgICAgICAgICAgICAgICAgICAgICAgICRDb3VudGVyQ29sdW1uKys7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICRDb3VudGVyUm93Kys7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkQ2VsbERhdGEtPlswXS0+WzBdLT57Q29udGVudH0gPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ05vIFJlc3VsdCEnKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBwYWdlIHBhcmFtcwogICAgICAgICAgICBteSAlUGFnZVBhcmFtOwogICAgICAgICAgICAkUGFnZVBhcmFte1BhZ2VPcmllbnRhdGlvbn0gPSAnbGFuZHNjYXBlJzsKICAgICAgICAgICAgJFBhZ2VQYXJhbXtNYXJnaW5Ub3B9ICAgICAgID0gMzA7CiAgICAgICAgICAgICRQYWdlUGFyYW17TWFyZ2luUmlnaHR9ICAgICA9IDQwOwogICAgICAgICAgICAkUGFnZVBhcmFte01hcmdpbkJvdHRvbX0gICAgPSA0MDsKICAgICAgICAgICAgJFBhZ2VQYXJhbXtNYXJnaW5MZWZ0fSAgICAgID0gNDA7CiAgICAgICAgICAgICRQYWdlUGFyYW17SGVhZGVyUmlnaHR9ICAgICA9ICRUaXRsZTsKCiAgICAgICAgICAgICMgdGFibGUgcGFyYW1zCiAgICAgICAgICAgIG15ICVUYWJsZVBhcmFtOwogICAgICAgICAgICAkVGFibGVQYXJhbXtDZWxsRGF0YX0gICAgICAgICAgICA9ICRDZWxsRGF0YTsKICAgICAgICAgICAgJFRhYmxlUGFyYW17VHlwZX0gICAgICAgICAgICAgICAgPSAnQ3V0JzsKICAgICAgICAgICAgJFRhYmxlUGFyYW17Rm9udFNpemV9ICAgICAgICAgICAgPSA2OwogICAgICAgICAgICAkVGFibGVQYXJhbXtCb3JkZXJ9ICAgICAgICAgICAgICA9IDA7CiAgICAgICAgICAgICRUYWJsZVBhcmFte0JhY2tncm91bmRDb2xvckV2ZW59ID0gJyNEREREREQnOwogICAgICAgICAgICAkVGFibGVQYXJhbXtQYWRkaW5nfSAgICAgICAgICAgICA9IDE7CiAgICAgICAgICAgICRUYWJsZVBhcmFte1BhZGRpbmdUb3B9ICAgICAgICAgID0gMzsKICAgICAgICAgICAgJFRhYmxlUGFyYW17UGFkZGluZ0JvdHRvbX0gICAgICAgPSAzOwoKICAgICAgICAgICAgIyBjcmVhdGUgbmV3IFBERiBkb2N1bWVudAogICAgICAgICAgICAkUERGT2JqZWN0LT5Eb2N1bWVudE5ldygKICAgICAgICAgICAgICAgIFRpdGxlICA9PiAkQ29uZmlnT2JqZWN0LT5HZXQoJ1Byb2R1Y3QnKSAuICc6ICcgLiAkVGl0bGUsCiAgICAgICAgICAgICAgICBFbmNvZGUgPT4gJExheW91dE9iamVjdC0+e1VzZXJDaGFyc2V0fSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgc3RhcnQgdGFibGUgb3V0cHV0CiAgICAgICAgICAgICRQREZPYmplY3QtPlBhZ2VOZXcoCiAgICAgICAgICAgICAgICAlUGFnZVBhcmFtLAogICAgICAgICAgICAgICAgRm9vdGVyUmlnaHQgPT4gJFBhZ2UgLiAnIDEnLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJFBERk9iamVjdC0+UG9zaXRpb25TZXQoCiAgICAgICAgICAgICAgICBNb3ZlID0+ICdyZWxhdGl2JywKICAgICAgICAgICAgICAgIFkgICAgPT4gLTYsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIG91dHB1dCB0aXRsZQogICAgICAgICAgICAkUERGT2JqZWN0LT5UZXh0KAogICAgICAgICAgICAgICAgVGV4dCAgICAgPT4gJFRpdGxlLAogICAgICAgICAgICAgICAgRm9udFNpemUgPT4gMTMsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkUERGT2JqZWN0LT5Qb3NpdGlvblNldCgKICAgICAgICAgICAgICAgIE1vdmUgPT4gJ3JlbGF0aXYnLAogICAgICAgICAgICAgICAgWSAgICA9PiAtNiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgb3V0cHV0ICJwcmludGVkIGJ5IgogICAgICAgICAgICAkUERGT2JqZWN0LT5UZXh0KAogICAgICAgICAgICAgICAgVGV4dCA9PiAkUHJpbnRlZEJ5IC4gJyAnCiAgICAgICAgICAgICAgICAgICAgLiAkU2VsZi0+e1VzZXJGdWxsbmFtZX0gLiAnICgnCiAgICAgICAgICAgICAgICAgICAgLiAkU2VsZi0+e1VzZXJFbWFpbH0gLiAnKScKICAgICAgICAgICAgICAgICAgICAuICcsICcgLiAkVGltZSwKICAgICAgICAgICAgICAgIEZvbnRTaXplID0+IDksCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkUERGT2JqZWN0LT5Qb3NpdGlvblNldCgKICAgICAgICAgICAgICAgIE1vdmUgPT4gJ3JlbGF0aXYnLAogICAgICAgICAgICAgICAgWSAgICA9PiAtMTQsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBQQUdFOgogICAgICAgICAgICBmb3IgKCAyIC4uICRNYXhQYWdlcyApIHsKCiAgICAgICAgICAgICAgICAjIG91dHB1dCB0YWJsZSAob3IgYSBmcmFnbWVudCBvZiBpdCkKICAgICAgICAgICAgICAgICVUYWJsZVBhcmFtID0gJFBERk9iamVjdC0+VGFibGUoICVUYWJsZVBhcmFtLCApOwoKICAgICAgICAgICAgICAgICMgc3RvcCBvdXRwdXQgb3IgYW5vdGhlciBwYWdlCiAgICAgICAgICAgICAgICBpZiAoICRUYWJsZVBhcmFte1N0YXRlfSApIHsKICAgICAgICAgICAgICAgICAgICBsYXN0IFBBR0U7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkUERGT2JqZWN0LT5QYWdlTmV3KAogICAgICAgICAgICAgICAgICAgICAgICAlUGFnZVBhcmFtLAogICAgICAgICAgICAgICAgICAgICAgICBGb290ZXJSaWdodCA9PiAkUGFnZSAuICcgJyAuICRfLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgUmV0dXJuIHRoZSBQREYgZG9jdW1lbnQuCiAgICAgICAgICAgIG15ICRGaWxlbmFtZSA9ICdGQVFfc2VhcmNoJzsKCiAgICAgICAgICAgIG15ICREYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpOwogICAgICAgICAgICBteSAkRGF0ZVRpbWUgICAgICAgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwogICAgICAgICAgICBteSAkWSAgICAgICAgICAgICAgPSAkRGF0ZVRpbWUtPntZZWFyfTsKICAgICAgICAgICAgbXkgJE0gICAgICAgICAgICAgID0gc3ByaW50ZiggIiUwMmQiLCAkRGF0ZVRpbWUtPntNb250aH0gKTsKICAgICAgICAgICAgbXkgJEQgICAgICAgICAgICAgID0gc3ByaW50ZiggIiUwMmQiLCAkRGF0ZVRpbWUtPntEYXl9ICk7CiAgICAgICAgICAgIG15ICRoICAgICAgICAgICAgICA9IHNwcmludGYoICIlMDJkIiwgJERhdGVUaW1lLT57SG91cn0gKTsKICAgICAgICAgICAgbXkgJG0gICAgICAgICAgICAgID0gc3ByaW50ZiggIiUwMmQiLCAkRGF0ZVRpbWUtPntNaW51dGV9ICk7CgogICAgICAgICAgICBteSAkUERGU3RyaW5nID0gJFBERk9iamVjdC0+RG9jdW1lbnRPdXRwdXQoKTsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkF0dGFjaG1lbnQoCiAgICAgICAgICAgICAgICBGaWxlbmFtZSAgICA9PiAkRmlsZW5hbWUgLiAiXyIgLiAiJFktJE0tJEQiIC4gIl8iIC4gIiRoLSRtLnBkZiIsCiAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAiYXBwbGljYXRpb24vcGRmIiwKICAgICAgICAgICAgICAgIENvbnRlbnQgICAgID0+ICRQREZTdHJpbmcsCiAgICAgICAgICAgICAgICBUeXBlICAgICAgICA9PiAnaW5saW5lJywKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIG15ICRDb3VudGVyID0gMDsKCiAgICAgICAgIyBpZiB0aGVyZSBhcmUgcmVzdWx0cyB0byBzaG93CiAgICAgICAgaWYgKEBWaWV3YWJsZUl0ZW1JRHMpIHsKCiAgICAgICAgICAgIG15ICRPdmVydmlld0NvbmZpZyA9ICRDb25maWdPYmplY3QtPkdldCgiRkFROjpGcm9udGVuZDo6Q3VzdG9tZXJGQVFPdmVydmlldyIpOwoKICAgICAgICAgICAgIyBnZXQgdGhlIHRpY2tldCBkeW5hbWljIGZpZWxkcyBmb3Igb3ZlcnZpZXcgZGlzcGxheQogICAgICAgICAgICBteSAkT3ZlcnZpZXdEeW5hbWljRmllbGQgPSAkRHluYW1pY0ZpZWxkT2JqZWN0LT5EeW5hbWljRmllbGRMaXN0R2V0KAogICAgICAgICAgICAgICAgVmFsaWQgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIE9iamVjdFR5cGUgID0+ICdGQVEnLAogICAgICAgICAgICAgICAgRmllbGRGaWx0ZXIgPT4gJE92ZXJ2aWV3Q29uZmlnLT57RHluYW1pY0ZpZWxkfSB8fCB7fSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgcmVkdWNlIHRoZSBkeW5hbWljIGZpZWxkcyB0byBvbmx5IHRoZSBvbmVzIHRoYXQgYXJlIGRlc2lnbmVkIGZvciBjdXN0b21lciBpbnRlcmZhY2UKICAgICAgICAgICAgbXkgQE92ZXJ2aWV3Q3VzdG9tZXJEeW5hbWljRmllbGRzOwogICAgICAgICAgICBEWU5BTUlDRklFTEQ6CiAgICAgICAgICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHskT3ZlcnZpZXdEeW5hbWljRmllbGR9ICkgewogICAgICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICAgICAgICAgIG15ICRJc0N1c3RvbWVySW50ZXJmYWNlQ2FwYWJsZSA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5IYXNCZWhhdmlvcigKICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgICAgICBCZWhhdmlvciAgICAgICAgICAgPT4gJ0lzQ3VzdG9tZXJJbnRlcmZhY2VDYXBhYmxlJywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJElzQ3VzdG9tZXJJbnRlcmZhY2VDYXBhYmxlOwoKICAgICAgICAgICAgICAgIHB1c2ggQE92ZXJ2aWV3Q3VzdG9tZXJEeW5hbWljRmllbGRzLCAkRHluYW1pY0ZpZWxkQ29uZmlnOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIER5bmFtaWMgZmllbGRzIHRhYmxlIGhlYWRlcnMKICAgICAgICAgICAgRFlOQU1JQ0ZJRUxEOgogICAgICAgICAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7JE92ZXJ2aWV3RHluYW1pY0ZpZWxkfSApIHsKICAgICAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKCiAgICAgICAgICAgICAgICBteSAkTGFiZWwgPSAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TGFiZWx9OwoKICAgICAgICAgICAgICAgICMgZ2V0IGZpZWxkIHNvcnRhYmxlIGNvbmRpdGlvbgogICAgICAgICAgICAgICAgbXkgJElzU29ydGFibGUgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+SGFzQmVoYXZpb3IoCiAgICAgICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICAgICAgICAgQmVoYXZpb3IgICAgICAgICAgID0+ICdJc1NvcnRhYmxlJywKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgaWYgKCRJc1NvcnRhYmxlKSB7CiAgICAgICAgICAgICAgICAgICAgbXkgJENTUyAgID0gJyc7CiAgICAgICAgICAgICAgICAgICAgbXkgJE9yZGVyID0gJ0Rvd24nOwogICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICAgJFNvcnRCeQogICAgICAgICAgICAgICAgICAgICAgICAmJiAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU29ydEJ5IGVxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoICdEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSApCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAkU2VsZi0+e09yZGVyfSAmJiAoICRTZWxmLT57T3JkZXJ9IGVxICdVcCcgKSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRPcmRlciA9ICdEb3duJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRDU1MgLj0gJyBTb3J0QXNjZW5kaW5nJzsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRPcmRlciA9ICdVcCc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ1NTIC49ICcgU29ydERlc2NlbmRpbmcnOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnSGVhZGVyRHluYW1pY0ZpZWxkJywKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDU1MgPT4gJENTUywKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnSGVhZGVyRHluYW1pY0ZpZWxkU29ydGFibGUnLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9yZGVyICAgICAgICAgICAgPT4gJE9yZGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwgICAgICAgICAgICA9PiAkTGFiZWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGROYW1lID0+ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdIZWFkZXJEeW5hbWljRmllbGQnLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnSGVhZGVyRHluYW1pY0ZpZWxkTm90U29ydGFibGUnLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhYmVsID0+ICRMYWJlbCwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBmb3IgbXkgJEl0ZW1JRCAoQFZpZXdhYmxlSXRlbUlEcykgewoKICAgICAgICAgICAgICAgICRDb3VudGVyKys7CgogICAgICAgICAgICAgICAgIyBidWlsZCBzZWFyY2ggcmVzdWx0CiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgJENvdW50ZXIgPj0gJFN0YXJ0SGl0CiAgICAgICAgICAgICAgICAgICAgJiYgJENvdW50ZXIgPCAoICRTZWFyY2hQYWdlU2hvd24gKyAkU3RhcnRIaXQgKQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHsKCiAgICAgICAgICAgICAgICAgICAgbXkgJUZBUURhdGEgPSAkRkFRT2JqZWN0LT5GQVFHZXQoCiAgICAgICAgICAgICAgICAgICAgICAgIEl0ZW1JRCAgICAgICAgPT4gJEl0ZW1JRCwKICAgICAgICAgICAgICAgICAgICAgICAgSXRlbUZpZWxkcyAgICA9PiAwLAogICAgICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRzID0+IDEsCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICRGQVFEYXRhe0NsZWFuVGl0bGV9ID0gJEZBUU9iamVjdC0+RkFRQXJ0aWNsZVRpdGxlQ2xlYW4oCiAgICAgICAgICAgICAgICAgICAgICAgIFRpdGxlID0+ICRGQVFEYXRhe1RpdGxlfSwKICAgICAgICAgICAgICAgICAgICAgICAgU2l6ZSAgPT4gJENvbmZpZy0+e1RpdGxlU2l6ZX0sCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgIyBhZGQgYmxvY2tzIHRvIHRlbXBsYXRlCiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1JlY29yZCcsCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJUZBUURhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgIyBhZGQgbGFuZ3VhZ2UgZGF0YQogICAgICAgICAgICAgICAgICAgIGlmICgkTXVsdGlMYW5ndWFnZSkgewogICAgICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1JlY29yZExhbmd1YWdlJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4geyVGQVFEYXRhfSwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICMgRHluYW1pYyBmaWVsZHMKICAgICAgICAgICAgICAgICAgICBEWU5BTUlDRklFTEQ6CiAgICAgICAgICAgICAgICAgICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyRPdmVydmlld0R5bmFtaWNGaWVsZH0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICMgZ2V0IGZpZWxkIHZhbHVlCiAgICAgICAgICAgICAgICAgICAgICAgIG15ICRWYWx1ZVN0cmcgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+RGlzcGxheVZhbHVlUmVuZGVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJEZBUURhdGF7ICdEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVNYXhDaGFycyAgICAgID0+IDIwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTGF5b3V0T2JqZWN0ICAgICAgID0+ICRMYXlvdXRPYmplY3QsCiAgICAgICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1JlY29yZER5bmFtaWNGaWVsZCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkVmFsdWVTdHJnLT57VmFsdWV9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRpdGxlID0+ICRWYWx1ZVN0cmctPntUaXRsZX0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBvdGhlcndpc2Ugc2hvdyBhIG5vIGRhdGEgZm91bmQgbWVzc2FnZQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ05vRGF0YUZvdW5kTXNnJywKICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGNyZWF0ZSBhIGxvb2t1cCB0YWJsZSBmb3IgYXR0cmlidXRlIHNldHRpbmdzCiAgICAgICAgbXkgJUF0dHJpYnV0ZU1hcCA9ICgKICAgICAgICAgICAgTnVtYmVyID0+IHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6RkFRSG9vaycpLAogICAgICAgICAgICAgICAgVHJhbnNsYXRhYmxlID0+IDAsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFRpdGxlID0+IHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAnVGl0bGUnLAogICAgICAgICAgICAgICAgVHJhbnNsYXRhYmxlID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIEtleXdvcmQgPT4gewogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICdLZXl3b3JkJywKICAgICAgICAgICAgICAgIFRyYW5zbGF0YWJsZSA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICBGdWxsdGV4dCA9PiB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgPT4gJ0Z1bGx0ZXh0JywKICAgICAgICAgICAgICAgIFRyYW5zbGF0YWJsZSA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICBDYXRlZ29yeUlEcyA9PiB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgPT4gJ0NhdGVnb3J5JywKICAgICAgICAgICAgICAgIFRyYW5zbGF0YWJsZSA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICBMYW5ndWFnZUlEcyA9PiB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgPT4gJ0xhbmd1YWdlJywKICAgICAgICAgICAgICAgIFRyYW5zbGF0YWJsZSA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICBUaW1lU2VhcmNoVHlwZSA9PiB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgPT4gJ0NyZWF0ZSBUaW1lJywKICAgICAgICAgICAgICAgIFRyYW5zbGF0YWJsZSA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICBWb3RlU2VhcmNoVHlwZSA9PiB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgPT4gJ1ZvdGVzJywKICAgICAgICAgICAgICAgIFRyYW5zbGF0YWJsZSA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICBSYXRlU2VhcmNoVHlwZSA9PiB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgPT4gJ1JhdGUnLAogICAgICAgICAgICAgICAgVHJhbnNsYXRhYmxlID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBwcmludCBlYWNoIGF0dHJpYnV0ZSBpbiBzZWFyY2ggcmVzdWx0cyBhcmVhLgogICAgICAgIEFUVFJJQlVURToKICAgICAgICBmb3IgbXkgJEF0dHJpYnV0ZSAoIHNvcnQga2V5cyAlQXR0cmlidXRlTWFwICkgewoKICAgICAgICAgICAgIyBjaGVjayBpZiB0aGUgYXR0cmlidXRlIHdhcyBkZWZpbmVkIGJ5IHRoZSB1c2VyCiAgICAgICAgICAgIGlmICggJEdldFBhcmFteyRBdHRyaWJ1dGV9ICkgewoKICAgICAgICAgICAgICAgICMgc2V0IGF0dHJpYnV0ZSBuYW1lIGFuZCB0cmFuc2xhdGUgaXQgaWYgYXBwbGllcwogICAgICAgICAgICAgICAgbXkgJEF0dHJpYnV0ZU5hbWUgPSAkQXR0cmlidXRlTWFweyRBdHRyaWJ1dGV9LT57TmFtZX07CiAgICAgICAgICAgICAgICBpZiAoICRBdHRyaWJ1dGVNYXB7JEF0dHJpYnV0ZX0tPntUcmFuc2xhdGFibGV9ICkgewogICAgICAgICAgICAgICAgICAgICRBdHRyaWJ1dGVOYW1lID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCRBdHRyaWJ1dGVOYW1lKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBteSAkQXR0cmlidXRlVmFsdWU7CgogICAgICAgICAgICAgICAgIyBjaGVjayBpZiB0aGUgdmFsdWVzIGlzIGFuIGFycmF5IHRvIHBhcnNlIGVhY2ggdmFsdWUKICAgICAgICAgICAgICAgIGlmICggcmVmICRHZXRQYXJhbXskQXR0cmlidXRlfSBlcSAnQVJSQVknICkgewoKICAgICAgICAgICAgICAgICAgICAjIENhdGVnb3J5IGF0dHJpYnV0ZQogICAgICAgICAgICAgICAgICAgIGlmICggJEF0dHJpYnV0ZSBlcSAnQ2F0ZWdvcnlJRHMnICkgewoKICAgICAgICAgICAgICAgICAgICAgICAgIyBnZXQgdGhlIGxvbmcgbmFtZSBmb3IgYWxsIGN1c3RvbWVyIGNhdGVnb3JpZXMKICAgICAgICAgICAgICAgICAgICAgICAgbXkgJENhdGVnb3J5TGlzdCA9ICRGQVFPYmplY3QtPkdldEN1c3RvbWVyQ2F0ZWdvcmllc0xvbmdOYW1lcygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEN1c3RvbWVyVXNlciA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUeXBlICAgICAgICAgPT4gJ3J3JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAgICAgIyBjb252ZXJ0IGVhY2ggY2F0ZWdvcnkgaWQgdG8gY2F0ZWdvcnkgbG9uZyBuYW1lCiAgICAgICAgICAgICAgICAgICAgICAgIG15IEBDYXRlZ29yeU5hbWVzOwogICAgICAgICAgICAgICAgICAgICAgICBDQVRFR09SWUlEOgogICAgICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJENhdGVkb3J5SUQgKCBAeyAkR2V0UGFyYW17JEF0dHJpYnV0ZX0gfSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgQ0FURUdPUllJRCBpZiAhJENhdGVnb3J5TGlzdC0+eyRDYXRlZG9yeUlEfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2ggQENhdGVnb3J5TmFtZXMsICRDYXRlZ29yeUxpc3QtPnskQ2F0ZWRvcnlJRH07CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICMgY3JlYXRlIGEgc3RyaW5nIHdpdGggYWxsIHNlbGVjdGVkIGNhdGVnb3J5IG5hbWVzCiAgICAgICAgICAgICAgICAgICAgICAgICRBdHRyaWJ1dGVWYWx1ZSA9IGpvaW4oICIgKyAiLCBAQ2F0ZWdvcnlOYW1lcyApOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgIyBMYW5ndWFnZUlEcwogICAgICAgICAgICAgICAgICAgIGVsc2lmICggJEF0dHJpYnV0ZSBlcSAnTGFuZ3VhZ2VJRHMnICkgewoKICAgICAgICAgICAgICAgICAgICAgICAgIyBjb252ZXJ0IGVhY2ggbGFuZ3VhZ2UgaWQgdG8gbGFuZ3VhZ2UgbmFtZQogICAgICAgICAgICAgICAgICAgICAgICBteSBATGFuZ3VhZ2VOYW1lczsKICAgICAgICAgICAgICAgICAgICAgICAgTEFOR1VBR0VJRDoKICAgICAgICAgICAgICAgICAgICAgICAgZm9yIG15ICRMYW5ndWFnZUlEICggQHsgJEdldFBhcmFteyRBdHRyaWJ1dGV9IH0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBteSAkTGFuZ3VhZ2VOYW1lID0gJEZBUU9iamVjdC0+TGFuZ3VhZ2VMb29rdXAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFuZ3VhZ2VJRCA9PiAkTGFuZ3VhZ2VJRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0IExBTkdVQUdFSUQgaWYgISRMYW5ndWFnZU5hbWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoIEBMYW5ndWFnZU5hbWVzLCAkTGFuZ3VhZ2VOYW1lOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAjIGNyZWF0ZSBhIHN0cmluZyB3aXRoIGFsbCBzZWxlY3RlZCBsYW5ndWFnZSBuYW1lcwogICAgICAgICAgICAgICAgICAgICAgICAkQXR0cmlidXRlVmFsdWUgPSBqb2luKCAiICsgIiwgQExhbmd1YWdlTmFtZXMgKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBvdGhlcndpc2UgaXMgYW4gc2NhbGFyIGFuZCBjYW4gYmUgc2V0IGRpcmVjdGx5CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkQXR0cmlidXRlVmFsdWUgPSAkR2V0UGFyYW17JEF0dHJpYnV0ZX07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoICRBdHRyaWJ1dGUgZXEgJ1RpbWVTZWFyY2hUeXBlJyApIHsKCiAgICAgICAgICAgICAgICAgICAgaWYgKCAkR2V0UGFyYW17VGltZVNlYXJjaFR5cGV9IGVxICdUaW1lU2xvdCcgKSB7CgogICAgICAgICAgICAgICAgICAgICAgICBteSAkU3RhcnREYXRlID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+Rm9ybWF0VGltZVN0cmluZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXtJdGVtQ3JlYXRlVGltZVN0YXJ0WWVhcn0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICctJyAuICRHZXRQYXJhbXtJdGVtQ3JlYXRlVGltZVN0YXJ0TW9udGh9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAnLScgLiAkR2V0UGFyYW17SXRlbUNyZWF0ZVRpbWVTdGFydERheX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICcgMDA6MDA6MDAnLCAnRGF0ZUZvcm1hdFNob3J0JwogICAgICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAgICAgbXkgJFN0b3BEYXRlID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+Rm9ybWF0VGltZVN0cmluZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXtJdGVtQ3JlYXRlVGltZVN0b3BZZWFyfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJy0nIC4gJEdldFBhcmFte0l0ZW1DcmVhdGVUaW1lU3RvcE1vbnRofQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJy0nIC4gJEdldFBhcmFte0l0ZW1DcmVhdGVUaW1lU3RvcERheX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICcgMDA6MDA6MDAnLCAnRGF0ZUZvcm1hdFNob3J0JwogICAgICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAgICAgJEF0dHJpYnV0ZSAgICAgID0gVHJhbnNsYXRhYmxlKCdDcmVhdGVkIGJldHdlZW4nKTsKICAgICAgICAgICAgICAgICAgICAgICAgJEF0dHJpYnV0ZVZhbHVlID0gJFN0YXJ0RGF0ZSAuICcgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ2FuZCcpIC4gJyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRTdG9wRGF0ZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAgICAgICAgICAgICBteSAkTWFwcGluZyA9IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdMYXN0JyAgID0+IFRyYW5zbGF0YWJsZSgnQ3JlYXRlZCB3aXRoaW4gdGhlIGxhc3QnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdCZWZvcmUnID0+IFRyYW5zbGF0YWJsZSgnQ3JlYXRlZCBtb3JlIHRoYW4gLi4uIGFnbycpLAogICAgICAgICAgICAgICAgICAgICAgICB9OwoKICAgICAgICAgICAgICAgICAgICAgICAgJEF0dHJpYnV0ZSAgICAgID0gJE1hcHBpbmctPnsgJEdldFBhcmFte0l0ZW1DcmVhdGVUaW1lUG9pbnRTdGFydH0gfTsKICAgICAgICAgICAgICAgICAgICAgICAgJEF0dHJpYnV0ZVZhbHVlID0gJEdldFBhcmFte0l0ZW1DcmVhdGVUaW1lUG9pbnR9IC4gJyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17SXRlbUNyZWF0ZVRpbWVQb2ludEZvcm1hdH0gLiAnKHMpJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNpZiAoICRBdHRyaWJ1dGUgZXEgJ1ZvdGVTZWFyY2hUeXBlJyApIHsKICAgICAgICAgICAgICAgICAgICBuZXh0IEFUVFJJQlVURSBpZiAhJEdldFBhcmFte1ZvdGVTZWFyY2hPcHRpb259OwogICAgICAgICAgICAgICAgICAgICRBdHRyaWJ1dGVWYWx1ZSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJEdldFBhcmFte1ZvdGVTZWFyY2hUeXBlfSApIC4gJyAnCiAgICAgICAgICAgICAgICAgICAgICAgIC4gJEdldFBhcmFte1ZvdGVTZWFyY2h9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzaWYgKCAkQXR0cmlidXRlIGVxICdSYXRlU2VhcmNoVHlwZScgKSB7CiAgICAgICAgICAgICAgICAgICAgbmV4dCBBVFRSSUJVVEUgaWYgISRHZXRQYXJhbXtSYXRlU2VhcmNoT3B0aW9ufTsKICAgICAgICAgICAgICAgICAgICAkQXR0cmlidXRlVmFsdWUgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICRHZXRQYXJhbXtSYXRlU2VhcmNoVHlwZX0gKSAuICcgJwogICAgICAgICAgICAgICAgICAgICAgICAuICRHZXRQYXJhbXtSYXRlU2VhcmNofSAuICclJzsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdTZWFyY2hUZXJtcycsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZSA9PiAkQXR0cmlidXRlTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWUgICAgID0+ICRBdHRyaWJ1dGVWYWx1ZSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBjeWNsZSB0aHJvdWdoIHRoZSBhY3RpdmF0ZWQgRHluYW1pYyBGaWVsZHMgZm9yIHRoaXMgc2NyZWVuCiAgICAgICAgRFlOQU1JQ0ZJRUxEOgogICAgICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHsgJFNlbGYtPntEeW5hbWljRmllbGR9IH0gKSB7CiAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQKICAgICAgICAgICAgICAgIGlmICEkRHluYW1pY0ZpZWxkU2VhcmNoRGlzcGxheXsgJ0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH07CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1NlYXJjaFRlcm1zJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZSA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TGFiZWx9LAogICAgICAgICAgICAgICAgICAgIFZhbHVlICAgICA9PgogICAgICAgICAgICAgICAgICAgICAgICAkRHluYW1pY0ZpZWxkU2VhcmNoRGlzcGxheXsgJ0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgbXkgJExpbmsgPSAnUHJvZmlsZT0nIC4gJExheW91dE9iamVjdC0+TGlua0VuY29kZSgkUHJvZmlsZSkgLiAnOyc7CiAgICAgICAgJExpbmsgLj0gJ1NvcnRCeT0nIC4gJExheW91dE9iamVjdC0+TGlua0VuY29kZSgkU29ydEJ5KSAuICc7JzsKICAgICAgICAkTGluayAuPSAnT3JkZXI9JyAuICRMYXlvdXRPYmplY3QtPkxpbmtFbmNvZGUoJE9yZGVyQnkpIC4gJzsnOwogICAgICAgICRMaW5rIC49ICdUYWtlTGFzdFNlYXJjaD0xOyc7CgogICAgICAgICMgYnVpbGQgc2VhcmNoIG5hdmlnYXRpb24gYmFyCiAgICAgICAgbXkgJVBhZ2VOYXYgPSAkTGF5b3V0T2JqZWN0LT5QYWdlTmF2QmFyKAogICAgICAgICAgICBMaW1pdCAgICAgPT4gJFNlYXJjaExpbWl0LAogICAgICAgICAgICBTdGFydEhpdCAgPT4gJFN0YXJ0SGl0LAogICAgICAgICAgICBQYWdlU2hvd24gPT4gJFNlYXJjaFBhZ2VTaG93biwKICAgICAgICAgICAgQWxsSGl0cyAgID0+ICRDb3VudGVyLAogICAgICAgICAgICBBY3Rpb24gICAgPT4gIkFjdGlvbj1DdXN0b21lckZBUVNlYXJjaDtTdWJhY3Rpb249U2VhcmNoIiwKICAgICAgICAgICAgTGluayAgICAgID0+ICRMaW5rLAogICAgICAgICAgICBJRFByZWZpeCAgPT4gIkN1c3RvbWVyRkFRU2VhcmNoIiwKICAgICAgICApOwoKICAgICAgICAjIHNob3cgZm9vdGVyIGZpbHRlciAtIHNob3cgb25seSBpZiBtb3JlIHRoZSBvbmUgcGFnZSBpcyBhdmFpbGFibGUKICAgICAgICBpZiAoIGRlZmluZWQgJFBhZ2VOYXZ7VG90YWxIaXRzfSAmJiAoICRQYWdlTmF2e1RvdGFsSGl0c30gPiAkU2VhcmNoUGFnZVNob3duICkgKSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnUGFnaW5hdGlvbicsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgJVBhZ2VOYXYsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBzdGFydCBIVE1MIHBhZ2UKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+Q3VzdG9tZXJIZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkN1c3RvbWVyTmF2aWdhdGlvbkJhcigpOwoKICAgICAgICAjIFNldCB0aGUgU29ydEJ5IENsYXNzCiAgICAgICAgbXkgJFNvcnRDbGFzczsKCiAgICAgICAgIyB0aGlzIHNldHMgdGhlIG9wcG9zaXRlIHRvIHRoZSBPcmRlckJ5IHBhcmFtZXRlcgogICAgICAgIGlmICggJE9yZGVyQnkgZXEgJ0Rvd24nICkgewogICAgICAgICAgICAkU29ydENsYXNzID0gJ1NvcnRBc2NlbmRpbmcnOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoICRPcmRlckJ5IGVxICdVcCcgKSB7CiAgICAgICAgICAgICRTb3J0Q2xhc3MgPSAnU29ydERlc2NlbmRpbmcnOwogICAgICAgIH0KCiAgICAgICAgIyBzZXQgdGhlIFNvcnRCeSBDbGFzcyB0byB0aGUgY29ycmVjdCBmaWVsZAogICAgICAgIG15ICVDU1NTb3J0OwogICAgICAgIG15ICRDU1NTb3J0QnkgPSAkU29ydEJ5IC4gJ1NvcnQnOwogICAgICAgICRDU1NTb3J0eyRDU1NTb3J0Qnl9ID0gJFNvcnRDbGFzczsKCiAgICAgICAgbXkgJU5ld09yZGVyID0gKAogICAgICAgICAgICBEb3duID0+IFRyYW5zbGF0YWJsZSgnVXAnKSwKICAgICAgICAgICAgVXAgICA9PiBUcmFuc2xhdGFibGUoJ0Rvd24nKSwKICAgICAgICApOwoKICAgICAgICAjIHNob3cgbGFuZ3VhZ2UgaGVhZGVyCiAgICAgICAgaWYgKCRNdWx0aUxhbmd1YWdlKSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnSGVhZGVyTGFuZ3VhZ2UnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICVDU1NTb3J0LAogICAgICAgICAgICAgICAgICAgIE9yZGVyID0+ICROZXdPcmRlcnskT3JkZXJCeX0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQ3VzdG9tZXJGQVFTZWFyY2hSZXN1bHRTaG9ydCcsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAlUGFnZU5hdiwKICAgICAgICAgICAgICAgICVDU1NTb3J0LAogICAgICAgICAgICAgICAgT3JkZXIgICA9PiAkTmV3T3JkZXJ7JE9yZGVyQnl9LAogICAgICAgICAgICAgICAgUHJvZmlsZSA9PiAkUHJvZmlsZSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGJ1aWxkIGZvb3RlcgogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Q3VzdG9tZXJGb290ZXIoKTsKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KCiAgICAjIGVtcHR5IHNlYXJjaCBzaXRlCiAgICBlbHNlIHsKCiAgICAgICAgIyBkZWxldGUgcHJvZmlsZQogICAgICAgIGlmICggJEVyYXNlVGVtcGxhdGUgJiYgJFByb2ZpbGUgKSB7CgogICAgICAgICAgICAjIHJlbW92ZSBvbGQgcHJvZmlsZSBzdHVmZgogICAgICAgICAgICAkU2VhcmNoUHJvZmlsZU9iamVjdC0+U2VhcmNoUHJvZmlsZURlbGV0ZSgKICAgICAgICAgICAgICAgIEJhc2UgICAgICA9PiAnQ3VzdG9tZXJGQVFTZWFyY2gnLAogICAgICAgICAgICAgICAgTmFtZSAgICAgID0+ICRQcm9maWxlLAogICAgICAgICAgICAgICAgVXNlckxvZ2luID0+ICRTZWxmLT57VXNlckxvZ2lufSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJUdldFBhcmFtID0gKCk7CiAgICAgICAgICAgICRQcm9maWxlICA9ICcnOwogICAgICAgIH0KCiAgICAgICAgIyBjcmVhdGUgSFRNTCBzdHJpbmdzIGZvciBhbGwgZHluYW1pYyBmaWVsZHMKICAgICAgICBteSAlRHluYW1pY0ZpZWxkSFRNTDsKCiAgICAgICAgIyBjeWNsZSB0cm91Z2ggdGhlIGFjdGl2YXRlZCBEeW5hbWljIEZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgICAgICBEWU5BTUlDRklFTEQ6CiAgICAgICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gfSApIHsKICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICAgICAgIyBnZXQgc2VhcmNoIGZpZWxkIHByZWZlcmVuY2VzCiAgICAgICAgICAgIG15ICRTZWFyY2hGaWVsZFByZWZlcmVuY2VzID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPlNlYXJjaEZpZWxkUHJlZmVyZW5jZXMoCiAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0FycmF5UmVmV2l0aERhdGEoJFNlYXJjaEZpZWxkUHJlZmVyZW5jZXMpOwoKICAgICAgICAgICAgUFJFRkVSRU5DRToKICAgICAgICAgICAgZm9yIG15ICRQcmVmZXJlbmNlICggQHskU2VhcmNoRmllbGRQcmVmZXJlbmNlc30gKSB7CgogICAgICAgICAgICAgICAgIyBnZXQgZmllbGQgSFRNTAogICAgICAgICAgICAgICAgJER5bmFtaWNGaWVsZEhUTUx7ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSAuICRQcmVmZXJlbmNlLT57VHlwZX0gfQogICAgICAgICAgICAgICAgICAgID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPlNlYXJjaEZpZWxkUmVuZGVyKAogICAgICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgICAgICAgICAgUHJvZmlsZSAgICAgICAgICAgID0+IFwlR2V0UGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHRWYWx1ZSAgICAgICA9PgogICAgICAgICAgICAgICAgICAgICAgICAkQ29uZmlnLT57RGVmYXVsdHN9LT57RHluYW1pY0ZpZWxkfQogICAgICAgICAgICAgICAgICAgICAgICAtPnsgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgIExheW91dE9iamVjdCAgICAgICAgICAgPT4gJExheW91dE9iamVjdCwKICAgICAgICAgICAgICAgICAgICAgICAgQ29uZmlybWF0aW9uQ2hlY2tib3hlcyA9PiAxLAogICAgICAgICAgICAgICAgICAgICAgICBUeXBlICAgICAgICAgICAgICAgICAgID0+ICRQcmVmZXJlbmNlLT57VHlwZX0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBnZW5lcmF0ZSBzZWFyY2ggbWFzawogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5DdXN0b21lckhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Q3VzdG9tZXJOYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkU2VsZi0+TWFza0Zvcm0oCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgUHJvZmlsZSAgICAgICAgICA9PiAkUHJvZmlsZSwKICAgICAgICAgICAgQXJlYSAgICAgICAgICAgICA9PiAnQ3VzdG9tZXInLAogICAgICAgICAgICBEeW5hbWljRmllbGRIVE1MID0+IFwlRHluYW1pY0ZpZWxkSFRNTAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5DdXN0b21lckZvb3RlcigpOwogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQp9CgpzdWIgTWFza0Zvcm0gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICBteSAkVHJlZVZpZXcgPSAwOwogICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6RnJvbnRlbmQ6Okxpc3RUeXBlJykgZXEgJ3RyZWUnICkgewogICAgICAgICRUcmVlVmlldyA9IDE7CiAgICB9CgogICAgIyBzZXQgb3V0cHV0IGZvcm1hdHMgbGlzdAogICAgbXkgJVJlc3VsdEZvcm0gPSAoCiAgICAgICAgTm9ybWFsID0+IFRyYW5zbGF0YWJsZSgnTm9ybWFsJyksCiAgICAgICAgUHJpbnQgID0+IFRyYW5zbGF0YWJsZSgnUHJpbnQnKSwKICAgICAgICBDU1YgICAgPT4gVHJhbnNsYXRhYmxlKCdDU1YnKSwKICAgICk7CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIGJ1aWxkIG91dHB1dCBmb3JtYXRzIGxpc3QKICAgICRQYXJhbXtSZXN1bHRGb3JtU3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgID0+IHslUmVzdWx0Rm9ybX0sCiAgICAgICAgTmFtZSAgICAgICA9PiAnUmVzdWx0Rm9ybScsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkUGFyYW17UmVzdWx0Rm9ybX0gfHwgJ05vcm1hbCcsCiAgICAgICAgQ2xhc3MgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgbXkgJVByb2ZpbGVzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlNlYXJjaFByb2ZpbGUnKS0+U2VhcmNoUHJvZmlsZUxpc3QoCiAgICAgICAgQmFzZSAgICAgID0+ICdDdXN0b21lckZBUVNlYXJjaCcsCiAgICAgICAgVXNlckxvZ2luID0+ICRTZWxmLT57VXNlckxvZ2lufSwKICAgICk7CgogICAgIyBidWlsZCBwcm9maWxlcyBvdXRwdXQgbGlzdAogICAgJFBhcmFte1Byb2ZpbGVzU3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgICAgPT4geyVQcm9maWxlc30sCiAgICAgICAgUG9zc2libGVOb25lID0+IDEsCiAgICAgICAgTmFtZSAgICAgICAgID0+ICdQcm9maWxlJywKICAgICAgICBTZWxlY3RlZElEICAgPT4gJFBhcmFte1Byb2ZpbGV9LAogICAgICAgIENsYXNzICAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgbXkgJEZBUU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpGQVEnKTsKCiAgICBteSAlTGFuZ3VhZ2VzID0gJEZBUU9iamVjdC0+TGFuZ3VhZ2VMaXN0KAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgYnVpbGQgbGFuZ3VhZ2VzIG91dHB1dCBsaXN0CiAgICAkUGFyYW17TGFuZ3VhZ2VzU3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgID0+IHslTGFuZ3VhZ2VzfSwKICAgICAgICBOYW1lICAgICAgID0+ICdMYW5ndWFnZUlEcycsCiAgICAgICAgU2l6ZSAgICAgICA9PiA1LAogICAgICAgIE11bHRpcGxlICAgPT4gMSwKICAgICAgICBTZWxlY3RlZElEID0+ICRQYXJhbXtMYW5ndWFnZUlEc30sCiAgICAgICAgQ2xhc3MgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgbXkgJENhdGVnb3JpZXMgPSAkRkFRT2JqZWN0LT5HZXRDdXN0b21lckNhdGVnb3JpZXNMb25nTmFtZXMoCiAgICAgICAgQ3VzdG9tZXJVc2VyID0+ICRTZWxmLT57VXNlckxvZ2lufSwKICAgICAgICBUeXBlICAgICAgICAgPT4gJ3J3JywKICAgICAgICBVc2VySUQgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGJ1aWxkIGNhdGVnb3JpZXMgb3V0cHV0IGxpc3QKICAgICRQYXJhbXtDYXRlZ29yaWVzU3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgID0+ICRDYXRlZ29yaWVzLAogICAgICAgIE5hbWUgICAgICAgPT4gJ0NhdGVnb3J5SURzJywKICAgICAgICBTaXplICAgICAgID0+IDUsCiAgICAgICAgTXVsdGlwbGUgICA9PiAxLAogICAgICAgIFNlbGVjdGVkSUQgPT4gJFBhcmFte0NhdGVnb3J5SURzfSwKICAgICAgICBUcmVlVmlldyAgID0+ICRUcmVlVmlldywKICAgICAgICBDbGFzcyAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKCiAgICBteSAlVm90aW5nT3BlcmF0b3JzID0gKAogICAgICAgIEVxdWFscyAgICAgICAgICAgID0+IFRyYW5zbGF0YWJsZSgnRXF1YWxzJyksCiAgICAgICAgR3JlYXRlclRoYW4gICAgICAgPT4gVHJhbnNsYXRhYmxlKCdHcmVhdGVyIHRoYW4nKSwKICAgICAgICBHcmVhdGVyVGhhbkVxdWFscyA9PiBUcmFuc2xhdGFibGUoJ0dyZWF0ZXIgdGhhbiBlcXVhbHMnKSwKICAgICAgICBTbWFsbGVyVGhhbiAgICAgICA9PiBUcmFuc2xhdGFibGUoJ1NtYWxsZXIgdGhhbicpLAogICAgICAgIFNtYWxsZXJUaGFuRXF1YWxzID0+IFRyYW5zbGF0YWJsZSgnU21hbGxlciB0aGFuIGVxdWFscycpLAogICAgKTsKCiAgICAkUGFyYW17Vm90ZVNlYXJjaFR5cGVTZWxlY3Rpb25TdHJpbmd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICAgPT4gXCVWb3RpbmdPcGVyYXRvcnMsCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ1ZvdGVTZWFyY2hUeXBlJywKICAgICAgICBTaXplICAgICAgICA9PiAxLAogICAgICAgIFNlbGVjdGVkSUQgID0+ICRQYXJhbXtWb3RlU2VhcmNoVHlwZX0gfHwgJycsCiAgICAgICAgVHJhbnNsYXRpb24gPT4gMSwKICAgICAgICBNdWx0aXBsZSAgICA9PiAwLAogICAgICAgIENsYXNzICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKCiAgICAkUGFyYW17UmF0ZVNlYXJjaFR5cGVTZWxlY3Rpb25TdHJpbmd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICAgPT4gXCVWb3RpbmdPcGVyYXRvcnMsCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ1JhdGVTZWFyY2hUeXBlJywKICAgICAgICBTaXplICAgICAgICA9PiAxLAogICAgICAgIFNlbGVjdGVkSUQgID0+ICRQYXJhbXtSYXRlU2VhcmNoVHlwZX0gfHwgJycsCiAgICAgICAgVHJhbnNsYXRpb24gPT4gMSwKICAgICAgICBNdWx0aXBsZSAgICA9PiAwLAogICAgICAgIENsYXNzICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKICAgICRQYXJhbXtSYXRlU2VhcmNoU2VsZWN0aW9uU3RyaW5nfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAwICAgPT4gJzAlJywKICAgICAgICAgICAgMjUgID0+ICcyNSUnLAogICAgICAgICAgICA1MCAgPT4gJzUwJScsCiAgICAgICAgICAgIDc1ICA9PiAnNzUlJywKICAgICAgICAgICAgMTAwID0+ICcxMDAlJywKICAgICAgICB9LAogICAgICAgIFNvcnQgICAgICAgID0+ICdOdW1lcmljS2V5JywKICAgICAgICBOYW1lICAgICAgICA9PiAnUmF0ZVNlYXJjaCcsCiAgICAgICAgU2l6ZSAgICAgICAgPT4gMSwKICAgICAgICBTZWxlY3RlZElEICA9PiAkUGFyYW17UmF0ZVNlYXJjaH0gfHwgJycsCiAgICAgICAgVHJhbnNsYXRpb24gPT4gMCwKICAgICAgICBNdWx0aXBsZSAgICA9PiAwLAogICAgICAgIENsYXNzICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKCiAgICAkUGFyYW17SXRlbUNyZWF0ZVRpbWVQb2ludH0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgICA9PiBbIDEgLi4gNTkgXSwKICAgICAgICBUcmFuc2xhdGlvbiA9PiAwLAogICAgICAgIE5hbWUgICAgICAgID0+ICdJdGVtQ3JlYXRlVGltZVBvaW50JywKICAgICAgICBTZWxlY3RlZElEICA9PiAkUGFyYW17SXRlbUNyZWF0ZVRpbWVQb2ludH0sCiAgICApOwogICAgJFBhcmFte0l0ZW1DcmVhdGVUaW1lUG9pbnRTdGFydH0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgTGFzdCAgID0+IFRyYW5zbGF0YWJsZSgnd2l0aGluIHRoZSBsYXN0IC4uLicpLAogICAgICAgICAgICBCZWZvcmUgPT4gVHJhbnNsYXRhYmxlKCdtb3JlIHRoYW4gLi4uIGFnbycpLAogICAgICAgIH0sCiAgICAgICAgVHJhbnNsYXRpb24gPT4gMSwKICAgICAgICBOYW1lICAgICAgICA9PiAnSXRlbUNyZWF0ZVRpbWVQb2ludFN0YXJ0JywKICAgICAgICBTZWxlY3RlZElEICA9PiAkUGFyYW17SXRlbUNyZWF0ZVRpbWVQb2ludFN0YXJ0fSB8fCAnTGFzdCcsCiAgICApOwogICAgJFBhcmFte0l0ZW1DcmVhdGVUaW1lUG9pbnRGb3JtYXR9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgIG1pbnV0ZSA9PiBUcmFuc2xhdGFibGUoJ21pbnV0ZShzKScpLAogICAgICAgICAgICBob3VyICAgPT4gVHJhbnNsYXRhYmxlKCdob3VyKHMpJyksCiAgICAgICAgICAgIGRheSAgICA9PiBUcmFuc2xhdGFibGUoJ2RheShzKScpLAogICAgICAgICAgICB3ZWVrICAgPT4gVHJhbnNsYXRhYmxlKCd3ZWVrKHMpJyksCiAgICAgICAgICAgIG1vbnRoICA9PiBUcmFuc2xhdGFibGUoJ21vbnRoKHMpJyksCiAgICAgICAgICAgIHllYXIgICA9PiBUcmFuc2xhdGFibGUoJ3llYXIocyknKSwKICAgICAgICB9LAogICAgICAgIFRyYW5zbGF0aW9uID0+IDEsCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ0l0ZW1DcmVhdGVUaW1lUG9pbnRGb3JtYXQnLAogICAgICAgIFNlbGVjdGVkSUQgID0+ICRQYXJhbXtJdGVtQ3JlYXRlVGltZVBvaW50Rm9ybWF0fSwKICAgICk7CiAgICAkUGFyYW17SXRlbUNyZWF0ZVRpbWVTdGFydH0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZERhdGVTZWxlY3Rpb24oCiAgICAgICAgJVBhcmFtLAogICAgICAgIFByZWZpeCAgID0+ICdJdGVtQ3JlYXRlVGltZVN0YXJ0JywKICAgICAgICBGb3JtYXQgICA9PiAnRGF0ZUlucHV0Rm9ybWF0JywKICAgICAgICBEaWZmVGltZSA9PiAtKCAoIDYwICogNjAgKiAyNCApICogMzAgKSwKICAgICk7CiAgICAkUGFyYW17SXRlbUNyZWF0ZVRpbWVTdG9wfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkRGF0ZVNlbGVjdGlvbigKICAgICAgICAlUGFyYW0sCiAgICAgICAgUHJlZml4ID0+ICdJdGVtQ3JlYXRlVGltZVN0b3AnLAogICAgICAgIEZvcm1hdCA9PiAnRGF0ZUlucHV0Rm9ybWF0JywKICAgICk7CgogICAgIyBIVE1MIHNlYXJjaCBtYXNrIG91dHB1dAogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnU2VhcmNoJywKICAgICAgICBEYXRhID0+IHslUGFyYW19LAogICAgKTsKCiAgICAjIG91dHB1dCBEeW5hbWljIGZpZWxkcyBibG9ja3MKICAgIERZTkFNSUNGSUVMRDoKICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHsgJFNlbGYtPntEeW5hbWljRmllbGR9IH0gKSB7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICAjIGdldCBzZWFyY2ggZmllbGQgcHJlZmVyZW5jZXMKICAgICAgICBteSAkU2VhcmNoRmllbGRQcmVmZXJlbmNlcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKS0+U2VhcmNoRmllbGRQcmVmZXJlbmNlcygKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgKTsKCiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzQXJyYXlSZWZXaXRoRGF0YSgkU2VhcmNoRmllbGRQcmVmZXJlbmNlcyk7CgogICAgICAgIFBSRUZFUkVOQ0U6CiAgICAgICAgZm9yIG15ICRQcmVmZXJlbmNlICggQHskU2VhcmNoRmllbGRQcmVmZXJlbmNlc30gKSB7CgogICAgICAgICAgICAjIHNraXAgZmllbGRzIHRoYXQgSFRNTCBjb3VsZCBub3QgYmUgcmV0cmlldmVkCiAgICAgICAgICAgIG5leHQgUFJFRkVSRU5DRSBpZiAhSXNIYXNoUmVmV2l0aERhdGEoCiAgICAgICAgICAgICAgICAkUGFyYW17RHluYW1pY0ZpZWxkSFRNTH0tPnsgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IC4gJFByZWZlcmVuY2UtPntUeXBlfSB9CiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0R5bmFtaWNGaWVsZCcsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBMYWJlbCA9PiAkUGFyYW17RHluYW1pY0ZpZWxkSFRNTH0KICAgICAgICAgICAgICAgICAgICAgICAgLT57ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSAuICRQcmVmZXJlbmNlLT57VHlwZX0gfS0+e0xhYmVsfSwKICAgICAgICAgICAgICAgICAgICBGaWVsZCA9PiAkUGFyYW17RHluYW1pY0ZpZWxkSFRNTH0KICAgICAgICAgICAgICAgICAgICAgICAgLT57ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSAuICRQcmVmZXJlbmNlLT57VHlwZX0gfS0+e0ZpZWxkfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IGRlZmF1bHQgbXVsdGkgbGFuZ3VhZ2Ugb3B0aW9uCiAgICBteSAkTXVsdGlMYW5ndWFnZSA9ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpNdWx0aUxhbmd1YWdlJyk7CgogICAgIyBzaG93IGxhbmd1YWdlcyBzZWxlY3QKICAgIGlmICgkTXVsdGlMYW5ndWFnZSkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdMYW5ndWFnZScsCiAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIEhUTUwgc2VhcmNoIG1hc2sgb3V0cHV0CiAgICByZXR1cm4gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQ3VzdG9tZXJGQVFTZWFyY2gnLAogICAgICAgIERhdGEgICAgICAgICA9PiB7JVBhcmFtfSwKICAgICk7Cn0KCjE7Cg==</File>
        <File Location="Kernel/Modules/CustomerFAQZoom.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6Q3VzdG9tZXJGQVFab29tOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6TGFuZ3VhZ2UgICAgICAgICAgICAgIHF3KFRyYW5zbGF0YWJsZSk7CnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgaWYgKCAhZGVmaW5lZCAkU2VsZi0+e0RvTm90U2hvd0Jyb3dzZXJMaW5rTWVzc2FnZX0gKSB7CiAgICAgICAgbXkgJVVzZXJQcmVmZXJlbmNlcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDdXN0b21lclVzZXInKS0+R2V0UHJlZmVyZW5jZXMoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAkVXNlclByZWZlcmVuY2Vze1VzZXJDdXN0b21lckRvTm90U2hvd0Jyb3dzZXJMaW5rTWVzc2FnZX0gKSB7CiAgICAgICAgICAgICRTZWxmLT57RG9Ob3RTaG93QnJvd3NlckxpbmtNZXNzYWdlfSA9IDE7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkU2VsZi0+e0RvTm90U2hvd0Jyb3dzZXJMaW5rTWVzc2FnZX0gPSAwOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkUGFyYW1PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CgogICAgIyBnZXQgcGFyYW1zCiAgICBteSAlR2V0UGFyYW07CiAgICAkR2V0UGFyYW17SXRlbUlEfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdJdGVtSUQnICk7CiAgICAkR2V0UGFyYW17UmF0ZX0gICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdSYXRlJyApOwoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBzYXZlLCBpZiBicm93c2VyIGxpbmsgbWVzc2FnZSB3YXMgY2xvc2VkCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQnJvd3NlckxpbmtNZXNzYWdlJyApIHsKCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkN1c3RvbWVyVXNlcicpLT5TZXRQcmVmZXJlbmNlcygKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgS2V5ICAgID0+ICdVc2VyQ3VzdG9tZXJEb05vdFNob3dCcm93c2VyTGlua01lc3NhZ2UnLAogICAgICAgICAgICBWYWx1ZSAgPT4gMSwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+QXR0YWNobWVudCgKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvaHRtbCcsCiAgICAgICAgICAgIENvbnRlbnQgICAgID0+IDEsCiAgICAgICAgICAgIFR5cGUgICAgICAgID0+ICdpbmxpbmUnLAogICAgICAgICAgICBOb0NhY2hlICAgICA9PiAxLAogICAgICAgICk7CiAgICB9CgogICAgaWYgKCAhJEdldFBhcmFte0l0ZW1JRH0gKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkN1c3RvbWVyRmF0YWxFcnJvcigKICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ05lZWQgSXRlbUlEIScpLAogICAgICAgICk7CiAgICB9CgogICAgbXkgJEZBUU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpGQVEnKTsKCiAgICBteSAlRkFRRGF0YSA9ICRGQVFPYmplY3QtPkZBUUdldCgKICAgICAgICBJdGVtSUQgICAgICAgID0+ICRHZXRQYXJhbXtJdGVtSUR9LAogICAgICAgIEl0ZW1GaWVsZHMgICAgPT4gMSwKICAgICAgICBVc2VySUQgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICBEeW5hbWljRmllbGRzID0+IDEsCiAgICApOwogICAgaWYgKCAhJUZBUURhdGEgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkN1c3RvbWVyRmF0YWxFcnJvcigpOwogICAgfQoKICAgICMgZ2V0IHRoZSB2YWxpZCBpZHMKICAgIG15IEBWYWxpZElEcyAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZhbGlkJyktPlZhbGlkSURzR2V0KCk7CiAgICBteSAlVmFsaWRJRExvb2t1cCA9IG1hcCB7ICRfID0+IDEgfSBAVmFsaWRJRHM7CgogICAgIyBjaGVjayB1c2VyIHBlcm1pc3Npb24KICAgIG15ICRQZXJtaXNzaW9uID0gJEZBUU9iamVjdC0+Q2hlY2tDYXRlZ29yeUN1c3RvbWVyUGVybWlzc2lvbigKICAgICAgICBDdXN0b21lclVzZXIgPT4gJFNlbGYtPntVc2VyTG9naW59LAogICAgICAgIENhdGVnb3J5SUQgICA9PiAkRkFRRGF0YXtDYXRlZ29yeUlEfSwKICAgICAgICBVc2VySUQgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAjIGdldCBpbnRlcmZhY2Ugc3RhdGUgbGlzdAogICAgbXkgJEludGVyZmFjZVN0YXRlcyA9ICRGQVFPYmplY3QtPlN0YXRlVHlwZUxpc3QoCiAgICAgICAgVHlwZXMgID0+ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpDdXN0b21lcjo6U3RhdGVUeXBlcycpLAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgcGVybWlzc2lvbiBjaGVjawogICAgaWYgKAogICAgICAgICEkUGVybWlzc2lvbgogICAgICAgIHx8ICEkRkFRRGF0YXtBcHByb3ZlZH0KICAgICAgICB8fCAhJFZhbGlkSURMb29rdXB7ICRGQVFEYXRhe1ZhbGlkSUR9IH0KICAgICAgICB8fCAhJEludGVyZmFjZVN0YXRlcy0+eyAkRkFRRGF0YXtTdGF0ZVR5cGVJRH0gfQogICAgICAgICkKICAgIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Q3VzdG9tZXJOb1Blcm1pc3Npb24oIFdpdGhIZWFkZXIgPT4gJ3llcycgKTsKICAgIH0KCiAgICAjIHN0b3JlIHRoZSBsYXN0IHNjcmVlbiBpbiBzZXNzaW9uCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6QXV0aFNlc3Npb24nKS0+VXBkYXRlU2Vzc2lvbklEKAogICAgICAgIFNlc3Npb25JRCA9PiAkU2VsZi0+e1Nlc3Npb25JRH0sCiAgICAgICAgS2V5ICAgICAgID0+ICdMYXN0U2NyZWVuVmlldycsCiAgICAgICAgVmFsdWUgICAgID0+ICRTZWxmLT57UmVxdWVzdGVkVVJMfSwKICAgICk7CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgSFRNTFZpZXcgU3ViYWN0aW9uCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0hUTUxWaWV3JyApIHsKCiAgICAgICAgIyBnZXQgcGFyYW1zCiAgICAgICAgbXkgJEZpZWxkID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gIkZpZWxkIiApOwoKICAgICAgICBmb3IgbXkgJE5lZWRlZCAocXcoIEl0ZW1JRCBGaWVsZCApKSB7CiAgICAgICAgICAgIGlmICggISROZWVkZWQgKSB7CiAgICAgICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkZWQgUGFyYW06ICROZWVkZWQhIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgZ2V0IHRoZSBGaWVsZCBjb250ZW50CiAgICAgICAgbXkgJEZpZWxkQ29udGVudCA9ICRGQVFPYmplY3QtPkl0ZW1GaWVsZEdldCgKICAgICAgICAgICAgSXRlbUlEID0+ICRHZXRQYXJhbXtJdGVtSUR9LAogICAgICAgICAgICBGaWVsZCAgPT4gJEZpZWxkLAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgcmV3cml0ZSBoYW5kbGUgYW5kIGFjdGlvbgogICAgICAgICRGaWVsZENvbnRlbnQKICAgICAgICAgICAgPX4gc3sgaW5kZXhbLl1wbCBbP10gQWN0aW9uPUFnZW50RkFRWm9vbSB9e2N1c3RvbWVyLnBsP0FjdGlvbj1DdXN0b21lckZBUVpvb219Z3htczsKCiAgICAgICAgIyB0YWtlIGNhcmUgb2Ygb2xkIHN0eWxlIGJlZm9yZSBGQVEgMi4wLngKICAgICAgICAkRmllbGRDb250ZW50ID1+IHN7CiAgICAgICAgICAgIGluZGV4Wy5dcGwgWz9dIEFjdGlvbj1BZ2VudEZBUSBbJl0oYW1wOyk/IFN1YmFjdGlvbj1Eb3dubG9hZCBbJl0oYW1wOyk/CiAgICAgICAgfXtjdXN0b21lci5wbD9BY3Rpb249Q3VzdG9tZXJGQVFab29tO1N1YmFjdGlvbj1Eb3dubG9hZEF0dGFjaG1lbnQ7fWd4bXM7CgogICAgICAgICMgYnVpbGQgYmFzZSBVUkwgZm9yIGlubGluZSBpbWFnZXMKICAgICAgICBteSAkU2Vzc2lvbklEID0gJyc7CiAgICAgICAgaWYgKCAkU2VsZi0+e1Nlc3Npb25JRH0gJiYgISRTZWxmLT57U2Vzc2lvbklEQ29va2llfSApIHsKICAgICAgICAgICAgJFNlc3Npb25JRCA9ICc7JyAuICRTZWxmLT57U2Vzc2lvbk5hbWV9IC4gJz0nIC4gJFNlbGYtPntTZXNzaW9uSUR9OwogICAgICAgICAgICAkRmllbGRDb250ZW50ID1+IHN7CiAgICAgICAgICAgICAgICAoQWN0aW9uPUN1c3RvbWVyRkFRWm9vbTtTdWJhY3Rpb249RG93bmxvYWRBdHRhY2htZW50O0l0ZW1JRD1cZCs7RmlsZUlEPVxkKykKICAgICAgICAgICAgfXskMSRTZXNzaW9uSUR9Z21zeDsKICAgICAgICB9CgogICAgICAgIG15ICRIVE1MVXRpbHNPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SFRNTFV0aWxzJyk7CgogICAgICAgICMgY29udmVydCBjb250ZW50IHRvIEhUTUwgaWYgbmVlZGVkCiAgICAgICAgaWYgKAogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0ZBUTo6SXRlbTo6SFRNTCcpCiAgICAgICAgICAgICYmICRMYXlvdXRPYmplY3QtPntCcm93c2VyUmljaFRleHR9CiAgICAgICAgICAgICYmICRGQVFEYXRhe0NvbnRlbnRUeXBlfSBuZSAndGV4dC9odG1sJwogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkRmllbGRDb250ZW50ID0gJEhUTUxVdGlsc09iamVjdC0+VG9IVE1MKAogICAgICAgICAgICAgICAgU3RyaW5nID0+ICRGaWVsZENvbnRlbnQsCiAgICAgICAgICAgICkgfHwgJyc7CiAgICAgICAgfQoKICAgICAgICAjIERldGVjdCBhbGwgcGxhaW4gdGV4dCBsaW5rcyBhbmQgcHV0IHRoZW0gaW50byBhbiBIVE1MIDxhPiB0YWcuCiAgICAgICAgJEZpZWxkQ29udGVudCA9ICRIVE1MVXRpbHNPYmplY3QtPkxpbmtRdW90ZSgKICAgICAgICAgICAgU3RyaW5nID0+ICRGaWVsZENvbnRlbnQsCiAgICAgICAgKTsKCiAgICAgICAgIyBTZXQgdGFyZ2V0PSJfYmxhbmsiIGF0dHJpYnV0ZSB0byBhbGwgSFRNTCA8YT4gdGFncyB0aGUgTGlua1F1b3RlIGZ1bmN0aW9uIG5lZWRzIHRvIGJlCiAgICAgICAgIyAgIGNhbGxlZCBhZ2FpbgogICAgICAgICRGaWVsZENvbnRlbnQgPSAkSFRNTFV0aWxzT2JqZWN0LT5MaW5rUXVvdGUoCiAgICAgICAgICAgIFN0cmluZyAgICA9PiAkRmllbGRDb250ZW50LAogICAgICAgICAgICBUYXJnZXRBZGQgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIGFkZCBuZWVkZWQgSFRNTCBoZWFkZXJzCiAgICAgICAgJEZpZWxkQ29udGVudCA9ICRIVE1MVXRpbHNPYmplY3QtPkRvY3VtZW50Q29tcGxldGUoCiAgICAgICAgICAgIFN0cmluZyAgICAgICAgICAgICAgPT4gJEZpZWxkQ29udGVudCwKICAgICAgICAgICAgQ2hhcnNldCAgICAgICAgICAgICA9PiAndXRmLTgnLAogICAgICAgICAgICBDdXN0b21lckludGVyZmFjZSAgID0+IDEsCiAgICAgICAgICAgIEN1c3RvbWVyVUlTdHlsZXMgICAgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIHJldHVybiBjb21wbGV0ZSBIVE1MIGFzIGFuIGF0dGFjaG1lbnQKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+QXR0YWNobWVudCgKICAgICAgICAgICAgVHlwZSAgICAgICAgPT4gJ2lubGluZScsCiAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L2h0bWwnLAogICAgICAgICAgICBDb250ZW50ICAgICA9PiAkRmllbGRDb250ZW50LAogICAgICAgICk7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgRG93bmxvYWRBdHRhY2htZW50IFN1YmFjdGlvbgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdEb3dubG9hZEF0dGFjaG1lbnQnICkgewoKICAgICAgICAjIG1hbmFnZSBwYXJhbWV0ZXJzCiAgICAgICAgJEdldFBhcmFte0ZpbGVJRH0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnRmlsZUlEJyApOwogICAgICAgIGlmICggIWRlZmluZWQgJEdldFBhcmFte0ZpbGVJRH0gKSB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5DdXN0b21lckZhdGFsRXJyb3IoCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnTmVlZCBGaWxlSUQhJyksCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGdldCBhdHRhY2htZW50cwogICAgICAgIG15ICVGaWxlID0gJEZBUU9iamVjdC0+QXR0YWNobWVudEdldCgKICAgICAgICAgICAgSXRlbUlEID0+ICRHZXRQYXJhbXtJdGVtSUR9LAogICAgICAgICAgICBGaWxlSUQgPT4gJEdldFBhcmFte0ZpbGVJRH0sCiAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKICAgICAgICBpZiAoJUZpbGUpIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkF0dGFjaG1lbnQoJUZpbGUpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTm8gc3VjaCBhdHRhY2htZW50ICgkR2V0UGFyYW17RmlsZUlEfSkhIE1heSBiZSBhbiBhdHRhY2shISEiLAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkN1c3RvbWVyRmF0YWxFcnJvcigpOwogICAgICAgIH0KICAgIH0KCiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+Q3VzdG9tZXJIZWFkZXIoCiAgICAgICAgVmFsdWUgPT4gJEZBUURhdGF7VGl0bGV9LAogICAgKTsKCiAgICAjIEFkZEpTRGF0YSBmb3IgRVMKICAgIG15ICRFU0FjdGl2ZSA9ICRDb25maWdPYmplY3QtPkdldCgnRWxhc3RpY3NlYXJjaDo6QWN0aXZlJyk7CgogICAgJExheW91dE9iamVjdC0+QWRkSlNEYXRhKAogICAgICAgIEtleSAgID0+ICdFU0FjdGl2ZScsCiAgICAgICAgVmFsdWUgPT4gJEVTQWN0aXZlLAogICAgKTsKCiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkN1c3RvbWVyTmF2aWdhdGlvbkJhcigpOwoKICAgICMgc2V0IGRlZmF1bHQgaW50ZXJmYWNlIHNldHRpbmdzCiAgICBteSAkSW50ZXJmYWNlID0gJEZBUU9iamVjdC0+U3RhdGVUeXBlR2V0KAogICAgICAgIE5hbWUgICA9PiAnZXh0ZXJuYWwnLAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgZ2V0IHZvdGluZyBkZWZhdWx0IG9wdGlvbgogICAgbXkgJFZvdGluZyA9ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpWb3RpbmcnKTsKCiAgICAjIGdldCBGQVEgdm90ZSBpbmZvcm1hdGlvbgogICAgbXkgJFZvdGVEYXRhOwogICAgaWYgKCRWb3RpbmcpIHsKICAgICAgICAkVm90ZURhdGEgPSAkRkFRT2JqZWN0LT5Wb3RlR2V0KAogICAgICAgICAgICBDcmVhdGVCeSAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICBJdGVtSUQgICAgPT4gJEZBUURhdGF7SXRlbUlEfSwKICAgICAgICAgICAgSW50ZXJmYWNlID0+ICRJbnRlcmZhY2UtPntTdGF0ZUlEfSwKICAgICAgICAgICAgSVAgICAgICAgID0+ICRQYXJhbU9iamVjdC0+UmVtb3RlQWRkcigpLAogICAgICAgICAgICBVc2VySUQgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CiAgICB9CgogICAgIyBjaGVjayBpZiB1c2VyIGFscmVhZHkgdm90ZWQgdGhpcyBGQVEgaXRlbQogICAgbXkgJEFscmVhZHlWb3RlZDsKICAgIGlmICgkVm90ZURhdGEpIHsKCiAgICAgICAgbXkgJEl0ZW1DaGFuZ2VkU3lzdGVtVGltZSA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICAgICAgU3RyaW5nID0+ICRGQVFEYXRhe0NoYW5nZWR9IHx8ICcnLAogICAgICAgICAgICB9CiAgICAgICAgKS0+VG9FcG9jaCgpOwoKICAgICAgICBteSAkVm90ZUNyZWF0ZWRTeXN0ZW1UaW1lID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgICAgICBTdHJpbmcgPT4gJFZvdGVEYXRhLT57Q3JlYXRlZH0gfHwgJycsCiAgICAgICAgICAgIH0KICAgICAgICApLT5Ub0Vwb2NoKCk7CgogICAgICAgIGlmICggJEl0ZW1DaGFuZ2VkU3lzdGVtVGltZSA8PSAkVm90ZUNyZWF0ZWRTeXN0ZW1UaW1lICkgewogICAgICAgICAgICAkQWxyZWFkeVZvdGVkID0gMTsKICAgICAgICB9CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgVm90ZSBTdWJhY3Rpb24KICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnVm90ZScgKSB7CgogICAgICAgICMgY3VzdG9tZXIgY2FuJ3QgdXNlIHRoaXMgc3ViLWFjdGlvbiBpZiBpcyBub3QgZW5hYmxlZAogICAgICAgIGlmICggISRWb3RpbmcgKSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkN1c3RvbWVyRmF0YWxFcnJvcigKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdUaGUgdm90aW5nIG1lY2hhbmlzbSBpcyBub3QgZW5hYmxlZCEnKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgdXNlciBjYW4gdm90ZSBvbmx5IG9uY2UgcGVyIEZBUSByZXZpc2lvbgogICAgICAgIGlmICgkQWxyZWFkeVZvdGVkKSB7CiAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ0Vycm9yJywKICAgICAgICAgICAgICAgIEluZm8gICAgID0+IFRyYW5zbGF0YWJsZSgnWW91IGhhdmUgYWxyZWFkeSB2b3RlZCEnKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgc2V0IHRoZSB2b3RlIGlmIGFueQogICAgICAgIGVsc2lmICggZGVmaW5lZCAkR2V0UGFyYW17UmF0ZX0gKSB7CgogICAgICAgICAgICAjIGdldCByYXRlcyBjb25maWcKICAgICAgICAgICAgbXkgJFZvdGluZ1JhdGVzID0gJENvbmZpZ09iamVjdC0+R2V0KCdGQVE6Okl0ZW06OlZvdGluZzo6UmF0ZXMnKTsKICAgICAgICAgICAgbXkgJFJhdGUgICAgICAgID0gJEdldFBhcmFte1JhdGV9OwoKICAgICAgICAgICAgIyBzZW5kIGVycm9yIGlmIHJhdGUgaXMgbm90IGRlZmluZWQgaW4gY29uZmlnCiAgICAgICAgICAgIGlmICggISRWb3RpbmdSYXRlcy0+eyRSYXRlfSApIHsKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkN1c3RvbWVyRmF0YWxFcnJvcigKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnVGhlIHZvdGUgcmF0ZSBpcyBub3QgZGVmaW5lZCEnKSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgb3RoZXJ3aXNlIGFkZCB0aGUgdm90ZQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRGQVFPYmplY3QtPlZvdGVBZGQoCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlZEJ5ID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICBJdGVtSUQgICAgPT4gJEdldFBhcmFte0l0ZW1JRH0sCiAgICAgICAgICAgICAgICAgICAgSVAgICAgICAgID0+ICRQYXJhbU9iamVjdC0+UmVtb3RlQWRkcigpLAogICAgICAgICAgICAgICAgICAgIEludGVyZmFjZSA9PiAkSW50ZXJmYWNlLT57U3RhdGVJRH0sCiAgICAgICAgICAgICAgICAgICAgUmF0ZSAgICAgID0+ICRHZXRQYXJhbXtSYXRlfSwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIGRvIG5vdCBzaG93IHRoZSB2b3RpbmcgZm9ybQogICAgICAgICAgICAgICAgJEFscmVhZHlWb3RlZCA9IDE7CgogICAgICAgICAgICAgICAgIyByZWZyZXNoIEZBUSBpdGVtIGRhdGEKICAgICAgICAgICAgICAgICVGQVFEYXRhID0gJEZBUU9iamVjdC0+RkFRR2V0KAogICAgICAgICAgICAgICAgICAgIEl0ZW1JRCAgICAgPT4gJEdldFBhcmFte0l0ZW1JRH0sCiAgICAgICAgICAgICAgICAgICAgSXRlbUZpZWxkcyA9PiAxLAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIGlmICggISVGQVFEYXRhICkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5DdXN0b21lckZhdGFsRXJyb3IoKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgICAgICAgICBJbmZvID0+IFRyYW5zbGF0YWJsZSgnVGhhbmtzIGZvciB5b3VyIHZvdGUhJyksCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHVzZXIgaXMgYWJsZSB0byB2b3RlIGJ1dCBubyByYXRlIGhhcyBiZWVuIHNlbGVjdGVkCiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ0Vycm9yJywKICAgICAgICAgICAgICAgIEluZm8gICAgID0+IFRyYW5zbGF0YWJsZSgnTm8gcmF0ZSBzZWxlY3RlZCEnKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBwcmVwYXJlIGZpZWxkcyBkYXRhIChTdGlsbCBuZWVkZWQgZm9yIFBsYWluVGV4dCkKICAgIEZJRUxEOgogICAgZm9yIG15ICRGaWVsZCAocXcoRmllbGQxIEZpZWxkMiBGaWVsZDMgRmllbGQ0IEZpZWxkNSBGaWVsZDYpKSB7CiAgICAgICAgbmV4dCBGSUVMRCBpZiAhJEZBUURhdGF7JEZpZWxkfTsKCiAgICAgICAgIyByZXdyaXRlIGxpbmtzIHRvIGVtYmVkZGVkIGltYWdlcyBmb3IgY3VzdG9tZXIgaW50ZXJmYWNlCiAgICAgICAgaWYgKCAkSW50ZXJmYWNlLT57TmFtZX0gZXEgJ2V4dGVybmFsJyApIHsKCiAgICAgICAgICAgICMgcmV3cml0ZSBoYW5kbGUgYW5kIGFjdGlvbgogICAgICAgICAgICAkRkFRRGF0YXskRmllbGR9CiAgICAgICAgICAgICAgICA9fiBzeyBpbmRleFsuXXBsIFs/XSBBY3Rpb249QWdlbnRGQVFab29tIH17Y3VzdG9tZXIucGw/QWN0aW9uPUN1c3RvbWVyRkFRWm9vbX1neG1zOwoKICAgICAgICAgICAgIyB0YWtlIGNhcmUgb2Ygb2xkIHN0eWxlIGJlZm9yZSBGQVEgMi4wLngKICAgICAgICAgICAgJEZBUURhdGF7JEZpZWxkfSA9fiBzewogICAgICAgICAgICAgICAgaW5kZXhbLl1wbCBbP10gQWN0aW9uPUFnZW50RkFRIFsmXShhbXA7KT8gU3ViYWN0aW9uPURvd25sb2FkIFsmXShhbXA7KT8KICAgICAgICAgICAgfXtjdXN0b21lci5wbD9BY3Rpb249Q3VzdG9tZXJGQVFab29tO1N1YmFjdGlvbj1Eb3dubG9hZEF0dGFjaG1lbnQ7fWd4bXM7CiAgICAgICAgfQoKICAgICAgICAjIG5vIHF1b3RpbmcgaWYgSFRNTCB2aWV3IGlzIGVuYWJsZWQKICAgICAgICBuZXh0IEZJRUxEIGlmICRDb25maWdPYmplY3QtPkdldCgnRkFROjpJdGVtOjpIVE1MJyk7CgogICAgICAgICMgSFRNTCBxdW90aW5nCiAgICAgICAgJEZBUURhdGF7JEZpZWxkfSA9ICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoCiAgICAgICAgICAgIE5ld0xpbmUgICAgICAgID0+IDAsCiAgICAgICAgICAgIFRleHQgICAgICAgICAgID0+ICRGQVFEYXRheyRGaWVsZH0sCiAgICAgICAgICAgIFZNYXggICAgICAgICAgID0+IDUwMDAsCiAgICAgICAgICAgIEhUTUxSZXN1bHRNb2RlID0+IDEsCiAgICAgICAgICAgIExpbmtGZWF0dXJlICAgID0+IDEsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNldCB2b3RpbmcgcmVzdWx0cwogICAgJFBhcmFte1ZvdGluZ1Jlc3VsdENvbG9yfSA9ICRMYXlvdXRPYmplY3QtPkdldEZBUUl0ZW1Wb3RpbmdSYXRlQ29sb3IoCiAgICAgICAgUmF0ZSA9PiAkRkFRRGF0YXtWb3RlUmVzdWx0fSwKICAgICk7CgogICAgaWYgKCAhJFBhcmFte1ZvdGluZ1Jlc3VsdENvbG9yfSB8fCAkRkFRRGF0YXtWb3Rlc30gZXEgJzAnICkgewogICAgICAgICRQYXJhbXtWb3RpbmdSZXN1bHRDb2xvcn0gPSAnR3JheSc7CiAgICB9CgogICAgIyBzaG93IGJhY2sgbGluawogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnQmFjaycsCiAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgKTsKCiAgICAjIGdldCBtdWx0aS1sYW5ndWFnZSBkZWZhdWx0IG9wdGlvbgogICAgbXkgJE11bHRpTGFuZ3VhZ2UgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6TXVsdGlMYW5ndWFnZScpOwoKICAgICMgc2hvdyBsYW5ndWFnZQogICAgaWYgKCRNdWx0aUxhbmd1YWdlKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0xhbmd1YWdlJywKICAgICAgICAgICAgRGF0YSA9PiB7JUZBUURhdGF9LAogICAgICAgICk7CiAgICB9CgogICAgIyBzaG93IHZvdGVzCiAgICBpZiAoJFZvdGluZykgewoKICAgICAgICAjIGFsd2F5cyBkaXNwbGF5cyBWb3RlcyByZXN1bHQgZXZlbiBpZiBpdHMgMAogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdWaWV3Vm90ZXMnLAogICAgICAgICAgICBEYXRhID0+IHslRkFRRGF0YX0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNob3cgRkFRIHBhdGgKICAgIG15ICRTaG93RkFRUGF0aCA9ICRMYXlvdXRPYmplY3QtPkZBUVBhdGhTaG93KAogICAgICAgIEZBUU9iamVjdCAgID0+ICRGQVFPYmplY3QsCiAgICAgICAgQ2F0ZWdvcnlJRCAgPT4gJEZBUURhdGF7Q2F0ZWdvcnlJRH0sCiAgICAgICAgUGF0aEZvckl0ZW0gPT4gMSwKICAgICAgICBVc2VySUQgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwogICAgaWYgKCRTaG93RkFRUGF0aCkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdGQVFQYXRoSXRlbUVsZW1lbnQnLAogICAgICAgICAgICBEYXRhID0+IHslRkFRRGF0YX0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNob3cga2V5d29yZHMgYXMgc2VhcmNoIGxpbmtzCiAgICBpZiAoICRGQVFEYXRhe0tleXdvcmRzfSApIHsKCiAgICAgICAgIyByZXBsYWNlIGNvbW1hcyBhbmQgc2VtaWNvbG9ucwogICAgICAgICRGQVFEYXRhe0tleXdvcmRzfSA9fiBzLywvIC9nOwogICAgICAgICRGQVFEYXRhe0tleXdvcmRzfSA9fiBzLzsvIC9nOwoKICAgICAgICBteSBAS2V5d29yZHMgPSBzcGxpdCAvXHMrLywgJEZBUURhdGF7S2V5d29yZHN9OwogICAgICAgIGZvciBteSAkS2V5d29yZCAoQEtleXdvcmRzKSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnS2V5d29yZHMnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgS2V5d29yZCA9PiAkS2V5d29yZCwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgb3V0cHV0IHJhdGluZyBzdGFycwogICAgaWYgKCRWb3RpbmcpIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5GQVFSYXRpbmdTdGFyc1Nob3coCiAgICAgICAgICAgIFZvdGVSZXN1bHQgPT4gJEZBUURhdGF7Vm90ZVJlc3VsdH0sCiAgICAgICAgICAgIFZvdGVzICAgICAgPT4gJEZBUURhdGF7Vm90ZXN9LAogICAgICAgICk7CiAgICB9CgogICAgIyBvdXRwdXQgYXR0YWNobWVudHMgaWYgYW55CiAgICBteSBAQXR0YWNobWVudEluZGV4ID0gJEZBUU9iamVjdC0+QXR0YWNobWVudEluZGV4KAogICAgICAgIEl0ZW1JRCAgICAgPT4gJEdldFBhcmFte0l0ZW1JRH0sCiAgICAgICAgU2hvd0lubGluZSA9PiAwLAogICAgICAgIFVzZXJJRCAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIG91dHB1dCBhdHRhY2htZW50cwogICAgaWYgKEBBdHRhY2htZW50SW5kZXgpIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnQXR0YWNobWVudEhlYWRlcicsCiAgICAgICAgKTsKICAgICAgICBmb3IgbXkgJEF0dGFjaG1lbnQgKEBBdHRhY2htZW50SW5kZXgpIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdBdHRhY2htZW50Um93JywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICVGQVFEYXRhLAogICAgICAgICAgICAgICAgICAgICV7JEF0dGFjaG1lbnR9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBzaG93IG1lc3NhZ2UgYWJvdXQgbGlua3MgaW4gaWZyYW1lcywgaWYgdXNlciBkaWRuJ3QgY2xvc2UgaXQgYWxyZWFkeQogICAgaWYgKCAhJFNlbGYtPntEb05vdFNob3dCcm93c2VyTGlua01lc3NhZ2V9ICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdCcm93c2VyTGlua01lc3NhZ2UnLAogICAgICAgICk7CiAgICB9CgogICAgIyBzaG93IEZBUSBDb250ZW50CiAgICAkTGF5b3V0T2JqZWN0LT5GQVFDb250ZW50U2hvdygKICAgICAgICBGQVFPYmplY3QgICAgICAgPT4gJEZBUU9iamVjdCwKICAgICAgICBJbnRlcmZhY2VTdGF0ZXMgPT4gJEludGVyZmFjZVN0YXRlcywKICAgICAgICBGQVFEYXRhICAgICAgICAgPT4geyVGQVFEYXRhfSwKICAgICAgICBVc2VySUQgICAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGdldCBjb25maWcgb2YgZnJvbnRlbmQgbW9kdWxlCiAgICBteSAkQ29uZmlnID0gJENvbmZpZ09iamVjdC0+R2V0KCJGQVE6OkZyb250ZW5kOjokU2VsZi0+e0FjdGlvbn0iKTsKCiAgICAjIGdldCB0aGUgZHluYW1pYyBmaWVsZHMgZm9yIHRoaXMgc2NyZWVuCiAgICBteSAkRHluYW1pY0ZpZWxkID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpLT5EeW5hbWljRmllbGRMaXN0R2V0KAogICAgICAgIFZhbGlkICAgICAgID0+IDEsCiAgICAgICAgT2JqZWN0VHlwZSAgPT4gJ0ZBUScsCiAgICAgICAgRmllbGRGaWx0ZXIgPT4gJENvbmZpZy0+e0R5bmFtaWNGaWVsZH0gfHwge30sCiAgICApOwoKICAgIG15ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZCcpOwoKICAgIERZTkFNSUNGSUVMRDoKICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHskRHluYW1pY0ZpZWxkfSApIHsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CgogICAgICAgIG15ICRWYWx1ZSA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5WYWx1ZUdldCgKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgIE9iamVjdElEICAgICAgICAgICA9PiAkR2V0UGFyYW17SXRlbUlEfSwKICAgICAgICApOwoKICAgICAgICAjIGdldCBwcmludCBzdHJpbmcgZm9yIHRoaXMgZHluYW1pYyBmaWVsZAogICAgICAgIG15ICRWYWx1ZVN0cmcgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+RGlzcGxheVZhbHVlUmVuZGVyKAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICRWYWx1ZSwKICAgICAgICAgICAgVmFsdWVNYXhDaGFycyAgICAgID0+IDI1MCwKICAgICAgICAgICAgTGF5b3V0T2JqZWN0ICAgICAgID0+ICRMYXlvdXRPYmplY3QsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJExhYmVsID0gJER5bmFtaWNGaWVsZENvbmZpZy0+e0xhYmVsfTsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0ZBUUR5bmFtaWNGaWVsZCcsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgTGFiZWwgPT4gJExhYmVsLAogICAgICAgICAgICAgICAgVmFsdWUgPT4gJFZhbHVlU3RyZy0+e1ZhbHVlfSwKICAgICAgICAgICAgICAgIFRpdGxlID0+ICRWYWx1ZVN0cmctPntUaXRsZX0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBleGFtcGxlIG9mIGR5bmFtaWMgZmllbGRzIG9yZGVyIGN1c3RvbWl6YXRpb24KICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnRkFRRHluYW1pY0ZpZWxkXycgLiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0sCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgTGFiZWwgPT4gJExhYmVsLAogICAgICAgICAgICAgICAgVmFsdWUgPT4gJFZhbHVlU3RyZy0+e1ZhbHVlfSwKICAgICAgICAgICAgICAgIFRpdGxlID0+ICRWYWx1ZVN0cmctPntUaXRsZX0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNob3cgRkFRIFZvdGluZwogICAgaWYgKCRWb3RpbmcpIHsKCiAgICAgICAgIyBnZXQgdm90aW5nIGNvbmZpZwogICAgICAgIG15ICRTaG93Vm90aW5nQ29uZmlnID0gJENvbmZpZ09iamVjdC0+R2V0KCdGQVE6Okl0ZW06OlZvdGluZzo6U2hvdycpOwogICAgICAgIGlmICggJFNob3dWb3RpbmdDb25maWctPnsgJEludGVyZmFjZS0+e05hbWV9IH0gKSB7CgogICAgICAgICAgICAjIGNoZWNrIGlmIHRoZSB1c2VyIGFscmVhZHkgdm90ZWQgYWZ0ZXIgbGFzdCBjaGFuZ2UKICAgICAgICAgICAgaWYgKCAhJEFscmVhZHlWb3RlZCApIHsKICAgICAgICAgICAgICAgICRTZWxmLT5fRkFRVm90aW5nKCBGQVFEYXRhID0+IHslRkFRRGF0YX0gKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIGxvZyBhY2Nlc3MgdG8gdGhpcyBGQVEgaXRlbQogICAgJEZBUU9iamVjdC0+RkFRTG9nQWRkKAogICAgICAgIEl0ZW1JRCAgICA9PiAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnSXRlbUlEJyApLAogICAgICAgIEludGVyZmFjZSA9PiAkSW50ZXJmYWNlLT57TmFtZX0sCiAgICAgICAgVXNlcklEICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdDdXN0b21lckZBUVpvb20nLAogICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgICVGQVFEYXRhLAogICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICB9LAogICAgKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Q3VzdG9tZXJGb290ZXIoKTsKCiAgICByZXR1cm4gJE91dHB1dDsKfQoKc3ViIF9GQVFWb3RpbmcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlRkFRRGF0YSA9ICV7ICRQYXJhbXtGQVFEYXRhfSB9OwoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnRkFRVm90aW5nJywKICAgICAgICBEYXRhID0+IHslRkFRRGF0YX0sCiAgICApOwoKICAgICMgZ2V0IFZvdGluZyByYXRlcyBzZXR0aW5nCiAgICBteSAkVm90aW5nUmF0ZXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0ZBUTo6SXRlbTo6Vm90aW5nOjpSYXRlcycpOwogICAgZm9yIG15ICRSYXRlVmFsdWUgKCBzb3J0IHsgJGEgPD0+ICRiIH0ga2V5cyAleyRWb3RpbmdSYXRlc30gKSB7CgogICAgICAgICMgY3JlYXRlIGRhdGEgc3RydWN0dXJlIGZvciBvdXRwdXQKICAgICAgICBteSAlRGF0YSA9ICgKICAgICAgICAgICAgVmFsdWUgPT4gJFJhdGVWYWx1ZSwKICAgICAgICAgICAgVGl0bGUgPT4gJFZvdGluZ1JhdGVzLT57JFJhdGVWYWx1ZX0sCiAgICAgICAgKTsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0ZBUVZvdGluZ1JhdGVSb3cnLAogICAgICAgICAgICBEYXRhID0+IHslRGF0YX0sCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gMTsKfQoKMTsK</File>
        <File Location="Kernel/Modules/PublicFAQ.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6UHVibGljRkFROwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkUGFyYW1PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CiAgICBteSAkUmVkaXJlY3QgICAgPSAkUGFyYW1PYmplY3QtPlJlcXVlc3RVUkkoKTsKCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgIGlmICgkUmVkaXJlY3QpIHsKICAgICAgICAkUmVkaXJlY3QgPX4gc3tQdWJsaWNGQVF9e1B1YmxpY0ZBUVpvb219eG1zOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJFJlZGlyZWN0ID0gJExheW91dE9iamVjdC0+e0Jhc2VsaW5rfQogICAgICAgICAgICAuICdBY3Rpb249UHVibGljRkFRWm9vbTtJdGVtSUQ9JwogICAgICAgICAgICAuICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdJdGVtSUQnICk7CiAgICB9CgogICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgIE9QID0+ICRSZWRpcmVjdCwKICAgICk7Cn0KCjE7Cg==</File>
        <File Location="Kernel/Modules/PublicFAQExplorer.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6UHVibGljRkFRRXhwbG9yZXI7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSBLZXJuZWw6Okxhbmd1YWdlIHF3KFRyYW5zbGF0YWJsZSk7Cgp1c2UgTUlNRTo6QmFzZTY0IHF3KCk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgc2V0IFVzZXJJRCB0byByb290IGJlY2F1c2UgaW4gcHVibGljIGludGVyZmFjZSB0aGVyZSBpcyBubyB1c2VyCiAgICAkU2VsZi0+e1VzZXJJRH0gPSAxOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICMgZ2V0IGNvbmZpZyBvZiBmcm9udGVuZCBtb2R1bGUKICAgIG15ICRDb25maWcgPSAkQ29uZmlnT2JqZWN0LT5HZXQoIkZBUTo6RnJvbnRlbmQ6OiRTZWxmLT57QWN0aW9ufSIpOwoKICAgIG15ICRQYXJhbU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKCiAgICAjIGdldCBjb25maWcgZGF0YQogICAgbXkgJFN0YXJ0SGl0ICAgICAgICA9IGludCggJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1N0YXJ0SGl0JyApIHx8IDEgKTsKICAgIG15ICRTZWFyY2hMaW1pdCAgICAgPSAkQ29uZmlnLT57U2VhcmNoTGltaXR9ICAgICB8fCAyMDA7CiAgICBteSAkU2VhcmNoUGFnZVNob3duID0gJENvbmZpZy0+e1NlYXJjaFBhZ2VTaG93bn0gfHwgMzsKICAgIG15ICRTb3J0QnkgICAgICAgICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnU29ydEJ5JyApCiAgICAgICAgfHwgJENvbmZpZy0+eydTb3J0Qnk6OkRlZmF1bHQnfQogICAgICAgIHx8ICdGQVFJRCc7CiAgICBteSAkT3JkZXJCeSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdPcmRlcicgKQogICAgICAgIHx8ICRDb25maWctPnsnT3JkZXI6OkRlZmF1bHQnfQogICAgICAgIHx8ICdEb3duJzsKCiAgICAjIGdldCBJdGVtIElECiAgICBteSAkSXRlbUlEID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0l0ZW1JRCcgKSB8fCAwOwoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBjaGVjayBpZiBJdGVtSUQgcGFyYW1ldGVyIHdhcyBzZW50IGFuZCByZWRpcmVjdCB0byBGQVEgYXJ0aWNsZSB6b29tIHNjcmVlbgogICAgaWYgKCRJdGVtSUQpIHsKCiAgICAgICAgIyByZWRpcmVjdCB0byBGQVEgem9vbQogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCggT1AgPT4gJ0FjdGlvbj1QdWJsaWNGQVFab29tO0l0ZW1JRD0nIC4gJEl0ZW1JRCApOwogICAgfQoKICAgIG15ICRDYXRlZ29yeUlEID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0NhdGVnb3J5SUQnICkgfHwgMDsKCiAgICAjIGNoZWNrIGZvciBub24gbnVtZXJpYyBDYXRlZ29yeUlECiAgICBpZiAoICRDYXRlZ29yeUlEICF+IC9cZCsvICkgewogICAgICAgICRDYXRlZ29yeUlEID0gMDsKICAgIH0KCiAgICAjIGdldCBjYXRlZ29yeSBieSBuYW1lCiAgICBteSAkQ2F0ZWdvcnkgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnQ2F0ZWdvcnknICkgfHwgJyc7CgogICAgbXkgJEZBUU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpGQVEnKTsKCiAgICAjIHRyeSB0byBnZXQgdGhlIGNhdGVnb3J5IElEIGZyb20gY2F0ZWdvcnkgbmFtZSBpZiBubyBjYXRlZ29yeSBJRAogICAgaWYgKCAkQ2F0ZWdvcnkgJiYgISRDYXRlZ29yeUlEICkgewoKICAgICAgICAjIGdldCB0aGUgY2F0ZWdvcnkgdHJlZQogICAgICAgIG15ICRDYXRlZ29yeVRyZWUgPSAkRkFRT2JqZWN0LT5DYXRlZ29yeVRyZWVMaXN0KAogICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIHJldmVyc2UgdGhlIGhhcyBmb3IgZWFzeSBsb29rdXAKICAgICAgICBteSAlUmV2ZXJzZUNhdGVnb3J5VHJlZSA9IHJldmVyc2UgJXskQ2F0ZWdvcnlUcmVlfTsKCiAgICAgICAgJENhdGVnb3J5SUQgPSAkUmV2ZXJzZUNhdGVnb3J5VHJlZXskQ2F0ZWdvcnl9IHx8IDA7CiAgICB9CgogICAgIyB0cnkgdG8gZ2V0IHRoZSBjYXRlZ29yeSBkYXRhCiAgICBteSAlQ2F0ZWdvcnlEYXRhOwogICAgaWYgKCRDYXRlZ29yeUlEKSB7CgogICAgICAgICMgZ2V0IGNhdGVnb3J5IGRhdGEKICAgICAgICAlQ2F0ZWdvcnlEYXRhID0gJEZBUU9iamVjdC0+Q2F0ZWdvcnlHZXQoCiAgICAgICAgICAgIENhdGVnb3J5SUQgPT4gJENhdGVnb3J5SUQsCiAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CiAgICAgICAgaWYgKCAhJUNhdGVnb3J5RGF0YSApIHsKCiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5DdXN0b21lck5vUGVybWlzc2lvbigKICAgICAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgYWRkIFJTUyBmZWVkIGxpbmsgZm9yIG5ldyBGQVEgYXJ0aWNsZXMgaW4gdGhlIGJyb3dzZXIgVVJMIGJhcgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnTWV0YUxpbmsnLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICBSZWwgICA9PiAnYWx0ZXJuYXRlJywKICAgICAgICAgICAgVHlwZSAgPT4gJ2FwcGxpY2F0aW9uL3Jzcyt4bWwnLAogICAgICAgICAgICBUaXRsZSA9PgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdGQVEgQXJ0aWNsZXMgKG5ldyBjcmVhdGVkKScpLAogICAgICAgICAgICBIcmVmID0+ICRMYXlvdXRPYmplY3QtPntCYXNlbGlua30gLiAnQWN0aW9uPVB1YmxpY0ZBUVJTUztUeXBlPUNyZWF0ZWQnLAogICAgICAgIH0sCiAgICApOwoKICAgICMgYWRkIFJTUyBmZWVkIGxpbmsgZm9yIGNoYW5nZWQgRkFRIGFydGljbGVzIGluIHRoZSBicm93c2VyIFVSTCBiYXIKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ01ldGFMaW5rJywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgUmVsICAgPT4gJ2FsdGVybmF0ZScsCiAgICAgICAgICAgIFR5cGUgID0+ICdhcHBsaWNhdGlvbi9yc3MreG1sJywKICAgICAgICAgICAgVGl0bGUgPT4KICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnRkFRIEFydGljbGVzIChyZWNlbnRseSBjaGFuZ2VkKScpLAogICAgICAgICAgICBIcmVmID0+ICRMYXlvdXRPYmplY3QtPntCYXNlbGlua30gLiAnQWN0aW9uPVB1YmxpY0ZBUVJTUztUeXBlPUNoYW5nZWQnLAogICAgICAgIH0sCiAgICApOwoKICAgICMgYWRkIFJTUyBmZWVkIGxpbmsgZm9yIFRvcC0xMCBGQVEgYXJ0aWNsZXMgaW4gdGhlIGJyb3dzZXIgVVJMIGJhcgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnTWV0YUxpbmsnLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICBSZWwgICA9PiAnYWx0ZXJuYXRlJywKICAgICAgICAgICAgVHlwZSAgPT4gJ2FwcGxpY2F0aW9uL3Jzcyt4bWwnLAogICAgICAgICAgICBUaXRsZSA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ0ZBUSBBcnRpY2xlcyAoVG9wIDEwKScpLAogICAgICAgICAgICBIcmVmICA9PiAkTGF5b3V0T2JqZWN0LT57QmFzZWxpbmt9IC4gJ0FjdGlvbj1QdWJsaWNGQVFSU1M7VHlwZT1Ub3AxMCcsCiAgICAgICAgfSwKICAgICk7CgogICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkN1c3RvbWVySGVhZGVyKCk7CgogICAgbXkgJENhdGVnb3J5SURzUmVmOwogICAgbXkgJVNlYXJjaDsKICAgIG15ICVGQVFTZWFyY2g7CgogICAgIyBzaG93IHNlYXJjaCByZXN1bHRzCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSAmJiAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ1NlYXJjaCcgKSB7CiAgICAgICAgbXkgJFNlYXJjaE5hbWUgPSBUcmFuc2xhdGFibGUoIlNlYXJjaCIpIC4gIjoiOwogICAgICAgIGZvciBteSAkTW9kZSAocXcvS2V5d29yZCBXaGF0LykgewogICAgICAgICAgICBteSAkU3RyaW5nID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJE1vZGUgKTsKICAgICAgICAgICAgaWYgKCRTdHJpbmcpIHsKICAgICAgICAgICAgICAgICRTZWFyY2h7JE1vZGV9ICAgID0gJFN0cmluZzsKICAgICAgICAgICAgICAgICRGQVFTZWFyY2h7JE1vZGV9ID0gIiokU3RyaW5nKiI7CiAgICAgICAgICAgICAgICBteSAkTW9kZU5hbWUgPSAkTW9kZSBlcSAnV2hhdCcgPyAnRnVsbHRleHQnIDogJE1vZGU7CiAgICAgICAgICAgICAgICAkU2VhcmNoTmFtZSAuPSAiICIgLiBUcmFuc2xhdGFibGUoJE1vZGVOYW1lKSAuICIgXCIkU3RyaW5nXCI7IjsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBvdXRwdXQgY2F0ZWdvcnkgcm9vdCAoIGRvbmUgaW4gTGF5b3V0T2JqZWN0IGZvciBub24gc2VhcmNoZXMgKQogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdGQVFQYXRoQ2F0ZWdvcnlFbGVtZW50JywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgID0+ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpEZWZhdWx0OjpSb290Q2F0ZWdvcnlOYW1lJyksCiAgICAgICAgICAgICAgICBDYXRlZ29yeUlEID0+IDAsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBvdXRwdXQgc2VhcmNoIGluZm9ybWF0aW9uCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0ZBUVBhdGhDYXRlZ29yeUVsZW1lbnROb0xpbmsnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIE5hbWUgPT4gJFNlYXJjaE5hbWUsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBkaXNhYmxlIGNhdGVnb3J5IHNwZWNpZmljIHN0dWZmCiAgICAgICAgJENhdGVnb3J5SUQgPSAtMTsKICAgIH0KCiAgICAjIG5vIHNlYXJjaCAoIHN0YW5kYXJkIG1vZGUgKQogICAgZWxzZSB7CiAgICAgICAgIyBzaG93IEZBUSBwYXRoCiAgICAgICAgJExheW91dE9iamVjdC0+RkFRUGF0aFNob3coCiAgICAgICAgICAgIEZBUU9iamVjdCAgPT4gJEZBUU9iamVjdCwKICAgICAgICAgICAgQ2F0ZWdvcnlJRCA9PiAkQ2F0ZWdvcnlJRCwKICAgICAgICAgICAgVXNlcklEICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgYWxsIGRpcmVjdCBzdWJjYXRlZ29yaWVzIG9mIHRoZSBzZWxlY3RlZCBjYXRlZ29yeQogICAgICAgICRDYXRlZ29yeUlEc1JlZiA9ICRGQVFPYmplY3QtPlB1YmxpY0NhdGVnb3J5U2VhcmNoKAogICAgICAgICAgICBQYXJlbnRJRCA9PiAkQ2F0ZWdvcnlJRCwKICAgICAgICAgICAgTW9kZSAgICAgPT4gJ1B1YmxpYycsCiAgICAgICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IGludGVyZmFjZSBzdGF0ZSBsaXN0CiAgICBteSAkSW50ZXJmYWNlU3RhdGVzID0gJEZBUU9iamVjdC0+U3RhdGVUeXBlTGlzdCgKICAgICAgICBUeXBlcyAgPT4gJENvbmZpZ09iamVjdC0+R2V0KCdGQVE6OlB1YmxpYzo6U3RhdGVUeXBlcycpLAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgY2hlY2sgaWYgdGhlcmUgYXJlIHN1YmNhdGVnb3JpZXMKICAgIGlmICggJENhdGVnb3J5SURzUmVmICYmIHJlZiAkQ2F0ZWdvcnlJRHNSZWYgZXEgJ0FSUkFZJyAmJiBAeyRDYXRlZ29yeUlEc1JlZn0gKSB7CgogICAgICAgICMgc2hvdyBzdWJjYXRlZ29yaWVzIGxpc3QKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnU3ViY2F0ZWdvcmllcycsCiAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgKTsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdSZXN1bHQnLAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CgogICAgICAgICMgc2hvdyBkYXRhIGZvciBlYWNoIHN1YmNhdGVnb3J5CiAgICAgICAgZm9yIG15ICRTdWJDYXRlZ29yeUlEICggQHskQ2F0ZWdvcnlJRHNSZWZ9ICkgewoKICAgICAgICAgICAgbXkgJVN1YkNhdGVnb3J5RGF0YSA9ICRGQVFPYmplY3QtPkNhdGVnb3J5R2V0KAogICAgICAgICAgICAgICAgQ2F0ZWdvcnlJRCA9PiAkU3ViQ2F0ZWdvcnlJRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBnZXQgdGhlIG51bWJlciBvZiBzdWJjYXRlZ29yaWVzIG9mIHRoaXMgc3ViY2F0ZWdvcnkKICAgICAgICAgICAgJFN1YkNhdGVnb3J5RGF0YXtTdWJDYXRlZ29yeUNvdW50fSA9ICRGQVFPYmplY3QtPkNhdGVnb3J5Q291bnQoCiAgICAgICAgICAgICAgICBQYXJlbnRJRHMgPT4gWyRTdWJDYXRlZ29yeUlEXSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGdldCB0aGUgbnVtYmVyIG9mIEZBUSBhcnRpY2xlcyBpbiB0aGlzIGNhdGVnb3J5CiAgICAgICAgICAgICRTdWJDYXRlZ29yeURhdGF7QXJ0aWNsZUNvdW50fSA9ICRGQVFPYmplY3QtPkZBUUNvdW50KAogICAgICAgICAgICAgICAgQ2F0ZWdvcnlJRHMgID0+IFskU3ViQ2F0ZWdvcnlJRF0sCiAgICAgICAgICAgICAgICBJdGVtU3RhdGVzICAgPT4gJEludGVyZmFjZVN0YXRlcywKICAgICAgICAgICAgICAgIE9ubHlBcHByb3ZlZCA9PiAxLAogICAgICAgICAgICAgICAgVmFsaWQgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBvdXRwdXQgdGhlIGNhdGVnb3J5IGRhdGEKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld1Jlc3VsdFJvdycsCiAgICAgICAgICAgICAgICBEYXRhID0+IHslU3ViQ2F0ZWdvcnlEYXRhfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBzZXQgZGVmYXVsdCBpbnRlcmZhY2Ugc2V0dGluZ3MKICAgIG15ICRJbnRlcmZhY2UgPSAkRkFRT2JqZWN0LT5TdGF0ZVR5cGVHZXQoCiAgICAgICAgTmFtZSAgID0+ICdwdWJsaWMnLAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgaW5jbHVkZSBDYXRlZ29yeSBpZiBub3QgaW4gYmFzZSBDYXRlZ29yeSAoMCksIG9yIHNlYXJjaCBtb2RlCiAgICBpZiAoICRDYXRlZ29yeUlEID4gMCApIHsKICAgICAgICAkRkFRU2VhcmNoe0NhdGVnb3J5SURzfSA9IFskQ2F0ZWdvcnlJRF07CiAgICB9CgogICAgIyBnZXQgdGhlIGxhdGVzdCBhcnRpY2xlcyBmb3IgdGhlIHJvb3QgY2F0ZWdvcnkgKGVsc2UgZW1wdHkpCiAgICBlbHNpZiAoICElU2VhcmNoICkgewogICAgICAgICRTb3J0QnkgICAgICA9ICdDaGFuZ2VkJzsKICAgICAgICAkT3JkZXJCeSAgICAgPSAnRG93bic7CiAgICAgICAgJFNlYXJjaExpbWl0ID0gMTA7CiAgICB9CgogICAgIyBzZWFyY2ggYWxsIEZBUSBhcnRpY2xlcyB3aXRoaW4gdGhlIGdpdmVuIGNhdGVnb3J5CiAgICBteSBAVmlld2FibGVJdGVtSURzID0gJEZBUU9iamVjdC0+RkFRU2VhcmNoKAogICAgICAgIE9yZGVyQnkgICAgICAgICAgPT4gWyRTb3J0QnldLAogICAgICAgIE9yZGVyQnlEaXJlY3Rpb24gPT4gWyRPcmRlckJ5XSwKICAgICAgICBMaW1pdCAgICAgICAgICAgID0+ICRTZWFyY2hMaW1pdCwKICAgICAgICBVc2VySUQgICAgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICBTdGF0ZXMgICAgICAgICAgID0+ICRJbnRlcmZhY2VTdGF0ZXMsCiAgICAgICAgSW50ZXJmYWNlICAgICAgICA9PiAkSW50ZXJmYWNlLAogICAgICAgICVGQVFTZWFyY2gsCiAgICApOwoKICAgICMgc2V0IHRoZSBTb3J0QnkgQ2xhc3MKICAgIG15ICRTb3J0Q2xhc3M7CgogICAgIyB0aGlzIHNldHMgdGhlIG9wcG9zaXRlIHRvIHRoZSBPcmRlckJ5IHBhcmFtZXRlcgogICAgaWYgKCAkT3JkZXJCeSBlcSAnRG93bicgKSB7CiAgICAgICAgJFNvcnRDbGFzcyA9ICdTb3J0QXNjZW5kaW5nJzsKICAgIH0KICAgIGVsc2lmICggJE9yZGVyQnkgZXEgJ1VwJyApIHsKICAgICAgICAkU29ydENsYXNzID0gJ1NvcnREZXNjZW5kaW5nJzsKICAgIH0KCiAgICAjIHNldCB0aGUgU29ydEJ5IENsYXNzIHRvIHRoZSBjb3JyZWN0IGZpZWxkCiAgICBteSAlQ1NTU29ydDsKICAgIG15ICRDU1NTb3J0QnkgPSAkU29ydEJ5IC4gJ1NvcnQnOwogICAgJENTU1NvcnR7JENTU1NvcnRCeX0gPSAkU29ydENsYXNzOwoKICAgIG15ICVOZXdPcmRlciA9ICgKICAgICAgICBEb3duID0+ICdVcCcsCiAgICAgICAgVXAgICA9PiAnRG93bicsCiAgICApOwoKICAgICMgc2hvdyB0aGUgRkFRIGFydGljbGUgbGlzdAogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnRkFRSXRlbUxpc3QnLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICBDYXRlZ29yeUlEID0+ICRDYXRlZ29yeUlELAogICAgICAgICAgICAlQ1NTU29ydCwKICAgICAgICAgICAgT3JkZXIgPT4gJE5ld09yZGVyeyRPcmRlckJ5fSwKICAgICAgICB9LAogICAgKTsKCiAgICAjIGdldCBtdWx0aSBsYW5ndWFnZSBkZWZhdWx0IG9wdGlvbgogICAgbXkgJE11bHRpTGFuZ3VhZ2UgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6TXVsdGlMYW5ndWFnZScpOwoKICAgICMgc2hvdyBsYW5ndWFnZSBoZWFkZXIKICAgIGlmICgkTXVsdGlMYW5ndWFnZSkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdIZWFkZXJMYW5ndWFnZScsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgQ2F0ZWdvcnlJRCA9PiAkQ2F0ZWdvcnlJRCwKICAgICAgICAgICAgICAgICVDU1NTb3J0LAogICAgICAgICAgICAgICAgT3JkZXIgPT4gJE5ld09yZGVyeyRPcmRlckJ5fSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgIG15ICRDb3VudGVyID0gMDsKICAgIGlmIChAVmlld2FibGVJdGVtSURzKSB7CgogICAgICAgICMgY3JlYXRlIGJhY2sgbGluayBmb3IgRkFRIFpvb20gc2NyZWVuCiAgICAgICAgbXkgJFpvb21CYWNrTGluayA9ICJBY3Rpb249UHVibGljRkFRRXhwbG9yZXI7Q2F0ZWdvcnlJRD0kQ2F0ZWdvcnlJRDsiCiAgICAgICAgICAgIC4gIlNvcnRCeT0kU29ydEJ5O09yZGVyPSRPcmRlckJ5O1N0YXJ0SGl0PSRTdGFydEhpdCI7CgogICAgICAgICMgZW5jb2RlIGJhY2sgbGluayB0byBCYXNlNjQgZm9yIGVhc3kgSFRNTCB0cmFuc3BvcnQKICAgICAgICAkWm9vbUJhY2tMaW5rID0gTUlNRTo6QmFzZTY0OjplbmNvZGVfYmFzZTY0KCRab29tQmFja0xpbmspOwoKICAgICAgICBmb3IgbXkgJEl0ZW1JRCAoQFZpZXdhYmxlSXRlbUlEcykgewoKICAgICAgICAgICAgJENvdW50ZXIrKzsKCiAgICAgICAgICAgICMgYnVpbGQgc2VhcmNoIHJlc3VsdAogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAkQ291bnRlciA+PSAkU3RhcnRIaXQKICAgICAgICAgICAgICAgICYmICRDb3VudGVyIDwgKCAkU2VhcmNoUGFnZVNob3duICsgJFN0YXJ0SGl0ICkKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewoKICAgICAgICAgICAgICAgIG15ICVGQVFEYXRhID0gJEZBUU9iamVjdC0+RkFRR2V0KAogICAgICAgICAgICAgICAgICAgIEl0ZW1JRCAgICAgPT4gJEl0ZW1JRCwKICAgICAgICAgICAgICAgICAgICBJdGVtRmllbGRzID0+IDAsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICRGQVFEYXRhe0NsZWFuVGl0bGV9ID0gJEZBUU9iamVjdC0+RkFRQXJ0aWNsZVRpdGxlQ2xlYW4oCiAgICAgICAgICAgICAgICAgICAgVGl0bGUgPT4gJEZBUURhdGF7VGl0bGV9LAogICAgICAgICAgICAgICAgICAgIFNpemUgID0+ICRDb25maWctPntUaXRsZVNpemV9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIGFkZCBibG9ja3MgdG8gdGVtcGxhdGUKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1JlY29yZCcsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICVGQVFEYXRhLAogICAgICAgICAgICAgICAgICAgICAgICBab29tQmFja0xpbmsgPT4gJFpvb21CYWNrTGluaywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIGFkZCBsYW5ndWFnZSBkYXRhCiAgICAgICAgICAgICAgICBpZiAoJE11bHRpTGFuZ3VhZ2UpIHsKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUmVjb3JkTGFuZ3VhZ2UnLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICVGQVFEYXRhLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBvdGhlcndpc2UgYSBubyBkYXRhIGZvdW5kIG1lc3NhZ2UgaXMgZGlzcGxheWVkCiAgICBlbHNlIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnTm9GQVFEYXRhRm91bmRNc2cnLAogICAgICAgICk7CiAgICB9CgogICAgbXkgJExpbmsgPSAnU29ydEJ5PScgLiAkTGF5b3V0T2JqZWN0LT5MaW5rRW5jb2RlKCRTb3J0QnkpIC4gJzsnOwogICAgJExpbmsgLj0gJ09yZGVyPScgLiAkTGF5b3V0T2JqZWN0LT5MaW5rRW5jb2RlKCRPcmRlckJ5KSAuICc7JzsKCiAgICBteSAkQWN0aW9uU3RyaW5nOwogICAgaWYgKCVTZWFyY2gpIHsKICAgICAgICAkQWN0aW9uU3RyaW5nID0gIkFjdGlvbj1QdWJsaWNGQVFFeHBsb3JlcjtTdWJhY3Rpb249U2VhcmNoOyI7CiAgICAgICAgaWYgKCAkRkFRU2VhcmNoe0NhdGVnb3J5SURzfSApIHsKICAgICAgICAgICAgJEFjdGlvblN0cmluZyAuPSAiQ2F0ZWdvcnlJRD0kQ2F0ZWdvcnlJRDsiOwogICAgICAgIH0KICAgICAgICBmb3IgbXkgJE1vZGUgKCBrZXlzICVTZWFyY2ggKSB7CiAgICAgICAgICAgICRBY3Rpb25TdHJpbmcgLj0gIiRNb2RlPSRTZWFyY2h7ICRNb2RlIH07IjsKICAgICAgICB9CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkQWN0aW9uU3RyaW5nID0gIkFjdGlvbj1QdWJsaWNGQVFFeHBsb3JlcjtDYXRlZ29yeUlEPSRDYXRlZ29yeUlEIjsKICAgIH0KCiAgICAjIGJ1aWxkIHNlYXJjaCBuYXZpZ2F0aW9uIGJhcgogICAgbXkgJVBhZ2VOYXYgPSAkTGF5b3V0T2JqZWN0LT5QYWdlTmF2QmFyKAogICAgICAgIExpbWl0ICAgICA9PiAkU2VhcmNoTGltaXQsCiAgICAgICAgU3RhcnRIaXQgID0+ICRTdGFydEhpdCwKICAgICAgICBQYWdlU2hvd24gPT4gJFNlYXJjaFBhZ2VTaG93biwKICAgICAgICBBbGxIaXRzICAgPT4gJENvdW50ZXIsCiAgICAgICAgQWN0aW9uICAgID0+ICJBY3Rpb249UHVibGljRkFRRXhwbG9yZXI7Q2F0ZWdvcnlJRD0kQ2F0ZWdvcnlJRCIsCiAgICAgICAgTGluayAgICAgID0+ICRMaW5rLAogICAgICAgIElEUHJlZml4ICA9PiAiUHVibGljRkFRRXhwbG9yZXIiLAogICAgKTsKCiAgICAjIHNob3cgZm9vdGVyIGZpbHRlciAtIHNob3cgb25seSBpZiBtb3JlIHRoZSBvbmUgcGFnZSBpcyBhdmFpbGFibGUKICAgIGlmICggZGVmaW5lZCAkUGFnZU5hdntUb3RhbEhpdHN9ICYmICggJFBhZ2VOYXZ7VG90YWxIaXRzfSA+ICRTZWFyY2hQYWdlU2hvd24gKSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnUGFnaW5hdGlvbicsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgJVBhZ2VOYXYsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICBteSAkU2VhcmNoQmFja0xpbmsgPSAiQWN0aW9uPVB1YmxpY0ZBUUV4cGxvcmVyO0NhdGVnb3J5SUQ9JENhdGVnb3J5SUQiOwoKICAgICMgZW5jb2RlIGJhY2sgbGluayB0byBCYXNlNjQgZm9yIGVhc3kgSFRNTCB0cmFuc3BvcnQKICAgICRTZWFyY2hCYWNrTGluayA9IE1JTUU6OkJhc2U2NDo6ZW5jb2RlX2Jhc2U2NCgkU2VhcmNoQmFja0xpbmspOwoKICAgICMgc2hvdyBRdWlja1NlYXJjaAogICAgJExheW91dE9iamVjdC0+RkFRU2hvd1F1aWNrU2VhcmNoKAogICAgICAgIE1vZGUgICAgICAgICAgICA9PiAnUHVibGljJywKICAgICAgICBJbnRlcmZhY2UgICAgICAgPT4gJEludGVyZmFjZSwKICAgICAgICBJbnRlcmZhY2VTdGF0ZXMgPT4gJEludGVyZmFjZVN0YXRlcywKICAgICAgICBTZWFyY2hCYWNrTGluayAgPT4gJFNlYXJjaEJhY2tMaW5rLAogICAgICAgIFVzZXJJRCAgICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgc2hvdyBsYXN0IGFkZGVkIGFuZCBsYXN0IHVwZGF0ZWQgYXJ0aWNsZXMKICAgIGZvciBteSAkVHlwZSAocXcoTGFzdENyZWF0ZSBMYXN0Q2hhbmdlKSkgewoKICAgICAgICBteSAkU2hvd09rID0gJExheW91dE9iamVjdC0+RkFRU2hvd0xhdGVzdE5ld3NCb3goCiAgICAgICAgICAgIEZBUU9iamVjdCAgICAgICA9PiAkRkFRT2JqZWN0LAogICAgICAgICAgICBUeXBlICAgICAgICAgICAgPT4gJFR5cGUsCiAgICAgICAgICAgIE1vZGUgICAgICAgICAgICA9PiAnUHVibGljJywKICAgICAgICAgICAgQ2F0ZWdvcnlJRCAgICAgID0+ICRDYXRlZ29yeUlELAogICAgICAgICAgICBJbnRlcmZhY2UgICAgICAgPT4gJEludGVyZmFjZSwKICAgICAgICAgICAgSW50ZXJmYWNlU3RhdGVzID0+ICRJbnRlcmZhY2VTdGF0ZXMsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKICAgICAgICBpZiAoICEkU2hvd09rICkgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oKTsKICAgICAgICB9CiAgICB9CgogICAgIyBzaG93IHRvcCB0ZW4gYXJ0aWNsZXMKICAgIG15ICRTaG93T2sgPSAkTGF5b3V0T2JqZWN0LT5GQVFTaG93VG9wMTAoCiAgICAgICAgRkFRT2JqZWN0ICAgICAgID0+ICRGQVFPYmplY3QsCiAgICAgICAgTW9kZSAgICAgICAgICAgID0+ICdQdWJsaWMnLAogICAgICAgIENhdGVnb3J5SUQgICAgICA9PiAkQ2F0ZWdvcnlJRCwKICAgICAgICBJbnRlcmZhY2UgICAgICAgPT4gJEludGVyZmFjZSwKICAgICAgICBJbnRlcmZhY2VTdGF0ZXMgPT4gJEludGVyZmFjZVN0YXRlcywKICAgICAgICBVc2VySUQgICAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKICAgIGlmICggISRTaG93T2sgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKCk7CiAgICB9CgogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdQdWJsaWNGQVFFeHBsb3JlcicsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICBDYXRlZ29yeUlEID0+ICRDYXRlZ29yeUlELAogICAgICAgICAgICAlQ2F0ZWdvcnlEYXRhLAogICAgICAgIH0sCiAgICApOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5DdXN0b21lckZvb3RlcigpOwoKICAgIHJldHVybiAkT3V0cHV0Owp9CgoxOwo=</File>
        <File Location="Kernel/Modules/PublicFAQPrint.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6UHVibGljRkFRUHJpbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpMYW5ndWFnZSAgICAgICAgICAgICAgcXcoVHJhbnNsYXRhYmxlKTsKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIHNldCBVc2VySUQgdG8gcm9vdCBiZWNhdXNlIGluIHB1YmxpYyBpbnRlcmZhY2UgdGhlcmUgaXMgbm8gdXNlcgogICAgJFNlbGYtPntVc2VySUR9ID0gMTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkT3V0cHV0OwoKICAgICMgZ2V0IHBhcmFtcwogICAgbXkgJUdldFBhcmFtOwogICAgJEdldFBhcmFte0l0ZW1JRH0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0JyktPkdldFBhcmFtKCBQYXJhbSA9PiAnSXRlbUlEJyApOwoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgaWYgKCAhJEdldFBhcmFte0l0ZW1JRH0gKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkN1c3RvbWVyRmF0YWxFcnJvcigKICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ05vIEl0ZW1JRCBpcyBnaXZlbiEnKSwKICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICk7CiAgICB9CgogICAgbXkgJEZBUU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpGQVEnKTsKCiAgICBteSAlRkFRRGF0YSA9ICRGQVFPYmplY3QtPkZBUUdldCgKICAgICAgICBJdGVtSUQgICAgID0+ICRHZXRQYXJhbXtJdGVtSUR9LAogICAgICAgIEl0ZW1GaWVsZHMgPT4gMSwKICAgICAgICBVc2VySUQgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CiAgICBpZiAoICElRkFRRGF0YSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Q3VzdG9tZXJGYXRhbEVycm9yKCk7CiAgICB9CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBnZXQgaW50ZXJmYWNlIHN0YXRlIGxpc3QKICAgIG15ICRJbnRlcmZhY2VTdGF0ZXMgPSAkRkFRT2JqZWN0LT5TdGF0ZVR5cGVMaXN0KAogICAgICAgIFR5cGVzICA9PiAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6UHVibGljOjpTdGF0ZVR5cGVzJyksCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBzaG93IG5vIHBlcm1pc3Npb24gZXJyb3IKICAgIGlmICgKICAgICAgICAhJEZBUURhdGF7QXBwcm92ZWR9CiAgICAgICAgfHwgISRJbnRlcmZhY2VTdGF0ZXMtPnsgJEZBUURhdGF7U3RhdGVUeXBlSUR9IH0KICAgICAgICApCiAgICB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkN1c3RvbWVyTm9QZXJtaXNzaW9uKAogICAgICAgICAgICBXaXRoSGVhZGVyID0+ICd5ZXMnLAogICAgICAgICk7CiAgICB9CgogICAgIyBzZXQgZGVmYXVsdCBpbnRlcmZhY2Ugc2V0dGluZ3MKICAgIG15ICRJbnRlcmZhY2UgPSAkRkFRT2JqZWN0LT5TdGF0ZVR5cGVHZXQoCiAgICAgICAgTmFtZSAgID0+ICdwdWJsaWMnLAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgcHJlcGFyZSBmaWVsZHMgZGF0YQogICAgRklFTEQ6CiAgICBmb3IgbXkgJEZpZWxkIChxdyhGaWVsZDEgRmllbGQyIEZpZWxkMyBGaWVsZDQgRmllbGQ1IEZpZWxkNikpIHsKICAgICAgICBuZXh0IEZJRUxEIGlmICEkRkFRRGF0YXskRmllbGR9OwoKICAgICAgICAjIHJld3JpdGUgbGlua3MgdG8gZW1iZWRkZWQgaW1hZ2VzIGZvciBjdXN0b21lciBhbmQgcHVibGljIGludGVyZmFjZQogICAgICAgIGlmICggJEludGVyZmFjZS0+e05hbWV9IGVxICdwdWJsaWMnICkgewogICAgICAgICAgICAkRkFRRGF0YXskRmllbGR9CiAgICAgICAgICAgICAgICA9fiBzeyBpbmRleFsuXXBsIFs/XSBBY3Rpb249QWdlbnRGQVFab29tIH17cHVibGljLnBsP0FjdGlvbj1QdWJsaWNGQVFab29tfWd4bXM7CiAgICAgICAgfQoKICAgICAgICAjIG5vIHF1b3RpbmcgaWYgSFRNTCB2aWV3IGlzIGVuYWJsZWQKICAgICAgICBuZXh0IEZJRUxEIGlmICRDb25maWdPYmplY3QtPkdldCgnRkFROjpJdGVtOjpIVE1MJyk7CgogICAgICAgICMgSFRNTCBxdW90aW5nCiAgICAgICAgJEZBUURhdGF7JEZpZWxkfSA9ICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoCiAgICAgICAgICAgIE5ld0xpbmUgICAgICAgID0+IDAsCiAgICAgICAgICAgIFRleHQgICAgICAgICAgID0+ICRGQVFEYXRheyRGaWVsZH0sCiAgICAgICAgICAgIFZNYXggICAgICAgICAgID0+IDUwMDAsCiAgICAgICAgICAgIEhUTUxSZXN1bHRNb2RlID0+IDEsCiAgICAgICAgICAgIExpbmtGZWF0dXJlICAgID0+IDEsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdlbmVyYXRlIFBERiBvdXRwdXQKICAgIG15ICRUaW1lID0gJExheW91dE9iamVjdC0+e1RpbWV9OwogICAgbXkgJVBhZ2U7CgogICAgIyBnZXQgbWF4aW11bSBudW1iZXIgb2YgcGFnZXMKICAgICRQYWdle01heFBhZ2VzfSA9ICRDb25maWdPYmplY3QtPkdldCgnUERGOjpNYXhQYWdlcycpOwogICAgaWYgKCAhJFBhZ2V7TWF4UGFnZXN9IHx8ICRQYWdle01heFBhZ2VzfSA8IDEgfHwgJFBhZ2V7TWF4UGFnZXN9ID4gMTAwMCApIHsKICAgICAgICAkUGFnZXtNYXhQYWdlc30gPSAxMDA7CiAgICB9CiAgICBteSAkSGVhZGVyUmlnaHQgID0gJENvbmZpZ09iamVjdC0+R2V0KCdGQVE6OkZBUUhvb2snKSAuICRGQVFEYXRhe051bWJlcn07CiAgICBteSAkSGVhZGxpbmVMZWZ0ID0gJEhlYWRlclJpZ2h0OwogICAgbXkgJFRpdGxlICAgICAgICA9ICRIZWFkZXJSaWdodDsKICAgIGlmICggJEZBUURhdGF7VGl0bGV9ICkgewogICAgICAgICRIZWFkbGluZUxlZnQgPSAkRkFRRGF0YXtUaXRsZX07CiAgICAgICAgJFRpdGxlIC49ICcgLyAnIC4gJEZBUURhdGF7VGl0bGV9OwogICAgfQoKICAgICRQYWdle01hcmdpblRvcH0gICAgPSAzMDsKICAgICRQYWdle01hcmdpblJpZ2h0fSAgPSA0MDsKICAgICRQYWdle01hcmdpbkJvdHRvbX0gPSA0MDsKICAgICRQYWdle01hcmdpbkxlZnR9ICAgPSA0MDsKICAgICRQYWdle0hlYWRlclJpZ2h0fSAgPSAkSGVhZGVyUmlnaHQ7CiAgICAkUGFnZXtQYWdlVGV4dH0gICAgID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdQYWdlJyk7CiAgICAkUGFnZXtQYWdlQ291bnR9ICAgID0gMTsKCiAgICBteSAkUERGT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlBERicpOwoKICAgICMgY3JlYXRlIG5ldyBQREYgZG9jdW1lbnQKICAgICRQREZPYmplY3QtPkRvY3VtZW50TmV3KAogICAgICAgIFRpdGxlICA9PiAkQ29uZmlnT2JqZWN0LT5HZXQoJ1Byb2R1Y3QnKSAuICc6ICcgLiAkVGl0bGUsCiAgICAgICAgRW5jb2RlID0+ICRMYXlvdXRPYmplY3QtPntVc2VyQ2hhcnNldH0sCiAgICApOwoKICAgICMgY3JlYXRlIGZpcnN0IFBERiBwYWdlCiAgICAkUERGT2JqZWN0LT5QYWdlTmV3KAogICAgICAgICVQYWdlLAogICAgICAgIEZvb3RlclJpZ2h0ID0+ICRQYWdle1BhZ2VUZXh0fSAuICcgJyAuICRQYWdle1BhZ2VDb3VudH0sCiAgICApOwogICAgJFBhZ2V7UGFnZUNvdW50fSsrOwoKICAgICRQREZPYmplY3QtPlBvc2l0aW9uU2V0KAogICAgICAgIE1vdmUgPT4gJ3JlbGF0aXYnLAogICAgICAgIFkgICAgPT4gLTYsCiAgICApOwoKICAgICMgb3V0cHV0IGhlYWRsaW5lCiAgICAkUERGT2JqZWN0LT5UZXh0KAogICAgICAgIFRleHQgICAgID0+ICRGQVFEYXRhe1RpdGxlfSwKICAgICAgICBGb250U2l6ZSA9PiAxMywKCiAgICApOwoKICAgICRQREZPYmplY3QtPlBvc2l0aW9uU2V0KAogICAgICAgIE1vdmUgPT4gJ3JlbGF0aXYnLAogICAgICAgIFkgICAgPT4gLTYsCiAgICApOwoKICAgICMgb3V0cHV0ICJwcmludGVkIGJ5IgogICAgJFBERk9iamVjdC0+VGV4dCgKICAgICAgICBUZXh0ICAgICA9PiAkVGltZSwKICAgICAgICBGb250U2l6ZSA9PiA5LAogICAgKTsKCiAgICAkUERGT2JqZWN0LT5Qb3NpdGlvblNldCgKICAgICAgICBNb3ZlID0+ICdyZWxhdGl2JywKICAgICAgICBZICAgID0+IC0xNCwKICAgICk7CgogICAgIyB0eXBlIG9mIHByaW50IHRhZwogICAgbXkgJFByaW50VGFnID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdGQVEgQXJ0aWNsZSBQcmludCcpOwoKICAgICMgb3V0cHV0IGhlYWRsaW5lCiAgICAkUERGT2JqZWN0LT5UZXh0KAogICAgICAgIFRleHQgICAgID0+ICRQcmludFRhZywKICAgICAgICBIZWlnaHQgICA9PiA5LAogICAgICAgIFR5cGUgICAgID0+ICdDdXQnLAogICAgICAgIEZvbnQgICAgID0+ICdQcm9wb3J0aW9uYWxCb2xkJywKICAgICAgICBBbGlnbiAgICA9PiAncmlnaHQnLAogICAgICAgIEZvbnRTaXplID0+IDksCiAgICAgICAgQ29sb3IgICAgPT4gJyM2NjY2NjYnLAogICAgKTsKCiAgICAkUERGT2JqZWN0LT5Qb3NpdGlvblNldCgKICAgICAgICBNb3ZlID0+ICdyZWxhdGl2JywKICAgICAgICBZICAgID0+IC02LAogICAgKTsKCiAgICAjIG91dHB1dCBGQVEgaW5mb3JtYXRpb24KICAgICRTZWxmLT5fUERGT3V0cHV0RkFRSGVhZGVySW5mbygKICAgICAgICBQYWdlRGF0YSA9PiBcJVBhZ2UsCiAgICAgICAgRkFRRGF0YSAgPT4gXCVGQVFEYXRhLAogICAgKTsKCiAgICBpZiAoICRGQVFEYXRhe0tleXdvcmRzfSApIHsKICAgICAgICAkU2VsZi0+X1BERk91dHB1dEtleXdvcmRzKAogICAgICAgICAgICBQYWdlRGF0YSA9PiBcJVBhZ2UsCiAgICAgICAgICAgIEZBUURhdGEgID0+IFwlRkFRRGF0YSwKICAgICAgICApOwogICAgfQoKICAgICMgb3V0cHV0IEZBUSBkeW5hbWljIGZpZWxkcwogICAgJFNlbGYtPl9QREZPdXRwdXRGQVFEeW5hbWljRmllbGRzKAogICAgICAgIFBhZ2VEYXRhID0+IFwlUGFnZSwKICAgICAgICBGQVFEYXRhICA9PiBcJUZBUURhdGEsCiAgICApOwoKICAgICRTZWxmLT5fUERGT3VwdXRGQVFDb250ZW50KAogICAgICAgIFBhZ2VEYXRhICAgICAgICA9PiBcJVBhZ2UsCiAgICAgICAgRkFRRGF0YSAgICAgICAgID0+IFwlRkFRRGF0YSwKICAgICAgICBJbnRlcmZhY2VTdGF0ZXMgPT4gJEludGVyZmFjZVN0YXRlcywKICAgICk7CgogICAgIyBSZXR1cm4gdGhlIFBERiBkb2N1bWVudC4KICAgIG15ICRGaWxlbmFtZSA9ICdGQVFfJyAuICRGQVFEYXRhe051bWJlcn07CgogICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CiAgICBteSAkRGF0ZVRpbWUgICAgICAgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwogICAgbXkgJFkgICAgICAgICAgICAgID0gJERhdGVUaW1lLT57WWVhcn07CiAgICBteSAkTSAgICAgICAgICAgICAgPSBzcHJpbnRmKCAiJTAyZCIsICREYXRlVGltZS0+e01vbnRofSApOwogICAgbXkgJEQgICAgICAgICAgICAgID0gc3ByaW50ZiggIiUwMmQiLCAkRGF0ZVRpbWUtPntEYXl9ICk7CiAgICBteSAkaCAgICAgICAgICAgICAgPSBzcHJpbnRmKCAiJTAyZCIsICREYXRlVGltZS0+e0hvdXJ9ICk7CiAgICBteSAkbSAgICAgICAgICAgICAgPSBzcHJpbnRmKCAiJTAyZCIsICREYXRlVGltZS0+e01pbnV0ZX0gKTsKCiAgICBteSAkUERGU3RyaW5nID0gJFBERk9iamVjdC0+RG9jdW1lbnRPdXRwdXQoKTsKICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5BdHRhY2htZW50KAogICAgICAgIEZpbGVuYW1lICAgID0+ICRGaWxlbmFtZSAuICJfIiAuICIkWS0kTS0kRCIgLiAiXyIgLiAiJGgtJG0ucGRmIiwKICAgICAgICBDb250ZW50VHlwZSA9PiAiYXBwbGljYXRpb24vcGRmIiwKICAgICAgICBDb250ZW50ICAgICA9PiAkUERGU3RyaW5nLAogICAgICAgIFR5cGUgICAgICAgID0+ICdpbmxpbmUnLAogICAgKTsKfQoKc3ViIF9QREZPdXRwdXRGQVFIZWFkZXJJbmZvIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICROZWVkZWQgKHF3KFBhZ2VEYXRhIEZBUURhdGEpKSB7CiAgICAgICAgaWYgKCAhZGVmaW5lZCggJFBhcmFteyROZWVkZWR9ICkgKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIgogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQogICAgbXkgJUZBUURhdGEgPSAleyAkUGFyYW17RkFRRGF0YX0gfTsKICAgIG15ICVQYWdlICAgID0gJXsgJFBhcmFte1BhZ2VEYXRhfSB9OwoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBjcmVhdGUgbGVmdCB0YWJsZQogICAgbXkgJFRhYmxlTGVmdCA9IFsKICAgICAgICB7CiAgICAgICAgICAgIEtleSAgID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnQ2F0ZWdvcnknKSAuICc6JywKICAgICAgICAgICAgVmFsdWUgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAkRkFRRGF0YXtDYXRlZ29yeU5hbWV9ICksCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIEtleSAgID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnU3RhdGUnKSAuICc6JywKICAgICAgICAgICAgVmFsdWUgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAkRkFRRGF0YXtTdGF0ZX0gKSwKICAgICAgICB9LAogICAgXTsKCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAjIGdldCBkZWZhdWx0IG11bHRpIGxhbmd1YWdlIG9wdGlvbgogICAgbXkgJE11bHRpTGFuZ3VhZ2UgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6TXVsdGlMYW5ndWFnZScpOwoKICAgICMgbGFuZ3VhZ2Ugcm93LCBmZWF0dXJlIGlzIGVuYWJsZWQKICAgIGlmICgkTXVsdGlMYW5ndWFnZSkgewogICAgICAgIG15ICRSb3cgPSB7CiAgICAgICAgICAgIEtleSAgID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnTGFuZ3VhZ2UnKSAuICc6JywKICAgICAgICAgICAgVmFsdWUgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAkRkFRRGF0YXtMYW5ndWFnZX0gKSwKICAgICAgICB9OwogICAgICAgIHB1c2ggQHskVGFibGVMZWZ0fSwgJFJvdzsKICAgIH0KCiAgICAjIGNyZWF0ZSByaWdodCB0YWJsZQogICAgbXkgJFRhYmxlUmlnaHQ7CgogICAgIyBnZXQgZGVmYXVsdCB2b3Rpbmcgb3B0aW9uCiAgICBteSAkVm90aW5nID0gJENvbmZpZ09iamVjdC0+R2V0KCdGQVE6OlZvdGluZycpOwoKICAgICMgdm90aW5nIHJvd3MsIGZlYXR1cmUgaXMgZW5hYmxlZAogICAgaWYgKCRWb3RpbmcpIHsKICAgICAgICAkVGFibGVSaWdodCA9IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgS2V5ICAgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdWb3RlcycpIC4gJzonLAogICAgICAgICAgICAgICAgVmFsdWUgPT4gJEZBUURhdGF7Vm90ZXN9LAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBLZXkgICA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ1Jlc3VsdCcpIC4gJzonLAogICAgICAgICAgICAgICAgVmFsdWUgPT4gJEZBUURhdGF7Vm90ZVJlc3VsdH0gLiAiICUiLAogICAgICAgICAgICB9LAogICAgICAgIF07CiAgICB9CgogICAgIyBsYXN0IHVwZGF0ZSByb3cKICAgIHB1c2ggQHskVGFibGVSaWdodH0sIHsKICAgICAgICBLZXkgICA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ0xhc3QgdXBkYXRlJykgLiAnOicsCiAgICAgICAgVmFsdWUgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+Rm9ybWF0VGltZVN0cmluZygKICAgICAgICAgICAgJEZBUURhdGF7Q2hhbmdlZH0sCiAgICAgICAgICAgICdEYXRlRm9ybWF0TG9uZycsCiAgICAgICAgKSwKICAgIH07CgogICAgbXkgJFJvd3MgPSBAeyRUYWJsZUxlZnR9OwogICAgaWYgKCBAeyRUYWJsZVJpZ2h0fSA+ICRSb3dzICkgewogICAgICAgICRSb3dzID0gQHskVGFibGVSaWdodH07CiAgICB9CgogICAgbXkgJVRhYmxlUGFyYW07CiAgICBmb3IgbXkgJFJvdyAoIDEgLi4gJFJvd3MgKSB7CiAgICAgICAgJFJvdy0tOwogICAgICAgICRUYWJsZVBhcmFte0NlbGxEYXRhfVskUm93XVswXXtDb250ZW50fSAgICAgICAgID0gJFRhYmxlTGVmdC0+WyRSb3ddLT57S2V5fTsKICAgICAgICAkVGFibGVQYXJhbXtDZWxsRGF0YX1bJFJvd11bMF17Rm9udH0gICAgICAgICAgICA9ICdQcm9wb3J0aW9uYWxCb2xkJzsKICAgICAgICAkVGFibGVQYXJhbXtDZWxsRGF0YX1bJFJvd11bMV17Q29udGVudH0gICAgICAgICA9ICRUYWJsZUxlZnQtPlskUm93XS0+e1ZhbHVlfTsKICAgICAgICAkVGFibGVQYXJhbXtDZWxsRGF0YX1bJFJvd11bMl17Q29udGVudH0gICAgICAgICA9ICcgJzsKICAgICAgICAkVGFibGVQYXJhbXtDZWxsRGF0YX1bJFJvd11bMl17QmFja2dyb3VuZENvbG9yfSA9ICcjRkZGRkZGJzsKICAgICAgICAkVGFibGVQYXJhbXtDZWxsRGF0YX1bJFJvd11bM117Q29udGVudH0gICAgICAgICA9ICRUYWJsZVJpZ2h0LT5bJFJvd10tPntLZXl9OwogICAgICAgICRUYWJsZVBhcmFte0NlbGxEYXRhfVskUm93XVszXXtGb250fSAgICAgICAgICAgID0gJ1Byb3BvcnRpb25hbEJvbGQnOwogICAgICAgICRUYWJsZVBhcmFte0NlbGxEYXRhfVskUm93XVs0XXtDb250ZW50fSAgICAgICAgID0gJFRhYmxlUmlnaHQtPlskUm93XS0+e1ZhbHVlfTsKICAgIH0KCiAgICAkVGFibGVQYXJhbXtDb2x1bW5EYXRhfVswXXtXaWR0aH0gPSA4MDsKICAgICRUYWJsZVBhcmFte0NvbHVtbkRhdGF9WzFde1dpZHRofSA9IDE3MC41OwogICAgJFRhYmxlUGFyYW17Q29sdW1uRGF0YX1bMl17V2lkdGh9ID0gNDsKICAgICRUYWJsZVBhcmFte0NvbHVtbkRhdGF9WzNde1dpZHRofSA9IDgwOwogICAgJFRhYmxlUGFyYW17Q29sdW1uRGF0YX1bNF17V2lkdGh9ID0gMTcwLjU7CgogICAgJFRhYmxlUGFyYW17VHlwZX0gICAgICAgICAgICAgICAgPSAnQ3V0JzsKICAgICRUYWJsZVBhcmFte0JvcmRlcn0gICAgICAgICAgICAgID0gMDsKICAgICRUYWJsZVBhcmFte0ZvbnRTaXplfSAgICAgICAgICAgID0gNjsKICAgICRUYWJsZVBhcmFte0JhY2tncm91bmRDb2xvckV2ZW59ID0gJyNEREREREQnOwogICAgJFRhYmxlUGFyYW17UGFkZGluZ30gICAgICAgICAgICAgPSAxOwogICAgJFRhYmxlUGFyYW17UGFkZGluZ1RvcH0gICAgICAgICAgPSAzOwogICAgJFRhYmxlUGFyYW17UGFkZGluZ0JvdHRvbX0gICAgICAgPSAzOwoKICAgIG15ICRQREZPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6UERGJyk7CgogICAgIyBvdXRwdXQgdGFibGUKICAgIFBBR0U6CiAgICBmb3IgKCAkUGFnZXtQYWdlQ291bnR9IC4uICRQYWdle01heFBhZ2VzfSApIHsKCiAgICAgICAgIyBvdXRwdXQgdGFibGUgKG9yIGEgZnJhZ21lbnQgb2YgaXQpCiAgICAgICAgJVRhYmxlUGFyYW0gPSAkUERGT2JqZWN0LT5UYWJsZSggJVRhYmxlUGFyYW0sICk7CgogICAgICAgICMgc3RvcCBvdXRwdXQgb3Igb3V0cHV0IG5leHQgcGFnZQogICAgICAgIGlmICggJFRhYmxlUGFyYW17U3RhdGV9ICkgewogICAgICAgICAgICBsYXN0IFBBR0U7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkUERGT2JqZWN0LT5QYWdlTmV3KAogICAgICAgICAgICAgICAgJVBhZ2UsCiAgICAgICAgICAgICAgICBGb290ZXJSaWdodCA9PiAkUGFnZXtQYWdlVGV4dH0gLiAnICcgLiAkUGFnZXtQYWdlQ291bnR9LAogICAgICAgICAgICApOwogICAgICAgICAgICAkUGFnZXtQYWdlQ291bnR9Kys7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIDE7Cn0KCnN1YiBfUERGT3V0cHV0S2V5d29yZHMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoUGFnZURhdGEgRkFRRGF0YSkpIHsKICAgICAgICBpZiAoICFkZWZpbmVkKCAkUGFyYW17JE5lZWRlZH0gKSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQogICAgbXkgJUZBUURhdGEgPSAleyAkUGFyYW17RkFRRGF0YX0gfTsKICAgIG15ICVQYWdlICAgID0gJXsgJFBhcmFte1BhZ2VEYXRhfSB9OwogICAgbXkgJVRhYmxlUGFyYW07CgogICAgJFRhYmxlUGFyYW17Q2VsbERhdGF9WzBdWzBde0NvbnRlbnR9ID0gJEZBUURhdGF7S2V5d29yZHN9IHx8ICcnOwogICAgJFRhYmxlUGFyYW17Q29sdW1uRGF0YX1bMF17V2lkdGh9ID0gNTExOwoKICAgIG15ICRQREZPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6UERGJyk7CgogICAgIyBzZXQgbmV3IHBvc2l0aW9uCiAgICAkUERGT2JqZWN0LT5Qb3NpdGlvblNldCgKICAgICAgICBNb3ZlID0+ICdyZWxhdGl2JywKICAgICAgICBZICAgID0+IC0xNSwKICAgICk7CgogICAgIyBvdXRwdXQgaGVhZGxpbmUKICAgICRQREZPYmplY3QtPlRleHQoCiAgICAgICAgVGV4dCAgICAgPT4gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpLT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ0tleXdvcmRzJyksCiAgICAgICAgSGVpZ2h0ICAgPT4gNywKICAgICAgICBUeXBlICAgICA9PiAnQ3V0JywKICAgICAgICBGb250ICAgICA9PiAnUHJvcG9ydGlvbmFsQm9sZEl0YWxpYycsCiAgICAgICAgRm9udFNpemUgPT4gNywKICAgICAgICBDb2xvciAgICA9PiAnIzY2NjY2NicsCiAgICApOwoKICAgICMgc2V0IG5ldyBwb3NpdGlvbgogICAgJFBERk9iamVjdC0+UG9zaXRpb25TZXQoCiAgICAgICAgTW92ZSA9PiAncmVsYXRpdicsCiAgICAgICAgWSAgICA9PiAtNCwKICAgICk7CgogICAgIyB0YWJsZSBwYXJhbXMKICAgICRUYWJsZVBhcmFte1R5cGV9ICAgICAgICAgICAgPSAnQ3V0JzsKICAgICRUYWJsZVBhcmFte0JvcmRlcn0gICAgICAgICAgPSAwOwogICAgJFRhYmxlUGFyYW17Rm9udFNpemV9ICAgICAgICA9IDY7CiAgICAkVGFibGVQYXJhbXtCYWNrZ3JvdW5kQ29sb3J9ID0gJyNEREREREQnOwogICAgJFRhYmxlUGFyYW17UGFkZGluZ30gICAgICAgICA9IDE7CiAgICAkVGFibGVQYXJhbXtQYWRkaW5nVG9wfSAgICAgID0gMzsKICAgICRUYWJsZVBhcmFte1BhZGRpbmdCb3R0b219ICAgPSAzOwoKICAgICMgb3V0cHV0IHRhYmxlCiAgICBQQUdFOgogICAgZm9yICggJFBhZ2V7UGFnZUNvdW50fSAuLiAkUGFnZXtNYXhQYWdlc30gKSB7CgogICAgICAgICMgb3V0cHV0IHRhYmxlIChvciBhIGZyYWdtZW50IG9mIGl0KQogICAgICAgICVUYWJsZVBhcmFtID0gJFBERk9iamVjdC0+VGFibGUoICVUYWJsZVBhcmFtLCApOwoKICAgICAgICAjIHN0b3Agb3V0cHV0IG9yIG91dHB1dCBuZXh0IHBhZ2UKICAgICAgICBpZiAoICRUYWJsZVBhcmFte1N0YXRlfSApIHsKICAgICAgICAgICAgbGFzdCBQQUdFOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFBERk9iamVjdC0+UGFnZU5ldygKICAgICAgICAgICAgICAgICVQYWdlLAogICAgICAgICAgICAgICAgRm9vdGVyUmlnaHQgPT4gJFBhZ2V7UGFnZVRleHR9IC4gJyAnIC4gJFBhZ2V7UGFnZUNvdW50fSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFBhZ2V7UGFnZUNvdW50fSsrOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiAxOwp9CgpzdWIgX1BERk91dHB1dEZBUUR5bmFtaWNGaWVsZHMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoUGFnZURhdGEgRkFRRGF0YSkpIHsKICAgICAgICBpZiAoICFkZWZpbmVkKCAkUGFyYW17JE5lZWRlZH0gKSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQogICAgbXkgJE91dHB1dCA9IDA7CiAgICBteSAlRkFRICAgID0gJXsgJFBhcmFte0ZBUURhdGF9IH07CiAgICBteSAlUGFnZSAgID0gJXsgJFBhcmFte1BhZ2VEYXRhfSB9OwoKICAgIG15ICVUYWJsZVBhcmFtOwogICAgbXkgJFJvdyA9IDA7CgogICAgIyBnZXQgZHluYW1pYyBmaWVsZCBjb25maWcgZm9yIGZyb250ZW5kIG1vZHVsZQogICAgbXkgJER5bmFtaWNGaWVsZEZpbHRlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgiRkFROjpGcm9udGVuZDo6UHVibGljRkFRUHJpbnQiKS0+e0R5bmFtaWNGaWVsZH07CgogICAgIyBnZXQgdGhlIGR5bmFtaWMgZmllbGRzIGZvciBGQVEgb2JqZWN0CiAgICBteSAkRHluYW1pY0ZpZWxkID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpLT5EeW5hbWljRmllbGRMaXN0R2V0KAogICAgICAgIFZhbGlkICAgICAgID0+IDEsCiAgICAgICAgT2JqZWN0VHlwZSAgPT4gWydGQVEnXSwKICAgICAgICBGaWVsZEZpbHRlciA9PiAkRHluYW1pY0ZpZWxkRmlsdGVyIHx8IHt9LAogICAgKTsKCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgZ2VuZXJhdGUgdGFibGUKICAgIERZTkFNSUNGSUVMRENPTkZJRzoKICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHskRHluYW1pY0ZpZWxkfSApIHsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRENPTkZJRyBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CgogICAgICAgICMgZ2V0IGR5bmFtaWMgZmllbGQgYmFja2VuZCBvYmplY3QKICAgICAgICBteSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKTsKCiAgICAgICAgIyBza2lwIGR5bmFtaWMgZmllbGQgaWYgaXMgbm90IGRlc2lnbmVkIGZvciBjdXN0b21lciBpbnRlcmZhY2UKICAgICAgICBteSAkSXNDdXN0b21lckludGVyZmFjZUNhcGFibGUgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+SGFzQmVoYXZpb3IoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBCZWhhdmlvciAgICAgICAgICAgPT4gJ0lzQ3VzdG9tZXJJbnRlcmZhY2VDYXBhYmxlJywKICAgICAgICApOwogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEQ09ORklHIGlmICEkSXNDdXN0b21lckludGVyZmFjZUNhcGFibGU7CgogICAgICAgIG15ICRWYWx1ZSA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5WYWx1ZUdldCgKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgIE9iamVjdElEICAgICAgICAgICA9PiAkRkFRe0ZBUUlEfSwKICAgICAgICApOwoKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRENPTkZJRyBpZiAhJFZhbHVlOwogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEQ09ORklHIGlmICRWYWx1ZSBlcSAiIjsKCiAgICAgICAgIyBnZXQgcHJpbnQgc3RyaW5nIGZvciB0aGlzIGR5bmFtaWMgZmllbGQKICAgICAgICBteSAkVmFsdWVTdHJnID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPkRpc3BsYXlWYWx1ZVJlbmRlcigKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAkVmFsdWUsCiAgICAgICAgICAgIEhUTUxPdXRwdXQgICAgICAgICA9PiAwLAogICAgICAgICAgICBMYXlvdXRPYmplY3QgICAgICAgPT4gJExheW91dE9iamVjdCwKICAgICAgICApOwogICAgICAgICRUYWJsZVBhcmFte0NlbGxEYXRhfVskUm93XVswXXtDb250ZW50fQogICAgICAgICAgICA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJER5bmFtaWNGaWVsZENvbmZpZy0+e0xhYmVsfSApCiAgICAgICAgICAgIC4gJzonOwogICAgICAgICRUYWJsZVBhcmFte0NlbGxEYXRhfVskUm93XVswXXtGb250fSAgICA9ICdQcm9wb3J0aW9uYWxCb2xkJzsKICAgICAgICAkVGFibGVQYXJhbXtDZWxsRGF0YX1bJFJvd11bMV17Q29udGVudH0gPSAkVmFsdWVTdHJnLT57VmFsdWV9OwoKICAgICAgICAkUm93Kys7CiAgICAgICAgJE91dHB1dCA9IDE7CiAgICB9CgogICAgJFRhYmxlUGFyYW17Q29sdW1uRGF0YX1bMF17V2lkdGh9ID0gODA7CiAgICAkVGFibGVQYXJhbXtDb2x1bW5EYXRhfVsxXXtXaWR0aH0gPSA0MzE7CgogICAgIyBvdXRwdXQgRkFRIGR5bmFtaWMgZmllbGRzCiAgICBpZiAoJE91dHB1dCkgewoKICAgICAgICBteSAkUERGT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlBERicpOwoKICAgICAgICAjIHNldCBuZXcgcG9zaXRpb24KICAgICAgICAkUERGT2JqZWN0LT5Qb3NpdGlvblNldCgKICAgICAgICAgICAgTW92ZSA9PiAncmVsYXRpdicsCiAgICAgICAgICAgIFkgICAgPT4gLTE1LAogICAgICAgICk7CgogICAgICAgICMgb3V0cHV0IGhlYWRsaW5lCiAgICAgICAgJFBERk9iamVjdC0+VGV4dCgKICAgICAgICAgICAgVGV4dCAgICAgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdGQVEgRHluYW1pYyBGaWVsZHMnKSwKICAgICAgICAgICAgSGVpZ2h0ICAgPT4gNywKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0N1dCcsCiAgICAgICAgICAgIEZvbnQgICAgID0+ICdQcm9wb3J0aW9uYWxCb2xkSXRhbGljJywKICAgICAgICAgICAgRm9udFNpemUgPT4gNywKICAgICAgICAgICAgQ29sb3IgICAgPT4gJyM2NjY2NjYnLAogICAgICAgICk7CgogICAgICAgICMgc2V0IG5ldyBwb3NpdGlvbgogICAgICAgICRQREZPYmplY3QtPlBvc2l0aW9uU2V0KAogICAgICAgICAgICBNb3ZlID0+ICdyZWxhdGl2JywKICAgICAgICAgICAgWSAgICA9PiAtNCwKICAgICAgICApOwoKICAgICAgICAjIHRhYmxlIHBhcmFtcwogICAgICAgICRUYWJsZVBhcmFte1R5cGV9ICAgICAgICAgICAgPSAnQ3V0JzsKICAgICAgICAkVGFibGVQYXJhbXtCb3JkZXJ9ICAgICAgICAgID0gMDsKICAgICAgICAkVGFibGVQYXJhbXtGb250U2l6ZX0gICAgICAgID0gNjsKICAgICAgICAkVGFibGVQYXJhbXtCYWNrZ3JvdW5kQ29sb3J9ID0gJyNEREREREQnOwogICAgICAgICRUYWJsZVBhcmFte1BhZGRpbmd9ICAgICAgICAgPSAxOwogICAgICAgICRUYWJsZVBhcmFte1BhZGRpbmdUb3B9ICAgICAgPSAzOwogICAgICAgICRUYWJsZVBhcmFte1BhZGRpbmdCb3R0b219ICAgPSAzOwoKICAgICAgICAjIG91dHB1dCB0YWJsZQogICAgICAgIFBBR0U6CiAgICAgICAgZm9yICggJFBhZ2V7UGFnZUNvdW50fSAuLiAkUGFnZXtNYXhQYWdlc30gKSB7CgogICAgICAgICAgICAjIG91dHB1dCB0YWJsZSAob3IgYSBmcmFnbWVudCBvZiBpdCkKICAgICAgICAgICAgJVRhYmxlUGFyYW0gPSAkUERGT2JqZWN0LT5UYWJsZSggJVRhYmxlUGFyYW0sICk7CgogICAgICAgICAgICAjIHN0b3Agb3V0cHV0IG9yIG91dHB1dCBuZXh0IHBhZ2UKICAgICAgICAgICAgaWYgKCAkVGFibGVQYXJhbXtTdGF0ZX0gKSB7CiAgICAgICAgICAgICAgICBsYXN0IFBBR0U7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkUERGT2JqZWN0LT5QYWdlTmV3KAogICAgICAgICAgICAgICAgICAgICVQYWdlLAogICAgICAgICAgICAgICAgICAgIEZvb3RlclJpZ2h0ID0+ICRQYWdle1BhZ2VUZXh0fSAuICcgJyAuICRQYWdle1BhZ2VDb3VudH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJFBhZ2V7UGFnZUNvdW50fSsrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIDE7Cn0KCnN1YiBfUERGT3VwdXRGQVFDb250ZW50IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICRQYXJhbU5hbWUgKHF3KFBhZ2VEYXRhIEZBUURhdGEpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRQYXJhbU5hbWV9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkUGFyYW1OYW1lISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJUZBUURhdGEgPSAleyAkUGFyYW17RkFRRGF0YX0gfTsKICAgIG15ICVQYWdlICAgID0gJXsgJFBhcmFte1BhZ2VEYXRhfSB9OwoKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICMgZ2V0IHRoZSBjb25maWcgb2YgRkFRIGZpZWxkcyB0aGF0IHNob3VsZCBiZSBzaG93bgogICAgbXkgJUZpZWxkczsKICAgIE5VTUJFUjoKICAgIGZvciBteSAkTnVtYmVyICggMSAuLiA2ICkgewoKICAgICAgICAjIGdldCBjb25maWcgb2YgRkFRIGZpZWxkCiAgICAgICAgbXkgJENvbmZpZyA9ICRDb25maWdPYmplY3QtPkdldCggJ0ZBUTo6SXRlbTo6RmllbGQnIC4gJE51bWJlciApOwoKICAgICAgICAjIHNraXAgb3ZlciBub3Qgc2hvd24gZmllbGRzCiAgICAgICAgbmV4dCBOVU1CRVIgaWYgISRDb25maWctPntTaG93fTsKCiAgICAgICAgIyBzdG9yZSBvbmx5IHRoZSBjb25maWcgb2YgZmllbGRzIHRoYXQgc2hvdWxkIGJlIHNob3duCiAgICAgICAgJEZpZWxkc3sgIkZpZWxkIiAuICROdW1iZXIgfSA9ICRDb25maWc7CiAgICB9CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIHNvcnQgc2hvd24gZmllbGRzIGJ5IHByaW9yaXR5CiAgICBGSUVMRDoKICAgIGZvciBteSAkRmllbGQgKCBzb3J0IHsgJEZpZWxkc3skYX0tPntQcmlvfSA8PT4gJEZpZWxkc3skYn0tPntQcmlvfSB9IGtleXMgJUZpZWxkcyApIHsKCiAgICAgICAgIyBnZXQgdGhlIHN0YXRlIHR5cGUgZGF0YSBvZiB0aGlzIGZpZWxkCiAgICAgICAgbXkgJFN0YXRlVHlwZURhdGEgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RkFRJyktPlN0YXRlVHlwZUdldCgKICAgICAgICAgICAgTmFtZSAgID0+ICRGaWVsZHN7JEZpZWxkfS0+e1Nob3d9LAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgZG8gbm90IHNob3cgZmllbGRzIHRoYXQgYXJlIG5vdCBhbGxvd2VkIGluIHRoZSBnaXZlbiBpbnRlcmZhY2UKICAgICAgICBuZXh0IEZJRUxEIGlmICEkUGFyYW17SW50ZXJmYWNlU3RhdGVzfS0+eyAkU3RhdGVUeXBlRGF0YS0+e1N0YXRlSUR9IH07CgogICAgICAgIG15ICVUYWJsZVBhcmFtOwoKICAgICAgICAjIGNvbnZlcnQgSFRNTCB0byBBU0NJSQogICAgICAgIG15ICRBc2NpaUZpZWxkID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkhUTUxVdGlscycpLT5Ub0FzY2lpKAogICAgICAgICAgICBTdHJpbmcgPT4gJEZBUURhdGF7JEZpZWxkfSwKICAgICAgICApOwoKICAgICAgICAkVGFibGVQYXJhbXtDZWxsRGF0YX1bMF1bMF17Q29udGVudH0gPSAkQXNjaWlGaWVsZCB8fCAnJzsKICAgICAgICAkVGFibGVQYXJhbXtDb2x1bW5EYXRhfVswXXtXaWR0aH0gPSA1MTE7CgogICAgICAgIG15ICRQREZPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6UERGJyk7CgogICAgICAgICMgc2V0IG5ldyBwb3NpdGlvbgogICAgICAgICRQREZPYmplY3QtPlBvc2l0aW9uU2V0KAogICAgICAgICAgICBNb3ZlID0+ICdyZWxhdGl2JywKICAgICAgICAgICAgWSAgICA9PiAtMTUsCiAgICAgICAgKTsKCiAgICAgICAgIyB0cmFuc2xhdGUgdGhlIGZpZWxkIG5hbWUgYW5kIHN0YXRlCiAgICAgICAgbXkgJEZpZWxkTmFtZSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJEZpZWxkc3skRmllbGR9LT57J0NhcHRpb24nfSApCiAgICAgICAgICAgIC4gJyAoJwogICAgICAgICAgICAuICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJFN0YXRlVHlwZURhdGEtPntOYW1lfSApCiAgICAgICAgICAgIC4gJyknOwoKICAgICAgICAjIG91dHB1dCBoZWFkbGluZQogICAgICAgICRQREZPYmplY3QtPlRleHQoCiAgICAgICAgICAgIFRleHQgICAgID0+ICRGaWVsZE5hbWUsCiAgICAgICAgICAgIEhlaWdodCAgID0+IDcsCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdDdXQnLAogICAgICAgICAgICBGb250ICAgICA9PiAnUHJvcG9ydGlvbmFsQm9sZEl0YWxpYycsCiAgICAgICAgICAgIEZvbnRTaXplID0+IDcsCiAgICAgICAgICAgIENvbG9yICAgID0+ICcjNjY2NjY2JywKICAgICAgICApOwoKICAgICAgICAjIHNldCBuZXcgcG9zaXRpb24KICAgICAgICAkUERGT2JqZWN0LT5Qb3NpdGlvblNldCgKICAgICAgICAgICAgTW92ZSA9PiAncmVsYXRpdicsCiAgICAgICAgICAgIFkgICAgPT4gLTQsCiAgICAgICAgKTsKCiAgICAgICAgIyB0YWJsZSBwYXJhbXMKICAgICAgICAkVGFibGVQYXJhbXtUeXBlfSAgICAgICAgICAgID0gJ0N1dCc7CiAgICAgICAgJFRhYmxlUGFyYW17Qm9yZGVyfSAgICAgICAgICA9IDA7CiAgICAgICAgJFRhYmxlUGFyYW17Rm9udFNpemV9ICAgICAgICA9IDY7CiAgICAgICAgJFRhYmxlUGFyYW17QmFja2dyb3VuZENvbG9yfSA9ICcjREREREREJzsKICAgICAgICAkVGFibGVQYXJhbXtQYWRkaW5nfSAgICAgICAgID0gMTsKICAgICAgICAkVGFibGVQYXJhbXtQYWRkaW5nVG9wfSAgICAgID0gMzsKICAgICAgICAkVGFibGVQYXJhbXtQYWRkaW5nQm90dG9tfSAgID0gMzsKCiAgICAgICAgIyBvdXRwdXQgdGFibGUKICAgICAgICBQQUdFOgogICAgICAgIGZvciAoICRQYWdle1BhZ2VDb3VudH0gLi4gJFBhZ2V7TWF4UGFnZXN9ICkgewoKICAgICAgICAgICAgIyBvdXRwdXQgdGFibGUgKG9yIGEgZnJhZ21lbnQgb2YgaXQpCiAgICAgICAgICAgICVUYWJsZVBhcmFtID0gJFBERk9iamVjdC0+VGFibGUoICVUYWJsZVBhcmFtLCApOwoKICAgICAgICAgICAgIyBzdG9wIG91dHB1dCBvciBvdXRwdXQgbmV4dCBwYWdlCiAgICAgICAgICAgIGlmICggJFRhYmxlUGFyYW17U3RhdGV9ICkgewogICAgICAgICAgICAgICAgbGFzdCBQQUdFOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJFBERk9iamVjdC0+UGFnZU5ldygKICAgICAgICAgICAgICAgICAgICAlUGFnZSwKICAgICAgICAgICAgICAgICAgICBGb290ZXJSaWdodCA9PiAkUGFnZXtQYWdlVGV4dH0gLiAnICcgLiAkUGFnZXtQYWdlQ291bnR9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICRQYWdle1BhZ2VDb3VudH0rKzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiAxOwp9CgoxOwo=</File>
        <File Location="Kernel/Modules/PublicFAQRSS.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6UHVibGljRkFRUlNTOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIFhNTDo6UlNTOjpTaW1wbGVHZW4gcXcoKTsKdXNlIEtlcm5lbDo6TGFuZ3VhZ2UgICAgcXcoVHJhbnNsYXRhYmxlKTsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBzZXQgVXNlcklEIHRvIHJvb3QgYmVjYXVzZSBpbiBwdWJsaWMgaW50ZXJmYWNlIHRoZXJlIGlzIG5vIHVzZXIKICAgICRTZWxmLT57VXNlcklEfSA9IDE7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgUlNTIHR5cGUKICAgIG15ICRUeXBlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpLT5HZXRQYXJhbSggUGFyYW0gPT4gJ1R5cGUnICk7CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFR5cGUgKSB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkN1c3RvbWVyRXJyb3JTY3JlZW4oCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdObyBUeXBlIGlzIGdpdmVuIScpLAogICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGNoZWNrIHR5cGUKICAgIGlmICggJFR5cGUgIX4gbXsgQ3JlYXRlZCB8IENoYW5nZWQgfCBUb3AxMCB9eG1zICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5DdXN0b21lckZhdGFsRXJyb3IoCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdUeXBlIG11c3QgYmUgZWl0aGVyIExhc3RDcmVhdGUgb3IgTGFzdENoYW5nZSBvciBUb3AxMCEnKSwKICAgICAgICApOwogICAgfQoKICAgIG15IEBJdGVtSURzOwogICAgbXkgJFRpdGxlOwoKICAgIG15ICRGQVFPYmplY3QgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RkFRJyk7CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAjIHNldCBkZWZhdWx0IGludGVyZmFjZSBzZXR0aW5ncwogICAgbXkgJEludGVyZmFjZSA9ICRGQVFPYmplY3QtPlN0YXRlVHlwZUdldCgKICAgICAgICBOYW1lICAgPT4gJ3B1YmxpYycsCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgIyBnZXQgdGhlIFRvcC0xMCBGQVEgYXJ0aWNsZXMKICAgIGlmICggJFR5cGUgZXEgJ1RvcDEwJyApIHsKCiAgICAgICAgIyBpbnRlcmZhY2UgbmVlZHMgdG8gYmUgdGhlIGludGVyZmFjZSBuYW1lCiAgICAgICAgbXkgJFRvcDEwSXRlbUlEc1JlZiA9ICRGQVFPYmplY3QtPkZBUVRvcDEwR2V0KAogICAgICAgICAgICBJbnRlcmZhY2UgPT4gJEludGVyZmFjZS0+e05hbWV9LAogICAgICAgICAgICBMaW1pdCAgICAgPT4gJENvbmZpZ09iamVjdC0+R2V0KCdGQVE6OkV4cGxvcmVyOjpUb3AxMDo6TGltaXQnKSB8fCAxMCwKICAgICAgICAgICAgVXNlcklEICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApIHx8IFtdOwoKICAgICAgICBASXRlbUlEcyA9IG1hcCB7ICRfLT57SXRlbUlEfSB9IEB7JFRvcDEwSXRlbUlEc1JlZn07CgogICAgICAgICMgYnVpbGQgdGhlIHRpdGxlCiAgICAgICAgJFRpdGxlID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdGQVEgQXJ0aWNsZXMgKFRvcCAxMCknKTsKICAgIH0KCiAgICAjIHNlYXJjaCB0aGUgRkFRIGFydGljbGVzCiAgICBlbHNlIHsKCiAgICAgICAgIyBnZXQgaW50ZXJmYWNlIHN0YXRlIGxpc3QKICAgICAgICBteSAkSW50ZXJmYWNlU3RhdGVzID0gJEZBUU9iamVjdC0+U3RhdGVUeXBlTGlzdCgKICAgICAgICAgICAgVHlwZXMgID0+ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpQdWJsaWM6OlN0YXRlVHlwZXMnKSwKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIGludGVyZmFjZSBuZWVkcyB0byBiZSBjb21wbGV0ZSBpbnRlcmZhY2UgaGFzaAogICAgICAgIEBJdGVtSURzID0gJEZBUU9iamVjdC0+RkFRU2VhcmNoKAogICAgICAgICAgICBTdGF0ZXMgICAgICAgICAgID0+ICRJbnRlcmZhY2VTdGF0ZXMsCiAgICAgICAgICAgIE9yZGVyQnkgICAgICAgICAgPT4gWyRUeXBlXSwKICAgICAgICAgICAgT3JkZXJCeURpcmVjdGlvbiA9PiBbJ0Rvd24nXSwKICAgICAgICAgICAgSW50ZXJmYWNlICAgICAgICA9PiAkSW50ZXJmYWNlLAogICAgICAgICAgICBMaW1pdCAgICAgICAgICAgID0+IDIwLAogICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIGJ1aWxkIHRoZSB0aXRsZQogICAgICAgIGlmICggJFR5cGUgZXEgJ0NyZWF0ZWQnICkgewogICAgICAgICAgICAkVGl0bGUgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ0ZBUSBBcnRpY2xlcyAobmV3IGNyZWF0ZWQpJyk7CiAgICAgICAgfQogICAgICAgIGVsc2lmICggJFR5cGUgZXEgJ0NoYW5nZWQnICkgewogICAgICAgICAgICAkVGl0bGUgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoCiAgICAgICAgICAgICAgICAnRkFRIEFydGljbGVzIChyZWNlbnRseSBjaGFuZ2VkKScKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBjcmVhdGUgUlNTIG9iamVjdCBvYmplY3QKICAgIG15ICRSU1NPYmplY3QgPSBYTUw6OlJTUzo6U2ltcGxlR2VuLT5uZXcoCiAgICAgICAgJENvbmZpZ09iamVjdC0+R2V0KCJIdHRwVHlwZSIpCiAgICAgICAgICAgIC4gJzovLycKICAgICAgICAgICAgLiAkQ29uZmlnT2JqZWN0LT5HZXQoIkZRRE4iKQogICAgKTsKCiAgICAjIGdlbmVyYXRlIHRoZSBSU1MgdGl0bGUKICAgICRUaXRsZSA9ICRDb25maWdPYmplY3QtPkdldCgnUHJvZHVjdE5hbWUnKSAuICcgJyAuICRUaXRsZTsKCiAgICAkUlNTT2JqZWN0LT50aXRsZSgkVGl0bGUpOwoKICAgIGZvciBteSAkSXRlbUlEIChASXRlbUlEcykgewoKICAgICAgICBteSAlSXRlbURhdGEgPSAkRkFRT2JqZWN0LT5GQVFHZXQoCiAgICAgICAgICAgIEl0ZW1JRCAgICAgPT4gJEl0ZW1JRCwKICAgICAgICAgICAgSXRlbUZpZWxkcyA9PiAxLAogICAgICAgICAgICBVc2VySUQgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIGJ1aWxkIGEgcHJldmlldyBvZiB0aGUgZmlyc3QgdHdvIGZpZWxkcwogICAgICAgIG15ICRQcmV2aWV3ID0gJyc7CiAgICAgICAgZm9yIG15ICRDb3VudCAoIDEgLi4gMiApIHsKICAgICAgICAgICAgaWYgKCAkSXRlbURhdGF7IkZpZWxkJENvdW50In0gKSB7CiAgICAgICAgICAgICAgICAkUHJldmlldyAuPSAkSXRlbURhdGF7IkZpZWxkJENvdW50In07CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgY29udmVydCBwcmV2aWV3IHRvIEFTQ0lJCiAgICAgICAgJFByZXZpZXcgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SFRNTFV0aWxzJyktPlRvQXNjaWkoIFN0cmluZyA9PiAkUHJldmlldyApOwoKICAgICAgICAjIHJlZHVjZSBzaXplIG9mIHByZXZpZXcKICAgICAgICAkUHJldmlldyA9fiBzeyBcQSAoIC57ODB9ICkgLiogXHogfXskMVxbXC5cLlxdfWd4bXM7CgogICAgICAgICMgYnVpbGQgdGhlIFJTUyBpdGVtCiAgICAgICAgJFJTU09iamVjdC0+aXRlbSgKICAgICAgICAgICAgJENvbmZpZ09iamVjdC0+R2V0KCdIdHRwVHlwZScpCiAgICAgICAgICAgICAgICAuICI6Ly8iCiAgICAgICAgICAgICAgICAuICRDb25maWdPYmplY3QtPkdldCgiRlFETiIpCiAgICAgICAgICAgICAgICAuICRMYXlvdXRPYmplY3QtPntCYXNlbGlua30KICAgICAgICAgICAgICAgIC4gIkFjdGlvbj1QdWJsaWNGQVFab29tO0l0ZW1JRD0kSXRlbUlEIiwKICAgICAgICAgICAgJEl0ZW1EYXRhe1RpdGxlfSwKICAgICAgICAgICAgJFByZXZpZXcsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGNvbnZlcnQgdG8gc3RyaW5nCiAgICBteSAkT3V0cHV0ID0gJFJTU09iamVjdC0+YXNfc3RyaW5nKCk7CiAgICBpZiAoICEkT3V0cHV0ICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5DdXN0b21lckZhdGFsRXJyb3IoCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdDYW5cJ3QgY3JlYXRlIFJTUyBmaWxlIScpLAogICAgICAgICk7CiAgICB9CgogICAgIyByZXR1cm4gdGhlIFJTUyBmZWVkCiAgICByZXR1cm4gJExheW91dE9iamVjdC0+QXR0YWNobWVudCgKICAgICAgICBDb250ZW50ICAgICA9PiAkT3V0cHV0LAogICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3htbCcsCiAgICAgICAgVHlwZSAgICAgICAgPT4gJ2lubGluZScsCiAgICApOwp9CgoxOwo=</File>
        <File Location="Kernel/Modules/PublicFAQSearch.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6UHVibGljRkFRU2VhcmNoOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIE1JTUU6OkJhc2U2NCAgICAgICAgICAgICAgICAgIHF3KCk7CnVzZSBLZXJuZWw6Okxhbmd1YWdlICAgICAgICAgICAgICBxdyhUcmFuc2xhdGFibGUpOwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgc2V0IFVzZXJJRCB0byByb290IGJlY2F1c2UgaW4gcHVibGljIGludGVyZmFjZSB0aGVyZSBpcyBubyB1c2VyCiAgICAkU2VsZi0+e1VzZXJJRH0gPSAxOwoKICAgICMgZ2V0IGNvbmZpZyBmb3IgZnJvbnRlbmQKICAgICRTZWxmLT57Q29uZmlnfSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgiRkFROjpGcm9udGVuZDo6JFNlbGYtPntBY3Rpb259Iik7CgogICAgIyBnZXQgZHluYW1pYyBmaWVsZCBjb25maWcgZm9yIGZyb250ZW5kIG1vZHVsZQogICAgJFNlbGYtPntEeW5hbWljRmllbGRGaWx0ZXJ9ID0gJFNlbGYtPntDb25maWd9LT57RHluYW1pY0ZpZWxkfTsKCiAgICAjIGdldCB0aGUgZHluYW1pYyBmaWVsZHMgZm9yIEZBUSBvYmplY3QKICAgICRTZWxmLT57RHluYW1pY0ZpZWxkfSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKS0+RHluYW1pY0ZpZWxkTGlzdEdldCgKICAgICAgICBWYWxpZCAgICAgICA9PiAxLAogICAgICAgIE9iamVjdFR5cGUgID0+ICdGQVEnLAogICAgICAgIEZpZWxkRmlsdGVyID0+ICRTZWxmLT57RHluYW1pY0ZpZWxkRmlsdGVyfSB8fCB7fSwKICAgICk7CgogICAgIyByZWR1Y2UgdGhlIGR5bmFtaWMgZmllbGRzIHRvIG9ubHkgdGhlIG9uZXMgdGhhdCBhcmUgZGVzaWduZWQgZm9yIGN1c3RvbWVyIGludGVyZmFjZQogICAgbXkgQEN1c3RvbWVyRHluYW1pY0ZpZWxkczsKICAgIERZTkFNSUNGSUVMRENPTkZJRzoKICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHsgJFNlbGYtPntEeW5hbWljRmllbGR9IH0gKSB7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTERDT05GSUcgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICBteSAkSXNDdXN0b21lckludGVyZmFjZUNhcGFibGUgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kJyktPkhhc0JlaGF2aW9yKAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgQmVoYXZpb3IgICAgICAgICAgID0+ICdJc0N1c3RvbWVySW50ZXJmYWNlQ2FwYWJsZScsCiAgICAgICAgKTsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRENPTkZJRyBpZiAhJElzQ3VzdG9tZXJJbnRlcmZhY2VDYXBhYmxlOwoKICAgICAgICBwdXNoIEBDdXN0b21lckR5bmFtaWNGaWVsZHMsICREeW5hbWljRmllbGRDb25maWc7CiAgICB9CiAgICAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gPSBcQEN1c3RvbWVyRHluYW1pY0ZpZWxkczsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkT3V0cHV0OwoKICAgICMgZ2V0IGNvbmZpZyBmcm9tIGNvbnN0cnVjdG9yCiAgICBteSAkQ29uZmlnID0gJFNlbGYtPntDb25maWd9OwoKICAgIG15ICRQYXJhbU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKCiAgICAjIGdldCBjb25maWcgZGF0YQogICAgbXkgJFN0YXJ0SGl0ICAgICAgICA9IGludCggJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1N0YXJ0SGl0JyApIHx8IDEgKTsKICAgIG15ICRTZWFyY2hMaW1pdCAgICAgPSAkQ29uZmlnLT57U2VhcmNoTGltaXR9ICAgICB8fCAyMDA7CiAgICBteSAkU2VhcmNoUGFnZVNob3duID0gJENvbmZpZy0+e1NlYXJjaFBhZ2VTaG93bn0gfHwgNDA7CiAgICBteSAkU29ydEJ5ICAgICAgICAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1NvcnRCeScgKQogICAgICAgIHx8ICRDb25maWctPnsnU29ydEJ5OjpEZWZhdWx0J30KICAgICAgICB8fCAnRkFRSUQnOwogICAgbXkgJE9yZGVyQnkgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnT3JkZXInICkKICAgICAgICB8fCAkQ29uZmlnLT57J09yZGVyOjpEZWZhdWx0J30KICAgICAgICB8fCAnRG93bic7CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIGJ1aWxkIG91dHB1dCBmb3Igb3BlbiBzZWFyY2ggZGVzY3JpcHRpb24gYnkgRkFRIG51bWJlcgogICAgaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ09wZW5TZWFyY2hEZXNjcmlwdGlvbkZBUU51bWJlcicgKSB7CiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdQdWJsaWNGQVFTZWFyY2hPcGVuU2VhcmNoRGVzY3JpcHRpb25GQVFOdW1iZXInLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5BdHRhY2htZW50KAogICAgICAgICAgICBGaWxlbmFtZSAgICA9PiAnT3BlblNlYXJjaERlc2NyaXB0aW9uRkFRTnVtYmVyLnhtbCcsCiAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICdhcHBsaWNhdGlvbi9vcGVuc2VhcmNoZGVzY3JpcHRpb24reG1sJywKICAgICAgICAgICAgQ29udGVudCAgICAgPT4gJE91dHB1dCwKICAgICAgICAgICAgVHlwZSAgICAgICAgPT4gJ2lubGluZScsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGJ1aWxkIG91dHB1dCBmb3Igb3BlbiBzZWFyY2ggZGVzY3JpcHRpb24gYnkgZnVsbC10ZXh0CiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnT3BlblNlYXJjaERlc2NyaXB0aW9uRnVsbHRleHQnICkgewogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnUHVibGljRkFRU2VhcmNoT3BlblNlYXJjaERlc2NyaXB0aW9uRnVsbFRleHQnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5BdHRhY2htZW50KAogICAgICAgICAgICBGaWxlbmFtZSAgICA9PiAnT3BlblNlYXJjaERlc2NyaXB0aW9uRnVsbHRleHQueG1sJywKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ2FwcGxpY2F0aW9uL29wZW5zZWFyY2hkZXNjcmlwdGlvbit4bWwnLAogICAgICAgICAgICBDb250ZW50ICAgICA9PiAkT3V0cHV0LAogICAgICAgICAgICBUeXBlICAgICAgICA9PiAnaW5saW5lJywKICAgICAgICApOwogICAgfQoKICAgICMgcmVtZW1iZXIgZXhjbHVkZSBhdHRyaWJ1dGVzCiAgICBteSBARXhjbHVkZXMgPSAkUGFyYW1PYmplY3QtPkdldEFycmF5KCBQYXJhbSA9PiAnRXhjbHVkZScgKTsKCiAgICBteSAlR2V0UGFyYW07CgogICAgIyBnZXQgc2luZ2xlIHBhcmFtcwogICAgZm9yIG15ICRQYXJhbU5hbWUgKAogICAgICAgIHF3KE51bWJlciBUaXRsZSBLZXl3b3JkIEZ1bGx0ZXh0IFJlc3VsdEZvcm0gVGltZVNlYXJjaFR5cGUgVm90ZVNlYXJjaCBWb3RlU2VhcmNoVHlwZQogICAgICAgIFZvdGVTZWFyY2hPcHRpb24gUmF0ZVNlYXJjaCBSYXRlU2VhcmNoVHlwZSBSYXRlU2VhcmNoT3B0aW9uCiAgICAgICAgSXRlbUNyZWF0ZVRpbWVQb2ludEZvcm1hdCBJdGVtQ3JlYXRlVGltZVBvaW50CiAgICAgICAgSXRlbUNyZWF0ZVRpbWVQb2ludFN0YXJ0CiAgICAgICAgSXRlbUNyZWF0ZVRpbWVTdGFydCBJdGVtQ3JlYXRlVGltZVN0YXJ0RGF5IEl0ZW1DcmVhdGVUaW1lU3RhcnRNb250aAogICAgICAgIEl0ZW1DcmVhdGVUaW1lU3RhcnRZZWFyCiAgICAgICAgSXRlbUNyZWF0ZVRpbWVTdG9wIEl0ZW1DcmVhdGVUaW1lU3RvcERheSBJdGVtQ3JlYXRlVGltZVN0b3BNb250aAogICAgICAgIEl0ZW1DcmVhdGVUaW1lU3RvcFllYXIKICAgICAgICApCiAgICAgICAgKQogICAgewoKICAgICAgICAjIGdldCBzZWFyY2ggc3RyaW5nIHBhcmFtcyAoZ2V0IHN1Ym1pdHRlZCBwYXJhbXMpCiAgICAgICAgJEdldFBhcmFteyRQYXJhbU5hbWV9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtTmFtZSApOwoKICAgICAgICAjIHJlbW92ZSB3aGl0ZXNwYWNlIG9uIHRoZSBzdGFydCBhbmQgZW5kCiAgICAgICAgaWYgKCAkR2V0UGFyYW17JFBhcmFtTmFtZX0gKSB7CiAgICAgICAgICAgICRHZXRQYXJhbXskUGFyYW1OYW1lfSA9fiBzeyBcQSBccysgfXt9eG1zOwogICAgICAgICAgICAkR2V0UGFyYW17JFBhcmFtTmFtZX0gPX4gc3sgXHMrIFx6IH17fXhtczsKICAgICAgICB9CgogICAgICAgICMgc3RvcmUgbm9uIGVtcHR5IHBhcmFtZXRlcnMgb24gYSBsb2NhbCBwcm9maWxlCiAgICAgICAgaWYgKCAkR2V0UGFyYW17JFBhcmFtTmFtZX0gKSB7CiAgICAgICAgICAgICRTZWxmLT57UHJvZmlsZX0gLj0gIiRQYXJhbU5hbWU9JEdldFBhcmFteyRQYXJhbU5hbWV9OyI7CiAgICAgICAgfQoKICAgIH0KCiAgICAjIGdldCBiYWNrIGxpbmsKICAgICRHZXRQYXJhbXtTZWFyY2hCYWNrTGlua30gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnU2VhcmNoQmFja0xpbmsnICkgfHwgJyc7CiAgICBpZiAoICRHZXRQYXJhbXtTZWFyY2hCYWNrTGlua30gKSB7CiAgICAgICAgJEdldFBhcmFte1NlYXJjaEJhY2tMaW5rfSA9IE1JTUU6OkJhc2U2NDo6ZGVjb2RlX2Jhc2U2NCggJEdldFBhcmFte1NlYXJjaEJhY2tMaW5rfSApOwogICAgfQoKICAgICMgc2hvdyBiYWNrIGxpbmsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0JhY2snLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgfSwKICAgICk7CgogICAgbXkgJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kJyk7CgogICAgIyBnZXQgYXJyYXkgcGFyYW1zCiAgICBmb3IgbXkgJFBhcmFtTmFtZSAocXcoQ2F0ZWdvcnlJRHMgTGFuZ3VhZ2VJRHMgKSkgewoKICAgICAgICAjIGdldCBzZWFyY2ggYXJyYXkgcGFyYW1zIChnZXQgc3VibWl0dGVkIHBhcmFtcykKICAgICAgICBteSBAQXJyYXkgPSAkUGFyYW1PYmplY3QtPkdldEFycmF5KCBQYXJhbSA9PiAkUGFyYW1OYW1lICk7CiAgICAgICAgaWYgKEBBcnJheSkgewogICAgICAgICAgICAkR2V0UGFyYW17JFBhcmFtTmFtZX0gPSBcQEFycmF5OwoKICAgICAgICAgICAgIyBzdG9yZSBwYXJhbWV0ZXJzIG9uIGEgbG9jYWwgcHJvZmlsZQogICAgICAgICAgICBmb3IgbXkgJEVsZW1lbnQgKEBBcnJheSkgewogICAgICAgICAgICAgICAgJFNlbGYtPntQcm9maWxlfSAuPSAkUGFyYW1OYW1lIC4gJz0nIC4gJEVsZW1lbnQgLiAnOyc7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgRHluYW1pYyBmaWVsZHMgZnJvbSBwYXJhbSBvYmplY3QKICAgIERZTkFNSUNGSUVMRENPTkZJRzoKICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHsgJFNlbGYtPntEeW5hbWljRmllbGR9IH0gKSB7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTERDT05GSUcgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICAjIGdldCBzZWFyY2ggZmllbGQgcHJlZmVyZW5jZXMKICAgICAgICBteSAkU2VhcmNoRmllbGRQcmVmZXJlbmNlcyA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5TZWFyY2hGaWVsZFByZWZlcmVuY2VzKAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICApOwoKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRENPTkZJRyBpZiAhSXNBcnJheVJlZldpdGhEYXRhKCRTZWFyY2hGaWVsZFByZWZlcmVuY2VzKTsKCiAgICAgICAgUFJFRkVSRU5DRToKICAgICAgICBmb3IgbXkgJFByZWZlcmVuY2UgKCBAeyRTZWFyY2hGaWVsZFByZWZlcmVuY2VzfSApIHsKCiAgICAgICAgICAgICMgZXh0cmFjdCB0aGUgZHluYW1pYyBmaWVsZCB2YWx1ZSBmcm9tIHRoZSB3ZWIgcmVxdWVzdAogICAgICAgICAgICBteSAkRHluYW1pY0ZpZWxkVmFsdWUgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+U2VhcmNoRmllbGRWYWx1ZUdldCgKICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgIFBhcmFtT2JqZWN0ICAgICAgICAgICAgPT4gJFBhcmFtT2JqZWN0LAogICAgICAgICAgICAgICAgUmV0dXJuUHJvZmlsZVN0cnVjdHVyZSA9PiAxLAogICAgICAgICAgICAgICAgTGF5b3V0T2JqZWN0ICAgICAgICAgICA9PiAkTGF5b3V0T2JqZWN0LAogICAgICAgICAgICAgICAgVHlwZSAgICAgICAgICAgICAgICAgICA9PiAkUHJlZmVyZW5jZS0+e1R5cGV9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBzZXQgdGhlIGNvbXBsZXRlIHZhbHVlIHN0cnVjdHVyZSBpbiBHZXRQYXJhbSB0byBzdG9yZSBpdCBsYXRlciBpbiB0aGUgc2VhcmNoCiAgICAgICAgICAgICMgcHJvZmlsZQogICAgICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRWYWx1ZSkgKSB7CiAgICAgICAgICAgICAgICAlR2V0UGFyYW0gPSAoICVHZXRQYXJhbSwgJXskRHluYW1pY0ZpZWxkVmFsdWV9ICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgYWRkIGR5bmFtaWMgZmllbGRzIHRvIHByb2ZpbGUgdG8gaW5jbHVkZSB0aGVtIGluIHRoZSBiYWNrLWxpbmsKICAgICAgICAgICAgS0VZSVRFTToKICAgICAgICAgICAgZm9yIG15ICRLZXlJdGVtICggc29ydCBrZXlzICV7JER5bmFtaWNGaWVsZFZhbHVlfSApIHsKCiAgICAgICAgICAgICAgICAjIGNvbnZlcnQgc2NhbGFyIHZhbHVlcyB0byBhcnJheSB0byB1c2Ugc2FtZSBjb2RlIGJhc2UKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICBkZWZpbmVkICREeW5hbWljRmllbGRWYWx1ZS0+eyRLZXlJdGVtfQogICAgICAgICAgICAgICAgICAgICYmIHJlZiAkRHluYW1pY0ZpZWxkVmFsdWUtPnskS2V5SXRlbX0gZXEgJycKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJER5bmFtaWNGaWVsZFZhbHVlLT57JEtleUl0ZW19ID0gWyAkRHluYW1pY0ZpZWxkVmFsdWUtPnskS2V5SXRlbX0gXTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBuZXh0IEtFWUlURU0gaWYgIUlzQXJyYXlSZWZXaXRoRGF0YSggJER5bmFtaWNGaWVsZFZhbHVlLT57JEtleUl0ZW19ICk7CgogICAgICAgICAgICAgICAgIyBjb25jYXRlbmF0ZSBkeW5hbWljIGZpZWxkcyB2YWx1ZXMgaW50byB0aGUgcHJvZmlsZQogICAgICAgICAgICAgICAgVkFMVUVJVEVNOgogICAgICAgICAgICAgICAgZm9yIG15ICRWYWx1ZUl0ZW0gKCBAeyAkRHluYW1pY0ZpZWxkVmFsdWUtPnskS2V5SXRlbX0gfSApIHsKICAgICAgICAgICAgICAgICAgICBuZXh0IFZBTFVFSVRFTSBpZiAhJFZhbHVlSXRlbTsKICAgICAgICAgICAgICAgICAgICAkU2VsZi0+e1Byb2ZpbGV9IC49ICIkS2V5SXRlbT0kVmFsdWVJdGVtOyI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBpZiBpdGVtIG5lZWQgdG8gZ2V0IGV4Y2x1ZGVkCiAgICBmb3IgbXkgJEV4Y2x1ZGUgKEBFeGNsdWRlcykgewogICAgICAgIGlmICggJEdldFBhcmFteyRFeGNsdWRlfSApIHsKICAgICAgICAgICAgZGVsZXRlICRHZXRQYXJhbXskRXhjbHVkZX07CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IHZvdGUgb3B0aW9uCiAgICBpZiAoICEkR2V0UGFyYW17Vm90ZVNlYXJjaE9wdGlvbn0gKSB7CiAgICAgICAgJEdldFBhcmFteydWb3RlU2VhcmNoT3B0aW9uOjpOb25lJ30gPSAnY2hlY2tlZD0iY2hlY2tlZCInOwogICAgfQogICAgZWxzaWYgKCAkR2V0UGFyYW17Vm90ZVNlYXJjaE9wdGlvbn0gZXEgJ1ZvdGVQb2ludCcgKSB7CiAgICAgICAgJEdldFBhcmFteydWb3RlU2VhcmNoT3B0aW9uOjpWb3RlUG9pbnQnfSA9ICdjaGVja2VkPSJjaGVja2VkIic7CiAgICB9CgogICAgIyBnZXQgcmF0ZSBvcHRpb24KICAgIGlmICggISRHZXRQYXJhbXtSYXRlU2VhcmNoT3B0aW9ufSApIHsKICAgICAgICAkR2V0UGFyYW17J1JhdGVTZWFyY2hPcHRpb246Ok5vbmUnfSA9ICdjaGVja2VkPSJjaGVja2VkIic7CiAgICB9CiAgICBlbHNpZiAoICRHZXRQYXJhbXtSYXRlU2VhcmNoT3B0aW9ufSBlcSAnUmF0ZVBvaW50JyApIHsKICAgICAgICAkR2V0UGFyYW17J1JhdGVTZWFyY2hPcHRpb246OlJhdGVQb2ludCd9ID0gJ2NoZWNrZWQ9ImNoZWNrZWQiJzsKICAgIH0KCiAgICAjIGdldCB0aW1lIG9wdGlvbgogICAgaWYgKCAhJEdldFBhcmFte1RpbWVTZWFyY2hUeXBlfSApIHsKICAgICAgICAkR2V0UGFyYW17J1RpbWVTZWFyY2hUeXBlOjpOb25lJ30gPSAnY2hlY2tlZD0iY2hlY2tlZCInOwogICAgfQogICAgZWxzaWYgKCAkR2V0UGFyYW17VGltZVNlYXJjaFR5cGV9IGVxICdUaW1lUG9pbnQnICkgewogICAgICAgICRHZXRQYXJhbXsnVGltZVNlYXJjaFR5cGU6OlRpbWVQb2ludCd9ID0gJ2NoZWNrZWQ9ImNoZWNrZWQiJzsKICAgIH0KICAgIGVsc2lmICggJEdldFBhcmFte1RpbWVTZWFyY2hUeXBlfSBlcSAnVGltZVNsb3QnICkgewogICAgICAgICRHZXRQYXJhbXsnVGltZVNlYXJjaFR5cGU6OlRpbWVTbG90J30gPSAnY2hlY2tlZD0iY2hlY2tlZCInOwogICAgfQoKICAgICMgc2V0IHJlc3VsdCBmb3JtIEVOVgogICAgaWYgKCAhJEdldFBhcmFte1Jlc3VsdEZvcm19ICkgewogICAgICAgICRHZXRQYXJhbXtSZXN1bHRGb3JtfSA9ICcnOwogICAgfQogICAgaWYgKCAkR2V0UGFyYW17UmVzdWx0Rm9ybX0gZXEgJ1ByaW50JyApIHsKICAgICAgICAkU2VhcmNoUGFnZVNob3duID0gJFNlYXJjaExpbWl0OwogICAgfQoKICAgICMgY2hlY2sgcmVxdWVzdAogICAgaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ09wZW5TZWFyY2hEZXNjcmlwdGlvbicgKSB7CiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdQdWJsaWNGQVFTZWFyY2hPcGVuU2VhcmNoRGVzY3JpcHRpb24nLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4geyVQYXJhbX0sCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+QXR0YWNobWVudCgKICAgICAgICAgICAgRmlsZW5hbWUgICAgPT4gJ09wZW5TZWFyY2hEZXNjcmlwdGlvbi54bWwnLAogICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC94bWwnLAogICAgICAgICAgICBDb250ZW50ICAgICA9PiAkT3V0cHV0LAogICAgICAgICAgICBUeXBlICAgICAgICA9PiAnaW5saW5lJywKICAgICAgICApOwogICAgfQoKICAgICMgc2hvdyByZXN1bHQgcGFnZQogICAgaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ1NlYXJjaCcgJiYgISRTZWxmLT57RXJhc2VUZW1wbGF0ZX0gKSB7CgogICAgICAgICMgZHluYW1pYyBmaWVsZHMgc2VhcmNoIHBhcmFtZXRlcnMgZm9yIEZBUSBzZWFyY2gKICAgICAgICBteSAlRHluYW1pY0ZpZWxkU2VhcmNoUGFyYW1ldGVyczsKICAgICAgICBteSAlRHluYW1pY0ZpZWxkU2VhcmNoRGlzcGxheTsKCiAgICAgICAgRFlOQU1JQ0ZJRUxEQ09ORklHOgogICAgICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHsgJFNlbGYtPntEeW5hbWljRmllbGR9IH0gKSB7CiAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEQ09ORklHIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKCiAgICAgICAgICAgICMgZ2V0IHNlYXJjaCBmaWVsZCBwcmVmZXJlbmNlcwogICAgICAgICAgICBteSAkU2VhcmNoRmllbGRQcmVmZXJlbmNlcyA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5TZWFyY2hGaWVsZFByZWZlcmVuY2VzKAogICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRENPTkZJRyBpZiAhSXNBcnJheVJlZldpdGhEYXRhKCRTZWFyY2hGaWVsZFByZWZlcmVuY2VzKTsKCiAgICAgICAgICAgIFBSRUZFUkVOQ0U6CiAgICAgICAgICAgIGZvciBteSAkUHJlZmVyZW5jZSAoIEB7JFNlYXJjaEZpZWxkUHJlZmVyZW5jZXN9ICkgewoKICAgICAgICAgICAgICAgIG15ICREeW5hbWljRmllbGRWYWx1ZSA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5TZWFyY2hGaWVsZFZhbHVlR2V0KAogICAgICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgICAgICBQYXJhbU9iamVjdCAgICAgICAgICAgID0+ICRQYXJhbU9iamVjdCwKICAgICAgICAgICAgICAgICAgICBUeXBlICAgICAgICAgICAgICAgICAgID0+ICRQcmVmZXJlbmNlLT57VHlwZX0sCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuUHJvZmlsZVN0cnVjdHVyZSA9PiAxLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIHNldCB0aGUgY29tcGxldGUgdmFsdWUgc3RydWN0dXJlIGluICVEeW5hbWljRmllbGRWYWx1ZXMgdG8gZGlzY2FyZCB0aG9zZSB3aGVyZSB0aGUKICAgICAgICAgICAgICAgICMgdmFsdWUgd2lsbCBub3QgYmUgcG9zc2libGUgdG8gZ2V0CiAgICAgICAgICAgICAgICBuZXh0IFBSRUZFUkVOQ0UgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRWYWx1ZSk7CgogICAgICAgICAgICAgICAgIyBleHRyYWN0IHRoZSBkeW5hbWljIGZpZWxkIHZhbHVlIGZyb20gdGhlIHByb2ZpbGUKICAgICAgICAgICAgICAgIG15ICRTZWFyY2hQYXJhbWV0ZXIgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+U2VhcmNoRmllbGRQYXJhbWV0ZXJCdWlsZCgKICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgICAgICBQcm9maWxlICAgICAgICAgICAgPT4gXCVHZXRQYXJhbSwKICAgICAgICAgICAgICAgICAgICBMYXlvdXRPYmplY3QgICAgICAgPT4gJExheW91dE9iamVjdCwKICAgICAgICAgICAgICAgICAgICBUeXBlICAgICAgICAgICAgICAgPT4gJFByZWZlcmVuY2UtPntUeXBlfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBzZXQgc2VhcmNoIHBhcmFtZXRlcgogICAgICAgICAgICAgICAgaWYgKCBkZWZpbmVkICRTZWFyY2hQYXJhbWV0ZXIgKSB7CiAgICAgICAgICAgICAgICAgICAgJER5bmFtaWNGaWVsZFNlYXJjaFBhcmFtZXRlcnN7ICdEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9CiAgICAgICAgICAgICAgICAgICAgICAgID0gJFNlYXJjaFBhcmFtZXRlci0+e1BhcmFtZXRlcn07CgogICAgICAgICAgICAgICAgICAgICMgc2V0IHZhbHVlIHRvIGRpc3BsYXkKICAgICAgICAgICAgICAgICAgICAkRHluYW1pY0ZpZWxkU2VhcmNoRGlzcGxheXsgJ0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0KICAgICAgICAgICAgICAgICAgICAgICAgPSAkU2VhcmNoUGFyYW1ldGVyLT57RGlzcGxheX07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgcHJlcGFyZSBmdWxsLXRleHQgc2VhcmNoCiAgICAgICAgaWYgKCAkR2V0UGFyYW17RnVsbHRleHR9ICkgewogICAgICAgICAgICAkR2V0UGFyYW17Q29udGVudFNlYXJjaH0gPSAnT1InOwogICAgICAgICAgICAkR2V0UGFyYW17V2hhdH0gICAgICAgICAgPSAkR2V0UGFyYW17RnVsbHRleHR9OwogICAgICAgIH0KCiAgICAgICAgIyBwcmVwYXJlIHZvdGVzIHNlYXJjaAogICAgICAgIGlmICggSXNOdW1iZXIoICRHZXRQYXJhbXtWb3RlU2VhcmNofSApICYmICRHZXRQYXJhbXtWb3RlU2VhcmNoT3B0aW9ufSApIHsKICAgICAgICAgICAgJEdldFBhcmFte1ZvdGVzfSA9IHsKICAgICAgICAgICAgICAgICRHZXRQYXJhbXtWb3RlU2VhcmNoVHlwZX0gPT4gJEdldFBhcmFte1ZvdGVTZWFyY2h9CiAgICAgICAgICAgIH07CiAgICAgICAgfQoKICAgICAgICAjIHByZXBhcmUgcmF0ZSBzZWFyY2gKICAgICAgICBpZiAoIElzTnVtYmVyKCAkR2V0UGFyYW17UmF0ZVNlYXJjaH0gKSAmJiAkR2V0UGFyYW17UmF0ZVNlYXJjaE9wdGlvbn0gKSB7CiAgICAgICAgICAgICRHZXRQYXJhbXtSYXRlfSA9IHsKICAgICAgICAgICAgICAgICRHZXRQYXJhbXtSYXRlU2VhcmNoVHlwZX0gPT4gJEdldFBhcmFte1JhdGVTZWFyY2h9CiAgICAgICAgICAgIH07CiAgICAgICAgfQoKICAgICAgICBteSAlVGltZU1hcCA9ICgKICAgICAgICAgICAgSXRlbUNyZWF0ZSA9PiAnVGltZScsCiAgICAgICAgKTsKCiAgICAgICAgZm9yIG15ICRUaW1lVHlwZSAoIHNvcnQga2V5cyAlVGltZU1hcCApIHsKCiAgICAgICAgICAgICMgZ2V0IGNyZWF0ZSB0aW1lIHNldHRpbmdzCiAgICAgICAgICAgIGlmICggISRHZXRQYXJhbXsgJFRpbWVNYXB7JFRpbWVUeXBlfSAuICdTZWFyY2hUeXBlJyB9ICkgewoKICAgICAgICAgICAgICAgICMgZG8gbm90aGluZyB3aXRoIHRpbWUgc3R1ZmYKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRHZXRQYXJhbXsgJFRpbWVNYXB7JFRpbWVUeXBlfSAuICdTZWFyY2hUeXBlJyB9IGVxICdUaW1lU2xvdCcgKSB7CiAgICAgICAgICAgICAgICBmb3IgbXkgJEtleSAocXcoTW9udGggRGF5KSkgewogICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVTdGFydCcgLiAkS2V5IH0KICAgICAgICAgICAgICAgICAgICAgICAgPSBzcHJpbnRmKCAiJTAyZCIsICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVTdGFydCcgLiAkS2V5IH0gKTsKICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lU3RvcCcgLiAkS2V5IH0KICAgICAgICAgICAgICAgICAgICAgICAgPSBzcHJpbnRmKCAiJTAyZCIsICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVTdG9wJyAuICRLZXkgfSApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVTdGFydERheScgfQogICAgICAgICAgICAgICAgICAgICYmICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVTdGFydE1vbnRoJyB9CiAgICAgICAgICAgICAgICAgICAgJiYgJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVN0YXJ0WWVhcicgfQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lTmV3ZXJEYXRlJyB9ID0gJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVN0YXJ0WWVhcicgfSAuICctJwogICAgICAgICAgICAgICAgICAgICAgICAuICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVTdGFydE1vbnRoJyB9IC4gJy0nCiAgICAgICAgICAgICAgICAgICAgICAgIC4gJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVN0YXJ0RGF5JyB9CiAgICAgICAgICAgICAgICAgICAgICAgIC4gJyAwMDowMDowMCc7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVN0b3BEYXknIH0KICAgICAgICAgICAgICAgICAgICAmJiAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lU3RvcE1vbnRoJyB9CiAgICAgICAgICAgICAgICAgICAgJiYgJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVN0b3BZZWFyJyB9CiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVPbGRlckRhdGUnIH0gPSAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lU3RvcFllYXInIH0gLiAnLScKICAgICAgICAgICAgICAgICAgICAgICAgLiAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lU3RvcE1vbnRoJyB9IC4gJy0nCiAgICAgICAgICAgICAgICAgICAgICAgIC4gJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVN0b3BEYXknIH0KICAgICAgICAgICAgICAgICAgICAgICAgLiAnIDIzOjU5OjU5JzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRHZXRQYXJhbXsgJFRpbWVNYXB7JFRpbWVUeXBlfSAuICdTZWFyY2hUeXBlJyB9IGVxICdUaW1lUG9pbnQnICkgewogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVQb2ludCcgfQogICAgICAgICAgICAgICAgICAgICYmICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVQb2ludFN0YXJ0JyB9CiAgICAgICAgICAgICAgICAgICAgJiYgJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVBvaW50Rm9ybWF0JyB9CiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIG15ICRUaW1lID0gMDsKICAgICAgICAgICAgICAgICAgICBpZiAoICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVQb2ludEZvcm1hdCcgfSBlcSAnbWludXRlJyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJFRpbWUgPSAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lUG9pbnQnIH07CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2lmICggJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVBvaW50Rm9ybWF0JyB9IGVxICdob3VyJyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJFRpbWUgPSAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lUG9pbnQnIH0gKiA2MDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzaWYgKCAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lUG9pbnRGb3JtYXQnIH0gZXEgJ2RheScgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRUaW1lID0gJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVBvaW50JyB9ICogNjAgKiAyNDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzaWYgKCAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lUG9pbnRGb3JtYXQnIH0gZXEgJ3dlZWsnICkgewogICAgICAgICAgICAgICAgICAgICAgICAkVGltZSA9ICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVQb2ludCcgfSAqIDYwICogMjQgKiA3OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNpZiAoICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVQb2ludEZvcm1hdCcgfSBlcSAnbW9udGgnICkgewogICAgICAgICAgICAgICAgICAgICAgICAkVGltZSA9ICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVQb2ludCcgfSAqIDYwICogMjQgKiAzMDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzaWYgKCAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lUG9pbnRGb3JtYXQnIH0gZXEgJ3llYXInICkgewogICAgICAgICAgICAgICAgICAgICAgICAkVGltZSA9ICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVQb2ludCcgfSAqIDYwICogMjQgKiAzNjU7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmICggJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZVBvaW50U3RhcnQnIH0gZXEgJ0JlZm9yZScgKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAjIG1vcmUgdGhhbiAuLi4gYWdvCiAgICAgICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVPbGRlck1pbnV0ZXMnIH0gPSAkVGltZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzaWYgKCAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lUG9pbnRTdGFydCcgfSBlcSAnTmV4dCcgKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAjIHdpdGhpbiBuZXh0CiAgICAgICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVOZXdlck1pbnV0ZXMnIH0gPSAwOwogICAgICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17ICRUaW1lVHlwZSAuICdUaW1lT2xkZXJNaW51dGVzJyB9ID0gLSRUaW1lOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgIyB3aXRoaW4gbGFzdCAuLi4KICAgICAgICAgICAgICAgICAgICAgICAgJEdldFBhcmFteyAkVGltZVR5cGUgLiAnVGltZU9sZGVyTWludXRlcycgfSA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXsgJFRpbWVUeXBlIC4gJ1RpbWVOZXdlck1pbnV0ZXMnIH0gPSAkVGltZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIG15ICRGQVFPYmplY3QgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RkFRJyk7CiAgICAgICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgICAgICMgc2V0IGRlZmF1bHQgaW50ZXJmYWNlIHNldHRpbmdzCiAgICAgICAgbXkgJEludGVyZmFjZSA9ICRGQVFPYmplY3QtPlN0YXRlVHlwZUdldCgKICAgICAgICAgICAgTmFtZSAgID0+ICdwdWJsaWMnLAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CiAgICAgICAgbXkgJEludGVyZmFjZVN0YXRlcyA9ICRGQVFPYmplY3QtPlN0YXRlVHlwZUxpc3QoCiAgICAgICAgICAgIFR5cGVzICA9PiAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6UHVibGljOjpTdGF0ZVR5cGVzJyksCiAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBwZXJmb3JtIEZBUSBzZWFyY2gKICAgICAgICBteSBAVmlld2FibGVJdGVtSURzID0gJEZBUU9iamVjdC0+RkFRU2VhcmNoKAogICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgICAgID0+IFskU29ydEJ5XSwKICAgICAgICAgICAgT3JkZXJCeURpcmVjdGlvbiAgICA9PiBbJE9yZGVyQnldLAogICAgICAgICAgICBMaW1pdCAgICAgICAgICAgICAgID0+ICRTZWFyY2hMaW1pdCwKICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgIFN0YXRlcyAgICAgICAgICAgICAgPT4gJEludGVyZmFjZVN0YXRlcywKICAgICAgICAgICAgSW50ZXJmYWNlICAgICAgICAgICA9PiAkSW50ZXJmYWNlLAogICAgICAgICAgICBDb250ZW50U2VhcmNoUHJlZml4ID0+ICcqJywKICAgICAgICAgICAgQ29udGVudFNlYXJjaFN1ZmZpeCA9PiAnKicsCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgJUR5bmFtaWNGaWVsZFNlYXJjaFBhcmFtZXRlcnMsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJE11bHRpTGFuZ3VhZ2UgICAgICA9ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpNdWx0aUxhbmd1YWdlJyk7CiAgICAgICAgbXkgJER5bmFtaWNGaWVsZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKTsKCiAgICAgICAgIyBDU1Ygb3V0cHV0CiAgICAgICAgaWYgKCAkR2V0UGFyYW17UmVzdWx0Rm9ybX0gZXEgJ0NTVicgKSB7CiAgICAgICAgICAgIG15IEBUbXBDU1ZIZWFkOwogICAgICAgICAgICBteSBAQ1NWSGVhZDsKICAgICAgICAgICAgbXkgQENTVkRhdGE7CgogICAgICAgICAgICAjIGdldCB0aGUgRkFRIGR5bmFtaWMgZmllbGRzIGZvciBDU1YgZGlzcGxheQogICAgICAgICAgICBteSAkQ1NWRHluYW1pY0ZpZWxkID0gJER5bmFtaWNGaWVsZE9iamVjdC0+RHluYW1pY0ZpZWxkTGlzdEdldCgKICAgICAgICAgICAgICAgIFZhbGlkICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBPYmplY3RUeXBlICA9PiAnRkFRJywKICAgICAgICAgICAgICAgIEZpZWxkRmlsdGVyID0+ICRDb25maWctPntTZWFyY2hDU1ZEeW5hbWljRmllbGR9IHx8IHt9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyByZWR1Y2UgdGhlIGR5bmFtaWMgZmllbGRzIHRvIG9ubHkgdGhlIG9uZXMgdGhhdCBhcmUgZGVzaWduZWQgZm9yIGN1c3RvbWVyIGludGVyZmFjZQogICAgICAgICAgICBteSBAQ1NWQ3VzdG9tZXJEeW5hbWljRmllbGRzOwogICAgICAgICAgICBEWU5BTUlDRklFTERDT05GSUc6CiAgICAgICAgICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHskQ1NWRHluYW1pY0ZpZWxkfSApIHsKICAgICAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEQ09ORklHIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKCiAgICAgICAgICAgICAgICBteSAkSXNDdXN0b21lckludGVyZmFjZUNhcGFibGUgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+SGFzQmVoYXZpb3IoCiAgICAgICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICAgICAgICAgQmVoYXZpb3IgICAgICAgICAgID0+ICdJc0N1c3RvbWVySW50ZXJmYWNlQ2FwYWJsZScsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTERDT05GSUcgaWYgISRJc0N1c3RvbWVySW50ZXJmYWNlQ2FwYWJsZTsKCiAgICAgICAgICAgICAgICBwdXNoIEBDU1ZDdXN0b21lckR5bmFtaWNGaWVsZHMsICREeW5hbWljRmllbGRDb25maWc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJENTVkR5bmFtaWNGaWVsZCA9IFxAQ1NWQ3VzdG9tZXJEeW5hbWljRmllbGRzOwoKICAgICAgICAgICAgZm9yIG15ICRJdGVtSUQgKEBWaWV3YWJsZUl0ZW1JRHMpIHsKCiAgICAgICAgICAgICAgICBteSAlRkFRRGF0YSA9ICRGQVFPYmplY3QtPkZBUUdldCgKICAgICAgICAgICAgICAgICAgICBJdGVtSUQgICAgICAgID0+ICRJdGVtSUQsCiAgICAgICAgICAgICAgICAgICAgSXRlbUZpZWxkcyAgICA9PiAwLAogICAgICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZHMgPT4gMSwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBnZXQgaW5mbyBmb3IgQ1NWIG91dHB1dAogICAgICAgICAgICAgICAgbXkgJUNTVkluZm8gPSAoJUZBUURhdGEpOwogICAgICAgICAgICAgICAgJENTVkluZm97Q2hhbmdlZH0gPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5Gb3JtYXRUaW1lU3RyaW5nKAogICAgICAgICAgICAgICAgICAgICRGQVFEYXRhe0NoYW5nZWR9LAogICAgICAgICAgICAgICAgICAgICdEYXRlRm9ybWF0TG9uZycsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgQ1NWIHF1b3RlCiAgICAgICAgICAgICAgICBpZiAoICFAQ1NWSGVhZCApIHsKICAgICAgICAgICAgICAgICAgICBAVG1wQ1NWSGVhZCA9IHF3KCBGQVFOdW1iZXIgVGl0bGUgQ2F0ZWdvcnkpOwogICAgICAgICAgICAgICAgICAgIEBDU1ZIZWFkICAgID0gcXcoIEZBUU51bWJlciBUaXRsZSBDYXRlZ29yeSk7CgogICAgICAgICAgICAgICAgICAgICMgaW5zZXJ0IGxhbmd1YWdlIGhlYWRlcgogICAgICAgICAgICAgICAgICAgIGlmICgkTXVsdGlMYW5ndWFnZSkgewogICAgICAgICAgICAgICAgICAgICAgICBwdXNoIEBUbXBDU1ZIZWFkLCAnTGFuZ3VhZ2UnOwogICAgICAgICAgICAgICAgICAgICAgICBwdXNoIEBDU1ZIZWFkLCAgICAnTGFuZ3VhZ2UnOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgcHVzaCBAQ1NWSGVhZCwgICAgJ0NoYW5nZWQnOwogICAgICAgICAgICAgICAgICAgIHB1c2ggQFRtcENTVkhlYWQsICdDaGFuZ2VkJzsKCiAgICAgICAgICAgICAgICAgICAgIyBpbmNsdWRlIHRoZSBzZWxlY3RlZCBkeW5hbWljIGZpZWxkcyBvbiBDVlMgcmVzdWx0cwogICAgICAgICAgICAgICAgICAgIERZTkFNSUNGSUVMRDoKICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7JENTVkR5bmFtaWNGaWVsZH0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgISREeW5hbWljRmllbGRDb25maWctPntOYW1lfTsKICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IGVxICcnOwoKICAgICAgICAgICAgICAgICAgICAgICAgcHVzaCBAVG1wQ1NWSGVhZCwgJ0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9OwogICAgICAgICAgICAgICAgICAgICAgICBwdXNoIEBDU1ZIZWFkLCAgICAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TGFiZWx9OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIG15IEBEYXRhOwogICAgICAgICAgICAgICAgZm9yIG15ICRIZWFkZXIgKEBDU1ZIZWFkKSB7CgogICAgICAgICAgICAgICAgICAgICMgY2hlY2sgaWYgaGVhZGVyIGlzIGEgZHluYW1pYyBmaWVsZCBhbmQgZ2V0IHRoZSB2YWx1ZSBmcm9tIGR5bmFtaWMgZmllbGQKICAgICAgICAgICAgICAgICAgICAjIGJhY2tlbmQKICAgICAgICAgICAgICAgICAgICBpZiAoICRIZWFkZXIgPX4gbXtcQSBEeW5hbWljRmllbGRfICggW2EtekEtWlxkXSsgKSBcen14bXMgKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAjIGxvb3Agb3ZlciB0aGUgZHluYW1pYyBmaWVsZHMgY29uZmlndXJlZCBmb3IgQ1NWIG91dHB1dAogICAgICAgICAgICAgICAgICAgICAgICBEWU5BTUlDRklFTEQ6CiAgICAgICAgICAgICAgICAgICAgICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHskQ1NWRHluYW1pY0ZpZWxkfSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICEkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX07CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBza2lwIGFsbCBmaWVsZHMgdGhhdCBkb2VzIG5vdCBtYXRjaCB3aXRoIGN1cnJlbnQgZmllbGQgbmFtZSAoJDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHdpdGggb3V0IHRoZSAnRHluYW1pY0ZpZWxkXycgcHJlZml4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gbmUgJDE7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBnZXQgdGhlIHZhbHVlIGFzIGZvciBwcmludCAodG8gY29ycmVjdGx5IGRpc3BsYXkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBteSAkVmFsdWVTdHJnID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPkRpc3BsYXlWYWx1ZVJlbmRlcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJENTVkluZm97JEhlYWRlcn0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSFRNTE91dHB1dCAgICAgICAgID0+IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGF5b3V0T2JqZWN0ICAgICAgID0+ICRMYXlvdXRPYmplY3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaCBARGF0YSwgJFZhbHVlU3RyZy0+e1ZhbHVlfTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHRlcm1pbmF0ZSB0aGUgRFlOQU1JQ0ZJRUxEIGxvb3AKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3QgRFlOQU1JQ0ZJRUxEOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAjIG90aGVyd2lzZSByZXRyaWV2ZSBkYXRhIGZyb20gRkFRIGl0ZW0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAkSGVhZGVyIGVxICdGQVFOdW1iZXInICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaCBARGF0YSwgJENTVkluZm97J051bWJlcid9OwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2lmICggJEhlYWRlciBlcSAnQ2F0ZWdvcnknICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaCBARGF0YSwgJENTVkluZm97J0NhdGVnb3J5TmFtZSd9OwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaCBARGF0YSwgJENTVkluZm97JEhlYWRlcn07CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBwdXNoIEBDU1ZEYXRhLCBcQERhdGE7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgQ1NWIHF1b3RlCiAgICAgICAgICAgICMgdHJhbnNsYXRlIG5vbiBleGlzdGluZyBoZWFkZXIgbWF5IHJlc3VsdCBpbiBhIGdhcmJhZ2UgZmlsZQogICAgICAgICAgICBpZiAoICFAQ1NWSGVhZCApIHsKICAgICAgICAgICAgICAgIEBUbXBDU1ZIZWFkID0gcXcoRkFRTnVtYmVyIFRpdGxlIENhdGVnb3J5KTsKICAgICAgICAgICAgICAgIEBDU1ZIZWFkICAgID0gcXcoRkFRTnVtYmVyIFRpdGxlIENhdGVnb3J5KTsKCiAgICAgICAgICAgICAgICAjIGluc2VydCBsYW5ndWFnZSBoZWFkZXIKICAgICAgICAgICAgICAgIGlmICgkTXVsdGlMYW5ndWFnZSkgewogICAgICAgICAgICAgICAgICAgIHB1c2ggQFRtcENTVkhlYWQsICdMYW5ndWFnZSc7CiAgICAgICAgICAgICAgICAgICAgcHVzaCBAQ1NWSGVhZCwgICAgJ0xhbmd1YWdlJzsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBwdXNoIEBUbXBDU1ZIZWFkLCAnQ2hhbmdlZCc7CiAgICAgICAgICAgICAgICBwdXNoIEBDU1ZIZWFkLCAgICAnQ2hhbmdlZCc7CgogICAgICAgICAgICAgICAgIyBpbmNsdWRlIHRoZSBzZWxlY3RlZCBkeW5hbWljIGZpZWxkcyBvbiBDU1YgcmVzdWx0cwogICAgICAgICAgICAgICAgRFlOQU1JQ0ZJRUxEOgogICAgICAgICAgICAgICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyRDU1ZEeW5hbWljRmllbGR9ICkgewogICAgICAgICAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKICAgICAgICAgICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9OwogICAgICAgICAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSBlcSAnJzsKCiAgICAgICAgICAgICAgICAgICAgcHVzaCBAVG1wQ1NWSGVhZCwgJ0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9OwogICAgICAgICAgICAgICAgICAgIHB1c2ggQENTVkhlYWQsICAgICREeW5hbWljRmllbGRDb25maWctPntMYWJlbH07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgdHJhbnNsYXRlIGhlYWRlcnMKICAgICAgICAgICAgZm9yIG15ICRIZWFkZXIgKEBDU1ZIZWFkKSB7CgogICAgICAgICAgICAgICAgIyByZXBsYWNlIEZBUU51bWJlciBoZWFkZXIgd2l0aCB0aGUgY3VycmVudCBGQVFIb29rIGZyb20gY29uZmlnCiAgICAgICAgICAgICAgICBpZiAoICRIZWFkZXIgZXEgJ0ZBUU51bWJlcicgKSB7CiAgICAgICAgICAgICAgICAgICAgJEhlYWRlciA9ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpGQVFIb29rJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkSGVhZGVyID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCRIZWFkZXIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGFzc2VtYmxlIENTViBkYXRhCiAgICAgICAgICAgIG15ICRDU1YgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q1NWJyktPkFycmF5MkNTVigKICAgICAgICAgICAgICAgIEhlYWQgICAgICA9PiBcQENTVkhlYWQsCiAgICAgICAgICAgICAgICBEYXRhICAgICAgPT4gXEBDU1ZEYXRhLAogICAgICAgICAgICAgICAgU2VwYXJhdG9yID0+ICRTZWxmLT57VXNlckNTVlNlcGFyYXRvcn0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIFJldHVybiBDU1YgdG8gZG93bmxvYWQuCiAgICAgICAgICAgIG15ICRDU1ZGaWxlID0gJ0ZBUV9zZWFyY2gnOwoKICAgICAgICAgICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CiAgICAgICAgICAgIG15ICREYXRlVGltZSAgICAgICA9ICREYXRlVGltZU9iamVjdC0+R2V0KCk7CiAgICAgICAgICAgIG15ICRZICAgICAgICAgICAgICA9ICREYXRlVGltZS0+e1llYXJ9OwogICAgICAgICAgICBteSAkTSAgICAgICAgICAgICAgPSBzcHJpbnRmKCAiJTAyZCIsICREYXRlVGltZS0+e01vbnRofSApOwogICAgICAgICAgICBteSAkRCAgICAgICAgICAgICAgPSBzcHJpbnRmKCAiJTAyZCIsICREYXRlVGltZS0+e0RheX0gKTsKICAgICAgICAgICAgbXkgJGggICAgICAgICAgICAgID0gc3ByaW50ZiggIiUwMmQiLCAkRGF0ZVRpbWUtPntIb3VyfSApOwogICAgICAgICAgICBteSAkbSAgICAgICAgICAgICAgPSBzcHJpbnRmKCAiJTAyZCIsICREYXRlVGltZS0+e01pbnV0ZX0gKTsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkF0dGFjaG1lbnQoCiAgICAgICAgICAgICAgICBGaWxlbmFtZSAgICA9PiAkQ1NWRmlsZSAuICJfIiAuICIkWS0kTS0kRCIgLiAiXyIgLiAiJGgtJG0uY3N2IiwKICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICJ0ZXh0L2NzdjsgY2hhcnNldD0iIC4gJExheW91dE9iamVjdC0+e1VzZXJDaGFyc2V0fSwKICAgICAgICAgICAgICAgIENvbnRlbnQgICAgID0+ICRDU1YsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2lmICggJEdldFBhcmFte1Jlc3VsdEZvcm19IGVxICdQcmludCcgKSB7CgogICAgICAgICAgICBteSAkUERGT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlBERicpOwoKICAgICAgICAgICAgbXkgQFBERkRhdGE7CiAgICAgICAgICAgIGZvciBteSAkSXRlbUlEIChAVmlld2FibGVJdGVtSURzKSB7CgogICAgICAgICAgICAgICAgbXkgJUZBUURhdGEgPSAkRkFRT2JqZWN0LT5GQVFHZXQoCiAgICAgICAgICAgICAgICAgICAgSXRlbUlEICAgICA9PiAkSXRlbUlELAogICAgICAgICAgICAgICAgICAgIEl0ZW1GaWVsZHMgPT4gMCwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBhZGQgdGFibGUgYmxvY2sKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1JlY29yZCcsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7JUZBUURhdGF9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIGFkZCBsYW5ndWFnZSBkYXRhCiAgICAgICAgICAgICAgICBpZiAoJE11bHRpTGFuZ3VhZ2UpIHsKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUmVjb3JkTGFuZ3VhZ2UnLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHslRkFRRGF0YX0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIHNldCBjaGFuZ2UgZGF0ZSB0byBsb25nIGZvcm1hdAogICAgICAgICAgICAgICAgbXkgJENoYW5nZWQgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5Gb3JtYXRUaW1lU3RyaW5nKAogICAgICAgICAgICAgICAgICAgICRGQVFEYXRhe0NoYW5nZWR9LAogICAgICAgICAgICAgICAgICAgICdEYXRlRm9ybWF0TG9uZycsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgY3JlYXRlIFBERiBSb3dzCiAgICAgICAgICAgICAgICBteSBAUERGUm93OwogICAgICAgICAgICAgICAgcHVzaCBAUERGUm93LCAkRkFRRGF0YXtOdW1iZXJ9OwogICAgICAgICAgICAgICAgcHVzaCBAUERGUm93LCAkRkFRRGF0YXtUaXRsZX07CiAgICAgICAgICAgICAgICBwdXNoIEBQREZSb3csICRGQVFEYXRhe0NhdGVnb3J5TmFtZX07CgogICAgICAgICAgICAgICAgIyBjcmVhdGUgbGFuZ3VhZ2Ugcm93CiAgICAgICAgICAgICAgICBpZiAoJE11bHRpTGFuZ3VhZ2UpIHsKICAgICAgICAgICAgICAgICAgICBwdXNoIEBQREZSb3csICRGQVFEYXRhe0xhbmd1YWdlfTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBwdXNoIEBQREZSb3csICAkRkFRRGF0YXtTdGF0ZX07CiAgICAgICAgICAgICAgICBwdXNoIEBQREZSb3csICAkQ2hhbmdlZDsKICAgICAgICAgICAgICAgIHB1c2ggQFBERkRhdGEsIFxAUERGUm93OwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIFBERiBPdXRwdXQKICAgICAgICAgICAgbXkgJFRpdGxlID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdGQVEnKSAuICcgJwogICAgICAgICAgICAgICAgLiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ1NlYXJjaCcpOwogICAgICAgICAgICBteSAkUGFnZSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnUGFnZScpOwogICAgICAgICAgICBteSAkVGltZSA9ICRMYXlvdXRPYmplY3QtPntUaW1lfTsKCiAgICAgICAgICAgICMgZ2V0IG1heGltdW0gbnVtYmVyIG9mIHBhZ2VzCiAgICAgICAgICAgIG15ICRNYXhQYWdlcyA9ICRDb25maWdPYmplY3QtPkdldCgnUERGOjpNYXhQYWdlcycpOwogICAgICAgICAgICBpZiAoICEkTWF4UGFnZXMgfHwgJE1heFBhZ2VzIDwgMSB8fCAkTWF4UGFnZXMgPiAxMDAwICkgewogICAgICAgICAgICAgICAgJE1heFBhZ2VzID0gMTAwOwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAkQ2VsbERhdGE7CgogICAgICAgICAgICAjIG91dHB1dCAnTm8gUmVzdWx0JywgaWYgbm8gY29udGVudCB3YXMgZ2l2ZW4KICAgICAgICAgICAgaWYgKEBQREZEYXRhKSB7CgogICAgICAgICAgICAgICAgIyBjcmVhdGUgdGhlIGhlYWRlcgogICAgICAgICAgICAgICAgJENlbGxEYXRhLT5bMF0tPlswXS0+e0NvbnRlbnR9ID0gJENvbmZpZ09iamVjdC0+R2V0KCdGQVE6OkZBUUhvb2snKTsKICAgICAgICAgICAgICAgICRDZWxsRGF0YS0+WzBdLT5bMF0tPntGb250fSAgICA9ICdQcm9wb3J0aW9uYWxCb2xkJzsKICAgICAgICAgICAgICAgICRDZWxsRGF0YS0+WzBdLT5bMV0tPntDb250ZW50fSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnVGl0bGUnKTsKICAgICAgICAgICAgICAgICRDZWxsRGF0YS0+WzBdLT5bMV0tPntGb250fSAgICA9ICdQcm9wb3J0aW9uYWxCb2xkJzsKICAgICAgICAgICAgICAgICRDZWxsRGF0YS0+WzBdLT5bMl0tPntDb250ZW50fSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnQ2F0ZWdvcnknKTsKICAgICAgICAgICAgICAgICRDZWxsRGF0YS0+WzBdLT5bMl0tPntGb250fSAgICA9ICdQcm9wb3J0aW9uYWxCb2xkJzsKCiAgICAgICAgICAgICAgICAjIHN0b3JlIHRoZSBjb3JyZWN0IGhlYWRlciBpbmRleAogICAgICAgICAgICAgICAgbXkgJE5leHRIZWFkZXJJbmRleCA9IDM7CgogICAgICAgICAgICAgICAgIyBhZGQgbGFuZ3VhZ2UgaGVhZGVyCiAgICAgICAgICAgICAgICBpZiAoJE11bHRpTGFuZ3VhZ2UpIHsKICAgICAgICAgICAgICAgICAgICAkQ2VsbERhdGEtPlswXS0+WzNdLT57Q29udGVudH0gPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ0xhbmd1YWdlJyk7CiAgICAgICAgICAgICAgICAgICAgJENlbGxEYXRhLT5bMF0tPlszXS0+e0ZvbnR9ICAgID0gJ1Byb3BvcnRpb25hbEJvbGQnOwogICAgICAgICAgICAgICAgICAgICROZXh0SGVhZGVySW5kZXggICAgICAgICAgICAgICA9IDQ7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJENlbGxEYXRhLT5bMF0tPlskTmV4dEhlYWRlckluZGV4XS0+e0NvbnRlbnR9ID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdTdGF0ZScpOwogICAgICAgICAgICAgICAgJENlbGxEYXRhLT5bMF0tPlskTmV4dEhlYWRlckluZGV4XS0+e0ZvbnR9ICAgID0gJ1Byb3BvcnRpb25hbEJvbGQnOwoKICAgICAgICAgICAgICAgICRDZWxsRGF0YS0+WzBdLT5bICROZXh0SGVhZGVySW5kZXggKyAxIF0tPntDb250ZW50fQogICAgICAgICAgICAgICAgICAgID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdDaGFuZ2VkJyk7CiAgICAgICAgICAgICAgICAkQ2VsbERhdGEtPlswXS0+WyAkTmV4dEhlYWRlckluZGV4ICsgMSBdLT57Rm9udH0gPSAnUHJvcG9ydGlvbmFsQm9sZCc7CgogICAgICAgICAgICAgICAgIyBjcmVhdGUgdGhlIGNvbnRlbnQgYXJyYXkKICAgICAgICAgICAgICAgIG15ICRDb3VudGVyUm93ID0gMTsKICAgICAgICAgICAgICAgIGZvciBteSAkUm93IChAUERGRGF0YSkgewogICAgICAgICAgICAgICAgICAgIG15ICRDb3VudGVyQ29sdW1uID0gMDsKICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJENvbnRlbnQgKCBAeyRSb3d9ICkgewogICAgICAgICAgICAgICAgICAgICAgICAkQ2VsbERhdGEtPlskQ291bnRlclJvd10tPlskQ291bnRlckNvbHVtbl0tPntDb250ZW50fSA9ICRDb250ZW50OwogICAgICAgICAgICAgICAgICAgICAgICAkQ291bnRlckNvbHVtbisrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAkQ291bnRlclJvdysrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJENlbGxEYXRhLT5bMF0tPlswXS0+e0NvbnRlbnR9ID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdObyBSZXN1bHQhJyk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgcGFnZSBwYXJhbXMKICAgICAgICAgICAgbXkgJVBhZ2VQYXJhbTsKICAgICAgICAgICAgJFBhZ2VQYXJhbXtQYWdlT3JpZW50YXRpb259ID0gJ2xhbmRzY2FwZSc7CiAgICAgICAgICAgICRQYWdlUGFyYW17TWFyZ2luVG9wfSAgICAgICA9IDMwOwogICAgICAgICAgICAkUGFnZVBhcmFte01hcmdpblJpZ2h0fSAgICAgPSA0MDsKICAgICAgICAgICAgJFBhZ2VQYXJhbXtNYXJnaW5Cb3R0b219ICAgID0gNDA7CiAgICAgICAgICAgICRQYWdlUGFyYW17TWFyZ2luTGVmdH0gICAgICA9IDQwOwogICAgICAgICAgICAkUGFnZVBhcmFte0hlYWRlclJpZ2h0fSAgICAgPSAkVGl0bGU7CgogICAgICAgICAgICAjIHRhYmxlIHBhcmFtcwogICAgICAgICAgICBteSAlVGFibGVQYXJhbTsKICAgICAgICAgICAgJFRhYmxlUGFyYW17Q2VsbERhdGF9ICAgICAgICAgICAgPSAkQ2VsbERhdGE7CiAgICAgICAgICAgICRUYWJsZVBhcmFte1R5cGV9ICAgICAgICAgICAgICAgID0gJ0N1dCc7CiAgICAgICAgICAgICRUYWJsZVBhcmFte0ZvbnRTaXplfSAgICAgICAgICAgID0gNjsKICAgICAgICAgICAgJFRhYmxlUGFyYW17Qm9yZGVyfSAgICAgICAgICAgICAgPSAwOwogICAgICAgICAgICAkVGFibGVQYXJhbXtCYWNrZ3JvdW5kQ29sb3JFdmVufSA9ICcjREREREREJzsKICAgICAgICAgICAgJFRhYmxlUGFyYW17UGFkZGluZ30gICAgICAgICAgICAgPSAxOwogICAgICAgICAgICAkVGFibGVQYXJhbXtQYWRkaW5nVG9wfSAgICAgICAgICA9IDM7CiAgICAgICAgICAgICRUYWJsZVBhcmFte1BhZGRpbmdCb3R0b219ICAgICAgID0gMzsKCiAgICAgICAgICAgICMgY3JlYXRlIG5ldyBQREYgZG9jdW1lbnQKICAgICAgICAgICAgJFBERk9iamVjdC0+RG9jdW1lbnROZXcoCiAgICAgICAgICAgICAgICBUaXRsZSAgPT4gJENvbmZpZ09iamVjdC0+R2V0KCdQcm9kdWN0JykgLiAnOiAnIC4gJFRpdGxlLAogICAgICAgICAgICAgICAgRW5jb2RlID0+ICRMYXlvdXRPYmplY3QtPntVc2VyQ2hhcnNldH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHN0YXJ0IHRhYmxlIG91dHB1dAogICAgICAgICAgICAkUERGT2JqZWN0LT5QYWdlTmV3KAogICAgICAgICAgICAgICAgJVBhZ2VQYXJhbSwKICAgICAgICAgICAgICAgIEZvb3RlclJpZ2h0ID0+ICRQYWdlIC4gJyAxJywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRQREZPYmplY3QtPlBvc2l0aW9uU2V0KAogICAgICAgICAgICAgICAgTW92ZSA9PiAncmVsYXRpdicsCiAgICAgICAgICAgICAgICBZICAgID0+IC02LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBvdXRwdXQgdGl0bGUKICAgICAgICAgICAgJFBERk9iamVjdC0+VGV4dCgKICAgICAgICAgICAgICAgIFRleHQgICAgID0+ICRUaXRsZSwKICAgICAgICAgICAgICAgIEZvbnRTaXplID0+IDEzLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJFBERk9iamVjdC0+UG9zaXRpb25TZXQoCiAgICAgICAgICAgICAgICBNb3ZlID0+ICdyZWxhdGl2JywKICAgICAgICAgICAgICAgIFkgICAgPT4gLTYsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIG91dHB1dCAicHJpbnRlZCBieSIKICAgICAgICAgICAgJFBERk9iamVjdC0+VGV4dCgKICAgICAgICAgICAgICAgIFRleHQgICAgID0+ICRUaW1lLAogICAgICAgICAgICAgICAgRm9udFNpemUgPT4gOSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRQREZPYmplY3QtPlBvc2l0aW9uU2V0KAogICAgICAgICAgICAgICAgTW92ZSA9PiAncmVsYXRpdicsCiAgICAgICAgICAgICAgICBZICAgID0+IC0xNCwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIFBBR0U6CiAgICAgICAgICAgIGZvciBteSAkUGFnZUNvdW50ICggMiAuLiAkTWF4UGFnZXMgKSB7CgogICAgICAgICAgICAgICAgIyBvdXRwdXQgdGFibGUgKG9yIGEgZnJhZ21lbnQgb2YgaXQpCiAgICAgICAgICAgICAgICAlVGFibGVQYXJhbSA9ICRQREZPYmplY3QtPlRhYmxlKCAlVGFibGVQYXJhbSwgKTsKCiAgICAgICAgICAgICAgICAjIHN0b3Agb3V0cHV0IG9yIGFub3RoZXIgcGFnZQogICAgICAgICAgICAgICAgaWYgKCAkVGFibGVQYXJhbXtTdGF0ZX0gKSB7CiAgICAgICAgICAgICAgICAgICAgbGFzdCBQQUdFOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJFBERk9iamVjdC0+UGFnZU5ldygKICAgICAgICAgICAgICAgICAgICAgICAgJVBhZ2VQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgRm9vdGVyUmlnaHQgPT4gJFBhZ2UgLiAnICcgLiAkUGFnZUNvdW50LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgUmV0dXJuIHRoZSBQREYgZG9jdW1lbnQuCiAgICAgICAgICAgIG15ICRGaWxlbmFtZSA9ICdGQVFfc2VhcmNoJzsKCiAgICAgICAgICAgIG15ICREYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpOwogICAgICAgICAgICBteSAkRGF0ZVRpbWUgICAgICAgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwogICAgICAgICAgICBteSAkWSAgICAgICAgICAgICAgPSAkRGF0ZVRpbWUtPntZZWFyfTsKICAgICAgICAgICAgbXkgJE0gICAgICAgICAgICAgID0gc3ByaW50ZiggIiUwMmQiLCAkRGF0ZVRpbWUtPntNb250aH0gKTsKICAgICAgICAgICAgbXkgJEQgICAgICAgICAgICAgID0gc3ByaW50ZiggIiUwMmQiLCAkRGF0ZVRpbWUtPntEYXl9ICk7CiAgICAgICAgICAgIG15ICRoICAgICAgICAgICAgICA9IHNwcmludGYoICIlMDJkIiwgJERhdGVUaW1lLT57SG91cn0gKTsKICAgICAgICAgICAgbXkgJG0gICAgICAgICAgICAgID0gc3ByaW50ZiggIiUwMmQiLCAkRGF0ZVRpbWUtPntNaW51dGV9ICk7CgogICAgICAgICAgICBteSAkUERGU3RyaW5nID0gJFBERk9iamVjdC0+RG9jdW1lbnRPdXRwdXQoKTsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkF0dGFjaG1lbnQoCiAgICAgICAgICAgICAgICBGaWxlbmFtZSAgICA9PiAkRmlsZW5hbWUgLiAiXyIgLiAiJFktJE0tJEQiIC4gIl8iIC4gIiRoLSRtLnBkZiIsCiAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAiYXBwbGljYXRpb24vcGRmIiwKICAgICAgICAgICAgICAgIENvbnRlbnQgICAgID0+ICRQREZTdHJpbmcsCiAgICAgICAgICAgICAgICBUeXBlICAgICAgICA9PiAnaW5saW5lJywKICAgICAgICAgICAgKTsKCiAgICAgICAgfQoKICAgICAgICBteSAkQ291bnRlciA9IDA7CgogICAgICAgICMgaWYgdGhlcmUgYXJlIHJlc3VsdHMgdG8gc2hvdwogICAgICAgIGlmIChAVmlld2FibGVJdGVtSURzKSB7CgogICAgICAgICAgICAjIGNyZWF0ZSBiYWNrIGxpbmsgZm9yIEZBUSBab29tIHNjcmVlbgogICAgICAgICAgICBteSAkWm9vbUJhY2tMaW5rID0gIkFjdGlvbj1QdWJsaWNGQVFTZWFyY2g7U3ViYWN0aW9uPVNlYXJjaDsiCiAgICAgICAgICAgICAgICAuICRTZWxmLT57UHJvZmlsZX0KICAgICAgICAgICAgICAgIC4gIlNvcnRCeT0kU29ydEJ5O09yZGVyPSRPcmRlckJ5O1N0YXJ0SGl0PSRTdGFydEhpdCI7CgogICAgICAgICAgICAjIGVuY29kZSBiYWNrIGxpbmsgdG8gQmFzZTY0IGZvciBlYXN5IEhUTUwgdHJhbnNwb3J0CiAgICAgICAgICAgICRab29tQmFja0xpbmsgPSBNSU1FOjpCYXNlNjQ6OmVuY29kZV9iYXNlNjQoJFpvb21CYWNrTGluayk7CgogICAgICAgICAgICBteSAkT3ZlcnZpZXdDb25maWcgPSAkQ29uZmlnT2JqZWN0LT5HZXQoIkZBUTo6RnJvbnRlbmQ6OlB1YmxpY0ZBUU92ZXJ2aWV3Iik7CgogICAgICAgICAgICAjIGdldCB0aGUgdGlja2V0IGR5bmFtaWMgZmllbGRzIGZvciBvdmVydmlldyBkaXNwbGF5CiAgICAgICAgICAgIG15ICRPdmVydmlld0R5bmFtaWNGaWVsZCA9ICREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZExpc3RHZXQoCiAgICAgICAgICAgICAgICBWYWxpZCAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgT2JqZWN0VHlwZSAgPT4gJ0ZBUScsCiAgICAgICAgICAgICAgICBGaWVsZEZpbHRlciA9PiAkT3ZlcnZpZXdDb25maWctPntEeW5hbWljRmllbGR9IHx8IHt9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyByZWR1Y2UgdGhlIGR5bmFtaWMgZmllbGRzIHRvIG9ubHkgdGhlIG9uZXMgdGhhdCBhcmUgZGVzaWduZWQgZm9yIGN1c3RvbWVyIGludGVyZmFjZQogICAgICAgICAgICBteSBAT3ZlcnZpZXdDdXN0b21lckR5bmFtaWNGaWVsZHM7CiAgICAgICAgICAgIERZTkFNSUNGSUVMRDoKICAgICAgICAgICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyRPdmVydmlld0R5bmFtaWNGaWVsZH0gKSB7CiAgICAgICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CgogICAgICAgICAgICAgICAgbXkgJElzQ3VzdG9tZXJJbnRlcmZhY2VDYXBhYmxlID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPkhhc0JlaGF2aW9yKAogICAgICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICAgICAgICAgIEJlaGF2aW9yICAgICAgICAgICA9PiAnSXNDdXN0b21lckludGVyZmFjZUNhcGFibGUnLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICEkSXNDdXN0b21lckludGVyZmFjZUNhcGFibGU7CgogICAgICAgICAgICAgICAgcHVzaCBAT3ZlcnZpZXdDdXN0b21lckR5bmFtaWNGaWVsZHMsICREeW5hbWljRmllbGRDb25maWc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJE92ZXJ2aWV3RHluYW1pY0ZpZWxkID0gXEBPdmVydmlld0N1c3RvbWVyRHluYW1pY0ZpZWxkczsKCiAgICAgICAgICAgICMgRHluYW1pYyBmaWVsZHMgdGFibGUgaGVhZGVycwogICAgICAgICAgICBEWU5BTUlDRklFTEQ6CiAgICAgICAgICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHskT3ZlcnZpZXdEeW5hbWljRmllbGR9ICkgewogICAgICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICAgICAgICAgIG15ICRMYWJlbCA9ICREeW5hbWljRmllbGRDb25maWctPntMYWJlbH07CgogICAgICAgICAgICAgICAgIyBnZXQgZmllbGQgc29ydGFibGUgY29uZGl0aW9uCiAgICAgICAgICAgICAgICBteSAkSXNTb3J0YWJsZSA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5IYXNCZWhhdmlvcigKICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgICAgICBCZWhhdmlvciAgICAgICAgICAgPT4gJ0lzU29ydGFibGUnLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBpZiAoJElzU29ydGFibGUpIHsKICAgICAgICAgICAgICAgICAgICBteSAkQ1NTICAgPSAnJzsKICAgICAgICAgICAgICAgICAgICBteSAkT3JkZXIgPSAnRG93bic7CiAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgICAkU29ydEJ5CiAgICAgICAgICAgICAgICAgICAgICAgICYmICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTb3J0QnkgZXEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICggJ0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9ICkKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoICRTZWxmLT57T3JkZXJ9ICYmICggJFNlbGYtPntPcmRlcn0gZXEgJ1VwJyApICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJE9yZGVyID0gJ0Rvd24nOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJENTUyAuPSAnIFNvcnRBc2NlbmRpbmcnOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJE9yZGVyID0gJ1VwJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRDU1MgLj0gJyBTb3J0RGVzY2VuZGluZyc7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdIZWFkZXJEeW5hbWljRmllbGQnLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENTUyA9PiAkQ1NTLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdIZWFkZXJEeW5hbWljRmllbGRTb3J0YWJsZScsCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgT3JkZXIgICAgICAgICAgICA9PiAkT3JkZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCAgICAgICAgICAgID0+ICRMYWJlbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZE5hbWUgPT4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9LAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0hlYWRlckR5bmFtaWNGaWVsZCcsCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdIZWFkZXJEeW5hbWljRmllbGROb3RTb3J0YWJsZScsCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwgPT4gJExhYmVsLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGZvciBteSAkSXRlbUlEIChAVmlld2FibGVJdGVtSURzKSB7CgogICAgICAgICAgICAgICAgJENvdW50ZXIrKzsKCiAgICAgICAgICAgICAgICAjIGJ1aWxkIHNlYXJjaCByZXN1bHQKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAkQ291bnRlciA+PSAkU3RhcnRIaXQKICAgICAgICAgICAgICAgICAgICAmJiAkQ291bnRlciA8ICggJFNlYXJjaFBhZ2VTaG93biArICRTdGFydEhpdCApCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewoKICAgICAgICAgICAgICAgICAgICAjIGdldCBGQVEgZGF0YSBkZXRhaWxzCiAgICAgICAgICAgICAgICAgICAgbXkgJUZBUURhdGEgPSAkRkFRT2JqZWN0LT5GQVFHZXQoCiAgICAgICAgICAgICAgICAgICAgICAgIEl0ZW1JRCAgICAgICAgPT4gJEl0ZW1JRCwKICAgICAgICAgICAgICAgICAgICAgICAgSXRlbUZpZWxkcyAgICA9PiAwLAogICAgICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRzID0+IDEsCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICRGQVFEYXRhe0NsZWFuVGl0bGV9ID0gJEZBUU9iamVjdC0+RkFRQXJ0aWNsZVRpdGxlQ2xlYW4oCiAgICAgICAgICAgICAgICAgICAgICAgIFRpdGxlID0+ICRGQVFEYXRhe1RpdGxlfSwKICAgICAgICAgICAgICAgICAgICAgICAgU2l6ZSAgPT4gJENvbmZpZy0+e1RpdGxlU2l6ZX0sCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgIyBhZGQgYmxvY2tzIHRvIHRlbXBsYXRlCiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1JlY29yZCcsCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJUZBUURhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBab29tQmFja0xpbmsgPT4gJFpvb21CYWNrTGluaywKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAjIGFkZCBsYW5ndWFnZSBkYXRhCiAgICAgICAgICAgICAgICAgICAgaWYgKCRNdWx0aUxhbmd1YWdlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUmVjb3JkTGFuZ3VhZ2UnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7JUZBUURhdGF9LAogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgIyBEeW5hbWljIGZpZWxkcwogICAgICAgICAgICAgICAgICAgIERZTkFNSUNGSUVMRDoKICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7JE92ZXJ2aWV3RHluYW1pY0ZpZWxkfSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICAgICAgICAgICAgICAgICAgIyBnZXQgZmllbGQgdmFsdWUKICAgICAgICAgICAgICAgICAgICAgICAgbXkgJFZhbHVlU3RyZyA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5EaXNwbGF5VmFsdWVSZW5kZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAkRkFRRGF0YXsgJ0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZU1heENoYXJzICAgICAgPT4gMjAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYXlvdXRPYmplY3QgICAgICAgPT4gJExheW91dE9iamVjdCwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUmVjb3JkRHluYW1pY0ZpZWxkJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlID0+ICRWYWx1ZVN0cmctPntWYWx1ZX0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGl0bGUgPT4gJFZhbHVlU3RyZy0+e1RpdGxlfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIG90aGVyd2lzZSBzaG93IGEgbm8gZGF0YSBmb3VuZCBtZXNzYWdlCiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKCBOYW1lID0+ICdOb0RhdGFGb3VuZE1zZycgKTsKICAgICAgICB9CgogICAgICAgICMgY3JlYXRlIGEgbG9va3VwIHRhYmxlIGZvciBhdHRyaWJ1dGUgc2V0dGluZ3MKICAgICAgICBteSAlQXR0cmlidXRlTWFwID0gKAogICAgICAgICAgICBOdW1iZXIgPT4gewogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpGQVFIb29rJyksCiAgICAgICAgICAgICAgICBUcmFuc2xhdGFibGUgPT4gMCwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgVGl0bGUgPT4gewogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICdUaXRsZScsCiAgICAgICAgICAgICAgICBUcmFuc2xhdGFibGUgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgS2V5d29yZCA9PiB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgPT4gJ0tleXdvcmQnLAogICAgICAgICAgICAgICAgVHJhbnNsYXRhYmxlID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIEZ1bGx0ZXh0ID0+IHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAnRnVsbHRleHQnLAogICAgICAgICAgICAgICAgVHJhbnNsYXRhYmxlID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIENhdGVnb3J5SURzID0+IHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAnQ2F0ZWdvcnknLAogICAgICAgICAgICAgICAgVHJhbnNsYXRhYmxlID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIExhbmd1YWdlSURzID0+IHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAnTGFuZ3VhZ2UnLAogICAgICAgICAgICAgICAgVHJhbnNsYXRhYmxlID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFRpbWVTZWFyY2hUeXBlID0+IHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAnQ3JlYXRlIFRpbWUnLAogICAgICAgICAgICAgICAgVHJhbnNsYXRhYmxlID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFZvdGVTZWFyY2hUeXBlID0+IHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAnVm90ZXMnLAogICAgICAgICAgICAgICAgVHJhbnNsYXRhYmxlID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFJhdGVTZWFyY2hUeXBlID0+IHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAnUmF0ZScsCiAgICAgICAgICAgICAgICBUcmFuc2xhdGFibGUgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIHByaW50IGVhY2ggYXR0cmlidXRlIGluIHNlYXJjaCByZXN1bHRzIGFyZWEuCiAgICAgICAgQVRUUklCVVRFOgogICAgICAgIGZvciBteSAkQXR0cmlidXRlICggc29ydCBrZXlzICVBdHRyaWJ1dGVNYXAgKSB7CgogICAgICAgICAgICAjIGNoZWNrIGlmIHRoZSBhdHRyaWJ1dGUgd2FzIGRlZmluZWQgYnkgdGhlIHVzZXIKICAgICAgICAgICAgaWYgKCAkR2V0UGFyYW17JEF0dHJpYnV0ZX0gKSB7CgogICAgICAgICAgICAgICAgIyBzZXQgYXR0cmlidXRlIG5hbWUgYW5kIHRyYW5zbGF0ZSBpdCBpZiBhcHBsaWVzCiAgICAgICAgICAgICAgICBteSAkQXR0cmlidXRlTmFtZSA9ICRBdHRyaWJ1dGVNYXB7JEF0dHJpYnV0ZX0tPntOYW1lfTsKICAgICAgICAgICAgICAgIGlmICggJEF0dHJpYnV0ZU1hcHskQXR0cmlidXRlfS0+e1RyYW5zbGF0YWJsZX0gKSB7CiAgICAgICAgICAgICAgICAgICAgJEF0dHJpYnV0ZU5hbWUgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJEF0dHJpYnV0ZU5hbWUpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIG15ICRBdHRyaWJ1dGVWYWx1ZTsKCiAgICAgICAgICAgICAgICAjIGNoZWNrIGlmIHRoZSB2YWx1ZXMgaXMgYW4gYXJyYXkgdG8gcGFyc2UgZWFjaCB2YWx1ZQogICAgICAgICAgICAgICAgaWYgKCByZWYgJEdldFBhcmFteyRBdHRyaWJ1dGV9IGVxICdBUlJBWScgKSB7CgogICAgICAgICAgICAgICAgICAgICMgQ2F0ZWdvcnkgYXR0cmlidXRlCiAgICAgICAgICAgICAgICAgICAgaWYgKCAkQXR0cmlidXRlIGVxICdDYXRlZ29yeUlEcycgKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAjIGdldCB0aGUgbG9uZyBuYW1lIGZvciBhbGwgcHVibGljIGNhdGVnb3JpZXMKICAgICAgICAgICAgICAgICAgICAgICAgbXkgJENhdGVnb3J5TGlzdCA9ICRGQVFPYmplY3QtPkdldFB1YmxpY0NhdGVnb3JpZXNMb25nTmFtZXMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUeXBlICAgPT4gJ3J3JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAgICAgIyBjb252ZXJ0IGVhY2ggY2F0ZWdvcnkgaWQgdG8gY2F0ZWdvcnkgbG9uZyBuYW1lCiAgICAgICAgICAgICAgICAgICAgICAgIG15IEBDYXRlZ29yeU5hbWVzOwogICAgICAgICAgICAgICAgICAgICAgICBDQVRFR09SWUlEOgogICAgICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJENhdGVkb3J5SUQgKCBAeyAkR2V0UGFyYW17JEF0dHJpYnV0ZX0gfSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgQ0FURUdPUllJRCBpZiAhJENhdGVnb3J5TGlzdC0+eyRDYXRlZG9yeUlEfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2ggQENhdGVnb3J5TmFtZXMsICRDYXRlZ29yeUxpc3QtPnskQ2F0ZWRvcnlJRH07CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICMgY3JlYXRlIGEgc3RyaW5nIHdpdGggYWxsIHNlbGVjdGVkIGNhdGVnb3J5IG5hbWVzCiAgICAgICAgICAgICAgICAgICAgICAgICRBdHRyaWJ1dGVWYWx1ZSA9IGpvaW4oICIgKyAiLCBAQ2F0ZWdvcnlOYW1lcyApOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgIyBMYW5ndWFnZUlEcwogICAgICAgICAgICAgICAgICAgIGVsc2lmICggJEF0dHJpYnV0ZSBlcSAnTGFuZ3VhZ2VJRHMnICkgewoKICAgICAgICAgICAgICAgICAgICAgICAgIyBjb252ZXJ0IGVhY2ggbGFuZ3VhZ2UgaWQgdG8gbGFuZ3VhZ2UgbmFtZQogICAgICAgICAgICAgICAgICAgICAgICBteSBATGFuZ3VhZ2VOYW1lczsKICAgICAgICAgICAgICAgICAgICAgICAgTEFOR1VBR0VJRDoKICAgICAgICAgICAgICAgICAgICAgICAgZm9yIG15ICRMYW5ndWFnZUlEICggQHsgJEdldFBhcmFteyRBdHRyaWJ1dGV9IH0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBteSAkTGFuZ3VhZ2VOYW1lID0gJEZBUU9iamVjdC0+TGFuZ3VhZ2VMb29rdXAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFuZ3VhZ2VJRCA9PiAkTGFuZ3VhZ2VJRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0IExBTkdVQUdFSUQgaWYgISRMYW5ndWFnZU5hbWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoIEBMYW5ndWFnZU5hbWVzLCAkTGFuZ3VhZ2VOYW1lOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAjIGNyZWF0ZSBhIHN0cmluZyB3aXRoIGFsbCBzZWxlY3RlZCBsYW5ndWFnZSBuYW1lcwogICAgICAgICAgICAgICAgICAgICAgICAkQXR0cmlidXRlVmFsdWUgPSBqb2luKCAiICsgIiwgQExhbmd1YWdlTmFtZXMgKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBvdGhlcndpc2UgaXMgYW4gc2NhbGFyIGFuZCBjYW4gYmUgc2V0IGRpcmVjdGx5CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkQXR0cmlidXRlVmFsdWUgPSAkR2V0UGFyYW17JEF0dHJpYnV0ZX07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoICRBdHRyaWJ1dGUgZXEgJ1RpbWVTZWFyY2hUeXBlJyApIHsKCiAgICAgICAgICAgICAgICAgICAgaWYgKCAkR2V0UGFyYW17VGltZVNlYXJjaFR5cGV9IGVxICdUaW1lU2xvdCcgKSB7CgogICAgICAgICAgICAgICAgICAgICAgICBteSAkU3RhcnREYXRlID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+Rm9ybWF0VGltZVN0cmluZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXtJdGVtQ3JlYXRlVGltZVN0YXJ0WWVhcn0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICctJyAuICRHZXRQYXJhbXtJdGVtQ3JlYXRlVGltZVN0YXJ0TW9udGh9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAnLScgLiAkR2V0UGFyYW17SXRlbUNyZWF0ZVRpbWVTdGFydERheX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICcgMDA6MDA6MDAnLCAnRGF0ZUZvcm1hdFNob3J0JwogICAgICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAgICAgbXkgJFN0b3BEYXRlID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+Rm9ybWF0VGltZVN0cmluZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXtJdGVtQ3JlYXRlVGltZVN0b3BZZWFyfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJy0nIC4gJEdldFBhcmFte0l0ZW1DcmVhdGVUaW1lU3RvcE1vbnRofQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJy0nIC4gJEdldFBhcmFte0l0ZW1DcmVhdGVUaW1lU3RvcERheX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICcgMDA6MDA6MDAnLCAnRGF0ZUZvcm1hdFNob3J0JwogICAgICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAgICAgJEF0dHJpYnV0ZSAgICAgID0gVHJhbnNsYXRhYmxlKCdDcmVhdGVkIGJldHdlZW4nKTsKICAgICAgICAgICAgICAgICAgICAgICAgJEF0dHJpYnV0ZVZhbHVlID0gJFN0YXJ0RGF0ZSAuICcgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ2FuZCcpIC4gJyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRTdG9wRGF0ZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAgICAgICAgICAgICBteSAkTWFwcGluZyA9IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdMYXN0JyAgID0+IFRyYW5zbGF0YWJsZSgnQ3JlYXRlZCB3aXRoaW4gdGhlIGxhc3QnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdCZWZvcmUnID0+IFRyYW5zbGF0YWJsZSgnQ3JlYXRlZCBtb3JlIHRoYW4gLi4uIGFnbycpLAogICAgICAgICAgICAgICAgICAgICAgICB9OwoKICAgICAgICAgICAgICAgICAgICAgICAgJEF0dHJpYnV0ZSAgICAgID0gJE1hcHBpbmctPnsgJEdldFBhcmFte0l0ZW1DcmVhdGVUaW1lUG9pbnRTdGFydH0gfTsKICAgICAgICAgICAgICAgICAgICAgICAgJEF0dHJpYnV0ZVZhbHVlID0gJEdldFBhcmFte0l0ZW1DcmVhdGVUaW1lUG9pbnR9IC4gJyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17SXRlbUNyZWF0ZVRpbWVQb2ludEZvcm1hdH0gLiAnKHMpJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNpZiAoICRBdHRyaWJ1dGUgZXEgJ1ZvdGVTZWFyY2hUeXBlJyApIHsKICAgICAgICAgICAgICAgICAgICBuZXh0IEFUVFJJQlVURSBpZiAhJEdldFBhcmFte1ZvdGVTZWFyY2hPcHRpb259OwogICAgICAgICAgICAgICAgICAgICRBdHRyaWJ1dGVWYWx1ZSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJEdldFBhcmFte1ZvdGVTZWFyY2hUeXBlfSApIC4gJyAnCiAgICAgICAgICAgICAgICAgICAgICAgIC4gJEdldFBhcmFte1ZvdGVTZWFyY2h9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzaWYgKCAkQXR0cmlidXRlIGVxICdSYXRlU2VhcmNoVHlwZScgKSB7CiAgICAgICAgICAgICAgICAgICAgbmV4dCBBVFRSSUJVVEUgaWYgISRHZXRQYXJhbXtSYXRlU2VhcmNoT3B0aW9ufTsKICAgICAgICAgICAgICAgICAgICAkQXR0cmlidXRlVmFsdWUgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICRHZXRQYXJhbXtSYXRlU2VhcmNoVHlwZX0gKSAuICcgJwogICAgICAgICAgICAgICAgICAgICAgICAuICRHZXRQYXJhbXtSYXRlU2VhcmNofSAuICclJzsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdTZWFyY2hUZXJtcycsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZSA9PiAkQXR0cmlidXRlTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWUgICAgID0+ICRBdHRyaWJ1dGVWYWx1ZSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBjeWNsZSB0aHJvdWdoIHRoZSBhY3RpdmF0ZWQgRHluYW1pYyBGaWVsZHMgZm9yIHRoaXMgc2NyZWVuCiAgICAgICAgRFlOQU1JQ0ZJRUxEOgogICAgICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHsgJFNlbGYtPntEeW5hbWljRmllbGR9IH0gKSB7CiAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKICAgICAgICAgICAgaWYgKCAhJER5bmFtaWNGaWVsZFNlYXJjaERpc3BsYXl7ICdEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9ICkgewogICAgICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnU2VhcmNoVGVybXMnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlID0+ICREeW5hbWljRmllbGRDb25maWctPntMYWJlbH0sCiAgICAgICAgICAgICAgICAgICAgVmFsdWUgICAgID0+CiAgICAgICAgICAgICAgICAgICAgICAgICREeW5hbWljRmllbGRTZWFyY2hEaXNwbGF5eyAnRHluYW1pY0ZpZWxkXycgLiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGJ1aWxkIHNlYXJjaCBuYXZpZ2F0aW9uIGJhcgogICAgICAgIG15ICVQYWdlTmF2ID0gJExheW91dE9iamVjdC0+UGFnZU5hdkJhcigKICAgICAgICAgICAgTGltaXQgICAgID0+ICRTZWFyY2hMaW1pdCwKICAgICAgICAgICAgU3RhcnRIaXQgID0+ICRTdGFydEhpdCwKICAgICAgICAgICAgUGFnZVNob3duID0+ICRTZWFyY2hQYWdlU2hvd24sCiAgICAgICAgICAgIEFsbEhpdHMgICA9PiAkQ291bnRlciwKICAgICAgICAgICAgQWN0aW9uICAgID0+ICJBY3Rpb249UHVibGljRkFRU2VhcmNoO1N1YmFjdGlvbj1TZWFyY2giLAogICAgICAgICAgICBMaW5rICAgICAgPT4KICAgICAgICAgICAgICAgICIkU2VsZi0+e1Byb2ZpbGV9U29ydEJ5PSRTb3J0Qnk7T3JkZXI9JE9yZGVyQnk7IiwKICAgICAgICAgICAgSURQcmVmaXggPT4gIlB1YmxpY0ZBUVNlYXJjaCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBzaG93IGZvb3RlciBmaWx0ZXIgLSBzaG93IG9ubHkgaWYgbW9yZSB0aGUgb25lIHBhZ2UgaXMgYXZhaWxhYmxlCiAgICAgICAgaWYgKCBkZWZpbmVkICRQYWdlTmF2e1RvdGFsSGl0c30gJiYgKCAkUGFnZU5hdntUb3RhbEhpdHN9ID4gJFNlYXJjaFBhZ2VTaG93biApICkgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1BhZ2luYXRpb24nLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICVQYWdlTmF2LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgc3RhcnQgSFRNTCBwYWdlCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkN1c3RvbWVySGVhZGVyKCk7CgogICAgICAgICNTZXQgdGhlIFNvcnRCeSBDbGFzcwogICAgICAgIG15ICRTb3J0Q2xhc3M7CgogICAgICAgICMgdGhpcyBzZXRzIHRoZSBvcHBvc2l0ZSB0byB0aGUgT3JkZXJCeSBwYXJhbWV0ZXIKICAgICAgICBpZiAoICRPcmRlckJ5IGVxICdEb3duJyApIHsKICAgICAgICAgICAgJFNvcnRDbGFzcyA9ICdTb3J0QXNjZW5kaW5nJzsKICAgICAgICB9CiAgICAgICAgZWxzaWYgKCAkT3JkZXJCeSBlcSAnVXAnICkgewogICAgICAgICAgICAkU29ydENsYXNzID0gJ1NvcnREZXNjZW5kaW5nJzsKICAgICAgICB9CgogICAgICAgICMgc2V0IHRoZSBTb3J0QnkgQ2xhc3MgdG8gdGhlIGNvcnJlY3QgZmllbGQKICAgICAgICBteSAlQ1NTU29ydDsKICAgICAgICBteSAkQ1NTU29ydEJ5ID0gJFNvcnRCeSAuICdTb3J0JzsKICAgICAgICAkQ1NTU29ydHskQ1NTU29ydEJ5fSA9ICRTb3J0Q2xhc3M7CgogICAgICAgIG15ICVOZXdPcmRlciA9ICgKICAgICAgICAgICAgRG93biA9PiBUcmFuc2xhdGFibGUoJ1VwJyksCiAgICAgICAgICAgIFVwICAgPT4gVHJhbnNsYXRhYmxlKCdEb3duJyksCiAgICAgICAgKTsKCiAgICAgICAgIyBzaG93IGxhbmd1YWdlIGhlYWRlcgogICAgICAgIGlmICgkTXVsdGlMYW5ndWFnZSkgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0hlYWRlckxhbmd1YWdlJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAlQ1NTU29ydCwKICAgICAgICAgICAgICAgICAgICBPcmRlciA9PiAkTmV3T3JkZXJ7JE9yZGVyQnl9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ1B1YmxpY0ZBUVNlYXJjaFJlc3VsdFNob3J0JywKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICVQYWdlTmF2LAogICAgICAgICAgICAgICAgJUNTU1NvcnQsCiAgICAgICAgICAgICAgICBPcmRlciAgID0+ICROZXdPcmRlcnskT3JkZXJCeX0sCiAgICAgICAgICAgICAgICBQcm9maWxlID0+ICRTZWxmLT57UHJvZmlsZX0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBidWlsZCBmb290ZXIKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkN1c3RvbWVyRm9vdGVyKCk7CiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyBlbXB0eSBzZWFyY2ggc2l0ZQogICAgZWxzZSB7CgogICAgICAgICMgY3JlYXRlIEhUTUwgc3RyaW5ncyBmb3IgYWxsIGR5bmFtaWMgZmllbGRzCiAgICAgICAgbXkgJUR5bmFtaWNGaWVsZEhUTUw7CgogICAgICAgIERZTkFNSUNGSUVMRDoKICAgICAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7ICRTZWxmLT57RHluYW1pY0ZpZWxkfSB9ICkgewogICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CgogICAgICAgICAgICAjIGdldCBzZWFyY2ggZmllbGQgcHJlZmVyZW5jZXMKICAgICAgICAgICAgbXkgJFNlYXJjaEZpZWxkUHJlZmVyZW5jZXMgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+U2VhcmNoRmllbGRQcmVmZXJlbmNlcygKICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzQXJyYXlSZWZXaXRoRGF0YSgkU2VhcmNoRmllbGRQcmVmZXJlbmNlcyk7CgogICAgICAgICAgICBQUkVGRVJFTkNFOgogICAgICAgICAgICBmb3IgbXkgJFByZWZlcmVuY2UgKCBAeyRTZWFyY2hGaWVsZFByZWZlcmVuY2VzfSApIHsKCiAgICAgICAgICAgICAgICAjIGdldCBmaWVsZCBIVE1MCiAgICAgICAgICAgICAgICAkRHluYW1pY0ZpZWxkSFRNTHsgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IC4gJFByZWZlcmVuY2UtPntUeXBlfSB9CiAgICAgICAgICAgICAgICAgICAgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+U2VhcmNoRmllbGRSZW5kZXIoCiAgICAgICAgICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgICBQcm9maWxlICAgICAgICAgICAgPT4gXCVHZXRQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdFZhbHVlICAgICAgID0+CiAgICAgICAgICAgICAgICAgICAgICAgICRDb25maWctPntEZWZhdWx0c30tPntEeW5hbWljRmllbGR9LT57ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9LAogICAgICAgICAgICAgICAgICAgICAgICBMYXlvdXRPYmplY3QgICAgICAgICAgID0+ICRMYXlvdXRPYmplY3QsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbmZpcm1hdGlvbkNoZWNrYm94ZXMgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgICAgVHlwZSAgICAgICAgICAgICAgICAgICA9PiAkUHJlZmVyZW5jZS0+e1R5cGV9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgZ2VuZXJhdGUgc2VhcmNoIG1hc2sKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+Q3VzdG9tZXJIZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRTZWxmLT5NYXNrRm9ybSgKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICBQcm9maWxlICAgICAgICAgID0+ICRTZWxmLT57UHJvZmlsZX0sCiAgICAgICAgICAgIEFyZWEgICAgICAgICAgICAgPT4gJ1B1YmxpYycsCiAgICAgICAgICAgIER5bmFtaWNGaWVsZEhUTUwgPT4gXCVEeW5hbWljRmllbGRIVE1MCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkN1c3RvbWVyRm9vdGVyKCk7CiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9Cn0KCnN1YiBNYXNrRm9ybSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgIG15ICRUcmVlVmlldyA9IDA7CiAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpGcm9udGVuZDo6TGlzdFR5cGUnKSBlcSAndHJlZScgKSB7CiAgICAgICAgJFRyZWVWaWV3ID0gMTsKICAgIH0KCiAgICAjIHNldCBvdXRwdXQgZm9ybWF0cyBsaXN0CiAgICBteSAlUmVzdWx0Rm9ybSA9ICgKICAgICAgICBOb3JtYWwgPT4gVHJhbnNsYXRhYmxlKCdOb3JtYWwnKSwKICAgICAgICBQcmludCAgPT4gVHJhbnNsYXRhYmxlKCdQcmludCcpLAogICAgICAgIENTViAgICA9PiBUcmFuc2xhdGFibGUoJ0NTVicpCiAgICApOwoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBidWlsZCBvdXRwdXQgZm9ybWF0cyBsaXN0CiAgICAkUGFyYW17UmVzdWx0Rm9ybVN0cmd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICA9PiB7JVJlc3VsdEZvcm19LAogICAgICAgIE5hbWUgICAgICAgPT4gJ1Jlc3VsdEZvcm0nLAogICAgICAgIFNlbGVjdGVkSUQgPT4gJFBhcmFte1Jlc3VsdEZvcm19IHx8ICdOb3JtYWwnLAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwoKICAgIG15ICRGQVFPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RkFRJyk7CgogICAgbXkgJUxhbmd1YWdlcyA9ICRGQVFPYmplY3QtPkxhbmd1YWdlTGlzdCgKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGJ1aWxkIGxhbmd1YWdlcyBvdXRwdXQgbGlzdAogICAgJFBhcmFte0xhbmd1YWdlc1N0cmd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICA9PiB7JUxhbmd1YWdlc30sCiAgICAgICAgTmFtZSAgICAgICA9PiAnTGFuZ3VhZ2VJRHMnLAogICAgICAgIFNpemUgICAgICAgPT4gNSwKICAgICAgICBNdWx0aXBsZSAgID0+IDEsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkUGFyYW17TGFuZ3VhZ2VJRHN9LAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwoKICAgIG15ICRDYXRlZ29yaWVzID0gJEZBUU9iamVjdC0+R2V0UHVibGljQ2F0ZWdvcmllc0xvbmdOYW1lcygKICAgICAgICBDdXN0b21lclVzZXIgPT4gJFNlbGYtPntVc2VyTG9naW59LAogICAgICAgIFR5cGUgICAgICAgICA9PiAncncnLAogICAgICAgIFVzZXJJRCAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgYnVpbGQgY2F0ZWdvcmllcyBvdXRwdXQgbGlzdAogICAgJFBhcmFte0NhdGVnb3JpZXNTdHJnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgPT4gJENhdGVnb3JpZXMsCiAgICAgICAgTmFtZSAgICAgICA9PiAnQ2F0ZWdvcnlJRHMnLAogICAgICAgIFNpemUgICAgICAgPT4gNSwKICAgICAgICBNdWx0aXBsZSAgID0+IDEsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkUGFyYW17Q2F0ZWdvcnlJRHN9LAogICAgICAgIFRyZWVWaWV3ICAgPT4gJFRyZWVWaWV3LAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwoKICAgIG15ICVWb3RpbmdPcGVyYXRvcnMgPSAoCiAgICAgICAgRXF1YWxzICAgICAgICAgICAgPT4gVHJhbnNsYXRhYmxlKCdFcXVhbHMnKSwKICAgICAgICBHcmVhdGVyVGhhbiAgICAgICA9PiBUcmFuc2xhdGFibGUoJ0dyZWF0ZXIgdGhhbicpLAogICAgICAgIEdyZWF0ZXJUaGFuRXF1YWxzID0+IFRyYW5zbGF0YWJsZSgnR3JlYXRlciB0aGFuIGVxdWFscycpLAogICAgICAgIFNtYWxsZXJUaGFuICAgICAgID0+IFRyYW5zbGF0YWJsZSgnU21hbGxlciB0aGFuJyksCiAgICAgICAgU21hbGxlclRoYW5FcXVhbHMgPT4gVHJhbnNsYXRhYmxlKCdTbWFsbGVyIHRoYW4gZXF1YWxzJyksCiAgICApOwoKICAgICRQYXJhbXtWb3RlU2VhcmNoVHlwZVNlbGVjdGlvblN0cmluZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgICA9PiBcJVZvdGluZ09wZXJhdG9ycywKICAgICAgICBOYW1lICAgICAgICA9PiAnVm90ZVNlYXJjaFR5cGUnLAogICAgICAgIFNpemUgICAgICAgID0+IDEsCiAgICAgICAgU2VsZWN0ZWRJRCAgPT4gJFBhcmFte1ZvdGVTZWFyY2hUeXBlfSB8fCAnJywKICAgICAgICBUcmFuc2xhdGlvbiA9PiAxLAogICAgICAgIE11bHRpcGxlICAgID0+IDAsCiAgICAgICAgQ2xhc3MgICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwoKICAgICRQYXJhbXtSYXRlU2VhcmNoVHlwZVNlbGVjdGlvblN0cmluZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgICA9PiBcJVZvdGluZ09wZXJhdG9ycywKICAgICAgICBOYW1lICAgICAgICA9PiAnUmF0ZVNlYXJjaFR5cGUnLAogICAgICAgIFNpemUgICAgICAgID0+IDEsCiAgICAgICAgU2VsZWN0ZWRJRCAgPT4gJFBhcmFte1JhdGVTZWFyY2hUeXBlfSB8fCAnJywKICAgICAgICBUcmFuc2xhdGlvbiA9PiAxLAogICAgICAgIE11bHRpcGxlICAgID0+IDAsCiAgICAgICAgQ2xhc3MgICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwogICAgJFBhcmFte1JhdGVTZWFyY2hTZWxlY3Rpb25TdHJpbmd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgIDAgICA9PiAnMCUnLAogICAgICAgICAgICAyNSAgPT4gJzI1JScsCiAgICAgICAgICAgIDUwICA9PiAnNTAlJywKICAgICAgICAgICAgNzUgID0+ICc3NSUnLAogICAgICAgICAgICAxMDAgPT4gJzEwMCUnLAogICAgICAgIH0sCiAgICAgICAgU29ydCAgICAgICAgPT4gJ051bWVyaWNLZXknLAogICAgICAgIE5hbWUgICAgICAgID0+ICdSYXRlU2VhcmNoJywKICAgICAgICBTaXplICAgICAgICA9PiAxLAogICAgICAgIFNlbGVjdGVkSUQgID0+ICRQYXJhbXtSYXRlU2VhcmNofSB8fCAnJywKICAgICAgICBUcmFuc2xhdGlvbiA9PiAwLAogICAgICAgIE11bHRpcGxlICAgID0+IDAsCiAgICAgICAgQ2xhc3MgICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwoKICAgICRQYXJhbXtJdGVtQ3JlYXRlVGltZVBvaW50fSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgID0+IFsgMSAuLiA1OSBdLAogICAgICAgIFRyYW5zbGF0aW9uID0+IDAsCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ0l0ZW1DcmVhdGVUaW1lUG9pbnQnLAogICAgICAgIFNlbGVjdGVkSUQgID0+ICRQYXJhbXtJdGVtQ3JlYXRlVGltZVBvaW50fSwKICAgICk7CiAgICAkUGFyYW17SXRlbUNyZWF0ZVRpbWVQb2ludFN0YXJ0fSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICBMYXN0ICAgPT4gVHJhbnNsYXRhYmxlKCd3aXRoaW4gdGhlIGxhc3QgLi4uJyksCiAgICAgICAgICAgIEJlZm9yZSA9PiBUcmFuc2xhdGFibGUoJ21vcmUgdGhhbiAuLi4gYWdvJyksCiAgICAgICAgfSwKICAgICAgICBUcmFuc2xhdGlvbiA9PiAxLAogICAgICAgIE5hbWUgICAgICAgID0+ICdJdGVtQ3JlYXRlVGltZVBvaW50U3RhcnQnLAogICAgICAgIFNlbGVjdGVkSUQgID0+ICRQYXJhbXtJdGVtQ3JlYXRlVGltZVBvaW50U3RhcnR9IHx8ICdMYXN0JywKICAgICk7CiAgICAkUGFyYW17SXRlbUNyZWF0ZVRpbWVQb2ludEZvcm1hdH0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgbWludXRlID0+IFRyYW5zbGF0YWJsZSgnbWludXRlKHMpJyksCiAgICAgICAgICAgIGhvdXIgICA9PiBUcmFuc2xhdGFibGUoJ2hvdXIocyknKSwKICAgICAgICAgICAgZGF5ICAgID0+IFRyYW5zbGF0YWJsZSgnZGF5KHMpJyksCiAgICAgICAgICAgIHdlZWsgICA9PiBUcmFuc2xhdGFibGUoJ3dlZWsocyknKSwKICAgICAgICAgICAgbW9udGggID0+IFRyYW5zbGF0YWJsZSgnbW9udGgocyknKSwKICAgICAgICAgICAgeWVhciAgID0+IFRyYW5zbGF0YWJsZSgneWVhcihzKScpLAogICAgICAgIH0sCiAgICAgICAgVHJhbnNsYXRpb24gPT4gMSwKICAgICAgICBOYW1lICAgICAgICA9PiAnSXRlbUNyZWF0ZVRpbWVQb2ludEZvcm1hdCcsCiAgICAgICAgU2VsZWN0ZWRJRCAgPT4gJFBhcmFte0l0ZW1DcmVhdGVUaW1lUG9pbnRGb3JtYXR9LAogICAgKTsKICAgICRQYXJhbXtJdGVtQ3JlYXRlVGltZVN0YXJ0fSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkRGF0ZVNlbGVjdGlvbigKICAgICAgICAlUGFyYW0sCiAgICAgICAgUHJlZml4ICAgPT4gJ0l0ZW1DcmVhdGVUaW1lU3RhcnQnLAogICAgICAgIEZvcm1hdCAgID0+ICdEYXRlSW5wdXRGb3JtYXQnLAogICAgICAgIERpZmZUaW1lID0+IC0oICggNjAgKiA2MCAqIDI0ICkgKiAzMCApLAogICAgKTsKICAgICRQYXJhbXtJdGVtQ3JlYXRlVGltZVN0b3B9ID0gJExheW91dE9iamVjdC0+QnVpbGREYXRlU2VsZWN0aW9uKAogICAgICAgICVQYXJhbSwKICAgICAgICBQcmVmaXggPT4gJ0l0ZW1DcmVhdGVUaW1lU3RvcCcsCiAgICAgICAgRm9ybWF0ID0+ICdEYXRlSW5wdXRGb3JtYXQnLAogICAgKTsKCiAgICAjIEhUTUwgc2VhcmNoIG1hc2sgb3V0cHV0CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdTZWFyY2gnLAogICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICApOwoKICAgICMgb3V0cHV0IER5bmFtaWMgZmllbGRzIGJsb2NrcwogICAgRFlOQU1JQ0ZJRUxEQ09ORklHOgogICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gfSApIHsKCiAgICAgICAgbmV4dCBEWU5BTUlDRklFTERDT05GSUcgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICAjIGdldCBzZWFyY2ggZmllbGQgcHJlZmVyZW5jZXMKICAgICAgICBteSAkU2VhcmNoRmllbGRQcmVmZXJlbmNlcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKS0+U2VhcmNoRmllbGRQcmVmZXJlbmNlcygKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgKTsKCiAgICAgICAgbmV4dCBEWU5BTUlDRklFTERDT05GSUcgaWYgIUlzQXJyYXlSZWZXaXRoRGF0YSgkU2VhcmNoRmllbGRQcmVmZXJlbmNlcyk7CgogICAgICAgIFBSRUZFUkVOQ0U6CiAgICAgICAgZm9yIG15ICRQcmVmZXJlbmNlICggQHskU2VhcmNoRmllbGRQcmVmZXJlbmNlc30gKSB7CgogICAgICAgICAgICBteSAkRHluYW1pY0ZpZWxkSFRNTCA9ICRQYXJhbXtEeW5hbWljRmllbGRIVE1MfS0+eyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gLiAkUHJlZmVyZW5jZS0+e1R5cGV9IH07CgogICAgICAgICAgICAjIHNraXAgZmllbGRzIHRoYXQgSFRNTCBjb3VsZCBub3QgYmUgcmV0cmlldmVkCiAgICAgICAgICAgIG5leHQgUFJFRkVSRU5DRSBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZEhUTUwpOwoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdEeW5hbWljRmllbGQnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgTGFiZWwgPT4gJER5bmFtaWNGaWVsZEhUTUwtPntMYWJlbH0sCiAgICAgICAgICAgICAgICAgICAgRmllbGQgPT4gJER5bmFtaWNGaWVsZEhUTUwtPntGaWVsZH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCBtdWx0aS1sYW5ndWFnZSBkZWZhdWx0IG9wdGlvbgogICAgbXkgJE11bHRpTGFuZ3VhZ2UgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6TXVsdGlMYW5ndWFnZScpOwoKICAgICMgc2hvdyBsYW5ndWFnZXMgc2VsZWN0CiAgICBpZiAoJE11bHRpTGFuZ3VhZ2UpIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnTGFuZ3VhZ2UnLAogICAgICAgICAgICBEYXRhID0+IHslUGFyYW19LAogICAgICAgICk7CiAgICB9CgogICAgIyBIVE1MIHNlYXJjaCBtYXNrIG91dHB1dAogICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ1B1YmxpY0ZBUVNlYXJjaCcsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHslUGFyYW19LAogICAgKTsKfQoKMTsK</File>
        <File Location="Kernel/Modules/PublicFAQZoom.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6UHVibGljRkFRWm9vbTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBNSU1FOjpCYXNlNjQgICAgICAgICAgICAgICAgICBxdygpOwp1c2UgS2VybmVsOjpMYW5ndWFnZSAgICAgICAgICAgICAgcXcoVHJhbnNsYXRhYmxlKTsKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIHNldCBVc2VySUQgdG8gcm9vdCBiZWNhdXNlIGluIHB1YmxpYyBpbnRlcmZhY2UgdGhlcmUgaXMgbm8gdXNlcgogICAgJFNlbGYtPntVc2VySUR9ID0gMTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkUGFyYW1PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CgogICAgIyBnZXQgcGFyYW1zCiAgICBteSAlR2V0UGFyYW07CiAgICAkR2V0UGFyYW17SXRlbUlEfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdJdGVtSUQnICk7CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICBpZiAoICEkR2V0UGFyYW17SXRlbUlEfSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Q3VzdG9tZXJGYXRhbEVycm9yKAogICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnTmVlZCBJdGVtSUQhJyksCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCBiYWNrIGxpbmsKICAgICRHZXRQYXJhbXtab29tQmFja0xpbmt9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1pvb21CYWNrTGluaycgKSB8fCAnJzsKICAgIGlmICggJEdldFBhcmFte1pvb21CYWNrTGlua30gKSB7CiAgICAgICAgJEdldFBhcmFte1pvb21CYWNrTGlua30gPSBNSU1FOjpCYXNlNjQ6OmRlY29kZV9iYXNlNjQoICRHZXRQYXJhbXtab29tQmFja0xpbmt9ICk7CiAgICB9CgogICAgbXkgJEZBUU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpGQVEnKTsKCiAgICBteSAlRkFRRGF0YSA9ICRGQVFPYmplY3QtPkZBUUdldCgKICAgICAgICBJdGVtSUQgICAgID0+ICRHZXRQYXJhbXtJdGVtSUR9LAogICAgICAgIEl0ZW1GaWVsZHMgPT4gMSwKICAgICAgICBVc2VySUQgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CiAgICBpZiAoICElRkFRRGF0YSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Q3VzdG9tZXJGYXRhbEVycm9yKCk7CiAgICB9CgogICAgIyBnZXQgdGhlIHZhbGlkIGlkcwogICAgbXkgQFZhbGlkSURzICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnKS0+VmFsaWRJRHNHZXQoKTsKICAgIG15ICVWYWxpZElETG9va3VwID0gbWFwIHsgJF8gPT4gMSB9IEBWYWxpZElEczsKCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAjIGdldCBpbnRlcmZhY2Ugc3RhdGUgbGlzdAogICAgbXkgJEludGVyZmFjZVN0YXRlcyA9ICRGQVFPYmplY3QtPlN0YXRlVHlwZUxpc3QoCiAgICAgICAgVHlwZXMgID0+ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpQdWJsaWM6OlN0YXRlVHlwZXMnKSwKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIHBlcm1pc3Npb24gY2hlY2sKICAgIGlmICgKICAgICAgICAhJEZBUURhdGF7QXBwcm92ZWR9CiAgICAgICAgfHwgISRWYWxpZElETG9va3VweyAkRkFRRGF0YXtWYWxpZElEfSB9CiAgICAgICAgfHwgISRJbnRlcmZhY2VTdGF0ZXMtPnsgJEZBUURhdGF7U3RhdGVUeXBlSUR9IH0KICAgICAgICApCiAgICB7CiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkN1c3RvbWVyTm9QZXJtaXNzaW9uKAogICAgICAgICAgICBXaXRoSGVhZGVyID0+ICd5ZXMnLAogICAgICAgICk7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgSFRNTFZpZXcgU3ViLWFjdGlvbgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdIVE1MVmlldycgKSB7CgogICAgICAgICMgZ2V0IHBhcmFtcwogICAgICAgIG15ICRGaWVsZCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICJGaWVsZCIgKTsKCiAgICAgICAgZm9yIG15ICROZWVkZWQgKHF3KCBJdGVtSUQgRmllbGQgKSkgewogICAgICAgICAgICBpZiAoICEkTmVlZGVkICkgewogICAgICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZGVkIFBhcmFtOiAkTmVlZGVkISIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGdldCB0aGUgRmllbGQgY29udGVudAogICAgICAgIG15ICRGaWVsZENvbnRlbnQgPSAkRkFRT2JqZWN0LT5JdGVtRmllbGRHZXQoCiAgICAgICAgICAgIEl0ZW1JRCA9PiAkR2V0UGFyYW17SXRlbUlEfSwKICAgICAgICAgICAgRmllbGQgID0+ICRGaWVsZCwKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIHJld3JpdGUgaGFuZGxlIGFuZCBhY3Rpb24KICAgICAgICAkRmllbGRDb250ZW50CiAgICAgICAgICAgID1+IHN7IGluZGV4Wy5dcGwgWz9dIEFjdGlvbj1BZ2VudEZBUVpvb20gfXtwdWJsaWMucGw/QWN0aW9uPVB1YmxpY0ZBUVpvb219Z3htczsKCiAgICAgICAgIyB0YWtlIGNhcmUgb2Ygb2xkIHN0eWxlIGJlZm9yZSBGQVEgMi4wLngKICAgICAgICAkRmllbGRDb250ZW50ID1+IHN7CiAgICAgICAgICAgIGluZGV4Wy5dcGwgWz9dIEFjdGlvbj1BZ2VudEZBUSBbJl0oYW1wOyk/IFN1YmFjdGlvbj1Eb3dubG9hZCBbJl0oYW1wOyk/CiAgICAgICAgfXtwdWJsaWMucGw/QWN0aW9uPVB1YmxpY0ZBUVpvb207U3ViYWN0aW9uPURvd25sb2FkQXR0YWNobWVudDt9Z3htczsKCiAgICAgICAgbXkgJEhUTUxVdGlsc09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpIVE1MVXRpbHMnKTsKCiAgICAgICAgIyBjb252ZXJ0IGNvbnRlbnQgdG8gSFRNTCBpZiBuZWVkZWQKICAgICAgICBpZiAoCiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnRkFROjpJdGVtOjpIVE1MJykKICAgICAgICAgICAgJiYgJExheW91dE9iamVjdC0+e0Jyb3dzZXJSaWNoVGV4dH0KICAgICAgICAgICAgJiYgJEZBUURhdGF7Q29udGVudFR5cGV9IG5lICd0ZXh0L2h0bWwnCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRGaWVsZENvbnRlbnQgPSAkSFRNTFV0aWxzT2JqZWN0LT5Ub0hUTUwoCiAgICAgICAgICAgICAgICBTdHJpbmcgPT4gJEZpZWxkQ29udGVudCwKICAgICAgICAgICAgKSB8fCAnJzsKICAgICAgICB9CgogICAgICAgICMgRGV0ZWN0IGFsbCBwbGFpbiB0ZXh0IGxpbmtzIGFuZCBwdXQgdGhlbSBpbnRvIGFuIEhUTUwgPGE+IHRhZy4KICAgICAgICAkRmllbGRDb250ZW50ID0gJEhUTUxVdGlsc09iamVjdC0+TGlua1F1b3RlKAogICAgICAgICAgICBTdHJpbmcgPT4gJEZpZWxkQ29udGVudCwKICAgICAgICApOwoKICAgICAgICAjIFNldCB0YXJnZXQ9Il9ibGFuayIgYXR0cmlidXRlIHRvIGFsbCBIVE1MIDxhPiB0YWdzIHRoZSBMaW5rUXVvdGUgZnVuY3Rpb24gbmVlZHMgdG8gYmUKICAgICAgICAjICAgY2FsbGVkIGFnYWluCiAgICAgICAgJEZpZWxkQ29udGVudCA9ICRIVE1MVXRpbHNPYmplY3QtPkxpbmtRdW90ZSgKICAgICAgICAgICAgU3RyaW5nICAgID0+ICRGaWVsZENvbnRlbnQsCiAgICAgICAgICAgIFRhcmdldEFkZCA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgYWRkIG5lZWRlZCBIVE1MIGhlYWRlcnMKICAgICAgICAkRmllbGRDb250ZW50ID0gJEhUTUxVdGlsc09iamVjdC0+RG9jdW1lbnRDb21wbGV0ZSgKICAgICAgICAgICAgU3RyaW5nICAgICAgICAgICAgICA9PiAkRmllbGRDb250ZW50LAogICAgICAgICAgICBDaGFyc2V0ICAgICAgICAgICAgID0+ICd1dGYtOCcsCiAgICAgICAgICAgIEN1c3RvbWVySW50ZXJmYWNlICAgPT4gMSwKICAgICAgICAgICAgQ3VzdG9tZXJVSVN0eWxlcyAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgYnVpbGQgYmFzZSBVUkwgZm9yIGlubGluZSBpbWFnZXMKICAgICAgICBteSAkU2Vzc2lvbklEID0gJyc7CiAgICAgICAgaWYgKCAkU2VsZi0+e1Nlc3Npb25JRH0gJiYgISRTZWxmLT57U2Vzc2lvbklEQ29va2llfSApIHsKICAgICAgICAgICAgJFNlc3Npb25JRCA9ICc7JyAuICRTZWxmLT57U2Vzc2lvbk5hbWV9IC4gJz0nIC4gJFNlbGYtPntTZXNzaW9uSUR9OwogICAgICAgICAgICAkRmllbGRDb250ZW50ID1+IHN7CiAgICAgICAgICAgICAgICAoQWN0aW9uPVB1YmxpY0ZBUVpvb207U3ViYWN0aW9uPURvd25sb2FkQXR0YWNobWVudDtJdGVtSUQ9XGQrO0ZpbGVJRD1cZCspCiAgICAgICAgICAgIH17JDEkU2Vzc2lvbklEfWdtc3g7CiAgICAgICAgfQoKICAgICAgICAjIHJldHVybiBjb21wbGV0ZSBIVE1MIGFzIGFuIGF0dGFjaG1lbnQKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+QXR0YWNobWVudCgKICAgICAgICAgICAgVHlwZSAgICAgICAgPT4gJ2lubGluZScsCiAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L2h0bWwnLAogICAgICAgICAgICBDb250ZW50ICAgICA9PiAkRmllbGRDb250ZW50LAogICAgICAgICk7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgRG93bmxvYWRBdHRhY2htZW50IFN1Yi1hY3Rpb24KICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnRG93bmxvYWRBdHRhY2htZW50JyApIHsKCiAgICAgICAgIyBtYW5hZ2UgcGFyYW1ldGVycwogICAgICAgICRHZXRQYXJhbXtGaWxlSUR9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0ZpbGVJRCcgKTsKICAgICAgICBpZiAoICFkZWZpbmVkICRHZXRQYXJhbXtGaWxlSUR9ICkgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Q3VzdG9tZXJGYXRhbEVycm9yKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ05lZWQgRmlsZUlEIScpLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgYXR0YWNobWVudHMKICAgICAgICBteSAlRmlsZSA9ICRGQVFPYmplY3QtPkF0dGFjaG1lbnRHZXQoCiAgICAgICAgICAgIEl0ZW1JRCA9PiAkR2V0UGFyYW17SXRlbUlEfSwKICAgICAgICAgICAgRmlsZUlEID0+ICRHZXRQYXJhbXtGaWxlSUR9LAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CiAgICAgICAgaWYgKCVGaWxlKSB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5BdHRhY2htZW50KAogICAgICAgICAgICAgICAgJUZpbGUsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTm8gc3VjaCBhdHRhY2htZW50ICgkR2V0UGFyYW17RmlsZUlEfSkhIE1heSBiZSBhbiBhdHRhY2shISEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Q3VzdG9tZXJGYXRhbEVycm9yKCk7CiAgICAgICAgfQogICAgfQoKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5DdXN0b21lckhlYWRlcigKICAgICAgICBWYWx1ZSA9PiAkRkFRRGF0YXtUaXRsZX0sCiAgICApOwoKICAgICMgc2V0IGRlZmF1bHQgaW50ZXJmYWNlIHNldHRpbmdzCiAgICBteSAkSW50ZXJmYWNlID0gJEZBUU9iamVjdC0+U3RhdGVUeXBlR2V0KAogICAgICAgIE5hbWUgICA9PiAncHVibGljJywKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIHByZXBhcmUgZmllbGRzIGRhdGEKICAgIEZJRUxEOgogICAgZm9yIG15ICRGaWVsZCAocXcoRmllbGQxIEZpZWxkMiBGaWVsZDMgRmllbGQ0IEZpZWxkNSBGaWVsZDYpKSB7CiAgICAgICAgbmV4dCBGSUVMRCBpZiAhJEZBUURhdGF7JEZpZWxkfTsKCiAgICAgICAgIyByZXdyaXRlIGxpbmtzIHRvIGVtYmVkZGVkIGltYWdlcyBmb3IgcHVibGljIGludGVyZmFjZQogICAgICAgIGlmICggJEludGVyZmFjZS0+e05hbWV9IGVxICdwdWJsaWMnICkgewoKICAgICAgICAgICAgIyByZXdyaXRlIGhhbmRsZSBhbmQgYWN0aW9uCiAgICAgICAgICAgICRGQVFEYXRheyRGaWVsZH0KICAgICAgICAgICAgICAgID1+IHN7IGluZGV4Wy5dcGwgWz9dIEFjdGlvbj1BZ2VudEZBUVpvb20gfXtwdWJsaWMucGw/QWN0aW9uPVB1YmxpY0ZBUVpvb219Z3htczsKCiAgICAgICAgICAgICMgdGFrZSBjYXJlIG9mIG9sZCBzdHlsZSBiZWZvcmUgRkFRIDIuMC54CiAgICAgICAgICAgICRGQVFEYXRheyRGaWVsZH0gPX4gc3sKICAgICAgICAgICAgICAgIGluZGV4Wy5dcGwgWz9dIEFjdGlvbj1BZ2VudEZBUSBbJl0oYW1wOyk/IFN1YmFjdGlvbj1Eb3dubG9hZCBbJl0oYW1wOyk/CiAgICAgICAgICAgIH17cHVibGljLnBsP0FjdGlvbj1QdWJsaWNGQVFab29tO1N1YmFjdGlvbj1Eb3dubG9hZEF0dGFjaG1lbnQ7fWd4bXM7CiAgICAgICAgfQoKICAgICAgICAjIG5vIHF1b3RpbmcgaWYgSFRNTCB2aWV3IGlzIGVuYWJsZWQKICAgICAgICBuZXh0IEZJRUxEIGlmICRDb25maWdPYmplY3QtPkdldCgnRkFROjpJdGVtOjpIVE1MJyk7CgogICAgICAgICMgSFRNTCBxdW90aW5nCiAgICAgICAgJEZBUURhdGF7JEZpZWxkfSA9ICRMYXlvdXRPYmplY3QtPkFzY2lpMkh0bWwoCiAgICAgICAgICAgIE5ld0xpbmUgICAgICAgID0+IDAsCiAgICAgICAgICAgIFRleHQgICAgICAgICAgID0+ICRGQVFEYXRheyRGaWVsZH0sCiAgICAgICAgICAgIFZNYXggICAgICAgICAgID0+IDUwMDAsCiAgICAgICAgICAgIEhUTUxSZXN1bHRNb2RlID0+IDEsCiAgICAgICAgICAgIExpbmtGZWF0dXJlICAgID0+IDEsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNldCB2b3RpbmcgcmVzdWx0cwogICAgJFBhcmFte1ZvdGluZ1Jlc3VsdENvbG9yfSA9ICRMYXlvdXRPYmplY3QtPkdldEZBUUl0ZW1Wb3RpbmdSYXRlQ29sb3IoCiAgICAgICAgUmF0ZSA9PiAkRkFRRGF0YXtWb3RlUmVzdWx0fSwKICAgICk7CgogICAgaWYgKCAhJFBhcmFte1ZvdGluZ1Jlc3VsdENvbG9yfSB8fCAkRkFRRGF0YXtWb3Rlc30gZXEgJzAnICkgewogICAgICAgICRQYXJhbXtWb3RpbmdSZXN1bHRDb2xvcn0gPSAnR3JheSc7CiAgICB9CgogICAgIyBzaG93IGJhY2sgbGluawogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnQmFjaycsCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAlRkFRRGF0YSwKICAgICAgICB9LAogICAgKTsKCiAgICAjIGdldCBtdWx0aS1sYW5ndWFnZSBvcHRpb24KICAgIG15ICRNdWx0aUxhbmd1YWdlID0gJENvbmZpZ09iamVjdC0+R2V0KCdGQVE6Ok11bHRpTGFuZ3VhZ2UnKTsKCiAgICAjIHNob3cgbGFuZ3VhZ2UKICAgIGlmICgkTXVsdGlMYW5ndWFnZSkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdMYW5ndWFnZScsCiAgICAgICAgICAgIERhdGEgPT4geyVGQVFEYXRhfSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IHZvdGluZyBkZWZhdWx0IG9wdGlvbgogICAgbXkgJFZvdGluZyA9ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpWb3RpbmcnKTsKCiAgICAjIHNob3cgdm90ZXMKICAgIGlmICgkVm90aW5nKSB7CgogICAgICAgICMgYWx3YXlzIGRpc3BsYXlzIFZvdGVzIHJlc3VsdCBldmVuIGlmIGl0cyAwCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1ZpZXdWb3RlcycsCiAgICAgICAgICAgIERhdGEgPT4geyVGQVFEYXRhfSwKICAgICAgICApOwogICAgfQoKICAgICMgc2hvdyBGQVEgcGF0aAogICAgbXkgJFNob3dGQVFQYXRoID0gJExheW91dE9iamVjdC0+RkFRUGF0aFNob3coCiAgICAgICAgRkFRT2JqZWN0ICAgPT4gJEZBUU9iamVjdCwKICAgICAgICBDYXRlZ29yeUlEICA9PiAkRkFRRGF0YXtDYXRlZ29yeUlEfSwKICAgICAgICBQYXRoRm9ySXRlbSA9PiAxLAogICAgICAgIFVzZXJJRCAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CiAgICBpZiAoJFNob3dGQVFQYXRoKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0ZBUVBhdGhJdGVtRWxlbWVudCcsCiAgICAgICAgICAgIERhdGEgPT4geyVGQVFEYXRhfSwKICAgICAgICApOwogICAgfQoKICAgICMgc2hvdyBrZXl3b3JkcyBhcyBzZWFyY2ggbGlua3MKICAgIGlmICggJEZBUURhdGF7S2V5d29yZHN9ICkgewoKICAgICAgICAjIHJlcGxhY2UgY29tbWFzIGFuZCBzZW1pY29sb25zCiAgICAgICAgJEZBUURhdGF7S2V5d29yZHN9ID1+IHMvLC8gL2c7CiAgICAgICAgJEZBUURhdGF7S2V5d29yZHN9ID1+IHMvOy8gL2c7CgogICAgICAgIG15IEBLZXl3b3JkcyA9IHNwbGl0IC9ccysvLCAkRkFRRGF0YXtLZXl3b3Jkc307CiAgICAgICAgZm9yIG15ICRLZXl3b3JkIChAS2V5d29yZHMpIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdLZXl3b3JkcycsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBLZXl3b3JkID0+ICRLZXl3b3JkLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBvdXRwdXQgcmF0aW5nIHN0YXJzCiAgICBpZiAoJFZvdGluZykgewogICAgICAgICRMYXlvdXRPYmplY3QtPkZBUVJhdGluZ1N0YXJzU2hvdygKICAgICAgICAgICAgVm90ZVJlc3VsdCA9PiAkRkFRRGF0YXtWb3RlUmVzdWx0fSwKICAgICAgICAgICAgVm90ZXMgICAgICA9PiAkRkFRRGF0YXtWb3Rlc30sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIG91dHB1dCBhdHRhY2htZW50cyBpZiBhbnkKICAgIG15IEBBdHRhY2htZW50SW5kZXggPSAkRkFRT2JqZWN0LT5BdHRhY2htZW50SW5kZXgoCiAgICAgICAgSXRlbUlEICAgICA9PiAkR2V0UGFyYW17SXRlbUlEfSwKICAgICAgICBTaG93SW5saW5lID0+IDAsCiAgICAgICAgVXNlcklEICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgb3V0cHV0IGF0dGFjaG1lbnRzCiAgICBpZiAoQEF0dGFjaG1lbnRJbmRleCkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdBdHRhY2htZW50SGVhZGVyJywKICAgICAgICApOwogICAgICAgIGZvciBteSAkQXR0YWNobWVudCAoQEF0dGFjaG1lbnRJbmRleCkgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0F0dGFjaG1lbnRSb3cnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgJUZBUURhdGEsCiAgICAgICAgICAgICAgICAgICAgJXskQXR0YWNobWVudH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIHNob3cgRkFRIENvbnRlbnQKICAgICRMYXlvdXRPYmplY3QtPkZBUUNvbnRlbnRTaG93KAogICAgICAgIEZBUU9iamVjdCAgICAgICA9PiAkRkFRT2JqZWN0LAogICAgICAgIEludGVyZmFjZVN0YXRlcyA9PiAkSW50ZXJmYWNlU3RhdGVzLAogICAgICAgIEZBUURhdGEgICAgICAgICA9PiB7JUZBUURhdGF9LAogICAgICAgIFVzZXJJRCAgICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgZ2V0IGNvbmZpZyBvZiBmcm9udGVuZCBtb2R1bGUKICAgIG15ICRDb25maWcgPSAkQ29uZmlnT2JqZWN0LT5HZXQoIkZBUTo6RnJvbnRlbmQ6OiRTZWxmLT57QWN0aW9ufSIpOwoKICAgICMgZ2V0IHRoZSBkeW5hbWljIGZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgIG15ICREeW5hbWljRmllbGQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJyktPkR5bmFtaWNGaWVsZExpc3RHZXQoCiAgICAgICAgVmFsaWQgICAgICAgPT4gMSwKICAgICAgICBPYmplY3RUeXBlICA9PiAnRkFRJywKICAgICAgICBGaWVsZEZpbHRlciA9PiAkQ29uZmlnLT57RHluYW1pY0ZpZWxkfSB8fCB7fSwKICAgICk7CgogICAgbXkgJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kJyk7CgogICAgRFlOQU1JQ0ZJRUxEQ09ORklHOgogICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyREeW5hbWljRmllbGR9ICkgewogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEQ09ORklHIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKCiAgICAgICAgbXkgJFZhbHVlID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPlZhbHVlR2V0KAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgT2JqZWN0SUQgICAgICAgICAgID0+ICRHZXRQYXJhbXtJdGVtSUR9LAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHByaW50IHN0cmluZyBmb3IgdGhpcyBkeW5hbWljIGZpZWxkCiAgICAgICAgbXkgJFZhbHVlU3RyZyA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5EaXNwbGF5VmFsdWVSZW5kZXIoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJFZhbHVlLAogICAgICAgICAgICBWYWx1ZU1heENoYXJzICAgICAgPT4gMjUwLAogICAgICAgICAgICBMYXlvdXRPYmplY3QgICAgICAgPT4gJExheW91dE9iamVjdCwKICAgICAgICApOwoKICAgICAgICBteSAkTGFiZWwgPSAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TGFiZWx9OwoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnRkFRRHluYW1pY0ZpZWxkJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBMYWJlbCA9PiAkTGFiZWwsCiAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkVmFsdWVTdHJnLT57VmFsdWV9LAogICAgICAgICAgICAgICAgVGl0bGUgPT4gJFZhbHVlU3RyZy0+e1RpdGxlfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGV4YW1wbGUgb2YgZHluYW1pYyBmaWVsZHMgb3JkZXIgY3VzdG9taXphdGlvbgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdGQVFEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSwKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBMYWJlbCA9PiAkTGFiZWwsCiAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkVmFsdWVTdHJnLT57VmFsdWV9LAogICAgICAgICAgICAgICAgVGl0bGUgPT4gJFZhbHVlU3RyZy0+e1RpdGxlfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgICMgbG9nIGFjY2VzcyB0byB0aGlzIEZBUSBpdGVtCiAgICAkRkFRT2JqZWN0LT5GQVFMb2dBZGQoCiAgICAgICAgSXRlbUlEICAgID0+ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdJdGVtSUQnICksCiAgICAgICAgSW50ZXJmYWNlID0+ICRJbnRlcmZhY2UtPntOYW1lfSwKICAgICAgICBVc2VySUQgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIHN0YXJ0IHRlbXBsYXRlIG91dHB1dAogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdQdWJsaWNGQVFab29tJywKICAgICAgICBEYXRhICAgICAgICAgPT4gewogICAgICAgICAgICAlRkFRRGF0YSwKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgfSwKICAgICk7CgogICAgIyBhZGQgZm9vdGVyCiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkN1c3RvbWVyRm9vdGVyKCk7CgogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCjE7Cg==</File>
        <File Location="Kernel/Output/HTML/Dashboard/FAQ.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpEYXNoYm9hcmQ6OkZBUTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0JywKICAgICdLZXJuZWw6OlN5c3RlbTo6RkFRJywKKTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgZm9yIG15ICROZWVkZWQgKHF3KENvbmZpZyBOYW1lIFVzZXJJRCkpCiAgICB7CiAgICAgICAgZGllICJHb3Qgbm8gJE5lZWRlZCEiIGlmICggISRTZWxmLT57JE5lZWRlZH0gKTsKICAgIH0KCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBQcmVmZXJlbmNlcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIHJldHVybjsKfQoKc3ViIENvbmZpZyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIHJldHVybiAoCiAgICAgICAgJXsgJFNlbGYtPntDb25maWd9IH0sCiAgICApOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJEZBUU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpGQVEnKTsKCiAgICAjIHNldCBkZWZhdWx0IGludGVyZmFjZSBzZXR0aW5ncwogICAgbXkgJEludGVyZmFjZSA9ICRGQVFPYmplY3QtPlN0YXRlVHlwZUdldCgKICAgICAgICBOYW1lICAgPT4gJ2ludGVybmFsJywKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKICAgIG15ICRJbnRlcmZhY2VTdGF0ZXMgPSAkRkFRT2JqZWN0LT5TdGF0ZVR5cGVMaXN0KAogICAgICAgIFR5cGVzICA9PiAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0ZBUTo6QWdlbnQ6OlN0YXRlVHlwZXMnKSwKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICRMYXlvdXRPYmplY3QtPkZBUVNob3dMYXRlc3ROZXdzQm94KAogICAgICAgIEZBUU9iamVjdCAgICAgICA9PiAkRkFRT2JqZWN0LAogICAgICAgIFR5cGUgICAgICAgICAgICA9PiAkU2VsZi0+e0NvbmZpZ30tPntUeXBlfSwKICAgICAgICBNb2RlICAgICAgICAgICAgPT4gJ0FnZW50JywKICAgICAgICBDYXRlZ29yeUlEICAgICAgPT4gMCwKICAgICAgICBJbnRlcmZhY2UgICAgICAgPT4gJEludGVyZmFjZSwKICAgICAgICBJbnRlcmZhY2VTdGF0ZXMgPT4gJEludGVyZmFjZVN0YXRlcywKICAgICAgICBVc2VySUQgICAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKICAgIG15ICRDb250ZW50ID0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnREYXNoYm9hcmRGQVFPdmVydmlldycsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgQ2F0ZWdvcnlJRCAgID0+IDAsCiAgICAgICAgICAgIFNpZGViYXJDbGFzcyA9PiAnTWVkaXVtJywKICAgICAgICB9LAogICAgKTsKICAgIHJldHVybiAkQ29udGVudDsKfQoKMTsK</File>
        <File Location="Kernel/Output/HTML/FAQJournalOverview/Small.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpGQVFKb3VybmFsT3ZlcnZpZXc6OlNtYWxsOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkZBUScsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCik7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgZ2V0IFVzZXJJRCBwYXJhbQogICAgJFNlbGYtPntVc2VySUR9ID0gJFBhcmFte1VzZXJJRH0gfHwgZGllICJHb3Qgbm8gVXNlcklEISI7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICROZWVkZWQgKHF3KFBhZ2VTaG93biBTdGFydEhpdCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBpZiAoICEkUGFyYW17Sm91cm5hbH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIHRoZSBKb3VybmFsIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBzdG9yZSB0aGUgam91cm5hbCBsb2NhbGx5CiAgICBteSBASm91cm5hbEVudHJpZXM7CiAgICBpZiAoICRQYXJhbXtKb3VybmFsfSAmJiByZWYgJFBhcmFte0pvdXJuYWx9IGVxICdBUlJBWScgKSB7CiAgICAgICAgQEpvdXJuYWxFbnRyaWVzID0gQHsgJFBhcmFte0pvdXJuYWx9IH07CiAgICB9CgogICAgbXkgQFNob3dDb2x1bW5zOwoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBzaG93IEpvdXJuYWwgRW50cmllcyBhcyByb3dzCiAgICBpZiAoQEpvdXJuYWxFbnRyaWVzKSB7CgogICAgICAgICMgY2hlY2sgU2hvd0NvbHVtbnMgcGFyYW1ldGVyCiAgICAgICAgaWYgKCAkUGFyYW17U2hvd0NvbHVtbnN9ICYmIHJlZiAkUGFyYW17U2hvd0NvbHVtbnN9IGVxICdBUlJBWScgKSB7CiAgICAgICAgICAgIEBTaG93Q29sdW1ucyA9IEB7ICRQYXJhbXtTaG93Q29sdW1uc30gfTsKICAgICAgICB9CgogICAgICAgICMgYnVpbGQgY29sdW1uIGhlYWRlciBibG9ja3MKICAgICAgICBpZiAoQFNob3dDb2x1bW5zKSB7CgogICAgICAgICAgICAjIGNhbGwgbWFpbiBibG9jawogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAnUmVjb3JkRm9ybScgKTsKCiAgICAgICAgICAgIGZvciBteSAkQ29sdW1uIChAU2hvd0NvbHVtbnMpIHsKCiAgICAgICAgICAgICAgICAjIGNhbGwgaGVhZGVyIHNwZWNpZmljIGJsb2NrCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdSZWNvcmQnIC4gJENvbHVtbiAuICdIZWFkZXInLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIG15ICRDb3VudGVyID0gMDsKCiAgICAgICAgbXkgJEZBUU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpGQVEnKTsKCiAgICAgICAgSk9VUk5BTEVOVFJZOgogICAgICAgIGZvciBteSAkSm91cm5hbEVudHJ5IChASm91cm5hbEVudHJpZXMpIHsKICAgICAgICAgICAgJENvdW50ZXIrKzsKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgJENvdW50ZXIgPj0gJFBhcmFte1N0YXJ0SGl0fQogICAgICAgICAgICAgICAgJiYgJENvdW50ZXIgPCAoICRQYXJhbXtQYWdlU2hvd259ICsgJFBhcmFte1N0YXJ0SGl0fSApCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKCiAgICAgICAgICAgICAgICAjIGdldCBGQVEgZGF0YSBmb3IgY29ycnVwdGlvbiBjaGVjawogICAgICAgICAgICAgICAgbXkgJUZBUSA9ICRGQVFPYmplY3QtPkZBUUdldCgKICAgICAgICAgICAgICAgICAgICBJdGVtSUQgICAgID0+ICRKb3VybmFsRW50cnktPntJdGVtSUR9LAogICAgICAgICAgICAgICAgICAgIEl0ZW1GaWVsZHMgPT4gMCwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgJEpvdXJuYWxFbnRyeS0+e0NsZWFuU3ViamVjdH0gPSAkRkFRT2JqZWN0LT5GQVFBcnRpY2xlVGl0bGVDbGVhbigKICAgICAgICAgICAgICAgICAgICBUaXRsZSA9PiAkRkFRe1RpdGxlfSwKICAgICAgICAgICAgICAgICAgICBTaXplICA9PiAkUGFyYW17VGl0bGVTaXplfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgbmV4dCBKT1VSTkFMRU5UUlkgaWYgISVGQVE7CgogICAgICAgICAgICAgICAgIyBidWlsZCByZWNvcmQgYmxvY2sKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1JlY29yZCcsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgJXskSm91cm5hbEVudHJ5fSwKICAgICAgICAgICAgICAgICAgICAgICAgQ291bnRlciA9PiAkQ291bnRlciwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIGJ1aWxkIGNvbHVtbiByZWNvcmQgYmxvY2tzCiAgICAgICAgICAgICAgICBpZiAoQFNob3dDb2x1bW5zKSB7CgogICAgICAgICAgICAgICAgICAgIENPTFVNTjoKICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJENvbHVtbiAoQFNob3dDb2x1bW5zKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUmVjb3JkJyAuICRDb2x1bW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJXskSm91cm5hbEVudHJ5fSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICAgICAjIHNob3cgbGlua3MgaWYgYXZhaWxhYmxlCiAgICAgICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUmVjb3JkJyAuICRDb2x1bW4gLiAnTGlua1N0YXJ0JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAleyRKb3VybmFsRW50cnl9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdSZWNvcmQnIC4gJENvbHVtbiAuICdMaW5rRW5kJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAleyRKb3VybmFsRW50cnl9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBvdGhlcndpc2Ugc2V0IGFuIE5vIEZBUSBKb3VybmFsIG1lc3NhZ2UKICAgIGVsc2UgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKCBOYW1lID0+ICdOb0ZBUUZvdW5kJyApOwogICAgfQoKICAgICMgdXNlIHRlbXBsYXRlCiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRGQVFKb3VybmFsT3ZlcnZpZXdTbWFsbCcsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICBUeXBlICAgICAgICA9PiAkU2VsZi0+e1ZpZXdUeXBlfSwKICAgICAgICAgICAgQ29sdW1uQ291bnQgPT4gc2NhbGFyIEBTaG93Q29sdW1ucywKICAgICAgICB9LAogICAgKTsKCiAgICByZXR1cm4gJE91dHB1dDsKfQoKMTsK</File>
        <File Location="Kernel/Output/HTML/FAQMenu/Generic.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpGQVFNZW51OjpHZW5lcmljOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcsCik7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgZ2V0IFVzZXJJRCBwYXJhbQogICAgJFNlbGYtPntVc2VySUR9ID0gJFBhcmFte1VzZXJJRH0gfHwgZGllICJHb3Qgbm8gVXNlcklEISI7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgaWYgKCAhJFBhcmFte0ZBUUl0ZW19ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBGQVFJdGVtIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBncmFudCBhY2Nlc3MgYnkgZGVmYXVsdAogICAgbXkgJEFjY2VzcyA9IDE7CgogICAgIyBnZXQgZ3JvdXBzCiAgICBteSAkQWN0aW9uID0gJFBhcmFte0NvbmZpZ30tPntBY3Rpb259OwogICAgaWYgKCAkQWN0aW9uIGVxICdBZ2VudExpbmtPYmplY3QnICkgewoKICAgICAgICAjIFRoZSBMaW5rLWxpbmsgaXMgYSBzcGVjaWFsIGNhc2UsIGFzIGl0IGlzIG5vdCBzcGVjaWZpYyB0byBGQVEuCiAgICAgICAgIyBBcyBhIHdvcmthcm91bmQgd2UgaGFyZGNvcmUgdGhhdCBBZ2VudExpbmtPYmplY3QgaXMgdHJlYXRlZCBsaWtlIEFnZW50RkFRRWRpdAogICAgICAgICRBY3Rpb24gPSAnQWdlbnRGQVFFZGl0JzsKICAgIH0KCiAgICAjIGdldCBjb25maWd1cmF0aW9uIHNldHRpbmdzIGZvciB0aGUgc3BlY2lmaWVkIGFjdGlvbgogICAgbXkgJENvbmZpZyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnRnJvbnRlbmQ6Ok1vZHVsZScpLT57JEFjdGlvbn07CgogICAgbXkgJEdyb3Vwc1JvID0gJENvbmZpZy0+e0dyb3VwUm99IHx8IFtdOwogICAgbXkgJEdyb3Vwc1J3ID0gJENvbmZpZy0+e0dyb3VwfSAgIHx8IFtdOwoKICAgICMgY2hlY2sgcGVybWlzc2lvbgogICAgaWYgKCAkQWN0aW9uICYmICggQHskR3JvdXBzUm99IHx8IEB7JEdyb3Vwc1J3fSApICkgewoKICAgICAgICAjIGRlbnkgYWNjZXNzIGJ5IGRlZmF1bHQsIHdoZW4gdGhlcmUgYXJlIGdyb3VwcyB0byBjaGVjawogICAgICAgICRBY2Nlc3MgPSAwOwogICAgICAgIG15ICRIYXNQZXJtaXNzaW9uOwoKICAgICAgICAjIGNoZWNrIHJlYWQgb25seSBncm91cHMKICAgICAgICBST0dST1VQOgogICAgICAgIGZvciBteSAkUm9Hcm91cCAoIEB7JEdyb3Vwc1JvfSApIHsKCiAgICAgICAgICAgICRIYXNQZXJtaXNzaW9uID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyktPlBlcm1pc3Npb25DaGVjaygKICAgICAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICBHcm91cE5hbWUgPT4gJFJvR3JvdXAsCiAgICAgICAgICAgICAgICBUeXBlICAgICAgPT4gJ3JvJywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG5leHQgUk9HUk9VUCBpZiAhJEhhc1Blcm1pc3Npb247CiAgICAgICAgICAgIG5leHQgUk9HUk9VUCBpZiAkSGFzUGVybWlzc2lvbiAhPSAxOwoKICAgICAgICAgICAgIyBzZXQgYWNjZXNzCiAgICAgICAgICAgICRBY2Nlc3MgPSAxOwogICAgICAgICAgICBsYXN0IFJPR1JPVVA7CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIHJlYWQgd3JpdGUgZ3JvdXBzCiAgICAgICAgUldHUk9VUDoKICAgICAgICBmb3IgbXkgJFJ3R3JvdXAgKCBAeyRHcm91cHNSd30gKSB7CgogICAgICAgICAgICAkSGFzUGVybWlzc2lvbiA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpLT5QZXJtaXNzaW9uQ2hlY2soCiAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgR3JvdXBOYW1lID0+ICRSd0dyb3VwLAogICAgICAgICAgICAgICAgVHlwZSAgICAgID0+ICdydycsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBuZXh0IFJXR1JPVVAgaWYgISRIYXNQZXJtaXNzaW9uOwogICAgICAgICAgICBuZXh0IFJXR1JPVVAgaWYgJEhhc1Blcm1pc3Npb24gIT0gMTsKCiAgICAgICAgICAgICMgc2V0IGFjY2VzcwogICAgICAgICAgICAkQWNjZXNzID0gMTsKICAgICAgICAgICAgbGFzdCBSV0dST1VQOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gJFBhcmFte0NvdW50ZXJ9IGlmICEkQWNjZXNzOwoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBvdXRwdXQgbWVudSBpdGVtCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdNZW51SXRlbScsCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgJXsgJFBhcmFte0ZBUUl0ZW19IH0sCiAgICAgICAgICAgICV7ICRQYXJhbXtDb25maWd9IH0sCiAgICAgICAgfSwKICAgICk7CgogICAgJFBhcmFte0NvdW50ZXJ9Kys7CgogICAgcmV0dXJuICRQYXJhbXtDb3VudGVyfTsKfQoKMTsK</File>
        <File Location="Kernel/Output/HTML/FAQMenu/Delete.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpGQVFNZW51OjpEZWxldGU7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgojIFByZXZlbnQgdXNlZCBvbmx5IG9uY2Ugd2FybmluZwp1c2UgS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXI7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0JywKKTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIEFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QuCiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgR2V0IFVzZXJJRCBwYXJhbS4KICAgICRTZWxmLT57VXNlcklEfSA9ICRQYXJhbXtVc2VySUR9IHx8IGRpZSAiR290IG5vIFVzZXJJRCEiOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgUnVuIEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpGQVFNZW51OjpHZW5lcmljLgogICAgbXkgJEdlbmVyaWNPYmplY3QgPSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6RkFRTWVudTo6R2VuZXJpYy0+bmV3KCBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9ICk7CiAgICAkR2VuZXJpY09iamVjdC0+UnVuKAogICAgICAgICVQYXJhbSwKICAgICk7CgogICAgIyBDcmVhdGUgc3RydWN0dXJlIGZvciBKUy4KICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CiAgICBteSAlSlNEYXRhOwogICAgJEpTRGF0YXsgJFBhcmFte01lbnVJRH0gfSA9IHsKICAgICAgICBFbGVtZW50SUQgICAgICAgICAgICAgICAgICA9PiAkUGFyYW17TWVudUlEfSwKICAgICAgICBFbGVtZW50U2VsZWN0b3IgICAgICAgICAgICA9PiAnIycgLiAkUGFyYW17TWVudUlEfSwKICAgICAgICBEaWFsb2dDb250ZW50UXVlcnlTdHJpbmcgICA9PiAnQWN0aW9uPUFnZW50RkFRRGVsZXRlO0l0ZW1JRD0nIC4gJFBhcmFte0ZBUUl0ZW19LT57SXRlbUlEfSwKICAgICAgICBDb25maXJtZWRBY3Rpb25RdWVyeVN0cmluZyA9PiAnQWN0aW9uPUFnZW50RkFRRGVsZXRlO1N1YmFjdGlvbj1EZWxldGU7SXRlbUlEPScgLiAkUGFyYW17RkFRSXRlbX0tPntJdGVtSUR9LAogICAgICAgIERpYWxvZ1RpdGxlICAgICAgICAgICAgICAgID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnRGVsZXRlJyksCiAgICB9OwoKICAgICMgU2VuZCBkYXRhIHRvIEpTLgogICAgJExheW91dE9iamVjdC0+QWRkSlNEYXRhKAogICAgICAgIEtleSAgID0+ICdGQVFEYXRhJywKICAgICAgICBWYWx1ZSA9PiBcJUpTRGF0YSwKICAgICk7CgogICAgJFBhcmFte0NvdW50ZXJ9Kys7CgogICAgcmV0dXJuICRQYXJhbXtDb3VudGVyfTsKfQoKMTsK</File>
        <File Location="Kernel/Output/HTML/FAQOverview/Small.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpGQVFPdmVydmlldzo6U21hbGw7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCiAgICAnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkZBUScsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCik7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgZ2V0IFVzZXJJRCBwYXJhbQogICAgJFNlbGYtPntVc2VySUR9ID0gJFBhcmFte1VzZXJJRH0gfHwgZGllICJHb3Qgbm8gVXNlcklEISI7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICROZWVkZWQgKHF3KFBhZ2VTaG93biBTdGFydEhpdCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBpZiAoICEkUGFyYW17RkFRSURzfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgdGhlIEZBUUlEcyEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgc3RvcmUgdGhlIEZBUUlEcwogICAgbXkgQElEczsKICAgIGlmICggJFBhcmFte0ZBUUlEc30gJiYgcmVmICRQYXJhbXtGQVFJRHN9IGVxICdBUlJBWScgKSB7CiAgICAgICAgQElEcyA9IEB7ICRQYXJhbXtGQVFJRHN9IH07CiAgICB9CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgbXkgJE11bHRpTGFuZ3VhZ2UgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6TXVsdGlMYW5ndWFnZScpOwoKICAgICMgZ2V0IGR5bmFtaWMgZmllbGQgY29uZmlnIGZvciBmcm9udGVuZCBtb2R1bGUKICAgIG15ICREeW5hbWljRmllbGRGaWx0ZXIgPSAkQ29uZmlnT2JqZWN0LT5HZXQoIkZBUTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3U21hbGwiKS0+e0R5bmFtaWNGaWVsZH07CgogICAgIyBnZXQgdGhlIGR5bmFtaWMgZmllbGRzIGZvciB0aGlzIHNjcmVlbgogICAgbXkgJER5bmFtaWNGaWVsZCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKS0+RHluYW1pY0ZpZWxkTGlzdEdldCgKICAgICAgICBWYWxpZCAgICAgICA9PiAxLAogICAgICAgIE9iamVjdFR5cGUgID0+IFsnRkFRJ10sCiAgICAgICAgRmllbGRGaWx0ZXIgPT4gJER5bmFtaWNGaWVsZEZpbHRlciB8fCB7fSwKICAgICk7CgogICAgbXkgQFNob3dDb2x1bW5zOwoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgaWYgKEBJRHMpIHsKCiAgICAgICAgIyBjaGVjayBTaG93Q29sdW1ucyBwYXJhbWV0ZXIKICAgICAgICBpZiAoICRQYXJhbXtTaG93Q29sdW1uc30gJiYgcmVmICRQYXJhbXtTaG93Q29sdW1uc30gZXEgJ0FSUkFZJyApIHsKICAgICAgICAgICAgQFNob3dDb2x1bW5zID0gQHsgJFBhcmFte1Nob3dDb2x1bW5zfSB9OwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgZHluYW1pYyBmaWVsZCBiYWNrZW5kIG9iamVjdAogICAgICAgIG15ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZCcpOwoKICAgICAgICAjIGJ1aWxkIGNvbHVtbiBoZWFkZXIgYmxvY2tzCiAgICAgICAgaWYgKEBTaG93Q29sdW1ucykgewoKICAgICAgICAgICAgIyBjYWxsIG1haW4gYmxvY2sKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soIE5hbWUgPT4gJ1JlY29yZEZvcm0nICk7CgogICAgICAgICAgICBDT0xVTU46CiAgICAgICAgICAgIGZvciBteSAkQ29sdW1uIChAU2hvd0NvbHVtbnMpIHsKCiAgICAgICAgICAgICAgICBuZXh0IENPTFVNTiBpZiAoICRDb2x1bW4gZXEgJ0xhbmd1YWdlJyAmJiAhJE11bHRpTGFuZ3VhZ2UgKTsKCiAgICAgICAgICAgICAgICAjIGNyZWF0ZSBuZWVkZWQgdmFyaWFibGVzCiAgICAgICAgICAgICAgICBteSAkQ1NTID0gJ092ZXJ2aWV3SGVhZGVyJzsKICAgICAgICAgICAgICAgIG15ICRPcmRlckJ5OwoKICAgICAgICAgICAgICAgICMgcmVtb3ZlIElEIGlmIG5lY2Vzc2FyeQogICAgICAgICAgICAgICAgaWYgKCAkUGFyYW17U29ydEJ5fSApIHsKICAgICAgICAgICAgICAgICAgICAkUGFyYW17U29ydEJ5fSA9ICRQYXJhbXtTb3J0Qnl9IGVxICdQcmlvcml0eUlEJwogICAgICAgICAgICAgICAgICAgICAgICA/ICdQcmlvcml0eScKICAgICAgICAgICAgICAgICAgICAgICAgOiAkUGFyYW17U29ydEJ5fSBlcSAnQ2F0ZWdvcnlJRCcgPyAnQ2F0ZWdvcnknCiAgICAgICAgICAgICAgICAgICAgICAgIDogJFBhcmFte1NvcnRCeX0gZXEgJ0xhbmd1YWdlSUQnID8gJ0xhbmd1YWdlJwogICAgICAgICAgICAgICAgICAgICAgICA6ICRQYXJhbXtTb3J0Qnl9IGVxICdTdGF0ZUlEJyAgICA/ICdTdGF0ZScKICAgICAgICAgICAgICAgICAgICAgICAgOiAkUGFyYW17U29ydEJ5fSBlcSAnRkFRSUQnICAgICAgPyAnTnVtYmVyJwogICAgICAgICAgICAgICAgICAgICAgICA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQYXJhbXtTb3J0Qnl9OwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgc2V0IHRoZSBjb3JyZWN0IFNldCBDU1MgY2xhc3MgYW5kIG9yZGVyIGJ5IGxpbmsKICAgICAgICAgICAgICAgIGlmICggJFBhcmFte1NvcnRCeX0gJiYgKCAkUGFyYW17U29ydEJ5fSBlcSAkQ29sdW1uICkgKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAkUGFyYW17T3JkZXJCeX0gJiYgKCAkUGFyYW17T3JkZXJCeX0gZXEgJ1VwJyApICkgewogICAgICAgICAgICAgICAgICAgICAgICAkT3JkZXJCeSA9ICdEb3duJzsKICAgICAgICAgICAgICAgICAgICAgICAgJENTUyAuPSAnIFNvcnREZXNjZW5kaW5nTGFyZ2UnOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJE9yZGVyQnkgPSAnVXAnOwogICAgICAgICAgICAgICAgICAgICAgICAkQ1NTIC49ICcgU29ydEFzY2VuZGluZ0xhcmdlJzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkT3JkZXJCeSA9ICdVcCc7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUmVjb3JkJyAuICRDb2x1bW4gLiAnSGVhZGVyJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICAgICBDU1MgICAgID0+ICRDU1MsCiAgICAgICAgICAgICAgICAgICAgICAgIE9yZGVyQnkgPT4gJE9yZGVyQnksCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgRHluYW1pYyBmaWVsZHMKICAgICAgICAgICAgRFlOQU1JQ0ZJRUxEOgogICAgICAgICAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7JER5bmFtaWNGaWVsZH0gKSB7CiAgICAgICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CgogICAgICAgICAgICAgICAgbXkgJExhYmVsID0gJER5bmFtaWNGaWVsZENvbmZpZy0+e0xhYmVsfTsKCiAgICAgICAgICAgICAgICAjIGdldCBmaWVsZCBzb3J0YWJsZSBjb25kaXRpb24KICAgICAgICAgICAgICAgIG15ICRJc1NvcnRhYmxlID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPkhhc0JlaGF2aW9yKAogICAgICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICAgICAgICAgIEJlaGF2aW9yICAgICAgICAgICA9PiAnSXNTb3J0YWJsZScsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIGlmICgkSXNTb3J0YWJsZSkgewogICAgICAgICAgICAgICAgICAgIG15ICRDU1MgPSAnT3ZlcnZpZXdIZWFkZXInOwogICAgICAgICAgICAgICAgICAgIG15ICRPcmRlckJ5OwogICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICAgJFBhcmFte1NvcnRCeX0KICAgICAgICAgICAgICAgICAgICAgICAgJiYgKCAkUGFyYW17U29ydEJ5fSBlcSAoICdEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSApICkKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAkUGFyYW17T3JkZXJCeX0gJiYgKCAkUGFyYW17T3JkZXJCeX0gZXEgJ1VwJyApICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJE9yZGVyQnkgPSAnRG93bic7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ1NTIC49ICcgU29ydERlc2NlbmRpbmdMYXJnZSc7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkT3JkZXJCeSA9ICdVcCc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ1NTIC49ICcgU29ydEFzY2VuZGluZ0xhcmdlJzsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJE9yZGVyQnkgPSAnVXAnOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1JlY29yZER5bmFtaWNGaWVsZEhlYWRlcicsCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1NTID0+ICRDU1MsCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1JlY29yZER5bmFtaWNGaWVsZEhlYWRlclNvcnRhYmxlJywKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgID0+ICRPcmRlckJ5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwgICAgICAgICAgICA9PiAkTGFiZWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGROYW1lID0+ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAjIGV4YW1wbGUgb2YgZHluYW1pYyBmaWVsZHMgb3JkZXIgY3VzdG9taXphdGlvbgogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdSZWNvcmREeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSAuICdIZWFkZXInLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENTUyA9PiAkQ1NTLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdSZWNvcmREeW5hbWljRmllbGRfJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJ0hlYWRlclNvcnRhYmxlJywKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgID0+ICRPcmRlckJ5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwgICAgICAgICAgICA9PiAkTGFiZWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGROYW1lID0+ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdSZWNvcmREeW5hbWljRmllbGRIZWFkZXInLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUmVjb3JkRHluYW1pY0ZpZWxkSGVhZGVyTm90U29ydGFibGUnLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhYmVsID0+ICRMYWJlbCwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAjIGV4YW1wbGUgb2YgZHluYW1pYyBmaWVsZHMgb3JkZXIgY3VzdG9taXphdGlvbgogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdSZWNvcmREeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSAuICdIZWFkZXInLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUmVjb3JkRHluYW1pY0ZpZWxkXycKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICdIZWFkZXJOb3RTb3J0YWJsZScsCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwgPT4gJExhYmVsLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIG15ICRDb3VudGVyID0gMDsKCiAgICAgICAgSUQ6CiAgICAgICAgZm9yIG15ICRJRCAoQElEcykgewogICAgICAgICAgICAkQ291bnRlcisrOwogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAkQ291bnRlciA+PSAkUGFyYW17U3RhcnRIaXR9CiAgICAgICAgICAgICAgICAmJiAkQ291bnRlciA8ICggJFBhcmFte1BhZ2VTaG93bn0gKyAkUGFyYW17U3RhcnRIaXR9ICkKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewoKICAgICAgICAgICAgICAgICMgdG8gc3RvcmUgYWxsIGRhdGEKICAgICAgICAgICAgICAgIG15ICVEYXRhOwoKICAgICAgICAgICAgICAgIG15ICRGQVFPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RkFRJyk7CgogICAgICAgICAgICAgICAgbXkgJUZBUSA9ICRGQVFPYmplY3QtPkZBUUdldCgKICAgICAgICAgICAgICAgICAgICBJdGVtSUQgICAgID0+ICRJRCwKICAgICAgICAgICAgICAgICAgICBJdGVtRmllbGRzID0+IDAsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICRGQVF7Q2xlYW5UaXRsZX0gPSAkRkFRT2JqZWN0LT5GQVFBcnRpY2xlVGl0bGVDbGVhbigKICAgICAgICAgICAgICAgICAgICBUaXRsZSA9PiAkRkFRe1RpdGxlfSwKICAgICAgICAgICAgICAgICAgICBTaXplICA9PiAkUGFyYW17VGl0bGVTaXplfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgbmV4dCBJRCBpZiAhJUZBUTsKCiAgICAgICAgICAgICAgICAjIGFkZCBGQVEgZGF0YQogICAgICAgICAgICAgICAgJURhdGEgPSAoICVEYXRhLCAlRkFRICk7CgogICAgICAgICAgICAgICAgIyBidWlsZCByZWNvcmQgYmxvY2sKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1JlY29yZCcsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgJURhdGEsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBidWlsZCBjb2x1bW4gcmVjb3JkIGJsb2NrcwogICAgICAgICAgICAgICAgaWYgKEBTaG93Q29sdW1ucykgewogICAgICAgICAgICAgICAgICAgIENPTFVNTjoKICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJENvbHVtbiAoQFNob3dDb2x1bW5zKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAjIGRvIG5vdCBzaG93IGxhbmd1YWdlIGNvbHVtbiBpZiBGQVEgZG9lcyBub3Qgc3VwcG9ydCBtdWx0aXBsZSBsYW5ndWFnZXMKICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCBDT0xVTU4gaWYgKCAkQ29sdW1uIGVxICdMYW5ndWFnZScgJiYgISRNdWx0aUxhbmd1YWdlICk7CgogICAgICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1JlY29yZCcgLiAkQ29sdW1uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICVEYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICMgZG8gbm90IGRpc3BsYXkgY29sdW1ucyBhcyBsaW5rcyBpbiB0aGUgY3VzdG9tZXIgZnJvbnRlbmQKICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCBDT0xVTU4gaWYgJFBhcmFte0Zyb250ZW5kfSBlcSAnQ3VzdG9tZXInOwoKICAgICAgICAgICAgICAgICAgICAgICAgIyBzaG93IGxpbmtzIGlmIGF2YWlsYWJsZQogICAgICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1JlY29yZCcgLiAkQ29sdW1uIC4gJ0xpbmtTdGFydCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJURhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1JlY29yZCcgLiAkQ29sdW1uIC4gJ0xpbmtFbmQnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICVEYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBEeW5hbWljIGZpZWxkcwogICAgICAgICAgICAgICAgRFlOQU1JQ0ZJRUxEOgogICAgICAgICAgICAgICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyREeW5hbWljRmllbGR9ICkgewogICAgICAgICAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKCiAgICAgICAgICAgICAgICAgICAgIyBnZXQgZmllbGQgdmFsdWUKICAgICAgICAgICAgICAgICAgICBteSAkVmFsdWUgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+VmFsdWVHZXQoCiAgICAgICAgICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgICBPYmplY3RJRCAgICAgICAgICAgPT4gJElELAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgIG15ICRWYWx1ZVN0cmcgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+RGlzcGxheVZhbHVlUmVuZGVyKAogICAgICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICRWYWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVNYXhDaGFycyAgICAgID0+IDIwLAogICAgICAgICAgICAgICAgICAgICAgICBMYXlvdXRPYmplY3QgICAgICAgPT4gJExheW91dE9iamVjdCwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUmVjb3JkRHluYW1pY0ZpZWxkJywKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkVmFsdWVTdHJnLT57VmFsdWV9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgVGl0bGUgPT4gJFZhbHVlU3RyZy0+e1RpdGxlfSwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICBpZiAoICRWYWx1ZVN0cmctPntMaW5rfSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdSZWNvcmREeW5hbWljRmllbGRMaW5rJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICAgICAgICAgICA9PiAkVmFsdWVTdHJnLT57VmFsdWV9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRpdGxlICAgICAgICAgICAgICAgICAgICAgICA9PiAkVmFsdWVTdHJnLT57VGl0bGV9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpbmsgICAgICAgICAgICAgICAgICAgICAgICA9PiAkVmFsdWVTdHJnLT57TGlua30sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9ID0+ICRWYWx1ZVN0cmctPntUaXRsZX0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdSZWNvcmREeW5hbWljRmllbGRQbGFpbicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkVmFsdWVTdHJnLT57VmFsdWV9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRpdGxlID0+ICRWYWx1ZVN0cmctPntUaXRsZX0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgIyBleGFtcGxlIG9mIGR5bmFtaWMgZmllbGRzIG9yZGVyIGN1c3RvbWl6YXRpb24KICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUmVjb3JkRHluYW1pY0ZpZWxkXycgLiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0sCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWUgPT4gJFZhbHVlU3RyZy0+e1ZhbHVlfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRpdGxlID0+ICRWYWx1ZVN0cmctPntUaXRsZX0sCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgaWYgKCAkVmFsdWVTdHJnLT57TGlua30gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUmVjb3JkRHluYW1pY0ZpZWxkXycgLiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gLiAnX0xpbmsnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgICAgICAgICAgID0+ICRWYWx1ZVN0cmctPntWYWx1ZX0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGl0bGUgICAgICAgICAgICAgICAgICAgICAgID0+ICRWYWx1ZVN0cmctPntUaXRsZX0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGluayAgICAgICAgICAgICAgICAgICAgICAgID0+ICRWYWx1ZVN0cmctPntMaW5rfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gPT4gJFZhbHVlU3RyZy0+e1RpdGxlfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1JlY29yZER5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IC4gJ19QbGFpbicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkVmFsdWVTdHJnLT57VmFsdWV9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRpdGxlID0+ICRWYWx1ZVN0cmctPntUaXRsZX0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIGVsc2UgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKCBOYW1lID0+ICdOb0ZBUUZvdW5kJyApOwogICAgfQoKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudEZBUU92ZXJ2aWV3U21hbGwnLAogICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgVHlwZSAgICAgICAgPT4gJFNlbGYtPntWaWV3VHlwZX0sCiAgICAgICAgICAgIENvbHVtbkNvdW50ID0+IHNjYWxhciBAU2hvd0NvbHVtbnMsCiAgICAgICAgfSwKICAgICk7CgogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCjE7Cg==</File>
        <File Location="Kernel/Output/HTML/HeaderMeta/AgentFAQSearch.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpIZWFkZXJNZXRhOjpBZ2VudEZBUVNlYXJjaDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0JywKKTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICBteSAkU2Vzc2lvbiA9ICcnOwogICAgaWYgKCAhJExheW91dE9iamVjdC0+e1Nlc3Npb25JRENvb2tpZX0gKSB7CiAgICAgICAgJFNlc3Npb24gPSAnOycgLiAkTGF5b3V0T2JqZWN0LT57U2Vzc2lvbk5hbWV9IC4gJz0nIC4gJExheW91dE9iamVjdC0+e1Nlc3Npb25JRH07CiAgICB9CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBidWlsZCBvcGVuIHNlYXJjaCBkZXNjcmlwdGlvbiBmb3IgRkFRIG51bWJlcgogICAgbXkgJFRpdGxlID0gJENvbmZpZ09iamVjdC0+R2V0KCdQcm9kdWN0TmFtZScpIC4gJyAoJyAuICRDb25maWdPYmplY3QtPkdldCgnRkFROjpGQVFIb29rJykgLiAnKSc7CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdNZXRhTGluaycsCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgIFJlbCAgID0+ICdzZWFyY2gnLAogICAgICAgICAgICBUeXBlICA9PiAnYXBwbGljYXRpb24vb3BlbnNlYXJjaGRlc2NyaXB0aW9uK3htbCcsCiAgICAgICAgICAgIFRpdGxlID0+ICRUaXRsZSwKICAgICAgICAgICAgSHJlZiAgPT4gJExheW91dE9iamVjdC0+e0Jhc2VsaW5rfSAuICdBY3Rpb249JyAuICRQYXJhbXtDb25maWd9LT57QWN0aW9ufQogICAgICAgICAgICAgICAgLiAnO1N1YmFjdGlvbj1PcGVuU2VhcmNoRGVzY3JpcHRpb25GQVFOdW1iZXInIC4gJFNlc3Npb24sCiAgICAgICAgfSwKICAgICk7CgogICAgIyBidWlsZCBvcGVuIHNlYXJjaCBkZXNjcmlwdGlvbiBmb3IgRkFRIGZ1bGwtdGV4dAogICAgJFRpdGxlID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnJXMgKEZBUUZ1bGx0ZXh0KScsICRDb25maWdPYmplY3QtPkdldCgnUHJvZHVjdE5hbWUnKSApOwogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnTWV0YUxpbmsnLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICBSZWwgICA9PiAnc2VhcmNoJywKICAgICAgICAgICAgVHlwZSAgPT4gJ2FwcGxpY2F0aW9uL29wZW5zZWFyY2hkZXNjcmlwdGlvbit4bWwnLAogICAgICAgICAgICBUaXRsZSA9PiAkVGl0bGUsCiAgICAgICAgICAgIEhyZWYgID0+ICRMYXlvdXRPYmplY3QtPntCYXNlbGlua30gLiAnQWN0aW9uPScgLiAkUGFyYW17Q29uZmlnfS0+e0FjdGlvbn0KICAgICAgICAgICAgICAgIC4gJztTdWJhY3Rpb249T3BlblNlYXJjaERlc2NyaXB0aW9uRnVsbHRleHQnIC4gJFNlc3Npb24sCiAgICAgICAgfSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCjE7Cg==</File>
        <File Location="Kernel/Output/HTML/HeaderMeta/CustomerFAQSearch.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpIZWFkZXJNZXRhOjpDdXN0b21lckZBUVNlYXJjaDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0JywKKTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICBteSAkU2Vzc2lvbiA9ICcnOwogICAgaWYgKCAhJExheW91dE9iamVjdC0+e1Nlc3Npb25JRENvb2tpZX0gKSB7CiAgICAgICAgJFNlc3Npb24gPSAnOycgLiAkTGF5b3V0T2JqZWN0LT57U2Vzc2lvbk5hbWV9IC4gJz0nIC4gJExheW91dE9iamVjdC0+e1Nlc3Npb25JRH07CiAgICB9CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBidWlsZCBvcGVuIHNlYXJjaCBkZXNjcmlwdGlvbiBmb3IgRkFRIG51bWJlcgogICAgbXkgJFRpdGxlID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKAogICAgICAgICclcyAtIEN1c3RvbWVyICglcyknLAogICAgICAgICRDb25maWdPYmplY3QtPkdldCgnUHJvZHVjdE5hbWUnKSwKICAgICAgICAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6RkFRSG9vaycpLAogICAgKTsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ01ldGFMaW5rJywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgUmVsICAgPT4gJ3NlYXJjaCcsCiAgICAgICAgICAgIFR5cGUgID0+ICdhcHBsaWNhdGlvbi9vcGVuc2VhcmNoZGVzY3JpcHRpb24reG1sJywKICAgICAgICAgICAgVGl0bGUgPT4gJFRpdGxlLAogICAgICAgICAgICBIcmVmICA9PiAkTGF5b3V0T2JqZWN0LT57QmFzZWxpbmt9CiAgICAgICAgICAgICAgICAuICdBY3Rpb249JwogICAgICAgICAgICAgICAgLiAkUGFyYW17Q29uZmlnfS0+e0FjdGlvbn0KICAgICAgICAgICAgICAgIC4gJztTdWJhY3Rpb249T3BlblNlYXJjaERlc2NyaXB0aW9uRkFRTnVtYmVyJyAuICRTZXNzaW9uLAogICAgICAgIH0sCiAgICApOwoKICAgICMgYnVpbGQgb3BlbiBzZWFyY2ggZGVzY3JpcHRpb24gZm9yIEZBUSBmdWxsLXRleHQKICAgICRUaXRsZSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgKICAgICAgICAnJXMgLSBDdXN0b21lciAoRkFRRnVsbHRleHQpJywKICAgICAgICAkQ29uZmlnT2JqZWN0LT5HZXQoJ1Byb2R1Y3ROYW1lJyksCiAgICApOwogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnTWV0YUxpbmsnLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICBSZWwgICA9PiAnc2VhcmNoJywKICAgICAgICAgICAgVHlwZSAgPT4gJ2FwcGxpY2F0aW9uL29wZW5zZWFyY2hkZXNjcmlwdGlvbit4bWwnLAogICAgICAgICAgICBUaXRsZSA9PiAkVGl0bGUsCiAgICAgICAgICAgIEhyZWYgID0+ICRMYXlvdXRPYmplY3QtPntCYXNlbGlua30KICAgICAgICAgICAgICAgIC4gJ0FjdGlvbj0nCiAgICAgICAgICAgICAgICAuICRQYXJhbXtDb25maWd9LT57QWN0aW9ufQogICAgICAgICAgICAgICAgLiAnO1N1YmFjdGlvbj1PcGVuU2VhcmNoRGVzY3JpcHRpb25GdWxsdGV4dCcgLiAkU2Vzc2lvbiwKICAgICAgICB9LAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKMTsK</File>
        <File Location="Kernel/Output/HTML/HeaderMeta/PublicFAQSearch.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpIZWFkZXJNZXRhOjpQdWJsaWNGQVFTZWFyY2g7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCiAgICAnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcsCik7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgbXkgJFNlc3Npb24gPSAnJzsKICAgIGlmICggISRMYXlvdXRPYmplY3QtPntTZXNzaW9uSURDb29raWV9ICkgewogICAgICAgICRTZXNzaW9uID0gJzsnIC4gJExheW91dE9iamVjdC0+e1Nlc3Npb25OYW1lfSAuICc9JwogICAgICAgICAgICAuICRMYXlvdXRPYmplY3QtPntTZXNzaW9uSUR9OwogICAgfQoKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICMgYnVpbGQgb3BlbiBzZWFyY2ggZGVzY3JpcHRpb24gZm9yIEZBUSBudW1iZXIKICAgIG15ICRUaXRsZSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgKICAgICAgICAnJXMgLSBQdWJsaWMgKCVzKScsCiAgICAgICAgJENvbmZpZ09iamVjdC0+R2V0KCdQcm9kdWN0TmFtZScpLAogICAgICAgICRDb25maWdPYmplY3QtPkdldCgnRkFROjpGQVFIb29rJyksCiAgICApOwogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnTWV0YUxpbmsnLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICBSZWwgICA9PiAnc2VhcmNoJywKICAgICAgICAgICAgVHlwZSAgPT4gJ2FwcGxpY2F0aW9uL29wZW5zZWFyY2hkZXNjcmlwdGlvbit4bWwnLAogICAgICAgICAgICBUaXRsZSA9PiAkVGl0bGUsCiAgICAgICAgICAgIEhyZWYgID0+ICRMYXlvdXRPYmplY3QtPntCYXNlbGlua30KICAgICAgICAgICAgICAgIC4gJ0FjdGlvbj0nCiAgICAgICAgICAgICAgICAuICRQYXJhbXtDb25maWd9LT57QWN0aW9ufQogICAgICAgICAgICAgICAgLiAnO1N1YmFjdGlvbj1PcGVuU2VhcmNoRGVzY3JpcHRpb25GQVFOdW1iZXInIC4gJFNlc3Npb24sCiAgICAgICAgfSwKICAgICk7CgogICAgIyBidWlsZCBvcGVuIHNlYXJjaCBkZXNjcmlwdGlvbiBmb3IgRkFRIGZ1bGwtdGV4dAogICAgJFRpdGxlID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKAogICAgICAgICclcyAtIFB1YmxpYyAoRkFRRnVsbHRleHQpJywKICAgICAgICAkQ29uZmlnT2JqZWN0LT5HZXQoJ1Byb2R1Y3ROYW1lJyksCiAgICApOwogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnTWV0YUxpbmsnLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICBSZWwgICA9PiAnc2VhcmNoJywKICAgICAgICAgICAgVHlwZSAgPT4gJ2FwcGxpY2F0aW9uL29wZW5zZWFyY2hkZXNjcmlwdGlvbit4bWwnLAogICAgICAgICAgICBUaXRsZSA9PiAkVGl0bGUsCiAgICAgICAgICAgIEhyZWYgID0+ICRMYXlvdXRPYmplY3QtPntCYXNlbGlua30KICAgICAgICAgICAgICAgIC4gJ0FjdGlvbj0nCiAgICAgICAgICAgICAgICAuICRQYXJhbXtDb25maWd9LT57QWN0aW9ufQogICAgICAgICAgICAgICAgLiAnO1N1YmFjdGlvbj1PcGVuU2VhcmNoRGVzY3JpcHRpb25GdWxsdGV4dCcgLiAkU2Vzc2lvbiwKICAgICAgICB9LAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKMTsK</File>
        <File Location="Kernel/Output/HTML/Layout/FAQ.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQ6OkZBUTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6Okxhbmd1YWdlIHF3KFRyYW5zbGF0YWJsZSk7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OkF1dGhTZXNzaW9uJywKICAgICdLZXJuZWw6OlN5c3RlbTo6SFRNTFV0aWxzJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TWFpbicsCiAgICAnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcsCiAgICAnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcsCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dDo6RkFRIC0gYWxsIEZBUS1yZWxhdGVkIEhUTUwgZnVuY3Rpb25zCgo9aGVhZDEgREVTQ1JJUFRJT04KCkFsbCBGQVEtcmVsYXRlZCBIVE1MIGZ1bmN0aW9ucwoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1oZWFkMiBHZXRGQVFJdGVtVm90aW5nUmF0ZUNvbG9yKCkKUmV0dXJucyBhIGNvbG9yIGRlcGVuZGluZyBvbiB0aGUgRkFRIHJhdGUKCiAgICBteSAkVm90aW5nUmVzdWx0Q29sb3IgPSAkTGF5b3V0T2JqZWN0LT5HZXRGQVFJdGVtVm90aW5nUmF0ZUNvbG9yKAogICAgICAgIFJhdGUgPT4gJzIwJywKICAgICk7CgpSZXR1cm5zOgoKICAgICRWb3RpbmdSZXN1bHRDb2xvciA9ICdyZWQnICAgICAgICAgICMgb3IgJ29yYW5nZScgb3IgJ2dyZWVuJwoKPWN1dAoKc3ViIEdldEZBUUl0ZW1Wb3RpbmdSYXRlQ29sb3IgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBpZiAoICFkZWZpbmVkICRQYXJhbXtSYXRlfSApIHsKICAgICAgICByZXR1cm4gJFNlbGYtPkZhdGFsRXJyb3IoCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdOZWVkIHJhdGUhJyksCiAgICAgICAgKTsKICAgIH0KICAgIG15ICRDc3NUbXAgICAgICAgICAgICAgPSAnJzsKICAgIG15ICRWb3RpbmdSZXN1bHRDb2xvcnMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0ZBUTo6RXhwbG9yZXI6Okl0ZW1MaXN0OjpWb3RpbmdSZXN1bHRDb2xvcnMnKTsKCiAgICBmb3IgbXkgJEtleSAoIHNvcnQgeyAkYiA8PT4gJGEgfSBrZXlzICV7JFZvdGluZ1Jlc3VsdENvbG9yc30gKSB7CiAgICAgICAgaWYgKCAkUGFyYW17UmF0ZX0gPD0gJEtleSApIHsKICAgICAgICAgICAgJENzc1RtcCA9ICRWb3RpbmdSZXN1bHRDb2xvcnMtPnskS2V5fTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gJENzc1RtcDsKfQoKPWhlYWQyIEZBUUxpc3RTaG93KCkKClJldHVybnMgYSBsaXN0IG9mIEZBUSBpdGVtcyBhcyBzb3J0LWFibGUgbGlzdCB3aXRoIHBhZ2luYXRpb24uCgpUaGlzIGZ1bmN0aW9uIGlzIHNpbWlsYXIgdG8gTDxLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0VGlja2V0OjpUaWNrZXRMaXN0U2hvdygpPgppbiBGPEtlcm5lbC9PdXRwdXQvSFRNTC9MYXlvdXQvVGlja2V0LnBtPi4KCiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+RkFRTGlzdFNob3coCiAgICAgICAgRkFRSURzICAgICA9PiAkRkFRSURzUmVmLCAgICAgICAgICAgICAgICAgICAgICAgICAjIHRvdGFsIGxpc3Qgb2YgRkFRSURzLCB0aGF0IGNhbiBiZSBsaXN0ZWQKICAgICAgICBUb3RhbCAgICAgID0+IHNjYWxhciBAeyAkRkFRSURzUmVmIH0sICAgICAgICAgICAgICMgdG90YWwgbnVtYmVyIG9mIGxpc3QgaXRlbXMsIGluIHRoaXMgY2FzZQogICAgICAgIFZpZXcgICAgICAgPT4gJFNlbGYtPntWaWV3fSwgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbCwgdGhlIGRlZmF1bHQgdmFsdWUgaXMgJ1NtYWxsJwogICAgICAgIEZpbHRlciAgICAgPT4gJ0FsbCcsCiAgICAgICAgRmlsdGVycyAgICA9PiBcJU5hdkJhckZpbHRlciwKICAgICAgICBGaWx0ZXJMaW5rID0+ICRMaW5rRmlsdGVyLAogICAgICAgIFRpdGxlTmFtZSAgPT4gJ092ZXJ2aWV3OiBGQVEnLAogICAgICAgIFRpdGxlVmFsdWUgPT4gJFNlbGYtPntGaWx0ZXJ9LAogICAgICAgIEVudiAgICAgICAgPT4gJFNlbGYsCiAgICAgICAgTGlua1BhZ2UgICA9PiAkTGlua1BhZ2UsCiAgICAgICAgTGlua1NvcnQgICA9PiAkTGlua1NvcnQsCiAgICAgICAgRnJvbnRlbmQgICA9PiAnQWdlbnQnLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsIChBZ2VudHxDdXN0b21lcnxQdWJsaWMpLCBkZWZhdWx0OiBBZ2VudCwgaW5kaWNhdGVzIGZyb20gd2hpY2ggZnJvbnRlbmQgdGhpcyBmdW5jdGlvbiB3YXMgY2FsbGVkCiAgICApOwoKPWN1dAoKc3ViIEZBUUxpc3RTaG93IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyB0YWtlIG9iamVjdCByZWYgdG8gbG9jYWwsIHJlbW92ZSBpdCBmcm9tICVQYXJhbSAocHJldmVudCBtZW1vcnkgbGVhaykKICAgIG15ICRFbnYgPSAkUGFyYW17RW52fTsKICAgIGRlbGV0ZSAkUGFyYW17RW52fTsKCiAgICAjIGxvb2t1cCBsYXRlc3QgdXNlZCB2aWV3IG1vZGUKICAgIGlmICggISRQYXJhbXtWaWV3fSAmJiAkU2VsZi0+eyAnVXNlckZBUU92ZXJ2aWV3JyAuICRFbnYtPntBY3Rpb259IH0gKSB7CiAgICAgICAgJFBhcmFte1ZpZXd9ID0gJFNlbGYtPnsgJ1VzZXJGQVFPdmVydmlldycgLiAkRW52LT57QWN0aW9ufSB9OwogICAgfQoKICAgICMgc2V0IGRlZmF1bHQgdmlldyBtb2RlIHRvICdzbWFsbCcKICAgIG15ICRWaWV3ID0gJFBhcmFte1ZpZXd9IHx8ICdTbWFsbCc7CgogICAgIyBzdG9yZSBsYXRlc3QgdmlldyBtb2RlCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6QXV0aFNlc3Npb24nKS0+VXBkYXRlU2Vzc2lvbklEKAogICAgICAgIFNlc3Npb25JRCA9PiAkU2VsZi0+e1Nlc3Npb25JRH0sCiAgICAgICAgS2V5ICAgICAgID0+ICdVc2VyRkFRT3ZlcnZpZXcnIC4gJEVudi0+e0FjdGlvbn0sCiAgICAgICAgVmFsdWUgICAgID0+ICRWaWV3LAogICAgKTsKCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAjIGdldCBiYWNrZW5kIGZyb20gY29uZmlnCiAgICBteSAkQmFja2VuZHMgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3JykgfHwgJyc7CiAgICBpZiAoICEkQmFja2VuZHMgKSB7CiAgICAgICAgcmV0dXJuICRTZWxmLT5GYXRhbEVycm9yKAogICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnTmVlZCBjb25maWcgb3B0aW9uIEZBUTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3JyksCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGNoZWNrIGZvciBoYXNoLXJlZgogICAgaWYgKCByZWYgJEJhY2tlbmRzIG5lICdIQVNIJyApIHsKICAgICAgICByZXR1cm4gJFNlbGYtPkZhdGFsRXJyb3IoCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdDb25maWcgb3B0aW9uIEZBUTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3IG5lZWRzIHRvIGJlIGEgSEFTSCByZWYhJyksCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGNoZWNrIGZvciBjb25maWcga2V5CiAgICBpZiAoICEkQmFja2VuZHMtPnskVmlld30gKSB7CiAgICAgICAgcmV0dXJuICRTZWxmLT5GYXRhbEVycm9yKAogICAgICAgICAgICBNZXNzYWdlID0+ICRTZWxmLT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdObyBjb25maWcgb3B0aW9uIGZvdW5kIGZvciB0aGUgdmlldyAiJXMiIScsICRWaWV3ICksCiAgICAgICAgKTsKICAgIH0KCiAgICAjIG5hdmlnYXRpb24gYmFyCiAgICBteSAkU3RhcnRIaXQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0JyktPkdldFBhcmFtKAogICAgICAgIFBhcmFtID0+ICdTdGFydEhpdCcsCiAgICApIHx8IDE7CgogICAgIyBnZXQgcGVyc29uYWwgcGFnZSBzaG93biBjb3VudAogICAgbXkgJFBhZ2VTaG93blByZWZlcmVuY2VzS2V5ID0gJ1VzZXJGQVFPdmVydmlldycgLiAkVmlldyAuICdQYWdlU2hvd24nOwogICAgbXkgJFBhZ2VTaG93biAgICAgICAgICAgICAgID0gJFNlbGYtPnskUGFnZVNob3duUHJlZmVyZW5jZXNLZXl9IHx8IDEwOwogICAgbXkgJEdyb3VwICAgICAgICAgICAgICAgICAgID0gJ0ZBUU92ZXJ2aWV3JyAuICRWaWV3IC4gJ1BhZ2VTaG93bic7CgogICAgIyBjaGVjayBzdGFydCBvcHRpb24sIGlmIGhpZ2hlciB0aGVuIGVsZW1lbnRzIGF2YWlsYWJsZSwgc2V0CiAgICAjIGl0IHRvIHRoZSBsYXN0IG92ZXJ2aWV3IHBhZ2UgKFRoYW5rcyB0byBTdGVmYW4gU2NobWlkdCEpCiAgICBpZiAoICRTdGFydEhpdCA+ICRQYXJhbXtUb3RhbH0gKSB7CiAgICAgICAgbXkgJFBhZ2VzID0gaW50KCAoICRQYXJhbXtUb3RhbH0gLyAkUGFnZVNob3duICkgKyAwLjk5OTk5ICk7CiAgICAgICAgJFN0YXJ0SGl0ID0gKCAoICRQYWdlcyAtIDEgKSAqICRQYWdlU2hvd24gKSArIDE7CiAgICB9CgogICAgIyBnZXQgZGF0YSBzZWxlY3Rpb24KICAgIG15ICVEYXRhOwogICAgbXkgJENvbmZpZyA9ICRDb25maWdPYmplY3QtPkdldCgnUHJlZmVyZW5jZXNHcm91cHMnKTsKICAgIGlmICggJENvbmZpZyAmJiAkQ29uZmlnLT57JEdyb3VwfSAmJiAkQ29uZmlnLT57JEdyb3VwfS0+e0RhdGF9ICkgewogICAgICAgICVEYXRhID0gJXsgJENvbmZpZy0+eyRHcm91cH0tPntEYXRhfSB9OwogICAgfQoKICAgICMgc2V0IHBhZ2UgbGltaXQgYW5kIGJ1aWxkIHBhZ2UgbmF2aWdhdGlvbgogICAgbXkgJExpbWl0ICAgPSAkUGFyYW17TGltaXR9IHx8IDIwXzAwMDsKICAgIG15ICVQYWdlTmF2ID0gJFNlbGYtPlBhZ2VOYXZCYXIoCiAgICAgICAgTGltaXQgICAgID0+ICRMaW1pdCwKICAgICAgICBTdGFydEhpdCAgPT4gJFN0YXJ0SGl0LAogICAgICAgIFBhZ2VTaG93biA9PiAkUGFnZVNob3duLAogICAgICAgIEFsbEhpdHMgICA9PiAkUGFyYW17VG90YWx9IHx8IDAsCiAgICAgICAgQWN0aW9uICAgID0+ICdBY3Rpb249JyAuICRTZWxmLT57QWN0aW9ufSwKICAgICAgICBMaW5rICAgICAgPT4gJFBhcmFte0xpbmtQYWdlfSwKICAgICk7CgogICAgIyBidWlsZCBzaG93biBGQVEgYXJ0aWNsZXMgb24gYSBwYWdlCiAgICAkUGFyYW17UmVxdWVzdGVkVVJMfSAgICA9ICJBY3Rpb249JFNlbGYtPntBY3Rpb259IjsKICAgICRQYXJhbXtHcm91cH0gICAgICAgICAgID0gJEdyb3VwOwogICAgJFBhcmFte1ByZWZlcmVuY2VzS2V5fSAgPSAkUGFnZVNob3duUHJlZmVyZW5jZXNLZXk7CiAgICAkUGFyYW17UGFnZVNob3duU3RyaW5nfSA9ICRTZWxmLT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBOYW1lICAgICAgICA9PiAkUGFnZVNob3duUHJlZmVyZW5jZXNLZXksCiAgICAgICAgU2VsZWN0ZWRJRCAgPT4gJFBhZ2VTaG93biwKICAgICAgICBEYXRhICAgICAgICA9PiBcJURhdGEsCiAgICAgICAgVHJhbnNsYXRpb24gPT4gMCwKICAgICAgICBTb3J0ICAgICAgICA9PiAnTnVtZXJpY1ZhbHVlJywKICAgICAgICBDbGFzcyAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgIyBidWlsZCBuYXZpZ2F0aW9uIGJhciBjb250ZW50CiAgICAkU2VsZi0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdOYXZCYXInLAogICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICk7CgogICAgbXkgJExpbmtCYWNrSUQgPSAnRkFRU2VhcmNoJzsKICAgIGlmICggJFBhcmFte05hdn0gJiYgJFBhcmFte05hdn0gZXEgJ05vbmUnICkgewogICAgICAgICRMaW5rQmFja0lEIC49ICdTbWFsbCc7CiAgICB9CgogICAgIyBiYWNrIGxpbmsKICAgIGlmICggJFBhcmFte0xpbmtCYWNrfSApIHsKICAgICAgICAkU2VsZi0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3TmF2QmFyUGFnZUJhY2snLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIExpbmtCYWNrSUQgPT4gJExpbmtCYWNrSUQsCiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIFNlbmQgZGF0YSB0byBKUy4KICAgICRTZWxmLT5BZGRKU0RhdGEoCiAgICAgICAgS2V5ICAgPT4gJ0ZBUVNlYXJjaFByb2ZpbGUnLAogICAgICAgIFZhbHVlID0+ICRQYXJhbXtQcm9maWxlfSwKICAgICk7CgogICAgIyBnZXQgZmlsdGVycwogICAgaWYgKCAkUGFyYW17RmlsdGVyc30gKSB7CgogICAgICAgICMgZ2V0IGdpdmVuIGZpbHRlcnMKICAgICAgICBteSBATmF2QmFyRmlsdGVyczsKICAgICAgICBmb3IgbXkgJFByaW8gKCBzb3J0IGtleXMgJXsgJFBhcmFte0ZpbHRlcnN9IH0gKSB7CiAgICAgICAgICAgIHB1c2ggQE5hdkJhckZpbHRlcnMsICRQYXJhbXtGaWx0ZXJzfS0+eyRQcmlvfTsKICAgICAgICB9CgogICAgICAgICMgYnVpbGQgZmlsdGVyIGNvbnRlbnQKICAgICAgICAkU2VsZi0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3TmF2QmFyRmlsdGVyJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBsb29wIG92ZXIgZmlsdGVycwogICAgICAgIG15ICRDb3VudCA9IDA7CiAgICAgICAgZm9yIG15ICRGaWx0ZXIgKEBOYXZCYXJGaWx0ZXJzKSB7CgogICAgICAgICAgICAjIGluY3JlbWVudCBmaWx0ZXIgY291bnQgYW5kIGJ1aWxkIGZpbHRlciBpdGVtCiAgICAgICAgICAgICRDb3VudCsrOwogICAgICAgICAgICAkU2VsZi0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld05hdkJhckZpbHRlckl0ZW0nLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICV7JEZpbHRlcn0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBmaWx0ZXIgaXMgc2VsZWN0ZWQKICAgICAgICAgICAgaWYgKCAkRmlsdGVyLT57RmlsdGVyfSBlcSAkUGFyYW17RmlsdGVyfSApIHsKICAgICAgICAgICAgICAgICRTZWxmLT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld05hdkJhckZpbHRlckl0ZW1TZWxlY3RlZCcsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgJXskRmlsdGVyfSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdOYXZCYXJGaWx0ZXJJdGVtU2VsZWN0ZWROb3QnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgICV7JEZpbHRlcn0sCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBsb29wIG92ZXIgY29uZmlndXJlZCBiYWNrLWVuZHMKICAgIGZvciBteSAkQmFja2VuZCAoIHNvcnQga2V5cyAleyRCYWNrZW5kc30gKSB7CgogICAgICAgICMgYnVpbGQgbmF2aWdhdGlvbiBiYXIgdmlldyBtb2RlCiAgICAgICAgJFNlbGYtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld05hdkJhclZpZXdNb2RlJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAleyAkQmFja2VuZHMtPnskQmFja2VuZH0gfSwKICAgICAgICAgICAgICAgIEZpbHRlciA9PiAkUGFyYW17RmlsdGVyfSwKICAgICAgICAgICAgICAgIFZpZXcgICA9PiAkQmFja2VuZCwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGN1cnJlbnQgdmlldyBpcyBjb25maWd1cmVkIGluIGJhY2tlbmQKICAgICAgICBpZiAoICRWaWV3IGVxICRCYWNrZW5kICkgewogICAgICAgICAgICAkU2VsZi0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld05hdkJhclZpZXdNb2RlU2VsZWN0ZWQnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICV7ICRCYWNrZW5kcy0+eyRCYWNrZW5kfSB9LAogICAgICAgICAgICAgICAgICAgIEZpbHRlciA9PiAkUGFyYW17RmlsdGVyfSwKICAgICAgICAgICAgICAgICAgICBWaWV3ICAgPT4gJEJhY2tlbmQsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFNlbGYtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdOYXZCYXJWaWV3TW9kZU5vdFNlbGVjdGVkJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAleyAkQmFja2VuZHMtPnskQmFja2VuZH0gfSwKICAgICAgICAgICAgICAgICAgICBGaWx0ZXIgPT4gJFBhcmFte0ZpbHRlcn0sCiAgICAgICAgICAgICAgICAgICAgVmlldyAgID0+ICRCYWNrZW5kLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBpZiBwYWdlIG5hdmlnYXRpb24gaXMgYXZhaWxhYmxlCiAgICBpZiAoJVBhZ2VOYXYpIHsKICAgICAgICAkU2VsZi0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3TmF2QmFyUGFnZU5hdkJhcicsCiAgICAgICAgICAgIERhdGEgPT4gXCVQYWdlTmF2LAogICAgICAgICk7CgogICAgICAgICMgZG9uJ3Qgc2hvdyBjb250ZXh0IHNldHRpbmdzIGluIEFKQVggY2FzZSAoZS4gZy4gaW4gY3VzdG9tZXIgRkFRIGhpc3RvcnkpLAogICAgICAgICMgYmVjYXVzZSB0aGUgc3VibWl0IHdpdGggcGFnZSByZWxvYWQgd2lsbCBub3Qgd29yayB0aGVyZQogICAgICAgIGlmICggISRQYXJhbXtBSkFYfSApIHsKICAgICAgICAgICAgJFNlbGYtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnQ29udGV4dFNldHRpbmdzJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICVQYWdlTmF2LAogICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgYnVpbGQgSFRNTCBjb250ZW50CiAgICBteSAkT3V0cHV0TmF2QmFyID0gJFNlbGYtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50RkFRT3ZlcnZpZXdOYXZCYXInLAogICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgIFZpZXcgPT4gJFZpZXcsCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICB9LAogICAgKTsKCiAgICAjIGNyZWF0ZSBvdXRwdXQKICAgIG15ICRPdXRwdXRSYXcgPSAkT3V0cHV0TmF2QmFyOwoKICAgICMgbG9hZCBtb2R1bGUKICAgIGlmICggISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpNYWluJyktPlJlcXVpcmUoICRCYWNrZW5kcy0+eyRWaWV3fS0+e01vZHVsZX0gKSApIHsKICAgICAgICByZXR1cm4gJFNlbGYtPkZhdGFsRXJyb3IoKTsKICAgIH0KCiAgICAjIGNoZWNrIGZvciBiYWNrZW5kIG9iamVjdAogICAgbXkgJE9iamVjdCA9ICRCYWNrZW5kcy0+eyRWaWV3fS0+e01vZHVsZX0tPm5ldyggJXskRW52fSApOwogICAgcmV0dXJuIGlmICEkT2JqZWN0OwoKICAgICMgcnVuIG1vZHVsZQogICAgbXkgJE91dHB1dCA9ICRPYmplY3QtPlJ1bigKICAgICAgICAlUGFyYW0sCiAgICAgICAgTGltaXQgICAgID0+ICRMaW1pdCwKICAgICAgICBTdGFydEhpdCAgPT4gJFN0YXJ0SGl0LAogICAgICAgIFBhZ2VTaG93biA9PiAkUGFnZVNob3duLAogICAgICAgIEFsbEhpdHMgICA9PiAkUGFyYW17VG90YWx9ICAgIHx8IDAsCiAgICAgICAgRnJvbnRlbmQgID0+ICRQYXJhbXtGcm9udGVuZH0gfHwgJ0FnZW50JywKICAgICAgICBOYXYgICAgICAgPT4gJFBhcmFte05hdn0gICAgICB8fCAnJywKICAgICAgICBUaXRsZVNpemUgPT4gJFBhcmFte0ZBUVRpdGxlU2l6ZX0sCiAgICApOwoKICAgICMgY3JlYXRlIG91dHB1dAogICAgJE91dHB1dFJhdyAuPSAkT3V0cHV0OwoKICAgICMgY3JlYXRlIG92ZXJ2aWV3IG5hdmlnYXRpb24gYmFyCiAgICAkU2VsZi0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdOYXZCYXInLAogICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICApOwoKICAgICMgcmV0dXJuIGNvbnRlbnQgaWYgYXZhaWxhYmxlCiAgICByZXR1cm4gJE91dHB1dFJhdzsKfQoKPWhlYWQyIEZBUUNvbnRlbnRTaG93KCkKCk91dHB1dHMgdGhlIG5lY2Vzc2FyeSBibG9ja3MgdG8gZGlzcGxheSB0aGUgRkFRIGl0ZW0gZmllbGRzIGZvciB0aGUgc3VwcGxpZWQgRkFRIGl0ZW0gSUQuClRoZSBmaWVsZHMgZGlzcGxheWVkIGFyZSBhbHNvIHJlc3RyaWN0ZWQgYnkgdGhlIHBlcm1pc3Npb25zIHJlcHJlc2VudGVkIGJ5IHRoZSBzdXBwbGllZCBpbnRlcmZhY2UKCklmIGV4aXN0IFJldHVybkNvbnRlbnQgcGFyYW1ldGVyIGl0IHJldHVybnMgdGhlIEZBUSBpdGVtcyBmaWVsZHMgb24gYSBIVE1MIGZvcm1hdHRlZCBzdHJpbmcKCiAgICAkTGF5b3V0T2JqZWN0LT5GQVFDb250ZW50U2hvdygKICAgICAgICBGQVFPYmplY3QgICAgICAgPT4gJEZBUU9iamVjdCwgICAgICAgICAgICAgICAgICMgbmVlZGVkIGZvciBjb3JlIG1vZHVsZSBpbnRlcmFjdGlvbgogICAgICAgIEZBUURhdGEgICAgICAgICA9PiAleyAkRkFRRGF0YSB9LAogICAgICAgIEludGVyZmFjZVN0YXRlcyA9PiAkU2VsZi0+e0ludGVyZmFjZVN0YXRlc30sCiAgICAgICAgVXNlcklEICAgICAgICAgID0+IDEsCiAgICApOwoKICAgIG15ICRDb250ZW50ID0gJExheW91dE9iamVjdC0+RkFRQ29udGVudFNob3coCiAgICAgICAgRkFRT2JqZWN0ICAgICAgID0+ICRGQVFPYmplY3QsICAgICAgICAgICAgICAgICAjIG5lZWRlZCBmb3IgY29yZSBtb2R1bGUgaW50ZXJhY3Rpb24KICAgICAgICBGQVFEYXRhICAgICAgICAgPT4gJXsgJEZBUURhdGEgfSwKICAgICAgICBJbnRlcmZhY2VTdGF0ZXMgPT4gJFNlbGYtPntJbnRlcmZhY2VTdGF0ZXN9LAogICAgICAgIFVzZXJJRCAgICAgICAgICA9PiAxLAogICAgICAgIFJldHVybkNvbnRlbnQgICA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBGQVFDb250ZW50U2hvdyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkUGFyYW1OYW1lIChxdyhGQVFPYmplY3QgRkFRRGF0YSBJbnRlcmZhY2VTdGF0ZXMgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskUGFyYW1OYW1lfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJFBhcmFtTmFtZSEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgc3RvcmUgRkFRIG9iamVjdCBsb2NhbGx5CiAgICBteSAkRkFRT2JqZWN0ID0gJFBhcmFte0ZBUU9iamVjdH07CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBnZXQgdGhlIGNvbmZpZyBvZiBGQVEgZmllbGRzIHRoYXQgc2hvdWxkIGJlIHNob3duCiAgICBteSAlRmllbGRzOwogICAgRklFTEQ6CiAgICBmb3IgbXkgJE51bWJlciAoIDEgLi4gNiApIHsKCiAgICAgICAgIyBnZXQgY29uZmlnIG9mIEZBUSBmaWVsZAogICAgICAgIG15ICRDb25maWcgPSAkQ29uZmlnT2JqZWN0LT5HZXQoICdGQVE6Okl0ZW06OkZpZWxkJyAuICROdW1iZXIgKTsKCiAgICAgICAgIyBza2lwIG92ZXIgbm90IHNob3duIGZpZWxkcwogICAgICAgIG5leHQgRklFTEQgaWYgISRDb25maWctPntTaG93fTsKCiAgICAgICAgIyBzdG9yZSBvbmx5IHRoZSBjb25maWcgb2YgZmllbGRzIHRoYXQgc2hvdWxkIGJlIHNob3duCiAgICAgICAgJEZpZWxkc3siRmllbGQkTnVtYmVyIn0gPSAkQ29uZmlnOwogICAgfQoKICAgIG15ICRGdWxsQ29udGVudDsKCiAgICAjIHNvcnQgc2hvd24gZmllbGRzIGJ5IHByaW9yaXR5CiAgICBGSUVMRDoKICAgIGZvciBteSAkRmllbGQgKCBzb3J0IHsgJEZpZWxkc3skYX0tPntQcmlvfSA8PT4gJEZpZWxkc3skYn0tPntQcmlvfSB9IGtleXMgJUZpZWxkcyApIHsKCiAgICAgICAgIyBnZXQgdGhlIHN0YXRlIHR5cGUgZGF0YSBvZiB0aGlzIGZpZWxkCiAgICAgICAgbXkgJFN0YXRlVHlwZURhdGEgPSAkRkFRT2JqZWN0LT5TdGF0ZVR5cGVHZXQoCiAgICAgICAgICAgIE5hbWUgICA9PiAkRmllbGRzeyRGaWVsZH0tPntTaG93fSwKICAgICAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgZG8gbm90IHNob3cgZmllbGRzIHRoYXQgYXJlIG5vdCBhbGxvd2VkIGluIHRoZSBnaXZlbiBpbnRlcmZhY2UKICAgICAgICBuZXh0IEZJRUxEIGlmICEkUGFyYW17SW50ZXJmYWNlU3RhdGVzfS0+eyAkU3RhdGVUeXBlRGF0YS0+e1N0YXRlSUR9IH07CgogICAgICAgIG15ICRDYXB0aW9uID0gJEZpZWxkc3skRmllbGR9LT57J0NhcHRpb24nfTsKICAgICAgICBteSAkQ29udGVudCA9ICRQYXJhbXtGQVFEYXRhfS0+eyRGaWVsZH0gfHwgJyc7CgogICAgICAgICMgcmVtb3ZlIGFjdGl2ZSBIVE1MIGNvbnRlbnQgKHNjcmlwdHMsIGFwcGxldHMsIGV0Yy4uLikKICAgICAgICBteSAlU2FmZUNvbnRlbnQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SFRNTFV0aWxzJyktPlNhZmV0eSgKICAgICAgICAgICAgU3RyaW5nICAgICAgID0+ICRDb250ZW50LAogICAgICAgICAgICBOb0FwcGxldCAgICAgPT4gMSwKICAgICAgICAgICAgTm9PYmplY3QgICAgID0+IDEsCiAgICAgICAgICAgIE5vRW1iZWQgICAgICA9PiAxLAogICAgICAgICAgICBOb0ludFNyY0xvYWQgPT4gMCwKICAgICAgICAgICAgTm9FeHRTcmNMb2FkID0+IDAsCiAgICAgICAgICAgIE5vSmF2YVNjcmlwdCA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgdGFrZSB0aGUgc2FmZSBjb250ZW50IGlmIG5lY2Vzc2FyeQogICAgICAgIGlmICggJFNhZmVDb250ZW50e1JlcGxhY2V9ICkgewogICAgICAgICAgICAkQ29udGVudCA9ICRTYWZlQ29udGVudHtTdHJpbmd9OwogICAgICAgIH0KCiAgICAgICAgIyBzaG93IHRoZSBmaWVsZAogICAgICAgICRTZWxmLT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnRkFRQ29udGVudCcsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgSXRlbUlEICAgID0+ICRQYXJhbXtGQVFEYXRhfS0+e0l0ZW1JRH0sCiAgICAgICAgICAgICAgICBGaWVsZCAgICAgPT4gJEZpZWxkLAogICAgICAgICAgICAgICAgQ2FwdGlvbiAgID0+ICRDYXB0aW9uLAogICAgICAgICAgICAgICAgU3RhdGVOYW1lID0+ICRTdGF0ZVR5cGVEYXRhLT57TmFtZX0sCiAgICAgICAgICAgICAgICBDb250ZW50ICAgPT4gJENvbnRlbnQsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6SXRlbTo6SFRNTCcpICYmICRTZWxmLT57QnJvd3NlclJpY2hUZXh0fSApIHsKCiAgICAgICAgICAgICRTZWxmLT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0ZBUUNvbnRlbnRIVE1MJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgIEl0ZW1JRCA9PiAkUGFyYW17RkFRRGF0YX0tPntJdGVtSUR9LAogICAgICAgICAgICAgICAgICAgIEZpZWxkICA9PiAkRmllbGQsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgY29udmVydCBmaWVsZHMgQVNDSUkgaWYgbmVlZGVkCiAgICAgICAgICAgIGlmICggJFBhcmFte0ZBUURhdGF9LT57Q29udGVudFR5cGV9IG5lICd0ZXh0L3BsYWluJyApIHsKICAgICAgICAgICAgICAgICRDb250ZW50ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkhUTUxVdGlscycpLT5Ub0FzY2lpKAogICAgICAgICAgICAgICAgICAgIFN0cmluZyA9PiAkQ29udGVudCwKICAgICAgICAgICAgICAgICkgfHwgJyc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRTZWxmLT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0ZBUUNvbnRlbnRQbGFpbicsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBDb250ZW50ID0+ICRDb250ZW50LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgU2VuZCBjb25maWcgdG8gSlMuCiAgICAgICAgJFNlbGYtPkFkZEpTRGF0YSgKICAgICAgICAgICAgS2V5ICAgPT4gJ0FnZW50SFRNTEZpZWxkSGVpZ2h0RGVmYXVsdCcsCiAgICAgICAgICAgIFZhbHVlID0+ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpGcm9udGVuZDo6QWdlbnRIVE1MRmllbGRIZWlnaHREZWZhdWx0JyksCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+QWRkSlNEYXRhKAogICAgICAgICAgICBLZXkgICA9PiAnQWdlbnRIVE1MRmllbGRIZWlnaHRNYXgnLAogICAgICAgICAgICBWYWx1ZSA9PiAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6RnJvbnRlbmQ6OkFnZW50SFRNTEZpZWxkSGVpZ2h0TWF4JyksCiAgICAgICAgKTsKCiAgICAgICAgIyBzdG9yZSB0aGUgZmllbGQgdG8gcmV0dXJuIGFsbCBGQVEgQm9keQogICAgICAgIGlmICggJFBhcmFte1JldHVybkNvbnRlbnR9ICYmICRDb250ZW50ICkgewoKICAgICAgICAgICAgIyBnZXQgdGhlIGludGVybmFsIHN0YXRlIHR5cGUKICAgICAgICAgICAgbXkgJEludGVybmFsU3RhdGVUeXBlID0gJEZBUU9iamVjdC0+U3RhdGVUeXBlR2V0KAogICAgICAgICAgICAgICAgTmFtZSAgID0+ICdpbnRlcm5hbCcsCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGNoZWNrIGlmIGN1cnJlbnQgZmllbGQgaXMgaW50ZXJuYWwKICAgICAgICAgICAgbXkgJElzSW50ZXJuYWw7CiAgICAgICAgICAgIGlmICggJFN0YXRlVHlwZURhdGEtPntTdGF0ZUlEfSA9PSAkSW50ZXJuYWxTdGF0ZVR5cGUtPntTdGF0ZUlEfSApIHsKICAgICAgICAgICAgICAgICRJc0ludGVybmFsID0gMTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBnZXQgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBUaWNrZXQgQ29tcG9zZQogICAgICAgICAgICBteSAkVGlja2V0Q29tcG9zZUNvbmZpZyA9ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpUaWNrZXRDb21wb3NlJyk7CgogICAgICAgICAgICAjIENoZWNrIGlmIGZpZWxkIHNob3VsZCBiZSBwYXJ0IG9mIHRoZSByZXR1cm5pbmcgc3RyaW5nCiAgICAgICAgICAgIGlmICggJFRpY2tldENvbXBvc2VDb25maWctPntJbmNsdWRlSW50ZXJuYWx9IHx8ICEkSXNJbnRlcm5hbCApIHsKCiAgICAgICAgICAgICAgICAjIENoZWNrIGlmIGZpZWxkIG5hbWUgc2hvdWxkIGJlIHJldHVybmVkCiAgICAgICAgICAgICAgICBpZiAoICRUaWNrZXRDb21wb3NlQ29uZmlnLT57U2hvd0ZpZWxkTmFtZXN9ICkgewogICAgICAgICAgICAgICAgICAgICRGdWxsQ29udGVudCAuPSAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCRDYXB0aW9uKSAuICcgPGJyLz4gJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRGdWxsQ29udGVudCAuPSAkQ29udGVudCAuICcgPGJyLz4gJzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIHJldHVybiBhbGwgdGhlIChwZXJtaXR0ZWQpIEZBUSBib2R5CiAgICBpZiAoICRQYXJhbXtSZXR1cm5Db250ZW50fSApIHsKICAgICAgICBpZiAoJEZ1bGxDb250ZW50KSB7CiAgICAgICAgICAgIHJldHVybiAkRnVsbENvbnRlbnQ7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdUaGlzIGFydGljbGUgaXMgZW1wdHkhJyk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBGQVFQYXRoU2hvdygpCgppZiBpdHMgYWxsb3dlZCBieSB0aGUgY29uZmlndXJhdGlvbiwgb3V0cHV0cyB0aGUgbmVjZXNzYXJ5IGJsb2NrcyB0byBkaXNwbGF5IHRoZSBGQVEgaXRlbSBwYXRoLAphbmQgcmV0dXJucyB0aGUgdmFsdWUgMS4KCiAgICBteSAkU2hvd1BhdGhPayA9ICRMYXlvdXRPYmplY3QtPkZBUVBhdGhTaG93KAogICAgICAgIEZBUU9iamVjdCAgID0+ICRGQVFPYmplY3QsICAgICAgICAgICAgICAgICAgICMgbmVlZGVkIGZvciBjb3JlIG1vZHVsZSBpbnRlcmFjdGlvbgogICAgICAgIENhdGVnb3J5SUQgID0+IDUsCiAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICAgICBQYXRoRm9ySXRlbSA9PiAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsIChkZWZhdWx0IDApCiAgICAgICAgTmF2ICAgICAgICAgPT4gJ25vbmUnLCAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbAogICAgKTsKCj1jdXQKCnN1YiBGQVFQYXRoU2hvdyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgcGFyYW1ldGVycwogICAgZm9yIG15ICRQYXJhbU5hbWUgKHF3KEZBUU9iamVjdCBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRQYXJhbU5hbWV9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkUGFyYW1OYW1lISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgJFBhcmFte1BhdGhGb3JJdGVtfSB8fD0gMDsKCiAgICAjIGNoZWNrIHBhcmFtZXRlcnMKICAgIGlmICggIWRlZmluZWQgJFBhcmFte0NhdGVnb3J5SUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBDYXRlZ29yeUlEIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgbXkgJEJsb2NrID0gJ0ZBUVBhdGhDYXRlZ29yeUVsZW1lbnQnOwogICAgaWYgKCAkUGFyYW17Q2F0ZWdvcnlJRH0gZXEgJzAnICkgewogICAgICAgICRCbG9jayA9ICdGQVFQYXRoQ2F0ZWdvcnlFbGVtZW50Tm9MaW5rJzsKICAgIH0KCiAgICAjIG91dHB1dCBjYXRlZ29yeSByb290CiAgICAkU2VsZi0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAkQmxvY2ssCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgIE5hbWUgICAgICAgPT4gJENvbmZpZ09iamVjdC0+R2V0KCdGQVE6OkRlZmF1bHQ6OlJvb3RDYXRlZ29yeU5hbWUnKSwKICAgICAgICAgICAgQ2F0ZWdvcnlJRCA9PiAwLAogICAgICAgICAgICBOYXYgICAgICAgID0+ICRQYXJhbXtOYXZ9LAogICAgICAgIH0sCiAgICApOwoKICAgICMgZ2V0IFNob3cgRkFRIFBhdGggc2V0dGluZwogICAgbXkgJFNob3dQYXRoID0gJENvbmZpZ09iamVjdC0+R2V0KCdGQVE6OkV4cGxvcmVyOjpQYXRoOjpTaG93Jyk7CgogICAgIyBkbyBub3QgZGlzcGxheSB0aGUgcGF0aCBpZiBzZXR0aW5nIGlzIG9mZgogICAgcmV0dXJuIGlmICEkU2hvd1BhdGg7CgogICAgbXkgJEZBUU9iamVjdCA9ICRQYXJhbXtGQVFPYmplY3R9OwoKICAgIG15ICRDYXRlZ29yeUxpc3QgPSAkRkFRT2JqZWN0LT5GQVFQYXRoTGlzdEdldCgKICAgICAgICBDYXRlZ29yeUlEID0+ICRQYXJhbXtDYXRlZ29yeUlEfSwKICAgICAgICBVc2VySUQgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICAjIG91dHB1dCBzdWJjYXRlZ29yaWVzCiAgICBmb3IgbXkgJENhdGVnb3J5RGF0YSAoIEB7JENhdGVnb3J5TGlzdH0gKSB7CgogICAgICAgICRCbG9jayA9ICdGQVFQYXRoQ2F0ZWdvcnlFbGVtZW50JzsKICAgICAgICBpZiAoCiAgICAgICAgICAgICRDYXRlZ29yeURhdGEtPntDYXRlZ29yeUlEfSA9PSAkQ2F0ZWdvcnlMaXN0LT5bLTFdLT57Q2F0ZWdvcnlJRH0KICAgICAgICAgICAgJiYgISRQYXJhbXtQYXRoRm9ySXRlbX0KICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJEJsb2NrID0gJ0ZBUVBhdGhDYXRlZ29yeUVsZW1lbnROb0xpbmsnOwogICAgICAgIH0KCiAgICAgICAgJFNlbGYtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICRCbG9jaywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBOYXYgPT4gJFBhcmFte05hdn0sCiAgICAgICAgICAgICAgICAleyRDYXRlZ29yeURhdGF9LAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIEZBUVJhdGluZ1N0YXJzU2hvdygpCgpPdXRwdXRzIHRoZSBuZWNlc3NhcnkgYmxvY2tzIHRvIHJlcHJlc2VudCB0aGUgRkFRIGl0ZW0gcmF0aW5nCmFzICJTdGFycyIgaW4gdGhlIHNjYWxlIGZyb20gMSB0byA1LgoKICAgICRMYXlvdXRPYmplY3QtPkZBUVJhdGluZ1N0YXJzU2hvdygKICAgICAgICBWb3RlUmVzdWx0ID0+ICRGQVFEYXRhLT57Vm90ZVJlc3VsdH0sCiAgICAgICAgVm90ZXMgICAgICA9PiAkRkFRRGF0YSAtPntWb3Rlc30sCiAgICApOwoKPWN1dAoKc3ViIEZBUVJhdGluZ1N0YXJzU2hvdyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkUGFyYW1OYW1lIChxdyhWb3RlUmVzdWx0IFZvdGVzKSkgewogICAgICAgIGlmICggIWRlZmluZWQgJFBhcmFteyRQYXJhbU5hbWV9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkUGFyYW1OYW1lISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgc3RhcnMgYnkgbXVsdGlwbHkgYnkgNSBhbmQgZGl2aWRlIGJ5IDEwMAogICAgIyAxMDAgYmVjYXVzZSBWb3RlIHJlc3VsdCBpcyBhICUKICAgICMgNSBiZWNhdXNlIHdlIGhhdmUgb25seSA1IHN0YXJzCiAgICBteSAkU3RhckNvdW50ZXIgPSBpbnQoICRQYXJhbXtWb3RlUmVzdWx0fSAqIDAuMDUgKTsKICAgIGlmICggJFN0YXJDb3VudGVyIDwgNSApIHsKCiAgICAgICAgIyBhZGQgMSBiZWNhdXNlIGxvd2VzdCB2YWx1ZSBzaG91bGQgYmUgMQogICAgICAgICRTdGFyQ291bnRlcisrOwogICAgfQoKICAgICMgdGhlIG51bWJlciBvZiBzdGFycyBjYW4ndCBiZSBncmF0ZXIgdGhhdCA1CiAgICBlbHNpZiAoICRTdGFyQ291bnRlciA+IDUgKSB7CiAgICAgICAgJFN0YXJDb3VudGVyID0gNTsKICAgIH0KCiAgICAjIG91dHB1dCByYXRpbmcgYmxvY2sKICAgICRTZWxmLT5CbG9jaygKICAgICAgICBOYW1lID0+ICdWaWV3UmF0aW5nJywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgIH0sCiAgICApOwoKICAgICMgZG8gbm90IG91dHB1dCBhbnkgc3RhciBpZiB0aGlzIEZBUSBoYXMgYmVlbiBub3Qgdm90ZWQKICAgIGlmICggJFBhcmFte1ZvdGVzfSBlcSAnMCcgKSB7CiAgICAgICAgJFN0YXJDb3VudGVyID0gMDsKICAgIH0KCiAgICAjIHNob3cgc3RhcnMgb25seSBpZiB0aGUgRkFRIGl0ZW0gaGFzIGJlZW4gdm90ZWQgYXQgbGVhc3Qgb25jZSBldmVuIGlmIHRoZSAkVm90ZVJlc3VsdCBpcyAwCiAgICBlbHNlIHsKCiAgICAgICAgIyBvdXRwdXQgc3RhcnMKICAgICAgICBmb3IgKCAxIC4uICRTdGFyQ291bnRlciApIHsKICAgICAgICAgICAgJFNlbGYtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnUmF0ZVN0YXJzJywKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBvdXRwdXQgc3RhcnMgdGV4dAogICAgJFNlbGYtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ1JhdGVTdGFyc0NvdW50JywKICAgICAgICBEYXRhID0+IHsgU3RhcnMgPT4gJFN0YXJDb3VudGVyIH0sCiAgICApOwoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgRkFRU2hvd0xhdGVzdE5ld3NCb3goKQoKU2hvd3MgYW4gaW5mbyBib3ggd2l0aCB0aGUgbGFzdCB1cGRhdGVkIG9yIGxhc3QgY3JlYXRlZCBGQVEgYXJ0aWNsZXMuCkRlcGVuZGluZyBvbiB0aGUgdXNlcyBpbnRlcmZhY2UgKGFnZW50LCBjdXN0b21lciwgcHVibGljKSBvbmx5IHRoZSBhcHByb3ByaWF0ZQphcnRpY2xlcyBhcmUgc2hvd24gaGVyZS4KCiAgICAkTGF5b3V0T2JqZWN0LT5GQVFTaG93TGF0ZXN0TmV3c0JveCgKICAgICAgICBGQVFPYmplY3QgICAgICAgPT4gJEZBUU9iamVjdCwgICAgICAgICAgICAgICAgICMgbmVlZGVkIGZvciBjb3JlIG1vZHVsZSBpbnRlcmFjdGlvbgogICAgICAgIFR5cGUgICAgICAgICAgICA9PiAnTGFzdENyZWF0ZScsICAgICAgICAgICAgICAgIyAoTGFzdENyZWF0ZSB8IExhc3RDaGFuZ2UpCiAgICAgICAgTW9kZSAgICAgICAgICAgID0+ICdQdWJsaWMnLCAgICAgICAgICAgICAgICAgICAjIChBZ2VudCwgQ3VzdG9tZXIsIFB1YmxpYykKICAgICAgICBDYXRlZ29yeUlEICAgICAgPT4gNSwKICAgICAgICBJbnRlcmZhY2UgICAgICAgPT4gJFNlbGYtPntJbnRlcmZhY2V9LAogICAgICAgIEludGVyZmFjZVN0YXRlcyA9PiAkU2VsZi0+e0ludGVyZmFjZVN0YXRlc30sCiAgICAgICAgVXNlcklEICAgICAgICAgID0+IDEsCiAgICAgICAgTmF2ICAgICAgICAgICAgID0+ICdub25lJywgICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsCiAgICApOwoKPWN1dAoKc3ViIEZBUVNob3dMYXRlc3ROZXdzQm94IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICRQYXJhbU5hbWUgKHF3KEZBUU9iamVjdCBUeXBlIE1vZGUgSW50ZXJmYWNlIEludGVyZmFjZVN0YXRlcyBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRQYXJhbU5hbWV9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkUGFyYW1OYW1lISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgaWYgKCAhZGVmaW5lZCAkUGFyYW17Q2F0ZWdvcnlJRH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkIENhdGVnb3J5SUQhIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGNoZWNrIHR5cGUKICAgIGlmICggJFBhcmFte1R5cGV9ICF+IG17IExhc3RDcmVhdGUgfCBMYXN0Q2hhbmdlIH14bXMgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdUeXBlIG11c3QgYmUgZWl0aGVyIExhc3RDcmVhdGUgb3IgTGFzdENoYW5nZSEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY2hlY2sgbW9kZQogICAgaWYgKCAkUGFyYW17TW9kZX0gIX4gbXsgQWdlbnQgfCBDdXN0b21lciB8IFB1YmxpYyB9eG1zICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTW9kZSBtdXN0IGJlIGVpdGhlciBBZ2VudCwgQ3VzdG9tZXIgb3IgUHVibGljIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBjaGVjayBDdXN0b21lclVzZXIKICAgIGlmICggJFBhcmFte01vZGV9IGVxICdDdXN0b21lcicgJiYgISRQYXJhbXtDdXN0b21lclVzZXJ9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBDdXN0b21lclVzZXIhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIHNldCBvcmRlciBieSBzZWFyY2ggcGFyYW1ldGVyIGFuZCBoZWFkZXIgYmFzZWQgb24gdHlwZQogICAgbXkgJE9yZGVyQnk7CiAgICBteSAkSGVhZGVyOwogICAgbXkgJFJTU1RpdGxlOwogICAgaWYgKCAkUGFyYW17VHlwZX0gZXEgJ0xhc3RDcmVhdGUnICkgewogICAgICAgICRPcmRlckJ5ICA9ICdDcmVhdGVkJzsKICAgICAgICAkSGVhZGVyICAgPSBUcmFuc2xhdGFibGUoJ0xhdGVzdCBjcmVhdGVkIEZBUSBhcnRpY2xlcycpOwogICAgICAgICRSU1NUaXRsZSA9IFRyYW5zbGF0YWJsZSgnRkFRIEFydGljbGVzIChuZXcgY3JlYXRlZCknKTsKICAgIH0KICAgIGVsc2lmICggJFBhcmFte1R5cGV9IGVxICdMYXN0Q2hhbmdlJyApIHsKICAgICAgICAkT3JkZXJCeSAgPSAnQ2hhbmdlZCc7CiAgICAgICAgJEhlYWRlciAgID0gVHJhbnNsYXRhYmxlKCdMYXRlc3QgdXBkYXRlZCBGQVEgYXJ0aWNsZXMnKTsKICAgICAgICAkUlNTVGl0bGUgPSBUcmFuc2xhdGFibGUoJ0ZBUSBBcnRpY2xlcyAocmVjZW50bHkgY2hhbmdlZCknKTsKICAgIH0KCiAgICBteSAkUmVzdWx0ID0gLTE7CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBzaG93IGxhc3QgYWRkZWQvdXBkYXRlZCBhcnRpY2xlcwogICAgbXkgJFNob3cgPSAkQ29uZmlnT2JqZWN0LT5HZXQoIkZBUTo6RXhwbG9yZXI6OiRQYXJhbXtUeXBlfTo6U2hvdyIpOwogICAgaWYgKCAkU2hvdy0+eyAkUGFyYW17SW50ZXJmYWNlfS0+e05hbWV9IH0gKSB7CgogICAgICAgIG15ICRGQVFPYmplY3QgPSAkUGFyYW17RkFRT2JqZWN0fTsKCiAgICAgICAgIyB0byBzdG9yZSBzZWFyY2ggcGFyYW0gZm9yIGNhdGVnb3JpZXMKICAgICAgICBteSAlQ2F0ZWdvcnlTZWFyY2hQYXJhbTsKCiAgICAgICAgIyBpZiBzdWJjYXRlZ29yaWVzIHNob3VsZCBhbHNvIGJlIHNob3duCiAgICAgICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoIkZBUTo6RXhwbG9yZXI6OiRQYXJhbXtUeXBlfTo6U2hvd1N1YkNhdGVnb3J5SXRlbXMiKSApIHsKCiAgICAgICAgICAgICMgZmluZCB0aGUgc3ViY2F0ZWdvcmllcyBvZiB0aGlzIGNhdGVnb3J5CiAgICAgICAgICAgIG15ICRTdWJDYXRlZ29yeUlEc1JlZiA9ICRGQVFPYmplY3QtPkNhdGVnb3J5U3ViQ2F0ZWdvcnlJRExpc3QoCiAgICAgICAgICAgICAgICBQYXJlbnRJRCAgICAgPT4gJFBhcmFte0NhdGVnb3J5SUR9LAogICAgICAgICAgICAgICAgTW9kZSAgICAgICAgID0+ICRQYXJhbXtNb2RlfSwKICAgICAgICAgICAgICAgIEl0ZW1TdGF0ZXMgICA9PiAkUGFyYW17SW50ZXJmYWNlU3RhdGVzfSwKICAgICAgICAgICAgICAgIEN1c3RvbWVyVXNlciA9PiAkUGFyYW17Q3VzdG9tZXJVc2VyfSB8fCAnJywKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgc2VhcmNoIGluIHRoZSBnaXZlbiBjYXRlZ29yeSBhbmQgYWRkIHRoZSBzdWJjYXRlZ29yeQogICAgICAgICAgICAkQ2F0ZWdvcnlTZWFyY2hQYXJhbXtDYXRlZ29yeUlEc30gPSBbICRQYXJhbXtDYXRlZ29yeUlEfSwgQHskU3ViQ2F0ZWdvcnlJRHNSZWZ9IF07CiAgICAgICAgfQoKICAgICAgICAjIGEgY2F0ZWdvcnkgaXMgZ2l2ZW4gYW5kIHN1YmNhdGVnb3JpZXMgc2hvdWxkIG5vdCBiZSBzaG93bgogICAgICAgIGVsc2lmICggJFBhcmFte0NhdGVnb3J5SUR9ICkgewoKICAgICAgICAgICAgIyBzZWFyY2ggb25seSBpbiB0aGUgZ2l2ZW4gY2F0ZWdvcnkKICAgICAgICAgICAgJENhdGVnb3J5U2VhcmNoUGFyYW17Q2F0ZWdvcnlJRHN9ID0gWyAkUGFyYW17Q2F0ZWdvcnlJRH0gXTsKICAgICAgICB9CgogICAgICAgICMgc2VhcmNoIHRoZSBGQVEgYXJ0aWNsZXMKICAgICAgICBteSBASXRlbUlEcyA9ICRGQVFPYmplY3QtPkZBUVNlYXJjaCgKICAgICAgICAgICAgU3RhdGVzICAgICAgICAgICA9PiAkUGFyYW17SW50ZXJmYWNlU3RhdGVzfSwKICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgICA9PiBbJE9yZGVyQnldLAogICAgICAgICAgICBPcmRlckJ5RGlyZWN0aW9uID0+IFsnRG93biddLAogICAgICAgICAgICBJbnRlcmZhY2UgICAgICAgID0+ICRQYXJhbXtJbnRlcmZhY2V9LAogICAgICAgICAgICBMaW1pdCAgICAgICAgICAgID0+ICRDb25maWdPYmplY3QtPkdldCgiRkFROjpFeHBsb3Jlcjo6JFBhcmFte1R5cGV9OjpMaW1pdCIpIHx8IDUsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICVDYXRlZ29yeVNlYXJjaFBhcmFtLAogICAgICAgICk7CgogICAgICAgICMgdGhlcmUgaXMgc29tZXRoaW5nIHRvIHNob3cKICAgICAgICBpZiAoQEl0ZW1JRHMpIHsKCiAgICAgICAgICAgICRSZXN1bHQgPSAxOwoKICAgICAgICAgICAgIyBzaG93IHRoZSBpbmZvIGJveAogICAgICAgICAgICAkU2VsZi0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdJbmZvQm94RkFRTWluaUxpc3QnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgSGVhZGVyID0+ICRIZWFkZXIsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBzaG93IHRoZSBSU1MgRmVlZCBpY29uCiAgICAgICAgICAgIGlmICggJFBhcmFte01vZGV9IGVxICdQdWJsaWMnICkgewoKICAgICAgICAgICAgICAgICRTZWxmLT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdJbmZvQm94RkFRTWluaUxpc3ROZXdzUlNTJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgVHlwZSAgPT4gJE9yZGVyQnksCiAgICAgICAgICAgICAgICAgICAgICAgIFRpdGxlID0+ICRSU1NUaXRsZSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZm9yIG15ICRJdGVtSUQgKEBJdGVtSURzKSB7CgogICAgICAgICAgICAgICAgIyBnZXQgRkFRIGRhdGEKICAgICAgICAgICAgICAgIG15ICVGQVFEYXRhID0gJEZBUU9iamVjdC0+RkFRR2V0KAogICAgICAgICAgICAgICAgICAgIEl0ZW1JRCAgICAgPT4gJEl0ZW1JRCwKICAgICAgICAgICAgICAgICAgICBJdGVtRmllbGRzID0+IDEsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBzaG93IHRoZSBhcnRpY2xlIHJvdwogICAgICAgICAgICAgICAgJFNlbGYtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0luZm9Cb3hGQVFNaW5pTGlzdEl0ZW1Sb3cnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYXYgPT4gJFBhcmFte05hdn0sCiAgICAgICAgICAgICAgICAgICAgICAgICVGQVFEYXRhLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAkUmVzdWx0Owp9Cgo9aGVhZDIgRkFRU2hvd1RvcDEwKCkKClNob3dzIGFuIGluZm8gYm94IHdpdGggdGhlIFRvcCAxMCBGQVEgYXJ0aWNsZXMuCkRlcGVuZGluZyBvbiB0aGUgdXNlcyBpbnRlcmZhY2UgKGFnZW50LCBjdXN0b21lciwgcHVibGljKSBvbmx5IHRoZSBhcHByb3ByaWF0ZQphcnRpY2xlcyBhcmUgc2hvd24gaGVyZS4KCiAgICAkTGF5b3V0T2JqZWN0LT5GQVFTaG93VG9wMTAoCiAgICAgICAgRkFRT2JqZWN0ICAgICAgID0+ICRGQVFPYmplY3QsICAgICAgICAgICAgICAgICAjIG5lZWRlZCBmb3IgY29yZSBtb2R1bGUgaW50ZXJhY3Rpb24KICAgICAgICBNb2RlICAgICAgICAgICAgPT4gJ1B1YmxpYycsICAgICAgICAgICAgICAgICAgICMgKEFnZW50LCBDdXN0b21lciwgUHVibGljKQogICAgICAgIENhdGVnb3J5SUQgICAgICA9PiA1LAogICAgICAgIEludGVyZmFjZSAgICAgICA9PiAkU2VsZi0+e0ludGVyZmFjZX0sCiAgICAgICAgSW50ZXJmYWNlU3RhdGVzID0+ICRTZWxmLT57SW50ZXJmYWNlU3RhdGVzfSwKICAgICAgICBVc2VySUQgICAgICAgICAgPT4gMSwKICAgICAgICBOYXYgICAgICAgICAgICAgPT4gJ25vbmUnLCAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwKICAgICk7Cgo9Y3V0CgpzdWIgRkFRU2hvd1RvcDEwIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICRQYXJhbU5hbWUgKHF3KEZBUU9iamVjdCBNb2RlIEludGVyZmFjZSBJbnRlcmZhY2VTdGF0ZXMgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskUGFyYW1OYW1lfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJFBhcmFtTmFtZSEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIGlmICggIWRlZmluZWQgJFBhcmFte0NhdGVnb3J5SUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCBDYXRlZ29yeUlEISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBjaGVjayBtb2RlCiAgICBpZiAoICRQYXJhbXtNb2RlfSAhfiBteyBBZ2VudCB8IEN1c3RvbWVyIHwgUHVibGljIH14bXMgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdNb2RlIG11c3QgYmUgZWl0aGVyIEFnZW50LCBDdXN0b21lciBvciBQdWJsaWMhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGNoZWNrIEN1c3RvbWVyVXNlcgogICAgaWYgKCAkUGFyYW17TW9kZX0gZXEgJ0N1c3RvbWVyJyAmJiAhJFBhcmFte0N1c3RvbWVyVXNlcn0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIEN1c3RvbWVyVXNlciEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICRSZXN1bHQgPSAtMTsKCiAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAjIHNob3cgbGFzdCBhZGRlZC91cGRhdGVkIGFydGljbGVzCiAgICBteSAkU2hvdyA9ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpFeHBsb3Jlcjo6VG9wMTA6OlNob3cnKTsKICAgIGlmICggJFNob3ctPnsgJFBhcmFte0ludGVyZmFjZX0tPntOYW1lfSB9ICkgewoKICAgICAgICBteSAkRkFRT2JqZWN0ID0gJFBhcmFte0ZBUU9iamVjdH07CgogICAgICAgICMgdG8gc3RvcmUgc2VhcmNoIHBhcmFtIGZvciBjYXRlZ29yaWVzCiAgICAgICAgbXkgJUNhdGVnb3J5U2VhcmNoUGFyYW07CgogICAgICAgICMgaWYgc3ViY2F0ZWdvcmllcyBzaG91bGQgYWxzbyBiZSBzaG93bgogICAgICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdGQVE6OkV4cGxvcmVyOjpUb3AxMDo6U2hvd1N1YkNhdGVnb3J5SXRlbXMnKSApIHsKCiAgICAgICAgICAgICMgZmluZCB0aGUgc3ViY2F0ZWdvcmllcyBvZiB0aGlzIGNhdGVnb3J5CiAgICAgICAgICAgIG15ICRTdWJDYXRlZ29yeUlEc1JlZiA9ICRGQVFPYmplY3QtPkNhdGVnb3J5U3ViQ2F0ZWdvcnlJRExpc3QoCiAgICAgICAgICAgICAgICBQYXJlbnRJRCAgICAgPT4gJFBhcmFte0NhdGVnb3J5SUR9LAogICAgICAgICAgICAgICAgTW9kZSAgICAgICAgID0+ICRQYXJhbXtNb2RlfSwKICAgICAgICAgICAgICAgIEl0ZW1TdGF0ZXMgICA9PiAkUGFyYW17SW50ZXJmYWNlU3RhdGVzfSwKICAgICAgICAgICAgICAgIEN1c3RvbWVyVXNlciA9PiAkUGFyYW17Q3VzdG9tZXJVc2VyfSB8fCAnJywKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgc2VhcmNoIGluIHRoZSBnaXZlbiBjYXRlZ29yeSBhbmQgYWRkIHRoZSBzdWJjYXRlZ29yeQogICAgICAgICAgICAkQ2F0ZWdvcnlTZWFyY2hQYXJhbXtDYXRlZ29yeUlEc30gPSBbICRQYXJhbXtDYXRlZ29yeUlEfSwgQHskU3ViQ2F0ZWdvcnlJRHNSZWZ9IF07CiAgICAgICAgfQoKICAgICAgICAjIGdldCB0aGUgdG9wIDEwIGFydGljbGVzIGZvciBjYXRlZ29yaWVzIHdpdGggYXQgbGVhc3Qgcm8gcGVybWlzc2lvbnMKICAgICAgICBteSAkVG9wMTBJdGVtSURzUmVmID0gJEZBUU9iamVjdC0+RkFRVG9wMTBHZXQoCiAgICAgICAgICAgIEludGVyZmFjZSA9PiAkUGFyYW17SW50ZXJmYWNlfS0+e05hbWV9LAogICAgICAgICAgICBMaW1pdCAgICAgPT4gJENvbmZpZ09iamVjdC0+R2V0KCdGQVE6OkV4cGxvcmVyOjpUb3AxMDo6TGltaXQnKSB8fCAxMCwKICAgICAgICAgICAgVXNlcklEICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAlQ2F0ZWdvcnlTZWFyY2hQYXJhbSwKICAgICAgICApIHx8IFtdOwoKICAgICAgICAjIHRoZXJlIGlzIHNvbWV0aGluZyB0byBzaG93CiAgICAgICAgaWYgKCAkVG9wMTBJdGVtSURzUmVmICYmIHJlZiAkVG9wMTBJdGVtSURzUmVmIGVxICdBUlJBWScgJiYgQHskVG9wMTBJdGVtSURzUmVmfSApIHsKCiAgICAgICAgICAgICRSZXN1bHQgPSAxOwoKICAgICAgICAgICAgIyBzaG93IHRoZSBpbmZvIGJveAogICAgICAgICAgICAkU2VsZi0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdJbmZvQm94RkFRTWluaUxpc3QnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgSGVhZGVyID0+IFRyYW5zbGF0YWJsZSgnVG9wIDEwIEZBUSBhcnRpY2xlcycpLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgc2hvdyB0aGUgUlNTIEZlZWQgaWNvbgogICAgICAgICAgICBpZiAoICRQYXJhbXtNb2RlfSBlcSAnUHVibGljJyApIHsKCiAgICAgICAgICAgICAgICAkU2VsZi0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnSW5mb0JveEZBUU1pbmlMaXN0TmV3c1JTUycsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFR5cGUgID0+ICdUb3AxMCcsCiAgICAgICAgICAgICAgICAgICAgICAgIFRpdGxlID0+IFRyYW5zbGF0YWJsZSgnRkFRIEFydGljbGVzIChUb3AgMTApJyksCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG15ICROdW1iZXI7CiAgICAgICAgICAgIGZvciBteSAkVG9wMTBJdGVtICggQHskVG9wMTBJdGVtSURzUmVmfSApIHsKCiAgICAgICAgICAgICAgICAjIGluY3JlYXNlIHRoZSBudW1iZXIKICAgICAgICAgICAgICAgICROdW1iZXIrKzsKCiAgICAgICAgICAgICAgICBteSAlRkFRRGF0YSA9ICRGQVFPYmplY3QtPkZBUUdldCgKICAgICAgICAgICAgICAgICAgICBJdGVtSUQgICAgID0+ICRUb3AxMEl0ZW0tPntJdGVtSUR9LAogICAgICAgICAgICAgICAgICAgIEl0ZW1GaWVsZHMgPT4gMSwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIHNob3cgdGhlIGFydGljbGUgcm93CiAgICAgICAgICAgICAgICAkU2VsZi0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnSW5mb0JveEZBUU1pbmlMaXN0SXRlbVJvdycsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hdiA9PiAkUGFyYW17TmF2fSwKICAgICAgICAgICAgICAgICAgICAgICAgJUZBUURhdGEsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBzaG93IHRoZSBUb3AtMTAgcG9zaXRpb24gbnVtYmVyCiAgICAgICAgICAgICAgICAkU2VsZi0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnSW5mb0JveEZBUU1pbmlMaXN0SXRlbVJvd1Bvc2l0aW9uTnVtYmVyJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgTnVtYmVyID0+ICROdW1iZXIsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuICRSZXN1bHQ7Cn0KCj1oZWFkMiBGQVFTaG93UXVpY2tTZWFyY2goKQoKU2hvd3MgYW4gaW5mbyBib3ggd2l0aCB0aGUgUXVpY2sgU2VhcmNoLgoKICAgICRMYXlvdXRPYmplY3QtPkZBUVNob3dRdWlja1NlYXJjaCgKICAgICAgICBNb2RlICAgICAgICAgICAgPT4gJ1B1YmxpYycsICAgICAgICAgICAgICAgICAgICMgKEFnZW50LCBDdXN0b21lciwgUHVibGljKQogICAgICAgIEludGVyZmFjZSAgICAgICA9PiAkU2VsZi0+e0ludGVyZmFjZX0sCiAgICAgICAgSW50ZXJmYWNlU3RhdGVzID0+ICRTZWxmLT57SW50ZXJmYWNlU3RhdGVzfSwKICAgICAgICBVc2VySUQgICAgICAgICAgPT4gMSwKICAgICAgICBOYXYgICAgICAgICAgICAgPT4gJ25vbmUnLCAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwKICAgICAgICBTZWFyY2hCYWNrTGluayAgPT4gJEJhc2U2NEVuY29kZWRVcmwsICAgICAgICAgICMgb3B0aW9uYWwKICAgICk7Cgo9Y3V0CgpzdWIgRkFRU2hvd1F1aWNrU2VhcmNoIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICRQYXJhbU5hbWUgKHF3KE1vZGUgSW50ZXJmYWNlIEludGVyZmFjZVN0YXRlcyBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRQYXJhbU5hbWV9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkUGFyYW1OYW1lISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBtb2RlCiAgICBpZiAoICRQYXJhbXtNb2RlfSAhfiBteyBBZ2VudCB8IEFnZW50U21hbGwgfCBDdXN0b21lciB8IFB1YmxpYyB9eG1zICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTW9kZSBtdXN0IGJlIGVpdGhlciBBZ2VudCwgQ3VzdG9tZXIgb3IgUHVibGljIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBzZXQgYWN0aW9uIG1vZHVsZQogICAgbXkgJEFjdGlvbjsKICAgIGlmICggJFBhcmFte01vZGV9IGVxICdBZ2VudFNtYWxsJyApIHsKICAgICAgICAkQWN0aW9uID0gJ0FnZW50RkFRU2VhcmNoU21hbGwnOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJEFjdGlvbiA9ICRQYXJhbXtNb2RlfSAuICdGQVFTZWFyY2gnOwogICAgfQoKICAgICMgY2hlY2sgQ3VzdG9tZXJVc2VyCiAgICBpZiAoICRQYXJhbXtNb2RlfSBlcSAnQ3VzdG9tZXInICYmICEkUGFyYW17Q3VzdG9tZXJVc2VyfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgQ3VzdG9tZXJVc2VyIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBzaG93IHF1aWNrIHNlYXJjaAogICAgbXkgJFNob3cgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0ZBUTo6RXhwbG9yZXI6OlF1aWNrU2VhcmNoOjpTaG93Jyk7CiAgICBpZiAoICRTaG93LT57ICRQYXJhbXtJbnRlcmZhY2V9LT57TmFtZX0gfSB8fCAkUGFyYW17TW9kZX0gZXEgJ0FnZW50U21hbGwnICkgewoKICAgICAgICAjIGNhbGwgUXVpY2tTZWFyY2ggYmxvY2sKICAgICAgICAkU2VsZi0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1F1aWNrU2VhcmNoJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBBY3Rpb24gICAgICAgICA9PiAkQWN0aW9uLAogICAgICAgICAgICAgICAgTmF2ICAgICAgICAgICAgPT4gJFBhcmFte05hdn0gICAgICAgICAgICB8fCAnJywKICAgICAgICAgICAgICAgIFNlYXJjaEJhY2tMaW5rID0+ICRQYXJhbXtTZWFyY2hCYWNrTGlua30gfHwgJycsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gMTsKfQoKMTsKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVE9CTyBwcm9qZWN0IChMPGh0dHBzOi8vb3RvYm8ub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQ+LgoKPWN1dAo=</File>
        <File Location="Kernel/Output/HTML/LinkObject/FAQ.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpMaW5rT2JqZWN0OjpGQVE7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpMYW5ndWFnZSBxdyhUcmFuc2xhdGFibGUpOwp1c2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dDsKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6TGFuZ3VhZ2UnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpKU09OJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VXNlcicsCiAgICAnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcsCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxpbmtPYmplY3Q6OkZBUSAtIGxpbmsgb2JqZWN0IGJhY2tlbmQgbW9kdWxlCgo9aGVhZDEgREVTQ1JJUFRJT04KCkFsbCBsaW5rIG9iamVjdCBmdW5jdGlvbnMgb2YgbGluayBvYmplY3QgKEZBUSkKCj1oZWFkMiBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgICRCYWNrZW5kT2JqZWN0ID0gS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxpbmtPYmplY3Q6OkZBUS0+bmV3KAogICAgICAgICVQYXJhbSwKICAgICk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBBbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0LgogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoVXNlckxhbmd1YWdlIFVzZXJJRCkpIHsKICAgICAgICAkU2VsZi0+eyROZWVkZWR9ID0gJFBhcmFteyROZWVkZWR9IHx8IGRpZSAiR290IG5vICROZWVkZWQhIjsKICAgIH0KCiAgICAjIFRPRE86IGNoZWNrIGlmIHRoZSBuZXcgaW5zdGFuY2UgaXMgc3RpbGwgbmVlZGVkIHdpdGggdGhlIE9NIQoKICAgICMgV2UgbmVlZCBvdXIgb3duIExheW91dE9iamVjdCBpbnN0YW5jZSB0byBhdm9pZCBibG9jayBkYXRhIGNvbGxpc2lvbnMgd2l0aCB0aGUgbWFpbiBwYWdlLgogICAgJFNlbGYtPntMYXlvdXRPYmplY3R9ID0gS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dC0+bmV3KCAleyRTZWxmfSApOwoKICAgICRTZWxmLT57T2JqZWN0RGF0YX0gPSB7CiAgICAgICAgT2JqZWN0ICAgICA9PiAnRkFRJywKICAgICAgICBSZWFsbmFtZSAgID0+ICdGQVEnLAogICAgICAgIE9iamVjdE5hbWUgPT4gJ1NvdXJjZU9iamVjdElEJywKICAgIH07CgogICAgJFNlbGYtPntEeW5hbWljRmllbGR9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpLT5EeW5hbWljRmllbGRMaXN0R2V0KAogICAgICAgIFZhbGlkICAgICAgPT4gMCwKICAgICAgICBPYmplY3RUeXBlID0+IFsnRkFRJ10sCiAgICApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWhlYWQyIFRhYmxlQ3JlYXRlQ29tcGxleCgpCgpyZXR1cm4gYW4gYXJyYXkgd2l0aCB0aGUgYmxvY2sgZGF0YQoKICAgIG15IEBCbG9ja0RhdGEgPSAkTGlua09iamVjdC0+VGFibGVDcmVhdGVDb21wbGV4KAogICAgICAgIE9iamVjdExpbmtMaXN0V2l0aERhdGEgPT4gJE9iamVjdExpbmtMaXN0UmVmLAogICAgKTsKCmEgcmVzdWx0IGNvdWxkIGJlCgogICAgJUJsb2NrRGF0YSA9ICgKICAgICAgICB7CiAgICAgICAgICAgIE9iamVjdE5hbWUgID0+ICdGQVFJRCcsCiAgICAgICAgICAgIE9iamVjdElEICAgID0+ICcxNDc4NScsCgogICAgICAgICAgICBPYmplY3QgICAgPT4gJ0ZBUScsCiAgICAgICAgICAgIEJsb2NrbmFtZSA9PiAnRkFRJywKICAgICAgICAgICAgSGVhZGxpbmUgID0+IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBDb250ZW50ID0+ICdGQVEjJywKICAgICAgICAgICAgICAgICAgICBXaWR0aCAgID0+IDEzMCwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ29udGVudCA9PiAnVGl0bGUnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBDb250ZW50ID0+ICdTdGF0ZScsCiAgICAgICAgICAgICAgICAgICAgV2lkdGggICA9PiAxMTAsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIENvbnRlbnQgPT4gJ0NyZWF0ZWQnLAogICAgICAgICAgICAgICAgICAgIFdpZHRoICAgPT4gMTEwLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgSXRlbUxpc3QgPT4gWwogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgVHlwZSAgICA9PiAnTGluaycsCiAgICAgICAgICAgICAgICAgICAgICAgIEtleSAgICAgPT4gJEl0ZW1JRCwKICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudCA9PiAnMTIzMTIzMTIzJywKICAgICAgICAgICAgICAgICAgICAgICAgQ3NzICAgICA9PiAnc3R5bGU9InRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoIicsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFR5cGUgICAgICA9PiAnVGV4dCcsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgICA9PiAnVGhlIHRpdGxlJywKICAgICAgICAgICAgICAgICAgICAgICAgTWF4TGVuZ3RoID0+IDUwLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBUeXBlICAgICAgPT4gJ1RleHQnLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50ICAgPT4gJ2ludGVybmFsIChhZ2VudCknLAogICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xhdGUgPT4gMSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgVHlwZSAgICA9PiAnVGltZUxvbmcnLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50ID0+ICcyMDA4LTAxLTAxIDEyOjEyOjAwJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFR5cGUgICAgPT4gJ0xpbmsnLAogICAgICAgICAgICAgICAgICAgICAgICBLZXkgICAgID0+ICRJdGVtSUQsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgPT4gJzQzNDIzNCcsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFR5cGUgICAgICA9PiAnVGV4dCcsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgICA9PiAnVGhlIHRpdGxlIG9mIEZBUSAyJywKICAgICAgICAgICAgICAgICAgICAgICAgTWF4TGVuZ3RoID0+IDUwLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBUeXBlICAgICAgPT4gJ1RleHQnLAogICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50ICAgPT4gJ3B1YmxpYyAoYWxsKScsCiAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zbGF0ZSA9PiAxLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBUeXBlICAgID0+ICdUaW1lTG9uZycsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgPT4gJzIwMDgtMDEtMDEgMTI6MTI6MDAnLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICBdLAogICAgICAgIH0sCiAgICApOwoKPWN1dAoKc3ViIFRhYmxlQ3JlYXRlQ29tcGxleCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGlmICggISRQYXJhbXtPYmplY3RMaW5rTGlzdFdpdGhEYXRhfSB8fCByZWYgJFBhcmFte09iamVjdExpbmtMaXN0V2l0aERhdGF9IG5lICdIQVNIJyApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgT2JqZWN0TGlua0xpc3RXaXRoRGF0YSEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgQ29udmVydCB0aGUgbGlzdC4KICAgIG15ICVMaW5rTGlzdDsKICAgIGZvciBteSAkTGlua1R5cGUgKCBzb3J0IGtleXMgJXsgJFBhcmFte09iamVjdExpbmtMaXN0V2l0aERhdGF9IH0gKSB7CgogICAgICAgICMgZXh0cmFjdCBsaW5rIHR5cGUgTGlzdAogICAgICAgIG15ICRMaW5rVHlwZUxpc3QgPSAkUGFyYW17T2JqZWN0TGlua0xpc3RXaXRoRGF0YX0tPnskTGlua1R5cGV9OwoKICAgICAgICBmb3IgbXkgJERpcmVjdGlvbiAoIHNvcnQga2V5cyAleyRMaW5rVHlwZUxpc3R9ICkgewoKICAgICAgICAgICAgIyBleHRyYWN0IGRpcmVjdGlvbiBsaXN0CiAgICAgICAgICAgIG15ICREaXJlY3Rpb25MaXN0ID0gJFBhcmFte09iamVjdExpbmtMaXN0V2l0aERhdGF9LT57JExpbmtUeXBlfS0+eyREaXJlY3Rpb259OwoKICAgICAgICAgICAgZm9yIG15ICRJdGVtSUQgKCBzb3J0IGtleXMgJXskRGlyZWN0aW9uTGlzdH0gKSB7CgogICAgICAgICAgICAgICAgJExpbmtMaXN0eyRJdGVtSUR9LT57RGF0YX0gPSAkRGlyZWN0aW9uTGlzdC0+eyRJdGVtSUR9OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgIG15ICRDb21wbGV4VGFibGVEYXRhID0gJENvbmZpZ09iamVjdC0+R2V0KCJMaW5rT2JqZWN0OjpDb21wbGV4VGFibGUiKTsKICAgIG15ICREZWZhdWx0Q29sdW1uczsKICAgIGlmICgKICAgICAgICAkQ29tcGxleFRhYmxlRGF0YQogICAgICAgICYmIElzSGFzaFJlZldpdGhEYXRhKCRDb21wbGV4VGFibGVEYXRhKQogICAgICAgICYmICRDb21wbGV4VGFibGVEYXRhLT57RkFRfQogICAgICAgICYmIElzSGFzaFJlZldpdGhEYXRhKCAkQ29tcGxleFRhYmxlRGF0YS0+e0ZBUX0gKQogICAgICAgICkKICAgIHsKICAgICAgICAkRGVmYXVsdENvbHVtbnMgPSAkQ29tcGxleFRhYmxlRGF0YS0+eyJGQVEifS0+eyJEZWZhdWx0Q29sdW1ucyJ9OwogICAgfQoKICAgIG15IEBUaW1lTG9uZ1R5cGVzID0gKAogICAgICAgICJDcmVhdGVkIiwKICAgICAgICAiQ2hhbmdlZCIsCiAgICApOwoKICAgICMgRGVmaW5lIHRoZSBibG9jayBkYXRhLgogICAgbXkgJEZBUUhvb2sgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6RkFRSG9vaycpOwoKICAgIG15IEBIZWFkbGluZSA9ICgKICAgICAgICB7CiAgICAgICAgICAgIENvbnRlbnQgPT4gJEZBUUhvb2ssCiAgICAgICAgfSwKICAgICk7CgogICAgbXkgJFVzZXJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwoKICAgICMgTG9hZCB1c2VyIHByZWZlcmVuY2VzLgogICAgbXkgJVByZWZlcmVuY2VzID0gJFVzZXJPYmplY3QtPkdldFByZWZlcmVuY2VzKAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgIGlmICggISREZWZhdWx0Q29sdW1ucyB8fCAhSXNIYXNoUmVmV2l0aERhdGEoJERlZmF1bHRDb2x1bW5zKSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ01pc3NpbmcgY29uZmlndXJhdGlvbiBmb3IgTGlua09iamVjdDo6Q29tcGxleFRhYmxlIyMjRkFRIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBHZXQgZGVmYXVsdCBjb2x1bW4gcHJpb3JpdHkgZnJvbSBTeXNDb25maWcuCiAgICAjIEVhY2ggY29sdW1uIGluIHRhYmxlIChUaXRsZSwgU3RhdGUsLi4uKSBoYXMgZGVmaW5lZCBQcmlvcml0eSBpbiBTeXNDb25maWcuIFN5c3RlbSB1c2UgdGhpcwogICAgIyAgIHByaW9yaXR5IHRvIHNvcnQgY29sdW1ucywgaWYgdXNlciBkb2Vzbid0IGhhdmUgb3duIHNldHRpbmdzLgogICAgbXkgJVNvcnRPcmRlcjsKICAgIGlmICgKICAgICAgICAkQ29tcGxleFRhYmxlRGF0YS0+eyJGQVEifS0+eyJQcmlvcml0eSJ9CiAgICAgICAgJiYgSXNIYXNoUmVmV2l0aERhdGEoICRDb21wbGV4VGFibGVEYXRhLT57IkZBUSJ9LT57IlByaW9yaXR5In0gKQogICAgICAgICkKICAgIHsKICAgICAgICAlU29ydE9yZGVyID0gJXsgJENvbXBsZXhUYWJsZURhdGEtPnsiRkFRIn0tPnsiUHJpb3JpdHkifSB9OwogICAgfQoKICAgIG15ICVVc2VyQ29sdW1ucyA9ICV7JERlZmF1bHRDb2x1bW5zfTsKCiAgICBpZiAoICRQcmVmZXJlbmNlc3snTGlua09iamVjdDo6Q29tcGxleFRhYmxlLUZBUSd9ICkgewoKICAgICAgICBteSAkQ29sdW1uc0VuYWJsZWQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SlNPTicpLT5EZWNvZGUoCiAgICAgICAgICAgIERhdGEgPT4gJFByZWZlcmVuY2VzeydMaW5rT2JqZWN0OjpDb21wbGV4VGFibGUtRkFRJ30sCiAgICAgICAgKTsKCiAgICAgICAgaWYgKAogICAgICAgICAgICAkQ29sdW1uc0VuYWJsZWQKICAgICAgICAgICAgJiYgSXNIYXNoUmVmV2l0aERhdGEoJENvbHVtbnNFbmFibGVkKQogICAgICAgICAgICAmJiAkQ29sdW1uc0VuYWJsZWQtPntPcmRlcn0KICAgICAgICAgICAgJiYgSXNBcnJheVJlZldpdGhEYXRhKCAkQ29sdW1uc0VuYWJsZWQtPntPcmRlcn0gKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAjIENsZWFyIHNvcnQgb3JkZXIuCiAgICAgICAgICAgICVTb3J0T3JkZXIgPSAoKTsKCiAgICAgICAgICAgIERFRkFVTFRDT0xVTU46CiAgICAgICAgICAgIGZvciBteSAkRGVmYXVsdENvbHVtbiAoIHNvcnQga2V5cyAlVXNlckNvbHVtbnMgKSB7CiAgICAgICAgICAgICAgICBteSAkSW5kZXggPSAwOwoKICAgICAgICAgICAgICAgIGZvciBteSAkVXNlclNldHRpbmcgKCBAeyAkQ29sdW1uc0VuYWJsZWQtPntPcmRlcn0gfSApIHsKICAgICAgICAgICAgICAgICAgICAkSW5kZXgrKzsKICAgICAgICAgICAgICAgICAgICBpZiAoICREZWZhdWx0Q29sdW1uIGVxICRVc2VyU2V0dGluZyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJFVzZXJDb2x1bW5zeyREZWZhdWx0Q29sdW1ufSA9IDI7CiAgICAgICAgICAgICAgICAgICAgICAgICRTb3J0T3JkZXJ7JERlZmF1bHRDb2x1bW59ICAgPSAkSW5kZXg7CgogICAgICAgICAgICAgICAgICAgICAgICBuZXh0IERFRkFVTFRDT0xVTU47CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgTm90IGZvdW5kLCBtZWFucyB1c2VyIGNob3NlIHRvIGhpZGUgdGhpcyBpdGVtLgogICAgICAgICAgICAgICAgaWYgKCAkVXNlckNvbHVtbnN7JERlZmF1bHRDb2x1bW59ID09IDIgKSB7CiAgICAgICAgICAgICAgICAgICAgJFVzZXJDb2x1bW5zeyREZWZhdWx0Q29sdW1ufSA9IDE7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCAhJFNvcnRPcmRlcnskRGVmYXVsdENvbHVtbn0gKSB7CiAgICAgICAgICAgICAgICAgICAgJFNvcnRPcmRlcnskRGVmYXVsdENvbHVtbn0gPSAwOyAgICAjIFNldCAwLCBpdCBzeXN0ZW0gd2lsbCBoaWRlIHRoaXMgaXRlbSBhbnl3YXlzCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBlbHNlIHsKCiAgICAgICAgIyBVc2VyIGhhcyBubyBvd24gc2V0dGluZ3MuCiAgICAgICAgZm9yIG15ICRDb2x1bW4gKCBzb3J0IGtleXMgJVVzZXJDb2x1bW5zICkgewogICAgICAgICAgICBpZiAoICEkU29ydE9yZGVyeyRDb2x1bW59ICkgewogICAgICAgICAgICAgICAgJFNvcnRPcmRlcnskQ29sdW1ufSA9IDA7ICAgICMgU2V0IDAsIGl0IHN5c3RlbSB3aWxsIGhpZGUgdGhpcyBpdGVtIGFueXdheXMKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIERlZmluZSBIZWFkbGluZSBjb2x1bW5zLgogICAgbXkgQEFsbENvbHVtbnM7CiAgICBDT0xVTU46CiAgICBmb3IgbXkgJENvbHVtbiAoIHNvcnQgeyAkU29ydE9yZGVyeyRhfSA8PT4gJFNvcnRPcmRlcnskYn0gfSBrZXlzICVVc2VyQ29sdW1ucyApIHsKCiAgICAgICAgbXkgJENvbHVtblRyYW5zbGF0ZSA9ICRDb2x1bW47CiAgICAgICAgaWYgKCAkQ29sdW1uIGVxICdDYXRlZ29yeU5hbWUnICkgewogICAgICAgICAgICAkQ29sdW1uVHJhbnNsYXRlID0gVHJhbnNsYXRhYmxlKCdDYXRlZ29yeScpOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoICRDb2x1bW4gZXEgJ0NvbnRlbnRUeXBlJyApIHsKICAgICAgICAgICAgJENvbHVtblRyYW5zbGF0ZSA9IFRyYW5zbGF0YWJsZSgnQ29udGVudCBUeXBlJyk7CiAgICAgICAgfQoKICAgICAgICBwdXNoIEBBbGxDb2x1bW5zLCB7CiAgICAgICAgICAgIENvbHVtbk5hbWUgICAgICA9PiAkQ29sdW1uLAogICAgICAgICAgICBDb2x1bW5UcmFuc2xhdGUgPT4gJENvbHVtblRyYW5zbGF0ZSwKICAgICAgICB9OwoKICAgICAgICAjIEFsd2F5cyBwcmVzZW50LCBhbHJlYWR5IGFkZGVkLgogICAgICAgIG5leHQgQ09MVU1OIGlmICRDb2x1bW4gZXEgJ0ZBUU51bWJlcic7CgogICAgICAgICMgaWYgZW5hYmxlZCBieSBkZWZhdWx0LgogICAgICAgIGlmICggJFVzZXJDb2x1bW5zeyRDb2x1bW59ID09IDIgKSB7CiAgICAgICAgICAgIG15ICRDb2x1bW5OYW1lID0gJyc7CgogICAgICAgICAgICAjIE90aGVyIEZBUSBmaWVsZHMuCiAgICAgICAgICAgIGlmICggJENvbHVtbiAhfiBte1xBIER5bmFtaWNGaWVsZF99eG1zICkgewogICAgICAgICAgICAgICAgJENvbHVtbk5hbWUgPSAkQ29sdW1uVHJhbnNsYXRlOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIER5bmFtaWMgZmllbGRzLgogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIG15ICREeW5hbWljRmllbGRDb25maWc7CiAgICAgICAgICAgICAgICBteSAkREZDb2x1bW4gPSAkQ29sdW1uOwogICAgICAgICAgICAgICAgJERGQ29sdW1uID1+IHN7RHluYW1pY0ZpZWxkX317fWc7CgogICAgICAgICAgICAgICAgRFlOQU1JQ0ZJRUxEOgogICAgICAgICAgICAgICAgZm9yIG15ICRERkNvbmZpZyAoIEB7ICRTZWxmLT57RHluYW1pY0ZpZWxkfSB9ICkgewogICAgICAgICAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkREZDb25maWcpOwogICAgICAgICAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICRERkNvbmZpZy0+e05hbWV9IG5lICRERkNvbHVtbjsKCiAgICAgICAgICAgICAgICAgICAgJER5bmFtaWNGaWVsZENvbmZpZyA9ICRERkNvbmZpZzsKICAgICAgICAgICAgICAgICAgICBsYXN0IERZTkFNSUNGSUVMRDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIG5leHQgQ09MVU1OIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKCiAgICAgICAgICAgICAgICAkQ29sdW1uTmFtZSA9ICREeW5hbWljRmllbGRDb25maWctPntMYWJlbH07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcHVzaCBASGVhZGxpbmUsIHsKICAgICAgICAgICAgICAgIENvbnRlbnQgPT4gJENvbHVtbk5hbWUsCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgICMgQ3JlYXRlIHRoZSBpdGVtIGxpc3QgKHRhYmxlIGNvbnRlbnQpLgogICAgbXkgQEl0ZW1MaXN0OwogICAgZm9yIG15ICRJdGVtSUQgKCBzb3J0IHsgJGEgPD0+ICRiIH0ga2V5cyAlTGlua0xpc3QgKSB7CgogICAgICAgICMgRXh0cmFjdCBGQVEgZGF0YS4KICAgICAgICBteSAkRkFRID0gJExpbmtMaXN0eyRJdGVtSUR9LT57RGF0YX07CgogICAgICAgICMgRkFRIE51bWJlciBtdXN0IGJlIHByZXNlbnQgKHNpbmNlIGl0IGNvbnRhaW5zIG1hc3RlciBsaW5rIHRvIHRoZSBGQVEpLgogICAgICAgIG15IEBJdGVtQ29sdW1ucyA9ICgKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVHlwZSAgICA9PiAnTGluaycsCiAgICAgICAgICAgICAgICBLZXkgICAgID0+ICRJdGVtSUQsCiAgICAgICAgICAgICAgICBDb250ZW50ID0+ICRGQVEtPntOdW1iZXJ9LAogICAgICAgICAgICAgICAgTGluayAgICA9PiAkU2VsZi0+e0xheW91dE9iamVjdH0tPntCYXNlbGlua30gLiAnQWN0aW9uPUFnZW50RkFRWm9vbTtJdGVtSUQ9JyAuICRJdGVtSUQsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgQ09MVU1OOgogICAgICAgIGZvciBteSAkQ29sdW1uICggc29ydCB7ICRTb3J0T3JkZXJ7JGF9IDw9PiAkU29ydE9yZGVyeyRifSB9IGtleXMgJVVzZXJDb2x1bW5zICkgewogICAgICAgICAgICBuZXh0IENPTFVNTiBpZiAkQ29sdW1uIGVxICdGQVFOdW1iZXInOyAgICAjIEFsd2F5cyBwcmVzZW50LCBhbHJlYWR5IGFkZGVkLgoKICAgICAgICAgICAgIyBpZiBlbmFibGVkIGJ5IGRlZmF1bHQKICAgICAgICAgICAgaWYgKCAkVXNlckNvbHVtbnN7JENvbHVtbn0gPT0gMiApIHsKCiAgICAgICAgICAgICAgICBteSAlSGFzaDsKICAgICAgICAgICAgICAgIGlmICggZ3JlcCB7ICRfIGVxICRDb2x1bW4gfSBAVGltZUxvbmdUeXBlcyApIHsKICAgICAgICAgICAgICAgICAgICAkSGFzaHsnVHlwZSd9ID0gJ1RpbWVMb25nJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICRIYXNoeydUeXBlJ30gPSAnVGV4dCc7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCAkQ29sdW1uIGVxICdUaXRsZScgKSB7CiAgICAgICAgICAgICAgICAgICAgJEhhc2h7TWF4TGVuZ3RofSA9IDUwOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgRkFRIGZpZWxkcy4KICAgICAgICAgICAgICAgIGlmICggJENvbHVtbiAhfiBte1xBIER5bmFtaWNGaWVsZF99eG1zICkgewogICAgICAgICAgICAgICAgICAgIGlmICggJENvbHVtbiBlcSAnQXBwcm92ZWQnICkgewogICAgICAgICAgICAgICAgICAgICAgICBteSAkVmFsdWUgPSAkRkFRLT57JENvbHVtbn0gPyAnWWVzJyA6ICdObyc7CiAgICAgICAgICAgICAgICAgICAgICAgICRIYXNoeydDb250ZW50J30gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Okxhbmd1YWdlJyktPlRyYW5zbGF0ZSgkVmFsdWUpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJEhhc2h7J0NvbnRlbnQnfSA9ICRGQVEtPnskQ29sdW1ufTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBEeW5hbWljIGZpZWxkcy4KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgIG15ICREeW5hbWljRmllbGRDb25maWc7CiAgICAgICAgICAgICAgICAgICAgbXkgJERGQ29sdW1uID0gJENvbHVtbjsKICAgICAgICAgICAgICAgICAgICAkREZDb2x1bW4gPX4gc3tEeW5hbWljRmllbGRffXt9ZzsKCiAgICAgICAgICAgICAgICAgICAgRFlOQU1JQ0ZJRUxEOgogICAgICAgICAgICAgICAgICAgIGZvciBteSAkREZDb25maWcgKCBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gfSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCRERkNvbmZpZyk7CiAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICRERkNvbmZpZy0+e05hbWV9IG5lICRERkNvbHVtbjsKCiAgICAgICAgICAgICAgICAgICAgICAgICREeW5hbWljRmllbGRDb25maWcgPSAkREZDb25maWc7CiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3QgRFlOQU1JQ0ZJRUxEOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBuZXh0IENPTFVNTiBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CgogICAgICAgICAgICAgICAgICAgICMgR2V0IGZpZWxkIHZhbHVlLgogICAgICAgICAgICAgICAgICAgIG15ICRWYWx1ZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKS0+VmFsdWVHZXQoCiAgICAgICAgICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgICBPYmplY3RJRCAgICAgICAgICAgPT4gJEl0ZW1JRCwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICBteSAkVmFsdWVTdHJnID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZCcpLT5EaXNwbGF5VmFsdWVSZW5kZXIoCiAgICAgICAgICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJFZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZU1heENoYXJzICAgICAgPT4gMjAsCiAgICAgICAgICAgICAgICAgICAgICAgIExheW91dE9iamVjdCAgICAgICA9PiAkU2VsZi0+e0xheW91dE9iamVjdH0sCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgJEhhc2h7J0NvbnRlbnQnfSA9ICRWYWx1ZVN0cmctPntUaXRsZX07CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgcHVzaCBASXRlbUNvbHVtbnMsIFwlSGFzaDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcHVzaCBASXRlbUxpc3QsIFxASXRlbUNvbHVtbnM7CiAgICB9CgogICAgcmV0dXJuIGlmICFASXRlbUxpc3Q7CgogICAgIyBEZWZpbmUgdGhlIGJsb2NrIGRhdGEuCiAgICBteSAlQmxvY2sgPSAoCiAgICAgICAgT2JqZWN0ICAgICA9PiAkU2VsZi0+e09iamVjdERhdGF9LT57T2JqZWN0fSwKICAgICAgICBCbG9ja25hbWUgID0+ICRTZWxmLT57T2JqZWN0RGF0YX0tPntSZWFsbmFtZX0sCiAgICAgICAgT2JqZWN0TmFtZSA9PiAkU2VsZi0+e09iamVjdERhdGF9LT57T2JqZWN0TmFtZX0sCiAgICAgICAgT2JqZWN0SUQgICA9PiAkUGFyYW17T2JqZWN0SUR9LAogICAgICAgIEhlYWRsaW5lICAgPT4gXEBIZWFkbGluZSwKICAgICAgICBJdGVtTGlzdCAgID0+IFxASXRlbUxpc3QsCiAgICAgICAgQWxsQ29sdW1ucyA9PiBcQEFsbENvbHVtbnMsCiAgICApOwoKICAgIHJldHVybiAoIFwlQmxvY2sgKTsKfQoKPWhlYWQyIFRhYmxlQ3JlYXRlU2ltcGxlKCkKCnJldHVybiBhIGhhc2ggd2l0aCB0aGUgbGluayBvdXRwdXQgZGF0YQoKICAgIG15ICVMaW5rT3V0cHV0RGF0YSA9ICRMaW5rT2JqZWN0LT5UYWJsZUNyZWF0ZVNpbXBsZSgKICAgICAgICBPYmplY3RMaW5rTGlzdFdpdGhEYXRhID0+ICRPYmplY3RMaW5rTGlzdFJlZiwKICAgICk7CgphIHJlc3VsdCBjb3VsZCBiZSBSZXR1cm4KCiAgICAlTGlua091dHB1dERhdGEgPSAoCiAgICAgICAgTm9ybWFsOjpTb3VyY2UgPT4gewogICAgICAgICAgICBUaWNrZXQgPT4gWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFR5cGUgICAgPT4gJ0xpbmsnLAogICAgICAgICAgICAgICAgICAgIENvbnRlbnQgPT4gJ0Y6NTU1NTUnLAogICAgICAgICAgICAgICAgICAgIFRpdGxlICAgPT4gJ0ZBUSM1NTU1NTU6IFRoZSBGQVEgdGl0bGUnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBUeXBlICAgID0+ICdMaW5rJywKICAgICAgICAgICAgICAgICAgICBDb250ZW50ID0+ICdGOjIyMjIyJywKICAgICAgICAgICAgICAgICAgICBUaXRsZSAgID0+ICdGQVEjMjIyMjI6IFRpdGxlIG9mIEZBUSAyMjIyMicsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICBdLAogICAgICAgIH0sCiAgICAgICAgUGFyZW50Q2hpbGQ6OlRhcmdldCA9PiB7CiAgICAgICAgICAgIFRpY2tldCA9PiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgVHlwZSAgICA9PiAnTGluaycsCiAgICAgICAgICAgICAgICAgICAgQ29udGVudCA9PiAnRjo3Nzc3NycsCiAgICAgICAgICAgICAgICAgICAgVGl0bGUgICA9PiAnRkFRIzc3Nzc3OiBGQVEgdGl0bGUnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICB9LAogICAgKTsKCj1jdXQKCnN1YiBUYWJsZUNyZWF0ZVNpbXBsZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGlmICggISRQYXJhbXtPYmplY3RMaW5rTGlzdFdpdGhEYXRhfSB8fCByZWYgJFBhcmFte09iamVjdExpbmtMaXN0V2l0aERhdGF9IG5lICdIQVNIJyApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgT2JqZWN0TGlua0xpc3RXaXRoRGF0YSEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICRGQVFIb29rID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdGQVE6OkZBUUhvb2snKTsKICAgIG15ICVMaW5rT3V0cHV0RGF0YTsKICAgIGZvciBteSAkTGlua1R5cGUgKCBzb3J0IGtleXMgJXsgJFBhcmFte09iamVjdExpbmtMaXN0V2l0aERhdGF9IH0gKSB7CgogICAgICAgICMgZXh0cmFjdCBsaW5rIHR5cGUgTGlzdAogICAgICAgIG15ICRMaW5rVHlwZUxpc3QgPSAkUGFyYW17T2JqZWN0TGlua0xpc3RXaXRoRGF0YX0tPnskTGlua1R5cGV9OwoKICAgICAgICBmb3IgbXkgJERpcmVjdGlvbiAoIHNvcnQga2V5cyAleyRMaW5rVHlwZUxpc3R9ICkgewoKICAgICAgICAgICAgIyBleHRyYWN0IGRpcmVjdGlvbiBsaXN0CiAgICAgICAgICAgIG15ICREaXJlY3Rpb25MaXN0ID0gJFBhcmFte09iamVjdExpbmtMaXN0V2l0aERhdGF9LT57JExpbmtUeXBlfS0+eyREaXJlY3Rpb259OwoKICAgICAgICAgICAgbXkgQEl0ZW1MaXN0OwogICAgICAgICAgICBmb3IgbXkgJEl0ZW1JRCAoIHNvcnQgeyAkYSA8PT4gJGIgfSBrZXlzICV7JERpcmVjdGlvbkxpc3R9ICkgewoKICAgICAgICAgICAgICAgICMgZXh0cmFjdCBGQVEgZGF0YQogICAgICAgICAgICAgICAgbXkgJEZBUSA9ICREaXJlY3Rpb25MaXN0LT57JEl0ZW1JRH07CgogICAgICAgICAgICAgICAgIyBkZWZpbmUgaXRlbSBkYXRhCiAgICAgICAgICAgICAgICBteSAlSXRlbSA9ICgKICAgICAgICAgICAgICAgICAgICBUeXBlICAgID0+ICdMaW5rJywKICAgICAgICAgICAgICAgICAgICBDb250ZW50ID0+ICdGOicgLiAkRkFRLT57TnVtYmVyfSwKICAgICAgICAgICAgICAgICAgICBUaXRsZSAgID0+ICIkRkFRSG9vayRGQVEtPntOdW1iZXJ9OiAkRkFRLT57VGl0bGV9IiwKICAgICAgICAgICAgICAgICAgICBMaW5rICAgID0+ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+e0Jhc2VsaW5rfQogICAgICAgICAgICAgICAgICAgICAgICAuICdBY3Rpb249QWdlbnRGQVFab29tO0l0ZW1JRD0nCiAgICAgICAgICAgICAgICAgICAgICAgIC4gJEl0ZW1JRCwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBwdXNoIEBJdGVtTGlzdCwgXCVJdGVtOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGFkZCBpdGVtIGxpc3QgdG8gbGluayBvdXRwdXQgZGF0YQogICAgICAgICAgICAkTGlua091dHB1dERhdGF7ICRMaW5rVHlwZSAuICc6OicgLiAkRGlyZWN0aW9uIH0tPntGQVF9ID0gXEBJdGVtTGlzdDsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuICVMaW5rT3V0cHV0RGF0YTsKfQoKPWhlYWQyIENvbnRlbnRTdHJpbmdDcmVhdGUoKQoKcmV0dXJuIGEgb3V0cHV0IHN0cmluZwoKICAgIG15ICRTdHJpbmcgPSAkTGlua09iamVjdC0+Q29udGVudFN0cmluZ0NyZWF0ZSgKICAgICAgICBDb250ZW50RGF0YSA9PiAkSGFzaFJlZiwKICAgICk7Cgo9Y3V0CgpzdWIgQ29udGVudFN0cmluZ0NyZWF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGlmICggISRQYXJhbXtDb250ZW50RGF0YX0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIENvbnRlbnREYXRhIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBUT0RPOiBDaGVjayB3aHkgbm8gcmV0dXJuIGlzIG5lZWRlZCEKICAgIHJldHVybjsKfQoKPWhlYWQyIFNlbGVjdGFibGVPYmplY3RMaXN0KCkKCnJldHVybiBhbiBhcnJheSBoYXNoIHdpdGggc2VsZWN0LWFibGUgb2JqZWN0cwoKICAgIG15IEBTZWxlY3RhYmxlT2JqZWN0TGlzdCA9ICRMaW5rT2JqZWN0LT5TZWxlY3RhYmxlT2JqZWN0TGlzdCgKICAgICAgICBTZWxlY3RlZCA9PiAkSWRlbnRpZmllciwgICMgKG9wdGlvbmFsKQogICAgKTsKCmEgcmVzdWx0IGNvdWxkIGJlCgogICAgQFNlbGVjdGFibGVPYmplY3RMaXN0ID0gKAogICAgICAgIHsKICAgICAgICAgICAgS2V5ICAgPT4gJ0ZBUScsCiAgICAgICAgICAgIFZhbHVlID0+ICdGQVEnLAogICAgICAgIH0sCiAgICApOwoKPWN1dAoKc3ViIFNlbGVjdGFibGVPYmplY3RMaXN0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJFNlbGVjdGVkOwogICAgaWYgKCAkUGFyYW17U2VsZWN0ZWR9ICYmICRQYXJhbXtTZWxlY3RlZH0gZXEgJFNlbGYtPntPYmplY3REYXRhfS0+e09iamVjdH0gKSB7CiAgICAgICAgJFNlbGVjdGVkID0gMTsKICAgIH0KCiAgICAjIG9iamVjdCBzZWxlY3QgbGlzdAogICAgbXkgQE9iamVjdFNlbGVjdExpc3QgPSAoCiAgICAgICAgewogICAgICAgICAgICBLZXkgICAgICA9PiAkU2VsZi0+e09iamVjdERhdGF9LT57T2JqZWN0fSwKICAgICAgICAgICAgVmFsdWUgICAgPT4gJFNlbGYtPntPYmplY3REYXRhfS0+e1JlYWxuYW1lfSwKICAgICAgICAgICAgU2VsZWN0ZWQgPT4gJFNlbGVjdGVkLAogICAgICAgIH0sCiAgICApOwoKICAgIHJldHVybiBAT2JqZWN0U2VsZWN0TGlzdDsKfQoKPWhlYWQyIFNlYXJjaE9wdGlvbkxpc3QoKQoKcmV0dXJuIGFuIGFycmF5IGhhc2ggd2l0aCBzZWFyY2ggb3B0aW9ucwoKICAgIG15IEBTZWFyY2hPcHRpb25MaXN0ID0gJExpbmtPYmplY3QtPlNlYXJjaE9wdGlvbkxpc3QoCiAgICAgICAgU3ViT2JqZWN0ID0+ICdCbGEnLCAgIyAob3B0aW9uYWwpCiAgICApOwoKYSByZXN1bHQgY291bGQgYmUKCiAgICBAU2VhcmNoT3B0aW9uTGlzdCA9ICgKICAgICAgICB7CiAgICAgICAgICAgIEtleSAgICAgICA9PiAnTnVtYmVyJywKICAgICAgICAgICAgTmFtZSAgICAgID0+ICdGQVEjJywKICAgICAgICAgICAgSW5wdXRTdHJnID0+ICRGb3JtU3RyaW5nLAogICAgICAgICAgICBGb3JtRGF0YSAgPT4gJzEyMzQnLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBLZXkgICAgICAgPT4gJ1RpdGxlJywKICAgICAgICAgICAgTmFtZSAgICAgID0+ICdUaXRsZScsCiAgICAgICAgICAgIElucHV0U3RyZyA9PiAkRm9ybVN0cmluZywKICAgICAgICAgICAgRm9ybURhdGEgID0+ICdCbGFCbGEnLAogICAgICAgIH0sCiAgICApOwoKPWN1dAoKc3ViIFNlYXJjaE9wdGlvbkxpc3QgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIHNlYXJjaCBvcHRpb24gbGlzdAogICAgbXkgJEZBUUhvb2sgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0ZBUTo6RkFRSG9vaycpOwogICAgbXkgQFNlYXJjaE9wdGlvbkxpc3QgPSAoCiAgICAgICAgewogICAgICAgICAgICBLZXkgID0+ICdOdW1iZXInLAogICAgICAgICAgICBOYW1lID0+ICRGQVFIb29rLAogICAgICAgICAgICBUeXBlID0+ICdUZXh0JywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgS2V5ICA9PiAnVGl0bGUnLAogICAgICAgICAgICBOYW1lID0+ICdUaXRsZScsCiAgICAgICAgICAgIFR5cGUgPT4gJ1RleHQnLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBLZXkgID0+ICdXaGF0JywKICAgICAgICAgICAgTmFtZSA9PiAnRnVsbHRleHQnLAogICAgICAgICAgICBUeXBlID0+ICdUZXh0JywKICAgICAgICB9LAogICAgKTsKCiAgICAjIGFkZCBmb3JtIGtleQogICAgZm9yIG15ICRSb3cgKEBTZWFyY2hPcHRpb25MaXN0KSB7CiAgICAgICAgJFJvdy0+e0Zvcm1LZXl9ID0gJ1NFQVJDSDo6JyAuICRSb3ctPntLZXl9OwogICAgfQoKICAgIG15ICRQYXJhbU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKCiAgICAjIGFkZCBmb3JtIGRhdGEgYW5kIGlucHV0IHN0cmluZwogICAgUk9XOgogICAgZm9yIG15ICRSb3cgKEBTZWFyY2hPcHRpb25MaXN0KSB7CgogICAgICAgICMgZ2V0IGZvcm0gZGF0YQogICAgICAgICRSb3ctPntGb3JtRGF0YX0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUm93LT57Rm9ybUtleX0gKTsKCiAgICAgICAgIyBwYXJzZSB0aGUgaW5wdXQgdGV4dCBibG9jawogICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0lucHV0VGV4dCcsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgS2V5ICAgPT4gJFJvdy0+e0Zvcm1LZXl9LAogICAgICAgICAgICAgICAgVmFsdWUgPT4gJFJvdy0+e0Zvcm1EYXRhfSB8fCAnJywKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGFkZCB0aGUgaW5wdXQgc3RyaW5nCiAgICAgICAgJFJvdy0+e0lucHV0U3RyZ30gPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdMaW5rT2JqZWN0JywKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiBAU2VhcmNoT3B0aW9uTGlzdDsKfQoKMTsKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVE9CTyBwcm9qZWN0IChMPGh0dHBzOi8vb3RvYm8ub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQ+LgoKPWN1dAo=</File>
        <File Location="Kernel/Output/HTML/FilterElementPost/FAQ.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpGaWx0ZXJFbGVtZW50UG9zdDo6RkFROwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcsCik7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIHJldHVybiBpZiAhJFBhcmFte0RhdGF9OwogICAgcmV0dXJuIGlmIHJlZiAkUGFyYW17RGF0YX0gbmUgJ1NDQUxBUic7CiAgICByZXR1cm4gaWYgISR7ICRQYXJhbXtEYXRhfSB9OwogICAgcmV0dXJuIGlmICEkUGFyYW17VGVtcGxhdGVGaWxlfTsKCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgIG15ICRDb25maWcgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0Zyb250ZW5kOjpNb2R1bGUnKS0+e0FnZW50RkFRRXhwbG9yZXJ9OwoKICAgIG15ICRHcm91cHNSbyA9ICRDb25maWctPntHcm91cFJvfSB8fCBbXTsKCiAgICBteSAkSGFzUGVybWlzc2lvbiA9IDE7CgogICAgIyBjaGVjayBwZXJtaXNzaW9uCiAgICBpZiAoIElzQXJyYXlSZWZXaXRoRGF0YSgkR3JvdXBzUm8pICkgewoKICAgICAgICAkSGFzUGVybWlzc2lvbiA9IDA7CgogICAgICAgICMgY2hlY2sgcmVhZCBvbmx5IGdyb3VwcwogICAgICAgIFJPR1JPVVA6CiAgICAgICAgZm9yIG15ICRSb0dyb3VwICggQHskR3JvdXBzUm99ICkgewoKICAgICAgICAgICAgJEhhc1Blcm1pc3Npb24gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKS0+UGVybWlzc2lvbkNoZWNrKAogICAgICAgICAgICAgICAgVXNlcklEICAgID0+ICRMYXlvdXRPYmplY3QtPntFbnZSZWZ9LT57VXNlcklEfSwKICAgICAgICAgICAgICAgIEdyb3VwTmFtZSA9PiAkUm9Hcm91cCwKICAgICAgICAgICAgICAgIFR5cGUgICAgICA9PiAncm8nLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgbmV4dCBST0dST1VQIGlmICEkSGFzUGVybWlzc2lvbjsKICAgICAgICAgICAgbmV4dCBST0dST1VQIGlmICRIYXNQZXJtaXNzaW9uICE9IDE7CgogICAgICAgICAgICBsYXN0IFJPR1JPVVA7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiBpZiAhJEhhc1Blcm1pc3Npb247CgogICAgIyBnZXQgYWxsb3dlZCB0ZW1wbGF0ZSBuYW1lcwogICAgbXkgJFZhbGlkVGVtcGxhdGVzID0gJENvbmZpZ09iamVjdC0+R2V0KCdGcm9udGVuZDo6T3V0cHV0OjpGaWx0ZXJFbGVtZW50UG9zdCcpLT57RkFRfS0+e1RlbXBsYXRlc307CgogICAgIyBjaGVjayB0ZW1wbGF0ZSBuYW1lCiAgICByZXR1cm4gaWYgISRWYWxpZFRlbXBsYXRlcy0+eyAkUGFyYW17VGVtcGxhdGVGaWxlfSB9OwoKICAgICMgaWYgbm8gc2Vzc2lvbiBjb29raWVzIGFyZSB1c2VkIHdlIGF0dGFjaCB0aGUgc2Vzc2lvbiBhcyBVUkwgcGFyYW1ldGVyCiAgICBteSAkU2Vzc2lvblN0cmluZyA9ICcnOwogICAgaWYgKCAhJENvbmZpZ09iamVjdC0+R2V0KCdTZXNzaW9uVXNlQ29va2llJykgKSB7CiAgICAgICAgbXkgJFNlc3Npb25JRCA9ICRQYXJhbXtTZXNzaW9uSUR9CiAgICAgICAgICAgIHx8ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKS0+R2V0UGFyYW0oIFBhcmFtID0+ICRDb25maWdPYmplY3QtPkdldCgnU2Vzc2lvbk5hbWUnKSApCiAgICAgICAgICAgIHx8ICcnOwogICAgICAgICRTZXNzaW9uU3RyaW5nID0gJENvbmZpZ09iamVjdC0+R2V0KCdTZXNzaW9uTmFtZScpIC4gJz0nIC4gJFNlc3Npb25JRCAuICc7JzsKICAgIH0KCiAgICBteSAkU3RhcnRQYXR0ZXJuICAgID0gJzwhLS0gWyBdIE91dHB1dEZpbHRlckhvb2tfVGlja2V0T3B0aW9uc0VuZCBbIF0gLS0+IC4rPyc7CiAgICBteSAkRkFRVHJhbnNsYXRhYmxlID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdGQVEnKTsKCiAgICAjIGFkZCBGQVEgbGluayB0byBhbiBleGlzdGluZyBPcHRpb25zIGJsb2NrCiAgICAjJEZpbmlzaFBhdHRlcm4gd2lsbCBiZSByZXBsYWNlZCBieSAkUmVwbGFjZQogICAgaWYgKCAkeyAkUGFyYW17RGF0YX0gfSA9fiBteyAkU3RhcnRQYXR0ZXJuIH1peG1zICkgewoKICAgICAgICBteSAkRmluaXNoUGF0dGVybiA9ICc8L2Rpdj4nOwogICAgICAgIG15ICRSZXBsYWNlICAgICAgID0gPDwiRU5EIjsKICAgICAgICAgICAgICAgICAgICAgICAgPGEgIGhyZWY9XCIjXCIgaWQ9XCJPcHRpb25GQVFcIj5bICRGQVFUcmFuc2xhdGFibGUgXTwvYT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KRU5ECiAgICAgICAgJHsgJFBhcmFte0RhdGF9IH0gPX4gc3sgKCRTdGFydFBhdHRlcm4pICRGaW5pc2hQYXR0ZXJuIH17JDEkUmVwbGFjZX1peG1zOwoKICAgICAgICAjIGluamVjdCB0aGUgbmVjZXNzYXJ5IEpTIGludG8gdGhlIHRlbXBsYXRlCiAgICAgICAgJExheW91dE9iamVjdC0+QWRkSlNPbkRvY3VtZW50Q29tcGxldGUoIENvZGUgPT4gPDwiRU9GIiApOwovKmdsb2JhbCBGQVE6IHRydWUgKi8KRkFRLkFnZW50LlRpY2tldENvbXBvc2UuSW5pdEZBUVRpY2tldENvbXBvc2UoXCQoJyNSaWNoVGV4dCcpKTsKXCQoJyNPcHRpb25GQVEnKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uIChldmVudCkgewogICAgdmFyIEZBUUlGcmFtZSA9ICc8aWZyYW1lIGNsYXNzPVwiVGV4dE9wdGlvbiBGQVFcIiBzcmM9XCInICsgQ29yZS5Db25maWcuR2V0KCdDR0lIYW5kbGUnKSArICc/JyArICckU2Vzc2lvblN0cmluZycgKyAnQWN0aW9uPUFnZW50RkFRRXhwbG9yZXI7TmF2PU5vbmU7U3ViamVjdD07V2hhdD1cIj48L2lmcmFtZT4nOwogICAgQ29yZS5VSS5EaWFsb2cuU2hvd0NvbnRlbnREaWFsb2coRkFRSUZyYW1lLCAnJywgJzEwcHgnLCAnQ2VudGVyJywgdHJ1ZSk7CiAgICByZXR1cm4gZmFsc2U7Cn0pOwpFT0YKCiAgICAgICAgcmV0dXJuIDE7CiAgICB9CgogICAgIyBhZGQgRkFRIGxpbmsgYW5kIGl0cyBvd24gYmxvY2ssIGlmIHRoZXJlIG5vIFRpY2tldE9wdGlvbnMgYmxvY2sgd2FzIGNhbGxlZAogICAgJFN0YXJ0UGF0dGVybiA9ICc8IS0tIFsgXSBPdXRwdXRGaWx0ZXJIb29rX05vVGlja2V0T3B0aW9uc0ZhbGxiYWNrIFsgXSAtLT4gLis/JzsKICAgIG15ICRPcHRpb25zVHJhbnNsYXRhYmxlID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdPcHRpb25zJyk7CiAgICBteSAkUmVwbGFjZSAgICAgICAgICAgICA9IDw8IkVORCI7CjwhLS0gT3V0cHV0RmlsdGVySG9va19Ob1RpY2tldE9wdGlvbnNGYWxsYmFjayAtLT4KICAgICAgICAgICAgICAgICAgICA8bGFiZWw+JE9wdGlvbnNUcmFuc2xhdGFibGU6PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhICBocmVmPVwiI1wiIGlkPVwiT3B0aW9uRkFRXCI+WyAkRkFRVHJhbnNsYXRhYmxlIF08L2E+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIkNsZWFyXCI+PC9kaXY+CkVORAogICAgJHsgJFBhcmFte0RhdGF9IH0gPX4gc3sgKCRTdGFydFBhdHRlcm4pIH17JFJlcGxhY2V9aXhtczsKCiAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU09uRG9jdW1lbnRDb21wbGV0ZSggQ29kZSA9PiA8PCJFT0YiICk7Ci8qZ2xvYmFsIEZBUTogdHJ1ZSAqLwpGQVEuQWdlbnQuVGlja2V0Q29tcG9zZS5Jbml0RkFRVGlja2V0Q29tcG9zZShcJCgnI1JpY2hUZXh0JykpOwpcJCgnI09wdGlvbkZBUScpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24gKGV2ZW50KSB7CiAgICB2YXIgRkFRSUZyYW1lID0gJzxpZnJhbWUgY2xhc3M9IlRleHRPcHRpb24gRkFRIiBzcmM9IicgKyBDb3JlLkNvbmZpZy5HZXQoJ0NHSUhhbmRsZScpICsgJz8nICsgJyRTZXNzaW9uU3RyaW5nJyArICdBY3Rpb249QWdlbnRGQVFFeHBsb3JlcjtOYXY9Tm9uZTtTdWJqZWN0PTtXaGF0PSI+PC9pZnJhbWU+JzsKICAgIENvcmUuVUkuRGlhbG9nLlNob3dDb250ZW50RGlhbG9nKEZBUUlGcmFtZSwgJycsICcxMHB4JywgJ0NlbnRlcicsIHRydWUpOwogICAgcmV0dXJuIGZhbHNlOwp9KTsKRU9GCgogICAgcmV0dXJuIDE7Cn0KCjE7Cg==</File>
        <File Location="Kernel/Output/HTML/FilterElementPost/FAQCustomerRelatedArticles.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpGaWx0ZXJFbGVtZW50UG9zdDo6RkFRQ3VzdG9tZXJSZWxhdGVkQXJ0aWNsZXM7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCiAgICAnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkZBUScsCik7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRUZW1wbGF0ZU5hbWUgPSAkUGFyYW17VGVtcGxhdGVGaWxlfSB8fCAnJzsKCiAgICByZXR1cm4gMSBpZiAhJFRlbXBsYXRlTmFtZTsKCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICByZXR1cm4gMSBpZiAhJENvbmZpZ09iamVjdC0+R2V0KCdGQVE6OkN1c3RvbWVyOjpSZWxhdGVkQXJ0aWNsZXM6OkVuYWJsZWQnKTsKCiAgICBteSAkT3V0cHV0RmlsdGVyUG9zdENvbmZpZ3MgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0Zyb250ZW5kOjpPdXRwdXQ6OkZpbHRlckVsZW1lbnRQb3N0Jyk7CgogICAgcmV0dXJuIGlmICEkT3V0cHV0RmlsdGVyUG9zdENvbmZpZ3M7CiAgICByZXR1cm4gaWYgcmVmICRPdXRwdXRGaWx0ZXJQb3N0Q29uZmlncyBuZSAnSEFTSCc7CgogICAgIyBFeHRyYWN0IHRoZSBvdXRwdXQgZmlsdGVyIGNvbmZpZy4KICAgIG15ICRPdXRwdXRGaWx0ZXJDb25maWcgPSAkT3V0cHV0RmlsdGVyUG9zdENvbmZpZ3MtPntPdXRwdXRGaWx0ZXJQb3N0RkFRQ3VzdG9tZXJSZWxhdGVkQXJ0aWNsZXN9OwoKICAgIHJldHVybiBpZiAhJE91dHB1dEZpbHRlckNvbmZpZzsKICAgIHJldHVybiBpZiByZWYgJE91dHB1dEZpbHRlckNvbmZpZyBuZSAnSEFTSCc7CgogICAgbXkgJFZhbGlkVGVtcGxhdGVzID0gJE91dHB1dEZpbHRlckNvbmZpZy0+e1RlbXBsYXRlc307CgogICAgcmV0dXJuIGlmICEkVmFsaWRUZW1wbGF0ZXM7CiAgICByZXR1cm4gaWYgcmVmICRWYWxpZFRlbXBsYXRlcyBuZSAnSEFTSCc7CgogICAgIyBBcHBseSBvbmx5IGlmIHRlbXBsYXRlIGlzIHZhbGlkIGluIGNvbmZpZy4KICAgIHJldHVybiAxIGlmICEkVmFsaWRUZW1wbGF0ZXMtPnskVGVtcGxhdGVOYW1lfTsKCiAgICBteSAkRkFRT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkZBUScpOwoKICAgIG15ICVGQVFTZWFyY2hQYXJhbWV0ZXI7CgogICAgIyBTZXQgaW50ZXJmYWNlIHNldHRpbmcgdG8gJ2V4dGVybmFsJywgdG8gc2VhcmNoIG9ubHkgZm9yIGFwcHJvdmVkIGZhcSBhcnRpY2xlLgogICAgJEZBUVNlYXJjaFBhcmFtZXRlcntJbnRlcmZhY2V9ID0gJEZBUU9iamVjdC0+U3RhdGVUeXBlR2V0KAogICAgICAgIE5hbWUgICA9PiAnZXh0ZXJuYWwnLAogICAgICAgIFVzZXJJRCA9PiAxLAogICAgKTsKCiAgICAkRkFRU2VhcmNoUGFyYW1ldGVye1N0YXRlc30gPSAkRkFRT2JqZWN0LT5TdGF0ZVR5cGVMaXN0KAogICAgICAgIFR5cGVzICA9PiAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6Q3VzdG9tZXI6OlN0YXRlVHlwZXMnKSwKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CgogICAgIyBUZXN0IGlmIGN1c3RvbWVyL3B1YmxpYyBGQVEgYXJ0aWNsZSBleGlzdHMsIGJlY2F1c2Ugd2UgZG9uJ3Qgc2hvdyB0aGUgd2lkZ2V0CiAgICAjICAgaWYgbm8gcmVsZXZhbnQgYXJ0aWNsZSBleGlzdHMuCiAgICBteSBARkFRQXJ0aWNsZUlEcyA9ICRGQVFPYmplY3QtPkZBUVNlYXJjaCgKICAgICAgICAlRkFRU2VhcmNoUGFyYW1ldGVyLAogICAgICAgIExpbWl0ICA9PiAxLAogICAgICAgIFVzZXJJRCA9PiAxLAogICAgKTsKCiAgICByZXR1cm4gMSBpZiAhQEZBUUFydGljbGVJRHM7CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIFJlbmRlciB0aGUgZW1wdHkgcmVsYXRlZCBGQVEgYXJ0aWNsZSBsaXN0IGFuZCBhZGQgdGhlIGluaXRpYWwgd2RpZ2V0IGh0bWwgY29kZSB0byB0aGUgcGFnZS4KICAgIG15ICRDdXN0b21lclJlbGF0ZWRGQVFBcnRpY2xlc0hUTUxTdHJpbmcgPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdDdXN0b21lckZBUVJlbGF0ZWRBcnRpY2xlcycsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHt9LAogICAgKTsKCiAgICBteSAkU2VhcmNoID0gJyg8dGV4dGFyZWEgaWQ9IlJpY2hUZXh0IiknOwogICAgJHsgJFBhcmFte0RhdGF9IH0KICAgICAgICA9fiBzeyRTZWFyY2h9ezxkaXYgaWQ9IkZBUVJlbGF0ZWRBcnRpY2xlcyIgY2xhc3M9IkhpZGRlbiI+JEN1c3RvbWVyUmVsYXRlZEZBUUFydGljbGVzSFRNTFN0cmluZzwvZGl2PiQxfW1zZzsKCiAgICBteSAkRnJvbnRlbmRDdXN0b21lclRpY2tldE1lc3NhZ2VDb25maWcgICAgICA9ICRDb25maWdPYmplY3QtPkdldCgiVGlja2V0OjpGcm9udGVuZDo6Q3VzdG9tZXJUaWNrZXRNZXNzYWdlIik7CiAgICBteSAkRnJvbnRlbmRDdXN0b21lckZBUVJlbGF0ZWRBcnRpY2xlc0NvbmZpZyA9ICRDb25maWdPYmplY3QtPkdldCgiRkFROjpGcm9udGVuZDo6Q3VzdG9tZXJGQVFSZWxhdGVkQXJ0aWNsZXMiKTsKCiAgICBteSAkUXVldWVzRW5hYmxlZCAgICAgPSAkRnJvbnRlbmRDdXN0b21lckZBUVJlbGF0ZWRBcnRpY2xlc0NvbmZpZy0+eydRdWV1ZXNFbmFibGVkJ30gfHwgJyc7CiAgICBteSAkUXVldWVzRW5hYmxlZFN0cmcgPSAnJzsKICAgIGlmICggSXNBcnJheVJlZldpdGhEYXRhKCRRdWV1ZXNFbmFibGVkKSApIHsKCiAgICAgICAgIyBEb24ndCBzaG93IHRoZSBmdW5jdGlvbmFsaXR5LCBpZiB0aGUgcXVldWUgc2VsZWN0aW9uIGlzIGRpc2FibGVkCiAgICAgICAgIyAgIGFuZCB0aGUgZGVmYXVsdCBxdWV1ZSBpcyBub3QgaW4gdGhlIGVuYWJsZWQgcXVldWVzLgogICAgICAgIGlmICggISRGcm9udGVuZEN1c3RvbWVyVGlja2V0TWVzc2FnZUNvbmZpZy0+e1F1ZXVlfSApIHsKICAgICAgICAgICAgbXkgJUxvb2t1cFF1cXVlc0VuYWJsZWQgPSBtYXAgeyAkXyA9PiAxIH0gQHskUXVldWVzRW5hYmxlZH07CgogICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgICAgIGlmICEkRnJvbnRlbmRDdXN0b21lclRpY2tldE1lc3NhZ2VDb25maWctPntRdWV1ZURlZmF1bHR9CiAgICAgICAgICAgICAgICB8fCAhJExvb2t1cFF1cXVlc0VuYWJsZWR7ICRGcm9udGVuZEN1c3RvbWVyVGlja2V0TWVzc2FnZUNvbmZpZy0+e1F1ZXVlRGVmYXVsdH0gfTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRRdWV1ZXNFbmFibGVkU3RyZyA9IGpvaW4oICInLCciLCBAeyRRdWV1ZXNFbmFibGVkfSApOwogICAgICAgICAgICAkUXVldWVzRW5hYmxlZFN0cmcgPSAiJyRRdWV1ZXNFbmFibGVkU3RyZyciOwogICAgICAgIH0KICAgIH0KCiAgICAjIEFkZCBhIGhpZGRlbiBpbnB1dCBjb250YWluaW5nIHRoZSBlbmFibGVkIHF1ZXVlcy4KICAgIG15ICRTZWFyY2hTdHJnID0gJyhccys8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iKSc7CiAgICBteSAkUmVwbGFjZSAgICA9IDw8IkVORCI7ClxuPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iUXVldWVzRW5hYmxlZCIgaWQ9IlF1ZXVlc0VuYWJsZWQiIHZhbHVlPSJbJFF1ZXVlc0VuYWJsZWRTdHJnXSIgLz4KRU5ECgogICAgIyBGb3IgcHJvY2VzcyBtYW5hZ2VtZW50IHdlIG5lZWQgdG8gYWRkIHRoZSBoaWRkZW4gaW5wdXQgYmVmb3JlIHRoZSBjbG9zdXJlIG9mIHRoZSBmaWVsZCBzZXQuCiAgICBpZiAoICRUZW1wbGF0ZU5hbWUgPX4gbXtQcm9jZXNzTWFuYWdlbWVudC8oPzogQ3VzdG9tZXIpPyBBY3Rpdml0eURpYWxvZ0Zvb3Rlcn1tc3ggKSB7CiAgICAgICAgJFNlYXJjaFN0cmcgPSAnKFxzKzwvZmllbGRzZXQ+KSc7CiAgICB9CgogICAgIyBVcGRhdGUgdGhlIHNvdXJjZS4KICAgICR7ICRQYXJhbXtEYXRhfSB9ID1+IHN7JFNlYXJjaFN0cmd9eyRSZXBsYWNlICQxfTsKICAgIHJldHVybiAxOwp9CgoxOwo=</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/AgentFAQAdd.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgo8ZGl2IGNsYXNzPSJNYWluQm94IEFSSUFSb2xlTWFpbiBGb3JtU2NyZWVuIE5vU2lkZWJhciI+CgogICAgPGgxPlslIFRyYW5zbGF0ZSgiQWRkIEZBUSBBcnRpY2xlIikgfCBodG1sICVdPC9oMT4KICAgIDxwIGNsYXNzPSJBc3Rlcmlza0V4cGxhbmF0aW9uIj5bJSBUcmFuc2xhdGUoIkFsbCBmaWVsZHMgbWFya2VkIHdpdGggYW4gYXN0ZXJpc2sgKCopIGFyZSBtYW5kYXRvcnkuIikgfCBodG1sICVdPC9wPgoKICAgIDxkaXYgY2xhc3M9IkNvbnRlbnRDb2x1bW4iPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiRkFRQWRkIikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KCiAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBjbGFzcz0iVmFsaWRhdGUgUHJldmVudE11bHRpcGxlU3VibWl0cyI+CiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIi8+CiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJTYXZlIi8+CiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJGb3JtSUQiIHZhbHVlPSJbJSBEYXRhLkZvcm1JRCB8IGh0bWwgJV0iLz4KCiAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSBGQVFFZGl0TWFzayI+CgogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IlRpdGxlIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qIDwvc3Bhbj5bJSBUcmFuc2xhdGUoIlRpdGxlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iVGl0bGUiIGlkPSJUaXRsZSIgdmFsdWU9IlslIERhdGEuVGl0bGUgfCBodG1sICVdIiBjbGFzcz0iVzUwcGMgVmFsaWRhdGVfUmVxdWlyZWQgWyUgRGF0YS5UaXRsZVNlcnZlckVycm9yIHwgaHRtbCAlXSIgbWF4bGVuZ3RoPSIyMDAiLz4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iVGl0bGVFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlRpdGxlU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iS2V5d29yZHMiPlslIFRyYW5zbGF0ZSgiS2V5d29yZHMiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJLZXl3b3JkcyIgaWQ9IktleXdvcmRzIiB2YWx1ZT0iWyUgRGF0YS5LZXl3b3JkcyB8IGh0bWwgJV0iIGNsYXNzPSJXNTBwYyIgbWF4bGVuZ3RoPSIyMDAiLz4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IkNhdGVnb3J5SUQiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPiogPC9zcGFuPlslIFRyYW5zbGF0ZSgiQ2F0ZWdvcnkiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuQ2F0ZWdvcnlPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iQ2F0ZWdvcnlJREVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIkEgY2F0ZWdvcnkgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iQ2F0ZWdvcnlJRFNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIkEgY2F0ZWdvcnkgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlN0YXRlSUQiPlslIFRyYW5zbGF0ZSgiU3RhdGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuU3RhdGVPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTZXJ2aWNlIikgJV0KICAgICAgICAgICAgICAgICAgICBbJSBJRiBEYXRhLlNlcnZpY2VPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJTZXJ2aWNlSUQiPlslIFRyYW5zbGF0ZSgiU2VydmljZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIFslIEVORCAlXQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkWyUgSUYgIURhdGEuS2V5ICVdIE5vTWFyZ2luWyUgRU5EICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5TZXJ2aWNlT3B0aW9uICVdCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiU2VydmljZSIpICVdCgogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlZhbGlkSUQiPlslIFRyYW5zbGF0ZSgiVmFsaWRpdHkiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuVmFsaWRPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJMYW5ndWFnZSIpICVdCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTGFuZ3VhZ2VJRCI+WyUgVHJhbnNsYXRlKCJMYW5ndWFnZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5MYW5ndWFnZU9wdGlvbiAlXQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkxhbmd1YWdlIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIk5vTGFuZ3VhZ2UiKSAlXQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ikxhbmd1YWdlSUQiIHZhbHVlPSJbJSBEYXRhLkxhbmd1YWdlSUQgfCBodG1sICVdIi8+ClslIFJlbmRlckJsb2NrRW5kKCJOb0xhbmd1YWdlIikgJV0KCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBcHByb3ZhbCIpICVdCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iQXBwcm92ZWQiPlslIFRyYW5zbGF0ZSgiQXBwcm92YWwiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuQXBwcm92YWxPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJBcHByb3ZhbCIpICVdCgpbJSBEYXRhLkR5bmFtaWNGaWVsZEhUTUwgJV0KCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiQXR0YWNobWVudCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KWyUgSU5DTFVERSAiRm9ybUVsZW1lbnRzL0F0dGFjaG1lbnRMaXN0LnR0IiAlXQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KClslIFJlbmRlckJsb2NrU3RhcnQoIkZBUUNvbnRlbnQiKSAlXQogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlslIERhdGEuRmllbGQgfCBodG1sICVdIj5bJSBUcmFuc2xhdGUoRGF0YS5DYXB0aW9uKSB8IGh0bWwgJV06PGJyLz48c3BhbiBjbGFzcz0iRkFRU3RhdGVOYW1lIj4oWyUgVHJhbnNsYXRlKERhdGEuU3RhdGVOYW1lKSB8IGh0bWwgJV0pPC9zcGFuPjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iUmljaFRleHRGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBpZD0iWyUgRGF0YS5GaWVsZCB8IGh0bWwgJV0iIGNsYXNzPSJSaWNoVGV4dCIgbmFtZT0iWyUgRGF0YS5GaWVsZCB8IGh0bWwgJV0iIHJvd3M9IjE1IiBjb2xzPSI3MCI+WyUgRGF0YS5Db250ZW50IHwgaHRtbCAlXTwvdGV4dGFyZWE+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiRkFRQ29udGVudCIpICVdCgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIFNwYWNpbmdUb3AiPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJQcmltYXJ5IENhbGxGb3JBY3Rpb24iIGlkPSJGQVFTdWJtaXQiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiQ3JlYXRlIikgfCBodG1sICVdIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtY2hlY2stc3F1YXJlLW8iPjwvaT4gWyUgVHJhbnNsYXRlKCJDcmVhdGUiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgib3IiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFnZW50RkFRRXhwbG9yZXI7Q2F0ZWdvcnlJRD1bJSBEYXRhLkNhdGVnb3J5SUQgfCB1cmkgJV0iPlslIFRyYW5zbGF0ZSgiQ2FuY2VsIikgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CgogICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJGQVFBZGQiKSAlXQogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CjwvZGl2Pgo=</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/AgentDashboardFAQOverview.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbmZvQm94RkFRTWluaUxpc3QiKSAlXQo8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSI+CiAgICA8dGJvZHk+ClslIFJlbmRlckJsb2NrU3RhcnQoIkluZm9Cb3hGQVFNaW5pTGlzdEl0ZW1Sb3ciKSAlXQogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFnZW50RkFRWm9vbTtJdGVtSUQ9WyUgRGF0YS5JdGVtSUQgfCB1cmkgJV0iIGNsYXNzPSJBc0Jsb2NrIiB0aXRsZT0iWyUgRGF0YS5UaXRsZSB8IGh0bWwgJV0gKFslIERhdGEuQ2F0ZWdvcnlOYW1lIHwgaHRtbCAlXSkiPgogICAgICAgICAgICAgICAgICAgIFslIERhdGEuVGl0bGUgfCB0cnVuY2F0ZSg1MCkgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICA8c3Bhbj4KICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkNhdGVnb3J5U2hvcnROYW1lIHwgaHRtbCAlXSAtIFslIERhdGEuQ2hhbmdlZCB8IExvY2FsaXplKCJUaW1lU2hvcnQiKSAlXQogICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L3RkPgogICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJJbmZvQm94RkFRTWluaUxpc3RJdGVtUm93IikgJV0KICAgIDwvdGJvZHk+CjwvdGFibGU+ClslIFJlbmRlckJsb2NrRW5kKCJJbmZvQm94RkFRTWluaUxpc3QiKSAlXQo=</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/AgentFAQCategory.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlldyIpICVdCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIExheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyRmlyc3QiPgogICAgPGgxIGNsYXNzPSJJbnZpc2libGVUZXh0Ij5bJSBUcmFuc2xhdGUoIkZBUSBDYXRlZ29yeSBNYW5hZ2VtZW50IikgfCBodG1sICVdPC9oMT4KCiAgICBbJSBCcmVhZGNydW1iUGF0aCA9IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSA9PiBUcmFuc2xhdGUoJ0ZBUSBDYXRlZ29yeSBNYW5hZ2VtZW50JyksCiAgICAgICAgICAgICAgICBMaW5rID0+IEVudigiQWN0aW9uIiksCiAgICAgICAgICAgIH0sCiAgICAgICAgXQogICAgJV0KCiAgICBbJSBTV0lUQ0ggRGF0YS5BY3Rpb24gJV0KICAgICAgICBbJSBDQVNFICdBZGQnICVdCiAgICAgICAgICAgIFslIEJyZWFkY3J1bWJQYXRoLnB1c2goeyBOYW1lID0+IFRyYW5zbGF0ZSgiQWRkIEZBUSBDYXRlZ29yeSIpLH0pICVdCiAgICAgICAgWyUgQ0FTRSAnQ2hhbmdlJyAlXQogICAgICAgICAgICBbJSBVU0UgRWRpdFRpdGxlID0gU3RyaW5nKFRyYW5zbGF0ZSgiRWRpdCBGQVEgQ2F0ZWdvcnkiKSkgJV0KICAgICAgICAgICAgWyUgQnJlYWRjcnVtYlBhdGgucHVzaCh7IE5hbWUgPT4gRWRpdFRpdGxlLmFwcGVuZCggJzogJywgRGF0YS5OYW1lICkgfSkgJV0KICAgIFslIEVORCAlXQoKICAgIFslIElOQ0xVREUgIkJyZWFkY3J1bWIudHQiIFBhdGggPSBCcmVhZGNydW1iUGF0aCBUeXBlID0gIkFnZW50IiAlXQoKICAgIDxkaXYgY2xhc3M9IlNpZGViYXJDb2x1bW4iPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25MaXN0IikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiQWN0aW9ucyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iQWN0aW9uTGlzdCI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdGlvbk92ZXJ2aWV3IikgJV0KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdIiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LWxlZnQiPjwvaT5bJSBUcmFuc2xhdGUoIkdvIHRvIG92ZXJ2aWV3IikgfCBodG1sICVdPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbk92ZXJ2aWV3IikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdGlvbkFkZCIpICVdCiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtTdWJhY3Rpb249QWRkIiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGkgY2xhc3M9ImZhIGZhLXBsdXMtc3F1YXJlIj48L2k+WyUgVHJhbnNsYXRlKCJBZGQgY2F0ZWdvcnkiKSB8IGh0bWwgJV08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uQWRkIikgJV0KCiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbkxpc3QiKSAlXQogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJDb250ZW50Q29sdW1uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdSZXN1bHQiKSAlXQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiTGlzdCIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIiBzdW1tYXJ5PSJGQVEgY2F0ZWdvcmllcyI+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJOYW1lIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlZhbGlkaXR5IikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkRlbGV0ZSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICA8dGJvZHk+ClslIFJlbmRlckJsb2NrU3RhcnQoIk5vRGF0YUZvdW5kTXNnIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiTm8gZGF0YSBmb3VuZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJOb0RhdGFGb3VuZE1zZyIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UmVzdWx0Um93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyIFslIElGIERhdGEuVmFsaWQgIT0gJ3ZhbGlkJyVdY2xhc3M9IkludmFsaWQiWyUgRU5EICVdID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48YSBjbGFzcz0iQXNCbG9jayIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07U3ViYWN0aW9uPUNoYW5nZTtDYXRlZ29yeUlEPVslIERhdGEuQ2F0ZWdvcnlJRCB8IHVyaSAlXSI+WyUgRGF0YS5OYW1lIHwgaHRtbCAlXTwvYT48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIFRyYW5zbGF0ZShEYXRhLlZhbGlkKSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJDZW50ZXIgTGFzdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaWQ9IkRlbGV0ZUNhdGVnb3J5SURbJSBEYXRhLkNhdGVnb3J5SUQgfCBodG1sICVdIiBjbGFzcz0iVHJhc2hDYW4iIGhyZWY9IiMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtdHJhc2gtbyI+PC9pPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iSW52aXNpYmxlVGV4dCI+WyUgVHJhbnNsYXRlKCJEZWxldGUiKSB8IGh0bWwgJV06IFslIERhdGEuTmFtZSB8IGh0bWwgJV08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3UmVzdWx0Um93IikgJV0KICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1Jlc3VsdCIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1VwZGF0ZSIpICVdCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkhlYWRlckFkZCIpICVdCiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJBZGQgQ2F0ZWdvcnkiKSB8IGh0bWwgJV08L2gyPgpbJSBSZW5kZXJCbG9ja0VuZCgiSGVhZGVyQWRkIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiSGVhZGVyRWRpdCIpICVdCiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJFZGl0IENhdGVnb3J5IikgfCBodG1sICVdPC9oMj4KWyUgUmVuZGVyQmxvY2tFbmQoIkhlYWRlckVkaXQiKSAlXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgY2xhc3M9IlZhbGlkYXRlIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIi8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iWyUgRGF0YS5BY3Rpb24gfCB1cmkgJV1BY3Rpb24iLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJDYXRlZ29yeUlEIiB2YWx1ZT0iWyUgRGF0YS5DYXRlZ29yeUlEIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9Ik5hbWUiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiTmFtZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iTmFtZSIgaWQ9Ik5hbWUiIHZhbHVlPSJbJSBEYXRhLk5hbWUgfCBodG1sICVdIiBjbGFzcz0iVzUwcGMgVmFsaWRhdGVfUmVxdWlyZWQgWyUgRGF0YS5OYW1lU2VydmVyRXJyb3IgfCBodG1sICVdIiBtYXhsZW5ndGg9IjUwIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJOYW1lRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJOYW1lU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoRGF0YS5OYW1lU2VydmVyRXJyb3JNZXNzYWdlKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlBhcmVudElEIj5bJSBUcmFuc2xhdGUoIlN1YmNhdGVnb3J5IG9mIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuQ2F0ZWdvcnlPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IlBlcm1pc3Npb25Hcm91cHMiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiUGVybWlzc2lvbiIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkdyb3VwT3B0aW9uICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJQZXJtaXNzaW9uR3JvdXBzRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlBsZWFzZSBzZWxlY3QgYXQgbGVhc3Qgb25lIHBlcm1pc3Npb24gZ3JvdXAuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJQZXJtaXNzaW9uR3JvdXBzU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlBsZWFzZSBzZWxlY3QgYXQgbGVhc3Qgb25lIHBlcm1pc3Npb24gZ3JvdXAuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj5bJSBUcmFuc2xhdGUoIkFnZW50IGdyb3VwcyB0aGF0IGNhbiBhY2Nlc3MgYXJ0aWNsZXMgaW4gdGhpcyBjYXRlZ29yeS4iKSB8IGh0bWwgJV08L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlZhbGlkSUQiPlslIFRyYW5zbGF0ZSgiVmFsaWRpdHkiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5WYWxpZE9wdGlvbiAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iQ29tbWVudCI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJDb21tZW50IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJDb21tZW50IiBpZD0iQ29tbWVudCIgdmFsdWU9IlslIERhdGEuQ29tbWVudCB8IGh0bWwgJV0iIGNsYXNzPSJXNTBwYyBWYWxpZGF0ZV9SZXF1aXJlZCBbJSBEYXRhLkNvbW1lbnRTZXJ2ZXJFcnJvciB8IGh0bWwgJV0iIG1heGxlbmd0aD0iODAiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkNvbW1lbnRFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkNvbW1lbnRTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPlslIFRyYW5zbGF0ZSgiV2lsbCBiZSBzaG93biBhcyBjb21tZW50IGluIEV4cGxvcmVyLiIpIHwgaHRtbCAlXTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQgU3BhY2luZ1RvcCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJQcmltYXJ5IENhbGxGb3JBY3Rpb24iIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiU3VibWl0IikgfCBodG1sICVdIj48c3Bhbj5bJSBUcmFuc2xhdGUoIlN1Ym1pdCIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgib3IiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdIj5bJSBUcmFuc2xhdGUoIkNhbmNlbCIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3VXBkYXRlIikgJV0KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2Pgo8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3IikgJV0KCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJEZWxldGUiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiTm9BZmZlY3RlZCIpICVdCjxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIFczMDBweCI+CiAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJDYXRlZ29yeSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgPHAgY2xhc3M9IlZhbHVlIj4KICAgICAgICBbJSBEYXRhLk5hbWUgfCBodG1sICVdCiAgICA8L3A+CiAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CjwvZmllbGRzZXQ+CjxwIGNsYXNzPSJTcGFjaW5nVG9wIENlbnRlciI+CiAgICBbJSBUcmFuc2xhdGUoIkRvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBjYXRlZ29yeT8iKSB8IGh0bWwgJV0KPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiTm9BZmZlY3RlZCIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBZmZlY3RlZCIpICVdCjxwPgogICAgWyUgVHJhbnNsYXRlKCJZb3UgY2FuIG5vdCBkZWxldGUgdGhpcyBjYXRlZ29yeS4gSXQgaXMgdXNlZCBpbiBhdCBsZWFzdCBvbmUgRkFRIGFydGljbGUgYW5kL29yIGlzIHBhcmVudCBvZiBhdCBsZWFzdCBvbmUgb3RoZXIgY2F0ZWdvcnkiKSB8IGh0bWwgJV0KPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWZmZWN0ZWQiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiQWZmZWN0ZWRJdGVtcyIpICVdCjxwIGNsYXNzPSJTcGFjaW5nVG9wIFNwYWNpbmdCb3R0b20iPgogICAgWyUgVHJhbnNsYXRlKCJUaGlzIGNhdGVnb3J5IGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBGQVEgYXJ0aWNsZShzKSIpIHwgaHRtbCAlXToKPC9wPgo8dWw+ClslIFJlbmRlckJsb2NrU3RhcnQoIkFmZmVjdGVkSXRlbXNSb3ciKSAlXQogICAgPGxpIGNsYXNzPSJJbmRlbnQgU3BhY2luZ0JvdHRvbVNtYWxsIj4KICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1bJSBEYXRhLkxpbmsgJV07QWN0aW9uPUFnZW50RkFRWm9vbTtJdGVtSUQ9WyUgRGF0YS5JdGVtSUQgfCB1cmkgJV0iPgogICAgICAgICAgICBbJSBDb25maWcoIkZBUTo6RkFRSG9vayIpICVdOlslIERhdGEuTnVtYmVyIHwgaHRtbCAlXTxzcGFuPiZuYnNwOyZtZGFzaDs8L3NwYW4+IFslIERhdGEuVGl0bGUgfCB0cnVuY2F0ZSg2MCkgfCBodG1sICVdCiAgICAgICAgPC9hPgogICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkFmZmVjdGVkSXRlbXNSb3ciKSAlXQo8L3VsPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWZmZWN0ZWRJdGVtcyIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBZmZlY3RlZFN1YkNhdGVnb3JpZXMiKSAlXQo8cCBjbGFzcz0iU3BhY2luZ1RvcCBTcGFjaW5nQm90dG9tIj4KICAgIFslIFRyYW5zbGF0ZSgiVGhpcyBjYXRlZ29yeSBpcyBwYXJlbnQgb2YgdGhlIGZvbGxvd2luZyBzdWJjYXRlZ29yaWVzIikgfCBodG1sICVdOgo8L3A+Cjx1bD4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWZmZWN0ZWRTdWJDYXRlZ29yaWVzUm93IikgJV0KICAgIDxsaSBjbGFzcz0iSW5kZW50IFNwYWNpbmdCb3R0b21TbWFsbCI+CiAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdWyUgRGF0YS5MaW5rICVdO0FjdGlvbj1BZ2VudEZBUUV4cGxvcmVyO0NhdGVnb3J5SUQ9WyUgRGF0YS5DYXRlZ29yeUlEIHwgdXJpICVdIj4KICAgICAgICAgICAgWyUgRGF0YS5Mb25nTmFtZSB8IGh0bWwgJV0KICAgICAgICA8L2E+CiAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWZmZWN0ZWRTdWJDYXRlZ29yaWVzUm93IikgJV0KPC91bD4KWyUgUmVuZGVyQmxvY2tFbmQoIkFmZmVjdGVkU3ViQ2F0ZWdvcmllcyIpICVdCgpbJSBSZW5kZXJCbG9ja0VuZCgiRGVsZXRlIikgJV0K</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/AgentFAQDelete.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgo8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSBXMzAwcHgiPgogICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiVGl0bGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgIDxwIGNsYXNzPSJWYWx1ZSI+CiAgICAgICAgWyUgRGF0YS5UaXRsZSB8IGh0bWwgJV0KICAgIDwvcD4KICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KPC9maWVsZHNldD4KPHAgY2xhc3M9IlNwYWNpbmdUb3AgQ2VudGVyIj4KICAgIFslIFRyYW5zbGF0ZSgiRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIEZBUSBhcnRpY2xlPyIpIHwgaHRtbCAlXQo8L3A+Cg==</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/AgentFAQEdit.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgo8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgY2xhc3M9IlZhbGlkYXRlIFByZXZlbnRNdWx0aXBsZVN1Ym1pdHMiPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiU3RhcnROb3JtYWwiKSAlXQogICAgPGRpdiBjbGFzcz0iTWFpbkJveCBBUklBUm9sZU1haW4gRm9ybVNjcmVlbiBOb1NpZGViYXIiPgogICAgICAgIDxoMT5bJSBUcmFuc2xhdGUoIkVkaXQiKSB8IGh0bWwgJV06IFslIFRyYW5zbGF0ZSgiRkFRIikgfCBodG1sICVdOiBbJSBEYXRhLk51bWJlciB8IGh0bWwgJV08L2gxPgogICAgICAgIDxwIGNsYXNzPSJBc3Rlcmlza0V4cGxhbmF0aW9uIj5bJSBUcmFuc2xhdGUoIkFsbCBmaWVsZHMgbWFya2VkIHdpdGggYW4gYXN0ZXJpc2sgKCopIGFyZSBtYW5kYXRvcnkuIikgfCBodG1sICVdPC9wPgoKICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Q29sdW1uIj4KWyUgUmVuZGVyQmxvY2tFbmQoIlN0YXJ0Tm9ybWFsIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIlN0YXJ0U21hbGwiKSAlXQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJMYXlvdXRQb3B1cCBBUklBUm9sZU1haW4iPgoKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgPGgxPlslIFRyYW5zbGF0ZSgiRWRpdCIpIHwgaHRtbCAlXTogWyUgVHJhbnNsYXRlKCJGQVEiKSB8IGh0bWwgJV06IFslIERhdGEuTnVtYmVyIHwgaHRtbCAlXTwvaDE+CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkFzdGVyaXNrRXhwbGFuYXRpb24iPlslIFRyYW5zbGF0ZSgiQWxsIGZpZWxkcyBtYXJrZWQgd2l0aCBhbiBhc3RlcmlzayAoKikgYXJlIG1hbmRhdG9yeS4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJDYW5jZWxDbG9zZVBvcHVwIj5bJSBUcmFuc2xhdGUoIkNhbmNlbCAmIGNsb3NlIikgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+ClslIFJlbmRlckJsb2NrRW5kKCJTdGFydFNtYWxsIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkZBUUVkaXQiKSAlXQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJTYXZlIi8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iRm9ybUlEIiB2YWx1ZT0iWyUgRGF0YS5Gb3JtSUQgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iSXRlbUlEIiB2YWx1ZT0iWyUgRGF0YS5JdGVtSUQgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU2NyZWVuVHlwZSIgdmFsdWU9IlslIERhdGEuU2NyZWVuVHlwZSB8IGh0bWwgJV0iLz4KCiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UgRkFRRWRpdE1hc2sgWyUgRGF0YS5GaWVsZHNldENsYXNzIHwgaHRtbCAlXSI+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJUaXRsZSI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+KiA8L3NwYW4+WyUgVHJhbnNsYXRlKCJUaXRsZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iVGl0bGUiIGlkPSJUaXRsZSIgdmFsdWU9IlslIERhdGEuVGl0bGUgfCBodG1sICVdIiBjbGFzcz0iVzUwcGMgVmFsaWRhdGVfUmVxdWlyZWQgWyUgRGF0YS5UaXRsZVNlcnZlckVycm9yIHwgaHRtbCAlXSIgbWF4bGVuZ3RoPSIyMDAiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlRpdGxlRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iVGl0bGVTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJLZXl3b3JkcyI+WyUgVHJhbnNsYXRlKCJLZXl3b3JkcyIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iS2V5d29yZHMiIGlkPSJLZXl3b3JkcyIgdmFsdWU9IlslIERhdGEuS2V5d29yZHMgfCBodG1sICVdIiBjbGFzcz0iVzUwcGMiIG1heGxlbmd0aD0iMjAwIi8+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJDYXRlZ29yeUlEIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qIDwvc3Bhbj5bJSBUcmFuc2xhdGUoIkNhdGVnb3J5IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuQ2F0ZWdvcnlPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkNhdGVnb3J5SURFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiQSBjYXRlZ29yeSBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkNhdGVnb3J5SURTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiQSBjYXRlZ29yeSBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlN0YXRlSUQiPlslIFRyYW5zbGF0ZSgiU3RhdGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5TdGF0ZU9wdGlvbiAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiU2VydmljZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIFslIElGIERhdGEuU2VydmljZU9wdGlvbiAlXQogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJTZXJ2aWNlSUQiPlslIFRyYW5zbGF0ZSgiU2VydmljZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBFTkQgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGRbJSBJRiAhRGF0YS5LZXkgJV0gTm9NYXJnaW5bJSBFTkQgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5TZXJ2aWNlT3B0aW9uICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJTZXJ2aWNlIikgJV0KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlZhbGlkSUQiPlslIFRyYW5zbGF0ZSgiVmFsaWRpdHkiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5WYWxpZE9wdGlvbiAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiTGFuZ3VhZ2UiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJMYW5ndWFnZUlEIj5bJSBUcmFuc2xhdGUoIkxhbmd1YWdlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuTGFuZ3VhZ2VPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkxhbmd1YWdlIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIk5vTGFuZ3VhZ2UiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJMYW5ndWFnZUlEIiB2YWx1ZT0iWyUgRGF0YS5MYW5ndWFnZUlEIHwgaHRtbCAlXSIvPgpbJSBSZW5kZXJCbG9ja0VuZCgiTm9MYW5ndWFnZSIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBcHByb3ZhbCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkFwcHJvdmVkIj5bJSBUcmFuc2xhdGUoIkFwcHJvdmFsIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuQXBwcm92YWxPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkFwcHJvdmFsIikgJV0KClslIERhdGEuRHluYW1pY0ZpZWxkSFRNTCAlXQoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiQXR0YWNobWVudCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+ClslIElOQ0xVREUgIkZvcm1FbGVtZW50cy9BdHRhY2htZW50TGlzdC50dCIgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KClslIFJlbmRlckJsb2NrU3RhcnQoIkZBUUNvbnRlbnQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJbJSBEYXRhLkZpZWxkIHwgaHRtbCAlXSI+WyUgVHJhbnNsYXRlKERhdGEuQ2FwdGlvbikgfCBodG1sICVdOjxici8+PHNwYW4gY2xhc3M9IkZBUVN0YXRlTmFtZSI+KFslIFRyYW5zbGF0ZShEYXRhLlN0YXRlTmFtZSkgfCBodG1sICVdKTwvc3Bhbj48L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJSaWNoVGV4dEZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBpZD0iWyUgRGF0YS5GaWVsZCB8IGh0bWwgJV0iIGNsYXNzPSJSaWNoVGV4dCIgbmFtZT0iWyUgRGF0YS5GaWVsZCB8IGh0bWwgJV0iIHJvd3M9IjE1IiBjb2xzPSI3MCI+WyUgRGF0YS5Db250ZW50IHwgaHRtbCAlXTwvdGV4dGFyZWE+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJGQVFDb250ZW50IikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkVuZE5vcm1hbCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIFNwYWNpbmdUb3AiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iUHJpbWFyeSBDYWxsRm9yQWN0aW9uIiBpZD0iRkFRU3VibWl0IiB0eXBlPSJidXR0b24iIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlVwZGF0ZSIpIHwgaHRtbCAlXSI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNoZWNrIj48L2k+IFslIFRyYW5zbGF0ZSgiVXBkYXRlIikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkVuZE5vcm1hbCIpICVdCgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+ClslIFJlbmRlckJsb2NrRW5kKCJGQVFFZGl0IikgJV0KICAgICAgICAgICAgICAgIDwvZGl2PgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiRW5kU21hbGwiKSAlXQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRm9vdGVyIj4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJQcmltYXJ5IENhbGxGb3JBY3Rpb24iIGlkPSJGQVFTdWJtaXQiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiVXBkYXRlIikgfCBodG1sICVdIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtY2hlY2stc3F1YXJlLW8iPjwvaT4gWyUgVHJhbnNsYXRlKCJVcGRhdGUiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkVuZFNtYWxsIikgJV0KCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZm9ybT4K</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/AgentFAQExplorer.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgo8ZGl2IGNsYXNzPSJNYWluQm94IEFSSUFSb2xlTWFpbiBGQVEiPgogICAgPGRpdiBjbGFzcz0iQ2xlYXJMZWZ0Ij48L2Rpdj4KICAgIDxoMT5bJSBUcmFuc2xhdGUoIkZBUSBFeHBsb3JlciIpIHwgaHRtbCAlXTwvaDE+CgogICAgPHVsIGNsYXNzPSJCcmVhZENydW1iIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiRkFRUGF0aENhdGVnb3J5RWxlbWVudCIpICVdCiAgICAgICAgPGxpPgogICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWdlbnRGQVFFeHBsb3JlcjtDYXRlZ29yeUlEPVslIERhdGEuQ2F0ZWdvcnlJRCB8IHVyaSAlXTtOYXY9WyUgRGF0YS5OYXYgfCB1cmkgJV0iPgogICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKERhdGEuTmFtZSkgfCBodG1sICVdCiAgICAgICAgICAgIDwvYT4KICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiRkFRUGF0aENhdGVnb3J5RWxlbWVudCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkZBUVBhdGhDYXRlZ29yeUVsZW1lbnROb0xpbmsiKSAlXQogICAgICAgIDxsaT5bJSBUcmFuc2xhdGUoRGF0YS5OYW1lKSB8IGh0bWwgJV08L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiRkFRUGF0aENhdGVnb3J5RWxlbWVudE5vTGluayIpICVdCgogICAgPC91bD4KCiAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgPGRpdiBjbGFzcz0iTGF5b3V0Rml4ZWRTaWRlYmFyIFNpZGViYXJMYXN0Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJTaWRlYmFyQ29sdW1uIFslIERhdGEuU2lkZWJhckNsYXNzIHwgaHRtbCAlXSI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJRdWlja1NlYXJjaCIpICVdCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDxoMz5bJSBUcmFuc2xhdGUoIlNlYXJjaCIpIHwgaHRtbCAlXTwvaDM+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9IkFjdGlvbmxpc3QiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBjbGFzcz0iU2VhcmNoQm94IiBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iWyUgRGF0YS5BY3Rpb24gfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iU2VhcmNoIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iTmF2IiB2YWx1ZT0iWyUgRGF0YS5OYXYgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IkZ1bGx0ZXh0IiB2YWx1ZT0iWyUgRGF0YS5TZWFyY2ggfCBodG1sICVdIiBpZD0iU2VhcmNoIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJTZWFyY2giKSB8IGh0bWwgJV0iLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiU2VhcmNoIikgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXNlYXJjaCI+PC9pPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iSW52aXNpYmxlVGV4dCI+WyUgVHJhbnNsYXRlKCJRdWljayBTZWFyY2giKSB8IGh0bWwgJV08c3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIldpbGRjYXJkcyBhcmUgYWxsb3dlZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZBUVNlYXJjaEJ1dHRvbiBTcGFjaW5nVG9wIiBpZD0iWyUgRGF0YS5BY3Rpb24gfCB1cmkgJV0iIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBEYXRhLkFjdGlvbiB8IHVyaSAlXTtOYXY9WyUgRGF0YS5OYXYgfCB1cmkgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48aSBjbGFzcz0iZmEgZmEtc2VhcmNoIj48L2k+IFslIFRyYW5zbGF0ZSgiQWR2YW5jZWQgU2VhcmNoIikgfCBodG1sICVdPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlF1aWNrU2VhcmNoIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkluZm9Cb3hGQVFNaW5pTGlzdCIpICVdCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoRGF0YS5IZWFkZXIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iVGFibGVsaWtlIEZBUU1pbmlMaXN0Ij4KWyUgUmVuZGVyQmxvY2tTdGFydCgiSW5mb0JveEZBUU1pbmlMaXN0SXRlbVJvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+ClslIFJlbmRlckJsb2NrU3RhcnQoIkluZm9Cb3hGQVFNaW5pTGlzdEl0ZW1Sb3dQb3NpdGlvbk51bWJlciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLk51bWJlciB8IGh0bWwgJV0uClslIFJlbmRlckJsb2NrRW5kKCJJbmZvQm94RkFRTWluaUxpc3RJdGVtUm93UG9zaXRpb25OdW1iZXIiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZ2VudEZBUVpvb207SXRlbUlEPVslIERhdGEuSXRlbUlEIHwgdXJpICVdO05hdj1bJSBEYXRhLk5hdiB8IHVyaSAlXSIgdGl0bGU9IlslIERhdGEuVGl0bGUgfCBodG1sICVdIChbJSBEYXRhLkNhdGVnb3J5TmFtZSB8IGh0bWwgJV0pIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlRpdGxlIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkNhdGVnb3J5U2hvcnROYW1lIHwgdHJ1bmNhdGUoMTUpIHwgaHRtbCAlXSAtIFslIERhdGEuTGFuZ3VhZ2UgfCBodG1sICVdIC0gWyUgVHJhbnNsYXRlKERhdGEuU3RhdGUpIHwgaHRtbCAlXSAtIFslIERhdGEuQ3JlYXRlZCB8IExvY2FsaXplKCJUaW1lU2hvcnQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJJbmZvQm94RkFRTWluaUxpc3RJdGVtUm93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiSW5mb0JveEZBUU1pbmlMaXN0IikgJV0KCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Q29sdW1uIj4KClslIFJlbmRlckJsb2NrU3RhcnQoIlN1YmNhdGVnb3JpZXMiKSAlXQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdSZXN1bHQiKSAlXQoKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJTdWJjYXRlZ29yaWVzIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIiBzdW1tYXJ5PSJGQVEgY2F0ZWdvcmllcyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJOYW1lIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiQ29tbWVudCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlN1YmNhdGVnb3JpZXMiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJGQVEgQXJ0aWNsZXMiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOb0RhdGFGb3VuZE1zZyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiTm8gc3ViY2F0ZWdvcmllcyBmb3VuZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiTm9EYXRhRm91bmRNc2ciKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1Jlc3VsdFJvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJNYXN0ZXJBY3Rpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PGEgY2xhc3M9IkFzQmxvY2sgTWFzdGVyQWN0aW9uTGluayIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07Q2F0ZWdvcnlJRD1bJSBEYXRhLkNhdGVnb3J5SUQgfCB1cmkgJV07TmF2PVslIERhdGEuTmF2IHwgdXJpICVdIj5bJSBUcmFuc2xhdGUoRGF0YS5OYW1lKSB8IGh0bWwgJV08L2E+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIFRyYW5zbGF0ZShEYXRhLkNvbW1lbnQpIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBEYXRhLlN1YkNhdGVnb3J5Q291bnQgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIERhdGEuQXJ0aWNsZUNvdW50IHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3UmVzdWx0Um93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1Jlc3VsdCIpICVdCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlN1YmNhdGVnb3JpZXMiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiRkFRSXRlbUxpc3QiKSAlXQpbJSBEYXRhLkZBUUl0ZW1MaXN0SFRNTCAlXQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiRkFRSXRlbUxpc3QiKSAlXQoKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo=</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/AgentFAQHistory.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgo8ZGl2IGNsYXNzPSJMYXlvdXRQb3B1cCBBUklBUm9sZU1haW4iPgoKICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgPGgxPgogICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkhpc3Rvcnkgb2YiKSB8IGh0bWwgJV0gWyUgQ29uZmlnKCJGQVE6OkZBUUhvb2siKSAlXTogWyUgRGF0YS5OdW1iZXIgfCBodG1sICVdIC0gWyUgRGF0YS5UaXRsZSB8IHRydW5jYXRlKDYwKSB8IGh0bWwgJV0KICAgICAgICA8L2gxPgogICAgICAgIDxwPgogICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0iQ2FuY2VsQ2xvc2VQb3B1cCI+WyUgVHJhbnNsYXRlKCJDbG9zZSIpIHwgaHRtbCAlXTwvYT4KICAgICAgICA8L3A+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiSGlzdG9yeSBDb250ZW50IikgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSIgc3VtbWFyeT0iRkFRIGhpc3RvcnkgZGF0YSB0YWJsZSI+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJBY3Rpb24iKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiVXNlciIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJDcmVhdGV0aW1lIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KClslIFJlbmRlckJsb2NrU3RhcnQoIlJvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoRGF0YS5OYW1lKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5DcmVhdGVkQnkgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuQ3JlYXRlZCB8IExvY2FsaXplKCJUaW1lTG9uZyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiUm93IikgJV0KCiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJGb290ZXIiPgogICAgPC9kaXY+CjwvZGl2Pgo=</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/AgentFAQJournalOverviewSmall.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgo8ZGl2IGlkPSJPdmVydmlld0JvZHkiIGNsYXNzPSJPdmVydmlldyBUaWNrZXRMaXN0Ij4KWyUgUmVuZGVyQmxvY2tTdGFydCgiTm9GQVFGb3VuZCIpICVdCiAgICA8ZGl2IGlkPSJFbXB0eU1lc3NhZ2VTbWFsbCI+CiAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBGQVEgSm91cm5hbCBkYXRhIGZvdW5kLiIpIHwgaHRtbCAlXQogICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJOb0ZBUUZvdW5kIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkRm9ybSIpICVdCiAgICA8dGFibGUgY2xhc3M9IlRhYmxlU21hbGwgTm9DZWxsc3BhY2luZyIgc3VtbWFyeT0iQSBnZW5lcmljIEZBUSB0YWJsZSI+CiAgICAgICAgPHRoZWFkPgogICAgICAgICAgICA8dHI+ClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZE51bWJlckhlYWRlciIpICVdCiAgICAgICAgICAgICAgICA8dGggY2xhc3M9IkZBUU51bWJlciBPdmVydmlld0hlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4+WyUgQ29uZmlnKCJGQVE6OkZBUUhvb2siKSAlXTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvdGg+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmROdW1iZXJIZWFkZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRUaXRsZUhlYWRlciIpICVdCiAgICAgICAgICAgICAgICA8dGggY2xhc3M9IlRpdGxlIE92ZXJ2aWV3SGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICA8c3Bhbj5bJSBUcmFuc2xhdGUoIlRpdGxlIikgfCBodG1sICVdPC9zcGFuPgogICAgICAgICAgICAgICAgPC90aD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZFRpdGxlSGVhZGVyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkQ2F0ZWdvcnlIZWFkZXIiKSAlXQogICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJDYXRlZ29yeSBPdmVydmlld0hlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4+WyUgVHJhbnNsYXRlKCJDYXRlZ29yeSIpIHwgaHRtbCAlXTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvdGg+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRDYXRlZ29yeUhlYWRlciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZE5hbWVIZWFkZXIiKSAlXQogICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJBY3Rpb24gT3ZlcnZpZXdIZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuPlslIFRyYW5zbGF0ZSgiQWN0aW9uIikgfCBodG1sICVdPC9zcGFuPgogICAgICAgICAgICAgICAgPC90aD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZE5hbWVIZWFkZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRUaW1lSGVhZGVyIikgJV0KICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iVGltZSBPdmVydmlld0hlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4+WyUgVHJhbnNsYXRlKCJUaW1lIikgfCBodG1sICVdPC9zcGFuPgogICAgICAgICAgICAgICAgPC90aD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZFRpbWVIZWFkZXIiKSAlXQogICAgICAgICAgICA8L3RyPgogICAgICAgIDwvdGhlYWQ+CiAgICAgICAgPHRib2R5PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmQiKSAlXQogICAgICAgICAgICA8dHIgaWQ9Ikl0ZW1JRF9bJSBEYXRhLkl0ZW1JRCB8IGh0bWwgJV1fWyUgRGF0YS5Db3VudGVyIHwgaHRtbCAlXSIgY2xhc3M9Ik1hc3RlckFjdGlvbiI+ClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZE51bWJlciIpICVdCiAgICAgICAgICAgICAgICA8dGQ+ClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZE51bWJlckxpbmtTdGFydCIpICVdCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFnZW50RkFRWm9vbTtJdGVtSUQ9WyUgRGF0YS5JdGVtSUQgfCB1cmkgJV0iIHRpdGxlPSJbJSBEYXRhLk51bWJlciB8IHVyaSAlXSIgY2xhc3M9Ik1hc3RlckFjdGlvbkxpbmsiPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkTnVtYmVyTGlua1N0YXJ0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5OdW1iZXIgfCBodG1sICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZE51bWJlckxpbmtFbmQiKSAlXQogICAgICAgICAgICAgICAgICAgIDwvYT4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZE51bWJlckxpbmtFbmQiKSAlXQogICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZE51bWJlciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZFRpdGxlIikgJV0KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IHRpdGxlPSJbJSBEYXRhLlN1YmplY3QgfCBodG1sICVdIj5bJSBEYXRhLkNsZWFuU3ViamVjdCB8IGh0bWwgJV08L2Rpdj4KICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRUaXRsZSIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZENhdGVnb3J5IikgJV0KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IHRpdGxlPSJbJSBUcmFuc2xhdGUoRGF0YS5DYXRlZ29yeSkgfCBodG1sICVdIj5bJSBUcmFuc2xhdGUoRGF0YS5DYXRlZ29yeSkgfCBodG1sICVdPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkQ2F0ZWdvcnkiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmROYW1lIikgJV0KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IHRpdGxlPSJbJSBUcmFuc2xhdGUoRGF0YS5BY3Rpb24pIHwgaHRtbCAlXSI+WyUgVHJhbnNsYXRlKERhdGEuQWN0aW9uKSB8IGh0bWwgJV08L2Rpdj4KICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmROYW1lIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkVGltZSIpICVdCiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgPGRpdiB0aXRsZT0iWyUgRGF0YS5DcmVhdGVkIHwgTG9jYWxpemUoIlRpbWVMb25nIikgJV0iPlslIERhdGEuQ3JlYXRlZCB8IExvY2FsaXplKCJUaW1lTG9uZyIpICVdPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkVGltZSIpICVdCiAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmQiKSAlXQogICAgICAgIDwvdGJvZHk+CiAgICA8L3RhYmxlPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkRm9ybSIpICVdCjwvZGl2Pgo=</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/AgentFAQLanguage.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlldyIpICVdCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIExheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyRmlyc3QiPgogICAgPGgxIGNsYXNzPSJJbnZpc2libGVUZXh0Ij5bJSBUcmFuc2xhdGUoIkZBUSBMYW5ndWFnZSBNYW5hZ2VtZW50IikgfCBodG1sICVdPC9oMT4KCiAgICBbJSBCcmVhZGNydW1iUGF0aCA9IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSA9PiBUcmFuc2xhdGUoJ0ZBUSBMYW5ndWFnZSBNYW5hZ2VtZW50JyksCiAgICAgICAgICAgICAgICBMaW5rID0+IEVudigiQWN0aW9uIiksCiAgICAgICAgICAgIH0sCiAgICAgICAgXQogICAgJV0KCiAgICBbJSBTV0lUQ0ggRGF0YS5BY3Rpb24gJV0KICAgICAgICBbJSBDQVNFICdBZGQnICVdCiAgICAgICAgICAgIFslIEJyZWFkY3J1bWJQYXRoLnB1c2goeyBOYW1lID0+IFRyYW5zbGF0ZSgiQWRkIEZBUSBMYW5ndWFnZSIpLH0pICVdCiAgICAgICAgWyUgQ0FTRSAnQ2hhbmdlJyAlXQogICAgICAgICAgICBbJSBVU0UgRWRpdFRpdGxlID0gU3RyaW5nKFRyYW5zbGF0ZSgiRWRpdCBGQVEgTGFuZ3VhZ2UiKSkgJV0KICAgICAgICAgICAgWyUgQnJlYWRjcnVtYlBhdGgucHVzaCh7IE5hbWUgPT4gRWRpdFRpdGxlLmFwcGVuZCggJzogJywgRGF0YS5OYW1lICkgfSkgJV0KICAgIFslIEVORCAlXQoKICAgIFslIElOQ0xVREUgIkJyZWFkY3J1bWIudHQiIFBhdGggPSBCcmVhZGNydW1iUGF0aCBUeXBlID0gIkFnZW50IiAlXQoKICAgIDxkaXYgY2xhc3M9IlNpZGViYXJDb2x1bW4iPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiRGlzYWJsZWQiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJOb3RpY2UiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCBBY3Rpb25MaXN0Ij4KICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0Ij4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJBZG1pblN5c3RlbUNvbmZpZ3VyYXRpb24iLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJWaWV3Ii8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU2V0dGluZyIgdmFsdWU9IkZBUTo6TXVsdGlMYW5ndWFnZSAiLz4KICAgICAgICAgICAgICAgICAgICA8aDM+WyUgVHJhbnNsYXRlKCJUaGlzIGZlYXR1cmUgaXMgZGlzYWJsZWQhIikgfCBodG1sICVdPC9oMz4KICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVXNlIHRoaXMgZmVhdHVyZSBpZiB5b3Ugd2FudCB0byB3b3JrIHdpdGggbXVsdGlwbGUgbGFuZ3VhZ2VzLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIFNwYWNpbmdUb3AiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsU2l6ZSBDZW50ZXIiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiRW5hYmxlIGl0IGhlcmUhIikgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48aSBjbGFzcz0iZmEgZmEtdW5sb2NrLWFsdCI+PC9pPiBbJSBUcmFuc2xhdGUoIkVuYWJsZSBpdCBoZXJlISIpIHwgaHRtbCAlXTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiRGlzYWJsZWQiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uTGlzdCIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJBY3Rpb25zIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJBY3Rpb25MaXN0Ij4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uT3ZlcnZpZXciKSAlXQogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV0iIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtbGVmdCI+PC9pPlslIFRyYW5zbGF0ZSgiR28gdG8gb3ZlcnZpZXciKSB8IGh0bWwgJV08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uT3ZlcnZpZXciKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uQWRkIikgJV0KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1N1YmFjdGlvbj1BZGQiIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48aSBjbGFzcz0iZmEgZmEtcGx1cy1zcXVhcmUiPjwvaT5bJSBUcmFuc2xhdGUoIkFkZCBsYW5ndWFnZSIpIHwgaHRtbCAlXTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25BZGQiKSAlXQogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25MaXN0IikgJV0KICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1Jlc3VsdCIpICVdCiAgICA8ZGl2IGNsYXNzPSJDb250ZW50Q29sdW1uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiTGlzdCIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KCiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSBWYXJpYWJsZVdpZHRoIiBzdW1tYXJ5PSJGQVEgbGFuZ3VhZ2VzIj4KICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIk5hbWUiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiRGVsZXRlIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiTm9EYXRhRm91bmRNc2ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBkYXRhIGZvdW5kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIk5vRGF0YUZvdW5kTXNnIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdSZXN1bHRSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PGEgY2xhc3M9IkFzQmxvY2siIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1N1YmFjdGlvbj1DaGFuZ2U7TGFuZ3VhZ2VJRD1bJSBEYXRhLkxhbmd1YWdlSUQgfCB1cmkgJV0iPlslIERhdGEuTmFtZSB8IGh0bWwgJV08L2E+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iQ2VudGVyIExhc3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJEZWxldGVMYW5ndWFnZUlEWyUgRGF0YS5MYW5ndWFnZUlEIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS10cmFzaC1vIj48L2k+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJJbnZpc2libGVUZXh0Ij5bJSBUcmFuc2xhdGUoIkRlbGV0ZSIpIHwgaHRtbCAlXTogWyUgRGF0YS5OYW1lIHwgaHRtbCAlXTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdSZXN1bHRSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3UmVzdWx0IikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3VXBkYXRlIikgJV0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudENvbHVtbiI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkhlYWRlckFkZCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkFkZCBMYW5ndWFnZSIpIHwgaHRtbCAlXTwvaDI+ClslIFJlbmRlckJsb2NrRW5kKCJIZWFkZXJBZGQiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJIZWFkZXJFZGl0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiRWRpdCBMYW5ndWFnZSIpIHwgaHRtbCAlXTwvaDI+ClslIFJlbmRlckJsb2NrRW5kKCJIZWFkZXJFZGl0IikgJV0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIGNsYXNzPSJWYWxpZGF0ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJbJSBEYXRhLkFjdGlvbiB8IHVyaSAlXUFjdGlvbiIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iTGFuZ3VhZ2VJRCIgdmFsdWU9IlslIERhdGEuTGFuZ3VhZ2VJRCB8IGh0bWwgJV0iLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJOYW1lIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIk5hbWUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJOYW1lIiBpZD0iTmFtZSIgdmFsdWU9IlslIERhdGEuTmFtZSB8IGh0bWwgJV0iIGNsYXNzPSJXNTBwYyBWYWxpZGF0ZV9SZXF1aXJlZCBbJSBEYXRhLk5hbWVTZXJ2ZXJFcnJvciB8IGh0bWwgJV0iIG1heGxlbmd0aD0iNTAiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTmFtZUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTmFtZVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoRGF0YS5OYW1lU2VydmVyRXJyb3JNZXNzYWdlKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCBTcGFjaW5nVG9wIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iUHJpbWFyeSBDYWxsRm9yQWN0aW9uIiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlN1Ym1pdCIpIHwgaHRtbCAlXSI+PHNwYW4+WyUgVHJhbnNsYXRlKCJTdWJtaXQiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgib3IiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV0iPlslIFRyYW5zbGF0ZSgiQ2FuY2VsIikgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3VXBkYXRlIikgJV0KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2Pgo8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3IikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkRlbGV0ZSIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIk5vQWZmZWN0ZWRJdGVtcyIpICVdCjxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIFczMDBweCI+CiAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJMYW5ndWFnZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgPHAgY2xhc3M9IlZhbHVlIj4KICAgICAgICBbJSBEYXRhLk5hbWUgfCBodG1sICVdCiAgICA8L3A+CiAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CjwvZmllbGRzZXQ+CjxwIGNsYXNzPSJTcGFjaW5nVG9wIENlbnRlciI+CiAgICBbJSBUcmFuc2xhdGUoIkRvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBsYW5ndWFnZT8iKSB8IGh0bWwgJV0KPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiTm9BZmZlY3RlZEl0ZW1zIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkFmZmVjdGVkSXRlbXMiKSAlXQo8cD4KICAgIFslIFRyYW5zbGF0ZSgiWW91IGNhbiBub3QgZGVsZXRlIHRoaXMgbGFuZ3VhZ2UuIEl0IGlzIHVzZWQgaW4gYXQgbGVhc3Qgb25lIEZBUSBhcnRpY2xlISIpIHwgaHRtbCAlXQo8L3A+CjxwIGNsYXNzPSJTcGFjaW5nVG9wIFNwYWNpbmdCb3R0b20iPgogICAgWyUgVHJhbnNsYXRlKCJUaGlzIGxhbmd1YWdlIGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBGQVEgQXJ0aWNsZShzKSIpIHwgaHRtbCAlXToKPC9wPgoKPHVsPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBZmZlY3RlZEl0ZW1zUm93IikgJV0KICAgIDxsaSBjbGFzcz0iSW5kZW50IFNwYWNpbmdCb3R0b21TbWFsbCI+CiAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdWyUgRGF0YS5MaW5rICVdO0FjdGlvbj1BZ2VudEZBUVpvb207SXRlbUlEPVslIERhdGEuSXRlbUlEIHwgdXJpICVdIj4KICAgICAgICAgICAgWyUgQ29uZmlnKCJGQVE6OkZBUUhvb2siKSAlXTpbJSBEYXRhLk51bWJlciB8IGh0bWwgJV08c3Bhbj4mbmJzcDsmbWRhc2g7PC9zcGFuPiBbJSBEYXRhLlRpdGxlIHwgdHJ1bmNhdGUoNjApIHwgaHRtbCAlXQogICAgICAgIDwvYT4KICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJBZmZlY3RlZEl0ZW1zUm93IikgJV0KPC91bD4KClslIFJlbmRlckJsb2NrRW5kKCJBZmZlY3RlZEl0ZW1zIikgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIkRlbGV0ZSIpICVdCg==</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/AgentFAQOverviewNavBar.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld05hdkJhciIpICVdCjxkaXYgY2xhc3M9Ik92ZXJ2aWV3Qm94IEFSSUFSb2xlTWFpbiBbJSBEYXRhLlZpZXcgfCBodG1sICVdIj4KICAgIDxoMT5bJSBUcmFuc2xhdGUoRGF0YS5UaXRsZU5hbWUpIHwgaHRtbCAlXTogWyUgVHJhbnNsYXRlKERhdGEuVGl0bGVWYWx1ZSkgfCBodG1sICVdPC9oMT4KClslIERhdGEuRGF0YUluVGhlTWlkZGxlICVdCgogICAgPGRpdiBjbGFzcz0iT3ZlcnZpZXdDb250cm9sIiBpZD0iT3ZlcnZpZXdDb250cm9sIj4KICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250cm9sUm93Ij4KWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdOYXZCYXJGaWx0ZXIiKSAlXQogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJUYWJzIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdOYXZCYXJGaWx0ZXJJdGVtIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdOYXZCYXJGaWx0ZXJJdGVtU2VsZWN0ZWQiKSAlXQogICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iQWN0aXZlIFslIERhdGEuQ1NTIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1slIERhdGEuRmlsdGVyTGluayAlXUZpbHRlcj1bJSBEYXRhLkZpbHRlciB8IHVyaSAlXSI+WyUgVHJhbnNsYXRlKERhdGEuTmFtZSkgfCBodG1sICVdPHNwYW4+WyUgRGF0YS5Db3VudCB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld05hdkJhckZpbHRlckl0ZW1TZWxlY3RlZCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3TmF2QmFyRmlsdGVySXRlbVNlbGVjdGVkTm90IikgJV0KICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9IlslIERhdGEuQ1NTIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1slIERhdGEuRmlsdGVyTGluayAlXUZpbHRlcj1bJSBEYXRhLkZpbHRlciB8IHVyaSAlXSI+WyUgVHJhbnNsYXRlKERhdGEuTmFtZSkgfCBodG1sICVdPHNwYW4+WyUgRGF0YS5Db3VudCB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld05hdkJhckZpbHRlckl0ZW1TZWxlY3RlZE5vdCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3TmF2QmFyRmlsdGVySXRlbVNwbGl0IikgJV0KICAgICAgICAgICAgICAgICAgICAtClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld05hdkJhckZpbHRlckl0ZW1TcGxpdCIpICVdClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld05hdkJhckZpbHRlckl0ZW0iKSAlXQogICAgICAgICAgICAgICAgPC91bD4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3TmF2QmFyRmlsdGVyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdOYXZCYXJQYWdlQmFjayIpICVdCiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9IlRhYnMiPgogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaWQ9IlslIERhdGEuTGlua0JhY2tJRCB8IHVyaSAlXSIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WyUgRGF0YS5MaW5rQmFjayB8IGh0bWwgJV0iPlslIFRyYW5zbGF0ZSgiQ2hhbmdlIHNlYXJjaCBvcHRpb25zIikgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdOYXZCYXJQYWdlQmFjayIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDb250ZXh0U2V0dGluZ3MiKSAlXQogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJDb250ZXh0RnVuY3Rpb25zIj4KICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9IkNvbnRleHRTZXR0aW5ncyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJTaG93Q29udGV4dFNldHRpbmdzRGlhbG9nIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJDb250ZXh0IFNldHRpbmdzIikgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1jb2ciPjwvaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlslIFRyYW5zbGF0ZSgiQ29udGV4dCBTZXR0aW5ncyIpIHwgaHRtbCAlXTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgoKICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkNvbnRleHRTZXR0aW5nc0RpYWxvZ0NvbnRhaW5lciIgY2xhc3M9IkhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIGlkPSJDb250ZXh0U2V0dGluZ3NEaWFsb2ciPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJBZ2VudFByZWZlcmVuY2VzIi8+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlVwZGF0ZSIvPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJHcm91cCIgdmFsdWU9IlslIERhdGEuR3JvdXAgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlJlZGlyZWN0VVJMIiB2YWx1ZT0iWyUgRGF0YS5SZXF1ZXN0ZWRVUkwgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlslIERhdGEuUHJlZmVyZW5jZXNLZXkgfCBodG1sICVdIj5bJSBUcmFuc2xhdGUoIkZBUSBhcnRpY2xlcyBwZXIgcGFnZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuUGFnZVNob3duU3RyaW5nICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkNvbnRleHRTZXR0aW5ncyIpICVdCgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQWN0aW9uUm93Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Ik92ZXJ2aWV3QWN0aW9ucyI+CiAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5BY3Rpb25Sb3cgJV0KICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9Ik92ZXJ2aWV3Wm9vbSI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld05hdkJhclZpZXdNb2RlIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdOYXZCYXJWaWV3TW9kZVNlbGVjdGVkIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJBY3RpdmUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9IlslIERhdGEuTmFtZSB8IGh0bWwgJV0iIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO0ZpbHRlcj1bJSBEYXRhLkZpbHRlciB8IHVyaSAlXTtWaWV3PVslIERhdGEuVmlldyB8IHVyaSAlXTtbJSBEYXRhLkxpbmtGaWx0ZXIgfCBodG1sICVdIiB0aXRsZT0iWyUgVHJhbnNsYXRlKERhdGEuTmFtZSkgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoRGF0YS5OYW1lU2hvcnQpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdOYXZCYXJWaWV3TW9kZVNlbGVjdGVkIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdOYXZCYXJWaWV3TW9kZU5vdFNlbGVjdGVkIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9IlslIERhdGEuTmFtZSB8IGh0bWwgJV0iIG5hbWU9Ik92ZXJ2aWV3Q29udHJvbCIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07RmlsdGVyPVslIERhdGEuRmlsdGVyIHwgdXJpICVdO1ZpZXc9WyUgRGF0YS5WaWV3IHwgdXJpICVdO1slIERhdGEuTGlua0ZpbHRlciAlXSIgdGl0bGU9IlslIFRyYW5zbGF0ZShEYXRhLk5hbWUpIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IkltYWdlTW9kZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJOYW1lU2hvcnQiPlslIFRyYW5zbGF0ZShEYXRhLk5hbWVTaG9ydCkgfCBodG1sICVdPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iTmFtZUxvbmciPlslIFRyYW5zbGF0ZShEYXRhLk5hbWUpIHwgaHRtbCAlXTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld05hdkJhclZpZXdNb2RlTm90U2VsZWN0ZWQiKSAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdOYXZCYXJWaWV3TW9kZSIpICVdCiAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iUGFnaW5hdGlvbiI+ClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3TmF2QmFyUGFnZU5hdkJhciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuUmVzdWx0TG9uZyAlXQogICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlNpdGVOYXZCYXJMb25nICVdClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld05hdkJhclBhZ2VOYXZCYXIiKSAlXQogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhckxlZnQiPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiMgc29ydCBvcmRlciBiYXIgaWYgbmVlZGVkCiAgICAgICAgICAgICAgICBbJSBEYXRhLlNvcnRPcmRlckJhciAlXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3TmF2QmFyIikgJV0K</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/AgentFAQOverviewSmall.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgo8ZGl2IGlkPSJPdmVydmlld0JvZHkiIGNsYXNzPSJPdmVydmlldyBUaWNrZXRMaXN0Ij4KWyUgUmVuZGVyQmxvY2tTdGFydCgiTm9GQVFGb3VuZCIpICVdCiAgICA8ZGl2IGlkPSJFbXB0eU1lc3NhZ2VTbWFsbCI+CiAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBGQVEgZGF0YSBmb3VuZC4iKSB8IGh0bWwgJV0KICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiTm9GQVFGb3VuZCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZEZvcm0iKSAlXQogICAgPHRhYmxlIGNsYXNzPSJUYWJsZVNtYWxsIE5vQ2VsbHNwYWNpbmciPgogICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgPHRyPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmROdW1iZXJIZWFkZXIiKSAlXQogICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJGQVFOdW1iZXIgWyUgRGF0YS5DU1MgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtbJSBEYXRhLkxpbmtTb3J0ICVdO1NvcnRCeT1GQVFJRDtPcmRlckJ5PVslIERhdGEuT3JkZXJCeSB8IHVyaSAlXSI+WyUgQ29uZmlnKCJGQVE6OkZBUUhvb2siKSAlXTwvYT4KICAgICAgICAgICAgICAgIDwvdGg+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmROdW1iZXJIZWFkZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRUaXRsZUhlYWRlciIpICVdCiAgICAgICAgICAgICAgICA8dGggY2xhc3M9IlRpdGxlIFslIERhdGEuQ1NTIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WyUgRGF0YS5MaW5rU29ydCAlXTtTb3J0Qnk9VGl0bGU7T3JkZXJCeT1bJSBEYXRhLk9yZGVyQnkgfCB1cmkgJV0iPlslIFRyYW5zbGF0ZSgiVGl0bGUiKSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgICAgICA8L3RoPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkVGl0bGVIZWFkZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRDYXRlZ29yeUhlYWRlciIpICVdCiAgICAgICAgICAgICAgICA8dGggY2xhc3M9IkNhdGVnb3J5IFslIERhdGEuQ1NTIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WyUgRGF0YS5MaW5rU29ydCAlXTtTb3J0Qnk9Q2F0ZWdvcnk7T3JkZXJCeT1bJSBEYXRhLk9yZGVyQnkgfCB1cmkgJV0iPlslIFRyYW5zbGF0ZSgiQ2F0ZWdvcnkiKSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgICAgICA8L3RoPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkQ2F0ZWdvcnlIZWFkZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRMYW5ndWFnZUhlYWRlciIpICVdCiAgICAgICAgICAgICAgICA8dGggY2xhc3M9Ikxhbmd1YWdlIFslIERhdGEuQ1NTIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WyUgRGF0YS5MaW5rU29ydCAlXTtTb3J0Qnk9TGFuZ3VhZ2U7T3JkZXJCeT1bJSBEYXRhLk9yZGVyQnkgfCB1cmkgJV0iPlslIFRyYW5zbGF0ZSgiTGFuZ3VhZ2UiKSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgICAgICA8L3RoPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkTGFuZ3VhZ2VIZWFkZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRTdGF0ZUhlYWRlciIpICVdCiAgICAgICAgICAgICAgICA8dGggY2xhc3M9IlN0YXRlIFslIERhdGEuQ1NTIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WyUgRGF0YS5MaW5rU29ydCAlXTtTb3J0Qnk9U3RhdGU7T3JkZXJCeT1bJSBEYXRhLk9yZGVyQnkgfCB1cmkgJV0iPlslIFRyYW5zbGF0ZSgiU3RhdGUiKSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgICAgICA8L3RoPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkU3RhdGVIZWFkZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRWYWxpZEhlYWRlciIpICVdCiAgICAgICAgICAgICAgICA8dGggY2xhc3M9IlN0YXRlIFslIERhdGEuQ1NTIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WyUgRGF0YS5MaW5rU29ydCAlXTtTb3J0Qnk9VmFsaWQ7T3JkZXJCeT1bJSBEYXRhLk9yZGVyQnkgfCB1cmkgJV0iPlslIFRyYW5zbGF0ZSgiVmFsaWRpdHkiKSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgICAgICA8L3RoPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkVmFsaWRIZWFkZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRDaGFuZ2VkSGVhZGVyIikgJV0KICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iQ2hhbmdlZCBbJSBEYXRhLkNTUyB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1slIERhdGEuTGlua1NvcnQgJV07U29ydEJ5PUNoYW5nZWQ7T3JkZXJCeT1bJSBEYXRhLk9yZGVyQnkgfCB1cmkgJV0iPlslIFRyYW5zbGF0ZSgiQ2hhbmdlZCIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgIDwvdGg+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmRDaGFuZ2VkSGVhZGVyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkRHluYW1pY0ZpZWxkSGVhZGVyIikgJV0KICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iRHluYW1pY0ZpZWxkIFslIERhdGEuQ1NTIHwgaHRtbCAlXSI+ClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZER5bmFtaWNGaWVsZEhlYWRlclNvcnRhYmxlIikgJV0KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtbJSBEYXRhLkxpbmtTb3J0ICVdO1NvcnRCeT1EeW5hbWljRmllbGRfWyUgRGF0YS5EeW5hbWljRmllbGROYW1lIHwgdXJpICVdO09yZGVyQnk9WyUgRGF0YS5PcmRlckJ5IHwgdXJpICVdIj5bJSBUcmFuc2xhdGUoRGF0YS5MYWJlbCkgfCBodG1sICVdPC9hPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkRHluYW1pY0ZpZWxkSGVhZGVyU29ydGFibGUiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmREeW5hbWljRmllbGRIZWFkZXJOb3RTb3J0YWJsZSIpICVdCiAgICAgICAgICAgICAgICAgICAgPHNwYW4+WyUgVHJhbnNsYXRlKERhdGEuTGFiZWwpIHwgaHRtbCAlXTwvc3Bhbj4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZER5bmFtaWNGaWVsZEhlYWRlck5vdFNvcnRhYmxlIikgJV0KICAgICAgICAgICAgICAgIDwvdGg+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmREeW5hbWljRmllbGRIZWFkZXIiKSAlXQojIGV4YW1wbGUgb2YgaG93IHRvIHVzZSBmaXhlZCBkeW5hbWljIGZpZWxkIGJsb2NrcyBmb3IgY3VzdG9taXphdGlvbnMKIyBOb3RlOiBGaWVsZDEgYW5kIEZpZWxkMiBhcmUgdGhlIG5hbWVzIG9mIHRoZSBmaWVsZHMgYW5kIGhhZCB0byBiZSByZXBsYWNlZCB3aXRoIHRoZSBhY3R1YWwKIyBmaWVsZCBuYW1lcwojWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkRHluYW1pY0ZpZWxkX0ZpZWxkMUhlYWRlciIpICVdCiMgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJEeW5hbWljRmllbGQgWyUgRGF0YS5DU1MgfCBodG1sICVdIj4KI1slIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZER5bmFtaWNGaWVsZF9GaWVsZDFIZWFkZXJTb3J0YWJsZSIpICVdCiMgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1slIERhdGEuTGlua1NvcnQgJV07U29ydEJ5PUR5bmFtaWNGaWVsZF9bJSBEYXRhLkR5bmFtaWNGaWVsZE5hbWUgfCB1cmkgJV07T3JkZXJCeT1bJSBEYXRhLk9yZGVyQnkgfCB1cmkgJV0iPlslIFRyYW5zbGF0ZShEYXRhLkxhYmVsKSB8IGh0bWwgJV08L2E+CiNbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkRHluYW1pY0ZpZWxkX0ZpZWxkMUhlYWRlclNvcnRhYmxlIikgJV0KI1slIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZER5bmFtaWNGaWVsZF9GaWVsZDFIZWFkZXJOb3RTb3J0YWJsZSIpICVdCiMgICAgICAgICAgICAgICAgICAgIDxzcGFuPlslIFRyYW5zbGF0ZShEYXRhLkxhYmVsKSB8IGh0bWwgJV08L3NwYW4+CiNbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkRHluYW1pY0ZpZWxkX0ZpZWxkMUhlYWRlck5vdFNvcnRhYmxlIikgJV0KIyAgICAgICAgICAgICAgICA8L3RoPgojWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZER5bmFtaWNGaWVsZF9GaWVsZDFIZWFkZXIiKSAlXQojWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkRHluYW1pY0ZpZWxkX0ZpZWxkMkhlYWRlciIpICVdCiMgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJEeW5hbWljRmllbGQgWyUgRGF0YS5DU1MgfCBodG1sICVdIj4KI1slIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZER5bmFtaWNGaWVsZF9GaWVsZDJIZWFkZXJTb3J0YWJsZSIpICVdCiMgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1slIERhdGEuTGlua1NvcnQgJV07U29ydEJ5PUR5bmFtaWNGaWVsZF9bJSBEYXRhLkR5bmFtaWNGaWVsZE5hbWUgfCB1cmkgJV07T3JkZXJCeT1bJSBEYXRhLk9yZGVyQnkgfCB1cmkgJV0iPlslIFRyYW5zbGF0ZShEYXRhLkxhYmVsKSB8IGh0bWwgJV08L2E+CiNbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkRHluYW1pY0ZpZWxkX0ZpZWxkMkhlYWRlclNvcnRhYmxlIikgJV0KI1slIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZER5bmFtaWNGaWVsZF9GaWVsZDJIZWFkZXJOb3RTb3J0YWJsZSIpICVdCiMgICAgICAgICAgICAgICAgICAgIDxzcGFuPlslIFRyYW5zbGF0ZShEYXRhLkxhYmVsKSB8IGh0bWwgJV08L3NwYW4+CiNbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkRHluYW1pY0ZpZWxkX0ZpZWxkMkhlYWRlck5vdFNvcnRhYmxlIikgJV0KIyAgICAgICAgICAgICAgICA8L3RoPgojWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZER5bmFtaWNGaWVsZF9GaWVsZDJIZWFkZXIiKSAlXQogICAgICAgICAgICA8L3RyPgogICAgICAgIDwvdGhlYWQ+CiAgICAgICAgPHRib2R5PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmQiKSAlXQogICAgICAgICAgICA8dHIgaWQ9Ikl0ZW1JRF9bJSBEYXRhLkl0ZW1JRCB8IGh0bWwgJV1fWyUgRGF0YS5Db3VudGVyIHwgaHRtbCAlXSIgY2xhc3M9Ik1hc3RlckFjdGlvblslIElGIERhdGEuVmFsaWRJRCAhPSAxJV0gSW52YWxpZFslIEVORCAlXSIgPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmROdW1iZXIiKSAlXQogICAgICAgICAgICAgICAgPHRkPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmROdW1iZXJMaW5rU3RhcnQiKSAlXQogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZ2VudEZBUVpvb207SXRlbUlEPVslIERhdGEuSXRlbUlEIHwgdXJpICVdO05hdj1bJSBEYXRhLk5hdiB8IHVyaSAlXSIgdGl0bGU9IlslIERhdGEuTnVtYmVyIHwgdXJpICVdIiBjbGFzcz0iTWFzdGVyQWN0aW9uTGluayI+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmROdW1iZXJMaW5rU3RhcnQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLk51bWJlciB8IGh0bWwgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkTnVtYmVyTGlua0VuZCIpICVdCiAgICAgICAgICAgICAgICAgICAgPC9hPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkTnVtYmVyTGlua0VuZCIpICVdCiAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkTnVtYmVyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkVGl0bGUiKSAlXQogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgIDxkaXYgdGl0bGU9IlslIERhdGEuVGl0bGUgfCBodG1sICVdIj5bJSBEYXRhLkNsZWFuVGl0bGUgfCBodG1sICVdPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkVGl0bGUiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRDYXRlZ29yeSIpICVdCiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgPGRpdiB0aXRsZT0iWyUgVHJhbnNsYXRlKERhdGEuQ2F0ZWdvcnlOYW1lKSB8IGh0bWwgJV0iPlslIFRyYW5zbGF0ZShEYXRhLkNhdGVnb3J5TmFtZSwgIjUwIikgfCBodG1sICVdPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkQ2F0ZWdvcnkiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRMYW5ndWFnZSIpICVdCiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgPGRpdj5bJSBUcmFuc2xhdGUoRGF0YS5MYW5ndWFnZSkgfCBodG1sICVdPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkTGFuZ3VhZ2UiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRTdGF0ZSIpICVdCiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgPGRpdj5bJSBUcmFuc2xhdGUoRGF0YS5TdGF0ZSkgfCBodG1sICVdPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkU3RhdGUiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRWYWxpZCIpICVdCiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgPGRpdj5bJSBUcmFuc2xhdGUoRGF0YS5WYWxpZCkgfCBodG1sICVdPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkVmFsaWQiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRDaGFuZ2VkIikgJV0KICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICA8ZGl2PlslIERhdGEuQ2hhbmdlZCB8IExvY2FsaXplKCJUaW1lU2hvcnQiKSAlXTwvZGl2PgogICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZENoYW5nZWQiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmREeW5hbWljRmllbGQiKSAlXQogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgIDxkaXYgdGl0bGU9IlslIERhdGEuVGl0bGUgfCBodG1sICVdIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkRHluYW1pY0ZpZWxkTGluayIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIERhdGEuTGluayAlXSIgY2xhc3M9IkR5bmFtaWNGaWVsZExpbmsiPlslIERhdGEuVmFsdWUgJV08L2E+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmREeW5hbWljRmllbGRMaW5rIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkRHluYW1pY0ZpZWxkUGxhaW4iKSAlXQogICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlZhbHVlICVdClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmREeW5hbWljRmllbGRQbGFpbiIpICVdCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkRHluYW1pY0ZpZWxkIikgJV0KIyBleGFtcGxlIG9mIGhvdyB0byB1c2UgZml4ZWQgZHluYW1pYyBmaWVsZCBibG9ja3MgZm9yIGN1c3RvbWl6YXRpb25zCiMgTm90ZTogRmllbGQxIGFuZCBGaWVsZDIgYXJlIHRoZSBuYW1lcyBvZiB0aGUgZmllbGRzIGFuZCBoYWQgdG8gYmUgcmVwbGFjZWQgd2l0aCB0aGUgYWN0dWFsCiMgZmllbGQgbmFtZXMKI1slIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZER5bmFtaWNGaWVsZF9GaWVsZDEiKSAlXQojICAgICAgICAgICAgICAgIDx0ZD4KIyAgICAgICAgICAgICAgICAgICAgPGRpdiB0aXRsZT0iWyUgRGF0YS5UaXRsZSB8IGh0bWwgJV0iPgojWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkRHluYW1pY0ZpZWxkX0ZpZWxkMV9MaW5rIikgJV0KIyAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIERhdGEuTGluayAlXSIgY2xhc3M9IkR5bmFtaWNGaWVsZExpbmsiPlslIERhdGEuVmFsdWUgJV08L2E+CiNbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkRHluYW1pY0ZpZWxkX0ZpZWxkMV9MaW5rIikgJV0KI1slIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZER5bmFtaWNGaWVsZF9GaWVsZDFfUGxhaW4iKSAlXQojICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5WYWx1ZSAlXQojWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZER5bmFtaWNGaWVsZF9GaWVsZDFfUGxhaW4iKSAlXQojICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KIyAgICAgICAgICAgICAgICA8L3RkPgojWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZER5bmFtaWNGaWVsZF9GaWVsZDEiKSAlXQojWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkRHluYW1pY0ZpZWxkX0ZpZWxkMiIpICVdCiMgICAgICAgICAgICAgICAgPHRkPgojICAgICAgICAgICAgICAgICAgICA8ZGl2IHRpdGxlPSJbJSBEYXRhLlRpdGxlIHwgaHRtbCAlXSI+CiNbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmREeW5hbWljRmllbGRfRmllbGQyX0xpbmsiKSAlXQojICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRGF0YS5MaW5rICVdIiBjbGFzcz0iRHluYW1pY0ZpZWxkTGluayI+WyUgRGF0YS5WYWx1ZSAlXTwvYT4KI1slIFJlbmRlckJsb2NrRW5kKCJSZWNvcmREeW5hbWljRmllbGRfRmllbGQyX0xpbmsiKSAlXQojWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkRHluYW1pY0ZpZWxkX0ZpZWxkMl9QbGFpbiIpICVdCiMgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlZhbHVlICVdCiNbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkRHluYW1pY0ZpZWxkX0ZpZWxkMl9QbGFpbiIpICVdCiMgICAgICAgICAgICAgICAgICAgIDwvZGl2PgojICAgICAgICAgICAgICAgIDwvdGQ+CiNbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkRHluYW1pY0ZpZWxkX0ZpZWxkMiIpICVdCiAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmQiKSAlXQogICAgICAgIDwvdGJvZHk+CiAgICA8L3RhYmxlPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkRm9ybSIpICVdCjwvZGl2Pgo=</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/AgentFAQSearch.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTZWFyY2hBSkFYIikgJV0KPGRpdiBjbGFzcz0iSW5uZXJDb250ZW50Ij4KICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBpZD0iU2VhcmNoRm9ybSI+CiAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iWyUgRW52KCJBY3Rpb24iKSAlXSIgaWQ9IlNlYXJjaEFjdGlvbiIvPgogICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlNlYXJjaCIvPgogICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkVtcHR5U2VhcmNoIiB2YWx1ZT0iWyUgRGF0YS5FbXB0eVNlYXJjaCB8IGh0bWwgJV0iIGlkPSJFbXB0eVNlYXJjaCIvPgogICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ik5hdiIgdmFsdWU9IlslIERhdGEuTmF2IHwgaHRtbCAlXSIvPgogICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KICAgICAgICAgICAgPGxlZ2VuZD48c3Bhbj5bJSBUcmFuc2xhdGUoIlRlbXBsYXRlcyIpIHwgaHRtbCAlXTwvc3Bhbj48L2xlZ2VuZD4KICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiU2VhcmNoIHRlbXBsYXRlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgIFslIERhdGEuUHJvZmlsZXNTdHJnICVdCiAgICAgICAgICAgICAgICA8ZGl2IGlkPSJTZWFyY2hQcm9maWxlQWRkQmxvY2siPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJOYW1lIiBpZD0iU2VhcmNoUHJvZmlsZUFkZE5hbWUiLz4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJDYWxsRm9yQWN0aW9uIiB0eXBlPSJidXR0b24iIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkNyZWF0ZSBUZW1wbGF0ZSIpIHwgaHRtbCAlXSIgaWQ9IlNlYXJjaFByb2ZpbGVBZGRBY3Rpb24iPjxzcGFuPlslIFRyYW5zbGF0ZSgiQWRkIikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJTZWFyY2hQcm9maWxlTmV3IiBjbGFzcz0iQ2FsbEZvckFjdGlvbiIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiQ3JlYXRlIE5ldyIpIHwgaHRtbCAlXSI+PHNwYW4+WyUgVHJhbnNsYXRlKCJDcmVhdGUgTmV3IikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgoKICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9IlNlYXJjaFByb2ZpbGVEZWxldGUiIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEhpZGRlbiIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiRGVsZXRlIikgfCBodG1sICVdIj48c3Bhbj5bJSBUcmFuc2xhdGUoIkRlbGV0ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiU2F2ZSBjaGFuZ2VzIGluIHRlbXBsYXRlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iU2F2ZVByb2ZpbGUiIGlkPSJTYXZlUHJvZmlsZSIgdmFsdWU9IjEiLz4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9maWVsZHNldD4KICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSIgaWQ9IlNlYXJjaEluc2VydCI+CiAgICAgICAgICAgIDxsZWdlbmQ+PHNwYW4+WyUgVHJhbnNsYXRlKCJGaWx0ZXJzIGluIHVzZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2xlZ2VuZD4KICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KICAgICAgICAgICAgPGxlZ2VuZD48c3Bhbj5bJSBUcmFuc2xhdGUoIkFkZGl0aW9uYWwgZmlsdGVycyIpIHwgaHRtbCAlXTwvc3Bhbj48L2xlZ2VuZD4KICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiQWRkIGFub3RoZXIgYXR0cmlidXRlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgIFslIERhdGEuQXR0cmlidXRlc1N0cmcgJV0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiT3V0cHV0IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgIFslIERhdGEuUmVzdWx0Rm9ybVN0cmcgJV0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9maWVsZHNldD4KICAgIDwvZm9ybT4KCiAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSBIaWRkZW4iIGlkPSJTZWFyY2hBdHRyaWJ1dGVzSGlkZGVuIj4KCiAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgIDxsYWJlbCBmb3I9IkZ1bGx0ZXh0ImlkPSJMYWJlbEZ1bGx0ZXh0Ij5bJSBUcmFuc2xhdGUoIkZ1bGx0ZXh0IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iRnVsbHRleHQiIHZhbHVlPSJbJSBEYXRhLkZ1bGx0ZXh0IHwgaHRtbCAlXSIgY2xhc3M9Ilc1MHBjIiAvPgogICAgICAgICAgICA8YSBjbGFzcz0iUmVtb3ZlQnV0dG9uIiBocmVmPSIjIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJSZW1vdmUgdGhpcyBlbnRyeSIpIHwgaHRtbCAlXSI+PGkgY2xhc3M9ImZhIGZhLW1pbnVzLXNxdWFyZS1vIj48L2k+PHNwYW4gY2xhc3M9IkludmlzaWJsZVRleHQiPlslIFRyYW5zbGF0ZSgiUmVtb3ZlIikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgIDxsYWJlbCBmb3I9Ik51bWJlciIgaWQ9IkxhYmVsTnVtYmVyIj5bJSBDb25maWcoIkZBUTo6RkFRSG9vayIpICVdIFslIFRyYW5zbGF0ZSgiKGUuIGcuIDEwKjUxNTUgb3IgMTA1NjU4KikiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJOdW1iZXIiIHZhbHVlPSJbJSBEYXRhLk51bWJlciB8IGh0bWwgJV0iIGNsYXNzPSJXNTBwYyIvPgogICAgICAgICAgICA8YSBjbGFzcz0iUmVtb3ZlQnV0dG9uIiBocmVmPSIjIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJSZW1vdmUgdGhpcyBlbnRyeSIpIHwgaHRtbCAlXSI+PGkgY2xhc3M9ImZhIGZhLW1pbnVzLXNxdWFyZS1vIj48L2k+PHNwYW4gY2xhc3M9IkludmlzaWJsZVRleHQiPlslIFRyYW5zbGF0ZSgiUmVtb3ZlIikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgIDxsYWJlbCBmb3I9IlRpdGxlIiBpZD0iTGFiZWxUaXRsZSI+WyUgVHJhbnNsYXRlKCJUaXRsZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IlRpdGxlIiB2YWx1ZT0iWyUgRGF0YS5UaXRsZSB8IGh0bWwgJV0iIGNsYXNzPSJXNTBwYyIvPgogICAgICAgICAgICA8YSBjbGFzcz0iUmVtb3ZlQnV0dG9uIiBocmVmPSIjIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJSZW1vdmUgdGhpcyBlbnRyeSIpIHwgaHRtbCAlXSI+PGkgY2xhc3M9ImZhIGZhLW1pbnVzLXNxdWFyZS1vIj48L2k+PHNwYW4gY2xhc3M9IkludmlzaWJsZVRleHQiPlslIFRyYW5zbGF0ZSgiUmVtb3ZlIikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgIDxsYWJlbCBmb3I9IktleXdvcmQiIGlkPSJMYWJlbEtleXdvcmQiPlslIFRyYW5zbGF0ZSgiS2V5d29yZCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IktleXdvcmQiIHZhbHVlPSJbJSBEYXRhLktleXdvcmQgfCBodG1sICVdIiBjbGFzcz0iVzUwcGMiLz4KICAgICAgICAgICAgPGEgY2xhc3M9IlJlbW92ZUJ1dHRvbiIgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiUmVtb3ZlIHRoaXMgZW50cnkiKSB8IGh0bWwgJV0iPjxpIGNsYXNzPSJmYSBmYS1taW51cy1zcXVhcmUtbyI+PC9pPjxzcGFuIGNsYXNzPSJJbnZpc2libGVUZXh0Ij5bJSBUcmFuc2xhdGUoIlJlbW92ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICA8bGFiZWwgZm9yPSJWYWxpZElEcyIgaWQ9IkxhYmVsVmFsaWRJRHMiPlslIFRyYW5zbGF0ZSgiVmFsaWRpdHkiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgIFslIERhdGEuVmFsaWRTZWxlY3Rpb25TdHJnICVdCiAgICAgICAgICAgIDxhIGNsYXNzPSJSZW1vdmVCdXR0b24iIGhyZWY9IiMiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlJlbW92ZSB0aGlzIGVudHJ5IikgfCBodG1sICVdIj48aSBjbGFzcz0iZmEgZmEtbWludXMtc3F1YXJlLW8iPjwvaT48c3BhbiBjbGFzcz0iSW52aXNpYmxlVGV4dCI+WyUgVHJhbnNsYXRlKCJSZW1vdmUiKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgPGxhYmVsIGZvcj0iTGFuZ3VhZ2VJRHMiIGlkPSJMYWJlbExhbmd1YWdlSURzIj5bJSBUcmFuc2xhdGUoIkxhbmd1YWdlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICBbJSBEYXRhLkxhbmd1YWdlc1NlbGVjdGlvblN0cmcgJV0KICAgICAgICAgICAgPGEgY2xhc3M9IlJlbW92ZUJ1dHRvbiIgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiUmVtb3ZlIHRoaXMgZW50cnkiKSB8IGh0bWwgJV0iPjxpIGNsYXNzPSJmYSBmYS1taW51cy1zcXVhcmUtbyI+PC9pPjxzcGFuIGNsYXNzPSJJbnZpc2libGVUZXh0Ij5bJSBUcmFuc2xhdGUoIlJlbW92ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICA8bGFiZWwgZm9yPSJDYXRlZ29yeUlEcyIgaWQ9IkxhYmVsQ2F0ZWdvcnlJRHMiPlslIFRyYW5zbGF0ZSgiQ2F0ZWdvcnkiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgIFslIERhdGEuQ2F0ZWdvcmllc1NlbGVjdGlvblN0cmcgJV0KICAgICAgICAgICAgPGEgY2xhc3M9IlJlbW92ZUJ1dHRvbiIgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiUmVtb3ZlIHRoaXMgZW50cnkiKSB8IGh0bWwgJV0iPjxpIGNsYXNzPSJmYSBmYS1taW51cy1zcXVhcmUtbyI+PC9pPjxzcGFuIGNsYXNzPSJJbnZpc2libGVUZXh0Ij5bJSBUcmFuc2xhdGUoIlJlbW92ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICA8bGFiZWwgZm9yPSJTdGF0ZUlEcyIgaWQ9IkxhYmVsU3RhdGVJRHMiPlslIFRyYW5zbGF0ZSgiU3RhdGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgIFslIERhdGEuU3RhdGVTZWxlY3Rpb25TdHJnICVdCiAgICAgICAgICAgIDxhIGNsYXNzPSJSZW1vdmVCdXR0b24iIGhyZWY9IiMiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlJlbW92ZSB0aGlzIGVudHJ5IikgfCBodG1sICVdIj48aSBjbGFzcz0iZmEgZmEtbWludXMtc3F1YXJlLW8iPjwvaT48c3BhbiBjbGFzcz0iSW52aXNpYmxlVGV4dCI+WyUgVHJhbnNsYXRlKCJSZW1vdmUiKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgPGxhYmVsIGZvcj0iVm90ZVNlYXJjaFR5cGUiIGlkPSJMYWJlbFZvdGVTZWFyY2hUeXBlIj5bJSBUcmFuc2xhdGUoIlZvdGUgKGUuIGcuIEVxdWFscyAxMCBvciBHcmVhdGVyVGhhbiA2MCkiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgIFslIERhdGEuVm90ZVNlYXJjaFR5cGVTZWxlY3Rpb25TdHJnICVdCiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJWb3RlU2VhcmNoIiB2YWx1ZT0iWyUgRGF0YS5Wb3RlU2VhcmNoIHwgaHRtbCAlXSIgY2xhc3M9IlcyNXBjIi8+CiAgICAgICAgICAgIDxhIGNsYXNzPSJSZW1vdmVCdXR0b24iIGhyZWY9IiMiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlJlbW92ZSB0aGlzIGVudHJ5IikgfCBodG1sICVdIj48aSBjbGFzcz0iZmEgZmEtbWludXMtc3F1YXJlLW8iPjwvaT48c3BhbiBjbGFzcz0iSW52aXNpYmxlVGV4dCI+WyUgVHJhbnNsYXRlKCJSZW1vdmUiKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgPGxhYmVsIGZvcj0iUmF0ZVNlYXJjaFR5cGUiIGlkPSJMYWJlbFJhdGVTZWFyY2hUeXBlIj5bJSBUcmFuc2xhdGUoIlJhdGUgKGUuIGcuIEVxdWFscyAyNSUgb3IgR3JlYXRlclRoYW4gNzUlKSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgWyUgRGF0YS5SYXRlU2VhcmNoVHlwZVNlbGVjdGlvblN0cmcgJV0KICAgICAgICAgICAgWyUgRGF0YS5SYXRlU2VhcmNoU2VsZWN0aW9uU3RyZyAlXQogICAgICAgICAgICA8YSBjbGFzcz0iUmVtb3ZlQnV0dG9uIiBocmVmPSIjIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJSZW1vdmUgdGhpcyBlbnRyeSIpIHwgaHRtbCAlXSI+PGkgY2xhc3M9ImZhIGZhLW1pbnVzLXNxdWFyZS1vIj48L2k+PHNwYW4gY2xhc3M9IkludmlzaWJsZVRleHQiPlslIFRyYW5zbGF0ZSgiUmVtb3ZlIikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgIDxsYWJlbCBmb3I9IkFwcHJvdmVkU2VhcmNoIiBpZD0iTGFiZWxBcHByb3ZlZFNlYXJjaCI+WyUgVHJhbnNsYXRlKCJBcHByb3ZlZCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgWyUgRGF0YS5BcHByb3ZlZFN0cmcgJV0KICAgICAgICAgICAgPGEgY2xhc3M9IlJlbW92ZUJ1dHRvbiIgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiUmVtb3ZlIHRoaXMgZW50cnkiKSB8IGh0bWwgJV0iPjxpIGNsYXNzPSJmYSBmYS1taW51cy1zcXVhcmUtbyI+PC9pPjxzcGFuIGNsYXNzPSJJbnZpc2libGVUZXh0Ij5bJSBUcmFuc2xhdGUoIlJlbW92ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICA8bGFiZWwgZm9yPSJDcmVhdGVkVXNlcklEcyIgaWQ9IkxhYmVsQ3JlYXRlZFVzZXJJRHMiPlslIFRyYW5zbGF0ZSgiQ3JlYXRlZCBieSIpIHwgaHRtbCAlXSBbJSBUcmFuc2xhdGUoIkFnZW50IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICBbJSBEYXRhLkNyZWF0ZWRVc2VyU3RyZyAlXQogICAgICAgICAgICA8YSBjbGFzcz0iUmVtb3ZlQnV0dG9uIiBocmVmPSIjIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJSZW1vdmUgdGhpcyBlbnRyeSIpIHwgaHRtbCAlXSI+PGkgY2xhc3M9ImZhIGZhLW1pbnVzLXNxdWFyZS1vIj48L2k+PHNwYW4gY2xhc3M9IkludmlzaWJsZVRleHQiPlslIFRyYW5zbGF0ZSgiUmVtb3ZlIikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgIDxsYWJlbCBmb3I9Ikxhc3RDaGFuZ2VkVXNlcklEcyIgaWQ9IkxhYmVsTGFzdENoYW5nZWRVc2VySURzIj5bJSBUcmFuc2xhdGUoIkxhc3QgY2hhbmdlZCBieSIpIHwgaHRtbCAlXSBbJSBUcmFuc2xhdGUoIkFnZW50IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICBbJSBEYXRhLkxhc3RDaGFuZ2VkVXNlclN0cmcgJV0KICAgICAgICAgICAgPGEgY2xhc3M9IlJlbW92ZUJ1dHRvbiIgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiUmVtb3ZlIHRoaXMgZW50cnkiKSB8IGh0bWwgJV0iPjxpIGNsYXNzPSJmYSBmYS1taW51cy1zcXVhcmUtbyI+PC9pPjxzcGFuIGNsYXNzPSJJbnZpc2libGVUZXh0Ij5bJSBUcmFuc2xhdGUoIlJlbW92ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICA8bGFiZWwgZm9yPSJJdGVtQ3JlYXRlVGltZVBvaW50IiBpZD0iTGFiZWxJdGVtQ3JlYXRlVGltZVBvaW50Ij5bJSBUcmFuc2xhdGUoIkZBUSBBcnRpY2xlIENyZWF0ZSBUaW1lIChiZWZvcmUvYWZ0ZXIpIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJUaW1lU2VhcmNoVHlwZSIgdmFsdWU9IlRpbWVQb2ludCIgWyUgRGF0YS5pdGVtKCJUaW1lU2VhcmNoVHlwZTo6VGltZVBvaW50IikgJV0vPgogICAgICAgICAgICBbJSBEYXRhLkl0ZW1DcmVhdGVUaW1lUG9pbnRTdGFydFN0cmcgJV0gWyUgRGF0YS5JdGVtQ3JlYXRlVGltZVBvaW50U3RyZyAlXSBbJSBEYXRhLkl0ZW1DcmVhdGVUaW1lUG9pbnRGb3JtYXRTdHJnICVdCiAgICAgICAgICAgIDxhIGNsYXNzPSJSZW1vdmVCdXR0b24iIGhyZWY9IiMiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlJlbW92ZSB0aGlzIGVudHJ5IikgfCBodG1sICVdIj48aSBjbGFzcz0iZmEgZmEtbWludXMtc3F1YXJlLW8iPjwvaT48c3BhbiBjbGFzcz0iSW52aXNpYmxlVGV4dCI+WyUgVHJhbnNsYXRlKCJSZW1vdmUiKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgPGxhYmVsIGZvcj0iSXRlbUNyZWF0ZVRpbWVTbG90IiBpZD0iTGFiZWxJdGVtQ3JlYXRlVGltZVNsb3QiPlslIFRyYW5zbGF0ZSgiRkFRIEFydGljbGUgQ3JlYXRlIFRpbWUgKGJldHdlZW4pIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJUaW1lU2VhcmNoVHlwZSIgdmFsdWU9IlRpbWVTbG90IiBbJSBEYXRhLml0ZW0oIlRpbWVTZWFyY2hUeXBlOjpUaW1lU2xvdCIpICVdLz4KICAgICAgICAgICAgWyUgRGF0YS5JdGVtQ3JlYXRlVGltZVN0YXJ0U3RyZyAlXSBbJSBUcmFuc2xhdGUoImFuZCIpIHwgaHRtbCAlXSBbJSBEYXRhLkl0ZW1DcmVhdGVUaW1lU3RvcFN0cmcgJV0KICAgICAgICAgICAgPGEgY2xhc3M9IlJlbW92ZUJ1dHRvbiIgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiUmVtb3ZlIHRoaXMgZW50cnkiKSB8IGh0bWwgJV0iPjxpIGNsYXNzPSJmYSBmYS1taW51cy1zcXVhcmUtbyI+PC9pPjxzcGFuIGNsYXNzPSJJbnZpc2libGVUZXh0Ij5bJSBUcmFuc2xhdGUoIlJlbW92ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICA8bGFiZWwgZm9yPSJJdGVtQ2hhbmdlVGltZVBvaW50IiBpZD0iTGFiZWxJdGVtQ2hhbmdlVGltZVBvaW50Ij5bJSBUcmFuc2xhdGUoIkZBUSBBcnRpY2xlIENoYW5nZSBUaW1lIChiZWZvcmUvYWZ0ZXIpIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJDaGFuZ2VUaW1lU2VhcmNoVHlwZSIgdmFsdWU9IlRpbWVQb2ludCIgWyUgRGF0YS5pdGVtKCJDaGFuZ2VUaW1lU2VhcmNoVHlwZTo6VGltZVBvaW50IikgJV0vPgogICAgICAgICAgICBbJSBEYXRhLkl0ZW1DaGFuZ2VUaW1lUG9pbnRTdGFydFN0cmcgJV0gWyUgRGF0YS5JdGVtQ2hhbmdlVGltZVBvaW50U3RyZyAlXSBbJSBEYXRhLkl0ZW1DaGFuZ2VUaW1lUG9pbnRGb3JtYXRTdHJnICVdCiAgICAgICAgICAgIDxhIGNsYXNzPSJSZW1vdmVCdXR0b24iIGhyZWY9IiMiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlJlbW92ZSB0aGlzIGVudHJ5IikgfCBodG1sICVdIj48aSBjbGFzcz0iZmEgZmEtbWludXMtc3F1YXJlLW8iPjwvaT48c3BhbiBjbGFzcz0iSW52aXNpYmxlVGV4dCI+WyUgVHJhbnNsYXRlKCJSZW1vdmUiKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgPGxhYmVsIGZvcj0iSXRlbUNoYW5nZVRpbWVTbG90IiBpZD0iTGFiZWxJdGVtQ2hhbmdlVGltZVNsb3QiPlslIFRyYW5zbGF0ZSgiRkFRIEFydGljbGUgQ2hhbmdlIFRpbWUgKGJldHdlZW4pIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJDaGFuZ2VUaW1lU2VhcmNoVHlwZSIgdmFsdWU9IlRpbWVTbG90IiBbJSBEYXRhLml0ZW0oIkNoYW5nZVRpbWVTZWFyY2hUeXBlOjpUaW1lU2xvdCIpICVdLz4KICAgICAgICAgICAgWyUgRGF0YS5JdGVtQ2hhbmdlVGltZVN0YXJ0U3RyZyAlXSBbJSBUcmFuc2xhdGUoImFuZCIpIHwgaHRtbCAlXSBbJSBEYXRhLkl0ZW1DaGFuZ2VUaW1lU3RvcFN0cmcgJV0KICAgICAgICAgICAgPGEgY2xhc3M9IlJlbW92ZUJ1dHRvbiIgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiUmVtb3ZlIHRoaXMgZW50cnkiKSB8IGh0bWwgJV0iPjxpIGNsYXNzPSJmYSBmYS1taW51cy1zcXVhcmUtbyI+PC9pPjxzcGFuIGNsYXNzPSJJbnZpc2libGVUZXh0Ij5bJSBUcmFuc2xhdGUoIlJlbW92ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiRHluYW1pY0ZpZWxkIikgJV0KICAgICAgICBbJSBEYXRhLkxhYmVsICVdCiAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICBbJSBEYXRhLkZpZWxkICVdCiAgICAgICAgICAgIDxhIGNsYXNzPSJSZW1vdmVCdXR0b24iIGhyZWY9IiMiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlJlbW92ZSB0aGlzIGVudHJ5IikgfCBodG1sICVdIj48aSBjbGFzcz0iZmEgZmEtbWludXMtc3F1YXJlLW8iPjwvaT48c3BhbiBjbGFzcz0iSW52aXNpYmxlVGV4dCI+WyUgVHJhbnNsYXRlKCJSZW1vdmUiKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJEeW5hbWljRmllbGQiKSAlXQogICAgICAgIFslIERhdGEuQXR0cmlidXRlc09yaWdTdHJnICVdCgogICAgPC9maWVsZHNldD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJDb250ZW50Rm9vdGVyIENlbnRlciI+CiAgICA8YnV0dG9uIGlkPSJTZWFyY2hGb3JtU3VibWl0IiBjbGFzcz0iUHJpbWFyeSBDYWxsRm9yQWN0aW9uIiB2YWx1ZT0iUnVuIHNlYXJjaCI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLXNlYXJjaCI+PC9pPiBbJSBUcmFuc2xhdGUoIlJ1biBzZWFyY2giKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CjwvZGl2PgoKWyUgUmVuZGVyQmxvY2tFbmQoIlNlYXJjaEFKQVgiKSAlXQo=</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/AgentFAQSearchOpenSearchDescriptionFAQNumber.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCjw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04IiA/Pgo8T3BlblNlYXJjaERlc2NyaXB0aW9uIHhtbG5zPSJodHRwOi8vYTkuY29tLy0vc3BlYy9vcGVuc2VhcmNoLzEuMS8iIHhtbG5zOmllPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL1NlYXJjaC8yMDA4LyI+CjxTaG9ydE5hbWU+WyUgQ29uZmlnKCJQcm9kdWN0TmFtZSIpIHwgaHRtbCAlXSAoWyUgQ29uZmlnKCJGQVE6OkZBUUhvb2siKSB8IGh0bWwgJV0pPC9TaG9ydE5hbWU+CjxEZXNjcmlwdGlvbj5bJSBDb25maWcoIlByb2R1Y3ROYW1lIikgfCBodG1sICVdIChbJSBDb25maWcoIkZBUTo6RkFRSG9vayIpIHwgaHRtbCAlXSk8L0Rlc2NyaXB0aW9uPgo8SW5wdXRFbmNvZGluZz5bJSBFbnYoIlVzZXJDaGFyc2V0IikgJV08L0lucHV0RW5jb2Rpbmc+CjxVcmwgdHlwZT0idGV4dC9odG1sIiB0ZW1wbGF0ZT0iWyUgQ29uZmlnKCJIdHRwVHlwZSIpICVdOi8vWyUgQ29uZmlnKCJGUUROIikgJV1bJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWdlbnRGQVFTZWFyY2g7U3ViYWN0aW9uPVNlYXJjaDtOdW1iZXI9e3NlYXJjaFRlcm1zfSIgLz4KPEltYWdlIGhlaWdodD0iMTYiIHdpZHRoPSIxNiIgdHlwZT0iaW1hZ2UveC1pY29uIj5bJSBDb25maWcoIkh0dHBUeXBlIikgJV06Ly9bJSBDb25maWcoIkZRRE4iKSAlXVslIENvbmZpZygiRnJvbnRlbmQ6OkltYWdlUGF0aCIpICVdaWNvbnMvcHJvZHVjdC5pY288L0ltYWdlPgo8L09wZW5TZWFyY2hEZXNjcmlwdGlvbj4K</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/AgentFAQSearchOpenSearchDescriptionFulltext.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCjw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04IiA/Pgo8T3BlblNlYXJjaERlc2NyaXB0aW9uIHhtbG5zPSJodHRwOi8vYTkuY29tLy0vc3BlYy9vcGVuc2VhcmNoLzEuMS8iIHhtbG5zOmllPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL1NlYXJjaC8yMDA4LyI+CjxTaG9ydE5hbWU+WyUgQ29uZmlnKCJQcm9kdWN0TmFtZSIpIHwgaHRtbCAlXSAoWyUgVHJhbnNsYXRlKCJGQVFGdWxsdGV4dCIpIHwgaHRtbCAlXSk8L1Nob3J0TmFtZT4KPERlc2NyaXB0aW9uPlslIENvbmZpZygiUHJvZHVjdE5hbWUiKSB8IGh0bWwgJV0gKFslIFRyYW5zbGF0ZSgiRkFRRnVsbHRleHQiKSB8IGh0bWwgJV0pPC9EZXNjcmlwdGlvbj4KPElucHV0RW5jb2Rpbmc+WyUgRW52KCJVc2VyQ2hhcnNldCIpICVdPC9JbnB1dEVuY29kaW5nPgo8VXJsIHR5cGU9InRleHQvaHRtbCIgdGVtcGxhdGU9IlslIENvbmZpZygiSHR0cFR5cGUiKSAlXTovL1slIENvbmZpZygiRlFETiIpICVdWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFnZW50RkFRU2VhcmNoO1N1YmFjdGlvbj1TZWFyY2g7RnVsbHRleHQ9e3NlYXJjaFRlcm1zfSIgLz4KPEltYWdlIGhlaWdodD0iMTYiIHdpZHRoPSIxNiIgdHlwZT0iaW1hZ2UveC1pY29uIj5bJSBDb25maWcoIkh0dHBUeXBlIikgJV06Ly9bJSBDb25maWcoIkZRRE4iKSAlXVslIENvbmZpZygiRnJvbnRlbmQ6OkltYWdlUGF0aCIpICVdaWNvbnMvcHJvZHVjdC5pY288L0ltYWdlPgo8L09wZW5TZWFyY2hEZXNjcmlwdGlvbj4K</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/AgentFAQSearchSmall.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTZWFyY2giKSAlXQo8ZGl2IGNsYXNzPSJNYWluQm94IEFSSUFSb2xlTWFpbiI+CiAgICA8aDE+WyUgVHJhbnNsYXRlKCJGQVEgU2VhcmNoIikgfCBodG1sICVdPC9oMT4KICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSBDb2xsYXBzZWQiPgogICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldEFjdGlvbiBUb2dnbGUiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiU2hvdyBvciBoaWRlIHRoZSBjb250ZW50IikgfCBodG1sICVdIj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtcmlnaHQiPjwvaT48aSBjbGFzcz0iZmEgZmEtY2FyZXQtZG93biI+PC9pPjwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlByb2ZpbGUgU2VsZWN0aW9uIikgfCBodG1sICVdPC9oMj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgPHVsIGNsYXNzPSJBY3Rpb25MaXN0Ij4KICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgbmFtZT0iY29tcG9zZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iLz4KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iTG9hZFByb2ZpbGUiLz4KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iTmF2IiB2YWx1ZT0iWyUgRGF0YS5OYXYgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlByb2ZpbGUiPlslIFRyYW5zbGF0ZSgiU2VhcmNoIHRlbXBsYXRlIikgfCBodG1sICVdPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5Qcm9maWxlc1N0cmcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBTcGFjaW5nVG9wIiBuYW1lPSJTZWxlY3RUZW1wbGF0ZSIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJTZWxlY3QiKSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNoZWNrIj48L2k+IFslIFRyYW5zbGF0ZSgiU2VsZWN0IikgfCBodG1sICVdPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBTcGFjaW5nVG9wIiBuYW1lPSJFcmFzZVRlbXBsYXRlIiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIkRlbGV0ZSIpIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48aSBjbGFzcz0iZmEgZmEtdHJhc2gtbyI+PC9pPiBbJSBUcmFuc2xhdGUoIkRlbGV0ZSIpIHwgaHRtbCAlXTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNhbGxGb3JBY3Rpb24gU3BhY2luZ1RvcCIgbmFtZT0iU2VhcmNoVGVtcGxhdGUiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiU2VhcmNoIikgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxpIGNsYXNzPSJmYSBmYS1zZWFyY2giPjwvaT4gWyUgVHJhbnNsYXRlKCJTZWFyY2giKSB8IGh0bWwgJV08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iQ29udGVudENvbHVtbiI+CiAgICAgICAgPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIG5hbWU9ImNvbXBvc2UiPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIi8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlNlYXJjaCIvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJOYXYiIHZhbHVlPSJbJSBEYXRhLk5hdiB8IGh0bWwgJV0iLz4KICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UgVGFibGVTbWFsbCI+CiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJGdWxsdGV4dCIgaWQ9IkxhYmVsRnVsbHRleHQiPlslIFRyYW5zbGF0ZSgiRnVsbHRleHQiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iRnVsbHRleHQiIHZhbHVlPSJbJSBEYXRhLkZ1bGx0ZXh0IHwgaHRtbCAlXSIgY2xhc3M9Ilc1MHBjIiAvPgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTnVtYmVyIj5bJSBDb25maWcoIkZBUTo6RkFRSG9vayIpICVdPC9sYWJlbD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdGl0bGU9IlslIENvbmZpZygiRkFROjpGQVFIb29rIikgJV0iIHR5cGU9InRleHQiIG5hbWU9Ik51bWJlciIgaWQ9Ik51bWJlciIgY2xhc3M9Ilc1MHBjIiB2YWx1ZT0iWyUgRGF0YS5OdW1iZXIgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPlslIFRyYW5zbGF0ZSgiZS4gZy4gMTAqNTE1NSBvciAxMDU2NTgqIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iVGl0bGUiPlslIFRyYW5zbGF0ZSgiVGl0bGUiKSB8IGh0bWwgJV08L2xhYmVsPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0aXRsZT0iWyUgVHJhbnNsYXRlKCJUaXRsZSIpIHwgaHRtbCAlXSIgdHlwZT0idGV4dCIgaWQ9IlRpdGxlIiBuYW1lPSJUaXRsZSIgdmFsdWU9IlslIERhdGEuVGl0bGUgfCBodG1sICVdIiBjbGFzcz0iVzUwcGMiIC8+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJLZXl3b3JkIj5bJSBUcmFuc2xhdGUoIktleXdvcmQiKSB8IGh0bWwgJV08L2xhYmVsPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0aXRsZT0iWyUgVHJhbnNsYXRlKCJLZXl3b3JkIikgfCBodG1sICVdIiB0eXBlPSJ0ZXh0IiBpZD0iS2V5d29yZCIgbmFtZT0iS2V5d29yZCIgdmFsdWU9IlslIERhdGEuS2V5d29yZCB8IGh0bWwgJV0iIGNsYXNzPSJXNTBwYyIgLz4KICAgICAgICAgICAgICAgIDwvZGl2PgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiTGFuZ3VhZ2UiKSAlXQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nQ2xlYXInPjwvZGl2PgogICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTGFuZ3VhZ2VJRHMiPlslIFRyYW5zbGF0ZSgiTGFuZ3VhZ2UiKSB8IGh0bWwgJV08L2xhYmVsPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgIFslIERhdGEuTGFuZ3VhZ2VzU2VsZWN0aW9uU3RyZyAlXQogICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJMYW5ndWFnZSIpICVdCgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nQ2xlYXInPjwvZGl2PgogICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iQ2F0ZWdvcnlJRHMiPlslIFRyYW5zbGF0ZSgiQ2F0ZWdvcnkiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkNhdGVnb3JpZXNTZWxlY3Rpb25TdHJnICVdCiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdDbGVhcic+PC9kaXY+CiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJWYWxpZElEcyI+WyUgVHJhbnNsYXRlKCJWYWxpZGl0eSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgIFslIERhdGEuVmFsaWRTZWxlY3Rpb25TdHJnICVdCiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdDbGVhcic+PC9kaXY+CiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJTdGF0ZUlEcyI+WyUgVHJhbnNsYXRlKCJTdGF0ZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgIFslIERhdGEuU3RhdGVTZWxlY3Rpb25TdHJnICVdCiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdDbGVhcic+PC9kaXY+CiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJBcHByb3ZlZFNlYXJjaCIgPlslIFRyYW5zbGF0ZSgiQXBwcm92ZWQiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkFwcHJvdmVkU3RyZyAlXQogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nQ2xlYXInPjwvZGl2PgogICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTm9Wb3RlU2V0Ij5bJSBUcmFuc2xhdGUoIlZvdGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdGl0bGU9IlslIFRyYW5zbGF0ZSgiTm8gdm90ZSBzZXR0aW5ncyIpIHwgaHRtbCAlXSIgdHlwZT0icmFkaW8iICBpZD0iTm9Wb3RlU2V0IiBuYW1lPSJWb3RlU2VhcmNoT3B0aW9uIiB2YWx1ZT0iIiBbJSBEYXRhLml0ZW0oIlZvdGVTZWFyY2hPcHRpb246Ok5vbmUiKSAlXSAvPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiQWxsIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdGl0bGU9WyUgVHJhbnNsYXRlKCJTcGVjaWZpYyB2b3RlcyIpIHwgaHRtbCAlXSB0eXBlPSJyYWRpbyIgaWQ9IlZvdGVQb2ludCIgbmFtZT0iVm90ZVNlYXJjaE9wdGlvbiIgIHZhbHVlPSJWb3RlUG9pbnQiIFslIERhdGEuaXRlbSgiVm90ZVNlYXJjaE9wdGlvbjo6Vm90ZVBvaW50IikgJV0gLz4KICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlZvdGVTZWFyY2hUeXBlU2VsZWN0aW9uU3RyZyAlXQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJWb3RlU2VhcmNoIiB2YWx1ZT0iWyUgRGF0YS5Wb3RlU2VhcmNoIHwgaHRtbCAlXSIgY2xhc3M9IlcyNXBjIi8+CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPlslIFRyYW5zbGF0ZSgiZS4gZy4gRXF1YWxzIDEwIG9yIEdyZWF0ZXJUaGFuIDYwIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nQ2xlYXInPjwvZGl2PgogICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTm9SYXRlU2V0Ij5bJSBUcmFuc2xhdGUoIlJhdGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdGl0bGU9IlslIFRyYW5zbGF0ZSgiTm8gcmF0ZSBzZXR0aW5ncyIpIHwgaHRtbCAlXSIgdHlwZT0icmFkaW8iICBpZD0iTm9SYXRlU2V0IiBuYW1lPSJSYXRlU2VhcmNoT3B0aW9uIiB2YWx1ZT0iIiBbJSBEYXRhLml0ZW0oIlJhdGVTZWFyY2hPcHRpb246Ok5vbmUiKSAlXSAvPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiQWxsIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdGl0bGU9WyUgVHJhbnNsYXRlKCJTcGVjaWZpYyByYXRlIikgfCBodG1sICVdIHR5cGU9InJhZGlvIiBpZD0iUmF0ZVBvaW50IiBuYW1lPSJSYXRlU2VhcmNoT3B0aW9uIiAgdmFsdWU9IlJhdGVQb2ludCIgWyUgRGF0YS5pdGVtKCJSYXRlU2VhcmNoT3B0aW9uOjpWb3RlUG9pbnQiKSAlXSAvPgogICAgICAgICAgICAgICAgICAgIFslIERhdGEuUmF0ZVNlYXJjaFR5cGVTZWxlY3Rpb25TdHJnICVdCiAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5SYXRlU2VhcmNoU2VsZWN0aW9uU3RyZyAlXQogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj5bJSBUcmFuc2xhdGUoImUuIGcuIEVxdWFscyAyNSUgb3IgR3JlYXRlclRoYW4gNzUlIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nQ2xlYXInPjwvZGl2PgogICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iQ3JlYXRlZFVzZXJJRHMiPlslIFRyYW5zbGF0ZSgiQ3JlYXRlZCBieSIpIHwgaHRtbCAlXSBbJSBUcmFuc2xhdGUoIkFnZW50IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5DcmVhdGVkVXNlclN0cmcgJV0KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J0NsZWFyJz48L2Rpdj4KICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Ikxhc3RDaGFuZ2VkVXNlcklEcyI+WyUgVHJhbnNsYXRlKCJMYXN0IGNoYW5nZWQgYnkiKSB8IGh0bWwgJV0gWyUgVHJhbnNsYXRlKCJBZ2VudCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgIFslIERhdGEuTGFzdENoYW5nZWRVc2VyU3RyZyAlXQogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nQ2xlYXInPjwvZGl2PgogICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iVGltZVNlYXJjaFR5cGUiPlslIFRyYW5zbGF0ZSgiRkFRIEFydGljbGUgQ3JlYXRlIFRpbWUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdGl0bGU9IlslIFRyYW5zbGF0ZSgiTm8gdGltZSBzZXR0aW5ncyIpIHwgaHRtbCAlXSIgdHlwZT0icmFkaW8iIGlkPSJOb1RpbWVTZXQiIG5hbWU9IlRpbWVTZWFyY2hUeXBlIiB2YWx1ZT0iIiBbJSBEYXRhLml0ZW0oIlRpbWVTZWFyY2hUeXBlOjpOb25lIikgJV0gLz4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkFsbCIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHRpdGxlPSJbJSBUcmFuc2xhdGUoIlNwZWNpZmljIGRhdGUiKSB8IGh0bWwgJV0iIHR5cGU9InJhZGlvIiBpZD0iRGF0ZVBvaW50IiBuYW1lPSJUaW1lU2VhcmNoVHlwZSIgIHZhbHVlPSJUaW1lUG9pbnQiIFslIERhdGEuaXRlbSgiVGltZVNlYXJjaFR5cGU6OlRpbWVQb2ludCIpICVdIC8+CiAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5JdGVtQ3JlYXRlVGltZVBvaW50U3RhcnRTdHJnICVdIFslIERhdGEuSXRlbUNyZWF0ZVRpbWVQb2ludFN0cmcgJV0gWyUgRGF0YS5JdGVtQ3JlYXRlVGltZVBvaW50Rm9ybWF0U3RyZyAlXQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHRpdGxlPSJbJSBUcmFuc2xhdGUoIkRhdGUgcmFuZ2UiKSB8IGh0bWwgJV0iIHR5cGU9InJhZGlvIiBpZD0iRGF0ZVJhbmdlIiBuYW1lPSJUaW1lU2VhcmNoVHlwZSIgdmFsdWU9IlRpbWVTbG90IiBbJSBEYXRhLml0ZW0oIlRpbWVTZWFyY2hUeXBlOjpUaW1lU2xvdCIpICVdIC8+CiAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5JdGVtQ3JlYXRlVGltZVN0YXJ0U3RyZyAlXSBbJSBUcmFuc2xhdGUoImFuZCIpIHwgaHRtbCAlXSBbJSBEYXRhLkl0ZW1DcmVhdGVUaW1lU3RvcFN0cmcgJV0KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J0NsZWFyJz48L2Rpdj4KICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkNoYW5nZVRpbWVTZWFyY2hUeXBlIj5bJSBUcmFuc2xhdGUoIkZBUSBBcnRpY2xlIENoYW5nZSBUaW1lIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHRpdGxlPSJbJSBUcmFuc2xhdGUoIk5vIHRpbWUgc2V0dGluZ3MiKSB8IGh0bWwgJV0iIHR5cGU9InJhZGlvIiBpZD0iTm9DaGFuZ2VUaW1lU2V0IiBuYW1lPSJDaGFuZ2VUaW1lU2VhcmNoVHlwZSIgdmFsdWU9IiIgWyUgRGF0YS5pdGVtKCJDaGFuZ2VUaW1lU2VhcmNoVHlwZTo6Tm9uZSIpICVdIC8+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJBbGwiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0aXRsZT0iWyUgVHJhbnNsYXRlKCJTcGVjaWZpYyBkYXRlIikgfCBodG1sICVdIiB0eXBlPSJyYWRpbyIgaWQ9IkNoYW5nZURhdGVQb2ludCIgbmFtZT0iQ2hhbmdlVGltZVNlYXJjaFR5cGUiIHZhbHVlPSJUaW1lUG9pbnQiIFslIERhdGEuaXRlbSgiQ2hhbmdlVGltZVNlYXJjaFR5cGU6OlRpbWVQb2ludCIpICVdIC8+CiAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5JdGVtQ2hhbmdlVGltZVBvaW50U3RhcnRTdHJnICVdIFslIERhdGEuSXRlbUNoYW5nZVRpbWVQb2ludFN0cmcgJV0gWyUgRGF0YS5JdGVtQ2hhbmdlVGltZVBvaW50Rm9ybWF0U3RyZyAlXQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHRpdGxlPSJbJSBUcmFuc2xhdGUoIkRhdGUgcmFuZ2UiKSB8IGh0bWwgJV0iIHR5cGU9InJhZGlvIiBpZD0iQ2hhbmdlRGF0ZVJhbmdlIiBuYW1lPSJDaGFuZ2VUaW1lU2VhcmNoVHlwZSIgdmFsdWU9IlRpbWVTbG90IiBbJSBEYXRhLml0ZW0oIkNoYW5nZVRpbWVTZWFyY2hUeXBlOjpUaW1lU2xvdCIpICVdIC8+CiAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5JdGVtQ2hhbmdlVGltZVN0YXJ0U3RyZyAlXSBbJSBUcmFuc2xhdGUoImFuZCIpIHwgaHRtbCAlXSBbJSBEYXRhLkl0ZW1DaGFuZ2VUaW1lU3RvcFN0cmcgJV0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJEeW5hbWljRmllbGQiKSAlXQogICAgICAgICAgICAgICAgWyUgRGF0YS5MYWJlbCAlXQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgIFslIERhdGEuRmllbGQgJV0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiRHluYW1pY0ZpZWxkIikgJV0KICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UgVGFibGVTbWFsbCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJXNzVwYyBTcGFjaW5nVG9wIEZBUURpdmlkZXIiPjwvZGl2PgogICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iU2F2ZVByb2ZpbGUiPlslIFRyYW5zbGF0ZSgiU2F2ZSBhcyBUZW1wbGF0ZT8iKSB8IGh0bWwgJV08L2xhYmVsPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0aXRsZT0iU2F2ZSBhcyBUZW1wbGF0ZSIgdHlwZT0iY2hlY2tib3giIGlkPSJTYXZlUHJvZmlsZSIgbmFtZT0iU2F2ZVByb2ZpbGUiIC8+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlByb2ZpbGUiPlslIFRyYW5zbGF0ZSgiVGVtcGxhdGUgTmFtZSIpIHwgaHRtbCAlXTwvbGFiZWw+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHRpdGxlPSJQaWNrIGEgcHJvZmlsZSBuYW1lIiB0eXBlPSJ0ZXh0IiBpZD0iUHJvZmlsZSIgbmFtZT0iUHJvZmlsZSIgdmFsdWU9IlslIERhdGEuUHJvZmlsZSB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgPGRpdiBpZD0iQm90dG9tQWN0aW9uUm93IiBjbGFzcz0iQ2VudGVyIFNwYWNpbmdUb3AiPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iU3VibWl0IiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJQcmltYXJ5IENhbGxGb3JBY3Rpb24iIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlNlYXJjaCIpIHwgaHRtbCAlXSI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLXNlYXJjaCI+PC9pPiBbJSBUcmFuc2xhdGUoIlNlYXJjaCIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9mb3JtPgogICAgPC9kaXY+CjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiU2VhcmNoIikgJV0K</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/AgentFAQZoom.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCiMjIG5vZmlsdGVyKFRpZHlBbGw6OlBsdWdpbjo6T1RPQk86OlRUOjpTY3JpcHRVc2FnZSkKCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIj4KICAgIDxkaXYgY2xhc3M9IkNsZWFyTGVmdCI+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJIZWFkbGluZSI+CiAgICAgICAgPGgxIHRpdGxlPSJbJSBDb25maWcoIkZBUTo6RkFRSG9vayIpICVdOiBbJSBEYXRhLk51bWJlciB8IGh0bWwgJV0gJm5kYXNoOyBbJSBEYXRhLlRpdGxlIHwgaHRtbCAlXSI+CiAgICAgICAgICAgIFslIENvbmZpZygiRkFROjpGQVFIb29rIikgJV06IFslIERhdGEuTnVtYmVyICVdIDxzcGFuPiZtZGFzaDs8L3NwYW4+IFslIERhdGEuVGl0bGUgfCBodG1sICVdCiAgICAgICAgPC9oMT4KICAgIDwvZGl2PgoKICAgIDx1bCBjbGFzcz0iQnJlYWRDcnVtYiI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkZBUVBhdGhDYXRlZ29yeUVsZW1lbnQiKSAlXQogICAgICAgIDxsaT4KICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFnZW50RkFRRXhwbG9yZXI7Q2F0ZWdvcnlJRD1bJSBEYXRhLkNhdGVnb3J5SUQgfCB1cmkgJV07TmF2PVslIERhdGEuTmF2IHwgdXJpICVdIj4KICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZShEYXRhLk5hbWUpIHwgaHRtbCAlXQogICAgICAgICAgICA8L2E+CiAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkZBUVBhdGhDYXRlZ29yeUVsZW1lbnQiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJGQVFQYXRoSXRlbUVsZW1lbnQiKSAlXQogICAgICAgIDxsaT5bJSBEYXRhLlRpdGxlIHwgaHRtbCAlXTwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJGQVFQYXRoSXRlbUVsZW1lbnQiKSAlXQogICAgPC91bD4KCiAgICA8ZGl2IGNsYXNzPSJMYXlvdXRGaXhlZFNpZGViYXIgU2lkZWJhckxhc3QiPgogICAgICAgIDxkaXYgY2xhc3M9IlNpZGViYXJDb2x1bW4iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJGQVEgSW5mb3JtYXRpb24iKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSBGaXhlZExhYmVsU21hbGwiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJDYXRlZ29yeSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiIHRpdGxlPSJbJSBUcmFuc2xhdGUoRGF0YS5DYXRlZ29yeU5hbWUpIHwgaHRtbCAlXSI+WyUgVHJhbnNsYXRlKERhdGEuQ2F0ZWdvcnlOYW1lLCAiMTgiKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIEZpeGVkTGFiZWxTbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIktleXdvcmRzIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSI+ClslIFJlbmRlckJsb2NrU3RhcnQoIktleXdvcmRzIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZ2VudEZBUVNlYXJjaDtTdWJhY3Rpb249U2VhcmNoO0tleXdvcmQ9WyUgRGF0YS5LZXl3b3JkIHwgdXJpICVdIiB0aXRsZT0iWyUgRGF0YS5LZXl3b3JkIHwgaHRtbCAlXSI+WyUgRGF0YS5LZXl3b3JkIHwgaHRtbCAlXTwvYT4KWyUgUmVuZGVyQmxvY2tFbmQoIktleXdvcmRzIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSBGaXhlZExhYmVsU21hbGwiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJTdGF0ZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiIHRpdGxlPSJbJSBUcmFuc2xhdGUoRGF0YS5TdGF0ZSkgfCBodG1sICVdIj5bJSBUcmFuc2xhdGUoRGF0YS5TdGF0ZSwgIjI1IikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJWYWxpZGl0eSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiIHRpdGxlPSJbJSBUcmFuc2xhdGUoRGF0YS5WYWxpZCkgfCBodG1sICVdIj5bJSBUcmFuc2xhdGUoRGF0YS5WYWxpZCwgIjI1IikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrU3RhcnQoIkxhbmd1YWdlIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiTGFuZ3VhZ2UiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIiB0aXRsZT0iWyUgVHJhbnNsYXRlKERhdGEuTGFuZ3VhZ2UpIHwgaHRtbCAlXSI+WyUgVHJhbnNsYXRlKERhdGEuTGFuZ3VhZ2UsICIxOCIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiTGFuZ3VhZ2UiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiVmlld0FwcHJvdmFsIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiQXBwcm92YWwiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIiB0aXRsZT0iWyUgVHJhbnNsYXRlKERhdGEuQXBwcm92YWwpIHwgaHRtbCAlXSI+WyUgVHJhbnNsYXRlKERhdGEuQXBwcm92YWwsICIxOCIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiVmlld0FwcHJvdmFsIikgJV0KCiMgc2hvdyBmYXEgZHluYW1pYyBmaWVsZHMKWyUgUmVuZGVyQmxvY2tTdGFydCgiRkFRRHluYW1pY0ZpZWxkIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZShEYXRhLkxhYmVsKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiRkFRRHluYW1pY0ZpZWxkTGluayIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiB0aXRsZT0iWyUgRGF0YS5UaXRsZSB8IGh0bWwgJV0iPjxhIGhyZWY9IlslIERhdGEuTGluayB8IEludGVycG9sYXRlICVdIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9IkR5bmFtaWNGaWVsZExpbmsiPlslIERhdGEuVmFsdWUgJV08L2E+PC9zcGFuPgpbJSBSZW5kZXJCbG9ja0VuZCgiRkFRRHluYW1pY0ZpZWxkTGluayIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkZBUUR5bmFtaWNGaWVsZFBsYWluIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHRpdGxlPSJbJSBEYXRhLlRpdGxlIHwgaHRtbCAlXSI+WyUgRGF0YS5WYWx1ZSAlXTwvc3Bhbj4KWyUgUmVuZGVyQmxvY2tFbmQoIkZBUUR5bmFtaWNGaWVsZFBsYWluIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJGQVFEeW5hbWljRmllbGQiKSAlXQoKIyBleGFtcGxlIG9mIGhvdyB0byB1c2UgZml4ZWQgZHluYW1pYyBmaWVsZCBibG9ja3MgZm9yIGN1c3RvbWl6YXRpb25zCiMgTm90ZTogRmllbGQxIGFuZCBGaWVsZDIgYXJlIHRoZSBuYW1lcyBvZiB0aGUgZmllbGRzIGFuZCBoYWQgdG8gYmUgcmVwbGFjZWQgd2l0aCB0aGUgYWN0dWFsCiMgZmllbGQgbmFtZXMKI1slIFJlbmRlckJsb2NrU3RhcnQoIkZBUUR5bmFtaWNGaWVsZF9GaWVsZDEiKSAlXQojICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZShEYXRhLkxhYmVsKSB8IGh0bWwgJV06PC9sYWJlbD4KIyAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSI+CiNbJSBSZW5kZXJCbG9ja1N0YXJ0KCJGQVFEeW5hbWljRmllbGRfRmllbGQxX0xpbmsiKSAlXQojICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHRpdGxlPSJbJSBEYXRhLlRpdGxlIHwgaHRtbCAlXSI+PGEgaHJlZj0iWyUgRGF0YS5MaW5rIHwgSW50ZXJwb2xhdGUgJV0iIHRhcmdldD0iX2JsYW5rIj5bJSBEYXRhLlZhbHVlICVdPC9hPjwvc3Bhbj4KI1slIFJlbmRlckJsb2NrRW5kKCJGQVFEeW5hbWljRmllbGRfRmllbGQxX0xpbmsiKSAlXQojWyUgUmVuZGVyQmxvY2tTdGFydCgiRkFRRHluYW1pY0ZpZWxkX0ZpZWxkMV9QbGFpbiIpICVdCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gdGl0bGU9IlslIERhdGEuVGl0bGUgfCBodG1sICVdIj5bJSBEYXRhLlZhbHVlICVdPC9zcGFuPgojWyUgUmVuZGVyQmxvY2tFbmQoIkZBUUR5bmFtaWNGaWVsZF9GaWVsZDFfUGxhaW4iKSAlXQojICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgojWyUgUmVuZGVyQmxvY2tFbmQoIkZBUUR5bmFtaWNGaWVsZF9GaWVsZDEiKSAlXQojWyUgUmVuZGVyQmxvY2tTdGFydCgiRkFRRHluYW1pY0ZpZWxkX0ZpZWxkMiIpICVdCiMgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKERhdGEuTGFiZWwpIHwgaHRtbCAlXTo8L2xhYmVsPgojICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj4KI1slIFJlbmRlckJsb2NrU3RhcnQoIkZBUUR5bmFtaWNGaWVsZF9GaWVsZDJfTGluayIpICVdCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gdGl0bGU9IlslIERhdGEuVGl0bGUgfCBodG1sICVdIj48YSBocmVmPSJbJSBEYXRhLkxpbmsgfCBJbnRlcnBvbGF0ZSAlXSIgdGFyZ2V0PSJfYmxhbmsiPlslIERhdGEuVmFsdWUgJV08L2E+PC9zcGFuPgojWyUgUmVuZGVyQmxvY2tFbmQoIkZBUUR5bmFtaWNGaWVsZF9GaWVsZDJfTGluayIpICVdCiNbJSBSZW5kZXJCbG9ja1N0YXJ0KCJGQVFEeW5hbWljRmllbGRfRmllbGQyX1BsYWluIikgJV0KIyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiB0aXRsZT0iWyUgRGF0YS5UaXRsZSB8IGh0bWwgJV0iPlslIERhdGEuVmFsdWUgJV08L3NwYW4+CiNbJSBSZW5kZXJCbG9ja0VuZCgiRkFRRHluYW1pY0ZpZWxkX0ZpZWxkMl9QbGFpbiIpICVdCiMgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiNbJSBSZW5kZXJCbG9ja0VuZCgiRkFRRHluYW1pY0ZpZWxkX0ZpZWxkMiIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJWaWV3UmF0aW5nIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiUmF0aW5nIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlZhbHVlIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJSYXRpbmciKSB8IGh0bWwgJV0gWyUgRGF0YS5Wb3RlUmVzdWx0ICVdJSI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSYXRlU3RhcnMiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iUmF0ZVN0YXIiPjxpIGNsYXNzPSJmYSBmYS1zdGFyIj48L2k+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJSYXRlU3RhcnMiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSYXRlU3RhcnNDb3VudCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJSYXRlU3RhclRleHQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuU3RhcnMgfCBodG1sICVdIFslIFRyYW5zbGF0ZSgib3V0IG9mIDUiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiUmF0ZVN0YXJzQ291bnQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiVmlld1JhdGluZyIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJWaWV3Vm90ZXMiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJWb3RlcyIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiIHRpdGxlPSJbJSBUcmFuc2xhdGUoRGF0YS5Wb3RlcykgfCBodG1sICVdIj5bJSBUcmFuc2xhdGUoRGF0YS5Wb3RlcywgIjE4IikgfCBodG1sICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiVmlld1ZvdGVzIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiVmlld05vVm90ZXMiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJWb3RlcyIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIk5vIHZvdGVzIGZvdW5kISIpIHwgaHRtbCAlXSI+WyUgVHJhbnNsYXRlKCJObyB2b3RlcyBmb3VuZCEgQmUgdGhlIGZpcnN0IG9uZSB0byByYXRlIHRoaXMgRkFRIGFydGljbGUuIikgfCBodG1sICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiVmlld05vVm90ZXMiKSAlXQoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiQ3JlYXRlZCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiPlslIERhdGEuQ3JlYXRlZCB8IExvY2FsaXplKCJUaW1lU2hvcnQiKSAlXSAgKFslIERhdGEuQ3JlYXRlZEJ5VXNlciAlXSk8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIkNoYW5nZWQiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj5bJSBEYXRhLkNoYW5nZWQgfCBMb2NhbGl6ZSgiVGltZVNob3J0IikgJV0gIChbJSBEYXRhLkNoYW5nZWRCeVVzZXIgJV0pPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KClslIFJlbmRlckJsb2NrU3RhcnQoIkxpbmtUYWJsZVNpbXBsZSIpICVdCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSBEb250UHJpbnQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJMaW5rZWQgT2JqZWN0cyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIFslIERhdGEuTGlua1RhYmxlU3RyZyAlXQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiTGlua1RhYmxlU2ltcGxlIikgJV0KCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudENvbHVtbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJBY3Rpb25Sb3ciPgogICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9IkFjdGlvbnMiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJNZW51SXRlbSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdWyUgRGF0YS5MaW5rIHwgSW50ZXJwb2xhdGUgJV0iIGlkPSJbJSBEYXRhLk1lbnVJRCB8IGh0bWwgJV0iIGNsYXNzPSJbJSBEYXRhLkNsYXNzIHwgaHRtbCAlXSIgWyUgRGF0YS5MaW5rUGFyYW0gJV0gdGl0bGU9IlslIFRyYW5zbGF0ZShEYXRhLkRlc2NyaXB0aW9uKSB8IGh0bWwgJV0iPlslIFRyYW5zbGF0ZShEYXRhLk5hbWUpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJNZW51SXRlbSIpICVdCgogICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IlNwYWNpbmdUb3AiPjwvZGl2PgoKICAgICAgICAgICAgPGRpdiBpZD0iRkFRQm9keSI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBdHRhY2htZW50SGVhZGVyIikgJV0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiQXR0YWNobWVudHMiKSB8IGh0bWwgJV06PC9oMj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkFydGljbGVGQVFDb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVzc2FnZSI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBdHRhY2htZW50Um93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJEb3dubG9hZEF0dGFjaG1lbnQiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkRvd25sb2FkIEF0dGFjaG1lbnQiKSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1N1YmFjdGlvbj1Eb3dubG9hZEF0dGFjaG1lbnQ7SXRlbUlEPVslIERhdGEuSXRlbUlEIHwgdXJpICVdO0ZpbGVJRD1bJSBEYXRhLkZpbGVJRCB8IHVyaSAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuRmlsZW5hbWUgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgWyUgRGF0YS5GaWxlc2l6ZSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxici8+ClslIFJlbmRlckJsb2NrRW5kKCJBdHRhY2htZW50Um93IikgJV0KCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJBdHRhY2htZW50SGVhZGVyIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkJyb3dzZXJMaW5rTWVzc2FnZSIpICVdCiMgU2hvdyBpbmZvLCB0aGF0IGxpbmtzIHdpdGhpbiB0aGUgaWZyYW1lIG11c3QgYmUgY2xpY2tlZCB3aXRoIHN0cmcvY21kL3NoaWZ0IChkZXBlbmRpbmcgb24gdGhlIHVzZWQgYnJvd3NlciBhbmQgb3MpCiMgdG8gb3BlbiB0aGUgbGlua3MgaW4gYSBuZXcgd2luZG93IHdpdGhvdXQgdGhlIHNlY3VyaXR5IHBlcm1pc3Npb25zIGdpdmVuIHRvIHRoZSBpZnJhbWUKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZBUU1lc3NhZ2VCcm93c2VyIj4KICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICBbJSBUcmFuc2xhdGUoIlRvIG9wZW4gbGlua3MgaW4gdGhlIGZvbGxvd2luZyBkZXNjcmlwdGlvbiBibG9ja3MsIHlvdSBtaWdodCBuZWVkIHRvIHByZXNzIEN0cmwgb3IgQ21kIG9yIFNoaWZ0IGtleSB3aGlsZSBjbGlja2luZyB0aGUgbGluayAoZGVwZW5kaW5nIG9uIHlvdXIgYnJvd3NlciBhbmQgT1MpLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iQ2xvc2UiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkNsb3NlIHRoaXMgbWVzc2FnZSIpIHwgaHRtbCAlXSIgaHJlZj0iIyI+PGkgY2xhc3M9ImZhIGZhLXRpbWVzIj48L2k+PC9hPgogICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJCcm93c2VyTGlua01lc3NhZ2UiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiRkFRQ29udGVudCIpICVdCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldEFjdGlvbiBUb2dnbGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiU2hvdyBvciBoaWRlIHRoZSBjb250ZW50IikgfCBodG1sICVdIj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtcmlnaHQiPjwvaT48aSBjbGFzcz0iZmEgZmEtY2FyZXQtZG93biI+PC9pPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZShEYXRhLkNhcHRpb24pIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IkZBUVN0YXRlTmFtZSI+KFslIFRyYW5zbGF0ZShEYXRhLlN0YXRlTmFtZSkgfCBodG1sICVdKTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9oMj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KWyUgUmVuZGVyQmxvY2tTdGFydCgiRkFRQ29udGVudEhUTUwiKSAlXQojIGV4ZWN1dGUgSUZyYW1lIEpTIGFzeW5jaHJvbm91c2x5LiBPdGhlcndpc2UgaXQgY291bGQgaGFwcGVuIGJlZm9yZSBvdXIgQVBJIHdhcyBsb2FkZWQKIyB0aGUgZm9sbG93aW5nIEpTIGNvZGUgbXVzdCBiZSB3aXRoaW4gdGhlIHRlbXBsYXRlLCBvdGhlcndpc2UgaXQgY291bGQgaGFwcGVuLCB0aGF0IGFsc28gdGhpcyBjb2RlIGl0c2VsZiBpcyBub3QgbG9hZGVkIHlldAo8c2NyaXB0PgpmdW5jdGlvbiBDaGVja0lGcmFtZUhlaWdodChJRnJhbWVJRCkgewogICAgaWYgKHR5cGVvZiBGQVEgPT09ICdvYmplY3QnICYmIHR5cGVvZiBGQVEuQWdlbnQgPT09ICdvYmplY3QnICYmIHR5cGVvZiBGQVEuQWdlbnQuRkFRWm9vbSA9PT0gJ29iamVjdCcpIHsKICAgICAgICBGQVEuQWdlbnQuRkFRWm9vbS5JZnJhbWVBdXRvSGVpZ2h0KCQoJyMnICsgSUZyYW1lSUQpKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgQ2hlY2tJRnJhbWVIZWlnaHQoSUZyYW1lSUQpOwogICAgICAgIH0sIDUwMCk7CiAgICB9Cn0KPC9zY3JpcHQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+CiMgVXNlIHRoZSBIVE1MNSBzYW5kYm94IGF0dHJpYnV0ZSB0byBwcmV2ZW50IHBsdWdpbnMgYW5kIHNjcmlwdHMgZnJvbSBiZWluZyBleGVjdXRlZCBpbiB0aGUgYnJvd3Nlci4KIyBBcHBlbmQgc2Vzc2lvbiBpbmZvIHRvIFVSTCBiZWNhdXNlIElFIHdpbGwgbm90IHNlbmQgY29va2llcy4KIyBTZXQgJ2FsbG93LXBvcHVwcycgdG8gYWxsb3cgSUUxMCsgdG8gb3BlbiBsaW5rcy4gcmVmOiBodHRwOi8vd3d3LnczLm9yZy9odG1sL3dnL3dpa2kvQ2hhbmdlUHJvcG9zYWxzL3NhbmRib3hfYWxsb3dfcG9wdXBzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aWZyYW1lIHNhbmRib3g9ImFsbG93LXNhbWUtb3JpZ2luIGFsbG93LXBvcHVwcyBtcy1hbGxvdy1wb3B1cHMgYWxsb3ctcG9wdXBzLXRvLWVzY2FwZS1zYW5kYm94IiBjbGFzcz0iRkFRRmllbGQiIGlkPSJJZnJhbWVGQVFbJSBEYXRhLkZpZWxkIHwgaHRtbCAlXSIgb25sb2FkPSJ3aW5kb3cuc2V0VGltZW91dCggZnVuY3Rpb24gKCl7IENoZWNrSUZyYW1lSGVpZ2h0KCdJZnJhbWVGQVFbJSBEYXRhLkZpZWxkIHwgaHRtbCAlXScpOyB9LCA1MDApOyIgc3JjPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWdlbnRGQVFab29tO1N1YmFjdGlvbj1IVE1MVmlldztJdGVtSUQ9WyUgRGF0YS5JdGVtSUQgfCBodG1sICVdO0ZpZWxkPVslIERhdGEuRmllbGQgfCBodG1sICVdO1slIEVudigiU2Vzc2lvbk5hbWUiKSB8IGh0bWwgJV09WyUgRW52KCJTZXNzaW9uSUQiKSB8IGh0bWwgJV0iPjwvaWZyYW1lPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkZBUUNvbnRlbnRIVE1MIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiRkFRQ29udGVudFBsYWluIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQXJ0aWNsZUZBUUNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5Db250ZW50ICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJGQVFDb250ZW50UGxhaW4iKSAlXQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJGQVFDb250ZW50IikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkZBUVZvdGluZyIpICVdCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldEFjdGlvbiBUb2dnbGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiU2hvdyBvciBoaWRlIHRoZSBjb250ZW50IikgfCBodG1sICVdIj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtcmlnaHQiPjwvaT48aSBjbGFzcz0iZmEgZmEtY2FyZXQtZG93biI+PC9pPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlJhdGluZyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRkFRVm90aW5nIENvbnRlbnQiIGlkPSJGQVFWb3RpbmciPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJBcnRpY2xlRkFRQ29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iQ2VudGVyIj5bJSBUcmFuc2xhdGUoIkhvdyBoZWxwZnVsIHdhcyB0aGlzIGFydGljbGU/IFBsZWFzZSBnaXZlIHVzIHlvdXIgcmF0aW5nIGFuZCBoZWxwIHRvIGltcHJvdmUgdGhlIEZBUSBEYXRhYmFzZS4gVGhhbmsgWW91ISIpIHwgaHRtbCAlXTwvcD4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbmFtZT0iRkFRVm90ZSIgY2xhc3M9IkZBUVZvdGVGb3JtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9IlJhdGVCdXR0b25zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlslIFRyYW5zbGF0ZSgibm90IGhlbHBmdWwiKSB8IGh0bWwgJV08L2xpPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJGQVFWb3RpbmdSYXRlUm93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGlkPSJSYXRlQnV0dG9uWyUgRGF0YS5WYWx1ZSAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iUmF0ZUJ1dHRvbiBSYXRlVW5DaGVja2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtc3Rhci1vIj48L2k+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXN0YXIiPjwvaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlRpdGxlIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiRkFRVm90aW5nUmF0ZVJvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5bJSBUcmFuc2xhdGUoInZlcnkgaGVscGZ1bCIpIHwgaHRtbCAlXTwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIgY2xhc3M9IkNsZWFyIiAvPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgY2xhc3M9IlByaW1hcnkgQ2FsbEZvckFjdGlvbiBIaWRkZW4iIGlkPSJSYXRlU3VibWl0QnV0dG9uIiBuYW1lPSJidG4iIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlZvdGUiKSB8IGh0bWwgJV0iPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1jaGVjay1zcXVhcmUtbyI+PC9pPiBbJSBUcmFuc2xhdGUoIlZvdGUiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iQWdlbnRGQVFab29tIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iVm90ZSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkNhdGVnb3J5SUQiIHZhbHVlPSJbJSBEYXRhLkNhdGVnb3J5SUQgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iSXRlbUlEIiB2YWx1ZT0iWyUgRGF0YS5JdGVtSUQgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iUmF0ZSIgdmFsdWU9IiIgaWQ9IlJhdGVWYWx1ZSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiRkFRVm90aW5nIikgJV0KCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrU3RhcnQoIkxpbmtUYWJsZUNvbXBsZXgiKSAlXQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIFslIERhdGEuTGlua1RhYmxlU3RyZyAlXQogICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkxpbmtUYWJsZUNvbXBsZXgiKSAlXQoKICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICA8L2Rpdj4KPC9kaXY+Cg==</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/AgentFAQZoomSmall.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCiMjIG5vZmlsdGVyKFRpZHlBbGw6OlBsdWdpbjo6T1RPQk86OlRUOjpTY3JpcHRVc2FnZSkKCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIj4KICAgIDxkaXYgY2xhc3M9IkNsZWFyTGVmdCI+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJIZWFkbGluZSI+CiAgICAgICAgPGgxIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlpvb20iKSB8IGh0bWwgJV0gWyUgQ29uZmlnKCJGQVE6OkZBUUhvb2siKSAlXTogWyUgRGF0YS5OdW1iZXIgfCBodG1sICVdICZuZGFzaDsgWyUgRGF0YS5UaXRsZSB8IGh0bWwgJV0iPgogICAgICAgICAgICBbJSBDb25maWcoIkZBUTo6RkFRSG9vayIpICVdOiBbJSBEYXRhLk51bWJlciAlXSA8c3Bhbj4mbWRhc2g7PC9zcGFuPiBbJSBEYXRhLlRpdGxlIHwgaHRtbCAlXQogICAgICAgIDwvaDE+CiAgICA8L2Rpdj4KCiAgICA8dWwgY2xhc3M9IkJyZWFkQ3J1bWIiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJGQVFQYXRoQ2F0ZWdvcnlFbGVtZW50IikgJV0KICAgICAgICA8bGk+CiAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZ2VudEZBUUV4cGxvcmVyO0NhdGVnb3J5SUQ9WyUgRGF0YS5DYXRlZ29yeUlEIHwgdXJpICVdO05hdj1bJSBEYXRhLk5hdiB8IHVyaSAlXSI+CiAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoRGF0YS5OYW1lKSB8IGh0bWwgJV0KICAgICAgICAgICAgPC9hPgogICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJGQVFQYXRoQ2F0ZWdvcnlFbGVtZW50IikgJV0KICAgIDwvdWw+CgogICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgPGRpdiBjbGFzcz0iTGF5b3V0Rml4ZWRTaWRlYmFyIFNpZGViYXJMYXN0Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Q29sdW1uIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiRkFRIEluZm9ybWF0aW9uIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UgRml4ZWRMYWJlbFNtYWxsIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiQ2F0ZWdvcnkiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIiB0aXRsZT0iWyUgVHJhbnNsYXRlKERhdGEuQ2F0ZWdvcnlOYW1lKSB8IGh0bWwgJV0iPlslIFRyYW5zbGF0ZShEYXRhLkNhdGVnb3J5TmFtZSkgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSBGaXhlZExhYmVsU21hbGwiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJLZXl3b3JkcyIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJLZXl3b3JkcyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiB0aXRsZT0iWyUgRGF0YS5LZXl3b3JkIHwgaHRtbCAlXSI+WyUgRGF0YS5LZXl3b3JkIHwgaHRtbCAlXTwvc3Bhbj4KWyUgUmVuZGVyQmxvY2tFbmQoIktleXdvcmRzIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSBGaXhlZExhYmVsU21hbGwiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJTdGF0ZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiIHRpdGxlPSJbJSBUcmFuc2xhdGUoRGF0YS5TdGF0ZSkgfCBodG1sICVdIj5bJSBUcmFuc2xhdGUoRGF0YS5TdGF0ZSkgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJWYWxpZGl0eSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiIHRpdGxlPSJbJSBUcmFuc2xhdGUoRGF0YS5WYWxpZCkgfCBodG1sICVdIj5bJSBUcmFuc2xhdGUoRGF0YS5WYWxpZCwgIjI1IikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJMYW5ndWFnZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIkxhbmd1YWdlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSIgdGl0bGU9IlslIFRyYW5zbGF0ZShEYXRhLkxhbmd1YWdlKSB8IGh0bWwgJV0iPlslIFRyYW5zbGF0ZShEYXRhLkxhbmd1YWdlKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkxhbmd1YWdlIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIlZpZXdBcHByb3ZhbCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIkFwcHJvdmFsIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSIgdGl0bGU9IlslIFRyYW5zbGF0ZShEYXRhLkFwcHJvdmFsKSB8IGh0bWwgJV0iPlslIFRyYW5zbGF0ZShEYXRhLkFwcHJvdmFsKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlZpZXdBcHByb3ZhbCIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJWaWV3UmF0aW5nIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiUmF0aW5nIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlZhbHVlIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJSYXRpbmciKSB8IGh0bWwgJV0gWyUgRGF0YS5Wb3RlUmVzdWx0ICVdJSI+ClslIFJlbmRlckJsb2NrU3RhcnQoIlJhdGVTdGFycyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJSYXRlU3RhciI+PGkgY2xhc3M9ImZhIGZhLXN0YXIiPjwvaT48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlJhdGVTdGFycyIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJhdGVTdGFyc0NvdW50IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlJhdGVTdGFyVGV4dCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5TdGFycyB8IGh0bWwgJV0gWyUgVHJhbnNsYXRlKCJvdXQgb2YgNSIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJSYXRlU3RhcnNDb3VudCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJWaWV3UmF0aW5nIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIlZpZXdWb3RlcyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIlZvdGVzIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSI+WyUgRGF0YS5Wb3RlcyB8IGh0bWwgJV08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJWaWV3Vm90ZXMiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJWaWV3Tm9Wb3RlcyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIlZvdGVzIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiTm8gdm90ZXMgZm91bmQhIikgfCBodG1sICVdIj5bJSBUcmFuc2xhdGUoIk5vIHZvdGVzIGZvdW5kISBCZSB0aGUgZmlyc3Qgb25lIHRvIHJhdGUgdGhpcyBGQVEgYXJ0aWNsZS4iKSB8IGh0bWwgJV08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJWaWV3Tm9Wb3RlcyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIkNyZWF0ZWQiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIiB0aXRsZT0iWyUgRGF0YS5DcmVhdGVkIHwgTG9jYWxpemUoIlRpbWVMb25nIikgJV0gKFslIERhdGEuQ3JlYXRlZEJ5TG9naW4gfCBodG1sICVdKSI+WyUgRGF0YS5DcmVhdGVkIHwgTG9jYWxpemUoIlRpbWVTaG9ydCIpICVdICAoWyUgRGF0YS5DcmVhdGVkQnlMb2dpbiB8IGh0bWwgJV0pPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJDaGFuZ2VkIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSIgdGl0bGU9IlslIERhdGEuQ2hhbmdlZCB8IExvY2FsaXplKCJUaW1lTG9uZyIpICVdIChbJSBEYXRhLkNyZWF0ZWRCeUxvZ2luIHwgaHRtbCAlXSkiPlslIERhdGEuQ2hhbmdlZCB8IExvY2FsaXplKCJUaW1lU2hvcnQiKSAlXSAgKFslIERhdGEuQ3JlYXRlZEJ5TG9naW4gfCBodG1sICVdKTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnRDb2x1bW4iPgogICAgICAgICAgICA8ZGl2PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJGQVFDb250ZW50IikgJV0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZShEYXRhLkNhcHRpb24pIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkZBUUNvbnRlbnRIVE1MIikgJV0KIyBleGVjdXRlIElGcmFtZSBKUyBhc3luY2hyb25vdXNseS4gT3RoZXJ3aXNlIGl0IGNvdWxkIGhhcHBlbiBiZWZvcmUgb3VyIEFQSSB3YXMgbG9hZGVkCiMgdGhlIGZvbGxvd2luZyBKUyBjb2RlIG11c3QgYmUgd2l0aGluIHRoZSB0ZW1wbGF0ZSwgb3RoZXJ3aXNlIGl0IGNvdWxkIGhhcHBlbiwgdGhhdCBhbHNvIHRoaXMgY29kZSBpdHNlbGYgaXMgbm90IGxvYWRlZCB5ZXQKPHNjcmlwdD4KZnVuY3Rpb24gQ2hlY2tJRnJhbWVIZWlnaHQoSUZyYW1lSUQpIHsKICAgIGlmICh0eXBlb2YgRkFRID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgRkFRLkFnZW50ID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgRkFRLkFnZW50LkZBUVpvb20gPT09ICdvYmplY3QnKSB7CiAgICAgICAgRkFRLkFnZW50LkZBUVpvb20uSWZyYW1lQXV0b0hlaWdodCgkKCcjJyArIElGcmFtZUlEKSk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIENoZWNrSUZyYW1lSGVpZ2h0KElGcmFtZUlEKTsKICAgICAgICB9LCA1MDApOwogICAgfQp9Cjwvc2NyaXB0PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PgojIFVzZSB0aGUgSFRNTDUgc2FuZGJveCBhdHRyaWJ1dGUgdG8gcHJldmVudCBwbHVnaW5zIGFuZCBzY3JpcHRzIGZyb20gYmVpbmcgZXhlY3V0ZWQgaW4gdGhlIGJyb3dzZXIuCiMgQXBwZW5kIHNlc3Npb24gaW5mbyB0byBVUkwgYmVjYXVzZSBJRSB3aWxsIG5vdCBzZW5kIGNvb2tpZXMuCiMgU2V0ICdhbGxvdy1wb3B1cHMnIHRvIGFsbG93IElFMTArIHRvIG9wZW4gbGlua3MuIHJlZjogaHR0cDovL3d3dy53My5vcmcvaHRtbC93Zy93aWtpL0NoYW5nZVByb3Bvc2Fscy9zYW5kYm94X2FsbG93X3BvcHVwcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlmcmFtZSBzYW5kYm94PSJhbGxvdy1zYW1lLW9yaWdpbiBhbGxvdy1wb3B1cHMgbXMtYWxsb3ctcG9wdXBzIGFsbG93LXBvcHVwcy10by1lc2NhcGUtc2FuZGJveCIgY2xhc3M9IkZBUUZpZWxkIiBpZD0iSWZyYW1lRkFRWyUgRGF0YS5GaWVsZCB8IGh0bWwgJV0iIG9ubG9hZD0id2luZG93LnNldFRpbWVvdXQoIGZ1bmN0aW9uICgpeyBDaGVja0lGcmFtZUhlaWdodCgnSWZyYW1lRkFRWyUgRGF0YS5GaWVsZCB8IGh0bWwgJV0nKTsgfSwgNTAwKTsiIHNyYz0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFnZW50RkFRWm9vbTtTdWJhY3Rpb249SFRNTFZpZXc7SXRlbUlEPVslIERhdGEuSXRlbUlEIHwgaHRtbCAlXTtGaWVsZD1bJSBEYXRhLkZpZWxkIHwgaHRtbCAlXTtbJSBFbnYoIlNlc3Npb25OYW1lIikgfCBodG1sICVdPVslIEVudigiU2Vzc2lvbklEIikgfCBodG1sICVdIj48L2lmcmFtZT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJGQVFDb250ZW50SFRNTCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkZBUUNvbnRlbnRQbGFpbiIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkFydGljbGVGQVFDb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuQ29udGVudCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiRkFRQ29udGVudFBsYWluIikgJV0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiRkFRQ29udGVudCIpICVdCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgPC9kaXY+CiAgICA8aW5wdXQgaWQ9IkZBUUlEIiB0eXBlPSJoaWRkZW4iIG5hbWU9IkZBUUlEIiB2YWx1ZT0iWyUgRGF0YS5JRCB8IGh0bWwgJV0iPgogICAgPGlucHV0IGlkPSJGQVFUaXRsZSIgdHlwZT0iaGlkZGVuIiBuYW1lPSJUaXRsZSIgdmFsdWU9IlslIERhdGEuVGl0bGUgfCBodG1sICVdIj4KICAgIDxpbnB1dCBpZD0iRkFRQm9keSIgdHlwZT0iaGlkZGVuIiBuYW1lPSJCb2R5IiB2YWx1ZT0iWyUgRGF0YS5GdWxsQm9keSB8IGh0bWwgJV0iPgogICAgPGlucHV0IGlkPSJGQVFQdWJsaWNMaW5rIiB0eXBlPSJoaWRkZW4iIG5hbWU9IkxpbmsiICB2YWx1ZT0iWyUgRGF0YS5QdWJsaWNsaW5rICVdIj4KCjwvZGl2PgoKPGRpdiBjbGFzcz0iWm9vbVNtYWxsRm9vdGVyIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiVXBkYXRlQXJ0aWNsZVN1YmplY3QiKSAlXQogICAgPGlucHV0IGlkPSJVcGRhdGVBcnRpY2xlU3ViamVjdE9wdGlvbiIgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJab29tU21hbGxCdXR0b24iIG5hbWU9IlVwZGF0ZUFydGljbGVTdWJqZWN0T3B0aW9uIiBjaGVja2VkPSJjaGVja2VkIiB2YWx1ZSIxIi8+CiAgICA8bGFiZWwgZm9yPSJVcGRhdGVBcnRpY2xlU3ViamVjdE9wdGlvbiI+WyUgVHJhbnNsYXRlKCJBZGQgRkFRIHRpdGxlIHRvIGFydGljbGUgc3ViamVjdCIpIHwgaHRtbCAlXTwvbGFiZWw+ClslIFJlbmRlckJsb2NrRW5kKCJVcGRhdGVBcnRpY2xlU3ViamVjdCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkluc2VydFRleHQiKSAlXQogICAgPGJ1dHRvbiBpZD0iSW5zZXJ0VGV4dCIgY2xhc3M9IlByaW1hcnkgQ2FsbEZvckFjdGlvbiBab29tU21hbGxCdXR0b24iPjxzcGFuPlslIFRyYW5zbGF0ZSgiSW5zZXJ0IEZBUSBUZXh0IikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgpbJSBSZW5kZXJCbG9ja0VuZCgiSW5zZXJ0VGV4dCIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbnNlcnRGdWxsIikgJV0KICAgIDxidXR0b24gaWQ9Ikluc2VydEZ1bGwiIGNsYXNzPSJQcmltYXJ5IENhbGxGb3JBY3Rpb24gWm9vbVNtYWxsQnV0dG9uIj48c3Bhbj5bJSBUcmFuc2xhdGUoIkluc2VydCBGdWxsIEZBUSIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KWyUgUmVuZGVyQmxvY2tFbmQoIkluc2VydEZ1bGwiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiSW5zZXJ0TGluayIpICVdCiAgICA8YnV0dG9uIGlkPSJJbnNlcnRMaW5rIiBjbGFzcz0iUHJpbWFyeSBDYWxsRm9yQWN0aW9uIFpvb21TbWFsbEJ1dHRvbiI+PHNwYW4+WyUgVHJhbnNsYXRlKCJJbnNlcnQgRkFRIExpbmsiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+ClslIFJlbmRlckJsb2NrRW5kKCJJbnNlcnRMaW5rIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkluc2VydFRleHRBbmRMaW5rIikgJV0KICAgIDxidXR0b24gaWQ9Ikluc2VydFRleHRBbmRMaW5rIiBjbGFzcz0iUHJpbWFyeSBDYWxsRm9yQWN0aW9uIFpvb21TbWFsbEJ1dHRvbiI+PHNwYW4+WyUgVHJhbnNsYXRlKCJJbnNlcnQgRkFRIFRleHQgJiBMaW5rIikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgpbJSBSZW5kZXJCbG9ja0VuZCgiSW5zZXJ0VGV4dEFuZExpbmsiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiSW5zZXJ0RnVsbEFuZExpbmsiKSAlXQogICAgPGJ1dHRvbiBpZD0iSW5zZXJ0RnVsbEFuZExpbmsiIGNsYXNzPSJQcmltYXJ5IENhbGxGb3JBY3Rpb24gWm9vbVNtYWxsQnV0dG9uIj48c3Bhbj5bJSBUcmFuc2xhdGUoIkluc2VydCBGdWxsIEZBUSAmIExpbmsiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+ClslIFJlbmRlckJsb2NrRW5kKCJJbnNlcnRGdWxsQW5kTGluayIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPciIpICVdCiAgICBbJSBUcmFuc2xhdGUoIm9yIikgfCBodG1sICVdClslIFJlbmRlckJsb2NrRW5kKCJPciIpICVdCgogICAgPGEgaWQ9IkNhbmNlbCIgY2xhc3M9IlslIERhdGEuQ2FuY2VsQnV0dG9uQ2xhc3MgfCBodG1sICVdIiBocmVmPSIjIj5bJSBUcmFuc2xhdGUoIkNhbmNlbCAmIGNsb3NlIikgfCBodG1sICVdPC9hPgoKICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgIDxiciAvPgoKPC9kaXY+Cg==</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/AgentFAQRelatedArticles.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCiAgICAgICAgWyUgSUYgRGF0YS5SZWxhdGVkRkFRQXJ0aWNsZUxpc3Quc2l6ZSAlXQoKICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUgRml4ZWRMYXlvdXQiPgogICAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgWyUgRk9SRUFDSCBGQVFBcnRpY2xlIElOIERhdGEuUmVsYXRlZEZBUUFydGljbGVMaXN0ICVdCiAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IkZBUVRpdGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZ2VudEZBUVpvb207SXRlbUlEPVslIEZBUUFydGljbGUuSXRlbUlEIHwgdXJpICVdIiB0YXJnZXQ9Il9ibGFuayIgdGl0bGU9IlslIEZBUUFydGljbGUuVGl0bGUgfCBodG1sICVdIChbJSBGQVFBcnRpY2xlLkNhdGVnb3J5TmFtZSB8IGh0bWwgJV0pIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBGQVFBcnRpY2xlLlRpdGxlIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJGQVFWb3RlcyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBJRiBGQVFBcnRpY2xlLlZvdGVzICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gdGl0bGU9IlslIEZBUUFydGljbGUuU3RhckNvdW50ZXIgfCBodG1sICVdIFslIFRyYW5zbGF0ZSgib3V0IG9mIDUiKSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iUmF0ZVN0YXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRklMVEVSIHJlcGVhdChGQVFBcnRpY2xlLlN0YXJDb3VudGVyKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1zdGFyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRU5EICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBGSUxURVIgcmVwZWF0KDUgLSBGQVFBcnRpY2xlLlN0YXJDb3VudGVyKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1zdGFyLW8iIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBFTkQgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIEVMU0UgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iUmF0ZVN0YXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBGSUxURVIgcmVwZWF0KDUpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtc3Rhci1vIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBFTkQgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBFTkQgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJGQVFDYXRlZ29yaWUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRkFRQXJ0aWNsZS5DYXRlZ29yeU5hbWUgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iRkFRRGF0ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBGQVFBcnRpY2xlLkNoYW5nZWQgfCBMb2NhbGl6ZSgiRGF0ZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgIFslIEVORCAlXQogICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgPC90YWJsZT4KCiAgICAgICAgWyUgRU5EICVdCg==</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/CustomerFAQExplorer.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgo8ZGl2IGlkPSJvb29Db250ZW50Ij4KICAgIDxkaXYgaWQ9Im9vb0hlYWRlciI+CiAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGgxPlslIFRyYW5zbGF0ZSgiRkFRIEV4cGxvcmVyIikgfCBodG1sICVdPC9oMT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQnJlYWRDcnVtYiI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkZBUVBhdGhDYXRlZ29yeUVsZW1lbnQiKSAlXQogICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUN1c3RvbWVyRkFRRXhwbG9yZXI7Q2F0ZWdvcnlJRD1bJSBEYXRhLkNhdGVnb3J5SUQgfCB1cmkgJV0iPgogICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0nb29vZyc+WyUgVHJhbnNsYXRlKERhdGEuTmFtZSkgfCBodG1sICVdPC9oMz4KICAgICAgICAgICAgICAgIDwvYT4KWyUgUmVuZGVyQmxvY2tFbmQoIkZBUVBhdGhDYXRlZ29yeUVsZW1lbnQiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJGQVFQYXRoQ2F0ZWdvcnlFbGVtZW50Tm9MaW5rIikgJV0KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0nb29vZyc+WyUgVHJhbnNsYXRlKERhdGEuTmFtZSkgfCBodG1sICVdPC9oMz4KWyUgUmVuZGVyQmxvY2tFbmQoIkZBUVBhdGhDYXRlZ29yeUVsZW1lbnROb0xpbmsiKSAlXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGlkPSJvb29TZWFyY2hCb3giPgogICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgbmFtZT0iY29tcG9zZSI+CiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJDdXN0b21lckZBUUV4cGxvcmVyIi8+CiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJTZWFyY2giLz4KCiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9J29vb2cnPgogICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJvb29mbyBvb29mby1zZWFyY2giPjwvaT4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iV2hhdCIgaWQ9Im9vb1NlYXJjaCIgdGl0bGU9IlslIFRyYW5zbGF0ZSgnRkFRIFNlYXJjaCcpIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGlkPSdvb29TZWFyY2hMYWJlbCc+WyUgVHJhbnNsYXRlKCdGQVEgU2VhcmNoJykgfCBodG1sICVdPC9zcGFuPgogICAgICAgICAgICAgICAgPC9oMz4KICAgICAgICAgICAgPC9mb3JtPgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBpZD0ib29vTWFpbkJveCI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTdWJjYXRlZ29yaWVzIikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1Jlc3VsdCIpICVdCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJTdWJjYXRlZ29yaWVzIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJvb29TdWJCb3giPgojIG5vIHdoaXRlc3BhY2UvbmV3bGluZSByZXN1bHRzIGluIG5vIHdoaXRlc3BhY2UgYmV0d2VlbiBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGVsZW1lbnRzClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UmVzdWx0Um93IikgJV08YSBjbGFzcz0ib29vU3ViIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtDYXRlZ29yeUlEPVslIERhdGEuQ2F0ZWdvcnlJRCB8IHVyaSAlXSI+CiAgICAgICAgICAgICAgICAgICAgPGgzPlslIFRyYW5zbGF0ZShEYXRhLk5hbWUpIHwgaHRtbCAlXTwvaDM+CiAgICAgICAgICAgICAgICAgICAgWyUgSUYgRGF0YS5TdWJDYXRlZ29yeUNvdW50ICVdCiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9Im9vb1N1YkNvdW50Ij5bJSBEYXRhLlN1YkNhdGVnb3J5Q291bnQgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgIFslIEVORCAlXQogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJvb29nIG9vb0NvbW1lbnQiPlslIFRyYW5zbGF0ZShEYXRhLkNvbW1lbnQpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgIDwvYT5bJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdSZXN1bHRSb3ciKSAlXQojIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1Jlc3VsdFJvdyIpCiAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdSZXN1bHQiKSAlXQogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiU3ViY2F0ZWdvcmllcyIpICVdCgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiRkFRSXRlbUxpc3QiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgpbJSBJRiBEYXRhLkNhdGVnb3J5SUQgPT0gMCAlXQogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiTGF0ZXN0IHVwZGF0ZWQgRkFRIGFydGljbGVzIikgfCBodG1sICVdPC9oMj4KWyUgRUxTRSAlXQogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiRkFRIEFydGljbGVzIikgfCBodG1sICVdPC9oMj4KWyUgRU5EICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlBhZ2luYXRpb24iKSAlXQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iUGFnaW5hdGlvbiBvb28xMGciPgogICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+WyUgRGF0YS5SZXN1bHQgfCBodG1sICVdPC9zdHJvbmc+IFslIFRyYW5zbGF0ZSgib2YiKSB8IGh0bWwgJV0gPHN0cm9uZz5bJSBEYXRhLlRvdGFsSGl0cyB8IGh0bWwgJV08L3N0cm9uZz4gLSBbJSBUcmFuc2xhdGUoIlBhZ2UiKSB8IGh0bWwgJV06IFslIERhdGEuU2l0ZU5hdkJhciAlXQogICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJQYWdpbmF0aW9uIikgJV0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJvb29GQVFCb3giPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOb0ZBUURhdGFGb3VuZE1zZyIpICVdCiAgICAgICAgICAgICAgICA8YSBjbGFzcz0ib29vRkFRIiBocmVmPSIjIj4KICAgICAgICAgICAgICAgICAgICA8aDM+WyUgVHJhbnNsYXRlKCJObyBGQVEgYXJ0aWNsZXMgZm91bmQuIikgfCBodG1sICVdPC9oMz4KICAgICAgICAgICAgICAgIDwvYT4KWyUgUmVuZGVyQmxvY2tFbmQoIk5vRkFRRGF0YUZvdW5kTXNnIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkIikgJV0KICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJvb29GQVEiIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1DdXN0b21lckZBUVpvb207SXRlbUlEPVslIERhdGEuRkFRSUQgfCB1cmkgJV0iPgogICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0iVGl0bGUiIHRpdGxlPSJbJSBEYXRhLlRpdGxlIHwgaHRtbCAlXSI+WyUgRGF0YS5UaXRsZSB8IGh0bWwgJV08L2gzPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRMYW5ndWFnZSIpICVdCiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9Ikxhbmd1YWdlIG9vb2ciIHRpdGxlPSJbJSBEYXRhLkxhbmd1YWdlIHwgaHRtbCAlXSI+WyUgRGF0YS5MYW5ndWFnZSB8IHRydW5jYXRlKDUpIHwgaHRtbCAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZExhbmd1YWdlIikgJV0KICAgICAgICAgICAgICAgIDwvYT4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZCIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJCb3R0b21TdWJOYXZpZ2F0aW9uIikgJV0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlBhZ2luYXRpb24iPgogICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+WyUgRGF0YS5SZXN1bHQgfCBodG1sICVdPC9zdHJvbmc+IFslIFRyYW5zbGF0ZSgib2YiKSB8IGh0bWwgJV0gPHN0cm9uZz5bJSBEYXRhLlRvdGFsSGl0cyB8IGh0bWwgJV08L3N0cm9uZz4gLSBbJSBUcmFuc2xhdGUoIlBhZ2UiKSB8IGh0bWwgJV06IFslIERhdGEuU2l0ZU5hdkJhciAlXQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJCb3R0b21TdWJOYXZpZ2F0aW9uIikgJV0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJGQVFJdGVtTGlzdCIpICVdCgogICAgPC9kaXY+CjwvZGl2Pgo=</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/CustomerFAQRelatedArticles.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgoKPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KCiAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgIDxoMz5bJSBUcmFuc2xhdGUoIlRoaXMgbWlnaHQgYmUgaGVscGZ1bCIpIHwgaHRtbCAlXTwvaDM+CiAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICBbJSBJRiBEYXRhLlJlbGF0ZWRGQVFBcnRpY2xlTGlzdC5zaXplICVdCiAgICAgICAgPHVsIGNsYXNzPSJUYWJsZWxpa2UgRkFRTWluaUxpc3QiPgogICAgICAgIFslIEZPUkVBQ0ggRkFRQXJ0aWNsZSBJTiBEYXRhLlJlbGF0ZWRGQVFBcnRpY2xlTGlzdCAlXQogICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICA8aHI+CiAgICAgICAgICAgICAgICA8YSBjbGFzcz0nUmVsYXRlZEZBUUFydGljbGVMaXN0IG9vb2wnIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1DdXN0b21lckZBUVpvb207SXRlbUlEPVslIEZBUUFydGljbGUuSXRlbUlEIHwgdXJpICVdIiB0YXJnZXQ9Il9ibGFuayIgdGl0bGU9IlslIEZBUUFydGljbGUuVGl0bGUgfCBodG1sICVdIChbJSBGQVFBcnRpY2xlLkNhdGVnb3J5TmFtZSB8IGh0bWwgJV0pIj4KICAgICAgICAgICAgICAgICAgICBbJSBGQVFBcnRpY2xlLlRpdGxlIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9hPgojICAgICAgICAgICAgWyUgSUYgRkFRQXJ0aWNsZS5Wb3RlcyAmJiBEYXRhLlZvdGVTdGFyc1Zpc2libGUgJiYgRkFRQXJ0aWNsZS5TdGFyQ291bnRlciA+PSBEYXRhLlZvdGVTdGFyc1Zpc2libGUgJV0KIyAgICAgICAgICAgICAgICA8c3BhbiB0aXRsZT0iWyUgRkFRQXJ0aWNsZS5TdGFyQ291bnRlciB8IGh0bWwgJV0gWyUgVHJhbnNsYXRlKCJvdXQgb2YgNSIpIHwgaHRtbCAlXSI+CiMgICAgICAgICAgICAgICAgLSBbJSBGSUxURVIgcmVwZWF0KEZBUUFydGljbGUuU3RhckNvdW50ZXIpICVdPHNwYW4gY2xhc3M9IlJhdGVTdGFyIj48aSBjbGFzcz0iZmEgZmEtc3RhciI+PC9pPjwvc3Bhbj5bJSBFTkQgJV0KIyAgICAgICAgICAgICAgICA8L3NwYW4+CiMgICAgICAgICAgICBbJSBFTkQgJV0KICAgICAgICAgICAgPC9saT4KICAgICAgICBbJSBFTkQgJV0KICAgICAgICA8L3VsPgogICAgWyUgRUxTSUYgRGF0YS5SZWxhdGVkRkFRQXJ0aWNsZUZvdW5kTm90aGluZyAlXQogICAgICAgIDxkaXYgY2xhc3M9IkhpbnQiPlslIFRyYW5zbGF0ZSgiRm91bmQgbm8gaGVscGZ1bCByZXNvdXJjZXMgZm9yIHRoZSBzdWJqZWN0IGFuZCB0ZXh0LiIpIHwgaHRtbCAlXTwvZGl2PgogICAgWyUgRUxTRSAlXQogICAgICAgIDxkaXYgY2xhc3M9IkhpbnQiPlslIFRyYW5zbGF0ZSgiVHlwZSBhIHN1YmplY3Qgb3IgdGV4dCB0byBnZXQgYSBsaXN0IG9mIGhlbHBmdWwgcmVzb3VyY2VzLiIpIHwgaHRtbCAlXTwvZGl2PgogICAgWyUgRU5EICVdCiAgICA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4K</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/CustomerFAQSearch.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTZWFyY2giKSAlXQo8ZGl2IGlkPSJNYWluQm94IiBjbGFzcz0iU2VhcmNoIEFSSUFSb2xlTWFpbiI+CiAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgbmFtZT0iY29tcG9zZSI+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iTG9hZFByb2ZpbGUiLz4KICAgICAgICAgICAgPGZpZWxkc2V0PgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiUHJvZmlsZSIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlByb2ZpbGUiPlslIFRyYW5zbGF0ZSgiU2VhcmNoIHRlbXBsYXRlIikgfCBodG1sICVdPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlByb2ZpbGVzU3RyZyAlXQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IlJvdyI+CiAgICAgICAgICAgICAgICA8YnV0dG9uIG5hbWU9IlNlbGVjdFRlbXBsYXRlIiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlNlbGVjdCIpIHwgaHRtbCAlXSI+WyUgVHJhbnNsYXRlKCJTZWxlY3QiKSB8IGh0bWwgJV08L2J1dHRvbj4KICAgICAgICAgICAgICAgIDxidXR0b24gbmFtZT0iRXJhc2VUZW1wbGF0ZSIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJEZWxldGUiKSB8IGh0bWwgJV0iPlslIFRyYW5zbGF0ZSgiRGVsZXRlIikgfCBodG1sICVdPC9idXR0b24+CiAgICAgICAgICAgICAgICA8YnV0dG9uIG5hbWU9IlNlYXJjaFRlbXBsYXRlIiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlNlYXJjaCIpIHwgaHRtbCAlXSI+WyUgVHJhbnNsYXRlKCJTZWFyY2giKSB8IGh0bWwgJV08L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9mb3JtPgoKICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgbmFtZT0iY29tcG9zZSI+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iU2VhcmNoIi8+CiAgICAgICAgICAgIDxmaWVsZHNldD4KICAgICAgICAgICAgICAgIDxoMj5bJSBDb25maWcoIkZBUTo6RkFRSG9vayIpICVdPC9oMj4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTnVtYmVyIj5bJSBDb25maWcoIkZBUTo6RkFRSG9vayIpICVdPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdGl0bGU9IlslIENvbmZpZygiRkFROjpGQVFIb29rIikgJV0iIHR5cGU9InRleHQiIG5hbWU9Ik51bWJlciIgaWQ9Ik51bWJlciIgc2l6ZT0iMzAiIHZhbHVlPSJbJSBEYXRhLk51bWJlciB8IGh0bWwgJV0iLz4KICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoImUuIGcuIDEwKjUxNTUgb3IgMTA1NjU4KiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICA8ZmllbGRzZXQ+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJGdWxsdGV4dCBzZWFyY2ggaW4gRkFRIGFydGljbGVzIChlLiBnLiBcIkpvaG4qblwiIG9yIFwiV2lsbCpcIikiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJGdWxsVGV4dCI+WyUgVHJhbnNsYXRlKCJGdWxsdGV4dCIpIHwgaHRtbCAlXTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHRpdGxlPSJbJSBUcmFuc2xhdGUoIkZ1bGx0ZXh0IikgfCBodG1sICVdIiB0eXBlPSJ0ZXh0IiBpZD0iRnVsbFRleHQiIG5hbWU9IkZ1bGx0ZXh0IiB2YWx1ZT0iWyUgRGF0YS5GdWxsdGV4dCB8IGh0bWwgJV0iIHNpemU9IjIwIiAvPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlRpdGxlIj5bJSBUcmFuc2xhdGUoIlRpdGxlIikgfCBodG1sICVdPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdGl0bGU9IlslIFRyYW5zbGF0ZSgiVGl0bGUiKSB8IGh0bWwgJV0iIHR5cGU9InRleHQiIGlkPSJUaXRsZSIgbmFtZT0iVGl0bGUiIHZhbHVlPSJbJSBEYXRhLlRpdGxlIHwgaHRtbCAlXSIgc2l6ZT0iMjAiIC8+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iS2V5d29yZCI+WyUgVHJhbnNsYXRlKCJLZXl3b3JkIikgfCBodG1sICVdPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdGl0bGU9IlslIFRyYW5zbGF0ZSgiS2V5d29yZCIpIHwgaHRtbCAlXSIgdHlwZT0idGV4dCIgaWQ9IktleXdvcmQiIG5hbWU9IktleXdvcmQiIHZhbHVlPSJbJSBEYXRhLktleXdvcmQgfCBodG1sICVdIiBzaXplPSIyMCIgLz4KICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJEeW5hbWljRmllbGQiKSAlXQogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkxhYmVsICVdCiAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5GaWVsZCAlXQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJEeW5hbWljRmllbGQiKSAlXQogICAgICAgICAgICA8L2ZpZWxkc2V0PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJMYW5ndWFnZSIpICVdCiAgICAgICAgICAgIDxmaWVsZHNldD4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkxhbmd1YWdlIikgfCBodG1sICVdOjwvaDI+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgIFslIERhdGEuTGFuZ3VhZ2VzU3RyZyAlXQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZmllbGRzZXQ+ClslIFJlbmRlckJsb2NrRW5kKCJMYW5ndWFnZSIpICVdCiAgICAgICAgICAgIDxmaWVsZHNldD4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkNhdGVnb3J5IikgfCBodG1sICVdOjwvaDI+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgIFslIERhdGEuQ2F0ZWdvcmllc1N0cmcgJV0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRpbWVTZWFyY2hUeXBlIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlZvdGUgcmVzdHJpY3Rpb25zIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHRpdGxlPSJbJSBUcmFuc2xhdGUoIk5vIHZvdGUgc2V0dGluZ3MiKSB8IGh0bWwgJV0iIHR5cGU9InJhZGlvIiAgaWQ9Ik5vVm90ZVNldCIgbmFtZT0iVm90ZVNlYXJjaE9wdGlvbiIgdmFsdWU9IiIgWyUgRGF0YS5pdGVtKCJWb3RlU2VhcmNoT3B0aW9uOjpOb25lIikgJV0gLz4KICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJOb1RWb3RlU2V0Ij5bJSBUcmFuc2xhdGUoIkFsbCIpIHwgaHRtbCAlXTwvbGFiZWw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHRpdGxlPVslIFRyYW5zbGF0ZSgiU3BlY2lmaWMgdm90ZXMiKSB8IGh0bWwgJV0gdHlwZT0icmFkaW8iIGlkPSJWb3RlUG9pbnQiIG5hbWU9IlZvdGVTZWFyY2hPcHRpb24iICB2YWx1ZT0iVm90ZVBvaW50IiBbJSBEYXRhLml0ZW0oIlZvdGVTZWFyY2hPcHRpb246OlZvdGVQb2ludCIpICVdIC8+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iVm90ZVBvaW50Ij5bJSBUcmFuc2xhdGUoIk9ubHkgRkFRIGFydGljbGVzIHdpdGggdm90ZXMuLi4iKSB8IGh0bWwgJV08L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIFslIERhdGEuVm90ZVNlYXJjaFR5cGVTZWxlY3Rpb25TdHJpbmcgJV0KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iVm90ZVNlYXJjaCIgdmFsdWU9IlslIERhdGEuVm90ZVNlYXJjaCB8IGh0bWwgJV0iIGNsYXNzPSJXMjVwYyIvPgogICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiZS4gZy4gRXF1YWxzIDEwIG9yIEdyZWF0ZXJUaGFuIDYwIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZmllbGRzZXQ+CgogICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRpbWVTZWFyY2hUeXBlIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlJhdGUgcmVzdHJpY3Rpb25zIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHRpdGxlPSJbJSBUcmFuc2xhdGUoIk5vIHJhdGUgc2V0dGluZ3MiKSB8IGh0bWwgJV0iIHR5cGU9InJhZGlvIiAgaWQ9Ik5vUmF0ZVNldCIgbmFtZT0iUmF0ZVNlYXJjaE9wdGlvbiIgdmFsdWU9IiIgWyUgRGF0YS5pdGVtKCJSYXRlU2VhcmNoT3B0aW9uOjpOb25lIikgJV0gLz4KICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJOb1JhdGVTZXQiPlslIFRyYW5zbGF0ZSgiQWxsIikgfCBodG1sICVdPC9sYWJlbD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdGl0bGU9WyUgVHJhbnNsYXRlKCJTcGVjaWZpYyByYXRlIikgfCBodG1sICVdIHR5cGU9InJhZGlvIiBpZD0iUmF0ZVBvaW50IiBuYW1lPSJSYXRlU2VhcmNoT3B0aW9uIiB2YWx1ZT0iUmF0ZVBvaW50IiBbJSBEYXRhLml0ZW0oIlJhdGVTZWFyY2hPcHRpb246OlJhdGVQb2ludCIpICVdIC8+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iUmF0ZVBvaW50Ij5bJSBUcmFuc2xhdGUoIk9ubHkgRkFRIGFydGljbGVzIHdpdGggcmF0ZS4uLiIpIHwgaHRtbCAlXTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5SYXRlU2VhcmNoVHlwZVNlbGVjdGlvblN0cmluZyAlXQogICAgICAgICAgICAgICAgICAgIFslIERhdGEuUmF0ZVNlYXJjaFNlbGVjdGlvblN0cmluZyAlXQogICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiZS4gZy4gRXF1YWxzIDI1JSBvciBHcmVhdGVyVGhhbiA3NSUiKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9maWVsZHNldD4KCiAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGltZVNlYXJjaFR5cGUiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiVGltZSByZXN0cmljdGlvbnMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdGl0bGU9IlslIFRyYW5zbGF0ZSgiTm8gdGltZSBzZXR0aW5ncyIpIHwgaHRtbCAlXSIgdHlwZT0icmFkaW8iICBpZD0iTm9UaW1lU2V0IiBuYW1lPSJUaW1lU2VhcmNoVHlwZSIgdmFsdWU9IiIgWyUgRGF0YS5pdGVtKCJUaW1lU2VhcmNoVHlwZTo6Tm9uZSIpICVdIC8+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTm9UaW1lU2V0Ij5bJSBUcmFuc2xhdGUoIkFsbCIpIHwgaHRtbCAlXTwvbGFiZWw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHRpdGxlPSJbJSBUcmFuc2xhdGUoIlNwZWNpZmljIGRhdGUiKSB8IGh0bWwgJV0iIHR5cGU9InJhZGlvIiBpZD0iRGF0ZSIgbmFtZT0iVGltZVNlYXJjaFR5cGUiIHZhbHVlPSJUaW1lUG9pbnQiIFslIERhdGEuaXRlbSgiVGltZVNlYXJjaFR5cGU6OlRpbWVQb2ludCIpICVdIC8+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iRGF0ZSI+WyUgVHJhbnNsYXRlKCJPbmx5IEZBUSBhcnRpY2xlcyBjcmVhdGVkIikgfCBodG1sICVdPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkl0ZW1DcmVhdGVUaW1lUG9pbnRTdGFydCAlXSBbJSBEYXRhLkl0ZW1DcmVhdGVUaW1lUG9pbnQgJV0gWyUgRGF0YS5JdGVtQ3JlYXRlVGltZVBvaW50Rm9ybWF0ICVdCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHRpdGxlPSIkVGVzdCJ7RGF0ZSByYW5nZSJ9IiB0eXBlPSJyYWRpbyIgaWQ9IkRhdGVSYW5nZSIgbmFtZT0iVGltZVNlYXJjaFR5cGUiIHZhbHVlPSJUaW1lU2xvdCIgWyUgRGF0YS5pdGVtKCJUaW1lU2VhcmNoVHlwZTo6VGltZVNsb3QiKSAlXSAvPgogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkRhdGVSYW5nZSI+WyUgVHJhbnNsYXRlKCJPbmx5IEZBUSBhcnRpY2xlcyBjcmVhdGVkIGJldHdlZW4iKSB8IGh0bWwgJV08L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIFslIERhdGEuSXRlbUNyZWF0ZVRpbWVTdGFydCAlXSBbJSBUcmFuc2xhdGUoImFuZCIpIHwgaHRtbCAlXSBbJSBEYXRhLkl0ZW1DcmVhdGVUaW1lU3RvcCAlXQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZmllbGRzZXQ+CgogICAgICAgICAgICA8ZmllbGRzZXQ+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJTZWFyY2gtUHJvZmlsZSBhcyBUZW1wbGF0ZT8iKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJTYXZlUHJvZmlsZSI+WyUgVHJhbnNsYXRlKCJTYXZlIGFzIFRlbXBsYXRlPyIpIHwgaHRtbCAlXTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHRpdGxlPSJTYXZlIGFzIFRlbXBsYXRlIiB0eXBlPSJjaGVja2JveCIgaWQ9IlNhdmVQcm9maWxlIiBuYW1lPSJTYXZlUHJvZmlsZSIgLz4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJQcm9maWwiPlslIFRyYW5zbGF0ZSgiVGVtcGxhdGUgTmFtZSIpIHwgaHRtbCAlXTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHRpdGxlPSJQaWNrIGEgcHJvZmlsIG5hbWUiIHR5cGU9InRleHQiIGlkPSJQcm9maWwiIG5hbWU9IlByb2ZpbGUiIHNpemU9IjMwIiB2YWx1ZT0iWyUgRGF0YS5Qcm9maWxlIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICA8ZGl2IGlkPSJCb3R0b21BY3Rpb25Sb3ciIGNsYXNzPSJBY3Rpb25Sb3ciPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iU3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlNlYXJjaCIpIHwgaHRtbCAlXSI+WyUgVHJhbnNsYXRlKCJTZWFyY2giKSB8IGh0bWwgJV08L2J1dHRvbj4KICAgICAgICAgICAgICAgIDxzcGFuPlslIFRyYW5zbGF0ZSgiT3V0cHV0IHRvIikgfCBodG1sICVdPC9zcGFuPgogICAgICAgICAgICAgICAgWyUgRGF0YS5SZXN1bHRGb3JtU3RyZyAlXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Zvcm0+CiAgICA8L2Rpdj4KPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJTZWFyY2giKSAlXQo=</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/CustomerFAQSearchOpenSearchDescriptionFAQNumber.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCjw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04IiA/Pgo8T3BlblNlYXJjaERlc2NyaXB0aW9uIHhtbG5zPSJodHRwOi8vYTkuY29tLy0vc3BlYy9vcGVuc2VhcmNoLzEuMS8iIHhtbG5zOmllPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL1NlYXJjaC8yMDA4LyI+CjxTaG9ydE5hbWU+WyUgQ29uZmlnKCJQcm9kdWN0TmFtZSIpIHwgaHRtbCAlXSAtIFslIFRyYW5zbGF0ZSgiQ3VzdG9tZXIiKSB8IGh0bWwgJV0gKFslIENvbmZpZygiRkFROjpGQVFIb29rIikgfCBodG1sICVdKTwvU2hvcnROYW1lPgo8RGVzY3JpcHRpb24+WyUgQ29uZmlnKCJQcm9kdWN0TmFtZSIpIHwgaHRtbCAlXSAtIFslIFRyYW5zbGF0ZSgiQ3VzdG9tZXIiKSB8IGh0bWwgJV0gKFslIENvbmZpZygiRkFROjpGQVFIb29rIikgfCBodG1sICVdKTwvRGVzY3JpcHRpb24+CjxJbnB1dEVuY29kaW5nPlslIEVudigiVXNlckNoYXJzZXQiKSAlXTwvSW5wdXRFbmNvZGluZz4KPFVybCB0eXBlPSJ0ZXh0L2h0bWwiIHRlbXBsYXRlPSJbJSBDb25maWcoIkh0dHBUeXBlIikgJV06Ly9bJSBDb25maWcoIkZRRE4iKSAlXVslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1DdXN0b21lckZBUVNlYXJjaDtTdWJhY3Rpb249U2VhcmNoO051bWJlcj17c2VhcmNoVGVybXN9IiAvPgo8SW1hZ2UgaGVpZ2h0PSIxNiIgd2lkdGg9IjE2IiB0eXBlPSJpbWFnZS94LWljb24iPlslIENvbmZpZygiSHR0cFR5cGUiKSAlXTovL1slIENvbmZpZygiRlFETiIpICVdWyUgQ29uZmlnKCJGcm9udGVuZDo6SW1hZ2VQYXRoIikgJV1pY29ucy9wcm9kdWN0LmljbzwvSW1hZ2U+CjwvT3BlblNlYXJjaERlc2NyaXB0aW9uPgo=</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/CustomerFAQSearchOpenSearchDescriptionFullText.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCjw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04IiA/Pgo8T3BlblNlYXJjaERlc2NyaXB0aW9uIHhtbG5zPSJodHRwOi8vYTkuY29tLy0vc3BlYy9vcGVuc2VhcmNoLzEuMS8iIHhtbG5zOmllPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL1NlYXJjaC8yMDA4LyI+CjxTaG9ydE5hbWU+WyUgQ29uZmlnKCJQcm9kdWN0TmFtZSIpIHwgaHRtbCAlXSAtIFslIFRyYW5zbGF0ZSgiQ3VzdG9tZXIiKSB8IGh0bWwgJV0gKFslIFRyYW5zbGF0ZSgiRkFRRnVsbHRleHQiKSB8IGh0bWwgJV0pPC9TaG9ydE5hbWU+CjxEZXNjcmlwdGlvbj5bJSBDb25maWcoIlByb2R1Y3ROYW1lIikgfCBodG1sICVdIC0gWyUgVHJhbnNsYXRlKCJDdXN0b21lciIpIHwgaHRtbCAlXSAoWyUgVHJhbnNsYXRlKCJGQVFGdWxsdGV4dCIpIHwgaHRtbCAlXSk8L0Rlc2NyaXB0aW9uPgo8SW5wdXRFbmNvZGluZz5bJSBFbnYoIlVzZXJDaGFyc2V0IikgJV08L0lucHV0RW5jb2Rpbmc+CjxVcmwgdHlwZT0idGV4dC9odG1sIiB0ZW1wbGF0ZT0iWyUgQ29uZmlnKCJIdHRwVHlwZSIpICVdOi8vWyUgQ29uZmlnKCJGUUROIikgJV1bJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249Q3VzdG9tZXJGQVFTZWFyY2g7U3ViYWN0aW9uPVNlYXJjaDtGdWxsdGV4dD17c2VhcmNoVGVybXN9IiAvPgo8SW1hZ2UgaGVpZ2h0PSIxNiIgd2lkdGg9IjE2IiB0eXBlPSJpbWFnZS94LWljb24iPlslIENvbmZpZygiSHR0cFR5cGUiKSAlXTovL1slIENvbmZpZygiRlFETiIpICVdWyUgQ29uZmlnKCJGcm9udGVuZDo6SW1hZ2VQYXRoIikgJV1pY29ucy9wcm9kdWN0LmljbzwvSW1hZ2U+CjwvT3BlblNlYXJjaERlc2NyaXB0aW9uPgo=</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/CustomerFAQSearchResultShort.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgo8ZGl2IGlkPSJNYWluQm94IiBjbGFzcz0iVGlja2V0VmlldyBBUklBUm9sZU1haW4gU2VhcmNoUmVzdWx0cyBbJSBDb25maWcoIlRpY2tldDo6RnJvbnRlbmQ6OkN1c3RvbWVyVGlja2V0T3ZlcnZpZXdTb3J0YWJsZSIpICVdIFNvcnRhYmxlIj4KICAgIDxkaXYgY2xhc3M9IkFjdGlvblJvdyI+CiAgICAgICAgPHVsIGNsYXNzPSJUYWJzIj4KICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07U3ViYWN0aW9uPUxvYWRQcm9maWxlO1slIERhdGEuTGluayB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICZsYXJyOyBbJSBUcmFuc2xhdGUoIkNoYW5nZSBzZWFyY2ggb3B0aW9ucyIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L2xpPgogICAgICAgIDwvdWw+ClslIFJlbmRlckJsb2NrU3RhcnQoIlBhZ2luYXRpb24iKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IlRhYnMgUGFnaW5hdGlvbiI+CiAgICAgICAgICAgIDxzdHJvbmc+WyUgRGF0YS5SZXN1bHQgfCBodG1sICVdPC9zdHJvbmc+IFslIFRyYW5zbGF0ZSgib2YiKSB8IGh0bWwgJV0gPHN0cm9uZz5bJSBEYXRhLlRvdGFsSGl0cyB8IGh0bWwgJV08L3N0cm9uZz4gLSBbJSBUcmFuc2xhdGUoIlBhZ2UiKSB8IGh0bWwgJV06IFslIERhdGEuU2l0ZU5hdkJhciAlXQogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiUGFnaW5hdGlvbiIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9IlNlYXJjaFRlcm1zIj4KICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiU2VhcmNoIFJlc3VsdHMgZm9yIikgfCBodG1sICVdOjwvaDI+ClslIFJlbmRlckJsb2NrU3RhcnQoIlNlYXJjaFRlcm1zIikgJV0KICAgICAgICAgICAgPHNwYW4+CiAgICAgICAgICAgICAgICBbJSBEYXRhLkF0dHJpYnV0ZSB8IGh0bWwgJV06IFslIERhdGEuVmFsdWUgfCBodG1sICVdCiMgaGlkZSByZW1vdmUgbGluaywgZnVuY3Rpb25hbGl0eSBpcyBub3QgeWV0IGltcGxlbWVudGVkCiMgICAgICAgICAgICAgICAgPGEgdGl0bGU9IlslIFRyYW5zbGF0ZSgiUmVtb3ZlIHRoaXMgU2VhcmNoIFRlcm0uIikgfCBodG1sICVdIiBocmVmPSJbJSBEYXRhLlNlYXJjaFZhbHVlICVdIj4mdGltZXM7PC9hPgogICAgICAgICAgICA8L3NwYW4+ClslIFJlbmRlckJsb2NrRW5kKCJTZWFyY2hUZXJtcyIpICVdCiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgIDx0YWJsZSBjbGFzcz0iT3ZlcnZpZXciPgogICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJGQVFOdW1iZXIgWyUgRGF0YS5GQVFJRFNvcnQgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtTdWJhY3Rpb249U2VhcmNoO1NvcnRCeT1GQVFJRDtPcmRlcj1bJSBEYXRhLk9yZGVyIHwgdXJpICVdO1Byb2ZpbGU9WyUgRGF0YS5Qcm9maWxlIHwgdXJpICVdO1Rha2VMYXN0U2VhcmNoPTE7RmlsdGVyPVslIERhdGEuRmlsdGVyIHwgdXJpICVdO0xpbWl0PVslIERhdGEuTGltaXQgfCB1cmkgJV07VHlwZT1bJSBEYXRhLlR5cGUgfCB1cmkgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgQ29uZmlnKCJGQVE6OkZBUUhvb2siKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9IlRpdGxlIFslIERhdGEuVGl0bGVTb3J0ICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07U3ViYWN0aW9uPVNlYXJjaDtTb3J0Qnk9VGl0bGU7T3JkZXI9WyUgRGF0YS5PcmRlciB8IHVyaSAlXTtQcm9maWxlPVslIERhdGEuUHJvZmlsZSB8IHVyaSAlXTtUYWtlTGFzdFNlYXJjaD0xO0ZpbHRlcj1bJSBEYXRhLkZpbHRlciB8IHVyaSAlXTtMaW1pdD1bJSBEYXRhLkxpbWl0IHwgdXJpICVdO1R5cGU9WyUgRGF0YS5UeXBlIHwgdXJpICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVGl0bGUiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJDYXRlZ29yeSBbJSBEYXRhLkNhdGVnb3J5U29ydCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1N1YmFjdGlvbj1TZWFyY2g7U29ydEJ5PUNhdGVnb3J5O09yZGVyPVslIERhdGEuT3JkZXIgfCB1cmkgJV07UHJvZmlsZT1bJSBEYXRhLlByb2ZpbGUgfCB1cmkgJV07VGFrZUxhc3RTZWFyY2g9MTtGaWx0ZXI9WyUgRGF0YS5GaWx0ZXIgfCB1cmkgJV07TGltaXQ9WyUgRGF0YS5MaW1pdCB8IHVyaSAlXTtUeXBlPVslIERhdGEuVHlwZSB8IHVyaSAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkNhdGVnb3J5IikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L3RoPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJIZWFkZXJMYW5ndWFnZSIpICVdCiAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJMYW5ndWFnZSBbJSBEYXRhLkxhbmd1YWdlU29ydCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1N1YmFjdGlvbj1TZWFyY2g7U29ydEJ5PUxhbmd1YWdlO09yZGVyPVslIERhdGEuT3JkZXIgfCB1cmkgJV07UHJvZmlsZT1bJSBEYXRhLlByb2ZpbGUgfCB1cmkgJV07VGFrZUxhc3RTZWFyY2g9MTtGaWx0ZXI9WyUgRGF0YS5GaWx0ZXIgfCB1cmkgJV07TGltaXQ9WyUgRGF0YS5MaW1pdCB8IHVyaSAlXTtUeXBlPVslIERhdGEuVHlwZSB8IHVyaSAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkxhbmd1YWdlIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L3RoPgpbJSBSZW5kZXJCbG9ja0VuZCgiSGVhZGVyTGFuZ3VhZ2UiKSAlXQogICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iQ2hhbmdlZCBbJSBEYXRhLkNoYW5nZWRTb3J0ICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07U3ViYWN0aW9uPVNlYXJjaDtTb3J0Qnk9Q2hhbmdlZDtPcmRlcj1bJSBEYXRhLk9yZGVyIHwgdXJpICVdO1Byb2ZpbGU9WyUgRGF0YS5Qcm9maWxlIHwgdXJpICVdO1Rha2VMYXN0U2VhcmNoPTE7RmlsdGVyPVslIERhdGEuRmlsdGVyIHwgdXJpICVdO0xpbWl0PVslIERhdGEuTGltaXQgfCB1cmkgJV07VHlwZT1bJSBEYXRhLlR5cGUgfCB1cmkgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJDaGFuZ2VkIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L3RoPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJIZWFkZXJEeW5hbWljRmllbGQiKSAlXQogICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iRHluYW1pY0ZpZWxkIFslIERhdGEuQ1NTICVdIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiSGVhZGVyRHluYW1pY0ZpZWxkU29ydGFibGUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtTdWJhY3Rpb249U2VhcmNoO1NvcnRCeT1EeW5hbWljRmllbGRfWyUgRGF0YS5EeW5hbWljRmllbGROYW1lIHwgdXJpICVdO09yZGVyPVslIERhdGEuT3JkZXIgfCB1cmkgJV07RmlsdGVyPVslIERhdGEuRmlsdGVyIHwgdXJpICVdO0xpbWl0PVslIERhdGEuTGltaXQgfCB1cmkgJV07U2hvd0Nsb3NlZFRpY2tldHM9WyUgRGF0YS5TaG93Q2xvc2VkIHwgdXJpICVdO1R5cGU9WyUgRGF0YS5UeXBlIHwgdXJpICVdO1Byb2ZpbGU9WyUgRGF0YS5Qcm9maWxlIHwgdXJpICVdO1Rha2VMYXN0U2VhcmNoPTEiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKERhdGEuTGFiZWwpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2E+ClslIFJlbmRlckJsb2NrRW5kKCJIZWFkZXJEeW5hbWljRmllbGRTb3J0YWJsZSIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkhlYWRlckR5bmFtaWNGaWVsZE5vdFNvcnRhYmxlIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+WyUgVHJhbnNsYXRlKERhdGEuTGFiZWwpIHwgaHRtbCAlXTwvc3Bhbj4KWyUgUmVuZGVyQmxvY2tFbmQoIkhlYWRlckR5bmFtaWNGaWVsZE5vdFNvcnRhYmxlIikgJV0KICAgICAgICAgICAgICAgICAgICA8L3RoPgpbJSBSZW5kZXJCbG9ja0VuZCgiSGVhZGVyRHluYW1pY0ZpZWxkIikgJV0KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgIDx0Ym9keT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiTm9EYXRhRm91bmRNc2ciKSAlXQogICAgICAgICAgICAgICAgPHRyIGlkPSJFbXB0eU1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSI2Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyI+WyUgVHJhbnNsYXRlKCJObyBGQVEgZGF0YSBmb3VuZC4iKSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJOb0RhdGFGb3VuZE1zZyIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZCIpICVdCiAgICAgICAgICAgICAgICA8dHIgY2xhc3M9Ik1hc3RlckFjdGlvbiIgdGl0bGU9IlslIERhdGEuTnVtYmVyIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJGQVFOdW1iZXIiPjxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1DdXN0b21lckZBUVpvb207SXRlbUlEPVslIERhdGEuRkFRSUQgfCB1cmkgJV0iIGNsYXNzPSJNYXN0ZXJBY3Rpb25MaW5rIj5bJSBEYXRhLk51bWJlciB8IGh0bWwgJV08L2E+PC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlRpdGxlIiB0aXRsZT0iWyUgRGF0YS5UdGl0bGUgJV0iPlslIERhdGEuQ2xlYW5UaXRsZXwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJDYXRlZ29yeSI+WyUgRGF0YS5DYXRlZ29yeU5hbWUgfCB0cnVuY2F0ZSg2MCkgfCBodG1sICVdPC90ZD4KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkTGFuZ3VhZ2UiKSAlXQogICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iTGFuZ3VhZ2UiPlslIERhdGEuTGFuZ3VhZ2UgfCB0cnVuY2F0ZSg1KSB8IGh0bWwgJV08L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkTGFuZ3VhZ2UiKSAlXQogICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iQ2hhbmdlZCI+WyUgRGF0YS5DaGFuZ2VkIHwgTG9jYWxpemUoIlRpbWVTaG9ydCIpICVdPC90ZD4KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVjb3JkRHluYW1pY0ZpZWxkIikgJV0KICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IkR5bmFtaWNGaWVsZCIgdGl0bGU9IlslIERhdGEuVGl0bGUgfCBodG1sICVdIj5bJSBEYXRhLlZhbHVlICVdPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZER5bmFtaWNGaWVsZCIpICVdCiAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkIikgJV0KICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICA8L3RhYmxlPgogICAgPC9kaXY+ClslIFJlbmRlckJsb2NrU3RhcnQoIkJvdHRvbVN1Yk5hdmlnYXRpb24iKSAlXQogICAgPGRpdiBpZD0iQm90dG9tQWN0aW9uUm93IiBjbGFzcz0iQWN0aW9uUm93IEJpZ0J1dHRvbnMiPgogICAgICAgIDx1bCBjbGFzcz0iVGFicyI+CiAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1N1YmFjdGlvbj1Mb2FkUHJvZmlsZTtbJSBEYXRhLkxpbmsgfCB1cmkgJV0iPgogICAgICAgICAgICAgICAgICAgICZsYXJyOyBbJSBUcmFuc2xhdGUoIkNoYW5nZSBzZWFyY2ggb3B0aW9ucyIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L2xpPgogICAgICAgIDwvdWw+CiAgICAgICAgPGRpdiBjbGFzcz0iVGFicyBQYWdpbmF0aW9uIj4KICAgICAgICAgICAgPHN0cm9uZz5bJSBEYXRhLlJlc3VsdCB8IGh0bWwgJV08L3N0cm9uZz4gWyUgVHJhbnNsYXRlKCJvZiIpIHwgaHRtbCAlXSA8c3Ryb25nPlslIERhdGEuVG90YWxIaXRzIHwgaHRtbCAlXTwvc3Ryb25nPiAtIFslIFRyYW5zbGF0ZSgiUGFnZSIpIHwgaHRtbCAlXTogWyUgRGF0YS5TaXRlTmF2QmFyICVdCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJCb3R0b21TdWJOYXZpZ2F0aW9uIikgJV0KPC9kaXY+Cg==</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/CustomerFAQZoom.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCiMjIG5vZmlsdGVyKFRpZHlBbGw6OlBsdWdpbjo6T1RPQk86OlRUOjpTY3JpcHRVc2FnZSkKCjxkaXYgaWQ9Im9vb0NvbnRlbnQiPgoKICAgIDxkaXYgaWQ9Im9vb0hlYWRlciI+CiAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGgxPlslIFRyYW5zbGF0ZSgiRkFRIEV4cGxvcmVyIikgfCBodG1sICVdPC9oMT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQnJlYWRDcnVtYiI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkZBUVBhdGhDYXRlZ29yeUVsZW1lbnQiKSAlXQogICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUN1c3RvbWVyRkFRRXhwbG9yZXI7Q2F0ZWdvcnlJRD1bJSBEYXRhLkNhdGVnb3J5SUQgfCB1cmkgJV0iPgogICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0nb29vZyc+WyUgVHJhbnNsYXRlKERhdGEuTmFtZSkgfCBodG1sICVdPC9oMz4KICAgICAgICAgICAgICAgIDwvYT4KWyUgUmVuZGVyQmxvY2tFbmQoIkZBUVBhdGhDYXRlZ29yeUVsZW1lbnQiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJGQVFQYXRoSXRlbUVsZW1lbnQiKSAlXQogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSdvb29nJz5bJSBEYXRhLlRpdGxlIHwgaHRtbCAlXTwvaDM+ClslIFJlbmRlckJsb2NrRW5kKCJGQVFQYXRoSXRlbUVsZW1lbnQiKSAlXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGlkPSJvb29TZWFyY2hCb3giPgogICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgbmFtZT0iY29tcG9zZSI+CiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJDdXN0b21lckZBUUV4cGxvcmVyIi8+CiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJTZWFyY2giLz4KCiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9J29vb2cnPgogICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJvb29mbyBvb29mby1zZWFyY2giPjwvaT4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iV2hhdCIgaWQ9Im9vb1NlYXJjaCIgdGl0bGU9IlslIFRyYW5zbGF0ZSgnRkFRIFNlYXJjaCcpIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGlkPSdvb29TZWFyY2hMYWJlbCc+WyUgVHJhbnNsYXRlKCdGQVEgU2VhcmNoJykgfCBodG1sICVdPC9zcGFuPgogICAgICAgICAgICAgICAgPC9oMz4KICAgICAgICAgICAgPC9mb3JtPgogICAgICAgIDwvZGl2PgojICAgICAgICAgICAgPHVsIGlkPSJGQVFPcHRpb25zIj4KIyAgICAgICAgICAgICAgICA8bGk+CiMgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1DdXN0b21lckZBUVByaW50O0l0ZW1JRD1bJSBEYXRhLkl0ZW1JRCB8IHVyaSAlXSIgY2xhc3M9IlByaW50IEFzUG9wdXAiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlByaW50IikgfCBodG1sICVdIj4KIyAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1wcmludCI+PC9pPgojICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+WyUgVHJhbnNsYXRlKCJQcmludCIpIHwgaHRtbCAlXTwvc3Bhbj4KIyAgICAgICAgICAgICAgICAgICAgPC9hPgojICAgICAgICAgICAgICAgIDwvbGk+CiMgICAgICAgICAgICA8L3VsPgogICAgPC9kaXY+CgogICAgPGRpdiBpZD0ib29vTWFpbkJveCI+CgogICAgICAgIDxkaXYgY2xhc3M9J1dpZGdldFNpbXBsZSc+CiAgICAgICAgICAgIDxoMiB0aXRsZT0iWyUgRGF0YS5UaXRsZSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgWyUgRGF0YS5UaXRsZSB8IGh0bWwgJV0KICAgICAgICAgICAgPC9oMj4KCiAgICAgICAgICAgIDx1bCBpZD0iTWVzc2FnZXMiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBdHRhY2htZW50SGVhZGVyIikgJV0KICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iQ3VzdG9tZXIgVmlzaWJsZSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iTWVzc2FnZUhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMz5bJSBUcmFuc2xhdGUoIkF0dGFjaG1lbnRzIikgfCBodG1sICVdOjwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJBdHRhY2htZW50cyI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkF0dGFjaG1lbnRSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtcGFwZXJjbGlwIj48L2k+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJEb3dubG9hZEF0dGFjaG1lbnQiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkRvd25sb2FkIEF0dGFjaG1lbnQiKSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07U3ViYWN0aW9uPURvd25sb2FkQXR0YWNobWVudDtJdGVtSUQ9WyUgRGF0YS5JdGVtSUQgfCB1cmkgJV07RmlsZUlEPVslIERhdGEuRmlsZUlEIHwgdXJpICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkZpbGVuYW1lIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBbJSBEYXRhLkZpbGVzaXplIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxici8+ClslIFJlbmRlckJsb2NrRW5kKCJBdHRhY2htZW50Um93IikgJV0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJBdHRhY2htZW50SGVhZGVyIikgJV0KCiNbJSBSZW5kZXJCbG9ja1N0YXJ0KCJCcm93c2VyTGlua01lc3NhZ2UiKSAlXQojIyBTaG93IGluZm8sIHRoYXQgbGlua3Mgd2l0aGluIHRoZSBpZnJhbWUgbXVzdCBiZSBjbGlja2VkIHdpdGggc3RyZy9jbWQvc2hpZnQgKGRlcGVuZGluZyBvbiB0aGUgdXNlZCBicm93c2VyIGFuZCBvcykKIyMgdG8gb3BlbiB0aGUgbGlua3MgaW4gYSBuZXcgd2luZG93IHdpdGhvdXQgdGhlIHNlY3VyaXR5IHBlcm1pc3Npb25zIGdpdmVuIHRvIHRoZSBpZnJhbWUKIyAgICAgICAgICAgIDxsaT4KIyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGQVFNZXNzYWdlQnJvd3NlciI+CiMgICAgICAgICAgICAgICAgICAgIDxwPgojICAgICAgICBbJSBUcmFuc2xhdGUoIlRvIG9wZW4gbGlua3MgaW4gdGhlIGZvbGxvd2luZyBkZXNjcmlwdGlvbiBibG9ja3MsIHlvdSBtaWdodCBuZWVkIHRvIHByZXNzIEN0cmwgb3IgQ21kIG9yIFNoaWZ0IGtleSB3aGlsZSBjbGlja2luZyB0aGUgbGluayAoZGVwZW5kaW5nIG9uIHlvdXIgYnJvd3NlciBhbmQgT1MpLiIpIHwgaHRtbCAlXQojICAgICAgICAgICAgICAgICAgICA8L3A+CiMgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJDbG9zZSIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiQ2xvc2UgdGhpcyBtZXNzYWdlIikgfCBodG1sICVdIiBocmVmPSIjIj48aSBjbGFzcz0iZmEgZmEtdGltZXMiPjwvaT48L2E+CiMgICAgICAgICAgICAgICAgPC9kaXY+CiMgICAgICAgICAgICA8L2xpPgojWyUgUmVuZGVyQmxvY2tFbmQoIkJyb3dzZXJMaW5rTWVzc2FnZSIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJGQVFDb250ZW50IikgJV0KICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iQ3VzdG9tZXIgVmlzaWJsZSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iTWVzc2FnZUhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMz5bJSBUcmFuc2xhdGUoRGF0YS5DYXB0aW9uKSB8IGh0bWwgJV06PC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ0cnVlIiBuYW1lPSJGaWVsZFN0YXRlIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiRkFRQ29udGVudEhUTUwiKSAlXQojIGV4ZWN1dGUgSUZyYW1lIEpTIGFzeW5jaHJvbm91c2x5LiBPdGhlcndpc2UgaXQgY291bGQgaGFwcGVuIGJlZm9yZSBvdXIgQVBJIHdhcyBsb2FkZWQKIyB0aGUgZm9sbG93aW5nIEpTIGNvZGUgbXVzdCBiZSB3aXRoaW4gdGhlIHRlbXBsYXRlLCBvdGhlcndpc2UgaXQgY291bGQgaGFwcGVuLCB0aGF0IGFsc28gdGhpcyBjb2RlIGl0c2VsZiBpcyBub3QgbG9hZGVkIHlldAo8c2NyaXB0PgpmdW5jdGlvbiBDaGVja0lGcmFtZUhlaWdodChJRnJhbWVJRCkgewogICAgaWYgKHR5cGVvZiBGQVEgPT09ICdvYmplY3QnICYmIHR5cGVvZiBGQVEuQ3VzdG9tZXIgPT09ICdvYmplY3QnICYmIHR5cGVvZiBGQVEuQ3VzdG9tZXIuRkFRWm9vbSA9PT0gJ29iamVjdCcpIHsKICAgICAgICBGQVEuQ3VzdG9tZXIuRkFRWm9vbS5JZnJhbWVBdXRvSGVpZ2h0KCQoJyMnICsgSUZyYW1lSUQpKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgQ2hlY2tJRnJhbWVIZWlnaHQoSUZyYW1lSUQpOwogICAgICAgIH0sIDUwMCk7CiAgICB9Cn0KPC9zY3JpcHQ+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iTWVzc2FnZUJvZHkiPgojIFVzZSB0aGUgSFRNTDUgc2FuZGJveCBhdHRyaWJ1dGUgdG8gcHJldmVudCBwbHVnaW5zIGFuZCBzY3JpcHRzIGZyb20gYmVpbmcgZXhlY3V0ZWQgaW4gdGhlIGJyb3dzZXIuCiMgQXBwZW5kIHNlc3Npb24gaW5mbyB0byBVUkwgYmVjYXVzZSBJRSB3aWxsIG5vdCBzZW5kIGNvb2tpZXMuCiMgU2V0ICdhbGxvdy1wb3B1cHMnIHRvIGFsbG93IElFMTArIHRvIG9wZW4gbGlua3MuIHJlZjogaHR0cDovL3d3dy53My5vcmcvaHRtbC93Zy93aWtpL0NoYW5nZVByb3Bvc2Fscy9zYW5kYm94X2FsbG93X3BvcHVwcwogICAgICAgICAgICAgICAgICAgICAgICA8aWZyYW1lIHNhbmRib3g9ImFsbG93LXNhbWUtb3JpZ2luIGFsbG93LXBvcHVwcyBtcy1hbGxvdy1wb3B1cHMgYWxsb3ctcG9wdXBzLXRvLWVzY2FwZS1zYW5kYm94IiBjbGFzcz0iRkFRRmllbGQiIGlkPSJJZnJhbWVGQVFbJSBEYXRhLkZpZWxkIHwgaHRtbCAlXSIgb25sb2FkPSJ3aW5kb3cuc2V0VGltZW91dCggZnVuY3Rpb24gKCl7IENoZWNrSUZyYW1lSGVpZ2h0KCdJZnJhbWVGQVFbJSBEYXRhLkZpZWxkIHwgaHRtbCAlXScpOyB9LCA1MDApOyIgc3JjPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249Q3VzdG9tZXJGQVFab29tO1N1YmFjdGlvbj1IVE1MVmlldztJdGVtSUQ9WyUgRGF0YS5JdGVtSUQgfCBodG1sICVdO0ZpZWxkPVslIERhdGEuRmllbGQgfCBodG1sICVdO1slIEVudigiU2Vzc2lvbk5hbWUiKSB8IGh0bWwgJV09WyUgRW52KCJTZXNzaW9uSUQiKSB8IGh0bWwgJV0iPjwvaWZyYW1lPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiRkFRQ29udGVudEhUTUwiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJGQVFDb250ZW50UGxhaW4iKSAlXQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkFydGljbGVGQVFDb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkNvbnRlbnQgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJGQVFDb250ZW50UGxhaW4iKSAlXQogICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkZBUUNvbnRlbnQiKSAlXQoKICAgICAgICAgICAgPC91bD4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgaWQ9Ilpvb21TaWRlYmFyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Ik1lc3NhZ2VIZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDxoMz5bJSBUcmFuc2xhdGUoIkZBUSBJbmZvcm1hdGlvbiIpIHwgaHRtbCAlXTwvaDM+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8dWwgaWQ9Ik1ldGFkYXRhIj4KICAgICAgICAgICAgICAgICAgICA8bGk+PHNwYW4gY2xhc3M9IktleSI+WyUgVHJhbnNsYXRlKCJBcnRpY2xlIE51bWJlciIpIHwgaHRtbCAlXTo8L3NwYW4+IDxzcGFuPlslIERhdGEuTnVtYmVyIHwgaHRtbCAlXTwvc3Bhbj48L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT48c3BhbiBjbGFzcz0iS2V5Ij5bJSBUcmFuc2xhdGUoIkNhdGVnb3J5IikgfCBodG1sICVdOjwvc3Bhbj4gPHNwYW4gdGl0bGU9IlslIFRyYW5zbGF0ZShEYXRhLkNhdGVnb3J5TmFtZSkgfCBodG1sICVdIj5bJSBUcmFuc2xhdGUoRGF0YS5DYXRlZ29yeU5hbWUpIHwgaHRtbCAlXTwvc3Bhbj48L2xpPgoKICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9IktleXdvcmRzQ29udGFpbmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IktleSI+WyUgVHJhbnNsYXRlKCJLZXl3b3JkcyIpIHwgaHRtbCAlXTo8L3NwYW4+ClslIFJlbmRlckJsb2NrU3RhcnQoIktleXdvcmRzIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IktleXdvcmQiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlNlYXJjaCBmb3IgYXJ0aWNsZXMgd2l0aCBrZXl3b3JkIikgfCBodG1sICVdOiBbJSBEYXRhLktleXdvcmQgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1DdXN0b21lckZBUUV4cGxvcmVyO1N1YmFjdGlvbj1TZWFyY2g7S2V5d29yZD1bJSBEYXRhLktleXdvcmQgfCB1cmkgJV0iPlslIERhdGEuS2V5d29yZCB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KWyUgUmVuZGVyQmxvY2tFbmQoIktleXdvcmRzIikgJV0KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT48c3BhbiBjbGFzcz0iS2V5Ij5bJSBUcmFuc2xhdGUoIlN0YXRlIikgfCBodG1sICVdOjwvc3Bhbj4gPHNwYW4gdGl0bGU9IlslIFRyYW5zbGF0ZShEYXRhLlN0YXRlKSB8IGh0bWwgJV0iPlslIFRyYW5zbGF0ZShEYXRhLlN0YXRlKSB8IGh0bWwgJV08L3NwYW4+PC9saT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiTGFuZ3VhZ2UiKSAlXQogICAgICAgICAgICAgICAgICAgIDxsaT48c3BhbiBjbGFzcz0iS2V5Ij5bJSBUcmFuc2xhdGUoIkxhbmd1YWdlIikgfCBodG1sICVdOjwvc3Bhbj4gPHNwYW4gdGl0bGU9IlslIFRyYW5zbGF0ZShEYXRhLkxhbmd1YWdlKSB8IGh0bWwgJV0iPlslIFRyYW5zbGF0ZShEYXRhLkxhbmd1YWdlKSB8IGh0bWwgJV08L3NwYW4+PC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkxhbmd1YWdlIikgJV0KCiMgc2hvdyBmYXEgZHluYW1pYyBmaWVsZHMKWyUgUmVuZGVyQmxvY2tTdGFydCgiRkFRRHluYW1pY0ZpZWxkIikgJV0KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJLZXkiPlslIFRyYW5zbGF0ZShEYXRhLkxhYmVsKSB8IGh0bWwgJV06PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiB0aXRsZT0iWyUgRGF0YS5UaXRsZSB8IGh0bWwgJV0iPlslIERhdGEuVmFsdWUgJV08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkZBUUR5bmFtaWNGaWVsZCIpICVdCiMgZXhhbXBsZSBvZiBob3cgdG8gdXNlIGZpeGVkIGR5bmFtaWMgZmllbGQgYmxvY2tzIGZvciBjdXN0b21pemF0aW9ucwojIE5vdGU6IEZpZWxkMSBhbmQgRmllbGQyIGFyZSB0aGUgbmFtZXMgb2YgdGhlIGZpZWxkcyBhbmQgaGFkIHRvIGJlIHJlcGxhY2VkIHdpdGggdGhlIGFjdHVhbAojIGZpZWxkIG5hbWVzCiNbJSBSZW5kZXJCbG9ja1N0YXJ0KCJGQVFEeW5hbWljRmllbGRfRmllbGQxIikgJV0KIyAgICAgICAgICAgICAgICA8bGk+CiMgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJLZXkiPlslIFRyYW5zbGF0ZShEYXRhLkxhYmVsKSB8IGh0bWwgJV06PC9zcGFuPgojICAgICAgICAgICAgICAgICAgICA8c3BhbiB0aXRsZT0iWyUgRGF0YS5UaXRsZTEgfCBodG1sICVdIj5bJSBEYXRhLlZhbHVlICVdPC9zcGFuPgojICAgICAgICAgICAgICAgIDwvbGk+CiNbJSBSZW5kZXJCbG9ja0VuZCgiRkFRRHluYW1pY0ZpZWxkX0ZpZWxkMSIpICVdCiNbJSBSZW5kZXJCbG9ja1N0YXJ0KCJGQVFEeW5hbWljRmllbGRfRmllbGQyIikgJV0KIyAgICAgICAgICAgICAgICA8bGk+CiMgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJLZXkiPlslIFRyYW5zbGF0ZShEYXRhLkxhYmVsKSB8IGh0bWwgJV06PC9zcGFuPgojICAgICAgICAgICAgICAgICAgICA8c3BhbiB0aXRsZT0iWyUgRGF0YS5UaXRsZTIgfCBodG1sICVdIj5bJSBEYXRhLlZhbHVlICVdPC9zcGFuPgojICAgICAgICAgICAgICAgIDwvbGk+CiNbJSBSZW5kZXJCbG9ja0VuZCgiRkFRRHluYW1pY0ZpZWxkX0ZpZWxkMiIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJWaWV3UmF0aW5nIikgJV0KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJLZXkgUmF0aW5nTGFiZWwiPlslIFRyYW5zbGF0ZSgiUmF0aW5nIikgfCBodG1sICVdOjwvc3Bhbj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmF0ZVN0YXJzIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IlJhdGVTdGFyIj48aSBjbGFzcz0iZmEgZmEtc3RhciI+PC9pPjwvc3Bhbj4KWyUgUmVuZGVyQmxvY2tFbmQoIlJhdGVTdGFycyIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJhdGVTdGFyc0NvdW50IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IlJhdGVTdGFyVGV4dCIgdGl0bGU9IlslIERhdGEuU3RhcnMgfCBodG1sICVdIFslIFRyYW5zbGF0ZSgib3V0IG9mIDUiKSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5TdGFycyB8IGh0bWwgJV0gWyUgVHJhbnNsYXRlKCJvdXQgb2YgNSIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+ClslIFJlbmRlckJsb2NrRW5kKCJSYXRlU3RhcnNDb3VudCIpICVdCiAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIlZpZXdSYXRpbmciKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiVmlld1ZvdGVzIikgJV0KICAgICAgICAgICAgICAgICAgICA8bGk+PHNwYW4gY2xhc3M9IktleSI+WyUgVHJhbnNsYXRlKCJWb3RlcyIpIHwgaHRtbCAlXTo8L3NwYW4+IDxzcGFuIHRpdGxlPSJbJSBEYXRhLlZvdGVzIHwgaHRtbCAlXSI+WyUgRGF0YS5Wb3RlcyB8IGh0bWwgJV08L3NwYW4+PC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIlZpZXdWb3RlcyIpICVdCiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KClslIFJlbmRlckJsb2NrU3RhcnQoIkZBUVZvdGluZyIpICVdCiAgICAgICAgPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5hbWU9IkZBUVZvdGUiIGNsYXNzPSJQcmV2ZW50TXVsdGlwbGVTdWJtaXRzIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iVm90aW5nQ29udGFpbmVyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlZvdGluZ0JveCBWaXNpYmxlIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJGQVFWb3RpbmciIGNsYXNzPSJGQVFWb3RpbmciPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJNZXNzYWdlSGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMz5bJSBUcmFuc2xhdGUoIlJhdGluZyIpIHwgaHRtbCAlXTo8L2gzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTWVzc2VuZ2VyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlNwYWNpbmdUb3AiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IlZvdGluZ1F1ZXN0aW9uIj5bJSBUcmFuc2xhdGUoIkhvdyBoZWxwZnVsIHdhcyB0aGlzIGFydGljbGU/IFBsZWFzZSBnaXZlIHVzIHlvdXIgcmF0aW5nIGFuZCBoZWxwIHRvIGltcHJvdmUgdGhlIEZBUSBEYXRhYmFzZS4gVGhhbmsgWW91ISIpIHwgaHRtbCAlXTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlNwYWNpbmdUb3AiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iUmF0ZUxhYmVsQmVmb3JlIG9vb2ciPlslIFRyYW5zbGF0ZSgibm90IGhlbHBmdWwiKSB8IGh0bWwgJV08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KClslIFJlbmRlckJsb2NrU3RhcnQoIkZBUVZvdGluZ1JhdGVSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUmF0ZUJ1dHRvblslIERhdGEuVmFsdWUgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJSYXRlQnV0dG9uIFJhdGVVbkNoZWNrZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtc3Rhci1vIj48L2k+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1zdGFyIj48L2k+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuVGl0bGUgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJGQVFWb3RpbmdSYXRlUm93IikgJV0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJSYXRlTGFiZWxBZnRlciBvb29nIj5bJSBUcmFuc2xhdGUoInZlcnkgaGVscGZ1bCIpIHwgaHRtbCAlXTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iQ3VzdG9tZXJGQVFab29tIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJWb3RlIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJDYXRlZ29yeUlEIiB2YWx1ZT0iWyUgRGF0YS5DYXRlZ29yeUlEIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iSXRlbUlEIiB2YWx1ZT0iWyUgRGF0YS5JdGVtSUQgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJBY3Rpb25Sb3cgVm90aW5nQWN0aW9uUm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgIGlkPSJSYXRlU3VibWl0QnV0dG9uIiBjbGFzcz0iSGlkZGVuIG9vb1hTIiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJTdWJtaXQiKSB8IGh0bWwgJV0iPlslIFRyYW5zbGF0ZSgiU3VibWl0IikgfCBodG1sICVdPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iUmF0ZSIgdmFsdWU9IlslIERhdGEuU2VsZWN0ZWRSYXRlIHwgaHRtbCAlXSJpZD0iUmF0ZVZhbHVlIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9mb3JtPgpbJSBSZW5kZXJCbG9ja0VuZCgiRkFRVm90aW5nIikgJV0KCiAgICA8L2Rpdj4KPC9kaXY+Cg==</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/PublicFAQExplorer.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgo8ZGl2IGlkPSJvb29Db250ZW50Ij4KICAgIDxkaXYgaWQ9Im9vb0hlYWRlciI+CiAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGgxPlslIFRyYW5zbGF0ZSgiRkFRIEV4cGxvcmVyIikgfCBodG1sICVdPC9oMT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQnJlYWRDcnVtYiI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkZBUVBhdGhDYXRlZ29yeUVsZW1lbnQiKSAlXQogICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVB1YmxpY0ZBUUV4cGxvcmVyO0NhdGVnb3J5SUQ9WyUgRGF0YS5DYXRlZ29yeUlEIHwgdXJpICVdIj4KICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9J29vb2cnPlslIFRyYW5zbGF0ZShEYXRhLk5hbWUpIHwgaHRtbCAlXTwvaDM+CiAgICAgICAgICAgICAgICA8L2E+ClslIFJlbmRlckJsb2NrRW5kKCJGQVFQYXRoQ2F0ZWdvcnlFbGVtZW50IikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiRkFRUGF0aENhdGVnb3J5RWxlbWVudE5vTGluayIpICVdCiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9J29vb2cnPlslIFRyYW5zbGF0ZShEYXRhLk5hbWUpIHwgaHRtbCAlXTwvaDM+ClslIFJlbmRlckJsb2NrRW5kKCJGQVFQYXRoQ2F0ZWdvcnlFbGVtZW50Tm9MaW5rIikgJV0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBpZD0ib29vU2VhcmNoQm94Ij4KICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIG5hbWU9ImNvbXBvc2UiPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iUHVibGljRkFRRXhwbG9yZXIiLz4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlNlYXJjaCIvPgoKICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0nb29vZyc+CiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9Im9vb2ZvIG9vb2ZvLXNlYXJjaCI+PC9pPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJXaGF0IiBpZD0ib29vU2VhcmNoIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCdGQVEgU2VhcmNoJykgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gaWQ9J29vb1NlYXJjaExhYmVsJz5bJSBUcmFuc2xhdGUoJ0ZBUSBTZWFyY2gnKSB8IGh0bWwgJV08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2gzPgogICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGlkPSJvb29NYWluQm94Ij4KClslIFJlbmRlckJsb2NrU3RhcnQoIlN1YmNhdGVnb3JpZXMiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+ClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UmVzdWx0IikgJV0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlN1YmNhdGVnb3JpZXMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im9vb1N1YkJveCI+CiMgbm8gd2hpdGVzcGFjZS9uZXdsaW5lIHJlc3VsdHMgaW4gbm8gd2hpdGVzcGFjZSBiZXR3ZWVuIGRpc3BsYXk6IGlubGluZS1ibG9jazsgZWxlbWVudHMKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdSZXN1bHRSb3ciKSAlXTxhIGNsYXNzPSJvb29TdWIiIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO0NhdGVnb3J5SUQ9WyUgRGF0YS5DYXRlZ29yeUlEIHwgdXJpICVdIj4KICAgICAgICAgICAgICAgICAgICA8aDM+WyUgVHJhbnNsYXRlKERhdGEuTmFtZSkgfCBodG1sICVdPC9oMz4KICAgICAgICAgICAgICAgICAgICBbJSBJRiBEYXRhLlN1YkNhdGVnb3J5Q291bnQgJV0KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0ib29vU3ViQ291bnQiPlslIERhdGEuU3ViQ2F0ZWdvcnlDb3VudCB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgWyUgRU5EICVdCiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9Im9vb2cgb29vQ29tbWVudCI+WyUgVHJhbnNsYXRlKERhdGEuQ29tbWVudCkgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgPC9hPlslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1Jlc3VsdFJvdyIpICVdCiMgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3UmVzdWx0Um93IikKICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1Jlc3VsdCIpICVdCiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJTdWJjYXRlZ29yaWVzIikgJV0KCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJGQVFJdGVtTGlzdCIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+ClslIElGIERhdGEuQ2F0ZWdvcnlJRCA9PSAwICVdCiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJMYXRlc3QgdXBkYXRlZCBGQVEgYXJ0aWNsZXMiKSB8IGh0bWwgJV08L2gyPgpbJSBFTFNFICVdCiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJGQVEgQXJ0aWNsZXMiKSB8IGh0bWwgJV08L2gyPgpbJSBFTkQgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUGFnaW5hdGlvbiIpICVdCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJQYWdpbmF0aW9uIG9vbzEwZyI+CiAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5bJSBEYXRhLlJlc3VsdCB8IGh0bWwgJV08L3N0cm9uZz4gWyUgVHJhbnNsYXRlKCJvZiIpIHwgaHRtbCAlXSA8c3Ryb25nPlslIERhdGEuVG90YWxIaXRzIHwgaHRtbCAlXTwvc3Ryb25nPiAtIFslIFRyYW5zbGF0ZSgiUGFnZSIpIHwgaHRtbCAlXTogWyUgRGF0YS5TaXRlTmF2QmFyICVdCiAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlBhZ2luYXRpb24iKSAlXQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im9vb0ZBUUJveCI+ClslIFJlbmRlckJsb2NrU3RhcnQoIk5vRkFRRGF0YUZvdW5kTXNnIikgJV0KICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJvb29GQVEiIGhyZWY9IiMiPgogICAgICAgICAgICAgICAgICAgIDxoMz5bJSBUcmFuc2xhdGUoIk5vIEZBUSBhcnRpY2xlcyBmb3VuZC4iKSB8IGh0bWwgJV08L2gzPgogICAgICAgICAgICAgICAgPC9hPgpbJSBSZW5kZXJCbG9ja0VuZCgiTm9GQVFEYXRhRm91bmRNc2ciKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmQiKSAlXQogICAgICAgICAgICAgICAgPGEgY2xhc3M9Im9vb0ZBUSIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVB1YmxpY0ZBUVpvb207SXRlbUlEPVslIERhdGEuRkFRSUQgfCB1cmkgJV0iPgogICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0iVGl0bGUiIHRpdGxlPSJbJSBEYXRhLlRpdGxlIHwgaHRtbCAlXSI+WyUgRGF0YS5UaXRsZSB8IGh0bWwgJV08L2gzPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmRMYW5ndWFnZSIpICVdCiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9Ikxhbmd1YWdlIG9vb2ciIHRpdGxlPSJbJSBEYXRhLkxhbmd1YWdlIHwgaHRtbCAlXSI+WyUgRGF0YS5MYW5ndWFnZSB8IHRydW5jYXRlKDUpIHwgaHRtbCAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZExhbmd1YWdlIikgJV0KICAgICAgICAgICAgICAgIDwvYT4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZCIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJCb3R0b21TdWJOYXZpZ2F0aW9uIikgJV0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlBhZ2luYXRpb24iPgogICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+WyUgRGF0YS5SZXN1bHQgfCBodG1sICVdPC9zdHJvbmc+IFslIFRyYW5zbGF0ZSgib2YiKSB8IGh0bWwgJV0gPHN0cm9uZz5bJSBEYXRhLlRvdGFsSGl0cyB8IGh0bWwgJV08L3N0cm9uZz4gLSBbJSBUcmFuc2xhdGUoIlBhZ2UiKSB8IGh0bWwgJV06IFslIERhdGEuU2l0ZU5hdkJhciAlXQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJCb3R0b21TdWJOYXZpZ2F0aW9uIikgJV0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJGQVFJdGVtTGlzdCIpICVdCgogICAgPC9kaXY+CjwvZGl2Pgo=</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/PublicFAQSearch.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTZWFyY2giKSAlXQo8ZGl2IGlkPSJNYWluQm94IiBjbGFzcz0iU2VhcmNoIEFSSUFSb2xlTWFpbiI+CiAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KCiAgICAgICAgPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIG5hbWU9ImNvbXBvc2UiPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIi8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlNlYXJjaCIvPgogICAgICAgICAgICA8ZmllbGRzZXQ+CiAgICAgICAgICAgICAgICA8aDI+WyUgQ29uZmlnKCJGQVE6OkZBUUhvb2siKSAlXTwvaDI+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Ik51bWJlciI+WyUgQ29uZmlnKCJGQVE6OkZBUUhvb2siKSAlXTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHRpdGxlPSJbJSBDb25maWcoIkZBUTo6RkFRSG9vayIpICVdIiB0eXBlPSJ0ZXh0IiBuYW1lPSJOdW1iZXIiIGlkPSJOdW1iZXIiIHNpemU9IjMwIiB2YWx1ZT0iWyUgRGF0YS5OdW1iZXIgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJlLiBnLiAxMCo1MTU1IG9yIDEwNTY1OCoiKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgPGZpZWxkc2V0PgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiRnVsbHRleHQgc2VhcmNoIGluIEZBUSBhcnRpY2xlcyAoZS4gZy4gXCJKb2huKm5cIiBvciBcIldpbGwqXCIpIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iRnVsbFRleHQiPlslIFRyYW5zbGF0ZSgiRnVsbHRleHQiKSB8IGh0bWwgJV08L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0aXRsZT0iWyUgVHJhbnNsYXRlKCJGdWxsdGV4dCIpIHwgaHRtbCAlXSIgdHlwZT0idGV4dCIgaWQ9IkZ1bGxUZXh0IiBuYW1lPSJGdWxsdGV4dCIgdmFsdWU9IlslIERhdGEuRnVsbHRleHQgfCBodG1sICVdIiBzaXplPSIyMCIgLz4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJUaXRsZSI+WyUgVHJhbnNsYXRlKCJUaXRsZSIpIHwgaHRtbCAlXTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHRpdGxlPSJbJSBUcmFuc2xhdGUoIlRpdGxlIikgfCBodG1sICVdIiB0eXBlPSJ0ZXh0IiBpZD0iVGl0bGUiIG5hbWU9IlRpdGxlIiB2YWx1ZT0iWyUgRGF0YS5UaXRsZSB8IGh0bWwgJV0iIHNpemU9IjIwIiAvPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IktleXdvcmQiPlslIFRyYW5zbGF0ZSgiS2V5d29yZCIpIHwgaHRtbCAlXTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHRpdGxlPSJbJSBUcmFuc2xhdGUoIktleXdvcmQiKSB8IGh0bWwgJV0iIHR5cGU9InRleHQiIGlkPSJLZXl3b3JkIiBuYW1lPSJLZXl3b3JkIiB2YWx1ZT0iWyUgRGF0YS5LZXl3b3JkIHwgaHRtbCAlXSIgc2l6ZT0iMjAiIC8+CiAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiRHluYW1pY0ZpZWxkIikgJV0KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5MYWJlbCAlXQogICAgICAgICAgICAgICAgICAgIFslIERhdGEuRmllbGQgJV0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiRHluYW1pY0ZpZWxkIikgJV0KICAgICAgICAgICAgPC9maWVsZHNldD4KWyUgUmVuZGVyQmxvY2tTdGFydCgiTGFuZ3VhZ2UiKSAlXQogICAgICAgICAgICA8ZmllbGRzZXQ+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJMYW5ndWFnZSIpIHwgaHRtbCAlXTo8L2gyPgogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkxhbmd1YWdlc1N0cmcgJV0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2ZpZWxkc2V0PgpbJSBSZW5kZXJCbG9ja0VuZCgiTGFuZ3VhZ2UiKSAlXQogICAgICAgICAgICA8ZmllbGRzZXQ+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJDYXRlZ29yeSIpIHwgaHRtbCAlXTo8L2gyPgogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkNhdGVnb3JpZXNTdHJnICVdCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUaW1lU2VhcmNoVHlwZSI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJWb3RlIHJlc3RyaWN0aW9ucyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0aXRsZT0iWyUgVHJhbnNsYXRlKCJObyB2b3RlIHNldHRpbmdzIikgfCBodG1sICVdIiB0eXBlPSJyYWRpbyIgIGlkPSJOb1ZvdGVTZXQiIG5hbWU9IlZvdGVTZWFyY2hPcHRpb24iIHZhbHVlPSIiIFslIERhdGEuaXRlbSgiVm90ZVNlYXJjaE9wdGlvbjo6Tm9uZSIpICVdIC8+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTm9UVm90ZVNldCI+WyUgVHJhbnNsYXRlKCJBbGwiKSB8IGh0bWwgJV08L2xhYmVsPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0aXRsZT1bJSBUcmFuc2xhdGUoIlNwZWNpZmljIHZvdGVzIikgfCBodG1sICVdIHR5cGU9InJhZGlvIiBpZD0iVm90ZVBvaW50IiBuYW1lPSJWb3RlU2VhcmNoT3B0aW9uIiAgdmFsdWU9IlZvdGVQb2ludCIgWyUgRGF0YS5pdGVtKCJWb3RlU2VhcmNoT3B0aW9uOjpWb3RlUG9pbnQiKSAlXSAvPgogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlZvdGVQb2ludCI+WyUgVHJhbnNsYXRlKCJPbmx5IEZBUSBhcnRpY2xlcyB3aXRoIHZvdGVzLi4uIikgfCBodG1sICVdPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlZvdGVTZWFyY2hUeXBlU2VsZWN0aW9uU3RyaW5nICVdCiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IlZvdGVTZWFyY2giIHZhbHVlPSJbJSBEYXRhLlZvdGVTZWFyY2ggfCBodG1sICVdIiBjbGFzcz0iVzI1cGMiLz4KICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoImUuIGcuIEVxdWFscyAxMCBvciBHcmVhdGVyVGhhbiA2MCIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2ZpZWxkc2V0PgoKICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUaW1lU2VhcmNoVHlwZSI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJSYXRlIHJlc3RyaWN0aW9ucyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0aXRsZT0iWyUgVHJhbnNsYXRlKCJObyByYXRlIHNldHRpbmdzIikgfCBodG1sICVdIiB0eXBlPSJyYWRpbyIgIGlkPSJOb1JhdGVTZXQiIG5hbWU9IlJhdGVTZWFyY2hPcHRpb24iIHZhbHVlPSIiIFslIERhdGEuaXRlbSgiUmF0ZVNlYXJjaE9wdGlvbjo6Tm9uZSIpICVdIC8+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTm9SYXRlU2V0Ij5bJSBUcmFuc2xhdGUoIkFsbCIpIHwgaHRtbCAlXTwvbGFiZWw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHRpdGxlPVslIFRyYW5zbGF0ZSgiU3BlY2lmaWMgcmF0ZSIpIHwgaHRtbCAlXSB0eXBlPSJyYWRpbyIgaWQ9IlJhdGVQb2ludCIgbmFtZT0iUmF0ZVNlYXJjaE9wdGlvbiIgdmFsdWU9IlJhdGVQb2ludCIgWyUgRGF0YS5pdGVtKCJSYXRlU2VhcmNoT3B0aW9uOjpSYXRlUG9pbnQiKSAlXSAvPgogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlJhdGVQb2ludCI+WyUgVHJhbnNsYXRlKCJPbmx5IEZBUSBhcnRpY2xlcyB3aXRoIHJhdGUuLi4iKSB8IGh0bWwgJV08L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIFslIERhdGEuUmF0ZVNlYXJjaFR5cGVTZWxlY3Rpb25TdHJpbmcgJV0KICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlJhdGVTZWFyY2hTZWxlY3Rpb25TdHJpbmcgJV0KICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoImUuIGcuIEVxdWFscyAyNSUgb3IgR3JlYXRlclRoYW4gNzUlIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZmllbGRzZXQ+CgogICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRpbWVTZWFyY2hUeXBlIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlRpbWUgcmVzdHJpY3Rpb25zIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHRpdGxlPSJbJSBUcmFuc2xhdGUoIk5vIHRpbWUgc2V0dGluZ3MiKSB8IGh0bWwgJV0iIHR5cGU9InJhZGlvIiAgaWQ9Ik5vVGltZVNldCIgbmFtZT0iVGltZVNlYXJjaFR5cGUiIHZhbHVlPSIiIFslIERhdGEuaXRlbSgiVGltZVNlYXJjaFR5cGU6Ok5vbmUiKSAlXSAvPgogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Ik5vVGltZVNldCI+WyUgVHJhbnNsYXRlKCJBbGwiKSB8IGh0bWwgJV08L2xhYmVsPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0aXRsZT0iWyUgVHJhbnNsYXRlKCJTcGVjaWZpYyBkYXRlIikgfCBodG1sICVdIiB0eXBlPSJyYWRpbyIgaWQ9IkRhdGUiIG5hbWU9IlRpbWVTZWFyY2hUeXBlIiAgdmFsdWU9IlRpbWVQb2ludCIgWyUgRGF0YS5pdGVtKCJUaW1lU2VhcmNoVHlwZTo6VGltZVBvaW50IikgJV0gLz4KICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJEYXRlIj5bJSBUcmFuc2xhdGUoIk9ubHkgRkFRIGFydGljbGVzIGNyZWF0ZWQiKSB8IGh0bWwgJV08L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIFslIERhdGEuSXRlbUNyZWF0ZVRpbWVQb2ludFN0YXJ0ICVdIFslIERhdGEuSXRlbUNyZWF0ZVRpbWVQb2ludCAlXSBbJSBEYXRhLkl0ZW1DcmVhdGVUaW1lUG9pbnRGb3JtYXQgJV0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdGl0bGU9IlslIFRyYW5zbGF0ZSgiRGF0ZSByYW5nZSIpIHwgaHRtbCAlXSIgdHlwZT0icmFkaW8iIGlkPSJEYXRlUmFuZ2UiIG5hbWU9IlRpbWVTZWFyY2hUeXBlIiB2YWx1ZT0iVGltZVNsb3QiIFslIERhdGEuaXRlbSgiVGltZVNlYXJjaFR5cGU6OlRpbWVTbG90IikgJV0gLz4KICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJEYXRlUmFuZ2UiPlslIFRyYW5zbGF0ZSgiT25seSBGQVEgYXJ0aWNsZXMgY3JlYXRlZCBiZXR3ZWVuIikgfCBodG1sICVdPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkl0ZW1DcmVhdGVUaW1lU3RhcnQgJV0gWyUgVHJhbnNsYXRlKCJhbmQiKSB8IGh0bWwgJV0gWyUgRGF0YS5JdGVtQ3JlYXRlVGltZVN0b3AgJV0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2ZpZWxkc2V0PgoKICAgICAgICAgICAgPGRpdiBpZD0iQm90dG9tQWN0aW9uUm93IiBjbGFzcz0iQWN0aW9uUm93Ij4KICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9IlN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJTZWFyY2giKSB8IGh0bWwgJV0iPlslIFRyYW5zbGF0ZSgiU2VhcmNoIikgfCBodG1sICVdPC9idXR0b24+CiAgICAgICAgICAgICAgICA8c3Bhbj5bJSBUcmFuc2xhdGUoIk91dHB1dCB0byIpIHwgaHRtbCAlXTwvc3Bhbj4KICAgICAgICAgICAgICAgIFslIERhdGEuUmVzdWx0Rm9ybVN0cmcgJV0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9mb3JtPgogICAgPC9kaXY+CjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiU2VhcmNoIikgJV0K</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/PublicFAQSearchOpenSearchDescriptionFAQNumber.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCjw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04IiA/Pgo8T3BlblNlYXJjaERlc2NyaXB0aW9uIHhtbG5zPSJodHRwOi8vYTkuY29tLy0vc3BlYy9vcGVuc2VhcmNoLzEuMS8iIHhtbG5zOmllPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL1NlYXJjaC8yMDA4LyI+CjxTaG9ydE5hbWU+WyUgQ29uZmlnKCJQcm9kdWN0TmFtZSIpIHwgaHRtbCAlXSAtIFslIFRyYW5zbGF0ZSgiUHVibGljIikgfCBodG1sICVdIChbJSBDb25maWcoIkZBUTo6RkFRSG9vayIpIHwgaHRtbCAlXSk8L1Nob3J0TmFtZT4KPERlc2NyaXB0aW9uPlslIENvbmZpZygiUHJvZHVjdE5hbWUiKSB8IGh0bWwgJV0gLSBbJSBUcmFuc2xhdGUoIlB1YmxpYyIpIHwgaHRtbCAlXSAoWyUgQ29uZmlnKCJGQVE6OkZBUUhvb2siKSB8IGh0bWwgJV0pPC9EZXNjcmlwdGlvbj4KPElucHV0RW5jb2Rpbmc+WyUgRW52KCJVc2VyQ2hhcnNldCIpICVdPC9JbnB1dEVuY29kaW5nPgo8VXJsIHR5cGU9InRleHQvaHRtbCIgdGVtcGxhdGU9IlslIENvbmZpZygiSHR0cFR5cGUiKSAlXTovL1slIENvbmZpZygiRlFETiIpICVdWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVB1YmxpY0ZBUVNlYXJjaDtTdWJhY3Rpb249U2VhcmNoO0Z1bGx0ZXh0PXtzZWFyY2hUZXJtc30iIC8+CjxJbWFnZSBoZWlnaHQ9IjE2IiB3aWR0aD0iMTYiIHR5cGU9ImltYWdlL3gtaWNvbiI+WyUgQ29uZmlnKCJIdHRwVHlwZSIpICVdOi8vWyUgQ29uZmlnKCJGUUROIikgJV1bJSBDb25maWcoIkZyb250ZW5kOjpJbWFnZVBhdGgiKSAlXWljb25zL3Byb2R1Y3QuaWNvPC9JbWFnZT4KPC9PcGVuU2VhcmNoRGVzY3JpcHRpb24+Cg==</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/PublicFAQSearchOpenSearchDescriptionFullText.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCjw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04IiA/Pgo8T3BlblNlYXJjaERlc2NyaXB0aW9uIHhtbG5zPSJodHRwOi8vYTkuY29tLy0vc3BlYy9vcGVuc2VhcmNoLzEuMS8iIHhtbG5zOmllPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL1NlYXJjaC8yMDA4LyI+CjxTaG9ydE5hbWU+WyUgQ29uZmlnKCJQcm9kdWN0TmFtZSIpIHwgaHRtbCAlXSAtIFslIFRyYW5zbGF0ZSgiUHVibGljIikgfCBodG1sICVdIChbJSBUcmFuc2xhdGUoIkZBUUZ1bGx0ZXh0IikgfCBodG1sICVdKTwvU2hvcnROYW1lPgo8RGVzY3JpcHRpb24+WyUgQ29uZmlnKCJQcm9kdWN0TmFtZSIpIHwgaHRtbCAlXSAtIFslIFRyYW5zbGF0ZSgiUHVibGljIikgfCBodG1sICVdIChbJSBUcmFuc2xhdGUoIkZBUUZ1bGx0ZXh0IikgfCBodG1sICVdKTwvRGVzY3JpcHRpb24+CjxJbnB1dEVuY29kaW5nPlslIEVudigiVXNlckNoYXJzZXQiKSAlXTwvSW5wdXRFbmNvZGluZz4KPFVybCB0eXBlPSJ0ZXh0L2h0bWwiIHRlbXBsYXRlPSJbJSBDb25maWcoIkh0dHBUeXBlIikgJV06Ly9bJSBDb25maWcoIkZRRE4iKSAlXVslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1QdWJsaWNGQVFTZWFyY2g7U3ViYWN0aW9uPVNlYXJjaDtGdWxsdGV4dD17c2VhcmNoVGVybXN9IiAvPgo8SW1hZ2UgaGVpZ2h0PSIxNiIgd2lkdGg9IjE2IiB0eXBlPSJpbWFnZS94LWljb24iPlslIENvbmZpZygiSHR0cFR5cGUiKSAlXTovL1slIENvbmZpZygiRlFETiIpICVdWyUgQ29uZmlnKCJGcm9udGVuZDo6SW1hZ2VQYXRoIikgJV1pY29ucy9wcm9kdWN0LmljbzwvSW1hZ2U+CjwvT3BlblNlYXJjaERlc2NyaXB0aW9uPgo=</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/PublicFAQSearchResultShort.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgo8ZGl2IGlkPSJNYWluQm94IiBjbGFzcz0iVGlja2V0VmlldyBBUklBUm9sZU1haW4gU2VhcmNoUmVzdWx0cyBbJSBDb25maWcoIlRpY2tldDo6RnJvbnRlbmQ6OkN1c3RvbWVyVGlja2V0T3ZlcnZpZXdTb3J0YWJsZSIpICVdIFNvcnRhYmxlIj4KICAgIDxkaXYgY2xhc3M9IkFjdGlvblJvdyI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkJhY2siKSAlXQogICAgICAgIDx1bCBjbGFzcz0iVGFicyI+CiAgICAgICAgICAgIDxsaT48YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1bJSBEYXRhLlNlYXJjaEJhY2tMaW5rIHwgaHRtbCAlXSIgY2xhc3M9Ikhpc3RvcnlCYWNrIj4mbGFycjsgWyUgVHJhbnNsYXRlKCJCYWNrIHRvIEZBUSBFeHBsb3JlciIpIHwgaHRtbCAlXTwvYT48L2xpPgogICAgICAgIDwvdWw+CiAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiQmFjayIpICVdCiAgICAgICAgPHVsIGNsYXNzPSJUYWJzIj4KICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WyUgRGF0YS5MaW5rIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgJmxhcnI7IFslIFRyYW5zbGF0ZSgiQ2hhbmdlIHNlYXJjaCBvcHRpb25zIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAgPC91bD4KWyUgUmVuZGVyQmxvY2tTdGFydCgiUGFnaW5hdGlvbiIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iVGFicyBQYWdpbmF0aW9uIj4KICAgICAgICAgICAgPHN0cm9uZz5bJSBEYXRhLlJlc3VsdCB8IGh0bWwgJV08L3N0cm9uZz4gWyUgVHJhbnNsYXRlKCJvZiIpIHwgaHRtbCAlXSA8c3Ryb25nPlslIERhdGEuVG90YWxIaXRzIHwgaHRtbCAlXTwvc3Ryb25nPiAtIFslIFRyYW5zbGF0ZSgiUGFnZSIpIHwgaHRtbCAlXTogWyUgRGF0YS5TaXRlTmF2QmFyICVdCiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJQYWdpbmF0aW9uIikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iU2VhcmNoVGVybXMiPgogICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJTZWFyY2ggUmVzdWx0cyBmb3IiKSB8IGh0bWwgJV06PC9oMj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiU2VhcmNoVGVybXMiKSAlXQogICAgICAgICAgICA8c3Bhbj4KICAgICAgICAgICAgICAgIFslIERhdGEuQXR0cmlidXRlIHwgaHRtbCAlXTogWyUgRGF0YS5WYWx1ZSB8IGh0bWwgJV0KIyBoaWRlIHJlbW92ZSBsaW5rLCBmdW5jdGlvbmFsaXR5IGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQKIyAgICAgICAgICAgICAgICA8YSB0aXRsZT0iWyUgVHJhbnNsYXRlKCJSZW1vdmUgdGhpcyBTZWFyY2ggVGVybS4iKSB8IGh0bWwgJV0iIGhyZWY9IlslIERhdGEuU2VhcmNoVmFsdWUgJV0iPiZ0aW1lczs8L2E+CiAgICAgICAgICAgIDwvc3Bhbj4KWyUgUmVuZGVyQmxvY2tFbmQoIlNlYXJjaFRlcm1zIikgJV0KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgPHRhYmxlIGNsYXNzPSJPdmVydmlldyI+CiAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9IkZBUU51bWJlciBbJSBEYXRhLkZBUUlEU29ydCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1N1YmFjdGlvbj1TZWFyY2g7WyUgRGF0YS5Qcm9maWxlIHwgaHRtbCAlXVNvcnRCeT1GQVFJRDtPcmRlcj1bJSBEYXRhLk9yZGVyIHwgdXJpICVdO1Rha2VMYXN0U2VhcmNoPTE7RmlsdGVyPVslIERhdGEuRmlsdGVyIHwgdXJpICVdO0xpbWl0PVslIERhdGEuTGltaXQgfCB1cmkgJV07VHlwZT1bJSBEYXRhLlR5cGUgfCB1cmkgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgQ29uZmlnKCJGQVE6OkZBUUhvb2siKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9IlRpdGxlIFslIERhdGEuVGl0bGVTb3J0ICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07U3ViYWN0aW9uPVNlYXJjaDtbJSBEYXRhLlByb2ZpbGUgfCBodG1sICVdU29ydEJ5PVRpdGxlO09yZGVyPVslIERhdGEuT3JkZXIgfCB1cmkgJV07VGFrZUxhc3RTZWFyY2g9MTtGaWx0ZXI9WyUgRGF0YS5GaWx0ZXIgfCB1cmkgJV07TGltaXQ9WyUgRGF0YS5MaW1pdCB8IHVyaSAlXTtUeXBlPVslIERhdGEuVHlwZSB8IHVyaSAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRpdGxlIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iQ2F0ZWdvcnkgWyUgRGF0YS5DYXRlZ29yeVNvcnQgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtTdWJhY3Rpb249U2VhcmNoO1slIERhdGEuUHJvZmlsZSB8IGh0bWwgJV1Tb3J0Qnk9Q2F0ZWdvcnk7T3JkZXI9WyUgRGF0YS5PcmRlciB8IHVyaSAlXTtUYWtlTGFzdFNlYXJjaD0xO0ZpbHRlcj1bJSBEYXRhLkZpbHRlciB8IHVyaSAlXTtMaW1pdD1bJSBEYXRhLkxpbWl0IHwgdXJpICVdO1R5cGU9WyUgRGF0YS5UeXBlIHwgdXJpICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiQ2F0ZWdvcnkiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvdGg+ClslIFJlbmRlckJsb2NrU3RhcnQoIkhlYWRlckxhbmd1YWdlIikgJV0KICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9Ikxhbmd1YWdlIFslIERhdGEuTGFuZ3VhZ2VTb3J0ICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07U3ViYWN0aW9uPVNlYXJjaDtbJSBEYXRhLlByb2ZpbGUgfCBodG1sICVdU29ydEJ5PUxhbmd1YWdlO09yZGVyPVslIERhdGEuT3JkZXIgfCB1cmkgJV07VGFrZUxhc3RTZWFyY2g9MTtGaWx0ZXI9WyUgRGF0YS5GaWx0ZXIgfCB1cmkgJV07TGltaXQ9WyUgRGF0YS5MaW1pdCB8IHVyaSAlXTtUeXBlPVslIERhdGEuVHlwZSB8IHVyaSAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkxhbmd1YWdlIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L3RoPgpbJSBSZW5kZXJCbG9ja0VuZCgiSGVhZGVyTGFuZ3VhZ2UiKSAlXQogICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iQ2hhbmdlZCBbJSBEYXRhLkNoYW5nZWRTb3J0ICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07U3ViYWN0aW9uPVNlYXJjaDtbJSBEYXRhLlByb2ZpbGUgfCBodG1sICVdU29ydEJ5PUNoYW5nZWQ7T3JkZXI9WyUgRGF0YS5PcmRlciB8IHVyaSAlXTtUYWtlTGFzdFNlYXJjaD0xO0ZpbHRlcj1bJSBEYXRhLkZpbHRlciB8IHVyaSAlXTtMaW1pdD1bJSBEYXRhLkxpbWl0IHwgdXJpICVdO1R5cGU9WyUgRGF0YS5UeXBlIHwgdXJpICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiQ2hhbmdlZCIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC90aD4KWyUgUmVuZGVyQmxvY2tTdGFydCgiSGVhZGVyRHluYW1pY0ZpZWxkIikgJV0KICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9IkR5bmFtaWNGaWVsZCBbJSBEYXRhLkNTUyAlXSI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkhlYWRlckR5bmFtaWNGaWVsZFNvcnRhYmxlIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07U3ViYWN0aW9uPVNlYXJjaDtTb3J0Qnk9RHluYW1pY0ZpZWxkX1slIERhdGEuRHluYW1pY0ZpZWxkTmFtZSB8IHVyaSAlXTtPcmRlcj1bJSBEYXRhLk9yZGVyIHwgdXJpICVdO0ZpbHRlcj1bJSBEYXRhLkZpbHRlciB8IHVyaSAlXTtMaW1pdD1bJSBEYXRhLkxpbWl0IHwgdXJpICVdO1Nob3dDbG9zZWRUaWNrZXRzPVslIERhdGEuU2hvd0Nsb3NlZCB8IHVyaSAlXTtUeXBlPVslIERhdGEuVHlwZSB8IHVyaSAlXTtQcm9maWxlPVslIERhdGEuUHJvZmlsZSB8IHVyaSAlXTtUYWtlTGFzdFNlYXJjaD0xIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZShEYXRhLkxhYmVsKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgpbJSBSZW5kZXJCbG9ja0VuZCgiSGVhZGVyRHluYW1pY0ZpZWxkU29ydGFibGUiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJIZWFkZXJEeW5hbWljRmllbGROb3RTb3J0YWJsZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlslIFRyYW5zbGF0ZShEYXRhLkxhYmVsKSB8IGh0bWwgJV08L3NwYW4+ClslIFJlbmRlckJsb2NrRW5kKCJIZWFkZXJEeW5hbWljRmllbGROb3RTb3J0YWJsZSIpICVdCiAgICAgICAgICAgICAgICAgICAgPC90aD4KWyUgUmVuZGVyQmxvY2tFbmQoIkhlYWRlckR5bmFtaWNGaWVsZCIpICVdCiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICA8dGJvZHk+ClslIFJlbmRlckJsb2NrU3RhcnQoIk5vRGF0YUZvdW5kTXNnIikgJV0KICAgICAgICAgICAgICAgIDx0ciBpZD0iRW1wdHlNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iNiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiPlslIFRyYW5zbGF0ZSgiTm8gRkFRIGRhdGEgZm91bmQuIikgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiTm9EYXRhRm91bmRNc2ciKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmQiKSAlXQogICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJNYXN0ZXJBY3Rpb24iIHRpdGxlPSJbJSBEYXRhLk51bWJlciB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iRkFRTnVtYmVyIj48YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249UHVibGljRkFRWm9vbTtJdGVtSUQ9WyUgRGF0YS5GQVFJRCB8IHVyaSAlXTtab29tQmFja0xpbms9WyUgRGF0YS5ab29tQmFja0xpbmsgfCB1cmkgJV07IiBjbGFzcz0iTWFzdGVyQWN0aW9uTGluayI+WyUgRGF0YS5OdW1iZXIgfCBodG1sICVdPC9hPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJUaXRsZSIgdGl0bGU9IlslIERhdGEuVGl0bGUgJV0iPlslIERhdGEuQ2xlYW5UaXRsZSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iQ2F0ZWdvcnkiPlslIERhdGEuQ2F0ZWdvcnlOYW1lIHwgdHJ1bmNhdGUoNjApIHwgaHRtbCAlXTwvdGQ+ClslIFJlbmRlckJsb2NrU3RhcnQoIlJlY29yZExhbmd1YWdlIikgJV0KICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9Ikxhbmd1YWdlIj5bJSBEYXRhLkxhbmd1YWdlIHwgdHJ1bmNhdGUoNSkgfCBodG1sICVdPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlY29yZExhbmd1YWdlIikgJV0KICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IkNoYW5nZWQiIHRpdGxlPSJbJSBEYXRhLkNoYW5nZWQgfCBMb2NhbGl6ZSgiVGltZVNob3J0IikgJV0iPlslIERhdGEuQ2hhbmdlZCB8IHRydW5jYXRlKDIwKSB8IGh0bWwgJV08L3RkPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWNvcmREeW5hbWljRmllbGQiKSAlXQogICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iRHluYW1pY0ZpZWxkIiB0aXRsZT0iWyUgRGF0YS5UaXRsZSB8IGh0bWwgJV0iPlslIERhdGEuVmFsdWUgJV08L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVjb3JkRHluYW1pY0ZpZWxkIikgJV0KICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJSZWNvcmQiKSAlXQogICAgICAgICAgICA8L3Rib2R5PgogICAgICAgIDwvdGFibGU+CiAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQm90dG9tU3ViTmF2aWdhdGlvbiIpICVdCiAgICA8ZGl2IGlkPSJCb3R0b21BY3Rpb25Sb3ciIGNsYXNzPSJBY3Rpb25Sb3cgQmlnQnV0dG9ucyI+CiAgICAgICAgPHVsIGNsYXNzPSJUYWJzIj4KICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07U3ViYWN0aW9uPUxvYWRQcm9maWxlO1slIERhdGEuTGluayB8IHVyaSAlXSI+CiAgICAgICAgICAgICAgICAgICAgJmxhcnI7IFslIFRyYW5zbGF0ZSgiQ2hhbmdlIHNlYXJjaCBvcHRpb25zIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAgPC91bD4KICAgICAgICA8ZGl2IGNsYXNzPSJUYWJzIFBhZ2luYXRpb24iPgogICAgICAgICAgICA8c3Ryb25nPlslIERhdGEuUmVzdWx0IHwgaHRtbCAlXTwvc3Ryb25nPiBbJSBUcmFuc2xhdGUoIm9mIikgfCBodG1sICVdIDxzdHJvbmc+WyUgRGF0YS5Ub3RhbEhpdHMgfCBodG1sICVdPC9zdHJvbmc+IC0gWyUgVHJhbnNsYXRlKCJQYWdlIikgfCBodG1sICVdOiBbJSBEYXRhLlNpdGVOYXZCYXIgJV0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkJvdHRvbVN1Yk5hdmlnYXRpb24iKSAlXQo8L2Rpdj4K</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/PublicFAQZoom.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCiMjIG5vZmlsdGVyKFRpZHlBbGw6OlBsdWdpbjo6T1RPQk86OlRUOjpTY3JpcHRVc2FnZSkKCjxkaXYgaWQ9Im9vb0NvbnRlbnQiPgoKICAgIDxkaXYgaWQ9Im9vb0hlYWRlciI+CiAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGgxPlslIFRyYW5zbGF0ZSgiRkFRIEV4cGxvcmVyIikgfCBodG1sICVdPC9oMT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQnJlYWRDcnVtYiI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkZBUVBhdGhDYXRlZ29yeUVsZW1lbnQiKSAlXQogICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVB1YmxpY0ZBUUV4cGxvcmVyO0NhdGVnb3J5SUQ9WyUgRGF0YS5DYXRlZ29yeUlEIHwgdXJpICVdIj4KICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9J29vb2cnPlslIFRyYW5zbGF0ZShEYXRhLk5hbWUpIHwgaHRtbCAlXTwvaDM+CiAgICAgICAgICAgICAgICA8L2E+ClslIFJlbmRlckJsb2NrRW5kKCJGQVFQYXRoQ2F0ZWdvcnlFbGVtZW50IikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiRkFRUGF0aEl0ZW1FbGVtZW50IikgJV0KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0nb29vZyc+WyUgRGF0YS5UaXRsZSB8IGh0bWwgJV08L2gzPgpbJSBSZW5kZXJCbG9ja0VuZCgiRkFRUGF0aEl0ZW1FbGVtZW50IikgJV0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBpZD0ib29vU2VhcmNoQm94Ij4KICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIG5hbWU9ImNvbXBvc2UiPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iUHVibGljRkFRRXhwbG9yZXIiLz4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlNlYXJjaCIvPgoKICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0nb29vZyc+CiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9Im9vb2ZvIG9vb2ZvLXNlYXJjaCI+PC9pPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJXaGF0IiBpZD0ib29vU2VhcmNoIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCdGQVEgU2VhcmNoJykgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gaWQ9J29vb1NlYXJjaExhYmVsJz5bJSBUcmFuc2xhdGUoJ0ZBUSBTZWFyY2gnKSB8IGh0bWwgJV08L3NwYW4+CiAgICAgICAgICAgICAgICA8L2gzPgogICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgPC9kaXY+CiMgICAgICAgICAgICA8dWwgaWQ9IkZBUU9wdGlvbnMiPgojICAgICAgICAgICAgICAgIDxsaT4KIyAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVB1YmxpY0ZBUVByaW50O0l0ZW1JRD1bJSBEYXRhLkl0ZW1JRCB8IHVyaSAlXSIgY2xhc3M9IlByaW50IEFzUG9wdXAiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlByaW50IikgfCBodG1sICVdIj4KIyAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1wcmludCI+PC9pPgojICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+WyUgVHJhbnNsYXRlKCJQcmludCIpIHwgaHRtbCAlXTwvc3Bhbj4KIyAgICAgICAgICAgICAgICAgICAgPC9hPgojICAgICAgICAgICAgICAgIDwvbGk+CiMgICAgICAgICAgICA8L3VsPgogICAgPC9kaXY+CgogICAgPGRpdiBpZD0ib29vTWFpbkJveCI+CgogICAgICAgIDxkaXYgY2xhc3M9J1dpZGdldFNpbXBsZSc+CiAgICAgICAgICAgIDxoMiB0aXRsZT0iWyUgRGF0YS5UaXRsZSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgWyUgRGF0YS5UaXRsZSB8IGh0bWwgJV0KICAgICAgICAgICAgPC9oMj4KCiAgICAgICAgICAgIDx1bCBpZD0iTWVzc2FnZXMiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBdHRhY2htZW50SGVhZGVyIikgJV0KICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iUHVibGljIFZpc2libGUiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Ik1lc3NhZ2VIZWFkZXIiPgogICAgICAgICAgICAgICAgICAgICAgICA8aDM+WyUgVHJhbnNsYXRlKCJBdHRhY2htZW50cyIpIHwgaHRtbCAlXTo8L2gzPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQXR0YWNobWVudHMiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBdHRhY2htZW50Um93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXBhcGVyY2xpcCI+PC9pPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iRG93bmxvYWRBdHRhY2htZW50IiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJEb3dubG9hZCBBdHRhY2htZW50IikgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1N1YmFjdGlvbj1Eb3dubG9hZEF0dGFjaG1lbnQ7SXRlbUlEPVslIERhdGEuSXRlbUlEIHwgdXJpICVdO0ZpbGVJRD1bJSBEYXRhLkZpbGVJRCB8IHVyaSAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5GaWxlbmFtZSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgWyUgRGF0YS5GaWxlc2l6ZSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8YnIvPgpbJSBSZW5kZXJCbG9ja0VuZCgiQXR0YWNobWVudFJvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiQXR0YWNobWVudEhlYWRlciIpICVdCgojWyUgUmVuZGVyQmxvY2tTdGFydCgiQnJvd3NlckxpbmtNZXNzYWdlIikgJV0KIyMgU2hvdyBpbmZvLCB0aGF0IGxpbmtzIHdpdGhpbiB0aGUgaWZyYW1lIG11c3QgYmUgY2xpY2tlZCB3aXRoIHN0cmcvY21kL3NoaWZ0IChkZXBlbmRpbmcgb24gdGhlIHVzZWQgYnJvd3NlciBhbmQgb3MpCiMjIHRvIG9wZW4gdGhlIGxpbmtzIGluIGEgbmV3IHdpbmRvdyB3aXRob3V0IHRoZSBzZWN1cml0eSBwZXJtaXNzaW9ucyBnaXZlbiB0byB0aGUgaWZyYW1lCiMgICAgICAgICAgICA8bGk+CiMgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRkFRTWVzc2FnZUJyb3dzZXIiPgojICAgICAgICAgICAgICAgICAgICA8cD4KIyAgICAgICAgWyUgVHJhbnNsYXRlKCJUbyBvcGVuIGxpbmtzIGluIHRoZSBmb2xsb3dpbmcgZGVzY3JpcHRpb24gYmxvY2tzLCB5b3UgbWlnaHQgbmVlZCB0byBwcmVzcyBDdHJsIG9yIENtZCBvciBTaGlmdCBrZXkgd2hpbGUgY2xpY2tpbmcgdGhlIGxpbmsgKGRlcGVuZGluZyBvbiB5b3VyIGJyb3dzZXIgYW5kIE9TKS4iKSB8IGh0bWwgJV0KIyAgICAgICAgICAgICAgICAgICAgPC9wPgojICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iQ2xvc2UiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkNsb3NlIHRoaXMgbWVzc2FnZSIpIHwgaHRtbCAlXSIgaHJlZj0iIyI+PGkgY2xhc3M9ImZhIGZhLXRpbWVzIj48L2k+PC9hPgojICAgICAgICAgICAgICAgIDwvZGl2PgojICAgICAgICAgICAgPC9saT4KI1slIFJlbmRlckJsb2NrRW5kKCJCcm93c2VyTGlua01lc3NhZ2UiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiRkFRQ29udGVudCIpICVdCiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9IlB1YmxpYyBWaXNpYmxlIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJNZXNzYWdlSGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGgzPlslIFRyYW5zbGF0ZShEYXRhLkNhcHRpb24pIHwgaHRtbCAlXTo8L2gzPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9InRydWUiIG5hbWU9IkZpZWxkU3RhdGUiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJGQVFDb250ZW50SFRNTCIpICVdCiMgZXhlY3V0ZSBJRnJhbWUgSlMgYXN5bmNocm9ub3VzbHkuIE90aGVyd2lzZSBpdCBjb3VsZCBoYXBwZW4gYmVmb3JlIG91ciBBUEkgd2FzIGxvYWRlZAojIHRoZSBmb2xsb3dpbmcgSlMgY29kZSBtdXN0IGJlIHdpdGhpbiB0aGUgdGVtcGxhdGUsIG90aGVyd2lzZSBpdCBjb3VsZCBoYXBwZW4sIHRoYXQgYWxzbyB0aGlzIGNvZGUgaXRzZWxmIGlzIG5vdCBsb2FkZWQgeWV0CjxzY3JpcHQ+CmZ1bmN0aW9uIENoZWNrSUZyYW1lSGVpZ2h0KElGcmFtZUlEKSB7CiAgICBpZiAodHlwZW9mIEZBUSA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIEZBUS5DdXN0b21lciA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIEZBUS5DdXN0b21lci5GQVFab29tID09PSAnb2JqZWN0JykgewogICAgICAgIEZBUS5DdXN0b21lci5GQVFab29tLklmcmFtZUF1dG9IZWlnaHQoJCgnIycgKyBJRnJhbWVJRCkpOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgICAgICAgICBDaGVja0lGcmFtZUhlaWdodChJRnJhbWVJRCk7CiAgICAgICAgfSwgNTAwKTsKICAgIH0KfQo8L3NjcmlwdD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJNZXNzYWdlQm9keSI+CiMgVXNlIHRoZSBIVE1MNSBzYW5kYm94IGF0dHJpYnV0ZSB0byBwcmV2ZW50IHBsdWdpbnMgYW5kIHNjcmlwdHMgZnJvbSBiZWluZyBleGVjdXRlZCBpbiB0aGUgYnJvd3Nlci4KIyBBcHBlbmQgc2Vzc2lvbiBpbmZvIHRvIFVSTCBiZWNhdXNlIElFIHdpbGwgbm90IHNlbmQgY29va2llcy4KIyBTZXQgJ2FsbG93LXBvcHVwcycgdG8gYWxsb3cgSUUxMCsgdG8gb3BlbiBsaW5rcy4gcmVmOiBodHRwOi8vd3d3LnczLm9yZy9odG1sL3dnL3dpa2kvQ2hhbmdlUHJvcG9zYWxzL3NhbmRib3hfYWxsb3dfcG9wdXBzCiAgICAgICAgICAgICAgICAgICAgICAgIDxpZnJhbWUgc2FuZGJveD0iYWxsb3ctc2FtZS1vcmlnaW4gYWxsb3ctcG9wdXBzIG1zLWFsbG93LXBvcHVwcyBhbGxvdy1wb3B1cHMtdG8tZXNjYXBlLXNhbmRib3giIGNsYXNzPSJGQVFGaWVsZCIgaWQ9IklmcmFtZUZBUVslIERhdGEuRmllbGQgfCBodG1sICVdIiBvbmxvYWQ9IndpbmRvdy5zZXRUaW1lb3V0KCBmdW5jdGlvbiAoKXsgQ2hlY2tJRnJhbWVIZWlnaHQoJ0lmcmFtZUZBUVslIERhdGEuRmllbGQgfCBodG1sICVdJyk7IH0sIDUwMCk7IiBzcmM9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1QdWJsaWNGQVFab29tO1N1YmFjdGlvbj1IVE1MVmlldztJdGVtSUQ9WyUgRGF0YS5JdGVtSUQgfCBodG1sICVdO0ZpZWxkPVslIERhdGEuRmllbGQgfCBodG1sICVdIj48L2lmcmFtZT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkZBUUNvbnRlbnRIVE1MIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiRkFRQ29udGVudFBsYWluIikgJV0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJBcnRpY2xlRkFRQ29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5Db250ZW50ICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiRkFRQ29udGVudFBsYWluIikgJV0KICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJGQVFDb250ZW50IikgJV0KCiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGlkPSJab29tU2lkZWJhciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJNZXNzYWdlSGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICA8aDM+WyUgVHJhbnNsYXRlKCJGQVEgSW5mb3JtYXRpb24iKSB8IGh0bWwgJV08L2gzPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPHVsIGlkPSJNZXRhZGF0YSI+CiAgICAgICAgICAgICAgICAgICAgPGxpPjxzcGFuIGNsYXNzPSJLZXkiPlslIFRyYW5zbGF0ZSgiQXJ0aWNsZSBOdW1iZXIiKSB8IGh0bWwgJV06PC9zcGFuPiA8c3Bhbj5bJSBEYXRhLk51bWJlciB8IGh0bWwgJV08L3NwYW4+PC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+PHNwYW4gY2xhc3M9IktleSI+WyUgVHJhbnNsYXRlKCJDYXRlZ29yeSIpIHwgaHRtbCAlXTo8L3NwYW4+IDxzcGFuIHRpdGxlPSJbJSBUcmFuc2xhdGUoRGF0YS5DYXRlZ29yeU5hbWUpIHwgaHRtbCAlXSI+WyUgVHJhbnNsYXRlKERhdGEuQ2F0ZWdvcnlOYW1lKSB8IGh0bWwgJV08L3NwYW4+PC9saT4KCiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJLZXl3b3Jkc0NvbnRhaW5lciI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJLZXkiPlslIFRyYW5zbGF0ZSgiS2V5d29yZHMiKSB8IGh0bWwgJV06PC9zcGFuPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJLZXl3b3JkcyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJLZXl3b3JkIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJTZWFyY2ggZm9yIGFydGljbGVzIHdpdGgga2V5d29yZCIpIHwgaHRtbCAlXTogWyUgRGF0YS5LZXl3b3JkIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249UHVibGljRkFRRXhwbG9yZXI7U3ViYWN0aW9uPVNlYXJjaDtLZXl3b3JkPVslIERhdGEuS2V5d29yZCB8IHVyaSAlXSI+WyUgRGF0YS5LZXl3b3JkIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgpbJSBSZW5kZXJCbG9ja0VuZCgiS2V5d29yZHMiKSAlXQogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPjxzcGFuIGNsYXNzPSJLZXkiPlslIFRyYW5zbGF0ZSgiU3RhdGUiKSB8IGh0bWwgJV06PC9zcGFuPiA8c3BhbiB0aXRsZT0iWyUgVHJhbnNsYXRlKERhdGEuU3RhdGUpIHwgaHRtbCAlXSI+WyUgVHJhbnNsYXRlKERhdGEuU3RhdGUpIHwgaHRtbCAlXTwvc3Bhbj48L2xpPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJMYW5ndWFnZSIpICVdCiAgICAgICAgICAgICAgICAgICAgPGxpPjxzcGFuIGNsYXNzPSJLZXkiPlslIFRyYW5zbGF0ZSgiTGFuZ3VhZ2UiKSB8IGh0bWwgJV06PC9zcGFuPiA8c3BhbiB0aXRsZT0iWyUgVHJhbnNsYXRlKERhdGEuTGFuZ3VhZ2UpIHwgaHRtbCAlXSI+WyUgVHJhbnNsYXRlKERhdGEuTGFuZ3VhZ2UpIHwgaHRtbCAlXTwvc3Bhbj48L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiTGFuZ3VhZ2UiKSAlXQoKIyBzaG93IGZhcSBkeW5hbWljIGZpZWxkcwpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJGQVFEeW5hbWljRmllbGQiKSAlXQogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IktleSI+WyUgVHJhbnNsYXRlKERhdGEuTGFiZWwpIHwgaHRtbCAlXTo8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHRpdGxlPSJbJSBEYXRhLlRpdGxlIHwgaHRtbCAlXSI+WyUgRGF0YS5WYWx1ZSAlXTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiRkFRRHluYW1pY0ZpZWxkIikgJV0KIyBleGFtcGxlIG9mIGhvdyB0byB1c2UgZml4ZWQgZHluYW1pYyBmaWVsZCBibG9ja3MgZm9yIGN1c3RvbWl6YXRpb25zCiMgTm90ZTogRmllbGQxIGFuZCBGaWVsZDIgYXJlIHRoZSBuYW1lcyBvZiB0aGUgZmllbGRzIGFuZCBoYWQgdG8gYmUgcmVwbGFjZWQgd2l0aCB0aGUgYWN0dWFsCiMgZmllbGQgbmFtZXMKI1slIFJlbmRlckJsb2NrU3RhcnQoIkZBUUR5bmFtaWNGaWVsZF9GaWVsZDEiKSAlXQojICAgICAgICAgICAgICAgIDxsaT4KIyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IktleSI+WyUgVHJhbnNsYXRlKERhdGEuTGFiZWwpIHwgaHRtbCAlXTo8L3NwYW4+CiMgICAgICAgICAgICAgICAgICAgIDxzcGFuIHRpdGxlPSJbJSBEYXRhLlRpdGxlMSB8IGh0bWwgJV0iPlslIERhdGEuVmFsdWUgJV08L3NwYW4+CiMgICAgICAgICAgICAgICAgPC9saT4KI1slIFJlbmRlckJsb2NrRW5kKCJGQVFEeW5hbWljRmllbGRfRmllbGQxIikgJV0KI1slIFJlbmRlckJsb2NrU3RhcnQoIkZBUUR5bmFtaWNGaWVsZF9GaWVsZDIiKSAlXQojICAgICAgICAgICAgICAgIDxsaT4KIyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IktleSI+WyUgVHJhbnNsYXRlKERhdGEuTGFiZWwpIHwgaHRtbCAlXTo8L3NwYW4+CiMgICAgICAgICAgICAgICAgICAgIDxzcGFuIHRpdGxlPSJbJSBEYXRhLlRpdGxlMiB8IGh0bWwgJV0iPlslIERhdGEuVmFsdWUgJV08L3NwYW4+CiMgICAgICAgICAgICAgICAgPC9saT4KI1slIFJlbmRlckJsb2NrRW5kKCJGQVFEeW5hbWljRmllbGRfRmllbGQyIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIlZpZXdSYXRpbmciKSAlXQogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IktleSBSYXRpbmdMYWJlbCI+WyUgVHJhbnNsYXRlKCJSYXRpbmciKSB8IGh0bWwgJV06PC9zcGFuPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSYXRlU3RhcnMiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iUmF0ZVN0YXIiPjxpIGNsYXNzPSJmYSBmYS1zdGFyIj48L2k+PC9zcGFuPgpbJSBSZW5kZXJCbG9ja0VuZCgiUmF0ZVN0YXJzIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmF0ZVN0YXJzQ291bnQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iUmF0ZVN0YXJUZXh0IiB0aXRsZT0iWyUgRGF0YS5TdGFycyB8IGh0bWwgJV0gWyUgVHJhbnNsYXRlKCJvdXQgb2YgNSIpIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlN0YXJzIHwgaHRtbCAlXSBbJSBUcmFuc2xhdGUoIm91dCBvZiA1IikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KWyUgUmVuZGVyQmxvY2tFbmQoIlJhdGVTdGFyc0NvdW50IikgJV0KICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiVmlld1JhdGluZyIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJWaWV3Vm90ZXMiKSAlXQogICAgICAgICAgICAgICAgICAgIDxsaT48c3BhbiBjbGFzcz0iS2V5Ij5bJSBUcmFuc2xhdGUoIlZvdGVzIikgfCBodG1sICVdOjwvc3Bhbj4gPHNwYW4gdGl0bGU9IlslIERhdGEuVm90ZXMgfCBodG1sICVdIj5bJSBEYXRhLlZvdGVzIHwgaHRtbCAlXTwvc3Bhbj48L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiVmlld1ZvdGVzIikgJV0KICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgoKICAgIDwvZGl2Pgo8L2Rpdj4K</File>
        <File Location="Kernel/System/Console/Command/Admin/FAQ/Import.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpDb25zb2xlOjpDb21tYW5kOjpBZG1pbjo6RkFROjpJbXBvcnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgcGFyZW50IHF3KEtlcm5lbDo6U3lzdGVtOjpDb25zb2xlOjpCYXNlQ29tbWFuZCk7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OkNTVicsCiAgICAnS2VybmVsOjpTeXN0ZW06OkRCJywKICAgICdLZXJuZWw6OlN5c3RlbTo6RkFRJywKICAgICdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpNYWluJywKKTsKCnN1YiBDb25maWd1cmUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAkU2VsZi0+RGVzY3JpcHRpb24oJ0ZBUSBpbXBvcnQgdG9vbC4nKTsKICAgICRTZWxmLT5BZGRPcHRpb24oCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ3NlcGFyYXRvcicsCiAgICAgICAgRGVzY3JpcHRpb24gPT4gIkRlZmluZXMgdGhlIHNlcGFyYXRvciBmb3IgZGF0YSBpbiBDU1YgZmlsZSAoZGVmYXVsdCAnOycpLiIsCiAgICAgICAgUmVxdWlyZWQgICAgPT4gMCwKICAgICAgICBIYXNWYWx1ZSAgICA9PiAxLAogICAgICAgIFZhbHVlUmVnZXggID0+IHFyLy4qL3NteCwKICAgICk7CiAgICAkU2VsZi0+QWRkT3B0aW9uKAogICAgICAgIE5hbWUgICAgICAgID0+ICdxdW90ZScsCiAgICAgICAgRGVzY3JpcHRpb24gPT4gIkRlZmluZXMgdGhlIHF1b3RlIGZvciBkYXRhIGluIENTViBmaWxlIChkZWZhdWx0ICdcIicpLiIsCiAgICAgICAgUmVxdWlyZWQgICAgPT4gMCwKICAgICAgICBIYXNWYWx1ZSAgICA9PiAxLAogICAgICAgIFZhbHVlUmVnZXggID0+IHFyLy4qL3NteCwKICAgICk7CiAgICAkU2VsZi0+QWRkQXJndW1lbnQoCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ3NvdXJjZS1wYXRoJywKICAgICAgICBEZXNjcmlwdGlvbiA9PiAiU3BlY2lmeSB0aGUgcGF0aCB0byB0aGUgZmlsZSB3aGljaCBjb250YWluaW5nIEZBUSBpdGVtcyBmb3IgaW1wb3J0aW5nLiIsCiAgICAgICAgUmVxdWlyZWQgICAgPT4gMSwKICAgICAgICBWYWx1ZVJlZ2V4ICA9PiBxci8uKi9zbXgsCiAgICApOwoKICAgICRTZWxmLT5BZGRpdGlvbmFsSGVscCgKICAgICAgICAiPHllbGxvdz5Gb3JtYXQgb2YgdGhlIENTViBmaWxlOlxuCiAgICAgICAgICAgIHRpdGxlO2NhdGVnb3J5O2xhbmd1YWdlO3N0YXRldHlwZTtmaWVsZDE7ZmllbGQyO2ZpZWxkMztmaWVsZDQ7ZmllbGQ1O2ZpZWxkNjtrZXl3b3JkcwogICAgICAgIDwveWVsbG93PlxuIgogICAgKTsKCiAgICByZXR1cm47Cn0KCnN1YiBQcmVSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkU291cmNlUGF0aCA9ICRTZWxmLT5HZXRBcmd1bWVudCgnc291cmNlLXBhdGgnKTsKICAgIGlmICggJFNvdXJjZVBhdGggJiYgIS1yICRTb3VyY2VQYXRoICkgewogICAgICAgIGRpZSAiRmlsZSAkU291cmNlUGF0aCBkb2VzIG5vdCBleGlzdCwgY2FuIG5vdCBiZSByZWFkLlxuIjsKICAgIH0KCiAgICByZXR1cm47Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAkU2VsZi0+UHJpbnQoIjx5ZWxsb3c+SW1wb3J0aW5nIEZBUSBpdGVtcy4uLjwveWVsbG93PlxuIik7CiAgICAkU2VsZi0+UHJpbnQoICI8eWVsbG93PiIgLiAoICc9JyB4IDY5ICkgLiAiPC95ZWxsb3c+XG4iICk7CgogICAgbXkgJFNvdXJjZVBhdGggPSAkU2VsZi0+R2V0QXJndW1lbnQoJ3NvdXJjZS1wYXRoJyk7CiAgICAkU2VsZi0+UHJpbnQoIjx5ZWxsb3c+UmVhZCBGaWxlICRTb3VyY2VQYXRoIDwveWVsbG93PlxuXG4iKTsKCiAgICAjIHJlYWQgc291cmNlIGZpbGUKICAgIG15ICRDU1ZTdHJpbmdSZWYgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TWFpbicpLT5GaWxlUmVhZCgKICAgICAgICBMb2NhdGlvbiA9PiAkU291cmNlUGF0aCwKICAgICAgICBSZXN1bHQgICA9PiAnU0NBTEFSJywKICAgICAgICBNb2RlICAgICA9PiAnYmlubW9kZScsCiAgICApOwoKICAgIGlmICggISRDU1ZTdHJpbmdSZWYgKSB7CiAgICAgICAgJFNlbGYtPlByaW50RXJyb3IoIkNhbid0IHJlYWQgZmlsZSAkU291cmNlUGF0aC5cbkltcG9ydCBhYm9ydGVkLlxuIik7CiAgICAgICAgcmV0dXJuICRTZWxmLT5FeGl0Q29kZUVycm9yKCk7CiAgICB9CgogICAgbXkgJFNlcGFyYXRvciA9ICRTZWxmLT5HZXRPcHRpb24oJ3NlcGFyYXRvcicpIHx8ICc7JzsKICAgIG15ICRRdW90ZSAgICAgPSAkU2VsZi0+R2V0T3B0aW9uKCdxdW90ZScpICAgICB8fCAnIic7CgogICAgIyByZWFkIENTViBkYXRhCiAgICBteSAkRGF0YVJlZiA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDU1YnKS0+Q1NWMkFycmF5KAogICAgICAgIFN0cmluZyAgICA9PiAkJENTVlN0cmluZ1JlZiwKICAgICAgICBTZXBhcmF0b3IgPT4gJFNlcGFyYXRvciwKICAgICAgICBRdW90ZSAgICAgPT4gJFF1b3RlLAogICAgKTsKCiAgICBpZiAoICEkRGF0YVJlZiApIHsKICAgICAgICAkU2VsZi0+UHJpbnRFcnJvcigiRXJyb3Igb2NjdXJyZWQuIEltcG9ydCBpbXBvc3NpYmxlISBTZWUgU3lzbG9nIGZvciBkZXRhaWxzLlxuIik7CiAgICAgICAgcmV0dXJuICRTZWxmLT5FeGl0Q29kZUVycm9yKCk7CiAgICB9CgogICAgbXkgJEZBUU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpGQVEnKTsKCiAgICBteSAlTGFuZ3VhZ2VJRCA9IHJldmVyc2UgJEZBUU9iamVjdC0+TGFuZ3VhZ2VMaXN0KAogICAgICAgIFVzZXJJRCA9PiAxLAogICAgKTsKCiAgICBteSAlU3RhdGVUeXBlSUQgPSByZXZlcnNlICV7ICRGQVFPYmplY3QtPlN0YXRlVHlwZUxpc3QoIFVzZXJJRCA9PiAxICkgfTsKCiAgICAjIGdldCBncm91cCBpZCBmb3IgRkFRIGdyb3VwCiAgICBteSAkRkFRR3JvdXBJRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpLT5Hcm91cExvb2t1cCgKICAgICAgICBHcm91cCA9PiAnZmFxJywKICAgICk7CgogICAgbXkgJExpbmVDb3VudGVyOwogICAgbXkgJFN1Y2Nlc3NDb3VudCAgICA9IDA7CiAgICBteSAkVW5TY3VjY2Vzc0NvdW50ID0gMDsKCiAgICBST1dSRUY6CiAgICBmb3IgbXkgJFJvd1JlZiAoIEB7JERhdGFSZWZ9ICkgewoKICAgICAgICAkTGluZUNvdW50ZXIrKzsKCiAgICAgICAgbXkgKAogICAgICAgICAgICAkVGl0bGUsICAkQ2F0ZWdvcnlTdHJpbmcsICRMYW5ndWFnZSwgJFN0YXRlVHlwZSwKICAgICAgICAgICAgJEZpZWxkMSwgJEZpZWxkMiwgJEZpZWxkMywgJEZpZWxkNCwgJEZpZWxkNSwgJEZpZWxkNiwgJEtleXdvcmRzCiAgICAgICAgKSA9IEB7JFJvd1JlZn07CgogICAgICAgICMgY2hlY2sgbGFuZ3VhZ2UKICAgICAgICBpZiAoICEkTGFuZ3VhZ2VJRHskTGFuZ3VhZ2V9ICkgewogICAgICAgICAgICAkU2VsZi0+UHJpbnRFcnJvcigiRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgbGluZSAkTGluZUNvdW50ZXIuIExhbmd1YWdlICckTGFuZ3VhZ2UnIGRvZXMgbm90IGV4aXN0LlxuIik7CiAgICAgICAgICAgIG5leHQgUk9XUkVGOwogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayBzdGF0ZSB0eXBlCiAgICAgICAgaWYgKCAhJFN0YXRlVHlwZUlEeyRTdGF0ZVR5cGV9ICkgewogICAgICAgICAgICAkU2VsZi0+UHJpbnRFcnJvcigiRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgbGluZSAkTGluZUNvdW50ZXIuIFN0YXRlICckU3RhdGVUeXBlJyBkb2VzIG5vdCBleGlzdC5cbiIpOwogICAgICAgICAgICBuZXh0IFJPV1JFRjsKICAgICAgICB9CgogICAgICAgICMgZ2V0IHN1YmNhdGVnb3JpZXMKICAgICAgICBteSBAQ2F0ZWdvcnlBcnJheSA9IHNwbGl0IC86Oi8sICRDYXRlZ29yeVN0cmluZzsKCiAgICAgICAgIyBjaGVjayBlYWNoIHN1YmNhdGVnb3J5IGlmIGl0IGV4aXN0cwogICAgICAgIG15ICRDYXRlZ29yeUlEOwogICAgICAgIG15ICRQYXJlbnRJRCA9IDA7CgogICAgICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICAgICBmb3IgbXkgJENhdGVnb3J5IChAQ2F0ZWdvcnlBcnJheSkgewoKICAgICAgICAgICAgIyBnZXQgdGhlIGNhdGVnb3J5IGlkCiAgICAgICAgICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICAgICAgICAgIFNRTCA9PiAnU0VMRUNUIGlkIEZST00gZmFxX2NhdGVnb3J5ICcKICAgICAgICAgICAgICAgICAgICAuICdXSEVSRSB2YWxpZF9pZCA9IDEgQU5EIG5hbWUgPSA/IEFORCBwYXJlbnRfaWQgPSA/JywKICAgICAgICAgICAgICAgIEJpbmQgID0+IFsgXCRDYXRlZ29yeSwgXCRQYXJlbnRJRCBdLAogICAgICAgICAgICAgICAgTGltaXQgPT4gMSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgbXkgQFJlc3VsdDsKICAgICAgICAgICAgd2hpbGUgKCBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgICAgICAgICBwdXNoKCBAUmVzdWx0LCAkUm93WzBdICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJENhdGVnb3J5SUQgPSAkUmVzdWx0WzBdOwoKICAgICAgICAgICAgIyBjcmVhdGUgY2F0ZWdvcnkgaWYgaXQgZG9lcyBub3QgZXhpc3QKICAgICAgICAgICAgaWYgKCAhJENhdGVnb3J5SUQgKSB7CiAgICAgICAgICAgICAgICAkQ2F0ZWdvcnlJRCA9ICRGQVFPYmplY3QtPkNhdGVnb3J5QWRkKAogICAgICAgICAgICAgICAgICAgIE5hbWUgICAgID0+ICRDYXRlZ29yeSwKICAgICAgICAgICAgICAgICAgICBQYXJlbnRJRCA9PiAkUGFyZW50SUQsCiAgICAgICAgICAgICAgICAgICAgVmFsaWRJRCAgPT4gMSwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIGFkZCBuZXcgY2F0ZWdvcnkgdG8gRkFRIGdyb3VwCiAgICAgICAgICAgICAgICAkRkFRT2JqZWN0LT5TZXRDYXRlZ29yeUdyb3VwKAogICAgICAgICAgICAgICAgICAgIENhdGVnb3J5SUQgPT4gJENhdGVnb3J5SUQsCiAgICAgICAgICAgICAgICAgICAgR3JvdXBJRHMgICA9PiBbJEZBUUdyb3VwSURdLAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gMSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgc2V0IG5ldyBwYXJlbnQgaWQKICAgICAgICAgICAgJFBhcmVudElEID0gJENhdGVnb3J5SUQ7CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIGNhdGVnb3J5CiAgICAgICAgaWYgKCAhJENhdGVnb3J5SUQgKSB7CiAgICAgICAgICAgICRTZWxmLT5QcmludEVycm9yKAogICAgICAgICAgICAgICAgIkVycm9yOiBDb3VsZCBub3QgaW1wb3J0IGxpbmUgJExpbmVDb3VudGVyLiBDYXRlZ29yeSAnJENhdGVnb3J5U3RyaW5nJyBjb3VsZCBub3QgYmUgY3JlYXRlZC5cbiIKICAgICAgICAgICAgKTsKICAgICAgICAgICAgbmV4dCBST1c7CiAgICAgICAgfQoKICAgICAgICAjIGNvbnZlcnQgU3RhdGVUeXBlIHRvIFN0YXRlCiAgICAgICAgbXkgJVN0YXRlTG9va3VwID0gcmV2ZXJzZSAkRkFRT2JqZWN0LT5TdGF0ZUxpc3QoIFVzZXJJRCA9PiAxICk7CiAgICAgICAgbXkgJFN0YXRlSUQ7CgogICAgICAgIFNUQVRFTkFNRToKICAgICAgICBmb3IgbXkgJFN0YXRlTmFtZSAoIHNvcnQga2V5cyAlU3RhdGVMb29rdXAgKSB7CiAgICAgICAgICAgIGlmICggJFN0YXRlTmFtZSA9fiBte1xBICRTdGF0ZVR5cGUgfW1zeGkgKSB7CiAgICAgICAgICAgICAgICAkU3RhdGVJRCA9ICRTdGF0ZUxvb2t1cHskU3RhdGVOYW1lfTsKICAgICAgICAgICAgICAgIGxhc3QgU1RBVEVOQU1FOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAgICAgIyBzZXQgY29udGVudCB0eXBlCiAgICAgICAgbXkgJENvbnRlbnRUeXBlID0gJ3RleHQvcGxhaW4nOwogICAgICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdGcm9udGVuZDo6UmljaFRleHQnKSAmJiAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6SXRlbTo6SFRNTCcpICkgewogICAgICAgICAgICAkQ29udGVudFR5cGUgPSAndGV4dC9odG1sJzsKICAgICAgICB9CgogICAgICAgICMgYWRkIEZBUSBhcnRpY2xlCiAgICAgICAgbXkgJEl0ZW1JRCA9ICRGQVFPYmplY3QtPkZBUUFkZCgKICAgICAgICAgICAgVGl0bGUgICAgICAgPT4gJFRpdGxlLAogICAgICAgICAgICBDYXRlZ29yeUlEICA9PiAkQ2F0ZWdvcnlJRCwKICAgICAgICAgICAgU3RhdGVJRCAgICAgPT4gJFN0YXRlSUQsCiAgICAgICAgICAgIExhbmd1YWdlSUQgID0+ICRMYW5ndWFnZUlEeyRMYW5ndWFnZX0sCiAgICAgICAgICAgIEZpZWxkMSAgICAgID0+ICRGaWVsZDEsCiAgICAgICAgICAgIEZpZWxkMiAgICAgID0+ICRGaWVsZDIsCiAgICAgICAgICAgIEZpZWxkMyAgICAgID0+ICRGaWVsZDMsCiAgICAgICAgICAgIEZpZWxkNCAgICAgID0+ICRGaWVsZDQsCiAgICAgICAgICAgIEZpZWxkNSAgICAgID0+ICRGaWVsZDUsCiAgICAgICAgICAgIEZpZWxkNiAgICAgID0+ICRGaWVsZDYsCiAgICAgICAgICAgIEtleXdvcmRzICAgID0+ICRLZXl3b3JkcyB8fCAnJywKICAgICAgICAgICAgQXBwcm92ZWQgICAgPT4gMSwKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJENvbnRlbnRUeXBlLAogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgc3VjY2VzcwogICAgICAgIGlmICgkSXRlbUlEKSB7CiAgICAgICAgICAgICRTdWNjZXNzQ291bnQrKzsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRVblNjdWNjZXNzQ291bnQrKzsKICAgICAgICAgICAgJFNlbGYtPlByaW50RXJyb3IoIkNvdWxkIG5vdCBpbXBvcnQgbGluZSAkTGluZUNvdW50ZXIuXG4iKTsKICAgICAgICB9CiAgICB9CgogICAgaWYgKCRTdWNjZXNzQ291bnQpIHsKICAgICAgICAkU2VsZi0+UHJpbnQoIjxncmVlbj5TdWNjZXNzZnVsbHkgaW1wb3J0ZWQgJFN1Y2Nlc3NDb3VudCBGQVEgaXRlbShzKS48L2dyZWVuPlxuIik7CiAgICB9CiAgICBpZiAoJFVuU2N1Y2Nlc3NDb3VudCkgewogICAgICAgICRTZWxmLT5QcmludCgiXG48cmVkPlVuc3VjY2Vzc2Z1bGx5IGltcG9ydGVkICRVblNjdWNjZXNzQ291bnQgRkFRIGl0ZW1zKHMpLjwvcmVkPlxuXG4iKTsKCiAgICAgICAgJFNlbGYtPlByaW50KCI8cmVkPkltcG9ydCBjb21wbGV0ZSB3aXRoIGVycm9ycy48L3JlZD5cbiIpOwogICAgICAgICRTZWxmLT5QcmludCggIjx5ZWxsb3c+IiAuICggJz0nIHggNjkgKSAuICI8L3llbGxvdz5cbiIgKTsKCiAgICAgICAgJFNlbGYtPlByaW50KCI8cmVkPkZhaWw8L3JlZD5cbiIpOwogICAgICAgIHJldHVybiAkU2VsZi0+RXhpdENvZGVFcnJvcigpOwogICAgfQoKICAgICRTZWxmLT5QcmludCgiXG4iKTsKCiAgICAkU2VsZi0+UHJpbnQoIjxncmVlbj5JbXBvcnQgY29tcGxldGUuPC9ncmVlbj5cbiIpOwogICAgJFNlbGYtPlByaW50KCAiPHllbGxvdz4iIC4gKCAnPScgeCA2OSApIC4gIjwveWVsbG93PlxuIiApOwoKICAgICRTZWxmLT5QcmludCgiPGdyZWVuPkRvbmUuPC9ncmVlbj5cbiIpOwogICAgcmV0dXJuICRTZWxmLT5FeGl0Q29kZU9rKCk7Cn0KCjE7Cgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RPQk8gcHJvamVjdCAoTDxodHRwczovL290b2JvLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0Pi4KCj1jdXQK</File>
        <File Location="Kernel/System/Console/Command/Maint/FAQ/ContentTypeSet.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpDb25zb2xlOjpDb21tYW5kOjpNYWludDo6RkFROjpDb250ZW50VHlwZVNldDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBwYXJlbnQgcXcoS2VybmVsOjpTeXN0ZW06OkNvbnNvbGU6OkJhc2VDb21tYW5kKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6U3lzdGVtOjpGQVEnLAopOwoKc3ViIENvbmZpZ3VyZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICRTZWxmLT5EZXNjcmlwdGlvbignU2V0cyB0aGUgY29udGVudCB0eXBlIG9mIEZBUSBpdGVtcy4nKTsKICAgICRTZWxmLT5BZGRPcHRpb24oCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ2ZhcS1pdGVtLWlkJywKICAgICAgICBEZXNjcmlwdGlvbiA9PgogICAgICAgICAgICAic3BlY2lmeSBvbmUgb3IgbW9yZSBpZHMgb2YgZmFxIGl0ZW1zIHRvIHNldCBpdHMgY29udGVudCB0eXBlIChpZiBub3Qgc2V0LCBhbGwgRkFRIGl0ZW1zIHdpbGwgYmUgYWZmZWN0ZWQpLiIsCiAgICAgICAgUmVxdWlyZWQgICA9PiAwLAogICAgICAgIEhhc1ZhbHVlICAgPT4gMSwKICAgICAgICBWYWx1ZVJlZ2V4ID0+IHFyLy4qL3NteCwKICAgICAgICBNdWx0aXBsZSAgID0+IDEsCiAgICApOwogICAgJFNlbGYtPkFkZE9wdGlvbigKICAgICAgICBOYW1lICAgICAgICA9PiAnY29udGVudC10eXBlJywKICAgICAgICBEZXNjcmlwdGlvbiA9PiAidGV4dC9wbGFpbiBvciB0ZXh0L2h0bWwgKGlmIG5vdCBzZXQsIHRoZSBjb250ZW50IHR5cGUgd2lsbCBiZSBkZXRlcm1pbmVkIGF1dG9tYXRpY2FsbHkpLiIsCiAgICAgICAgUmVxdWlyZWQgICAgPT4gMCwKICAgICAgICBIYXNWYWx1ZSAgICA9PiAxLAogICAgICAgIFZhbHVlUmVnZXggID0+IHFyLyg/OiB0ZXh0XC9wbGFpbiB8IHRleHRcL2h0bWwgKS9zbXgsCiAgICApOwoKICAgIHJldHVybjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICRTZWxmLT5QcmludCgiPHllbGxvdz5TZXR0aW5nIGNvbnRlbnQgdHlwZSBvZiBGQVEgaXRlbXMuLi48L3llbGxvdz5cbiIpOwoKICAgIG15IEBGQVFJdGVtSURzICA9IEB7ICRTZWxmLT5HZXRPcHRpb24oJ2ZhcS1pdGVtLWlkJykgLy8gW10gfTsKICAgIG15ICRDb250ZW50VHlwZSA9ICRTZWxmLT5HZXRPcHRpb24oJ2NvbnRlbnQtdHlwZScpIC8vICcnOwoKICAgIG15ICVGdW5jdGlvblBhcmFtczsKCiAgICBpZiAoQEZBUUl0ZW1JRHMpIHsKICAgICAgICAkRnVuY3Rpb25QYXJhbXN7RkFRSXRlbUlEc30gPSBcQEZBUUl0ZW1JRHM7CiAgICB9CgogICAgaWYgKCRDb250ZW50VHlwZSkgewogICAgICAgICRGdW5jdGlvblBhcmFtc3tDb250ZW50VHlwZX0gPSAkQ29udGVudFR5cGU7CiAgICB9CgogICAgbXkgJFN1Y2NlcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpGQVEnKS0+RkFRQ29udGVudFR5cGVTZXQoJUZ1bmN0aW9uUGFyYW1zKTsKCiAgICBpZiAoICEkU3VjY2VzICkgewogICAgICAgICRTZWxmLT5QcmludCgiPHJlZD5GYWlsLjwvcmVkPlxuIik7CiAgICAgICAgcmV0dXJuICRTZWxmLT5FeGl0Q29kZUVycm9yKCk7CgogICAgfQoKICAgICRTZWxmLT5QcmludCgiPGdyZWVuPkRvbmUuPC9ncmVlbj5cbiIpOwogICAgcmV0dXJuICRTZWxmLT5FeGl0Q29kZU9rKCk7Cn0KCjE7Cgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RPQk8gcHJvamVjdCAoTDxodHRwczovL290b2JvLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0Pi4KCj1jdXQK</File>
        <File Location="Kernel/System/DynamicField/Driver/FAQ.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6RkFROwoKIyMgbm9maWx0ZXIoVGlkeUFsbDo6UGx1Z2luOjpPVE9CTzo6UGVybDo6UGFyYW1PYmplY3QpCgp1c2UgdjUuMjQ7CnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIG5hbWVzcGFjZTo6YXV0b2NsZWFuOwp1c2UgdXRmODsKCnVzZSBwYXJlbnQgcXcoS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjpCYXNlUmVmZXJlbmNlKTsKCiMgY29yZSBtb2R1bGVzCgojIENQQU4gbW9kdWxlcwoKIyBPVE9CTyBtb2R1bGVzCnVzZSBLZXJuZWw6Okxhbmd1YWdlICAgICAgICAgICAgICBxdyhUcmFuc2xhdGFibGUpOwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoSXNBcnJheVJlZldpdGhEYXRhIElzSGFzaFJlZldpdGhEYXRhKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJywKICAgICdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kJywKICAgICdLZXJuZWw6OlN5c3RlbTo6RkFRJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpEcml2ZXI6OkZBUSAtIGJhY2tlbmQgZm9yIHRoZSBSZWZlcmVuY2UgZHluYW1pYyBmaWVsZAoKPWhlYWQxIERFU0NSSVBUSU9OCgpGQVEgYmFja2VuZCBmb3IgdGhlIFJlZmVyZW5jZSBkeW5hbWljIGZpZWxkLgoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1oZWFkMiBuZXcoKQoKaXQgaXMgdXN1YWxseSBub3QgbmVjZXNzYXJ5IHRvIGV4cGxpY2l0bHkgY3JlYXRlIGluc3RhbmNlcyBvZiBkeW5hbWljIGZpZWxkIGRyaXZlcnMuCkluc3RhbmNlcyBvZiB0aGUgZHJpdmVycyBhcmUgY3JlYXRlZCBpbiB0aGUgY29uc3RydWN0b3Igb2YgdGhlCmR5bmFtaWMgZmllbGQgYmFja2VuZCBvYmplY3QgQzxLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kPi4KCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCRUeXBlKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSBibGVzcyB7fSwgJFR5cGU7CgogICAgIyBTb21lIHJlZmVyZW5jZSBkeW5hbWljIGZpZWxkcyBhcmUgc3RvcmVkIGluIHRoZSBkYXRhYmFzZSB0YWJsZSBhdHRyaWJ1dGUgZHluYW1pY19maWVsZF92YWx1ZS52YWx1ZV9pbnQuCiAgICAkU2VsZi0+e1ZhbHVlVHlwZX0gICAgICA9ICdJbnRlZ2VyJzsKICAgICRTZWxmLT57VmFsdWVLZXl9ICAgICAgID0gJ1ZhbHVlSW50JzsKICAgICRTZWxmLT57VGFibGVBdHRyaWJ1dGV9ID0gJ3ZhbHVlX2ludCc7CgogICAgIyBVc2VkIGZvciBkZWNsYXJpbmcgQ1NTIGNsYXNzZXMKICAgICRTZWxmLT57RmllbGRDU1NDbGFzc30gPSAnRHluYW1pY0ZpZWxkUmVmZXJlbmNlJzsKCiAgICAjIHNldCBmaWVsZCBiZWhhdmlvcnMKICAgICRTZWxmLT57QmVoYXZpb3JzfSA9IHsKICAgICAgICAnSXNBQ0xSZWR1Y2libGUnICAgICAgICAgICAgICAgPT4gMCwKICAgICAgICAnSXNOb3RpZmljYXRpb25FdmVudENvbmRpdGlvbicgPT4gMCwKICAgICAgICAnSXNTb3J0YWJsZScgICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAnSXNGaWx0cmFibGUnICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAnSXNTdGF0c0NvbmRpdGlvbicgICAgICAgICAgICAgPT4gMCwKICAgICAgICAnSXNDdXN0b21lckludGVyZmFjZUNhcGFibGUnICAgPT4gMSwKICAgICAgICAnSXNIaWRkZW5JblRpY2tldEluZm9ybWF0aW9uJyAgPT4gMCwKICAgICAgICAnSXNSZWZlcmVuY2VGaWVsZCcgICAgICAgICAgICAgPT4gMSwKICAgICAgICAnSXNTZXRDYXBhYmxlJyAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAnU2V0c0R5bmFtaWNDb250ZW50JyAgICAgICAgICAgPT4gMSwKICAgIH07CgogICAgJFNlbGYtPntSZWZlcmVuY2VkT2JqZWN0VHlwZX0gPSAnRkFRJzsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1oZWFkMiBHZXRGaWVsZFR5cGVTZXR0aW5ncygpCgpHZXQgdGhlIGZpZWxkIHR5cGUgc2V0dGluZ3MgZm9yIHRoZSByZWZlcmVuY2VkIG9iamVjdCB0eXBlIEM8RkFRPi4KVGhlIGdlbmVyaWMgc2V0dGluZ3MgZm9yIGFsbCByZWZlcmVuY2VkIG9iamVjdCB0eXBlcyBhcmUgaW5jbHVkZWQgYXMgd2VsbC4KCj1jdXQKCnN1YiBHZXRGaWVsZFR5cGVTZXR0aW5ncyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgRmlyc3QgZmV0Y2ggdGhlIGdlbmVyaWMgc2V0dGluZ3MuCiAgICBteSBARmllbGRUeXBlU2V0dGluZ3MgPSAkU2VsZi0+U1VQRVI6OkdldEZpZWxkVHlwZVNldHRpbmdzKAogICAgICAgICVQYXJhbSwKICAgICk7CgogICAgIyBTdXBwb3J0IGNvbmZpZ3VyYWJsZSBzZWFyY2gga2V5CiAgICBwdXNoIEBGaWVsZFR5cGVTZXR0aW5ncywKICAgICAgICB7CiAgICAgICAgICAgIENvbmZpZ1BhcmFtTmFtZSA9PiAnU2VhcmNoQXR0cmlidXRlJywKICAgICAgICAgICAgTGFiZWwgICAgICAgICAgID0+IFRyYW5zbGF0YWJsZSgnQXR0cmlidXRlIHdoaWNoIHdpbGwgYmUgc2VhcmNoZWQgb24gYXV0b2NvbXBsZXRlJyksCiAgICAgICAgICAgIEV4cGxhbmF0aW9uICAgICA9PiBUcmFuc2xhdGFibGUoJ1NlbGVjdCB0aGUgYXR0cmlidXRlIHdoaWNoIEZBUXMgd2lsbCBiZSBzZWFyY2hlZCBieScpLAogICAgICAgICAgICBJbnB1dFR5cGUgICAgICAgPT4gJ1NlbGVjdGlvbicsCiAgICAgICAgICAgIFNlbGVjdGlvbkRhdGEgICA9PiB7CiAgICAgICAgICAgICAgICAnTnVtYmVyJyA9PiAnTnVtYmVyJywKICAgICAgICAgICAgICAgICdUaXRsZScgID0+ICdUaXRsZScsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFBvc3NpYmxlTm9uZSA9PiAxLAogICAgICAgICAgICBNdWx0aXBsZSAgICAgPT4gMCwKICAgICAgICB9OwoKICAgIG15ICREeW5hbWljRmllbGRzTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKS0+RHluYW1pY0ZpZWxkTGlzdCgKICAgICAgICBPYmplY3RUeXBlID0+IFsnRkFRJ10sCiAgICAgICAgVmFsaWQgICAgICA9PiAxLAogICAgICAgIFJlc3VsdFR5cGUgPT4gJ0hBU0gnLAogICAgKTsKICAgIG15ICVERlNlbGVjdGlvbkRhdGEgPSBtYXAgeyAoICJEeW5hbWljRmllbGRfJF8iID0+ICJEeW5hbWljRmllbGRfJF8iICkgfSB2YWx1ZXMgJER5bmFtaWNGaWVsZHNMaXN0LT4lKjsKCiAgICAjIFN1cHBvcnQgY29uZmlndXJhYmxlIGltcG9ydCBzZWFyY2ggYXR0cmlidXRlCiAgICBwdXNoIEBGaWVsZFR5cGVTZXR0aW5ncywKICAgICAgICB7CiAgICAgICAgICAgIENvbmZpZ1BhcmFtTmFtZSA9PiAnSW1wb3J0U2VhcmNoQXR0cmlidXRlJywKICAgICAgICAgICAgTGFiZWwgICAgICAgICAgID0+IFRyYW5zbGF0YWJsZSgnRXh0ZXJuYWwtc291cmNlIGtleScpLAogICAgICAgICAgICBFeHBsYW5hdGlvbiAgICAgPT4gVHJhbnNsYXRhYmxlKCdXaGVuIHNldCB2aWEgYW4gZXh0ZXJuYWwgc291cmNlIChlLmcuIHdlYiBzZXJ2aWNlIG9yIGltcG9ydCAvIGV4cG9ydCksIHRoZSB2YWx1ZSB3aWxsIGJlIGludGVycHJldGVkIGFzIHRoaXMgYXR0cmlidXRlLicpLAogICAgICAgICAgICBJbnB1dFR5cGUgICAgICAgPT4gJ1NlbGVjdGlvbicsCiAgICAgICAgICAgIFNlbGVjdGlvbkRhdGEgICA9PiB7CiAgICAgICAgICAgICAgICAnTnVtYmVyJyA9PiAnTnVtYmVyJywKICAgICAgICAgICAgICAgICdUaXRsZScgID0+ICdUaXRsZScsCiAgICAgICAgICAgICAgICAlREZTZWxlY3Rpb25EYXRhLAogICAgICAgICAgICB9LAogICAgICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMSwKICAgICAgICAgICAgTXVsdGlwbGUgICAgID0+IDAsCiAgICAgICAgfTsKCiAgICAjIFN1cHBvcnQgdmFyaW91cyBkaXNwbGF5IG9wdGlvbnMKICAgIHB1c2ggQEZpZWxkVHlwZVNldHRpbmdzLAogICAgICAgIHsKICAgICAgICAgICAgQ29uZmlnUGFyYW1OYW1lID0+ICdEaXNwbGF5VHlwZScsCiAgICAgICAgICAgIExhYmVsICAgICAgICAgICA9PiBUcmFuc2xhdGFibGUoJ0F0dHJpYnV0ZSB3aGljaCBpcyBkaXNwbGF5ZWQgZm9yIHZhbHVlcycpLAogICAgICAgICAgICBFeHBsYW5hdGlvbiAgICAgPT4gVHJhbnNsYXRhYmxlKCdTZWxlY3QgdGhlIHR5cGUgb2YgZGlzcGxheScpLAogICAgICAgICAgICBJbnB1dFR5cGUgICAgICAgPT4gJ1NlbGVjdGlvbicsCiAgICAgICAgICAgIFNlbGVjdGlvbkRhdGEgICA9PiB7CiAgICAgICAgICAgICAgICAnTnVtYmVyVGl0bGUnICAgPT4gJ0ZBUSBOdW1iZXIjPEZBUSBUaXRsZT4nLAogICAgICAgICAgICAgICAgJ0NhdGVnb3J5VGl0bGUnID0+ICc8Q2F0ZWdvcnkgTmFtZT4gLSA8RkFRIFRpdGxlPicsCiAgICAgICAgICAgICAgICAnVGl0bGVOdW1iZXInICAgPT4gJzxGQVEgVGl0bGU+ICg8RkFRIE51bWJlcj4pJywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgUG9zc2libGVOb25lID0+IDEsCiAgICAgICAgICAgIE11bHRpcGxlICAgICA9PiAwLAogICAgICAgIH07CgogICAgIyBTdXBwb3J0IHJlZmVyZW5jZSBmaWx0ZXJzCiAgICBwdXNoIEBGaWVsZFR5cGVTZXR0aW5ncywKICAgICAgICB7CiAgICAgICAgICAgIENvbmZpZ1BhcmFtTmFtZSA9PiAnUmVmZXJlbmNlRmlsdGVyTGlzdCcsCiAgICAgICAgfTsKCiAgICByZXR1cm4gQEZpZWxkVHlwZVNldHRpbmdzOwp9Cgo9aGVhZDIgT2JqZWN0UGVybWlzc2lvbigpCgpjaGVja3MgcmVhZCBwZXJtaXNzaW9uIGZvciBhIGdpdmVuIG9iamVjdCBhbmQgVXNlcklELgoKICAgICRQZXJtaXNzaW9uID0gJEJhY2tlbmRPYmplY3QtPk9iamVjdFBlcm1pc3Npb24oCiAgICAgICAgS2V5ICAgICA9PiAxMjMsCiAgICAgICAgVXNlcklEICA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBPYmplY3RQZXJtaXNzaW9uIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KEtleSBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkZBUScpLT5GQVFQZXJtaXNzaW9uKAogICAgICAgIEZBUUlEICA9PiAkUGFyYW17S2V5fSwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgVHlwZSAgID0+ICdybycsCiAgICApOwp9Cgo9aGVhZDIgT2JqZWN0RGVzY3JpcHRpb25HZXQoKQoKcmV0dXJuIGEgaGFzaCBvZiBvYmplY3QgZGVzY3JpcHRpb25zLgoKICAgIG15ICVEZXNjcmlwdGlvbiA9ICRCYWNrZW5kT2JqZWN0LT5PYmplY3REZXNjcmlwdGlvbkdldCgKICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICBPYmplY3RJRCAgICAgICAgICAgPT4gMTIzLAogICAgICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAxLAogICAgKTsKClJldHVybgoKICAgICVEZXNjcmlwdGlvbiA9ICgKICAgICAgICBOb3JtYWwgPT4gIkZBUSMgMTIzNDQ1NSIsCiAgICAgICAgTG9uZyAgID0+ICJGQVEjIDEyMzQ0NTU6IE5lZWQgYSBzYW1wbGUgRkFRIHRpdGxlIiwKICAgICk7Cgo9Y3V0CgpzdWIgT2JqZWN0RGVzY3JpcHRpb25HZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoT2JqZWN0SUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIFRPRE86IERpc2N1c3Mgc2VjdXJpdHkgY29uc2lkZXJhdGlvbnMgLSBub3QgbXVjaCBpcyBzaG93biB0aG91Z2gKICAgIG15ICRVc2VySUQgPSAxOwoKICAgICMgZ2V0IEZBUSBpdGVtCiAgICBteSAlRkFRID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkZBUScpLT5GQVFHZXQoCiAgICAgICAgRkFRSUQgICAgICAgICA9PiAkUGFyYW17T2JqZWN0SUR9LAogICAgICAgIFVzZXJJRCAgICAgICAgPT4gJFVzZXJJRCwKICAgICAgICBEeW5hbWljRmllbGRzID0+IDAsCiAgICApOwoKICAgIHJldHVybiB1bmxlc3MgJUZBUTsKCiAgICBteSAlRGVzY3JpcHRpb25zOwogICAgaWYgKCAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfSAmJiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfXtDb25maWd9e0Rpc3BsYXlUeXBlfSApIHsKCiAgICAgICAgIyBwcmVwYXJlIHN0cmluZyBhcyBjb25maWd1cmVkCiAgICAgICAgbXkgJERpc3BsYXlUeXBlID0gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ317Q29uZmlnfXtEaXNwbGF5VHlwZX07CiAgICAgICAgaWYgKCAkRGlzcGxheVR5cGUgZXEgJ0NhdGVnb3J5VGl0bGUnICkgewogICAgICAgICAgICAkRGVzY3JpcHRpb25ze05vcm1hbH0gPSAiJEZBUXtDYXRlZ29yeVNob3J0TmFtZX0gLSAkRkFRe1RpdGxlfSI7CiAgICAgICAgICAgICREZXNjcmlwdGlvbnN7TG9uZ30gICA9ICIkRkFRe0NhdGVnb3J5TmFtZX0gLSAkRkFRe1RpdGxlfSI7CiAgICAgICAgfQogICAgICAgIGVsc2lmICggJERpc3BsYXlUeXBlIGVxICdOdW1iZXJUaXRsZScgKSB7CiAgICAgICAgICAgICREZXNjcmlwdGlvbnN7Tm9ybWFsfSA9ICIkRkFRe051bWJlcn0jJEZBUXtUaXRsZX0iOwogICAgICAgICAgICAkRGVzY3JpcHRpb25ze0xvbmd9ICAgPSAiJEZBUXtOdW1iZXJ9IyRGQVF7VGl0bGV9IjsKICAgICAgICB9CiAgICAgICAgZWxzaWYgKCAkRGlzcGxheVR5cGUgZXEgJ1RpdGxlTnVtYmVyJyApIHsKICAgICAgICAgICAgJERlc2NyaXB0aW9uc3tOb3JtYWx9ID0gIiRGQVF7VGl0bGV9ICgkRkFRe051bWJlcn0pIjsKICAgICAgICAgICAgJERlc2NyaXB0aW9uc3tMb25nfSAgID0gIiRGQVF7VGl0bGV9ICgkRkFRe051bWJlcn0pIjsKICAgICAgICB9CiAgICB9CiAgICBlbHNlIHsKCiAgICAgICAgJERlc2NyaXB0aW9uc3tOb3JtYWx9ID0gIiRGQVF7VGl0bGV9ICgkRkFRe051bWJlcn0pIjsKICAgICAgICAkRGVzY3JpcHRpb25ze0xvbmd9ICAgPSAiJEZBUXtUaXRsZX0gKCRGQVF7TnVtYmVyfSkiOwogICAgfQoKICAgIG15ICRMaW5rOwogICAgaWYgKCAkUGFyYW17TGlua30gJiYgJFBhcmFte0xheW91dE9iamVjdH17U2Vzc2lvblNvdXJjZX0gKSB7CiAgICAgICAgaWYgKCAkUGFyYW17TGF5b3V0T2JqZWN0fXtTZXNzaW9uU291cmNlfSBlcSAnQWdlbnRJbnRlcmZhY2UnICkgewoKICAgICAgICAgICAgIyBUT0RPOiBvbmx5IHNob3cgdGhlIGxpbmsgaWYgdGhlIHVzZXIgJFBhcmFte1VzZXJJRH0gaGFzIHBlcm1pc3Npb25zCiAgICAgICAgICAgICRMaW5rID0gJFBhcmFte0xheW91dE9iamVjdH17QmFzZWxpbmt9IC4gIkFjdGlvbj1BZ2VudEZBUVpvb207SXRlbUlEPSRQYXJhbXtPYmplY3RJRH0iOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoICRQYXJhbXtMYXlvdXRPYmplY3R9e1Nlc3Npb25Tb3VyY2V9IGVxICdDdXN0b21lckludGVyZmFjZScgKSB7CiAgICAgICAgICAgICRMaW5rID0gJFBhcmFte0xheW91dE9iamVjdH17QmFzZWxpbmt9IC4gIkFjdGlvbj1DdXN0b21lckZBUVpvb207SXRlbUlEPSRQYXJhbXtPYmplY3RJRH0iOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNyZWF0ZSBkZXNjcmlwdGlvbgogICAgcmV0dXJuICgKICAgICAgICAlRGVzY3JpcHRpb25zLAogICAgICAgIExpbmsgPT4gJExpbmssCiAgICApOwp9Cgo9aGVhZDIgU2VhcmNoT2JqZWN0cygpCgpUaGlzIGlzIHVzZWQgaW4gYXV0byBjb21wbGV0aW9uIHdoZW4gc2VhcmNoaW5nIGZvciBwb3NzaWJsZSBvYmplY3QgSURzLgoKICAgIG15IEBPYmplY3RJRHMgPSAkQmFja2VuZE9iamVjdC0+U2VhcmNoT2JqZWN0cygKICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICBPYmplY3RJRCAgICAgICAgICAgPT4gJE9iamVjdElELCAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkgaWYgZ2l2ZW4sIHRha2VzIHByZWNlZGVuY2Ugb3ZlciBUZXJtCiAgICAgICAgVGVybSAgICAgICAgICAgICAgID0+ICRUZXJtLCAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpIGRlZmF1bHRzIHRvIHdpbGRjYXJkIHNlYXJjaCB3aXRoIGVtcHR5IHN0cmluZwogICAgICAgIE1heFJlc3VsdHMgICAgICAgICA9PiAkTWF4UmVzdWx0cywKICAgICAgICBVc2VySUQgICAgICAgICAgICAgPT4gMSwKICAgICAgICBPYmplY3QgICAgICAgICAgICAgPT4gewogICAgICAgICAgICAlRGF0YSwKICAgICAgICB9LAogICAgICAgIFBhcmFtT2JqZWN0ICAgICAgICA9PiAkUGFyYW1PYmplY3QsCiAgICApOwoKPWN1dAoKc3ViIFNlYXJjaE9iamVjdHMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAkUGFyYW17VGVybX0gLy89ICcnOwoKICAgIG15ICRERkRldGFpbHMgPSAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfXtDb25maWd9IC8vIHt9OwoKICAgIG15ICVTZWFyY2hQYXJhbXM7CgogICAgaWYgKCAkUGFyYW17T2JqZWN0SUR9ICkgewogICAgICAgICRTZWFyY2hQYXJhbXN7TnVtYmVyfSA9ICRQYXJhbXtPYmplY3RJRH07CiAgICB9CiAgICBlbHNpZiAoICRQYXJhbXtFeHRlcm5hbFNvdXJjZX0gKSB7CgogICAgICAgICMgaW5jbHVkZSBjb25maWd1cmVkIHNlYXJjaCBwYXJhbSBpZiBwcmVzZW50CiAgICAgICAgbXkgJFNlYXJjaEF0dHJpYnV0ZSA9ICRERkRldGFpbHMtPntJbXBvcnRTZWFyY2hBdHRyaWJ1dGV9IHx8ICdOdW1iZXInOwoKICAgICAgICAkU2VhcmNoUGFyYW1zeyRTZWFyY2hBdHRyaWJ1dGV9ID0gIiRQYXJhbXtUZXJtfSI7CiAgICB9CiAgICBlbHNlIHsKCiAgICAgICAgIyBpbmNsdWRlIGNvbmZpZ3VyZWQgc2VhcmNoIHBhcmFtIGlmIHByZXNlbnQKICAgICAgICBteSAkU2VhcmNoQXR0cmlidXRlID0gJERGRGV0YWlscy0+e1NlYXJjaEF0dHJpYnV0ZX0gfHwgJ1doYXQnOwoKICAgICAgICAkU2VhcmNoUGFyYW1zeyRTZWFyY2hBdHRyaWJ1dGV9ID0gIiokUGFyYW17VGVybX0qIjsKICAgIH0KCiAgICAjIHByZXBhcmUgbWFwcGluZyBvZiBlZGl0IG1hc2sgYXR0cmlidXRlIG5hbWVzCiAgICBteSAlQXR0cmlidXRlTmFtZU1hcHBpbmcgPSAoCiAgICAgICAgQ3VzdG9tZXJVc2VyID0+IFsKCiAgICAgICAgICAgICMgQWdlbnRUaWNrZXRFbWFpbAogICAgICAgICAgICAnRnJvbScsCgogICAgICAgICAgICAjIEFnZW50VGlja2V0UGhvbmUKICAgICAgICAgICAgJ1NlbGVjdGVkQ3VzdG9tZXJVc2VyJywKICAgICAgICBdLAogICAgICAgIFJlc3BvbnNpYmxlSUQgPT4gWwogICAgICAgICAgICAnTmV3UmVzcG9uc2libGVJRCcsCiAgICAgICAgXSwKICAgICAgICBPd25lcklEID0+IFsKICAgICAgICAgICAgJ05ld093bmVySUQnLAogICAgICAgICAgICAnTmV3VXNlcklEJywKICAgICAgICBdLAogICAgICAgIFF1ZXVlSUQgPT4gWwogICAgICAgICAgICAnRGVzdCcsCiAgICAgICAgICAgICdOZXdRdWV1ZUlEJywKICAgICAgICBdLAogICAgICAgIFN0YXRlSUQgPT4gWwogICAgICAgICAgICAnTmV3U3RhdGVJRCcsCiAgICAgICAgICAgICdOZXh0U3RhdGVJRCcsCiAgICAgICAgXSwKICAgICAgICBQcmlvcml0eUlEID0+IFsKICAgICAgICAgICAgJ05ld1ByaW9yaXR5SUQnLAogICAgICAgIF0sCiAgICApOwoKICAgICMgaW5jb3Jwb3JhdGUgcmVmZXJlbmNlZmlsdGVybGlzdCBpbnRvIHNlYXJjaCBwYXJhbXMKICAgIGlmICggSXNBcnJheVJlZldpdGhEYXRhKCAkREZEZXRhaWxzLT57UmVmZXJlbmNlRmlsdGVyTGlzdH0gKSAmJiAhJFBhcmFte0V4dGVybmFsU291cmNlfSApIHsKICAgICAgICBGSUxURVJJVEVNOgogICAgICAgIGZvciBteSAkRmlsdGVySXRlbSAoICRERkRldGFpbHMtPntSZWZlcmVuY2VGaWx0ZXJMaXN0fS0+QCogKSB7CgogICAgICAgICAgICAjIG1hcCBJRCB0byBJRHMgaWYgbmVjZXNzYXJ5CiAgICAgICAgICAgIG15ICRBdHRyaWJ1dGVOYW1lID0gJEZpbHRlckl0ZW0tPntSZWZlcmVuY2VPYmplY3RBdHRyaWJ1dGV9OwogICAgICAgICAgICBpZiAoIGFueSB7ICRfIGVxICRBdHRyaWJ1dGVOYW1lIH0gcXcoUXVldWVJRCBUeXBlSUQgU3RhdGVJRCBQcmlvcml0eUlEIFNlcnZpY2VJRCBTTEFJRCBPd25lcklEIFJlc3BvbnNpYmxlSUQgKSApIHsKICAgICAgICAgICAgICAgICRBdHRyaWJ1dGVOYW1lIC49ICdzJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBjaGVjayBmaWx0ZXIgY29uZmlnCiAgICAgICAgICAgIG5leHQgRklMVEVSSVRFTSB1bmxlc3MgJEZpbHRlckl0ZW0tPntSZWZlcmVuY2VPYmplY3RBdHRyaWJ1dGV9OwogICAgICAgICAgICBuZXh0IEZJTFRFUklURU0gdW5sZXNzICggJEZpbHRlckl0ZW0tPntFcXVhbHNPYmplY3RBdHRyaWJ1dGV9IHx8ICRGaWx0ZXJJdGVtLT57RXF1YWxzU3RyaW5nfSApOwoKICAgICAgICAgICAgaWYgKCAkRmlsdGVySXRlbS0+e0VxdWFsc09iamVjdEF0dHJpYnV0ZX0gKSB7CgogICAgICAgICAgICAgICAgIyBkb24ndCBwZXJmb3JtIHNlYXJjaCBpZiBvYmplY3QgYXR0cmlidXRlIHRvIHNlYXJjaCBmb3IgaXMgZW1wdHkKICAgICAgICAgICAgICAgIG15ICRFcXVhbHNPYmplY3RBdHRyaWJ1dGU7CiAgICAgICAgICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCAkUGFyYW17T2JqZWN0fSApICkgewogICAgICAgICAgICAgICAgICAgICRFcXVhbHNPYmplY3RBdHRyaWJ1dGUgPSAkUGFyYW17T2JqZWN0fXtEeW5hbWljRmllbGR9eyAkRmlsdGVySXRlbS0+e0VxdWFsc09iamVjdEF0dHJpYnV0ZX0gfSAvLyAkUGFyYW17T2JqZWN0fXsgJEZpbHRlckl0ZW0tPntFcXVhbHNPYmplY3RBdHRyaWJ1dGV9IH07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNpZiAoIGRlZmluZWQgJFBhcmFte1BhcmFtT2JqZWN0fSApIHsKICAgICAgICAgICAgICAgICAgICBpZiAoICRGaWx0ZXJJdGVtLT57RXF1YWxzT2JqZWN0QXR0cmlidXRlfSA9fiAvXkR5bmFtaWNGaWVsZF8oPzxERk5hbWU+XFMrKS8gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG15ICRGaWx0ZXJJdGVtREZDb25maWcgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJyktPkR5bmFtaWNGaWVsZEdldCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJCt7REZOYW1lfSwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCBGSUxURVJJVEVNIHVubGVzcyBJc0hhc2hSZWZXaXRoRGF0YSgkRmlsdGVySXRlbURGQ29uZmlnKTsKICAgICAgICAgICAgICAgICAgICAgICAgJEVxdWFsc09iamVjdEF0dHJpYnV0ZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKS0+RWRpdEZpZWxkVmFsdWVHZXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJhbU9iamVjdCAgICAgICAgPT4gJFBhcmFte1BhcmFtT2JqZWN0fSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRmlsdGVySXRlbURGQ29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3JtRGF0ZXMgICAgID0+IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgewoKICAgICAgICAgICAgICAgICAgICAgICAgIyBtYXRjaCBzdGFuZGFyZCBGQVEgYXR0cmlidXRlIG5hbWVzIHdpdGggZWRpdCBtYXNrIGF0dHJpYnV0ZSBuYW1lcwogICAgICAgICAgICAgICAgICAgICAgICBteSBAUGFyYW1OYW1lcyA9ICRQYXJhbXtQYXJhbU9iamVjdH0tPkdldFBhcmFtTmFtZXM7CgogICAgICAgICAgICAgICAgICAgICAgICAjIGNoZWNrIGlmIGF0dHJpYnV0ZSBuYW1lIGl0c2VsZiBpcyBpbiBwYXJhbXMKICAgICAgICAgICAgICAgICAgICAgICAgIyBOT1RFIHRyeWluZyBhdHRyaWJ1dGUgaXRzZWxmIGlzIGNydWNpYWxseSBpbXBvcnRhbnQgaW4gY2FzZSBvZiBRdWV1ZUlECiAgICAgICAgICAgICAgICAgICAgICAgICMgICBiZWNhdXNlIEFnZW50VGlja2V0UGhvbmUgZG9lcyBub3QgcHJvdmlkZSBRdWV1ZUlELCBidXQgcHV0cyB0aGUgaWQgaW4KICAgICAgICAgICAgICAgICAgICAgICAgIyAgIERlc3QsIGFuZCBBZ2VudFRpY2tldEVtYWlsIGxlYXZlcyBEZXN0IGFzIGEgc3RyaW5nIGJ1dCBwdXRzIHRoZSBpZCBpbiBRdWV1ZUlECiAgICAgICAgICAgICAgICAgICAgICAgIG15ICgkUGFyYW1OYW1lKSA9IGdyZXAgeyAkXyBlcSAkRmlsdGVySXRlbS0+e0VxdWFsc09iamVjdEF0dHJpYnV0ZX0gfSBAUGFyYW1OYW1lczsKCiAgICAgICAgICAgICAgICAgICAgICAgICMgaWYgbm90LCB0cnkgdG8gZmluZCBhIG1hcHBlZCBhdHRyaWJ1dGUgbmFtZQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoICEkUGFyYW1OYW1lICkgewoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgY2hlY2sgaWYgbWFwcGVkIGF0dHJpYnV0ZSBuYW1lcyBleGlzdCBhdCBhbGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15ICRNYXBwZWRBdHRyaWJ1dGVzID0gJEF0dHJpYnV0ZU5hbWVNYXBwaW5neyAkRmlsdGVySXRlbS0+e0VxdWFsc09iamVjdEF0dHJpYnV0ZX0gfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggcmVmICRNYXBwZWRBdHRyaWJ1dGVzIGVxICdBUlJBWScgKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BUFBFREFUVFJJQlVURToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJE1hcHBlZEF0dHJpYnV0ZSAoICRNYXBwZWRBdHRyaWJ1dGVzLT5AKiApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCRQYXJhbU5hbWUpID0gZ3JlcCB7ICRfIGVxICRNYXBwZWRBdHRyaWJ1dGUgfSBAUGFyYW1OYW1lczsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3QgTUFQUEVEQVRUUklCVVRFIGlmICRQYXJhbU5hbWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKCkgdW5sZXNzICRQYXJhbU5hbWU7CgogICAgICAgICAgICAgICAgICAgICAgICAkRXF1YWxzT2JqZWN0QXR0cmlidXRlID0gJFBhcmFte1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbU5hbWUgKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICMgd2hlbiBjYWxsZWQgYnkgQWdlbnRSZWZlcmVuY2VTZWFyY2gsIERlc3QgaXMgYSBzdHJpbmcgYW5kIHdlIG5lZWQgdG8gZXh0cmFjdCB0aGUgUXVldWVJRAogICAgICAgICAgICAgICAgICAgICAgICBpZiAoICRQYXJhbU5hbWUgZXEgJ0Rlc3QnICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgbXkgJFF1ZXVlSUQgPSAnJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggJEVxdWFsc09iamVjdEF0dHJpYnV0ZSA9fiAvXihcZHsxLDEwMH0pXHxcfC4rPyQvICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRRdWV1ZUlEID0gJDE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkRXF1YWxzT2JqZWN0QXR0cmlidXRlID0gJFF1ZXVlSUQ7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBlbnN1cmUgdGhhdCBmb3IgRXF1YWxzT2JqZWN0QXR0cmlidXRlIFVzZXJJRCBhbHdheXMgJFNlbGYtPntVc2VySUR9IGlzIHVzZWQgaW4gdGhlIGVuZAogICAgICAgICAgICAgICAgaWYgKCAkRmlsdGVySXRlbS0+e0VxdWFsc09iamVjdEF0dHJpYnV0ZX0gZXEgJ1VzZXJJRCcgKSB7CiAgICAgICAgICAgICAgICAgICAgJEVxdWFsc09iamVjdEF0dHJpYnV0ZSA9ICRQYXJhbXtVc2VySUR9OwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHJldHVybiAoKSB1bmxlc3MgJEVxdWFsc09iamVjdEF0dHJpYnV0ZTsKICAgICAgICAgICAgICAgIHJldHVybiAoKSBpZiAoIHJlZiAkRXF1YWxzT2JqZWN0QXR0cmlidXRlIGVxICdBUlJBWScgJiYgISRFcXVhbHNPYmplY3RBdHRyaWJ1dGUtPkAqICk7CgogICAgICAgICAgICAgICAgIyBjb25maWcgaXRlbSBhdHRyaWJ1dGUKICAgICAgICAgICAgICAgIGlmICggJEZpbHRlckl0ZW0tPntSZWZlcmVuY2VPYmplY3RBdHRyaWJ1dGV9ID1+IG17XkNvbn1pICkgewogICAgICAgICAgICAgICAgICAgICRTZWFyY2hQYXJhbXN7JEF0dHJpYnV0ZU5hbWV9ID0gJEVxdWFsc09iamVjdEF0dHJpYnV0ZTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIGR5bmFtaWMgZmllbGQgYXR0cmlidXRlCiAgICAgICAgICAgICAgICBlbHNpZiAoICRGaWx0ZXJJdGVtLT57UmVmZXJlbmNlT2JqZWN0QXR0cmlidXRlfSA9fiBte15EeW59aSApIHsKICAgICAgICAgICAgICAgICAgICAkU2VhcmNoUGFyYW1zeyRBdHRyaWJ1dGVOYW1lfSA9IHsKICAgICAgICAgICAgICAgICAgICAgICAgRXF1YWxzID0+ICRFcXVhbHNPYmplY3RBdHRyaWJ1dGUsCiAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIGFycmF5IGF0dHJpYnV0ZQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJFNlYXJjaFBhcmFtc3skQXR0cmlidXRlTmFtZX0gPSBbJEVxdWFsc09iamVjdEF0dHJpYnV0ZV07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkRmlsdGVySXRlbS0+e0VxdWFsc1N0cmluZ30gKSB7CgogICAgICAgICAgICAgICAgIyBjb25maWcgaXRlbSBhdHRyaWJ1dGUKICAgICAgICAgICAgICAgICMgVE9ETyBjaGVjayBpZiB0aGlzIGhhcyB0byBiZSBhZGFwdGVkIGZvciBGQVEgc2VhcmNoCiAgICAgICAgICAgICAgICBpZiAoICRGaWx0ZXJJdGVtLT57UmVmZXJlbmNlT2JqZWN0QXR0cmlidXRlfSA9fiBte15Db259aSApIHsKICAgICAgICAgICAgICAgICAgICAkU2VhcmNoUGFyYW1zeyRBdHRyaWJ1dGVOYW1lfSA9ICRGaWx0ZXJJdGVtLT57RXF1YWxzU3RyaW5nfTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIGR5bmFtaWMgZmllbGQgYXR0cmlidXRlCiAgICAgICAgICAgICAgICBlbHNpZiAoICRGaWx0ZXJJdGVtLT57UmVmZXJlbmNlT2JqZWN0QXR0cmlidXRlfSA9fiBte15EeW59aSApIHsKICAgICAgICAgICAgICAgICAgICAkU2VhcmNoUGFyYW1zeyRBdHRyaWJ1dGVOYW1lfSA9IHsKICAgICAgICAgICAgICAgICAgICAgICAgRXF1YWxzID0+ICRGaWx0ZXJJdGVtLT57RXF1YWxzU3RyaW5nfSwKICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgYXJyYXkgYXR0cmlidXRlCiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkU2VhcmNoUGFyYW1zeyRBdHRyaWJ1dGVOYW1lfSA9IFsgJEZpbHRlckl0ZW0tPntFcXVhbHNTdHJpbmd9IF07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyByZXR1cm4gYSBsaXN0IG9mIEZBUSBJRHMKICAgIHJldHVybiAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RkFRJyktPkZBUVNlYXJjaCgKICAgICAgICBMaW1pdCAgICAgICAgICAgID0+ICRQYXJhbXtNYXhSZXN1bHRzfSwKICAgICAgICBSZXN1bHQgICAgICAgICAgID0+ICdBUlJBWScsCiAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSAvLyAxLAogICAgICAgIE9yZGVyQnkgICAgICAgICAgPT4gWydOdW1iZXInXSwKICAgICAgICBPcmRlckJ5RGlyZWN0aW9uID0+IFsnRG93biddLAogICAgICAgICVTZWFyY2hQYXJhbXMsCiAgICApOwp9CgoxOwo=</File>
        <File Location="Kernel/System/DynamicField/ObjectType/FAQ.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6Ok9iamVjdFR5cGU6OkZBUTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBTY2FsYXI6OlV0aWw7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OlN5c3RlbTo6RkFRJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKICAgICdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0JywKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpPYmplY3RUeXBlOjpGQVEKCj1oZWFkMSBERVNDUklQVElPTgoKRkFRIG9iamVjdCBoYW5kbGVyIGZvciBEeW5hbWljRmllbGRzCgo9aGVhZDEgUFVCTElDIElOVEVSRkFDRQoKPWhlYWQyIG5ldygpCgp1c3VhbGx5LCB5b3Ugd2FudCB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgdGhpcwpieSB1c2luZyBLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpPYmplY3RUeXBlOjpGQVEtPm5ldygpOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1oZWFkMiBQb3N0VmFsdWVTZXQoKQoKcGVyZm9ybSBzcGVjaWZpYyBmdW5jdGlvbnMgYWZ0ZXIgdGhlIFZhbHVlIHNldCBmb3IgdGhpcyBvYmplY3QgdHlwZS4KCiAgICBteSAkU3VjY2VzcyA9ICREeW5hbWljRmllbGRGQVFIYW5kbGVyT2JqZWN0LT5Qb3N0VmFsdWVTZXQoCiAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsICAgICAgIyBjb21wbGV0ZSBjb25maWcgb2YgdGhlIER5bmFtaWNGaWVsZAogICAgICAgIE9iamVjdElEICAgICAgICAgICA9PiAkT2JqZWN0SUQsICAgICAgICAgICAgICAgICMgSUQgb2YgdGhlIGN1cnJlbnQgb2JqZWN0IHRoYXQgdGhlIGZpZWxkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBtdXN0IGJlIGxpbmtlZCB0bywgZS4gZy4gRkFRSUQKICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJFZhbHVlLCAgICAgICAgICAgICAgICAgICAjIFZhbHVlIHRvIHN0b3JlLCBkZXBlbmRzIG9uIGJhY2tlbmQgdHlwZQogICAgICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAxMjMsCiAgICApOwoKPWN1dAoKc3ViIFBvc3RWYWx1ZVNldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkTmVlZGVkIChxdyhEeW5hbWljRmllbGRDb25maWcgT2JqZWN0SUQgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgRHluYW1pY0ZpZWxkQ29uZmlnIChnZW5lcmFsKQogICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9ICkgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJUaGUgZmllbGQgY29uZmlndXJhdGlvbiBpcyBpbnZhbGlkIiwKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBjaGVjayBEeW5hbWljRmllbGRDb25maWcgKGludGVybmFsbHkpCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoSUQgRmllbGRUeXBlIE9iamVjdFR5cGUpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPnskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCBpbiBEeW5hbWljRmllbGRDb25maWchIgogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBteSAkRkFRT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkZBUScpOwoKICAgICMgaGlzdG9yeSBpbnNlcnQKICAgICRGQVFPYmplY3QtPkZBUUhpc3RvcnlBZGQoCiAgICAgICAgTmFtZSAgID0+ICJEeW5hbWljRmllbGQgJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntOYW1lfSBVcGRhdGVkIiwKICAgICAgICBJdGVtSUQgPT4gJFBhcmFte09iamVjdElEfSwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICRGQVFPYmplY3QtPl9EZWxldGVGcm9tRkFRQ2FjaGUoIEl0ZW1JRCA9PiAkUGFyYW17T2JqZWN0SUR9ICk7CgogICAgIyBUcmlnZ2VyIGV2ZW50LgogICAgJEZBUU9iamVjdC0+RXZlbnRIYW5kbGVyKAogICAgICAgIEV2ZW50ID0+ICdGQVFEeW5hbWljRmllbGRVcGRhdGVfJyAuICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TmFtZX0sCiAgICAgICAgRGF0YSAgPT4gewogICAgICAgICAgICBGaWVsZE5hbWUgPT4gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntOYW1lfSwKICAgICAgICAgICAgVmFsdWUgICAgID0+ICRQYXJhbXtWYWx1ZX0sCiAgICAgICAgICAgIE9sZFZhbHVlICA9PiAkUGFyYW17T2xkVmFsdWV9LAogICAgICAgICAgICBJdGVtSUQgICAgPT4gJFBhcmFte09iamVjdElEfSwKICAgICAgICAgICAgVXNlcklEICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgIH0sCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIE9iamVjdERhdGFHZXQoKQoKcmV0cmlldmVzIHRoZSBkYXRhIG9mIHRoZSBjdXJyZW50IG9iamVjdC4KCiAgICBteSAlT2JqZWN0RGF0YSA9ICREeW5hbWljRmllbGRGQVFIYW5kbGVyT2JqZWN0LT5PYmplY3REYXRhR2V0KAogICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLCAgICAgICMgY29tcGxldGUgY29uZmlnIG9mIHRoZSBEeW5hbWljRmllbGQKICAgICAgICBVc2VySUQgICAgICAgICAgICAgPT4gMTIzLAogICAgKTsKCnJldHVybnM6CgogICAgJU9iamVjdERhdGEgPSAoCiAgICAgICAgT2JqZWN0SUQgPT4gMTIzLAogICAgICAgIERhdGEgICAgID0+IHsKICAgICAgICAgICAgRkFRSUQgICAgICAgICAgICAgPT4gMzIsCiAgICAgICAgICAgIE51bWJlciAgICAgICAgICAgID0+IDEwMDAzMiwKICAgICAgICAgICAgQ2F0ZWdvcnlJRCAgICAgICAgPT4gJzInLAogICAgICAgICAgICAjIC4uLgogICAgICAgIH0KICAgICk7Cgo9Y3V0CgpzdWIgT2JqZWN0RGF0YUdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkTmVlZGVkIChxdyhEeW5hbWljRmllbGRDb25maWcgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgQ2hlY2sgRHluYW1pY0ZpZWxkQ29uZmlnIChnZW5lcmFsKS4KICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfSApICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiVGhlIGZpZWxkIGNvbmZpZ3VyYXRpb24gaXMgaW52YWxpZCIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBDaGVjayBEeW5hbWljRmllbGRDb25maWcgKGludGVybmFsbHkpLgogICAgZm9yIG15ICROZWVkZWQgKHF3KElEIEZpZWxkVHlwZSBPYmplY3RUeXBlKSkgewogICAgICAgIGlmICggISRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQgaW4gRHluYW1pY0ZpZWxkQ29uZmlnISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJEl0ZW1JRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKS0+R2V0UGFyYW0oCiAgICAgICAgUGFyYW0gPT4gJ0l0ZW1JRCcsCiAgICApOwoKICAgIHJldHVybiBpZiAhJEl0ZW1JRDsKCiAgICBteSAlRkFRID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkZBUScpLT5GQVFHZXQoCiAgICAgICAgSXRlbUlEICAgICA9PiAkSXRlbUlELAogICAgICAgIEl0ZW1GaWVsZHMgPT4gMSwKICAgICAgICBVc2VySUQgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICBpZiAoICElRkFRICkgewoKICAgICAgICByZXR1cm4gKAogICAgICAgICAgICBPYmplY3RJRCA9PiAkSXRlbUlELAogICAgICAgICAgICBEYXRhICAgICA9PiB7fQogICAgICAgICk7CiAgICB9CgogICAgbXkgJVJlc3VsdCA9ICgKICAgICAgICBPYmplY3RJRCA9PiAkSXRlbUlELAogICAgKTsKCiAgICBBVFRSSUJVVEU6CiAgICBmb3IgbXkgJEF0dHJpYnV0ZSAoIHNvcnQga2V5cyAlRkFRICkgewoKICAgICAgICAkUmVzdWx0e0RhdGF9LT57JEF0dHJpYnV0ZX0gPSAkRkFReyRBdHRyaWJ1dGV9OwogICAgfQoKICAgIHJldHVybiAlUmVzdWx0OwoKfQoKMTsKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVE9CTyBwcm9qZWN0IChMPGh0dHBzOi8vb3RvYm8ub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQ+LgoKPWN1dAo=</File>
        <File Location="Kernel/System/FAQ/Category.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpGQVE6OkNhdGVnb3J5OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpTeXN0ZW06OkNhY2hlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6Q3VzdG9tZXJHcm91cCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkRCJywKICAgICdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6RkFROjpDYXRlZ29yeSAtIHN1YiBtb2R1bGUgb2YgS2VybmVsOjpTeXN0ZW06OkZBUQoKPWhlYWQxIERFU0NSSVBUSU9OCgpBbGwgRkFRIGNhdGVnb3J5IGZ1bmN0aW9ucy4KCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9aGVhZDIgQ2F0ZWdvcnlBZGQoKQoKYWRkIGEgY2F0ZWdvcnkKCiAgICBteSAkQ2F0ZWdvcnlJRCA9ICRGQVFPYmplY3QtPkNhdGVnb3J5QWRkKAogICAgICAgIE5hbWUgICAgID0+ICdDYXRlZ29yeUEnLAogICAgICAgIENvbW1lbnQgID0+ICdTb21lIGNvbW1lbnQnLCAgICAgIyBPcHRpb25hbAogICAgICAgIFBhcmVudElEID0+IDIsICAgICAgICAgICAgICAgICAgIyBNYW5kYXRvcnksIGJ1dCBjb3VsZCBiZSAwCiAgICAgICAgVmFsaWRJRCAgPT4gMSwKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgKTsKClJldHVybnM6CgogICAgJENhdGVnb3J5SUQgPSAzNDsgICAgICAgICAgICAgICAjIG9yIHVuZGVmIGlmIGNhdGVnb3J5IGNvdWxkIG5vdCBiZSBhZGRlZAoKPWN1dAoKc3ViIENhdGVnb3J5QWRkIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoTmFtZSBVc2VySUQgVmFsaWRJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIGlmICggIWRlZmluZWQgJFBhcmFte1BhcmVudElEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgUGFyZW50SUQhIiwKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBjaGVjayB0aGF0IFBhcmVudElEIGlzIG5vdCBhbiBlbXB0eSBzdHJpbmcgYnV0IG51bWJlciAwIGlzIGFsbG93ZWQKICAgIGlmICggJFBhcmFte1BhcmVudElEfSBlcSAnJyApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlBhcmVudElEIGNhbm5vdCBiZSBlbXB0eSEiLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGluc2VydCByZWNvcmQKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5EbygKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBJTlNFUlQgSU5UTyBmYXFfY2F0ZWdvcnkgKG5hbWUsIHBhcmVudF9pZCwgY29tbWVudHMsIHZhbGlkX2lkLCBjcmVhdGVkLCBjcmVhdGVkX2J5LAogICAgICAgICAgICAgICAgY2hhbmdlZCwgY2hhbmdlZF9ieSkKICAgICAgICAgICAgVkFMVUVTICggPywgPywgPywgPywgY3VycmVudF90aW1lc3RhbXAsID8sIGN1cnJlbnRfdGltZXN0YW1wLCA/KScsCiAgICAgICAgQmluZCA9PiBbCiAgICAgICAgICAgIFwkUGFyYW17TmFtZX0sICAgXCRQYXJhbXtQYXJlbnRJRH0sIFwkUGFyYW17Q29tbWVudH0sIFwkUGFyYW17VmFsaWRJRH0sCiAgICAgICAgICAgIFwkUGFyYW17VXNlcklEfSwgXCRQYXJhbXtVc2VySUR9LAogICAgICAgIF0sCiAgICApOwoKICAgICMgZ2V0IG5ldyBjYXRlZ29yeSBpZAogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIGlkCiAgICAgICAgICAgIEZST00gZmFxX2NhdGVnb3J5CiAgICAgICAgICAgIFdIRVJFIG5hbWUgPSA/IEFORCBwYXJlbnRfaWQgPSA/JywKICAgICAgICBCaW5kICA9PiBbIFwkUGFyYW17TmFtZX0sIFwkUGFyYW17UGFyZW50SUR9IF0sCiAgICAgICAgTGltaXQgPT4gMSwKICAgICk7CgogICAgbXkgJENhdGVnb3J5SUQ7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkQ2F0ZWdvcnlJRCA9ICRSb3dbMF07CiAgICB9CgogICAgIyBsb2cgbm90aWNlCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICBQcmlvcml0eSA9PiAnbm90aWNlJywKICAgICAgICBNZXNzYWdlICA9PiAiRkFRQ2F0ZWdvcnk6ICckUGFyYW17TmFtZX0nIENhdGVnb3J5SUQ6ICckQ2F0ZWdvcnlJRCcgIgogICAgICAgICAgICAuICJjcmVhdGVkIHN1Y2Nlc3NmdWxseSAoJFBhcmFte1VzZXJJRH0pISIsCiAgICApOwoKICAgIHJldHVybiAkQ2F0ZWdvcnlJRDsKfQoKPWhlYWQyIENhdGVnb3J5Q291bnQoKQoKQ291bnQgdGhlIG51bWJlciBvZiBjYXRlZ29yaWVzLgoKICAgIG15ICRDYXRlZ29yeUNvdW50ID0gJEZBUU9iamVjdC0+Q2F0ZWdvcnlDb3VudCgKICAgICAgICBQYXJlbnRJRHMgPT4gWyAxLCAyLCAzLCA0IF0sCiAgICAgICAgVXNlcklEICAgID0+IDEsCiAgICApOwoKUmV0dXJuczoKCiAgICAkQ2F0ZWdvcnlDb3VudCA9IDY7Cgo9Y3V0CgpzdWIgQ2F0ZWdvcnlDb3VudCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGlmICggISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBVc2VySUQhJywKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgaWYgKCAhZGVmaW5lZCAkUGFyYW17UGFyZW50SURzfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgUGFyZW50SURzIScsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgYnVpbGQgU1FMCiAgICBteSAkU1FMID0gJwogICAgICAgIFNFTEVDVCBDT1VOVCgqKQogICAgICAgIEZST00gZmFxX2NhdGVnb3J5CiAgICAgICAgV0hFUkUgdmFsaWRfaWQgSU4gKCcKICAgICAgICAuIGpvaW4gJywgJywgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZhbGlkJyktPlZhbGlkSURzR2V0KCkKICAgICAgICAuICcpJzsKCiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIHBhcmVudCBpZHMgYXJlIGdpdmVuCiAgICBpZiAoIGRlZmluZWQgJFBhcmFte1BhcmVudElEc30gKSB7CgogICAgICAgICMgaW50ZWdlciBxdW90ZSB0aGUgcGFyZW50IGlkcwogICAgICAgIGZvciBteSAkUGFyZW50SUQgKCBAeyAkUGFyYW17UGFyZW50SURzfSB9ICkgewogICAgICAgICAgICAkUGFyZW50SUQgPSAkREJPYmplY3QtPlF1b3RlKCAkUGFyZW50SUQsICdJbnRlZ2VyJyApOwogICAgICAgIH0KCiAgICAgICAgIyBjcmVhdGUgc3RyaW5nCiAgICAgICAgbXkgJEluU3RyaW5nID0gam9pbiAnLCAnLCBAeyAkUGFyYW17UGFyZW50SURzfSB9OwoKICAgICAgICAkU1FMIC49ICcgQU5EIHBhcmVudF9pZCBJTiAoJyAuICRJblN0cmluZyAuICcpJzsKICAgIH0KCiAgICAjIGFkZCBncm91cCBieQogICAgJFNRTCAuPSAnIEdST1VQIEJZIHBhcmVudF9pZCc7CgogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMICAgPT4gJFNRTCwKICAgICAgICBMaW1pdCA9PiAyMDAsCiAgICApOwoKICAgIG15ICRDb3VudCA9IDA7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkQ291bnQgPSAkUm93WzBdOwogICAgfQoKICAgIHJldHVybiAkQ291bnQ7Cn0KCj1oZWFkMiBDYXRlZ29yeURlbGV0ZSgpCgpEZWxldGUgYSBjYXRlZ29yeS4KCiAgICBteSAkRGVsZXRlU3VjY2VzcyA9ICRGQVFPYmplY3QtPkNhdGVnb3J5RGVsZXRlKAogICAgICAgIENhdGVnb3J5SUQgPT4gMTIzLAogICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICApOwoKUmV0dXJuczoKCiAgICBEZWxldGVTdWNjZXNzID0gMTsgICAgICAgICAgICAgICMgb3IgdW5kZWYgaWYgY2F0ZWdvcnkgY291bGQgbm90IGJlIGRlbGV0ZWQKCj1jdXQKCnN1YiBDYXRlZ29yeURlbGV0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkQXR0cmlidXRlIChxdyhDYXRlZ29yeUlEIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEF0dHJpYnV0ZX0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBdHRyaWJ1dGUhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBkZWxldGUgdGhlIGNhdGVnb3J5CiAgICByZXR1cm4gaWYgISREQk9iamVjdC0+RG8oCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgREVMRVRFIEZST00gZmFxX2NhdGVnb3J5CiAgICAgICAgICAgIFdIRVJFIGlkID0gPycsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17Q2F0ZWdvcnlJRH0gXSwKICAgICk7CgogICAgIyBkZWxldGUgdGhlIGNhdGVnb3J5IGdyb3VwcwogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPkRvKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIERFTEVURSBGUk9NIGZhcV9jYXRlZ29yeV9ncm91cAogICAgICAgICAgICBXSEVSRSBjYXRlZ29yeV9pZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte0NhdGVnb3J5SUR9IF0sCiAgICApOwoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgQ2F0ZWdvcnlEdXBsaWNhdGVDaGVjaygpCgpjaGVjayBhIGNhdGVnb3J5IGZvciBkdXBsaWNhdGUgbmFtZSB1bmRlciB0aGUgc2FtZSBwYXJlbnQKCiAgICBteSAkRXhpc3RzID0gJEZBUU9iamVjdC0+Q2F0ZWdvcnlEdXBsaWNhdGVDaGVjaygKICAgICAgICBDYXRlZ29yeUlEID0+IDEsCiAgICAgICAgTmFtZSAgICAgICA9PiAnU29tZSBOYW1lJywKICAgICAgICBQYXJlbnRJRCAgID0+IDEsCiAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgKTsKClJldHVybnM6CgogICAgJEV4aXN0cyA9IDE7ICAgICAgICAgICAgICAgICMgaWYgY2F0ZWdvcnkgbmFtZSBhbHJlYWR5IGV4aXN0cyB3aXRoIHRoZSBzYW1lIHBhcmVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3IgMCBpZiB0aGUgbmFtZSBkb2VzIG5vdCBleGlzdHMgd2l0aCB0aGUgc2FtZSBwYXJlbnQKCj1jdXQKCnN1YiBDYXRlZ29yeUR1cGxpY2F0ZUNoZWNrIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgaWYgKCAhJFBhcmFte1VzZXJJRH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkIFVzZXJJRCEiLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIHNldCBkZWZhdWx0cwogICAgJFBhcmFte05hbWV9IC8vPSAnJzsKICAgICRQYXJhbXtQYXJlbnRJRH0gfHw9IDA7CiAgICBteSBAVmFsdWVzOwogICAgcHVzaCBAVmFsdWVzLCBcJFBhcmFte05hbWV9OwogICAgcHVzaCBAVmFsdWVzLCBcJFBhcmFte1BhcmVudElEfTsKCiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGRiIHF1b3RlCiAgICAkUGFyYW17UGFyZW50SUR9ID0gJERCT2JqZWN0LT5RdW90ZSggJFBhcmFte1BhcmVudElEfSwgJ0ludGVnZXInICk7CgogICAgIyBidWlsZCBTUUwKICAgIG15ICRTUUwgPSAnCiAgICAgICAgU0VMRUNUIGlkCiAgICAgICAgRlJPTSBmYXFfY2F0ZWdvcnkKICAgICAgICBXSEVSRSBuYW1lID0gPwogICAgICAgICAgICBBTkQgcGFyZW50X2lkID0gPwogICAgICAgICc7CiAgICBpZiAoIGRlZmluZWQgJFBhcmFte0NhdGVnb3J5SUR9ICkgewogICAgICAgICRTUUwgLj0gIiBBTkQgaWQgIT0gPyI7CiAgICAgICAgcHVzaCBAVmFsdWVzLCBcJFBhcmFte0NhdGVnb3J5SUR9OwoKICAgIH0KCiAgICAjIHByZXBhcmUgU1FMIHN0YXRlbWVudAogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMICAgPT4gJFNRTCwKICAgICAgICBCaW5kICA9PiBcQFZhbHVlcywKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICRFeGlzdHM7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkRXhpc3RzID0gMTsKICAgIH0KCiAgICByZXR1cm4gJEV4aXN0czsKfQoKPWhlYWQyIENhdGVnb3J5R2V0KCkKCmdldCBhIGNhdGVnb3J5IGFzIGhhc2gKCiAgICBteSAlQ2F0ZWdvcnkgPSAkRkFRT2JqZWN0LT5DYXRlZ29yeUdldCgKICAgICAgICBDYXRlZ29yeUlEID0+IDEsCiAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgKTsKClJldHVybnM6CgogICAgJUNhdGVnb3J5ID0gKCwKICAgICAgICBDYXRlZ29yeUlEID0+IDIsCiAgICAgICAgUGFyZW50SUQgICA9PiAwLAogICAgICAgIE5hbWUgICAgICAgPT4gJ015IENhdGVnb3J5JywKICAgICAgICBDb21tZW50ICAgID0+ICdUaGlzIGlzIG15IGZpcnN0IGNhdGVnb3J5LicsCiAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBDYXRlZ29yeUdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGlmICggISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCBVc2VySUQhIiwKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgaWYgKCAhZGVmaW5lZCAkUGFyYW17Q2F0ZWdvcnlJRH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIENhdGVnb3J5SUQhJywKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBjaGVjayBjYWNoZQogICAgbXkgJENhY2hlS2V5ID0gJ0NhdGVnb3J5R2V0OjonIC4gJFBhcmFte0NhdGVnb3J5SUR9OwoKICAgICMgZ2V0IGNhY2hlIG9iamVjdAogICAgbXkgJENhY2hlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyk7CgogICAgbXkgJENhY2hlID0gJENhY2hlT2JqZWN0LT5HZXQoCiAgICAgICAgVHlwZSA9PiAnRkFRJywKICAgICAgICBLZXkgID0+ICRDYWNoZUtleSwKICAgICk7CgogICAgcmV0dXJuICV7JENhY2hlfSBpZiAkQ2FjaGU7CgogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBTUUwKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFNFTEVDVCBpZCwgcGFyZW50X2lkLCBuYW1lLCBjb21tZW50cywgdmFsaWRfaWQKICAgICAgICAgICAgRlJPTSBmYXFfY2F0ZWdvcnkKICAgICAgICAgICAgV0hFUkUgaWQgPSA/JywKICAgICAgICBCaW5kICA9PiBbIFwkUGFyYW17Q2F0ZWdvcnlJRH0gXSwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICBteSAlRGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICVEYXRhID0gKAogICAgICAgICAgICBDYXRlZ29yeUlEID0+ICRSb3dbMF0sCiAgICAgICAgICAgIFBhcmVudElEICAgPT4gJFJvd1sxXSwKICAgICAgICAgICAgTmFtZSAgICAgICA9PiAkUm93WzJdLAogICAgICAgICAgICBDb21tZW50ICAgID0+ICRSb3dbM10sCiAgICAgICAgICAgIFZhbGlkSUQgICAgPT4gJFJvd1s0XSwKICAgICAgICApOwogICAgfQoKICAgICMgY2FjaGUgcmVzdWx0CiAgICAkQ2FjaGVPYmplY3QtPlNldCgKICAgICAgICBUeXBlICA9PiAnRkFRJywKICAgICAgICBLZXkgICA9PiAkQ2FjaGVLZXksCiAgICAgICAgVmFsdWUgPT4gXCVEYXRhLAogICAgICAgIFRUTCAgID0+IDYwICogNjAgKiAyNCAqIDIsCiAgICApOwoKICAgIHJldHVybiAlRGF0YTsKfQoKPWhlYWQyIENhdGVnb3J5R3JvdXBHZXQoKQoKZ2V0IGdyb3VwcyBvZiBhIGNhdGVnb3J5CgogICAgbXkgJEdyb3VwQXJyYXlSZWYgPSAkRkFRT2JqZWN0LT5DYXRlZ29yeUdyb3VwR2V0KAogICAgICAgIENhdGVnb3J5SUQgPT4gMywKICAgICAgICBVc2VySUQgICAgID0+IDEsCiAgICApOwoKUmV0dXJuczoKCiAgICAkR3JvdXBBcnJheVJlZiA9IFsKICAgICAgICAyLAogICAgICAgIDksCiAgICAgICAgMTAsCiAgICBdOwoKPWN1dAoKc3ViIENhdGVnb3J5R3JvdXBHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhDYXRlZ29yeUlEIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgZ2V0IGdyb3VwcwogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIGdyb3VwX2lkCiAgICAgICAgICAgIEZST00gZmFxX2NhdGVnb3J5X2dyb3VwCiAgICAgICAgICAgIFdIRVJFIGNhdGVnb3J5X2lkID0gPycsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17Q2F0ZWdvcnlJRH0gXSwKICAgICk7CgogICAgbXkgQEdyb3VwczsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIHB1c2ggQEdyb3VwcywgJFJvd1swXTsKICAgIH0KCiAgICByZXR1cm4gXEBHcm91cHM7Cn0KCj1oZWFkMiBDYXRlZ29yeUdyb3VwR2V0QWxsKCkKCmdldCBhbGwgY2F0ZWdvcnktZ3JvdXBzCgogICAgbXkgJEFsbENhdGVnb3J5R3JvdXBIYXNoUmVmID0gJEZBUU9iamVjdC0+Q2F0ZWdvcnlHcm91cEdldEFsbCgKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CgpSZXR1cm5zOgoKICAgICRBbGxDYXRlZ29yeUdyb3VwSGFzaFJlZiA9IHsKICAgICAgICAxID0+IHsKICAgICAgICAgICAgMiAgPT4gMSwKICAgICAgICB9LAogICAgICAgIDIgPT4gewogICAgICAgICAgICAyICA9PiAxLAogICAgICAgICAgICA5ICA9PiAxLAogICAgICAgICAgICAxMCA9PiAxLAogICAgICAgIH0sCiAgICAgICAgMyA9PiB7CiAgICAgICAgICAgIDIgID0+IDEsCiAgICAgICAgICAgIDkgID0+IDEsCiAgICAgICAgICAgIDEwID0+IDEsCiAgICAgICAgfSwKICAgICAgICA0ID0+IHsKICAgICAgICAgICAgMSAgPT4gMSwKICAgICAgICAgICAgMiAgPT4gMSwKICAgICAgICAgICAgMyAgPT4gMSwKICAgICAgICAgICAgNCAgPT4gMSwKICAgICAgICAgICAgNSAgPT4gMSwKICAgICAgICAgICAgOSAgPT4gMSwKICAgICAgICAgICAgMTAgPT4gMSwKICAgICAgICB9LAogICAgfTsKCj1jdXQKCnN1YiBDYXRlZ29yeUdyb3VwR2V0QWxsIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgaWYgKCAhJFBhcmFte1VzZXJJRH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkIFVzZXJJRCEiLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGNoZWNrIGNhY2hlCiAgICBpZiAoICRTZWxmLT57Q2FjaGV9LT57Q2F0ZWdvcnlHcm91cEdldEFsbH0gKSB7CgogICAgICAgIHJldHVybiAkU2VsZi0+e0NhY2hlfS0+e0NhdGVnb3J5R3JvdXBHZXRBbGx9OwogICAgfQoKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgZ2V0IGdyb3VwcwogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIGdyb3VwX2lkLCBjYXRlZ29yeV9pZAogICAgICAgICAgICBGUk9NIGZhcV9jYXRlZ29yeV9ncm91cCcsCiAgICApOwoKICAgIG15ICVHcm91cHM7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkR3JvdXBzeyAkUm93WzFdIH0tPnsgJFJvd1swXSB9ID0gMTsKICAgIH0KCiAgICAjIGNhY2hlCiAgICAkU2VsZi0+e0NhY2hlfS0+e0NhdGVnb3J5R3JvdXBHZXRBbGx9ID0gXCVHcm91cHM7CgogICAgcmV0dXJuIFwlR3JvdXBzOwp9Cgo9aGVhZDIgQ2F0ZWdvcnlMaXN0KCkKCmdldCB0aGUgY2F0ZWdvcnkgbGlzdCBhcyBoYXNoCgogICAgbXkgJENhdGVnb3J5SGFzaFJlZiA9ICRGQVFPYmplY3QtPkNhdGVnb3J5TGlzdCgKICAgICAgICBWYWxpZCAgPT4gMSwgICAjIChvcHRpb25hbCkKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CgpSZXR1cm5zOgoKICAgICRDYXRlZ29yeUhhc2hSZWYgPSB7CiAgICAgICAgMCA9PiB7CiAgICAgICAgICAgIDEgPT4gJ01pc2MnLAogICAgICAgICAgICAyID0+ICdNeSBDYXRlZ29yeScsCiAgICAgICAgfSwKICAgICAgICAyID0+IHsKICAgICAgICAgICAgMyA9PiAnU3ViIENhdGVnb3J5IEEnLAogICAgICAgICAgICA0ID0+ICdTdWIgQ2F0ZWdvcnkgQicsCiAgICAgICAgfSwKICAgIH07Cgo9Y3V0CgpzdWIgQ2F0ZWdvcnlMaXN0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgaWYgKCAhJFBhcmFte1VzZXJJRH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkIFVzZXJJRCEiLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIHNldCBkZWZhdWx0CiAgICBteSAkVmFsaWQgPSAwOwogICAgaWYgKCBkZWZpbmVkICRQYXJhbXtWYWxpZH0gKSB7CiAgICAgICAgJFZhbGlkID0gJFBhcmFte1ZhbGlkfTsKICAgIH0KCiAgICAjIGNoZWNrIGNhY2hlCiAgICBpZiAoICRTZWxmLT57Q2FjaGV9LT57Q2F0ZWdvcnlMaXN0fS0+eyRWYWxpZH0gKSB7CgogICAgICAgIHJldHVybiAkU2VsZi0+e0NhY2hlfS0+e0NhdGVnb3J5TGlzdH0tPnskVmFsaWR9OwogICAgfQoKICAgICMgYnVpbGQgU1FMCiAgICBteSAkU1FMID0gJwogICAgICAgIFNFTEVDVCBpZCwgcGFyZW50X2lkLCBuYW1lCiAgICAgICAgRlJPTSBmYXFfY2F0ZWdvcnknOwogICAgaWYgKCRWYWxpZCkgewoKICAgICAgICAjIGdldCB0aGUgdmFsaWQgaWRzCiAgICAgICAgJFNRTCAuPSAnIFdIRVJFIHZhbGlkX2lkIElOICgnCiAgICAgICAgICAgIC4gam9pbiAnLCAnLCAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnKS0+VmFsaWRJRHNHZXQoKQogICAgICAgICAgICAuICcpJzsKICAgIH0KCiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIHByZXBhcmUgU1FMIHN0YXRlbWVudAogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoIFNRTCA9PiAkU1FMICk7CgogICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICBteSAlRGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICREYXRheyAkUm93WzFdIH0tPnsgJFJvd1swXSB9ID0gJFJvd1syXTsKICAgIH0KCiAgICAjIGNhY2hlCiAgICAkU2VsZi0+e0NhY2hlfS0+e0NhdGVnb3J5TGlzdH0tPnskVmFsaWR9ID0gXCVEYXRhOwoKICAgIHJldHVybiBcJURhdGE7Cn0KCj1oZWFkMiBDYXRlZ29yeVNlYXJjaCgpCgpnZXQgdGhlIGNhdGVnb3J5IHNlYXJjaCBhcyBhbiBhcnJheSByZWYKCiAgICBteSAkQ2F0ZWdvcnlJREFycmF5UmVmID0gJEZBUU9iamVjdC0+Q2F0ZWdvcnlTZWFyY2goCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ1Rlc3QnLAogICAgICAgIFBhcmVudElEICAgID0+IDMsCiAgICAgICAgUGFyZW50SURzICAgPT4gWyAxLCAzLCA4IF0sCiAgICAgICAgQ2F0ZWdvcnlJRHMgPT4gWyAyLCA1LCA3IF0sCiAgICAgICAgT3JkZXJCeSAgICAgPT4gJ05hbWUnLAogICAgICAgIFNvcnRCeSAgICAgID0+ICdkb3duJywKICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgKTsKClJldHVybnM6CgogICAgJENhdGVnb3J5SURBcnJheVJlZiA9IFsKICAgICAgICAyLAogICAgXTsKCj1jdXQKCnN1YiBDYXRlZ29yeVNlYXJjaCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGlmICggISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCBVc2VySUQhIiwKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBTUUwKICAgIG15ICRTUUwgPSAnCiAgICAgICAgU0VMRUNUIGlkCiAgICAgICAgRlJPTSBmYXFfY2F0ZWdvcnkKICAgICAgICBXSEVSRSB2YWxpZF9pZCBJTiAoJwogICAgICAgIC4gam9pbiAnLCAnLCAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnKS0+VmFsaWRJRHNHZXQoKQogICAgICAgIC4gJyknOwoKICAgIG15ICRFeHQgPSAnJzsKCiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIHNlYXJjaCBmb3IgbmFtZQogICAgaWYgKCBkZWZpbmVkICRQYXJhbXtOYW1lfSApIHsKCiAgICAgICAgIyBkYiBsaWtlIHF1b3RlCiAgICAgICAgJFBhcmFte05hbWV9ID0gJERCT2JqZWN0LT5RdW90ZSggJFBhcmFte05hbWV9LCAnTGlrZScgKTsKCiAgICAgICAgJEV4dCAuPSAiIEFORCBuYW1lIExJS0UgJyUiIC4gJFBhcmFte05hbWV9IC4gIiUnICRTZWxmLT57TGlrZUVzY2FwZVN0cmluZ30iOwogICAgfQoKICAgICMgc2VhcmNoIGZvciBwYXJlbnQgaWQKICAgIGVsc2lmICggZGVmaW5lZCAkUGFyYW17UGFyZW50SUR9ICkgewoKICAgICAgICAjIGRiIGludGVnZXIgcXVvdGUKICAgICAgICAkUGFyYW17UGFyZW50SUR9ID0gJERCT2JqZWN0LT5RdW90ZSggJFBhcmFte1BhcmVudElEfSwgJ0ludGVnZXInICk7CgogICAgICAgICRFeHQgLj0gJyBBTkQgcGFyZW50X2lkID0gJyAuICRQYXJhbXtQYXJlbnRJRH07CiAgICB9CgogICAgIyBzZWFyY2ggZm9yIHBhcmVudCBpZHMKICAgIGVsc2lmICgKICAgICAgICBkZWZpbmVkICRQYXJhbXtQYXJlbnRJRHN9CiAgICAgICAgJiYgcmVmICRQYXJhbXtQYXJlbnRJRHN9IGVxICdBUlJBWScKICAgICAgICAmJiBAeyAkUGFyYW17UGFyZW50SURzfSB9CiAgICAgICAgKQogICAgewoKICAgICAgICAjIGludGVnZXIgcXVvdGUgdGhlIHBhcmVudCBpZHMKICAgICAgICBmb3IgbXkgJFBhcmVudElEICggQHsgJFBhcmFte1BhcmVudElEc30gfSApIHsKICAgICAgICAgICAgJFBhcmVudElEID0gJERCT2JqZWN0LT5RdW90ZSggJFBhcmVudElELCAnSW50ZWdlcicgKTsKICAgICAgICB9CgogICAgICAgICMgY3JlYXRlIHN0cmluZwogICAgICAgIG15ICRJblN0cmluZyA9IGpvaW4gJywgJywgQHsgJFBhcmFte1BhcmVudElEc30gfTsKCiAgICAgICAgJEV4dCA9ICcgQU5EIHBhcmVudF9pZCBJTiAoJyAuICRJblN0cmluZyAuICcpJzsKICAgIH0KCiAgICAjIHNlYXJjaCBmb3IgY2F0ZWdvcnkgaWRzCiAgICBlbHNpZiAoCiAgICAgICAgZGVmaW5lZCAkUGFyYW17Q2F0ZWdvcnlJRHN9CiAgICAgICAgJiYgcmVmICRQYXJhbXtDYXRlZ29yeUlEc30gZXEgJ0FSUkFZJwogICAgICAgICYmIEB7ICRQYXJhbXtDYXRlZ29yeUlEc30gfQogICAgICAgICkKICAgIHsKCiAgICAgICAgIyBpbnRlZ2VyIHF1b3RlIHRoZSBjYXRlZ29yeSBpZHMKICAgICAgICBmb3IgbXkgJENhdGVnb3J5SUQgKCBAeyAkUGFyYW17Q2F0ZWdvcnlJRHN9IH0gKSB7CiAgICAgICAgICAgICRDYXRlZ29yeUlEID0gJERCT2JqZWN0LT5RdW90ZSggJENhdGVnb3J5SUQsICdJbnRlZ2VyJyApOwogICAgICAgIH0KCiAgICAgICAgIyBjcmVhdGUgc3RyaW5nCiAgICAgICAgbXkgJEluU3RyaW5nID0gam9pbiAnLCAnLCBAeyAkUGFyYW17Q2F0ZWdvcnlJRHN9IH07CgogICAgICAgICRFeHQgPSAnIEFORCBpZCBJTiAoJyAuICRJblN0cmluZyAuICcpJzsKICAgIH0KCiAgICAjIE9SREVSIEJZCiAgICBpZiAoICRQYXJhbXtPcmRlckJ5fSApIHsKICAgICAgICAkRXh0IC49ICIgT1JERVIgQlkgbmFtZSI7CgogICAgICAgICMgc2V0IHRoZSBkZWZhdWx0IHNvcnQgb3JkZXIKICAgICAgICAkUGFyYW17U29ydEJ5fSB8fD0gJ3VwJzsKCiAgICAgICAgIyBTT1JUCiAgICAgICAgaWYgKCAkUGFyYW17U29ydEJ5fSApIHsKICAgICAgICAgICAgaWYgKCAkUGFyYW17U29ydEJ5fSBlcSAndXAnICkgewogICAgICAgICAgICAgICAgJEV4dCAuPSAiIEFTQyI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkUGFyYW17U29ydEJ5fSBlcSAnZG93bicgKSB7CiAgICAgICAgICAgICAgICAkRXh0IC49ICIgREVTQyI7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBTUUwgU1RBVEVNRU5UCiAgICAkU1FMIC49ICRFeHQ7CgogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMICAgPT4gJFNRTCwKICAgICAgICBMaW1pdCA9PiA1MDAsCiAgICApOwoKICAgIG15IEBMaXN0OwogICAgd2hpbGUgKCBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgcHVzaCBATGlzdCwgJFJvd1swXTsKICAgIH0KCiAgICByZXR1cm4gXEBMaXN0Owp9Cgo9aGVhZDIgQ2F0ZWdvcnlTdWJDYXRlZ29yeUlETGlzdCgpCgpnZXQgYWxsIHN1YmNhdGVnb3J5IGlkcyBvZiBhIGNhdGVnb3J5CgogICAgbXkgJFN1YkNhdGVnb3J5SURBcnJheVJlZiA9ICRGQVFPYmplY3QtPkNhdGVnb3J5U3ViQ2F0ZWdvcnlJRExpc3QoCiAgICAgICAgUGFyZW50SUQgICAgID0+IDEsCiAgICAgICAgTW9kZSAgICAgICAgID0+ICdQdWJsaWMnLCAjIChBZ2VudCwgQ3VzdG9tZXIsIFB1YmxpYykKICAgICAgICBDdXN0b21lclVzZXIgPT4gJ3R0JywKICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICk7CgpSZXR1cm5zOgoKICAgICRTdWJDYXRlZ29yeUlEQXJyYXlSZWYgPSBbCiAgICAgICAgMywKICAgICAgICA0LAogICAgICAgIDUsCiAgICAgICAgNiwKICAgIF07Cgo9Y3V0CgpzdWIgQ2F0ZWdvcnlTdWJDYXRlZ29yeUlETGlzdCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGlmICggISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCBVc2VySUQhIiwKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgaWYgKCAhZGVmaW5lZCAkUGFyYW17UGFyZW50SUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBQYXJlbnRJRCEnLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSAkQ2F0ZWdvcmllcyA9IHt9OwoKICAgIGlmICggJFBhcmFte01vZGV9ICYmICRQYXJhbXtNb2RlfSBlcSAnQWdlbnQnICkgewoKICAgICAgICAjIGdldCBhZ2VudHMgY2F0ZWdvcmllcwogICAgICAgICRDYXRlZ29yaWVzID0gJFNlbGYtPkdldFVzZXJDYXRlZ29yaWVzKAogICAgICAgICAgICBUeXBlICAgPT4gJ3JvJywKICAgICAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICB9CiAgICBlbHNpZiAoICRQYXJhbXtNb2RlfSAmJiAkUGFyYW17TW9kZX0gZXEgJ0N1c3RvbWVyJyApIHsKCiAgICAgICAgIyBnZXQgY3VzdG9tZXIgY2F0ZWdvcmllcwogICAgICAgICRDYXRlZ29yaWVzID0gJFNlbGYtPkdldEN1c3RvbWVyQ2F0ZWdvcmllcygKICAgICAgICAgICAgVHlwZSAgICAgICAgID0+ICdybycsCiAgICAgICAgICAgIEN1c3RvbWVyVXNlciA9PiAkUGFyYW17Q3VzdG9tZXJVc2VyfSwKICAgICAgICAgICAgVXNlcklEICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKCiAgICAgICAgIyBnZXQgYWxsIGNhdGVnb3JpZXMKICAgICAgICAkQ2F0ZWdvcmllcyA9ICRTZWxmLT5DYXRlZ29yeUxpc3QoCiAgICAgICAgICAgIFZhbGlkICA9PiAxLAogICAgICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgIH0KCiAgICBteSBAU3ViQ2F0ZWdvcnlJRHM7CiAgICBteSBAVGVtcFN1YkNhdGVnb3J5SURzID0ga2V5cyAleyAkQ2F0ZWdvcmllcy0+eyAkUGFyYW17UGFyZW50SUR9IH0gfTsKICAgIFNVQkNBVEVHT1JZSUQ6CiAgICB3aGlsZSAoQFRlbXBTdWJDYXRlZ29yeUlEcykgewoKICAgICAgICAjIGdldCBuZXh0IHN1YmNhdGVnb3J5IGlkCiAgICAgICAgbXkgJFN1YkNhdGVnb3J5SUQgPSBzaGlmdCBAVGVtcFN1YkNhdGVnb3J5SURzOwoKICAgICAgICAjIGFkZCB0byByZXN1bHQKICAgICAgICBwdXNoIEBTdWJDYXRlZ29yeUlEcywgJFN1YkNhdGVnb3J5SUQ7CgogICAgICAgICMgY2hlY2sgaWYgc3ViY2F0ZWdvcnkgaGFzIG93biBzdWJjYXRlZ29yaWVzCiAgICAgICAgbmV4dCBTVUJDQVRFR09SWUlEIGlmICEkQ2F0ZWdvcmllcy0+eyRTdWJDYXRlZ29yeUlEfTsKCiAgICAgICAgIyBhZGQgbmV3IHN1YmNhdGVnb3JpZXMKICAgICAgICBwdXNoIEBUZW1wU3ViQ2F0ZWdvcnlJRHMsIGtleXMgJXsgJENhdGVnb3JpZXMtPnskU3ViQ2F0ZWdvcnlJRH0gfTsKICAgIH0KCiAgICAjIHNvcnQgc3ViY2F0ZWdvcmllcyBudW1lcmljYWxseQogICAgQFN1YkNhdGVnb3J5SURzID0gc29ydCB7ICRhIDw9PiAkYiB9IEBTdWJDYXRlZ29yeUlEczsKCiAgICByZXR1cm4gXEBTdWJDYXRlZ29yeUlEczsKfQoKPWhlYWQyIENhdGVnb3J5VHJlZUxpc3QoKQoKZ2V0IGFsbCBjYXRlZ29yaWVzIGFzIHRyZWUgKHdpdGggdGhlaXIgbG9uZyBuYW1lcykKCiAgICBteSAkQ2F0ZWdvcnlUcmVlID0gJEZBUU9iamVjdC0+Q2F0ZWdvcnlUcmVlTGlzdCgKICAgICAgICBWYWxpZCAgPT4gMCwgICMgKDB8MSwgb3B0aW9uYWwpCiAgICAgICAgVXNlcklEID0+IDEsCiAgICApOwoKUmV0dXJuczoKCiAgICAkQ2F0ZWdvcnlUcmVlID0gewogICAgICAgIDEgPT4gJ01pc2MnLAogICAgICAgIDIgPT4gJ015IENhdGVnb3J5JywKICAgICAgICAzID0+ICdNeSBDYXRlZ29yeTo6U3ViIENhdGVnb3J5IEEnLAogICAgICAgIDQgPT4gJ015IENhdGVnb3J5OjpTdWIgQ2F0ZWdvcnkgQicsCiAgICB9OwoKPWN1dAoKc3ViIENhdGVnb3J5VHJlZUxpc3QgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBpZiAoICEkUGFyYW17VXNlcklEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgVXNlcklEISIsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgc2V0IGRlZmF1bHQKICAgIG15ICRWYWxpZCA9IDA7CiAgICBpZiAoICRQYXJhbXtWYWxpZH0gKSB7CiAgICAgICAgJFZhbGlkID0gJFBhcmFte1ZhbGlkfTsKICAgIH0KCiAgICAjIGNoZWNrIGNhY2hlCiAgICBpZiAoICRTZWxmLT57Q2FjaGV9LT57R2V0Q2F0ZWdvcnlUcmVlfS0+eyRWYWxpZH0gKSB7CgogICAgICAgIHJldHVybiAkU2VsZi0+e0NhY2hlfS0+e0dldENhdGVnb3J5VHJlZX0tPnskVmFsaWR9OwogICAgfQoKICAgICMgYnVpbGQgU1FMCiAgICBteSAkU1FMID0gJwogICAgICAgIFNFTEVDVCBpZCwgcGFyZW50X2lkLCBuYW1lCiAgICAgICAgRlJPTSBmYXFfY2F0ZWdvcnknOwoKICAgICMgYWRkIHdoZXJlIGNsYXVzZSBmb3IgdmFsaWQgY2F0ZWdvcmllcwogICAgaWYgKCRWYWxpZCkgewogICAgICAgICRTUUwgLj0gJyBXSEVSRSB2YWxpZF9pZCBJTiAoJwogICAgICAgICAgICAuIGpvaW4gJywgJywgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZhbGlkJyktPlZhbGlkSURzR2V0KCkKICAgICAgICAgICAgLiAnKSc7CiAgICB9CgogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBwcmVwYXJlIFNRTAogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICRTUUwsCiAgICApOwoKICAgICMgZmV0Y2ggcmVzdWx0CiAgICBteSAlQ2F0ZWdvcnlNYXA7CiAgICBteSAlQ2F0ZWdvcnlOYW1lTG9va3VwOwogICAgbXkgJVBhcmVudElETG9va3VwOwogICAgd2hpbGUgKCBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJENhdGVnb3J5TWFweyAkUm93WzFdIH0tPnsgJFJvd1swXSB9ID0gJFJvd1syXTsKICAgICAgICAkQ2F0ZWdvcnlOYW1lTG9va3VweyAkUm93WzBdIH0gICAgICAgPSAkUm93WzJdOwogICAgICAgICRQYXJlbnRJRExvb2t1cHsgJFJvd1swXSB9ICAgICAgICAgICA9ICRSb3dbMV07CiAgICB9CgogICAgIyB0byBzdG9yZSB0aGUgY2F0ZWdvcnkgdHJlZQogICAgbXkgJUNhdGVnb3J5VHJlZTsKCiAgICAjIGNoZWNrIGFsbCBwYXJlbnQgSURzCiAgICBmb3IgbXkgJFBhcmVudElEICggc29ydCB7ICRhIDw9PiAkYiB9IGtleXMgJUNhdGVnb3J5TWFwICkgewoKICAgICAgICAjIGdldCBzdWJjYXRlZ29yaWVzIGFuZCBuYW1lcyBmb3IgdGhpcyBwYXJlbnQgaWQKICAgICAgICB3aGlsZSAoIG15ICggJENhdGVnb3J5SUQsICRDYXRlZ29yeU5hbWUgKSA9IGVhY2ggJXsgJENhdGVnb3J5TWFweyRQYXJlbnRJRH0gfSApIHsKCiAgICAgICAgICAgICMgbG9va3VwIHRoZSBwYXJlbnRzIG5hbWUKICAgICAgICAgICAgbXkgJE5ld1BhcmVudElEID0gJFBhcmVudElEOwogICAgICAgICAgICB3aGlsZSAoJE5ld1BhcmVudElEKSB7CgogICAgICAgICAgICAgICAgIyBwcmUtYXBwZW5kIHBhcmVudHMgY2F0ZWdvcnkgbmFtZQogICAgICAgICAgICAgICAgaWYgKCAkQ2F0ZWdvcnlOYW1lTG9va3VweyROZXdQYXJlbnRJRH0gKSB7CiAgICAgICAgICAgICAgICAgICAgJENhdGVnb3J5TmFtZSA9ICRDYXRlZ29yeU5hbWVMb29rdXB7JE5ld1BhcmVudElEfSAuICc6OicgLiAkQ2F0ZWdvcnlOYW1lOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgZ2V0IHVwIG9uZSBwYXJlbnQgbGV2ZWwKICAgICAgICAgICAgICAgICROZXdQYXJlbnRJRCA9ICRQYXJlbnRJRExvb2t1cHskTmV3UGFyZW50SUR9IHx8IDA7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgYWRkIGNhdGVnb3J5IHRvIHRyZWUKICAgICAgICAgICAgJENhdGVnb3J5VHJlZXskQ2F0ZWdvcnlJRH0gPSAkQ2F0ZWdvcnlOYW1lOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNhY2hlCiAgICAkU2VsZi0+e0NhY2hlfS0+e0dldENhdGVnb3J5VHJlZX0tPnskVmFsaWR9ID0gXCVDYXRlZ29yeVRyZWU7CgogICAgcmV0dXJuIFwlQ2F0ZWdvcnlUcmVlOwp9Cgo9aGVhZDIgQ2F0ZWdvcnlVcGRhdGUoKQoKdXBkYXRlIGEgY2F0ZWdvcnkKCiAgICBteSAkU3VjY2VzcyA9ICRGQVFPYmplY3QtPkNhdGVnb3J5VXBkYXRlKAogICAgICAgIENhdGVnb3J5SUQgPT4gMiwKICAgICAgICBQYXJlbnRJRCAgID0+IDEsCiAgICAgICAgTmFtZSAgICAgICA9PiAnU29tZSBDYXRlZ29yeScsCiAgICAgICAgQ29tbWVudCAgICA9PiAnc29tZSBjb21tZW50JywKICAgICAgICBVc2VySUQgICAgID0+IDEsCiAgICApOwoKUmV0dXJuczoKCiAgICAkU3VjY2VzcyA9IDE7ICAgICAgICAgICAgICAgICMgb3IgdW5kZWYgaWYgY2F0ZWdvcnkgY291bGQgbm90IGJlIHVwZGF0ZWQKCj1jdXQKCnN1YiBDYXRlZ29yeVVwZGF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KE5hbWUgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoQ2F0ZWdvcnlJRCBQYXJlbnRJRCkpIHsKICAgICAgICBpZiAoICFkZWZpbmVkICRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayB0aGF0IFBhcmVudElEIGlzIG5vdCBhbiBlbXB0eSBzdHJpbmcgYnV0IG51bWJlciAwIGlzIGFsbG93ZWQKICAgIGlmICggJFBhcmFte1BhcmVudElEfSBlcSAnJyApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlBhcmVudElEIGNhbm5vdCBiZSBlbXB0eSEiLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIFNRTAogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPkRvKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFVQREFURSBmYXFfY2F0ZWdvcnkKICAgICAgICAgICAgU0VUIHBhcmVudF9pZCA9ID8sIG5hbWUgPSA/LCBjb21tZW50cyA9ID8sIHZhbGlkX2lkID0gPywgY2hhbmdlZCA9IGN1cnJlbnRfdGltZXN0YW1wLAogICAgICAgICAgICAgICAgY2hhbmdlZF9ieSA9ID8KICAgICAgICAgICAgV0hFUkUgaWQgPSA/JywKICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgXCRQYXJhbXtQYXJlbnRJRH0sIFwkUGFyYW17TmFtZX0sCiAgICAgICAgICAgIFwkUGFyYW17Q29tbWVudH0sICBcJFBhcmFte1ZhbGlkSUR9LAogICAgICAgICAgICBcJFBhcmFte1VzZXJJRH0sICAgXCRQYXJhbXtDYXRlZ29yeUlEfSwKICAgICAgICBdLAogICAgKTsKCiAgICAjIGxvZyBub3RpY2UKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgIFByaW9yaXR5ID0+ICdub3RpY2UnLAogICAgICAgIE1lc3NhZ2UgID0+ICJGQVFDYXRlZ29yeTogJyRQYXJhbXtOYW1lfScgIgogICAgICAgICAgICAuICJJRDogJyRQYXJhbXtDYXRlZ29yeUlEfScgdXBkYXRlZCBzdWNjZXNzZnVsbHkgKCRQYXJhbXtVc2VySUR9KSEiLAogICAgKTsKCiAgICAjIGRlbGV0ZSBhbGwgY2FjaGUsIGFzIEZBUUdldCgpIHdpbGwgYmUgYWxzbyBhZmZlY3RlZC4KICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKAogICAgICAgIFR5cGUgPT4gJ0ZBUScsCiAgICApOwoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgQWdlbnRDYXRlZ29yeVNlYXJjaCgpCgpnZXQgdGhlIGNhdGVnb3J5IHNlYXJjaCBhcyBhcnJheSByZWYKCiAgICBteSAkQ2F0ZWdvcnlJREFycmF5UmVmID0gJEZBUU9iamVjdC0+QWdlbnRDYXRlZ29yeVNlYXJjaCgKICAgICAgICBQYXJlbnRJRCAgICAgICAgID0+IDMsICAjIChvcHRpb25hbCwgZGVmYXVsdCAwKQogICAgICAgIEdldFN1YkNhdGVnb3JpZXMgPT4gMSwgICMgKG9wdGlvbmFsLCBkZWZhdWx0IDApCiAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAxLAogICAgKTsKClJldHVybnM6CgogICAgJENhdGVnb3J5SURBcnJheVJlZiA9IFsKICAgICAgICAnNCcsCiAgICAgICAgJzgnLAogICAgXTsKCj1jdXQKCnN1YiBBZ2VudENhdGVnb3J5U2VhcmNoIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgaWYgKCAhJFBhcmFte1VzZXJJRH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIFVzZXJJRCEnLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIHNldCBkZWZhdWx0IHBhcmVudCBpZAogICAgbXkgJFBhcmVudElEID0gJFBhcmFte1BhcmVudElEfSA/ICRQYXJhbXtQYXJlbnRJRH0gOiAwOwoKICAgIG15ICRDYXRlZ29yaWVzID0gJFNlbGYtPkdldFVzZXJDYXRlZ29yaWVzKAogICAgICAgIFR5cGUgICA9PiAncm8nLAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgcmV0dXJuIFtdIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkQ2F0ZWdvcmllcyk7CgogICAgbXkgJUNhdGVnb3J5ICAgID0gJXsgJENhdGVnb3JpZXMtPnskUGFyZW50SUR9IH07CiAgICBteSBAQ2F0ZWdvcnlJRHMgPSBzb3J0IHsgJENhdGVnb3J5eyRhfSBjbXAgJENhdGVnb3J5eyRifSB9ICgga2V5cyAlQ2F0ZWdvcnkgKTsKCiAgICByZXR1cm4gXEBDYXRlZ29yeUlEcyBpZiAhJFBhcmFte0dldFN1YkNhdGVnb3JpZXN9OwoKICAgICMgQ2hlY2sgaWYgc29tZSBJRHMgaGF2ZSBhIHN1YmNhdGVnb3J5IGFuZCBhZGQgdGhpcyBhbHNvIHRvIHRoZSBsaXN0LgogICAgZm9yIG15ICRDYXRlZ29yeUlEIChAQ2F0ZWdvcnlJRHMpIHsKCiAgICAgICAgIyBnZXQgYWxsIHN1YmNhdGVnb3J5IGlkcyBmb3IgdGhpcyBjYXRlZ29yeQogICAgICAgIG15ICRTdWJDYXRlZ29yeUlEcyA9ICRTZWxmLT5DYXRlZ29yeVN1YkNhdGVnb3J5SURMaXN0KAogICAgICAgICAgICBQYXJlbnRJRCA9PiAkQ2F0ZWdvcnlJRCwKICAgICAgICAgICAgTW9kZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBBZGQgdGhlIHN1YiBjYXRlZ29yaWVzIHRvIHRoZSBjYXRlZ29yeSBpZHMuCiAgICAgICAgcHVzaCBAQ2F0ZWdvcnlJRHMsIEB7JFN1YkNhdGVnb3J5SURzfTsKICAgIH0KCiAgICAjIFJlbW92ZSBhbnkgZHVwbGljYXRlIElEcyBmcm9tIHRoZSBsZXN0CiAgICBteSAlU2VlbjsKICAgIEBDYXRlZ29yeUlEcyA9IGdyZXAgeyAhJFNlZW57JF99KysgfSBAQ2F0ZWdvcnlJRHM7CgogICAgcmV0dXJuIFxAQ2F0ZWdvcnlJRHM7Cn0KCj1oZWFkMiBDdXN0b21lckNhdGVnb3J5U2VhcmNoKCkKCmdldCB0aGUgY2F0ZWdvcnkgc2VhcmNoIGFzIGhhc2gKCiAgICBteSAkQ2F0ZWdvcnlJREFycmF5UmVmID0gQHskRkFRT2JqZWN0LT5DdXN0b21lckNhdGVnb3J5U2VhcmNoKAogICAgICAgIEN1c3RvbWVyVXNlciAgPT4gJ3R0JywKICAgICAgICBQYXJlbnRJRCAgICAgID0+IDMsICAgIyAob3B0aW9uYWwsIGRlZmF1bHQgMCkKICAgICAgICBHZXRTdWJDYXRlZ29yaWVzID0+IDEsICAjIChvcHRpb25hbCwgZGVmYXVsdCAwKQogICAgICAgIE1vZGUgICAgICAgICAgPT4gJ0N1c3RvbWVyJywKICAgICAgICBVc2VySUQgICAgICAgID0+IDEsCiAgICApfTsKClJldHVybnM6CgogICAgJENhdGVnb3J5SURBcnJheVJlZiA9IFsKICAgICAgICAnNCcsCiAgICAgICAgJzgnLAogICAgXTsKCj1jdXQKCnN1YiBDdXN0b21lckNhdGVnb3J5U2VhcmNoIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoQ3VzdG9tZXJVc2VyIE1vZGUgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBzZXQgZGVmYXVsdCBwYXJlbnQgaWQKICAgIG15ICRQYXJlbnRJRCA9ICRQYXJhbXtQYXJlbnRJRH0gPyAkUGFyYW17UGFyZW50SUR9IDogMDsKCiAgICBteSAkQ2F0ZWdvcmllcyA9ICRTZWxmLT5HZXRDdXN0b21lckNhdGVnb3JpZXMoCiAgICAgICAgQ3VzdG9tZXJVc2VyID0+ICRQYXJhbXtDdXN0b21lclVzZXJ9LAogICAgICAgIFR5cGUgICAgICAgICA9PiAncm8nLAogICAgICAgIFVzZXJJRCAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgbXkgJUNhdGVnb3J5ICAgID0gJXsgJENhdGVnb3JpZXMtPnskUGFyZW50SUR9IH07CiAgICBteSBAQ2F0ZWdvcnlJRHMgPSBzb3J0IHsgJENhdGVnb3J5eyRhfSBjbXAgJENhdGVnb3J5eyRifSB9ICgga2V5cyAlQ2F0ZWdvcnkgKTsKCiAgICBteSBAQWxsb3dlZENhdGVnb3J5SURzOwogICAgbXkgJUFydGljbGVzOwoKICAgICMgY2hlY2sgY2FjaGUKICAgIG15ICRDYWNoZUtleSA9ICdDdXN0b21lckNhdGVnb3J5U2VhcmNoOjpBcnRpY2xlcyc7CiAgICBpZiAoICRTZWxmLT57Q2FjaGV9LT57JENhY2hlS2V5fSApIHsKICAgICAgICAlQXJ0aWNsZXMgPSAleyAkU2VsZi0+e0NhY2hlfS0+eyRDYWNoZUtleX0gfTsKICAgIH0KICAgIGVsc2UgewoKICAgICAgICAjIGJ1aWxkIHZhbGlkIGlkIHN0cmluZwogICAgICAgIG15ICRWYWxpZElEc1N0cmluZyA9IGpvaW4gJywgJywgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZhbGlkJyktPlZhbGlkSURzR2V0KCk7CgogICAgICAgIG15ICRTUUwgPSAiCiAgICAgICAgICAgIFNFTEVDVCBmYXFfaXRlbS5pZCwgZmFxX2l0ZW0uY2F0ZWdvcnlfaWQKICAgICAgICAgICAgRlJPTSBmYXFfaXRlbSwgZmFxX3N0YXRlX3R5cGUsIGZhcV9zdGF0ZQogICAgICAgICAgICBXSEVSRSBmYXFfc3RhdGUuaWQgPSBmYXFfaXRlbS5zdGF0ZV9pZAogICAgICAgICAgICAgICAgQU5EIGZhcV9zdGF0ZS50eXBlX2lkID0gZmFxX3N0YXRlX3R5cGUuaWQKICAgICAgICAgICAgICAgIEFORCBmYXFfc3RhdGVfdHlwZS5uYW1lICE9ICdpbnRlcm5hbCcKICAgICAgICAgICAgICAgIEFORCBmYXFfaXRlbS52YWxpZF9pZCBJTiAoJFZhbGlkSURzU3RyaW5nKQogICAgICAgICAgICAgICAgQU5EIGZhcV9pdGVtLmFwcHJvdmVkID0gMSI7CgogICAgICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICAgICByZXR1cm4gaWYgISREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICAgICAgU1FMID0+ICRTUUwsCiAgICAgICAgKTsKICAgICAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAgICAgJEFydGljbGVzeyAkUm93WzFdIH0rKzsKICAgICAgICB9CgogICAgICAgICMgY2FjaGUKICAgICAgICAkU2VsZi0+e0NhY2hlfS0+eyRDYWNoZUtleX0gPSBcJUFydGljbGVzOwogICAgfQoKICAgIHJldHVybiBcQENhdGVnb3J5SURzIGlmICEkUGFyYW17R2V0U3ViQ2F0ZWdvcmllc307CgogICAgZm9yIG15ICRDYXRlZ29yeUlEIChAQ2F0ZWdvcnlJRHMpIHsKCiAgICAgICAgIyBnZXQgYWxsIHN1YmNhdGVnb3J5IGlkcyBmb3IgdGhpcyBjYXRlZ29yeQogICAgICAgIG15ICRTdWJDYXRlZ29yeUlEcyA9ICRTZWxmLT5DYXRlZ29yeVN1YkNhdGVnb3J5SURMaXN0KAogICAgICAgICAgICBQYXJlbnRJRCAgICAgPT4gJENhdGVnb3J5SUQsCiAgICAgICAgICAgIE1vZGUgICAgICAgICA9PiAkUGFyYW17TW9kZX0sCiAgICAgICAgICAgIEN1c3RvbWVyVXNlciA9PiAkUGFyYW17Q3VzdG9tZXJVc2VyfSwKICAgICAgICAgICAgVXNlcklEICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgYWRkIHRoaXMgY2F0ZWdvcnkgaWQKICAgICAgICBteSBASURzID0gKCAkQ2F0ZWdvcnlJRCwgQHskU3ViQ2F0ZWdvcnlJRHN9ICk7CgogICAgICAgICMgY2hlY2sgaWYgY2F0ZWdvcnkgY29udGFpbnMgYXJ0aWNsZXMgd2l0aCBzdGF0ZSBleHRlcm5hbCBvciBwdWJsaWMKICAgICAgICBJRDoKICAgICAgICBmb3IgbXkgJElEIChASURzKSB7CiAgICAgICAgICAgIG5leHQgSUQgaWYgISRBcnRpY2xlc3skSUR9OwogICAgICAgICAgICBwdXNoIEBBbGxvd2VkQ2F0ZWdvcnlJRHMsICRJRDsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIFxAQWxsb3dlZENhdGVnb3J5SURzOwp9Cgo9aGVhZDIgUHVibGljQ2F0ZWdvcnlTZWFyY2goKQoKZ2V0IHRoZSBjYXRlZ29yeSBzZWFyY2ggYXMgaGFzaAoKICAgIG15ICRDYXRlZ29yeUlEQXJyYXlSZWYgPSAkRkFRT2JqZWN0LT5QdWJsaWNDYXRlZ29yeVNlYXJjaCgKICAgICAgICBQYXJlbnRJRCAgICAgID0+IDMsICAgIyAob3B0aW9uYWwsIGRlZmF1bHQgMCkKICAgICAgICBNb2RlICAgICAgICAgID0+ICdQdWJsaWMnLAogICAgICAgIFVzZXJJRCAgICAgICAgPT4gMSwKICAgICk7CgpSZXR1cm5zOgoKICAgICRDYXRlZ29yeUlEQXJyYXlSZWYgPSBbCiAgICAgICAgJzQnLAogICAgICAgICc4JywKICAgIF07Cgo9Y3V0CgpzdWIgUHVibGljQ2F0ZWdvcnlTZWFyY2ggewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhNb2RlIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIGlmICggIWRlZmluZWQgJFBhcmFte1BhcmVudElEfSApIHsKICAgICAgICAkUGFyYW17UGFyZW50SUR9ID0gMDsKICAgIH0KCiAgICBteSAkQ2F0ZWdvcnlMaXN0Q2F0ZWdvcmllcyA9ICRTZWxmLT5DYXRlZ29yeUxpc3QoCiAgICAgICAgVmFsaWQgID0+IDEsCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICByZXR1cm4gW10gaWYgISRDYXRlZ29yeUxpc3RDYXRlZ29yaWVzLT57ICRQYXJhbXtQYXJlbnRJRH0gfTsKCiAgICBteSAlQ2F0ZWdvcnkgICAgPSAleyAkQ2F0ZWdvcnlMaXN0Q2F0ZWdvcmllcy0+eyAkUGFyYW17UGFyZW50SUR9IH0gfTsKICAgIG15IEBDYXRlZ29yeUlEcyA9IHNvcnQgeyAkQ2F0ZWdvcnl7JGF9IGNtcCAkQ2F0ZWdvcnl7JGJ9IH0gKCBrZXlzICVDYXRlZ29yeSApOwogICAgbXkgQEFsbG93ZWRDYXRlZ29yeUlEczsKCiAgICAjIGJ1aWxkIHZhbGlkIGlkIHN0cmluZwogICAgbXkgJFZhbGlkSURzU3RyaW5nID0gam9pbiAnLCAnLCAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnKS0+VmFsaWRJRHNHZXQoKTsKCiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICBmb3IgbXkgJENhdGVnb3J5SUQgKEBDYXRlZ29yeUlEcykgewoKICAgICAgICAjIGdldCBhbGwgc3ViY2F0ZWdvcnkgaWRzIGZvciB0aGlzIGNhdGVnb3J5CiAgICAgICAgbXkgJFN1YkNhdGVnb3J5SURzID0gJFNlbGYtPkNhdGVnb3J5U3ViQ2F0ZWdvcnlJRExpc3QoCiAgICAgICAgICAgIFBhcmVudElEICAgICA9PiAkQ2F0ZWdvcnlJRCwKICAgICAgICAgICAgTW9kZSAgICAgICAgID0+ICRQYXJhbXtNb2RlfSwKICAgICAgICAgICAgQ3VzdG9tZXJVc2VyID0+ICRQYXJhbXtDdXN0b21lclVzZXJ9LAogICAgICAgICAgICBVc2VySUQgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBhZGQgdGhpcyBjYXRlZ29yeSBpZAogICAgICAgIG15IEBJRHMgPSAoICRDYXRlZ29yeUlELCBAeyRTdWJDYXRlZ29yeUlEc30gKTsKCiAgICAgICAgIyBjaGVjayBpZiBjYXRlZ29yeSBjb250YWlucyBhcnRpY2xlcyB3aXRoIHN0YXRlIHB1YmxpYwogICAgICAgIG15ICRGb3VuZEFydGljbGUgPSAwOwoKICAgICAgICBteSAkU1FMID0gIgogICAgICAgICAgICBTRUxFQ1QgZmFxX2l0ZW0uaWQKICAgICAgICAgICAgRlJPTSBmYXFfaXRlbSwgZmFxX3N0YXRlX3R5cGUsIGZhcV9zdGF0ZQogICAgICAgICAgICBXSEVSRSBmYXFfaXRlbS5jYXRlZ29yeV9pZCA9ID8KICAgICAgICAgICAgICAgIEFORCBmYXFfaXRlbS52YWxpZF9pZCBJTiAoJFZhbGlkSURzU3RyaW5nKQogICAgICAgICAgICAgICAgQU5EIGZhcV9zdGF0ZS5pZCA9IGZhcV9pdGVtLnN0YXRlX2lkCiAgICAgICAgICAgICAgICBBTkQgZmFxX3N0YXRlLnR5cGVfaWQgPSBmYXFfc3RhdGVfdHlwZS5pZAogICAgICAgICAgICAgICAgQU5EIGZhcV9zdGF0ZV90eXBlLm5hbWUgPSAncHVibGljJwogICAgICAgICAgICAgICAgQU5EIGZhcV9pdGVtLmFwcHJvdmVkID0gMSI7CgogICAgICAgIElEOgogICAgICAgIGZvciBteSAkSUQgKEBJRHMpIHsKCiAgICAgICAgICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgICAgICAgICAgU1FMICAgPT4gJFNRTCwKICAgICAgICAgICAgICAgIEJpbmQgID0+IFsgXCRJRCBdLAogICAgICAgICAgICAgICAgTGltaXQgPT4gMSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgd2hpbGUgKCBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgICAgICAgICAkRm91bmRBcnRpY2xlID0gJFJvd1swXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBsYXN0IElEIGlmICRGb3VuZEFydGljbGU7CiAgICAgICAgfQoKICAgICAgICAjIGFuIGFydGljbGUgd2FzIGZvdW5kCiAgICAgICAgaWYgKCRGb3VuZEFydGljbGUpIHsKICAgICAgICAgICAgcHVzaCBAQWxsb3dlZENhdGVnb3J5SURzLCAkQ2F0ZWdvcnlJRDsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIFxAQWxsb3dlZENhdGVnb3J5SURzOwoKfQoKPWhlYWQyIEdldFVzZXJDYXRlZ29yaWVzKCkKCmdldCB1c2VyIGNhdGVnb3J5LWdyb3VwcwoKICAgIG15ICRVc2VyQ2F0ZWdvcnlHcm91cEhhc2hSZWYgPSAkRkFRT2JqZWN0LT5HZXRVc2VyQ2F0ZWdvcmllcygKICAgICAgICBUeXBlICAgPT4gJ3J3JywKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CgpSZXR1cm5zOgoKICAgICRVc2VyQ2F0ZWdvcnlHcm91cEhhc2hSZWYgPSB7CiAgICAgICAgMSA9PiB7fSwKICAgICAgICAwID0+IHsKICAgICAgICAgICAgMSA9PiAnTWlzYycsCiAgICAgICAgICAgIDIgPT4gJ015IENhdGVnb3J5JywKICAgICAgICB9LAogICAgICAgIDIgPT4gewogICAgICAgICAgICAzID0+ICdTdWIgQ2F0ZWdvcnkgQScsCiAgICAgICAgICAgIDQgPT4gJ1N1YiBDYXRlZ29yeSBCJywKICAgICAgICB9LAogICAgICAgIDMgPT4ge30sCiAgICAgICAgNCA9PiB7fSwKICAgIH07Cgo9Y3V0CgpzdWIgR2V0VXNlckNhdGVnb3JpZXMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhUeXBlIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICRDYXRlZ29yaWVzID0gJFNlbGYtPkNhdGVnb3J5TGlzdCgKICAgICAgICBWYWxpZCAgPT4gMSwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIG15ICRDYXRlZ29yeUdyb3VwcyA9ICRTZWxmLT5DYXRlZ29yeUdyb3VwR2V0QWxsKAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgbXkgJVVzZXJHcm91cHMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKS0+R3JvdXBNZW1iZXJMaXN0KAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICBUeXBlICAgPT4gJFBhcmFte1R5cGV9LAogICAgICAgIFJlc3VsdCA9PiAnSEFTSCcsCiAgICApOwoKICAgIG15ICRVc2VyQ2F0ZWdvcmllcyA9ICRTZWxmLT5fVXNlckNhdGVnb3JpZXMoCiAgICAgICAgQ2F0ZWdvcmllcyAgICAgPT4gJENhdGVnb3JpZXMsCiAgICAgICAgQ2F0ZWdvcnlHcm91cHMgPT4gJENhdGVnb3J5R3JvdXBzLAogICAgICAgIFVzZXJHcm91cHMgICAgID0+IFwlVXNlckdyb3VwcywKICAgICAgICBVc2VySUQgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgcmV0dXJuICRVc2VyQ2F0ZWdvcmllczsKfQoKPWhlYWQyIEdldFVzZXJDYXRlZ29yaWVzTG9uZ05hbWVzKCkKCmdldCB1c2VyIGNhdGVnb3J5LWdyb3VwcyAoc2hvdyBjYXRlZ29yeSBsb25nIG5hbWVzKQoKICAgIG15ICRVc2VyQ2F0ZWdvcnlHcm91cEhhc2hSZWYgPSAkRkFRT2JqZWN0LT5HZXRVc2VyQ2F0ZWdvcmllc0xvbmdOYW1lcygKICAgICAgICBUeXBlICAgPT4gJ3J3JywKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CgpSZXR1cm5zOgoKICAgICRVc2VyQ2F0ZWdvcnlHcm91cEhhc2hSZWYgPSB7CiAgICAgICAgMSA9PiAnTWlzYycsCiAgICAgICAgMiA9PiAnTXkgQ2F0ZWdvcnknLAogICAgICAgIDMgPT4gJ015IENhdGVnb3J5OjpTdWIgQ2F0ZWdvcnkgQScsCiAgICAgICAgNCA9PiAnTXkgQ2F0ZWdvcnk6OlN1YiBDYXRlZ29yeSBBJywKICAgIH07Cgo9Y3V0CgpzdWIgR2V0VXNlckNhdGVnb3JpZXNMb25nTmFtZXMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhUeXBlIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IGNhdGVnb3JpZXMgd2hlcmUgdXNlciBoYXMgcmlnaHRzCiAgICBteSAkVXNlckNhdGVnb3JpZXMgPSAkU2VsZi0+R2V0VXNlckNhdGVnb3JpZXMoCiAgICAgICAgVHlwZSAgID0+ICRQYXJhbXtUeXBlfSwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgZ2V0IGFsbCBjYXRlZ29yaWVzIHdpdGggdGhlaXIgbG9uZyBuYW1lcwogICAgbXkgJENhdGVnb3J5VHJlZSA9ICRTZWxmLT5DYXRlZ29yeVRyZWVMaXN0KAogICAgICAgIFZhbGlkICA9PiAxLAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyB0byBzdG9yZSB0aGUgdXNlciBjYXRlZ29yaWVzIHdpdGggdGhlaXIgbG9uZyBuYW1lcwogICAgbXkgJVVzZXJDYXRlZ29yaWVzTG9uZ05hbWVzOwoKICAgICMgZ2V0IHRoZSBsb25nIG5hbWVzIG9mIHRoZSBjYXRlZ29yaWVzIHdoZXJlIHVzZXIgaGFzIHJpZ2h0cwogICAgUEFSRU5USUQ6CiAgICBmb3IgbXkgJFBhcmVudElEICggc29ydCBrZXlzICV7JFVzZXJDYXRlZ29yaWVzfSApIHsKCiAgICAgICAgbmV4dCBQQVJFTlRJRCBpZiAhJFVzZXJDYXRlZ29yaWVzLT57JFBhcmVudElEfTsKICAgICAgICBuZXh0IFBBUkVOVElEIGlmIHJlZiAkVXNlckNhdGVnb3JpZXMtPnskUGFyZW50SUR9IG5lICdIQVNIJzsKICAgICAgICBuZXh0IFBBUkVOVElEIGlmICEleyAkVXNlckNhdGVnb3JpZXMtPnskUGFyZW50SUR9IH07CgogICAgICAgIGZvciBteSAkQ2F0ZWdvcnlJRCAoIHNvcnQga2V5cyAleyAkVXNlckNhdGVnb3JpZXMtPnskUGFyZW50SUR9IH0gKSB7CiAgICAgICAgICAgICRVc2VyQ2F0ZWdvcmllc0xvbmdOYW1lc3skQ2F0ZWdvcnlJRH0gPSAkQ2F0ZWdvcnlUcmVlLT57JENhdGVnb3J5SUR9OwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gXCVVc2VyQ2F0ZWdvcmllc0xvbmdOYW1lczsKfQoKPWhlYWQyIEdldEN1c3RvbWVyQ2F0ZWdvcmllcygpCgpnZXQgY3VzdG9tZXIgdXNlciBjYXRlZ29yaWVzCgogICAgbXkgJEN1c3RvbWVyVXNlckNhdGVnb3J5SGFzaFJlZiA9ICRGQVFPYmplY3QtPkdldEN1c3RvbWVyQ2F0ZWdvcmllcygKICAgICAgICBDdXN0b21lclVzZXIgPT4gJ2hhbnMnLAogICAgICAgIFR5cGUgICAgICAgICA9PiAncncnLAogICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgKTsKClJldHVybnM6CgogICAgJEN1c3RvbWVyVXNlckNhdGVnb3J5SGFzaFJlZiA9IHsKICAgICAgICAxID0+IHt9LAogICAgICAgIDAgPT4gewogICAgICAgICAgICAxID0+ICdNaXNjJywKICAgICAgICAgICAgMiA9PiAnTXkgQ2F0ZWdvcnknLAogICAgICAgIH0sCiAgICAgICAgMiA9PiB7CiAgICAgICAgICAgIDMgPT4gJ1N1YiBDYXRlZ29yeSBBJywKICAgICAgICAgICAgNCA9PiAnU3ViIENhdGVnb3J5IEInLAogICAgICAgIH0sCiAgICAgICAgMyA9PiB7fSwKICAgICAgICA0ID0+IHt9LAogICAgfTsKCj1jdXQKCnN1YiBHZXRDdXN0b21lckNhdGVnb3JpZXMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhDdXN0b21lclVzZXIgVHlwZSBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIGNhY2hlCiAgICBteSAkQ2FjaGVLZXkgPSAnR2V0Q3VzdG9tZXJDYXRlZ29yaWVzOjpDdXN0b21lclVzZXI6OicgLiAkUGFyYW17Q3VzdG9tZXJVc2VyfTsKICAgIGlmICggZGVmaW5lZCAkU2VsZi0+e0NhY2hlfS0+eyRDYWNoZUtleX0gKSB7CiAgICAgICAgcmV0dXJuICRTZWxmLT57Q2FjaGV9LT57JENhY2hlS2V5fTsKICAgIH0KCiAgICAjIGdldCBhbGwgdmFsaWQgY2F0ZWdvcmllcwogICAgbXkgJENhdGVnb3JpZXMgPSAkU2VsZi0+Q2F0ZWdvcnlMaXN0KAogICAgICAgIFZhbGlkICA9PiAxLAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgbXkgJENhdGVnb3J5R3JvdXBzID0gJFNlbGYtPkNhdGVnb3J5R3JvdXBHZXRBbGwoCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICBteSAlVXNlckdyb3VwcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDdXN0b21lckdyb3VwJyktPkdyb3VwTWVtYmVyTGlzdCgKICAgICAgICBVc2VySUQgPT4gJFBhcmFte0N1c3RvbWVyVXNlcn0sCiAgICAgICAgVHlwZSAgID0+ICdybycsCiAgICAgICAgUmVzdWx0ID0+ICdIQVNIJywKICAgICk7CgogICAgbXkgJEN1c3RvbWVyQ2F0ZWdvcmllcyA9ICRTZWxmLT5fVXNlckNhdGVnb3JpZXMoCiAgICAgICAgQ2F0ZWdvcmllcyAgICAgPT4gJENhdGVnb3JpZXMsCiAgICAgICAgQ2F0ZWdvcnlHcm91cHMgPT4gJENhdGVnb3J5R3JvdXBzLAogICAgICAgIFVzZXJHcm91cHMgICAgID0+IFwlVXNlckdyb3VwcywKICAgICAgICBVc2VySUQgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBjYWNoZQogICAgJFNlbGYtPntDYWNoZX0tPnskQ2FjaGVLZXl9ID0gJEN1c3RvbWVyQ2F0ZWdvcmllczsKCiAgICByZXR1cm4gJEN1c3RvbWVyQ2F0ZWdvcmllczsKfQoKPWhlYWQyIEdldEN1c3RvbWVyQ2F0ZWdvcmllc0xvbmdOYW1lcygpCgpnZXQgY3VzdG9tZXIgY2F0ZWdvcnktZ3JvdXBzIChzaG93IGNhdGVnb3J5IGxvbmcgbmFtZXMpCgogICAgbXkgJEN1c3RvbWVyQ2F0ZWdvcnlHcm91cEhhc2hSZWYgPSAkRkFRT2JqZWN0LT5HZXRDdXN0b21lckNhdGVnb3JpZXNMb25nTmFtZXMoCiAgICAgICAgQ3VzdG9tZXJVc2VyID0+ICdoYW5zJywKICAgICAgICBUeXBlICAgPT4gJ3J3JywKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CgpSZXR1cm5zOgoKICAgICRDdXN0b21lckNhdGVnb3J5R3JvdXBIYXNoUmVmID0gewogICAgICAgIDEgPT4gJ01pc2MnLAogICAgICAgIDIgPT4gJ015IENhdGVnb3J5JywKICAgICAgICAzID0+ICdNeSBDYXRlZ29yeTo6U3ViIENhdGVnb3J5IEEnLAogICAgICAgIDQgPT4gJ015IENhdGVnb3J5OjpTdWIgQ2F0ZWdvcnkgQScsCiAgICB9OwoKPWN1dAoKc3ViIEdldEN1c3RvbWVyQ2F0ZWdvcmllc0xvbmdOYW1lcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KEN1c3RvbWVyVXNlciBUeXBlIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IGNhdGVnb3JpZXMgd2hlcmUgdXNlciBoYXMgcmlnaHRzCiAgICBteSAkQ3VzdG9tZXJDYXRlZ29yaWVzID0gJFNlbGYtPkdldEN1c3RvbWVyQ2F0ZWdvcmllcygKICAgICAgICBDdXN0b21lclVzZXIgPT4gJFBhcmFte0N1c3RvbWVyVXNlcn0sCiAgICAgICAgVHlwZSAgICAgICAgID0+ICRQYXJhbXtUeXBlfSwKICAgICAgICBVc2VySUQgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgZXh0cmFjdCBjYXRlZ29yeSBpZHMKICAgIG15ICVBbGxDYXRlZ29yeUlEczsKICAgIGZvciBteSAkUGFyZW50SUQgKCBzb3J0IGtleXMgJXskQ3VzdG9tZXJDYXRlZ29yaWVzfSApIHsKICAgICAgICBmb3IgbXkgJENhdGVnb3J5SUQgKCBzb3J0IGtleXMgJXsgJEN1c3RvbWVyQ2F0ZWdvcmllcy0+eyRQYXJlbnRJRH0gfSApIHsKICAgICAgICAgICAgJEFsbENhdGVnb3J5SURzeyRDYXRlZ29yeUlEfSA9IDE7CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IGFsbCBjdXN0b21lciBjYXRlZ29yeSBpZHMKICAgIG15IEBDdXN0b21lckNhdGVnb3J5SURzOwogICAgZm9yIG15ICRDYXRlZ29yeUlEICggMCwga2V5cyAlQWxsQ2F0ZWdvcnlJRHMgKSB7CiAgICAgICAgcHVzaCBAQ3VzdG9tZXJDYXRlZ29yeUlEcywgQHsKICAgICAgICAgICAgJFNlbGYtPkN1c3RvbWVyQ2F0ZWdvcnlTZWFyY2goCiAgICAgICAgICAgICAgICBQYXJlbnRJRCAgICAgPT4gJENhdGVnb3J5SUQsCiAgICAgICAgICAgICAgICBDdXN0b21lclVzZXIgPT4gJFBhcmFte0N1c3RvbWVyVXNlcn0sCiAgICAgICAgICAgICAgICBNb2RlICAgICAgICAgPT4gJ0N1c3RvbWVyJywKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKQogICAgICAgIH07CiAgICB9CgogICAgIyBidWlsZCBjdXN0b21lciBjYXRlZ29yeSBoYXNoCiAgICAkQ3VzdG9tZXJDYXRlZ29yaWVzID0ge307CiAgICBmb3IgbXkgJENhdGVnb3J5SUQgKEBDdXN0b21lckNhdGVnb3J5SURzKSB7CiAgICAgICAgbXkgJUNhdGVnb3J5ID0gJFNlbGYtPkNhdGVnb3J5R2V0KAogICAgICAgICAgICBDYXRlZ29yeUlEID0+ICRDYXRlZ29yeUlELAogICAgICAgICAgICBVc2VySUQgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICAgICAgJEN1c3RvbWVyQ2F0ZWdvcmllcy0+eyAkQ2F0ZWdvcnl7UGFyZW50SUR9IH0tPnsgJENhdGVnb3J5e0NhdGVnb3J5SUR9IH0gPSAkQ2F0ZWdvcnl7TmFtZX07CiAgICB9CgogICAgIyBnZXQgYWxsIGNhdGVnb3JpZXMgd2l0aCB0aGVpciBsb25nIG5hbWVzCiAgICBteSAkQ2F0ZWdvcnlUcmVlID0gJFNlbGYtPkNhdGVnb3J5VHJlZUxpc3QoCiAgICAgICAgVmFsaWQgID0+IDEsCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICAjIHRvIHN0b3JlIHRoZSB1c2VyIGNhdGVnb3JpZXMgd2l0aCB0aGVpciBsb25nIG5hbWVzCiAgICBteSAlQ3VzdG9tZXJDYXRlZ29yaWVzTG9uZ05hbWVzOwoKICAgICMgZ2V0IHRoZSBsb25nIG5hbWVzIG9mIHRoZSBjYXRlZ29yaWVzIHdoZXJlIHVzZXIgaGFzIHJpZ2h0cwogICAgUEFSRU5USUQ6CiAgICBmb3IgbXkgJFBhcmVudElEICggc29ydCBrZXlzICV7JEN1c3RvbWVyQ2F0ZWdvcmllc30gKSB7CgogICAgICAgIG5leHQgUEFSRU5USUQgaWYgISRDdXN0b21lckNhdGVnb3JpZXMtPnskUGFyZW50SUR9OwogICAgICAgIG5leHQgUEFSRU5USUQgaWYgcmVmICRDdXN0b21lckNhdGVnb3JpZXMtPnskUGFyZW50SUR9IG5lICdIQVNIJzsKICAgICAgICBuZXh0IFBBUkVOVElEIGlmICEleyAkQ3VzdG9tZXJDYXRlZ29yaWVzLT57JFBhcmVudElEfSB9OwoKICAgICAgICBmb3IgbXkgJENhdGVnb3J5SUQgKCBzb3J0IGtleXMgJXsgJEN1c3RvbWVyQ2F0ZWdvcmllcy0+eyRQYXJlbnRJRH0gfSApIHsKICAgICAgICAgICAgJEN1c3RvbWVyQ2F0ZWdvcmllc0xvbmdOYW1lc3skQ2F0ZWdvcnlJRH0gPSAkQ2F0ZWdvcnlUcmVlLT57JENhdGVnb3J5SUR9OwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gXCVDdXN0b21lckNhdGVnb3JpZXNMb25nTmFtZXM7Cn0KCj1oZWFkMiBHZXRQdWJsaWNDYXRlZ29yaWVzTG9uZ05hbWVzKCkKCmdldCBwdWJsaWMgY2F0ZWdvcnktZ3JvdXBzIChzaG93IGNhdGVnb3J5IGxvbmcgbmFtZXMpCgogICAgbXkgJFB1YmxpY0NhdGVnb3J5R3JvdXBIYXNoUmVmID0gJEZBUU9iamVjdC0+R2V0UHVibGljQ2F0ZWdvcmllc0xvbmdOYW1lcygKICAgICAgICBUeXBlICAgPT4gJ3J3JywKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CgpSZXR1cm5zOgoKICAgICRQdWJsaWNDYXRlZ29yeUdyb3VwSGFzaFJlZiA9IHsKICAgICAgICAxID0+ICdNaXNjJywKICAgICAgICAyID0+ICdNeSBDYXRlZ29yeScsCiAgICAgICAgMyA9PiAnTXkgQ2F0ZWdvcnk6OlN1YiBDYXRlZ29yeSBBJywKICAgICAgICA0ID0+ICdNeSBDYXRlZ29yeTo6U3ViIENhdGVnb3J5IEEnLAogICAgfTsKCj1jdXQKCnN1YiBHZXRQdWJsaWNDYXRlZ29yaWVzTG9uZ05hbWVzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoVHlwZSBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCBhbGwgY2F0ZWdvcmllcwogICAgbXkgJFB1YmxpY0NhdGVnb3JpZXMgPSAkU2VsZi0+Q2F0ZWdvcnlMaXN0KCBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0gKTsKCiAgICAjIGV4dHJhY3QgY2F0ZWdvcnkgaWRzCiAgICBteSAlQWxsQ2F0ZWdvcnlJRHM7CiAgICBmb3IgbXkgJFBhcmVudElEICggc29ydCBrZXlzICV7JFB1YmxpY0NhdGVnb3JpZXN9ICkgewogICAgICAgIGZvciBteSAkQ2F0ZWdvcnlJRCAoIHNvcnQga2V5cyAleyAkUHVibGljQ2F0ZWdvcmllcy0+eyRQYXJlbnRJRH0gfSApIHsKICAgICAgICAgICAgJEFsbENhdGVnb3J5SURzeyRDYXRlZ29yeUlEfSA9IDE7CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IGFsbCBwdWJsaWMgY2F0ZWdvcnkgaWRzCiAgICBteSBAUHVibGljQ2F0ZWdvcnlJRHM7CiAgICBmb3IgbXkgJENhdGVnb3J5SUQgKCAwLCBrZXlzICVBbGxDYXRlZ29yeUlEcyApIHsKICAgICAgICBwdXNoIEBQdWJsaWNDYXRlZ29yeUlEcywgQHsKICAgICAgICAgICAgJFNlbGYtPlB1YmxpY0NhdGVnb3J5U2VhcmNoKAogICAgICAgICAgICAgICAgUGFyZW50SUQgPT4gJENhdGVnb3J5SUQsCiAgICAgICAgICAgICAgICBNb2RlICAgICA9PiAnUHVibGljJywKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApCiAgICAgICAgfTsKICAgIH0KCiAgICAjIGJ1aWxkIHB1YmxpYyBjYXRlZ29yeSBoYXNoCiAgICAkUHVibGljQ2F0ZWdvcmllcyA9IHt9OwogICAgZm9yIG15ICRDYXRlZ29yeUlEIChAUHVibGljQ2F0ZWdvcnlJRHMpIHsKICAgICAgICBteSAlQ2F0ZWdvcnkgPSAkU2VsZi0+Q2F0ZWdvcnlHZXQoCiAgICAgICAgICAgIENhdGVnb3J5SUQgPT4gJENhdGVnb3J5SUQsCiAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgICAgICAkUHVibGljQ2F0ZWdvcmllcy0+eyAkQ2F0ZWdvcnl7UGFyZW50SUR9IH0tPnsgJENhdGVnb3J5e0NhdGVnb3J5SUR9IH0gPSAkQ2F0ZWdvcnl7TmFtZX07CiAgICB9CgogICAgIyBnZXQgYWxsIGNhdGVnb3JpZXMgd2l0aCB0aGVpciBsb25nIG5hbWVzCiAgICBteSAkQ2F0ZWdvcnlUcmVlID0gJFNlbGYtPkNhdGVnb3J5VHJlZUxpc3QoCiAgICAgICAgVmFsaWQgID0+IDEsCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICAjIHRvIHN0b3JlIHRoZSB1c2VyIGNhdGVnb3JpZXMgd2l0aCB0aGVpciBsb25nIG5hbWVzCiAgICBteSAlUHVibGljQ2F0ZWdvcmllc0xvbmdOYW1lczsKCiAgICAjIGdldCB0aGUgbG9uZyBuYW1lcyBvZiB0aGUgY2F0ZWdvcmllcyB3aGVyZSB1c2VyIGhhcyByaWdodHMKICAgIFBBUkVOVElEOgogICAgZm9yIG15ICRQYXJlbnRJRCAoIHNvcnQga2V5cyAleyRQdWJsaWNDYXRlZ29yaWVzfSApIHsKCiAgICAgICAgbmV4dCBQQVJFTlRJRCBpZiAhJFB1YmxpY0NhdGVnb3JpZXMtPnskUGFyZW50SUR9OwogICAgICAgIG5leHQgUEFSRU5USUQgaWYgcmVmICRQdWJsaWNDYXRlZ29yaWVzLT57JFBhcmVudElEfSBuZSAnSEFTSCc7CiAgICAgICAgbmV4dCBQQVJFTlRJRCBpZiAhJXsgJFB1YmxpY0NhdGVnb3JpZXMtPnskUGFyZW50SUR9IH07CgogICAgICAgIGZvciBteSAkQ2F0ZWdvcnlJRCAoIHNvcnQga2V5cyAleyAkUHVibGljQ2F0ZWdvcmllcy0+eyRQYXJlbnRJRH0gfSApIHsKICAgICAgICAgICAgJFB1YmxpY0NhdGVnb3JpZXNMb25nTmFtZXN7JENhdGVnb3J5SUR9ID0gJENhdGVnb3J5VHJlZS0+eyRDYXRlZ29yeUlEfTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIFwlUHVibGljQ2F0ZWdvcmllc0xvbmdOYW1lczsKfQoKPWhlYWQyIENoZWNrQ2F0ZWdvcnlVc2VyUGVybWlzc2lvbigpCgpnZXQgdXNlciBwZXJtaXNzaW9uIGZvciBhIGNhdGVnb3J5CgogICAgbXkgJFBlcm1pc3Npb25TdHJpbmcgPSAkRkFRT2JqZWN0LT5DaGVja0NhdGVnb3J5VXNlclBlcm1pc3Npb24oCiAgICAgICAgQ2F0ZWdvcnlJRCA9PiAnMTIzJywKICAgICAgICBUeXBlICAgICAgID0+ICdydycsICAgICAjIChvcHRpb25hbCkgcncgb3Igcm8sIGRlZmF1bHQgcm8KICAgICAgICBVc2VySUQgICAgID0+IDEsCiAgICApOwoKUmV0dXJuczoKCiAgICAkUGVybWlzc2lvblN0cmluZyA9ICdydyc7ICAgICAgICAgICAgICAgIyBvciAncm8nIG9yICcnCgo9Y3V0CgpzdWIgQ2hlY2tDYXRlZ29yeVVzZXJQZXJtaXNzaW9uIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoQ2F0ZWdvcnlJRCBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBpZiAoICEkUGFyYW17VHlwZX0gKSB7CiAgICAgICAgJFBhcmFte1R5cGV9ID0gJ3JvJzsKICAgIH0KCiAgICAkUGFyYW17VHlwZX0gPSBsYyAkUGFyYW17VHlwZX07CgogICAgaWYgKCAkUGFyYW17VHlwZX0gbmUgJ3J3JyAmJiAkUGFyYW17VHlwZX0gbmUgJ3JvJyApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlR5cGUgaXMgaW52YWxpZCEiLAogICAgICAgICk7CiAgICB9CgogICAgbXkgJFVzZXJDYXRlZ29yaWVzID0gJFNlbGYtPkdldFVzZXJDYXRlZ29yaWVzKAogICAgICAgIFR5cGUgICA9PiAkUGFyYW17VHlwZX0sCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICBmb3IgbXkgJFBhcmVudElEICggc29ydCBrZXlzICV7JFVzZXJDYXRlZ29yaWVzfSApIHsKICAgICAgICBteSAkQ2F0ZWdvcmllcyA9ICRVc2VyQ2F0ZWdvcmllcy0+eyRQYXJlbnRJRH07CiAgICAgICAgZm9yIG15ICRDYXRlZ29yeUlEICggc29ydCBrZXlzICV7JENhdGVnb3JpZXN9ICkgewogICAgICAgICAgICBpZiAoICRDYXRlZ29yeUlEID09ICRQYXJhbXtDYXRlZ29yeUlEfSApIHsKCiAgICAgICAgICAgICAgICByZXR1cm4gJFBhcmFte1R5cGV9OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAnJzsKfQoKPWhlYWQyIENoZWNrQ2F0ZWdvcnlDdXN0b21lclBlcm1pc3Npb24oKQoKZ2V0IGN1c3RvbWVyIHVzZXIgcGVybWlzc2lvbiBmb3IgYSBjYXRlZ29yeQoKICAgIG15ICRQZXJtaXNzaW9uU3RyaW5nICRGQVFPYmplY3QtPkNoZWNrQ2F0ZWdvcnlDdXN0b21lclBlcm1pc3Npb24oCiAgICAgICAgQ3VzdG9tZXJVc2VyID0+ICdtbScsCiAgICAgICAgQ2F0ZWdvcnlJRCAgID0+ICcxMjMnLAogICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgKTsKClJldHVybnM6CgogICAgJFBlcm1pc3Npb25TdHJpbmcgPSAncncnOyAgICAgICAgICAgICAgICMgb3IgJ3JvJyBvciAnJwoKPWN1dAoKc3ViIENoZWNrQ2F0ZWdvcnlDdXN0b21lclBlcm1pc3Npb24gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhDdXN0b21lclVzZXIgQ2F0ZWdvcnlJRCBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBmb3IgbXkgJFBlcm1pc3Npb24gKHF3KHJ3IHJvKSkgewogICAgICAgIG15ICRDdXN0b21lckNhdGVnb3JpZXMgPSAkU2VsZi0+R2V0Q3VzdG9tZXJDYXRlZ29yaWVzKAogICAgICAgICAgICBDdXN0b21lclVzZXIgPT4gJFBhcmFte0N1c3RvbWVyVXNlcn0sCiAgICAgICAgICAgIFR5cGUgICAgICAgICA9PiAncm8nLAogICAgICAgICAgICBVc2VySUQgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgICAgICBmb3IgbXkgJFBhcmVudElEICggc29ydCBrZXlzICV7JEN1c3RvbWVyQ2F0ZWdvcmllc30gKSB7CiAgICAgICAgICAgIG15ICRDYXRlZ29yaWVzID0gJEN1c3RvbWVyQ2F0ZWdvcmllcy0+eyRQYXJlbnRJRH07CiAgICAgICAgICAgIGZvciBteSAkQ2F0ZWdvcnlJRCAoIHNvcnQga2V5cyAleyRDYXRlZ29yaWVzfSApIHsKICAgICAgICAgICAgICAgIGlmICggJENhdGVnb3J5SUQgPT0gJFBhcmFte0NhdGVnb3J5SUR9ICkgewoKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJFBlcm1pc3Npb247CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuICcnOwp9Cgo9aGVhZDIgU2V0Q2F0ZWdvcnlHcm91cCgpCgpzZXQgZ3JvdXBzIHRvIGEgY2F0ZWdvcnkKCiAgICBteSAkU3VjY2VzcyA9ICRGQVFPYmplY3QtPlNldENhdGVnb3J5R3JvdXAoCiAgICAgICAgQ2F0ZWdvcnlJRCA9PiAzLAogICAgICAgIEdyb3VwSURzICAgPT4gWyAyLDQsMSw1LDc3IF0sCiAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgKTsKClJldHVybnM6CgogICAgJFN1Y2Nlc3MgPSAxOyAgICAgICAgICAgICAgICMgb3IgdW5kZWYgaWYgZ3JvdXBzIGNvdWxkIG5vdCBiZSBzZXQgdG8gYSBjYXRlZ29yeQoKPWN1dAoKc3ViIFNldENhdGVnb3J5R3JvdXAgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhDYXRlZ29yeUlEIEdyb3VwSURzIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgZGVsZXRlIG9sZCBncm91cHMKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5EbygKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBERUxFVEUgRlJPTSBmYXFfY2F0ZWdvcnlfZ3JvdXAKICAgICAgICAgICAgV0hFUkUgY2F0ZWdvcnlfaWQgPSA/JywKICAgICAgICBCaW5kID0+IFsgXCRQYXJhbXtDYXRlZ29yeUlEfSBdLAogICAgKTsKCiAgICAjIGluc2VydCBncm91cHMKICAgICRQYXJhbXtDYXRlZ29yeUlEfSA9ICREQk9iamVjdC0+UXVvdGUoICRQYXJhbXtDYXRlZ29yeUlEfSwgJ0ludGVnZXInICk7CiAgICBmb3IgbXkgJEdyb3VwSUQgKCBAeyAkUGFyYW17R3JvdXBJRHN9IH0gKSB7CgogICAgICAgICMgZGIgcXVvdGUKICAgICAgICAkR3JvdXBJRCA9ICREQk9iamVjdC0+UXVvdGUoICRHcm91cElELCAnSW50ZWdlcicgKTsKCiAgICAgICAgbXkgJFNRTCA9ICIKICAgICAgICAgICAgSU5TRVJUIElOVE8gZmFxX2NhdGVnb3J5X2dyb3VwIChjYXRlZ29yeV9pZCwgZ3JvdXBfaWQsIGNoYW5nZWQsIGNoYW5nZWRfYnksIGNyZWF0ZWQsCiAgICAgICAgICAgICAgICBjcmVhdGVkX2J5KQogICAgICAgICAgICBWQUxVRVMgKCRQYXJhbXtDYXRlZ29yeUlEfSwgJEdyb3VwSUQsIGN1cnJlbnRfdGltZXN0YW1wLCAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgIGN1cnJlbnRfdGltZXN0YW1wLCAkUGFyYW17VXNlcklEfSkiOwoKICAgICAgICAjIHdyaXRlIGF0dGFjaG1lbnQgdG8gZGIKICAgICAgICByZXR1cm4gaWYgISREQk9iamVjdC0+RG8oIFNRTCA9PiAkU1FMICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMSBQUklWQVRFIEZVTkNUSU9OUwoKPWhlYWQyIF9Vc2VyQ2F0ZWdvcmllcygpCgpyZWR1Y2VzIHRoZSBjYXRlZ29yaWVzICggZnJvbSBDYXRlZ29yeUxpc3QoKSApIHRvIG9ubHkgdGhlIG9uZXMgd2hlcmUgdGhlIHVzZXIgaGFzIHByaXZpbGVnZXMuCgogICAgbXkgJFVzZXJDYXRlZ29yaWVzID0gJEZBUU9iamVjdC0+X1VzZXJDYXRlZ29yaWVzKAogICAgICAgIENhdGVnb3JpZXMgICAgID0+ICRDYXRlZ29yeUhhc2hSZWYsICAgICAgICAgIyBhcyByZXR1cm5lZCBmb3JtIENhdGVnb3J5TGlzdCgpCiAgICAgICAgQ2F0ZWdvcnlHcm91cHMgPT4gJENhdGVnb3J5R3JvdXBIYXNoUmVmLCAgICAgIyBhcyByZXR1cm5lZCBmcm9tIENhdGVnb3J5R3JvdXBHZXRBbGwKICAgICAgICBVc2VyR3JvdXBzICAgICA9PiAkVXNlckdyb3Vwc0hhc2hSZWYsCiAgICAgICAgVXNlcklEICAgICAgICAgPT4gMTIzLAogICAgKTsKClJldHVybnM6CgogICAgJFVzZXJDYXRlZ29pZXMgPSB7CiAgICAgICAgMCA9PiB7CiAgICAgICAgICAgIDEgPT4gJ01pc2MnLAogICAgICAgICAgICAyID0+ICdNeSBDYXRlZ29yeScsCiAgICAgICAgfSwKICAgICAgICAyID0+IHsKICAgICAgICAgICAgMyA9PiAnU3ViIENhdGVnb3J5IEEnLAogICAgICAgIH0sCiAgICB9OwoKPWN1dAoKc3ViIF9Vc2VyQ2F0ZWdvcmllcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KENhdGVnb3JpZXMgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJVVzZXJDYXRlZ29yaWVzOwoKICAgIFBBUkVOVElEOgogICAgZm9yIG15ICRQYXJlbnRJRCAoIHNvcnQgeyAkYSA8PT4gJGIgfSBrZXlzICV7ICRQYXJhbXtDYXRlZ29yaWVzfSB9ICkgewoKICAgICAgICBteSAlU3ViQ2F0ZWdvcmllczsKCiAgICAgICAgQ0FURUdPUllJRDoKICAgICAgICBmb3IgbXkgJENhdGVnb3J5SUQgKCBzb3J0IGtleXMgJXsgJFBhcmFte0NhdGVnb3JpZXN9LT57JFBhcmVudElEfSB9ICkgewoKICAgICAgICAgICAgIyBjaGVjayBjYXRlZ29yeSBncm91cHMKICAgICAgICAgICAgbmV4dCBDQVRFR09SWUlEIGlmICFkZWZpbmVkICRQYXJhbXtDYXRlZ29yeUdyb3Vwc30tPnskQ2F0ZWdvcnlJRH07CgogICAgICAgICAgICAjIGNoZWNrIHVzZXIgZ3JvdXBzCiAgICAgICAgICAgIEdST1VQSUQ6CiAgICAgICAgICAgIGZvciBteSAkR3JvdXBJRCAoIHNvcnQga2V5cyAleyAkUGFyYW17Q2F0ZWdvcnlHcm91cHN9LT57JENhdGVnb3J5SUR9IH0gKSB7CgogICAgICAgICAgICAgICAgbmV4dCBHUk9VUElEIGlmICFkZWZpbmVkICRQYXJhbXtVc2VyR3JvdXBzfS0+eyRHcm91cElEfTsKCiAgICAgICAgICAgICAgICAjIGFkZCBjYXRlZ29yeQogICAgICAgICAgICAgICAgJFN1YkNhdGVnb3JpZXN7JENhdGVnb3J5SUR9ID0gJFBhcmFte0NhdGVnb3JpZXN9LT57JFBhcmVudElEfS0+eyRDYXRlZ29yeUlEfTsKCiAgICAgICAgICAgICAgICAjIGFkZCBlbXB0eSBoYXNoIGlmIGNhdGVnb3J5IGhhcyBubyBzdWJjYXRlZ29yaWVzCiAgICAgICAgICAgICAgICBpZiAoICEkVXNlckNhdGVnb3JpZXN7JENhdGVnb3J5SUR9ICkgewogICAgICAgICAgICAgICAgICAgICRVc2VyQ2F0ZWdvcmllc3skQ2F0ZWdvcnlJRH0gPSB7fTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBsYXN0IEdST1VQSUQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICRVc2VyQ2F0ZWdvcmllc3skUGFyZW50SUR9ID0gXCVTdWJDYXRlZ29yaWVzOwogICAgfQoKICAgIHJldHVybiBcJVVzZXJDYXRlZ29yaWVzOwp9CgoxOwoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UT0JPIHByb2plY3QgKEw8aHR0cHM6Ly9vdG9iby5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dD4uCgo9Y3V0Cg==</File>
        <File Location="Kernel/System/FAQ/Language.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpGQVE6Okxhbmd1YWdlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpTeXN0ZW06OkNhY2hlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6REInLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpGQVE6Okxhbmd1YWdlIC0gc3ViIG1vZHVsZSBvZiBLZXJuZWw6OlN5c3RlbTo6RkFRCgo9aGVhZDEgREVTQ1JJUFRJT04KCkFsbCBGQVEgbGFuZ3VhZ2UgZnVuY3Rpb25zLgoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1oZWFkMiBMYW5ndWFnZUFkZCgpCgphZGQgYSBsYW5ndWFnZQoKICAgIG15ICRTdWNjZXNzID0gJEZBUU9iamVjdC0+TGFuZ3VhZ2VBZGQoCiAgICAgICAgTmFtZSAgID0+ICdTb21lIExhbmd1YWdlJywKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CgpSZXR1cm5zOgoKICAgICRTdWNjZXNzID0gMTsgICAgICAgICAgICAgICAjIG9yIHVuZGVmIGlmIGxhbmd1YWdlIGNvdWxkIG5vdCBiZSBhZGRlZAoKPWN1dAoKc3ViIExhbmd1YWdlQWRkIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoTmFtZSBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBJTlNFUlQgSU5UTyBmYXFfbGFuZ3VhZ2UgKG5hbWUpCiAgICAgICAgICAgIFZBTFVFUyAoPyknLAogICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte05hbWV9IF0sCiAgICApOwoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgTGFuZ3VhZ2VEZWxldGUoKQoKRGVsZXRlIGEgbGFuZ3VhZ2UuCgogICAgbXkgJERlbGV0ZVN1Y2Nlc3MgPSAkRkFRT2JqZWN0LT5MYW5ndWFnZURlbGV0ZSgKICAgICAgICBMYW5ndWFnZUlEID0+IDEyMywKICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgKTsKClJldHVybnMKCiAgICAkRGVsZXRlU3VjY2VzcyA9IDE7ICAgICAgICAgICAgICMgb3IgdW5kZWYgaWYgbGFuZ3VhZ2UgY291bGQgbm90IGJlIGRlbGV0ZWQKCj1jdXQKCnN1YiBMYW5ndWFnZURlbGV0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkQXR0cmlidXRlIChxdyhMYW5ndWFnZUlEIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEF0dHJpYnV0ZX0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBdHRyaWJ1dGUhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBkZWxldGUgdGhlIGxhbmd1YWdlCiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBERUxFVEUgRlJPTSBmYXFfbGFuZ3VhZ2UKICAgICAgICAgICAgV0hFUkUgaWQgPSA/JywKICAgICAgICBCaW5kID0+IFsgXCRQYXJhbXtMYW5ndWFnZUlEfSBdLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIExhbmd1YWdlRHVwbGljYXRlQ2hlY2soKQoKY2hlY2sgYSBsYW5ndWFnZQoKICAgIG15ICRFeGlzdHMgPSAkRkFRT2JqZWN0LT5MYW5ndWFnZUR1cGxpY2F0ZUNoZWNrKAogICAgICAgIE5hbWUgICAgICAgPT4gJ1NvbWUgTmFtZScsCiAgICAgICAgTGFuZ3VhZ2VJRCA9PiAxLCAgICAgICAgIyBmb3IgdXBkYXRlCiAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgKTsKClJldHVybnM6CgogICAgJEV4aXN0cyA9IDE7ICAgICAgICAgICAgICAgICMgaWYgbGFuZ3VhZ2UgYWxyZWFkeSBleGlzdHMsIG9yIDAgaWYgZG9lcyBub3QgZXhpc3QKCj1jdXQKCnN1YiBMYW5ndWFnZUR1cGxpY2F0ZUNoZWNrIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgaWYgKCAhJFBhcmFte1VzZXJJRH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkIFVzZXJJRCEiLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGJ1aWxkIFNRTAogICAgbXkgQEJpbmQgPSAoIFwkUGFyYW17TmFtZX0gKTsKICAgIG15ICRTUUwgID0gJwogICAgICAgIFNFTEVDVCBpZAogICAgICAgIEZST00gZmFxX2xhbmd1YWdlCiAgICAgICAgV0hFUkUgbmFtZSA9ID8nOwogICAgaWYgKCBkZWZpbmVkICRQYXJhbXtMYW5ndWFnZUlEfSApIHsKICAgICAgICBwdXNoIEBCaW5kLCBcJFBhcmFte0xhbmd1YWdlSUR9OwogICAgICAgICRTUUwgLj0gIiBBTkQgaWQgIT0gPyI7CiAgICB9CgogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBwcmVwYXJlIFNRTCBzdGF0ZW1lbnQKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCAgID0+ICRTUUwsCiAgICAgICAgTGltaXQgPT4gMSwKICAgICAgICBCaW5kICA9PiBcQEJpbmQsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgJEV4aXN0czsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICRFeGlzdHMgPSAxOwogICAgfQoKICAgIHJldHVybiAkRXhpc3RzOwp9Cgo9aGVhZDIgTGFuZ3VhZ2VHZXQoKQoKZ2V0IGEgbGFuZ3VhZ2UgZGV0YWlscyBhcyBhIGhhc2gKCiAgICBteSAlTGFuZ3VhZ2UgPSAkRkFRT2JqZWN0LT5MYW5ndWFnZUdldCgKICAgICAgICBMYW5ndWFnZUlEID0+IDEsCiAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgKTsKClJldHVybnM6CgogICAgJUxhbmd1YWdlID0gKAogICAgICAgIExhbmd1YWdlSUQgPT4gJzEnLAogICAgICAgIE5hbWUgICAgICAgPT4gJ2VuJywKICAgICk7Cgo9Y3V0CgpzdWIgTGFuZ3VhZ2VHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhMYW5ndWFnZUlEIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgU1FMCiAgICByZXR1cm4gaWYgISREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBTRUxFQ1QgaWQsIG5hbWUKICAgICAgICAgICAgRlJPTSBmYXFfbGFuZ3VhZ2UKICAgICAgICAgICAgV0hFUkUgaWQgPSA/JywKICAgICAgICBCaW5kICA9PiBbIFwkUGFyYW17TGFuZ3VhZ2VJRH0gXSwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICBteSAlRGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICVEYXRhID0gKAogICAgICAgICAgICBMYW5ndWFnZUlEID0+ICRSb3dbMF0sCiAgICAgICAgICAgIE5hbWUgICAgICAgPT4gJFJvd1sxXSwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAlRGF0YTsKfQoKPWhlYWQyIExhbmd1YWdlTGlzdCgpCgpnZXQgdGhlIGxhbmd1YWdlIGxpc3QgYXMgYSBoYXNoCgogICAgbXkgJUxhbmd1YWdlcyA9ICRGQVFPYmplY3QtPkxhbmd1YWdlTGlzdCgKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CgpSZXR1cm5zOgoKICAgICVMYW5ndWFnZXMgPSAoCiAgICAgICAgMSA9PiAnZW4nLAogICAgICAgIDIgPT4gJ2RlJywKICAgICAgICAzID0+ICdlcycsCiAgICApOwoKPWN1dAoKc3ViIExhbmd1YWdlTGlzdCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGlmICggISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCBVc2VySUQhIiwKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBidWlsZCBTUUwKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFNFTEVDVCBpZCwgbmFtZQogICAgICAgICAgICBGUk9NIGZhcV9sYW5ndWFnZScsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgJUxpc3Q7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkTGlzdHsgJFJvd1swXSB9ID0gJFJvd1sxXTsKICAgIH0KCiAgICByZXR1cm4gJUxpc3Q7Cn0KCj1oZWFkMiBMYW5ndWFnZUxvb2t1cCgpCgpUaGlzIG1ldGhvZCBkb2VzIGEgbG9va3VwIGZvciBhIEZBUSBsYW5ndWFnZS4KSWYgYSBsYW5ndWFnZSBpZCBpcyBnaXZlbiwgaXQgcmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgbGFuZ3VhZ2UuCklmIHRoZSBuYW1lIG9mIHRoZSBsYW5ndWFnZSBpcyBnaXZlbiwgdGhlIGxhbmd1YWdlIGlkIGlzIHJldHVybmVkLgoKICAgIG15ICRMYW5ndWFnZU5hbWUgPSAkRkFRT2JqZWN0LT5MYW5ndWFnZUxvb2t1cCgKICAgICAgICBMYW5ndWFnZUlEID0+IDEsCiAgICApOwoKICAgIG15ICRMYW5ndWFnZUlEID0gJEZBUU9iamVjdC0+TGFuZ3VhZ2VMb29rdXAoCiAgICAgICAgTmFtZSA9PiAnZW4nLAogICAgKTsKClJldHVybnM6CgogICAgJExhbmd1YWdlTmFtZSA9ICdlbic7CgogICAgJExhbmd1YWdlSUQgPSAxOwoKPWN1dAoKc3ViIExhbmd1YWdlTG9va3VwIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBpZiBib3RoIHBhcmFtZXRlcnMgYXJlIGdpdmVuCiAgICBpZiAoICRQYXJhbXtMYW5ndWFnZUlEfSAmJiAkUGFyYW17TmFtZX0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIExhbmd1YWdlSUQgb3IgTmFtZSAtIG5vdCBib3RoIScsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY2hlY2sgaWYgYm90aCBwYXJhbWV0ZXJzIGFyZSBub3QgZ2l2ZW4KICAgIGlmICggISRQYXJhbXtMYW5ndWFnZUlEfSAmJiAhJFBhcmFte05hbWV9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBMYW5ndWFnZUlEIG9yIE5hbWUgLSBub25lIGlzIGdpdmVuIScsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY2hlY2sgaWYgTGFuZ3VhZ2VJRCBpcyBhIG51bWJlcgogICAgaWYgKCAkUGFyYW17TGFuZ3VhZ2VJRH0gJiYgJFBhcmFte0xhbmd1YWdlSUR9ICF+IG17IFxBIFxkKyBceiB9eG1zICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTGFuZ3VhZ2VJRCBtdXN0IGJlIGEgbnVtYmVyISAoTGFuZ3VhZ2VJRDogJFBhcmFte0xhbmd1YWdlSUR9KSIsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgcHJlcGFyZSBTUUwgc3RhdGVtZW50cwogICAgaWYgKCAkUGFyYW17TGFuZ3VhZ2VJRH0gKSB7CgogICAgICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICAgICAgU0VMRUNUIG5hbWUKICAgICAgICAgICAgICAgIEZST00gZmFxX2xhbmd1YWdlCiAgICAgICAgICAgICAgICBXSEVSRSBpZCA9ID8nLAogICAgICAgICAgICBCaW5kICA9PiBbIFwkUGFyYW17TGFuZ3VhZ2VJRH0gXSwKICAgICAgICAgICAgTGltaXQgPT4gMSwKICAgICAgICApOwogICAgfQogICAgZWxzaWYgKCAkUGFyYW17TmFtZX0gKSB7CgogICAgICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICAgICAgU0VMRUNUIGlkCiAgICAgICAgICAgICAgICBGUk9NIGZhcV9sYW5ndWFnZQogICAgICAgICAgICAgICAgV0hFUkUgbmFtZSA9ID8nLAogICAgICAgICAgICBCaW5kICA9PiBbIFwkUGFyYW17TmFtZX0gXSwKICAgICAgICAgICAgTGltaXQgPT4gMSwKICAgICAgICApOwogICAgfQoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgJExvb2t1cDsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICRMb29rdXAgPSAkUm93WzBdOwogICAgfQoKICAgIHJldHVybiAkTG9va3VwOwp9Cgo9aGVhZDIgTGFuZ3VhZ2VVcGRhdGUoKQoKdXBkYXRlIGEgbGFuZ3VhZ2UKCiAgICBteSAkU3VjY2VzcyA9ICRGQVFPYmplY3QtPkxhbmd1YWdlVXBkYXRlKAogICAgICAgIExhbmd1YWdlSUQgPT4gMSwKICAgICAgICBOYW1lICAgICAgID0+ICdkZScsCiAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgKTsKClJldHVybnM6CgogICAgJFN1Y2Nlc3MgPSAxOyAgICAgICAgICAgICAgICMgb3IgdW5kZWYgaWYgbGFuZ3VhZ2UgY291bGQgbm90IGJlIHVwZGF0ZWQKCj1jdXQKCnN1YiBMYW5ndWFnZVVwZGF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KExhbmd1YWdlSUQgTmFtZSBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGJ1aWxkIFNRTAogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPkRvKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFVQREFURSBmYXFfbGFuZ3VhZ2UKICAgICAgICAgICAgU0VUIG5hbWUgPSA/CiAgICAgICAgICAgIFdIRVJFIGlkID0gPycsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17TmFtZX0sIFwkUGFyYW17TGFuZ3VhZ2VJRH0gXSwKICAgICk7CgogICAgIyBkZWxldGUgYWxsIGNhY2hlLCBhcyBGQVFHZXQoKSB3aWxsIGJlIGFsc28gYWZmZWN0ZWQuCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+Q2xlYW5VcCgKICAgICAgICBUeXBlID0+ICdGQVEnLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKMTsKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVE9CTyBwcm9qZWN0IChMPGh0dHBzOi8vb3RvYm8ub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQ+LgoKPWN1dAo=</File>
        <File Location="Kernel/System/FAQ/RelatedArticle.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpGQVE6OlJlbGF0ZWRBcnRpY2xlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpIVE1MVXRpbHMnLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpGQVE6OlJlbGF0ZWRBcnRpY2xlIC0gc3ViIG1vZHVsZSBvZiBLZXJuZWw6OlN5c3RlbTo6RkFRCgo9aGVhZDEgREVTQ1JJUFRJT04KCkFsbCByZWxhdGVkIGZhcSBhcnRpY2xlIGZ1bmN0aW9ucy4KCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9aGVhZDIgUmVsYXRlZEFnZW50QXJ0aWNsZUxpc3QoKQoKR2V0IHRoZSByZWxhdGVkIGZhcSBhcnRpY2xlIGxpc3QgZm9yIHRoZSBnaXZlbiBzdWJqZWN0IGFuZCBib2R5LgoKICAgIG15IEBSZWxhdGVkQWdlbnRBcnRpY2xlTGlzdCA9ICRGQVFPYmplY3QtPlJlbGF0ZWRBZ2VudEFydGljbGVMaXN0KAogICAgICAgIFN1YmplY3QgICA9PiAnVGl0bGUgRXhhbXBsZScsCiAgICAgICAgQm9keSAgICAgID0+ICdUZXh0IEV4YW1wbGUnLCAgIyBwb3NzaWJsZSB3aXRoIGh0bWwgdGFncyAod2lsbCBiZSByZW1vdmVkIGZvciB0aGUgc2VhcmNoKQogICAgICAgIExhbmd1YWdlcyA9PlsgJ2VuJyBdLCAgICAgICAgICMgb3B0aW9uYWwKICAgICAgICBMaW1pdCAgICAgPT4gMTAsICAgICAgICAgICAgICAjIG9wdGlvbmFsCiAgICAgICAgVXNlcklEICAgID0+IDEsCiAgICApOwoKUmV0dXJucwoKICAgIG15IEBSZWxhdGVkQWdlbnRBcnRpY2xlTGlzdCA9ICgKICAgICAgICB7CiAgICAgICAgICAgIEl0ZW1JRCAgICAgICA9PiAxMjMsCiAgICAgICAgICAgIFRpdGxlICAgICAgICA9PiAnRkFRIFRpdGxlJywKICAgICAgICAgICAgQ2F0ZWdvcnlOYW1lID0+ICdNaXNjJywKICAgICAgICAgICAgQ3JlYXRlZCAgICAgID0+ICcyMDE0LTEwLTEwIDEwOjEwOjAwJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgSXRlbUlEICAgICAgID0+IDEyMywKICAgICAgICAgICAgVGl0bGUgICAgICAgID0+ICdGQVEgVGl0bGUnLAogICAgICAgICAgICBDYXRlZ29yeU5hbWUgPT4gJ01pc2MnLAogICAgICAgICAgICBDcmVhdGVkICAgICAgPT4gJzIwMTQtMTAtMTAgMTA6MTA6MDAnLAogICAgICAgIH0sCiAgICApOwoKPWN1dAoKc3ViIFJlbGF0ZWRBZ2VudEFydGljbGVMaXN0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgcmV0dXJuICRTZWxmLT5fUmVsYXRlZEFydGljbGVMaXN0KCVQYXJhbSk7Cn0KCj1oZWFkMiBSZWxhdGVkQ3VzdG9tZXJBcnRpY2xlTGlzdCgpCgpHZXQgdGhlIHJlbGF0ZWQgZmFxIGFydGljbGUgbGlzdCBmb3IgdGhlIGdpdmVuIHN1YmplY3QgYW5kIGJvZHkuCgogICAgbXkgQFJlbGF0ZWRDdXN0b21lckFydGljbGVMaXN0ID0gJEZBUU9iamVjdC0+UmVsYXRlZEN1c3RvbWVyQXJ0aWNsZUxpc3QoCiAgICAgICAgU3ViamVjdCAgID0+ICdUaXRsZSBFeGFtcGxlJywKICAgICAgICBCb2R5ICAgICAgPT4gJ1RleHQgRXhhbXBsZScsICAjIHBvc3NpYmxlIHdpdGggaHRtbCB0YWdzICh3aWxsIGJlIHJlbW92ZWQgZm9yIHRoZSBzZWFyY2gpCiAgICAgICAgU2VydmljZUlEID0+ICRTZXJ2aWNlSUQsICAgICAgIyBvcHRpb25hbAogICAgICAgIExhbmd1YWdlcyA9PiBbICdlbicgXSwgICAgICAgICMgb3B0aW9uYWwKICAgICAgICBMaW1pdCAgICAgPT4gMTAsICAgICAgICAgICAgICAjIG9wdGlvbmFsCiAgICAgICAgVXNlcklEICAgID0+IDEsCiAgICApOwoKUmV0dXJucwoKICAgIG15IEBSZWxhdGVkQ3VzdG9tZXJBcnRpY2xlTGlzdCA9ICgKICAgICAgICB7CiAgICAgICAgICAgIEl0ZW1JRCAgICAgICA9PiAxMjMsCiAgICAgICAgICAgIFRpdGxlICAgICAgICA9PiAnRkFRIFRpdGxlJywKICAgICAgICAgICAgQ2F0ZWdvcnlOYW1lID0+ICdNaXNjJywKICAgICAgICAgICAgQ3JlYXRlZCAgICAgID0+ICcyMDE0LTEwLTEwIDEwOjEwOjAwJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgSXRlbUlEICAgICAgID0+IDEyMywKICAgICAgICAgICAgVGl0bGUgICAgICAgID0+ICdGQVEgVGl0bGUnLAogICAgICAgICAgICBDYXRlZ29yeU5hbWUgPT4gJ01pc2MnLAogICAgICAgICAgICBDcmVhdGVkICAgICAgPT4gJzIwMTQtMTAtMTAgMTA6MTA6MDAnLAogICAgICAgIH0sCiAgICApOwoKPWN1dAoKc3ViIFJlbGF0ZWRDdXN0b21lckFydGljbGVMaXN0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgcmV0dXJuICRTZWxmLT5fUmVsYXRlZEFydGljbGVMaXN0KAogICAgICAgICVQYXJhbSwKICAgICAgICBDdXN0b21lclVzZXIgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgVXNlcklEICAgICAgID0+IDEsCiAgICApOwp9CgojIEZBUSBTZXJ2aWNlCgo9aGVhZDIgUmVsYXRlZEN1c3RvbWVyU2VydmljZUFydGljbGVMaXN0KCkKCkdldCB0aGUgc2VydmljZSByZWxhdGVkIGZhcSBhcnRpY2xlIGxpc3QgZm9yIHRoZSBnaXZlbiBzdWJqZWN0IGFuZCBib2R5LgoKICAgIG15IEBSZWxhdGVkQ3VzdG9tZXJBcnRpY2xlTGlzdCA9ICRGQVFPYmplY3QtPlJlbGF0ZWRDdXN0b21lclNlcnZpY2VBcnRpY2xlTGlzdCgKICAgICAgICBMYW5ndWFnZXMgPT5bICdlbicgXSwgICAgICAgICAjIG9wdGlvbmFsICMgVE9ETwogICAgICAgIExpbWl0ICAgICA9PiAxMCwgICAgICAgICAgICAgICMgb3B0aW9uYWwKICAgICAgICBVc2VySUQgICAgPT4gMSwKICAgICAgICBTZXJ2aWNlSUQgPT4gMSwKICAgICk7CgpSZXR1cm5zCgogICAgbXkgQFJlbGF0ZWRDdXN0b21lclNlcnZpY2VBcnRpY2xlTGlzdCA9ICgKICAgICAgICB7CiAgICAgICAgICAgIEl0ZW1JRCAgICAgICA9PiAxMjMsCiAgICAgICAgICAgIFRpdGxlICAgICAgICA9PiAnRkFRIFRpdGxlJywKICAgICAgICAgICAgQ2F0ZWdvcnlOYW1lID0+ICdNaXNjJywKICAgICAgICAgICAgQ3JlYXRlZCAgICAgID0+ICcyMDE0LTEwLTEwIDEwOjEwOjAwJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgSXRlbUlEICAgICAgID0+IDEyMywKICAgICAgICAgICAgVGl0bGUgICAgICAgID0+ICdGQVEgVGl0bGUnLAogICAgICAgICAgICBDYXRlZ29yeU5hbWUgPT4gJ01pc2MnLAogICAgICAgICAgICBDcmVhdGVkICAgICAgPT4gJzIwMTQtMTAtMTAgMTA6MTA6MDAnLAogICAgICAgIH0sCiAgICApOwoKPWN1dAoKc3ViIFJlbGF0ZWRDdXN0b21lclNlcnZpY2VBcnRpY2xlTGlzdCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFVzZXJJRCBTZXJ2aWNlSUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBteSAkRkFRU2VydmljZUFydGljbGVzID0gJFNlbGYtPkZBUVNlcnZpY2VBcnRpY2xlc0dldCgKICAgICAgICBTZXJ2aWNlSUQgPT4gJFBhcmFte1NlcnZpY2VJRH0sCiAgICAgICAgTGltaXQgICAgID0+ICRQYXJhbXtMaW1pdH0sCiAgICApOwoKICAgIG15ICVMb29rdXBSZWxhdGVkRkFRQXJ0aWNsZXM7CgogICAgZm9yIG15ICRGQVFBcnRpY2xlSUQgKCBAeyRGQVFTZXJ2aWNlQXJ0aWNsZXN9ICkgewoKICAgICAgICBteSAlRkFRQXJ0aWNsZURhdGEgPSAkU2VsZi0+RkFRR2V0KAogICAgICAgICAgICBJdGVtSUQgPT4gJEZBUUFydGljbGVJRCwKICAgICAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgJEZBUUFydGljbGVEYXRhe1ZvdGVzfQogICAgICAgICRMb29rdXBSZWxhdGVkRkFRQXJ0aWNsZXN7JEZBUUFydGljbGVJRH0gPSB7CiAgICAgICAgICAgICVGQVFBcnRpY2xlRGF0YSwKICAgICAgICB9OwoKICAgIH0KCiAgICAjIFRvIHNhdmUgdGhlIHJlbGF0ZWQgZmFxIGFydGljbGUgZnJvbSB0aGUgbG9va3VwIGhhc2guCiAgICBteSBAUmVsYXRlZEZBUUFydGljbGVMaXN0ID0gbWFwIHsgJExvb2t1cFJlbGF0ZWRGQVFBcnRpY2xlc3skX30gfSBzb3J0IGtleXMgJUxvb2t1cFJlbGF0ZWRGQVFBcnRpY2xlczsKCiAgICByZXR1cm4gQFJlbGF0ZWRGQVFBcnRpY2xlTGlzdDsKfQoKIyBlbyBGQVEgU2VydmljZQoKPWhlYWQxIFBSSVZBVEUgRlVOQ1RJT05TCgo9aGVhZDIgX1JlbGF0ZWRBcnRpY2xlTGlzdCgpCgpHZXQgdGhlIHJlbGF0ZWQgZmFxIGFydGljbGUgbGlzdCBmb3IgdGhlIGdpdmVuIHN1YmplY3QgYW5kIGJvZHkuCgogICAgbXkgQFJlbGF0ZWRBcnRpY2xlTGlzdCA9ICRGQVFPYmplY3QtPl9SZWxhdGVkQXJ0aWNsZUxpc3QoCiAgICAgICAgU3ViamVjdCAgICAgID0+ICdUaXRsZSBFeGFtcGxlJywKICAgICAgICBCb2R5ICAgICAgICAgPT4gJ1RleHQgRXhhbXBsZScsICAjIHBvc3NpYmxlIHdpdGggaHRtbCB0YWdzICh3aWxsIGJlIHJlbW92ZWQgZm9yIHRoZSBzZWFyY2gpCiAgICAgICAgU2VydmljZUlEICAgID0+ICRTZXJ2aWNlSUQsICAgICAgIyBvcHRpb25hbAogICAgICAgIExhbmd1YWdlcyAgICA9PlsgJ2VuJyBdLCAgICAgICAgICMgb3B0aW9uYWwKICAgICAgICBMaW1pdCAgICAgICAgPT4gMTAsICAgICAgICAgICAgICAjIG9wdGlvbmFsCiAgICAgICAgQ3VzdG9tZXJVc2VyID0+ICdqb2UnICAgICAgICAgICAgIyBvcHRpb25hbAogICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgKTsKClJldHVybnMKCiAgICBteSBAUmVsYXRlZEFydGljbGVMaXN0ID0gKAogICAgICAgIHsKICAgICAgICAgICAgSXRlbUlEICAgICAgID0+IDEyMywKICAgICAgICAgICAgVGl0bGUgICAgICAgID0+ICdGQVEgVGl0bGUnLAogICAgICAgICAgICBDYXRlZ29yeU5hbWUgPT4gJ01pc2MnLAogICAgICAgICAgICBDcmVhdGVkICAgICAgPT4gJzIwMTQtMTAtMTAgMTA6MTA6MDAnLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBJdGVtSUQgICAgICAgPT4gMTIzLAogICAgICAgICAgICBUaXRsZSAgICAgICAgPT4gJ0ZBUSBUaXRsZScsCiAgICAgICAgICAgIENhdGVnb3J5TmFtZSA9PiAnTWlzYycsCiAgICAgICAgICAgIENyZWF0ZWQgICAgICA9PiAnMjAxNC0xMC0xMCAxMDoxMDowMCcsCiAgICAgICAgfSwKICAgICk7Cgo9Y3V0CgpzdWIgX1JlbGF0ZWRBcnRpY2xlTGlzdCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGlmICggISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCBVc2VySUQhIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSBAQ29udGVudDsKCiAgICBGSUVMRDoKICAgIGZvciBteSAkRmllbGQgKHF3KFN1YmplY3QgQm9keSkpIHsKCiAgICAgICAgIyBHZXQgQVNDSUkgY29udGVudCBmb3JtIHRoZSBnaXZlbiBib2R5LCB0byBoYXZlIG5vIGh0bWwgdGFncyBmb3IgdGhlIGNoZWNrLgogICAgICAgIGlmICggJEZpZWxkIGVxICdCb2R5JyApIHsKICAgICAgICAgICAgJFBhcmFteyRGaWVsZH0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SFRNTFV0aWxzJyktPlRvQXNjaWkoCiAgICAgICAgICAgICAgICBTdHJpbmcgPT4gJFBhcmFteyRGaWVsZH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBuZXh0IEZJRUxEIGlmICEkUGFyYW17JEZpZWxkfTsKCiAgICAgICAgcHVzaCBAQ29udGVudCwgJFBhcmFteyRGaWVsZH07CiAgICB9CgogICAgcmV0dXJuIGlmICFAQ29udGVudDsKCiAgICAjIFRvIHNhdmUgdGhlIGtleXdvcmRzIGFuZCB0aGUgY291bnRlciBmb3IgdGhlIGRpZmZlcmVudCBrZXl3b3Jkcy4KICAgIG15ICVDb250ZW50S2V5d29yZHMgPSAkU2VsZi0+X0J1aWxkS2V5d29yZENvdW50ZXJGcm9tQ29udGVudCgKICAgICAgICBDb250ZW50ID0+IFxAQ29udGVudAogICAgKTsKCiAgICByZXR1cm4gaWYgISVDb250ZW50S2V5d29yZHM7CgogICAgIyBHZXQgdGhlIGtleXdvcmQgYXJ0aWNsZSBsaXN0IGZvciB0aGUgZ2l2ZW4gbGFuZ3VhZ2VzLgogICAgbXkgJUZBUUtleXdvcmRBcnRpY2xlTGlzdCA9ICRTZWxmLT5GQVFLZXl3b3JkQXJ0aWNsZUxpc3QoJVBhcmFtKTsKCiAgICByZXR1cm4gaWYgISVGQVFLZXl3b3JkQXJ0aWNsZUxpc3Q7CgogICAgcmV0dXJuICRTZWxmLT5fQnVpbGRSZWxhdGVkRkFRQXJ0aWNsZUxpc3QoCiAgICAgICAgQ29udGVudEtleXdvcmRzICAgID0+IFwlQ29udGVudEtleXdvcmRzLAogICAgICAgIEtleXdvcmRBcnRpY2xlTGlzdCA9PiBcJUZBUUtleXdvcmRBcnRpY2xlTGlzdCwKICAgICAgICBMaW1pdCAgICAgICAgICAgICAgPT4gJFBhcmFte0xpbWl0fSwKICAgICAgICBVc2VySUQgICAgICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwp9Cgo9aGVhZDIgX0J1aWxkUmVsYXRlZEZBUUFydGljbGVMaXN0KCkKCkJ1aWxkIHRoZSByZWxhdGVkIGZhcSBhcnRpY2xlIGxpc3QgZnJvbSB0aGUgZ2l2ZW4gY29udGVudCBrZXl3b3JkcyBhbmQgYXJ0aWNsZSBrZXl3b3JkIHJlbGF0aW9uLgoKICAgIG15IEBSZWxhdGVkQXJ0aWNsZUxpc3QgPSAkRkFRT2JqZWN0LT5fQnVpbGRSZWxhdGVkRkFRQXJ0aWNsZUxpc3QoCiAgICAgICAgQ29udGVudEtleXdvcmRzID0+IHsKICAgICAgICAgICAgZXhhbXBsZSA9PiAxLAogICAgICAgICAgICB0ZXN0ICAgID0+IDMsCiAgICAgICAgICAgIGZhcSAgICAgPT4gNiwKICAgICAgICB9LAogICAgICAgIEtleXdvcmRBcnRpY2xlTGlzdCA9PiB7CiAgICAgICAgICAgICdFeGFtcGxlS2V5d29yZCcgPT4gWwogICAgICAgICAgICAgICAgMTIsCiAgICAgICAgICAgICAgICAxMywKICAgICAgICAgICAgXSwKICAgICAgICAgICAgJ1Rlc3RLZXl3b3JkJyA9PiBbCiAgICAgICAgICAgICAgICA4NzYsCiAgICAgICAgICAgIF0sCiAgICAgICAgfSwKICAgICAgICBMaW1pdCAgPT4gMTAsICMgb3B0aW9uYWwKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CgpSZXR1cm5zCgogICAgbXkgQFJlbGF0ZWRBcnRpY2xlTGlzdCA9ICgKICAgICAgICB7CiAgICAgICAgICAgIEl0ZW1JRCAgICAgICA9PiAxMjMsCiAgICAgICAgICAgIFRpdGxlICAgICAgICA9PiAnRkFRIFRpdGxlJywKICAgICAgICAgICAgQ2F0ZWdvcnlOYW1lID0+ICdNaXNjJywKICAgICAgICAgICAgQ3JlYXRlZCAgICAgID0+ICcyMDE0LTEwLTEwIDEwOjEwOjAwJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgSXRlbUlEICAgICAgID0+IDEyMywKICAgICAgICAgICAgVGl0bGUgICAgICAgID0+ICdGQVEgVGl0bGUnLAogICAgICAgICAgICBDYXRlZ29yeU5hbWUgPT4gJ01pc2MnLAogICAgICAgICAgICBDcmVhdGVkICAgICAgPT4gJzIwMTQtMTAtMTAgMTA6MTA6MDAnLAogICAgICAgIH0sCiAgICApOwoKPWN1dAoKc3ViIF9CdWlsZFJlbGF0ZWRGQVFBcnRpY2xlTGlzdCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGlmICggISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCBVc2VySUQhIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICByZXR1cm4gaWYgIUlzSGFzaFJlZldpdGhEYXRhKCAkUGFyYW17Q29udGVudEtleXdvcmRzfSApOwogICAgcmV0dXJuIGlmICFJc0hhc2hSZWZXaXRoRGF0YSggJFBhcmFte0tleXdvcmRBcnRpY2xlTGlzdH0gKTsKCiAgICAjIFNhdmUgZ2l2ZW4gcGFyYW1ldGVycyBpbiBvd24gdmFyaWFibGVzIGZvciBiZXR0ZXIgdXNhZ2UuCiAgICBteSAlQ29udGVudEtleXdvcmRzICAgID0gJXsgJFBhcmFte0NvbnRlbnRLZXl3b3Jkc30gfTsKICAgIG15ICVLZXl3b3JkQXJ0aWNsZUxpc3QgPSAleyAkUGFyYW17S2V5d29yZEFydGljbGVMaXN0fSB9OwoKICAgICMgQnVpbGQgdGhlIHJlbGF0ZWQgZmFxIGFydGljbGVzIGFuZCBzYXZlIGEgcXVhbnRpZmllciBmb3IgdGhlIGRpZmZlcmVudCBhcnRpY2xlcyB3aXRoIHRoZSByZWxldmFuY2UKICAgICMgICBmcm9tIHRoZSBrZXl3b3JkLCB3aGljaCBpcyByZWxhdGVkIHRvIHRoZSBmYXEgYXJ0aWNsZS4KICAgICMgRS5nLgogICAgIyAgIC0gRkFRQXJ0aWNsZSAxIHdpdGgga2V5d29yZHM6ICAnaXRzbScsICdjaGFuZ2VtYW5hZ2VtZW50JywgJ3RpY2tldCcKICAgICMgICAtIEZBUUFydGljbGUgMiB3aXRoIGtleXdvcmRzOiAnaXRzbScsICdjaGFuZ2VtYW5nZW1lbnQnCiAgICAjICAgLSBGQVFBcnRpY2xlIDMgd2l0aCBrZXl3b3JkczogJ3RpY2tldCcKICAgICMgR2l2ZW4gS2V5d29yZCBmcm9tIHRleHQgKHdpdGggY291bnRlcik6CiAgICAjICAgLSBjaGFuZ2VtYW5hZ2VtZW50ICg1KQogICAgIyAgIC0gdGlja2V0ICg0KQogICAgIyAgIC0gaXRzbSAoMSkKICAgICMgUmVzdWx0IChGQVFBcnRpY2xlSUQgPT4gQ2FsY3VsYXRlZCBRdWFudGlmaWVyKToKICAgICMgICAtIEZBUUFydGljbGUgMSA9PiAxMQogICAgIyAgIC0gRkFRQXJ0aWNsZSAyID0+IDYKICAgICMgICAtIEZBUUFydGljbGUgMyA9PiA0CiAgICBteSAlTG9va3VwUmVsYXRlZEZBUUFydGljbGVzOwoKICAgIENPTlRFTlRLRVlXT1JEOgogICAgZm9yIG15ICRDb250ZW50S2V5d29yZCAoIHNvcnQga2V5cyAlQ29udGVudEtleXdvcmRzICkgewoKICAgICAgICBuZXh0IENPTlRFTlRLRVlXT1JEIGlmICFJc0FycmF5UmVmV2l0aERhdGEoICRLZXl3b3JkQXJ0aWNsZUxpc3R7JENvbnRlbnRLZXl3b3JkfSApOwoKICAgICAgICBGQVFBUlRJQ0xFSUQ6CiAgICAgICAgZm9yIG15ICRGQVFBcnRpY2xlSUQgKCBAeyAkS2V5d29yZEFydGljbGVMaXN0eyRDb250ZW50S2V5d29yZH0gfSApIHsKCiAgICAgICAgICAgIGlmICggISRMb29rdXBSZWxhdGVkRkFRQXJ0aWNsZXN7JEZBUUFydGljbGVJRH0gKSB7CgogICAgICAgICAgICAgICAgbXkgJUZBUUFydGljbGVEYXRhID0gJFNlbGYtPkZBUUdldCgKICAgICAgICAgICAgICAgICAgICBJdGVtSUQgPT4gJEZBUUFydGljbGVJRCwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIGlmICggJEZBUUFydGljbGVEYXRhe1ZvdGVzfSApIHsKICAgICAgICAgICAgICAgICAgICAkRkFRQXJ0aWNsZURhdGF7U3RhckNvdW50ZXJ9ID0gaW50KCAkRkFRQXJ0aWNsZURhdGF7Vm90ZVJlc3VsdH0gKiAwLjA1ICk7CgogICAgICAgICAgICAgICAgICAgICMgQWRkIDEgYmVjYXVzZSBsb3dlc3QgdmFsdWUgc2hvdWxkIGJlIGFsd2F5cyAxLgogICAgICAgICAgICAgICAgICAgIGlmICggJEZBUUFydGljbGVEYXRhe1N0YXJDb3VudGVyfSA8IDUgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRGQVFBcnRpY2xlRGF0YXtTdGFyQ291bnRlcn0rKzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBBZGQgdGhlIEZBUSBhcnRpY2xlIGRhdGEgdG8gdGhlIHJlbGF0ZWQgRkFRIGFydGljbGVzLgogICAgICAgICAgICAgICAgJExvb2t1cFJlbGF0ZWRGQVFBcnRpY2xlc3skRkFRQXJ0aWNsZUlEfSA9IHsKICAgICAgICAgICAgICAgICAgICAlRkFRQXJ0aWNsZURhdGEsCiAgICAgICAgICAgICAgICAgICAgS2V5d29yZENvdW50ZXIgPT4gJENvbnRlbnRLZXl3b3Jkc3skQ29udGVudEtleXdvcmR9LAogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICAgICAjIEluY3JlYXNlIHRoZSBxdWFudGlmaWVyLCBpZiB0aGUgYXJ0aWNsZSBoYXMgbW9yZSB0aGVuIG9uZSByZWxldmFudCBrZXl3b3JkLgogICAgICAgICAgICAgICAgJExvb2t1cFJlbGF0ZWRGQVFBcnRpY2xlc3skRkFRQXJ0aWNsZUlEfS0+e0tleXdvcmRDb3VudGVyfSArPSAkQ29udGVudEtleXdvcmRzeyRDb250ZW50S2V5d29yZH07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBUbyBzYXZlIHRoZSByZWxhdGVkIGZhcSBhcnRpY2xlIGZyb20gdGhlIGxvb2t1cCBoYXNoLgogICAgbXkgQFJlbGF0ZWRGQVFBcnRpY2xlTGlzdCA9IG1hcCB7ICRMb29rdXBSZWxhdGVkRkFRQXJ0aWNsZXN7JF99IH0gc29ydCBrZXlzICVMb29rdXBSZWxhdGVkRkFRQXJ0aWNsZXM7CgogICAgIyBTb3J0IHRoZSByZXN1bHRzIGZyb20gdGhlIHBsdWctaW5zIGJ5ICdrZXl3b3JkIHF1YW50aWZpZXInLCAnY2hhbmdlIHRpbWUnIGFuZCAnaWQgKGNyZWF0ZSB0aW1lKScuCiAgICBAUmVsYXRlZEZBUUFydGljbGVMaXN0ID0gc29ydCB7CiAgICAgICAgJGItPntLZXl3b3JkQ291bnRlcn0gPD0+ICRhLT57S2V5d29yZENvdW50ZXJ9CiAgICAgICAgICAgIHx8ICRiLT57Q2hhbmdlZH0gY21wICRhLT57Q2hhbmdlZH0KICAgICAgICAgICAgfHwgaW50ICRiLT57SUR9IDw9PiBpbnQgJGEtPntJRH0KICAgIH0gQFJlbGF0ZWRGQVFBcnRpY2xlTGlzdDsKCiAgICAjIEN1dCB0aGUgbm90IG5lZWRlZCBhcnRpY2xlcyBmcm9tIHRoZSBhcnJheSwgaWYgYSBsaW1pdCBpcyBnaXZlbi4KICAgIGlmICggJFBhcmFte0xpbWl0fSAmJiBzY2FsYXIgQFJlbGF0ZWRGQVFBcnRpY2xlTGlzdCA+ICRQYXJhbXtMaW1pdH0gKSB7CiAgICAgICAgc3BsaWNlIEBSZWxhdGVkRkFRQXJ0aWNsZUxpc3QsICRQYXJhbXtMaW1pdH07CiAgICB9CgogICAgcmV0dXJuIEBSZWxhdGVkRkFRQXJ0aWNsZUxpc3Q7Cn0KCj1oZWFkMiBfQnVpbGRLZXl3b3JkQ291bnRlckZyb21Db250ZW50KCkKCkJ1aWxkIHRoZSBrZXl3b3JkcyBmb3IgdGhlIGdpdmVuIGNvbnRlbnQuCgogICAgbXkgJENvbnRlbnQgPSAkRkFRT2JqZWN0LT5fQnVpbGRLZXl3b3JkQ291bnRlckZyb21Db250ZW50KAogICAgICAgIENvbnRlbnQgPT4gJ1NvbWUgVGV4dCB3aXRoIGEgbGluay4gTW9yZSB0ZXh0LiBbMV0gaHR0cHM6Ly9vdG9iby5kZS8nLAogICAgKTsKClJldHVybnMKCiAgICAlQ29udGVudEtleXdvcmRzID0gKAogICAgICAgIGV4YW1wbGUgPT4gMSwKICAgICAgICB0ZXN0ICAgID0+IDMsCiAgICAgICAgZmFxICAgICA9PiA2LAogICAgICAgIC4uLgogICAgKTsKCj1jdXQKCnN1YiBfQnVpbGRLZXl3b3JkQ291bnRlckZyb21Db250ZW50IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgcmV0dXJuIGlmICFJc0FycmF5UmVmV2l0aERhdGEoICRQYXJhbXtDb250ZW50fSApOwoKICAgIG15ICVDb250ZW50S2V5d29yZHM7CgogICAgIyBTdHJpcCBub3Qgd2FudGVkIHN0dWZmIGZyb20gdGhlIGdpdmVuIHN1YmplY3QgYW5kIGJvZHkuCiAgICBmb3IgbXkgJENvbnRlbnQgKCBAeyAkUGFyYW17Q29udGVudH0gfSApIHsKCiAgICAgICAgJENvbnRlbnQgfHw9ICcnOwoKICAgICAgICAjIFJlbW92ZSB0aGUgbGlua3MgZnJvbSB0aGUgY29udGVudC4KICAgICAgICAkQ29udGVudCA9ICRTZWxmLT5fUmVtb3ZlTGlua3NGcm9tQ29udGVudCgKICAgICAgICAgICAgQ29udGVudCA9PiAkQ29udGVudCwKICAgICAgICApOwoKICAgICAgICAjIFNwbGl0IHRoZSB0ZXh0IGluIHdvcmQgYW5kIHNhdmUgdGhlIHdvcmQgYXMgdGhlIGdpdmVuIGtleXdvcmRzIChzZXBhcmF0b3IgaXMgYSB3aGl0ZXNwYWNlKS4KICAgICAgICAkQ29udGVudCA9fiBze1tcLlwsXDtcOl0oXHN8XHM/IFxaICl9eyB9eG1zZzsKICAgICAgICBteSBARmllbGRLZXl3b3JkcyA9ICggJENvbnRlbnQgPX4gbXsgW1x3XHh7MDk4MH0tXHh7MDlGRn1cLV0rXC4/W1x3XHh7MDk4MH0tXHh7MDlGRn1cLV0qIH14bXNnICk7CgogICAgICAgIEtFWVdPUkQ6CiAgICAgICAgZm9yIG15ICRLZXl3b3JkIChARmllbGRLZXl3b3JkcykgewoKICAgICAgICAgICAgIyBTYXZlIHRoZSBrZXl3b3JkcyBhbHdheXMgYXMgbG93ZXIgY2FzZS4KICAgICAgICAgICAgJEtleXdvcmQgPSBsYyAkS2V5d29yZDsKCiAgICAgICAgICAgICMgSW5jcmVhc2UgdGhlIGtleXdvcmQgY291bnRlciBmcm9tIHRoZSB0ZXh0IGNvbnRlbnQsIHRvIGluY3JlYXNlIHRoZSByZWxldmFuY2UgZm9yIHRoaXMga2V5d29yZC4KICAgICAgICAgICAgJENvbnRlbnRLZXl3b3Jkc3skS2V5d29yZH0rKzsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuICVDb250ZW50S2V5d29yZHM7Cn0KCj1oZWFkMiBfUmVtb3ZlTGlua3NGcm9tQ29udGVudCgpCgpSZW1vdmUgbGlua3MgZnJvbSB0aGUgZ2l2ZW4gY29udGVudC4KCiAgICBteSAkQ29udGVudCA9ICRGQVFPYmplY3QtPl9SZW1vdmVMaW5rc0Zyb21Db250ZW50KAogICAgICAgIENvbnRlbnQgPT4gJ1NvbWUgVGV4dCB3aXRoIGEgbGluay4gTW9yZSB0ZXh0LiBbMV0gaHR0cHM6Ly9vdG9iby5kZS8nLAogICAgKTsKClJldHVybnMKCiAgICAkQ29udGVudCA9ICdTb21lIFRleHQgd2l0aCBhIGxpbmsuIE1vcmUgdGV4dC4nOwoKPWN1dAoKc3ViIF9SZW1vdmVMaW5rc0Zyb21Db250ZW50IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgJFBhcmFte0NvbnRlbnR9ID1+IHN7IFxbXGQqXF0gfXt9eG1zZzsKICAgICRQYXJhbXtDb250ZW50fSA9fiBzeyBodHRwczovL1teXHNdKiB9e314bXNnOwoKICAgIHJldHVybiAkUGFyYW17Q29udGVudH07Cn0KCjE7Cgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RPQk8gcHJvamVjdCAoTDxodHRwczovL290b2JvLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0Pi4KCj1jdXQK</File>
        <File Location="Kernel/System/FAQ/State.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpGQVE6OlN0YXRlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpTeXN0ZW06OkNhY2hlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6REInLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpGQVE6OlN0YXRlIC0gc3ViIG1vZHVsZSBvZiBLZXJuZWw6OlN5c3RlbTo6RkFRCgo9aGVhZDEgREVTQ1JJUFRJT04KCkFsbCBGQVEgc3RhdGUgZnVuY3Rpb25zLgoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1oZWFkMiBTdGF0ZUFkZCgpCgphZGQgYSBzdGF0ZQoKICAgIG15ICRTdWNjZXNzID0gJEZBUU9iamVjdC0+U3RhdGVBZGQoCiAgICAgICAgTmFtZSAgID0+ICdwdWJsaWMnLAogICAgICAgIFR5cGVJRCA9PiAxLAogICAgICAgIFVzZXJJRCA9PiAxLAogICAgKTsKClJldHVybnM6CgogICAgJFN1Y2Nlc3MgPSAxOyAgICAgICAgICAgICAgICMgb3IgdW5kZWYgaWYgc3RhdGUgY291bGQgbm90IGJlIGFkZGVkCgo9Y3V0CgpzdWIgU3RhdGVBZGQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhOYW1lIFR5cGVJRCBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBJTlNFUlQgSU5UTyBmYXFfc3RhdGUgKG5hbWUsIHR5cGVfaWQpCiAgICAgICAgICAgIFZBTFVFUyAoID8sID8gKScsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17TmFtZX0sIFwkUGFyYW17VHlwZUlEfSBdLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIFN0YXRlR2V0KCkKCmdldCBhIHN0YXRlIGFzIGhhc2gKCiAgICBteSAlU3RhdGUgPSAkRkFRT2JqZWN0LT5TdGF0ZUdldCgKICAgICAgICBTdGF0ZUlEID0+IDEsCiAgICAgICAgVXNlcklEICA9PiAxLAogICAgKTsKClJldHVybnM6CgogICAgJVN0YXRlID0gKAogICAgICAgIFN0YXRlSUQgID0+IDEsCiAgICAgICAgTmFtZSAgICAgPT4gJ2ludGVybmFsIChhZ2VudCknLAogICAgICAgIFR5cGVJRCAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIFN0YXRlR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoU3RhdGVJRCBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIFNRTAogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIGlkLCBuYW1lLCB0eXBlX2lkCiAgICAgICAgICAgIEZST00gZmFxX3N0YXRlCiAgICAgICAgICAgIFdIRVJFIGlkID0gPycsCiAgICAgICAgQmluZCAgPT4gWyBcJFBhcmFte1N0YXRlSUR9IF0sCiAgICAgICAgTGltaXQgPT4gMSwKICAgICk7CgogICAgbXkgJURhdGE7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAlRGF0YSA9ICgKICAgICAgICAgICAgU3RhdGVJRCA9PiAkUm93WzBdLAogICAgICAgICAgICBOYW1lICAgID0+ICRSb3dbMV0sCiAgICAgICAgICAgIFR5cGVJRCAgPT4gJFJvd1syXSwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAlRGF0YTsKfQoKPWhlYWQyIFN0YXRlTGlzdCgpCgpnZXQgdGhlIHN0YXRlIGxpc3QgYXMgaGFzaAoKICAgIG15ICVTdGF0ZXMgPSAkRkFRT2JqZWN0LT5TdGF0ZUxpc3QoCiAgICAgICAgVXNlcklEID0+IDEsCiAgICApOwoKb3B0aW9uYWwsIGdldCBzdGF0ZSBsaXN0IGZvciBzb21lIHN0YXRlIHR5cGVzOgoKICAgIG15ICRTdGF0ZVR5cGVIYXNoUmVmID0gJEZBUU9iamVjdC0+U3RhdGVUeXBlTGlzdCgKICAgICAgICBUeXBlcyAgPT4gWyAncHVibGljJywgJ2ludGVybmFsJ10sCiAgICAgICAgVXNlcklEID0+IDEsCiAgICApOwoKUmV0dXJuczoKCiAgICAlU3RhdGVzID0gKAogICAgICAgIDEgPT4gJ2ludGVybmFsIChhZ2VudCknLAogICAgICAgIDIgPT4gJ2V4dGVybmFsIChjdXN0b21lciknLAogICAgICAgIDMgPT4gJ3B1YmxpYyAoYWxsKScsCiAgICApOwoKPWN1dAoKc3ViIFN0YXRlTGlzdCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGlmICggISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBVc2VySUQhJywKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgbXkgJFNRTCA9ICcKICAgICAgICBTRUxFQ1QgaWQsIG5hbWUKICAgICAgICBGUk9NIGZhcV9zdGF0ZSc7CgogICAgIyBGaWx0ZXIgc3RhdGUgbGlzdCBieSB0eXBlIGlkIGlmIGF2YWlsYWJsZS4KICAgIGlmICggSXNBcnJheVJlZldpdGhEYXRhKCAkUGFyYW17VHlwZXN9ICkgKSB7CiAgICAgICAgbXkgJFN0YXRlVHlwZUhhc2hSZWYgPSAkU2VsZi0+U3RhdGVUeXBlTGlzdCgKICAgICAgICAgICAgVHlwZXMgID0+ICRQYXJhbXtUeXBlc30sCiAgICAgICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwogICAgICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoJFN0YXRlVHlwZUhhc2hSZWYpICkgewogICAgICAgICAgICAkU1FMIC49ICcgV0hFUkUgdHlwZV9pZCBJTiAoICcgLiBqb2luKCAnLCAnLCBzb3J0IGtleXMgJXskU3RhdGVUeXBlSGFzaFJlZn0gKSAuICcgKSc7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5QcmVwYXJlKCBTUUwgPT4gJFNRTCApOwoKICAgIG15ICVMaXN0OwogICAgd2hpbGUgKCBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJExpc3R7ICRSb3dbMF0gfSA9ICRSb3dbMV07CiAgICB9CgogICAgcmV0dXJuICVMaXN0Owp9Cgo9aGVhZDIgU3RhdGVVcGRhdGUoKQoKdXBkYXRlIGEgc3RhdGUKCiAgICBteSBTdWNjZXNzID0gJEZBUU9iamVjdC0+U3RhdGVVcGRhdGUoCiAgICAgICAgU3RhdGVJRCA9PiAxLAogICAgICAgIE5hbWUgICAgPT4gJ3B1YmxpYycsCiAgICAgICAgVHlwZUlEICA9PiAxLAogICAgICAgIFVzZXJJRCAgPT4gMSwKICAgICk7CgpSZXR1cm5zOgoKICAgIFN1Y2Nlc3MgPSAxOyAgICAgICAgICAgICAjIG9yIHVuZGVmIGlmIHN0YXRlIGNvdWxkIG5vdCBiZSB1cGRhdGVkCgo9Y3V0CgpzdWIgU3RhdGVVcGRhdGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhTdGF0ZUlEIE5hbWUgVHlwZUlEIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgU1FMCiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBVUERBVEUgZmFxX3N0YXRlCiAgICAgICAgICAgIFNFVCBuYW1lID0gPywgdHlwZV9pZCA9ID8sCiAgICAgICAgICAgIFdIRVJFIGlkID0gPycsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17TmFtZX0sIFwkUGFyYW17VHlwZUlEfSwgXCRQYXJhbXtTdGF0ZUlEfSBdLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIFN0YXRlVHlwZUdldCgpCgpnZXQgYSBzdGF0ZSBhcyBoYXNoIHJlZmVyZW5jZQoKICAgIG15ICRTdGF0ZVR5cGVIYXNoUmVmID0gJEZBUU9iamVjdC0+U3RhdGVUeXBlR2V0KAogICAgICAgIFN0YXRlSUQgPT4gMSwKICAgICAgICBVc2VySUQgID0+IDEsCiAgICApOwoKT3IKCiAgICBteSAkU3RhdGVUeXBlSGFzaFJlZiA9ICRGQVFPYmplY3QtPlN0YXRlVHlwZUdldCgKICAgICAgICBOYW1lICAgID0+ICdpbnRlcm5hbCcsCiAgICAgICAgVXNlcklEICA9PiAxLAogICAgKTsKClJldHVybnM6CgogICAgJFN0YXRlVHlwZUhhc2hSZWYgPSB7CiAgICAgICAgJ1N0YXRlSUQnID0+IDEsCiAgICAgICAgJ05hbWUnICAgID0+ICdpbnRlcm5hbCcsCiAgICB9OwoKPWN1dAoKc3ViIFN0YXRlVHlwZUdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGlmICggISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCBVc2VySUQhIiwKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJFNRTCA9ICcKICAgICAgICBTRUxFQ1QgaWQsIG5hbWUKICAgICAgICBGUk9NIGZhcV9zdGF0ZV90eXBlCiAgICAgICAgV0hFUkUnOwogICAgbXkgQEJpbmQ7CiAgICBteSAkQ2FjaGVLZXkgPSAnU3RhdGVUeXBlR2V0OjonOwogICAgaWYgKCBkZWZpbmVkICRQYXJhbXtTdGF0ZUlEfSApIHsKICAgICAgICAkU1FMIC49ICcgaWQgPSA/JzsKICAgICAgICBwdXNoIEBCaW5kLCBcJFBhcmFte1N0YXRlSUR9OwogICAgICAgICRDYWNoZUtleSAuPSAnSUQ6OicgLiAkUGFyYW17U3RhdGVJRH07CiAgICB9CiAgICBlbHNpZiAoIGRlZmluZWQgJFBhcmFte05hbWV9ICkgewogICAgICAgICRTUUwgLj0gJyBuYW1lID0gPyc7CiAgICAgICAgcHVzaCBAQmluZCwgXCRQYXJhbXtOYW1lfTsKICAgICAgICAkQ2FjaGVLZXkgLj0gJ05hbWU6OicgLiAkUGFyYW17TmFtZX07CiAgICB9CgogICAgbXkgJENhY2hlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyk7CgogICAgIyBjaGVjayBjYWNoZQogICAgbXkgJENhY2hlID0gJENhY2hlT2JqZWN0LT5HZXQoCiAgICAgICAgVHlwZSA9PiAnRkFRJywKICAgICAgICBLZXkgID0+ICRDYWNoZUtleSwKICAgICk7CgogICAgcmV0dXJuICRDYWNoZSBpZiAkQ2FjaGU7CgogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBTUUwKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCAgPT4gJFNRTCwKICAgICAgICBCaW5kID0+IFxAQmluZCwKICAgICk7CgogICAgbXkgJURhdGE7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAlRGF0YSA9ICgKICAgICAgICAgICAgU3RhdGVJRCA9PiAkUm93WzBdLAogICAgICAgICAgICBOYW1lICAgID0+ICRSb3dbMV0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGNhY2hlIHJlc3VsdAogICAgJENhY2hlT2JqZWN0LT5TZXQoCiAgICAgICAgVHlwZSAgPT4gJ0ZBUScsCiAgICAgICAgS2V5ICAgPT4gJENhY2hlS2V5LAogICAgICAgIFZhbHVlID0+IFwlRGF0YSwKICAgICAgICBUVEwgICA9PiA2MCAqIDYwICogMjQgKiAyLAogICAgKTsKCiAgICByZXR1cm4gXCVEYXRhOwp9Cgo9aGVhZDIgU3RhdGVUeXBlTGlzdCgpCgpnZXQgdGhlIHN0YXRlIHR5cGUgbGlzdCBhcyBoYXNoIHJlZmVyZW5jZQoKICAgIG15ICRTdGF0ZVR5cGVIYXNoUmVmID0gJEZBUU9iamVjdC0+U3RhdGVUeXBlTGlzdCgKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CgpvcHRpb25hbCwgZ2V0IHN0YXRlIHR5cGUgbGlzdCBmb3Igc29tZSBzdGF0ZXM6CgogICAgbXkgJFN0YXRlVHlwZUhhc2hSZWYgPSAkRkFRT2JqZWN0LT5TdGF0ZVR5cGVMaXN0KAogICAgICAgIFR5cGVzICA9PiBbICdwdWJsaWMnLCAnaW50ZXJuYWwnXSwKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CgpSZXR1cm5zOgoKICAgICRTdGF0ZVR5cGVIYXNoUmVmID0gewogICAgICAgIDEgPT4gJ2ludGVybmFsJywKICAgICAgICAzID0+ICdwdWJsaWMnLAogICAgICAgIDIgPT4gJ2V4dGVybmFsJywKICAgIH07Cgo9Y3V0CgpzdWIgU3RhdGVUeXBlTGlzdCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGlmICggISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBVc2VySUQhJywKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBidWlsZCBTUUwKICAgIG15ICRTUUwgPSAnCiAgICAgICAgU0VMRUNUIGlkLCBuYW1lCiAgICAgICAgRlJPTSBmYXFfc3RhdGVfdHlwZSc7CgogICAgIyB0eXBlcyBhcmUgZ2l2ZW4KICAgIGlmICggJFBhcmFte1R5cGVzfSApIHsKCiAgICAgICAgaWYgKCByZWYgJFBhcmFte1R5cGVzfSBuZSAnQVJSQVknICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAnVHlwZXMgc2hvdWxkIGJlIGFuIGFycmF5IHJlZmVyZW5jZSEnLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBjYWxsIFN0YXRlVHlwZUxpc3Qgd2l0aG91dCBwYXJhbWV0ZXJzIHRvIHZhbGlkYXRlIFR5cGVzCiAgICAgICAgbXkgJFN0YXRlVHlwZUxpc3QgPSAkU2VsZi0+U3RhdGVUeXBlTGlzdCggVXNlcklEID0+ICRQYXJhbXtVc2VySUR9ICk7CiAgICAgICAgbXkgJVN0YXRlVHlwZXMgICAgPSByZXZlcnNlICV7ICRTdGF0ZVR5cGVMaXN0IHx8IHt9IH07CiAgICAgICAgbXkgQFR5cGVzOwoKICAgICAgICAjIG9ubHkgYWRkIHR5cGVzIHRvIGxpc3QgdGhhdCBleGlzdAogICAgICAgIFRZUEU6CiAgICAgICAgZm9yIG15ICRUeXBlICggQHsgJFBhcmFte1R5cGVzfSB9ICkgewogICAgICAgICAgICBuZXh0IFRZUEUgaWYgISRTdGF0ZVR5cGVzeyRUeXBlfTsKICAgICAgICAgICAgcHVzaCBAVHlwZXMsICInJFR5cGUnIjsKICAgICAgICB9CgogICAgICAgICMgY3JlYXRlIHN0cmluZwogICAgICAgIGlmIChAVHlwZXMpIHsKICAgICAgICAgICAgJFNRTCAuPSAnIFdIRVJFIG5hbWUgSU4gKCAnIC4gam9pbiggJywgJywgQFR5cGVzICkgLiAnICknOwogICAgICAgIH0KICAgIH0KCiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIHByZXBhcmUgU1FMCiAgICByZXR1cm4gaWYgISREQk9iamVjdC0+UHJlcGFyZSggU1FMID0+ICRTUUwgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICVMaXN0OwogICAgd2hpbGUgKCBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJExpc3R7ICRSb3dbMF0gfSA9ICRSb3dbMV07CiAgICB9CgogICAgcmV0dXJuIFwlTGlzdDsKfQoKMTsKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVE9CTyBwcm9qZWN0IChMPGh0dHBzOi8vb3RvYm8ub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQ+LgoKPWN1dAo=</File>
        <File Location="Kernel/System/FAQ/Vote.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpGQVE6OlZvdGU7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEQicsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkZBUTo6Vm90ZSAtIHN1YiBtb2R1bGUgb2YgS2VybmVsOjpTeXN0ZW06OkZBUQoKPWhlYWQxIERFU0NSSVBUSU9OCgpBbGwgRkFRIHZvdGUgZnVuY3Rpb25zLgoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1oZWFkMiBWb3RlQWRkKCkKCmFkZCBhIHZvdGUKCiAgICBteSAkU3VjY2VzcyA9ICRGQVFPYmplY3QtPlZvdGVBZGQoCiAgICAgICAgQ3JlYXRlZEJ5ID0+ICdTb21lIFRleHQnLAogICAgICAgIEl0ZW1JRCAgICA9PiAnMTIzNDU2JywKICAgICAgICBJUCAgICAgICAgPT4gJzU0LjQzLjMwLjEnLAogICAgICAgIEludGVyZmFjZSA9PiAnU29tZSBUZXh0JywKICAgICAgICBSYXRlICAgICAgPT4gMTAwLAogICAgICAgIFVzZXJJRCAgICA9PiAxLAogICAgKTsKClJldHVybnM6CgogICAgJFN1Y2Nlc3MgPSAxOyAgICAgICAgICAgICAgIyBvciB1bmRlZiBpZiB2b3RlIGNvdWxkIG5vdCBiZSBhZGRlZAoKPWN1dAoKc3ViIFZvdGVBZGQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhDcmVhdGVkQnkgSXRlbUlEIElQIEludGVyZmFjZSBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBJTlNFUlQgSU5UTyBmYXFfdm90aW5nIChjcmVhdGVkX2J5LCBpdGVtX2lkLCBpcCwgaW50ZXJmYWNlLCByYXRlLCBjcmVhdGVkICkKICAgICAgICAgICAgVkFMVUVTICggPywgPywgPywgPywgPywgY3VycmVudF90aW1lc3RhbXAgKScsCiAgICAgICAgQmluZCA9PiBbCiAgICAgICAgICAgIFwkUGFyYW17Q3JlYXRlZEJ5fSwgXCRQYXJhbXtJdGVtSUR9LCBcJFBhcmFte0lQfSwgXCRQYXJhbXtJbnRlcmZhY2V9LAogICAgICAgICAgICBcJFBhcmFte1JhdGV9LAogICAgICAgIF0sCiAgICApOwoKICAgICMgZGVsZXRlIGNhY2hlCiAgICBteSAkQ2FjaGVLZXkgPSAnSXRlbVZvdGVEYXRhR2V0OjonIC4gJFBhcmFte0l0ZW1JRH07CiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+RGVsZXRlKAogICAgICAgIFR5cGUgPT4gJ0ZBUScsCiAgICAgICAgS2V5ICA9PiAkQ2FjaGVLZXksCiAgICApOwoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgVm90ZURlbGV0ZSgpCgpkZWxldGUgYSB2b3RlCgogICAgbXkgJERlbGV0ZVN1Y2Nlc3MgPSAkRkFRT2JqZWN0LT5Wb3RlRGVsZXRlKAogICAgICAgIFZvdGVJRCA9PiAxLAogICAgICAgIFVzZXJJRCA9PiAxLAogICAgKTsKClJldHVybnM6CgogICAgJERlbGV0ZVN1Y2Nlc3MgPSAxOyAgICAgICAgICAgICAgIyBvciB1bmRlZiBpZiB2b3RlIGNvdWxkIG5vdCBiZSBkZWxldGVkCgo9Y3V0CgpzdWIgVm90ZURlbGV0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFZvdGVJRCBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBERUxFVEUgRlJPTSBmYXFfdm90aW5nCiAgICAgICAgICAgIFdIRVJFIGlkID0gPycsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17Vm90ZUlEfSBdLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIFZvdGVHZXQoKQoKZ2V0IGEgdm90ZSBpbmZvcm1hdGlvbgoKICAgIG15ICVWb3RlRGF0YSA9ICRGQVFPYmplY3QtPlZvdGVHZXQoCiAgICAgICAgQ3JlYXRlQnkgID0+ICdTb21lIFRleHQnLAogICAgICAgIEl0ZW1JRCAgICA9PiAnMTIzNDU2JywKICAgICAgICBJUCAgICAgICAgPT4gJzEyNy4wLjAuMScsCiAgICAgICAgSW50ZXJmYWNlID0+ICdTb21lIFRleHQnLAogICAgICAgIFVzZXJJRCAgICA9PiAxLAogICAgKTsKClJldHVybnM6CgogICAgJVZvdGVEYXRhID0gKAogICAgICAgIEl0ZW1JRCAgICA9PiAyMywKICAgICAgICBSYXRlICAgICAgPT4gNTAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3IgMCBvciAyNSBvciA3NSBvciAxMDAKICAgICAgICBJUCAgICAgICAgPT4gJzE5Mi4xNjguMC4xJywKICAgICAgICBJbnRlcmZhY2UgPT4gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgaW50ZXJmYWNlIElECiAgICAgICAgQ3JlYXRlZEJ5ID0+IDEsCiAgICAgICAgQ3JlYXRlZCAgID0+ICcyMDExLTA2LTE0IDEyOjMyOjAzJywKICAgICk7Cgo9Y3V0CgpzdWIgVm90ZUdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KENyZWF0ZUJ5IEl0ZW1JRCBJbnRlcmZhY2UgSVAgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgQFZhbHVlczsKICAgIG15ICRTUUwgPSAnCiAgICAgICAgU0VMRUNUIGNyZWF0ZWRfYnksIGl0ZW1faWQsIGludGVyZmFjZSwgaXAsIGNyZWF0ZWQsIHJhdGUKICAgICAgICBGUk9NIGZhcV92b3RpbmcKICAgICAgICBXSEVSRSc7CgogICAgIyBwdWJsaWMKICAgIGlmICggJFBhcmFte0ludGVyZmFjZX0gZXEgJzMnICkgewogICAgICAgICRTUUwgLj0gJwogICAgICAgICAgICBpcCA9ID8KICAgICAgICAgICAgQU5EIGl0ZW1faWQgPSA/JzsKICAgICAgICBwdXNoIEBWYWx1ZXMsICggXCRQYXJhbXtJUH0sIFwkUGFyYW17SXRlbUlEfSApOwogICAgfQoKICAgICMgY3VzdG9tZXIKICAgIGVsc2lmICggJFBhcmFte0ludGVyZmFjZX0gZXEgJzInIHx8ICRQYXJhbXtJbnRlcmZhY2V9IGVxICcxJyApIHsKICAgICAgICAkU1FMIC49ICcKICAgICAgICAgICAgY3JlYXRlZF9ieSA9ID8KICAgICAgICAgICAgQU5EIGl0ZW1faWQgPSA/JzsKICAgICAgICBwdXNoIEBWYWx1ZXMsICggXCRQYXJhbXtDcmVhdGVCeX0sIFwkUGFyYW17SXRlbUlEfSApOwogICAgfQoKICAgICMgbGVhdmUgYSBzcGFjZSBiZXR3ZWVuIEFORCBjb25kaXRpb24gYW5kIE9SREVSIEJZIHN0YXRlbWVudAogICAgJFNRTCAuPSAnCiAgICAgICAgT1JERVIgQlkgY3JlYXRlZCBERVNDJzsKCiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICByZXR1cm4gaWYgISREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgICA9PiAkU1FMLAogICAgICAgIEJpbmQgID0+IFxAVmFsdWVzLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgIG15ICVEYXRhOwogICAgd2hpbGUgKCBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJURhdGEgPSAoCiAgICAgICAgICAgIENyZWF0ZWRCeSA9PiAkUm93WzBdLAogICAgICAgICAgICBJdGVtSUQgICAgPT4gJFJvd1sxXSwKICAgICAgICAgICAgSW50ZXJmYWNlID0+ICRSb3dbMl0sCiAgICAgICAgICAgIElQICAgICAgICA9PiAkUm93WzNdLAogICAgICAgICAgICBDcmVhdGVkICAgPT4gJFJvd1s0XSwKICAgICAgICAgICAgUmF0ZSAgICAgID0+ICRSb3dbNV0sCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gaWYgISVEYXRhOwogICAgcmV0dXJuIFwlRGF0YTsKfQoKPWhlYWQyIFZvdGVTZWFyY2goKQoKcmV0dXJucyBhbiBhcnJheSB3aXRoIFZvdGVJRHMKCiAgICBteSAkVm90ZUlEQXJyYXlyZWYgPSAkRkFRT2JqZWN0LT5Wb3RlU2VhcmNoKAogICAgICAgIEl0ZW1JRCA9PiAxLAogICAgICAgIFVzZXJJRCA9PiAxLAogICAgKTsKClJldHVybnM6CgogICAgJFZvdGVJREFycmF5cmVmID0gWwogICAgICAgIDIzLAogICAgICAgIDQ1LAogICAgXTsKCj1jdXQKCnN1YiBWb3RlU2VhcmNoIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoSXRlbUlEIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFNFTEVDVCBpZAogICAgICAgICAgICBGUk9NIGZhcV92b3RpbmcKICAgICAgICAgICAgV0hFUkUgaXRlbV9pZCA9ID8nLAogICAgICAgIEJpbmQgID0+IFsgXCRQYXJhbXtJdGVtSUR9IF0sCiAgICAgICAgTGltaXQgPT4gMSwKICAgICk7CgogICAgbXkgQFZvdGVJRHM7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICBwdXNoIEBWb3RlSURzLCAkUm93WzBdOwogICAgfQoKICAgIHJldHVybiBcQFZvdGVJRHM7Cn0KCj1oZWFkMiBJdGVtVm90ZURhdGFHZXQoKQoKUmV0dXJucyBhIGhhc2ggcmVmZXJlbmNlIHdpdGggdGhlIG51bWJlciBvZiB2b3RlcyBhbmQgdGhlIHZvdGUgcmVzdWx0LgoKICAgIG15ICRWb3RlRGF0YUhhc2hSZWYgPSAkRkFRT2JqZWN0LT5JdGVtVm90ZURhdGFHZXQoCiAgICAgICAgSXRlbUlEID0+IDEyMywKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CgpSZXR1cm5zOgoKICAgICRWb3RlRGF0YUhhc2hSZWYgPSB7CiAgICAgICAgUmVzdWx0ID0+IDc1LjAwMDAsCiAgICAgICAgVm90ZXMgID0+IDUKICAgIH07Cgo9Y3V0CgpzdWIgSXRlbVZvdGVEYXRhR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoSXRlbUlEIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICRDYWNoZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpOwoKICAgICMgY2hlY2sgY2FjaGUKICAgIG15ICRDYWNoZUtleSA9ICdJdGVtVm90ZURhdGFHZXQ6OicgLiAkUGFyYW17SXRlbUlEfTsKICAgIG15ICRDYWNoZSAgICA9ICRDYWNoZU9iamVjdC0+R2V0KAogICAgICAgIFR5cGUgPT4gJ0ZBUScsCiAgICAgICAgS2V5ICA9PiAkQ2FjaGVLZXksCiAgICApOwoKICAgIHJldHVybiAkQ2FjaGUgaWYgJENhY2hlOwoKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgZ2V0IHZvdGUgZnJvbSBkYgogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIGNvdW50KCopLCBhdmcocmF0ZSkKICAgICAgICAgICAgRlJPTSBmYXFfdm90aW5nCiAgICAgICAgICAgIFdIRVJFIGl0ZW1faWQgPSA/JywKICAgICAgICBCaW5kICA9PiBbIFwkUGFyYW17SXRlbUlEfSBdLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgJURhdGE7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkRGF0YXtWb3Rlc30gID0gJFJvd1swXTsKICAgICAgICAkRGF0YXtSZXN1bHR9ID0gJFJvd1sxXTsKICAgIH0KCiAgICAjIGNhY2hlIHJlc3VsdAogICAgJENhY2hlT2JqZWN0LT5TZXQoCiAgICAgICAgVHlwZSAgPT4gJ0ZBUScsCiAgICAgICAgS2V5ICAgPT4gJENhY2hlS2V5LAogICAgICAgIFZhbHVlID0+IFwlRGF0YSwKICAgICAgICBUVEwgICA9PiA2MCAqIDYwICogMjQgKiAyLAogICAgKTsKCiAgICByZXR1cm4gXCVEYXRhOwp9CgoxOwoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UT0JPIHByb2plY3QgKEw8aHR0cHM6Ly9vdG9iby5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dD4uCgo9Y3V0Cg==</File>
        <File Location="Kernel/System/FAQ.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpGQVE7CgojIyBub2ZpbHRlcihUaWR5QWxsOjpQbHVnaW46Ok9UT0JPOjpQZXJsOjpQYXJhbU9iamVjdCkKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBNSU1FOjpCYXNlNjQgcXcoKTsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCnVzZSBwYXJlbnQgcXcoCiAgICBLZXJuZWw6OlN5c3RlbTo6RkFRU2VhcmNoCiAgICBLZXJuZWw6OlN5c3RlbTo6RkFROjpMYW5ndWFnZQogICAgS2VybmVsOjpTeXN0ZW06OkZBUTo6Q2F0ZWdvcnkKICAgIEtlcm5lbDo6U3lzdGVtOjpGQVE6OlN0YXRlCiAgICBLZXJuZWw6OlN5c3RlbTo6RkFROjpSZWxhdGVkQXJ0aWNsZQogICAgS2VybmVsOjpTeXN0ZW06OkZBUTo6Vm90ZQogICAgS2VybmVsOjpTeXN0ZW06OkV2ZW50SGFuZGxlcgopOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OkRCJywKICAgICdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJywKICAgICdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kJywKICAgICdLZXJuZWw6OlN5c3RlbTo6RW5jb2RlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMaW5rT2JqZWN0JywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VGlja2V0JywKICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpUeXBlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VXNlcicsCiAgICAnS2VybmVsOjpTeXN0ZW06OlZhbGlkJywKICAgICdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0JywKICAgICdLZXJuZWw6OlN5c3RlbTo6VGlja2V0OjpBcnRpY2xlJywKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6RkFRIC0gIEZBUSBsaWIKCj1oZWFkMSBERVNDUklQVElPTgoKQWxsIEZBUSBmdW5jdGlvbnMuIEUuIGcuIHRvIGFkZCBGQVFzIG9yIHRvIGdldCBGQVFzLgoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1oZWFkMiBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdC4gRG8gbm90IHVzZSBpdCBkaXJlY3RseSwgaW5zdGVhZCB1c2U6CgogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyOwogICAgbG9jYWwgJEtlcm5lbDo6T00gPSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlci0+bmV3KCk7CiAgICBteSAkRkFRT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkZBUScpOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIGdldCBsaWtlIGVzY2FwZSBzdHJpbmcgbmVlZGVkIGZvciBzb21lIGRhdGFiYXNlcyAoZS5nLiBvcmFjbGUpCiAgICAkU2VsZi0+e0xpa2VFc2NhcGVTdHJpbmd9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkdldERhdGFiYXNlRnVuY3Rpb24oJ0xpa2VFc2NhcGVTdHJpbmcnKTsKCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAjIGdldCBkZWZhdWx0IG9wdGlvbnMKICAgICRTZWxmLT57Vm90aW5nfSA9ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpWb3RpbmcnKTsKCiAgICAjIGdldCB0aGUgY2FjaGUgVFRMIChpbiBzZWNvbmRzKQogICAgJFNlbGYtPntDYWNoZVRUTH0gPSBpbnQoICRDb25maWdPYmplY3QtPkdldCgnRkFROjpDYWNoZVRUTCcpIHx8IDYwICogNjAgKiAyNCAqIDIgKTsKCiAgICAjIGluaXQgb2YgZXZlbnQgaGFuZGxlcgogICAgIyBjdXJyZW50bHkgdGhlcmUgYXJlIG5vIEZBUSBldmVudCBtb2R1bGVzIGJ1dCBpcyBuZWVkZWQgdG8gaW5pdGlhbGl6ZSBvdGhlcndpc2UgZXJyb3JzIGFyZQogICAgIyAgICAgbG9nIGR1ZSB0byBzZWFyY2hpbmcgdW5kZWZpbmVkIHNldHRpbmcgaW50byBDb25maWdPYmplY3QuCiAgICAkU2VsZi0+RXZlbnRIYW5kbGVySW5pdCgKICAgICAgICBDb25maWcgPT4gJycsCiAgICApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWhlYWQyIEZBUUdldCgpCgpnZXQgYW4gRkFRIGl0ZW0KCiAgICBteSAlRkFRID0gJEZBUU9iamVjdC0+RkFRR2V0KAogICAgICAgIEl0ZW1JRCAgICAgICAgPT4gMTIzLAogICAgICAgIEl0ZW1GaWVsZHMgICAgPT4gMCwgICAgICAgICMgT3B0aW9uYWwsIGRlZmF1bHQgMC4gVG8gaW5jbHVkZSB0aGUgaXRlbSBmaWVsZCBjb250ZW50IGZvciB0aGlzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgIEZBUSBpdGVtIG9uIHRoZSByZXR1cm4gc3RydWN0dXJlLgogICAgICAgIER5bmFtaWNGaWVsZHMgPT4gMCwgICAgICAgICMgT3B0aW9uYWwsIGRlZmF1bHQgMC4gVG8gaW5jbHVkZSB0aGUgZHluYW1pYyBmaWVsZHMgZm9yIHRoaXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgRkFRIGl0ZW0gb24gdGhlIHJldHVybiBzdHJ1Y3R1cmUuCiAgICAgICAgVXNlcklEICAgICAgICA9PiAxLAogICAgKTsKClJldHVybnM6CgogICAgJUZBUSA9ICgKICAgICAgICBJRCAgICAgICAgICAgICAgICA9PiAzMiwKICAgICAgICBJdGVtSUQgICAgICAgICAgICA9PiAzMiwKICAgICAgICBGQVFJRCAgICAgICAgICAgICA9PiAzMiwKICAgICAgICBOdW1iZXIgICAgICAgICAgICA9PiAxMDAwMzIsCiAgICAgICAgQ2F0ZWdvcnlJRCAgICAgICAgPT4gJzInLAogICAgICAgIENhdGVnb3J5TmFtZScgICAgID0+ICdDYXRlZ29yeUE6OkNhdGVnb3J5QicsCiAgICAgICAgQ2F0ZWdvcnlTaG9ydE5hbWUgPT4gJ0NhdGVnb3J5QicsCiAgICAgICAgTGFuZ3VhZ2VJRCAgICAgICAgPT4gMSwKICAgICAgICBMYW5ndWFnZSAgICAgICAgICA9PiAnZW4nLAogICAgICAgIFRpdGxlICAgICAgICAgICAgID0+ICdBcnRpY2xlIFRpdGxlJywKICAgICAgICBBcHByb3ZlZCAgICAgICAgICA9PiAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3IgMAogICAgICAgIFZhbGlkSUQgICAgICAgICAgID0+IDEsCiAgICAgICAgVmFsaWQgICAgICAgICAgICAgPT4gJ3ZhbGlkJywKICAgICAgICBLZXl3b3JkcyAgICAgICAgICA9PiAnS2V5V29yZDEgS2V5V29yZDInLAogICAgICAgIFZvdGVzICAgICAgICAgICAgID0+IDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBudW1iZXIgb2Ygdm90ZXMKICAgICAgICBWb3RlUmVzdWx0ICAgICAgICA9PiAnMC4wMCcsICAgICAgICAgICAgICAgICAgICAgICAgICMgYSBudW1iZXIgYmV0d2VlbiAwLjAwIGFuZCAxMDAuMDAKICAgICAgICBTdGF0ZUlEICAgICAgICAgICA9PiAxLAogICAgICAgIFN0YXRlICAgICAgICAgICAgID0+ICdpbnRlcm5hbCAoYWdlbnQpJywgICAgICAgICAgICAgIyBvciAnZXh0ZXJuYWwgKGN1c3RvbWVyKScgb3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgJ3B1YmxpYyAoYWxsKScKICAgICAgICBTdGF0ZVR5cGVJRCAgICAgICA9PiAxLAogICAgICAgIFN0YXRlVHlwZU5hbWUgICAgID0+ICdpbnRlcm5hbCcsICAgICAgICAgICAgICAgICAgICAgIyBvciAnZXh0ZXJuYWwnIG9yICdwdWJsaWMnCiAgICAgICAgQ3JlYXRlZEJ5ICAgICAgICAgPT4gMSwKICAgICAgICBDaGFuZ2VkJyAgICAgICAgICA9PiAnMjAxMS0wMS0wNSAyMTo1Mzo1MCcsCiAgICAgICAgQ2hhbmdlZEJ5ICAgICAgICAgPT4gJzEnLAogICAgICAgIENyZWF0ZWQgICAgICAgICAgID0+ICcyMDExLTAxLTA1IDIxOjUzOjUwJywKICAgICAgICBOYW1lICAgICAgICAgICAgICA9PiAnMTI5NDI4NjAzMC0zMS4xNjk3Mjk3MTA0NzMyJywgICMgRkFRIEFydGljbGUgbmFtZSBvcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBzeXN0ZW10aW1lICsgJy0nICsgcmFuZG9tIG51bWJlcgogICAgICAgIFNlcnZpY2VMaXN0ICAgICAgID0+IHsgJzEnID0+ICdDb21wdXRlcicgfSAgICAgICAgICAgIyBIYXNoIG9mIHJlbGF0ZWQgc2VydmljZXMKCiAgICApOwoKICAgIG15ICVGQVEgPSAkRkFRT2JqZWN0LT5GQVFHZXQoCiAgICAgICAgSXRlbUlEICAgICAgICA9PiAxMjMsCiAgICAgICAgSXRlbUZpZWxkcyAgICA9PiAxLAogICAgICAgIER5bmFtaWNGaWVsZHMgPT4gMCwKICAgICAgICBVc2VySUQgICAgICAgID0+IDEsCiAgICApOwoKUmV0dXJuczoKCiAgICAlRkFRID0gKAoKICAgICAgICAjIENvbXBhdGliaWxpdHkgSUQgbmFtZXMuCiAgICAgICAgSUQgICAgICAgICAgICAgICAgPT4gMzIsCiAgICAgICAgRkFRSUQgICAgICAgICAgICAgPT4gMzIsCgogICAgICAgIEl0ZW1JRCAgICAgICAgICAgID0+IDMyLAogICAgICAgIE51bWJlciAgICAgICAgICAgID0+IDEwMDAzMiwKICAgICAgICBDYXRlZ29yeUlEICAgICAgICA9PiAnMicsCiAgICAgICAgQ2F0ZWdvcnlOYW1lJyAgICAgPT4gJ0NhdGVnb3J5QTo6Q2F0ZWdvcnlCJywKICAgICAgICBDYXRlZ29yeVNob3J0TmFtZSA9PiAnQ2F0ZWdvcnlCJywKICAgICAgICBMYW5ndWFnZUlEICAgICAgICA9PiAxLAogICAgICAgIExhbmd1YWdlICAgICAgICAgID0+ICdlbicsCiAgICAgICAgVGl0bGUgICAgICAgICAgICAgPT4gJ0FydGljbGUgVGl0bGUnLAogICAgICAgIEZpZWxkMSAgICAgICAgICAgID0+ICdUaGUgU3ltcHRvbXMnLAogICAgICAgIEZpZWxkMiAgICAgICAgICAgID0+ICdUaGUgUHJvYmxlbScsCiAgICAgICAgRmllbGQzICAgICAgICAgICAgPT4gJ1RoZSBTb2x1dGlvbicsCiAgICAgICAgRmllbGQ0ICAgICAgICAgICAgPT4gdW5kZWYsICAgICAgICAgICAgICAgICAgICAgICAgICAjIE5vdCBhY3RpdmUgYnkgZGVmYXVsdAogICAgICAgIEZpZWxkNSAgICAgICAgICAgID0+IHVuZGVmLCAgICAgICAgICAgICAgICAgICAgICAgICAgIyBOb3QgYWN0aXZlIGJ5IGRlZmF1bHQKICAgICAgICBGaWVsZDYgICAgICAgICAgICA9PiAnQ29tbWVudHMnLAogICAgICAgIEFwcHJvdmVkICAgICAgICAgID0+IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvciAwCiAgICAgICAgVmFsaWRJRCAgICAgICAgICAgPT4gMSwKICAgICAgICBDb250ZW50VHlwZSAgICAgICA9PiAndGV4dC9wbGFpbicsICAgICAgICAgICAgICAgICAgIyBvciAndGV4dC9odG1sJwogICAgICAgIFZhbGlkICAgICAgICAgICAgID0+ICd2YWxpZCcsCiAgICAgICAgS2V5d29yZHMgICAgICAgICAgPT4gJ0tleVdvcmQxIEtleVdvcmQyJywKICAgICAgICBWb3RlcyAgICAgICAgICAgICA9PiAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgbnVtYmVyIG9mIHZvdGVzCiAgICAgICAgVm90ZVJlc3VsdCAgICAgICAgPT4gJzAuMDAnLCAgICAgICAgICAgICAgICAgICAgICAgICAjIGEgbnVtYmVyIGJldHdlZW4gMC4wMCBhbmQgMTAwLjAwCiAgICAgICAgU3RhdGVJRCAgICAgICAgICAgPT4gMSwKICAgICAgICBTdGF0ZSAgICAgICAgICAgICA9PiAnaW50ZXJuYWwgKGFnZW50KScsICAgICAgICAgICAgICMgb3IgJ2V4dGVybmFsIChjdXN0b21lciknIG9yCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICdwdWJsaWMgKGFsbCknCiAgICAgICAgU3RhdGVUeXBlSUQgICAgICAgPT4gMSwKICAgICAgICBTdGF0ZVR5cGVOYW1lICAgICA9PiAnaW50ZXJuYWwnLCAgICAgICAgICAgICAgICAgICAgICMgb3IgJ2V4dGVybmFsJyBvciAncHVibGljJwogICAgICAgIENyZWF0ZWRCeSAgICAgICAgID0+IDEsCiAgICAgICAgQ2hhbmdlZCcgICAgICAgICAgPT4gJzIwMTEtMDEtMDUgMjE6NTM6NTAnLAogICAgICAgIENoYW5nZWRCeSAgICAgICAgID0+ICcxJywKICAgICAgICBDcmVhdGVkICAgICAgICAgICA9PiAnMjAxMS0wMS0wNSAyMTo1Mzo1MCcsCiAgICAgICAgTmFtZSAgICAgICAgICAgICAgPT4gJzEyOTQyODYwMzAtMzEuMTY5NzI5NzEwNDczMicsICAjIEZBUSBBcnRpY2xlIG5hbWUgb3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgc3lzdGVtdGltZSArICctJyArIHJhbmRvbSBudW1iZXIKICAgICAgICBTZXJ2aWNlTGlzdCAgICAgICA9PiB7ICcxJyA9PiAnQ29tcHV0ZXInIH0gICAgICAgICAgICMgSGFzaCBvZiByZWxhdGVkIHNlcnZpY2VzCiAgICApOwoKPWN1dAoKc3ViIEZBUUdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgQmFja3dhcmRzIGNvbXBhdGliaWxpdHkgcmVuYW1lIGZyb20gSXRlbUlEIHRvIEZBUUlECiAgICBpZiAoICRQYXJhbXtGQVFJRH0gKSB7CiAgICAgICAgJFBhcmFte0l0ZW1JRH0gPSAkUGFyYW17RkFRSUR9OwogICAgfQoKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFVzZXJJRCBJdGVtSUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIGNhY2hlCiAgICBteSAkRmV0Y2hJdGVtRmllbGRzID0gJFBhcmFte0l0ZW1GaWVsZHN9ID8gMSA6IDA7CgogICAgbXkgJENhY2hlS2V5ID0gJ0ZBUUdldDo6SXRlbUlEOjonIC4gJFBhcmFte0l0ZW1JRH0gLiAnOjpJdGVtRmllbGRzOjonIC4gJEZldGNoSXRlbUZpZWxkczsKCiAgICBteSAkQ2FjaGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKTsKCiAgICBteSAkQ2FjaGUgPSAkQ2FjaGVPYmplY3QtPkdldCgKICAgICAgICBUeXBlID0+ICdGQVEnLAogICAgICAgIEtleSAgPT4gJENhY2hlS2V5LAogICAgKTsKCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKICAgIG15ICREQk9iamVjdCAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIHNldCAlRGF0YSBmcm9tIGNhY2hlIGlmIGFueQogICAgbXkgJURhdGE7CiAgICBpZiAoIHJlZiAkQ2FjaGUgZXEgJ0hBU0gnICkgewogICAgICAgICVEYXRhID0gJXskQ2FjaGV9OwogICAgfQoKICAgICMgb3RoZXJ3aXNlIGdldCAlRGF0YSBmcm9tIHRoZSBEQgogICAgZWxzZSB7CgogICAgICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICAgICAgU0VMRUNUIGkuZl9uYW1lLCBpLmZfbGFuZ3VhZ2VfaWQsIGkuZl9zdWJqZWN0LCBpLmNyZWF0ZWQsIGkuY3JlYXRlZF9ieSwgaS5jaGFuZ2VkLAogICAgICAgICAgICAgICAgICAgIGkuY2hhbmdlZF9ieSwgaS5jYXRlZ29yeV9pZCwgaS5zdGF0ZV9pZCwgYy5uYW1lLCBzLm5hbWUsIGwubmFtZSwgaS5mX2tleXdvcmRzLAogICAgICAgICAgICAgICAgICAgIGkuYXBwcm92ZWQsIGkudmFsaWRfaWQsIGkuY29udGVudF90eXBlLCBpLmZfbnVtYmVyLCBzdC5pZCwgc3QubmFtZQogICAgICAgICAgICAgICAgRlJPTSBmYXFfaXRlbSBpLCBmYXFfY2F0ZWdvcnkgYywgZmFxX3N0YXRlIHMsIGZhcV9zdGF0ZV90eXBlIHN0LCBmYXFfbGFuZ3VhZ2UgbAogICAgICAgICAgICAgICAgV0hFUkUgaS5zdGF0ZV9pZCA9IHMuaWQKICAgICAgICAgICAgICAgICAgICBBTkQgcy50eXBlX2lkID0gc3QuaWQKICAgICAgICAgICAgICAgICAgICBBTkQgaS5jYXRlZ29yeV9pZCA9IGMuaWQKICAgICAgICAgICAgICAgICAgICBBTkQgaS5mX2xhbmd1YWdlX2lkID0gbC5pZAogICAgICAgICAgICAgICAgICAgIEFORCBpLmlkID0gPycsCiAgICAgICAgICAgIEJpbmQgID0+IFsgXCRQYXJhbXtJdGVtSUR9IF0sCiAgICAgICAgICAgIExpbWl0ID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgd2hpbGUgKCBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CgogICAgICAgICAgICAlRGF0YSA9ICgKCiAgICAgICAgICAgICAgICAjIENvbXBhdGliaWxpdHkgSUQgbmFtZXMuCiAgICAgICAgICAgICAgICBJRCAgICA9PiAkUGFyYW17SXRlbUlEfSwKICAgICAgICAgICAgICAgIEZBUUlEID0+ICRQYXJhbXtJdGVtSUR9LAoKICAgICAgICAgICAgICAgICMgR2V0IGRhdGEgYXR0cmlidXRlcy4KICAgICAgICAgICAgICAgIEl0ZW1JRCAgICAgICAgPT4gJFBhcmFte0l0ZW1JRH0sCiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgID0+ICRSb3dbMF0sCiAgICAgICAgICAgICAgICBMYW5ndWFnZUlEICAgID0+ICRSb3dbMV0sCiAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgID0+ICRSb3dbMl0sCiAgICAgICAgICAgICAgICBDcmVhdGVkICAgICAgID0+ICRSb3dbM10sCiAgICAgICAgICAgICAgICBDcmVhdGVkQnkgICAgID0+ICRSb3dbNF0sCiAgICAgICAgICAgICAgICBDaGFuZ2VkICAgICAgID0+ICRSb3dbNV0sCiAgICAgICAgICAgICAgICBDaGFuZ2VkQnkgICAgID0+ICRSb3dbNl0sCiAgICAgICAgICAgICAgICBDYXRlZ29yeUlEICAgID0+ICRSb3dbN10sCiAgICAgICAgICAgICAgICBTdGF0ZUlEICAgICAgID0+ICRSb3dbOF0sCiAgICAgICAgICAgICAgICBDYXRlZ29yeU5hbWUgID0+ICRSb3dbOV0sCiAgICAgICAgICAgICAgICBTdGF0ZSAgICAgICAgID0+ICRSb3dbMTBdLAogICAgICAgICAgICAgICAgTGFuZ3VhZ2UgICAgICA9PiAkUm93WzExXSwKICAgICAgICAgICAgICAgIEtleXdvcmRzICAgICAgPT4gJFJvd1sxMl0sCiAgICAgICAgICAgICAgICBBcHByb3ZlZCAgICAgID0+ICRSb3dbMTNdLAogICAgICAgICAgICAgICAgVmFsaWRJRCAgICAgICA9PiAkUm93WzE0XSwKICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlICAgPT4gJFJvd1sxNV0sCiAgICAgICAgICAgICAgICBOdW1iZXIgICAgICAgID0+ICRSb3dbMTZdLAogICAgICAgICAgICAgICAgU3RhdGVUeXBlSUQgICA9PiAkUm93WzE3XSwKICAgICAgICAgICAgICAgIFN0YXRlVHlwZU5hbWUgPT4gJFJvd1sxOF0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGlmICggISVEYXRhICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTm8gc3VjaCBJdGVtSUQgJFBhcmFte0l0ZW1JRH0hIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgaWYgRkFRIGl0ZW0gZmllbGRzIGFyZSByZXF1aXJlZAogICAgICAgIGlmICgkRmV0Y2hJdGVtRmllbGRzKSB7CgogICAgICAgICAgICBmb3IgbXkgJEZpZWxkTnVtYmVyICggMSAuLiA2ICkgewoKICAgICAgICAgICAgICAgICMgc2V0IGZpZWxkIG5hbWUKICAgICAgICAgICAgICAgIG15ICRGaWVsZCA9ICJGaWVsZCRGaWVsZE51bWJlciI7CgogICAgICAgICAgICAgICAgIyBnZXQgZWFjaCBmaWVsZCBjb250ZW50CiAgICAgICAgICAgICAgICAkRGF0YXskRmllbGR9ID0gJFNlbGYtPkl0ZW1GaWVsZEdldCgKICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgRmllbGQgPT4gJEZpZWxkLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyB1cGRhdGUgbnVtYmVyCiAgICAgICAgaWYgKCAhJERhdGF7TnVtYmVyfSApIHsKCiAgICAgICAgICAgIG15ICROdW1iZXIgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1N5c3RlbUlEJykgLiAnMDAnIC4gJERhdGF7SXRlbUlEfTsKCiAgICAgICAgICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5EbygKICAgICAgICAgICAgICAgIFNRTCAgPT4gJ1VQREFURSBmYXFfaXRlbSBTRVQgZl9udW1iZXIgPSA/IFdIRVJFIGlkID0gPycsCiAgICAgICAgICAgICAgICBCaW5kID0+IFsgXCROdW1iZXIsIFwkRGF0YXtJdGVtSUR9IF0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkRGF0YXtOdW1iZXJ9ID0gJE51bWJlcjsKICAgICAgICB9CgogICAgICAgICMgZ2V0IGFsbCBjYXRlZ29yeSBsb25nIG5hbWVzCiAgICAgICAgbXkgJENhdGVnb3J5VHJlZSA9ICRTZWxmLT5DYXRlZ29yeVRyZWVMaXN0KAogICAgICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBzYXZlIHRoZSBjYXRlZ29yeSBzaG9ydCBuYW1lCiAgICAgICAgJERhdGF7Q2F0ZWdvcnlTaG9ydE5hbWV9ID0gJERhdGF7Q2F0ZWdvcnlOYW1lfTsKCiAgICAgICAgIyBnZXQgdGhlIGNhdGVnb3J5IGxvbmcgbmFtZQogICAgICAgICREYXRhe0NhdGVnb3J5TmFtZX0gPSAkQ2F0ZWdvcnlUcmVlLT57ICREYXRhe0NhdGVnb3J5SUR9IH07CgogICAgICAgICMgZ2V0IHZhbGlkIGxpc3QKICAgICAgICBteSAlVmFsaWRMaXN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZhbGlkJyktPlZhbGlkTGlzdCgpOwogICAgICAgICREYXRhe1ZhbGlkfSA9ICRWYWxpZExpc3R7ICREYXRhe1ZhbGlkSUR9IH07CiMgRkFRIFNlcnZpY2UKCiAgICAgICAgIyBnZXQgcmVsYXRlZCBzZXJ2aWNlcwogICAgICAgIG15ICRTZXJ2aWNlc1JlbGF0ZWQgPSAkU2VsZi0+RkFRU2VydmljZUdldCgKICAgICAgICAgICAgSXRlbUlEID0+ICRQYXJhbXtJdGVtSUR9LAogICAgICAgICk7CiAgICAgICAgaWYgKCRTZXJ2aWNlc1JlbGF0ZWQpIHsKICAgICAgICAgICAgZm9yIG15ICRTZXJ2aWNlIChAJFNlcnZpY2VzUmVsYXRlZCkgewogICAgICAgICAgICAgICAgJERhdGF7U2VydmljZUxpc3R9LT57ICRTZXJ2aWNlLT57J1NlcnZpY2VJRCd9IH0gPSAkU2VydmljZS0+eydOYW1lJ307CiAgICAgICAgICAgIH0KICAgICAgICB9CiMgZW8gRkFRIFNlcnZpY2UKCiAgICAgICAgIyBjYWNoZSByZXN1bHQKICAgICAgICAkQ2FjaGVPYmplY3QtPlNldCgKICAgICAgICAgICAgVHlwZSAgPT4gJ0ZBUScsCiAgICAgICAgICAgIEtleSAgID0+ICRDYWNoZUtleSwKICAgICAgICAgICAgVmFsdWUgPT4gXCVEYXRhLAogICAgICAgICAgICBUVEwgICA9PiAkU2VsZi0+e0NhY2hlVFRMfSwKICAgICAgICApOwogICAgfQoKICAgIG15ICRWb3RlRGF0YTsKICAgIGlmICggJFNlbGYtPntWb3Rpbmd9ICkgewogICAgICAgICRWb3RlRGF0YSA9ICRTZWxmLT5JdGVtVm90ZURhdGFHZXQoCiAgICAgICAgICAgIEl0ZW1JRCA9PiAkUGFyYW17SXRlbUlEfSwKICAgICAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgbnVtYmVyIG9mIGRlY2ltYWwgcGxhY2VzIGZyb20gY29uZmlnCiAgICBteSAkRGVjaW1hbFBsYWNlcyA9ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpFeHBsb3Jlcjo6SXRlbUxpc3Q6OlZvdGluZ1Jlc3VsdERlY2ltYWxQbGFjZXMnKSB8fCAwOwoKICAgICMgZm9ybWF0IHRoZSB2b3RlIHJlc3VsdAogICAgbXkgJFZvdGVSZXN1bHQgPSBzcHJpbnRmKCAiJTAuIiAuICREZWNpbWFsUGxhY2VzIC4gImYiLCAkVm90ZURhdGEtPntSZXN1bHR9IHx8IDAgKTsKCiAgICAjIGFkZCB2b3RpbmcgaW5mb3JtYXRpb24gdG8gRkFRIGl0ZW0KICAgICREYXRhe1ZvdGVSZXN1bHR9ID0gJFZvdGVSZXN1bHQ7CiAgICAkRGF0YXtWb3Rlc30gICAgICA9ICRWb3RlRGF0YS0+e1ZvdGVzfSB8fCAwOwoKICAgICMgY2hlY2sgaWYgbmVlZCB0byByZXR1cm4gRHluYW1pY0ZpZWxkcwogICAgaWYgKCAkUGFyYW17RHluYW1pY0ZpZWxkc30gKSB7CgogICAgICAgICMgZ2V0IGFsbCBkeW5hbWljIGZpZWxkcyBmb3IgdGhlIG9iamVjdCB0eXBlIEZBUQogICAgICAgIG15ICREeW5hbWljRmllbGRMaXN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpLT5EeW5hbWljRmllbGRMaXN0R2V0KAogICAgICAgICAgICBPYmplY3RUeXBlID0+ICdGQVEnCiAgICAgICAgKTsKCiAgICAgICAgRFlOQU1JQ0ZJRUxEOgogICAgICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHskRHluYW1pY0ZpZWxkTGlzdH0gKSB7CgogICAgICAgICAgICAjIHZhbGlkYXRlIGVhY2ggZHluYW1pYyBmaWVsZAogICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJER5bmFtaWNGaWVsZENvbmZpZzsKICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwogICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9OwogICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoICREeW5hbWljRmllbGRDb25maWctPntDb25maWd9ICk7CgogICAgICAgICAgICAjIGdldCB0aGUgY3VycmVudCB2YWx1ZSBmb3IgZWFjaCBkeW5hbWljIGZpZWxkCiAgICAgICAgICAgIG15ICRWYWx1ZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKS0+VmFsdWVHZXQoCiAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgIE9iamVjdElEICAgICAgICAgICA9PiAkUGFyYW17SXRlbUlEfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgc2V0IHRoZSBkeW5hbWljIGZpZWxkIG5hbWUgYW5kIHZhbHVlIGludG8gdGhlIGRhdGEgaGFzaAogICAgICAgICAgICAkRGF0YXsgJ0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0gPSAkVmFsdWU7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAlRGF0YTsKfQoKc3ViIEl0ZW1GaWVsZEdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFVzZXJJRCBJdGVtSUQgRmllbGQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIGZvciB2YWxpZCBmaWVsZCBuYW1lCiAgICBpZiAoICRQYXJhbXtGaWVsZH0gIX4gbXsgXEEgRmllbGQgWzEtNl0gXHogfW1zeGkgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJGaWVsZCAnJFBhcmFte0ZpZWxkfScgaXMgaW52YWxpZCEiLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGNoZWNrIGNhY2hlCiAgICBteSAkQ2FjaGVLZXkgPSAnSXRlbUZpZWxkR2V0OjpJdGVtSUQ6OicgLiAkUGFyYW17SXRlbUlEfTsKCiAgICBteSAkQ2FjaGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKTsKCiAgICBteSAkQ2FjaGUgPSAkQ2FjaGVPYmplY3QtPkdldCgKICAgICAgICBUeXBlID0+ICdGQVEnLAogICAgICAgIEtleSAgPT4gJENhY2hlS2V5LAogICAgKTsKCiAgICAjIGNoZWNrIGlmIGEgY2FjaGUgZW50cnkgZXhpc3RzIGZvciB0aGUgZ2l2ZW4gRmllbGQKICAgIGlmICggcmVmICRDYWNoZSBlcSAnSEFTSCcgJiYgZXhpc3RzICRDYWNoZS0+eyAkUGFyYW17RmllbGR9IH0gKSB7CgogICAgICAgIHJldHVybiAkQ2FjaGUtPnsgJFBhcmFte0ZpZWxkfSB9OwogICAgfQoKICAgICMgY3JlYXRlIGEgZmllbGQgbG9va3VwIHRhYmxlCiAgICBteSAlRmllbGRMb29rdXAgPSAoCiAgICAgICAgRmllbGQxID0+ICdmX2ZpZWxkMScsCiAgICAgICAgRmllbGQyID0+ICdmX2ZpZWxkMicsCiAgICAgICAgRmllbGQzID0+ICdmX2ZpZWxkMycsCiAgICAgICAgRmllbGQ0ID0+ICdmX2ZpZWxkNCcsCiAgICAgICAgRmllbGQ1ID0+ICdmX2ZpZWxkNScsCiAgICAgICAgRmllbGQ2ID0+ICdmX2ZpZWxkNicsCiAgICApOwoKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnU0VMRUNUICcgLiAkRmllbGRMb29rdXB7ICRQYXJhbXtGaWVsZH0gfSAuICcKICAgICAgICAgICAgRlJPTSBmYXFfaXRlbQogICAgICAgICAgICBXSEVSRSBpZCA9ID8nLAogICAgICAgIEJpbmQgID0+IFsgXCRQYXJhbXtJdGVtSUR9IF0sCiAgICAgICAgTGltaXQgPT4gMSwKICAgICk7CgogICAgbXkgJEZpZWxkOwogICAgd2hpbGUgKCBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJEZpZWxkID0gJFJvd1swXSB8fCAnJzsKICAgIH0KCiAgICBpZiAoIHJlZiAkQ2FjaGUgZXEgJ0hBU0gnICkgewoKICAgICAgICAjIENhY2hlIGZpbGUgZm9yIEl0ZW1JRCBhbHJlYWR5IGV4aXN0cywgYWRkIGZpZWxkIGRhdGEuCiAgICAgICAgJENhY2hlLT57ICRQYXJhbXtGaWVsZH0gfSA9ICRGaWVsZDsKICAgIH0KICAgIGVsc2UgewoKICAgICAgICAjIENyZWF0ZSBuZXcgY2FjaGUgZmlsZS4KICAgICAgICAkQ2FjaGUgPSB7CiAgICAgICAgICAgICRQYXJhbXtGaWVsZH0gPT4gJEZpZWxkLAogICAgICAgIH07CiAgICB9CgogICAgIyBzZXQgY2FjaGUKICAgICRDYWNoZU9iamVjdC0+U2V0KAogICAgICAgIFR5cGUgID0+ICdGQVEnLAogICAgICAgIEtleSAgID0+ICRDYWNoZUtleSwKICAgICAgICBWYWx1ZSA9PiAkQ2FjaGUsCiAgICAgICAgVFRMICAgPT4gJFNlbGYtPntDYWNoZVRUTH0sCiAgICApOwoKICAgIHJldHVybiAkRmllbGQ7Cn0KCj1oZWFkMiBGQVFBZGQoKQoKYWRkIGFuIGFydGljbGUKCiAgICBteSAkSXRlbUlEID0gJEZBUU9iamVjdC0+RkFRQWRkKAogICAgICAgIFRpdGxlICAgICAgID0+ICdTb21lIFRleHQnLAogICAgICAgIENhdGVnb3J5SUQgID0+IDEsCiAgICAgICAgU3RhdGVJRCAgICAgPT4gMSwKICAgICAgICBMYW5ndWFnZUlEICA9PiAxLAogICAgICAgIE51bWJlciAgICAgID0+ICcxMzQwMicsICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIEtleXdvcmRzICAgID0+ICdzb21lIGtleXdvcmRzJywgICMgKG9wdGlvbmFsKQogICAgICAgIEZpZWxkMSAgICAgID0+ICdTeW1wdG9tLi4uJywgICAgICMgKG9wdGlvbmFsKQogICAgICAgIEZpZWxkMiAgICAgID0+ICdQcm9ibGVtLi4uJywgICAgICMgKG9wdGlvbmFsKQogICAgICAgIEZpZWxkMyAgICAgID0+ICdTb2x1dGlvbi4uLicsICAgICMgKG9wdGlvbmFsKQogICAgICAgIEZpZWxkNCAgICAgID0+ICdGaWVsZDQuLi4nLCAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIEZpZWxkNSAgICAgID0+ICdGaWVsZDUuLi4nLCAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIEZpZWxkNiAgICAgID0+ICdDb21tZW50Li4uJywgICAgICMgKG9wdGlvbmFsKQogICAgICAgIEFwcHJvdmVkICAgID0+IDEsICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIFZhbGlkSUQgICAgID0+IDEsCiAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLCAgICAgIyBvciAndGV4dC9odG1sJwogICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICApOwoKUmV0dXJuczoKCiAgICAkSXRlbUlEID0gMzQ7Cgo9Y3V0CgpzdWIgRkFRQWRkIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJExvZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKTsKCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhDYXRlZ29yeUlEIFN0YXRlSUQgTGFuZ3VhZ2VJRCBUaXRsZSBVc2VySUQgQ29udGVudFR5cGUpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBzZXQgZGVmYXVsdCB2YWx1ZSBmb3IgVmFsaWRJRAogICAgaWYgKCAhZGVmaW5lZCAkUGFyYW17VmFsaWRJRH0gKSB7CgogICAgICAgICMgZ2V0IHRoZSB2YWxpZCBpZHMKICAgICAgICBteSBAVmFsaWRJRHMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnKS0+VmFsaWRJRHNHZXQoKTsKCiAgICAgICAgJFBhcmFte1ZhbGlkSUR9ID0gJFZhbGlkSURzWzBdOwogICAgfQoKICAgICMgY2hlY2sgbmFtZQogICAgaWYgKCAhJFBhcmFte05hbWV9ICkgewogICAgICAgICRQYXJhbXtOYW1lfSA9IHRpbWUoKSAuICctJyAuIHJhbmQoMTAwKTsKICAgIH0KCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAjIGNoZWNrIG51bWJlcgogICAgaWYgKCAhJFBhcmFte051bWJlcn0gKSB7CiAgICAgICAgJFBhcmFte051bWJlcn0gPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1N5c3RlbUlEJykgLiByYW5kKDEwMCk7CiAgICB9CgogICAgIyBjaGVjayBpZiBhcHByb3ZhbCBmZWF0dXJlIGlzIHVzZWQKICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdGQVE6OkFwcHJvdmFsUmVxdWlyZWQnKSApIHsKCiAgICAgICAgIyBjaGVjayBwZXJtaXNzaW9uCiAgICAgICAgbXkgJUdyb3VwcyA9IHJldmVyc2UgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyktPkdyb3VwTWVtYmVyTGlzdCgKICAgICAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICBUeXBlICAgPT4gJ3JvJywKICAgICAgICAgICAgUmVzdWx0ID0+ICdIQVNIJywKICAgICAgICApOwoKICAgICAgICAjIGdldCB0aGUgYXBwcm92YWwgZ3JvdXAKICAgICAgICBteSAkQXBwcm92YWxHcm91cCA9ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpBcHByb3ZhbEdyb3VwJyk7CgogICAgICAgICMgc2V0IGRlZmF1bHQgdG8gMCBpZiBhcHByb3ZlZCBwYXJhbSBpcyBub3QgZ2l2ZW4KICAgICAgICAjIG9yIGlmIHVzZXIgZG9lcyBub3QgaGF2ZSB0aGUgcmlnaHRzIHRvIGFwcHJvdmUKICAgICAgICBpZiAoICFkZWZpbmVkICRQYXJhbXtBcHByb3ZlZH0gfHwgISRHcm91cHN7JEFwcHJvdmFsR3JvdXB9ICkgewogICAgICAgICAgICAkUGFyYW17QXBwcm92ZWR9ID0gMDsKICAgICAgICB9CiAgICB9CgogICAgIyBpZiBhcHByb3ZhbCBmZWF0dXJlIGlzIG5vdCBhY3RpdmF0ZWQsIGEgbmV3IEZBUSBpdGVtIGlzIGFsd2F5cyBhcHByb3ZlZAogICAgZWxzZSB7CiAgICAgICAgJFBhcmFte0FwcHJvdmVkfSA9IDE7CiAgICB9CgogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RG8oCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgSU5TRVJUIElOVE8gZmFxX2l0ZW0KICAgICAgICAgICAgICAgIChmX251bWJlciwgZl9uYW1lLCBmX2xhbmd1YWdlX2lkLCBmX3N1YmplY3QsCiAgICAgICAgICAgICAgICBjYXRlZ29yeV9pZCwgc3RhdGVfaWQsIGZfa2V5d29yZHMsIGFwcHJvdmVkLCB2YWxpZF9pZCwgY29udGVudF90eXBlLAogICAgICAgICAgICAgICAgZl9maWVsZDEsIGZfZmllbGQyLCBmX2ZpZWxkMywgZl9maWVsZDQsIGZfZmllbGQ1LCBmX2ZpZWxkNiwKICAgICAgICAgICAgICAgIGNyZWF0ZWQsIGNyZWF0ZWRfYnksIGNoYW5nZWQsIGNoYW5nZWRfYnkpCiAgICAgICAgICAgIFZBTFVFUwogICAgICAgICAgICAgICAgKD8sID8sID8sID8sCiAgICAgICAgICAgICAgICA/LCA/LCA/LCA/LCA/LCA/LAogICAgICAgICAgICAgICAgPywgPywgPywgPywgPywgPywKICAgICAgICAgICAgICAgIGN1cnJlbnRfdGltZXN0YW1wLCA/LCBjdXJyZW50X3RpbWVzdGFtcCwgPyknLAogICAgICAgIEJpbmQgPT4gWwogICAgICAgICAgICBcJFBhcmFte051bWJlcn0sICAgICBcJFBhcmFte05hbWV9LCAgICBcJFBhcmFte0xhbmd1YWdlSUR9LCBcJFBhcmFte1RpdGxlfSwKICAgICAgICAgICAgXCRQYXJhbXtDYXRlZ29yeUlEfSwgXCRQYXJhbXtTdGF0ZUlEfSwgXCRQYXJhbXtLZXl3b3Jkc30sICAgXCRQYXJhbXtBcHByb3ZlZH0sCiAgICAgICAgICAgIFwkUGFyYW17VmFsaWRJRH0sICAgIFwkUGFyYW17Q29udGVudFR5cGV9LAogICAgICAgICAgICBcJFBhcmFte0ZpZWxkMX0sICAgICBcJFBhcmFte0ZpZWxkMn0sIFwkUGFyYW17RmllbGQzfSwKICAgICAgICAgICAgXCRQYXJhbXtGaWVsZDR9LCAgICAgXCRQYXJhbXtGaWVsZDV9LCBcJFBhcmFte0ZpZWxkNn0sCiAgICAgICAgICAgIFwkUGFyYW17VXNlcklEfSwgICAgIFwkUGFyYW17VXNlcklEfSwKICAgICAgICBdLAogICAgKTsKCiAgICAjIGJ1aWxkIFNRTCB0byBnZXQgdGhlIGlkIG9mIHRoZSBuZXdseSBpbnNlcnRlZCBGQVEgYXJ0aWNsZQogICAgbXkgJFNRTCA9ICcKICAgICAgICBTRUxFQ1QgaWQgRlJPTSBmYXFfaXRlbQogICAgICAgIFdIRVJFIGZfbnVtYmVyID0gPwogICAgICAgICAgICBBTkQgZl9uYW1lID0gPwogICAgICAgICAgICBBTkQgZl9sYW5ndWFnZV9pZCA9ID8KICAgICAgICAgICAgQU5EIGNhdGVnb3J5X2lkID0gPwogICAgICAgICAgICBBTkQgc3RhdGVfaWQgPSA/CiAgICAgICAgICAgIEFORCBhcHByb3ZlZCA9ID8KICAgICAgICAgICAgQU5EIHZhbGlkX2lkID0gPwogICAgICAgICAgICBBTkQgY3JlYXRlZF9ieSA9ID8KICAgICAgICAgICAgQU5EIGNoYW5nZWRfYnkgPSA/JzsKCiAgICAjIGhhbmRsZSB0aGUgdGl0bGUKICAgIGlmICggJFBhcmFte1RpdGxlfSApIHsKICAgICAgICAkU1FMIC49ICcKICAgICAgICAgICAgQU5EIGZfc3ViamVjdCA9ID8gJzsKICAgIH0KCiAgICAjIGFkZGl0aW9uYWwgU1FMIGZvciB0aGUgY2FzZSB0aGF0IHRoZSB0aXRsZSBpcyBhbiBlbXB0eSBzdHJpbmcKICAgICMgYW5kIHRoZSBkYXRhYmFzZSBpcyBvcmFjbGUsIHdoaWNoIHRyZWF0cyBlbXB0eSBzdHJpbmdzIGFzIE5VTEwKICAgIGVsc2UgewogICAgICAgICRTUUwgLj0gJwogICAgICAgICAgICBBTkQgKChmX3N1YmplY3QgPSA/KSBPUiAoZl9zdWJqZWN0IElTIE5VTEwpKSAnOwogICAgfQoKICAgICMgaGFuZGxlIHRoZSBrZXl3b3JkcwogICAgaWYgKCAkUGFyYW17S2V5d29yZHN9ICkgewogICAgICAgICRTUUwgLj0gJwogICAgICAgICAgICBBTkQgZl9rZXl3b3JkcyA9ID8gJzsKICAgIH0KCiAgICAjIGFkZGl0aW9uYWwgU1FMIGZvciB0aGUgY2FzZSB0aGF0IGtleXdvcmRzIGlzIGFuIGVtcHR5IHN0cmluZwogICAgIyBhbmQgdGhlIGRhdGFiYXNlIGlzIG9yYWNsZSwgd2hpY2ggdHJlYXRzIGVtcHR5IHN0cmluZ3MgYXMgTlVMTAogICAgZWxzZSB7CiAgICAgICAgJFNRTCAuPSAnCiAgICAgICAgICAgIEFORCAoKGZfa2V5d29yZHMgPSA/KSBPUiAoZl9rZXl3b3JkcyBJUyBOVUxMKSkgJzsKICAgIH0KICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgZ2V0IGlkCiAgICByZXR1cm4gaWYgISREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgID0+ICRTUUwsCiAgICAgICAgQmluZCA9PiBbCiAgICAgICAgICAgIFwkUGFyYW17TnVtYmVyfSwKICAgICAgICAgICAgXCRQYXJhbXtOYW1lfSwKICAgICAgICAgICAgXCRQYXJhbXtMYW5ndWFnZUlEfSwKICAgICAgICAgICAgXCRQYXJhbXtDYXRlZ29yeUlEfSwKICAgICAgICAgICAgXCRQYXJhbXtTdGF0ZUlEfSwKICAgICAgICAgICAgXCRQYXJhbXtBcHByb3ZlZH0sCiAgICAgICAgICAgIFwkUGFyYW17VmFsaWRJRH0sCiAgICAgICAgICAgIFwkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgXCRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICBcJFBhcmFte1RpdGxlfSwKICAgICAgICAgICAgXCRQYXJhbXtLZXl3b3Jkc30sCiAgICAgICAgXSwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICBteSAkSUQ7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkSUQgPSAkUm93WzBdOwogICAgfQoKICAgICMgdXBkYXRlIG51bWJlcgogICAgbXkgJE51bWJlciA9ICRDb25maWdPYmplY3QtPkdldCgnU3lzdGVtSUQnKSAuICcwMCcgLiAkSUQ7CgogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPkRvKAogICAgICAgIFNRTCAgPT4gJ1VQREFURSBmYXFfaXRlbSBTRVQgZl9udW1iZXIgPSA/IFdIRVJFIGlkID0gPycsCiAgICAgICAgQmluZCA9PiBbIFwkTnVtYmVyLCBcJElEIF0sCiAgICApOwoKICAgICMgYWRkIGhpc3RvcnkKICAgICRTZWxmLT5GQVFIaXN0b3J5QWRkKAogICAgICAgIE5hbWUgICA9PiAnQ3JlYXRlZCcsCiAgICAgICAgSXRlbUlEID0+ICRJRCwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwojIEZBUSBTZXJ2aWNlCgogICAgIyBhZGQgc2VydmljZXMKCiAgICBpZiAoICRQYXJhbXtTZXJ2aWNlSUR9ICkgewogICAgICAgIGZvciBteSAkU2VydmljZUlEICggQHsgJFBhcmFte1NlcnZpY2VJRH0gfSApIHsKICAgICAgICAgICAgbXkgJEFkZFN1Y2Nlc3MgPSAkU2VsZi0+RkFRU2VydmljZUFkZCgKICAgICAgICAgICAgICAgIEl0ZW1JRCAgICA9PiAkSUQsCiAgICAgICAgICAgICAgICBTZXJ2aWNlSUQgPT4gJFNlcnZpY2VJRCwKICAgICAgICAgICAgICAgIE5hbWUgICAgICA9PiAkUGFyYW17U2VydmljZUxpc3R9LT57JFNlcnZpY2VJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQojIEVPIEZBUSBTZXJ2aWNlCgogICAgIyBjaGVjayBpZiBhcHByb3ZhbCBmZWF0dXJlIGlzIGVuYWJsZWQKICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdGQVE6OkFwcHJvdmFsUmVxdWlyZWQnKSAmJiAhJFBhcmFte0FwcHJvdmVkfSApIHsKCiAgICAgICAgbXkgJEFwcHJvdmFsUmVxdWlyZWQgICAgICAgID0gMTsKICAgICAgICBteSAkQXBwcm92YWxJbmNsdWRlSW50ZXJuYWwgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6QXBwcm92YWw6OkluY2x1ZGVJbnRlcm5hbCcpOwoKICAgICAgICBpZiAoICEkQXBwcm92YWxJbmNsdWRlSW50ZXJuYWwgKSB7CiAgICAgICAgICAgIG15ICVJbnRlcm5hbFN0YXRlID0gJFNlbGYtPlN0YXRlTGlzdCgKICAgICAgICAgICAgICAgIFR5cGVzICA9PiBbJ2ludGVybmFsJ10sCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGlmICggJEludGVybmFsU3RhdGV7ICRQYXJhbXtTdGF0ZUlEfSB9ICkgewogICAgICAgICAgICAgICAgJEFwcHJvdmFsUmVxdWlyZWQgPSAwOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGNyZWF0ZSBuZXcgYXBwcm92YWwgdGlja2V0CiAgICAgICAgaWYgKCAkQXBwcm92YWxSZXF1aXJlZCApIHsKICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkU2VsZi0+X0ZBUUFwcHJvdmFsVGlja2V0Q3JlYXRlKAogICAgICAgICAgICAgICAgSXRlbUlEICAgICA9PiAkSUQsCiAgICAgICAgICAgICAgICBDYXRlZ29yeUlEID0+ICRQYXJhbXtDYXRlZ29yeUlEfSwKICAgICAgICAgICAgICAgIExhbmd1YWdlSUQgPT4gJFBhcmFte0xhbmd1YWdlSUR9LAogICAgICAgICAgICAgICAgRkFRTnVtYmVyICA9PiAkTnVtYmVyLAogICAgICAgICAgICAgICAgVGl0bGUgICAgICA9PiAkUGFyYW17VGl0bGV9LAogICAgICAgICAgICAgICAgU3RhdGVJRCAgICA9PiAkUGFyYW17U3RhdGVJRH0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgICAgICBpZiAoICEkU3VjY2VzcyApIHsKICAgICAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdDb3VsZCBub3QgY3JlYXRlIGFwcHJvdmFsIHRpY2tldCEnLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIENsZWFudXAgdGhlIGNhY2hlIGZvciAnRkFRS2V5d29yZEFydGljbGVMaXN0JyBhbmQgdGhlIHJ1bnRpbWUgY2FjaGUuCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+Q2xlYW5VcCgKICAgICAgICBUeXBlID0+ICdGQVFLZXl3b3JkQXJ0aWNsZUxpc3QnLAogICAgKTsKCiAgICAjIENsZWFudXAgdGhlIHJ1bnRpbWUgY2FjaGUgZnJvbSB0aGUgRkFRL0NhdGVnb3J5LnBtLgogICAgZGVsZXRlICRTZWxmLT57Q2FjaGV9OwoKICAgIHJldHVybiAkSUQ7Cn0KCj1oZWFkMiBGQVFVcGRhdGUoKQoKdXBkYXRlIGFuIGFydGljbGUKCiAgIG15ICRTdWNjZXNzID0gJEZBUU9iamVjdC0+RkFRVXBkYXRlKAogICAgICAgIEl0ZW1JRCAgICAgID0+IDEyMywKICAgICAgICBDYXRlZ29yeUlEICA9PiAxLAogICAgICAgIFN0YXRlSUQgICAgID0+IDEsCiAgICAgICAgTGFuZ3VhZ2VJRCAgPT4gMSwKICAgICAgICBBcHByb3ZlZCAgICA9PiAxLAogICAgICAgIFZhbGlkSUQgICAgID0+IDEsCiAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhbicsICAgICAjIG9yICd0ZXh0L2h0bWwnCiAgICAgICAgVGl0bGUgICAgICAgPT4gJ1NvbWUgVGV4dCcsCiAgICAgICAgRmllbGQxICAgICAgPT4gJ1Byb2JsZW0uLi4nLAogICAgICAgIEZpZWxkMiAgICAgID0+ICdTb2x1dGlvbi4uLicsCiAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICAgICBBcHByb3ZhbE9mZiA9PiAxLCAgICAgICAgICAgICAgICMgb3B0aW9uYWwsIChpZiBzZXQgdG8gMSBhcHByb3ZhbCBpcyBpZ25vcmVkLiBUaGlzIGlzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgaW1wb3J0YW50IHdoZW4gY2FsbGVkIGZyb20gRkFRSW5saW5lQXR0YWNobWVudFVSTFVwZGF0ZSkKICAgICk7CgpSZXR1cm5zOgoKICAgICRTdWNjZXNzID0gMSA7ICAgICAgICAgICMgb3IgdW5kZWYgaWYgY2FuJ3QgdXBkYXRlIHRoZSBGQVEgYXJ0aWNsZQoKPWN1dAoKc3ViIEZBUVVwZGF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KEl0ZW1JRCBDYXRlZ29yeUlEIFN0YXRlSUQgTGFuZ3VhZ2VJRCBUaXRsZSBVc2VySUQgQ29udGVudFR5cGUpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBteSAlRkFRRGF0YSA9ICRTZWxmLT5GQVFHZXQoCiAgICAgICAgSXRlbUlEICAgICA9PiAkUGFyYW17SXRlbUlEfSwKICAgICAgICBJdGVtRmllbGRzID0+IDAsCiAgICAgICAgVXNlcklEICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBpZiBubyBuYW1lIHdhcyBnaXZlbiB1c2Ugb2xkIG5hbWUgZnJvbSBGQVEKICAgIGlmICggISRQYXJhbXtOYW1lfSApIHsKICAgICAgICAkUGFyYW17TmFtZX0gPSAkRkFRRGF0YXtOYW1lfTsKICAgIH0KCiAgICAjIHNldCBkZWZhdWx0IHZhbHVlIGZvciBWYWxpZElECiAgICBpZiAoICFkZWZpbmVkICRQYXJhbXtWYWxpZElEfSApIHsKICAgICAgICAkUGFyYW17VmFsaWRJRH0gPSAkRkFRRGF0YXtWYWxpZElEfTsKICAgIH0KIyBGQVEgU2VydmljZXMKCiAgICBteSAkU2VydmljZXNJbkRCID0gJFNlbGYtPkZBUVNlcnZpY2VHZXQoCiAgICAgICAgSXRlbUlEID0+ICRQYXJhbXtJdGVtSUR9LAogICAgKTsKCiAgICBteSAlU2VydmljZXNJbkRCOwogICAgbWFwIHsgJFNlcnZpY2VzSW5EQnsgJF8tPntTZXJ2aWNlSUR9IH0rKyB9IEB7JFNlcnZpY2VzSW5EQn07CgogICAgbXkgJFNlcnZpY2VzQ2hhbmdlZCA9IDA7CiAgICBpZiAoICRQYXJhbXtTZXJ2aWNlSUR9ICkgewogICAgICAgIFNFUlZJQ0VJRDogZm9yIG15ICRTZXJ2aWNlSUQgKCBAeyAkUGFyYW17U2VydmljZUlEfSB9ICkgewogICAgICAgICAgICBpZiAoIGV4aXN0cyAkU2VydmljZXNJbkRCeyRTZXJ2aWNlSUR9ICkgewogICAgICAgICAgICAgICAgZGVsZXRlICRTZXJ2aWNlc0luREJ7JFNlcnZpY2VJRH07CiAgICAgICAgICAgICAgICBuZXh0IFNFUlZJQ0VJRDsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIG15ICRBZGRTdWNjZXNzID0gJFNlbGYtPkZBUVNlcnZpY2VBZGQoCiAgICAgICAgICAgICAgICAgICAgSXRlbUlEICAgID0+ICRQYXJhbXtJdGVtSUR9LAogICAgICAgICAgICAgICAgICAgIFNlcnZpY2VJRCA9PiAkU2VydmljZUlELAogICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICA9PiAkUGFyYW17U2VydmljZUxpc3R9LT57JFNlcnZpY2VJRH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJFNlcnZpY2VzQ2hhbmdlZCsrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgZm9yIG15ICRTZXJ2aWNlSUQgKCBrZXlzICVTZXJ2aWNlc0luREIgKSB7CiAgICAgICAgbXkgJERlbGV0ZVN1Y2Nlc3MgPSAkU2VsZi0+RkFRU2VydmljZURlbGV0ZSgKICAgICAgICAgICAgSXRlbUlEICAgID0+ICRQYXJhbXtJdGVtSUR9LAogICAgICAgICAgICBTZXJ2aWNlSUQgPT4gJFNlcnZpY2VJRCwKICAgICAgICApOwogICAgICAgICRTZXJ2aWNlc0NoYW5nZWQrKzsKICAgIH0KCiAgICAjIGRlbGV0ZSBjYWNoZQogICAgaWYgKCRTZXJ2aWNlc0NoYW5nZWQpIHsKICAgICAgICAkU2VsZi0+X0RlbGV0ZUZyb21GQVFDYWNoZSglUGFyYW0pOwogICAgfQojIGVvIEZBUSBTZXJ2aWNlcwoKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFVQREFURSBmYXFfaXRlbSBTRVQKICAgICAgICAgICAgICAgIGZfbmFtZSA9ID8sIGZfbGFuZ3VhZ2VfaWQgPSA/LCBmX3N1YmplY3QgPSA/LCBjYXRlZ29yeV9pZCA9ID8sCiAgICAgICAgICAgICAgICBzdGF0ZV9pZCA9ID8sIGZfa2V5d29yZHMgPSA/LCB2YWxpZF9pZCA9ID8sIGNvbnRlbnRfdHlwZSA9ID8sCiAgICAgICAgICAgICAgICBmX2ZpZWxkMSA9ID8sIGZfZmllbGQyID0gPywKICAgICAgICAgICAgICAgIGZfZmllbGQzID0gPywgZl9maWVsZDQgPSA/LAogICAgICAgICAgICAgICAgZl9maWVsZDUgPSA/LCBmX2ZpZWxkNiA9ID8sCiAgICAgICAgICAgICAgICBjaGFuZ2VkID0gY3VycmVudF90aW1lc3RhbXAsCiAgICAgICAgICAgICAgICBjaGFuZ2VkX2J5ID0gPwogICAgICAgICAgICBXSEVSRSBpZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWwogICAgICAgICAgICBcJFBhcmFte05hbWV9LCAgICBcJFBhcmFte0xhbmd1YWdlSUR9LCBcJFBhcmFte1RpdGxlfSwgICBcJFBhcmFte0NhdGVnb3J5SUR9LAogICAgICAgICAgICBcJFBhcmFte1N0YXRlSUR9LCBcJFBhcmFte0tleXdvcmRzfSwgICBcJFBhcmFte1ZhbGlkSUR9LCBcJFBhcmFte0NvbnRlbnRUeXBlfSwKICAgICAgICAgICAgXCRQYXJhbXtGaWVsZDF9LCAgXCRQYXJhbXtGaWVsZDJ9LAogICAgICAgICAgICBcJFBhcmFte0ZpZWxkM30sICBcJFBhcmFte0ZpZWxkNH0sCiAgICAgICAgICAgIFwkUGFyYW17RmllbGQ1fSwgIFwkUGFyYW17RmllbGQ2fSwKICAgICAgICAgICAgXCRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICBcJFBhcmFte0l0ZW1JRH0sCiAgICAgICAgXSwKICAgICk7CgogICAgIyBkZWxldGUgY2FjaGUKICAgICRTZWxmLT5fRGVsZXRlRnJvbUZBUUNhY2hlKCVQYXJhbSk7CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyB1cGRhdGUgYXBwcm92YWwKICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdGQVE6OkFwcHJvdmFsUmVxdWlyZWQnKSAmJiAhJFBhcmFte0FwcHJvdmFsT2ZmfSApIHsKCiAgICAgICAgIyBjaGVjayBwZXJtaXNzaW9uCiAgICAgICAgbXkgJUdyb3VwcyA9IHJldmVyc2UgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyktPkdyb3VwTWVtYmVyTGlzdCgKICAgICAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICBUeXBlICAgPT4gJ3JvJywKICAgICAgICAgICAgUmVzdWx0ID0+ICdIQVNIJywKICAgICAgICApOwoKICAgICAgICAjIGdldCB0aGUgYXBwcm92YWwgZ3JvdXAKICAgICAgICBteSAkQXBwcm92YWxHcm91cCA9ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpBcHByb3ZhbEdyb3VwJyk7CgogICAgICAgICMgc2V0IGFwcHJvdmFsIHRvIDAgaWYgdXNlciBkb2VzIG5vdCBoYXZlIHRoZSByaWdodHMgdG8gYXBwcm92ZQogICAgICAgIGlmICggISRHcm91cHN7JEFwcHJvdmFsR3JvdXB9ICkgewogICAgICAgICAgICAkUGFyYW17QXBwcm92ZWR9ID0gMDsKICAgICAgICB9CgogICAgICAgICMgdXBkYXRlIHRoZSBhcHByb3ZhbAogICAgICAgIG15ICRVcGRhdGVTdWNjZXNzID0gJFNlbGYtPl9GQVFBcHByb3ZhbFVwZGF0ZSgKICAgICAgICAgICAgSXRlbUlEICAgPT4gJFBhcmFte0l0ZW1JRH0sCiAgICAgICAgICAgIEFwcHJvdmVkID0+ICRQYXJhbXtBcHByb3ZlZH0gfHwgMCwKICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgICAgICBpZiAoICEkVXBkYXRlU3VjY2VzcyApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkNvdWxkIG5vdCB1cGRhdGUgYXBwcm92YWwgZm9yIEl0ZW1JRCAkUGFyYW17SXRlbUlEfSEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgIyBkZWxldGUgY2FjaGUKICAgICAgICAkU2VsZi0+X0RlbGV0ZUZyb21GQVFDYWNoZSglUGFyYW0pOwogICAgfQoKICAgICMgY2hlY2sgaWYgaGlzdG9yeSBlbnRyeSBzaG91bGQgYmUgYWRkZWQKICAgIHJldHVybiAxIGlmICRQYXJhbXtIaXN0b3J5T2ZmfTsKCiAgICAjIHdyaXRlIGhpc3RvcnkgZW50cnkKICAgICRTZWxmLT5GQVFIaXN0b3J5QWRkKAogICAgICAgIE5hbWUgICA9PiAnVXBkYXRlZCcsCiAgICAgICAgSXRlbUlEID0+ICRQYXJhbXtJdGVtSUR9LAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBBdHRhY2htZW50QWRkKCkKCmFkZCBhcnRpY2xlIGF0dGFjaG1lbnRzLCByZXR1cm5zIHRoZSBhdHRhY2htZW50IGlkCgogICAgbXkgJEF0dGFjaG1lbnRJRCA9ICRGQVFPYmplY3QtPkF0dGFjaG1lbnRBZGQoCiAgICAgICAgSXRlbUlEICAgICAgPT4gMTIzLAogICAgICAgIENvbnRlbnQgICAgID0+ICRDb250ZW50LAogICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3htbCcsCiAgICAgICAgRmlsZW5hbWUgICAgPT4gJ3NvbWVuYW1lLnhtbCcsCiAgICAgICAgSW5saW5lICAgICAgPT4gMSwgICAoMHwxLCBkZWZhdWx0IDApCiAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICk7CgpSZXR1cm5zOgoKICAgICRBdHRhY2htZW50SUQgPSAxMjMgOyAgICAgICAgICAgICAgICMgb3IgdW5kZWYgaWYgY2FuJ3QgYWRkIHRoZSBhdHRhY2htZW50Cgo9Y3V0CgpzdWIgQXR0YWNobWVudEFkZCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KEl0ZW1JRCBDb250ZW50IENvbnRlbnRUeXBlIEZpbGVuYW1lIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgc2V0IGRlZmF1bHQKICAgIGlmICggISRQYXJhbXtJbmxpbmV9ICkgewogICAgICAgICRQYXJhbXtJbmxpbmV9ID0gMDsKICAgIH0KCiAgICAjIGdldCBhdHRhY2htZW50IHNpemUKICAgIHsKICAgICAgICB1c2UgYnl0ZXM7CiAgICAgICAgJFBhcmFte0ZpbGVzaXplfSA9IGxlbmd0aCAkUGFyYW17Q29udGVudH07CiAgICAgICAgbm8gYnl0ZXM7CiAgICB9CgogICAgIyBnZXQgYWxsIGV4aXN0aW5nIGF0dGFjaG1lbnRzCiAgICBteSBASW5kZXggPSAkU2VsZi0+QXR0YWNobWVudEluZGV4KAogICAgICAgIEl0ZW1JRCA9PiAkUGFyYW17SXRlbUlEfSwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgZ2V0IHRoZSBmaWxlbmFtZQogICAgbXkgJE5ld0ZpbGVOYW1lID0gJFBhcmFte0ZpbGVuYW1lfTsKCiAgICAjIGJ1aWxkIGEgbG9va3VwIGhhc2ggb2YgYWxsIGV4aXN0aW5nIGZpbGUgbmFtZXMKICAgIG15ICVVc2VkRmlsZTsKICAgIGZvciBteSAkRmlsZSAoQEluZGV4KSB7CiAgICAgICAgJFVzZWRGaWxleyAkRmlsZS0+e0ZpbGVuYW1lfSB9ID0gMTsKICAgIH0KCiAgICAjIHRyeSB0byBtb2RpZnkgdGhlIHRoZSBmaWxlIG5hbWUgYnkgYWRkaW5nIGEgbnVtYmVyIGlmIGl0IGV4aXN0cyBhbHJlYWR5CiAgICBteSAkQ291bnQgPSAwOwogICAgd2hpbGUgKCAkQ291bnQgPCA1MCApIHsKCiAgICAgICAgIyBpbmNyZWFzZSBjb3VudGVyCiAgICAgICAgJENvdW50Kys7CgogICAgICAgICMgaWYgdGhlIGZpbGUgbmFtZSBleGlzdHMKICAgICAgICBpZiAoIGV4aXN0cyAkVXNlZEZpbGV7JE5ld0ZpbGVOYW1lfSApIHsKCiAgICAgICAgICAgICMgZmlsZW5hbWUgaGFzIGEgZmlsZSBuYW1lIGV4dGVuc2lvbiAoZS5nLiB0ZXN0LmpwZykKICAgICAgICAgICAgaWYgKCAkUGFyYW17RmlsZW5hbWV9ID1+IG17IFxBICguKikgXC4gKC4rPykgXHogfXhtcyApIHsKICAgICAgICAgICAgICAgICROZXdGaWxlTmFtZSA9ICIkMS0kQ291bnQuJDIiOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJE5ld0ZpbGVOYW1lID0gIiRQYXJhbXtGaWxlbmFtZX0tJENvdW50IjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIHN0b3JlIHRoZSBuZXcgZmlsZW5hbWUKICAgICRQYXJhbXtGaWxlbmFtZX0gPSAkTmV3RmlsZU5hbWU7CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGVuY29kZSBhdHRhY2htZW50IGlmIGl0J3MgYSBwb3N0Z3Jlc3FsIGJhY2tlbmQhISEKICAgIGlmICggISREQk9iamVjdC0+R2V0RGF0YWJhc2VGdW5jdGlvbignRGlyZWN0QmxvYicpICkgewoKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RW5jb2RlJyktPkVuY29kZU91dHB1dCggXCRQYXJhbXtDb250ZW50fSApOwoKICAgICAgICAkUGFyYW17Q29udGVudH0gPSBNSU1FOjpCYXNlNjQ6OmVuY29kZV9iYXNlNjQoICRQYXJhbXtDb250ZW50fSApOwogICAgfQoKICAgICMgd3JpdGUgYXR0YWNobWVudCB0byBkYgogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPkRvKAogICAgICAgIFNRTCA9PiAnSU5TRVJUIElOVE8gZmFxX2F0dGFjaG1lbnQgJyAuCiAgICAgICAgICAgICcgKGZhcV9pZCwgZmlsZW5hbWUsIGNvbnRlbnRfdHlwZSwgY29udGVudF9zaXplLCBjb250ZW50LCBpbmxpbmVhdHRhY2htZW50LCAnIC4KICAgICAgICAgICAgJyBjcmVhdGVkLCBjcmVhdGVkX2J5LCBjaGFuZ2VkLCBjaGFuZ2VkX2J5KSBWQUxVRVMgJyAuCiAgICAgICAgICAgICcgKD8sID8sID8sID8sID8sID8sIGN1cnJlbnRfdGltZXN0YW1wLCA/LCBjdXJyZW50X3RpbWVzdGFtcCwgPyknLAogICAgICAgIEJpbmQgPT4gWwogICAgICAgICAgICBcJFBhcmFte0l0ZW1JRH0sICBcJFBhcmFte0ZpbGVuYW1lfSwgXCRQYXJhbXtDb250ZW50VHlwZX0sIFwkUGFyYW17RmlsZXNpemV9LAogICAgICAgICAgICBcJFBhcmFte0NvbnRlbnR9LCBcJFBhcmFte0lubGluZX0sICAgXCRQYXJhbXtVc2VySUR9LCAgICAgIFwkUGFyYW17VXNlcklEfSwKICAgICAgICBdLAogICAgKTsKCiAgICAjIGdldCB0aGUgYXR0YWNobWVudCBpZAogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICdTRUxFQ1QgaWQgJwogICAgICAgICAgICAuICdGUk9NIGZhcV9hdHRhY2htZW50ICcKICAgICAgICAgICAgLiAnV0hFUkUgZmFxX2lkID0gPyBBTkQgZmlsZW5hbWUgPSA/ICcKICAgICAgICAgICAgLiAnQU5EIGNvbnRlbnRfdHlwZSA9ID8gQU5EIGNvbnRlbnRfc2l6ZSA9ID8gJwogICAgICAgICAgICAuICdBTkQgaW5saW5lYXR0YWNobWVudCA9ID8gJwogICAgICAgICAgICAuICdBTkQgY3JlYXRlZF9ieSA9ID8gQU5EIGNoYW5nZWRfYnkgPSA/JywKICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgXCRQYXJhbXtJdGVtSUR9LCBcJFBhcmFte0ZpbGVuYW1lfSwgXCRQYXJhbXtDb250ZW50VHlwZX0sIFwkUGFyYW17RmlsZXNpemV9LAogICAgICAgICAgICBcJFBhcmFte0lubGluZX0sIFwkUGFyYW17VXNlcklEfSwgICBcJFBhcmFte1VzZXJJRH0sCiAgICAgICAgXSwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICBteSAkQXR0YWNobWVudElEOwogICAgd2hpbGUgKCBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJEF0dGFjaG1lbnRJRCA9ICRSb3dbMF07CiAgICB9CgogICAgcmV0dXJuICRBdHRhY2htZW50SUQ7Cn0KCj1oZWFkMiBBdHRhY2htZW50R2V0KCkKCmdldCBhdHRhY2htZW50IG9mIGFydGljbGUKCiAgICBteSAlRmlsZSA9ICRGQVFPYmplY3QtPkF0dGFjaG1lbnRHZXQoCiAgICAgICAgSXRlbUlEID0+IDEyMywKICAgICAgICBGaWxlSUQgPT4gMSwKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CgpSZXR1cm5zOgoKICAgICVGaWxlID0gKAogICAgICAgIEZpbGVzaXplICAgID0+ICc1NDAyODYnLCAgICAgICAgICAgICAgICAjIGZpbGUgc2l6ZSBpbiBieXRlcwogICAgICAgIENvbnRlbnRUeXBlID0+ICdpbWFnZS9qcGVnJywKICAgICAgICBGaWxlbmFtZSAgICA9PiAnRXJyb3IuanBnJywKICAgICAgICBDb250ZW50ICAgICA9PiAnLi4uJyAgICAgICAgICAgICAgICAgICAgIyBmaWxlIGJpbmFyeSBjb250ZW50CiAgICApOwoKPWN1dAoKc3ViIEF0dGFjaG1lbnRHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhJdGVtSUQgRmlsZUlEIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICFkZWZpbmVkICRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICdTRUxFQ1QgZmlsZW5hbWUsIGNvbnRlbnRfdHlwZSwgY29udGVudF9zaXplLCBjb250ZW50ICcKICAgICAgICAgICAgLiAnRlJPTSBmYXFfYXR0YWNobWVudCAnCiAgICAgICAgICAgIC4gJ1dIRVJFIGlkID0gPyBBTkQgZmFxX2lkID0gPyAnCiAgICAgICAgICAgIC4gJ09SREVSIEJZIGNyZWF0ZWQnLAogICAgICAgIEJpbmQgICA9PiBbIFwkUGFyYW17RmlsZUlEfSwgXCRQYXJhbXtJdGVtSUR9IF0sCiAgICAgICAgRW5jb2RlID0+IFsgMSwgMSwgMSwgMCBdLAogICAgICAgIExpbWl0ICA9PiAxLAogICAgKTsKCiAgICBteSAlRmlsZTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewoKICAgICAgICAjIGRlY29kZSBhdHRhY2htZW50IGlmIGl0J3MgYSBwb3N0Z3Jlc3FsIGJhY2tlbmQgYW5kIG5vdCBCTE9CCiAgICAgICAgaWYgKCAhJERCT2JqZWN0LT5HZXREYXRhYmFzZUZ1bmN0aW9uKCdEaXJlY3RCbG9iJykgKSB7CiAgICAgICAgICAgICRSb3dbM10gPSBNSU1FOjpCYXNlNjQ6OmRlY29kZV9iYXNlNjQoICRSb3dbM10gKTsKICAgICAgICB9CgogICAgICAgICRGaWxle0ZpbGVuYW1lfSAgICA9ICRSb3dbMF07CiAgICAgICAgJEZpbGV7Q29udGVudFR5cGV9ID0gJFJvd1sxXTsKICAgICAgICAkRmlsZXtGaWxlc2l6ZX0gICAgPSAkUm93WzJdOwogICAgICAgICRGaWxle0NvbnRlbnR9ICAgICA9ICRSb3dbM107CiAgICB9CgogICAgcmV0dXJuICVGaWxlOwp9Cgo9aGVhZDIgQXR0YWNobWVudERlbGV0ZSgpCgpkZWxldGUgYXR0YWNobWVudCBvZiBhcnRpY2xlCgogICAgbXkgJFN1Y2Nlc3MgPSAkRkFRT2JqZWN0LT5BdHRhY2htZW50RGVsZXRlKAogICAgICAgIEl0ZW1JRCA9PiAxMjMsCiAgICAgICAgRmlsZUlEID0+IDEsCiAgICAgICAgVXNlcklEID0+IDEsCiAgICApOwoKUmV0dXJuczoKCiAgICAkU3VjY2VzcyA9IDEgOyAgICAgICAgICAgICAgIyBvciB1bmRlZiBpZiBhdHRhY2htZW50IGNvdWxkIG5vdCBiZSBkZWxldGVkCgo9Y3V0CgpzdWIgQXR0YWNobWVudERlbGV0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KEl0ZW1JRCBGaWxlSUQgVXNlcklEKSkgewogICAgICAgIGlmICggIWRlZmluZWQgJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICBTUUwgID0+ICdERUxFVEUgRlJPTSBmYXFfYXR0YWNobWVudCBXSEVSRSBpZCA9ID8gQU5EIGZhcV9pZCA9ID8gJywKICAgICAgICBCaW5kID0+IFsgXCRQYXJhbXtGaWxlSUR9LCBcJFBhcmFte0l0ZW1JRH0gXSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBBdHRhY2htZW50SW5kZXgoKQoKcmV0dXJuIGFuIGF0dGFjaG1lbnQgaW5kZXggb2YgYW4gYXJ0aWNsZQoKICAgIG15IEBJbmRleCA9ICRGQVFPYmplY3QtPkF0dGFjaG1lbnRJbmRleCgKICAgICAgICBJdGVtSUQgICAgID0+IDEyMywKICAgICAgICBTaG93SW5saW5lID0+IDAsICAgKCAwfDEsIGRlZmF1bHQgMSkKICAgICAgICBVc2VySUQgICAgID0+IDEsCiAgICApOwoKUmV0dXJuczoKCiAgICBASW5kZXggPSAoCiAgICAgICAgewogICAgICAgICAgICBGaWxlc2l6ZSAgICA9PiAnNTI3LjYgS0J5dGVzJywKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ2ltYWdlL2pwZWcnLAogICAgICAgICAgICBGaWxlbmFtZSAgICA9PiAnRXJyb3IuanBnJywKICAgICAgICAgICAgRmlsZXNpemVSYXcgPT4gNTQwMjg2LAogICAgICAgICAgICBGaWxlSUQgICAgICA9PiA2LAogICAgICAgICAgICBJbmxpbmUgICAgICA9PiAwLAogICAgICAgIH0sCiAgICAgICAgeywKICAgICAgICAgICAgRmlsZXNpemUgPT4gJzQzMC4wIEtCeXRlcycsCiAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICdpbWFnZS9qcGVnJywKICAgICAgICAgICAgRmlsZW5hbWUgPT4gJ1NvbHV0aW9uLmpwZycsCiAgICAgICAgICAgIEZpbGVzaXplUmF3ID0+IDQ0MDI4NiwKICAgICAgICAgICAgRmlsZUlEID0+IDUsCiAgICAgICAgICAgIElubGluZSA9PiAxLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBGaWxlc2l6ZSA9PiAnMjk2IEJ5dGVzJywKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICBGaWxlbmFtZSA9PiAnQWRkaXRpb25hbENvbW1lbnRzLnR4dCcsCiAgICAgICAgICAgIEZpbGVzaXplUmF3ID0+IDI5NiwKICAgICAgICAgICAgRmlsZUlEID0+IDcsCiAgICAgICAgICAgIElubGluZSA9PiAwLAogICAgICAgIH0sCiAgICApOwoKPWN1dAoKc3ViIEF0dGFjaG1lbnRJbmRleCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KEl0ZW1JRCBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnU0VMRUNUIGlkLCBmaWxlbmFtZSwgY29udGVudF90eXBlLCBjb250ZW50X3NpemUsIGlubGluZWF0dGFjaG1lbnQgJwogICAgICAgICAgICAuICdGUk9NIGZhcV9hdHRhY2htZW50ICcKICAgICAgICAgICAgLiAnV0hFUkUgZmFxX2lkID0gPyAnCiAgICAgICAgICAgIC4gJ09SREVSIEJZIGZpbGVuYW1lJywKICAgICAgICBCaW5kICA9PiBbIFwkUGFyYW17SXRlbUlEfSBdLAogICAgICAgIExpbWl0ID0+IDEwMCwKICAgICk7CgogICAgbXkgQEluZGV4OwogICAgQVRUQUNITUVOVDoKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewoKICAgICAgICBteSAkSUQgICAgICAgICAgPSAkUm93WzBdOwogICAgICAgIG15ICRGaWxlbmFtZSAgICA9ICRSb3dbMV07CiAgICAgICAgbXkgJENvbnRlbnRUeXBlID0gJFJvd1syXTsKICAgICAgICBteSAkRmlsZXNpemUgICAgPSAkUm93WzNdOwogICAgICAgIG15ICRJbmxpbmUgICAgICA9ICRSb3dbNF07CgogICAgICAgICMgZG8gbm90IHNob3cgaW5saW5lIGF0dGFjaG1lbnRzCiAgICAgICAgaWYgKCBkZWZpbmVkICRQYXJhbXtTaG93SW5saW5lfSAmJiAhJFBhcmFte1Nob3dJbmxpbmV9ICYmICRJbmxpbmUgKSB7CiAgICAgICAgICAgIG5leHQgQVRUQUNITUVOVDsKICAgICAgICB9CgogICAgICAgICMgY29udmVydCB0byBodW1hbiByZWFkYWJsZSBmaWxlIHNpemUKICAgICAgICBteSAkRmlsZVNpemVSYXcgPSAkRmlsZXNpemU7CiAgICAgICAgaWYgKCRGaWxlc2l6ZSkgewogICAgICAgICAgICBpZiAoICRGaWxlc2l6ZSA+ICggMTAyNCAqIDEwMjQgKSApIHsKICAgICAgICAgICAgICAgICRGaWxlc2l6ZSA9IHNwcmludGYgIiUuMWYgTUJ5dGVzIiwgKCAkRmlsZXNpemUgLyAoIDEwMjQgKiAxMDI0ICkgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRGaWxlc2l6ZSA+IDEwMjQgKSB7CiAgICAgICAgICAgICAgICAkRmlsZXNpemUgPSBzcHJpbnRmICIlLjFmIEtCeXRlcyIsICggKCAkRmlsZXNpemUgLyAxMDI0ICkgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRGaWxlc2l6ZSA9ICRGaWxlc2l6ZSAuICcgQnl0ZXMnOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBwdXNoIEBJbmRleCwgewogICAgICAgICAgICBGaWxlSUQgICAgICA9PiAkSUQsCiAgICAgICAgICAgIEZpbGVuYW1lICAgID0+ICRGaWxlbmFtZSwKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJENvbnRlbnRUeXBlLAogICAgICAgICAgICBGaWxlc2l6ZSAgICA9PiAkRmlsZXNpemUsCiAgICAgICAgICAgIEZpbGVzaXplUmF3ID0+ICRGaWxlU2l6ZVJhdywKICAgICAgICAgICAgSW5saW5lICAgICAgPT4gJElubGluZSwKICAgICAgICB9OwogICAgfQoKICAgIHJldHVybiBASW5kZXg7Cn0KCj1oZWFkMiBGQVFDb3VudCgpCgpDb3VudCB0aGUgbnVtYmVyIG9mIGFydGljbGVzIGZvciBhIGRlZmluZWQgY2F0ZWdvcnkuIE9ubHkgdmFsaWQgRkFRIGFydGljbGVzIHdpbGwgYmUgY291bnRlZC4KCiAgICBteSAkQXJ0aWNsZUNvdW50ID0gJEZBUU9iamVjdC0+RkFRQ291bnQoCiAgICAgICAgQ2F0ZWdvcnlJRHMgPT4gWzEsMiwzLDRdLAogICAgICAgIEl0ZW1TdGF0ZXMgPT4gIHsKICAgICAgICAgICAgMSA9PiAnaW50ZXJuYWwnLAogICAgICAgICAgICAyID0+ICdleHRlcm5hbCcsCiAgICAgICAgICAgIDMgPT4gJ3B1YmxpYycsCiAgICAgICAgfSwKICAgICAgICBPbmx5QXBwcm92ZWQgPT4gMSwgICAjIG9wdGlvbmFsIChkZWZhdWx0IDApCiAgICAgICAgVmFsaWQgICAgICAgID0+IDEsICAgIyBvcHRpb25hbCAoZGVmYXVsdCAwKQogICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgKTsKClJldHVybnM6CgogICAgJEFydGljbGVDb3VudCA9IDM7Cgo9Y3V0CgpzdWIgRkFRQ291bnQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhDYXRlZ29yeUlEcyBJdGVtU3RhdGVzIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICFkZWZpbmVkICRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBzZXQgZGVmYXVsdCB2YWx1ZQogICAgbXkgJFZhbGlkICAgID0gJFBhcmFte1ZhbGlkfSA/IDEgOiAwOwogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgbXkgJENhdGVnb3J5SURTdHJpbmcgPSAnJzsKICAgIGlmICggJFBhcmFte0NhdGVnb3J5SURzfSAmJiByZWYgJFBhcmFte0NhdGVnb3J5SURzfSBlcSAnQVJSQVknICYmIEB7ICRQYXJhbXtDYXRlZ29yeUlEc30gfSApIHsKCiAgICAgICAgIyBpbnRlZ2VyIHF1b3RlIHRoZSBjYXRlZ29yeSBpZHMKICAgICAgICBmb3IgbXkgJENhdGVnb3J5SUQgKCBAeyAkUGFyYW17Q2F0ZWdvcnlJRHN9IH0gKSB7CiAgICAgICAgICAgICRDYXRlZ29yeUlEID0gJERCT2JqZWN0LT5RdW90ZSggJENhdGVnb3J5SUQsICdJbnRlZ2VyJyApOwogICAgICAgIH0KCiAgICAgICAgbXkgQFNvcnRlZElEcyA9IHNvcnQgQHsgJFBhcmFte0NhdGVnb3J5SURzfSB9OwoKICAgICAgICAjIHNwbGl0IElOIHN0YXRlbWVudCB3aXRoIG1vcmUgdGhhbiA5MDAgZWxlbWVudHMgaW4gbW9yZSBzdGF0ZW1lbnRzIGNvbWJpbmVkIHdpdGggT1IKICAgICAgICAjIGJlY2F1c2UgT3JhY2xlIGRvZXNuJ3Qgc3VwcG9ydCBtb3JlIHRoYW4gMTAwMCBlbGVtZW50cyBpbiBvbmUgSU4gc3RhdGVtZW50LgogICAgICAgIG15IEBTUUxTdHJpbmdzOwogICAgICAgIExPT1A6CiAgICAgICAgd2hpbGUgKCBzY2FsYXIgQFNvcnRlZElEcyApIHsKCiAgICAgICAgICAgIG15IEBTb3J0ZWRJRHNQYXJ0ID0gc3BsaWNlIEBTb3J0ZWRJRHMsIDAsIDkwMDsKCiAgICAgICAgICAgIG15ICRJRFN0cmluZyA9IGpvaW4gJywnLCBAU29ydGVkSURzUGFydDsKCiAgICAgICAgICAgIHB1c2ggQFNRTFN0cmluZ3MsICIgaS5jYXRlZ29yeV9pZCBJTiAoJElEU3RyaW5nKSAiOwogICAgICAgIH0KCiAgICAgICAgbXkgJFNRTFN0cmluZyA9IGpvaW4gJyBPUiAnLCBAU1FMU3RyaW5nczsKCiAgICAgICAgJENhdGVnb3J5SURTdHJpbmcgLj0gJ0FORCAoICcgLiAkU1FMU3RyaW5nIC4gJyApICc7CiAgICB9CgogICAgIyBidWlsZCB2YWxpZCBpZCBzdHJpbmcKICAgIG15ICRWYWxpZElEc1N0cmluZzsKICAgIGlmICgkVmFsaWQpIHsKICAgICAgICAkVmFsaWRJRHNTdHJpbmcgPSBqb2luICcsICcsICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcpLT5WYWxpZElEc0dldCgpOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgbXkgJVZhbGlkTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcpLT5WYWxpZExpc3QoKTsKICAgICAgICAkVmFsaWRJRHNTdHJpbmcgPSBqb2luICcsICcsIGtleXMgJVZhbGlkTGlzdDsKICAgIH0KCiAgICBteSAkU1FMID0gJ1NFTEVDVCBDT1VOVCgqKSAnCiAgICAgICAgLiAnRlJPTSBmYXFfaXRlbSBpLCBmYXFfc3RhdGUgcyAnCiAgICAgICAgLiAnV0hFUkUgaS5zdGF0ZV9pZCA9IHMuaWQgJwogICAgICAgIC4gIkFORCBpLnZhbGlkX2lkIElOICgkVmFsaWRJRHNTdHJpbmcpICIKICAgICAgICAuICRDYXRlZ29yeUlEU3RyaW5nOwoKICAgICMgY291bnQgb25seSBhcHByb3ZlZCBhcnRpY2xlcwogICAgaWYgKCAkUGFyYW17T25seUFwcHJvdmVkfSApIHsKICAgICAgICAkU1FMIC49ICcgQU5EIGkuYXBwcm92ZWQgPSAxJzsKICAgIH0KCiAgICBteSAkRXh0ID0gJyc7CiAgICBpZiAoICRQYXJhbXtJdGVtU3RhdGVzfSAmJiByZWYgJFBhcmFte0l0ZW1TdGF0ZXN9IGVxICdIQVNIJyAmJiAleyAkUGFyYW17SXRlbVN0YXRlc30gfSApIHsKICAgICAgICBteSAkU3RhdGVzU3RyaW5nID0gam9pbiAnLCAnLCBrZXlzICV7ICRQYXJhbXtJdGVtU3RhdGVzfSB9OwogICAgICAgICRFeHQgLj0gIiBBTkQgcy50eXBlX2lkIElOICgkU3RhdGVzU3RyaW5nICkiOwogICAgfQogICAgJEV4dCAuPSAnIEdST1VQIEJZIGNhdGVnb3J5X2lkJzsKICAgICRTUUwgLj0gJEV4dDsKCiAgICByZXR1cm4gaWYgISREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgICA9PiAkU1FMLAogICAgICAgIExpbWl0ID0+IDIwMCwKICAgICk7CgogICAgbXkgJENvdW50ID0gMDsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICRDb3VudCArPSAkUm93WzBdOwogICAgfQoKICAgIHJldHVybiAkQ291bnQ7Cn0KCj1oZWFkMiBGQVFEZWxldGUoKQoKRGVsZXRlIGFuIGFydGljbGUuCgogICAgbXkgJERlbGV0ZVN1Y2Nlc3MgPSAkRkFRT2JqZWN0LT5GQVFEZWxldGUoCiAgICAgICAgSXRlbUlEID0+IDEsCiAgICAgICAgVXNlcklEID0+IDEyMywKICAgICk7CgpSZXR1cm5zOgoKICAgICREZWxldGVTdWNjZXNzID0gMTsgICAgICAgICAgICAgICMgb3IgdW5kZWYgaWYgYXJ0aWNsZSBjb3VsZCBub3QgYmUgZGVsZXRlZAoKPWN1dAoKc3ViIEZBUURlbGV0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KEl0ZW1JRCBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGRlbGV0ZSBhdHRhY2htZW50cwogICAgbXkgQEluZGV4ID0gJFNlbGYtPkF0dGFjaG1lbnRJbmRleCgKICAgICAgICBJdGVtSUQgPT4gJFBhcmFte0l0ZW1JRH0sCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKICAgIGZvciBteSAkRmlsZUlEIChASW5kZXgpIHsKICAgICAgICBteSAkRGVsZXRlU3VjY2VzcyA9ICRTZWxmLT5BdHRhY2htZW50RGVsZXRlKAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIEZpbGVJRCA9PiAkRmlsZUlELT57RmlsZUlEfSwKICAgICAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgIHJldHVybiBpZiAhJERlbGV0ZVN1Y2Nlc3M7CiAgICB9CgogICAgIyBkZWxldGUgdm90ZXMKICAgIG15ICRWb3RlSURzUmVmID0gJFNlbGYtPlZvdGVTZWFyY2goCiAgICAgICAgSXRlbUlEID0+ICRQYXJhbXtJdGVtSUR9LAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CiAgICBmb3IgbXkgJFZvdGVJRCAoIEB7JFZvdGVJRHNSZWZ9ICkgewogICAgICAgIG15ICREZWxldGVTdWNjZXNzID0gJFNlbGYtPlZvdGVEZWxldGUoCiAgICAgICAgICAgIFZvdGVJRCA9PiAkVm90ZUlELAogICAgICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuIGlmICEkRGVsZXRlU3VjY2VzczsKICAgIH0KCiAgICAjIGRlbGV0ZSBhbGwgRkFRIGxpbmtzIG9mIHRoaXMgRkFRIGFydGljbGUKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMaW5rT2JqZWN0JyktPkxpbmtEZWxldGVBbGwoCiAgICAgICAgT2JqZWN0ID0+ICdGQVEnLAogICAgICAgIEtleSAgICA9PiAkUGFyYW17SXRlbUlEfSwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgZGVsZXRlIGhpc3RvcnkKICAgIHJldHVybiBpZiAhJFNlbGYtPkZBUUhpc3RvcnlEZWxldGUoCiAgICAgICAgSXRlbUlEID0+ICRQYXJhbXtJdGVtSUR9LAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CiMgRkFRIFNlcnZpY2UKCiAgICAjIGRlbGV0ZSBhbGwgcmVsYXRlZCBzZXJ2aWNlcwogICAgbXkgJFNlcnZpY2VEYXRhQXJyYXlSZWYgPSAkU2VsZi0+RkFRU2VydmljZUdldCgKICAgICAgICBJdGVtSUQgPT4gJFBhcmFte0l0ZW1JRH0sCiAgICApOwoKICAgIGZvciBteSAkU2VydmljZSAoIEB7JFNlcnZpY2VEYXRhQXJyYXlSZWZ9ICkgewogICAgICAgIG15ICREZWxldGVTdWNjZXNzID0gJFNlbGYtPkZBUVNlcnZpY2VEZWxldGUoCiAgICAgICAgICAgIEl0ZW1JRCAgICA9PiAkUGFyYW17SXRlbUlEfSwKICAgICAgICAgICAgU2VydmljZUlEID0+ICRTZXJ2aWNlLT57U2VydmljZUlEfSwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gaWYgISREZWxldGVTdWNjZXNzOwogICAgfQojIGVvIEZBUSBTZXJ2aWNlCgogICAgIyBkZWxldGUgYXJ0aWNsZQogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RG8oCiAgICAgICAgU1FMICA9PiAnREVMRVRFIEZST00gZmFxX2l0ZW0gV0hFUkUgaWQgPSA/JywKICAgICAgICBCaW5kID0+IFsgXCRQYXJhbXtJdGVtSUR9IF0sCiAgICApOwoKICAgICMgZGVsZXRlIGNhY2hlCiAgICAkU2VsZi0+X0RlbGV0ZUZyb21GQVFDYWNoZSglUGFyYW0pOwoKICAgIHJldHVybiAxOwp9CiMgRkFRIFNlcnZpY2UKCj1oZWFkMiBGQVFTZXJ2aWNlQWRkKCkKCmFkZCBzZXJ2aWNlcyB0byBhbiBhcnRpY2xlCgogICAgbXkgJEFkZFN1Y2Nlc3MgPSAkRkFRT2JqZWN0LT5GQVFTZXJ2aWNlQWRkKAogICAgICAgIEl0ZW1JRCA9PiAxLAogICAgICAgIFNlcnZpY2VJRCA9PiAxLAogICAgICAgIE5hbWUgICA9PiAnU2VydmljZSBOYW1lJywKICAgICk7CgpSZXR1cm5zOgoKICAgICRBZGRTdWNjZXNzID0gMTsgICAgICAgICAgICAgICAjIG9yIHVuZGVmIGlmIGFydGljbGUgc2VydmljZSBjb3VsZCBub3QgYmUgYWRkZWQKCj1jdXQKCnN1YiBGQVFTZXJ2aWNlQWRkIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoSXRlbUlEIE5hbWUgU2VydmljZUlEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RG8oCiAgICAgICAgU1FMID0+ICdJTlNFUlQgSU5UTyBmYXFfc2VydmljZSAobmFtZSwgc2VydmljZV9pZCwgaXRlbV9pZCknIC4KICAgICAgICAgICAgJyBWQUxVRVMgKCA/LCA/LCA/KScsCiAgICAgICAgQmluZCA9PiBbCiAgICAgICAgICAgIFwkUGFyYW17TmFtZX0sIFwkUGFyYW17U2VydmljZUlEfSwgXCRQYXJhbXtJdGVtSUR9LAogICAgICAgIF0sCiAgICApOwoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgRkFRU2VydmljZUdldCgpCgpnZXQgYW4gYXJyYXkgd2l0aCBoYXNoIHJlZmVyZW5jZSB3aXRoIHRoZSBzZXJ2aWNlcyBvZiBhbiBhcnRpY2xlCgogICAgbXkgJFNlcnZpY2VEYXRhQXJyYXlSZWYgPSAkRkFRT2JqZWN0LT5GQVFTZXJ2aWNlR2V0KAogICAgICAgIEl0ZW1JRCA9PiAxLAogICAgKTsKClJldHVybnM6CgogICAgJFNlcnZpY2VEYXRhQXJyYXlSZWYgPSBbCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ0NvbXB1dGVyJywKICAgICAgICAgICAgU2VydmljZUlEID0+IDEsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnQ29tcHV0ZXI6OkhhcmR3YXJlJywKICAgICAgICAgICAgU2VydmljZUlEID0+IDIsCiAgICAgICAgfSwKICAgIF07Cgo9Y3V0CgpzdWIgRkFRU2VydmljZUdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KEl0ZW1JRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFNFTEVDVCBuYW1lLCBzZXJ2aWNlX2lkCiAgICAgICAgICAgIEZST00gZmFxX3NlcnZpY2UKICAgICAgICAgICAgV0hFUkUgaXRlbV9pZCA9ID8KICAgICAgICAgICAgT1JERVIgQlkgbmFtZSwgc2VydmljZV9pZCcsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17SXRlbUlEfSBdLAogICAgKTsKCiAgICAjICRHZXRQYXJhbXtTZXJ2aWNlTGlzdH0gICAgICAgICA9IFwlU2VydmljZUxpc3Q7CgogICAgbXkgQERhdGE7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICBteSAlUmVjb3JkID0gKAogICAgICAgICAgICBOYW1lICAgICAgPT4gJFJvd1swXSwKICAgICAgICAgICAgU2VydmljZUlEID0+ICRSb3dbMV0sCiAgICAgICAgKTsKICAgICAgICBwdXNoIEBEYXRhLCBcJVJlY29yZDsKICAgIH0KCiAgICByZXR1cm4gXEBEYXRhOwoKfQoKPWhlYWQyIEZBUVNlcnZpY2VBcnRpY2xlc0dldCgpCgpnZXQgYW4gYXJyYXkgd2l0aCBhcnRpY2xlcyByZWxhdGVkIHRvIGEgc2VydmljZQoKICAgIG15ICRGQVFTZXJ2aWNlQXJ0aWNsZXMgPSAkRkFRT2JqZWN0LT5GQVFTZXJ2aWNlQXJ0aWNsZXNHZXQoCiAgICAgICAgU2VydmljZUlEID0+IDEsCiAgICAgICAgTGltaXQgICAgID0+IDEwLCAgICAjIGRlZmF1bHQgMTAKICAgICk7CgpSZXR1cm5zOgoKICAgICRGQVFTZXJ2aWNlQXJ0aWNsZXMgPSBbIDEsIDIsIDMgXTsKCgo9Y3V0CgpzdWIgRkFRU2VydmljZUFydGljbGVzR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoU2VydmljZUlEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJExpbWl0ID0gMTA7CiAgICBpZiAoICRQYXJhbXtMaW1pdH0gKSB7CiAgICAgICAgJExpbWl0ID0gJFBhcmFte0xpbWl0fTsKICAgIH0KCiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICByZXR1cm4gaWYgISREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBTRUxFQ1QgaXRlbV9pZAogICAgICAgICAgICBGUk9NIGZhcV9zZXJ2aWNlCiAgICAgICAgICAgIFdIRVJFIHNlcnZpY2VfaWQgPSA/CiAgICAgICAgICAgIE9SREVSIEJZIGl0ZW1faWQnLAogICAgICAgIEJpbmQgID0+IFsgXCRQYXJhbXtTZXJ2aWNlSUR9IF0sCiAgICAgICAgTGltaXQgPT4gJExpbWl0LAogICAgKTsKCiAgICBteSBARGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIHB1c2ggQERhdGEsICRSb3dbMF07CiAgICB9CgogICAgcmV0dXJuIFxARGF0YTsKCn0KCj1oZWFkMiBGQVFTZXJ2aWNlRGVsZXRlKCkKCmRlbGV0ZSB0aGUgc2VydmljZSBvZiBhbiBhcnRpY2xlCgogICAgbXkgJERlbGV0ZVN1Y2Nlc3MgPSAkRkFRT2JqZWN0LT5GQVFTZXJ2aWNlRGVsZXRlKAogICAgICAgIEl0ZW1JRCAgICA9PiAxLAogICAgICAgIFNlcnZpY2VJRCA9PiAxLAogICAgKTsKClJldHVybnM6CgogICAgJERlbGV0ZVN1Y2Nlc3MgPSAxOyAgICAgICAgICAgICAgICAjIG9yIHVuZGVmIGlmIHNlcnZpY2UgY291bGQgbm90IGJlIGRlbGV0ZWQKCj1jdXQKCnN1YiBGQVFTZXJ2aWNlRGVsZXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoSXRlbUlEIFNlcnZpY2VJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIGlmICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKS0+RG8oCiAgICAgICAgU1FMICA9PiAnREVMRVRFIEZST00gZmFxX3NlcnZpY2UgV0hFUkUgaXRlbV9pZCA9ID8gQU5EIHNlcnZpY2VfaWQgPSA/ICcsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17SXRlbUlEfSwgXCRQYXJhbXtTZXJ2aWNlSUR9LCBdLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQojIGVvIEZBUSBTZXJ2aWNlCgo9aGVhZDIgRkFRSGlzdG9yeUFkZCgpCgphZGQgYW4gaGlzdG9yeSB0byBhbiBhcnRpY2xlCgogICAgbXkgJEFkZFN1Y2Nlc3MgPSAkRkFRT2JqZWN0LT5GQVFIaXN0b3J5QWRkKAogICAgICAgIEl0ZW1JRCA9PiAxLAogICAgICAgIE5hbWUgICA9PiAnVXBkYXRlZCBBcnRpY2xlLicsCiAgICAgICAgVXNlcklEID0+IDEsCiAgICApOwoKUmV0dXJuczoKCiAgICAkQWRkU3VjY2VzcyA9IDE7ICAgICAgICAgICAgICAgIyBvciB1bmRlZiBpZiBhcnRpY2xlIGhpc3RvcnkgY291bGQgbm90IGJlIGFkZGVkCgo9Y3V0CgpzdWIgRkFRSGlzdG9yeUFkZCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KEl0ZW1JRCBOYW1lIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgIFNRTCA9PiAnSU5TRVJUIElOVE8gZmFxX2hpc3RvcnkgKG5hbWUsIGl0ZW1faWQsICcgLgogICAgICAgICAgICAnIGNyZWF0ZWQsIGNyZWF0ZWRfYnksIGNoYW5nZWQsIGNoYW5nZWRfYnkpJyAuCiAgICAgICAgICAgICcgVkFMVUVTICggPywgPywgY3VycmVudF90aW1lc3RhbXAsID8sIGN1cnJlbnRfdGltZXN0YW1wLCA/KScsCiAgICAgICAgQmluZCA9PiBbCiAgICAgICAgICAgIFwkUGFyYW17TmFtZX0sIFwkUGFyYW17SXRlbUlEfSwgXCRQYXJhbXtVc2VySUR9LCBcJFBhcmFte1VzZXJJRH0sCiAgICAgICAgXSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBGQVFIaXN0b3J5R2V0KCkKCmdldCBhbiBhcnJheSB3aXRoIGhhc2ggcmVmZXJlbmNlIHdpdGggdGhlIGhpc3Rvcnkgb2YgYW4gYXJ0aWNsZQoKICAgIG15ICRIaXN0b3J5RGF0YUFycmF5UmVmID0gJEZBUU9iamVjdC0+RkFRSGlzdG9yeUdldCgKICAgICAgICBJdGVtSUQgPT4gMSwKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CgpSZXR1cm5zOgoKICAgICRIaXN0b3J5RGF0YUFycmF5UmVmID0gWwogICAgICAgIHsKICAgICAgICAgICAgQ3JlYXRlZEJ5ID0+IDEsCiAgICAgICAgICAgIENyZWF0ZWQgICA9PiAnMjAxMC0xMS0wMiAwNzo0NToxNScsCiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnQ3JlYXRlZCcsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIENyZWF0ZWRCeSA9PiAxLAogICAgICAgICAgICBDcmVhdGVkICAgPT4gJzIwMTEtMDYtMTQgMTI6NTM6NTUnLAogICAgICAgICAgICBOYW1lICAgICAgPT4gJ1VwZGF0ZWQnLAogICAgICAgIH0sCiAgICBdOwoKPWN1dAoKc3ViIEZBUUhpc3RvcnlHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhJdGVtSUQgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIG5hbWUsIGNyZWF0ZWQsIGNyZWF0ZWRfYnkKICAgICAgICAgICAgRlJPTSBmYXFfaGlzdG9yeQogICAgICAgICAgICBXSEVSRSBpdGVtX2lkID0gPwogICAgICAgICAgICBPUkRFUiBCWSBjcmVhdGVkLCBpZCcsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17SXRlbUlEfSBdLAogICAgKTsKCiAgICBteSBARGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIG15ICVSZWNvcmQgPSAoCiAgICAgICAgICAgIE5hbWUgICAgICA9PiAkUm93WzBdLAogICAgICAgICAgICBDcmVhdGVkICAgPT4gJFJvd1sxXSwKICAgICAgICAgICAgQ3JlYXRlZEJ5ID0+ICRSb3dbMl0sCiAgICAgICAgKTsKICAgICAgICBwdXNoIEBEYXRhLCBcJVJlY29yZDsKICAgIH0KCiAgICByZXR1cm4gXEBEYXRhOwp9Cgo9aGVhZDIgRkFRSGlzdG9yeURlbGV0ZSgpCgpkZWxldGUgdGhlIGhpc3Rvcnkgb2YgYW4gYXJ0aWNsZQoKICAgIG15ICREZWxldGVTdWNjZXNzID0gJEZBUU9iamVjdC0+RkFRSGlzdG9yeURlbGV0ZSgKICAgICAgICBJdGVtSUQgPT4gMSwKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CgpSZXR1cm5zOgoKICAgICREZWxldGVEdWNjZXNzID0gMTsgICAgICAgICAgICAgICAgIyBvciB1bmRlZiBpZiBoaXN0b3J5IGNvdWxkIG5vdCBiZSBkZWxldGVkCgo9Y3V0CgpzdWIgRkFRSGlzdG9yeURlbGV0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KEl0ZW1JRCBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgIFNRTCAgPT4gJ0RFTEVURSBGUk9NIGZhcV9oaXN0b3J5IFdIRVJFIGl0ZW1faWQgPSA/JywKICAgICAgICBCaW5kID0+IFsgXCRQYXJhbXtJdGVtSUR9IF0sCiAgICApOwoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgRkFRSm91cm5hbEdldCgpCgpnZXQgdGhlIHN5c3RlbSBqb3VybmFsCgogICAgbXkgJEhpc3RvcnlEYXRhQXJyYXlSZWYgPSAkRkFRT2JqZWN0LT5GQVFKb3VybmFsR2V0KAogICAgICAgIFVzZXJJRCA9PiAxLAogICAgKTsKClJldHVybnM6CgogICAgJEpvdXJuYWxEYXRhQXJyYXlSZWYgPSBbCiAgICAgICAgewogICAgICAgICAgICBJdGVtSUQgICAgPT4gJzMyJywKICAgICAgICAgICAgTnVtYmVyICAgID0+ICcxMDAwNCcsCiAgICAgICAgICAgIENhdGVnb3J5ICA9PiAnTXkgQ2F0ZWdvcnknLAogICAgICAgICAgICBTdWJqZWN0ICAgPT4gJ05ldyBBcnRpY2xlJywKICAgICAgICAgICAgQWN0aW9uICAgID0+ICdDcmVhdGVkJywKICAgICAgICAgICAgQ3JlYXRlZEJ5ID0+ICcxJywKICAgICAgICAgICAgQ3JlYXRlZCAgID0+ICcyMDExLTAxLTA1IDIxOjUzOjUwJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgSXRlbUlEICAgID0+ICc0JywKICAgICAgICAgICAgTnVtYmVyICAgID0+ICcxMDAwNCcsCiAgICAgICAgICAgIENhdGVnb3J5ICA9PiAnTXkgQ2F0ZWdvcnknLAogICAgICAgICAgICBTdWJqZWN0ICAgPT4gIk5ldyBBcnRpY2xlIiwKICAgICAgICAgICAgQWN0aW9uICAgID0+ICdVcGRhdGVkJywKICAgICAgICAgICAgQ3JlYXRlZEJ5ID0+ICcxJywKICAgICAgICAgICAgQ3JlYXRlZCAgID0+ICcyMDExLTAxLTA1IDIxOjU1OjMyJywKICAgICAgICB9CiAgICBdOwoKPWN1dAoKc3ViIEZBUUpvdXJuYWxHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBpZiAoICEkUGFyYW17VXNlcklEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgVXNlcklEISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJEdyb3VwT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyk7CiAgICBteSAlR3JvdXBzICAgICAgPSAkR3JvdXBPYmplY3QtPlBlcm1pc3Npb25Vc2VyR2V0KAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICBUeXBlICAgPT4gJ3JvJywKICAgICk7CgogICAgcmV0dXJuIGlmICElR3JvdXBzOwoKICAgIG15IEBHcm91cElEcyAgICAgICAgICA9IGtleXMgJUdyb3VwczsKICAgIG15ICRHcm91cFBsYWNlaG9sZGVycyA9IGpvaW4gJywgJywgKCc/JykgeCBAR3JvdXBJRHM7CiAgICBteSBAR3JvdXBCaW5kICAgICAgICAgPSBtYXAgeyBcJF8gfSBAR3JvdXBJRHM7CgogICAgbXkgJENhdGVnb3J5U1FMID0KICAgICAgICAiU0VMRUNUIGcuY2F0ZWdvcnlfaWQKICAgICAgICBGUk9NIGZhcV9jYXRlZ29yeV9ncm91cCBnCiAgICAgICAgV0hFUkUgZy5ncm91cF9pZCBJTiAoICRHcm91cFBsYWNlaG9sZGVycyApIjsKCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCAgPT4gJENhdGVnb3J5U1FMLAogICAgICAgIEJpbmQgPT4gXEBHcm91cEJpbmQsCiAgICApOwoKICAgIG15IEBDYXRlZ29yeUlEczsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIHB1c2ggQENhdGVnb3J5SURzLCAkUm93WzBdOwogICAgfQoKICAgIHJldHVybiBpZiAhQENhdGVnb3J5SURzOwoKICAgIG15IEBCaW5kICAgICAgICAgICAgICAgICA9IG1hcCB7IFwkXyB9IEBDYXRlZ29yeUlEczsKICAgIG15ICRDYXRlZ29yeVBsYWNlaG9sZGVycyA9IGpvaW4gJywgJywgKCc/JykgeCBAQ2F0ZWdvcnlJRHM7CgogICAgIyBidWlsZCBTUUwgcXVlcnkKICAgIG15ICRTUUwgPQogICAgICAgICJTRUxFQ1QgaS5pZCwgaC5uYW1lLCBoLmNyZWF0ZWQsIGguY3JlYXRlZF9ieSwgYy5uYW1lLCBpLmZfc3ViamVjdCwgaS5mX251bWJlcgogICAgICAgIEZST00gZmFxX2l0ZW0gaQogICAgICAgICAgICBJTk5FUiBKT0lOIGZhcV9zdGF0ZSBzIE9OIHMuaWQgPSBpLnN0YXRlX2lkCiAgICAgICAgICAgIElOTkVSIEpPSU4gZmFxX2hpc3RvcnkgaCBPTiBoLml0ZW1faWQgPSBpLmlkCiAgICAgICAgICAgIElOTkVSIEpPSU4gZmFxX2NhdGVnb3J5IGMgT04gYy5pZCA9IGkuY2F0ZWdvcnlfaWQKICAgICAgICBXSEVSRSBjLmlkIElOICgkQ2F0ZWdvcnlQbGFjZWhvbGRlcnMpIjsKCiAgICAjIGFkZCBzdGF0ZXMgY29uZGl0aW9uCiAgICBpZiAoICRQYXJhbXtTdGF0ZXN9ICYmIHJlZiAkUGFyYW17U3RhdGVzfSBlcSAnQVJSQVknICYmIEB7ICRQYXJhbXtTdGF0ZXN9IH0gKSB7CiAgICAgICAgcHVzaCBAQmluZCwgbWFwIHsgXCRfIH0gQHsgJFBhcmFte1N0YXRlc30gfTsKICAgICAgICBteSAkU3RhdGVzU3RyaW5nID0gam9pbiAnLCAnLCAoJz8nKSB4IEB7ICRQYXJhbXtTdGF0ZXN9IH07CiAgICAgICAgJFNRTCAuPSAiQU5EIHMubmFtZSBJTiAoJFN0YXRlc1N0cmluZykgIjsKICAgIH0KCiAgICAjIGFkZCBvcmRlciBieSBjbGF1c2UKICAgICRTUUwgLj0gJ09SREVSIEJZIGguY3JlYXRlZCBERVNDJzsKCiAgICAjIGdldCB0aGUgZGF0YSBmcm9tIGRiCiAgICByZXR1cm4gaWYgISREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgICA9PiAkU1FMLAogICAgICAgIExpbWl0ID0+IDIwMCwKICAgICAgICBCaW5kICA9PiBcQEJpbmQsCiAgICApOwoKICAgIG15IEBEYXRhOwogICAgd2hpbGUgKCBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgbXkgJVJlY29yZCA9ICgKICAgICAgICAgICAgSXRlbUlEICAgID0+ICRSb3dbMF0sCiAgICAgICAgICAgIEFjdGlvbiAgICA9PiAkUm93WzFdLAogICAgICAgICAgICBDcmVhdGVkICAgPT4gJFJvd1syXSwKICAgICAgICAgICAgQ3JlYXRlZEJ5ID0+ICRSb3dbM10sCiAgICAgICAgICAgIENhdGVnb3J5ICA9PiAkUm93WzRdLAogICAgICAgICAgICBTdWJqZWN0ICAgPT4gJFJvd1s1XSwKICAgICAgICAgICAgTnVtYmVyICAgID0+ICRSb3dbNl0sCiAgICAgICAgKTsKICAgICAgICBwdXNoIEBEYXRhLCBcJVJlY29yZDsKICAgIH0KCiAgICByZXR1cm4gXEBEYXRhOwp9Cgo9aGVhZDIgS2V5d29yZExpc3QoKQoKZ2V0IGEgbGlzdCBvZiBrZXl3b3JkcyBhcyBhIGhhc2gsIHdpdGggdGhlaXIgY291bnQgYXMgdGhlIHZhbHVlOgoKICAgIG15ICVLZXl3b3JkcyA9ICRGQVFPYmplY3QtPktleXdvcmRMaXN0KAogICAgICAgIFZhbGlkICA9PiAxLAogICAgICAgIFVzZXJJRCA9PiAxLAogICAgKTsKClJldHVybnM6CgogICAgJUtleXdvcmRzID0gKAogICAgICAgICAgJ21hY29zeCcgICA9PiA4LAogICAgICAgICAgJ3VidW50dScgICA9PiAxLAogICAgICAgICAgJ291dGxvb2snICA9PiAyLAogICAgICAgICAgJ3dpbmRvd3MnICA9PiAzLAogICAgICAgICAgJ2V4Y2hhbmdlJyA9PiAxLAogICAgKTsKCj1jdXQKCiMgVE9ETzogRnVuY3Rpb24gbm90IHVzZWQ/IEtleXdvcmQgc2VwYXJhdG9yIGlzIGhlcmUgYSBvdGhlciBhcyBhdCBvdGhlciBwbGFjZXMuLi4KIyBUT0RPOiBDbGFyaWZ5IC0gUmVtb3ZlIGZ1bmN0aW9uIG9yIGNoYW5nZSB0aGUgc2VwYXJhdG9yPwpzdWIgS2V5d29yZExpc3QgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBpZiAoICEkUGFyYW17VXNlcklEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgVXNlcklEIScsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgc2V0IGRlZmF1bHQKICAgIG15ICRWYWxpZCA9IDA7CiAgICBpZiAoIGRlZmluZWQgJFBhcmFte1ZhbGlkfSApIHsKICAgICAgICAkVmFsaWQgPSAkUGFyYW17VmFsaWR9OwogICAgfQoKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgZ2V0IGtleXdvcmRzIGZyb20gZGIKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnU0VMRUNUIGZfa2V5d29yZHMgRlJPTSBmYXFfaXRlbScsCiAgICApOwoKICAgIG15ICVEYXRhOwogICAgd2hpbGUgKCBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CgogICAgICAgIG15ICRLZXl3b3JkTGlzdCA9IGxjICRSb3dbMF07CgogICAgICAgIGZvciBteSAkS2V5d29yZCAoIHNwbGl0IC8sLywgJEtleXdvcmRMaXN0ICkgewoKICAgICAgICAgICAgIyByZW1vdmUgbGVhZGluZy90YWlsaW5nIHNwYWNlcwogICAgICAgICAgICAkS2V5d29yZCA9fiBzeyBcQSBccysgfXt9eG1zZzsKICAgICAgICAgICAgJEtleXdvcmQgPX4gc3sgXHMrIFx6IH17fXhtc2c7CgogICAgICAgICAgICAjIGluY3JlYXNlIGtleXdvcmQgY291bnRlcgogICAgICAgICAgICAkRGF0YXskS2V5d29yZH0rKzsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuICVEYXRhOwp9Cgo9aGVhZDIgRkFRS2V5d29yZEFydGljbGVMaXN0KCkKCkdldCBhIGtleXdvcmQgYW5kIHJlbGF0ZWQgZmFxIGFydGljbGVzIGxvb2t1cCBsaXN0IChvcHRpb25hbCBvbmx5IGZvciB0aGUgZ2l2ZW4gbGFuZ3VhZ2VzKS4KWW91IGNhbiBidWlsZCBhIGxpc3QgZm9yIGEgYWdlbnQgb3IgY3VzdG9tZXIuIElmIHlvdSBnaXZlIG9ubHkgYSBVc2VySUQgdGhlIHJlc3VsdCBpcyBmb3IKdGhlIGdpdmVuIFVzZXJJRCwgd2l0aCBhIGFkZGl0aW9uYWwgQ3VzdG9tZXJVc2VyIHRoZSBsaXN0IGlzIG9ubHkgZm9yIHRoZSBnaXZlbiBDdXN0b21lclVzZXIuCgogICAgbXkgJUZBUUtleXdvcmRBcnRpY2xlTGlzdCA9ICRGQVFPYmplY3QtPkZBUUtleXdvcmRBcnRpY2xlTGlzdCgKICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICBDdXN0b21lclVzZXIgPT4gJ3R0JywgICAgICAgICAgICMgb3B0aW9uYWwgKHdpdGggdGhpcyB0aGUgcmVzdWx0IGlzIG9ubHkgY3VzdG9tZXIgZmFxIGFydGljbGUpCiAgICAgICAgTGFuZ3VhZ2VzICAgID0+IFsgJ2VuJywgJ2RlJyBdLCAjIG9wdGlvbmFsCiAgICAgICAgU2VydmljZUlEICAgID0+ICRTZXJ2aWNlSUQsICAgICAjIG9wdGlvbmFsCiAgICApOwoKUmV0dXJucwoKICAgIG15ICVGQVFLZXl3b3JkQXJ0aWNsZUxpc3QgPSAoCiAgICAgICAgJ0V4YW1wbGVLZXl3b3JkJyA9PiBbCiAgICAgICAgICAgIDEyLAogICAgICAgICAgICAxMywKICAgICAgICBdLAogICAgICAgICdUZXN0S2V5d29yZCcgPT4gWwogICAgICAgICAgICA4NzYsCiAgICAgICAgXSwKICAgICk7Cgo9Y3V0CgpzdWIgRkFRS2V5d29yZEFydGljbGVMaXN0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgaWYgKCAhJFBhcmFte1VzZXJJRH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkIFVzZXJJRCEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15IEBMYW5ndWFnZUlEczsKCiAgICBMQU5HVUFHRU5BTUU6CiAgICBmb3IgbXkgJExhbmd1YWdlTmFtZSAoIEB7ICRQYXJhbXtMYW5ndWFnZXN9IH0gKSB7CiAgICAgICAgbmV4dCBMQU5HVUFHRU5BTUUgaWYgISRMYW5ndWFnZU5hbWU7CgogICAgICAgIG15ICRMYW5ndWFnZUlEID0gJFNlbGYtPkxhbmd1YWdlTG9va3VwKAogICAgICAgICAgICBOYW1lID0+ICRMYW5ndWFnZU5hbWUsCiAgICAgICAgKTsKICAgICAgICBuZXh0IExBTkdVQUdFTkFNRSBpZiAhJExhbmd1YWdlSUQ7CgogICAgICAgIHB1c2ggQExhbmd1YWdlSURzLCAkTGFuZ3VhZ2VJRDsKICAgIH0KCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICBteSAkSW50ZXJmYWNlOwogICAgbXkgJFN0YXRlVHlwZXM7CiAgICBteSAkQ2F0ZWdvcnlJRHM7CgogICAgaWYgKCAkUGFyYW17Q3VzdG9tZXJVc2VyfSApIHsKCiAgICAgICAgJEludGVyZmFjZSA9ICdleHRlcm5hbCc7CgogICAgICAgICRTdGF0ZVR5cGVzID0gJENvbmZpZ09iamVjdC0+R2V0KCdGQVE6OkN1c3RvbWVyOjpTdGF0ZVR5cGVzJyk7CgogICAgICAgICRDYXRlZ29yeUlEcyA9ICRTZWxmLT5DdXN0b21lckNhdGVnb3J5U2VhcmNoKAogICAgICAgICAgICBDdXN0b21lclVzZXIgICAgID0+ICRQYXJhbXtDdXN0b21lclVzZXJ9LAogICAgICAgICAgICBNb2RlICAgICAgICAgICAgID0+ICdDdXN0b21lcicsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgIEdldFN1YkNhdGVnb3JpZXMgPT4gMSwKICAgICAgICApOwogICAgfQogICAgZWxzZSB7CgogICAgICAgICRJbnRlcmZhY2UgPSAnaW50ZXJuYWwnOwoKICAgICAgICAkU3RhdGVUeXBlcyA9ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpBZ2VudDo6U3RhdGVUeXBlcycpOwoKICAgICAgICAkQ2F0ZWdvcnlJRHMgPSAkU2VsZi0+QWdlbnRDYXRlZ29yeVNlYXJjaCgKICAgICAgICAgICAgR2V0U3ViQ2F0ZWdvcmllcyA9PiAxLAogICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIGlmICFJc0FycmF5UmVmV2l0aERhdGEoJENhdGVnb3J5SURzKTsKCiAgICBteSAkQ2FjaGVLZXkgPSAnRkFRS2V5d29yZEFydGljbGVMaXN0JzsKCiAgICBpZiAoQExhbmd1YWdlSURzKSB7CiAgICAgICAgJENhY2hlS2V5IC49ICc6Okxhbmd1YWdlJyAuIGpvaW4gJzo6Jywgc29ydCBATGFuZ3VhZ2VJRHM7CiAgICB9CiAgICAkQ2FjaGVLZXkgLj0gJzo6Q2F0ZWdvcnlJRHMnIC4gam9pbiAnOjonLCBzb3J0IEB7JENhdGVnb3J5SURzfTsKICAgICRDYWNoZUtleSAuPSAnOjpJbnRlcmZhY2U6OicgLiAkSW50ZXJmYWNlOwogICAgaWYgKCAkUGFyYW17U2VydmljZUlEfSApIHsKICAgICAgICAkQ2FjaGVLZXkgLj0gJzo6U2VydmljZUlEOjonIC4gJFBhcmFte1NlcnZpY2VJRH07CiAgICB9CgogICAgbXkgJENhY2hlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkdldCgKICAgICAgICBUeXBlID0+ICdGQVFLZXl3b3JkQXJ0aWNsZUxpc3QnLAogICAgICAgIEtleSAgPT4gJENhY2hlS2V5LAogICAgKTsKICAgIHJldHVybiAleyRDYWNoZX0gaWYgJENhY2hlOwoKICAgIG15ICVGQVFTZWFyY2hQYXJhbWV0ZXI7CgogICAgIyBTZXQgaW50ZXJmYWNlIHNldHRpbmcgdG8gJ2V4dGVybmFsJywgdG8gc2VhcmNoIG9ubHkgZm9yIGFwcHJvdmVkIGZhcSBhcnRpY2xlLgogICAgJEZBUVNlYXJjaFBhcmFtZXRlcntJbnRlcmZhY2V9ID0gJFNlbGYtPlN0YXRlVHlwZUdldCgKICAgICAgICBOYW1lICAgPT4gJ2V4dGVybmFsJywKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICRGQVFTZWFyY2hQYXJhbWV0ZXJ7U3RhdGVzfSA9ICRTZWxmLT5TdGF0ZVR5cGVMaXN0KAogICAgICAgIFR5cGVzICA9PiAkU3RhdGVUeXBlcywKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIG15ICRTZWFyY2hMaW1pdCA9ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpLZXl3b3JkQXJ0aWNlTGlzdDo6U2VhcmNoTGltaXQnKTsKCiAgICBpZiAoQExhbmd1YWdlSURzKSB7CiAgICAgICAgJEZBUVNlYXJjaFBhcmFtZXRlcntMYW5ndWFnZUlEc30gPSBcQExhbmd1YWdlSURzOwogICAgfQoKICAgICMgR2V0IHRoZSByZWxldmFudCBGQVEgYXJ0aWNsZSBmb3IgdGhlIGN1cnJlbnQgY3VzdG9tZXIgdXNlci4KICAgIG15IEBGQVFBcnRpY2xlSURzID0gJFNlbGYtPkZBUVNlYXJjaCgKICAgICAgICAlRkFRU2VhcmNoUGFyYW1ldGVyLAogICAgICAgIENhdGVnb3J5SURzICAgICAgPT4gJENhdGVnb3J5SURzLAogICAgICAgIE9yZGVyQnkgICAgICAgICAgPT4gWydGQVFJRCddLAogICAgICAgIE9yZGVyQnlEaXJlY3Rpb24gPT4gWydEb3duJ10sCiAgICAgICAgTGltaXQgICAgICAgICAgICA9PiAkU2VhcmNoTGltaXQsCiAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAxLAojIEZBUSBTZXJ2aWNlIFRPRE8KICAgICAgICBTZXJ2aWNlSUQgPT4gJFBhcmFte1NlcnZpY2VJRH0sCiMgZW8gRkFRIFNlcnZpY2UKICAgICk7CgogICAgbXkgJUtleXdvcmRBcnRpY2VMaXN0OwogICAgbXkgJUxvb2t1cEtleXdvcmRBcnRpY2xlSUQ7CgogICAgRkFRQVJUSUNMRUlEOgogICAgZm9yIG15ICRGQVFBcnRpY2xlSUQgKEBGQVFBcnRpY2xlSURzKSB7CgogICAgICAgIG15ICVGQVFBcnRpY2xlRGF0YSA9ICRTZWxmLT5GQVFHZXQoCiAgICAgICAgICAgIEl0ZW1JRCA9PiAkRkFRQXJ0aWNsZUlELAogICAgICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgbmV4dCBGQVFBUlRJQ0xFSUQgaWYgISRGQVFBcnRpY2xlRGF0YXtLZXl3b3Jkc307CgogICAgICAgICMgUmVwbGFjZSBjb21tYXMgYW5kIHNlbWljb2xvbnMsIGJlY2F1c2UgdGhlIGtleXdvcmRzIGFyZSBub3JtYWwgc3BsaXQgd2l0aCBhbiB3aGl0ZXNwYWNlLgogICAgICAgICRGQVFBcnRpY2xlRGF0YXtLZXl3b3Jkc30gPX4gcy8sLyAvZzsKICAgICAgICAkRkFRQXJ0aWNsZURhdGF7S2V5d29yZHN9ID1+IHMvOy8gL2c7CgogICAgICAgIG15IEBLZXl3b3JkcyA9IHNwbGl0IC9ccysvLCBsYyAkRkFRQXJ0aWNsZURhdGF7S2V5d29yZHN9OwoKICAgICAgICBLRVlXT1JEOgogICAgICAgIGZvciBteSAkS2V5d29yZCAoQEtleXdvcmRzKSB7CgogICAgICAgICAgICBuZXh0IEtFWVdPUkQgaWYgJExvb2t1cEtleXdvcmRBcnRpY2xlSUR7JEtleXdvcmR9LT57JEZBUUFydGljbGVJRH07CgogICAgICAgICAgICBwdXNoIEB7ICRLZXl3b3JkQXJ0aWNlTGlzdHskS2V5d29yZH0gfSwgJEZBUUFydGljbGVJRDsKCiAgICAgICAgICAgICRMb29rdXBLZXl3b3JkQXJ0aWNsZUlEeyRLZXl3b3JkfS0+eyRGQVFBcnRpY2xlSUR9ID0gMTsKICAgICAgICB9CiAgICB9CgogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPlNldCgKICAgICAgICBUeXBlICA9PiAnRkFRS2V5d29yZEFydGljbGVMaXN0JywKICAgICAgICBLZXkgICA9PiAkQ2FjaGVLZXksCiAgICAgICAgVmFsdWUgPT4gXCVLZXl3b3JkQXJ0aWNlTGlzdCwKICAgICAgICBUVEwgICA9PiA2MCAqIDYwICogMywKICAgICk7CgogICAgcmV0dXJuICVLZXl3b3JkQXJ0aWNlTGlzdDsKfQoKPWhlYWQyIEZBUVBhdGhMaXN0R2V0KCkKCnJldHVybnMgYSBjYXRlZ29yeSBhcnJheSByZWZlcmVuY2UKCiAgICBteSAkQ2F0ZWdvcnlJREFycmF5UmVmID0gJEZBUU9iamVjdC0+RkFRUGF0aExpc3RHZXQoCiAgICAgICAgQ2F0ZWdvcnlJRCA9PiAxNTAsCiAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgKTsKClJldHVybnM6CgogICAgJENhdGVnb3J5SURBcnJheVJlZiA9IFsKICAgICAgICB7CiAgICAgICAgICAgIENhdGVnb3J5SUQgPT4gJzInLAogICAgICAgICAgICBQYXJlbnRJRCA9PiAnMCcsCiAgICAgICAgICAgIE5hbWUgPT4gJ015IENhdGVnb3J5JywKICAgICAgICAgICAgQ29tbWVudCA9PiAnTXkgRmlyc3QgQ2F0ZWdvcnknLAogICAgICAgICAgICBWYWxpZElEID0+ICcxJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgQ2F0ZWdvcnlJRCA9PiAnNCcsCiAgICAgICAgICAgIFBhcmVudElEID0+ICcyJywKICAgICAgICAgICAgTmFtZSA9PiAnU3ViIENhdGVnb3J5IEEnLAogICAgICAgICAgICBDb21tZW50ID0+ICdUaGlzIElzIENhdGVnb3J5IEEnLAogICAgICAgICAgICBWYWxpZElEID0+ICcxJywKICAgICAgICB9LAogICAgXTsKCj1jdXQKCnN1YiBGQVFQYXRoTGlzdEdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGlmICggISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCBVc2VySUQhIiwKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgQENhdGVnb3J5TGlzdDsKICAgIG15ICRUZW1wQ2F0ZWdvcnlJRCA9ICRQYXJhbXtDYXRlZ29yeUlEfTsKICAgIHdoaWxlICgkVGVtcENhdGVnb3J5SUQpIHsKICAgICAgICBteSAlRGF0YSA9ICRTZWxmLT5DYXRlZ29yeUdldCgKICAgICAgICAgICAgQ2F0ZWdvcnlJRCA9PiAkVGVtcENhdGVnb3J5SUQsCiAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgICAgICBpZiAoJURhdGEpIHsKICAgICAgICAgICAgcHVzaCBAQ2F0ZWdvcnlMaXN0LCBcJURhdGE7CiAgICAgICAgfQogICAgICAgICRUZW1wQ2F0ZWdvcnlJRCA9ICREYXRhe1BhcmVudElEfTsKICAgIH0KCiAgICBAQ2F0ZWdvcnlMaXN0ID0gcmV2ZXJzZSBAQ2F0ZWdvcnlMaXN0OwoKICAgIHJldHVybiBcQENhdGVnb3J5TGlzdDsKCn0KCj1oZWFkMiBGQVFMb2dBZGQoKQoKYWRkcyBhY2Nlc3NlZCBGQVEgYXJ0aWNsZSB0byB0aGUgYWNjZXNzIGxvZyB0YWJsZQoKICAgIG15ICRTdWNjZXNzID0gJEZBUU9iamVjdC0+RkFRTG9nQWRkKAogICAgICAgIEl0ZW1JRCAgICA9PiAnMTIzNDU2JywKICAgICAgICBJbnRlcmZhY2UgPT4gJ2ludGVybmFsJywKICAgICAgICBVc2VySUQgICAgPT4gMSwKICAgICk7CgpSZXR1cm5zOgoKICAgICRTdWNjZXNzID0xOyAgICAgICAgICAgICAgICAjIG9yIHVuZGVmIGlmIEZBUUxvZyBjb3VsZCBub3QgYmUgYWRkZWQKCj1jdXQKCnN1YiBGQVFMb2dBZGQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhJdGVtSUQgSW50ZXJmYWNlIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IGVudmlyb25tZW50IHZhcmlhYmxlcwogICAgbXkgJFBhcmFtT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwogICAgbXkgJElQICAgICAgICAgID0gJFBhcmFtT2JqZWN0LT5SZW1vdGVBZGRyKCkgICAgICAgfHwgJ05PTkUnOwogICAgbXkgJFVzZXJBZ2VudCAgID0gJFBhcmFtT2JqZWN0LT5IVFRQKCdVU0VSX0FHRU5UJykgfHwgJ05PTkUnOwoKICAgICMgRGVmaW5lIHRpbWUgcGVyaW9kIHdoZW4gcmVsb2FkcyB3aWxsIG5vdCBiZSBsb2dnZWQgKDEwIG1pbnV0ZXMpLgogICAgbXkgJFJlbG9hZEJsb2NrVGltZSA9IDEwICogNjA7CgogICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CiAgICAkRGF0ZVRpbWVPYmplY3QtPlN1YnRyYWN0KCBTZWNvbmRzID0+ICRSZWxvYWRCbG9ja1RpbWUgKTsKICAgIG15ICRUaW1lU3RhbXAgPSAkRGF0ZVRpbWVPYmplY3QtPlRvU3RyaW5nKCk7CgogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBjaGVjayBpZiBhIGxvZyBlbnRyeSBleGlzdHMgbmV3ZXIgdGhhbiB0aGUgUmVsb2FkQmxvY2tUaW1lCiAgICByZXR1cm4gaWYgISREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJ1NFTEVDVCBpZCBGUk9NIGZhcV9sb2cgJwogICAgICAgICAgICAuICdXSEVSRSBpdGVtX2lkID0gPyBBTkQgaXAgPSA/ICcKICAgICAgICAgICAgLiAnQU5EIHVzZXJfYWdlbnQgPSA/IEFORCBjcmVhdGVkID49ID8gJywKICAgICAgICBCaW5kICA9PiBbIFwkUGFyYW17SXRlbUlEfSwgXCRJUCwgXCRVc2VyQWdlbnQsIFwkVGltZVN0YW1wIF0sCiAgICAgICAgTGltaXQgPT4gMSwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICBteSAkQWxyZWFkeUV4aXN0cyA9IDA7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkQWxyZWFkeUV4aXN0cyA9IDE7CiAgICB9CgogICAgcmV0dXJuIGlmICRBbHJlYWR5RXhpc3RzOwoKICAgICMgaW5zZXJ0IG5ldyBsb2cgZW50cnkKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5EbygKICAgICAgICBTUUwgPT4gJ0lOU0VSVCBJTlRPIGZhcV9sb2cgJwogICAgICAgICAgICAuICcoaXRlbV9pZCwgaW50ZXJmYWNlLCBpcCwgdXNlcl9hZ2VudCwgY3JlYXRlZCkgVkFMVUVTICcKICAgICAgICAgICAgLiAnKD8sID8sID8sID8sIGN1cnJlbnRfdGltZXN0YW1wKScsCiAgICAgICAgQmluZCA9PiBbCiAgICAgICAgICAgIFwkUGFyYW17SXRlbUlEfSwgXCRQYXJhbXtJbnRlcmZhY2V9LCBcJElQLCBcJFVzZXJBZ2VudCwKICAgICAgICBdLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIEZBUVRvcDEwR2V0KCkKClJldHVybnMgYW4gYXJyYXkgd2l0aCB0aGUgdG9wIDEwIEZBUSBhcnRpY2xlIGlkcy4KCiAgICBteSAkVG9wMTBJRHNSZWYgPSAkRkFRT2JqZWN0LT5GQVFUb3AxMEdldCgKICAgICAgICBJbnRlcmZhY2UgICA9PiAncHVibGljJywKICAgICAgICBDYXRlZ29yeUlEcyA9PiBbIDEsIDIsIDMgXSwgICMgKG9wdGlvbmFsKSBPbmx5IHNob3cgdGhlIFRvcC0xMCBhcnRpY2xlcyBmcm9tIHRoZXNlIGNhdGVnb3JpZXMKICAgICAgICBMaW1pdCAgICAgICA9PiAxMCwgICAgICAgICAgICMgKG9wdGlvbmFsLCBkZWZhdWx0IDEwKQogICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICApOwoKUmV0dXJuczoKCiAgICAkVG9wMTBJRHNSZWYgPSBbCiAgICAgICAgewogICAgICAgICAgICAnSXRlbUlEJyAgICA9PiAxMywKICAgICAgICAgICAgJ0NvdW50JyAgICAgPT4gMTU5LCAgICAgICAgICAgICAgICMgbnVtYmVyIG9mIHZpc2l0cwogICAgICAgICAgICAnSW50ZXJmYWNlJyA9PiAncHVibGljJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgJ0l0ZW1JRCcgICAgPT4gNiwKICAgICAgICAgICAgJ0NvdW50JyAgICAgPT4gNzgsCiAgICAgICAgICAgICdJbnRlcmZhY2UnID0+ICdwdWJsaWMnLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICAnSXRlbUlEJyAgICA9PiA0LAogICAgICAgICAgICAnQ291bnQnICAgICA9PiA1OSwKICAgICAgICAgICAgJ0ludGVyZmFjZScgPT4gJ2ludGVybmFsJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgJ0l0ZW1JRCcgICAgPT4gMjAsCiAgICAgICAgICAgICdDb3VudCcgICAgID0+IDI5LAogICAgICAgICAgICAnSW50ZXJmYWNlJyA9PiAncHVibGljJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgJ0l0ZW1JRCcgICAgPT4gMSwKICAgICAgICAgICAgJ0NvdW50JyAgICAgPT4gMjQsCiAgICAgICAgICAgICdJbnRlcmZhY2UnID0+ICdleHRlcm5hbCcsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgICdJdGVtSUQnICAgID0+IDExLAogICAgICAgICAgICAnQ291bnQnICAgICA9PiAyNCwKICAgICAgICAgICAgJ0ludGVyZmFjZScgPT4gJ2ludGVybmFsJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgJ0l0ZW1JRCcgICAgPT4gNSwKICAgICAgICAgICAgJ0NvdW50JyAgICAgPT4gMTgsCiAgICAgICAgICAgICdJbnRlcmZhY2UnID0+ICdpbnRlcm5hbCcsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgICdJdGVtSUQnICAgID0+IDksCiAgICAgICAgICAgICdDb3VudCcgICAgID0+IDE2LAogICAgICAgICAgICAnSW50ZXJmYWNlJyA9PiAnZXh0ZXJuYWwnLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICAnSXRlbUlEJyAgICA9PiAyLAogICAgICAgICAgICAnQ291bnQnICAgICA9PiAxNCwKICAgICAgICAgICAgJ0ludGVyZmFjZScgPT4gJ2ludGVybmFsJwogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICAnSXRlbUlEJyAgICA9PiAxNCwKICAgICAgICAgICAgJ0NvdW50JyAgICAgPT4gNiwKICAgICAgICAgICAgJ0ludGVyZmFjZScgPT4gJ3B1YmxpYycsCiAgICAgICAgfQogICAgXTsKCj1jdXQKCnN1YiBGQVFUb3AxMEdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KEludGVyZmFjZSBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuIFtdOwogICAgICAgIH0KICAgIH0KCiAgICAjIGJ1aWxkIHZhbGlkIGlkIHN0cmluZwogICAgbXkgJFZhbGlkSURzU3RyaW5nID0gam9pbiAnLCAnLCAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnKS0+VmFsaWRJRHNHZXQoKTsKCiAgICAjIHByZXBhcmUgU1FMCiAgICBteSBAQmluZDsKICAgIG15ICRTUUwgPSAnU0VMRUNUIGl0ZW1faWQsIGNvdW50KGl0ZW1faWQpIGFzIGl0ZW1jb3VudCwgZmFxX3N0YXRlX3R5cGUubmFtZSwgYXBwcm92ZWQgJwogICAgICAgIC4gJ0ZST00gZmFxX2xvZywgZmFxX2l0ZW0sIGZhcV9zdGF0ZSwgZmFxX3N0YXRlX3R5cGUgJwogICAgICAgIC4gJ1dIRVJFIGZhcV9sb2cuaXRlbV9pZCA9IGZhcV9pdGVtLmlkICcKICAgICAgICAuICdBTkQgZmFxX2l0ZW0uc3RhdGVfaWQgPSBmYXFfc3RhdGUuaWQgJwogICAgICAgIC4gIkFORCBmYXFfaXRlbS52YWxpZF9pZCBJTiAoJFZhbGlkSURzU3RyaW5nKSAiCiAgICAgICAgLiAnQU5EIGZhcV9zdGF0ZS50eXBlX2lkID0gZmFxX3N0YXRlX3R5cGUuaWQgJzsKCiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGZpbHRlciBqdXN0IGNhdGVnb3JpZXMgd2l0aCBhdCBsZWFzdCBybyBwZXJtaXNzaW9uCiAgICBpZiAoICRQYXJhbXtDYXRlZ29yeUlEc30gJiYgcmVmICRQYXJhbXtDYXRlZ29yeUlEc30gZXEgJ0FSUkFZJyAmJiBAeyAkUGFyYW17Q2F0ZWdvcnlJRHN9IH0gKSB7CgogICAgICAgICMgaW50ZWdlciBxdW90ZSB0aGUgY2F0ZWdvcnkgaWRzCiAgICAgICAgZm9yIG15ICRDYXRlZ29yeUlEICggQHsgJFBhcmFte0NhdGVnb3J5SURzfSB9ICkgewogICAgICAgICAgICAkQ2F0ZWdvcnlJRCA9ICREQk9iamVjdC0+UXVvdGUoICRDYXRlZ29yeUlELCAnSW50ZWdlcicgKTsKICAgICAgICB9CgogICAgICAgIG15IEBTb3J0ZWRJRHMgPSBzb3J0IEB7ICRQYXJhbXtDYXRlZ29yeUlEc30gfTsKCiAgICAgICAgIyBzcGxpdCBJTiBzdGF0ZW1lbnQgd2l0aCBtb3JlIHRoYW4gOTAwIGVsZW1lbnRzIGluIG1vcmUgc3RhdGVtZW50cyBjb21iaW5lZCB3aXRoIE9SCiAgICAgICAgIyBiZWNhdXNlIE9yYWNsZSBkb2Vzbid0IHN1cHBvcnQgbW9yZSB0aGFuIDEwMDAgZWxlbWVudHMgaW4gb25lIElOIHN0YXRlbWVudC4KICAgICAgICBteSBAU1FMU3RyaW5nczsKICAgICAgICBMT09QOgogICAgICAgIHdoaWxlICggc2NhbGFyIEBTb3J0ZWRJRHMgKSB7CgogICAgICAgICAgICBteSBAU29ydGVkSURzUGFydCA9IHNwbGljZSBAU29ydGVkSURzLCAwLCA5MDA7CgogICAgICAgICAgICBteSAkSURTdHJpbmcgPSBqb2luICcsJywgQFNvcnRlZElEc1BhcnQ7CgogICAgICAgICAgICBwdXNoIEBTUUxTdHJpbmdzLCAiIGZhcV9pdGVtLmNhdGVnb3J5X2lkIElOICgkSURTdHJpbmcpICI7CiAgICAgICAgfQoKICAgICAgICBteSAkU1FMU3RyaW5nID0gam9pbiAnIE9SICcsIEBTUUxTdHJpbmdzOwoKICAgICAgICAkU1FMIC49ICcgQU5EICggJyAuICRTUUxTdHJpbmcgLiAnICkgJzsKICAgIH0KCiAgICAjIGZpbHRlciByZXN1bHRzIGZvciBwdWJsaWMgYW5kIGN1c3RvbWVyIGludGVyZmFjZQogICAgaWYgKCAoICRQYXJhbXtJbnRlcmZhY2V9IGVxICdwdWJsaWMnICkgfHwgKCAkUGFyYW17SW50ZXJmYWNlfSBlcSAnZXh0ZXJuYWwnICkgKSB7CgogICAgICAgICMgb25seSBzaG93IGFwcHJvdmVkIGFydGljbGVzCiAgICAgICAgJFNRTCAuPSAnQU5EIGZhcV9pdGVtLmFwcHJvdmVkID0gMSAnOwoKICAgICAgICAjIG9ubHkgc2hvdyB0aGUgcHVibGljIGFydGljbGVzCiAgICAgICAgJFNRTCAuPSAiQU5EICggKCBmYXFfc3RhdGVfdHlwZS5uYW1lID0gJ3B1YmxpYycgQU5EIGZhcV9sb2cuaW50ZXJmYWNlID0gJ3B1YmxpYycgKSAiOwoKICAgICAgICAjIGN1c3RvbWVycyBjYW4gYWRkaXRpb25hbGx5IHNlZSB0aGUgZXh0ZXJuYWwgYXJ0aWNsZXMKICAgICAgICBpZiAoICRQYXJhbXtJbnRlcmZhY2V9IGVxICdleHRlcm5hbCcgKSB7CiAgICAgICAgICAgICRTUUwgLj0gIk9SICggZmFxX3N0YXRlX3R5cGUubmFtZSA9ICdleHRlcm5hbCcgQU5EIGZhcV9sb2cuaW50ZXJmYWNlID0gJ2V4dGVybmFsJyApICI7CiAgICAgICAgfQoKICAgICAgICAkU1FMIC49ICcpICc7CiAgICB9CgogICAgIyBmaWx0ZXIgcmVzdWx0cyBmb3IgZGVmaW5lZCB0aW1lIHBlcmlvZAogICAgaWYgKCAkUGFyYW17U3RhcnREYXRlfSAmJiAkUGFyYW17RW5kRGF0ZX0gKSB7CiAgICAgICAgJFNRTCAuPSAnQU5EIGZhcV9sb2cuY3JlYXRlZCA+PSA/IEFORCBmYXFfbG9nLmNyZWF0ZWQgPD0gPyAnOwogICAgICAgIHB1c2ggQEJpbmQsICggXCRQYXJhbXtTdGFydERhdGV9LCBcJFBhcmFte0VuZERhdGV9ICk7CiAgICB9CgogICAgIyBjb21wbGV0ZSBTUUwgc3RhdGVtZW50CiAgICAkU1FMIC49ICdHUk9VUCBCWSBpdGVtX2lkLCBmYXFfc3RhdGVfdHlwZS5uYW1lLCBhcHByb3ZlZCAnCiAgICAgICAgLiAnT1JERVIgQlkgaXRlbWNvdW50IERFU0MnOwoKICAgICMgZ2V0IHRoZSB0b3AgMTAgYXJ0aWNsZSBpZHMgZnJvbSBkYXRhYmFzZQogICAgcmV0dXJuIFtdIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMICAgPT4gJFNRTCwKICAgICAgICBCaW5kICA9PiBcQEJpbmQsCiAgICAgICAgTGltaXQgPT4gJFBhcmFte0xpbWl0fSB8fCAxMCwKICAgICk7CgogICAgbXkgQFJlc3VsdDsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIHB1c2ggQFJlc3VsdCwgewogICAgICAgICAgICBJdGVtSUQgICAgPT4gJFJvd1swXSwKICAgICAgICAgICAgQ291bnQgICAgID0+ICRSb3dbMV0sCiAgICAgICAgICAgIEludGVyZmFjZSA9PiAkUm93WzJdLAogICAgICAgIH07CiAgICB9CgogICAgcmV0dXJuIFxAUmVzdWx0Owp9Cgo9aGVhZDIgRkFRSW5saW5lQXR0YWNobWVudFVSTFVwZGF0ZSgpCgpVcGRhdGVzIHRoZSBVUkxzIG9mIHVwbG9hZGVkIGlubGluZSBhdHRhY2htZW50cy4KCiAgICBteSAkU3VjY2VzcyA9ICRGQVFPYmplY3QtPkZBUUlubGluZUF0dGFjaG1lbnRVUkxVcGRhdGUoCiAgICAgICAgSXRlbUlEICAgICA9PiAxMiwKICAgICAgICBGb3JtSUQgICAgID0+IDQ1NiwKICAgICAgICBGaWxlSUQgICAgID0+IDUsCiAgICAgICAgQXR0YWNobWVudCA9PiBcJUF0dGFjaG1lbnQsCiAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgKTsKClJldHVybnM6CgogICAgJFN1Y2Nlc3MgPSAxOyAgICAgICAgICAgICAgICMgb2YgdW5kZWYgaWYgYXR0YWNobWVudCBVUkwgY291bGQgbm90IGJlIHVwZGF0ZWQKCj1jdXQKCnN1YiBGQVFJbmxpbmVBdHRhY2htZW50VVJMVXBkYXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoSXRlbUlEIEF0dGFjaG1lbnQgRm9ybUlEIEZpbGVJRCBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIGlmIGF0dGFjaG1lbnQgaXMgYSBoYXNoIHJlZmVyZW5jZQogICAgaWYgKCByZWYgJFBhcmFte0F0dGFjaG1lbnR9IG5lICdIQVNIJyAmJiAhJXsgJFBhcmFte0F0dGFjaG1lbnR9IH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJBdHRhY2htZW50IG11c3QgYmUgYSBoYXNoIHJlZmVyZW5jZSEiLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIG9ubHkgY29uc2lkZXIgaW5saW5lIGF0dGFjaG1lbnRzIGhlcmUgKHRoZXkgaGF2ZSBhIGNvbnRlbnQgaWQpCiAgICByZXR1cm4gMSBpZiAhJFBhcmFte0F0dGFjaG1lbnR9LT57Q29udGVudElEfTsKCiAgICBteSAlRkFRRGF0YSA9ICRTZWxmLT5GQVFHZXQoCiAgICAgICAgSXRlbUlEICAgICA9PiAkUGFyYW17SXRlbUlEfSwKICAgICAgICBJdGVtRmllbGRzID0+IDEsCiAgICAgICAgVXNlcklEICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBwaWN0dXJlIFVSTCBpbiB1cGxvYWQgY2FjaGUKICAgIG15ICRTZWFyY2ggPSAiQWN0aW9uPVBpY3R1cmVVcGxvYWQgLiBGb3JtSUQ9XFEkUGFyYW17Rm9ybUlEfVxFIC4gIgogICAgICAgIC4gIkNvbnRlbnRJRD1cUSRQYXJhbXtBdHRhY2htZW50fS0+e0NvbnRlbnRJRH1cRSI7CgogICAgIyBwaWN0dXJlIFVSTCBpbiBGQVEgYXR0YWNobWVudAogICAgbXkgJFJlcGxhY2UgPSAiQWN0aW9uPUFnZW50RkFRWm9vbTtTdWJhY3Rpb249RG93bmxvYWRBdHRhY2htZW50OyIKICAgICAgICAuICJJdGVtSUQ9JFBhcmFte0l0ZW1JRH07RmlsZUlEPSRQYXJhbXtGaWxlSUR9IjsKCiAgICAjIHJld3JpdGUgcGljdHVyZSBVUkxzCiAgICBGSUVMRDoKICAgIGZvciBteSAkTnVtYmVyICggMSAuLiA2ICkgewoKICAgICAgICAjIGNoZWNrIGlmIGZpZWxkIGNvbnRhaW5zIHNvbWV0aGluZwogICAgICAgIG5leHQgRklFTEQgaWYgISRGQVFEYXRheyJGaWVsZCROdW1iZXIifTsKCiAgICAgICAgIyByZW1vdmUgbmV3bGluZXMKICAgICAgICAkRkFRRGF0YXsiRmllbGQkTnVtYmVyIn0gPX4gc3sgW1xuXHJdKyB9e31neG1zOwoKICAgICAgICAjIHJlcGxhY2UgVVJMCiAgICAgICAgJEZBUURhdGF7IkZpZWxkJE51bWJlciJ9ID1+IHN7JFNlYXJjaH17JFJlcGxhY2V9eG1zOwogICAgfQoKICAgICMgdXBkYXRlIEZBUSBhcnRpY2xlIHdpdGhvdXQgd3JpdGluZyBhIGhpc3RvcnkgZW50cnkKICAgIG15ICRTdWNjZXNzID0gJFNlbGYtPkZBUVVwZGF0ZSgKICAgICAgICAlRkFRRGF0YSwKICAgICAgICBIaXN0b3J5T2ZmICA9PiAxLAogICAgICAgIEFwcHJvdmFsT2ZmID0+IDEsCiAgICAgICAgVXNlcklEICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgY2hlY2sgaWYgdXBkYXRlIHdhcyBzdWNjZXNzZnVsCiAgICBpZiAoICEkU3VjY2VzcyApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkNvdWxkIG5vdCB1cGRhdGUgRkFRIEl0ZW0jICckUGFyYW17SXRlbUlEfSchIiwKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBGQVFBcnRpY2xlVGl0bGVDbGVhbigpCgpzdHJpcC9jbGVhbiB1cCBhIEZBUSBhcnRpY2xlIHRpdGxlCgogICAgbXkgJE5ld1RpdGxlID0gJEZBUU9iamVjdC0+RkFRQXJ0aWNsZVRpdGxlQ2xlYW4oCiAgICAgICAgVGl0bGUgICAgICA9PiAkT2xkVGl0bGUsCiAgICAgICAgU2l6ZSAgICAgICA9PiAkVGl0bGVTaXplVG9CZURpc3BsYXllZCAgICMgb3B0aW9uYWwsIGlmIDAgZG8gbm90IGN1dCB0aXRsZQogICAgKTsKCj1jdXQKCnN1YiBGQVFBcnRpY2xlVGl0bGVDbGVhbiB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRUaXRsZSA9ICRQYXJhbXtUaXRsZX0gfHwgJyc7CgogICAgIyBnZXQgY29uZmlnIG9wdGlvbnMKICAgIG15ICRUaXRsZVNpemUgPSAkUGFyYW17U2l6ZX07CiAgICBpZiAoICFkZWZpbmVkICRUaXRsZVNpemUgKSB7CiAgICAgICAgJFRpdGxlU2l6ZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnRkFROjpUaXRsZVNpemUnKSB8fCAxMDA7CiAgICB9CgogICAgIyB0cmltIHdoaXRlIHNwYWNlIGF0IHRoZSBiZWdpbm5pbmcgb3IgZW5kCiAgICAkVGl0bGUgPX4gcy8oXlxzK3xccyskKS8vOwoKICAgICMgcmVzaXplIHRpdGxlIGJhc2VkIG9uIGNvbmZpZwogICAgIyBkbyBub3QgY3V0IHRpdGxlLCBpZiBzaXplIHBhcmFtZXRlciB3YXMgMAogICAgaWYgKCRUaXRsZVNpemUpIHsKICAgICAgICAkVGl0bGUgPX4gcy9eKC57JFRpdGxlU2l6ZX0pLiokLyQxIFsuLi5dLzsKICAgIH0KCiAgICByZXR1cm4gJFRpdGxlOwp9Cgo9aGVhZDIgRkFRQ29udGVudFR5cGVTZXQoKQoKU2V0cyB0aGUgY29udGVudCB0eXBlIG9mIDEsIHNvbWUgb3IgYWxsIEZBUSBpdGVtcywgYnkgYSBnaXZlbiBwYXJhbWV0ZXIgb3IgZGV0ZXJtaW5lZCBieSB0aGUgRkFRIGl0ZW0gY29udGVudAoKICAgIG15ICRTdWNjZXNzID0gJEZBUU9iamVjdC0+RkFRQ29udGVudFR5cGVTZXQoCiAgICAgICAgRkFRSXRlbUlEcyAgPT4gWyAxLCAyLCAzIF0sICAgICAgICAgICAgICMgb3B0aW9uYWwsCiAgICAgICAgQ29udGVudFR5cGUgPT4gJ3NvbWUgY29udGVudCB0eXBlJywgICAgICMgb3B0aW9uYWwsCiAgICApOwoKPWN1dAoKc3ViIEZBUUNvbnRlbnRUeXBlU2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgaWYgKCAkUGFyYW17RkFRSXRlbUlEc30gJiYgIUlzQXJyYXlSZWZXaXRoRGF0YSggJFBhcmFte0ZBUUl0ZW1JRHN9ICkgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJJbnZhbGlkIEZBUUl0ZW1JRHMgZm9ybWF0ISIsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgIG15ICRDb250ZW50VHlwZSA9ICRQYXJhbXtDb250ZW50VHlwZX0gfHwgJyc7CgogICAgIyBHZXQgZGVmYXVsdCBjb250ZW50IHR5cGUgZnJvbSB0aGUgY29uZmlnIGlmIGl0IHdhcyBub3QgZ2l2ZW4uCiAgICBpZiAoICEkQ29udGVudFR5cGUgKSB7CgogICAgICAgICRDb250ZW50VHlwZSA9ICd0ZXh0L3BsYWluJzsKICAgICAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgnRnJvbnRlbmQ6OlJpY2hUZXh0JykgJiYgJENvbmZpZ09iamVjdC0+R2V0KCdGQVE6Okl0ZW06OkhUTUwnKSApIHsKICAgICAgICAgICAgJENvbnRlbnRUeXBlID0gJ3RleHQvaHRtbCc7CiAgICAgICAgfQogICAgfQoKICAgICMgU1FMIHRvIHNldCB0aGUgY29udGVudCB0eXBlIChkZWZhdWx0IG9yIGdpdmVuKS4KICAgIG15ICRTUUwgPSAnCiAgICAgICAgVVBEQVRFIGZhcV9pdGVtCiAgICAgICAgU0VUIGNvbnRlbnRfdHlwZSA9ID8nOwoKICAgICMgR2V0IEZBUSBpdGVtIElEcyBmcm9tIHRoZSBwYXJhbS4KICAgIG15IEBGQVFJdGVtSURzID0gQHsgJFBhcmFte0ZBUUl0ZW1JRHN9IC8vIFtdIH07CgogICAgIyBSZXN0cmljdCB0byBvbmx5IGdpdmVuIEZBUSBpdGVtIElEcyAoaWYgYW55KS4KICAgIGlmIChARkFRSXRlbUlEcykgewoKICAgICAgICBteSAkSURTdHJpbmcgPSBqb2luICcsJywgQEZBUUl0ZW1JRHM7CgogICAgICAgICRTUUwgLj0gIgogICAgICAgICAgICBXSEVSRSBpZCBJTiAoJElEU3RyaW5nKSI7CiAgICB9CgogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBTZXQgdGhlIGNvbnRlbnQgdHlwZSBlaXRoZXIgYnkgdGhlIGdpdmVuIHBhcmFtIG9yIGFjY29yZGluZyB0byB0aGUgc3lzdGVtIHNldHRpbmdzLgogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPkRvKAogICAgICAgIFNRTCAgPT4gJFNRTCwKICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgXCRDb250ZW50VHlwZSwKICAgICAgICBdLAogICAgKTsKCiAgICAjIE5vIG5lZWQgdG8gZ28gZnVydGhlciBpZiBjb250ZW50IHR5cGUgd2FzIGdpdmVuIChpdCB3YXMgYWxyZWFkeSBzZXQpLgogICAgaWYgKCAkUGFyYW17Q29udGVudFR5cGV9ICkgewoKICAgICAgICAjIERlbGV0ZSBjYWNoZQogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKAogICAgICAgICAgICBUeXBlID0+ICdGQVEnLAogICAgICAgICk7CgogICAgICAgIHJldHVybiAxOwogICAgfQoKICAgICMgT3RoZXJ3aXNlIGNvbnRlbnQgdHlwZSBoYXMgdG8gYmUgZGV0ZXJtaW5lZCBieSB0aGUgRkFRIGl0ZW0gY29udGVudC4KCiAgICAjIEdldCBhbGwgRkFRSURzIChpZiBubyBmYXEgaXRlbSB3YXMgZ2l2ZW4pLgogICAgaWYgKCAhQEZBUUl0ZW1JRHMgKSB7CiAgICAgICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgICAgICBTRUxFQ1QgRElTVElOQ1QoZmFxX2l0ZW0uaWQpCiAgICAgICAgICAgICAgICBGUk9NIGZhcV9pdGVtCiAgICAgICAgICAgICAgICBPUkRFUiBCWSBpZCBBU0MnLAogICAgICAgICk7CgogICAgICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICAgICBwdXNoIEBGQVFJdGVtSURzLCAkUm93WzBdOwogICAgICAgIH0KICAgIH0KCiAgICAjIExvb3AgdHJvdWdoIHRoZSBGQVEgaXRlbXMuCiAgICBJVEVNSUQ6CiAgICBmb3IgbXkgJEl0ZW1JRCAoQEZBUUl0ZW1JRHMpIHsKICAgICAgICBteSAkRGV0ZXJtaW5lZENvbnRlbnRUeXBlID0gJ3RleHQvcGxhaW4nOwoKICAgICAgICAjIEdldCB0aGUgY29udGVudHMgb2YgZWFjaCBmaWVsZAogICAgICAgIEZJRUxEOgogICAgICAgIGZvciBteSAkRmllbGQgKHF3KEZpZWxkMSBGaWVsZDIgRmllbGQzIEZpZWxkNCBGaWVsZDUgRmllbGQ2KSkgewoKICAgICAgICAgICAgbXkgJEZpZWxkQ29udGVudCA9ICRTZWxmLT5JdGVtRmllbGRHZXQoCiAgICAgICAgICAgICAgICBJdGVtSUQgPT4gJEl0ZW1JRCwKICAgICAgICAgICAgICAgIEZpZWxkICA9PiAkRmllbGQsCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG5leHQgRklFTEQgaWYgISRGaWVsZENvbnRlbnQ7CgogICAgICAgICAgICAjIGlmIGZpZWxkIGNvbnRlbnQgc2VhbXMgdG8gYmUgSFRNTCBzZXQgdGhlIGNvbnRlbnQgdHlwZSB0byBIVE1MCiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICRGaWVsZENvbnRlbnQKICAgICAgICAgICAgICAgID1+IG17KD86IDxiclxzKi8+IHwgPC9saT4gfCA8L29sPiB8IDwvdWw+IHwgPC90YWJsZT4gfCA8L3RyPiB8IDwvdGQ+IHwgPC9kaXY+IHwgPC9vPiB8IDwvaT4gfCA8L3NwYW4+IHwgPC9oXGQ+IHwgPC9wPiB8IDwvcHJlPiApfW1zeAogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAkRGV0ZXJtaW5lZENvbnRlbnRUeXBlID0gJ3RleHQvaHRtbCc7CiAgICAgICAgICAgICAgICBsYXN0IEZJRUxEOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBuZXh0IElURU1JRCBpZiAkRGV0ZXJtaW5lZENvbnRlbnRUeXBlIGVxICRDb250ZW50VHlwZTsKCiAgICAgICAgIyBTZXQgdGhlIGNvbnRlbnQgdHlwZSBhY2NvcmRpbmcgdG8gdGhlIGZpZWxkIGNvbnRlbnQuCiAgICAgICAgcmV0dXJuIGlmICEkREJPYmplY3QtPkRvKAogICAgICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICAgICAgVVBEQVRFIGZhcV9pdGVtCiAgICAgICAgICAgICAgICBTRVQgY29udGVudF90eXBlID0gPwogICAgICAgICAgICAgICAgV0hFUkUgaWQgPT8nLAogICAgICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgICAgIFwkRGV0ZXJtaW5lZENvbnRlbnRUeXBlLAogICAgICAgICAgICAgICAgXCRJdGVtSUQsCiAgICAgICAgICAgIF0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIERlbGV0ZSBjYWNoZQogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoCiAgICAgICAgVHlwZSA9PiAnRkFRJywKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMSBERVBSRUNBVEVEIEZVTkNUSU9OUwoKPWhlYWQyIEhpc3RvcnlHZXQoKQoKRGVwcmVjYXRlZCwgdXNlIEZBUUpvdXJuYWxHZXQoKSBpbnN0ZWFkLgoKPWN1dAoKc3ViIEhpc3RvcnlHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICByZXR1cm4gJFNlbGYtPkZBUUpvdXJuYWxHZXQoJVBhcmFtKTsKfQoKPWhlYWQxIFBSSVZBVEUgRlVOQ1RJT05TCgo9aGVhZDIgX0ZBUUFwcHJvdmFsVXBkYXRlKCkKCnVwZGF0ZSB0aGUgYXBwcm92YWwgc3RhdGUgb2YgYW4gYXJ0aWNsZQoKICAgIG15ICRTdWNjZXNzID0gJEZBUU9iamVjdC0+X0ZBUUFwcHJvdmFsVXBkYXRlKAogICAgICAgIEl0ZW1JRCAgICAgPT4gMTIzLAogICAgICAgIEFwcHJvdmVkICAgPT4gMSwgICAgIyAwfDEgKGRlZmF1bHQgMCkKICAgICAgICBVc2VySUQgICAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIF9GQVFBcHByb3ZhbFVwZGF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRMb2dPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyk7CgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoSXRlbUlEIFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBpZiAoICFkZWZpbmVkICRQYXJhbXtBcHByb3ZlZH0gKSB7CiAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBBcHByb3ZlZCBwYXJhbWV0ZXIhJywKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyB1cGRhdGUgZGF0YWJhc2UKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgIFNRTCA9PiAnVVBEQVRFIGZhcV9pdGVtIFNFVCAnCiAgICAgICAgICAgIC4gJ2FwcHJvdmVkID0gPywgJwogICAgICAgICAgICAuICdjaGFuZ2VkID0gY3VycmVudF90aW1lc3RhbXAsICcKICAgICAgICAgICAgLiAnY2hhbmdlZF9ieSA9ID8gJwogICAgICAgICAgICAuICdXSEVSRSBpZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWwogICAgICAgICAgICBcJFBhcmFte0FwcHJvdmVkfSwKICAgICAgICAgICAgXCRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICBcJFBhcmFte0l0ZW1JRH0sCiAgICAgICAgXSwKICAgICk7CgogICAgIyBhcHByb3ZhbCBmZWF0dXJlIGlzIGFjdGl2YXRlZCBhbmQgRkFRIGFydGljbGUgaXMgbm90IGFwcHJvdmVkIHlldAogICAgaWYgKCAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0ZBUTo6QXBwcm92YWxSZXF1aXJlZCcpICYmICEkUGFyYW17QXBwcm92ZWR9ICkgewoKICAgICAgICBteSAlRkFRRGF0YSA9ICRTZWxmLT5GQVFHZXQoCiAgICAgICAgICAgIEl0ZW1JRCAgICAgPT4gJFBhcmFte0l0ZW1JRH0sCiAgICAgICAgICAgIEl0ZW1GaWVsZHMgPT4gMCwKICAgICAgICAgICAgVXNlcklEICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICBteSAkQXBwcm92YWxSZXF1aXJlZCAgICAgICAgPSAxOwogICAgICAgIG15ICRBcHByb3ZhbEluY2x1ZGVJbnRlcm5hbCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnRkFROjpBcHByb3ZhbDo6SW5jbHVkZUludGVybmFsJyk7CgogICAgICAgIGlmICggISRBcHByb3ZhbEluY2x1ZGVJbnRlcm5hbCApIHsKICAgICAgICAgICAgbXkgJUludGVybmFsU3RhdGUgPSAkU2VsZi0+U3RhdGVMaXN0KAogICAgICAgICAgICAgICAgVHlwZXMgID0+IFsnaW50ZXJuYWwnXSwKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCAkSW50ZXJuYWxTdGF0ZXsgJEZBUURhdGF7U3RhdGVJRH0gfSApIHsKICAgICAgICAgICAgICAgICRBcHByb3ZhbFJlcXVpcmVkID0gMDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKCAkQXBwcm92YWxSZXF1aXJlZCApIHsKICAgICAgICAgICAgIyBjcmVhdGUgbmV3IGFwcHJvdmFsIHRpY2tldAogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRTZWxmLT5fRkFRQXBwcm92YWxUaWNrZXRDcmVhdGUoCiAgICAgICAgICAgICAgICBJdGVtSUQgICAgID0+ICRQYXJhbXtJdGVtSUR9LAogICAgICAgICAgICAgICAgQ2F0ZWdvcnlJRCA9PiAkRkFRRGF0YXtDYXRlZ29yeUlEfSwKICAgICAgICAgICAgICAgIExhbmd1YWdlSUQgPT4gJEZBUURhdGF7TGFuZ3VhZ2VJRH0sCiAgICAgICAgICAgICAgICBGQVFOdW1iZXIgID0+ICRGQVFEYXRhe051bWJlcn0sCiAgICAgICAgICAgICAgICBUaXRsZSAgICAgID0+ICRGQVFEYXRhe1RpdGxlfSwKICAgICAgICAgICAgICAgIFN0YXRlSUQgICAgPT4gJEZBUURhdGF7U3RhdGVJRH0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgICAgICBpZiAoICEkU3VjY2VzcyApIHsKICAgICAgICAgICAgICAgICRMb2dPYmplY3QtPkxvZygKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdDb3VsZCBub3QgY3JlYXRlIGFwcHJvdmFsIHRpY2tldCEnLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIF9GQVFBcHByb3ZhbFRpY2tldENyZWF0ZSgpCgpjcmVhdGVzIGFuIGFwcHJvdmFsIHRpY2tldAoKICAgIG15ICRTdWNjZXNzID0gJEZBUU9iamVjdC0+X0ZBUUFwcHJvdmFsVGlja2V0Q3JlYXRlKAogICAgICAgIEl0ZW1JRCAgICAgPT4gMTIzLAogICAgICAgIENhdGVnb3J5SUQgPT4gMiwKICAgICAgICBMYW5ndWFnZUlEID0+IDEsCiAgICAgICAgRkFRTnVtYmVyICA9PiAxMDIxMSwKICAgICAgICBUaXRsZSAgICAgID0+ICdTb21lIFRpdGxlJywKICAgICAgICBTdGF0ZUlEICAgID0+IDEsCiAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBfRkFRQXBwcm92YWxUaWNrZXRDcmVhdGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhJdGVtSUQgQ2F0ZWdvcnlJRCBGQVFOdW1iZXIgVGl0bGUgU3RhdGVJRCBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBteSAkVGlja2V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpOwogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBnZXQgc3ViamVjdAogICAgbXkgJFN1YmplY3QgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6QXBwcm92YWxUaWNrZXRTdWJqZWN0Jyk7CiAgICAkU3ViamVjdCA9fiBzeyA8T1RPQk9fRkFRX05VTUJFUj4gICAgIH17JFBhcmFte0ZBUU51bWJlcn19eG1zOwogICAgJFN1YmplY3QgPX4gc3sgPE9UT0JPX0ZBUV9DQVRFR09SWUlEPiB9eyRQYXJhbXtDYXRlZ29yeUlEfX14bXM7CiAgICAkU3ViamVjdCA9fiBzeyA8T1RPQk9fRkFRX0lURU1JRD4gICAgIH17JFBhcmFte0l0ZW1JRH19eG1zOwogICAgJFN1YmplY3QgPX4gc3sgPE9UT0JPX0ZBUV9USVRMRT4gICAgICB9eyRQYXJhbXtUaXRsZX19eG1zOwogICAgJFN1YmplY3QgPX4gc3sgPE9UT0JPX0ZBUV9TVEFURUlEPiAgICB9eyRQYXJhbXtTdGF0ZUlEfX14bXM7CgogICAgIyBjaGVjayBpZiB3ZSBjYW4gZmluZCBleGlzdGluZyBvcGVuIGFwcHJvdmFsIHRpY2tldHMgZm9yIHRoaXMgRkFRIGFydGljbGUKICAgIG15IEBUaWNrZXRJRHMgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRTZWFyY2goCiAgICAgICAgUmVzdWx0ICAgID0+ICdBUlJBWScsCiAgICAgICAgVGl0bGUgICAgID0+ICRTdWJqZWN0LAogICAgICAgIFN0YXRlVHlwZSA9PiAnT3BlbicsCiAgICAgICAgVXNlcklEICAgID0+IDEsCiAgICApOwoKICAgICMgd2UgZG9uJ3QgbmVlZCB0byBjcmVhdGUgYW5vdGhlciBhcHByb3ZhbCB0aWNrZXQgaWYgdGhlcmUgaXMgc3RpbGwgYXQgbGVhc3Qgb25lIHRpY2tldCBvcGVuCiAgICAjIGZvciB0aGlzIEZBUSBhcnRpY2xlCiAgICByZXR1cm4gMSBpZiBAVGlja2V0SURzOwoKICAgICMgZ2V0IHRpY2tldCB0eXBlIGZyb20gU3lzQ29uZmlnCiAgICBteSAkVGlja2V0VHlwZSA9ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpBcHByb3ZhbFRpY2tldFR5cGUnKSB8fCAnJzsKCiAgICAjIHZhbGlkYXRlIHRpY2tldCB0eXBlIGlmIGFueQogICAgaWYgKCRUaWNrZXRUeXBlKSB7CgogICAgICAgICMgZ2V0IGEgdGlja2V0IHR5cGUgbG9va3VwIHRhYmxlCiAgICAgICAgbXkgJVR5cGVMaXN0ICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VHlwZScpLT5UeXBlTGlzdCgpOwogICAgICAgIG15ICVUeXBlTG9va3VwID0gcmV2ZXJzZSAlVHlwZUxpc3Q7CgogICAgICAgICMgc2V0ICRUaWNrZXRUeXBlIHRvIGVtcHR5IGlmIFRpY2tleVR5cGUgZG9lcyBub3QgYXBwZWFyIGluIHRoZSBsb29rdXAgdGFibGUuIElmIHNldCB0bwogICAgICAgICMgICAgZW1wdHkgVGlja2V0Q3JlYXRlKCkgd2lsbCB1c2UgYXMgZGVmYXVsdCBUeXBlSUQgPSAxLCBubyBtYXR0ZXIgaWYgaXQgaXMgdmFsaWQgb3Igbm90LgogICAgICAgICRUaWNrZXRUeXBlID0gJFR5cGVMb29rdXB7JFRpY2tldFR5cGV9ID8gJFRpY2tldFR5cGUgOiAnJzsKICAgIH0KCiAgICBteSAkVGlja2V0SUQgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRDcmVhdGUoCiAgICAgICAgVGl0bGUgICAgPT4gJFN1YmplY3QsCiAgICAgICAgUXVldWUgICAgPT4gJENvbmZpZ09iamVjdC0+R2V0KCdGQVE6OkFwcHJvdmFsUXVldWUnKSB8fCAnUmF3JywKICAgICAgICBMb2NrICAgICA9PiAndW5sb2NrJywKICAgICAgICBQcmlvcml0eSA9PiAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6QXBwcm92YWxUaWNrZXRQcmlvcml0eScpICAgICB8fCAnMyBub3JtYWwnLAogICAgICAgIFN0YXRlICAgID0+ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpBcHByb3ZhbFRpY2tldERlZmF1bHRTdGF0ZScpIHx8ICduZXcnLAogICAgICAgIFR5cGUgICAgID0+ICRUaWNrZXRUeXBlLAogICAgICAgIE93bmVySUQgID0+IDEsCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICk7CgogICAgaWYgKCRUaWNrZXRJRCkgewoKICAgICAgICBteSAkVXNlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7CgogICAgICAgIG15ICRVc2VyTmFtZSA9ICRVc2VyT2JqZWN0LT5Vc2VyTmFtZSgKICAgICAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgIG15ICVTdGF0ZSA9ICRTZWxmLT5TdGF0ZUdldCgKICAgICAgICAgICAgU3RhdGVJRCA9PiAkUGFyYW17U3RhdGVJRH0sCiAgICAgICAgICAgIFVzZXJJRCAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjYXRlZ29yaWVzIGNhbiBiZSBuZXN0ZWQ7IHlvdSBjYW4gaGF2ZSBzb21lOjpsb25nOjpjYXRlZ29yeS4KICAgICAgICBteSBAQ2F0ZWdvcnlOYW1lczsKICAgICAgICBteSAkQ2F0ZWdvcnlJRCA9ICRQYXJhbXtDYXRlZ29yeUlEfTsKICAgICAgICBDQVRFR09SWToKICAgICAgICB3aGlsZSAoMSkgewogICAgICAgICAgICBteSAlQ2F0ZWdvcnkgPSAkU2VsZi0+Q2F0ZWdvcnlHZXQoCiAgICAgICAgICAgICAgICBDYXRlZ29yeUlEID0+ICRDYXRlZ29yeUlELAogICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcHVzaCBAQ2F0ZWdvcnlOYW1lcywgJENhdGVnb3J5e05hbWV9OwogICAgICAgICAgICBsYXN0IENBVEVHT1JZIGlmICEkQ2F0ZWdvcnl7UGFyZW50SUR9OwogICAgICAgICAgICAkQ2F0ZWdvcnlJRCA9ICRDYXRlZ29yeXtQYXJlbnRJRH07CiAgICAgICAgfQogICAgICAgIG15ICRDYXRlZ29yeSA9IGpvaW4oICc6OicsIHJldmVyc2UgQENhdGVnb3J5TmFtZXMgKTsKCiAgICAgICAgbXkgJExhbmd1YWdlOwogICAgICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdGQVE6Ok11bHRpTGFuZ3VhZ2UnKSApIHsKICAgICAgICAgICAgJExhbmd1YWdlID0gJFNlbGYtPkxhbmd1YWdlTG9va3VwKAogICAgICAgICAgICAgICAgTGFuZ3VhZ2VJRCA9PiAkUGFyYW17TGFuZ3VhZ2VJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkTGFuZ3VhZ2UgPSAnLSc7CiAgICAgICAgfQoKICAgICAgICAjIGdldCBib2R5IGZyb20gY29uZmlnCiAgICAgICAgbXkgJEJvZHkgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6QXBwcm92YWxUaWNrZXRCb2R5Jyk7CiAgICAgICAgJEJvZHkgPX4gc3sgPE9UT0JPX0ZBUV9DQVRFR09SWUlEPiB9eyRQYXJhbXtDYXRlZ29yeUlEfX14bXM7CiAgICAgICAgJEJvZHkgPX4gc3sgPE9UT0JPX0ZBUV9DQVRFR09SWT4gICB9eyRDYXRlZ29yeX14bXM7CiAgICAgICAgJEJvZHkgPX4gc3sgPE9UT0JPX0ZBUV9MQU5HVUFHRT4gICB9eyRMYW5ndWFnZX14bXM7CiAgICAgICAgJEJvZHkgPX4gc3sgPE9UT0JPX0ZBUV9JVEVNSUQ+ICAgICB9eyRQYXJhbXtJdGVtSUR9fXhtczsKICAgICAgICAkQm9keSA9fiBzeyA8T1RPQk9fRkFRX05VTUJFUj4gICAgIH17JFBhcmFte0ZBUU51bWJlcn19eG1zOwogICAgICAgICRCb2R5ID1+IHN7IDxPVE9CT19GQVFfVElUTEU+ICAgICAgfXskUGFyYW17VGl0bGV9fXhtczsKICAgICAgICAkQm9keSA9fiBzeyA8T1RPQk9fRkFRX0FVVEhPUj4gICAgIH17JFVzZXJOYW1lfXhtczsKICAgICAgICAkQm9keSA9fiBzeyA8T1RPQk9fRkFRX1NUQVRFPiAgICAgIH17JFN0YXRle05hbWV9fXhtczsKCiAgICAgICAgbXkgJVVzZXIgPSAkVXNlck9iamVjdC0+R2V0VXNlckRhdGEoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSBmcm9tIHN0cmluZwogICAgICAgIG15ICRGcm9tID0gIlwiJFVzZXJ7VXNlckZ1bGxuYW1lfVwiIDwkVXNlcntVc2VyRW1haWx9PiI7CgogICAgICAgIG15ICRBcnRpY2xlT2JqZWN0ICAgICAgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldDo6QXJ0aWNsZScpOwogICAgICAgIG15ICRJbnRlcm5hbEFydGljbGVCYWNrZW5kT2JqZWN0ID0gJEFydGljbGVPYmplY3QtPkJhY2tlbmRGb3JDaGFubmVsKCBDaGFubmVsTmFtZSA9PiAnSW50ZXJuYWwnICk7CgogICAgICAgIG15ICRBcnRpY2xlSUQgPSAkSW50ZXJuYWxBcnRpY2xlQmFja2VuZE9iamVjdC0+QXJ0aWNsZUNyZWF0ZSgKICAgICAgICAgICAgVGlja2V0SUQgICAgICAgICAgICAgPT4gJFRpY2tldElELAogICAgICAgICAgICBTZW5kZXJUeXBlICAgICAgICAgICA9PiAnYWdlbnQnLAogICAgICAgICAgICBJc1Zpc2libGVGb3JDdXN0b21lciA9PiAwLAogICAgICAgICAgICBGcm9tICAgICAgICAgICAgICAgICA9PiAkRnJvbSwKICAgICAgICAgICAgU3ViamVjdCAgICAgICAgICAgICAgPT4gJFN1YmplY3QsCiAgICAgICAgICAgIEJvZHkgICAgICAgICAgICAgICAgID0+ICRCb2R5LAogICAgICAgICAgICBDb250ZW50VHlwZSAgICAgICAgICA9PiAndGV4dC9wbGFpbjsgY2hhcnNldD11dGYtOCcsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICBIaXN0b3J5VHlwZSAgICAgICAgICA9PgogICAgICAgICAgICAgICAgJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUnKS0+e0hpc3RvcnlUeXBlfQogICAgICAgICAgICAgICAgfHwgJ0FkZE5vdGUnLAogICAgICAgICAgICBIaXN0b3J5Q29tbWVudCA9PgogICAgICAgICAgICAgICAgJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUnKS0+e0hpc3RvcnlDb21tZW50fQogICAgICAgICAgICAgICAgfHwgJyUlTm90ZScsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuICRBcnRpY2xlSUQ7CiAgICB9CgogICAgcmV0dXJuOwp9CgojCiMgRGVsZXRlcyBhbGwgbmVlZGVkIEZBUSBpdGVtIGNhY2hlIGVudHJpZXMgZm9yIGEgZ2l2ZW4gRkFRIEl0ZW1JRC4KIwpzdWIgX0RlbGV0ZUZyb21GQVFDYWNoZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkTmVlZGVkIChxdyhJdGVtSUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJENhY2hlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyk7CgogICAgIyBDbGVhciBGQVFHZXQgY2FjaGUKICAgICRDYWNoZU9iamVjdC0+RGVsZXRlKAogICAgICAgIFR5cGUgPT4gJ0ZBUScsCiAgICAgICAgS2V5ICA9PiAnRkFRR2V0OjpJdGVtSUQ6OicgLiAkUGFyYW17SXRlbUlEfSAuICc6Okl0ZW1GaWVsZHM6OjEnLAogICAgKTsKICAgICRDYWNoZU9iamVjdC0+RGVsZXRlKAogICAgICAgIFR5cGUgPT4gJ0ZBUScsCiAgICAgICAgS2V5ICA9PiAnRkFRR2V0OjpJdGVtSUQ6OicgLiAkUGFyYW17SXRlbUlEfSAuICc6Okl0ZW1GaWVsZHM6OjAnLAogICAgKTsKCiAgICAjIENsZWFyIEl0ZW1GZWxkR2V0IGNhY2hlCiAgICAkQ2FjaGVPYmplY3QtPkRlbGV0ZSgKICAgICAgICBUeXBlID0+ICdGQVEnLAogICAgICAgIEtleSAgPT4gJ0l0ZW1GaWVsZEdldDo6SXRlbUlEOjonIC4gJFBhcmFte0l0ZW1JRH0sCiAgICApOwoKICAgICMgQ2xlYW51cCBjYWNoZSBmb3IgdGhlICdGQVFLZXl3b3JkQXJ0aWNsZUxpc3QnLgogICAgJENhY2hlT2JqZWN0LT5DbGVhblVwKAogICAgICAgIFR5cGUgPT4gJ0ZBUUtleXdvcmRBcnRpY2xlTGlzdCcsCiAgICApOwoKICAgIHJldHVybiAxOwp9CgoxOwoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UT0JPIHByb2plY3QgKEw8aHR0cHM6Ly9vdG9iby5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dD4uCgo9Y3V0Cg==</File>
        <File Location="Kernel/System/FAQSearch.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpGQVFTZWFyY2g7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OkRCJywKICAgICdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJywKICAgICdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcsCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkZBUVNlYXJjaCAtIEZBUSBzZWFyY2ggbGliCgo9aGVhZDEgREVTQ1JJUFRJT04KCkFsbCBGQVEgc2VhcmNoIGZ1bmN0aW9ucy4KCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9aGVhZDIgRkFRU2VhcmNoKCkKCnNlYXJjaCBpbiBGQVEgYXJ0aWNsZXMKCiAgICBteSBASURzID0gJEZBUU9iamVjdC0+RkFRU2VhcmNoKAoKICAgICAgICBOdW1iZXIgICAgPT4gJyoxMzQqJywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIFRpdGxlICAgICA9PiAnKnNvbWUgdGl0bGUqJywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCgogICAgICAgICMgaXMgc2VhcmNoaW5nIGluIE51bWJlciwgVGl0bGUsIEtleXdvcmQgYW5kIEZpZWxkMS02CiAgICAgICAgV2hhdCAgICAgID0+ICcqc29tZSB0ZXh0KicsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKCiAgICAgICAgS2V5d29yZCAgID0+ICcqd2Vic2VydmVyKicsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBTdGF0ZXMgICAgPT4geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgICAgICAxID0+ICdpbnRlcm5hbCcsCiAgICAgICAgICAgIDIgPT4gJ2V4dGVybmFsJywKICAgICAgICB9LAogICAgICAgIExhbmd1YWdlSURzID0+IFsgNCwgNSwgNiBdLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgQ2F0ZWdvcnlJRHMgPT4gWyA3LCA4LCA5IF0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBWYWxpZElEcyAgICA9PiBbIDEsIDIsIDMgXSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKSAoZGVmYXVsdCAxKQoKICAgICAgICBTZXJ2aWNlSUQgPT4gJFNlcnZpY2VJRCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQoKICAgICAgICAjIFVzZSBGQVFTZWFyY2ggYXMgYW4gRkFRIGZpbHRlciBvbiBhIHNpbmdsZSBGQVEgaXRlbSwKICAgICAgICAjIG9yIGEgcHJlZGVmaW5lZCBGQVEgaXRlbSBsaXN0CiAgICAgICAgRkFRSUQgICAgID0+IDEyMzQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBGQVFJRCAgICAgPT4gWzEyMzQsIDEyMzVdLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQoKICAgICAgICAjIEFwcHJvdmVkCiAgICAgICAgIyAgICBPbmx5IGF2YWlsYWJsZSBpbiBpbnRlcm5hbCBpbnRlcmZhY2UgKGFnZW50IGludGVyZmFjZSkKICAgICAgICBBcHByb3ZlZCAgICA9PiAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKSAxIG9yIDAsCgogICAgICAgICMgVm90ZXMKICAgICAgICAjICAgQXQgbGVhc3Qgb25lIG9wZXJhdG9yIG11c3QgYmUgc3BlY2lmaWVkLiBPcGVyYXRvcnMgd2lsbCBiZSBjb25uZWN0ZWQgd2l0aCBBTkQsCiAgICAgICAgIyAgICAgICB2YWx1ZXMgaW4gYW4gb3BlcmF0b3Igd2l0aCBPUi4KICAgICAgICAjICAgWW91IGNhbiBhbHNvIHBhc3MgbW9yZSB0aGFuIG9uZSBhcmd1bWVudCB0byBhbiBvcGVyYXRvcjogWzEyMywgNjU0XQogICAgICAgIFZvdGVzID0+IHsKICAgICAgICAgICAgRXF1YWxzICAgICAgICAgICAgPT4gMTIzLAogICAgICAgICAgICBHcmVhdGVyVGhhbiAgICAgICA9PiAxMjMsCiAgICAgICAgICAgIEdyZWF0ZXJUaGFuRXF1YWxzID0+IDEyMywKICAgICAgICAgICAgU21hbGxlclRoYW4gICAgICAgPT4gMTIzLAogICAgICAgICAgICBTbWFsbGVyVGhhbkVxdWFscyA9PiAxMjMsCiAgICAgICAgfQoKICAgICAgICAjIFJhdGUKICAgICAgICAjICAgQXQgbGVhc3Qgb25lIG9wZXJhdG9yIG11c3QgYmUgc3BlY2lmaWVkLiBPcGVyYXRvcnMgd2lsbCBiZSBjb25uZWN0ZWQgd2l0aCBBTkQsCiAgICAgICAgIyAgICAgICB2YWx1ZXMgaW4gYW4gb3BlcmF0b3Igd2l0aCBPUi4KICAgICAgICAjICAgWW91IGNhbiBhbHNvIHBhc3MgbW9yZSB0aGFuIG9uZSBhcmd1bWVudCB0byBhbiBvcGVyYXRvcjogWzUwLCA3NV0KICAgICAgICBSYXRlID0+IHsKICAgICAgICAgICAgRXF1YWxzICAgICAgICAgICAgPT4gNzUsCiAgICAgICAgICAgIEdyZWF0ZXJUaGFuICAgICAgID0+IDc1LAogICAgICAgICAgICBHcmVhdGVyVGhhbkVxdWFscyA9PiA3NSwKICAgICAgICAgICAgU21hbGxlclRoYW4gICAgICAgPT4gNzUsCiAgICAgICAgICAgIFNtYWxsZXJUaGFuRXF1YWxzID0+IDc1LAogICAgICAgIH0KCiAgICAgICAgIyBjcmVhdGUgRkFRIGl0ZW0gcHJvcGVydGllcyAob3B0aW9uYWwpCiAgICAgICAgQ3JlYXRlZFVzZXJJRHMgPT4gWzEsIDEyLCA0NTUsIDMyXQoKICAgICAgICAjIGNoYW5nZSBGQVEgaXRlbSBwcm9wZXJ0aWVzIChvcHRpb25hbCkKICAgICAgICBMYXN0Q2hhbmdlZFVzZXJJRHMgPT4gWzEsIDEyLCA0NTUsIDMyXQoKICAgICAgICAjIER5bmFtaWNGaWVsZHMKICAgICAgICAjICAgQXQgbGVhc3Qgb25lIG9wZXJhdG9yIG11c3QgYmUgc3BlY2lmaWVkLiBPcGVyYXRvcnMgd2lsbCBiZSBjb25uZWN0ZWQgd2l0aCBBTkQsCiAgICAgICAgIyAgICAgICB2YWx1ZXMgaW4gYW4gb3BlcmF0b3Igd2l0aCBPUi4KICAgICAgICAjICAgWW91IGNhbiBhbHNvIHBhc3MgbW9yZSB0aGFuIG9uZSBhcmd1bWVudCB0byBhbiBvcGVyYXRvcjogWyd2YWx1ZTEnLCAndmFsdWUyJ10KICAgICAgICBEeW5hbWljRmllbGRfRmllbGROYW1lWCA9PiB7CiAgICAgICAgICAgIEVxdWFscyAgICAgICAgICAgID0+IDEyMywKICAgICAgICAgICAgTGlrZSAgICAgICAgICAgICAgPT4gJ3ZhbHVlKicsICAgICAgICAgICAgICAgICMgImVxdWFscyIgb3BlcmF0b3Igd2l0aCB3aWxkLWNhcmQgc3VwcG9ydAogICAgICAgICAgICBHcmVhdGVyVGhhbiAgICAgICA9PiAnMjAwMS0wMS0wMSAwMTowMTowMScsCiAgICAgICAgICAgIEdyZWF0ZXJUaGFuRXF1YWxzID0+ICcyMDAxLTAxLTAxIDAxOjAxOjAxJywKICAgICAgICAgICAgU21hbGxlclRoYW4gICAgICAgPT4gJzIwMDItMDItMDIgMDI6MDI6MDInLAogICAgICAgICAgICBTbWFsbGVyVGhhbkVxdWFscyA9PiAnMjAwMi0wMi0wMiAwMjowMjowMicsCiAgICAgICAgfQoKICAgICAgICAjIEZBUSBpdGVtcyBjcmVhdGVkIG1vcmUgdGhhbiA2MCBtaW51dGVzIGFnbyAoaXRlbSBvbGRlciB0aGFuIDYwIG1pbnV0ZXMpICAob3B0aW9uYWwpCiAgICAgICAgSXRlbUNyZWF0ZVRpbWVPbGRlck1pbnV0ZXMgPT4gNjAsCiAgICAgICAgIyBGQVEgaXRlbSBjcmVhdGVkIGxlc3MgdGhhbiAxMjAgbWludXRlcyBhZ28gKGl0ZW0gbmV3ZXIgdGhhbiAxMjAgbWludXRlcykgKG9wdGlvbmFsKQogICAgICAgIEl0ZW1DcmVhdGVUaW1lTmV3ZXJNaW51dGVzID0+IDEyMCwKCiAgICAgICAgIyBGQVEgaXRlbXMgd2l0aCBjcmVhdGUgdGltZSBhZnRlciAuLi4gKGl0ZW0gbmV3ZXIgdGhhbiB0aGlzIGRhdGUpIChvcHRpb25hbCkKICAgICAgICBJdGVtQ3JlYXRlVGltZU5ld2VyRGF0ZSA9PiAnMjAwNi0wMS0wOSAwMDowMDowMScsCiAgICAgICAgIyBGQVEgaXRlbXMgd2l0aCBjcmVhdGVkIHRpbWUgYmVmb3JlIC4uLiAoaXRlbSBvbGRlciB0aGFuIHRoaXMgZGF0ZSkgKG9wdGlvbmFsKQogICAgICAgIEl0ZW1DcmVhdGVUaW1lT2xkZXJEYXRlID0+ICcyMDA2LTAxLTE5IDIzOjU5OjU5JywKCiAgICAgICAgIyBGQVEgaXRlbXMgY2hhbmdlZCBtb3JlIHRoYW4gNjAgbWludXRlcyBhZ28gKG9wdGlvbmFsKQogICAgICAgIEl0ZW1DaGFuZ2VUaW1lT2xkZXJNaW51dGVzID0+IDYwLAogICAgICAgICMgRkFRIGl0ZW1zIGNoYW5nZWQgbGVzcyB0aGFuIDEyMCBtaW51dGVzIGFnbyAob3B0aW9uYWwpCiAgICAgICAgSXRlbUNoYW5nZVRpbWVOZXdlck1pbnV0ZXMgPT4gMTIwLAoKICAgICAgICAjIEZBUSBpdGVtIHdpdGggY2hhbmdlZCB0aW1lIGFmdGVyIC4uLiAoaXRlbSBjaGFuZ2VkIG5ld2VyIHRoYW4gdGhpcyBkYXRlKSAob3B0aW9uYWwpCiAgICAgICAgSXRlbUNoYW5nZVRpbWVOZXdlckRhdGUgPT4gJzIwMDYtMDEtMDkgMDA6MDA6MDEnLAogICAgICAgICMgRkFRIGl0ZW0gd2l0aCBjaGFuZ2VkIHRpbWUgYmVmb3JlIC4uLiAoaXRlbSBjaGFuZ2VkIG9sZGVyIHRoYW4gdGhpcyBkYXRlKSAob3B0aW9uYWwpCiAgICAgICAgSXRlbUNoYW5nZVRpbWVPbGRlckRhdGUgPT4gJzIwMDYtMDEtMTkgMjM6NTk6NTknLAoKICAgICAgICBPcmRlckJ5ID0+IFsgJ0ZBUUlEJywgJ1RpdGxlJyBdLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgICMgZGVmYXVsdDogWyAnRkFRSUQnIF0sCiAgICAgICAgIyAoRkFRSUQsIE51bWJlciwgVGl0bGUsIExhbmd1YWdlLCBDYXRlZ29yeSwgVmFsaWQsIENyZWF0ZWQsCiAgICAgICAgIyBDaGFuZ2VkLCBTdGF0ZSwgVm90ZXMsIFJlc3VsdCkKCiAgICAgICAgIyBBZGRpdGlvbmFsIGluZm9ybWF0aW9uIGZvciBPcmRlckJ5OgogICAgICAgICMgVGhlIE9yZGVyQnlEaXJlY3Rpb24gY2FuIGJlIHNwZWNpZmllZCBmb3IgZWFjaCBPcmRlckJ5IGF0dHJpYnV0ZS4KICAgICAgICAjIFRoZSBwYWlyaW5nIGlzIG1hZGUgYnkgdGhlIGFycmF5IGluZGV4ZXMuCgogICAgICAgIE9yZGVyQnlEaXJlY3Rpb24gPT4gWyAnRG93bicsICdVcCcgXSwgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgIyBkZWZhdWx0OiBbICdVUCcgXQogICAgICAgICMgKERvd24gfCBVcCkKCiAgICAgICAgTGltaXQgICAgID0+IDE1MCwKCiAgICAgICAgSW50ZXJmYWNlID0+IHsgICAgICAgICAgICAgICMgKGRlZmF1bHQgaW50ZXJuYWwpCiAgICAgICAgICAgIFN0YXRlSUQgPT4gMywKICAgICAgICAgICAgTmFtZSAgICA9PiAncHVibGljJywgICAgIyBwdWJsaWMgfCBleHRlcm5hbCB8IGludGVybmFsCiAgICAgICAgfSwKICAgICAgICBVc2VySUQgICAgPT4gMSwKICAgICk7CgpSZXR1cm5zOgoKICAgIEBJRHMgPSAoCiAgICAgICAgMzIsCiAgICAgICAgMTMsCiAgICAgICAgMTIsCiAgICAgICAgOSwKICAgICAgICA2LAogICAgICAgIDUsCiAgICAgICAgNCwKICAgICAgICAxLAogICAgKTsKCj1jdXQKCnN1YiBGQVFTZWFyY2ggewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBpZiAoICEkUGFyYW17VXNlcklEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgVXNlcklEISIsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgc2V0IGRlZmF1bHQgaW50ZXJmYWNlCiAgICBpZiAoICEkUGFyYW17SW50ZXJmYWNlfSB8fCAhJFBhcmFte0ludGVyZmFjZX0tPntOYW1lfSApIHsKICAgICAgICAkUGFyYW17SW50ZXJmYWNlfS0+e05hbWV9ID0gJ2ludGVybmFsJzsKICAgIH0KCiAgICAjIHZlcmlmeSB0aGF0IGFsbCBwYXNzZWQgYXJyYXkgcGFyYW1ldGVycyBjb250YWluIGFuIGFycmF5IHJlZmVyZW5jZQogICAgQVJHVU1FTlQ6CiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhPcmRlckJ5IE9yZGVyQnlEaXJlY3Rpb24pKSB7CgogICAgICAgIGlmICggIWRlZmluZWQgJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRQYXJhbXskQXJndW1lbnR9IHx8PSBbXTsKCiAgICAgICAgICAgIG5leHQgQVJHVU1FTlQ7CiAgICAgICAgfQoKICAgICAgICBpZiAoIHJlZiAkUGFyYW17JEFyZ3VtZW50fSBuZSAnQVJSQVknICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiJEFyZ3VtZW50IG11c3QgYmUgYW4gYXJyYXkgcmVmZXJlbmNlISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgZGVmaW5lIG9yZGVyIHRhYmxlCiAgICBteSAlT3JkZXJCeVRhYmxlID0gKAoKICAgICAgICAjIEZBUSBpdGVtIGF0dHJpYnV0ZXMKICAgICAgICBGQVFJRCAgICA9PiAnaS5pZCcsCiAgICAgICAgTnVtYmVyICAgPT4gJ2kuZl9udW1iZXInLAogICAgICAgIFRpdGxlICAgID0+ICdpLmZfc3ViamVjdCcsCiAgICAgICAgTGFuZ3VhZ2UgPT4gJ2kuZl9sYW5ndWFnZV9pZCcsCiAgICAgICAgQ2F0ZWdvcnkgPT4gJ2kuY2F0ZWdvcnlfaWQnLAogICAgICAgIFZhbGlkICAgID0+ICdpLnZhbGlkX2lkJywKICAgICAgICBDcmVhdGVkICA9PiAnaS5jcmVhdGVkJywKICAgICAgICBDaGFuZ2VkICA9PiAnaS5jaGFuZ2VkJywKCiAgICAgICAgIyBTdGF0ZSBhdHRyaWJ1dGVzCiAgICAgICAgU3RhdGUgPT4gJ3MubmFtZScsCgogICAgICAgICMgVm90ZSBhdHRyaWJ1dGVzCiAgICAgICAgVm90ZXMgID0+ICd2b3RlcycsCiAgICAgICAgUmVzdWx0ID0+ICd2cmF0ZScsCiAgICApOwoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBxdW90ZSBpZCBhcnJheSBlbGVtZW50cwogICAgQVJHVU1FTlQ6CiAgICBmb3IgbXkgJEtleSAocXcoTGFuZ3VhZ2VJRHMgQ2F0ZWdvcnlJRHMgVmFsaWRJRHMgQ3JlYXRlZFVzZXJJRHMgTGFzdENoYW5nZWRVc2VySURzKSkgewogICAgICAgIG5leHQgQVJHVU1FTlQgaWYgISRQYXJhbXskS2V5fTsKCiAgICAgICAgaWYgKCAhSXNBcnJheVJlZldpdGhEYXRhKCAkUGFyYW17JEtleX0gKSApIHsKCiAgICAgICAgICAgICMgbG9nIGVycm9yCiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJUaGUgZ2l2ZW4gcGFyYW0gJyRLZXknIGlzIGludmFsaWQgb3IgYW4gZW1wdHkgYXJyYXkgcmVmZXJlbmNlISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAjIHF1b3RlIGVsZW1lbnRzCiAgICAgICAgZm9yIG15ICRFbGVtZW50ICggQHsgJFBhcmFteyRLZXl9IH0gKSB7CiAgICAgICAgICAgIGlmICggIWRlZmluZWQgJERCT2JqZWN0LT5RdW90ZSggJEVsZW1lbnQsICdJbnRlZ2VyJyApICkgewoKICAgICAgICAgICAgICAgICMgbG9nIGVycm9yCiAgICAgICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJUaGUgZ2l2ZW4gcGFyYW0gJyRFbGVtZW50JyBpbiAnJEtleScgaXMgaW52YWxpZCEiLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBteSAkRkFRRHluYW1pY0ZpZWxkcyA9IFtdOwogICAgbXkgJVZhbGlkRHluYW1pY0ZpZWxkUGFyYW1zOwogICAgbXkgJUZBUUR5bmFtaWNGaWVsZE5hbWUyQ29uZmlnOwoKICAgICMgT25seSBmZXRjaCBEeW5hbWljRmllbGQgZGF0YSBpZiBhIGZpZWxkIHdhcyByZXF1ZXN0ZWQgZm9yIHNlYXJjaGluZyBvciBzb3J0aW5nCiAgICBteSAkUGFyYW1DaGVja1N0cmluZyA9ICggam9pbiAnJywga2V5cyAlUGFyYW0gKSB8fCAnJzsKCiAgICBpZiAoIHJlZiAkUGFyYW17T3JkZXJCeX0gZXEgJ0FSUkFZJyApIHsKICAgICAgICAkUGFyYW1DaGVja1N0cmluZyAuPSAoIGpvaW4gJycsIEB7ICRQYXJhbXtPcmRlckJ5fSB9ICk7CiAgICB9CiAgICBlbHNpZiAoIHJlZiAkUGFyYW17T3JkZXJCeX0gbmUgJ0hBU0gnICkgewogICAgICAgICRQYXJhbUNoZWNrU3RyaW5nIC49ICRQYXJhbXtPcmRlckJ5fSB8fCAnJzsKICAgIH0KCiAgICBpZiAoICRQYXJhbUNoZWNrU3RyaW5nID1+IG0vRHluYW1pY0ZpZWxkXy9zbXggKSB7CgogICAgICAgICMgQ2hlY2sgYWxsIGNvbmZpZ3VyZWQgRkFRIGR5bmFtaWMgZmllbGRzCiAgICAgICAgJEZBUUR5bmFtaWNGaWVsZHMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJyktPkR5bmFtaWNGaWVsZExpc3RHZXQoCiAgICAgICAgICAgIE9iamVjdFR5cGUgPT4gJ0ZBUScsCiAgICAgICAgKTsKCiAgICAgICAgZm9yIG15ICREeW5hbWljRmllbGQgKCBAeyRGQVFEeW5hbWljRmllbGRzfSApIHsKICAgICAgICAgICAgJFZhbGlkRHluYW1pY0ZpZWxkUGFyYW1zeyAiRHluYW1pY0ZpZWxkXyIgLiAkRHluYW1pY0ZpZWxkLT57TmFtZX0gfSA9IDE7CiAgICAgICAgICAgICRGQVFEeW5hbWljRmllbGROYW1lMkNvbmZpZ3sgJER5bmFtaWNGaWVsZC0+e05hbWV9IH0gPSAkRHluYW1pY0ZpZWxkOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIGlmIE9yZGVyQnkgY29udGFpbnMgb25seSB1bmlxdWUgdmFsaWQgdmFsdWVzCiAgICBteSAlT3JkZXJCeVNlZW47CiAgICBmb3IgbXkgJE9yZGVyQnkgKCBAeyAkUGFyYW17T3JkZXJCeX0gfSApIHsKCiAgICAgICAgaWYgKAogICAgICAgICAgICAhJE9yZGVyQnkKICAgICAgICAgICAgfHwgKCAhJE9yZGVyQnlUYWJsZXskT3JkZXJCeX0gJiYgISRWYWxpZER5bmFtaWNGaWVsZFBhcmFtc3skT3JkZXJCeX0gKQogICAgICAgICAgICB8fCAkT3JkZXJCeVNlZW57JE9yZGVyQnl9CiAgICAgICAgICAgICkKICAgICAgICB7CgogICAgICAgICAgICAjIGZvdW5kIGFuIGVycm9yCiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJPcmRlckJ5IGNvbnRhaW5zIGludmFsaWQgdmFsdWUgJyRPcmRlckJ5JyAiCiAgICAgICAgICAgICAgICAgICAgLiAnb3IgdGhlIHZhbHVlIGlzIHVzZWQgbW9yZSB0aGFuIG9uY2UhJywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgICMgcmVtZW1iZXIgdGhlIHZhbHVlIHRvIGNoZWNrIGlmIGl0IGFwcGVhcnMgbW9yZSB0aGFuIG9uY2UKICAgICAgICAkT3JkZXJCeVNlZW57JE9yZGVyQnl9ID0gMTsKCiAgICB9CgogICAgIyBjaGVjayBpZiBPcmRlckJ5RGlyZWN0aW9uIGFycmF5IGNvbnRhaW5zIG9ubHkgJ1VwJyBvciAnRG93bicKICAgIERJUkVDVElPTjoKICAgIGZvciBteSAkRGlyZWN0aW9uICggQHsgJFBhcmFte09yZGVyQnlEaXJlY3Rpb259IH0gKSB7CgogICAgICAgICMgb25seSAnVXAnIG9yICdEb3duJyBhbGxvd2VkCiAgICAgICAgbmV4dCBESVJFQ1RJT04gaWYgJERpcmVjdGlvbiBlcSAnVXAnOwogICAgICAgIG5leHQgRElSRUNUSU9OIGlmICREaXJlY3Rpb24gZXEgJ0Rvd24nOwoKICAgICAgICAjIGZvdW5kIGFuIGVycm9yCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJPcmRlckJ5RGlyZWN0aW9uIGNhbiBvbmx5IGNvbnRhaW4gJ1VwJyBvciAnRG93bichIiwKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBTUUwKICAgIG15ICRTUUwgPSAnU0VMRUNUIGkuaWQsIGNvdW50KCB2Lml0ZW1faWQgKSBhcyB2b3RlcywgYXZnKCB2LnJhdGUgKSBhcyB2cmF0ZSAnCiAgICAgICAgLiAnRlJPTSBmYXFfaXRlbSBpICcKICAgICAgICAuICdMRUZUIEpPSU4gZmFxX3ZvdGluZyB2IE9OIHYuaXRlbV9pZCA9IGkuaWQgJwogICAgICAgIC4gJ0xFRlQgSk9JTiBmYXFfc3RhdGUgcyBPTiBzLmlkID0gaS5zdGF0ZV9pZCc7CgogICAgIyBleHRlbmRlZCBTUUwKICAgIG15ICRFeHQgPSAnJzsKCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICBpZiAoICRQYXJhbXtTZXJ2aWNlSUR9ICkgewogICAgICAgICRTUUwgLj0gJyBMRUZUIEpPSU4gZmFxX3NlcnZpY2Ugc2UgT04gc2UuaXRlbV9pZCA9IGkuaWQnOwogICAgfQoKICAgICMgZnVsbC10ZXh0IHNlYXJjaAogICAgaWYgKCAkUGFyYW17V2hhdH0gJiYgJFBhcmFte1doYXR9IG5lICcqJyApIHsKCiAgICAgICAgIyBkZWZpbmUgdGhlIHNlYXJjaCBmaWVsZHMgZm9yIGZ1bGwtdGV4dCBzZWFyY2gKICAgICAgICBteSBAU2VhcmNoRmllbGRzID0gKCAnaS5mX251bWJlcicsICdpLmZfc3ViamVjdCcsICdpLmZfa2V5d29yZHMnICk7CgogICAgICAgICMgdXNlZCBmcm9tIHRoZSBhZ2VudCBpbnRlcmZhY2UgKGludGVybmFsKQogICAgICAgIGlmICggJFBhcmFte0ludGVyZmFjZX0tPntOYW1lfSBlcSAnaW50ZXJuYWwnICkgewoKICAgICAgICAgICAgZm9yIG15ICROdW1iZXIgKCAxIC4uIDYgKSB7CgogICAgICAgICAgICAgICAgIyBnZXQgdGhlIHN0YXRlIG9mIHRoZSBmaWVsZCAoaW50ZXJuYWwsIGV4dGVybmFsLCBwdWJsaWMpCiAgICAgICAgICAgICAgICBteSAkRmllbGRTdGF0ZSA9ICRDb25maWdPYmplY3QtPkdldCggJ0ZBUTo6SXRlbTo6RmllbGQnIC4gJE51bWJlciApLT57U2hvd307CgogICAgICAgICAgICAgICAgIyBhZGQgYWxsIGludGVybmFsLCBleHRlcm5hbCBhbmQgcHVibGljIGZpZWxkcwogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICRGaWVsZFN0YXRlIGVxICdpbnRlcm5hbCcKICAgICAgICAgICAgICAgICAgICB8fCAkRmllbGRTdGF0ZSBlcSAnZXh0ZXJuYWwnCiAgICAgICAgICAgICAgICAgICAgfHwgJEZpZWxkU3RhdGUgZXEgJ3B1YmxpYycKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgcHVzaCBAU2VhcmNoRmllbGRzLCAnaS5mX2ZpZWxkJyAuICROdW1iZXI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgdXNlZCBmcm9tIHRoZSBjdXN0b21lciBpbnRlcmZhY2UgKGV4dGVybmFsKQogICAgICAgIGVsc2lmICggJFBhcmFte0ludGVyZmFjZX0tPntOYW1lfSBlcSAnZXh0ZXJuYWwnICkgewoKICAgICAgICAgICAgZm9yIG15ICROdW1iZXIgKCAxIC4uIDYgKSB7CgogICAgICAgICAgICAgICAgIyBnZXQgdGhlIHN0YXRlIG9mIHRoZSBmaWVsZCAoaW50ZXJuYWwsIGV4dGVybmFsLCBwdWJsaWMpCiAgICAgICAgICAgICAgICBteSAkRmllbGRTdGF0ZSA9ICRDb25maWdPYmplY3QtPkdldCggJ0ZBUTo6SXRlbTo6RmllbGQnIC4gJE51bWJlciApLT57U2hvd307CgogICAgICAgICAgICAgICAgIyBhZGQgYWxsIGV4dGVybmFsIGFuZCBwdWJsaWMgZmllbGRzCiAgICAgICAgICAgICAgICBpZiAoICRGaWVsZFN0YXRlIGVxICdleHRlcm5hbCcgfHwgJEZpZWxkU3RhdGUgZXEgJ3B1YmxpYycgKSB7CiAgICAgICAgICAgICAgICAgICAgcHVzaCBAU2VhcmNoRmllbGRzLCAnaS5mX2ZpZWxkJyAuICROdW1iZXI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgdXNlZCBmcm9tIHRoZSBwdWJsaWMgaW50ZXJmYWNlIChwdWJsaWMpCiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGZvciBteSAkTnVtYmVyICggMSAuLiA2ICkgewoKICAgICAgICAgICAgICAgICMgZ2V0IHRoZSBzdGF0ZSBvZiB0aGUgZmllbGQgKGludGVybmFsLCBleHRlcm5hbCwgcHVibGljKQogICAgICAgICAgICAgICAgbXkgJEZpZWxkU3RhdGUgPSAkQ29uZmlnT2JqZWN0LT5HZXQoICdGQVE6Okl0ZW06OkZpZWxkJyAuICROdW1iZXIgKS0+e1Nob3d9OwoKICAgICAgICAgICAgICAgICMgYWRkIGFsbCBwdWJsaWMgZmllbGRzCiAgICAgICAgICAgICAgICBpZiAoICRGaWVsZFN0YXRlIGVxICdwdWJsaWMnICkgewogICAgICAgICAgICAgICAgICAgIHB1c2ggQFNlYXJjaEZpZWxkcywgJ2kuZl9maWVsZCcgLiAkTnVtYmVyOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGFkZCB0aGUgU1FMIGZvciB0aGUgZnVsbC10ZXh0IHNlYXJjaAogICAgICAgICRFeHQgLj0gJERCT2JqZWN0LT5RdWVyeUNvbmRpdGlvbigKICAgICAgICAgICAgS2V5ICAgICAgICAgID0+IFxAU2VhcmNoRmllbGRzLAogICAgICAgICAgICBWYWx1ZSAgICAgICAgPT4gJFBhcmFte1doYXR9LAogICAgICAgICAgICBTZWFyY2hQcmVmaXggPT4gJyonLAogICAgICAgICAgICBTZWFyY2hTdWZmaXggPT4gJyonLAogICAgICAgICk7CiAgICB9CgogICAgIyBzZWFyY2ggZm9yIHRoZSBudW1iZXIKICAgIGlmICggJFBhcmFte051bWJlcn0gKSB7CiAgICAgICAgJFBhcmFte051bWJlcn0gPX4gcy9cKi8lL2c7CiAgICAgICAgJFBhcmFte051bWJlcn0gPX4gcy8lJS8lL2c7CiAgICAgICAgJFBhcmFte051bWJlcn0gPSAkREJPYmplY3QtPlF1b3RlKCAkUGFyYW17TnVtYmVyfSwgJ0xpa2UnICk7CiAgICAgICAgaWYgKCRFeHQpIHsKICAgICAgICAgICAgJEV4dCAuPSAnIEFORCAnOwogICAgICAgIH0KICAgICAgICAkRXh0IC49ICIgTE9XRVIoaS5mX251bWJlcikgTElLRSBMT1dFUignIiAuICRQYXJhbXtOdW1iZXJ9IC4gIicpICRTZWxmLT57TGlrZUVzY2FwZVN0cmluZ30iOwogICAgfQoKICAgICMgc2VhcmNoIGZvciB0aGUgdGl0bGUKICAgIGlmICggJFBhcmFte1RpdGxlfSApIHsKICAgICAgICAkUGFyYW17VGl0bGV9ID0gIlwlJFBhcmFte1RpdGxlfVwlIjsKICAgICAgICAkUGFyYW17VGl0bGV9ID1+IHMvXCovJS9nOwogICAgICAgICRQYXJhbXtUaXRsZX0gPX4gcy8lJS8lL2c7CiAgICAgICAgJFBhcmFte1RpdGxlfSA9ICREQk9iamVjdC0+UXVvdGUoICRQYXJhbXtUaXRsZX0sICdMaWtlJyApOwogICAgICAgIGlmICgkRXh0KSB7CiAgICAgICAgICAgICRFeHQgLj0gJyBBTkQgJzsKICAgICAgICB9CiAgICAgICAgJEV4dCAuPSAiIExPV0VSKGkuZl9zdWJqZWN0KSBMSUtFIExPV0VSKCciIC4gJFBhcmFte1RpdGxlfSAuICInKSAkU2VsZi0+e0xpa2VFc2NhcGVTdHJpbmd9IjsKICAgIH0KCiAgICAjIExpbWl0IHRoZSBzZWFyY2ggdG8ganVzdCBvbmUgKG9yIGEgbGlzdCkgRkFRSUQgKHVzZWQgYnkgdGhlIG90b2JvLWFpIHBhY2thZ2UKICAgICMgICB0byBmaWx0ZXIgZm9yIGV2ZW50cyBvbiBzaW5nbGUgRkFRIGl0ZW1zIHdpdGggdGhlIGpvYidzIEZBUSBmaWx0ZXIpLgogICAgaWYgKCBJc1N0cmluZ1dpdGhEYXRhKCAkUGFyYW17RkFRSUR9ICkgfHwgSXNBcnJheVJlZldpdGhEYXRhKCAkUGFyYW17RkFRSUR9ICkgKSB7CgogICAgICAgIG15ICRTUUxRdWVyeUluQ29uZGl0aW9uID0gJERCT2JqZWN0LT5RdWVyeUluQ29uZGl0aW9uKAogICAgICAgICAgICBLZXkgICAgICAgPT4gJ2kuaWQnLAogICAgICAgICAgICBWYWx1ZXMgICAgPT4gcmVmICRQYXJhbXtGQVFJRH0gZXEgJ0FSUkFZJyA/ICRQYXJhbXtGQVFJRH0gOiBbICRQYXJhbXtGQVFJRH0gXSwKICAgICAgICAgICAgUXVvdGVUeXBlID0+ICdJbnRlZ2VyJywKICAgICAgICAgICAgQmluZE1vZGUgID0+IDAsCiAgICAgICAgKTsKICAgICAgICBpZiAoJEV4dCkgewogICAgICAgICAgICAkRXh0IC49ICcgQU5EICc7CiAgICAgICAgfQogICAgICAgICRFeHQgLj0gJyAoICcgLiAkU1FMUXVlcnlJbkNvbmRpdGlvbiAuICcgKSAnOwogICAgfQoKICAgICMgc2VhcmNoIGZvciBsYW5ndWFnZXMKICAgIGlmICggJFBhcmFte0xhbmd1YWdlSURzfSAmJiByZWYgJFBhcmFte0xhbmd1YWdlSURzfSBlcSAnQVJSQVknICYmIEB7ICRQYXJhbXtMYW5ndWFnZUlEc30gfSApIHsKCiAgICAgICAgbXkgJEluU3RyaW5nID0gJFNlbGYtPl9JbkNvbmRpdGlvbkdldCgKICAgICAgICAgICAgVGFibGVDb2x1bW4gPT4gJ2kuZl9sYW5ndWFnZV9pZCcsCiAgICAgICAgICAgIElEUmVmICAgICAgID0+ICRQYXJhbXtMYW5ndWFnZUlEc30sCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCRFeHQpIHsKICAgICAgICAgICAgJEV4dCAuPSAnIEFORCAnOwogICAgICAgIH0KICAgICAgICAkRXh0IC49ICRJblN0cmluZzsKICAgIH0KCiAgICAjIHNlYXJjaCBmb3IgY2F0ZWdvcmllcwogICAgaWYgKCAkUGFyYW17Q2F0ZWdvcnlJRHN9ICYmIHJlZiAkUGFyYW17Q2F0ZWdvcnlJRHN9IGVxICdBUlJBWScgJiYgQHsgJFBhcmFte0NhdGVnb3J5SURzfSB9ICkgewoKICAgICAgICBteSAkSW5TdHJpbmcgPSAkU2VsZi0+X0luQ29uZGl0aW9uR2V0KAogICAgICAgICAgICBUYWJsZUNvbHVtbiA9PiAnaS5jYXRlZ29yeV9pZCcsCiAgICAgICAgICAgIElEUmVmICAgICAgID0+ICRQYXJhbXtDYXRlZ29yeUlEc30sCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCRFeHQpIHsKICAgICAgICAgICAgJEV4dCAuPSAnIEFORCAnOwogICAgICAgIH0KICAgICAgICAkRXh0IC49ICRJblN0cmluZzsKICAgIH0KCiAgICAjIHNldCBkZWZhdWx0IHZhbHVlIGZvciBWYWxpZElEcyAob25seSBzZWFyY2ggZm9yIHZhbGlkIEZBUXMpCiAgICBpZiAoICFkZWZpbmVkICRQYXJhbXtWYWxpZElEc30gKSB7CgogICAgICAgICMgZ2V0IHRoZSB2YWxpZCBpZHMKICAgICAgICBteSBAVmFsaWRJRHMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnKS0+VmFsaWRJRHNHZXQoKTsKCiAgICAgICAgJFBhcmFte1ZhbGlkSURzfSA9IFxAVmFsaWRJRHM7CiAgICB9CgogICAgIyBzZWFyY2ggZm9yIFZhbGlkSURzCiAgICBpZiAoICRQYXJhbXtWYWxpZElEc30gJiYgcmVmICRQYXJhbXtWYWxpZElEc30gZXEgJ0FSUkFZJyAmJiBAeyAkUGFyYW17VmFsaWRJRHN9IH0gKSB7CgogICAgICAgIG15ICRJblN0cmluZyA9ICRTZWxmLT5fSW5Db25kaXRpb25HZXQoCiAgICAgICAgICAgIFRhYmxlQ29sdW1uID0+ICdpLnZhbGlkX2lkJywKICAgICAgICAgICAgSURSZWYgICAgICAgPT4gJFBhcmFte1ZhbGlkSURzfSwKICAgICAgICApOwoKICAgICAgICBpZiAoJEV4dCkgewogICAgICAgICAgICAkRXh0IC49ICcgQU5EICc7CiAgICAgICAgfQogICAgICAgICRFeHQgLj0gJEluU3RyaW5nOwogICAgfQoKICAgICMgc2VhcmNoIGZvciBzdGF0ZXMKICAgIGlmICggJFBhcmFte1N0YXRlc30gJiYgcmVmICRQYXJhbXtTdGF0ZXN9IGVxICdIQVNIJyAmJiAleyAkUGFyYW17U3RhdGVzfSB9ICkgewoKICAgICAgICBteSBAU3RhdGVzID0gbWFwIHsgJERCT2JqZWN0LT5RdW90ZSggJF8sICdJbnRlZ2VyJyApIH0ga2V5cyAleyAkUGFyYW17U3RhdGVzfSB9OwoKICAgICAgICByZXR1cm4gaWYgc2NhbGFyIEBTdGF0ZXMgIT0ga2V5cyAleyAkUGFyYW17U3RhdGVzfSB9OwoKICAgICAgICBteSAkSW5TdHJpbmcgPSAkU2VsZi0+X0luQ29uZGl0aW9uR2V0KAogICAgICAgICAgICBUYWJsZUNvbHVtbiA9PiAncy50eXBlX2lkJywKICAgICAgICAgICAgSURSZWYgICAgICAgPT4gXEBTdGF0ZXMsCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCRFeHQpIHsKICAgICAgICAgICAgJEV4dCAuPSAnIEFORCAnOwogICAgICAgIH0KICAgICAgICAkRXh0IC49ICRJblN0cmluZzsKICAgIH0KCiAgICAjIHNlYXJjaCBmb3Igc2VydmljZQogICAgaWYgKCAkUGFyYW17U2VydmljZUlEfSApIHsKCiAgICAgICAgbXkgJFNRTFN0cmluZyA9ICcoIHNlLnNlcnZpY2VfaWQ9JyAuICRQYXJhbXtTZXJ2aWNlSUR9IC4gJyApJzsKCiAgICAgICAgaWYgKCRFeHQpIHsKICAgICAgICAgICAgJEV4dCAuPSAnIEFORCAnOwogICAgICAgIH0KICAgICAgICAkRXh0IC49ICRTUUxTdHJpbmc7CiAgICB9CgogICAgIyBzZWFyY2ggZm9yIGtleXdvcmRzCiAgICBpZiAoICRQYXJhbXtLZXl3b3JkfSApIHsKCiAgICAgICAgJFBhcmFte0tleXdvcmR9ID1+IHMvLC8mJi9nOwogICAgICAgICRQYXJhbXtLZXl3b3JkfSA9fiBzLzsvJiYvZzsKICAgICAgICAkUGFyYW17S2V5d29yZH0gPX4gcy8gLyYmL2c7CgogICAgICAgIGlmICgkRXh0KSB7CiAgICAgICAgICAgICRFeHQgLj0gJyBBTkQgJzsKICAgICAgICB9CgogICAgICAgICMgYWRkIHRoZSBTUUwgZm9yIHRoZSBrZXl3b3JkIHNlYXJjaAogICAgICAgICRFeHQgLj0gJERCT2JqZWN0LT5RdWVyeUNvbmRpdGlvbigKICAgICAgICAgICAgS2V5ICAgICAgICAgID0+ICdpLmZfa2V5d29yZHMnLAogICAgICAgICAgICBWYWx1ZSAgICAgICAgPT4gJFBhcmFte0tleXdvcmR9LAogICAgICAgICAgICBTZWFyY2hQcmVmaXggPT4gJyonLAogICAgICAgICAgICBTZWFyY2hTdWZmaXggPT4gJyonLAogICAgICAgICk7CiAgICB9CgogICAgIyBzaG93IG9ubHkgYXBwcm92ZWQgRkFRIGFydGljbGVzIGZvciBwdWJsaWMgYW5kIGN1c3RvbWVyIGludGVyZmFjZQogICAgaWYgKCAkUGFyYW17SW50ZXJmYWNlfS0+e05hbWV9IGVxICdwdWJsaWMnIHx8ICRQYXJhbXtJbnRlcmZhY2V9LT57TmFtZX0gZXEgJ2V4dGVybmFsJyApIHsKICAgICAgICBpZiAoJEV4dCkgewogICAgICAgICAgICAkRXh0IC49ICcgQU5EICc7CiAgICAgICAgfQogICAgICAgICRFeHQgLj0gJyBpLmFwcHJvdmVkID0gMSc7CiAgICB9CgogICAgIyBvdGhlcndpc2UgY2hlY2sgaWYgbmVlZCB0byBzZWFyY2ggZm9yIGFwcHJvdmVkIHN0YXR1cwogICAgZWxzaWYgKCBkZWZpbmVkICRQYXJhbXtBcHByb3ZlZH0gKSB7CiAgICAgICAgbXkgJEFwcHJvdmVkVmFsdWUgPSAkUGFyYW17QXBwcm92ZWR9ID8gMSA6IDA7CiAgICAgICAgaWYgKCRFeHQpIHsKICAgICAgICAgICAgJEV4dCAuPSAnIEFORCAnOwogICAgICAgIH0KICAgICAgICAkRXh0IC49ICIgaS5hcHByb3ZlZCA9ICRBcHByb3ZlZFZhbHVlIjsKICAgIH0KCiAgICAjIHNlYXJjaCBmb3IgY3JlYXRlIHVzZXJzCiAgICBpZiAoCiAgICAgICAgJFBhcmFte0NyZWF0ZWRVc2VySURzfQogICAgICAgICYmIHJlZiAkUGFyYW17Q3JlYXRlZFVzZXJJRHN9IGVxICdBUlJBWScKICAgICAgICAmJiBAeyAkUGFyYW17Q3JlYXRlZFVzZXJJRHN9IH0KICAgICAgICApCiAgICB7CgogICAgICAgIG15ICRJblN0cmluZyA9ICRTZWxmLT5fSW5Db25kaXRpb25HZXQoCiAgICAgICAgICAgIFRhYmxlQ29sdW1uID0+ICdpLmNyZWF0ZWRfYnknLAogICAgICAgICAgICBJRFJlZiAgICAgICA9PiAkUGFyYW17Q3JlYXRlZFVzZXJJRHN9LAogICAgICAgICk7CgogICAgICAgIGlmICgkRXh0KSB7CiAgICAgICAgICAgICRFeHQgLj0gJyBBTkQgJzsKICAgICAgICB9CiAgICAgICAgJEV4dCAuPSAkSW5TdHJpbmc7CiAgICB9CgogICAgIyBzZWFyY2ggZm9yIGxhc3QgY2hhbmdlIHVzZXJzCiAgICBpZiAoCiAgICAgICAgJFBhcmFte0xhc3RDaGFuZ2VkVXNlcklEc30KICAgICAgICAmJiByZWYgJFBhcmFte0xhc3RDaGFuZ2VkVXNlcklEc30gZXEgJ0FSUkFZJwogICAgICAgICYmIEB7ICRQYXJhbXtMYXN0Q2hhbmdlZFVzZXJJRHN9IH0KICAgICAgICApCiAgICB7CgogICAgICAgIG15ICRJblN0cmluZyA9ICRTZWxmLT5fSW5Db25kaXRpb25HZXQoCiAgICAgICAgICAgIFRhYmxlQ29sdW1uID0+ICdpLmNoYW5nZWRfYnknLAogICAgICAgICAgICBJRFJlZiAgICAgICA9PiAkUGFyYW17TGFzdENoYW5nZWRVc2VySURzfSwKICAgICAgICApOwoKICAgICAgICBpZiAoJEV4dCkgewogICAgICAgICAgICAkRXh0IC49ICcgQU5EICc7CiAgICAgICAgfQogICAgICAgICRFeHQgLj0gJEluU3RyaW5nOwogICAgfQoKICAgICMgU2VhcmNoIGZvciBjcmVhdGUgYW5kIGNoYW5nZSB0aW1lcy4KICAgICMgUmVtZW1iZXIgY3VycmVudCB0aW1lIHRvIHByZXZlbnQgc2VhcmNoZXMgZm9yIGZ1dHVyZSB0aW1lc3RhbXBzLgogICAgbXkgJERhdGVUaW1lT2JqZWN0ICAgID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CiAgICBteSAkQ3VycmVudFN5c3RlbVRpbWUgPSAkRGF0ZVRpbWVPYmplY3QtPlRvRXBvY2goKTsKCiAgICAjIGdldCBGQVEgaXRlbXMgY3JlYXRlZCBvbGRlciB0aGFuIHggbWludXRlcwogICAgaWYgKCBkZWZpbmVkICRQYXJhbXtJdGVtQ3JlYXRlVGltZU9sZGVyTWludXRlc30gKSB7CiAgICAgICAgJFBhcmFte0l0ZW1DcmVhdGVUaW1lT2xkZXJNaW51dGVzfSB8fD0gMDsKCiAgICAgICAgbXkgJERhdGVUaW1lID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CiAgICAgICAgJERhdGVUaW1lLT5TdWJ0cmFjdCggU2Vjb25kcyA9PiAkUGFyYW17SXRlbUNyZWF0ZVRpbWVPbGRlck1pbnV0ZXN9ICogNjAgKTsKICAgICAgICAkUGFyYW17SXRlbUNyZWF0ZVRpbWVPbGRlckRhdGV9ID0gJERhdGVUaW1lLT5Ub1N0cmluZygpOwogICAgfQoKICAgICMgZ2V0IEZBUSBpdGVtcyBjcmVhdGVkIG5ld2VyIHRoYW4geCBtaW51dGVzCiAgICBpZiAoIGRlZmluZWQgJFBhcmFte0l0ZW1DcmVhdGVUaW1lTmV3ZXJNaW51dGVzfSApIHsKICAgICAgICAkUGFyYW17SXRlbUNyZWF0ZVRpbWVOZXdlck1pbnV0ZXN9IHx8PSAwOwoKICAgICAgICBteSAkRGF0ZVRpbWUgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKCdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnKTsKICAgICAgICAkRGF0ZVRpbWUtPlN1YnRyYWN0KCBTZWNvbmRzID0+ICRQYXJhbXtJdGVtQ3JlYXRlVGltZU5ld2VyTWludXRlc30gKiA2MCApOwogICAgICAgICRQYXJhbXtJdGVtQ3JlYXRlVGltZU5ld2VyRGF0ZX0gPSAkRGF0ZVRpbWUtPlRvU3RyaW5nKCk7CiAgICB9CgogICAgIyBnZXQgRkFRIGl0ZW1zIGNyZWF0ZWQgb2xkZXIgdGhhbiB4eHh4LXh4LXh4IHh4Onh4IGRhdGUKICAgIG15ICRDb21wYXJlQ3JlYXRlVGltZU9sZGVyTmV3ZXJEYXRlOwogICAgaWYgKCAkUGFyYW17SXRlbUNyZWF0ZVRpbWVPbGRlckRhdGV9ICkgewoKICAgICAgICAjIGNoZWNrIHRpbWUgZm9ybWF0CiAgICAgICAgaWYgKAogICAgICAgICAgICAkUGFyYW17SXRlbUNyZWF0ZVRpbWVPbGRlckRhdGV9CiAgICAgICAgICAgICF+IC9cZFxkXGRcZC0oXGRcZHxcZCktKFxkXGR8XGQpIChcZFxkfFxkKTooXGRcZHxcZCk6KFxkXGR8XGQpLwogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiSW52YWxpZCB0aW1lIGZvcm1hdCAnJFBhcmFte0l0ZW1DcmVhdGVUaW1lT2xkZXJEYXRlfSchIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgbXkgJFRpbWUgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgICAgIFN0cmluZyA9PiAkUGFyYW17SXRlbUNyZWF0ZVRpbWVPbGRlckRhdGV9LAogICAgICAgICAgICB9CiAgICAgICAgKS0+VG9FcG9jaCgpOwogICAgICAgIGlmICggISRUaW1lICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PgogICAgICAgICAgICAgICAgICAgICJTZWFyY2ggbm90IGV4ZWN1dGVkIGR1ZSB0byBpbnZhbGlkIHRpbWUgJyIKICAgICAgICAgICAgICAgICAgICAuICRQYXJhbXtJdGVtQ3JlYXRlVGltZU9sZGVyRGF0ZX0gLiAiJyEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICAkQ29tcGFyZUNyZWF0ZVRpbWVPbGRlck5ld2VyRGF0ZSA9ICRUaW1lOwoKICAgICAgICAkRXh0IC49ICIgQU5EIGkuY3JlYXRlZCA8PSAnIgogICAgICAgICAgICAuICREQk9iamVjdC0+UXVvdGUoICRQYXJhbXtJdGVtQ3JlYXRlVGltZU9sZGVyRGF0ZX0gKSAuICInIjsKICAgIH0KCiAgICAjIGdldCBJdGVtcyBjaGFuZ2VkIG5ld2VyIHRoYW4geHh4eC14eC14eCB4eDp4eCBkYXRlCiAgICBpZiAoICRQYXJhbXtJdGVtQ3JlYXRlVGltZU5ld2VyRGF0ZX0gKSB7CiAgICAgICAgaWYgKAogICAgICAgICAgICAkUGFyYW17SXRlbUNyZWF0ZVRpbWVOZXdlckRhdGV9CiAgICAgICAgICAgICF+IC9cZFxkXGRcZC0oXGRcZHxcZCktKFxkXGR8XGQpIChcZFxkfFxkKTooXGRcZHxcZCk6KFxkXGR8XGQpLwogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiSW52YWxpZCB0aW1lIGZvcm1hdCAnJFBhcmFte0l0ZW1DcmVhdGVUaW1lTmV3ZXJEYXRlfSchIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgbXkgJFRpbWUgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgICAgIFN0cmluZyA9PiAkUGFyYW17SXRlbUNyZWF0ZVRpbWVOZXdlckRhdGV9LAogICAgICAgICAgICB9CiAgICAgICAgKS0+VG9FcG9jaCgpOwogICAgICAgIGlmICggISRUaW1lICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PgogICAgICAgICAgICAgICAgICAgICJTZWFyY2ggbm90IGV4ZWN1dGVkIGR1ZSB0byBpbnZhbGlkIHRpbWUgJyIKICAgICAgICAgICAgICAgICAgICAuICRQYXJhbXtJdGVtQ3JlYXRlVGltZU5ld2VyRGF0ZX0gLiAiJyEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgIyBkb24ndCBleGVjdXRlIHF1ZXJpZXMgaWYgbmV3ZXIgZGF0ZSBpcyBhZnRlciBjdXJyZW50IGRhdGUKICAgICAgICByZXR1cm4gaWYgJFRpbWUgPiAkQ3VycmVudFN5c3RlbVRpbWU7CgogICAgICAgICMgZG9uJ3QgZXhlY3V0ZSBxdWVyaWVzIGlmIG9sZGVyL25ld2VyIGRhdGUgcmVzdHJpY3Rpb24gc2hvdyBub3cgdmFsaWQgdGltZSBmcmFtZQogICAgICAgIHJldHVybiBpZiAkQ29tcGFyZUNyZWF0ZVRpbWVPbGRlck5ld2VyRGF0ZSAmJiAkVGltZSA+ICRDb21wYXJlQ3JlYXRlVGltZU9sZGVyTmV3ZXJEYXRlOwoKICAgICAgICAkRXh0IC49ICIgQU5EIGkuY3JlYXRlZCA+PSAnIgogICAgICAgICAgICAuICREQk9iamVjdC0+UXVvdGUoICRQYXJhbXtJdGVtQ3JlYXRlVGltZU5ld2VyRGF0ZX0gKSAuICInIjsKICAgIH0KCiAgICAjIGdldCBGQVEgaXRlbXMgY2hhbmdlZCBvbGRlciB0aGFuIHggbWludXRlcwogICAgaWYgKCBkZWZpbmVkICRQYXJhbXtJdGVtQ2hhbmdlVGltZU9sZGVyTWludXRlc30gKSB7CiAgICAgICAgJFBhcmFte0l0ZW1DaGFuZ2VUaW1lT2xkZXJNaW51dGVzfSB8fD0gMDsKCiAgICAgICAgbXkgJERhdGVUaW1lID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CiAgICAgICAgJERhdGVUaW1lLT5TdWJ0cmFjdCggU2Vjb25kcyA9PiAkUGFyYW17SXRlbUNoYW5nZVRpbWVPbGRlck1pbnV0ZXN9ICogNjAgKTsKICAgICAgICAkUGFyYW17SXRlbUNoYW5nZVRpbWVPbGRlckRhdGV9ID0gJERhdGVUaW1lLT5Ub1N0cmluZygpOwogICAgfQoKICAgICMgZ2V0IEZBUSBpdGVtcyBjaGFuZ2VkIG5ld2VyIHRoYW4geCBtaW51dGVzCiAgICBpZiAoIGRlZmluZWQgJFBhcmFte0l0ZW1DaGFuZ2VUaW1lTmV3ZXJNaW51dGVzfSApIHsKICAgICAgICAkUGFyYW17SXRlbUNoYW5nZVRpbWVOZXdlck1pbnV0ZXN9IHx8PSAwOwoKICAgICAgICBteSAkRGF0ZVRpbWUgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKCdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnKTsKICAgICAgICAkRGF0ZVRpbWUtPlN1YnRyYWN0KCBTZWNvbmRzID0+ICRQYXJhbXtJdGVtQ2hhbmdlVGltZU5ld2VyTWludXRlc30gKiA2MCApOwogICAgICAgICRQYXJhbXtJdGVtQ2hhbmdlVGltZU5ld2VyRGF0ZX0gPSAkRGF0ZVRpbWUtPlRvU3RyaW5nKCk7CiAgICB9CgogICAgIyBnZXQgRkFRIGl0ZW1zIGNoYW5nZWQgb2xkZXIgdGhhbiB4eHh4LXh4LXh4IHh4Onh4IGRhdGUKICAgIG15ICRDb21wYXJlQ2hhbmdlVGltZU9sZGVyTmV3ZXJEYXRlOwogICAgaWYgKCAkUGFyYW17SXRlbUNoYW5nZVRpbWVPbGRlckRhdGV9ICkgewoKICAgICAgICAjIGNoZWNrIHRpbWUgZm9ybWF0CiAgICAgICAgaWYgKAogICAgICAgICAgICAkUGFyYW17SXRlbUNoYW5nZVRpbWVPbGRlckRhdGV9CiAgICAgICAgICAgICF+IC9cZFxkXGRcZC0oXGRcZHxcZCktKFxkXGR8XGQpIChcZFxkfFxkKTooXGRcZHxcZCk6KFxkXGR8XGQpLwogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiSW52YWxpZCB0aW1lIGZvcm1hdCAnJFBhcmFte0l0ZW1DaGFuZ2VUaW1lT2xkZXJEYXRlfSchIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgbXkgJFRpbWUgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgICAgIFN0cmluZyA9PiAkUGFyYW17SXRlbUNoYW5nZVRpbWVPbGRlckRhdGV9LAogICAgICAgICAgICB9CiAgICAgICAgKS0+VG9FcG9jaCgpOwogICAgICAgIGlmICggISRUaW1lICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PgogICAgICAgICAgICAgICAgICAgICJTZWFyY2ggbm90IGV4ZWN1dGVkIGR1ZSB0byBpbnZhbGlkIHRpbWUgJyIKICAgICAgICAgICAgICAgICAgICAuICRQYXJhbXtJdGVtQ2hhbmdlVGltZU9sZGVyRGF0ZX0gLiAiJyEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICAkQ29tcGFyZUNoYW5nZVRpbWVPbGRlck5ld2VyRGF0ZSA9ICRUaW1lOwoKICAgICAgICAkRXh0IC49ICIgQU5EIGkuY2hhbmdlZCA8PSAnIgogICAgICAgICAgICAuICREQk9iamVjdC0+UXVvdGUoICRQYXJhbXtJdGVtQ2hhbmdlVGltZU9sZGVyRGF0ZX0gKSAuICInIjsKICAgIH0KCiAgICAjIGdldCBJdGVtcyBjaGFuZ2VkIG5ld2VyIHRoYW4geHh4eC14eC14eCB4eDp4eCBkYXRlCiAgICBpZiAoICRQYXJhbXtJdGVtQ2hhbmdlVGltZU5ld2VyRGF0ZX0gKSB7CiAgICAgICAgaWYgKAogICAgICAgICAgICAkUGFyYW17SXRlbUNoYW5nZVRpbWVOZXdlckRhdGV9CiAgICAgICAgICAgICF+IC9cZFxkXGRcZC0oXGRcZHxcZCktKFxkXGR8XGQpIChcZFxkfFxkKTooXGRcZHxcZCk6KFxkXGR8XGQpLwogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiSW52YWxpZCB0aW1lIGZvcm1hdCAnJFBhcmFte0l0ZW1DaGFuZ2VUaW1lTmV3ZXJEYXRlfSchIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgbXkgJFRpbWUgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgICAgIFN0cmluZyA9PiAkUGFyYW17SXRlbUNoYW5nZVRpbWVOZXdlckRhdGV9LAogICAgICAgICAgICB9CiAgICAgICAgKS0+VG9FcG9jaCgpOwogICAgICAgIGlmICggISRUaW1lICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PgogICAgICAgICAgICAgICAgICAgICJTZWFyY2ggbm90IGV4ZWN1dGVkIGR1ZSB0byBpbnZhbGlkIHRpbWUgJyIKICAgICAgICAgICAgICAgICAgICAuICRQYXJhbXtJdGVtQ2hhbmdlVGltZU5ld2VyRGF0ZX0gLiAiJyEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgIyBkb24ndCBleGVjdXRlIHF1ZXJpZXMgaWYgbmV3ZXIgZGF0ZSBpcyBhZnRlciBjdXJyZW50IGRhdGUKICAgICAgICByZXR1cm4gaWYgJFRpbWUgPiAkQ3VycmVudFN5c3RlbVRpbWU7CgogICAgICAgICMgZG9uJ3QgZXhlY3V0ZSBxdWVyaWVzIGlmIG9sZGVyL25ld2VyIGRhdGUgcmVzdHJpY3Rpb24gc2hvdyBub3cgdmFsaWQgdGltZSBmcmFtZQogICAgICAgIHJldHVybiBpZiAkQ29tcGFyZUNoYW5nZVRpbWVPbGRlck5ld2VyRGF0ZSAmJiAkVGltZSA+ICRDb21wYXJlQ2hhbmdlVGltZU9sZGVyTmV3ZXJEYXRlOwoKICAgICAgICAkRXh0IC49ICIgQU5EIGkuY2hhbmdlZCA+PSAnIgogICAgICAgICAgICAuICREQk9iamVjdC0+UXVvdGUoICRQYXJhbXtJdGVtQ2hhbmdlVGltZU5ld2VyRGF0ZX0gKSAuICInIjsKICAgIH0KCiAgICAjIGFkZCBXSEVSRSBzdGF0ZW1lbnQKICAgIGlmICgkRXh0KSB7CiAgICAgICAgJEV4dCA9ICcgV0hFUkUgJyAuICRFeHQ7CiAgICB9CgogICAgIyBSZW1lbWJlciBhbHJlYWR5IGpvaW5lZCB0YWJsZXMgZm9yIHNvcnRpbmcuCiAgICBteSAlRHluYW1pY0ZpZWxkSm9pblRhYmxlczsKICAgIG15ICREeW5hbWljRmllbGRKb2luQ291bnRlciA9IDE7CgogICAgIyBnZXQgZHluYW1pYyBmaWVsZCBiYWNrLWVuZCBvYmplY3QKICAgIG15ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZCcpOwoKICAgIERZTkFNSUNfRklFTEQ6CiAgICBmb3IgbXkgJER5bmFtaWNGaWVsZCAoIEB7JEZBUUR5bmFtaWNGaWVsZHN9ICkgewogICAgICAgIG15ICRTZWFyY2hQYXJhbSA9ICRQYXJhbXsgIkR5bmFtaWNGaWVsZF8iIC4gJER5bmFtaWNGaWVsZC0+e05hbWV9IH07CgogICAgICAgIG5leHQgRFlOQU1JQ19GSUVMRCBpZiAoICEkU2VhcmNoUGFyYW0gKTsKICAgICAgICBuZXh0IERZTkFNSUNfRklFTEQgaWYgKCByZWYgJFNlYXJjaFBhcmFtIG5lICdIQVNIJyApOwoKICAgICAgICBteSAkTmVlZEpvaW47CgogICAgICAgIGZvciBteSAkT3BlcmF0b3IgKCBzb3J0IGtleXMgJXskU2VhcmNoUGFyYW19ICkgewoKICAgICAgICAgICAgbXkgQFNlYXJjaFBhcmFtcyA9ICggcmVmICRTZWFyY2hQYXJhbS0+eyRPcGVyYXRvcn0gZXEgJ0FSUkFZJyApCiAgICAgICAgICAgICAgICA/IEB7ICRTZWFyY2hQYXJhbS0+eyRPcGVyYXRvcn0gfQogICAgICAgICAgICAgICAgOiAoICRTZWFyY2hQYXJhbS0+eyRPcGVyYXRvcn0gKTsKCiAgICAgICAgICAgIG15ICRTUUxFeHRTdWIgPSAnIEFORCAoJzsKICAgICAgICAgICAgbXkgJENvdW50ZXIgICA9IDA7CiAgICAgICAgICAgIFRFWFQ6CiAgICAgICAgICAgIGZvciBteSAkVGV4dCAoQFNlYXJjaFBhcmFtcykgewogICAgICAgICAgICAgICAgbmV4dCBURVhUIGlmICggIWRlZmluZWQgJFRleHQgfHwgJFRleHQgZXEgJycgKTsKCiAgICAgICAgICAgICAgICAkVGV4dCA9fiBzL1wqLyUvZ2k7CgogICAgICAgICAgICAgICAgIyBjaGVjayBzZWFyY2ggYXR0cmlidXRlLCB3ZSBkbyBub3QgbmVlZCB0byBzZWFyY2ggZm9yICoKICAgICAgICAgICAgICAgIG5leHQgVEVYVCBpZiAkVGV4dCA9fiAvXlwlezEsM30kLzsKCiAgICAgICAgICAgICAgICAjIHZhbGlkYXRlIGRhdGEgdHlwZQogICAgICAgICAgICAgICAgbXkgJFZhbGlkYXRlU3VjY2VzcyA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5WYWx1ZVZhbGlkYXRlKAogICAgICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkLAogICAgICAgICAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAkVGV4dCwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgaWYgKCAhJFZhbGlkYXRlU3VjY2VzcyApIHsKICAgICAgICAgICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTZWFyY2ggbm90IGV4ZWN1dGVkIGR1ZSB0byBpbnZhbGlkIHZhbHVlICciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRUZXh0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICInIG9uIGZpZWxkICciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICREeW5hbWljRmllbGQtPntOYW1lfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiJyEiLAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoJENvdW50ZXIpIHsKICAgICAgICAgICAgICAgICAgICAkU1FMRXh0U3ViIC49ICcgT1IgJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRTUUxFeHRTdWIgLj0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPlNlYXJjaFNRTEdldCgKICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZCwKICAgICAgICAgICAgICAgICAgICBUYWJsZUFsaWFzICAgICAgICAgPT4gImRmdiREeW5hbWljRmllbGRKb2luQ291bnRlciIsCiAgICAgICAgICAgICAgICAgICAgT3BlcmF0b3IgICAgICAgICAgID0+ICRPcGVyYXRvciwKICAgICAgICAgICAgICAgICAgICBTZWFyY2hUZXJtICAgICAgICAgPT4gJFRleHQsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICRDb3VudGVyKys7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJFNRTEV4dFN1YiAuPSAnKSc7CiAgICAgICAgICAgIGlmICgkQ291bnRlcikgewogICAgICAgICAgICAgICAgJEV4dCAuPSAkU1FMRXh0U3ViOwogICAgICAgICAgICAgICAgJE5lZWRKb2luID0gMTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKCROZWVkSm9pbikgewoKICAgICAgICAgICAgIyBKb2luIHRoZSB0YWJsZSBmb3IgdGhpcyBkeW5hbWljIGZpZWxkCiAgICAgICAgICAgICRTUUwgLj0gIiBJTk5FUiBKT0lOIGR5bmFtaWNfZmllbGRfdmFsdWUgZGZ2JER5bmFtaWNGaWVsZEpvaW5Db3VudGVyCiAgICAgICAgICAgICAgICBPTiAoaS5pZCA9IGRmdiREeW5hbWljRmllbGRKb2luQ291bnRlci5vYmplY3RfaWQKICAgICAgICAgICAgICAgICAgICBBTkQgZGZ2JER5bmFtaWNGaWVsZEpvaW5Db3VudGVyLmZpZWxkX2lkID0gIiAuCiAgICAgICAgICAgICAgICAkREJPYmplY3QtPlF1b3RlKCAkRHluYW1pY0ZpZWxkLT57SUR9LCAnSW50ZWdlcicgKSAuICIpICI7CgogICAgICAgICAgICAkRHluYW1pY0ZpZWxkSm9pblRhYmxlc3sgJER5bmFtaWNGaWVsZC0+e05hbWV9IH0gPSAiZGZ2JER5bmFtaWNGaWVsZEpvaW5Db3VudGVyIjsKCiAgICAgICAgICAgICREeW5hbWljRmllbGRKb2luQ291bnRlcisrOwogICAgICAgIH0KICAgIH0KCiAgICAjIGFkZCBHUk9VUCBCWQogICAgJEV4dAogICAgICAgIC49ICcgR1JPVVAgQlkgaS5pZCwgaS5mX3N1YmplY3QsIGkuZl9sYW5ndWFnZV9pZCwgaS5jcmVhdGVkLCBpLmNoYW5nZWQsIHMubmFtZSwgdi5pdGVtX2lkICc7CgogICAgIyBhZGQgSEFWSU5HIGNsYXVzZSAoIFZvdGVzIGFuZCBSYXRlIGFyZSBhZ2dyZWdhdGVkIGNvbHVtbnMsIHRoZXkgY2FuJ3QgYmUgaW4gdGhlIFdIRVJFIGNsYXVzZSkKICAgICMgZGVmaW5lZCB2b3RpbmcgcGFyYW1ldGVycyAoZm9yIFZvdGVzIGFuZCBSYXRlKQogICAgbXkgJVZvdGluZ09wZXJhdG9ycyA9ICgKICAgICAgICBFcXVhbHMgICAgICAgICAgICA9PiAnPScsCiAgICAgICAgR3JlYXRlclRoYW4gICAgICAgPT4gJz4nLAogICAgICAgIEdyZWF0ZXJUaGFuRXF1YWxzID0+ICc+PScsCiAgICAgICAgU21hbGxlclRoYW4gICAgICAgPT4gJzwnLAogICAgICAgIFNtYWxsZXJUaGFuRXF1YWxzID0+ICc8PScsCiAgICApOwoKICAgIG15ICRIYXZpbmdQcmludDsKICAgIG15ICRBZGRlZENvbmRpdGlvbjsKCiAgICBIQVZJTkdfUEFSQU06CiAgICBmb3IgbXkgJEhhdmluZ1BhcmFtIChxdyhWb3RlcyBSYXRlKSkgewogICAgICAgIG15ICRTZWFyY2hQYXJhbSA9ICRQYXJhbXskSGF2aW5nUGFyYW19OwoKICAgICAgICBuZXh0IEhBVklOR19QQVJBTSBpZiAoICEkU2VhcmNoUGFyYW0gKTsKICAgICAgICBuZXh0IEhBVklOR19QQVJBTSBpZiAoIHJlZiAkU2VhcmNoUGFyYW0gbmUgJ0hBU0gnICk7CgogICAgICAgIE9QRVJBVE9SOgogICAgICAgIGZvciBteSAkT3BlcmF0b3IgKCBzb3J0IGtleXMgJXskU2VhcmNoUGFyYW19ICkgewoKICAgICAgICAgICAgbmV4dCBPUEVSQVRPUiBpZiAhKCAkVm90aW5nT3BlcmF0b3JzeyRPcGVyYXRvcn0gKTsKCiAgICAgICAgICAgICMgcHJpbnQgSEFWSU5HIGNsYXVzZSBqdXN0IG9uY2UgaWYgYW5kIGp1c3QgaWYgdGhlIG9wZXJhdG9yIGlzIHZhbGlkCiAgICAgICAgICAgIGlmICggISRIYXZpbmdQcmludCApIHsKICAgICAgICAgICAgICAgICRFeHQgLj0gJyBIQVZJTkcgJzsKICAgICAgICAgICAgICAgICRIYXZpbmdQcmludCA9IDE7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG15ICRTUUxFeHRTdWI7CgogICAgICAgICAgICBteSBAU2VhcmNoUGFyYW1zID0gKCByZWYgJFNlYXJjaFBhcmFtLT57JE9wZXJhdG9yfSBlcSAnQVJSQVknICkKICAgICAgICAgICAgICAgID8gQHsgJFNlYXJjaFBhcmFtLT57JE9wZXJhdG9yfSB9CiAgICAgICAgICAgICAgICA6ICggJFNlYXJjaFBhcmFtLT57JE9wZXJhdG9yfSApOwoKICAgICAgICAgICAgIyBkbyBub3QgdXNlIEFORCBvbiB0aGUgZmlyc3QgY29uZGl0aW9uCiAgICAgICAgICAgIGlmICgkQWRkZWRDb25kaXRpb24pIHsKICAgICAgICAgICAgICAgICRTUUxFeHRTdWIgLj0gJyBBTkQgKCc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkU1FMRXh0U3ViIC49ICcgKCc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbXkgJENvdW50ZXIgPSAwOwogICAgICAgICAgICBURVhUOgogICAgICAgICAgICBmb3IgbXkgJFRleHQgKEBTZWFyY2hQYXJhbXMpIHsKICAgICAgICAgICAgICAgIG5leHQgVEVYVCBpZiAoICFkZWZpbmVkICRUZXh0IHx8ICRUZXh0IGVxICcnICk7CgogICAgICAgICAgICAgICAgJFRleHQgPX4gcy9cKi8lL2dpOwoKICAgICAgICAgICAgICAgICMgY2hlY2sgc2VhcmNoIGF0dHJpYnV0ZSwgd2UgZG8gbm90IG5lZWQgdG8gc2VhcmNoIGZvciAqCiAgICAgICAgICAgICAgICBuZXh0IFRFWFQgaWYgJFRleHQgPX4gL15cJXsxLDN9JC87CgogICAgICAgICAgICAgICAgJFNRTEV4dFN1YiAuPSAnIE9SICcgaWYgKCRDb3VudGVyKTsKCiAgICAgICAgICAgICAgICAjIGRlZmluZSBhZ2dyZWdhdGlvbiBjb2x1bW4KICAgICAgICAgICAgICAgIG15ICRBZ2dyZWdhdGVDb2x1bW4gPSAnY291bnQoIHYuaXRlbV9pZCApJzsKICAgICAgICAgICAgICAgIGlmICggJEhhdmluZ1BhcmFtIGVxICdSYXRlJyApIHsKICAgICAgICAgICAgICAgICAgICAkQWdncmVnYXRlQ29sdW1uID0gJ2F2Zyggdi5yYXRlICknOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgc2V0IGNvbmRpdGlvbgogICAgICAgICAgICAgICAgJFNRTEV4dFN1YiAuPSAiICRBZ2dyZWdhdGVDb2x1bW4gJFZvdGluZ09wZXJhdG9yc3skT3BlcmF0b3J9ICI7CiAgICAgICAgICAgICAgICAkU1FMRXh0U3ViIC49ICREQk9iamVjdC0+UXVvdGUoICRUZXh0LCAnTnVtYmVyJyApIC4gIiAiOwoKICAgICAgICAgICAgICAgICRDb3VudGVyKys7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgY2xvc2UgY29uZGl0aW9uCiAgICAgICAgICAgICRTUUxFeHRTdWIgLj0gJykgJzsKCiAgICAgICAgICAgICMgYWRkIGNvbmRpdGlvbiB0byB0aGUgZmluYWwgU1FMIHN0YXRlbWVudAogICAgICAgICAgICBpZiAoJENvdW50ZXIpIHsKICAgICAgICAgICAgICAgICRFeHQgLj0gJFNRTEV4dFN1YjsKICAgICAgICAgICAgICAgICRBZGRlZENvbmRpdGlvbiA9IDE7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBkYXRhYmFzZSBxdWVyeSBmb3Igc29ydC9vcmRlciBieSBvcHRpb24KICAgIG15ICRFeHRPcmRlckJ5ID0gJyBPUkRFUiBCWSc7CiAgICBmb3IgbXkgJENvdW50ICggMCAuLiAkI3sgJFBhcmFte09yZGVyQnl9IH0gKSB7CiAgICAgICAgaWYgKCAkQ291bnQgPiAwICkgewogICAgICAgICAgICAkRXh0T3JkZXJCeSAuPSAnLCc7CiAgICAgICAgfQoKICAgICAgICAjIHNvcnQgYnkgZHluYW1pYyBmaWVsZAogICAgICAgIGlmICggJFZhbGlkRHluYW1pY0ZpZWxkUGFyYW1zeyAkUGFyYW17T3JkZXJCeX0tPlskQ291bnRdIH0gKSB7CiAgICAgICAgICAgIG15ICgkRHluYW1pY0ZpZWxkTmFtZSkgPSAkUGFyYW17T3JkZXJCeX0tPlskQ291bnRdID1+IG0vXkR5bmFtaWNGaWVsZF8oLiopJC9zbXg7CgogICAgICAgICAgICBteSAkRHluYW1pY0ZpZWxkID0gJEZBUUR5bmFtaWNGaWVsZE5hbWUyQ29uZmlneyREeW5hbWljRmllbGROYW1lfTsKCiAgICAgICAgICAgICMgSWYgdGhlIHRhYmxlIHdhcyBhbHJlYWR5IGpvaW5lZCBmb3Igc2VhcmNoaW5nLCB3ZSByZXVzZSBpdC4KICAgICAgICAgICAgaWYgKCAhJER5bmFtaWNGaWVsZEpvaW5UYWJsZXN7JER5bmFtaWNGaWVsZE5hbWV9ICkgewoKICAgICAgICAgICAgICAgICMgSm9pbiB0aGUgdGFibGUgZm9yIHRoaXMgZHluYW1pYyBmaWVsZDsgdXNlIGEgbGVmdCBvdXRlciBqb2luIGluIHRoaXMgY2FzZS4KICAgICAgICAgICAgICAgICMgV2l0aCBhbiBJTk5FUiBKT0lOIHdlJ2QgbGltaXQgdGhlIHJlc3VsdCBzZXQgdG8gdGlja2V0cyB3aGljaCBoYXZlIGFuIGVudHJ5CiAgICAgICAgICAgICAgICAjICAgZm9yIHRoZSBERiB3aGljaCBpcyB1c2VkIGZvciBzb3J0aW5nLgogICAgICAgICAgICAgICAgJFNRTAogICAgICAgICAgICAgICAgICAgIC49ICIgTEVGVCBPVVRFUiBKT0lOIGR5bmFtaWNfZmllbGRfdmFsdWUgZGZ2JER5bmFtaWNGaWVsZEpvaW5Db3VudGVyCiAgICAgICAgICAgICAgICAgICAgT04gKGkuaWQgPSBkZnYkRHluYW1pY0ZpZWxkSm9pbkNvdW50ZXIub2JqZWN0X2lkCiAgICAgICAgICAgICAgICAgICAgICAgIEFORCBkZnYkRHluYW1pY0ZpZWxkSm9pbkNvdW50ZXIuZmllbGRfaWQgPSAiIC4KICAgICAgICAgICAgICAgICAgICAkREJPYmplY3QtPlF1b3RlKCAkRHluYW1pY0ZpZWxkLT57SUR9LCAnSW50ZWdlcicgKSAuICIpICI7CgogICAgICAgICAgICAgICAgJER5bmFtaWNGaWVsZEpvaW5UYWJsZXN7ICREeW5hbWljRmllbGQtPntOYW1lfSB9ID0gImRmdiREeW5hbWljRmllbGRKb2luQ291bnRlciI7CgogICAgICAgICAgICAgICAgJER5bmFtaWNGaWVsZEpvaW5Db3VudGVyKys7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG15ICRTUUxPcmRlckZpZWxkID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPlNlYXJjaFNRTE9yZGVyRmllbGRHZXQoCiAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZCwKICAgICAgICAgICAgICAgIFRhYmxlQWxpYXMgICAgICAgICA9PiAkRHluYW1pY0ZpZWxkSm9pblRhYmxlc3skRHluYW1pY0ZpZWxkTmFtZX0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRFeHQgICAgICAgIC49ICIsICRTUUxPcmRlckZpZWxkICI7CiAgICAgICAgICAgICRFeHRPcmRlckJ5IC49ICIgJFNRTE9yZGVyRmllbGQgIjsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIFJlZ3VsYXIgc29ydC4KICAgICAgICAgICAgJEV4dE9yZGVyQnkgLj0gJyAnIC4gJE9yZGVyQnlUYWJsZXsgJFBhcmFte09yZGVyQnl9LT5bJENvdW50XSB9OwogICAgICAgIH0KCiAgICAgICAgaWYgKCAkUGFyYW17T3JkZXJCeURpcmVjdGlvbn0tPlskQ291bnRdIGVxICdVcCcgKSB7CiAgICAgICAgICAgICRFeHRPcmRlckJ5IC49ICcgQVNDJzsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRFeHRPcmRlckJ5IC49ICcgREVTQyc7CiAgICAgICAgfQogICAgfQoKICAgICMgaWYgdGhlcmUgaXMgYSBwb3NzaWJpbGl0eSB0aGF0IHRoZSBvcmRlcmluZyBpcyBub3QgZGV0ZXJtaW5lZAogICAgIyB3ZSBhZGQgYW4gZGVzY2VuZGluZyBvcmRlcmluZyBieSBpZAogICAgaWYgKCAhZ3JlcCB7ICRfIGVxICdGQVFJRCcgfSAoIEB7ICRQYXJhbXtPcmRlckJ5fSB9ICkgKSB7CiAgICAgICAgaWYgKCAkI3sgJFBhcmFte09yZGVyQnl9IH0gPj0gMCApIHsKICAgICAgICAgICAgJEV4dE9yZGVyQnkgLj0gJywnOwogICAgICAgIH0KCiAgICAgICAgIyBzZXQgZGVmYXVsdCBvcmRlciBieSBkaXJlY3Rpb24KICAgICAgICBteSAkT3JkZXJCeURpcmVjdGlvbiA9ICdBU0MnOwoKICAgICAgICAjIHRyeSB0byBnZXQgdGhlIG9yZGVyIGJ5IGRpcmVjdGlvbiBvZiB0aGUgbGFzdAogICAgICAgICMgdXNlZCAnQ3JlYXRlZCcgb3IgJ0NoYW5nZWQnIE9yZGVyQnkgcGFyYW1ldGVycwogICAgICAgIG15ICRDb3VudCA9IDA7CiAgICAgICAgZm9yIG15ICRPcmRlckJ5ICggQHsgJFBhcmFte09yZGVyQnl9IH0gKSB7CiAgICAgICAgICAgIGlmICggJE9yZGVyQnkgZXEgJ0NyZWF0ZWQnIHx8ICRPcmRlckJ5IGVxICdDaGFuZ2VkJyApIHsKCiAgICAgICAgICAgICAgICBpZiAoICRQYXJhbXtPcmRlckJ5RGlyZWN0aW9ufS0+WyRDb3VudF0gZXEgJ1VwJyApIHsKICAgICAgICAgICAgICAgICAgICAkT3JkZXJCeURpcmVjdGlvbiA9ICdBU0MnOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJE9yZGVyQnlEaXJlY3Rpb24gPSAnREVTQyc7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJENvdW50Kys7CiAgICAgICAgfQoKICAgICAgICAkRXh0T3JkZXJCeSAuPSAnICcgLiAkT3JkZXJCeVRhYmxle0ZBUUlEfSAuICcgJyAuICRPcmRlckJ5RGlyZWN0aW9uOwogICAgfQoKICAgICMgYWRkIGV4dGVuZGVkIFNRTAogICAgJFNRTCAuPSAkRXh0IC4gJEV4dE9yZGVyQnk7CgogICAgIyBhc2sgZGF0YWJhc2UKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCAgID0+ICRTUUwsCiAgICAgICAgTGltaXQgPT4gJFBhcmFte0xpbWl0fSB8fCA1MDAsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgQExpc3Q7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICBwdXNoIEBMaXN0LCAkUm93WzBdOwogICAgfQoKICAgIHJldHVybiBATGlzdDsKfQoKPWhlYWQxIFBSSVZBVEUgRlVOQ1RJT05TCgo9aGVhZDIgX0luQ29uZGl0aW9uR2V0KCkKCmludGVybmFsIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhbgoKICAgIHRhYmxlLmNvbHVtbiBJTiAodmFsdWVzKQoKY29uZGl0aW9uIHN0cmluZyBmcm9tIGFuIGFycmF5LgoKICAgIG15ICRTUUxQYXJ0ID0gJFRpY2tldE9iamVjdC0+X0luQ29uZGl0aW9uR2V0KAogICAgICAgIFRhYmxlQ29sdW1uID0+ICd0YWJsZS5jb2x1bW4nLAogICAgICAgIElEUmVmICAgICAgID0+ICRBcnJheVJlZiwKICAgICk7Cgo9Y3V0CgpzdWIgX0luQ29uZGl0aW9uR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgaWYgKCAhJFBhcmFte1RhYmxlQ29sdW1ufSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgVGFibGVDb2x1bW4hIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBpZiAoICFJc0FycmF5UmVmV2l0aERhdGEoICRQYXJhbXtJRFJlZn0gKSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgSURSZWYhIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIHNvcnQgaWRzIHRvIGNhY2hlIHRoZSBTUUwgcXVlcnkKICAgIG15IEBTb3J0ZWRJRHMgPSBzb3J0IHsgJGEgPD0+ICRiIH0gQHsgJFBhcmFte0lEUmVmfSB9OwoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBFcnJvciBvdXQgaWYgc29tZSB2YWx1ZXMgd2VyZSBub3QgaW50ZWdlcnMuCiAgICBAU29ydGVkSURzID0gbWFwIHsgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPlF1b3RlKCAkXywgJ0ludGVnZXInICkgfSBAU29ydGVkSURzOwogICAgcmV0dXJuIGlmIHNjYWxhciBAU29ydGVkSURzICE9IHNjYWxhciBAeyAkUGFyYW17SURSZWZ9IH07CgogICAgIyBzcGxpdCBJTiBzdGF0ZW1lbnQgd2l0aCBtb3JlIHRoYW4gOTAwIGVsZW1lbnRzIGluIG1vcmUgc3RhdGVtZW50cyBjb21iaW5lZCB3aXRoIE9SCiAgICAjIGJlY2F1c2UgT3JhY2xlIGRvZXNuJ3Qgc3VwcG9ydCBtb3JlIHRoYW4gMTAwMCBlbGVtZW50cyBpbiBvbmUgSU4gc3RhdGVtZW50LgogICAgbXkgQFNRTFN0cmluZ3M7CiAgICBMT09QOgogICAgd2hpbGUgKCBzY2FsYXIgQFNvcnRlZElEcyApIHsKCiAgICAgICAgbXkgQFNvcnRlZElEc1BhcnQgPSBzcGxpY2UgQFNvcnRlZElEcywgMCwgOTAwOwoKICAgICAgICBteSAkSURTdHJpbmcgPSBqb2luICcsICcsIEBTb3J0ZWRJRHNQYXJ0OwoKICAgICAgICBwdXNoIEBTUUxTdHJpbmdzLCAiICRQYXJhbXtUYWJsZUNvbHVtbn0gSU4gKCRJRFN0cmluZykgIjsKICAgIH0KCiAgICBteSAkU1FMID0gam9pbiAnIE9SICcsIEBTUUxTdHJpbmdzOwogICAgJFNRTCA9ICcgKCAnIC4gJFNRTCAuICcgKSAnOwoKICAgIHJldHVybiAkU1FMOwp9CgoxOwoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UT0JPIHByb2plY3QgKEw8aHR0cHM6Ly9vdG9iby5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dD4uCgo9Y3V0Cg==</File>
        <File Location="Kernel/System/LinkObject/FAQ.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpMaW5rT2JqZWN0OjpGQVE7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OkZBUScsCiAgICAnS2VybmVsOjpTeXN0ZW06Okdyb3VwJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKKTsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyhJc0FycmF5UmVmV2l0aERhdGEpOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpMaW5rT2JqZWN0OjpGQVEKCj1oZWFkMSBERVNDUklQVElPTgoKRkFRIGJhY2tlbmQgZm9yIHRoZSBsaW5rIG9iamVjdC4KCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9aGVhZDIgbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QuIERvIG5vdCB1c2UgaXQgZGlyZWN0bHksIGluc3RlYWQgdXNlOgoKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlcjsKICAgIGxvY2FsICRLZXJuZWw6Ok9NID0gS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXItPm5ldygpOwogICAgbXkgJEZBUU9iamVjdEJhY2tlbmQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TGlua09iamVjdDo6RkFRJyk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWhlYWQyIExpbmtMaXN0V2l0aERhdGEoKQoKZmlsbCB1cCB0aGUgbGluayBsaXN0IHdpdGggZGF0YQoKICAgICRTdWNjZXNzID0gJExpbmtPYmplY3QtPkxpbmtMaXN0V2l0aERhdGEoCiAgICAgICAgTGlua0xpc3QgPT4gJEhhc2hSZWYsCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgTGlua0xpc3RXaXRoRGF0YSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KExpbmtMaXN0IFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgbGluayBsaXN0CiAgICBpZiAoIHJlZiAkUGFyYW17TGlua0xpc3R9IG5lICdIQVNIJyApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ0xpbmtMaXN0IG11c3QgYmUgYSBoYXNoIHJlZmVyZW5jZSEnLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSAkRkFRT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkZBUScpOwoKICAgIGZvciBteSAkTGlua1R5cGUgKCBzb3J0IGtleXMgJXsgJFBhcmFte0xpbmtMaXN0fSB9ICkgewoKICAgICAgICBmb3IgbXkgJERpcmVjdGlvbiAoIHNvcnQga2V5cyAleyAkUGFyYW17TGlua0xpc3R9LT57JExpbmtUeXBlfSB9ICkgewoKICAgICAgICAgICAgSVRFTUlEOgogICAgICAgICAgICBmb3IgbXkgJEl0ZW1JRCAoIHNvcnQga2V5cyAleyAkUGFyYW17TGlua0xpc3R9LT57JExpbmtUeXBlfS0+eyREaXJlY3Rpb259IH0gKSB7CgogICAgICAgICAgICAgICAgbXkgJUZBUURhdGEgPSAkRkFRT2JqZWN0LT5GQVFHZXQoCiAgICAgICAgICAgICAgICAgICAgSXRlbUlEICAgICA9PiAkSXRlbUlELAogICAgICAgICAgICAgICAgICAgIEl0ZW1GaWVsZHMgPT4gMSwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIHJlbW92ZSBpZCBmcm9tIGhhc2ggaWYgbm8gRkFRIGRhdGEgd2FzIGZvdW5kCiAgICAgICAgICAgICAgICBpZiAoICElRkFRRGF0YSApIHsKICAgICAgICAgICAgICAgICAgICBkZWxldGUgJFBhcmFte0xpbmtMaXN0fS0+eyRMaW5rVHlwZX0tPnskRGlyZWN0aW9ufS0+eyRJdGVtSUR9OwogICAgICAgICAgICAgICAgICAgIG5leHQgSVRFTUlEOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgYWRkIEZBUSBkYXRhCiAgICAgICAgICAgICAgICAkUGFyYW17TGlua0xpc3R9LT57JExpbmtUeXBlfS0+eyREaXJlY3Rpb259LT57JEl0ZW1JRH0gPSBcJUZBUURhdGE7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBPYmplY3RQZXJtaXNzaW9uKCkKCmNoZWNrcyByZWFkIHBlcm1pc3Npb24gZm9yIGEgZ2l2ZW4gb2JqZWN0IGFuZCBVc2VySUQuCgogICAgJFBlcm1pc3Npb24gPSAkTGlua09iamVjdC0+T2JqZWN0UGVybWlzc2lvbigKICAgICAgICBPYmplY3QgID0+ICdGQVEnLAogICAgICAgIEtleSAgICAgPT4gMTIzLAogICAgICAgIFVzZXJJRCAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgT2JqZWN0UGVybWlzc2lvbiB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KE9iamVjdCBLZXkgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBtb2R1bGUgcmVnaXN0cnkgb2YgQWdlbnRGQVFab29tCiAgICBteSAkTW9kdWxlUmVnID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdGcm9udGVuZDo6TW9kdWxlJyktPntBZ2VudEZBUVpvb219OwoKICAgICMgZG8gbm90IGdyYW50IGFjY2VzcyBpZiBmcm9udGVuZCBtb2R1bGUgaXMgbm90IHJlZ2lzdGVyZWQKICAgIHJldHVybiBpZiAhJE1vZHVsZVJlZzsKCiAgICAjIGdyYW50IGFjY2VzcyBpZiBtb2R1bGUgcGVybWlzc2lvbiBoYXMgbm8gR3JvdXAgb3IgR3JvdXBSbyBkZWZpbmVkCiAgICBpZiAoICFJc0FycmF5UmVmV2l0aERhdGEoICRNb2R1bGVSZWctPntHcm91cFJvfSApICYmICFJc0FycmF5UmVmV2l0aERhdGEoICRNb2R1bGVSZWctPntHcm91cH0gKSApIHsKICAgICAgICByZXR1cm4gMTsKICAgIH0KCiAgICBteSAkR3JvdXBPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKTsKCiAgICBQRVJNSVNTSU9OOgogICAgZm9yIG15ICRQZXJtaXNzaW9uIChxdyhHcm91cFJvIEdyb3VwKSkgewoKICAgICAgICBuZXh0IFBFUk1JU1NJT04gaWYgISRNb2R1bGVSZWctPnskUGVybWlzc2lvbn07CiAgICAgICAgbmV4dCBQRVJNSVNTSU9OIGlmIHJlZiAkTW9kdWxlUmVnLT57JFBlcm1pc3Npb259IG5lICdBUlJBWSc7CgogICAgICAgIGZvciBteSAkR3JvdXAgKCBAeyAkTW9kdWxlUmVnLT57JFBlcm1pc3Npb259IH0gKSB7CgogICAgICAgICAgICAjIGdldCB0aGUgZ3JvdXAgaWQKICAgICAgICAgICAgbXkgJEdyb3VwSUQgPSAkR3JvdXBPYmplY3QtPkdyb3VwTG9va3VwKCBHcm91cCA9PiAkR3JvdXAgKTsKCiAgICAgICAgICAgIG15ICRUeXBlOwogICAgICAgICAgICBpZiAoICRQZXJtaXNzaW9uIGVxICdHcm91cFJvJyApIHsKICAgICAgICAgICAgICAgICRUeXBlID0gJ3JvJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRQZXJtaXNzaW9uIGVxICdHcm91cCcgKSB7CiAgICAgICAgICAgICAgICAkVHlwZSA9ICdydyc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgZ2V0IHVzZXIgZ3JvdXBzLCB3aGVyZSB0aGUgdXNlciBoYXMgdGhlIGFwcHJvcHJpYXRlIHByaXZpbGVnZQogICAgICAgICAgICBteSAlR3JvdXBzID0gJEdyb3VwT2JqZWN0LT5Hcm91cE1lbWJlckxpc3QoCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICBUeXBlICAgPT4gJFR5cGUsCiAgICAgICAgICAgICAgICBSZXN1bHQgPT4gJ0hBU0gnLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBncmFudCBhY2Nlc3MgaWYgYWdlbnQgaXMgYSBtZW1iZXIgaW4gdGhlIGdyb3VwCiAgICAgICAgICAgIHJldHVybiAxIGlmICRHcm91cHN7JEdyb3VwSUR9OwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm47Cn0KCj1oZWFkMiBPYmplY3REZXNjcmlwdGlvbkdldCgpCgpyZXR1cm4gYSBoYXNoIG9mIG9iamVjdCBkZXNjcmlwdGlvbnMKClJldHVybgogICAgJURlc2NyaXB0aW9uID0gKAogICAgICAgIE5vcm1hbCA9PiAiRkFRIyAxMjM0IiwKICAgICAgICBMb25nICAgPT4gIkZBUSMgMTIzNDogRkFRVGl0bGUiLAogICAgKTsKCiAgICAlRGVzY3JpcHRpb24gPSAkTGlua09iamVjdC0+T2JqZWN0RGVzY3JpcHRpb25HZXQoCiAgICAgICAgS2V5ICAgICA9PiAxMjMsCiAgICAgICAgVXNlcklEICA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBPYmplY3REZXNjcmlwdGlvbkdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KE9iamVjdCBLZXkgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBjcmVhdGUgZGVzY3JpcHRpb24KICAgIG15ICVEZXNjcmlwdGlvbiA9ICgKICAgICAgICBOb3JtYWwgPT4gJ0ZBUScsCiAgICAgICAgTG9uZyAgID0+ICdGQVEnLAogICAgKTsKCiAgICByZXR1cm4gJURlc2NyaXB0aW9uIGlmICRQYXJhbXtNb2RlfSAmJiAkUGFyYW17TW9kZX0gZXEgJ1RlbXBvcmFyeSc7CgogICAgbXkgJUZBUSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpGQVEnKS0+RkFRR2V0KAogICAgICAgIEl0ZW1JRCAgICAgPT4gJFBhcmFte0tleX0sCiAgICAgICAgSXRlbUZpZWxkcyA9PiAxLAogICAgICAgIFVzZXJJRCAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIHJldHVybiBpZiAhJUZBUTsKCiAgICAjIGRlZmluZSBkZXNjcmlwdGlvbiB0ZXh0CiAgICBteSAkRkFRSG9vayAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdGQVE6OkZBUUhvb2snKTsKICAgIG15ICREZXNjcmlwdGlvblRleHQgPSAiJEZBUUhvb2sgJEZBUXtOdW1iZXJ9IjsKCiAgICAjIGNyZWF0ZSBkZXNjcmlwdGlvbgogICAgJURlc2NyaXB0aW9uID0gKAogICAgICAgIE5vcm1hbCA9PiAkRGVzY3JpcHRpb25UZXh0LAogICAgICAgIExvbmcgICA9PiAiJERlc2NyaXB0aW9uVGV4dDogJEZBUXtUaXRsZX0iLAogICAgKTsKCiAgICByZXR1cm4gJURlc2NyaXB0aW9uOwp9Cgo9aGVhZDIgT2JqZWN0U2VhcmNoKCkKCnJldHVybiBhIGhhc2ggbGlzdCBvZiB0aGUgc2VhcmNoIHJlc3VsdHMKClJldHVybgogICAgJFNlYXJjaExpc3QgPSB7CiAgICAgICAgTk9ULUxJTktFRCA9PiB7CiAgICAgICAgICAgIFNvdXJjZSA9PiB7CiAgICAgICAgICAgICAgICAxMiAgPT4gJERhdGFPZkl0ZW0xMiwKICAgICAgICAgICAgICAgIDIxMiA9PiAkRGF0YU9mSXRlbTIxMiwKICAgICAgICAgICAgICAgIDMzMiA9PiAkRGF0YU9mSXRlbTMzMiwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfTsKCiAgICAkU2VhcmNoTGlzdCA9ICRMaW5rT2JqZWN0QmFja2VuZC0+T2JqZWN0U2VhcmNoKAogICAgICAgIFNlYXJjaFBhcmFtcyA9PiAkSGFzaFJlZiwgICMgKG9wdGlvbmFsKQogICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBPYmplY3RTZWFyY2ggewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBpZiAoICEkUGFyYW17VXNlcklEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgVXNlcklEIScsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgc2V0IGRlZmF1bHQgcGFyYW1zCiAgICAkUGFyYW17U2VhcmNoUGFyYW1zfSB8fD0ge307CgogICAgIyBhZGQgd2lsZC1jYXJkcwogICAgbXkgJVNlYXJjaDsKICAgIGlmICggJFBhcmFte1NlYXJjaFBhcmFtc30tPntUaXRsZX0gKSB7CiAgICAgICAgJFNlYXJjaHtUaXRsZX0gPSAnKicgLiAkUGFyYW17U2VhcmNoUGFyYW1zfS0+e1RpdGxlfSAuICcqJzsKICAgIH0KICAgIGlmICggJFBhcmFte1NlYXJjaFBhcmFtc30tPntOdW1iZXJ9ICkgewogICAgICAgICRTZWFyY2h7TnVtYmVyfSA9ICcqJyAuICRQYXJhbXtTZWFyY2hQYXJhbXN9LT57TnVtYmVyfSAuICcqJzsKICAgIH0KICAgIGlmICggJFBhcmFte1NlYXJjaFBhcmFtc30tPntXaGF0fSApIHsKICAgICAgICAkU2VhcmNoe1doYXR9ID0gJyonIC4gJFBhcmFte1NlYXJjaFBhcmFtc30tPntXaGF0fSAuICcqJzsKICAgIH0KCiAgICBteSAkRkFRT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkZBUScpOwoKICAgICMgc2VhcmNoIHRoZSBGQVFzCiAgICBteSBASXRlbUlEcyA9ICRGQVFPYmplY3QtPkZBUVNlYXJjaCgKICAgICAgICAleyAkUGFyYW17U2VhcmNoUGFyYW1zfSB9LAogICAgICAgICVTZWFyY2gsCiAgICAgICAgT3JkZXIgID0+ICdDcmVhdGVkJywKICAgICAgICBTb3J0ICAgPT4gJ2Rvd24nLAogICAgICAgIExpbWl0ICA9PiA1MCwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIG15ICVTZWFyY2hMaXN0OwogICAgSVRFTUlEOgogICAgZm9yIG15ICRJdGVtSUQgKEBJdGVtSURzKSB7CgogICAgICAgIG15ICVGQVFEYXRhID0gJEZBUU9iamVjdC0+RkFRR2V0KAogICAgICAgICAgICBJdGVtSUQgICAgID0+ICRJdGVtSUQsCiAgICAgICAgICAgIEl0ZW1GaWVsZHMgPT4gMSwKICAgICAgICAgICAgVXNlcklEICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICBuZXh0IElURU1JRCBpZiAhJUZBUURhdGE7CgogICAgICAgICMgYWRkIEZBUSBkYXRhCiAgICAgICAgJFNlYXJjaExpc3R7Tk9UTElOS0VEfS0+e1NvdXJjZX0tPnskSXRlbUlEfSA9IFwlRkFRRGF0YTsKICAgIH0KCiAgICByZXR1cm4gXCVTZWFyY2hMaXN0Owp9Cgo9aGVhZDIgTGlua0FkZFByZSgpCgpsaW5rIGFkZCBwcmUgZXZlbnQgbW9kdWxlCgogICAgJFRydWUgPSAkTGlua09iamVjdC0+TGlua0FkZFByZSgKICAgICAgICBLZXkgICAgICAgICAgPT4gMTIzLAogICAgICAgIFNvdXJjZU9iamVjdCA9PiAnRkFRJywKICAgICAgICBTb3VyY2VLZXkgICAgPT4gMzIxLAogICAgICAgIFR5cGUgICAgICAgICA9PiAnTm9ybWFsJywKICAgICAgICBTdGF0ZSAgICAgICAgPT4gJ1ZhbGlkJywKICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICk7CgogICAgb3IKCiAgICAkVHJ1ZSA9ICRMaW5rT2JqZWN0LT5MaW5rQWRkUHJlKAogICAgICAgIEtleSAgICAgICAgICA9PiAxMjMsCiAgICAgICAgVGFyZ2V0T2JqZWN0ID0+ICdGQVEnLAogICAgICAgIFRhcmdldEtleSAgICA9PiAzMjEsCiAgICAgICAgVHlwZSAgICAgICAgID0+ICdOb3JtYWwnLAogICAgICAgIFN0YXRlICAgICAgICA9PiAnVmFsaWQnLAogICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBMaW5rQWRkUHJlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoS2V5IFR5cGUgU3RhdGUgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIDEgaWYgJFBhcmFte1N0YXRlfSBlcSAnVGVtcG9yYXJ5JzsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIExpbmtBZGRQb3N0KCkKCmxpbmsgYWRkIHByZSBldmVudCBtb2R1bGUKCiAgICAkVHJ1ZSA9ICRMaW5rT2JqZWN0LT5MaW5rQWRkUG9zdCgKICAgICAgICBLZXkgICAgICAgICAgPT4gMTIzLAogICAgICAgIFNvdXJjZU9iamVjdCA9PiAnRkFRJywKICAgICAgICBTb3VyY2VLZXkgICAgPT4gMzIxLAogICAgICAgIFR5cGUgICAgICAgICA9PiAnTm9ybWFsJywKICAgICAgICBTdGF0ZSAgICAgICAgPT4gJ1ZhbGlkJywKICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICk7CgogICAgb3IKCiAgICAkVHJ1ZSA9ICRMaW5rT2JqZWN0LT5MaW5rQWRkUG9zdCgKICAgICAgICBLZXkgICAgICAgICAgPT4gMTIzLAogICAgICAgIFRhcmdldE9iamVjdCA9PiAnRkFRJywKICAgICAgICBUYXJnZXRLZXkgICAgPT4gMzIxLAogICAgICAgIFR5cGUgICAgICAgICA9PiAnTm9ybWFsJywKICAgICAgICBTdGF0ZSAgICAgICAgPT4gJ1ZhbGlkJywKICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgTGlua0FkZFBvc3QgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhLZXkgVHlwZSBTdGF0ZSBVc2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gMSBpZiAkUGFyYW17U3RhdGV9IGVxICdUZW1wb3JhcnknOwoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgTGlua0RlbGV0ZVByZSgpCgpsaW5rIGRlbGV0ZSBwcmUgZXZlbnQgbW9kdWxlCgogICAgJFRydWUgPSAkTGlua09iamVjdC0+TGlua0RlbGV0ZVByZSgKICAgICAgICBLZXkgICAgICAgICAgPT4gMTIzLAogICAgICAgIFNvdXJjZU9iamVjdCA9PiAnRkFRJywKICAgICAgICBTb3VyY2VLZXkgICAgPT4gMzIxLAogICAgICAgIFR5cGUgICAgICAgICA9PiAnTm9ybWFsJywKICAgICAgICBTdGF0ZSAgICAgICAgPT4gJ1ZhbGlkJywKICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICk7CgogICAgb3IKCiAgICAkVHJ1ZSA9ICRMaW5rT2JqZWN0LT5MaW5rRGVsZXRlUHJlKAogICAgICAgIEtleSAgICAgICAgICA9PiAxMjMsCiAgICAgICAgVGFyZ2V0T2JqZWN0ID0+ICdGQVEnLAogICAgICAgIFRhcmdldEtleSAgICA9PiAzMjEsCiAgICAgICAgVHlwZSAgICAgICAgID0+ICdOb3JtYWwnLAogICAgICAgIFN0YXRlICAgICAgICA9PiAnVmFsaWQnLAogICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBMaW5rRGVsZXRlUHJlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoS2V5IFR5cGUgU3RhdGUgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIDEgaWYgJFBhcmFte1N0YXRlfSBlcSAnVGVtcG9yYXJ5JzsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIExpbmtEZWxldGVQb3N0KCkKCmxpbmsgZGVsZXRlIHBvc3QgZXZlbnQgbW9kdWxlCgogICAgJFRydWUgPSAkTGlua09iamVjdC0+TGlua0RlbGV0ZVBvc3QoCiAgICAgICAgS2V5ICAgICAgICAgID0+IDEyMywKICAgICAgICBTb3VyY2VPYmplY3QgPT4gJ0ZBUScsCiAgICAgICAgU291cmNlS2V5ICAgID0+IDMyMSwKICAgICAgICBUeXBlICAgICAgICAgPT4gJ05vcm1hbCcsCiAgICAgICAgU3RhdGUgICAgICAgID0+ICdWYWxpZCcsCiAgICAgICAgVXNlcklEICAgICAgID0+IDEsCiAgICApOwoKICAgIG9yCgogICAgJFRydWUgPSAkTGlua09iamVjdC0+TGlua0RlbGV0ZVBvc3QoCiAgICAgICAgS2V5ICAgICAgICAgID0+IDEyMywKICAgICAgICBUYXJnZXRPYmplY3QgPT4gJ0ZBUScsCiAgICAgICAgVGFyZ2V0S2V5ICAgID0+IDMyMSwKICAgICAgICBUeXBlICAgICAgICAgPT4gJ05vcm1hbCcsCiAgICAgICAgU3RhdGUgICAgICAgID0+ICdWYWxpZCcsCiAgICAgICAgVXNlcklEICAgICAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIExpbmtEZWxldGVQb3N0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoS2V5IFR5cGUgU3RhdGUgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIDEgaWYgJFBhcmFte1N0YXRlfSBlcSAnVGVtcG9yYXJ5JzsKCiAgICByZXR1cm4gMTsKfQoKMTsKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVE9CTyBwcm9qZWN0IChMPGh0dHBzOi8vb3RvYm8ub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQ+LgoKPWN1dAo=</File>
        <File Location="Kernel/System/Stats/Static/FAQAccess.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpTdGF0czo6U3RhdGljOjpGQVFBY2Nlc3M7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OkZBUScsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKKTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIEFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QuCiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIEdldE9iamVjdEJlaGF2aW91cnMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlQmVoYXZpb3VycyA9ICgKICAgICAgICBQcm92aWRlc0Rhc2hib2FyZFdpZGdldCA9PiAwLAogICAgKTsKCiAgICByZXR1cm4gJUJlaGF2aW91cnM7Cn0KCnN1YiBQYXJhbSB7CgogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICBteSBAUGFyYW1zID0gKCk7CgogICAgIyBHZXQgY3VycmVudCB0aW1lLgogICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICk7CiAgICBteSAkRGF0ZVRpbWVTZXR0aW5ncyA9ICREYXRlVGltZU9iamVjdC0+R2V0KCk7CgogICAgbXkgJEQgPSBzcHJpbnRmKCAiJTAyZCIsICREYXRlVGltZVNldHRpbmdzLT57RGF5fSApOwogICAgbXkgJE0gPSBzcHJpbnRmKCAiJTAyZCIsICREYXRlVGltZVNldHRpbmdzLT57TW9udGh9ICk7CiAgICBteSAkWSA9IHNwcmludGYoICIlMDJkIiwgJERhdGVUaW1lU2V0dGluZ3MtPntZZWFyfSApOwoKICAgICMgQ3JlYXRlIHBvc3NpYmxlIHRpbWUgc2VsZWN0aW9ucy4KICAgIG15ICVZZWFyICA9IG1hcCB7ICRfID0+ICRfIH0gKCAkWSAtIDEwIC4uICRZICsgMSApOwogICAgbXkgJU1vbnRoID0gbWFwIHsgc3ByaW50ZiggIiUwMmQiLCAkXyApID0+IHNwcmludGYoICIlMDJkIiwgJF8gKSB9ICggMSAuLiAxMiApOwogICAgbXkgJURheSAgID0gbWFwIHsgc3ByaW50ZiggIiUwMmQiLCAkXyApID0+IHNwcmludGYoICIlMDJkIiwgJF8gKSB9ICggMSAuLiAzMSApOwoKICAgIHB1c2ggQFBhcmFtcywgewogICAgICAgIEZyb250ZW5kICAgPT4gJ1N0YXJ0IGRheScsCiAgICAgICAgTmFtZSAgICAgICA9PiAnU3RhcnREYXknLAogICAgICAgIE11bHRpcGxlICAgPT4gMCwKICAgICAgICBTaXplICAgICAgID0+IDAsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAnMDEnLAogICAgICAgIERhdGEgICAgICAgPT4gewogICAgICAgICAgICAlRGF5LAogICAgICAgIH0sCiAgICB9OwogICAgcHVzaCBAUGFyYW1zLCB7CiAgICAgICAgRnJvbnRlbmQgICA9PiAnU3RhcnQgbW9udGgnLAogICAgICAgIE5hbWUgICAgICAgPT4gJ1N0YXJ0TW9udGgnLAogICAgICAgIE11bHRpcGxlICAgPT4gMCwKICAgICAgICBTaXplICAgICAgID0+IDAsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkTSwKICAgICAgICBEYXRhICAgICAgID0+IHsKICAgICAgICAgICAgJU1vbnRoLAogICAgICAgIH0sCiAgICB9OwogICAgcHVzaCBAUGFyYW1zLCB7CiAgICAgICAgRnJvbnRlbmQgICA9PiAnU3RhcnQgeWVhcicsCiAgICAgICAgTmFtZSAgICAgICA9PiAnU3RhcnRZZWFyJywKICAgICAgICBNdWx0aXBsZSAgID0+IDAsCiAgICAgICAgU2l6ZSAgICAgICA9PiAwLAogICAgICAgIFNlbGVjdGVkSUQgPT4gJFksCiAgICAgICAgRGF0YSAgICAgICA9PiB7CiAgICAgICAgICAgICVZZWFyLAogICAgICAgIH0sCiAgICB9OwogICAgcHVzaCBAUGFyYW1zLCB7CiAgICAgICAgRnJvbnRlbmQgICA9PiAnRW5kIGRheScsCiAgICAgICAgTmFtZSAgICAgICA9PiAnRW5kRGF5JywKICAgICAgICBNdWx0aXBsZSAgID0+IDAsCiAgICAgICAgU2l6ZSAgICAgICA9PiAwLAogICAgICAgIFNlbGVjdGVkSUQgPT4gJEQsCiAgICAgICAgRGF0YSAgICAgICA9PiB7CiAgICAgICAgICAgICVEYXksCiAgICAgICAgfSwKICAgIH07CiAgICBwdXNoIEBQYXJhbXMsIHsKICAgICAgICBGcm9udGVuZCAgID0+ICdFbmQgbW9udGgnLAogICAgICAgIE5hbWUgICAgICAgPT4gJ0VuZE1vbnRoJywKICAgICAgICBNdWx0aXBsZSAgID0+IDAsCiAgICAgICAgU2l6ZSAgICAgICA9PiAwLAogICAgICAgIFNlbGVjdGVkSUQgPT4gJE0sCiAgICAgICAgRGF0YSAgICAgICA9PiB7CiAgICAgICAgICAgICVNb250aCwKICAgICAgICB9LAogICAgfTsKICAgIHB1c2ggQFBhcmFtcywgewogICAgICAgIEZyb250ZW5kICAgPT4gJ0VuZCB5ZWFyJywKICAgICAgICBOYW1lICAgICAgID0+ICdFbmRZZWFyJywKICAgICAgICBNdWx0aXBsZSAgID0+IDAsCiAgICAgICAgU2l6ZSAgICAgICA9PiAwLAogICAgICAgIFNlbGVjdGVkSUQgPT4gJFksCiAgICAgICAgRGF0YSAgICAgICA9PiB7CiAgICAgICAgICAgICVZZWFyLAogICAgICAgIH0sCiAgICB9OwoKICAgIHJldHVybiBAUGFyYW1zOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBDaGVjayBuZWVkZWQgc3R1ZmYuCiAgICBmb3IgbXkgJFBhcmFtTmFtZSAocXcoU3RhcnRZZWFyIFN0YXJ0TW9udGggU3RhcnREYXkgRW5kWWVhciBFbmRNb250aCBFbmREYXkpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRQYXJhbU5hbWV9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkUGFyYW1OYW1lISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJERhdGVUaW1lT2JqZWN0U3RhcnQgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgIFllYXIgICAgID0+ICRQYXJhbXtTdGFydFllYXJ9LAogICAgICAgICAgICBNb250aCAgICA9PiAkUGFyYW17U3RhcnRNb250aH0sCiAgICAgICAgICAgIERheSAgICAgID0+IDEsCiAgICAgICAgICAgIFRpbWVab25lID0+ICdmbG9hdGluZycsCiAgICAgICAgfSwKICAgICk7CgogICAgbXkgJExhc3REYXlPZk1vbnRoU3RhcnQ7CiAgICBpZiAoIGRlZmluZWQgJERhdGVUaW1lT2JqZWN0U3RhcnQgKSB7CiAgICAgICAgJExhc3REYXlPZk1vbnRoU3RhcnQgPSAkRGF0ZVRpbWVPYmplY3RTdGFydC0+TGFzdERheU9mTW9udGhHZXQoKTsKICAgIH0KCiAgICAjIENvcnJlY3Qgc3RhcnQgZGF5IG9mIG1vbnRoIGlmIGVudGVyZWQgd3JvbmcgYnkgdXNlci4KICAgIG15ICRTdGFydERheSA9IHNwcmludGYoICIlMDJkIiwgJExhc3REYXlPZk1vbnRoU3RhcnQgKTsKICAgIGlmICggJFBhcmFte1N0YXJ0RGF5fSA8ICRTdGFydERheSApIHsKICAgICAgICAkU3RhcnREYXkgPSAkUGFyYW17U3RhcnREYXl9OwogICAgfQoKICAgIG15ICREYXRlVGltZU9iamVjdEVuZCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgWWVhciAgICAgPT4gJFBhcmFte0VuZFllYXJ9LAogICAgICAgICAgICBNb250aCAgICA9PiAkUGFyYW17RW5kTW9udGh9LAogICAgICAgICAgICBEYXkgICAgICA9PiAxLAogICAgICAgICAgICBUaW1lWm9uZSA9PiAnZmxvYXRpbmcnLAogICAgICAgIH0sCiAgICApOwoKICAgIG15ICRMYXN0RGF5T2ZNb250aEVuZDsKICAgIGlmICggZGVmaW5lZCAkRGF0ZVRpbWVPYmplY3RFbmQgKSB7CiAgICAgICAgJExhc3REYXlPZk1vbnRoRW5kID0gJERhdGVUaW1lT2JqZWN0RW5kLT5MYXN0RGF5T2ZNb250aEdldCgpOwogICAgfQoKICAgICMgQ29ycmVjdCBlbmQgZGF5IG9mIG1vbnRoIGlmIGVudGVyZWQgd3JvbmcgYnkgdXNlci4KICAgIG15ICRFbmREYXkgPSBzcHJpbnRmKCAiJTAyZCIsICRMYXN0RGF5T2ZNb250aEVuZCApOwogICAgaWYgKCAkUGFyYW17RW5kRGF5fSA8ICRFbmREYXkgKSB7CiAgICAgICAgJEVuZERheSA9ICRQYXJhbXtFbmREYXl9OwogICAgfQoKICAgICMgU2V0IHN0YXJ0IGFuZCBlbmQgZGF0ZS4KICAgIG15ICRTdGFydERhdGUgPSAiJFBhcmFte1N0YXJ0WWVhcn0tJFBhcmFte1N0YXJ0TW9udGh9LSRTdGFydERheSAwMDowMDowMCI7CiAgICBteSAkRW5kRGF0ZSAgID0gIiRQYXJhbXtFbmRZZWFyfS0kUGFyYW17RW5kTW9udGh9LSRFbmREYXkgMjM6NTk6NTkiOwoKICAgIG15ICRGQVFPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RkFRJyk7CgogICAgbXkgJENvbmZpZ09iamVjdCAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwogICAgbXkgJEZBUVRvcDEwTGltaXRDb25maWcgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0ZBUTo6RXhwbG9yZXI6OlRvcDEwOjpMaW1pdCcpOwoKICAgICMgR2V0IGEgY291bnQgb2YgYWxsIEZBUSBhcnRpY2xlcy4KICAgIG15ICRUb3AxMEl0ZW1JRHNSZWYgPSAkRkFRT2JqZWN0LT5GQVFUb3AxMEdldCgKICAgICAgICBJbnRlcmZhY2UgPT4gJ2ludGVybmFsJywKICAgICAgICBTdGFydERhdGUgPT4gJFN0YXJ0RGF0ZSwKICAgICAgICBFbmREYXRlICAgPT4gJEVuZERhdGUsCiAgICAgICAgVXNlcklEICAgID0+IDEsCiAgICAgICAgTGltaXQgICAgID0+ICRGQVFUb3AxMExpbWl0Q29uZmlnLAogICAgKSB8fCBbXTsKCiAgICAjIEJ1aWxkIHJlc3VsdCB0YWJsZS4KICAgIG15IEBEYXRhOwogICAgZm9yIG15ICRJdGVtSURSZWYgKCBAeyRUb3AxMEl0ZW1JRHNSZWZ9ICkgewoKICAgICAgICBteSAlRkFRRGF0YSA9ICRGQVFPYmplY3QtPkZBUUdldCgKICAgICAgICAgICAgSXRlbUlEICAgICA9PiAkSXRlbUlEUmVmLT57SXRlbUlEfSwKICAgICAgICAgICAgSXRlbUZpZWxkcyA9PiAwLAogICAgICAgICAgICBVc2VySUQgICAgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJFZvdGVEYXRhID0gJEZBUU9iamVjdC0+SXRlbVZvdGVEYXRhR2V0KAogICAgICAgICAgICBJdGVtSUQgPT4gJEl0ZW1JRFJlZi0+e0l0ZW1JRH0sCiAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICk7CiAgICAgICAgbXkgJFZvdGVSZXN1bHQgPSBzcHJpbnRmKAogICAgICAgICAgICAiJTAuIgogICAgICAgICAgICAgICAgLiAkQ29uZmlnT2JqZWN0LT5HZXQoCiAgICAgICAgICAgICAgICAgICAgIkZBUTo6RXhwbG9yZXI6Okl0ZW1MaXN0OjpWb3RpbmdSZXN1bHREZWNpbWFsUGxhY2VzIgogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLiAiZiIsCiAgICAgICAgICAgICRWb3RlRGF0YS0+e1Jlc3VsdH0KICAgICAgICAgICAgICAgIHx8IDAKICAgICAgICApOwogICAgICAgIG15ICRWb3RlcyA9ICRWb3RlRGF0YS0+e1ZvdGVzfSB8fCAwOwoKICAgICAgICAjIEJ1aWxkIHRhYmxlIHJvdy4KICAgICAgICBwdXNoIEBEYXRhLCBbCiAgICAgICAgICAgICRGQVFEYXRhe051bWJlcn0sCiAgICAgICAgICAgICRGQVFEYXRhe1RpdGxlfSwKICAgICAgICAgICAgJEl0ZW1JRFJlZi0+e0NvdW50fSwKICAgICAgICAgICAgJFZvdGVSZXN1bHQsCiAgICAgICAgICAgICRWb3RlcywKICAgICAgICBdOwogICAgfQoKICAgICMgU2V0IHJlcG9ydCB0aXRsZS4KICAgIG15ICRUaXRsZSA9ICIkUGFyYW17U3RhcnRZZWFyfS0kUGFyYW17U3RhcnRNb250aH0tJFN0YXJ0RGF5IC0gJFBhcmFte0VuZFllYXJ9LSRQYXJhbXtFbmRNb250aH0tJEVuZERheSI7CgogICAgIyBUYWJsZSBoZWFkbGluZXMuCiAgICBteSBASGVhZERhdGEgPSAoCiAgICAgICAgJ0ZBUSAjJywKICAgICAgICAnVGl0bGUnLAogICAgICAgICdDb3VudCcsCiAgICAgICAgJ1ZvdGUgUmVzdWx0JywKICAgICAgICAnVm90ZXMnLAogICAgKTsKCiAgICBteSBAUmVzdWx0ID0gKCBbJFRpdGxlXSwgW0BIZWFkRGF0YV0sIEBEYXRhICk7CgogICAgcmV0dXJuIEBSZXN1bHQ7Cn0KCjE7Cg==</File>
        <File Location="scripts/test/Console/Command/Admin/FAQ/Import.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKb3VyICRTZWxmOwoKIyBnZXQgbmVlZGVkIG9iamVjdHMKJEtlcm5lbDo6T00tPk9iamVjdFBhcmFtQWRkKAogICAgJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyA9PiB7CiAgICAgICAgUmVzdG9yZURhdGFiYXNlID0+IDEsCiAgICB9LAopOwpteSAkSGVscGVyICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7Cm15ICRDb21tYW5kT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNvbnNvbGU6OkNvbW1hbmQ6OkFkbWluOjpGQVE6OkltcG9ydCcpOwoKIyB0ZXN0IGNvbW1hbmQgd2l0aG91dCBzb3VyY2UgYXJndW1lbnQKbXkgJEV4aXRDb2RlID0gJENvbW1hbmRPYmplY3QtPkV4ZWN1dGUoKTsKCiRTZWxmLT5JcygKICAgICRFeGl0Q29kZSwKICAgIDEsCiAgICAiT3B0aW9uIC0gd2l0aG91dCBzb3VyY2UtcGF0aCBhcmd1bWVudCIsCik7CgpteSAkU291cmNlUGF0aCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnSG9tZScpIC4gIi9zY3JpcHRzL3Rlc3Qvc2FtcGxlL0ZBUS5jc3YiOwoKIyB0ZXN0IGNvbW1hbmQgd2l0aCBzb3VyY2UgYXJndW1lbnQKJEV4aXRDb2RlID0gJENvbW1hbmRPYmplY3QtPkV4ZWN1dGUoICctLXNlcGFyYXRvcicsICc7JywgJy0tcXVvdGUnLCAnJywgJFNvdXJjZVBhdGggKTsKCiRTZWxmLT5JcygKICAgICRFeGl0Q29kZSwKICAgIDAsCiAgICAiT3B0aW9uIC0gd2l0aCBzb3VyY2UgYXJndW1lbnQiLAopOwoKIyBjbGVhbnVwIGlzIGRvbmUgYnkgcmVzdG9yZSBkYXRhYmFzZQoKMTsK</File>
        <File Location="scripts/webservices/GenericFAQConnectorREST.yml" Permission="660" Encode="Base64">LS0tCkRlYnVnZ2VyOgogIERlYnVnVGhyZXNob2xkOiBkZWJ1ZwogIFRlc3RNb2RlOiAnMCcKRGVzY3JpcHRpb246ICdGQVEgQ29ubmVjdG9yIFJFU1QgU2FtcGxlJwpGcmFtZXdvcmtWZXJzaW9uOiA2LjAueCBnaXQKUHJvdmlkZXI6CiAgT3BlcmF0aW9uOgogICAgTGFuZ3VhZ2VMaXN0OgogICAgICBEZXNjcmlwdGlvbjogTGlzdCBhbGwgYXZhaWxhYmxlcyBsYW5ndWFnZXMKICAgICAgVHlwZTogRkFROjpMYW5ndWFnZUxpc3QKICAgIFB1YmxpY0NhdGVnb3J5TGlzdDoKICAgICAgRGVzY3JpcHRpb246IExpc3QgYWxsIHB1YmxpYyBGQVEgY2F0ZWdvcmllcyAod2l0aCB0cmVlIGluZm9ybWF0aW9uKQogICAgICBUeXBlOiBGQVE6OlB1YmxpY0NhdGVnb3J5TGlzdAogICAgUHVibGljRkFRR2V0OgogICAgICBEZXNjcmlwdGlvbjogUmV0cmlldmUgcHVibGljIEZBUSBlbnRyaWVzCiAgICAgIFR5cGU6IEZBUTo6UHVibGljRkFRR2V0CiAgICBQdWJsaWNGQVFTZWFyY2g6CiAgICAgIERlc2NyaXB0aW9uOiBTZWFyY2ggZm9yIHB1YmxpYyBGQVFzCiAgICAgIFR5cGU6IEZBUTo6UHVibGljRkFRU2VhcmNoCiAgVHJhbnNwb3J0OgogICAgQ29uZmlnOgogICAgICBLZWVwQWxpdmU6ICcnCiAgICAgIE1heExlbmd0aDogJzEwMDAwMDAwJwogICAgICBSb3V0ZU9wZXJhdGlvbk1hcHBpbmc6CiAgICAgICAgTGFuZ3VhZ2VMaXN0OgogICAgICAgICAgUmVxdWVzdE1ldGhvZDoKICAgICAgICAgIC0gR0VUCiAgICAgICAgICBSb3V0ZTogL0xhbmd1YWdlTGlzdAogICAgICAgIFB1YmxpY0NhdGVnb3J5TGlzdDoKICAgICAgICAgIFJlcXVlc3RNZXRob2Q6CiAgICAgICAgICAtIEdFVAogICAgICAgICAgUm91dGU6IC9QdWJsaWNDYXRlZ29yeUxpc3QKICAgICAgICBQdWJsaWNGQVFHZXQ6CiAgICAgICAgICBSZXF1ZXN0TWV0aG9kOgogICAgICAgICAgLSBHRVQKICAgICAgICAgIFJvdXRlOiAvUHVibGljRkFRR2V0CiAgICAgICAgUHVibGljRkFRU2VhcmNoOgogICAgICAgICAgUmVxdWVzdE1ldGhvZDoKICAgICAgICAgIC0gUE9TVAogICAgICAgICAgUm91dGU6IC9QdWJsaWNGQVFTZWFyY2gKICAgIFR5cGU6IEhUVFA6OlJFU1QKUmVtb3RlU3lzdGVtOiAnJwpSZXF1ZXN0ZXI6CiAgVHJhbnNwb3J0OgogICAgVHlwZTogJycK</File>
        <File Location="scripts/webservices/GenericFAQConnectorSOAP.yml" Permission="660" Encode="Base64">LS0tCkRlYnVnZ2VyOgogIERlYnVnVGhyZXNob2xkOiBkZWJ1ZwogIFRlc3RNb2RlOiAnMCcKRGVzY3JpcHRpb246ICdGQVEgQ29ubmVjdG9yIFNPQVAgU2FtcGxlJwpGcmFtZXdvcmtWZXJzaW9uOiA2LjAueCBnaXQKUHJvdmlkZXI6CiAgT3BlcmF0aW9uOgogICAgTGFuZ3VhZ2VMaXN0OgogICAgICBEZXNjcmlwdGlvbjogTGlzdCAgYWxsIGF2YWlsYWJsZXMgbGFuZ3VhZ2VzCiAgICAgIFR5cGU6IEZBUTo6TGFuZ3VhZ2VMaXN0CiAgICBQdWJsaWNDYXRlZ29yeUxpc3Q6CiAgICAgIERlc2NyaXB0aW9uOiBMaXN0IGFsbCBwdWJsaWMgRkFRIGNhdGVnb3JpZXMgKHdpdGggdHJlZSBpbmZvcm1hdGlvbikKICAgICAgVHlwZTogRkFROjpQdWJsaWNDYXRlZ29yeUxpc3QKICAgIFB1YmxpY0ZBUUdldDoKICAgICAgRGVzY3JpcHRpb246IFJldHJpZXZlIHB1YmxpYyBGQVEgZW50cmllcwogICAgICBUeXBlOiBGQVE6OlB1YmxpY0ZBUUdldAogICAgUHVibGljRkFRU2VhcmNoOgogICAgICBEZXNjcmlwdGlvbjogU2VhcmNoIGZvciBwdWJsaWMgRkFRcwogICAgICBUeXBlOiBGQVE6OlB1YmxpY0ZBUVNlYXJjaAogIFRyYW5zcG9ydDoKICAgIENvbmZpZzoKICAgICAgTWF4TGVuZ3RoOiAnMTAwMDAwMDAwJwogICAgICBOYW1lU3BhY2U6IGh0dHA6Ly93d3cub3RvYm8ub3JnL0ZBUUNvbm5lY3Rvci8KICAgICAgUmVxdWVzdE5hbWVGcmVlVGV4dDogJycKICAgICAgUmVxdWVzdE5hbWVTY2hlbWU6IFBsYWluCiAgICAgIFJlc3BvbnNlTmFtZUZyZWVUZXh0OiAnJwogICAgICBSZXNwb25zZU5hbWVTY2hlbWU6IFJlc3BvbnNlCiAgICBUeXBlOiBIVFRQOjpTT0FQClJlbW90ZVN5c3RlbTogJycKUmVxdWVzdGVyOgogIFRyYW5zcG9ydDoKICAgIFR5cGU6ICcnCg==</File>
        <File Location="scripts/test/Console/Command/Maint/FAQ/ContentTypeSet.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKb3VyICRTZWxmOwoKbXkgJENvbW1hbmRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q29uc29sZTo6Q29tbWFuZDo6TWFpbnQ6OkZBUTo6Q29udGVudFR5cGVTZXQnKTsKCm15ICggJFJlc3VsdCwgJEV4aXRDb2RlICk7CnsKICAgIGxvY2FsICpTVERPVVQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMgbm8gY3JpdGljIHF3KFZhcmlhYmxlczo6UmVxdWlyZUluaXRpYWxpemF0aW9uRm9yTG9jYWxWYXJzKQogICAgb3BlbiBTVERPVVQsICc+OmVuY29kaW5nKFVURi04KScsIFwkUmVzdWx0OyAgICAjIyBubyBjcml0aWMgcXcoT1RPQk86OlByb2hpYml0T3BlbikKICAgICRFeGl0Q29kZSA9ICRDb21tYW5kT2JqZWN0LT5FeGVjdXRlKCk7CiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RW5jb2RlJyktPkVuY29kZUlucHV0KCBcJFJlc3VsdCApOwp9CgokU2VsZi0+SXMoCiAgICAkRXhpdENvZGUsCiAgICAwLAogICAgIktlcm5lbDo6U3lzdGVtOjpDb25zb2xlOjpDb21tYW5kOjpNYWludDo6RkFROjpDb250ZW50VHlwZVNldCBleGl0IGNvZGUiLAopOwoKMTsK</File>
        <File Location="scripts/test/DynamicField/ObjectType/FAQ/ObjectDataGet.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKb3VyICRTZWxmOwoKIyBHZXQgaGVscGVyIG9iamVjdAokS2VybmVsOjpPTS0+T2JqZWN0UGFyYW1BZGQoCiAgICAnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInID0+IHsKICAgICAgICBSZXN0b3JlRGF0YWJhc2UgPT4gMSwKICAgIH0sCik7Cm15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKbXkgJEZBUU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpGQVEnKTsKCm15ICRJdGVtSUQgPSAkRkFRT2JqZWN0LT5GQVFBZGQoCiAgICBUaXRsZSAgICAgICA9PiAnU29tZSBUZXh0JywKICAgIENhdGVnb3J5SUQgID0+IDEsCiAgICBTdGF0ZUlEICAgICA9PiAxLAogICAgTGFuZ3VhZ2VJRCAgPT4gMSwKICAgIEtleXdvcmRzICAgID0+ICdzb21lIGtleXdvcmRzJywKICAgIEZpZWxkMSAgICAgID0+ICdQcm9ibGVtLi4uJywKICAgIEZpZWxkMiAgICAgID0+ICdTb2x1dGlvbi4uLicsCiAgICBDb250ZW50VHlwZSA9PiAndGV4dC9odG1sJywKICAgIFVzZXJJRCAgICAgID0+IDEsCik7CiRTZWxmLT5UcnVlKAogICAgJEl0ZW1JRCwKICAgICdGQVFBZGQoKScsCik7CgpteSAlRkFRRGF0YSA9ICRGQVFPYmplY3QtPkZBUUdldCgKICAgIEl0ZW1JRCAgICAgPT4gJEl0ZW1JRCwKICAgIEl0ZW1GaWVsZHMgPT4gMSwKICAgIFVzZXJJRCAgICAgPT4gMSwKKTsKCiMgQnVpbGQgYSB0ZXN0IER5bmFtaWMgZmllbGQgQ29uZmlnLgpteSAkRHluYW1pY0ZpZWxkQ29uZmlnID0gewogICAgSUQgICAgICAgICA9PiAxMjMsCiAgICBGaWVsZFR5cGUgID0+ICdUZXh0JywKICAgIE9iamVjdFR5cGUgPT4gJ1RpY2tldCcsCn07CgpteSBAVGVzdHMgPSAoCiAgICB7CiAgICAgICAgTmFtZSAgICA9PiAnTm8gUGFyYW1zJywKICAgICAgICBDb25maWcgID0+IHt9LAogICAgICAgIFJlcXVlc3QgPT4gIkFjdGlvbj1zb21lYWN0aW9uO1N1YmFjdGlvbj1zb21lc3ViYWN0aW9uO0l0ZW1JRD0kSXRlbUlEIiwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnTWlzc2luZyBVc2VySUQnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgIH0sCiAgICAgICAgUmVxdWVzdCA9PiAiQWN0aW9uPXNvbWVhY3Rpb247U3ViYWN0aW9uPXNvbWVzdWJhY3Rpb247SXRlbUlEPSRJdGVtSUQiLAogICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdNaXNzaW5nIER5bmFtaWNGaWVsZENvbmZpZycsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgfSwKICAgICAgICBSZXF1ZXN0ID0+ICJBY3Rpb249c29tZWFjdGlvbjtTdWJhY3Rpb249c29tZXN1YmFjdGlvbjtJdGVtSUQ9JEl0ZW1JRCIsCiAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ01pc3NpbmcgRkFRSUQgaW4gdGhlIHJlcXVlc3QnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgPT4gMSwKICAgICAgICB9LAogICAgICAgIFJlcXVlc3QgPT4gIkFjdGlvbj1zb21lYWN0aW9uO1N1YmFjdGlvbj1zb21lc3ViYWN0aW9uOyIsCiAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ1dyb25nIEZBUUlEIGluIHRoZSByZXF1ZXN0JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgID0+IDEsCiAgICAgICAgfSwKICAgICAgICBSZXF1ZXN0ICAgICAgID0+ICJBY3Rpb249c29tZWFjdGlvbjtTdWJhY3Rpb249c29tZXN1YmFjdGlvbjtJdGVtSUQ9LTEiLAogICAgICAgIFN1Y2Nlc3MgICAgICAgPT4gMSwKICAgICAgICBFeGVjdGVkUmVzdWx0ID0+IHsKICAgICAgICAgICAgT2JqZWN0SUQgPT4gLTEsCiAgICAgICAgICAgIERhdGEgICAgID0+IHt9LAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnQ29ycmVjdCBGQVEnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgPT4gMSwKICAgICAgICB9LAogICAgICAgIFJlcXVlc3QgICAgICAgPT4gIkFjdGlvbj1zb21lYWN0aW9uO1N1YmFjdGlvbj1zb21lc3ViYWN0aW9uO0l0ZW1JRD0kSXRlbUlEIiwKICAgICAgICBTdWNjZXNzICAgICAgID0+IDEsCiAgICAgICAgRXhlY3RlZFJlc3VsdCA9PiB7CiAgICAgICAgICAgIE9iamVjdElEID0+ICRJdGVtSUQsCiAgICAgICAgICAgIERhdGEgICAgID0+IFwlRkFRRGF0YSwKICAgICAgICB9LAogICAgfSwKCik7CgpteSAkT2JqZWN0SGFuZGxlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6Ok9iamVjdFR5cGU6OkZBUScpOwoKVEVTVDoKZm9yIG15ICRUZXN0IChAVGVzdHMpIHsKCiAgICBsb2NhbCAlRU5WID0gKAogICAgICAgIFJFUVVFU1RfTUVUSE9EID0+ICdHRVQnLAogICAgICAgIFFVRVJZX1NUUklORyAgID0+ICRUZXN0LT57UmVxdWVzdH0gLy8gJycsCiAgICApOwoKICAgIENHSS0+aW5pdGlhbGl6ZV9nbG9iYWxzKCk7CiAgICBteSAkUmVxdWVzdCA9IEtlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QtPm5ldygpOwoKICAgIG15ICVPYmplY3REYXRhID0gJE9iamVjdEhhbmRsZXJPYmplY3QtPk9iamVjdERhdGFHZXQoICV7ICRUZXN0LT57Q29uZmlnfSB9ICk7CgogICAgaWYgKCAhJFRlc3QtPntTdWNjZXNzfSApIHsKICAgICAgICAkU2VsZi0+SXNEZWVwbHkoCiAgICAgICAgICAgIFwlT2JqZWN0RGF0YSwKICAgICAgICAgICAge30sCiAgICAgICAgICAgICIkVGVzdC0+e05hbWV9IC0gT2JqZWN0RGF0YUdldCgpIHVuc3VjY2Vzc2Z1bCIsCiAgICAgICAgKTsKICAgICAgICBuZXh0IFRFU1Q7CiAgICB9CgogICAgJFNlbGYtPklzRGVlcGx5KAogICAgICAgIFwlT2JqZWN0RGF0YSwKICAgICAgICAkVGVzdC0+e0V4ZWN0ZWRSZXN1bHR9LAogICAgICAgICIkVGVzdC0+e05hbWV9IE9iamVjdERhdGFHZXQoKSIsCiAgICApOwp9CmNvbnRpbnVlIHsKICAgICRLZXJuZWw6Ok9NLT5PYmplY3RzRGlzY2FyZCgKICAgICAgICBPYmplY3RzID0+IFsgJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnLCBdLAogICAgKTsKfQoKIyBjbGVhbnVwIGlzIGRvbmUgYnkgUmVzdG9yZURhdGFiYXNlCgoxOwo=</File>
        <File Location="scripts/test/FAQSearch/InConditionGet.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKb3VyICRTZWxmOwoKIyBnZXQgaGVscGVyIG9iamVjdAokS2VybmVsOjpPTS0+T2JqZWN0UGFyYW1BZGQoCiAgICAnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInID0+IHsKICAgICAgICBSZXN0b3JlRGF0YWJhc2UgPT4gMSwKICAgIH0sCik7Cm15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKbXkgQFRlc3RzID0gKAogICAgewogICAgICAgIE5hbWUgICA9PiAnTm8gYXJyYXknLAogICAgICAgIFBhcmFtcyA9PiB7CiAgICAgICAgICAgIFRhYmxlQ29sdW1uID0+ICd0ZXN0LnRhYmxlJywKICAgICAgICAgICAgSURSZWYgICAgICAgPT4gMSwKICAgICAgICB9LAogICAgICAgIFJlc3VsdCA9PiB1bmRlZiwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdTaW5nbGUgSW50ZWdlcicsCiAgICAgICAgUGFyYW1zID0+IHsKICAgICAgICAgICAgVGFibGVDb2x1bW4gPT4gJ3Rlc3QudGFibGUnLAogICAgICAgICAgICBJRFJlZiAgICAgICA9PiBbMV0sCiAgICAgICAgfSwKICAgICAgICBSZXN1bHQgPT4gJyAoICB0ZXN0LnRhYmxlIElOICgxKSAgKSAnLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ1NvcnRlZCB2YWx1ZXMnLAogICAgICAgIFBhcmFtcyA9PiB7CiAgICAgICAgICAgIFRhYmxlQ29sdW1uID0+ICd0ZXN0LnRhYmxlJywKICAgICAgICAgICAgSURSZWYgICAgICAgPT4gWyAyLCAxLCAtMSwgMCBdLAogICAgICAgIH0sCiAgICAgICAgUmVzdWx0ID0+ICcgKCAgdGVzdC50YWJsZSBJTiAoLTEsIDAsIDEsIDIpICApICcsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnSW52YWxpZCB2YWx1ZScsCiAgICAgICAgUGFyYW1zID0+IHsKICAgICAgICAgICAgVGFibGVDb2x1bW4gPT4gJ3Rlc3QudGFibGUnLAogICAgICAgICAgICBJRFJlZiAgICAgICA9PiBbMS4xXSwKICAgICAgICB9LAogICAgICAgIFJlc3VsdCA9PiB1bmRlZiwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdNaXggb2YgdmFsaWQgYW5kIGludmFsaWQgdmFsdWVzJywKICAgICAgICBQYXJhbXMgPT4gewogICAgICAgICAgICBUYWJsZUNvbHVtbiA9PiAndGVzdC50YWJsZScsCiAgICAgICAgICAgIElEUmVmICAgICAgID0+IFsgMSwgMS4xIF0sCiAgICAgICAgfSwKICAgICAgICBSZXN1bHQgPT4gdW5kZWYsCiAgICB9LAopOwoKIyBnZXQgRkFRIG9iamVjdApteSAkRkFRT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkZBUScpOwoKZm9yIG15ICRUZXN0IChAVGVzdHMpIHsKICAgICRTZWxmLT5JcygKICAgICAgICBzY2FsYXIgJEZBUU9iamVjdC0+X0luQ29uZGl0aW9uR2V0KCAleyAkVGVzdC0+e1BhcmFtc30gfSApLAogICAgICAgICRUZXN0LT57UmVzdWx0fSwKICAgICAgICAiJFRlc3QtPntOYW1lfSBfSW5Db25kaXRpb25HZXQoKSIKICAgICk7Cn0KCiMgY2xlYW51cCBpcyBkb25lIGJ5IFJlc3RvcmVEYXRhYmFzZS4KCjE7Cg==</File>
        <File Location="scripts/test/FAQ.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgJFNlbGY7CgojIGdldCBuZWVkZWQgb2JqZWN0cwokS2VybmVsOjpPTS0+T2JqZWN0UGFyYW1BZGQoCiAgICAnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInID0+IHsKICAgICAgICBSZXN0b3JlRGF0YWJhc2UgPT4gMSwKICAgIH0sCik7Cm15ICRIZWxwZXIgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7Cm15ICRGQVFPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpGQVEnKTsKbXkgJENhY2hlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyk7CgpteSAkSXRlbUlEID0gJEZBUU9iamVjdC0+RkFRQWRkKAogICAgVGl0bGUgICAgICAgPT4gJ1NvbWUgVGV4dCcsCiAgICBDYXRlZ29yeUlEICA9PiAxLAogICAgU3RhdGVJRCAgICAgPT4gMSwKICAgIExhbmd1YWdlSUQgID0+IDEsCiAgICBLZXl3b3JkcyAgICA9PiAnc29tZSBrZXl3b3JkcycsCiAgICBGaWVsZDEgICAgICA9PiAnUHJvYmxlbS4uLicsCiAgICBGaWVsZDIgICAgICA9PiAnU29sdXRpb24uLi4nLAogICAgQ29udGVudFR5cGUgPT4gJ3RleHQvaHRtbCcsCiAgICBVc2VySUQgICAgICA9PiAxLAopOwokU2VsZi0+SXNOb3QoCiAgICAkSXRlbUlELAogICAgdW5kZWYsCiAgICAiRkFRQWRkKCkgLSAxIiwKKTsKCm15ICVGQVEgPSAkRkFRT2JqZWN0LT5GQVFHZXQoCiAgICBJdGVtSUQgICAgID0+ICRJdGVtSUQsCiAgICBJdGVtRmllbGRzID0+IDEsCiAgICBVc2VySUQgICAgID0+IDEsCik7CgpteSAlRkFRVGVzdCA9ICgKICAgIFRpdGxlICAgICAgID0+ICdTb21lIFRleHQnLAogICAgQ2F0ZWdvcnlJRCAgPT4gMSwKICAgIFN0YXRlSUQgICAgID0+IDEsCiAgICBMYW5ndWFnZUlEICA9PiAxLAogICAgS2V5d29yZHMgICAgPT4gJ3NvbWUga2V5d29yZHMnLAogICAgRmllbGQxICAgICAgPT4gJ1Byb2JsZW0uLi4nLAogICAgRmllbGQyICAgICAgPT4gJ1NvbHV0aW9uLi4uJywKICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L2h0bWwnLAopOwoKZm9yIG15ICRUZXN0ICggc29ydCBrZXlzICVGQVFUZXN0ICkgewogICAgJFNlbGYtPklzKAogICAgICAgICRGQVF7JFRlc3R9LAogICAgICAgICRGQVFUZXN0eyRUZXN0fSwKICAgICAgICAiRkFRR2V0KCkgLSAkVGVzdCIsCiAgICApOwp9CgpteSAkRkFRVXBkYXRlID0gJEZBUU9iamVjdC0+RkFRVXBkYXRlKAogICAgSXRlbUlEICAgICAgPT4gJEl0ZW1JRCwKICAgIENhdGVnb3J5SUQgID0+IDEsCiAgICBTdGF0ZUlEICAgICA9PiAyLAogICAgTGFuZ3VhZ2VJRCAgPT4gMiwKICAgIEFwcHJvdmVkICAgID0+IDEsCiAgICBUaXRsZSAgICAgICA9PiAnU29tZSBUZXh0MicsCiAgICBLZXl3b3JkcyAgICA9PiAnc29tZSBrZXl3b3JkczInLAogICAgRmllbGQxICAgICAgPT4gJ1Byb2JsZW0uLi4yJywKICAgIEZpZWxkMiAgICAgID0+ICdTb2x1dGlvbiBmb3VuZC4uLjInLAogICAgVXNlcklEICAgICAgPT4gMSwKICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKKTsKCiVGQVEgPSAkRkFRT2JqZWN0LT5GQVFHZXQoCiAgICBJdGVtSUQgICAgID0+ICRJdGVtSUQsCiAgICBJdGVtRmllbGRzID0+IDEsCiAgICBVc2VySUQgICAgID0+IDEsCik7CgolRkFRVGVzdCA9ICgKICAgIFRpdGxlICAgICAgID0+ICdTb21lIFRleHQyJywKICAgIENhdGVnb3J5SUQgID0+IDEsCiAgICBTdGF0ZUlEICAgICA9PiAyLAogICAgTGFuZ3VhZ2VJRCAgPT4gMiwKICAgIEtleXdvcmRzICAgID0+ICdzb21lIGtleXdvcmRzMicsCiAgICBGaWVsZDEgICAgICA9PiAnUHJvYmxlbS4uLjInLAogICAgRmllbGQyICAgICAgPT4gJ1NvbHV0aW9uIGZvdW5kLi4uMicsCiAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCik7Cgpmb3IgbXkgJFRlc3QgKCBzb3J0IGtleXMgJUZBUVRlc3QgKSB7CiAgICAkU2VsZi0+SXMoCiAgICAgICAgJEZBUVRlc3R7JFRlc3R9LAogICAgICAgICRGQVF7JFRlc3R9LAogICAgICAgICJGQVFHZXQoKSAtICRUZXN0IiwKICAgICk7Cn0KCm15ICRPayA9ICRGQVFPYmplY3QtPlZvdGVBZGQoCiAgICBDcmVhdGVkQnkgPT4gJ1NvbWUgVGV4dCcsCiAgICBJdGVtSUQgICAgPT4gJEl0ZW1JRCwKICAgIElQICAgICAgICA9PiAnNTQuNDMuMzAuMScsCiAgICBJbnRlcmZhY2UgPT4gJzInLAogICAgUmF0ZSAgICAgID0+IDEwMCwKICAgIFVzZXJJRCAgICA9PiAxLAopOwoKJFNlbGYtPlRydWUoCiAgICAkT2ssCiAgICAiVm90ZUFkZCgpIiwKKTsKCm15ICRWb3RlID0gJEZBUU9iamVjdC0+Vm90ZUdldCgKICAgIENyZWF0ZUJ5ICA9PiAnU29tZSBUZXh0JywKICAgIEl0ZW1JRCAgICA9PiAkSXRlbUlELAogICAgSVAgICAgICAgID0+ICc1NC40My4zMC4xJywKICAgIEludGVyZmFjZSA9PiAnMicsCiAgICBVc2VySUQgICAgPT4gMSwKKTsKCiRTZWxmLT5JcygKICAgICRWb3RlLT57SVB9LAogICAgJzU0LjQzLjMwLjEnLAogICAgIlZvdGVHZXQoKSAtIElQIiwKKTsKCm15ICRJdGVtSUQyID0gJEZBUU9iamVjdC0+RkFRQWRkKAogICAgVGl0bGUgICAgICAgPT4gJ1RpdGxlJywKICAgIENhdGVnb3J5SUQgID0+IDEsCiAgICBTdGF0ZUlEICAgICA9PiAxLAogICAgTGFuZ3VhZ2VJRCAgPT4gMSwKICAgIEtleXdvcmRzICAgID0+ICcnLAogICAgRmllbGQxICAgICAgPT4gJ1Byb2JsZW0gRGVzY3JpcHRpb24gMS4uLicsCiAgICBGaWVsZDIgICAgICA9PiAnU29sdXRpb24gbm90IGZvdW5kMS4uLicsCiAgICBDb250ZW50VHlwZSA9PiAndGV4dC9odG1sJywKICAgIFVzZXJJRCAgICAgID0+IDEsCik7CgokU2VsZi0+VHJ1ZSgKICAgICRJdGVtSUQyLAogICAgIkZBUUFkZCgpIC0gMiIsCik7CgpteSAkSG9tZSAgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdIb21lJyk7Cm15IEBBdHRhY2htZW50VGVzdHMgPSAoCiAgICB7CiAgICAgICAgRmlsZSA9PiAnRkFRLVRlc3QxLnBkZicsCiAgICAgICAgTUQ1ICA9PiAnNWVlNzY3ZjNiNjhmMjRhOTIxM2UwYmVmODJkYzUzZTUnLAogICAgfSwKICAgIHsKICAgICAgICBGaWxlID0+ICdGQVEtVGVzdDEuZG9jJywKICAgICAgICBNRDUgID0+ICcyZTUyMDAzNmEwY2RhNmE4MDZhODgzOGIxMDAwZDlkNycsCiAgICB9LAopOwoKIyBnZXQgbWFpbiBvYmplY3QKbXkgJE1haW5PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TWFpbicpOwoKZm9yIG15ICRBdHRhY2htZW50VGVzdCAoQEF0dGFjaG1lbnRUZXN0cykgewogICAgbXkgJENvbnRlbnRTQ0FMQVJSZWYgPSAkTWFpbk9iamVjdC0+RmlsZVJlYWQoCiAgICAgICAgTG9jYXRpb24gPT4gJEhvbWUgLiAnL3NjcmlwdHMvdGVzdC9zYW1wbGUvJyAuICRBdHRhY2htZW50VGVzdC0+e0ZpbGV9LAogICAgKTsKICAgIG15ICRBZGQgPSAkRkFRT2JqZWN0LT5BdHRhY2htZW50QWRkKAogICAgICAgIEl0ZW1JRCAgICAgID0+ICRJdGVtSUQyLAogICAgICAgIENvbnRlbnQgICAgID0+ICR7JENvbnRlbnRTQ0FMQVJSZWZ9LAogICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3htbCcsCiAgICAgICAgRmlsZW5hbWUgICAgPT4gJEF0dGFjaG1lbnRUZXN0LT57RmlsZX0sCiAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICk7CiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkQWRkLAogICAgICAgICJBdHRhY2htZW50QWRkKCkgLSAkQXR0YWNobWVudFRlc3QtPntGaWxlfSIsCiAgICApOwogICAgbXkgQEF0dGFjaG1lbnRJbmRleCA9ICRGQVFPYmplY3QtPkF0dGFjaG1lbnRJbmRleCgKICAgICAgICBJdGVtSUQgPT4gJEl0ZW1JRDIsCiAgICAgICAgVXNlcklEID0+IDEsCiAgICApOwogICAgbXkgJUZpbGUgPSAkRkFRT2JqZWN0LT5BdHRhY2htZW50R2V0KAogICAgICAgIEl0ZW1JRCA9PiAkSXRlbUlEMiwKICAgICAgICBGaWxlSUQgPT4gJEF0dGFjaG1lbnRJbmRleFswXS0+e0ZpbGVJRH0sCiAgICAgICAgVXNlcklEID0+IDEsCiAgICApOwogICAgJFNlbGYtPklzKAogICAgICAgICRGaWxle0ZpbGVuYW1lfSwKICAgICAgICAkQXR0YWNobWVudFRlc3QtPntGaWxlfSwKICAgICAgICAiQXR0YWNobWVudEdldCgpIC0gRmlsZW5hbWUgJEF0dGFjaG1lbnRUZXN0LT57RmlsZX0iLAogICAgKTsKICAgIG15ICRNRDUgPSAkTWFpbk9iamVjdC0+TUQ1c3VtKAogICAgICAgIFN0cmluZyA9PiBcJEZpbGV7Q29udGVudH0sCiAgICApOwogICAgJFNlbGYtPklzKAogICAgICAgICRNRDUsCiAgICAgICAgJEF0dGFjaG1lbnRUZXN0LT57TUQ1fSwKICAgICAgICAiQXR0YWNobWVudEdldCgpIC0gTUQ1ICRBdHRhY2htZW50VGVzdC0+e0ZpbGV9IiwKICAgICk7CgogICAgbXkgJERlbGV0ZSA9ICRGQVFPYmplY3QtPkF0dGFjaG1lbnREZWxldGUoCiAgICAgICAgSXRlbUlEID0+ICRJdGVtSUQyLAogICAgICAgIEZpbGVJRCA9PiAkQXR0YWNobWVudEluZGV4WzBdLT57RmlsZUlEfSwKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkRGVsZXRlLAogICAgICAgICJBdHRhY2htZW50RGVsZXRlKCkgLSAkQXR0YWNobWVudFRlc3QtPntGaWxlfSIsCiAgICApOwp9CgpteSAkVm90ZUlEc1JlZiA9ICRGQVFPYmplY3QtPlZvdGVTZWFyY2goCiAgICBJdGVtSUQgPT4gJEl0ZW1JRCwKICAgIFVzZXJJRCA9PiAxLAopOwoKZm9yIG15ICRWb3RlSUQgKCBAeyRWb3RlSURzUmVmfSApIHsKICAgIG15ICRWb3RlRGVsZXRlID0gJEZBUU9iamVjdC0+Vm90ZURlbGV0ZSgKICAgICAgICBWb3RlSUQgPT4gMSwKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkVm90ZURlbGV0ZSwKICAgICAgICAiVm90ZURlbGV0ZSgpIiwKICAgICk7Cn0KCiMgYWRkIEZBUSBhcnRpY2xlIHRvIGxvZwpteSAkU3VjY2VzcyA9ICRGQVFPYmplY3QtPkZBUUxvZ0FkZCgKICAgIEl0ZW1JRCAgICA9PiAkSXRlbUlELAogICAgSW50ZXJmYWNlID0+ICdpbnRlcm5hbCcsCiAgICBVc2VySUQgICAgPT4gMSwKKTsKJFNlbGYtPlRydWUoCiAgICAkU3VjY2VzcywKICAgICJGQVFMb2dBZGQoKSAtICRJdGVtSUQiLAopOwoKIyB0cnkgdG8gYWRkIHNhbWUgRkFRIGFydGljbGUgdG8gbG9nIGFnYWluIChtdXN0IHJldHVybiBmYWxzZSkKJFN1Y2Nlc3MgPSAkRkFRT2JqZWN0LT5GQVFMb2dBZGQoCiAgICBJdGVtSUQgICAgPT4gJEl0ZW1JRCwKICAgIEludGVyZmFjZSA9PiAnaW50ZXJuYWwnLAogICAgVXNlcklEICAgID0+IDEsCik7CiRTZWxmLT5GYWxzZSgKICAgICRTdWNjZXNzLAogICAgIkZBUUxvZ0FkZCgpIC0gJEl0ZW1JRCIsCik7CgojIGFkZCBhbm90aGVyIEZBUSBhcnRpY2xlIHRvIGxvZwokU3VjY2VzcyA9ICRGQVFPYmplY3QtPkZBUUxvZ0FkZCgKICAgIEl0ZW1JRCAgICA9PiAkSXRlbUlEMiwKICAgIEludGVyZmFjZSA9PiAnaW50ZXJuYWwnLAogICAgVXNlcklEICAgID0+IDEsCik7CiRTZWxmLT5UcnVlKAogICAgJFN1Y2Nlc3MsCiAgICAiRkFRTG9nQWRkKCkgLSAkSXRlbUlEMiIsCik7CgojIGdldCBGQVEgVG9wLTEwCm15ICRUb3AxMElEc1JlZiA9ICRGQVFPYmplY3QtPkZBUVRvcDEwR2V0KAogICAgSW50ZXJmYWNlID0+ICdpbnRlcm5hbCcsCiAgICBMaW1pdCAgICAgPT4gMTAsCiAgICBVc2VySUQgICAgPT4gMSwKKSB8fCBbXTsKJFNlbGYtPlRydWUoCiAgICBzY2FsYXIgQHskVG9wMTBJRHNSZWZ9LAogICAgIkZBUVRvcDEwR2V0KCkiLAopOwoKIyB0ZXN0IExhbmd1YWdlTG9va3VwKCkKbXkgJExhbmd1YWdlTmFtZSA9ICRGQVFPYmplY3QtPkxhbmd1YWdlTG9va3VwKAogICAgTGFuZ3VhZ2VJRCA9PiAxLAogICAgVXNlcklEICAgICA9PiAxLAopOwokU2VsZi0+VHJ1ZSgKICAgICRMYW5ndWFnZU5hbWUsCiAgICAiTGFuZ3VhZ2VMb29rdXAoKSBmb3IgTGFuZ3VhZ2VJRCAnMScgaXMgJyRMYW5ndWFnZU5hbWUnIiwKKTsKCm15ICRMYW5ndWFnZUlEID0gJEZBUU9iamVjdC0+TGFuZ3VhZ2VMb29rdXAoCiAgICBOYW1lICAgPT4gJExhbmd1YWdlTmFtZSwKICAgIFVzZXJJRCA9PiAxLAopOwokU2VsZi0+SXMoCiAgICAkTGFuZ3VhZ2VJRCwKICAgIDEsCiAgICAiTGFuZ3VhZ2VMb29rdXAoKSBmb3IgTGFuZ3VhZ2VOYW1lICckTGFuZ3VhZ2VOYW1lJyIsCik7CgpteSAkRkFRRGVsZXRlID0gJEZBUU9iamVjdC0+RkFRRGVsZXRlKAogICAgSXRlbUlEID0+ICRJdGVtSUQsCiAgICBVc2VySUQgPT4gMSwKKTsKJFNlbGYtPlRydWUoCiAgICAkRkFRRGVsZXRlLAogICAgIkZBUURlbGV0ZSgpIC0gSXRlbUlEOiAkSXRlbUlEIiwKKTsKCm15ICRGQVFEZWxldGUyID0gJEZBUU9iamVjdC0+RkFRRGVsZXRlKAogICAgSXRlbUlEID0+ICRJdGVtSUQyLAogICAgVXNlcklEID0+IDEsCik7CiRTZWxmLT5UcnVlKAogICAgJEZBUURlbGV0ZTIsCiAgICAiRkFRRGVsZXRlKCkgLSBJdGVtSUQ6ICRJdGVtSUQyIiwKKTsKCm15ICRDYXRlZ29yeUlEID0gJEZBUU9iamVjdC0+Q2F0ZWdvcnlBZGQoCiAgICBOYW1lICAgICA9PiAnVGVzdENhdGVnb3J5JywKICAgIENvbW1lbnQgID0+ICdDYXRlZ29yeSBmb3IgdGVzdGluZycsCiAgICBQYXJlbnRJRCA9PiAwLAogICAgVmFsaWRJRCAgPT4gMSwKICAgIFVzZXJJRCAgID0+IDEsCik7CgokU2VsZi0+VHJ1ZSgKICAgICRDYXRlZ29yeUlELAogICAgIkNhdGVnb3J5QWRkKCkgLSBSb290IENhdGVnb3J5IiwKKTsKCiMgc2V0IFBhcmVudElEIHRvIGVtcHR5IHRvIG1ha2UgaXQgZmFpbApteSAkQ2F0ZWdvcnlJREZhaWwgPSAkRkFRT2JqZWN0LT5DYXRlZ29yeUFkZCgKICAgIE5hbWUgICAgID0+ICdUZXN0Q2F0ZWdvcnknLAogICAgQ29tbWVudCAgPT4gJ0NhdGVnb3J5IGZvciB0ZXN0aW5nJywKICAgIFBhcmVudElEID0+ICcnLAogICAgVmFsaWRJRCAgPT4gMSwKICAgIFVzZXJJRCAgID0+IDEsCik7CgokU2VsZi0+RmFsc2UoCiAgICAkQ2F0ZWdvcnlJREZhaWwsCiAgICAiQ2F0ZWdvcnlBZGQoKSAtIFJvb3QgQ2F0ZWdvcnkiLAopOwoKbXkgJENhdGVnb3J5VXBkYXRlID0gJEZBUU9iamVjdC0+Q2F0ZWdvcnlVcGRhdGUoCiAgICBDYXRlZ29yeUlEID0+ICRDYXRlZ29yeUlELAogICAgUGFyZW50SUQgICA9PiAwLAogICAgTmFtZSAgICAgICA9PiAnUm9vdENhdGVnb3J5JywKICAgIENvbW1lbnQgICAgPT4gJ1Jvb3QgQ2F0ZWdvcnkgZm9yIHRlc3RpbmcnLAogICAgVmFsaWRJRCAgICA9PiAxLAogICAgVXNlcklEICAgICA9PiAxLAopOwoKJFNlbGYtPlRydWUoCiAgICAkQ2F0ZWdvcnlVcGRhdGUsCiAgICAiQ2F0ZWdvcnlVcGRhdGUoKSAtIFJvb3QgQ2F0ZWdvcnkiLAopOwoKIyBzZXQgUGFyZW50SUQgdG8gZW1wdHkgdG8gbWFrZSBpdCBmYWlsCm15ICRDYXRlZ29yeVVwZGF0ZUZhaWwgPSAkRkFRT2JqZWN0LT5DYXRlZ29yeVVwZGF0ZSgKICAgIENhdGVnb3J5SUQgPT4gJENhdGVnb3J5SUQsCiAgICBQYXJlbnRJRCAgID0+ICcnLAogICAgTmFtZSAgICAgICA9PiAnUm9vdENhdGVnb3J5JywKICAgIENvbW1lbnQgICAgPT4gJ1Jvb3QgQ2F0ZWdvcnkgZm9yIHRlc3RpbmcnLAogICAgVmFsaWRJRCAgICA9PiAxLAogICAgVXNlcklEICAgICA9PiAxLAopOwoKJFNlbGYtPkZhbHNlKAogICAgJENhdGVnb3J5VXBkYXRlRmFpbCwKICAgICJDYXRlZ29yeVVwZGF0ZSgpIC0gUm9vdCBDYXRlZ29yeSIsCik7CgpteSAkQ2hpbGRDYXRlZ29yeUlEID0gJEZBUU9iamVjdC0+Q2F0ZWdvcnlBZGQoCiAgICBOYW1lICAgICA9PiAnQ2hpbGRDYXRlZ29yeScsCiAgICBDb21tZW50ICA9PiAnQ2hpbGQgQ2F0ZWdvcnkgZm9yIHRlc3RpbmcnLAogICAgUGFyZW50SUQgPT4gJENhdGVnb3J5SUQsCiAgICBWYWxpZElEICA9PiAxLAogICAgVXNlcklEICAgPT4gMSwKKTsKCiRTZWxmLT5UcnVlKAogICAgJENoaWxkQ2F0ZWdvcnlJRCwKICAgICJDYXRlZ29yeUFkZCgpIC0gQ2hpbGQgQ2F0ZWdvcnkiLAopOwoKbXkgJENoaWxkQ2F0ZWdvcnlEZWxldGUgPSAkRkFRT2JqZWN0LT5DYXRlZ29yeURlbGV0ZSgKICAgIENhdGVnb3J5SUQgPT4gJENoaWxkQ2F0ZWdvcnlJRCwKICAgIFVzZXJJRCAgICAgPT4gMSwKKTsKCiRTZWxmLT5UcnVlKAogICAgJENoaWxkQ2F0ZWdvcnlEZWxldGUsCiAgICAiQ2F0ZWdvcnlEZWxldGUoKSAtIENoaWxkIENhdGVnb3J5IiwKKTsKCm15ICRDYXRlZ29yeURlbGV0ZSA9ICRGQVFPYmplY3QtPkNhdGVnb3J5RGVsZXRlKAogICAgQ2F0ZWdvcnlJRCA9PiAkQ2F0ZWdvcnlJRCwKICAgIFVzZXJJRCAgICAgPT4gMSwKKTsKCiRTZWxmLT5UcnVlKAogICAgJENhdGVnb3J5RGVsZXRlLAogICAgIkNhdGVnb3J5RGVsZXRlKCkgLSBSb290IENhdGVnb3J5IiwKKTsKCiNJdGVtRmllbGRHZXQgVGVzdHMKbXkgJVRlc3RGaWVsZHMgPSAoCiAgICBGaWVsZDEgPT4gJ1N5bXB0b20uLi4nLAogICAgRmllbGQyID0+ICdQcm9ibGVtLi4uJywKICAgIEZpZWxkMyA9PiAnU29sdXRpb24uLi4nLAogICAgRmllbGQ0ID0+ICdVc2VyIEZpZWxkNC4uLicsCiAgICBGaWVsZDUgPT4gJ1VzZXIgRmllbGQ1Li4uJywKICAgIEZpZWxkNiA9PiAnQ29tbWVudC4uLicsCik7CgokSXRlbUlEID0gJEZBUU9iamVjdC0+RkFRQWRkKAogICAgVGl0bGUgICAgICA9PiAnU29tZSBUZXh0JywKICAgIENhdGVnb3J5SUQgPT4gMSwKICAgIFN0YXRlSUQgICAgPT4gMSwKICAgIExhbmd1YWdlSUQgPT4gMSwKICAgIEtleXdvcmRzICAgPT4gJ3NvbWUga2V5d29yZHMnLAogICAgJVRlc3RGaWVsZHMsCiAgICBDb250ZW50VHlwZSA9PiAndGV4dC9odG1sJywKICAgIFVzZXJJRCAgICAgID0+IDEsCik7CgokU2VsZi0+VHJ1ZSgKICAgICRJdGVtSUQsCiAgICAiRkFRQWRkKCkgZm9yIEl0ZW1GaWVsZEdldCB3aXRoIFRydWUiLAopOwoKbXkgJVJlc3VsdEZpZWxkczsKCm15ICRDaGVja0ZpZWxkcyA9IHN1YiB7CiAgICBteSAlUGFyYW0gPSBAXzsKCiAgICBmb3IgbXkgJEZpZWxkQ291bnQgKCAxIC4uIDYgKSB7CiAgICAgICAgbXkgJEZpZWxkID0gIkZpZWxkJEZpZWxkQ291bnQiOwoKICAgICAgICAjIGNoZWNrIHRoYXQgY2FjaGUgaXMgY2xlYW4KICAgICAgICBteSAkQ2FjaGUgPSAkQ2FjaGVPYmplY3QtPkdldCgKICAgICAgICAgICAgVHlwZSA9PiAnRkFRJywKICAgICAgICAgICAgS2V5ICA9PiAiSXRlbUZpZWxkR2V0OjpJdGVtSUQ6OiRJdGVtSUQiLAogICAgICAgICk7CgogICAgICAgICMgb24gYmVmb3JlIGZpcnN0IEdldCBjYWNoZSBzaG91bGQgYmUgdW5kZWYsIGFmdGVyIGZpcnMgY2FjaGUgZXhpc3QsIGJ1dCB0aGUgRmllbGQga2V5IG11c3QgYmUKICAgICAgICAjIHVuZGVmCiAgICAgICAgaWYgKCByZWYgJENhY2hlIGVxICdIQVNIJyApIHsKICAgICAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAgICAgJENhY2hlLT57JEZpZWxkfSwKICAgICAgICAgICAgICAgIHVuZGVmLAogICAgICAgICAgICAgICAgIkNhY2hlIGJlZm9yZSBJdGVtRmllbGRHZXQoKTogJEZpZWxkIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgICAgICRDYWNoZSwKICAgICAgICAgICAgICAgIHVuZGVmLAogICAgICAgICAgICAgICAgIkNhY2hlIGJlZm9yZSBJdGVtRmllbGRHZXQoKTogQ29tcGxldGUgY2FjaGUiLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgdGhlIGZpZWxkCiAgICAgICAgJFJlc3VsdEZpZWxkc3skRmllbGR9ID0gJEZBUU9iamVjdC0+SXRlbUZpZWxkR2V0KAogICAgICAgICAgICBJdGVtSUQgPT4gJEl0ZW1JRCwKICAgICAgICAgICAgRmllbGQgID0+ICRGaWVsZCwKICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBjaGVjayBjYWNoZSBpcyBzZXQKICAgICAgICAkQ2FjaGUgPSAkQ2FjaGVPYmplY3QtPkdldCgKICAgICAgICAgICAgVHlwZSA9PiAnRkFRJywKICAgICAgICAgICAgS2V5ICA9PiAiSXRlbUZpZWxkR2V0OjpJdGVtSUQ6OiRJdGVtSUQiLAogICAgICAgICk7CgogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgcmVmICRDYWNoZSwKICAgICAgICAgICAgJ0hBU0gnLAogICAgICAgICAgICAiQ2FjaGUgYWZ0ZXIgSXRlbUZpZWxkR2V0KCk6IHJlZiIsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICRDYWNoZS0+eyRGaWVsZH0sCiAgICAgICAgICAgICRQYXJhbXtDb21wYXJlRmllbGRzfS0+eyRGaWVsZH0sCiAgICAgICAgICAgICJDYWNoZSBhZnRlciBJdGVtRmllbGRHZXQoKTogJEZpZWxkIG1hdGNoZWQgd2l0aCBvcmlnaW5hbCBmaWVsZCBkYXRhIiwKICAgICAgICApOwogICAgfQp9OwoKJENoZWNrRmllbGRzLT4oIENvbXBhcmVGaWVsZHMgPT4gXCVUZXN0RmllbGRzICk7CgokU2VsZi0+SXNEZWVwbHkoCiAgICBcJVJlc3VsdEZpZWxkcywKICAgIFwlVGVzdEZpZWxkcywKICAgICJJdGVtRmllbGRHZXQoKTogZm9yIGFsbCBmaWVsZHMgbWF0Y2ggZXhwZWN0ZWQgZGF0YSIsCik7CgojIHVwZGF0ZSB0aGUgRkFRIGl0ZW0KbXkgJVVwZGF0ZWRUZXN0RmllbGRzID0gKAogICAgRmllbGQxID0+ICdVcGRhdGVkIFN5bXB0b20uLi4nLAogICAgRmllbGQyID0+ICdVcGRhdGVkIFByb2JsZW0uLi4nLAogICAgRmllbGQzID0+ICdVcGRhdGVkIFNvbHV0aW9uLi4uJywKICAgIEZpZWxkNCA9PiAnVXBkYXRlZCBVc2VyIEZpZWxkNC4uLicsCiAgICBGaWVsZDUgPT4gJ1VwZGF0ZWQgVXNlciBGaWVsZDUuLi4nLAogICAgRmllbGQ2ID0+ICdVcGRhdGVkIENvbW1lbnQuLi4nLAopOwoKJEZBUVVwZGF0ZSA9ICRGQVFPYmplY3QtPkZBUVVwZGF0ZSgKICAgIEl0ZW1JRCAgICAgPT4gJEl0ZW1JRCwKICAgIFRpdGxlICAgICAgPT4gJ1NvbWUgVGV4dCcsCiAgICBDYXRlZ29yeUlEID0+IDEsCiAgICBTdGF0ZUlEICAgID0+IDEsCiAgICBMYW5ndWFnZUlEID0+IDEsCiAgICBLZXl3b3JkcyAgID0+ICdzb21lIGtleXdvcmRzJywKICAgICVVcGRhdGVkVGVzdEZpZWxkcywKICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L2h0bWwnLAogICAgVXNlcklEICAgICAgPT4gMSwKKTsKCiRTZWxmLT5UcnVlKAogICAgJEZBUVVwZGF0ZSwKICAgICJGQVFVcGRhdGUoKSBmb3IgSXRlbUZpZWxkR2V0IHdpdGggVHJ1ZSIsCik7CgokQ2hlY2tGaWVsZHMtPiggQ29tcGFyZUZpZWxkcyA9PiBcJVVwZGF0ZWRUZXN0RmllbGRzICk7CgokRkFRRGVsZXRlID0gJEZBUU9iamVjdC0+RkFRRGVsZXRlKAogICAgSXRlbUlEID0+ICRJdGVtSUQsCiAgICBVc2VySUQgPT4gMSwKKTsKCiRTZWxmLT5UcnVlKAogICAgJEZBUURlbGV0ZSwKICAgICJGQVFEZWxldGUoKSBmb3IgSXRlbUZpZWxkR2V0OiB3aXRoIFRydWUiLAopOwoKIyBjaGVjayB0aGF0IGNhY2hlIGlzIGNsZWFuCm15ICRDYWNoZSA9ICRDYWNoZU9iamVjdC0+R2V0KAogICAgVHlwZSA9PiAnRkFRJywKICAgIEtleSAgPT4gIkl0ZW1GaWVsZEdldDo6SXRlbUlEOjokSXRlbUlEIiwKKTsKCiRTZWxmLT5JcygKICAgICRDYWNoZSwKICAgIHVuZGVmLAogICAgIkNhY2hlIGZvciBJdGVtRmllbGRHZXQoKSBhZnRlciBGQVFEZWxldGU6IENvbXBsZXRlIGNhY2hlIiwKKTsKCiMgRkFRIGl0ZW0gY2FjaGUgdGVzdHMKJEl0ZW1JRCA9ICRGQVFPYmplY3QtPkZBUUFkZCgKICAgIFRpdGxlICAgICAgPT4gJ1NvbWUgVGV4dCcsCiAgICBDYXRlZ29yeUlEID0+IDEsCiAgICBTdGF0ZUlEICAgID0+IDEsCiAgICBMYW5ndWFnZUlEID0+IDEsCiAgICBLZXl3b3JkcyAgID0+ICdzb21lIGtleXdvcmRzJywKICAgICVUZXN0RmllbGRzLAogICAgQ29udGVudFR5cGUgPT4gJ3RleHQvaHRtbCcsCiAgICBVc2VySUQgICAgICA9PiAxLAopOwoKIyBjaGVjayB0aGF0IGNhY2hlIGlzIGNsZWFuCiRDYWNoZSA9ICRDYWNoZU9iamVjdC0+R2V0KAogICAgVHlwZSA9PiAnRkFRJywKICAgIEtleSAgPT4gJ0ZBUUdldDo6SXRlbUlEOjonIC4gJEl0ZW1JRCAuICc6Okl0ZW1GaWVsZHM6OjAnLAopOwokU2VsZi0+SXMoCiAgICAkQ2FjaGUsCiAgICB1bmRlZiwKICAgICJDYWNoZSBmb3IgRkFRIE5vIEl0ZW1GaWVsZHMgQmVmb3JlIEZBUUdldCgpOiBDb21wbGV0ZSBjYWNoZSIsCik7CiRDYWNoZSA9ICRDYWNoZU9iamVjdC0+R2V0KAogICAgVHlwZSA9PiAnRkFRJywKICAgIEtleSAgPT4gJ0ZBUUdldDo6SXRlbUlEOjonIC4gJEl0ZW1JRCAuICc6Okl0ZW1GaWVsZHM6OjEnLAopOwokU2VsZi0+SXMoCiAgICAkQ2FjaGUsCiAgICB1bmRlZiwKICAgICJDYWNoZSBmb3IgRkFRIFdpdGggSXRlbUZpZWxkcyBCZWZvcmUgRkFRR2V0KCk6IENvbXBsZXRlIGNhY2hlIiwKKTsKCiMgZ2V0IEZBUSBubyBJdGVtIEZpZWxkcwpteSAlRkFRRGF0YSA9ICRGQVFPYmplY3QtPkZBUUdldCgKICAgIEl0ZW1JRCAgICAgPT4gJEl0ZW1JRCwKICAgIEl0ZW1GaWVsZHMgPT4gMCwKICAgIFVzZXJJRCAgICAgPT4gMQopOwoKJFNlbGYtPklzKAogICAgJEZBUURhdGF7SXRlbUlEfSwKICAgICRJdGVtSUQsCiAgICAiU2FuaXR5IENoZWNrIGZvciBGQVFHZXQoKTogbWF0Y2ggSXRlbUlEIgopOwoKIyBzYW5pdHkgY2hlY2sgSXRlbSBGaWVsZHMKZm9yIG15ICRGaWVsZENvdW50ICggMSAuLiA2ICkgewogICAgbXkgJEZpZWxkID0gIkZpZWxkJEZpZWxkQ291bnQiOwoKICAgICRTZWxmLT5JcygKICAgICAgICAkRkFRRGF0YXskRmllbGR9LAogICAgICAgIHVuZGVmLAogICAgICAgICJTYW5pdHkgQ2hlY2sgZm9yIEZBUUdldCgpOiBubyBJdGVtRmllbGRzICRGaWVsZCIsCiAgICApOwp9CiRDYWNoZSA9ICRDYWNoZU9iamVjdC0+R2V0KAogICAgVHlwZSA9PiAnRkFRJywKICAgIEtleSAgPT4gJ0ZBUUdldDo6SXRlbUlEOjonIC4gJEl0ZW1JRCAuICc6Okl0ZW1GaWVsZHM6OjAnLAopOwokU2VsZi0+SXMoCiAgICByZWYgJENhY2hlLAogICAgJ0hBU0gnLAogICAgIkNhY2hlIGZvciBGQVEgTm8gSXRlbUZpZWxkcyBBZnRlciBGQVFHZXQoKTogQ29tcGxldGUgY2FjaGUgcmVmIiwKKTsKJENhY2hlID0gJENhY2hlT2JqZWN0LT5HZXQoCiAgICBUeXBlID0+ICdGQVEnLAogICAgS2V5ICA9PiAnRkFRR2V0OjpJdGVtSUQ6OicgLiAkSXRlbUlEIC4gJzo6SXRlbUZpZWxkczo6MScsCik7CiRTZWxmLT5JcygKICAgICRDYWNoZSwKICAgIHVuZGVmLAogICAgIkNhY2hlIGZvciBGQVEgV2l0aCBJdGVtRmllbGRzIEFmdGVyIEZBUUdldCgpOiBDb21wbGV0ZSBjYWNoZSIsCik7CgojIGdldCBGQVEgd2l0aCBJdGVtIEZpZWxkcwolRkFRRGF0YSA9ICRGQVFPYmplY3QtPkZBUUdldCgKICAgIEl0ZW1JRCAgICAgPT4gJEl0ZW1JRCwKICAgIEl0ZW1GaWVsZHMgPT4gMSwKICAgIFVzZXJJRCAgICAgPT4gMQopOwoKJFNlbGYtPklzKAogICAgJEZBUURhdGF7SXRlbUlEfSwKICAgICRJdGVtSUQsCiAgICAiU2FuaXR5IENoZWNrIGZvciBGQVFHZXQoKTogbWF0Y2ggSXRlbUlEIgopOwoKIyBzYW5pdHkgY2hlY2sgSXRlbSBGaWVsZHMKZm9yIG15ICRGaWVsZENvdW50ICggMSAuLiA2ICkgewogICAgbXkgJEZpZWxkID0gIkZpZWxkJEZpZWxkQ291bnQiOwoKICAgICRTZWxmLT5Jc05vdCgKICAgICAgICAkRkFRRGF0YXskRmllbGR9LAogICAgICAgIHVuZGVmLAogICAgICAgICJTYW5pdHkgQ2hlY2sgZm9yIEZBUUdldCgpOiB3aXRoIEl0ZW1GaWVsZHMgJEZpZWxkIiwKICAgICk7Cn0KJENhY2hlID0gJENhY2hlT2JqZWN0LT5HZXQoCiAgICBUeXBlID0+ICdGQVEnLAogICAgS2V5ICA9PiAnRkFRR2V0OjpJdGVtSUQ6OicgLiAkSXRlbUlEIC4gJzo6SXRlbUZpZWxkczo6MCcsCik7CiRTZWxmLT5JcygKICAgIHJlZiAkQ2FjaGUsCiAgICAnSEFTSCcsCiAgICAiQ2FjaGUgZm9yIEZBUSBObyBJdGVtRmllbGRzIEFmdGVyIEZBUUdldCgpOiBDb21wbGV0ZSBjYWNoZSByZWYiLAopOwokQ2FjaGUgPSAkQ2FjaGVPYmplY3QtPkdldCgKICAgIFR5cGUgPT4gJ0ZBUScsCiAgICBLZXkgID0+ICdGQVFHZXQ6Okl0ZW1JRDo6JyAuICRJdGVtSUQgLiAnOjpJdGVtRmllbGRzOjoxJywKKTsKJFNlbGYtPklzKAogICAgcmVmICRDYWNoZSwKICAgICdIQVNIJywKICAgICJDYWNoZSBmb3IgRkFRIFdpdGggSXRlbUZpZWxkcyBBZnRlciBGQVFHZXQoKTogQ29tcGxldGUgY2FjaGUgcmVmIiwKKTsKCiMKIyBGQVEgU3RhdGUgdGVzdHMKIwpteSAlU3RhdGVzID0gJEZBUU9iamVjdC0+U3RhdGVMaXN0KAogICAgVXNlcklEID0+IDEsCik7CgokU2VsZi0+SXNOb3QoCiAgICBzY2FsYXIga2V5cyAlU3RhdGVzLAogICAgMCwKICAgICJTdGF0ZUxpc3QoKSBudW1iZXIgb2YgZWxlbWVudHMgc2hvdWxkIG5vdCBiZSAwIgopOwoKZm9yIG15ICRTdGF0ZUlEICggc29ydCBrZXlzICVTdGF0ZXMgKSB7CiAgICBteSAlU3RhdGUgPSAkRkFRT2JqZWN0LT5TdGF0ZUdldCgKICAgICAgICBTdGF0ZUlEID0+ICRTdGF0ZUlELAogICAgICAgIFVzZXJJRCAgPT4gMSwKICAgICk7CgogICAgJFNlbGYtPklzTm90KAogICAgICAgICRTdGF0ZXtTdGF0ZUlEfSwKICAgICAgICB1bmRlZiwKICAgICAgICAiU3RhdGVHZXQoKSBTdGF0ZUlEIGZvciBTdGF0ZUlEOiAnJFN0YXRlSUQnIHNob3VsZCBub3QgYmUgdW5kZWYiCiAgICApOwogICAgJFNlbGYtPklzTm90KAogICAgICAgICRTdGF0ZXtOYW1lfSwKICAgICAgICB1bmRlZiwKICAgICAgICAiU3RhdGVHZXQoKSBOYW1lIGZvciBTdGF0ZUlEOiAgICAnJFN0YXRlSUQnIHNob3VsZCBub3QgYmUgdW5kZWYiCiAgICApOwogICAgJFNlbGYtPklzTm90KAogICAgICAgICRTdGF0ZXtUeXBlSUR9LAogICAgICAgIHVuZGVmLAogICAgICAgICJTdGF0ZUdldCgpIFR5cGVJRCBmb3IgU3RhdGVJRDogICckU3RhdGVJRCcgc2hvdWxkIG5vdCBiZSB1bmRlZiIKICAgICk7Cn0KCiVTdGF0ZXMgPSAkRkFRT2JqZWN0LT5TdGF0ZUxpc3QoCiAgICBUeXBlcyAgPT4gWydpbnRlcm5hbCddLAogICAgVXNlcklEID0+IDEsCik7CgokU2VsZi0+SXMoCiAgICBzY2FsYXIga2V5cyAlU3RhdGVzLAogICAgMSwKICAgICJTdGF0ZUxpc3QoKSBoYXMgMSBrZXkiLAopOwoKJFNlbGYtPklzKAogICAgJFN0YXRlc3syfSwKICAgICdpbnRlcm5hbCAoYWdlbnQpJywKICAgICJTdGF0ZUxpc3QoKSAyIGlzIGludGVybmFsIiwKKTsKCiVTdGF0ZXMgPSAkRkFRT2JqZWN0LT5TdGF0ZUxpc3QoCiAgICBUeXBlcyAgPT4gWyAncHVibGljJywgJ2V4dGVybmFsJyBdLAogICAgVXNlcklEID0+IDEsCik7CgokU2VsZi0+SXMoCiAgICBzY2FsYXIga2V5cyAlU3RhdGVzLAogICAgMiwKICAgICJTdGF0ZUxpc3QoKSBoYXMgMiBrZXlzIiwKKTsKCiRTZWxmLT5JcygKICAgICRTdGF0ZXN7MX0sCiAgICAnZXh0ZXJuYWwgKGN1c3RvbWVyKScsCiAgICAiU3RhdGVMaXN0KCkgMSBpcyBleHRlcm5hbCIsCik7CgokU2VsZi0+SXMoCiAgICAkU3RhdGVzezN9LAogICAgJ3B1YmxpYyAoYWxsKScsCiAgICAiU3RhdGVMaXN0KCkgMyBpcyBwdWJsaWMiLAopOwoKbXkgJFN0YXRlVHlwZUxpc3QgPSAkRkFRT2JqZWN0LT5TdGF0ZVR5cGVMaXN0KAogICAgVXNlcklEID0+IDEsCik7CgokU2VsZi0+SXMoCiAgICByZWYgJFN0YXRlVHlwZUxpc3QsCiAgICAnSEFTSCcsCiAgICAiU3RhdGVUeXBlTGlzdCgpIHJldHVybnMgaGFzaHJlZiIsCik7CgokU2VsZi0+SXMoCiAgICBzY2FsYXIga2V5cyAleyRTdGF0ZVR5cGVMaXN0fSwKICAgIDMsCiAgICAiU3RhdGVUeXBlTGlzdCgpIGhhcyAzIGtleXMiLAopOwoKJFNlbGYtPklzKAogICAgJFN0YXRlVHlwZUxpc3QtPnsxfSwKICAgICdpbnRlcm5hbCcsCiAgICAiU3RhdGVUeXBlTGlzdCgpIDEgaXMgaW50ZXJuYWwiLAopOwoKJFNlbGYtPklzKAogICAgJFN0YXRlVHlwZUxpc3QtPnsyfSwKICAgICdleHRlcm5hbCcsCiAgICAiU3RhdGVUeXBlTGlzdCgpIDIgaXMgZXh0ZXJuYWwiLAopOwoKJFNlbGYtPklzKAogICAgJFN0YXRlVHlwZUxpc3QtPnszfSwKICAgICdwdWJsaWMnLAogICAgIlN0YXRlVHlwZUxpc3QoKSAzIGlzIHB1YmxpYyIsCik7CgokU3RhdGVUeXBlTGlzdCA9ICRGQVFPYmplY3QtPlN0YXRlVHlwZUxpc3QoCiAgICBUeXBlcyAgPT4gWyAncHVibGljJywgJ2V4dGVybmFsJyBdLAogICAgVXNlcklEID0+IDEsCik7CgokU2VsZi0+SXMoCiAgICBzY2FsYXIga2V5cyAleyRTdGF0ZVR5cGVMaXN0fSwKICAgIDIsCiAgICAiU3RhdGVUeXBlTGlzdCgpIGhhcyAyIGtleXMiLAopOwoKJFNlbGYtPklzKAogICAgJFN0YXRlVHlwZUxpc3QtPnsyfSwKICAgICdleHRlcm5hbCcsCiAgICAiU3RhdGVUeXBlTGlzdCgpIDIgaXMgZXh0ZXJuYWwiLAopOwoKJFNlbGYtPklzKAogICAgJFN0YXRlVHlwZUxpc3QtPnszfSwKICAgICdwdWJsaWMnLAogICAgIlN0YXRlVHlwZUxpc3QoKSAzIGlzIHB1YmxpYyIsCik7CgokU3RhdGVUeXBlTGlzdCA9ICRGQVFPYmplY3QtPlN0YXRlVHlwZUxpc3QoCiAgICBUeXBlcyAgPT4gWydpbnRlcm5hbCddLAogICAgVXNlcklEID0+IDEsCik7CgokU2VsZi0+SXMoCiAgICBzY2FsYXIga2V5cyAleyRTdGF0ZVR5cGVMaXN0fSwKICAgIDEsCiAgICAiU3RhdGVUeXBlTGlzdCgpIGhhcyAxIGtleSIsCik7CgokU2VsZi0+SXMoCiAgICAkU3RhdGVUeXBlTGlzdC0+ezF9LAogICAgJ2ludGVybmFsJywKICAgICJTdGF0ZVR5cGVMaXN0KCkgMSBpcyBpbnRlcm5hbCIsCik7CgojIENvbnRlbnRUeXBlU2V0KCkgdGVzdHMKCm15ICRGQVFJdGVtSUQxID0gJEZBUU9iamVjdC0+RkFRQWRkKAogICAgVGl0bGUgICAgICAgPT4gJ1NvbWUgVGV4dCcsCiAgICBDYXRlZ29yeUlEICA9PiAxLAogICAgU3RhdGVJRCAgICAgPT4gMSwKICAgIExhbmd1YWdlSUQgID0+IDEsCiAgICBGaWVsZDEgICAgICA9PiAnU3ltcHRvbS4uLicsICAgICMgKG9wdGlvbmFsKQogICAgVmFsaWRJRCAgICAgPT4gMSwKICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywgICAgIyBvciAndGV4dC9odG1sJwogICAgVXNlcklEICAgICAgPT4gMSwKKTsKJFNlbGYtPklzTm90KAogICAgdW5kZWYsCiAgICAkRkFRSXRlbUlEMSwKICAgICJGQVFBZGQoKSIKKTsKCm15IEBUZXN0cyA9ICgKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ1RleHQgd2l0aCA8YnIgLz4nLAogICAgICAgIEl0ZW1JRCA9PiAkRkFRSXRlbUlEMSwKICAgICAgICBVcGRhdGUgPT4gewogICAgICAgICAgICBGaWVsZDEgICAgICA9PiAnU3ltcHRvbSA8YnIgLz4nLAogICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdEF1dG8gPT4gJ3RleHQvaHRtbCcsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnVGV4dCB3aXRoIDwvbGk+JywKICAgICAgICBJdGVtSUQgPT4gJEZBUUl0ZW1JRDEsCiAgICAgICAgVXBkYXRlID0+IHsKICAgICAgICAgICAgRmllbGQxICAgICAgPT4gJzxsaT5TeW1wdG9tIDwvbGk+JywKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRBdXRvID0+ICd0ZXh0L2h0bWwnLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ1RleHQgd2l0aCA8L29sPicsCiAgICAgICAgSXRlbUlEID0+ICRGQVFJdGVtSUQxLAogICAgICAgIFVwZGF0ZSA9PiB7CiAgICAgICAgICAgIEZpZWxkMSAgICAgID0+ICc8b2w+U3ltcHRvbSA8L29sPicsCiAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0QXV0byA9PiAndGV4dC9odG1sJywKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdUZXh0IHdpdGggPC91bD4nLAogICAgICAgIEl0ZW1JRCA9PiAkRkFRSXRlbUlEMSwKICAgICAgICBVcGRhdGUgPT4gewogICAgICAgICAgICBGaWVsZDEgICAgICA9PiAnPHVsPlN5bXB0b20gPC91bD4nLAogICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdEF1dG8gPT4gJ3RleHQvaHRtbCcsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnVGV4dCB3aXRoIDwvdGFibGU+JywKICAgICAgICBJdGVtSUQgPT4gJEZBUUl0ZW1JRDEsCiAgICAgICAgVXBkYXRlID0+IHsKICAgICAgICAgICAgRmllbGQxICAgICAgPT4gJzx0YWJsZT5TeW1wdG9tIDwvdGFibGU+JywKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRBdXRvID0+ICd0ZXh0L2h0bWwnLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ1RleHQgd2l0aCA8L3RyPicsCiAgICAgICAgSXRlbUlEID0+ICRGQVFJdGVtSUQxLAogICAgICAgIFVwZGF0ZSA9PiB7CiAgICAgICAgICAgIEZpZWxkMSAgICAgID0+ICc8dHI+U3ltcHRvbSA8L3RyPicsCiAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0QXV0byA9PiAndGV4dC9odG1sJywKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdUZXh0IHdpdGggPC90ZD4nLAogICAgICAgIEl0ZW1JRCA9PiAkRkFRSXRlbUlEMSwKICAgICAgICBVcGRhdGUgPT4gewogICAgICAgICAgICBGaWVsZDEgICAgICA9PiAnPHRkPlN5bXB0b20gPC90ZD4nLAogICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdEF1dG8gPT4gJ3RleHQvaHRtbCcsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnVGV4dCB3aXRoIDwvdGQ+JywKICAgICAgICBJdGVtSUQgPT4gJEZBUUl0ZW1JRDEsCiAgICAgICAgVXBkYXRlID0+IHsKICAgICAgICAgICAgRmllbGQxICAgICAgPT4gJzx0ZD5TeW1wdG9tIDwvdGQ+JywKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRBdXRvID0+ICd0ZXh0L2h0bWwnLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ1RleHQgd2l0aCA8L2Rpdj4nLAogICAgICAgIEl0ZW1JRCA9PiAkRkFRSXRlbUlEMSwKICAgICAgICBVcGRhdGUgPT4gewogICAgICAgICAgICBGaWVsZDEgICAgICA9PiAnPGRpdj5TeW1wdG9tIDwvZGl2PicsCiAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0QXV0byA9PiAndGV4dC9odG1sJywKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdUZXh0IHdpdGggPC9vPicsCiAgICAgICAgSXRlbUlEID0+ICRGQVFJdGVtSUQxLAogICAgICAgIFVwZGF0ZSA9PiB7CiAgICAgICAgICAgIEZpZWxkMSAgICAgID0+ICc8bz5TeW1wdG9tIDwvbz4nLAogICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdEF1dG8gPT4gJ3RleHQvaHRtbCcsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnVGV4dCB3aXRoIDwvc3Bhbj4nLAogICAgICAgIEl0ZW1JRCA9PiAkRkFRSXRlbUlEMSwKICAgICAgICBVcGRhdGUgPT4gewogICAgICAgICAgICBGaWVsZDEgICAgICA9PiAnPHNwYW4+U3ltcHRvbSA8L3NwYW4+JywKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRBdXRvID0+ICd0ZXh0L2h0bWwnLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ1RleHQgd2l0aCA8L3A+JywKICAgICAgICBJdGVtSUQgPT4gJEZBUUl0ZW1JRDEsCiAgICAgICAgVXBkYXRlID0+IHsKICAgICAgICAgICAgRmllbGQxICAgICAgPT4gJzxwPlN5bXB0b20gPC9wPicsCiAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0QXV0byA9PiAndGV4dC9odG1sJywKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdUZXh0IHdpdGggPC9wcmU+JywKICAgICAgICBJdGVtSUQgPT4gJEZBUUl0ZW1JRDEsCiAgICAgICAgVXBkYXRlID0+IHsKICAgICAgICAgICAgRmllbGQxICAgICAgPT4gJzxwcmU+U3ltcHRvbSA8L3ByZT4nLAogICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdEF1dG8gPT4gJ3RleHQvaHRtbCcsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnVGV4dCB3aXRoIDwvaDE+JywKICAgICAgICBJdGVtSUQgPT4gJEZBUUl0ZW1JRDEsCiAgICAgICAgVXBkYXRlID0+IHsKICAgICAgICAgICAgRmllbGQxICAgICAgPT4gJzxoMT5TeW1wdG9tIDwvaDE+JywKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRBdXRvID0+ICd0ZXh0L2h0bWwnLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ1RleHQgd2l0aCA8L2g5PicsCiAgICAgICAgSXRlbUlEID0+ICRGQVFJdGVtSUQxLAogICAgICAgIFVwZGF0ZSA9PiB7CiAgICAgICAgICAgIEZpZWxkMSAgICAgID0+ICc8aDk+U3ltcHRvbSA8L2g5PicsCiAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0QXV0byA9PiAndGV4dC9odG1sJywKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdUZXh0IHdpdGggb3V0IEhUTUwgdGFncycsCiAgICAgICAgSXRlbUlEID0+ICRGQVFJdGVtSUQxLAogICAgICAgIFVwZGF0ZSA9PiB7CiAgICAgICAgICAgIEZpZWxkMSAgICAgID0+ICdTeW1wdG9tICcsCiAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0QXV0byA9PiAndGV4dC9wbGFpbicsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnVGV4dCB3aXRoIDwvdT4nLAogICAgICAgIEl0ZW1JRCA9PiAkRkFRSXRlbUlEMSwKICAgICAgICBVcGRhdGUgPT4gewogICAgICAgICAgICBGaWVsZDEgICAgICA9PiAnPHU+U3ltcHRvbSA8L3U+JywKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRBdXRvID0+ICd0ZXh0L3BsYWluJywKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdUZXh0IHdpdGggPC9kaWI+JywKICAgICAgICBJdGVtSUQgPT4gJEZBUUl0ZW1JRDEsCiAgICAgICAgVXBkYXRlID0+IHsKICAgICAgICAgICAgRmllbGQxICAgICAgPT4gJzxkaWI+U3ltcHRvbSA8L2RpYj4nLAogICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdEF1dG8gPT4gJ3RleHQvcGxhaW4nLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ1RleHQgd2l0aCA8L3NwYW0+JywKICAgICAgICBJdGVtSUQgPT4gJEZBUUl0ZW1JRDEsCiAgICAgICAgVXBkYXRlID0+IHsKICAgICAgICAgICAgRmllbGQxICAgICAgPT4gJzxzcGFtPlN5bXB0b20gPC9zcGFtPicsCiAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L3BsYWluJywKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0QXV0byA9PiAndGV4dC9wbGFpbicsCiAgICB9LAopOwoKZm9yIG15ICRUZXN0IChAVGVzdHMpIHsKICAgIGZvciBteSAkQ29udGVudFR5cGVSYXcgKHF3KGF1dG8gdGV4dC9wbGFpbiB0ZXh0L2h0bWwpKSB7CgogICAgICAgIG15ICRDb250ZW50VHlwZSA9ICRDb250ZW50VHlwZVJhdyBlcSAnYXV0bycgPyAnJyA6ICRDb250ZW50VHlwZVJhdzsKCiAgICAgICAgbXkgJUZBUURhdGEgPSAkRkFRT2JqZWN0LT5GQVFHZXQoCiAgICAgICAgICAgIEl0ZW1JRCA9PiAkVGVzdC0+e0l0ZW1JRH0sCiAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICk7CgogICAgICAgIG15ICRGQVFVcGRhdGUgPSAkRkFRT2JqZWN0LT5GQVFVcGRhdGUoCiAgICAgICAgICAgICVGQVFEYXRhLAogICAgICAgICAgICAleyAkVGVzdC0+e1VwZGF0ZX0gfSwKICAgICAgICAgICAgSXRlbUlEID0+ICRUZXN0LT57SXRlbUlEfSwKICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkRkFRT2JqZWN0LT5GQVFDb250ZW50VHlwZVNldCgKICAgICAgICAgICAgRkFRSXRlbUlEcyAgPT4gWyAkVGVzdC0+e0l0ZW1JRH0gXSwKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJENvbnRlbnRUeXBlLAogICAgICAgICk7CgogICAgICAgIG15ICRFeHBlY3RlZFJlc3VsdCA9ICRDb250ZW50VHlwZVJhdyBlcSAnYXV0bycgPyAkVGVzdC0+e0V4cGVjdGVkUmVzdWx0QXV0b30gOiAkQ29udGVudFR5cGU7CgogICAgICAgICVGQVFEYXRhID0gJEZBUU9iamVjdC0+RkFRR2V0KAogICAgICAgICAgICBJdGVtSUQgPT4gJFRlc3QtPntJdGVtSUR9LAogICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICApOwoKICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICRGQVFEYXRhe0NvbnRlbnRUeXBlfSwKICAgICAgICAgICAgJEV4cGVjdGVkUmVzdWx0LAogICAgICAgICAgICAiJFRlc3QtPntOYW1lfSAtIENvbnRlbnRUeXBlIGFmdGVyIHNldCB0byAkQ29udGVudFR5cGVSYXciLAogICAgICAgICk7CiAgICB9Cn0KCiVGQVFEYXRhID0gJEZBUU9iamVjdC0+RkFRR2V0KAogICAgSXRlbUlEID0+ICRGQVFJdGVtSUQxLAogICAgVXNlcklEID0+IDEsCik7CiRGQVFVcGRhdGUgPSAkRkFRT2JqZWN0LT5GQVFVcGRhdGUoCiAgICAlRkFRRGF0YSwKICAgIEl0ZW1JRCAgPT4gJEZBUUl0ZW1JRDEsCiAgICBWYWxpZElEID0+IDIsCiAgICBVc2VySUQgID0+IDEsCik7CiRTZWxmLT5UcnVlKAogICAgJEZBUVVwZGF0ZSwKICAgICJGQVFVcGRhdGUoKSBzZXQgRkFRICRGQVFJdGVtSUQxIHRvIGludmFsaWQiLAopOwoKbXkgJEludGVyZmFjZVN0YXRlcyA9ICRGQVFPYmplY3QtPlN0YXRlVHlwZUxpc3QoCiAgICBUeXBlcyAgPT4gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdGQVE6OkFnZW50OjpTdGF0ZVR5cGVzJyksCiAgICBVc2VySUQgPT4gMSwKKTsKCm15ICRBcnRpY2xlQ291bnQgPSAkRkFRT2JqZWN0LT5GQVFDb3VudCgKICAgIENhdGVnb3J5SURzID0+IFsgMSwgXSwKICAgIEl0ZW1TdGF0ZXMgID0+ICRJbnRlcmZhY2VTdGF0ZXMsCiAgICBWYWxpZCAgICAgICA9PiAwLAogICAgVXNlcklEICAgICAgPT4gMSwKKTsKJFNlbGYtPklzTm90KAogICAgJEFydGljbGVDb3VudCwKICAgIDAsCiAgICAiRkFRQ291bnQoKSBWYWxpZCBhbmQgSW52YWxpZCIsCik7CgpteSAkQXJ0aWNsZUNvdW50VmFsaWQgPSAkRkFRT2JqZWN0LT5GQVFDb3VudCgKICAgIENhdGVnb3J5SURzID0+IFsgMSwgXSwKICAgIEl0ZW1TdGF0ZXMgID0+ICRJbnRlcmZhY2VTdGF0ZXMsCiAgICBWYWxpZCAgICAgICA9PiAxLAogICAgVXNlcklEICAgICAgPT4gMSwKKTsKJFNlbGYtPklzTm90KAogICAgJEFydGljbGVDb3VudFZhbGlkLAogICAgMCwKICAgICJGQVFDb3VudCgpIFZhbGlkIiwKKTsKCiRTZWxmLT5UcnVlKAogICAgJEFydGljbGVDb3VudFZhbGlkIDwgJEFydGljbGVDb3VudCA/IDEgOiAwLAogICAgIlZhbGlkIEl0ZW1zIGFyZSBsZXNzIHRoYW4gVmFsaWQgYW5kIEludmFsaWQgKCRBcnRpY2xlQ291bnRWYWxpZCA8ICRBcnRpY2xlQ291bnQpIHdpdGggdHJ1ZSIsCik7CgojIFRlc3QgRkFRQ291bnQoKSB3aXRoIG11bHRpcGxlIENhdGVnb3JpZXMsIHNlZSBidWcjNzk4MC4KbXkgJFJhbmRvbUlEID0gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKbXkgQENhdGVnb3J5SURzOwpteSAkQ291bnQgPSAwOwpmb3IgbXkgJEluZGV4ICggMSAuLiAzICkgewoKICAgICMgQ3JlYXRlIHRlc3QgQ2F0ZWdvcnkuCiAgICBteSAkQ2F0ZWdvcnlJRCA9ICRGQVFPYmplY3QtPkNhdGVnb3J5QWRkKAogICAgICAgIE5hbWUgICAgID0+ICRJbmRleCAuICdDYXRlZ29yeScgLiAkUmFuZG9tSUQsCiAgICAgICAgUGFyZW50SUQgPT4gMCwKICAgICAgICBWYWxpZElEICA9PiAxLAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICApOwogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJENhdGVnb3J5SUQsCiAgICAgICAgIkNhdGVnb3J5SUQgJENhdGVnb3J5SUQgaXMgY3JlYXRlZCIKICAgICk7CiAgICBwdXNoIEBDYXRlZ29yeUlEcywgJENhdGVnb3J5SUQ7CgogICAgIyBDcmVhdGUgdGVzdCBGQVEuCiAgICBteSAkRkFRSUQgPSAkRkFRT2JqZWN0LT5GQVFBZGQoCiAgICAgICAgVGl0bGUgICAgICAgPT4gJEluZGV4IC4gJ0ZBUScgLiAkUmFuZG9tSUQsCiAgICAgICAgQ2F0ZWdvcnlJRCAgPT4gJENhdGVnb3J5SUQsCiAgICAgICAgU3RhdGVJRCAgICAgPT4gMSwKICAgICAgICBMYW5ndWFnZUlEICA9PiAxLAogICAgICAgIEtleXdvcmRzICAgID0+ICdzb21lIGtleXdvcmRzJywKICAgICAgICBGaWVsZDEgICAgICA9PiAnUHJvYmxlbS4uLicsCiAgICAgICAgRmllbGQyICAgICAgPT4gJ1NvbHV0aW9uLi4uJywKICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9odG1sJywKICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgKTsKICAgICRTZWxmLT5UcnVlKAogICAgICAgICRGQVFJRCwKICAgICAgICAiRkFRSUQgJEZBUUlEIGlzIGNyZWF0ZWQiCiAgICApOwoKICAgICRDb3VudCsrOwp9CgpteSAkTXVsdGlDYXRlZ29yeUFydGljbGVDb3VudCA9ICRGQVFPYmplY3QtPkZBUUNvdW50KAogICAgQ2F0ZWdvcnlJRHMgPT4gW0BDYXRlZ29yeUlEc10sCiAgICBJdGVtU3RhdGVzICA9PiAkSW50ZXJmYWNlU3RhdGVzLAogICAgVmFsaWQgICAgICAgPT4gMSwKICAgIFVzZXJJRCAgICAgID0+IDEsCik7CiRTZWxmLT5JcygKICAgICRNdWx0aUNhdGVnb3J5QXJ0aWNsZUNvdW50LAogICAgJENvdW50LAogICAgIkZBUUNvdW50KCkgd2l0aCBtdWx0aXBsZSBDYXRlZ29yaWVzIHN1Y2Nlc3MiCik7CgojIGNsZWFudXAgaXMgZG9uZSBieSByZXN0b3JlIGRhdGFiYXNlCgoxOwo=</File>
        <File Location="scripts/test/FAQSearch.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgJFNlbGY7CgojIGdldCBoZWxwZXIgb2JqZWN0CiRLZXJuZWw6Ok9NLT5PYmplY3RQYXJhbUFkZCgKICAgICdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicgPT4gewogICAgICAgIFJlc3RvcmVEYXRhYmFzZSA9PiAxLAogICAgfSwKKTsKbXkgJEhlbHBlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CgojIHNldCBjb25maWcgb3B0aW9ucwokS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5TZXQoCiAgICBLZXkgICA9PiAnRkFROjpBcHByb3ZhbFJlcXVpcmVkJywKICAgIFZhbHVlID0+IDAsCik7CgojIGdlbmVyYXRlIGEgcmFuZG9tIHN0cmluZyB0byBoZWxwIHNlYXJjaGVzCm15ICRSYW5kb21JRCA9ICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CgojIGNyZWF0ZSBkaWZmZXJlbnQgdXNlcnMgZm9yIENyZWF0ZWRVc2VySURzIHNlYXJjaApteSBAQWRkZWRVc2VyczsKZm9yIG15ICRDb3VudGVyICggMSAuLiA0ICkgewogICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICBHcm91cHMgPT4gWyAnYWRtaW4nLCAndXNlcnMnIF0sCiAgICApOwogICAgbXkgJFVzZXJJRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPlVzZXJMb29rdXAoCiAgICAgICAgVXNlckxvZ2luID0+ICRUZXN0VXNlckxvZ2luLAogICAgKTsKICAgIHB1c2ggQEFkZGVkVXNlcnMsICRVc2VySUQ7Cn0KCm15IEBBZGRlZEZBUXM7CgojIGFkZCBzb21lIEZBUXMKbXkgJUZBUUFkZFRlbXBsYXRlID0gKAogICAgVGl0bGUgICAgICAgPT4gIlNvbWUgVGV4dCAkUmFuZG9tSUQiLAogICAgQ2F0ZWdvcnlJRCAgPT4gMSwKICAgIFN0YXRlSUQgICAgID0+IDEsCiAgICBMYW5ndWFnZUlEICA9PiAxLAogICAgS2V5d29yZHMgICAgPT4gJFJhbmRvbUlELAogICAgRmllbGQxICAgICAgPT4gJ1Byb2JsZW0uLi4nLAogICAgRmllbGQyICAgICAgPT4gJ1NvbHV0aW9uLi4uJywKICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICBDb250ZW50VHlwZSA9PiAndGV4dC9odG1sJywKKTsKCiMgZnJlZXplIHRpbWUKJEhlbHBlci0+Rml4ZWRUaW1lU2V0KCk7CgojIGdldCBGQVEgb2JqZWN0Cm15ICRGQVFPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RkFRJyk7Cgpmb3IgbXkgJENvdW50ZXIgKCAxIC4uIDIgKSB7CiAgICBteSAkSXRlbUlEID0gJEZBUU9iamVjdC0+RkFRQWRkKAogICAgICAgICVGQVFBZGRUZW1wbGF0ZSwKICAgICAgICBVc2VySUQgPT4gJEFkZGVkVXNlcnNbICRDb3VudGVyIC0gMSBdLAogICAgKTsKCiAgICAkU2VsZi0+SXNOb3QoCiAgICAgICAgdW5kZWYsCiAgICAgICAgJEl0ZW1JRCwKICAgICAgICAiRkFRQWRkKCkgSXRlbUlEOickSXRlbUlEJyBmb3IgRkFRU2VhcmNoKCkiLAogICAgKTsKCiAgICBwdXNoIEBBZGRlZEZBUXMsICRJdGVtSUQ7CgogICAgIyBhZGQgMSBtaW51dGUgdG8gZnJvemVuIHRpbWUKICAgICRIZWxwZXItPkZpeGVkVGltZUFkZFNlY29uZHMoNjApOwp9CgojIGFkZCBzb21lIHZvdGVzCm15IEBWb3Rlc1RvQWRkID0gKAogICAgewogICAgICAgIENyZWF0ZWRCeSA9PiAnU29tZSBUZXh0JywKICAgICAgICBJdGVtSUQgICAgPT4gJEFkZGVkRkFRc1swXSwKICAgICAgICBJUCAgICAgICAgPT4gJzU0LjQzLjMwLjEnLAogICAgICAgIEludGVyZmFjZSA9PiAnMicsCiAgICAgICAgUmF0ZSAgICAgID0+IDEwMCwKICAgICAgICBVc2VySUQgICAgPT4gMSwKICAgIH0sCiAgICB7CiAgICAgICAgQ3JlYXRlZEJ5ID0+ICdTb21lIFRleHQnLAogICAgICAgIEl0ZW1JRCAgICA9PiAkQWRkZWRGQVFzWzBdLAogICAgICAgIElQICAgICAgICA9PiAnNTQuNDMuMzAuMicsCiAgICAgICAgSW50ZXJmYWNlID0+ICcyJywKICAgICAgICBSYXRlICAgICAgPT4gNTAsCiAgICAgICAgVXNlcklEICAgID0+IDEsCiAgICB9LAogICAgewogICAgICAgIENyZWF0ZWRCeSA9PiAnU29tZSBUZXh0JywKICAgICAgICBJdGVtSUQgICAgPT4gJEFkZGVkRkFRc1swXSwKICAgICAgICBJUCAgICAgICAgPT4gJzU0LjQzLjMwLjMnLAogICAgICAgIEludGVyZmFjZSA9PiAnMicsCiAgICAgICAgUmF0ZSAgICAgID0+IDUwLAogICAgICAgIFVzZXJJRCAgICA9PiAxLAogICAgfSwKICAgIHsKICAgICAgICBDcmVhdGVkQnkgPT4gJ1NvbWUgVGV4dCcsCiAgICAgICAgSXRlbUlEICAgID0+ICRBZGRlZEZBUXNbMV0sCiAgICAgICAgSVAgICAgICAgID0+ICc1NC40My4zMC4xJywKICAgICAgICBJbnRlcmZhY2UgPT4gJzInLAogICAgICAgIFJhdGUgICAgICA9PiA1MCwKICAgICAgICBVc2VySUQgICAgPT4gMSwKICAgIH0sCiAgICB7CiAgICAgICAgQ3JlYXRlZEJ5ID0+ICdTb21lIFRleHQnLAogICAgICAgIEl0ZW1JRCAgICA9PiAkQWRkZWRGQVFzWzFdLAogICAgICAgIElQICAgICAgICA9PiAnNTQuNDMuMzAuMicsCiAgICAgICAgSW50ZXJmYWNlID0+ICcyJywKICAgICAgICBSYXRlICAgICAgPT4gNTAsCiAgICAgICAgVXNlcklEICAgID0+IDEsCiAgICB9LAoKKTsKZm9yIG15ICRWb3RlIChAVm90ZXNUb0FkZCkgewogICAgbXkgJFN1Y2Nlc3MgPSAkRkFRT2JqZWN0LT5Wb3RlQWRkKCAleyRWb3RlfSApOwoKICAgICRTZWxmLT5UcnVlKAogICAgICAgICRTdWNjZXNzLAogICAgICAgICJWb3RlQWRkKCk6IEl0ZW1JRDonJFZvdGUtPntJdGVtSUR9JyBJUDonJFZvdGUtPntJUH0nIFJhdGU6JyRWb3RlLT57UmF0ZX0nIHdpdGggdHJ1ZSIsCiAgICApOwp9CgojIGRvIHZvdGUgc2VhcmNoIHRlc3RzCm15ICVTZWFyY2hDb25maWdUZW1wbGF0ZSA9ICgKICAgIEtleXdvcmQgICAgICAgICAgPT4gIiRSYW5kb21JRCIsCiAgICBTdGF0ZXMgICAgICAgICAgID0+IFsgJ3B1YmxpYycsICdpbnRlcm5hbCcgXSwKICAgIE9yZGVyQnkgICAgICAgICAgPT4gWydGQVFJRCddLAogICAgT3JkZXJCeURpcmVjdGlvbiA9PiBbJ1VwJ10sCiAgICBMaW1pdCAgICAgICAgICAgID0+IDE1MCwKICAgIFVzZXJJRCAgICAgICAgICAgPT4gMSwKCik7Cm15IEBUZXN0cyA9ICgKCiAgICAjIHZvdGVzIHRlc3RzCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdWb3RlcywgU2ltcGxlIEVxdWFscyBPcGVyYXRvcicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgJVNlYXJjaENvbmZpZ1RlbXBsYXRlLAogICAgICAgICAgICBWb3RlcyA9PiB7CiAgICAgICAgICAgICAgICBFcXVhbHMgPT4gMywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiBbCiAgICAgICAgICAgICRBZGRlZEZBUXNbMF0sCiAgICAgICAgXSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdWb3RlcywgU2ltcGxlIEdyZWF0ZXJUaGFuIE9wZXJhdG9yJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICAlU2VhcmNoQ29uZmlnVGVtcGxhdGUsCiAgICAgICAgICAgIFZvdGVzID0+IHsKICAgICAgICAgICAgICAgIEdyZWF0ZXJUaGFuID0+IDIsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gWwogICAgICAgICAgICAkQWRkZWRGQVFzWzBdLAogICAgICAgIF0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnVm90ZXMsIFNpbXBsZSBHcmVhdGVyVGhhbkVxdWFscyBPcGVyYXRvcicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgJVNlYXJjaENvbmZpZ1RlbXBsYXRlLAogICAgICAgICAgICBWb3RlcyA9PiB7CiAgICAgICAgICAgICAgICBHcmVhdGVyVGhhbkVxdWFscyA9PiAyLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IFsKICAgICAgICAgICAgJEFkZGVkRkFRc1swXSwKICAgICAgICAgICAgJEFkZGVkRkFRc1sxXSwKICAgICAgICBdLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ1ZvdGVzLCBTaW1wbGUgU21hbGxlclRoYW4gT3BlcmF0b3InLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgICVTZWFyY2hDb25maWdUZW1wbGF0ZSwKICAgICAgICAgICAgVm90ZXMgPT4gewogICAgICAgICAgICAgICAgU21hbGxlclRoYW4gPT4gMywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiBbCiAgICAgICAgICAgICRBZGRlZEZBUXNbMV0sCiAgICAgICAgXSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdWb3RlcywgU2ltcGxlIFNtYWxsZXJUaGFuRXF1YWxzIE9wZXJhdG9yJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICAlU2VhcmNoQ29uZmlnVGVtcGxhdGUsCiAgICAgICAgICAgIFZvdGVzID0+IHsKICAgICAgICAgICAgICAgIFNtYWxsZXJUaGFuRXF1YWxzID0+IDMsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gWwogICAgICAgICAgICAkQWRkZWRGQVFzWzBdLAogICAgICAgICAgICAkQWRkZWRGQVFzWzFdLAogICAgICAgIF0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnVm90ZXMsIE11bHRpcGxlIEVxdWFscyBPcGVyYXRvcicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgJVNlYXJjaENvbmZpZ1RlbXBsYXRlLAogICAgICAgICAgICBWb3RlcyA9PiB7CiAgICAgICAgICAgICAgICBFcXVhbHMgPT4gWyAyLCAzIF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gWwogICAgICAgICAgICAkQWRkZWRGQVFzWzBdLAogICAgICAgICAgICAkQWRkZWRGQVFzWzFdLAogICAgICAgIF0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnVm90ZXMsIE11bHRpcGxlIEdyZWF0ZXJUaGFuIE9wZXJhdG9yJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICAlU2VhcmNoQ29uZmlnVGVtcGxhdGUsCiAgICAgICAgICAgIFZvdGVzID0+IHsKICAgICAgICAgICAgICAgIEdyZWF0ZXJUaGFuID0+IFsgMSwgMiBdLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IFsKICAgICAgICAgICAgJEFkZGVkRkFRc1swXSwKICAgICAgICAgICAgJEFkZGVkRkFRc1sxXSwKICAgICAgICBdLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ1ZvdGVzLCBNdWx0aXBsZSBHcmVhdGVyVGhhbkVxdWFscyBPcGVyYXRvcicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgJVNlYXJjaENvbmZpZ1RlbXBsYXRlLAogICAgICAgICAgICBWb3RlcyA9PiB7CiAgICAgICAgICAgICAgICBHcmVhdGVyVGhhbkVxdWFscyA9PiBbIDIsIDMgXQogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IFsKICAgICAgICAgICAgJEFkZGVkRkFRc1swXSwKICAgICAgICAgICAgJEFkZGVkRkFRc1sxXSwKICAgICAgICBdLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ1ZvdGVzLCBNdWx0aXBsZSBTbWFsbGVyVGhhbiBPcGVyYXRvcicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgJVNlYXJjaENvbmZpZ1RlbXBsYXRlLAogICAgICAgICAgICBWb3RlcyA9PiB7CiAgICAgICAgICAgICAgICBTbWFsbGVyVGhhbiA9PiBbIDMsIDIgXQogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IFsKICAgICAgICAgICAgJEFkZGVkRkFRc1sxXSwKICAgICAgICBdLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ1ZvdGVzLCBNdWx0aXBsZSBTbWFsbGVyVGhhbkVxdWFscyBPcGVyYXRvcicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgJVNlYXJjaENvbmZpZ1RlbXBsYXRlLAogICAgICAgICAgICBWb3RlcyA9PiB7CiAgICAgICAgICAgICAgICBTbWFsbGVyVGhhbkVxdWFscyA9PiBbIDIsIDMgXQogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IFsKICAgICAgICAgICAgJEFkZGVkRkFRc1swXSwKICAgICAgICAgICAgJEFkZGVkRkFRc1sxXSwKICAgICAgICBdLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ1ZvdGVzLCBXcm9uZyBPcGVyYXRvcicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgJVNlYXJjaENvbmZpZ1RlbXBsYXRlLAogICAgICAgICAgICBWb3RlcyA9PiB7CiAgICAgICAgICAgICAgICBMZXNzVGhhbkVxdWFscyA9PiBbNF0KICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiBbCiAgICAgICAgICAgICRBZGRlZEZBUXNbMF0sCiAgICAgICAgICAgICRBZGRlZEZBUXNbMV0sCiAgICAgICAgXSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdWb3RlcywgQ29tcGxleCBPcGVyYXRvcicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgJVNlYXJjaENvbmZpZ1RlbXBsYXRlLAogICAgICAgICAgICBWb3RlcyA9PiB7CiAgICAgICAgICAgICAgICBHcmVhdGVyVGhhbiAgICAgICA9PiAyLAogICAgICAgICAgICAgICAgU21hbGxlclRoYW5FcXVhbHMgPT4gMywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiBbCiAgICAgICAgICAgICRBZGRlZEZBUXNbMF0sCiAgICAgICAgXSwKICAgIH0sCgogICAgewogICAgICAgIE5hbWUgICA9PiAnUmF0ZSwgU2ltcGxlIEVxdWFscyBPcGVyYXRvcicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgJVNlYXJjaENvbmZpZ1RlbXBsYXRlLAogICAgICAgICAgICBSYXRlID0+IHsKICAgICAgICAgICAgICAgIEVxdWFscyA9PiA1MCwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiBbCiAgICAgICAgICAgICRBZGRlZEZBUXNbMV0sCiAgICAgICAgXSwKICAgIH0sCgogICAgIyBSYXRlIHRlc3RzCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdSYXRlLCBTaW1wbGUgR3JlYXRlclRoYW4gT3BlcmF0b3InLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgICVTZWFyY2hDb25maWdUZW1wbGF0ZSwKICAgICAgICAgICAgUmF0ZSA9PiB7CiAgICAgICAgICAgICAgICBHcmVhdGVyVGhhbiA9PiA1MCwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiBbCiAgICAgICAgICAgICRBZGRlZEZBUXNbMF0sCiAgICAgICAgXSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdSYXRlLCBTaW1wbGUgR3JlYXRlclRoYW5FcXVhbHMgT3BlcmF0b3InLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgICVTZWFyY2hDb25maWdUZW1wbGF0ZSwKICAgICAgICAgICAgUmF0ZSA9PiB7CiAgICAgICAgICAgICAgICBHcmVhdGVyVGhhbkVxdWFscyA9PiA1MCwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiBbCiAgICAgICAgICAgICRBZGRlZEZBUXNbMF0sCiAgICAgICAgICAgICRBZGRlZEZBUXNbMV0sCiAgICAgICAgXSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdSYXRlLCBTaW1wbGUgU21hbGxlclRoYW4gT3BlcmF0b3InLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgICVTZWFyY2hDb25maWdUZW1wbGF0ZSwKICAgICAgICAgICAgUmF0ZSA9PiB7CiAgICAgICAgICAgICAgICBTbWFsbGVyVGhhbiA9PiA2NiwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiBbCiAgICAgICAgICAgICRBZGRlZEZBUXNbMV0sCiAgICAgICAgXSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdSYXRlLCBTaW1wbGUgU21hbGxlclRoYW5FcXVhbHMgT3BlcmF0b3InLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgICVTZWFyY2hDb25maWdUZW1wbGF0ZSwKICAgICAgICAgICAgUmF0ZSA9PiB7CiAgICAgICAgICAgICAgICBTbWFsbGVyVGhhbkVxdWFscyA9PiA2NywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiBbCiAgICAgICAgICAgICRBZGRlZEZBUXNbMF0sCiAgICAgICAgICAgICRBZGRlZEZBUXNbMV0sCiAgICAgICAgXSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdSYXRlLCBNdWx0aXBsZSBFcXVhbHMgT3BlcmF0b3InLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgICVTZWFyY2hDb25maWdUZW1wbGF0ZSwKICAgICAgICAgICAgUmF0ZSA9PiB7CiAgICAgICAgICAgICAgICBFcXVhbHMgPT4gWyA1MCwgNjYuNjcgXSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiBbCiAgICAgICAgICAgICRBZGRlZEZBUXNbMV0sCiAgICAgICAgXSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdSYXRlLCBNdWx0aXBsZSBHcmVhdGVyVGhhbiBPcGVyYXRvcicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgJVNlYXJjaENvbmZpZ1RlbXBsYXRlLAogICAgICAgICAgICBSYXRlID0+IHsKICAgICAgICAgICAgICAgIEdyZWF0ZXJUaGFuID0+IFsgMjAsIDQwIF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gWwogICAgICAgICAgICAkQWRkZWRGQVFzWzBdLAogICAgICAgICAgICAkQWRkZWRGQVFzWzFdLAogICAgICAgIF0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnUmF0ZSwgTXVsdGlwbGUgR3JlYXRlclRoYW5FcXVhbHMgT3BlcmF0b3InLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgICVTZWFyY2hDb25maWdUZW1wbGF0ZSwKICAgICAgICAgICAgUmF0ZSA9PiB7CiAgICAgICAgICAgICAgICBHcmVhdGVyVGhhbkVxdWFscyA9PiBbIDUwLCA2NiBdCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gWwogICAgICAgICAgICAkQWRkZWRGQVFzWzBdLAogICAgICAgICAgICAkQWRkZWRGQVFzWzFdLAogICAgICAgIF0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnUmF0ZSwgTXVsdGlwbGUgU21hbGxlclRoYW4gT3BlcmF0b3InLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgICVTZWFyY2hDb25maWdUZW1wbGF0ZSwKICAgICAgICAgICAgUmF0ZSA9PiB7CiAgICAgICAgICAgICAgICBTbWFsbGVyVGhhbiA9PiBbIDY2LCA2MCBdCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gWwogICAgICAgICAgICAkQWRkZWRGQVFzWzFdLAogICAgICAgIF0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnUmF0ZSwgTXVsdGlwbGUgU21hbGxlclRoYW5FcXVhbHMgT3BlcmF0b3InLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgICVTZWFyY2hDb25maWdUZW1wbGF0ZSwKICAgICAgICAgICAgUmF0ZSA9PiB7CiAgICAgICAgICAgICAgICBTbWFsbGVyVGhhbkVxdWFscyA9PiBbIDUwLCA2NyBdCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gWwogICAgICAgICAgICAkQWRkZWRGQVFzWzBdLAogICAgICAgICAgICAkQWRkZWRGQVFzWzFdLAogICAgICAgIF0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnUmF0ZSwgV3JvbmcgT3BlcmF0b3InLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgICVTZWFyY2hDb25maWdUZW1wbGF0ZSwKICAgICAgICAgICAgUmF0ZSA9PiB7CiAgICAgICAgICAgICAgICBMZXNzVGhhbkVxdWFscyA9PiBbMTBdCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gWwogICAgICAgICAgICAkQWRkZWRGQVFzWzBdLAogICAgICAgICAgICAkQWRkZWRGQVFzWzFdLAogICAgICAgIF0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnUmF0ZSwgQ29tcGxleCBPcGVyYXRvcicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgJVNlYXJjaENvbmZpZ1RlbXBsYXRlLAogICAgICAgICAgICBSYXRlID0+IHsKICAgICAgICAgICAgICAgIEdyZWF0ZXJUaGFuICAgICAgID0+IFsgNTAsIDYwIF0sCiAgICAgICAgICAgICAgICBTbWFsbGVyVGhhbkVxdWFscyA9PiA2NywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiBbCiAgICAgICAgICAgICRBZGRlZEZBUXNbMF0sCiAgICAgICAgXSwKICAgIH0sCgogICAgIyBjb21wbGV4IHRlc3RzCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdWb3RlcywgUmF0ZSwgQ29tcGxleCArIFdyb25nIE9wZXJhdG9yJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICAlU2VhcmNoQ29uZmlnVGVtcGxhdGUsCiAgICAgICAgICAgIFZvdGVzID0+IHsKICAgICAgICAgICAgICAgIEVxdWFscyAgICAgICAgICAgID0+IFsgMiwgMywgNCBdLAogICAgICAgICAgICAgICAgR3JlYXRlclRoYW5FcXVhbHMgPT4gWzNdLAogICAgICAgICAgICB9LAogICAgICAgICAgICBSYXRlID0+IHsKICAgICAgICAgICAgICAgIEdyZWF0ZXJUaGFuID0+IFsgMjAsICA1MCBdLAogICAgICAgICAgICAgICAgU21hbGxlclRoYW4gPT4gWyAxMDAsIDEyMCBdLAogICAgICAgICAgICAgICAgTG93ZXJUaGFuICAgPT4gWzk5XSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiBbCiAgICAgICAgICAgICRBZGRlZEZBUXNbMF0sCiAgICAgICAgXSwKICAgIH0sCik7CgojIGV4ZWN1dGUgdGhlIHRlc3RzCmZvciBteSAkVGVzdCAoQFRlc3RzKSB7CiAgICBteSBASXRlbUlEcyA9ICRGQVFPYmplY3QtPkZBUVNlYXJjaCggJXsgJFRlc3QtPntDb25maWd9IH0gKTsKCiAgICAkU2VsZi0+SXNEZWVwbHkoCiAgICAgICAgXEBJdGVtSURzLAogICAgICAgICRUZXN0LT57RXhwZWN0ZWRSZXN1bHRzfSwKICAgICAgICAiJFRlc3QtPntOYW1lfSBGQVFTZWFyY2goKSIsCiAgICApOwp9CgojIG90aGVyIHRlc3RzCkBUZXN0cyA9ICgKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ1N0YXRlcyBIYXNoIENvcnJlY3QgSURzJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICAlU2VhcmNoQ29uZmlnVGVtcGxhdGUsCiAgICAgICAgICAgIFN0YXRlcyA9PiB7CiAgICAgICAgICAgICAgICAxID0+ICdJbnRlcm5hbCcsCiAgICAgICAgICAgICAgICAyID0+ICdFeHRlcm5hbCcsCiAgICAgICAgICAgICAgICAzID0+ICdQdWJsaWMnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IFsgJEFkZGVkRkFRc1swXSwgJEFkZGVkRkFRc1sxXSBdLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ1N0YXRlcyBIYXNoIEluY29ycmVjdCBJRHMgKEZsb2F0KScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgJVNlYXJjaENvbmZpZ1RlbXBsYXRlLAogICAgICAgICAgICBTdGF0ZXMgPT4gewogICAgICAgICAgICAgICAgMS4xID0+ICdJbnRlcm5hbCcsCiAgICAgICAgICAgICAgICAyLjIgPT4gJ0V4dGVybmFsJywKICAgICAgICAgICAgICAgIDMuMyA9PiAnUHVibGljJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiBbXSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdTdGF0ZXMgSGFzaCBJbmNvcnJlY3QgSURzIChTdHJpbmcpJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICAlU2VhcmNoQ29uZmlnVGVtcGxhdGUsCiAgICAgICAgICAgIFN0YXRlcyA9PiB7CiAgICAgICAgICAgICAgICAnSW50ZXJuYWwnID0+ICdJbnRlcm5hbCcsCiAgICAgICAgICAgICAgICAnRXh0ZXJuYWwnID0+ICdFeHRlcm5hbCcsCiAgICAgICAgICAgICAgICAnUHVibGljJyAgID0+ICdQdWJsaWMnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IFtdLAogICAgfSwKCik7CgojIGV4ZWN1dGUgdGhlIHRlc3RzCmZvciBteSAkVGVzdCAoQFRlc3RzKSB7CiAgICBteSBASXRlbUlEcyA9ICRGQVFPYmplY3QtPkZBUVNlYXJjaCggJXsgJFRlc3QtPntDb25maWd9IH0gKTsKCiAgICAkU2VsZi0+SXNEZWVwbHkoCiAgICAgICAgXEBJdGVtSURzLAogICAgICAgICRUZXN0LT57RXhwZWN0ZWRSZXN1bHRzfSwKICAgICAgICAiJFRlc3QtPntOYW1lfSBGQVFTZWFyY2goKSIsCiAgICApOwp9CgojIHRpbWUgYmFzZWQgdGVzdHMKCiMgdXBkYXRlIEZBUXMKbXkgJUZBUVVwZGF0ZVRlbXBsYXRlID0gKAogICAgVGl0bGUgICAgICAgPT4gIk5ldyBUZXh0ICRSYW5kb21JRCIsCiAgICBDYXRlZ29yeUlEICA9PiAxLAogICAgU3RhdGVJRCAgICAgPT4gMSwKICAgIExhbmd1YWdlSUQgID0+IDEsCiAgICBLZXl3b3JkcyAgICA9PiAkUmFuZG9tSUQsCiAgICBGaWVsZDEgICAgICA9PiAnUHJvYmxlbS4uLicsCiAgICBGaWVsZDIgICAgICA9PiAnU29sdXRpb24uLi4nLAogICAgVXNlcklEICAgICAgPT4gMSwKICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L2h0bWwnLAopOwoKIyBhZGQgMSBtaW51dGUgdG8gZnJvemVuIHRpbWUKJEhlbHBlci0+Rml4ZWRUaW1lQWRkU2Vjb25kcyg2MCk7CgpteSAkU3VjY2VzcyA9ICRGQVFPYmplY3QtPkZBUVVwZGF0ZSgKICAgICVGQVFVcGRhdGVUZW1wbGF0ZSwKICAgIEl0ZW1JRCA9PiAkQWRkZWRGQVFzWzBdLAogICAgVXNlcklEID0+ICRBZGRlZFVzZXJzWzJdLAopOwoKJFNlbGYtPlRydWUoCiAgICAkU3VjY2VzcywKICAgICJGQVFVcGRhdGUoKSBJdGVtSUQ6JyRBZGRlZEZBUXNbMF0nIGZvciBGQVFTZWFyY2goKSIsCik7CgokSGVscGVyLT5GaXhlZFRpbWVBZGRTZWNvbmRzKDYwKTsKCiRTdWNjZXNzID0gJEZBUU9iamVjdC0+RkFRVXBkYXRlKAogICAgJUZBUVVwZGF0ZVRlbXBsYXRlLAogICAgSXRlbUlEID0+ICRBZGRlZEZBUXNbMV0sCiAgICBVc2VySUQgPT4gJEFkZGVkVXNlcnNbM10sCik7CgokU2VsZi0+VHJ1ZSgKICAgICRTdWNjZXNzLAogICAgIkZBUVVwZGF0ZSgpIEl0ZW1JRDonJEFkZGVkRkFRc1sxXScgZm9yIEZBUVNlYXJjaCgpIiwKKTsKCiMgYWRkIDIgbWludXRlcyB0byBmcm96ZW4gdGltZQokSGVscGVyLT5GaXhlZFRpbWVBZGRTZWNvbmRzKDEyMCk7CgpteSAkRGF0ZVRpbWUgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKCdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnKTsKCiMgU3VidHJhY3QgMiBtaW51dGVzLgokRGF0ZVRpbWUtPlN1YnRyYWN0KCBTZWNvbmRzID0+IDEyMSApOwpteSAkRGF0ZU1pbnVzMk1pbnMgPSAkRGF0ZVRpbWUtPlRvU3RyaW5nKCk7CgojIFN1YnRyYWN0IHRvdGFseSA1IG1pbnV0ZXMuCiREYXRlVGltZS0+U3VidHJhY3QoIFNlY29uZHMgPT4gMTgwICk7Cm15ICREYXRlTWludXM1TWlucyA9ICREYXRlVGltZS0+VG9TdHJpbmcoKTsKCiMgU3VidHJhY3QgdG90YWx5IDYgbWludXRlcy4KJERhdGVUaW1lLT5TdWJ0cmFjdCggU2Vjb25kcyA9PiA2MCApOwpteSAkRGF0ZU1pbnVzNk1pbnMgPSAkRGF0ZVRpbWUtPlRvU3RyaW5nKCk7CgpAVGVzdHMgPSAoCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdDcmVhdGVUaW1lT2xkZXJNaW51dGVzIDMgbWluJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICAlU2VhcmNoQ29uZmlnVGVtcGxhdGUsCiAgICAgICAgICAgIEl0ZW1DcmVhdGVUaW1lT2xkZXJNaW51dGVzID0+IDMsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gWwogICAgICAgICAgICAkQWRkZWRGQVFzWzBdLAogICAgICAgICAgICAkQWRkZWRGQVFzWzFdLAogICAgICAgIF0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnQ3JlYXRlVGltZU9sZGVyTWludXRlcyA2IG1pbicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgJVNlYXJjaENvbmZpZ1RlbXBsYXRlLAogICAgICAgICAgICBJdGVtQ3JlYXRlVGltZU9sZGVyTWludXRlcyA9PiA2LAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IFsKICAgICAgICAgICAgJEFkZGVkRkFRc1swXSwKICAgICAgICBdLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0NyZWF0ZVRpbWVOZXdlck1pbnV0ZXMgNiBtaW4nLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgICVTZWFyY2hDb25maWdUZW1wbGF0ZSwKICAgICAgICAgICAgSXRlbUNyZWF0ZVRpbWVOZXdlck1pbnV0ZXMgPT4gNiwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiBbCiAgICAgICAgICAgICRBZGRlZEZBUXNbMF0sCiAgICAgICAgICAgICRBZGRlZEZBUXNbMV0sCiAgICAgICAgXSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdDcmVhdGVUaW1lTmV3ZXJNaW51dGVzIDUgbWluJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICAlU2VhcmNoQ29uZmlnVGVtcGxhdGUsCiAgICAgICAgICAgIEl0ZW1DcmVhdGVUaW1lTmV3ZXJNaW51dGVzID0+IDUsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gWwogICAgICAgICAgICAkQWRkZWRGQVFzWzFdLAogICAgICAgIF0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnQ3JlYXRlVGltZU9sZGVyRGF0ZSA1IG1pbicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgJVNlYXJjaENvbmZpZ1RlbXBsYXRlLAogICAgICAgICAgICBJdGVtQ3JlYXRlVGltZU9sZGVyRGF0ZSA9PiAkRGF0ZU1pbnVzNU1pbnMsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gWwogICAgICAgICAgICAkQWRkZWRGQVFzWzBdLAogICAgICAgIF0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnQ3JlYXRlVGltZU5ld2VyRGF0ZSA1IG1pbicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgJVNlYXJjaENvbmZpZ1RlbXBsYXRlLAogICAgICAgICAgICBJdGVtQ3JlYXRlVGltZU5ld2VyRGF0ZSA9PiAkRGF0ZU1pbnVzNU1pbnMsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gWwogICAgICAgICAgICAkQWRkZWRGQVFzWzFdLAogICAgICAgIF0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnQ3JlYXRlVGltZU9sZGVyRGF0ZSBDcmVhdGVUaW1lTmV3ZXJEYXRlJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICAlU2VhcmNoQ29uZmlnVGVtcGxhdGUsCiAgICAgICAgICAgIEl0ZW1DcmVhdGVUaW1lTmV3ZXJEYXRlID0+ICREYXRlTWludXM2TWlucywKICAgICAgICAgICAgSXRlbUNyZWF0ZVRpbWVPbGRlckRhdGUgPT4gJERhdGVNaW51czVNaW5zLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IFsKICAgICAgICAgICAgJEFkZGVkRkFRc1swXSwKICAgICAgICBdLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0NoYW5nZVRpbWVPbGRlck1pbnV0ZXMgMyBtaW4nLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgICVTZWFyY2hDb25maWdUZW1wbGF0ZSwKICAgICAgICAgICAgSXRlbUNoYW5nZVRpbWVPbGRlck1pbnV0ZXMgPT4gMywKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiBbCiAgICAgICAgICAgICRBZGRlZEZBUXNbMF0sCiAgICAgICAgXSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdDaGFuZ2VUaW1lTmV3ZXJNaW51dGVzIDIgbWluJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICAlU2VhcmNoQ29uZmlnVGVtcGxhdGUsCiAgICAgICAgICAgIEl0ZW1DaGFuZ2VUaW1lTmV3ZXJNaW51dGVzID0+IDIsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gWwogICAgICAgICAgICAkQWRkZWRGQVFzWzFdLAogICAgICAgIF0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnQ2hhbmdlVGltZU9sZGVyRGF0ZSAyIE1pbicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgJVNlYXJjaENvbmZpZ1RlbXBsYXRlLAogICAgICAgICAgICBJdGVtQ2hhbmdlVGltZU9sZGVyRGF0ZSA9PiAkRGF0ZU1pbnVzMk1pbnMsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gWwogICAgICAgICAgICAkQWRkZWRGQVFzWzBdLAogICAgICAgIF0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnQ2hhbmdlVGltZU5ld2VyRGF0ZSAyIE1pbicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgJVNlYXJjaENvbmZpZ1RlbXBsYXRlLAogICAgICAgICAgICBJdGVtQ2hhbmdlVGltZU5ld2VyRGF0ZSA9PiAkRGF0ZU1pbnVzMk1pbnMsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gWwogICAgICAgICAgICAkQWRkZWRGQVFzWzFdLAogICAgICAgIF0sCiAgICB9Cik7CgojIGV4ZWN1dGUgdGhlIHRlc3RzCmZvciBteSAkVGVzdCAoQFRlc3RzKSB7CgogICAgbXkgQEl0ZW1JRHMgPSAkRkFRT2JqZWN0LT5GQVFTZWFyY2goICV7ICRUZXN0LT57Q29uZmlnfSB9ICk7CgogICAgJFNlbGYtPklzRGVlcGx5KAogICAgICAgIFxASXRlbUlEcywKICAgICAgICAkVGVzdC0+e0V4cGVjdGVkUmVzdWx0c30sCiAgICAgICAgIiRUZXN0LT57TmFtZX0gRkFRU2VhcmNoKCkiLAogICAgKTsKfQoKIyBjcmVhdGVkIHVzZXIgdGVzdHMKQFRlc3RzID0gKAogICAgewogICAgICAgIE5hbWUgICA9PiAnQ3JlYXRlZFVzZXJJRHMgMScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgJVNlYXJjaENvbmZpZ1RlbXBsYXRlLAogICAgICAgICAgICBDcmVhdGVkVXNlcklEcyA9PiBbICRBZGRlZFVzZXJzWzBdIF0sCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gWwogICAgICAgICAgICAkQWRkZWRGQVFzWzBdLAogICAgICAgIF0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnQ3JlYXRlZFVzZXJJRHMgMicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgJVNlYXJjaENvbmZpZ1RlbXBsYXRlLAogICAgICAgICAgICBDcmVhdGVkVXNlcklEcyA9PiBbICRBZGRlZFVzZXJzWzFdIF0sCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gWwogICAgICAgICAgICAkQWRkZWRGQVFzWzFdLAogICAgICAgIF0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnQ3JlYXRlZFVzZXJJRHMgMSBhbmQgMicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgJVNlYXJjaENvbmZpZ1RlbXBsYXRlLAogICAgICAgICAgICBDcmVhdGVkVXNlcklEcyA9PiBbICRBZGRlZFVzZXJzWzBdLCAkQWRkZWRVc2Vyc1sxXSBdLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IFsKICAgICAgICAgICAgJEFkZGVkRkFRc1swXSwKICAgICAgICAgICAgJEFkZGVkRkFRc1sxXSwKICAgICAgICBdLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ1dyb25nIENyZWF0ZWRVc2VySURzIEZvcm1hdCcsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgJVNlYXJjaENvbmZpZ1RlbXBsYXRlLAogICAgICAgICAgICBDcmVhdGVkVXNlcklEcyA9PiAkQWRkZWRVc2Vyc1swXSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiBbCiAgICAgICAgICAgICRBZGRlZEZBUXNbMF0sCiAgICAgICAgICAgICRBZGRlZEZBUXNbMV0sCiAgICAgICAgXSwKICAgIH0sCik7CgojIGxhc3QgY2hhbmdlZCB1c2VyIHRlc3RzCkBUZXN0cyA9ICgKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0xhc3RDaGFuZ2VkVXNlcklEcyAzJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICAlU2VhcmNoQ29uZmlnVGVtcGxhdGUsCiAgICAgICAgICAgIExhc3RDaGFuZ2VkVXNlcklEcyA9PiBbICRBZGRlZFVzZXJzWzJdIF0sCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gWwogICAgICAgICAgICAkQWRkZWRGQVFzWzBdLAogICAgICAgIF0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnTGFzdENoYW5nZWRVc2VySURzIDQnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgICVTZWFyY2hDb25maWdUZW1wbGF0ZSwKICAgICAgICAgICAgTGFzdENoYW5nZWRVc2VySURzID0+IFsgJEFkZGVkVXNlcnNbM10gXSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiBbCiAgICAgICAgICAgICRBZGRlZEZBUXNbMV0sCiAgICAgICAgXSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdMYXN0Q2hhbmdlZFVzZXJJRHMgMyBhbmQgNCcsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgJVNlYXJjaENvbmZpZ1RlbXBsYXRlLAogICAgICAgICAgICBMYXN0Q2hhbmdlZFVzZXJJRHMgPT4gWyAkQWRkZWRVc2Vyc1syXSwgJEFkZGVkVXNlcnNbM10gXSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiBbCiAgICAgICAgICAgICRBZGRlZEZBUXNbMF0sCiAgICAgICAgICAgICRBZGRlZEZBUXNbMV0sCiAgICAgICAgXSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdXcm9uZyBMYXN0Q2hhbmdlZFVzZXJJRHMgRm9ybWF0JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICAlU2VhcmNoQ29uZmlnVGVtcGxhdGUsCiAgICAgICAgICAgIExhc3RDaGFuZ2VkVXNlcklEcyA9PiAkQWRkZWRVc2Vyc1syXSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiBbXSwKICAgIH0sCik7CgojIGV4ZWN1dGUgdGhlIHRlc3RzCmZvciBteSAkVGVzdCAoQFRlc3RzKSB7CgogICAgbXkgQEl0ZW1JRHMgPSAkRkFRT2JqZWN0LT5GQVFTZWFyY2goICV7ICRUZXN0LT57Q29uZmlnfSB9ICk7CgogICAgJFNlbGYtPklzRGVlcGx5KAogICAgICAgIFxASXRlbUlEcywKICAgICAgICAkVGVzdC0+e0V4cGVjdGVkUmVzdWx0c30sCiAgICAgICAgIiRUZXN0LT57TmFtZX0gRkFRU2VhcmNoKCkiLAogICAgKTsKfQoKIyBhcHByb3ZhbCB0ZXN0cwojIHVwZGF0ZSBkYXRhYmFzZSB0byBwcmV2ZW50IGdlbmVyYXRpb24gb2YgYXBwcm92YWwgdGlja2V0CnJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgU1FMID0+ICcKICAgICAgICBVUERBVEUgZmFxX2l0ZW0KICAgICAgICBTRVQgYXBwcm92ZWQgPSA/CiAgICAgICAgV0hFUkUgaWQgPSA/JywKICAgIEJpbmQgPT4gWwogICAgICAgIFwwLAogICAgICAgIFwkQWRkZWRGQVFzWzFdLAogICAgXSwKKTsKCkBUZXN0cyA9ICgKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0FwcHJvdmVkIDEnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgICVTZWFyY2hDb25maWdUZW1wbGF0ZSwKICAgICAgICAgICAgQXBwcm92ZWQgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiBbCiAgICAgICAgICAgICRBZGRlZEZBUXNbMF0sCiAgICAgICAgXSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdBcHByb3ZlZCAwJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICAlU2VhcmNoQ29uZmlnVGVtcGxhdGUsCiAgICAgICAgICAgIEFwcHJvdmVkID0+IDAsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gWwogICAgICAgICAgICAkQWRkZWRGQVFzWzFdLAogICAgICAgIF0sCiAgICB9LAopOwoKIyBleGVjdXRlIHRoZSB0ZXN0cwpmb3IgbXkgJFRlc3QgKEBUZXN0cykgewoKICAgIG15IEBJdGVtSURzID0gJEZBUU9iamVjdC0+RkFRU2VhcmNoKCAleyAkVGVzdC0+e0NvbmZpZ30gfSApOwoKICAgICRTZWxmLT5Jc0RlZXBseSgKICAgICAgICBcQEl0ZW1JRHMsCiAgICAgICAgJFRlc3QtPntFeHBlY3RlZFJlc3VsdHN9LAogICAgICAgICIkVGVzdC0+e05hbWV9IEZBUVNlYXJjaCgpIiwKICAgICk7Cn0KCiMgZXhlY3V0ZSBvbGQgdGVzdHMKJFNlbGYtPlRydWUoCiAgICAxLAogICAgIi0tRXhlY3V0ZSBGb3JtZXIgVGVzdHMtLSIsCik7CnsKICAgIG15ICRJdGVtSUQxID0gJEZBUU9iamVjdC0+RkFRQWRkKAogICAgICAgIENhdGVnb3J5SUQgID0+IDEsCiAgICAgICAgU3RhdGVJRCAgICAgPT4gMiwKICAgICAgICBMYW5ndWFnZUlEICA9PiAyLAogICAgICAgIEFwcHJvdmVkICAgID0+IDEsCiAgICAgICAgVGl0bGUgICAgICAgPT4gJ1NvbWUgVGV4dDInLAogICAgICAgIEtleXdvcmRzICAgID0+ICJzb21lJFJhbmRvbUlEIGtleXdvcmRzMiIsCiAgICAgICAgRmllbGQxICAgICAgPT4gJ1Byb2JsZW0uLi4yJywKICAgICAgICBGaWVsZDIgICAgICA9PiAnU29sdXRpb24gZm91bmQuLi4yJywKICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L2h0bWwnLAogICAgKTsKICAgICRTZWxmLT5UcnVlKAogICAgICAgICRJdGVtSUQxLAogICAgICAgICJGQVFBZGQoKSAtIDEiLAogICAgKTsKCiAgICAjIGFkZCAxIG1pbnV0ZSB0byBmcm96ZW4gdGltZQogICAgJEhlbHBlci0+Rml4ZWRUaW1lQWRkU2Vjb25kcyg2MCk7CgogICAgbXkgJEl0ZW1JRDIgPSAkRkFRT2JqZWN0LT5GQVFBZGQoCiAgICAgICAgVGl0bGUgICAgICAgPT4gJ1RpdGxlJyAuICRSYW5kb21JRCwKICAgICAgICBDYXRlZ29yeUlEICA9PiAxLAogICAgICAgIFN0YXRlSUQgICAgID0+IDEsCiAgICAgICAgTGFuZ3VhZ2VJRCAgPT4gMSwKICAgICAgICBLZXl3b3JkcyAgICA9PiAnJywKICAgICAgICBGaWVsZDEgICAgICA9PiAnUHJvYmxlbSBEZXNjcmlwdGlvbiAxLi4uJywKICAgICAgICBGaWVsZDIgICAgICA9PiAnU29sdXRpb24gbm90IGZvdW5kMS4uLicsCiAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9odG1sJywKICAgICk7CiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkSXRlbUlEMiwKICAgICAgICAiRkFRQWRkKCkgLSAyIiwKICAgICk7CgogICAgIyBhZGQgMSBtaW51dGUgdG8gZnJvemVuIHRpbWUKICAgICRIZWxwZXItPkZpeGVkVGltZUFkZFNlY29uZHMoNjApOwoKICAgIG15ICVLZXl3b3JkcyA9ICgKICAgICAgICBLZXl3b3JkMSA9PiAic29tZTEkUmFuZG9tSUQiLAogICAgICAgIEtleXdvcmQyID0+ICJzb21lMiRSYW5kb21JRCIsCiAgICAgICAgS2V5d29yZDMgPT4gInNvbWUzJFJhbmRvbUlEIiwKICAgICAgICBLZXl3b3JkNCA9PiAic29tZTQkUmFuZG9tSUQiLAogICAgICAgIEtleXdvcmQ1ID0+ICJzb21lNSRSYW5kb21JRCIsCiAgICApOwoKICAgIG15ICRJdGVtSUQzID0gJEZBUU9iamVjdC0+RkFRQWRkKAogICAgICAgIFRpdGxlICAgICAgID0+ICdUZXN0IEZBUS0zJywKICAgICAgICBDYXRlZ29yeUlEICA9PiAxLAogICAgICAgIFN0YXRlSUQgICAgID0+IDEsCiAgICAgICAgTGFuZ3VhZ2VJRCAgPT4gMSwKICAgICAgICBLZXl3b3JkcyAgICA9PiAiJEtleXdvcmRze0tleXdvcmQxfSAkS2V5d29yZHN7S2V5d29yZDJ9ICRLZXl3b3Jkc3tLZXl3b3JkM30gJEtleXdvcmRze0tleXdvcmQ1fSIsCiAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9odG1sJywKICAgICk7CiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkSXRlbUlEMywKICAgICAgICAiRkFRQWRkKCkgLSAzIiwKICAgICk7CgogICAgIyBhZGQgMSBtaW51dGUgdG8gZnJvemVuIHRpbWUKICAgICRIZWxwZXItPkZpeGVkVGltZUFkZFNlY29uZHMoNjApOwoKICAgIG15ICRJdGVtSUQ0ID0gJEZBUU9iamVjdC0+RkFRQWRkKAogICAgICAgIFRpdGxlICAgICAgPT4gJ1Rlc3QgRkFRLTQnLAogICAgICAgIENhdGVnb3J5SUQgPT4gMSwKICAgICAgICBTdGF0ZUlEICAgID0+IDEsCiAgICAgICAgTGFuZ3VhZ2VJRCA9PiAxLAogICAgICAgIEtleXdvcmRzICAgPT4gIiRLZXl3b3Jkc3tLZXl3b3JkMX0sJEtleXdvcmRze0tleXdvcmQyfSwkS2V5d29yZHN7S2V5d29yZDN9LCRLZXl3b3Jkc3tLZXl3b3JkNH0iLAoKICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L2h0bWwnLAogICAgKTsKCiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkSXRlbUlENCwKICAgICAgICAiRkFRQWRkKCkgLSA0IiwKICAgICk7CgogICAgIyBhZGQgMSBtaW51dGUgdG8gZnJvemVuIHRpbWUKICAgICRIZWxwZXItPkZpeGVkVGltZUFkZFNlY29uZHMoNjApOwoKICAgIG15ICRJdGVtSUQ1ID0gJEZBUU9iamVjdC0+RkFRQWRkKAogICAgICAgIFRpdGxlICAgICAgPT4gJ1Rlc3QgRkFRLTUnLAogICAgICAgIENhdGVnb3J5SUQgPT4gMSwKICAgICAgICBTdGF0ZUlEICAgID0+IDEsCiAgICAgICAgTGFuZ3VhZ2VJRCA9PiAxLAogICAgICAgIEtleXdvcmRzICAgPT4gIiRLZXl3b3Jkc3tLZXl3b3JkMX07JEtleXdvcmRze0tleXdvcmQyfTskS2V5d29yZHN7S2V5d29yZDN9OyRLZXl3b3Jkc3tLZXl3b3JkNH0iLAoKICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L2h0bWwnLAogICAgKTsKCiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkSXRlbUlENSwKICAgICAgICAiRkFRQWRkKCkgLSA0IiwKICAgICk7CgogICAgIyByZXN0b3JlIHRpbWUKICAgICRIZWxwZXItPkZpeGVkVGltZVVuc2V0KCk7CgogICAgQFRlc3RzID0gKAogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgID0+ICdLZXl3b3JkcycsCiAgICAgICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgICAgICBXaGF0ICAgID0+ICcqcyonLAogICAgICAgICAgICAgICAgS2V5d29yZCA9PiAic29tZSRSYW5kb21JRCoiLAogICAgICAgICAgICAgICAgT3JkZXJCeSA9PiBbJ1ZvdGVzJ10sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiBbCiAgICAgICAgICAgICAgICAkSXRlbUlEMSwKICAgICAgICAgICAgXSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgID0+ICdLZXl3b3JkcyB3aXRoIHNwYWNlcyAtIGFsbCcsCiAgICAgICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgICAgICBLZXl3b3JkID0+ICIkS2V5d29yZHN7S2V5d29yZDF9ICRLZXl3b3Jkc3tLZXl3b3JkMn0iLAogICAgICAgICAgICB9LAogICAgICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gWwogICAgICAgICAgICAgICAgJEl0ZW1JRDMsCiAgICAgICAgICAgICAgICAkSXRlbUlENCwKICAgICAgICAgICAgICAgICRJdGVtSUQ1LAogICAgICAgICAgICBdLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgPT4gJ0tleXdvcmRzIHdpdGggY29tbWEgLSBhbGwnLAogICAgICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICAgICAgS2V5d29yZCA9PiAiJEtleXdvcmRze0tleXdvcmQyfSwkS2V5d29yZHN7S2V5d29yZDF9IiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IFsKICAgICAgICAgICAgICAgICRJdGVtSUQzLAogICAgICAgICAgICAgICAgJEl0ZW1JRDQsCiAgICAgICAgICAgICAgICAkSXRlbUlENSwKICAgICAgICAgICAgXSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgID0+ICdLZXl3b3JkcyB3aXRoIHNlbWljb2xvbiAtIGFsbCcsCiAgICAgICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgICAgICBLZXl3b3JkID0+ICIkS2V5d29yZHN7S2V5d29yZDF9OyRLZXl3b3Jkc3tLZXl3b3JkMn0iLAogICAgICAgICAgICB9LAogICAgICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gWwogICAgICAgICAgICAgICAgJEl0ZW1JRDMsCiAgICAgICAgICAgICAgICAkSXRlbUlENCwKICAgICAgICAgICAgICAgICRJdGVtSUQ1LAogICAgICAgICAgICBdLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgPT4gJ0tleXdvcmRzMSBLZXl3b3JkczMgIHdpdGggc3BhY2VzIC0gYWxsJywKICAgICAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgICAgIEtleXdvcmQgPT4gIiRLZXl3b3Jkc3tLZXl3b3JkMX0gJEtleXdvcmRze0tleXdvcmQzfSIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiBbCiAgICAgICAgICAgICAgICAkSXRlbUlEMywKICAgICAgICAgICAgICAgICRJdGVtSUQ0LAogICAgICAgICAgICAgICAgJEl0ZW1JRDUsCiAgICAgICAgICAgIF0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnS2V5d29yZHMxIEtleXdvcmRzMyB3aXRoIGNvbW1hIC0gYWxsJywKICAgICAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgICAgIEtleXdvcmQgPT4gIiRLZXl3b3Jkc3tLZXl3b3JkMX0sJEtleXdvcmRze0tleXdvcmQzfSIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiBbCiAgICAgICAgICAgICAgICAkSXRlbUlEMywKICAgICAgICAgICAgICAgICRJdGVtSUQ0LAogICAgICAgICAgICAgICAgJEl0ZW1JRDUsCiAgICAgICAgICAgIF0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnS2V5d29yZHMxIEtleXdvcmRzMyB3aXRoIHNlbWljb2xvbiAtIGFsbCcsCiAgICAgICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgICAgICBLZXl3b3JkID0+ICIkS2V5d29yZHN7S2V5d29yZDF9OyRLZXl3b3Jkc3tLZXl3b3JkM30iLAogICAgICAgICAgICB9LAogICAgICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gWwogICAgICAgICAgICAgICAgJEl0ZW1JRDMsCiAgICAgICAgICAgICAgICAkSXRlbUlENCwKICAgICAgICAgICAgICAgICRJdGVtSUQ1LAogICAgICAgICAgICBdLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgPT4gJ0tleXdvcmRzIGNvbW1vbiBrZXl3b3JkJywKICAgICAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgICAgIEtleXdvcmQgPT4gJEtleXdvcmRze0tleXdvcmQzfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IFsKICAgICAgICAgICAgICAgICRJdGVtSUQzLAogICAgICAgICAgICAgICAgJEl0ZW1JRDQsCiAgICAgICAgICAgICAgICAkSXRlbUlENSwKICAgICAgICAgICAgXSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgID0+ICdLZXl3b3JkcyBjb21tb24ga2V5d29yZCB3aXRoIHdpbGRjYXJkcycsCiAgICAgICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgICAgICBLZXl3b3JkID0+ICcqJyAuICRLZXl3b3Jkc3tLZXl3b3JkM30gLiAnKicsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiBbCiAgICAgICAgICAgICAgICAkSXRlbUlEMywKICAgICAgICAgICAgICAgICRJdGVtSUQ0LAogICAgICAgICAgICAgICAgJEl0ZW1JRDUsCiAgICAgICAgICAgIF0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnS2V5d29yZHMgb25seSBLZXl3b3JkNScsCiAgICAgICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgICAgICBLZXl3b3JkID0+ICRLZXl3b3Jkc3tLZXl3b3JkNX0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiBbCiAgICAgICAgICAgICAgICAkSXRlbUlEMywKICAgICAgICAgICAgXSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgID0+ICdLZXl3b3JkcyBvbmx5IEtleXdvcmQ0JywKICAgICAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgICAgIEtleXdvcmQgPT4gJEtleXdvcmRze0tleXdvcmQ0fSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IFsKICAgICAgICAgICAgICAgICRJdGVtSUQ0LAogICAgICAgICAgICAgICAgJEl0ZW1JRDUsCiAgICAgICAgICAgIF0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnS2V5d29yZHMgb25seSBLZXl3b3JkNSAtIHVwcGVyY2FzZSBzdHJpbmcnLAogICAgICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICAgICAgS2V5d29yZCA9PiB1YyAkS2V5d29yZHN7S2V5d29yZDV9LAogICAgICAgICAgICB9LAogICAgICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gWwogICAgICAgICAgICAgICAgJEl0ZW1JRDMsCiAgICAgICAgICAgIF0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnS2V5d29yZHMgb25seSBLZXl3b3JkNCAtIGZpcnN0IGNoYXJhY3RlciB1cHBlcmNhc2UnLAogICAgICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICAgICAgS2V5d29yZCA9PiB1Y2ZpcnN0ICRLZXl3b3Jkc3tLZXl3b3JkNH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiBbCiAgICAgICAgICAgICAgICAkSXRlbUlENCwKICAgICAgICAgICAgICAgICRJdGVtSUQ1LAogICAgICAgICAgICBdLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgPT4gJ1RpdGxlJywKICAgICAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgICAgIFRpdGxlID0+ICd0SVRMZScgLiAkUmFuZG9tSUQsCgogICAgICAgICAgICAgICAgV2hhdCAgICA9PiAnbCcsCiAgICAgICAgICAgICAgICBPcmRlckJ5ID0+IFsnQ3JlYXRlZCddLAogICAgICAgICAgICB9LAogICAgICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gWwogICAgICAgICAgICAgICAgJEl0ZW1JRDIsCiAgICAgICAgICAgIF0sCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnV2hhdCAoTGl0ZXJhbCknLAogICAgICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICAgICAgVGl0bGUgICA9PiAnJywKICAgICAgICAgICAgICAgIFdoYXQgICAgPT4gJ3NvbHV0aW9uIGZvdW5kJywKICAgICAgICAgICAgICAgIE9yZGVyQnkgPT4gWydDcmVhdGVkJ10sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiBbCiAgICAgICAgICAgICAgICAkSXRlbUlEMSwKICAgICAgICAgICAgXSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgID0+ICdXaGF0IChBTkQpJywKICAgICAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgICAgIFRpdGxlICAgPT4gJycsCiAgICAgICAgICAgICAgICBXaGF0ICAgID0+ICdzb2x1dGlvbitmb3VuZCcsCiAgICAgICAgICAgICAgICBPcmRlckJ5ID0+IFsnQ3JlYXRlZCddLAogICAgICAgICAgICB9LAogICAgICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gWwogICAgICAgICAgICAgICAgJEl0ZW1JRDEsCiAgICAgICAgICAgICAgICAkSXRlbUlEMiwKICAgICAgICAgICAgXSwKICAgICAgICB9LAogICAgKTsKCiAgICBmb3IgbXkgJFRlc3QgKEBUZXN0cykgewoKICAgICAgICBteSBASXRlbUlEcyA9ICRGQVFPYmplY3QtPkZBUVNlYXJjaCgKICAgICAgICAgICAgTnVtYmVyICAgICAgICAgICA9PiAnKicsCiAgICAgICAgICAgIFN0YXRlcyAgICAgICAgICAgPT4gWyAncHVibGljJywgJ2ludGVybmFsJyBdLAogICAgICAgICAgICBPcmRlckJ5RGlyZWN0aW9uID0+IFsnVXAnXSwKICAgICAgICAgICAgTGltaXQgICAgICAgICAgICA9PiAxNTAsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgJXsgJFRlc3QtPntDb25maWd9IH0sCiAgICAgICAgKTsKCiAgICAgICAgJFNlbGYtPklzRGVlcGx5KAogICAgICAgICAgICBcQEl0ZW1JRHMsCiAgICAgICAgICAgICRUZXN0LT57RXhwZWN0ZWRSZXN1bHRzfSwKICAgICAgICAgICAgIiRUZXN0LT57TmFtZX0sIEZBUVNlYXJjaCgpIiwKICAgICAgICApOwogICAgfQp9CgojIGNsZWFudXAgaXMgZG9uZSBieSByZXN0b3JlIGRhdGFiYXNlCgoxOwo=</File>
        <File Location="scripts/test/FAQ/RelatedArticle.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgJFNlbGY7CgokS2VybmVsOjpPTS0+T2JqZWN0UGFyYW1BZGQoCiAgICAnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInID0+IHsKICAgICAgICBSZXN0b3JlRGF0YWJhc2UgPT4gMSwKICAgIH0sCik7Cm15ICRIZWxwZXIgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwpteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKbXkgJFVzZXJPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7Cm15ICRGQVFPYmplY3QgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RkFRJyk7CgojIHNldCBjb25maWcgb3B0aW9ucwokQ29uZmlnT2JqZWN0LT5TZXQoCiAgICBLZXkgICA9PiAnRkFROjpBcHByb3ZhbFJlcXVpcmVkJywKICAgIFZhbHVlID0+IDAsCik7CgokQ29uZmlnT2JqZWN0LT5TZXQoCiAgICBLZXkgICA9PiAnQ3VzdG9tZXJHcm91cFN1cHBvcnQnLAogICAgVmFsdWUgPT4gMCwKKTsKCm15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICBHcm91cHMgPT4gWyAndXNlcnMnLCBdLAopOwpteSAkVGVzdFVzZXJJRCA9ICRVc2VyT2JqZWN0LT5Vc2VyTG9va3VwKAogICAgVXNlckxvZ2luID0+ICRUZXN0VXNlckxvZ2luLAopOwoKbXkgJEFkbWluVXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICBHcm91cHMgPT4gWyAnYWRtaW4nLCAndXNlcnMnIF0sCik7Cm15ICRBZG1pblVzZXJJRCA9ICRVc2VyT2JqZWN0LT5Vc2VyTG9va3VwKAogICAgVXNlckxvZ2luID0+ICRBZG1pblVzZXJMb2dpbiwKKTsKCiMgY3JlYXRlIHNvbWUgY3VzdG9tZXIgdXNlcnMKbXkgQEN1c3RvbWVyVXNlcnM7CmZvciAoIDAgLi4gMSApIHsKICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdEN1c3RvbWVyVXNlckNyZWF0ZSgpOwogICAgcHVzaCBAQ3VzdG9tZXJVc2VycywgJFRlc3RVc2VyTG9naW47Cn0KCm15ICRSYW5kb21OdW1iZXIgPSAkSGVscGVyLT5HZXRSYW5kb21OdW1iZXIoKTsKCm15ICVTdGF0ZUxpc3QgPSAkRkFRT2JqZWN0LT5TdGF0ZUxpc3QoCiAgICBVc2VySUQgPT4gJEFkbWluVXNlcklELAopOwpteSAlUmV2ZXJzZVN0YXRlTGlzdCA9IHJldmVyc2UgJVN0YXRlTGlzdDsKCiMgQ2FsbCB0aGlzIGZ1bmN0aW9uIGF0IHRoZSBiZWdpbm5pbmcsIHRvIGNoZWNrIGlmIHRoZSBjYWNoZSBjbGVhbnVwIHdvcmtzIGNvcnJlY3RseSBhZnRlciBuZXcgYXJ0aWNsZSB3YXMgY3JlYXRlZC4KJEZBUU9iamVjdC0+RkFRS2V5d29yZEFydGljbGVMaXN0KAogICAgQ3VzdG9tZXJVc2VyID0+ICRDdXN0b21lclVzZXJzWzBdLAogICAgVXNlcklEICAgICAgID0+ICRBZG1pblVzZXJJRCwKKTsKCiMgZGVmaW5lIHRoZSB0aWNrZXRzIGZvciB0aGUgc3RhdGlzdGljIHJlc3VsdCB0ZXN0cwpteSBARkFRSXRlbXMgPSAoCiAgICB7CiAgICAgICAgVGl0bGUgICAgICA9PiAnU29tZSBUZXh0JywKICAgICAgICBDYXRlZ29yeUlEID0+IDEsCiAgICAgICAgU3RhdGVJRCAgICA9PiAkUmV2ZXJzZVN0YXRlTGlzdHsnZXh0ZXJuYWwgKGN1c3RvbWVyKSd9LCAgICAjICdleHRlcm5hbCcKICAgICAgICBMYW5ndWFnZUlEID0+IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgJ2VuJwogICAgICAgIEtleXdvcmRzICAgPT4KICAgICAgICAgICAgInRpY2tldCRSYW5kb21OdW1iZXIga2V5d29yZCRSYW5kb21OdW1iZXIgaXRzbSRSYW5kb21OdW1iZXIgZXhhbXBsZSRSYW5kb21OdW1iZXIgJFJhbmRvbU51bWJlci4kUmFuZG9tTnVtYmVyIiwKICAgICAgICBGaWVsZDEgICAgICA9PiAnUHJvYmxlbS4uLicsCiAgICAgICAgRmllbGQyICAgICAgPT4gJ1NvbHV0aW9uLi4uJywKICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9odG1sJywKICAgICAgICBVc2VySUQgICAgICA9PiAkQWRtaW5Vc2VySUQsCiAgICB9LAogICAgewogICAgICAgIFRpdGxlICAgICAgID0+ICdTb21lIFRleHQgRXhhbXBsZScsCiAgICAgICAgQ2F0ZWdvcnlJRCAgPT4gMSwKICAgICAgICBTdGF0ZUlEICAgICA9PiAkUmV2ZXJzZVN0YXRlTGlzdHsnZXh0ZXJuYWwgKGN1c3RvbWVyKSd9LCAgICAjICdleHRlcm5hbCcKICAgICAgICBMYW5ndWFnZUlEICA9PiAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICdlbicKICAgICAgICBLZXl3b3JkcyAgICA9PiAiZmFxJFJhbmRvbU51bWJlciBrZXl3b3JkJFJhbmRvbU51bWJlciIsCiAgICAgICAgRmllbGQxICAgICAgPT4gJ1Byb2JsZW0uLi4nLAogICAgICAgIEZpZWxkMiAgICAgID0+ICdTb2x1dGlvbi4uLicsCiAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvaHRtbCcsCiAgICAgICAgVXNlcklEICAgICAgPT4gJEFkbWluVXNlcklELAogICAgfSwKICAgIHsKICAgICAgICBUaXRsZSAgICAgICA9PiAnU29tZSBUZXh0IEV4YW1wbGUnLAogICAgICAgIENhdGVnb3J5SUQgID0+IDEsCiAgICAgICAgU3RhdGVJRCAgICAgPT4gJFJldmVyc2VTdGF0ZUxpc3R7J2V4dGVybmFsIChjdXN0b21lciknfSwgICAgICAgICAgICAgICAgICAgICMgJ2V4dGVybmFsJwogICAgICAgIExhbmd1YWdlSUQgID0+IDIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICdkZScKICAgICAgICBLZXl3b3JkcyAgICA9PiAiZmFxJFJhbmRvbU51bWJlciBrZXl3b3JkJFJhbmRvbU51bWJlciBJdFNtJFJhbmRvbU51bWJlciIsCiAgICAgICAgRmllbGQxICAgICAgPT4gJ1Byb2JsZW0uLi4nLAogICAgICAgIEZpZWxkMiAgICAgID0+ICdTb2x1dGlvbi4uLicsCiAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvaHRtbCcsCiAgICAgICAgVXNlcklEICAgICAgPT4gJEFkbWluVXNlcklELAogICAgfSwKICAgIHsKICAgICAgICBUaXRsZSAgICAgICA9PiAnU29tZSBUZXh0IFB1YmxpYycsCiAgICAgICAgQ2F0ZWdvcnlJRCAgPT4gMSwKICAgICAgICBTdGF0ZUlEICAgICA9PiAkUmV2ZXJzZVN0YXRlTGlzdHsncHVibGljIChhbGwpJ30sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICdwdWJsaWMnCiAgICAgICAgTGFuZ3VhZ2VJRCAgPT4gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAnZW4nCiAgICAgICAgS2V5d29yZHMgICAgPT4gIkZBUSRSYW5kb21OdW1iZXIga2V5d29yZCRSYW5kb21OdW1iZXIgcHVibGljJFJhbmRvbU51bWJlciIsCiAgICAgICAgRmllbGQxICAgICAgPT4gJ1Byb2JsZW0uLi4nLAogICAgICAgIEZpZWxkMiAgICAgID0+ICdTb2x1dGlvbi4uLicsCiAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvaHRtbCcsCiAgICAgICAgVXNlcklEICAgICAgPT4gJEFkbWluVXNlcklELAogICAgfSwKICAgIHsKICAgICAgICBUaXRsZSAgICAgICA9PiAnU29tZSBUZXh0IEludGVybmFsJywKICAgICAgICBDYXRlZ29yeUlEICA9PiAxLAogICAgICAgIFN0YXRlSUQgICAgID0+ICRSZXZlcnNlU3RhdGVMaXN0eydpbnRlcm5hbCAoYWdlbnQpJ30sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAnaW50ZXJuYWwnCiAgICAgICAgTGFuZ3VhZ2VJRCAgPT4gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICdlbicKICAgICAgICBLZXl3b3JkcyAgICA9PiAidGlja2V0JFJhbmRvbU51bWJlciBLZXlXb3JkJFJhbmRvbU51bWJlciBpVHNtJFJhbmRvbU51bWJlciBpbnRlcm5hbCRSYW5kb21OdW1iZXIiLAogICAgICAgIEZpZWxkMSAgICAgID0+ICdQcm9ibGVtLi4uJywKICAgICAgICBGaWVsZDIgICAgICA9PiAnU29sdXRpb24uLi4nLAogICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L2h0bWwnLAogICAgICAgIFVzZXJJRCAgICAgID0+ICRBZG1pblVzZXJJRCwKICAgIH0sCiAgICB7CiAgICAgICAgVGl0bGUgICAgICAgPT4gJ1NvbWUgVGV4dCBJbnRlcm5hbCcsCiAgICAgICAgQ2F0ZWdvcnlJRCAgPT4gMSwKICAgICAgICBTdGF0ZUlEICAgICA9PiAkUmV2ZXJzZVN0YXRlTGlzdHsnaW50ZXJuYWwgKGFnZW50KSd9LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgJ2ludGVybmFsJwogICAgICAgIExhbmd1YWdlSUQgID0+IDIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAnZW4nCiAgICAgICAgS2V5d29yZHMgICAgPT4gInRpY2tldCRSYW5kb21OdW1iZXIgS2V5V29yZCRSYW5kb21OdW1iZXIgaVRzbSRSYW5kb21OdW1iZXIgaW50ZXJuYWwkUmFuZG9tTnVtYmVyIiwKICAgICAgICBGaWVsZDEgICAgICA9PiAnUHJvYmxlbS4uLicsCiAgICAgICAgRmllbGQyICAgICAgPT4gJ1NvbHV0aW9uLi4uJywKICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9odG1sJywKICAgICAgICBVc2VySUQgICAgICA9PiAkQWRtaW5Vc2VySUQsCiAgICB9LAogICAgewogICAgICAgIFRpdGxlICAgICAgID0+ICdTb21lIFRleHQgSW50ZXJuYWwnLAogICAgICAgIENhdGVnb3J5SUQgID0+IDEsCiAgICAgICAgU3RhdGVJRCAgICAgPT4gJFJldmVyc2VTdGF0ZUxpc3R7J2ludGVybmFsIChhZ2VudCknfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICdpbnRlcm5hbCcKICAgICAgICBMYW5ndWFnZUlEICA9PiAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgJ2VuJwogICAgICAgIEtleXdvcmRzICAgID0+ICJmYXEkUmFuZG9tTnVtYmVyIiwKICAgICAgICBGaWVsZDEgICAgICA9PiAnUHJvYmxlbS4uLicsCiAgICAgICAgRmllbGQyICAgICAgPT4gJ1NvbHV0aW9uLi4uJywKICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9odG1sJywKICAgICAgICBVc2VySUQgICAgICA9PiAkQWRtaW5Vc2VySUQsCiAgICB9LAopOwoKIyBDcmVhdGUgc29tZSBmYXEgaXRlbXMgZm9yIHRoZSB0ZXN0LgpteSBARkFRSXRlbUlEczsKCkZBUUlURU06CmZvciBteSAkRkFRSXRlbSAoQEZBUUl0ZW1zKSB7CgogICAgbXkgJEZBUUl0ZW1JRCA9ICRGQVFPYmplY3QtPkZBUUFkZCgKICAgICAgICAleyRGQVFJdGVtfSwKICAgICk7CgogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJEZBUUl0ZW1JRCwKICAgICAgICAiRkFRQWRkKCkgc3VjY2Vzc2Z1bCBmb3IgdGVzdCAtIEZBUUl0ZW1JRCAkRkFRSXRlbUlEIiwKICAgICk7CgogICAgcHVzaCBARkFRSXRlbUlEcywgJEZBUUl0ZW1JRDsKfQoKIyBEZWZpbmUgc29tZSB0ZXN0IGZvciB0aGUgZnVuY3Rpb24gJ0ZBUUtleXdvcmRBcnRpY2xlTGlzdCcuCm15IEBUZXN0cyA9ICgKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiAgICAgICAgICAgPT4gJ1Rlc3QgZG9lcyBub3QgY29udGFpbiBhbGwgbmVjZXNzYXJ5IGRhdGEgZm9yIEZBUUtleXdvcmRBcnRpY2xlTGlzdCcsCiAgICAgICAgRmFpbHMgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgRkFRS2V5d29yZEFydGljbGVMaXN0ID0+IHt9LAogICAgICAgIFJlZmVyZW5jZURhdGEgICAgICAgICA9PiB7fSwKICAgIH0sCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gICAgICAgICAgID0+ICdUZXN0IHdpdGggYSBjdXN0b21lciB1c2VyIGZvciBGQVFLZXl3b3JkQXJ0aWNsZUxpc3QnLAogICAgICAgIEZBUUtleXdvcmRBcnRpY2xlTGlzdCA9PiB7CiAgICAgICAgICAgIEN1c3RvbWVyVXNlciA9PiAkQ3VzdG9tZXJVc2Vyc1swXSwKICAgICAgICAgICAgVXNlcklEICAgICAgID0+ICRBZG1pblVzZXJJRCwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICAiJFJhbmRvbU51bWJlci4kUmFuZG9tTnVtYmVyIiA9PiBbCiAgICAgICAgICAgICAgICAkRkFRSXRlbUlEc1swXSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgImV4YW1wbGUkUmFuZG9tTnVtYmVyIiA9PiBbCiAgICAgICAgICAgICAgICAkRkFRSXRlbUlEc1swXSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgImZhcSRSYW5kb21OdW1iZXIiID0+IFsKICAgICAgICAgICAgICAgICRGQVFJdGVtSURzWzNdLAogICAgICAgICAgICAgICAgJEZBUUl0ZW1JRHNbMl0sCiAgICAgICAgICAgICAgICAkRkFRSXRlbUlEc1sxXSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIml0c20kUmFuZG9tTnVtYmVyIiA9PiBbCiAgICAgICAgICAgICAgICAkRkFRSXRlbUlEc1syXSwKICAgICAgICAgICAgICAgICRGQVFJdGVtSURzWzBdLAogICAgICAgICAgICBdLAogICAgICAgICAgICAia2V5d29yZCRSYW5kb21OdW1iZXIiID0+IFsKICAgICAgICAgICAgICAgICRGQVFJdGVtSURzWzNdLAogICAgICAgICAgICAgICAgJEZBUUl0ZW1JRHNbMl0sCiAgICAgICAgICAgICAgICAkRkFRSXRlbUlEc1sxXSwKICAgICAgICAgICAgICAgICRGQVFJdGVtSURzWzBdLAogICAgICAgICAgICBdLAogICAgICAgICAgICAicHVibGljJFJhbmRvbU51bWJlciIgPT4gWwogICAgICAgICAgICAgICAgJEZBUUl0ZW1JRHNbM10sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJ0aWNrZXQkUmFuZG9tTnVtYmVyIiA9PiBbCiAgICAgICAgICAgICAgICAkRkFRSXRlbUlEc1swXSwKICAgICAgICAgICAgXSwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiAgICAgICAgICAgPT4gIlRlc3Qgd2l0aCBhIGN1c3RvbWVyIHVzZXIsIGJ1dCBvbmx5IHdpdGggbGFuZ3VhZ2UgJ2VuJyBmb3IgRkFRS2V5d29yZEFydGljbGVMaXN0IiwKICAgICAgICBGQVFLZXl3b3JkQXJ0aWNsZUxpc3QgPT4gewogICAgICAgICAgICBDdXN0b21lclVzZXIgPT4gJEN1c3RvbWVyVXNlcnNbMF0sCiAgICAgICAgICAgIExhbmd1YWdlcyAgICA9PiBbJ2VuJ10sCiAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAkQWRtaW5Vc2VySUQsCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgImV4YW1wbGUkUmFuZG9tTnVtYmVyIiA9PiBbCiAgICAgICAgICAgICAgICAkRkFRSXRlbUlEc1swXSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgImZhcSRSYW5kb21OdW1iZXIiID0+IFsKICAgICAgICAgICAgICAgICRGQVFJdGVtSURzWzNdLAogICAgICAgICAgICAgICAgJEZBUUl0ZW1JRHNbMV0sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJpdHNtJFJhbmRvbU51bWJlciIgPT4gWwogICAgICAgICAgICAgICAgJEZBUUl0ZW1JRHNbMF0sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJrZXl3b3JkJFJhbmRvbU51bWJlciIgPT4gWwogICAgICAgICAgICAgICAgJEZBUUl0ZW1JRHNbM10sCiAgICAgICAgICAgICAgICAkRkFRSXRlbUlEc1sxXSwKICAgICAgICAgICAgICAgICRGQVFJdGVtSURzWzBdLAogICAgICAgICAgICBdLAogICAgICAgICAgICAicHVibGljJFJhbmRvbU51bWJlciIgPT4gWwogICAgICAgICAgICAgICAgJEZBUUl0ZW1JRHNbM10sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJ0aWNrZXQkUmFuZG9tTnVtYmVyIiA9PiBbCiAgICAgICAgICAgICAgICAkRkFRSXRlbUlEc1swXSwKICAgICAgICAgICAgXSwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiAgICAgICAgICAgPT4gIlRlc3Qgd2l0aCBhIGN1c3RvbWVyIHVzZXIsIGJ1dCBvbmx5IHdpdGggbGFuZ3VhZ2UgJ2RlJyBmb3IgRkFRS2V5d29yZEFydGljbGVMaXN0IiwKICAgICAgICBGQVFLZXl3b3JkQXJ0aWNsZUxpc3QgPT4gewogICAgICAgICAgICBDdXN0b21lclVzZXIgPT4gJEN1c3RvbWVyVXNlcnNbMF0sCiAgICAgICAgICAgIExhbmd1YWdlcyAgICA9PiBbJ2RlJ10sCiAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAkQWRtaW5Vc2VySUQsCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgImZhcSRSYW5kb21OdW1iZXIiID0+IFsKICAgICAgICAgICAgICAgICRGQVFJdGVtSURzWzJdLAogICAgICAgICAgICBdLAogICAgICAgICAgICAiaXRzbSRSYW5kb21OdW1iZXIiID0+IFsKICAgICAgICAgICAgICAgICRGQVFJdGVtSURzWzJdLAogICAgICAgICAgICBdLAogICAgICAgICAgICAia2V5d29yZCRSYW5kb21OdW1iZXIiID0+IFsKICAgICAgICAgICAgICAgICRGQVFJdGVtSURzWzJdLAogICAgICAgICAgICBdLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIERlc2NyaXB0aW9uICAgICAgICAgICA9PiAiVGVzdCB3aXRoIGEgY3VzdG9tZXIgdXNlciB3aXRoIGxhbmd1YWdlICdlbicgYW5kICdkZScgZm9yIEZBUUtleXdvcmRBcnRpY2xlTGlzdCIsCiAgICAgICAgRkFRS2V5d29yZEFydGljbGVMaXN0ID0+IHsKICAgICAgICAgICAgQ3VzdG9tZXJVc2VyID0+ICRDdXN0b21lclVzZXJzWzBdLAogICAgICAgICAgICBMYW5ndWFnZXMgICAgPT4gWyAnZW4nLCAnZGUnIF0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAkQWRtaW5Vc2VySUQsCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgImV4YW1wbGUkUmFuZG9tTnVtYmVyIiA9PiBbCiAgICAgICAgICAgICAgICAkRkFRSXRlbUlEc1swXSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgImZhcSRSYW5kb21OdW1iZXIiID0+IFsKICAgICAgICAgICAgICAgICRGQVFJdGVtSURzWzNdLAogICAgICAgICAgICAgICAgJEZBUUl0ZW1JRHNbMl0sCiAgICAgICAgICAgICAgICAkRkFRSXRlbUlEc1sxXSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIml0c20kUmFuZG9tTnVtYmVyIiA9PiBbCiAgICAgICAgICAgICAgICAkRkFRSXRlbUlEc1syXSwKICAgICAgICAgICAgICAgICRGQVFJdGVtSURzWzBdLAogICAgICAgICAgICBdLAogICAgICAgICAgICAia2V5d29yZCRSYW5kb21OdW1iZXIiID0+IFsKICAgICAgICAgICAgICAgICRGQVFJdGVtSURzWzNdLAogICAgICAgICAgICAgICAgJEZBUUl0ZW1JRHNbMl0sCiAgICAgICAgICAgICAgICAkRkFRSXRlbUlEc1sxXSwKICAgICAgICAgICAgICAgICRGQVFJdGVtSURzWzBdLAogICAgICAgICAgICBdLAogICAgICAgICAgICAicHVibGljJFJhbmRvbU51bWJlciIgPT4gWwogICAgICAgICAgICAgICAgJEZBUUl0ZW1JRHNbM10sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJ0aWNrZXQkUmFuZG9tTnVtYmVyIiA9PiBbCiAgICAgICAgICAgICAgICAkRkFRSXRlbUlEc1swXSwKICAgICAgICAgICAgXSwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiAgICAgICAgICAgPT4gIlRlc3Qgd2l0aCBhIHRlc3QgdXNlciwgYnV0IG9ubHkgd2l0aCBsYW5ndWFnZSAnZW4nIGZvciBGQVFLZXl3b3JkQXJ0aWNsZUxpc3QiLAogICAgICAgIEZBUUtleXdvcmRBcnRpY2xlTGlzdCA9PiB7CiAgICAgICAgICAgIExhbmd1YWdlcyA9PiBbJ2VuJ10sCiAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICAiJFJhbmRvbU51bWJlci4kUmFuZG9tTnVtYmVyIiA9PiBbCiAgICAgICAgICAgICAgICAkRkFRSXRlbUlEc1swXSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgImV4YW1wbGUkUmFuZG9tTnVtYmVyIiA9PiBbCiAgICAgICAgICAgICAgICAkRkFRSXRlbUlEc1swXSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgImZhcSRSYW5kb21OdW1iZXIiID0+IFsKICAgICAgICAgICAgICAgICRGQVFJdGVtSURzWzZdLAogICAgICAgICAgICAgICAgJEZBUUl0ZW1JRHNbM10sCiAgICAgICAgICAgICAgICAkRkFRSXRlbUlEc1sxXSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIml0c20kUmFuZG9tTnVtYmVyIiA9PiBbCiAgICAgICAgICAgICAgICAkRkFRSXRlbUlEc1s0XSwKICAgICAgICAgICAgICAgICRGQVFJdGVtSURzWzBdLAogICAgICAgICAgICBdLAogICAgICAgICAgICAia2V5d29yZCRSYW5kb21OdW1iZXIiID0+IFsKICAgICAgICAgICAgICAgICRGQVFJdGVtSURzWzRdLAogICAgICAgICAgICAgICAgJEZBUUl0ZW1JRHNbM10sCiAgICAgICAgICAgICAgICAkRkFRSXRlbUlEc1sxXSwKICAgICAgICAgICAgICAgICRGQVFJdGVtSURzWzBdLAogICAgICAgICAgICBdLAogICAgICAgICAgICAicHVibGljJFJhbmRvbU51bWJlciIgPT4gWwogICAgICAgICAgICAgICAgJEZBUUl0ZW1JRHNbM10sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJpbnRlcm5hbCRSYW5kb21OdW1iZXIiID0+IFsKICAgICAgICAgICAgICAgICRGQVFJdGVtSURzWzRdLAogICAgICAgICAgICBdLAogICAgICAgICAgICAidGlja2V0JFJhbmRvbU51bWJlciIgPT4gWwogICAgICAgICAgICAgICAgJEZBUUl0ZW1JRHNbNF0sCiAgICAgICAgICAgICAgICAkRkFRSXRlbUlEc1swXSwKICAgICAgICAgICAgXSwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiAgICAgICAgICAgPT4gIlRlc3Qgd2l0aCBhIHRlc3QgdXNlciwgYnV0IG9ubHkgd2l0aCBsYW5ndWFnZSAnZGUnIGZvciBGQVFLZXl3b3JkQXJ0aWNsZUxpc3QiLAogICAgICAgIEZBUUtleXdvcmRBcnRpY2xlTGlzdCA9PiB7CiAgICAgICAgICAgIExhbmd1YWdlcyA9PiBbJ2RlJ10sCiAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gewogICAgICAgICAgICAiZmFxJFJhbmRvbU51bWJlciIgPT4gWwogICAgICAgICAgICAgICAgJEZBUUl0ZW1JRHNbMl0sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJpdHNtJFJhbmRvbU51bWJlciIgPT4gWwogICAgICAgICAgICAgICAgJEZBUUl0ZW1JRHNbNV0sCiAgICAgICAgICAgICAgICAkRkFRSXRlbUlEc1syXSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgImtleXdvcmQkUmFuZG9tTnVtYmVyIiA9PiBbCiAgICAgICAgICAgICAgICAkRkFRSXRlbUlEc1s1XSwKICAgICAgICAgICAgICAgICRGQVFJdGVtSURzWzJdLAogICAgICAgICAgICBdLAogICAgICAgICAgICAiaW50ZXJuYWwkUmFuZG9tTnVtYmVyIiA9PiBbCiAgICAgICAgICAgICAgICAkRkFRSXRlbUlEc1s1XSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgInRpY2tldCRSYW5kb21OdW1iZXIiID0+IFsKICAgICAgICAgICAgICAgICRGQVFJdGVtSURzWzVdLAogICAgICAgICAgICBdLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIERlc2NyaXB0aW9uICAgICAgICAgICA9PiAiVGVzdCB3aXRoIGEgdGVzdCB1c2VyIHdpdGggbGFuZ3VhZ2UgJ2VuJyBhbmQgJ2RlJyBmb3IgRkFRS2V5d29yZEFydGljbGVMaXN0IiwKICAgICAgICBGQVFLZXl3b3JkQXJ0aWNsZUxpc3QgPT4gewogICAgICAgICAgICBMYW5ndWFnZXMgPT4gWyAnZW4nLCAnZGUnIF0sCiAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkQWRtaW5Vc2VySUQsCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IHsKICAgICAgICAgICAgImV4YW1wbGUkUmFuZG9tTnVtYmVyIiA9PiBbCiAgICAgICAgICAgICAgICAkRkFRSXRlbUlEc1swXSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgImZhcSRSYW5kb21OdW1iZXIiID0+IFsKICAgICAgICAgICAgICAgICRGQVFJdGVtSURzWzZdLAogICAgICAgICAgICAgICAgJEZBUUl0ZW1JRHNbM10sCiAgICAgICAgICAgICAgICAkRkFRSXRlbUlEc1syXSwKICAgICAgICAgICAgICAgICRGQVFJdGVtSURzWzFdLAogICAgICAgICAgICBdLAogICAgICAgICAgICAiaXRzbSRSYW5kb21OdW1iZXIiID0+IFsKICAgICAgICAgICAgICAgICRGQVFJdGVtSURzWzVdLAogICAgICAgICAgICAgICAgJEZBUUl0ZW1JRHNbNF0sCiAgICAgICAgICAgICAgICAkRkFRSXRlbUlEc1syXSwKICAgICAgICAgICAgICAgICRGQVFJdGVtSURzWzBdLAogICAgICAgICAgICBdLAogICAgICAgICAgICAia2V5d29yZCRSYW5kb21OdW1iZXIiID0+IFsKICAgICAgICAgICAgICAgICRGQVFJdGVtSURzWzVdLAogICAgICAgICAgICAgICAgJEZBUUl0ZW1JRHNbNF0sCiAgICAgICAgICAgICAgICAkRkFRSXRlbUlEc1szXSwKICAgICAgICAgICAgICAgICRGQVFJdGVtSURzWzJdLAogICAgICAgICAgICAgICAgJEZBUUl0ZW1JRHNbMV0sCiAgICAgICAgICAgICAgICAkRkFRSXRlbUlEc1swXSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgInB1YmxpYyRSYW5kb21OdW1iZXIiID0+IFsKICAgICAgICAgICAgICAgICRGQVFJdGVtSURzWzNdLAogICAgICAgICAgICBdLAogICAgICAgICAgICAiaW50ZXJuYWwkUmFuZG9tTnVtYmVyIiA9PiBbCiAgICAgICAgICAgICAgICAkRkFRSXRlbUlEc1s1XSwKICAgICAgICAgICAgICAgICRGQVFJdGVtSURzWzRdLAogICAgICAgICAgICBdLAogICAgICAgICAgICAidGlja2V0JFJhbmRvbU51bWJlciIgPT4gWwogICAgICAgICAgICAgICAgJEZBUUl0ZW1JRHNbNV0sCiAgICAgICAgICAgICAgICAkRkFRSXRlbUlEc1s0XSwKICAgICAgICAgICAgICAgICRGQVFJdGVtSURzWzBdLAogICAgICAgICAgICBdLAogICAgICAgIH0sCiAgICB9LAopOwoKIyBkZWZpbmUgdGVzdCBjb3VudGVyCm15ICRUZXN0Q291bnQgPSAxOwoKVEVTVDoKZm9yIG15ICRUZXN0IChAVGVzdHMpIHsKCiAgICAjIGNoZWNrIEZBUUtleXdvcmRBcnRpY2xlTGlzdCBhdHRyaWJ1dGUKICAgIGlmICggISRUZXN0LT57RkFRS2V5d29yZEFydGljbGVMaXN0fSB8fCByZWYgJFRlc3QtPntGQVFLZXl3b3JkQXJ0aWNsZUxpc3R9IG5lICdIQVNIJyApIHsKCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIDAsCiAgICAgICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IE5vIEZBUUtleXdvcmRBcnRpY2xlTGlzdCBmb3VuZCBmb3IgdGhpcyB0ZXN0LiIsCiAgICAgICAgKTsKCiAgICAgICAgbmV4dCBURVNUOwogICAgfQoKICAgICMgcHJpbnQgdGVzdCBjYXNlIGRlc2NyaXB0aW9uCiAgICBpZiAoICRUZXN0LT57RGVzY3JpcHRpb259ICkgewogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAxLAogICAgICAgICAgICAiVGVzdCAkVGVzdENvdW50OiAkVGVzdC0+e0Rlc2NyaXB0aW9ufSIsCiAgICAgICAgKTsKICAgIH0KCiAgICBteSAlRkFRS2V5d29yZEFydGljbGVMaXN0ID0gJEZBUU9iamVjdC0+RkFRS2V5d29yZEFydGljbGVMaXN0KAogICAgICAgICV7ICRUZXN0LT57RkFRS2V5d29yZEFydGljbGVMaXN0fSB9LAogICAgKTsKCiAgICBpZiAoICRUZXN0LT57RmFpbHN9ICkgewogICAgICAgICRTZWxmLT5GYWxzZSgKICAgICAgICAgICAgJUZBUUtleXdvcmRBcnRpY2xlTGlzdCA/IDEgOiAwLAogICAgICAgICAgICAiVGVzdCAkVGVzdENvdW50OiBGQVFLZXl3b3JkQXJ0aWNsZUxpc3QoKSAtIHNob3VsZCBmYWlsLiIsCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2UgewoKICAgICAgICBmb3IgbXkgJEtleXdvcmQgKCBzb3J0IGtleXMgJXsgJFRlc3QtPntSZWZlcmVuY2VEYXRhfSB9ICkgewoKICAgICAgICAgICAgJFNlbGYtPklzRGVlcGx5KAogICAgICAgICAgICAgICAgJEZBUUtleXdvcmRBcnRpY2xlTGlzdHskS2V5d29yZH0gfHwgW10sCiAgICAgICAgICAgICAgICAkVGVzdC0+e1JlZmVyZW5jZURhdGF9LT57JEtleXdvcmR9LAogICAgICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogRkFRS2V5d29yZEFydGljbGVMaXN0KCkgLSAkS2V5d29yZCAtIHRlc3QgdGhlIHJlc3VsdCIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQp9CmNvbnRpbnVlIHsKICAgICRUZXN0Q291bnQrKzsKfQoKIyBDaGVjayBpZiB0aGUgY2FjaGUgZXhpc3RzIGZvciB0aGUgbGFzdCBmdW5jdGlvbiBjYWxsLgpteSBATGFuZ3VhZ2VJRHM7CgpMQU5HVUFHRU5BTUU6CmZvciBteSAkTGFuZ3VhZ2VOYW1lICggQHsgJFRlc3RzWy0xXS0+e0ZBUUtleXdvcmRBcnRpY2xlTGlzdH0tPntMYW5ndWFnZXN9IH0gKSB7CiAgICBteSAkTGFuZ3VhZ2VJRCA9ICRGQVFPYmplY3QtPkxhbmd1YWdlTG9va3VwKAogICAgICAgIE5hbWUgPT4gJExhbmd1YWdlTmFtZSwKICAgICk7CiAgICBuZXh0IExBTkdVQUdFTkFNRSBpZiAhJExhbmd1YWdlSUQ7CgogICAgcHVzaCBATGFuZ3VhZ2VJRHMsICRMYW5ndWFnZUlEOwp9CgpteSAkQ2F0ZWdvcnlJRHMgPSAkRkFRT2JqZWN0LT5BZ2VudENhdGVnb3J5U2VhcmNoKAogICAgR2V0U3ViQ2F0ZWdvcmllcyA9PiAxLAogICAgVXNlcklEICAgICAgICAgICA9PiAkVGVzdFVzZXJJRCwKKTsKCm15ICRDYWNoZUtleSA9ICdGQVFLZXl3b3JkQXJ0aWNsZUxpc3QnOwoKaWYgKEBMYW5ndWFnZUlEcykgewogICAgJENhY2hlS2V5IC49ICc6Okxhbmd1YWdlJyAuIGpvaW4gJzo6Jywgc29ydCBATGFuZ3VhZ2VJRHM7Cn0KJENhY2hlS2V5IC49ICc6OkNhdGVnb3J5SURzJyAuIGpvaW4gJzo6Jywgc29ydCBAeyRDYXRlZ29yeUlEc307CiRDYWNoZUtleSAuPSAnOjpJbnRlcmZhY2U6OmludGVybmFsJzsKCm15ICRMYXN0RkFRS2V5d29yZEFydGljbGVMaXN0Q2FjaGUgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+R2V0KAogICAgVHlwZSA9PiAnRkFRS2V5d29yZEFydGljbGVMaXN0JywKICAgIEtleSAgPT4gJENhY2hlS2V5LAopOwoKJFNlbGYtPlRydWUoCiAgICAxLAogICAgIlRlc3QgJFRlc3RDb3VudDogVGVzdCB0aGUgY2FjaGUgZm9yIGxhc3QgZnVuY3Rpb24gY2FsbCIsCik7Cgpmb3IgbXkgJEtleXdvcmQgKCBzb3J0IGtleXMgJXsgJFRlc3RzWy0xXS0+e1JlZmVyZW5jZURhdGF9IH0gKSB7CgogICAgJFNlbGYtPklzRGVlcGx5KAogICAgICAgICRMYXN0RkFRS2V5d29yZEFydGljbGVMaXN0Q2FjaGUtPnskS2V5d29yZH0gfHwgW10sCiAgICAgICAgJFRlc3RzWy0xXS0+e1JlZmVyZW5jZURhdGF9LT57JEtleXdvcmR9LAogICAgICAgICJUZXN0ICRUZXN0Q291bnQ6IENhY2hlIC0gRkFRS2V5d29yZEFydGljbGVMaXN0KCkgLSAkS2V5d29yZCAtIHRlc3QgdGhlIHJlc3VsdCIsCiAgICApOwp9CgojIERlZmluZSBzb21lIHRlc3QgZm9yIHRoZSBmdW5jdGlvbiAnUmVsYXRlZEN1c3RvbWVyQXJ0aWNsZUxpc3QnLgpAVGVzdHMgPSAoCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgPT4gJ1Rlc3QgZG9lcyBub3QgY29udGFpbiBhbGwgbmVjZXNzYXJ5IGRhdGEgZm9yIFJlbGF0ZWRDdXN0b21lckFydGljbGVMaXN0JywKICAgICAgICBGYWlscyAgICAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgIFJlbGF0ZWRDdXN0b21lckFydGljbGVMaXN0ID0+IHsKICAgICAgICAgICAgU3ViamVjdCA9PiAnJywKICAgICAgICAgICAgQm9keSAgICA9PiAnJywKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4ge30sCiAgICB9LAoKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICA9PiAnVGVzdCB3aXRoIGEga2V5d29yZCBpbiB0aGUgc3ViamVjdCBmb3IgUmVsYXRlZEN1c3RvbWVyQXJ0aWNsZUxpc3QnLAogICAgICAgIFJlbGF0ZWRDdXN0b21lckFydGljbGVMaXN0ID0+IHsKICAgICAgICAgICAgU3ViamVjdCA9PiAiaXRzbSRSYW5kb21OdW1iZXIiLAogICAgICAgICAgICBCb2R5ICAgID0+ICIkUmFuZG9tTnVtYmVyIiwKICAgICAgICAgICAgVXNlcklEICA9PiAkQ3VzdG9tZXJVc2Vyc1swXSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gWwogICAgICAgICAgICAkRkFRSXRlbUlEc1syXSwKICAgICAgICAgICAgJEZBUUl0ZW1JRHNbMF0sCiAgICAgICAgXSwKICAgIH0sCgogICAgIyBFLmcuCiAgICAjIEdpdmVuIEtleXdvcmQgZnJvbSB0ZXh0ICh3aXRoIGNvdW50ZXIpOgogICAgIyAgIC0gaXRzbSAoMykKICAgICMgICAtIHRpY2tldCAoMSkKICAgICMgICAtIGtleXdvcmQgKDEpCiAgICAjIFJlc3VsdCAoRkFRQXJ0aWNsZUlEID0+IENhbGN1bGF0ZWQgUXVhbnRpZmllciBhbmQgb3JkZXJpbmcgYnkgY2hhbmdlIHRpbWUgYW5kIGNyZWF0ZSB0aW1lKToKICAgICMgICAtIEZBUUFydGljbGUgMSA9PiA1CiAgICAjICAgLSBGQVFBcnRpY2xlIDIgPT4gNAogICAgIyAgIC0gRkFRQXJ0aWNsZSA0ID0+IDEKICAgICMgICAtIEZBUUFydGljbGUgMyA9PiAxCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgPT4gJ1Rlc3Qgd2l0aCBzb21lIGtleXdvcmRzIGluIHRoZSBzdWJqZWN0IGFuZCBib2R5IGZvciBSZWxhdGVkQ3VzdG9tZXJBcnRpY2xlTGlzdCcsCiAgICAgICAgUmVsYXRlZEN1c3RvbWVyQXJ0aWNsZUxpc3QgPT4gewogICAgICAgICAgICBTdWJqZWN0ID0+ICJpdHNtJFJhbmRvbU51bWJlciIsCiAgICAgICAgICAgIEJvZHkgICAgPT4gIml0c20kUmFuZG9tTnVtYmVyLCB0aWNrZXQkUmFuZG9tTnVtYmVyIGtleXdvcmQkUmFuZG9tTnVtYmVyIElUU00kUmFuZG9tTnVtYmVyLiIsCiAgICAgICAgICAgIFVzZXJJRCAgPT4gJEN1c3RvbWVyVXNlcnNbMF0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IFsKICAgICAgICAgICAgJEZBUUl0ZW1JRHNbMF0sCiAgICAgICAgICAgICRGQVFJdGVtSURzWzJdLAogICAgICAgICAgICAkRkFRSXRlbUlEc1szXSwKICAgICAgICAgICAgJEZBUUl0ZW1JRHNbMV0sCiAgICAgICAgXSwKICAgIH0sCgogICAgIyBFLmcuCiAgICAjIEdpdmVuIEtleXdvcmQgZnJvbSB0ZXh0ICh3aXRoIGNvdW50ZXIpOgogICAgIyAgIC0gaXRzbSAoMykKICAgICMgICAtIHRpY2tldCAoMSkKICAgICMgICAtIGtleXdvcmQgKDEpCiAgICAjIFJlc3VsdCAoRkFRQXJ0aWNsZUlEID0+IENhbGN1bGF0ZWQgUXVhbnRpZmllciBhbmQgb3JkZXJpbmcgYnkgY2hhbmdlIHRpbWUgYW5kIGNyZWF0ZSB0aW1lKToKICAgICMgICAtIEZBUUFydGljbGUgMSA9PiA1CiAgICAjICAgLSBGQVFBcnRpY2xlIDIgPT4gNAogICAgIyAgIC0gRkFRQXJ0aWNsZSA0ID0+IDEKICAgICMgICAtIEZBUUFydGljbGUgMyA9PiAxCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4KICAgICAgICAgICAgJ1Rlc3Qgd2l0aCBzb21lIGh0bWwga2V5d29yZHMgaW4gdGhlIHN1YmplY3QgYW5kIGJvZHkgKHdpdGggaHRtbCBhbmQgbGluaykgZm9yIFJlbGF0ZWRDdXN0b21lckFydGljbGVMaXN0JywKICAgICAgICBSZWxhdGVkQ3VzdG9tZXJBcnRpY2xlTGlzdCA9PiB7CiAgICAgICAgICAgIFN1YmplY3QgPT4gIml0c20kUmFuZG9tTnVtYmVyIiwKICAgICAgICAgICAgQm9keSAgICA9PgogICAgICAgICAgICAgICAgIiRSYW5kb21OdW1iZXIgaXRzbSRSYW5kb21OdW1iZXIgdGlja2V0JFJhbmRvbU51bWJlciA8YnIgLz5rZXl3b3JkJFJhbmRvbU51bWJlciBJVFNNJFJhbmRvbU51bWJlci4gWzFdIGh0dHBzOi8vZmFxLmNvbS8iLAogICAgICAgICAgICBVc2VySUQgPT4gJEN1c3RvbWVyVXNlcnNbMF0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IFsKICAgICAgICAgICAgJEZBUUl0ZW1JRHNbMF0sCiAgICAgICAgICAgICRGQVFJdGVtSURzWzJdLAogICAgICAgICAgICAkRkFRSXRlbUlEc1szXSwKICAgICAgICAgICAgJEZBUUl0ZW1JRHNbMV0sCiAgICAgICAgXSwKICAgIH0sCgogICAgIyBFLmcuCiAgICAjIEdpdmVuIEtleXdvcmQgZnJvbSB0ZXh0ICh3aXRoIGNvdW50ZXIpOgogICAgIyAgIC0gaXRzbSAoMykKICAgICMgICAtIHRpY2tldCAoMSkKICAgICMgICAtIGtleXdvcmQgKDEpCiAgICAjIFJlc3VsdCAoRkFRQXJ0aWNsZUlEID0+IENhbGN1bGF0ZWQgUXVhbnRpZmllciBhbmQgb3JkZXJpbmcgYnkgY2hhbmdlIHRpbWUgYW5kIGNyZWF0ZSB0aW1lKToKICAgICMgICAtIEZBUUFydGljbGUgMiA9PiAxCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgPT4gIlRlc3Qgb25seSBmb3IgdGhlIGxhbmd1YWdlICdkZScgZm9yIFJlbGF0ZWRDdXN0b21lckFydGljbGVMaXN0IiwKICAgICAgICBSZWxhdGVkQ3VzdG9tZXJBcnRpY2xlTGlzdCA9PiB7CiAgICAgICAgICAgIFN1YmplY3QgICA9PiAiRkFRJFJhbmRvbU51bWJlci4iLAogICAgICAgICAgICBCb2R5ICAgICAgPT4gIiRSYW5kb21OdW1iZXIiLAogICAgICAgICAgICBMYW5ndWFnZXMgPT4gWydkZSddLAogICAgICAgICAgICBVc2VySUQgICAgPT4gJEN1c3RvbWVyVXNlcnNbMF0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IFsKICAgICAgICAgICAgJEZBUUl0ZW1JRHNbMl0sCiAgICAgICAgXSwKICAgIH0sCgogICAgIyBFLmcuCiAgICAjIEdpdmVuIEtleXdvcmQgZnJvbSB0ZXh0ICh3aXRoIGNvdW50ZXIpOgogICAgIyAgIC0gaXRzbSAoMykKICAgICMgICAtIHRpY2tldCAoMSkKICAgICMgICAtIGtleXdvcmQgKDEpCiAgICAjIFJlc3VsdCAoRkFRQXJ0aWNsZUlEID0+IENhbGN1bGF0ZWQgUXVhbnRpZmllciBhbmQgb3JkZXJpbmcgYnkgY2hhbmdlIHRpbWUgYW5kIGNyZWF0ZSB0aW1lKToKICAgICMgICAtIEZBUUFydGljbGUgMSA9PiA1CiAgICAjICAgLSBGQVFBcnRpY2xlIDIgPT4gNAogICAgewogICAgICAgIERlc2NyaXB0aW9uICAgICAgICAgICAgICAgID0+ICdUZXN0IHdpdGggc29tZSBrZXl3b3JkcyBpbiB0aGUgc3ViamVjdCBhbmQgYm9keSBhbmQgYSBsaW1pdCBmb3IgUmVsYXRlZEN1c3RvbWVyQXJ0aWNsZUxpc3QnLAogICAgICAgIFJlbGF0ZWRDdXN0b21lckFydGljbGVMaXN0ID0+IHsKICAgICAgICAgICAgU3ViamVjdCA9PiAiaXRzbSRSYW5kb21OdW1iZXIiLAogICAgICAgICAgICBCb2R5ICAgID0+ICJpdHNtJFJhbmRvbU51bWJlcjsgdGlja2V0JFJhbmRvbU51bWJlciBrZXl3b3JkJFJhbmRvbU51bWJlciBJVFNNJFJhbmRvbU51bWJlci4iLAogICAgICAgICAgICBMaW1pdCAgID0+IDIsCiAgICAgICAgICAgIFVzZXJJRCAgPT4gJEN1c3RvbWVyVXNlcnNbMF0sCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IFsKICAgICAgICAgICAgJEZBUUl0ZW1JRHNbMF0sCiAgICAgICAgICAgICRGQVFJdGVtSURzWzJdLAogICAgICAgIF0sCiAgICB9LAoKICAgICMgRS5nLgogICAgIyBHaXZlbiBLZXl3b3JkIGZyb20gdGV4dCAod2l0aCBjb3VudGVyKToKICAgICMgICAtIFJhbmRvbU51bW5lci5SYW5kb21OdW1lciAoMikKICAgICMgICAtIGZhcSAoMSkKICAgICMgUmVzdWx0IChGQVFBcnRpY2xlSUQgPT4gQ2FsY3VsYXRlZCBRdWFudGlmaWVyIGFuZCBvcmRlcmluZyBieSBjaGFuZ2UgdGltZSBhbmQgY3JlYXRlIHRpbWUpOgogICAgIyAgIC0gRkFRQXJ0aWNsZSAxID0+IDIKICAgICMgICAtIEZBUUFydGljbGUgNCA9PiAxCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgPT4gJ1Rlc3Qgd2l0aCBzb21lIGtleXdvcmRzIGluIHRoZSBzdWJqZWN0IGFuZCBib2R5IGFuZCBhIGxpbWl0IGZvciBSZWxhdGVkQ3VzdG9tZXJBcnRpY2xlTGlzdCcsCiAgICAgICAgUmVsYXRlZEN1c3RvbWVyQXJ0aWNsZUxpc3QgPT4gewogICAgICAgICAgICBTdWJqZWN0ID0+ICIkUmFuZG9tTnVtYmVyIiwKICAgICAgICAgICAgQm9keSAgICA9PiAiJFJhbmRvbU51bWJlci4kUmFuZG9tTnVtYmVyIGZhcSRSYW5kb21OdW1iZXIgJFJhbmRvbU51bWJlci4kUmFuZG9tTnVtYmVyLiIsCiAgICAgICAgICAgIExpbWl0ICAgPT4gMiwKICAgICAgICAgICAgVXNlcklEICA9PiAkQ3VzdG9tZXJVc2Vyc1swXSwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gWwogICAgICAgICAgICAkRkFRSXRlbUlEc1swXSwKICAgICAgICAgICAgJEZBUUl0ZW1JRHNbM10sCiAgICAgICAgXSwKICAgIH0sCgogICAgewogICAgICAgIERlc2NyaXB0aW9uICAgICAgICAgICAgID0+ICdUZXN0IHdpdGggYSBrZXl3b3JkIGluIHRoZSBzdWJqZWN0IGZvciBSZWxhdGVkQWdlbnRBcnRpY2xlTGlzdCAoZm9yIGFnZW50KScsCiAgICAgICAgUmVsYXRlZEFnZW50QXJ0aWNsZUxpc3QgPT4gewogICAgICAgICAgICBTdWJqZWN0ID0+ICJpdHNtJFJhbmRvbU51bWJlciIsCiAgICAgICAgICAgIEJvZHkgICAgPT4gIiRSYW5kb21OdW1iZXIiLAogICAgICAgICAgICBVc2VySUQgID0+ICRUZXN0VXNlcklELAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiBbCiAgICAgICAgICAgICRGQVFJdGVtSURzWzVdLAogICAgICAgICAgICAkRkFRSXRlbUlEc1s0XSwKICAgICAgICAgICAgJEZBUUl0ZW1JRHNbMl0sCiAgICAgICAgICAgICRGQVFJdGVtSURzWzBdLAogICAgICAgIF0sCiAgICB9LAoKICAgICMgRS5nLgogICAgIyBHaXZlbiBLZXl3b3JkIGZyb20gdGV4dCAod2l0aCBjb3VudGVyKToKICAgICMgICAtIGl0c20gKDMpCiAgICAjICAgLSB0aWNrZXQgKDEpCiAgICAjICAgLSBrZXl3b3JkICgxKQogICAgIyBSZXN1bHQgKEZBUUFydGljbGVJRCA9PiBDYWxjdWxhdGVkIFF1YW50aWZpZXIgYW5kIG9yZGVyaW5nIGJ5IGNoYW5nZSB0aW1lIGFuZCBjcmVhdGUgdGltZSk6CiAgICAjICAgLSBGQVFBcnRpY2xlIDEgPT4gNQogICAgIyAgIC0gRkFRQXJ0aWNsZSAyID0+IDQKICAgICMgICAtIEZBUUFydGljbGUgNCA9PiAxCiAgICAjICAgLSBGQVFBcnRpY2xlIDMgPT4gMQogICAgewogICAgICAgIERlc2NyaXB0aW9uICAgICAgICAgICAgID0+ICdUZXN0IHdpdGggc29tZSBrZXl3b3JkcyBpbiB0aGUgc3ViamVjdCBhbmQgYm9keSBmb3IgUmVsYXRlZEFnZW50QXJ0aWNsZUxpc3QnLAogICAgICAgIFJlbGF0ZWRBZ2VudEFydGljbGVMaXN0ID0+IHsKICAgICAgICAgICAgU3ViamVjdCA9PiAiaXRzbSRSYW5kb21OdW1iZXIiLAogICAgICAgICAgICBCb2R5ICAgID0+ICJpdHNtJFJhbmRvbU51bWJlciwgdGlja2V0JFJhbmRvbU51bWJlciBrZXl3b3JkJFJhbmRvbU51bWJlciBJVFNNJFJhbmRvbU51bWJlci4iLAogICAgICAgICAgICBVc2VySUQgID0+ICRUZXN0VXNlcklELAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiBbCiAgICAgICAgICAgICRGQVFJdGVtSURzWzVdLAogICAgICAgICAgICAkRkFRSXRlbUlEc1s0XSwKICAgICAgICAgICAgJEZBUUl0ZW1JRHNbMF0sCiAgICAgICAgICAgICRGQVFJdGVtSURzWzJdLAogICAgICAgICAgICAkRkFRSXRlbUlEc1szXSwKICAgICAgICAgICAgJEZBUUl0ZW1JRHNbMV0sCiAgICAgICAgXSwKICAgIH0sCgogICAgIyBFLmcuCiAgICAjIEdpdmVuIEtleXdvcmQgZnJvbSB0ZXh0ICh3aXRoIGNvdW50ZXIpOgogICAgIyAgIC0gaXRzbSAoMykKICAgICMgICAtIHRpY2tldCAoMSkKICAgICMgICAtIGtleXdvcmQgKDEpCiAgICAjIFJlc3VsdCAoRkFRQXJ0aWNsZUlEID0+IENhbGN1bGF0ZWQgUXVhbnRpZmllciBhbmQgb3JkZXJpbmcgYnkgY2hhbmdlIHRpbWUgYW5kIGNyZWF0ZSB0aW1lKToKICAgICMgICAtIEZBUUFydGljbGUgMSA9PiA1CiAgICAjICAgLSBGQVFBcnRpY2xlIDIgPT4gNAogICAgIyAgIC0gRkFRQXJ0aWNsZSA0ID0+IDEKICAgICMgICAtIEZBUUFydGljbGUgMyA9PiAxCiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gPT4KICAgICAgICAgICAgJ1Rlc3Qgd2l0aCBzb21lIGh0bWwga2V5d29yZHMgaW4gdGhlIHN1YmplY3QgYW5kIGJvZHkgKHdpdGggaHRtbCBhbmQgbGluaykgZm9yIFJlbGF0ZWRBZ2VudEFydGljbGVMaXN0JywKICAgICAgICBSZWxhdGVkQWdlbnRBcnRpY2xlTGlzdCA9PiB7CiAgICAgICAgICAgIFN1YmplY3QgPT4gIml0c20kUmFuZG9tTnVtYmVyIiwKICAgICAgICAgICAgQm9keSAgICA9PgogICAgICAgICAgICAgICAgIiRSYW5kb21OdW1iZXIgaXRzbSRSYW5kb21OdW1iZXIgdGlja2V0JFJhbmRvbU51bWJlciA8YnIgLz5rZXl3b3JkJFJhbmRvbU51bWJlciBJVFNNJFJhbmRvbU51bWJlci4gWzFdIGh0dHBzOi8vZmFxLmNvbS8iLAogICAgICAgICAgICBVc2VySUQgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgfSwKICAgICAgICBSZWZlcmVuY2VEYXRhID0+IFsKICAgICAgICAgICAgJEZBUUl0ZW1JRHNbNV0sCiAgICAgICAgICAgICRGQVFJdGVtSURzWzRdLAogICAgICAgICAgICAkRkFRSXRlbUlEc1swXSwKICAgICAgICAgICAgJEZBUUl0ZW1JRHNbMl0sCiAgICAgICAgICAgICRGQVFJdGVtSURzWzNdLAogICAgICAgICAgICAkRkFRSXRlbUlEc1sxXSwKICAgICAgICBdLAogICAgfSwKCiAgICAjIEUuZy4KICAgICMgR2l2ZW4gS2V5d29yZCBmcm9tIHRleHQgKHdpdGggY291bnRlcik6CiAgICAjICAgLSBpdHNtICgzKQogICAgIyAgIC0gdGlja2V0ICgxKQogICAgIyAgIC0ga2V5d29yZCAoMSkKICAgICMgUmVzdWx0IChGQVFBcnRpY2xlSUQgPT4gQ2FsY3VsYXRlZCBRdWFudGlmaWVyIGFuZCBvcmRlcmluZyBieSBjaGFuZ2UgdGltZSBhbmQgY3JlYXRlIHRpbWUpOgogICAgIyAgIC0gRkFRQXJ0aWNsZSAyID0+IDEKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiAgICAgICAgICAgICA9PiAiVGVzdCBvbmx5IGZvciB0aGUgbGFuZ3VhZ2UgJ2RlJyBmb3IgUmVsYXRlZEFnZW50QXJ0aWNsZUxpc3QiLAogICAgICAgIFJlbGF0ZWRBZ2VudEFydGljbGVMaXN0ID0+IHsKICAgICAgICAgICAgU3ViamVjdCAgID0+ICJGQVEkUmFuZG9tTnVtYmVyLiIsCiAgICAgICAgICAgIEJvZHkgICAgICA9PiAiJFJhbmRvbU51bWJlciIsCiAgICAgICAgICAgIExhbmd1YWdlcyA9PiBbJ2RlJ10sCiAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gWwogICAgICAgICAgICAkRkFRSXRlbUlEc1syXSwKICAgICAgICBdLAogICAgfSwKCiAgICAjIEUuZy4KICAgICMgR2l2ZW4gS2V5d29yZCBmcm9tIHRleHQgKHdpdGggY291bnRlcik6CiAgICAjICAgLSBpdHNtICgzKQogICAgIyAgIC0gdGlja2V0ICgxKQogICAgIyAgIC0ga2V5d29yZCAoMSkKICAgICMgUmVzdWx0IChGQVFBcnRpY2xlSUQgPT4gQ2FsY3VsYXRlZCBRdWFudGlmaWVyIGFuZCBvcmRlcmluZyBieSBjaGFuZ2UgdGltZSBhbmQgY3JlYXRlIHRpbWUpOgogICAgIyAgIC0gRkFRQXJ0aWNsZSAxID0+IDUKICAgICMgICAtIEZBUUFydGljbGUgMiA9PiA0CiAgICB7CiAgICAgICAgRGVzY3JpcHRpb24gICAgICAgICAgICAgPT4gJ1Rlc3Qgd2l0aCBzb21lIGtleXdvcmRzIGluIHRoZSBzdWJqZWN0IGFuZCBib2R5IGFuZCBhIGxpbWl0IGZvciBSZWxhdGVkQWdlbnRBcnRpY2xlTGlzdCcsCiAgICAgICAgUmVsYXRlZEFnZW50QXJ0aWNsZUxpc3QgPT4gewogICAgICAgICAgICBTdWJqZWN0ID0+ICJpdHNtJFJhbmRvbU51bWJlciIsCiAgICAgICAgICAgIEJvZHkgICAgPT4gIml0c20kUmFuZG9tTnVtYmVyOyB0aWNrZXQkUmFuZG9tTnVtYmVyIGtleXdvcmQkUmFuZG9tTnVtYmVyIElUU00kUmFuZG9tTnVtYmVyLiIsCiAgICAgICAgICAgIExpbWl0ICAgPT4gMiwKICAgICAgICAgICAgVXNlcklEICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICB9LAogICAgICAgIFJlZmVyZW5jZURhdGEgPT4gWwogICAgICAgICAgICAkRkFRSXRlbUlEc1s1XSwKICAgICAgICAgICAgJEZBUUl0ZW1JRHNbNF0sCiAgICAgICAgXSwKICAgIH0sCgogICAgIyBFLmcuCiAgICAjIEdpdmVuIEtleXdvcmQgZnJvbSB0ZXh0ICh3aXRoIGNvdW50ZXIpOgogICAgIyAgIC0gUmFuZG9tTnVtbmVyLlJhbmRvbU51bWVyICgyKQogICAgIyAgIC0gZmFxICgxKQogICAgIyBSZXN1bHQgKEZBUUFydGljbGVJRCA9PiBDYWxjdWxhdGVkIFF1YW50aWZpZXIgYW5kIG9yZGVyaW5nIGJ5IGNoYW5nZSB0aW1lIGFuZCBjcmVhdGUgdGltZSk6CiAgICAjICAgLSBGQVFBcnRpY2xlIDEgPT4gMgogICAgIyAgIC0gRkFRQXJ0aWNsZSA3ID0+IDEKICAgIHsKICAgICAgICBEZXNjcmlwdGlvbiAgICAgICAgICAgICA9PiAnVGVzdCB3aXRoIHNvbWUga2V5d29yZHMgaW4gdGhlIHN1YmplY3QgYW5kIGJvZHkgYW5kIGEgbGltaXQgZm9yIFJlbGF0ZWRBZ2VudEFydGljbGVMaXN0JywKICAgICAgICBSZWxhdGVkQWdlbnRBcnRpY2xlTGlzdCA9PiB7CiAgICAgICAgICAgIFN1YmplY3QgPT4gIiRSYW5kb21OdW1iZXIiLAogICAgICAgICAgICBCb2R5ICAgID0+ICIkUmFuZG9tTnVtYmVyLiRSYW5kb21OdW1iZXIgZmFxJFJhbmRvbU51bWJlciAkUmFuZG9tTnVtYmVyLiRSYW5kb21OdW1iZXIuIiwKICAgICAgICAgICAgTGltaXQgICA9PiAyLAogICAgICAgICAgICBVc2VySUQgID0+ICRUZXN0VXNlcklELAogICAgICAgIH0sCiAgICAgICAgUmVmZXJlbmNlRGF0YSA9PiBbCiAgICAgICAgICAgICRGQVFJdGVtSURzWzBdLAogICAgICAgICAgICAkRkFRSXRlbUlEc1s2XSwKICAgICAgICBdLAogICAgfSwKKTsKClRFU1Q6CmZvciBteSAkVGVzdCAoQFRlc3RzKSB7CgogICAgIyBjaGVjayBSZWxhdGVkQ3VzdG9tZXJBcnRpY2xlTGlzdCBhdHRyaWJ1dGUKICAgIGlmICgKICAgICAgICAoICEkVGVzdC0+e1JlbGF0ZWRDdXN0b21lckFydGljbGVMaXN0fSB8fCByZWYgJFRlc3QtPntSZWxhdGVkQ3VzdG9tZXJBcnRpY2xlTGlzdH0gbmUgJ0hBU0gnICkKICAgICAgICAmJiAoICEkVGVzdC0+e1JlbGF0ZWRBZ2VudEFydGljbGVMaXN0fSB8fCByZWYgJFRlc3QtPntSZWxhdGVkQWdlbnRBcnRpY2xlTGlzdH0gbmUgJ0hBU0gnICkKICAgICAgICApCiAgICB7CgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAwLAogICAgICAgICAgICAiVGVzdCAkVGVzdENvdW50OiBObyBSZWxhdGVkQWdlbnRBcnRpY2xlTGlzdCBvciBSZWxhdGVkQ3VzdG9tZXJBcnRpY2xlTGlzdCBmb3VuZCBmb3IgdGhpcyB0ZXN0LiIsCiAgICAgICAgKTsKCiAgICAgICAgbmV4dCBURVNUOwogICAgfQoKICAgIG15ICRSZWxhdGVkQXJ0aWNsZUZ1bmN0aW9uOwoKICAgIGlmICggJFRlc3QtPntSZWxhdGVkQ3VzdG9tZXJBcnRpY2xlTGlzdH0gKSB7CiAgICAgICAgJFJlbGF0ZWRBcnRpY2xlRnVuY3Rpb24gPSAnUmVsYXRlZEN1c3RvbWVyQXJ0aWNsZUxpc3QnOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJFJlbGF0ZWRBcnRpY2xlRnVuY3Rpb24gPSAnUmVsYXRlZEFnZW50QXJ0aWNsZUxpc3QnOwogICAgfQoKICAgICMgcHJpbnQgdGVzdCBjYXNlIGRlc2NyaXB0aW9uCiAgICBpZiAoICRUZXN0LT57RGVzY3JpcHRpb259ICkgewogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAxLAogICAgICAgICAgICAiVGVzdCAkVGVzdENvdW50OiAkVGVzdC0+e0Rlc2NyaXB0aW9ufSIsCiAgICAgICAgKTsKICAgIH0KCiAgICBteSBAUmVsYXRlZEFydGljbGVMaXN0OwoKICAgIGlmICggJFRlc3QtPntSZWxhdGVkQ3VzdG9tZXJBcnRpY2xlTGlzdH0gKSB7CgogICAgICAgIEBSZWxhdGVkQXJ0aWNsZUxpc3QgPSAkRkFRT2JqZWN0LT4kUmVsYXRlZEFydGljbGVGdW5jdGlvbigKICAgICAgICAgICAgJXsgJFRlc3QtPntSZWxhdGVkQ3VzdG9tZXJBcnRpY2xlTGlzdH0gfSwKICAgICAgICApOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgQFJlbGF0ZWRBcnRpY2xlTGlzdCA9ICRGQVFPYmplY3QtPiRSZWxhdGVkQXJ0aWNsZUZ1bmN0aW9uKAogICAgICAgICAgICAleyAkVGVzdC0+e1JlbGF0ZWRBZ2VudEFydGljbGVMaXN0fSB9LAogICAgICAgICk7CiAgICB9CgogICAgaWYgKCAkVGVzdC0+e0ZhaWxzfSApIHsKICAgICAgICAkU2VsZi0+RmFsc2UoCiAgICAgICAgICAgIEBSZWxhdGVkQXJ0aWNsZUxpc3QgPyAxIDogMCwKICAgICAgICAgICAgIlRlc3QgJFRlc3RDb3VudDogJFJlbGF0ZWRBcnRpY2xlRnVuY3Rpb24oKSAtIHNob3VsZCBmYWlsLiIsCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2UgewoKICAgICAgICBteSBAUmVsYXRlZEZBUUFydGljbGVJRHMgPSBtYXAgeyAkXy0+e0l0ZW1JRH0gfSBAUmVsYXRlZEFydGljbGVMaXN0OwoKICAgICAgICAkU2VsZi0+SXNEZWVwbHkoCiAgICAgICAgICAgIFxAUmVsYXRlZEZBUUFydGljbGVJRHMsCiAgICAgICAgICAgICRUZXN0LT57UmVmZXJlbmNlRGF0YX0sCiAgICAgICAgICAgICJUZXN0ICRUZXN0Q291bnQ6ICRSZWxhdGVkQXJ0aWNsZUZ1bmN0aW9uKCkgLSB0ZXN0IHRoZSByZXN1bHQiLAogICAgICAgICk7CiAgICB9Cn0KY29udGludWUgewogICAgJFRlc3RDb3VudCsrOwp9CgojIGNsZWFudXAgaXMgZG9uZSBieSByZXN0b3JlIGRhdGFiYXNlCgoxOwo=</File>
        <File Location="scripts/test/FAQ/Category/AgentCategorySearch.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgJFNlbGY7CgokS2VybmVsOjpPTS0+T2JqZWN0UGFyYW1BZGQoCiAgICAnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInID0+IHsKICAgICAgICBSZXN0b3JlRGF0YWJhc2UgPT4gMSwKICAgIH0sCik7CgpteSAkSGVscGVyICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7Cm15ICRVc2VyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKbXkgJFJhbmRvbUlEICAgPSAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwoKbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICd1c2VycycgXSwKKTsKbXkgJFVzZXJJRCA9ICRVc2VyT2JqZWN0LT5Vc2VyTG9va3VwKAogICAgVXNlckxvZ2luID0+ICRUZXN0VXNlckxvZ2luLAopOwoKbXkgJEZBUU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpGQVEnKTsKCm15ICRDYXRlZ29yeUlEMSA9ICRGQVFPYmplY3QtPkNhdGVnb3J5QWRkKAogICAgTmFtZSAgICAgPT4gIkNhdGVnb3J5MSRSYW5kb21JRCIsCiAgICBDb21tZW50ICA9PiAnU29tZSBjb21tZW50JywKICAgIFBhcmVudElEID0+IDAsCiAgICBWYWxpZElEICA9PiAxLAogICAgVXNlcklEICAgPT4gJFVzZXJJRCwKKTsKJFNlbGYtPklzTm90KAogICAgJENhdGVnb3J5SUQxIC8vIDAsCiAgICAnMCcsCiAgICAiQ2F0ZWdvcnlBZGQgZm9yIENhdGVnb3J5IDEiLAopOwpteSAkQ2F0ZWdvcnlJRDIgPSAkRkFRT2JqZWN0LT5DYXRlZ29yeUFkZCgKICAgIE5hbWUgICAgID0+ICJDYXRlZ29yeTIkUmFuZG9tSUQiLAogICAgQ29tbWVudCAgPT4gJ1NvbWUgY29tbWVudCcsCiAgICBQYXJlbnRJRCA9PiAwLAogICAgVmFsaWRJRCAgPT4gMSwKICAgIFVzZXJJRCAgID0+ICRVc2VySUQsCik7CiRTZWxmLT5Jc05vdCgKICAgICRDYXRlZ29yeUlEMiAvLyAwLAogICAgJzAnLAogICAgIkNhdGVnb3J5QWRkIGZvciBDYXRlZ29yeSAyIiwKKTsKbXkgJENhdGVnb3J5SUQzID0gJEZBUU9iamVjdC0+Q2F0ZWdvcnlBZGQoCiAgICBOYW1lICAgICA9PiAiQ2F0ZWdvcnkzJFJhbmRvbUlEIiwKICAgIENvbW1lbnQgID0+ICdTb21lIGNvbW1lbnQnLAogICAgUGFyZW50SUQgPT4gMCwKICAgIFZhbGlkSUQgID0+IDEsCiAgICBVc2VySUQgICA9PiAkVXNlcklELAopOwokU2VsZi0+SXNOb3QoCiAgICAkQ2F0ZWdvcnlJRDMgLy8gMCwKICAgICcwJywKICAgICJDYXRlZ29yeUFkZCBmb3IgQ2F0ZWdvcnkgMyIsCik7CgpteSAkQ2F0ZWdvcnlJRDExID0gJEZBUU9iamVjdC0+Q2F0ZWdvcnlBZGQoCiAgICBOYW1lICAgICA9PiAiQ2F0ZWdvcnkxLTEkUmFuZG9tSUQiLAogICAgQ29tbWVudCAgPT4gJ1NvbWUgY29tbWVudCcsCiAgICBQYXJlbnRJRCA9PiAkQ2F0ZWdvcnlJRDEsCiAgICBWYWxpZElEICA9PiAxLAogICAgVXNlcklEICAgPT4gJFVzZXJJRCwKKTsKJFNlbGYtPklzTm90KAogICAgJENhdGVnb3J5SUQxMSAvLyAwLAogICAgJzAnLAogICAgIkNhdGVnb3J5QWRkIGZvciBDYXRlZ29yeSAxLTEiLAopOwpteSAkQ2F0ZWdvcnlJRDEyID0gJEZBUU9iamVjdC0+Q2F0ZWdvcnlBZGQoCiAgICBOYW1lICAgICA9PiAiQ2F0ZWdvcnkxLTIkUmFuZG9tSUQiLAogICAgQ29tbWVudCAgPT4gJ1NvbWUgY29tbWVudCcsCiAgICBQYXJlbnRJRCA9PiAkQ2F0ZWdvcnlJRDEsCiAgICBWYWxpZElEICA9PiAxLAogICAgVXNlcklEICAgPT4gJFVzZXJJRCwKKTsKJFNlbGYtPklzTm90KAogICAgJENhdGVnb3J5SUQxMiAvLyAwLAogICAgJzAnLAogICAgIkNhdGVnb3J5QWRkIGZvciBDYXRlZ29yeSAxLTIiLAopOwpteSAkQ2F0ZWdvcnlJRDEyMSA9ICRGQVFPYmplY3QtPkNhdGVnb3J5QWRkKAogICAgTmFtZSAgICAgPT4gIkNhdGVnb3J5MS0yLTEkUmFuZG9tSUQiLAogICAgQ29tbWVudCAgPT4gJ1NvbWUgY29tbWVudCcsCiAgICBQYXJlbnRJRCA9PiAkQ2F0ZWdvcnlJRDEyLAogICAgVmFsaWRJRCAgPT4gMSwKICAgIFVzZXJJRCAgID0+ICRVc2VySUQsCik7CiRTZWxmLT5Jc05vdCgKICAgICRDYXRlZ29yeUlEMTIxIC8vIDAsCiAgICAnMCcsCiAgICAiQ2F0ZWdvcnlBZGQgZm9yIENhdGVnb3J5IDEtMi0xIiwKKTsKCm15ICRHcm91cElEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyktPkdyb3VwTG9va3VwKAogICAgR3JvdXAgPT4gJ3VzZXJzJywKKTsKCmZvciBteSAkQ2F0ZWdvcnlJRCAoICRDYXRlZ29yeUlEMSwgJENhdGVnb3J5SUQyLCAkQ2F0ZWdvcnlJRDExLCAkQ2F0ZWdvcnlJRDEyLCAkQ2F0ZWdvcnlJRDEyMSApIHsKCiAgICBteSAkU3VjY2VzcyA9ICRGQVFPYmplY3QtPlNldENhdGVnb3J5R3JvdXAoCiAgICAgICAgQ2F0ZWdvcnlJRCA9PiAkQ2F0ZWdvcnlJRCwKICAgICAgICBHcm91cElEcyAgID0+IFskR3JvdXBJRF0sCiAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgKTsKCiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkU3VjY2VzcywKICAgICAgICAiQ2F0ZWdvcnlJRCAkQ2F0ZWdvcnlJRCBhZGRlZCB0byBHcm91cElEICRHcm91cElEIiwKICAgICk7Cn0KCm15IEBUZXN0cyA9ICgKICAgIHsKICAgICAgICBOYW1lICAgID0+ICdObyBQYXJhbXMnLAogICAgICAgIENvbmZpZyAgPT4ge30sCiAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ01pc3NpbmcgVXNlcklEJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBQYXJlbnQgPT4gMCwKICAgICAgICB9LAogICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdObyBQYXJlbnQgVy9TdWJzJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBHZXRTdWJDYXRlZ29yaWVzID0+IDEsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gJFVzZXJJRCwKICAgICAgICB9LAogICAgICAgIFN1Y2Nlc3MgICAgICAgICAgICA9PiAxLAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyAgICA9PiBbICRDYXRlZ29yeUlEMSwgJENhdGVnb3J5SUQyLCAkQ2F0ZWdvcnlJRDExLCAkQ2F0ZWdvcnlJRDEyLCAkQ2F0ZWdvcnlJRDEyMSBdLAogICAgICAgIE5vdEV4cGVjdGVkUmVzdWx0cyA9PiBbJENhdGVnb3J5SUQzXSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdQYXJlbnRJRCAwIFcvU3VicycsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgUGFyZW50SUQgICAgICAgICA9PiAwLAogICAgICAgICAgICBHZXRTdWJDYXRlZ29yaWVzID0+IDEsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gJFVzZXJJRCwKICAgICAgICB9LAogICAgICAgIFN1Y2Nlc3MgICAgICAgICAgICA9PiAxLAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyAgICA9PiBbICRDYXRlZ29yeUlEMSwgJENhdGVnb3J5SUQyLCAkQ2F0ZWdvcnlJRDExLCAkQ2F0ZWdvcnlJRDEyLCAkQ2F0ZWdvcnlJRDEyMSBdLAogICAgICAgIE5vdEV4cGVjdGVkUmVzdWx0cyA9PiBbJENhdGVnb3J5SUQzXSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdQYXJlbnRJRCBDYXRlZ29yeSAxIFcvU3VicycsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgUGFyZW50SUQgICAgICAgICA9PiAkQ2F0ZWdvcnlJRDEsCiAgICAgICAgICAgIEdldFN1YkNhdGVnb3JpZXMgPT4gMSwKICAgICAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAkVXNlcklELAogICAgICAgIH0sCiAgICAgICAgU3VjY2VzcyAgICAgICAgICAgID0+IDEsCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzICAgID0+IFsgJENhdGVnb3J5SUQxMSwgJENhdGVnb3J5SUQxMiwgJENhdGVnb3J5SUQxMjEgXSwKICAgICAgICBOb3RFeHBlY3RlZFJlc3VsdHMgPT4gWyAkQ2F0ZWdvcnlJRDEsICAkQ2F0ZWdvcnlJRDIsICAkQ2F0ZWdvcnlJRDMgXSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdQYXJlbnRJRCBDYXRlZ29yeSAyIFcvU3VicycsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgUGFyZW50SUQgICAgICAgICA9PiAkQ2F0ZWdvcnlJRDIsCiAgICAgICAgICAgIEdldFN1YkNhdGVnb3JpZXMgPT4gMSwKICAgICAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAkVXNlcklELAogICAgICAgIH0sCiAgICAgICAgU3VjY2VzcyAgICAgICAgICAgID0+IDEsCiAgICAgICAgTm90RXhwZWN0ZWRSZXN1bHRzID0+CiAgICAgICAgICAgIFsgJENhdGVnb3J5SUQxLCAkQ2F0ZWdvcnlJRDIsICRDYXRlZ29yeUlEMywgJENhdGVnb3J5SUQxMSwgJENhdGVnb3J5SUQxMiwgJENhdGVnb3J5SUQxMjEgXSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdQYXJlbnRJRCBDYXRlZ29yeSAxLTEgVy9TdWJzJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBQYXJlbnRJRCAgICAgICAgID0+ICRDYXRlZ29yeUlEMTEsCiAgICAgICAgICAgIEdldFN1YkNhdGVnb3JpZXMgPT4gMSwKICAgICAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAkVXNlcklELAogICAgICAgIH0sCiAgICAgICAgU3VjY2VzcyAgICAgICAgICAgID0+IDEsCiAgICAgICAgTm90RXhwZWN0ZWRSZXN1bHRzID0+CiAgICAgICAgICAgIFsgJENhdGVnb3J5SUQxLCAkQ2F0ZWdvcnlJRDIsICRDYXRlZ29yeUlEMywgJENhdGVnb3J5SUQxMSwgJENhdGVnb3J5SUQxMiwgJENhdGVnb3J5SUQxMjEgXSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdQYXJlbnRJRCBDYXRlZ29yeSAxLTIgVy9TdWJzJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBQYXJlbnRJRCAgICAgICAgID0+ICRDYXRlZ29yeUlEMTIsCiAgICAgICAgICAgIEdldFN1YkNhdGVnb3JpZXMgPT4gMSwKICAgICAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAkVXNlcklELAogICAgICAgIH0sCiAgICAgICAgU3VjY2VzcyAgICAgICAgICAgID0+IDEsCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzICAgID0+IFskQ2F0ZWdvcnlJRDEyMV0sCiAgICAgICAgTm90RXhwZWN0ZWRSZXN1bHRzID0+IFsgJENhdGVnb3J5SUQxLCAkQ2F0ZWdvcnlJRDIsICRDYXRlZ29yeUlEMywgJENhdGVnb3J5SUQxMSwgJENhdGVnb3J5SUQxMiBdLAogICAgfSwKCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdObyBQYXJlbnQgV08vU3VicycsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgVXNlcklEID0+ICRVc2VySUQsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzICAgICAgICAgICAgPT4gMSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgICAgPT4gWyAkQ2F0ZWdvcnlJRDEsICRDYXRlZ29yeUlEMiwgXSwKICAgICAgICBOb3RFeHBlY3RlZFJlc3VsdHMgPT4gWyAkQ2F0ZWdvcnlJRDMsICRDYXRlZ29yeUlEMTEsICRDYXRlZ29yeUlEMTIsICRDYXRlZ29yeUlEMTIxIF0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnUGFyZW50SUQgMCBXTy9TdWJzJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBQYXJlbnRJRCA9PiAwLAogICAgICAgICAgICBVc2VySUQgICA9PiAkVXNlcklELAogICAgICAgIH0sCiAgICAgICAgU3VjY2VzcyA9PiAxLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ1BhcmVudElEIENhdGVnb3J5IDEgV08vU3VicycsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgUGFyZW50SUQgPT4gJENhdGVnb3J5SUQxLAogICAgICAgICAgICBVc2VySUQgICA9PiAkVXNlcklELAogICAgICAgIH0sCiAgICAgICAgU3VjY2VzcyAgICAgICAgICAgID0+IDEsCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzICAgID0+IFsgJENhdGVnb3J5SUQxMSwgJENhdGVnb3J5SUQxMiwgXSwKICAgICAgICBOb3RFeHBlY3RlZFJlc3VsdHMgPT4gWyAkQ2F0ZWdvcnlJRDEsICAkQ2F0ZWdvcnlJRDIsICRDYXRlZ29yeUlEMywgJENhdGVnb3J5SUQxMjEgXSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdQYXJlbnRJRCBDYXRlZ29yeSAyIFdPL1N1YnMnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIFBhcmVudElEID0+ICRDYXRlZ29yeUlEMiwKICAgICAgICAgICAgVXNlcklEICAgPT4gJFVzZXJJRCwKICAgICAgICB9LAogICAgICAgIFN1Y2Nlc3MgICAgICAgICAgICA9PiAxLAogICAgICAgIE5vdEV4cGVjdGVkUmVzdWx0cyA9PgogICAgICAgICAgICBbICRDYXRlZ29yeUlEMSwgJENhdGVnb3J5SUQyLCAkQ2F0ZWdvcnlJRDMsICRDYXRlZ29yeUlEMTEsICRDYXRlZ29yeUlEMTIsICRDYXRlZ29yeUlEMTIxIF0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnUGFyZW50SUQgQ2F0ZWdvcnkgMS0xIFdPL1N1YnMnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIFBhcmVudElEID0+ICRDYXRlZ29yeUlEMTEsCiAgICAgICAgICAgIFVzZXJJRCAgID0+ICRVc2VySUQsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzICAgICAgICAgICAgPT4gMSwKICAgICAgICBOb3RFeHBlY3RlZFJlc3VsdHMgPT4KICAgICAgICAgICAgWyAkQ2F0ZWdvcnlJRDEsICRDYXRlZ29yeUlEMiwgJENhdGVnb3J5SUQzLCAkQ2F0ZWdvcnlJRDExLCAkQ2F0ZWdvcnlJRDEyLCAkQ2F0ZWdvcnlJRDEyMSBdLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ1BhcmVudElEIENhdGVnb3J5IDEtMiBXTy9TdWJzJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBQYXJlbnRJRCA9PiAkQ2F0ZWdvcnlJRDEyLAogICAgICAgICAgICBVc2VySUQgICA9PiAkVXNlcklELAogICAgICAgIH0sCiAgICAgICAgU3VjY2VzcyAgICAgICAgICAgID0+IDEsCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzICAgID0+IFskQ2F0ZWdvcnlJRDEyMV0sCiAgICAgICAgTm90RXhwZWN0ZWRSZXN1bHRzID0+IFsgJENhdGVnb3J5SUQxLCAkQ2F0ZWdvcnlJRDIsICRDYXRlZ29yeUlEMywgJENhdGVnb3J5SUQxMSwgJENhdGVnb3J5SUQxMiBdLAogICAgfSwKCik7CgpURVNUOgpmb3IgbXkgJFRlc3QgKEBUZXN0cykgewoKICAgIG15ICRDYXRlZ29yeUlEcyA9ICRGQVFPYmplY3QtPkFnZW50Q2F0ZWdvcnlTZWFyY2goICV7ICRUZXN0LT57Q29uZmlnfSB9ICk7CgogICAgaWYgKCAhJFRlc3QtPntTdWNjZXNzfSApIHsKICAgICAgICAkU2VsZi0+RmFsc2UoCiAgICAgICAgICAgICRDYXRlZ29yeUlEcywKICAgICAgICAgICAgIiRUZXN0LT57TmFtZX0gQWdlbnRDYXRlZ29yeVNlYXJjaCgpIC0gV2l0aCBmYWxzZSIsCiAgICAgICAgKTsKICAgICAgICBuZXh0IFRFU1Q7CiAgICB9CgogICAgZm9yIG15ICRFeHBlY3RlZFJlc3VsdCAoIEB7ICRUZXN0LT57RXhwZWN0ZWRSZXN1bHRzfSB9ICkgewogICAgICAgIG15ICRDb3VudCA9IGdyZXAgeyAkXyBlcSAkRXhwZWN0ZWRSZXN1bHQgfSBAeyRDYXRlZ29yeUlEc307CiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkQ291bnQsCiAgICAgICAgICAgIDEsCiAgICAgICAgICAgICIkVGVzdC0+e05hbWV9IEFnZW50Q2F0ZWdvcnlTZWFyY2goKSBDYXRlZ29yeUlEICRFeHBlY3RlZFJlc3VsdCBmb3VuZCAxIHRpbWUiLAogICAgICAgICk7CiAgICB9CiAgICBmb3IgbXkgJE5vdEV4cGVjdGVkUmVzdWx0ICggQHsgJFRlc3QtPntOb3RFeHBlY3RlZFJlc3VsdHN9IH0gKSB7CiAgICAgICAgbXkgJENvdW50ID0gZ3JlcCB7ICRfIGVxICROb3RFeHBlY3RlZFJlc3VsdCB9IEB7JENhdGVnb3J5SURzfTsKICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICRDb3VudCAvLyAwLAogICAgICAgICAgICAwLAogICAgICAgICAgICAiJFRlc3QtPntOYW1lfSBBZ2VudENhdGVnb3J5U2VhcmNoKCkgQ2F0ZWdvcnlJRCAkTm90RXhwZWN0ZWRSZXN1bHQgZm91bmQgMCB0aW1lcyIsCiAgICAgICAgKTsKICAgIH0KCn0KMTsK</File>
        <File Location="scripts/test/FAQ/Category/CategoryAdd.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKb3VyICRTZWxmOwoKIyBnZXQgbmVlZGVkIG9iamVjdHMKJEtlcm5lbDo6T00tPk9iamVjdFBhcmFtQWRkKAogICAgJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyA9PiB7CiAgICAgICAgUmVzdG9yZURhdGFiYXNlID0+IDEsCiAgICB9LAopOwpteSAkSGVscGVyICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKbXkgJEZBUU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpGQVEnKTsKCm15ICRSYW5kb21JRCA9ICRIZWxwZXItPkdldFJhbmRvbUlEKCk7Cm15IEBUZXN0cyAgICA9ICgKICAgIHsKICAgICAgICBOYW1lICAgID0+ICdObyBQYXJhbXMnLAogICAgICAgIENvbmZpZyAgPT4ge30sCiAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ05vIE5hbWUnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIENvbW1lbnQgID0+ICdTb21lIENvbW1lbnQnLAogICAgICAgICAgICBQYXJlbnRJRCA9PiAwLAogICAgICAgICAgICBWYWxpZElEICA9PiAxLAogICAgICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgIH0sCiAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ05vIFBhcmVudElEJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBOYW1lICAgID0+ICJUZXN0Q2F0ZWdvcnkkUmFuZG9tSUQiLAogICAgICAgICAgICBDb21tZW50ID0+ICdTb21lIENvbW1lbnQnLAogICAgICAgICAgICBWYWxpZElEID0+IDEsCiAgICAgICAgICAgIFVzZXJJRCAgPT4gMSwKICAgICAgICB9LAogICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdObyBWYWxpZElEJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBOYW1lICAgICA9PiAiVGVzdENhdGVnb3J5JFJhbmRvbUlEIiwKICAgICAgICAgICAgQ29tbWVudCAgPT4gJ1NvbWUgQ29tbWVudCcsCiAgICAgICAgICAgIFBhcmVudElEID0+IDAsCiAgICAgICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnTm8gVXNlcklEJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBOYW1lICAgICA9PiAiVGVzdENhdGVnb3J5JFJhbmRvbUlEIiwKICAgICAgICAgICAgQ29tbWVudCAgPT4gJ1NvbWUgQ29tbWVudCcsCiAgICAgICAgICAgIFBhcmVudElEID0+IDAsCiAgICAgICAgICAgIFZhbGlkSUQgID0+IDEsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnQ29ycmVjdCBObyBDb21tZW50JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBOYW1lICAgICA9PiAiVGVzdENhdGVnb3J5MSRSYW5kb21JRCIsCiAgICAgICAgICAgIFBhcmVudElEID0+IDAsCiAgICAgICAgICAgIFZhbGlkSUQgID0+IDEsCiAgICAgICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDEsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnQ29ycmVjdCBBU0NJSScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgTmFtZSAgICAgPT4gIlRlc3RDYXRlZ29yeTIkUmFuZG9tSUQiLAogICAgICAgICAgICBDb21tZW50ICA9PiAnU29tZSBDb21tZW50JywKICAgICAgICAgICAgUGFyZW50SUQgPT4gMCwKICAgICAgICAgICAgVmFsaWRJRCAgPT4gMSwKICAgICAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICB9LAogICAgICAgIFN1Y2Nlc3MgPT4gMSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdDb3JyZWN0IFVuaWNvZGUnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIE5hbWUgICAgID0+ICJUZXN0Q2F0ZWdvcnkzw6TDvMOfw4TDlsOc4oKs0LjRgcOhw6nDrcO6w7rDgcOJw43DmsOxw5EkUmFuZG9tSUQiLAogICAgICAgICAgICBDb21tZW50ICA9PiAnU29tZSBDb21tZW50IMOkw7zDn8OEw5bDnOKCrNC40YHDocOpw63DusO6w4HDicONw5rDscORJywKICAgICAgICAgICAgUGFyZW50SUQgPT4gMCwKICAgICAgICAgICAgVmFsaWRJRCAgPT4gMSwKICAgICAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICB9LAogICAgICAgIFN1Y2Nlc3MgPT4gMSwKICAgIH0sCik7CgpteSAlQWRkZWRDYXRlZ29yeUlEczsKClRFU1Q6CmZvciBteSAkVGVzdCAoQFRlc3RzKSB7CgogICAgbXkgJENhdGVnb3J5SUQgPSAkRkFRT2JqZWN0LT5DYXRlZ29yeUFkZCggJXsgJFRlc3QtPntDb25maWd9IH0gKTsKCiAgICBpZiAoICEkVGVzdC0+e1N1Y2Nlc3N9ICkgewogICAgICAgICRTZWxmLT5GYWxzZSgKICAgICAgICAgICAgJENhdGVnb3J5SUQgLy8gMCwKICAgICAgICAgICAgIiRUZXN0LT57TmFtZX0gQ2F0ZWdvcnlBREQoKSAtIFdpdGggRmFsc2UiLAogICAgICAgICk7CiAgICAgICAgbmV4dCBURVNUOwogICAgfQoKICAgICRTZWxmLT5UcnVlKAogICAgICAgICRDYXRlZ29yeUlELAogICAgICAgICIkVGVzdC0+e05hbWV9IENhdGVnb3J5QWRkKCkgLSBXaXRoIFRydWUiLAogICAgKTsKCiAgICAkU2VsZi0+SXNOb3QoCiAgICAgICAgJEFkZGVkQ2F0ZWdvcnlJRHN7JENhdGVnb3J5SUR9LAogICAgICAgIDEsCiAgICAgICAgIiRUZXN0LT57TmFtZX0gQ2F0ZWdvcnlBZGQoKSBDYXRlZ29yeUlEIHdhcyBub3QgdXNlZCByZXR1cm5lZCBiZWZvcmUiLAogICAgKTsKCiAgICAkQWRkZWRDYXRlZ29yeUlEc3skQ2F0ZWdvcnlJRH0gPSAxOwp9CgojIFRlc3QgZm9yIGJ1ZyMxMTg4OSAtIENhdGVnb3J5QWRkIHJldHVybnMgd3JvbmcgQ2F0ZWdvcnlJRCBpZiBzdWJjYXRlZ29yeSBuYW1lIGFscmVhZHkgZXhpc3RzLgojIFRoZSBpZGVhIGlzIHRvIGNyZWF0ZSBzZXZlcmFsIHBhcmVudHMgYW5kIGZvciBlYWNoIGNyZWF0ZSBhIGNoaWxkIGNhdGVnb3J5LCBhbGwgY2hpbGRyZW4gaGFzIHRoZQojICAgc2FtZSBuYW1lLgpmb3IgbXkgJFBhcmVudENvdW50ICggMSAuLiAxMCApIHsKCiAgICBteSAkUGFyZW50Q2F0ZWdvcnlJRCA9ICRGQVFPYmplY3QtPkNhdGVnb3J5QWRkKAogICAgICAgIE5hbWUgICAgID0+ICJUZXN0UGFyZW50JFBhcmVudENvdW50JFJhbmRvbUlEIiwKICAgICAgICBDb21tZW50ICA9PiAnU29tZSBDb21tZW50JywKICAgICAgICBQYXJlbnRJRCA9PiAwLAogICAgICAgIFZhbGlkSUQgID0+IDEsCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICk7CgogICAgJFNlbGYtPlRydWUoCiAgICAgICAgJFBhcmVudENhdGVnb3J5SUQsCiAgICAgICAgIlBhcmVudCAkUGFyZW50Q291bnQgQ2F0ZWdvcnlBZGQoKSAtIFdpdGggVHJ1ZSIsCiAgICApOwoKICAgICRTZWxmLT5Jc05vdCgKICAgICAgICAkQWRkZWRDYXRlZ29yeUlEc3skUGFyZW50Q2F0ZWdvcnlJRH0sCiAgICAgICAgMSwKICAgICAgICAiUGFyZW50ICRQYXJlbnRDb3VudCBDYXRlZ29yeUFkZCgpIENhdGVnb3J5SUQgd2FzIG5vdCB1c2VkIHJldHVybmVkIGJlZm9yZSIsCiAgICApOwoKICAgICRBZGRlZENhdGVnb3J5SURzeyRQYXJlbnRDYXRlZ29yeUlEfSA9IDE7CgogICAgbXkgJENhdGVnb3J5SUQgPSAkRkFRT2JqZWN0LT5DYXRlZ29yeUFkZCgKICAgICAgICBOYW1lICAgICA9PiAiVGVzdENoaWxkJFJhbmRvbUlEIiwKICAgICAgICBDb21tZW50ICA9PiAnU29tZSBDb21tZW50JywKICAgICAgICBQYXJlbnRJRCA9PiAkUGFyZW50Q2F0ZWdvcnlJRCwKICAgICAgICBWYWxpZElEICA9PiAxLAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICApOwoKICAgICRTZWxmLT5UcnVlKAogICAgICAgICRDYXRlZ29yeUlELAogICAgICAgICJDaGlsZCBmb3IgUGFyZW50ICRQYXJlbnRDb3VudCBDYXRlZ29yeUFkZCgpIC0gV2l0aCBUcnVlIiwKICAgICk7CgogICAgJFNlbGYtPklzTm90KAogICAgICAgICRBZGRlZENhdGVnb3J5SURzeyRDYXRlZ29yeUlEfSwKICAgICAgICAxLAogICAgICAgICJDaGlsZCBmb3IgUGFyZW50ICRQYXJlbnRDb3VudCBDYXRlZ29yeUFkZCgpIENhdGVnb3J5SUQgd2FzIG5vdCB1c2VkIHJldHVybmVkIGJlZm9yZSIsCiAgICApOwoKICAgICRBZGRlZENhdGVnb3J5SURzeyRDYXRlZ29yeUlEfSA9IDE7Cn0KCjE7Cg==</File>
        <File Location="scripts/test/FAQ/UpgradeLowerThan5092.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgTGlzdDo6VXRpbCBxdygpOwp1c2UgdmFyOjpwYWNrYWdlc2V0dXA6OkZBUTsKCm91ciAkU2VsZjsKCm15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKbXkgJFN5c0NvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTeXNDb25maWcnKTsKbXkgJEZBUU9iamVjdCAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpGQVEnKTsKCm15ICRSYW5kb21Hcm91cCA9ICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CgpteSBAVGVzdHMgPSAoCiAgICB7CiAgICAgICAgTmFtZSAgICAgID0+ICdSZXN0b3JlIHBlcm1pc3Npb25zIG9mIEFnZW50RkFRTGFuZ3VhZ2UgZnJvbnRlbmQgbW9kdWxlJywKICAgICAgICBTZXR0aW5ncyAgPT4gWydGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRGQVFMYW5ndWFnZSddLAogICAgICAgIE9sZENvbmZpZyA9PiB7CiAgICAgICAgICAgICdGcm9udGVuZDo6TW9kdWxlJyA9PiB7CiAgICAgICAgICAgICAgICAnQWdlbnRGQVFMYW5ndWFnZScgPT4gewogICAgICAgICAgICAgICAgICAgICdEZXNjcmlwdGlvbicgPT4gJ0ZBUSBBcmVhLicsCiAgICAgICAgICAgICAgICAgICAgJ0dyb3VwJyAgICAgICA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgICRSYW5kb21Hcm91cCwKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICdOYXZCYXInID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0FjY2Vzc0tleScgICA9PiAnTCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQmxvY2snICAgICAgID0+ICcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0Rlc2NyaXB0aW9uJyA9PiAnTGFuZ3VhZ2UgTWFuYWdlbWVudCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnR3JvdXAnICAgICAgID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUmFuZG9tR3JvdXAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0xpbmsnICAgPT4gJ0FjdGlvbj1BZ2VudEZBUUxhbmd1YWdlJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdOYW1lJyAgID0+ICdMYW5ndWFnZSBNYW5hZ2VtZW50JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdOYXZCYXInID0+ICdGQVEnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1ByaW8nICAgPT4gJzk0MCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVHlwZScgICA9PiAnJwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH0sCgogICAgewogICAgICAgIE5hbWUgICAgICA9PiAnUmVzdG9yZSBwZXJtaXNzaW9ucyBvZiBBZ2VudEZBUUFkZCBmcm9udGVuZCBtb2R1bGUnLAogICAgICAgIFNldHRpbmdzICA9PiBbJ0Zyb250ZW5kOjpNb2R1bGUjIyNBZ2VudEZBUUFkZCddLAogICAgICAgIE9sZENvbmZpZyA9PiB7CiAgICAgICAgICAgICdGcm9udGVuZDo6TW9kdWxlJyA9PiB7CiAgICAgICAgICAgICAgICAnQWdlbnRGQVFBZGQnID0+IHsKICAgICAgICAgICAgICAgICAgICAnRGVzY3JpcHRpb24nID0+ICdGQVEgQXJlYS4nLAogICAgICAgICAgICAgICAgICAgICdHcm91cCcgICAgICAgPT4gW10sCiAgICAgICAgICAgICAgICAgICAgJ05hdkJhcicgICAgICA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBY2Nlc3NLZXknICAgPT4gJ0EnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0Jsb2NrJyAgICAgICA9PiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdEZXNjcmlwdGlvbicgPT4gJ05ldyBGQVEgQXJ0aWNsZScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnR3JvdXAnICAgICAgID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZmFxJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTGluaycgICA9PiAnQWN0aW9uPUFnZW50RkFRTGFuZ3VhZ2UnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ05hbWUnICAgPT4gJ05ldycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTmF2QmFyJyA9PiAnRkFRJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdQcmlvJyAgID0+ICc5MjAnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1R5cGUnICAgPT4gJycKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAoKICAgIHsKICAgICAgICBOYW1lICAgICAgPT4gJ1Jlc3RvcmUgdmFsdWUgb2YgRkFROjpBcHByb3ZhbEdyb3VwJywKICAgICAgICBTZXR0aW5ncyAgPT4gWydGQVE6OkFwcHJvdmFsR3JvdXAnXSwKICAgICAgICBPbGRDb25maWcgPT4gewogICAgICAgICAgICAnRkFROjpBcHByb3ZhbEdyb3VwJyA9PiAkUmFuZG9tR3JvdXAsCiAgICAgICAgfSwKICAgIH0sCgogICAgewogICAgICAgIE5hbWUgICAgICAgID0+ICdSZXN0b3JlIHBlcm1pc3Npb25zIG9mIEZyb250ZW5kOjpNb2R1bGUjIyNBZ2VudEZBUUV4cGxvcmVyIHRvIHRoZSBvbGQgZGVmYXVsdHMnLAogICAgICAgIFNldHRpbmdzICAgID0+IFsnRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50RkFRRXhwbG9yZXInXSwKICAgICAgICBPbGRDb25maWcgICA9PiB7fSwKICAgICAgICBPbGREZWZhdWx0cyA9PiB7CiAgICAgICAgICAgICdGcm9udGVuZDo6TW9kdWxlJyA9PiB7CiAgICAgICAgICAgICAgICAnQWdlbnRGQVFFeHBsb3JlcicgPT4gewogICAgICAgICAgICAgICAgICAgIEdyb3VwICAgPT4gWydmYXEnXSwKICAgICAgICAgICAgICAgICAgICBHcm91cFJvID0+IFsnZmFxJ10sCiAgICAgICAgICAgICAgICAgICAgTmF2QmFyICA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgICAgPT4gJ0ZBUScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQmxvY2snID0+ICdJdGVtQXJlYScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBHcm91cFJvID0+IFsnZmFxJ10KICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAgICA9PiAnRXhwbG9yZXInLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0Jsb2NrJyA9PiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdyb3VwUm8gPT4gWydmYXEnXQogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgJ0Rhc2hib2FyZEJhY2tlbmQjIyMwMzk4LUZBUS1MYXN0Q2hhbmdlJyA9PiB7IEdyb3VwID0+ICRSYW5kb21Hcm91cCB9LAogICAgICAgIH0sCiAgICB9LAopOwoKbXkgJEdldENvbmZpZyA9IHN1YiB7CiAgICBteSAkU291cmNlICAgICAgPSBzaGlmdDsKICAgIG15ICRTZXR0aW5nTmFtZSA9IHNoaWZ0OwoKICAgIG15ICRDb25maWcgPSAkU291cmNlOwogICAgbXkgQEtleXMgICA9IHNwbGl0IC8jIyMvLCAkU2V0dGluZ05hbWU7CiAgICB3aGlsZSAoIG15ICRLZXkgPSBzaGlmdCBAS2V5cyApIHsKICAgICAgICAkQ29uZmlnID0gJENvbmZpZy0+eyRLZXl9OwogICAgfQoKICAgIHJldHVybiAkQ29uZmlnOwp9OwoKbXkgJENoZWNrR3JvdXBHcm91cFJvID0gc3ViIHsKICAgIG15ICVQYXJhbSAgICA9IEBfOwogICAgbXkgJEV4cGVjdGVkID0gJFBhcmFte0V4cGVjdGVkfTsKICAgIG15ICRSZXN1bHQgICA9ICRQYXJhbXtSZXN1bHR9OwogICAgbXkgJFRlc3ROYW1lID0gJFBhcmFte1Rlc3ROYW1lfTsKCiAgICBpZiAoICRFeHBlY3RlZC0+e0dyb3VwfSB8fCAkRXhwZWN0ZWQtPntHcm91cFJvfSApIHsKCiAgICAgICAgIyBDaGVjayBmb3IgS2V5IEdyb3VwIGFuZCBHcm91cFJvLgogICAgICAgIGZvciBteSAkS2V5IChxdyhHcm91cCBHcm91cFJvKSkgewogICAgICAgICAgICAkU2VsZi0+SXNEZWVwbHkoCiAgICAgICAgICAgICAgICAkUmVzdWx0LT57JEtleX0sCiAgICAgICAgICAgICAgICAkRXhwZWN0ZWQtPnskS2V5fSAvLyBbXSwKICAgICAgICAgICAgICAgICRUZXN0TmFtZSAuICIsICckeyBLZXkgfScgZml4ZWQhIgogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KfTsKClRFU1Q6CmZvciBteSAkVGVzdCAoQFRlc3RzKSB7CgogICAgIyBJZiB0aGUga2V5ICdDb25maWcnIGV4aXN0cywgbGV0cyBzZXQgdGhlIG5ldyBjb25maWcgYmVmb3JlIHdlIGRvIGFueXRoaW5nIGVsc2UuCiAgICBpZiAoICRUZXN0LT57Q29uZmlnfSApIHsKICAgICAgICBmb3IgbXkgJEtleSAoIHNvcnQga2V5cyAleyAkVGVzdC0+e0NvbmZpZ30gfSApIHsKICAgICAgICAgICAgJEhlbHBlci0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgICAgIEtleSAgID0+ICRLZXksCiAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkVGVzdC0+e0NvbmZpZ30tPnskS2V5fSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBDaGVjayBpZiBpdCB3YXMgcmVzdG9yZWQgdG8gdGhlIG9sZCBjb25maWcuCiAgICBteSAkT2xkQ29uZmlnID0gJFRlc3QtPntPbGRDb25maWd9OwogICAgbG9jYWwgKnZhcjo6cGFja2FnZXNldHVwOjpGQVE6Ol9HZXRPVE9CTzVDb25maWdCYWNrdXAgPSBzdWIgewogICAgICAgIHJldHVybiAkT2xkQ29uZmlnOwogICAgfTsKCiAgICB2YXI6OnBhY2thZ2VzZXR1cDo6RkFRLT5uZXcoKS0+Q29kZVVwZ3JhZGVGcm9tTG93ZXJUaGFuXzVfMF85MigpOwoKICAgICMgQ2hlY2sgaWYgdGhlIG5ldyBjb25maWcgaXMgYWNjb3JkaW5nIHRvIHRoZSBvbGQgb25lLgogICAgbXkgQFNldHRpbmdzID0gQHsgJFRlc3QtPntTZXR0aW5nc30gfTsKICAgIFNFVFRJTkdfTkFNRToKICAgIGZvciBteSAkU2V0dGluZ05hbWUgKEBTZXR0aW5ncykgewogICAgICAgIG15ICRTZXR0aW5nT2xkQ29uZmlnICAgPSAkR2V0Q29uZmlnLT4oICRPbGRDb25maWcsICAgICAgICAgICAkU2V0dGluZ05hbWUgKTsKICAgICAgICBteSAkU2V0dGluZ09sZERlZmF1bHRzID0gJEdldENvbmZpZy0+KCAkVGVzdC0+e09sZERlZmF1bHRzfSwgJFNldHRpbmdOYW1lICk7CiAgICAgICAgbXkgJUNvbmZpZyAgICAgICAgICAgICA9ICRTeXNDb25maWdPYmplY3QtPlNldHRpbmdHZXQoCiAgICAgICAgICAgIE5hbWUgPT4gJFNldHRpbmdOYW1lLAogICAgICAgICk7CiAgICAgICAgbXkgJEVmZmVjdGl2ZVZhbHVlID0gJENvbmZpZ3tFZmZlY3RpdmVWYWx1ZX07CgogICAgICAgICMgSXQncyBub3QgYSBjb21wbGV4IHZhbHVlLCBjaGVjayBvbmx5IGlmIHRoZSB2YWx1ZSB3YXMgcmVzdG9yZWQuCiAgICAgICAgaWYgKCAhKCByZWYgJEVmZmVjdGl2ZVZhbHVlICkgKSB7CiAgICAgICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgICAgICRFZmZlY3RpdmVWYWx1ZSwKICAgICAgICAgICAgICAgICRTZXR0aW5nT2xkQ29uZmlnIC8vICRTZXR0aW5nT2xkRGVmYXVsdHMsCiAgICAgICAgICAgICAgICAkVGVzdC0+e05hbWV9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgbmV4dCBTRVRUSU5HX05BTUU7CiAgICAgICAgfQoKICAgICAgICAkQ2hlY2tHcm91cEdyb3VwUm8tPigKICAgICAgICAgICAgRXhwZWN0ZWQgPT4gJFNldHRpbmdPbGRDb25maWcgLy8gJFNldHRpbmdPbGREZWZhdWx0cywKICAgICAgICAgICAgUmVzdWx0ICAgPT4gJEVmZmVjdGl2ZVZhbHVlLAogICAgICAgICAgICBUZXN0TmFtZSA9PiAkVGVzdC0+e05hbWV9LAogICAgICAgICk7CgogICAgICAgIGlmICggJFNldHRpbmdPbGRDb25maWctPntOYXZCYXJ9IHx8ICRTZXR0aW5nT2xkRGVmYXVsdHMtPntOYXZCYXJ9ICkgewoKICAgICAgICAgICAgIyBDaGVjayBmb3IgbmF2aWdhdGlvbiBwZXJtaXNzaW9ucy4KICAgICAgICAgICAgbXkgKCB1bmRlZiwgJEZyb250ZW5kICkgPSBzcGxpdCAvIyMjLywgJFNldHRpbmdOYW1lOwoKICAgICAgICAgICAgIyBHZXQgdGhlIG9sZCBuYXZpZ2F0aW9uLgogICAgICAgICAgICBteSAkT2xkTmF2aWdhdGlvbiA9ICRTZXR0aW5nT2xkQ29uZmlnLT57TmF2QmFyfSAvLyAkU2V0dGluZ09sZERlZmF1bHRzLT57TmF2QmFyfTsKCiAgICAgICAgICAgICMgR2V0IHRoZSBjdXJyZW50IG5hdmlnYXRpb24uCiAgICAgICAgICAgIG15ICROZXdOYXZpZ2F0aW9uCiAgICAgICAgICAgICAgICA9ICRHZXRDb25maWctPiggJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKSwgJ0Zyb250ZW5kOjpOYXZpZ2F0aW9uIyMjJyAuICRGcm9udGVuZCApOwoKICAgICAgICAgICAgIyBDaGVjayBpZiB0aGUgcGVybWlzc2lvbiBpcyB0aGUgc2FtZSBhcyB0aGUgb2xkIG9uZS4KICAgICAgICAgICAgZm9yIG15ICRJbmRleCAoIHNvcnQga2V5cyAleyROZXdOYXZpZ2F0aW9ufSApIHsKICAgICAgICAgICAgICAgIG15ICROZXdJdGVtcyA9ICROZXdOYXZpZ2F0aW9uLT57JEluZGV4fTsKICAgICAgICAgICAgICAgIGZvciBteSAkTmV3SXRlbSAoIEB7JE5ld0l0ZW1zfSApIHsKICAgICAgICAgICAgICAgICAgICBteSAkT2xkSXRlbQogICAgICAgICAgICAgICAgICAgICAgICA9IExpc3Q6OlV0aWw6OmZpcnN0IHsgJF8tPntOYW1lfSBlcSAkTmV3SXRlbS0+e05hbWV9ICYmICRfLT57QmxvY2t9IGVxICROZXdJdGVtLT57QmxvY2t9IH0KICAgICAgICAgICAgICAgICAgICBAeyRPbGROYXZpZ2F0aW9ufTsKICAgICAgICAgICAgICAgICAgICBuZXh0IE5FV19JVEVNIGlmICEkT2xkSXRlbTsKCiAgICAgICAgICAgICAgICAgICAgJENoZWNrR3JvdXBHcm91cFJvLT4oCiAgICAgICAgICAgICAgICAgICAgICAgIEV4cGVjdGVkID0+ICRPbGRJdGVtLAogICAgICAgICAgICAgICAgICAgICAgICBSZXN1bHQgICA9PiAkTmV3SXRlbSwKICAgICAgICAgICAgICAgICAgICAgICAgVGVzdE5hbWUgPT4gc3ByaW50ZigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRUZXN0LT57TmFtZX0gLiAnIChOYXZpZ2F0aW9uICVzKScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkTmV3SXRlbS0+e05hbWV9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJE5ld0l0ZW0tPntCbG9ja30gPyAnLScgLiAkTmV3SXRlbS0+e0Jsb2NrfSA6ICcnLAogICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KCiMgUmVzdG9yZSBkZWZhdWx0IHNldHRpbmcgdmFsdWVzIGFmdGVyIHRlc3RpbmcsIHNpbmNlIG92ZXJyaWRlcyBhcmUgZGVwbG95ZWQgZnJvbSBleHRlcm5hbCBjb2RlLgpteSBAU2V0dGluZ3MgPSAoCiAgICAnRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50RkFRRXhwbG9yZXInLAogICAgJ0Zyb250ZW5kOjpNb2R1bGUjIyNBZ2VudEZBUUxhbmd1YWdlJywKICAgICdGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRGQVFFZGl0JywKICAgICdGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRGQVFBZGQnLAogICAgJ0Zyb250ZW5kOjpNb2R1bGUjIyNBZ2VudEZBUUNhdGVnb3J5JywKICAgICdGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRGQVFTZWFyY2gnLAogICAgJ0Zyb250ZW5kOjpNb2R1bGUjIyNBZ2VudEZBUVNlYXJjaFNtYWxsJywKICAgICdGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRGQVFab29tJywKICAgICdGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRGQVFSaWNoVGV4dCcsCiAgICAnRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50RkFRUHJpbnQnLAogICAgJ0Zyb250ZW5kOjpNb2R1bGUjIyNBZ2VudEZBUUpvdXJuYWwnLAogICAgJ0Zyb250ZW5kOjpNb2R1bGUjIyNBZ2VudEZBUUhpc3RvcnknLAogICAgJ0Zyb250ZW5kOjpNb2R1bGUjIyNBZ2VudEZBUURlbGV0ZScsCiAgICAnRGFzaGJvYXJkQmFja2VuZCMjIzAzOTgtRkFRLUxhc3RDaGFuZ2UnLAogICAgJ0Rhc2hib2FyZEJhY2tlbmQjIyMwMzk5LUZBUS1MYXN0Q3JlYXRlJywKICAgICdGQVE6OkFwcHJvdmFsR3JvdXAnLAogICAgJ0Zyb250ZW5kOjpOYXZpZ2F0aW9uIyMjQWdlbnRGQVFFeHBsb3JlciMjIzAwMi1GQVEnLAogICAgJ0Zyb250ZW5kOjpOYXZpZ2F0aW9uIyMjQWdlbnRGQVFBZGQjIyMwMDItRkFRJywKICAgICdGcm9udGVuZDo6TmF2aWdhdGlvbiMjI0FnZW50RkFRTGFuZ3VhZ2UjIyMwMDItRkFRJywKICAgICdGcm9udGVuZDo6TmF2aWdhdGlvbiMjI0FnZW50RkFRQ2F0ZWdvcnkjIyMwMDItRkFRJywKICAgICdGcm9udGVuZDo6TmF2aWdhdGlvbiMjI0FnZW50RkFRU2VhcmNoIyMjMDAyLUZBUScsCiAgICAnRnJvbnRlbmQ6Ok5hdmlnYXRpb24jIyNBZ2VudEZBUUpvdXJuYWwjIyMwMDItRkFRJywKKTsKCmZvciBteSAkU2V0dGluZ05hbWUgKEBTZXR0aW5ncykgewogICAgbXkgJEV4Y2x1c2l2ZUxvY2tHVUlEID0gJFN5c0NvbmZpZ09iamVjdC0+U2V0dGluZ0xvY2soCiAgICAgICAgTmFtZSAgID0+ICRTZXR0aW5nTmFtZSwKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkRXhjbHVzaXZlTG9ja0dVSUQsCiAgICAgICAgIkxvY2tlZCAkU2V0dGluZ05hbWUiCiAgICApOwoKICAgIG15ICRTdWNjZXNzID0gJFN5c0NvbmZpZ09iamVjdC0+U2V0dGluZ1Jlc2V0KAogICAgICAgIE5hbWUgICAgICAgICAgICAgID0+ICRTZXR0aW5nTmFtZSwKICAgICAgICBFeGNsdXNpdmVMb2NrR1VJRCA9PiAkRXhjbHVzaXZlTG9ja0dVSUQsCiAgICAgICAgVXNlcklEICAgICAgICAgICAgPT4gMSwKICAgICk7CiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkU3VjY2VzcywKICAgICAgICAiUmVzZXQgJFNldHRpbmdOYW1lIiwKICAgICk7Cn0KCm15ICRTdWNjZXNzID0gJFN5c0NvbmZpZ09iamVjdC0+Q29uZmlndXJhdGlvbkRlcGxveSgKICAgIENvbW1lbnRzICAgICAgPT4gJ1VwZ3JhZGVMb3dlclRoYW41MDkyLnQnLAogICAgVXNlcklEICAgICAgICA9PiAxLAogICAgRm9yY2UgICAgICAgICA9PiAxLAogICAgRGlydHlTZXR0aW5ncyA9PiBcQFNldHRpbmdzLAopOwokU2VsZi0+VHJ1ZSgKICAgICRTdWNjZXNzLAogICAgJ1Jlc3RvcmVkIGRlZmF1bHQgY29uZmlndXJhdGlvbicKKTsKCjE7Cg==</File>
        <File Location="scripts/test/FAQ/Category/CheckCategoryUserPermission.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgJFNlbGY7CgokS2VybmVsOjpPTS0+T2JqZWN0UGFyYW1BZGQoCiAgICAnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInID0+IHsKICAgICAgICBSZXN0b3JlRGF0YWJhc2UgPT4gMSwKICAgIH0sCik7CgpteSAkSGVscGVyICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7Cm15ICRVc2VyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKCiMgY3JlYXRlIHRlc3QgdXNlcgpteSAkVXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoKTsKbXkgJFVzZXJJRCAgICA9ICRVc2VyT2JqZWN0LT5Vc2VyTG9va3VwKCBVc2VyTG9naW4gPT4gJFVzZXJMb2dpbiApOwoKJFNlbGYtPlRydWUoCiAgICAkVXNlcklELAogICAgIlRlc3QgdXNlciAkVXNlcklEIGNyZWF0ZWQiLAopOwoKbXkgJFJhbmRvbUlEID0gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKCm15ICRHcm91cE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpOwoKbXkgJEdJRCA9ICRHcm91cE9iamVjdC0+R3JvdXBBZGQoCiAgICBOYW1lICAgID0+ICdDaGVja0NhdGVnb3J5VXNlclBlcm1pc3Npb24tJyAuICRSYW5kb21JRCwKICAgIENvbW1lbnQgPT4gJ2NvbW1lbnQgZGVzY3JpYmluZyB0aGUgZ3JvdXAnLAogICAgVmFsaWRJRCA9PiAxLAogICAgVXNlcklEICA9PiAxLAopOwokU2VsZi0+VHJ1ZSgKICAgICRHSUQsCiAgICAiR3JvdXBBZGQoKSIsCik7CgpteSAkRkFRT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkZBUScpOwoKbXkgJENhdGVnb3J5SUQgPSAkRkFRT2JqZWN0LT5DYXRlZ29yeUFkZCgKICAgIE5hbWUgICAgID0+ICdDaGVja0NhdGVnb3J5VXNlclBlcm1pc3Npb24tJyAuICRSYW5kb21JRCwKICAgIENvbW1lbnQgID0+ICdTb21lIGNvbW1lbnQnLAogICAgUGFyZW50SUQgPT4gMCwKICAgIFZhbGlkSUQgID0+IDEsCiAgICBVc2VySUQgICA9PiAxLAopOwokU2VsZi0+VHJ1ZSgKICAgICRDYXRlZ29yeUlELAogICAgIkNhdGVnb3J5QWRkKCkiLAopOwoKbXkgJFN1Y2Nlc3MgPSAkRkFRT2JqZWN0LT5TZXRDYXRlZ29yeUdyb3VwKAogICAgQ2F0ZWdvcnlJRCA9PiAkQ2F0ZWdvcnlJRCwKICAgIEdyb3VwSURzICAgPT4gWyRHSURdLAogICAgVXNlcklEICAgICA9PiAxLAopOwokU2VsZi0+VHJ1ZSgKICAgICRTdWNjZXNzLAogICAgIlNldENhdGVnb3J5R3JvdXAoKSIsCik7CgpteSBAVGVzdHMgPSAoCiAgICB7CiAgICAgICAgTmFtZSAgICAgICA9PiAnTWlzc2luZyBDYXRlZ29yeUlEJywKICAgICAgICBQZXJtaXNzaW9uID0+IHt9LAogICAgICAgIENvbmZpZyAgICAgPT4gewogICAgICAgICAgICBVc2VySUQgPT4gJFVzZXJJRCwKICAgICAgICB9LAogICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgICAgICA9PiAnTWlzc2luZyBVc2VySUQnLAogICAgICAgIFBlcm1pc3Npb24gPT4ge30sCiAgICAgICAgQ29uZmlnICAgICA9PiB7CiAgICAgICAgICAgIENhdGVnb3J5SUQgPT4gJENhdGVnb3J5SUQsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgPT4gJ05vIHBlcm1pc3Npb25zJywKICAgICAgICBQZXJtaXNzaW9uID0+IHt9LAogICAgICAgIENvbmZpZyAgICAgPT4gewogICAgICAgICAgICBDYXRlZ29yeUlEID0+ICRDYXRlZ29yeUlELAogICAgICAgICAgICBVc2VySUQgICAgID0+ICRVc2VySUQsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdCA9PiB7CiAgICAgICAgICAgICcnICAgPT4gJycsCiAgICAgICAgICAgICdybycgPT4gJycsCiAgICAgICAgICAgICdydycgPT4gJycsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDEsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgPT4gIidybycgcGVybWlzc2lvbnMiLAogICAgICAgIFBlcm1pc3Npb24gPT4gewogICAgICAgICAgICBybyA9PiAxLAogICAgICAgIH0sCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgQ2F0ZWdvcnlJRCA9PiAkQ2F0ZWdvcnlJRCwKICAgICAgICAgICAgVXNlcklEICAgICA9PiAkVXNlcklELAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHQgPT4gewogICAgICAgICAgICAnJyAgID0+ICdybycsCiAgICAgICAgICAgICdybycgPT4gJ3JvJywKICAgICAgICAgICAgJ3J3JyA9PiAnJywKICAgICAgICB9LAogICAgICAgIFN1Y2Nlc3MgPT4gMSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgICAgICA9PiAiJ21vdmVfaW50bycgcGVybWlzc2lvbnMiLAogICAgICAgIFBlcm1pc3Npb24gPT4gewogICAgICAgICAgICBtb3ZlX2ludG8gPT4gMSwKICAgICAgICB9LAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIENhdGVnb3J5SUQgPT4gJENhdGVnb3J5SUQsCiAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gJFVzZXJJRCwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0ID0+IHsKICAgICAgICAgICAgJycgICA9PiAnJywKICAgICAgICAgICAgJ3JvJyA9PiAnJywKICAgICAgICAgICAgJ3J3JyA9PiAnJywKICAgICAgICB9LAogICAgICAgIFN1Y2Nlc3MgPT4gMSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgICAgICA9PiAiJ3J3JyBwZXJtaXNzaW9ucyIsCiAgICAgICAgUGVybWlzc2lvbiA9PiB7CiAgICAgICAgICAgIHJ3ID0+IDEsCiAgICAgICAgfSwKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBDYXRlZ29yeUlEID0+ICRDYXRlZ29yeUlELAogICAgICAgICAgICBVc2VySUQgICAgID0+ICRVc2VySUQsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdCA9PiB7CiAgICAgICAgICAgICcnICAgPT4gJ3JvJywKICAgICAgICAgICAgJ3JvJyA9PiAncm8nLAogICAgICAgICAgICAncncnID0+ICdydycsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDEsCiAgICB9LAopOwoKVEVTVDoKZm9yIG15ICRUZXN0IChAVGVzdHMpIHsKCiAgICAjIFNldCBuZXcgcGVybWlzc2lvbnMKICAgIGlmICggJFRlc3QtPntQZXJtaXNzaW9ufSApIHsKICAgICAgICAkR3JvdXBPYmplY3QtPlBlcm1pc3Npb25Hcm91cFVzZXJBZGQoCiAgICAgICAgICAgIEdJRCAgICAgICAgPT4gJEdJRCwKICAgICAgICAgICAgVUlEICAgICAgICA9PiAkVXNlcklELAogICAgICAgICAgICBQZXJtaXNzaW9uID0+ICRUZXN0LT57UGVybWlzc2lvbn0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gMSwKICAgICAgICApOwogICAgfQoKICAgIGZvciBteSAkVHlwZSAoICcnLCAncm8nLCAncncnICkgewoKICAgICAgICBteSAkUGVybWlzc2lvblN0cmluZyA9ICRGQVFPYmplY3QtPkNoZWNrQ2F0ZWdvcnlVc2VyUGVybWlzc2lvbigKICAgICAgICAgICAgJXsgJFRlc3QtPntDb25maWd9IH0sCiAgICAgICAgICAgIFR5cGUgPT4gJFR5cGUsCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAhJFRlc3QtPntTdWNjZXNzfSApIHsKICAgICAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAgICAgJFBlcm1pc3Npb25TdHJpbmcsCiAgICAgICAgICAgICAgICB1bmRlZiwKICAgICAgICAgICAgICAgICIkVGVzdC0+e05hbWV9IC0gQ2hlY2tDYXRlZ29yeVVzZXJQZXJtaXNzaW9uKCkgZmFpbHVyZSIKICAgICAgICAgICAgKTsKICAgICAgICAgICAgbmV4dCBURVNUOwogICAgICAgIH0KCiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkUGVybWlzc2lvblN0cmluZywKICAgICAgICAgICAgJFRlc3QtPntFeHBlY3RlZFJlc3VsdH0tPnskVHlwZX0sCiAgICAgICAgICAgICIkVGVzdC0+e05hbWV9IC0gQ2hlY2tDYXRlZ29yeVVzZXJQZXJtaXNzaW9uKCkgZm9yIHR5cGUgJFR5cGUiLAogICAgICAgICk7CiAgICB9Cn0KY29udGludWUgewoKICAgICMgUmVtb3ZlIGFsbCBwZXJtaXNzaW9ucwogICAgJEdyb3VwT2JqZWN0LT5QZXJtaXNzaW9uR3JvdXBVc2VyQWRkKAogICAgICAgIEdJRCAgICAgICAgPT4gJEdJRCwKICAgICAgICBVSUQgICAgICAgID0+ICRVc2VySUQsCiAgICAgICAgUGVybWlzc2lvbiA9PiB7fSwKICAgICAgICBVc2VySUQgICAgID0+IDEsCiAgICApOwp9CgojIGNsZWFudXAgaXMgZG9uZSBieSByZXN0b3JlIGRhdGFiYXNlCgoxOwo=</File>
        <File Location="scripts/test/GenericInterface/FAQConnector.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKdXNlIFNvY2tldDsKdXNlIFlBTUw7CnVzZSBNSU1FOjpCYXNlNjQ7CnVzZSBLZXJuZWw6OkdlbmVyaWNJbnRlcmZhY2U6OkRlYnVnZ2VyOwp1c2UgS2VybmVsOjpHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb246OkZBUTo6TGFuZ3VhZ2VMaXN0Owp1c2UgS2VybmVsOjpHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb246OkZBUTo6UHVibGljQ2F0ZWdvcnlMaXN0Owp1c2UgS2VybmVsOjpHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb246OkZBUTo6UHVibGljRkFRU2VhcmNoOwp1c2UgS2VybmVsOjpHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb246OkZBUTo6UHVibGljRkFRR2V0OwoKb3VyICRTZWxmOwoKIyBnZXQgaGVscGVyIG9iamVjdApteSAkSGVscGVyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCm15ICRSYW5kb21JRCA9ICRIZWxwZXJPYmplY3QtPkdldFJhbmRvbUlEKCk7CgojIHNldCB3ZWItc2VydmljZSBuYW1lCm15ICRXZWJzZXJ2aWNlTmFtZSA9ICctVGVzdC0nIC4gJEhlbHBlck9iamVjdC0+R2V0UmFuZG9tSUQoKTsKCiMgc2V0IFVzZXJJRCBvbiAxCm15ICRVc2VySUQgPSAxOwoKIyBnZXQgaGVscGVyIG9iamVjdApteSAkRkFRT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkZBUScpOwoKIyBnZXQgcHVibGljIHN0YXRlcwpteSAlU3RhdGVzID0gJEZBUU9iamVjdC0+U3RhdGVMaXN0KAogICAgVXNlcklEID0+ICRVc2VySUQsCik7Cm15ICRQdWJsaWNTdGF0ZUlEOwpmb3IgbXkgJEtleSAoIHNvcnQga2V5cyAlU3RhdGVzICkgewogICAgaWYgKCAkU3RhdGVzeyRLZXl9ID1+IC9ecHVibGljLiovICkgewogICAgICAgICRQdWJsaWNTdGF0ZUlEID0gJEtleTsKICAgIH0KfQoKJFNlbGYtPklzTm90KAogICAgJFB1YmxpY1N0YXRlSUQsCiAgICB1bmRlZiwKICAgICJTZWFyY2ggZm9yIHB1YmxpYyBTdGF0ZUlEIiwKKTsKCiMgY2F0ZWdvcnkgb25lCm15ICRDYXRlZ29yeUlET25lID0gJEZBUU9iamVjdC0+Q2F0ZWdvcnlBZGQoCiAgICBOYW1lICAgICA9PiAnQ29ubmVjdG9yQ2F0ZWdvcnlPbmUnIC4gJFdlYnNlcnZpY2VOYW1lLAogICAgQ29tbWVudCAgPT4gJ0NhdGVnb3J5IGZvciB0ZXN0aW5nJywKICAgIFBhcmVudElEID0+IDAsCiAgICBWYWxpZElEICA9PiAxLAogICAgVXNlcklEICAgPT4gJFVzZXJJRCwKKTsKCiRTZWxmLT5UcnVlKAogICAgJENhdGVnb3J5SURPbmUsCiAgICAiQ2F0ZWdvcnlBZGQoKSAtIENhdGVnb3J5IiwKKTsKCiMgY2F0ZWdvcnkgdHdvCm15ICRDYXRlZ29yeUlEVHdvID0gJEZBUU9iamVjdC0+Q2F0ZWdvcnlBZGQoCiAgICBOYW1lICAgICA9PiAnQ29ubmVjdG9yQ2F0ZWdvcnlUd28nIC4gJFdlYnNlcnZpY2VOYW1lLAogICAgQ29tbWVudCAgPT4gJ0NoaWxkIENhdGVnb3J5IGZvciB0ZXN0aW5nJywKICAgIFBhcmVudElEID0+ICRDYXRlZ29yeUlET25lLAogICAgVmFsaWRJRCAgPT4gMSwKICAgIFVzZXJJRCAgID0+ICRVc2VySUQsCik7CgokU2VsZi0+VHJ1ZSgKICAgICRDYXRlZ29yeUlEVHdvLAogICAgIkNhdGVnb3J5QWRkKCkgLSBDaGlsZCBDYXRlZ29yeSIsCik7CgojIGNhdGVnb3J5IHRocmVlCm15ICRDYXRlZ29yeUlEVGhyZWUgPSAkRkFRT2JqZWN0LT5DYXRlZ29yeUFkZCgKICAgIE5hbWUgICAgID0+ICchIsKnJCUmLygpPT/DnCrDhMOWTDpMQCwuLScgLiAkV2Vic2VydmljZU5hbWUsCiAgICBDb21tZW50ICA9PiAnQ2hpbGQgQ2F0ZWdvcnkgZm9yIHRlc3RpbmcnLAogICAgUGFyZW50SUQgPT4gJENhdGVnb3J5SURUd28sCiAgICBWYWxpZElEICA9PiAxLAogICAgVXNlcklEICAgPT4gJFVzZXJJRCwKKTsKCiRTZWxmLT5UcnVlKAogICAgJENhdGVnb3J5SURUaHJlZSwKICAgICJDYXRlZ29yeUFkZCgpIC0gQ2hpbGQgQ2F0ZWdvcnkiLAopOwoKIyBjYXRlZ29yeSBmb3VyCm15ICRDYXRlZ29yeUlERm91ciA9ICRGQVFPYmplY3QtPkNhdGVnb3J5QWRkKAogICAgTmFtZSAgICAgPT4gJ0Nvbm5lY3RvckNhdGVnb3J5Rm91cicgLiAkV2Vic2VydmljZU5hbWUsCiAgICBDb21tZW50ICA9PiAnQ2F0ZWdvcnkgZm9yIHRlc3RpbmcnLAogICAgUGFyZW50SUQgPT4gMCwKICAgIFZhbGlkSUQgID0+IDEsCiAgICBVc2VySUQgICA9PiAkVXNlcklELAopOwoKJFNlbGYtPlRydWUoCiAgICAkQ2F0ZWdvcnlJREZvdXIsCiAgICAiQ2F0ZWdvcnlBZGQoKSAtIENoaWxkIENhdGVnb3J5IiwKKTsKCm15ICRJdGVtSURPbmUgPSAkRkFRT2JqZWN0LT5GQVFBZGQoCiAgICBUaXRsZSAgICAgICA9PiAnVGl0bGUgRkFRICcgLiAkUmFuZG9tSUQgLiAnT25lJyAuICRXZWJzZXJ2aWNlTmFtZSwKICAgIENhdGVnb3J5SUQgID0+ICRDYXRlZ29yeUlET25lLAogICAgU3RhdGVJRCAgICAgPT4gJFB1YmxpY1N0YXRlSUQsCiAgICBMYW5ndWFnZUlEICA9PiAxLAogICAgS2V5d29yZHMgICAgPT4gJ3NvbWUga2V5d29yZHMnLAogICAgRmllbGQxICAgICAgPT4gJ1Byb2JsZW0uLi4nLAogICAgRmllbGQyICAgICAgPT4gJ1NvbHV0aW9uLi4uJywKICAgIFVzZXJJRCAgICAgID0+ICRVc2VySUQsCiAgICBDb250ZW50VHlwZSA9PiAndGV4dC9odG1sJywKICAgIEFwcHJvdmVkICAgID0+IDEsCik7CgokU2VsZi0+VHJ1ZSgKICAgICRJdGVtSURPbmUsCiAgICAiRkFRQWRkKCkgLSBGQVEgT25lIiwKKTsKCm15ICRJdGVtSURUd28gPSAkRkFRT2JqZWN0LT5GQVFBZGQoCiAgICBUaXRsZSAgICAgICA9PiAnVGl0bGUgRkFRICcgLiAkUmFuZG9tSUQgLiAnIFR3bycgLiAkV2Vic2VydmljZU5hbWUsCiAgICBDYXRlZ29yeUlEICA9PiAkQ2F0ZWdvcnlJRFRocmVlLAogICAgU3RhdGVJRCAgICAgPT4gJFB1YmxpY1N0YXRlSUQsCiAgICBMYW5ndWFnZUlEICA9PiAxLAogICAgS2V5d29yZHMgICAgPT4gJycsCiAgICBGaWVsZDEgICAgICA9PiAnUHJvYmxlbSBEZXNjcmlwdGlvbiAxLi4uJywKICAgIEZpZWxkMiAgICAgID0+ICdTb2x1dGlvbiBub3QgZm91bmQxLi4uJywKICAgIFVzZXJJRCAgICAgID0+ICRVc2VySUQsCiAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICBBcHByb3ZlZCAgICA9PiAxLAopOwoKJFNlbGYtPlRydWUoCiAgICAkSXRlbUlEVHdvLAogICAgIkZBUUFkZCgpIC0gRkFRIFR3byIsCik7CgpteSAkSXRlbUlEVGhyZWUgPSAkRkFRT2JqZWN0LT5GQVFBZGQoCiAgICBUaXRsZSAgICAgICA9PiAnVGl0bGUg5L2/55So5LiL5YiX6K+t6KiAIFRocmVlJyAuICRXZWJzZXJ2aWNlTmFtZSwKICAgIENhdGVnb3J5SUQgID0+ICRDYXRlZ29yeUlERm91ciwKICAgIFN0YXRlSUQgICAgID0+ICRQdWJsaWNTdGF0ZUlELAogICAgTGFuZ3VhZ2VJRCAgPT4gMSwKICAgIEtleXdvcmRzICAgID0+ICcnLAogICAgRmllbGQxICAgICAgPT4gJ0xvb2sgZm9yIG1lICcgLiAkUmFuZG9tSUQgLiAnIG9uIHRoZSBzZWFyY2gnLAogICAgRmllbGQyICAgICAgPT4gJ1NvbHV0aW9uIG5vdCBmb3VuZDEuLi4nLAogICAgVXNlcklEICAgICAgPT4gJFVzZXJJRCwKICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L2h0bWwnLAogICAgQXBwcm92ZWQgICAgPT4gMSwKKTsKCiRTZWxmLT5UcnVlKAogICAgJEl0ZW1JRFRocmVlLAogICAgIkZBUUFkZCgpIC0gRkFRIFRocmVlIiwKKTsKCiMgZ2V0IGNvbW1vbiBvYmplY3RzCm15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwpteSAkTWFpbk9iamVjdCAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok1haW4nKTsKCiMgZmlsZSBjaGVja3MKZm9yIG15ICRGaWxlIChxdyhiaW4gdHh0KSkgewogICAgbXkgJExvY2F0aW9uID0gJENvbmZpZ09iamVjdC0+R2V0KCdIb21lJykKICAgICAgICAuICIvc2NyaXB0cy90ZXN0L3NhbXBsZS9HZW5lcmljSW50ZXJmYWNlL0ZBUS9HSS1GQVEtVGVzdC11dGY4LTEuJEZpbGUiOwoKICAgIG15ICRDb250ZW50UmVmID0gJE1haW5PYmplY3QtPkZpbGVSZWFkKAogICAgICAgIExvY2F0aW9uID0+ICRMb2NhdGlvbiwKICAgICAgICBNb2RlICAgICA9PiAnYmlubW9kZScsCiAgICApOwoKICAgIG15ICRBdHRhY2htZW50ID0gJEZBUU9iamVjdC0+QXR0YWNobWVudEFkZCgKICAgICAgICBJdGVtSUQgICAgICA9PiAkSXRlbUlEVGhyZWUsCiAgICAgICAgQ29udGVudCAgICAgPT4gJHskQ29udGVudFJlZn0sCiAgICAgICAgQ29udGVudFR5cGUgPT4gJ3Rlc3QvJyAuICRGaWxlLAogICAgICAgIEZpbGVuYW1lICAgID0+ICd0ZXN0LicgLiAkRmlsZSwKICAgICAgICBJbmxpbmUgICAgICA9PiAwLCAgICAgICAgICAgICAgICAgIyAoMHwxLCBkZWZhdWx0IDApCiAgICAgICAgVXNlcklEICAgICAgPT4gJFVzZXJJRCwKICAgICk7CiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkQXR0YWNobWVudCwKICAgICAgICAiQXR0YWNobWVudEFkZCgpIC0gRmlsZSAiIC4gJEZpbGUsCiAgICApOwp9CgpteSAkSXRlbUlERm91ciA9ICRGQVFPYmplY3QtPkZBUUFkZCgKICAgIFRpdGxlICAgICAgID0+ICdUaXRsZSBGQVEgJyAuICRSYW5kb21JRCAuICcg0K/Qt9GL0LrQvtCy0YvQtSBGb3VyJyAuICRXZWJzZXJ2aWNlTmFtZSwKICAgIENhdGVnb3J5SUQgID0+ICRDYXRlZ29yeUlERm91ciwKICAgIFN0YXRlSUQgICAgID0+ICRQdWJsaWNTdGF0ZUlELAogICAgTGFuZ3VhZ2VJRCAgPT4gMSwKICAgIEtleXdvcmRzICAgID0+ICcnLAogICAgRmllbGQxICAgICAgPT4gJ1Byb2JsZW0gRGVzY3JpcHRpb24gMS4uLicsCiAgICBGaWVsZDIgICAgICA9PiAnU29sdXRpb24gbm90IGZvdW5kMS4uLicsCiAgICBVc2VySUQgICAgICA9PiAxLAogICAgQ29udGVudFR5cGUgPT4gJ3RleHQvaHRtbCcsCiAgICBBcHByb3ZlZCAgICA9PiAxLAopOwoKJFNlbGYtPlRydWUoCiAgICAkSXRlbUlERm91ciwKICAgICJGQVFBZGQoKSAtIEZBUSBGb3VyIiwKKTsKCiMgZ2V0IGxhbmd1YWdlcyBsaXN0Cm15ICVMYW5ndWFnZXMgPSAkRkFRT2JqZWN0LT5MYW5ndWFnZUxpc3QoCiAgICBVc2VySUQgPT4gMSwKKTsKCm15IEBMYW5ndWFnZUxpc3Q7CmZvciBteSAkS2V5ICggc29ydCBrZXlzICVMYW5ndWFnZXMgKSB7CiAgICBteSAlTGFuZ3VhZ2UgPSAoCiAgICAgICAgSUQgICA9PiAkS2V5LAogICAgICAgIE5hbWUgPT4gJExhbmd1YWdlc3skS2V5fSwKICAgICk7CiAgICBwdXNoIEBMYW5ndWFnZUxpc3QsIHslTGFuZ3VhZ2V9Owp9CgojIGdldCBGQVEKbXkgJUZBUU9uZSA9ICRGQVFPYmplY3QtPkZBUUdldCgKICAgIEl0ZW1JRCAgICAgPT4gJEl0ZW1JRE9uZSwKICAgIEl0ZW1GaWVsZHMgPT4gMSwKICAgIFVzZXJJRCAgICAgPT4gJFVzZXJJRCwKKTsKZm9yZWFjaCBteSAkS2V5ICgga2V5cyAlRkFRT25lICkgewogICAgaWYgKCAhJEZBUU9uZXskS2V5fSApIHsKICAgICAgICAkRkFRT25leyRLZXl9ID0gJyc7CiAgICB9Cn0KCm15ICVGQVFUd28gPSAkRkFRT2JqZWN0LT5GQVFHZXQoCiAgICBJdGVtSUQgICAgID0+ICRJdGVtSURUd28sCiAgICBJdGVtRmllbGRzID0+IDEsCiAgICBVc2VySUQgICAgID0+ICRVc2VySUQsCik7CmZvcmVhY2ggbXkgJEtleSAoIGtleXMgJUZBUVR3byApIHsKICAgIGlmICggISRGQVFUd297JEtleX0gKSB7CiAgICAgICAgJEZBUVR3b3skS2V5fSA9ICcnOwogICAgfQp9CgpteSAlRkFRVGhyZWUgPSAkRkFRT2JqZWN0LT5GQVFHZXQoCiAgICBJdGVtSUQgICAgID0+ICRJdGVtSURUaHJlZSwKICAgIEl0ZW1GaWVsZHMgPT4gMSwKICAgIFVzZXJJRCAgICAgPT4gJFVzZXJJRCwKKTsKZm9yZWFjaCBteSAkS2V5ICgga2V5cyAlRkFRVGhyZWUgKSB7CiAgICBpZiAoICEkRkFRVGhyZWV7JEtleX0gKSB7CiAgICAgICAgJEZBUVRocmVleyRLZXl9ID0gJyc7CiAgICB9Cn0KCm15IEBJbmRleCA9ICRGQVFPYmplY3QtPkF0dGFjaG1lbnRJbmRleCgKICAgIEl0ZW1JRCAgICAgPT4gJEl0ZW1JRFRocmVlLAogICAgU2hvd0lubGluZSA9PiAxLCAgICAgICAgICAgICAgIyAgICggMHwxLCBkZWZhdWx0IDEpCiAgICBVc2VySUQgICAgID0+ICRVc2VySUQsCik7CgpteSBAQXR0YWNobWVudHNUaHJlZTsKZm9yIG15ICRBdHRhY2htZW50IChASW5kZXgpIHsKICAgIG15ICVGaWxlID0gJEZBUU9iamVjdC0+QXR0YWNobWVudEdldCgKICAgICAgICBJdGVtSUQgPT4gJEl0ZW1JRFRocmVlLAogICAgICAgIEZpbGVJRCA9PiAkQXR0YWNobWVudC0+e0ZpbGVJRH0sCiAgICAgICAgVXNlcklEID0+ICRVc2VySUQsCiAgICApOwoKICAgICMgY29udmVydCBjb250ZW50IHRvIGJhc2U2NAogICAgJEZpbGV7Q29udGVudH0gPSBlbmNvZGVfYmFzZTY0KCAkRmlsZXtDb250ZW50fSApOwogICAgJEZpbGV7SW5saW5lfSAgPSAkQXR0YWNobWVudC0+e0lubGluZX07CiAgICAkRmlsZXtGaWxlSUR9ICA9ICRBdHRhY2htZW50LT57RmlsZUlEfTsKCiAgICBwdXNoIEBBdHRhY2htZW50c1RocmVlLCB7JUZpbGV9Owp9CgpteSAlRkFRRm91ciA9ICRGQVFPYmplY3QtPkZBUUdldCgKICAgIEl0ZW1JRCAgICAgPT4gJEl0ZW1JREZvdXIsCiAgICBJdGVtRmllbGRzID0+IDEsCiAgICBVc2VySUQgICAgID0+ICRVc2VySUQsCik7CmZvcmVhY2ggbXkgJEtleSAoIGtleXMgJUZBUUZvdXIgKSB7CiAgICBpZiAoICEkRkFRRm91cnskS2V5fSApIHsKICAgICAgICAkRkFRRm91cnskS2V5fSA9ICcnOwogICAgfQp9CgojIGdldCBhbGwgY2F0ZWdvcmllcyB3aXRoIHRoZWlyIGxvbmcgbmFtZXMKbXkgJENhdGVnb3J5VHJlZSA9ICRGQVFPYmplY3QtPkdldFB1YmxpY0NhdGVnb3JpZXNMb25nTmFtZXMoCiAgICBWYWxpZCAgPT4gMSwKICAgIFR5cGUgICA9PiAncncnLAogICAgVXNlcklEID0+ICRVc2VySUQsCik7Cm15IEBQdWJsaWNDYXRlZ29yeUxpc3Q7CmZvciBteSAkS2V5ICggc29ydCgga2V5cyAleyRDYXRlZ29yeVRyZWV9ICkgKSB7CiAgICBteSAlQ2F0ZWdvcnkgPSAoCiAgICAgICAgSUQgICA9PiAkS2V5LAogICAgICAgIE5hbWUgPT4gJENhdGVnb3J5VHJlZS0+eyRLZXl9LAogICAgKTsKICAgIHB1c2ggQFB1YmxpY0NhdGVnb3J5TGlzdCwgeyVDYXRlZ29yeX07Cn0KCiMgY3JlYXRlIHdlYi1zZXJ2aWNlIG9iamVjdApteSAkV2Vic2VydmljZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHZW5lcmljSW50ZXJmYWNlOjpXZWJzZXJ2aWNlJyk7CiRTZWxmLT5JcygKICAgICdLZXJuZWw6OlN5c3RlbTo6R2VuZXJpY0ludGVyZmFjZTo6V2Vic2VydmljZScsCiAgICByZWYgJFdlYnNlcnZpY2VPYmplY3QsCiAgICAiQ3JlYXRlIHdlYnNlcnZpY2Ugb2JqZWN0IiwKKTsKCm15ICRXZWJzZXJ2aWNlSUQgPSAkV2Vic2VydmljZU9iamVjdC0+V2Vic2VydmljZUFkZCgKICAgIE5hbWUgICA9PiAkV2Vic2VydmljZU5hbWUsCiAgICBDb25maWcgPT4gewogICAgICAgIERlYnVnZ2VyID0+IHsKICAgICAgICAgICAgRGVidWdUaHJlc2hvbGQgPT4gJ2RlYnVnJywKICAgICAgICAgICAgVGVzdE1vZGUgICAgICAgPT4gMSwKICAgICAgICB9LAogICAgICAgIFByb3ZpZGVyID0+IHsKICAgICAgICAgICAgVHJhbnNwb3J0ID0+IHsKICAgICAgICAgICAgICAgIFR5cGUgPT4gJ0hUVFA6OlNPQVAnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAogICAgVmFsaWRJRCA9PiAxLAogICAgVXNlcklEICA9PiAxLAopOwokU2VsZi0+VHJ1ZSgKICAgICRXZWJzZXJ2aWNlSUQsCiAgICAiQWRkZWQgV2Vic2VydmljZSIsCik7CgojIGdldCByZW1vdGUgaG9zdCB3aXRoIHNvbWUgcHJlY2F1dGlvbnMgZm9yIGNlcnRhaW4gdW5pdCB0ZXN0IHN5c3RlbXMKbXkgJEhvc3QgPSAkSGVscGVyT2JqZWN0LT5HZXRUZXN0SFRUUEhvc3RuYW1lKCk7CgojIHVzZSBoYXJkIGNvZGVkIGxvY2FsaG9zdCBJUCBhZGRyZXNzCmlmICggISRIb3N0ICkgewogICAgJEhvc3QgPSAnMTI3LjAuMC4xJzsKfQoKIyBwcmVwYXJlIHdlYiBzZXJ2aWNlIGNvbmZpZwpteSAkUmVtb3RlU3lzdGVtID0KICAgICRDb25maWdPYmplY3QtPkdldCgnSHR0cFR5cGUnKQogICAgLiAnOi8vJwogICAgLiAkSG9zdAogICAgLiAnLycKICAgIC4gJENvbmZpZ09iamVjdC0+R2V0KCdTY3JpcHRBbGlhcycpCiAgICAuICcvbnBoLWdlbmVyaWNpbnRlcmZhY2UucGwvV2Vic2VydmljZUlELycKICAgIC4gJFdlYnNlcnZpY2VJRDsKCm15ICRXZWJzZXJ2aWNlQ29uZmlnID0gewoKICAgICMgICAgTmFtZSA9PiAnJywKICAgIERlc2NyaXB0aW9uID0+CiAgICAgICAgJ1Rlc3QgZm9yICB1c2luZyBTT0FQIHRyYW5zcG9ydCBiYWNrZW5kLicsCiAgICBEZWJ1Z2dlciA9PiB7CiAgICAgICAgRGVidWdUaHJlc2hvbGQgPT4gJ2RlYnVnJywKICAgICAgICBUZXN0TW9kZSAgICAgICA9PiAxLAogICAgfSwKICAgIFByb3ZpZGVyID0+IHsKICAgICAgICBUcmFuc3BvcnQgPT4gewogICAgICAgICAgICBUeXBlICAgPT4gJ0hUVFA6OlNPQVAnLAogICAgICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICAgICAgTWF4TGVuZ3RoID0+IDEwMDAwMDAwLAogICAgICAgICAgICAgICAgTmFtZVNwYWNlID0+ICdodHRwOi8vb3RvYm8ub3JnL1NvYXBUZXN0SW50ZXJmYWNlLycsCiAgICAgICAgICAgICAgICBFbmRwb2ludCAgPT4gJFJlbW90ZVN5c3RlbSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIE9wZXJhdGlvbiA9PiB7CiAgICAgICAgICAgIExhbmd1YWdlTGlzdCA9PiB7CiAgICAgICAgICAgICAgICBUeXBlID0+ICdGQVE6Okxhbmd1YWdlTGlzdCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFB1YmxpY0NhdGVnb3J5TGlzdCA9PiB7CiAgICAgICAgICAgICAgICBUeXBlID0+ICdGQVE6OlB1YmxpY0NhdGVnb3J5TGlzdCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFB1YmxpY0ZBUVNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBUeXBlID0+ICdGQVE6OlB1YmxpY0ZBUVNlYXJjaCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFB1YmxpY0ZBUUdldCA9PiB7CiAgICAgICAgICAgICAgICBUeXBlID0+ICdGQVE6OlB1YmxpY0ZBUUdldCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH0sCiAgICBSZXF1ZXN0ZXIgPT4gewogICAgICAgIFRyYW5zcG9ydCA9PiB7CiAgICAgICAgICAgIFR5cGUgICA9PiAnSFRUUDo6U09BUCcsCiAgICAgICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgICAgICBOYW1lU3BhY2UgPT4gJ2h0dHA6Ly9vdG9iby5vcmcvU29hcFRlc3RJbnRlcmZhY2UvJywKICAgICAgICAgICAgICAgIEVuY29kaW5nICA9PiAnVVRGLTgnLAogICAgICAgICAgICAgICAgRW5kcG9pbnQgID0+ICRSZW1vdGVTeXN0ZW0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBJbnZva2VyID0+IHsKICAgICAgICAgICAgTGFuZ3VhZ2VMaXN0ID0+IHsKICAgICAgICAgICAgICAgIFR5cGUgPT4gJ1Rlc3Q6OlRlc3RTaW1wbGUnLAogICAgICAgICAgICB9LAogICAgICAgICAgICBQdWJsaWNDYXRlZ29yeUxpc3QgPT4gewogICAgICAgICAgICAgICAgVHlwZSA9PiAnVGVzdDo6VGVzdFNpbXBsZScsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFB1YmxpY0ZBUVNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBUeXBlID0+ICdUZXN0OjpUZXN0U2ltcGxlJywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgUHVibGljRkFRR2V0ID0+IHsKICAgICAgICAgICAgICAgIFR5cGUgPT4gJ1Rlc3Q6OlRlc3RTaW1wbGUnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAp9OwoKIyB1cGRhdGUgd2Vic2VydmljZSB3aXRoIHJlYWwgY29uZmlnCm15ICRXZWJzZXJ2aWNlVXBkYXRlID0gJFdlYnNlcnZpY2VPYmplY3QtPldlYnNlcnZpY2VVcGRhdGUoCiAgICBJRCAgICAgID0+ICRXZWJzZXJ2aWNlSUQsCiAgICBOYW1lICAgID0+ICRXZWJzZXJ2aWNlTmFtZSwKICAgIENvbmZpZyAgPT4gJFdlYnNlcnZpY2VDb25maWcsCiAgICBWYWxpZElEID0+IDEsCiAgICBVc2VySUQgID0+ICRVc2VySUQsCik7CiRTZWxmLT5UcnVlKAogICAgJFdlYnNlcnZpY2VVcGRhdGUsCiAgICAiVXBkYXRlZCBXZWJzZXJ2aWNlICRXZWJzZXJ2aWNlSUQgLSAkV2Vic2VydmljZU5hbWUiLAopOwoKbXkgQFRlc3RzID0gKAogICAgewogICAgICAgIE5hbWUgICAgICAgICAgICAgICAgICAgICA9PiAnVGVzdCAxJywKICAgICAgICBTdWNjZXNzUmVxdWVzdCAgICAgICAgICAgPT4gJzEnLAogICAgICAgIFJlcXVlc3REYXRhICAgICAgICAgICAgICA9PiB7fSwKICAgICAgICBFeHBlY3RlZFJldHVyblJlbW90ZURhdGEgPT4gewogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIExhbmd1YWdlID0+IFxATGFuZ3VhZ2VMaXN0LAogICAgICAgICAgICB9LAogICAgICAgICAgICBTdWNjZXNzID0+IDEsCiAgICAgICAgfSwKICAgICAgICBPcGVyYXRpb24gPT4gJ0xhbmd1YWdlTGlzdCcsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgICAgICAgICAgICAgICA9PiAnVGVzdCAyJywKICAgICAgICBTdWNjZXNzUmVxdWVzdCAgICAgICAgICAgPT4gJzEnLAogICAgICAgIFJlcXVlc3REYXRhICAgICAgICAgICAgICA9PiB7fSwKICAgICAgICBFeHBlY3RlZFJldHVyblJlbW90ZURhdGEgPT4gewogICAgICAgICAgICBTdWNjZXNzID0+IDEsCiAgICAgICAgICAgIERhdGEgICAgPT4gewogICAgICAgICAgICAgICAgQ2F0ZWdvcnkgPT4gXEBQdWJsaWNDYXRlZ29yeUxpc3QsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBPcGVyYXRpb24gPT4gJ1B1YmxpY0NhdGVnb3J5TGlzdCcsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgICAgID0+ICdUZXN0IDMnLAogICAgICAgIFN1Y2Nlc3NSZXF1ZXN0ID0+ICcxJywKICAgICAgICBSZXF1ZXN0RGF0YSAgICA9PiB7CiAgICAgICAgICAgIFRpdGxlICAgPT4gJ1RpdGxlIEZBUSAnIC4gJFJhbmRvbUlELAogICAgICAgICAgICBPcmRlckJ5ID0+ICdGQVFJRCcsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJldHVyblJlbW90ZURhdGEgPT4gewogICAgICAgICAgICBTdWNjZXNzID0+IDEsCiAgICAgICAgICAgIERhdGEgICAgPT4gewogICAgICAgICAgICAgICAgSUQgPT4gWwogICAgICAgICAgICAgICAgICAgICRJdGVtSURGb3VyLAogICAgICAgICAgICAgICAgICAgICRJdGVtSURUd28sCiAgICAgICAgICAgICAgICAgICAgJEl0ZW1JRE9uZSwKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBPcGVyYXRpb24gPT4gJ1B1YmxpY0ZBUVNlYXJjaCcsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgICAgID0+ICdUZXN0IDQnLAogICAgICAgIFN1Y2Nlc3NSZXF1ZXN0ID0+ICcxJywKICAgICAgICBSZXF1ZXN0RGF0YSAgICA9PiB7CiAgICAgICAgICAgIFdoYXQgICAgPT4gJ0xvb2sgZm9yIG1lICcgLiAkUmFuZG9tSUQsCiAgICAgICAgICAgIE9yZGVyQnkgPT4gJ0ZBUUlEJywKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmV0dXJuUmVtb3RlRGF0YSA9PiB7CiAgICAgICAgICAgIFN1Y2Nlc3MgPT4gMSwKICAgICAgICAgICAgRGF0YSAgICA9PiB7CiAgICAgICAgICAgICAgICBJRCA9PiAkSXRlbUlEVGhyZWUsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBPcGVyYXRpb24gPT4gJ1B1YmxpY0ZBUVNlYXJjaCcsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgICAgID0+ICdUZXN0IDUnLAogICAgICAgIFN1Y2Nlc3NSZXF1ZXN0ID0+ICcxJywKICAgICAgICBSZXF1ZXN0RGF0YSAgICA9PiB7CiAgICAgICAgICAgIEl0ZW1JRCA9PiAkSXRlbUlERm91ciwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmV0dXJuUmVtb3RlRGF0YSA9PiB7CiAgICAgICAgICAgIFN1Y2Nlc3MgPT4gMSwKICAgICAgICAgICAgRGF0YSAgICA9PiB7CiAgICAgICAgICAgICAgICBGQVFJdGVtID0+IHsKICAgICAgICAgICAgICAgICAgICAlRkFRRm91ciwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJldHVybkxvY2FsRGF0YSA9PiB7CiAgICAgICAgICAgIFN1Y2Nlc3MgPT4gMSwKICAgICAgICAgICAgRGF0YSAgICA9PiB7CiAgICAgICAgICAgICAgICBGQVFJdGVtID0+IFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICVGQVFGb3VyCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIE9wZXJhdGlvbiA9PiAnUHVibGljRkFRR2V0JywKICAgICAgICBJdGVtSUQgICAgPT4gJEl0ZW1JREZvdXIsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgICAgID0+ICdUZXN0IDYnLAogICAgICAgIFN1Y2Nlc3NSZXF1ZXN0ID0+ICcxJywKICAgICAgICBSZXF1ZXN0RGF0YSAgICA9PiB7CiAgICAgICAgICAgIElEID0+ICRJdGVtSURGb3VyLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXR1cm5SZW1vdGVEYXRhID0+IHsKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBFcnJvciA9PiB7CiAgICAgICAgICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdQdWJsaWNGQVFHZXQuTWlzc2luZ1BhcmFtZXRlcicsCiAgICAgICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICdQdWJsaWNGQVFHZXQ6IEdvdCBubyBJdGVtSUQhJwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAogICAgICAgICAgICBTdWNjZXNzID0+IDEKCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJldHVybkxvY2FsRGF0YSA9PiB7CiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgRXJyb3IgPT4gewogICAgICAgICAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnUHVibGljRkFRR2V0Lk1pc3NpbmdQYXJhbWV0ZXInLAogICAgICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAnUHVibGljRkFRR2V0OiBHb3Qgbm8gSXRlbUlEIScKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgU3VjY2VzcyA9PiAxCgogICAgICAgIH0sCiAgICAgICAgT3BlcmF0aW9uID0+ICdQdWJsaWNGQVFHZXQnLAogICAgICAgIEl0ZW1JRCAgICA9PiAkSXRlbUlERm91ciwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJ1Rlc3QgNycsCiAgICAgICAgU3VjY2Vzc1JlcXVlc3QgPT4gJzEnLAogICAgICAgIFJlcXVlc3REYXRhICAgID0+IHsKICAgICAgICAgICAgSXRlbUlEID0+ICdOb3RJdGVtSUQnLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXR1cm5SZW1vdGVEYXRhID0+IHsKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBFcnJvciA9PiB7CiAgICAgICAgICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdQdWJsaWNGQVFHZXQuTm90VmFsaWRGQVFJRCcsCiAgICAgICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+CiAgICAgICAgICAgICAgICAgICAgICAgICdQdWJsaWNGQVFHZXQ6IENvdWxkIG5vdCBnZXQgRkFRIGRhdGEgaW4gS2VybmVsOjpHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb246OkZBUTo6UHVibGljRkFRR2V0OjpSdW4oKScKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgU3VjY2VzcyA9PiAxCgogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXR1cm5Mb2NhbERhdGEgPT4gewogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIEVycm9yID0+IHsKICAgICAgICAgICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1B1YmxpY0ZBUUdldC5Ob3RWYWxpZEZBUUlEJywKICAgICAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICAgICAgICAgJ1B1YmxpY0ZBUUdldDogQ291bGQgbm90IGdldCBGQVEgZGF0YSBpbiBLZXJuZWw6OkdlbmVyaWNJbnRlcmZhY2U6Ok9wZXJhdGlvbjo6RkFROjpQdWJsaWNGQVFHZXQ6OlJ1bigpJwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAogICAgICAgICAgICBTdWNjZXNzID0+IDEKCiAgICAgICAgfSwKICAgICAgICBPcGVyYXRpb24gPT4gJ1B1YmxpY0ZBUUdldCcsCiAgICAgICAgSXRlbUlEICAgID0+ICdOb3RJdGVtSUQnLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgICAgICAgICA9PiAnVGVzdCA4JywKICAgICAgICBTdWNjZXNzUmVxdWVzdCA9PiAnMScsCiAgICAgICAgUmVxdWVzdERhdGEgICAgPT4gewogICAgICAgICAgICBJdGVtSUQgPT4gJEl0ZW1JRFRocmVlLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXR1cm5SZW1vdGVEYXRhID0+IHsKICAgICAgICAgICAgU3VjY2VzcyA9PiAxLAogICAgICAgICAgICBEYXRhICAgID0+IHsKICAgICAgICAgICAgICAgIEZBUUl0ZW0gPT4gewogICAgICAgICAgICAgICAgICAgICVGQVFUaHJlZSwKICAgICAgICAgICAgICAgICAgICBBdHRhY2htZW50ID0+IFxAQXR0YWNobWVudHNUaHJlZSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJldHVybkxvY2FsRGF0YSA9PiB7CiAgICAgICAgICAgIFN1Y2Nlc3MgPT4gMSwKICAgICAgICAgICAgRGF0YSAgICA9PiB7CiAgICAgICAgICAgICAgICBGQVFJdGVtID0+IFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEF0dGFjaG1lbnQgPT4gXEBBdHRhY2htZW50c1RocmVlLAogICAgICAgICAgICAgICAgICAgICAgICAlRkFRVGhyZWUKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIE9wZXJhdGlvbiA9PiAnUHVibGljRkFRR2V0JywKICAgICAgICBJdGVtSUQgICAgPT4gJEl0ZW1JRFRocmVlLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgICAgICAgICA9PiAnVGVzdCA5JywKICAgICAgICBTdWNjZXNzUmVxdWVzdCA9PiAnMScsCiAgICAgICAgUmVxdWVzdERhdGEgICAgPT4gewogICAgICAgICAgICBPcmRlckJ5ID0+ICdOb3RFeGlzdGluZ0ZpZWxkJywKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmV0dXJuUmVtb3RlRGF0YSA9PiB7CiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgRXJyb3IgPT4gewogICAgICAgICAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnUHVibGljRkFRU2VhcmNoLk5vdEZBUURhdGEnLAogICAgICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PgogICAgICAgICAgICAgICAgICAgICAgICAnUHVibGljRkFRU2VhcmNoOiBDb3VsZCBub3QgZ2V0IEZBUSBkYXRhIGluIEtlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uOjpGQVE6OlB1YmxpY0ZBUVNlYXJjaDo6UnVuKCknCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFN1Y2Nlc3MgPT4gMQogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXR1cm5Mb2NhbERhdGEgPT4gewogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIEVycm9yID0+IHsKICAgICAgICAgICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ1B1YmxpY0ZBUVNlYXJjaC5Ob3RGQVFEYXRhJywKICAgICAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICAgICAgICAgJ1B1YmxpY0ZBUVNlYXJjaDogQ291bGQgbm90IGdldCBGQVEgZGF0YSBpbiBLZXJuZWw6OkdlbmVyaWNJbnRlcmZhY2U6Ok9wZXJhdGlvbjo6RkFROjpQdWJsaWNGQVFTZWFyY2g6OlJ1bigpJwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAogICAgICAgICAgICBTdWNjZXNzID0+IDEKICAgICAgICB9LAogICAgICAgIE9wZXJhdGlvbiA9PiAnUHVibGljRkFRU2VhcmNoJywKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJ1Rlc3QgMTAnLAogICAgICAgIFN1Y2Nlc3NSZXF1ZXN0ID0+ICcxJywKICAgICAgICBSZXF1ZXN0RGF0YSAgICA9PiB7CiAgICAgICAgICAgIFdoYXQgPT4gJ05vdEV4aXN0aW5nVmFsdWUnLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXR1cm5SZW1vdGVEYXRhID0+IHsKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBFcnJvciA9PiB7CiAgICAgICAgICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdQdWJsaWNGQVFTZWFyY2guTm90RkFRRGF0YScsCiAgICAgICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+CiAgICAgICAgICAgICAgICAgICAgICAgICdQdWJsaWNGQVFTZWFyY2g6IENvdWxkIG5vdCBnZXQgRkFRIGRhdGEgaW4gS2VybmVsOjpHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb246OkZBUTo6UHVibGljRkFRU2VhcmNoOjpSdW4oKScKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgU3VjY2VzcyA9PiAxCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJldHVybkxvY2FsRGF0YSA9PiB7CiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgRXJyb3IgPT4gewogICAgICAgICAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnUHVibGljRkFRU2VhcmNoLk5vdEZBUURhdGEnLAogICAgICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PgogICAgICAgICAgICAgICAgICAgICAgICAnUHVibGljRkFRU2VhcmNoOiBDb3VsZCBub3QgZ2V0IEZBUSBkYXRhIGluIEtlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uOjpGQVE6OlB1YmxpY0ZBUVNlYXJjaDo6UnVuKCknCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFN1Y2Nlc3MgPT4gMQogICAgICAgIH0sCiAgICAgICAgT3BlcmF0aW9uID0+ICdQdWJsaWNGQVFTZWFyY2gnLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgICAgICAgICA9PiAnVGVzdCAxMScsCiAgICAgICAgU3VjY2Vzc1JlcXVlc3QgPT4gJzEnLAogICAgICAgIFJlcXVlc3REYXRhICAgID0+IHsKICAgICAgICAgICAgSXRlbUlEID0+ICIkSXRlbUlET25lLCRJdGVtSURUd28sJEl0ZW1JRFRocmVlIiwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmV0dXJuUmVtb3RlRGF0YSA9PiB7CiAgICAgICAgICAgIFN1Y2Nlc3MgPT4gMSwKICAgICAgICAgICAgRGF0YSAgICA9PiB7CiAgICAgICAgICAgICAgICBGQVFJdGVtID0+IFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICVGQVFPbmUKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJUZBUVR3bwogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAlRkFRVGhyZWUsCiAgICAgICAgICAgICAgICAgICAgICAgIEF0dGFjaG1lbnQgPT4gXEBBdHRhY2htZW50c1RocmVlLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgT3BlcmF0aW9uID0+ICdQdWJsaWNGQVFHZXQnLAogICAgICAgIEl0ZW1JRCAgICA9PiAiJEl0ZW1JRE9uZSwkSXRlbUlEVHdvLCRJdGVtSURUaHJlZSIsCiAgICB9LAoKKTsKCiMgZGVidWdnZXIgb2JqZWN0Cm15ICREZWJ1Z2dlck9iamVjdCA9IEtlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6RGVidWdnZXItPm5ldygKICAgIERlYnVnZ2VyQ29uZmlnID0+IHsKICAgICAgICBEZWJ1Z1RocmVzaG9sZCA9PiAnZGVidWcnLAogICAgICAgIFRlc3RNb2RlICAgICAgID0+IDEsCiAgICB9LAogICAgV2Vic2VydmljZUlEICAgICAgPT4gJFdlYnNlcnZpY2VJRCwKICAgIENvbW11bmljYXRpb25UeXBlID0+ICdQcm92aWRlcicsCik7CiRTZWxmLT5JcygKICAgIHJlZiAkRGVidWdnZXJPYmplY3QsCiAgICAnS2VybmVsOjpHZW5lcmljSW50ZXJmYWNlOjpEZWJ1Z2dlcicsCiAgICAnRGVidWdnZXJPYmplY3QgaW5zdGFudGlhdGUgY29ycmVjdGx5JywKKTsKCmZvciBteSAkVGVzdCAoQFRlc3RzKSB7CgogICAgIyBjcmVhdGUgbG9jYWwgb2JqZWN0CiAgICBteSAkTG9jYWxPYmplY3QgPSAiS2VybmVsOjpHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb246OkZBUTo6JFRlc3QtPntPcGVyYXRpb259Ii0+bmV3KAogICAgICAgIERlYnVnZ2VyT2JqZWN0ID0+ICREZWJ1Z2dlck9iamVjdCwKICAgICAgICBXZWJzZXJ2aWNlSUQgICA9PiAkV2Vic2VydmljZUlELAogICAgKTsKCiAgICAkU2VsZi0+SXMoCiAgICAgICAgIktlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uOjpGQVE6OiRUZXN0LT57T3BlcmF0aW9ufSIsCiAgICAgICAgcmVmICRMb2NhbE9iamVjdCwKICAgICAgICAiJFRlc3QtPntOYW1lfSAtIENyZWF0ZSBsb2NhbCBvYmplY3QiLAogICAgKTsKCiAgICAjIHN0YXJ0IHJlcXVlc3RlciB3aXRoIG91ciB3ZWItc2VydmljZQogICAgbXkgJExvY2FsUmVzdWx0ID0gJExvY2FsT2JqZWN0LT5SdW4oCiAgICAgICAgV2Vic2VydmljZUlEID0+ICRXZWJzZXJ2aWNlSUQsCiAgICAgICAgSW52b2tlciAgICAgID0+ICRUZXN0LT57T3BlcmF0aW9ufSwKICAgICAgICBEYXRhICAgICAgICAgPT4gJFRlc3QtPntSZXF1ZXN0RGF0YX0sCiAgICApOwoKICAgICMgY2hlY2sgcmVzdWx0CiAgICAkU2VsZi0+SXMoCiAgICAgICAgJ0hBU0gnLAogICAgICAgIHJlZiAkTG9jYWxSZXN1bHQsCiAgICAgICAgIiRUZXN0LT57TmFtZX0gLSBMb2NhbCByZXN1bHQgc3RydWN0dXJlIGlzIHZhbGlkIiwKICAgICk7CgogICAgIyB3b3JrYXJvdW5kIGJlY2F1c2UgcmVzdWx0cyBmcm9tIGRpcmVjdCBjYWxsIGFuZAogICAgIyBmcm9tIFNPQVAgY2FsbCBhcmUgYSBsaXR0bGUgYml0IGRpZmZlcmVudAogICAgaWYgKCAkVGVzdC0+e09wZXJhdGlvbn0gZXEgJ1B1YmxpY0ZBUUdldCcgKSB7CgogICAgICAgIGlmICggcmVmICRMb2NhbFJlc3VsdC0+e0RhdGF9LT57RkFRSXRlbX0gZXEgJ0FSUkFZJyApIHsKICAgICAgICAgICAgZm9yIG15ICRGQVFJdGVtICggQHsgJExvY2FsUmVzdWx0LT57RGF0YX0tPntGQVFJdGVtfSB9ICkgewogICAgICAgICAgICAgICAgZm9yIG15ICRLZXkgKCBzb3J0IGtleXMgJXskRkFRSXRlbX0gKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAhJEZBUUl0ZW0tPnskS2V5fSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJEZBUUl0ZW0tPnskS2V5fSA9ICcnOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICB9CgogICAgIyByZW1vdmUgRXJyb3JNZXNzYWdlIHBhcmFtZXRlciBmcm9tIGRpcmVjdCBjYWxsCiAgICAjIHJlc3VsdCB0byBiZSBjb25zaXN0ZW50IHdpdGggU09BUCBjYWxsIHJlc3VsdAogICAgaWYgKCAkTG9jYWxSZXN1bHQtPntFcnJvck1lc3NhZ2V9ICkgewogICAgICAgIGRlbGV0ZSAkTG9jYWxSZXN1bHQtPntFcnJvck1lc3NhZ2V9OwogICAgfQoKICAgIGlmICggJFRlc3QtPntFeHBlY3RlZFJldHVybkxvY2FsRGF0YX0gKSB7CiAgICAgICAgJFNlbGYtPklzRGVlcGx5KAogICAgICAgICAgICAkTG9jYWxSZXN1bHQsCiAgICAgICAgICAgICRUZXN0LT57RXhwZWN0ZWRSZXR1cm5Mb2NhbERhdGF9LAogICAgICAgICAgICAiJFRlc3QtPntOYW1lfSAtIExvY2FsIHJlc3VsdCBtYXRjaGVkIHdpdGggcmVtb3RlIHJlc3VsdC4iLAogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkU2VsZi0+SXNEZWVwbHkoCiAgICAgICAgICAgICRMb2NhbFJlc3VsdCwKICAgICAgICAgICAgJFRlc3QtPntFeHBlY3RlZFJldHVyblJlbW90ZURhdGF9LAogICAgICAgICAgICAiJFRlc3QtPntOYW1lfSAtIExvY2FsIHJlc3VsdCBtYXRjaGVkIHdpdGggcmVtb3RlIHJlc3VsdC4iLAogICAgICAgICk7CiAgICB9CgogICAgIyByZW1vdGUgY2FsbCB1c2luZyB0aGUgc3lzdGVtIGFzIFJlcXVlc3RlciBhbmQgUHJvdmlkZXIKCiAgICAjIGNyZWF0ZSByZXF1ZXN0ZXIgb2JqZWN0CiAgICBteSAkUmVxdWVzdGVyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpHZW5lcmljSW50ZXJmYWNlOjpSZXF1ZXN0ZXInKTsKICAgICRTZWxmLT5JcygKICAgICAgICAnS2VybmVsOjpHZW5lcmljSW50ZXJmYWNlOjpSZXF1ZXN0ZXInLAogICAgICAgIHJlZiAkUmVxdWVzdGVyT2JqZWN0LAogICAgICAgICIkVGVzdC0+e05hbWV9IC0gQ3JlYXRlIHJlcXVlc3RlciBvYmplY3QiLAogICAgKTsKCiAgICAjIHN0YXJ0IHJlcXVlc3RlciB3aXRoIG91ciB3ZWItc2VydmljZQogICAgbXkgJFJlcXVlc3RlclJlc3VsdCA9ICRSZXF1ZXN0ZXJPYmplY3QtPlJ1bigKICAgICAgICBXZWJzZXJ2aWNlSUQgPT4gJFdlYnNlcnZpY2VJRCwKICAgICAgICBJbnZva2VyICAgICAgPT4gJFRlc3QtPntPcGVyYXRpb259LAogICAgICAgIERhdGEgICAgICAgICA9PiAkVGVzdC0+e1JlcXVlc3REYXRhfSwKICAgICk7CgogICAgIyBjaGVjayByZXN1bHQKICAgICRTZWxmLT5JcygKICAgICAgICAnSEFTSCcsCiAgICAgICAgcmVmICRSZXF1ZXN0ZXJSZXN1bHQsCiAgICAgICAgIiRUZXN0LT57TmFtZX0gLSBSZXF1ZXN0ZXIgcmVzdWx0IHN0cnVjdHVyZSBpcyB2YWxpZCIsCiAgICApOwoKICAgICMgd29ya2Fyb3VuZCBiZWNhdXNlIHJlc3VsdHMgZnJvbSBkaXJlY3QgY2FsbCBhbmQKICAgICMgZnJvbSBTT0FQIGNhbGwgYXJlIGEgbGl0dGxlIGJpdCBkaWZmZXJlbnQKICAgIGlmICggJFRlc3QtPntPcGVyYXRpb259IGVxICdQdWJsaWNGQVFHZXQnICYmICRUZXN0LT57U3VjY2Vzc1JlcXVlc3R9ICkgewoKICAgICAgICBpZiAoIHJlZiAkUmVxdWVzdGVyUmVzdWx0LT57RGF0YX0tPntGQVFJdGVtfSBlcSAnSEFTSCcgKSB7CiAgICAgICAgICAgIGZvciBteSAkS2V5ICggc29ydCBrZXlzICV7ICRSZXF1ZXN0ZXJSZXN1bHQtPntEYXRhfS0+e0ZBUUl0ZW19IH0gKSB7CiAgICAgICAgICAgICAgICBpZiAoICEkUmVxdWVzdGVyUmVzdWx0LT57RGF0YX0tPntGQVFJdGVtfS0+eyRLZXl9ICkgewogICAgICAgICAgICAgICAgICAgICRSZXF1ZXN0ZXJSZXN1bHQtPntEYXRhfS0+e0ZBUUl0ZW19LT57JEtleX0gPSAnJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNpZiAoIHJlZiAkUmVxdWVzdGVyUmVzdWx0LT57RGF0YX0tPntGQVFJdGVtfSBlcSAnQVJSQVknICkgewogICAgICAgICAgICBmb3IgbXkgJEZBUUl0ZW0gKCBAeyAkUmVxdWVzdGVyUmVzdWx0LT57RGF0YX0tPntGQVFJdGVtfSB9ICkgewogICAgICAgICAgICAgICAgZm9yIG15ICRLZXkgKCBzb3J0IGtleXMgJXskRkFRSXRlbX0gKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAhJEZBUUl0ZW0tPnskS2V5fSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJEZBUUl0ZW0tPnskS2V5fSA9ICcnOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAkU2VsZi0+SXMoCiAgICAgICAgJFJlcXVlc3RlclJlc3VsdC0+e1N1Y2Nlc3N9LAogICAgICAgICRUZXN0LT57U3VjY2Vzc1JlcXVlc3R9LAogICAgICAgICIkVGVzdC0+e05hbWV9IC0gUmVxdWVzdGVyIC0gU3VjY2VzcyBzdGF0dXMiLAogICAgKTsKCiAgICAkU2VsZi0+SXNEZWVwbHkoCiAgICAgICAgJFJlcXVlc3RlclJlc3VsdCwKICAgICAgICAkVGVzdC0+e0V4cGVjdGVkUmV0dXJuUmVtb3RlRGF0YX0sCiAgICAgICAgIiRUZXN0LT57TmFtZX0gLSBSZXF1ZXN0ZXIgc3VjY2Vzc2Z1bCByZXN1bHQgKG5lZWRzIGNvbmZpZ3VyZWQgYW5kIHJ1bm5pbmcgd2Vic2VydmVyKSIsCiAgICApOwoKfSAgICAjZW5kIGxvb3AKCiMgY2xlYW4gdXAgd2ViLXNlcnZpY2UKbXkgJFdlYnNlcnZpY2VEZWxldGUgPSAkV2Vic2VydmljZU9iamVjdC0+V2Vic2VydmljZURlbGV0ZSgKICAgIElEICAgICA9PiAkV2Vic2VydmljZUlELAogICAgVXNlcklEID0+ICRVc2VySUQsCik7CiRTZWxmLT5UcnVlKAogICAgJFdlYnNlcnZpY2VEZWxldGUsCiAgICAiRGVsZXRlZCBXZWJzLWVydmljZSAkV2Vic2VydmljZUlEIiwKKTsKCiMgY2xlYW4gdXAgRkFRIHN0dWZmCm15ICRGQVFEZWxldGUgPSAkRkFRT2JqZWN0LT5GQVFEZWxldGUoCiAgICBJdGVtSUQgPT4gJEl0ZW1JRE9uZSwKICAgIFVzZXJJRCA9PiAkVXNlcklELAopOwokU2VsZi0+VHJ1ZSgKICAgICRGQVFEZWxldGUsCiAgICAiRkFRRGVsZXRlKCkgLSBJdGVtSUQ6ICRJdGVtSURPbmUiLAopOwoKJEZBUURlbGV0ZSA9ICRGQVFPYmplY3QtPkZBUURlbGV0ZSgKICAgIEl0ZW1JRCA9PiAkSXRlbUlEVHdvLAogICAgVXNlcklEID0+ICRVc2VySUQsCik7CiRTZWxmLT5UcnVlKAogICAgJEZBUURlbGV0ZSwKICAgICJGQVFEZWxldGUoKSAtIEl0ZW1JRDogJEl0ZW1JRFR3byIsCik7CgokRkFRRGVsZXRlID0gJEZBUU9iamVjdC0+RkFRRGVsZXRlKAogICAgSXRlbUlEID0+ICRJdGVtSURUaHJlZSwKICAgIFVzZXJJRCA9PiAkVXNlcklELAopOwokU2VsZi0+VHJ1ZSgKICAgICRGQVFEZWxldGUsCiAgICAiRkFRRGVsZXRlKCkgLSBJdGVtSUQ6ICRJdGVtSURUaHJlZSIsCik7CgokRkFRRGVsZXRlID0gJEZBUU9iamVjdC0+RkFRRGVsZXRlKAogICAgSXRlbUlEID0+ICRJdGVtSURGb3VyLAogICAgVXNlcklEID0+ICRVc2VySUQsCik7CiRTZWxmLT5UcnVlKAogICAgJEZBUURlbGV0ZSwKICAgICJGQVFEZWxldGUoKSAtIEl0ZW1JRDogJEl0ZW1JREZvdXIiLAopOwoKbXkgJENhdGVnb3J5RGVsZXRlID0gJEZBUU9iamVjdC0+Q2F0ZWdvcnlEZWxldGUoCiAgICBDYXRlZ29yeUlEID0+ICRDYXRlZ29yeUlERm91ciwKICAgIFVzZXJJRCAgICAgPT4gJFVzZXJJRCwKKTsKCiRTZWxmLT5UcnVlKAogICAgJENhdGVnb3J5RGVsZXRlLAogICAgIkNhdGVnb3J5RGVsZXRlKCkgLSBDYXRlZ29yeTogJENhdGVnb3J5SURGb3VyIiwKKTsKCiRDYXRlZ29yeURlbGV0ZSA9ICRGQVFPYmplY3QtPkNhdGVnb3J5RGVsZXRlKAogICAgQ2F0ZWdvcnlJRCA9PiAkQ2F0ZWdvcnlJRFRocmVlLAogICAgVXNlcklEICAgICA9PiAkVXNlcklELAopOwoKJFNlbGYtPlRydWUoCiAgICAkQ2F0ZWdvcnlEZWxldGUsCiAgICAiQ2F0ZWdvcnlEZWxldGUoKSAtIENhdGVnb3J5OiAkQ2F0ZWdvcnlJRFRocmVlIiwKKTsKCiRDYXRlZ29yeURlbGV0ZSA9ICRGQVFPYmplY3QtPkNhdGVnb3J5RGVsZXRlKAogICAgQ2F0ZWdvcnlJRCA9PiAkQ2F0ZWdvcnlJRFR3bywKICAgIFVzZXJJRCAgICAgPT4gJFVzZXJJRCwKKTsKCiRTZWxmLT5UcnVlKAogICAgJENhdGVnb3J5RGVsZXRlLAogICAgIkNhdGVnb3J5RGVsZXRlKCkgLSBDYXRlZ29yeTogJENhdGVnb3J5SURUd28iLAopOwoKJENhdGVnb3J5RGVsZXRlID0gJEZBUU9iamVjdC0+Q2F0ZWdvcnlEZWxldGUoCiAgICBDYXRlZ29yeUlEID0+ICRDYXRlZ29yeUlET25lLAogICAgVXNlcklEICAgICA9PiAkVXNlcklELAopOwoKJFNlbGYtPlRydWUoCiAgICAkQ2F0ZWdvcnlEZWxldGUsCiAgICAiQ2F0ZWdvcnlEZWxldGUoKSAtIENhdGVnb3J5OiAkQ2F0ZWdvcnlJRE9uZSIsCik7CgoxOwo=</File>
        <File Location="scripts/test/sample/FAQ-Test1.doc" Permission="660" Encode="Base64">0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAOwADAP7/CQAGAAAAAAAAAAAAAAABAAAANgAAAAAAAAAAEAAAAgAAAAEAAAD+////AAAAAAAAAAD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9//////////7///8EAAAABQAAAAYAAAAHAAAACAAAAP7///8KAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAATAAAAFAAAABUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAB4AAAAfAAAAIAAAACEAAAAiAAAAIwAAACQAAAAlAAAAJgAAACcAAAAoAAAAKQAAACoAAAArAAAALAAAAC0AAAAuAAAALwAAADAAAAAxAAAAMgAAADMAAAA0AAAANQAAAP7///83AAAA/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////1IAbwBvAHQAIABFAG4AdAByAHkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAUA////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v///wAAAAAAAAAAAQAAAP7////+////BAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAACAAAAAhAAAAIgAAACMAAAAkAAAA/v///yYAAAAnAAAAKAAAACkAAAD+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8BAP7/AwoAAP////8GCQIAAAAAAMAAAAAAAABGGAAAAE1pY3Jvc29mdCBXb3JkLURva3VtZW50AAoAAABNU1dvcmREb2MAEAAAAFdvcmQuRG9jdW1lbnQuOAD0ObJxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASABMACgABAFsADwACAAAAAAAAAFQAABDx/wIAVAAAAAcARABlAGYAYQB1AGwAdAAAAAgAAAAxJAAqJAErAEIqAE9KAwBRSgMAQ0oYAG1ICQRzSAkEUEoFAG5I/wBeSgYAX0j/AHRI/wAAAAAAAAAAAAAAAAAAAAAAAAAAQgBBQPL/oQBCAAAAGQBBAGIAcwBhAHQAegAtAFMAdABhAG4AZABhAHIAZABzAGMAaAByAGkAZgB0AGEAcgB0AAAAAAAAAAAAAAAAAC4AQhABAPIALgAAAAkAVABlAHgAdAAgAGIAbwBkAHkAAAAKAA8AE6QAABSkeAAAACAALxDxAAIBIAAAAAQATABpAHMAdAAAAAIAEAAEAF5KBwBAAP4fAQASAUAAAAAHAEMAYQBwAHQAaQBvAG4AAAANABEAE6R4ABSkeAAMJAEAEgBDShQANggBXkoHAGFKFABdCAEmAP4fAQAiASYAAAAFAEkAbgBkAGUAeAAAAAUAEgAMJAEABABeSgcAAAAAABQAAAAEAAAKAAAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADyBQAAWAIAAAAAAAAAAAAAwQMAABUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACTAwAAIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOQBAACvAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtQMAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgDZAAAATwBUAFIAUwAuAG8AcgBnAA0ADQBUAEUAUwBUAA0ADQAIAA0ADQANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAEgQAABQEAAAeBAAAIAQAACIEAAAkBAAAJgQAACgEAAD09PT07/T09AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQNqAAAAAFUIARZDSkAANQgBYUpAAFwIAU9KBABRSgQACAAEAAASBAAAFAQAAB4EAAAgBAAAJAQAACYEAAAoBAAA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</File>
        <File Location="scripts/test/sample/FAQ-Test1.pdf" Permission="660" Encode="Base64">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L0ZvbnQgNyAwIFINCiAgIC9YT2JqZWN0IDggMCBSDQogICAvUHJvY1NldCBbIC9QREYgL1RleHQgL0ltYWdlQyAvSW1hZ2VJIC9JbWFnZUIgXQ0KPj4NCmVuZG9iag0KDQoxIDAgb2JqDQo8PCAvVHlwZSAvUGFnZQ0KICAgL1BhcmVudCA1IDAgUg0KICAgL1Jlc291cmNlcyA5IDAgUg0KICAgL01lZGlhQm94IFsgMCAwIDYxMiA3OTIgXQ0KICAgL0dyb3VwIDw8IC9TIC9UcmFuc3BhcmVuY3kgL0NTIC9EZXZpY2VSR0IgL0kgdHJ1ZSA+Pg0KICAgL0NvbnRlbnRzIDIgMCBSDQo+Pg0KZW5kb2JqDQoNCjUgMCBvYmoNCjw8IC9UeXBlIC9QYWdlcw0KICAgL1Jlc291cmNlcyA5IDAgUg0KICAgL01lZGlhQm94IFsgMCAwIDU5NSA4NDIgXQ0KICAgL0tpZHMgWyAxIDAgUg0KICAgICAgICAgICBdDQogICAvQ291bnQgMQ0KPj4NCmVuZG9iag0KDQoxMCAwIG9iag0KPDwgL1R5cGUgL0NhdGFsb2cNCiAgIC9QYWdlcyA1IDAgUg0KPj4NCmVuZG9iag0KDQoxMSAwIG9iag0KPDwgL0NyZWF0b3IgPEZFRkYwMDU3MDA3MjAwNjkwMDc0MDA2NTAwNzI+DQovUHJvZHVjZXIgPEZFRkYwMDRGMDA3MDAwNjUwMDZFMDA0RjAwNjYwMDY2MDA2OTAwNjMwMDY1MDAyRTAwNkYwMDcyMDA2NzAwMjAwMDMyMDAyRTAwMzAwMDJEMDA3MDAwNzIwMDY1Pg0KL0NyZWF0aW9uRGF0ZSAoRDoyMDA3MDMwNTE1NTM1OSswMScwMCcpDQo+Pg0KZW5kb2JqDQoNCnhyZWYNCjAgMTINCjAwMDAwMDAwMDAgNjU1MzUgZg0KMDAwMDAwMzY5OCAwMDAwMCBuDQowMDAwMDAwMDIxIDAwMDAwIG4NCjAwMDAwMDAzMTAgMDAwMDAgbg0KMDAwMDAwMDMzNiAwMDAwMCBuDQowMDAwMDAzODgzIDAwMDAwIG4NCjAwMDAwMDMzODIgMDAwMDAgbg0KMDAwMDAwMzUwMiAwMDAwMCBuDQowMDAwMDAzNTQzIDAwMDAwIG4NCjAwMDAwMDM1ODQgMDAwMDAgbg0KMDAwMDAwNDAxOSAwMDAwMCBuDQowMDAwMDA0MDc5IDAwMDAwIG4NCnRyYWlsZXINCjw8IC9TaXplIDEyDQogICAvUm9vdCAxMCAwIFINCiAgIC9JbmZvIDExIDAgUg0KICAgL0lEIFsgPDYwMEE2NDFFNjM3QzAyN0U0NjEyMkI3ODM0NjczMzI5Pg0KICAgICAgICAgPDYwMEE2NDFFNjM3QzAyN0U0NjEyMkI3ODM0NjczMzI5PiBdDQo+Pg0Kc3RhcnR4cmVmDQo0Mjk0DQolJUVPRg0K</File>
        <File Location="scripts/test/sample/FAQ.csv" Permission="660" Encode="Base64">VGVzdCBGQVExO01pc2M7ZW47ZXh0ZXJuYWw7RjE7RjI7RjM7RjQ7RjU7RjY7a2V5MQpUZXN0IEZBUTI7TWlzYztlbjtleHRlcm5hbDtGMTtGMjtGMztGNDtGNTtGNjtrZXkxClRlc3QgRkFRMztNaXNjO2VuO2V4dGVybmFsO0YxO0YyO0YzO0Y0O0Y1O0Y2O2tleTEKVGVzdCBGQVE0O01pc2M7ZW47cHVibGljO0YxO0YyO0YzO0Y0O0Y1O0Y2O2tleTEKVGVzdCBGQVE1O01pc2M7ZW47cHVibGljO0YxO0YyO0YzO0Y0O0Y1O0Y2O2tleTIKVGVzdCBGQVE2O01pc2M7ZW47cHVibGljO0YxO0YyO0YzO0Y0O0Y1O0Y2O2tleTIKVGVzdCBGQVE3O01pc2M7ZW47cHVibGljO0YxO0YyO0YzO0Y0O0Y1O0Y2O2tleTIKVGVzdCBGQVE4O01pc2M7ZW47aW50ZXJuYWw7RjE7RjI7RjM7RjQ7RjU7RjY7a2V5MgpUZXN0IEZBUTk7TWlzYztlbjtpbnRlcm5hbDtGMTtGMjtGMztGNDtGNTtGNjtrZXkyClRlc3QgRkFRMTA7TWlzYztlbjtpbnRlcm5hbDtGMTtGMjtGMztGNDtGNTtGNjtrZXkyClRlc3QgRkFRMTE7TWlzYztkZTtpbnRlcm5hbDtGMTtGMjtGMztGNDtGNTtGNjtrZXkzClRlc3QgRkFRMTI7TWlzYztkZTtpbnRlcm5hbDtGMTtGMjtGMztGNDtGNTtGNjtrZXkzClRlc3QgRkFRMTM7TWlzYztkZTtwdWJsaWM7RjE7RjI7RjM7RjQ7RjU7RjY7a2V5MwpUZXN0IEZBUTE0O01pc2M7ZGU7cHVibGljO0YxO0YyO0YzO0Y0O0Y1O0Y2O2tleTMKVGVzdCBGQVExNTtNaXNjO2RlO3B1YmxpYztGMTtGMjtGMztGNDtGNTtGNjtrZXkzClRlc3QgRkFRMTY7TWlzYztkZTtwdWJsaWM7RjE7RjI7RjM7RjQ7RjU7RjY7a2V5NApUZXN0IEZBUTE3O01pc2M7ZGU7ZXh0ZXJuYWw7RjE7RjI7RjM7RjQ7RjU7RjY7a2V5NApUZXN0IEZBUTE4O01pc2M7ZGU7ZXh0ZXJuYWw7RjE7RjI7RjM7RjQ7RjU7RjY7a2V5NApUZXN0IEZBUTE5O01pc2M7ZGU7ZXh0ZXJuYWw7RjE7RjI7RjM7RjQ7RjU7RjY7a2V5NApUZXN0IEZBUTIwO01pc2M7ZGU7ZXh0ZXJuYWw7RjE7RjI7RjM7RjQ7RjU7RjY7a2V5NAo=</File>
        <File Location="scripts/test/sample/GenericInterface/FAQ/GI-FAQ-Test-utf8-1.bin" Permission="660" Encode="Base64">fi91dGYtOC1maWxlLcOkw7bDvMOfLeOCq+OCueOCv+ODni50eHQKCkp1c3QgdGV4dCBmb3IgdGhlIGF0dGFjaG1lbnQKCuS9v+eUqOS4i+WIl+ivreiogAoK0K/Qt9GL0LrQvtCy0YvQtQoKISLCpyQlJi8oKT0/w5wqw4TDlkw6TEAsLi0K</File>
        <File Location="scripts/test/sample/GenericInterface/FAQ/GI-FAQ-Test-utf8-1.txt" Permission="660" Encode="Base64">fi91dGYtOC1maWxlLcOkw7bDvMOfLeOCq+OCueOCv+ODni50eHQKCkp1c3QgdGV4dCBmb3IgdGhlIGF0dGFjaG1lbnQKCuS9v+eUqOS4i+WIl+ivreiogAoK0K/Qt9GL0LrQvtCy0YvQtQoKISLCpyQlJi8oKT0/w5wqw4TDlkw6TEAsLi0K</File>
        <File Location="scripts/test/Selenium/Agent/AgentFAQAdd.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKIyBTZXQgdXAgdGhlIHRlc3QgZHJpdmVyICRTZWxmIHdoZW4gd2UgYXJlIHJ1bm5pbmcgYXMgYSBzdGFuZGFsb25lIHNjcmlwdC4KdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6UmVnaXN0ZXJEcml2ZXI7CgpvdXIgJFNlbGY7CgojIGdldCBzZWxlbml1bSBvYmplY3QKbXkgJFNlbGVuaXVtID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpTZWxlbml1bScpOwoKJFNlbGVuaXVtLT5SdW5UZXN0KAogICAgc3ViIHsKCiAgICAgICAgIyBnZXQgaGVscGVyIG9iamVjdAogICAgICAgIG15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKICAgICAgICAjIERvIG5vdCBjaGVjayBSaWNoVGV4dC4KICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICBLZXkgICA9PiAnRnJvbnRlbmQ6OlJpY2hUZXh0JywKICAgICAgICAgICAgVmFsdWUgPT4gMCwKICAgICAgICApOwoKICAgICAgICAjIE1vZGlmeSAiRkFROjpBZ2VudDo6U3RhdGVUeXBlcyIgdG8gb25seSBzaG93ICdpbnRlcm5hbCcgYW5kICdwdWJsaWMnIEZBUSBzdGF0ZSB0eXBlcyBpbiBhZ2VudCBpbnRlcmZhY2UuCiAgICAgICAgJEhlbHBlci0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICAgICAgS2V5ICAgPT4gJ0ZBUTo6QWdlbnQ6OlN0YXRlVHlwZXMnLAogICAgICAgICAgICBWYWx1ZSA9PiBbICdpbnRlcm5hbCcsICdwdWJsaWMnIF0sCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCB1c2VyIGFuZCBsb2dpbi4KICAgICAgICBteSAkVGVzdFVzZXJMb2dpbiA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKAogICAgICAgICAgICBHcm91cHMgPT4gWyAnYWRtaW4nLCAndXNlcnMnIF0sCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIEdldCBzY3JpcHQgYWxpYXMuCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAjIE5hdmlnYXRlIHRvIEFnZW50RkFRQWRkLgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50RkFRQWRkIik7CgogICAgICAgICMgQ2hlY2sgcGFnZS4KICAgICAgICBmb3IgbXkgJElEICgKICAgICAgICAgICAgcXcoVGl0bGUgS2V5d29yZHMgQ2F0ZWdvcnlJRCBTdGF0ZUlEIFZhbGlkSUQgTGFuZ3VhZ2VJRCBGaWxlVXBsb2FkCiAgICAgICAgICAgIEZpZWxkMSBGaWVsZDIgRmllbGQzIEZpZWxkNiBGQVFTdWJtaXQpCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIG15ICRFbGVtZW50ID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjJElEIiwgJ2NzcycgKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2VuYWJsZWQoKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2Rpc3BsYXllZCgpOwogICAgICAgIH0KCiAgICAgICAgIyBWZXJpZnkgb25seSAnaW50ZXJuYWwgKGFnZW50KScgYW5kICdwdWJsaWMgKGFsbCknIEZBUSBzdGF0ZSB0eXBlcyBhcmUgYXZhaWxhYmxlLgogICAgICAgICMgVGhlcmUgaXMgbm8gJ2V4dGVybmFsIChjdXN0b21lciknIEZBUSBzdGF0ZSBvcHRpb24uIFNlZSBidWcjMTQ1MTUuCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoCiAgICAgICAgICAgICAgICAicmV0dXJuIFwkKCcjU3RhdGVJRCBvcHRpb25bVmFsdWU9Ml0nKS5sZW5ndGg7IgogICAgICAgICAgICApLAogICAgICAgICAgICAiRkFRIHN0YXRlICdpbnRlcm5hbCAoYWdlbnQpJyBpcyBhdmFpbGFibGUgYXMgb3B0aW9uLiIKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAgICAgInJldHVybiBcJCgnI1N0YXRlSUQgb3B0aW9uW1ZhbHVlPTNdJykubGVuZ3RoOyIKICAgICAgICAgICAgKSwKICAgICAgICAgICAgIkZBUSBzdGF0ZSAncHVibGljIChhbGwpJyBpcyBhdmFpbGFibGUgYXMgb3B0aW9uLiIKICAgICAgICApOwogICAgICAgICRTZWxmLT5GYWxzZSgKICAgICAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgKICAgICAgICAgICAgICAgICJyZXR1cm4gXCQoJyNTdGF0ZUlEIG9wdGlvbltWYWx1ZT0xXScpLmxlbmd0aDsiCiAgICAgICAgICAgICksCiAgICAgICAgICAgICJGQVEgc3RhdGUgJ2V4dGVybmFsIChjdXN0b21lciknIGlzIG5vdCBhdmFpbGFibGUgYXMgb3B0aW9uLiIKICAgICAgICApOwoKICAgICAgICAjIFRlc3QgcGFyYW1zLgogICAgICAgIG15ICRGQVFUaXRsZSAgICA9ICdGQVEgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJEZBUVN5bXB0b20gID0gJ1NlbGVuaXVtIFN5bXB0b20nOwogICAgICAgIG15ICRGQVFQcm9ibGVtICA9ICdTZWxlbml1bSBQcm9ibGVtJzsKICAgICAgICBteSAkRkFRU29sdXRpb24gPSAnU2VsZW5pdW0gU29sdXRpb24nOwogICAgICAgIG15ICRGQVFDb21tZW50ICA9ICdTZWxlbml1bSBDb21tZW50JzsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCBGQVEuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjVGl0bGUiLCAgICAnY3NzJyApLT5zZW5kX2tleXMoJEZBUVRpdGxlKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNLZXl3b3JkcyIsICdjc3MnICktPnNlbmRfa2V5cygnU2VsZW5pdW0nKTsKICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KCJcJCgnI0NhdGVnb3J5SUQnKS52YWwoJzEnKS50cmlnZ2VyKCdyZWRyYXcuSW5wdXRGaWVsZCcpLnRyaWdnZXIoJ2NoYW5nZScpOyIpOwogICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoIlwkKCcjU3RhdGVJRCcpLnZhbCgnMicpLnRyaWdnZXIoJ3JlZHJhdy5JbnB1dEZpZWxkJykudHJpZ2dlcignY2hhbmdlJyk7Iik7CiAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgiXCQoJyNWYWxpZElEJykudmFsKCcxJykudHJpZ2dlcigncmVkcmF3LklucHV0RmllbGQnKS50cmlnZ2VyKCdjaGFuZ2UnKTsiKTsKICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KCJcJCgnI0xhbmd1YWdlSUQnKS52YWwoJzEnKS50cmlnZ2VyKCdyZWRyYXcuSW5wdXRGaWVsZCcpLnRyaWdnZXIoJ2NoYW5nZScpOyIpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0ZpZWxkMSIsICAgICdjc3MnICktPnNlbmRfa2V5cygkRkFRU3ltcHRvbSk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjRmllbGQyIiwgICAgJ2NzcycgKS0+c2VuZF9rZXlzKCRGQVFQcm9ibGVtKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNGaWVsZDMiLCAgICAnY3NzJyApLT5zZW5kX2tleXMoJEZBUVNvbHV0aW9uKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNGaWVsZDYiLCAgICAnY3NzJyApLT5zZW5kX2tleXMoJEZBUUNvbW1lbnQpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0ZBUVN1Ym1pdCIsICdjc3MnICktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICdyZXR1cm4gdHlwZW9mKCQpID09PSAiZnVuY3Rpb24iICYmICQoIiNGQVFCb2R5IikubGVuZ3RoJyApOwoKICAgICAgICAjIFZlcmlmeSB0ZXN0IEZBUSBpcyBjcmVhdGVkLgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJEZBUVRpdGxlICkgPiAtMSwKICAgICAgICAgICAgIiRGQVFUaXRsZSBpcyBmb3VuZCIsCiAgICAgICAgKTsKCiAgICAgICAgZm9yIG15ICRUZXN0ICggJEZBUVN5bXB0b20sICRGQVFQcm9ibGVtLCAkRkFRU29sdXRpb24sICRGQVFDb21tZW50ICkgewogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkVGVzdCApID4gLTEsCiAgICAgICAgICAgICAgICAiJFRlc3QgaXMgZm91bmQiLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgREIgb2JqZWN0CiAgICAgICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgICAgICMgR2V0IHRlc3QgY3JlYXRlZCBGQVEgSUQuCiAgICAgICAgbXkgJEZBUUl0ZW0gPSAkREJPYmplY3QtPlF1b3RlKCRGQVFUaXRsZSk7CiAgICAgICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgICAgICBTUUwgID0+ICJTRUxFQ1QgaWQgRlJPTSBmYXFfaXRlbSBXSEVSRSBmX3N1YmplY3QgPSA/IiwKICAgICAgICAgICAgQmluZCA9PiBbIFwkRkFRVGl0bGUgXQogICAgICAgICk7CiAgICAgICAgbXkgJEl0ZW1JRDsKICAgICAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAgICAgJEl0ZW1JRCA9ICRSb3dbMF07CiAgICAgICAgfQoKICAgICAgICAjIERlbGV0ZSB0ZXN0IGNyZWF0ZWQgRkFRLgogICAgICAgIG15ICRTdWNjZXNzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkZBUScpLT5GQVFEZWxldGUoCiAgICAgICAgICAgIEl0ZW1JRCA9PiAkSXRlbUlELAogICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgIiRJdGVtSUQgaXMgZGVsZXRlZCAtIElEICRJdGVtSUQiLAogICAgICAgICk7CgogICAgICAgICMgTWFrZSBzdXJlIHRoZSBjYWNoZSBpcyBjb3JyZWN0LgogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKCBUeXBlID0+ICJGQVEiICk7CiAgICB9Cik7CgokU2VsZi0+RG9uZVRlc3RpbmcoKTsK</File>
        <File Location="scripts/test/Selenium/Agent/AgentFAQCategory.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKIyBTZXQgdXAgdGhlIHRlc3QgZHJpdmVyICRTZWxmIHdoZW4gd2UgYXJlIHJ1bm5pbmcgYXMgYSBzdGFuZGFsb25lIHNjcmlwdC4KdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6UmVnaXN0ZXJEcml2ZXI7CgpvdXIgJFNlbGY7CgpteSAkU2VsZW5pdW0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OlNlbGVuaXVtJyk7CgokU2VsZW5pdW0tPlJ1blRlc3QoCiAgICBzdWIgewoKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCB1c2VyIGFuZCBsb2dpbi4KICAgICAgICBteSAkVGVzdFVzZXJMb2dpbiA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKAogICAgICAgICAgICBHcm91cHMgPT4gWyAnYWRtaW4nLCAndXNlcnMnIF0sCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICMgTmF2aWdhdGUgdG8gQWdlbnRGQVFDYXRlZ29yeS4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudEZBUUNhdGVnb3J5Iik7CgogICAgICAgICMgQ2hlY2sgQWdlbnRGQVFDYXRlZ29yeSBzY3JlZW4uCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSIsICAgICAgICAgICAgICdjc3MnICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSB0aGVhZCB0ciB0aCIsICdjc3MnICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSB0Ym9keSB0ciB0ZCIsICdjc3MnICk7CgogICAgICAgICMgQ2xpY2sgb24gJ0FkZCBjYXRlZ29yeScuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYVtjb250YWlucyhcQGhyZWYsIFwnQWN0aW9uPUFnZW50RkFRQ2F0ZWdvcnk7U3ViYWN0aW9uPUFkZCcgKV0iKS0+VmVyaWZpZWRDbGljaygpOwoKICAgICAgICAjIENoZWNrIHBhZ2UuCiAgICAgICAgZm9yIG15ICRJRCAoCiAgICAgICAgICAgIHF3KE5hbWUgUGFyZW50SUQgUGVybWlzc2lvbkdyb3VwcyBWYWxpZElEIENvbW1lbnQpCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIG15ICRFbGVtZW50ID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjJElEIiwgJ2NzcycgKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2VuYWJsZWQoKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2Rpc3BsYXllZCgpOwogICAgICAgIH0KCiAgICAgICAgIyBDcmVhdGUgdGVzdCBjYXRlZ29yeS4KICAgICAgICBteSAkQ2F0ZWdvcnlOYW1lID0gJ0NhdGVnb3J5ICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI05hbWUiLCAnY3NzJyApLT5zZW5kX2tleXMoJENhdGVnb3J5TmFtZSk7CiAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgKICAgICAgICAgICAgIlwkKCcjUGVybWlzc2lvbkdyb3VwcycpLnZhbChcJCgnI1Blcm1pc3Npb25Hcm91cHMgb3B0aW9uJykuZmlsdGVyKGZ1bmN0aW9uICgpIHsgcmV0dXJuIFwkKHRoaXMpLmh0bWwoKSA9PSAndXNlcnMnOyB9ICkudmFsKCkgKS50cmlnZ2VyKCdyZWRyYXcuSW5wdXRGaWVsZCcpLnRyaWdnZXIoJ2NoYW5nZScpOyIKICAgICAgICApOwogICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoIlwkKCcjVmFsaWRJRCcpLnZhbCgnMScpLnRyaWdnZXIoJ3JlZHJhdy5JbnB1dEZpZWxkJykudHJpZ2dlcignY2hhbmdlJyk7Iik7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjQ29tbWVudCIsICdjc3MnICktPnNlbmRfa2V5cygnU2VsZW5pdW0gQ2F0ZWdvcnknKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEB2YWx1ZT0nU3VibWl0J11bXEB0eXBlPSdzdWJtaXQnXSIpLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgVmVyaWZ5IHRlc3QgY2F0ZWdvcnkgaXMgY3JlYXRlZC4KICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRDYXRlZ29yeU5hbWUgKSA+IC0xLAogICAgICAgICAgICAiJENhdGVnb3J5TmFtZSBpcyBmb3VuZCIsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgICAgICMgR2V0IHRlc3QgY3JlYXRlZCBjYXRlZ29yeSBJRC4KICAgICAgICBteSAkQ2F0ZWdvcnkgPSAkREJPYmplY3QtPlF1b3RlKCRDYXRlZ29yeU5hbWUpOwogICAgICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICAgICAgU1FMICA9PiAiU0VMRUNUIGlkIEZST00gZmFxX2NhdGVnb3J5IFdIRVJFIG5hbWUgPSA/IiwKICAgICAgICAgICAgQmluZCA9PiBbIFwkQ2F0ZWdvcnlOYW1lIF0KICAgICAgICApOwogICAgICAgIG15ICRDYXRlZ29yeUlEOwogICAgICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICAgICAkQ2F0ZWdvcnlJRCA9ICRSb3dbMF07CiAgICAgICAgfQoKICAgICAgICAjIENsaWNrIG9uIGRlbGV0ZSBpY29uLgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0RlbGV0ZUNhdGVnb3J5SUQkQ2F0ZWdvcnlJRCIsICdjc3MnICktPmNsaWNrKCk7CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICdyZXR1cm4gJCgiI0RpYWxvZ0J1dHRvbjEiKS5sZW5ndGgnICk7CgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0RpYWxvZ0J1dHRvbjEiLCAnY3NzJyApLT5jbGljaygpOwogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAicmV0dXJuICFcJCgnLkRpYWxvZy5Nb2RhbCcpLmxlbmd0aCIgKTsKCiAgICAgICAgIyBWZXJpZnkgdGVzdCBjcmVhdGVkIGNhdGVnb3J5IGlzIGRlbGV0ZWQuCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkQ2F0ZWdvcnlOYW1lICkgPT0gLTEsCiAgICAgICAgICAgICIkQ2F0ZWdvcnlOYW1lIGlzIG5vdCBmb3VuZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBNYWtlIHN1cmUgdGhlIGNhY2hlIGlzIGNvcnJlY3QuCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoIFR5cGUgPT4gIkZBUSIgKTsKICAgIH0KKTsKCiRTZWxmLT5Eb25lVGVzdGluZygpOwo=</File>
        <File Location="scripts/test/Selenium/Agent/AgentFAQDelete.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKIyBTZXQgdXAgdGhlIHRlc3QgZHJpdmVyICRTZWxmIHdoZW4gd2UgYXJlIHJ1bm5pbmcgYXMgYSBzdGFuZGFsb25lIHNjcmlwdC4KdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6UmVnaXN0ZXJEcml2ZXI7CgpvdXIgJFNlbGY7CgpteSAkU2VsZW5pdW0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OlNlbGVuaXVtJyk7CgokU2VsZW5pdW0tPlJ1blRlc3QoCiAgICBzdWIgewoKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCBGQVEuCiAgICAgICAgbXkgJEZBUVRpdGxlID0gJ0ZBUSAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkSXRlbUlEICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RkFRJyktPkZBUUFkZCgKICAgICAgICAgICAgVGl0bGUgICAgICAgPT4gJEZBUVRpdGxlLAogICAgICAgICAgICBDYXRlZ29yeUlEICA9PiAxLAogICAgICAgICAgICBTdGF0ZUlEICAgICA9PiAxLAogICAgICAgICAgICBMYW5ndWFnZUlEICA9PiAxLAogICAgICAgICAgICBWYWxpZElEICAgICA9PiAxLAogICAgICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgKTsKCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRJdGVtSUQsCiAgICAgICAgICAgICJGQVEgaXRlbSBpcyBjcmVhdGVkIC0gSUQgJEl0ZW1JRCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCB1c2VyIGFuZCBsb2dpbi4KICAgICAgICBteSAkVGVzdFVzZXJMb2dpbiA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKAogICAgICAgICAgICBHcm91cHMgPT4gWyAnYWRtaW4nLCAndXNlcnMnIF0sCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICMgTmF2aWdhdGUgdG8gQWdlbnRGQVFab29tIHNjcmVlbiBvZiBjcmVhdGVkIHRlc3QgRkFRLgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50RkFRWm9vbTtJdGVtSUQ9JEl0ZW1JRDtOYXY9Iik7CgogICAgICAgICMgVmVyaWZ5IGl0cyByaWdodCBzY3JlZW4uCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkRkFRVGl0bGUgKSA+IC0xLAogICAgICAgICAgICAiJEZBUVRpdGxlIGlzIGZvdW5kIiwKICAgICAgICApOwoKICAgICAgICAjIENsaWNrIG9uICdEZWxldGUnLgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2FbY29udGFpbnMoXEBocmVmLCBcJ0FjdGlvbj1BZ2VudEZBUURlbGV0ZTtJdGVtSUQ9JEl0ZW1JRCcgKV0iKS0+Y2xpY2soKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gJ3JldHVybiB0eXBlb2YoJCkgPT09ICJmdW5jdGlvbiIgJiYgJCgiI0RpYWxvZ0J1dHRvbjEiKS5sZW5ndGgnICk7CgogICAgICAgICMgVmVyaWZ5IGRlbGV0ZSBtZXNzYWdlLgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBGQVEgYXJ0aWNsZT8nICkgPiAtMSwKICAgICAgICAgICAgIkRlbGV0ZSBtZXNzYWdlIGlzIGZvdW5kIiwKICAgICAgICApOwoKICAgICAgICAjIEV4ZWN1dGUgZGVsZXRlLgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0RpYWxvZ0J1dHRvbjEiLCAnY3NzJyApLT5jbGljaygpOwogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAncmV0dXJuICEkKCIuRGlhbG9nLk1vZGFsIikubGVuZ3RoJyApOwoKICAgICAgICAjIFZlcmlmeSBkZWxldGUgYWN0aW9uLgogICAgICAgICMgVHJ5IHRvIG5hdmlnYXRlIHRvIHRoZSBBZ2V0bkZBUVpvb20gb2YgZGVsZXRlZCB0ZXN0IEZBUS4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudEZBUVpvb207SXRlbUlEPSRJdGVtSUQ7TmF2PSIpOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgIk5vIHN1Y2ggSXRlbUlEICRJdGVtSUQhIiApID4gLTEsCiAgICAgICAgICAgICJEZWxldGUgYWN0aW9uIC0gc3VjY2VzcyIsCiAgICAgICAgKTsKCiAgICAgICAgIyBNYWtlIHN1cmUgdGhlIGNhY2hlIGlzIGNvcnJlY3QuCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoIFR5cGUgPT4gIkZBUSIgKTsKICAgIH0KKTsKCiRTZWxmLT5Eb25lVGVzdGluZygpOwo=</File>
        <File Location="scripts/test/Selenium/Agent/AgentFAQEdit.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKIyBTZXQgdXAgdGhlIHRlc3QgZHJpdmVyICRTZWxmIHdoZW4gd2UgYXJlIHJ1bm5pbmcgYXMgYSBzdGFuZGFsb25lIHNjcmlwdC4KdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6UmVnaXN0ZXJEcml2ZXI7CgpvdXIgJFNlbGY7CgpteSAkU2VsZW5pdW0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OlNlbGVuaXVtJyk7CgokU2VsZW5pdW0tPlJ1blRlc3QoCiAgICBzdWIgewoKICAgICAgICBteSAkSGVscGVyICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKICAgICAgICBteSAkRkFRT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkZBUScpOwoKICAgICAgICAjIERvIG5vdCBjaGVjayBSaWNoVGV4dC4KICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICBLZXkgICA9PiAnRnJvbnRlbmQ6OlJpY2hUZXh0JywKICAgICAgICAgICAgVmFsdWUgPT4gMCwKICAgICAgICApOwoKICAgICAgICAjIEdldCB0ZXN0IHBhcmFtcy4KICAgICAgICBteSAkRkFRVGl0bGUgPSAnRkFRICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgIG15ICVUZXN0ICAgICA9ICgKICAgICAgICAgICAgU3RvcmVkID0+IHsKICAgICAgICAgICAgICAgIFRpdGxlICAgICAgID0+ICRGQVFUaXRsZSwKICAgICAgICAgICAgICAgIENhdGVnb3J5SUQgID0+IDEsCiAgICAgICAgICAgICAgICBTdGF0ZUlEICAgICA9PiAxLAogICAgICAgICAgICAgICAgTGFuZ3VhZ2VJRCAgPT4gMSwKICAgICAgICAgICAgICAgIEtleXdvcmRzICAgID0+ICdTZWxlbml1bSBLZXl3b3JkcycsCiAgICAgICAgICAgICAgICBGaWVsZDEgICAgICA9PiAnU2VsZW5pdW0gU3ltcHRvbScsCiAgICAgICAgICAgICAgICBGaWVsZDIgICAgICA9PiAnU2VsZW5pdW0gUHJvYmxlbScsCiAgICAgICAgICAgICAgICBGaWVsZDMgICAgICA9PiAnU2VsZW5pdW0gU29sdXRpb24nLAogICAgICAgICAgICAgICAgRmllbGQ2ICAgICAgPT4gJ1NlbGVuaXVtIENvbW1lbnQnLAogICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvaHRtbCcsCiAgICAgICAgICAgICAgICBWYWxpZElEICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICBFZGl0ZWQgPT4gewogICAgICAgICAgICAgICAgVGl0bGUgICAgICAgPT4gJEZBUVRpdGxlIC4gJyBFZGl0JywKICAgICAgICAgICAgICAgIENhdGVnb3J5SUQgID0+IDEsCiAgICAgICAgICAgICAgICBTdGF0ZUlEICAgICA9PiAyLAogICAgICAgICAgICAgICAgTGFuZ3VhZ2VJRCAgPT4gMiwKICAgICAgICAgICAgICAgIEtleXdvcmRzICAgID0+ICdTZWxlbml1bSBLZXl3b3JkcyBFZGl0JywKICAgICAgICAgICAgICAgIEZpZWxkMSAgICAgID0+ICdTZWxlbml1bSBTeW1wdG9tIEVkaXQnLAogICAgICAgICAgICAgICAgRmllbGQyICAgICAgPT4gJ1NlbGVuaXVtIFByb2JsZW0gRWRpdCcsCiAgICAgICAgICAgICAgICBGaWVsZDMgICAgICA9PiAnU2VsZW5pdW0gU29sdXRpb24gRWRpdCcsCiAgICAgICAgICAgICAgICBGaWVsZDYgICAgICA9PiAnU2VsZW5pdW0gQ29tbWVudCBFZGl0JywKICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L2h0bWwnLAogICAgICAgICAgICAgICAgVmFsaWRJRCAgICAgPT4gMiwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIENyZWF0ZSB0ZXN0IEZBUS4KICAgICAgICBteSBASXRlbUlEczsKICAgICAgICBteSAkSXRlbUlEID0gJEZBUU9iamVjdC0+RkFRQWRkKAogICAgICAgICAgICAleyAkVGVzdHtTdG9yZWR9IH0sCiAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICk7CgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkSXRlbUlELAogICAgICAgICAgICAiRkFRIGlzIGNyZWF0ZWQgLSBJRCAkSXRlbUlEIiwKICAgICAgICApOwoKICAgICAgICBwdXNoIEBJdGVtSURzLCAkSXRlbUlEOwoKICAgICAgICAjIENyZWF0ZSB0ZXN0IHVzZXIgYW5kIGxvZ2luLgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICd1c2VycycgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgIG15ICRTY3JpcHRBbGlhcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnU2NyaXB0QWxpYXMnKTsKCiAgICAgICAgIyBOYXZpZ2F0ZSB0byBBZ2VudEZBUVpvb20gb2YgY3JlYXRlZCB0ZXN0IEZBUS4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudEZBUVpvb207SXRlbUlEPSRJdGVtSUQ7TmF2PSIpOwoKICAgICAgICAjIFZlcmlmeSBpdHMgcmlnaHQgc2NyZWVuLgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJEZBUVRpdGxlICkgPiAtMSwKICAgICAgICAgICAgIiRGQVFUaXRsZSBpcyBmb3VuZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBDbGljayBvbiAnRWRpdCcgYW5kIHN3aXRjaCB3aW5kb3cuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYVtjb250YWlucyhcQGhyZWYsIFwnQWN0aW9uPUFnZW50RkFRRWRpdDtJdGVtSUQ9JEl0ZW1JRCcgKV0iKS0+Y2xpY2soKTsKCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBXaW5kb3dDb3VudCA9PiAyICkgfHwgZGllICJQb3B1cCB3aW5kb3cgbm90IGNyZWF0ZWQgKGZpcnN0IHRpbWUpLiI7CiAgICAgICAgbXkgJEhhbmRsZXMgPSAkU2VsZW5pdW0tPmdldF93aW5kb3dfaGFuZGxlcygpOwogICAgICAgICRTZWxlbml1bS0+c3dpdGNoX3RvX3dpbmRvdyggJEhhbmRsZXMtPlsxXSApOwoKICAgICAgICAjIFdhaXQgdW50aWwgcGFnZSBoYXMgbG9hZGVkLCBpZiBuZWNlc3NhcnkuCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICdyZXR1cm4gdHlwZW9mKCQpID09PSAiZnVuY3Rpb24iICYmICQoIiNUaXRsZSIpLmxlbmd0aDsnICk7CgogICAgICAgICMgVmVyaWZ5IHN0b3JlZCB2YWx1ZXMuCiAgICAgICAgZm9yIG15ICRTdG9yZWQgKCBzb3J0IGtleXMgJXsgJFRlc3R7U3RvcmVkfSB9ICkgewogICAgICAgICAgICBpZiAoICRTdG9yZWQgbmUgJ0NvbnRlbnRUeXBlJyApIHsKICAgICAgICAgICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggJyMnIC4gJFN0b3JlZCwgJ2NzcycgKS0+Z2V0X3ZhbHVlKCksCiAgICAgICAgICAgICAgICAgICAgIiRUZXN0e1N0b3JlZH0tPnskU3RvcmVkfSIsCiAgICAgICAgICAgICAgICAgICAgIiMkU3RvcmVkIHN0b3JlZCB2YWx1ZSIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIEVkaXQgdGVzdCBGQVEuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjVGl0bGUiLCAnY3NzJyApLT5zZW5kX2tleXMoJyBFZGl0Jyk7CiAgICAgICAgJFNlbGVuaXVtLT5JbnB1dEZpZWxkVmFsdWVTZXQoCiAgICAgICAgICAgIEVsZW1lbnQgPT4gJyNTdGF0ZUlEJywKICAgICAgICAgICAgVmFsdWUgICA9PiAyLAogICAgICAgICk7CiAgICAgICAgJFNlbGVuaXVtLT5JbnB1dEZpZWxkVmFsdWVTZXQoCiAgICAgICAgICAgIEVsZW1lbnQgPT4gJyNMYW5ndWFnZUlEJywKICAgICAgICAgICAgVmFsdWUgICA9PiAyLAogICAgICAgICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjS2V5d29yZHMiLCAnY3NzJyApLT5zZW5kX2tleXMoJyBFZGl0Jyk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjRmllbGQxIiwgICAnY3NzJyApLT5zZW5kX2tleXMoJyBFZGl0Jyk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjRmllbGQyIiwgICAnY3NzJyApLT5zZW5kX2tleXMoJyBFZGl0Jyk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjRmllbGQzIiwgICAnY3NzJyApLT5zZW5kX2tleXMoJyBFZGl0Jyk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjRmllbGQ2IiwgICAnY3NzJyApLT5zZW5kX2tleXMoJyBFZGl0Jyk7CiAgICAgICAgJFNlbGVuaXVtLT5JbnB1dEZpZWxkVmFsdWVTZXQoCiAgICAgICAgICAgIEVsZW1lbnQgPT4gJyNWYWxpZElEJywKICAgICAgICAgICAgVmFsdWUgICA9PiAyLAogICAgICAgICk7CgogICAgICAgICMgU3VibWl0IGFuZCBzd2l0Y2ggYmFjayB3aW5kb3cuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjRkFRU3VibWl0IiwgJ2NzcycgKS0+Y2xpY2soKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIFdpbmRvd0NvdW50ID0+IDEgKSB8fCBkaWUgIlBvcHVwIHdpbmRvdyBub3QgY2xvc2VkLiI7CiAgICAgICAgJFNlbGVuaXVtLT5zd2l0Y2hfdG9fd2luZG93KCAkSGFuZGxlcy0+WzBdICk7CgogICAgICAgICMgV2FpdCB1bnRpbCBwYWdlIGhhcyBsb2FkZWQsIGlmIG5lY2Vzc2FyeS4KICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoCiAgICAgICAgICAgIEphdmFTY3JpcHQgPT4KICAgICAgICAgICAgICAgICJyZXR1cm4gdHlwZW9mKFwkKSA9PT0gJ2Z1bmN0aW9uJyAmJiBcJCgnYVtocmVmKj1cIkFjdGlvbj1BZ2VudEZBUUVkaXQ7SXRlbUlEPSRJdGVtSURcIl0nKS5sZW5ndGg7IgogICAgICAgICk7CiAgICAgICAgc2xlZXAgMjsKCiAgICAgICAgIyBDbGljayBvbiAnRWRpdCcgYW5kIHN3aXRjaCB3aW5kb3cuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYVtjb250YWlucyhcQGhyZWYsIFwnQWN0aW9uPUFnZW50RkFRRWRpdDtJdGVtSUQ9JEl0ZW1JRCcgKV0iKS0+Y2xpY2soKTsKCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBXaW5kb3dDb3VudCA9PiAyICkgfHwgZGllICJQb3B1cCB3aW5kb3cgbm90IGNyZWF0ZWQgKHNlY29uZCB0aW1lKS4iOwogICAgICAgICRIYW5kbGVzID0gJFNlbGVuaXVtLT5nZXRfd2luZG93X2hhbmRsZXMoKTsKICAgICAgICAkU2VsZW5pdW0tPnN3aXRjaF90b193aW5kb3coICRIYW5kbGVzLT5bMV0gKTsKCiAgICAgICAgIyBXYWl0IHVudGlsIHBhZ2UgaGFzIGxvYWRlZCwgaWYgbmVjZXNzYXJ5LgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCIjVGl0bGUiKS5sZW5ndGg7JyApOwoKICAgICAgICAjIFZlcmlmeSBlZGl0ZWQgdmFsdWVzLgogICAgICAgIGZvciBteSAkRWRpdGVkICggc29ydCBrZXlzICV7ICRUZXN0e0VkaXRlZH0gfSApIHsKICAgICAgICAgICAgaWYgKCAkRWRpdGVkIG5lICdDb250ZW50VHlwZScgKSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICcjJyAuICRFZGl0ZWQsICdjc3MnICktPmdldF92YWx1ZSgpLAogICAgICAgICAgICAgICAgICAgICIkVGVzdHtFZGl0ZWR9LT57JEVkaXRlZH0iLAogICAgICAgICAgICAgICAgICAgICIjJEVkaXRlZCBzdG9yZWQgdmFsdWUiLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBDbG9zZSAnRWRpdCcgcG9wLXVwIHdpbmRvdy4KICAgICAgICAkU2VsZW5pdW0tPmNsb3NlKCk7CgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggV2luZG93Q291bnQgPT4gMSApIHx8IGRpZSAiUG9wdXAgd2luZG93IG5vdCBjbG9zZWQuIjsKICAgICAgICAkU2VsZW5pdW0tPnN3aXRjaF90b193aW5kb3coICRIYW5kbGVzLT5bMF0gKTsKCiAgICAgICAgIyBFbmFibGUgUmljaFRleHQuCiAgICAgICAgJEhlbHBlci0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICAgICAgS2V5ICAgPT4gJ0Zyb250ZW5kOjpSaWNoVGV4dCcsCiAgICAgICAgICAgIFZhbHVlID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRGQVFBZGQiKTsKCiAgICAgICAgIyBXYWl0IHVudGlsIGpRdWVyeSBpcyBsb2FkZWQuCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICJyZXR1cm4gdHlwZW9mKFwkKSA9PT0gJ2Z1bmN0aW9uJzsiICk7CgogICAgICAgIG15ICRVcGxvYWRDYWNoZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlVwbG9hZENhY2hlJyk7CiAgICAgICAgbXkgJENvbmZpZ09iamVjdCAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKICAgICAgICBteSAkRW5jb2RlT2JqZWN0ICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RW5jb2RlJyk7CiAgICAgICAgbXkgJE1haW5PYmplY3QgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok1haW4nKTsKCiAgICAgICAgIyBDcmVhdGUgRkFRIGl0ZW0gd2l0aCBpbmxpbmUgYXR0YWNobWVudC4KICAgICAgICBteSAkTG9jYXRpb24gPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0hvbWUnKQogICAgICAgICAgICAuICIvc2NyaXB0cy90ZXN0L3NhbXBsZS9XZWJVcGxvYWRDYWNoZS9XZWJVcGxvYWRDYWNoZS1UZXN0MS5wbmciOwogICAgICAgIG15ICRDb250ZW50UmVmID0gJE1haW5PYmplY3QtPkZpbGVSZWFkKAogICAgICAgICAgICBMb2NhdGlvbiA9PiAkTG9jYXRpb24sCiAgICAgICAgICAgIE1vZGUgICAgID0+ICdiaW5tb2RlJywKICAgICAgICApOwogICAgICAgIG15ICRDb250ZW50ID0gJHskQ29udGVudFJlZn07CiAgICAgICAgJEVuY29kZU9iamVjdC0+RW5jb2RlT3V0cHV0KCBcJENvbnRlbnQgKTsKCiAgICAgICAgbXkgJEZvcm1JRCAgICAgID0gJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgicmV0dXJuIFwkKCdpbnB1dFtuYW1lPUZvcm1JRF0nKS52YWwoKTsiKTsKICAgICAgICBteSAkRmlsZW5hbWUgICAgPSAnSW5saW5lJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJENvbnRlbnRJRCAgID0gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkRGlzcG9zaXRpb24gPSAnaW5saW5lJzsKCiAgICAgICAgIyBBZGQgcGljdHVyZSB0byB1cGxvYWQgY2FjaGUuCiAgICAgICAgbXkgJEFkZCA9ICRVcGxvYWRDYWNoZU9iamVjdC0+Rm9ybUlEQWRkRmlsZSgKICAgICAgICAgICAgRm9ybUlEICAgICAgPT4gJEZvcm1JRCwKICAgICAgICAgICAgRmlsZW5hbWUgICAgPT4gIiRGaWxlbmFtZS5wbmciLAogICAgICAgICAgICBDb250ZW50ICAgICA9PiAkQ29udGVudCwKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvaHRtbCcsCiAgICAgICAgICAgIENvbnRlbnRJRCAgID0+ICRDb250ZW50SUQsCiAgICAgICAgICAgIERpc3Bvc2l0aW9uID0+ICREaXNwb3NpdGlvbiwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkQWRkLAogICAgICAgICAgICAiSW5saW5lIHBpY3R1cmUgaXMgYWRkZWQgdG8gdXBsb2FkIGNhY2hlIHN1Y2Nlc3NmdWxseSIsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJEZpZWxkMUhUTUwgPQogICAgICAgICAgICAnPCFET0NUWVBFIGh0bWw+PGh0bWw+PGJvZHk+JyAuCiAgICAgICAgICAgICc8aW1nIGFsdD0iIiBzcmM9Ii8nIC4gJFNjcmlwdEFsaWFzIC4gJ2luZGV4LnBsP0FjdGlvbj1QaWN0dXJlVXBsb2FkO0Zvcm1JRD0nIC4gJEZvcm1JRCAuCiAgICAgICAgICAgICc7Q29udGVudElEPScgLiAkQ29udGVudElEIC4gJyIgLz48L2JvZHk+PC9odG1sPic7CgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1RpdGxlIiwgJ2NzcycgKS0+c2VuZF9rZXlzKCdUZXN0IFRpdGxlJyk7CiAgICAgICAgJFNlbGVuaXVtLT5JbnB1dEZpZWxkVmFsdWVTZXQoCiAgICAgICAgICAgIEVsZW1lbnQgPT4gJyNDYXRlZ29yeUlEJywKICAgICAgICAgICAgVmFsdWUgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGVuaXVtLT5JbnB1dEZpZWxkVmFsdWVTZXQoCiAgICAgICAgICAgIEVsZW1lbnQgPT4gJyNTdGF0ZUlEJywKICAgICAgICAgICAgVmFsdWUgICA9PiAyLAogICAgICAgICk7CiAgICAgICAgJFNlbGVuaXVtLT5JbnB1dEZpZWxkVmFsdWVTZXQoCiAgICAgICAgICAgIEVsZW1lbnQgPT4gJyNTdGF0ZUlEJywKICAgICAgICAgICAgVmFsdWUgICA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgV2FpdCB1bnRpbCBDS0VESVRPUiBpcyBsb2FkZWQgKHRoZXJlIGFyZSA0IGVkaXRvcnMgaW4gdGhlIHNjcmVlbikuCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKAogICAgICAgICAgICBKYXZhU2NyaXB0ID0+CiAgICAgICAgICAgICAgICAicmV0dXJuIHR5cGVvZihcJCkgPT09ICdmdW5jdGlvbicgJiYgXCQoJ2JvZHkuY2tlX2VkaXRhYmxlJywgXCQoJy5ja2Vfd3lzaXd5Z19mcmFtZScpLmNvbnRlbnRzKCkpLmxlbmd0aCA9PT0gNDsiCiAgICAgICAgKTsKCiAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgiQ0tFZGl0b3JJbnN0YW5jZXMuRmllbGQxLnNldERhdGEoJyRGaWVsZDFIVE1MJyk7Iik7CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKAogICAgICAgICAgICBKYXZhU2NyaXB0ID0+CiAgICAgICAgICAgICAgICAicmV0dXJuIENLRWRpdG9ySW5zdGFuY2VzLkZpZWxkMS5nZXREYXRhKCkuaW5kZXhPZignRm9ybUlEPSRGb3JtSUQ7Q29udGVudElEPSRDb250ZW50SUQnKSA+IC0xOyIKICAgICAgICApOwoKICAgICAgICAkU2VsZW5pdW0tPklucHV0RmllbGRWYWx1ZVNldCgKICAgICAgICAgICAgRWxlbWVudCA9PiAnI1ZhbGlkSUQnLAogICAgICAgICAgICBWYWx1ZSAgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBTdWJtaXQgYW5kIHN3aXRjaCBiYWNrIHdpbmRvdy4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNGQVFTdWJtaXQiLCAnY3NzJyApLT5WZXJpZmllZENsaWNrKCk7CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKAogICAgICAgICAgICBKYXZhU2NyaXB0ID0+ICJyZXR1cm4gdHlwZW9mKFwkKSA9PT0gJ2Z1bmN0aW9uJyAmJiBcJCgnYVtocmVmKj1cIkFjdGlvbj1BZ2VudEZBUUVkaXQ7SXRlbUlEPVwiXScpLmxlbmd0aCIKICAgICAgICApOwoKICAgICAgICAjIEdldCBJdGVtSUQuCiAgICAgICAgbXkgQEZBUSA9IHNwbGl0IC9JdGVtSUQ9LywgJFNlbGVuaXVtLT5nZXRfY3VycmVudF91cmwoKTsKICAgICAgICBwdXNoIEBJdGVtSURzLCAkRkFRWzFdOwoKICAgICAgICAjIEdldCBhdHRhY2htZW50cyBiZWZvcmUgRWRpdCBzY3JlZW4uCiAgICAgICAgbXkgQEV4aXN0aW5nQXR0YWNobWVudHMgPSAkRkFRT2JqZWN0LT5BdHRhY2htZW50SW5kZXgoCiAgICAgICAgICAgIEl0ZW1JRCAgICAgPT4gJEl0ZW1JRHNbMV0sCiAgICAgICAgICAgIFNob3dJbmxpbmUgPT4gMSwKICAgICAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgc2NhbGFyIEBFeGlzdGluZ0F0dGFjaG1lbnRzLAogICAgICAgICAgICAxLAogICAgICAgICAgICAiQmVmb3JlIEVkaXQgc2NyZWVuIC0gdGhlcmUgaXMgb25lIElubGluZSBhdHRhY2htZW50IiwKICAgICAgICApOwogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJEV4aXN0aW5nQXR0YWNobWVudHNbMF0tPntGaWxlbmFtZX0sCiAgICAgICAgICAgICIkRmlsZW5hbWUucG5nIiwKICAgICAgICAgICAgIkJlZm9yZSBFZGl0IHNjcmVlbiAtIElubGluZSBhdHRhY2htZW50ICRGaWxlbmFtZS5wbmcgaXMgZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgQ2xpY2sgb24gJ0VkaXQnIGFuZCBzd2l0Y2ggd2luZG93LgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2FbY29udGFpbnMoXEBocmVmLCBcJ0FjdGlvbj1BZ2VudEZBUUVkaXQ7SXRlbUlEPSRJdGVtSURzWzFdJyApXSIpLT5jbGljaygpOwoKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIFdpbmRvd0NvdW50ID0+IDIgKSB8fCBkaWUgIlBvcHVwIHdpbmRvdyBub3QgY3JlYXRlZC4iOwogICAgICAgICRIYW5kbGVzID0gJFNlbGVuaXVtLT5nZXRfd2luZG93X2hhbmRsZXMoKTsKICAgICAgICAkU2VsZW5pdW0tPnN3aXRjaF90b193aW5kb3coICRIYW5kbGVzLT5bMV0gKTsKCiAgICAgICAgIyBXYWl0IHVudGlsIHBhZ2UgaGFzIGxvYWRlZCwgaWYgbmVjZXNzYXJ5LgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCIjRkFRU3VibWl0IikubGVuZ3RoOycgKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3JqUXVlcnlFdmVudEJvdW5kKAogICAgICAgICAgICBDU1NTZWxlY3RvciA9PiAiI0ZBUVN1Ym1pdCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBTdWJtaXQgYW5kIHN3aXRjaCBiYWNrIG1haW4gd2luZG93LgogICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoJyQoIiNGQVFTdWJtaXQiKS5jbGljaygpOycpOwogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggV2luZG93Q291bnQgPT4gMSApIHx8IGRpZSAiUG9wdXAgd2luZG93IG5vdCBjbG9zZWQuIjsKICAgICAgICAkU2VsZW5pdW0tPnN3aXRjaF90b193aW5kb3coICRIYW5kbGVzLT5bMF0gKTsKCiAgICAgICAgIyBXYWl0aW5nIGp1c3QgdG8gYmUgc3VyZSBhdHRhY2htZW50IGlzIHN0b3JlZC4KICAgICAgICBzbGVlcCAxOwoKICAgICAgICAjIEdldCBhdHRhY2htZW50cyBhZnRlciBFZGl0IHNjcmVlbi4KICAgICAgICBARXhpc3RpbmdBdHRhY2htZW50cyA9ICRGQVFPYmplY3QtPkF0dGFjaG1lbnRJbmRleCgKICAgICAgICAgICAgSXRlbUlEICAgICA9PiAkSXRlbUlEc1sxXSwKICAgICAgICAgICAgU2hvd0lubGluZSA9PiAxLAogICAgICAgICAgICBVc2VySUQgICAgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICBzY2FsYXIgQEV4aXN0aW5nQXR0YWNobWVudHMsCiAgICAgICAgICAgIDEsCiAgICAgICAgICAgICJBZnRlciBFZGl0IHNjcmVlbiAtIHRoZXJlIGlzIG9uZSBJbmxpbmUgYXR0YWNobWVudCIsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICRFeGlzdGluZ0F0dGFjaG1lbnRzWzBdLT57RmlsZW5hbWV9LAogICAgICAgICAgICAiJEZpbGVuYW1lLnBuZyIsCiAgICAgICAgICAgICJBZnRlciBFZGl0IHNjcmVlbiAtIElubGluZSBhdHRhY2htZW50ICRGaWxlbmFtZS5wbmcgaXMgZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgRGVsZXRlIHRlc3QgY3JlYXRlZCBGQVFzLgogICAgICAgIGZvciBteSAkSXRlbUlEIChASXRlbUlEcykgewogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRGQVFPYmplY3QtPkZBUURlbGV0ZSgKICAgICAgICAgICAgICAgIEl0ZW1JRCA9PiAkSXRlbUlELAogICAgICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICAgICAiRkFRIGl0ZW0gaXMgZGVsZXRlZCAtIElEICRJdGVtSUQiLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBNYWtlIHN1cmUgdGhlIGNhY2hlIGlzIGNvcnJlY3QuCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoIFR5cGUgPT4gIkZBUSIgKTsKICAgIH0KKTsKCiRTZWxmLT5Eb25lVGVzdGluZygpOwo=</File>
        <File Location="scripts/test/Selenium/Agent/AgentFAQExplorer.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKIyBTZXQgdXAgdGhlIHRlc3QgZHJpdmVyICRTZWxmIHdoZW4gd2UgYXJlIHJ1bm5pbmcgYXMgYSBzdGFuZGFsb25lIHNjcmlwdC4KdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6UmVnaXN0ZXJEcml2ZXI7CgpvdXIgJFNlbGY7CgojIGdldCBzZWxlbml1bSBvYmplY3QKbXkgJFNlbGVuaXVtID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpTZWxlbml1bScpOwoKJFNlbGVuaXVtLT5SdW5UZXN0KAogICAgc3ViIHsKCiAgICAgICAgIyBnZXQgaGVscGVyIG9iamVjdAogICAgICAgIG15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKICAgICAgICAjIGRpc2FibGUgc2hvdyBpbnZhbGlkIEZBUSBpdGVtcyBTeVNDb25maWcKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICBLZXkgICA9PiAnRkFROjpGcm9udGVuZDo6QWdlbnRGQVFFeHBsb3JlciMjI1Nob3dJbnZhbGlkRkFRSXRlbXMnLAogICAgICAgICAgICBWYWx1ZSA9PiAwLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IEZBUSBvYmplY3QKICAgICAgICBteSAkRkFRT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkZBUScpOwoKICAgICAgICBteSBARkFRczsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCBGQVFzCiAgICAgICAgZm9yICggMSAuLiA1ICkgewogICAgICAgICAgICBteSAkRkFRVGl0bGUgPSAnRkFRICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgICAgICBteSAkSXRlbUlEICAgPSAkRkFRT2JqZWN0LT5GQVFBZGQoCiAgICAgICAgICAgICAgICBUaXRsZSAgICAgICA9PiAkRkFRVGl0bGUsCiAgICAgICAgICAgICAgICBDYXRlZ29yeUlEICA9PiAxLAogICAgICAgICAgICAgICAgU3RhdGVJRCAgICAgPT4gMSwKICAgICAgICAgICAgICAgIExhbmd1YWdlSUQgID0+IDEsCiAgICAgICAgICAgICAgICBWYWxpZElEICAgICA9PiAxLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L2h0bWwnLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkSXRlbUlELAogICAgICAgICAgICAgICAgIkZBUSBpcyBjcmVhdGVkIC0gSUQgJEl0ZW1JRCIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBteSAlRkFRID0gKAogICAgICAgICAgICAgICAgSXRlbUlEICAgPT4gJEl0ZW1JRCwKICAgICAgICAgICAgICAgIEZBUVRpdGxlID0+ICRGQVFUaXRsZSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHB1c2ggQEZBUXMsIFwlRkFROwogICAgICAgIH0KCiAgICAgICAgIyBzZXQgb25lIEZBUSBhcyBpbnZhbGlkIHNlZSBidWcgYnVnIzExNDk4IChodHRwOi8vYnVncy5vdG9iby5vcmcvc2hvd19idWcuY2dpP2lkPTExNDk4KVNob3dJbnZhbGlkRkFRSXRlbXMKICAgICAgICBteSAkSW52YWxpZEZBUVRpdGxlID0gIkludmFsaWQgJEZBUXNbMF0tPntGQVFUaXRsZX0iOwogICAgICAgIG15ICRTdWNjZXNzICAgICAgICAgPSAkRkFRT2JqZWN0LT5GQVFVcGRhdGUoCiAgICAgICAgICAgIEl0ZW1JRCAgICAgID0+ICRGQVFzWzBdLT57SXRlbUlEfSwKICAgICAgICAgICAgVGl0bGUgICAgICAgPT4gJEludmFsaWRGQVFUaXRsZSwKICAgICAgICAgICAgQ2F0ZWdvcnlJRCAgPT4gMSwKICAgICAgICAgICAgU3RhdGVJRCAgICAgPT4gMSwKICAgICAgICAgICAgTGFuZ3VhZ2VJRCAgPT4gMSwKICAgICAgICAgICAgQXBwcm92ZWQgICAgPT4gMSwKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvaHRtbCcsCiAgICAgICAgICAgIFZhbGlkSUQgICAgID0+IDIsCiAgICAgICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkRkFRc1swXS0+e0ZBUVRpdGxlfSA9ICRJbnZhbGlkRkFRVGl0bGU7CgogICAgICAgICMgY3JlYXRlIHRlc3QgdXNlciBhbmQgbG9naW4KICAgICAgICBteSAkVGVzdFVzZXJMb2dpbiA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKAogICAgICAgICAgICBHcm91cHMgPT4gWyAnYWRtaW4nLCAndXNlcnMnIF0sCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIGdldCBzY3JpcHQgYWxpYXMKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICMgbmF2aWdhdGUgdG8gQWdlbnRGQVFFeHBsb3JlciBzY3JlZW4gb2YgY3JlYXRlZCB0ZXN0IEZBUQogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50RkFRRXhwbG9yZXIiKTsKCiAgICAgICAgIyBjaGVjayBBZ2VudEZBUUV4cGxvcmVyIHNjcmVlbgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUiLCAgICAgICAgICAgICAnY3NzJyApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUgdGhlYWQgdHIgdGgiLCAnY3NzJyApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUgdGJvZHkgdHIgdGQiLCAnY3NzJyApOwoKICAgICAgICAjIHRlc3QgZGF0YSBmb3IgZXhwbG9yZXIgc2NyZWVuCiAgICAgICAgbXkgQFRlc3RzID0gKAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTY3JlZW5EYXRhID0+ICdGQVEgRXhwbG9yZXInLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTY3JlZW5EYXRhID0+ICdMYXRlc3QgY3JlYXRlZCBGQVEgYXJ0aWNsZXMnLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTY3JlZW5EYXRhID0+ICdMYXRlc3QgdXBkYXRlZCBGQVEgYXJ0aWNsZXMnLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgIGZvciBteSAkVGVzdCAoQFRlc3RzKSB7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRUZXN0LT57U2NyZWVuRGF0YX0gKSA+IC0xLAogICAgICAgICAgICAgICAgIiRUZXN0LT57U2NyZWVuRGF0YX0gaXMgZm91bmQiLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBjbGljayBvbiAnTWlzYycsIGdvIG9uIHN1YmNhdGVnb3J5IHNjcmVlbgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAnTWlzYycsICdsaW5rX3RleHQnICktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBvcmRlciBGQVEgaXRlbSBwZXIgRkFRSUQgYnkgRG93bgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50RkFRRXhwbG9yZXI7Q2F0ZWdvcnlJRD0xO1NvcnRCeT1GQVFJRDtPcmRlckJ5PURvd24iKTsKCiAgICAgICAgIyB2ZXJpZnkgSW52YWxpZCBGQVEgaXMgbm90IHZpc2libGUgb24gZXhwbG9yZXIgc2NyZWVuCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkRkFRc1swXS0+e0ZBUVRpdGxlfSApID09IC0xLAogICAgICAgICAgICAiJEZBUXNbMF0tPntGQVFUaXRsZX0gaXMgbm90IGZvdW5kIiwKICAgICAgICApOwoKICAgICAgICAjIGVuYWJsZSBzaG93IGludmFsaWQgRkFRIGl0ZW1zIFN5U0NvbmZpZwogICAgICAgICRIZWxwZXItPkNvbmZpZ1NldHRpbmdDaGFuZ2UoCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgICAgIEtleSAgID0+ICdGQVE6OkZyb250ZW5kOjpBZ2VudEZBUUV4cGxvcmVyIyMjU2hvd0ludmFsaWRGQVFJdGVtcycsCiAgICAgICAgICAgIFZhbHVlID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyByZWZyZXNoIHNjcmVlbgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRSZWZyZXNoKCk7CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKAogICAgICAgICAgICBKYXZhU2NyaXB0ID0+CiAgICAgICAgICAgICAgICAicmV0dXJuIHR5cGVvZihcJCkgPT09ICdmdW5jdGlvbicgJiYgXCQoJy5NYXN0ZXJBY3Rpb24uSW52YWxpZCB0ZCBkaXY6ZXEoMCknKS50ZXh0KCkudHJpbSgpIiwKICAgICAgICApOwoKICAgICAgICAjIGNoZWNrIGFuZCBkZWxldGUgdGVzdCBjcmVhdGVkIEZBUXMKICAgICAgICBmb3IgbXkgJEZBUSAoQEZBUXMpIHsKCiAgICAgICAgICAgICMgY2hlY2sgaWYgdGhlcmUgaXMgdGVzdCBGQVEgb24gc2NyZWVuCiAgICAgICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidHIjSXRlbUlEXyIgLiAkRkFRLT57SXRlbUlEfSAuICJfLk1hc3RlckFjdGlvbiB0ZCBkaXYiLCAnY3NzJyApLT5nZXRfdGV4dCgpLAogICAgICAgICAgICAgICAgJEZBUS0+e0ZBUVRpdGxlfSwKICAgICAgICAgICAgICAgICIkRkFRLT57RkFRVGl0bGV9IGlzIGZvdW5kIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRTdWNjZXNzID0gJEZBUU9iamVjdC0+RkFRRGVsZXRlKAogICAgICAgICAgICAgICAgSXRlbUlEID0+ICRGQVEtPntJdGVtSUR9LAogICAgICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICAgICAiRkFRIGlzIGRlbGV0ZWQgLSBJRCAkRkFRLT57SXRlbUlEfSIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIE1ha2Ugc3VyZSB0aGUgY2FjaGUgaXMgY29ycmVjdC4KICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+Q2xlYW5VcCggVHlwZSA9PiAiRkFRIiApOwogICAgfQopOwoKJFNlbGYtPkRvbmVUZXN0aW5nKCk7Cg==</File>
        <File Location="scripts/test/Selenium/Agent/AgentFAQHistory.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKIyBTZXQgdXAgdGhlIHRlc3QgZHJpdmVyICRTZWxmIHdoZW4gd2UgYXJlIHJ1bm5pbmcgYXMgYSBzdGFuZGFsb25lIHNjcmlwdC4KdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6UmVnaXN0ZXJEcml2ZXI7CgpvdXIgJFNlbGY7CgpteSAkU2VsZW5pdW0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OlNlbGVuaXVtJyk7CgokU2VsZW5pdW0tPlJ1blRlc3QoCiAgICBzdWIgewoKICAgICAgICBteSAkSGVscGVyICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKICAgICAgICBteSAkRkFRT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkZBUScpOwoKICAgICAgICAjIENyZWF0ZSB0ZXN0IHVzZXIuCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ3VzZXJzJyBdLAogICAgICAgICkgfHwgZGllICJEaWQgbm90IGdldCB0ZXN0IHVzZXIiOwoKICAgICAgICAjIEdldCB0ZXN0IHVzZXIgSUQuCiAgICAgICAgbXkgJFRlc3RVc2VySUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTG9va3VwKAogICAgICAgICAgICBVc2VyTG9naW4gPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCBGQVEuCiAgICAgICAgbXkgJEZBUVRpdGxlID0gJ0ZBUSAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkSXRlbUlEICAgPSAkRkFRT2JqZWN0LT5GQVFBZGQoCiAgICAgICAgICAgIFRpdGxlICAgICAgID0+ICRGQVFUaXRsZSwKICAgICAgICAgICAgQ2F0ZWdvcnlJRCAgPT4gMSwKICAgICAgICAgICAgU3RhdGVJRCAgICAgPT4gMSwKICAgICAgICAgICAgTGFuZ3VhZ2VJRCAgPT4gMSwKICAgICAgICAgICAgVmFsaWRJRCAgICAgPT4gMSwKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L2h0bWwnLAogICAgICAgICk7CgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkSXRlbUlELAogICAgICAgICAgICAiRkFRIGlzIGNyZWF0ZWQgLSBJRCAkSXRlbUlEIiwKICAgICAgICApOwoKICAgICAgICAjIExvZ2luIGFzIHRlc3QgdXNlci4KICAgICAgICAkU2VsZW5pdW0tPkxvZ2luKAogICAgICAgICAgICBUeXBlICAgICA9PiAnQWdlbnQnLAogICAgICAgICAgICBVc2VyICAgICA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAjIE5hdmlnYXRlIHRvIEFnZW50RkFRWm9vbSBzY3JlZW4gb2YgY3JlYXRlZCB0ZXN0IEZBUS4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudEZBUVpvb207SXRlbUlEPSRJdGVtSUQ7TmF2PSIpOwoKICAgICAgICAjIFZlcmlmeSBpdHMgcmlnaHQgc2NyZWVuLgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJEZBUVRpdGxlICkgPiAtMSwKICAgICAgICAgICAgIiRGQVFUaXRsZSBpcyBmb3VuZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBDbGljayBvbiAnSGlzdG9yeScgYW5kIHN3aXRjaCB3aW5kb3cuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYVtjb250YWlucyhcQGhyZWYsIFwnQWN0aW9uPUFnZW50RkFRSGlzdG9yeTtJdGVtSUQ9JEl0ZW1JRCcgKV0iKS0+Y2xpY2soKTsKCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBXaW5kb3dDb3VudCA9PiAyICk7CiAgICAgICAgbXkgJEhhbmRsZXMgPSAkU2VsZW5pdW0tPmdldF93aW5kb3dfaGFuZGxlcygpOwogICAgICAgICRTZWxlbml1bS0+c3dpdGNoX3RvX3dpbmRvdyggJEhhbmRsZXMtPlsxXSApOwoKICAgICAgICAjIFdhaXQgdW50aWwgcGFnZSBoYXMgbG9hZGVkLCBpZiBuZWNlc3NhcnkuCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKAogICAgICAgICAgICBKYXZhU2NyaXB0ID0+CiAgICAgICAgICAgICAgICAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCIuV2lkZ2V0U2ltcGxlIikubGVuZ3RoOycKICAgICAgICApOwoKICAgICAgICAjIFZlcmlmeSBoaXN0b3J5IG1lc3NhZ2UuCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAiJFRlc3RVc2VyTG9naW4gKCRUZXN0VXNlckxvZ2luICRUZXN0VXNlckxvZ2luKSIgKSA+IC0xLAogICAgICAgICAgICAiSGlzdG9yeSBlbnRyeSBpcyBmb3VuZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBDbG9zZSAnSGlzdG9yeScgcG9wLXVwIHdpbmRvdy4KICAgICAgICAkU2VsZW5pdW0tPmNsb3NlKCk7CgogICAgICAgICMgRGVsZXRlIHRlc3QgY3JlYXRlZCBGQVEuCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkRkFRT2JqZWN0LT5GQVFEZWxldGUoCiAgICAgICAgICAgIEl0ZW1JRCA9PiAkSXRlbUlELAogICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgIkZBUSBpdGVtIGlzIGRlbGV0ZWQgLSAkSXRlbUlEIiwKICAgICAgICApOwoKICAgICAgICAjIE1ha2Ugc3VyZSB0aGUgY2FjaGUgaXMgY29ycmVjdC4KICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+Q2xlYW5VcCggVHlwZSA9PiAiRkFRIiApOwogICAgfQopOwoKJFNlbGYtPkRvbmVUZXN0aW5nKCk7Cg==</File>
        <File Location="scripts/test/Selenium/Agent/AgentFAQJournal.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKIyBTZXQgdXAgdGhlIHRlc3QgZHJpdmVyICRTZWxmIHdoZW4gd2UgYXJlIHJ1bm5pbmcgYXMgYSBzdGFuZGFsb25lIHNjcmlwdC4KdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6UmVnaXN0ZXJEcml2ZXI7CgpvdXIgJFNlbGY7CgojIGdldCBzZWxlbml1bSBvYmplY3QKbXkgJFNlbGVuaXVtID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpTZWxlbml1bScpOwoKJFNlbGVuaXVtLT5SdW5UZXN0KAogICAgc3ViIHsKCiAgICAgICAgIyBnZXQgaGVscGVyIG9iamVjdAogICAgICAgIG15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKICAgICAgICAjIGdldCBGQVEgb2JqZWN0CiAgICAgICAgbXkgJEZBUU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpGQVEnKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCBGQVEKICAgICAgICBteSAkRkFRVGl0bGUgPSAnRkFRICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgIG15ICRJdGVtSUQgICA9ICRGQVFPYmplY3QtPkZBUUFkZCgKICAgICAgICAgICAgVGl0bGUgICAgICAgPT4gJEZBUVRpdGxlLAogICAgICAgICAgICBDYXRlZ29yeUlEICA9PiAxLAogICAgICAgICAgICBTdGF0ZUlEICAgICA9PiAxLAogICAgICAgICAgICBMYW5ndWFnZUlEICA9PiAxLAogICAgICAgICAgICBWYWxpZElEICAgICA9PiAxLAogICAgICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9odG1sJywKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkSXRlbUlELAogICAgICAgICAgICAiRkFRIGl0ZW0gaXMgY3JlYXRlZCAtIElEICRJdGVtSUQiLAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgdXNlciBhbmQgbG9naW4KICAgICAgICBteSAkVGVzdFVzZXJMb2dpbiA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKAogICAgICAgICAgICBHcm91cHMgPT4gWyAnYWRtaW4nLCAndXNlcnMnIF0sCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIGdldCBzY3JpcHQgYWxpYXMKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICMgbmF2aWdhdGUgdG8gQWdlbnRGQVFKb3VybmFsIHNjcmVlbgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50RkFRSm91cm5hbCIpOwoKICAgICAgICAjIGNoZWNrIEFnZW50RkFRSm91cm5hbCBzY3JlZW4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIiwgICAgICAgICAgICAgJ2NzcycgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIHRoZWFkIHRyIHRoIiwgJ2NzcycgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIHRib2R5IHRyIHRkIiwgJ2NzcycgKTsKCiAgICAgICAgIyBjaGVjayBmb3IgdGVzdCBjcmVhdGVkIEZBUQogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgIiRGQVFUaXRsZSIgKSA+IC0xLAogICAgICAgICAgICAiJEZBUVRpdGxlIGlzIGZvdW5kIiwKICAgICAgICApOwoKICAgICAgICAjIGNsaWNrIG9uIHRlc3QgY3JlYXRlZCBGQVEKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9kaXZbXEB0aXRsZT0nJEZBUVRpdGxlJ10iKS0+VmVyaWZpZWRDbGljaygpOwoKICAgICAgICAjIHZlcmlmeSB3ZSBhcmUgaW4gQWdlbnRGQVFab29tIHNjcmVlbgogICAgICAgIG15ICRVUkxBY3Rpb24gPSAkU2VsZW5pdW0tPmdldF9jdXJyZW50X3VybCgpOwogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgaW5kZXgoICRVUkxBY3Rpb24sICJBY3Rpb249QWdlbnRGQVFab29tO0l0ZW1JRD0kSXRlbUlEIiApID4gLTEsCiAgICAgICAgICAgIDEsCiAgICAgICAgICAgICJMaW5rIGZyb20gSm91cm5hbCB0byBab29tIHZpZXcgLSBzdWNjZXNzIiwKICAgICAgICApOwoKICAgICAgICAjIENyZWF0ZSBuZXcgdGVzdCB1c2VyIGFuZCBsb2dpbiB3aXRoIHN0YXRzIHBlcm1pc3Npb24KICAgICAgICAkVGVzdFVzZXJMb2dpbiA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKAogICAgICAgICAgICBHcm91cHMgPT4gWyAnc3RhdHMnLCBdLAogICAgICAgICkgfHwgZGllICJEaWQgbm90IGdldCB0ZXN0IHVzZXIiOwoKICAgICAgICAkU2VsZW5pdW0tPkxvZ2luKAogICAgICAgICAgICBUeXBlICAgICA9PiAnQWdlbnQnLAogICAgICAgICAgICBVc2VyICAgICA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRGQVFKb3VybmFsIik7CgogICAgICAgICMgRkFRIGl0ZW0gaXMgY3JlYXRlZCBpbiBNaXNjIGNhdGVnb3J5LCB1c2VycyB3aXRoIHN0YXRzIHBlcm1pc3Npb24gZG9uJ3Qgc2VlIGl0CiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gXCQoJyNFbXB0eU1lc3NhZ2VTbWFsbCcpLnRleHQoKS50cmltKCkiKSwKICAgICAgICAgICAgJ05vIEZBUSBKb3VybmFsIGRhdGEgZm91bmQnLAogICAgICAgICAgICAiVGhlcmUgaXMgbm8gcGVybWlzc2lvbiB0byBzZWUgRkFRIGl0ZW1zIiwKICAgICAgICApOwoKICAgICAgICAjIGRlbGV0ZSB0ZXN0IGNyZWF0ZWQgRkFRCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkRkFRT2JqZWN0LT5GQVFEZWxldGUoCiAgICAgICAgICAgIEl0ZW1JRCA9PiAkSXRlbUlELAogICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgIkZBUSBpdGVtIGlzIGRlbGV0ZWQgLSBJRCAkSXRlbUlEIiwKICAgICAgICApOwoKICAgICAgICAjIG1ha2Ugc3VyZSB0aGUgY2FjaGUgaXMgY29ycmVjdAogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKCBUeXBlID0+ICJGQVEiICk7CiAgICB9Cik7CgokU2VsZi0+RG9uZVRlc3RpbmcoKTsK</File>
        <File Location="scripts/test/Selenium/Agent/AgentFAQLanguage.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKIyBTZXQgdXAgdGhlIHRlc3QgZHJpdmVyICRTZWxmIHdoZW4gd2UgYXJlIHJ1bm5pbmcgYXMgYSBzdGFuZGFsb25lIHNjcmlwdC4KdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6UmVnaXN0ZXJEcml2ZXI7CgpvdXIgJFNlbGY7CgpteSAkU2VsZW5pdW0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OlNlbGVuaXVtJyk7CgokU2VsZW5pdW0tPlJ1blRlc3QoCiAgICBzdWIgewoKICAgICAgICBteSAkSGVscGVyICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKICAgICAgICBteSAkRkFRT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkZBUScpOwoKICAgICAgICAjIENyZWF0ZSB0ZXN0IHVzZXIgYW5kIGxvZ2luLgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICd1c2VycycgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgIG15ICRTY3JpcHRBbGlhcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnU2NyaXB0QWxpYXMnKTsKCiAgICAgICAgIyBOYXZpZ2F0ZSB0byBBZ2VudEZBUUxhbmd1YWdlIHNjcmVlbiBvZiBjcmVhdGVkIHRlc3QgRkFRLgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50RkFRTGFuZ3VhZ2UiKTsKCiAgICAgICAgIyBDaGVjayBhZGQgYnV0dG9uLgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2FbY29udGFpbnMoXEBocmVmLCBcJ0FjdGlvbj1BZ2VudEZBUUxhbmd1YWdlO1N1YmFjdGlvbj1BZGQnICldIik7CgogICAgICAgICMgQ2hlY2sgQWdlbnRGQVFMYW5ndWFnZSBzY3JlZW4uCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSIsICAgICAgICAgICAgICdjc3MnICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSB0aGVhZCB0ciB0aCIsICdjc3MnICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSB0Ym9keSB0ciB0ZCIsICdjc3MnICk7CgogICAgICAgICMgQ2hlY2sgRW5nbGlzaCBsYW5ndWFnZSAtICdlbicuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICdlbicsICdsaW5rX3RleHQnICk7CgogICAgICAgICMgQ2hlY2sgR2VybWFuIExhbmd1YWdlIC0gJ2RlJy4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggJ2RlJywgJ2xpbmtfdGV4dCcgKTsKCiAgICAgICAgIyBBZGQgdGVzdCBsYW5ndWFnZSAtIFNwYW5pc2ggKGVzKS4KICAgICAgICBteSAkRkFRTGFuZ3VhZ2UgPSAnZXMnOwoKICAgICAgICAjIENoZWNrIGlmIHRoZXJlIGlzICdlcyAtIExhbmd1YWdlJyBoYXMgYmVlbiBhZGRlZCBiZWZvcmUuCiAgICAgICAgbXkgJEV4aXN0cyA9ICRGQVFPYmplY3QtPkxhbmd1YWdlRHVwbGljYXRlQ2hlY2soCiAgICAgICAgICAgIE5hbWUgICA9PiAkRkFRTGFuZ3VhZ2UsCiAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICk7CgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2FbY29udGFpbnMoXEBocmVmLCBcJ0FjdGlvbj1BZ2VudEZBUUxhbmd1YWdlO1N1YmFjdGlvbj1BZGQnICldIiktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgaWYgKCRFeGlzdHMpIHsKICAgICAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjTmFtZSIsICdjc3MnICktPnNlbmRfa2V5cygkRkFRTGFuZ3VhZ2UpOwogICAgICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEB0eXBlPSdzdWJtaXQnXSIpLT5jbGljaygpOwogICAgICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gJ3JldHVybiAkKCIuRGlhbG9nLk1vZGFsLkFsZXJ0IikubGVuZ3RoICYmICQoIiNOYW1lLkVycm9yIikubGVuZ3RoJyApOwoKICAgICAgICAgICAgIyBDbG9zZSBhbGVydCBkaWFsb2cuCiAgICAgICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0RpYWxvZ0J1dHRvbjEiLCAnY3NzJyApLT5jbGljaygpOwogICAgICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gJ3JldHVybiAhJCgiLkRpYWxvZy5Nb2RhbC5BbGVydCIpLmxlbmd0aCcgKTsKCiAgICAgICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoCiAgICAgICAgICAgICAgICAgICAgInJldHVybiBcJCgnI05hbWUnKS5oYXNDbGFzcygnU2VydmVyRXJyb3InKSIKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAnMScsCiAgICAgICAgICAgICAgICAnVGhpcyBsYW5ndWFnZSBhbHJlYWR5IGV4aXN0cyEnLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBHbyBiYWNrIG9uIExhbmd1YWdlIG92ZXJ2aWV3IHNjcmVlbi4KICAgICAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRGQVFMYW5ndWFnZSIpOwoKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI05hbWUiLCAnY3NzJyApLT5zZW5kX2tleXMoJEZBUUxhbmd1YWdlKTsKICAgICAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYnV0dG9uW1xAdHlwZT0nc3VibWl0J10iKS0+VmVyaWZpZWRDbGljaygpOwogICAgICAgIH0KCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICdyZXR1cm4gJCgiLkRhdGFUYWJsZSIpLmxlbmd0aCcgKTsKCiAgICAgICAgIyBHZXQgSUQgZm9yIHRlc3QgbGFuZ3VhZ2UuCiAgICAgICAgbXkgJExhbmd1YWdlSUQgPSAkRkFRT2JqZWN0LT5MYW5ndWFnZUxvb2t1cCgKICAgICAgICAgICAgTmFtZSA9PiAkRkFRTGFuZ3VhZ2UsCiAgICAgICAgKTsKCiAgICAgICAgIyBWZXJpZnkgdGVzdCBGQVEgaGFzIGJlZW4gY3JlYXRlZC4KICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICJBZ2VudEZBUUxhbmd1YWdlO1N1YmFjdGlvbj1DaGFuZ2U7TGFuZ3VhZ2VJRD0kTGFuZ3VhZ2VJRCIgKSA+IC0xLAogICAgICAgICAgICAiVGVzdCBsYW5ndWFnZSBpcyBjcmVhdGVkIC0gJEZBUUxhbmd1YWdlIiwKICAgICAgICApOwoKICAgICAgICAjIENoZWNrIGFkZGVkICd0ZXN0JyBsYW5ndWFnZS4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiRGQVFMYW5ndWFnZSIsICdsaW5rX3RleHQnICktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggJyNOYW1lJywgJ2NzcycgKS0+Z2V0X3ZhbHVlKCksCiAgICAgICAgICAgICRGQVFMYW5ndWFnZSwKICAgICAgICAgICAgIlN0b3JlZCBsYW5ndWFnZSBuYW1lICRGQVFMYW5ndWFnZSAtIGZvdW5kIiwKICAgICAgICApOwoKICAgICAgICAjIEdvIGJhY2sgb24gTGFuZ3VhZ2Ugb3ZlcnZpZXcgc2NyZWVuLgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAnQ2FuY2VsJywgJ2xpbmtfdGV4dCcgKS0+VmVyaWZpZWRDbGljaygpOwoKICAgICAgICAjIElmIHRlc3QgbGFuZ3VhZ2Ugd2FzIGNyZWF0ZWQgaW4gdGhlIHRlc3QsIGRlbGV0ZSBpdC4KICAgICAgICBpZiAoICEkRXhpc3RzICkgewoKICAgICAgICAgICAgIyBEZWxldGUgJ3Rlc3QnIGxhbmd1YWdlLgogICAgICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNEZWxldGVMYW5ndWFnZUlEJExhbmd1YWdlSUQiLCAnY3NzJyApLT5jbGljaygpOwogICAgICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gJ3JldHVybiAkKCIjRGlhbG9nQnV0dG9uMSIpLmxlbmd0aCcgKTsKCiAgICAgICAgICAgICMgVmVyaWZ5IGRlbGV0ZSBtZXNzYWdlLgogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGxhbmd1YWdlPycgKSA+IC0xLAogICAgICAgICAgICAgICAgIkRlbGV0ZSBtZXNzYWdlIC0gZm91bmQiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBFeGVjdXRlIGRlbGV0ZS4KICAgICAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjRGlhbG9nQnV0dG9uMSIsICdjc3MnICktPmNsaWNrKCk7CiAgICAgICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAncmV0dXJuICEkKCIuRGlhbG9nLk1vZGFsIikubGVuZ3RoJyApOwoKICAgICAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZFJlZnJlc2goKTsKCiAgICAgICAgICAgICMgVmVyaWZ5IHRlc3QgRkFRIGhhcyBiZWVuIGRlbGV0ZWQuCiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICJBZ2VudEZBUUxhbmd1YWdlO1N1YmFjdGlvbj1DaGFuZ2U7TGFuZ3VhZ2VJRD0kTGFuZ3VhZ2VJRCIgKSA9PSAtMSwKICAgICAgICAgICAgICAgICJUZXN0IGxhbmd1YWdlIGlzIGRlbGV0ZWQgLSAkRkFRTGFuZ3VhZ2UiLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KKTsKCiRTZWxmLT5Eb25lVGVzdGluZygpOwo=</File>
        <File Location="scripts/test/Selenium/Agent/AgentFAQLinkObject.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKIyBTZXQgdXAgdGhlIHRlc3QgZHJpdmVyICRTZWxmIHdoZW4gd2UgYXJlIHJ1bm5pbmcgYXMgYSBzdGFuZGFsb25lIHNjcmlwdC4KdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6UmVnaXN0ZXJEcml2ZXI7CgpvdXIgJFNlbGY7CgpteSAkU2VsZW5pdW0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OlNlbGVuaXVtJyk7CgokU2VsZW5pdW0tPlJ1blRlc3QoCiAgICBzdWIgewoKICAgICAgICBteSAkSGVscGVyICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKICAgICAgICBteSAkRkFRT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkZBUScpOwoKICAgICAgICAjIFNldCBsaW5rIG9iamVjdCB2aWV3IG1vZGUgdG8gc2ltcGxlLgogICAgICAgICRIZWxwZXItPkNvbmZpZ1NldHRpbmdDaGFuZ2UoCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgICAgIEtleSAgID0+ICdMaW5rT2JqZWN0OjpWaWV3TW9kZScsCiAgICAgICAgICAgIFZhbHVlID0+ICdTaW1wbGUnLAogICAgICAgICk7CgogICAgICAgICMgU2V0IEZBUTo6VGl0bGVTaXplLgogICAgICAgICRIZWxwZXItPkNvbmZpZ1NldHRpbmdDaGFuZ2UoCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgICAgIEtleSAgID0+ICdGQVE6OlRpdGxlU2l6ZScsCiAgICAgICAgICAgIFZhbHVlID0+ICc1MCcsCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCB1c2VyLgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICd1c2VycycgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgIyBHZXQgdGVzdCB1c2VyIElELgogICAgICAgIG15ICRUZXN0VXNlcklEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxvb2t1cCgKICAgICAgICAgICAgVXNlckxvZ2luID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIHRlc3QgRkFRIGl0ZW1zLgogICAgICAgIG15IEBJdGVtSURzOwogICAgICAgIG15IEBGQVFOdW1iZXJzOwogICAgICAgIGZvciBteSAkRkFRICggMSAuLiAyICkgewogICAgICAgICAgICBteSAkSXRlbUlEID0gJEZBUU9iamVjdC0+RkFRQWRkKAogICAgICAgICAgICAgICAgVGl0bGUgICAgICAgPT4gJ1NvbWUgVGV4dCcsCiAgICAgICAgICAgICAgICBDYXRlZ29yeUlEICA9PiAxLAogICAgICAgICAgICAgICAgU3RhdGVJRCAgICAgPT4gMSwKICAgICAgICAgICAgICAgIExhbmd1YWdlSUQgID0+IDEsCiAgICAgICAgICAgICAgICBLZXl3b3JkcyAgICA9PiAnc29tZSBrZXl3b3JkcycsCiAgICAgICAgICAgICAgICBGaWVsZDEgICAgICA9PiAnU3ltcHRvbS4uLicsCiAgICAgICAgICAgICAgICBGaWVsZDIgICAgICA9PiAnUHJvYmxlbS4uLicsCiAgICAgICAgICAgICAgICBGaWVsZDMgICAgICA9PiAnU29sdXRpb24uLi4nLAogICAgICAgICAgICAgICAgRmllbGQ0ICAgICAgPT4gJ0ZpZWxkNC4uLicsCiAgICAgICAgICAgICAgICBGaWVsZDUgICAgICA9PiAnRmllbGQ1Li4uJywKICAgICAgICAgICAgICAgIEZpZWxkNiAgICAgID0+ICdDb21tZW50Li4uJywKICAgICAgICAgICAgICAgIEFwcHJvdmVkICAgID0+IDEsCiAgICAgICAgICAgICAgICBWYWxpZElEICAgICA9PiAxLAogICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHB1c2ggQEl0ZW1JRHMsICRJdGVtSUQ7CgogICAgICAgICAgICBteSAlRkFRID0gJEZBUU9iamVjdC0+RkFRR2V0KAogICAgICAgICAgICAgICAgSXRlbUlEID0+ICRJdGVtSUQsCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG15ICRGQVFOdW1iZXIgPSAkRkFRe051bWJlcn07CgogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRJdGVtSUQsCiAgICAgICAgICAgICAgICAiQ3JlYXRlZCBUaWNrZXQgSUQgJEl0ZW1JRCAtIEZBUSBOdW1iZXIgJEZBUU51bWJlciIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBwdXNoIEBGQVFOdW1iZXJzLCAkRkFRTnVtYmVyOwogICAgICAgIH0KCiAgICAgICAgIyBMb2dpbiBhcyB0ZXN0IHVzZXIuCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgIG15ICRTY3JpcHRBbGlhcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnU2NyaXB0QWxpYXMnKTsKCiAgICAgICAgIyBOYXZpZ2F0ZSB0byBsaW5rIG9iamVjdCBzY3JlZW4uCiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRMaW5rT2JqZWN0O1NvdXJjZU9iamVjdD1GQVE7U291cmNlS2V5PSRJdGVtSURzWzBdIik7CgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCIjU3VibWl0U2VhcmNoIikubGVuZ3RoOycgKTsKCiAgICAgICAgIyBTZWFyY2ggZm9yIHNlY29uZCBjcmVhdGVkIHRlc3QgZmFxLgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIuLy8qW1xAaWQ9J1NFQVJDSDo6TnVtYmVyJ10iKS0+c2VuZF9rZXlzKCAkRkFRTnVtYmVyc1sxXSApOwoKICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KCJcJCgnI1N1Ym1pdFNlYXJjaCcpLmNsaWNrKCk7Iik7CgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PgogICAgICAgICAgICAgICAgInJldHVybiB0eXBlb2YoXCQpID09PSAnZnVuY3Rpb24nICYmIFwkKCcjV2lkZ2V0RkFRJykubGVuZ3RoICYmIFwkKCdpbnB1dFt2YWx1ZT0kSXRlbUlEc1sxXV1bdHlwZT1jaGVja2JveF0nKS5sZW5ndGg7IgogICAgICAgICk7CgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcmpRdWVyeUV2ZW50Qm91bmQoCiAgICAgICAgICAgIENTU1NlbGVjdG9yID0+ICIjQWRkTGlua3MiLAogICAgICAgICk7CgogICAgICAgICMgTGluayBjcmVhdGVkIHRlc3QgRkFRIGl0ZW1zLgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2lucHV0W1xAdmFsdWU9JyRJdGVtSURzWzFdJ11bXEB0eXBlPSdjaGVja2JveCddIiktPmNsaWNrKCk7CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKAogICAgICAgICAgICBKYXZhU2NyaXB0ID0+ICJyZXR1cm4gXCQoJ2lucHV0W3ZhbHVlPSRJdGVtSURzWzFdXVt0eXBlPWNoZWNrYm94XTpjaGVja2VkJykubGVuZ3RoOyIKICAgICAgICApOwoKICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAiXCQoJyNUeXBlSWRlbnRpZmllcicpLnZhbCgnUGFyZW50Q2hpbGQ6OlRhcmdldCcpLnRyaWdnZXIoJ3JlZHJhdy5JbnB1dEZpZWxkJykudHJpZ2dlcignY2hhbmdlJyk7IgogICAgICAgICk7CgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAncmV0dXJuICQoIiNUeXBlSWRlbnRpZmllciIpLnZhbCgpID09PSAiUGFyZW50Q2hpbGQ6OlRhcmdldCI7JyApOwoKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNBZGRMaW5rcyIsICdjc3MnICktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBOYXZpZ2F0ZSB0byB6b29tIHZpZXcgb2YgY3JlYXRlZCB0ZXN0IEZBUSBpdGVtLgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50RkFRWm9vbTtJdGVtSUQ9JEl0ZW1JRHNbMF0iKTsKCiAgICAgICAgIyBWZXJpZnkgdGhhdCBwYXJlbnQgdGVzdCBGQVEgaXMgbGlua2VkIHdpdGggY2hpbGQgdGVzdCBGQVEuCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAnQ2hpbGQnICkgPiAtMSwKICAgICAgICAgICAgIkNoaWxkIC0gZm91bmQiLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAiRjoiIC4gJEZBUU51bWJlcnNbMV0gKSA+IC0xLAogICAgICAgICAgICAiVGlja2V0TnVtYmVyICRGQVFOdW1iZXJzWzFdIC0gZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgQ2xpY2sgb24gY2hpbGQgRkFRLgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2FbY29udGFpbnMoXEBocmVmLCBcJ0FjdGlvbj1BZ2VudEZBUVpvb207SXRlbUlEPSRJdGVtSURzWzFdJyApXSIpLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgVmVyaWZ5IHRoYXQgY2hpbGQgdGVzdCBGQVEgaXMgbGlua2VkIHdpdGggcGFyZW50IHRlc3QgRkFRLgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJ1BhcmVudCcgKSA+IC0xLAogICAgICAgICAgICAiUGFyZW50IC0gZm91bmQiLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAiRjoiIC4gJEZBUU51bWJlcnNbMF0gKSA+IC0xLAogICAgICAgICAgICAiRkFRTnVtYmVyICRGQVFOdW1iZXJzWzBdIC0gZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgVGVzdCBGQVEgdGl0bGUgbGVuZ3RoIGluIGNvbXBsZXggdmlldyBmb3IgbGlua2VkIEZBUXMuCiAgICAgICAgIyBTZXQgbGluayBvYmplY3QgdmlldyBtb2RlIHRvIGNvbXBsZXguCiAgICAgICAgJEhlbHBlci0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICAgICAgS2V5ICAgPT4gJ0xpbmtPYmplY3Q6OlZpZXdNb2RlJywKICAgICAgICAgICAgVmFsdWUgPT4gJ0NvbXBsZXgnLAogICAgICAgICk7CgogICAgICAgICMgVXBkYXRlIHRlc3QgRkFRIHRpdGxlIHRvIG1vcmUgdGhlbiA1MCBjaGFyYWN0ZXJzICh0aGVyZSBpcyA2NSkuCiAgICAgICAgbXkgJExvbmdGQVFUaXRsZSA9ICdUaGlzIGlzIGxvbmcgdGVzdCBteWl0ZW0gdGl0bGUgd2l0aCBtb3JlIHRoZW4gNTAgY2hhcmFjdGVycyBpbiBpdCc7CgogICAgICAgICMgRkFROjpUaXRsZVNpemUgaXMgc2V0IHRvIDUwIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGVzdC4KICAgICAgICBteSAkU2hvcnRUaXRsZSA9IHN1YnN0ciggJExvbmdGQVFUaXRsZSwgMCwgNDcgKSAuICIuLi4iOwoKICAgICAgICBteSAlRkFRID0gJEZBUU9iamVjdC0+RkFRR2V0KAogICAgICAgICAgICBJdGVtSUQgICAgID0+ICRJdGVtSURzWzFdLAogICAgICAgICAgICBJdGVtRmllbGRzID0+IDEsCiAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gMSwKICAgICAgICApOwogICAgICAgIG15ICRTdWNjZXNzID0gJEZBUU9iamVjdC0+RkFRVXBkYXRlKAogICAgICAgICAgICAlRkFRLAogICAgICAgICAgICBUaXRsZSAgPT4gJExvbmdGQVFUaXRsZSwKICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICJVcGRhdGVkIEZBUSB0aXRsZSAtICRJdGVtSURzWzFdIgogICAgICAgICk7CgogICAgICAgICMgTmF2aWdhdGUgdG8gQWdlbnRGQVFab29tIHNjcmVlbi4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudEZBUVpvb207SXRlbUlEPSRJdGVtSURzWzBdIik7CgogICAgICAgICMgQ2hlY2sgZm9yIHVwZGF0ZWQgRkFRIHRpdGxlIGluIGxpbmtlZCBGQVEgaXRlbXMgY29tcGxleCB2aWV3IHRhYmxlLgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJExvbmdGQVFUaXRsZSApID4gLTEsCiAgICAgICAgICAgICIkTG9uZ0ZBUVRpdGxlIC0gZm91bmQgaW4gQWdlbnRGQVFab29tIGNvbXBsZXggdmlldyBtb2RlIiwKICAgICAgICApOwoKICAgICAgICAjIENvbGxhcHNlIGFsbCBGQVEgZmllbGRzIHRvIHNob3cgbGluayB0YWJsZSBpbiB0aGUgc2NyZWVuLgogICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoCiAgICAgICAgICAgICJcJCgnI0ZBUUJvZHkgLkV4cGFuZGVkIGEnKS5jbGljaygpOyIKICAgICAgICApOwoKICAgICAgICAjIENoZWNrIGZvciAiZGVmYXVsdCIgdmlzaWJsZSBjb2x1bW5zIGluIHRoZSBMaW5rZWQgRkFRIHdpZGdldC4KICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoCiAgICAgICAgICAgICAgICAicmV0dXJuIFwkKCcjV2lkZ2V0RkFRIC5EYXRhVGFibGUgdGhlYWQgdHIgdGg6bnRoLWNoaWxkKDEpJykudGV4dCgpOyIKICAgICAgICAgICAgKSwKICAgICAgICAgICAgJyBGQVEjICcsCiAgICAgICAgICAgICdEZWZhdWx0IDFzdCBjb2x1bW4gbmFtZScsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoCiAgICAgICAgICAgICAgICAicmV0dXJuIFwkKCcjV2lkZ2V0RkFRIC5EYXRhVGFibGUgdGhlYWQgdHIgdGg6bnRoLWNoaWxkKDIpJykudGV4dCgpOyIKICAgICAgICAgICAgKSwKICAgICAgICAgICAgJyBUaXRsZSAnLAogICAgICAgICAgICAnRGVmYXVsdCAybmQgY29sdW1uIG5hbWUnLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAgICAgInJldHVybiBcJCgnI1dpZGdldEZBUSAuRGF0YVRhYmxlIHRoZWFkIHRyIHRoOm50aC1jaGlsZCgzKScpLnRleHQoKTsiCiAgICAgICAgICAgICksCiAgICAgICAgICAgICcgU3RhdGUgJywKICAgICAgICAgICAgJ0RlZmF1bHQgM3RoIGNvbHVtbiBuYW1lJywKICAgICAgICApOwogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgKICAgICAgICAgICAgICAgICJyZXR1cm4gXCQoJyNXaWRnZXRGQVEgLkRhdGFUYWJsZSB0aGVhZCB0ciB0aDpudGgtY2hpbGQoNCknKS50ZXh0KCk7IgogICAgICAgICAgICApLAogICAgICAgICAgICAnIENyZWF0ZWQgJywKICAgICAgICAgICAgJ0RlZmF1bHQgNHRoIGNvbHVtbiBuYW1lJywKICAgICAgICApOwoKICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoCiAgICAgICAgICAgICAgICAicmV0dXJuIFwkKCcjV2lkZ2V0RkFRIC5EYXRhVGFibGUgdGhlYWQgdHIgdGg6bnRoLWNoaWxkKDUpJykudGV4dCgpOyIKICAgICAgICAgICAgKSwKICAgICAgICAgICAgJyBMaW5rZWQgYXMgJywKICAgICAgICAgICAgJ0RlZmF1bHQgNXRoIGNvbHVtbiBuYW1lJywKICAgICAgICApOwoKICAgICAgICAjIFNob3cgQWN0aW9uTWVudSAtIHVzdWFsbHkgdGhpcyBpcyBkb25lIHdoZW4gdXNlciBob3ZlcnMsIGhvd2V2ZXIgaXQncyBub3QgcG9zc2libGUgdG8gc2ltdWxhdGUgdGhpcyBiZWhhdmlvci4KICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAiXCQoJyNXaWRnZXRGQVEgLkFjdGlvbk1lbnUnKS5zaG93KCk7IgogICAgICAgICk7CgogICAgICAgICMgQ2hlY2sgaWYgY29sdW1uIHNldHRpbmdzIGJ1dHRvbiBpcyBhdmFpbGFibGUgaW4gdGhlIExpbmtlZCBGQVEgd2lkZ2V0LgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAnYSNsaW5rb2JqZWN0LUZBUS10b2dnbGUnLCAnY3NzJyApLT5jbGljaygpOwoKICAgICAgICAjIFdhaXQgZm9yIHRoZSBjb21wbGV0ZSB3aWRnZXQgdG8gYmUgZnVsbHkgc2xpZGVkIGluIGFsbCB0aGUgd2F5IGRvd24gdG8gdGhlIHN1Ym1pdCBidXR0b24uCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKAogICAgICAgICAgICBKYXZhU2NyaXB0ID0+CiAgICAgICAgICAgICAgICAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCIjbGlua29iamVjdC1GQVFfc3VibWl0OnZpc2libGUiKS5sZW5ndGg7JwogICAgICAgICk7CgogICAgICAgIHNsZWVwIDE7CgogICAgICAgICMgVE9ETzogcmVtb3ZlIGxpbWl0YXRpb24gdG8gZmlyZWZveC4KICAgICAgICBpZiAoICRTZWxlbml1bS0+e2Jyb3dzZXJfbmFtZX0gZXEgJ2ZpcmVmb3gnICkgewogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgIDEsCiAgICAgICAgICAgICAgICAiVE9ETzogRHJhZ0FuZERyb3AgaXMgY3VycmVudGx5IGRpc2FibGVkIGluIEZpcmVmb3giLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgUmVtb3ZlIEFwcHJvdmVkIGZyb20gbGVmdCBzaWRlLCBhbmQgcHV0IGl0IHRvIHRoZSByaWdodCBzaWRlLgogICAgICAgICAgICAkU2VsZW5pdW0tPkRyYWdBbmREcm9wKAogICAgICAgICAgICAgICAgRWxlbWVudCAgICAgID0+ICcjV2lkZ2V0RkFRICNBdmFpbGFibGVGaWVsZC1saW5rb2JqZWN0LUZBUSBsaVtkYXRhLWZpZWxkbmFtZT0iQXBwcm92ZWQiXScsCiAgICAgICAgICAgICAgICBUYXJnZXQgICAgICAgPT4gJyNBc3NpZ25lZEZpZWxkcy1saW5rb2JqZWN0LUZBUScsCiAgICAgICAgICAgICAgICBUYXJnZXRPZmZzZXQgPT4gewogICAgICAgICAgICAgICAgICAgIFggPT4gMTg1LAogICAgICAgICAgICAgICAgICAgIFkgPT4gMTAsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBSZW1vdmUgU3RhdGUgZnJvbSByaWdodCBzaWRlLCBhbmQgcHV0IGl0IHRvIHRoZSBsZWZ0IHNpZGUuCiAgICAgICAgICAgICRTZWxlbml1bS0+RHJhZ0FuZERyb3AoCiAgICAgICAgICAgICAgICBFbGVtZW50ICAgICAgPT4gJyNXaWRnZXRGQVEgI0Fzc2lnbmVkRmllbGRzLWxpbmtvYmplY3QtRkFRIGxpW2RhdGEtZmllbGRuYW1lPSJTdGF0ZSJdJywKICAgICAgICAgICAgICAgIFRhcmdldCAgICAgICA9PiAnI0F2YWlsYWJsZUZpZWxkLWxpbmtvYmplY3QtRkFRJywKICAgICAgICAgICAgICAgIFRhcmdldE9mZnNldCA9PiB7CiAgICAgICAgICAgICAgICAgICAgWCA9PiAxODUsCiAgICAgICAgICAgICAgICAgICAgWSA9PiAxMCwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIFNhdmUgbmV3IGNvbHVtbnMuCiAgICAgICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAnI2xpbmtvYmplY3QtRkFRX3N1Ym1pdCcsICdjc3MnICktPmNsaWNrKCk7CgogICAgICAgICAgICAjIFdhaXQgZm9yIEFKQVguCiAgICAgICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgPT4KICAgICAgICAgICAgICAgICAgICAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCIjV2lkZ2V0RkFRIC5EYXRhVGFibGU6dmlzaWJsZSIpLmxlbmd0aDsnCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIENoZWNrIGZvciAidXBkYXRlZCIgdmlzaWJsZSBjb2x1bW5zIGluIHRoZSBMaW5rZWQgRkFRIHdpZGdldC4KICAgICAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgKICAgICAgICAgICAgICAgICAgICAicmV0dXJuIFwkKCcjV2lkZ2V0RkFRIC5EYXRhVGFibGUgdGhlYWQgdHIgdGg6ZXEoMCknKS50ZXh0KCkudHJpbSgpOyIKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAnRkFRIycsCiAgICAgICAgICAgICAgICAnVXBkYXRlZCAxc3QgY29sdW1uIG5hbWUnLAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAgICAgICAgICJyZXR1cm4gXCQoJyNXaWRnZXRGQVEgLkRhdGFUYWJsZSB0aGVhZCB0ciB0aDplcSgxKScpLnRleHQoKS50cmltKCk7IgogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICdBcHByb3ZlZCcsCiAgICAgICAgICAgICAgICAnVXBkYXRlZCAybmQgY29sdW1uIG5hbWUnLAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAgICAgICAgICJyZXR1cm4gXCQoJyNXaWRnZXRGQVEgLkRhdGFUYWJsZSB0aGVhZCB0ciB0aDplcSgyKScpLnRleHQoKS50cmltKCk7IgogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICdUaXRsZScsCiAgICAgICAgICAgICAgICAnVXBkYXRlZCAzcmQgY29sdW1uIG5hbWUnLAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAgICAgICAgICJyZXR1cm4gXCQoJyNXaWRnZXRGQVEgLkRhdGFUYWJsZSB0aGVhZCB0ciB0aDplcSgzKScpLnRleHQoKS50cmltKCk7IgogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICdDcmVhdGVkJywKICAgICAgICAgICAgICAgICdVcGRhdGVkIDR0aCBjb2x1bW4gbmFtZScsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAgICAgICAgICJyZXR1cm4gXCQoJyNXaWRnZXRGQVEgLkRhdGFUYWJsZSB0aGVhZCB0ciB0aDplcSg0KScpLnRleHQoKS50cmltKCk7IgogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICdTdGF0ZScsCiAgICAgICAgICAgICAgICAnVXBkYXRlZCA1dGggY29sdW1uIG5hbWUnLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBOYXZpZ2F0ZSB0byBsaW5rIG9iamVjdCBzY3JlZW4uCiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRMaW5rT2JqZWN0O1NvdXJjZU9iamVjdD1GQVE7U291cmNlS2V5PSRJdGVtSURzWzBdIik7CgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PiAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCJkaXZbZGF0YS1pZD1NYW5hZ2VMaW5rc10iKS5sZW5ndGg7JwogICAgICAgICk7CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yalF1ZXJ5RXZlbnRCb3VuZCgKICAgICAgICAgICAgQ1NTU2VsZWN0b3IgPT4gImFbaHJlZj0nI01hbmFnZUxpbmtzJ10iLAogICAgICAgICk7CgogICAgICAgICMgQ2xpY2sgb24gJ2dvIHRvIGxpbmsgZGVsZXRlIHNjcmVlbicuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYVtjb250YWlucyhcQGhyZWYsIFwnI01hbmFnZUxpbmtzJyApXSIpLT5jbGljaygpOwogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PgogICAgICAgICAgICAgICAgInJldHVybiBcJCgnZGl2W2RhdGEtaWQ9TWFuYWdlTGlua3NdLkFjdGl2ZScpLmxlbmd0aCAmJiBcJCgnI0ZBUSAuRGF0YVRhYmxlIHRyIHNwYW46Y29udGFpbnMoXCIkU2hvcnRUaXRsZVwiKScpLmxlbmd0aDsiCiAgICAgICAgKTsKCiAgICAgICAgIyBDaGVjayBmb3IgbG9uZyBGQVEgdGl0bGUgaW4gTGlua0RlbGV0ZSBzY3JlZW4uCiAgICAgICAgIyBUaGlzIG9uZSBpcyBkaXNwbGF5ZWQgb24gaG92ZXIuCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoInJldHVybiBcJCgnI0ZBUSAuRGF0YVRhYmxlIHRyIHNwYW5bdGl0bGU9XCIkTG9uZ0ZBUVRpdGxlXCJdJykubGVuZ3RoOyIpLAogICAgICAgICAgICAiXCJ0aXRsZT0kTG9uZ0ZBUVRpdGxlXCIgLSBmb3VuZCBpbiBMaW5rRGVsZXRlIHNjcmVlbiAtIHdoaWNoIGlzIGRpc3BsYXllZCBvbiBob3ZlciIsCiAgICAgICAgKTsKCiAgICAgICAgIyBDaGVjayBmb3Igc2hvcnQgdGlja2V0IHRpdGxlIGluIExpbmtEZWxldGUgc2NyZWVuLgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gXCQoJyNGQVEgLkRhdGFUYWJsZSB0ciBzcGFuOmNvbnRhaW5zKFwiJFNob3J0VGl0bGVcIiknKS5sZW5ndGg7IiksCiAgICAgICAgICAgICIkU2hvcnRUaXRsZSAtIGZvdW5kIGluIExpbmtEZWxldGUgc2NyZWVuIiwKICAgICAgICApOwoKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3JqUXVlcnlFdmVudEJvdW5kKAogICAgICAgICAgICBDU1NTZWxlY3RvciA9PiAiI1NlbGVjdEFsbExpbmtzMCIsCiAgICAgICAgKTsKCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjU2VsZWN0QWxsTGlua3MwIiwgJ2NzcycgKS0+Y2xpY2soKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gJ3JldHVybiAkKCIjRkFRIC5EYXRhVGFibGUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCIpLmxlbmd0aDsnICk7CgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2J1dHRvbltcQHRpdGxlPSdEZWxldGUgbGlua3MnXSIpLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgRGVsZXRlIGNyZWF0ZWQgdGVzdCB0aWNrZXRzLgogICAgICAgIGZvciBteSAkSXRlbUlEIChASXRlbUlEcykgewogICAgICAgICAgICAkU3VjY2VzcyA9ICRGQVFPYmplY3QtPkZBUURlbGV0ZSgKICAgICAgICAgICAgICAgIEl0ZW1JRCA9PiAkSXRlbUlELAogICAgICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICAgICAiRGVsZXRlIEZBUSBJdGVtIC0gJEl0ZW1JRCIKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9Cik7CgokU2VsZi0+RG9uZVRlc3RpbmcoKTsK</File>
        <File Location="scripts/test/Selenium/Agent/AgentFAQPrint.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKIyBTZXQgdXAgdGhlIHRlc3QgZHJpdmVyICRTZWxmIHdoZW4gd2UgYXJlIHJ1bm5pbmcgYXMgYSBzdGFuZGFsb25lIHNjcmlwdC4KdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6UmVnaXN0ZXJEcml2ZXI7CgpvdXIgJFNlbGY7CgpteSAkU2VsZW5pdW0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OlNlbGVuaXVtJyk7CgppZiAoICEkU2VsZW5pdW0tPnticm93c2VyX25hbWV9IHx8ICRTZWxlbml1bS0+e2Jyb3dzZXJfbmFtZX0gbmUgJ2ZpcmVmb3gnICkgewogICAgJFNlbGYtPlRydWUoCiAgICAgICAgMSwKICAgICAgICAnUERGIHRlc3QgY3VycmVudGx5IHN1cHBvcnRzIEZpcmVmb3ggb25seSwgc2tpcHBpbmcgdGVzdCcKICAgICk7CiAgICAjI3JldHVybiAxOwp9CmVsc2UgewogICAgJFNlbGVuaXVtLT5SdW5UZXN0KAogICAgICAgIHN1YiB7CgogICAgICAgICAgICAjIGdldCBoZWxwZXIgb2JqZWN0CiAgICAgICAgICAgIG15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKICAgICAgICAgICAgIyBnZXQgRkFRIG9iamVjdAogICAgICAgICAgICBteSAkRkFRT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkZBUScpOwoKICAgICAgICAgICAgIyBjcmVhdGUgdGVzdCBGQVEKICAgICAgICAgICAgIyB0ZXN0IHBhcmFtcwogICAgICAgICAgICBteSAkRkFRVGl0bGUgICAgPSAnRkFRICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgICAgICBteSAkRkFRU3ltcHRvbSAgPSAnU2VsZW5pdW0gU3ltcHRvbSc7CiAgICAgICAgICAgIG15ICRGQVFQcm9ibGVtICA9ICdTZWxlbml1bSBQcm9ibGVtJzsKICAgICAgICAgICAgbXkgJEZBUVNvbHV0aW9uID0gJ1NlbGVuaXVtIFNvbHV0aW9uJzsKICAgICAgICAgICAgbXkgJEZBUUNvbW1lbnQgID0gJ1NlbGVuaXVtIENvbW1lbnQnOwoKICAgICAgICAgICAgbXkgJEl0ZW1JRCA9ICRGQVFPYmplY3QtPkZBUUFkZCgKICAgICAgICAgICAgICAgIFRpdGxlICAgICAgID0+ICRGQVFUaXRsZSwKICAgICAgICAgICAgICAgIENhdGVnb3J5SUQgID0+IDEsCiAgICAgICAgICAgICAgICBTdGF0ZUlEICAgICA9PiAxLAogICAgICAgICAgICAgICAgTGFuZ3VhZ2VJRCAgPT4gMSwKICAgICAgICAgICAgICAgIEtleXdvcmRzICAgID0+ICdzb21lIGtleXdvcmRzJywKICAgICAgICAgICAgICAgIEZpZWxkMSAgICAgID0+ICRGQVFTeW1wdG9tLAogICAgICAgICAgICAgICAgRmllbGQyICAgICAgPT4gJEZBUVByb2JsZW0sCiAgICAgICAgICAgICAgICBGaWVsZDMgICAgICA9PiAkRkFRU29sdXRpb24sCiAgICAgICAgICAgICAgICBGaWVsZDYgICAgICA9PiAkRkFRQ29tbWVudCwKICAgICAgICAgICAgICAgIFZhbGlkSUQgICAgID0+IDEsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvaHRtbCcsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRJdGVtSUQsCiAgICAgICAgICAgICAgICAiRkFRIGl0ZW0gaXMgY3JlYXRlZCAtIElEICRJdGVtSUQiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBjcmVhdGUgdGVzdCB1c2VyIGFuZCBsb2dpbgogICAgICAgICAgICBteSAkVGVzdFVzZXJMb2dpbiA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKAogICAgICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ3VzZXJzJyBdLAogICAgICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgICAgICBUeXBlICAgICA9PiAnQWdlbnQnLAogICAgICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgZ2V0IHNjcmlwdCBhbGlhcwogICAgICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICAgICAjIG5hdmlnYXRlIHRvIEFnZW50RkFRUHJpbnQgc2NyZWVuIG9mIGNyZWF0ZWQgdGVzdCBGQVEKICAgICAgICAgICAgJFNlbGVuaXVtLT5nZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50RkFRUHJpbnQ7SXRlbUlEPSRJdGVtSUQiKTsKCiAgICAgICAgICAgICMgd2FpdCB1bnRpbCBwcmludCBzY3JlZW4gaXMgbG9hZGVkCiAgICAgICAgICAgIEFDVElWRVNMRUVQOgogICAgICAgICAgICBmb3IgbXkgJFNlY29uZCAoIDEgLi4gMjAgKSB7CiAgICAgICAgICAgICAgICBpZiAoIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkRkFRQ29tbWVudCApID4gLTEsICkgewogICAgICAgICAgICAgICAgICAgIGxhc3QgQUNUSVZFU0xFRVA7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBzbGVlcCAxOwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSBAVGVzdHMgPSAoCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRkFRRGF0YSA9PiAkRkFRU3ltcHRvbSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRkFRRGF0YSA9PiAkRkFRUHJvYmxlbSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRkFRRGF0YSA9PiAkRkFRU29sdXRpb24sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEZBUURhdGEgPT4gJEZBUUNvbW1lbnQsCiAgICAgICAgICAgICAgICB9LAoKICAgICAgICAgICAgKTsKICAgICAgICAgICAgZm9yIG15ICRUZXN0IChAVGVzdHMpIHsKICAgICAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkVGVzdC0+e0ZBUURhdGF9ICkgPiAtMSwKICAgICAgICAgICAgICAgICAgICAiJFRlc3QtPntGQVFEYXRhfSBpcyBmb3VuZCBvbiBwcmludCBzY3JlZW4iLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkRkFRT2JqZWN0LT5GQVFEZWxldGUoCiAgICAgICAgICAgICAgICBJdGVtSUQgPT4gJEl0ZW1JRCwKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAgICAgIkZBUSBpdGVtIGlzIGRlbGV0ZWQgLSBJRCAkSXRlbUlEIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgbWFrZSBzdXJlIHRoZSBjYWNoZSBpcyBjb3JyZWN0CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKCBUeXBlID0+ICJGQVEiICk7CgogICAgICAgIH0KCiAgICApOwp9CgokU2VsZi0+RG9uZVRlc3RpbmcoKTsK</File>
        <File Location="scripts/test/Selenium/Agent/AgentFAQSearch.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKIyBTZXQgdXAgdGhlIHRlc3QgZHJpdmVyICRTZWxmIHdoZW4gd2UgYXJlIHJ1bm5pbmcgYXMgYSBzdGFuZGFsb25lIHNjcmlwdC4KdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6UmVnaXN0ZXJEcml2ZXI7CgpvdXIgJFNlbGY7CgpteSAkU2VsZW5pdW0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OlNlbGVuaXVtJyk7CgokU2VsZW5pdW0tPlJ1blRlc3QoCiAgICBzdWIgewoKICAgICAgICBteSAkSGVscGVyICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwogICAgICAgIG15ICRGQVFPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpGQVEnKTsKICAgICAgICBteSAkR3JvdXBPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKTsKCiAgICAgICAgbXkgJFJhbmRvbUlEID0gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCBncm91cC4KICAgICAgICBteSAkR3JvdXBOYW1lID0gImdyb3VwLSRSYW5kb21JRCI7CiAgICAgICAgbXkgJEdyb3VwSUQgICA9ICRHcm91cE9iamVjdC0+R3JvdXBBZGQoCiAgICAgICAgICAgIE5hbWUgICAgPT4gJEdyb3VwTmFtZSwKICAgICAgICAgICAgVmFsaWRJRCA9PiAxLAogICAgICAgICAgICBVc2VySUQgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJEdyb3VwSUQsCiAgICAgICAgICAgICJHcm91cElEICRHcm91cElEIC0gY3JlYXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBNb2RpZnkgQWdlbnRGQVFBZGQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBjb25maWd1cmF0aW9uIHRvIGFsbG93IG9ubHkgdGVzdCBjcmVhdGVkIGdyb3VwIGFzIFJXLgogICAgICAgICMgVGVzdCBidWcjMTQwNjggQ3JlYXRlQnkgc2VsZWN0aW9uIGhvbm9yIGdyb3VwIGNvbmZpZ3VyYXRpb24uCiAgICAgICAgbXkgJUFnZW50RkFRQWRkTW9kdWxlQ29uZmlnID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycpLT5TZXR0aW5nR2V0KAogICAgICAgICAgICBOYW1lICAgID0+ICdGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRGQVFBZGQnLAogICAgICAgICAgICBEZWZhdWx0ID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJUFnZW50RkFRQWRkTW9kdWxlQ29uZmlnVXBkYXRlID0gJXsgJEFnZW50RkFRQWRkTW9kdWxlQ29uZmlne0VmZmVjdGl2ZVZhbHVlfSB9OwogICAgICAgICRBZ2VudEZBUUFkZE1vZHVsZUNvbmZpZ1VwZGF0ZXtHcm91cH0gPSBbJEdyb3VwTmFtZV07CgogICAgICAgICRIZWxwZXItPkNvbmZpZ1NldHRpbmdDaGFuZ2UoCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgICAgIEtleSAgID0+ICdGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRGQVFBZGQnLAogICAgICAgICAgICBWYWx1ZSA9PiBcJUFnZW50RkFRQWRkTW9kdWxlQ29uZmlnVXBkYXRlLAogICAgICAgICk7CgogICAgICAgIG15ICRDYXRlZ29yeUlEID0gJEZBUU9iamVjdC0+Q2F0ZWdvcnlBZGQoCiAgICAgICAgICAgIE5hbWUgICAgID0+ICdDYXRlZ29yeScgLiAkUmFuZG9tSUQsCiAgICAgICAgICAgIENvbW1lbnQgID0+ICdTb21lIGNvbW1lbnQnLAogICAgICAgICAgICBQYXJlbnRJRCA9PiAwLAogICAgICAgICAgICBWYWxpZElEICA9PiAxLAogICAgICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgICk7CgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkQ2F0ZWdvcnlJRCwKICAgICAgICAgICAgIkZBUSBjYXRlZ29yeSBpcyBjcmVhdGVkIC0gSUQgJENhdGVnb3J5SUQiLAogICAgICAgICk7CgogICAgICAgICRGQVFPYmplY3QtPlNldENhdGVnb3J5R3JvdXAoCiAgICAgICAgICAgIENhdGVnb3J5SUQgPT4gJENhdGVnb3J5SUQsCiAgICAgICAgICAgIEdyb3VwSURzICAgPT4gWyRHcm91cElEXSwKICAgICAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIER5bmFtaWNGaWVsZC4KICAgICAgICBteSAkRHluYW1pY0ZpZWxkT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpOwogICAgICAgIG15ICRERlRleHROYW1lICAgICAgICAgPSAnVGV4dCcgLiAkUmFuZG9tSUQ7CgogICAgICAgIG15ICREeW5hbWljRmllbGRJRCA9ICREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZEFkZCgKICAgICAgICAgICAgTmFtZSAgICAgICA9PiAkREZUZXh0TmFtZSwKICAgICAgICAgICAgTGFiZWwgICAgICA9PiAkREZUZXh0TmFtZSwKICAgICAgICAgICAgRmllbGRPcmRlciA9PiA5OTkwLAogICAgICAgICAgICBGaWVsZFR5cGUgID0+ICdUZXh0JywKICAgICAgICAgICAgT2JqZWN0VHlwZSA9PiAnRkFRJywKICAgICAgICAgICAgQ29uZmlnICAgICA9PiB7CiAgICAgICAgICAgICAgICBEZWZhdWx0VmFsdWUgPT4gJycsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFJlb3JkZXIgPT4gMCwKICAgICAgICAgICAgVmFsaWRJRCA9PiAxLAogICAgICAgICAgICBVc2VySUQgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJER5bmFtaWNGaWVsZElELAogICAgICAgICAgICAiRHluYW1pY0ZpZWxkSUQgJER5bmFtaWNGaWVsZElEIGlzIGNyZWF0ZWQuIgogICAgICAgICk7CgogICAgICAgICMgR2V0IHRlc3QgY3JlYXRlZCBEeW5hbWljRmllbGQKICAgICAgICBteSAkVGV4dFR5cGVEeW5hbWljRmllbGRDb25maWcgPSAkRHluYW1pY0ZpZWxkT2JqZWN0LT5EeW5hbWljRmllbGRHZXQoCiAgICAgICAgICAgIE5hbWUgPT4gJERGVGV4dE5hbWUsCiAgICAgICAgKTsKICAgICAgICBteSAkQmFja2VuZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKTsKCiAgICAgICAgIyBFbmFibGUgdGVzdCBjcmVhdGVkIER5bmFtaWNGaWVsZCBvbiBBZ2VudEZBUVNlYXJjaCBvdmVydmlldyBzY3JlZW4uCiAgICAgICAgJEhlbHBlci0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICAgICAgS2V5ICAgPT4gJ0ZBUTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3U21hbGwjIyNEeW5hbWljRmllbGQnLAogICAgICAgICAgICBWYWx1ZSA9PiB7CiAgICAgICAgICAgICAgICAkREZUZXh0TmFtZSA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIHRlc3QgdXNlci4KICAgICAgICBteSAkVGVzdFVzZXIgPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ3VzZXJzJyBdLAogICAgICAgICkgfHwgZGllICJEaWQgbm90IGdldCB0ZXN0IHVzZXIiOwoKICAgICAgICBteSAkVGVzdFVzZXJJRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPlVzZXJMb29rdXAoCiAgICAgICAgICAgIFVzZXJMb2dpbiA9PiAkVGVzdFVzZXIsCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCB1c2VyIHdoaWNoIGlzIGluIGdyb3VwIGRlZmluZWQgaW4gdGhlIG1vZHVsZSBjb25maWd1cmF0aW9uIGFzIFJXIGluIEFnZW50RkFRQWRkLgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICd1c2VycycsICRHcm91cE5hbWUgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW5JRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPlVzZXJMb29rdXAoCiAgICAgICAgICAgIFVzZXJMb2dpbiA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICBteSBARkFRU2VhcmNoOwoKICAgICAgICAjIENyZWF0ZSB0ZXN0IEZBUXMuCiAgICAgICAgbXkgJENvdW50ID0gMDsKICAgICAgICBmb3IgbXkgJFRpdGxlIChxdyggRkFRU2VhcmNoIEZBUUNoYW5nZVNlYXJjaCApKSB7CiAgICAgICAgICAgIGZvciAoIDEgLi4gNSApIHsKICAgICAgICAgICAgICAgIG15ICRGQVFUaXRsZSA9ICRUaXRsZSAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgICAgICAgICBteSAkSXRlbUlEICAgPSAkRkFRT2JqZWN0LT5GQVFBZGQoCiAgICAgICAgICAgICAgICAgICAgVGl0bGUgICAgICAgPT4gJEZBUVRpdGxlLAogICAgICAgICAgICAgICAgICAgIENhdGVnb3J5SUQgID0+ICRDYXRlZ29yeUlELAogICAgICAgICAgICAgICAgICAgIFN0YXRlSUQgICAgID0+IDEsCiAgICAgICAgICAgICAgICAgICAgTGFuZ3VhZ2VJRCAgPT4gMSwKICAgICAgICAgICAgICAgICAgICBWYWxpZElEICAgICA9PiAxLAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+ICRUZXN0VXNlckxvZ2luSUQsCiAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvaHRtbCcsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgICAgICRJdGVtSUQsCiAgICAgICAgICAgICAgICAgICAgIkZBUSBpdGVtIGlzIGNyZWF0ZWQgLSBJRCAkSXRlbUlEIiwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgbXkgJUZBUSA9ICgKICAgICAgICAgICAgICAgICAgICBJdGVtSUQgICA9PiAkSXRlbUlELAogICAgICAgICAgICAgICAgICAgIEZBUVRpdGxlID0+ICRGQVFUaXRsZSwKICAgICAgICAgICAgICAgICAgICBUeXBlICAgICA9PiAkVGl0bGUsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIHB1c2ggQEZBUVNlYXJjaCwgXCVGQVE7CgogICAgICAgICAgICAgICAgIyBTZXQgRHluYW1pY0ZpZWxkIHZhbHVlLgogICAgICAgICAgICAgICAgbXkgJERGVmFsdWUgPSAkQ291bnQgLiAnREZWYWx1ZSc7CiAgICAgICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRCYWNrZW5kT2JqZWN0LT5WYWx1ZVNldCgKICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJFRleHRUeXBlRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICAgICAgICAgIE9iamVjdElEICAgICAgICAgICA9PiAkSXRlbUlELAogICAgICAgICAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAkREZWYWx1ZSwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgICAgICAgICAiVmFsdWUgJyRERlZhbHVlJyBpcyBzZXQgc3VjY2Vzc2Z1bGx5IGZvciBGQVFJRCAkSXRlbUlEIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkQ291bnQrKzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBMb2dpbiB0ZXN0IHVzZXIuCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgIG15ICRTY3JpcHRBbGlhcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnU2NyaXB0QWxpYXMnKTsKCiAgICAgICAgIyBOYXZpZ2F0ZSB0byBBZ2VudEZBUVNlYXJjaCBmb3JtLgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50RkFRU2VhcmNoIik7CgogICAgICAgICMgV2FpdCB1bnRpbCBmb3JtIGhhcyBsb2FkZWQsIGlmIG5lY2Vzc2FyeS4KICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gInJldHVybiBcJCgnI1NlYXJjaFByb2ZpbGUnKS5sZW5ndGgiICk7CgogICAgICAgICMgQ2hlY2sgdGlja2V0IHNlYXJjaCBwYWdlLgogICAgICAgIGZvciBteSAkSUQgKAogICAgICAgICAgICBxdyhTZWFyY2hQcm9maWxlIFNlYXJjaFByb2ZpbGVOZXcgQXR0cmlidXRlIFJlc3VsdEZvcm0gU2VhcmNoRm9ybVN1Ym1pdCkKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiMkSUQiLCAnY3NzJyApOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZW5hYmxlZCgpOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZGlzcGxheWVkKCk7CiAgICAgICAgfQoKICAgICAgICAjIEFkZCBzZWFyY2ggZmlsdGVyIGJ5IHRpdGxlIGFuZCBydW4gaXQuCiAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgiXCQoJyNBdHRyaWJ1dGUnKS52YWwoJ1RpdGxlJykudHJpZ2dlcigncmVkcmF3LklucHV0RmllbGQnKS50cmlnZ2VyKCdjaGFuZ2UnKTsiKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIlRpdGxlIiwgJ25hbWUnICktPnNlbmRfa2V5cygnRkFRKicpOwogICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoCiAgICAgICAgICAgICJcJCgnI0F0dHJpYnV0ZScpLnZhbCgnQ2F0ZWdvcnlJRHMnKS50cmlnZ2VyKCdyZWRyYXcuSW5wdXRGaWVsZCcpLnRyaWdnZXIoJ2NoYW5nZScpOyIKICAgICAgICApOwogICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoCiAgICAgICAgICAgICJcJCgnI0NhdGVnb3J5SURzJykudmFsKCckQ2F0ZWdvcnlJRCcpLnRyaWdnZXIoJ3JlZHJhdy5JbnB1dEZpZWxkJykudHJpZ2dlcignY2hhbmdlJyk7IgogICAgICAgICk7CgogICAgICAgICMgQWRkIENyZWF0ZWRCeSBhbmQgdmVyaWZ5IGJ1ZyMxNDA2OC4KICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAiXCQoJyNBdHRyaWJ1dGUnKS52YWwoJ0NyZWF0ZWRVc2VySURzJykudHJpZ2dlcigncmVkcmF3LklucHV0RmllbGQnKS50cmlnZ2VyKCdjaGFuZ2UnKTsiCiAgICAgICAgKTsKCiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gXCQoJyNDcmVhdGVkVXNlcklEcyBvcHRpb25bdmFsdWU9JFRlc3RVc2VyTG9naW5JRF0nKS5sZW5ndGg7IiksCiAgICAgICAgICAgIDEsCiAgICAgICAgICAgICIkVGVzdFVzZXJMb2dpbklEIHdoaWNoIGlzIGluIGdyb3VwICRHcm91cE5hbWUgaXMgZm91bmQgYXMgcG9zc2libGUgc2VsZWN0aW9uIgogICAgICAgICk7CiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gXCQoJyNDcmVhdGVkVXNlcklEcyBvcHRpb25bdmFsdWU9JFRlc3RVc2VySURdJykubGVuZ3RoOyIpLAogICAgICAgICAgICAwLAogICAgICAgICAgICAiJFRlc3RVc2VyIHdoaWNoIGlzIGluIG5vdCBncm91cCAkR3JvdXBOYW1lIGlzIG5vdCBmb3VuZCBhcyBwb3NzaWJsZSBzZWxlY3Rpb24iCiAgICAgICAgKTsKCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjU2VhcmNoRm9ybVN1Ym1pdCIsICdjc3MnICktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBDaGVjayBBZ2VudEZBUVNlYXJjaCByZXN1bHQgc2NyZWVuLgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUiLCAgICAgICAgICAgICAnY3NzJyApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUgdGhlYWQgdHIgdGgiLCAnY3NzJyApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUgdGJvZHkgdHIgdGQiLCAnY3NzJyApOwoKICAgICAgICAjIENoZWNrIHRlc3QgRkFRcyBzZWFyY2hlZCBieSAnRkFRKicuCiAgICAgICAgIyBBbGwgRkFRcyB3aWxsIGJlIGluIGEgc2VhcmNoIHJlc3VsdC4KICAgICAgICAkQ291bnQgPSA5OwogICAgICAgIGZvciBteSAkRkFRIChARkFRU2VhcmNoKSB7CgogICAgICAgICAgICAjIENoZWNrIGlmIHRoZXJlIGlzIHRlc3QgRkFRIG9uIHNjcmVlbi4KICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJEZBUS0+e0ZBUVRpdGxlfSApID4gLTEsCiAgICAgICAgICAgICAgICAiJEZBUS0+e0ZBUVRpdGxlfSAtIGZvdW5kIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgVmVyaWZ5IHNvcnRpbmcgYW5kIG9yZGVyaW5nIG9mIEZBUXMuCiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgKICAgICAgICAgICAgICAgICAgICAicmV0dXJuIFwkKCd0Ym9keSB0cjplcShcIiRDb3VudFwiKSB0ZCA+IGFbaHJlZio9XCJJdGVtSUQ9JEZBUS0+e0l0ZW1JRH1cIl0nKS5sZW5ndGg7IgogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICIkRkFRLT57RkFRVGl0bGV9IGlzIGluIGNvcnJlY3Qgb3JkZXIgLSBTb3J0QnkgPSBGQVFJRCwgT3JkZXJCeSA9IERvd24uIgogICAgICAgICAgICApOwogICAgICAgICAgICAkQ291bnQtLTsKICAgICAgICB9CgogICAgICAgICMgQ2xpY2sgdG8gc29ydCBhbmQgb3JkZXIgYnkgRHluYW1pY0ZpZWxkIHZhbHVlcy4KICAgICAgICAjIFNlZSBidWcjMTI3ODAgKGh0dHBzOi8vYnVncy5vdG9iby5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzgwKS4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9hW2NvbnRhaW5zKFxAaHJlZiwgXCdTb3J0Qnk9RHluYW1pY0ZpZWxkXyRERlRleHROYW1lJyApXSIpLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICRDb3VudCA9IDA7CiAgICAgICAgZm9yIG15ICRGQVEgKEBGQVFTZWFyY2gpIHsKCiAgICAgICAgICAgICMgVmVyaWZ5IHNvcnRpbmcgYW5kIG9yZGVyaW5nIG9mIEZBUXMuCiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgKICAgICAgICAgICAgICAgICAgICAicmV0dXJuIFwkKCd0Ym9keSB0cjplcShcIiRDb3VudFwiKSB0ZCA+IGFbaHJlZio9XCJJdGVtSUQ9JEZBUS0+e0l0ZW1JRH1cIl0nKS5sZW5ndGg7IgogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICIkRkFRLT57RkFRVGl0bGV9IGlzIGluIGNvcnJlY3Qgb3JkZXIgLSBTb3J0QnkgPSBEeW5hbWljRmllbGQsIE9yZGVyQnkgPSBVcC4iCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRDb3VudCsrOwogICAgICAgIH0KCiAgICAgICAgIyBDaGVjayAnQ2hhbmdlIHNlYXJjaCBvcHRpb25zJyBzY3JlZW4uCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjRkFRU2VhcmNoIiwgJ2NzcycgKS0+Y2xpY2soKTsKCiAgICAgICAgIyBXYWl0IHVudGlsIGZvcm0gaGFzIGxvYWRlZCwgaWYgbmVjZXNzYXJ5LgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAicmV0dXJuIFwkKCcjU2VhcmNoUHJvZmlsZScpLmxlbmd0aCIgKTsKCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJUaXRsZSIsICAgICAgICAgICAgICduYW1lJyApLT5jbGVhcigpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiVGl0bGUiLCAgICAgICAgICAgICAnbmFtZScgKS0+c2VuZF9rZXlzKCdGQVFDaGFuZ2VTZWFyY2gqJyk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjU2VhcmNoRm9ybVN1Ym1pdCIsICdjc3MnICktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBDaGVjayB0ZXN0IEZBUXMgc2VhcmNoZWQgYnkgJ0ZBUUNoYW5nZVNlYXJjaConLgogICAgICAgICMgRGVsZXRlIHRlc3QgRkFRcyBhZnRlciBjaGVja2luZy4KICAgICAgICBmb3IgbXkgJEZBUSAoQEZBUVNlYXJjaCkgewoKICAgICAgICAgICAgaWYgKCAkRkFRLT57VHlwZX0gZXEgJ0ZBUUNoYW5nZVNlYXJjaCcgKSB7CgogICAgICAgICAgICAgICAgIyBDaGVjayBpZiB0aGVyZSBpcyB0ZXN0IEZBUUNoYW5nZVNlYXJjaCogb24gc2NyZWVuLgogICAgICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRGQVEtPntGQVFUaXRsZX0gKSA+IC0xLAogICAgICAgICAgICAgICAgICAgICIkRkFRLT57RkFRVGl0bGV9IGlzIGZvdW5kIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAgICAgIyBDaGVjayBpZiB0aGVyZSBpcyBubyB0ZXN0IEZBUVNlYXJjaCogb24gc2NyZWVuLgogICAgICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRGQVEtPntGQVFUaXRsZX0gKSA9PSAtMSwKICAgICAgICAgICAgICAgICAgICAiJEZBUS0+e0ZBUVRpdGxlfSBpcyBub3QgZm91bmQiLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkRkFRT2JqZWN0LT5GQVFEZWxldGUoCiAgICAgICAgICAgICAgICBJdGVtSUQgPT4gJEZBUS0+e0l0ZW1JRH0sCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgICAgICJGQVEgaXMgZGVsZXRlZCAtIElEICRGQVEtPntJdGVtSUR9IiwKICAgICAgICAgICAgKTsKCiAgICAgICAgfQoKICAgICAgICAjIENoZWNrICdDaGFuZ2Ugc2VhcmNoIG9wdGlvbnMnIGJ1dHRvbiBhZ2Fpbi4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNGQVFTZWFyY2giLCAnY3NzJyApLT5jbGljaygpOwoKICAgICAgICAjIFdhaXQgdW50aWwgZm9ybSBoYXMgbG9hZGVkLCBpZiBuZWNlc3NhcnkuCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICJyZXR1cm4gXCQoJyNTZWFyY2hQcm9maWxlJykubGVuZ3RoIiApOwoKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIlRpdGxlIiwgICAgICAgICAgICAgJ25hbWUnICktPmNsZWFyKCk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJUaXRsZSIsICAgICAgICAgICAgICduYW1lJyApLT5zZW5kX2tleXMoJ0ZBUUNoYW5nZVNlYXJjaConKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNTZWFyY2hGb3JtU3VibWl0IiwgJ2NzcycgKS0+VmVyaWZpZWRDbGljaygpOwoKICAgICAgICAjIENoZWNrIG5vIGRhdGEgbWVzc2FnZS4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNFbXB0eU1lc3NhZ2VTbWFsbCIsICdjc3MnICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAnTm8gRkFRIGRhdGEgZm91bmQuJyApID4gLTEsCiAgICAgICAgICAgICJObyBGQVEgZGF0YSBmb3VuZC4iLAogICAgICAgICk7CgogICAgICAgICMgRGVsZXRlIHRlc3QgY2F0ZWdvcnkuCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkRkFRT2JqZWN0LT5DYXRlZ29yeURlbGV0ZSgKICAgICAgICAgICAgQ2F0ZWdvcnlJRCA9PiAkQ2F0ZWdvcnlJRCwKICAgICAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgIkZBUSBjYXRlZ29yeSBpcyBkZWxldGVkIC0gSUQgJENhdGVnb3J5SUQiLAogICAgICAgICk7CgogICAgICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICAgICAjIERlbGV0ZSBncm91cC11c2VyIHJlbGF0aW9uLgogICAgICAgICRTdWNjZXNzID0gJERCT2JqZWN0LT5EbygKICAgICAgICAgICAgU1FMICA9PiAiREVMRVRFIEZST00gZ3JvdXBfdXNlciBXSEVSRSBncm91cF9pZCA9ID8iLAogICAgICAgICAgICBCaW5kID0+IFsgXCRHcm91cElEIF0sCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICJHcm91cC11c2VyIHJlbGF0aW9uIGZvciBncm91cCBJRCAkR3JvdXBJRCBpcyBkZWxldGVkIiwKICAgICAgICApOwoKICAgICAgICAjIERlbGV0ZSB0ZXN0IGdyb3VwLgogICAgICAgICRTdWNjZXNzID0gJERCT2JqZWN0LT5EbygKICAgICAgICAgICAgU1FMICA9PiAiREVMRVRFIEZST00gZ3JvdXBzIFdIRVJFIGlkID0gPyIsCiAgICAgICAgICAgIEJpbmQgPT4gWyBcJEdyb3VwSUQgXSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgIkdyb3VwSUQgJEdyb3VwSUQgaXMgZGVsZXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBEZWxldGUgRHluYW1pY0ZpZWxkLgogICAgICAgICRTdWNjZXNzID0gJERCT2JqZWN0LT5EbygKICAgICAgICAgICAgU1FMICA9PiAiREVMRVRFIEZST00gZHluYW1pY19maWVsZF92YWx1ZSBXSEVSRSBmaWVsZF9pZCA9ID8iLAogICAgICAgICAgICBCaW5kID0+IFsgXCREeW5hbWljRmllbGRJRCBdLAogICAgICAgICk7CiAgICAgICAgJFN1Y2Nlc3MgPSAkRHluYW1pY0ZpZWxkT2JqZWN0LT5EeW5hbWljRmllbGREZWxldGUoCiAgICAgICAgICAgIElEICAgICA9PiAkRHluYW1pY0ZpZWxkSUQsCiAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAiRHluYW1pY0ZpZWxkSUQgJER5bmFtaWNGaWVsZElEIGlzIGRlbGV0ZWQuIiwKICAgICAgICApOwoKICAgICAgICAjIE1ha2Ugc3VyZSB0aGUgY2FjaGUgaXMgY29ycmVjdC4KICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+Q2xlYW5VcCggVHlwZSA9PiAiRkFRIiApOwogICAgfQopOwoKJFNlbGYtPkRvbmVUZXN0aW5nKCk7Cg==</File>
        <File Location="scripts/test/Selenium/Agent/AgentFAQZoom.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKIyBTZXQgdXAgdGhlIHRlc3QgZHJpdmVyICRTZWxmIHdoZW4gd2UgYXJlIHJ1bm5pbmcgYXMgYSBzdGFuZGFsb25lIHNjcmlwdC4KdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6UmVnaXN0ZXJEcml2ZXI7CgpvdXIgJFNlbGY7CgpteSAkU2VsZW5pdW0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OlNlbGVuaXVtJyk7CgokU2VsZW5pdW0tPlJ1blRlc3QoCiAgICBzdWIgewoKICAgICAgICBteSAkSGVscGVyICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKICAgICAgICBteSAkRkFRT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkZBUScpOwoKICAgICAgICBteSAkRkFRVGl0bGUgICAgPSAnRkFRICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgIG15ICRGQVFTeW1wdG9tICA9ICdTZWxlbml1bSBTeW1wdG9tJzsKICAgICAgICBteSAkRkFRUHJvYmxlbSAgPSAnU2VsZW5pdW0gUHJvYmxlbSc7CiAgICAgICAgbXkgJEZBUVNvbHV0aW9uID0gJ1NlbGVuaXVtIFNvbHV0aW9uJzsKICAgICAgICBteSAkRkFRQ29tbWVudCAgPSAnU2VsZW5pdW0gQ29tbWVudCc7CgogICAgICAgICMgQ3JlYXRlIHRlc3QgRkFRLgogICAgICAgIG15ICRJdGVtSUQgPSAkRkFRT2JqZWN0LT5GQVFBZGQoCiAgICAgICAgICAgIFRpdGxlICAgICAgID0+ICRGQVFUaXRsZSwKICAgICAgICAgICAgQ2F0ZWdvcnlJRCAgPT4gMSwKICAgICAgICAgICAgU3RhdGVJRCAgICAgPT4gMSwKICAgICAgICAgICAgTGFuZ3VhZ2VJRCAgPT4gMSwKICAgICAgICAgICAgS2V5d29yZHMgICAgPT4gJ3NvbWUga2V5d29yZHMnLAogICAgICAgICAgICBGaWVsZDEgICAgICA9PiAkRkFRU3ltcHRvbSwKICAgICAgICAgICAgRmllbGQyICAgICAgPT4gJEZBUVByb2JsZW0sCiAgICAgICAgICAgIEZpZWxkMyAgICAgID0+ICRGQVFTb2x1dGlvbiwKICAgICAgICAgICAgRmllbGQ2ICAgICAgPT4gJEZBUUNvbW1lbnQsCiAgICAgICAgICAgIFZhbGlkSUQgICAgID0+IDEsCiAgICAgICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L2h0bWwnLAogICAgICAgICk7CgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkSXRlbUlELAogICAgICAgICAgICAiRkFRIGl0ZW0gaXMgY3JlYXRlZCAtIElEICRJdGVtSUQiLAogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIHRlc3QgdXNlciBhbmQgbG9naW4uCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ3VzZXJzJyBdLAogICAgICAgICkgfHwgZGllICJEaWQgbm90IGdldCB0ZXN0IHVzZXIiOwoKICAgICAgICAkU2VsZW5pdW0tPkxvZ2luKAogICAgICAgICAgICBUeXBlICAgICA9PiAnQWdlbnQnLAogICAgICAgICAgICBVc2VyICAgICA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAjIE5hdmlnYXRlIHRvIEFnZW50RkFRWm9vbSBzY3JlZW4gb2YgY3JlYXRlZCB0ZXN0IEZBUS4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudEZBUVpvb207SXRlbUlEPSRJdGVtSUQiKTsKCiAgICAgICAgIyBDaGVjayBwYWdlLgogICAgICAgIGZvciBteSAkSUQgKAogICAgICAgICAgICBxdyhNZW51MDAwLUJhY2sgTWVudTAxMC1FZGl0IE1lbnUwMjAtSGlzdG9yeSBNZW51MDMwLVByaW50IE1lbnUwNDAtTGluayBNZW51MDUwLURlbGV0ZSBGQVFCb2R5IEZBUVZvdGluZykKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiMkSUQiLCAnY3NzJyApOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZW5hYmxlZCgpOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZGlzcGxheWVkKCk7CiAgICAgICAgfQoKICAgICAgICBteSAkTGlua1RhYmxlVmlld01vZGUgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0xpbmtPYmplY3Q6OlZpZXdNb2RlJyk7CgogICAgICAgIG15IEBGQVFXaWRnZXRzID0gKCdGQVEgSW5mb3JtYXRpb24nKTsKCiAgICAgICAgIyBPbmx5IGNoZWNrIHRoZSBsaW5rZWQgb2JqZWN0cyB3aWRnZXQgZm9yIHRoZSBzaW1wbGUgdmlldyBtb2RlIGhlcmUuCiAgICAgICAgaWYgKCAkTGlua1RhYmxlVmlld01vZGUgZXEgJ1NpbXBsZScgKSB7CiAgICAgICAgICAgIHB1c2ggQEZBUVdpZGdldHMsICdMaW5rZWQgT2JqZWN0cyc7CiAgICAgICAgfQoKICAgICAgICBmb3IgbXkgJFNvdXJjZSAoQEZBUVdpZGdldHMpIHsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJFNvdXJjZSApID4gLTEsCiAgICAgICAgICAgICAgICAiRkFRIGRhdGEgaXMgZm91bmQgb24gc2NyZWVuLSAkU291cmNlIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgVmVyaWZ5IHRlc3QgRkFRIGlzIGNyZWF0ZWQuCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkRkFRVGl0bGUgKSA+IC0xLAogICAgICAgICAgICAiJEZBUVRpdGxlIGlzIGZvdW5kIiwKICAgICAgICApOwoKICAgICAgICBteSBAVGVzdHMgPSAoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmcmFtZSAgPT4gJ0lmcmFtZUZBUUZpZWxkMScsCiAgICAgICAgICAgICAgICBGQVFEYXRhID0+ICRGQVFTeW1wdG9tLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZnJhbWUgID0+ICdJZnJhbWVGQVFGaWVsZDInLAogICAgICAgICAgICAgICAgRkFRRGF0YSA9PiAkRkFRUHJvYmxlbSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWZyYW1lICA9PiAnSWZyYW1lRkFRRmllbGQzJywKICAgICAgICAgICAgICAgIEZBUURhdGEgPT4gJEZBUVNvbHV0aW9uLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZnJhbWUgID0+ICdJZnJhbWVGQVFGaWVsZDYnLAogICAgICAgICAgICAgICAgRkFRRGF0YSA9PiAkRkFRQ29tbWVudCwKICAgICAgICAgICAgfSwKCiAgICAgICAgKTsKCiAgICAgICAgZm9yIG15ICRUZXN0IChAVGVzdHMpIHsKCiAgICAgICAgICAgICMgU3dpdGNoIHRvIEZBUSBzeW1wdG9tIGlmcmFtZSBhbmQgdmVyaWZ5IGl0cyB2YWx1ZXMuCiAgICAgICAgICAgICRTZWxlbml1bS0+U3dpdGNoVG9GcmFtZSgKICAgICAgICAgICAgICAgIEZyYW1lU2VsZWN0b3IgPT4gIiMkVGVzdC0+e0lmcmFtZX0iLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBXYWl0IHRvIHN3aXRjaCBvbiBpZnJhbWUuCiAgICAgICAgICAgIHNsZWVwIDI7CgogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkVGVzdC0+e0ZBUURhdGF9ICkgPiAtMSwKICAgICAgICAgICAgICAgICIkVGVzdC0+e0ZBUURhdGF9IGlzIGZvdW5kIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFNlbGVuaXVtLT5zd2l0Y2hfdG9fZnJhbWUoKTsKICAgICAgICB9CgogICAgICAgIG15ICRTdWNjZXNzID0gJEZBUU9iamVjdC0+RkFRRGVsZXRlKAogICAgICAgICAgICBJdGVtSUQgPT4gJEl0ZW1JRCwKICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICJGQVEgaXMgZGVsZXRlZCAtIElEICRJdGVtSUQiLAogICAgICAgICk7CgogICAgICAgICMgTWFrZSBzdXJlIHRoZSBjYWNoZSBpcyBjb3JyZWN0LgogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKCBUeXBlID0+ICJGQVEiICk7CiAgICB9CgopOwoKJFNlbGYtPkRvbmVUZXN0aW5nKCk7Cg==</File>
        <File Location="scripts/test/Selenium/Agent/FAQ/RelatedArticles.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKIyBTZXQgdXAgdGhlIHRlc3QgZHJpdmVyICRTZWxmIHdoZW4gd2UgYXJlIHJ1bm5pbmcgYXMgYSBzdGFuZGFsb25lIHNjcmlwdC4KdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6UmVnaXN0ZXJEcml2ZXI7CgpvdXIgJFNlbGY7CgpteSAkU2VsZW5pdW0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OlNlbGVuaXVtJyk7CgokU2VsZW5pdW0tPlJ1blRlc3QoCiAgICBzdWIgewoKICAgICAgICAjIE9UT0JPQnVzaW5lc3MgcGFja2FnZSBpcyByZXF1aXJlZCBmb3IgdGhpcyB0ZXN0LiBTa2lwIGlmIGl0IGlzIG5vdCBhdmFpbGFibGUuCiAgICAgICAgbXkgJEJ1c2luZXNzSW5zdGFsbGVkID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok1haW4nKS0+UmVxdWlyZSgKICAgICAgICAgICAgJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpGaWx0ZXJFbGVtZW50UG9zdDo6RkFRQWdlbnRSZWxhdGVkQXJ0aWNsZXMnLAogICAgICAgICAgICBTaWxlbnQgPT4gMQogICAgICAgICk7CiAgICAgICAgaWYgKCAhJEJ1c2luZXNzSW5zdGFsbGVkICkgewogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgIDEsCiAgICAgICAgICAgICAgICAiT1RPQk9CdXNpbmVzcyBpcyBub3QgaW5zdGFsbGVkLCBza2lwIHRoaXMgdGVzdC4iCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgIH0KCiAgICAgICAgbXkgJEhlbHBlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CgogICAgICAgICRIZWxwZXItPkNvbmZpZ1NldHRpbmdDaGFuZ2UoCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgICAgIEtleSAgID0+ICdGcm9udGVuZDo6UmljaFRleHQnLAogICAgICAgICAgICBWYWx1ZSA9PiAxLAogICAgICAgICk7CiAgICAgICAgJEhlbHBlci0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICAgICAgS2V5ICAgPT4gJ1RpY2tldDo6U2VydmljZScsCiAgICAgICAgICAgIFZhbHVlID0+IDAsCiAgICAgICAgKTsKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICBLZXkgICA9PiAnVGlja2V0OjpUeXBlJywKICAgICAgICAgICAgVmFsdWUgPT4gMCwKICAgICAgICApOwogICAgICAgICRIZWxwZXItPkNvbmZpZ1NldHRpbmdDaGFuZ2UoCiAgICAgICAgICAgIFZhbGlkID0+IDAsCiAgICAgICAgICAgIEtleSAgID0+ICdGQVE6OkZyb250ZW5kOjpBZ2VudEZBUVJlbGF0ZWRBcnRpY2xlcyMjI1F1ZXVlc0VuYWJsZWQnLAogICAgICAgICk7CgogICAgICAgICRIZWxwZXItPkNvbmZpZ1NldHRpbmdDaGFuZ2UoCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgICAgIEtleSAgID0+ICdGQVE6OkZyb250ZW5kOjpBZ2VudEZBUVJlbGF0ZWRBcnRpY2xlcyMjI1Bvc2l0aW9uJywKICAgICAgICAgICAgVmFsdWUgPT4gMSwKICAgICAgICApOwoKICAgICAgICBteSAkRkFRT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkZBUScpOwoKICAgICAgICBteSAlQ2F0ZWdvcnkgPSAkRkFRT2JqZWN0LT5DYXRlZ29yeUdldCgKICAgICAgICAgICAgQ2F0ZWdvcnlJRCA9PiAxLAogICAgICAgICAgICBVc2VySUQgICAgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBBZGQgRkFRIGFydGljbGVzLgogICAgICAgIG15IEBGQVFBcnRpY2xlczsKICAgICAgICBmb3IgbXkgJEl0ZW0gKHF3KHN1YmplY3QgYm9keSkpIHsKICAgICAgICAgICAgbXkgJFRpdGxlICAgPSAndGl0bGUnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICAgICAgbXkgJEtleXdvcmQgPSAkSXRlbSAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgICAgIG15ICRJdGVtSUQgID0gJEZBUU9iamVjdC0+RkFRQWRkKAogICAgICAgICAgICAgICAgVGl0bGUgICAgICAgPT4gJFRpdGxlLAogICAgICAgICAgICAgICAgQ2F0ZWdvcnlJRCAgPT4gMSwKICAgICAgICAgICAgICAgIFN0YXRlSUQgICAgID0+IDEsCiAgICAgICAgICAgICAgICBMYW5ndWFnZUlEICA9PiAxLAogICAgICAgICAgICAgICAgS2V5d29yZHMgICAgPT4gJEtleXdvcmQsCiAgICAgICAgICAgICAgICBGaWVsZDEgICAgICA9PiAnU3ltcHRvbS4uLicsCiAgICAgICAgICAgICAgICBGaWVsZDIgICAgICA9PiAnUHJvYmxlbS4uLicsCiAgICAgICAgICAgICAgICBGaWVsZDMgICAgICA9PiAnU29sdXRpb24uLi4nLAogICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvaHRtbCcsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkSXRlbUlELAogICAgICAgICAgICAgICAgIkZBUSBhcnRpY2xlIGlzIGNyZWF0ZWQgLSAkSXRlbUlEIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG15ICVGQVE7CiAgICAgICAgICAgICRGQVF7SUR9ICAgICAgPSAkSXRlbUlEOwogICAgICAgICAgICAkRkFRe0tleXdvcmR9ID0gJEtleXdvcmQ7CiAgICAgICAgICAgICRGQVF7VGl0bGV9ICAgPSAkVGl0bGUgLiAiICgkQ2F0ZWdvcnl7TmFtZX0pIjsKCiAgICAgICAgICAgIHB1c2ggQEZBUUFydGljbGVzLCBcJUZBUTsKICAgICAgICB9CgogICAgICAgICMgY3JlYXRlIHRlc3QgdXNlciBhbmQgbG9naW4KICAgICAgICBteSAkVGVzdFVzZXJMb2dpbiA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKAogICAgICAgICAgICBHcm91cHMgPT4gWyAnYWRtaW4nLCAndXNlcnMnIF0sCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50VGlja2V0UGhvbmUiKTsKCiAgICAgICAgIyBDaGVjayBwYWdlLgogICAgICAgIGZvciBteSAkSUQgKHF3KEZyb21DdXN0b21lciBDdXN0b21lcklEIERlc3QgU3ViamVjdCBSaWNoVGV4dCBzdWJtaXRSaWNoVGV4dCkpIHsKICAgICAgICAgICAgbXkgJEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiMkSUQiLCAnY3NzJyApOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZW5hYmxlZCgpOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZGlzcGxheWVkKCk7CiAgICAgICAgfQoKICAgICAgICBteSAkU3ViamVjdFJhbmRvbSA9ICJTdWJqZWN0IiAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJFRleHRSYW5kb20gICAgPSAiVGV4dCIgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1N1YmplY3QiLCAnY3NzJyApLT5zZW5kX2tleXMoJFN1YmplY3RSYW5kb20pOwoKICAgICAgICAjIERlZmluZSBhIHNlbGVjdG9yIHRvIHNldCB0aGUgYm9keSwgKHVzZSBSVEUgcHJpb3IgZWxlbWVudCkKICAgICAgICAjIFRPRE86IENoZWNrIHdoeSBzZW5kaW5nIHRoZSBrZXlzIHRvIHRoZSBwcmV2aW91cyBlbGVtZW50IHdvcmtzLgogICAgICAgIG15ICRTZWxlY3RvciA9IGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAnU3RhbmRhcmRUZW1wbGF0ZUlEX1NlYXJjaCcgKSA+IC0xCiAgICAgICAgICAgID8gJyNTdGFuZGFyZFRlbXBsYXRlSURfU2VhcmNoJwogICAgICAgICAgICA6ICcjU3ViamVjdCc7CgogICAgICAgICMgU2V0IGJvZHkgdGV4dCBhbmQgYWRkIGEgd2hpdGVzcGFjZSBhdCB0aGUgZW5kIHRvIHRyaWdnZXIgdGhlIEFKQVggcmVxdWVzdCBmb3IgdGhlIHJlbGF0ZWQgZmFxIGFydGljbGUuCiAgICAgICAgc2xlZXAgMTsKICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KCJDS0VkaXRvckluc3RhbmNlcy5SaWNoVGV4dC5zZXREYXRhKCckRkFRQXJ0aWNsZXNbMV0tPntLZXl3b3JkfScpOyIpOwogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAncmV0dXJuIENLRWRpdG9ySW5zdGFuY2VzLlJpY2hUZXh0LmdldERhdGEoKScgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNTdWJqZWN0IiwgJ2NzcycgKS0+c2VuZF9rZXlzKCIgIik7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjU3ViamVjdCIsICdjc3MnICktPnNlbmRfa2V5cyggJEZBUUFydGljbGVzWzFdLT57S2V5d29yZH0gKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNTdWJqZWN0IiwgJ2NzcycgKS0+c2VuZF9rZXlzKCJcTntVK0UwMDR9Iik7CgogICAgICAgICMgV2FpdCB0aGF0IHRoZSBBSkFYIGxvYWRlciBpcyBubyBsb25nZXIgdmlzaWJsZS4KICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoCiAgICAgICAgICAgIEphdmFTY3JpcHQgPT4gJ3JldHVybiB0eXBlb2YoJCkgPT09ICJmdW5jdGlvbiIgJiYgISQoIiNBSkFYTG9hZGVyRkFRUmVsYXRlZEFydGljbGVzIikuaXMoIjp2aXNpYmxlIik7JwogICAgICAgICk7CgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PiAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCIjRkFRUmVsYXRlZEFydGljbGVzIHRhYmxlIikubGVuZ3RoOycKICAgICAgICApOwoKICAgICAgICAjIENoZWNrIGlmIHRoZXJlIGlzIHRoZSByZWxhdGVkIEZBUSBhcnRpY2xlIGZvciB0aGUgaW5zZXJ0IHRleHQgaW4gdGhlIGJvZHkuCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2FbXEB0aXRsZT0nJEZBUUFydGljbGVzWzFdLT57VGl0bGV9J10iKSwKICAgICAgICAgICAgIlJlbGF0ZWQgRkFRIGFydGljbGUgZm9yIGJvZHkgJyRGQVFBcnRpY2xlc1sxXS0+e0tleXdvcmR9JyBpcyBmb3VuZCAtICRGQVFBcnRpY2xlc1sxXS0+e1RpdGxlfSIKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9hW2NvbnRhaW5zKFxAaHJlZiwgJ0FjdGlvbj1BZ2VudEZBUVpvb207SXRlbUlEPSRGQVFBcnRpY2xlc1sxXS0+e0lEfScpXSIpLAogICAgICAgICAgICAiTGluayBmb3IgcmVsYXRlZCBGQVEgYXJ0aWNsZSBpcyBmb3VuZCAtICRGQVFBcnRpY2xlc1swXS0+e1RpdGxlfSIKICAgICAgICApOwoKICAgICAgICAjIENoZWNrIGNvcnJlY3QgcG9zaXRpb24gb2Ygd2lkZ2V0LgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAgICAgInJldHVybiBcJCgnI0ZBUVJlbGF0ZWRBcnRpY2xlc0xhYmVsJykucHJldignZGl2LkNsZWFyJykucHJldignZGl2LkZpZWxkJykuZmluZCgnI1N1YmplY3QnKS5sZW5ndGg7IgogICAgICAgICAgICApLAogICAgICAgICAgICAnV2lkZ2V0IGlzIGNvcnJlY3RseSBwb3NpdGlvbmVkIGJlbG93IHN1YmplY3QgZmllbGQuJywKICAgICAgICApOwoKICAgICAgICAjIENoYW5nZSB0aGUgYm9keSwgdG8gaGF2ZSBhIHRleHQgd2hpY2ggc2hvdWxkIG5vdCByZXR1cm4gc29tZSByZWxhdGVkIGZhcSBhcnRpY2xlLgogICAgICAgIHNsZWVwIDE7CiAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgnQ0tFZGl0b3JJbnN0YW5jZXMuUmljaFRleHQuc2V0RGF0YSgpOycpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1N1YmplY3QiLCAnY3NzJyApLT5zZW5kX2tleXMoJ05vdGhpbmcnKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNTdWJqZWN0IiwgJ2NzcycgKS0+c2VuZF9rZXlzKCIgIik7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjU3ViamVjdCIsICdjc3MnICktPnNlbmRfa2V5cygiXE57VStFMDA0fSIpOwoKICAgICAgICAjIFdhaXQgZm9yIEFKQVggY2FsbCBhZnRlciBjdXN0b21lciB1c2VyIHNlbGVjdGlvbi4KICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoCiAgICAgICAgICAgIEphdmFTY3JpcHQgPT4gJ3JldHVybiB0eXBlb2YoJCkgPT09ICJmdW5jdGlvbiIgJiYgISQoIiNBSkFYTG9hZGVyRkFRUmVsYXRlZEFydGljbGVzIikuaXMoIjp2aXNpYmxlIik7JwogICAgICAgICk7CgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PiAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAhJCgiI0ZBUVJlbGF0ZWRBcnRpY2xlcyB0YWJsZSIpLmxlbmd0aDsnCiAgICAgICAgKTsKCiAgICAgICAgJFNlbGYtPkZhbHNlKAogICAgICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gXCQoJyNGQVFSZWxhdGVkQXJ0aWNsZXMgdGFibGUnKS5sZW5ndGg7IiksCiAgICAgICAgICAgICJGb3VuZCBubyB3aWRnZXQgZm9yIHJlbGF0ZWQgRkFRIGFydGljbGUiLAogICAgICAgICk7CgogICAgICAgICMgQ2hhbmdlICsgY2hlY2sgd2lkZ2V0IHBvc2l0aW9uLgogICAgICAgICRIZWxwZXItPkNvbmZpZ1NldHRpbmdDaGFuZ2UoCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgICAgIEtleSAgID0+ICdGQVE6OkZyb250ZW5kOjpBZ2VudEZBUVJlbGF0ZWRBcnRpY2xlcyMjI1Bvc2l0aW9uJywKICAgICAgICAgICAgVmFsdWUgPT4gMiwKICAgICAgICApOwoKICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkUmVmcmVzaCgpOwoKICAgICAgICAjIFNldCBzdWJqZWN0ICsgYm9keSB0ZXh0LgogICAgICAgIHNsZWVwIDE7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjU3ViamVjdCIsICdjc3MnICktPnNlbmRfa2V5cygkU3ViamVjdFJhbmRvbSk7CiAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgiQ0tFZGl0b3JJbnN0YW5jZXMuUmljaFRleHQuc2V0RGF0YSgnJEZBUUFydGljbGVzWzFdLT57S2V5d29yZH0nKTsiKTsKCiAgICAgICAgIyBBZGQgYSB3aGl0ZXNwYWNlIGF0IHRoZSBlbmQgdG8gdHJpZ2dlciB0aGUgQUpBWCByZXF1ZXN0LgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1N1YmplY3QiLCAnY3NzJyApLT5zZW5kX2tleXMoIiAiKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNTdWJqZWN0IiwgJ2NzcycgKS0+c2VuZF9rZXlzKCJcTntVK0UwMDR9Iik7CgogICAgICAgICMgV2FpdCB0aGF0IHRoZSBBSkFYIGxvYWRlciBpcyBubyBsb25nZXIgdmlzaWJsZS4KICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoCiAgICAgICAgICAgIEphdmFTY3JpcHQgPT4gJ3JldHVybiB0eXBlb2YoJCkgPT09ICJmdW5jdGlvbiIgJiYgISQoIiNBSkFYTG9hZGVyRkFRUmVsYXRlZEFydGljbGVzIikuaXMoIjp2aXNpYmxlIik7JwogICAgICAgICk7CgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PiAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCIjRkFRUmVsYXRlZEFydGljbGVzIHRhYmxlIikubGVuZ3RoOycKICAgICAgICApOwoKICAgICAgICAjIENoZWNrIGlmIHRoZXJlIGlzIHRoZSByZWxhdGVkIEZBUSBhcnRpY2xlIGZvciB0aGUgaW5zZXJ0IHRleHQgaW4gdGhlIGJvZHkuCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2FbXEB0aXRsZT0nJEZBUUFydGljbGVzWzFdLT57VGl0bGV9J10iKSwKICAgICAgICAgICAgIlJlbGF0ZWQgRkFRIGFydGljbGUgZm9yIGJvZHkgJyRGQVFBcnRpY2xlc1sxXS0+e0tleXdvcmR9JyBpcyBmb3VuZCAtICRGQVFBcnRpY2xlc1sxXS0+e1RpdGxlfSIKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9hW2NvbnRhaW5zKFxAaHJlZiwgJ0FjdGlvbj1BZ2VudEZBUVpvb207SXRlbUlEPSRGQVFBcnRpY2xlc1sxXS0+e0lEfScpXSIpLAogICAgICAgICAgICAiTGluayBmb3IgcmVsYXRlZCBGQVEgYXJ0aWNsZSBpcyBmb3VuZCAtICRGQVFBcnRpY2xlc1swXS0+e1RpdGxlfSIKICAgICAgICApOwoKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgKICAgICAgICAgICAgICAgICJyZXR1cm4gXCQoJyNGQVFSZWxhdGVkQXJ0aWNsZXNMYWJlbCcpLnByZXYoJ2Rpdi5DbGVhcicpLnByZXYoJ2RpdicpLmZpbmQoJyNSaWNoVGV4dCcpLmxlbmd0aDsiCiAgICAgICAgICAgICksCiAgICAgICAgICAgICdXaWRnZXQgaXMgY29ycmVjdGx5IHBvc2l0aW9uZWQgYmVsb3cgcmljaHRleHQgZmllbGQuJywKICAgICAgICApOwoKICAgICAgICAjIFRlc3QgY2FzZSBmb3IgYnVnIzEyOTAwICggaHR0cHM6Ly9idWdzLm90b2JvLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MDAgKS4KICAgICAgICAjIENyZWF0ZSBuZXcgY2F0ZWdvcnkgd2hpY2ggaXMgc3ViY2F0ZWdvcnkgb2YgZGVmYXVsdCAnTWlzYycgY2F0ZWdvcnkuCiAgICAgICAgbXkgJFJhbmRvbUlEICAgICAgPSAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgIG15ICRTdWJDYXRlZ29yeUlEID0gJEZBUU9iamVjdC0+Q2F0ZWdvcnlBZGQoCiAgICAgICAgICAgIE5hbWUgICAgID0+ICdTdWJDYXRlZ29yeScgLiAkUmFuZG9tSUQsCiAgICAgICAgICAgIENvbW1lbnQgID0+ICdTdWJDYXRlZ29yeScsCiAgICAgICAgICAgIFBhcmVudElEID0+IDEsCiAgICAgICAgICAgIFZhbGlkSUQgID0+IDEsCiAgICAgICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICBteSAkR3JvdXBJRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpLT5Hcm91cExvb2t1cCgKICAgICAgICAgICAgR3JvdXAgPT4gJ3VzZXJzJywKICAgICAgICApOwogICAgICAgICRGQVFPYmplY3QtPlNldENhdGVnb3J5R3JvdXAoCiAgICAgICAgICAgIENhdGVnb3J5SUQgPT4gJFN1YkNhdGVnb3J5SUQsCiAgICAgICAgICAgIEdyb3VwSURzICAgPT4gWyRHcm91cElEXSwKICAgICAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIHR3byBGQVEgYXJ0aWNsZXMgaW4gTWlzYyBhbmQgdGVzdCBjcmVhdGVkIHN1YmNhdGVnb3J5LgogICAgICAgIG15IEBBcnRpY2xlcyA9ICgKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGl0bGUgICAgICA9PiAiTWlzY0FydGljbGUgJFJhbmRvbUlEIiwKICAgICAgICAgICAgICAgIENhdGVnb3J5SUQgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGl0bGUgICAgICA9PiAiU3ViQ2F0ZWdvcnlBcnRpY2xlICRSYW5kb21JRCIsCiAgICAgICAgICAgICAgICBDYXRlZ29yeUlEID0+ICRTdWJDYXRlZ29yeUlELAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgIG15ICRLZXl3b3JkID0gIktleXdvcmQkUmFuZG9tSUQiOwogICAgICAgIG15IEBSZWxhdGVkRkFRQXJ0aWNsZXM7CiAgICAgICAgZm9yIG15ICRUZXN0IChAQXJ0aWNsZXMpIHsKICAgICAgICAgICAgbXkgJEl0ZW1JRCA9ICRGQVFPYmplY3QtPkZBUUFkZCgKICAgICAgICAgICAgICAgIFRpdGxlICAgICAgID0+ICRUZXN0LT57VGl0bGV9LAogICAgICAgICAgICAgICAgQ2F0ZWdvcnlJRCAgPT4gJFRlc3QtPntDYXRlZ29yeUlEfSwKICAgICAgICAgICAgICAgIFN0YXRlSUQgICAgID0+IDMsCiAgICAgICAgICAgICAgICBMYW5ndWFnZUlEICA9PiAxLAogICAgICAgICAgICAgICAgS2V5d29yZHMgICAgPT4gJEtleXdvcmQsCiAgICAgICAgICAgICAgICBGaWVsZDEgICAgICA9PiAnU3ltcHRvbS4uLicsCiAgICAgICAgICAgICAgICBGaWVsZDIgICAgICA9PiAnUHJvYmxlbS4uLicsCiAgICAgICAgICAgICAgICBGaWVsZDMgICAgICA9PiAnU29sdXRpb24uLi4nLAogICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvaHRtbCcsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRJdGVtSUQsCiAgICAgICAgICAgICAgICAiRkFRIGFydGljbGUgaW4gY2F0ZWdvcnkgJFRlc3QtPntDYXRlZ29yeUlEfSBpcyBjcmVhdGVkIC0gJEl0ZW1JRCIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHB1c2ggQFJlbGF0ZWRGQVFBcnRpY2xlcywgewogICAgICAgICAgICAgICAgSUQgICAgPT4gJEl0ZW1JRCwKICAgICAgICAgICAgICAgIFRpdGxlID0+ICRUZXN0LT57VGl0bGV9LAogICAgICAgICAgICB9OwogICAgICAgIH0KCiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZFJlZnJlc2goKTsKCiAgICAgICAgIyBUeXBlIGluIHN1YmplY3Qga2V5d29yZCB0byBzaG93IHR3byBGQVEgYXJ0aWNsZXMgaW4gd2lkZ2V0IGhpbnQuCiAgICAgICAgIyBPbmUgZnJvbSAnTWlzYycgY2F0ZWdvcnkgYW5kIHNlY29uZCBvbmUgZnJvbSBzdWJjYXRlZ29yeSBvZiAnTWlzYycuCiAgICAgICAgc2xlZXAgMTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNTdWJqZWN0IiwgJ2NzcycgKS0+c2VuZF9rZXlzKCRLZXl3b3JkKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNTdWJqZWN0IiwgJ2NzcycgKS0+c2VuZF9rZXlzKCJcTntVK0UwMDR9Iik7CgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PiAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCIjRkFRUmVsYXRlZEFydGljbGVzIHRhYmxlIikubGVuZ3RoJwogICAgICAgICk7CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKAogICAgICAgICAgICBKYXZhU2NyaXB0ID0+ICdyZXR1cm4gdHlwZW9mKCQpID09PSAiZnVuY3Rpb24iICYmICEkKCIjQUpBWExvYWRlckZBUVJlbGF0ZWRBcnRpY2xlcyIpLmlzKCI6dmlzaWJsZSIpJwogICAgICAgICk7CgogICAgICAgIGZvciBteSAkQ2hlY2sgKEBSZWxhdGVkRkFRQXJ0aWNsZXMpIHsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9hW2NvbnRhaW5zKFxAdGl0bGUsICckQ2hlY2stPntUaXRsZX0nKV0iKSwKICAgICAgICAgICAgICAgICJSZWxhdGVkIEZBUSBhcnRpY2xlIGZvciBzdWJqZWN0IGtleXdvcmQgJFJhbmRvbUlEIGlzIGZvdW5kIC0gJENoZWNrLT57VGl0bGV9IgogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2FbY29udGFpbnMoXEBocmVmLCAnQWN0aW9uPUFnZW50RkFRWm9vbTtJdGVtSUQ9JENoZWNrLT57SUR9JyldIiksCiAgICAgICAgICAgICAgICAiTGluayBmb3IgcmVsYXRlZCBGQVEgYXJ0aWNsZSBpcyBmb3VuZCAtICRDaGVjay0+e1RpdGxlfSIKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIG15ICRTdWNjZXNzOwogICAgICAgIGZvciBteSAkRkFRICggQEZBUUFydGljbGVzLCBAUmVsYXRlZEZBUUFydGljbGVzICkgewogICAgICAgICAgICAkU3VjY2VzcyA9ICRGQVFPYmplY3QtPkZBUURlbGV0ZSgKICAgICAgICAgICAgICAgIEl0ZW1JRCA9PiAkRkFRLT57SUR9LAogICAgICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICAgICAiRkFRIGlzIGRlbGV0ZWQgLSAkRkFRLT57SUR9IiwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgRGVsZXRlIHRlc3QgY3JlYXRlZCBzdWJjYXRlZ29yeS4KICAgICAgICAkU3VjY2VzcyA9ICRGQVFPYmplY3QtPkNhdGVnb3J5RGVsZXRlKAogICAgICAgICAgICBDYXRlZ29yeUlEID0+ICRTdWJDYXRlZ29yeUlELAogICAgICAgICAgICBVc2VySUQgICAgID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICJGQVEgY2F0ZWdvcnkgSUQgJFN1YkNhdGVnb3J5SUQgaXMgZGVsZXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBNYWtlIHN1cmUgdGhlIGNhY2hlIGlzIGNvcnJlY3QuCiAgICAgICAgbXkgJENhY2hlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyk7CiAgICAgICAgZm9yIG15ICRDYWNoZSAocXcoRkFRIEZBUUtleXdvcmRBcnRpY2xlTGlzdCkpIHsKICAgICAgICAgICAgJENhY2hlT2JqZWN0LT5DbGVhblVwKAogICAgICAgICAgICAgICAgVHlwZSA9PiAkQ2FjaGUsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQopOwoKJFNlbGYtPkRvbmVUZXN0aW5nKCk7Cg==</File>
        <File Location="scripts/test/Selenium/Customer/CustomerFAQExplorer.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKIyBTZXQgdXAgdGhlIHRlc3QgZHJpdmVyICRTZWxmIHdoZW4gd2UgYXJlIHJ1bm5pbmcgYXMgYSBzdGFuZGFsb25lIHNjcmlwdC4KdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6UmVnaXN0ZXJEcml2ZXI7CgpvdXIgJFNlbGY7CgpteSAkU2VsZW5pdW0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OlNlbGVuaXVtJyk7CgokU2VsZW5pdW0tPlJ1blRlc3QoCiAgICBzdWIgewoKICAgICAgICBteSAkSGVscGVyICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKICAgICAgICBteSAkRkFRT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkZBUScpOwoKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnRkFROjpGcm9udGVuZDo6Q3VzdG9tZXJGQVFFeHBsb3JlciMjI1NlYXJjaFBhZ2VTaG93bicsCiAgICAgICAgICAgIFZhbHVlID0+ICc0MCcsCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgJEhlbHBlci0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgS2V5ICAgPT4gJ0ZBUTo6RnJvbnRlbmQ6OkN1c3RvbWVyRkFRRXhwbG9yZXIjIyNTZWFyY2hMaW1pdCcsCiAgICAgICAgICAgIFZhbHVlID0+ICcyMDAnLAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICk7CgogICAgICAgIG15ICRSYW5kb21JRCA9ICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CgogICAgICAgICMgQ3JlYXRlIEZBUSBjYXRlZ29yeS4KICAgICAgICBteSAkQ2F0ZWdvcnlOYW1lID0gIkNhdGVnb3J5QSRSYW5kb21JRCI7CiAgICAgICAgbXkgJENhdGVnb3J5SUQgICA9ICRGQVFPYmplY3QtPkNhdGVnb3J5QWRkKAogICAgICAgICAgICBOYW1lICAgICA9PiAkQ2F0ZWdvcnlOYW1lLAogICAgICAgICAgICBDb21tZW50ICA9PiAnU29tZSBjb21tZW50JywKICAgICAgICAgICAgUGFyZW50SUQgPT4gMCwKICAgICAgICAgICAgVmFsaWRJRCAgPT4gMSwKICAgICAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkQ2F0ZWdvcnlJRCwKICAgICAgICAgICAgIkNhdGVnb3J5SUQgJENhdGVnb3J5SUQgaXMgY3JlYXRlZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBTZXR1cCBncm91cCBmb3IgY2F0ZWdvcnkuCiAgICAgICAgbXkgJEdyb3VwSUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKS0+R3JvdXBMb29rdXAoCiAgICAgICAgICAgIEdyb3VwID0+ICd1c2VycycsCiAgICAgICAgKTsKICAgICAgICAkRkFRT2JqZWN0LT5TZXRDYXRlZ29yeUdyb3VwKAogICAgICAgICAgICBDYXRlZ29yeUlEID0+ICRDYXRlZ29yeUlELAogICAgICAgICAgICBHcm91cElEcyAgID0+IFskR3JvdXBJRF0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIEdldCAnZXh0ZXJuYWwgKGN1c3RvbWVyKScgc3RhdGUgSUQuCiAgICAgICAgbXkgJVN0YXRlcyA9ICRGQVFPYmplY3QtPlN0YXRlTGlzdCgKICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgKTsKICAgICAgICAlU3RhdGVzID0gcmV2ZXJzZSAlU3RhdGVzOwoKICAgICAgICBteSAkU3RhdGVJRCA9ICRTdGF0ZXN7J2V4dGVybmFsIChjdXN0b21lciknfTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCBGQVFzLgogICAgICAgIG15IEBJdGVtczsKICAgICAgICBmb3IgbXkgJENvdW50ICggMSAuLiA1ICkgewogICAgICAgICAgICBteSAkRkFRVGl0bGUgPSAiRkFRJENvdW50LSRSYW5kb21JRCI7CiAgICAgICAgICAgIG15ICRJdGVtSUQgICA9ICRGQVFPYmplY3QtPkZBUUFkZCgKICAgICAgICAgICAgICAgIFRpdGxlICAgICAgID0+ICRGQVFUaXRsZSwKICAgICAgICAgICAgICAgIENhdGVnb3J5SUQgID0+ICRDYXRlZ29yeUlELAogICAgICAgICAgICAgICAgU3RhdGVJRCAgICAgPT4gJFN0YXRlSUQsCiAgICAgICAgICAgICAgICBMYW5ndWFnZUlEICA9PiAxLAogICAgICAgICAgICAgICAgVmFsaWRJRCAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBBcHByb3ZlZCAgICA9PiAxLAogICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvaHRtbCcsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRJdGVtSUQsCiAgICAgICAgICAgICAgICAiRkFRSUQgJEl0ZW1JRCBpcyBjcmVhdGVkICRGQVFUaXRsZSIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBwdXNoIEBJdGVtcywgewogICAgICAgICAgICAgICAgSXRlbUlEICAgPT4gJEl0ZW1JRCwKICAgICAgICAgICAgICAgIEZBUVRpdGxlID0+ICRGQVFUaXRsZSwKICAgICAgICAgICAgICAgIFBhZ2UgICAgID0+ICggJENvdW50IDwgNCApID8gMSA6IDIsCiAgICAgICAgICAgIH07CiAgICAgICAgfQoKICAgICAgICBteSAkVGVzdEN1c3RvbWVyVXNlckxvZ2luID0gJEhlbHBlci0+VGVzdEN1c3RvbWVyVXNlckNyZWF0ZSgpIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0N1c3RvbWVyJywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RDdXN0b21lclVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFRlc3RDdXN0b21lclVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICMgTmF2aWdhdGUgdG8gQ3VzdG9tZXJGQVFFeHBsb3JlciBzY3JlZW4gb2YgY3JlYXRlZCB0ZXN0IEZBUS4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWN1c3RvbWVyLnBsP0FjdGlvbj1DdXN0b21lckZBUUV4cGxvcmVyIik7CgogICAgICAgICMgQ2hlY2sgQ3VzdG9tZXJGQVFFeHBsb3JlciBzY3JlZW4uCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSIsICAgICAgICAgICAgICdjc3MnICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSB0aGVhZCB0ciB0aCIsICdjc3MnICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSB0Ym9keSB0ciB0ZCIsICdjc3MnICk7CgogICAgICAgICMgVGVzdCBkYXRhIGZvciBleHBsb3JlciBzY3JlZW4uCiAgICAgICAgbXkgQFRlc3RzID0gKAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTY3JlZW5EYXRhID0+ICdGQVEgRXhwbG9yZXInLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTY3JlZW5EYXRhID0+ICdMYXRlc3QgY3JlYXRlZCBGQVEgYXJ0aWNsZXMnLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTY3JlZW5EYXRhID0+ICdMYXRlc3QgdXBkYXRlZCBGQVEgYXJ0aWNsZXMnLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgIGZvciBteSAkVGVzdCAoQFRlc3RzKSB7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRUZXN0LT57U2NyZWVuRGF0YX0gKSA+IC0xLAogICAgICAgICAgICAgICAgIiRUZXN0LT57U2NyZWVuRGF0YX0gaXMgZm91bmQiLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBDbGljayBvbiB0ZXN0IGNyZWF0ZWQgY2F0ZWdvcnksIGdvIHRvIHN1YmNhdGVnb3J5IHNjcmVlbi4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiRDYXRlZ29yeU5hbWUiLCAnbGlua190ZXh0JyApLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgT3JkZXIgRkFRIGl0ZW0gcGVyIEZBUUlEIGJ5IERvd24uCiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgKICAgICAgICAgICAgIiR7U2NyaXB0QWxpYXN9Y3VzdG9tZXIucGw/QWN0aW9uPUN1c3RvbWVyRkFRRXhwbG9yZXI7Q2F0ZWdvcnlJRD0kQ2F0ZWdvcnlJRDtTb3J0Qnk9VGl0bGU7T3JkZXI9VXAiCiAgICAgICAgKTsKCiAgICAgICAgIyBDaGVjayB0ZXN0IGNyZWF0ZWQgRkFRcy4KICAgICAgICBteSAkSW5kZXggPSAwOwogICAgICAgIGZvciBteSAkVGVzdCAoQEl0ZW1zKSB7CiAgICAgICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoCiAgICAgICAgICAgICAgICAgICAgInJldHVybiBcJCgnaDM6Y29udGFpbnMoXCJGQVEgQXJ0aWNsZXNcIiknKS5jbG9zZXN0KCcuV2lkZ2V0U2ltcGxlJykuZmluZCgndGJvZHkgdHI6ZXEoJEluZGV4KSB0ZDplcSgxKScpLnRleHQoKS50cmltKCk7IgogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICRUZXN0LT57RkFRVGl0bGV9LAogICAgICAgICAgICAgICAgIkZBUSBBcnRpY2xlICckVGVzdC0+e0ZBUVRpdGxlfScgaXMgZm91bmQiCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRJbmRleCsrOwogICAgICAgIH0KCiAgICAgICAgIyBDaGVjayBpZiBDdXN0b21lckZBUUV4cGxvcmVyIHNob3cgcGFnaW5hdGlvbiBpZiBjb25maWd1cmVkIFNlYXJjaExpbWl0IGlzIHJlYWNoZWQgKHNlZSBidWcjMTM4ODUpLgogICAgICAgICRIZWxwZXItPkNvbmZpZ1NldHRpbmdDaGFuZ2UoCiAgICAgICAgICAgIEtleSAgID0+ICdGQVE6OkZyb250ZW5kOjpDdXN0b21lckZBUUV4cGxvcmVyIyMjU2VhcmNoUGFnZVNob3duJywKICAgICAgICAgICAgVmFsdWUgPT4gJzMnLAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICk7CgogICAgICAgICRIZWxwZXItPkNvbmZpZ1NldHRpbmdDaGFuZ2UoCiAgICAgICAgICAgIEtleSAgID0+ICdGQVE6OkZyb250ZW5kOjpDdXN0b21lckZBUUV4cGxvcmVyIyMjU2VhcmNoTGltaXQnLAogICAgICAgICAgICBWYWx1ZSA9PiAnNScsCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgKICAgICAgICAgICAgIiR7U2NyaXB0QWxpYXN9Y3VzdG9tZXIucGw/QWN0aW9uPUN1c3RvbWVyRkFRRXhwbG9yZXI7Q2F0ZWdvcnlJRD0kQ2F0ZWdvcnlJRDtTb3J0Qnk9VGl0bGU7T3JkZXI9VXAiCiAgICAgICAgKTsKCiAgICAgICAgIyBDaGVjayBpdGVtcyBpbiB0aGUgZmlyc3QgcGFnZS4KICAgICAgICBmb3IgbXkgJEl0ZW0gKEBJdGVtcykgewogICAgICAgICAgICBteSAkSXNGb3VuZCA9ICggJEl0ZW0tPntQYWdlfSA9PSAxICkgPyAnaXMgZm91bmQnIDogJ2lzIG5vdCBmb3VuZCc7CiAgICAgICAgICAgIG15ICRMZW5ndGggID0gKCAkSXRlbS0+e1BhZ2V9ID09IDEgKSA/IDEgICAgICAgICAgOiAwOwoKICAgICAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgKICAgICAgICAgICAgICAgICAgICAicmV0dXJuIFwkKCdoMzpjb250YWlucyhcIkZBUSBBcnRpY2xlc1wiKScpLmNsb3Nlc3QoJy5XaWRnZXRTaW1wbGUnKS5maW5kKCd0ZCBhW2hyZWYqPVwiQWN0aW9uPUN1c3RvbWVyRkFRWm9vbTtJdGVtSUQ9JEl0ZW0tPntJdGVtSUR9XCJdJykubGVuZ3RoOyIKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAkTGVuZ3RoLAogICAgICAgICAgICAgICAgIlBhZ2UgMSAtIEZBUSBBcnRpY2xlICckSXRlbS0+e0ZBUVRpdGxlfScgJElzRm91bmQiCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIEdvIHRvIHNlY29uZCByZXN1bHQgcGFnZS4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNDdXN0b21lckZBUUV4cGxvcmVyUGFnZTIiLCAnY3NzJyApLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgQ2hlY2sgaXRlbXMgaW4gdGhlIHNlY29uZCBwYWdlLgogICAgICAgIGZvciBteSAkSXRlbSAoQEl0ZW1zKSB7CiAgICAgICAgICAgIG15ICRJc0ZvdW5kID0gKCAkSXRlbS0+e1BhZ2V9ID09IDIgKSA/ICdpcyBmb3VuZCcgOiAnaXMgbm90IGZvdW5kJzsKICAgICAgICAgICAgbXkgJExlbmd0aCAgPSAoICRJdGVtLT57UGFnZX0gPT0gMiApID8gMSAgICAgICAgICA6IDA7CgogICAgICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAgICAgICAgICJyZXR1cm4gXCQoJ2gzOmNvbnRhaW5zKFwiRkFRIEFydGljbGVzXCIpJykuY2xvc2VzdCgnLldpZGdldFNpbXBsZScpLmZpbmQoJ3RkIGFbaHJlZio9XCJBY3Rpb249Q3VzdG9tZXJGQVFab29tO0l0ZW1JRD0kSXRlbS0+e0l0ZW1JRH1cIl0nKS5sZW5ndGg7IgogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICRMZW5ndGgsCiAgICAgICAgICAgICAgICAiUGFnZSAyIC0gRkFRIEFydGljbGUgJyRJdGVtLT57RkFRVGl0bGV9JyAkSXNGb3VuZCIKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgRkFRIHN1YmNhdGVnb3JpZXMgYXJlIHNob3duIG9uIEN1c3RvbWVyRkFRRXhwbG9yZXIuIFNlZSBidWcjMTQwNTMuCiAgICAgICAgIyBDcmVhdGUgU3ViY2F0ZWdvcnkuCiAgICAgICAgbXkgJFN1YkNhdGVnb3J5TmFtZSA9ICJTdWIkQ2F0ZWdvcnlOYW1lIjsKICAgICAgICBteSAkU3ViQ2F0ZWdvcnlJRCAgID0gJEZBUU9iamVjdC0+Q2F0ZWdvcnlBZGQoCiAgICAgICAgICAgIE5hbWUgICAgID0+ICRTdWJDYXRlZ29yeU5hbWUsCiAgICAgICAgICAgIENvbW1lbnQgID0+ICdTdWJjYXRlZ29yeScsCiAgICAgICAgICAgIFBhcmVudElEID0+ICRDYXRlZ29yeUlELAogICAgICAgICAgICBWYWxpZElEICA9PiAxLAogICAgICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTdWJDYXRlZ29yeUlELAogICAgICAgICAgICAiU3ViQ2F0ZWdvcnlJRCAkU3ViQ2F0ZWdvcnlJRCBpcyBjcmVhdGVkIiwKICAgICAgICApOwoKICAgICAgICAjIFNldHVwIGdyb3VwIGZvciBTdWJjYXRlZ29yeS4KICAgICAgICAkR3JvdXBJRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpLT5Hcm91cExvb2t1cCgKICAgICAgICAgICAgR3JvdXAgPT4gJ3VzZXJzJywKICAgICAgICApOwogICAgICAgICRGQVFPYmplY3QtPlNldENhdGVnb3J5R3JvdXAoCiAgICAgICAgICAgIENhdGVnb3J5SUQgPT4gJFN1YkNhdGVnb3J5SUQsCiAgICAgICAgICAgIEdyb3VwSURzICAgPT4gWyRHcm91cElEXSwKICAgICAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIFN1YmNhdGVnb3J5IEZBUS4KICAgICAgICBteSAkU3ViRkFRVGl0bGUgPSAiU3ViRkFRLSRSYW5kb21JRCI7CiAgICAgICAgbXkgJFN1Ykl0ZW1JRCAgID0gJEZBUU9iamVjdC0+RkFRQWRkKAogICAgICAgICAgICBUaXRsZSAgICAgICA9PiAkU3ViRkFRVGl0bGUsCiAgICAgICAgICAgIENhdGVnb3J5SUQgID0+ICRTdWJDYXRlZ29yeUlELAogICAgICAgICAgICBTdGF0ZUlEICAgICA9PiAkU3RhdGVJRCwKICAgICAgICAgICAgTGFuZ3VhZ2VJRCAgPT4gMSwKICAgICAgICAgICAgVmFsaWRJRCAgICAgPT4gMSwKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICAgICAgICAgQXBwcm92ZWQgICAgPT4gMSwKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvaHRtbCcsCiAgICAgICAgKTsKCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTdWJJdGVtSUQsCiAgICAgICAgICAgICJTdWJjYXRlZ29yeSBpdGVtSUQgJFN1Ykl0ZW1JRCBpcyBjcmVhdGVkIiwKICAgICAgICApOwoKICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWN1c3RvbWVyLnBsP0FjdGlvbj1DdXN0b21lckZBUUV4cGxvcmVyIik7CgogICAgICAgICMgQ2hlY2sgaWYgU3ViY2F0ZWdvcnkgaXMgc2hvd24uCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoCiAgICAgICAgICAgICAgICAicmV0dXJuIFwkKFwiYVtocmVmKj0nQWN0aW9uPUN1c3RvbWVyRkFRRXhwbG9yZXI7Q2F0ZWdvcnlJRD0kU3ViQ2F0ZWdvcnlJRCddXCIpLmxlbmd0aCA9PSAwIgogICAgICAgICAgICApLAogICAgICAgICAgICAiU3ViQ2F0ZWdvcnlJRCAkU3ViQ2F0ZWdvcnlJRCBpbiBub3QgZm91bmQuIgogICAgICAgICk7CgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiJENhdGVnb3J5TmFtZSIsICdsaW5rX3RleHQnICktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBDaGVjayBpZiBTdWJjYXRlZ29yeSBpcyBwcmVzZW50LgogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgKICAgICAgICAgICAgICAgICJyZXR1cm4gXCQoXCJhW2hyZWYqPSdBY3Rpb249Q3VzdG9tZXJGQVFFeHBsb3JlcjtDYXRlZ29yeUlEPSRTdWJDYXRlZ29yeUlEJ11cIikudGV4dCgpLnRyaW0oKSIKICAgICAgICAgICAgKSwKICAgICAgICAgICAgIiRTdWJDYXRlZ29yeU5hbWUiLAogICAgICAgICAgICAiU3ViY2F0ZWdvcnkgJFN1YkNhdGVnb3J5TmFtZSBpcyBmb3VuZC4iCiAgICAgICAgKTsKCiAgICAgICAgIyBEZWxldGUgRkFRIGNhdGVnb3J5LgogICAgICAgIGZvciBteSAkQ2F0ZWdvcnlJRHMgKCAkQ2F0ZWdvcnlJRCwgJFN1YkNhdGVnb3J5SUQgKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkRkFRT2JqZWN0LT5DYXRlZ29yeURlbGV0ZSgKICAgICAgICAgICAgICAgIENhdGVnb3J5SUQgPT4gJENhdGVnb3J5SURzLAogICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAgICAgIkNhdGVnb3J5SUQgJENhdGVnb3J5SURzIGlzIGRlbGV0ZWQiLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBEZWxldGUgRkFRcy4KICAgICAgICBwdXNoIEBJdGVtcywKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSXRlbUlEID0+ICRTdWJJdGVtSUQsCiAgICAgICAgICAgIH07CiAgICAgICAgZm9yIG15ICRGQVEgKEBJdGVtcykgewogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRGQVFPYmplY3QtPkZBUURlbGV0ZSgKICAgICAgICAgICAgICAgIEl0ZW1JRCA9PiAkRkFRLT57SXRlbUlEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAgICAgIkZBUUlEICRGQVEtPntJdGVtSUR9IGlzIGRlbGV0ZWQiLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBNYWtlIHN1cmUgdGhlIGNhY2hlIGlzIGNvcnJlY3QuCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoIFR5cGUgPT4gIkZBUSIgKTsKICAgIH0KKTsKCiRTZWxmLT5Eb25lVGVzdGluZygpOwo=</File>
        <File Location="scripts/test/Selenium/Customer/CustomerFAQPrint.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKIyBTZXQgdXAgdGhlIHRlc3QgZHJpdmVyICRTZWxmIHdoZW4gd2UgYXJlIHJ1bm5pbmcgYXMgYSBzdGFuZGFsb25lIHNjcmlwdC4KdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6UmVnaXN0ZXJEcml2ZXI7CgpvdXIgJFNlbGY7CgojIGdldCBzZWxlbml1bSBvYmplY3QKbXkgJFNlbGVuaXVtID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpTZWxlbml1bScpOwoKaWYgKCAhJFNlbGVuaXVtLT57YnJvd3Nlcl9uYW1lfSB8fCAkU2VsZW5pdW0tPnticm93c2VyX25hbWV9IG5lICdmaXJlZm94JyApIHsKICAgICRTZWxmLT5UcnVlKAogICAgICAgIDEsCiAgICAgICAgJ1BERiB0ZXN0IGN1cnJlbnRseSBzdXBwb3J0cyBGaXJlZm94IG9ubHksIHNraXBwaW5nIHRlc3QnCiAgICApOwogICAgIyNyZXR1cm4gMTsKfQplbHNlIHsKICAgICRTZWxlbml1bS0+UnVuVGVzdCgKICAgICAgICBzdWIgewoKICAgICAgICAgICAgIyBnZXQgaGVscGVyIG9iamVjdAogICAgICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgICAgICMgZ2V0IEZBUSBvYmplY3QKICAgICAgICAgICAgbXkgJEZBUU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpGQVEnKTsKCiAgICAgICAgICAgICMgY3JlYXRlIHRlc3QgRkFRCiAgICAgICAgICAgIG15ICRGQVFUaXRsZSAgICA9ICdGQVEgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgICAgIG15ICRGQVFTeW1wdG9tICA9ICdTZWxlbml1bSBTeW1wdG9tJzsKICAgICAgICAgICAgbXkgJEZBUVByb2JsZW0gID0gJ1NlbGVuaXVtIFByb2JsZW0nOwogICAgICAgICAgICBteSAkRkFRU29sdXRpb24gPSAnU2VsZW5pdW0gU29sdXRpb24nOwoKICAgICAgICAgICAgbXkgJEl0ZW1JRCA9ICRGQVFPYmplY3QtPkZBUUFkZCgKICAgICAgICAgICAgICAgIFRpdGxlICAgICAgID0+ICRGQVFUaXRsZSwKICAgICAgICAgICAgICAgIENhdGVnb3J5SUQgID0+IDEsCiAgICAgICAgICAgICAgICBTdGF0ZUlEICAgICA9PiAxLAogICAgICAgICAgICAgICAgTGFuZ3VhZ2VJRCAgPT4gMSwKICAgICAgICAgICAgICAgIEtleXdvcmRzICAgID0+ICdzb21lIGtleXdvcmRzJywKICAgICAgICAgICAgICAgIEZpZWxkMSAgICAgID0+ICRGQVFTeW1wdG9tLAogICAgICAgICAgICAgICAgRmllbGQyICAgICAgPT4gJEZBUVByb2JsZW0sCiAgICAgICAgICAgICAgICBGaWVsZDMgICAgICA9PiAkRkFRU29sdXRpb24sCiAgICAgICAgICAgICAgICBBcHByb3ZlZCAgICA9PiAxLAogICAgICAgICAgICAgICAgVmFsaWRJRCAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9odG1sJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkSXRlbUlELAogICAgICAgICAgICAgICAgIkZBUSBpcyBjcmVhdGVkIC0gSUQgJEl0ZW1JRCIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGNyZWF0ZSBhbmQgbG9naW4gdGVzdCBjdXN0b21lcgogICAgICAgICAgICBteSAkVGVzdEN1c3RvbWVyVXNlckxvZ2luID0gJEhlbHBlci0+VGVzdEN1c3RvbWVyVXNlckNyZWF0ZSgpIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgICAgICBUeXBlICAgICA9PiAnQ3VzdG9tZXInLAogICAgICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RDdXN0b21lclVzZXJMb2dpbiwKICAgICAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0Q3VzdG9tZXJVc2VyTG9naW4sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGdldCBzY3JpcHQgYWxpYXMKICAgICAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAgICAgIyBuYXZpZ2F0ZSB0byBDdXN0b21lckZBUVByaW50IHNjcmVlbiBvZiBjcmVhdGVkIHRlc3QgRkFRCiAgICAgICAgICAgICRTZWxlbml1bS0+Z2V0KCIke1NjcmlwdEFsaWFzfWN1c3RvbWVyLnBsP0FjdGlvbj1DdXN0b21lckZBUVByaW50O0l0ZW1JRD0kSXRlbUlEIik7CgogICAgICAgICAgICAjIHdhaXQgdW50aWwgcHJpbnQgc2NyZWVuIGlzIGxvYWRlZAogICAgICAgICAgICBBQ1RJVkVTTEVFUDoKICAgICAgICAgICAgZm9yIG15ICRTZWNvbmQgKCAxIC4uIDIwICkgewogICAgICAgICAgICAgICAgaWYgKCBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJEZBUVNvbHV0aW9uICkgPiAtMSwgKSB7CiAgICAgICAgICAgICAgICAgICAgbGFzdCBBQ1RJVkVTTEVFUDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHNsZWVwIDE7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgdGVzdCBwYXJhbXMKICAgICAgICAgICAgbXkgQFRlc3RzID0gKAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEZBUURhdGEgPT4gJEZBUVN5bXB0b20sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEZBUURhdGEgPT4gJEZBUVByb2JsZW0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEZBUURhdGEgPT4gJEZBUVNvbHV0aW9uLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgY2hlY2sgZm9yIHRlc3QgY3JlYXRlZCBGQVEgcHJpbnQgdmFsdWVzCiAgICAgICAgICAgIGZvciBteSAkVGVzdCAoQFRlc3RzKSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJFRlc3QtPntGQVFEYXRhfSApID4gLTEsCiAgICAgICAgICAgICAgICAgICAgIiRUZXN0LT57RkFRRGF0YX0gaXMgZm91bmQgb24gcHJpbnQgc2NyZWVuIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgZGVsZXRlIHRlc3QgY3JlYXRlZCBGQVEKICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkRkFRT2JqZWN0LT5GQVFEZWxldGUoCiAgICAgICAgICAgICAgICBJdGVtSUQgPT4gJEl0ZW1JRCwKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAgICAgIkZBUSBpcyBkZWxldGVkIC0gSUQgJEl0ZW1JRCIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIG1ha2Ugc3VyZSB0aGUgY2FjaGUgaXMgY29ycmVjdAogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+Q2xlYW5VcCggVHlwZSA9PiAiRkFRIiApOwoKICAgICAgICB9CgogICAgKTsKfQoKJFNlbGYtPkRvbmVUZXN0aW5nKCk7Cg==</File>
        <File Location="scripts/test/Selenium/Customer/CustomerFAQSearch.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKIyBTZXQgdXAgdGhlIHRlc3QgZHJpdmVyICRTZWxmIHdoZW4gd2UgYXJlIHJ1bm5pbmcgYXMgYSBzdGFuZGFsb25lIHNjcmlwdC4KdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6UmVnaXN0ZXJEcml2ZXI7CgpvdXIgJFNlbGY7CgojIGdldCBzZWxlbml1bSBvYmplY3QKbXkgJFNlbGVuaXVtID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpTZWxlbml1bScpOwoKJFNlbGVuaXVtLT5SdW5UZXN0KAogICAgc3ViIHsKCiAgICAgICAgbXkgJEhlbHBlciAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CiAgICAgICAgbXkgJEZBUU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpGQVEnKTsKCiAgICAgICAgIyBEaXNhYmxlIGNoZWNrIG9mIGVtYWlsIGFkZHJlc3Nlcy4KICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnQ3VzdG9tZXJHcm91cFN1cHBvcnQnLAogICAgICAgICAgICBWYWx1ZSA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIHRlc3QgRkFRIGNhdGVnb3J5LgogICAgICAgIG15ICRDYXRlZ29yeUlEID0gJEZBUU9iamVjdC0+Q2F0ZWdvcnlBZGQoCiAgICAgICAgICAgIE5hbWUgICAgID0+ICdDYXRlZ29yeSAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKSwKICAgICAgICAgICAgQ29tbWVudCAgPT4gJ1NlbGVuaXVtIENhdGVnb3J5JywKICAgICAgICAgICAgUGFyZW50SUQgPT4gMCwKICAgICAgICAgICAgVmFsaWRJRCAgPT4gMSwKICAgICAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkQ2F0ZWdvcnlJRCwKICAgICAgICAgICAgIkZBUSBjYXRlZ29yeSBpcyBjcmVhdGVkIC0gJENhdGVnb3J5SUQiLAogICAgICAgICk7CgogICAgICAgICMgQWRkIHRlc3QgZ3JvdXAuCiAgICAgICAgbXkgJEdyb3VwT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyk7CiAgICAgICAgbXkgJEdyb3VwSUQgICAgID0gJEdyb3VwT2JqZWN0LT5Hcm91cEFkZCgKICAgICAgICAgICAgTmFtZSAgICA9PiAnZ3JvdXAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKSwKICAgICAgICAgICAgQ29tbWVudCA9PiAnQ29tbWVudCBkZXNjcmliaW5nIHRoZSBncm91cCcsCiAgICAgICAgICAgIFZhbGlkSUQgPT4gMSwKICAgICAgICAgICAgVXNlcklEICA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgU2V0IHRlc3QgRkFRIGNhdGVnb3J5IHBlcm1pc3Npb24uCiAgICAgICAgJEZBUU9iamVjdC0+U2V0Q2F0ZWdvcnlHcm91cCgKICAgICAgICAgICAgQ2F0ZWdvcnlJRCA9PiAkQ2F0ZWdvcnlJRCwKICAgICAgICAgICAgR3JvdXBJRHMgICA9PiBbJEdyb3VwSURdLAogICAgICAgICAgICBVc2VySUQgICAgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCBGQVFzLgogICAgICAgIG15IEBGQVFTZWFyY2g7CiAgICAgICAgZm9yIG15ICRUaXRsZSAocXcoIEZBUVNlYXJjaCBGQVFDaGFuZ2VTZWFyY2ggKSkgewogICAgICAgICAgICBmb3IgbXkgJEl0ZW0gKCAxIC4uIDUgKSB7CgogICAgICAgICAgICAgICAgIyBBZGQgdGVzdCBGQVEuCiAgICAgICAgICAgICAgICBteSAkRkFRVGl0bGUgPSAkVGl0bGUgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgICAgICAgICAgbXkgJEl0ZW1JRCAgID0gJEZBUU9iamVjdC0+RkFRQWRkKAogICAgICAgICAgICAgICAgICAgIFRpdGxlICAgICAgID0+ICRGQVFUaXRsZSwKICAgICAgICAgICAgICAgICAgICBDYXRlZ29yeUlEICA9PiAkQ2F0ZWdvcnlJRCwKICAgICAgICAgICAgICAgICAgICBTdGF0ZUlEICAgICA9PiAxLAogICAgICAgICAgICAgICAgICAgIExhbmd1YWdlSUQgID0+IDEsCiAgICAgICAgICAgICAgICAgICAgVmFsaWRJRCAgICAgPT4gMSwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgICAgICAgICAgICAgIEFwcHJvdmVkICAgID0+IDEsCiAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvaHRtbCcsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgICAgICRJdGVtSUQsCiAgICAgICAgICAgICAgICAgICAgIkZBUSBpcyBjcmVhdGVkIC0gJEl0ZW1JRCIsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIG15ICVGQVEgPSAoCiAgICAgICAgICAgICAgICAgICAgSXRlbUlEICAgPT4gJEl0ZW1JRCwKICAgICAgICAgICAgICAgICAgICBGQVFUaXRsZSA9PiAkRkFRVGl0bGUsCiAgICAgICAgICAgICAgICAgICAgVHlwZSAgICAgPT4gJFRpdGxlLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBwdXNoIEBGQVFTZWFyY2gsIFwlRkFROwogICAgICAgICAgICB9CgogICAgICAgIH0KCiAgICAgICAgIyBDcmVhdGUgYW5kIGxvZ2luIHRlc3QgY3VzdG9tZXIuCiAgICAgICAgbXkgJFRlc3RDdXN0b21lclVzZXJMb2dpbiA9ICRIZWxwZXItPlRlc3RDdXN0b21lclVzZXJDcmVhdGUoKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdDdXN0b21lcicsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0Q3VzdG9tZXJVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0Q3VzdG9tZXJVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAjIE5hdmlnYXRlIHRvIEN1c3RvbWVyRkFRU2VhcmNoIGZvcm0uCiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgiJHtTY3JpcHRBbGlhc31jdXN0b21lci5wbD9BY3Rpb249Q3VzdG9tZXJGQVFTZWFyY2giKTsKCiAgICAgICAgIyBDaGVjayB0aWNrZXQgc2VhcmNoIHBhZ2UuCiAgICAgICAgZm9yIG15ICRJRCAoCiAgICAgICAgICAgIHF3KFByb2ZpbGUgTnVtYmVyIEZ1bGxUZXh0IFRpdGxlIEtleXdvcmQgTGFuZ3VhZ2VJRHMgQ2F0ZWdvcnlJRHMgTm9Wb3RlU2V0IFZvdGVQb2ludAogICAgICAgICAgICBWb3RlU2VhcmNoVHlwZSBOb1JhdGVTZXQgUmF0ZVBvaW50IFJhdGVTZWFyY2hUeXBlIFJhdGVTZWFyY2ggTm9UaW1lU2V0IERhdGUgRGF0ZVJhbmdlCiAgICAgICAgICAgIEl0ZW1DcmVhdGVUaW1lUG9pbnRTdGFydCBJdGVtQ3JlYXRlVGltZVBvaW50IEl0ZW1DcmVhdGVUaW1lUG9pbnRGb3JtYXQgSXRlbUNyZWF0ZVRpbWVTdGFydE1vbnRoCiAgICAgICAgICAgIEl0ZW1DcmVhdGVUaW1lU3RhcnREYXkgSXRlbUNyZWF0ZVRpbWVTdGFydFllYXIgSXRlbUNyZWF0ZVRpbWVTdG9wTW9udGggSXRlbUNyZWF0ZVRpbWVTdG9wRGF5CiAgICAgICAgICAgIEl0ZW1DcmVhdGVUaW1lU3RvcFllYXIgU2F2ZVByb2ZpbGUgUHJvZmlsIFN1Ym1pdCBSZXN1bHRGb3JtKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICBteSAkRWxlbWVudCA9ICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiIyRJRCIsICdjc3MnICk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKICAgICAgICB9CgogICAgICAgICMgU2VhcmNoIEZBUSBieSB0aXRsZSBhbmQgcnVuIGl0LgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1RpdGxlIiwgICdjc3MnICktPnNlbmRfa2V5cygnRkFRKicpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1N1Ym1pdCIsICdjc3MnICktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBDaGVjayBDdXN0b21lckZBUVNlYXJjaCByZXN1bHQgc2NyZWVuLgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUiLCAgICAgICAgICAgICAnY3NzJyApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUgdGhlYWQgdHIgdGgiLCAnY3NzJyApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUgdGJvZHkgdHIgdGQiLCAnY3NzJyApOwoKICAgICAgICAjIENoZWNrIHRlc3QgRkFRcyBzZWFyY2hlZCBieSAnRkFRKicnCiAgICAgICAgIyBUaGVyZSBhcmUgbm8gdGVzdCBGQVFzLCB1c2VyIGRvZXNuJ3QgaGF2ZSBwZXJtaXNzaW9uIGZvciB0ZXN0IGNhdGVnb3J5LgogICAgICAgIGZvciBteSAkRkFRIChARkFRU2VhcmNoKSB7CgogICAgICAgICAgICAjIGNoZWNrIGlmIHRoZXJlIGlzIG5vdCB0ZXN0IEZBUSBvbiBzY3JlZW4KICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJEZBUS0+e0ZBUVRpdGxlfSApID09IC0xLAogICAgICAgICAgICAgICAgIiRGQVEtPntGQVFUaXRsZX0gaXMgZm91bmQiLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBBZGQgdXNlciBwZXJtaXNzaW9uIGZvciB0ZXN0IGdyb3VwLgogICAgICAgIG15ICRTdWNjZXNzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkN1c3RvbWVyR3JvdXAnKS0+R3JvdXBNZW1iZXJBZGQoCiAgICAgICAgICAgIEdJRCAgICAgICAgPT4gJEdyb3VwSUQsCiAgICAgICAgICAgIFVJRCAgICAgICAgPT4gJFRlc3RDdXN0b21lclVzZXJMb2dpbiwKICAgICAgICAgICAgUGVybWlzc2lvbiA9PiB7CiAgICAgICAgICAgICAgICBybyAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIG1vdmVfaW50byA9PiAwLAogICAgICAgICAgICAgICAgY3JlYXRlICAgID0+IDAsCiAgICAgICAgICAgICAgICBvd25lciAgICAgPT4gMCwKICAgICAgICAgICAgICAgIHByaW9yaXR5ICA9PiAwLAogICAgICAgICAgICAgICAgcncgICAgICAgID0+IDAsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICk7CgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgIkdyb3VwTWVtYmVyQWRkKCkgaXMgZG9uZS4iLAogICAgICAgICk7CgogICAgICAgICMgQ2hlY2sgJ0NoYW5nZSBzZWFyY2ggb3B0aW9ucycgYnV0dG9uIGFnYWluLgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2FbY29udGFpbnMoXEBocmVmLCBcJ0FjdGlvbj1DdXN0b21lckZBUVNlYXJjaDtTdWJhY3Rpb249TG9hZFByb2ZpbGUnICldIikKICAgICAgICAgICAgLT5WZXJpZmllZENsaWNrKCk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjVGl0bGUiLCAgJ2NzcycgKS0+Y2xlYXIoKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNUaXRsZSIsICAnY3NzJyApLT5zZW5kX2tleXMoJ0ZBUSonKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNTdWJtaXQiLCAnY3NzJyApLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgIGZvciBteSAkRkFRIChARkFRU2VhcmNoKSB7CgogICAgICAgICAgICAjIENoZWNrIGlmIHRoZXJlIGlzIHRlc3QgRkFRIG9uIHNjcmVlbi4KICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJEZBUS0+e0ZBUVRpdGxlfSApID4gLTEsCiAgICAgICAgICAgICAgICAiJEZBUS0+e0ZBUVRpdGxlfSBpcyBmb3VuZCIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIENoZWNrICdDaGFuZ2Ugc2VhcmNoIG9wdGlvbnMnIHNjcmVlbi4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9hW2NvbnRhaW5zKFxAaHJlZiwgXCdBY3Rpb249Q3VzdG9tZXJGQVFTZWFyY2g7U3ViYWN0aW9uPUxvYWRQcm9maWxlJyApXSIpCiAgICAgICAgICAgIC0+VmVyaWZpZWRDbGljaygpOwoKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNUaXRsZSIsICdjc3MnICktPmNsZWFyKCk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjVGl0bGUiLCAnY3NzJyApLT5zZW5kX2tleXMoJ0ZBUUNoYW5nZVNlYXJjaConKTsKICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAiXCQoJyNDYXRlZ29yeUlEcycpLnZhbCgnJENhdGVnb3J5SUQnKS50cmlnZ2VyKCdyZWRyYXcuSW5wdXRGaWVsZCcpLnRyaWdnZXIoJ2NoYW5nZScpOyIKICAgICAgICApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1N1Ym1pdCIsICdjc3MnICktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBDaGVjayB0ZXN0IEZBUXMgc2VhcmNoZWQgYnkgJ0ZBUUNoYW5nZVNlYXJjaConLgogICAgICAgICMgRGVsZXRlIHRlc3QgRkFRcyBhZnRlciBjaGVja2luZy4KICAgICAgICBmb3IgbXkgJEZBUSAoQEZBUVNlYXJjaCkgewoKICAgICAgICAgICAgaWYgKCAkRkFRLT57VHlwZX0gZXEgJ0ZBUUNoYW5nZVNlYXJjaCcgKSB7CgogICAgICAgICAgICAgICAgIyBDaGVjayBpZiB0aGVyZSBpcyB0ZXN0IEZBUUNoYW5nZVNlYXJjaCogb24gc2NyZWVuLgogICAgICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRGQVEtPntGQVFUaXRsZX0gKSA+IC0xLAogICAgICAgICAgICAgICAgICAgICIkRkFRLT57RkFRVGl0bGV9IC0gZm91bmQiLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICAgICAjIENoZWNrIGlmIHRoZXJlIGlzIG5vIHRlc3QgRkFRU2VhcmNoKiBvbiBzY3JlZW4uCiAgICAgICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJEZBUS0+e0ZBUVRpdGxlfSApID09IC0xLAogICAgICAgICAgICAgICAgICAgICIkRkFRLT57RkFRVGl0bGV9IGlzIG5vdCBmb3VuZCIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRGQVFPYmplY3QtPkZBUURlbGV0ZSgKICAgICAgICAgICAgICAgIEl0ZW1JRCA9PiAkRkFRLT57SXRlbUlEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAgICAgIkZBUSBpcyBkZWxldGVkIC0gSUQgJEZBUS0+e0l0ZW1JRH0iLAogICAgICAgICAgICApOwoKICAgICAgICB9CgogICAgICAgICMgQ2hlY2sgJ0NoYW5nZSBzZWFyY2ggb3B0aW9ucycgYnV0dG9uIGFnYWluLgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2FbY29udGFpbnMoXEBocmVmLCBcJ0FjdGlvbj1DdXN0b21lckZBUVNlYXJjaDtTdWJhY3Rpb249TG9hZFByb2ZpbGUnICldIikKICAgICAgICAgICAgLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1RpdGxlIiwgICdjc3MnICktPmNsZWFyKCk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjVGl0bGUiLCAgJ2NzcycgKS0+c2VuZF9rZXlzKCAkSGVscGVyLT5HZXRSYW5kb21JRCgpICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjU3VibWl0IiwgJ2NzcycgKS0+VmVyaWZpZWRDbGljaygpOwoKICAgICAgICAjIENoZWNrIG5vIGRhdGEgbWVzc2FnZS4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNFbXB0eU1lc3NhZ2UiLCAnY3NzJyApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJ05vIEZBUSBkYXRhIGZvdW5kLicgKSA+IC0xLAogICAgICAgICAgICAiTm8gRkFRIGRhdGEgZm91bmQuIiwKICAgICAgICApOwoKICAgICAgICAjIERlbGV0ZSB0ZXN0IGNyZWF0ZWQgRkFRIGNhdGVnb3J5LgogICAgICAgICRTdWNjZXNzID0gJEZBUU9iamVjdC0+Q2F0ZWdvcnlEZWxldGUoCiAgICAgICAgICAgIENhdGVnb3J5SUQgPT4gJENhdGVnb3J5SUQsCiAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgIkZBUSBjYXRlZ29yeSBpcyBkZWxldGVkIC0gSUQgJENhdGVnb3J5SUQiLAogICAgICAgICk7CgogICAgICAgICMgTWFrZSBzdXJlIHRoZSBjYWNoZSBpcyBjb3JyZWN0LgogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKCBUeXBlID0+ICJGQVEiICk7CiAgICB9Cik7CgokU2VsZi0+RG9uZVRlc3RpbmcoKTsK</File>
        <File Location="scripts/test/Selenium/Customer/CustomerFAQZoom.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKIyBTZXQgdXAgdGhlIHRlc3QgZHJpdmVyICRTZWxmIHdoZW4gd2UgYXJlIHJ1bm5pbmcgYXMgYSBzdGFuZGFsb25lIHNjcmlwdC4KdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6UmVnaXN0ZXJEcml2ZXI7CgpvdXIgJFNlbGY7CgpteSAkU2VsZW5pdW0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OlNlbGVuaXVtJyk7CgokU2VsZW5pdW0tPlJ1blRlc3QoCiAgICBzdWIgewoKICAgICAgICBteSAkSGVscGVyICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKICAgICAgICBteSAkRkFRT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkZBUScpOwoKICAgICAgICAjIENyZWF0ZSB0ZXN0IEZBUS4KICAgICAgICBteSAkRkFRVGl0bGUgICAgPSAnRkFRICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgIG15ICRGQVFTeW1wdG9tICA9ICdTZWxlbml1bSBTeW1wdG9tJzsKICAgICAgICBteSAkRkFRUHJvYmxlbSAgPSAnU2VsZW5pdW0gUHJvYmxlbSc7CiAgICAgICAgbXkgJEZBUVNvbHV0aW9uID0gJ1NlbGVuaXVtIFNvbHV0aW9uJzsKCiAgICAgICAgbXkgJEl0ZW1JRCA9ICRGQVFPYmplY3QtPkZBUUFkZCgKICAgICAgICAgICAgVGl0bGUgICAgICAgPT4gJEZBUVRpdGxlLAogICAgICAgICAgICBDYXRlZ29yeUlEICA9PiAxLAogICAgICAgICAgICBTdGF0ZUlEICAgICA9PiAxLAogICAgICAgICAgICBMYW5ndWFnZUlEICA9PiAxLAogICAgICAgICAgICBLZXl3b3JkcyAgICA9PiAnU2VsZW5pdW1LZXl3b3JkcycsCiAgICAgICAgICAgIEZpZWxkMSAgICAgID0+ICRGQVFTeW1wdG9tLAogICAgICAgICAgICBGaWVsZDIgICAgICA9PiAkRkFRUHJvYmxlbSwKICAgICAgICAgICAgRmllbGQzICAgICAgPT4gJEZBUVNvbHV0aW9uLAogICAgICAgICAgICBBcHByb3ZlZCAgICA9PiAxLAogICAgICAgICAgICBWYWxpZElEICAgICA9PiAxLAogICAgICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9odG1sJywKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkSXRlbUlELAogICAgICAgICAgICAiRkFRIGlzIGNyZWF0ZWQgLSBJRCAkSXRlbUlEIiwKICAgICAgICApOwoKICAgICAgICAjIENyZWF0ZSBhbmQgbG9naW4gdGVzdCBjdXN0b21lci4KICAgICAgICBteSAkVGVzdEN1c3RvbWVyVXNlckxvZ2luID0gJEhlbHBlci0+VGVzdEN1c3RvbWVyVXNlckNyZWF0ZSgpIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0N1c3RvbWVyJywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RDdXN0b21lclVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFRlc3RDdXN0b21lclVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICMgTmF2aWdhdGUgdG8gQ3VzdG9tZXJGQVFab29tIHNjcmVlbiBvZiBjcmVhdGVkIHRlc3QgRkFRLgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9Y3VzdG9tZXIucGw/QWN0aW9uPUN1c3RvbWVyRkFRWm9vbTtJdGVtSUQ9JEl0ZW1JRCIpOwoKICAgICAgICAjIENoZWNrIHBhZ2UuCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAnRkFRIEluZm9ybWF0aW9uJyApID4gLTEsCiAgICAgICAgICAgICJGQVEgZGF0YSBpcyBmb3VuZCBvbiBzY3JlZW4gLSBGQVEgSW5mb3JtYXRpb24iLAogICAgICAgICk7CgogICAgICAgICMgVmVyaWZ5IHRlc3QgRkFRIGlzIGNyZWF0ZWQuCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkRkFRVGl0bGUgKSA+IC0xLAogICAgICAgICAgICAiJEZBUVRpdGxlIGlzIGZvdW5kIiwKICAgICAgICApOwoKICAgICAgICBteSBAVGVzdHMgPSAoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmcmFtZSAgPT4gJ0lmcmFtZUZBUUZpZWxkMScsCiAgICAgICAgICAgICAgICBGQVFEYXRhID0+ICRGQVFTeW1wdG9tLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZnJhbWUgID0+ICdJZnJhbWVGQVFGaWVsZDInLAogICAgICAgICAgICAgICAgRkFRRGF0YSA9PiAkRkFRUHJvYmxlbSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWZyYW1lICA9PiAnSWZyYW1lRkFRRmllbGQzJywKICAgICAgICAgICAgICAgIEZBUURhdGEgPT4gJEZBUVNvbHV0aW9uLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgQ2hlY2sgdGVzdCBjcmVhdGVkIEZBUSB2YWx1ZXMuCiAgICAgICAgZm9yIG15ICRUZXN0IChAVGVzdHMpIHsKCiAgICAgICAgICAgICMgU3dpdGNoIHRvIEZBUSBzeW1wdG9tIGlmcmFtZSBhbmQgdmVyaWZ5IGl0cyB2YWx1ZXMuCiAgICAgICAgICAgICRTZWxlbml1bS0+U3dpdGNoVG9GcmFtZSgKICAgICAgICAgICAgICAgIEZyYW1lU2VsZWN0b3IgPT4gIiMkVGVzdC0+e0lmcmFtZX0iLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBXYWl0IHRvIHN3aXRjaCBvbiBpZnJhbWUuCiAgICAgICAgICAgIHNsZWVwIDI7CgogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkVGVzdC0+e0ZBUURhdGF9ICkgPiAtMSwKICAgICAgICAgICAgICAgICIkVGVzdC0+e0ZBUURhdGF9IGlzIGZvdW5kIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFNlbGVuaXVtLT5zd2l0Y2hfdG9fZnJhbWUoKTsKICAgICAgICB9CgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJ1NlbGVuaXVtS2V5d29yZHMnICkgPiAtMSwKICAgICAgICAgICAgIkZBUSAnU2VsZW5pdW1LZXl3b3JkcycgdmFsdWUgaXMgZm91bmQiLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAnZXh0ZXJuYWwgKGN1c3RvbWVyKScgKSA+IC0xLAogICAgICAgICAgICAiRkFRIHN0YXRlIHZhbHVlIGlzIGZvdW5kIiwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJzAgb3V0IG9mIDUnICkgPiAtMSwKICAgICAgICAgICAgIkZBUSBkZWZhdWx0IHZvdGUgdmFsdWUgaXMgZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgVm90ZSA1IHN0YXJzIGZvciBGQVEuCiAgICAgICAgbXkgJFZvdGVFbGVtZW50ID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjUmF0ZUJ1dHRvbjEwMCIsICdjc3MnICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2NoaWxkX2VsZW1lbnQoICRWb3RlRWxlbWVudCwgIi5SYXRlQnV0dG9uIiwgJ2NzcycgKS0+Y2xpY2soKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gInJldHVybiBcJCgnLlJhdGVCdXR0b24uUmF0ZUNoZWNrZWQnKS5sZW5ndGggPT09IDUiICk7CgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2J1dHRvbltcQGlkPSdSYXRlU3VibWl0QnV0dG9uJ11bXEB0eXBlPSdzdWJtaXQnXSIpLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgQ2hlY2sgdm90ZSBtZXNzYWdlLgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJ1RoYW5rcyBmb3IgeW91ciB2b3RlIScgKSA+IC0xLAogICAgICAgICAgICAiRkFRIHZvdGUgbWVzc2FnZSBpcyBmb3VuZCIsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICc1IG91dCBvZiA1JyApID4gLTEsCiAgICAgICAgICAgICJGQVEgdm90ZSB2YWx1ZSBpcyBmb3VuZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBEZWxldGUgdGVzdCBjcmVhdGVkIEZBUS4KICAgICAgICBteSAkU3VjY2VzcyA9ICRGQVFPYmplY3QtPkZBUURlbGV0ZSgKICAgICAgICAgICAgSXRlbUlEID0+ICRJdGVtSUQsCiAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAiRkFRIGlzIGRlbGV0ZWQgLSBJRCAkSXRlbUlEIiwKICAgICAgICApOwoKICAgICAgICAjIE1ha2Ugc3VyZSB0aGUgY2FjaGUgaXMgY29ycmVjdC4KICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+Q2xlYW5VcCggVHlwZSA9PiAiRkFRIiApOwogICAgfQopOwoKJFNlbGYtPkRvbmVUZXN0aW5nKCk7Cg==</File>
        <File Location="scripts/test/Selenium/Customer/FAQ/RelatedArticles.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKIyBTZXQgdXAgdGhlIHRlc3QgZHJpdmVyICRTZWxmIHdoZW4gd2UgYXJlIHJ1bm5pbmcgYXMgYSBzdGFuZGFsb25lIHNjcmlwdC4KdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6UmVnaXN0ZXJEcml2ZXI7CgpvdXIgJFNlbGY7CgpteSAkU2VsZW5pdW0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OlNlbGVuaXVtJyk7CgokU2VsZW5pdW0tPlJ1blRlc3QoCiAgICBzdWIgewoKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgJEhlbHBlci0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICAgICAgS2V5ICAgPT4gJ0Zyb250ZW5kOjpSaWNoVGV4dCcsCiAgICAgICAgICAgIFZhbHVlID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICBLZXkgICA9PiAnVGlja2V0OjpTZXJ2aWNlJywKICAgICAgICAgICAgVmFsdWUgPT4gMCwKICAgICAgICApOwogICAgICAgICRIZWxwZXItPkNvbmZpZ1NldHRpbmdDaGFuZ2UoCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgICAgIEtleSAgID0+ICdUaWNrZXQ6OlR5cGUnLAogICAgICAgICAgICBWYWx1ZSA9PiAwLAogICAgICAgICk7CiAgICAgICAgJEhlbHBlci0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgVmFsaWQgPT4gMCwKICAgICAgICAgICAgS2V5ICAgPT4gJ0ZBUTo6RnJvbnRlbmQ6OkN1c3RvbWVyRkFRUmVsYXRlZEFydGljbGVzIyMjUXVldWVzRW5hYmxlZCcsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJEZBUU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpGQVEnKTsKCiAgICAgICAgbXkgJUNhdGVnb3J5ID0gJEZBUU9iamVjdC0+Q2F0ZWdvcnlHZXQoCiAgICAgICAgICAgIENhdGVnb3J5SUQgPT4gMSwKICAgICAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgIG15ICRDYWNoZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpOwoKICAgICAgICAjIEFkZCBGQVEgYXJ0aWNsZXMuCiAgICAgICAgbXkgQEZBUUFydGljbGVzOwogICAgICAgIGZvciBteSAkSXRlbSAocXcoc3ViamVjdCBib2R5KSkgewogICAgICAgICAgICBteSAkVGl0bGUgICA9ICd0aXRsZScgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgICAgICBteSAkS2V5d29yZCA9ICRJdGVtIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICAgICAgbXkgJEl0ZW1JRCAgPSAkRkFRT2JqZWN0LT5GQVFBZGQoCiAgICAgICAgICAgICAgICBUaXRsZSAgICAgICA9PiAkVGl0bGUsCiAgICAgICAgICAgICAgICBDYXRlZ29yeUlEICA9PiAxLAogICAgICAgICAgICAgICAgU3RhdGVJRCAgICAgPT4gMSwKICAgICAgICAgICAgICAgIExhbmd1YWdlSUQgID0+IDEsCiAgICAgICAgICAgICAgICBLZXl3b3JkcyAgICA9PiAkS2V5d29yZCwKICAgICAgICAgICAgICAgIEZpZWxkMSAgICAgID0+ICdTeW1wdG9tLi4uJywKICAgICAgICAgICAgICAgIEZpZWxkMiAgICAgID0+ICdQcm9ibGVtLi4uJywKICAgICAgICAgICAgICAgIEZpZWxkMyAgICAgID0+ICdTb2x1dGlvbi4uLicsCiAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9odG1sJywKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRJdGVtSUQsCiAgICAgICAgICAgICAgICAiRkFRIGFydGljbGUgaXMgY3JlYXRlZCAtICRJdGVtSUQiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgbXkgJUZBUTsKICAgICAgICAgICAgJEZBUXtJRH0gICAgICA9ICRJdGVtSUQ7CiAgICAgICAgICAgICRGQVF7S2V5d29yZH0gPSAkS2V5d29yZDsKICAgICAgICAgICAgJEZBUXtUaXRsZX0gICA9ICRUaXRsZSAuICIgKCRDYXRlZ29yeXtOYW1lfSkiOwoKICAgICAgICAgICAgcHVzaCBARkFRQXJ0aWNsZXMsIFwlRkFROwogICAgICAgIH0KCiAgICAgICAgIyBDcmVhdGUgdGVzdCBjdXN0b21lciB1c2VyIGFuZCBsb2dpbi4KICAgICAgICBteSAkVGVzdEN1c3RvbWVyVXNlckxvZ2luID0gJEhlbHBlci0+VGVzdEN1c3RvbWVyVXNlckNyZWF0ZSgKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCBjdXN0b21lciB1c2VyIjsKCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0N1c3RvbWVyJywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RDdXN0b21lclVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFRlc3RDdXN0b21lclVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9Y3VzdG9tZXIucGw/QWN0aW9uPUN1c3RvbWVyVGlja2V0TWVzc2FnZSIpOwoKICAgICAgICAjIENoZWNrIEN1c3RvbWVyVGlja2V0TWVzc2FnZSBvdmVydmlldyBzY3JlZW4uCiAgICAgICAgZm9yIG15ICRJRCAocXcoRGVzdCBTdWJqZWN0IFJpY2hUZXh0IFByaW9yaXR5SUQgc3VibWl0UmljaFRleHQpKSB7CiAgICAgICAgICAgIG15ICRFbGVtZW50ID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjJElEIiwgJ2NzcycgKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2VuYWJsZWQoKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2Rpc3BsYXllZCgpOwogICAgICAgIH0KCiAgICAgICAgIyBDaGVjayBpZiB1bnRpbCBSZWxhdGVkRkFRQXJ0aWNsZXMgYm94IGlzIGRpc3BsYXllZAogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PiAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCIjRkFRUmVsYXRlZEFydGljbGVzOnZpc2libGUiKS5sZW5ndGgnCiAgICAgICAgKTsKCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAnVHlwZSBhIHN1YmplY3Qgb3IgdGV4dCB0byBnZXQgYSBsaXN0IG9mIGhlbHBmdWwgcmVzb3VyY2VzLicgKSA+IC0xLAogICAgICAgICAgICAiRm91bmQgaW5pdGlhbCBtZXNzYWdlIGZvciByZWxhdGVkIEZBUSBhcnRpY2xlIiwKICAgICAgICApOwoKICAgICAgICBteSAkU3ViamVjdFJhbmRvbSA9ICJTdWJqZWN0IiAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJFRleHRSYW5kb20gICAgPSAiVGV4dCIgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1N1YmplY3QiLCAnY3NzJyApLT5zZW5kX2tleXMoJFN1YmplY3RSYW5kb20pOwoKICAgICAgICAjIFNldCBib2R5IHRleHQgYW5kIGFkZCBhIHdoaXRlc3BhY2UgYXQgdGhlIGVuZCB0byB0cmlnZ2VyIHRoZSBBSkFYIHJlcXVlc3QgZm9yIHRoZSByZWxhdGVkIGZhcSBhcnRpY2xlLgogICAgICAgIHNsZWVwIDE7CiAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgiQ0tFZGl0b3JJbnN0YW5jZXMuUmljaFRleHQuc2V0RGF0YSgnJEZBUUFydGljbGVzWzFdLT57S2V5d29yZH0nKTsiKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gJ3JldHVybiBDS0VkaXRvckluc3RhbmNlcy5SaWNoVGV4dC5nZXREYXRhKCknICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjU3ViamVjdCIsICdjc3MnICktPnNlbmRfa2V5cygiICIpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1N1YmplY3QiLCAnY3NzJyApLT5zZW5kX2tleXMoIlxOe1UrRTAwNH0iKTsKCiAgICAgICAgIyBXYWl0IHRoYXQgdGhlIGhpbnQgaXMgbm8gbG9uZ2VyIHZpc2libGUuCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKAogICAgICAgICAgICBKYXZhU2NyaXB0ID0+ICdyZXR1cm4gdHlwZW9mKCQpID09PSAiZnVuY3Rpb24iICYmICEkKCIjRkFRUmVsYXRlZEFydGljbGVzIC5IaW50IikubGVuZ3RoJwogICAgICAgICk7CgogICAgICAgICMgV2FpdCBmb3IgYWpheCBjYWxsIGFmdGVyIGN1c3RvbWVyIHVzZXIgc2VsZWN0aW9uLgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PiAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAhJCgic3Bhbi5BSkFYTG9hZGVyOnZpc2libGUiKS5sZW5ndGgnCiAgICAgICAgKTsKCiAgICAgICAgIyBDaGVjayBpZiB0aGVyZSBpcyB0aGUgcmVsYXRlZCBGQVEgYXJ0aWNsZSBmb3IgdGhlIGluc2VydCB0ZXh0IGluIHRoZSBib2R5LgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9hW1xAdGl0bGU9JyRGQVFBcnRpY2xlc1sxXS0+e1RpdGxlfSddIiksCiAgICAgICAgICAgICJSZWxhdGVkIEZBUSBhcnRpY2xlIGZvciBib2R5ICckRkFRQXJ0aWNsZXNbMV0tPntLZXl3b3JkfScgaXMgZm91bmQgLSAkRkFRQXJ0aWNsZXNbMV0tPntUaXRsZX0iCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYVtjb250YWlucyhcQGhyZWYsICdBY3Rpb249Q3VzdG9tZXJGQVFab29tO0l0ZW1JRD0kRkFRQXJ0aWNsZXNbMV0tPntJRH0nKV0iKSwKICAgICAgICAgICAgIkxpbmsgZm9yIHJlbGF0ZWQgRkFRIGFydGljbGUgaXMgZm91bmQgLSAkRkFRQXJ0aWNsZXNbMF0tPntUaXRsZX0iCiAgICAgICAgKTsKCiAgICAgICAgIyBDaGFuZ2UgdGhlIGJvZHksIHRvIGhhdmUgYSB0ZXh0IHdoaWNoIHNob3VsZCBub3QgcmV0dXJuIHNvbWUgcmVsYXRlZCBmYXEgYXJ0aWNsZS4KICAgICAgICBzbGVlcCAxOwogICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoJ0NLRWRpdG9ySW5zdGFuY2VzLlJpY2hUZXh0LnNldERhdGEoKTsnKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNTdWJqZWN0IiwgJ2NzcycgKS0+c2VuZF9rZXlzKCdOb3RoaW5nJyk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjU3ViamVjdCIsICdjc3MnICktPnNlbmRfa2V5cygiICIpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1N1YmplY3QiLCAnY3NzJyApLT5zZW5kX2tleXMoIlxOe1UrRTAwNH0iKTsKCiAgICAgICAgIyBXYWl0IGZvciBBSkFYIGNhbGwgYWZ0ZXIgY3VzdG9tZXIgdXNlciBzZWxlY3Rpb24uCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKAogICAgICAgICAgICBKYXZhU2NyaXB0ID0+ICdyZXR1cm4gdHlwZW9mKCQpID09PSAiZnVuY3Rpb24iICYmICEkKCJzcGFuLkFKQVhMb2FkZXI6dmlzaWJsZSIpLmxlbmd0aCcKICAgICAgICApOwogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PiAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCIjRkFRUmVsYXRlZEFydGljbGVzIC5IaW50IikubGVuZ3RoJwogICAgICAgICk7CgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJ0ZvdW5kIG5vIGhlbHBmdWwgcmVzb3VyY2VzIGZvciB0aGUgc3ViamVjdCBhbmQgdGV4dC4nICkgPiAtMSwKICAgICAgICAgICAgIkZvdW5kIG1lc3NhZ2UgZm9yIG5vIHJlbGF0ZWQgRkFRIGFydGljbGUiLAogICAgICAgICk7CgogICAgICAgICMgVGVzdCBjYXNlIGZvciBidWcjMTI5MDAgKCBodHRwczovL2J1Z3Mub3RvYm8ub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjkwMCApLgogICAgICAgICMgQ3JlYXRlIG5ldyBjYXRlZ29yeSB3aGljaCBpcyBzdWJjYXRlZ29yeSBvZiBkZWZhdWx0ICdNaXNjJyBjYXRlZ29yeS4KICAgICAgICBteSAkUmFuZG9tSUQgICAgICA9ICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJFN1YkNhdGVnb3J5SUQgPSAkRkFRT2JqZWN0LT5DYXRlZ29yeUFkZCgKICAgICAgICAgICAgTmFtZSAgICAgPT4gJ1N1YkNhdGVnb3J5JyAuICRSYW5kb21JRCwKICAgICAgICAgICAgQ29tbWVudCAgPT4gJ1N1YkNhdGVnb3J5JywKICAgICAgICAgICAgUGFyZW50SUQgPT4gMSwKICAgICAgICAgICAgVmFsaWRJRCAgPT4gMSwKICAgICAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICApOwogICAgICAgIG15ICRHcm91cElEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyktPkdyb3VwTG9va3VwKAogICAgICAgICAgICBHcm91cCA9PiAndXNlcnMnLAogICAgICAgICk7CiAgICAgICAgJEZBUU9iamVjdC0+U2V0Q2F0ZWdvcnlHcm91cCgKICAgICAgICAgICAgQ2F0ZWdvcnlJRCA9PiAkU3ViQ2F0ZWdvcnlJRCwKICAgICAgICAgICAgR3JvdXBJRHMgICA9PiBbJEdyb3VwSURdLAogICAgICAgICAgICBVc2VySUQgICAgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgdHdvIEZBUSBhcnRpY2xlcyBpbiBNaXNjIGFuZCB0ZXN0IGNyZWF0ZWQgc3ViY2F0ZWdvcnkuCiAgICAgICAgbXkgQEFydGljbGVzID0gKAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUaXRsZSAgICAgID0+ICJNaXNjQXJ0aWNsZSAkUmFuZG9tSUQiLAogICAgICAgICAgICAgICAgQ2F0ZWdvcnlJRCA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUaXRsZSAgICAgID0+ICJTdWJDYXRlZ29yeUFydGljbGUgJFJhbmRvbUlEIiwKICAgICAgICAgICAgICAgIENhdGVnb3J5SUQgPT4gJFN1YkNhdGVnb3J5SUQsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgbXkgJEtleXdvcmQgPSAiS2V5d29yZCAkUmFuZG9tSUQiOwogICAgICAgIG15IEBSZWxhdGVkRkFRQXJ0aWNsZXM7CiAgICAgICAgZm9yIG15ICRUZXN0IChAQXJ0aWNsZXMpIHsKICAgICAgICAgICAgbXkgJEl0ZW1JRCA9ICRGQVFPYmplY3QtPkZBUUFkZCgKICAgICAgICAgICAgICAgIFRpdGxlICAgICAgID0+ICRUZXN0LT57VGl0bGV9LAogICAgICAgICAgICAgICAgQ2F0ZWdvcnlJRCAgPT4gJFRlc3QtPntDYXRlZ29yeUlEfSwKICAgICAgICAgICAgICAgIFN0YXRlSUQgICAgID0+IDMsCiAgICAgICAgICAgICAgICBMYW5ndWFnZUlEICA9PiAxLAogICAgICAgICAgICAgICAgS2V5d29yZHMgICAgPT4gJEtleXdvcmQsCiAgICAgICAgICAgICAgICBGaWVsZDEgICAgICA9PiAnU3ltcHRvbS4uLicsCiAgICAgICAgICAgICAgICBGaWVsZDIgICAgICA9PiAnUHJvYmxlbS4uLicsCiAgICAgICAgICAgICAgICBGaWVsZDMgICAgICA9PiAnU29sdXRpb24uLi4nLAogICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvaHRtbCcsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRJdGVtSUQsCiAgICAgICAgICAgICAgICAiRkFRIGFydGljbGUgaW4gY2F0ZWdvcnkgJFRlc3QtPntDYXRlZ29yeUlEfSBpcyBjcmVhdGVkIC0gJEl0ZW1JRCIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHB1c2ggQFJlbGF0ZWRGQVFBcnRpY2xlcywgewogICAgICAgICAgICAgICAgSUQgICAgPT4gJEl0ZW1JRCwKICAgICAgICAgICAgICAgIFRpdGxlID0+ICRUZXN0LT57VGl0bGV9LAogICAgICAgICAgICB9OwogICAgICAgIH0KCiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZFJlZnJlc2goKTsKCiAgICAgICAgIyBUeXBlIGluIHN1YmplY3Qga2V5d29yZCB0byBzaG93IHR3byBGQVEgYXJ0aWNsZXMgaW4gdGhlIHNpZGUgd2lkZ2V0IGhpbnQuCiAgICAgICAgIyBPbmUgZnJvbSAnTWlzYycgY2F0ZWdvcnkgYW5kIHNlY29uZCBvbmUgZnJvbSBzdWJjYXRlZ29yeSBvZiAnTWlzYycuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjU3ViamVjdCIsICdjc3MnICktPnNlbmRfa2V5cygkS2V5d29yZCk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjU3ViamVjdCIsICdjc3MnICktPnNlbmRfa2V5cygiXE57VStFMDA0fSIpOwoKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoCiAgICAgICAgICAgIEphdmFTY3JpcHQgPT4gJ3JldHVybiB0eXBlb2YoJCkgPT09ICJmdW5jdGlvbiIgJiYgISQoInNwYW4uQUpBWExvYWRlcjp2aXNpYmxlIikubGVuZ3RoJwogICAgICAgICk7CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKAogICAgICAgICAgICBKYXZhU2NyaXB0ID0+ICdyZXR1cm4gJCgiLkZBUU1pbmlMaXN0IGE6dmlzaWJsZSIpLmxlbmd0aDsnCiAgICAgICAgKTsKCiAgICAgICAgbXkgJENvdW50ID0gc2NhbGFyIEBSZWxhdGVkRkFRQXJ0aWNsZXM7CiAgICAgICAgZm9yIG15ICRDaGVjayAoQFJlbGF0ZWRGQVFBcnRpY2xlcykgewogICAgICAgICAgICAkQ291bnQtLTsKICAgICAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgicmV0dXJuIFwkKCcuRkFRTWluaUxpc3QgYTplcSgkQ291bnQpJykudGV4dCgpLnRyaW0oKTsiKSwKICAgICAgICAgICAgICAgICRDaGVjay0+e1RpdGxlfSwKICAgICAgICAgICAgICAgICJSZWxhdGVkIEZBUSBhcnRpY2xlIGZvciBzdWJqZWN0IGtleXdvcmQgJFJhbmRvbUlEIGlzIGZvdW5kIC0gJENoZWNrLT57VGl0bGV9IgogICAgICAgICAgICApOwoKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9hW2NvbnRhaW5zKFxAaHJlZiwgJ0FjdGlvbj1DdXN0b21lckZBUVpvb207SXRlbUlEPSRDaGVjay0+e0lEfScpXSIpLAogICAgICAgICAgICAgICAgIkxpbmsgZm9yIHJlbGF0ZWQgRkFRIGFydGljbGUgaXMgZm91bmQgLSAkQ2hlY2stPntUaXRsZX0iCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBteSAkU3VjY2VzczsKICAgICAgICBmb3IgbXkgJEZBUSAoIEBGQVFBcnRpY2xlcywgQFJlbGF0ZWRGQVFBcnRpY2xlcyApIHsKICAgICAgICAgICAgJFN1Y2Nlc3MgPSAkRkFRT2JqZWN0LT5GQVFEZWxldGUoCiAgICAgICAgICAgICAgICBJdGVtSUQgPT4gJEZBUS0+e0lEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAgICAgIkZBUSBpcyBkZWxldGVkIC0gJEZBUS0+e0lEfSIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIERlbGV0ZSB0ZXN0IGNyZWF0ZWQgc3ViY2F0ZWdvcnkuCiAgICAgICAgJFN1Y2Nlc3MgPSAkRkFRT2JqZWN0LT5DYXRlZ29yeURlbGV0ZSgKICAgICAgICAgICAgQ2F0ZWdvcnlJRCA9PiAkU3ViQ2F0ZWdvcnlJRCwKICAgICAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAiRkFRIGNhdGVnb3J5IElEICRTdWJDYXRlZ29yeUlEIGlzIGRlbGV0ZWQiLAogICAgICAgICk7CgogICAgICAgIGZvciBteSAkQ2FjaGUgKHF3KEZBUSBGQVFLZXl3b3JkQXJ0aWNsZUxpc3QpKSB7CiAgICAgICAgICAgICRDYWNoZU9iamVjdC0+Q2xlYW5VcCgKICAgICAgICAgICAgICAgIFR5cGUgPT4gJENhY2hlLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KKTsKCiRTZWxmLT5Eb25lVGVzdGluZygpOwo=</File>
        <File Location="scripts/test/Selenium/Public/PublicFAQExplorer.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKIyBTZXQgdXAgdGhlIHRlc3QgZHJpdmVyICRTZWxmIHdoZW4gd2UgYXJlIHJ1bm5pbmcgYXMgYSBzdGFuZGFsb25lIHNjcmlwdC4KdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6UmVnaXN0ZXJEcml2ZXI7CgpvdXIgJFNlbGY7CgojIGdldCBzZWxlbml1bSBvYmplY3QKbXkgJFNlbGVuaXVtID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpTZWxlbml1bScpOwoKJFNlbGVuaXVtLT5SdW5UZXN0KAogICAgc3ViIHsKCiAgICAgICAgIyBnZXQgaGVscGVyIG9iamVjdAogICAgICAgIG15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKICAgICAgICAjIGdldCBGQVEgb2JqZWN0CiAgICAgICAgbXkgJEZBUU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpGQVEnKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCBGQVFzCiAgICAgICAgbXkgQEl0ZW1JRHM7CiAgICAgICAgZm9yICggMSAuLiA1ICkgewogICAgICAgICAgICBteSAkRkFRVGl0bGUgPSAnRkFRICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgICAgICBteSAkSXRlbUlEICAgPSAkRkFRT2JqZWN0LT5GQVFBZGQoCiAgICAgICAgICAgICAgICBUaXRsZSAgICAgICA9PiAkRkFRVGl0bGUsCiAgICAgICAgICAgICAgICBDYXRlZ29yeUlEICA9PiAxLAogICAgICAgICAgICAgICAgU3RhdGVJRCAgICAgPT4gMywKICAgICAgICAgICAgICAgIExhbmd1YWdlSUQgID0+IDEsCiAgICAgICAgICAgICAgICBBcHByb3ZlZCAgICA9PiAxLAogICAgICAgICAgICAgICAgVmFsaWRJRCAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9odG1sJywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJEl0ZW1JRCwKICAgICAgICAgICAgICAgICJGQVEgaXMgY3JlYXRlZCAtICRJdGVtSUQiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgbXkgJUZBUSA9ICgKICAgICAgICAgICAgICAgIEl0ZW1JRCAgID0+ICRJdGVtSUQsCiAgICAgICAgICAgICAgICBGQVFUaXRsZSA9PiAkRkFRVGl0bGUsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBwdXNoIEBJdGVtSURzLCBcJUZBUTsKICAgICAgICB9CgogICAgICAgICMgZ2V0IHNjcmlwdCBhbGlhcwogICAgICAgIG15ICRTY3JpcHRBbGlhcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnU2NyaXB0QWxpYXMnKTsKCiAgICAgICAgIyBuYXZpZ2F0ZSB0byBQdWJsaWNGQVFFeHBsb3JlciBzY3JlZW4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfXB1YmxpYy5wbD9BY3Rpb249UHVibGljRkFRRXhwbG9yZXIiKTsKCiAgICAgICAgIyBjaGVjayBQdWJsaWNGQVFFeHBsb3JlciBzY3JlZW4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIiwgICAgICAgICAgICAgJ2NzcycgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIHRoZWFkIHRyIHRoIiwgJ2NzcycgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIHRib2R5IHRyIHRkIiwgJ2NzcycgKTsKCiAgICAgICAgIyB0ZXN0IGRhdGEgZm9yIGV4cGxvcmVyIHNjcmVlbgogICAgICAgIG15IEBUZXN0cyA9ICgKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU2NyZWVuRGF0YSA9PiAnRkFRIEV4cGxvcmVyJywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU2NyZWVuRGF0YSA9PiAnTGF0ZXN0IGNyZWF0ZWQgRkFRIGFydGljbGVzJywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU2NyZWVuRGF0YSA9PiAnTGF0ZXN0IHVwZGF0ZWQgRkFRIGFydGljbGVzJywKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICBmb3IgbXkgJFRlc3QgKEBUZXN0cykgewogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkVGVzdC0+e1NjcmVlbkRhdGF9ICkgPiAtMSwKICAgICAgICAgICAgICAgICIkVGVzdC0+e1NjcmVlbkRhdGF9IC0gZm91bmQiLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBjbGljayBvbiAnTWlzYycsIGdvIG9uIHN1YmNhdGVnb3J5IHNjcmVlbgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAnTWlzYycsICdsaW5rX3RleHQnICktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBvcmRlciBGQVEgaXRlbSBwZXIgRkFRSUQgYnkgRG93bgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoCiAgICAgICAgICAgICIke1NjcmlwdEFsaWFzfXB1YmxpYy5wbD9BY3Rpb249UHVibGljRkFRRXhwbG9yZXI7Q2F0ZWdvcnlJRD0xO1NvcnRCeT1GQVFJRDtPcmRlckJ5PURvd24iCiAgICAgICAgKTsKCiAgICAgICAgIyBjaGVjayBhbmQgZGVsZXRlIHRlc3QgY3JlYXRlZCBGQVFzCiAgICAgICAgZm9yIG15ICRGQVEgKEBJdGVtSURzKSB7CgogICAgICAgICAgICAjIGNoZWNrIGlmIHRoZXJlIGlzIHRlc3QgRkFRIG9uIHNjcmVlbgogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkRkFRLT57RkFRVGl0bGV9ICkgPiAtMSwKICAgICAgICAgICAgICAgICIkRkFRLT57RkFRVGl0bGV9IC0gZm91bmQiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkRkFRT2JqZWN0LT5GQVFEZWxldGUoCiAgICAgICAgICAgICAgICBJdGVtSUQgPT4gJEZBUS0+e0l0ZW1JRH0sCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgICAgICJGQVEgaXMgZGVsZXRlZCAtICRGQVEtPntGQVFUaXRsZX0iLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBtYWtlIHN1cmUgdGhlIGNhY2hlIGlzIGNvcnJlY3QKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+Q2xlYW5VcCggVHlwZSA9PiAiRkFRIiApOwogICAgfQopOwoKJFNlbGYtPkRvbmVUZXN0aW5nKCk7Cg==</File>
        <File Location="scripts/test/Selenium/Public/PublicFAQPrint.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKIyBTZXQgdXAgdGhlIHRlc3QgZHJpdmVyICRTZWxmIHdoZW4gd2UgYXJlIHJ1bm5pbmcgYXMgYSBzdGFuZGFsb25lIHNjcmlwdC4KdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6UmVnaXN0ZXJEcml2ZXI7CgpvdXIgJFNlbGY7CgojIGdldCBzZWxlbml1bSBvYmplY3QKbXkgJFNlbGVuaXVtID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpTZWxlbml1bScpOwoKaWYgKCAhJFNlbGVuaXVtLT57YnJvd3Nlcl9uYW1lfSB8fCAkU2VsZW5pdW0tPnticm93c2VyX25hbWV9IG5lICdmaXJlZm94JyApIHsKICAgICRTZWxmLT5UcnVlKAogICAgICAgIDEsCiAgICAgICAgJ1BERiB0ZXN0IGN1cnJlbnRseSBzdXBwb3J0cyBGaXJlZm94IG9ubHksIHNraXBwaW5nIHRlc3QnCiAgICApOwogICAgIyNyZXR1cm4gMTsKfQplbHNlIHsKICAgICRTZWxlbml1bS0+UnVuVGVzdCgKICAgICAgICBzdWIgewoKICAgICAgICAgICAgIyBnZXQgaGVscGVyIG9iamVjdAogICAgICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgICAgICMgZ2V0IEZBUSBvYmplY3QKICAgICAgICAgICAgbXkgJEZBUU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpGQVEnKTsKCiAgICAgICAgICAgICMgY3JlYXRlIHRlc3QgRkFRCiAgICAgICAgICAgIG15ICRGQVFUaXRsZSAgICA9ICdGQVEgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgICAgIG15ICRGQVFTeW1wdG9tICA9ICdTZWxlbml1bSBTeW1wdG9tJzsKICAgICAgICAgICAgbXkgJEZBUVByb2JsZW0gID0gJ1NlbGVuaXVtIFByb2JsZW0nOwogICAgICAgICAgICBteSAkRkFRU29sdXRpb24gPSAnU2VsZW5pdW0gU29sdXRpb24nOwoKICAgICAgICAgICAgbXkgJEl0ZW1JRCA9ICRGQVFPYmplY3QtPkZBUUFkZCgKICAgICAgICAgICAgICAgIFRpdGxlICAgICAgID0+ICRGQVFUaXRsZSwKICAgICAgICAgICAgICAgIENhdGVnb3J5SUQgID0+IDEsCiAgICAgICAgICAgICAgICBTdGF0ZUlEICAgICA9PiAzLAogICAgICAgICAgICAgICAgTGFuZ3VhZ2VJRCAgPT4gMSwKICAgICAgICAgICAgICAgIEZpZWxkMSAgICAgID0+ICRGQVFTeW1wdG9tLAogICAgICAgICAgICAgICAgRmllbGQyICAgICAgPT4gJEZBUVByb2JsZW0sCiAgICAgICAgICAgICAgICBGaWVsZDMgICAgICA9PiAkRkFRU29sdXRpb24sCiAgICAgICAgICAgICAgICBBcHByb3ZlZCAgICA9PiAxLAogICAgICAgICAgICAgICAgVmFsaWRJRCAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9odG1sJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkSXRlbUlELAogICAgICAgICAgICAgICAgIkZBUSBpcyBjcmVhdGVkIC0gJEl0ZW1JRCIsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGdldCBzY3JpcHQgYWxpYXMKICAgICAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAgICAgIyBuYXZpZ2F0ZSB0byBQdWJsaWNGQVFQcmludCBzY3JlZW4gb2YgY3JlYXRlZCB0ZXN0IEZBUQogICAgICAgICAgICAkU2VsZW5pdW0tPmdldCgiJHtTY3JpcHRBbGlhc31wdWJsaWMucGw/QWN0aW9uPVB1YmxpY0ZBUVByaW50O0l0ZW1JRD0kSXRlbUlEIik7CgogICAgICAgICAgICAjIHdhaXQgdW50aWwgcHJpbnQgc2NyZWVuIGlzIGxvYWRlZAogICAgICAgICAgICBBQ1RJVkVTTEVFUDoKICAgICAgICAgICAgZm9yIG15ICRTZWNvbmQgKCAxIC4uIDIwICkgewogICAgICAgICAgICAgICAgaWYgKCBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJEZBUVNvbHV0aW9uICkgPiAtMSwgKSB7CiAgICAgICAgICAgICAgICAgICAgbGFzdCBBQ1RJVkVTTEVFUDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHNsZWVwIDE7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgdGVzdCBwYXJhbXMKICAgICAgICAgICAgbXkgQFRlc3RzID0gKAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEZBUURhdGEgPT4gJEZBUVN5bXB0b20sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEZBUURhdGEgPT4gJEZBUVByb2JsZW0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEZBUURhdGEgPT4gJEZBUVNvbHV0aW9uLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgY2hlY2sgZm9yIHRlc3QgY3JlYXRlZCBGQVEgcHJpbnQgdmFsdWVzCiAgICAgICAgICAgIGZvciBteSAkVGVzdCAoQFRlc3RzKSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJFRlc3QtPntGQVFEYXRhfSApID4gLTEsCiAgICAgICAgICAgICAgICAgICAgIiRUZXN0LT57RkFRRGF0YX0gLSBmb3VuZCBvbiBwcmludCBzY3JlZW4iLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBkZWxldGUgdGVzdCBjcmVhdGVkIEZBUQogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRGQVFPYmplY3QtPkZBUURlbGV0ZSgKICAgICAgICAgICAgICAgIEl0ZW1JRCA9PiAkSXRlbUlELAogICAgICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICAgICAiRkFRIGlzIGRlbGV0ZWQgLSAkSXRlbUlEIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgbWFrZSBzdXJlIHRoZSBjYWNoZSBpcyBjb3JyZWN0CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKCBUeXBlID0+ICJGQVEiICk7CiAgICAgICAgfQoKICAgICk7Cn0KCiRTZWxmLT5Eb25lVGVzdGluZygpOwo=</File>
        <File Location="scripts/test/Selenium/Public/PublicFAQRSS.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKIyBTZXQgdXAgdGhlIHRlc3QgZHJpdmVyICRTZWxmIHdoZW4gd2UgYXJlIHJ1bm5pbmcgYXMgYSBzdGFuZGFsb25lIHNjcmlwdC4KdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6UmVnaXN0ZXJEcml2ZXI7CgpvdXIgJFNlbGY7CgojIGdldCBzZWxlbml1bSBvYmplY3QKbXkgJFNlbGVuaXVtID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpTZWxlbml1bScpOwoKJFNlbGVuaXVtLT5SdW5UZXN0KAogICAgc3ViIHsKCiAgICAgICAgIyBnZXQgaGVscGVyIG9iamVjdAogICAgICAgIG15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKICAgICAgICAjIGdldCBGQVEgb2JqZWN0CiAgICAgICAgbXkgJEZBUU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpGQVEnKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCBGQVEKICAgICAgICBteSAkRkFRVGl0bGUgPSAnRkFRICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgIG15ICRJdGVtSUQgICA9ICRGQVFPYmplY3QtPkZBUUFkZCgKICAgICAgICAgICAgVGl0bGUgICAgICAgPT4gJEZBUVRpdGxlLAogICAgICAgICAgICBDYXRlZ29yeUlEICA9PiAxLAogICAgICAgICAgICBTdGF0ZUlEICAgICA9PiAzLAogICAgICAgICAgICBMYW5ndWFnZUlEICA9PiAxLAogICAgICAgICAgICBBcHByb3ZlZCAgICA9PiAxLAogICAgICAgICAgICBWYWxpZElEICAgICA9PiAxLAogICAgICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9odG1sJywKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkSXRlbUlELAogICAgICAgICAgICAiRkFRIGlzIGNyZWF0ZWQgLSAkSXRlbUlEIiwKICAgICAgICApOwoKICAgICAgICAjIGdldCBzY3JpcHQgYWxpYXMKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICMgbmF2aWdhdGUgdG8gUHVibGljRkFRUlNTIGNyZWF0ZWQgc2NyZWVuCiAgICAgICAgJFNlbGVuaXVtLT5nZXQoIiR7U2NyaXB0QWxpYXN9cHVibGljLnBsP0FjdGlvbj1QdWJsaWNGQVFSU1M7VHlwZT1DcmVhdGVkIik7CgogICAgICAgICMgdmVyaWZ5IEZBUVJTUyBjcmVhdGVkIHNjcmVlbgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJ0ZBUSBBcnRpY2xlcyAobmV3IGNyZWF0ZWQpJyApID4gLTEsCiAgICAgICAgICAgICJGQVFSU1MgY3JlYXRlZCB0aXRsZSBmb3VuZCAtIGZvdW5kIiwKICAgICAgICApOwoKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRGQVFUaXRsZSApID4gLTEsCiAgICAgICAgICAgICIkRkFRVGl0bGUgLSBmb3VuZCIsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICJBY3Rpb249UHVibGljRkFRWm9vbTtJdGVtSUQ9JEl0ZW1JRCIgKSA+IC0xLAogICAgICAgICAgICAiRkFRIGxpbmsgLSBmb3VuZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBuYXZpZ2F0ZSB0byBQdWJsaWNGQVFSU1MgY2hhbmdlZCBzY3JlZW4KICAgICAgICAkU2VsZW5pdW0tPmdldCgiJHtTY3JpcHRBbGlhc31wdWJsaWMucGw/QWN0aW9uPVB1YmxpY0ZBUVJTUztUeXBlPUNoYW5nZWQiKTsKCiAgICAgICAgIyB2ZXJpZnkgRkFRUlNTIGNoYW5nZWQgc2NyZWVuCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAnRkFRIEFydGljbGVzIChyZWNlbnRseSBjaGFuZ2VkKScgKSA+IC0xLAogICAgICAgICAgICAiRkFRUlNTIGNoYW5nZWQgdGl0bGUgZm91bmQgLSBmb3VuZCIsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRGQVFUaXRsZSApID4gLTEsCiAgICAgICAgICAgICIkRkFRVGl0bGUgLSBmb3VuZCIsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICJBY3Rpb249UHVibGljRkFRWm9vbTtJdGVtSUQ9JEl0ZW1JRCIgKSA+IC0xLAogICAgICAgICAgICAiRkFRIGxpbmsgLSBmb3VuZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBkZWxldGUgdGVzdCBjcmVhdGVkIEZBUQogICAgICAgIG15ICRTdWNjZXNzID0gJEZBUU9iamVjdC0+RkFRRGVsZXRlKAogICAgICAgICAgICBJdGVtSUQgPT4gJEl0ZW1JRCwKICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICJGQVEgaXMgZGVsZXRlZCAtICRJdGVtSUQiLAogICAgICAgICk7CgogICAgICAgICMgbWFrZSBzdXJlIHRoZSBjYWNoZSBpcyBjb3JyZWN0CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoIFR5cGUgPT4gIkZBUSIgKTsKICAgIH0KKTsKCiRTZWxmLT5Eb25lVGVzdGluZygpOwo=</File>
        <File Location="scripts/test/Selenium/Public/PublicFAQSearch.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKIyBTZXQgdXAgdGhlIHRlc3QgZHJpdmVyICRTZWxmIHdoZW4gd2UgYXJlIHJ1bm5pbmcgYXMgYSBzdGFuZGFsb25lIHNjcmlwdC4KdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6UmVnaXN0ZXJEcml2ZXI7CgpvdXIgJFNlbGY7CgojIGdldCBzZWxlbml1bSBvYmplY3QKbXkgJFNlbGVuaXVtID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpTZWxlbml1bScpOwoKJFNlbGVuaXVtLT5SdW5UZXN0KAogICAgc3ViIHsKCiAgICAgICAgIyBnZXQgaGVscGVyIG9iamVjdAogICAgICAgIG15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKICAgICAgICAjIGdldCBGQVEgb2JqZWN0CiAgICAgICAgbXkgJEZBUU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpGQVEnKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCBGQVFzCiAgICAgICAgbXkgQEZBUVNlYXJjaDsKICAgICAgICBmb3IgbXkgJFRpdGxlIChxdyggRkFRU2VhcmNoIEZBUUNoYW5nZVNlYXJjaCApKSB7CgogICAgICAgICAgICAjIGFkZCB0ZXN0IEZBUQogICAgICAgICAgICBteSAkRkFRVGl0bGUgPSAkVGl0bGUgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgICAgICBteSAkSXRlbUlEICAgPSAkRkFRT2JqZWN0LT5GQVFBZGQoCiAgICAgICAgICAgICAgICBUaXRsZSAgICAgICA9PiAkRkFRVGl0bGUsCiAgICAgICAgICAgICAgICBDYXRlZ29yeUlEICA9PiAxLAogICAgICAgICAgICAgICAgU3RhdGVJRCAgICAgPT4gMywKICAgICAgICAgICAgICAgIExhbmd1YWdlSUQgID0+IDEsCiAgICAgICAgICAgICAgICBBcHByb3ZlZCAgICA9PiAxLAogICAgICAgICAgICAgICAgVmFsaWRJRCAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9odG1sJywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJEl0ZW1JRCwKICAgICAgICAgICAgICAgICJGQVEgaXMgY3JlYXRlZCAtICRJdGVtSUQiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgbXkgJUZBUSA9ICgKICAgICAgICAgICAgICAgIEl0ZW1JRCAgID0+ICRJdGVtSUQsCiAgICAgICAgICAgICAgICBGQVFUaXRsZSA9PiAkRkFRVGl0bGUsCiAgICAgICAgICAgICAgICBUeXBlICAgICA9PiAkVGl0bGUsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBwdXNoIEBGQVFTZWFyY2gsIFwlRkFROwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgc2NyaXB0IGFsaWFzCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAjIG5hdmlnYXRlIHRvIFB1YmxpY0ZBUVNlYXJjaCBmb3JtCiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgiJHtTY3JpcHRBbGlhc31wdWJsaWMucGw/QWN0aW9uPVB1YmxpY0ZBUVNlYXJjaCIpOwoKICAgICAgICAjIGNoZWNrIHRpY2tldCBzZWFyY2ggcGFnZQogICAgICAgIGZvciBteSAkSUQgKAogICAgICAgICAgICBxdyhOdW1iZXIgRnVsbFRleHQgVGl0bGUgS2V5d29yZCBMYW5ndWFnZUlEcyBDYXRlZ29yeUlEcyBOb1ZvdGVTZXQgVm90ZVBvaW50CiAgICAgICAgICAgIFZvdGVTZWFyY2hUeXBlIE5vUmF0ZVNldCBSYXRlUG9pbnQgUmF0ZVNlYXJjaFR5cGUgUmF0ZVNlYXJjaCBOb1RpbWVTZXQgRGF0ZSBEYXRlUmFuZ2UKICAgICAgICAgICAgSXRlbUNyZWF0ZVRpbWVQb2ludFN0YXJ0IEl0ZW1DcmVhdGVUaW1lUG9pbnQgSXRlbUNyZWF0ZVRpbWVQb2ludEZvcm1hdCBJdGVtQ3JlYXRlVGltZVN0YXJ0TW9udGgKICAgICAgICAgICAgSXRlbUNyZWF0ZVRpbWVTdGFydERheSBJdGVtQ3JlYXRlVGltZVN0YXJ0WWVhciBJdGVtQ3JlYXRlVGltZVN0b3BNb250aCBJdGVtQ3JlYXRlVGltZVN0b3BEYXkKICAgICAgICAgICAgSXRlbUNyZWF0ZVRpbWVTdG9wWWVhciBTdWJtaXQgUmVzdWx0Rm9ybSkKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiMkSUQiLCAnY3NzJyApOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZW5hYmxlZCgpOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZGlzcGxheWVkKCk7CiAgICAgICAgfQoKICAgICAgICAjIHNlYXJjaCBGQVEgYnkgdGl0bGUgYW5kIHJ1biBpdAogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1RpdGxlIiwgICdjc3MnICktPnNlbmRfa2V5cygnRkFRKicpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1N1Ym1pdCIsICdjc3MnICktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBjaGVjayBQdWJsaWNGQVFTZWFyY2ggcmVzdWx0IHNjcmVlbgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUiLCAgICAgICAgICAgICAnY3NzJyApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUgdGhlYWQgdHIgdGgiLCAnY3NzJyApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUgdGJvZHkgdHIgdGQiLCAnY3NzJyApOwoKICAgICAgICAjIGNoZWNrIHRlc3QgRkFRcyBzZWFyY2hlZCBieSAnRkFRKicKICAgICAgICAjIGFsbCBGQVFzIHdpbGwgYmUgaW4gYSBzZWFyY2ggcmVzdWx0CiAgICAgICAgZm9yIG15ICRGQVEgKEBGQVFTZWFyY2gpIHsKCiAgICAgICAgICAgICMgY2hlY2sgaWYgdGhlcmUgaXMgdGVzdCBGQVEgb24gc2NyZWVuCiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRGQVEtPntGQVFUaXRsZX0gKSA+IC0xLAogICAgICAgICAgICAgICAgIiRGQVEtPntGQVFUaXRsZX0gLSBmb3VuZCIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrICdDaGFuZ2Ugc2VhcmNoIG9wdGlvbnMnIHNjcmVlbgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2FbY29udGFpbnMoXEBocmVmLCBcJ3B1YmxpYy5wbD9BY3Rpb249UHVibGljRkFRU2VhcmNoJyApXSIpLT5WZXJpZmllZENsaWNrKCk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjVGl0bGUiLCAgJ2NzcycgKS0+Y2xlYXIoKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNUaXRsZSIsICAnY3NzJyApLT5zZW5kX2tleXMoJ0ZBUUNoYW5nZVNlYXJjaConKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNTdWJtaXQiLCAnY3NzJyApLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgY2hlY2sgdGVzdCBGQVFzIHNlYXJjaGVkIGJ5ICdGQVFDaGFuZ2VTZWFyY2gqJwogICAgICAgIGZvciBteSAkRkFRIChARkFRU2VhcmNoKSB7CgogICAgICAgICAgICBpZiAoICRGQVEtPntUeXBlfSBlcSAnRkFRQ2hhbmdlU2VhcmNoJyApIHsKCiAgICAgICAgICAgICAgICAjIGNoZWNrIGlmIHRoZXJlIGlzIHRlc3QgRkFRQ2hhbmdlU2VhcmNoKiBvbiBzY3JlZW4KICAgICAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkRkFRLT57RkFRVGl0bGV9ICkgPiAtMSwKICAgICAgICAgICAgICAgICAgICAiJEZBUS0+e0ZBUVRpdGxlfSAtIGZvdW5kIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAgICAgIyBjaGVjayBpZiB0aGVyZSBpcyBubyB0ZXN0IEZBUVNlYXJjaCogb24gc2NyZWVuCiAgICAgICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJEZBUS0+e0ZBUVRpdGxlfSApID09IC0xLAogICAgICAgICAgICAgICAgICAgICIkRkFRLT57RkFRVGl0bGV9IC0gbm90IGZvdW5kIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgY2hlY2sgJ0NoYW5nZSBzZWFyY2ggb3B0aW9ucycgYnV0dG9uIGFnYWluCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYVtjb250YWlucyhcQGhyZWYsIFwncHVibGljLnBsP0FjdGlvbj1QdWJsaWNGQVFTZWFyY2gnICldIiktPlZlcmlmaWVkQ2xpY2soKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNUaXRsZSIsICAnY3NzJyApLT5jbGVhcigpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1RpdGxlIiwgICdjc3MnICktPnNlbmRfa2V5cyggJEhlbHBlci0+R2V0UmFuZG9tSUQoKSApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1N1Ym1pdCIsICdjc3MnICktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBjaGVjayBubyBkYXRhIG1lc3NhZ2UKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNFbXB0eU1lc3NhZ2UiLCAnY3NzJyApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJ05vIEZBUSBkYXRhIGZvdW5kLicgKSA+IC0xLAogICAgICAgICAgICAiTm8gRkFRIGRhdGEgZm91bmQuIiwKICAgICAgICApOwoKICAgICAgICAjIGRlbGV0ZSB0ZXN0IGNyZWF0ZWQgRkFRcwogICAgICAgIGZvciBteSAkRGVsZXRlIChARkFRU2VhcmNoKSB7CiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJEZBUU9iamVjdC0+RkFRRGVsZXRlKAogICAgICAgICAgICAgICAgSXRlbUlEID0+ICREZWxldGUtPntJdGVtSUR9LAogICAgICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICAgICAiRkFRIGlzIGRlbGV0ZWQgLSAkRGVsZXRlLT57RkFRVGl0bGV9IiwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgbWFrZSBzdXJlIHRoZSBjYWNoZSBpcyBjb3JyZWN0CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoIFR5cGUgPT4gIkZBUSIgKTsKICAgIH0KKTsKCiRTZWxmLT5Eb25lVGVzdGluZygpOwo=</File>
        <File Location="scripts/test/Selenium/Public/PublicFAQZoom.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKIyBTZXQgdXAgdGhlIHRlc3QgZHJpdmVyICRTZWxmIHdoZW4gd2UgYXJlIHJ1bm5pbmcgYXMgYSBzdGFuZGFsb25lIHNjcmlwdC4KdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6UmVnaXN0ZXJEcml2ZXI7CgpvdXIgJFNlbGY7CgojIGdldCBzZWxlbml1bSBvYmplY3QKbXkgJFNlbGVuaXVtID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpTZWxlbml1bScpOwoKJFNlbGVuaXVtLT5SdW5UZXN0KAogICAgc3ViIHsKCiAgICAgICAgIyBnZXQgaGVscGVyIG9iamVjdAogICAgICAgIG15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKICAgICAgICAjIGdldCBGQVEgb2JqZWN0CiAgICAgICAgbXkgJEZBUU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpGQVEnKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCBGQVEKICAgICAgICAjIHRlc3QgcGFyYW1zCiAgICAgICAgbXkgJEZBUVRpdGxlICAgID0gJ0ZBUSAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkRkFRU3ltcHRvbSAgPSAnU2VsZW5pdW0gU3ltcHRvbSc7CiAgICAgICAgbXkgJEZBUVByb2JsZW0gID0gJ1NlbGVuaXVtIFByb2JsZW0nOwogICAgICAgIG15ICRGQVFTb2x1dGlvbiA9ICdTZWxlbml1bSBTb2x1dGlvbic7CgogICAgICAgIG15ICRJdGVtSUQgPSAkRkFRT2JqZWN0LT5GQVFBZGQoCiAgICAgICAgICAgIFRpdGxlICAgICAgID0+ICRGQVFUaXRsZSwKICAgICAgICAgICAgQ2F0ZWdvcnlJRCAgPT4gMSwKICAgICAgICAgICAgU3RhdGVJRCAgICAgPT4gMywKICAgICAgICAgICAgTGFuZ3VhZ2VJRCAgPT4gMSwKICAgICAgICAgICAgS2V5d29yZHMgICAgPT4gJ1NlbGVuaXVtS2V5d29yZHMnLAogICAgICAgICAgICBGaWVsZDEgICAgICA9PiAkRkFRU3ltcHRvbSwKICAgICAgICAgICAgRmllbGQyICAgICAgPT4gJEZBUVByb2JsZW0sCiAgICAgICAgICAgIEZpZWxkMyAgICAgID0+ICRGQVFTb2x1dGlvbiwKICAgICAgICAgICAgQXBwcm92ZWQgICAgPT4gMSwKICAgICAgICAgICAgVmFsaWRJRCAgICAgPT4gMSwKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvaHRtbCcsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJEl0ZW1JRCwKICAgICAgICAgICAgIkZBUSBpcyBjcmVhdGVkIC0gJEl0ZW1JRCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgc2NyaXB0IGFsaWFzCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAjIG5hdmlnYXRlIHRvIFB1YmxpY0ZBUVpvb20gc2NyZWVuIG9mIGNyZWF0ZWQgdGVzdCBGQVEKICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfXB1YmxpYy5wbD9BY3Rpb249UHVibGljRkFRWm9vbTtJdGVtSUQ9JEl0ZW1JRCIpOwoKICAgICAgICAjIGNoZWNrIHBhZ2UKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICdGQVEgSW5mb3JtYXRpb24nICkgPiAtMSwKICAgICAgICAgICAgIkZBUSBkYXRhIGlzIGZvdW5kIG9uIHNjcmVlbiAtIEZBUSBJbmZvcm1hdGlvbiIsCiAgICAgICAgKTsKCiAgICAgICAgIyB2ZXJpZnkgdGVzdCBGQVEgaXMgY3JlYXRlZAogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJEZBUVRpdGxlICkgPiAtMSwKICAgICAgICAgICAgIiRGQVFUaXRsZSAtIGZvdW5kIiwKICAgICAgICApOwoKICAgICAgICBteSBAVGVzdHMgPSAoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmcmFtZSAgPT4gJ0lmcmFtZUZBUUZpZWxkMScsCiAgICAgICAgICAgICAgICBGQVFEYXRhID0+ICRGQVFTeW1wdG9tLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZnJhbWUgID0+ICdJZnJhbWVGQVFGaWVsZDInLAogICAgICAgICAgICAgICAgRkFRRGF0YSA9PiAkRkFRUHJvYmxlbSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWZyYW1lICA9PiAnSWZyYW1lRkFRRmllbGQzJywKICAgICAgICAgICAgICAgIEZBUURhdGEgPT4gJEZBUVNvbHV0aW9uLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgdGVzdCBjcmVhdGVkIEZBUSB2YWx1ZXMKICAgICAgICBmb3IgbXkgJFRlc3QgKEBUZXN0cykgewoKICAgICAgICAgICAgIyBzd2l0Y2ggdG8gRkFRIHN5bXB0b20gaWZyYW1lIGFuZCB2ZXJpZnkgaXRzIHZhbHVlcwogICAgICAgICAgICAkU2VsZW5pdW0tPlN3aXRjaFRvRnJhbWUoCiAgICAgICAgICAgICAgICBGcmFtZVNlbGVjdG9yID0+ICIjJFRlc3QtPntJZnJhbWV9IiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgV2FpdCB0byBzd2l0Y2ggb24gaWZyYW1lLgogICAgICAgICAgICBzbGVlcCAyOwoKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJFRlc3QtPntGQVFEYXRhfSApID4gLTEsCiAgICAgICAgICAgICAgICAiJFRlc3QtPntGQVFEYXRhfSAtIGZvdW5kIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFNlbGVuaXVtLT5zd2l0Y2hfdG9fZnJhbWUoKTsKICAgICAgICB9CgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJ1NlbGVuaXVtS2V5d29yZHMnICkgPiAtMSwKICAgICAgICAgICAgIkZBUSAnU2VsZW5pdW1LZXl3b3JkcycgdmFsdWUgLSBmb3VuZCIsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICdwdWJsaWMgKGFsbCknICkgPiAtMSwKICAgICAgICAgICAgIkZBUSBzdGF0ZSB2YWx1ZSAtIGZvdW5kIiwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJzAgb3V0IG9mIDUnICkgPiAtMSwKICAgICAgICAgICAgIkZBUSBkZWZhdWx0IHZvdGUgdmFsdWUgLSBmb3VuZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBkZWxldGUgdGVzdCBjcmVhdGVkIEZBUQogICAgICAgIG15ICRTdWNjZXNzID0gJEZBUU9iamVjdC0+RkFRRGVsZXRlKAogICAgICAgICAgICBJdGVtSUQgPT4gJEl0ZW1JRCwKICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICJGQVEgaXMgZGVsZXRlZCAtICRJdGVtSUQiLAogICAgICAgICk7CgogICAgICAgICMgbWFrZSBzdXJlIHRoZSBjYWNoZSBpcyBjb3JyZWN0CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoIFR5cGUgPT4gIkZBUSIgKTsKICAgIH0KCik7CgokU2VsZi0+RG9uZVRlc3RpbmcoKTsK</File>
        <File Location="scripts/test/Selenium/Output/Dashboard/FAQ.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKIyBTZXQgdXAgdGhlIHRlc3QgZHJpdmVyICRTZWxmIHdoZW4gd2UgYXJlIHJ1bm5pbmcgYXMgYSBzdGFuZGFsb25lIHNjcmlwdC4KdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6UmVnaXN0ZXJEcml2ZXI7CgpvdXIgJFNlbGY7CgpteSAkU2VsZW5pdW0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OlNlbGVuaXVtJyk7CgokU2VsZW5pdW0tPlJ1blRlc3QoCiAgICBzdWIgewoKICAgICAgICBteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCiAgICAgICAgIyBTZXQgRkFRIGRhc2hib2FyZCBTeXNDb25maWcgcGFyYW0uCiAgICAgICAgbXkgQEZBUURhc2hib2FyZCA9ICgKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSA9PiAnRGFzaGJvYXJkQmFja2VuZCMjIzAzOTgtRkFRLUxhc3RDaGFuZ2UnLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lID0+ICdEYXNoYm9hcmRCYWNrZW5kIyMjMDM5OS1GQVEtTGFzdENyZWF0ZScsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBTZXQgRkFRIGRhc2hib2FyZCBtb2R1bGVzIG9uIGRlZmF1bHQgc2V0dGluZ3MuCiAgICAgICAgbXkgJFN5c0NvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTeXNDb25maWcnKTsKICAgICAgICBmb3IgbXkgJERlZmF1bHRTeXNDb25maWcgKEBGQVFEYXNoYm9hcmQpIHsKCiAgICAgICAgICAgIG15ICVTZXR0aW5nID0gJFN5c0NvbmZpZ09iamVjdC0+U2V0dGluZ0dldCgKICAgICAgICAgICAgICAgIE5hbWUgICAgPT4gJERlZmF1bHRTeXNDb25maWctPntOYW1lfSwKICAgICAgICAgICAgICAgIERlZmF1bHQgPT4gMSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICREZWZhdWx0U3lzQ29uZmlnLT57VmFsdWV9ID0gJFNldHRpbmd7RWZmZWN0aXZlVmFsdWV9OwoKICAgICAgICAgICAgJEhlbHBlci0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgICAgICAgICBLZXkgICA9PiAkRGVmYXVsdFN5c0NvbmZpZy0+e05hbWV9LAogICAgICAgICAgICAgICAgVmFsdWUgPT4gJERlZmF1bHRTeXNDb25maWctPntWYWx1ZX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIENyZWF0ZSB0ZXN0IEZBUS4KICAgICAgICBteSAkRkFRT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkZBUScpOwogICAgICAgIG15ICRGQVFUaXRsZSAgPSAnRkFRICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgIG15ICRJdGVtSUQgICAgPSAkRkFRT2JqZWN0LT5GQVFBZGQoCiAgICAgICAgICAgIFRpdGxlICAgICAgID0+ICRGQVFUaXRsZSwKICAgICAgICAgICAgQ2F0ZWdvcnlJRCAgPT4gMSwKICAgICAgICAgICAgU3RhdGVJRCAgICAgPT4gMiwKICAgICAgICAgICAgTGFuZ3VhZ2VJRCAgPT4gMSwKICAgICAgICAgICAgVmFsaWRJRCAgICAgPT4gMSwKICAgICAgICAgICAgQXBwcm92ZWQgICAgPT4gMSwKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvaHRtbCcsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJEl0ZW1JRCwKICAgICAgICAgICAgIlRlc3QgRkFRIGl0ZW0gaXMgY3JlYXRlZCAtIElEICRJdGVtSUQiLAogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIHRlc3QgdXNlciBhbmQgbG9naW4uCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ3VzZXJzJyBdLAogICAgICAgICkgfHwgZGllICJEaWQgbm90IGdldCB0ZXN0IHVzZXIiOwoKICAgICAgICAkU2VsZW5pdW0tPkxvZ2luKAogICAgICAgICAgICBUeXBlICAgICA9PiAnQWdlbnQnLAogICAgICAgICAgICBVc2VyICAgICA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyBHZXQgc2NyaXB0IGFsaWFzLgogICAgICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwogICAgICAgIG15ICRTY3JpcHRBbGlhcyAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgIGZvciBteSAkVGVzdCAoQEZBUURhc2hib2FyZCkgewoKICAgICAgICAgICAgIyBEaXNhYmxlIGFsbCBkYXNoYm9hcmQgcGx1Zy1pbnMuCiAgICAgICAgICAgIG15ICRDb25maWcgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0Rhc2hib2FyZEJhY2tlbmQnKTsKICAgICAgICAgICAgJEhlbHBlci0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgICAgIFZhbGlkID0+IDAsCiAgICAgICAgICAgICAgICBLZXkgICA9PiAnRGFzaGJvYXJkQmFja2VuZCcsCiAgICAgICAgICAgICAgICBWYWx1ZSA9PiBcJSRDb25maWcsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIEVuYWJsZSBGQVEgZGFzaGJvYXJkLgogICAgICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICAgICAgICAgIEtleSAgID0+ICRUZXN0LT57TmFtZX0sCiAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkVGVzdC0+e1ZhbHVlfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgTmF2aWdhdGUgdG8gZGFzaGJvYXJkIHNjcmVlbi4KICAgICAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnREYXNoYm9hcmQiKTsKCiAgICAgICAgICAgICMgQ2hlY2sgdGl0bGUgZm9yIHRlc3QgY3JlYXRlZCBGQVEuCiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRGQVFUaXRsZSApID4gLTEsCiAgICAgICAgICAgICAgICAiVGVzdCBGQVEgdGl0bGUgaXMgZm91bmQiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBDaGVjayBsaW5rIGZvciB0ZXN0IGNyZWF0ZWQgRkFRLgogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRGQVFab29tO0l0ZW1JRD0kSXRlbUlEIiApID4gLTEsCiAgICAgICAgICAgICAgICAiVGVzdCBGQVEgbGluayBpcyBmb3VuZCIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIERlbGV0ZSB0ZXN0IGNyZWF0ZWQgRkFRLgogICAgICAgIG15ICRTdWNjZXNzID0gJEZBUU9iamVjdC0+RkFRRGVsZXRlKAogICAgICAgICAgICBJdGVtSUQgPT4gJEl0ZW1JRCwKICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICJUZXN0IEZBUSBpdGVtIGlzIGRlbGV0ZWQgLSBJRCAkSXRlbUlEIiwKICAgICAgICApOwoKICAgICAgICAjIE1ha2Ugc3VyZSB0aGUgY2FjaGUgaXMgY29ycmVjdC4KICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+Q2xlYW5VcCggVHlwZSA9PiAiRkFRIiApOwogICAgfQopOwoKJFNlbGYtPkRvbmVUZXN0aW5nKCk7Cg==</File>
        <File Location="scripts/test/Selenium/Output/FAQJournalOverview/Small.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKIyBTZXQgdXAgdGhlIHRlc3QgZHJpdmVyICRTZWxmIHdoZW4gd2UgYXJlIHJ1bm5pbmcgYXMgYSBzdGFuZGFsb25lIHNjcmlwdC4KdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6UmVnaXN0ZXJEcml2ZXI7CgpvdXIgJFNlbGY7CgojIGdldCBzZWxlbml1bSBvYmplY3QKbXkgJFNlbGVuaXVtID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpTZWxlbml1bScpOwoKJFNlbGVuaXVtLT5SdW5UZXN0KAogICAgc3ViIHsKCiAgICAgICAgIyBnZXQgaGVscGVyIG9iamVjdAogICAgICAgIG15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKICAgICAgICAjIGdldCBGQVEgb2JqZWN0CiAgICAgICAgbXkgJEZBUU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpGQVEnKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCBGQVEKICAgICAgICBteSAkRkFRVGl0bGUgPSAnRkFRICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgIG15ICRJdGVtSUQgICA9ICRGQVFPYmplY3QtPkZBUUFkZCgKICAgICAgICAgICAgVGl0bGUgICAgICAgPT4gJEZBUVRpdGxlLAogICAgICAgICAgICBDYXRlZ29yeUlEICA9PiAxLAogICAgICAgICAgICBTdGF0ZUlEICAgICA9PiAyLAogICAgICAgICAgICBMYW5ndWFnZUlEICA9PiAxLAogICAgICAgICAgICBWYWxpZElEICAgICA9PiAxLAogICAgICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9odG1sJywKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkSXRlbUlELAogICAgICAgICAgICAiVGVzdCBGQVEgaXRlbSBpcyBjcmVhdGVkIC0gSUQgJEl0ZW1JRCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCB1c2VyIGFuZCBsb2dpbgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICd1c2VycycgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHNjcmlwdCBhbGlhcwogICAgICAgIG15ICRTY3JpcHRBbGlhcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnU2NyaXB0QWxpYXMnKTsKCiAgICAgICAgIyBuYXZpZ2F0ZSB0byBBZ2VudEZBUUpvdXJuYWwgc2NyZWVuCiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRGQVFKb3VybmFsIik7CgogICAgICAgICMgY2hlY2sgZm9yIEpvdXJuYWwgT3ZlcnZpZXcgY29sdW1ucwogICAgICAgIGZvciBteSAkQ29sdW1ucyAoICdGQVEjJywgJ1RpdGxlJywgJ0NhdGVnb3J5JywgJ0FjdGlvbicsICdUaW1lJyApIHsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJENvbHVtbnMgKSA+IC0xLAogICAgICAgICAgICAgICAgIkNvbHVtbiAkQ29sdW1ucyBpcyBmb3VuZCIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIGZvciB0ZXN0IGNyZWF0ZWQgRkFRCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAiJEZBUVRpdGxlIiApID4gLTEsCiAgICAgICAgICAgICIkRkFRVGl0bGUgaXMgZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgZGVsZXRlIHRlc3QgY3JlYXRlZCBGQVEKICAgICAgICBteSAkU3VjY2VzcyA9ICRGQVFPYmplY3QtPkZBUURlbGV0ZSgKICAgICAgICAgICAgSXRlbUlEID0+ICRJdGVtSUQsCiAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAiVGVzdCBGQVEgaXRlbSBpcyBkZWxldGVkIC0gSUQgJEl0ZW1JRCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBtYWtlIHN1cmUgdGhlIGNhY2hlIGlzIGNvcnJlY3QKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+Q2xlYW5VcCggVHlwZSA9PiAiRkFRIiApOwogICAgfQopOwoKJFNlbGYtPkRvbmVUZXN0aW5nKCk7Cg==</File>
        <File Location="scripts/test/Selenium/Output/FAQMenu/Generic.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKIyBTZXQgdXAgdGhlIHRlc3QgZHJpdmVyICRTZWxmIHdoZW4gd2UgYXJlIHJ1bm5pbmcgYXMgYSBzdGFuZGFsb25lIHNjcmlwdC4KdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6UmVnaXN0ZXJEcml2ZXI7CgpvdXIgJFNlbGY7CgojIGdldCBzZWxlbml1bSBvYmplY3QKbXkgJFNlbGVuaXVtID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpTZWxlbml1bScpOwoKJFNlbGVuaXVtLT5SdW5UZXN0KAogICAgc3ViIHsKCiAgICAgICAgIyBnZXQgaGVscGVyIG9iamVjdAogICAgICAgIG15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKICAgICAgICAjIGdldCBGQVEgb2JqZWN0CiAgICAgICAgbXkgJEZBUU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpGQVEnKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCBGQVEKICAgICAgICBteSAkRkFRVGl0bGUgPSAnRkFRICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgIG15ICRJdGVtSUQgICA9ICRGQVFPYmplY3QtPkZBUUFkZCgKICAgICAgICAgICAgVGl0bGUgICAgICAgPT4gJEZBUVRpdGxlLAogICAgICAgICAgICBDYXRlZ29yeUlEICA9PiAxLAogICAgICAgICAgICBTdGF0ZUlEICAgICA9PiAyLAogICAgICAgICAgICBMYW5ndWFnZUlEICA9PiAxLAogICAgICAgICAgICBWYWxpZElEICAgICA9PiAxLAogICAgICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9odG1sJywKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkSXRlbUlELAogICAgICAgICAgICAiVGVzdCBGQVEgaXRlbSBpcyBjcmVhdGVkIC0gSUQgJEl0ZW1JRCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCB1c2VyIGFuZCBsb2dpbgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICd1c2VycycgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHNjcmlwdCBhbGlhcwogICAgICAgIG15ICRTY3JpcHRBbGlhcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnU2NyaXB0QWxpYXMnKTsKCiAgICAgICAgIyBuYXZpZ2F0ZSB0byBBZ2VudEZBUVpvb20gb2YgY3JlYXRlZCBGQVEKICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudEZBUVpvb207SXRlbUlEPSRJdGVtSUQiKTsKCiAgICAgICAgIyBjcmVhdGUgbWVudSBtb2R1bGUgdGVzdCBwYXJhbXMKICAgICAgICBteSBATWVudU1vZHVsZSA9ICgKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAgID0+ICJFZGl0IiwKICAgICAgICAgICAgICAgIEFjdGlvbiA9PiAiQWdlbnRGQVFFZGl0O0l0ZW1JRD0kSXRlbUlEIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAgID0+ICJIaXN0b3J5IiwKICAgICAgICAgICAgICAgIEFjdGlvbiA9PiAiQWdlbnRGQVFIaXN0b3J5O0l0ZW1JRD0kSXRlbUlEIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAgID0+ICJQcmludCIsCiAgICAgICAgICAgICAgICBBY3Rpb24gPT4gIkFnZW50RkFRUHJpbnQ7SXRlbUlEPSRJdGVtSUQiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgPT4gIkxpbmsiLAogICAgICAgICAgICAgICAgQWN0aW9uID0+ICJBZ2VudExpbmtPYmplY3Q7U291cmNlT2JqZWN0PUZBUSIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgICA9PiAiRGVsZXRlIiwKICAgICAgICAgICAgICAgIEFjdGlvbiA9PiAiQWdlbnRGQVFEZWxldGU7SXRlbUlEPSRJdGVtSUQiLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgRkFRIG1lbnUgbW9kdWxlcwogICAgICAgIGZvciBteSAkRkFRWm9vbU1lbnVNb2R1bGUgKEBNZW51TW9kdWxlKSB7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYVtjb250YWlucyhcQGhyZWYsIFwnQWN0aW9uPSRGQVFab29tTWVudU1vZHVsZS0+e0FjdGlvbn0nICldIiksCiAgICAgICAgICAgICAgICAiRkFRIG1lbnUgJEZBUVpvb21NZW51TW9kdWxlLT57TmFtZX0gaXMgZm91bmQiCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGRlbGV0ZSB0ZXN0IGNyZWF0ZWQgRkFRCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkRkFRT2JqZWN0LT5GQVFEZWxldGUoCiAgICAgICAgICAgIEl0ZW1JRCA9PiAkSXRlbUlELAogICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgIlRlc3QgRkFRIGl0ZW0gaXMgZGVsZXRlZCAtIElEICRJdGVtSUQiLAogICAgICAgICk7CgogICAgICAgICMgbWFrZSBzdXJlIHRoZSBjYWNoZSBpcyBjb3JyZWN0CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoIFR5cGUgPT4gIkZBUSIgKTsKICAgIH0KKTsKCiRTZWxmLT5Eb25lVGVzdGluZygpOwo=</File>
        <File Location="scripts/test/Selenium/Output/FAQOverview/Small.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKIyBTZXQgdXAgdGhlIHRlc3QgZHJpdmVyICRTZWxmIHdoZW4gd2UgYXJlIHJ1bm5pbmcgYXMgYSBzdGFuZGFsb25lIHNjcmlwdC4KdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6UmVnaXN0ZXJEcml2ZXI7CgpvdXIgJFNlbGY7CgojIGdldCBzZWxlbml1bSBvYmplY3QKbXkgJFNlbGVuaXVtID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpTZWxlbml1bScpOwoKJFNlbGVuaXVtLT5SdW5UZXN0KAogICAgc3ViIHsKCiAgICAgICAgIyBnZXQgaGVscGVyIG9iamVjdAogICAgICAgIG15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKICAgICAgICAjIGdldCBGQVEgb2JqZWN0CiAgICAgICAgbXkgJEZBUU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpGQVEnKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCBGQVEgY2F0ZWdvcnkKICAgICAgICBteSAkQ2F0ZWdvcnlJRCA9ICRGQVFPYmplY3QtPkNhdGVnb3J5QWRkKAogICAgICAgICAgICBOYW1lICAgICA9PiAnQ2F0ZWdvcnkgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCksCiAgICAgICAgICAgIENvbW1lbnQgID0+ICdTZWxlbml1bSBDYXRlZ29yeScsCiAgICAgICAgICAgIFBhcmVudElEID0+IDIsCiAgICAgICAgICAgIFZhbGlkSUQgID0+IDEsCiAgICAgICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRDYXRlZ29yeUlELAogICAgICAgICAgICAiRkFRIGNhdGVnb3J5IGlzIGNyZWF0ZWQgLSBJRCAkQ2F0ZWdvcnlJRCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBzZXQgdGVzdCBGQVEgY2F0ZWdvcnkgcGVybWlzc2lvbgogICAgICAgIG15ICRHcm91cElEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyktPkdyb3VwTG9va3VwKAogICAgICAgICAgICBHcm91cCA9PiAndXNlcnMnLAogICAgICAgICk7CgogICAgICAgICRGQVFPYmplY3QtPlNldENhdGVnb3J5R3JvdXAoCiAgICAgICAgICAgIENhdGVnb3J5SUQgPT4gJENhdGVnb3J5SUQsCiAgICAgICAgICAgIEdyb3VwSURzICAgPT4gWyRHcm91cElEXSwKICAgICAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgRkFRCiAgICAgICAgbXkgJEZBUVRpdGxlID0gJ0ZBUSAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkSXRlbUlEICAgPSAkRkFRT2JqZWN0LT5GQVFBZGQoCiAgICAgICAgICAgIFRpdGxlICAgICAgID0+ICRGQVFUaXRsZSwKICAgICAgICAgICAgQ2F0ZWdvcnlJRCAgPT4gJENhdGVnb3J5SUQsCiAgICAgICAgICAgIFN0YXRlSUQgICAgID0+IDIsCiAgICAgICAgICAgIExhbmd1YWdlSUQgID0+IDEsCiAgICAgICAgICAgIFZhbGlkSUQgICAgID0+IDEsCiAgICAgICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L2h0bWwnLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRJdGVtSUQsCiAgICAgICAgICAgICJUZXN0IEZBUSBpdGVtIGlzIGNyZWF0ZWQgLSBJRCAkSXRlbUlEIiwKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IHVzZXIgYW5kIGxvZ2luCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ3VzZXJzJyBdLAogICAgICAgICkgfHwgZGllICJEaWQgbm90IGdldCB0ZXN0IHVzZXIiOwoKICAgICAgICAkU2VsZW5pdW0tPkxvZ2luKAogICAgICAgICAgICBUeXBlICAgICA9PiAnQWdlbnQnLAogICAgICAgICAgICBVc2VyICAgICA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgc2NyaXB0IGFsaWFzCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAjIG5hdmlnYXRlIHRvIEFnZW50RkFRRXhwbG9yZXIgc2NyZWVuIGZvciB0ZXN0IEZBUSBjYXRlZ29yeQogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50RkFRRXhwbG9yZXI7Q2F0ZWdvcnlJRD0kQ2F0ZWdvcnlJRDtOYXY9Iik7CgogICAgICAgICMgY2hlY2sgb3ZlcnZpZXcgc2NyZWVuCiAgICAgICAgZm9yIG15ICRDb2x1bW5zICggJ0ZBUSMnLCAnVGl0bGUnLCAnTGFuZ3VhZ2UnLCAnU3RhdGUnLCAnVmFsaWRpdHknICkgewogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkQ29sdW1ucyApID4gLTEsCiAgICAgICAgICAgICAgICAiQ29sdW1uICRDb2x1bW5zIGlzIGZvdW5kIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgZm9yIHRlc3QgY3JlYXRlZCBGQVEKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICIkRkFRVGl0bGUiICkgPiAtMSwKICAgICAgICAgICAgIiRGQVFUaXRsZSBpcyBmb3VuZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBkZWxldGUgdGVzdCBjcmVhdGVkIEZBUSBjYXRlZ29yeQogICAgICAgIG15ICRTdWNjZXNzID0gJEZBUU9iamVjdC0+Q2F0ZWdvcnlEZWxldGUoCiAgICAgICAgICAgIENhdGVnb3J5SUQgPT4gJENhdGVnb3J5SUQsCiAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgIkNhdGVnb3J5IGlzIGRlbGV0ZWQgLSBJRCAkQ2F0ZWdvcnlJRCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBkZWxldGUgdGVzdCBjcmVhdGVkIEZBUQogICAgICAgICRTdWNjZXNzID0gJEZBUU9iamVjdC0+RkFRRGVsZXRlKAogICAgICAgICAgICBJdGVtSUQgPT4gJEl0ZW1JRCwKICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICJUZXN0IEZBUSBpdGVtIGlzIGRlbGV0ZWQgLSBJRCAkSXRlbUlEIiwKICAgICAgICApOwoKICAgICAgICAjIG1ha2Ugc3VyZSB0aGUgY2FjaGUgaXMgY29ycmVjdAogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKCBUeXBlID0+ICJGQVEiICk7CiAgICB9Cik7CgokU2VsZi0+RG9uZVRlc3RpbmcoKTsK</File>
        <File Location="scripts/test/Selenium/Output/HeaderMeta/AgentFAQSearch.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKIyBTZXQgdXAgdGhlIHRlc3QgZHJpdmVyICRTZWxmIHdoZW4gd2UgYXJlIHJ1bm5pbmcgYXMgYSBzdGFuZGFsb25lIHNjcmlwdC4KdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6UmVnaXN0ZXJEcml2ZXI7CgpvdXIgJFNlbGY7CgojIGdldCBzZWxlbml1bSBvYmplY3QKbXkgJFNlbGVuaXVtID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpTZWxlbml1bScpOwoKJFNlbGVuaXVtLT5SdW5UZXN0KAogICAgc3ViIHsKCiAgICAgICAgIyBnZXQgaGVscGVyIG9iamVjdAogICAgICAgIG15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKICAgICAgICAjIGFjdGl2YXRlIHF1aWNrLXNlYXJjaCBzaG93IGZvciBhZ2VudCBpbnRlcmZhY2UKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICBLZXkgICA9PiAnRkFROjpFeHBsb3Jlcjo6UXVpY2tTZWFyY2g6OlNob3cnLAogICAgICAgICAgICBWYWx1ZSA9PiB7ICdpbnRlcm5hbCcgPT4gJ2ludGVybmFsIChhZ2VudCknIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgRkFRIG9iamVjdAogICAgICAgIG15ICRGQVFPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RkFRJyk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgRkFRCiAgICAgICAgbXkgJEZBUVRpdGxlID0gJ0ZBUSAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkSXRlbUlEICAgPSAkRkFRT2JqZWN0LT5GQVFBZGQoCiAgICAgICAgICAgIFRpdGxlICAgICAgID0+ICRGQVFUaXRsZSwKICAgICAgICAgICAgQ2F0ZWdvcnlJRCAgPT4gMSwKICAgICAgICAgICAgU3RhdGVJRCAgICAgPT4gMiwKICAgICAgICAgICAgTGFuZ3VhZ2VJRCAgPT4gMSwKICAgICAgICAgICAgVmFsaWRJRCAgICAgPT4gMSwKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvaHRtbCcsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJEl0ZW1JRCwKICAgICAgICAgICAgIlRlc3QgRkFRIGl0ZW0gaXMgY3JlYXRlZCAtIElEICRJdGVtSUQiLAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgdXNlciBhbmQgbG9naW4KICAgICAgICBteSAkVGVzdFVzZXJMb2dpbiA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKAogICAgICAgICAgICBHcm91cHMgPT4gWyAnYWRtaW4nLCAndXNlcnMnIF0sCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIGdldCBzY3JpcHQgYWxpYXMKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICMgbmF2aWdhdGUgdG8gQWdlbnRGQVFFeHBsb3JlciBzY3JlZW4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudEZBUUV4cGxvcmVyIik7CgogICAgICAgICMgY2hlY2sgZm9yICdBZHZhbmNlZCBTZWFyY2gnIGJ1dHRvbgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgIkFjdGlvbj1BZ2VudEZBUVNlYXJjaDtOYXY9IiApID4gLTEsCiAgICAgICAgICAgICJBZHZhbmNlZCBTZWFyY2ggYnV0dG9uIGlzIGZvdW5kIiwKICAgICAgICApOwoKICAgICAgICAjIHNlYXJjaCB0ZXN0IGNyZWF0ZWQgRkFRIGluIHF1aWNrLXNlYXJjaAogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2lucHV0W1xAaWQ9J1NlYXJjaCddIiktPnNlbmRfa2V5cygkRkFRVGl0bGUpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2J1dHRvbltcQHZhbHVlPSdTZWFyY2gnXVtcQHR5cGU9J3N1Ym1pdCddIiktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBjaGVjayBmb3IgcXVpY2stc2VhcmNoIHJlc3VsdAogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgIiRGQVFUaXRsZSIgKSA+IC0xLAogICAgICAgICAgICAiJEZBUVRpdGxlIGlzIGZvdW5kIiwKICAgICAgICApOwoKICAgICAgICAjIGRlbGV0ZSB0ZXN0IGNyZWF0ZWQgRkFRCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkRkFRT2JqZWN0LT5GQVFEZWxldGUoCiAgICAgICAgICAgIEl0ZW1JRCA9PiAkSXRlbUlELAogICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgIlRlc3QgRkFRIGl0ZW0gaXMgZGVsZXRlZCAtIElEICRJdGVtSUQiLAogICAgICAgICk7CgogICAgICAgICMgTWFrZSBzdXJlIHRoZSBjYWNoZSBpcyBjb3JyZWN0LgogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKCBUeXBlID0+ICJGQVEiICk7CiAgICB9Cik7CgokU2VsZi0+RG9uZVRlc3RpbmcoKTsK</File>
        <File Location="scripts/test/Selenium/Output/HeaderMeta/CustomerFAQSearch.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKIyBTZXQgdXAgdGhlIHRlc3QgZHJpdmVyICRTZWxmIHdoZW4gd2UgYXJlIHJ1bm5pbmcgYXMgYSBzdGFuZGFsb25lIHNjcmlwdC4KdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6UmVnaXN0ZXJEcml2ZXI7CgpvdXIgJFNlbGY7CgojIGdldCBzZWxlbml1bSBvYmplY3QKbXkgJFNlbGVuaXVtID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpTZWxlbml1bScpOwoKJFNlbGVuaXVtLT5SdW5UZXN0KAogICAgc3ViIHsKCiAgICAgICAgIyBnZXQgaGVscGVyIG9iamVjdAogICAgICAgIG15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKICAgICAgICAjIGFjdGl2YXRlIHF1aWNrLXNlYXJjaCBzaG93IGZvciBhZ2VudCBpbnRlcmZhY2UKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICBLZXkgICA9PiAnRkFROjpFeHBsb3Jlcjo6UXVpY2tTZWFyY2g6OlNob3cnLAogICAgICAgICAgICBWYWx1ZSA9PiB7ICdleHRlcm5hbCcgPT4gJ2V4dGVybmFsIChjdXN0b21lciknIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgRkFRIG9iamVjdAogICAgICAgIG15ICRGQVFPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RkFRJyk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgRkFRCiAgICAgICAgbXkgJEZBUVRpdGxlID0gJ0ZBUSAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkSXRlbUlEICAgPSAkRkFRT2JqZWN0LT5GQVFBZGQoCiAgICAgICAgICAgIFRpdGxlICAgICAgID0+ICRGQVFUaXRsZSwKICAgICAgICAgICAgQ2F0ZWdvcnlJRCAgPT4gMSwKICAgICAgICAgICAgU3RhdGVJRCAgICAgPT4gMSwKICAgICAgICAgICAgTGFuZ3VhZ2VJRCAgPT4gMSwKICAgICAgICAgICAgVmFsaWRJRCAgICAgPT4gMSwKICAgICAgICAgICAgQXBwcm92ZWQgICAgPT4gMSwKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvaHRtbCcsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJEl0ZW1JRCwKICAgICAgICAgICAgIlRlc3QgRkFRIGl0ZW0gaXMgY3JlYXRlZCAtIElEICRJdGVtSUQiLAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIGFuZCBsb2dpbiB0ZXN0IGN1c3RvbWVyCiAgICAgICAgbXkgJFRlc3RDdXN0b21lclVzZXJMb2dpbiA9ICRIZWxwZXItPlRlc3RDdXN0b21lclVzZXJDcmVhdGUoKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdDdXN0b21lcicsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0Q3VzdG9tZXJVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0Q3VzdG9tZXJVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgc2NyaXB0IGFsaWFzCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAjIG5hdmlnYXRlIHRvIEN1c3RvbWVyRkFRRXhwbG9yZXIgc2NyZWVuIG9mIGNyZWF0ZWQgdGVzdCBGQVEKICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWN1c3RvbWVyLnBsP0FjdGlvbj1DdXN0b21lckZBUUV4cGxvcmVyIik7CgogICAgICAgICMgY2hlY2sgZm9yICdBZHZhbmNlZCBTZWFyY2gnIGJ1dHRvbgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgIkFjdGlvbj1DdXN0b21lckZBUVNlYXJjaCIgKSA+IC0xLAogICAgICAgICAgICAiQWR2YW5jZWQgU2VhcmNoIGJ1dHRvbiBpcyBmb3VuZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBzZWFyY2ggdGVzdCBjcmVhdGVkIEZBUSBpbiBxdWljay1zZWFyY2gKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9pbnB1dFtcQGlkPSdTZWFyY2gnXSIpLT5zZW5kX2tleXMoJEZBUVRpdGxlKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEB2YWx1ZT0nU2VhcmNoJ11bXEB0eXBlPSdzdWJtaXQnXSIpLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgY2hlY2sgZm9yIHF1aWNrLXNlYXJjaCByZXN1bHQKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICIkRkFRVGl0bGUiICkgPiAtMSwKICAgICAgICAgICAgIiRGQVFUaXRsZSBpcyBmb3VuZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBkZWxldGUgdGVzdCBjcmVhdGVkIEZBUQogICAgICAgIG15ICRTdWNjZXNzID0gJEZBUU9iamVjdC0+RkFRRGVsZXRlKAogICAgICAgICAgICBJdGVtSUQgPT4gJEl0ZW1JRCwKICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICJUZXN0IEZBUSBpdGVtIGlzIGRlbGV0ZWQgLSBJRCAkSXRlbUlEIiwKICAgICAgICApOwoKICAgICAgICAjIG1ha2Ugc3VyZSB0aGUgY2FjaGUgaXMgY29ycmVjdAogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpLT5DbGVhblVwKCBUeXBlID0+ICJGQVEiICk7CiAgICB9Cik7CgokU2VsZi0+RG9uZVRlc3RpbmcoKTsK</File>
        <File Location="scripts/test/Selenium/Output/HeaderMeta/PublicFAQSearch.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKIyBTZXQgdXAgdGhlIHRlc3QgZHJpdmVyICRTZWxmIHdoZW4gd2UgYXJlIHJ1bm5pbmcgYXMgYSBzdGFuZGFsb25lIHNjcmlwdC4KdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6UmVnaXN0ZXJEcml2ZXI7CgpvdXIgJFNlbGY7CgojIGdldCBzZWxlbml1bSBvYmplY3QKbXkgJFNlbGVuaXVtID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpTZWxlbml1bScpOwoKJFNlbGVuaXVtLT5SdW5UZXN0KAogICAgc3ViIHsKCiAgICAgICAgIyBnZXQgaGVscGVyIG9iamVjdAogICAgICAgIG15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKICAgICAgICAjIGdldCBGQVEgb2JqZWN0CiAgICAgICAgbXkgJEZBUU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpGQVEnKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCBGQVEKICAgICAgICBteSAkRkFRVGl0bGUgPSAnRkFRICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgIG15ICRJdGVtSUQgICA9ICRGQVFPYmplY3QtPkZBUUFkZCgKICAgICAgICAgICAgVGl0bGUgICAgICAgPT4gJEZBUVRpdGxlLAogICAgICAgICAgICBDYXRlZ29yeUlEICA9PiAxLAogICAgICAgICAgICBTdGF0ZUlEICAgICA9PiAzLAogICAgICAgICAgICBMYW5ndWFnZUlEICA9PiAxLAogICAgICAgICAgICBBcHByb3ZlZCAgICA9PiAxLAogICAgICAgICAgICBWYWxpZElEICAgICA9PiAxLAogICAgICAgICAgICBVc2VySUQgICAgICA9PiAxLAogICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9odG1sJywKICAgICAgICApOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAkSXRlbUlELAogICAgICAgICAgICAiVGVzdCBGQVEgaXRlbSBpcyBjcmVhdGVkIC0gSUQgJEl0ZW1JRCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgc2NyaXB0IGFsaWFzCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAjIG5hdmlnYXRlIHRvIHB1YmxpYyBzY3JlZW4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfXB1YmxpYy5wbD8iKTsKCiAgICAgICAgIyBjaGVjayBmb3IgJ0FkdmFuY2VkIFNlYXJjaCcgYnV0dG9uCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAiQWN0aW9uPVB1YmxpY0ZBUVNlYXJjaDsiICkgPiAtMSwKICAgICAgICAgICAgIkFkdmFuY2VkIFNlYXJjaCBidXR0b24gaXMgZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgc2VhcmNoIHRlc3QgY3JlYXRlZCBGQVEgaW4gcXVpY2stc2VhcmNoCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vaW5wdXRbXEBpZD0nU2VhcmNoJ10iKS0+c2VuZF9rZXlzKCRGQVFUaXRsZSk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYnV0dG9uW1xAdmFsdWU9J1NlYXJjaCddW1xAdHlwZT0nc3VibWl0J10iKS0+VmVyaWZpZWRDbGljaygpOwoKICAgICAgICAjIGNoZWNrIGZvciBxdWljay1zZWFyY2ggcmVzdWx0CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAiJEZBUVRpdGxlIiApID4gLTEsCiAgICAgICAgICAgICIkRkFRVGl0bGUgaXMgZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgZGVsZXRlIHRlc3QgY3JlYXRlZCBGQVEKICAgICAgICBteSAkU3VjY2VzcyA9ICRGQVFPYmplY3QtPkZBUURlbGV0ZSgKICAgICAgICAgICAgSXRlbUlEID0+ICRJdGVtSUQsCiAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAiVGVzdCBGQVEgaXRlbSBpcyBkZWxldGVkIC0gSUQgJEl0ZW1JRCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBtYWtlIHN1cmUgdGhlIGNhY2hlIGlzIGNvcnJlY3QKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKS0+Q2xlYW5VcCggVHlwZSA9PiAiRkFRIiApOwogICAgfQopOwoKJFNlbGYtPkRvbmVUZXN0aW5nKCk7Cg==</File>
        <File Location="scripts/test/Selenium/Output/LinkObject/FAQ.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKIyBTZXQgdXAgdGhlIHRlc3QgZHJpdmVyICRTZWxmIHdoZW4gd2UgYXJlIHJ1bm5pbmcgYXMgYSBzdGFuZGFsb25lIHNjcmlwdC4KdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6UmVnaXN0ZXJEcml2ZXI7CgpvdXIgJFNlbGY7CgpteSAkU2VsZW5pdW0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OlNlbGVuaXVtJyk7CgokU2VsZW5pdW0tPlJ1blRlc3QoCiAgICBzdWIgewoKICAgICAgICBteSAkSGVscGVyICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKICAgICAgICBteSAkRkFRT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkZBUScpOwoKICAgICAgICAjIENyZWF0ZSB0d28gdGVzdCBGQVEuCiAgICAgICAgbXkgQEl0ZW1JRHM7CiAgICAgICAgbXkgQEZBUVRpdGxlczsKICAgICAgICBmb3IgbXkgJEZBUSAoIDEgLi4gMiApIHsKICAgICAgICAgICAgbXkgJEZBUVRpdGxlID0gJ0ZBUSAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICAgICAgbXkgJEl0ZW1JRCAgID0gJEZBUU9iamVjdC0+RkFRQWRkKAogICAgICAgICAgICAgICAgVGl0bGUgICAgICAgPT4gJEZBUVRpdGxlLAogICAgICAgICAgICAgICAgQ2F0ZWdvcnlJRCAgPT4gMSwKICAgICAgICAgICAgICAgIFN0YXRlSUQgICAgID0+IDIsCiAgICAgICAgICAgICAgICBMYW5ndWFnZUlEICA9PiAxLAogICAgICAgICAgICAgICAgVmFsaWRJRCAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9odG1sJywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJEl0ZW1JRCwKICAgICAgICAgICAgICAgICJUZXN0IEZBUSBpdGVtIGlzIGNyZWF0ZWQgLSBJRCAkSXRlbUlEIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHB1c2ggQEl0ZW1JRHMsICAgJEl0ZW1JRDsKICAgICAgICAgICAgcHVzaCBARkFRVGl0bGVzLCAkRkFRVGl0bGU7CiAgICAgICAgfQoKICAgICAgICAjIENyZWF0ZSB0ZXN0IHVzZXIgYW5kIGxvZ2luLgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICd1c2VycycgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgIG15ICRTY3JpcHRBbGlhcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnU2NyaXB0QWxpYXMnKTsKCiAgICAgICAgIyBOYXZpZ2F0ZSB0byBsaW5rIG9iamVjdCBzY3JlZW4uCiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRMaW5rT2JqZWN0O1NvdXJjZU9iamVjdD1GQVE7U291cmNlS2V5PSRJdGVtSURzWzBdIik7CgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PgogICAgICAgICAgICAgICAgJ3JldHVybiB0eXBlb2YoJCkgPT09ICJmdW5jdGlvbiIgJiYgJCgiaW5wdXRbbmFtZT1cJ1NFQVJDSDo6VGl0bGVcJ10iKS5sZW5ndGggJiYgJCgiYnV0dG9uW3R5cGU9c3VibWl0XSIpLmxlbmd0aDsnCiAgICAgICAgKTsKCiAgICAgICAgIyBMaW5rIHR3byB0ZXN0IGNyZWF0ZWQgRkFRcy4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9pbnB1dFtcQG5hbWU9J1NFQVJDSDo6VGl0bGUnXSIpLT5zZW5kX2tleXMoICRGQVFUaXRsZXNbMV0gKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEB2YWx1ZT0nU2VhcmNoJ11bXEB0eXBlPSdzdWJtaXQnXSIpLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcmpRdWVyeUV2ZW50Qm91bmQoCiAgICAgICAgICAgIENTU1NlbGVjdG9yID0+ICIjTGlua1RhcmdldEtleXMiLAogICAgICAgICAgICBFdmVudCAgICAgICA9PiAnY2xpY2snLAogICAgICAgICk7CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yalF1ZXJ5RXZlbnRCb3VuZCgKICAgICAgICAgICAgQ1NTU2VsZWN0b3IgPT4gIiNMaW5rVGFyZ2V0S2V5cyIsCiAgICAgICAgICAgIEV2ZW50ICAgICAgID0+ICdjaGFuZ2UnLAogICAgICAgICk7CgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0xpbmtUYXJnZXRLZXlzIiwgJ2NzcycgKS0+Y2xpY2soKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gJ3JldHVybiAkKCIjTGlua1RhcmdldEtleXM6Y2hlY2tlZCIpLmxlbmd0aDsnICk7CgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcmpRdWVyeUV2ZW50Qm91bmQoCiAgICAgICAgICAgIENTU1NlbGVjdG9yID0+ICIjQWRkTGlua3MiLAogICAgICAgICk7CgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0FkZExpbmtzIiwgJ2NzcycgKS0+VmVyaWZpZWRDbGljaygpOwoKICAgICAgICAjIE5hdmlnYXRlIHRvIEFnZW50RkFRWm9vbSBvZiBjcmVhdGVkIEZBUS4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudEZBUVpvb207SXRlbUlEPSRJdGVtSURzWzBdIik7CgogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJEZBUVRpdGxlc1sxXSApID4gLTEsCiAgICAgICAgICAgICJUZXN0IHRpY2tldCB0aXRsZSAkRkFRVGl0bGVzWzFdIGlzIGZvdW5kIiwKICAgICAgICApOwoKICAgICAgICAjIE5hdmlnYXRlIHRvIGxpbmsgb2JqZWN0IHNjcmVlbi4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudExpbmtPYmplY3Q7U291cmNlT2JqZWN0PUZBUTtTb3VyY2VLZXk9JEl0ZW1JRHNbMF0iKTsKCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKAogICAgICAgICAgICBKYXZhU2NyaXB0ID0+ICdyZXR1cm4gdHlwZW9mKCQpID09PSAiZnVuY3Rpb24iICYmICQoImRpdltkYXRhLWlkPU1hbmFnZUxpbmtzXSIpLmxlbmd0aDsnCiAgICAgICAgKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3JqUXVlcnlFdmVudEJvdW5kKAogICAgICAgICAgICBDU1NTZWxlY3RvciA9PiAiYVtocmVmPScjTWFuYWdlTGlua3MnXSIsCiAgICAgICAgKTsKCiAgICAgICAgIyBEZWxldGUgbGluayByZWxhdGlvbi4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9hW2NvbnRhaW5zKFxAaHJlZiwgXCcjTWFuYWdlTGlua3MnICldIiktPmNsaWNrKCk7CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICdyZXR1cm4gJCgiZGl2W2RhdGEtaWQ9TWFuYWdlTGlua3NdLkFjdGl2ZSIpLmxlbmd0aDsnICk7CgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcmpRdWVyeUV2ZW50Qm91bmQoCiAgICAgICAgICAgIENTU1NlbGVjdG9yID0+ICIjU2VsZWN0QWxsTGlua3MwIiwKICAgICAgICApOwoKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNTZWxlY3RBbGxMaW5rczAiLCAnY3NzJyApLT5jbGljaygpOwogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAncmV0dXJuICQoIiNGQVEgLkRhdGFUYWJsZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkIikubGVuZ3RoOycgKTsKCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYnV0dG9uW1xAdGl0bGU9J0RlbGV0ZSBsaW5rcyddIiktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBOYXZpZ2F0ZSB0byBBZ2VudEZBUVpvb20gb2YgY3JlYXRlZCBGQVEuCiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRGQVFab29tO0l0ZW1JRD0kSXRlbUlEc1swXSIpOwoKICAgICAgICAjIFZlcmlmeSB0aGF0IGxpbmsgaGFzIGJlZW4gcmVtb3ZlZC4KICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRGQVFUaXRsZXNbMV0gKSA9PSAtMSwKICAgICAgICAgICAgIiRGQVFUaXRsZXNbMV0gaXMgbm90IGZvdW5kIiwKICAgICAgICApOwoKICAgICAgICAjIERlbGV0ZSB0ZXN0IGNyZWF0ZWQgRkFRcy4KICAgICAgICBteSAkU3VjY2VzczsKICAgICAgICBmb3IgbXkgJEl0ZW1JRCAoQEl0ZW1JRHMpIHsKICAgICAgICAgICAgJFN1Y2Nlc3MgPSAkRkFRT2JqZWN0LT5GQVFEZWxldGUoCiAgICAgICAgICAgICAgICBJdGVtSUQgPT4gJEl0ZW1JRCwKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAgICAgIlRlc3QgRkFRIGl0ZW0gaXMgZGVsZXRlZCAtIElEICRJdGVtSUQiLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBNYWtlIHN1cmUgdGhlIGNhY2hlIGlzIGNvcnJlY3QuCiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoIFR5cGUgPT4gIkZBUSIgKTsKICAgIH0KKTsKCiRTZWxmLT5Eb25lVGVzdGluZygpOwo=</File>
        <File Location="var/httpd/htdocs/js/FAQ.Agent.ConfirmationDialog.js" Permission="660" Encode="Base64">Ly8gLS0KLy8gT1RPQk8gaXMgYSB3ZWItYmFzZWQgdGlja2V0aW5nIHN5c3RlbSBmb3Igc2VydmljZSBvcmdhbmlzYXRpb25zLgovLyAtLQovLyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAyMCBPVFJTIEFHLCBodHRwczovL290cnMuY29tLwovLyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyNSBSb3RoZXIgT1NTIEdtYkgsIGh0dHBzOi8vb3RvYm8uaW8vCi8vIC0tCi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCi8vIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCi8vIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAovLyBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUwovLyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgRkFRID0gRkFRIHx8IHt9OwpGQVEuQWdlbnQgPSBGQVEuQWdlbnQgfHwge307CgovKioKICogQG5hbWVzcGFjZQogKiBAZXhwb3J0cyBUYXJnZXROUyBhcyBGQVEuQWdlbnQuQ29uZmlybWF0aW9uRGlhbG9nCiAqIEBkZXNjcmlwdGlvbgogKiAgICAgIFRoaXMgbmFtZXNwYWNlIGNvbnRhaW5zIHRoZSBzcGVjaWFsIG1vZHVsZSBmdW5jdGlvbnMgZm9yIENvbmZpcm1hdGlvbkRpYWxvZy4KICovCkZBUS5BZ2VudC5Db25maXJtYXRpb25EaWFsb2cgPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgLyoqCiAgICAgKiBAbmFtZSBEaWFsb2dEYXRhCiAgICAgKiBAbWVtYmVyb2YgRkFRLkFnZW50LkNvbmZpcm1hdGlvbkRpYWxvZwogICAgICogQHZhcmlhYmxlCiAgICAgKiBAcHJpdmF0ZQogICAgICogQGRlc2NyaXB0aW9uCiAgICAgKiAgICAgIFRoaXMgdmFyaWFibGUgc3RvcmVzIHRoZSBwYXJhbWV0ZXJzIHRoYXQgYXJlIHBhc3NlZCBmcm9tIHRoZSBEVEwgYW5kIGNvbnRhaW4gYWxsIHRoZSBkYXRhIHRoYXQgdGhlIGRpYWxvZyBuZWVkcy4KICAgICAqLwogICAgdmFyIERpYWxvZ0RhdGEgPSBbXTsKCiAgICAvKioKICAgICAqIEBuYW1lIFNob3dXYWl0aW5nRGlhbG9nCiAgICAgKiBAbWVtYmVyb2YgRkFRLkFnZW50LkNvbmZpcm1hdGlvbkRpYWxvZwogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcHJpdmF0ZQogICAgICogQHBhcmFtIHtTdHJpbmd9IFBvc2l0aW9uVG9wIHBvc2l0aW9uIG9mIHRoZSBkaWFsb2cuCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgU2hvd3Mgd2FpdGluZyBkaWFsb2cgdW50aWwgc2VhcmNoIHNjcmVlbiBpcyByZWFkeS4KICAgICAqLwogICAgZnVuY3Rpb24gU2hvd1dhaXRpbmdEaWFsb2coUG9zaXRpb25Ub3ApewogICAgICAgIENvcmUuVUkuRGlhbG9nLlNob3dDb250ZW50RGlhbG9nKCc8ZGl2IGNsYXNzPSJTcGFjaW5nIENlbnRlciI+PHNwYW4gY2xhc3M9IkFKQVhMb2FkZXIiIHRpdGxlPSInICsgQ29yZS5Db25maWcuR2V0KCdMb2FkaW5nTXNnJykgKyAnIj48L3NwYW4+PC9kaXY+JywgJycsIFBvc2l0aW9uVG9wLCAnQ2VudGVyJywgdHJ1ZSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAbmFtZSBTaG93Q29uZmlybWF0aW9uRGlhbG9nCiAgICAgKiBAbWVtYmVyb2YgRkFRLkFnZW50LkNvbmZpcm1hdGlvbkRpYWxvZwogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcmV0dXJucyB7Qm9vbGVhbn0gZmFsc2UKICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIHNob3dzIGEgY29uZmlybWF0aW9uIGRpYWxvZyB3aXRoIDIgYnV0dG9uczogWWVzIGFuZCBOby4KICAgICAqLwogICAgVGFyZ2V0TlMuU2hvd0NvbmZpcm1hdGlvbkRpYWxvZyA9IGZ1bmN0aW9uICgpIHsKCiAgICAgICAgdmFyIExvY2FsRGlhbG9nRGF0YSwKICAgICAgICAgICAgUG9zaXRpb25Ub3AsCiAgICAgICAgICAgIERhdGEsCiAgICAgICAgICAgIEJ1dHRvbnM7CgogICAgICAgIC8vIGdldCBnbG9iYWwgc2F2ZWQgRGlhbG9nRGF0YSBmb3IgdGhpcyBmdW5jdGlvbgogICAgICAgIExvY2FsRGlhbG9nRGF0YSA9IERpYWxvZ0RhdGFbJCh0aGlzKS5hdHRyKCdpZCcpXTsKCiAgICAgICAgLy8gZGVmaW5lIHRoZSBwb3NpdGlvbiBvZiB0aGUgZGlhbG9nCiAgICAgICAgUG9zaXRpb25Ub3AgPSAkKHdpbmRvdykuc2Nyb2xsVG9wKCkgKyAoJCh3aW5kb3cpLmhlaWdodCgpICogMC4zKTsKCiAgICAgICAgLy8gc2hvdyB3YWl0aW5nIGRpYWxvZwogICAgICAgIFNob3dXYWl0aW5nRGlhbG9nKFBvc2l0aW9uVG9wKTsKCiAgICAgICAgLy8gYWpheCBjYWxsIHRvIHRoZSBtb2R1bGUgdGhhdCBkZWxldGVzIHRoZSB0ZW1wbGF0ZQogICAgICAgIERhdGEgPSBMb2NhbERpYWxvZ0RhdGEuRGlhbG9nQ29udGVudFF1ZXJ5U3RyaW5nOwogICAgICAgIENvcmUuQUpBWC5GdW5jdGlvbkNhbGwoQ29yZS5Db25maWcuR2V0KCdCYXNlbGluaycpLCBEYXRhLCBmdW5jdGlvbiAoUmVzcG9uc2UpIHsKCiAgICAgICAgICAgIC8vICdDb25maXJtYXRpb24nIG9wZW5zIGEgZGlhbG9nIHdpdGggMiBidXR0b25zOiBZZXMgYW5kIE5vCiAgICAgICAgICAgIGlmIChSZXNwb25zZS5EaWFsb2dUeXBlID09PSAnQ29uZmlybWF0aW9uJykgewoKICAgICAgICAgICAgICAgIC8vIGRlZmluZSB5ZXMgYW5kIG5vIGJ1dHRvbnMKICAgICAgICAgICAgICAgIEJ1dHRvbnMgPSBbewogICAgICAgICAgICAgICAgICAgIExhYmVsOiBDb3JlLkxhbmd1YWdlLlRyYW5zbGF0ZSgnWWVzJyksCiAgICAgICAgICAgICAgICAgICAgQ2xhc3M6ICJQcmltYXJ5IiwKCiAgICAgICAgICAgICAgICAgICAgLy8gZGVmaW5lIHRoZSBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCB3aGVuIHRoZSAnWWVzJyBidXR0b24gaXMgcHJlc3NlZAogICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uOiBmdW5jdGlvbigpewoKICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGlzYWJsZSBZZXMgYW5kIE5vIGJ1dHRvbnMgdG8gcHJldmVudCBtdWx0aXBsZSBzdWJtaXRzCiAgICAgICAgICAgICAgICAgICAgICAgICQoJ2Rpdi5EaWFsb2c6dmlzaWJsZSBkaXYuQ29udGVudEZvb3RlciBidXR0b24nKS5hdHRyKCdkaXNhYmxlZCcsICdkaXNhYmxlZCcpOwoKICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVkaXJlY3QgdG8gdGhlIG1vZHVsZSB0aGF0IGRvZXMgdGhlIGNvbmZpcm1lZCBhY3Rpb24gYWZ0ZXIgcHJlc3NpbmcgdGhlIFllcyBidXR0b24KICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24uaHJlZiA9IENvcmUuQ29uZmlnLkdldCgnQmFzZWxpbmsnKSArIExvY2FsRGlhbG9nRGF0YS5Db25maXJtZWRBY3Rpb25RdWVyeVN0cmluZzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgTGFiZWw6IENvcmUuTGFuZ3VhZ2UuVHJhbnNsYXRlKCdObycpLAogICAgICAgICAgICAgICAgICAgIFR5cGU6ICJDbG9zZSIKICAgICAgICAgICAgICAgIH1dOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyAnTWVzc2FnZScgb3BlbnMgYSBkaWFsb2cgd2l0aCAxIGJ1dHRvbjogT2sKICAgICAgICAgICAgZWxzZSBpZiAoUmVzcG9uc2UuRGlhbG9nVHlwZSA9PT0gJ01lc3NhZ2UnKSB7CgogICAgICAgICAgICAgICAgLy8gZGVmaW5lIE9rIGJ1dHRvbgogICAgICAgICAgICAgICAgQnV0dG9ucyA9IFt7CiAgICAgICAgICAgICAgICAgICAgTGFiZWw6IENvcmUuTGFuZ3VhZ2UuVHJhbnNsYXRlKCdPaycpLAogICAgICAgICAgICAgICAgICAgIENsYXNzOiAiUHJpbWFyeSIsCiAgICAgICAgICAgICAgICAgICAgVHlwZTogIkNsb3NlIgogICAgICAgICAgICAgICAgfV07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIHNob3cgdGhlIGNvbmZpcm1hdGlvbiBkaWFsb2cgdG8gY29uZmlybSB0aGUgYWN0aW9uCiAgICAgICAgICAgIENvcmUuVUkuRGlhbG9nLlNob3dDb250ZW50RGlhbG9nKFJlc3BvbnNlLkhUTUwsIExvY2FsRGlhbG9nRGF0YS5EaWFsb2dUaXRsZSwgUG9zaXRpb25Ub3AsICJDZW50ZXIiLCB0cnVlLCBCdXR0b25zKTsKICAgICAgICB9LCAnanNvbicpOwogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH07CgogICAgLyoqCiAgICAgKiBAbmFtZSBJbml0CiAgICAgKiBAbWVtYmVyb2YgRkFRLkFnZW50LkluaXQKICAgICAqIEBmdW5jdGlvbgogICAgICogQHBhcmFtIHtPYmplY3R9IERhdGEgLSBUaGUgZGF0YSB0aGF0IHNob3VsZCBiZSBiaW5kZWQKICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIGJpbmRzIGEgY2xpY2sgZXZlbnQgdG8gdGhlIGRlZmluZWQgZWxlbWVudAogICAgICovCiAgICBUYXJnZXROUy5Jbml0ID0gZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBJRCwKICAgICAgICBGQVFEYXRhID0gQ29yZS5Db25maWcuR2V0KCdGQVFEYXRhJyk7CgogICAgICAgIC8vIEJpbmRpbmcgYSBjbGljayBldmVudCB0byB0aGUgZGVmaW5lZCBlbGVtZW50LgogICAgICAgIGlmICh0eXBlb2YgRkFRRGF0YSAhPT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgICAgICAgZm9yIChJRCBpbiBGQVFEYXRhKSB7CiAgICAgICAgICAgICAgICBEaWFsb2dEYXRhW0ZBUURhdGFbSURdLkVsZW1lbnRJRF0gPSBGQVFEYXRhW0lEXTsKICAgICAgICAgICAgICAgICQoRkFRRGF0YVtJRF0uRWxlbWVudFNlbGVjdG9yKS5vbignY2xpY2snLCBUYXJnZXROUy5TaG93Q29uZmlybWF0aW9uRGlhbG9nKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH07CgogICAgQ29yZS5Jbml0LlJlZ2lzdGVyTmFtZXNwYWNlKFRhcmdldE5TLCAnQVBQX01PRFVMRScpOwoKICAgIHJldHVybiBUYXJnZXROUzsKfShGQVEuQWdlbnQuQ29uZmlybWF0aW9uRGlhbG9nIHx8IHt9KSk7Cg==</File>
        <File Location="var/httpd/htdocs/js/FAQ.Agent.FAQ.js" Permission="660" Encode="Base64">Ly8gLS0KLy8gT1RPQk8gaXMgYSB3ZWItYmFzZWQgdGlja2V0aW5nIHN5c3RlbSBmb3Igc2VydmljZSBvcmdhbmlzYXRpb25zLgovLyAtLQovLyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAyMCBPVFJTIEFHLCBodHRwczovL290cnMuY29tLwovLyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyNSBSb3RoZXIgT1NTIEdtYkgsIGh0dHBzOi8vb3RvYm8uaW8vCi8vIC0tCi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCi8vIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCi8vIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAovLyBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUwovLyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgRkFRID0gRkFRIHx8IHt9OwpGQVEuQWdlbnQgPSBGQVEuQWdlbnQgfHwge307CgovKioKICogQG5hbWVzcGFjZQogKiBAZXhwb3J0cyBUYXJnZXROUyBhcyBGQVEuQWdlbnQuRkFRCiAqIEBkZXNjcmlwdGlvbgogKiAgICAgIFRoaXMgbmFtZXNwYWNlIGNvbnRhaW5zIHRoZSBzcGVjaWFsIG1vZHVsZSBmdW5jdGlvbnMgZm9yIEZBUS4KICovCkZBUS5BZ2VudC5GQVEgPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgLyoqCiAgICAgKiBAbmFtZSBJbml0CiAgICAgKiBAbWVtYmVyb2YgRkFRLkFnZW50LkZBUQogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgVGhpcyBmdW5jdGlvbiBpbml0aWFsaXplIHRoZSBGQVEgbW9kdWxlLgogICAgICovCiAgICBUYXJnZXROUy5Jbml0ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIEZBUVNlYXJjaFByb2ZpbGUgPSBDb3JlLkNvbmZpZy5HZXQoJ0ZBUVNlYXJjaFByb2ZpbGUnKTsKCiAgICAgICAgLy8gUHJldmVudCB0b28gZmFzdCBzdWJtaXRpb25zIHRoYXQgY291bGQgbGVhZCBpbnRvIG5vIGNoYW5nZXMgc2VudCB0byBzZXJ2ZXIsCiAgICAgICAgLy8gZHVlIHRvIFJURSB0byB0ZXh0YXJlYSBkYXRhIHRyYW5zZmVyCiAgICAgICAgJCgnI0ZBUVN1Ym1pdCcpLm9uKCdjbGljaycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgJCgnI0ZBUVN1Ym1pdCcpLmNsb3Nlc3QoJ2Zvcm0nKS5zdWJtaXQoKTsKICAgICAgICAgICAgfSwgMjUwKTsKICAgICAgICB9KTsKCiAgICAgICAgJCgnI0FnZW50RkFRU2VhcmNoJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICBDb3JlLkFnZW50LlNlYXJjaC5PcGVuU2VhcmNoRGlhbG9nKCdBZ2VudEZBUVNlYXJjaCcpOwogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfSk7CgogICAgICAgIGlmIChGQVFTZWFyY2hQcm9maWxlICE9PSAndW5kZWZpbmVkJykgewogICAgICAgICAgICAkKCcjRkFRU2VhcmNoJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgQ29yZS5BZ2VudC5TZWFyY2guT3BlblNlYXJjaERpYWxvZyhDb3JlLkNvbmZpZy5HZXQoJ0FjdGlvbicpLCBGQVFTZWFyY2hQcm9maWxlKTsKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfQoKICAgICAgICAkKCcjU2hvd0NvbnRleHRTZXR0aW5nc0RpYWxvZycpLm9uKCdjbGljaycsIGZ1bmN0aW9uIChFdmVudCkgewogICAgICAgICAgICBDb3JlLlVJLkRpYWxvZy5TaG93Q29udGVudERpYWxvZygkKCcjQ29udGV4dFNldHRpbmdzRGlhbG9nQ29udGFpbmVyJyksIENvcmUuTGFuZ3VhZ2UuVHJhbnNsYXRlKCJTZXR0aW5ncyIpLCAnMjAlJywgJ0NlbnRlcicsIHRydWUsCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMYWJlbDogQ29yZS5MYW5ndWFnZS5UcmFuc2xhdGUoIlN1Ym1pdCIpLAogICAgICAgICAgICAgICAgICAgICAgICBUeXBlOiAnU3VibWl0JywKICAgICAgICAgICAgICAgICAgICAgICAgQ2xhc3M6ICdQcmltYXJ5JwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgRXZlbnQucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgRXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9KTsKCiAgICAgICAgaWYgKENvcmUuQ29uZmlnLkdldCgnQWdlbnRGQVFTZWFyY2gnKSA9PT0gMSkgewogICAgICAgICAgICBDb3JlLkFnZW50LlNlYXJjaC5PcGVuU2VhcmNoRGlhbG9nKENvcmUuQ29uZmlnLkdldCgnQWN0aW9uJyksIEZBUVNlYXJjaFByb2ZpbGUpOwogICAgICAgIH0KICAgIH07CgogICAgQ29yZS5Jbml0LlJlZ2lzdGVyTmFtZXNwYWNlKFRhcmdldE5TLCAnQVBQX01PRFVMRScpOwoKICAgIHJldHVybiBUYXJnZXROUzsKfShGQVEuQWdlbnQuRkFRIHx8IHt9KSk7Cg==</File>
        <File Location="var/httpd/htdocs/js/FAQ.Agent.FAQZoom.js" Permission="660" Encode="Base64">Ly8gLS0KLy8gT1RPQk8gaXMgYSB3ZWItYmFzZWQgdGlja2V0aW5nIHN5c3RlbSBmb3Igc2VydmljZSBvcmdhbmlzYXRpb25zLgovLyAtLQovLyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAyMCBPVFJTIEFHLCBodHRwczovL290cnMuY29tLwovLyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyNSBSb3RoZXIgT1NTIEdtYkgsIGh0dHBzOi8vb3RvYm8uaW8vCi8vIC0tCi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCi8vIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCi8vIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAovLyBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUwovLyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgRkFRID0gRkFRIHx8IHt9OwpGQVEuQWdlbnQgPSBGQVEuQWdlbnQgfHwge307CgovKioKICogQG5hbWVzcGFjZQogKiBAZXhwb3J0cyBUYXJnZXROUyBhcyBGQVEuQWdlbnQuVGlja2V0Wm9vbQogKiBAZGVzY3JpcHRpb24KICogICAgICBUaGlzIG5hbWVzcGFjZSBjb250YWlucyB0aGUgc3BlY2lhbCBtb2R1bGUgZnVuY3Rpb25zIGZvciBUaWNrZXRab29tLgogKi8KRkFRLkFnZW50LkZBUVpvb20gPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgLyoqCiAgICAgKiBAbmFtZSBJZnJhbWVBdXRvSGVpZ2h0CiAgICAgKiBAbWVtYmVyb2YgRkFRLkFnZW50LkZBUVpvb20KICAgICAqIEBmdW5jdGlvbgogICAgICogQHBhcmFtIHtqUXVlcnlPYmplY3R9ICRJZnJhbWUgLSBUaGUgaWZyYW1lIHdoaWNoIHNob3VsZCBiZSBhdXRvLWhlaWdodGVkCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgU2V0IGlmcmFtZSBoZWlnaHQgYXV0b21hdGljYWxseSBiYXNlZCBvbiByZWFsIGNvbnRlbnQgaGVpZ2h0IGFuZCBkZWZhdWx0IGNvbmZpZyBzZXR0aW5nLgogICAgICovCiAgICBUYXJnZXROUy5JZnJhbWVBdXRvSGVpZ2h0ID0gZnVuY3Rpb24gKCRJZnJhbWUpIHsKCiAgICAgICAgdmFyIE5ld0hlaWdodCwKICAgICAgICAgICAgSWZyYW1lQm9keUhlaWdodCwKICAgICAgICAgICAgQXJ0aWNsZUhlaWdodE1heCA9IENvcmUuQ29uZmlnLkdldCgnRkFROjpGcm9udGVuZDo6QWdlbnRIVE1MRmllbGRIZWlnaHRNYXgnKTsKCiAgICAgICAgaWYgKGlzSlF1ZXJ5T2JqZWN0KCRJZnJhbWUpKSB7CiAgICAgICAgICAgIC8vIHNsaWdodGx5IGNoYW5nZSB0aGUgd2lkdGggb2YgdGhlIGlmcmFtZSB0byBub3QgYmUgZXhhY3RseSAxMDAlIHdpZHRoIGFueW1vcmUKICAgICAgICAgICAgLy8gdGhpcyBwcmV2ZW50cyBhIGRvdWJsZSBob3Jpem9udGFsIHNjcm9sbGJhciAoZnJvbSBpZnJhbWUgYW5kIHN1cnJvdW5kaW5nIGRpdikKICAgICAgICAgICAgJElmcmFtZS53aWR0aCgkSWZyYW1lLndpZHRoKCkgLSAyKTsKCiAgICAgICAgICAgIElmcmFtZUJvZHlIZWlnaHQgPSAkSWZyYW1lLmNvbnRlbnRzKCkuZmluZCgnYm9keScpLmhlaWdodCgpOwogICAgICAgICAgICBOZXdIZWlnaHQgPSAkSWZyYW1lLmNvbnRlbnRzKCkuaGVpZ2h0KCk7CgogICAgICAgICAgICAvLyBpZiB0aGUgaUZyYW1lcyBoZWlnaHQgaXMgMCwgd2UgY29sbGFwc2UgdGhlIHdpZGdldAogICAgICAgICAgICBpZiAoTmV3SGVpZ2h0ID09PSAwKSB7CiAgICAgICAgICAgICAgICAkSWZyYW1lLmNsb3Nlc3QoJy5XaWRnZXRTaW1wbGUnKS5yZW1vdmVDbGFzcygnRXhwYW5kZWQnKS5hZGRDbGFzcygnQ29sbGFwc2VkJyk7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoIU5ld0hlaWdodCB8fCBpc05hTihOZXdIZWlnaHQpKSB7CiAgICAgICAgICAgICAgICBOZXdIZWlnaHQgPSBDb3JlLkNvbmZpZy5HZXQoJ0ZBUTo6RnJvbnRlbmQ6OkFnZW50SFRNTEZpZWxkSGVpZ2h0RGVmYXVsdCcpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgaWYgKElmcmFtZUJvZHlIZWlnaHQgPiBBcnRpY2xlSGVpZ2h0TWF4CiAgICAgICAgICAgICAgICAgICAgfHwgTmV3SGVpZ2h0ID4gQXJ0aWNsZUhlaWdodE1heCkgewogICAgICAgICAgICAgICAgICAgIE5ld0hlaWdodCA9IEFydGljbGVIZWlnaHRNYXg7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIGlmIChJZnJhbWVCb2R5SGVpZ2h0ID4gTmV3SGVpZ2h0KSB7CiAgICAgICAgICAgICAgICAgICAgTmV3SGVpZ2h0ID0gSWZyYW1lQm9keUhlaWdodDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gYWRkIGRlbHRhIGZvciBzY3JvbGxiYXIKICAgICAgICAgICAgaWYgKE5ld0hlaWdodCA+IDApIHsKICAgICAgICAgICAgICAgIE5ld0hlaWdodCA9IHBhcnNlSW50KE5ld0hlaWdodCwgMTApICsgMjU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRJZnJhbWUuaGVpZ2h0KE5ld0hlaWdodCArICdweCcpOwogICAgICAgIH0KICAgIH07CgogICAgLyoqCiAgICAgKiBAbmFtZSBJbml0CiAgICAgKiBAbWVtYmVyb2YgRkFRLkFnZW50LkZBUVpvb20KICAgICAqIEBmdW5jdGlvbgogICAgICogQGRlc2NyaXB0aW9uCiAgICAgKiAgICAgIFRoaXMgZnVuY3Rpb24gaW5pdGlhbGl6ZSB0aGUgRkFRWm9vbSBtb2R1bGUuCiAgICAgKi8KICAgIFRhcmdldE5TLkluaXQgPSBmdW5jdGlvbigpIHsKCiAgICAgICAgLy8gaW5pdCBicm93c2VyIGxpbmsgbWVzc2FnZSBjbG9zZSBidXR0b24KICAgICAgICBpZiAoJCgnLkZBUU1lc3NhZ2VCcm93c2VyJykubGVuZ3RoKSB7CiAgICAgICAgICAgICQoJy5GQVFNZXNzYWdlQnJvd3NlciBhLkNsb3NlJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgJCgnLkZBUU1lc3NhZ2VCcm93c2VyJykuZmFkZU91dCgic2xvdyIpOwogICAgICAgICAgICAgICAgQ29yZS5BZ2VudC5QcmVmZXJlbmNlc1VwZGF0ZSgnVXNlckFnZW50RG9Ob3RTaG93QnJvd3NlckxpbmtNZXNzYWdlJywgMSk7CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KCiAgICAgICAgICAgICQoJ3VsLkFjdGlvbnMgYS5Bc1BvcHVwJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICBDb3JlLlVJLlBvcHVwLk9wZW5Qb3B1cCAoJCh0aGlzKS5hdHRyKCdocmVmJyksICdBY3Rpb24nKTsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0pOwoKICAgICAgICAkKCcuUmF0ZUJ1dHRvbicpLm9uKCdjbGljaycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIFJhdGVOdW1iZXIgPSBwYXJzZUludCgkKHRoaXMpLmNsb3Nlc3QoJ2xpJykuYXR0cignaWQnKS5yZXBsYWNlKC9SYXRlQnV0dG9uLywgJycpLCAxMCk7CiAgICAgICAgICAgICQoJyNSYXRlVmFsdWUnKS52YWwoUmF0ZU51bWJlcik7CiAgICAgICAgICAgICQoJyNSYXRlU3VibWl0QnV0dG9uJykuZmFkZUluKDI1MCk7CiAgICAgICAgICAgICQoJyNGQVFWb3RpbmcnKS5maW5kKCcuUmF0ZUJ1dHRvbicpLmVhY2goZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICB2YXIgSXRlbVJhdGVOdW1iZXIgPSBwYXJzZUludCgkKHRoaXMpLmNsb3Nlc3QoJ2xpJykuYXR0cignaWQnKS5yZXBsYWNlKC9SYXRlQnV0dG9uLywgJycpLCAxMCk7CiAgICAgICAgICAgICAgICBpZiAoSXRlbVJhdGVOdW1iZXIgPD0gUmF0ZU51bWJlcikgewogICAgICAgICAgICAgICAgICAgICQodGhpcykuYWRkQ2xhc3MoJ1JhdGVDaGVja2VkJyk7CiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcygnUmF0ZVVuQ2hlY2tlZCcpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcygnUmF0ZVVuQ2hlY2tlZCcpOwogICAgICAgICAgICAgICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3MoJ1JhdGVDaGVja2VkJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pOwoKICAgICAgICAvLyBDcmVhdGUgZXZlbnRzIGZvciBBZ2VudEZBUVpvb21TbWFsbCBzY3JlZW4uCiAgICAgICAgaWYgKHBhcnNlSW50KENvcmUuQ29uZmlnLkdldCgnQWdlbnRGQVFab29tU21hbGwnKSwgMTApID09PSAxKSB7CgogICAgICAgICAgICAkKCcjQ2FuY2VsJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcGFyZW50LkNvcmUuVUkuRGlhbG9nLkNsb3NlRGlhbG9nKCQoJy5EaWFsb2cnLCBwYXJlbnQuZG9jdW1lbnQpKTsKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAkKCcjSW5zZXJ0VGV4dCcpLm9uKCdjbGljaycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHZhciBJbnNlcnRUZXh0ID0gMSwKICAgICAgICAgICAgICAgICAgICBJbnNlcnRMaW5rID0gMDsKCiAgICAgICAgICAgICAgICBGQVEuQWdlbnQuVGlja2V0Q29tcG9zZS5TZXRUZXh0KEluc2VydFRleHQsIEluc2VydExpbmspOwogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICQoJyNJbnNlcnRMaW5rJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdmFyIEluc2VydFRleHQgPSAwLAogICAgICAgICAgICAgICAgICAgIEluc2VydExpbmsgPSAxOwoKICAgICAgICAgICAgICAgIEZBUS5BZ2VudC5UaWNrZXRDb21wb3NlLlNldFRleHQoSW5zZXJ0VGV4dCwgSW5zZXJ0TGluayk7CiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgJCgnI0luc2VydFRleHRBbmRMaW5rJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdmFyIEluc2VydFRleHQgPSAxLAogICAgICAgICAgICAgICAgICAgIEluc2VydExpbmsgPSAxOwoKICAgICAgICAgICAgICAgIEZBUS5BZ2VudC5UaWNrZXRDb21wb3NlLlNldFRleHQoSW5zZXJ0VGV4dCwgSW5zZXJ0TGluayk7CiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgJCgnI0luc2VydEZ1bGwnKS5vbignY2xpY2snLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB2YXIgSW5zZXJ0VGV4dCA9IDEsCiAgICAgICAgICAgICAgICAgICAgSW5zZXJ0TGluayA9IDA7CgogICAgICAgICAgICAgICAgRkFRLkFnZW50LlRpY2tldENvbXBvc2UuU2V0RnVsbEZBUShJbnNlcnRUZXh0LCBJbnNlcnRMaW5rKTsKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAkKCcjSW5zZXJ0RnVsbEFuZExpbmsnKS5vbignY2xpY2snLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB2YXIgSW5zZXJ0VGV4dCA9IDEsCiAgICAgICAgICAgICAgICAgICAgSW5zZXJ0TGluayA9IDE7CgogICAgICAgICAgICAgICAgRkFRLkFnZW50LlRpY2tldENvbXBvc2UuU2V0RnVsbEZBUShJbnNlcnRUZXh0LCBJbnNlcnRMaW5rKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfQoKICAgICAgICAvLyBJbml0aWFsaXplIGFsbG9jYXRpb24gbGlzdCBmb3IgbGluayBvYmplY3QgdGFibGUuCiAgICAgICAgQ29yZS5BZ2VudC5UYWJsZUZpbHRlcnMuU2V0QWxsb2NhdGlvbkxpc3QoKTsKICAgIH07CgogICAgQ29yZS5Jbml0LlJlZ2lzdGVyTmFtZXNwYWNlKFRhcmdldE5TLCAnQVBQX01PRFVMRScpOwoKICAgIHJldHVybiBUYXJnZXROUzsKfShGQVEuQWdlbnQuRkFRWm9vbSB8fCB7fSkpOwo=</File>
        <File Location="var/httpd/htdocs/js/FAQ.Agent.RelatedArticles.js" Permission="660" Encode="Base64">Ly8gLS0KLy8gT1RPQk8gaXMgYSB3ZWItYmFzZWQgdGlja2V0aW5nIHN5c3RlbSBmb3Igc2VydmljZSBvcmdhbmlzYXRpb25zLgovLyAtLQovLyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAyMCBPVFJTIEFHLCBodHRwczovL290cnMuY29tLwovLyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyNSBSb3RoZXIgT1NTIEdtYkgsIGh0dHBzOi8vb3RvYm8uaW8vCi8vIC0tCi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCi8vIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCi8vIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAovLyBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUwovLyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgRkFRID0gRkFRIHx8IHt9OwpGQVEuQWdlbnQgPSBGQVEuQWdlbnQgfHwge307CgovKioKICogQG5hbWVzcGFjZQogKiBAZXhwb3J0cyBUYXJnZXROUyBhcyBGQVEuQWdlbnQuUmVsYXRlZEFydGljbGVzCiAqIEBkZXNjcmlwdGlvbgogKiAgICAgIFRoaXMgbmFtZXNwYWNlIGNvbnRhaW5zIHRoZSBzcGVjaWFsIG1vZHVsZSBmdW5jdGlvbnMgZm9yIEZBUS4KICovCkZBUS5BZ2VudC5SZWxhdGVkQXJ0aWNsZXMgPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgLyoqCiAgICAgKiBAbmFtZSBJbml0CiAgICAgKiBAbWVtYmVyb2YgRkFRLkFnZW50LlJlbGF0ZWRBcnRpY2xlcwogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgVGhpcyBmdW5jdGlvbiBpbml0aWFsaXplIHRoZSBGQVEgbW9kdWxlIChmdW5jdGlvbmFsaXR5IGZvciByZWxhdGVkIGFydGljbGVzKS4KICAgICAqLwogICAgVGFyZ2V0TlMuSW5pdCA9IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBXaWRnZXRQb3NpdGlvbiA9IENvcmUuQ29uZmlnLkdldCgnQWdlbnRGQVFSZWxhdGVkQXJ0aWNsZXNQb3NpdGlvbicpLAogICAgICAgICAgICBRdWV1ZXNFbmFibGVkICA9IENvcmUuQ29uZmlnLkdldCgnQWdlbnRGQVFSZWxhdGVkQXJ0aWNsZXNRdWV1ZXMnKSwKICAgICAgICAgICAgTGFzdERhdGEsCiAgICAgICAgICAgIExhc3RSZXNwb25zZSwKICAgICAgICAgICAgU2xpZGVEdXJhdGlvbiAgPSA0MDAsCiAgICAgICAgICAgIEhlbHBUZXh0ICAgICAgID0gQ29yZS5MYW5ndWFnZS5UcmFuc2xhdGUoJ1RoaXMgbWlnaHQgYmUgaGVscGZ1bCcpLAogICAgICAgICAgICAkV2lkZ2V0ICAgICAgICA9ICQoJzxsYWJlbCBpZD0iRkFRUmVsYXRlZEFydGljbGVzTGFiZWwiIGZvcj0iRkFRUmVsYXRlZEFydGljbGVzIj4nICsgSGVscFRleHQgKyAnOjwvbGFiZWw+PGRpdiBpZD0iRkFRUmVsYXRlZEFydGljbGVzIiBjbGFzcz0iRmllbGQiIHN0eWxlPSJtaW4taGVpZ2h0OiAwcHg7Ij48L2Rpdj48ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+JyksCiAgICAgICAgICAgICRBSkFYTG9hZGVyICAgID0gJCgnPHNwYW4gaWQ9IkFKQVhMb2FkZXJGQVFSZWxhdGVkQXJ0aWNsZXMiIGNsYXNzPSJBSkFYTG9hZGVyIj48L3NwYW4+Jyk7CgogICAgICAgIC8vIFdpZGdldCBwb3NpdGlvbiBiZWxvdyBzdWJqZWN0LgogICAgICAgIGlmIChXaWRnZXRQb3NpdGlvbiA9PSAxKSB7CgogICAgICAgICAgICAkKCcjU3ViamVjdCcpCiAgICAgICAgICAgICAgICAucGFyZW50KCkKICAgICAgICAgICAgICAgIC5uZXh0KCkKICAgICAgICAgICAgICAgIC5hZnRlcigkV2lkZ2V0KTsKICAgICAgICB9CiAgICAgICAgLy8gV2lkZ2V0IHBvc2l0aW9uIGJlbG93IHRleHQuCiAgICAgICAgZWxzZSBpZiAoV2lkZ2V0UG9zaXRpb24gPT0gMikgewoKICAgICAgICAgICAgJCgnI1JpY2hUZXh0JykKICAgICAgICAgICAgICAgIC5wYXJlbnQoKQogICAgICAgICAgICAgICAgLm5leHQoKQogICAgICAgICAgICAgICAgLmFmdGVyKCRXaWRnZXQpOwogICAgICAgIH0KCiAgICAgICAgLy8gSGlkZSB0aGUgd2lkZ2V0IGJ5IGRlZmF1bHQuCiAgICAgICAgJCgnI0ZBUVJlbGF0ZWRBcnRpY2xlc0xhYmVsJykuaGlkZSgpOwogICAgICAgICQoJyNGQVFSZWxhdGVkQXJ0aWNsZXMnKS5oaWRlKCk7CgogICAgICAgIC8vIENyZWF0ZSBhbmQgaGlkZSBBSkFYTG9hZGVyLgogICAgICAgICQoJyNTdWJqZWN0JykuYWZ0ZXIoJEFKQVhMb2FkZXIpOwogICAgICAgICRBSkFYTG9hZGVyLmhpZGUoKTsKCiAgICAgICAgQ29yZS5BcHAuU3Vic2NyaWJlKCdFdmVudC5VSS5SaWNoVGV4dEVkaXRvci5JbnN0YW5jZVJlYWR5JywgZnVuY3Rpb24oKSB7CgogICAgICAgICAgICAkKCcjRGVzdCcpLm9uKCdjaGFuZ2UuUmVsYXRlZEZBUUFydGljbGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB2YXIgU2VsZWN0ZWRRdWV1ZSA9ICQodGhpcykudmFsKCksCiAgICAgICAgICAgICAgICAgICAgU2VsZWN0ZWRRdWV1ZU5hbWUgPSBTZWxlY3RlZFF1ZXVlLnJlcGxhY2UoL1xkKlx8XHwtPy8sICcnKTsKCiAgICAgICAgICAgICAgICBpZiAoKCFRdWV1ZXNFbmFibGVkLmxlbmd0aCB8fCAhU2VsZWN0ZWRRdWV1ZU5hbWUgfHwgJC5pbkFycmF5KFNlbGVjdGVkUXVldWVOYW1lLCBRdWV1ZXNFbmFibGVkKSA+IC0xKSkgewoKICAgICAgICAgICAgICAgICAgICBpZiAoJCgnI1N1YmplY3QnKS52YWwoKSB8fCBDS0VkaXRvckluc3RhbmNlc1snUmljaFRleHQnXS5nZXREYXRhKCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJCgnI1N1YmplY3QnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIGlmICghU2VsZWN0ZWRRdWV1ZU5hbWUgfHwgKFF1ZXVlc0VuYWJsZWQubGVuZ3RoICYmICQuaW5BcnJheShTZWxlY3RlZFF1ZXVlTmFtZSwgUXVldWVzRW5hYmxlZCkgPT0gLTEpKSB7CgogICAgICAgICAgICAgICAgICAgIGlmICgkKCcjRkFRUmVsYXRlZEFydGljbGVzJykuaHRtbCgpKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAvLyBIaWRlIGxhYmVsICsgZmllbGQuCiAgICAgICAgICAgICAgICAgICAgICAgICQoJyNGQVFSZWxhdGVkQXJ0aWNsZXNMYWJlbCcpLmhpZGUoKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICQoJyNGQVFSZWxhdGVkQXJ0aWNsZXMnKS5zbGlkZVVwKFNsaWRlRHVyYXRpb24sIGZ1bmN0aW9uICgpIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcjRkFRUmVsYXRlZEFydGljbGVzJykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZW1wdHkoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jc3MoJ3BhZGRpbmctdG9wJywgJzBweCcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNzcygncGFkZGluZy1ib3R0b20nLCAnMHB4Jyk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAkKCcjU3ViamVjdCcpLm9uKCdjaGFuZ2UnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB2YXIgU2VsZWN0ZWRRdWV1ZSA9ICQoJyNEZXN0JykudmFsKCksCiAgICAgICAgICAgICAgICAgICAgU2VsZWN0ZWRRdWV1ZU5hbWUsCiAgICAgICAgICAgICAgICAgICAgRGF0YTsKCiAgICAgICAgICAgICAgICBpZiAoU2VsZWN0ZWRRdWV1ZSkgewogICAgICAgICAgICAgICAgICAgIFNlbGVjdGVkUXVldWVOYW1lID0gU2VsZWN0ZWRRdWV1ZS5yZXBsYWNlKC9cZCpcfFx8LT8vLCAnJyk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCFRdWV1ZXNFbmFibGVkLmxlbmd0aCB8fCAhU2VsZWN0ZWRRdWV1ZU5hbWUgfHwgJC5pbkFycmF5KFNlbGVjdGVkUXVldWVOYW1lLCBRdWV1ZXNFbmFibGVkKSA+IC0xKSB7CgogICAgICAgICAgICAgICAgICAgIERhdGEgPSB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFjdGlvbjogJ0FnZW50RkFRUmVsYXRlZEFydGljbGVzJywKICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdDogJCgnI1N1YmplY3QnKS52YWwoKSwKICAgICAgICAgICAgICAgICAgICAgICAgQm9keTogQ0tFZGl0b3JJbnN0YW5jZXNbJ1JpY2hUZXh0J10uZ2V0RGF0YSgpCiAgICAgICAgICAgICAgICAgICAgfTsKCiAgICAgICAgICAgICAgICAgICAgaWYgKCFMYXN0RGF0YSB8fCBMYXN0RGF0YS5TdWJqZWN0ICE9IERhdGEuU3ViamVjdCB8fCBMYXN0RGF0YS5Cb2R5ICE9IERhdGEuQm9keSkgewoKICAgICAgICAgICAgICAgICAgICAgICAgJEFKQVhMb2FkZXIuc2hvdygpOwoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCQoJyNTdWJqZWN0JykuZGF0YSgnUmVsYXRlZEZBUUFydGljbGVzWEhSJykpIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcjU3ViamVjdCcpLmRhdGEoJ1JlbGF0ZWRGQVFBcnRpY2xlc1hIUicpLmFib3J0KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcjU3ViamVjdCcpLnJlbW92ZURhdGEoJ1JlbGF0ZWRGQVFBcnRpY2xlc1hIUicpOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAkKCcjU3ViamVjdCcpLmRhdGEoJ1JlbGF0ZWRGQVFBcnRpY2xlc1hIUicsIENvcmUuQUpBWC5GdW5jdGlvbkNhbGwoQ29yZS5Db25maWcuR2V0KCdCYXNlbGluaycpLCBEYXRhLCBmdW5jdGlvbiAoUmVzcG9uc2UpIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgQW1vdW50T2xkRWxlbWVudHMgPSAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFtb3VudE5ld0VsZW1lbnRzID0gMDsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcjU3ViamVjdCcpLnJlbW92ZURhdGEoJ1JlbGF0ZWRGQVFBcnRpY2xlc1hIUicpOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlbWVtYmVyIHRoZSBsYXN0IGRhdGEgdG8gZXhlY3V0ZSB0aGUgYWpheCByZXF1ZXN0IG9ubHkgaWYgbmVjZXNzYXJ5LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFzdERhdGEgPSBEYXRhOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkKCcjRkFRUmVsYXRlZEFydGljbGVzJykubGVuZ3RoKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChSZXNwb25zZSAmJiBSZXNwb25zZS5TdWNjZXNzKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBPbmx5IGNoYW5nZSB0aGUgY29udGVudCwgaWYgd2UgZ290IG5ldyBjb250ZW50LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIUxhc3RSZXNwb25zZSB8fCBMYXN0UmVzcG9uc2UgIT0gUmVzcG9uc2UuQWdlbnRSZWxhdGVkRkFRQXJ0aWNsZXNIVE1MU3RyaW5nKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgYXJlIHByZXZpb3VzIGZvdW5kIEZBUSBhcnRpY2xlcywgZG8gbm90IHN0YXJ0IHdpdGggcGFnZSBmbGlja2VyaW5nLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW5zdGVhZCB3ZSBhcmUgZ29pbmcgdG8gcmVwbGFjZSBvbmx5IHRoZSB0YWJsZSB2ZXJ5IHNtb290aGx5LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCQoJyNGQVFSZWxhdGVkQXJ0aWNsZXMnKS5odG1sKCkpIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQW1vdW50T2xkRWxlbWVudHMgPSAkKCcjRkFRUmVsYXRlZEFydGljbGVzIHRhYmxlIHRyJykubGVuZ3RoOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFtb3VudE5ld0VsZW1lbnRzID0gJChSZXNwb25zZS5BZ2VudFJlbGF0ZWRGQVFBcnRpY2xlc0hUTUxTdHJpbmcpLmZpbmQoJ3RyJykubGVuZ3RoOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBPbmx5IHVzZSBzbGlkZSBlZmZlY3QsIGlmIGl0IGlzIHJlYWxseSBuZWVkZWQuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEFtb3VudE9sZEVsZW1lbnRzICE9IEFtb3VudE5ld0VsZW1lbnRzKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcjRkFRUmVsYXRlZEFydGljbGVzJykuc2xpZGVVcChTbGlkZUR1cmF0aW9uLCBmdW5jdGlvbiAoKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnI0ZBUVJlbGF0ZWRBcnRpY2xlcycpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmVtcHR5KCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaHRtbChSZXNwb25zZS5BZ2VudFJlbGF0ZWRGQVFBcnRpY2xlc0hUTUxTdHJpbmcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNzcygncGFkZGluZy10b3AnLCAnM3B4JykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY3NzKCdwYWRkaW5nLWJvdHRvbScsICczcHgnKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zbGlkZURvd24oU2xpZGVEdXJhdGlvbik7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnI0ZBUVJlbGF0ZWRBcnRpY2xlc0xhYmVsJykuc2hvdygpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcjRkFRUmVsYXRlZEFydGljbGVzJykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5lbXB0eSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaHRtbChSZXNwb25zZS5BZ2VudFJlbGF0ZWRGQVFBcnRpY2xlc0hUTUxTdHJpbmcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY3NzKCdwYWRkaW5nLXRvcCcsICczcHgnKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNzcygncGFkZGluZy1ib3R0b20nLCAnM3B4Jyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJyNGQVFSZWxhdGVkQXJ0aWNsZXMnKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaHRtbChSZXNwb25zZS5BZ2VudFJlbGF0ZWRGQVFBcnRpY2xlc0hUTUxTdHJpbmcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jc3MoJ3BhZGRpbmctdG9wJywgJzNweCcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jc3MoJ3BhZGRpbmctYm90dG9tJywgJzNweCcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zbGlkZURvd24oU2xpZGVEdXJhdGlvbiwgZnVuY3Rpb24gKCkgewoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJyNGQVFSZWxhdGVkQXJ0aWNsZXNMYWJlbCcpLnNob3coKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlbWVtYmVyIGxhc3QgaHRtbCBzdHJpbmcgZnJvbSByZXNwb25zZS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFzdFJlc3BvbnNlID0gUmVzcG9uc2UuQWdlbnRSZWxhdGVkRkFRQXJ0aWNsZXNIVE1MU3RyaW5nOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEhpZGUgbGFiZWwgKyBmaWVsZC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnI0ZBUVJlbGF0ZWRBcnRpY2xlc0xhYmVsJykuaGlkZSgpOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnI0ZBUVJlbGF0ZWRBcnRpY2xlcycpLnNsaWRlVXAoU2xpZGVEdXJhdGlvbiwgZnVuY3Rpb24gKCkgewoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJyNGQVFSZWxhdGVkQXJ0aWNsZXMnKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5lbXB0eSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNzcygncGFkZGluZy10b3AnLCAnMHB4JykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY3NzKCdwYWRkaW5nLWJvdHRvbScsICcwcHgnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBSZW1lbWJlciBsYXN0IGh0bWwgc3RyaW5nIChlbXB0eSkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhc3RSZXNwb25zZSA9IHVuZGVmaW5lZDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlbW92ZSBsb2FkaW5nIGNsYXNzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRBSkFYTG9hZGVyLmhpZGUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSkpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAkKCcjU3ViamVjdCcpLm9uKCdwYXN0ZSBrZXlkb3duJywgZnVuY3Rpb24gKEV2ZW50KSB7CiAgICAgICAgICAgICAgICB2YXIgVmFsdWUgPSAkKCcjU3ViamVjdCcpLnZhbCgpOwoKICAgICAgICAgICAgICAgIC8vIHRyaWdnZXIgb25seSB0aGUgY2hhbmdlIGV2ZW50IGZvciB0aGUgc3ViamVjdCwgaWYgc3BhY2Ugb3IgZW50ZXIgd2FzIHByZXNzZWQKICAgICAgICAgICAgICAgIGlmICgoRXZlbnQudHlwZSA9PT0gJ2tleWRvd24nICYmIChFdmVudC53aGljaCA9PSAzMiB8fCBFdmVudC53aGljaCA9PSAxMykgJiYgKFZhbHVlLmxlbmd0aCA+IDEwIHx8IENLRWRpdG9ySW5zdGFuY2VzWydSaWNoVGV4dCddLmdldERhdGEoKSkpIHx8IEV2ZW50LnR5cGUgIT09ICdrZXlkb3duJykgewogICAgICAgICAgICAgICAgICAgICQoJyNTdWJqZWN0JykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgLy8gVGhlICJjaGFuZ2UiIGV2ZW50IGlzIGZpcmVkIHdoZW5ldmVyIGEgY2hhbmdlIGlzIG1hZGUgaW4gdGhlIGVkaXRvci4KICAgICAgICAgICAgQ0tFZGl0b3JJbnN0YW5jZXNbJ1JpY2hUZXh0J10ub24oJ2tleScsIGZ1bmN0aW9uIChFdmVudCkgewoKICAgICAgICAgICAgICAgIC8vIHRyaWdnZXIgb25seSB0aGUgY2hhbmdlIGV2ZW50IGZvciB0aGUgc3ViamVjdCwgaWYgc3BhY2Ugb3IgZW50ZXIgd2FzIHByZXNzZWQKICAgICAgICAgICAgICAgIGlmIChFdmVudC5kYXRhLmtleUNvZGUgPT0gMzIgfHwgRXZlbnQuZGF0YS5rZXlDb2RlID09IDEzKSB7CiAgICAgICAgICAgICAgICAgICAgJCgnI1N1YmplY3QnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAvLyBUaGUgInBhc3RlIiBldmVudCBpcyBmaXJlZCB3aGVuZXZlciBhIHBhc3RlIGlzIG1hZGUgaW4gdGhlIGVkaXRvci4KICAgICAgICAgICAgQ0tFZGl0b3JJbnN0YW5jZXNbJ1JpY2hUZXh0J10ub24oJ3Bhc3RlJywgZnVuY3Rpb24gKCkgewoKICAgICAgICAgICAgICAgIC8vIHRyaWdnZXIgb25seSB0aGUgY2hhbmdlIGV2ZW50IGZvciB0aGUgc3ViamVjdAogICAgICAgICAgICAgICAgJCgnI1N1YmplY3QnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAvLyBUaGUgImJsdXIiIGV2ZW50IGlzIGZpcmVkIHdoZW5ldmVyIGEgYmx1ciBpcyBtYWRlIGluIHRoZSBlZGl0b3IuCiAgICAgICAgICAgIENLRWRpdG9ySW5zdGFuY2VzWydSaWNoVGV4dCddLm9uKCdibHVyJywgZnVuY3Rpb24gKCkgewoKICAgICAgICAgICAgICAgIC8vIHRyaWdnZXIgb25seSB0aGUgY2hhbmdlIGV2ZW50IGZvciB0aGUgc3ViamVjdAogICAgICAgICAgICAgICAgJCgnI1N1YmplY3QnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAvLyBUcmlnZ2VyIHRoZSAnUmVsYXRlZEZBUUFydGljbGUnIGNoYW5nZSBldmVudCB0byBoaWRlL3Nob3cgdGhlIHJlbGF0ZWQgZmFxIGFydGljbGUgd2lkZ2V0IGZvciB0aGUgY2FzZQogICAgICAgICAgICAvLyAgdGhhdCB0aGUgcXVldWUgaXMgYWxyZWFkeSBzZWxlY3RlZCBhdCB0aGUgcGFnZSBsb2FkIG9yIHNob3cgdGhlIHdpZGdldCBhbHdheXMgaWYgdGhlIHF1ZXVlIHNlbGVjdGlvbiBpcyBkaXNhYmxlZC4KICAgICAgICAgICAgaWYgKCEkKCcjRGVzdCcpLmxlbmd0aCkgewoKICAgICAgICAgICAgICAgIGlmICgkKCcjU3ViamVjdCcpLnZhbCgpIHx8IENLRWRpdG9ySW5zdGFuY2VzWydSaWNoVGV4dCddLmdldERhdGEoKSkgewogICAgICAgICAgICAgICAgICAgICQoJyNTdWJqZWN0JykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkKCcjRGVzdCcpLnRyaWdnZXIoJ2NoYW5nZS5SZWxhdGVkRkFRQXJ0aWNsZScpOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICB9OwoKICAgIENvcmUuSW5pdC5SZWdpc3Rlck5hbWVzcGFjZShUYXJnZXROUywgJ0FQUF9NT0RVTEUnKTsKCiAgICByZXR1cm4gVGFyZ2V0TlM7Cn0oRkFRLkFnZW50LlJlbGF0ZWRBcnRpY2xlcyB8fCB7fSkpOwo=</File>
        <File Location="var/httpd/htdocs/js/FAQ.Agent.TicketCompose.js" Permission="660" Encode="Base64">Ly8gLS0KLy8gT1RPQk8gaXMgYSB3ZWItYmFzZWQgdGlja2V0aW5nIHN5c3RlbSBmb3Igc2VydmljZSBvcmdhbmlzYXRpb25zLgovLyAtLQovLyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAyMCBPVFJTIEFHLCBodHRwczovL290cnMuY29tLwovLyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyNSBSb3RoZXIgT1NTIEdtYkgsIGh0dHBzOi8vb3RvYm8uaW8vCi8vIC0tCi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCi8vIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCi8vIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAovLyBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUwovLyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgRkFRID0gRkFRIHx8IHt9OwpGQVEuQWdlbnQgPSBGQVEuQWdlbnQgfHwge307CgovKioKICogQG5hbWVzcGFjZQogKiBAZXhwb3J0cyBUYXJnZXROUyBhcyBGQVEuQWdlbnQuVGlja2V0Q29tcG9zZQogKiBAZGVzY3JpcHRpb24KICogICAgICBUaGlzIG5hbWVzcGFjZSBjb250YWlucyB0aGUgc3BlY2lhbCBtb2R1bGUgZnVuY3Rpb25zIGZvciBUaWNrZXRDb21wb3NlLgogKi8KRkFRLkFnZW50LlRpY2tldENvbXBvc2UgPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgLyoqCiAgICAgKiBAbmFtZSBJbml0RkFRVGlja2V0Q29tcG9zZQogICAgICogQG1lbWJlcm9mIEZBUS5BZ2VudC5UaWNrZXRDb21wb3NlCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBwYXJhbSB7alF1ZXJ5T2JqZWN0fSAkRWxlbWVudCBUaGUgZWRpdG9yCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgSW5pdGlhbGl6ZSB0aGUgbmVlZGVkIHN0dWZmIGZvciB0aGUgRkFRIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIHRpY2tldCBzY3JlZW5zLgogICAgICovCiAgICBUYXJnZXROUy5Jbml0RkFRVGlja2V0Q29tcG9zZSA9IGZ1bmN0aW9uICgkRWxlbWVudCkgewoKICAgICAgICAvLyBTZWUgYnVnIzkxMTY6CiAgICAgICAgLy8gSW4gQ2hyb21lIHNvbWV0aW1lcyB0aGUgY2xpY2sgZXZlbnQgaXMgdHJpZ2dlcmVkIGJlZm9yZSB0aGUgZm9jdXMgZXZlbnQKICAgICAgICAvLyB3ZSBwcmV2ZW50IHRoYXQgYnkgY2hlY2tpbmcgRWRpdG9yR290Rm9jdXMgZmlyc3QKICAgICAgICB2YXIgSW5zdGFuY2VOYW1lID0gJEVsZW1lbnQuYXR0cignaWQnKSwKICAgICAgICAgICAgRWRpdG9yR290Rm9jdXMgPSBmYWxzZTsKCiAgICAgICAgZnVuY3Rpb24gR2V0Q3Vyc29yUG9zaXRpb24oKSB7CiAgICAgICAgICAgIHZhciBFbGVtZW50ID0gJEVsZW1lbnRbMF0sCiAgICAgICAgICAgICAgICBSYW5nZSwKICAgICAgICAgICAgICAgIFRleHRSYW5nZSwKICAgICAgICAgICAgICAgIFRleHRSYW5nZUR1cGxpY2F0ZSwKICAgICAgICAgICAgICAgIFN0YXJ0UmFuZ2UgPSAwLAogICAgICAgICAgICAgICAgRW5kUmFuZ2UgPSAwOwogICAgICAgICAgICAvLyBGaXJlZm94CiAgICAgICAgICAgIGlmIChFbGVtZW50LnNlbGVjdGlvblN0YXJ0KSB7CiAgICAgICAgICAgICAgICBTdGFydFJhbmdlID0gRWxlbWVudC5zZWxlY3Rpb25TdGFydDsKICAgICAgICAgICAgICAgIEVuZFJhbmdlID0gRWxlbWVudC5zZWxlY3Rpb25FbmQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gSUUKICAgICAgICAgICAgZWxzZSBpZiAoZG9jdW1lbnQuc2VsZWN0aW9uKSB7CiAgICAgICAgICAgICAgICBSYW5nZSA9IGRvY3VtZW50LnNlbGVjdGlvbi5jcmVhdGVSYW5nZSgpLmR1cGxpY2F0ZSgpOwogICAgICAgICAgICAgICAgVGV4dFJhbmdlID0gRWxlbWVudC5jcmVhdGVUZXh0UmFuZ2UoKTsKICAgICAgICAgICAgICAgIFRleHRSYW5nZUR1cGxpY2F0ZSA9IFRleHRSYW5nZS5kdXBsaWNhdGUoKTsKICAgICAgICAgICAgICAgIFRleHRSYW5nZS5tb3ZlVG9Cb29rbWFyayhSYW5nZS5nZXRCb29rbWFyaygpKTsKICAgICAgICAgICAgICAgIFRleHRSYW5nZUR1cGxpY2F0ZS5zZXRFbmRQb2ludCgnRW5kVG9TdGFydCcsIFRleHRSYW5nZSk7CiAgICAgICAgICAgICAgICBTdGFydFJhbmdlID0gRW5kUmFuZ2UgPSBUZXh0UmFuZ2VEdXBsaWNhdGUudGV4dC5sZW5ndGg7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIFNhdmUgY3Vyc29yIHBvc2l0aW9uIGZvciBsYXRlciB1c2FnZQogICAgICAgICAgICAkRWxlbWVudC5kYXRhKCdDdXJzb3InLCB7CiAgICAgICAgICAgICAgICBTdGFydFJhbmdlOiBTdGFydFJhbmdlLAogICAgICAgICAgICAgICAgRW5kUmFuZ2U6IEVuZFJhbmdlCiAgICAgICAgICAgIH0pOwogICAgICAgIH0KCiAgICAgICAgLy8gUmVnaXN0ZXIgUlRFIGV2ZW50cyBmb3Igc2F2aW5nIHRoZSBjdXJzb3IgcG9zaXRpb24KICAgICAgICBpZiAodHlwZW9mIENLRWRpdG9ySW5zdGFuY2VzICE9PSAndW5kZWZpbmVkJyAmJiBDS0VkaXRvckluc3RhbmNlc1tJbnN0YW5jZU5hbWVdKSB7CgogICAgICAgICAgICAvLyBHZXQgbGFzdCBjdXJzb3IgcG9zaXRpb24gYW5kIHNhdmUgaXQgKG9uIGZvY3VzIHdlIGNvbWUgYmFjayB0byB0aGlzIHBvc2l0aW9uKQogICAgICAgICAgICBDS0VkaXRvckluc3RhbmNlc1tJbnN0YW5jZU5hbWVdLm9uKCdjb250ZW50RG9tJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBDS0VkaXRvckluc3RhbmNlc1tJbnN0YW5jZU5hbWVdLmRvY3VtZW50Lm9uKCdjbGljaycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoRWRpdG9yR290Rm9jdXMpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJCgnIycgKyBJbnN0YW5jZU5hbWUpLmRhdGEoJ1JURUN1cnNvcicsIENLRWRpdG9ySW5zdGFuY2VzW0luc3RhbmNlTmFtZV0uZ2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VzKCkpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgQ0tFZGl0b3JJbnN0YW5jZXNbSW5zdGFuY2VOYW1lXS5kb2N1bWVudC5vbigna2V5dXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKEVkaXRvckdvdEZvY3VzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICQoJyMnICsgSW5zdGFuY2VOYW1lKS5kYXRhKCdSVEVDdXJzb3InLCBDS0VkaXRvckluc3RhbmNlc1tJbnN0YW5jZU5hbWVdLmdldFNlbGVjdGlvbigpLmdldFJhbmdlcygpKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAvLyBuZWVkZWQgZm9yIGNsaWVudC1zaWRlIHZhbGlkYXRpb24gYW5kIGluc2VydGluZyBkYXRhIGludG8gUlRFCiAgICAgICAgICAgIENLRWRpdG9ySW5zdGFuY2VzW0luc3RhbmNlTmFtZV0ub24oJ2ZvY3VzJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgLy8gaWYgYSBzYXZlZCBjdXJzb3IgcG9zaXRpb24gZXhpc3RzLCBzZXQgdGhpcyBwb3NpdGlvbiBub3cKICAgICAgICAgICAgICAgIHZhciBSVEVDdXJzb3JSYW5nZSA9ICQoJyMnICsgSW5zdGFuY2VOYW1lKS5kYXRhKCdSVEVDdXJzb3InKSwKICAgICAgICAgICAgICAgICAgICBTZWxlY3Rpb247CgogICAgICAgICAgICAgICAgRWRpdG9yR290Rm9jdXMgPSB0cnVlOwoKICAgICAgICAgICAgICAgIGlmIChSVEVDdXJzb3JSYW5nZSkgewogICAgICAgICAgICAgICAgICAgIFNlbGVjdGlvbiA9IG5ldyBDS0VESVRPUi5kb20uc2VsZWN0aW9uKENLRWRpdG9ySW5zdGFuY2VzW0luc3RhbmNlTmFtZV0uZG9jdW1lbnQpOwogICAgICAgICAgICAgICAgICAgIFNlbGVjdGlvbi5zZWxlY3RSYW5nZXMoUlRFQ3Vyc29yUmFuZ2UpOwogICAgICAgICAgICAgICAgICAgIC8vIGRlbGV0ZSBzYXZlZCBjdXJzb3IgcG9zaXRpb24gKHRvIG5vdCBrZWVwIG9sZCBzdHVmZikKICAgICAgICAgICAgICAgICAgICAkKCcjJyArIEluc3RhbmNlTmFtZSkuZGF0YSgnUlRFQ3Vyc29yJywgdW5kZWZpbmVkKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIC8vIFJlZ2lzdGVyIGV2ZW50cyBmb3Igc2F2aW5nIHRoZSBjdXJzb3IgcG9zaXRpb24gb2YgdGV4dGFyZWEKICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJEVsZW1lbnQudW5iaW5kKCdjbGljay5GQVFDb21wb3NpbmcnKS5iaW5kKCdjbGljay5GQVFDb21wb3NpbmcnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICBHZXRDdXJzb3JQb3NpdGlvbigpOwogICAgICAgICAgICB9KTsKICAgICAgICAgICAgJEVsZW1lbnQudW5iaW5kKCdrZXl1cC5GQVFDb21wb3NpbmcnKS5iaW5kKCdrZXl1cC5GQVFDb21wb3NpbmcnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICBHZXRDdXJzb3JQb3NpdGlvbigpOwogICAgICAgICAgICB9KTsKICAgICAgICB9CiAgICB9OwoKICAgIC8qKgogICAgICogQG5hbWUgU2V0RGF0YQogICAgICogQG1lbWJlcm9mIEZBUS5BZ2VudC5UaWNrZXRDb21wb3NlCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBwYXJhbSB7U3RyaW5nfSBGQVFUaXRsZSBvZiBhIEZBUSBhcnRpY2xlIHRvIGJlIHJldHVybmVkIGludG8gdGlja2V0IFN1YmplY3QKICAgICAqIEBwYXJhbSB7U3RyaW5nfSBGQVFDb250ZW50IG9mIGEgRkFRIGFydGljbGUgYW5kL29yIExpbmsgdG8gdGhlIHB1YmxpYyBpbnRlcmZhY2UgaW4gcGxhaW4gdGV4dAogICAgICogQHBhcmFtIHtTdHJpbmd9IEZBUUhUTUxDb250ZW50IG9mIGEgRkFRIGFydGljbGUgYW5kL29yIExpbmsgdG8gdGhlIHB1YmxpYyBpbnRlcmZhY2UgaW4gSFRNTAogICAgICogQGRlc2NyaXB0aW9uCiAgICAgKiAgICAgIERvIG5vdGhpbmcgYW5kIHNob3cgYW4gZXJyb3IgbWVzc2FnZS4KICAgICAqLwogICAgZnVuY3Rpb24gU2V0RGF0YSAoRkFRVGl0bGUsIEZBUUNvbnRlbnQsIEZBUUhUTUxDb250ZW50KSB7CgogICAgICAgIHZhciAkUGFyZW50U3ViamVjdCA9ICQoJyNTdWJqZWN0JywgcGFyZW50LmRvY3VtZW50KSwKICAgICAgICAgICAgJFBhcmVudEJvZHkgPSAkKCcjUmljaFRleHQnLCBwYXJlbnQuZG9jdW1lbnQpLAogICAgICAgICAgICBQYXJlbnRCb2R5ID0gJFBhcmVudEJvZHlbMF0sCiAgICAgICAgICAgIFBhcmVudEJvZHlWYWx1ZSA9ICRQYXJlbnRCb2R5LnZhbCgpLAogICAgICAgICAgICBSYW5nZSwKICAgICAgICAgICAgU3RhcnRSYW5nZSA9IDAsCiAgICAgICAgICAgIEVuZFJhbmdlID0gMCwKICAgICAgICAgICAgTmV3UG9zaXRpb24gPSAwOwoKICAgICAgICBpZiAoJCgnI1N1YmplY3QnLCBwYXJlbnQuZG9jdW1lbnQpLmxlbmd0aCAmJiAkKCcjUmljaFRleHQnLCBwYXJlbnQuZG9jdW1lbnQpLmxlbmd0aCkgewoKICAgICAgICAgICAgaWYgKENvcmUuQ29uZmlnLkdldCgnVGlja2V0Q29tcG9zZS5VcGRhdGVBcnRpY2xlU3ViamVjdCcpID09PSAnMScgJiYgJCgnI1VwZGF0ZUFydGljbGVTdWJqZWN0T3B0aW9uJykucHJvcCgnY2hlY2tlZCcpKSB7CiAgICAgICAgICAgICAgICAvLyBjb3B5IHN1YmplY3QKICAgICAgICAgICAgICAgIGlmICgkUGFyZW50U3ViamVjdC52YWwoKSA9PT0gJycpIHsKICAgICAgICAgICAgICAgICAgICAkUGFyZW50U3ViamVjdC52YWwoRkFRVGl0bGUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJFBhcmVudFN1YmplY3QudmFsKCRQYXJlbnRTdWJqZWN0LnZhbCgpICsgJyAtICcgKyBGQVFUaXRsZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIGFkZCBGQVEgdGV4dCBhbmQvb3IgbGluayB0byBXWVNJV1lHIGVkaXRvciBpbiBwYXJlbnQgd2luZG93CiAgICAgICAgICAgIGlmICggcGFyZW50LkNLRWRpdG9ySW5zdGFuY2VzICYmIHBhcmVudC5DS0VkaXRvckluc3RhbmNlc1snUmljaFRleHQnXSApIHsKICAgICAgICAgICAgICAgIGxldCBlZGl0b3IgPSBwYXJlbnQuQ0tFZGl0b3JJbnN0YW5jZXNbJ1JpY2hUZXh0J107CiAgICAgICAgICAgICAgICBlZGl0b3IuZm9jdXMoKTsKICAgICAgICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCiAgICAgICAgICAgICAgICAgICAgLy8gaHRtbCBzdHJpbmcgaGFzIHRvIGJlIGNvbnZlcnRlZCB0byBtb2RlbGZyYWdtZW50IGZvciBja2VkaXRvciBpbnNlcnRpb24KICAgICAgICAgICAgICAgICAgICAvLyBtaWdodCBwb3NlIHByb2JsZW1zIGZvciBzb21lIHNwZWNpYWwgaHRtbAogICAgICAgICAgICAgICAgICAgIGxldCBWaWV3RnJhZ21lbnQgPSBlZGl0b3IuZGF0YS5wcm9jZXNzb3IudG9WaWV3KCBGQVFIVE1MQ29udGVudCApOwogICAgICAgICAgICAgICAgICAgIGxldCBNb2RlbEZyYWdtZW50ID0gZWRpdG9yLmRhdGEudG9Nb2RlbCggVmlld0ZyYWdtZW50ICk7CgogICAgICAgICAgICAgICAgICAgIGVkaXRvci5tb2RlbC5pbnNlcnRDb250ZW50KCBNb2RlbEZyYWdtZW50ICk7CgogICAgICAgICAgICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50LkNvcmUuVUkuRGlhbG9nLkNsb3NlRGlhbG9nKCQoJy5EaWFsb2cnLCBwYXJlbnQuZG9jdW1lbnQpKTsKICAgICAgICAgICAgICAgICAgICB9LCA1MCk7CiAgICAgICAgICAgICAgICB9LCAxMDApOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBpbnNlcnQgYm9keSBhbmQvb3IgbGluayB0byB0ZXh0YXJlYSAoaWYgcG9zc2libGUgdG8gY3Vyc29yIHBvc2l0aW9uIG90aGVyd2lzZSB0byB0aGUgdG9wKQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIC8vIEdldCBwcmV2aW91c2x5IHNhdmVkIGN1cnNvciBwb3NpdGlvbiBvZiB0ZXh0YXJlYQogICAgICAgICAgICAgICAgaWYgKHBhcmVudC4kKCcjUmljaFRleHQnLCBwYXJlbnQuZG9jdW1lbnQpLmRhdGEoJ0N1cnNvcicpKSB7CiAgICAgICAgICAgICAgICAgICAgU3RhcnRSYW5nZSA9IHBhcmVudC4kKCcjUmljaFRleHQnLCBwYXJlbnQuZG9jdW1lbnQpLmRhdGEoJ0N1cnNvcicpLlN0YXJ0UmFuZ2U7CiAgICAgICAgICAgICAgICAgICAgRW5kUmFuZ2UgPSBwYXJlbnQuJCgnI1JpY2hUZXh0JywgcGFyZW50LmRvY3VtZW50KS5kYXRhKCdDdXJzb3InKS5FbmRSYW5nZTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvLyBBZGQgbmV3IHRleHQgdG8gdGV4dGFyZWEKICAgICAgICAgICAgICAgICRQYXJlbnRCb2R5LnZhbChQYXJlbnRCb2R5VmFsdWUuc3Vic3RyKDAsIFN0YXJ0UmFuZ2UpICsgRkFRQ29udGVudCArIFBhcmVudEJvZHlWYWx1ZS5zdWJzdHIoRW5kUmFuZ2UsIFBhcmVudEJvZHlWYWx1ZS5sZW5ndGgpKTsKICAgICAgICAgICAgICAgIE5ld1Bvc2l0aW9uID0gU3RhcnRSYW5nZSArIEZBUUNvbnRlbnQubGVuZ3RoOwoKICAgICAgICAgICAgICAgIC8vIEp1bXAgdG8gbmV3IGN1cnNvciBwb3NpdGlvbiAoYWZ0ZXIgaW5zZXJ0ZWQgdGV4dCkKICAgICAgICAgICAgICAgIGlmIChQYXJlbnRCb2R5LnNlbGVjdGlvblN0YXJ0KSB7CiAgICAgICAgICAgICAgICAgICAgUGFyZW50Qm9keS5zZWxlY3Rpb25TdGFydCA9IE5ld1Bvc2l0aW9uOwogICAgICAgICAgICAgICAgICAgIFBhcmVudEJvZHkuc2VsZWN0aW9uRW5kID0gTmV3UG9zaXRpb247CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIGlmIChkb2N1bWVudC5zZWxlY3Rpb24pIHsKICAgICAgICAgICAgICAgICAgICBSYW5nZSA9IGRvY3VtZW50LnNlbGVjdGlvbi5jcmVhdGVSYW5nZSgpLmR1cGxpY2F0ZSgpOwogICAgICAgICAgICAgICAgICAgIFJhbmdlLm1vdmVTdGFydCgnY2hhcmFjdGVyJywgTmV3UG9zaXRpb24pOwogICAgICAgICAgICAgICAgICAgIFJhbmdlLnNlbGVjdCgpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHBhcmVudC5Db3JlLlVJLkRpYWxvZy5DbG9zZURpYWxvZygkKCcuRGlhbG9nJywgcGFyZW50LmRvY3VtZW50KSk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGFsZXJ0KCckSlNUZXh0eyJUaGlzIHdpbmRvdyBtdXN0IGJlIGNhbGxlZCBmcm9tIGNvbXBvc2Ugd2luZG93In0nKTsKICAgICAgICAgICAgcGFyZW50LkNvcmUuVUkuRGlhbG9nLkNsb3NlRGlhbG9nKCQoJy5EaWFsb2cnLCBwYXJlbnQuZG9jdW1lbnQpKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIEBuYW1lIFNldFRleHQKICAgICAqIEBtZW1iZXJvZiBGQVEuQWdlbnQuVGlja2V0Q29tcG9zZQogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcGFyYW0ge0Jvb2xlYW59IEluc2VydFRleHQgdG8gYWRkIEZBUSBpdGVtIHRleHQgb3Igbm90CiAgICAgKiBAcGFyYW0ge0Jvb2xlYW59IEluc2VydExpbmsgdG8gYWRkIEZBUSBpdGVtIGxpbmsgb3Igbm90CiAgICAgKi8KICAgIFRhcmdldE5TLlNldFRleHQgPSBmdW5jdGlvbiAoSW5zZXJ0VGV4dCwgSW5zZXJ0TGluaykgewogICAgICAgIHZhciBGQVFUaXRsZSA9ICQoJyNGQVFUaXRsZScpLnZhbCgpLAogICAgICAgIEZBUUNvbnRlbnQgPSAnJywKICAgICAgICBGQVFIVE1MQ29udGVudCA9ICcnLAogICAgICAgIEZBUUxpbms7CgogICAgICAgIGlmIChJbnNlcnRUZXh0ID09PSAxKSB7CiAgICAgICAgICAgIEZBUUNvbnRlbnQgPSAkKCcjRkFRQm9keScpLnZhbCgpOwogICAgICAgICAgICBGQVFIVE1MQ29udGVudCA9IEZBUUNvbnRlbnQ7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBGQVFDb250ZW50ID0gJyc7CiAgICAgICAgICAgIEZBUUhUTUxDb250ZW50ID0gRkFRQ29udGVudDsKICAgICAgICB9CgogICAgICAgIGlmIChJbnNlcnRMaW5rID09PSAxKSB7CiAgICAgICAgICAgIEZBUUxpbmsgPSAkKCcjRkFRUHVibGljTGluaycpLnZhbCgpOwogICAgICAgICAgICBGQVFDb250ZW50ID0gRkFRQ29udGVudCArICdcbicgKyBGQVFMaW5rOwogICAgICAgICAgICBGQVFIVE1MQ29udGVudCA9IEZBUUhUTUxDb250ZW50ICsgJzxici8+JyArICc8YSBocmVmPSInICsgRkFRTGluayArICciPicgKyBGQVFUaXRsZSArICc8L2E+JzsKICAgICAgICB9CgogICAgICAgIFNldERhdGEoRkFRVGl0bGUsIEZBUUNvbnRlbnQsIEZBUUhUTUxDb250ZW50KTsKICAgIH07CgoKICAgIC8qKgogICAgICogQG5hbWUgU2V0RnVsbEZBUQogICAgICogQG1lbWJlcm9mIEZBUS5BZ2VudC5UaWNrZXRDb21wb3NlCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBwYXJhbSB7Qm9vbGVhbn0gSW5zZXJ0VGV4dCB0byBhZGQgRkFRIGl0ZW0gdGV4dCBvciBub3QKICAgICAqIEBwYXJhbSB7Qm9vbGVhbn0gSW5zZXJ0TGluayB0byBhZGQgRkFRIGl0ZW0gbGluayBvciBub3QKICAgICAqLwogICAgVGFyZ2V0TlMuU2V0RnVsbEZBUSA9IGZ1bmN0aW9uIChJbnNlcnRUZXh0LCBJbnNlcnRMaW5rKSB7CgogICAgICAgIC8vIGdldCB0aGUgRkFRIHJpY2h0ZXh0IGFuZCB0cmlnZ2VyIGF0dGFjaG1lbnQgcHJvY2Vzc2luZwogICAgICAgIHBhcmVudC5Db3JlLkFKQVguRnVuY3Rpb25DYWxsKAogICAgICAgICAgICBwYXJlbnQuQ29yZS5Db25maWcuR2V0KCdCYXNlbGluaycpLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBBY3Rpb246ICdBZ2VudEZBUVJpY2hUZXh0JywKICAgICAgICAgICAgICAgIEl0ZW1JRDogJCgnaW5wdXRbbmFtZT1GQVFJRF0nKS52YWwoKSwKICAgICAgICAgICAgICAgIEZvcm1JRDogcGFyZW50LiQoJ2lucHV0W25hbWU9Rm9ybUlEXScpLnZhbCgpCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGZ1bmN0aW9uIChSZXNwb25zZSkgewogICAgICAgICAgICAgICAgdmFyIEZBUVRpdGxlID0gUmVzcG9uc2UuRkFRVGl0bGUsCiAgICAgICAgICAgICAgICAgICAgRkFRQ29udGVudCA9ICcnLAogICAgICAgICAgICAgICAgICAgIEZBUUhUTUxDb250ZW50ID0gJycsCiAgICAgICAgICAgICAgICAgICAgRkFRTGluaywKICAgICAgICAgICAgICAgICAgICBBdHRhY2htZW50TGlzdDsKCiAgICAgICAgICAgICAgICBpZiAoSW5zZXJ0VGV4dCA9PT0gMSkgewogICAgICAgICAgICAgICAgICAgIEZBUUNvbnRlbnQgPSBSZXNwb25zZS5GQVFDb250ZW50OwogICAgICAgICAgICAgICAgICAgIEZBUUhUTUxDb250ZW50ID0gUmVzcG9uc2UuRkFRSFRNTENvbnRlbnQ7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKEluc2VydExpbmsgPT09IDEpIHsKICAgICAgICAgICAgICAgICAgICBGQVFMaW5rID0gJCgnI0ZBUVB1YmxpY0xpbmsnKS52YWwoKTsKICAgICAgICAgICAgICAgICAgICBGQVFDb250ZW50ID0gRkFRQ29udGVudCArICdcbicgKyBGQVFMaW5rOwogICAgICAgICAgICAgICAgICAgIEZBUUhUTUxDb250ZW50ID0gRkFRSFRNTENvbnRlbnQgKyAnPGJyLz48YnIvPicgKyAnPGEgaHJlZj0iJyArIEZBUUxpbmsgKyAnIj4nICsgRkFRVGl0bGUgKyAnPC9hPic7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy8gR2V0IHBhcmVudCB3aW5kb3cgYXR0YWNobWVudCBsaXN0LgogICAgICAgICAgICAgICAgQXR0YWNobWVudExpc3QgPSBwYXJlbnQuJCgnLkF0dGFjaG1lbnRMaXN0Jyk7CgogICAgICAgICAgICAgICAgLy8gQWRkIGF0dGFjaG1lbnQgdW5sZXNzIGl0IGlzIGEgZHVwbGljYXRlLgogICAgICAgICAgICAgICAgJChSZXNwb25zZS5UaWNrZXRBdHRhY2htZW50cykuZWFjaChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgQXR0YWNobWVudEl0ZW0sCiAgICAgICAgICAgICAgICAgICAgICAgIEZpbGVuYW1lID0gdGhpcy5GaWxlbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgQXR0YWNobWVudEV4aXN0ID0gcGFyZW50LiQoJy5BdHRhY2htZW50TGlzdCB0Ym9keSB0ciB0ZC5GaWxlbmFtZScpLmZpbHRlcihmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS50ZXh0KCkgPT09IEZpbGVuYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICQodGhpcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICAgICBpZiAoIUF0dGFjaG1lbnRFeGlzdC5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgQXR0YWNobWVudEl0ZW0gPSBwYXJlbnQuQ29yZS5UZW1wbGF0ZS5SZW5kZXIoJ0FqYXhEbkRVcGxvYWQvQXR0YWNobWVudEl0ZW0nLCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnRmlsZW5hbWUnIDogRmlsZW5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnRmlsZXR5cGUnIDogdGhpcy5Db250ZW50VHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdGaWxlc2l6ZScgOiB0aGlzLkZpbGVzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0ZpbGVJRCcgICA6IHRoaXMuRmlsZUlELAogICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50LiQoQXR0YWNobWVudEl0ZW0pLnByZXBlbmRUbyhBdHRhY2htZW50TGlzdC5maW5kKCd0Ym9keScpKS5mYWRlSW4oKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICBTZXREYXRhKEZBUVRpdGxlLCBGQVFDb250ZW50LCBGQVFIVE1MQ29udGVudCk7CgogICAgICAgICAgICAgICAgcGFyZW50LkNvcmUuVUkuSW5pdEFqYXhEbkRVcGxvYWQoKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgJ2pzb24nCiAgICAgICAgKTsKICAgIH07CiAgICByZXR1cm4gVGFyZ2V0TlM7Cn0oRkFRLkFnZW50LlRpY2tldENvbXBvc2UgfHwge30pKTsK</File>
        <File Location="var/httpd/htdocs/js/FAQ.Customer.FAQZoom.js" Permission="660" Encode="Base64">Ly8gLS0KLy8gT1RPQk8gaXMgYSB3ZWItYmFzZWQgdGlja2V0aW5nIHN5c3RlbSBmb3Igc2VydmljZSBvcmdhbmlzYXRpb25zLgovLyAtLQovLyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAyMCBPVFJTIEFHLCBodHRwczovL290cnMuY29tLwovLyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyNSBSb3RoZXIgT1NTIEdtYkgsIGh0dHBzOi8vb3RvYm8uaW8vCi8vIC0tCi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCi8vIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCi8vIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAovLyBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUwovLyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgRkFRID0gRkFRIHx8IHt9OwpGQVEuQ3VzdG9tZXIgPSBGQVEuQ3VzdG9tZXIgfHwge307CgovKioKICogQG5hbWVzcGFjZQogKiBAZXhwb3J0cyBUYXJnZXROUyBhcyBGQVEuQ3VzdG9tZXIuVGlja2V0Wm9vbQogKiBAZGVzY3JpcHRpb24KICogICAgICBUaGlzIG5hbWVzcGFjZSBjb250YWlucyB0aGUgc3BlY2lhbCBtb2R1bGUgZnVuY3Rpb25zIGZvciBUaWNrZXRab29tLgogKi8KRkFRLkN1c3RvbWVyLkZBUVpvb20gPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgLyoqCiAgICAgKiBAbmFtZSBJZnJhbWVBdXRvSGVpZ2h0CiAgICAgKiBAbWVtYmVyb2YgRkFRLkN1c3RvbWVyLkZBUVpvb20KICAgICAqIEBmdW5jdGlvbgogICAgICogQHBhcmFtIHtqUXVlcnlPYmplY3R9ICRJZnJhbWUgLSBUaGUgaWZyYW1lIHdoaWNoIHNob3VsZCBiZSBhdXRvLWhlaWdodGVkCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgU2V0IGlmcmFtZSBoZWlnaHQgYXV0b21hdGljYWxseSBiYXNlZCBvbiByZWFsIGNvbnRlbnQgaGVpZ2h0IGFuZCBkZWZhdWx0IGNvbmZpZyBzZXR0aW5nLgogICAgICovCiAgICBUYXJnZXROUy5JZnJhbWVBdXRvSGVpZ2h0ID0gZnVuY3Rpb24gKCRJZnJhbWUpIHsKCiAgICAgICAgdmFyIE5ld0hlaWdodCwKICAgICAgICAgICAgSWZyYW1lQm9keUhlaWdodCwKICAgICAgICAgICAgQXJ0aWNsZUhlaWdodE1heCA9IENvcmUuQ29uZmlnLkdldCgnRkFROjpGcm9udGVuZDo6Q3VzdG9tZXJIVE1MRmllbGRIZWlnaHRNYXgnKTsKCiAgICAgICAgaWYgKGlzSlF1ZXJ5T2JqZWN0KCRJZnJhbWUpKSB7CiAgICAgICAgICAgIC8vIHNsaWdodGx5IGNoYW5nZSB0aGUgd2lkdGggb2YgdGhlIGlmcmFtZSB0byBub3QgYmUgZXhhY3RseSAxMDAlIHdpZHRoIGFueW1vcmUKICAgICAgICAgICAgLy8gdGhpcyBwcmV2ZW50cyBhIGRvdWJsZSBob3Jpem9udGFsIHNjcm9sbGJhciAoZnJvbSBpZnJhbWUgYW5kIHN1cnJvdW5kaW5nIGRpdikKICAgICAgICAgICAgJElmcmFtZS53aWR0aCgkSWZyYW1lLndpZHRoKCkgLSAyKTsKCiAgICAgICAgICAgIElmcmFtZUJvZHlIZWlnaHQgPSAkSWZyYW1lLmNvbnRlbnRzKCkuZmluZCgnYm9keScpLmhlaWdodCgpOwogICAgICAgICAgICBOZXdIZWlnaHQgPSAkSWZyYW1lLmNvbnRlbnRzKCkuaGVpZ2h0KCk7CgogICAgICAgICAgICAvLyBpZiB0aGUgaUZyYW1lcyBoZWlnaHQgaXMgMCwgd2UgY29sbGFwc2UgdGhlIHdpZGdldAogICAgICAgICAgICBpZiAoTmV3SGVpZ2h0ID09PSAwKSB7CiAgICAgICAgICAgICAgICAkSWZyYW1lLmNsb3Nlc3QoJy5XaWRnZXRTaW1wbGUnKS5yZW1vdmVDbGFzcygnRXhwYW5kZWQnKS5hZGRDbGFzcygnQ29sbGFwc2VkJyk7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoIU5ld0hlaWdodCB8fCBpc05hTihOZXdIZWlnaHQpKSB7CiAgICAgICAgICAgICAgICBOZXdIZWlnaHQgPSBDb3JlLkNvbmZpZy5HZXQoJ0ZBUTo6RnJvbnRlbmQ6OkN1c3RvbWVySFRNTEZpZWxkSGVpZ2h0RGVmYXVsdCcpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgaWYgKElmcmFtZUJvZHlIZWlnaHQgPiBBcnRpY2xlSGVpZ2h0TWF4CiAgICAgICAgICAgICAgICAgICAgfHwgTmV3SGVpZ2h0ID4gQXJ0aWNsZUhlaWdodE1heCkgewogICAgICAgICAgICAgICAgICAgIE5ld0hlaWdodCA9IEFydGljbGVIZWlnaHRNYXg7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIGlmIChJZnJhbWVCb2R5SGVpZ2h0ID4gTmV3SGVpZ2h0KSB7CiAgICAgICAgICAgICAgICAgICAgTmV3SGVpZ2h0ID0gSWZyYW1lQm9keUhlaWdodDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gYWRkIGRlbHRhIGZvciBzY3JvbGxiYXIKICAgICAgICAgICAgaWYgKE5ld0hlaWdodCA+IDApIHsKICAgICAgICAgICAgICAgIE5ld0hlaWdodCA9IHBhcnNlSW50KE5ld0hlaWdodCwgMTApICsgMjU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRJZnJhbWUuaGVpZ2h0KE5ld0hlaWdodCArICdweCcpOwogICAgICAgIH0KICAgIH07CgogICAgLyoqCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBtZW1iZXJvZiBGQVEuQ3VzdG9tZXIuRkFRWm9vbQogICAgICogQHBhcmFtIHtqUXVlcnlPYmplY3R9ICRNZXNzYWdlIC0gYW4gRkFRIGZpZWxkLgogICAgICogQGRlc2NyaXB0aW9uCiAgICAgKiAgICAgIFRoaXMgZnVuY3Rpb24gY2hlY2tzIHRoZSBjbGFzcyBvZiBhIEZBUSBmaWVsZDoKICAgICAqICAgICAgdXNlciBjYWxscyB0aGlzIGZ1bmN0aW9uIGJ5IGNsaWNraW5nIG9uIHRoZSBmaWVsZCBoZWFkLCBmaWVsZCBnZXRzIGhpZGRlbiBieSByZW1vdmluZwogICAgICogICAgICB0aGUgY2xhc3MgJ1Zpc2libGUnLiBJZiB0aGUgZmllbGQgaGVhZCBpcyBjbGlja2VkIHdoaWxlIGl0IGRvZXMgbm90IGNvbnRhaW4gdGhlIGNsYXNzCiAgICAgKiAgICAgICdWaXNpYmxlJywgdGhlIGZpZWxkIGdldHMgdGhlIGNsYXNzICdWaXNpYmxlJyBhZ2FpbiBhbmQgaXQgd2lsbCBiZSBzaG93bi4KICAgICAqLwogICAgZnVuY3Rpb24gVG9nZ2xlTWVzc2FnZSgkTWVzc2FnZSl7CiAgICAgICAgaWYgKCRNZXNzYWdlLmhhc0NsYXNzKCdWaXNpYmxlJykpIHsKICAgICAgICAgICAgJE1lc3NhZ2UucmVtb3ZlQ2xhc3MoJ1Zpc2libGUnKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRNZXNzYWdlLmFkZENsYXNzKCdWaXNpYmxlJyk7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAbWVtYmVyb2YgRkFRLkN1c3RvbWVyLkZBUVpvb20KICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIGJpbmRzIGZ1bmN0aW9ucyB0byB0aGUgJ01lc3NhZ2VIZWFkZXInCiAgICAgKiAgICAgIHRvIHRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgTWVzc2FnZUJvZHkgYW5kIHRoZSByZXBseSBmb3JtLgogICAgICovCiAgICBUYXJnZXROUy5Jbml0ID0gZnVuY3Rpb24oKXsKICAgICAgICB2YXIgJE1lc3NhZ2VzID0gJCgnI01lc3NhZ2VzID4gbGknKSwKICAgICAgICAgICAgJE1lc3NhZ2VIZWFkZXJzID0gJCgnLk1lc3NhZ2VIZWFkZXInLCAkTWVzc2FnZXMpOwoKICAgICAgICAkTWVzc2FnZUhlYWRlcnMuY2xpY2soZnVuY3Rpb24oRXZlbnQpewogICAgICAgICAgICBUb2dnbGVNZXNzYWdlKCQodGhpcykucGFyZW50KCkpOwogICAgICAgICAgICBFdmVudC5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgIH0pOwoKICAgICAgICAvLyBpbml0IGJyb3dzZXIgbGluayBtZXNzYWdlIGNsb3NlIGJ1dHRvbgogICAgICAgIGlmICgkKCcuRkFRTWVzc2FnZUJyb3dzZXInKS5sZW5ndGgpIHsKICAgICAgICAgICAgJCgnLkZBUU1lc3NhZ2VCcm93c2VyIGEuQ2xvc2UnKS5vbignY2xpY2snLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB2YXIgRGF0YSA9IHsKICAgICAgICAgICAgICAgICAgICBBY3Rpb246ICdDdXN0b21lckZBUVpvb20nLAogICAgICAgICAgICAgICAgICAgIFN1YmFjdGlvbjogJ0Jyb3dzZXJMaW5rTWVzc2FnZScKICAgICAgICAgICAgICAgIH07CgogICAgICAgICAgICAgICAgJCgnLkZBUU1lc3NhZ2VCcm93c2VyJykuZmFkZU91dCgic2xvdyIpOwoKICAgICAgICAgICAgICAgIC8vIGNhbGwgc2VydmVyLCB0byBzYXZlIHRoYXQgdGhlIGJ1dHRvbiB3YXMgY2xvc2VkIGFuZCBkbyBub3Qgc2hvdyBpdCBhZ2FpbiBvbiByZWxvYWQKICAgICAgICAgICAgICAgIENvcmUuQUpBWC5GdW5jdGlvbkNhbGwoCiAgICAgICAgICAgICAgICAgICAgQ29yZS5Db25maWcuR2V0KCdDR0lIYW5kbGUnKSwKICAgICAgICAgICAgICAgICAgICBEYXRhLAogICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHt9CiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfQoKICAgICAgICAkKCdhLkFzUG9wdXAnKS5vbignY2xpY2snLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIENvcmUuVUkuUG9wdXAuT3BlblBvcHVwKCQodGhpcykuYXR0cignaHJlZicpLCAnVGlja2V0QWN0aW9uJyk7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9KTsKCiAgICAgICAgJCgnLlJhdGVCdXR0b24nKS5vbignY2xpY2snLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBSYXRlTnVtYmVyID0gcGFyc2VJbnQoJCh0aGlzKS5jbG9zZXN0KCdkaXYnKS5hdHRyKCdpZCcpLnJlcGxhY2UoL1JhdGVCdXR0b24vLCAnJyksIDEwKTsKICAgICAgICAgICAgJCgnI1JhdGVWYWx1ZScpLnZhbChSYXRlTnVtYmVyKTsKICAgICAgICAgICAgJCgnI1JhdGVTdWJtaXRCdXR0b24nKS5mYWRlSW4oMjUwKTsKICAgICAgICAgICAgJCgnI0ZBUVZvdGluZycpLmZpbmQoJy5SYXRlQnV0dG9uJykuZWFjaChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIHZhciBJdGVtUmF0ZU51bWJlciA9IHBhcnNlSW50KCQodGhpcykuY2xvc2VzdCgnZGl2JykuYXR0cignaWQnKS5yZXBsYWNlKC9SYXRlQnV0dG9uLywgJycpLCAxMCk7CiAgICAgICAgICAgICAgICBpZiAoSXRlbVJhdGVOdW1iZXIgPD0gUmF0ZU51bWJlcikgewogICAgICAgICAgICAgICAgICAgICQodGhpcykuYWRkQ2xhc3MoJ1JhdGVDaGVja2VkJyk7CiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcygnUmF0ZVVuQ2hlY2tlZCcpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcygnUmF0ZVVuQ2hlY2tlZCcpOwogICAgICAgICAgICAgICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3MoJ1JhdGVDaGVja2VkJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pOwoKICAgICAgICAvLyBNYWtlIHdob2xlIEZBUSBJdGVtIHJvdyBjbGlja2FibGUsIGJ1dCBub3QgdGhlIGhlYWRlcnMsIGNhbid0IHVzZSBDb3JlLkN1c3RvbWVyLkNsaWNrYWJsZVJvdygpCiAgICAgICAgLy8gc2luY2UgaXQgdXNlcyAidGFibGUgdHIiIGFzIHNlbGVjdG9yLCBzZWUgYnVnIzkzMjkuCiAgICAgICAgJCgidGJvZHkgdHIiKS5jbGljayhmdW5jdGlvbigpewogICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICQoImEiLCB0aGlzKS5hdHRyKCJocmVmIik7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9KTsKICAgIH07CgogICAgQ29yZS5Jbml0LlJlZ2lzdGVyTmFtZXNwYWNlKFRhcmdldE5TLCAnQVBQX01PRFVMRScpOwoKICAgIHJldHVybiBUYXJnZXROUzsKfShGQVEuQ3VzdG9tZXIuRkFRWm9vbSB8fCB7fSkpOwo=</File>
        <File Location="var/httpd/htdocs/js/FAQ.Customer.RelatedArticles.js" Permission="660" Encode="Base64">Ly8gLS0KLy8gT1RPQk8gaXMgYSB3ZWItYmFzZWQgdGlja2V0aW5nIHN5c3RlbSBmb3Igc2VydmljZSBvcmdhbmlzYXRpb25zLgovLyAtLQovLyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyNSBSb3RoZXIgT1NTIEdtYkgsIGh0dHBzOi8vb3RvYm8uaW8vCi8vIC0tCi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCi8vIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCi8vIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAovLyBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUwovLyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgRkFRID0gRkFRIHx8IHt9OwpGQVEuQ3VzdG9tZXIgPSBGQVEuQ3VzdG9tZXIgfHwge307CgovKioKICogQG5hbWVzcGFjZQogKiBAZXhwb3J0cyBUYXJnZXROUyBhcyBGQVEuQ3VzdG9tZXIuUmVsYXRlZEFydGljbGVzCiAqIEBkZXNjcmlwdGlvbgogKiAgICAgIFRoaXMgbmFtZXNwYWNlIGNvbnRhaW5zIHRoZSBzcGVjaWFsIG1vZHVsZSBmdW5jdGlvbnMgZm9yIEZBUS4KICovCkZBUS5DdXN0b21lci5SZWxhdGVkQXJ0aWNsZXMgPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgdmFyIFF1ZXVlc0VuYWJsZWQgPSAkKCcjUXVldWVzRW5hYmxlZCcpLnZhbCgpLAogICAgICAgIExhc3REYXRhOwoKICAgIGlmICh0eXBlb2YgUXVldWVzRW5hYmxlZCAhPSAndW5kZWZpbmVkJykgewogICAgICAgIENvcmUuQXBwLlN1YnNjcmliZSgnRXZlbnQuVUkuUmljaFRleHRFZGl0b3IuSW5zdGFuY2VDcmVhdGVkJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICQoJyNEZXN0Jykub24oJ2NoYW5nZS5SZWxhdGVkRkFRQXJ0aWNsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHZhciBTZWxlY3RlZFF1ZXVlID0gJCh0aGlzKS52YWwoKSwKICAgICAgICAgICAgICAgICAgICBTZWxlY3RlZFF1ZXVlTmFtZSA9IFNlbGVjdGVkUXVldWUucmVwbGFjZSgvXGQqXHxcfC0/LywgJycpOwoKICAgICAgICAgICAgICAgIC8vIFhYWCBoYW5kbGUgY2xhc3MgaGlkZGVuIGV4dHJhCiAgICAgICAgICAgICAgICAvLyBpZiAoICQoJyNGQVFSZWxhdGVkQXJ0aWNsZXMnKS5oYXNDbGFzcygnSGlkZGVuJykgJiYgKCFRdWV1ZXNFbmFibGVkLmxlbmd0aCB8fCAhU2VsZWN0ZWRRdWV1ZU5hbWUgfHwgJC5pbkFycmF5KFNlbGVjdGVkUXVldWVOYW1lLCBRdWV1ZXNFbmFibGVkKSA+IC0xKSApIHsKICAgICAgICAgICAgICAgIGlmICggKCFRdWV1ZXNFbmFibGVkLmxlbmd0aCB8fCAhU2VsZWN0ZWRRdWV1ZU5hbWUgfHwgJC5pbkFycmF5KFNlbGVjdGVkUXVldWVOYW1lLCBRdWV1ZXNFbmFibGVkKSA+IC0xKSApIHsKCiAgICAgICAgICAgICAgICAgICAgaWYgKCAkKCcjRkFRUmVsYXRlZEFydGljbGVzJykuaGFzQ2xhc3MoJ0hpZGRlbicpICkgeyAvLyBYWFggaGFuZGxlIGNsYXNzCiAgICAgICAgICAgICAgICAgICAgICAgICQoJyNGQVFSZWxhdGVkQXJ0aWNsZXMnKS5yZW1vdmVDbGFzcygnSGlkZGVuJyk7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBpZiAoJCgnI1N1YmplY3QnKS52YWwoKSB8fCBDS0VkaXRvckluc3RhbmNlc1snUmljaFRleHQnXS5nZXREYXRhKCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJCgnI1N1YmplY3QnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIGlmICggIVNlbGVjdGVkUXVldWVOYW1lIHx8ICggUXVldWVzRW5hYmxlZC5sZW5ndGggJiYgJC5pbkFycmF5KFNlbGVjdGVkUXVldWVOYW1lLCBRdWV1ZXNFbmFibGVkKSA9PSAtMSApICkgewogICAgICAgICAgICAgICAgICAgICQoJyNGQVFSZWxhdGVkQXJ0aWNsZXMnKS5hZGRDbGFzcygnSGlkZGVuJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgLy8gRkFRIFNlcnZpY2UKICAgICAgICAgICAgJCgnI1NlcnZpY2VJRCcpLm9uKCdjaGFuZ2UnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAkKCcjU3ViamVjdCcpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICB9KTsKICAgICAgICAgICAgLy8gZW8gRkFRIFNlcnZpY2UKCiAgICAgICAgICAgICQoJyNTdWJqZWN0Jykub24oJ2NoYW5nZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHZhciBTZWxlY3RlZFF1ZXVlID0gJCgnI0Rlc3QnKS52YWwoKSwKICAgICAgICAgICAgICAgICAgICBTZWxlY3RlZFF1ZXVlTmFtZSwKICAgICAgICAgICAgICAgICAgICBEYXRhOwoKICAgICAgICAgICAgICAgIGlmIChTZWxlY3RlZFF1ZXVlKSB7CiAgICAgICAgICAgICAgICAgICAgU2VsZWN0ZWRRdWV1ZS5yZXBsYWNlKC9cZCpcfFx8LT8vLCAnJykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoICFRdWV1ZXNFbmFibGVkLmxlbmd0aCB8fCAhU2VsZWN0ZWRRdWV1ZU5hbWUgfHwgJC5pbkFycmF5KFNlbGVjdGVkUXVldWVOYW1lLCBRdWV1ZXNFbmFibGVkKSA+IC0xICkgewoKICAgICAgICAgICAgICAgICAgICBEYXRhID0gewogICAgICAgICAgICAgICAgICAgICAgICBBY3Rpb246ICdDdXN0b21lckZBUVJlbGF0ZWRBcnRpY2xlcycsCiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3Q6ICQoJyNTdWJqZWN0JykudmFsKCksCiAgICAgICAgICAgICAgICAgICAgICAgIFNlcnZpY2VJRDogJCgnI1NlcnZpY2VJRCcpLnZhbCgpLCAvLyBGQVEgU2VydmljZQogICAgICAgICAgICAgICAgICAgICAgICBCb2R5OiBDS0VkaXRvckluc3RhbmNlc1snUmljaFRleHQnXS5nZXREYXRhKCksCiAgICAgICAgICAgICAgICAgICAgfTsKCiAgICAgICAgICAgICAgICAgICAgaWYgKCAhTGFzdERhdGEgfHwgTGFzdERhdGEuU3ViamVjdCAhPSBEYXRhLlN1YmplY3QgfHwgTGFzdERhdGEuQm9keSAhPSBEYXRhLkJvZHkgfHwgTGFzdERhdGEuU2VydmljZUlEICE9IERhdGEuU2VydmljZUlEICkgewoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEkKCcuRkFRTWluaUxpc3QnKS5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJyNGQVFSZWxhdGVkQXJ0aWNsZXMgLkNvbnRlbnQnKS5odG1sKCc8ZGl2IGNsYXNzPSJDZW50ZXIiPjxzcGFuIGNsYXNzPSJBSkFYTG9hZGVyIiB0aXRsZT0iJyArIENvcmUuQ29uZmlnLkdldCgnTG9hZGluZ01zZycpICsgJyI+PC9zcGFuPjwvZGl2PicpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCEkKCcjRkFRUmVsYXRlZEFydGljbGVzIC5IZWFkZXIgLkFKQVhMb2FkZXInKS5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJyNGQVFSZWxhdGVkQXJ0aWNsZXMgLkhlYWRlciBoMycpLmFmdGVyKCc8c3BhbiBjbGFzcz0iQUpBWExvYWRlciIgc3R5bGU9ImZsb2F0OiByaWdodDsgbWFyZ2luOiAwOyIgdGl0bGU9IicgKyBDb3JlLkNvbmZpZy5HZXQoJ0xvYWRpbmdNc2cnKSArICciPjwvc3Bhbj4nKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCQoJyNTdWJqZWN0JykuZGF0YSgnUmVsYXRlZEZBUUFydGljbGVzWEhSJykpIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcjU3ViamVjdCcpLmRhdGEoJ1JlbGF0ZWRGQVFBcnRpY2xlc1hIUicpLmFib3J0KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcjU3ViamVjdCcpLnJlbW92ZURhdGEoJ1JlbGF0ZWRGQVFBcnRpY2xlc1hIUicpOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAkKCcjU3ViamVjdCcpLmRhdGEoJ1JlbGF0ZWRGQVFBcnRpY2xlc1hIUicsIENvcmUuQUpBWC5GdW5jdGlvbkNhbGwoQ29yZS5Db25maWcuR2V0KCdCYXNlbGluaycpLCBEYXRhLCBmdW5jdGlvbiAoUmVzcG9uc2UpIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcjU3ViamVjdCcpLnJlbW92ZURhdGEoJ1JlbGF0ZWRGQVFBcnRpY2xlc1hIUicpOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlbWVtYmVyIHRoZSBsYXN0IGRhdGEgdG8gZXhlY3V0ZSB0aGUgYWpheCByZXF1ZXN0IG9ubHkgaWYgbmVjZXNzYXJ5LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFzdERhdGEgPSBEYXRhOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggJCgnI0ZBUVJlbGF0ZWRBcnRpY2xlcycpLmxlbmd0aCApIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnI0ZBUVJlbGF0ZWRBcnRpY2xlcycpLmh0bWwoUmVzcG9uc2UuQ3VzdG9tZXJSZWxhdGVkRkFRQXJ0aWNsZXNIVE1MU3RyaW5nKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcjRkFRUmVsYXRlZEFydGljbGVzJykucmVtb3ZlQ2xhc3MoJ0hpZGRlbicpOyAvLyBYWFggaGFuZGxlIGNsYXNzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnI0ZBUVJlbGF0ZWRBcnRpY2xlczpub3QoLkhpZGRlbiknKS5zaG93KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAkKCcjRkFRUmVsYXRlZEFydGljbGVzIC5Db250ZW50ID4gLkZBUU1pbmlMaXN0JykubGVuZ3RoID09IDAgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gJCgnI0ZBUVJlbGF0ZWRBcnRpY2xlcycpLmhpZGUoKTsgLy8gWFhYOiBtYXliZSB0aGUgYnVnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gWFhYOiBpcyBoaWRkZW4gbmVjZXNzYXJ5IGF0IGFsbD8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAkKCcjRkFRUmVsYXRlZEFydGljbGVzJykuYWRkQ2xhc3MoJ0hpZGRlbicpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9KSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICQoJyNTdWJqZWN0Jykub24oJ3Bhc3RlIGtleWRvd24nLCBmdW5jdGlvbiAoRXZlbnQpIHsKICAgICAgICAgICAgICAgIHZhciBWYWx1ZSA9ICQoJyNTdWJqZWN0JykudmFsKCk7CgogICAgICAgICAgICAgICAgLy8gdHJpZ2dlciBvbmx5IHRoZSBjaGFuZ2UgZXZlbnQgZm9yIHRoZSBzdWJqZWN0LCBpZiBzcGFjZSBvciBlbnRlciB3YXMgcHJlc3NlZAogICAgICAgICAgICAgICAgaWYgKCggRXZlbnQudHlwZSA9PT0gJ2tleWRvd24nICYmICggRXZlbnQud2hpY2ggPT0gMzIgfHwgRXZlbnQud2hpY2ggPT0gMTMgKSAmJiAoIFZhbHVlLmxlbmd0aCA+IDEwIHx8IENLRWRpdG9ySW5zdGFuY2VzWydSaWNoVGV4dCddLmdldERhdGEoKSkpIHx8IEV2ZW50LnR5cGUgIT09ICdrZXlkb3duJykgewogICAgICAgICAgICAgICAgICAgICQoJyNTdWJqZWN0JykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgLy8gVGhlICJjaGFuZ2UiIGV2ZW50IGlzIGZpcmVkIHdoZW5ldmVyIGEgY2hhbmdlIGlzIG1hZGUgaW4gdGhlIGVkaXRvci4KICAgICAgICAgICAgQ0tFZGl0b3JJbnN0YW5jZXNbJ1JpY2hUZXh0J10uZWRpdGluZy52aWV3LmRvY3VtZW50Lm9uKCAna2V5ZG93bicsIGZ1bmN0aW9uIChfRXZlbnQsIGRhdGEpIHsKCiAgICAgICAgICAgICAgICAvLyB0cmlnZ2VyIG9ubHkgdGhlIGNoYW5nZSBldmVudCBmb3IgdGhlIHN1YmplY3QsIGlmIHNwYWNlIG9yIGVudGVyIHdhcyBwcmVzc2VkCiAgICAgICAgICAgICAgICBpZiAoIGRhdGEua2V5Q29kZSA9PSAzMiB8fCBkYXRhLmtleUNvZGUgPT0gMTMpIHsKICAgICAgICAgICAgICAgICAgICAkKCcjU3ViamVjdCcpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIC8vIFRoZSAicGFzdGUiIGV2ZW50IGlzIGZpcmVkIHdoZW5ldmVyIGEgcGFzdGUgaXMgbWFkZSBpbiB0aGUgZWRpdG9yLgogICAgICAgICAgICBDS0VkaXRvckluc3RhbmNlc1snUmljaFRleHQnXS5lZGl0aW5nLnZpZXcuZG9jdW1lbnQub24oICdwYXN0ZScsIGZ1bmN0aW9uICgpIHsKCiAgICAgICAgICAgICAgICAvLyB0cmlnZ2VyIG9ubHkgdGhlIGNoYW5nZSBldmVudCBmb3IgdGhlIHN1YmplY3QKICAgICAgICAgICAgICAgICQoJyNTdWJqZWN0JykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgLy8gVGhlICJibHVyIiBldmVudCBpcyBmaXJlZCB3aGVuZXZlciBhIGJsdXIgaXMgbWFkZSBpbiB0aGUgZWRpdG9yLgogICAgICAgICAgICBDS0VkaXRvckluc3RhbmNlc1snUmljaFRleHQnXS5lZGl0aW5nLnZpZXcuZG9jdW1lbnQub24oICdibHVyJywgZnVuY3Rpb24gKCkgewoKICAgICAgICAgICAgICAgIC8vIHRyaWdnZXIgb25seSB0aGUgY2hhbmdlIGV2ZW50IGZvciB0aGUgc3ViamVjdAogICAgICAgICAgICAgICAgJCgnI1N1YmplY3QnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAvLyBUcmlnZ2VyIHRoZSAnUmVsYXRlZEZBUUFydGljbGUnIGNoYW5nZSBldmVudCB0byBoaWRlL3Nob3cgdGhlIHJlbGF0ZWQgZmFxIGFydGljbGUgd2lkZ2V0IGZvciB0aGUgY2FzZQogICAgICAgICAgICAvLyAgdGhhdCB0aGUgcXVldWUgaXMgYWxyZWFkeSBzZWxlY3RlZCBhdCB0aGUgcGFnZSBsb2FkIG9yIHNob3cgdGhlIHdpZGdldCBhbHdheXMgaWYgdGhlIHF1ZXVlIHNlbGVjdGlvbiBpcyBkaXNhYmxlZC4KICAgICAgICAgICAgaWYgKCAhJCgnI0Rlc3QnKS5sZW5ndGggKSB7CiAgICAgICAgICAgICAgICAkKCcjRkFRUmVsYXRlZEFydGljbGVzJykucmVtb3ZlQ2xhc3MoJ0hpZGRlbicpOwoKICAgICAgICAgICAgICAgIGlmICgkKCcjU3ViamVjdCcpLnZhbCgpIHx8IENLRWRpdG9ySW5zdGFuY2VzWydSaWNoVGV4dCddLmdldERhdGEoKSkgewogICAgICAgICAgICAgICAgICAgICQoJyNTdWJqZWN0JykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkKCcjRGVzdCcpLnRyaWdnZXIoJ2NoYW5nZS5SZWxhdGVkRkFRQXJ0aWNsZScpOwogICAgICAgICAgICB9CgogICAgICAgIH0pOwogICAgfQoKICAgIENvcmUuSW5pdC5SZWdpc3Rlck5hbWVzcGFjZShUYXJnZXROUywgJ0FQUF9NT0RVTEUnKTsKCiAgICByZXR1cm4gVGFyZ2V0TlM7Cn0oRkFRLkN1c3RvbWVyLlJlbGF0ZWRBcnRpY2xlcyB8fCB7fSkpOwo=</File>
        <File Location="var/httpd/htdocs/skins/Agent/default/css/FAQ.Agent.Default.css" Permission="660" Encode="Base64">LyogT1RPQk8gaXMgYSB3ZWItYmFzZWQgdGlja2V0aW5nIHN5c3RlbSBmb3Igc2VydmljZSBvcmdhbmlzYXRpb25zLgoKQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwoKVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCkFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCkZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgpZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKi8KCi8qKgogKiBAcGFja2FnZSAgICAgU2tpbiAiRGVmYXVsdCIKICogQHNlY3Rpb24gICAgIERlZmF1bHQgU2V0dGluZ3MKICovCgpAbWVkaWEgc2NyZWVuLHByb2plY3Rpb24sdHYsaGFuZGhlbGQgewoKLyoqCiAqIEBzdWJzZWN0aW9uIEFydGljbGVMaXN0IEV4cGFuZGluZwogKi8KCi5GQVEgLk92ZXJ2aWV3Q29udHJvbCBkaXYgewogICAgcGFkZGluZzogMHB4Owp9CgouRkFRICNPdmVydmlld0JvZHkgewogICAgbWFyZ2luOiAwIDAgOHB4IDA7Cn0KCi8qKgogKiBAc3Vic2VjdGlvbiBMYXJnZSBTaWRlYmFyQ29sdW1uCiAqLwoKLkxheW91dEZpeGVkU2lkZWJhci5TaWRlYmFyTGFzdCA+IC5TaWRlYmFyQ29sdW1uLkxhcmdlIHsKICAgIHdpZHRoOiAzNTBweDsKICAgIGZsb2F0OiByaWdodDsKICAgIG1hcmdpbi1sZWZ0OiAxNnB4OwogICAgbWFyZ2luLXJpZ2h0OiAwOwp9CgouTGF5b3V0Rml4ZWRTaWRlYmFyLlNpZGViYXJMYXN0ID4gLlNpZGViYXJDb2x1bW4uTWVkaXVtIHsKICAgIHdpZHRoOiAyOTBweDsKICAgIGZsb2F0OiByaWdodDsKICAgIG1hcmdpbi1sZWZ0OiAxNnB4OwogICAgbWFyZ2luLXJpZ2h0OiAwOwp9CgovKioKICogQHN1YnNlY3Rpb24gRkFRTWluaUxpc3QKICovCgp1bC5GQVFNaW5pTGlzdCBzcGFuIHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgZm9udC1zaXplOiAxMHB4Owp9CgppZnJhbWUuVGV4dE9wdGlvbi5GQVEgewogICAgd2lkdGg6IDkwMHB4OwogICAgbWluLWhlaWdodDogNjAwcHg7Cn0KCmlmcmFtZS5GQVFGaWVsZCB7CiAgICB3aWR0aDogMTAwJTsKICAgIGZyYW1lYm9yZGVyOiAwOwp9CgpmaWVsZHNldC5UYWJsZVNtYWxsID4gZGl2LkZpZWxkIHsKICAgIG1hcmdpbi1sZWZ0OiAyNCUgIWltcG9ydGFudDsKfQoKZmllbGRzZXQuVGFibGVTbWFsbCA+IGxhYmVsIHsKICAgIHdpZHRoOiAyNCUgIWltcG9ydGFudDsKfQoKZmllbGRzZXQuVGFibGVTbWFsbCA+IGRpdi5GQVFEaXZpZGVyIHsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjQ0NDQ0NDOwogICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87Cn0KCi5UYWJsZVNtYWxsIHRib2R5IHRyLkludmFsaWQgewogICAgY29sb3I6ICNDQ0M7Cn0KCiNGQVFSZWxhdGVkQXJ0aWNsZXMgdGFibGUgewogICAgY2xlYXI6IG5vbmU7CiAgICB3aWR0aDogMTAwJTsKICAgIG1heC13aWR0aDogNjIycHg7CiAgICBsaW5lLWhlaWdodDogMTNweDsKfQoKI0ZBUVJlbGF0ZWRBcnRpY2xlcyB0YWJsZSAuRkFRVm90ZXMgewogICAgcGFkZGluZzogMCAzcHg7CiAgICB3aWR0aDogNzBweDsKfQoKI0ZBUVJlbGF0ZWRBcnRpY2xlcyB0YWJsZSAuRkFRVm90ZXMgaSB7CiAgICBtYXJnaW4tcmlnaHQ6IDBweDsKfQoKI0ZBUVJlbGF0ZWRBcnRpY2xlcyB0YWJsZSAuRkFRQ2F0ZWdvcmllIHsKICAgIHdpZHRoOiAyNSU7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICBvdmVyZmxvdzogaGlkZGVuOwp9CgojRkFRUmVsYXRlZEFydGljbGVzIHRhYmxlIC5GQVFUaXRsZSB7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICBvdmVyZmxvdzogaGlkZGVuOwp9CgojRkFRUmVsYXRlZEFydGljbGVzIHRhYmxlIC5GQVFEYXRlIHsKICAgIHdpZHRoOiA2NXB4OwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKfQoKLyogSW5jcmVhc2VkIHNwYWNlIGZvciBGQVEgVGV4dEVkaXRvcnMgKi8KCmZpZWxkc2V0LkZBUUVkaXRNYXNrIHsKCiAgICAuRmllbGQsCiAgICAuUmljaFRleHRGaWVsZCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwJSAhaW1wb3J0YW50OwogICAgfQogICAgCiAgICA+IGxhYmVsIHsKICAgICAgICB3aWR0aDogMTAlICFpbXBvcnRhbnQKICAgIH0KCiAgICAuUmljaFRleHRGaWVsZCB7CiAgICAgICAgd2lkdGg6IDgwJTsKICAgICAgICB3aWR0aDogbWF4KDgwJSwgNjIwcHgpOwogICAgICAgIG1heC13aWR0aDogdW5zZXQ7CiAgICAgICAgbWluLXdpZHRoOiA2MjBweDsKICAgIH0gCgogICAgPiBsYWJlbDpub3QoLmNrLWxhYmVsKSwKICAgID4gLlJvdyA+IGxhYmVsOm5vdCguY2stbGFiZWwpLAogICAgLlJvdyA+IC5GaWVsZENlbGwgbGFiZWw6bm90KC5jay1sYWJlbCkgewogICAgICAgIHdpZHRoOiAxMCU7CiAgICB9CgogICAgPiAuRmllbGQsCiAgICA+IC5Sb3cgPiAuRmllbGQsCiAgICAuUm93ID4gLkZpZWxkQ2VsbCA+IC5GaWVsZAogICAgLlJpY2hUZXh0RmllbGQgIHsKICAgICAgICBtYXJnaW4tbGVmdDogMTAlOwogICAgfQp9CgouUlRMIGZpZWxkc2V0LkZBUUVkaXRNYXNrIHsKICAgIAogICAgPiAuRmllbGQsCiAgICA+IC5Sb3cgPiAuRmllbGQsCiAgICA+IC5Sb3cgPiAuRmllbGRDZWxsID4gLkZpZWxkLAogICAgLlJpY2hUZXh0RmllbGQgewogICAgICAgIG1hcmdpbi1yaWdodDogMTAlOwogICAgfQoKfQoKfQo=</File>
        <File Location="var/httpd/htdocs/skins/Agent/default/css/FAQ.Agent.Detail.css" Permission="660" Encode="Base64">LyogT1RPQk8gaXMgYSB3ZWItYmFzZWQgdGlja2V0aW5nIHN5c3RlbSBmb3Igc2VydmljZSBvcmdhbmlzYXRpb25zLgoKQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwoKVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCkFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCkZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgpZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKi8KCi8qKgogKiBAcGFja2FnZSAgICAgU2tpbiAiRGVmYXVsdCIKICogQHNlY3Rpb24gICAgIEZBUURldGFpbHMKICovCgpAbWVkaWEgc2NyZWVuLHByb2plY3Rpb24sdHYsaGFuZGhlbGQgewoKCi8qKgogKiBAc3Vic2VjdGlvbiAgQXJ0aWNsZSB0YWJsZSBib2R5CiAqLwoKLkFydGljbGVGQVFDb250ZW50IHsKICAgIHBhZGRpbmc6IDExcHggMTJweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjM7Cn0KCi5BcnRpY2xlRkFRQ29udGVudCAuRkFRVm90ZUZvcm0gewogICAgZGlzcGxheTogYmxvY2s7CiAgICBtYXJnaW4tdG9wOiAxMHB4OwogICAgdGV4dC1hbGlnbjogY2VudGVyOwp9CgouQXJ0aWNsZUZBUUNvbnRlbnQgcC5DZW50ZXIgewogICAgcGFkZGluZy1ib3R0b206IDEwcHg7CiAgICBtYXJnaW46IDBweCA1MHB4OwogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7Cn0KCi5BcnRpY2xlRkFRQ29udGVudCAuRkFRVm90ZUZvcm0gLkNhbGxGb3JBY3Rpb24gewogICAgZGlzcGxheTogYmxvY2s7CiAgICBtYXJnaW46IDEwcHggYXV0byAwcHggYXV0bzsKfQoKLkFydGljbGVGQVFDb250ZW50IC5GQVFWb3RlRm9ybSAuQ2FsbEZvckFjdGlvbi5IaWRkZW4gewogICAgZGlzcGxheTogbm9uZTsKfQoKLkZBUVN0YXRlTmFtZSB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICByaWdodDogMTBweDsKICAgIHRvcDogN3B4OwogICAgZm9udC1zaXplOiA4MCU7CiAgICBmb250LXN0eWxlOiBpdGFsaWM7Cn0KCmZpZWxkc2V0IC5GQVFTdGF0ZU5hbWUgewogICAgcG9zaXRpb246IHN0YXRpYzsKfQoKLlJhdGVCdXR0b25zIHsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKfQoKLlJhdGVCdXR0b25zID4gbGkgewogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKfQoKLlJhdGVCdXR0b25zID4gbGk6Zmlyc3QtY2hpbGQsCi5SYXRlQnV0dG9ucyA+IGxpOmxhc3QtY2hpbGQgewogICAgZm9udC13ZWlnaHQ6IGJvbGQ7Cn0KCi5WaXNpYmxlLVNjcmVlblMgLlJhdGVCdXR0b25zID4gbGkgewogICAgZGlzcGxheTogYmxvY2s7CiAgICBtYXJnaW4tdG9wOiA1cHg7CiAgICBtYXJnaW4tYm90dG9tOiAxNXB4Owp9CgouVmlzaWJsZS1TY3JlZW5TIC5SYXRlQnV0dG9ucyA+IGxpIHNwYW4gewogICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDsKICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7Cn0KCi5SYXRlQnV0dG9uIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgaGVpZ2h0OiAzMHB4OwogICAgd2lkdGg6IDI1cHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBmbG9hdDogbGVmdDsKICAgIGNvbG9yOiAjMDAwMDAwOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwp9CgouUmF0ZUJ1dHRvbiBpIHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgZm9udC1zaXplOiAxNnB4OwogICAgd2lkdGg6IDEwMCU7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBjb2xvcjogIzk5OTsKfQoKLlJhdGVCdXR0b24gaS5mYS1zdGFyIHsKICAgIGRpc3BsYXk6IG5vbmU7Cn0KCi5SYXRlQnV0dG9uLlJhdGVDaGVja2VkIGkuZmEtc3RhciB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIGNvbG9yOiAjRTk3RDM0Owp9CgouUmF0ZUJ1dHRvbi5SYXRlQ2hlY2tlZCBpLmZhLXN0YXItbyB7CiAgICBkaXNwbGF5OiBub25lOwp9CgouUmF0ZUJ1dHRvbjpob3ZlciBpLmZhLXN0YXItbyB7CiAgICBjb2xvcjogIzAwMDsKfQoKLlJhdGVTdGFyIHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgaGVpZ2h0OiAxNnB4OwogICAgZmxvYXQ6IGxlZnQ7CiAgICBwYWRkaW5nLWxlZnQ6IDFweDsKICAgIGZvbnQtc2l6ZTogMTBweDsKfQoKLlJhdGVTdGFyVGV4dCB7CiAgICB0ZXh0LWluZGVudDo1cHg7Cn0KCi5SYXRlTGFiZWxCZWZvcmUsCi5SYXRlTGFiZWxBZnRlciB7CiAgICBjb2xvcjogIzMzMzsKICAgIHBhZGRpbmctdG9wOiA1cHg7CiAgICBmb250LXdlaWdodDogYm9sZDsKfQoKLlJhdGVMYWJlbEJlZm9yZSB7CiAgICBmbG9hdDogbGVmdDsKICAgIHBhZGRpbmctcmlnaHQ6IDZweDsKfQoKLlJhdGVMYWJlbEFmdGVyIHsKICAgIGZsb2F0OiBsZWZ0OwogICAgcGFkZGluZy1sZWZ0OiA1cHg7Cn0KCi5ab29tU21hbGxCdXR0b257CiAgICBtYXJnaW4tbGVmdDogMTJweDsKfQoKLkZBUU1lc3NhZ2VCcm93c2VyIHsKICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICBwYWRkaW5nOiAwcHg7CiAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KCi5GQVFNZXNzYWdlQnJvd3NlciBwIHsKICAgICBwYWRkaW5nOiA1cHggMjBweDsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRThFOEU4OwogICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCi5GQVFNZXNzYWdlQnJvd3NlciBhLkNsb3NlIHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgd2lkdGg6IDEycHg7CiAgICBoZWlnaHQ6IDEycHg7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICByaWdodDogNHB4OwogICAgdG9wOiA2cHg7CiAgICBjb2xvcjogIzVENUQ1RDsKfQoKLkZBUU1lc3NhZ2VCcm93c2VyIGEuQ2xvc2U6aG92ZXIgewogICAgY29sb3I6ICMwMDA7Cn0KfQo=</File>
        <File Location="var/httpd/htdocs/skins/Agent/default/img/help-small.png" Permission="660" Encode="Base64">iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAmJJREFUeNqkU0toE1EUPZkk84n5GMnHfrRBKRS0xCK21SKE1IUVV7oWgxa7KW6kkK2LghhdiBuDRURxIa6lOwlCjSgBJbhKhSjakibSTP7J/HzvTTMYcNcHZ97Mvfec9+7hjs0wDOxnOegjdmMDbrcHPt9BiKIU4ThuiYQXCMb36goE67qupzuddlGWq2g06sg8mzMF+osUJDh0U7Epd+Ds5AEMB830VlmNZvPNaCbXXiQ1KyT0fOAGfbLk7KST18f4yBAPszWN5Y6GbRg77MHsSSGwuvYjLes6+iJMQFGUiK62UsnEcX40yNFvXLj1aaDXh3cmcGrCh2RihL99L58iNRkSLnI0Wa83luanfYHRkJ2RVVXFtctDDOenvKjVavj4dYflaE38jC9AOZTLBNrtzsL8bIgVaJrGcDXux8UZHkFvl+ZRKu2gUChgc/M7Zk6IjGO1oOvceGTYRfYeO12Wa2i12vj8rYEnb7YxPRnCzStHiPMNUGvCfjvjWAIOhwsw6E26hFynhsJud+L+iypsNgmry8fQbDZJHc/8MMjFGacvIIreQuFnK3rI1SNEnsA0LvvqHNsrlV04naJl6K+yybE8kCT/+vucQocIPC9YuLT8m+HfmCCIyOZNjiUgCJ50JmerlGUqILHTKETRx9D/ptj+I+BD3lmhHEuA9FvsqeLKg5dqr7QrsEKHQ8Tbx2EG+k5jW4T86DV6tJZyBiaRTla5auDu004qdpoPzEWdGDGYY6RnDhtfFGRySqXVMQZG2UZHNr5YYubtrQjBf38mAnptdrKm9fBuLWwK7Gf9FWAAFbMKX7AnppcAAAAASUVORK5CYII=</File>
        <File Location="var/httpd/htdocs/skins/Customer/default/css/FAQ.Customer.Default.css" Permission="660" Encode="Base64">LyogT1RPQk8gaXMgYSB3ZWItYmFzZWQgdGlja2V0aW5nIHN5c3RlbSBmb3Igc2VydmljZSBvcmdhbmlzYXRpb25zLgoKQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwoKVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCkFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCkZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgpZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKi8KCmlmcmFtZS5GQVFGaWVsZCB7CiAgICB3aWR0aDogMTAwJTsKfQo=</File>
        <File Location="var/httpd/htdocs/skins/Customer/default/css/FAQ.Customer.Detail.css" Permission="660" Encode="Base64">LyogT1RPQk8gaXMgYSB3ZWItYmFzZWQgdGlja2V0aW5nIHN5c3RlbSBmb3Igc2VydmljZSBvcmdhbmlzYXRpb25zLgoKQ29weXJpZ2h0IChDKSAyMDE5LTIwMjUgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwoKVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCkFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCkZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgpZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKi8KCi8qKgogKiBAcGFja2FnZSAgICAgU2tpbiAiRGVmYXVsdCIKICogQHNlY3Rpb24gICAgIERlZmF1bHQgU2V0dGluZ3MKICovCgpAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4NHB4KSB7CgogICAgI0ZBUVZvdGluZyAuUmF0ZUxhYmVsQmVmb3JlLAogICAgI0ZBUVZvdGluZyAuUmF0ZUxhYmVsQWZ0ZXIgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICB9CgogICAgI0ZBUVZvdGluZyAuQWN0aW9uUm93IHsKICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsKICAgIH0KCn0KCkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHsKCiAgICAjb29vSGVhZGVyIHsKICAgICAgICBoZWlnaHQ6IDEyOXB4OwogICAgICAgIHBhZGRpbmc6IDBweCAxNnB4IDE2cHggMTZweDsKICAgICAgICBib3JkZXItYm90dG9tOiAwLjZweCBzb2xpZCAjZTVlNWViOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHggMjBweCAwcHggMHB4OwoKCiAgICAgICAgLyogdGV4dCArIGJyZWFkY3J1bWIgLyBzZWFyY2ggKi8KICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGNhbGMoIDEwMCUgLSAzMnB4ICk7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiA4NHB4IDQ1cHg7CiAgICAgICAgYWxpZ24taXRlbXM6IGVuZDsKCiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIH0KCiAgICAjb29vTWFpbkJveCB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmOTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xCR0xpZ2h0KTsKICAgICAgICBtaW4taGVpZ2h0OiBjYWxjKCAxMDB2aCAtIDI2NXB4ICk7CiAgICB9CgogICAgI29vb1NlYXJjaEJveCBpLm9vb2ZvLXNlYXJjaCB7CiAgICAgICAgdG9wOiAxNjBweDsKICAgICAgICBsZWZ0OiAyNnB4OwogICAgfQoKICAgIC5XaWRnZXRTaW1wbGUgewogICAgICAgIG1hcmdpbi10b3A6IDI0cHg7CiAgICB9CgogICAgLm9vb1N1YiB7CiAgICAgICAgcGFkZGluZzogMjRweCAyNHB4IDI0cHggMjRweDsKICAgIH0KCn0KCkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHsKCiAgICAjb29vSGVhZGVyIHsKICAgICAgICBwb3NpdGlvbjogc3RpY2t5OwogICAgICAgIHRvcDogMDsKICAgICAgICBoZWlnaHQ6IDE0NXB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDEuMnB4IHNvbGlkICNlNWU1ZWI7CgogICAgICAgIC8qIHRleHQgKyBicmVhZGNydW1iIC8gc2VhcmNoICovCiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgYXV0bzsKICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDEwMCU7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIH0KCiAgICAuV2lkZ2V0U2ltcGxlIHsKICAgICAgICBtYXJnaW4tdG9wOiA0OHB4OwogICAgfQoKICAgIC5vb29TdWIgewogICAgICAgIHBhZGRpbmc6IDI0cHggMzZweCAyNHB4IDM2cHg7CiAgICB9Cgp9CgpAbWVkaWEgc2NyZWVuLHByb2plY3Rpb24sdHYsaGFuZGhlbGQgewoKICAgICNvb29IZWFkZXIgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7CgogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICB9CgogICAgI29vb0hlYWRlciBpIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogM3B4OwogICAgfQoKICAgIC5CcmVhZENydW1iIHsKICAgICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgfQoKICAgIC5CcmVhZENydW1iIGEsCiAgICAuQnJlYWRDcnVtYiBoMyB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgfQoKICAgIC5CcmVhZENydW1iID4gYTphZnRlciB7CiAgICAgICAgLyogdXNlICFpbXBvcnRhbnQgdG8gcHJldmVudCBpc3N1ZXMgd2l0aCBicm93c2VyIGV4dGVuc2lvbnMgdGhhdCBjaGFuZ2UgZm9udHMgKi8KICAgICAgICBmb250LWZhbWlseTogJ290b2JvJyAhaW1wb3J0YW50OwogICAgICAgIHNwZWFrOiBub25lOwogICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsKICAgICAgICBmb250LXdlaWdodDogbm9ybWFsOwogICAgICAgIGZvbnQtdmFyaWFudDogbm9ybWFsOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwoKICAgICAgICAvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgPT09PT09PT09PT0gKi8KICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAgICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOwoKICAgICAgICBjb250ZW50OiAiXGU5MDQiOwogICAgICAgIGNvbG9yOiAjN2Y4MDlkOwogICAgICAgIGNvbG9yOiB2YXIoLS1jb2xUZXh0TGlnaHQpOwogICAgICAgIHBhZGRpbmctbGVmdDogNHB4OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDRweDsKICAgIH0KCiAgICAjb29vQ3VzdG9tZXJOb3RpZmljYXRpb25zIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y5OwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbEJHTGlnaHQpOwogICAgfQoKICAgIC5XaWRnZXRTaW1wbGUgewogICAgICAgIG1heC13aWR0aDogMTA1MHB4OwogICAgfQoKICAgIC5IZWFkZXIgewogICAgICAgIG1heC13aWR0aDogMTAxNnB4OwogICAgfQoKLyogU3ViQ2F0ZWdvcmllcyAqLwogICAgLm9vb1N1YkJveCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHRvcDogLTVweDsKICAgICAgICBsZWZ0OiAtNXB4OwogICAgICAgIHBhZGRpbmc6IDVweCA1cHggNXB4IDVweDsKICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CgogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBtYXgtaGVpZ2h0OiAyNjBweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgfQoKICAgIC5vb29TdWIgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBoZWlnaHQ6IDY2cHg7CiAgICAgICAgd2lkdGg6IDI1NnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7CiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNHB4IDAgcmdiYSg0LCAwLCA3MSwgMC4xNik7CiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNHB4IDAgdmFyKC0tY29sU2hhZG93RGFyayk7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7CiAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgIH0KCiAgICAub29vU3ViID4gaDMsCiAgICAub29vU3ViID4gcCB7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgfQoKICAgIC5vb29TdWIgPiBoMyB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIG1heC13aWR0aDogMjIwcHg7CiAgICB9CgogICAgLm9vb1N1YkNvdW50IHsKICAgICAgICBmbG9hdDogcmlnaHQ7CiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgICAgICAgcGFkZGluZy10b3A6IDJweDsKICAgIH0KCiAgICAub29vQ29tbWVudCB7CiAgICAgICAgaGVpZ2h0OiA0MnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgfQoKLyogYXJ0aWNsZSBsaXN0ICovCiAgICAuSGVhZGVyID4gaDIgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIH0KICAgIC5QYWdpbmF0aW9uIHsKICAgICAgICBmbG9hdDogcmlnaHQ7CiAgICAgICAgcGFkZGluZy10b3A6IDIwcHg7CiAgICAgICAgcGFkZGluZy1yaWdodDogMzZweDsKICAgIH0KCiAgICAub29vRkFRIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgd2lkdGg6IGNhbGMoIDEwMCUgLSA3MnB4ICk7CiAgICAgICAgbWF4LXdpZHRoOiA5NDRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAxNXB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDRweCAwIHJnYmEoNCwgMCwgNzEsIDAuMTYpOwogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDRweCAwIHZhcigtLWNvbFNoYWRvd0RhcmspOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7CiAgICAgICAgcGFkZGluZzogMTZweCAzNnB4IDE2cHggMzZweDsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgfQoKICAgIC5vb29GQVEgaDMgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBtYXgtd2lkdGg6IGNhbGMoIDEwMCUgLSA0MHB4ICk7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgfQoKICAgIC5vb29GQVEgcCB7CiAgICAgICAgZmxvYXQ6IHJpZ2h0OwogICAgICAgIHBhZGRpbmctdG9wOiAycHg7CiAgICB9CgovKiBhcnRpY2xlIHpvb20gKi8KCiAgICAjTWVzc2FnZXMgPiBsaSwKICAgICNab29tU2lkZWJhciB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IGNhbGMoIDEwMCUgLSA3MnB4ICk7CiAgICAgICAgbWF4LXdpZHRoOiA5NDRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAxNXB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDRweCAwIHJnYmEoNCwgMCwgNzEsIDAuMTYpOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7CiAgICAgICAgcGFkZGluZzogMjRweCAzNnB4IDI0cHggMzZweDsKICAgICAgICBtYXJnaW4tdG9wOiAyNHB4OwogICAgfQoKICAgICNNZXNzYWdlcyAuTWVzc2FnZUJvZHkgewogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgfQoKICAgIC5BdHRhY2htZW50cywKICAgICNNZXRhZGF0YSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDsKICAgIH0KCi8qIFJhdGluZyAqLwogICAgLlJhdGVCdXR0b24gewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAzMHB4OwogICAgICAgIHdpZHRoOiAyNXB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmbG9hdDogbGVmdDsKICAgICAgICBjb2xvcjogIzAwMDAwMDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB9CiAgICAKICAgIC5SVEwgLlJhdGVCdXR0b24gewogICAgICAgIGZsb2F0OiByaWdodDsKICAgIH0KICAgIAogICAgLlJhdGVCdXR0b24gaSB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogIzdmODA5ZDsKICAgICAgICBjb2xvcjogdmFyKC0tY29sVGV4dExpZ2h0KTsKICAgIH0KICAgIAogICAgLlJhdGVCdXR0b24gaS5mYS1zdGFyIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgfQogICAgCiAgICAuUmF0ZUJ1dHRvbi5SYXRlQ2hlY2tlZCBpLmZhLXN0YXIgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGNvbG9yOiAjMDAxYmZmOwogICAgICAgIGNvbG9yOiB2YXIoLS1jb2xNYWluTGlnaHQpOwogICAgfQogICAgCiAgICAuUmF0ZUJ1dHRvbi5SYXRlQ2hlY2tlZCBpLmZhLXN0YXItbyB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgIH0KICAgIAogICAgLlJhdGVCdXR0b246aG92ZXIgaS5mYS1zdGFyLW8gewogICAgICAgIGNvbG9yOiAjMDAwMjNjOwogICAgICAgIGNvbG9yOiB2YXIoLS1jb2xNYWluRGFyayk7CiAgICB9CiAgICAKICAgIC5SYXRlU3RhciB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmbG9hdDogbGVmdDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDFweDsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICB9CiAgICAKICAgIC5SVEwgLlJhdGVTdGFyIHsKICAgICAgICBmbG9hdDogcmlnaHQ7CiAgICB9CiAgICAKICAgIC5SYXRlU3RhclRleHQgewogICAgICAgIG1hcmdpbi1sZWZ0OiA2cHg7CiAgICB9CiAgICAKICAgIC5SVEwgLlJhdGVTdGFyVGV4dCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDBweDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDZweDsKICAgIH0KICAgIAogICAgLlJhdGVMYWJlbEJlZm9yZSB7CiAgICAgICAgZmxvYXQ6IGxlZnQ7CiAgICAgICAgcGFkZGluZy1yaWdodDogMTVweDsKICAgICAgICBtYXJnaW4tbGVmdDogMTBweDsKICAgIH0KICAgIAogICAgLlJUTCAuUmF0ZUxhYmVsQmVmb3JlIHsKICAgICAgICBmbG9hdDogcmlnaHQ7CiAgICB9CiAgICAKICAgIC5SYXRlTGFiZWxBZnRlciB7CiAgICAgICAgZmxvYXQ6IGxlZnQ7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDVweDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDI1cHg7CiAgICB9CiAgICAKICAgIC5SVEwgLlJhdGVMYWJlbEFmdGVyIHsKICAgICAgICBmbG9hdDogbGVmdDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDsKICAgICAgICBtYXJnaW4tbGVmdDogNjVweDsKICAgIH0KICAgIAogICAgLlJhdGluZ0xhYmVsIHsKICAgICAgICBmbG9hdDogbGVmdDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAycHg7CiAgICB9CiAgICAKICAgIC5SVEwgLlJhdGluZ0xhYmVsIHsKICAgICAgICBmbG9hdDogcmlnaHQ7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAycHg7CiAgICB9CgogICAgLlZvdGluZ0JveCB7CiAgICAgICAgbWFyZ2luLXRvcDogMjRweDsKICAgIH0KCiAgICAjRkFRVm90aW5nIC5TcGFjaW5nVG9wIHsKICAgICAgICBoZWlnaHQ6IDEycHg7CiAgICB9CgovKiAgICAuU3BhY2luZ1RvcCB7CiAgICAgICAgbWFyZ2luLXRvcDogMTNweDsKICAgIH0KICAgIAogICAgLlNwYWNpbmdUb3BMYXJnZSB7CiAgICAgICAgbWFyZ2luLXRvcDogMjZweDsKICAgIH0KICAgIAogICAgLlJUTCAuVm90aW5nQ29udGFpbmVyIHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB9CiAgICAKICAgIC5Wb3RpbmdRdWVzdGlvbiB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7CiAgICAgICAgbWFyZ2luLXJpZ2h0OjEwcHg7CiAgICAgICAgY29sb3I6ICMwMDAwMDA7CiAgICB9CiAgICAKICAgIC5Wb3RpbmdCb3ggewogICAgICAgIG1pbi13aWR0aDogMjBwYzsKICAgICAgICBtYXJnaW46IDAgMzBweCAyMXB4OwogICAgICAgIGNvbG9yOiAjNkE2QTZBOwogICAgICAgIGJhY2tncm91bmQ6ICNGOUY5Rjk7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjRDZENkQ2OwogICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNENkQ2RDY7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0Q2RDZENjsKICAgIH0KICAgIAogICAgLlZvdGluZ0JveCA+ICNNZXNzZW5nZXIgewogICAgICAgIGhlaWdodDogYXV0bzsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI0VFRTsKICAgIH0KKi8gICAgCn0K</File>
        <File Location="var/httpd/htdocs/skins/Customer/default/css/FAQ.RelatedArticles.css" Permission="660" Encode="Base64">LyogT1RPQk8gaXMgYSB3ZWItYmFzZWQgdGlja2V0aW5nIHN5c3RlbSBmb3Igc2VydmljZSBvcmdhbmlzYXRpb25zLgoKQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwoKVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCkFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCkZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgpZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKi8KCkBtZWRpYSBzY3JlZW4scHJvamVjdGlvbix0dixoYW5kaGVsZCB7CgojRkFRUmVsYXRlZEFydGljbGVzLkhpZGRlbiB7CiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7Cn0KCiNGQVFSZWxhdGVkQXJ0aWNsZXM6YmVmb3JlIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHRvcDogNXB4OwoKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICAvKiB1c2UgIWltcG9ydGFudCB0byBwcmV2ZW50IGlzc3VlcyB3aXRoIGJyb3dzZXIgZXh0ZW5zaW9ucyB0aGF0IGNoYW5nZSBmb250cyAqLwogICAgZm9udC1mYW1pbHk6ICdvdG9ibycgIWltcG9ydGFudDsKICAgIHNwZWFrOiBub25lOwogICAgZm9udC1zdHlsZTogbm9ybWFsOwogICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKICAgIGZvbnQtdmFyaWFudDogbm9ybWFsOwogICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7CiAgICBsaW5lLWhlaWdodDogMTsKCiAgICAvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgPT09PT09PT09PT0gKi8KICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOwogICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsKICAgIGNvbnRlbnQ6ICJcZTkxMSI7Cn0KCiNGQVFSZWxhdGVkQXJ0aWNsZXMgPiAuV2lkZ2V0U2ltcGxlIHsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CiAgICB3aWR0aDogMjIwcHg7CiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsOwp9CgojRkFRUmVsYXRlZEFydGljbGVzIC5IZWFkZXIgewogICAgbWFyZ2luLWJvdHRvbTogOHB4Owp9CgojRkFRUmVsYXRlZEFydGljbGVzIGxpIHsKICAgIHBhZGRpbmctdG9wOiAxNnB4OwogICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgIGJvcmRlci10b3A6IDEuMnB4IHNvbGlkICNlNWU1ZWI7Cn0KCiNGQVFSZWxhdGVkQXJ0aWNsZXMgbGk6Zmlyc3QtY2hpbGQgewogICAgYm9yZGVyLXRvcDogbm9uZTsKfQoKLlJlbGF0ZWRGQVFBcnRpY2xlTGlzdCB7CiAgICBmb250LXNpemU6IDE1cHg7CiAgICBsZXR0ZXItc3BhY2luZzogMC4zcHg7Cn0KICAgIApAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEyNzlweCkgewoKICAgICNGQVFSZWxhdGVkQXJ0aWNsZXMgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBsZWZ0OiA4cHg7CgogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwoKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgIH0KCiAgICAjRkFRUmVsYXRlZEFydGljbGVzID4gLldpZGdldFNpbXBsZSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICB9CgogICAgI0ZBUVJlbGF0ZWRBcnRpY2xlcyA+IC5XaWRnZXRTaW1wbGUgIGxpIHsKICAgICAgICBwYWRkaW5nLXRvcDogOHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgIH0KCiAgICAjRkFRUmVsYXRlZEFydGljbGVzID4gLldpZGdldFNpbXBsZSA+IC5Db250ZW50IHsKICAgICAgICBtYXgtaGVpZ2h0OiAxMDBweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgfQoKfQoKQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjgwcHgpIHsKCiAgICAjRkFRUmVsYXRlZEFydGljbGVzIHsKICAgICAgICAtLWFydGljbGUtbGlzdC13aWR0aDogMjQwcHg7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiBjYWxjKCAtMSAqICggdmFyKC0tYXJ0aWNsZS1saXN0LXdpZHRoKSArIDhweCApKTsKICAgICAgICB0b3A6IDhweDsKCiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CgogICAgICAgIHdpZHRoOiB2YXIoLS1hcnRpY2xlLWxpc3Qtd2lkdGgpOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICB9Cgp9Cgp9IC8qIGVuZCBAbWVkaWEgKi8K</File>
        <File Location="var/httpd/htdocs/skins/Customer/default/img/faq.svg" Permission="660" Encode="Base64">PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCI+PGc+PHJlY3QgZmlsbD0ibm9uZSIgaGVpZ2h0PSIyNCIgd2lkdGg9IjI0Ii8+PHJlY3QgZmlsbD0ibm9uZSIgaGVpZ2h0PSIyNCIgd2lkdGg9IjI0Ii8+PC9nPjxnPjxwYXRoIGQ9Ik0xNy41LDQuNWMtMS45NSwwLTQuMDUsMC40LTUuNSwxLjVjLTEuNDUtMS4xLTMuNTUtMS41LTUuNS0xLjVjLTEuNDUsMC0yLjk5LDAuMjItNC4yOCwwLjc5QzEuNDksNS42MiwxLDYuMzMsMSw3LjE0IGwwLDExLjI4YzAsMS4zLDEuMjIsMi4yNiwyLjQ4LDEuOTRDNC40NiwyMC4xMSw1LjUsMjAsNi41LDIwYzEuNTYsMCwzLjIyLDAuMjYsNC41NiwwLjkyYzAuNiwwLjMsMS4yOCwwLjMsMS44NywwIGMxLjM0LTAuNjcsMy0wLjkyLDQuNTYtMC45MmMxLDAsMi4wNCwwLjExLDMuMDIsMC4zNmMxLjI2LDAuMzMsMi40OC0wLjYzLDIuNDgtMS45NGwwLTExLjI4YzAtMC44MS0wLjQ5LTEuNTItMS4yMi0xLjg1IEMyMC40OSw0LjcyLDE4Ljk1LDQuNSwxNy41LDQuNXogTTIxLDE3LjIzYzAsMC42My0wLjU4LDEuMDktMS4yLDAuOThjLTAuNzUtMC4xNC0xLjUzLTAuMi0yLjMtMC4yYy0xLjcsMC00LjE1LDAuNjUtNS41LDEuNVY4IGMxLjM1LTAuODUsMy44LTEuNSw1LjUtMS41YzAuOTIsMCwxLjgzLDAuMDksMi43LDAuMjhjMC40NiwwLjEsMC44LDAuNTEsMC44LDAuOThWMTcuMjN6Ii8+PGcvPjxwYXRoIGQ9Ik0xMy45OCwxMS4wMWMtMC4zMiwwLTAuNjEtMC4yLTAuNzEtMC41MmMtMC4xMy0wLjM5LDAuMDktMC44MiwwLjQ4LTAuOTRjMS41NC0wLjUsMy41My0wLjY2LDUuMzYtMC40NSBjMC40MSwwLjA1LDAuNzEsMC40MiwwLjY2LDAuODNjLTAuMDUsMC40MS0wLjQyLDAuNzEtMC44MywwLjY2Yy0xLjYyLTAuMTktMy4zOS0wLjA0LTQuNzMsMC4zOSBDMTQuMTMsMTAuOTksMTQuMDUsMTEuMDEsMTMuOTgsMTEuMDF6Ii8+PHBhdGggZD0iTTEzLjk4LDEzLjY3Yy0wLjMyLDAtMC42MS0wLjItMC43MS0wLjUyYy0wLjEzLTAuMzksMC4wOS0wLjgyLDAuNDgtMC45NGMxLjUzLTAuNSwzLjUzLTAuNjYsNS4zNi0wLjQ1IGMwLjQxLDAuMDUsMC43MSwwLjQyLDAuNjYsMC44M2MtMC4wNSwwLjQxLTAuNDIsMC43MS0wLjgzLDAuNjZjLTEuNjItMC4xOS0zLjM5LTAuMDQtNC43MywwLjM5IEMxNC4xMywxMy42NiwxNC4wNSwxMy42NywxMy45OCwxMy42N3oiLz48cGF0aCBkPSJNMTMuOTgsMTYuMzNjLTAuMzIsMC0wLjYxLTAuMi0wLjcxLTAuNTJjLTAuMTMtMC4zOSwwLjA5LTAuODIsMC40OC0wLjk0YzEuNTMtMC41LDMuNTMtMC42Niw1LjM2LTAuNDUgYzAuNDEsMC4wNSwwLjcxLDAuNDIsMC42NiwwLjgzYy0wLjA1LDAuNDEtMC40MiwwLjctMC44MywwLjY2Yy0xLjYyLTAuMTktMy4zOS0wLjA0LTQuNzMsMC4zOSBDMTQuMTMsMTYuMzIsMTQuMDUsMTYuMzMsMTMuOTgsMTYuMzN6Ii8+PC9nPjwvc3ZnPg==</File>
        <File Location="var/packagesetup/FAQ.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE5IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIHZhcjo6cGFja2FnZXNldHVwOjpGQVE7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgTGlzdDo6VXRpbCBxdygpOwp1c2UgS2VybmVsOjpPdXRwdXQ6OlRlbXBsYXRlOjpQcm92aWRlcjsKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OkRCJywKICAgICdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJywKICAgICdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkVmFsdWUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpGQVEnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxpbmtPYmplY3QnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpNYWluJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKICAgICdLZXJuZWw6OlN5c3RlbTo6U3RhdHMnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpTeXNDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcsCik7Cgo9aGVhZDEgTkFNRQoKdmFyOjpwYWNrYWdlc2V0dXA6OkZBUSAtIGNvZGUgdG8gZXhlY3V0ZSBkdXJpbmcgcGFja2FnZSBpbnN0YWxsYXRpb24KCj1oZWFkMSBERVNDUklQVElPTgoKQWxsIGZ1bmN0aW9ucwoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1oZWFkMiBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlcjsKICAgIGxvY2FsICRLZXJuZWw6Ok9NID0gS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXItPm5ldygpOwogICAgbXkgJENvZGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCd2YXI6OnBhY2thZ2VzZXR1cDo6RkFRJyk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBBbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0LgogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIEZvcmNlIGEgcmVsb2FkIG9mIFpaWkF1dG8ucG0gYW5kIFpaWkFBdXRvLnBtIHRvIGdldCB0aGUgZnJlc2ggY29uZmlndXJhdGlvbiB2YWx1ZXMuCiAgICBmb3IgbXkgJE1vZHVsZSAoIHNvcnQga2V5cyAlSU5DICkgewogICAgICAgIGlmICggJE1vZHVsZSA9fiBtL1paWkFBP3V0b1wucG0kLyApIHsKICAgICAgICAgICAgZGVsZXRlICRJTkN7JE1vZHVsZX07CiAgICAgICAgfQogICAgfQoKICAgICMgQ3JlYXRlIGNvbW1vbiBvYmplY3RzIHdpdGggZnJlc2ggZGVmYXVsdCBjb25maWcuCiAgICAkS2VybmVsOjpPTS0+T2JqZWN0c0Rpc2NhcmQoKTsKCiAgICAjIERlZmluZSBVc2VySUQgcGFyYW1ldGVyIGZvciB0aGUgY29uc3RydWN0b3Igb2YgdGhlIHN0YXRzIG9iamVjdC4KICAgICRLZXJuZWw6Ok9NLT5PYmplY3RQYXJhbUFkZCgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OlN0YXRzJyA9PiB7CiAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgIH0sCiAgICApOwoKICAgICMgRGVmaW5lIGZpbGUgcHJlZml4LgogICAgJFNlbGYtPntGaWxlUHJlZml4fSA9ICdGQVEnOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWhlYWQyIENvZGVJbnN0YWxsKCkKCnJ1biB0aGUgY29kZSBpbnN0YWxsIHBhcnQKCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPkNvZGVJbnN0YWxsKCk7Cgo9Y3V0CgpzdWIgQ29kZUluc3RhbGwgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGluc2VydCB0aGUgRkFRIHN0YXRlcwogICAgJFNlbGYtPl9JbnNlcnRGQVFTdGF0ZXMoKTsKCiAgICAjIEFkZCBkZWZhdWx0IGdyb3VwcyB0byB0aGUgY2F0ZWdvcnkgJ01pc2MnLgogICAgJFNlbGYtPl9DYXRlZ29yeUdyb3VwU2V0KAogICAgICAgIENhdGVnb3J5ID0+ICdNaXNjJywKICAgICAgICBHcm91cHMgICA9PiBbICdhZG1pbicsICd1c2VycycgXSwKICAgICk7CgogICAgIyBjcmVhdGUgYWRkaXRpb25hbCBGQVEgbGFuZ3VhZ2VzCiAgICAkU2VsZi0+X0NyZWF0ZUFkaXRpb25hbEZBUUxhbmd1YWdlcygpOwoKICAgICMgaW5zdGFsbCBzdGF0cwogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN0YXRzJyktPlN0YXRzSW5zdGFsbCgKICAgICAgICBGaWxlUHJlZml4ID0+ICRTZWxmLT57RmlsZVByZWZpeH0sCiAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIENvZGVSZWluc3RhbGwoKQoKcnVuIHRoZSBjb2RlIHJlaW5zdGFsbCBwYXJ0CgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5Db2RlUmVpbnN0YWxsKCk7Cgo9Y3V0CgpzdWIgQ29kZVJlaW5zdGFsbCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgaW5zZXJ0IHRoZSBGQVEgc3RhdGVzCiAgICAkU2VsZi0+X0luc2VydEZBUVN0YXRlcygpOwoKICAgICMgaW5zdGFsbCBzdGF0cwogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN0YXRzJyktPlN0YXRzSW5zdGFsbCgKICAgICAgICBGaWxlUHJlZml4ID0+ICRTZWxmLT57RmlsZVByZWZpeH0sCiAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgKTsKCiAgICAjIGNyZWF0ZSBhZGRpdGlvbmFsIEZBUSBsYW5ndWFnZXMKICAgICRTZWxmLT5fQ3JlYXRlQWRpdGlvbmFsRkFRTGFuZ3VhZ2VzKCk7CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBDb2RlVXBncmFkZSgpCgpydW4gdGhlIGNvZGUgdXBncmFkZSBwYXJ0CgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5Db2RlVXBncmFkZSgpOwoKPWN1dAoKc3ViIENvZGVVcGdyYWRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBpbnN0YWxsIHN0YXRzCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3RhdHMnKS0+U3RhdHNJbnN0YWxsKAogICAgICAgIEZpbGVQcmVmaXggPT4gJFNlbGYtPntGaWxlUHJlZml4fSwKICAgICAgICBVc2VySUQgICAgID0+IDEsCiAgICApOwoKICAgICMgY3JlYXRlIGFkZGl0aW9uYWwgRkFRIGxhbmd1YWdlcwogICAgJFNlbGYtPl9DcmVhdGVBZGl0aW9uYWxGQVFMYW5ndWFnZXMoKTsKCiAgICAjIGRlbGV0ZSB0aGUgRkFRIGNhY2hlICh0byBhdm9pZCBvbGQgZGF0YSBmcm9tIHByZXZpb3VzIEZBUSBtb2R1bGVzKQogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyktPkNsZWFuVXAoCiAgICAgICAgVHlwZSA9PiAnRkFRJywKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBDb2RlVXBncmFkZVNwZWNpYWwoKQoKcnVuIHNwZWNpYWwgY29kZSB1cGdyYWRlIHBhcnQKCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPkNvZGVVcGdyYWRlU3BlY2lhbCgpOwoKPWN1dAoKc3ViIENvZGVVcGdyYWRlU3BlY2lhbCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY29udmVydCBcbiB0byA8YnI+IGZvciBleGlzdGluZyBhcnRpY2xlcwogICAgJFNlbGYtPl9Db252ZXJ0TmV3bGluZXMoKTsKCiAgICAjIHN0YXJ0IG5vcm1hbCBjb2RlIHVwZ3JhZGUKICAgICRTZWxmLT5Db2RlVXBncmFkZSgpOwoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgQ29kZVVwZ3JhZGVGcm9tTG93ZXJUaGFuXzRfMF8xKCkKClRoaXMgZnVuY3Rpb24gaXMgb25seSBleGVjdXRlZCBpZiB0aGUgaW5zdGFsbGVkIG1vZHVsZSB2ZXJzaW9uIGlzIHNtYWxsZXIgdGhhbiA0LjAuMS4KCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPkNvZGVVcGdyYWRlRnJvbUxvd2VyVGhhbl80XzBfMSgpOwoKPWN1dAoKc3ViIENvZGVVcGdyYWRlRnJvbUxvd2VyVGhhbl80XzBfMSB7ICAgICMjIG5vIGNyaXRpYyBxdyhPVE9CTzo6UmVxdWlyZUNhbWVsQ2FzZSkKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBNaWdyYXRlIHRoZSBEVEwgQ29udGVudCBpbiB0aGUgU3lzQ29uZmlnLgogICAgJFNlbGYtPl9NaWdyYXRlRFRMSW5TeXNDb25maWcoKTsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIENvZGVVcGdyYWRlRnJvbUxvd2VyVGhhbl80XzBfOTEoKQoKVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGV4ZWN1dGVkIGlmIHRoZSBpbnN0YWxsZWQgbW9kdWxlIHZlcnNpb24gaXMgc21hbGxlciB0aGFuIDQuMC45MS4KCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPkNvZGVVcGdyYWRlRnJvbUxvd2VyVGhhbl80XzBfOTEoKTsKCj1jdXQKCnN1YiBDb2RlVXBncmFkZUZyb21Mb3dlclRoYW5fNF8wXzkxIHsgICAgIyMgbm8gY3JpdGljIHF3KE9UT0JPOjpSZXF1aXJlQ2FtZWxDYXNlKQogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIENoYW5nZSBjb25maWd1cmF0aW9ucyB0byBtYXRjaCB0aGUgbmV3IG1vZHVsZSBsb2NhdGlvbi4KICAgICRTZWxmLT5fTWlncmF0ZUNvbmZpZ3MoKTsKCiAgICAjIFNldCBjb250ZW50IHR5cGUuCiAgICAkU2VsZi0+X1NldENvbnRlbnRUeXBlKCk7CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBDb2RlVXBncmFkZUZyb21Mb3dlclRoYW5fNV8wXzkyKCkKClRoaXMgZnVuY3Rpb24gaXMgb25seSBleGVjdXRlZCBpZiB0aGUgaW5zdGFsbGVkIG1vZHVsZSB2ZXJzaW9uIGlzIHNtYWxsZXIgdGhhbiA1LjAuOTIuCgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5Db2RlVXBncmFkZUZyb21Mb3dlclRoYW5fNV8wXzkyKCk7Cgo9Y3V0CgpzdWIgQ29kZVVwZ3JhZGVGcm9tTG93ZXJUaGFuXzVfMF85MiB7ICAgICMjIG5vIGNyaXRpYyBxdyhPVE9CTzo6UmVxdWlyZUNhbWVsQ2FzZSkKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBSZWNvdmVyIHRoZSBvbGQgcGVybWlzc2lvbnMKICAgICRTZWxmLT5fTWlncmF0ZVBlcm1pc3Npb25zKCk7CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBDb2RlVW5pbnN0YWxsKCkKCnJ1biB0aGUgY29kZSB1bmluc3RhbGwgcGFydAoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+Q29kZVVuaW5zdGFsbCgpOwoKPWN1dAoKc3ViIENvZGVVbmluc3RhbGwgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIHJlbW92ZSBEeW5hbWljIEZpZWxkcyBhbmQgaXRzIHZhbHVlcwogICAgJFNlbGYtPl9EeW5hbWljRmllbGRzRGVsZXRlKCk7CgogICAgIyBEZWFjdGl2YXRlIHRoZSBncm91cCAnZmFxJy4KICAgICRTZWxmLT5fR3JvdXBEZWFjdGl2YXRlKAogICAgICAgIE5hbWUgPT4gJ2ZhcScsCiAgICApOwoKICAgICMgRGVhY3RpdmF0ZSB0aGUgZ3JvdXAgJ2ZhcV9hZG1pbicuCiAgICAkU2VsZi0+X0dyb3VwRGVhY3RpdmF0ZSgKICAgICAgICBOYW1lID0+ICdmYXFfYWRtaW4nLAogICAgKTsKCiAgICAjIERlYWN0aXZhdGUgdGhlIGdyb3VwICdmYXFfYXBwcm92YWwnLgogICAgJFNlbGYtPl9Hcm91cERlYWN0aXZhdGUoCiAgICAgICAgTmFtZSA9PiAnZmFxX2FwcHJvdmFsJywKICAgICk7CgogICAgIyB1bmluc3RhbGwgc3RhdHMKICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTdGF0cycpLT5TdGF0c1VuaW5zdGFsbCgKICAgICAgICBGaWxlUHJlZml4ID0+ICRTZWxmLT57RmlsZVByZWZpeH0sCiAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgKTsKCiAgICAjIGRlbGV0ZSBhbGwgbGlua3Mgd2l0aCBGQVEgYXJ0aWNsZXMKICAgICRTZWxmLT5fTGlua0RlbGV0ZSgpOwoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgX0luc2VydEZBUVN0YXRlcygpCgppbnNlcnRzIG5lZWRlZCBGQVEgc3RhdGVzIGludG8gdGFibGUKCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPl9JbnNlcnRGQVFTdGF0ZXMoKTsKCj1jdXQKCnN1YiBfSW5zZXJ0RkFRU3RhdGVzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBkZWZpbmUgZmFxX3N0YXRlX3R5cGVzID0+IGZhcV9zdGF0ZXMKICAgIG15ICVTdGF0ZSA9ICgKICAgICAgICAnaW50ZXJuYWwnID0+ICdpbnRlcm5hbCAoYWdlbnQpJywKICAgICAgICAnZXh0ZXJuYWwnID0+ICdleHRlcm5hbCAoY3VzdG9tZXIpJywKICAgICAgICAncHVibGljJyAgID0+ICdwdWJsaWMgKGFsbCknLAogICAgKTsKCiAgICAjIGdldCBGQVEgb2JqZWN0CiAgICBteSAkRkFRT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkZBUScpOwoKICAgIGZvciBteSAkVHlwZSAoIHNvcnQga2V5cyAlU3RhdGUgKSB7CgogICAgICAgICMgZ2V0IHRoZSBzdGF0ZSB0eXBlCiAgICAgICAgbXkgJFN0YXRlVHlwZVJlZiA9ICRGQVFPYmplY3QtPlN0YXRlVHlwZUdldCgKICAgICAgICAgICAgTmFtZSAgID0+ICRUeXBlLAogICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIGFkZCB0aGUgc3RhdGUKICAgICAgICAkRkFRT2JqZWN0LT5TdGF0ZUFkZCgKICAgICAgICAgICAgTmFtZSAgID0+ICRTdGF0ZXskVHlwZX0sCiAgICAgICAgICAgIFR5cGVJRCA9PiAkU3RhdGVUeXBlUmVmLT57U3RhdGVJRH0sCiAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBfQ29udmVydE5ld2xpbmVzKCkKCmNvdmVydHMgYWxsIFxuIGludG8gPGJyPiBmb3IgRmllbGRzIDEtNiBpbiBhbGwgZXhpc3RpbmcgRkFRIGFydGljbGVzCgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5fQ29udmVydE5ld2xpbmVzKCk7Cgo9Y3V0CgpzdWIgX0NvbnZlcnROZXdsaW5lcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgb25seSBjb252ZXJ0IFxuIHRvIDxicj4gaWYgSFRNTCB2aWV3IGlzIGVuYWJsZWQKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdGQVE6Okl0ZW06OkhUTUwnKTsKCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgZ2V0IGFsbCBGQVEgSURzCiAgICBteSBASXRlbUlEczsKICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gIlNFTEVDVCBpZCBGUk9NIGZhcV9pdGVtIiwKICAgICk7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICBwdXNoKCBASXRlbUlEcywgJFJvd1swXSApOwogICAgfQoKICAgICMgZ2V0IEZBUSBvYmplY3QKICAgIG15ICRGQVFPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RkFRJyk7CgogICAgSUQ6CiAgICBmb3IgbXkgJEl0ZW1JRCAoQEl0ZW1JRHMpIHsKCiAgICAgICAgIyBnZXQgRkFRIGRhdGEKICAgICAgICBteSAlRkFRID0gJEZBUU9iamVjdC0+RkFRR2V0KAogICAgICAgICAgICBJdGVtSUQgICAgID0+ICRJdGVtSUQsCiAgICAgICAgICAgIEl0ZW1GaWVsZHMgPT4gMSwKICAgICAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IEZBUSBhcnRpY2xlIGZpZWxkcyAxLTYKICAgICAgICBteSAkRm91bmROZXdsaW5lOwogICAgICAgIEtFWToKICAgICAgICBmb3IgbXkgJEtleSAocXcgKEZpZWxkMSBGaWVsZDIgRmllbGQzIEZpZWxkNCBGaWVsZDUgRmllbGQ2KSkgewogICAgICAgICAgICBuZXh0IEtFWSBpZiAhJEZBUXskS2V5fTsKCiAgICAgICAgICAgICMgcmVwbGFjZSBcbiB3aXRoIDxicj4KICAgICAgICAgICAgJEZBUXskS2V5fSA9fiBzL1xuLzxiclwvPlxuL2c7CgogICAgICAgICAgICAkRm91bmROZXdsaW5lID0gMTsKICAgICAgICB9CiAgICAgICAgbmV4dCBJRCBpZiAhJEZvdW5kTmV3bGluZTsKCiAgICAgICAgIyB1cGRhdGUgRkFRIGRhdGEKICAgICAgICAkRkFRT2JqZWN0LT5GQVFVcGRhdGUoCiAgICAgICAgICAgICVGQVEsCiAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBfR3JvdXBBZGQoKQoKYWRkIGEgZ3JvdXAKCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPl9Hcm91cEFkZCgKICAgICAgICBOYW1lICAgICAgICA9PiAndGhlLWdyb3VwLW5hbWUnLAogICAgICAgIERlc2NyaXB0aW9uID0+ICdUaGUgZ3JvdXAgZGVzY3JpcHRpb24uJywKICAgICk7Cgo9Y3V0CgpzdWIgX0dyb3VwQWRkIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KE5hbWUgRGVzY3JpcHRpb24pKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCB2YWxpZCBsaXN0CiAgICBteSAlVmFsaWRMaXN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZhbGlkJyktPlZhbGlkTGlzdCgKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CiAgICBteSAlVmFsaWRMaXN0UmV2ZXJzZSA9IHJldmVyc2UgJVZhbGlkTGlzdDsKCiAgICAjIGdldCBncm91cCBvYmplY3QKICAgIG15ICRHcm91cE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpOwoKICAgICMgZ2V0IGxpc3Qgb2YgYWxsIGdyb3VwcwogICAgbXkgJUdyb3VwTGlzdCA9ICRHcm91cE9iamVjdC0+R3JvdXBMaXN0KCk7CgogICAgIyByZXZlcnNlIHRoZSBncm91cCBsaXN0IGZvciBlYXNpZXIgbG9va3VwCiAgICBteSAlR3JvdXBMaXN0UmV2ZXJzZSA9IHJldmVyc2UgJUdyb3VwTGlzdDsKCiAgICAjIGNoZWNrIGlmIGdyb3VwIGFscmVhZHkgZXhpc3RzCiAgICBteSAkR3JvdXBJRCA9ICRHcm91cExpc3RSZXZlcnNleyAkUGFyYW17TmFtZX0gfTsKCiAgICAjIHJlYWN0aXZhdGUgdGhlIGdyb3VwCiAgICBpZiAoJEdyb3VwSUQpIHsKCiAgICAgICAgIyBnZXQgY3VycmVudCBncm91cCBkYXRhCiAgICAgICAgbXkgJUdyb3VwRGF0YSA9ICRHcm91cE9iamVjdC0+R3JvdXBHZXQoCiAgICAgICAgICAgIElEICAgICA9PiAkR3JvdXBJRCwKICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyByZWFjdGl2YXRlIGdyb3VwCiAgICAgICAgJEdyb3VwT2JqZWN0LT5Hcm91cFVwZGF0ZSgKICAgICAgICAgICAgJUdyb3VwRGF0YSwKICAgICAgICAgICAgVmFsaWRJRCA9PiAkVmFsaWRMaXN0UmV2ZXJzZXt2YWxpZH0sCiAgICAgICAgICAgIFVzZXJJRCAgPT4gMSwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gMTsKICAgIH0KCiAgICAjIGFkZCB0aGUgZ3JvdXAKICAgIGVsc2UgewogICAgICAgIHJldHVybiBpZiAhJEdyb3VwT2JqZWN0LT5Hcm91cEFkZCgKICAgICAgICAgICAgTmFtZSAgICA9PiAkUGFyYW17TmFtZX0sCiAgICAgICAgICAgIENvbW1lbnQgPT4gJFBhcmFte0Rlc2NyaXB0aW9ufSwKICAgICAgICAgICAgVmFsaWRJRCA9PiAkVmFsaWRMaXN0UmV2ZXJzZXt2YWxpZH0sCiAgICAgICAgICAgIFVzZXJJRCAgPT4gMSwKICAgICAgICApOwogICAgfQoKICAgICMgbG9va3VwIHRoZSBuZXcgZ3JvdXAgaWQKICAgIG15ICROZXdHcm91cElEID0gJEdyb3VwT2JqZWN0LT5Hcm91cExvb2t1cCgKICAgICAgICBHcm91cCAgPT4gJFBhcmFte05hbWV9LAogICAgICAgIFVzZXJJRCA9PiAxLAogICAgKTsKCiAgICAjIGFkZCB1c2VyIHJvb3QgdG8gdGhlIGdyb3VwCiAgICAkR3JvdXBPYmplY3QtPkdyb3VwTWVtYmVyQWRkKAogICAgICAgIEdJRCAgICAgICAgPT4gJE5ld0dyb3VwSUQsCiAgICAgICAgVUlEICAgICAgICA9PiAxLAogICAgICAgIFBlcm1pc3Npb24gPT4gewogICAgICAgICAgICBybyAgICAgICAgPT4gMSwKICAgICAgICAgICAgbW92ZV9pbnRvID0+IDEsCiAgICAgICAgICAgIGNyZWF0ZSAgICA9PiAxLAogICAgICAgICAgICBvd25lciAgICAgPT4gMSwKICAgICAgICAgICAgcHJpb3JpdHkgID0+IDEsCiAgICAgICAgICAgIHJ3ICAgICAgICA9PiAxLAogICAgICAgIH0sCiAgICAgICAgVXNlcklEID0+IDEsCiAgICApOwoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgX0dyb3VwRGVhY3RpdmF0ZSgpCgpkZWFjdGl2YXRlIGEgZ3JvdXAKCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPl9Hcm91cERlYWN0aXZhdGUoCiAgICAgICAgTmFtZSA9PiAndGhlLWdyb3VwLW5hbWUnLAogICAgKTsKCj1jdXQKCnN1YiBfR3JvdXBEZWFjdGl2YXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtOYW1lfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgTmFtZSEnLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCBncm91cCBvYmplY3QKICAgIG15ICRHcm91cE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpOwoKICAgICMgbG9va3VwIGdyb3VwIGlkCiAgICBteSAkR3JvdXBJRCA9ICRHcm91cE9iamVjdC0+R3JvdXBMb29rdXAoCiAgICAgICAgR3JvdXAgPT4gJFBhcmFte05hbWV9LAogICAgKTsKCiAgICByZXR1cm4gaWYgISRHcm91cElEOwoKICAgICMgZ2V0IHZhbGlkIGxpc3QKICAgIG15ICVWYWxpZExpc3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnKS0+VmFsaWRMaXN0KAogICAgICAgIFVzZXJJRCA9PiAxLAogICAgKTsKICAgIG15ICVWYWxpZExpc3RSZXZlcnNlID0gcmV2ZXJzZSAlVmFsaWRMaXN0OwoKICAgICMgZ2V0IGN1cnJlbnQgZ3JvdXAgZGF0YQogICAgbXkgJUdyb3VwRGF0YSA9ICRHcm91cE9iamVjdC0+R3JvdXBHZXQoCiAgICAgICAgSUQgICAgID0+ICRHcm91cElELAogICAgICAgIFVzZXJJRCA9PiAxLAogICAgKTsKCiAgICAjIGRlYWN0aXZhdGUgZ3JvdXAKICAgICRHcm91cE9iamVjdC0+R3JvdXBVcGRhdGUoCiAgICAgICAgJUdyb3VwRGF0YSwKICAgICAgICBWYWxpZElEID0+ICRWYWxpZExpc3RSZXZlcnNle2ludmFsaWR9LAogICAgICAgIFVzZXJJRCAgPT4gMSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBfTGlua0RlbGV0ZSgpCgpkZWxldGUgYWxsIGV4aXN0aW5nIGxpbmtzIHRvIEZBUSBhcnRpY2xlcwoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+X0xpbmtEZWxldGUoKTsKCj1jdXQKCnN1YiBfTGlua0RlbGV0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBnZXQgYWxsIEZBUSBhcnRpY2xlIGlkcwogICAgbXkgQEl0ZW1JRHMgPSAoKTsKICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJ1NFTEVDVCBpZCBGUk9NIGZhcV9pdGVtJwogICAgKTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIHB1c2ggQEl0ZW1JRHMsICRSb3dbMF07CiAgICB9CiAgICByZXR1cm4gaWYgIUBJdGVtSURzOwoKICAgICMgZGVsZXRlIHRoZSBGQVEgYXJ0aWNsZSBsaW5rcwogICAgZm9yIG15ICRJdGVtSUQgKEBJdGVtSURzKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxpbmtPYmplY3QnKS0+TGlua0RlbGV0ZUFsbCgKICAgICAgICAgICAgT2JqZWN0ID0+ICdGQVEnLAogICAgICAgICAgICBLZXkgICAgPT4gJEl0ZW1JRCwKICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIF9DcmVhdGVBZGl0aW9uYWxGQVFMYW5ndWFnZXMoKQoKY3JlYXRlcyBhZGRpdGlvbmFsIEZBUSBsYW5ndWFnZXMgZm9yIHN5c3RlbSBkZWZhdWx0IGxhbmd1YWdlIGFuZCB1c2VyIGxhbmd1YWdlCgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5fQ3JlYXRlQWRpdGlvbmFsRkFRTGFuZ3VhZ2VzKCk7Cgo9Y3V0CgpzdWIgX0NyZWF0ZUFkaXRpb25hbEZBUUxhbmd1YWdlcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IHN5c3RlbSBkZWZhdWx0IGxhbmd1YWdlCiAgICBteSAkTGFuZ3VhZ2UgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0RlZmF1bHRMYW5ndWFnZScpOwogICAgaWYgKCRMYW5ndWFnZSkgewoKICAgICAgICAjIGdldCBGQVEgb2JqZWN0CiAgICAgICAgbXkgJEZBUU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpGQVEnKTsKCiAgICAgICAgIyBnZXQgY3VycmVudCBGQVEgbGFuZ3VhZ2VzCiAgICAgICAgbXkgJUN1cnJlbnRMYW5ndWFnZXMgPSAkRkFRT2JqZWN0LT5MYW5ndWFnZUxpc3QoCiAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgdXNlIHJldmVyc2UgaGFzaCBmb3IgZWFzeSBsb29rdXAKICAgICAgICBteSAlUmV2ZXJzZUxhbmd1YWdlcyA9IHJldmVyc2UgJUN1cnJlbnRMYW5ndWFnZXM7CgogICAgICAgICMgY2hlY2sgaWYgbGFuZ3VhZ2UgaXMgYWxyZWFkeSBkZWZpbmVkCiAgICAgICAgaWYgKCAhJFJldmVyc2VMYW5ndWFnZXN7JExhbmd1YWdlfSApIHsKCiAgICAgICAgICAgICMgYWRkIGxhbmd1YWdlCiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJEZBUU9iamVjdC0+TGFuZ3VhZ2VBZGQoCiAgICAgICAgICAgICAgICBOYW1lICAgPT4gJExhbmd1YWdlLAogICAgICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgX0NhdGVnb3J5R3JvdXBTZXQoKQoKQWRkcyB0aGUgZ2l2ZW4gZ3JvdXAgcGVybWlzc2lvbnMgdG8gdGhlIGdpdmVuIGNhdGVnb3J5LgoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+X0NhdGVnb3J5R3JvdXBTZXQoCiAgICAgICAgQ2F0ZWdvcnkgPT4gJ01pc2MnLAogICAgICAgIEdyb3VwcyAgID0+IFsgJ2FkbWluJywgJ3VzZXJzJyBdLAogICAgKTsKCj1jdXQKCnN1YiBfQ2F0ZWdvcnlHcm91cFNldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhDYXRlZ29yeSBHcm91cHMpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCByZWYgJFBhcmFte0dyb3Vwc30gbmUgJ0FSUkFZJyApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkdyb3VwcyBtdXN0IGJlIGFuIGFycmF5IHJlZmVyZW5jZSEiLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCBGQVEgb2JqZWN0CiAgICBteSAkRkFRT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkZBUScpOwoKICAgICMgZ2V0IGFsbCBjYXRlZ29yaWVzIGFuZCB0aGVpciBpZHMKICAgIG15ICRDYXRlZ29yeVRyZWUgPSAkRkFRT2JqZWN0LT5DYXRlZ29yeVRyZWVMaXN0KAogICAgICAgIFZhbGlkICA9PiAxLAogICAgICAgIFVzZXJJRCA9PiAxLAogICAgKTsKCiAgICAjIGNyZWF0ZSBsb29rdXAgaGFzaCBmb3IgdGhlIGNhdGVnb3J5IGlkCiAgICBteSAlRkFRMklEID0gcmV2ZXJzZSAleyRDYXRlZ29yeVRyZWV9OwoKICAgICMgbG9va3VwIHRoZSBjYXRlZ29yeSBpZAogICAgbXkgJENhdGVnb3J5SUQgPSAkRkFRMklEeyAkUGFyYW17Q2F0ZWdvcnl9IH07CgogICAgIyBsb29rdXAgdGhlIGdyb3VwIGlkcwogICAgbXkgQEdyb3VwSURzOwogICAgZm9yIG15ICRHcm91cCAoIEB7ICRQYXJhbXtHcm91cHN9IH0gKSB7CiAgICAgICAgbXkgJEdyb3VwSUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKS0+R3JvdXBMb29rdXAoCiAgICAgICAgICAgIEdyb3VwID0+ICRHcm91cCwKICAgICAgICApOwogICAgICAgIHB1c2ggQEdyb3VwSURzLCAkR3JvdXBJRDsKICAgIH0KCiAgICAjIHNldCBjYXRlZ29yeSBncm91cAogICAgJEZBUU9iamVjdC0+U2V0Q2F0ZWdvcnlHcm91cCgKICAgICAgICBDYXRlZ29yeUlEID0+ICRDYXRlZ29yeUlELAogICAgICAgIEdyb3VwSURzICAgPT4gXEBHcm91cElEcywKICAgICAgICBVc2VySUQgICAgID0+IDEsCiAgICApOwoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgX0R5bmFtaWNGaWVsZHNEZWxldGUoKQoKZGVsZXRlIGFsbCBleGlzdGluZyBkeW5hbWljIGZpZWxkcyBmb3IgRkFRCgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5fRHluYW1pY0ZpZWxkc0RlbGV0ZSgpOwoKPWN1dAoKc3ViIF9EeW5hbWljRmllbGRzRGVsZXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJER5bmFtaWNGaWVsZE9iamVjdCAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpOwogICAgbXkgJER5bmFtaWNGaWVsZFZhbHVlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZFZhbHVlJyk7CgogICAgIyBnZXQgdGhlIGxpc3Qgb2YgRkFRIGR5bmFtaWMgZmllbGRzICh2YWxpZCBhbmQgaW52YWxpZCBvbmVzKQogICAgbXkgJER5bmFtaWNGaWVsZExpc3QgPSAkRHluYW1pY0ZpZWxkT2JqZWN0LT5EeW5hbWljRmllbGRMaXN0R2V0KAogICAgICAgIFZhbGlkID0+IDAsCiAgICApOwoKICAgICMgZGVsZXRlIHRoZSBkeW5hbWljIGZpZWxkcwogICAgRFlOQU1JQ0ZJRUxEOgogICAgZm9yIG15ICREeW5hbWljRmllbGQgKCBAeyREeW5hbWljRmllbGRMaXN0fSApIHsKCiAgICAgICAgIyBjaGVjayBpZiBmaWVsZCBzaG91bGQgYmUgZGVsZXRlZAogICAgICAgIGlmICggJER5bmFtaWNGaWVsZC0+e09iamVjdFR5cGV9IG5lICdGQVEnICYmICREeW5hbWljRmllbGQtPntGaWVsZFR5cGV9IG5lICdGQVEnICkgewogICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRDsKICAgICAgICB9CgogICAgICAgICMgZGVsZXRlIGFsbCBmaWVsZCB2YWx1ZXMKICAgICAgICBteSAkVmFsdWVzRGVsZXRlU3VjY2VzcyA9ICREeW5hbWljRmllbGRWYWx1ZU9iamVjdC0+QWxsVmFsdWVzRGVsZXRlKAogICAgICAgICAgICBGaWVsZElEID0+ICREeW5hbWljRmllbGQtPntJRH0sCiAgICAgICAgICAgIFVzZXJJRCAgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIHZhbHVlcyBjb3VsZCBiZSBkZWxldGVkCiAgICAgICAgaWYgKCRWYWx1ZXNEZWxldGVTdWNjZXNzKSB7CgogICAgICAgICAgICAjIGRlbGV0ZSBmaWVsZAogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICREeW5hbWljRmllbGRPYmplY3QtPkR5bmFtaWNGaWVsZERlbGV0ZSgKICAgICAgICAgICAgICAgIElEICAgICA9PiAkRHluYW1pY0ZpZWxkLT57SUR9LAogICAgICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGNoZWNrIGVycm9yCiAgICAgICAgICAgIGlmICggISRTdWNjZXNzICkgewogICAgICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiQ291bGQgbm90IGRlbGV0ZSBkeW5hbWljIGZpZWxkICckRHluYW1pY0ZpZWxkLT57TmFtZX0nISIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHZhbHVlcyBjb3VsZCBub3QgYmUgZGVsZXRlZAogICAgICAgIGVsc2UgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiQ291bGQgbm90IGRlbGV0ZSB2YWx1ZXMgZm9yIGR5bmFtaWMgZmllbGQgJyREeW5hbWljRmllbGQtPntOYW1lfSchIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCnN1YiBfTWlncmF0ZURUTEluU3lzQ29uZmlnIHsKCiAgICBteSAkQ29uZmlnT2JqZWN0ICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKICAgIG15ICRTeXNDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnJyk7CiAgICBteSAkUHJvdmlkZXJPYmplY3QgID0gS2VybmVsOjpPdXRwdXQ6OlRlbXBsYXRlOjpQcm92aWRlci0+bmV3KCk7CgogICAgIyBHZXQgc2V0dGluZydzIGNvbnRlbnQuCiAgICBteSAkU2V0dGluZyA9ICRDb25maWdPYmplY3QtPkdldCgnRkFROjpGcm9udGVuZDo6TWVudU1vZHVsZScpOwogICAgcmV0dXJuIGlmICEkU2V0dGluZzsKCiAgICBteSBATmV3U2V0dGluZ3M7CgogICAgTUVOVU1PRFVMRToKICAgIGZvciBteSAkTWVudU1vZHVsZSAoIHNvcnQga2V5cyAleyRTZXR0aW5nfSApIHsKCiAgICAgICAgU0VUVElOR0lURU06CiAgICAgICAgZm9yIG15ICRTZXR0aW5nSXRlbSAoIHNvcnQga2V5cyAleyAkU2V0dGluZy0+eyRNZW51TW9kdWxlfSB9ICkgewoKICAgICAgICAgICAgbXkgJFNldHRpbmdDb250ZW50ID0gJFNldHRpbmctPnskTWVudU1vZHVsZX0tPnskU2V0dGluZ0l0ZW19OwoKICAgICAgICAgICAgIyBEbyBub3RoaW5nIG5vIHZhbHVlIGZvciBtaWdyYXRpbmcuCiAgICAgICAgICAgIG5leHQgU0VUVElOR0lURU0gaWYgISRTZXR0aW5nQ29udGVudDsKCiAgICAgICAgICAgIG15ICRUVENvbnRlbnQ7CiAgICAgICAgICAgIGV2YWwgewogICAgICAgICAgICAgICAgJFRUQ29udGVudCA9ICRQcm92aWRlck9iamVjdC0+TWlncmF0ZURUTHRvVFQoIENvbnRlbnQgPT4gJFNldHRpbmdDb250ZW50ICk7CiAgICAgICAgICAgIH07CiAgICAgICAgICAgIGlmICgkQCkgewogICAgICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiJE1lbnVNb2R1bGUtPiRTZXR0aW5nSXRlbSA6ICRAISIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJFNldHRpbmctPnskTWVudU1vZHVsZX0tPnskU2V0dGluZ0l0ZW19ID0gJFRUQ29udGVudDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcHVzaCBATmV3U2V0dGluZ3MsIHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gIkZBUTo6RnJvbnRlbmQ6Ok1lbnVNb2R1bGUjIyMkTWVudU1vZHVsZSIsCiAgICAgICAgICAgIEVmZmVjdGl2ZVZhbHVlID0+ICRTZXR0aW5nLT57JE1lbnVNb2R1bGV9LAogICAgICAgICAgICBJc1ZhbGlkICAgICAgICA9PiAxLAogICAgICAgIH07CiAgICB9CgogICAgbXkgJFN1Y2Nlc3MgPSAkU3lzQ29uZmlnT2JqZWN0LT5TZXR0aW5nc1NldCgKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgIENvbW1lbnRzID0+ICdEZXBsb3kgRkFRIG1lbnUgbW9kdWxlLicsCiAgICAgICAgU2V0dGluZ3MgPT4gXEBOZXdTZXR0aW5ncywKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCnN1YiBfTWlncmF0ZUNvbmZpZ3MgewoKICAgIG15ICRTeXNDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnJyk7CiAgICBteSAkQ29uZmlnT2JqZWN0ICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAjIE1pZ3JhdGUgRkFRIG1lbnUgbW9kdWxlcy4KICAgICMgR2V0IHNldHRpbmcgY29udGVudCBmb3IgRkFRIG1lbnUgbW9kdWxlcy4KICAgIG15ICRTZXR0aW5nID0gJENvbmZpZ09iamVjdC0+R2V0KCdGQVE6OkZyb250ZW5kOjpNZW51TW9kdWxlJyk7CgogICAgbXkgQE5ld1NldHRpbmdzOwogICAgTUVOVU1PRFVMRToKICAgIGZvciBteSAkTWVudU1vZHVsZSAoIHNvcnQga2V5cyAleyRTZXR0aW5nfSApIHsKCiAgICAgICAgIyBVcGRhdGUgbW9kdWxlIGxvY2F0aW9uLgogICAgICAgIG15ICRNb2R1bGUgPSAkU2V0dGluZy0+eyRNZW51TW9kdWxlfS0+eydNb2R1bGUnfTsKICAgICAgICBpZiAoICRNb2R1bGUgIX4gbXtLZXJuZWw6Ok91dHB1dDo6SFRNTDo6RkFRTWVudShcdyspfSApIHsKICAgICAgICAgICAgbmV4dCBNRU5VTU9EVUxFOwogICAgICAgIH0KCiAgICAgICAgJFNldHRpbmctPnskTWVudU1vZHVsZX0tPntNb2R1bGV9ID0gIktlcm5lbDo6T3V0cHV0OjpIVE1MOjpGQVFNZW51OjpHZW5lcmljIjsKCiAgICAgICAgIyBCdWlsZCBuZXcgc2V0dGluZy4KICAgICAgICBwdXNoIEBOZXdTZXR0aW5ncywgewogICAgICAgICAgICBOYW1lICAgICAgICAgICA9PiAnRkFROjpGcm9udGVuZDo6TWVudU1vZHVsZSMjIycgLiAkTWVudU1vZHVsZSwKICAgICAgICAgICAgRWZmZWN0aXZlVmFsdWUgPT4gJFNldHRpbmctPnskTWVudU1vZHVsZX0sCiAgICAgICAgfTsKICAgIH0KCiAgICAjIE1pZ3JhdGUgRkFRIGNvbmZpZyBpdGVtcy4KICAgIG15IEBDb25maWdzID0gKAogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgICAgICA9PiAnRnJvbnRlbmQ6OkhlYWRlck1ldGFNb2R1bGUnLAogICAgICAgICAgICBDb25maWdJdGVtID0+ICczLUZBUVNlYXJjaCcsCiAgICAgICAgICAgIE1vZHVsZSAgICAgPT4gJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpIZWFkZXJNZXRhOjpBZ2VudEZBUVNlYXJjaCcsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgICAgPT4gJ0N1c3RvbWVyRnJvbnRlbmQ6OkhlYWRlck1ldGFNb2R1bGUnLAogICAgICAgICAgICBDb25maWdJdGVtID0+ICczLUZBUVNlYXJjaCcsCiAgICAgICAgICAgIE1vZHVsZSAgICAgPT4gJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpIZWFkZXJNZXRhOjpDdXN0b21lckZBUVNlYXJjaCcsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgICAgPT4gJ1B1YmxpY0Zyb250ZW5kOjpIZWFkZXJNZXRhTW9kdWxlJywKICAgICAgICAgICAgQ29uZmlnSXRlbSA9PiAnMy1GQVFTZWFyY2gnLAogICAgICAgICAgICBNb2R1bGUgICAgID0+ICdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6SGVhZGVyTWV0YTo6UHVibGljRkFRU2VhcmNoJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgICAgICA9PiAnRnJvbnRlbmQ6Ok91dHB1dDo6RmlsdGVyRWxlbWVudFBvc3QnLAogICAgICAgICAgICBDb25maWdJdGVtID0+ICdGQVEnLAogICAgICAgICAgICBNb2R1bGUgICAgID0+ICdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6RmlsdGVyRWxlbWVudFBvc3Q6OkZBUScsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgICAgPT4gJ0ZBUTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3JywKICAgICAgICAgICAgQ29uZmlnSXRlbSA9PiAnU21hbGwnLAogICAgICAgICAgICBNb2R1bGUgICAgID0+ICdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6RkFRT3ZlcnZpZXc6OlNtYWxsJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgICAgICA9PiAnRkFROjpGcm9udGVuZDo6Sm91cm5hbE92ZXJ2aWV3JywKICAgICAgICAgICAgQ29uZmlnSXRlbSA9PiAnU21hbGwnLAogICAgICAgICAgICBNb2R1bGUgICAgID0+ICdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6RkFRSm91cm5hbE92ZXJ2aWV3OjpTbWFsbCcsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgICAgPT4gJ1ByZWZlcmVuY2VzR3JvdXBzJywKICAgICAgICAgICAgQ29uZmlnSXRlbSA9PiAnRkFRT3ZlcnZpZXdTbWFsbFBhZ2VTaG93bicsCiAgICAgICAgICAgIE1vZHVsZSAgICAgPT4gJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpQcmVmZXJlbmNlczo6R2VuZXJpYycsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgICAgPT4gJ1ByZWZlcmVuY2VzR3JvdXBzJywKICAgICAgICAgICAgQ29uZmlnSXRlbSA9PiAnRkFRSm91cm5hbE92ZXJ2aWV3U21hbGxQYWdlU2hvd24nLAogICAgICAgICAgICBNb2R1bGUgICAgID0+ICdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6UHJlZmVyZW5jZXM6OkdlbmVyaWMnLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICAgID0+ICdEYXNoYm9hcmRCYWNrZW5kJywKICAgICAgICAgICAgQ29uZmlnSXRlbSA9PiAnMDM5OC1GQVEtTGFzdENoYW5nZScsCiAgICAgICAgICAgIE1vZHVsZSAgICAgPT4gJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpEYXNoYm9hcmQ6OkZBUScsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgICAgPT4gJ0Rhc2hib2FyZEJhY2tlbmQnLAogICAgICAgICAgICBDb25maWdJdGVtID0+ICcwMzk5LUZBUS1MYXN0Q3JlYXRlJywKICAgICAgICAgICAgTW9kdWxlICAgICA9PiAnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkRhc2hib2FyZDo6RkFRJywKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgICAgICA9PiAnRnJvbnRlbmQ6OlRvb2xCYXJNb2R1bGUnLAogICAgICAgICAgICBDb25maWdJdGVtID0+ICc5MC1GQVE6OkFnZW50RkFRQWRkJywKICAgICAgICAgICAgTW9kdWxlICAgICA9PiAnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OlRvb2xCYXI6OkxpbmsnLAogICAgICAgIH0sCiAgICApOwoKICAgIENPTkZJR0lURU06CiAgICBmb3IgbXkgJENvbmZpZyAoQENvbmZpZ3MpIHsKCiAgICAgICAgIyBHZXQgc2V0dGluZyBjb250ZW50IGZvciBoZWFkZXIgbWV0YSBGQVEgc2VhcmNoLgogICAgICAgIG15ICRTZXR0aW5nID0gJENvbmZpZ09iamVjdC0+R2V0KCAkQ29uZmlnLT57TmFtZX0gKTsKICAgICAgICBuZXh0IENPTkZJR0lURU0gaWYgISRTZXR0aW5nOwoKICAgICAgICBteSAkQ29uZmlnSXRlbSA9ICRDb25maWctPntDb25maWdJdGVtfTsKICAgICAgICBuZXh0IENPTkZJR0lURU0gaWYgISRTZXR0aW5nLT57JENvbmZpZ0l0ZW19LT57J01vZHVsZSd9OwoKICAgICAgICAjIFNldCBtb2R1bGUuCiAgICAgICAgJFNldHRpbmctPnskQ29uZmlnSXRlbX0tPnsnTW9kdWxlJ30gPSAkQ29uZmlnLT57TW9kdWxlfTsKCiAgICAgICAgIyBCdWlsZCBuZXcgc2V0dGluZy4KICAgICAgICBwdXNoIEBOZXdTZXR0aW5ncywgewogICAgICAgICAgICBOYW1lICAgICAgICAgICA9PiAkQ29uZmlnLT57TmFtZX0gLiAnIyMjJyAuICRDb25maWdJdGVtLAogICAgICAgICAgICBFZmZlY3RpdmVWYWx1ZSA9PiAkU2V0dGluZy0+eyRDb25maWdJdGVtfSwKICAgICAgICB9OwogICAgfQoKICAgIHJldHVybiAxIGlmICFATmV3U2V0dGluZ3M7CgogICAgIyBXcml0ZSBuZXcgc2V0dGluZy4KICAgICRTeXNDb25maWdPYmplY3QtPlNldHRpbmdzU2V0KAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgQ29tbWVudHMgPT4gJ0ZBUSAtIHBhY2thZ2Ugc2V0dXAgZnVuY3Rpb246IF9NaWdyYXRlQ29uZmlncycsCiAgICAgICAgU2V0dGluZ3MgPT4gXEBOZXdTZXR0aW5ncywKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCnN1YiBfU2V0Q29udGVudFR5cGUgewoKICAgIHJldHVybiAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RkFRJyktPkZBUUNvbnRlbnRUeXBlU2V0KCk7Cn0KCnN1YiBfR2V0T1RPQk81Q29uZmlnQmFja3VwIHsKICAgIG15ICRDb25maWcgPSB7fTsKCiAgICBteSAkRmlsZUNsYXNzID0gJ0tlcm5lbDo6Q29uZmlnOjpCYWNrdXBzOjpaWlpBdXRvT1RPQk81JzsKICAgIGRlbGV0ZSAkSU5DeyRGaWxlQ2xhc3N9OwoKICAgIGlmICgKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TWFpbicpLT5SZXF1aXJlKAogICAgICAgICAgICAkRmlsZUNsYXNzLAogICAgICAgICAgICBTaWxlbnQgPT4gMSwKICAgICAgICApCiAgICAgICAgKQogICAgewogICAgICAgICRGaWxlQ2xhc3MtPkxvYWQoJENvbmZpZyk7CiAgICB9CgogICAgcmV0dXJuICRDb25maWc7Cn0KCnN1YiBfTWlncmF0ZVBlcm1pc3Npb25zIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJE9sZENvbmZpZyA9ICRTZWxmLT5fR2V0T1RPQk81Q29uZmlnQmFja3VwKCk7CiAgICBteSAkTmV3Q29uZmlnID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICBteSAkR2V0Q29uZmlnID0gc3ViIHsKICAgICAgICBteSAkU291cmNlICAgICAgPSBzaGlmdDsKICAgICAgICBteSAkU2V0dGluZ05hbWUgPSBzaGlmdDsKCiAgICAgICAgbXkgJENvbmZpZyA9ICRTb3VyY2U7CiAgICAgICAgbXkgQEtleXMgICA9IHNwbGl0IC8jIyMvLCAkU2V0dGluZ05hbWU7CiAgICAgICAgd2hpbGUgKCBteSAkS2V5ID0gc2hpZnQgQEtleXMgKSB7CiAgICAgICAgICAgICRDb25maWcgPSAkQ29uZmlnLT57JEtleX07CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJENvbmZpZzsKICAgIH07CgogICAgbXkgQE5ld1NldHRpbmdzICAgICAgID0gKCk7CiAgICBteSBAU2V0dGluZ3NUb01pZ3JhdGUgPSAoCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICA9PiAnRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50RkFRRXhwbG9yZXInLAogICAgICAgICAgICBEZWZhdWx0cyA9PiB7CiAgICAgICAgICAgICAgICBHcm91cCAgID0+IFsnZmFxJ10sCiAgICAgICAgICAgICAgICBHcm91cFJvID0+IFsnZmFxJ10sCiAgICAgICAgICAgICAgICBOYXZCYXIgID0+IFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgICAgPT4gJ0ZBUScsCiAgICAgICAgICAgICAgICAgICAgICAgIEJsb2NrICAgPT4gJ0l0ZW1BcmVhJywKICAgICAgICAgICAgICAgICAgICAgICAgR3JvdXBSbyA9PiBbJ2ZhcSddCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgICAgPT4gJ0V4cGxvcmVyJywKICAgICAgICAgICAgICAgICAgICAgICAgQmxvY2sgICA9PiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgR3JvdXBSbyA9PiBbJ2ZhcSddCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICA9PiAnRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50RkFRTGFuZ3VhZ2UnLAogICAgICAgICAgICBEZWZhdWx0cyA9PiB7CiAgICAgICAgICAgICAgICBHcm91cCAgPT4gWydmYXFfYWRtaW4nXSwKICAgICAgICAgICAgICAgIE5hdkJhciA9PiBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lICA9PiAnTGFuZ3VhZ2UgTWFuYWdlbWVudCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJsb2NrID0+ICcnLAogICAgICAgICAgICAgICAgICAgICAgICBHcm91cCA9PiBbJ2ZhcV9hZG1pbiddLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICB9LAogICAgICAgIH0sCgogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgICAgPT4gJ0Zyb250ZW5kOjpNb2R1bGUjIyNBZ2VudEZBUUVkaXQnLAogICAgICAgICAgICBEZWZhdWx0cyA9PiB7CiAgICAgICAgICAgICAgICBHcm91cCA9PiBbJ2ZhcSddLAogICAgICAgICAgICB9LAogICAgICAgIH0sCgogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgICAgPT4gJ0Zyb250ZW5kOjpNb2R1bGUjIyNBZ2VudEZBUUFkZCcsCiAgICAgICAgICAgIERlZmF1bHRzID0+IHsKICAgICAgICAgICAgICAgIEdyb3VwICA9PiBbJ2ZhcSddLAogICAgICAgICAgICAgICAgTmF2QmFyID0+IFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgID0+ICdOZXcnLAogICAgICAgICAgICAgICAgICAgICAgICBCbG9jayA9PiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgR3JvdXAgPT4gWydmYXEnXSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAoKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgID0+ICdGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRGQVFDYXRlZ29yeScsCiAgICAgICAgICAgIERlZmF1bHRzID0+IHsKICAgICAgICAgICAgICAgIEdyb3VwICA9PiBbJ2ZhcV9hZG1pbiddLAogICAgICAgICAgICAgICAgTmF2QmFyID0+IFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgID0+ICdDYXRlZ29yeSBNYW5hZ2VtZW50JywKICAgICAgICAgICAgICAgICAgICAgICAgQmxvY2sgPT4gJycsCiAgICAgICAgICAgICAgICAgICAgICAgIEdyb3VwID0+IFsnZmFxX2FkbWluJ10sCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICA9PiAnRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50RkFRU2VhcmNoJywKICAgICAgICAgICAgRGVmYXVsdHMgPT4gewogICAgICAgICAgICAgICAgR3JvdXAgICA9PiBbJ2ZhcSddLAogICAgICAgICAgICAgICAgR3JvdXBSbyA9PiBbJ2ZhcSddLAogICAgICAgICAgICAgICAgTmF2QmFyICA9PiBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lICAgID0+ICdTZWFyY2gnLAogICAgICAgICAgICAgICAgICAgICAgICBCbG9jayAgID0+ICcnLAogICAgICAgICAgICAgICAgICAgICAgICBHcm91cFJvID0+IFsnZmFxJ10sCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICA9PiAnRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50RkFRU2VhcmNoU21hbGwnLAogICAgICAgICAgICBEZWZhdWx0cyA9PiB7CiAgICAgICAgICAgICAgICBHcm91cCAgID0+IFsnZmFxJ10sCiAgICAgICAgICAgICAgICBHcm91cFJvID0+IFsnZmFxJ10sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICA9PiAnRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50RkFRWm9vbScsCiAgICAgICAgICAgIERlZmF1bHRzID0+IHsKICAgICAgICAgICAgICAgIEdyb3VwICAgPT4gWydmYXEnXSwKICAgICAgICAgICAgICAgIEdyb3VwUm8gPT4gWydmYXEnXSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAoKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgID0+ICdGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRGQVFSaWNoVGV4dCcsCiAgICAgICAgICAgIERlZmF1bHRzID0+IHsKICAgICAgICAgICAgICAgIEdyb3VwICAgPT4gWydmYXEnXSwKICAgICAgICAgICAgICAgIEdyb3VwUm8gPT4gWydmYXEnXSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAoKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgID0+ICdGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRGQVFQcmludCcsCiAgICAgICAgICAgIERlZmF1bHRzID0+IHsKICAgICAgICAgICAgICAgIEdyb3VwID0+IFsnZmFxJ10sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICA9PiAnRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50RkFRSm91cm5hbCcsCiAgICAgICAgICAgIERlZmF1bHRzID0+IHsKICAgICAgICAgICAgICAgIEdyb3VwICAgPT4gWydmYXEnXSwKICAgICAgICAgICAgICAgIEdyb3VwUm8gPT4gWydmYXEnXSwKICAgICAgICAgICAgICAgIE5hdkJhciAgPT4gWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAgICA9PiAnSm91cm5hbCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEJsb2NrICAgPT4gJycsCiAgICAgICAgICAgICAgICAgICAgICAgIEdyb3VwUm8gPT4gWydmYXEnXSwKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICB9LAogICAgICAgIH0sCgogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgICAgPT4gJ0Zyb250ZW5kOjpNb2R1bGUjIyNBZ2VudEZBUUhpc3RvcnknLAogICAgICAgICAgICBEZWZhdWx0cyA9PiB7CiAgICAgICAgICAgICAgICBHcm91cCAgID0+IFsnZmFxJ10sCiAgICAgICAgICAgICAgICBHcm91cFJvID0+IFsnZmFxJ10sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICA9PiAnRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50RkFRRGVsZXRlJywKICAgICAgICAgICAgRGVmYXVsdHMgPT4gewogICAgICAgICAgICAgICAgR3JvdXAgPT4gWydmYXEnXSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAoKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgID0+ICdEYXNoYm9hcmRCYWNrZW5kIyMjMDM5OC1GQVEtTGFzdENoYW5nZScsCiAgICAgICAgICAgIERlZmF1bHRzID0+IHsKICAgICAgICAgICAgICAgIEdyb3VwID0+ICdmYXEnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCgogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgICAgPT4gJ0Rhc2hib2FyZEJhY2tlbmQjIyMwMzk5LUZBUS1MYXN0Q3JlYXRlJywKICAgICAgICAgICAgRGVmYXVsdHMgPT4gewogICAgICAgICAgICAgICAgR3JvdXAgPT4gJ2ZhcScsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICA9PiAnRkFROjpBcHByb3ZhbEdyb3VwJywKICAgICAgICAgICAgRGVmYXVsdHMgPT4gJ2ZhcV9hcHByb3ZhbCcsCiAgICAgICAgfSwKICAgICk7CgogICAgbXkgJFN5c0NvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTeXNDb25maWcnKTsKCiAgICBTRVRUSU5HOgogICAgZm9yIG15ICRTZXR0aW5nIChAU2V0dGluZ3NUb01pZ3JhdGUpIHsKICAgICAgICBteSAkU2V0dGluZ09sZENvbmZpZyA9ICRHZXRDb25maWctPiggJE9sZENvbmZpZywgJFNldHRpbmctPntOYW1lfSwgKTsKICAgICAgICBteSAkU2V0dGluZ0RlZmF1bHRzICA9ICRTZXR0aW5nLT57RGVmYXVsdHN9OwoKICAgICAgICBpZiAoICRTZXR0aW5nLT57TmFtZX0gZXEgJ0ZBUTo6QXBwcm92YWxHcm91cCcgKSB7CgogICAgICAgICAgICBteSAkRWZmZWN0aXZlVmFsdWUgPSAkU2V0dGluZ09sZENvbmZpZyAvLyAkU2V0dGluZ0RlZmF1bHRzOwoKICAgICAgICAgICAgcHVzaCBATmV3U2V0dGluZ3MsIHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICRTZXR0aW5nLT57TmFtZX0sCiAgICAgICAgICAgICAgICBFZmZlY3RpdmVWYWx1ZSA9PiAkRWZmZWN0aXZlVmFsdWUsCiAgICAgICAgICAgICAgICBJc1ZhbGlkICAgICAgICA9PiAxLAogICAgICAgICAgICB9OwoKICAgICAgICAgICAgbmV4dCBTRVRUSU5HOwogICAgICAgIH0KCiAgICAgICAgbXkgQEdyb3VwR3JvdXBSbyA9IHF3KCBHcm91cCBHcm91cFJvICk7CgogICAgICAgIHsKICAgICAgICAgICAgbXkgJE5ld1NldHRpbmcgPSAkR2V0Q29uZmlnLT4oICROZXdDb25maWcsICRTZXR0aW5nLT57TmFtZX0gKTsKCiAgICAgICAgICAgICMgQ2hlY2sgZm9yIEdyb3VwR3JvdXBSby4KICAgICAgICAgICAgZm9yIG15ICRLZXkgKEBHcm91cEdyb3VwUm8pIHsKICAgICAgICAgICAgICAgIGlmICggZGVmaW5lZCAkU2V0dGluZ09sZENvbmZpZy0+eyRLZXl9IHx8IGRlZmluZWQgJFNldHRpbmdEZWZhdWx0cy0+eyRLZXl9ICkgewogICAgICAgICAgICAgICAgICAgICROZXdTZXR0aW5nLT57JEtleX0gPSAkU2V0dGluZ09sZENvbmZpZy0+eyRLZXl9IC8vICRTZXR0aW5nRGVmYXVsdHMtPnskS2V5fTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgcHVzaCBATmV3U2V0dGluZ3MsIHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICRTZXR0aW5nLT57TmFtZX0sCiAgICAgICAgICAgICAgICBFZmZlY3RpdmVWYWx1ZSA9PiAkTmV3U2V0dGluZywKICAgICAgICAgICAgICAgIElzVmFsaWQgICAgICAgID0+IDEsCiAgICAgICAgICAgIH07CiAgICAgICAgfQoKICAgICAgICAjIENoZWNrIGZvciBOYXZCYXIgPT4gTmF2aWdhdGlvbi4KICAgICAgICBpZiAoICRTZXR0aW5nT2xkQ29uZmlnLT57TmF2QmFyfSB8fCAkU2V0dGluZ0RlZmF1bHRzLT57TmF2QmFyfSApIHsKICAgICAgICAgICAgbXkgKCB1bmRlZiwgJEZyb250ZW5kICkgPSBzcGxpdCAvIyMjLywgJFNldHRpbmctPntOYW1lfTsKICAgICAgICAgICAgbXkgJE5ld1NldHRpbmcgPSAkR2V0Q29uZmlnLT4oICROZXdDb25maWcsICJGcm9udGVuZDo6TmF2aWdhdGlvbiMjIyR7IEZyb250ZW5kIH0iICk7CgogICAgICAgICAgICBmb3IgbXkgJEluZGV4ICggc29ydCBrZXlzICV7JE5ld1NldHRpbmd9ICkgewogICAgICAgICAgICAgICAgbXkgJE5ld0l0ZW1zID0gJE5ld1NldHRpbmctPnskSW5kZXh9OwogICAgICAgICAgICAgICAgZm9yIG15ICROZXdJdGVtICggQHskTmV3SXRlbXN9ICkgewoKICAgICAgICAgICAgICAgICAgICBTT1VSQ0U6CiAgICAgICAgICAgICAgICAgICAgZm9yIG15ICRTb3VyY2UgKCAoICRTZXR0aW5nT2xkQ29uZmlnLT57TmF2QmFyfSwgJFNldHRpbmdEZWZhdWx0cy0+e05hdkJhcn0gKSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgbXkgJE9sZEl0ZW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gTGlzdDo6VXRpbDo6Zmlyc3QgeyAkXy0+e05hbWV9IGVxICROZXdJdGVtLT57TmFtZX0gJiYgJF8tPntCbG9ja30gZXEgJE5ld0l0ZW0tPntCbG9ja30gfQogICAgICAgICAgICAgICAgICAgICAgICBAeyRTb3VyY2V9OwogICAgICAgICAgICAgICAgICAgICAgICBuZXh0IFNPVVJDRSBpZiAhJE9sZEl0ZW07CgogICAgICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJEtleSAoQEdyb3VwR3JvdXBSbykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCBkZWZpbmVkICRPbGRJdGVtLT57JEtleX0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJE5ld0l0ZW0tPnskS2V5fSA9ICRPbGRJdGVtLT57JEtleX07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgbGFzdCBTT1VSQ0U7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHB1c2ggQE5ld1NldHRpbmdzLCB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gIkZyb250ZW5kOjpOYXZpZ2F0aW9uIyMjJHsgRnJvbnRlbmQgfSMjIyR7IEluZGV4IH0iLAogICAgICAgICAgICAgICAgICAgIEVmZmVjdGl2ZVZhbHVlID0+ICROZXdTZXR0aW5nLT57JEluZGV4fSwKICAgICAgICAgICAgICAgICAgICBJc1ZhbGlkICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIERlcGxveSB0aGUgbmV3IHNldHRpbmdzLgogICAgbXkgJFNldHRpbmdzRGVwbG95ZWQgPSAkU3lzQ29uZmlnT2JqZWN0LT5TZXR0aW5nc1NldCgKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgIENvbW1lbnRzID0+ICdGQVEgLSBwYWNrYWdlIHNldHVwIGZ1bmN0aW9uOiBfTWlncmF0ZVBlcm1pc3Npb25zJywKICAgICAgICBTZXR0aW5ncyA9PiBcQE5ld1NldHRpbmdzLAogICAgKTsKICAgIGlmICggISRTZXR0aW5nc0RlcGxveWVkICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBNZXNzYWdlICA9PiAiRXJyb3Igd2hpbGUgZGVwbG95aW5nIHRoZSBtaWdyYXRlZCBwZXJtaXNzaW9ucyEiLAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCjE7Cgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RPQk8gcHJvamVjdCAoTDxodHRwczovL290b2JvLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0Pi4KCj1jdXQK</File>
        <File Location="var/stats/FAQ-FAQAccess.xml" Permission="660" Encode="Base64">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KCjxvdG9ib19zdGF0cz4KPENhY2hlPjA8L0NhY2hlPgo8RGVzY3JpcHRpb24+U2hvd3MgYW4gb3ZlcnZpZXcgb2YgRkFRIGFydGljbGVzIGluIGEgZGVmaW5lZCB0aW1lIHBlcmlvZCBzb3J0ZWQgYnkgYWNjZXNzIG51bWJlcnMuPC9EZXNjcmlwdGlvbj4KPEZvcm1hdD5DU1Y8L0Zvcm1hdD4KPEZvcm1hdD5QcmludDwvRm9ybWF0Pgo8R3JhcGhTaXplPjwvR3JhcGhTaXplPgo8T2JqZWN0PjwvT2JqZWN0Pgo8T2JqZWN0TW9kdWxlPktlcm5lbDo6U3lzdGVtOjpTdGF0czo6U3RhdGljOjpGQVFBY2Nlc3M8L09iamVjdE1vZHVsZT4KPFBlcm1pc3Npb24+c3RhdHM8L1Blcm1pc3Npb24+CjxTdGF0VHlwZT5zdGF0aWM8L1N0YXRUeXBlPgo8U3VtQ29sPjA8L1N1bUNvbD4KPFN1bVJvdz4wPC9TdW1Sb3c+CjxUaXRsZT5GQVEgYWNjZXNzIG92ZXJ2aWV3PC9UaXRsZT4KPFZhbGlkPjE8L1ZhbGlkPgo8L290b2JvX3N0YXRzPgo=</File>
        <File Location="doc/en/FAQ.pdf" Permission="660" Encode="Base64">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</File>
        <File Location="doc/en/FAQ.pdf" Permission="644" Encode="Base64">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</File>
    </Filelist>
    <DatabaseInstall Type="post">
        <TableCreate Type="post" Name="faq_language">
            <Column AutoIncrement="true" Name="id" PrimaryKey="true" Required="true" Type="SMALLINT"></Column>
            <Column Name="name" Required="true" Size="200" Type="VARCHAR"></Column>
            <Unique Name="faq_language_name">
                                <UniqueColumn Name="name"></UniqueColumn>
</Unique>
        </TableCreate>
        <Insert Type="post" Table="faq_language">
            <Data Key="name" Type="Quote">en</Data>
        </Insert>
        <Insert Type="post" Table="faq_language">
            <Data Key="name" Type="Quote">de</Data>
        </Insert>
        <TableCreate Type="post" Name="faq_state_type">
            <Column AutoIncrement="true" Name="id" PrimaryKey="true" Required="true" Type="SMALLINT"></Column>
            <Column Name="name" Required="true" Size="200" Type="VARCHAR"></Column>
            <Unique Name="faq_state_type_name">
                                <UniqueColumn Name="name"></UniqueColumn>
</Unique>
        </TableCreate>
        <Insert Type="post" Table="faq_state_type">
            <Data Key="name" Translatable="1" Type="Quote">internal</Data>
        </Insert>
        <Insert Type="post" Table="faq_state_type">
            <Data Key="name" Translatable="1" Type="Quote">external</Data>
        </Insert>
        <Insert Type="post" Table="faq_state_type">
            <Data Key="name" Translatable="1" Type="Quote">public</Data>
        </Insert>
        <TableCreate Type="post" Name="faq_state">
            <Column AutoIncrement="true" Name="id" PrimaryKey="true" Required="true" Type="SMALLINT"></Column>
            <Column Name="name" Required="true" Size="200" Type="VARCHAR"></Column>
            <Column Name="type_id" Required="true" Type="INTEGER"></Column>
            <Unique Name="faq_state_name">
                                <UniqueColumn Name="name"></UniqueColumn>
</Unique>
            <Index Name="faq_state_type_id">
                <IndexColumn Name="type_id">
                </IndexColumn>
            </Index>
        </TableCreate>
        <TableCreate Type="post" Name="faq_service">
            <Column AutoIncrement="true" Name="id" PrimaryKey="true" Required="true" Type="INTEGER"></Column>
            <Column Name="name" Required="true" Size="200" Type="VARCHAR"></Column>
            <Column Name="service_id" Required="true" Type="INTEGER"></Column>
            <Column Name="item_id" Required="true" Type="INTEGER"></Column>
            <Index Name="faq_service_id">
                <IndexColumn Name="service_id">
                </IndexColumn>
            </Index>
        </TableCreate>
        <TableCreate Type="post" Name="faq_category">
            <Column AutoIncrement="true" Name="id" PrimaryKey="true" Required="true" Type="INTEGER"></Column>
            <Column Name="parent_id" Required="true" Type="INTEGER"></Column>
            <Column Name="name" Required="true" Size="200" Type="VARCHAR"></Column>
            <Column Name="comments" Required="false" Size="200" Type="VARCHAR"></Column>
            <Column Name="valid_id" Required="true" Type="SMALLINT"></Column>
            <Column Name="created" Required="true" Type="DATE"></Column>
            <Column Name="created_by" Required="true" Type="INTEGER"></Column>
            <Column Name="changed" Required="true" Type="DATE"></Column>
            <Column Name="changed_by" Required="true" Type="INTEGER"></Column>
            <Index Name="faq_category_parent_id">
                <IndexColumn Name="parent_id">
                </IndexColumn>
            </Index>
            <Index Name="faq_category_name">
                <IndexColumn Name="name">
                </IndexColumn>
            </Index>
            <Index Name="faq_category_valid_id">
                <IndexColumn Name="valid_id">
                </IndexColumn>
            </Index>
            <ForeignKey ForeignTable="valid">
                <Reference Foreign="id" Local="valid_id">
                </Reference>
            </ForeignKey>
        </TableCreate>
        <Insert Type="post" Table="faq_category">
            <Data Key="name" Type="Quote">Misc</Data>
            <Data Key="comments" Type="Quote">Misc Comment</Data>
            <Data Key="valid_id">1</Data>
            <Data Key="created">current_timestamp</Data>
            <Data Key="created_by">1</Data>
            <Data Key="changed">current_timestamp</Data>
            <Data Key="changed_by">1</Data>
            <Data Key="parent_id">0</Data>
        </Insert>
        <TableCreate Type="post" Name="faq_category_group">
            <Column AutoIncrement="true" Name="id" PrimaryKey="true" Required="true" Type="INTEGER"></Column>
            <Column Name="category_id" Required="true" Size="200" Type="INTEGER"></Column>
            <Column Name="group_id" Required="true" Type="INTEGER"></Column>
            <Column Name="created" Required="false" Type="DATE"></Column>
            <Column Name="created_by" Required="false" Type="INTEGER"></Column>
            <Column Name="changed" Required="false" Type="DATE"></Column>
            <Column Name="changed_by" Required="false" Type="INTEGER"></Column>
            <Index Name="faq_category_group_category_id">
                <IndexColumn Name="category_id">
                </IndexColumn>
            </Index>
        </TableCreate>
        <TableCreate Type="post" Name="faq_item">
            <Column AutoIncrement="true" Name="id" PrimaryKey="true" Required="true" Type="INTEGER"></Column>
            <Column Name="f_number" Required="true" Size="200" Type="VARCHAR"></Column>
            <Column Name="f_subject" Required="false" Size="200" Type="VARCHAR"></Column>
            <Column Name="f_name" Required="true" Size="200" Type="VARCHAR"></Column>
            <Column Name="f_language_id" Required="true" Type="SMALLINT"></Column>
            <Column Name="state_id" Required="true" Type="SMALLINT"></Column>
            <Column Name="category_id" Required="true" Type="SMALLINT"></Column>
            <Column Default="1" Name="approved" Required="true" Type="SMALLINT"></Column>
            <Column Default="1" Name="valid_id" Required="true" Type="SMALLINT"></Column>
            <Column Default="text/html" Name="content_type" Required="true" Size="250" Type="VARCHAR"></Column>
            <Column Name="f_keywords" Required="false" Size="400" Type="VARCHAR"></Column>
            <Column Name="f_field1" Required="false" Size="20000" Type="VARCHAR"></Column>
            <Column Name="f_field2" Required="false" Size="20000" Type="VARCHAR"></Column>
            <Column Name="f_field3" Required="false" Size="20000" Type="VARCHAR"></Column>
            <Column Name="f_field4" Required="false" Size="20000" Type="VARCHAR"></Column>
            <Column Name="f_field5" Required="false" Size="20000" Type="VARCHAR"></Column>
            <Column Name="f_field6" Required="false" Size="20000" Type="VARCHAR"></Column>
            <Column Name="created" Required="true" Type="DATE"></Column>
            <Column Name="created_by" Required="true" Type="INTEGER"></Column>
            <Column Name="changed" Required="true" Type="DATE"></Column>
            <Column Name="changed_by" Required="true" Type="INTEGER"></Column>
            <Index Name="faq_item_state_id">
                <IndexColumn Name="state_id">
                </IndexColumn>
            </Index>
            <Index Name="faq_item_category_id">
                <IndexColumn Name="category_id">
                </IndexColumn>
            </Index>
            <Index Name="faq_item_valid_id">
                <IndexColumn Name="valid_id">
                </IndexColumn>
            </Index>
            <ForeignKey ForeignTable="valid">
                <Reference Foreign="id" Local="valid_id">
                </Reference>
            </ForeignKey>
        </TableCreate>
        <TableCreate Type="post" Name="faq_history">
            <Column AutoIncrement="true" Name="id" PrimaryKey="true" Required="true" Type="INTEGER"></Column>
            <Column Name="name" Required="true" Size="200" Type="VARCHAR"></Column>
            <Column Name="item_id" Required="true" Type="INTEGER"></Column>
            <Column Name="created" Required="true" Type="DATE"></Column>
            <Column Name="created_by" Required="true" Type="INTEGER"></Column>
            <Column Name="changed" Required="true" Type="DATE"></Column>
            <Column Name="changed_by" Required="true" Type="INTEGER"></Column>
            <Index Name="faq_history_item_id">
                <IndexColumn Name="item_id">
                </IndexColumn>
            </Index>
        </TableCreate>
        <TableCreate Type="post" Name="faq_attachment">
            <Column AutoIncrement="true" Name="id" PrimaryKey="true" Required="true" Type="BIGINT"></Column>
            <Column Name="faq_id" Required="true" Type="BIGINT"></Column>
            <Column Name="filename" Required="false" Size="250" Type="VARCHAR"></Column>
            <Column Name="content_size" Required="false" Size="30" Type="VARCHAR"></Column>
            <Column Name="content_type" Required="false" Size="250" Type="VARCHAR"></Column>
            <Column Name="content" Required="true" Type="LONGBLOB"></Column>
            <Column Default="0" Name="inlineattachment" Required="true" Type="SMALLINT"></Column>
            <Column Name="created" Required="true" Type="DATE"></Column>
            <Column Name="created_by" Required="true" Type="INTEGER"></Column>
            <Column Name="changed" Required="true" Type="DATE"></Column>
            <Column Name="changed_by" Required="true" Type="INTEGER"></Column>
            <Index Name="faq_attachment_faq_id">
                <IndexColumn Name="faq_id">
                </IndexColumn>
            </Index>
        </TableCreate>
        <TableCreate Type="post" Name="faq_voting">
            <Column AutoIncrement="true" Name="id" PrimaryKey="true" Required="true" Type="BIGINT"></Column>
            <Column Name="created_by" Required="true" Size="200" Type="VARCHAR"></Column>
            <Column Name="item_id" Required="true" Type="INTEGER"></Column>
            <Column Name="interface" Required="false" Size="80" Type="VARCHAR"></Column>
            <Column Name="ip" Required="false" Size="50" Type="VARCHAR"></Column>
            <Column Name="rate" Required="true" Type="INTEGER"></Column>
            <Column Name="created" Required="false" Type="DATE"></Column>
            <Index Name="faq_voting_item_id">
                <IndexColumn Name="item_id">
                </IndexColumn>
            </Index>
        </TableCreate>
        <TableCreate Type="post" Name="faq_log">
            <Column AutoIncrement="true" Name="id" PrimaryKey="true" Required="true" Type="BIGINT"></Column>
            <Column Name="item_id" Required="true" Type="INTEGER"></Column>
            <Column Name="interface" Required="true" Size="80" Type="VARCHAR"></Column>
            <Column Name="ip" Required="false" Size="200" Type="VARCHAR"></Column>
            <Column Name="user_agent" Required="false" Size="200" Type="VARCHAR"></Column>
            <Column Name="created" Required="true" Type="DATE"></Column>
            <Index Name="faq_log_item_id">
                <IndexColumn Name="item_id">
                </IndexColumn>
            </Index>
        </TableCreate>
    </DatabaseInstall>
    <DatabaseUpgrade Type="post">
        <TableCreate Type="post" Name="faq_service" Version="10.0.3">
            <Column AutoIncrement="true" Name="id" PrimaryKey="true" Required="true" Type="INTEGER"></Column>
            <Column Name="name" Required="true" Size="200" Type="VARCHAR"></Column>
            <Column Name="service_id" Required="true" Type="INTEGER"></Column>
            <Column Name="item_id" Required="true" Type="INTEGER"></Column>
            <Index Name="faq_service_id">
                <IndexColumn Name="service_id">
                </IndexColumn>
            </Index>
        </TableCreate>
    </DatabaseUpgrade>
    <DatabaseUninstall Type="pre">
        <TableDrop Type="pre" Name="faq_history">
        </TableDrop>
        <TableDrop Type="pre" Name="faq_attachment">
        </TableDrop>
        <TableDrop Type="pre" Name="faq_item">
        </TableDrop>
        <TableDrop Type="pre" Name="faq_category">
        </TableDrop>
        <TableDrop Type="pre" Name="faq_category_group">
        </TableDrop>
        <TableDrop Type="pre" Name="faq_state">
        </TableDrop>
        <TableDrop Type="pre" Name="faq_service">
        </TableDrop>
        <TableDrop Type="pre" Name="faq_state_type">
        </TableDrop>
        <TableDrop Type="pre" Name="faq_language">
        </TableDrop>
        <TableDrop Type="pre" Name="faq_voting">
        </TableDrop>
        <TableDrop Type="pre" Name="faq_log">
        </TableDrop>
    </DatabaseUninstall>
</otrs_package>