TimeAccounting
6.0.15
OTRS AG
https://otrs.com/
GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007
- Updated minimum framework version to OTRS 6.0.26.
- Updated translations.
- Updated jquery.
- Updated copyright.
- Updated minimum framework version to OTRS 6.0.23.
- Updated minimum framework version to OTRS 6.0.20.
- Updated translations.
- Follow-up fix for bug#13466: Time spans will be saved implicitly.
- Updated framework files to OTRS 6.0.18.
- Updated translations.
- Updated framework files to OTRS 6.0.17.
- Follow-up fix for bug#14377.
- Fixed: Checkboxes act as radio buttons and missing text from alert dialog (bug#14377).
- Fixed: Webserver 500 Error when trying to put in hours into a weekend's day (bug#14354).
- Updated copyright.
- Updated minimum framework version to 6.0.15.
- Code cleanup.
- Updated minimum framework version to 6.0.13.
- Code cleanup.
- Updated translations, thanks to all translators.
- Code cleanup.
- Updated translations, thanks to all translators.
- Fixed: Time spans will be saved implicitly (bug#13466).
- Updated license information.
- Updated translations, thanks to all translators.
- Allow specific users to skip time accounting.
- Updated Hungarian package description.
- Fixed: Setting "Days of vacation" to value 0 not possible (bug#13467).
- Updated translations, thanks to all translators.
- Updated translations, thanks to all translators.
- Updated translations, thanks to all translators.
- Improved display of DefaultUserDateStart and DefaultUserDateEnd settings.
- Fixed bug13415 - Incomplete days widget has wrong day of week names.
- Updated documentation (Configuration chapter).
- Updated translations, thanks to all translators.
- Updated translations, thanks to all translators.
- Changed default group configuration and implemented migration path for existing systems. TimeAccounting specific user group will no longer be automatically created on new systems.
- Initial version for OTRS 6.
- Updated translations, thanks to all translators.
- Bug#12104 - TimeAccounting statistic silently returns only last full month unless Period filter is used.
A Time Registration Module.
Ein Zeiterfassungsmodul.
Egy munkaidő nyilvántartás modul.
6.0.x
<br>
<b>WELCOME</b>
<br>
<br>
You are about to install the OTRS package TimeAccounting.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>WILLKOMMEN</b>
<br>
<br>
Sie sind im Begriff das OTRS-Paket TimeAccounting zu installieren.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>BIENVENIDO</b>
<br>
<br>
Ud. está a punto de instalar el paquete Contabilidad de Tiempo de OTRS.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>ÜDVÖZÖLJÜK</b>
<br>
<br>
Ön a TimeAccounting OTRS csomag telepítésére készül.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>NOTICE</b>
<br>
<br>
In order to grant users access to the time accounting 'settings' and 'reporting' features, you need to add them as member to the group 'admin'.
<br>
<br>
The menu items that were added by this package will be visible after you log-in to the system again.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>HINWEIS</b>
<br>
<br>
In order to grant users access to the time accounting 'settings' and 'reporting' features, you need to add them as member to the group 'admin'.
<br>
<br>
Die von diesem Paket hinzugefügten Menü-Punkte sind erst nach einem erneuten Anmeldevorgang im System sichtbar.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>NOTA</b>
<br>
<br>
Para permitirles a los usuarios el acceso a las functiones de contabilidad de tiempo 'ajustes' y 'reporteo', es necesario añadirlos como miembros del grupo 'admin'.
<br>
<br>
Los elementos del menú agregados por este paquete, serán visibles luego de reiniciar sesión en el sistema.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>FIGYELMEZTETÉS</b>
<br>
<br>
Annak érdekében, hogy hozzáférést adjon a felhasználók számára az időelszámolás „beállítási” és „jelentési” funkcióihoz, hozzá kell adnia őket az „admin” csoporthoz tagként.
<br>
<br>
Azok a menüpontok, amelyeket ez a csomag adott hozzá, azután lesznek láthatóak, miután ismét bejelentkezik a rendszerbe.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>ATTENTION</b>
<br>
<br>
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!
<br>
<br>
The group 'time_accounting' that was created during package installation will be deactivated.
You can activate this group again in the admin area.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>ACHTUNG</b>
<br>
<br>
Bei der Deinstallation werden die von diesem Paket angelegten Datenbank-Tabellen gelöscht.
Alle darin enthaltenen Daten gehen unwiderruflich verloren!
<br>
<br>
Die von diesem Paket angelegte Gruppe 'time_accounting' wird deaktiviert.
Sie kann jederzeit im Admin-Bereich wieder aktiviert werden.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>ATTENTION</b>
<br>
<br>
Si usted desinstala este paquete, todas las tablas de la base de datos que se crearon durante la instalación del mismo, se eliminarán y
el contenido de dichas tablas se perderá irrevocablemente.
<br>
<br>
El grupo 'time_accounting' que se dió de alta durante la instalación del paquete, se desactivará.
Es posible reactivar dicho grupo en el área de administración.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>FIGYELEM</b>
<br>
<br>
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!
<br>
<br>
A csomagtelepítés során létrehozott „time_accounting” csoport ki lesz kapcsolva.
Ezt a csoportot az adminisztrációs területen tudja ismét bekapcsolni.
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>WELCOME</b>
<br>
<br>
You are about to upgrade the OTRS package TimeAccounting.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>WILLKOMMEN</b>
<br>
<br>
Sie sind im Begriff das OTRS-Paket TimeAccounting zu aktualisieren.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>BIENVENIDO</b>
<br>
<br>
Ud. está a punto de actualizar el paquete Contabilidad de Tiempo de OTRS.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<b>ÜDVÖZÖLJÜK</b>
<br>
<br>
Ön a TimeAccounting OTRS csomag frissítésére készül.<br>
<br>
<br>
((enjoy))<br>
<br>
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
$Kernel::OM->Get($CodeModule)->CodeInstall();
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
$Kernel::OM->Get($CodeModule)->CodeUpgradeFromLowerThan_4_0_91();
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
$Kernel::OM->Get($CodeModule)->CodeUpgradeFromLowerThan_5_0_92();
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
$Kernel::OM->Get($CodeModule)->CodeUninstall();
77b3f8131899ad78afca2fbcfad43c055d3c2f17
2020-01-24 18:01:15
opms.otrs.com
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tjr5cPcCjBS2WrkBQjcAAABgxHomarpVTxdNrxnujoDhR8M1Vlrl1GkJw92RwQKhGwAAgFGPxXLW65FzdyNmGLNjLaA/MIPOWd2I9BQ7O8fh7svngQ7WAAAA8ElEQVRggdANAADAWDBjRkqPupujrLWGsbenFQ3XcLprH6hV0+OTh7svgwhCNwAAAGNEYuKfEK53UtY5q5uYuBIz6BAyDHenwGAzYAYdQ6dwUTc5d9chHT579oLh7tLgohgMlv5bV1RUDFlXAAAAgCenVqsbGxutrBk0mpUVRhnu7oBBh+sND3Q6rUbN4/EYDMZwd2dghIeH9/XVQ0I3AAAAAAAwcsADUwAAAACAUQNCNwAAAACAUQNCNwAAAACAUQNCNwAAAACAUQNCNwAAAACAUQNCNwAAAACAUQNCNwAAAACAUQNCNwAAAACAUeP/ARFu+KcCRz2QAAAAAElFTkSuQmCC
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+CjxvdHJzX2NvbmZpZyB2ZXJzaW9uPSIyLjAiIGluaXQ9IkFwcGxpY2F0aW9uIj4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZ2VudFRpbWVBY2NvdW50aW5nRWRpdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kUmVnaXN0cmF0aW9uIj4KICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5UaW1lIGFjY291bnRpbmcgZWRpdC48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXJOYW1lIj5UaW1lQWNjb3VudGluZzwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPkVkaXQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iTG9hZGVyOjpNb2R1bGU6OkFnZW50VGltZUFjY291bnRpbmdFZGl0IyMjMDAyLVRpbWVBY2NvdW50aW5nIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkxvYWRlciBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb246OkxvYWRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDU1MiPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+VGltZUFjY291bnRpbmcuRGVmYXVsdHMuY3NzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5UaW1lQWNjb3VudGluZy5UYWJsZS5jc3M8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSmF2YVNjcmlwdCI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5UaW1lQWNjb3VudGluZy5BZ2VudC5qczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+VGltZUFjY291bnRpbmcuQWdlbnQuQ29uZmlybWF0aW9uRGlhbG9nLmpzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5UaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMuanM8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TmF2aWdhdGlvbiMjI0FnZW50VGltZUFjY291bnRpbmdFZGl0IyMjMDAyLVRpbWVBY2NvdW50aW5nIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk1haW4gbWVudSBpdGVtIHJlZ2lzdHJhdGlvbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uOjpNYWluTWVudTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxEZWZhdWx0SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kTmF2aWdhdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9EZWZhdWx0SXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5UaW1lIGFjY291bnRpbmcuPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hbWUiIFRyYW5zbGF0YWJsZT0iMSI+VGltZSBBY2NvdW50aW5nPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbmsiPkFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nRWRpdDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rT3B0aW9uIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyIj5UaW1lQWNjb3VudGluZzwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUeXBlIj5NZW51PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkJsb2NrIj5JdGVtQXJlYTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY2Nlc3NLZXkiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvIj42MDAwPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+RWRpdCB0aW1lIHJlY29yZC48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmFtZSIgVHJhbnNsYXRhYmxlPSIxIj5FZGl0PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbmsiPkFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nRWRpdDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rT3B0aW9uIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyIj5UaW1lQWNjb3VudGluZzwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUeXBlIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQmxvY2siPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY2Nlc3NLZXkiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvIj4yMDA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPlRpbWUgYWNjb3VudGluZyBvdmVydmlldy48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXJOYW1lIj5UaW1lQWNjb3VudGluZzwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIiBUcmFuc2xhdGFibGU9IjEiPk92ZXJ2aWV3PC9JdGVtPgogICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkxvYWRlcjo6TW9kdWxlOjpBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcjIyMwMDItVGltZUFjY291bnRpbmciIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TG9hZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNTUyI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5UaW1lQWNjb3VudGluZy5EZWZhdWx0cy5jc3M8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPlRpbWVBY2NvdW50aW5nLlRhYmxlLmNzczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpOYXZpZ2F0aW9uIyMjQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3IyMjMDAyLVRpbWVBY2NvdW50aW5nIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk1haW4gbWVudSBpdGVtIHJlZ2lzdHJhdGlvbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uOjpNYWluTWVudTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxEZWZhdWx0SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kTmF2aWdhdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9EZWZhdWx0SXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+T3ZlcnZpZXcuPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hbWUiIFRyYW5zbGF0YWJsZT0iMSI+T3ZlcnZpZXc8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGluayI+QWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdPdmVydmlldzwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rT3B0aW9uIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyIj5UaW1lQWNjb3VudGluZzwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUeXBlIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQmxvY2siPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY2Nlc3NLZXkiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvIj4xMDA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmciIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZFJlZ2lzdHJhdGlvbiI+CiAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+YWRtaW48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiIgVHJhbnNsYXRhYmxlPSIxIj5UaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+VGltZUFjY291bnRpbmc8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSIgVHJhbnNsYXRhYmxlPSIxIj5TZXR0aW5nczwvSXRlbT4KICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJMb2FkZXI6Ok1vZHVsZTo6QWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcjIyMwMDItVGltZUFjY291bnRpbmciIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TG9hZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNTUyI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5UaW1lQWNjb3VudGluZy5EZWZhdWx0cy5jc3M8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPlRpbWVBY2NvdW50aW5nLlRhYmxlLmNzczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJKYXZhU2NyaXB0Ij4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPlRpbWVBY2NvdW50aW5nLkFnZW50LmpzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5UaW1lQWNjb3VudGluZy5BZ2VudC5Db25maXJtYXRpb25EaWFsb2cuanM8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPlRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3Jkcy5qczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpOYXZpZ2F0aW9uIyMjQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcjIyMwMDItVGltZUFjY291bnRpbmciIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TWFpbiBtZW51IGl0ZW0gcmVnaXN0cmF0aW9uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb246Ok1haW5NZW51PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPERlZmF1bHRJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmROYXZpZ2F0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0RlZmF1bHRJdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPmFkbWluPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPkVkaXQgdGltZSBhY2NvdW50aW5nIHNldHRpbmdzLjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYW1lIiBUcmFuc2xhdGFibGU9IjEiPlNldHRpbmdzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxpbmsiPkFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZzwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJMaW5rT3B0aW9uIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyIj5UaW1lQWNjb3VudGluZzwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUeXBlIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQmxvY2siPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY2Nlc3NLZXkiPjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmlvIj45MDA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kUmVnaXN0cmF0aW9uIj4KICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5hZG1pbjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPlRpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+VGltZUFjY291bnRpbmc8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSIgVHJhbnNsYXRhYmxlPSIxIj5SZXBvcnRpbmc8L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iTG9hZGVyOjpNb2R1bGU6OkFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcjIyMwMDItVGltZUFjY291bnRpbmciIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TG9hZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNTUyI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5UaW1lQWNjb3VudGluZy5EZWZhdWx0cy5jc3M8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPlRpbWVBY2NvdW50aW5nLlRhYmxlLmNzczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJKYXZhU2NyaXB0Ij4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPlRpbWVBY2NvdW50aW5nLkFnZW50LlJlcG9ydGluZy5qczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpOYXZpZ2F0aW9uIyMjQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZyMjIzAwMi1UaW1lQWNjb3VudGluZyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5NYWluIG1lbnUgaXRlbSByZWdpc3RyYXRpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TWFpbk1lbnU8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8RGVmYXVsdEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZE5hdmlnYXRpb24iPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvRGVmYXVsdEl0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+YWRtaW48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iIFRyYW5zbGF0YWJsZT0iMSI+UHJvamVjdCB0aW1lIHJlcG9ydGluZy48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmFtZSIgVHJhbnNsYXRhYmxlPSIxIj5SZXBvcnRpbmc8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGluayI+QWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmc8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTGlua09wdGlvbiI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhciI+VGltZUFjY291bnRpbmc8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVHlwZSI+PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkJsb2NrIj48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWNjZXNzS2V5Ij48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUHJpbyI+NTAwPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50VGltZUFjY291bnRpbmdWaWV3IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIiBUcmFuc2xhdGFibGU9IjEiPlRpbWUgYWNjb3VudGluZyB2aWV3LjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhck5hbWUiPlRpbWVBY2NvdW50aW5nPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiIFRyYW5zbGF0YWJsZT0iMSI+VmlldzwvSXRlbT4KICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJMb2FkZXI6Ok1vZHVsZTo6QWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcjIyMwMDItVGltZUFjY291bnRpbmciIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TG9hZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNTUyI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5UaW1lQWNjb3VudGluZy5EZWZhdWx0cy5jc3M8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPlRpbWVBY2NvdW50aW5nLlRhYmxlLmNzczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpOYXZpZ2F0aW9uIyMjQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcjIyMwMDItVGltZUFjY291bnRpbmciIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TWFpbiBtZW51IGl0ZW0gcmVnaXN0cmF0aW9uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpNb2R1bGVSZWdpc3RyYXRpb246Ok1haW5NZW51PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPERlZmF1bHRJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmROYXZpZ2F0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0RlZmF1bHRJdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaW1lQWNjb3VudGluZzo6RGVmYXVsdFByb2plY3ROYW1lIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaW1lQWNjb3VudGluZ1NldHRpbmc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iIj48L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpEZWZhdWx0UHJvamVjdFN0YXR1cyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaW1lQWNjb3VudGluZ1NldHRpbmc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlNlbGVjdCIgU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjAiIFRyYW5zbGF0YWJsZT0iMSI+aW52YWxpZDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMSIgVHJhbnNsYXRhYmxlPSIxIj52YWxpZDwvSXRlbT4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaW1lQWNjb3VudGluZzo6RGVmYXVsdEFjdGlvbk5hbWUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGltZUFjY291bnRpbmdTZXR0aW5nPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9IiI+PC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaW1lQWNjb3VudGluZzo6RGVmYXVsdEFjdGlvblN0YXR1cyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OlRpbWVBY2NvdW50aW5nU2V0dGluZzwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU2VsZWN0IiBTZWxlY3RlZElEPSIxIj4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMCIgVHJhbnNsYXRhYmxlPSIxIj5pbnZhbGlkPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJPcHRpb24iIFZhbHVlPSIxIiBUcmFuc2xhdGFibGU9IjEiPnZhbGlkPC9JdGVtPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpEZWZhdWx0VXNlcldlZWtseUhvdXJzIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGltZUFjY291bnRpbmdTZXR0aW5nPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il5cZCskIj40MDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGltZUFjY291bnRpbmc6OkRlZmF1bHRVc2VyTGVhdmVEYXlzIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGltZUFjY291bnRpbmdTZXR0aW5nPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il5cZCskIj4yMzwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGltZUFjY291bnRpbmc6OkRlZmF1bHRVc2VyT3ZlcnRpbWUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmYXVsdCBzZXR0aW5nIGZvciBvdmVydGltZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGltZUFjY291bnRpbmdTZXR0aW5nPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9Il5cZCskIj4wPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaW1lQWNjb3VudGluZzo6RGVmYXVsdFVzZXJEYXRlU3RhcnQiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaW1lQWNjb3VudGluZ1NldHRpbmc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkRhdGUiIFZhbHVlUmVnZXg9IiI+MjAxOS0wMS0wMTwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGltZUFjY291bnRpbmc6OkRlZmF1bHRVc2VyRGF0ZUVuZCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaW1lQWNjb3VudGluZ1NldHRpbmc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkRhdGUiIFZhbHVlUmVnZXg9IiI+MjAxOS0xMi0zMTwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGltZUFjY291bnRpbmc6OkRlZmF1bHRVc2VyRGVzY3JpcHRpb24iIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGltZUFjY291bnRpbmdTZXR0aW5nPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciIFZhbHVlUmVnZXg9IiI+UHV0IHlvdXIgZGVzY3JpcHRpb24gaGVyZS48L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpEZWZhdWx0VXNlclN0YXR1cyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaW1lQWNjb3VudGluZ1NldHRpbmc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlNlbGVjdCIgU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9Ik9wdGlvbiIgVmFsdWU9IjAiIFRyYW5zbGF0YWJsZT0iMSI+aW52YWxpZDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iT3B0aW9uIiBWYWx1ZT0iMSIgVHJhbnNsYXRhYmxlPSIxIj52YWxpZDwvSXRlbT4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaW1lQWNjb3VudGluZzo6TWF4SW50ZXJ2YWxPZkluY29tcGxldGVEYXlzIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk1heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6VGltZUFjY291bnRpbmc8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyIgVmFsdWVSZWdleD0iXlxkKyQiPjQ8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpNYXhJbnRlcnZhbE9mSW5jb21wbGV0ZURheXNCZWZvcmVXYXJuaW5nIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk1heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpUaW1lQWNjb3VudGluZzwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSJeXGQrJCI+MjwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok5vdGlmeU1vZHVsZSMjIzg4OC1UaW1lQWNjb3VudGluZyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UaGlzIG5vdGlmaWNhdGlvbiBtb2R1bGUgZ2l2ZXMgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0b28gbWFueSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6RnJvbnRlbmROb3RpZmljYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6Tm90aWZpY2F0aW9uOjpUaW1lQWNjb3VudGluZzwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaW1lQWNjb3VudGluZzo6TWF4QWxsb3dlZEluc2VydERheXMiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+Rm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpUaW1lQWNjb3VudGluZzwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSJeXGQrJCI+MTA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpSZWR1Y2VUaW1lIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlRvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPSZndDsgdHJhdmVsaW5nOyBDb250ZW50ID0mZ3Q7IDUwKS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGltZUFjY291bnRpbmdFZGl0PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9InRyYXZlbGluZyI+NTA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGltZUFjY291bnRpbmc6OklucHV0SG91cnNXaXRob3V0U3RhcnRFbmRUaW1lIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OlRpbWVBY2NvdW50aW5nRWRpdDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iQ2hlY2tib3giPjE8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlByZUFwcGxpY2F0aW9uTW9kdWxlIyMjQWdlbnRUaW1lQWNjb3VudGluZyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpCYXNlOjpQcmVBcHBsaWNhdGlvbk1vZHVsZTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSIiPktlcm5lbDo6TW9kdWxlczo6QWdlbnRUaW1lQWNjb3VudGluZ0VkaXQ8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpQcm9qZWN0MlJlbWFya1JlZ0V4cCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OlRpbWVBY2NvdW50aW5nRWRpdDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIiBWYWx1ZVJlZ2V4PSIiPl4oPzogUFJPSkVDVFwjIHwgSU5GUkE6IHwgUFJPRFVDVDogKTwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGltZUFjY291bnRpbmc6OlByb2plY3RMaXN0Q29uc3RyYWludHMiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+UmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaW1lQWNjb3VudGluZ0VkaXQ8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaW1lQWNjb3VudGluZzo6QWN0aW9uTGlzdENvbnN0cmFpbnRzIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OlRpbWVBY2NvdW50aW5nRWRpdDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IlRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5JZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaW1lQWNjb3VudGluZ0VkaXQ8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkNoZWNrYm94Ij4xPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPklmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGltZUFjY291bnRpbmdFZGl0PC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJDaGVja2JveCI+MDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGltZUFjY291bnRpbmc6OkFjdGl2ZUZpbHRlciIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5JZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpWaWV3OjpUaW1lQWNjb3VudGluZ0VkaXQ8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkNoZWNrYm94Ij4wPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJUaW1lQWNjb3VudGluZzo6QWxsb3dNYXNzRW50cnlGb3JVc2VyIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPklmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWdlbnQ6OlZpZXc6OlRpbWVBY2NvdW50aW5nRWRpdDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iQ2hlY2tib3giPjA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpUb29sQmFyTW9kdWxlIyMjMjAxLVRpbWVBY2NvdW50aW5nOjpJbmNvbXBsZXRlV29ya2luZ0RheXMiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+QWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFnZW50OjpUb29sQmFyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6OlRvb2xCYXI6OkluY29tcGxldGVXb3JraW5nRGF5czwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ3NzQ2xhc3MiPkluY29tcGxldGVXb3JraW5nRGF5czwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSWNvbiI+ZmEgZmEtY2xvY2stbzwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJTdGF0czo6RHluYW1pY09iamVjdFJlZ2lzdHJhdGlvbiMjI1RpbWVBY2NvdW50aW5nIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpTdGF0czwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6U3lzdGVtOjpTdGF0czo6RHluYW1pYzo6VGltZUFjY291bnRpbmc8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVGltZUFjY291bnRpbmc6OkZyb250ZW5kOjpSZXBvcnRpbmdQcm9qZWN0IyMjU2hvd09ubHlBY3RpdmVVc2VycyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5JZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpUaW1lQWNjb3VudGluZzo6Vmlld1JlcG9ydGluZ1Byb2plY3Q8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkNoZWNrYm94Ij4xPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+Cjwvb3Ryc19jb25maWc+Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmJnX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAn0J3QsNC40YHRgtC40L3QsCDQu9C4INC40YHQutCw0YLQtSDQtNCwINC40LfRgtGA0LjQtdGC0LUg0YHRh9C10YLQvtCy0L7QtNGB0YLQstC+0YLQviDQt9CwINCy0YDQtdC80LUg0LIg0YLQvtC30Lgg0LTQtdC9Pyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBSZWNvcmQnfSA9ICfQoNC10LTQsNC60YLQuNGA0LDQvdC1INC90LAg0LLRgNC10LzQtdCy0LjRjyDQt9Cw0L/QuNGBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAn0J7RgtC40LTQtdGC0LUg0LIg0L3QsNGB0YLRgNC+0LnQutC40YLQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICfQlNCw0YLQsCDQt9CwINC90LDQstC40LPQsNGG0LjRjyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ9CU0L3QuCDQsdC10Lcg0LfQsNC/0LjRgdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ9CY0LfQsdC+0YAg0L3QsCDQstGB0LjRh9C60Lgg0LTQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICfQnNCw0YHQvtCy0L4g0LLRitCy0LXQttC00LDQvdC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAn0JzQvtC70Y8sINC40LfQsdC10YDQtdGC0LUg0L/RgNC40YfQuNC90LDRgtCwINC30LAg0JLQsNGI0LXRgtC+INC+0YLRgdGK0YHRgtCy0LjQtSDQt9CwINC40LfQsdGA0LDQvdC40YLQtSDQtNC90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICfQktCw0LrQsNC90YbQuNGPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICfQkiDQvtGC0L/Rg9GB0Log0L/QviDQsdC+0LvQtdGB0YInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICfQn9GA0Lgg0LjQt9Cy0YrQvdGA0LXQtNC10L0g0L7RgtC/0YPRgdC6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAn0JfQsNC00YrQu9C20LjRgtC10LvQvdC40YLQtSDQv9C+0LvQtdGC0LAg0YHQsCDQvNCw0YDQutC40YDQsNC90Lgg0YEgIioiLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ9Ci0YDRj9Cx0LLQsCDQtNCwINCy0YrQstC10LTQtdGC0LUg0L3QsNGH0LDQu9C90L4g0Lgg0LrRgNCw0LnQvdC+INCy0YDQtdC80LUg0LjQu9C4INC/0LXRgNC40L7QtCDQvtGCINCy0YDQtdC80LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QnfSA9ICfQn9GA0L7QtdC60YInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ9CX0LDQtNCw0YfQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICfQl9Cw0LHQtdC70LXQttC60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAn0JzQvtC70Y8sINC00L7QsdCw0LLQtdGC0LUg0LfQsNCx0LXQu9C10LbQutCwINGBINC/0L7QstC10YfQtSDQvtGCIDgg0LfQvdCw0LrQsCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ9Ce0YLRgNC40YbQsNGC0LXQu9C90LjRgtC1INCy0YDQtdC80LXQvdCwINC90LUg0YHQtSDQtNC+0L/Rg9GB0LrQsNGCLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAn0J3QtSDRgdC1INC00L7Qv9GD0YHQutCw0YIg0L/QvtCy0YLQvtGA0L3QuCDRh9Cw0YHQvtCy0LUuINCd0LDRh9Cw0LvQvdC+0YLQviDQstGA0LXQvNC1INGB0YrQstC/0LDQtNCwINGBINC00YDRg9CzINC40L3RgtC10YDQstCw0LsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICfQndC10LLQsNC70LjQtNC10L0g0YTQvtGA0LzQsNGCISDQnNC+0LvRjywg0LLRitCy0LXQtNC10YLQtSDRh9Cw0YEg0YEg0YTQvtGA0LzQsNGCINCn0Kc6INCc0JwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJzI0OjAwINC1INGA0LDQt9GA0LXRiNC10L3QviDRgdCw0LzQviDQutCw0YLQviDQutGA0LDQudC90L4g0LLRgNC10LzQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfQndC10LLQsNC70LjQtNC90L4g0LLRgNC10LzQtSEg0JXQtNC40L0g0LTQtdC9INC40LzQsCAyNCDRh9Cw0YHQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJ9Ca0YDQsNC50L3QvtGC0L4g0LLRgNC10LzQtSDRgtGA0Y/QsdCy0LAg0LTQsCDQtSDRgdC70LXQtCDQvdCw0YfQsNC70L3QvtGC0L4g0LLRgNC10LzQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICfQndC1INGB0LUg0LTQvtC/0YPRgdC60LDRgiDQv9C+0LLRgtC+0YDQvdC4INGH0LDRgdC+0LLQtS4g0JrRgNCw0LnQvdC+0YLQviDQstGA0LXQvNC1INGB0YrQstC/0LDQtNCwINGBINC00YDRg9CzINC40L3RgtC10YDQstCw0LsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfQndC10LLQsNC70LjQtNC10L0g0L/QtdGA0LjQvtC0ISDQldC00LjQvSDQtNC10L0g0LjQvNCwIDI0INGH0LDRgdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLid9ID0gJ9CS0LDQu9C40LTQvdC40Y/RgiDQv9C10YDQuNC+0LQg0YLRgNGP0LHQstCwINC00LAg0LUg0L/Qvi3Qs9C+0LvRj9C8INC+0YIg0L3Rg9C70LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICfQndC10LLQsNC70LjQtNC10L0g0L/QtdGA0LjQvtC0ISDQntGC0YDQuNGG0LDRgtC10LvQvdC40YLQtSDQv9C10YDQuNC+0LTQuCDQvdC1INGB0LAg0YDQsNC30YDQtdGI0LXQvdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ9CU0L7QsdCw0LLQuCDQtdC00LjQvSDRgNC10LQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICfQnNC+0LbQtdGC0LUg0LTQsCDQuNC30LHQtdGA0LXRgtC1INGB0LDQvNC+INC10LTQuNC9INC10LvQtdC80LXQvdGCINC+0YIg0LrQstCw0LTRgNCw0YLRh9C10YLQviDQt9CwINC+0YLQvNC10YLQutCwISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAn0KHQuNCz0YPRgNC90Lgg0LvQuCDRgdGC0LUsINGH0LUg0YDQsNCx0L7RgtC40YLQtSwg0LTQvtC60LDRgtC+INGB0YLQtSDQsiDQvtGC0L/Rg9GB0Log0L/QviDQsdC+0LvQtdGB0YI/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAn0KHQuNCz0YPRgNC90Lgg0LvQuCDRgdGC0LUsINGH0LUg0YDQsNCx0L7RgtC40YLQtSwg0LTQvtC60LDRgtC+INCx0Y/RhdGC0LUg0L3QsCDQv9C+0YfQuNCy0LrQsD8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ9Ch0LjQs9GD0YDQvdC4INC70Lgg0YHRgtC1LCDRh9C1INGB0YLQtSDRgNCw0LHQvtGC0LjQu9C4LCDQtNC+0LrQsNGC0L4g0LHRj9GF0YLQtSDQvdCwINC40LfQstGK0L3RgNC10LTQtdC9INGC0YDRg9C0Pyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICfQodC40LPRg9GA0L3QuCDQu9C4INGB0YLQtSwg0YfQtSDRgdGC0LUg0YDQsNCx0L7RgtC40LvQuCDQv9C+0LLQtdGH0LUg0L7RgiAxNiDRh9Cw0YHQsD8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJ9Cc0LXRgdC10YfQtdC9INC/0YDQtdCz0LvQtdC0INC90LAg0LLRgNC10LzQtdGC0L4g0LfQsCDQvtGC0YfQuNGC0LDQvdC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICfQmNC30LLRitC90YDQtdC00LXQvSDRgtGA0YPQtCAo0YfQsNGB0L7QstC1KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodGhpcyBtb250aCknfSA9ICfQmNC30LLRitC90YDQtdC20LjQvCAo0YLQvtC30Lgg0LzQtdGB0LXRhiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRvdGFsKSd9ID0gJ9CY0LfQstGK0L3RgNC10LTQtdC9INGC0YDRg9C0ICjQvtCx0YnQviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAn0J7RgdGC0LDQstCw0Ykg0L7RgtC/0YPRgdC6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIChEYXlzKSd9ID0gJ9Ce0YLQv9GD0YHQutCwICjQtNC90LgpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ9CS0LfQtdGC0LAg0L7RgtC/0YPRgdC60LAgKNGC0L7Qt9C4INC80LXRgdC10YYpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICfQktC30LXRgtCwINC+0YLQv9GD0YHQutCwICjQvtCx0YnQviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAn0J7RgdGC0LDQstCw0YnQsCDQvtGC0L/Rg9C60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICfQntGC0L/Rg9GB0Log0L/QviDQsdC+0LvQtdGB0YIgKNC00L3QuCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodGhpcyBtb250aCknfSA9ICfQntGC0L/Rg9GB0L3QsNGCINC1INCx0L7Qu9C90LjRh9C10L0gKNGC0L7Qt9C4INC80LXRgdC10YYpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ9Ce0YLQv9GD0YHQvdCw0YIg0LHQvtC70LXQvdC40YfQtdC9ICjQvtCx0YnQviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICfQn9GA0LXQtNC90LjRjyDQvNC10YHQtdGGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICfQodC70LXQtNCy0LDRidC40Y8g0LzQtdGB0LXRhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAn0JTQtdC70L3QuNGH0LXQvSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JraW5nIEhvdXJzJ30gPSAn0KDQsNCx0L7RgtC90Lgg0YfQsNGB0L7QstC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJ9Ce0LHRidC+INGA0LDQsdC+0YLQvdC+INCy0YDQtdC80LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAn0J/RgNC10LPQu9C10LQg0L3QsCDQv9GA0L7QtdC60YLQsCDQvdCwINC/0L7RgtGA0LXQsdC40YLQtdC70Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAn0KfQsNGB0L7QstC1ICjQvNC10YHQtdGH0L3QviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ9Cn0LDRgdC+0LLQtSAo0YbRj9C7INC20LjQstC+0YIpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAn0J7QsdGJ0L4nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAn0J7RgtGH0LjRgtCw0L3QtSDQvdCwINCy0YDQtdC80LXRgtC+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICfQnNC10YHQtdGH0L3QsCDQvdCw0LLQuNCz0LDRhtC40Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gZGF0ZSd9ID0gJ9Ce0YLQuNC00LXRgtC1INC90LAg0LTQsNGC0LDRgtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ9Cf0L7RgtGA0LXQsdC40YLQtdC70YHQutC4INC+0YLRh9C10YLQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAn0J7QsdGJ0L4g0LfQsCDQvNC10YHQtdGG0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICfQntCx0YnQviDQt9CwINGG0LXQu9C40Y8g0L/QtdGA0LjQvtC0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAn0J7RgtC/0YPRgdC6INC30LAg0LjQt9Cy0YrQvdGA0LXQtNC10L0g0YLRgNGD0LQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24nfSA9ICfQntGC0L/Rg9GB0LrQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAn0J7RgtC/0YPRgdC6INC/0L4g0LHQvtC70LXRgdGCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJ9Ce0YHRgtCw0LLQsNGJ0LAg0L7RgtC/0YPRgdC60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAn0JTQvtC60LvQsNC00Lgg0LfQsCDQv9GA0L7QtdC60YLQsCc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAn0JTQvtC60LvQsNC0INC30LAg0L/RgNC+0LXQutGC0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAn0J7RgtCy0L7RgNC10YLQtSDQvtGC0YfQtdGC0L3QuNGPINC/0YDQtdCz0LvQtdC0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAn0JIg0LzQvtC80LXQvdGC0LAg0YHQtSDQv9C+0LrQsNC30LLQsNGCINGB0LDQvNC+INCw0LrRgtC40LLQvdC4INC/0L7RgtGA0LXQsdC40YLQtdC70Lgg0LIg0YLQvtC30Lgg0L/RgNC+0LXQutGCLiDQl9CwINC00LAg0L/RgNC+0LzQtdC90LjRgtC1INGC0L7QstCwINC/0L7QstC10LTQtdC90LjQtSwg0LzQvtC70Y8sINCw0LrRgtGD0LDQu9C40LfQuNGA0LDQudGC0LUg0L3QsNGB0YLRgNC+0LnQutCw0YLQsDonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IGFsbCB0aW1lIGFjY291bnRpbmcgdXNlcnMgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAn0J/QvtC90LDRgdGC0L7Rj9GJ0LXQvCDRgdC1INC/0L7QutCw0LfQstCw0YIg0LLRgdC40YfQutC4INC/0L7RgtGA0LXQsdC40YLQtdC70LgsINC+0YLRh9C40YLQsNGJ0Lgg0LLRgNC10LzQtdGC0L4uINCX0LAg0LTQsCDQv9GA0L7QvNC10L3QuNGC0LUg0YLQvtCy0LAg0L/QvtCy0LXQtNC10L3QuNC1LCDQvNC+0LvRjywg0LDQutGC0YPQsNC70LjQt9C40YDQsNC50YLQtSDQvdCw0YHRgtGA0L7QudC60LDRgtCwOic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICfQoNC10LTQsNC60YLQuNGA0LDQvdC1INC90LAg0L3QsNGB0YLRgNC+0LnQutC40YLQtSDQvdCwINC/0YDQvtC10LrRgiDQt9CwINGB0YfQtdGC0L7QstC+0LTQvdC+INCy0YDQtdC80LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHByb2plY3QnfSA9ICfQlNC+0LHQsNCy0Y/QvdC1INC90LAg0L/RgNC+0LXQutGCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAn0J7RgtC40LTQtdGC0LUg0LIg0L7QsdGJINC/0YDQtdCz0LvQtdC0INC90LAg0L3QsNGB0YLRgNC+0LnQutC40YLQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJ9CU0L7QsdCw0LLRj9C90LUg0L3QsCDQv9GA0L7QtdC60YInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAn0KDQtdC00LDQutGC0LjRgNCw0L3QtSDQvdCwINC90LDRgdGC0YDQvtC50LrQuNGC0LUg0L3QsCDQv9GA0L7QtdC60YLQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgcHJvamVjdCB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAn0JLQtdGH0LUg0LjQvNCwINC/0YDQvtC10LrRgiDRgSDRgtC+0LLQsCDQuNC80LUuINCc0L7Qu9GPLCDQuNC30LHQtdGA0LXRgtC1INC00YDRg9CzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJ9Cg0LXQtNCw0LrRgtC40YDQsNC90LUg0L3QsCDQvdCw0YHRgtGA0L7QudC60LjRgtC1INC30LAg0YHRh9C10YLQvtCy0L7QtNC90L4g0LLRgNC10LzQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ9CU0L7QsdCw0LLRj9C90LUg0L3QsCDQt9Cw0LTQsNGH0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICfQn9C10YDQuNC+0LTQuNGC0LUg0L3QtSDQvNC+0LPQsNGCINC00LAg0LHRitC00LDRgiDQuNC30YLRgNC40YLQuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAn0KHQv9C40YHRitC6INC90LAg0L/RgNC+0LXQutGC0LjRgtC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgTGlzdCd9ID0gJ9Ch0L/QuNGB0YrQuiDQvdCwINC30LDQtNCw0YfQuNGC0LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICfQlNC+0LHQsNCy0Y/QvdC1INC90LAg0LfQsNC00LDRh9CwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ9Cg0LXQtNCw0LrRgtC40YDQsNC90LUg0L3QsCDQvdCw0YHRgtGA0L7QudC60LjRgtC1INC90LAg0LfQsNC00LDRh9C40YLQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAn0JLQtdGH0LUg0LjQvNCwINC30LDQtNCw0YfQsCDRgSDRgtC+0LLQsCDQuNC80LUuINCc0L7Qu9GPLCDQuNC30LHQtdGA0LXRgtC1INC00YDRg9Cz0L4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ9Ch0L/QuNGB0YrQuiDRgSDQv9C+0YLRgNC10LHQuNGC0LXQu9C4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNlZSBvdmVydGltZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ9Cf0L7QutCw0LfQstCw0L3QtSDQvdCwINC40LfQstGK0L3RgNC10LTQtdC9INGC0YDRg9C0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBjcmVhdGUgcHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ9Cg0LDQt9GA0LXRiNCw0LLQsNC90LUg0LfQsCDRgdGK0LfQtNCw0LLQsNC90LXRgtC+INC90LAg0L/RgNC+0LXQutGCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBza2lwIHRpbWUgYWNjb3VudGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyB0aW1lIGFjY291bnRpbmcgc2tpcHBpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQsIHRpbWUgYWNjb3VudGluZyBpcyBlZmZlY3RpdmVseSBvcHRpb25hbCBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2lsbCBiZSBubyB3YXJuaW5ncyBhYm91dCBtaXNzaW5nIGVudHJpZXMgYW5kIG5vIGVudHJ5IGVuZm9yY2VtZW50Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU3BhbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAn0J3QsNGH0LDQu9C+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICfQmtGA0LDQuSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAn0JTQvdC4INC+0YIg0L7RgtC/0YPRgdC60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICfQp9Cw0YHQvtCy0LUg0L/RgNC10Lcg0YHQtdC00LzQuNGG0LDRgtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0F1dGhvcml6ZWQgT3ZlcnRpbWUnfSA9ICfQntGC0L7RgNC40LfQuNGA0LDQvSDQuNC30LLRitC90YDQtdC00LXQvSDRgtGA0YPQtCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAn0JTQsNGC0LAg0LfQsCDQvdCw0YfQsNC70L4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAn0JzQvtC70Y8g0LLRitCy0LXQtNC10YLQtSDQstCw0LvQuNC00L3QsCDQtNCw0YLQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJ9CU0LDRgtCwINC30LAg0LrRgNCw0LknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4nfSA9ICfQmtGA0LDQudC90LjRj9GCINC/0LXRgNC40L7QtCDRgtGA0Y/QsdCy0LAg0LTQsCDQsdGK0LTQtSDRgdC70LXQtCDQvdCw0YfQsNC70L7RgtC+INC90LAg0L/QtdGA0LjQvtC00LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICfQntGB0YLQsNCy0LDRidC4INC00L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICfQodC10LTQvNC40YfQvdC4INGH0LDRgdC+0LLQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSd9ID0gJ9CY0LfQstGK0L3RgNC10LTQvdC+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICfQndGP0LzQsCDQvdCw0LzQtdGA0LXQvdC4INCy0YDQtdC80LXQstC4INC/0LXRgNC40L7QtNC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICfQlNC+0LHQsNCy0LXRgtC1INC/0LXRgNC40L7QtCDQvtGCINCy0YDQtdC80LUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAn0J/RgNC10LPQu9C10LQg0L3QsCDQstGA0LXQvNC10LLQuNGPINC30LDQv9C40YEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICfQn9GA0LXQs9C70LXQtCDQvdCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ9CS0YfQtdGA0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICfQo9GC0YDQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICfQndGP0LzQsCDQtNCw0L3QvdC4INC30LAg0YLQvtC30Lgg0LTQtdC9Lic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2F2ZSBzZXR0aW5ncywgYmVjYXVzZSBhIGRheSBoYXMgb25seSAyNCBob3VycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAn0J7RgtGH0LXRgtC90L7RgdGCJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXR0aW5nJ30gPSAn0J3QsNGB0YLRgNC+0LnQutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIFN0YXR1cyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTm90aWZpY2F0aW9uL1RpbWVBY2NvdW50aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL0luY29tcGxldGVXb3JraW5nRGF5cy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSB3b3JraW5nIGRheXMnfSA9ICcnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAn0JzQvtC70Y8sINC40LfQsdC10YDQtdGC0LUg0L/QvtC90LUg0LXQtNC40L0g0LTQtdC9ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAn0JzQsNGB0L7QstC+INCy0L/QuNGB0LLQsNC90LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICfQnNC+0LvRjywg0LjQt9Cx0LXRgNC10YLQtSDQv9GA0LjRh9C40L3QsCDQt9CwINC+0YLRgdGK0YHRgtCy0LjQtSEnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICfQmNC30YLRgNC40LLQsNC90LUg0L3QsCDQstGA0LXQvNC10YLQviDQt9CwINCy0L/QuNGB0LLQsNC90LUg0LIg0YHRh9C10YLQvtCy0L7QtNGB0YLQstC+0YLQvic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ9Cf0L7RgtCy0YrRgNC00LXRgtC1JzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBvdmVydGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgdXNlcnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHByb2plY3RzIGZvciB3aGljaCBhIHJlbWFyayBpcyByZXF1aXJlZC4gSWYgdGhlIFJlZ0V4cCBtYXRjaGVzIG9uIHRoZSBwcm9qZWN0LCB5b3UgaGF2ZSB0byBpbnNlcnQgYSByZW1hcmsgdG9vLiBUaGUgUmVnRXhwIHVzZSB0aGUgc214IHBhcmFtZXRlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBzdGF0aXN0aWNzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgdGltZSBhY2NvdW50aW5nIGluZm9ybWF0aW9uLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgcmVjb3JkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3IgaG93IG1hbnkgZGF5cyBhZ28geW91IGNhbiBpbnNlcnQgd29ya2luZyB1bml0cy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgb25seSB1c2VycyB0aGF0IGhhcyBhZGRlZCB3b3JraW5nIHRpbWUgdG8gdGhlIHNlbGVjdGVkIHByb2plY3QgYXJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBkcm9wZG93biBlbGVtZW50cyBpbiB0aGUgZWRpdCBzY3JlZW4gYXJlIGNoYW5nZWQgdG8gbW9kZXJuaXplZCBhdXRvY29tcGxldGlvbiBmaWVsZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGNhbiBiZSB1c2VkIGluc3RlYWQgdHdvIGxpc3Qgb2YgcHJvamVjdHMgKGxhc3QgYW5kIGFsbCBvbmVzKS4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBpcyBhY3RpdmUgYnkgZGVmYXVsdCBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgRW5hYmxlQXV0b0NvbXBsZXRpb24gYW5kIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYXJlIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBwcm9qZWN0IGxpc3QgYWNjb3JkaW5nIHRvIHVzZXIgZ3JvdXBzLiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3Vwcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgaWYgd29ya2luZyBob3VycyBjYW4gYmUgaW5zZXJ0ZWQgd2l0aG91dCBzdGFydCBhbmQgZW5kIHRpbWVzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5vdGlmaWNhdGlvbiBtb2R1bGUgZ2l2ZXMgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0b28gbWFueSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIEFjY291bnRpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyB1c2UgaWYgc29tZSBhY3Rpb25zIHJlZHVjZWQgdGhlIHdvcmtpbmcgaG91cnMgKGZvciBleGFtcGxlLCBpZiBvbmx5IGhhbGYgb2YgdGhlIHRyYXZlbGluZyB0aW1lIGlzIHBhaWQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCkuJ30gPQogICAgICAgICcnOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdDYW5jZWwnLAogICAgJ0NvbmZpcm0gaW5zZXJ0JywKICAgICdEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5JywKICAgICdNYXNzIEVudHJ5JywKICAgICdObycsCiAgICAnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnLAogICAgJ1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmRhX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnVmlsIGR1IHZpcmtlbGlnIHNsZXR0ZSB0aWRzcmVnbnNrYWJldCBmb3IgZGVubmUgZGFnPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBSZWNvcmQnfSA9ICdSZWRpZ2VyIHRpZHNyZWdpc3RyZXJpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAnRGF0b25hdmlnYXRpb24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICdEYWdlIHVkZW4gb3B0ZWduZWxzZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICdQw6UgZmVyaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ1N5Z2VmcmF2w6ZyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAnQWZzcGFkc2VyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAnRGUgcMOla3LDpnZlZGUgZmVsdGVyIGVyIG1hcmtlcmV0IG1lZCAiKiIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAnRHUgc2thbCBpbmR0YXN0ZSBlbiBzdGFydC0gb2cgc2x1dGRhdG8gZWxsZXIgZW4gdGlkc3BlcmlvZGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QnfSA9ICdQcm9qZWt0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICdPcGdhdmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnQmVtw6Zya25pbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdOZWdhdGl2IHRpZCBlciBpa2tlIHRpbGxhZHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdHZW50YWduZSB0aW1lciBlciBpa2tlIHRpbGxhZHQuIFN0YXJ0dGlkZW4gc3ZhcmVyIHRpbCBldCBhbmRldCBpbnRlcnZhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJ1NsdXR0aWRlbiBza2FsIHbDpnJlIHNlbmVyZSBlbmQgc3RhcnR0aWRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdHZW50YWduZSB0aW1lciBlciBpa2tlIHRpbGxhZHQuIFNsdXR0aWRlbiBzdmFyZXIgdGlsIGV0IGFuZGV0IGludGVydmFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnVWd5bGRpZyBwZXJpb2RlISBFbiBkYWcgaGFyIGt1biAyNCB0aW1lci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICdFbiBneWxkaWcgcGVyaW9kZSBza2FsIHbDpnJlIHN0w7hycmUgZW5kIDAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ1VneWxkaWcgcGVyaW9kZSEgTmVnYXRpdmUgcGVyaW9kZXIgZXIgaWtrZSB0aWxsYWR0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ1RpbGbDuGogZW4gcsOma2tlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAnRHUga2FuIGt1biB2w6ZsZ2UgZXQgYWZrcnlkc25pbmdzZmVsdCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBzaWNrIGxlYXZlPyd9ID0gJ0VyIGR1IHNpa2tlciBww6UsIGF0IGR1IGFyYmVqZGVkZSB1bmRlciBkaXQgc3lnZWZyYXbDpnI/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAnRXIgZHUgc2lra2VyIHDDpSwgYXQgZHUgYXJiZWpkZWRlLCBtZW5zIGR1IHZhciBww6UgZmVyaWU/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gb3ZlcnRpbWUgbGVhdmU/J30gPQogICAgICAgICdFciBkdSBzaWtrZXIgcMOhLCBhdCBkdSBhcmJlamRlZGUsIG1lbnMgZHUgdmFyIHDDpSBhZnNwYWRzZXJpbmc/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJ0VyIGR1IHNpa2tlciBww6UsIGF0IGR1IGFyYmVqZGVkZSBtZXJlIGVuZCAxNiB0aW1lcj8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJ03DpW5lZGxpZyBvdmVyc2lndCBvdmVyIHRpZHNyYXBvcnRlcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAnT3ZlcnRpZCAodGltZXIpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0aGlzIG1vbnRoKSd9ID0gJ092ZXJ0aWQgKGRlbm5lIG3DpW5lZCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRvdGFsKSd9ID0gJ092ZXJ0aWQgKGkgYWx0KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUnfSA9ICdSZXN0ZXJlbmRlIGFmc3BhZHNlcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICdGZXJpZSAoZGFnZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnRmVyaWVkYWdlIGJydWd0IChkZW5uZSBtw6VuZWQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICdGZXJpZWRhZ2UgYnJ1Z3QgKGkgYWx0KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgdmFjYXRpb24nfSA9ICdSZXN0ZXJlbmRlIGZlcmllZGFnZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ1N5Z2VmcmF2w6ZyIChkYWdlKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ1N5Z2VmcmF2w6ZyIGJydWd0IChkZW5uZSBtw6VuZWQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ1N5Z2VmcmF2w6ZyIGJydWd0IChpIGFsdCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICdGb3JyaWdlIG3DpW5lZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IG1vbnRoJ30gPSAnTsOmc3RlIG3DpW5lZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAnVWdlZGFnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICdBcmJlamRzdGltZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAnQXJiZWpkc3RpbWVyIGkgYWx0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ0JydWdlcnMgcHJvamVrdG92ZXJibGlrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChtb250aGx5KSd9ID0gJ1RpbWVyIChtw6VuZWRsaWcpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChMaWZldGltZSknfSA9ICdTYW1sZXQgYW50YWwgdGltZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICdBbHQgaSBhbHQnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAnVGlkc3JhcG9ydGVyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICdNw6VuZWRzbmF2aWdhdGlvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ0JydWdlcnJhcHBvcnRlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAnSSBhbHQgZm9yIG3DpW5lZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaWZldGltZSB0b3RhbCd9ID0gJ1NhbWxldCB0b3RhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSBsZWF2ZSd9ID0gJ0Fmc3BhZHNlcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ0ZlcmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICdTeWdlZnJhdsOmcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICdSZXN0ZXJlbmRlIGZyYXbDpnJzZGFnZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydHMnfSA9ICdQcm9qZWt0cmFwcG9ydGVyJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICdQcm9qZWt0cmFwcG9ydCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IGFsbCB0aW1lIGFjY291bnRpbmcgdXNlcnMgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ1JlZGlnZXIgaW5kc3RpbGxpbmdlciBmb3IgdGlkc3JlZ25za2Fic3Byb2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHByb2plY3QnfSA9ICdUaWxmw7hqIHByb2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3Mgb3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICdUaWxmw7hqIHByb2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAnUmVkaWdlciBwcm9qZWt0aW5kc3RpbGxpbmdlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgcHJvamVjdCB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnRGVyIGVyIGFsbGVyZWRlIGV0IHByb2pla3QgbWVkIGRldHRlIG5hdm4uIFbDpmxnIHZlbmxpZ3N0IGV0IGFuZGV0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJ1JlZGlnZXIgdGlkc3JlZ25za2Fic2luZHN0aWxpbmdlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ1RpbGbDuGogb3BnYXZlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgcHJvamVjdHMsIHRhc2tzIG9yIHVzZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJ1Byb2pla3RsaXN0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICdPcGdhdmVsaXN0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgVGFzayd9ID0gJ1RpbGbDuGogb3BnYXZlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ1JlZGlnZXIgb3BnYXZlaW5kc3RpbGxpbmdlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnRGVyIGVyIGFsbGVyZWRlIGVuIG9wZ2F2ZSBtZWQgZGV0dGUgbmF2bi4gVsOmbGcgdmVubGlnc3QgZXQgYW5kZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ0JydWdlcmxpc3RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNlZSBvdmVydGltZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ1ZpcyBvdmVydGlkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBjcmVhdGUgcHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ1RpbGxhZCBvcHJldHRlbHNlIGFmIHByb2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNraXAgdGltZSBhY2NvdW50aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHRpbWUgYWNjb3VudGluZyBza2lwcGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGlzIG9wdGlvbiBpcyBzZWxlY3RlZCwgdGltZSBhY2NvdW50aW5nIGlzIGVmZmVjdGl2ZWx5IG9wdGlvbmFsIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3aWxsIGJlIG5vIHdhcm5pbmdzIGFib3V0IG1pc3NpbmcgZW50cmllcyBhbmQgbm8gZW50cnkgZW5mb3JjZW1lbnQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTcGFucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgQmVnaW4nfSA9ICdCZWd5bmQgcGVyaW9kZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnQWZzbHV0IHBlcmlvZGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJ0ZlcmllZGFnZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ1RpbWVyIHByLiB1Z2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJ0dvZGtlbmR0IG92ZXJ0aWQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4nfSA9ICdQZXJpb2RlbnMgYWZzbHV0bmluZyBza2FsIHbDpnJlIGVmdGVyIHBlcmlvZGVucyBzdGFydC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ0luZ2VuIHRpZHNwZXJpb2RlciBmdW5kZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJ1RpbGbDuGogdGlkc3BlcmlvZGUnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnU2UgdGlkc3JlZ2lzdHJlcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ1NlICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdGb3JyaWdlIGRhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ07DpnN0ZSBkYWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAnRGVyIGVyIGlra2UgZnVuZGV0IGRhdGEgZm9yIGRlbm5lIGRhZy4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgUHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ1JlcG9ydGVyaW5nJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXR0aW5nJ30gPSAnSW5kc3RpbGxpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB1c2VyIHRvIHRpbWUgYWNjb3VudGluZy4uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nVmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldzogTmVlZCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ob3RpZmljYXRpb24vVGltZUFjY291bnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ1NsZXQgdGlkc3JlZ25za2Fic2luZHRhc3RuaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAnQmVrcsOmZnQgaW5kc8OmdHRlbHNlJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnQWdlbnQgaW50ZXJmYWNlLW5vdGlmaWNhdGlvbnNtb2R1bGV0IHNrYWwgc2UgYW50YWxsZXQgYWYgdWFmc2x1dHRlZGUgYXJiZWpkc2RhZ2UgZm9yIGJydWdlcmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ1N0YW5kYXJkbmF2biBmb3IgbnllIGhhbmRsaW5nZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ1N0YW5kYXJkbmF2biBmb3IgbnllIHByb2pla3Rlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICdTdGFuZGFyZGluZHN0aWxsaW5nIGZvciBzbHV0ZGF0by4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJ1N0YW5kYXJkaW5kc3RpbGxpbmcgZm9yIGJlZ3luZGVsc2VzZGF0by4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJ1N0YW5kYXJkaW5kc3RpbGxpbmcgZm9yIGZyYXbDpnJzZGFnZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBvdmVydGltZS4nfSA9ICdTdGFuZGFyZGluZHN0aWxsaW5nIGZvciBvdmVydGlkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAnU3RhbmRhcmRpbmRzdGlsbGluZyBmb3Igbm9ybWFsZSB1Z2VudGxpZ2UgdGltZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdTdGFuZGFyZGluZHN0aWxsaW5nIGZvciBueWUgaGFuZGxpbmdlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdTdGFuZGFyZGluZHN0aWxsaW5nIGZvciBueWUgcHJvamVrdGVyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ1N0YW5kYXJkaW5kc3RpbGxpbmcgZm9yIG55ZSBicnVnZXJlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICdEZWZpbmVyZXIgZGUgcHJvamVrdGVyLCBmb3IgaHZpbGtlIGVuIGJlbcOmcmtuaW5nIGVyIHDDpWtyw6Z2ZXQuIEh2aXMgUmVnRXhwIG1hdGNoZXIgcMOlIHByb2pla3RldCwgc2thbCBkdSBvZ3PDpSBpbmRmw7hqZSBlbiBiZW3DpnJrbmluZy4gUmVnRXhwIGJydWdlciBzbXggcGFyYW1ldGVyZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJ0FuZ2l2ZXIgZm9yIGh2b3IgbWFuZ2UgZGFnZSwgZHUga2FuIGluZHPDpnR0ZSBhcmJlamRzZW5oZWRlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgb25seSB1c2VycyB0aGF0IGhhcyBhZGRlZCB3b3JraW5nIHRpbWUgdG8gdGhlIHNlbGVjdGVkIHByb2plY3QgYXJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBkcm9wZG93biBlbGVtZW50cyBpbiB0aGUgZWRpdCBzY3JlZW4gYXJlIGNoYW5nZWQgdG8gbW9kZXJuaXplZCBhdXRvY29tcGxldGlvbiBmaWVsZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGNhbiBiZSB1c2VkIGluc3RlYWQgdHdvIGxpc3Qgb2YgcHJvamVjdHMgKGxhc3QgYW5kIGFsbCBvbmVzKS4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBpcyBhY3RpdmUgYnkgZGVmYXVsdCBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgRW5hYmxlQXV0b0NvbXBsZXRpb24gYW5kIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYXJlIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ01ha3NpbWFsdCBhbnRhbCBhZiBhcmJlamRzZGFnZSBlZnRlciBodmlsa2V0IGFyYmVqZHNlbmhlZGVybmUgc2thbCBpbmRzw6Z0dGVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAnUmVndWzDpnJlIHVkdHJ5ayBmb3IgYmVncsOmbnNuaW5nIGFmIGhhbmRsaW5nc2xpc3RlIGlmw7hsZ2UgZGV0IHZhbGd0ZSBwcm9qZWt0LiBOw7hnbGVuIGluZGVob2xkZXIgZXQgcmVndWzDpnJ0IHVkdHJ5ayBmb3IgcHJvamVrdChlciksIGluZGhvbGRldCBydW1tZXIgcmVndWzDpnJlIHVkdHJ5ayBmb3IgaGFuZGxpbmcoZXIpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdSZWd1bMOmcmUgdWR0cnlrIGZvciBiZWdyw6Zuc25pbmcgYWYgcHJvamVrdGxpc3RlIGlmw7hsZ2UgYnJ1Z2VyZ3J1cHBlci4gTsO4Z2xlbiBpbmRlaG9sZGVyIGV0IHJlZ3Vsw6ZydCB1ZHRyeWsgZm9yIHByb2pla3QoZXIpLCBpbmRob2xkZXQgcnVtbWVyIGtvbW1hc2VwYXJlcmV0IGxpc3RlIG92ZXIgZ3J1cHBlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ0FuZ2l2ZXIsIG9tIGFyYmVqZHN0aW1lciBrYW4gaW5kc8OmdHRlcyB1ZGVuIHN0YXJ0LSBvZyBzbHV0dGlkZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ0RldHRlIG1vZHVsIGdlbm5lbXR2aW5nZXIgaW5kc8OmdHRlbHNlciBpIHRpZHNyZWduc2thYi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICdEZXR0ZSBhZHZpc2VyaW5nc21vZHVsIGdpdmVyIGVuIGFkdmFyc2VsLCBodmlzIGRlciBlciBmb3IgbWFuZ2UgdWZ1bGRzdMOmbmRpZ2UgYXJiZWpkc2RhZ2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnVGlkc3JlZ25za2FiJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ0JydWdlcywgaHZpcyBub2dsZSBoYW5kbGluZ2VyIGhhciByZWR1Y2VyZXQgYXJiZWpkc3RpbWVybmUgKGYuZWtzLiBodmlzIGt1biBoYWx2ZGVsZW4gYWYgcmVqc2V0aWRlbiBlciBiZXRhbHQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCknOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdDYW5jZWwnLAogICAgJ0NvbmZpcm0gaW5zZXJ0JywKICAgICdEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5JywKICAgICdNYXNzIEVudHJ5JywKICAgICdObycsCiAgICAnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnLAogICAgJ1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmRlX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnTcO2Y2h0ZW4gU2llIHdpcmtsaWNoIGRpZSBaZWl0ZXJmYXNzdW5nIGbDvHIgZGVuIGFrdHVlbGxlbiBUYWcgbMO2c2NoZW4/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJ1plaXRhYnJlY2hudW5nIGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICdadSBFaW5zdGVsbHVuZ2VuIGdlaGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ0RhdHVtc25hdmlnYXRpb24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICdUYWdlIG9obmUgRWludHLDpGdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ0FsbGUgVGFnZSBhdXN3w6RobGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICdNYXNzZW5laW50cmFnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnQml0dGUgd8OkaGxlbiBTaWUgZGVuIEdydW5kIGbDvHIgSWhyZSBBYndlc2VuaGVpdCBmw7xyIGRpZSBhdXNnZXfDpGhsdGVuIFRhZ2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICdpbSBVcmxhdWInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ0Vya3Jhbmt0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAnw5xiZXJzdHVuZGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAnRmVsZGVyLCBkaWUgYXVzZ2Vmw7xsbHQgd2VyZGVuIG3DvHNzZW4sIHNpbmQgbWl0IGVpbmVtIFN0ZXJuICIqIiBnZWtlbm56ZWljaG5ldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICdTaWUgbcO8c3NlbiBlaW5lIFN0YXJ0LSB1bmQgRW5kemVpdCBvZGVyIGVpbmUgWmVpdHNwYW5uZSBhbmdlYmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAnUHJvamVrdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAnVMOkdGlna2VpdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICdBbm1lcmt1bmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnQml0dGUgZ2ViZW4gU2llIGVpbmUgQW5tZXJrdW5nIHZvbiBtZWhyIGFscyA4IFplaWNoZW4gTMOkbmdlIGVpbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ05lZ2F0aXZlIEFuZ2FiZW4gc2luZCBuaWNodCBlcmxhdWJ0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnRGllc2UgU3RhcnR6ZWl0IHd1cmRlIGJlcmVpdHMgaW4gZWluZW0gYW5kZXJlbiBFaW50cmFnIGFuZ2VnZWJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ1VuZ8O8bHRpZ2VzIEZvcm1hdCEgQml0dGUgZ2ViZW4gU2llIGVpbmUgWmVpdCBpbSBGb3JtYXQgSEg6TU0gZWluLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICdOdXIgMjQ6MDAgaXN0IGFscyBFbmR6ZWl0IGVybGF1YnQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnVW5nw7xsdGlnZSBaZWl0ISBFaW4gVGFnIGhhdCBudXIgMjQgU3R1bmRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnRGllIEVuZHplaXQgbXVzcyBuYWNoIGRlciBTdGFydHplaXQgc2Vpbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdEaWVzZSBFbmR6ZWl0IHd1cmRlIGJlcmVpdHMgaW4gZWluZW0gYW5kZXJlbiBFaW50cmFnIGFuZ2VnZWJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ1VuZ8O8bHRpZ2UgQW5nYWJlLiBFaW4gVGFnIGhhdCBudXIgMjQgU3R1bmRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICdFaW5lIGfDvGx0aWdlIFplaXRzcGFubmUgbXVzcyBncsO2w59lciBhbHMgTnVsbCBzZWluLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnVW5nw7xsdGlnZSBBbmdhYmUuIE5lZ2F0aXZlIFplaXRzcGFubmVuIHNpbmQgbmljaHQgbcO2Z2xpY2guJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAnRWluZSBaZWlsZSBoaW56dWbDvGdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ1NpZSBrw7ZubmVuIG51ciBlaW5lIENoZWNrYm94IG1hcmtpZXJlbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBzaWNrIGxlYXZlPyd9ID0gJ1NpbmQgU2llIHNpY2hlciwgZGFzcyBTaWUgZ2VhcmJlaXRldCBoYWJlbiwgb2J3b2hsIFNpZSBlcmtyYW5rdCBzaW5kPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHZhY2F0aW9uPyd9ID0gJ1NpbmQgU2llIHNpY2hlciwgZGFzcyBTaWUgZ2VhcmJlaXRldCBoYWJlbiwgb2J3b2hsIFNpZSBpbSBVcmxhdWIgc2luZD8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ1NpbmQgU2llIHNpY2hlciwgZGFzcyBTaWUgZ2VhcmJlaXRldCBoYWJlbiwgb2J3b2hsIFNpZSDDnGJlcnN0dW5kZW4gZ2Vub21tZW4gaGFiZW4/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJ1NpbmQgU2llIHNpY2hlciwgZGFzcyBTaWUgbWVociBhbHMgMTYgU3R1bmRlbiBnZWFyYmVpdGV0IGhhYmVuPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAnWmVpdGVyZmFzc3VuZyAtIE1vbmF0c8O8YmVyc2ljaHQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJ8OcYmVyc3R1bmRlbiAoaW4gU3R1bmRlbiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnw5xiZXJzdHVuZGVuIChkaWVzZXIgTW9uYXQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICfDnGJlcnN0dW5kZW4gKFN1bW1lKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUnfSA9ICfDnGJlcnN0dW5kZW4gKHZlcmJsZWliZW5kKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICdVcmxhdWIgKGluIFRhZ2VuKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCknfSA9ICdVcmxhdWJzdGFnZSAoZGllc2VyIE1vbmF0KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodG90YWwpJ30gPSAnVXJsYXVic3RhZ2UgKFN1bW1lKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgdmFjYXRpb24nfSA9ICdVcmxhdWJzdGFnZSAodmVyYmxlaWJlbmQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgTGVhdmUgKERheXMpJ30gPSAnRXJrcmFua3QgKGluIFRhZ2VuKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ0Vya3Jhbmt0IChkaWVzZXIgTW9uYXQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ0Vya3Jhbmt0IChTdW1tZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICdWb3JoZXJpZ2VyIE1vbmF0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICdOw6RjaHN0ZXIgTW9uYXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2RheSd9ID0gJ1dvY2hlbnRhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JraW5nIEhvdXJzJ30gPSAnQXJiZWl0c3N0dW5kZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAnQXJiZWl0c3N0dW5kZW4gKGdlc2FtdCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAnUHJvamVrdMO8YmVyc2ljaHQgZGVzIEJlbnV0emVycyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICdTdHVuZGVuIChpbSBNb25hdCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ1N0dW5kZW4gKGdlc2FtdCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICdTdW1tZSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICdaZWl0ZXJmYXNzdW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICdEYXR1bXNhdXN3YWhsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICdHZWhlIHp1IERhdHVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ051dHplcmJlcmljaHRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRobHkgdG90YWwnfSA9ICdwcm8gTW9uYXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICdTdW1tZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSBsZWF2ZSd9ID0gJ8OcYmVyc3R1bmRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ1VybGF1Yic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAnRXJrcmFua3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gcmVtYWluaW5nJ30gPSAnVmVyYmxlaWJlbmRlIFVybGF1YnN0YWdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ1Byb2pla3RiZXJpY2h0ZSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAnUHJvamVrdMO8YmVyc2ljaHQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAnWnVyIEJlcmljaHRzw7xiZXJzaWNodCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ0RlcnplaXQgd2VyZGVuIGluIGRpZXNlbSBQcm9qZWt0IG51ciBha3RpdmUgQmVudXR6ZXIgYW5nZXplaWd0LiBVbSBkaWVzZSBFaW5zdGVsbHVuZyB6dSDDpG5kZXJuLCBiZWFyYmVpdGVuIFNpZSBiaXR0ZTonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IGFsbCB0aW1lIGFjY291bnRpbmcgdXNlcnMgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnRGVyemVpdCB3ZXJkZW4gYWxsZSB6ZWl0ZXJmYXNzZW5kZW4gQmVudXR6ZXIgYW5nZXplaWd0LiBVbSBkaWVzZSBFaW5zdGVsbHVuZyB6dSDDpG5kZXJuLCBiZWFyYmVpdGVuIFNpZSBiaXR0ZTonOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAnWmVpdGFicmVjaG51bmctUHJvamVrdGVpbnN0ZWxsdW5nZW4gYmVhcmJlaXRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJ1Byb2pla3QgaGluenVmw7xnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3Mgb3ZlcnZpZXcnfSA9ICdadXIgRWluc3RlbGx1bmdzw7xiZXJzaWNodCBnZWhlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJ1Byb2pla3QgaGluenVmw7xnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAnUHJvamVrdGVpbnN0ZWxsdW5nZW4gYmVhcmJlaXRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgcHJvamVjdCB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnRWluIFByb2pla3QgbWl0IGdsZWljaGVtIE5hbWVuIGV4aXN0aWVydCBiZXJlaXRzLiBCaXR0ZSB3w6RobGVuIFNpZSBlaW5lbiBhbmRlcmVuIE5hbWVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJ1plaXRhYnJlY2hudW5ncy1FaW5zdGVsbHVuZ2VuIGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRhc2snfSA9ICdUw6R0aWdrZWl0IGhpbnp1ZsO8Z2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgcHJvamVjdHMsIHRhc2tzIG9yIHVzZXJzJ30gPSAnRmlsdGVyIGbDvHIgUHJvamVrdGUsIEF1ZmdhYmVuIG9kZXIgQmVudXR6ZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICdaZWl0ZmVuc3RlciBrw7ZubmVuIG5pY2h0IGdlbMO2c2NodCB3ZXJkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJ1Byb2pla3RsaXN0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICdUw6R0aWdrZWl0c2xpc3RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAnVMOkdGlna2VpdCBoaW56dWbDvGdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICdUw6R0aWdrZWl0c2VpbnN0ZWxsdW5nZW4gYmVhcmJlaXRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnRWluZSBUw6R0aWdrZWl0IG1pdCBnbGVpY2hlbSBOYW1lbiBleGlzdGllcnQgYmVyZWl0cy4gQml0dGUgd8OkaGxlbiBTaWUgZWluZW4gYW5kZXJlbiBOYW1lbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAnQmVudXR6ZXJsaXN0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNldHRpbmdzJ30gPSAnQmVudXR6ZXJlaW5zdGVsbHVuZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBzZWUgb3ZlcnRpbWVzJ30gPSAnQmVudXR6ZXIgaXN0IGJlcmVjaHRpZ3Qgw5xiZXJzdHVuZGVuIHp1IHNlaGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgT3ZlcnRpbWUnfSA9ICfDnGJlcnN0dW5kZW4gYW56ZWlnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIGNyZWF0ZSBwcm9qZWN0cyd9ID0gJ0JlbnV0emVyIGlzdCBiZXJlY2h0aWd0IFByb2pla3RlIHp1IGVyc3RlbGxlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnUHJvamVrdCBlcnN0ZWxsZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNraXAgdGltZSBhY2NvdW50aW5nJ30gPSAnRGVtIEJlbnV0emVyIGlzdCBlcmxhdWJ0LCBkaWUgWmVpdGVyZmFzc3VuZyB6dSDDvGJlcnNwcmluZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyB0aW1lIGFjY291bnRpbmcgc2tpcHBpbmcnfSA9ICfDnGJlcnNwcmluZ2VuIGRlciBaZWl0ZXJmYXNzdW5nIGVybGF1YmVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoaXMgb3B0aW9uIGlzIHNlbGVjdGVkLCB0aW1lIGFjY291bnRpbmcgaXMgZWZmZWN0aXZlbHkgb3B0aW9uYWwgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnV2VubiBkaWVzZSBPcHRpb24gYXVzZ2V3w6RobHQgaXN0LCBpc3QgZGllIFplaXRlcmZhc3N1bmcgZsO8ciBkZW4gQmVudXR6ZXIgZWZmZWt0aXYgb3B0aW9uYWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIHdpbGwgYmUgbm8gd2FybmluZ3MgYWJvdXQgbWlzc2luZyBlbnRyaWVzIGFuZCBubyBlbnRyeSBlbmZvcmNlbWVudC4nfSA9CiAgICAgICAgJ0VzIGdpYnQga2VpbmUgV2FybnVuZ2VuIHZvciBmZWhsZW5kZW4gRWludHLDpGdlbiB1bmQga2VpbmVuIFp3YW5nIHp1bSBFaW50cmFnZW4uICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNwYW5zJ30gPSAnWmVpdHNwYW5uZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAnRGF0dW0gQmVnaW5uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICdEYXR1bSBFbmRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICdVcmxhdWJzdGFnZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ1dvY2hlbnN0dW5kZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJ0F1dG9yaXNpZXJ0ZSDDnGJlcnN0dW5kZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJ1N0YXJ0ZGF0dW0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAnQml0dGUgZ2ViZW4gU2llIGVpbiBnw7xsdGlnZXMgRGF0dW0gZWluLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJ0VuZGRhdHVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnRGFzIEVuZGUgZGVyIFplaXRzcGFubmUgbXVzcyBuYWNoIGRlbSBBbmZhbmcgc2Vpbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJ1VybGF1YnN0YWdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJ1fDtmNoZW50bGljaGUgU3R1bmRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSd9ID0gJ8OcYmVyc3R1bmRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnS2VpbmUgWmVpdHNwYW5uZSBnZWZ1bmRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAnWmVpdHNwYW5uZSBoaW56dWbDvGdlbic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgVGltZSBSZWNvcmQnfSA9ICdEYXRlbnNhdHogYW56ZWlnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICdBbnNpY2h0IHZvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdWb3JoZXJpZ2VyIFRhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ07DpGNoc3RlciBUYWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAnS2VpbiBFaW50cmFnIGbDvHIgZGllc2VuIFRhZyBnZWZ1bmRlbi4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAnS2FubiBBcmJlaXRzZWluaGVpdGVuIG5pY2h0IGVpbmbDvGdlbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBQcm9qZWN0cyd9ID0gJ0xldHp0ZSBQcm9qZWt0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2F2ZSBzZXR0aW5ncywgYmVjYXVzZSBhIGRheSBoYXMgb25seSAyNCBob3VycyEnfSA9ICdVbmfDvGx0aWdlIEFuZ2FiZS4gRWluIFRhZyBoYXQgbnVyIDI0IFN0dW5kZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICdLYW5uIEFyYmVpdHNlaW5oZWl0ZW4gbmljaHQgbMO2c2NoZW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAnRGllc2VzIERhdHVtIGlzdCBhdcOfZXJoYWxiIGRlcyBHcmVuendlcnRlcywgYWJlciBTaWUgaGFiZW4gZGllc2VuIFRhZyBiaXMgamV0enQgbm9jaCBuaWNodCBlaW5nZWbDvGd0LCBhbHNvIGJla29tbWVuIFNpZSBkYWbDvHIgZWluZSghKSBDaGFuY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgV29ya2luZyBEYXlzJ30gPSAnVW52b2xsc3TDpG5kaWdlIEFyYmVpdHN0YWdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJ0VpbmdhYmVuIGdlc3BlaWNoZXJ0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAnRmVobGVyIGJlaSBkZXIgRWluZ2FiZSBmw7xyIG1laHJlcmUgVGFnZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnRGF0ZW4gZsO8ciBtZWhyZXJlIFRhZ2UgZXJmb2xncmVpY2ggZXJmYXNzdCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ0VpbmdlZ2ViZW5lcyBEYXR1bSB1bmfDvGx0aWchIERhdHVtIHd1cmRlIGF1ZiBcJ2hldXRlXCcgZ2XDpG5kZXJ0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICdFcyBpc3Qga2VpbmUgWmVpdHBlcmlvZGUga29uZmlndXJpZXJ0LCBvZGVyIGRhcyBhbmdlZ2ViZW5lIERhdHVtIGxpZWd0IGF1w59lcmhhbGIgZGVyIGtvbmZpZ3VyaWVydGVuIFplaXRwZXJpb2Rlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJ0JpdHRlIGtvbnRha3RpZXJlbiBTaWUgaWhyZW4gWmVpdGVyZmFzc3VuZ3MtQWRtaW5pc3RyYXRvciwgdW0gZGllIFplaXRwZXJpb2RlbiB6dSBha3R1YWxpc2llcmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAnWnVsZXR6dCBhdXNnZXfDpGhsdGUgUHJvamVrdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIFByb2plY3RzJ30gPSAnQWxsZSBQcm9qZWt0ZSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICdCZXJpY2h0c3Byb2pla3Q6IEJlbsO2dGlnZSBQcm9qZWN0SUQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICdCZXJpY2h0c3Byb2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAnQmVyaWNodGVyc3RhdHR1bmcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gdXBkYXRlIHVzZXIgc2V0dGluZ3MhJ30gPSAnQmVudXR6ZXJlaW5zdGVsbHVuZ2VuIGvDtm5uZW4gbmljaHQgYWt0dWFsaXNpZXJ0IHdlcmRlbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICdQcm9qZWt0IGhpbnp1Z2Vmw7xndCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJ1Byb2pla3QgYWt0dWFsaXNpZXJ0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnQXVmZ2FiZSBoaW56dWdlZsO8Z3QhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICdBdWZnYWJlIGFrdHVhbGlzaWVydCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnRGllIFVzZXJJRCBpc3QgdW5nw7xsdGlnISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICdLYW5uIEJlbnV0emVyZGF0ZW4gbmljaHQgZWluZsO8Z2VuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJ0thbm4gWmVpdHBlcmlvZGUgbmljaHQgaGluenVmw7xnZW4hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHRpbmcnfSA9ICdFaW5zdGVsbHVuZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnQmVudXR6ZXIgYWt0dWFsaXNpZXJ0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGFkZGVkISd9ID0gJ0JlbnV0emVyIGhpbnp1Z2Vmw7xndCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICdFaW5lbiBCZW51dHplciB6dXIgWmVpdGFicmVjaG51bmcgaGluenVmw7xnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICdOZXVlciBCZW51dHplcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAnU3RhdHVzIGRlcyBaZWl0cmF1bXMnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJ0Fuc2ljaHQ6IEJlbsO2dGlnZSAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ob3RpZmljYXRpb24vVGltZUFjY291bnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ0JpdHRlIGRpZSBBcmJlaXRzc3R1bmRlbiBlaW50cmFnZW4hJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAnVW52b2xsc3TDpG5kaWdlIEFyYmVpdHN0YWdlJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ0JpdHRlIHfDpGhsZW4gU2llIG1pbmRlc3RlbnMgZWluZW4gVGFnISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAnTWFzc2VuZWludHJhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ0JpdHRlIHfDpGhsZW4gU2llIGVpbmVuIEdydW5kIGbDvHIgZGllIEFid2VzZW5oZWl0IGF1cyEnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICdFaW50cmFnIGzDtnNjaGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAnRWluZ2FiZSBiZXN0w6R0aWdlbic7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ01vZHVsIHp1bSBBbnplaWdlbiBkZXIgQW56YWhsIGRlciB1bnZvbGxzdMOkbmRpZ2VuIEFyYmVpdHN0YWdlIGRlcyBCZW51dHplcnMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnU3RhbmRhcmRuYW1lIGbDvHIgbmV1ZSBUw6R0aWdrZWl0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ0FuZmFuZ3NzdGF0dXMgZWluZXMgbmV1ZW4gUHJvamVrdHMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAnU3RhbmRhcmRlaW5zdGVsbHVuZyBmw7xyIEVuZGRhdHVtLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAnU3RhbmRhcmRlaW5zdGVsbHVuZyBmw7xyIFN0YXJ0ZGF0dW0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnU3RhbmRhcmRlaW5zdGVsbHVuZyBmw7xyIEJlc2NocmVpYnVuZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnU3RhbmRhcmRlaW5zdGVsbHVuZyBmw7xyIFVybGF1YnN0YWdlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJ0V2ZW50dWVsbCB2b3JoYW5kZW5lciDDnGJlcnN0dW5kZW7DvGJlcnRyYWcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICdTdGFuZGFyZCBXb2NoZW5hcmJlaXRzemVpdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ0FuZmFuZ3NzdGF0dXMgZWluZXIgbmV1ZW4gVMOkdGlna2VpdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdBbmZhbmdzc3RhdHVzIGVpbmVzIG5ldWVuIFByb2pla3RzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ0FuZmFuZ3NzdGF0dXMgZWluZXMgbmV1ZW4gQmVudXR6ZXJzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICdJbm5lcmhhbGIgZGllc2VyIEtvbmZpZ3VyYXRpb25zb3B0aW9uIGthbm4gZWluZSBSZWdFeHAgZGVmaW5pZXJ0IHdlcmRlbiwgZGllIGZlc3RsZWd0LCBiZWkgd2VsY2hlbiBQcm9qZWt0ZW4gZWluZSBCZW1lcmt1bmcgZWluZ2V0cmFnZW4gd2VyZGVuIG11c3MgKGRpZSBSZWdFeHAgYXJiZWl0ZXQgbWl0IHNteC1QYXJhbWV0ZXJuKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ0Jlc3RpbW10LCBvYiBkYXMgU3RhdGlzdGlrLU1vZHVsIEluZm9ybWF0aW9uZW4genVyIFplaXRhYnJlY2hudW5nIGdlbmVyaWVyZW4ga2Fubi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnWmVpdGVyZmFzc3VuZ3MtRWluc3RlbGx1bmdlbiBiZWFyYmVpdGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgcmVjb3JkLid9ID0gJ1plaXQtRGF0ZW5zYXR6IGJlYXJiZWl0ZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJ0xlZ3QgZmVzdCwgYmlzIHdhbm4gbWFuIGluIMOkbHRlcmUgWmVpdGVpbnRyw6RnZSBiZWFyYmVpdGVuIGthbm4gKHouIEIuIDEwIFRhZ2UgenVyw7xja2xpZWdlbmQpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICdXZW5uIGFrdGl2aWVydCwgd2VyZGVuIG51ciBVc2VyIGFuZ2V6ZWlndCBkaWUgQXJiZWl0c3plaXRlbiB6dSBkZW0gZ2V3w6RobHRlbiBQcm9qZWt0IGhpbnp1Z2Vmw7xndCBoYWJlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJ1dlbm4gYWt0aXZpZXJ0IHdlcmRlbiBkaWUgRHJvcGRvd24tRmVsZGVyIGltIGRlciBFZGl0aWVyLU9iZXJmbMOkY2hlIGluIGRlciBuZXVlbiBGb3JtIGFscyBGZWxkIG1pdCBBdXRvLVZlcnZvbGxzdMOkbmRpZ2VuIGFuZ2V6ZWlndC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGNhbiBiZSB1c2VkIGluc3RlYWQgdHdvIGxpc3Qgb2YgcHJvamVjdHMgKGxhc3QgYW5kIGFsbCBvbmVzKS4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnRGVyIEZpbHRlciBiZWkgdm9yaGVyaWdlbiBQcm9qZWt0ZW4ga2FubiBiZWkgQWt0aXZpZXJ1bmcgZ2VudXR6dCB3ZXJkZW4sIGFuc3RlbGxlIGRhcyB6d2VpIFByb2pla3QgTGlzdGVuIChsZXR6dGUgdW5kIGFsbGUpIGdlbnV0enQgd2VyZGVuLiBFcyBrYW5uIGFsbGVyZGluZ3MgbnVyIGdlbnV0enQgd2VyZGVuIHdlbm4gVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGFrdGl2aWVydCBpc3QuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBpcyBhY3RpdmUgYnkgZGVmYXVsdCBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgRW5hYmxlQXV0b0NvbXBsZXRpb24gYW5kIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYXJlIGVuYWJsZWQuJ30gPQogICAgICAgICdCZWkgQWt0aXZpZXJ1bmcgaXN0IGRlciBGaWx0ZXIgZGVyIHZvcmhlcmlnZW4gUHJvamVrdGUgc3RhbmRhcmRtw6Rzc2lnIGFrdGl2IGZhbGxzIHZvcmhlcmlnZSBQcm9qZWt0ZSB2b3JoYW5kZW4gc2luZC4gRXIga2FubiBudXIgZ2VudXR6dCB3ZXJkZW4gd2VubiBFbmFibGVBdXRvQ29tcGxldGlvbiB1bmQgIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYWt0aXZpZXJ0IHNpbmQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICdXZW5uIGFrdGl2aWVydCwgIGvDtm5uZW4gQmVudXR6ZXIgImltIFVybGF1YiIsICJFcmtyYW5rdCIgdW5kICLDnGJlcnN0dW5kZW4iIGFuIG1laHJlcmVuIFRhZ2VuIGF1ZiBlaW5tYWwgc2V0emVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ01heGltYWxlIEFuemFobCB2b24gQXJiZWl0c3RhZ2VuLCBuYWNoIGRlciBkaWUgQXJiZWl0c3plaXQgZWluZ2V0cmFnZW4gd2VyZGVuIG11c3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICdNYXhpbWFsZSBBbnphaGwgdm9uIEFyYmVpdHN0YWdlbiBvaG5lIEFyYmVpdHN6ZWl0ZWludHLDpGdlIG5hY2ggZGVuZW4gZWluZSBXYXJudW5nIGFuZ2V6ZWlndCB3aXJkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICfDnGJlcnNpY2h0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJ1Byb2pla3QtWmVpdC1SZXBvcnRpbmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICdSZWd1bMOkcmVyIEF1c2RydWNrLCB1bSBkaWUgTGlzdGUgZGVyIFTDpHRpZ2tlaXRlbiBiZXrDvGdsaWNoIGRlcyBhdXNnZXfDpGhsdGVuIFByb2pla3RzIGVpbnp1c2NocsOkbmtlbi4gRGVyIFNjaGzDvHNzZWwgZW50aMOkbHQgZWluZW4gUmVndWzDpHJlbiBBdXNkcnVjayBmw7xyIFByb2pla3RlLCBkZXIgV2VydCBlaW5lbiBSZWd1bMOkcmVuIEF1c2RydWNrIGbDvHIgZGllIFTDpHRpZ2tlaXRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAnUmVndWzDpHJlciBBdXNkcnVjaywgdW0gZGllIExpc3RlIGRlciBQcm9qZWt0ZSBiZXrDvGdsaWNoIGRlcyBha3RpdmVuIEJlbnV0emVycyBlaW56dXNjaHLDpG5rZW4uIERlciBTY2hsw7xzc2VsIGVudGjDpGx0IGVpbmVuIFJlZ3Vsw6RyZW4gQXVzZHJ1Y2sgZsO8ciBQcm9qZWt0ZSwgZGVyIFdlcnQgZW50aMOkbHQgZWluZSBrb21tYS1zZXBhcmllcnRlIExpc3RlIHZvbiBCZW51dHplcmdydXBwZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICdHaWJ0IGFuLCBvYiBBcmJlaXRzc3R1bmRlbiBvaG5lIFN0YXJ0LSB1bmQgRW5kemVpdCBlaW5nZWdlYmVuIHdlcmRlbiBrw7ZubmVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICdEaWVzZXMgTW9kdWwgendpbmd0IHp1ciBFaW5nYWJlIHZvbiBTdHVuZGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5vdGlmaWNhdGlvbiBtb2R1bGUgZ2l2ZXMgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0b28gbWFueSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cy4nfSA9CiAgICAgICAgJ01vZHVsLCBkYXNzIGRlbiBBZ2VudCBpbSBOb3RpZmljYXRpb24tQmVyZWljaCBkZXMgQWdlbnQtSW50ZXJmYWNlcyBkYXLDvGJlciBpbmZvcm1pZXJ0LCB3ZW5uIHNjaG9uIHp1IGxhbmdlIGtlaW5lIFN0dW5kZW4gbWVociBlaW5nZXRyYWdlbiB3dXJkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJ1plaXRhYnJlY2hudW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJ1plaXRhYnJlY2hudW5nIEJlYXJiZWl0dW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAnWmVpdGFicmVjaG51bmdzw7xiZXJzaWNodC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICdaZWl0YWJyZWNobnVuZyBCZXJpY2h0ZXJzdGF0dHVuZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ1plaXRhYnJlY2hudW5nIEVpbnN0ZWxsdW5nZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ1plaXRhYnJlY2hudW5nIEFuc2ljaHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZy4nfSA9ICdaZWl0YWJyZWNobnVuZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyB1c2UgaWYgc29tZSBhY3Rpb25zIHJlZHVjZWQgdGhlIHdvcmtpbmcgaG91cnMgKGZvciBleGFtcGxlLCBpZiBvbmx5IGhhbGYgb2YgdGhlIHRyYXZlbGluZyB0aW1lIGlzIHBhaWQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCkuJ30gPQogICAgICAgICdIaWVyIGthbm4gbWFuIGVpbmdlYmVuLCBvYiBmw7xyIGVpbmUgYmVzdGltbXRlIFTDpHRpZ2tlaXQsIGRpZSB6dSB2ZXJyZWNobmVuZGVuIFN0dW5kZW4gZ2Vrw7xyenQgd2VyZGVuLiBaLiBCIHdlbm4gUmVpc2V6ZWl0ZW4gbnVyIHp1ciBIw6RsZnRlIHZlcmfDvHRldCB3ZXJkZW4gKEtleSA9Jmd0OyBqb3VybmV5OyBDb250ZW50ID0mZ3Q7IDUwKS4nOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdDYW5jZWwnLAogICAgJ0NvbmZpcm0gaW5zZXJ0JywKICAgICdEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5JywKICAgICdNYXNzIEVudHJ5JywKICAgICdObycsCiAgICAnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnLAogICAgJ1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmVzX01YX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnwr9SZWFsbWVudGUgZGVzZWEgZWxpbWluYXIgbGEgQ29udGFiaWxpZGFkIGRlIFRpZW1wbyBkZSBlc3RlIGTDrWE/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJ01vZGlmaWNhciBSZWdpc3RybyBkZSBIb3Jhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJ0lyIGEgY29uZmlndXJhY2lvbmVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ05hdmVnYWNpw7NuIHBvciBGZWNoYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ0TDrWFzIHNpbiByZWdpc3Rybyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYWxsIGRheXMnfSA9ICdTZWxlY2Npb25hciB0b2RvcyBsb3MgZMOtYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBlbnRyeSd9ID0gJ1JlZ2lzdHJvIG1hc2l2byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIHRoZSByZWFzb24gZm9yIHlvdXIgYWJzZW5jZSBmb3IgdGhlIHNlbGVjdGVkIGRheXMnfSA9CiAgICAgICAgJ1BvciBmYXZvciBlc2NvamEgdW5hIHJhesOzbiBwYXJhIHN1IGF1c2VuY2lhIHBhcmEgbG9zIGTDrWFzIHNlbGVjY2lvbmFkb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICdEZSB2YWNhY2lvbmVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICdBdXNlbnRlIHBvciBlbmZlcm1lZGFkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAnQXVzZW50ZSBwb3IgaGFiZXIgdHJhYmFqYWRvIGhvcmFzIGV4dHJhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJ0xvcyBjYW1wb3MgcmVxdWVyaWRvcyBlc3TDoW4gbWFyY2Fkb3MgY29uIHVuICIqIi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICdFcyBuZWNlc2FyaW8gcXVlIHByb3BvcmNpb25lIHVuYSBob3JhIGRlIGluaWNpbyB5IHVuYSBkZSBmaW5hbGl6YWNpw7NuIG8gdW4gcGVyaW9kby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb3llY3RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICdUYXJlYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICdDb21lbnRhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJ8KhUG9yIGZhdm9yIGFncmVndWUgdW5hIG9ic2VydmFjacOzbiBkZSBtXCdzIGRlIDggY2FyYWN0ZXJlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ05vIHNlIHBlcm1pdGUgbGEgaW5zZXJjacOzbiBkZSBob3JhcyBuZWdhdGl2YXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdObyBzZSBwZXJtaXRlIGxhIGluc2VyY2nDs24gZGUgaG9yYXMgcmVwZXRpZGFzLiBMYSBob3JhIGRlIGluaWNpbyBlc3TDoSBpbmNsdcOtZGEgZW4gb3RybyBpbnRlcnZhbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdGb3JtYXRvIGludsOhbGlkbyEgUG9yIGZhdm9yIGludHJvZHV6Y2EgbGFzIGhvcmFzIGNvbiBlbCBmb3JtYXRvIEhIOk1NLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcyNDowMCBlcyBzb2xvIHBlcm1pdGlkbyBjb21vIHRpZW1wbyBmaW5hbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICdIb3JhIGludsOhbGlkYSEgVW4gZMOtYSBzb2xvIHRpZW5lIDI0IGhvcmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnTGEgaG9yYSBkZSBmaW5hbGl6YWNpw7NuIGRlYmUgc2VyIHBvc3RlcmlvciBhIGxhIGRlIGluaWNpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdObyBzZSBwZXJtaXRlIGxhIGluc2VyY2nDs24gZGUgaG9yYXMgcmVwZXRpZGFzLiBMYSBob3JhIGRlIGZpbmFsaXphY2nDs24gZXN0w6EgaW5jbHXDrWRhIGVuIG90cm8gaW50ZXJ2YWxvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnwqFQZXJpb2RvIGludsOhbGlkbyEgVW4gZMOtYSBzw7NsbyB0aWVuZSAyNCBob3Jhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICdVbiBwZXJpb2RvIHbDoWxpZG8gZGViZSBzZXIgbWF5b3IgYSBjZXJvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnwqFQZXJpb2RvIGludsOhbGlkbyEgTm8gc2UgcGVybWl0ZW4gcGVyaW9kb3MgbmVnYXRpdm9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ0HDsWFkaXIgdW5hIGZpbGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICfCoVPDs2xvIHNlIHBlcm1pdGUgZWxlZ2lyIHVuIGVsZW1lbnRvIGNoZWNrYm94ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnwr9Fc3TDoSBzZWd1cm8gcXVlIHRyYWJhasOzIGR1cmFudGUgc3UgYXVzZW5jaWEgcG9yIGVuZmVybWVkYWQ/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAnwr9Fc3TDoSBzZWd1cm8gcXVlIHRyYWJhasOzIGR1cmFudGUgc3VzIHZhY2FjaW9uZXM/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gb3ZlcnRpbWUgbGVhdmU/J30gPQogICAgICAgICfCv0VzdMOhIHNlZ3VybyBxdWUgdHJhYmFqw7MgZHVyYW50ZSBzdSBhdXNlbmNpYSBwb3IgaGFiZXIgdHJhYmFqYWRvIGhvcmFzIGV4dHJhcz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnwr9Fc3TDoSBzZWd1cm8gcXVlIHRyYWJhasOzIG3DoXMgZGUgMTYgaG9yYXM/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXcnfSA9ICdWaXN0YSBtZW5zdWFsIGRlIHRpZW1wb3MgcmVwb3J0YWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAnTsO6bWVybyBkZSBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnSG9yYXMgZXh0cmFzIHRyYWJhamFkYXMgKGVzdGUgbWVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnVG90YWwgZGUgaG9yYXMgZXh0cmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJ0hvcmFzIHJlc3RhbnRlcyBwYXJhIGF1c2VudGFyc2UgcG9yIGhhYmVyIHRyYWJhamFkbyBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAnVmFjYWNpb25lcyAoZMOtYXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ1ZhY2FjaW9uZXMgKGVzdGUgbWVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodG90YWwpJ30gPSAnVmFjYWNpb25lcyB0b21hZGFzICh0b3RhbCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAnRMOtYXMgZGUgdmFjYWNpb25lcyByZXN0YW50ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICdBdXNlbmNpYSBwb3IgZW5mZXJtZWRhZCAoZMOtYXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnQXVzZW5jaWFzIHBvciBlbmZlcm1lZGFkIChlc3RlIG1lcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAnQXVzZW5jaWFzIHBvciBlbmZlcm1lZGFkICh0b3RhbCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICdNZXMgYW50ZXJpb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBtb250aCd9ID0gJ01lcyBzaWd1aWVudGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2RheSd9ID0gJ0TDrWEgZGUgbGEgc2VtYW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICdIb3JhcyB0cmFiYWphZGFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJ1RvdGFsIGRlIGhvcmFzIHRyYWJhamFkYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAnVmlzdGEgZGUgcHJveWVjdG8gZGUgdXN1YXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICdIb3JhcyAobWVuc3VhbGVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAnSG9yYXMgKHRpZW1wbyBkZSB2aWRhKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmFuZCB0b3RhbCd9ID0gJ1RvdGFsIG5ldG8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAnUmVwb3J0ZSBkZSBob3Jhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aCBOYXZpZ2F0aW9uJ30gPSAnTmF2ZWdhY2nDs24gcG9yIG1lcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAnSXIgYSBmZWNoYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHJlcG9ydHMnfSA9ICdSZXBvcnRlcyBkZSB1c3VhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRobHkgdG90YWwnfSA9ICdUb3RhbCBtZW5zdWFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpZmV0aW1lIHRvdGFsJ30gPSAnVGllbXBvIHRvdGFsIGRlIHZpZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICdBdXNlbmNpYSBwb3IgaGFiZXIgdHJhYmFqYWRvIGhvcmFzIGV4dHJhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ1ZhY2FjaW9uZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ0F1c2VuY2lhIHBvciBlbmZlcm1lZGFkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJ0TDrWFzIGxpYnJlcyByZXN0YW50ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAnUmVwb3J0ZXMgZGUgcHJveWVjdG8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmdQcm9qZWN0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydCd9ID0gJ1JlcG9ydGUgZGUgcHJveWVjdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAnSXIgYWwgcmVzdW1lbiBkZSByZXBvcnRlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ0FjdHVhbG1lbnRlIHNvbG8gc2UgbXVlc3RyYW4gbG9zIHVzdWFyaW9zIGFjdGl2b3MgZW4gZXN0ZSBwcm95ZWN0by4gUGFyYSBjYW1iaWFyIGVzdGUgY29tcG9ydGFtaWVudG8sIHBvciBmYXZvciBhY3R1YWxpemUgbGEgY29uZmlndXJhY2nDs246JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ0FjdHVhbG1lbnRlIHNlIG11ZXN0cmFuIHRvZG9zIGxvcyB1c3VhcmlvcyBkZSBjb250YWJpbGlkYWQgZGUgdGllbXBvLiBQYXJhIGNhbWJpYXIgZXN0ZSBjb21wb3J0YW1pZW50bywgcG9yIGZhdm9yIGFjdHVhbGl6ZSBsYSBjb25maWd1cmFjacOzbjonOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAnTW9kaWZpY2FyIGxhIGNvbmZpZ3VyYWNpw7NuIGRlbCBwcm95ZWN0byBkZSBjb250YWJpbGlkYWQgZGUgdGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAnQWdyZWdhciBwcm95ZWN0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ0lyIGFsIHJlc3VtZW4gZGUgY29uZmlndXJhY2nDs24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICdBZ3JlZ2FyIFByb3llY3RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ01vZGlmaWNhciBsYSBDb25maWd1cmFjacOzbiBkZWwgUHJveWVjdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ1lhIGV4aXN0ZSB1biBwcm95ZWN0byBjb24gZXN0ZSBub21icmUuIFBvciBmYXZvciwgZWxpamEgdW5vIGRpZmVyZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MnfSA9ICdNb2RpZmljYXIgbGEgQ29uZmlndXJhY2nDs24gZGUgbGEgQ29udGFiaWxpZGFkIGRlIFRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ0FncmVnYXIgdGFyZWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICdGaWx0cm8gcGFyYSBwcm95ZWN0b3MsIHRhcmVhcyBvIHVzdWFyaW9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAnTG9zIHBlcsOtb2RvcyBkZSB0aWVtcG8gbm8gcHVlZGVuIHNlciBlbGltaW5hZG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICdMaXN0YSBkZSBQcm95ZWN0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAnTGlzdGEgZGUgVGFyZWFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAnQWdyZWdhciBUYXJlYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICdNb2RpZmljYXIgbGEgQ29uZmlndXJhY2nDs24gZGUgbGEgVGFyZWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ1lhIGV4aXN0ZSB1bmEgdGFyZWEgY29uIGVzdGUgbm9tYnJlLiBQb3IgZmF2b3IsIGVsaWphIHVubyBkaWZlcmVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ0xpc3RhIGRlIFVzdWFyaW9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2V0dGluZ3MnfSA9ICdBanVzdGVzIGRlbCBVc3VhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBzZWUgb3ZlcnRpbWVzJ30gPSAnRWwgdXN1YXJpbyBwdWVkZSB2ZXIgaG9yYXMgZXh0cmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgT3ZlcnRpbWUnfSA9ICdNb3N0cmFyIGhvcmFzIGV4dHJhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBjcmVhdGUgcHJvamVjdHMnfSA9ICdFbCB1c3VhcmlvIHB1ZWRlIGNyZWFyIHByb3llY3Rvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnUGVybWl0aXIgY3JlYWNpw7NuIGRlIHByb3llY3Rvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2tpcCB0aW1lIGFjY291bnRpbmcnfSA9ICdFbCB1c3VhcmlvIHRpZW5lIHB1ZWRlIG9taXRpciBsYSBjb250YWJpbGlkYWQgZGUgdGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHRpbWUgYWNjb3VudGluZyBza2lwcGluZyd9ID0gJ1Blcm1pdGlyIGxhIG9taXNpw7NuIGRlIGxhIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQsIHRpbWUgYWNjb3VudGluZyBpcyBlZmZlY3RpdmVseSBvcHRpb25hbCBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICdTaSBzZSBzZWxlY2Npb25hIGVzdGEgb3BjacOzbiwgbGEgY29udGFiaWxpZGFkIGRlIHRpZW1wbyBzZXLDoSBvcGNpb25hbCBwYXJhIGVsIHVzdWFyaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIHdpbGwgYmUgbm8gd2FybmluZ3MgYWJvdXQgbWlzc2luZyBlbnRyaWVzIGFuZCBubyBlbnRyeSBlbmZvcmNlbWVudC4nfSA9CiAgICAgICAgJ05vIGhhYnLDoSBhZHZlcnRlbmNpYXMgc29icmUgZW50cmFkYXMgZmFsdGFudGVzIHkgbm8gc2UgZXhpZ2lyw6FuIGxhcyBlbnRyYWRhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTcGFucyd9ID0gJ0VzcGFjaW9zIGRlIHRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgQmVnaW4nfSA9ICdQZXJpb2RvIGRlIGluaWNpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnUGVyaW9kbyBkZSBmaW5hbGl6YWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICdEw61hcyBkZSBWYWNhY2lvbmVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIHBlciBXZWVrJ30gPSAnSG9yYXMgcG9yIFNlbWFuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnVGllbXBvIEV4dHJhIEF1dG9yaXphZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJ0ZlY2hhIGRlIGluaWNpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICdQb3IgZmF2b3IgaW5zZXJ0ZSB1bmEgZmVjaGEgdsOhbGlkYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICdGZWNoYSBkZSBmaW5hbGl6YWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnRWwgcGVyaW9kbyBkZSBmaW5hbGl6YWNpw7NuIGRlYmUgc2VyIHBvc3RlcmlvciBhbCBkZSBpbmljaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICdEw61hcyBkZSBhdXNlbmNpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICdIb3JhcyBzZW1hbmFsZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICdIb3JhcyBleHRyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnTm8gc2UgZW5jb250cmFyb24gcGVyaW9kb3MgZGUgdGllbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICdBZ3JlZ2FyIHBlcmlvZG8gZGUgdGllbXBvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ1ZlciByZWdpc3RybyBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICdSZXN1bWVuIGRlICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdEw61hIGFudGVyaW9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgZGF5J30gPSAnRMOtYSBzaWd1aWVudGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAnTm8gc2UgZW5jb250cmFyb24gZGF0b3MgZGUgZXN0ZSBkw61hLic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnfSA9ICfCoU5vIHNlIHB1ZGllcm9uIGludGVudGFyIGxhcyBVbmlkYWRlcyBkZSBUcmFiYWpvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnw5psdGltb3MgUHJveWVjdG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJ8KhTm8gc2UgcHVkaWVyb24gZ3VhcmRhciBsb3MgYWp1c3RlcywgcG9ycXVlIGVsIGTDrWEgc29sbyB0aWVuZSAyNCBob3JhcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJ8KhTm8gc2UgcHVkaWVyb24gZ3VhcmRhciBsYXMgVW5pZGFkZXMgZGUgVHJhYmFqbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICdFc3RhIEZlY2hhIGVzdGEgZnVlcmEgZGVsIGzDrW1pdGUsIHBlcm8gdG9kYXbDrWEgbm8gaGEgaW5zZXJ0YWRvIGVzdGUgZMOtYSwgZW50b25jZXMgdXN0ZWQgdGllbmUgc29sbyB1bmEgb3BvcnR1bmlkYWQgZGUgaW5zZXJ0YXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgV29ya2luZyBEYXlzJ30gPSAnRMOtYXMgTGFib3JhbGVzIEluY29tcGxldG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJ0luc2VyY2nDs24gZXhpdG9zYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJ0Vycm9yIGFsIGluc2VydGFyIG3Dumx0aXBsZXMgZmVjaGFzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICdTZSBpbnNlcnRhcm9uIHNhdGlzZmFjdG9yaWFtZW50ZSBsYXMgZW50cmFkYXMgZGUgdmFyaWFzIGZlY2hhcyEgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICdMYSBmZWNoYSBlbnRyYWRhIGVzIGluY29ycmVjdGEhIExhIGZlY2hhIGRlIGhhIGNhbWJpYWRvIGEgaG95Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICfCoU5vIGhheSB1biBwZXJpb2RvIGRlIHRpZW1wbyBjb25maWd1cmFkbywgb3IgbGEgZmVjaGEgZXNwZWNpZmljYWRhIGVzdMOhIGZ1ZXJhIGRlIGxvcyBwZXJpb2RvcyBkZSB0aWVtcG8gZGVmaW5pZG9zISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY29udGFjdCB0aGUgdGltZSBhY2NvdW50aW5nIGFkbWluaXN0cmF0b3IgdG8gdXBkYXRlIHlvdXIgdGltZSBwZXJpb2RzISd9ID0KICAgICAgICAnwqFQb3IgZmF2b3IgY29udGFjdGUgYWwgYWRtaW5pc3RyYWRvciBkZSBjb250YWJpbGlkYWQgZGUgdGllbXBvcyBwYXJhIGFjdHVhbGl6YXIgc3VzIHBlcmlvZG9zIGRlIHRpZW1wbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ0xvcyDDmmx0aW1vcyBQcm95ZWN0b3MgU2VsZWNjaW9uYWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICdUb2RvcyBsb3MgUHJveWVjdG9zJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmdQcm9qZWN0OiBOZWVkIFByb2plY3RJRCd9ID0gJ1JlcG9ydGVEZVByb3llY3RvczogTmVjZXNpdGEgIlByb2plY3RJRCInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICdSZXBvcnRlIGRlIFByb3llY3Rvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICdSZXBvcnRlcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnfSA9ICfCoU5vIGZ1ZSBwb3NpYmxlIGFjdHVhbGl6YXIgbG9zIGFqdXN0ZXMgZGVsIHVzdWFyaW8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgYWRkZWQhJ30gPSAnwqFQcm95ZWN0byBhw7FhZGlkbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJ8KhUHJveWVjdG8gYWN0dWFsaXphZG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnwqFUYXJlYSBhw7FhZGlkYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayB1cGRhdGVkISd9ID0gJ8KhVGFyZWEgYWN0dWFsaXphZGEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJ8KhRWwgIlVzZXJJRCIgbm8gZXMgdsOhbGlkbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCB1c2VyIGRhdGEhJ30gPSAnwqFObyBzZSBwdWVkZSBpbnNlcnRhciBkYXRvcyBkZWwgdXN1YXJpbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICfCoU5vIGZ1ZSBwb3NpYmxlIGHDsWFkaXIgZWwgcGVyaW9kbyBkZSB0aWVtcG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHRpbmcnfSA9ICdDb25maWd1cmFjacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnwqFVc3VhcmlvIGFjdHVhbGl6YWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGFkZGVkISd9ID0gJ8KhVXN1YXJpbyBhw7FhZGlkbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICdBw7FhZGlyIHVzdWFyaW8gYSBjb250YWJpbGlkYWQgZGUgdGllbXBvcy4uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJ1VzdWFyaW8gTnVldm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIFN0YXR1cyd9ID0gJ0VzdGFkbyBkZWwgUGVyaW9kbyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAnVmlzdGE6IMKhTmVjZXNpdGEgJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTm90aWZpY2F0aW9uL1RpbWVBY2NvdW50aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICdQb3IgZmF2b3IgaW5zZXJ0ZSBzdXMgaG9yYXMgZGUgdHJhYmFqbyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL0luY29tcGxldGVXb3JraW5nRGF5cy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSB3b3JraW5nIGRheXMnfSA9ICdEw61hcyBsYWJvcmFsZXMgaW5jb21wbGV0b3MnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnUG9yIGZhdm9yIHNlbGVjY2lvbmUgYWwgbWVub3MgdW4gZMOtYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ1JlZ2lzdHJvIE1hc2l2byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ1BvciBmYXZvciBlc2NvamEgdW5hIHJhesOzbiBwb3IgYXVzZW5jaWEuJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5J30gPSAnRWxpbWluYXIgUmVnaXN0cm8gZGUgQ29udGFiaWxpZGFkIGRlIFRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ0NvbmZpcm1hciBpbnNlcmNpw7NuJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnTcOzZHVsbyBkZSBub3RpZmljYWNpw7NuIGRlIGxhIGludGVyZmF6IGRlbCBhZ2VudGUsIG5lY2VzYXJpbyBwYXJhIHZpc3VhbGl6YXIgZWwgbsO6bWVybyBkZSBkw61hcyBpbmNvbXBsZXRvcyBkZSB1biB1c3VhcmlvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ05vbWJyZSBwb3IgZGVmZWN0byBwYXJhIGFjY2lvbmVzIG51ZXZhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnTm9tYnJlIHBvciBkZWZlY3RvIHBhcmEgcHJveWVjdG9zIG51ZXZvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICdDb25maWd1cmFjacOzbiBwb3IgZGVmZWN0byBwYXJhIGxhIGZlY2hhIGRlIGZpbmFsaXphY2nDs24uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICdDb25maWd1cmFjacOzbiBwb3IgZGVmZWN0byBwYXJhIGxhIGZlY2hhIGRlIGluaWNpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICdDb25maWd1cmFjacOzbiBwb3IgZGVmZWN0byBwYXJhIGxhIGRlc2NyaXBjacOzbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJ0NvbmZpZ3VyYWNpw7NuIHBvciBkZWZlY3RvIHBhcmEgbGFzIGZhbHRhcyAoZMOtYXMgZGUgYXVzZW5jaWEpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJ0NvbmZpZ3VyYWNpw7NuIHBvciBkZWZlY3RvIHBhcmEgbGFzIGhvcmFzIGV4dHJhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJ0NvbmZpZ3VyYWNpw7NuIHBvciBkZWZlY3RvIHBhcmEgbGFzIGhvcmFzIHNlbWFuYWxlcyBlc3TDoW5kYXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdFc3RhZG8gcG9yIGRlZmVjdG8gcGFyYSBhY2Npb25lcyBudWV2YXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnRXN0YWRvIHBvciBkZWZlY3RvIHBhcmEgcHJveWVjdG9zIG51ZXZvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICdFc3RhZG8gcG9yIGRlZmVjdG8gcGFyYSB1c3VhcmlvcyBudWV2b3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHByb2plY3RzIGZvciB3aGljaCBhIHJlbWFyayBpcyByZXF1aXJlZC4gSWYgdGhlIFJlZ0V4cCBtYXRjaGVzIG9uIHRoZSBwcm9qZWN0LCB5b3UgaGF2ZSB0byBpbnNlcnQgYSByZW1hcmsgdG9vLiBUaGUgUmVnRXhwIHVzZSB0aGUgc214IHBhcmFtZXRlci4nfSA9CiAgICAgICAgJ0RlZmluZSBwYXJhIGN1w6FsZXMgcHJveWVjdG9zIGVzIG9ibGlnYXRvcmlhIGxhIGluc2VyY2nDs24gZGUgY29tZW50YXJpb3MuIFNpIGxhIGV4cHJlc2nDs24gcmVndWxhciBjb2luY2lkZSBjb24gZWwgcHJveWVjdG8sIHNlIHRpZW5lIHF1ZSBlc2NyaWJpciB1biBjb21lbnRhcmlvLiBMYSBleHByZXNpw7NuIHJlZ3VsYXIgdXNhIGVsIHBhcsOhbWV0cm8gc214Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBzdGF0aXN0aWNzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgdGltZSBhY2NvdW50aW5nIGluZm9ybWF0aW9uLid9ID0KICAgICAgICAnRGV0ZXJtaW5hIHNpIGVsIG3Ds2R1bG8gZGUgZXN0YWTDrXN0aWNhcyBkZWJlIGdlbmVyYXIgaW5mb3JtYWNpw7NuIGRlIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ0VkaXRhciBhanVzdGVzIGRlIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgcmVjb3JkLid9ID0gJ0VkaXRhciByZWdpc3RybyBkZSB0aWVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJ0VzcGVjaWZpY2EgZWwgbsO6bWVybyBtw6F4aW1vIGRlIGTDrWFzIHBhcmEgcmVnaXN0cmFyIGhvcmFzIGRlIHRyYWJham8gYXRyYXNhZGFzIChwb3IgZWplbXBsbzogMTAgZMOtYXMgZGUgYW50aWfDvGVkYWQpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICdTaSBzZSBoYWJpbGl0YSwgc29sYW1lbnRlIGxvcyB1c3VhcmlvcyBxdWUgaGFuIHJlZ2lzdHJhZG8gc3VzIHRpZW1wb3MgZW4gZWwgcHJveWVjdG8gc2VsZWNjaW9uYWRvIHNlcsOhbiBtb3N0cmFkb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJ1NpIGVzdMOhbiBoYWJpbGl0YWRvcywgbG9zIGVsZW1lbnRvcyBkZXNwbGVnYWJsZXMgZW4gbGEgcGFudGFsbGEgZGUgZWRpY2nDs24gaGFuIHNpZG8gbW9kaWZpY2Fkb3MgcG9yIGNhbXBvcyBkZSBhdXRvLWNvbXBsZXRhZG8sIGVzdG8gcGFyYSBzZXIgbWFzIG1vZGVybm9zICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICdTaSBlc3TDoSBoYWJpbGl0YWRvLCBlbCBmaWx0cm8gcGFyYSBlbCBwcm95ZWN0byBhbnRlcmlvciBwdWVkZSBzZXIgdXNhZG8gZW4gdmV6IGRlIGRvcyBsaXN0YXMgZGUgcHJveWVjdG9zIChsYXMgYW50ZXJpb3IgeSB0b2RhcyBsYXMgZGVtw6FzKS4gRXN0byBzZSBwb2Ryw6EgdXNhciBzaSwgeSBzb2xvIHNpIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBlc3TDoSBoYWJpbGl0YWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnU2kgZXN0w6EgaGFiaWxpdGFkbywgZWwgZmlsdHJvIHBhcmEgZWwgcHJveWVjdG8gYW50ZXJpb3IgZXN0w6EgYWN0aXZhZG8gcG9yIG9taXNpw7NuIHNpIGhheSBwcm95ZWN0b3MgcHJldmlvcy4gRXN0byBwdWVkZSBzZXIgdXRpbGl6YWRvIHNpLCB5IHNvbG8gc2ksIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgZXN0w6EgaGFiaWxpdGFkby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJ1NpIHNlIGhhYmlsaXRhLCBzZSBsZSBwZXJtaXRpcsOhIGFsIHVzdWFyaW8gcmVnaXN0cmFyICJ2YWNhY2lvbmVzIiwgImF1c2VuY2lhIHBvciBlbmZlcm1lZGFkIiwgImF1c2VuY2lhIHBvciBoYWJlciB0cmFiYWphZG8gaG9yYXMgZXh0cmEiIGVuIG3Dumx0aXBsZXMgZmVjaGFzIGFsIG1pc21vIHRpZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICdOw7ptZXJvIG3DoXhpbW8gZGUgZMOtYXMgbGFib3JhbGVzIGRlc3B1w6lzIGRlIGxvcyBjdWFsZXMgZXMgb2JsaWdhdG9yaW8gcmVwb3J0YXIgbGFzIGhvcmFzIHRyYWJhamFkYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICdOw7ptZXJvIG3DoXhpbW8gZGUgZMOtYXMgbGFib3JhbGVzIHNpbiByZWdpc3RybyBkZSBob3JhcyB0cmFiYWphZGFzIGRlc3B1w6lzIGRlIGxvcyBjdWFsZXMgc2UgbW9zdHJhcsOhIHVuYSBhZHZlcnRlbmNpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICdWaXN0YSBHZW5lcmFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJ1JlcG9ydGUgZGUgdGllbXBvcyBkZWwgcHJveWVjdG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICdFeHByZXNpb25lcyByZWd1bGFyZXMgcGFyYSByZXN0cmluZ2lyIGxhIGxpc3RhIGRlIGFjY2lvbmVzLCBkZSBhY3VlcmRvIGFsIHByb3llY3RvIHNlbGVjY2lvbmFkby4gS2V5IGNvbnRpZW5lIGxhIGV4cHJlc2nDs24gcmVndWxhciBwYXJhIGxvcyBwcm95ZWN0b3MgeSBDb250ZW50LCBsYXMgZXhwcmVzaW9uZXMgcmVndWxhcmVzIHBhcmEgbGFzIGFjY2lvbmVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdFeHByZXNpb25lcyByZWd1bGFyZXMgcGFyYSByZXN0cmluZ2lyIGxhIGxpc3RhIGRlIHByb3llY3RvcywgZGUgYWN1ZXJkbyBhIGxvcyBncnVwb3MgZGUgdXN1YXJpb3MuIEtleSBjb250aWVuZSBsYSBleHByZXNpw7NuIHJlZ3VsYXIgcGFyYSBsb3MgcHJveWVjdG9zIHkgQ29udGVudCwgdW5hIGxpc3RhIGRlIGdydXBvcywgc2VwYXJhZG9zIHBvciBjb21hcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ0VzcGVjaWZpY2Egc2kgZXMgcG9zaWJsZSBpbnNlcnRhciBsYXMgaG9yYXMgdHJhYmFqYWRhcyBzaW4gZGVmaW5pciBsb3MgdGllbXBvcyBkZSBpbmljaW8geSBmaW5hbGl6YWNpw7NuIGRlIGxhcyB0YXJlYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ0VzdGUgbcOzZHVsbyBoYWNlIG9ibGlnYXRvcmlhIGxhIGluc2VyY2nDs24gZGUgaG9yYXMgdHJhYmFqYWRhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICdNw7NkdWxvIGRlIG5vdGlmaWNhY2nDs24gcXVlIG11ZXN0cmEgdW5hIGFkdmVydGVuY2lhIHNpIGhheSBkZW1hc2lhZG9zIGTDrWFzIHNpbiByZWdpc3RybyBkZSBob3JhcyB0cmFiYWphZGFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIEFjY291bnRpbmcnfSA9ICdDb250YWJpbGlkYWQgZGUgVGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJ0VkaXRhciBjb250YWJpbGlkYWQgZGUgdGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICdSZXN1bWVuIGRlIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICdSZXBvcnRlIGRlIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ0FqdXN0ZXMgZGUgY29udGFiaWxpZGFkIGRlIHRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICdWZXIgY29udGFiaWxpZGFkIGRlIHRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnQ29udGFiaWxpZGFkIGRlIHRpZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAnU2UgdXNhIHNpIGFsZ3VuYXMgYWNjaW9uZXMgcmVkdWNlbiBlbCBuw7ptZXJvIGRlIGhvcmFzIHRyYWJhamFkYXMgKHBvciBlamVtcGxvOiBzaSBzw7NsbyBzZSBwYWdhIGxhIG1pdGFkIGRlbCB0aWVtcG8gZGUgdmlhamUgcHVlZGUgZXNwZWNpZmljYXJzZSBLZXkgPT4gVmlhamU7IENvbnRlbnQgPT4gNTApLic7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnQ29uZmlybSBpbnNlcnQnLAogICAgJ0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknLAogICAgJ01hc3MgRW50cnknLAogICAgJ05vJywKICAgICdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScsCiAgICAnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmVzX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnwr9SZWFsbWVudGUgZGVzZWEgZWxpbWluYXIgbGEgQ29udGFiaWxpZGFkIGRlIFRpZW1wbyBkZSBlc3RlIGTDrWE/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJ01vZGlmaWNhciByZWdpc3RybyBkZSBob3Jhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJ0lyIGEgY29uZmlndXJhY2lvbmVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ05hdmVnYWNpw7NuIHBvciBmZWNoYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ0TDrWFzIHNpbiByZWdpc3Rybyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYWxsIGRheXMnfSA9ICdTZWxlY2Npb25hciB0b2RvcyBsb3MgZMOtYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBlbnRyeSd9ID0gJ1JlZ2lzdHJvIG1hc2l2byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIHRoZSByZWFzb24gZm9yIHlvdXIgYWJzZW5jZSBmb3IgdGhlIHNlbGVjdGVkIGRheXMnfSA9CiAgICAgICAgJ1BvciBmYXZvciBlc2NvamEgdW5hIHJhesOzbiBwYXJhIHN1IGF1c2VuY2lhIHBhcmEgbG9zIGTDrWFzIHNlbGVjY2lvbmFkb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICdEZSB2YWNhY2lvbmVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICdBdXNlbnRlIHBvciBlbmZlcm1lZGFkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAnQXVzZW50ZSBwb3IgaGFiZXIgdHJhYmFqYWRvIGhvcmFzIGV4dHJhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJ0xvcyBjYW1wb3MgcmVxdWVyaWRvcyBlc3TDoW4gbWFyY2Fkb3MgY29uIHVuICIqIi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICdFcyBuZWNlc2FyaW8gcXVlIHByb3BvcmNpb25lIHVuYSBob3JhIGRlIGluaWNpbyB5IHVuYSBkZSBmaW5hbGl6YWNpw7NuIG8gdW4gcGVyaW9kby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb3llY3RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICdUYXJlYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICdDb21lbnRhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJ8KhUG9yIGZhdm9yLCBhw7FhZGUgdW4gY29tZW50YXJpbyBjb24gbWFzIGRlIDggY2FyYWN0ZXJlcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ05vIHNlIHBlcm1pdGUgbGEgaW5zZXJjacOzbiBkZSBob3JhcyBuZWdhdGl2YXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdObyBzZSBwZXJtaXRlIGxhIGluc2VyY2nDs24gZGUgaG9yYXMgcmVwZXRpZGFzLiBMYSBob3JhIGRlIGluaWNpbyBlc3TDoSBpbmNsdcOtZGEgZW4gb3RybyBpbnRlcnZhbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICfCoUZvcm1hdG8gbm8gdsOhbGlkbyEgUG9yIGZhdm9yIGludHJvZHV6Y2EgbGFzIGhvcmFzIGNvbiBlbCBmb3JtYXRvIEhIOk1NLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcyNDowMCBlcyBzb2xvIHBlcm1pdGlkbyBjb21vIHRpZW1wbyBmaW5hbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfCoUhvcmEgbm8gdsOhbGlkYSEgVW4gZMOtYSBzb2xvIHRpZW5lIDI0IGhvcmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnTGEgaG9yYSBkZSBmaW5hbGl6YWNpw7NuIGRlYmUgc2VyIHBvc3RlcmlvciBhIGxhIGRlIGluaWNpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdObyBzZSBwZXJtaXRlIGxhIGluc2VyY2nDs24gZGUgaG9yYXMgcmVwZXRpZGFzLiBMYSBob3JhIGRlIGZpbmFsaXphY2nDs24gZXN0w6EgaW5jbHXDrWRhIGVuIG90cm8gaW50ZXJ2YWxvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnwqFQZXJpb2RvIG5vIHbDoWxpZG8hIFVuIGTDrWEgc8OzbG8gdGllbmUgMjQgaG9yYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAnVW4gcGVyaW9kbyB2w6FsaWRvIGRlYmUgc2VyIG1heW9yIGEgY2Vyby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ8KhUGVyaW9kbyBubyB2w6FsaWRvISBObyBzZSBwZXJtaXRlbiBwZXJpb2RvcyBuZWdhdGl2b3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAnQcOxYWRpciB1bmEgZmlsYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ8KhU8OzbG8gc2UgcGVybWl0ZSBlbGVnaXIgdW4gZWxlbWVudG8gZGUgbGEgY2FzaWxsYSBkZSB2ZXJpZmljYWNpw7NuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnwr9Fc3TDoSBzZWd1cm8gcXVlIHRyYWJhasOzIGR1cmFudGUgc3UgYXVzZW5jaWEgcG9yIGVuZmVybWVkYWQ/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAnwr9Fc3TDoSBzZWd1cm8gcXVlIHRyYWJhasOzIGR1cmFudGUgc3VzIHZhY2FjaW9uZXM/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gb3ZlcnRpbWUgbGVhdmU/J30gPQogICAgICAgICfCv0VzdMOhIHNlZ3VybyBxdWUgdHJhYmFqw7MgZHVyYW50ZSBzdSBhdXNlbmNpYSBwb3IgaGFiZXIgdHJhYmFqYWRvIGhvcmFzIGV4dHJhcz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnwr9Fc3TDoSBzZWd1cm8gcXVlIHRyYWJhasOzIG3DoXMgZGUgMTYgaG9yYXM/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXcnfSA9ICdWaXN0YSBtZW5zdWFsIGRlIHRpZW1wb3MgcmVwb3J0YWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAnTsO6bWVybyBkZSBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnSG9yYXMgZXh0cmFzIHRyYWJhamFkYXMgKGVzdGUgbWVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnVG90YWwgZGUgaG9yYXMgZXh0cmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJ0hvcmFzIHJlc3RhbnRlcyBwYXJhIGF1c2VudGFyc2UgcG9yIGhhYmVyIHRyYWJhamFkbyBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAnVmFjYWNpb25lcyAoZMOtYXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ1ZhY2FjaW9uZXMgdG9tYWRhcyAoZXN0ZSBtZXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICdWYWNhY2lvbmVzIHRvbWFkYXMgKHRvdGFsKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgdmFjYXRpb24nfSA9ICdEw61hcyBkZSB2YWNhY2lvbmVzIHJlc3RhbnRlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ0F1c2VuY2lhIHBvciBlbmZlcm1lZGFkIChkw61hcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodGhpcyBtb250aCknfSA9ICdBdXNlbmNpYXMgcG9yIGVuZmVybWVkYWQgKGVzdGUgbWVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0b3RhbCknfSA9ICdBdXNlbmNpYXMgcG9yIGVuZmVybWVkYWQgKHRvdGFsKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBtb250aCd9ID0gJ01lcyBhbnRlcmlvcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IG1vbnRoJ30gPSAnTWVzIHNpZ3VpZW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAnRMOtYSBkZSBsYSBzZW1hbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJ0hvcmFzIHRyYWJhamFkYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAnVG90YWwgZGUgaG9yYXMgdHJhYmFqYWRhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyXCdzIHByb2plY3Qgb3ZlcnZpZXcnfSA9ICdWaXN0YSBkZSBwcm95ZWN0byBkZSB1c3VhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChtb250aGx5KSd9ID0gJ0hvcmFzIChtZW5zdWFsZXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChMaWZldGltZSknfSA9ICdIb3JhcyAodGllbXBvIGRlIHZpZGEpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAnVG90YWwgbmV0byc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICdSZXBvcnRlIGRlIGhvcmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICdOYXZlZ2FjacOzbiBwb3IgbWVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICdJciBhIGZlY2hhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ1JlcG9ydGVzIGRlIHVzdWFyaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJ1RvdGFsIG1lbnN1YWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICdUaWVtcG8gdG90YWwgZGUgdmlkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSBsZWF2ZSd9ID0gJ0F1c2VuY2lhIHBvciBoYWJlciB0cmFiYWphZG8gaG9yYXMgZXh0cmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAnVmFjYWNpb25lcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAnQXVzZW5jaWEgcG9yIGVuZmVybWVkYWQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gcmVtYWluaW5nJ30gPSAnRMOtYXMgbGlicmVzIHJlc3RhbnRlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydHMnfSA9ICdSZXBvcnRlcyBkZSBwcm95ZWN0byc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAnUmVwb3J0ZSBkZSBwcm95ZWN0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXcnfSA9ICdJciBhbCByZXN1bWVuIGRlIHJlcG9ydGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnQWN0dWFsbWVudGUgc29sbyBzZSBtdWVzdHJhbiBsb3MgdXN1YXJpb3MgYWN0aXZvcyBlbiBlc3RlIHByb3llY3RvLiBQYXJhIGNhbWJpYXIgZXN0ZSBjb21wb3J0YW1pZW50bywgcG9yIGZhdm9yIGFjdHVhbGl6ZSBsYSBjb25maWd1cmFjacOzbjonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IGFsbCB0aW1lIGFjY291bnRpbmcgdXNlcnMgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnQWN0dWFsbWVudGUgc2UgbXVlc3RyYW4gdG9kb3MgbG9zIHVzdWFyaW9zIGRlIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG8uIFBhcmEgY2FtYmlhciBlc3RlIGNvbXBvcnRhbWllbnRvLCBwb3IgZmF2b3IgYWN0dWFsaXplIGxhIGNvbmZpZ3VyYWNpw7NuOic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICdNb2RpZmljYXIgbGEgY29uZmlndXJhY2nDs24gZGVsIHByb3llY3RvIGRlIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAnQWdyZWdhciBwcm95ZWN0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ0lyIGFsIHJlc3VtZW4gZGUgY29uZmlndXJhY2nDs24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICdBZ3JlZ2FyIFByb3llY3RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ01vZGlmaWNhciBsYSBDb25maWd1cmFjacOzbiBkZWwgUHJveWVjdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ1lhIGV4aXN0ZSB1biBwcm95ZWN0byBjb24gZXN0ZSBub21icmUuIFBvciBmYXZvciwgZWxpamEgdW5vIGRpZmVyZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MnfSA9ICdNb2RpZmljYXIgbGEgQ29uZmlndXJhY2nDs24gZGUgbGEgQ29udGFiaWxpZGFkIGRlIFRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ0FncmVnYXIgdGFyZWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICdGaWx0cm8gcGFyYSBwcm95ZWN0b3MsIHRhcmVhcyBvIHVzdWFyaW9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJ0xvcyBwZXLDrW9kb3MgZGUgdGllbXBvIG5vIHNlIHB1ZWRlbiBib3JyYXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJ0xpc3RhIGRlIFByb3llY3Rvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICdMaXN0YSBkZSBUYXJlYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICdBZ3JlZ2FyIFRhcmVhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ01vZGlmaWNhciBsYSBDb25maWd1cmFjacOzbiBkZSBsYSBUYXJlYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnWWEgZXhpc3RlIHVuYSB0YXJlYSBjb24gZXN0ZSBub21icmUuIFBvciBmYXZvciwgZWxpamEgdW5vIGRpZmVyZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAnTGlzdGEgZGUgVXN1YXJpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZXR0aW5ncyd9ID0gJ0FqdXN0ZXMgZGUgdXN1YXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2VlIG92ZXJ0aW1lcyd9ID0gJ0VsIHVzdWFyaW8gcHVlZGUgdmVyIGhvcmFzIGV4dHJhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnTW9zdHJhciBob3JhcyBleHRyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gY3JlYXRlIHByb2plY3RzJ30gPSAnRWwgdXN1YXJpbyB0aWVuZSBwZXJtaXRpZG8gY3JlYXIgcHJveWVjdG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHByb2plY3QgY3JlYXRpb24nfSA9ICdQZXJtaXRpciBjcmVhY2nDs24gZGUgcHJveWVjdG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBza2lwIHRpbWUgYWNjb3VudGluZyd9ID0gJ0VsIHVzdWFyaW8gZXN0w6EgYXV0b3JpemFkbyBhIGNvbnRhYmlsaXphciBlbCB0aWVtcG8gJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHRpbWUgYWNjb3VudGluZyBza2lwcGluZyd9ID0gJ1Blcm1pdGlyIHNhbHRhciBsYSBjb250YWJpbGl6YWNpw7NuIGRlbCB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQsIHRpbWUgYWNjb3VudGluZyBpcyBlZmZlY3RpdmVseSBvcHRpb25hbCBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICdTaSBlc3RhIG9wY2nDs24gZXN0w6EgbWFyY2FkYSwgbGEgY29udGFiaWxpemFjacOzbiBkZWwgdGllbXBvIHNlIGNvbnZpZXJ0ZSBlbiBvcGNpb25hbCBwYXJhIGVsIHVzdWFyaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2lsbCBiZSBubyB3YXJuaW5ncyBhYm91dCBtaXNzaW5nIGVudHJpZXMgYW5kIG5vIGVudHJ5IGVuZm9yY2VtZW50Lid9ID0KICAgICAgICAnTm8gaGFicsOhIGFkdmVydGVuY2lhcyBhY2VyY2EgZGUgbGFzIGVudHJhZGFzIHF1ZSBmYWx0YW4geSBubyBoYWJyw6EgZW50cmFkYXMgZGUgYXBsaWNhY2nDs24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTcGFucyd9ID0gJ0xhcHNvIGRlIHRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgQmVnaW4nfSA9ICdQZXJpb2RvIGRlIGluaWNpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnUGVyaW9kbyBkZSBmaW5hbGl6YWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICdEw61hcyBkZSBWYWNhY2lvbmVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIHBlciBXZWVrJ30gPSAnSG9yYXMgcG9yIFNlbWFuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnVGllbXBvIEV4dHJhIEF1dG9yaXphZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJ0ZlY2hhIGRlIGluaWNpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICdQb3IgZmF2b3IgaW5zZXJ0ZSB1bmEgZmVjaGEgdsOhbGlkYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICdGZWNoYSBkZSBmaW5hbGl6YWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnRWwgcGVyaW9kbyBkZSBmaW5hbGl6YWNpw7NuIGRlYmUgc2VyIHBvc3RlcmlvciBhbCBkZSBpbmljaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICdEw61hcyBkZSBhdXNlbmNpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICdIb3JhcyBzZW1hbmFsZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICdIb3JhcyBleHRyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnTm8gc2UgZW5jb250cmFyb24gcGVyaW9kb3MgZGUgdGllbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICdBZ3JlZ2FyIHBlcmlvZG8gZGUgdGllbXBvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ1ZlciByZWdpc3RybyBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICdSZXN1bWVuIGRlICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdEw61hIGFudGVyaW9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgZGF5J30gPSAnRMOtYSBzaWd1aWVudGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAnTm8gc2UgZW5jb250cmFyb24gZGF0b3MgZGUgZXN0ZSBkw61hLic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnfSA9ICfCoU5vIHNlIHB1ZWRlbiBpbnNlcnRhciB1bmlkYWRlcyBkZSB0cmFiYWpvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnw5psdGltb3MgUHJveWVjdG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJ8KhTm8gc2UgcHVlZGUgZ3VhcmRhciBsYSBjb25maWd1cmFjacOzbiwgcG9ycXVlIHVuIGTDrWEgc8OzbG8gdGllbmUgMjQgaG9yYXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICfCoU5vIHNlIHB1ZWRlbiBib3JyYXIgdW5pZGFkZXMgZGUgdHJhYmFqbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICdFc3RhIGZlY2hhIGVzdMOhIGZ1ZXJhIGRlbCBsw61taXRlLCBwZXJvIG5vIGhhIGluc2VydGFkbyB0b2RhdsOtYSBlc3RlIGTDrWEsIHBvciBsbyBxdWUgb2J0aWVuZSB1bmEgKCDCoXNvbG8gdW5hISkgb3BvcnR1bmlkYWQgZGUgaW5zZXJ0YXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICdEw61hcyBMYWJvcmFsZXMgSW5jb21wbGV0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAnwqFJbnNlcmNpw7NuIGV4aXRvc2EhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICfCoUVycm9yIGFsIGluc2VydGFyIG3Dumx0aXBsZXMgZmVjaGFzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICfCoVNlIGhhbiBpbnNlcnRhZG8gc2F0aXNmYWN0b3JpYW1lbnRlIGVudHJhZGFzIHBhcmEgdmFyaWFzIGZlY2hhcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ8KhTGEgZmVjaGEgaW50cm9kdWNpZGEgbm8gZXJhIHbDoWxpZGEhIExhIGZlY2hhIHNlIGNhbWJpw7MgYSBob3kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kIGNvbmZpZ3VyZWQsIG9yIHRoZSBzcGVjaWZpZWQgZGF0ZSBpcyBvdXRzaWRlIG9mIHRoZSBkZWZpbmVkIHRpbWUgcGVyaW9kcy4nfSA9CiAgICAgICAgJ1NpbiBwZXLDrW9kbyBkZSB0aWVtcG8gY29uZmlndXJhZG8sIG8gbGEgZmVjaGEgZXNwZWNpZmljYWRhIGVzdMOhIGZ1ZXJhIGRlIGxvcyBwZXLDrW9kb3MgZGUgdGllbXBvIGRlZmluaWRvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJ8KhUG9yIGZhdm9yLCBww7NuZ2FzZSBlbiBjb250YWN0byBjb24gZWwgYWRtaW5pc3RyYWRvciBkZSBjb250YWJpbGlkYWQgZGUgdGllbXBvIHBhcmEgYWN0dWFsaXphciBzdXMgcGVyw61vZG9zIGRlIHRpZW1wbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ8OabHRpbW9zIFByb3llY3RvcyBzZWxlY2Npb25hZG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJ1RvZG9zIGxvcyBQcm95ZWN0b3MnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnUmVwb3J0aW5nUHJvamVjdDogbmVjZXNpdGEgUHJvamVjdElEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnUHJveWVjdG8gZGUgUmVwb3J0ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAnUmVwb3J0ZXMnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gdXBkYXRlIHVzZXIgc2V0dGluZ3MhJ30gPSAnwqFObyBzZSBwdWVkZSBhY3R1YWxpemFyIGxhIGNvbmZpZ3VyYWNpw7NuIGRlbCB1c3VhcmlvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJ8KhUHJveWVjdG8gYcOxYWRpZG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdXBkYXRlZCEnfSA9ICfCoVByb3llY3RvIGFjdHVhbGl6YWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJ8KhVGFyZWEgYcOxYWRpZGEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICfCoVRhcmVhIGFjdHVhbGl6YWRhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgVXNlcklEIGlzIG5vdCB2YWxpZCEnfSA9ICfCoUxhIElEIGRlIHVzdWFyaW8gbm8gZXMgdmFsaWRhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICfCoU5vIHB1ZWRlIGluc2VydGFyIGRhdG9zIGRlIHVzdWFyaW8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byBhZGQgdGltZSBwZXJpb2QhJ30gPSAnwqFObyBzZSBwdWVkZSBhw7FhZGlyIHVuIHBlcsOtb2RvIGRlIHRpZW1wbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0dGluZyd9ID0gJ0FqdXN0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnwqFVc3VhcmlvIGFjdHVhbGl6YWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGFkZGVkISd9ID0gJ8KhVXN1YXJpbyBhw7FhZGlkbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICdBw7FhZGlyIHVuIHVzdWFyaW8gYSBsYSBjb250YWJpbGlkYWQgZGVsIHRpZW1wby4uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJ051ZXZvIFVzdWFyaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIFN0YXR1cyd9ID0gJ0VzdGFkbyBkZWwgcGVyw61vZG8nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJ1ZlcjogwqFOZWNlc2l0YSAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ob3RpZmljYXRpb24vVGltZUFjY291bnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ8KhUG9yIGZhdm9yIGluc2VydGUgc3VzIGhvcmFzIGRlIHRyYWJham8hJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAnRMOtYXMgbGFib3JhbGVzIGluY29tcGxldG9zJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ8KhUG9yIGZhdm9yIHNlbGVjY2lvbmUgYWwgbWVub3MgdW4gZMOtYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ1JlZ2lzdHJvIE1hc2l2byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ8KhUG9yIGZhdm9yIGVzY29qYSB1bmEgcmF6w7NuIHBvciBhdXNlbmNpYSEnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICdFbGltaW5hciBSZWdpc3RybyBkZSBDb250YWJpbGlkYWQgZGUgVGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAnQ29uZmlybWFyIGluc2VyY2nDs24nOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICdNw7NkdWxvIGRlIG5vdGlmaWNhY2nDs24gZGUgbGEgaW50ZXJmYXogZGVsIGFnZW50ZSwgbmVjZXNhcmlvIHBhcmEgdmlzdWFsaXphciBlbCBuw7ptZXJvIGRlIGTDrWFzIGluY29tcGxldG9zIGRlIHVuIHVzdWFyaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnTm9tYnJlIHBvciBkZWZlY3RvIHBhcmEgYWNjaW9uZXMgbnVldmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdOb21icmUgcG9yIGRlZmVjdG8gcGFyYSBwcm95ZWN0b3MgbnVldm9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJ0NvbmZpZ3VyYWNpw7NuIHBvciBkZWZlY3RvIHBhcmEgbGEgZmVjaGEgZGUgZmluYWxpemFjacOzbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJ0NvbmZpZ3VyYWNpw7NuIHBvciBkZWZlY3RvIHBhcmEgbGEgZmVjaGEgZGUgaW5pY2lvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRlc2NyaXB0aW9uLid9ID0gJ0NvbmZpZ3VyYWNpw7NuIHBvciBkZWZlY3RvIHBhcmEgbGEgZGVzY3JpcGNpw7NuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnQ29uZmlndXJhY2nDs24gcG9yIGRlZmVjdG8gcGFyYSBsYXMgZmFsdGFzIChkw61hcyBkZSBhdXNlbmNpYSkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnQ29uZmlndXJhY2nDs24gcG9yIGRlZmVjdG8gcGFyYSBsYXMgaG9yYXMgZXh0cmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAnQ29uZmlndXJhY2nDs24gcG9yIGRlZmVjdG8gcGFyYSBsYXMgaG9yYXMgc2VtYW5hbGVzIGVzdMOhbmRhci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ0VzdGFkbyBwb3IgZGVmZWN0byBwYXJhIGFjY2lvbmVzIG51ZXZhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdFc3RhZG8gcG9yIGRlZmVjdG8gcGFyYSBwcm95ZWN0b3MgbnVldm9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ0VzdGFkbyBwb3IgZGVmZWN0byBwYXJhIHVzdWFyaW9zIG51ZXZvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnRGVmaW5lIHBhcmEgY3XDoWxlcyBwcm95ZWN0b3MgZXMgb2JsaWdhdG9yaWEgbGEgaW5zZXJjacOzbiBkZSBjb21lbnRhcmlvcy4gU2kgbGEgZXhwcmVzacOzbiByZWd1bGFyIGNvaW5jaWRlIGNvbiBlbCBwcm95ZWN0bywgc2UgdGllbmUgcXVlIGVzY3JpYmlyIHVuIGNvbWVudGFyaW8uIExhIGV4cHJlc2nDs24gcmVndWxhciB1c2EgZWwgcGFyw6FtZXRybyBzbXguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICdEZXRlcm1pbmEgc2kgZWwgbcOzZHVsbyBkZSBlc3RhZMOtc3RpY2FzIGRlYmUgZ2VuZXJhciBpbmZvcm1hY2nDs24gZGUgY29udGFiaWxpZGFkIGRlIHRpZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnRWRpdGFyIGxhIGNvbmZpZ3VyYWNpw7NuIGRlIENvbnRhYmlsaWRhZCBkZSB0aWVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnRWRpdGFyIHJlZ2lzdHJvIGRlIHRpZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAnRXNwZWNpZmljYSBlbCBuw7ptZXJvIG3DoXhpbW8gZGUgZMOtYXMgcGFyYSByZWdpc3RyYXIgaG9yYXMgZGUgdHJhYmFqbyBhdHJhc2FkYXMgKHBvciBlamVtcGxvOiAxMCBkw61hcyBkZSBhbnRpZ8O8ZWRhZCkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJ1NpIHNlIGhhYmlsaXRhLCBzb2xhbWVudGUgbG9zIHVzdWFyaW9zIHF1ZSBoYW4gcmVnaXN0cmFkbyBzdXMgdGllbXBvcyBlbiBlbCBwcm95ZWN0byBzZWxlY2Npb25hZG8gc2Vyw6FuIG1vc3RyYWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAnU2kgc2UgaGFiaWxpdGEsIGxvcyBlbGVtZW50b3MgZGVzcGxlZ2FibGVzIGVuIGxhIHBhbnRhbGxhIGRlIGVkaWNpw7NuIHNlIGNhbWJpYXJhbiBhIG1vcmRlcm5vcyBjYW1wb3MgZGUgYXV0b2NvbXBsZXRhZG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJ1NpIGVzdMOhIGhhYmlsaXRhZG8sIGVsIGZpbHRybyBwYXJhIGxvcyBwcm95ZWN0b3MgYW50ZXJpb3JlcyBwdWVkZSB1c2Fyc2UgZW4gbHVnYXIgZGUgZG9zIGxpc3RhcyBkZSBwcm95ZWN0b3MgKMO6bHRpbW8geSB0b2RvcykuIFNlIHBvZHLDrWEgdXNhciBzb2xvIHNpICBpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBlc3TDoSBoYWJpbGl0YWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnU2kgZXN0w6EgaGFiaWxpdGFkbywgZWwgZmlsdHJvIHBhcmEgbG9zIHByb3llY3RvcyBwcmV2aW9zIGVzdMOhIGFjdGl2byBwb3IgZGVmZWN0byBzaSBleGlzdGVuIHByb3llY3RvcyBwcmV2aW9zLiBTZSBwb2Ryw61hIHVzYXIgc29sbyBzaSBFbmFibGVBdXRvQ29tcGxldGlvbiB5IFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgZXN0w6EgaGFiaWxpdGFkby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJ1NpIHNlIGhhYmlsaXRhLCBzZSBsZSBwZXJtaXRpcsOhIGFsIHVzdWFyaW8gcmVnaXN0cmFyICJ2YWNhY2lvbmVzIiwgImF1c2VuY2lhIHBvciBlbmZlcm1lZGFkIiwgImF1c2VuY2lhIHBvciBoYWJlciB0cmFiYWphZG8gaG9yYXMgZXh0cmEiIGVuIG3Dumx0aXBsZXMgZmVjaGFzIGFsIG1pc21vIHRpZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICdOw7ptZXJvIG3DoXhpbW8gZGUgZMOtYXMgbGFib3JhbGVzIGRlc3B1w6lzIGRlIGxvcyBjdWFsZXMgZXMgb2JsaWdhdG9yaW8gcmVwb3J0YXIgbGFzIGhvcmFzIHRyYWJhamFkYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICdOw7ptZXJvIG3DoXhpbW8gZGUgZMOtYXMgbGFib3JhbGVzIHNpbiByZWdpc3RybyBkZSBob3JhcyB0cmFiYWphZGFzIGRlc3B1w6lzIGRlIGxvcyBjdWFsZXMgc2UgbW9zdHJhcsOhIHVuYSBhZHZlcnRlbmNpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICdWaXN0YSBnZW5lcmFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJ1JlcG9ydGUgZGVsIHRpZW1wbyBkZWwgcHJveWVjdG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICdFeHByZXNpb25lcyByZWd1bGFyZXMgcGFyYSByZXN0cmluZ2lyIGxhIGxpc3RhIGRlIGFjY2lvbmVzLCBkZSBhY3VlcmRvIGFsIHByb3llY3RvIHNlbGVjY2lvbmFkby4gS2V5IGNvbnRpZW5lIGxhIGV4cHJlc2nDs24gcmVndWxhciBwYXJhIGxvcyBwcm95ZWN0b3MgeSBDb250ZW50LCBsYXMgZXhwcmVzaW9uZXMgcmVndWxhcmVzIHBhcmEgbGFzIGFjY2lvbmVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdFeHByZXNpb25lcyByZWd1bGFyZXMgcGFyYSByZXN0cmluZ2lyIGxhIGxpc3RhIGRlIHByb3llY3RvcywgZGUgYWN1ZXJkbyBhIGxvcyBncnVwb3MgZGUgdXN1YXJpb3MuIEtleSBjb250aWVuZSBsYSBleHByZXNpw7NuIHJlZ3VsYXIgcGFyYSBsb3MgcHJveWVjdG9zIHkgQ29udGVudCwgdW5hIGxpc3RhIGRlIGdydXBvcywgc2VwYXJhZG9zIHBvciBjb21hcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ0VzcGVjaWZpY2Egc2kgZXMgcG9zaWJsZSBpbnNlcnRhciBsYXMgaG9yYXMgdHJhYmFqYWRhcyBzaW4gZGVmaW5pciBsb3MgdGllbXBvcyBkZSBpbmljaW8geSBmaW5hbGl6YWNpw7NuIGRlIGxhcyB0YXJlYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ0VzdGUgbcOzZHVsbyBoYWNlIG9ibGlnYXRvcmlhIGxhIGluc2VyY2nDs24gZGUgaG9yYXMgdHJhYmFqYWRhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICdNw7NkdWxvIGRlIG5vdGlmaWNhY2nDs24gcXVlIG11ZXN0cmEgdW5hIGFkdmVydGVuY2lhIHNpIGhheSBkZW1hc2lhZG9zIGTDrWFzIHNpbiByZWdpc3RybyBkZSBob3JhcyB0cmFiYWphZGFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIEFjY291bnRpbmcnfSA9ICdDb250YWJpbGlkYWQgZGUgVGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJ0VkaXRhciBjb250YWJpbGlkYWQgZGUgdGllbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICdSZXN1bWVuIGRlIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICdSZXBvcnRlIGRlIGNvbnRhYmlsaWRhZCBkZSB0aWVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ0FqdXN0ZXMgZGUgY29udGFiaWxpZGFkIGRlIHRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICdWZXIgY29udGFiaWxpZGFkIGRlIHRpZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnQ29udGFiaWxpZGFkIGRlIHRpZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAnU2UgdXNhIHNpIGFsZ3VuYXMgYWNjaW9uZXMgcmVkdWNlbiBlbCBuw7ptZXJvIGRlIGhvcmFzIHRyYWJhamFkYXMgKHBvciBlamVtcGxvOiBzaSBzw7NsbyBzZSBwYWdhIGxhIG1pdGFkIGRlbCB0aWVtcG8gZGUgdmlhamUgcHVlZGUgZXNwZWNpZmljYXJzZSBLZXkgPT4gVmlhamU7IENvbnRlbnQgPT4gNTApLic7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnQ29uZmlybSBpbnNlcnQnLAogICAgJ0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknLAogICAgJ01hc3MgRW50cnknLAogICAgJ05vJywKICAgICdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScsCiAgICAnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmZyX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnVm91bGV6LXZvdXMgdnJhaW1lbnQgc3VwcHJpbWVyIGxhIGdlc3Rpb24gZGVzIHRlbXBzIHBvdXIgY2Ugam91ciA/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJ0FsbGVyIGF1eCBwYXJhbcOodHJlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAnU8OpbGVjdGlvbm5lciB0b3VzIGxlcyBqb3Vycyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnVmV1aWxsZXogY2hvaXNpciBsYSByYWlzb24gZGUgdm90cmUgYWJzZW5jZSBwb3VyIGxlcyBqb3VycyBzw6lsZWN0aW9ubsOpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiB2YWNhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBzaWNrIGxlYXZlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAnTGVzIGNoYW1wcyByZXF1aXMgc29udCBtYXJxdcOpcyBhdmVjIHVuZSDDqXRvaWxlICIqIi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb2pldCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAnVMOiY2hlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFyayd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYWRkIGEgcmVtYXJrIHdpdGggbW9yZSB0aGFuIDggY2hhcmFjdGVycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdGb3JtYXQgaW52YWxpZGUgISBWZXVpbGxleiBlbnRyZXIgdW4gaG9yYWlyZSBhdSBmb3JtYXQgSEg6TU0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ1RlbXBzIGludmFsaWRlICEgVW4gam91ciBuXCdhIHF1ZSAyNCBoZXVyZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0aGlzIG1vbnRoKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgTGVhdmUgKERheXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBtb250aCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IG1vbnRoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChtb250aGx5KSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aCBOYXZpZ2F0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRobHkgdG90YWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHByb2plY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3Mgb3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRhc2snfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgTGlzdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgVGFzayd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIExpc3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2VlIG92ZXJ0aW1lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBjcmVhdGUgcHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2tpcCB0aW1lIGFjY291bnRpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgdGltZSBhY2NvdW50aW5nIHNraXBwaW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoaXMgb3B0aW9uIGlzIHNlbGVjdGVkLCB0aW1lIGFjY291bnRpbmcgaXMgZWZmZWN0aXZlbHkgb3B0aW9uYWwgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIHdpbGwgYmUgbm8gd2FybmluZ3MgYWJvdXQgbWlzc2luZyBlbnRyaWVzIGFuZCBubyBlbnRyeSBlbmZvcmNlbWVudC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNwYW5zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMZWF2ZSBEYXlzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgVGltZSBSZWNvcmQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgZGF5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgZGF5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2F2ZSBzZXR0aW5ncywgYmVjYXVzZSBhIGRheSBoYXMgb25seSAyNCBob3VycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICdJbnNlcnRpb24gcsOpdXNzaWUgISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAnRXJyZXVyIGVuIGluc8OpcmFudCBkZXMgZGF0ZXMgbXVsdGlwbGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzISd9ID0gJ0Fqb3V0IGRlcyBkYXRlcyBtdWx0aXBsZXMgcsOpdXNzaSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAnUmFwcG9ydCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0dGluZyd9ID0gJ1BhcmFtw6h0cmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB1c2VyIHRvIHRpbWUgYWNjb3VudGluZy4uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nVmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldzogTmVlZCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ob3RpZmljYXRpb24vVGltZUFjY291bnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ01lcmNpIGRcJ2luZGlxdWVyIHZvcyBob3JhaXJlcyBkZSB0cmF2YWlsICEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL0luY29tcGxldGVXb3JraW5nRGF5cy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSB3b3JraW5nIGRheXMnfSA9ICcnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgRW50cnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICcnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlybSBpbnNlcnQnfSA9ICcnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGlzIGFjdGl2ZSBieSBkZWZhdWx0IGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBFbmFibGVBdXRvQ29tcGxldGlvbiBhbmQgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBhcmUgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcuJ30gPSAnVnVlIGRcJ2Vuc2VtYmxlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBwcm9qZWN0IGxpc3QgYWNjb3JkaW5nIHRvIHVzZXIgZ3JvdXBzLiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3Vwcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgaWYgd29ya2luZyBob3VycyBjYW4gYmUgaW5zZXJ0ZWQgd2l0aG91dCBzdGFydCBhbmQgZW5kIHRpbWVzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5vdGlmaWNhdGlvbiBtb2R1bGUgZ2l2ZXMgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0b28gbWFueSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIEFjY291bnRpbmcnfSA9ICdHZXN0aW9uIGRlcyB0ZW1wcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnQ29uZmlybSBpbnNlcnQnLAogICAgJ0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknLAogICAgJ01hc3MgRW50cnknLAogICAgJ05vJywKICAgICdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScsCiAgICAnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmdsX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnUXVlcmUgcmVhbG1lbnRlIGJvcnJhciBvIFRlbXBvIENvbnRhYmlsaXphZG8gZGVzdGUgZMOtYT8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnRWRpdGUgUmV4aXN0cm8gVGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICdJciDDoSBjb25maWd1cmFjacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICdOYXZlZ2FjacOzbiBlbnRyZSBkYXRhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ0TDrWFzIHNlbiBlbnRyYWRhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYWxsIGRheXMnfSA9ICdTZWxlY2Npb25hciB0b2RvcyBvcyBkw61hcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAnSW50cm9kdWNpw7NuIGVuIG1hc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICdFc2NvbGxhIG8gbW90aXZvIGRhIHPDumEgYXVzZW5jaWEgbm9zIGTDrWFzIHNlbGVjY2lvbmFkb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICdWYWNhY2nDs25zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICdMaWNlbnphIHBvciBlbmZlcm1pZGFkZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ0VuIHBlcm1pc28gZGUgaG9yYXMgZXh0cmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAnT3MgY2FtcG9zIG9icmlnYXRvcmlvcyBlc3TDoW4gbWFyY2Fkb3MgY3VuIMKrKsK7Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ0hhaSBxdWUgZGFyIHVuaGEgaG9yYSBkZSBpbmljaW8gZSBkZSByZW1hdGUgb3UgdW4gcGVyw61vZG8gZGUgdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QnfSA9ICdQcm94ZWN0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAnVGFyZWZhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFyayd9ID0gJ09ic2VydmFjacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYWRkIGEgcmVtYXJrIHdpdGggbW9yZSB0aGFuIDggY2hhcmFjdGVycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ05vbiBzZSBwZXJtaXRlbiBob3JhcyBuZWdhdGl2YXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdOb24gc2UgcGVybWl0ZW4gaG9yYXMgcmVwZXRpZGFzLiBBIGhvcmEgZGUgaW5pY2lvIGNvaW5jaWRlIGNvbiBvdXRybyBpbnRlcnZhbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdPIGZvcm1hdG8gw6kgaW5jb3JyZWN0byEgSW50cm9kdXphIHVuaGEgaG9yYSBubyBmb3JtYXRvIEhIOk1NLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcyNDowMCBzw7MgZXN0w6EgcGVybWl0aWRvIGNvbW8gaG9yYSBkZSBmaW5hbGl6YWNpw7NuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ0EgaG9yYSDDqSBpbmNvcnJlY3RhISBVbiBkw61hIHPDsyB0ZW4gMjQgaG9yYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICdBIGhvcmEgZGUgZmluYWxpemFjacOzbiBoYSBkZSBzZXIgcG9zdGVyaW9yIMOhIGRlIGluaWNpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdOb24gc2UgcGVybWl0ZW4gaG9yYXMgcmVwZXRpZGFzLiBBIGhvcmEgZGUgZmluYWxpemFjacOzbiBjb2luY2lkZSBjb24gb3V0cm8gaW50ZXJ2YWxvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnTyBwZXLDrW9kbyDDqSBpbmNvcnJlY3RvISBVbiBkw61hIHPDsyB0ZW4gMjQgaG9yYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAnVW4gcGVyw61vZG8gY29ycmVjdG8gaGEgZGUgc2VyIG1haW9yIGRlIGNlcm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdPIHBlcsOtb2RvIMOpIGluY29ycmVjdG8hIE5vbiBzZSBwZXJtaXRlbiBwZXLDrW9kb3MgbmVnYXRpdm9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ0VuZ2FkaXIgdW5oYSBmaWxhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAnU8OzIMOpIHBvc8OtYmVsIHNlbGVjY2lvbmFyIHVuIGVsZW1lbnRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnQ29uZmlybWEgcXVlIHRyYWJhbGxvdSBtZW50cmVzIHRpw7FhIGxpY2VuemEgcG9yIGVuZmVybWlkYWRlPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHZhY2F0aW9uPyd9ID0gJ0NvbmZpcm1hIHF1ZSB0cmFiYWxsb3UgbWVudHJlcyBlc3RhYmEgZGUgdmFjYWNpw7Nucz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ0NvbmZpcm1hIHF1ZSB0cmFiYWxsb3UgbWVudHJlcyB0acOxYSBwZXJtaXNvIHBvciBob3JhcyBleHRyYXM/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJ0NvbmZpcm1hIHF1ZSB0cmFiYWxsb3UgbcOhaXMgZGUgZGV6YXNlaXMgaG9yYXM/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXcnfSA9ICdWaXN0YSB4ZXJhbCBtZW5zdWFsIGRlIHJlcG9ydGUgZGUgdGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJ0hvcmFzIGV4dHJhIChob3JhcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnSG9yYXMgZXh0cmEgKGVzdGUgbWVzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnSG9yYXMgZXh0cmEgKHRvdGFsKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUnfSA9ICdQZXJtaXNvIHBvciBob3JhcyBleHRyYXMgcmVzdGFudGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIChEYXlzKSd9ID0gJ1ZhY2FjacOzbnMgKGTDrWFzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCknfSA9ICdWYWNhY2nDs25zIGNvbGxpZGFzIChlc3RlIG1lcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJ1ZhY2FjacOzbnMgY29sbGlkYXMgKHRvdGFpcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAnVmFjYWNpw7NucyByZXN0YW50ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICdMaWNlbnphIHBvciBlbmZlcm1pZGFkZSAoZMOtYXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnTGljZW56YXMgcG9yIGVuZmVybWlkYWRlIGNvbGxpZGFzIChlc3RlIG1lcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAnTGljZW56YXMgcG9yIGVuZmVybWlkYWRlIGNvbGxpZGFzICh0b3RhaXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnTWVzIGFudGVyaW9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICdNZXMgc2VndWludGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2RheSd9ID0gJ0TDrWEgZGEgc2VtYW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICdIb3JhcyBsYWJvcmFpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICdIb3JhcyB0cmFiYWxsYWRhcyB0b3RhaXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAnVmlzdGEgeGVyYWwgZG8gcHJveGVjdG8gZG8gdXN1YXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICdIb3JhcyAocG9yIG1lcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ0hvcmFzICh2aWRhKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmFuZCB0b3RhbCd9ID0gJ1RvdGFsIGFjdW11bGFkbyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICdSZXBvcnRlIHRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICdOYXZlZ2FjacOzbiBwb3IgbWVzZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gZGF0ZSd9ID0gJ0lyIGEgdW5oYSBkYXRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ0luZm9ybWVzIGRlIHVzdWFyaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJ1RvdGFsIG1lbnN1YWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICdUb3RhbCBkYSB2aWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAnTGljZW56YSBwb3IgaG9yYXMgZXh0cmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24nfSA9ICdWYWNhY2nDs25zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICdMaWNlbnphIHBvciBlbmZlcm1pZGFkZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICdWYWNhY2nDs25zIHJlc3RhbnRlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydHMnfSA9ICdJbmZvcm1lcyBkZSBwcm94ZWN0b3MnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmdQcm9qZWN0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydCd9ID0gJ0luZm9ybWUgZGUgcHJveGVjdG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJ0lyIMOhIHZpc3RhIHhlcmFsIGRlIGluZm9ybWVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnQWN0dWFsbWVudGUgc8OzIHVzdWFyaW9zIGFjdGl2b3MgbmVzdGUgcHJveGVjdG8gc29uIG1vc3RyYWRvcy4gUGFyYSBjYW1iaWFyIGVzdGUgY29tcG9ydGFtZW50bywgcG9yIGZhdm9yIGFjdHVhbGljZSBvIGF4dXN0ZTonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IGFsbCB0aW1lIGFjY291bnRpbmcgdXNlcnMgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnVG9kbyBvIHRlbXBvIGNvbnRhYmlsaXphZG8gcG9sb3MgdXN1YXJpb3Mgw6kgbW9zdHJhZG8uIFBhcmEgY2FtYmlhciBlc3RlIGNvbXBvcnRhbWVudG8sIHBvciBmYXZvciBhY3R1bGljZSBvIGF4dXN0ZTonOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAnRWRpdGUgQ29udGFiaWxpemFjacOzbiBkbyBUZW1wbyBlbiBBeHVzdGVzIGRlIFByb3llY3RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAnRW5nYWRpciB1biBwcm94ZWN0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ1ZhaWEgw6EgdmlzdGEgeGVyYWwgZGUgYXh1c3Rlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJ0VuZ2FkaXIgdW4gcHJveGVjdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAnRWRpdGFyIGEgY29uZmlndXJhY2nDs24gZG8gcHJveGVjdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ1hhIGhhaSB1biBwcm94ZWN0byBjb24gZXN0ZSBub21lLiBQb3IgZmF2b3IsIGVzY29sbGEgdW4gZGlmZXJlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJ0VkaXRlIENvbnRhYmlsaXphY2nDs24gZG8gVGVtcG8gZW4gQXh1c3Rlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ0VuZ2FkaXIgdW5oYSB0YXJlZmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAnTGlzdGEgZGUgcHJveGVjdG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgTGlzdCd9ID0gJ0xpc3RhIGRlIHRhcmVmYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICdFbmdhZGlyIHVuaGEgdGFyZWZhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ0VkaXRhciBhIGNvbmZpZ3VyYWNpw7NuIGRhIHRhcmVmYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnWGEgaGFpIHVuaGEgdGFyZWZhIGNvbiBlc3RlIG5vbWUuIFBvciBmYXZvciwgZXNjb2xsYSB1biBkaWZlcmVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ0xpc3RhIGRlIHVzdWFyaW9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNlZSBvdmVydGltZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ01vc3RyYXIgVGVtcG8gRXhjZXNvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBjcmVhdGUgcHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ1Blcm1pdGlyIGNyZWFjacOzbiBwcm94ZWN0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2tpcCB0aW1lIGFjY291bnRpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgdGltZSBhY2NvdW50aW5nIHNraXBwaW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoaXMgb3B0aW9uIGlzIHNlbGVjdGVkLCB0aW1lIGFjY291bnRpbmcgaXMgZWZmZWN0aXZlbHkgb3B0aW9uYWwgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIHdpbGwgYmUgbm8gd2FybmluZ3MgYWJvdXQgbWlzc2luZyBlbnRyaWVzIGFuZCBubyBlbnRyeSBlbmZvcmNlbWVudC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNwYW5zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJ0NvbWllbnpvIFBlcmlvZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ0ZpbiBQZXJpb2RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICdEw61hcyBkZSBWYWNhY2lvbmVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIHBlciBXZWVrJ30gPSAnSG9yYXMgcG9yIFNlbWFuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnRXhjZXNvIFRlbXBvIEF1dG9yaXphZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJ0RhdGEgZGUgY29tZXpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLid9ID0gJ1BvciBmYXZvciBpbnRyb2R1emNhIHVuaGEgZGF0YSB2w6FsaWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAnRGF0YSBkZSBmaW5hbGl6YWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnRmluIGRvIHBlcmlvZG8gZGViZSBzZXIgZGVzcG9pcyBkZSBxdWUgY29taWVuY2UgbyBwZXJpb2RvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICdEw61hcyBkZSBwZXJtaXNvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJ0hvcmFzIHNlbWFuYWlzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAnSG9yYXMgZXh0cmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ05vbiBzZSBhdG9wYXJvbiBwZXLDrW9kb3MgZGUgdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJ0VuZ2FkaXIgcGVyaW9kbyBkZSB0ZW1wbyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgVGltZSBSZWNvcmQnfSA9ICdWaXN0YSBSZXhpc3RybyBkZSBUZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ1Zpc3RhIGRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ0TDrWEgYW50ZXJpb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICdEw61hIHNlZ3VpbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJ05vbiBzZSBhdG9wYXJvbiBkYXRvcyBwYXJhIGVzdGUgZMOtYS4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgUHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAnSW5zZXJjacOzbiBzYXRpc2ZhY3RvcmlhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAnRXJybyBtZW50cmVzIGludHJvZHVjw61hbnNlIGRhdGFzIG3Dumx0aXBsZXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzISd9ID0gJ0VudHJhZGFzIHNhdGlzZmFjdG9yaWFtZW50ZSBpbnRyb2R1Y2lkYXMgcGFyYSB2YXJpYXMgZGF0YXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICdEYXRhIGludHJvZHVjaWRhIGZvaSBpbnZhbGlkYSEgQSBkYXRhIGZvaSBjYW1iaWFkYSBhIGhveGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kIGNvbmZpZ3VyZWQsIG9yIHRoZSBzcGVjaWZpZWQgZGF0ZSBpcyBvdXRzaWRlIG9mIHRoZSBkZWZpbmVkIHRpbWUgcGVyaW9kcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY29udGFjdCB0aGUgdGltZSBhY2NvdW50aW5nIGFkbWluaXN0cmF0b3IgdG8gdXBkYXRlIHlvdXIgdGltZSBwZXJpb2RzISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgU2VsZWN0ZWQgUHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIFByb2plY3RzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmdQcm9qZWN0OiBOZWVkIFByb2plY3RJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcgUHJvamVjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICdJbmZvcm1lcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0dGluZyd9ID0gJ0NvbmZpZ3VyYWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIFN0YXR1cyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTm90aWZpY2F0aW9uL1RpbWVBY2NvdW50aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICdJbnRyb2R1emEgYXMgc8O6YXMgaG9yYXMgZGUgdHJhYmFsbG8hJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ0VzY29sbGEgYW8gbWVub3MgdW4gZMOtYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ0ludHJvZHVjacOzbiBlbiBtYXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJ30gPSAnRXNjb2xsYSBvIG1vdGl2byBkYSBhdXNlbmNpYSEnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICdFbGltaW5lIEVudHJhZGEgVGVtcG8gQ29udGFiaWxpemFkbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ0NvbmZpcm1lIGEgaW5zZXJjacOzbic7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ03Ds2R1bG8gbm90aWZpY2FjacOzbiBpbnRlcmZhY2UgZGUgYXhlbnRlIHBhcmEgdmVyIG8gbsO6bWVybyBkZSBkw61hcyBkZSB0cmFiYWxsbyBpbmNvbXBsZXRvcyBwYXJhIG8gdXN1YXJpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdOb21lIHByZWRldGVybWluYWRvIHBhcmEgYXMgYWNjacOzbnMgbm92YXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ05vbWUgcHJlZGV0ZXJtaW5hZG8gcGFyYSBvcyBwcm94ZWN0b3Mgbm92b3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAnQXh1c3RlIHBvciBkZWZlY3RvIHBhcmEgZmluIGRhIGRhdGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICdBeHVzdGUgcG9yIGRlZmVjdG8gcGFyYSBpbmljaW8gZGEgZGF0YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICdDb25maWd1cmFjacOzbiBwcmVkZWZpbmlkYSBkYSBkZXNjcmljacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnQ29uZmlndXJhY2nDs24gcHJlZGVmaW5pZGEgZG9zIGTDrWFzIGRlIHBlcm1pc28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnQ29uZmlndXJhY2nDs24gcHJlZGVmaW5pZGEgZGFzIGhvcmFzIGV4dHJhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAnQXh1c3RlIHBvciBkZWZlY3RvIHBhcmEgYXMgaG9yYXMgZXN0YW5kYXJkIHNlbWFuw6Fpcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ0VzdGFkbyBwcmVkZXRlcm1pbmFkbyBwYXJhIGFzIGFjY2nDs25zIG5vdmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJ0VzdGFkbyBwcmVkZXRlcm1pbmFkbyBwYXJhIG9zIHByb3hlY3RvcyBub3Zvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICdFc3RhZG8gcHJlZGV0ZXJtaW5hZG8gcGFyYSBvcyB1c3VhcmlvcyBub3Zvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnRGVmaW5lIG9zIHByb3hlY3RvcyBwYXJhIG9zIGNhbGVzIHVuIGNvbWVudGFyaW8gw6kgcmVxdWlyaWRvLiBTZSBhIEV4cFJlZyBjb2luY2lkZSBubyBwcm94ZWN0bywgdGVuIHF1ZSBpbnNlcnRhciB1biBjb21lbnRhcmlvIHRhbcOpbi4gQSBFeHBSZWcgdXNhIG8gcGFyw6FtZXRybyBzbXguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICdEZXRlcm1pbmEgc2UgbyBtw7NkdWxvIGRlIGVzdGF0w61zdGljYXMgcG9kZSB4ZXJhciBpbmZvcm1hY2nDs24gZGUgY29udGFiaWxpemFjacOzbiBkZSB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJ1BvciBjYW50b3MgZMOtYXMgYXRyw6FzIHBvZGUgaW5zZXJ0YXIgdW5pZGFkZXMgZGUgdHJhYmFsbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJ1NlIGhhYmlsaXRhZG8sIHPDsyB1c3VhcmlvcyBxdWUgZW5nYWRpcm9uIHRlbXBvIGRlIHRyYWJhbGxvIGFvIHByb3hlY3RvIHNlbGVjY2lvbmFkbyBzb24gbW9zdHJhZG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICdTZSBoYWJpbGl0YWRvLCBhbyB1c3VhcmlvIHBlcm1pdGVzZWxsZSBpbnRyb2R1Y2lyICJwZXJtaXNvIGRlIHZhY2FjacOzbnMiICwgInBlcm1pc28gcG9yIGVuZmVybWlkYWRlIiBlICJwZXJtaXNvIHBvciBleGNlc28gZGUgdGVtcG8iIHBhcmEgbXVsdGlwbGVzIGRhdGFzIGR1bmhhIHZlei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICdOw7ptZXJvIG3DoXhpbW8gZGUgZMOtYXMgZGUgdHJhYmFsbG8gZGVzcG9pcyBkb3MgY2FsZXMgYXMgdW5pZGFkZXMgZGUgdHJhYmFsbG8gZGViZW4gc2VyIGluc2VydGFkYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICdOw7ptZXJvIG3DoXhpbW8gZGUgZMOtYXMgZGUgdHJhYmFsbG8gc2VuIGVudHJhZGFzIGRlIHVuaWRhZGVzIGRlIHRyYWJhbGxvIGRlc3BvaXMgZG9zIGNhbGVzIHVuaGEgYWxlcnRhIHNlcsOhIG1vc3RyYWRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJ0V4cHJlc2nDs25zIHJlZ3VsYXJlcyBwYXJhIGEgbGlzdGEgcXVlIGNvbnRyaW54ZSBhIGFjY2nDs24gc2VndW5kbyBvIHByb3hlY3RvIHNlbGVjY2lvbmFkby4gQ2hhdmUgY29udMOpbiBhIGV4cHJlc2nDs24gcmVndWxhciBwYXJhIHByb3hlY3RvKHMpLCBjb250aWRvIGNvbnTDqW4gZXhwcmVzacOzbnMgcmVndWxhcmVzIHBhcmEgYWNjacOzbihzKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAnRXhwcmVzacOzbnMgcmVndWxhcmVzIHBhcmEgYSBsaXN0YSBxdWUgY29udHJpbnhlIG8gcHJveGVjdG8gc2VndW5kbyBvcyBncnVwb3Mgc2VsZWNjaW9uYWRvcy4gQ2hhdmUgY29udMOpbiBhIGV4cHJlc2nDs24gcmVndWxhciBwYXJhIHByb3hlY3RvKHMpLCBjb250aWRvIGNvbnTDqW4gbGlzdGEgc2VwYXJhZGEgcG9yIGNvbWFzIGRlIGdydXBvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ0VzcGVjaWZpY2Egc2UgYXMgaG9yYXMgZGUgdHJhYmFsbG8gcG9kZW4gc2VyIGluc2VydGFkYXMgc2VuIHRlbXBvcyBkZSBpbmljaW8gZSBmaW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ0VzdGUgbcOzZHVsbyBmb3J6YSBhcyBpbnNlcmNpw7NucyBlbiBDb250YWJpbGl6YWNpw7NuVGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAnRXN0ZSBtw7NkdWxvIGRlIG5vdGlmaWNhY2nDs24gZGEgdW5oYSBhbGVydGEgc2UgaGFpIG1vaXRvcyBkw61hcyBkZSB0cmFiYWxsbyBpbmNvbXBsZXRvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAnQ29udGFiaWxpemFyIFRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJ0VkaXRlIGNvbnRhYmlsaXphY2nDs24gZG8gdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICdWaXN0YSBYZXJhbCBjb250YWJpbGl6YWNpw7NuIHRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJ0luZm9ybWUgY29udGFiaWxpemFjacOzbiB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ0F4dXN0ZXMgY29udGFiaWxpemFjacOzbiB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHZpZXcuJ30gPSAnVmlzdGEgY29udGFiaWxpemFjacOzbiB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJ0NvbnRhYmlsaXphY2nDs24gdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ1BhcmEgdXNhciBzZSBhbGd1bmhhcyBhY2Npw7NucyByZWR1Y2lyb24gYXMgaG9yYXMgZGUgdHJhYmFsbG8gKHBvciBleGVtcGxvLCBzZSBzw7MgYSBtaXRhZGUgZG8gdGVtcG8gZGUgdmlheGUgw6kgcGFnYWRvIENoYXZlID0+IHZpYXhlOyBDb250aWRvID0+IDUwKS4nOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdDYW5jZWwnLAogICAgJ0NvbmZpcm0gaW5zZXJ0JywKICAgICdEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5JywKICAgICdNYXNzIEVudHJ5JywKICAgICdObycsCiAgICAnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnLAogICAgJ1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6Omh1X1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnVmFsw7NiYW4gdMO2csO2bG5pIHN6ZXJldG7DqSBlbm5layBhIG5hcG5hayBheiBpZMWRZWxzesOhbW9sw6Fzw6F0Pyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBSZWNvcmQnfSA9ICdJZMWRZmVsamVneXrDqXMgc3plcmtlc3p0w6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJ1VncsOhcyBhIGJlw6FsbMOtdMOhc29raG96JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ0TDoXR1bSBuYXZpZ8OhY2nDsyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ0JlamVneXrDqXNlayBuw6lsa8O8bGkgbmFwb2snOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAnTWluZGVuIG5hcCBraWplbMO2bMOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBlbnRyeSd9ID0gJ1TDtm1lZ2VzIGJlamVneXrDqXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICdWw6FsYXNzemEga2kgYSB0w6F2b2xsw6l0ZSBva8OhdCBhIGtpamVsw7ZsdCBuYXBva3JhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAnU3phYmFkc8OhZ29uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICdCZXRlZ3N6YWJhZHPDoWdvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ0Nzw7pzenRhdMOhc29uIHTDumzDs3JhIG1pYXR0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAnQSBrw7Z0ZWxlesWRIG1lesWRayDigJ4q4oCdIGplbGxlbCB2YW5uYWsgbWVnamVsw7ZsdmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAnS2kga2VsbCB0w7ZsdGVuaWUgYSBrZXpkxZEgw6lzIGJlZmVqZXrFkSBpZMWRdCB2YWd5IGVneSBpZMWRc3pha290Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAnUHJvamVrdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAnRmVsYWRhdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICfDiXN6cmV2w6l0ZWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnQWRqb24gaG96esOhIGVneSA4IGthcmFrdGVybsOpbCBob3NzemFiYiDDqXN6cmV2w6l0ZWx0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnTmVnYXTDrXYgaWTFkXBvbnRvayBuZW0gZW5nZWTDqWx5ZXpldHRlay4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ0F6IGlzbcOpdGzFkWTFkSDDs3LDoWsgbmVtIGVuZ2Vkw6lseWV6ZXR0ZWsuIEEga2V6ZMOpc2kgaWTFkSBlZ3kgbcOhc2lrIGlkxZFrw7Z6cmUgaWxsZXN6a2VkaWsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICfDiXJ2w6lueXRlbGVuIGZvcm3DoXR1bSEgw5PDkzpQUCBmb3Jtw6F0dW3DuiBpZMWRdCBhZGpvbiBtZWcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJ0EgMjQ6MDAgY3NhayBiZWZlamV6w6lzaSBpZMWRa8OpbnQgZW5nZWTDqWx5ZXpldHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnw4lydsOpbnl0ZWxlbiBpZMWRcG9udCEgRWd5IG5hcG5hayBjc2FrIDI0IMOzcsOhamEgdmFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnQSBiZWZlamV6w6lzaSBpZMWRbmVrIGEga2V6ZMOpc2kgaWTFkSB1dMOhbiBrZWxsIGxlbm5pZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdBeiBpc23DqXRsxZFkxZEgw7Nyw6FrIG5lbSBlbmdlZMOpbHllemV0dGVrLiBBIGJlZmVqZXrDqXNpIGlkxZEgZWd5IG3DoXNpayBpZMWRa8O2enJlIGlsbGVzemtlZGlrLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnw4lydsOpbnl0ZWxlbiBpZMWRc3phayEgRWd5IG5hcG5hayBjc2FrIDI0IMOzcsOhamEgdmFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLid9ID0gJ0VneSDDqXJ2w6lueWVzIGlkxZFzemFrbmFrIG5hZ3lvYmJuYWsga2VsbCBsZW5uaWUgbnVsbMOhbsOhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ8OJcnbDqW55dGVsZW4gaWTFkXN6YWshIE5lZ2F0w612IGlkxZFzemFrb2sgbmVtIGVuZ2Vkw6lseWV6ZXR0ZWsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAnRWd5IHNvciBob3p6w6FhZMOhc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICdDc2FrIGVneSBqZWzDtmzFkW7DqWd5emV0IGVsZW1ldCB2w6FsYXN6dGhhdCBraSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBzaWNrIGxlYXZlPyd9ID0gJ0JpenRvcyBiZW5uZSwgaG9neSBkb2xnb3pvdHQsIG1pYWxhdHQgYmV0ZWdzemFiYWRzw6Fnb24gdm9sdD8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICdCaXp0b3MgYmVubmUsIGhvZ3kgZG9sZ296b3R0LCBtaWFsYXR0IHN6YWJhZHPDoWdvbiB2b2x0Pyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAnQml6dG9zIGJlbm5lLCBob2d5IGRvbGdvem90dCwgbWlhbGF0dCBjc8O6c3p0YXRvdHQ/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJ0JpenRvcyBiZW5uZSwgaG9neSB0w7ZiYiBtaW50IDE2IMOzcsOhdCBkb2xnb3pvdHQ/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXcnfSA9ICdJZMWRamVsZW50w6lzIGhhdmkgw6F0dGVraW50w6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAnVMO6bMOzcmEgKMOzcmEpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0aGlzIG1vbnRoKSd9ID0gJ1TDumzDs3JhIChleiBhIGjDs25hcCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRvdGFsKSd9ID0gJ1TDumzDs3JhICjDtnNzemVzZW4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJ01lZ21hcmFkdCBjc8O6c3p0YXTDoXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAnU3phYmFkc8OhZyAobmFwKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCknfSA9ICdLaXZldHQgc3phYmFkc8OhZyAoZXogYSBow7NuYXApJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICdLaXZldHQgc3phYmFkc8OhZyAow7Zzc3plc2VuKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgdmFjYXRpb24nfSA9ICdNZWdtYXJhZHQgc3phYmFkc8OhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ0JldGVnc3phYmFkc8OhZyAobmFwKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ0tpdmV0dCBiZXRlZ3N6YWJhZHPDoWcgKGV6IGEgaMOzbmFwKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0b3RhbCknfSA9ICdLaXZldHQgYmV0ZWdzemFiYWRzw6FnICjDtnNzemVzZW4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnRWzFkXrFkSBow7NuYXAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBtb250aCd9ID0gJ0vDtnZldGtlesWRIGjDs25hcCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAnSMOpdGvDtnpuYXAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJ011bmthaWTFkSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICdMZWRvbGdvem90dCDDs3LDoWsgw7Zzc3plc2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ0EgZmVsaGFzem7DoWzDsyBwcm9qZWt0asOpbmVrIMOhdHRla2ludMWRamUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAnw5Nyw6FrIChoYXZvbnRhKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAnw5Nyw6FrICjDqWxldHRhcnRhbSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICdNaW5kw7Zzc3plc2VuJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJ0lkxZFqZWxlbnTDqXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJ0jDs25hcCBuYXZpZ8OhY2nDsyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAnVWdyw6FzIGTDoXR1bXJhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ0ZlbGhhc3puw6Fsw7NpIGplbGVudMOpc2VrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRobHkgdG90YWwnfSA9ICdIYXZpIMO2c3N6ZXPDrXTFkSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaWZldGltZSB0b3RhbCd9ID0gJ8OJbGV0dGFydGFtIMO2c3N6ZXNlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSBsZWF2ZSd9ID0gJ0Nzw7pzenRhdMOhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ1N6YWJhZHPDoWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ0JldGVnc3phYmFkc8OhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICdIw6F0cmFsw6l2xZEgc3phYmFkc8OhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydHMnfSA9ICdQcm9qZWt0IGplbGVudMOpc2VrJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICdQcm9qZWt0IGplbGVudMOpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXcnfSA9ICdVZ3LDoXMgYSBqZWxlbnTDqXMgw6F0dGVraW50xZFow7Z6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnSmVsZW5sZWcgY3NhayBheiBha3TDrXYgZmVsaGFzem7DoWzDs2sgdmFubmFrIG1lZ2plbGVuw610dmUgZWJiZW4gYSBwcm9qZWt0YmVuLiBBIG3FsWvDtmTDqXMgbcOzZG9zw610w6Fzw6Fob3ogZnJpc3PDrXRzZSBhIGJlw6FsbMOtdMOhc3Q6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ0plbGVubGVnIG1pbmRlbiBpZMWRZWxzesOhbW9sw7MgZmVsaGFzem7DoWzDsyBtZWcgdmFuIGplbGVuw610dmUuIEEgbcWxa8O2ZMOpcyBtw7Nkb3PDrXTDoXPDoWhveiBmcmlzc8OtdHNlIGEgYmXDoWxsw610w6FzdDonOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAnSWTFkWVsc3rDoW1vbMOhcyBwcm9qZWt0YmXDoWxsw610w6Fzb2sgc3plcmtlc3p0w6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJ1Byb2pla3QgaG96esOhYWTDoXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAnVWdyw6FzIGEgYmXDoWxsw610w6Fzb2sgw6F0dGVraW50xZFow7Z6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAnUHJvamVrdCBob3p6w6FhZMOhc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAnUHJvamVrdGJlw6FsbMOtdMOhc29rIHN6ZXJrZXN6dMOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ03DoXIgbMOpdGV6aWsgZWd5IGlseWVuIG5ldsWxIHByb2pla3QuIFbDoWxhc3N6b24gZWd5IG3DoXNpayBuZXZldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MnfSA9ICdJZMWRZWxzesOhbW9sw6FzaSBiZcOhbGzDrXTDoXNvayBzemVya2VzenTDqXNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnRmVsYWRhdCBob3p6w6FhZMOhc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICdTesWxcsWRIGEgcHJvamVrdGtlaGV6LCBmZWxhZGF0b2tob3ogdmFneSBmZWxoYXN6bsOhbMOza2hveic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJ0F6IGlkxZFzemFrb2sgbmVtIHTDtnLDtmxoZXTFkWsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJ1Byb2pla3RsaXN0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICdGZWxhZGF0bGlzdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICdGZWxhZGF0IGhvenrDoWFkw6FzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICdGZWxhZGF0YmXDoWxsw610w6Fzb2sgc3plcmtlc3p0w6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnTcOhciBsw6l0ZXppayBlZ3kgaWx5ZW4gbmV2xbEgZmVsYWRhdC4gVsOhbGFzc3pvbiBlZ3kgbcOhc2lrIG5ldmV0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIExpc3QnfSA9ICdGZWxoYXN6bsOhbMOzbGlzdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZXR0aW5ncyd9ID0gJ0ZlbGhhc3puw6Fsw7NpIGJlw6FsbMOtdMOhc29rJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBzZWUgb3ZlcnRpbWVzJ30gPSAnQSBmZWxoYXN6bsOhbMOzIG1lZ3Rla2ludGhldGkgYSB0w7psw7Nyw6FrYXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ1TDumzDs3JhIG1lZ2plbGVuw610w6lzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gY3JlYXRlIHByb2plY3RzJ30gPSAnQSBmZWxoYXN6bsOhbMOzIGzDqXRyZWhvemhhdCBwcm9qZWt0ZWtldCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnUHJvamVrdGzDqXRyZWhvesOhcyBlbmdlZMOpbHllesOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNraXAgdGltZSBhY2NvdW50aW5nJ30gPSAnQSBmZWxoYXN6bsOhbMOzbmFrIGxlaGV0xZFzw6lnZSB2YW4ga2loYWd5bmkgYXogaWTFkWVsc3rDoW1vbMOhc3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgdGltZSBhY2NvdW50aW5nIHNraXBwaW5nJ30gPSAnSWTFkWVsc3rDoW1vbMOhcyBraWhhZ3nDoXPDoW5hayBsZWhldMWRdsOpIHTDqXRlbGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQsIHRpbWUgYWNjb3VudGluZyBpcyBlZmZlY3RpdmVseSBvcHRpb25hbCBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICdIYSBleiBhIGxlaGV0xZFzw6lnIHZhbiBraXbDoWxhc3p0dmEsIGFra29yIGF6IGlkxZFlbHN6w6Ftb2zDoXMgdMOpbnlsZWdlc2VuIHbDoWxhc3p0aGF0w7MgYSBmZWxoYXN6bsOhbMOzbmFrLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3aWxsIGJlIG5vIHdhcm5pbmdzIGFib3V0IG1pc3NpbmcgZW50cmllcyBhbmQgbm8gZW50cnkgZW5mb3JjZW1lbnQuJ30gPQogICAgICAgICdOZW0gbGVzem5layBmaWd5ZWxtZXp0ZXTDqXNlayBhIGhpw6FueXrDsyBiZWplZ3l6w6lzZWtyxZFsIMOpcyBuZW0gbGVzeiBiZcOtcsOhc2kga8OpbnlzemVyw610w6lzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNwYW5zJ30gPSAnSWTFkXRhcnRhbW9rJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJ0lkxZFzemFrIGtlemRldGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ0lkxZFzemFrIHbDqWdlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICdTemFiYWRzw6FnIG5hcGphaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ8OTcsOhayBoZXRlbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0F1dGhvcml6ZWQgT3ZlcnRpbWUnfSA9ICdKb2dvc3VsdCB0w7psw7NyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAnS2V6ZMOpc2kgZMOhdHVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLid9ID0gJ8OJcnbDqW55ZXMgZMOhdHVtb3QgaWxsZXNzemVuIGJlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJ0JlZmVqZXrDqXNpIGTDoXR1bSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJ0F6IGlkxZFzemFrIHbDqWfDqW5layBheiBpZMWRc3phayBrZXpkZXRlIHV0w6FuIGtlbGwgbGVubmllLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMZWF2ZSBEYXlzJ30gPSAnU3phYmFkc8OhZyBuYXBqYWknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAnSGV0aSDDs3LDoWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICdUw7psw7NyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnTmVtIHRhbMOhbGhhdMOzayBpZMWRc3pha29rLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICdJZMWRc3phayBob3p6w6FhZMOhc2EnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnSWTFkWZlbGplZ3l6w6lzIG1lZ3Rla2ludMOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICdBIGvDtnZldGtlesWRIG1lZ3Rla2ludMOpc2U6ICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdFbMWResWRIG5hcCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ0vDtnZldGtlesWRIG5hcCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICdOZW0gdGFsw6FsaGF0w7MgYWRhdCBlcnJlIGEgbmFwcmEuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJ05lbSBsZWhldCBiZWlsbGVzenRlbmkgYSBtdW5rYWVneXPDqWdla2V0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnTGVndXTDs2JiaSBwcm9qZWt0ZWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAnTmVtIGxlaGV0IGVsbWVudGVuaSBhIGJlw6FsbMOtdMOhc29rYXQsIG1lcnQgZWd5IG5hcG5hayBjc2FrIDI0IMOzcsOhamEgdmFuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJ30gPSAnTmVtIGxlaGV0IHTDtnLDtmxuaSBhIG11bmthZWd5c8OpZ2VrZXQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAnRXogYSBkw6F0dW0gYSBoYXTDoXJvbiBrw612w7xsIHZhbiwgZGUgbcOpZyBuZW0gaWxsZXN6dGV0dGUgYmUgZXogYSBuYXBvdCwgw61neSBrYXAgbcOpZyBlZ3koISkgZXPDqWx5dCBhIGJlaWxsZXN6dMOpc3JlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgV29ya2luZyBEYXlzJ30gPSAnQmVmZWplemV0bGVuIG11bmthbmFwb2snOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAnU2lrZXJlcyBiZWlsbGVzenTDqXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICdIaWJhIHTDtnJ0w6ludCB0w7ZiYiBkw6F0dW0gYmVpbGxlc3p0w6lzZSBrw7Z6YmVuISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICdBIGJlamVneXrDqXNlayBzaWtlcmVzZW4gYmVpbGxlc3p0dmUgYSBrw7xsw7ZuYsO2esWRIGTDoXR1bW9raG96ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJ30gPSAnQSBtZWdhZG90dCBkw6F0dW0gw6lydsOpbnl0ZWxlbiB2b2x0ISBBIGTDoXR1bSBhIG1haSBuYXByYSBsZXR0IG3Ds2Rvc8OtdHZhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICdOaW5jcyBpZMWRc3phayBiZcOhbGzDrXR2YSwgdmFneSBhIG1lZ2Fkb3R0IGTDoXR1bSBhIG1lZ2hhdMOhcm96b3R0IGlkxZFzemFrb2tvbiBrw612w7xsIHZhbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJ1ZlZ3llIGZlbCBhIGthcGNzb2xhdG90IGF6IGlkxZFlbHN6w6Ftb2zDoXMgYWRtaW5pc3p0csOhdG9yw6F2YWwsIGhvZ3kgZnJpc3PDrXRzZSBheiBpZMWRc3pha2FpdCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ0xlZ3V0w7NiYiBraXbDoWxhc3p0b3R0IHByb2pla3Rlayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICdNaW5kZW4gcHJvamVrdCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICdKZWxlbnTDqXMgcHJvamVrdDogcHJvamVrdGF6b25vc8OtdMOzIHN6w7xrc8OpZ2VzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnSmVsZW50w6lzIHByb2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAnSmVsZW50w6lzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJ05lbSBsZWhldCBmcmlzc8OtdGVuaSBhIGZlbGhhc3puw6Fsw7NpIGJlw6FsbMOtdMOhc29rYXQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgYWRkZWQhJ30gPSAnUHJvamVrdCBob3p6w6FhZHZhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnUHJvamVrdCBmcmlzc8OtdHZlISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJ0ZlbGFkYXQgaG96esOhYWR2YSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayB1cGRhdGVkISd9ID0gJ0ZlbGFkYXQgZnJpc3PDrXR2ZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnQSBmZWxoYXN6bsOhbMOzLWF6b25vc8OtdMOzIG5lbSDDqXJ2w6lueWVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICdOZW0gbGVoZXQgYmVpbGxlc3p0ZW5pIGEgZmVsaGFzem7DoWzDs2FkYXRva2F0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJ05lbSBsZWhldCBob3p6w6FhZG5pIGlkxZFzemFrb3QhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHRpbmcnfSA9ICdCZcOhbGzDrXTDoXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciB1cGRhdGVkISd9ID0gJ0ZlbGhhc3puw6Fsw7MgZnJpc3PDrXR2ZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICdGZWxoYXN6bsOhbMOzIGhvenrDoWFkdmEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHVzZXIgdG8gdGltZSBhY2NvdW50aW5nLi4uJ30gPSAnRmVsaGFzem7DoWzDsyBob3p6w6FhZMOhc2EgYXogaWTFkWVsc3rDoW1vbMOhc2hveuKApic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJ8OaaiBmZWxoYXN6bsOhbMOzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICdJZMWRc3phayDDoWxsYXBvdCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAnTsOpemV0OiAlcyBzesO8a3PDqWdlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ob3RpZmljYXRpb24vVGltZUFjY291bnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ0lsbGVzc3plIGJlIGEgbXVua2FpZGVqw6l0ISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJ0JlZmVqZXpldGxlbiBtdW5rYW5hcG9rJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ0xlZ2Fsw6FiYiBlZ3kgbmFwb3QgdsOhbGFzc3pvbiBraSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ1TDtm1lZ2VzIGJlamVneXrDqXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICdWw6FsYXNzemEga2kgYSB0w6F2b2xsw6l0IG9rw6F0ISc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ0lkxZFlbHN6w6Ftb2zDoXMgYmVqZWd5esOpcyB0w7ZybMOpc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlybSBpbnNlcnQnfSA9ICdCZWlsbGVzenTDqXMgbWVnZXLFkXPDrXTDqXNlJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnw5xneWludMOpesWRaSBmZWzDvGxldCDDqXJ0ZXPDrXTDqXNpIG1vZHVsIGEgZmVsaGFzem7DoWzDsyBiZWZlamV6ZXRsZW4gbXVua2FuYXBqYWkgc3rDoW3DoW5hayBtZWd0ZWtpbnTDqXPDqWhlei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdBbGFww6lydGVsbWV6ZXR0IG7DqXYgYXogw7pqIG3FsXZlbGV0ZWtoZXouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ0FsYXDDqXJ0ZWxtZXpldHQgbsOpdiBheiDDumogcHJvamVrdGVraGV6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJ0FsYXDDqXJ0ZWxtZXpldHQgYmXDoWxsw610w6FzIGEgYmVmZWplesOpc2kgZMOhdHVtaG96Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAnQWxhcMOpcnRlbG1lemV0dCBiZcOhbGzDrXTDoXMgYSBrZXpkw6lzaSBkw6F0dW1ob3ouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnQWxhcMOpcnRlbG1lemV0dCBiZcOhbGzDrXTDoXMgYSBsZcOtcsOhc2hvei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJ0FsYXDDqXJ0ZWxtZXpldHQgYmXDoWxsw610w6FzIGEgc3phYmFkc8OhZyBuYXBqYWlob3ouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnQWxhcMOpcnRlbG1lemV0dCBiZcOhbGzDrXTDoXMgYSB0w7psw7Nyw6Fob3ouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICdBbGFww6lydGVsbWV6ZXR0IGJlw6FsbMOtdMOhcyBhIHN6YWJ2w6FueW9zIGhldGkgbXVua2HDs3LDoWtob3ouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdBbGFww6lydGVsbWV6ZXR0IMOhbGxhcG90IGF6IMO6aiBtxbF2ZWxldGVraGV6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJ0FsYXDDqXJ0ZWxtZXpldHQgw6FsbGFwb3QgYXogw7pqIHByb2pla3Rla2hlei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICdBbGFww6lydGVsbWV6ZXR0IMOhbGxhcG90IGF6IMO6aiBmZWxoYXN6bsOhbMOza2hvei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnTWVnaGF0w6Fyb3p6YSBhem9rYXQgYSBwcm9qZWt0ZWtldCwgYW1lbHlla2hleiDDqXN6cmV2w6l0ZWwgc3rDvGtzw6lnZXMuIEhhIGEgcmVndWzDoXJpcyBraWZlamV6w6lzIGlsbGVzemtlZGlrIGEgcHJvamVrdHJlLCBha2tvciBiZSBrZWxsIGlsbGVzenRlbmllIGVneSDDqXN6cmV2w6l0ZWx0IGlzLiBBIHJlZ3Vsw6FyaXMga2lmZWplesOpcyBheiBzbXggcGFyYW3DqXRlcnQgaGFzem7DoWxqYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ01lZ2hhdMOhcm96emEsIGhvZ3kgYSBzdGF0aXN6dGlrYSBtb2R1bCBlbMWRw6FsbMOtdGhhdC1lIGlkxZFlbHN6w6Ftb2zDoXNpIGluZm9ybcOhY2nDs2thdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnSWTFkWVsc3rDoW1vbMOhcyBiZcOhbGzDrXTDoXNhaW5hayBzemVya2VzenTDqXNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgcmVjb3JkLid9ID0gJ0lkxZFmZWxqZWd5esOpcyBzemVya2VzenTDqXNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3IgaG93IG1hbnkgZGF5cyBhZ28geW91IGNhbiBpbnNlcnQgd29ya2luZyB1bml0cy4nfSA9ICdIw6FueSBuYXBwYWwgZXplbMWRdHRow7Z6IGlsbGVzenRoZXQgYmUgbXVua2FlZ3lzw6lnZWtldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgb25seSB1c2VycyB0aGF0IGhhcyBhZGRlZCB3b3JraW5nIHRpbWUgdG8gdGhlIHNlbGVjdGVkIHByb2plY3QgYXJlIHNob3duLid9ID0KICAgICAgICAnSGEgZW5nZWTDqWx5ZXp2ZSB2YW4sIGFra29yIGNzYWsgYXpvayBhIGZlbGhhc3puw6Fsw7NrIGxlc3puZWsgbWVnamVsZW7DrXR2ZSwgYWtpayBtdW5rYWlkxZF0IGFkdGFrIGhvenrDoSBhIGtpamVsw7ZsdCBwcm9qZWt0aGV6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAnSGEgZW5nZWTDqWx5ZXp2ZSB2YW4sIGFra29yIGEgc3plcmtlc3p0w6lzaSBrw6lwZXJuecWRbiBsw6l2xZEgbGVuecOtbMOzIGVsZW1layBrb3JzemVyxbFzw610ZXR0IGF1dG9tYXRpa3VzYW4ga2llZ8Opc3rDrXRldHQgbWV6xZFrcmUgbGVzem5layBtZWd2w6FsdG96dGF0dmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJ0hhIGVuZ2Vkw6lseWV6dmUgdmFuLCBha2tvciBheiBlbMWResWRIHByb2pla3RlayBzesWxcsWRamUgaGFzem7DoWxoYXTDsyBhIHByb2pla3RlayBrw6l0IGxpc3TDoWphIGhlbHlldHQgKGxlZ3V0w7NiYmkgw6lzIMO2c3N6ZXMpLiBDc2FrIGFra29yIGhhc3puw6FsaGF0w7MsIGhhIGEgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGVuZ2Vkw6lseWV6dmUgdmFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnSGEgZW5nZWTDqWx5ZXp2ZSB2YW4sIGFra29yIGF6IGVsxZF6xZEgcHJvamVrdGVrIHN6xbFyxZFqZSBhbGFww6lydGVsbWV6ZXR0ZW4gYmUgdmFuIGthcGNzb2x2YSwgaGEgdmFubmFrIGVsxZF6xZEgcHJvamVrdGVrLiBDc2FrIGFra29yIGhhc3puw6FsaGF0w7MsIGhhIGF6IEVuYWJsZUF1dG9Db21wbGV0aW9uIMOpcyBhIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgZW5nZWTDqWx5ZXp2ZSB2YW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICdIYSBlbmdlZMOpbHllenZlIHZhbiwgYWtrb3IgYSBmZWxoYXN6bsOhbMOzbmFrIG1lZ2VuZ2VkZXR0IGVneXN6ZXJyZSB0w7ZiYiBkw6F0dW1ob3og4oCec3phYmFkc8OhZ29u4oCdLCDigJ5iZXRlZ3N6YWJhZHPDoWdvbuKAnSDDqXMg4oCeY3PDunN6dGF0w6Fzb27igJ0gw6lydMOpayBtZWdhZMOhc2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLid9ID0KICAgICAgICAnQSBtdW5rYW5hcG9rIGxlZ25hZ3lvYmIgc3rDoW1hLCBhbWVseWVrIHV0w6FuIGEgbXVua2FlZ3lzw6lnZWtldCBiZSBrZWxsIHN6w7pybmkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICdBIG11bmthZWd5c8OpZ2VrIGJlamVneXrDqXMgbsOpbGvDvGxpIG11bmthbmFwb2sgbGVnbmFneW9iYiBzesOhbWEsIGFtZWx5ZWsgdXTDoW4gZWd5IGZpZ3llbG1lenRldMOpcyBsZXN6IG1lZ2plbGVuw610dmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3Lid9ID0gJ8OBdHRla2ludMOpcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICdQcm9qZWt0aWTFkSBqZWxlbnTDqXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICdSZWd1bMOhcmlzIGtpZmVqZXrDqXNlayBhIGtpamVsw7ZsdCBwcm9qZWt0IHN6ZXJpbnRpIGtvcmzDoXRvesOzIG3FsXZlbGV0IGxpc3TDoWrDoWhvei4gQSBrdWxjcyBhIHByb2pla3Rla2hleiB0YXJ0YWxtYXogcmVndWzDoXJpcyBraWZlamV6w6lzdCwgYSB0YXJ0YWxvbSBwZWRpZyBhIG3FsXZlbGV0ZWtoZXouJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBwcm9qZWN0IGxpc3QgYWNjb3JkaW5nIHRvIHVzZXIgZ3JvdXBzLiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3Vwcy4nfSA9CiAgICAgICAgJ1JlZ3Vsw6FyaXMga2lmZWplesOpc2VrIGEgZmVsaGFzem7DoWzDs2Nzb3BvcnRvayBzemVyaW50aSBrb3Jsw6F0b3rDsyBwcm9qZWt0IGxpc3TDoWrDoWhvei4gQSBrdWxjcyBhIHByb2pla3Rla2hleiB0YXJ0YWxtYXogcmVndWzDoXJpcyBraWZlamV6w6lzdCwgYSB0YXJ0YWxvbSBwZWRpZyBjc29wb3J0b2sgdmVzc3rFkXZlbCBlbHbDoWxhc3p0b3R0IGxpc3TDoWrDoXQgdGFydGFsbWF6emEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICdNZWdhZGphLCBob2d5IGEgbXVua2FpZMWRIGJlc3rDunJoYXTDsy1lIGtlemTDqXNpIMOpcyBiZWZlamV6w6lzaSBpZMWRayBuw6lsa8O8bC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAnRXogYSBtb2R1bCBraWvDqW55c3plcsOtdGkgYSBiZXN6w7pyw6Fzb2thdCBheiBpZMWRZWxzesOhbW9sw6FzYmFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5vdGlmaWNhdGlvbiBtb2R1bGUgZ2l2ZXMgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0b28gbWFueSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cy4nfSA9CiAgICAgICAgJ0V6IGF6IMOpcnRlc8OtdMOpc2kgbW9kdWwgZWd5IGZpZ3llbG1lenRldMOpc3QgYWQsIGhhIHTDumwgc29rIGJlZmVqZXpldGxlbiBtdW5rYW5hcCB0YWzDoWxoYXTDsy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAnSWTFkWVsc3rDoW1vbMOhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICdJZMWRZWxzesOhbW9sw6FzIHN6ZXJrZXN6dMOpcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJ0lkxZFlbHN6w6Ftb2zDoXMgw6F0dGVraW50xZEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAnSWTFkWVsc3rDoW1vbMOhcyBqZWxlbnTDqXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdJZMWRZWxzesOhbW9sw6FzIGJlw6FsbMOtdMOhc29rLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICdJZMWRZWxzesOhbW9sw6FzIG7DqXpldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJ0lkxZFlbHN6w6Ftb2zDoXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ0Fra29yIGtlbGwgaGFzem7DoWxuaSwgaGEgbsOpaMOhbnkgbcWxdmVsZXQgY3PDtmtrZW50ZXR0ZSBhIG11bmthaWTFkXQgKHDDqWxkw6F1bCBoYSBjc2FrIGF6IHV0YXrDoXNpIGlkxZEgZmVsZSB2YW4ga2lmaXpldHZlOiBLdWxjcyA9PiB1dGF6w6FzOyBUYXJ0YWxvbSA9PiA1MCkuJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdDb25maXJtIGluc2VydCcsCiAgICAnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeScsCiAgICAnTWFzcyBFbnRyeScsCiAgICAnTm8nLAogICAgJ1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJywKICAgICdQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmlkX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAnUHJveWVrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIEVuZCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBzaWNrIGxlYXZlPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHZhY2F0aW9uPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIChEYXlzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgdmFjYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodGhpcyBtb250aCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2RheSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JraW5nIEhvdXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyXCdzIHByb2plY3Qgb3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChMaWZldGltZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gZGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHJlcG9ydHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaWZldGltZSB0b3RhbCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSBsZWF2ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydHMnfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmdQcm9qZWN0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IGFsbCB0aW1lIGFjY291bnRpbmcgdXNlcnMgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFByb2plY3QgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIHByb2plY3RzLCB0YXNrcyBvciB1c2Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBzZWUgb3ZlcnRpbWVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgT3ZlcnRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIGNyZWF0ZSBwcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBza2lwIHRpbWUgYWNjb3VudGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyB0aW1lIGFjY291bnRpbmcgc2tpcHBpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQsIHRpbWUgYWNjb3VudGluZyBpcyBlZmZlY3RpdmVseSBvcHRpb25hbCBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2lsbCBiZSBubyB3YXJuaW5ncyBhYm91dCBtaXNzaW5nIGVudHJpZXMgYW5kIG5vIGVudHJ5IGVuZm9yY2VtZW50Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU3BhbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgV29ya2luZyBEYXlzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kIGNvbmZpZ3VyZWQsIG9yIHRoZSBzcGVjaWZpZWQgZGF0ZSBpcyBvdXRzaWRlIG9mIHRoZSBkZWZpbmVkIHRpbWUgcGVyaW9kcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY29udGFjdCB0aGUgdGltZSBhY2NvdW50aW5nIGFkbWluaXN0cmF0b3IgdG8gdXBkYXRlIHlvdXIgdGltZSBwZXJpb2RzISd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgU2VsZWN0ZWQgUHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIFByb2plY3RzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmdQcm9qZWN0OiBOZWVkIFByb2plY3RJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcgUHJvamVjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICdNZWxhcG9ya2FuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXR0aW5nJ30gPSAnUGVuZ2F0dXJhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHVzZXIgdG8gdGltZSBhY2NvdW50aW5nLi4uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML05vdGlmaWNhdGlvbi9UaW1lQWNjb3VudGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAnVG9sb25nIG1hc3Vra2FuIG1hc2Ega2VyamEgYW5kYSEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL0luY29tcGxldGVXb3JraW5nRGF5cy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSB3b3JraW5nIGRheXMnfSA9ICcnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgRW50cnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICcnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlybSBpbnNlcnQnfSA9ICcnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGlzIGFjdGl2ZSBieSBkZWZhdWx0IGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBFbmFibGVBdXRvQ29tcGxldGlvbiBhbmQgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBhcmUgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdGltZSByZXBvcnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJ1BlbmdoaXR1bmdhbiB3YWt0dSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnQ29uZmlybSBpbnNlcnQnLAogICAgJ0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknLAogICAgJ01hc3MgRW50cnknLAogICAgJ05vJywKICAgICdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScsCiAgICAnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6Oml0X1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnVnVvaSB2ZXJhbWVudGUgY2FuY2VsbGFyZSBsYSByZW5kaWNvbnRhemlvbmUgdGVtcG9yYWxlIGRpIG9nZ2kgPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBSZWNvcmQnfSA9ICdNb2RpZmljYSBsYSByZW5kaWNvbnRhemlvbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICdWYWkgYWxsZSBpbXBvc3RhemlvbmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAnTmF2aWdhemlvbmUgcGVyIGRhdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICdHaW9ybmkgc2VuemEgaW5mb3JtYXppb25pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ1NlbGV6aW9uYSB0dXR0aSBpIGdpb3JuaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAnSW5zZXJpbWVudG8gbWFzc2l2byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIHRoZSByZWFzb24gZm9yIHlvdXIgYWJzZW5jZSBmb3IgdGhlIHNlbGVjdGVkIGRheXMnfSA9CiAgICAgICAgJ1BlciBmYXZvcmUgc2VsZXppb25hIGlsIG1vdGl2byBkZWxsYSB0dWEgYXNzZW56YSBwZXIgaSBnaW9ybmkgc2VsZXppb25hdGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAnRmVyaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ0Fzc2VudGUgcGVyIG1hbGF0dGlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAnQXNzZW50ZSBwZXIgcmVjdXBlcm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhICIqIi4nfSA9ICdJIGNhbXBpIG9iYmxpZ2F0b3JpIHNvbm8gaW5kaWNhdGkgY29uICIqIi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICdFXCcgb2JibGlnYXRvcmlvIGluc2VyaXJlIGluaXppbyBlIGZpbmUgb3BwdXJlIHVuIHBlcmlvZG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QnfSA9ICdQcm9nZXR0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAnQ29tcGl0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICdDb21tZW50byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYWRkIGEgcmVtYXJrIHdpdGggbW9yZSB0aGFuIDggY2hhcmFjdGVycyEnfSA9ICdBZ2dpdW5nZXJlIHVuIGNvbW1lbnRvIGNvbiBwacO5IGRpIDggY2FyYXR0ZXJpISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnTm9uIHBvc3Nvbm8gZXNzZXJlIGluc2VyaXRpIHZhbG9yaSBuZWdhdGl2aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ05vbiDDqCBwZXJtZXNzbyBpbnNlcmlyZSBvcmUgcmlwZXR1dGUuIExcJ29yYXJpbyBkaSBpbml6aW8gY29pbmNpZGUgY29uIHVuIGFsdHJvIGludGVydmFsbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdGb3JtYXRvIG5vbiB2YWxpZG8uIEluc2VyaXJlIHVuIG9yYXJpbyBuZWwgZm9ybWF0byBISDpNTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAnTFwnb3JhIDI0OjAwIMOoIGNvbnNlbnRpdGEgc29sbyBjb21lIG9yYSBkaSBmaW5lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ09yYXJpbyBub24gdmFsaWRvISBJbiB1biBnaW9ybm8gY2kgc29ubyBzb2xvIDI0IG9yZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJ0xcJ29yYXJpbyBkaSBmaW5lIMOoIHBvc3RlcmlvcmUgYWxsXCdvcmFyaW8gZGkgaW5pemlvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIEVuZCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ05vbiDDqCBwZXJtZXNzbyBpbnNlcmlyZSBvcmUgcmlwZXR1dGUuIExcJ29yYXJpbyBkaSBmaW5lIGNvaW5jaWRlIGNvbiB1biBhbHRybyBpbnRlcnZhbGxvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnUGVyaW9kbyBub24gdmFsaWRvLiBVbmEgZ2lvcm5hdGEgaGEgc29sbyAyNCBvcmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAnVW4gcGVyaW9kbyB2YWxpZG8gZGV2ZSBlc3NlcmUgbWFnZ2lvcmUgZGkgemVyby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ1BlcmlvZG8gbm9uIHZhbGlkby4gVmFsb3JpIG5lZ2F0aXZpIG5vbiBhbW1lc3NpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ0FnZ2l1bmdlcmUgdW5hIHJpZ2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICdQdW9pIHNlbGV6aW9uYXJlIHNvbG8gdW4gZWxlbWVudG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nfSA9ICdTZWkgc2ljdXJvIGRpIGF2ZXIgbGF2b3JhdG8gbWVudHJlIGVyaSBhc3NlbnRlIHBlciBtYWxhdHRpYT8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICdTZWkgc2ljdXJvIGRpIGF2ZXIgbGF2b3JhdG8gbWVudHJlIGVyaSBpbiBmZXJpZT8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ1NlaSBzaWN1cm8gZGkgYXZlciBsYXZvcmF0byBtZW50cmUgZXJpIGFzc2VudGUgcGVyIHJlY3VwZXJvID8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnU2VpIHNpY3VybyBkaSBhdmVyIGxhdm9yYXRvIHBpw7kgZGkgMTYgb3JlPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAnQ3J1c2NvdHRvIG1lbnNpbGUgZGkgcmVuZGljb250YXppb25lIHRlbXBvcmFsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAnU3RyYW9yZGluYXJpbyAob3JlKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodGhpcyBtb250aCknfSA9ICdTdHJhb3JkaW5hcmlvIChxdWVzdG8gbWVzZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRvdGFsKSd9ID0gJ1N0cmFvcmRpbmFyaW8gKHRvdGFsZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAnVG90YWxlIG9yZSBkaSByZWN1cGVybyBkaXNwb25pYmlsaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICdGZXJpZSAoZ2lvcm5pKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCknfSA9ICdGZXJpZSB1dGlsaXp6YXRlIChxdWVzdG8gbWVzZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJ0ZlcmllIHV0aWxpenphdGUgKHRvdGFsZSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAnRmVyaWUgcmVzaWR1ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ0Fzc2VuemUgcGVyIG1hbGF0dGlhIChnaW9ybmkpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnQXNzZW56ZSBwZXIgbWFsYXR0aWEgdXRpbGl6emF0ZSAocXVlc3RvIG1lc2UpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ0Fzc2VuemUgcGVyIG1hbGF0dGlhICh0b3RhbGUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnTWVzZSBwcmVjZWRlbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICdNZXNlIHNlZ3VlbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICdHaW9ybm8gZGVsbGEgc2V0dGltYW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICdPcmUgbGF2b3JhdGl2ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICdUb3RhbGUgb3JlIGxhdm9yYXRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ1Zpc3VhbGl6emF6aW9uZSBkZWwgcHJvZ2V0dG8gLSBVdGVudGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAnT3JlIChtZW5zaWxpKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAnT3JlIChnbG9iYWxpKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmFuZCB0b3RhbCd9ID0gJ1RvdGFsZSBvbW5pY29tcHJlbnNpdm8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAnUmVwb3J0IGRlbCB0ZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aCBOYXZpZ2F0aW9uJ30gPSAnTmF2aWdhemlvbmUgcGVyIG1lc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gZGF0ZSd9ID0gJ1ZhaSBhbGxhIGRhdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAnUmVwb3J0IHV0ZW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAnVG90YWxlIG1lbnNpbGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICdUb3RhbGUgZ0xvYmFsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSBsZWF2ZSd9ID0gJ0Fzc2VuemUgcGVyIHJlY3VwZXJvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAnRmVyaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ01hbGF0dGlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJ0dpb3JuaSByaW1hbmVudGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAnUmlhc3N1bnRpIHByb2dldHRvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICdSaWFzc3VudG8gcHJvZ2V0dG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAnVmFpIGFsIHJpZXBpbG9nbyBkaSByZXBvcnRpc3RpY2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdWZW5nb25vIG1vc3RyYXRpIHNvbG8gZ2xpIHV0ZW50aSBhdHRpdmkgZGkgcXVlc3RvIHByb2dldHRvLiBQZXIgY2FtYmlhcmUgcXVlc3RvIGNvbXBvcnRhZW50byBhZ2dpb3JuYXJlIGlsIHBhcmFtZXRybzogJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ1Zlbmdvbm8gbW9zdHJhdGkgdHV0dGkgZ2xpIHV0ZW50aSBwZXIgbGEgcmVuZGljb250YXppb25lIHRlbXBvLiBQZXIgY2FtYmlhcmUgcXVlc3RvIGNvbXBvcnRhbWVudG8gYWdnaW9ybmFyZSBpbCBwYXJhbWV0cm86JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ01vZGlmaWNhcmUgbGUgY29uZmlndXJhemlvbmkgZGkgZ2VzdGlvbmUgZGVsIHRlbXBvIGRlbCBwcm9nZXR0by4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHByb2plY3QnfSA9ICdBZ2dpdW5nZXJlIHByb2dldHRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAnVmFpIGFsIHJpZXBpbG9nbyBpbXBvc3RhemlvbmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICdBZ2dpdW5nZXJlIHByb2dldHRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ01vZGlmaWNhcmUgbGEgY29uZmlndXJhemlvbmUgZGVsIHByb2dldHRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdFc2lzdGUgZ2nDoCB1biBwcm9nZXR0byBjb24gcXVlc3RvIG5vbWUuIFNjZWdsZWlyZSB1biBub21lIGRpdmVyc28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnTW9kaWZpY2FyZSBsZSBjb25maWd1cmF6aW9uaSBkZWxsYSByZW5kaWNvbnRhemlvbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRhc2snfSA9ICdBZ2dpdW5nZXJlIGNvbXBpdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICdGaWx0cm8gcGVyIHByb2dldHRpLCBhdHRpdml0w6AgbyB1dGVudGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICdJIHBlcmlvZGkgZGkgdGVtcG8gbm9uIHBvc3Nvbm8gZXNzZXJlIGVsaW1pbmF0aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAnRWxlbmNvIGRlaSBwcm9nZXR0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICdFbGVuY28gZGVpIGNvbXBpdGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICdBZ2dpdW5nZXJlIGNvbXBpdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUYXNrIFNldHRpbmdzJ30gPSAnTW9kaWZpY2FyZSBsYSBjb25maWd1cmF6aW9uZSBkZWkgY29tcGl0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnRXNpc3RlIGdpw6AgdW4gdGFzayBjb24gcXVlc3RvIG5vbWUuIFNjZWdsaWVyZSB1biBub21lIGRpdmVyc28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ0VsZW5jbyB1dGVudGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZXR0aW5ncyd9ID0gJ0ltcG9zdGF6aW9uaSB1dGVudGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNlZSBvdmVydGltZXMnfSA9ICdMXCdVdGVudGUgcHXDsiB2ZWRlcmUgbG8gc3RyYW9yZGluYXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnTW9zdHJhcmUgc3RyYW9yZGluYXJpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBjcmVhdGUgcHJvamVjdHMnfSA9ICdMXCdVdGVudGUgcHXDsiBjcmVhcmUgcHJvZ2V0dGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ0NvbnNlbnRpcmUgbGEgY3JlYXppb25lIGRlbCBwcm9nZXR0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2tpcCB0aW1lIGFjY291bnRpbmcnfSA9ICdMXCd1dGVudGUgw6ggYXV0b3JpenphdG8gYSBzYWx0YXJlIGxhIGNvbnRhYmlsaXTDoCBkZWwgdGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgdGltZSBhY2NvdW50aW5nIHNraXBwaW5nJ30gPSAnQ29uc2VudGkgaWwg4oCL4oCLc2FsdG8gZGVsbGEgY29udGFiaWxpdMOgIGRlbCB0ZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGlzIG9wdGlvbiBpcyBzZWxlY3RlZCwgdGltZSBhY2NvdW50aW5nIGlzIGVmZmVjdGl2ZWx5IG9wdGlvbmFsIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ1NlIHF1ZXN0YSBvcHppb25lIMOoIHNlbGV6aW9uYXRhLCBsYSBjb250YWJpbGl0w6AgdGVtcG9yYWxlIMOoIGVmZmV0dGl2YW1lbnRlIGZhY29sdGF0aXZhIHBlciBsXCd1dGVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIHdpbGwgYmUgbm8gd2FybmluZ3MgYWJvdXQgbWlzc2luZyBlbnRyaWVzIGFuZCBubyBlbnRyeSBlbmZvcmNlbWVudC4nfSA9CiAgICAgICAgJ05vbiBjaSBzYXJhbm5vIGF2dmlzaSBpbiBtZXJpdG8gYSB2b2NpIG1hbmNhbnRpIGUgbmVzc3VuYSBhcHBsaWNhemlvbmUgZGkgYWNjZXNzby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTcGFucyd9ID0gJ0ludGVydmFsbGkgZGkgdGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAnUGVyaW9kbyBkaSBpbml6aW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ1BlcmlvZG8gZGkgdGVybWluZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAnR2lvcm5pIGRpIEFzc2VuemEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICdPcmUgYWxsYSBzZXR0aW1hbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJ1N0cmFvcmRpbmFyaSBhdXRvcml6emF0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAnRGF0YSBkaSBpbml6aW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAnSW5zZXJpcmUgdW5hIGRhdGEgdmFsaWRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJ0RhdGEgRmluZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJ0lsIHBlcmlvZG8gZmluYWxlIGRldmUgZXNzZXJlIHBvc3RlcmlvcmUgYWwgcGVyaW9kbyBpbml6aWFsZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJ0dpb3JuaSBkaSBhc3NlbnphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJ09yYXJpIGRlbGxhIFNldHRpbWFuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSd9ID0gJ1N0cmFvcmRpbmFyaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ05vbiBjaSBzb25vIHBlcmlvZGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJ0FnZ2l1bmdpIHBlcmlvZG8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnVmlzdWFsaXp6YXJlIHJlZ2lzdHJvIG9yYXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ1Zpc3VhbGl6emF6aW9uZSBkaSAgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ0dpb3JubyBwcmVjZWRlbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgZGF5J30gPSAnR2lvcm5vIHN1Y2Nlc3Npdm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAnTmVzc3VuIGRhdG8gdHJvdmF0byBwZXIgcXVlc3RvIGdpb3Juby4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAnTm9uIHB1b2kgaW5zZXJpcmUgbGUgdW5pdMOgIGxhdm9yYXRpdmUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgUHJvamVjdHMnfSA9ICdVbHRpbWkgcHJvZ2V0dGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAnTm9uIHB1b2kgc2FsdmFyZSBsZSBpbXBvc3RhemlvbmksIHBlcmNow6ggdW4gZ2lvcm5vIGhhIHNvbG8gMjQgb3JlISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJ30gPSAnTm9uIHB1b2kgY2FuY2VsbGFyZSBsZSB1bml0w6AgbGF2b3JhdGl2ZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICdRdWVzdGEgRGF0YSDDqCBmdW9yaSBsaW1pdGUgbWFzc2ltbywgbWEgbm9uIGhhaSBhbmNvcmEgYW5jb3JhIGluc2VyaXRvIHF1ZXN0byBnaW9ybm8sIHF1aW5kaSBoYWkgYW5jb3JhIHVuYSAoISkgcG9zc2liaWxpdMOgIGRpIGluc2VyaXJuZSB1bm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgV29ya2luZyBEYXlzJ30gPSAnR2lvcm5pIGxhdm9yYXRpdmkgaW5jb21wbGV0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICdJbnNlcmltZW50byBhdnZlbnV0byBjb24gc3VjY2Vzc28hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICdTaSDDqCB2ZXJpZmljYXRvIHVuIGVycm9yZSBuZWxsXCdpbnNlcmltZW50byBkaSBkYXRlIG11bHRpcGxlISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICdJbnNlcmltZW50byBkaSBkYXRlIG11bHRpcGxlIGF2dmVudXRvIGNvbiBzdWNjZXNzbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ0xhIGRhdGEgaW5zZXJpdGEgbm9uIMOoIHZhbGlkYSEgRVwnIHN0YXRhIGltcG9zdGF0YSBsYSBkYXRhIGRpIG9nZ2kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kIGNvbmZpZ3VyZWQsIG9yIHRoZSBzcGVjaWZpZWQgZGF0ZSBpcyBvdXRzaWRlIG9mIHRoZSBkZWZpbmVkIHRpbWUgcGVyaW9kcy4nfSA9CiAgICAgICAgJ05lc3N1biBwZXJpb2RvIGRpIHRlbXBvIGNvbmZpZ3VyYXRvLCBvIGxhIGRhdGEgc3BlY2lmaWNhdGEgw6ggZnVvcmkgZGFpIHBlcmlvZGkgZGkgdGVtcG8gZGVmaW5pdGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICdQZXIgZmF2b3JlLCBjb250YXR0YXJlIGxcJ2FtbWluaXN0cmF6aW9uZSBkZWxsYSBjb250YWJpbGl6emF6aW9uZSB0ZW1wb3JhbGUgcGVyIGFnZ2lvcm5hcmUgaSB0dW9pIGludGVydmFsbGkgZGkgdGVtcG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgU2VsZWN0ZWQgUHJvamVjdHMnfSA9ICdVbHRpbWkgcHJvZ2V0dGkgc2VsZXppb25hdGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIFByb2plY3RzJ30gPSAnVHV0dGkgaSBwcm9nZXR0aSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICdSYXBwb3J0b1Byb2dldHRvOiBQcm9qZWN0SUQgbmVjZXNzYXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcgUHJvamVjdCd9ID0gJ0NvbXBpbGFuZG8gaWwgcmFwcG9ydG8gZGVsIHByb2dldHRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ1JlcG9ydGlzdGljYSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnfSA9ICdJbXBvc3NpYmlsZSBhZ2dpb3JuYXJlIGxlIGltcG9zdGF6aW9uaSB1dGVudGUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgYWRkZWQhJ30gPSAnUHJvZ2V0dG8gYWdnaXVudG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdXBkYXRlZCEnfSA9ICdQcm9nZXR0byBhZ2dpb3JuYXRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJ0F0dGl2aXTDoCBhZ2dpdW50YSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayB1cGRhdGVkISd9ID0gJ0F0dGl2aXTDoCBhZ2dpb3JuYXRhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgVXNlcklEIGlzIG5vdCB2YWxpZCEnfSA9ICdMbyBVc2VySUQgbm9uIMOoIHZhbGlkbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCB1c2VyIGRhdGEhJ30gPSAnTm9uIHB1b2kgaW5zZXJpcmUgaSBkYXRpIGRlbGxcJ3V0ZW50ZSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICdOb24gc2VpIGFiaWxpdGF0byBhZCBpbnNlcmlyZSBpIHBlcmlvZGkgZGkgdGVtcG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHRpbmcnfSA9ICdJbXBvc3RhemlvbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciB1cGRhdGVkISd9ID0gJ1V0ZW50ZSBhZ2dpb3JuYXRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGFkZGVkISd9ID0gJ1V0ZW50ZSBpbnNlcml0byEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICdBZ2dpdW5naSB1biB1dGVudGUgcGVyIGxhIGNvbnRhYmlsaXp6YXppb25lIHRlbXBvcmFsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJ051b3ZvIHV0ZW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAnU3RhdG8gZGkgcGVyaW9kbyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAnVmlzdGE6ICVzIHJpY2hpZXN0byEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ob3RpZmljYXRpb24vVGltZUFjY291bnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ0luc2VyaXJlIGxcJ29yYXJpbyBsYXZvcmF0aXZvISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJ0dpb3JuaSBsYXZvcmF0aXZpIGluY29tcGxldGknOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnU3BlY2lmaWNhcmUgYWxtZW5vIHVuIGdpb3JubyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ0luc2VyaW1lbnRvIG1hc3Npdm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICdTZWxlemlvbmFyZSB1biBtb3Rpdm8gcGVyIGxcJ2Fzc2VuemEhJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5J30gPSAnQ2FuY2VsbGFyZSB2b2NlIGRpIHJlbmRpY29udGF6aW9uZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ0NvbmZlcm1hcmUgaW5zZXJpbWVudG8nOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICdNb2R1bG8gZGkgbm90aWZpY2EgZGVsbFwnaW50ZXJmYWNjaWEgYWdlbnRlIHBlciB2ZWRlcmUgaWwgbnVtZXJvIGRpIGdpb3JuaSBsYXZvcmF0aXZpIGluY29tcGxldGkgcGVyIGxcJ3V0ZW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ05vbWUgcHJlZGVmaW5pdG8gcGVyIGxlIG51b3ZlIGF6aW9uaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnTm9tZSBwcmVkZWZpbml0byBwZXIgaSBudW92aSBwcm9nZXR0aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICdWYWxvcmUgcHJlZGVmaW5pdG8gcGVyIGxhIGRhdGEgZGkgZmluZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJ1ZhbG9yZSBwcmVkZWZpbml0byBwZXIgbGEgZGF0YSBkaSBpbml6aW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnVmFsb3JlIHByZWRlZmluaXRvIHBlciBsYSBkZXNjcml6aW9uZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJ1ZhbG9yZSBwcmVkZWZpbml0byBwZXIgaSBnaW9ybmkgZGkgYXNzZW56YS92YWNhbnphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJ1ZhbG9yZSBwcmVkZWZpbml0byBwZXIgbG8gc3RyYW9yZGluYXJpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJ1ZhbG9yZSBwcmVkZWZpbml0byBwZXIgbFwnb3JhcmlvIHNldHRpbWFuYWxlIHN0YW5kYXJkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnVmFsb3JlIHByZWRlZmluaXRvIHBlciBsZSBudW92ZSBhemlvbmkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnVmFsb3JlIHByZWRlZmluaXRvIHBlciBpIG51b3ZpIHByb2dldHRpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ1ZhbG9yZSBwcmVkZWZpbml0byBwZXIgaSBudW92aSB1dGVudGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHByb2plY3RzIGZvciB3aGljaCBhIHJlbWFyayBpcyByZXF1aXJlZC4gSWYgdGhlIFJlZ0V4cCBtYXRjaGVzIG9uIHRoZSBwcm9qZWN0LCB5b3UgaGF2ZSB0byBpbnNlcnQgYSByZW1hcmsgdG9vLiBUaGUgUmVnRXhwIHVzZSB0aGUgc214IHBhcmFtZXRlci4nfSA9CiAgICAgICAgJ0RlZmluaXNjZSBpIHByb2dldHRpIHBlciBpIHF1YWxpIHVuYSBhbm5vdGF6aW9uZSDDqCBvYmJsaWdhdG9yaWEuIFNlIGxhIFJlZ0V4cCBjb2luY2lkZSBpbCBwcm9nZXR0byBzaSDDqCBvYmJsaWdhdGkgYWQgaW5zZXJpcmUgdW5hIGFubm90YXppb25lLiBMYSBSZWdFeHAgdXRpbGl6emEgaWwgcGFyYW1ldHJvIHNteC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ0RldGVybWluYSBzZSBpbCBtb2R1bG8gc3RhdGlzdGljaGUgcHXDsiBnZW5lcmFyZSBpbmZvcm1hemlvbmkgZGkgcmVuZGljb250YXppb25lIHRlbXBvcmFsZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnTW9kaWZpY2EgbGUgaW1wb3N0YXppb25pIGRlbGxhIHJlbmRpY29udGF6aW9uZSB0ZW1wb3JhbGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnTW9kaWZpY2EgcmVnaXN0cm8gb3JhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJ051bWVybyBtYXNzaW1vIGRpIGdpb3JuaSBuZWwgcGFzc2F0byBpbiBjdWkgw6ggcG9zc2liaWxlIGluc2VyaXJlIGxlIHVuaXTDoCBkaSBsYXZvcm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJ1NlIGFiaWxpdGF0bywgbW9zdHJhIHNvbG8gZ2xpIHV0ZW50aSBjaGUgaGFubm8gYWdnaXVudG8gdm9jaSBkaSB0ZW1wbyBsYXZvcm8gYWwgcHJvZ2V0dG8gc2VsZXppb25hdG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBkcm9wZG93biBlbGVtZW50cyBpbiB0aGUgZWRpdCBzY3JlZW4gYXJlIGNoYW5nZWQgdG8gbW9kZXJuaXplZCBhdXRvY29tcGxldGlvbiBmaWVsZHMuJ30gPQogICAgICAgICdTZSBhYmlsaXRhdGEsIGdsaSBlbGVtZW50aSBhIHRlbmRpbmEgbmVsbGEgc2NoZXJtYXRhIGRpIG1vZGlmaWNhIHNvbm8gc29zdGl0dWl0aSBkYSBwacO5IG1vZGVybmkgY2FtcGkgY29uIGNvbXBsZXRhbWVudG8gYXV0b21hdGljby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGNhbiBiZSB1c2VkIGluc3RlYWQgdHdvIGxpc3Qgb2YgcHJvamVjdHMgKGxhc3QgYW5kIGFsbCBvbmVzKS4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnU2UgYWJpbGl0YXRhLCBpbCBmaWx0cm8gcGVyIGkgcHJvZ2V0dGkgcHJlY2VkZW50aSBwdcOyIGVzc2VyZSB1dGlsaXp6YXRvIGFsIHBvc3RvIGRpIGR1ZSBlbGVuY2hpIGRpIHByb2dldHRpICh1bHRpbW8gZSB0dXR0aSkuIFB1w7IgZXNzZXJlIHV0aWxpenphdG8gc29sbyBzZSBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gw6ggYWJpbGl0YXRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnU2UgYWJpbGl0YXRhLCBpbCBmaWx0cm8gcGVyIGkgcHJvZ2V0dGkgcHJlY2VkZW50aSDDqCBhdHRpdm8gaW4gbW9kbyBwcmVkZWZpbml0byBzZSBjaSBzb25vIHByb2dldHRpIHByZWNlZGVudGkuIFB1w7IgZXNzZXJlIHV0aWxpenphdG8gc29sbyBzZSBFbmFibGVBdXRvQ29tcGxldGlvbiBlIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgc29ubyBhYmlsaXRhdGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICdTZSBhYmlsaXRhdG8sIMOoIHBvc3NpYmlsZSBwZXIgZ2xpIHV0ZW50aSBpbnNlcmlyZSBpIGNhbXBpICJwZXJpb2RvIGRpIHZhY2FuemEiLCAicGVyaW9kbyBkaSBtYWxhdHRpYSIgZSAic3RyYW9yZGluYXJpbyIgY29uIGRhdGUgbXVsdGlwbGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLid9ID0KICAgICAgICAnTnVtZXJvIG1hc3NpbW8gZGkgZ2lvcm5pIGxhdm9yYXRpdmkgaW4gY3VpIMOoIHBvc3NpYmlsZSBpbnNlcmlyZSBsZSB2b2NpIGRpIHVuaXTDoCBkaSBsYXZvcm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICdOdW1lcm8gbWFzc2ltbyBkaSBnaW9ybmkgbGF2b3JhdGl2aSBjaGUgbm9uIGhhbm5vIHZvY2kgZGkgdW5pdMOgIGRpIGxhdm9ybyBvbHRyZSBpbCBxdWFsZSB2ZXJyw6AgbW9zdHJhdG8gdW4gYXZ2aXNvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICdWaXN0YSBHbG9iYWxlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJ1JhcHBvcnRvIGRlbCB0ZW1wbyBkaSBwcm9nZXR0by4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJ0VzcHJlc3Npb25pIHJlZ29sYXJpIHBlciB2aW5jb2xhcmUgbGlzdGEgZGkgYXppb25pIGluIGJhc2UgYWwgcHJvZ2V0dG8gc2VsZXppb25hdG8uIExhIGNoaWF2ZSBjb250aWVuZSB1blwnZXNwcmVzc2lvbmUgcmVnb2xhcmUgcGVyIGlsL2kgcHJvZ2V0dG8vaSwgaWwgY29udGVudXRvIGNvbnRpZW5lIGVzcHJlc3Npb25pIHJlZ29sYXJpIHBlciBsZSBhemlvbmkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBwcm9qZWN0IGxpc3QgYWNjb3JkaW5nIHRvIHVzZXIgZ3JvdXBzLiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3Vwcy4nfSA9CiAgICAgICAgJ0VzcHJlc3Npb25pIHJlZ29sYXJpIHBlciB2aW5jb2xhcmUgbGlzdGEgZGkgcHJvZ2V0dGkgaW4gYmFzZSBhaSBncnVwcGkgdXRlbnRlLiBMYSBjaGlhdmUgY29udGllbmUgdW5cJ2VzcHJlc3Npb25lIHJlZ29sYXJlIHBlciBpbC9pIHByb2dldHRvL2ksIGlsIGNvbnRlbnV0byBjb250aWVuZSBlc3ByZXNzaW9uaSByZWdvbGFyaSBwZXIgbGUgYXppb25pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgaWYgd29ya2luZyBob3VycyBjYW4gYmUgaW5zZXJ0ZWQgd2l0aG91dCBzdGFydCBhbmQgZW5kIHRpbWVzLid9ID0KICAgICAgICAnU3BlY2lmaWNhIHNlIGxlIG9yZSBsYXZvcmF0aXZlIHBvc3Nvbm8gZXNzZXJlIGluc2VyaXRlIHNlbnphIG9yYXJpIGRpIGluaXppbyBlIGRpIGZpbmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ1F1ZXN0byBtb2R1bG8gZm9yemEgZ2xpIGluc2VyaW1lbnRpIGluIFRpbWVBY2NvdW50aW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5vdGlmaWNhdGlvbiBtb2R1bGUgZ2l2ZXMgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0b28gbWFueSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cy4nfSA9CiAgICAgICAgJ1F1ZXN0byBtb2R1bG8gZGkgbm90aWZpY2EgZ2VuZXJhIHVuIGF2dmlzbyBzZSBjaSBzb25vIHRyb3BwaSBnaW9ybmkgbGF2b3JhdGl2aSBub24gY29tcGxldGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJ1JlbmRpY29udGF6aW9uZSBUZW1wb3JhbGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAnTW9kaWZpY2EgcmVuZGljb250YXppb25lIHRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAnUGFub3JhbWljYSBzdWxsYSBjb250YWJpbGl6emF6aW9uZSB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICdSZXBvcnRpc3RpY2Egc3VsbGEgY29udGFiaWxpenphemlvbmUgdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdJbXBvc3RhemlvbmkgcGVyIGxhIGNvbnRhYmlsaXp6YXppb25lIHRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICdWaXN0YSBjb250YWJpbGl6emF6aW9uZSB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJ0NvbnRhYmlsaXp6YXppb25lIHRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyB1c2UgaWYgc29tZSBhY3Rpb25zIHJlZHVjZWQgdGhlIHdvcmtpbmcgaG91cnMgKGZvciBleGFtcGxlLCBpZiBvbmx5IGhhbGYgb2YgdGhlIHRyYXZlbGluZyB0aW1lIGlzIHBhaWQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCkuJ30gPQogICAgICAgICdEYSB1dGlsaXp6YXJlIHNlIGFsY3VuZSBhemlvbmkgaGFubm8gcmlkb3R0byBsZSBvcmUgbGF2b3JhdGl2ZSAocGVyIGVzZW1waW86IHNlIHNvbG8gbGEgbWV0w6AgZGVsIHRlbXBvIGRpIHZpYWdnaW8gw6ggcGFnYXRvOiBDaGlhdmUgPT4gVmlhZ2dpbzsgQ29udGVudXRvID0+IDUwKS4nOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdDYW5jZWwnLAogICAgJ0NvbmZpcm0gaW5zZXJ0JywKICAgICdEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5JywKICAgICdNYXNzIEVudHJ5JywKICAgICdObycsCiAgICAnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnLAogICAgJ1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmphX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAn5pys5b2T44Gr6Kmy5b2T5pel44Gu5oOF5aCx44KS5YmK6Zmk44GX44G+44GZ44GL77yfJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJ+OCv+OCpOODoOODrOOCs+ODvOODieOBrue3qOmbhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJ+ioreWumuOBuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICfml6XliKXjg4rjg5PjgrLjg7zjgrfjg6fjg7MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICfjgqjjg7Pjg4jjg6rjg7zjga7jgarjgYTml6UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAn5YWo44Gm44Gu5pel44KS6YG45oqeJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICflhajkvZPlhaXlipsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICfoqbLlvZPjga7ml6Xjga7mrKDli6TnkIbnlLHjgpLlhaXlipvjgZfjgabjgY/jgaDjgZXjgYQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICfkvJHmmoflj5blvpfkuK0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ+eXheasoOS4rSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ+S7o+S8keS4rSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJyog44Gu6aCF55uu44Gv5YWl5Yqb5b+F6aCI44Gn44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAn6ZaL5aeL5pmC6ZaT44Go57WC5LqG5pmC6ZaT44CB44G+44Gf44Gv5pyf6ZaT44KS5oyH5a6a44GX44Gm44GP44Gg44GV44GE44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QnfSA9ICfjg5fjg63jgrjjgqfjgq/jg4gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ+OCv+OCueOCryc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICfms6jph4gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnOOaWh+Wtl+S7peS4iuOBruazqOmHiOOCkui/veWKoOOBl+OBpuOBj+OBoOOBleOBhOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAn77yN77yI44Oe44Kk44OK44K577yJ44Gu5pmC6ZaT44Gv5YWl5Yqb44Gn44GN44G+44Gb44KTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICfnubDjgorov5TjgZXjgozjgZ/mmYLplpPjga/oqLHlj6/jgZXjgozjgb7jgZvjgpPjgILplovlp4vmmYLliLvjga/liKXjga7plpPpmpTjgajkuIDoh7TjgZfjgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ+S4jeato+OBquODleOCqeODvOODnuODg+ODiOOBp+OBmSEg5pmC6ZaT44Gu5YWl5Yqb44GvSEg6TU3jga7jg5Xjgqnjg7zjg57jg4Pjg4jjgavlvpPjgaPjgabjgY/jgaDjgZXjgYQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAnMjQ6MDDjga/ntYLkuobmmYLplpPjgajjgZfjgabjga7jgb/lhaXlipvlj6/og73jgafjgZknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfkuI3mraPjgarmmYLplpPjgafjgZkhIDHml6Xjga8yNOaZgumWk+OBp+OBmSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAn57WC5LqG5pmC6ZaT44Gu5YmN44Gr6ZaL5aeL5pmC6ZaT44KS6Kit5a6a44GZ44KL44GT44Go44Gv44Gn44GN44G+44Gb44KT44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnRGllc2UgRW5kemVpdCB3dXJkZSBiZXJlaXRzIGluIGVpbmVtIGFuZGVyZW4gRWludHJhZyBhbmdlZ2ViZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfjgIzmnJ/plpPjgI3jga7oqK3lrprjgYzkuI3mraPjgafjgZnjgILvvIgyNOaZgumWk+S7peS4iuOBr+ioseWPr+OBleOCjOOBvuOBm+OCk++8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLid9ID0gJ+OAjOacn+mWk+OAjeOBruioreWumuOBjOS4jeato+OBp+OBmeOAgu+8iDDjga/oqLHlj6/jgZXjgozjgb7jgZvjgpPvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ+OAjOacn+mWk+OAjeOBruioreWumuOBjOS4jeato+OBp+OBmeOAgu+8iO+8je+8iOODnuOCpOODiuOCue+8ieOBr+ioseWPr+OBleOCjOOBvuOBm+OCk++8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ+ihjOOBrui/veWKoCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJzHpoIXnm67jga7jgb/pgbjmip7jgafjgY3jgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBzaWNrIGxlYXZlPyd9ID0gJ+eXheasoOOBq+ioreWumuOBleOCjOOBn+acn+mWk+S4reOBq+eovOWDjeOBl+OBvuOBl+OBn+OBi++8nyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHZhY2F0aW9uPyd9ID0gJ+S8keaah+OBq+ioreWumuOBleOCjOOBn+acn+mWk+S4reOBq+eovOWDjeOBl+OBvuOBl+OBn+OBi++8nyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAn5Luj5LyR44Gr6Kit5a6a44GV44KM44Gf5pyf6ZaT5Lit44Gr56i85YON44GX44G+44GX44Gf44GL77yfJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJzE25pmC6ZaT5Lul5LiK56i85YON44GX44G+44GX44Gf44GL77yfJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXcnfSA9ICfmnIjliKXkuIDopqcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJ+i2hemBjuWLpOWLme+8iO+8muaZgumWk++8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodGhpcyBtb250aCknfSA9ICfotoXpgY7li6Tli5nvvIjku4rmnIjvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRvdGFsKSd9ID0gJ+i2hemBjuWLpOWLme+8iOe0r+ioiO+8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUnfSA9ICfotoXpgY7li6Tli5nlj6/og73mrovvvIjmmYLplpPvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAn5LyR5pqH77yI5pel5pWw77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ+S8keaah+WPluW+l+aXpeaVsO+8iOS7iuaciO+8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodG90YWwpJ30gPSAn5LyR5pqH5Y+W5b6X5pel5pWw77yI57Sv6KiI77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJ+S8keaah+WPluW+l+aui+aXpeaVsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ+eXheasoO+8iOaXpeaVsO+8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ+eXheasoOaXpeaVsO+8iOS7iuaciO+8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0b3RhbCknfSA9ICfnl4XmrKDml6XmlbDvvIjntK/oqIjvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICfliY3mnIgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBtb250aCd9ID0gJ+asoeaciCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAn5puc5pelJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICfnqLzlg43mmYLplpMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAn57eP56i85YON5pmC6ZaTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ+ODpuODvOOCtuODvOOBruODl+ODreOCuOOCp+OCr+ODiOS4gOimpyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICfmmYLplpPvvIjku4rmnIjvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ+aZgumWk++8iOmAmueul++8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmFuZCB0b3RhbCd9ID0gJ+WQiOioiCc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICfmmYLplpPkvJroqIjjg6zjg53jg7zjg4gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJ+aciOWIpeODiuODk+OCsuODvOOCt+ODp+ODsyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAn5pel5LuY44Gr56e75YuV44GZ44KLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ+ODpuODvOOCtuODu+ODrOODneODvOODiCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAn5pyI5ZCI6KiIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpZmV0aW1lIHRvdGFsJ30gPSAn6YCa566X5ZCI6KiIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAn5Luj5LyRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAn5LyR5pqHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICfnl4XmrKAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gcmVtYWluaW5nJ30gPSAn5LyR5pel5q6L5pel5pWwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ+ODl+ODreOCuOOCp+OCr+ODiOODu+ODrOODneODvOODiCc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAn44OX44Ot44K444Kn44Kv44OI44O744Os44Od44O844OIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJ+WgseWRiuOBruamguimgeOBq+enu+WLleOBmeOCiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ+acrOODl+ODreOCuOOCp+OCr+ODiOOBruOCouOCr+ODhuOCo+ODluODpuODvOOCtuODvOOBruOBv+ihqOekuuOBl+OBpuOBhOOBvuOBmeOAgeWkieabtOOBmeOCi+OBq+OBr+ioreWumuOCkuabtOaWsOOBl+OBpuOBj+OBoOOBleOBhOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICfjgZnjgbnjgabjga7jgr/jgqTjg6DjgqLjgqvjgqbjg7Pjg4jjg6bjg7zjgrbjg7zjgpLooajnpLrjgZfjgabjgYTjgb7jgZnjgIHlpInmm7TjgZnjgovjgavjga/oqK3lrprjgpLmm7TmlrDjgZfjgabjgY/jgaDjgZXjgYTjgIInOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAn5pmC6ZaT5Lya6KiIIOODl+ODreOCuOOCp+OCr+ODiOioreWumuOBrue3qOmbhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJ+aWsOimj+ODl+ODreOCuOOCp+OCr+ODiOOBrui/veWKoCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ+ioreWumuOBq+enu+WLleOBmeOCiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJ+aWsOimj+ODl+ODreOCuOOCp+OCr+ODiOOBrui/veWKoCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFByb2plY3QgU2V0dGluZ3MnfSA9ICfjg5fjg63jgrjjgqfjgq/jg4jjga7nt6jpm4YnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ+WQjOWQjeOBruODl+ODreOCuOOCp+OCr+ODiOOBjOWtmOWcqOOBl+OBvuOBmeOAguWQjeensOOCkuWkieabtOOBl+OBpuOBj+OBoOOBleOBhOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJ+ioreWumuOBrue3qOmbhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ+aWsOimj+OCv+OCueOCr+OBrui/veWKoCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIHByb2plY3RzLCB0YXNrcyBvciB1c2Vycyd9ID0gJ+ODl+ODreOCuOOCp+OCr+ODiOOAgeOCv+OCueOCr+OAgeOBvuOBn+OBr+ODpuODvOOCtuODvOOBruODleOCo+ODq+OCv+ODquODs+OCsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJ+aZgumWk+OBr+WJiumZpOOBp+OBjeOBvuOBm+OCkyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICfjg5fjg63jgrjjgqfjgq/jg4jkuIDopqcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAn44K/44K544Kv5LiA6KanJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAn5paw6KaP44K/44K544Kv44Gu6L+95YqgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ+OCv+OCueOCr+ioreWumic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAn5ZCM5ZCN44Gu44K/44K544Kv44GM5a2Y5Zyo44GX44G+44GZ44CC5ZCN56ew44KS5aSJ5pu044GX44Gm44GP44Gg44GV44GE44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ+ODpuODvOOCtuS4gOimpyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNldHRpbmdzJ30gPSAn44Om44O844K244O86Kit5a6aJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBzZWUgb3ZlcnRpbWVzJ30gPSAn44Om44O844K244O844Gv44Kq44O844OQ44O844K/44Kk44Og44KS6KaL44KL44GT44Go44GM44Gn44GN44G+44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgT3ZlcnRpbWUnfSA9ICfotoXpgY7li6Tli5njgpLooajnpLonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIGNyZWF0ZSBwcm9qZWN0cyd9ID0gJ+ODpuODvOOCtuODvOOBr+ODl+ODreOCuOOCp+OCr+ODiOOCkuS9nOaIkOOBp+OBjeOBvuOBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAn44OX44Ot44K444Kn44Kv44OI44Gu5paw6KaP6L+95Yqg44KS6Kix5Y+v44GZ44KLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBza2lwIHRpbWUgYWNjb3VudGluZyd9ID0gJ+ODpuODvOOCtuODvOOBr+OCv+OCpOODoOOCouOCq+OCpuODs+ODhuOCo+ODs+OCsOOBruOCueOCreODg+ODl+OCkuioseWPr+OBleOCjOOBvuOBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyB0aW1lIGFjY291bnRpbmcgc2tpcHBpbmcnfSA9ICfjgr/jgqTjg6DjgqLjgqvjgqbjg7Pjg4bjgqPjg7PjgrDjga7jgrnjgq3jg4Pjg5fjgpLoqLHlj6/jgZnjgosnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQsIHRpbWUgYWNjb3VudGluZyBpcyBlZmZlY3RpdmVseSBvcHRpb25hbCBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICfjgZPjga7jgqrjg5fjgrfjg6fjg7PjgYzpgbjmip7jgZXjgozjgovjgajjgIHjg6bjg7zjgrbjg7zjgavlr77jgZnjgovjgr/jgqTjg6DjgqLjgqvjgqbjg7Pjg4bjgqPjg7PjgrDjgYzjgqrjg5fjgrfjg6fjg7PpoIXnm67mibHjgYTjgajjgarjgorjgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2lsbCBiZSBubyB3YXJuaW5ncyBhYm91dCBtaXNzaW5nIGVudHJpZXMgYW5kIG5vIGVudHJ5IGVuZm9yY2VtZW50Lid9ID0KICAgICAgICAn5pyq5YWl5Yqb44Gu44Ko44Oz44OI44Oq44Gr5a++44GZ44KL6K2m5ZGK44KE44CB44Ko44Oz44OI44Oq44G444Gu5YWl5Yqb44KS5by35Yi244GZ44KL6KGo56S644Gv44Gq44GP44Gq44KK44G+44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU3BhbnMnfSA9ICfmnJ/plpMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAn6ZaL5aeL54K5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICfntYLkuobngrknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJ+S8keaahyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ+aZgumWkyAvIOmAsSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAn5om/6KqN5riI44Gu6LaF6YGO5Yuk5YuZJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICfjgrnjgr/jg7zjg4jml6Xku5gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAn5q2j44GX44GE5pel5LuY44KS5YWl5Yqb44GX44Gm44GP44Gg44GV44GEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAn57WC5LqG5pmC6ZaTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAn57WC5LqG54K544Gu5YmN44Gr6ZaL5aeL54K544KS6Kit5a6a44GZ44KL44GT44Go44Gv44Gn44GN44G+44Gb44KT44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICfkvJHmmofml6XmlbAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAn6YCx44GC44Gf44KK44Gu5pmC6ZaTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAn5q6L5qWt5pmC6ZaTJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICfmnJ/plpPjgYzmnKroqK3lrprjgafjgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAn5pyf6ZaT44KS6L+95Yqg44GX44Gm44GP44Gg44GV44GE44CCJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ+OCv+OCpOODoOODu+ODrOOCs+ODvOODieOCkuihqOekuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ+S4gOimpyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICfliY3jga7ml6UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICfmrKHjga7ml6UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAn6Kmy5b2T44GZ44KL44OH44O844K/44GM44GC44KK44G+44Gb44KT44CCJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJ+W3peaVsOOCkuaMv+WFpeOBp+OBjeOBvuOBm+OCk++8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAn5YmN44OX44Ot44K444Kn44Kv44OIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJ+S4jeato+OBquaZgumWk+OBp+OBmSEgMeaXpeOBrzI05pmC6ZaT44Gn44GZJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICflt6XmlbDjgpLliYrpmaTjgafjgY3jgb7jgZvjgpPvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICflhaXlipvjgZXjgozjgZ/ml6Xku5jjga/mnJ/plpPlpJbjgafjgZnjga7jgafjgIHmjL/lhaXjgZnjgovkuovjga/jgafjgY3jgb7jgZvjgpPjgafjgZfjgZ/jgILjgoLjgYbkuIDluqYoISnml6Xku5jjgpLlhaXlipvjgZfjgabjgY/jgaDjgZXjgYTjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICfmnKrlrozkuobjga7lj6/li5Xml6UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAn5YWl5Yqb44Gr5oiQ5Yqf44GX44G+44GX44GfISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAn6KSH5pWw5pel44KS5YWl5Yqb5Lit44Gr44Ko44Op44O844GM55m655Sf44GX44G+44GX44GfICEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAn6KSH5pWw5pel44Gr44KP44Gf44KL56i85YON5a6f57i+44Gu5YWl5Yqb44Gr5oiQ5Yqf44GX44G+44GX44GfICEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ+WFpeWKm+OBleOCjOOBn+aXpeS7mOOBr+S4jeato+OBp+OBmSAhIOaXpeS7mOOBr+acrOaXpeOBq+WkieabtOOBleOCjOOBvuOBl+OBnyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICfmjIflrprjgZXjgozjgZ/mnJ/plpPjgYzoqK3lrprjgZXjgozjgabjgYTjgarjgYTjgYvjgIHjgb7jgZ/jga/mjIflrprjgZXjgozjgZ/ml6Xku5jjgYzlrprnvqnjgZXjgozjgZ/mnJ/plpPlpJbjgafjgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJ+WLpOaAoOeuoeeQhuaLheW9k+iAheOBq+mAo+e1oeOBl+OBpuacn+mWk+OCkuabtOaWsOOBl+OBpuOBj+OBoOOBleOBhO+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAn5YmN5Zue6YG45oqe44GV44KM44Gf44OX44Ot44K444Kn44Kv44OIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJ+WFqOODl+ODreOCuOOCp+OCr+ODiCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICdSZXBvcnRpbmdQcm9qZWN0OiDjg5fjg63jgrjjgqfjgq/jg4hJROOBruWFpeWKm+OBjOW/heimgeOBp+OBmeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcgUHJvamVjdCd9ID0gJ+ODl+ODreOCuOOCp+OCr+ODiOOCkuWgseWRiuOBmeOCiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICfloLHlkYrjgZnjgosnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gdXBkYXRlIHVzZXIgc2V0dGluZ3MhJ30gPSAn44Om44O844K244O86Kit5a6a44KS5pu05paw44Gn44GN44G+44Gb44KT77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgYWRkZWQhJ30gPSAn44OX44Ot44K444Kn44Kv44OI44KS6L+95Yqg44GX44G+44GX44Gf77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdXBkYXRlZCEnfSA9ICfjg5fjg63jgrjjgqfjgq/jg4jjgpLmm7TmlrDjgZfjgb7jgZfjgZ/vvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBhZGRlZCEnfSA9ICfjgr/jgrnjgq/jgpLov73liqDjgZfjgb7jgZfjgZ/vvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayB1cGRhdGVkISd9ID0gJ+OCv+OCueOCr+OCkuabtOaWsOOBl+OBvuOBl+OBn++8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgVXNlcklEIGlzIG5vdCB2YWxpZCEnfSA9ICdVc2VySUQg44GM54Sh5Yq544Gn44GZ77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJ+ODpuODvOOCtuODvOODh+ODvOOCv+OBjOaMv+WFpeOBp+OBjeOBvuOBm+OCk++8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJ+acn+mWk+OCkui/veWKoOOBp+OBjeOBvuOBm+OCk++8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXR0aW5nJ30gPSAn6Kit5a6aJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgdXBkYXRlZCEnfSA9ICfjg6bjg7zjgrbjg7zjgpLmm7TmlrDjgZfjgb7jgZfjgZ/vvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICfjg6bjg7zjgrbjg7zjgpLov73liqDjgZfjgb7jgZfjgZ/vvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICfjgr/jgqTjg6DjgqLjgqvjgqbjg7Pjg4bjgqPjg7PjgrDjgavjg6bjg7zjgrbjg7zjgpLov73liqAuLi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICfmlrDopo/jg6bjg7zjgrbjg7wnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIFN0YXR1cyd9ID0gJ+acn+mWk+OBrueKtuaFiyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAn5rOo55uu77yB77yaICVzIOOBruWFpeWKm+OBjOW/heimgeOBp+OBmeOAgic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML05vdGlmaWNhdGlvbi9UaW1lQWNjb3VudGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAn5Yuk5YuZ5a6f57i+44KS5YWl5Yqb44GX44Gm44GP44Gg44GV44GEJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAn5pyq5a6M5LqG44Gu5Y+v5YuV5pelJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ+WwkeOBquOBj+OBqOOCguS4gOaXpeOBr+mBuOaKnuOBl+OBpuOBj+OBoOOBleOBhCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAn5YWo5L2T5YWl5YqbJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJ30gPSAn5qyg5Yuk55CG55Sx44KS6YG45oqe44GX44Gm44GP44Gg44GV44GEJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5J30gPSAn44Ko44Oz44OI44Oq44O844KS5YmK6ZmkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAn5oy/5YWl44Gu56K66KqNJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAn44Om44O844K244Gu5LiN5a6M5YWo44Gq56i85YON5pel5pWw44KS44Kr44Km44Oz44OI44GX6YCa55+l44GZ44KL44Ko44O844K444Kn44Oz44OI44O744Kk44Oz44K/44O844OV44Kn44Kk44K544Gn44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAn5paw6KaP5pON5L2c44Gr5a++44GZ44KL44OH44OV44Kp44Or44OI44Gu5ZCN56ewJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ+aWsOimj+ODl+ODreOCuOOCp+OCr+ODiOOBq+WvvuOBmeOCi+ODh+ODleOCqeODq+ODiOOBruWQjeensCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJ+OAjOe1guS6huaXpeOAjeOBruODh+ODleOCqeODq+ODiOWApCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAn44CM6ZaL5aeL5pel44CN44Gu44OH44OV44Kp44Or44OI5YCkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAn44CM6Kqs5piO5paH44CN44Gu44OH44OV44Kp44Or44OI5YCkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy4nfSA9ICfjgIzkvJHmmofjgI3jga7jg4fjg5Xjgqnjg6vjg4jlgKQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBvdmVydGltZS4nfSA9ICfjgIzotoXpgY7li6Tli5njgI3jga7jg4fjg5Xjgqnjg6vjg4jlgKQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJ+mAseOBguOBn+OCiuWfuuacrOeovOWDjeaZgumWk+OBruODh+ODleOCqeODq+ODiOWApCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuJ30gPSAn5paw6KaP5pON5L2c44Gr5a++44GZ44KL44OH44OV44Kp44Or44OI44Gu44K544OG44O844K/44K5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAn5paw6KaP44OX44Ot44K444Kn44Kv44OI44Gr5a++44GZ44KL44OH44OV44Kp44Or44OI44Gu44K544OG44O844K/44K5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgdXNlcnMuJ30gPSAn5paw6KaP44Om44O844K244Gr5a++44GZ44KL44OH44OV44Kp44Or44OI44Gu44K544OG44O844K/44K5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHByb2plY3RzIGZvciB3aGljaCBhIHJlbWFyayBpcyByZXF1aXJlZC4gSWYgdGhlIFJlZ0V4cCBtYXRjaGVzIG9uIHRoZSBwcm9qZWN0LCB5b3UgaGF2ZSB0byBpbnNlcnQgYSByZW1hcmsgdG9vLiBUaGUgUmVnRXhwIHVzZSB0aGUgc214IHBhcmFtZXRlci4nfSA9CiAgICAgICAgJ+OAjOazqOmHiOOAjeOCqOODs+ODiOODquODvOOCkuW/heimgeOBqOOBmeOCi+mgheebruOCkuWumue+qeOBl+OBvuOBmeOAgiDjgoLjgZfjg5fjg63jgrjjgqfjgq/jg4jlkI3jgYzjgZPjgZPjgafoqK3lrprjgZfjgZ/mraPopo/ooajnj77jgavjg57jg4Pjg4HjgZnjgovloLTlkIjjgIHjgIzms6jph4jvvZ3jga/lv4XpoIjpoIXnm67jgajjgarjgorjgb7jgZnjgILigLvmraPopo/ooajnj77jgavjga9TTVjjg5Hjg6njg6Hjg7zjgr/jgpLkvb/jgYTjgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ+e1seioiOODouOCuOODpeODvOODq+OBjOOCv+OCpOODoOOCouOCq+OCpuODs+ODhuOCo+ODs+OCsOaDheWgseOCkueUn+aIkOOBmeOCi+OBi+mBuOaKnuOBl+OBpuOBj+OBoOOBleOBhCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICfmmYLplpPkvJroqIjjga7oqK3lrprjgpLnt6jpm4YnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZC4nfSA9ICfjgr/jgqTjg6Djg6zjgrPjg7zjg4njgpLnt6jpm4YnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAn5L2V5pel5YmN44GL44KJ44Ov44O844Kt44Oz44Kw44O744Om44OL44OD44OI44Gu5paw6KaP55m76Yyy44GM5Y+v6IO944Gn44GC44KL44GL44Gu6Kit5a6a44Gn44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJ+acieWKueaZguOBq+OBr+OAgeipsuW9k+OBruODl+ODreOCuOOCp+OCr+ODiOOBq+eovOWDjeaZgumWk+OCkuaKleWFpeOBl+OBpuOBhOOCi+ODpuODvOOCtuODvOOBruOBv+ihqOekuuOBleOCjOOBvuOBmSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAn5pyJ5Yq55pmC44Gr44Gv44CB57eo6ZuG55S76Z2i44Gu44OJ44Ot44OD44OX44OA44Km44Oz44Ko44Os44Oh44Oz44OI44Gv6Ieq5YuV44OV44Kj44O844Or44OJ44Gr572u44GN5o+b44GI44KJ44KM44G+44GZ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJ+acieWKueaZguOBq+OBr+S7peWJjeOBruODl+ODreOCuOOCp+OCr+ODiOODleOCo+ODq+OCv+ODvOOCkumBuOaKnuOBmeOCi+OBk+OBqOOBjOWPr+iDveOBp+OBmSjpgJrluLjjga/liY3lm57jgYrjgojjgbPjgZnjgbnjgaYp44CC44GT44Gu6aCF55uu44GvIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiDjgYzmnInlirnjgavjgarjgaPjgabjgYTjgovmmYLjga7jgb/liKnnlKjlj6/og70nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGlzIGFjdGl2ZSBieSBkZWZhdWx0IGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBFbmFibGVBdXRvQ29tcGxldGlvbiBhbmQgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBhcmUgZW5hYmxlZC4nfSA9CiAgICAgICAgJ+acieWKueaZguOBq+OBr+OAjOS7peWJjeOBruODl+ODreOCuOOCp+OCr+ODiOOAjeOBjOWtmOWcqOOBmeOCi+aZguOBr+OAgeS7peWJjeOBruODl+ODreOCuOOCp+OCr+ODiOODleOCo+ODq+OCv+ODvOOBjOODh+ODleOCqeODq+ODiOWApOOBq+OBquOCiuOBvuOBmeOAguOBk+OBrumgheebruOBryBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIOOBjOacieWKueOBq+OBquOBo+OBpuOBhOOCi+aZguOBruOBv+WIqeeUqOWPr+iDvSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLid9ID0KICAgICAgICAn5pyJ5Yq544Gr44GZ44KM44Gw5LiA5Zue44Gu57eo6ZuG44Gn44CB6KSH5pWw44Gu5pel44Gr5rih44KK44CM5LyR5pqH44CN44CM55eF5qyg44CN44CM5Luj5LyR44CN44GM6YG45oqe44Gn44GN44G+44GZJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLid9ID0KICAgICAgICAnMeOBpOS7peS4iuOBruODr+ODvOOCreODs+OCsOODu+ODpuODi+ODg+ODiOOCkuioreWumuOBmeOBueOBjeacgOWkp+OBrueovOWDjeaXpeaVsOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLid9ID0KICAgICAgICAn6K2m5ZGK44GM6KGo56S644GV44KM44KL44GT44Go44Gq44GP44Ko44Oz44OI44Oq5Ye65p2l44KL44CB5Za25qWt5pel44Gu5pyA5aSn5pel5pWw44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3Lid9ID0gJ+amguimgSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJ+ODl+ODreOCuOOCp+OCr+ODiOWIpeaZgumWk+S8muioiOODrOODneODvOODiCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAn44OX44Ot44K444Kn44Kv44OI44Gr44KI44Gj44Gm6KGM5YuV44Oq44K544OI44KS57We44KK6L6844KA44Gf44KB44Gu5q2j6KaP6KGo54++44CC44CM6Y2144CN44Gn44Gv44OX44Ot44K444Kn44Kv44OI44Gr5a++44GZ44KL5q2j6KaP6KGo54++44KS44CB44CM5YaF5a6544CN44Gn44GvYOihjOWLlWDjgavlr77jgZnjgovmraPopo/ooajnj77jgpLmjIflrprjgZnjgovjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAn44Om44O844K244Kw44Or44O844OX44Gr44KI44Gj44Gm44OX44Ot44K444Kn44Kv44OI44Oq44K544OI44KS57We44KK6L6844KA44Gf44KB44Gu5q2j6KaP6KGo54++44CC44CM6Y2144CN44Gn44Gv44OX44Ot44K444Kn44Kv44OI44Gr5a++44GZ44KL5q2j6KaP6KGo54++44KS44CB44CM5YaF5a6544CN44Gn44Gv44Kr44Oz44Oe5Yy65YiH44KK44Gu44Om44O844K244Oq44K544OI44KS5oyH5a6a44GZ44KL44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICfmpa3li5nmmYLplpPjgpLjgIzplovlp4vmmYLplpPjgI3jgajjgIzntYLkuobmmYLplpPjgI3jga7mjIflrprjg4rjgrfjgafmlrDopo/nmbvpjLLjgafjgY3jgovjgYvjganjgYbjgYvmjIflrprjgZnjgovjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAnVGltZUFjY291bnRpbmfjg6Ljgrjjg6Xjg7zjg6vjgajlkIznrYnjga7poIXnm67jgYzoqK3lrprlv4XpoIjjgajjgarjgorjgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICfjgYLjgb7jgorjgavjgoLlpJrjgY/jga7kuI3lrozlhajjgarnqLzlg43ml6XjgYzjgYLjgovloLTlkIjjgIHjgZPjga7pgJrnn6Xjg6Ljgrjjg6Xjg7zjg6vjga/orablkYrjgpLkuI7jgYjjgb7jgZnjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAn44K/44Kk44Og44Ki44Kr44Km44Oz44OG44Kj44Oz44KwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJ+OCv+OCpOODoOOCouOCq+OCpuODs+ODhuOCo+ODs+OCsOOCkue3qOmbhuOBmeOCiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAn44K/44Kk44Og44Ki44Kr44Km44Oz44OG44Kj44Oz44Kw44Gu5qaC6KaBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAn44K/44Kk44Og44Ki44Kr44Km44Oz44OG44Kj44Oz44Kw44Gu5aCx5ZGKJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICfjgr/jgqTjg6DjgqLjgqvjgqbjg7Pjg4bjgqPjg7PjgrDjga7oqK3lrponOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHZpZXcuJ30gPSAn44K/44Kk44Og44Ki44Kr44Km44Oz44OG44Kj44Oz44KwIOODk+ODpeODvCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAn5pmC6ZaT5Lya6KiIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ+alreWLmeS4iuOBruihjOWLleOBq+OBiuOBhOOBpuOAgeeovOWDjeaZgumWk+OBqOOBl+OBpuioiOS4iuOBmeOCi+aZgumWk+OCkuiqv+aVtOOBmeOCi+W/heimgeOBjOOBguOCi+WgtOWQiOOBq+OAgeOBk+OBruioreWumuOCkuS9v+eUqOOBl+OBvuOBmeOAgu+8iOS+i++8muOAjOenu+WLleaZgumWk+OAjeOBrjUwJeOBruOBv+WLpOWLmeaZgumWk+ebuOW9k+OBqOOBmeOCi+WgtOWQiOOAjOmNteOAjeOBq2Bqb3VybmV5YOOAgeOAjOWGheWuueOAjeOBq2A1MGDjgajoqK3lrpopJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdDb25maXJtIGluc2VydCcsCiAgICAnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeScsCiAgICAnTWFzcyBFbnRyeScsCiAgICAnTm8nLAogICAgJ1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJywKICAgICdQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6Om1rX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAn0JTQsNC70Lgg0YHRgtC1INGB0LjQs9GD0YDQvdC4INC00LXQutCwINGB0LDQutCw0YLQtSDQtNCwINCz0Lgg0LjQt9Cx0YDQuNGI0LXRgtC1INCy0YDQtdC80LjRmtCw0YLQsCDQt9CwINC+0LLQvtGYINC00LXQvT8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAn0JjQt9C80LXQvdC4INCX0LDQv9C40YHQuCDQt9CwINCS0YDQtdC80LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICfQntC00Lgg0LLQviDQv9C+0LTQtdGB0YPQstCw0ZrQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICfQndCw0LLQuNCz0LDRhtC40ZjQsCDRgdC/0L7RgNC10LQg0JTQsNGC0YPQvCAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICfQlNC10L3QvtCy0Lgg0LHQtdC3INC30LDQv9C40YHQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYWxsIGRheXMnfSA9ICfQntC30L3QsNGH0Lgg0LPQuCDRgdC40YLQtSDQtNC10L3QvtCy0LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBlbnRyeSd9ID0gJ9Cc0LDRgdC+0LLQtdC9INCy0L3QtdGBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAn0JLQtSDQvNC+0LvQuNC80LUg0LjQt9Cx0LXRgNC10YLQtSDQv9GA0LjRh9C40L3QsCDQt9CwINCy0LDRiNC10YLQviDQvtGC0YHRg9GB0YLQstC+INCy0L4g0L7Qt9C90LDRh9C10L3QuNGC0LUg0LTQtdC90L7QstC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAn0J3QsCDQvtC00LzQvtGAJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICfQntGC0YHRg9GC0LXQvSDQv9C+0YDQsNC00Lgg0LHQvtC70LXRgdGCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAn0J/RgNC10LrRg9Cy0YDQtdC80LXQvdC+INC+0YLRgdGD0YHRgtCy0L4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhICIqIi4nfSA9ICfQl9Cw0LTQvtC70LbQuNGC0LXQu9C90LjRgtC1INC/0L7Qu9C40ZrQsCDRgdC1INC+0LfQvdCw0YfQtdC90Lgg0YHQviAiKiIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAn0KLRgNC10LHQsCDQtNCwINGB0LUg0LLQvdC10YHQtSDQv9C+0YfQtdGC0L3QviDQuCDQutGA0LDRmNC90L4g0LLRgNC10LzQtSDQuNC70Lgg0LLRgNC10LzQtdC90YHQutC4INC/0LXRgNC40L7QtC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ9Cf0YDQvtC10LrRgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAn0JfQsNC00LDRh9CwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFyayd9ID0gJ9Cd0LDQv9C+0LzQtdC90LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICfQndC10LPQsNGC0LjQstC90L4g0LLRgNC10LzQtSDQvdC1INC1INC00L7Qt9Cy0L7Qu9C10L3Qvi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ9CU0YPQv9C70LjRgNCw0ZrQtSDQvdCwINGH0LDRgdC+0LLQuCDQvdC1INC1INC00L7Qt9Cy0L7Qu9C10L3Qvi4g0JLRgNC10LzQtSDQvdCwINC/0L7Rh9C90YPQstCw0ZrQtSDRgdC1INGB0L7QstC/0LDRk9CwINGB0L4g0LTRgNGD0LMg0LjQvdGC0LXRgNCy0LDQuy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ9Cd0LXQstCw0LvQuNC00LXQvSDRhNC+0YDQvNCw0YIhINCS0L3QtdGB0LXRgtC1INCy0YDQtdC80LUg0YHQviDRhNC+0YDQvNCw0YIg0KfQpzrQnNCcLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcyNDowMCDQtSDQtNC+0LfQstC+0LvQtdC90L4g0YHQsNC80L4g0LrQsNC60L4g0LrRgNCw0Zgg0L3QsCDQstGA0LXQvNC10YLQvi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfQndC10LLQsNC70LjQtNC10L0g0YfQsNGBISDQlNC10L3QvtGCINC40LzQsCDRgdCw0LzQviAyNCDRh9Cw0YHQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJ9CS0YDQtdC80LUg0L3QsCDQt9Cw0LLRgNGI0YPQstCw0ZrQtSDRgtGA0LXQsdCwINC00LAg0LHQuNC00LUg0L/QviDQv9C+0YfQtdGC0L3QvtGC0L4g0LLRgNC10LzQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICfQlNGD0L/Qu9C40YDQsNGa0LUg0L3QsCDRh9Cw0YHQvtCy0Lgg0L3QtSDQtSDQtNC+0LfQstC+0LvQtdC90L4uINCS0YDQtdC80LUg0L3QsCDQt9Cw0LLRgNGI0YPQstCw0ZrQtSDRgdC1INGB0L7QstC/0LDRk9CwINGB0L4g0LTRgNGD0LMg0LjQvdGC0LXRgNCy0LDQuy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ9Cd0LXQstCw0LvQuNC00LXQvSDQv9C10YDQuNC+0LQhINCU0LXQvdC+0YIg0LjQvNCwINGB0LDQvNC+IDI0INGH0LDRgdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLid9ID0gJ9CS0LDQu9C40LTQvdC40L7RgiDRgNC+0Log0LzQvtGA0LAg0LTQsCDQtSDQv9C+0LPQvtC70LXQvCDQvtC0INC90YPQu9CwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAn0J3QtdCy0LDQu9C40LTQtdC9INC/0LXRgNC40L7QtCEg0J3QtdCz0LDRgtC40LLQvdC4INC/0LXRgNC40L7QtNC4INC90LUg0YHQtSDQtNC+0LfQstC+0LvQtdC90LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAn0JTQvtC00LDQtNC4INC10LTQtdC9INGA0LXQtCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ9Cc0L7QttC10YLQtSDQtNCwINC40LfQsdC10YDQtdGC0LUg0YHQsNC80L4g0LXQtNC10L0g0L/QvtC70LUg0L7QtCDQtdC70LXQvNC10L3RgiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBzaWNrIGxlYXZlPyd9ID0gJ9CU0LDQu9C4INGB0YLQtSDRgdC40LPRg9GA0L3QuCDQtNC10LrQsCDRgdGC0LUg0YDQsNCx0L7RgtC10LvQtSDQtNC+0LTQtdC60LAg0YHRgtC1INCx0LjQu9C1INC90LAg0LHQvtC70LXQtNGD0LLQsNGa0LU/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAn0JTQsNC70Lgg0YHRgtC1INGB0LjQs9GD0YDQvdC4INC00LXQutCwINGB0YLQtSDRgNCw0LHQvtGC0LXQu9C1INC00L7QtNC10LrQsCDRgdGC0LUg0LHQuNC70LUg0L3QsCDQvtC00LzQvtGAPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAn0JTQsNC70Lgg0YHRgtC1INGB0LjQs9GD0YDQvdC4INC00LXQutCwINGB0YLQtSDRgNCw0LHQvtGC0LXQu9C1INC00L7QtNC10LrQsCDRgdGC0LUg0LHQuNC70LUg0L3QsCDQv9GA0LXQutGD0LLRgNC10LzQtdC90L4g0L7RgtGB0YPRgdGC0LLQviA/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJ9CU0LDQu9C4INGB0YLQtSDRgdC40LPRg9GA0L3QuCDQtNC10LrQsCDRgdGC0LUg0YDQsNCx0L7RgtC10LvQtSDQv9C+0LLQtdGc0LUg0L7QtCAxNiDRh9Cw0YHQsD8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJ9CS0YDQtdC80LXQvdGB0LrQviDQuNC30LLQtdGB0YLRg9Cy0LDRmtC1INC30LAg0LzQtdGB0LXRh9C10L0g0L/RgNC10LPQu9C10LQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJ9Cf0YDQtdC60YPQstGA0LXQvNC10L3QsCDRgNCw0LHQvtGC0LAgKNCn0LDRgdC+0LLQuCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAn0J/RgNC10LrRg9Cy0YDQtdC80LXQvdCwINGA0LDQsdC+0YLQsCAo0L7QstC+0Zgg0LzQtdGB0LXRhiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRvdGFsKSd9ID0gJ9Cf0YDQtdC60YPQstGA0LXQvNC10L3QsCDRgNCw0LHQvtGC0LAgKNCy0LrRg9C/0L3QviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAn0J/RgNC10L7RgdGC0LDQvdCw0YLQviDQv9GA0LXQutGD0LLRgNC10LzQtdC90L4g0L7RgtGB0YPRgdGC0LLQviAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAn0J7QtNC80L7RgCAo0LLQviDQtNC10L3QvtCy0LgpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ9CY0YHQutC+0YDQuNGB0YLQtdC9INC+0LTQvNC+0YAgKNC+0LLQvtGYINC80LXRgdC10YYpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICfQmNGB0LrQvtGA0LjRgdGC0LXQvSDQvtC00LzQvtGAICjQstC60YPQv9C90L4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJ9Cf0YDQtdC+0YHRgtCw0L3QsNGCINC+0LTQvNC+0YAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICfQkdC+0LvQtdC00YPQstCw0ZrQsCAo0LLQviDQtNC10L3QvtCy0LgpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAn0JHQvtC70LXQtNGD0LLQsNGa0LUgKNC+0LLQvtGYINC80LXRgdC10YYpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ9CR0L7Qu9C10LTRg9Cy0LDRmtCwICjQstC60YPQv9C90L4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAn0J/RgNC10YLRhdC+0LTQtdC9INC80LXRgdC10YYnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBtb250aCd9ID0gJ9Ch0LvQtdC00LXQvSDQvNC10YHQtdGGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICfQlNC10L0g0LLQviDRgdC10LTQvNC40YbQsNGC0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJ9Cg0LDQsdC+0YLQvdC4INCn0LDRgdC+0LLQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICfQktC60YPQv9C90L4g0L7QtNGA0LDQsdC+0YLQtdC90Lgg0YfQsNGB0L7QstC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ9Cf0YDQtdCz0LvQtdC0INC90LAg0JrQvtGA0LjRgdC90LjRh9C60Lgg0J/RgNC+0LXQutGCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChtb250aGx5KSd9ID0gJ9Cn0LDRgdC+0LLQuCAo0LzQtdGB0LXRh9C90L4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChMaWZldGltZSknfSA9ICfQp9Cw0YHQvtCy0LggKNCy0LrRg9C/0L3QviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICfQodC10LLQutGD0L/QvdC+JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJ9CY0LfQstC10YHRgtGD0LLQsNGa0LUg0LfQsCDQktGA0LXQvNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICfQndCw0LLQuNCz0LDRhtC40ZjQsCDRgdC/0L7RgNC10LQg0JzQtdGB0LXRhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAn0J7QtNC4INC00L4g0LTQsNGC0YPQvCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHJlcG9ydHMnfSA9ICfQmtC+0YDQuNGB0L3QuNGH0LrQuCDQuNC30LLQtdGI0YLQsNGY0LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJ9CS0LrRg9C/0L3QviDQt9CwINCc0LXRgdC10YYnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICfQodC10LLQutGD0L/QvdC+ICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSBsZWF2ZSd9ID0gJ9Cf0YDQtdC60YPQstGA0LXQvNC10L3QviDQvtGC0YHRg9GB0YLQstC+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAnT9C00LzQvtGAJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICfQkdC+0LvQtdC00YPQstCw0ZrQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICfQv9GA0LXQvtGB0YLQsNC90LDRgiDQntC00LzQvtGAJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ9CY0LfQstC10YjRgtCw0ZjQuCDQt9CwINCf0YDQvtC10LrRgtC4JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICfQuNC30LLQtdGI0YLQsNGYINC30LAg0J/RgNC+0LXQutGC0L7Rgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXcnfSA9ICfQntC00Lgg0LLQviDQv9GA0LXQs9C70LXQtCDQvdCwINC40LfQstC10YjRgtCw0ZjQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ9Cc0L7QvNC10L3RgtCw0LvQvdC+INGB0LUg0L/RgNC40LrQsNC20LDQvdC4INGB0LDQvNC+INCw0LrRgtC40LLQvdC40YLQtSDQutC+0YDQuNGB0L3QuNGG0Lgg0L3QsCDQvtCy0L7RmCDQv9GA0L7QtdC60YIuINCX0LAg0LTQsCDQs9C+INGB0LzQtdC90LjRgtC1INC+0LLQsCwg0LLQtSDQvNC+0LvQuNC80LUg0L3QsNC/0YDQsNCy0LXRgtC1INC40LfQvNC10L3QsCDQstC+INC/0L7QtNC10YHRg9Cy0LDRmtCw0YLQsDonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IGFsbCB0aW1lIGFjY291bnRpbmcgdXNlcnMgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAn0JzQvtC80LXQvdGC0LDQu9C90L4g0YHQtSDQv9GA0LjQutCw0LbQsNC90Lgg0YHQsNC80L4g0LrQvtGA0LjRgdC90LjRhtC4INC60L7QuCDQv9GA0LXRgdC80LXRgtGD0LLQsNCw0YIg0LLRgNC10LzQtS4g0JfQsCDQtNCwINCz0L4g0YHQvNC10L3QuNGC0LUg0L7QstCwLCDQstC1INC80L7Qu9C40LzQtSDQvdCw0L/RgNCw0LLQtdGC0LUg0LjQt9C80LXQvdCwINCy0L4g0L/QvtC00LXRgdGD0LLQsNGa0LDRgtCwOic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICfQmNC30LzQtdC90Lgg0J/QvtC00LXRgdGD0LLQsNGa0LAg0LfQsCDQn9GA0LXRgdC80LXRgtGD0LLQsNGa0LUg0L3QsCDQktGA0LXQvNC1INC90LAg0J/RgNC+0LXQutGCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAn0JTQvtC00LDQtNC4INC/0YDQvtC10LrRgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ9Ce0LTQuCDQstC+INC/0YDQtdCz0LvQtdC0INC90LAg0L/QvtC00LXRgdGD0LLQsNGa0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICfQlNC+0LTQsNC00Lgg0J/RgNC+0LXQutGCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ9Cj0YDQtdC00Lgg0LPQviDQn9C+0LTQtdGB0YPQstCw0ZrQsNGC0L4g0L3QsCDQn9GA0L7QtdC60YLQvtGCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICfQktC10ZzQtSDQv9C+0YHRgtC+0Lgg0L/RgNC+0LXQutGCINGB0L4g0LLQsNC60LLQviDQuNC80LUsINCy0LUg0LzQvtC70LjQvNC1LCDQuNC30LHQtdGA0LXRgtC1INC00YDRg9Cz0L4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAn0JjQt9C80LXQvdC4INCf0L7QtNC10YHRg9Cy0LDRmtCwINC30LAg0J/RgNC10YHQvNC10YLRg9Cy0LDRmtC1INC90LAg0JLRgNC10LzQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ9CU0L7QtNCw0LTQuCDQt9Cw0LTQsNGH0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAn0JvQuNGB0YLQsCDQvdCwINC/0YDQvtC10LrRgtC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgTGlzdCd9ID0gJ9Cb0LjRgdGC0LAg0L3QsCDQl9Cw0LTQsNGH0LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICfQlNC+0LTQsNC00Lgg0JfQsNC00LDRh9CwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ9CY0LfQvNC10L3QuCDQn9C+0LTQtdGB0YPQstCw0ZrQsCDQt9CwINCX0LDQtNCw0YfQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAn0JLQtdGc0LUg0L/QvtGB0YLQvtC4INC30LDQtNCw0YfQsCDRgdC+INCy0LDQutCy0L4g0LjQvNC1LiDQktC1INC80L7Qu9C40LzQtSDQuNC30LHQtdGA0LXRgtC1INC00YDRg9Cz0L4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ9Cb0LjRgdGC0LAg0L3QsCDQmtC+0YDQuNGB0L3QuNGG0LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2VlIG92ZXJ0aW1lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAn0J/RgNC40LrQsNC20Lgg0J/RgNC10LrRg9Cy0YDQtdC80LXQvdC+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBjcmVhdGUgcHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ9CU0L7Qt9Cy0L7Qu9C4INC60YDQtdC40YDQsNGa0LUg0L3QsCDQv9GA0L7QtdC60YLQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2tpcCB0aW1lIGFjY291bnRpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgdGltZSBhY2NvdW50aW5nIHNraXBwaW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoaXMgb3B0aW9uIGlzIHNlbGVjdGVkLCB0aW1lIGFjY291bnRpbmcgaXMgZWZmZWN0aXZlbHkgb3B0aW9uYWwgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIHdpbGwgYmUgbm8gd2FybmluZ3MgYWJvdXQgbWlzc2luZyBlbnRyaWVzIGFuZCBubyBlbnRyeSBlbmZvcmNlbWVudC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNwYW5zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJ9Cf0L7Rh9C10YLQvtC6INC90LAg0J/QtdGA0LjQvtC0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICfQmtGA0LDRmCDQvdCwINCf0LXRgNC40L7QtCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAn0JTQtdC90L7QstC4INC90LAg0J7QtNC80L7RgCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ9Cn0LDRgdC+0LLQuCDQstC+INCd0LXQtNC10LvQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAn0JDQstGC0L7RgNC40LfQuNGA0LDQvdC+INCf0YDQtdC60YPQstGA0LXQvNC10L3Qvic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAn0J/QvtGH0LXRgtC+0LonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAn0JLQtSDQvNC+0LvQuNC80LUg0LLQvdC10YHQtdGC0LUg0LLQsNC70LjQtNC10L0g0LTQsNGC0YPQvC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICfQmtGA0LDRmCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJ9Ca0YDQsNGY0L7RgiDQvNC+0YDQsCDQtNCwINCx0LjQtNC1INC/0YDQtdC0INC/0L7Rh9C10YLQvtC60L7Rgi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJ9CU0LXQvdC+0LLQuCDQstC+INCe0YLRgdGD0YHRgtCy0L4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAn0KfQsNGB0L7QstC4INCd0LXQtNC10LvQvdC+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAn0J/RgNC10LrRg9Cy0YDQtdC80LXQvdC+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICfQndC1INGB0LUg0L/RgNC+0L3QsNGY0LTQtdC90Lgg0LfQsNC/0LjRgdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICfQktC90LXRgdC4INCy0YDQtdC80LXQvdGB0LrQuCDQv9C10YDQuNC+0LQnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAn0J/RgNC10LPQu9C10LTQsNGYINCS0YDQtdC80LXQvdGB0LrQuCDQl9Cw0L/QuNGB0LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICfQn9GA0LXQs9C70LXQtCDQvdCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ9Cf0YDQtdGC0YXQvtC00LXQvSDQtNC10L0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICfQodC70LXQtNC10L0g0LTQtdC9JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJ9Cd0LUg0YHQtSDQv9GA0L7QvdCw0ZjQtNC10L3QuCDQt9Cw0L/QuNGB0Lgg0LfQsCDQvtCy0L7RmCDQtNC10L0uJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgV29ya2luZyBEYXlzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJ9Cj0YHQv9C10YjQtdC9INCy0L3QtdGBISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAn0JPRgNC10YjQutCwINC/0YDQuCDQstC80LXRgtC90YPQstCw0ZrQtSDQvdCwINC/0L7QstC10ZzQtSDQtNCw0YLRg9C80LghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzISd9ID0gJ9Cj0YHQv9C10YjQvdC+INGB0LUg0LLQvdC10YHQtdC90Lgg0L/QvtC00LDRgtC+0YbQuNGC0LUg0LfQsCDQtNCw0YLRg9C80LjRgtC1ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJ30gPSAn0JLQvdC10YHQtdC90LjQvtGCINC00LDRgtGD0Lwg0LHQtdGI0LUg0LLQsNC70LjQtNC10L0hINCU0LDRgtGD0Lwg0LHQtdGI0LUg0L/RgNC+0LzQtdC90LXRgtC+INC00L4g0LTQtdC90LXRgS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ9CY0LfQstC10YHRgtGD0LLQsNGa0LAnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gdXBkYXRlIHVzZXIgc2V0dGluZ3MhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgVXNlcklEIGlzIG5vdCB2YWxpZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCB1c2VyIGRhdGEhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byBhZGQgdGltZSBwZXJpb2QhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHRpbmcnfSA9ICfQn9C+0LTQtdGB0YPQstCw0ZrQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHVzZXIgdG8gdGltZSBhY2NvdW50aW5nLi4uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML05vdGlmaWNhdGlvbi9UaW1lQWNjb3VudGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAn0JLQtSDQvNC+0LvQuNC80LUg0LLQvdC10YHQtdGC0LUg0LPQviDQstCw0YjQtdGC0L4g0YDQsNCx0L7RgtC90L7RgtC+INCy0YDQtdC80LUhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ9CS0LUg0LzQvtC70LjQvNC1INC40LfQsdC10YDQtdGC0LUg0LHQsNGA0LXQvCDQtdC00LXQvSDQtNC10L0hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgRW50cnknfSA9ICfQnNCw0YHQvtCy0LXQvSDQktC90LXRgSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ9CS0LUg0LzQvtC70LjQvNC1INC40LfQsdC10YDQtdGC0LUg0ZjQsCDQv9GA0LjRh9C40L3QsCDQt9CwINC+0YLRgdGD0YHRgtCy0L4hJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5J30gPSAn0JjQt9Cx0YDQuNGI0Lgg0LPQviDQktC90LXRgdC+0YIg0YHQviDQn9GA0LXRgdC80LXRgtCw0L3QviDQktGA0LXQvNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAn0J/RgNC40YTQsNGC0Lgg0LTQvtC00LDQstCw0ZrQtSc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ9Cc0L7QtNGD0LvQsCDQt9CwINC40L3RgtC10YDRhNC10ZjRgSDQvdCwINCQ0LPQtdC90YIg0LfQsCDQtNCwINCz0L4g0LPQu9C10LTQsCDQsdGA0L7RmNC+0YIg0L3QsCDQvdC10LfQsNCy0YDRiNC10L3QuCDRgNCw0LHQvtGC0L3QuCDQtNC10L3QvtCy0Lgg0LfQsCDQutC+0YDQuNGB0L3QuNC6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ9CS0L7QvtCx0LjRh9Cw0LXQvdC+INC40LzQtSDQt9CwINC90L7QstC4INCw0LrRhtC40LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ9CS0L7QvtCx0LjRh9Cw0LXQvdC+INC40LzQtSDQt9CwINC90L7QstC4INC/0YDQvtC10LrRgtC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJ9CS0L7QvtCx0LjRh9Cw0LXQvdC+INC/0L7QtNC10YHRg9Cy0LDRmtC1INC30LAg0LrRgNCw0LXQvSDQtNCw0YLRg9C8Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAn0JLQvtC+0LHQuNGH0LDQtdC90L4g0L/QvtC00LXRgdGD0LLQsNGa0LUg0LfQsCDQv9C+0YfQtdGC0LXQvSDQtNCw0YLRg9C8Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRlc2NyaXB0aW9uLid9ID0gJ9CS0L7QvtCx0LjRh9Cw0LXQvdC+INC/0L7QtNC10YHRg9Cy0LDRmtC1INC30LAg0L7Qv9C40YEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy4nfSA9ICfQktC+0L7QsdC40YfQsNC10L3QviDQv9C+0LTQsNGB0YPQstCw0ZrQtSDQt9CwINC+0YLRgdGD0YHRgtCy0L4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAn0JLQvtC+0LHQuNGH0LDQtdC90L4g0L/QvtC00LDRgdGD0LLQsNGa0LUg0LfQsCDQv9GA0LXQutGD0LLRgNC10LzQtdC90L4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICfQktC+0L7QsdC40YfQsNC10L3QviDQv9C+0LTQsNGB0YPQstCw0ZrQtSDQt9CwINGB0YLQsNC90LTQsNGA0LTQtdC9INCx0YDQvtGYINC90LAg0YDQsNCx0L7RgtC90Lgg0YfQsNGB0L7QstC4INCy0L4g0L3QtdC00LXQu9CwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuJ30gPSAn0JLQvtC+0LHQuNGH0LDQtdC9INGB0YLQsNGC0YPRgSDQt9CwINC90L7QstC4INCw0LrRhtC40LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAn0JLQvtC+0LHQuNGH0LDQtdC9INGB0YLQsNGC0YPRgSDQt9CwINC90L7QstC4INC/0YDQvtC10LrRgtC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ9CS0L7QvtCx0LjRh9Cw0LXQvSDRgdGC0LDRgtGD0YEg0LfQsCDQvdC+0LLQuCDQutC+0YDQuNGB0L3QuNGG0LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHByb2plY3RzIGZvciB3aGljaCBhIHJlbWFyayBpcyByZXF1aXJlZC4gSWYgdGhlIFJlZ0V4cCBtYXRjaGVzIG9uIHRoZSBwcm9qZWN0LCB5b3UgaGF2ZSB0byBpbnNlcnQgYSByZW1hcmsgdG9vLiBUaGUgUmVnRXhwIHVzZSB0aGUgc214IHBhcmFtZXRlci4nfSA9CiAgICAgICAgJ9CU0LXRhNC40L3QuNGA0LAg0L/RgNC+0LXQutGCINC30LAg0LrQvtGYINC1INC/0L7RgtGA0LXQsdC90L4g0LfQsNCx0LXQu9C10YjQutCwLiDQlNC+0LrQvtC70LrRgyBSZWdFeHAg0YHQtSDRgdC+0YTQv9Cw0ZPQsCDRgdC+INC+0LLQvtGYINC/0YDQvtC10LrRgiwg0YLQvtCz0LDRiCDQtSDQv9C+0YLRgNC10LHQvdC+INC00LAg0LLQvdC10YHQtdGC0LUg0LfQsNCx0LXRh9C10YjQutCwLiBSZWdFeHAg0LrQvtGA0LjRgdGC0Lggc214INC/0LDRgNCw0LzQtdGC0LDRgC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ9Ce0LTRgNC10LTRg9Cy0LAg0LTQsNC70Lgg0LzQvtC00YPQu9C+0YIg0LfQsCDRgdGC0LDRgtC40YHRgtC40LrQsCDQvNC+0LbQtSDQtNCwINCz0LXQvdC10YDQuNGA0LAg0LjQvdGE0L7RgNC80LDRhtC40Lgg0LfQsCDQv9GA0LXRgdC80LXRgtC60LAg0L3QsCDQstGA0LXQvNC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAn0JfQsCDQutC+0LvQutGDINC80L3QvtCz0YMg0LTQtdC90L7QstC4INC/0YDQtdC0INC80L7QttC10YLQtSDQtNCwINCy0LzQtdGC0L3QtdGC0LUg0YDQsNCx0L7RgtC90Lgg0LXQtNC40L3QuNGG0LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJ9CQ0LrQviDQtSDQvtCy0L7Qt9C80L7QttC10L3Qviwg0YHQsNC80L4g0LrQvtGA0LjRgdC90LjRhtC40YLQtSDQutC+0Lgg0ZzQtSDQtNC+0LTQsNC00LDRgiDRgNCw0LHQvtGC0L3QvtGC0L4g0LLRgNC10LzQtSDQvdCwINC40LfQsdGA0LDQvdC40YLQtSDQv9GA0L7QtdC60YLQuCAg0ZzQtSDQsdC40LTQsNGCINC/0YDQuNC60LDQttCw0L3QuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGlzIGFjdGl2ZSBieSBkZWZhdWx0IGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBFbmFibGVBdXRvQ29tcGxldGlvbiBhbmQgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBhcmUgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLid9ID0KICAgICAgICAn0JDQutC+INC1INC+0LLQvtC30LzQvtC20LXQvdC+LCDQvdCwINC60L7RgNC40YHQvdC40LrQvtGCINGc0LUg0LzRgyDQsdC40LTQtSDQtNC+0LfQstC+0LvQtdC90L4g0LTQsCDigJ7QkdC+0LvQtdC00YPQstCw4oCcLCDQtNCwINGA0LDQsdC+0YLQuCDigJ7Qn9GA0LXQutGD0LLRgNC10LzQtdC90L7igJwg0Lgg0LTQsCDQt9C10LzQsCDigJ7QntC00LzQvtGA4oCcINC/0L7QstC10ZzQtSDQv9Cw0YLQuCDQvtC00LXQtNC90LDRiC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICfQnNCw0LrRgdC40LzQsNC70LXQvSDQsdGA0L7RmCDQvdCwINGA0LDQsdC+0YLQvdC4INC00LXQvdC+0LLQuCDQv9C+INGI0YLQviDRgNCw0LHQvtGC0L3QuNGC0LUg0LXQtNC40L3QuNGG0Lgg0YLRgNC10LHQsCDQtNCwINGB0LUg0LLQvNC10YLQvdCw0YIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICfQnNCw0LrRgdC40LzQsNC70LXQvSDQsdGA0L7RmCDQvdCwINGA0LDQsdC+0YLQvdC4INC00LXQvdC+0LLQuCDQsdC10Lcg0YDQsNCx0L7RgtC90Lgg0LXQtNC40L3QuNGG0Lgg0ZzQtSDQstC70LXQt9Cw0YIsINCwINC/0L7RgtC+0LAg0L/RgNC10LTRg9C/0YDQtdC00YPQstCw0ZrQtSDRnNC1INCx0LjQtNCw0YIg0L/RgNC40LrQsNC20LDQvdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJ9Ch0YLQsNC90LTQsNGA0LTQvdC4INC40LfRgNCw0LfQuCDQt9CwINC+0LPRgNCw0L3QuNGH0YPQstCw0ZrQtSDQvdCwINC70LjRgdGC0LAg0L7QtCDQsNC60YbQuNC4INCy0L4g0L3QsNC30L3QsNGH0LXQvSDQv9GA0L7QtdC60YIuINCa0LvRg9GH0L7RgiDRgdC+0LTRgNC20Lgg0YHRgtCw0L3QtNCw0YDQtNC90Lgg0LjQt9GA0LDQt9C4INC30LAg0L/RgNC+0LXQutGCKNC4KSwg0YHQvtC00YDQttC40L3QsNGC0LAg0YHQvtC00YDQttC4INGB0YLQsNC90LTQsNGA0LTQvdC4INC40LfRgNCw0LfQuCDQt9CwINCw0LrRhtC40ZjQsCjQuCkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBwcm9qZWN0IGxpc3QgYWNjb3JkaW5nIHRvIHVzZXIgZ3JvdXBzLiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3Vwcy4nfSA9CiAgICAgICAgJ9Ch0YLQsNC90LTQsNGA0LTQtdC9INC40LfRgNCw0Lcg0LfQsCDQvtCz0YDQsNC90LjRh9GD0LLQsNGa0LUg0L3QsCDQu9C40YHRgtCwINCy0L4g0L/RgNC+0LXQutGCINGB0L/QvtGA0LXQtCDQutC+0YDQuNGB0L3QuNGH0LrQuNGC0LUg0LPRgNGD0L/QuC4g0JrQu9GD0YfQvtGCINGB0LUg0YHQvtC00YDQttC4INC+0LQg0YHRgtCw0L3QtNCw0YDQtNC90Lgg0LjQt9GA0LDQt9C4INC30LAg0L/RgNC+0LXQutGCKNC4KSwg0YHQvtC00YDQttC40L3QsNGC0LAg0YHQvtC00YDQttC4INC70LjRgdGC0LAg0L7QtCDQs9GA0YPQv9C4INC+0LTQtNC10LvQtdC90Lgg0YHQviDQt9Cw0L/QuNGA0LrQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ9Ch0L/QtdGG0LjRhNC40YbQuNGA0LAg0LTQsNC70Lgg0YDQsNCx0L7RgtC90LjRgtC1INGH0LDRgdC+0LLQuCDQvNC+0LbQsNGCINC00LAg0LHQuNC00LDRgiDQtNC+0LTQsNC00LXQvdC4INCx0LXQtyDQstGA0LXQvNC1INC90LAg0L/QvtGH0LXRgtC+0Log0Lgg0LrRgNCw0ZguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ9Ce0LLQvtGYINC80L7QtNGD0Lsg0L/RgNC40YHQuNC70YPQstCwINCy0L3QtdGBINCy0L4g0J/RgNC10YHQvNC10YLQutCwINC90LAg0LLRgNC10LzQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICfQntCy0L7RmCDQuNC30LLQtdGB0YLRg9Cy0LDRh9C60Lgg0LzQvtC00YPQuyDQtNCw0LLQsCDQv9GA0LXQtNGD0L/RgNC10LTRg9Cy0LDRmtC1INCw0LrQviDQuNC80LAg0L/RgNC10LzQvdC+0LPRgyDQvdC10YbQtdC70L7RgdC90Lgg0YDQsNCx0L7RgtC90Lgg0LTQtdC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJ9Cc0LXQvdCw0Z/QvNC10L3RgiDQvdCwINCS0YDQtdC80LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAn0KPRgNC10LTRg9Cy0LDRmtC1INC90LAgINC80LXQvdCw0Z/QvNC10L3RgiDQvdCwINCS0YDQtdC80LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJ9Cf0YDQtdCz0LvQtdC0INC90LAg0LzQtdC90LDRn9C80LXQvdGCINC90LAg0JLRgNC10LzQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJ9CY0LfQstC10YHRgtGD0LLQsNGa0LUg0LfQsCDQvNC10L3QsNGf0LzQtdC90YIg0L3QsCDQktGA0LXQvNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICfQn9C+0LTQtdGB0YPQstCw0ZrQtSDQvdCwICDQvNC10L3QsNGf0LzQtdC90YIg0L3QsCDQktGA0LXQvNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ9Cf0L7Qs9C70LXQtCDQvdCwICDQvNC10L3QsNGf0LzQtdC90YIg0L3QsCDQktGA0LXQvNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZy4nfSA9ICcg0LzQtdC90LDRn9C80LXQvdGCINC90LAg0JLRgNC10LzQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyB1c2UgaWYgc29tZSBhY3Rpb25zIHJlZHVjZWQgdGhlIHdvcmtpbmcgaG91cnMgKGZvciBleGFtcGxlLCBpZiBvbmx5IGhhbGYgb2YgdGhlIHRyYXZlbGluZyB0aW1lIGlzIHBhaWQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCkuJ30gPQogICAgICAgICfQodC1INC60L7RgNC40YHRgtC4INC60L7Qs9CwINC90LXQutC+0Lgg0LDQutGG0LjQuCDQs9C+INGB0LzQsNC70YPQstCw0LDRgiDQsdGA0L7RmNC+0YIg0L3QsCDRgNCw0LHQvtGC0L3QuCDRh9Cw0YHQvtCy0LggKNC90LAg0L/RgNC40LzQtdGALCDQtNC+0LrQvtC70LrRgyDQv9C+0LvQvtCy0LjQvdCwINC+0LQg0LLRgNC10LzQtdGC0L4g0L3QsCDQv9Cw0YLRg9Cy0LDRmtC1INC1INC/0LvQsNGC0LXQvdC+IEtleSA9PiDQv9Cw0YLRg9Cy0LDRmtC1OyAgQ29udGVudCA9PiA1MCkuJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdDb25maXJtIGluc2VydCcsCiAgICAnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeScsCiAgICAnTWFzcyBFbnRyeScsCiAgICAnTm8nLAogICAgJ1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJywKICAgICdQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6Om1zX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnQWRha2FoIGFuZGEgcGFzdGkgaW5naW4gbWVuZ2hhcHVza2FuIFBlcmFrYXVuYW4gTWFzYSBoYXJpIGluaT8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnU3VudGluZyBSZWtvZCBNYXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAnUGVyZ2kga2UgdGV0YXBhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICdOYXZpZ2FzaSBUYXJpa2gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICdIYXJpIHRhbnBhIHBlbnllcnRhYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAnUGlsaWgga2VzZW11YSBoYXJpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICdLZW1hc3VrYW4gYmVzYXItYmVzYXJhbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIHRoZSByZWFzb24gZm9yIHlvdXIgYWJzZW5jZSBmb3IgdGhlIHNlbGVjdGVkIGRheXMnfSA9CiAgICAgICAgJ1BpbGloIHNlYmFiIGtldGlkYWtoYWRpcmFuIGFuZGEgdW50dWsgaGFyaS1oYXJpIHlhbmcgZGlwaWxpaCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiB2YWNhdGlvbid9ID0gJ0JlcmN1dGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ0N1dGkgc2FraXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICdCZXJjdXRpIGxlYmloIG1hc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhICIqIi4nfSA9ICdNZWRhbiB5YW5nIGRpcGVybHVrYW4gZGl0YW5kYWkgZGVuZ2FuICIqIi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICdBbmRhIHBlcmx1IG1lbmdpc2kgcGVybXVsYWFuIGRhbiBha2hpciBtYXNhIGF0YXUgdGVtcG9oIG1hc2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QnfSA9ICdQcm9qZWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ1R1Z2FzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFyayd9ID0gJ0tvbWVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJ1NpbGEgdGFtYmFoIGtvbWVuIGRlbmdhbiBsZWJpaCBkYXJpcGFkYSA4IGthcmFrdGVyISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnV2FrdHUgbmVnYXRpZiB0aWRhayBkaWJlbmFya2FuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnUGVuZ3VsYW5nYW4gamFtIGFkYWxhaCB0aWRhayBkaWJlbmFya2FuLiBNYXNhIG11bGEgcGFkYW4gZGVuZ2FuIHNlbGFuZyBsYWluLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIGZvcm1hdCEgUGxlYXNlIGVudGVyIGEgdGltZSB3aXRoIHRoZSBmb3JtYXQgSEg6TU0uJ30gPSAnRm9ybWF0IHRpZGFrIHNhaCEgU2lsYSBtYXN1a2thbiBtYXNhIGRlbmdhbiBmb3JtYXQgSEg6TU0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJzI0OjAwIGhhbnlhIGRpYmVuYXJrYW4gc2ViYWdhaSBtYXNhIGFraGlyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ01hc2EgdGlkYWsgc2FoISBTZWhhcmkgaGFueWEgbWVtcHVueWFpIDI0IGphbS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJ01hc2EgdGFtYXQgbWVzdGkgc2VsZXBhcyBtYXNhIG11bGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnUGVuZ3VsYW5nYW4gamFtIGFkYWxhaCB0aWRhayBkaWJlbmFya2FuLiBNYXNhIGFraGlyIHBhZGFuIGRlbmdhbiBzZWxhbmcgbGFpbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ1RlbXBvaCB0aWRhayBzYWghIFNlaGFyaSBoYW55YSBtZW1wdW55YWkgMjQgamFtLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLid9ID0gJ1RlbXBvaCBzYWggbWVzdGkgbGViaWggYmVzYXIgZGFyaXBhZGEgc2lmYXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdUZW1wb2ggdGlkYWsgc2FoISBUZW1wb2ggbmVnYXRpZiBhZGFsYWggdGlkYWsgZGliZW5hcmthbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICdUYW1iYWggc2F0dSBiYXJpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ0FuZGEgaGFueWEgYm9sZWggcGlsaWggc2F0dSBlbGVtZW4ga290YWsgc2VtYWshJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nfSA9ICdBZGFrYWggYW5kYSBwYXN0aSBiYWhhd2EgYW5kYSBiZWtlcmphIHNlbWFzYSBhbmRhIGJlcmN1dGkgc2FraXQ/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAnQWRha2FoIGFuZGEgcGFzdGkgYmFoYXdhIGFuZGEgYmVrZXJqYSBzZW1hc2EgYW5kYSBiZXJjdXRpPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAnQWRha2FoIGFuZGEgcGFzdGkgYmFoYXdhIGFuZGEgYmVrZXJqYSBzZW1hc2EgYW5kYSBiZXJjdXRpIGxlYmloIG1hc2E/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJ0FkYWthaCBhbmRhIHBhc3RpIGJhaGF3YSBhbmRhIGJla2VyamEgbGViaWggZGFyaXBhZGEgMTYgamFtPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAnR2FtYmFyYW4gYnVsYW5hbiBtYXNhIG1lbGFwb3JrYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJ0xlYmloIG1hc2EgKEphbSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnS2VyamEgbGViaWggbWFzYSAoYnVsYW4gaW5pKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnS2VyamEgbGViaWggbWFzYSAoanVtbGFoKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUnfSA9ICdCYWtpIGN1dGkgbGViaWggbWFzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICdCZXJjdXRpIChIYXJpKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCknfSA9ICdDdXRpIGRpYW1iaWwgKGJ1bGFuIGluaSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJ0N1dGkgZGlhbWJpbCAoanVtbGFoKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgdmFjYXRpb24nfSA9ICdCYWtpIGN1dGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICdDdXRpIFNha2l0IChIYXJpKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ0N1dGkgc2FraXQgZGlhbWJpbCAoYnVsYW4gaW5pKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0b3RhbCknfSA9ICdDdXRpIHNha2l0IGRpYW1iaWwgKGp1bWxhaCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICdCdWxhbiBzZWJlbHVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICdCdWxhbiBiZXJpa3V0bnlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICdIYXJpIG1pbmdndSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JraW5nIEhvdXJzJ30gPSAnSmFtIGJla2VyamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAnSnVtbGFoIGphbSBiZWtlcmphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ0dhbWJhcmFuIHByb2playBwZW5nZ3VuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICdKYW0gKGJ1bGFuYW4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChMaWZldGltZSknfSA9ICdKYW0gKEhheWF0KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmFuZCB0b3RhbCd9ID0gJ0p1bWxhaCBrZXNlbHVydWhhbic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICdNYXNhIG1lbGFwb3JrYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJ05hdmlnYXNpIGJ1bGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICdQZXJnaSBrZSB0YXJpa2gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAnTGFwb3JhbiBwZW5nZ3VuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAnSnVtbGFoIGJ1bGFuYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICdKdW1sYWggaGF5YXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICdDdXRpIGxlYmloIG1hc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24nfSA9ICdCZXJjdXRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICdDdXRpIHNha2l0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJ0Jha2kgY3V0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydHMnfSA9ICdMYXBvcmFuIHByb2playc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAnTGFwb3JhbiBwcm9qZWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAnUGVyZ2kga2UgdGluamF1YW4gbWVsYXBvcmthbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ1BhZGEgbWFzYSBpbmkgaGFueWEgcGVuZ2d1bmEgYWt0aWYgZGFsYW0gcHJvamVrIGluaSBha2FuIGRpdHVuanVra2FuLiBVbnR1ayBtZW5ndWJhaCBzaWZhdCBpbmksIHNpbGEga2VtYXMga2luaSB0ZXRhcGFuOic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdQYWRhIG1hc2EgaW5pIGtlc2VtdWEgcGVuZ2d1bmEgcGVyYWthdW5hbiBtYXNhIGRpdHVuanVra2FuLiBVbnR1ayBtZW5ndWJhaCB0aW5na2FoIGxha3UgaW5pLCBzaWxhIGtlbWFzIGtpbmkgdGV0YXBhbjonOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAnU3VudGluZyBUZXRhcGFuIFByb2playBQZXJha2F1bmFuIE1hc2EgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAnVGFtYmFoIHByb2playc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ1BlcmdpIGtlIGdhbWJhcmFuIGtlc2VsdXJ1aGFuIHRldGFwYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICdUYW1iYWggcHJvamVrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ1N1bnRpbmcgdGV0YXBhbiBwcm9qZWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ1N1ZGFoIGFkYSBwcm9qZWsgZGVuZ2FuIG5hbWEgaW5pLiBTaWxhIHBpbGloIHlhbmcgbGFpbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MnfSA9ICdTdW50aW5nIFRldGFwYW4gUGVyYWthdW5hbiBNYXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnVGFtYmFoIHR1Z2FzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgcHJvamVjdHMsIHRhc2tzIG9yIHVzZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAnVGVtcG9oIG1hc2EgdGlkYWsgYm9sZWggZGloYXB1c2thbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAnU2VuYXJhaSBwcm9qZWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAnU2VuYXJhaSB0dWdhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgVGFzayd9ID0gJ1RhbWJhaCB0dWdhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICdTdW50aW5nIHRldGFwYW4gdHVnYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ1N1ZGFoIGFkYSB0dWdhcyBkZW5nYW4gbmFtYSBpbmkuIFNpbGEgcGlsaWggeWFuZyBsYWluLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIExpc3QnfSA9ICdTZW5hcmFpIFBlbmdndW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNlZSBvdmVydGltZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ1R1bmp1ayBsZWJpaGFuIG1hc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIGNyZWF0ZSBwcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnQmVuYXJrYW4gY2lwdGFhbiBwcm9qZWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNraXAgdGltZSBhY2NvdW50aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHRpbWUgYWNjb3VudGluZyBza2lwcGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGlzIG9wdGlvbiBpcyBzZWxlY3RlZCwgdGltZSBhY2NvdW50aW5nIGlzIGVmZmVjdGl2ZWx5IG9wdGlvbmFsIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3aWxsIGJlIG5vIHdhcm5pbmdzIGFib3V0IG1pc3NpbmcgZW50cmllcyBhbmQgbm8gZW50cnkgZW5mb3JjZW1lbnQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTcGFucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgQmVnaW4nfSA9ICdUZW1wb2ggTXVsYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnVGVtcG9oIHRhbWF0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICdIYXJpIEJlcmN1dGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICdKYW0gU2VtaW5nZ3UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJ0xlYmloYW4gbWFzYSBkaWJlbmFya2FuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICdUYXJpa2ggTXVsYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICdTaWxhIG1hc3Vra2FuIHRhcmlraCB5YW5nIHNhaC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICdUYXJpa2ggVGFtYXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4nfSA9ICdUZW1wb2ggdGFtYXQgbWVzdGlsYWggc2VsZXBhcyB0ZW1wb2ggbXVsYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJ0hhcmkgY3V0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICdKYW0gbWluZ2d1YW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICdMZWJpaCBtYXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICdUaWFkYSB0ZW1wb2ggbWFzYSBkaWp1bXBhaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAnVGFtYmFoIHRlbXBvaCBtYXNhJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ0xpaGF0IFJla29kIE1hc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICdQYW5kYW5nYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgZGF5J30gPSAnSGFyaSBzZWJlbHVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgZGF5J30gPSAnSGFyaSBzZXRlcnVzbnlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJ1RpYWRhIGRhdGEgZGlqdW1wYWkgcGFkYSBoYXJpIGluaS4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAnVGlkYWsgYm9sZWggbWVtYXN1a2thbiBVbml0IEtlcmphISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnUHJvamVrIExlcGFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJ1RpZGFrIGJvbGVoIG1lbnlpbXBhbiB0ZXRhcGFuLXRldGFwYW4sIGtlcmFuYSBzZWhhcmkgaGFueWEgYWRhIDI0IGphbSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJ1RpZGFrIGJvbGVoIG1lbWJ1YW5nIFVuaXQgS2VyamEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAnVGFyaWtoIGluaSB0ZWxhaCB0ZXJsZWJpaCBoYWQsIHRldGFwaSBhbmRhIG1hc2loIGJlbHVtIG1lbWFzdWtrYW4gaGFyaSBpbmkgbGFnaSwgamFkaSBhbmRhIG1lbmRhcGF0IHNhdHUoISkgcGVsdWFuZyB1bnR1ayBtYXN1a2thbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJ0hhcmkgQmVrZXJqYSBUaWRhayBMZW5na2FwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJ0JlcmpheWEgZGltYXN1a2thbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJ1JhbGF0IHNlbWFzYSBtZW1hc3Vra2FuIGJlYmVyYXBhIHRhcmlraCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnQmVyamF5YSBkaW1hc3Vra2FuIHBlbnllcnRhYW4gdW50dWsgYmViZXJhcGEgdGFyaWtoISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJ30gPSAnVGFyaWtoIHlhbmcgZGltYXN1a2thbiB0aWRhayBzYWghIFRhcmlraCB0ZWxhaCBkaXR1a2FyIGtlcGFkYSBoYXJpIGluaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ1Byb2playBEaXBpbGloIExlcGFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJ1NlbXVhIFByb2playc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICdNZWxhcG9ya2FuUHJvamVrOiBQZXJsdWthbiBQcm9qZWN0SUQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICdNZWxhcG9ya2FuIFByb2playc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICdNZWxhcG9ya2FuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJ1RpZGFrIGJvbGVoIHVudHVrIGtlbWFza2luaSB0ZXRhcGFuLXRldGFwYW4gcGVuZ2d1bmEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgYWRkZWQhJ30gPSAnUHJvamVrIHRlbGFoIGRpdGFtYmFoISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnUHJvamVrIHRlbGFoIGRpa2VtYXNraW5pISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJ1R1Z2FzYW4gdGVsYWggZGl0YW1iYWghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICdUdWdhc2FuIHRlbGFoIGRpa2VtYXNraW5pISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgVXNlcklEIGlzIG5vdCB2YWxpZCEnfSA9ICdJRCBQZW5nZ3VuYSB0aWRhayBzYWghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJ1RpZGFrIGJvbGVoIG1lbWFzdWtrYW4gZGF0YSBwZW5nZ3VuYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICdUaWRhayBib2xlaCBtZW5hbWJhaCB0ZW1wb2ggbWFzYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0dGluZyd9ID0gJ1RldGFwYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciB1cGRhdGVkISd9ID0gJ1BlbmdndW5hIHRlbGFoIGRpa2VtYXNraW5pISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGFkZGVkISd9ID0gJ1BlbmdndW5hIHRlbGFoIGRpdGFtYmFoISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB1c2VyIHRvIHRpbWUgYWNjb3VudGluZy4uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJ1BlbmdndW5hIEJhaGFydSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAnU3RhdHVzIFRlbXBvaCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAnUGFuZGFuZ2FuOiBQZXJsdSAlcyEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ob3RpZmljYXRpb24vVGltZUFjY291bnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ1NpbGEgbWFzdWtrYW4gd2FrdHUga2VyamEgYW5kYSEgJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAnSGFyaSBiZWtlcmphIHRpZGFrIGxlbmdrYXAnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnU2lsYSBwaWxpaCBzZWt1cmFuZy1rdXJhbmdueWEgc2VoYXJpISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAnS2VtYXN1a2FuIGJlc2FyLWJlc2FyYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICdTaWxhIHBpbGloIHNlYmFiIGtldGlkYWtoYWRpcmFuISc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ1BhZGFtIEtlbWFzdWthbiBNYXNhIFBlcmFrYXVuYW4gJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAnU2Foa2FuIGtlbWFzdWthbic7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ01vZHVsIHBlbWJlcml0YWh1YW4gYW50YXJhIG11a2EgZWplbiB1bnR1ayBtZWxpaGF0IGJpbGFuZ2FuIGhhcmkgYmVrZXJqYSB5YW5nIHRpZGFrIGxlbmdrYXAgdW50dWsgcGVuZ2d1bmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnTmFtYSBsYWxhaSB1bnR1ayB0aW5kYWthbiBiYXJ1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdOYW1hIGxhbGFpIHVudHVrIHByb2playBiYXJ1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJ1RldGFwYW4gbGFsYWkgdW50dWsgdGFyaWtoIGFraGlyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAnVGV0YXBhbiBsYWxhaSB1bnR1ayB0YXJpa2ggbXVsYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICdUZXRhcGFuIGxhbGFpIHVudHVrIGdhbWJhcmFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnVGV0YXBhbiBsYWxhaSB1bnR1ayBoYXJpIGN1dGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnVGV0YXBhbiBsYWxhaSB1bnR1ayBsZWJpaCBtYXNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAnVGV0YXBhbiBsYWxhaSB1bnR1ayBqYW0gbWluZ2d1YW4gcGlhd2FpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnVGV0YXBhbiBsYWxhaSB1bnR1ayB0aW5kYWthbiBiYWhhcnUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnVGV0YXBhbiBsYWxhaSB1bnR1ayBwcm9qZWsgYmFoYXJ1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ1RldGFwYW4gbGFsYWkgdW50dWsgcGVuZ2d1bmEgYmFoYXJ1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICdNZW50YWtyaWZrYW4gcHJvamVrLXByb2playB5YW5nIG1hbmEga29tZW4gZGlwZXJsdWthbi4gSmlrYSBVbmdrYXBhbkJpYXNhIHBhZGFuIGRhbGFtIHByb2playBpbmksIGFuZGEgcGVybHUgbWVtYXN1a2thbiBrb21lbiBqdWdhLiBVbmdrYXBhbkJpYXNhIG1lbmdndW5ha2FuIHBhcmFtZXRlciBzbXguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICdNZW5lbnR1a2FuIGppa2EgbW9kdWwgc3RhdGlzdGlrIGJvbGVoIG1lbmphbmEgbWFzYSBtYWtsdW1hdCBwZXJha2F1bmFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdTdW50aW5nIHRldGFwYW4tdGV0YXBhbiBwZXJha2F1bmFuIG1hc2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnU3VudGluZyByZWtvZCBtYXNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3IgaG93IG1hbnkgZGF5cyBhZ28geW91IGNhbiBpbnNlcnQgd29ya2luZyB1bml0cy4nfSA9ICdVbnR1ayBiZXJhcGEgaGFyaSB5YW5nIGxhbHUsIGFuZGEgYm9sZWggbWVtYXN1a2thbiB1bml0IGtlcmphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICdKaWthIGRpYm9sZWhrYW4sIGhhbnlhIHBlbmdndW5hIHlhbmcgdGVsYWggZGl0YW1iYWggbWFzYSBrZXJqYSB1bnR1ayBwcm9qZWsgeWFuZyBkaXBpbGloIGFrYW4gZGl0dW5qdWtrYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBkcm9wZG93biBlbGVtZW50cyBpbiB0aGUgZWRpdCBzY3JlZW4gYXJlIGNoYW5nZWQgdG8gbW9kZXJuaXplZCBhdXRvY29tcGxldGlvbiBmaWVsZHMuJ30gPQogICAgICAgICdKaWthIGRpYm9sZWhrYW4sIHVuc3VyLXVuc3VyIGtvdGFrIHBpbGloYW4gZGFsYW0gc2tyaW4gc3VudGluZyBkaXR1a2FyIGtlcGFkYSBiaWRhbmcgcGVueWlhcGFuIHNlY2FyYSBhdXRvbWF0aWsgbW9kZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJ0ppa2EgZGlha3RpZmthbiwgcGVuYXBpcyBiYWdpIHByb2play1wcm9qZWsgc2ViZWx1bSBib2xlaCBkaWd1bmFrYW4gc2VsYWluIGR1YSBzZW5hcmFpIHByb2play1wcm9qZWsgKHRlcmFraGlyIGRhbiBzZW11YW55YSkuIElhIGJvbGVoIGRpZ3VuYWthbiBoYW55YSBqaWthIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBkaWRheWFrYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBpcyBhY3RpdmUgYnkgZGVmYXVsdCBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgRW5hYmxlQXV0b0NvbXBsZXRpb24gYW5kIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYXJlIGVuYWJsZWQuJ30gPQogICAgICAgICdKaWthIGRpYWt0aWZrYW4sIHBlbmFwaXMgYmFnaSBwcm9qZWstcHJvamVrIHNlYmVsdW0gYWRhbGFoIGFrdGlmIHNlY2FyYSBsYWxhaSBzZWtpcmFueWEgdGVyZGFwYXQgcHJvamVrIGxlcGFzLiBJYSBib2xlaCBkaWd1bmFrYW4gaGFueWEgamlrYSBFbmFibGVBdXRvQ29tcGxldGlvbiBkYW4gVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBkaWRheWFrYW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICdKaWthIGRpYm9sZWhrYW4sIHBlbmdndW5hIGRpYmVuYXJrYW4gdW50dWsgbWVtYXN1a2kgInNlZGFuZyBjdXRpIHJlaGF0ICIsICJzZWRhbmcgY3V0aSBzYWtpdCAiIGRhbiAic2VkYW5nIGN1dGkgbGViaWggbWFzYSIgcGFkYSBiZWJlcmFwYSB0YXJpa2ggc2VrYWxpZ3VzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ0JpbGFuZ2FuIG1ha3NpbXVtIGhhcmkgYmVrZXJqYSBzZWxlcGFzIHVuaXQga2VyamEgcGVybHUgZGltYXN1a2thbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJ0JpbGFuZ2FuIG1ha3NpbXVtIGhhcmkgYmVrZXJqYSB0YW5wYSBrZW1hc3VrYW4gdW5pdCBiZWtlcmphIHNlbGVwYXMgZGkgbWFuYSBhbWFyYW4gYWthbiBkaXR1bmp1a2thbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcuJ30gPSAnUGFuZGFuZ2FuIGtlc2VsdXJ1aGFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJ21lbGFwb3JrYW4gbWFzYSBwcm9qZWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJ1VuZ2thcGFuIGJpYXNhIHVudHVrIG1lbmdla2FuZyBzZW5hcmFpIHRpbmRha2FuIG1lbmdpa3V0IHByb2playB5YW5nIGRpcGlsaWguIEt1bmNpIG1lbmdhbmR1bmdpIHVuZ2thcGFuIGJpYXNhIHVudHVrIHByb2playAocHJvamVrLXByb2playksIGthbmR1bmdhbiBtZW5nYW5kdW5naSB1bmdrYXBhbiBiaWFzYSB1bnR1ayB0aW5kYWthbiAodGluZGFrYW4tdGluZGFrYW4pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdVbmdrYXBhbiBiaWFzYSB1bnR1ayBtZW5nZWthbmcgc2VuYXJhaSBwcm9qZWsgbWVuZ2lrdXQga3VtcHVsYW4gcGVuZ2d1bmEuIEt1bmNpIG1lbmdhbmR1bmdpIHVuZ2thcGFuIGJpYXNhIHVudHVrIHByb2playAocHJvamVrLXByb2playksIGthbmR1bmdhbiBtZW5nYW5kdW5naSBrb21hIHNlbmFyYWkga3VtcHVsYW4gZGlwaXNhaGthbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ01lbmVudHVrYW4gamlrYSB3YWt0dSBiZWtlcmphIGJvbGVoIGRpbWFzdWtrYW4gdGFucGEgcGVybXVsYWFuIGRhbiBha2hpciBtYXNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICdNb2R1bCBpbmkgbWVtYWtzYSBrZW1hc3VrYW4gZGFsYW0gUGVyYWthdW5hblNlbWFzYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICdNb2R1bCBwZW1iZXJpdGFodWFuIGluaSBtZW1iZXJpIGFtYXJhbiBqaWthIHRlcmRhcGF0IHRlcmxhbHUgYmFueWFrIGhhcmkgYmVrZXJqYSB0aWRhayBsZW5na2FwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIEFjY291bnRpbmcnfSA9ICdNYXNhIFBlcmFrYXVuYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAnU3VudGluZyBwZXJha2F1bmFuIHNlbWFzYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJ0dhbWJhcmFuIGtlc2VsdXJ1aGFuIHBlcmFrYXVuYW4gc2VtYXNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJ01lbGFwb3IgcGVyYWthdW5hbiBzZW1hc2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdUZXRhcGFuIHBlcmFrYXVuYW4gc2VtYXNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICdQYXBhcmFuIHBlcmFrYXVuYW4gc2VtYXNhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnUGVyYWthdW5hbiBzZW1hc2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ1VudHVrIGRpZ3VuYWthbiBqaWthIGJlYmVyYXBhIHRpbmRha2FuIG1lbmd1cmFuZ2thbiB3YWt0dSBrZXJqYSAoY29udG9obnlhLCBqaWthIGhhbnlhIHNlcGFydWggZGFyaXBhZGEgbWFzYSBwZXJqYWxhbmFuIGRpYmF5YXIgS3VuY2kgPT4gcGVyamFsYW5hbjsgS2FuZHVuZ2FuID0gPiA1MCkuJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdDb25maXJtIGluc2VydCcsCiAgICAnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeScsCiAgICAnTWFzcyBFbnRyeScsCiAgICAnTm8nLAogICAgJ1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJywKICAgICdQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6Om5iX05PX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnVmlsIGR1IHZpcmtlbGlnIGZqZXJuZSB0aWRzcmVnaXN0cmVyaW5nZW4gZm9yIGRlbm5lIGRhZ2VuPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBSZWNvcmQnfSA9ICdFbmRyZSB0aWRzcmVnaXN0cmVyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAnSW5uc3RpbGxpbmdlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICdOYXZpZ2VyaW5nIG1lbGxvbSBkYXRvZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICdEYWdlciB1dGVuIHRpZHJlZ2lzdHJlcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYWxsIGRheXMnfSA9ICdWZWxnIGFsbGUgZGFnZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBlbnRyeSd9ID0gJ01hc3NlcmVnaXN0cmVyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnVmVubmxpZ3N0IHZlbGcgw6Vyc2FrZW4gdGlsIGRpdHQgZnJhdsOmciBww6UgZGUgdmFsZ3RlIGRhZ2VuZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiB2YWNhdGlvbid9ID0gJ0ZlcmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICdTeWtlZnJhdsOmcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ0F2c3Bhc3NlcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJ09ibGlnYXRvcmlza2UgZmVsdCBlciBtYXJrZXJ0IG1lZCAiKiIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAnRHUgbcOlIGZ5bGxlIHV0IHN0YXJ0LSBvZyBzbHV0dGlkc3B1bmt0LCBlbGxlciBwZXJpb2RlbGVuZ2Rlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb3NqZWt0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICdBa3Rpdml0ZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnTWVya25hZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYWRkIGEgcmVtYXJrIHdpdGggbW9yZSB0aGFuIDggY2hhcmFjdGVycyEnfSA9ICdWZW5ubGlnc3Qgc2tyaXYgaW5uIGVuIG1lcmtuYWQgcMOlIG1pbnN0IDggdGVnbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ05lZ2F0aXYgdGlkIGdvZHRhcyBpa2tlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnT3ZlcmxhcHBlbmRlIHBlcmlvZGVyIGlra2UgdGlsbGF0dC4gU3RhcnR0aWRlbiBlciBpIGVuIGFubmVuIHBlcmlvZGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdGZWlsIGZvcm1hdCEgVmVubmxpZ3N0IG9wcGdpIGV0dCB0aWRzcHVua3QgaSBmb3JtYXRldCBUVDpNTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAnMjQ6MDAgZ29kdGFzIGJhcmUgc29tIHNsdXR0aWQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnRmVpbGFrdGlnIHRpZCEgRXQgZMO4Z24gaGFyIGt1biAyNCB0aW1lci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJ1NsdXR0aWQgbcOlIHbDpnJlIHNlbmVyZSBlbm4gc3RhcnR0aWQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnT3ZlcmxhcHBlbmRlIHBlcmlvZGVyIGlra2UgdGlsbGF0dC4gU2x1dHRpZGVuIGVyIGkgZW4gYW5uZW4gcGVyaW9kZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ0ZlaWxha3RpZyB0aWQhIEV0IGTDuGduIGhhciBrdW4gMjQgdGltZXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAnRW4gdGlkc3BlcmlvZGUgbcOlIHbDpnJlIHN0w7hycmUgZW5uIG51bGwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdGZWlsYWt0aWQgdGlkLiAgTmVnYXRpdiB0aWQgZ29kdGFzIGlra2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAnTGVnZyB0aWwgZW4gcmFkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ0R1IGthbiBiYXJlIGdqw7hyZSBlbiBhdmtyeXNuaW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnRXIgZHUgc2lra2VyIHDDpSBhdCBkdSBhcmJlaWRldCBtZW5zIGR1IHZhciBzeWtlbWVsZHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAnRXIgZHUgc2lra2VyIHDDpSBhdCBkdSBhcmJlaWRldCBtZW5zIGR1IGhhZGRlIGZlcmllPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAnRXIgZHUgc2lra2VyIHDDpSBhdCBkdSBhcmJlaWRldCBtZW5zIGR1IGF2c3Bhc3NlcnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICdFciBkdSBzaWtrZXIgcMOlIGF0IGR1IGFyYmVpZGV0IGkgZmxlcmUgZW5uIDE2IHRpbWVyPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAnTcOlbmVkc292ZXJzaWt0IHJlZ2lzdHJlcnQgdGlkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICdPdmVydGlkICh0aW1lciknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnT3ZlcnRpZCAoZGVubmUgbcOlbmVkKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnT3ZlcnRpZCAodG90YWx0KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUnfSA9ICdHamVuc3TDpWVuZGUgYXZzcGFzc2VyaW5nc3RpbWVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIChEYXlzKSd9ID0gJ0ZlcmllIChkYWdlciknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnRmVyaWUgdGF0dCAoZGVubmUgbcOlbmVkKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodG90YWwpJ30gPSAnRmVyaWUgdGF0dCAodG90YWx0KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgdmFjYXRpb24nfSA9ICdHamVuc3TDpWVuZGUgZmVyaWVkYWdlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ1N5a2VmcmF2w6ZyIChkYWdlciknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodGhpcyBtb250aCknfSA9ICdTeWtlZnJhdsOmciAoZGVubmUgbcOlbmVkKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0b3RhbCknfSA9ICdTeWtlZnJhdsOmciAodG90YWx0KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBtb250aCd9ID0gJ0ZvcnJpZ2UgbcOlbmVkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICdOZXN0ZSBtw6VuZWQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2RheSd9ID0gJ1VrZWRhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JraW5nIEhvdXJzJ30gPSAnQXJiZWlkZXQgdGlkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJ1RvdGFsIGFyYmVpZGV0IHRpZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyXCdzIHByb2plY3Qgb3ZlcnZpZXcnfSA9ICdCcnVrZXJzIHByb3NqZWt0b3ZlcnNpa3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAnVGltZXIgKG3DpW5lZGxpZyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ1RpbWVyICh0b3RhbHQpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAnU2x1dHRzdW0nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAnVGlkcmFwcG9ydGVyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICdOYXZpZ2VyaW5nIG1lbGxvbSBtw6VuZWRlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAnR8OlIHRpbCBkYXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ0JydWtlcnJhcHBvcnRlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAnTcOlbmVkc3N1bSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaWZldGltZSB0b3RhbCd9ID0gJ1RvdGFsc3VtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAnQXZzcGFzc2VyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAnRmVyaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ1N5a2VmcmF2w6ZyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJ0dqZW5zdMOlZW5kZSBmZXJpZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydHMnfSA9ICdQcm9zamVrdHJhcHBvcnRlcic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAnUHJvc2pla3RyYXBwb3J0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJ0fDpSB0aWwgcmFwcG9ydGVyaW5nc292ZXJzaWt0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnRm9yIHRpZGVuIHZpc2VzIGJhcmUgZGUgYWt0aXZlIGJydWtlcm5lIGkgZGV0dGUgcHJvc2pla3RldC4gRm9yIMOlIGVuZHJlIGRldHRlIG3DpSBmw7hsZ2VuZGUgaW5uc3RpbGxpbmcgZW5kcmVzOic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdGb3IgdGlkZW4gdmlzZXMgYWxsZSB0aWRzcmVnaXN0cmVyaW5nc2JydWtlcmUuIEZvciDDpSBlbmRyZSBkZXR0ZSBtw6UgZsO4bGdlbmRlIGlubnN0aWxsaW5nIGVuZHJlczonOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAnRW5kcmUgaW5zdGlsbGluZ2VyIGZvciB0aWRzcmVnaXN0cmVyaW5nc3Byb3NqZWt0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAnTGVnZyB0aWwgZXQgcHJvc2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3Mgb3ZlcnZpZXcnfSA9ICdHw6UgdGlsIG92ZXJzaWt0ZW4gb3ZlciBpbm5zdGlsbGluZ2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAnTGVnZyB0aWwgZXQgcHJvc2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAnRW5kcmUgaW5zdGlsbGluZ2VyIGZvciBwcm9zamVrdGV0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdEZXQgZmlubmVzIGFsbGVyZWRlIGV0IHByb3NqZWt0IG1lZCBkZXR0ZSBuYXZuZXQuIFZlbm5saWdzdCB2ZWxnIGV0IGFubmV0IG5hdm4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnRW5kcmUgaW5zdGlsbGluZ2VyIGZvciB0aWRzcmVnaXN0cmVyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnTGVnZyB0aWwgZW4gYWt0aXZpdGV0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgcHJvamVjdHMsIHRhc2tzIG9yIHVzZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAnVGlkc3BlcmlvZGVyIGthbiBpa2tlIHNsZXR0ZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJ1Byb3NqZWt0bGlzdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAnQWt0aXZpdGV0c2xpc3RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAnTGVnZyB0aWwgZW4gYWt0aXZpdGV0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ0VuZHJlIGluc3RpbGxpbmdlciBmb3IgYWt0aXZpdGV0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ0RldCBmaW5uZXMgYWxsZXJlZGUgZW4gYWt0aXZpdGV0IG1lZCBkZXR0ZSBuYXZuZXQuIFZlbm5saWdzdCB2ZWxnIGV0IGFubmV0IG5hdm4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ0JydWtlcmxpc3RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNlZSBvdmVydGltZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ1ZpcyBvdmVydGlkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBjcmVhdGUgcHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ1RpbGxhdHQgYnJ1a2VyIMOlIG9wcHJldHRlIHByb3NqZWt0ZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNraXAgdGltZSBhY2NvdW50aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHRpbWUgYWNjb3VudGluZyBza2lwcGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGlzIG9wdGlvbiBpcyBzZWxlY3RlZCwgdGltZSBhY2NvdW50aW5nIGlzIGVmZmVjdGl2ZWx5IG9wdGlvbmFsIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3aWxsIGJlIG5vIHdhcm5pbmdzIGFib3V0IG1pc3NpbmcgZW50cmllcyBhbmQgbm8gZW50cnkgZW5mb3JjZW1lbnQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTcGFucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgQmVnaW4nfSA9ICdQZXJpb2Rlc3RhcnQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ1BlcmlvZGVzbHV0dCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAnRmVyaWVkYWdlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ1RpbWVyIHBlciB1a2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJ1DDpWxhZ3Qgb3ZlcnRpZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAnU3RhcnRkYXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLid9ID0gJ1Zlbm5saWdzdCBzZXR0IGlubiBlbiBneWxkaWcgZGF0by4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICdTbHV0dGRhdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4nfSA9ICdQZXJpb2Rlc2x1dHQgbcOlIHbDpnJlIGV0dGVyIHBlcmlvZGVzdGFydC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJ0RhZ2VyIG1lZCBneWxkaWcgZnJhdsOmcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICdVa2VudGxpZ2UgdGltZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICdPdmVydGlkJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICdJbmdlbiB0aWRzcGVyaW9kZXIgZnVubmV0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJ0xlZ2cgdGlsIGVuIHRpZHNwZXJpb2RlJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ1NlIHDDpSB0aWRzcmVnaXN0cmVyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAnVmlzbmluZyBhdic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdGb3JyaWdlIGRhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ05lc3RlIGRhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICdJbmdlbiBkYXRhIGZ1bm5ldCBmb3IgZGVubmUgZGFnZW4uJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnU2VuZXN0ZSBwcm9zamVrdGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJ0thbiBpa2tlIGxhZ3JlIGluc3RpbGxpbmdlbmUgZm9yZGkgZXQgZMO4Z24gaGFyIGt1biAyNCB0aW1lci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJ0Rlbm5lIGRhdG9lbiBlciB1dGVuZm9yIHRpbGxhdHQgb21yw6VkZS4gTWVuLCBkdSBoYXIgaWtrZSBzYXR0IGlubiBkZW5uZSBkYWdlbiBlbm7DpSwgc8OlIGR1IGbDpXIgZW4oISkgc2phbnNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgV29ya2luZyBEYXlzJ30gPSAnVWZ1bGxzdGVuZGlnZSBhcmJlaWRzZGFnZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAnVmVsbHlra2V0IGlubnNldHRpbmchJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICdGZWlsIHVuZGVyIGlubnNldHRpbmcgYXYgZmxlcmUgZGF0b2VyISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICdJbm5zZXR0aW5nIGF2IHJlZ2lzdHJlcmluZ2VyIGZvciBmbGVyZSBkYXRvZXIgdmFyIHZlbGx5a2tldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ09wcGdpdHQgZGF0byB2YXIgdWd5bGRpZyEgRGF0byBlbmRyZXQgdGlsIGRhZ2VucyBkYXRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAnU2VuZXN0ZSB2YWxndGUgcHJvc2pla3Rlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICdBbGxlIHByb3NqZWt0ZXInOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnUHJvc2pla3Qgc29tIHJhcHBvcnRlcmVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ1JhcHBvcnRlcmluZyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnfSA9ICdLYW4gaWtrZSBlbmRyZSBicnVrZXJpbm5zdGlsbGluZ2VyISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJ1Byb3NqZWt0IGxhZ3QgdGlsISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnUHJvc2pla3Qgb3BwZGF0ZXJ0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJ0FrdGl2aXRldCBsYWd0IHRpbCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayB1cGRhdGVkISd9ID0gJ0FrdGl2aXRldCBvcHBkYXRlcnQhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJ0JydWtlcklEIGVyIGlra2UgZ3lsZGlnISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICdLYW4gaWtrZSBsZWdnZSB0aWwgYnJ1a2VyZGF0YSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICdLYW4gaWtrZSBsZWdnZSB0aWwgdGlkc3BlcmlvZGUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHRpbmcnfSA9ICdJbm5zdGlsbGluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnQnJ1a2VyIG9wcGRhdGVydCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICdCcnVrZXIgbGFndCB0aWwhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHVzZXIgdG8gdGltZSBhY2NvdW50aW5nLi4uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAnTnkgYnJ1a2VyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICdQZXJpb2Rlc3RhdHVzJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nVmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldzogTmVlZCAlcyEnfSA9ICdWaXNuaW5nOiBUcmVuZ2VyICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML05vdGlmaWNhdGlvbi9UaW1lQWNjb3VudGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAnVmVubmxpZ3N0IHNldHQgaW5uIGRpbmUgYXJiZWlkc3RpbWVyISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJ1VmdWxsc3RlbmRpZ2UgYXJiZWlkc2RhZ2VyJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ1Zlbm5saWdzdCB2ZWxnIG1pbnN0IGVuIGRhZyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ01hc3NlcmVnaXN0cmVyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJ30gPSAnVmVubmxpZ3N0IHZlbGcgZnJhdsOmcnPDpXJzYWshJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5J30gPSAnU2xldHQgZW4gdGlkc3JlZ2lzdHJlcmluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ0Jla3JlZnQgaW5uc2V0dGluZyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRlc2NyaXB0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdFbmRyZSBpbm5zdGlsbGluZ2VyIGZvciB0aWRzcmVnaXN0cmVyaW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgcmVjb3JkLid9ID0gJ0VuZHJlIHRpZHNyZWdpc3RyZXJpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAnSHZvciBtYW5nZXIgZGFnZXIgdGlsYmFrZSBpIHRpZCBkZXQgZXIgYW5sZWRuaW5nIHRpbCDDpSBsZWdnZSB0aWwgZW4gdGlkc2JvbGsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICdPdmVyc2lrdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICdUaWRyYXBwb3J0ZXJpbmcgZm9yIHByb3NqZWt0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBwcm9qZWN0IGxpc3QgYWNjb3JkaW5nIHRvIHVzZXIgZ3JvdXBzLiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3Vwcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgaWYgd29ya2luZyBob3VycyBjYW4gYmUgaW5zZXJ0ZWQgd2l0aG91dCBzdGFydCBhbmQgZW5kIHRpbWVzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5vdGlmaWNhdGlvbiBtb2R1bGUgZ2l2ZXMgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0b28gbWFueSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIEFjY291bnRpbmcnfSA9ICdUaWRzcmVnaXN0cmVyaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJ0VuZHJlIHRpZHNyZWdpc3RyZXJpbmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICdPdmVyc2lrdCBvdmVyIHJlZ2lzdHJlcnQgdGlkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJ1JhcHBvcnRlcmluZyBhdiByZWdpc3RyZXJ0IHRpZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ0lubnN0aWxsaW5nZXIgZm9yIHRpZHNyZWdpc3RyZXJpbmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ1NlIHDDpSB0aWRzcmVnaXN0cmVyaW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnVGlkc3JlZ2lzdHJlcmluZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdDb25maXJtIGluc2VydCcsCiAgICAnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeScsCiAgICAnTWFzcyBFbnRyeScsCiAgICAnTm8nLAogICAgJ1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJywKICAgICdQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6Om5sX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnV2VldCB1IHpla2VyIGRhdCB1IGRlIFRpbWUgQWNjb3VudGluZyB3aWx0IHZlcndpamRlcmVuIHZhbiBkZXplIGRhZz8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAnR2EgbmFhciBpbnN0ZWxsaW5nZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAnRGF0dW0gTmF2aWdhdGllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgd2l0aG91dCBlbnRyaWVzJ30gPSAnRGFnIHpvbmRlciBib2VraW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ1NlbGVjdGVlciBhbGxlIGRhZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICdNYXNzYSB0b2V2b2VnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICdLaWVzIGVlbiByZWRlbiB2YW4gYWJzZW50aWUgdm9vciBkZSBnZXNlbGVjdGVlcmRlIGRhZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAnT3AgdmFrYW50aWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ1ppZWttZWxkaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAnVmVycGxpY2h0ZSB2ZWxkZW4gemlqbiBnZW1hcmtlZXJkIG1ldCAiKiIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAnVSBtb2V0IGVlbiBiZWdpbiBlbiBlaW5kdGlqZCBvZiBlZW4gdGlqZHBlcmlvZGUgaW52dWxsZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QnfSA9ICdQcm9qZWN0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICdUYWFrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFyayd9ID0gJ0Fhbm1lcmtpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdOZWdhdGlldmUgdGlqZGVuIHppam4gbmlldCB0b2VnZXN0YWFuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdPbmdlbGRpZyBmb3JtYWF0ISBWb2VyIGVlbiB0aWpkIGluIG1ldCBoZXQgZm9ybWFhdCBISDpNTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnT25nZWxkaWdlIHRpamQhIEVlbiBkYWcgaGVlZnQgMjQgdXVyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gb3ZlcnRpbWUgbGVhdmU/J30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJ092ZXJ1cmVuIChVcmVuKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodGhpcyBtb250aCknfSA9ICdPdmVydXJlbiAoZGV6ZSBtYWFuZCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRvdGFsKSd9ID0gJ092ZXJ1cmVuICh0b3RhYWwpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICdWYWthbnRpZSAoZGFnZW4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodG90YWwpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ1ppZWt0ZWRhZ2VuIChEYWdlbiknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodGhpcyBtb250aCknfSA9ICdaaWVrdGVkYWdlbiAoZGV6ZSBtYWFuZCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAnWmlla3RlZGFnZW4gb3BnZW5vbWVuICh0b3RhYWwpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnVm9yaWdlIG1hYW5kJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICdWb2xnZW5kZSBtYWFuZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAnV2Vla2RhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JraW5nIEhvdXJzJ30gPSAnV2Vya3VyZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAnVG90YWxlIHdlcmt1cmVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICdVcmVuIChNYWFuZGVsaWprcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ1VyZW4gKExldmVuc2R1dXIpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAnVG90YWFsJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aCBOYXZpZ2F0aW9uJ30gPSAnTWFhbmRlbGlqa3NlIE5hdmlnYXRpZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAnR2EgbmFhciBkYXR1bSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHJlcG9ydHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaWZldGltZSB0b3RhbCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSBsZWF2ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ1Zha2FudGllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICdaaWVrdGVkYWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gcmVtYWluaW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgcHJvamVjdCB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnVGFhayB0b2V2b2VnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICdUaWpkcGVyaW9kZXMga3VubmVuIG5pZXQgd29yZGVuIHZlcndpamRlcmQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICdUYWFrIHRvZXZvZWdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIExpc3QnfSA9ICdHZWJydWlrZXJzbGlqc3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2VlIG92ZXJ0aW1lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnVG9vbiBPdmVydXJlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gY3JlYXRlIHByb2plY3RzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHByb2plY3QgY3JlYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNraXAgdGltZSBhY2NvdW50aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHRpbWUgYWNjb3VudGluZyBza2lwcGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGlzIG9wdGlvbiBpcyBzZWxlY3RlZCwgdGltZSBhY2NvdW50aW5nIGlzIGVmZmVjdGl2ZWx5IG9wdGlvbmFsIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3aWxsIGJlIG5vIHdhcm5pbmdzIGFib3V0IG1pc3NpbmcgZW50cmllcyBhbmQgbm8gZW50cnkgZW5mb3JjZW1lbnQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTcGFucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgQmVnaW4nfSA9ICdCZWdpbnBlcmlvZGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ0VpbmRwZXJpb2RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICdWYWthbnRpZWRhZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIHBlciBXZWVrJ30gPSAnVXJlbiBwZXIgd2Vlayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICdCZWdpbmRhdHVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLid9ID0gJ1ZvZXIgZWVuIGdlbGRpZ2UgZGF0dW0gaW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAnRWluZGRhdHVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnRWluZHBlcmlvZGUgbW9ldCBuYSBCZWdpbnBlcmlvZGUgemlqbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICdXZWVrdXJlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSd9ID0gJ092ZXJ1cmVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICdHZWVuIHRpamRwZXJpb2RlcyBnZXZvbmRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAnVm9lZyB0aWpkcGVyaW9kZSB0b2UnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAnV2VlcmdhdmUgdmFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ1ZvcmlnZSBkYWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICdWb2xnZW5kZSBkYWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAnR2VlbiBkYXRhIGdldm9uZGVuIHZvb3IgZGV6ZSBkYWcuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnTGFhdHN0ZSBQcm9qZWN0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICdJbmNvbXBsZXRlIFdlcmtkYWdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICdTdWNjZXN2b2wgaW5nZXZvZXJkISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAnRm91dCB0aWpkZW5zIGludm9lcmVuIG1lZXJkZXJlIGRhdGEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzISd9ID0gJ1N1Y2Nlc3ZvbCBpbnZvZXJlbiB2YW4gbWVlcmRlcmUgZGF0YSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ0luZ2V2b2VyZGUgZGF0YSBpcyBnb2VkZ2VrZXVyZCEgRGF0YSBpcyBhYW5nZXBhc3QgbmFhciB2YW5kYWFnLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAnTGFhdHN0IEdlc2VsZWN0ZWVyZGUgUHJvamVjdGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJ0FsbGUgUHJvamVjdGVuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmdQcm9qZWN0OiBOZWVkIFByb2plY3RJRCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcgUHJvamVjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICdSYXBwb3J0YWdlJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXR0aW5nJ30gPSAnSW5zdGVsbGluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHVzZXIgdG8gdGltZSBhY2NvdW50aW5nLi4uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAnTmlldXdlIEdlYnJ1aWtlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAnUGVyaW9kZSBTdGF0dXMnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML05vdGlmaWNhdGlvbi9UaW1lQWNjb3VudGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAnVm9lciB1dyB3ZXJrdXJlbiBpbiEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL0luY29tcGxldGVXb3JraW5nRGF5cy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSB3b3JraW5nIGRheXMnfSA9ICdJbmNvbXBsZXRlIFdlcmtkYWdlbic7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnfSA9ICdLaWVzIG9wIHppam4gbWluc3QgMSBkYWchJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgRW50cnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICdLaWVzIGVlbiByZWRlbiB2YW4gYWJzZW50aWUhJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnU3RhbmRhYXJkbmFhbSB2b29yIG5pZXV3ZSBhY3RpZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ1N0YW5kYWFyZG5hYW0gdm9vciBuaWV1d2UgcHJvamVjdGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJ1N0YW5kYWFyZGluc3RlbGxpbmcgdm9vciBlaW5kZGF0dW0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICdTdGFuZGFhcmRpbnN0ZWxsaW5nIHZvb3IgYmVnaW5kYXR1bS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICdTdGFuZGFhcmRpbnN0ZWxsaW5nIHZvb3Igb21zY2hyaWp2aW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAnVGlqZCB2ZXJhbnR3b29yZGluZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnQ29uZmlybSBpbnNlcnQnLAogICAgJ0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknLAogICAgJ01hc3MgRW50cnknLAogICAgJ05vJywKICAgICdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScsCiAgICAnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnBsX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnQ3p5IG5hIHBld25vIGNoY2VzeiB1c3VuxIXEhyByb3psaWN6ZW5pZSBjemFzdSBwcmFjeSB0ZWdvIGRuaWE/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJ0VkeWNqYSBld2lkZW5jamkgY3phc3UgcHJhY3knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICdQcnplamTFuiBkbyB1c3Rhd2llxYQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAnTmF3aWdhY2phIHBvIGRhY2llJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgd2l0aG91dCBlbnRyaWVzJ30gPSAnRG5pIGJleiB3cGlzw7N3JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ1phem5hY3ogd3N6eXN0a2llIGRuaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAnTWFzb3dlIHdwaXN5d2FuaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICdQcm9zesSZIHd5YnJhxIcgcHJ6eWN6eW7EmSBuaWVvYmVjbm/Fm2NpIGRsYSB3eWJyYW55Y2ggZG5pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAnVXJsb3AnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ1p3b2xuaWVuaWUgbGVrYXJza2llJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAnV29sbmUgemEgZ29kemlueSBuYWRsaWN6Ym93ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJ1BvbGEgd3ltYWdhbmUgb3puYWN6b25lIHPEhSAiKiIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIHRvIGZpbGwgaW4gc3RhcnQgYW5kIGVuZCB0aW1lIG9yIGEgdGltZSBwZXJpb2QuJ30gPSAnTXVzaXN6IHdwcm93YWR6acSHIGN6YXMgcG9jesSFdGt1IGkgemFrb8WEY3plbmlhIGx1YiBva3JlxZtsIGN6YXMgdHJ3YW5pYSBjeWxrdS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ1phZGFuaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnVXdhZ2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnUHJvc3rEmSBkb2RhxIcgdXdhZ8SZIHphd2llcmFqxIVjxIUgd2nEmWNlaiBuacW8IDggem5ha8OzdyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ1VqZW1uZSBjemFzeSBzxIUgbmllZG96d29sb25lLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnUG9rcnl3YWrEhWNlIHNpxJkgZ29kemlueSBuaWUgc8SFIGRvendvbG9uZS4gQ3phcyByb3pwb2N6xJljaWEgcGFzdWplIGRvIGlubmVnbyBwcnplZHppYcWCdS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ05pZXByYXdpZMWCb3d5IGZvcm1hdCEgUHJvc3rEmSBwb2RhxIcgY3phcyB3IGZvcm1hY2llIEdHOk1NLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcyNDowMCBqZXN0IGRvendvbG9uYSBqZWR5bmllIGpha28gY3phcyB6YWtvxYRjemVuaWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnTmllcHJhd2lkxYJvd3kgY3phcyEgRHppZcWEIG1hIHR5bGtvIDI0IGdvZHppbnkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICdDemFzIHpha2/FhGN6ZW5pYSBtdXNpIGJ5xIcgcG8gY3phc2llIHJvenBvY3rEmWNpYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdQb2tyeXdhasSFY2Ugc2nEmSBnb2R6aW55IG5pZSBzxIUgZG96d29sb25lLiBDemFzIHpha2/FhGN6ZW5pYSBwYXN1amUgZG8gaW5uZWdvIHByemVkemlhxYJ1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnTmllcHJhd2lkxYJvd3kgY3phcyBjeWtsdSEgRHppZcWEIG1hIHR5bGtvIDI0IGdvZHppbnkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAnUHJhd2lkxYJvd3kgY3phcyBjeWtsdSBtdXNpIGJ5xIcgd2nEmWtzenkgb2QgemVyYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ05pZXByYXdpZMWCb3d5IGN5a2whIFVqZW1ueSBjemFzIGN5a2x1IG5pZSBqZXN0IGRvendvbG9ueS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICdEb2RhaiB3aWVyc3onOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICdNb8W8ZXN6IHphem5hY3p5xIcgdHlsa28gamVkZW4gZWxlbWVudCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBzaWNrIGxlYXZlPyd9ID0gJ0N6eSBqZXN0ZcWbIHBld2llbiwgxbxlIHByYWNvd2HFgmXFmyB3IHRyYWtjaWUgendvbG5pZW5pYSBsZWthcnNraWVnbz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICdDenkgamVzdGXFmyBwZXdpZW4sIMW8ZSBwcmFjb3dhxYJlxZsgdyB0cmFrY2llIHVybG9wdT8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ0N6eSBqZXN0ZcWbIHBld2llbiwgxbxlIHByYWNvd2HFgmXFmyB3IHRyYWtjaWUgd29sbmVnbyB6YSBuYWRnb2R6aW55Pyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICdDenkgamVzdGXFmyBwZXdpZW4sIMW8ZSBwcmFjb3dhxYJlxZsgd2nEmWNlaiBuacW8IDE2IGdvZHppbj8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJ01pZXNpxJljem55IHJhcG9ydCBjemFzdSBwcmFjeSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAnR29kemlueSBuYWRsaWN6Ym93ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodGhpcyBtb250aCknfSA9ICdHb2R6aW55IG5hZGxpY3pib3dlIChiaWXFvMSFY3kgbWllc2nEhWMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICdHb2R6aW55IG5hZGxpY3pib3dlICjFgsSFY3puaWUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJ1Bvem9zdGHFgmUgZ29kemlueSBuYWRsaWN6Ym93ZSBkbyB3eWJyYW5pYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICdVcmxvcCAoZG5pKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCknfSA9ICdXeWtvcnp5c3RhbnkgdXJsb3AgKGJpZcW8xIVjeSBtaWVzacSFYyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJ1d5a29yenlzdGFueSB1cmxvcCAoxYLEhWN6bmllKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgdmFjYXRpb24nfSA9ICdVcmxvcCBwb3pvc3RhxYJ5IGRvIHd5a29yenlzdGFuaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICdad29sbmllbmllIGxla2Fyc2tpZSAoZG5pKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ0RuaSB6d29sbmllbmlhIGxla2Fyc2tpZWdvIChiaWXFvMSFY3kgbWllc2nEhWMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ0RuaSB6d29sbmllbmlhIGxla2Fyc2tpZWdvICjFgsSFY3puaWUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnUG9wcnplZG5pIG1pZXNpxIVjJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICdOYXN0xJlwbnkgbWllc2nEhWMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2RheSd9ID0gJ0R6aWXFhCByb2JvY3p5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICdHb2R6aW55IHByYWN5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJ8WBxIVjem5hIGlsb8WbxIcgcHJ6ZXByYWNvd2FueWNoIGdvZHppbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyXCdzIHByb2plY3Qgb3ZlcnZpZXcnfSA9ICdPcGlzIHByb2pla3R1IHXFvHl0a293bmlrYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICdHb2R6aW55IChtaWVzacSZY3puaWUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChMaWZldGltZSknfSA9ICdHb2R6aW55ICjFgsSFY3puaWUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAnT2fDs8WCZW0nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAnUmFvcnRvd2FuaWUgY3phc3UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJ05hd2lnYWNqYSBtaWVzacSZY3puYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAnUHJ6ZWpkxbogZG8gZGF0eSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHJlcG9ydHMnfSA9ICdSYXBvcnR5IHXFvHl0a293bmlrYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAnxYHEhWN6bmllIC0gbWllc2nEmWN6bmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpZmV0aW1lIHRvdGFsJ30gPSAnxYHEhWN6bmllIC0gb2fDs8WCZW0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICdXb2xuZSB6YSBnb2R6aW55IG5hZGxpY3pib3dlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAnVXJsb3AnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ1p3b2xuaWVuaWUgbGVrYXJza2llJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJ1VybG9wIHBvem9zdGHFgnkgZG8gd3lrb3J6eXN0YW5pYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydHMnfSA9ICdSYXBvcnR5IHByb2pla3R1JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICdSYXBvcnQgcHJvamVrdHUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAnUHJ6ZWpkxbogZG8gcHJ6ZWdsxIVkdSByYXBvcnRvd2FuaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdBa3R1YWxuaWUgd2lkb2N6bmkgc8SFIGplZHluaWUgdcW8eXRrb3duaWN5IHogdGVnbyBwcm9qZWt0dS4gVHV0YWogbW/FvG5hIHRvIHptaWVuacSHOic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdBa3R1YWxuaWUgd2lkb2N6bmkgc8SFIHdzenlzY3kgdcW8eXRrb3duaWN5IHJvemxpY3phasSFY3kgY3phcyBwcmFjeS4gVHV0YWogbW/FvG5hIHRvIHptaWVuacSHOic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICdFZHl0dWogdXN0YXdpZW5pYSByb3psaWN6YW5pYSBjemFzdSBwcmFjeSB3IHByb2pla2NpZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJ0RvZGFqIHByb2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3Mgb3ZlcnZpZXcnfSA9ICdQcnplamTFuiBkbyBvcGlzdSB1c3Rhd2llxYQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICdEb2RhaiBwcm9qZWt0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ0VkeXR1aiB1c3Rhd2llbmlhIHByb2pla3R1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdJbm55IHByb2pla3QgdcW8eXdhIGp1xbwgdGVqIG5hend5LiBVxbx5aiBpbm5laiBuYXp3eS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MnfSA9ICdFZHl0dWogdXN0YXdpZW5pYSByb3psaWN6YW5pYSBjemFzdSBwcmFjeSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ0RvZGFqIHphZGFuaWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICdGaWx0cnVqIHByb2pla3R5LCB6YWRhbmlhIGx1YiB1xbx5dGtvd25pa8Ozdyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJ0N5a2xlIGN6YXN1IG5pZSBtb2fEhSB6b3N0YcSHIHVzdW5pxJl0ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAnTGlzdGEgcHJvamVrdMOzdyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICdMaXN0YSB6YWRhxYQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICdEb2RhaiB6YWRhbmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ0VkeXR1aiB1c3Rhd2llbmlhIHphZGFuaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ0lubmUgemFkYW5pZSB1xbx5d2EganXFvCB0ZWogbmF6d3kuIFXFvHlqIGlubmVqIG5hend5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIExpc3QnfSA9ICdMaXN0YSBVxbx5dGtvd25pa8Ozdyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNldHRpbmdzJ30gPSAnVXN0YXdpZW5pYSBVxbx5dGtvd25pa2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNlZSBvdmVydGltZXMnfSA9ICdVxbx5dGtvd25payBtb8W8ZSB6b2JhY3p5xIcgbmFkZ29kemlueSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnUG9rYcW8IGdvZHppbnkgbmFkbGljemJvd2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIGNyZWF0ZSBwcm9qZWN0cyd9ID0gJ1XFvHl0a293bmlrIG1vxbxlIHR3b3J6ecSHIHByb2pla3R5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHByb2plY3QgY3JlYXRpb24nfSA9ICdaZXp3YWxhaiBuYSB0d29yemVuaWUgcHJvamVrdMOzdyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2tpcCB0aW1lIGFjY291bnRpbmcnfSA9ICdVxbx5dGtvd25payBtb8W8ZSBwb21pbsSFxIcgcm96bGljemFuaWUgY3phc3UgcHJhY3knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgdGltZSBhY2NvdW50aW5nIHNraXBwaW5nJ30gPSAnUG96d8OzbCBuYSBvbWluacSZY2llIHJvemxpY3phbmlhIGN6YXN1IHByYWN5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoaXMgb3B0aW9uIGlzIHNlbGVjdGVkLCB0aW1lIGFjY291bnRpbmcgaXMgZWZmZWN0aXZlbHkgb3B0aW9uYWwgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnSmXFm2xpIHRhIG9wY2phIGplc3QgemF6bmFjem9uYSwgcm96bGljemFuaWUgY3phc3UgcHJhY3kgamVzdCBuaWVvYm93acSFemtvd2UgZGxhIHXFvHl0a293bmlrYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2lsbCBiZSBubyB3YXJuaW5ncyBhYm91dCBtaXNzaW5nIGVudHJpZXMgYW5kIG5vIGVudHJ5IGVuZm9yY2VtZW50Lid9ID0KICAgICAgICAnTmllIGLEmWR6aWUgb3N0cnplxbxlxYQgbyBicmFrdWrEhWN5Y2ggamVkbm9zdGthY2ggY3phc3Ugb3JheiB3eW11c3phbmlhIHdwaXPDs3cuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU3BhbnMnfSA9ICdPa3Jlc3kgQ3phc3UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAnUG9jesSFdGVrIGN5a2x1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICdLb25pZWMgY3lrbHUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJ0RuaSB1cmxvcHUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICdJbG/Fm8SHIGdvZHppbiB3IHR5Z29kbml1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0F1dGhvcml6ZWQgT3ZlcnRpbWUnfSA9ICdaZXp3w7NsIG5hIGdvZHppbnkgbmFkbGljemJvd2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJ0RhdGEgcm96cG9jesSZY2lhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLid9ID0gJ1Byb3N6xJkgd3Byb3dhZHppxIcgcHJhd2lkxYJvd8SFIGRhdMSZLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJ0RhdGEgemFrb8WEY3plbmlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnS29uaWVjIG9rcmVzdSBtdXNpIGJ5xIcgcG8gamVnbyBwb2N6xIV0a3UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICdEbmkgb3B1Y3pvbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAnVHlnb2RuaW93eSBjemFzIHByYWN5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAnR29kemlueSBuYWRsaWN6Ym93ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnTmllIHpuYWxlemlvbm8gxbxhZG5lZ28gY3lrbHUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJ0RvZGFqIGN5a2wnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnUG9rYcW8IGV3aWRlbmNqxJkgY3phc3UgcHJhY3knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICdXaWRvayAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgZGF5J30gPSAnUG9wcnplZG5pIGR6aWXFhCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ0tvbGVqbnkgZHppZcWEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJ0JyYWsgZGFueWNoIGRvdHljesSFY3ljaCB3eWJyYW5lZ28gZG5pYS4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAnTmllIHVkYcWCbyBzacSZIHdzdGF3acSHIGplZG5vc3RlayBwcmFjeSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBQcm9qZWN0cyd9ID0gJ09zdGF0bmllIHByb2pla3R5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJ05pZSBtb8W8bmEgemFwaXNhxIcgdXN0YXdpZcWELCBwb25pZXdhxbwgZG9iYSBtYSB0eWxrbyAyNCBnb2R6aW55ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJ30gPSAnTmllIHVkYcWCbyBzacSZIHVzdW7EhcSHIGplZG5vc3RlayBwcmFjeSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICdXcHJvd2Fkem9uYSBkYXRhIGplc3QgcG96YSB6YWtyZXNlbSwgYWxlIG5pZSB3cHJvd2FkemnFgmXFmyBqZXN6Y3plIHRlZ28gZG5pYSwgbWFzeiB3acSZYyBqZWR5bsSFKCEpIG9rYXpqxJknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICdOaWVwZcWCbmUgZG5pIHByYWN5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJ1dwcm93YWRhbmllIHBvd2lvZMWCbyBzacSZISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAnV3lzdMSFcGnFgiBixYLEhWQgcG9kY3phcyB3cHJvd2FkemFuaWEgd2llbHUgZGF0IGplZG5vY3plxZtuaWUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzISd9ID0gJ1BvbXnFm2xuaWUgd3Byb3dhZHpvbm8gd2llbGUgZGF0IGplZG5vY3plxZtuaWUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICdXcHJvd2Fkem9ubyBuaWVwcmF3aWTFgm93xIUgZGF0xJkhIFpvc3RhxYJhIG9uYSB6bWllbmlvbmEgbmEgYmllxbzEhWPEhS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAnTmllIHNrb25maWd1cm93YW5vIG9rcmVzw7N3IGN6YXN1IGx1YiBwb2RhbmEgZGF0YSBsZcW8eSBwb3phIHpkZWZpbmlvd2FueW1pIG9rcmVzYW1pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY29udGFjdCB0aGUgdGltZSBhY2NvdW50aW5nIGFkbWluaXN0cmF0b3IgdG8gdXBkYXRlIHlvdXIgdGltZSBwZXJpb2RzISd9ID0KICAgICAgICAnU2tvbnRha3R1aiBzacSZIHogYWRtaW5pc3RyYXRvcmVtIGN6YXN1IHByYWN5IHcgY2VsdSBha3R1YWxpemFjamkgdHdvaWNoIG9rcmVzw7N3IHByYWN5ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAnT3N0YXRuaW8gd3licmFuZSBwcm9qZWt0eSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICdXc3p5c3RraWUgcHJvamVrdHknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnUmFwb3J0b3dhbmllIHByb2pla3R1OiBXeW1hZ2FueSBQcm9qZWN0SUQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICdSYXBvcnRvd2FuaWUgcHJvamVrdHUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAnUmFwb3J0b3dhbmllJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJ05pZSBtb8W8bmEgem1pZW5pxIcgdXN0YXdpZcWEIHXFvHl0a293bmlrYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICdQcm9qZWt0IGRvZGFueSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJ1Byb2pla3Qgem1pZW5pb255ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJ1phZGFuaWUgZG9kYW5lISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIHVwZGF0ZWQhJ30gPSAnWmFkYW5pZSB6bWllbmlvbmUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJ0lkZW50eWZpa2F0b3IgVXNlcklEIGplc3QgbmllcHJhd2lkxYJvd3khJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJ05pZSB1ZGHFgm8gc2nEmSB3c3Rhd2nEhyBkYW55Y2ggdcW8eXRrb3duaWthISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJ05pZSBtb8W8bmEgZG9kYcSHIGN5a2x1ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXR0aW5nJ30gPSAnVXN0YXdpZW5pZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnVcW8eXRrb3duaWsgem1pZW5pb255ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGFkZGVkISd9ID0gJ1XFvHl0a293bmlrIGRvZGFueSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICdEb2RhaiB1xbx5dGtvd25pa2EgZG8gcm96bGljemFuaWEgY3phc3UgcHJhY3kuLi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICdOb3d5IFXFvHl0a293bmlrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICdTdGFuIGN5a2x1JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nVmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldzogTmVlZCAlcyEnfSA9ICdXaWRvazogUG90cnplYm55ICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML05vdGlmaWNhdGlvbi9UaW1lQWNjb3VudGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAnUHJvc3rEmSB3cHJvd2FkemnEhyBzd8OzaiBjemFzIHByYWN5ISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJ05pZXBlxYJuZSBkbmkgcHJhY3knOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnUHJvc3rEmSB3eWJyYcSHIGNvIG5ham1uaWVqIGplZGVuIGR6aWXFhCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ01hc293ZSB3cGlzeXdhbmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJ30gPSAnUHJvc3rEmSB3eWJyYcSHIHByenljenluxJkgbmllb2JlY25vxZtjaSEnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICdVc3XFhCByb3psaWN6ZW5pZSBjemFzdSBwcmFjeSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ1BvdHdpZXJkxbogd3Bpcyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ01vZHXFgiBwb3dpYWRhbWlhbmlhIEFnZW50YSBvIGxpY3piaWUgZG5pIHogbmlla29tcGxldG55bSByYXBvcnRvd2FuaWVtIGN6YXN1IHByYWN5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ0RvbXnFm2xuYSBuYXp3YSBub3d5Y2ggY3p5bm5vxZtjaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnRG9tecWbbG5hIG5hendhIG5vd3ljaCBwcm9qZWt0w7N3Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJ0RvbXnFm2xuYSBkYXRhIHpha2/FhGN6ZW5pYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJ0RvbXnFm2xuYSBkYXRhIHJvenBvY3rEmWNpYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICdEb215xZtsbmUgdXN0YXdpZW5pZSBvcGlzdS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJ0RvbXnFm2xuZSBrb25maWd1cmFjamEgdXJsb3B1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJ0RvbXnFm2xuZSBrb25maWd1cmFjamEgZ29kemluIG5hZGxpY3pib3d5Y2guJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICdEb215xZtsbmEga29uZmlndXJhY2phIHR5Z29kbmlvd2VnbyBjemFzdSBwcmFjeS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ0RvbXnFm2xueSBzdGFuIG5vd3ljaCBjenlubm/Fm2NpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJ0RvbXnFm2xueSBzdGFuIG5vd3ljaCBwcm9qZWt0w7N3Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ0RvbXnFm2xueSBzdGFuIG5vd3ljaCB1xbx5dGtvd25pa8Ozdy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnT2tyZcWbbGEgcHJvamVrdHksIGt0w7NyZSB3eW1hZ2FqxIUgZG9kYXdhbmlhIGtvbWVudGFyenkuIEplxbxlbGkgd3lyYcW8ZW5pZSByZWd1bGFybmUgcGFzdWplIGRvIHByb2pla3R1LCB0cnplYmEgZG9kYcSHIGtvbWVudGFyei4gV3lyYcW8ZW5pYSByZWd1bGFybmUga29yenlzdGFqxIUgeiBwYXJhbWV0csOzdyBzZXJ3ZXJhIG1ha3IgKFNNWCkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICdPa3JlxZtsYSwgY3p5IG1vZHXFgiBzdGF0eXN0eWN6bnkgbW/FvGUgZ2VuZXJvd2HEhyBpbmZvcm1hY2plIG8gcm96bGljemVuaWFjaCBjemFzdSBwcmFjeS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnRWR5dHVqIHVzdGF3aWVuaWEgcm96bGljemFuaWEgY3phc3UgcHJhY3kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnRWR5Y2phIGV3aWRlbmNqaSBjemFzdSBwcmFjeS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAnTGljemJhIGRuaSB3c3RlY3osIGRsYSBrdMOzcnljaCBtb8W8bmEgcm96bGljemHEhyBjemFzIHByYWN5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICdKZcWbbGkgYWt0eXduZSwgd2lkb2N6bmkgc8SFIHR5bGtvIHXFvHl0a293bmljeSwga3TDs3J6eSByb3psaWN6eWxpIGN6YXMgcHJhY3kgdyB3eWJyYW55bSBwcm9qZWtjaWUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBkcm9wZG93biBlbGVtZW50cyBpbiB0aGUgZWRpdCBzY3JlZW4gYXJlIGNoYW5nZWQgdG8gbW9kZXJuaXplZCBhdXRvY29tcGxldGlvbiBmaWVsZHMuJ30gPQogICAgICAgICdQcnp5IHfFgsSFY3pvbmVqIG9wY2ppLCBlbGVtZW50eSByb3p3aWphbmUgdyBva25pZSBlZHljamkgYsSZZMSFIHphc3TEhXBpb25lIHBvbGFtaSB6IGF1dG9tYXR5Y3pueW0gdXp1cGXFgm5pYW5pZW0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJ1Byenkgd8WCxIVjem9uZWogb3BjamksIG1vxbxuYSB1xbx5xIcgZmlsdHLDs3csIHXFvHl0eWNoIHcgcG9wcnplZG5pY2ggcHJvamVrdGFjaCwgemFtaWFzdCBzdG9zb3dhxIcgZHdpZSBsaXN0eSBwcm9qZWt0w7N3IChvc3RhdG5pZWdvIGkgd3N6eXN0a2ljaCkuIE5pZXpixJlkbmUgamVzdCB1cnVjaG9taWVuaWUgb3BjamkgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnSmXFm2xpIGFrdHl3bmUsIGZpbHRyeSB1xbx5dGUgdyBwb3ByemVkbmljaCBwcm9qZWt0YWNoIHPEhSBkb215xZtsbmllIGFrdHl3bmUgKGplxZtsaSB0YWtpZSBwcm9qZWt0eSBpc3RuaWVqxIUpLiBOaWV6YsSZZG5lIGplc3QgdXJ1Y2hvbWllbmllIG9wY2ppIEVuYWJsZUF1dG9Db21wbGV0aW9uIG9yYXogVGltZUFjY291bnRpbmc6OlVzZUZpbHRlci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJ0plxZtsaSBha3R5d25lLCB1xbx5dGtvd25payBtb8W8ZSB1c3Rhd2nEhyAidXJsb3AiLCAiendvbG5pZW5pZSBsZWthcnNraWUiIG9yYXogIndvbG5lIHphIG5hZGdvZHppbnkiIGRsYSB3aWVsdSBkbmkgamVkbm9jemXFm25pZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICdNYWtzeW1hbG5hIGxpY3piYSBkbmkgcm9ib2N6eWNoLCB3IGNpxIVndSBrdMOzcnljaCBuYWxlxbx5IHV6dXBlxYJuacSHIGN6YXMgcHJhY3kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICdNYWtzeW1hbG5hIGxpY3piYSBkbmkgcm9ib2N6eWNoLCBiZXogdXp1cGXFgm5pYW5pYSBjemFzdSBwcmFjeSwgcG8ga3TDs3J5Y2ggcG9rYXphbmUgem9zdGFuaWUgb3N0cnplxbxlbmllLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICdQcnplZ2zEhWQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdGltZSByZXBvcnRpbmcuJ30gPSAnUmFwb3J0b3dhbmllIGN6YXN1IHByb2pla3R1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAnV3lyYcW8ZW5pYSByZWd1bGFybmUgZG8gb2dyYW5pY3plbmlhIGxpc3R5IHphZGHFhCB3eWJyYW55Y2ggcHJvamVrdMOzdy4gS2x1Y3ogemF3aWVyYSB3eXJhxbxlbmllIHJlZ3VsYXJuZSBkbGEgcHJvamVrdHUow7N3KSwgemF3YXJ0b8WbxIcgb2tyZcWbbGEgd3lyYcW8ZW5pZSByZWd1bGFybmUgZGxhIGFrY2ppLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdXeXJhxbxlbmlhIHJlZ3VsYXJuZSBkbyBvZ3JhbmljemVuaWEgbGlzdHkgcHJvamVrdMOzdyB3eWJyYW55Y2ggZ3J1cCB1xbx5dGtvd25pa8Ozdy4gS2x1Y3ogemF3aWVyYSB3eXJhxbxlbmllIHJlZ3VsYXJuZSBkbGEgcHJvamVrdHUow7N3KSwgemF3YXJ0b8WbxIcgemF3aWVyYSBsaXN0xJkgZ3J1cCByb3pkemllbG9ueWNoIHByemVjaW5rYW1pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgaWYgd29ya2luZyBob3VycyBjYW4gYmUgaW5zZXJ0ZWQgd2l0aG91dCBzdGFydCBhbmQgZW5kIHRpbWVzLid9ID0KICAgICAgICAnT2tyZcWbbGEsIGN6eSBjemFzIHByYWN5IG1vxbxlIHpvc3RhxIcgd3Byb3dhZHpvbnkgYmV6IHBvZGF3YW5pYSBjemFzdSByb3pwb2N6xJljaWEgb3JheiB6YWtvxYRjemVuaWEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ1RlbiBtb2R1xYIgd3ltdXN6YSB1enVwZcWCbmlhbmllIHJvemxpY3plxYQgY3phc3UgcHJhY3kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAnTW9kdcWCIHRlbiBvc3RyemVnYSBvIHpieXQgZHXFvGVqIGxpY3piaWUgbmllcm96bGljem9ueWNoIGRuaSByb2JvY3p5Y2guJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJ1JvemxpY3phbmllIGN6YXN1IHByYWN5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJ0VkeWNqYSByb3psaWN6ZcWEIGN6YXN1IHByYWN5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAnT3BpcyByb3psaWN6YW5pYSBjemFzdSBwcmFjeS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICdSYXBvcnRvd2FuaWUgcm96bGljemXFhCBjemFzdSBwcmFjeS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ0tvbmZpZ3VyYWNqYSByb3psaWN6ZcWEIGN6YXN1IHByYWN5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICdQcnplZ2zEhWQgcm96bGljemXFhCBjemFzdSBwcmFjeS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJ1JvemxpY3phbmllIGN6YXN1IHByYWN5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyB1c2UgaWYgc29tZSBhY3Rpb25zIHJlZHVjZWQgdGhlIHdvcmtpbmcgaG91cnMgKGZvciBleGFtcGxlLCBpZiBvbmx5IGhhbGYgb2YgdGhlIHRyYXZlbGluZyB0aW1lIGlzIHBhaWQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCkuJ30gPQogICAgICAgICdXeWtvcnp5c3R5d2FuZSBqZcW8ZWxpIGt0w7NyZcWbIHphZGFuaWEgcmVkdWt1asSFIGdvZHppbnkgcHJhY3kgKG5wLiBqZcWbbGkgemEgY3phc3UgZG9qYXpkdSBsaWN6b25hIGplc3QgdHlsa28gcG/Fgm93YSBjemFzeTsgS2x1Y3ogPT4gZG9qYXpkOyBXYXJ0b8WbxIcgPT4gNTApLic7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnQ29uZmlybSBpbnNlcnQnLAogICAgJ0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknLAogICAgJ01hc3MgRW50cnknLAogICAgJ05vJywKICAgICdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScsCiAgICAnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnB0X0JSX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnVm9jw6ogcmVhbG1lbnRlIGRlc2VqYSByZW1vdmVyIG8gYXBvbnRhbWVudG8gZGUgdGVtcG8gZGVzdGUgZGlhID8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnRWRpdGFyIHJlZ2lzdHJvIGRlIHRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAnSXIgcGFyYSBjb25maWd1cmHDp8O1ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAnTmF2ZWdhw6fDo28gZGUgZGF0YXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICdEaWFzIHNlbSBhcG9udGFtZW50b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAnU2VsZWNpb25hciB0b2RvcyBvcyBkaWFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICdFbnRyYWRhIGVtIG1hc3NhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnUG9yIGZhdm9yLCBlc2NvbGhhIG8gbW90aXZvIGRlIHN1YSBhdXPDqm5jaWEgcGFyYSBvcyBkaWFzIHNlbGVjaW9uYWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiB2YWNhdGlvbid9ID0gJ0VtIGbDqXJpYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ0VtIGxpY2Vuw6dhIG3DqWRpY2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICdFbSBsaWNlbsOnYSBkZSBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhICIqIi4nfSA9ICdDYW1wb3Mgb2JyaWdhdMOzcmlvcyBlc3TDo28gbWFyY2Fkb3MgY29tICIqIic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ1ZvY8OqIHTDqm0gcXVlIHByZWVuY2hlciBpbsOtY2lvIGUgZmltLCBvdSB1bSBwZXLDrW9kbyBkZSB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb2pldG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ1RhcmVmYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnT2JzZXJ2YcOnw6NvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJ1BvciBmYXZvciwgYWRpY2lvbmUgdW0gY29tZW50w6FyaW8gY29tIG1haXMgZGUgOCBjYXJhY3RlcmVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnRGF0YXMgbmVnYXRpdmFzIG7Do28gc8OjbyBsaWJlcmFkYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ0hvcmFzIHJlcGV0aWRhcyBuw6NvIHPDo28gbGliZXJhZGFzLiBJbmljaWUgbyBhcG9udGFtZW50byBlbSBvdXRybyBpbnRlcnZhbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdGb3JtYXRvIGludsOhbGlkbyEgUG9yIGZhdm9yLCBlbnRyZSBjb20gdW0gdGVtcG8gbm8gZm9ybWF0byBISDpNTSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICdBcGVuYXMgMjQ6MDAgc8OjbyBwZXJtaXRpZGFzIGNvbW8gdGVtcG8gZmluYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICdUZW1wbyBpbnbDoWxpZG8hIFVtIGRpYSB0ZW0gYXBlbmFzIDI0IGhvcmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnVGVtcG8gZmluYWwgZGV2ZSBzZXIgZGVwb2lzIGRvIHRlbXBvIGluaWNpYWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnSG9yYXMgcmVwZXRpZGFzIG7Do28gc8OjbyBsaWJlcmFkYXMuIEluaWNpZSBvIGFwb250YW1lbnRvIGVtIG91dHJvIGludGVydmFsby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ1BlcsOtb2RvIGludsOhbGlkbyEgVW0gZGlhIHRlbSBhcGVuYXMgMjQgaG9yYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAnVW0gcGVyw61vZG8gdsOhbGlkbyBkZXZlIHNlciBtYWlvciBxdWUgemVyby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ1BlcsOtb2RvIGludsOhbGlkbyEgUGVyw61vZG9zIG5lZ2F0aXZvcyBuw6NvIHPDo28gbGliZXJhZG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ0FkaWNpb25hciB1bWEgbGluaGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICdWb2PDqiBwb2RlIHNlbGVjaW9uYXIgYXBlbmFzIHVtIGVsZW1lbnRvIG5vIGNoZWNrYm94ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnVGVtIGNlcnRlemEgZGUgcXVlIHZvY8OqIHRyYWJhbGhvdSBlbnF1YW50byBlc3RhdmEgZW0gbGljZW7Dp2EgbcOpZGljYT8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICdUZW0gY2VydGV6YSBkZSBxdWUgdm9jw6ogdHJhYmFsaG91IGVucXVhbnRvIGVzdGF2YSBkZSBmw6lyaWFzPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAnVm9jw6ogdGVtIGNlcnRlemEgcXVlIHRyYWJhbGhvdSBlbnF1YW50byBlc3RhdmEgZGUgbGljZW7Dp2EgZGUgaG9yYXMgZXh0cmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICdWb2PDqiB0ZW0gY2VydGV6YSBxdWUgdHJhYmFsaG91IG1haXMgcXVlIDE2IGhvcmFzPyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAnUmVsYXTDs3JpbyBkZSBhcG9udGFtZW50byBkZSB0ZW1wbyBtZW5zYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJ0hvcmFzIGV4dHJhcyAoaG9yYXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0aGlzIG1vbnRoKSd9ID0gJ0hvcmFzIGV4dHJhcyAoZXN0ZSBtw6pzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnSG9yYXMgZXh0cmFzICh0b3RhbCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAnUmVzdGFudGUgZGEgbGljZW7Dp2EgZGUgaG9yYXMgZXh0cmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIChEYXlzKSd9ID0gJ0bDqXJpYXMgKERpYXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ0bDqXJpYXMgdGlyYWRhcyAoZXN0ZSBtw6pzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodG90YWwpJ30gPSAnRsOpcmlhcyB0aXJhZGFzICh0b3RhbCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAnRsOpcmlhcyByZXN0YW50ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICdMaWNlbsOnYSBNw6lkaWNhIChEaWFzKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ0xpY2Vuw6dhIG3DqWRpY2FzIHRpcmFkYXMgICggZXN0ZSBtw6pzICknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAnTGljZW7Dp2EgbcOpZGljYXMgdGlyYWRhcyAgKCB0b3RhbCApJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnTcOqcyBhbnRlcmlvcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IG1vbnRoJ30gPSAnUHLDs3hpbW8gbcOqcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAnRGlhIGRhIHNlbWFuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JraW5nIEhvdXJzJ30gPSAnSG9yw6FyaW8gZGUgdHJhYmFsaG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAnVG90YWwgZGUgaG9yYXMgdHJhYmFsaGFkYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAnVmlzw6NvIGRlIHByb2pldG8gZGUgdXN1w6FyaW9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChtb250aGx5KSd9ID0gJ0hvcmFzICggbWVuc2FsICknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ0hvcmFzICggRHVyYcOnw6NvICknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICdUb3RhbCBnZXJhbCc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICdSZWxhdMOzcmlvIGRlIHRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICdOYXZlZ2HDp8OjbyBNZW5zYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gZGF0ZSd9ID0gJ0lyIHBhcmEgZGF0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHJlcG9ydHMnfSA9ICdSZWxhdMOzcmlvcyBkZSB1c3XDoXJpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJ1RvdGFsIG1lbnNhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaWZldGltZSB0b3RhbCd9ID0gJ0R1cmHDp8OjbyB0b3RhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSBsZWF2ZSd9ID0gJ0xpY2Vuw6dhIGRlIGhvcmFzIGV4dHJhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ0bDqXJpYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ0xpY2Vuw6dhIG3DqWRpY2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gcmVtYWluaW5nJ30gPSAnRsOpcmlhcyByZXN0YW50ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydHMnfSA9ICdSZWxhdMOzcmlvcyBkZSBwcm9qZXRvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICdSZWxhdMOzcmlvIGRlIHByb2pldG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAnSXIgcGFyYSB2aXPDo28gZ2VyYWwgZGUgcmVsYXTDs3Jpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdBdHVhbG1lbnRlIHNvbWVudGUgdXN1w6FyaW9zIGF0aXZvcyBuZXN0ZSBwcm9qZXRvIHPDo28gZXhpYmlkb3MuIFBhcmEgYWx0ZXJhciBlc3NlIGNvbXBvcnRhbWVudG8sIHBvciBmYXZvciBhdHVhbGl6ZSBhIGNvbmZpZ3VyYcOnw6NvOic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICdBdHVhbG1lbnRlIHRvZG9zIG9zIGFwb250YW1lbnRvIGRlIHRlbXBvcyBkb3MgdXN1w6FyaW9zIHPDo28gZXhpYmlkb3MuIFBhcmEgYWx0ZXJhciBlc3NlIGNvbXBvcnRhbWVudG8sIHBvciBmYXZvciBhdHVhbGl6ZSBhIGNvbmZpZ3VyYcOnw6NvOic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICdFZGl0YXIgY29uZmlndXJhw6fDtWVzIGRvIFByb2pldG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHByb2plY3QnfSA9ICdBZGljaW9uYXIgcHJvamV0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ0lyIHBhcmEgY29uZmlndXJhw6fDtWVzIGdlcmFpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJ0FkaWNpb25hciBwcm9qZXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ0VkaXRhciBDb25maWd1cmHDp8O1ZXMgZG8gUHJvamV0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgcHJvamVjdCB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnSsOhIGV4aXN0ZSB1bSBwcm9qZXRvIGNvbSBlc3RlIG5vbWUuIFBvciBmYXZvciwgZXNjb2xoYSB1bSBkaWZlcmVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnRWRpdGFyIENvbmZpZ3VyYcOnw7VlcyBkYSBDb250YWJpbGlkYWRlIGRlIFRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ0FkaWNpb25hciB0YXJlZmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICdGaWx0cmFyIHBvciBwcm9qZXRvcywgdGFyZWZhcyBvdSB1c3XDoXJpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICdQZXLDrW9kb3MgZGUgdGVtcG8gbsOjbyBwb2RlbSBzZXIgZXhjbHXDrWRvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAnTGlzdGEgZGUgcHJvamV0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAnTGlzdGEgZGUgdGFyZWZhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgVGFzayd9ID0gJ0FkaWNpb25hciB0YXJlZmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUYXNrIFNldHRpbmdzJ30gPSAnRWRpdGFyIGNvbmZpZ3VyYcOnw7VlcyBkYSBUYXJlZmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ0rDoSBleGlzdGUgdW1hIHRhcmVmYSBjb20gZXNzZSBub21lLiBQb3IgZmF2b3IsIGVzY29saGEgdW0gbm9tZSBkaWZlcmVudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ0xpc3RhIGRlIHVzdcOhcmlvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNldHRpbmdzJ30gPSAnQ29uZmlndXJhw6fDtWVzIGRlIHVzdcOhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBzZWUgb3ZlcnRpbWVzJ30gPSAnTyB1c3XDoXJpbyB0ZW0gcGVybWlzc8OjbyBwYXJhIHZlciBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ01vc3RyYXIgaG9yYXMgZXh0cmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBjcmVhdGUgcHJvamVjdHMnfSA9ICdPIHVzdcOhcmlvIHRlbSBwZXJtaXNzw6NvIHBhcmEgY3JpYXIgcHJvamV0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ0xpYmVyYXIgY3JpYcOnw6NvIGRlIHByb2pldG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBza2lwIHRpbWUgYWNjb3VudGluZyd9ID0gJ1VzdcOhcmlvIHRlbSBwZXJtaXNzw6NvIGRlIHB1bGFyIGEgY29udGFiaWxpZGFkZSBkZSB0ZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyB0aW1lIGFjY291bnRpbmcgc2tpcHBpbmcnfSA9ICdQZXJtaXRpciBwdWxhciBhIGNvbnRhYmlsaWRhZGUgZGUgdGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQsIHRpbWUgYWNjb3VudGluZyBpcyBlZmZlY3RpdmVseSBvcHRpb25hbCBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICdTZSBlc3RhIG9ww6fDo28gZm9yIHNlbGVjaW9uYWRhLCBhIGNvbnRhYmlsaWRhZGUgZGUgdGVtcG8gc2Vyw6EgZWZldGl2YW1lbnRlIG9wY2lvbmFsIHBhcmEgbyB1c3XDoXJpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2lsbCBiZSBubyB3YXJuaW5ncyBhYm91dCBtaXNzaW5nIGVudHJpZXMgYW5kIG5vIGVudHJ5IGVuZm9yY2VtZW50Lid9ID0KICAgICAgICAnTsOjbyBoYXZlcsOjbyBhbGVydGFzIHNvYnJlIHJlZ2lzdHJvcyBmYWx0YW50ZXMgbmVtIHJlZ2lzdHJvcyBmb3LDp2Fkb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU3BhbnMnfSA9ICdJbnRlcnZhbG9zIGRlIHRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJ1BlcsOtb2RvIEluaWNpYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ1BlcsOtb2RvIEZpbmFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICdEaWFzIGRlIEbDqXJpYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICdIb3JhcyBwb3IgU2VtYW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0F1dGhvcml6ZWQgT3ZlcnRpbWUnfSA9ICdIb3JhcyBleHRyYXMgYXV0b3JpemFkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAnRGF0YSBpbmljaWFsICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICdQb3IgZmF2b3IsIGluc2lyYSB1bWEgZGF0YSB2w6FsaWRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJ0RhdGEgZmluYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4nfSA9ICdQZXLDrW9kbyBmaW5hbCBkZXZlIHNlciBtYWlvciBxdWUgIHBlcsOtb2RvIGluaWNpYWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICdEaWFzIGRlIGbDqXJpYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAnSG9yYXMgc2VtYW5haXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICdIb3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ1BlcsOtb2RvIGRlIHRlbXBvIG7Do28gZW5jb250cmFkby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAnQWRpY2lvbmFyIHBlcsOtb2RvIGRlIHRlbXBvJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ1ZlciByZWdpc3RybyBkZSB0ZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ1Zpc8OjbyBkZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdEaWEgYW50ZXJpb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICdQcsOzeGltbyBkaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAnTsOjbyBmb3JhbSBlbmNvbnRyYWRvcyBkYWRvcyBwYXJhIGVzdGUgZGlhLic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnfSA9ICdOw6NvIGZvaSBwb3Nzw612ZWwgaW5zZXJpciBVbmlkYWRlcyBkZSBUcmFiYWxobyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBQcm9qZWN0cyd9ID0gJ8OabHRpbW9zIHByb2pldG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJ0NvbmZpZ3VyYcOnw7VlcyBuw6NvIHNhbHZhcywgcG9pcyB1bSBkaWEgdGVtIGFwZW5hcyAyNCBob3JhcyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJ07Do28gZm9pIHBvc3PDrXZlbCBkZWxldGFyIFVuaWRhZGVzIGRlIFRyYWJhbGhvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJ0VzdGEgRGF0YSBlc3TDoSBmb3JhIGRvIGxpbWl0ZSwgbWFzIHZvY8OqIG7Do28gaW5zZXJpdSBlc3RlIGRpYSBhaW5kYSwgZW50w6NvIHZvY8OqIHBvc3N1aSBVTUEoISkgY2hhbmNlIGRlIGluc2VyaXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICdEaWFzIGRlIHRyYWJhbGhvcyBpbmNvbXBsZXRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICdJbnNlcmlkbyBjb20gc3VjZXNzbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJ0Vycm8gYW8gaW5zZXJpciBtw7psdGlwbGFzIGRhdGFzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICdFbnRyYWRhIGRlIHbDoXJpYXMgZGF0YXMgaW5zZXJpZGEgY29tIHN1Y2Vzc28hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICdEYXRhIGluc2VyaWRhIMOpIGludsOhbGlkYSEgRGF0YSBmb2kgYWx0ZXJhZGEgcGFyYSBob2plLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICdOZW5odW0gcGVyw61vZG8gZGUgdGVtcG8gY29uZmlndXJhZG8gb3UgYSBkYXRhIGVzcGVjaWZpY2FkYSBlc3TDoSBmb3JhIGRvcyBwZXLDrW9kb3MgZGUgdGVtcG8gZGVmaW5pZG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY29udGFjdCB0aGUgdGltZSBhY2NvdW50aW5nIGFkbWluaXN0cmF0b3IgdG8gdXBkYXRlIHlvdXIgdGltZSBwZXJpb2RzISd9ID0KICAgICAgICAnRW50cmUgZW0gY29udGF0byBjb20gbyBhZG1pbmlzdHJhZG9yIGNvbnTDoWJpbCBkbyB0ZW1wbyBwYXJhIGF0dWFsaXphciBzZXVzIHBlcsOtb2RvcyBkZSB0ZW1wbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ8OabHRpbW9zIHByb2pldG9zIHNlbGVjaW9uYWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICdUb2RvcyBvcyBwcm9qZXRvcyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICdQcm9qZXRvIGRlIFJlbGF0w7NyaW86IE5lY2Vzc8OhcmlvIFByb2plY3RJRCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcgUHJvamVjdCd9ID0gJ1Byb2pldG8gZGUgUmVsYXTDs3Jpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICdSZWxhdMOzcmlvJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJ0ltcG9zc8OtdmVsIGF0dWFsaXphciBjb25maWd1cmHDp8O1ZXMgZGUgdXN1w6FyaW8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgYWRkZWQhJ30gPSAnUHJvamV0byBhZGljaW9uYWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnUHJvamV0byBhdHVhbGl6YWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJ0F0aXZpZGFkZSBhZGljaW9uYWRhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIHVwZGF0ZWQhJ30gPSAnQXRpdmlkYWRlIGF0dWFsaXphZGEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJ08gVXNlcklEIG7Do28gw6kgdsOhbGlkbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCB1c2VyIGRhdGEhJ30gPSAnTsOjbyBmb2kgcG9zc8OtdmVsIGluc2VyaXIgZGFkb3MgZGUgdXN1w6FyaW8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byBhZGQgdGltZSBwZXJpb2QhJ30gPSAnSW1wb3Nzw612ZWwgYWRpY2lvbmFyIHBlcsOtb2RvIGRlIHRlbXBvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXR0aW5nJ30gPSAnQ29uZmlndXJhw6fDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciB1cGRhdGVkISd9ID0gJ1VzdcOhcmlvIGF0dWFsaXphZG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnVXN1w6FyaW8gYWRpY2lvbmFkbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICdBZGljaW9uYXIgdW0gdXN1w6FyaW8gcGFyYSBhIGNvbnRhYmlsaWRhZGUgZG8gdGVtcG8uLi4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAnTm92byB1c3XDoXJpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAnRXN0YWRvIGRvIHBlcsOtb2RvJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nVmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldzogTmVlZCAlcyEnfSA9ICdWaXPDo286IE5lY2Vzc8OhcmlvICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML05vdGlmaWNhdGlvbi9UaW1lQWNjb3VudGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAnUG9yIGZhdm9yIGluc2lyYSBzdWFzIGhvcmFzIGRlIHRyYWJhbGhvISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJ0RpYXMgZGUgdHJhYmFsaG9zIGluY29tcGxldG9zJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ1BvciBmYXZvciwgZXNjb2xoYSBwZWxvIG1lbm9zIHVtIGRpYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ0VudHJhZGEgZW0gbWFzc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICdQb3IgZmF2b3IgZXNjb2xoYSB1bSBtb3Rpdm8gcGFyYSBhIGF1c8OqbmNpYSc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ0RlbGV0YXIgZW50cmFkYSBuYSBDb250YWJpbGlkYWRlIGRlIFRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ0NvbmZpcm1hciBpbnNlcsOnw6NvJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnTcOzZHVsbyBkZSBub3RpZmljYcOnw6NvIGRvIEFnZW50ZSBwYXJhIHZlciBvIG51bWVybyBkZSBkaWFzIGluY29tcGxldG9zIGRvIHVzdcOhcmlvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ08gbm9tZSBwYWRyw6NvIHBhcmEgbm92YXMgYcOnw7Vlcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnTyBub21lIHBhZHLDo28gcGFyYSBub3ZvcyBwcm9qZXRvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICdDb25maWd1cmHDp8OjbyBwYWRyw6NvIHBhcmEgZGF0YSBmaW5hbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAnQ29uZmlndXJhw6fDo28gcGFkcsOjbyBwYXJhIGRhdGEgaW5pY2lhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICdDb25maWd1cmHDp8OjbyBwYWRyw6NvIHBhcmEgZGVzY3Jpw6fDo28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy4nfSA9ICdDb25maWd1cmHDp8OjbyBwYWRyw6NvIHBhcmEgZGlhcyBkZSBmw6lyaWFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJ0NvbmZpZ3VyYcOnw6NvIHBhZHLDo28gcGFyYSBob3JhcyBleHRyYXMsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICdDb25maWd1cmHDp8OjbyBwYWRyw6NvIHBhcmEgaG9yYXMgc2VtYW5haXMgcGFkcsOjbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnRXN0YWRvIHBhZHLDo28gcGFyYSBub3ZhcyBhw6fDtWVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJ0VzdGFkbyBwYWRyw6NvIHBhcmEgbm92b3MgcHJvamV0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICdFc3RhZG8gcGFyYSBwYXJhIG5vdm9zIHVzdcOhcmlvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICdEZWZpbmUgb3MgcHJvamV0b3MgcGFyYSBvcyBxdWFpcyDDqSBuZWNlc3PDoXJpYSB1bWEgb2JzZXJ2YcOnw6NvLiBTZSBvIFJlZ0V4cCDDqSBlbmNvbnRyYWRvIG5vIHByb2pldG8sIHZvY8OqIHRlbSBxdWUgaW5zZXJpciB1bWEgb2JzZXJ2YcOnw6NvLiBPIFJlZ0V4cCB1c2EgbyBwYXLDom1ldHJvIHNteC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ0RldGVybWluYSBzZSBvIG3Ds2R1bG8gZGUgZXN0YXTDrXN0aWNhcyBwb2RlIGdlcmFyIGluZm9ybWHDp8O1ZXMgZG8gdGltZSBhY2NvdW50aW5nLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdFZGl0YXIgY29uZmlndXJhw6fDtWVzIGRhIGNvbnRhYmlsaWRhZGUgZGUgdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnRWRpdGFyIHJlZ2lzdHJvIGRlIHRlbXBvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3IgaG93IG1hbnkgZGF5cyBhZ28geW91IGNhbiBpbnNlcnQgd29ya2luZyB1bml0cy4nfSA9ICdQYXJhIHF1YW50b3MgZGlhcyBhdHLDoXMgdm9jw6ogcG9kZSBpbnNlcmlyIHVuaWRhZGVzIGRlIHRyYWJhbGhvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICdTZSBhdGl2YWRvLCBzb21lbnRlIG9zIHVzdcOhcmlvcyBxdWUgYWRpY2lvbm91IHRlbXBvIGRlIHRyYWJhbGhvIGFvIG8gcHJvamV0byBzZWxlY2lvbmFkbyBzZXLDo28gZXhpYmlkb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBkcm9wZG93biBlbGVtZW50cyBpbiB0aGUgZWRpdCBzY3JlZW4gYXJlIGNoYW5nZWQgdG8gbW9kZXJuaXplZCBhdXRvY29tcGxldGlvbiBmaWVsZHMuJ30gPQogICAgICAgICdTZSBhdGl2YWRvLCBvcyBlbGVtZW50b3Mgc3VzcGVuc29zIG5hIHRlbGEgZGUgZWRpw6fDo28gc8OjbyBtb2RpZmljYWRhcyBwYXJhIGNhbXBvcyBkZSBhdXRvY29tcGxldGFyIG1vZGVybml6YWRvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGNhbiBiZSB1c2VkIGluc3RlYWQgdHdvIGxpc3Qgb2YgcHJvamVjdHMgKGxhc3QgYW5kIGFsbCBvbmVzKS4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBpcyBlbmFibGVkLid9ID0KICAgICAgICAnU2UgaGFiaWxpdGFkbywgbyBmaWx0cm8gcGFyYSBvcyBwcm9qZXRvcyBhbnRlcmlvcmVzIHBvZGUgc2VyIHVzYWRvIGVtIHZleiBkZSBkdWFzIGxpc3RhcyBkZSBwcm9qZXRvcyAow7psdGltbyBlIHRvZG9zKS4gRWxlIHBvZGUgc2VyIHVzYWRvIGFwZW5hcyBzZSBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gZXN0w6EgaGFiaWxpdGFkby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGlzIGFjdGl2ZSBieSBkZWZhdWx0IGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBFbmFibGVBdXRvQ29tcGxldGlvbiBhbmQgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBhcmUgZW5hYmxlZC4nfSA9CiAgICAgICAgJ1NlIGhhYmlsaXRhZG8sIG8gZmlsdHJvIHBhcmEgcHJvamV0b3MgYW50ZXJpb3JlcyDDqSBhdGl2YWRvIHBvciBwYWRyw6NvIHNlIGjDoSBwcm9qZXRvcyBhbnRlcmlvcmVzLiBFbGUgcG9kZSBzZXIgdXNhZG8gYXBlbmFzIHNlIEVuYWJsZUF1dG9Db21wbGV0aW9uIGUgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBlc3TDo28gaGFiaWxpdGFkb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICdTZSBhdGl2YWRvLCBvIHVzdcOhcmlvIHRlbSBwZXJtaXNzw6NvIHBhcmEgZW50cmFyICJlbSBsaWNlbsOnYSBkZSBmw6lyaWFzIiwgImVtIGxpY2Vuw6dhIG3DqWRpY2EiIGUgImVtIGxpY2Vuw6dhIGRlIGhvcmFzIGV4dHJhcyIgZGUgdW1hIHPDsyB2ZXogcGFyYSB2w6FyaWFzIGRhdGFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ08gbsO6bWVybyBtw6F4aW1vIGRlIGRpYXMgZGUgdHJhYmFsaG8gYXDDs3MgbyBxdWFsIGFzICJ1bmlkYWRlcyBkZSB0cmFiYWxobyIgZGV2ZW0gc2VyIGluc2VyaWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLid9ID0KICAgICAgICAnTyBuw7ptZXJvIG3DoXhpbW8gZGUgZGlhcyBkZSB0cmFiYWxobyBzZW0gInVuaWRhZGVzIGRlIHRyYWJhbGhvIiAgYXDDs3MgbyBxdWFsIHVtIGF2aXNvIHNlcsOhIG1vc3RyYWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICdWaXPDo28gR2VyYWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdGltZSByZXBvcnRpbmcuJ30gPSAnUmVsYXTDs3JpbyBkZSB0ZW1wb3MgZGUgcHJvamV0b3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICdBcyBleHByZXNzw7VlcyByZWd1bGFyZXMgcGFyYSByZXN0cmluZ2lyIGxpc3RhIGRlIGHDp8O1ZXMgZGUgYWNvcmRvIGNvbSBvIHByb2pldG8gc2VsZWNpb25hZG8uIENoYXZlIGNvbnTDqW0gZXhwcmVzc8OjbyByZWd1bGFyIHBhcmEgbyBwcm9qZXRvKHMpLCBDb250ZcO6ZG8gY29udMOpbSBleHByZXNzw7VlcyByZWd1bGFyZXMgcGFyYSBhIGHDp8OjbyhzKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAnQXMgZXhwcmVzc8O1ZXMgcmVndWxhcmVzIHBhcmEgcmVzdHJpbmdpciBhIGxpc3RhIGRlIHByb2pldG8gZGUgYWNvcmRvIGNvbSBncnVwb3MgZGUgdXN1w6FyaW9zLiBDaGF2ZSBjb250w6ltIGV4cHJlc3PDo28gcmVndWxhciBwYXJhIG8gcHJvamV0byAocyksIGNvbnRlw7pkbyBjb250w6ltIGxpc3RhICBzZXBhcmFkYSBwb3IgdsOtcmd1bGFzIGRlIGdydXBvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ0VzcGVjaWZpcXVlIHNlIG8gaG9yw6FyaW8gZGUgdHJhYmFsaG8gcG9kZSBzZXIgaW5zZXJpZG8gc2VtIGhvcsOhcmlvcyBkZSBpbsOtY2lvIGUgdMOpcm1pbm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ0Vzc2UgbcOzZHVsbyBmb3LDp2EgcHJlZW5jaGVyIG8gVGltZUFjY291bnRpbmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAnRXN0ZSBtw7NkdWxvIGRlIG5vdGlmaWNhw6fDo28gZMOhIHVtIGF2aXNvIHNlIGhvdXZlciBtdWl0b3MgZGlhcyBkZSB0cmFiYWxobyBuw6NvIHJlZ2lzdHJhZG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIEFjY291bnRpbmcnfSA9ICdDb250YWJpbGlkYWRlIFRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJ0VkaXRhciBjb250YWJpbGlkYWRlIGRlIHRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICdWaXPDo28gZ2VyYWwgZGUgY29udGFiaWxpZGFkZSBkZSB0ZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJ1JlbGF0w7NyaW8gZGUgY29udGFiaWxpZGFkZSBkZSB0ZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnQ29uZmlndXJhw6fDtWVzIGRlIGNvbnRhYmlsaWRhZGUgZGUgdGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHZpZXcuJ30gPSAnVmVyIGNvbnRhYmlsaWRhZGUgZGUgdGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJ0NvbnRhYmlsaWRhZGUgVGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAnVXNhciBwYXJhICBhbGd1bWFzIGHDp8O1ZXMgZGUgcmVkdXppciBhcyBob3JhcyBkZSB0cmFiYWxobyAocG9yIGV4ZW1wbG8sIHNlIGFwZW5hcyBtZXRhZGUgZG8gdGVtcG8gZGUgdmlhZ2VtIMOpIHBhZ28gS2V5ID0+IHZpYWphcjsgQ29udGVudCA9PiA1MCknOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdDYW5jZWwnLAogICAgJ0NvbmZpcm0gaW5zZXJ0JywKICAgICdEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5JywKICAgICdNYXNzIEVudHJ5JywKICAgICdObycsCiAgICAnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnLAogICAgJ1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnB0X1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnVm9jw6ogcmVhbG1lbnRlIGRlc2VqYSByZW1vdmVyIG8gYXBvbnRhbWVudG8gZGUgdGVtcG8gZGVzdGUgZGlhID8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnRWRpdGFyIHJlZ2lzdHJvIGRlIHRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAnSXIgcGFyYSBjb25maWd1cmHDp8O1ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAnTmF2ZWdhw6fDo28gZGUgZGF0YXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICdEaWFzIHNlbSBhcG9udGFtZW50b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAnU2VsZWNpb25hciB0b2RvcyBvcyBkaWFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICdFbnRyYWRhIGVtIG1hc3NhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnUG9yIGZhdm9yLCBlc2NvbGhhIG8gbW90aXZvIGRlIHN1YSBhdXPDqm5jaWEgcGFyYSBvcyBkaWFzIHNlbGVjaW9uYWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiB2YWNhdGlvbid9ID0gJ0VtIGbDqXJpYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ0VtIGxpY2Vuw6dhIG3DqWRpY2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICdFbSBsaWNlbsOnYSBkZSBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhICIqIi4nfSA9ICdDYW1wb3Mgb2JyaWdhdMOzcmlvcyBlc3TDo28gbWFyY2Fkb3MgY29tICIqIic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ1ZvY8OqIHTDqm0gcXVlIHByZWVuY2hlciBpbsOtY2lvIGUgZmltLCBvdSB1bSBwZXLDrW9kbyBkZSB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb2pldG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ1RhcmVmYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnT2JzZXJ2YcOnw6NvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJ1BvciBmYXZvciwgYWRpY2lvbmUgdW0gY29tZW50w6FyaW8gY29tIG1haXMgZGUgOCBjYXJhY3RlcmVzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnRGF0YXMgbmVnYXRpdmFzIG7Do28gc8OjbyBsaWJlcmFkYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ0hvcmFzIHJlcGV0aWRhcyBuw6NvIHPDo28gbGliZXJhZGFzLiBJbmljaWUgbyBhcG9udGFtZW50byBlbSBvdXRybyBpbnRlcnZhbG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICdGb3JtYXRvIGludsOhbGlkbyEgUG9yIGZhdm9yLCBlbnRyZSBjb20gdW0gdGVtcG8gbm8gZm9ybWF0byBISDpNTSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICdBcGVuYXMgMjQ6MDAgc8OjbyBwZXJtaXRpZGFzIGNvbW8gdGVtcG8gZmluYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICdUZW1wbyBpbnbDoWxpZG8hIFVtIGRpYSB0ZW0gYXBlbmFzIDI0IGhvcmFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnVGVtcG8gZmluYWwgZGV2ZSBzZXIgZGVwb2lzIGRvIHRlbXBvIGluaWNpYWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnSG9yYXMgcmVwZXRpZGFzIG7Do28gc8OjbyBsaWJlcmFkYXMuIEluaWNpZSBvIGFwb250YW1lbnRvIGVtIG91dHJvIGludGVydmFsby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ1BlcmlvZG8gaW52w6FsaWRvLiBVbSBkaWEgdGVtIGFwZW5hcyAyNCBob3Jhcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICdVbSBwZXLDrW9kbyB2w6FsaWRvIGRldmUgc2VyIG1haW9yIHF1ZSB6ZXJvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnUGVyw61vZG8gaW52w6FsaWRvISBQZXLDrW9kb3MgbmVnYXRpdm9zIG7Do28gc8OjbyBsaWJlcmFkb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAnQWRpY2lvbmFyIHVtYSBsaW5oYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ1ZvY8OqIHBvZGUgc2VsZWNpb25hciBhcGVuYXMgdW0gZWxlbWVudG8gbm8gY2hlY2tib3ghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nfSA9ICdUZW0gY2VydGV6YSBkZSBxdWUgdm9jw6ogdHJhYmFsaG91IGVucXVhbnRvIGVzdGF2YSBlbSBsaWNlbsOnYSBtw6lkaWNhPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHZhY2F0aW9uPyd9ID0gJ1RlbSBjZXJ0ZXphIGRlIHF1ZSB2b2PDqiB0cmFiYWxob3UgZW5xdWFudG8gZXN0YXZhIGRlIGbDqXJpYXM/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gb3ZlcnRpbWUgbGVhdmU/J30gPQogICAgICAgICdWb2PDqiB0ZW0gY2VydGV6YSBxdWUgdHJhYmFsaG91IGVucXVhbnRvIGVzdGF2YSBkZSBsaWNlbsOnYSBkZSBob3JhcyBleHRyYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJ1ZvY8OqIHRlbSBjZXJ0ZXphIHF1ZSB0cmFiYWxob3UgbWFpcyBxdWUgMTYgaG9yYXM/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXcnfSA9ICdSZWxhdMOzcmlvIGRlIGFwb250YW1lbnRvIGRlIHRlbXBvIG1lbnNhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAnSG9yYXMgZXh0cmFzIChob3JhcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnSG9yYXMgZXh0cmFzIChlc3RlIG3DqnMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICdIb3JhcyBleHRyYXMgKHRvdGFsKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUnfSA9ICdSZXN0YW50ZSBkYSBsaWNlbsOnYSBkZSBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAnRsOpcmlhcyAoRGlhcyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnRsOpcmlhcyB0aXJhZGFzIChlc3RlIG3DqnMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICdGw6lyaWFzIHRpcmFkYXMgKHRvdGFsKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgdmFjYXRpb24nfSA9ICdGw6lyaWFzIHJlc3RhbnRlcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ0xpY2Vuw6dhIE3DqWRpY2EgKERpYXMpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnTGljZW7Dp2EgbcOpZGljYXMgdGlyYWRhcyAgKCBlc3RlIG3DqnMgKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0b3RhbCknfSA9ICdMaWNlbsOnYSBtw6lkaWNhcyB0aXJhZGFzICAoIHRvdGFsICknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICdNw6pzIGFudGVyaW9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICdQcsOzeGltbyBtw6pzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICdEaWEgZGEgc2VtYW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICdIb3LDoXJpbyBkZSB0cmFiYWxobyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICdUb3RhbCBkZSBob3JhcyB0cmFiYWxoYWRhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyXCdzIHByb2plY3Qgb3ZlcnZpZXcnfSA9ICdWaXPDo28gZGUgcHJvamV0byBkZSB1c3XDoXJpb3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAnSG9yYXMgKCBtZW5zYWwgKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAnSG9yYXMgKCBEdXJhw6fDo28gKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmFuZCB0b3RhbCd9ID0gJ1RvdGFsIGdlcmFsJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJ1JlbGF0w7NyaW8gZGUgdGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJ05hdmVnYcOnw6NvIE1lbnNhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAnSXIgcGFyYSBkYXRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ1JlbGF0w7NyaW9zIGRlIHVzdcOhcmlvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAnVG90YWwgbWVuc2FsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpZmV0aW1lIHRvdGFsJ30gPSAnRHVyYcOnw6NvIHRvdGFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAnTGljZW7Dp2EgZGUgaG9yYXMgZXh0cmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAnRsOpcmlhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAnTGljZW7Dp2EgbcOpZGljYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICdGw6lyaWFzIHJlc3RhbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ1JlbGF0w7NyaW9zIGRlIHByb2pldG8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmdQcm9qZWN0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydCd9ID0gJ1JlbGF0w7NyaW8gZGUgcHJvamV0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXcnfSA9ICdJciBwYXJhIHZpc8OjbyBnZXJhbCBkZSByZWxhdMOzcmlvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ0F0dWFsbWVudGUgc29tZW50ZSB1c3XDoXJpb3MgYXRpdm9zIG5lc3RlIHByb2pldG8gc8OjbyBleGliaWRvcy4gUGFyYSBhbHRlcmFyIGVzc2UgY29tcG9ydGFtZW50bywgcG9yIGZhdm9yIGF0dWFsaXplIGEgY29uZmlndXJhw6fDo286JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ0F0dWFsbWVudGUgdG9kb3Mgb3MgYXBvbnRhbWVudG8gZGUgdGVtcG9zIGRvcyB1c3XDoXJpb3Mgc8OjbyBleGliaWRvcy4gUGFyYSBhbHRlcmFyIGVzc2UgY29tcG9ydGFtZW50bywgcG9yIGZhdm9yIGF0dWFsaXplIGEgY29uZmlndXJhw6fDo286JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ0VkaXRhciBjb25maWd1cmHDp8O1ZXMgZG8gUHJvamV0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJ0FkaWNpb25hciBwcm9qZXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAnSXIgcGFyYSBjb25maWd1cmHDp8O1ZXMgZ2VyYWlzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAnQWRpY2lvbmFyIHByb2pldG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAnRWRpdGFyIENvbmZpZ3VyYcOnw7VlcyBkbyBQcm9qZXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdKw6EgZXhpc3RlIHVtIHByb2pldG8gY29tIGVzdGUgbm9tZS4gUG9yIGZhdm9yLCBlc2NvbGhhIHVtIGRpZmVyZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MnfSA9ICdFZGl0YXIgQ29uZmlndXJhw6fDtWVzIGRhIENvbnRhYmlsaWRhZGUgZGUgVGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnQWRpY2lvbmFyIHRhcmVmYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIHByb2plY3RzLCB0YXNrcyBvciB1c2Vycyd9ID0gJ0ZpbHRyYXIgcG9yIHByb2pldG9zLCB0YXJlZmFzIG91IHVzdcOhcmlvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJ1BlcsOtb2RvcyBkZSB0ZW1wbyBuw6NvIHBvZGVtIHNlciBleGNsdcOtZG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICdMaXN0YSBkZSBwcm9qZXRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICdMaXN0YSBkZSB0YXJlZmFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAnQWRpY2lvbmFyIHRhcmVmYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICdFZGl0YXIgY29uZmlndXJhw6fDtWVzIGRhIFRhcmVmYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnSsOhIGV4aXN0ZSB1bWEgdGFyZWZhIGNvbSBlc3NlIG5vbWUuIFBvciBmYXZvciwgZXNjb2xoYSB1bSBub21lIGRpZmVyZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAnTGlzdGEgZGUgdXN1w6FyaW9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2V0dGluZ3MnfSA9ICdDb25maWd1cmHDp8O1ZXMgZGUgdXN1w6FyaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNlZSBvdmVydGltZXMnfSA9ICdPIHVzdcOhcmlvIHRlbSBwZXJtaXNzw6NvIHBhcmEgdmVyIGhvcmFzIGV4dHJhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnTW9zdHJhciBob3JhcyBleHRyYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIGNyZWF0ZSBwcm9qZWN0cyd9ID0gJ08gdXN1w6FyaW8gdGVtIHBlcm1pc3PDo28gcGFyYSBjcmlhciBwcm9qZXRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnTGliZXJhciBjcmlhw6fDo28gZGUgcHJvamV0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNraXAgdGltZSBhY2NvdW50aW5nJ30gPSAnVXN1w6FyaW8gdGVtIHBlcm1pc3PDo28gZGUgcHVsYXIgYSBjb250YWJpbGlkYWRlIGRlIHRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHRpbWUgYWNjb3VudGluZyBza2lwcGluZyd9ID0gJ1Blcm1pdGlyIHB1bGFyIGEgY29udGFiaWxpZGFkZSBkZSB0ZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGlzIG9wdGlvbiBpcyBzZWxlY3RlZCwgdGltZSBhY2NvdW50aW5nIGlzIGVmZmVjdGl2ZWx5IG9wdGlvbmFsIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ1NlIGVzdGEgb3DDp8OjbyBmb3Igc2VsZWNpb25hZGEsIGEgY29udGFiaWxpZGFkZSBkZSB0ZW1wbyBzZXLDoSBlZmV0aXZhbWVudGUgb3BjaW9uYWwgcGFyYSBvIHVzdcOhcmlvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3aWxsIGJlIG5vIHdhcm5pbmdzIGFib3V0IG1pc3NpbmcgZW50cmllcyBhbmQgbm8gZW50cnkgZW5mb3JjZW1lbnQuJ30gPQogICAgICAgICdOw6NvIGhhdmVyw6NvIGFsZXJ0YXMgc29icmUgcmVnaXN0cm9zIGZhbHRhbnRlcyBuZW0gcmVnaXN0cm9zIGZvcsOnYWRvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTcGFucyd9ID0gJ0ludGVydmFsb3MgZGUgdGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAnUGVyw61vZG8gSW5pY2lhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnUGVyw61vZG8gRmluYWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJ0RpYXMgZGUgRsOpcmlhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ0hvcmFzIHBvciBTZW1hbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJ0hvcmFzIGV4dHJhcyBhdXRvcml6YWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICdEYXRhIGluaWNpYWwgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLid9ID0gJ1BvciBmYXZvciwgaW5zaXJhIHVtYSBkYXRhIHbDoWxpZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAnRGF0YSBmaW5hbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJ1BlcsOtb2RvIGZpbmFsIGRldmUgc2VyIG1haW9yIHF1ZSAgcGVyw61vZG8gaW5pY2lhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJ0RpYXMgZGUgZsOpcmlhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICdIb3JhcyBzZW1hbmFpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSd9ID0gJ0hvcmFzIGV4dHJhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnUGVyw61vZG8gZGUgdGVtcG8gbsOjbyBlbmNvbnRyYWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICdBZGljaW9uYXIgcGVyw61vZG8gZGUgdGVtcG8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnVmVyIHJlZ2lzdHJvIGRlIHRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAnVmlzw6NvIGRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ0RpYSBhbnRlcmlvcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ1Byw7N4aW1vIGRpYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICdOw6NvIGZvcmFtIGVuY29udHJhZG9zIGRhZG9zIHBhcmEgZXN0ZSBkaWEuJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJ07Do28gZm9pIHBvc3PDrXZlbCBpbnNlcmlyIFVuaWRhZGVzIGRlIFRyYWJhbGhvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnw5psdGltb3MgcHJvamV0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAnQ29uZmlndXJhw6fDtWVzIG7Do28gc2FsdmFzLCBwb2lzIHVtIGRpYSB0ZW0gYXBlbmFzIDI0IGhvcmFzISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJ30gPSAnTsOjbyBmb2kgcG9zc8OtdmVsIGRlbGV0YXIgVW5pZGFkZXMgZGUgVHJhYmFsaG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAnRXN0YSBEYXRhIGVzdMOhIGZvcmEgZG8gbGltaXRlLCBtYXMgdm9jw6ogbsOjbyBpbnNlcml1IGVzdGUgZGlhIGFpbmRhLCBlbnTDo28gdm9jw6ogcG9zc3VpIFVNQSghKSBjaGFuY2UgZGUgaW5zZXJpcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJ0RpYXMgZGUgdHJhYmFsaG9zIGluY29tcGxldG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJ0luc2VyaWRvIGNvbSBzdWNlc3NvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAnRXJybyBhbyBpbnNlcmlyIG3Dumx0aXBsYXMgZGF0YXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzISd9ID0gJ0VudHJhZGEgZGUgdsOhcmlhcyBkYXRhcyBpbnNlcmlkYSBjb20gc3VjZXNzbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ0RhdGEgaW5zZXJpZGEgw6kgaW52w6FsaWRhISBEYXRhIGZvaSBhbHRlcmFkYSBwYXJhIGhvamUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kIGNvbmZpZ3VyZWQsIG9yIHRoZSBzcGVjaWZpZWQgZGF0ZSBpcyBvdXRzaWRlIG9mIHRoZSBkZWZpbmVkIHRpbWUgcGVyaW9kcy4nfSA9CiAgICAgICAgJ05lbmh1bSBwZXLDrW9kbyBkZSB0ZW1wbyBjb25maWd1cmFkbyBvdSBhIGRhdGEgZXNwZWNpZmljYWRhIGVzdMOhIGZvcmEgZG9zIHBlcsOtb2RvcyBkZSB0ZW1wbyBkZWZpbmlkb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICdFbnRyZSBlbSBjb250YXRvIGNvbSBvIGFkbWluaXN0cmFkb3IgY29udMOhYmlsIGRvIHRlbXBvIHBhcmEgYXR1YWxpemFyIHNldXMgcGVyw61vZG9zIGRlIHRlbXBvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAnw5psdGltb3MgcHJvamV0b3Mgc2VsZWNpb25hZG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJ1RvZG9zIG9zIHByb2pldG9zJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmdQcm9qZWN0OiBOZWVkIFByb2plY3RJRCd9ID0gJ1Byb2pldG8gZGUgUmVsYXTDs3JpbzogTmVjZXNzw6FyaW8gUHJvamVjdElEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnUHJvamV0byBkZSBSZWxhdMOzcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ1JlbGF0w7NyaW8nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gdXBkYXRlIHVzZXIgc2V0dGluZ3MhJ30gPSAnSW1wb3Nzw612ZWwgYXR1YWxpemFyIGNvbmZpZ3VyYcOnw7VlcyBkZSB1c3XDoXJpbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICdQcm9qZXRvIGFkaWNpb25hZG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdXBkYXRlZCEnfSA9ICdQcm9qZXRvIGF0dWFsaXphZG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnQXRpdmlkYWRlIGFkaWNpb25hZGEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICdBdGl2aWRhZGUgYXR1YWxpemFkYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnTyBVc2VySUQgbsOjbyDDqSB2w6FsaWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICdOw6NvIGZvaSBwb3Nzw612ZWwgaW5zZXJpciBkYWRvcyBkZSB1c3XDoXJpbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICdJbXBvc3PDrXZlbCBhZGljaW9uYXIgcGVyw61vZG8gZGUgdGVtcG8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHRpbmcnfSA9ICdDb25maWd1cmHDp8Ojbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnVXN1w6FyaW8gYXR1YWxpemFkbyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICdVc3XDoXJpbyBhZGljaW9uYWRvISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB1c2VyIHRvIHRpbWUgYWNjb3VudGluZy4uLid9ID0gJ0FkaWNpb25hciB1bSB1c3XDoXJpbyBwYXJhIGEgY29udGFiaWxpZGFkZSBkbyB0ZW1wby4uLi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICdOb3ZvIHVzdcOhcmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICdFc3RhZG8gZG8gcGVyw61vZG8nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJ1Zpc8OjbzogTmVjZXNzw6FyaW8gJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTm90aWZpY2F0aW9uL1RpbWVBY2NvdW50aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICdQb3IgZmF2b3IgaW5zaXJhIHN1YXMgaG9yYXMgZGUgdHJhYmFsaG8hJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAnRGlhcyBkZSB0cmFiYWxob3MgaW5jb21wbGV0b3MnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnUG9yIGZhdm9yLCBlc2NvbGhhIHBlbG8gbWVub3MgdW0gZGlhISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAnRW50cmFkYSBlbSBtYXNzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ1BvciBmYXZvciBlc2NvbGhhIHVtIG1vdGl2byBwYXJhIGEgYXVzw6puY2lhJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5J30gPSAnRGVsZXRhciBlbnRyYWRhIG5hIENvbnRhYmlsaWRhZGUgZGUgVGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbmZpcm0gaW5zZXJ0J30gPSAnQ29uZmlybWFyIGluc2Vyw6fDo28nOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICdNw7NkdWxvIGRlIG5vdGlmaWNhw6fDo28gZG8gQWdlbnRlIHBhcmEgdmVyIG8gbnVtZXJvIGRlIGRpYXMgaW5jb21wbGV0b3MgZG8gdXN1w6FyaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnTyBub21lIHBhZHLDo28gcGFyYSBub3ZhcyBhw6fDtWVzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdPIG5vbWUgcGFkcsOjbyBwYXJhIG5vdm9zIHByb2pldG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJ0NvbmZpZ3VyYcOnw6NvIHBhZHLDo28gcGFyYSBkYXRhIGZpbmFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICdDb25maWd1cmHDp8OjbyBwYWRyw6NvIHBhcmEgZGF0YSBpbmljaWFsLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRlc2NyaXB0aW9uLid9ID0gJ0NvbmZpZ3VyYcOnw6NvIHBhZHLDo28gcGFyYSBkZXNjcmnDp8Ojby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJ0NvbmZpZ3VyYcOnw6NvIHBhZHLDo28gcGFyYSBkaWFzIGRlIGbDqXJpYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnQ29uZmlndXJhw6fDo28gcGFkcsOjbyBwYXJhIGhvcmFzIGV4dHJhcywnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJ0NvbmZpZ3VyYcOnw6NvIHBhZHLDo28gcGFyYSBob3JhcyBzZW1hbmFpcyBwYWRyw6NvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdFc3RhZG8gcGFkcsOjbyBwYXJhIG5vdmFzIGHDp8O1ZXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnRXN0YWRvIHBhZHLDo28gcGFyYSBub3ZvcyBwcm9qZXRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ0VzdGFkbyBwYXJhIHBhcmEgbm92b3MgdXN1w6FyaW9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHByb2plY3RzIGZvciB3aGljaCBhIHJlbWFyayBpcyByZXF1aXJlZC4gSWYgdGhlIFJlZ0V4cCBtYXRjaGVzIG9uIHRoZSBwcm9qZWN0LCB5b3UgaGF2ZSB0byBpbnNlcnQgYSByZW1hcmsgdG9vLiBUaGUgUmVnRXhwIHVzZSB0aGUgc214IHBhcmFtZXRlci4nfSA9CiAgICAgICAgJ0RlZmluZSBvcyBwcm9qZXRvcyBwYXJhIG9zIHF1YWlzIMOpIG5lY2Vzc8OhcmlhIHVtYSBvYnNlcnZhw6fDo28uIFNlIG8gUmVnRXhwIMOpIGVuY29udHJhZG8gbm8gcHJvamV0bywgdm9jw6ogdGVtIHF1ZSBpbnNlcmlyIHVtYSBvYnNlcnZhw6fDo28uIE8gUmVnRXhwIHVzYSBvIHBhcsOibWV0cm8gc214Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRlcm1pbmVzIGlmIHRoZSBzdGF0aXN0aWNzIG1vZHVsZSBtYXkgZ2VuZXJhdGUgdGltZSBhY2NvdW50aW5nIGluZm9ybWF0aW9uLid9ID0KICAgICAgICAnRGV0ZXJtaW5hIHNlIG8gbcOzZHVsbyBkZSBlc3RhdMOtc3RpY2FzIHBvZGUgZ2VyYXIgaW5mb3JtYcOnw7VlcyBkbyB0aW1lIGFjY291bnRpbmcuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ0VkaXRhciBjb25maWd1cmHDp8O1ZXMgZGEgY29udGFiaWxpZGFkZSBkZSB0ZW1wby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZC4nfSA9ICdFZGl0YXIgcmVnaXN0cm8gZGUgdGVtcG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJ1BhcmEgcXVhbnRvcyBkaWFzIGF0csOhcyB2b2PDqiBwb2RlIGluc2VyaXIgdW5pZGFkZXMgZGUgdHJhYmFsaG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJ1NlIGF0aXZhZG8sIHNvbWVudGUgb3MgdXN1w6FyaW9zIHF1ZSBhZGljaW9ub3UgdGVtcG8gZGUgdHJhYmFsaG8gYW8gbyBwcm9qZXRvIHNlbGVjaW9uYWRvIHNlcsOjbyBleGliaWRvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJ1NlIGF0aXZhZG8sIG9zIGVsZW1lbnRvcyBzdXNwZW5zb3MgbmEgdGVsYSBkZSBlZGnDp8OjbyBzw6NvIG1vZGlmaWNhZGFzIHBhcmEgY2FtcG9zIGRlIGF1dG9jb21wbGV0YXIgbW9kZXJuaXphZG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICdTZSBoYWJpbGl0YWRvLCBvIGZpbHRybyBwYXJhIG9zIHByb2pldG9zIGFudGVyaW9yZXMgcG9kZSBzZXIgdXNhZG8gZW0gdmV6IGRlIGR1YXMgbGlzdGFzIGRlIHByb2pldG9zICjDumx0aW1vIGUgdG9kb3MpLiBFbGUgcG9kZSBzZXIgdXNhZG8gYXBlbmFzIHNlIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBlc3TDoSBoYWJpbGl0YWRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnU2UgaGFiaWxpdGFkbywgbyBmaWx0cm8gcGFyYSBwcm9qZXRvcyBhbnRlcmlvcmVzIMOpIGF0aXZhZG8gcG9yIHBhZHLDo28gc2UgaMOhIHByb2pldG9zIGFudGVyaW9yZXMuIEVsZSBwb2RlIHNlciB1c2FkbyBhcGVuYXMgc2UgRW5hYmxlQXV0b0NvbXBsZXRpb24gZSBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGVzdMOjbyBoYWJpbGl0YWRvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJ1NlIGF0aXZhZG8sIG8gdXN1w6FyaW8gdGVtIHBlcm1pc3PDo28gcGFyYSBlbnRyYXIgImVtIGxpY2Vuw6dhIGRlIGbDqXJpYXMiLCAiZW0gbGljZW7Dp2EgbcOpZGljYSIgZSAiZW0gbGljZW7Dp2EgZGUgaG9yYXMgZXh0cmFzIiBkZSB1bWEgc8OzIHZleiBwYXJhIHbDoXJpYXMgZGF0YXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLid9ID0KICAgICAgICAnTyBuw7ptZXJvIG3DoXhpbW8gZGUgZGlhcyBkZSB0cmFiYWxobyBhcMOzcyBvIHF1YWwgYXMgInVuaWRhZGVzIGRlIHRyYWJhbGhvIiBkZXZlbSBzZXIgaW5zZXJpZG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICdPIG7Dum1lcm8gbcOheGltbyBkZSBkaWFzIGRlIHRyYWJhbGhvIHNlbSAidW5pZGFkZXMgZGUgdHJhYmFsaG8iICBhcMOzcyBvIHF1YWwgdW0gYXZpc28gc2Vyw6EgbW9zdHJhZG8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3Lid9ID0gJ1Zpc8OjbyBHZXJhbC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICdSZWxhdMOzcmlvIGRlIHRlbXBvcyBkZSBwcm9qZXRvcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJ0FzIGV4cHJlc3PDtWVzIHJlZ3VsYXJlcyBwYXJhIHJlc3RyaW5naXIgbGlzdGEgZGUgYcOnw7VlcyBkZSBhY29yZG8gY29tIG8gcHJvamV0byBzZWxlY2lvbmFkby4gQ2hhdmUgY29udMOpbSBleHByZXNzw6NvIHJlZ3VsYXIgcGFyYSBvIHByb2pldG8ocyksIENvbnRlw7pkbyBjb250w6ltIGV4cHJlc3PDtWVzIHJlZ3VsYXJlcyBwYXJhIGEgYcOnw6NvKHMpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdBcyBleHByZXNzw7VlcyByZWd1bGFyZXMgcGFyYSByZXN0cmluZ2lyIGEgbGlzdGEgZGUgcHJvamV0byBkZSBhY29yZG8gY29tIGdydXBvcyBkZSB1c3XDoXJpb3MuIENoYXZlIGNvbnTDqW0gZXhwcmVzc8OjbyByZWd1bGFyIHBhcmEgbyBwcm9qZXRvIChzKSwgY29udGXDumRvIGNvbnTDqW0gbGlzdGEgIHNlcGFyYWRhIHBvciB2w61yZ3VsYXMgZGUgZ3J1cG9zLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgaWYgd29ya2luZyBob3VycyBjYW4gYmUgaW5zZXJ0ZWQgd2l0aG91dCBzdGFydCBhbmQgZW5kIHRpbWVzLid9ID0KICAgICAgICAnRXNwZWNpZmlxdWUgc2UgbyBob3LDoXJpbyBkZSB0cmFiYWxobyBwb2RlIHNlciBpbnNlcmlkbyBzZW0gaG9yw6FyaW9zIGRlIGluw61jaW8gZSB0w6lybWluby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAnRXNzZSBtw7NkdWxvIGZvcsOnYSBwcmVlbmNoZXIgbyBUaW1lQWNjb3VudGluZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICdFc3RlIG3Ds2R1bG8gZGUgbm90aWZpY2HDp8OjbyBkw6EgdW0gYXZpc28gc2UgaG91dmVyIG11aXRvcyBkaWFzIGRlIHRyYWJhbGhvIG7Do28gcmVnaXN0cmFkb3MuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJ0NvbnRhYmlsaWRhZGUgVGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAnRWRpdGFyIGNvbnRhYmlsaWRhZGUgZGUgdGVtcG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJ1Zpc8OjbyBnZXJhbCBkZSBjb250YWJpbGlkYWRlIGRlIHRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAnUmVsYXTDs3JpbyBkZSBjb250YWJpbGlkYWRlIGRlIHRlbXBvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdDb25maWd1cmHDp8O1ZXMgZGUgY29udGFiaWxpZGFkZSBkZSB0ZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICdWZXIgY29udGFiaWxpZGFkZSBkZSB0ZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnQ29udGFiaWxpZGFkZSBUZW1wbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyB1c2UgaWYgc29tZSBhY3Rpb25zIHJlZHVjZWQgdGhlIHdvcmtpbmcgaG91cnMgKGZvciBleGFtcGxlLCBpZiBvbmx5IGhhbGYgb2YgdGhlIHRyYXZlbGluZyB0aW1lIGlzIHBhaWQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCkuJ30gPQogICAgICAgICdVc2FyIHBhcmEgIGFsZ3VtYXMgYcOnw7VlcyBkZSByZWR1emlyIGFzIGhvcmFzIGRlIHRyYWJhbGhvIChwb3IgZXhlbXBsbywgc2UgYXBlbmFzIG1ldGFkZSBkbyB0ZW1wbyBkZSB2aWFnZW0gw6kgcGFnbyBLZXkgPT4gdmlhamFyOyBDb250ZW50ID0+IDUwKSc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnQ29uZmlybSBpbnNlcnQnLAogICAgJ0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknLAogICAgJ01hc3MgRW50cnknLAogICAgJ05vJywKICAgICdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScsCiAgICAnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnJvX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICdaaWxlIGZhcmEgaW50cmFyaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYWxsIGRheXMnfSA9ICdTZWxlY3RlYXphIHRvYXRlIHppbGVsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhICIqIi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb2llY3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIGZvcm1hdCEgUGxlYXNlIGVudGVyIGEgdGltZSB3aXRoIHRoZSBmb3JtYXQgSEg6TU0uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gb3ZlcnRpbWUgbGVhdmU/J30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodGhpcyBtb250aCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRvdGFsKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodG90YWwpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0b3RhbCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBtb250aCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmFuZCB0b3RhbCd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpZmV0aW1lIHRvdGFsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gcmVtYWluaW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgcHJvamVjdCB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgcHJvamVjdHMsIHRhc2tzIG9yIHVzZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUYXNrIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNlZSBvdmVydGltZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gY3JlYXRlIHByb2plY3RzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHByb2plY3QgY3JlYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNraXAgdGltZSBhY2NvdW50aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHRpbWUgYWNjb3VudGluZyBza2lwcGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGlzIG9wdGlvbiBpcyBzZWxlY3RlZCwgdGltZSBhY2NvdW50aW5nIGlzIGVmZmVjdGl2ZWx5IG9wdGlvbmFsIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3aWxsIGJlIG5vIHdhcm5pbmdzIGFib3V0IG1pc3NpbmcgZW50cmllcyBhbmQgbm8gZW50cnkgZW5mb3JjZW1lbnQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTcGFucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgQmVnaW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIHBlciBXZWVrJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0F1dGhvcml6ZWQgT3ZlcnRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ1ppdWEgYW50ZXJpb2FyYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ1ppdWEgdXJtYXRvYXJlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2F2ZSBzZXR0aW5ncywgYmVjYXVzZSBhIGRheSBoYXMgb25seSAyNCBob3VycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICdJbnRyb2R1cyBjdSBzdWNjZXMhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ1JhcG9ydGFyZSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0dGluZyd9ID0gJ1NldGFyZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHVzZXIgdG8gdGltZSBhY2NvdW50aW5nLi4uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML05vdGlmaWNhdGlvbi9UaW1lQWNjb3VudGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAnVmEgcnVnYW0gaW50cm9kdWNldGkgY2F0ZSBvcmUgYXRpIGx1Y3JhdCEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL0luY29tcGxldGVXb3JraW5nRGF5cy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSB3b3JraW5nIGRheXMnfSA9ICcnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnVmEgcnVnYW0gYWxlZ2V0aSBjZWwgcHV0aW4gbyB6aSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRlc2NyaXB0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdDb25maXJtIGluc2VydCcsCiAgICAnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeScsCiAgICAnTWFzcyBFbnRyeScsCiAgICAnTm8nLAogICAgJ1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJywKICAgICdQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnJ1X1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAn0JLRiyDQtNC10LnRgdGC0LLQuNGC0LXQu9GM0L3QviDQttC10LvQsNC10YLQtSDRg9C00LDQu9C40YLRjCDRg9GH0YLQtdC90L3Ri9C1INC30LDRgtGA0LDRgtGLINCy0YDQtdC80LXQvdC4INC00LvRjyDRjdGC0L7Qs9C+INC00L3Rjz8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0Ywg0LfQsNC/0LjRgdGMINCy0YDQtdC80LXQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAn0J/QtdGA0LXQudGC0Lgg0Log0L3QsNGB0YLRgNC+0LnQutCw0LwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAn0J3QsNCy0LjQs9Cw0YbQuNGPINC/0L4g0LLRgNC10LzQtdC90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICfQlNC90Lgg0LHQtdC3INC30LDQv9C40YHQtdC5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ9CS0YvQsdGA0LDRgtGMINCy0YHQtSDQtNC90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBlbnRyeSd9ID0gJ9Cc0LDRgdGB0L7QstGL0Lkg0LLQstC+0LQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICfQktGL0LHQtdGA0LjRgtC1INC/0YDQuNGH0LjQvdGDINCy0LDRiNC10LPQviDQvtGC0YHRg9GC0YHRgtCy0LjRjyDQsiDQstGL0LHRgNCw0L3QvdGL0LUg0LTQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAn0JIg0L7RgtC/0YPRgdC60LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ9Cf0L4g0LHQvtC70LXQt9C90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICfQkiDQvtGC0LPRg9C70LUg0LfQsCDQv9C10YDQtdGA0LDQsdC+0YLQutGDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAn0J7QsdGP0LfQsNGC0LXQu9GM0L3Ri9C1INC/0L7Qu9GPINC/0L7QvNC10YfQtdC90YsgIioiLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ9Cd0LXQvtCx0YXQvtC00LjQvNC+INC30LDQv9C+0LvQvdC40YLRjCDQstGA0LXQvNGPINC90LDRh9Cw0LvQsCDQuCDQvtC60L7QvdGH0LDQvdC40Y8g0LjQu9C4INC/0LXRgNC40L7QtCDQstGA0LXQvNC10L3QuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ9Cf0LvQsNC90LjRgNC+0LLQsNC90LjQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAn0JfQsNC00LDRh9CwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFyayd9ID0gJ9Cf0YDQuNC80LXRh9Cw0L3QuNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJ9Cf0YDQuNC80LXRh9Cw0L3QuNC1INC00L7Qu9C20L3QviDQsdGL0YLRjCDQvdC1INC80LXQvdC10LUgOCDRgdC40LzQstC+0LvQvtCyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAn0J7RgtGA0LjRhtCw0YLQtdC70YzQvdC+0LUg0LfQvdCw0YfQtdC90LjQtSDQvdC10LTQvtC/0YPRgdGC0LjQvNC+Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAn0J3QtSDQtNC+0L/Rg9GB0LrQsNC10YLRgdGPINC/0L7QstGC0L7RgNC10L3QuNC1LiDQktGA0LXQvNGPINC90LDRh9Cw0LvQsCDRgdC+0L7RgtCy0LXRgtGB0YLQstGD0LXRgiDQtNGA0YPQs9C+0LzRgyDQuNC90YLQtdGA0LLQsNC70YMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICfQndC10LLQtdGA0L3Ri9C5INGE0L7RgNC80LDRgiEg0JLQstC10LTQuNGC0LUg0LLRgNC10LzRjyDQsiDRhNC+0YDQvNCw0YLQtSBISDpNTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAn0KLQvtC70YzQutC+IDI0OjAwINGA0LDQt9GA0LXRiNC10L3QviDQsiDQutCw0YfQtdGB0YLQstC1INCy0YDQtdC80LXQvdC4INC+0LrQvtC90YfQsNC90LjRjy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfQndC10LLQtdGA0L3QvtC1INCy0YDQtdC80Y8hINCSINGB0YPRgtC60LDRhSDRgtC+0LvRjNC60L4gMjQg0YfQsNGB0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICfQktGA0LXQvNGPINC+0LrQvtC90YfQsNC90LjRjyDQtNC+0LvQttC90L4g0LHRi9GC0Ywg0L/QvtC30LbQtSDQstGA0LXQvNC10L3QuCDQvdCw0YfQsNC70LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAn0J3QtSDQtNC+0L/Rg9GB0LrQsNC10YLRgdGPINC/0L7QstGC0L7RgNC10L3QuNC1LiDQktGA0LXQvNGPINC+0LrQvtC90YfQsNC90LjRjyDRgdC+0L7RgtCy0LXRgtGB0YLQstGD0LXRgiDQtNGA0YPQs9C+0LzRgyDQuNC90YLQtdGA0LLQsNC70YMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfQndC10LLQtdGA0L3Ri9C5INC/0LXRgNC40L7QtCEg0JIg0YHRg9GC0LrQsNGFINGC0L7Qu9GM0LrQviAyNCDRh9Cw0YHQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICfQn9GA0LDQstC40LvRjNC90YvQuSDQv9C10YDQuNC+0LQg0LTQvtC70LbQtdC9INCx0YvRgtGMINCx0L7Qu9GM0YjQtSDQvdGD0LvRjy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ9Cd0LXQstC10YDQvdGL0Lkg0L/QtdGA0LjQvtC0ISDQntGC0YDQuNGG0LDRgtC10LvRjNC90L7QtSDQt9C90LDRh9C10L3QuNC1INC90LUg0LTQvtC/0YPRgdC60LDQtdGC0YHRjy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICfQlNC+0LHQsNCy0LjRgtGMINC+0LTQvdGDINGB0YLRgNC+0LrRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ9CjINCy0LDRgSDQtdGB0YLRjCDQstC+0LfQvNC+0LbQvdC+0YHRgtGMINCy0YvQsdGA0LDRgtGMINGC0L7Qu9GM0LrQviDQvtC00LjQvSDRjdC70LXQvNC10L3RgiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBzaWNrIGxlYXZlPyd9ID0gJ9CS0Ysg0LTQtdC50YHRgtCy0LjRgtC10LvRjNC90L4g0YDQsNCx0L7RgtCw0LvQuCDQsiDQv9C10YDQuNC+0LQg0LHQvtC70LXQt9C90Lg/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAn0JLRiyDQtNC10LnRgdGC0LLQuNGC0LXQu9GM0L3QviDRgNCw0LHQvtGC0LDQu9C4INCyINC/0LXRgNC40L7QtCDQvtGC0L/Rg9GB0LrQsD8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ9CS0Ysg0LTQtdC50YHRgtCy0LjRgtC10LvRjNC90L4g0YDQsNCx0L7RgtCw0LvQuCDQsiDQv9C10YDQuNC+0LQg0L7RgtCz0YPQu9C+0LI/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJ9CS0Ysg0LTQtdC50YHRgtCy0LjRgtC10LvRjNC90L4g0YDQsNCx0L7RgtCw0LvQuCDQsdC+0LvQtdC1IDE2INGH0LDRgdC+0LI/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXcnfSA9ICfQnNC10YHRj9GH0L3Ri9C5INC+0YLRh9C10YIg0L4g0LfQsNGC0YDQsNGH0LXQvdC90L7QvCDQstGA0LXQvNC10L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAn0J/QtdGA0LXRgNCw0LHQvtGC0LrQsCAo0YfQsNGB0YspJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0aGlzIG1vbnRoKSd9ID0gJ9Cf0LXRgNC10YDQsNCx0L7RgtC60LAgKNGN0YLQvtCz0L4g0LzQtdGB0Y/RhtCwKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAn0J/QtdGA0LXRgNCw0LHQvtGC0LrQsCAo0LLRgdC10LPQviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAn0J7RgdGC0LDQstGI0LXQtdGB0Y8g0LLRgNC10LzRjyDQvtGC0LPRg9C70LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAn0J7RgtC/0YPRgdC6ICjQtNC90LgpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ9CY0YHQv9C+0LvRjNC30L7QstCw0L3QvdGL0LUg0LTQvdC4INC+0YLQv9GD0YHQutCwICjQsiDRjdGC0L7QvCDQvNC10YHRj9GG0LUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICfQmNGB0L/QvtC70YzQt9C+0LLQsNC90L3Ri9C1INC00L3QuCDQvtGC0L/Rg9GB0LrQsCAo0LLRgdC10LPQviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAn0J7RgdGC0LDQstGI0LjQtdGB0Y8g0LTQvdC4INC+0YLQv9GD0YHQutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgTGVhdmUgKERheXMpJ30gPSAn0JHQvtC70LXQt9C90YwgKNC00L3QuCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodGhpcyBtb250aCknfSA9ICfQntGC0YHRg9GC0YHRgtCy0L7QstCw0Lsg0L/QviDQsdC+0LvQtdC30L3QuCAo0LIg0Y3RgtC+0Lwg0LzQtdGB0Y/RhtC1KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0b3RhbCknfSA9ICfQntGC0YHRg9GC0YHRgtCy0L7QstCw0Lsg0L/QviDQsdC+0LvQtdC30L3QuCAo0LLRgdC10LPQviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICfQn9GA0LXQtNGL0LTRg9GJ0LjQuSDQvNC10YHRj9GGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICfQodC70LXQtNGD0Y7RidC40Lkg0LzQtdGB0Y/Rhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAn0J3QtdC00LXQu9GPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICfQoNCw0LHQvtGH0LjQtSDRh9Cw0YHRiyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICfQktGB0LXQs9C+INC+0YLRgNCw0LHQvtGC0LDQvdC90YvRhSDRh9Cw0YHQvtCyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ9Ce0LHQt9C+0YAg0LTQsNC90L3Ri9GFINC/0L4g0L/Qu9Cw0L3QuNGA0L7QstCw0L3QuNGOINC00LvRjyDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAn0KfQsNGB0YsgKNC10LbQtdC80LXRgdGP0YfQvdC+KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAn0KfQsNGB0YsgKNC30LAg0LLQtdGB0Ywg0YHRgNC+0Log0L3QsNCx0LvRjtC00LXQvdC40Y8pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAn0JLRgdC10LPQvic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICfQntGC0YfQtdGCINC+INCy0YDQtdC80LXQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICfQndCw0LLQuNCz0LDRhtC40Y8g0L/QviDQvNC10YHRj9GG0LDQvCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAn0J/QtdGA0LXQudGC0Lgg0Log0LTQsNGC0LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAn0J7RgtGH0LXRgiDQviDQv9C+0LvRjNC30L7QstCw0YLQtdC70LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJ9CY0YLQvtCz0L4g0LfQsCDQvNC10YHRj9GGJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpZmV0aW1lIHRvdGFsJ30gPSAn0JjRgtC+0LPQviDQt9CwINCy0YHQtSDQstGA0LXQvNGPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAn0J7RgtCz0YPQu9GLINC30LAg0L/QtdGA0LXRgNCw0LHQvtGC0LrRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ9Ce0YLQv9GD0YHQuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAn0J7RgtGB0YPRgtGB0YLQstC40LUg0L/QviDQsdC+0LvQtdC30L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICfQntGB0YLQsNC70L7RgdGMINC00L3QtdC5INC+0YLQv9GD0YHQutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ9Ce0YLRh9C10YLRiyDQv9C+INC/0LvQsNC90LjRgNC+0LLQsNC90LjRjic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAn0J7RgtGH0LXRgiDQv9C+INC/0LvQsNC90LjRgNC+0LLQsNC90LjRjic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXcnfSA9ICfQn9C10YDQtdC50YLQuCDQuiDQvtCx0LfQvtGA0YMg0L7RgtGH0LXRgtC+0LInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICfQkiDQvdCw0YHRgtC+0Y/RidC10LUg0LLRgNC10LzRjyDQv9C+0LrQsNC30LDQvdGLINGC0L7Qu9GM0LrQviDQsNC60YLQuNCy0L3Ri9C1INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQuCDQsiDRjdGC0L7QvCDQv9GA0L7QtdC60YLQtS4g0KfRgtC+0LHRiyDQuNC30LzQtdC90LjRgtGMINGN0YLQviwg0L/QvtC20LDQu9GD0LnRgdGC0LAsINC+0LHQvdC+0LLQuNGC0LUg0L3QsNGB0YLRgNC+0LnQutC4Oic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICfQkiDQvdCw0YHRgtC+0Y/RidC10LUg0LLRgNC10LzRjyDQv9C+0LrQsNC30LDQvdGLINCy0YHQtSDQv9C+0LvRjNC30L7QstCw0YLQtdC70Lgg0LIg0Y3RgtC+0Lwg0L/RgNC+0LXQutGC0LUuINCn0YLQvtCx0Ysg0LjQt9C80LXQvdC40YLRjCwg0L/QvtC20LDQu9GD0LnRgdGC0LAsINC+0LHQvdC+0LLQuNGC0LUg0L3QsNGB0YLRgNC+0LnQutC4Oic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQvdCw0YHRgtGA0L7QudC60Lgg0YPRh9C10YLQsCDQt9Cw0YLRgNCw0YfQtdC90L3QvtCz0L4g0LLRgNC10LzQtdC90Lgg0L/QviDQv9GA0L7QtdC60YLRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0L/Qu9Cw0L3QuNGA0L7QstCw0L3QuNC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAn0J/QtdGA0LXQudGC0Lgg0Log0L7QsdC30L7RgNGDINC90LDRgdGC0YDQvtC10LonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICfQlNC+0LHQsNCy0LjRgtGMINC/0LvQsNC90LjRgNC+0LLQsNC90LjQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFByb2plY3QgU2V0dGluZ3MnfSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQvdCw0YHRgtGA0L7QudC60Lgg0L/Qu9Cw0L3QuNGA0L7QstCw0L3QuNGPJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICfQo9C20LUg0LXRgdGC0Ywg0L/RgNC+0LXQutGCINGBINGC0LDQutC40Lwg0L3QsNC40LzQtdC90L7QstCw0L3QuNC10LwuINCS0YvQsdC10YDQuNGC0LUg0LTRgNGD0LPQvtC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINC90LDRgdGC0YDQvtC50LrQuCDRg9GH0LXRgtCwINC30LDRgtGA0LDRh9C10L3QvdC+0LPQviDQstGA0LXQvNC10L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0LfQsNC00LDRh9GDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgcHJvamVjdHMsIHRhc2tzIG9yIHVzZXJzJ30gPSAn0KTQuNC70YzRgtGAINC00LvRjyDQv9GA0L7QtdC60YLQvtCyLCDQt9Cw0LTQsNGHINC40LvQuCDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJ9Cf0LXRgNC40L7QtNGLINCy0YDQtdC80LXQvdC4INC90LUg0LzQvtCz0YPRgiDQsdGL0YLRjCDRg9C00LDQu9C10L3Riy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAn0KHQv9C40YHQvtC6INC/0YDQvtC10LrRgtC+0LInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAn0KHQv9C40YHQvtC6INC30LDQtNCw0YcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICfQlNC+0LHQsNCy0LjRgtGMINC30LDQtNCw0YfRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQvdCw0YHRgtGA0L7QudC60Lgg0LfQsNC00LDRh9C4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICfQo9C20LUg0LXRgdGC0Ywg0LfQsNC00LDRh9CwINGBINGC0LDQutC40Lwg0LjQvNC10L3QtdC8LCDQktGL0LHQtdGA0LjRgtC1INC00YDRg9Cz0L7QtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAn0KHQv9C40YHQvtC6INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2V0dGluZ3MnfSA9ICfQn9C+0LvRjNC30L7QstCw0YLQtdC70YzRgdC60LjQtSDQvdCw0YHRgtGA0L7QudC60LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNlZSBvdmVydGltZXMnfSA9ICfQn9C+0LvRjNC30L7QstCw0YLQtdC70Y4g0YDQsNC30YDQtdGI0LXQvdC+INC/0YDQvtGB0LzQsNGC0YDQuNCy0LDRgtGMINCy0YDQtdC80Y8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ9Cf0L7QutCw0LfQsNGC0Ywg0L/QtdGA0LXRgNCw0LHQvtGC0LrRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gY3JlYXRlIHByb2plY3RzJ30gPSAn0J/QvtC70YzQt9C+0LLQsNGC0LXQu9GOINGA0LDQt9GA0LXRiNC10L3QviDRgdC+0LfQtNCw0LLQsNGC0Ywg0L/RgNC+0LXQutGC0YsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJ9Cg0LDQt9GA0LXRiNC40YLRjCDRgdC+0LfQtNCw0L3QuNC1INC/0YDQvtC10LrRgtC+0LInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNraXAgdGltZSBhY2NvdW50aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHRpbWUgYWNjb3VudGluZyBza2lwcGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGlzIG9wdGlvbiBpcyBzZWxlY3RlZCwgdGltZSBhY2NvdW50aW5nIGlzIGVmZmVjdGl2ZWx5IG9wdGlvbmFsIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3aWxsIGJlIG5vIHdhcm5pbmdzIGFib3V0IG1pc3NpbmcgZW50cmllcyBhbmQgbm8gZW50cnkgZW5mb3JjZW1lbnQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTcGFucyd9ID0gJ9Cf0YDQvtC80LXQttGD0YLQutC4INCy0YDQtdC80LXQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJ9Cd0LDRh9Cw0LvQviDQv9C10YDQuNC+0LTQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAn0JrQvtC90LXRhiDQv9C10YDQuNC+0LTQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAn0JTQvdC4INC+0YLQv9GD0YHQutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIHBlciBXZWVrJ30gPSAn0KfQsNGB0L7QsiDQsiDQvdC10LTQtdC70LUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJ9Cg0LDQt9GA0LXRiNC10L3QvdCw0Y8g0L/QtdGA0LXRgNCw0LHQvtGC0LrQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAn0JTQsNGC0LAg0L3QsNGH0LDQu9CwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLid9ID0gJ9CS0LLQtdC00LjRgtC1INC/0YDQsNCy0LjQu9GM0L3Rg9GOINC00LDRgtGDLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJ9CU0LDRgtCwINC+0LrQvtC90YfQsNC90LjRjyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJ9CS0YDQtdC80Y8g0L7QutC+0L3Rh9Cw0L3QuNGPINC/0LXRgNC40L7QtNCwINC00L7Qu9C20L3QviDQsdGL0YLRjCDQv9C+0LfQttC1INCy0YDQtdC80LXQvdC4INC10LPQviDQvdCw0YfQsNC70LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICfQntGB0YLQsNC70L7RgdGMLCDQtNC90LXQuSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICfQp9Cw0YHQvtCyINCyINC90LXQtNC10LvRjic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSd9ID0gJ9Cf0LXRgNC10YDQsNCx0L7RgtC60LAv0KHQstC10YDRhdGD0YDQvtGH0L3Ri9C1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICfQndC1INC30LDQtNCw0L3RiyDQv9C10YDQuNC+0LTRiyDQstGA0LXQvNC10L3QuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAn0JTQvtCx0LDQstC40YLRjCDQv9C10YDQuNC0INCy0YDQtdC80LXQvdC4JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ9Cf0L7RgdC80L7RgtGA0LXRgtGMINC30LDQv9C40YHRjCDQstGA0LXQvNC10L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ9Cf0YDQvtGB0LzQvtGC0YAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgZGF5J30gPSAn0J/RgNC10LTRi9C00YPRidC40Lkg0LTQtdC90YwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICfQodC70LXQtNGD0Y7RidC40Lkg0LTQtdC90YwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAn0JTQu9GPINGN0YLQvtCz0L4g0LTQvdGPINC00LDQvdC90YvQtSDQvdC1INC90LDQudC00LXQvdGLLic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnfSA9ICfQndC1INGD0LTQsNC70L7RgdGMINC00L7QsdCw0LLQuNGC0Ywg0YDQsNCx0L7Rh9C40LUg0LXQtNC40L3QuNGG0YshJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgUHJvamVjdHMnfSA9ICfQn9C+0YHQu9C10LTQvdC40LUg0L/RgNC+0LXQutGC0YsuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0YHQvtGF0YDQsNC90LjRgtGMINC90LDRgdGC0YDQvtC50LrQuCwg0YLQsNC6INC60LDQuiDQsiDRgdGD0YLQutCw0YUgMjQg0YfQsNGB0LAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICfQndC1INGD0LTQsNC70L7RgdGMINGD0LTQsNC70LjRgtGMINGA0LDQsdC+0YfQuNC1INC10LTQuNC90LjRhtGLISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJ9Ct0YLQsCDQtNCw0YLQsCDQstC90LUg0LTQuNCw0L/QsNC30L7QvdCwLCDQvdC+INCy0Ysg0LXRidC1INC90LUg0YPRgdGC0LDQvdC+0LLQuNC70Lgg0Y3RgtC+0YIg0LTQtdC90YwsINGC0LDQuiDRh9GC0L4g0LLQsNC8INC00LDQtdGC0YHRjyDQvtC00LjQvSghKSDRiNCw0L3RgSDQtNC70Y8g0LXQtSDRg9GB0YLQsNC90L7QstC60LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICfQndC10L/QvtC70L3Ri9C1INGA0LDQsdC+0YfQuNC1INC00L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICfQlNCw0L3QvdGL0LUg0LfQsNC90LXRgdC10L3RiyDRg9GB0L/QtdGI0L3QviEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJ9Ce0YjQuNCx0LrQsCDQv9GA0Lgg0LLQstC+0LTQtSDQvdC10YHQutC+0LvRjNC60LjRhSDQtNCw0YIhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzISd9ID0gJ9CU0LDQvdC90YvQtSDQtNC70Y8g0YDQsNC30L3Ri9GFINC00LDRgiDQstCy0LXQtNC10L3RiyDRg9GB0L/QtdGI0L3QviEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ9CS0LLQtdC00LXQvdC90LDRjyDQtNCw0YLQsCDQvdC10LLQtdGA0L3QsCEg0JfQsNC80LXQvdC10L3QsCDQvdCwINGC0LXQutGD0YnRg9GOISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICfQndC1INC90LDRgdGC0YDQvtC10L0g0LLRgNC10LzQtdC90L3QvtC5INC/0LXRgNC40L7QtCwg0LjQu9C4INGD0LrQsNC30LDQvdC90LDRjyDQtNCw0YLQsCDQvdCw0YXQvtC00LjRgtGB0Y8g0LfQsCDQv9GA0LXQtNC10LvQsNC80Lgg0L7Qv9GA0LXQtNC10LvQtdC90L3Ri9GFINCy0YDQtdC80LXQvdC90YvRhSDQv9C10YDQuNC+0LTQvtCyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY29udGFjdCB0aGUgdGltZSBhY2NvdW50aW5nIGFkbWluaXN0cmF0b3IgdG8gdXBkYXRlIHlvdXIgdGltZSBwZXJpb2RzISd9ID0KICAgICAgICAn0J/QvtC20LDQu9GD0LnRgdGC0LAsINGB0LLRj9C20LjRgtC10YHRjCDRgSDQsNC00LzQuNC90LjRgdGC0YDQsNGC0L7RgNC+0Lwg0LLRgNC10LzQtdC90L3QvtCz0L4g0YPRh9C10YLQsCwg0YfRgtC+0LHRiyDQvtCx0L3QvtCy0LjRgtGMINCy0LDRiNC4INCy0YDQtdC80LXQvdC90YvQtSDQv9C10YDQuNC+0LTRiyEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ9Cf0L7RgdC70LXQtNC90LjQtSDQstGL0LHRgNCw0L3QvdGL0LUg0L/RgNC+0LXQutGC0YsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIFByb2plY3RzJ30gPSAn0JLRgdC1INC/0YDQvtC10LrRgtGLJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmdQcm9qZWN0OiBOZWVkIFByb2plY3RJRCd9ID0gJ1JlcG9ydGluZ1Byb2plY3Q6INCi0YDQtdCx0YPQtdGC0YHRjyBQcm9qZWN0SUQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICfQn9GA0L7QtdC60YIg0YHQvtGB0YLQsNCy0LvQtdC90LjRjyDQvtGC0YfQtdGC0L7Qsic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmcnfSA9ICfQodC+0YHRgtCw0LLQu9C10L3QuNC1INC+0YLRh9C10YLQvtCyJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L7QsdC90L7QstC40YLRjCDQvdCw0YHRgtGA0L7QudC60Lgg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJ9CU0L7QsdCw0LLQu9C10L3QviDQv9C70LDQvdC40YDQvtCy0LDQvdC40LUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdXBkYXRlZCEnfSA9ICfQn9C70LDQvdC40YDQvtCy0LDQvdC40LUg0L7QsdC90L7QstC70LXQvdC+ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJ9CX0LDQtNCw0YfQsCDQtNC+0LHQsNCy0LvQtdC90LAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICfQl9Cw0LTQsNGH0LAg0L7QsdC90L7QstC70LXQvdCwISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgVXNlcklEIGlzIG5vdCB2YWxpZCEnfSA9ICfQndC10LLQtdGA0L3Ri9C5IFVzZXJJRCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCB1c2VyIGRhdGEhJ30gPSAn0J3QtSDRg9C00LDQu9C+0YHRjCDQstGB0YLQsNCy0LjRgtGMINC00LDQvdC90YvQtSDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byBhZGQgdGltZSBwZXJpb2QhJ30gPSAn0J3QtSDRg9C00LDQu9C+0YHRjCDQtNC+0LHQsNCy0LjRgtGMINC/0LXRgNC40LQg0LLRgNC10LzQtdC90LghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHRpbmcnfSA9ICfQn9Cw0YDQsNC80LXRgtGAJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgdXBkYXRlZCEnfSA9ICfQn9C+0LvRjNC30L7QstCw0YLQtdC70Ywg0L7QsdC90L7QstC70LXQvSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICfQn9C+0LvRjNC30L7QstCw0YLQtdC70Ywg0LTQvtCx0LDQstC70LXQvSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICfQlNC+0LHQsNCy0LjRgtGMINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyDQsiDRg9GH0LXRgiDQstGA0LXQvNC10L3QuCAuLi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICfQndC+0LLRi9C5INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAn0KHRgtCw0YLRg9GBINC/0LXRgNC40L7QtNCwJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nVmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldzogTmVlZCAlcyEnfSA9ICdWaWV3OiDQotGA0LXQsdGD0LXRgtGB0Y8gICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML05vdGlmaWNhdGlvbi9UaW1lQWNjb3VudGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAn0JLQstC10LTQuNGC0LUg0JLQsNGI0Lgg0YDQsNCx0L7Rh9C40LUg0YfQsNGB0YshJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAn0J3QtdC/0L7Qu9C90YvQtSDRgNCw0LHQvtGH0LjQtSDQtNC90LgnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAn0JLRi9Cx0LXRgNC40YLQtSDRhdC+0YLRjyDQsdGLINC+0LTQuNC9INC00LXQvdGMISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAn0JzQsNGB0YHQvtCy0YvQuSDQstCy0L7QtCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ9CS0YvQsdC10YDQuNGC0LUg0L/RgNC40YfQuNC90YMg0L7RgtGB0YPRgtGB0YLQstC40Y8hJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5J30gPSAn0KPQtNCw0LvQuNGC0Ywg0LfQsNC/0LjRgdGMINC30LDRgtGA0LDRh9C10L3QvdC+0LPQviDQstGA0LXQvNC10L3QuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ9Cf0L7QtNGC0LLQtdGA0LTQuNGC0LUg0LLRgdGC0LDQstC60YMnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICfQnNC+0LTRg9C70Ywg0YPQstC10LTQvtC80LvQtdC90LjQuSwg0LTQu9GPINC+0YLQvtCx0YDQsNC20LXQvdC40Y8g0LrQvtC70LjRh9C10YHRgtCy0LAg0L3QtdC30LDQstC10YDRiNC10L3QvdGL0YUg0YDQsNCx0L7Rh9C40YUg0LTQvdC10Lkg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPINCyINC40L3RgtC10YDRhNC10LnRgdC1INCw0LPQtdC90YLQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ9CY0LzQtdC90LAg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0LTQu9GPINC90L7QstGL0YUg0LTQtdC50YHRgtCy0LjQuS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAn0J3QsNC30LLQsNC90LjQtSDQvdC+0LLQvtCz0L4g0L/RgNC+0LXQutGC0LAg0L/Qvi3Rg9C80L7Qu9GH0LDQvdC40Y4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAn0JfQvdCw0YfQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQtNC70Y8g0LTQsNGC0Ysg0L7QutC+0L3Rh9Cw0L3QuNGPLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAn0JfQvdCw0YfQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQtNC70Y8g0LTQsNGC0Ysg0L3QsNGH0LDQu9CwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRlc2NyaXB0aW9uLid9ID0gJ9CX0L3QsNGH0LXQvdC40LUg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0LTQu9GPINC+0L/QuNGB0LDQvdC40Y8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy4nfSA9ICfQl9C90LDRh9C10L3QuNC1INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOINC00LvRjyDQvtGB0YLQsNCy0YjQuNGF0YHRjyDQtNC90LXQuS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBvdmVydGltZS4nfSA9ICfQl9C90LDRh9C10L3QuNC1INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOINC00LvRjyDQv9C10YDQtdGA0LDQsdC+0YLQutC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAn0JfQvdCw0YfQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQtNC70Y8g0YHRgtCw0L3QtNCw0YDRgtC90YvRhSDRgNCw0LHQvtGH0LjRhSDRh9Cw0YHQvtCyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IGFjdGlvbnMuJ30gPSAn0JfQvdCw0YfQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDRgdGC0LDRgtGD0YHQsCDQvdC+0LLRi9GFINC00LXQudGB0YLQstC40LkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAn0JfQvdCw0YfQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQtNC70Y8g0YHRgtCw0YLRg9GB0LAg0L3QvtCy0YvRhSDQv9GA0L7QtdC60YLQvtCyLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ9CX0L3QsNGH0LXQvdC40LUg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0LTQu9GPINGB0YLQsNGC0YPRgdCwINC90L7QstGL0YUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10LkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHByb2plY3RzIGZvciB3aGljaCBhIHJlbWFyayBpcyByZXF1aXJlZC4gSWYgdGhlIFJlZ0V4cCBtYXRjaGVzIG9uIHRoZSBwcm9qZWN0LCB5b3UgaGF2ZSB0byBpbnNlcnQgYSByZW1hcmsgdG9vLiBUaGUgUmVnRXhwIHVzZSB0aGUgc214IHBhcmFtZXRlci4nfSA9CiAgICAgICAgJ9CX0LDQtNCw0LXRgiDQv9GA0L7QtdC60YLRiyDQtNC70Y8g0LrQvtGC0L7RgNGL0YUg0YLRgNC10LHRg9C10YLRgdGPINC30LDQvdC10YHQtdC90LjQtSDQt9Cw0LzQtdGH0LDQvdC40LkuINCV0YHQu9C4IFJlZ0V4cCDQstC10YDQvdC+INC00LvRjyDQv9GA0L7QtdC60YLQsCwg0LLRiyDQtNC+0LvQttC90Ysg0LTQvtCx0LDQstC40YLRjCDQt9Cw0LzQtdGH0LDQvdC40Y8g0YLQvtC20LUuINCU0LvRjyBSZWdFeHAg0LjRgdC/0L7Qu9GM0LfRg9C50YLQtSDQv9Cw0YDQsNC80LXRgtGAIHNteC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ9CX0LDQtNCw0LXRgiwg0LzQvtC20LXRgiDQu9C4INC80L7QtNGD0LvRjCDQvtGC0YfQtdGC0L7QsiDQs9C10L3QtdGA0LjRgNC+0LLQsNGC0Ywg0LjQvdGE0L7RgNC80LDRhtC40Y4g0L/QviDRg9GH0LXRgtGDINC30LDRgtGA0LDRh9C10L3QvdC+0LPQviDQstGA0LXQvNC10L3QuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0Ywg0L3QsNGB0YLRgNC+0LnQutC4INGD0YfQtdGC0LAg0LfQsNGC0YDQsNGH0LXQvdC90L7Qs9C+INCy0YDQtdC80LXQvdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgcmVjb3JkLid9ID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINC30LDQv9C40YHRjCDQstGA0LXQvNC10L3QuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAn0JTQu9GPINC60LDQutC+0LPQviDQutC+0LvQuNGH0LXRgdGC0LLQsCDQv9GA0L7RiNC10LTRiNC40YUg0LTQvdC10Lkg0LLRiyDQvNC+0LbQtdGC0LUg0LLQvdC10YHRgtC4INC00LDQvdC90YvQtSDQviDQstGA0LXQvNC10L3QuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgb25seSB1c2VycyB0aGF0IGhhcyBhZGRlZCB3b3JraW5nIHRpbWUgdG8gdGhlIHNlbGVjdGVkIHByb2plY3QgYXJlIHNob3duLid9ID0KICAgICAgICAn0JXRgdC70Lgg0LLQutC70Y7Rh9C10L3Qviwg0L7RgtC+0LHRgNCw0LbQsNGO0YLRgdGPINGC0L7Qu9GM0LrQviDQv9C+0LvRjNC30L7QstCw0YLQtdC70LgsINC60L7RgtC+0YDRi9C1INC30LDQvdC+0YHQuNC70Lgg0LfQsNGC0YDQsNGC0Ysg0LLRgNC10LzQtdC90Lgg0LIg0LLRi9Cx0YDQsNC90L3Ri9C5INC/0YDQvtC10LrRgi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJ9CV0YHQu9C4INCy0LrQu9GO0YfQtdC90L4sINCy0YvQv9Cw0LTQsNGO0YnQuNC1INC/0L7Qu9GPINGB0L/QuNGB0LrQsCDQvdCwINGN0LrRgNCw0L3QtSDRgNC10LTQsNC60YLQuNGA0L7QstCw0L3QuNGPINC/0YDQtdC+0LHRgNCw0LfRg9GO0YLRgdGPINCyINC80L7QtNC10YDQvdC40LfQuNGA0L7QstCw0L3QvdGL0LUg0L/QvtC70Y8g0LDQstGC0L7Qt9Cw0LLQtdGA0YjQtdC90LjRjy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGNhbiBiZSB1c2VkIGluc3RlYWQgdHdvIGxpc3Qgb2YgcHJvamVjdHMgKGxhc3QgYW5kIGFsbCBvbmVzKS4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBpcyBlbmFibGVkLid9ID0KICAgICAgICAn0JXRgdC70Lgg0LLQutC70Y7Rh9C10L3Qviwg0YLQviDRhNC40LvRjNGC0YAg0LTQu9GPINC/0YDQtdC00YvQtNGD0YnQuNGFINC/0YDQvtC10LrRgtC+0LIg0LzQvtC20LXRgiDQsdGL0YLRjCDQuNGB0L/QvtC70YzQt9C+0LLQsNC9INCy0LzQtdGB0YLQviDQtNCy0YPRhSDRgdC/0LjRgdC60L7QsiAo0L/QvtGB0LvQtdC00L3QuNGFINC4INCy0YHQtdGFINC/0YDQvtC10LrRgtC+0LIpLiDQrdGC0L4g0LTQvtGB0YLRg9C/0L3QviDRgtC+0LvRjNC60L4g0LXRgdC70Lgg0L/QsNGA0LDQvNC10YLRgCBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24g0LDQutGC0LjQstC40YDQvtCy0LDQvS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGlzIGFjdGl2ZSBieSBkZWZhdWx0IGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBFbmFibGVBdXRvQ29tcGxldGlvbiBhbmQgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBhcmUgZW5hYmxlZC4nfSA9CiAgICAgICAgJ9CV0YHQu9C4INCy0LrQu9GO0YfQtdC90L4sINGC0L4g0YTQuNC70YzRgtGAINC00LvRjyDQv9GA0LXQtNGL0LTRg9GJ0LjRhSDQv9GA0L7QtdC60YLQvtCyINCy0LrQu9GO0YfQtdC9INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOINC/0YDQuCDQvdCw0LvQuNGH0LjQtSDQv9GA0LXQtNGL0LTRg9GJ0LjRhSDQv9GA0L7QtdC60YLQvtCyLiDQrdGC0L4g0LTQvtGB0YLRg9C/0L3QviDRgtC+0LvRjNC60L4g0LXRgdC70Lgg0L/QsNGA0LDQvNC10YLRgNGLIEVuYWJsZUF1dG9Db21wbGV0aW9uINC4IFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIg0LDQutGC0LjQstC40YDQvtCy0LDQvdGLLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLid9ID0KICAgICAgICAn0JXRgdC70Lgg0LLQutC70Y7Rh9C10L3Qviwg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GOINGA0LDQt9GA0LXRiNC10L3QviDQstCy0L7QtNC40YLRjCDQt9C90LDRh9C10L3QuNGPICLQntGB0YLQsNC70L7RgdGMINCyINC+0YLQv9GB0LrQtSIsICLQntGB0YLQsNC70L7RgdGMINC00L3QtdC5INC/0L4g0LHQvtC70LXQt9C90LgiINC4ICLQntGB0YLQsNC70L7RgdGMINC/0LXRgNC10YDQsNCx0L7RgtC60LgiINC/0L4g0L3QtdGB0LrQvtC70YzQutC+INC00LDRgiDRgdGA0LDQt9GDLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ9Cc0LDQutGBLiDQutC+0LvQuNGH0LXRgdGC0LLQviDRgNCw0LHQvtGH0LjRhSDQtNC90LXQuSwg0L/QvtGB0LvQtSDQutC+0YLQvtGA0YvRhSDRgNCw0LHQvtGH0LjQtSDQtdC00LjQvdC40YbRiyDQtNC+0LvQttC90Ysg0LHRi9GC0Ywg0LfQsNC90LXRgdC10L3Riy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJ9Cc0LDQutGB0LjQvNCw0LvRjNC90L4g0LrQvtC70LjRh9C10YHRgtCy0L4g0YDQsNCx0L7Rh9C40YUg0LTQvdC10LksINC/0L7RgdC70LUg0LrQvtGC0L7RgNC+0LPQviDQstGL0LTQsNC10YLRgdGPINC/0YDQtdC00YPQv9GA0LXQttC00LXQvdC40LUg0L4g0YLQvtC8LCDRh9GC0L4g0LTQsNC90L3Ri9C1INC90LUg0LLQstC+0LTQuNC70LjRgdGMLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICfQntCx0LfQvtGAJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdGltZSByZXBvcnRpbmcuJ30gPSAn0J7RgtGH0LXRgiDQviDQstGA0LXQvNC10L3QuCDQv9C+INC/0YDQvtC10LrRgtGDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICfQoNC10LPRg9C70Y/RgNC90YvQtSDQstGL0YDQsNC20LXQvdC40Y8g0LTQu9GPINGB0L7RgdGC0LDQstC70LXQvdC40Y8g0YHQv9C40YHQutCwINC00LXQudGB0YLQstC40Lkg0LIg0YHQvtC+0YLQstC10YLRgdGC0LLQuNC4INGBINCy0YvQsdGA0LDQvdC90YvQvCDQv9GA0L7QtdC60YLQvtC8LiDQmtC70Y7RhyDQtNC+0LvQttC10L0g0YHQvtC00LXRgNC20LDRgtGMINGA0LXQs9GD0LvRj9GA0L3QvtC1INCy0YvRgNCw0LbQtdC90LjQtSDQtNC70Y8g0L/RgNC+0LXQutGC0LAo0L7QsiksINCh0L7QtNC10YDQttCw0L3QuNC1IC0g0YDQtdCz0YPQu9GP0YDQvdGL0LUg0LLRi9GA0LDQttC10L3QuNGPINC00LvRjyDQtNC10LnRgdGC0LLQuNGPKNC5KS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAn0KDQtdCz0YPQu9GP0YDQvdGL0LUg0LLRi9GA0LDQttC10L3QuNGPINC00LvRjyDRgdC+0YHRgtCw0LLQu9C10L3QuNGPINGB0L/QuNGB0LrQsCDQtNC10LnRgdGC0LLQuNC5INCyINC30LDQstC40YHQuNC80L7RgdGC0Lgg0L7RgiDQs9GA0YPQv9C/INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5LiDQmtC70Y7RhyDQtNC+0LvQttC10L0g0YHQvtC00LXRgNC20LDRgtGMINGA0LXQs9GD0LvRj9GA0L3QvtC1INCy0YvRgNCw0LbQtdC90LjQtSDQtNC70Y8g0L/RgNC+0LXQutGC0LAo0L7QsiksINCh0L7QtNC10YDQttCw0L3QuNC1IC0g0YHQv9C40YHQvtC6INCz0YDRg9C/0L8sINGA0LDQt9C00LXQu9C10L3QvdGL0YUg0LfQsNC/0Y/RgtC+0LkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICfQl9Cw0LTQsNC10YIsINC80L7QttC90L4g0LvQuCDQt9Cw0L3QvtGB0LjRgtGMINGA0LDQsdC+0YfQuNC1INGH0LDRgdGLINCx0LXQtyDRg9C60LDQt9Cw0L3QuNGPINCy0YDQtdC80LXQvdC4INC90LDRh9Cw0LvQsCDQuCDQvtC60L7QvdGH0LDQvdC40Y8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbW9kdWxlIGZvcmNlcyBpbnNlcnRzIGluIFRpbWVBY2NvdW50aW5nLid9ID0gJ9Ct0YLQvtGCINC80L7QtNGD0LvRjCDRg9GB0LrQvtGA0Y/QtdGCINCy0LLQvtC0INC00LDQvdC90YvRhSDQsiBUaW1lQWNjb3VudGluZy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICfQnNC+0LTRg9C70Ywg0YPQstC10LTQvtC80LvQtdC90LjQuSwg0LTQu9GPINC+0YLQvtCx0YDQsNC20LXQvdC40Y8g0LrQvtC70LjRh9C10YHRgtCy0LAg0L3QtdC30LDQstC10YDRiNC10L3QvdGL0YUg0YDQsNCx0L7Rh9C40YUg0LTQvdC10Lkg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIEFjY291bnRpbmcnfSA9ICfQo9GH0LXRgiDQt9Cw0YLRgNCw0YfQtdC90L3QvtCz0L4g0LLRgNC10LzQtdC90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNC90LjQtSDQt9Cw0YLRgNCw0YIg0LLRgNC10LzQtdC90LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICfQntCx0LfQvtGAINC30LDRgtGA0LDRgiDQstGA0LXQvNC10L3QuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICfQntGC0YfQtdGC0Ysg0L4g0LfQsNGC0YDRgtCw0YUg0LLRgNC10LzQtdC90LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICfQndCw0YHRgtGA0L7QudC60Lgg0YPRh9C10YLQsCDQt9Cw0YLRgNCw0YfQtdC90L3QvtCz0L4g0LLRgNC10LzQtdC90LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ9Cf0YDQvtGB0LzQvtGC0YAg0LfQsNGC0YDQsNGCINCy0YDQtdC80LXQvdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAn0KPRh9C10YIg0LfQsNGC0YDQsNGH0LXQvdC90L7Qs9C+INCy0YDQtdC80LXQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ9CU0LvRjyDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjRjywg0LXRgdC70Lgg0L3QtdC60L7RgtC+0YDRi9C1INC00LXQudGB0YLQstC40Y8g0YPQvNC10L3RjNGI0LDRjtGCINGA0LDQsdC+0YfQuNC1INGH0LDRgdGLICjQvdCw0L/RgNC40LzQtdGALCDQtdGB0LvQuCDRgtC+0LvRjNC60L4g0L/QvtC70L7QstC40L3QsCDQstGA0LXQvNC10L3QuCDQsiDQv9GD0YLQuCDQvtC/0LvQsNGH0LjQstCw0LXRgtGB0Y8gLSBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdDYW5jZWwnLAogICAgJ0NvbmZpcm0gaW5zZXJ0JywKICAgICdEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5JywKICAgICdNYXNzIEVudHJ5JywKICAgICdObycsCiAgICAnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnLAogICAgJ1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnNyX0N5cmxfVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICfQlNCwINC70Lgg0LfQsNC40YHRgtCwINC20LXQu9C40YLQtSDQtNCwINC+0LHRgNC40YjQtdGC0LUg0L7QsdGA0LDRh9GD0L0g0LLRgNC10LzQtdC90LAg0LfQsCDQvtCy0LDRmCDQtNCw0L0/JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJ9Cj0YDQtdC00Lgg0LLRgNC10LzQtdC90YHQutC4INC30LDQv9C40YEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3MnfSA9ICfQmNC00Lgg0YMg0L/QvtC00LXRiNCw0LLQsNGa0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF0ZSBOYXZpZ2F0aW9uJ30gPSAn0JTQsNGC0YPQvNGB0LrQsCDQvdCw0LLQuNCz0LDRhtC40ZjQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHdpdGhvdXQgZW50cmllcyd9ID0gJ9CU0LDQvdC4INCx0LXQtyDRg9C90L7RgdCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ9Ch0LXQu9C10LrRgtGD0Zgg0YHQstC1INC00LDQvdC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICfQnNCw0YHQvtCy0L3QuCDRg9C90L7RgSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIHRoZSByZWFzb24gZm9yIHlvdXIgYWJzZW5jZSBmb3IgdGhlIHNlbGVjdGVkIGRheXMnfSA9CiAgICAgICAgJ9Cc0L7Qu9C40LzQviDQktCw0YEg0LjQt9Cw0LHQtdGA0LjRgtC1INGA0LDQt9C70L7QsyDQstCw0YjQtdCzINC+0LTRgdGD0YHRgtCy0LAg0LfQsCDQuNC30LDQsdGA0LDQvdC1INC00LDQvdC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAn0J3QsCDQvtC00LzQvtGA0YMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ9Cd0LAg0LHQvtC70L7QstCw0ZrRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ9Cd0LAg0YHQu9C+0LHQvtC00L3QuNC8INC00LDQvdC40LzQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJ9Ce0LHQsNCy0LXQt9C90LAg0L/QvtGZ0LAg0YHRgyDQvtC30L3QsNGH0LXQvdCwINGB0LAgIioiLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ9Cc0L7RgNCw0YLQtSDRg9C90LXRgtC4INCy0YDQtdC80LUg0L/QvtGH0LXRgtC60LAg0Lgg0LfQsNCy0YDRiNC10YLQutCwINC40LvQuCDQstGA0LXQvNC10L3RgdC60Lgg0L/QtdGA0LjQvtC0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAn0J/RgNC+0ZjQtdC60LDRgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrJ30gPSAn0JfQsNC00LDRgtCw0LonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAn0J3QsNC/0L7QvNC10L3QsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYWRkIGEgcmVtYXJrIHdpdGggbW9yZSB0aGFuIDggY2hhcmFjdGVycyEnfSA9ICfQnNC+0LvQuNC80L4g0LTQsCDQtNC+0LTQsNGC0LUg0L3QsNC/0L7QvNC10L3RgyDQtNGD0LbRgyDQvtC0IDgg0LrQsNGA0LDQutGC0LXRgNCwISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAn0J3QtdCz0LDRgtC40LLQvdCwINCy0YDQtdC80LXQvdCwINC90LjRgdGDINC00L7Qt9Cy0L7RmdC10L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ9Cf0L7QvdCw0LLRmdCw0ZrQtSDRgdCw0YLQuCDQvdC40ZjQtSDQtNC+0LfQstC+0ZnQtdC90L4uINCS0YDQtdC80LUg0L/QvtGH0LXRgtC60LAg0YHQtSDQv9C+0LrQu9Cw0L/QsCDRgdCwINC00YDRg9Cz0LjQvCDQuNC90YLQtdGA0LLQsNC70L7QvC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ9Cd0LXQuNGB0L/RgNCw0LLQsNC9INGE0L7RgNC80LDRgiEg0JzQvtC70LjQvNC+INC00LAg0YPQvdC10YHQtdGC0LUg0LLRgNC10LzQtSDRgyDRhNC+0YDQvNCw0YLRgyBISDpNTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAnMjQ6MDAg0ZjQtSDQtNC+0LfQstC+0ZnQtdC90L4g0YHQsNC80L4g0LrQsNC+INCy0YDQtdC80LUg0LfQsNCy0YDRiNC10YLQutCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ9Cd0LXQuNGB0L/RgNCw0LLQvdC+INCy0YDQtdC80LUhINCU0LDQvSDQuNC80LAg0YHQsNC80L4gMjQg0YHQsNGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICfQktGA0LXQvNC1INC30LDQstGA0YjQtdGC0LrQsCDQvNC+0YDQsCDQsdC40YLQuCDQvdCw0LrQvtC9INC/0L7Rh9C10YLQutCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIEVuZCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ9Cf0L7QvdCw0LLRmdCw0ZrQtSDRgdCw0YLQuCDQvdC40ZjQtSDQtNC+0LfQstC+0ZnQtdC90L4uINCS0YDQtdC80LUg0LfQsNCy0YDRiNC10YLQutCwINGB0LUg0L/QvtC60LvQsNC/0LAg0YHQsCDQtNGA0YPQs9C40Lwg0LjQvdGC0LXRgNCy0LDQu9C+0LwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfQndC10LjRgdC/0YDQsNCy0LDQvSDQv9C10YDQuNC+0LQhINCU0LDQvSDQuNC80LAg0YHQsNC80L4gMjQg0YHQsNGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAn0JjRgdC/0YDQsNCy0LDQvSDQv9C10YDQuNC+0LQg0LzQvtGA0LAg0LHQuNGC0Lgg0LLQtdGb0Lgg0L7QtCDQvdGD0LvQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ9Cd0LXQuNGB0L/RgNCw0LLQsNC9INC/0LXRgNC40L7QtCEg0J3QtdCz0LDRgtC40LLQvdC4INC/0LXRgNC40L7QtNC4INC90LjRgdGDINC00L7Qt9Cy0L7RmdC10L3QuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICfQlNC+0LTQsNGYINGY0LXQtNCw0L0g0YDQtdC0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAn0JzQvtC20LXRgtC1INC40LfQsNCx0YDQsNGC0Lgg0YHQsNC80L4g0ZjQtdC00L3QviDQv9C+0ZnQtSDQt9CwINC/0L7RgtCy0YDQtNGDLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAn0JTQsCDQu9C4INGB0YLQtSDRgdC40LPRg9GA0L3QuCDQtNCwINGB0YLQtSDRgNCw0LTQuNC70Lgg0LTQvtC6INGB0YLQtSDQsdC40LvQuCDQvdCwINCx0L7Qu9C+0LLQsNGa0YM/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAn0JTQsCDQu9C4INGB0YLQtSDRgdC40LPRg9GA0L3QuCDQtNCwINGB0YLQtSDRgNCw0LTQuNC70Lgg0LTQvtC6INGB0YLQtSDQsdC40LvQuCDQvdCwINC+0LTQvNC+0YDRgz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ9CU0LAg0LvQuCDRgdGC0LUg0YHQuNCz0YPRgNC90Lgg0LTQsCDRgdGC0LUg0YDQsNC00LjQu9C4INC00L7QuiDRgdGC0LUg0LHQuNC70Lgg0L3QsCDRgdC70L7QsdC+0LTQvdC40Lwg0LTQsNC90LjQvNCwPyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICfQlNCwINC70Lgg0YHRgtC1INGB0LjQs9GD0YDQvdC4INC00LAg0YHRgtC1INGA0LDQtNC40LvQuCDQstC40YjQtSDQvtC0IDE2INGB0LDRgtC4Pyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAn0J/RgNC10LPQu9C10LQg0LzQtdGB0LXRh9C90L7QsyDQvtCx0YDQsNGH0YPQvdCwINCy0YDQtdC80LXQvdCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICfQn9GA0LXQutC+0LLRgNC10LzQtdC90L4gKNGB0LDRgtC4KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodGhpcyBtb250aCknfSA9ICfQn9GA0LXQutC+0LLRgNC10LzQtdC90L4gKNC+0LLQsNGYINC80LXRgdC10YYpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICfQn9GA0LXQutC+0LLRgNC10LzQtdC90L4gKNGD0LrRg9C/0L3QviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAn0J/RgNC10L7RgdGC0LDQu9C4INGB0LvQvtCx0L7QtNC90Lgg0LTQsNC90LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAn0J7QtNC80L7RgCAo0LTQsNC90LgpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ9CY0YHQutC+0YDQuNGI0ZvQtdC9INC+0LTQvNC+0YAgKNC+0LLQsNGYINC80LXRgdC10YYpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICfQmNGB0LrQvtGA0LjRiNGb0LXQvSDQvtC00LzQvtGAICjRg9C60YPQv9C90L4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJ9Cf0YDQtdC+0YHRgtCw0L4g0L7QtNC80L7RgCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJ9CR0L7Qu9C+0LLQsNGa0LUgKNC00LDQvdC4KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ9CR0L7Qu9C+0LLQsNGa0LUgKNC+0LLQsNGYINC80LXRgdC10YYpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ9CR0L7Qu9C+0LLQsNGa0LUgKNGD0LrRg9C/0L3QviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICfQn9GA0LXRgtGF0L7QtNC90Lgg0LzQtdGB0LXRhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IG1vbnRoJ30gPSAn0KHQu9C10LTQtdGb0Lgg0LzQtdGB0LXRhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAn0KDQsNC00L3QuCDQtNCw0L0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJ9Cg0LDQtNC90Lgg0YHQsNGC0LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAn0KPQutGD0L/QvdC+INGA0LDQtNC90LjRhSDRgdCw0YLQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyXCdzIHByb2plY3Qgb3ZlcnZpZXcnfSA9ICfQn9GA0LXQs9C70LXQtCDQutC+0YDQuNGB0L3QuNGH0LrQvtCzINC/0YDQvtGY0LXQutGC0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAn0KHQsNGC0LggKNC80LXRgdC10YfQvdC+KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAn0KHQsNGC0LggKNGD0LrRg9C/0L3QviknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICfQo9C60YPQv9Cw0L0g0LfQsdC40YAnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAn0JjQt9Cy0LXRiNGC0LDQstCw0ZrQtSDQviDQstGA0LXQvNC10L3Rgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aCBOYXZpZ2F0aW9uJ30gPSAn0J3QsNCy0LjQs9Cw0YbQuNGY0LAg0L/QviDQvNC10YHQtdGG0LjQvNCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICfQmNC00Lgg0L3QsCDQtNCw0YLRg9C8JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ9Ca0L7RgNC40YHQvdC40YfQutC4INC40LfQstC10YjRgtCw0ZjQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAn0JzQtdGB0LXRh9C90Lgg0LfQsdC40YAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICfQodCy0LXQs9CwINC00L4g0YHQsNC00LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICfQodC70L7QsdC+0LTQvdC4INC00LDQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAn0J7QtNC80L7RgCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAn0JHQvtC70L7QstCw0ZrQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICfQn9GA0LXQvtGB0YLQsNC+INC+0LTQvNC+0YAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAn0JjQt9Cy0LXRiNGC0LDRmNC4INC+INC/0YDQvtGY0LXQutGC0YMnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmdQcm9qZWN0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydCd9ID0gJ9CY0LfQstC10YjRgtCw0Zgg0L4g0L/RgNC+0ZjQtdC60YLRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXcnfSA9ICfQmNC00Lgg0L3QsCDQv9GA0LXQs9C70LXQtCDQuNC30LLQtdGI0YLQsNCy0LDRmtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAn0KLRgNC10L3Rg9GC0L3QviDRgdGDINC/0YDQuNC60LDQt9Cw0L3QuCDRgdCw0LzQviDQsNC60YLQuNCy0L3QuCDQutC+0YDQuNGB0L3QuNGG0Lgg0YMg0L7QstC+0Lwg0L/RgNC+0ZjQtdC60YLRgy4g0JfQsCDQv9GA0L7QvNC10L3RgyDQvtCy0LDQutCy0L7QsyDQv9C+0L3QsNGI0LDRmtCwLCDQvNC+0LvQuNC80L4g0JLQsNGBINCw0LbRg9GA0LjRgNCw0ZjRgtC1INC/0L7QtNC10YjQsNCy0LDRmtCwOic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICfQotGA0LXQvdGD0YLQvdC+INGB0YMg0L/RgNC40LrQsNC30LDQvdC4INGB0LLQuCDQutC+0YDQuNGB0L3QuNGG0Lgg0L7QsdGA0LDRh9GD0L3QsCDQstGA0LXQvNC10L3QsC4g0JfQsCDQv9GA0L7QvNC10L3RgyDQvtCy0LDQutCy0L7QsyDQv9C+0L3QsNGI0LDRmtCwLCDQvNC+0LvQuNC80L4g0LDQttGD0YDQuNGA0LDRmNGC0LUg0L/QvtC00LXRiNCw0LLQsNGa0LA6JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ9CY0LfQvNC10L3QsCDQv9C+0LTQtdGI0LDQstCw0ZrQsCDQvtCx0YDQsNGH0YPQvdCw0LLQsNGa0LAg0LLRgNC10LzQtdC90LAg0L/RgNC+0ZjQtdC60YLQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJ9CU0L7QtNCw0Zgg0L/RgNC+0ZjQtdC60LDRgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ9CY0LTQuCDQvdCwINC/0YDQtdCz0LvQtdC0INC/0L7QtNC10YjQsNCy0LDRmtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAn0JTQvtC00LDRmCDQn9GA0L7RmNC10LrQsNGCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ9CY0LfQvNC10L3QuCDQv9C+0LTQtdGI0LDQstCw0ZrQsCDQn9GA0L7RmNC10LrRgtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICfQktC10Zsg0L/QvtGB0YLQvtGY0Lgg0L/RgNC+0ZjQtdC60LDRgiDRgdCwINGC0LjQvCDQuNC80LXQvdC+0LwuINCc0L7Qu9C40LzQviDQstCw0YEsINC40LfQsNCx0LXRgNC40YLQtSDQvdC10LrQviDQtNGA0YPQs9C+Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJ9CY0LfQvNC10L3QuCDQv9C+0LTQtdGI0LDQstCw0ZrQsCDQvtCx0YDQsNGH0YPQvdCw0LLQsNGa0LAg0LLRgNC10LzQtdC90LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRhc2snfSA9ICfQlNC+0LTQsNGYINC30LDQtNCw0YLQsNC6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgcHJvamVjdHMsIHRhc2tzIG9yIHVzZXJzJ30gPSAn0KTQuNC70YLQtdGAINC30LAg0L/RgNC+0ZjQtdC60YLQtSwg0LfQsNC00LDRgtC60LUg0LjQu9C4INC60L7RgNC40YHQvdC40LrQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJ9CS0YDQtdC80LXQvdGB0LrQuCDQv9C10YDQuNC+0LTQuCDRgdC1INC90LUg0LzQvtCz0YMg0L7QsdGA0LjRgdCw0YLQuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAn0JvQuNGB0YLQsCDQv9GA0L7RmNC10LrQsNGC0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAn0JvQuNGB0YLQsCDQt9Cw0LTQsNGC0LDQutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAn0JTQvtC00LDRmCDQt9Cw0LTQsNGC0LDQuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICfQo9GA0LXQtNC4INC/0L7QtNC10YjQsNCy0LDRmtCwINC30LDQtNCw0YLQutCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICfQktC10Zsg0L/QvtGB0YLQvtGY0Lgg0LfQsNC00LDRgtCw0Log0YHQsCDRgtC40Lwg0LjQvNC10L3QvtC8LiDQnNC+0LvQuNC80L4g0LLQsNGBLCDQuNC30LDQsdC10YDQuNGC0LUg0L3QtdC60L4g0LTRgNGD0LPQvi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAn0JvQuNGB0YLQsCDQutC+0YDQuNGB0L3QuNC60LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZXR0aW5ncyd9ID0gJ9Ca0L7RgNC40YHQvdC40YfQutCwINC/0L7QtNC10YjQsNCy0LDRmtCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBzZWUgb3ZlcnRpbWVzJ30gPSAn0JrQvtGA0LjRgdC90LjQutGDINGY0LUg0L7QvNC+0LPRg9Gb0LXQvdC+INC00LAg0LLQuNC00Lgg0L/RgNC10LrQvtCy0YDQtdC80LXQvdC+JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgT3ZlcnRpbWUnfSA9ICfQn9GA0LjQutCw0LbQuCDQv9GA0LXQutC+0LLRgNC10LzQtdC90L4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIGNyZWF0ZSBwcm9qZWN0cyd9ID0gJ9Ca0L7RgNC40YHQvdC40LrRgyDRmNC1INC+0LzQvtCz0YPRm9C10L3QviDQtNCwINC60YDQtdC40YDQsCDQv9GA0L7RmNC10LrRgtC1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHByb2plY3QgY3JlYXRpb24nfSA9ICfQlNC+0LfQstC+0LvQuCDQutGA0LXQuNGA0LDRmtC1INC/0YDQvtGY0LXQutGC0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNraXAgdGltZSBhY2NvdW50aW5nJ30gPSAn0JrQvtGA0LjRgdC90LjQutGDINGY0LUg0L7QvNC+0LPRg9Gb0LXQvdC+INC00LAg0L/RgNC10YHQutC+0YfQuCDQvtCx0YDQsNGH0YPQvdCw0LLQsNGa0LUg0LLRgNC10LzQtdC90LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgdGltZSBhY2NvdW50aW5nIHNraXBwaW5nJ30gPSAn0JTQvtC30LLQvtC70Lgg0L/RgNC10YHQutCw0LrQsNGa0LUg0L7QsdGA0LDRh9GD0L3QsNCy0LDRmtCwINCy0YDQtdC80LXQvdCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoaXMgb3B0aW9uIGlzIHNlbGVjdGVkLCB0aW1lIGFjY291bnRpbmcgaXMgZWZmZWN0aXZlbHkgb3B0aW9uYWwgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAn0KPQutC+0LvQuNC60L4g0ZjQtSDRg9C60ZnRg9GH0LXQvdC+LCDQvtCx0YDQsNGH0YPQvdCw0LLQsNGa0LUg0LLRgNC10LzQtdC90LAg0ZvQtSDQsdC40YLQuCDQvtC/0YbQuNC+0L3QviDQt9CwINC60L7RgNC40YHQvdC40LrQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2lsbCBiZSBubyB3YXJuaW5ncyBhYm91dCBtaXNzaW5nIGVudHJpZXMgYW5kIG5vIGVudHJ5IGVuZm9yY2VtZW50Lid9ID0KICAgICAgICAn0KPQv9C+0LfQvtGA0LXRmtCwINC+INC90LXQtNC+0YHRgtCw0YLQutGDINC+0LHRgNCw0YfRg9C90LAg0LLRgNC10LzQtdC90LAg0Lgg0LrQvtC90YLRgNC+0LvQsCDQv9GA0LjRgdGC0YPQv9CwINGb0LUg0LHQuNGC0Lgg0YHRg9GB0L/QtdC90LTQvtCy0LDQvdC4Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNwYW5zJ30gPSAn0KDQsNGB0L/QvtC90Lgg0LLRgNC10LzQtdC90LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAn0J/QvtGH0LXRgtCw0Log0L/QtdGA0LjQvtC00LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ9Ca0YDQsNGYINC/0LXRgNC40L7QtNCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICfQlNCw0L3QuCDQvtC00LzQvtGA0LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICfQodCw0YLQuCDQv9C+INC90LXQtNC10ZnQuCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAn0JTQvtC30LLQvtGZ0LXQvdC+INC/0YDQtdC60L7QstGA0LXQvNC10L3Qvic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAn0JTQsNGC0YPQvCDQv9C+0YfQtdGC0LrQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICfQnNC+0LvQuNC80L4g0LTQsCDRg9C90LXRgdC10YLQtSDQstCw0LbQtdGb0Lgg0LTQsNGC0YPQvC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICfQlNCw0YLRg9C8INC30LDQstGA0YjQtdGC0LrQsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJ9Ca0YDQsNGYINC/0LXRgNC40L7QtNCwINC80L7RgNCwINCx0LjRgtC4INC/0L7RgdC70LUg0L/QvtGH0LXRgtC60LAg0L/QtdGA0LjQvtC00LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICfQlNCw0L3QuCDQvtC00YHRg9GB0YLQstCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJ9Ch0LXQtNC80LjRh9C90Lgg0YHQsNGC0LgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICfQn9GA0LXQutC+0LLRgNC10LzQtdC90L4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJ9Cd0LjRgdGDINC/0YDQvtC90LDRktC10L3QuCDQstGA0LXQvNC10L3RgdC60Lgg0L/QtdGA0LjQvtC00LguJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJ9CU0L7QtNCw0Zgg0LLRgNC10LzQtdC90YHQutC4INC/0LXRgNC40L7QtCc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgVGltZSBSZWNvcmQnfSA9ICfQn9GA0LjQutCw0Lcg0LLRgNC10LzQtdC90YHQutC+0LMg0LfQsNC/0LjRgdCwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAn0J/RgNC40LrQsNC3JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ9Cf0YDQtdGC0YXQvtC00L3QuCDQtNCw0L0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICfQodC70LXQtNC10ZvQuCDQtNCw0L0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAn0J3QtdC80LAg0L/QvtC00LDRgtCw0LrQsCDQt9CwINC+0LLQsNGYINC00LDQvS4nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAn0KDQsNC00L3QtSDRmNC10LTQuNC90LjRhtC1INGB0LUg0L3QtSDQvNC+0LPRgyDRg9C90LXRgtC4ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAn0J/QvtGB0LvQtdC00ZrQuCDQv9GA0L7RmNC10LrRgtC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJ9Cd0LUg0LzQvtCz0YMg0LTQsCDRgdCw0YfRg9Cy0LDQvCDQv9C+0LTQtdGI0LDQstCw0ZrQsCwg0ZjQtdGAINC00LDQvSDQuNC80LAg0YHQsNC80L4gMjQg0YHQsNGC0LAhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICfQoNCw0LTQvdC1INGY0LXQtNC40L3QuNGG0LUg0YHQtSDQvdC1INC80L7Qs9GDINC+0LHRgNC40YHQsNGC0LghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAn0J7QstCw0Zgg0LTQsNGC0YPQvCDRmNC1INC40LfQstCw0L0g0LPRgNCw0L3QuNGG0LAg0LDQu9C4INCz0LAg0L3QuNGB0YLQtSDRmNC+0Ygg0YPQstC10Log0YPQvdC10LvQuCwg0L/QsCDQuNC80LDRgtC1INGY0L7RiCDRmNC10LTQvdGDKCEpINGI0LDQvdGB0YMg0LfQsCDRg9C90L7RgSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJ9Cd0LXQv9C+0YLQv9GD0L3QuCDRgNCw0LTQvdC4INC00LDQvdC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJ9Cj0YHQv9C10YjQvdC+INC00L7QtNCw0LLQsNGa0LUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICfQk9GA0LXRiNC60LAg0L/RgNC4INGD0L3QvtGB0YMg0LLQuNGI0LUg0LTQsNGC0YPQvNCwISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICfQo9GB0L/QtdGI0L3QviDRg9Cx0LDRh9C10L3QuCDRg9C90L7RgdC4INC30LAg0LLQuNGI0LUg0LTQsNGC0YPQvNCwISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJ30gPSAn0KPQvdC10YLQuCDQtNCw0YLRg9C8INGY0LUg0L3QtdCy0LDQttC10ZvQuCEg0JTQsNGC0YPQvCDRmNC1INC/0YDQvtC80LXRmtC10L0g0L3QsCDQtNCw0L3QsNGI0ZrQuC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAn0J3QuNGY0LUg0LrQvtC90YTQuNCz0YPRgNC40YHQsNC9INCy0YDQtdC80LXQvdGB0LrQuCDQv9C10YDQuNC+0LQg0LjQu9C4INGY0LUg0L3QsNCy0LXQtNC10L3QuCDQtNCw0YLRg9C8INCy0LDQvSDQtNC10YTQuNC90LjRgdCw0L3QuNGFINCy0YDQtdC80LXQvdGB0LrQuNGFINC/0LXRgNC40L7QtNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY29udGFjdCB0aGUgdGltZSBhY2NvdW50aW5nIGFkbWluaXN0cmF0b3IgdG8gdXBkYXRlIHlvdXIgdGltZSBwZXJpb2RzISd9ID0KICAgICAgICAn0JzQvtC70LjQvNC+INC00LAg0LrQvtC90YLQsNC60YLQuNGA0LDRgtC1INCw0LTQvNC40L3QuNGB0YLRgNCw0YLQvtGA0LAg0L7QsdGA0LDRh9GD0L3QsCDQstGA0LXQvNC10L3QsCDQt9CwINCw0LbRg9GA0LjRgNCw0ZrQtSDQstGA0LXQvNC10L3RgdC60LjRhSDQv9C10YDQuNC+0LTQsCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ9Cf0L7RgdC70LXQtNGa0Lgg0LjQt9Cw0LHRgNCw0L3QuCDQv9GA0L7RmNC10LrRgtC4JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJ9Ch0LLQuCDQv9GA0L7RmNC10LrRgtC4JzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBvcnRpbmdQcm9qZWN0OiBOZWVkIFByb2plY3RJRCd9ID0gJ9CY0LfQstC10YjRgtCw0LLQsNGa0LUg0L4g0L/RgNC+0ZjQtdC60YLRgzog0L3QtdC+0L/RhdC+0LTQsNC9INGY0LUgUHJvamVjdElEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAn0JjQt9Cy0LXRiNGC0LDQstCw0ZrQtSDQviDQv9GA0L7RmNC10LrRgtGDJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ9CY0LfQstC10YjRgtCw0LLQsNGa0LUnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gdXBkYXRlIHVzZXIgc2V0dGluZ3MhJ30gPSAn0JrQvtGA0LjRgdC90LjRh9C60LAg0L/QvtC00LXRiNCw0LLQsNGa0LAg0YHQtSDQvdC1INC80L7Qs9GDINCw0LbRg9GA0LjRgNCw0YLQuCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICfQlNC+0LTQsNGCINC/0YDQvtGY0LXQutCw0YIhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdXBkYXRlZCEnfSA9ICfQkNC20YPRgNC40YDQsNC9INC/0YDQvtGY0LXQutCw0YIhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAn0JTQvtC00LDRgiDQt9Cw0LTQsNGC0LDQuiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayB1cGRhdGVkISd9ID0gJ9CQ0LbRg9GA0LjRgNCw0L0g0LfQsNC00LDRgtCw0LohJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJ1VzZXJJRCDRmNC1INC90LXQstCw0LbQtdGb0LghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJ9Ca0L7RgNC40YHQvdC40YfQutC4INC/0L7QtNCw0YbQuCDRgdC1INC90LUg0LzQvtCz0YMg0YPQvdC10YLQuCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICfQktGA0LXQvNC10L3RgdC60Lgg0L/QtdGA0LjQvtC0INGB0LUg0L3QtSDQvNC+0LbQtSDQtNC+0LTQsNGC0LghJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NldHRpbmcnfSA9ICfQn9C+0LTQtdGI0LDQstCw0ZrQtSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAn0JDQttGD0YDQuNGA0LDQvSDQutC+0YDQuNGB0L3QuNC6ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGFkZGVkISd9ID0gJ9CU0L7QtNCw0YIg0LrQvtGA0LjRgdC90LjQuiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICfQlNC+0LTQsNGYINC60L7RgNC40YHQvdC40LrQsCDRgyDQvtCx0YDQsNGH0YPQvdCw0LLQsNGa0LUg0LLRgNC10LzQtdC90LAuLi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICfQndC+0LLQuCDQutC+0YDQuNGB0L3QuNC6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICfQodGC0LDRgtGD0YEg0L/QtdGA0LjQvtC00LAnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJ9Cf0YDQuNC60LDQtzog0L3QtdC+0L/RhdC+0LTQsNC9ICVzISc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML05vdGlmaWNhdGlvbi9UaW1lQWNjb3VudGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAn0JzQvtC70LjQvNC+INCy0LDRgSDRg9C90LXRgdC40YLQtSDQstCw0YjQtSDRgNCw0LTQvdC+INCy0YDQtdC80LUhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAn0J3QtdC/0L7RgtC/0YPQvdC4INGA0LDQtNC90Lgg0LTQsNC90LgnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAn0JzQvtC70LjQvNC+INCy0LDRgSDQuNC30LDQsdC10YDQuNGC0LUg0LHQsNGAINGY0LXQtNCw0L0g0LTQsNC9ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAn0JzQsNGB0L7QstC90Lgg0YPQvdC+0YEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICfQnNC+0LvQuNC80L4g0LLQsNGBINC40LfQsNCx0LXRgNC40YLQtSDRgNCw0LfQu9C+0LMg0LLQsNGI0LXQsyDQvtC00YHRg9GB0YLQstCwISc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ9Ce0LHRgNC40YjQuCDRgdGC0LDQstC60YMg0L7QsdGA0LDRh9GD0L3QsCDQstGA0LXQvNC10L3QsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ9Cf0L7RgtCy0YDQtNC4INGD0L3QvtGBJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWdlbnQgaW50ZXJmYWNlIG5vdGlmaWNhdGlvbiBtb2R1bGUgdG8gc2VlIHRoZSBudW1iZXIgb2YgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAn0JzQvtC00YPQuyDQt9CwINC+0LHQsNCy0LXRiNGC0LDQstCw0ZrQtSDRgyDQuNC90YLQtdGA0YTQtdGY0YHRgyDQvtC/0LXRgNCw0YLQtdGA0LAg0LrQvtGY0Lgg0L/RgNC40LrQsNC30YPRmNC1INCx0YDQvtGYINC90LXQutC+0LzQv9C70LXRgtC90LjRhSDRgNCw0LTQvdC40YUg0LTQsNC90LAg0LfQsCDQutC+0YDQuNGB0L3QuNC60LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAn0J/QvtC00YDQsNC30YPQvNC10LLQsNC90L4g0LjQvNC1INC90L7QstC40YUg0LDQutGG0LjRmNCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICfQn9C+0LTRgNCw0LfRg9C80LXQstCw0L3QviDQuNC80LUg0L3QvtCy0LjRhSDQv9GA0L7RmNC10LrQsNGC0LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAn0J/QvtC00YDQsNC30YPQvNC10LLQsNC90L4g0L/QvtC00LXRiNCw0LLQsNGa0LUg0LfQsCDQtNCw0YLRg9C8INC30LDQstGA0YjQtdGC0LrQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJ9Cf0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC+INC/0L7QtNC10YjQsNCy0LDRmtC1INC30LAg0LTQsNGC0YPQvCDQv9C+0YfQtdGC0LrQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICfQn9C+0LTRgNCw0LfRg9C80LXQstCw0L3QviDQv9C+0LTQtdGI0LDQstCw0ZrQtSDQt9CwINC+0L/QuNGBLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAn0J/QvtC00YDQsNC30YPQvNC10LLQsNC90L4g0L/QvtC00LXRiNCw0LLQsNGa0LUg0LfQsCDQtNCw0L3QtSDQvtC00YHRg9GB0YLQstCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJ9Cf0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC+INC/0L7QtNC10YjQsNCy0LDRmtC1INC30LAg0L/RgNC10LrQvtCy0YDQtdC80LXQvdC4INGA0LDQtC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJ9Cf0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC+INC/0L7QtNC10YjQsNCy0LDRmtC1INC30LAg0YHRgtCw0L3QtNCw0YDQtNC90YMg0YDQsNC00L3RgyDQvdC10LTQtdGZ0YMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICfQn9C+0LTRgNCw0LfRg9C80LXQstCw0L3QuCDRgdGC0LDRgtGD0YEg0LfQsCDQvdC+0LLQtSDQsNC60YbQuNGY0LUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgcHJvamVjdHMuJ30gPSAn0J/QvtC00YDQsNC30YPQvNC10LLQsNC90Lgg0YHRgtCw0YLRg9GBINC30LAg0L3QvtCy0LUg0L/RgNC+0ZjQtdC60YLQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICfQn9C+0LTRgNCw0LfRg9C80LXQstCw0L3QuCDRgdGC0LDRgtGD0YEg0L3QvtCy0LjRhSDQutC+0YDQuNGB0L3QuNC60LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHByb2plY3RzIGZvciB3aGljaCBhIHJlbWFyayBpcyByZXF1aXJlZC4gSWYgdGhlIFJlZ0V4cCBtYXRjaGVzIG9uIHRoZSBwcm9qZWN0LCB5b3UgaGF2ZSB0byBpbnNlcnQgYSByZW1hcmsgdG9vLiBUaGUgUmVnRXhwIHVzZSB0aGUgc214IHBhcmFtZXRlci4nfSA9CiAgICAgICAgJ9Ce0LTRgNC10ZLRg9GY0LUg0L/RgNC+0ZjQtdC60YLQtSDQt9CwINC60L7RmNC1INGY0LUg0L3QsNC/0L7QvNC10L3QsCDQvtCx0LDQstC10LfQvdCwLiDQkNC60L4g0YHQtSBSZWdFeHAg0L/QvtC60LvQvtC/0Lgg0L3QsCDQv9GA0L7RmNC10LrRgtGDLCDQvNC+0YDQsNGC0LUg0YLQtdC60L7RktC1INGD0L3QtdGC0Lgg0L3QsNC/0L7QvNC10L3Rgy4gUmVnRXhwINC60L7RgNC40YHRgtC4IHNteCDQv9Cw0YDQsNC80LXRgtCw0YAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICfQntC00YDQtdGS0YPRmNC1INC00LAg0LvQuCDRgdGC0LDRgtC40YHRgtC40YfQutC4INC80L7QtNGD0Lsg0LzQvtC20LUg0LPQtdC90LXRgNC40YHQsNGC0Lgg0LjQvdGE0L7RgNC80LDRhtC40ZjQtSDQviDQvtCx0YDQsNGH0YPQvdGDINCy0YDQtdC80LXQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICfQmNC30LzQtdC90Lgg0L/QvtC00LXRiNCw0LLQsNGa0LAg0L7QsdGA0LDRh9GD0L3QsNCy0LDRmtCwINCy0YDQtdC80LXQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgcmVjb3JkLid9ID0gJ9CY0LfQvNC10L3QuCDQstGA0LXQvNC10L3RgdC60Lgg0LfQsNC/0LjRgS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAn0JfQsCDQutC+0LvQuNC60L4g0LTQsNC90LAg0YPQvdCw0LfQsNC0INC80L7QttC10YLQtSDRg9C90LXRgtC4INGA0LDQtNC90LUg0ZjQtdC00LjQvdC40YbQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgb25seSB1c2VycyB0aGF0IGhhcyBhZGRlZCB3b3JraW5nIHRpbWUgdG8gdGhlIHNlbGVjdGVkIHByb2plY3QgYXJlIHNob3duLid9ID0KICAgICAgICAn0JDQutC+INGY0LUg0LDQutGC0LjQstC40YDQsNC90L4sINC/0YDQuNC60LDQt9Cw0L3QuCDRgdGDINGB0LDQvNC+INC60L7RgNC40YHQvdC40YbQuCDQutC+0ZjQuCDRgdGDINC00L7QtNCw0LvQuCDRgNCw0LTQvdC+INCy0YDQtdC80LUg0YMg0LjQt9Cw0LHRgNCw0L3QuCDQv9GA0L7RmNC10LrQsNGCLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAn0JDQutC+INGY0LUg0LDQutGC0LjQstC40YDQsNC90L4sINC/0LDQtNCw0ZjRg9Gb0Lgg0LXQu9C10LzQtdC90YLQuCDQvdCwINC10LrRgNCw0L3RgyDQt9CwINC40LfQvNC10L3RgyDRgdC1INC80LXRmtCw0ZjRgyDRgyDQvNC+0LTQtdGA0L3QuNC30L7QstCw0L3QsCDRgdCw0LzQvtC00L7QstGA0YjQsNCy0LDRmNGD0ZvQsCDQv9C+0ZnQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGNhbiBiZSB1c2VkIGluc3RlYWQgdHdvIGxpc3Qgb2YgcHJvamVjdHMgKGxhc3QgYW5kIGFsbCBvbmVzKS4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbiBpcyBlbmFibGVkLid9ID0KICAgICAgICAn0JDQutC+INGY0LUg0LDQutGC0LjQstC40YDQsNC90L4sINGE0LjQu9GC0LXRgCDQv9GA0LXRgtGF0L7QtNC90LjRhSDQv9GA0L7RmNC10LrQsNGC0LAg0YHQtSDQvNC+0LbQtSDQutC+0YDQuNGB0YLQuNGC0Lgg0YPQvNC10YHRgtC+INC00LLQtSDQu9C40YHRgtC1INC/0YDQvtGY0LXQutCw0YLQsCAo0L/QvtGB0LvQtdC00ZrQuCDQuCDRgdCy0LgpLiDQnNC+0LbQtSDRgdC1INC60L7RgNC40YHRgtC40YLQuCDRgdCw0LzQviDQsNC60L4g0ZjQtSBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24g0LDQutGC0LjQstC40YDQsNC90L4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBpcyBhY3RpdmUgYnkgZGVmYXVsdCBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgRW5hYmxlQXV0b0NvbXBsZXRpb24gYW5kIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYXJlIGVuYWJsZWQuJ30gPQogICAgICAgICfQkNC60L4g0ZjQtSDQsNC60YLQuNCy0LjRgNCw0L3Qviwg0YTQuNC70YLQtdGAINC/0YDQtdGC0YXQvtC00L3QuNGFINC/0YDQvtGY0LXQutCw0YLQsCDRmNC1INC/0L7QtNGA0LDQt9GD0LzQtdCy0LDQvdC+INCw0LrRgtC40LLQsNC9INCw0LrQviDQuNC80LAg0L/RgNC+0ZjQtdC60LDRgtCwINC+0LQg0L/RgNC1LiDQnNC+0LbQtSDRgdC1INC60L7RgNC40YHRgtC40YLQuCDRgdCw0LzQviDQsNC60L4g0ZjQtSBFbmFibGVBdXRvQ29tcGxldGlvbiDQuCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyINCw0LrRgtC40LLQuNGA0LDQvdC+Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLid9ID0KICAgICAgICAn0JDQutC+INGY0LUg0LDQutGC0LjQstC40YDQsNC90L4sINC60L7RgNC40YHQvdC40LrRgyDRmNC1INC00L7Qt9Cy0L7RmdC10L3QviDQtNCwINGD0L3QtdGB0LUgItC90LAg0L7QtNC80L7RgNGDIiwgItC90LAg0LHQvtC70L7QstCw0ZrRgyIg0LggItC90LAg0YHQu9C+0LHQvtC00L3QuNC8INC00LDQvdC40LzQsCIg0L3QsCDQstC40YjQtSDQtNCw0YLRg9C80LAg0L7QtNGY0LXQtNC90L7QvC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICfQnNCw0LrRgdC40LzQsNC70L3QuCDQsdGA0L7RmCDRgNCw0LTQvdC40YUg0LTQsNC90LAg0L/QvtGB0LvQtSDQutC+0LMg0YLRgNC10LHQsCDQtNC+0LTQsNGC0Lgg0YDQsNC00L3QtSDRmNC10LTQuNC90LjRhtC1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLid9ID0KICAgICAgICAn0JzQsNC60YHQuNC80LDQu9C90Lgg0LHRgNC+0Zgg0YDQsNC00L3QuNGFINC00LDQvdCwINCx0LXQtyDRg9C90L7RgdCwINGA0LDQtNC90LjRhSDRmNC10LTQuNC90LjRhtCwINC/0L7RgdC70LUg0LrQvtCzINGb0LUg0LHQuNGC0Lgg0L/RgNC40LrQsNC30LDQvdC+INGD0L/QvtC30L7RgNC10ZrQtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcuJ30gPSAn0J/RgNC10LPQu9C10LQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdGltZSByZXBvcnRpbmcuJ30gPSAn0JjQt9Cy0LXRiNGC0LDQstCw0ZrQtSDQviDQstGA0LXQvNC10L3RgyDQv9GA0L7RmNC10LrRgtCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAn0KDQtdCz0YPQu9Cw0YDQvdC4INC40LfRgNCw0LfQuCDQt9CwINC+0LPRgNCw0L3QuNGH0LDQstCw0ZrQtSDQu9C40YHRgtC1INCw0LrRhtC40ZjQsCDQv9GA0LXQvNCwINC40LfQsNCx0YDQsNC90LjQvCDQv9GA0L7RmNC10LrRgtC40LzQsC4g0JrRmdGD0Ycg0YHQsNC00YDQttC4INGA0LXQs9GD0LvQsNGA0L3QuCDQuNC30YDQsNC3INC30LAg0L/RgNC+0ZjQtdC60YIo0LUpLCDRgyDRgdCw0LTRgNC20LDRmNGDINGY0LUg0YDQtdCz0YPQu9Cw0YDQvdC4INC40LfRgNCw0Lcg0LfQsCDQsNC60YbQuNGY0YMo0LUpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICfQoNC10LPRg9C70LDRgNC90Lgg0LjQt9GA0LDQt9C4INC30LAg0L7Qs9GA0LDQvdC40YfQsNCy0LDRmtC1INC70LjRgdGC0LUg0LDQutGG0LjRmNCwINC/0YDQtdC80LAg0LjQt9Cw0LHRgNCw0L3QuNC8INC60L7RgNC40YHQvdC40YfQutC40Lwg0LPRgNGD0L/QsNC80LAuINCa0ZnRg9GHINGB0LDQtNGA0LbQuCDRgNC10LPRg9C70LDRgNC90Lgg0LjQt9GA0LDQtyDQt9CwINC/0YDQvtGY0LXQutGCKNC1KSwg0YMg0YHQsNC00YDQttCw0ZjRgyDRmNC1INGA0LXQs9GD0LvQsNGA0L3QuCDQuNC30YDQsNC3INC30LAg0LPRgNGD0L/QtS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJ9Ce0LTRgNC10ZLRg9GY0LUg0LTQsCDQu9C4INGA0LDQtNC90Lgg0YHQsNGC0Lgg0LzQvtCz0YMg0LTQsCDRgdC1INGD0L3QtdGB0YMg0LHQtdC3INCy0YDQtdC80LXQvdCwINC/0L7Rh9C10YLQutCwINC4INC30LDQstGA0YjQtdGC0LrQsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAn0J7QstCw0Zgg0LzQvtC00YPQuyDQvdCw0LzQtdGb0LUg0YPQvdC+0YEg0YMg0L7QsdGA0LDRh9GD0L0g0LLRgNC10LzQtdC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAn0J7QstCw0Zgg0LzQvtC00YPQuyDQt9CwINC+0LHQsNCy0LXRiNGC0LDQstCw0ZrQtSDQtNCw0ZjQtSDRg9C/0L7Qt9C+0YDQtdGa0LUg0LDQutC+INC40LzQsCDQv9GA0LXQstC40YjQtSDQvdC10LrQvtC80L/Qu9C10YLQvdC40YUg0YDQsNC00L3QuNGFINC00LDQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIEFjY291bnRpbmcnfSA9ICfQntCx0YDQsNGH0YPQvdCw0LLQsNGa0LUg0LLRgNC10LzQtdC90LAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAn0KPRgNC10ZLQuNCy0LDRmtC1INC+0LHRgNCw0YfRg9C90LDQstCw0ZrQsCDQstGA0LXQvNC10L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJ9Cf0YDQtdCz0LvQtdC0INC+0LHRgNCw0YfRg9C90LDQstCw0ZrQsCDQstGA0LXQvNC10L3QsC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICfQmNC30LLQtdGI0YLQsNGY0Lgg0L7QsdGA0LDRh9GD0L3QsNCy0LDRmtCwINCy0YDQtdC80LXQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAn0J/QvtC00LXRiNCw0LLQsNGa0LAg0L7QsdGA0LDRh9GD0L3QsNCy0LDRmtCwINCy0YDQtdC80LXQvdCwLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICfQn9GA0LXQs9C70LXQtCDQvtCx0YDQsNGH0YPQvdCw0LLQsNGa0LAg0LLRgNC10LzQtdC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZy4nfSA9ICfQntCx0YDQsNGH0YPQvdCw0LLQsNGa0LUg0LLRgNC10LzQtdC90LAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ9CX0LAg0YPQv9C+0YLRgNC10LHRgyDQsNC60L4g0L3QtdC60LUg0LDQutGG0LjRmNC1INGB0LzQsNGa0YPRmNGDINGA0LDQtNC90LUg0YHQsNGC0LUgKNC90LAg0L/RgNC40LzQtdGALCDQsNC60L4g0YHQtSDQv9C70LDRm9CwINGB0LDQvNC+INC/0L7Qu9CwINCy0YDQtdC80LXQvdCwINC/0YPRgtC+0LLQsNGa0LAg0JrRmdGD0YcgPT4g0L/Rg9GC0L7QstCw0ZrQtTsg0KHQsNC00YDQttCw0ZggPT4gNTApLic7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnQ29uZmlybSBpbnNlcnQnLAogICAgJ0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknLAogICAgJ01hc3MgRW50cnknLAogICAgJ05vJywKICAgICdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScsCiAgICAnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnNyX0xhdG5fVGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRGVsZXRlCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoZSBUaW1lIEFjY291bnRpbmcgb2YgdGhpcyBkYXk/J30gPQogICAgICAgICdEYSBsaSB6YWlzdGEgxb5lbGl0ZSBkYSBvYnJpxaFldGUgb2JyYcSNdW4gdnJlbWVuYSB6YSBvdmFqIGRhbj8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnVXJlZGkgdnJlbWVuc2tpIHphcGlzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAnSWRpIHUgcG9kZcWhYXZhbmphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ0RhdHVtc2thIG5hdmlnYWNpamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICdEYW5pIGJleiB1bm9zYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZWxlY3QgYWxsIGRheXMnfSA9ICdTZWxla3R1aiBzdmUgZGFuZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAnTWFzb3ZuaSB1bm9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnTW9saW1vIFZhcyBpemFiZXJpdGUgcmF6bG9nIHZhxaFlZyBvZHN1c3R2YSB6YSBpemFicmFuZSBkYW5lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAnTmEgb2Rtb3J1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICdOYSBib2xvdmFuanUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICdOYSBzbG9ib2RuaW0gZGFuaW1hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAnT2JhdmV6bmEgcG9samEgc3Ugb3puYcSNZW5hIHNhICIqIi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICdNb3JhdGUgdW5ldGkgdnJlbWUgcG/EjWV0a2EgaSB6YXZyxaFldGthIGlsaSB2cmVtZW5za2kgcGVyaW9kLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAnUHJvamVrYXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ1phZGF0YWsnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnTmFwb21lbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnTW9saW1vIGRhIGRvZGF0ZSBuYXBvbWVudSBkdcW+dSBvZCA4IGthcmFrdGVyYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ05lZ2F0aXZuYSB2cmVtZW5hIG5pc3UgZG96dm9samVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJ1BvbmF2bGphbmplIHNhdGkgbmlqZSBkb3p2b2xqZW5vLiBWcmVtZSBwb8SNZXRrYSBzZSBwb2tsYXBhIHNhIGRydWdpbSBpbnRlcnZhbG9tLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIGZvcm1hdCEgUGxlYXNlIGVudGVyIGEgdGltZSB3aXRoIHRoZSBmb3JtYXQgSEg6TU0uJ30gPSAnTmVpc3ByYXZhbiBmb3JtYXQhIE1vbGltbyBkYSB1bmVzZXRlIHZyZW1lIHUgZm9ybWF0dSBISDpNTS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnMjQ6MDAgaXMgb25seSBwZXJtaXR0ZWQgYXMgZW5kIHRpbWUuJ30gPSAnMjQ6MDAgamUgZG96dm9samVubyBzYW1vIGthbyB2cmVtZSB6YXZyxaFldGthLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ05laXNwcmF2bm8gdnJlbWUhIERhbiBpbWEgc2FtbyAyNCBzYXRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnVnJlbWUgemF2csWhZXRrYSBtb3JhIGJpdGkgbmFrb24gcG/EjWV0a2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnUG9uYXZsamFuamUgc2F0aSBuaWplIGRvenZvbGplbm8uIFZyZW1lIHphdnLFoWV0a2Egc2UgcG9rbGFwYSBzYSBkcnVnaW0gaW50ZXJ2YWxvbS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ05laXNwcmF2YW4gcGVyaW9kISBEYW4gaW1hIHNhbW8gMjQgc2F0YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICdJc3ByYXZhbiBwZXJpb2QgbW9yYSBiaXRpIHZlxIdpIG9kIG51bGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdOZWlzcHJhdmFuIHBlcmlvZCEgTmVnYXRpdm5pIHBlcmlvZGkgbmlzdSBkb3p2b2xqZW5pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJ0RvZGFqIGplZGFuIHJlZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ01vxb5ldGUgaXphYnJhdGkgc2FtbyBqZWRubyBwb2xqZSB6YSBwb3R2cmR1Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnRGEgbGkgc3RlIHNpZ3VybmkgZGEgc3RlIHJhZGlsaSBkb2sgc3RlIGJpbGkgbmEgYm9sb3Zhbmp1Pyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHZhY2F0aW9uPyd9ID0gJ0RhIGxpIHN0ZSBzaWd1cm5pIGRhIHN0ZSByYWRpbGkgZG9rIHN0ZSBiaWxpIG5hIG9kbW9ydT8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ0RhIGxpIHN0ZSBzaWd1cm5pIGRhIHN0ZSByYWRpbGkgZG9rIHN0ZSBiaWxpIG5hIHNsb2JvZG5pbSBkYW5pbWE/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJ0RhIGxpIHN0ZSBzaWd1cm5pIGRhIHN0ZSByYWRpbGkgdmnFoWUgb2QgMTYgc2F0aT8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJ1ByZWdsZWQgbWVzZcSNbm9nIG9icmHEjXVuYSB2cmVtZW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICdQcmVrb3ZyZW1lbm8gKHNhdGkpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0aGlzIG1vbnRoKSd9ID0gJ1ByZWtvdnJlbWVubyAob3ZhaiBtZXNlYyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRvdGFsKSd9ID0gJ1ByZWtvdnJlbWVubyAodWt1cG5vKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUnfSA9ICdQcmVvc3RhbGkgc2xvYm9kbmkgZGFuaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICdPZG1vciAoZGFuaSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnSXNrb3JpxaHEh2VuIG9kbW9yIChvdmFqIG1lc2VjKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodG90YWwpJ30gPSAnSXNrb3JpxaHEh2VuIG9kbW9yICh1a3Vwbm8pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJ1ByZW9zdGFvIG9kbW9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgTGVhdmUgKERheXMpJ30gPSAnQm9sb3ZhbmplIChkYW5pKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJ0JvbG92YW5qZSAob3ZhaiBtZXNlYyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAnQm9sb3ZhbmplICh1a3Vwbm8pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnUHJldGhvZG5pIG1lc2VjJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICdTbGVkZcSHaSBtZXNlYyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAnUmFkbmkgZGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICdSYWRuaSBzYXRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJ1VrdXBubyByYWRuaWggc2F0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyXCdzIHByb2plY3Qgb3ZlcnZpZXcnfSA9ICdQcmVnbGVkIGtvcmlzbmnEjWtvZyBwcm9qZWt0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICdTYXRpIChtZXNlxI1ubyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ1NhdGkgKHVrdXBubyknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICdVa3VwYW4gemJpcic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICdJenZlxaF0YXZhbmplIG8gdnJlbWVudSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aCBOYXZpZ2F0aW9uJ30gPSAnTmF2aWdhY2lqYSBwbyBtZXNlY2ltYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAnSWRpIG5hIGRhdHVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJ0tvcmlzbmnEjWtpIGl6dmXFoXRhamknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJ01lc2XEjW5pIHpiaXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICdTdmVnYSBkbyBzYWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAnU2xvYm9kbmkgZGFuaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ09kbW9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICdCb2xvdmFuamUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gcmVtYWluaW5nJ30gPSAnUHJlb3N0YW8gb2Rtb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAnSXp2ZcWhdGFqaSBvIHByb2pla3R1JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICdJenZlxaF0YWogbyBwcm9qZWt0dSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXcnfSA9ICdJZGkgbmEgcHJlZ2xlZCBpenZlxaF0YXZhbmphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnVHJlbnV0bm8gc3UgcHJpa2F6YW5pIHNhbW8gYWt0aXZuaSBrb3Jpc25pY2kgdSBvdm9tIHByb2pla3R1LiBaYSBwcm9tZW51IG92YWt2b2cgcG9uYcWhYW5qYSwgbW9saW1vIFZhcyBhxb51cmlyYWp0ZSBwb2RlxaFhdmFuamE6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ1RyZW51dG5vIHN1IHByaWthemFuaSBzdmkga29yaXNuaWNpIG9icmHEjXVuYSB2cmVtZW5hLiBaYSBwcm9tZW51IG92YWt2b2cgcG9uYcWhYW5qYSwgbW9saW1vIGHFvnVyaXJhanRlIHBvZGXFoWF2YW5qYTonOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAnSXptZW5hIHBvZGXFoWF2YW5qYSBvYnJhxI11bmF2YW5qYSB2cmVtZW5hIHByb2pla3RhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAnRG9kYWogcHJvamVrYXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3Mgb3ZlcnZpZXcnfSA9ICdJZGkgbmEgcHJlZ2xlZCBwb2RlxaFhdmFuamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICdEb2RhaiBQcm9qZWthdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFByb2plY3QgU2V0dGluZ3MnfSA9ICdJem1lbmkgcG9kZcWhYXZhbmphIFByb2pla3RhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdWZcSHIHBvc3RvamkgcHJvamVrYXQgc2EgdGltIGltZW5vbS4gTW9saW1vIHZhcywgaXphYmVyaXRlIG5la28gZHJ1Z28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnSXptZW5pIHBvZGXFoWF2YW5qYSBvYnJhxI11bmF2YW5qYSB2cmVtZW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnRG9kYWogemFkYXRhayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIHByb2plY3RzLCB0YXNrcyBvciB1c2Vycyd9ID0gJ0ZpbHRlciB6YSBwcm9qZWt0ZSwgemFkYXRrZSBpbGkga29yaXNuaWtlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAnVnJlbWVuc2tpIHBlcmlvZGkgc2UgbmUgbW9ndSBvYnJpc2F0aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAnTGlzdGEgcHJvamVrYXRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgTGlzdCd9ID0gJ0xpc3RhIHphZGF0YWthJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAnRG9kYWogemFkYXRhayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICdVcmVkaSBwb2RlxaFhdmFuamEgemFkYXRrYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnVmXEhyBwb3N0b2ppIHphZGF0YWsgc2EgdGltIGltZW5vbS4gTW9saW1vIHZhcywgaXphYmVyaXRlIG5la28gZHJ1Z28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ0xpc3RhIGtvcmlzbmlrYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNldHRpbmdzJ30gPSAnS29yaXNuacSNa2EgcG9kZcWhYXZhbmphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBzZWUgb3ZlcnRpbWVzJ30gPSAnS29yaXNuaWt1IGplIG9tb2d1xIdlbm8gZGEgdmlkaSBwcmVrb3ZyZW1lbm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJ1ByaWthxb5pIHByZWtvdnJlbWVubyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gY3JlYXRlIHByb2plY3RzJ30gPSAnS29yaXNuaWt1IGplIG9tb2d1xIdlbm8gZGEga3JlaXJhIHByb2pla3RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHByb2plY3QgY3JlYXRpb24nfSA9ICdEb3p2b2xpIGtyZWlyYW5qZSBwcm9qZWt0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2tpcCB0aW1lIGFjY291bnRpbmcnfSA9ICdLb3Jpc25pa3UgamUgb21vZ3XEh2VubyBkYSBwcmVza2/EjWkgb2JyYcSNdW5hdmFuamUgdnJlbWVuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyB0aW1lIGFjY291bnRpbmcgc2tpcHBpbmcnfSA9ICdEb3p2b2xpIHByZXNrYWthbmplIG9icmHEjXVuYXZhbmphIHZyZW1lbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQsIHRpbWUgYWNjb3VudGluZyBpcyBlZmZlY3RpdmVseSBvcHRpb25hbCBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICdVa29saWtvIGplIHVrbGp1xI1lbm8sIG9icmHEjXVuYXZhbmplIHZyZW1lbmEgxIdlIGJpdGkgb3BjaW9ubyB6YSBrb3Jpc25pa2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIHdpbGwgYmUgbm8gd2FybmluZ3MgYWJvdXQgbWlzc2luZyBlbnRyaWVzIGFuZCBubyBlbnRyeSBlbmZvcmNlbWVudC4nfSA9CiAgICAgICAgJ1Vwb3pvcmVuamEgbyBuZWRvc3RhdGt1IG9icmHEjXVuYSB2cmVtZW5hIGkga29udHJvbGEgcHJpc3R1cGEgxIdlIGJpdGkgc3VzcGVuZG92YW5pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNwYW5zJ30gPSAnUmFzcG9uaSB2cmVtZW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJ1BvxI1ldGFrIHBlcmlvZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJ0tyYWogcGVyaW9kYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAnRGFuaSBvZG1vcmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICdTYXRpIHBvIG5lZGVsamknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJ0RvenZvbGplbm8gcHJla292cmVtZW5vJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICdEYXR1bSBwb8SNZXRrYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICdNb2xpbW8gZGEgdW5lc2V0ZSB2YcW+ZcSHaSBkYXR1bS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICdEYXR1bSB6YXZyxaFldGthJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnS3JhaiBwZXJpb2RhIG1vcmEgYml0aSBwb3NsZSBwb8SNZXRrYSBwZXJpb2RhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMZWF2ZSBEYXlzJ30gPSAnRGFuaSBvZHN1c3R2YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICdTZWRtacSNbmkgc2F0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSd9ID0gJ1ByZWtvdnJlbWVubyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnTmlzdSBwcm9uYcSRZW5pIHZyZW1lbnNraSBwZXJpb2RpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICdEb2RhaiB2cmVtZW5za2kgcGVyaW9kJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ1ByaWtheiB2cmVtZW5za29nIHphcGlzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ1ByaWtheic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICdQcmV0aG9kbmkgZGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgZGF5J30gPSAnU2xlZGXEh2kgZGFuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJ05lbWEgcG9kYXRha2EgemEgb3ZhaiBkYW4uJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJ1JhZG5lIGplZGluaWNlIHNlIG5lIG1vZ3UgdW5ldGkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgUHJvamVjdHMnfSA9ICdQb3NsZWRuamkgcHJvamVrdGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAnTmUgbW9ndSBkYSBzYcSNdXZhbSBwb2RlxaFhdmFuamEsIGplciBkYW4gaW1hIHNhbW8gMjQgc2F0YSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJ1JhZG5lIGplZGluaWNlIHNlIG5lIG1vZ3Ugb2JyaXNhdGkhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAnT3ZhaiBkYXR1bSBqZSBpenZhbiBncmFuaWNhIGFsaSBnYSBuaXN0ZSBqb8WhIHV2ZWsgdW5lbGksIHBhIGltYXRlIGpvxaEgamVkbnUoISkgxaFhbnN1IHphIHVub3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICdOZXBvdHB1bmkgcmFkbmkgZGFuaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICdVc3BlxaFubyBkb2RhdmFuamUhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICdHcmXFoWthIHByaSB1bm9zdSB2acWhZSBkYXR1bWEhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzISd9ID0gJ1VzcGXFoW5vIHViYcSNZW5pIHVub3NpIHphIHZpxaFlIGRhdHVtYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJ1VuZXRpIGRhdHVtIGplIG5ldmHFvmXEh2khIERhdHVtIGplIHByb21lbmplbiBuYSBkYW5hxaFuamkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kIGNvbmZpZ3VyZWQsIG9yIHRoZSBzcGVjaWZpZWQgZGF0ZSBpcyBvdXRzaWRlIG9mIHRoZSBkZWZpbmVkIHRpbWUgcGVyaW9kcy4nfSA9CiAgICAgICAgJ05pamUga29uZmlndXJpc2FuIHZyZW1lbnNraSBwZXJpb2QgaWxpIGplIG5hdmVkZW5pIGRhdHVtIHZhbiBkZWZpbmlzYW5paCB2cmVtZW5za2loIHBlcmlvZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICdNb2xpbW8gZGEga29udGFrdGlyYXRlIGFkbWluaXN0cmF0b3JhIG9icmHEjXVuYSB2cmVtZW5hIHphIGHFvnVyaXJhbmplIHZyZW1lbnNraWggcGVyaW9kYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ1Bvc2xlZG5qaSBpemFicmFuaSBwcm9qZWt0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICdTdmkgcHJvamVrdGknOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnSXp2ZcWhdGF2YW5qZSBvIHByb2pla3R1OiBuZW9waG9kYW4gamUgUHJvamVjdElEJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnSXp2ZcWhdGF2YW5qZSBvIHByb2pla3R1JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ0l6dmXFoXRhdmFuamUnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gdXBkYXRlIHVzZXIgc2V0dGluZ3MhJ30gPSAnS29yaXNuacSNa2EgcG9kZcWhYXZhbmphIHNlIG5lIG1vZ3UgYcW+dXJpcmF0aSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICdEb2RhdCBwcm9qZWthdCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJ0HFvnVyaXJhbiBwcm9qZWthdCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBhZGRlZCEnfSA9ICdEb2RhdCB6YWRhdGFrISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIHVwZGF0ZWQhJ30gPSAnQcW+dXJpcmFuIHphZGF0YWshJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJ1VzZXJJRCBqZSBuZXZhxb5lxIdpISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICdLb3Jpc25pxI1raSBwb2RhY2kgc2UgbmUgbW9ndSB1bmV0aSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICdWcmVtZW5za2kgcGVyaW9kIHNlIG5lIG1vxb5lIGRvZGF0aSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0dGluZyd9ID0gJ1BvZGXFoWF2YW5qZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnQcW+dXJpcmFuIGtvcmlzbmlrISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGFkZGVkISd9ID0gJ0RvZGF0IGtvcmlzbmlrISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB1c2VyIHRvIHRpbWUgYWNjb3VudGluZy4uLid9ID0gJ0RvZGFqIGtvcmlzbmlrYSB1IG9icmHEjXVuYXZhbmplIHZyZW1lbmEuLi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICdOb3ZpIGtvcmlzbmlrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICdTdGF0dXMgcGVyaW9kYSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAnUHJpa2F6OiBuZW9waG9kYW4gJXMhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTm90aWZpY2F0aW9uL1RpbWVBY2NvdW50aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICdNb2xpbW8gdmFzIHVuZXNpdGUgdmHFoWUgcmFkbm8gdnJlbWUhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAnTmVwb3RwdW5pIHJhZG5pIGRhbmknOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnTW9saW1vIHZhcyBpemFiZXJpdGUgYmFyIGplZGFuIGRhbiEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ01hc292bmkgdW5vcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ01vbGltbyB2YXMgaXphYmVyaXRlIHJhemxvZyB2YcWhZWcgb2RzdXN0dmEhJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5J30gPSAnT2JyacWhaSBzdGF2a3Ugb2JyYcSNdW5hIHZyZW1lbmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlybSBpbnNlcnQnfSA9ICdQb3R2cmRpIHVub3MnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICdNb2R1bCB6YSBvYmF2ZcWhdGF2YW5qZSB1IGludGVyZmVqc3Ugb3BlcmF0ZXJhIGtvamkgcHJpa2F6dWplIGJyb2ogbmVrb21wbGV0bmloIHJhZG5paCBkYW5hIHphIGtvcmlzbmlrYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICdQb2RyYXp1bWV2YW5vIGltZSBub3ZpaCBha2NpamEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IHByb2plY3RzLid9ID0gJ1BvZHJhenVtZXZhbm8gaW1lIG5vdmloIHByb2pla2F0YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICdQb2RyYXp1bWV2YW5vIHBvZGXFoWF2YW5qZSB6YSBkYXR1bSB6YXZyxaFldGthLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgc3RhcnQuJ30gPSAnUG9kcmF6dW1ldmFubyBwb2RlxaFhdmFuamUgemEgZGF0dW0gcG/EjWV0a2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnUG9kcmF6dW1ldmFubyBwb2RlxaFhdmFuamUgemEgb3Bpcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJ1BvZHJhenVtZXZhbm8gcG9kZcWhYXZhbmplIHphIGRhbmUgb2RzdXN0dmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnUG9kcmF6dW1ldmFubyBwb2RlxaFhdmFuamUgemEgcHJla292cmVtZW5pIHJhZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciB0aGUgc3RhbmRhcmQgd2Vla2x5IGhvdXJzLid9ID0gJ1BvZHJhenVtZXZhbm8gcG9kZcWhYXZhbmplIHphIHN0YW5kYXJkbnUgcmFkbnUgbmVkZWxqdS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ1BvZHJhenVtZXZhbmkgc3RhdHVzIHphIG5vdmUgYWtjaWplLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJ1BvZHJhenVtZXZhbmkgc3RhdHVzIHphIG5vdmUgcHJvamVrdGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgdXNlcnMuJ30gPSAnUG9kcmF6dW1ldmFuaSBzdGF0dXMgbm92aWgga29yaXNuaWthLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICdPZHJlxJF1amUgcHJvamVrdGUgemEga29qZSBqZSBuYXBvbWVuYSBvYmF2ZXpuYS4gQWtvIHNlIFJlZ0V4cCBwb2tsb3BpIG5hIHByb2pla3R1LCBtb3JhdGUgdGVrb8SRZSB1bmV0aSBuYXBvbWVudS4gUmVnRXhwIGtvcmlzdGkgc214IHBhcmFtZXRhci4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ09kcmXEkXVqZSBkYSBsaSBzdGF0aXN0acSNa2kgbW9kdWwgbW/FvmUgZ2VuZXJpc2F0aSBpbmZvcm1hY2lqZSBvIG9icmHEjXVudSB2cmVtZW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICdJem1lbmkgcG9kZcWhYXZhbmphIG9icmHEjXVuYXZhbmphIHZyZW1lbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnSXptZW5pIHZyZW1lbnNraSB6YXBpcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAnWmEga29saWtvIGRhbmEgdW5hemFkIG1vxb5ldGUgdW5ldGkgcmFkbmUgamVkaW5pY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJ0FrbyBqZSBha3RpdmlyYW5vLCBwcmlrYXphbmkgc3Ugc2FtbyBrb3Jpc25pY2kga29qaSBzdSBkb2RhbGkgcmFkbm8gdnJlbWUgdSBpemFicmFuaSBwcm9qZWthdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJ0FrbyBqZSBha3RpdmlyYW5vLCBwYWRhanXEh2kgZWxlbWVudGkgbmEgZWtyYW51IHphIGl6bWVudSBzZSBtZW5qYWp1IHUgbW9kZXJuaXpvdmFuYSBzYW1vZG92csWhYXZhanXEh2EgcG9samEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJ0FrbyBqZSBha3RpdmlyYW5vLCBmaWx0ZXIgcHJldGhvZG5paCBwcm9qZWthdGEgc2UgbW/FvmUga29yaXN0aXRpIHVtZXN0byBkdmUgbGlzdGUgcHJvamVrYXRhIChwb3NsZWRuamkgaSBzdmkpLiBNb8W+ZSBzZSBrb3Jpc3RpdGkgc2FtbyBha28gamUgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGFrdGl2aXJhbm8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBpcyBhY3RpdmUgYnkgZGVmYXVsdCBpZiB0aGVyZSBhcmUgdGhlIHByZXZpb3VzIHByb2plY3RzLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgRW5hYmxlQXV0b0NvbXBsZXRpb24gYW5kIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYXJlIGVuYWJsZWQuJ30gPQogICAgICAgICdBa28gamUgYWt0aXZpcmFubywgZmlsdGVyIHByZXRob2RuaWggcHJvamVrYXRhIGplIHBvZHJhenVtZXZhbm8gYWt0aXZhbiBha28gaW1hIHByb2pla2F0YSBvZCBwcmUuIE1vxb5lIHNlIGtvcmlzdGl0aSBzYW1vIGFrbyBqZSBFbmFibGVBdXRvQ29tcGxldGlvbiBpIFRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIgYWt0aXZpcmFuby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlbnRlciAib24gdmFjYXRpb24gbGVhdmUiLCAib24gc2ljayBsZWF2ZSIgYW5kICJvbiBvdmVydGltZSBsZWF2ZSIgdG8gbXVsdGlwbGUgZGF0ZXMgYXQgb25jZS4nfSA9CiAgICAgICAgJ0FrbyBqZSBha3RpdmlyYW5vLCBrb3Jpc25pa3UgamUgZG96dm9samVubyBkYSB1bmVzZSAibmEgb2Rtb3J1IiwgIm5hIGJvbG92YW5qdSIgaSAibmEgc2xvYm9kbmltIGRhbmltYSIgbmEgdmnFoWUgZGF0dW1hIG9kamVkbm9tLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ01ha3NpbWFsbmkgYnJvaiByYWRuaWggZGFuYSBwb3NsZSBrb2cgdHJlYmEgZG9kYXRpIHJhZG5lIGplZGluaWNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLid9ID0KICAgICAgICAnTWFrc2ltYWxuaSBicm9qIHJhZG5paCBkYW5hIGJleiB1bm9zYSByYWRuaWggamVkaW5pY2EgcG9zbGUga29nIMSHZSBiaXRpIHByaWthemFubyB1cG96b3JlbmplLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICdQcmVnbGVkLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJ0l6dmXFoXRhdmFuamUgbyB2cmVtZW51IHByb2pla3RhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAnUmVndWxhcm5pIGl6cmF6aSB6YSBvZ3JhbmnEjWF2YW5qZSBsaXN0ZSBha2NpamEgcHJlbWEgaXphYnJhbmltIHByb2pla3RpbWEuIEtsanXEjSBzYWRyxb5pIHJlZ3VsYXJuaSBpenJheiB6YSBwcm9qZWt0KGUpLCB1IHNhZHLFvmFqdSBqZSByZWd1bGFybmkgaXpyYXogemEgYWtjaWp1KGUpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdSZWd1bGFybmkgaXpyYXppIHphIG9ncmFuacSNYXZhbmplIGxpc3RlIGFrY2lqYSBwcmVtYSBpemFicmFuaW0ga29yaXNuacSNa2ltIGdydXBhbWEuIEtsanXEjSBzYWRyxb5pIHJlZ3VsYXJuaSBpenJheiB6YSBwcm9qZWt0KGUpLCB1IHNhZHLFvmFqdSBqZSByZWd1bGFybmkgaXpyYXogemEgZ3J1cGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICdPZHJlxJF1amUgZGEgbGkgcmFkbmkgc2F0aSBtb2d1IGRhIHNlIHVuZXN1IGJleiB2cmVtZW5hIHBvxI1ldGthIGkgemF2csWhZXRrYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAnT3ZhaiBtb2R1bCBuYW1lxIdlIHVub3MgdSBvYnJhxI11biB2cmVtZW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG5vdGlmaWNhdGlvbiBtb2R1bGUgZ2l2ZXMgYSB3YXJuaW5nIGlmIHRoZXJlIGFyZSB0b28gbWFueSBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cy4nfSA9CiAgICAgICAgJ092YWogbW9kdWwgemEgb2JhdmXFoXRhdmFuamUgZGFqZSB1cG96b3JlbmplIGFrbyBpbWEgcHJldmnFoWUgbmVrb21wbGV0bmloIHJhZG5paCBkYW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIEFjY291bnRpbmcnfSA9ICdPYnJhxI11bmF2YW5qZSB2cmVtZW5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJ1VyZcSRaXZhbmplIG9icmHEjXVuYXZhbmphIHZyZW1lbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICdQcmVnbGVkIG9icmHEjXVuYXZhbmphIHZyZW1lbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAnSXp2ZcWhdGFqaSBvYnJhxI11bmF2YW5qYSB2cmVtZW5hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnUG9kZcWhYXZhbmphIG9icmHEjXVuYXZhbmphIHZyZW1lbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ1ByZWdsZWQgb2JyYcSNdW5hdmFuamEgdnJlbWVuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJ09icmHEjXVuYXZhbmplIHZyZW1lbmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ1phIHVwb3RyZWJ1IGFrbyBuZWtlIGFrY2lqZSBzbWFuanVqdSByYWRuZSBzYXRlIChuYSBwcmltZXIsIGFrbyBzZSBwbGHEh2Egc2FtbyBwb2xhIHZyZW1lbmEgcHV0b3ZhbmphIEtsanXEjSA9PiBwdXRvdmFuamU7IFNhZHLFvmFqID0+IDUwKS4nOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdDYW5jZWwnLAogICAgJ0NvbmZpcm0gaW5zZXJ0JywKICAgICdEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5JywKICAgICdNYXNzIEVudHJ5JywKICAgICdObycsCiAgICAnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnLAogICAgJ1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnN2X1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJ0fDpSB0aWxsIGluc3TDpGxsbmluZ2FyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RhdGUgTmF2aWdhdGlvbid9ID0gJ0RhdHVtLW5hdmlnZXJpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAnVsOkbGogYWxsYSBkYWdhcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIGVudHJ5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHZhY2F0aW9uJ30gPSAnUMOlIHNlbWVzdGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICdTanVrbGVkaWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gb3ZlcnRpbWUgbGVhdmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWlyZWQgZmllbGRzIGFyZSBtYXJrZWQgd2l0aCBhICIqIi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgdG8gZmlsbCBpbiBzdGFydCBhbmQgZW5kIHRpbWUgb3IgYSB0aW1lIHBlcmlvZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCd9ID0gJ1Byb2pla3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ1VwcGRyYWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnQW5tw6Ryayc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYWRkIGEgcmVtYXJrIHdpdGggbW9yZSB0aGFuIDggY2hhcmFjdGVycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ05lZ2F0aXZhIHRpZGVyIMOkciBpbnRlIHRpbGzDpXRuYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIGZvcm1hdCEgUGxlYXNlIGVudGVyIGEgdGltZSB3aXRoIHRoZSBmb3JtYXQgSEg6TU0uJ30gPSAnT2dpbHRpZ3QgZm9ybWF0ISBWw6RubGlnZW4gZnlsbCBpIGVuIHRpZCBtZWQgZm9ybWF0ZXQgSEg6TU0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ09naWx0aWcgdGlkISBFdHQgZHlnbiBoYXIgYmFyYSAyNCB0aW1tYXIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAnw5Z2ZXJ0aWQgKFRpbW1hciknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIChEYXlzKSd9ID0gJ1NlbWVzdGVyIChEYWdhciknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgTGVhdmUgKERheXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBtb250aCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IG1vbnRoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChtb250aGx5KSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aCBOYXZpZ2F0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRobHkgdG90YWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHByb2plY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3Mgb3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRhc2snfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgTGlzdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgVGFzayd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIExpc3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2VlIG92ZXJ0aW1lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBjcmVhdGUgcHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2tpcCB0aW1lIGFjY291bnRpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgdGltZSBhY2NvdW50aW5nIHNraXBwaW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoaXMgb3B0aW9uIGlzIHNlbGVjdGVkLCB0aW1lIGFjY291bnRpbmcgaXMgZWZmZWN0aXZlbHkgb3B0aW9uYWwgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIHdpbGwgYmUgbm8gd2FybmluZ3MgYWJvdXQgbWlzc2luZyBlbnRyaWVzIGFuZCBubyBlbnRyeSBlbmZvcmNlbWVudC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNwYW5zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0aG9yaXplZCBPdmVydGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGFydCBEYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgRGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgZW5kIG11c3QgYmUgYWZ0ZXIgcGVyaW9kIGJlZ2luLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMZWF2ZSBEYXlzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZHMgZm91bmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0aW1lIHBlcmlvZCd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgVGltZSBSZWNvcmQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBvZiAnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgZGF5J30gPSAnRsO2cmVnw6VlbmRlIGRhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ07DpHN0a29tbWFuZGUgZGFnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2F2ZSBzZXR0aW5ncywgYmVjYXVzZSBhIGRheSBoYXMgb25seSAyNCBob3VycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgZW50cmllcyBmb3Igc2V2ZXJhbCBkYXRlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW50ZXJlZCBkYXRlIHdhcyBpbnZhbGlkISBEYXRlIHdhcyBjaGFuZ2VkIHRvIHRvZGF5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyB0aW1lIHBlcmlvZCBjb25maWd1cmVkLCBvciB0aGUgc3BlY2lmaWVkIGRhdGUgaXMgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCB0aW1lIHBlcmlvZHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNvbnRhY3QgdGhlIHRpbWUgYWNjb3VudGluZyBhZG1pbmlzdHJhdG9yIHRvIHVwZGF0ZSB5b3VyIHRpbWUgcGVyaW9kcyEnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFNlbGVjdGVkIFByb2plY3RzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBQcm9qZWN0cyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nUHJvamVjdDogTmVlZCBQcm9qZWN0SUQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAnUmFwcG9ydGVyaW5nJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXR0aW5nJ30gPSAnSW5zdMOkbGxuaW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgdXBkYXRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIFN0YXR1cyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvTm90aWZpY2F0aW9uL1RpbWVBY2NvdW50aW5nLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnfSA9ICdWYXIgdsOkbmxpZyBmeWxsIGkgZGluYSBhcmJldHN0aW1tYXIhJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ1bDpG5saWdlbiB2w6RsaiDDpXRtaW5zdG9uZSBlbiBkYWchJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgRW50cnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICdWw6RubGlnZW4gdsOkbGogZW4gYW5sZWRuaW5nIGbDtnIgZnLDpW52YXJvISc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRlc2NyaXB0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBlZGl0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAnJzsKCgogICAgcHVzaCBAeyAkU2VsZi0+e0phdmFTY3JpcHRTdHJpbmdzfSAvLyBbXSB9LCAoCiAgICAnQ2FuY2VsJywKICAgICdDb25maXJtIGluc2VydCcsCiAgICAnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeScsCiAgICAnTWFzcyBFbnRyeScsCiAgICAnTm8nLAogICAgJ1BsZWFzZSBjaG9vc2UgYSByZWFzb24gZm9yIGFic2VuY2UhJywKICAgICdQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJywKICAgICdTdWJtaXQnLAogICAgJ1llcycsCiAgICApOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnN3X1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnSmUgdW5hdGFrYSBrdWZ1dGEgVWhhc2lidSB3YSBNdWRhIGt3YSBzaWt1IHlhIGxlbz8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdFZGl0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgUmVjb3JkJ30gPSAnSGFyaXJpIHJla29kaSB5YSBtdWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzJ30gPSAnTmVuZGEga3dlbnllIG1wYW5naWxpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICdVYWJpcmkgd2EgdGFyZWhlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgd2l0aG91dCBlbnRyaWVzJ30gPSAnU2lrdSB6aXNpem9rdXdhIG5hIG1haW5naXpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbGVjdCBhbGwgZGF5cyd9ID0gJ0NoYWd1YSBzaWt1IHpvdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBlbnRyeSd9ID0gJ0luZ2l6byBsYSBwYW1vamEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICdUYWZhZGhhbGkgY2hhZ3VhIHNhYmFidSB5YSBrdXRva3V3ZXBvIGt3YSBzaWt1IHppbGl6byBjaGFndWxpd2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICdLYXRpa2EgbGlraXpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIHNpY2sgbGVhdmUnfSA9ICdLYXRpa2EgcnVodXNhIHlhIHdhZ29uandhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J09uIG92ZXJ0aW1lIGxlYXZlJ30gPSAnS2F0aWthIHJ1aHVzYSB5YSBtdWRhIHdhIG55b25nZXphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSAiKiIuJ30gPSAnU2VoZW11IHppbmF6b3Rha2l3YSB6aW5hIGFsYW1hICIqIic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ1VuYXRha2l3YSBrdWphemEgbXVkYSB3YSBrdWFuemEgbmEga3VtYWxpemEgYXUgbXVkYSB1bGlvdHVtaWthLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAnTXJhZGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJ0themknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnTWFvbmknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICdNdWRhIGhhc2kgaGF1cnVodXNpd2kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdNdWRhIHVsaW9qaXJ1ZGlhIGhhdXJ1aHVzaXdpLiBNdWRhIHdhIGt1YW56YSB1bmFmYW5hbmEgbmEgbXVkYSBtd2luZ2luZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJ011dW5kbyBiYXRpbGkhIFRhZmFkaGFsaSBpbmdpemEgbXVkYSBuYSBtdXVuZG8gSEg6TU0uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJzI0OjAwIGluYXJ1aHVzaXdhIGthdGlrYSBtdWRhIHdhIGt1bWFsaXphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ011ZGEgYmF0aWxpISBTaWt1IGluYSBtYXNhYSAyNCB0dS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJ011ZGEgd2Ega3VtYWxpemEgbGF6aW1hIHV3ZSBiYWFkYSB5YSBtdWRhIHdhIGt1YW56YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICdNYXNhYSB5YWxpeW9qaXJ1ZGlhIGhheWFydWh1c2l3aS4gTXVkYSB3YSBrdW1hbGl6YSB1bmFmYW5hbmEgbXVkYSBtd2luZ2luZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ011ZGEgYmF0aWxpISBTaWt1IGluYSBtYXNhYSAyNCB0dS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICdNdWRhIGhhbGFsaSB1bmEgbWFzYWEgemFpZGkgeWEgc2lmdXJpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnS2lwaW5kaSBiYXRpbGkhIFZpcGluZGkgaGFzaSBoYXZpcnVodXNpd2kuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAnT25nZXphIHNhZnUgbW9qYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJ1VuYXdlemEga3VjaGFndWEgZWxlbWVudGkgbW9qYSBrYXRpa2EgY2hla2kgYm9rc2knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBzaWNrIGxlYXZlPyd9ID0gJ1VuYSB1aGFraWthIHVsaWZhbnlhIGthemkgd2FrYXRpIHVwbyBsaWtpem8geWEgd2Fnb25qd2E/JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAnVW5hIHVoYWtpa2EgdWxpZmFueWEga2F6aSB3YWthdGkgdXBvIGxpa2l6bz8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ1VuYSB1aGFraWthIHVsaWZhbnlhIGthemkgd2FrYXRpIHVwbyBsaWtpem8geWEgbXVkYSB3YSBueW9uZ2V6YT8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnVW5hIHVoYWtpa2EgdWxpZmFueWEga2F6aSB6YWlkaSB5YSBtYXNhYSAxNj8nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJ01hcGl0aW8geWEgbXdlemkgeWEgdWFyaWZ1IHdhIG11ZGEgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICdNdWRhIHdhIG55b2duZXphIChNYXNhYSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnTXVkYSB3YSBueW9uZ2V6YSAobXdlemkgaHV1KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAnTXVkYSB3YSBueW9uZ2V6YSAoanVtbGEpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJ011ZGEgdWxpb2Jha2kgd2EgbGlraXpvIHlhIG11ZGEgd2EgbnlvbmdlemEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAnTGlraXpvIChzaWt1KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCknfSA9ICdMaWtpem8gaWxpeW9jaHVrdWxpd2EgKG13ZXppIGh1dSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJ0xpa2l6byBpbGl5b2NodWt1bGl3YSAoanVtbGEpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJ0xpa2l6byBpbGl5b2Jha2knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICdMaWtpem8geWEgd2Fnb25qd2EgKHNpa3UpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAnTGlraXpvIHlhIHdhZ29uandhIGlsaXlvY2h1a3VsaXdhIChtd2V6aSBodXUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ0xpa2l6byB5YSB3YWdvbmp3YSBpbGl5b2NodWt1bGl3YSAoanVtbGEpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnTXdlemkgdWxpb3BpdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBtb250aCd9ID0gJ013ZXppIHVqYW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2RheSd9ID0gJ1Npa3UgemEga2F6aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JraW5nIEhvdXJzJ30gPSAnTWFzYWEgeWEga2F6aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICdKdW1sYSB5YSBtYXNhYSB5YSBrYXppJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJ01hcGl0aW8geWEgbXJhZGkgd2EgbXR1bWlhamknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAnTWFzYWEgKGt3YSBtd2V6aSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJ01hc2FhIChtdWRhIHdvdGUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAnSnVtbGEga3V1JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJ1VhcmlmdSB3YSBtdWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICdVYWJpcmkgd2EgbXdlemknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gZGF0ZSd9ID0gJ05lbmRhIHRhcmVoZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHJlcG9ydHMnfSA9ICdSaXBvdGkgemEgbXR1bWlhamknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJ0p1bWxhIHlhIG13ZXppJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpZmV0aW1lIHRvdGFsJ30gPSAnSnVtbGEgeWEgbXVkYSB3b3RlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAnTGlraXpvIHlhIG11ZGEgd2EgbnlvbmdlemEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24nfSA9ICdMaWtpem8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ0xpa2l6byB5YSB3YWdvbmp3YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICdMaWtpem8gaWxpeW9iYWtpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJ1JpcG90aSB6YSBtcmFkaSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAnUmlwb3RpIHlhIG1yYWRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJ05lbmRhIGt3ZW55ZSBtYXBpdGlvIHlhIHVhcmlmdSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJ0t3YSBzYXNhIHdhdHVtaWFqaSBhbWlsaWZ1IHR1IGthdGlrYSBtcmFkaSBodXUgd2F0YW9ueWVzaHdhLiBLdWJhZGlsaXNoYSB0YWJpYSBoaWksIHRhZmFkaGFsaSBzYXNpc2hhIG1wYW5nYWxpby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IGFsbCB0aW1lIGFjY291bnRpbmcgdXNlcnMgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnS3dhIHNhc2Egd2F0dW1pYWppIHdvdGUgd2EgbXVkYSB1bGlvaGVzYWJpa2Egd2F0YW9ueWVzaHdhLiBLdWJhZGlsaXNoYSB0YWJpYSBoaWksIHRhZmFkaGFsaSBzYXNpc2hhIG1wYW5nYWxpby4nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAnSGFyaXJpIFVoYXNpYnUgd2EgTXVkYSBrd2VueWUgbWlwYW5naWxpbyB5YSBtcmFkaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJ09uZ2V6YSBtcmFkaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ05lbmRhIGt3ZW55ZSBtYXBpdGlvIHlhIG1wYW5naWlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAnT25nZXphIG1yYWRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ0hhcmlyaSBtaXBhbmdpbGlvIHlhIG1yYWRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICdUYXlhcmkga3VuYSBtcmFkaSB3ZW55ZSBoaWxpIGppbmEuIFRhZmFkaGFsaSwgY2hhZ3VhIGplbmdpbmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnSGFyaXJpIG1pcGFuZ2lsaW8geWEgVWhhc3VidSB3YSBNdWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnT25nZXphIGthemknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAnT3JvZGhhIHlhIG1pcmFkaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICdPcm9kaGEgeWEga2F6aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgVGFzayd9ID0gJ09uZ2V6YSBrYXppJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ0hhcmlyaSBtaXBhbmdpbGlvIHlhIGthemknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ1RheWFyaSBrdW5hIGthemkgeWVueWUgaGlsaSBqaW5hLiBUYWZhZGhhbGkgY2hhZ3VhIGplbmdpbmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ09yb2RoYSB5YSBtdHVtaWFqaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBzZWUgb3ZlcnRpbWVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgT3ZlcnRpbWUnfSA9ICdPbnllc2hhIG11ZGEgd2EgbnlvbmdlemEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIGNyZWF0ZSBwcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnUnVodXN1IHV0ZW5nZW5lemFqaSB3YSBtcmFkaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2tpcCB0aW1lIGFjY291bnRpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgdGltZSBhY2NvdW50aW5nIHNraXBwaW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoaXMgb3B0aW9uIGlzIHNlbGVjdGVkLCB0aW1lIGFjY291bnRpbmcgaXMgZWZmZWN0aXZlbHkgb3B0aW9uYWwgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIHdpbGwgYmUgbm8gd2FybmluZ3MgYWJvdXQgbWlzc2luZyBlbnRyaWVzIGFuZCBubyBlbnRyeSBlbmZvcmNlbWVudC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNwYW5zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJ0t1YW56YSBrd2Ega2lwZW5nZWxlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICdLdWlzaGEga3dhIGtpcGVuZ2VsZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAnU2lrdSB6YSBsaWtpem8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICdNYXNhYSBrd2Egd2lraSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnTXVkYSB3YSBueW9uZ2V6YSB1bGlvcnVodXNpd2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJ1RhcmVoZSB5YSBrdWFuemEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAnVGFmYWRoYWxpIGluZ2l6YSB0YXJlaGUgaGFsYWxpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAnVGFyZWhlIHlhIGt1bWFsaXphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnTXdpc2hvIHdhIGtpcGVuZ2VsZSBsYXppbWEgdXdlIGJhYWRhIHlhIG13YW56byB3YSBraXBlbmdlbGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJ1Npa3UgemEgbGlraXpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtseSBIb3Vycyd9ID0gJ01hc2FhIHlhIHdpa2knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICdNdWRhIHdhIG55b25nZXphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICdIYWt1bmEgdmlwZW5nZWxlIHZ5YSBtdWRhIHZpbGl2eW9wYXRpa2FuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICdPbmdlemEga2lwZW5nZWxlIGNoYSBtdWRhJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ09ueWVzaGEga2lwZW5nZWxlIGNoYSBtdWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAnTXVvbmVrYW5vIHdhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ1Npa3UgaWxpeW9waXRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgZGF5J30gPSAnU2lrdSBpbmF5b2Z3YXRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5Lid9ID0gJ0hha3VuYSBkYXRhIHppbGl6b3BhdGlrYW5hIGt3YSBzaWt1IGhpaSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgV29ya2luZyBVbml0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2F2ZSBzZXR0aW5ncywgYmVjYXVzZSBhIGRheSBoYXMgb25seSAyNCBob3VycyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGRlbGV0ZSBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIERhdGUgaXMgb3V0IG9mIGxpbWl0LCBidXQgeW91IGhhdmVuXCd0IGluc2VydCB0aGlzIGRheSB5ZXQsIHNvIHlvdSBnZXQgb25lKCEpIGNoYW5jZSB0byBpbnNlcnQnfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIFdvcmtpbmcgRGF5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdWNjZXNzZnVsIGluc2VydCEnfSA9ICdJbmdpem8gbGltZWZhbmlraXdhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICdLb3NhIGthdGlrYSBrdWluZ2l6YSB0YXJlaGUgemFpZGkgeWEgbW9qYSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnTWFpbmdpem8geWFsaXlvZmFuaWtpd2Ega3dhIHRhcmVoZSB6YWlkaSB5YSBtb2phISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJ30gPSAnSW5naXpvIGxhIHRhcmVoZSBuaSBiYXRpbGkhIFRhcmVoZSBpbWViYWRpbGlzaHdhIGxlby4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ1VhcmlmdSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0dGluZyd9ID0gJ01wYW5naWxpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHVzZXIgdG8gdGltZSBhY2NvdW50aW5nLi4uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML05vdGlmaWNhdGlvbi9UaW1lQWNjb3VudGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAnVGFmYWRoYWxpIGluZ2l6YSBtYXNzYWEgeWEga2F6aSEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL0luY29tcGxldGVXb3JraW5nRGF5cy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSB3b3JraW5nIGRheXMnfSA9ICcnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnVGFmYWRoYWxpIGNoYWd1YSBqYXBvIHNpa3UgbW9qYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXNzIEVudHJ5J30gPSAnSW5naXpvIGxhIHBhbW9qYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ1RhZmFkaGFsaSBjaGFndWEgc2FiYWJ1IHlhIGt1dG8ga3V3ZXBvISc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ0Z1dGEgaW5naXpvIGxhIFVoYXNpYnUgd2EgTXVkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ0hha2lraSBpbmdpem8nOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICdNb2R1bGkgeWEgdGFhcmlmYSBrd2Ega2lvbGVzdXJhIGNoYSB3YWthbGEga3VvbmEgaWRhZGkgeWEgc2lrdSB6YSBrYXppIHphIG10dW1pYWppIHppc2l6byBrYW1pbGkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgbmFtZSBmb3IgbmV3IGFjdGlvbnMuJ30gPSAnSmluYSBsYSBjaGFndW8tbXNpbmdpIGt3YSB2aXRlbmRvIHZpcHlhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdKaW5hIGxhIGNoYWd1by1tc2luZ2kga3dhIG1pcmFkaSBtaXB5YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRhdGUgZW5kLid9ID0gJ0NoYWd1by1tc2luZ2kga3dhIG1pcGFuZ2lsaW8geWEgdGFyZWhlIHlhIGt1bWFsaXphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICdDaGFndW8tbXNpbmdpIGt3YSBtaXBhbmdpbGlvIHlhIHRhcmVoZSB5YSBrdWFuemEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGVzY3JpcHRpb24uJ30gPSAnQ2hhZ3VvLW1zaW5naSBrd2EgbWlwYW5naWxpbyB5YSBtYWVsZXpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgbGVhdmUgZGF5cy4nfSA9ICdDaGFndW8tbXNpbmdpIGxhIHNpa3UgemEgbGlraXpvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnQ2hhZ3VvLW1zaW5naSBsYSBtdWRhIHdhIG55b25nZXphJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICdDaGFndW8tbXNpbmdpIGxhIG1pcGFuZ2lsaW8geWEgc2lrdSB6YSBrYXdhaWRhIHphIHdpa2knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ0hhbGkgeWEgY2hhZ3VvLW1zaW5naSBrd2Egdml0ZW5kbyB2aXB5YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICdIYWxpIHlhIGNoYWd1by1tc2luZ2kga3dhIG1pcmFkaSBtaXB5YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICdIYWxpIHlhIGNoYWd1by1tc2luZ2kga3dhIHdhdHVtaWFqaSB3YXB5YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnSW5hZmFmYW51YSBtaXJhZGkgYW1iYXlvIG1hb25pIHlhbmFoaXRhamlrYS4gS2FtYSBSZWdFeHAgaW5hZmFuYW5hIGthdGlrYSBtcmFkaSwgdW5hdGFraXdhIGt1d2VrYSBtYW9uaSBwaWEuIFJlZ0V4cCBpbmF0dW1pYSBwYXJhbWV0YSB5YSBzbXgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ0luYWhha2lraSBrYW1hIG1vZHVsaSB5YSB0YWt3aW11IGluYXdlemEga3V0ZW5nZW5lemEgdGFhcmlmYSB5YSB1aGFzaWJ1IHdhIG11ZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgcmVjb3JkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGb3IgaG93IG1hbnkgZGF5cyBhZ28geW91IGNhbiBpbnNlcnQgd29ya2luZyB1bml0cy4nfSA9ICdLd2Egc2lrdSBuZ2FwaSB6aWxpem9waXRhIHVuYXdlemEga3VpbmdpemEgdml0ZW5nbyB2eWEga2F6aS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgb25seSB1c2VycyB0aGF0IGhhcyBhZGRlZCB3b3JraW5nIHRpbWUgdG8gdGhlIHNlbGVjdGVkIHByb2plY3QgYXJlIHNob3duLid9ID0KICAgICAgICAnS2FtYSBpbWV3ZXplc2h3YSwgd2F0dW1pYWppIHdhbGlvd2VrYSBtdWRhIHdhIGthemkga3dhIG1yYWRpIHVsaW9jaGFndWxpd2EgbmRpbyB3YXRhb255ZXNod2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGlzIGFjdGl2ZSBieSBkZWZhdWx0IGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBFbmFibGVBdXRvQ29tcGxldGlvbiBhbmQgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBhcmUgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLid9ID0KICAgICAgICAnS2FtYSBpbWV3ZXplc2h3YSwgbXR1bWlhamkgYW5hcnVodXNpd2Ega3VpbmdpemEgImt3ZW55ZSBsaWtpem8iLCAia3dlbnllIGxpa2l6byB5YSB3YWdvbmp3YSIsICJrd2VueWUgbGlraXpvIHlhIHNpa3UgemEgbnlvbmdlemEiIGt3YSB0YXJlaGUgemFpZGkgeWEgbW9qYSBrd2EgbWt1cHVvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ0tpbWEgY2hhIGp1dSBjaGEgc2lrdSB6YSBrYXppIGJhYWRhIHlhIHZpdGVuZ28gdnlhIGthemkga3VpbmdpendhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLid9ID0KICAgICAgICAnS2ltYSBjaGEganV1IGNoYSBzaWt1IHphIGthemkgYmlsYSB5YSB2aXRlbmdvIHZ5YSBrYXppIGt1aW5naXp3YSBhbWJhdnlvICBvbnlvIGxpdGFvbnllc2h3YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdGltZSByZXBvcnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICdNYW5lbm8geWEga2F3YWlkYSB5YW5heW8ga3dhbWlzaGEgb3JvZGhhIHlhIHZpdGVuZG8ga3dhIG1yYWRpIHVsaW9jaGFndWxpd2EuIFVmdW5ndW8gdW5hIG1hbmVubyB5YSBrYXdhaWRhIHlhIG1yYWRpIChtaXJhZGkpLCBtYXVkaHVpIHlhbmEgbWFuZW5vIHlhIGthd2FpZGEgeWEga2l0ZW5kbyAodml0ZW5kbykuICc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICdNYW5lbm8geWEga2F3YWlkYSB5YSBrdXp1aWEgb3JvZGhhIHlhIG1yYWRpIGt1ZW5kYW5hIG5hIG1ha3VuZGkgeWEgd2F0dW1pYWppLiBVZnVuZ3VvIHVuYSBtYW5lbm8geWEga2F3YWlkYSB5YSBtcmFkaSAobWlyYWRpKSwgbWF1ZGh1aSB5YW5hIG1ha3VuZGkgeWFsaXlvZ2F3YW55d2Ega3dhIGFsYW1hIHlhIG1rYXRvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTcGVjaWZpZXMgaWYgd29ya2luZyBob3VycyBjYW4gYmUgaW5zZXJ0ZWQgd2l0aG91dCBzdGFydCBhbmQgZW5kIHRpbWVzLid9ID0KICAgICAgICAnSW5hYmFpbmlzaGEga2FtYSBtYXNhYSB5YSBrYXppIHlhbmF3ZXphIGt1aW5naXp3YSBiaWxhIHlhIG11ZGEgd2Ega3VhbnphIG5hIGt1bWFsaXphLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICdIaWkgbW9kdWxpIGluYWluZ2l6YSBVaGFzaWJ1IHdhIE11ZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICdIaWkgbW9kdWxpIHlhIHRhYXJpZmEgaW5hdG9hIG9ueW8gZW5kYXBvIGt1bmEgc2lrdSBueWluZ2kgemEga2F6aSBhbWJhem8gaGF6aWpha2FtaWxpa2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJ1VoYXNpYnUgd2EgbXVkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICdIYXJpcmkgdWhhc2lidSB3YSBtdWRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgb3ZlcnZpZXcuJ30gPSAnTWFwaXRpbyB5YSB1aGFzaWJ1IHdhIG11ZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyByZXBvcnRpbmcuJ30gPSAnVWFyaWZ1IHdhIHVoYXNpYnUgd2EgbXVkYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJ01wYW5naWxpbyB3YSB1aGFzaWJ1IHdhIG11ZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ011b25la2FubyB3YSB1aGFzaWJ1IHdhIG11ZGEgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZy4nfSA9ICdVaGFzaWJ1IHdhIG11ZGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG8gdXNlIGlmIHNvbWUgYWN0aW9ucyByZWR1Y2VkIHRoZSB3b3JraW5nIGhvdXJzIChmb3IgZXhhbXBsZSwgaWYgb25seSBoYWxmIG9mIHRoZSB0cmF2ZWxpbmcgdGltZSBpcyBwYWlkIEtleSA9PiB0cmF2ZWxpbmc7IENvbnRlbnQgPT4gNTApLid9ID0KICAgICAgICAnSXRhdHVtaWthIGthbWEgYmFhZGhpIHlhIHZpdGVuZG8gdml0YXB1bmd1emEgbXVkYSB3YSBrYXppIChtZmFubywga2FtYSBudXN1IHlhIG11ZGEgd2Ega3VzYWZpcmkgdW1lbGlwd2EgVWZvbmd1bz0+IGt1c2FmaXJpOyBtYXVkaHVpPT4gNTApLic7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnQ29uZmlybSBpbnNlcnQnLAogICAgJ0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknLAogICAgJ01hc3MgRW50cnknLAogICAgJ05vJywKICAgICdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScsCiAgICAnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnVrX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIEVuZCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBOZWdhdGl2ZSBwZXJpb2RzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIG9uZSByb3cnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGNhbiBvbmx5IHNlbGVjdCBvbmUgY2hlY2tib3ggZWxlbWVudCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBzaWNrIGxlYXZlPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHZhY2F0aW9uPyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIChEYXlzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgdmFjYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodGhpcyBtb250aCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2RheSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JraW5nIEhvdXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyXCdzIHByb2plY3Qgb3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChMaWZldGltZSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gZGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHJlcG9ydHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaWZldGltZSB0b3RhbCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSBsZWF2ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydHMnfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmdQcm9qZWN0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IGFsbCB0aW1lIGFjY291bnRpbmcgdXNlcnMgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFByb2plY3QgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIHByb2plY3RzLCB0YXNrcyBvciB1c2Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBzZWUgb3ZlcnRpbWVzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgT3ZlcnRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIGNyZWF0ZSBwcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBza2lwIHRpbWUgYWNjb3VudGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyB0aW1lIGFjY291bnRpbmcgc2tpcHBpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQsIHRpbWUgYWNjb3VudGluZyBpcyBlZmZlY3RpdmVseSBvcHRpb25hbCBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2lsbCBiZSBubyB3YXJuaW5ncyBhYm91dCBtaXNzaW5nIGVudHJpZXMgYW5kIG5vIGVudHJ5IGVuZm9yY2VtZW50Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU3BhbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgRGF0ZSBpcyBvdXQgb2YgbGltaXQsIGJ1dCB5b3UgaGF2ZW5cJ3QgaW5zZXJ0IHRoaXMgZGF5IHlldCwgc28geW91IGdldCBvbmUoISkgY2hhbmNlIHRvIGluc2VydCd9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgV29ya2luZyBEYXlzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWwgaW5zZXJ0ISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAn0J/QvtC80LjQu9C60LAg0L/RgNC4INCy0YHRgtCw0LLRhtGWINC00LXQutGW0LvRjNC60L7RhSDQtNCw0YLQuCEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0dGluZyd9ID0gJ9Cf0LDRgNCw0LzQtdGC0YAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB1c2VyIHRvIHRpbWUgYWNjb3VudGluZy4uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nVmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldzogTmVlZCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ob3RpZmljYXRpb24vVGltZUFjY291bnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJyc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRlc2NyaXB0aW9uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIGFmdGVyIHdoaWNoIHRoZSB3b3JraW5nIHVuaXRzIGhhdmUgdG8gYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4aW11bSBudW1iZXIgb2Ygd29ya2luZyBkYXlzIHdpdGhvdXQgd29ya2luZyB1bml0cyBlbnRyeSBhZnRlciB3aGljaCBhIHdhcm5pbmcgd2lsbCBiZSBzaG93bi4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB0aW1lIHJlcG9ydGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIGFjdGlvbiBsaXN0IGFjY29yZGluZyB0byBzZWxlY3RlZCBwcm9qZWN0LiBLZXkgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9uIGZvciBwcm9qZWN0KHMpLCBjb250ZW50IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGFjdGlvbihzKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgcHJvamVjdCBsaXN0IGFjY29yZGluZyB0byB1c2VyIGdyb3Vwcy4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3BlY2lmaWVzIGlmIHdvcmtpbmcgaG91cnMgY2FuIGJlIGluc2VydGVkIHdpdGhvdXQgc3RhcnQgYW5kIGVuZCB0aW1lcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIG1vZHVsZSBmb3JjZXMgaW5zZXJ0cyBpbiBUaW1lQWNjb3VudGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBub3RpZmljYXRpb24gbW9kdWxlIGdpdmVzIGEgd2FybmluZyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBBY2NvdW50aW5nJ30gPSAn0J7QsdC70ZbQuiDRh9Cw0YHRgyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnQ29uZmlybSBpbnNlcnQnLAogICAgJ0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknLAogICAgJ01hc3MgRW50cnknLAogICAgJ05vJywKICAgICdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScsCiAgICAnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnZpX1ZOX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAnROG7sSDDoW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1hcmsnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05lZ2F0aXZlIHRpbWVzIGFyZSBub3QgYWxsb3dlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBTdGFydCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIGZvcm1hdCEgUGxlYXNlIGVudGVyIGEgdGltZSB3aXRoIHRoZSBmb3JtYXQgSEg6TU0uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57JzI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gRW5kIHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIE5lZ2F0aXZlIHBlcmlvZHMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgb25lIHJvdyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gdmFjYXRpb24/J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gb3ZlcnRpbWUgbGVhdmU/J30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCBtb3JlIHRoYW4gMTYgaG91cnM/J30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nIG1vbnRobHkgb3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKEhvdXJzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodGhpcyBtb250aCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRvdGFsKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gKERheXMpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodG90YWwpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyB2YWNhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIExlYXZlIChEYXlzKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0aGlzIG1vbnRoKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlIHRha2VuICh0b3RhbCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJldmlvdXMgbW9udGgnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBtb250aCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrZGF5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dvcmtpbmcgSG91cnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVG90YWwgd29ya2VkIGhvdXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXJcJ3MgcHJvamVjdCBvdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAobW9udGhseSknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKExpZmV0aW1lKSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHcmFuZCB0b3RhbCd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGggTmF2aWdhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBkYXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgcmVwb3J0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aGx5IHRvdGFsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xpZmV0aW1lIHRvdGFsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIGxlYXZlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gcmVtYWluaW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0cyd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgcmVwb3J0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHJlcG9ydGluZyBvdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgb25seSBhY3RpdmUgdXNlcnMgaW4gdGhpcyBwcm9qZWN0IGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDdXJyZW50bHkgYWxsIHRpbWUgYWNjb3VudGluZyB1c2VycyBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBQcm9qZWN0IFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBwcm9qZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIHNldHRpbmdzIG92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBQcm9qZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUHJvamVjdCBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgcHJvamVjdCB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCB0YXNrJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZpbHRlciBmb3IgcHJvamVjdHMsIHRhc2tzIG9yIHVzZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgTGlzdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIExpc3QnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFRhc2snfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUYXNrIFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSB0YXNrIHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBMaXN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNlZSBvdmVydGltZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBPdmVydGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gY3JlYXRlIHByb2plY3RzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHByb2plY3QgY3JlYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIHNraXAgdGltZSBhY2NvdW50aW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbG93IHRpbWUgYWNjb3VudGluZyBza2lwcGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGlzIG9wdGlvbiBpcyBzZWxlY3RlZCwgdGltZSBhY2NvdW50aW5nIGlzIGVmZmVjdGl2ZWx5IG9wdGlvbmFsIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSB3aWxsIGJlIG5vIHdhcm5pbmdzIGFib3V0IG1pc3NpbmcgZW50cmllcyBhbmQgbm8gZW50cnkgZW5mb3JjZW1lbnQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBTcGFucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgQmVnaW4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEVuZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIG9mIFZhY2F0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIHBlciBXZWVrJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0F1dGhvcml6ZWQgT3ZlcnRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgUHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAnTmjhuq1wIHRow6BuaCBjw7RuZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFcnJvciB3aGlsZSBpbnNlcnRpbmcgbXVsdGlwbGUgZGF0ZXMhJ30gPSAnTOG7l2kga2hpIG5o4bqtcCBuaGnhu4F1IG5nw6B5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzISd9ID0gJ05o4bqtcCB0aMOgbmggY8O0bmcgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ0LDoW8gY8Ohbyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0dGluZyd9ID0gJ1RoaeG6v3QgbOG6rXAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgYSB1c2VyIHRvIHRpbWUgYWNjb3VudGluZy4uLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXcgVXNlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgU3RhdHVzJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nVmlldy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldzogTmVlZCAlcyEnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ob3RpZmljYXRpb24vVGltZUFjY291bnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ1hpbiBuaOG6rXAgdGjhu51pIGdpYW4gbMOgbSB2aeG7h2MnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ub29sQmFyL0luY29tcGxldGVXb3JraW5nRGF5cy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSB3b3JraW5nIGRheXMnfSA9ICcnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBkYXkhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgRW50cnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnfSA9ICcnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlybSBpbnNlcnQnfSA9ICcnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGlzIGFjdGl2ZSBieSBkZWZhdWx0IGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBFbmFibGVBdXRvQ29tcGxldGlvbiBhbmQgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBhcmUgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdGltZSByZXBvcnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJ1F14bqjbiBsw70gdGjhu51pIGdpYW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIGVkaXQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyBvdmVydmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHJlcG9ydGluZy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgdmlldy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUbyB1c2UgaWYgc29tZSBhY3Rpb25zIHJlZHVjZWQgdGhlIHdvcmtpbmcgaG91cnMgKGZvciBleGFtcGxlLCBpZiBvbmx5IGhhbGYgb2YgdGhlIHRyYXZlbGluZyB0aW1lIGlzIHBhaWQgS2V5ID0+IHRyYXZlbGluZzsgQ29udGVudCA9PiA1MCkuJ30gPQogICAgICAgICcnOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdDYW5jZWwnLAogICAgJ0NvbmZpcm0gaW5zZXJ0JywKICAgICdEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5JywKICAgICdNYXNzIEVudHJ5JywKICAgICdObycsCiAgICAnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnLAogICAgJ1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnpoX0NOX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAn6K+356Gu6K6k5L2g55yf55qE5biM5pyb5Yig6Zmk6L+Z5LiA5aSp55qE5bel5pe2566h55CG6K6w5b2V77yfJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJ+e8lui+keaXtumXtOiusOW9lSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJ+i/m+WFpeiuvue9ric7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICfml6XmnJ/mtY/op4gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICfmsqHmnInorrDlvZXnmoTlt6Xml6UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAn6YCJ5oup5omA5pyJ5bel5pel44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICflpKfph4/orrDlvZUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICfor7fkuLrmiYDpgInml7bpl7TpgInmi6nnvLrli6Tljp/lm6DjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICfkvJHlgYcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ+eXheWBhyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ+WKoOePreiwg+S8kSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJ+agh+iusCIqIueahOWtl+auteS4uuW/heWhq+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJ+S9oOmcgOimgeWhq+WGmeW8gOWni+WSjOe7k+adn+aXtumXtOaIluiAheaXtumXtOauteOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAn6aG555uuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICfku7vliqEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAn5aSH5rOoJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJ+ivt+a3u+WKoOS4gOS4qui2hei/hzjkuKrlrZfnrKbnmoTlpIfms6jvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLid9ID0gJ+aXtumXtOS4jeWFgeiuuOS4uui0n+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIFN0YXJ0IHRpbWUgbWF0Y2hlcyBhbm90aGVyIGludGVydmFsLid9ID0KICAgICAgICAn5LiN5YWB6K646YeN5aSN55qE5bel5L2c5pe26Ze044CC5byA5aeL5pe26Ze05bey5Yy56YWN5YW25LuW5a2Y5Zyo55qE5pe25q6144CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludmFsaWQgZm9ybWF0ISBQbGVhc2UgZW50ZXIgYSB0aW1lIHdpdGggdGhlIGZvcm1hdCBISDpNTS4nfSA9ICfmoLzlvI/ml6DmlYjvvIHor7fmjIlISDpNTeagvOW8j+i+k+WFpeaXtumXtOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcyNDowMOWPquWFgeiuuOiuvue9ruS4uue7k+adn+aXtumXtOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHRpbWUhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ+aXtumXtOaXoOaViO+8geS4gOWkqeWPquaciTI05bCP5pe244CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICfnu5PmnZ/ml7bpl7TlupTlpKfkuo7lvIDlp4vml7bpl7TjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICfkuI3lhYHorrjph43lpI3nmoTlt6XkvZzml7bpl7TjgILnu5PmnZ/ml7bpl7Tlt7LljLnphY3lhbbku5blrZjlnKjnmoTml7bmrrXjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJ+aXoOaViOeahOaXtuaute+8geS4gOWkqeWPquaciTI05bCP5pe244CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgdmFsaWQgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uJ30gPSAn5pyJ5pWI5pe25q615pe26ZW/5bqU5aSn5LqOMOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAn5peg5pWI5pe25q6177yB5pe25q615pe26ZW/5LiN5YWB6K645Li66LSf44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAn5aKe5Yqg5LiA6KGMJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAn5Y+q6IO96YCJ5oup5LiA5Liq5aSN6YCJ5qGG5YWD57Sg44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nfSA9ICfkvaDnoa7lrprkvaDlnKjnl4XlgYfmnJ/pl7Tku43lnKjlt6XkvZzlkJfvvJ8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICfkvaDnoa7lrprkvaDlnKjkvJHlgYfmnJ/pl7Tku43lnKjlt6XkvZzlkJfvvJ8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJ+S9oOehruWumuS9oOWcqOWKoOePreiwg+S8keacn+mXtOS7jeWcqOW3peS9nOWQl++8nyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICfkvaDnoa7lrprkvaDlt6XkvZzotoXov4cxNuWwj+aXtuS6huWQl++8nyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3J30gPSAn5bel5pe25oql5ZGK5pyI5bqm5qaC6KeIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lIChIb3VycyknfSA9ICfliqDnj63vvIjlsI/ml7bvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgKHRoaXMgbW9udGgpJ30gPSAn5Yqg54+t77yI5pys5pyI77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0b3RhbCknfSA9ICfliqDnj63vvIjlkIjorqHvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIG92ZXJ0aW1lIGxlYXZlJ30gPSAn5Ymp5L2Z55qE5Yqg54+t6LCD5LyRJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIChEYXlzKSd9ID0gJ+S8keWBh++8iOWkqe+8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCknfSA9ICflt7LkvJHlgYfvvIjmnKzmnIjvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRvdGFsKSd9ID0gJ+W3suS8keWBh++8iOWQiOiuoe+8iSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZW1haW5pbmcgdmFjYXRpb24nfSA9ICfliankvZnnmoTlgYfmnJ8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBMZWF2ZSAoRGF5cyknfSA9ICfnl4XlgYfvvIjlpKnvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodGhpcyBtb250aCknfSA9ICflt7LkvJHnl4XlgYfvvIjmnKzmnIjvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpJ30gPSAn5bey5LyR55eF5YGH77yI5ZCI6K6h77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIG1vbnRoJ30gPSAn5LiK5LiA5pyIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05leHQgbW9udGgnfSA9ICfkuIvkuIDmnIgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2RheSd9ID0gJ+W3peS9nOaXpSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXb3JraW5nIEhvdXJzJ30gPSAn5bel5L2c5pe26Ze0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvdGFsIHdvcmtlZCBob3Vycyd9ID0gJ+W3peS9nOaXtumXtOWQiOiuoSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyXCdzIHByb2plY3Qgb3ZlcnZpZXcnfSA9ICfnlKjmiLfnmoTpobnnm67mpoLop4gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgKG1vbnRobHkpJ30gPSAn5bCP5pe277yI5oyJ5pyI77yJJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChMaWZldGltZSknfSA9ICflsI/ml7bvvIjoh6rlhaXogYzorqHnrpfvvIknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JhbmQgdG90YWwnfSA9ICfmgLvorqEnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgcmVwb3J0aW5nJ30gPSAn5pe26Ze05oql5ZGKJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRoIE5hdmlnYXRpb24nfSA9ICfmjInmnIjmtY/op4gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gZGF0ZSd9ID0gJ+i3s+i9rOWIsOaXpeacnyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHJlcG9ydHMnfSA9ICfnlKjmiLfmiqXlkYonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTW9udGhseSB0b3RhbCd9ID0gJ+aMieaciOWQiOiuoSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMaWZldGltZSB0b3RhbCd9ID0gJ+iHquWFpeiBjOiuoeeul+WQiOiuoSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSBsZWF2ZSd9ID0gJ+WKoOePreiwg+S8kSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbid9ID0gJ+S8keWBhyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaWNrIGxlYXZlJ30gPSAn55eF5YGHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHJlbWFpbmluZyd9ID0gJ+WJqeS9meWBh+acnyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydHMnfSA9ICfpobnnm67miqXlkYonOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmdQcm9qZWN0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHJlcG9ydCd9ID0gJ+mhueebruaKpeWRiic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byByZXBvcnRpbmcgb3ZlcnZpZXcnfSA9ICfov5vlhaXmiqXlkYrmpoLop4gnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IG9ubHkgYWN0aXZlIHVzZXJzIGluIHRoaXMgcHJvamVjdCBhcmUgc2hvd24uIFRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yLCBwbGVhc2UgdXBkYXRlIHNldHRpbmc6J30gPQogICAgICAgICflvZPliY3ku4XmmL7npLrpobnnm67kuK3nmoTmv4DmtLvnlKjmiLfjgILlpoLopoHosIPmlbTmmL7npLrlsZ7mgKfvvIzor7fmm7TmlrDorr7nva7vvJonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3VycmVudGx5IGFsbCB0aW1lIGFjY291bnRpbmcgdXNlcnMgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAn5b2T5YmN5pi+56S65omA5pyJ55qE5bel5pe2566h55CG55So5oi344CC5aaC6KaB6LCD5pW05pi+56S65bGe5oCn77yM6K+35pu05paw6K6+572u77yaJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgUHJvamVjdCBTZXR0aW5ncyd9ID0gJ+e8lui+keW3peaXtueuoeeQhumhueebruiuvue9ric7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgcHJvamVjdCd9ID0gJ+aWsOW7uumhueebric7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyBvdmVydmlldyd9ID0gJ+i/m+WFpeiuvue9ruamguiniCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUHJvamVjdCd9ID0gJ+aWsOW7uumhueebric7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFByb2plY3QgU2V0dGluZ3MnfSA9ICfnvJbovpHpobnnm67orr7nva4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHByb2plY3Qgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJ+W3suWtmOWcqOWQjOWQjeeahOmhueebru+8jOivt+mAieaLqeS4jeWQjOeahOWQjeWtl+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRpbWUgQWNjb3VudGluZyBTZXR0aW5ncyd9ID0gJ+e8lui+keW3peaXtueuoeeQhuiuvue9ric7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGFzayd9ID0gJ+a3u+WKoOS7u+WKoSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGaWx0ZXIgZm9yIHByb2plY3RzLCB0YXNrcyBvciB1c2Vycyd9ID0gJ+aMiemhueebruOAgeS7u+WKoeaIlueUqOaIt+i/h+a7pCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHBlcmlvZHMgY2FuIG5vdCBiZSBkZWxldGVkLid9ID0gJ+aXoOazleWIoOmZpOW3peaXtuWRqOacn+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IExpc3QnfSA9ICfpobnnm67liJfooagnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGFzayBMaXN0J30gPSAn5Lu75Yqh5YiX6KGoJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBUYXNrJ30gPSAn5re75Yqg5Lu75YqhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGFzayBTZXR0aW5ncyd9ID0gJ+e8lui+keS7u+WKoeiuvue9ric7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLid9ID0KICAgICAgICAn5bey5a2Y5Zyo5ZCM5ZCN55qE5Lu75Yqh77yM6K+36YCJ5oup5LiN5ZCM55qE5ZCN5a2X44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgTGlzdCd9ID0gJ+eUqOaIt+WIl+ihqCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIFNldHRpbmdzJ30gPSAn55So5oi36K6+572uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBzZWUgb3ZlcnRpbWVzJ30gPSAn5YWB6K6455So5oi355yL5Yiw5Yqg54+t5pe26Ze0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgT3ZlcnRpbWUnfSA9ICfmmL7npLrliqDnj60nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBpcyBhbGxvd2VkIHRvIGNyZWF0ZSBwcm9qZWN0cyd9ID0gJ+WFgeiuuOeUqOaIt+WIm+W7uumhueebric7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyBwcm9qZWN0IGNyZWF0aW9uJ30gPSAn5YWB6K645Yib5bu66aG555uuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBza2lwIHRpbWUgYWNjb3VudGluZyd9ID0gJ+WFgeiuuOeUqOaIt+i3s+i/h+W3peaXtueuoeeQhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGxvdyB0aW1lIGFjY291bnRpbmcgc2tpcHBpbmcnfSA9ICflhYHorrjot7Pov4flt6Xml7bnrqHnkIYnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQsIHRpbWUgYWNjb3VudGluZyBpcyBlZmZlY3RpdmVseSBvcHRpb25hbCBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICflpoLmnpzpgInmi6nmraTpgInpobnvvIzliJnlt6Xml7bnrqHnkIblr7nnlKjmiLfmnaXor7Tlrp7pmYXkuIrmmK/lj6/pgInnmoTjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgd2lsbCBiZSBubyB3YXJuaW5ncyBhYm91dCBtaXNzaW5nIGVudHJpZXMgYW5kIG5vIGVudHJ5IGVuZm9yY2VtZW50Lid9ID0KICAgICAgICAn5rKh5pyJ5YWz5LqO57y65bCR5p2h55uu55qE6K2m5ZGK77yM5Lmf5rKh5pyJ6L+b5YWl5by65Yi25omn6KGM55qE6K2m5ZGK44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgU3BhbnMnfSA9ICfml7bpl7Tot6jluqYnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIEJlZ2luJ30gPSAn5pe25q615byA5aeLJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBFbmQnfSA9ICfml7bmrrXnu5PmnZ8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBvZiBWYWNhdGlvbid9ID0gJ+S8keWBh+WkqeaVsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyBwZXIgV2Vlayd9ID0gJ+avj+WRqOWwj+aXtuaVsCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRob3JpemVkIE92ZXJ0aW1lJ30gPSAn5om55YeG55qE5Yqg54+tJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXJ0IERhdGUnfSA9ICflvIDlp4vml6XmnJ8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuJ30gPSAn6K+35o+S5YWl5pyJ5pWI5pel5pyf44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCBEYXRlJ30gPSAn57uT5p2f5pel5pyfJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBlbmQgbXVzdCBiZSBhZnRlciBwZXJpb2QgYmVnaW4uJ30gPSAn5pe25q6157uT5p2f5pe26Ze05bqU5aSn5LqO5pe25q615byA5aeL5pe26Ze044CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xlYXZlIERheXMnfSA9ICfnvLrli6TlpKnmlbAnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV2Vla2x5IEhvdXJzJ30gPSAn5q+P5ZGo5bel5L2c5bCP5pe25pWwJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lJ30gPSAn5Yqg54+tJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHRpbWUgcGVyaW9kcyBmb3VuZC4nfSA9ICfmsqHmnInmib7liLDml7bmrrXjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRpbWUgcGVyaW9kJ30gPSAn5aKe5Yqg5pe25q61JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nVmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmlldyBUaW1lIFJlY29yZCd9ID0gJ+afpeeci+W3peaXtuiusOW9lSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IG9mICd9ID0gJ+Wxleekuic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBkYXknfSA9ICfliY3kuIDlpKknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV4dCBkYXknfSA9ICflkI7kuIDlpKknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gZGF0YSBmb3VuZCBmb3IgdGhpcyBkYXkuJ30gPSAn5rKh5pyJ5om+5Yiw6L+Z5LiA5aSp55qE5pWw5o2u44CCJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nRWRpdC5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzISd9ID0gJ+aXoOazleaPkuWFpeW3peS9nOWNleS9je+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydMYXN0IFByb2plY3RzJ30gPSAn5pyA6L+R55qE6aG555uuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzYXZlIHNldHRpbmdzLCBiZWNhdXNlIGEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzISd9ID0gJ+aXoOazleS/neWtmOiuvue9ru+8jOWboOS4uuS4gOWkqeWPquaciTI05bCP5pe277yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICfml6Dms5XliKDpmaTlt6XkvZzljZXkvY3vvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICfov5nkuKrml6XmnJ/kuI3lj5fpmZDliLbvvIzkvYbmmK/kvaDov5jmsqHmnInmj5LlhaXov5nkuIDlpKnvvIzmiYDku6XkvaDojrflvpfkuobkuIDkuKrvvIjvvIHvvInmnLrkvJrmnaXmj5LlhaUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICfkuI3lrozmlbTnmoTlt6XkvZzml6UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAn5o+S5YWl5oiQ5Yqf77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICfmj5LlhaXlpJrkuKrml7bpl7Tml7blh7rnjrDplJnor6/vvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAn5oiQ5Yqf5o+S5YWl6K6w5b2V44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICfovpPlhaXml7bpl7Tml6DmlYjvvIHml6XmnJ/mlLnkuLrlvZPliY3ml6XmnJ/jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAn5rKh5pyJ6YWN572u5pe26Ze05q6177yM5oiW5oyH5a6a55qE5pel5pyf5LiN5Zyo5a6a5LmJ55qE5pe26Ze05q615YaF44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICfor7fogZTns7vlt6Xml7bnrqHnkIblkZjmm7TmlrDmgqjnmoTml7bpl7TmrrXvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJ+acgOWQjuiiq+mAieS4reeahOmhueebric7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICfmiYDmnInpobnnm64nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAn6aG555uu5oql5ZGK77ya6ZyA6KaB6aG555uuSUQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nIFByb2plY3QnfSA9ICfpobnnm67miqXlkYonOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwb3J0aW5nJ30gPSAn5oql5ZGKJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvTW9kdWxlcy9BZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIHVwZGF0ZSB1c2VyIHNldHRpbmdzISd9ID0gJ+aXoOazleabtOaWsOeUqOaIt+iuvue9ru+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IGFkZGVkISd9ID0gJ+mhueebruW3sua3u+WKoO+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHVwZGF0ZWQhJ30gPSAn6aG555uu5bey5pu05paw77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgYWRkZWQhJ30gPSAn5Lu75Yqh5bey5re75Yqg77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgdXBkYXRlZCEnfSA9ICfku7vliqHlt7Lmm7TmlrDvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIFVzZXJJRCBpcyBub3QgdmFsaWQhJ30gPSAnVXNlcklE5peg5pWI77yBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBpbnNlcnQgdXNlciBkYXRhISd9ID0gJ+aXoOazleaPkuWFpeeUqOaIt+aVsOaNru+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVbmFibGUgdG8gYWRkIHRpbWUgcGVyaW9kISd9ID0gJ+aXoOazlea3u+WKoOaXtumXtOaute+8gSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZXR0aW5nJ30gPSAn6K6+572uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgdXBkYXRlZCEnfSA9ICfnlKjmiLflt7Lmm7TmlrDvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBhZGRlZCEnfSA9ICfnlKjmiLflt7Lmt7vliqDvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4nfSA9ICfmt7vliqDkuIDkuKrnlKjmiLfliLDlt6Xml7bnrqHnkIYuLi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTmV3IFVzZXInfSA9ICfmt7vliqDnlKjmiLcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIFN0YXR1cyd9ID0gJ+aXtuauteeKtuaAgSc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXc6IE5lZWQgJXMhJ30gPSAn6KeG5Zu+77ya6ZyA6KaBJXPvvIEnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9PdXRwdXQvSFRNTC9Ob3RpZmljYXRpb24vVGltZUFjY291bnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISd9ID0gJ+ivt+aPkuWFpeW3peS9nOaXtumXtCc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML1Rvb2xCYXIvSW5jb21wbGV0ZVdvcmtpbmdEYXlzLnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyd9ID0gJ+S4jeWujOaVtOeahOW3peS9nOaXpSc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnfSA9ICfor7foh7PlsJHpgInmi6nkuIDlpKnvvIEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJ+Wkp+mHj+iusOW9lSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ+ivt+mAieaLqee8uuW4reWOn+WboO+8gSc7CgogICAgIyBKUyBGaWxlOiBUaW1lQWNjb3VudGluZy5BZ2VudAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVsZXRlIFRpbWUgQWNjb3VudGluZyBFbnRyeSd9ID0gJ+WIoOmZpOW3peaXtueuoeeQhuiusOW9lSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb25maXJtIGluc2VydCd9ID0gJ+ehruiupOaPkuWFpSc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FnZW50IGludGVyZmFjZSBub3RpZmljYXRpb24gbW9kdWxlIHRvIHNlZSB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzIGZvciB0aGUgdXNlci4nfSA9CiAgICAgICAgJ+acjeWKoeS6uuWRmOeVjOmdoumAmuefpeaooeWdl++8jOaYvuekuueUqOaIt+S4jeWujOaVtOeahOW3peS9nOaXpeaVsOaNruOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ+aWsOa0u+WKqOeahOm7mOiupOWQjeensOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IG5hbWUgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICfmlrDpobnnm67nmoTpu5jorqTlkI3np7DjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIGVuZC4nfSA9ICfnu5PmnZ/ml6XmnJ/nmoTpu5jorqTorr7nva7jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkYXRlIHN0YXJ0Lid9ID0gJ+W8gOWni+aXpeacn+eahOm7mOiupOiuvue9ruOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGRlc2NyaXB0aW9uLid9ID0gJ+aPj+i/sOeahOm7mOiupOiuvue9ruOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIGxlYXZlIGRheXMuJ30gPSAn5LyR5YGH5pel55qE6buY6K6k6K6+572u44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3Igb3ZlcnRpbWUuJ30gPSAn5Yqg54+t55qE6buY6K6k6K6+572u44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgdGhlIHN0YW5kYXJkIHdlZWtseSBob3Vycy4nfSA9ICflkajmoIflh4blt6XkvZzml7bpl7TnmoTpu5jorqTorr7nva7jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBhY3Rpb25zLid9ID0gJ+aWsOa0u+WKqOeahOm7mOiupOeKtuaAgeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHByb2plY3RzLid9ID0gJ+aWsOmhueebrueahOm7mOiupOeKtuaAgeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHVzZXJzLid9ID0gJ+aWsOeUqOaIt+eahOm7mOiupOeKtuaAgeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBwcm9qZWN0cyBmb3Igd2hpY2ggYSByZW1hcmsgaXMgcmVxdWlyZWQuIElmIHRoZSBSZWdFeHAgbWF0Y2hlcyBvbiB0aGUgcHJvamVjdCwgeW91IGhhdmUgdG8gaW5zZXJ0IGEgcmVtYXJrIHRvby4gVGhlIFJlZ0V4cCB1c2UgdGhlIHNteCBwYXJhbWV0ZXIuJ30gPQogICAgICAgICfmjIflrprlpIfms6jlv4XloavnmoTpobnnm67jgILlpoLmnpxSZWdFeHDljLnphY3pobnnm67vvIzkvaDkuZ/pnIDopoHmt7vliqDlpIfms6jjgIJSZWdFeHDkvb/nlKhzbXjlj4LmlbDjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGV0ZXJtaW5lcyBpZiB0aGUgc3RhdGlzdGljcyBtb2R1bGUgbWF5IGdlbmVyYXRlIHRpbWUgYWNjb3VudGluZyBpbmZvcm1hdGlvbi4nfSA9CiAgICAgICAgJ+ehruWumue7n+iuoeaooeWdl+aYr+WQpuimgeeUn+aIkOW3peaXtueuoeeQhuS/oeaBr+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IHRpbWUgYWNjb3VudGluZyBzZXR0aW5ncy4nfSA9ICfnvJbovpHlt6Xml7bnrqHnkIborr7nva7jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIHJlY29yZC4nfSA9ICfnvJbovpHlt6Xml7borrDlvZXjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRm9yIGhvdyBtYW55IGRheXMgYWdvIHlvdSBjYW4gaW5zZXJ0IHdvcmtpbmcgdW5pdHMuJ30gPSAn5L2g5Y+v5Lul5o+S5YWl5aSa5LmF5Lul5YmN55qE5bel5L2c5pWw5o2u44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIG9ubHkgdXNlcnMgdGhhdCBoYXMgYWRkZWQgd29ya2luZyB0aW1lIHRvIHRoZSBzZWxlY3RlZCBwcm9qZWN0IGFyZSBzaG93bi4nfSA9CiAgICAgICAgJ+WmguaenOWQr+eUqO+8jOWImeS7heaYvuekuuWcqOmAieWumumhueebruS4reacieW3peaXtuaVsOaNrueahOeUqOaIt+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZHJvcGRvd24gZWxlbWVudHMgaW4gdGhlIGVkaXQgc2NyZWVuIGFyZSBjaGFuZ2VkIHRvIG1vZGVybml6ZWQgYXV0b2NvbXBsZXRpb24gZmllbGRzLid9ID0KICAgICAgICAn5aaC5p6c5ZCv55So77yM5YiZ57yW6L6R6KeG5Zu+5Lit55qE5LiL5ouJ5YiX6KGo5YWD57Sg5bCG5Lya5L+u5pS55Li66Ieq5Yqo5a6M5oiQ5a2X5q6144CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSBmaWx0ZXIgZm9yIHRoZSBwcmV2aW91cyBwcm9qZWN0cyBjYW4gYmUgdXNlZCBpbnN0ZWFkIHR3byBsaXN0IG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwgb25lcykuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24gaXMgZW5hYmxlZC4nfSA9CiAgICAgICAgJ+WmguaenOWQr+eUqO+8jOWImeWPr+S7peS9v+eUqOS5i+WJjemhueebrueahOi/h+a7pOWZqO+8iOeUqOS6juabv+S7o+acgOWQjuWSjOWFqOmDqOmhueebruWIl+ihqO+8ieOAguS7heWcqFRpbWVBY2NvdW50aW5nOjpFbmFibGVBdXRvQ29tcGxldGlvbuWQr+eUqOaXtu+8jOWPr+S7peWQr+eUqOivpeWPguaVsOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgaXMgYWN0aXZlIGJ5IGRlZmF1bHQgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cy4gSXQgY291bGQgYmUgdXNlZCBvbmx5IGlmIEVuYWJsZUF1dG9Db21wbGV0aW9uIGFuZCBUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIGFyZSBlbmFibGVkLid9ID0KICAgICAgICAn5aaC5p6c5ZCv55So77yM5YiZ5aaC5p6c5a2Y5Zyo5LmL5YmN55qE6aG555uu77yM5YiZ5LmL5YmN6aG555uu6L+H5ruk5Zmo5bCG6KKr6buY6K6k5r+A5rS744CC5LuF5ZyoRW5hYmxlQXV0b0NvbXBsZXRpb27lkoxUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVy5ZCv55So5pe277yM5Y+v5Lul5ZCv55So6K+l5Y+C5pWw44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIGVuYWJsZWQsIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZW50ZXIgIm9uIHZhY2F0aW9uIGxlYXZlIiwgIm9uIHNpY2sgbGVhdmUiIGFuZCAib24gb3ZlcnRpbWUgbGVhdmUiIHRvIG11bHRpcGxlIGRhdGVzIGF0IG9uY2UuJ30gPQogICAgICAgICflpoLmnpzlkK/nlKjvvIzliJnnlKjmiLflj6/ku6XkuIDmrKHlnKjlpJrkuKrml6XmnJ/kuK3ovpPlhaXigJzkvJHlgYfigJ3vvIzigJznl4XlgYfigJ3vvIwi5Yqg54+t6LCD5LyRIuOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgYWZ0ZXIgd2hpY2ggdGhlIHdvcmtpbmcgdW5pdHMgaGF2ZSB0byBiZSBpbnNlcnRlZC4nfSA9CiAgICAgICAgJ+W3peS9nOaVsOaNrua3u+WKoOWQjuWFgeiuuOeahOacgOWkp+W3peaXpeOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXhpbXVtIG51bWJlciBvZiB3b3JraW5nIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5IGFmdGVyIHdoaWNoIGEgd2FybmluZyB3aWxsIGJlIHNob3duLid9ID0KICAgICAgICAn5rKh5pyJ5bel5L2c5pWw5o2u6K6w5b2V55qE5bel5L2c5pel55qE5pyA5aSn5pWw6YeP77yI5aaC5p6c6LaF6L+H77yM5YiZ5Lya5pi+56S66K2m5ZGK77yJ44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ2aWV3Lid9ID0gJ+amguiniOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0IHRpbWUgcmVwb3J0aW5nLid9ID0gJ+mhueebruW3peaXtuaKpeWRiuOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb25zdHJhaW5pbmcgYWN0aW9uIGxpc3QgYWNjb3JkaW5nIHRvIHNlbGVjdGVkIHByb2plY3QuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgcmVndWxhciBleHByZXNzaW9ucyBmb3IgYWN0aW9uKHMpLid9ID0KICAgICAgICAn6YCJ5a6a6aG555uu55qE6ZmQ5Yi25rS75Yqo5riF5Y2V5L2/55So55qE5q2j5YiZ6KGo6L6+5byP44CC6ZSu5YyF5ZCr5LqG6aG555uu77yIUHJvamVjdHPvvInnmoTmraPliJnooajovr7lvI/vvIzlgLzljIXlkKvkuobmtLvliqjvvIhBY3Rpb27vvInnmoTmraPliJnooajovr7lvI/jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAn55So5oi357uE55qE6ZmQ5Yi26aG555uu5riF5Y2V5L2/55So55qE5q2j5YiZ6KGo6L6+5byP44CCS2V55YyF5ZCr5LqG6aG555uu77yIUHJvamVjdHPvvInnmoTmraPliJnooajovr7lvI/vvIxDb250ZW505YyF5ZCr5LqG6YCX5Y+35YiG6ZqU55qE57uE5riF5Y2V44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICfmjIflrprlnKjmsqHmnInlvIDlp4vlkoznu5PmnZ/ml7bpl7TnmoTmg4XlhrXkuIvmmK/lkKblj6/ku6Xmj5LlhaXlt6Xml7bmlbDmja7jgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAn5pys5qih5Z2X5Yqf6IO95o+S5YWl5Yiw5bel5pe2566h55CG5Lit44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAn5aaC5pyJ5pyJ5aSq5aSa5LiN5a6M5pW055qE5bel5pel77yM6K+l6YCa55+l5qih5Z2X5Lya5Y+R5Ye65ZGK6K2m44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJ+W3peaXtueuoeeQhic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICflt6Xml7bnrqHnkIbnvJbovpHjgIInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJ+W3peaXtueuoeeQhuamguiniOOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJ+W3peaXtueuoeeQhuaKpeWRiuOAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAn5bel5pe2566h55CG6K6+572u44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJ+W3peaXtueuoeeQhuafpeeci+OAgic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAn5bel5pe2566h55CG44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJ+WcqOS4gOS6m+a0u+WKqOWHj+WwkeW3peS9nOWwj+aXtuaVsOeahOaXtuWAmeS9v+eUqO+8iOWmgu+8muWPquiKsei0ueS6huS4gOWNiueahOW3ruaXheaXtumXtO+8jOWImUtleT0+5beu5peF77ybQ29udGVudD0+NTDvvInjgIInOwoKCiAgICBwdXNoIEB7ICRTZWxmLT57SmF2YVNjcmlwdFN0cmluZ3N9IC8vIFtdIH0sICgKICAgICdDYW5jZWwnLAogICAgJ0NvbmZpcm0gaW5zZXJ0JywKICAgICdEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5JywKICAgICdNYXNzIEVudHJ5JywKICAgICdObycsCiAgICAnUGxlYXNlIGNob29zZSBhIHJlYXNvbiBmb3IgYWJzZW5jZSEnLAogICAgJ1BsZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIGRheSEnLAogICAgJ1N1Ym1pdCcsCiAgICAnWWVzJywKICAgICk7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OnpoX1RXX1RpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5Pyd9ID0KICAgICAgICAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nRWRpdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIFJlY29yZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyB0byBzZXR0aW5ncyd9ID0gJ+WJjeW+gOioreWumic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXRlIE5hdmlnYXRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyB3aXRob3V0IGVudHJpZXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VsZWN0IGFsbCBkYXlzJ30gPSAn6YG45Y+W5omA5pyJ5pel5a2QJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01hc3MgZW50cnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSB0aGUgcmVhc29uIGZvciB5b3VyIGFic2VuY2UgZm9yIHRoZSBzZWxlY3RlZCBkYXlzJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gdmFjYXRpb24nfSA9ICfkvJHlgYcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT24gc2ljayBsZWF2ZSd9ID0gJ+eXheWBhyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPbiBvdmVydGltZSBsZWF2ZSd9ID0gJ+i2heaZguW3peS9nOijnOWBhyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgIioiLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcm9qZWN0J30gPSAn6aCF55uuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2snfSA9ICflt6XkvZwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYXJrJ30gPSAn5YKZ6Ki7JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhZGQgYSByZW1hcmsgd2l0aCBtb3JlIHRoYW4gOCBjaGFyYWN0ZXJzISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eycyNDowMCBpcyBvbmx5IHBlcm1pdHRlZCBhcyBlbmQgdGltZS4nfSA9ICcyNDowMCDlj6rlrrnoqLHmlrzoqK3lrprntZDmnZ/mmYLplpMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4nfSA9ICfnhKHmlYjnmoTmmYLplpMhIOS4gOaXpeWPquaciTI05bCP5pmC44CCJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuZCB0aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnQgdGltZS4nfSA9ICfntZDmnZ/mmYLplpPlv4XpoIjlnKjplovlp4vmmYLplpPkuYvlvownOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkLiBFbmQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW52YWxpZCBwZXJpb2QhIEEgZGF5IGhhcyBvbmx5IDI0IGhvdXJzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIHZhbGlkIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBvbmUgcm93J30gPSAn5re75Yqg5LiA6KGMJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiBvdmVydGltZSBsZWF2ZT8nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSByZXBvcnRpbmcgbW9udGhseSBvdmVydmlldyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAoSG91cnMpJ30gPSAn6LaF5pmCICjlsI/mmYIpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J092ZXJ0aW1lICh0aGlzIG1vbnRoKSd9ID0gJ+i2heaZgiAo5q2k5pyIKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydPdmVydGltZSAodG90YWwpJ30gPSAn6LaF5pmCICjnuL3oqIgpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlbWFpbmluZyBvdmVydGltZSBsZWF2ZSd9ID0gJ+mkmOS4i+eahOi2heaZguW3peS9nOijnOWBhyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiAoRGF5cyknfSA9ICfkvJHlgYcgKOaXpSknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24gdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAn5bey5o+Q5Lqk55qE5LyR5YGHICjmraTmnIgpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZhY2F0aW9uIHRha2VuICh0b3RhbCknfSA9ICflt7Lmj5DkuqTnmoTkvJHlgYcgKOe4veioiCknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVtYWluaW5nIHZhY2F0aW9uJ30gPSAn6aSY5LiL55qE5LyR5YGHJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgTGVhdmUgKERheXMpJ30gPSAn55eF5YGHICjml6UpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpJ30gPSAn5bey5pS+55qE55eF5YGHICjmraTmnIgpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NpY2sgbGVhdmUgdGFrZW4gKHRvdGFsKSd9ID0gJ+W3suaUvueahOeXheWBhyAo57i96KiIKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQcmV2aW91cyBtb250aCd9ID0gJ+S4iuaciCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IG1vbnRoJ30gPSAn5LiL5pyIJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1dlZWtkYXknfSA9ICflubPml6UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnV29ya2luZyBIb3Vycyd9ID0gJ+W3peS9nOaZgumWkyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUb3RhbCB3b3JrZWQgaG91cnMnfSA9ICflt6XkvZzmmYLplpPnuL3oqIgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlclwncyBwcm9qZWN0IG92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hvdXJzIChtb250aGx5KSd9ID0gJ+Wwj+aZgiAo5q+P5pyIKSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIb3VycyAoTGlmZXRpbWUpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyYW5kIHRvdGFsJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIHJlcG9ydGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNb250aCBOYXZpZ2F0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIHRvIGRhdGUnfSA9ICfliY3lvoDml6XmnJ8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciByZXBvcnRzJ30gPSAn55So5oi25aCx5ZGKJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01vbnRobHkgdG90YWwnfSA9ICfmr4/mnIjnuL3oqIgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGlmZXRpbWUgdG90YWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUgbGVhdmUnfSA9ICfotoXmmYLlt6XkvZzoo5zlgYcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVmFjYXRpb24nfSA9ICfkvJHlgYcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2ljayBsZWF2ZSd9ID0gJ+eXheWBhyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWYWNhdGlvbiByZW1haW5pbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnRzJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nUHJvamVjdAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCByZXBvcnQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0N1cnJlbnRseSBhbGwgdGltZSBhY2NvdW50aW5nIHVzZXJzIGFyZSBzaG93bi4gVG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IsIHBsZWFzZSB1cGRhdGUgc2V0dGluZzonfSA9CiAgICAgICAgJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHByb2plY3QnfSA9ICfmt7vliqDpoIXnm64nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gdG8gc2V0dGluZ3Mgb3ZlcnZpZXcnfSA9ICfliY3lvoDoqK3lrprmpoLms4EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFByb2plY3QnfSA9ICfmt7vliqDpoIXnm64nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBQcm9qZWN0IFNldHRpbmdzJ30gPSAn57eo6Lyv6aCF55uu6Kit5a6aJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIHRhc2snfSA9ICfmt7vliqDlt6XkvZwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBwZXJpb2RzIGNhbiBub3QgYmUgZGVsZXRlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBMaXN0J30gPSAn6aCF55uu5YiX6KGoJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Rhc2sgTGlzdCd9ID0gJ+W3peS9nOWIl+ihqCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgVGFzayd9ID0gJ+a3u+WKoOW3peS9nCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFRhc2sgU2V0dGluZ3MnfSA9ICfnt6jovK/lt6XkvZzoqK3lrponOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlcmUgaXMgYWxyZWFkeSBhIHRhc2sgd2l0aCB0aGlzIG5hbWUuIFBsZWFzZSwgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIExpc3QnfSA9ICfnlKjmiLbliJfooagnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVXNlciBTZXR0aW5ncyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2VlIG92ZXJ0aW1lcyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IE92ZXJ0aW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgaXMgYWxsb3dlZCB0byBjcmVhdGUgcHJvamVjdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgcHJvamVjdCBjcmVhdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIGlzIGFsbG93ZWQgdG8gc2tpcCB0aW1lIGFjY291bnRpbmcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsb3cgdGltZSBhY2NvdW50aW5nIHNraXBwaW5nJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoaXMgb3B0aW9uIGlzIHNlbGVjdGVkLCB0aW1lIGFjY291bnRpbmcgaXMgZWZmZWN0aXZlbHkgb3B0aW9uYWwgZm9yIHRoZSB1c2VyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXJlIHdpbGwgYmUgbm8gd2FybmluZ3MgYWJvdXQgbWlzc2luZyBlbnRyaWVzIGFuZCBubyBlbnRyeSBlbmZvcmNlbWVudC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIFNwYW5zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBCZWdpbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQZXJpb2QgRW5kJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgb2YgVmFjYXRpb24nfSA9ICfkvJHlgYfml6XmlbgnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSG91cnMgcGVyIFdlZWsnfSA9ICflsI/mmYIv5q+P6YCxJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0F1dGhvcml6ZWQgT3ZlcnRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhcnQgRGF0ZSd9ID0gJ+mWi+Wni+aZgumWkyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgZGF0ZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5kIERhdGUnfSA9ICfntZDmnZ/mmYLplpMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGVhdmUgRGF5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydXZWVrbHkgSG91cnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnRpbWUnfSA9ICfotoXmmYLlt6XkvZwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2RzIGZvdW5kLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgdGltZSBwZXJpb2QnfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50VGltZUFjY291bnRpbmdWaWV3CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3IFRpbWUgUmVjb3JkJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZpZXcgb2YgJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ByZXZpb3VzIGRheSd9ID0gJ+WJjeS4gOWkqSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOZXh0IGRheSd9ID0gJ+S4i+S4gOWkqSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBkYXRhIGZvdW5kIGZvciB0aGlzIGRheS4nfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdFZGl0LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0xhc3QgUHJvamVjdHMnfSA9ICfmnIDlvoznmoTpoIXnm64nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBkZWxldGUgV29ya2luZyBVbml0cyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0J30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSBXb3JraW5nIERheXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bCBpbnNlcnQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Vycm9yIHdoaWxlIGluc2VydGluZyBtdWx0aXBsZSBkYXRlcyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VjY2Vzc2Z1bGx5IGluc2VydGVkIGVudHJpZXMgZm9yIHNldmVyYWwgZGF0ZXMhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VudGVyZWQgZGF0ZSB3YXMgaW52YWxpZCEgRGF0ZSB3YXMgY2hhbmdlZCB0byB0b2RheS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBjb250YWN0IHRoZSB0aW1lIGFjY291bnRpbmcgYWRtaW5pc3RyYXRvciB0byB1cGRhdGUgeW91ciB0aW1lIHBlcmlvZHMhJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTGFzdCBTZWxlY3RlZCBQcm9qZWN0cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgUHJvamVjdHMnfSA9ICfmiYDmnInpoIXnm64nOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdSZXBvcnRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyBQcm9qZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcG9ydGluZyd9ID0gJ+WgseWRiic7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL01vZHVsZXMvQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCBhZGRlZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHJvamVjdCB1cGRhdGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIGFkZGVkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUYXNrIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBVc2VySUQgaXMgbm90IHZhbGlkISd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3QgaW5zZXJ0IHVzZXIgZGF0YSEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVW5hYmxlIHRvIGFkZCB0aW1lIHBlcmlvZCEnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2V0dGluZyd9ID0gJ+ioree9ric7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydVc2VyIHVwZGF0ZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1VzZXIgYWRkZWQhJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBhIHVzZXIgdG8gdGltZSBhY2NvdW50aW5nLi4uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05ldyBVc2VyJ30gPSAn5paw55So5oi2JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BlcmlvZCBTdGF0dXMnfSA9ICcnOwoKICAgICMgUGVybCBNb2R1bGU6IEtlcm5lbC9Nb2R1bGVzL0FnZW50VGltZUFjY291bnRpbmdWaWV3LnBtCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWaWV3OiBOZWVkICVzISd9ID0gJyc7CgogICAgIyBQZXJsIE1vZHVsZTogS2VybmVsL091dHB1dC9IVE1ML05vdGlmaWNhdGlvbi9UaW1lQWNjb3VudGluZy5wbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGluc2VydCB5b3VyIHdvcmtpbmcgaG91cnMhJ30gPSAnJzsKCiAgICAjIFBlcmwgTW9kdWxlOiBLZXJuZWwvT3V0cHV0L0hUTUwvVG9vbEJhci9JbmNvbXBsZXRlV29ya2luZ0RheXMucG0KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUgd29ya2luZyBkYXlzJ30gPSAnJzsKCiAgICAjIEpTIEZpbGU6IFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5ISd9ID0gJ+iri+mBuOWPluiHs+WwkeS4gOWkqSEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWFzcyBFbnRyeSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlISd9ID0gJ+iri+mBuOaTh+e8uuW4reWOn+WboCEnOwoKICAgICMgSlMgRmlsZTogVGltZUFjY291bnRpbmcuQWdlbnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29uZmlybSBpbnNlcnQnfSA9ICfnorroqo3mj5LlhaUnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZ2VudCBpbnRlcmZhY2Ugbm90aWZpY2F0aW9uIG1vZHVsZSB0byBzZWUgdGhlIG51bWJlciBvZiBpbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBmb3IgdGhlIHVzZXIuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgYWN0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBuYW1lIGZvciBuZXcgcHJvamVjdHMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBlbmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2V0dGluZyBmb3IgZGF0ZSBzdGFydC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBkZXNjcmlwdGlvbi4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZXR0aW5nIGZvciBsZWF2ZSBkYXlzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIG92ZXJ0aW1lLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNldHRpbmcgZm9yIHRoZSBzdGFuZGFyZCB3ZWVrbHkgaG91cnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3RhdHVzIGZvciBuZXcgYWN0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyBwcm9qZWN0cy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdGF0dXMgZm9yIG5ldyB1c2Vycy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgcHJvamVjdHMgZm9yIHdoaWNoIGEgcmVtYXJrIGlzIHJlcXVpcmVkLiBJZiB0aGUgUmVnRXhwIG1hdGNoZXMgb24gdGhlIHByb2plY3QsIHlvdSBoYXZlIHRvIGluc2VydCBhIHJlbWFyayB0b28uIFRoZSBSZWdFeHAgdXNlIHRoZSBzbXggcGFyYW1ldGVyLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGVybWluZXMgaWYgdGhlIHN0YXRpc3RpY3MgbW9kdWxlIG1heSBnZW5lcmF0ZSB0aW1lIGFjY291bnRpbmcgaW5mb3JtYXRpb24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCB0aW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgdGltZSByZWNvcmQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ZvciBob3cgbWFueSBkYXlzIGFnbyB5b3UgY2FuIGluc2VydCB3b3JraW5nIHVuaXRzLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCBvbmx5IHVzZXJzIHRoYXQgaGFzIGFkZGVkIHdvcmtpbmcgdGltZSB0byB0aGUgc2VsZWN0ZWQgcHJvamVjdCBhcmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGRyb3Bkb3duIGVsZW1lbnRzIGluIHRoZSBlZGl0IHNjcmVlbiBhcmUgY2hhbmdlZCB0byBtb2Rlcm5pemVkIGF1dG9jb21wbGV0aW9uIGZpZWxkcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgZmlsdGVyIGZvciB0aGUgcHJldmlvdXMgcHJvamVjdHMgY2FuIGJlIHVzZWQgaW5zdGVhZCB0d28gbGlzdCBvZiBwcm9qZWN0cyAobGFzdCBhbmQgYWxsIG9uZXMpLiBJdCBjb3VsZCBiZSB1c2VkIG9ubHkgaWYgVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIGlzIGVuYWJsZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgZW5hYmxlZCwgdGhlIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzIGlzIGFjdGl2ZSBieSBkZWZhdWx0IGlmIHRoZXJlIGFyZSB0aGUgcHJldmlvdXMgcHJvamVjdHMuIEl0IGNvdWxkIGJlIHVzZWQgb25seSBpZiBFbmFibGVBdXRvQ29tcGxldGlvbiBhbmQgVGltZUFjY291bnRpbmc6OlVzZUZpbHRlciBhcmUgZW5hYmxlZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiBlbmFibGVkLCB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVudGVyICJvbiB2YWNhdGlvbiBsZWF2ZSIsICJvbiBzaWNrIGxlYXZlIiBhbmQgIm9uIG92ZXJ0aW1lIGxlYXZlIiB0byBtdWx0aXBsZSBkYXRlcyBhdCBvbmNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyBhZnRlciB3aGljaCB0aGUgd29ya2luZyB1bml0cyBoYXZlIHRvIGJlIGluc2VydGVkLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heGltdW0gbnVtYmVyIG9mIHdvcmtpbmcgZGF5cyB3aXRob3V0IHdvcmtpbmcgdW5pdHMgZW50cnkgYWZ0ZXIgd2hpY2ggYSB3YXJuaW5nIHdpbGwgYmUgc2hvd24uJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnT3ZlcnZpZXcuJ30gPSAn5qaC5rOBJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Byb2plY3QgdGltZSByZXBvcnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIGNvbnN0cmFpbmluZyBhY3Rpb24gbGlzdCBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdC4gS2V5IGNvbnRhaW5zIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgcHJvamVjdChzKSwgY29udGVudCBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBhY3Rpb24ocykuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVndWxhciBleHByZXNzaW9ucyBmb3IgY29uc3RyYWluaW5nIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gdXNlciBncm91cHMuIEtleSBjb250YWlucyByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHByb2plY3QocyksIGNvbnRlbnQgY29udGFpbnMgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NwZWNpZmllcyBpZiB3b3JraW5nIGhvdXJzIGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHN0YXJ0IGFuZCBlbmQgdGltZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBtb2R1bGUgZm9yY2VzIGluc2VydHMgaW4gVGltZUFjY291bnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgbm90aWZpY2F0aW9uIG1vZHVsZSBnaXZlcyBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGluY29tcGxldGUgd29ya2luZyBkYXlzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgQWNjb3VudGluZyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgZWRpdC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGltZSBhY2NvdW50aW5nIG92ZXJ2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgcmVwb3J0aW5nLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcgc2V0dGluZ3MuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgYWNjb3VudGluZyB2aWV3Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaW1lIGFjY291bnRpbmcuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RvIHVzZSBpZiBzb21lIGFjdGlvbnMgcmVkdWNlZCB0aGUgd29ya2luZyBob3VycyAoZm9yIGV4YW1wbGUsIGlmIG9ubHkgaGFsZiBvZiB0aGUgdHJhdmVsaW5nIHRpbWUgaXMgcGFpZCBLZXkgPT4gdHJhdmVsaW5nOyBDb250ZW50ID0+IDUwKS4nfSA9CiAgICAgICAgJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgJ0NhbmNlbCcsCiAgICAnQ29uZmlybSBpbnNlcnQnLAogICAgJ0RlbGV0ZSBUaW1lIEFjY291bnRpbmcgRW50cnknLAogICAgJ01hc3MgRW50cnknLAogICAgJ05vJywKICAgICdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScsCiAgICAnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScsCiAgICAnU3VibWl0JywKICAgICdZZXMnLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWdlbnRUaW1lQWNjb3VudGluZ0VkaXQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoSXNBcnJheVJlZldpdGhEYXRhKTsKdXNlIEtlcm5lbDo6TGFuZ3VhZ2UgcXcoVHJhbnNsYXRhYmxlKTsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CgogICAgJFNlbGYtPntUaW1lWm9uZX0gPSAkUGFyYW17VGltZVpvbmV9CiAgICAgICAgfHwgJFBhcmFte1VzZXJUaW1lWm9uZX0KICAgICAgICB8fCAkRGF0ZVRpbWVPYmplY3QtPk9UUlNUaW1lWm9uZUdldCgpOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFByZVJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgcGVybWlzc2lvbiBjaGVjawogICAgcmV0dXJuIDEgaWYgISRTZWxmLT57QWNjZXNzUm99OwoKICAgIG15ICREYXRlVGltZU9iamVjdEN1cnJlbnQgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKCdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnKTsKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICBteSAoICRTZWMsICRNaW4sICRIb3VyLCAkRGF5LCAkTW9udGgsICRZZWFyICkgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICBTeXN0ZW1UaW1lID0+ICREYXRlVGltZU9iamVjdEN1cnJlbnQtPlRvRXBvY2goKSwKICAgICk7CgogICAgbXkgJVVzZXIgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJDdXJyZW50UGVyaW9kR2V0KAogICAgICAgIFllYXIgID0+ICRZZWFyLAogICAgICAgIE1vbnRoID0+ICRNb250aCwKICAgICAgICBEYXkgICA9PiAkRGF5LAogICAgKTsKCiAgICByZXR1cm4gaWYgISRVc2VyeyAkU2VsZi0+e1VzZXJJRH0gfTsKCiAgICBteSAlSW5jb21wbGV0ZVdvcmtpbmdEYXlzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNDb21wbGV0bmVzc0NoZWNrKAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgcmVkaXJlY3QgaWYgaW5jb21wbGV0ZSB3b3JraW5nIGRheSBhcmUgb3V0IG9mIHJhbmdlCiAgICBpZiAoCiAgICAgICAgJEluY29tcGxldGVXb3JraW5nRGF5c3tFbmZvcmNlSW5zZXJ0fQogICAgICAgICYmICRTZWxmLT57QWN0aW9ufSBuZSAnQWdlbnRUaW1lQWNjb3VudGluZ0VkaXQnCiAgICAgICAgJiYgJFNlbGYtPntBY3Rpb259ICF+IC9BZ2VudFRpbWVBY2NvdW50aW5nLwogICAgICAgICkKICAgIHsKCiAgICAgICAgcmV0dXJuICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKS0+UmVkaXJlY3QoCiAgICAgICAgICAgIE9QID0+ICdBY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ0VkaXQnLAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgQE1vbnRoQXJyYXkgPSAoCiAgICAgICAgJycsICAgICAnSmFudWFyeScsICdGZWJydWFyeScsICdNYXJjaCcsICAgICAnQXByaWwnLCAgICdNYXknLAogICAgICAgICdKdW5lJywgJ0p1bHknLCAgICAnQXVndXN0JywgICAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLAogICAgICAgICdEZWNlbWJlcicsCiAgICApOwogICAgbXkgQFdlZWtkYXlBcnJheSA9ICggJ01vbicsICdUdWUnLCAnV2VkJywgJ1RodScsICdGcmknLCAnU2F0JywgJ1N1bicsICk7CgogICAgIyBnZXQgbmVlZGVkIG9iamVjdHMKICAgIG15ICRQYXJhbU9iamVjdCAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CiAgICBteSAkTGF5b3V0T2JqZWN0ICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwogICAgbXkgJERhdGVUaW1lT2JqZWN0Q3VycmVudCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpOwoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIHNob3cgY29uZmlybWF0aW9uIGRpYWxvZyB0byBkZWxldGUgdGhlIGVudHJ5IG9mIHRoaXMgZGF5CiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgaWYgKCAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnRGVsZXRlRGlhbG9nJyApICkgewoKICAgICAgICBteSAoICRTZWMsICRNaW4sICRIb3VyLCAkRGF5LCAkTW9udGgsICRZZWFyICkgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICAgICAgU3lzdGVtVGltZSA9PiAkRGF0ZVRpbWVPYmplY3RDdXJyZW50LT5Ub0Vwb2NoKCksCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgcGFyYW1zCiAgICAgICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KFN0YXR1cyBZZWFyIE1vbnRoIERheSkpIHsKICAgICAgICAgICAgJFBhcmFteyRQYXJhbWV0ZXJ9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtZXRlciApOwogICAgICAgIH0KCiAgICAgICAgIyBDaGVjayBEYXRlCiAgICAgICAgaWYgKCAhJFBhcmFte1llYXJ9IHx8ICEkUGFyYW17TW9udGh9IHx8ICEkUGFyYW17RGF5fSApIHsKICAgICAgICAgICAgJFBhcmFte1llYXJ9ICA9ICRZZWFyOwogICAgICAgICAgICAkUGFyYW17TW9udGh9ID0gJE1vbnRoOwogICAgICAgICAgICAkUGFyYW17RGF5fSAgID0gJERheTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRQYXJhbXtZZWFyfSAgPSBzcHJpbnRmKCAiJTAyZCIsICRQYXJhbXtZZWFyfSApOwogICAgICAgICAgICAkUGFyYW17TW9udGh9ID0gc3ByaW50ZiggIiUwMmQiLCAkUGFyYW17TW9udGh9ICk7CiAgICAgICAgICAgICRQYXJhbXtEYXl9ICAgPSBzcHJpbnRmKCAiJTAyZCIsICRQYXJhbXtEYXl9ICk7CiAgICAgICAgfQoKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4geyVQYXJhbX0sCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ0RlbGV0ZScsCiAgICAgICAgKTsKCiAgICAgICAgIyBidWlsZCB0aGUgcmV0dXJuZWQgZGF0YSBzdHJ1Y3R1cmUKICAgICAgICBteSAlRGF0YSA9ICgKICAgICAgICAgICAgSFRNTCAgICAgICA9PiAkT3V0cHV0LAogICAgICAgICAgICBEaWFsb2dUeXBlID0+ICdDb25maXJtYXRpb24nLAogICAgICAgICk7CgogICAgICAgICMgcmV0dXJuIEpTT04tU3RyaW5nIGJlY2F1c2Ugb2YgQUpBWC1Nb2RlCiAgICAgICAgbXkgJE91dHB1dEpTT04gPSAkTGF5b3V0T2JqZWN0LT5KU09ORW5jb2RlKAogICAgICAgICAgICBEYXRhID0+IFwlRGF0YSwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+QXR0YWNobWVudCgKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9JyAuICRMYXlvdXRPYmplY3QtPntDaGFyc2V0fSwKICAgICAgICAgICAgQ29udGVudCAgICAgPT4gJE91dHB1dEpTT04sCiAgICAgICAgICAgIFR5cGUgICAgICAgID0+ICdpbmxpbmUnLAogICAgICAgICAgICBOb0NhY2hlICAgICA9PiAxLAogICAgICAgICk7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgZGVsZXRlIG9iamVjdCBmcm9tIGRhdGFiYXNlCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0RlbGV0ZScgKSB7CiAgICAgICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KERheSBNb250aCBZZWFyKSkgewogICAgICAgICAgICAkUGFyYW17JFBhcmFtZXRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyICk7CiAgICAgICAgfQoKICAgICAgICBpZiAoICEkU2VsZi0+e0FjY2Vzc1JvfSApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBpZiAoCiAgICAgICAgICAgICEkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0RlbGV0ZSgKICAgICAgICAgICAgICAgIFllYXIgICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgICAgICAgICBNb250aCAgPT4gJFBhcmFte01vbnRofSwKICAgICAgICAgICAgICAgIERheSAgICA9PiAkUGFyYW17RGF5fSwKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgIHsKCiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigpOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICBPUCA9PgogICAgICAgICAgICAgICAgIkFjdGlvbj0kU2VsZi0+e0FjdGlvbn07WWVhcj0kUGFyYW17WWVhcn07TW9udGg9JFBhcmFte01vbnRofTtEYXk9JFBhcmFte0RheX0iLAogICAgICAgICk7CiAgICB9CgogICAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBtYXNzIGVudHJ5CiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ01hc3NFbnRyeScgKSB7CgogICAgICAgICMgcGVybWlzc2lvbiBjaGVjawogICAgICAgIGlmICggISRTZWxmLT57QWNjZXNzUm99ICkgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Tm9QZXJtaXNzaW9uKAogICAgICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgZ2V0IHBhcmFtcwogICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhEYXRlcyBMZWF2ZURheSBTaWNrIE92ZXJ0aW1lKSkgewogICAgICAgICAgICAkUGFyYW17JFBhcmFtZXRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyICkgfHwgJyc7CiAgICAgICAgfQoKICAgICAgICAjIHNwbGl0IHVwIGRhdGVzCiAgICAgICAgbXkgQERhdGVzICAgICAgID0gc3BsaXQgL1t8XS8sICRQYXJhbXtEYXRlc307CiAgICAgICAgbXkgJEluc2VydEVycm9yID0gMDsKCiAgICAgICAgIyBzYXZlIGVudHJpZXMgaW4gdGhlIGRiCiAgICAgICAgZm9yIG15ICREYXRlIChARGF0ZXMpIHsKCiAgICAgICAgICAgIG15ICggJFllYXIsICRNb250aCwgJERheSApID0gc3BsaXQgL1stXS8sICREYXRlOwoKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgISRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzSW5zZXJ0KAogICAgICAgICAgICAgICAgICAgIFllYXIgICAgID0+ICRZZWFyLAogICAgICAgICAgICAgICAgICAgIE1vbnRoICAgID0+ICRNb250aCwKICAgICAgICAgICAgICAgICAgICBEYXkgICAgICA9PiAkRGF5LAogICAgICAgICAgICAgICAgICAgIExlYXZlRGF5ID0+ICRQYXJhbXtMZWF2ZURheX0gfHwgMCwKICAgICAgICAgICAgICAgICAgICBTaWNrICAgICA9PiAkUGFyYW17U2lja30gfHwgMCwKICAgICAgICAgICAgICAgICAgICBPdmVydGltZSA9PiAkUGFyYW17T3ZlcnRpbWV9IHx8IDAsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAkSW5zZXJ0RXJyb3IgPSAxOwogICAgICAgICAgICB9CgogICAgICAgIH0KCiAgICAgICAgIyByZWRpcmVjdCB0byBlZGl0IHNjcmVlbiB3aXRoIGxvZyBtZXNzYWdlCiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICBPUCA9PiAnQWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdFZGl0O05vdGlmaWNhdGlvbj0nCiAgICAgICAgICAgICAgICAuICggJEluc2VydEVycm9yID8gJ0Vycm9yJyA6ICdTdWNjZXNzZnVsJyApLAogICAgICAgICk7CgogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGVkaXQgdGhlIHRpbWUgYWNjb3VudGluZyBlbGVtZW50cwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKCiAgICAjIHBlcm1pc3Npb24gY2hlY2sKICAgIGlmICggISRTZWxmLT57QWNjZXNzUm99ICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Ob1Blcm1pc3Npb24oCiAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCBwYXJhbXMKICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhTdGF0dXMgWWVhciBNb250aCBEYXkgTm90aWZpY2F0aW9uKSkgewogICAgICAgICRQYXJhbXskUGFyYW1ldGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgKSB8fCAnJzsKICAgIH0KICAgICRQYXJhbXtSZWNvcmRzTnVtYmVyfSAgICAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1JlY29yZHNOdW1iZXInICkgfHwgODsKICAgICRQYXJhbXtJbnNlcnRXb3JraW5nVW5pdHN9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0luc2VydFdvcmtpbmdVbml0cycgKTsKCiAgICBteSAoICRTZWMsICRNaW4sICRIb3VyLCAkRGF5LCAkTW9udGgsICRZZWFyICkgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICBTeXN0ZW1UaW1lID0+ICREYXRlVGltZU9iamVjdEN1cnJlbnQtPlRvRXBvY2goKSwKICAgICk7CgogICAgIyBDaGVjayBEYXRlCiAgICBpZiAoICEkUGFyYW17WWVhcn0gfHwgISRQYXJhbXtNb250aH0gfHwgISRQYXJhbXtEYXl9ICkgewogICAgICAgICRQYXJhbXtZZWFyfSAgPSAkWWVhcjsKICAgICAgICAkUGFyYW17TW9udGh9ID0gJE1vbnRoOwogICAgICAgICRQYXJhbXtEYXl9ICAgPSAkRGF5OwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJFBhcmFte1llYXJ9ICA9IHNwcmludGYoICIlMDJkIiwgJFBhcmFte1llYXJ9ICk7CiAgICAgICAgJFBhcmFte01vbnRofSA9IHNwcmludGYoICIlMDJkIiwgJFBhcmFte01vbnRofSApOwogICAgICAgICRQYXJhbXtEYXl9ICAgPSBzcHJpbnRmKCAiJTAyZCIsICRQYXJhbXtEYXl9ICk7CiAgICB9CgogICAgIyBjaGVjayBpZiB0aGUgZ2l2ZW4gZGF0ZSBpcyBhIHZhbGlkIGRhdGUKICAgICMgaWYgbm90IHZhbGlkLCBzZXQgdGhlIGRhdGUgdG8gdG9kYXkKICAgIG15ICREYXRlVGltZVZhbGlkID0gJERhdGVUaW1lT2JqZWN0Q3VycmVudC0+VmFsaWRhdGUoCiAgICAgICAgWWVhciAgICAgPT4gJFBhcmFte1llYXJ9LAogICAgICAgIE1vbnRoICAgID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgRGF5ICAgICAgPT4gJFBhcmFte0RheX0sCiAgICAgICAgSG91ciAgICAgPT4gMCwKICAgICAgICBNaW51dGUgICA9PiAwLAogICAgICAgIFNlY29uZCAgID0+IDAsCiAgICAgICAgVGltZVpvbmUgPT4gJ1VUQycsCiAgICApOwoKICAgIGlmICggISREYXRlVGltZVZhbGlkICkgewogICAgICAgICRQYXJhbXtZZWFyfSAgICAgICAgPSAkWWVhcjsKICAgICAgICAkUGFyYW17TW9udGh9ICAgICAgID0gJE1vbnRoOwogICAgICAgICRQYXJhbXtEYXl9ICAgICAgICAgPSAkRGF5OwogICAgICAgICRQYXJhbXsnV3JvbmdEYXRlJ30gPSAxOwogICAgfQoKICAgIG15ICVVc2VyID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyQ3VycmVudFBlcmlvZEdldCgKICAgICAgICBZZWFyICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgTW9udGggPT4gJFBhcmFte01vbnRofSwKICAgICAgICBEYXkgICA9PiAkUGFyYW17RGF5fSwKICAgICk7CgogICAgIyBmb3IgaW5pdGlhbCB1c2UsIHRoZSBmaXJzdCBhZ2VudCB3aXRoIHJ3LXJpZ2h0IHdpbGwgYmUgcmVkaXJlY3RlZAogICAgIyB0byAnU2V0dGluZycsIHNvIGhlIGNhbiBkbyB0aGUgaW5pdGlhbCBzZXR0aW5ncwogICAgaWYgKCAhJFVzZXJ7ICRTZWxmLT57VXNlcklEfSB9ICkgewogICAgICAgIHJldHVybiAkU2VsZi0+X0ZpcnN0VXNlclJlZGlyZWN0KCk7CiAgICB9CgogICAgbXkgJUluY29tcGxldGVXb3JraW5nRGF5cyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzQ29tcGxldG5lc3NDaGVjaygKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICBteSAkTWF4QWxsb3dlZEluc2VydERheXMgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpNYXhBbGxvd2VkSW5zZXJ0RGF5cycpIHx8ICcxMCc7CiAgICAoICRQYXJhbXtZZWFyQWxsb3dlZH0sICRQYXJhbXtNb250aEFsbG93ZWR9LCAkUGFyYW17RGF5QWxsb3dlZH0gKQogICAgICAgID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BZGREZWx0YVlNRCggJFllYXIsICRNb250aCwgJERheSwgMCwgMCwgLSRNYXhBbGxvd2VkSW5zZXJ0RGF5cyApOwoKICAgIG15ICREYXRlVGltZU9iamVjdEdpdmVuID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICBZZWFyICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgICAgIE1vbnRoID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgICAgIERheSAgID0+ICRQYXJhbXtEYXl9LAogICAgICAgIH0KICAgICk7CgogICAgbXkgJERhdGVUaW1lT2JqZWN0QWxsb3dlZCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgWWVhciAgPT4gJFBhcmFte1llYXJBbGxvd2VkfSwKICAgICAgICAgICAgTW9udGggPT4gJFBhcmFte01vbnRoQWxsb3dlZH0sCiAgICAgICAgICAgIERheSAgID0+ICRQYXJhbXtEYXlBbGxvd2VkfSwKICAgICAgICB9CiAgICApOwoKICAgIGlmICggJERhdGVUaW1lT2JqZWN0R2l2ZW4tPkNvbXBhcmUoIERhdGVUaW1lT2JqZWN0ID0+ICREYXRlVGltZU9iamVjdEFsbG93ZWQgKSA8IDAgKSB7CiAgICAgICAgaWYgKCAhJEluY29tcGxldGVXb3JraW5nRGF5c3tJbmNvbXBsZXRlfXsgJFBhcmFte1llYXJ9IH17ICRQYXJhbXtNb250aH0gfXsgJFBhcmFte0RheX0gfSApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICAgICAgT1AgPT4KICAgICAgICAgICAgICAgICAgICAiQWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdWaWV3O1llYXI9JFBhcmFte1llYXJ9O01vbnRoPSRQYXJhbXtNb250aH07RGF5PSRQYXJhbXtEYXl9IiwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBzdG9yZSBsYXN0IHNjcmVlbgogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkF1dGhTZXNzaW9uJyktPlVwZGF0ZVNlc3Npb25JRCgKICAgICAgICBTZXNzaW9uSUQgPT4gJFNlbGYtPntTZXNzaW9uSUR9LAogICAgICAgIEtleSAgICAgICA9PiAnTGFzdFNjcmVlbicsCiAgICAgICAgVmFsdWUgPT4KICAgICAgICAgICAgIkFjdGlvbj0kU2VsZi0+e0FjdGlvbn07WWVhcj0kUGFyYW17WWVhcn07TW9udGg9JFBhcmFte01vbnRofTtEYXk9JFBhcmFte0RheX0iLAogICAgKTsKCiAgICAkUGFyYW17TW9udGhfdG9fVGV4dH0gPSAkTW9udGhBcnJheVsgJFBhcmFte01vbnRofSBdOwoKICAgICggJFBhcmFte1llYXJCYWNrfSwgJFBhcmFte01vbnRoQmFja30sICRQYXJhbXtEYXlCYWNrfSApCiAgICAgICAgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFkZERlbHRhWU1EKCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0sICRQYXJhbXtEYXl9LCAwLCAwLCAtMSApOwogICAgKCAkUGFyYW17WWVhck5leHR9LCAkUGFyYW17TW9udGhOZXh0fSwgJFBhcmFte0RheU5leHR9ICkKICAgICAgICA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWRkRGVsdGFZTUQoICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgJFBhcmFte0RheX0sIDAsIDAsIDEgKTsKCiAgICBteSAkUmVkdWNlVGltZVJlZiA9ICRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6OlJlZHVjZVRpbWUnKTsKCiAgICAjIGhhc2hlcyB0byBzdG9yZSBzZXJ2ZXIgc2lkZSBlcnJvcnMKICAgIG15ICVFcnJvcnMgICAgICAgICAgPSAoKTsKICAgIG15ICVTZXJ2ZXJFcnJvckRhdGEgPSAoKTsKICAgIG15ICRFcnJvckluZGV4ICAgICAgPSAxOwoKICAgIG15ICVEYXRhOwogICAgbXkgJUFjdGlvbkxpc3QgPSAkU2VsZi0+X0FjdGlvbkxpc3QoKTsKCiAgICAjIEVkaXQgV29ya2luZyBVbml0cwogICAgaWYgKCAkUGFyYW17U3RhdHVzfSApIHsKCiAgICAgICAgIyBhcnJheXMgdG8gc2F2ZSBhbGwgc3RhcnQgYW5kIGVuZCB0aW1lcyBmb3Igc29tZSBjaGVja3MKICAgICAgICBteSAoIEBTdGFydFRpbWVzLCBARW5kVGltZXMgKTsKCiAgICAgICAgIyBkZWxldGUgcHJldmlvdXMgZW50cmllcyBmb3IgdGhpcyBkYXkgYW5kIHVzZXIKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0RlbGV0ZSgKICAgICAgICAgICAgWWVhciAgID0+ICRQYXJhbXtZZWFyfSwKICAgICAgICAgICAgTW9udGggID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgICAgIERheSAgICA9PiAkUGFyYW17RGF5fSwKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICBteSAlQ2hlY2tib3hDaGVjayA9ICgpOwogICAgICAgIGZvciBteSAkRWxlbWVudCAocXcoTGVhdmVEYXkgU2ljayBPdmVydGltZSkpIHsKICAgICAgICAgICAgbXkgJFZhbHVlID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJEVsZW1lbnQgKTsKICAgICAgICAgICAgaWYgKCRWYWx1ZSkgewogICAgICAgICAgICAgICAgJENoZWNrYm94Q2hlY2t7JEVsZW1lbnR9ID0gMTsKICAgICAgICAgICAgICAgICRQYXJhbXskRWxlbWVudH0gICAgICAgICA9ICdjaGVja2VkPSJjaGVja2VkIic7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkUGFyYW17JEVsZW1lbnR9ID0gJyc7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgaWYgbW9yZSB0aGFuIG9uZSBjaGVjayBib3ggd2FzIGNoZWNrZWQgaXQgaXMgYSBzZXJ2ZXIgZXJyb3IKICAgICAgICBpZiAoIHNjYWxhciBrZXlzICVDaGVja2JveENoZWNrID4gMSApIHsKICAgICAgICAgICAgZm9yIG15ICRDaGVja2JveCAoIHNvcnQga2V5cyAlQ2hlY2tib3hDaGVjayApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7ICRDaGVja2JveCAuICdJbnZhbGlkJyB9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgaW5zZXJ0IHZhbHVlcyAoaWYgYW55KQogICAgICAgICAgICBpZiAoIHNjYWxhciBrZXlzICVDaGVja2JveENoZWNrID4gMCApIHsKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAhJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNJbnNlcnQoCiAgICAgICAgICAgICAgICAgICAgICAgIFllYXIgICAgID0+ICRQYXJhbXtZZWFyfSwKICAgICAgICAgICAgICAgICAgICAgICAgTW9udGggICAgPT4gJFBhcmFte01vbnRofSwKICAgICAgICAgICAgICAgICAgICAgICAgRGF5ICAgICAgPT4gJFBhcmFte0RheX0sCiAgICAgICAgICAgICAgICAgICAgICAgIExlYXZlRGF5ID0+ICRDaGVja2JveENoZWNre0xlYXZlRGF5fSB8fCAwLAogICAgICAgICAgICAgICAgICAgICAgICBTaWNrICAgICA9PiAkQ2hlY2tib3hDaGVja3tTaWNrfSB8fCAwLAogICAgICAgICAgICAgICAgICAgICAgICBPdmVydGltZSA9PiAkQ2hlY2tib3hDaGVja3tPdmVydGltZX0gfHwgMCwKICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnQ2FuXCd0IGluc2VydCBXb3JraW5nIFVuaXRzIScpLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkUGFyYW17U3VjY2Vzc2Z1bEluc2VydH0gPSAxOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGdldCBjaGVjayBpdGVtIG9iamVjdAogICAgICAgIG15ICRDaGVja0l0ZW1PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2hlY2tJdGVtJyk7CgogICAgICAgIElEOgogICAgICAgIGZvciBteSAkSUQgKCAxIC4uICRQYXJhbXtSZWNvcmRzTnVtYmVyfSApIHsKCiAgICAgICAgICAgICMgYXJyYXlzIHRvIHNhdmUgdGhlIHNlcnZlciBlcnJvcnMgYmxvY2sgdG8gc2hvdyB0aGUgZXJyb3IgbWVzc2FnZXMKICAgICAgICAgICAgbXkgKCBAU3RhcnRUaW1lU2VydmVyRXJyb3JCbG9jaywgQEVuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCBAUGVyaW9kU2VydmVyRXJyb3JCbG9jayApID0gKCk7CgogICAgICAgICAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoUHJvamVjdElEIEFjdGlvbklEIFJlbWFyayBTdGFydFRpbWUgRW5kVGltZSBQZXJpb2QpKSB7CiAgICAgICAgICAgICAgICAkUGFyYW17JFBhcmFtZXRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyIC4gJ1snIC4gJElEIC4gJ10nICk7CiAgICAgICAgICAgICAgICBpZiAoICRQYXJhbXskUGFyYW1ldGVyfSApIHsKICAgICAgICAgICAgICAgICAgICBteSAkUGFyYW1SZWYgPSBcJFBhcmFteyRQYXJhbWV0ZXJ9OwoKICAgICAgICAgICAgICAgICAgICAjIGRlbGV0ZSBsZWFkaW5nIGFuZCB0YWlsaW5nIHNwYWNlcwogICAgICAgICAgICAgICAgICAgICRQYXJhbVJlZiA9ICRDaGVja0l0ZW1PYmplY3QtPlN0cmluZ0NsZWFuKAogICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdSZWYgPT4gJFBhcmFtUmVmLAogICAgICAgICAgICAgICAgICAgICAgICBUcmltTGVmdCAgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgICAgVHJpbVJpZ2h0ID0+IDEsCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgbmV4dCBJRCBpZiAhJFBhcmFte1Byb2plY3RJRH0gJiYgISRQYXJhbXtBY3Rpb25JRH07CgogICAgICAgICAgICAjIGNoZWNrIGZvciBtaXNzaW5nIHZhbHVlcwogICAgICAgICAgICBpZiAoICRQYXJhbXtQcm9qZWN0SUR9ICYmICEkUGFyYW17QWN0aW9uSUR9ICkgewogICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17QWN0aW9uSURJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCAhJFBhcmFte1Byb2plY3RJRH0gJiYgJFBhcmFte0FjdGlvbklEfSApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e1Byb2plY3RJREludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBjcmVhdGUgYSB2YWxpZCBwZXJpb2QKICAgICAgICAgICAgbXkgJFBlcmlvZCA9ICRQYXJhbXtQZXJpb2R9OwogICAgICAgICAgICBpZiAoICRQZXJpb2QgPX4gL14oXGQrKSwoXGQrKS8gKSB7CiAgICAgICAgICAgICAgICAkUGVyaW9kID0gJDEgLiAiLiIgLiAkMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgI2FsbG93IGZvcm1hdCBoaDptbQogICAgICAgICAgICBlbHNpZiAoICRQYXJhbXtQZXJpb2R9ID1+IC9eKFxkKyk6KFxkKykvICkgewogICAgICAgICAgICAgICAgJFBlcmlvZCA9ICQxICsgJDIgLyA2MDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBpZiBzdGFydCBvciBlbmQgdGltZXMgYXJlIG1pc3NpbmcsIGRlbGV0ZSB0aGUgb3RoZXIgZW50cnkKICAgICAgICAgICAgaWYgKCAhJFBhcmFte1N0YXJ0VGltZX0gfHwgISRQYXJhbXtFbmRUaW1lfSApIHsKICAgICAgICAgICAgICAgICRQYXJhbXtTdGFydFRpbWV9ID0gJyc7CiAgICAgICAgICAgICAgICAkUGFyYW17RW5kVGltZX0gICA9ICcnOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGFkZCAnOjAwJyB0byB0aGUgdGltZSwgaWYgaXQgZG9lc24ndCBoYXZlIGl0IHlldAogICAgICAgICAgICBpZiAoICRQYXJhbXtTdGFydFRpbWV9ICYmICRQYXJhbXtTdGFydFRpbWV9ICF+IC9eKFxkKyk6KFxkKykkLyApIHsKICAgICAgICAgICAgICAgICRQYXJhbXtTdGFydFRpbWV9IC49ICc6MDAnOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICggJFBhcmFte0VuZFRpbWV9ICYmICRQYXJhbXtFbmRUaW1lfSAhfiAvXihcZCspOihcZCspJC8gKSB7CiAgICAgICAgICAgICAgICAkUGFyYW17RW5kVGltZX0gLj0gJzowMCc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgKCAkUGFyYW17U3RhcnRUaW1lfSA9fiAvXihcZCspOihcZCspJC8gKQogICAgICAgICAgICAgICAgJiYgKCAkUGFyYW17RW5kVGltZX0gPX4gL14oXGQrKTooXGQrKSQvICkKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJFBhcmFte1N0YXJ0VGltZX0gPX4gL14oXGQrKTooXGQrKSQvOwogICAgICAgICAgICAgICAgbXkgJFN0YXJ0VGltZSA9ICQxICogNjAgKyAkMjsKICAgICAgICAgICAgICAgICRQYXJhbXtFbmRUaW1lfSA9fiAvXihcZCspOihcZCspJC87CiAgICAgICAgICAgICAgICBteSAkRW5kVGltZSA9ICQxICogNjAgKyAkMjsKICAgICAgICAgICAgICAgIGlmICggJFJlZHVjZVRpbWVSZWYtPnsgJEFjdGlvbkxpc3R7ICRQYXJhbXtBY3Rpb25JRH0gfSB9ICkgewogICAgICAgICAgICAgICAgICAgICRQZXJpb2QgPSAoICRFbmRUaW1lIC0gJFN0YXJ0VGltZSApIC8gNjAKICAgICAgICAgICAgICAgICAgICAgICAgKiAkUmVkdWNlVGltZVJlZi0+eyAkQWN0aW9uTGlzdHsgJFBhcmFte0FjdGlvbklEfSB9IH0gLyAxMDA7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkUGVyaW9kID0gKCAkRW5kVGltZSAtICRTdGFydFRpbWUgKSAvIDYwOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgZW5kIHRpbWUgbXVzdCBiZSBhZnRlciBzdGFydCB0aW1lCiAgICAgICAgICAgICAgICBpZiAoICRFbmRUaW1lIDw9ICRTdGFydFRpbWUgKSB7CiAgICAgICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17RW5kVGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICBwdXNoIEBFbmRUaW1lU2VydmVyRXJyb3JCbG9jaywgJ0VuZFRpbWVCZWZvcmVTdGFydFRpbWVTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJFN0YXJ0VGltZXNbJElEXSA9ICRTdGFydFRpbWU7CiAgICAgICAgICAgICAgICAkRW5kVGltZXNbJElEXSAgID0gJEVuZFRpbWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBpZiAoICRQYXJhbXtTdGFydFRpbWV9ICYmICRQYXJhbXtTdGFydFRpbWV9ICF+IC9eKFxkKyk6KFxkKykkLyApIHsKICAgICAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtTdGFydFRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgcHVzaCBAU3RhcnRUaW1lU2VydmVyRXJyb3JCbG9jaywgJ1N0YXJ0VGltZUludmFsaWRGb3JtYXRTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoICRQYXJhbXtFbmRUaW1lfSAmJiAkUGFyYW17RW5kVGltZX0gIX4gL14oXGQrKTooXGQrKSQvICkgewogICAgICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e0VuZFRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgcHVzaCBARW5kVGltZVNlcnZlckVycm9yQmxvY2ssICdFbmRUaW1lSW52YWxpZEZvcm1hdFNlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBuZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQKICAgICAgICAgICAgaWYgKCAkUGFyYW17U3RhcnRUaW1lfSA9fiAvXi0oXGQrKTooXGQrKSQvICkgewogICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17U3RhcnRUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgcHVzaCBAU3RhcnRUaW1lU2VydmVyRXJyb3JCbG9jaywgJ1N0YXJ0VGltZU5lZ2F0aXZlU2VydmVyRXJyb3InOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICggJFBhcmFte0VuZFRpbWV9ID1+IC9eLShcZCspOihcZCspJC8gKSB7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtFbmRUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgcHVzaCBARW5kVGltZVNlcnZlckVycm9yQmxvY2ssICdFbmRUaW1lTmVnYXRpdmVTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgcmVwZWF0ZWQgaG91cnMgYXJlIG5vdCBhbGxvd2VkCiAgICAgICAgICAgIFBPU0lUSU9OOgogICAgICAgICAgICBmb3IgKCBteSAkUG9zaXRpb24gPSAkSUQgLSAxOyAkUG9zaXRpb24gPj0gMTsgJFBvc2l0aW9uLS0gKSB7CiAgICAgICAgICAgICAgICBuZXh0IFBPU0lUSU9OIGlmICFkZWZpbmVkICRTdGFydFRpbWVzWyRQb3NpdGlvbl07CiAgICAgICAgICAgICAgICBuZXh0IFBPU0lUSU9OIGlmICFkZWZpbmVkICRTdGFydFRpbWVzWyRJRF07CgogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICRTdGFydFRpbWVzWyRQb3NpdGlvbl0gPiAkU3RhcnRUaW1lc1skSURdCiAgICAgICAgICAgICAgICAgICAgJiYgJFN0YXJ0VGltZXNbJFBvc2l0aW9uXSA8ICRFbmRUaW1lc1skSURdCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e0VuZFRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAhZ3JlcCB7L15FbmRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3IvfSBARW5kVGltZVNlcnZlckVycm9yQmxvY2sgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHB1c2ggQEVuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCAnRW5kVGltZVJlcGVhdGVkSG91clNlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICRFbmRUaW1lc1skUG9zaXRpb25dID4gJFN0YXJ0VGltZXNbJElEXQogICAgICAgICAgICAgICAgICAgICYmICRFbmRUaW1lc1skUG9zaXRpb25dIDwgJEVuZFRpbWVzWyRJRF0KICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAkRW5kVGltZXNbJElEXSA+ICRFbmRUaW1lc1skUG9zaXRpb25dICkgewogICAgICAgICAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtTdGFydFRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICFncmVwIHsvXlN0YXJ0VGltZVJlcGVhdGVkSG91clNlcnZlckVycm9yJC99CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAU3RhcnRUaW1lU2VydmVyRXJyb3JCbG9jawogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoIEBTdGFydFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCAnU3RhcnRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtFbmRUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoICFncmVwIHsvXkVuZFRpbWVSZXBlYXRlZEhvdXJTZXJ2ZXJFcnJvciQvfSBARW5kVGltZVNlcnZlckVycm9yQmxvY2sgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoIEBFbmRUaW1lU2VydmVyRXJyb3JCbG9jaywgJ0VuZFRpbWVSZXBlYXRlZEhvdXJTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCAkU3RhcnRUaW1lc1skUG9zaXRpb25dID09ICRTdGFydFRpbWVzWyRJRF0gKSB7CiAgICAgICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17U3RhcnRUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgIGlmICggIWdyZXAgey9eU3RhcnRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3IkL30gQFN0YXJ0VGltZVNlcnZlckVycm9yQmxvY2sgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHB1c2ggQFN0YXJ0VGltZVNlcnZlckVycm9yQmxvY2ssICdTdGFydFRpbWVSZXBlYXRlZEhvdXJTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICggJEVuZFRpbWVzWyRQb3NpdGlvbl0gPT0gJEVuZFRpbWVzWyRJRF0gKSB7CiAgICAgICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17RW5kVGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICBpZiAoICFncmVwIHsvXkVuZFRpbWVSZXBlYXRlZEhvdXJTZXJ2ZXJFcnJvciQvfSBARW5kVGltZVNlcnZlckVycm9yQmxvY2sgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHB1c2ggQEVuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCAnRW5kVGltZVJlcGVhdGVkSG91clNlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICRTdGFydFRpbWVzWyRJRF0gPiAkU3RhcnRUaW1lc1skUG9zaXRpb25dCiAgICAgICAgICAgICAgICAgICAgJiYgJFN0YXJ0VGltZXNbJElEXSA8ICRFbmRUaW1lc1skUG9zaXRpb25dCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e1N0YXJ0VGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICBpZiAoICFncmVwIHsvXlN0YXJ0VGltZVJlcGVhdGVkSG91clNlcnZlckVycm9yJC99IEBTdGFydFRpbWVTZXJ2ZXJFcnJvckJsb2NrICkgewogICAgICAgICAgICAgICAgICAgICAgICBwdXNoIEBTdGFydFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCAnU3RhcnRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgJEVuZFRpbWVzWyRJRF0gPiAkU3RhcnRUaW1lc1skUG9zaXRpb25dCiAgICAgICAgICAgICAgICAgICAgJiYgJEVuZFRpbWVzWyRJRF0gPCAkRW5kVGltZXNbJFBvc2l0aW9uXQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtFbmRUaW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgIGlmICggIWdyZXAgey9eRW5kVGltZVJlcGVhdGVkSG91clNlcnZlckVycm9yJC99IEBFbmRUaW1lU2VydmVyRXJyb3JCbG9jayApIHsKICAgICAgICAgICAgICAgICAgICAgICAgcHVzaCBARW5kVGltZVNlcnZlckVycm9yQmxvY2ssICdFbmRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyAnMjQ6MDAnIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lCiAgICAgICAgICAgIGlmICggJFN0YXJ0VGltZXNbJElEXSAmJiAkU3RhcnRUaW1lc1skSURdID09IDE0NDAgKSB7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtTdGFydFRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICBwdXNoIEBTdGFydFRpbWVTZXJ2ZXJFcnJvckJsb2NrLCAnU3RhcnRUaW1lMjRIb3Vycyc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgdGltZXMgc3VwZXJpb3IgdG8gMjQ6MDAgYXJlIG5vdCBhbGxvd2VkCiAgICAgICAgICAgIGlmICggJFN0YXJ0VGltZXNbJElEXSAmJiAkU3RhcnRUaW1lc1skSURdID4gMTQ0MCApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e1N0YXJ0VGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgIHB1c2ggQFN0YXJ0VGltZVNlcnZlckVycm9yQmxvY2ssICdTdGFydFRpbWVJbnZhbGlkJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoICRFbmRUaW1lc1skSURdICYmICRFbmRUaW1lc1skSURdID4gMTQ0MCApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e0VuZFRpbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICBwdXNoIEBFbmRUaW1lU2VydmVyRXJyb3JCbG9jaywgJ0VuZFRpbWVJbnZhbGlkJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBhZGQgcmVmZXJlbmNlIHRvIHRoZSBzZXJ2ZXIgZXJyb3IgbWVzc2FnZXMgdG8gYmUgc2hvd24KICAgICAgICAgICAgaWYgKCAkRXJyb3JzeyRFcnJvckluZGV4fSAmJiAkRXJyb3JzeyRFcnJvckluZGV4fXtTdGFydFRpbWVJbnZhbGlkfSApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e1N0YXJ0VGltZVNlcnZlckVycm9yQmxvY2t9ID0gXEBTdGFydFRpbWVTZXJ2ZXJFcnJvckJsb2NrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICggJEVycm9yc3skRXJyb3JJbmRleH0gJiYgJEVycm9yc3skRXJyb3JJbmRleH17RW5kVGltZUludmFsaWR9ICkgewogICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17RW5kVGltZVNlcnZlckVycm9yQmxvY2t9ID0gXEBFbmRUaW1lU2VydmVyRXJyb3JCbG9jazsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBvdmVyd3JpdGUgcGVyaW9kIGlmIHRoZXJlIGFyZSBzdGFydCBhbmQgZW5kIHRpbWVzCiAgICAgICAgICAgIGlmICggJFN0YXJ0VGltZXNbJElEXSAmJiAkRW5kVGltZXNbJElEXSApIHsKICAgICAgICAgICAgICAgICRQZXJpb2QgPSAkRW5kVGltZXNbJElEXSAtICRTdGFydFRpbWVzWyRJRF07CgogICAgICAgICAgICAgICAgIyBjb252ZXJ0IHBlcmlvZCBmcm9tIG1pbnV0ZXMgdG8gaG91cnMKICAgICAgICAgICAgICAgICRQZXJpb2QgLz0gNjA7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgY2hlY2sgZm9yIGVycm9ycyBpbiB0aGUgcGVyaW9kCiAgICAgICAgICAgIGlmICggJFBlcmlvZCA9PSAwICkgewogICAgICAgICAgICAgICAgcHVzaCBAUGVyaW9kU2VydmVyRXJyb3JCbG9jaywgJ1plcm9Ib3Vyc1BlcmlvZFNlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpJbnB1dEhvdXJzV2l0aG91dFN0YXJ0RW5kVGltZScpCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e1BlcmlvZEludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e1N0YXJ0VGltZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtFbmRUaW1lSW52YWxpZH0gICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBpZiAoICRQZXJpb2QgPCAwICkgewogICAgICAgICAgICAgICAgICAgICRFcnJvcnN7JEVycm9ySW5kZXh9e1BlcmlvZEludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICAgICBwdXNoIEBQZXJpb2RTZXJ2ZXJFcnJvckJsb2NrLCAnTmVnYXRpdmVQZXJpb2RTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCAkUGVyaW9kID4gMjQgKSB7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyRFcnJvckluZGV4fXtQZXJpb2RJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICBwdXNoIEBQZXJpb2RTZXJ2ZXJFcnJvckJsb2NrLCAnSW52YWxpZEhvdXJzUGVyaW9kU2VydmVyRXJyb3InOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoICRFcnJvcnN7JEVycm9ySW5kZXh9ICYmICRFcnJvcnN7JEVycm9ySW5kZXh9e1BlcmlvZEludmFsaWR9ICkgewogICAgICAgICAgICAgICAgJEVycm9yc3skRXJyb3JJbmRleH17UGVyaW9kU2VydmVyRXJyb3JCbG9ja30gPSBcQFBlcmlvZFNlcnZlckVycm9yQmxvY2s7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgaWYgdGhlcmUgd2FzIGFuIGVycm9yIG9uIHRoaXMgcm93LCBzYXZlIGFsbCBkYXRhIGluIHRoZSBzZXJ2ZXIgZXJyb3IgaGFzaAogICAgICAgICAgICBpZiAoIGRlZmluZWQgJEVycm9yc3skRXJyb3JJbmRleH0gKSB7CiAgICAgICAgICAgICAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoUHJvamVjdElEIEFjdGlvbklEIFJlbWFyayBTdGFydFRpbWUgRW5kVGltZSkpIHsKICAgICAgICAgICAgICAgICAgICAkU2VydmVyRXJyb3JEYXRheyRFcnJvckluZGV4fXskUGFyYW1ldGVyfSA9ICRQYXJhbXskUGFyYW1ldGVyfTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRTZXJ2ZXJFcnJvckRhdGF7JEVycm9ySW5kZXh9e1BlcmlvZH0gPSAkUGVyaW9kOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIG90aGVyd2lzZSwgc2F2ZSByb3cgb24gdGhlIERCCiAgICAgICAgICAgIGVsc2UgewoKICAgICAgICAgICAgICAgICMgaW5pdGlhbGl6ZSB0aGUgYXJyYXkgb2Ygd29ya2luZyB1bml0cwogICAgICAgICAgICAgICAgQHsgJERhdGF7V29ya2luZ1VuaXRzfSB9ID0gKCk7CgogICAgICAgICAgICAgICAgIyByZXBsYWNlIDI0OjAwIGZvciAyMzo1OTo1OSB0byBiZSBhIHZhbGlkIGVudHJ5IGluIHRoZSBEQgogICAgICAgICAgICAgICAgJFBhcmFte0VuZFRpbWV9ID0gJFBhcmFte0VuZFRpbWV9IGVxICcyNDowMCcgPyAnMjM6NTk6NTknIDogJFBhcmFte0VuZFRpbWV9OwoKICAgICAgICAgICAgICAgIG15ICVXb3JraW5nVW5pdCA9ICgKICAgICAgICAgICAgICAgICAgICBQcm9qZWN0SUQgPT4gJFBhcmFte1Byb2plY3RJRH0sCiAgICAgICAgICAgICAgICAgICAgQWN0aW9uSUQgID0+ICRQYXJhbXtBY3Rpb25JRH0sCiAgICAgICAgICAgICAgICAgICAgUmVtYXJrICAgID0+ICRQYXJhbXtSZW1hcmt9LAogICAgICAgICAgICAgICAgICAgIFN0YXJ0VGltZSA9PiAkUGFyYW17U3RhcnRUaW1lfSwKICAgICAgICAgICAgICAgICAgICBFbmRUaW1lICAgPT4gJFBhcmFte0VuZFRpbWV9LAogICAgICAgICAgICAgICAgICAgIFBlcmlvZCAgICA9PiAkUGVyaW9kLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIHB1c2ggQHsgJERhdGF7V29ya2luZ1VuaXRzfSB9LCBcJVdvcmtpbmdVbml0OwoKICAgICAgICAgICAgICAgICREYXRhe1llYXJ9ICAgPSAkUGFyYW17WWVhcn07CiAgICAgICAgICAgICAgICAkRGF0YXtNb250aH0gID0gJFBhcmFte01vbnRofTsKICAgICAgICAgICAgICAgICREYXRhe0RheX0gICAgPSAkUGFyYW17RGF5fTsKICAgICAgICAgICAgICAgICREYXRhe1VzZXJJRH0gPSAkU2VsZi0+e1VzZXJJRH07CgogICAgICAgICAgICAgICAgaWYgKCAhJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNJbnNlcnQoJURhdGEpICkgewoKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdDYW5cJ3QgaW5zZXJ0IFdvcmtpbmcgVW5pdHMhJyksCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRQYXJhbXtTdWNjZXNzZnVsSW5zZXJ0fSA9IDE7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgaW5jcmVtZW50IHRoZSBlcnJvciBpbmRleCBpZiB0aGVyZSB3YXMgYW4gZXJyb3Igb24gdGhpcyByb3cKICAgICAgICAgICAgJEVycm9ySW5kZXgrKyBpZiAoIGRlZmluZWQgJEVycm9yc3skRXJyb3JJbmRleH0gKTsKICAgICAgICB9CgogICAgICAgIGlmICglU2VydmVyRXJyb3JEYXRhKSB7CiAgICAgICAgICAgICRQYXJhbXtTdWNjZXNzZnVsSW5zZXJ0fSA9IHVuZGVmOwogICAgICAgIH0KICAgIH0KCiAgICAjIFNob3cgV29ya2luZyBVbml0cwogICAgIyBnZXQgZXhpc3Rpbmcgd29ya2luZyB1bml0cwogICAgJURhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0dldCgKICAgICAgICBZZWFyICAgPT4gJFBhcmFte1llYXJ9LAogICAgICAgIE1vbnRoICA9PiAkUGFyYW17TW9udGh9LAogICAgICAgIERheSAgICA9PiAkUGFyYW17RGF5fSwKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIGdldCBudW1iZXIgb2Ygd29ya2luZyB1bml0cyAoPXJlY29yZHMpCiAgICAjICAgIGlmIGJpZ2dlciB0aGFuIFJlY29yZHNOdW1iZXIsIG1vcmUgdGhhbiB0aGUgbnVtYmVyIG9mIGRlZmF1bHQgcmVjb3JkcyB3ZXJlIHNhdmVkIGZvcgogICAgIyAgICB0aGlzIGRhdGUKICAgIGlmICggJERhdGF7V29ya2luZ1VuaXRzfSApIHsKICAgICAgICBteSAkV29ya2luZ1VuaXRzQ291bnQgPSBAeyAkRGF0YXtXb3JraW5nVW5pdHN9IH07CiAgICAgICAgaWYgKCAkV29ya2luZ1VuaXRzQ291bnQgPiAkUGFyYW17UmVjb3Jkc051bWJlcn0gKSB7CiAgICAgICAgICAgICRQYXJhbXtSZWNvcmRzTnVtYmVyfSA9ICRXb3JraW5nVW5pdHNDb3VudDsKICAgICAgICB9CiAgICB9CgogICAgbXkgJUZyb250ZW5kOwoKICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6SW5wdXRIb3Vyc1dpdGhvdXRTdGFydEVuZFRpbWUnKSApIHsKICAgICAgICAkUGFyYW17UGVyaW9kQmxvY2t9ICAgPSAnVW5pdElucHV0UGVyaW9kJzsKICAgICAgICAkRnJvbnRlbmR7UGVyaW9kTm90ZX0gPSAnKic7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkUGFyYW17UGVyaW9kQmxvY2t9ICAgPSAnVW5pdFBlcmlvZFdpdGhvdXRJbnB1dCc7CiAgICAgICAgJEZyb250ZW5ke1BlcmlvZE5vdGV9ID0gJyc7CiAgICB9CgogICAgaWYgKCAkRGF0ZVRpbWVPYmplY3RDdXJyZW50LT5Db21wYXJlKCBEYXRlVGltZU9iamVjdCA9PiAkRGF0ZVRpbWVPYmplY3RHaXZlbiApICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdVbml0QmxvY2snLAogICAgICAgICAgICBEYXRhID0+IHsgJVBhcmFtLCAlRnJvbnRlbmQgfSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IHNpY2ssIGxlYXZlIGRheSBhbmQgb3ZlcnRpbWUKICAgICRQYXJhbXtTaWNrfSAgICAgPSAkRGF0YXtTaWNrfSAgICAgPyAnY2hlY2tlZD0iY2hlY2tlZCInIDogJyc7CiAgICAkUGFyYW17TGVhdmVEYXl9ID0gJERhdGF7TGVhdmVEYXl9ID8gJ2NoZWNrZWQ9ImNoZWNrZWQiJyA6ICcnOwogICAgJFBhcmFte092ZXJ0aW1lfSA9ICREYXRhe092ZXJ0aW1lfSA/ICdjaGVja2VkPSJjaGVja2VkIicgOiAnJzsKCiAgICAkUGFyYW17VG90YWx9ID0gJERhdGF7VG90YWx9OwoKICAgICMgc2V0IGFjdGlvbiBsaXN0IGFuZCByZWxhdGVkIGNvbnN0cmFpbnRzCiAgICAjIGdlbmVyYXRlIGEgSmF2YVNjcmlwdCBBcnJheSB3aGljaCB3aWxsIGJlIG91dHB1dCB0byB0aGUgdGVtcGxhdGUKICAgIG15IEBBY3Rpb25JRHMgPSBzb3J0IHsgJEFjdGlvbkxpc3R7JGF9IGNtcCAkQWN0aW9uTGlzdHskYn0gfSBrZXlzICVBY3Rpb25MaXN0OwogICAgbXkgQEpTQWN0aW9uczsKICAgIGZvciBteSAkQWN0aW9uSUQgKEBBY3Rpb25JRHMpIHsKICAgICAgICBwdXNoIEBKU0FjdGlvbnMsIFsKICAgICAgICAgICAgJEFjdGlvbklELAogICAgICAgICAgICAkQWN0aW9uTGlzdHskQWN0aW9uSUR9CiAgICAgICAgXTsKICAgIH0KCiAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgS2V5ICAgPT4gJ0FjdGlvbkxpc3QnLAogICAgICAgIFZhbHVlID0+IFxASlNBY3Rpb25zCiAgICApOwoKICAgIG15ICRBY3Rpb25MaXN0Q29uc3RyYWludHMgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpBY3Rpb25MaXN0Q29uc3RyYWludHMnKTsKICAgIG15IEBKU0FjdGlvbkxpc3RDb25zdHJhaW50czsKICAgIGZvciBteSAkUHJvamVjdE5hbWVSZWdFeHAgKCBzb3J0IGtleXMgJXskQWN0aW9uTGlzdENvbnN0cmFpbnRzfSApIHsKICAgICAgICBteSAkQWN0aW9uTmFtZVJlZ0V4cCA9ICRBY3Rpb25MaXN0Q29uc3RyYWludHMtPnskUHJvamVjdE5hbWVSZWdFeHB9OwogICAgICAgIHN7KFsnIlxcXSl9e1xcJDF9c214ZyBmb3IgKCAkUHJvamVjdE5hbWVSZWdFeHAsICRBY3Rpb25OYW1lUmVnRXhwICk7CiAgICAgICAgcHVzaCBASlNBY3Rpb25MaXN0Q29uc3RyYWludHMsIFsKICAgICAgICAgICAgJFByb2plY3ROYW1lUmVnRXhwLAogICAgICAgICAgICAkQWN0aW9uTmFtZVJlZ0V4cAogICAgICAgIF07CiAgICB9CgogICAgJExheW91dE9iamVjdC0+QWRkSlNEYXRhKAogICAgICAgIEtleSAgID0+ICdBY3Rpb25MaXN0Q29uc3RyYWludHMnLAogICAgICAgIFZhbHVlID0+IFxASlNBY3Rpb25MaXN0Q29uc3RyYWludHMKICAgICk7CgogICAgIyBidWlsZCBhIHdvcmtpbmcgdW5pdCBhcnJheQogICAgbXkgQFVuaXRzID0gKHVuZGVmKTsKICAgIGlmICggJERhdGF7V29ya2luZ1VuaXRzfSApIHsKICAgICAgICBwdXNoIEBVbml0cywgQHsgJERhdGF7V29ya2luZ1VuaXRzfSB9OwogICAgfQoKICAgICRFcnJvckluZGV4ID0gMDsKCiAgICAjIGJ1aWxkIHVuaXRzCiAgICBmb3IgbXkgJElEICggMSAuLiAkUGFyYW17UmVjb3Jkc051bWJlcn0gKSB7CiAgICAgICAgJFBhcmFte0lEfSA9ICRJRDsKICAgICAgICBteSAkVW5pdFJlZiAgID0gJFVuaXRzWyRJRF07CiAgICAgICAgbXkgJFNob3dFcnJvciA9IDA7CgogICAgICAgIGlmICggISRVbml0UmVmICkgewogICAgICAgICAgICAkRXJyb3JJbmRleCsrOwogICAgICAgICAgICAkU2hvd0Vycm9yID0gMTsKICAgICAgICB9CgogICAgICAgICMgZ2V0IGRhdGEgb2YgcHJvamVjdHMKICAgICAgICBteSAkUHJvamVjdExpc3QgPSAkU2VsZi0+X1Byb2plY3RMaXN0KAogICAgICAgICAgICBTZWxlY3RlZElEID0+ICRVbml0UmVmLT57UHJvamVjdElEfQogICAgICAgICAgICAgICAgfHwgJFNlcnZlckVycm9yRGF0YXskRXJyb3JJbmRleH17UHJvamVjdElEfQogICAgICAgICAgICAgICAgfHwgJycsCiAgICAgICAgKTsKCiAgICAgICAgJFBhcmFte1Byb2plY3RJRH0gPSAkVW5pdFJlZi0+e1Byb2plY3RJRH0KICAgICAgICAgICAgfHwgJFNlcnZlckVycm9yRGF0YXskRXJyb3JJbmRleH17UHJvamVjdElEfQogICAgICAgICAgICB8fCAnJzsKICAgICAgICAkUGFyYW17UHJvamVjdE5hbWV9ID0gJyc7CgogICAgICAgICMgc2V0IGNvbW1vbiBwYXJhbXMgZm9yIHByb2plY3Qgc2VsZWN0aW9uCiAgICAgICAgbXkgJVByb2plY3RPcHRpb25QYXJhbXMgPSAoCiAgICAgICAgICAgIE5hbWUgICAgICAgID0+ICJQcm9qZWN0SURbJElEXSIsCiAgICAgICAgICAgIElEICAgICAgICAgID0+ICJQcm9qZWN0SUQkSUQiLAogICAgICAgICAgICBUcmFuc2xhdGlvbiA9PiAwLAogICAgICAgICAgICBDbGFzcyAgICAgICA9PiAnVmFsaWRhdGVfVGltZUFjY291bnRpbmdfUHJvamVjdCBQcm9qZWN0U2VsZWN0aW9uICcKICAgICAgICAgICAgICAgIC4gKCAkRXJyb3JzeyRFcnJvckluZGV4fXtQcm9qZWN0SURJbnZhbGlkfSB8fCAnJyApLAogICAgICAgICAgICBPbkNoYW5nZSA9PiAiVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzLkZpbGxBY3Rpb25MaXN0KCRJRCk7IiwKICAgICAgICAgICAgVGl0bGUgICAgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCJQcm9qZWN0IiksCiAgICAgICAgKTsKCiAgICAgICAgbXkgJEVuYWJsZUF1dG9Db21wbGV0aW9uID0gJENvbmZpZ09iamVjdC0+R2V0KCJUaW1lQWNjb3VudGluZzo6RW5hYmxlQXV0b0NvbXBsZXRpb24iKSB8fCAwOwogICAgICAgIG15ICRDbGFzcyAgICAgICAgICAgICAgICA9ICRFbmFibGVBdXRvQ29tcGxldGlvbiA/ICcgTW9kZXJuaXplJyA6ICcnOwoKICAgICAgICAjIHNldCBwYXJhbXMgZm9yIG1vZGVybiBpbnB1dHMKICAgICAgICAkUHJvamVjdE9wdGlvblBhcmFtc3tDbGFzc30gLj0gJENsYXNzOwoKICAgICAgICBpZiAoICRFbmFibGVBdXRvQ29tcGxldGlvbiAmJiAkQ29uZmlnT2JqZWN0LT5HZXQoIlRpbWVBY2NvdW50aW5nOjpVc2VGaWx0ZXIiKSApIHsKCiAgICAgICAgICAgICMgYWRkIGZpbHRlciBmb3IgdGhlIHByZXZpb3VzIHByb2plY3RzCiAgICAgICAgICAgICRQcm9qZWN0T3B0aW9uUGFyYW1ze0RhdGF9ICAgID0gJFByb2plY3RMaXN0LT57QWxsUHJvamVjdHN9OwogICAgICAgICAgICAkUHJvamVjdE9wdGlvblBhcmFtc3tGaWx0ZXJzfSA9IHsKICAgICAgICAgICAgICAgIExhc3RQcm9qZWN0cyA9PiB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAgID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnTGFzdCBQcm9qZWN0cycpLAogICAgICAgICAgICAgICAgICAgIFZhbHVlcyA9PiAkUHJvamVjdExpc3QtPntMYXN0UHJvamVjdHN9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfTsKCiAgICAgICAgICAgICMgaWYgdGhlcmUgYXJlIHRoZSBwcmV2aW91cyBwcm9qZWN0cywgZXhwYW5kIGZpbHRlciBkaWFsb2cKICAgICAgICAgICAgaWYgKCBzY2FsYXIgQHsgJFByb2plY3RMaXN0LT57TGFzdFByb2plY3RzfSB9ID4gMSApIHsKICAgICAgICAgICAgICAgICRQcm9qZWN0T3B0aW9uUGFyYW1ze0V4cGFuZEZpbHRlcnN9ID0gMTsKCiAgICAgICAgICAgICAgICAjIG1ha2UgdGhlIGZpbHRlciBhY3RpdmUgYnkgZGVmYXVsdCBpZiAnQWN0aXZlRmlsdGVyJyBpcyBlbmFibGVkCiAgICAgICAgICAgICAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgiVGltZUFjY291bnRpbmc6OkFjdGl2ZUZpbHRlciIpICkgewogICAgICAgICAgICAgICAgICAgICRQcm9qZWN0T3B0aW9uUGFyYW1ze0ZpbHRlcnN9LT57TGFzdFByb2plY3RzfS0+e0FjdGl2ZX0gPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAjIHNldCBwYXJhbXMgZm9yIHRyYWRpdGlvbmFsIHNlbGVjdHMgKGFuZCBtb2Rlcm4gaW5wdXQgZmllbGRzIGlmIGZpbHRlciBpcyBub3QgdXNlZCkKICAgICAgICAgICAgbXkgQFByb2plY3RzID0gKCBAeyAkUHJvamVjdExpc3QtPntMYXN0UHJvamVjdHN9IH0sIEB7ICRQcm9qZWN0TGlzdC0+e0FsbFByb2plY3RzfSB9ICk7CiAgICAgICAgICAgICRQcm9qZWN0T3B0aW9uUGFyYW1ze0RhdGF9ID0gXEBQcm9qZWN0czsKICAgICAgICB9CgogICAgICAgICMgYnVpbGQgcHJvamVjdHMgc2VsZWN0CiAgICAgICAgJEZyb250ZW5ke1Byb2plY3RPcHRpb259ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgICAgICVQcm9qZWN0T3B0aW9uUGFyYW1zLAogICAgICAgICk7CgogICAgICAgICMgYWN0aW9uIGxpc3QgaW5pdGlhbGx5IG9ubHkgY29udGFpbnMgZW1wdHkgYW5kIHNlbGVjdGVkIGVsZW1lbnQgYXMgd2VsbCBhcyBlbGVtZW50cwogICAgICAgICMgY29uZmlndXJlZCBmb3Igc2VsZWN0ZWQgcHJvamVjdAogICAgICAgICMgaWYgbm8gY29uc3RyYWludHMgYXJlIGNvbmZpZ3VyZWQsIGFsbCBhY3Rpb25zIHdpbGwgYmUgZGlzcGxheWVkCiAgICAgICAgbXkgJEFjdGlvbkRhdGEgPSAkU2VsZi0+X0FjdGlvbkxpc3RDb25zdHJhaW50cygKICAgICAgICAgICAgUHJvamVjdElEICAgICAgICAgICAgID0+ICRVbml0UmVmLT57UHJvamVjdElEfSB8fCAkU2VydmVyRXJyb3JEYXRheyRFcnJvckluZGV4fS0+e1Byb2plY3RJRH0sCiAgICAgICAgICAgIFByb2plY3RMaXN0ICAgICAgICAgICA9PiAkUHJvamVjdExpc3QsCiAgICAgICAgICAgIEFjdGlvbkxpc3QgICAgICAgICAgICA9PiBcJUFjdGlvbkxpc3QsCiAgICAgICAgICAgIEFjdGlvbkxpc3RDb25zdHJhaW50cyA9PiAkQWN0aW9uTGlzdENvbnN0cmFpbnRzLAogICAgICAgICk7CiAgICAgICAgJEFjdGlvbkRhdGEtPnsnJ30gPSAnLSc7CgogICAgICAgIGlmICggJFVuaXRSZWYgJiYgJFVuaXRSZWYtPntBY3Rpb25JRH0gJiYgJEFjdGlvbkxpc3R7ICRVbml0UmVmLT57QWN0aW9uSUR9IH0gKSB7CiAgICAgICAgICAgICRBY3Rpb25EYXRhLT57ICRVbml0UmVmLT57QWN0aW9uSUR9IH0gPSAkQWN0aW9uTGlzdHsgJFVuaXRSZWYtPntBY3Rpb25JRH0gfTsKICAgICAgICB9CiAgICAgICAgZWxzaWYgKAogICAgICAgICAgICAkU2VydmVyRXJyb3JEYXRheyRFcnJvckluZGV4fQogICAgICAgICAgICAmJiAkU2VydmVyRXJyb3JEYXRheyRFcnJvckluZGV4fXtBY3Rpb25JRH0KICAgICAgICAgICAgJiYgJEFjdGlvbkxpc3R7ICRTZXJ2ZXJFcnJvckRhdGF7JEVycm9ySW5kZXh9e0FjdGlvbklEfSB9CiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRBY3Rpb25EYXRhLT57ICRTZXJ2ZXJFcnJvckRhdGF7JEVycm9ySW5kZXh9e0FjdGlvbklEfSB9CiAgICAgICAgICAgICAgICA9ICRBY3Rpb25MaXN0eyAkU2VydmVyRXJyb3JEYXRheyRFcnJvckluZGV4fXtBY3Rpb25JRH0gfTsKICAgICAgICB9CgogICAgICAgICRGcm9udGVuZHtBY3Rpb25PcHRpb259ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCgogICAgICAgICAgICBEYXRhICAgICAgICA9PiAkQWN0aW9uRGF0YSwKICAgICAgICAgICAgU2VsZWN0ZWRJRCAgPT4gJFVuaXRSZWYtPntBY3Rpb25JRH0gfHwgJFNlcnZlckVycm9yRGF0YXskRXJyb3JJbmRleH17QWN0aW9uSUR9IHx8ICcnLAogICAgICAgICAgICBOYW1lICAgICAgICA9PiAiQWN0aW9uSURbJElEXSIsCiAgICAgICAgICAgIElEICAgICAgICAgID0+ICJBY3Rpb25JRCRJRCIsCiAgICAgICAgICAgIFRyYW5zbGF0aW9uID0+IDAsCiAgICAgICAgICAgIENsYXNzICAgICAgID0+ICdWYWxpZGF0ZV9EZXBlbmRpbmdSZXF1aXJlZEFORCBWYWxpZGF0ZV9EZXBlbmRpbmdfUHJvamVjdElEJwogICAgICAgICAgICAgICAgLiAkSUQKICAgICAgICAgICAgICAgIC4gJyBBY3Rpb25TZWxlY3Rpb24gJwogICAgICAgICAgICAgICAgLiAoICRFcnJvcnN7JEVycm9ySW5kZXh9e0FjdGlvbklESW52YWxpZH0gfHwgJycgKQogICAgICAgICAgICAgICAgLiAkQ2xhc3MsCiAgICAgICAgICAgIFRpdGxlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgiVGFzayIpLAogICAgICAgICk7CgogICAgICAgICRQYXJhbXtSZW1hcmt9ID0gJFVuaXRSZWYtPntSZW1hcmt9IHx8ICRTZXJ2ZXJFcnJvckRhdGF7JEVycm9ySW5kZXh9e1JlbWFya30gfHwgJyc7CgogICAgICAgIG15ICRQZXJpb2Q7CiAgICAgICAgaWYgKAogICAgICAgICAgICAoICRVbml0UmVmLT57UGVyaW9kfSAmJiAkVW5pdFJlZi0+e1BlcmlvZH0gPT0gMCApCiAgICAgICAgICAgIHx8ICgKICAgICAgICAgICAgICAgIGRlZmluZWQgJFNlcnZlckVycm9yRGF0YXskRXJyb3JJbmRleH17UGVyaW9kfQogICAgICAgICAgICAgICAgJiYgJFNlcnZlckVycm9yRGF0YXskRXJyb3JJbmRleH17UGVyaW9kfSA9PSAwCiAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJFBlcmlvZCA9IDA7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkUGVyaW9kID0gJFVuaXRSZWYtPntQZXJpb2R9IHx8ICRTZXJ2ZXJFcnJvckRhdGF7JEVycm9ySW5kZXh9e1BlcmlvZH0gfHwgJyc7CiAgICAgICAgfQoKICAgICAgICBmb3IgbXkgJFRpbWVQZXJpb2QgKHF3KFN0YXJ0VGltZSBFbmRUaW1lKSkgewogICAgICAgICAgICBpZiAoJFNob3dFcnJvcikgewogICAgICAgICAgICAgICAgJFBhcmFteyRUaW1lUGVyaW9kfSA9ICRTZXJ2ZXJFcnJvckRhdGF7JEVycm9ySW5kZXh9eyRUaW1lUGVyaW9kfSAvLyAnJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRQYXJhbXskVGltZVBlcmlvZH0gPSAkVW5pdFJlZi0+eyRUaW1lUGVyaW9kfSAvLyAnJzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKAogICAgICAgICAgICAkUGVyaW9kCiAgICAgICAgICAgICYmICRQYXJhbXtTdGFydFRpbWV9IGVxICcwMDowMCcKICAgICAgICAgICAgJiYgJFBhcmFte0VuZFRpbWV9IGVxICcwMDowMCcKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJFBhcmFte1N0YXJ0VGltZX0gPSAnJzsKICAgICAgICAgICAgJFBhcmFte0VuZFRpbWV9ICAgPSAnJzsKICAgICAgICB9CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdVbml0JywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAlRnJvbnRlbmQsCiAgICAgICAgICAgICAgICAleyAkRXJyb3JzeyRFcnJvckluZGV4fSB9LAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgYWRkIHByb3BlciBzZXJ2ZXIgZXJyb3IgbWVzc2FnZSBmb3IgdGhlIHN0YXJ0IGFuZCBlbmQgdGltZXMKICAgICAgICBteSAkU2VydmVyRXJyb3JCbG9ja05hbWU7CiAgICAgICAgaWYgKCAkRXJyb3JzeyRFcnJvckluZGV4fSAmJiAkRXJyb3JzeyRFcnJvckluZGV4fXtTdGFydFRpbWVJbnZhbGlkfSApIHsKICAgICAgICAgICAgaWYgKCBzY2FsYXIgQHsgJEVycm9yc3skRXJyb3JJbmRleH17U3RhcnRUaW1lU2VydmVyRXJyb3JCbG9ja30gfSA+IDAgKSB7CiAgICAgICAgICAgICAgICB3aGlsZSAoIEB7ICRFcnJvcnN7JEVycm9ySW5kZXh9e1N0YXJ0VGltZVNlcnZlckVycm9yQmxvY2t9IH0gKSB7CiAgICAgICAgICAgICAgICAgICAgJFNlcnZlckVycm9yQmxvY2tOYW1lID0gc2hpZnQgQHsgJEVycm9yc3skRXJyb3JJbmRleH17U3RhcnRUaW1lU2VydmVyRXJyb3JCbG9ja30gfTsKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAkU2VydmVyRXJyb3JCbG9ja05hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1N0YXJ0VGltZUdlbmVyaWNTZXJ2ZXJFcnJvcicsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKCAkRXJyb3JzeyRFcnJvckluZGV4fSAmJiAkRXJyb3JzeyRFcnJvckluZGV4fXtFbmRUaW1lSW52YWxpZH0gKSB7CiAgICAgICAgICAgIGlmICggc2NhbGFyIEB7ICRFcnJvcnN7JEVycm9ySW5kZXh9e0VuZFRpbWVTZXJ2ZXJFcnJvckJsb2NrfSB9ID4gMCApIHsKICAgICAgICAgICAgICAgIHdoaWxlICggQHsgJEVycm9yc3skRXJyb3JJbmRleH17RW5kVGltZVNlcnZlckVycm9yQmxvY2t9IH0gKSB7CiAgICAgICAgICAgICAgICAgICAgJFNlcnZlckVycm9yQmxvY2tOYW1lID0gc2hpZnQgQHsgJEVycm9yc3skRXJyb3JJbmRleH17RW5kVGltZVNlcnZlckVycm9yQmxvY2t9IH07CiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJFNlcnZlckVycm9yQmxvY2tOYW1lLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHt9CiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0VuZFRpbWVHZW5lcmljU2VydmVyRXJyb3InLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAkUGFyYW17UGVyaW9kQmxvY2t9LAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIFBlcmlvZCA9PiAkUGVyaW9kLAogICAgICAgICAgICAgICAgSUQgICAgID0+ICRJRCwKICAgICAgICAgICAgICAgICV7ICRFcnJvcnN7JEVycm9ySW5kZXh9IH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBhZGQgcHJvcGVyIHNlcnZlciBlcnJvciBtZXNzYWdlIGZvciB0aGUgcGVyaW9kCiAgICAgICAgaWYgKCAkRXJyb3JzeyRFcnJvckluZGV4fSAmJiAkRXJyb3JzeyRFcnJvckluZGV4fXtQZXJpb2RJbnZhbGlkfSApIHsKICAgICAgICAgICAgaWYgKCBzY2FsYXIgQHsgJEVycm9yc3skRXJyb3JJbmRleH17UGVyaW9kU2VydmVyRXJyb3JCbG9ja30gfSA+IDAgKSB7CiAgICAgICAgICAgICAgICB3aGlsZSAoIEB7ICRFcnJvcnN7JEVycm9ySW5kZXh9e1BlcmlvZFNlcnZlckVycm9yQmxvY2t9IH0gKSB7CiAgICAgICAgICAgICAgICAgICAgJFNlcnZlckVycm9yQmxvY2tOYW1lID0gc2hpZnQgQHsgJEVycm9yc3skRXJyb3JJbmRleH17UGVyaW9kU2VydmVyRXJyb3JCbG9ja30gfTsKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAkU2VydmVyRXJyb3JCbG9ja05hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1BlcmlvZEdlbmVyaWNTZXJ2ZXJFcnJvcicsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnUGVyaW9kR2VuZXJpY1NlcnZlckVycm9yJywKICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIHZhbGlkaXR5IGNoZWNrCiAgICAgICAgaWYgKAogICAgICAgICAgICAkUGFyYW17SW5zZXJ0V29ya2luZ1VuaXRzfQogICAgICAgICAgICAmJiAkVW5pdFJlZi0+e1Byb2plY3RJRH0KICAgICAgICAgICAgJiYgJFVuaXRSZWYtPntBY3Rpb25JRH0KICAgICAgICAgICAgJiYgJFBhcmFte1NpY2t9CiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRQYXJhbXtCbG9ja05hbWV9ID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fQogICAgICAgICAgICAgICAgLT5UcmFuc2xhdGUoJ0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gc2ljayBsZWF2ZT8nKTsKICAgICAgICB9CiAgICAgICAgZWxzaWYgKAogICAgICAgICAgICAkUGFyYW17SW5zZXJ0V29ya2luZ1VuaXRzfQogICAgICAgICAgICAmJiAkVW5pdFJlZi0+e1Byb2plY3RJRH0KICAgICAgICAgICAgJiYgJFVuaXRSZWYtPntBY3Rpb25JRH0KICAgICAgICAgICAgJiYgJFBhcmFte0xlYXZlRGF5fQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkUGFyYW17QmxvY2tOYW1lfSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0KICAgICAgICAgICAgICAgIC0+VHJhbnNsYXRlKCdBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHZhY2F0aW9uPycpOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoCiAgICAgICAgICAgICRQYXJhbXtJbnNlcnRXb3JraW5nVW5pdHN9CiAgICAgICAgICAgICYmICRVbml0UmVmLT57UHJvamVjdElEfQogICAgICAgICAgICAmJiAkVW5pdFJlZi0+e0FjdGlvbklEfQogICAgICAgICAgICAmJiAkUGFyYW17T3ZlcnRpbWV9CiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRQYXJhbXtCbG9ja05hbWV9ID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fQogICAgICAgICAgICAgICAgLT5UcmFuc2xhdGUoJ0FyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgd2hpbGUgeW91IHdlcmUgb24gb3ZlcnRpbWUgbGVhdmU/Jyk7CiAgICAgICAgfQogICAgfQoKICAgIGlmICggJERhdGVUaW1lT2JqZWN0Q3VycmVudC0+Q29tcGFyZSggRGF0ZVRpbWVPYmplY3QgPT4gJERhdGVUaW1lT2JqZWN0R2l2ZW4gKSApIHsKICAgICAgICAkUGFyYW17VG90YWx9ID0gc3ByaW50ZiggIiUuMmYiLCAoICRQYXJhbXtUb3RhbH0gfHwgMCApICk7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1RvdGFsJywKICAgICAgICAgICAgRGF0YSA9PiB7ICVQYXJhbSwgJUZyb250ZW5kIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHZhbGlkaXR5IGNoZWNrcyBzdGFydAogICAgbXkgJEVycm9yTm90ZTsKICAgIGlmICggJFBhcmFte1RvdGFsfSAmJiAkUGFyYW17VG90YWx9ID4gMjQgKSB7CiAgICAgICAgJEVycm9yTm90ZSA9IFRyYW5zbGF0YWJsZSgnQ2FuXCd0IHNhdmUgc2V0dGluZ3MsIGJlY2F1c2UgYSBkYXkgaGFzIG9ubHkgMjQgaG91cnMhJyk7CiAgICB9CiAgICBlbHNpZiAoICRQYXJhbXtJbnNlcnRXb3JraW5nVW5pdHN9ICYmICRQYXJhbXtUb3RhbH0gJiYgJFBhcmFte1RvdGFsfSA+IDE2ICkgewogICAgICAgICRQYXJhbXtCbG9ja05hbWV9CiAgICAgICAgICAgID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIG1vcmUgdGhhbiAxNiBob3Vycz8nKTsKICAgIH0KICAgIGlmICgkRXJyb3JOb3RlKSB7CiAgICAgICAgaWYgKAogICAgICAgICAgICAhJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNEZWxldGUoCiAgICAgICAgICAgICAgICBZZWFyICAgPT4gJFBhcmFte1llYXJ9LAogICAgICAgICAgICAgICAgTW9udGggID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgICAgICAgICBEYXkgICAgPT4gJFBhcmFte0RheX0sCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdDYW5cJ3QgZGVsZXRlIFdvcmtpbmcgVW5pdHMhJyksCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIGlmICggJFBhcmFte0Jsb2NrTmFtZX0gJiYgJFBhcmFte1N1Y2Nlc3NmdWxJbnNlcnR9ICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkFkZEpTRGF0YSgKICAgICAgICAgICAgS2V5ICAgPT4gJ0Jsb2NrTmFtZScsCiAgICAgICAgICAgIFZhbHVlID0+ICRQYXJhbXtCbG9ja05hbWV9LAogICAgICAgICk7CiAgICB9CgogICAgJFBhcmFte0RhdGV9ID0gJExheW91dE9iamVjdC0+QnVpbGREYXRlU2VsZWN0aW9uKAogICAgICAgICVQYXJhbSwKICAgICAgICBWYWxpZGF0ZSA9PiAxLAogICAgICAgIFByZWZpeCAgID0+ICcnLAogICAgICAgIEZvcm1hdCAgID0+ICdEYXRlSW5wdXRGb3JtYXQnLAogICAgKTsKCiAgICBpZiAoICREYXRlVGltZU9iamVjdEdpdmVuLT5Db21wYXJlKCBEYXRlVGltZU9iamVjdCA9PiAkRGF0ZVRpbWVPYmplY3RBbGxvd2VkICkgPCAwICkgewogICAgICAgIGlmICgKICAgICAgICAgICAgJEluY29tcGxldGVXb3JraW5nRGF5c3tJbmNvbXBsZXRlfXsgJFBhcmFte1llYXJ9IH17ICRQYXJhbXtNb250aH0gfXsgJFBhcmFte0RheX0gfQogICAgICAgICAgICAmJiAhJFBhcmFte1N1Y2Nlc3NmdWxJbnNlcnR9CiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnUmVhZG9ubHknLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gPT4KICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNsYXRhYmxlKAogICAgICAgICAgICAgICAgICAgICAgICAnVGhpcyBEYXRlIGlzIG91dCBvZiBsaW1pdCwgYnV0IHlvdSBoYXZlblwndCBpbnNlcnQgdGhpcyBkYXkgeWV0LCBzbyB5b3UgZ2V0IG9uZSghKSBjaGFuY2UgdG8gaW5zZXJ0JwogICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMKICAgIG15ICVJbmNvbXBsZXRlV29ya2luZ0RheXNMaXN0OwogICAgJUluY29tcGxldGVXb3JraW5nRGF5cyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzQ29tcGxldG5lc3NDaGVjaygKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICBmb3IgbXkgJFllYXJJRCAoIHNvcnQga2V5cyAleyAkSW5jb21wbGV0ZVdvcmtpbmdEYXlze0luY29tcGxldGV9IH0gKSB7CiAgICAgICAgZm9yIG15ICRNb250aElEICggc29ydCBrZXlzICV7ICRJbmNvbXBsZXRlV29ya2luZ0RheXN7SW5jb21wbGV0ZX17JFllYXJJRH0gfSApIHsKICAgICAgICAgICAgZm9yIG15ICREYXlJRCAoCiAgICAgICAgICAgICAgICBzb3J0IGtleXMgJXsgJEluY29tcGxldGVXb3JraW5nRGF5c3tJbmNvbXBsZXRlfXskWWVhcklEfXskTW9udGhJRH0gfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAkSW5jb21wbGV0ZVdvcmtpbmdEYXlzTGlzdHsiJFllYXJJRC0kTW9udGhJRC0kRGF5SUQifSA9ICIkWWVhcklELSRNb250aElELSREYXlJRCI7CiAgICAgICAgICAgICAgICAkUGFyYW17SW5jb21wbGV0ZX0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDE7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBTaG93IHRleHQsIGlmIGluY29tcGxldGUgd29ya2luZyBkYXlzIGFyZSBhdmFpbGFibGUKICAgIGlmICggJFBhcmFte0luY29tcGxldGV9ICkgewoKICAgICAgICAjIGlmIG1hc3MgZW50cnkgb3B0aW9uIGlzIGVuYWJsZWQsIHNob3cgbGlzdCBvZiB3b3JraW5nIGRheXMKICAgICAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgiVGltZUFjY291bnRpbmc6OkFsbG93TWFzc0VudHJ5Rm9yVXNlciIpICkgewoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdJbmNvbXBsZXRlV29ya2luZ0RheXNNYXNzRW50cnknLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgZm9yIG15ICRXb3JraW5nRGF5cyAoIHNvcnQga2V5cyAlSW5jb21wbGV0ZVdvcmtpbmdEYXlzTGlzdCApIHsKCiAgICAgICAgICAgICAgICBteSAoICRZZWFyLCAkTW9udGgsICREYXkgKSA9IHNwbGl0KCAvLS8sICRJbmNvbXBsZXRlV29ya2luZ0RheXNMaXN0eyRXb3JraW5nRGF5c30gKTsKICAgICAgICAgICAgICAgIG15ICREYXRlVGltZU9iamVjdFdvcmtpbmdEYXkgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICAgICAgICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgICAgICAgICAgICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFllYXIgID0+ICRZZWFyLAogICAgICAgICAgICAgICAgICAgICAgICBNb250aCA9PiAkTW9udGgsCiAgICAgICAgICAgICAgICAgICAgICAgIERheSAgID0+ICREYXksCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdJbmNvbXBsZXRlV29ya2luZ0RheXNNYXNzRW50cnlTaW5nbGVEYXknLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBEYXRlICAgID0+ICRJbmNvbXBsZXRlV29ya2luZ0RheXNMaXN0eyRXb3JraW5nRGF5c30sCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGVIUiAgPT4gJERhdGVUaW1lT2JqZWN0V29ya2luZ0RheS0+VG9TdHJpbmcoKSwKICAgICAgICAgICAgICAgICAgICAgICAgV2Vla2RheSA9PiAkVGltZUFjY291bnRpbmdPYmplY3QtPkRheU9mV2Vla1RvTmFtZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE51bWJlciA9PiAkVGltZUFjY291bnRpbmdPYmplY3QtPkRheU9mV2VlayggJFllYXIsICRNb250aCwgJERheSApCiAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgIFllYXIgID0+ICRZZWFyLAogICAgICAgICAgICAgICAgICAgICAgICBNb250aCA9PiAkTW9udGgsCiAgICAgICAgICAgICAgICAgICAgICAgIERheSAgID0+ICREYXksCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgb3RoZXJ3aXNlIHNob3cgaW5jb21wbGV0ZSB3b3JraW5nIGRheXMgYXMgYSBkcm9wLWRvd24KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgY2hlY2sgaWYgY3VycmVudCBkYXkgaXMgaW5jb21wbGV0ZQogICAgICAgICAgICAjIGlmIHllcywgc2VsZWN0IHRoZSBjdXJyZW50IGRheSBpbiB0aGUgZHJvcC1kb3duCiAgICAgICAgICAgICMgb3RoZXJ3aXNlIHNlbGVjdCB0aGUgZW1wdHkgZWxlbWVudAogICAgICAgICAgICBteSAkU2VsZWN0ZWRJRDsKCiAgICAgICAgICAgIGlmICggJEluY29tcGxldGVXb3JraW5nRGF5c0xpc3R7IiRQYXJhbXtZZWFyfS0kUGFyYW17TW9udGh9LSRQYXJhbXtEYXl9In0gKSB7CiAgICAgICAgICAgICAgICAkU2VsZWN0ZWRJRCA9ICIkUGFyYW17WWVhcn0tJFBhcmFte01vbnRofS0kUGFyYW17RGF5fSI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG15ICRJbmNvbXBsZVdvcmtpbmdEYXlzU2VsZWN0ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVJbmNvbXBsZXRlV29ya2luZ0RheXNMaXN0LAogICAgICAgICAgICAgICAgU2VsZWN0ZWRJRCAgID0+ICRTZWxlY3RlZElELAogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICJJbmNvbXBsZXRlV29ya2luZ0RheXNMaXN0IiwKICAgICAgICAgICAgICAgIFBvc3NpYmxlTm9uZSA9PiAxLAogICAgICAgICAgICAgICAgVGl0bGUgPT4KICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoIkluY29tcGxldGUgV29ya2luZyBEYXlzIiksCiAgICAgICAgICAgICAgICBDbGFzcyA9PiAnTW9kZXJuaXplJywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnSW5jb21wbGV0ZVdvcmtpbmdEYXlzJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgIEluY29tcGxldGVXb3JraW5nRGF5c1NlbGVjdCA9PiAkSW5jb21wbGVXb3JraW5nRGF5c1NlbGVjdCwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIG15ICVVc2VyRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckdldCgKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICBteSAkVmFjYXRpb25DaGVjayA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VmFjYXRpb25DaGVjaygKICAgICAgICBZZWFyICAgICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgTW9udGggICAgPT4gJFBhcmFte01vbnRofSwKICAgICAgICBEYXkgICAgICA9PiAkUGFyYW17RGF5fSwKICAgICAgICBDYWxlbmRhciA9PiAkVXNlckRhdGF7Q2FsZW5kYXJ9LAogICAgKTsKCiAgICAkUGFyYW17V2Vla2RheX0KICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpLT5EYXlPZldlZWsoICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgJFBhcmFte0RheX0gKTsKCiAgICAjIGdldCB3b3JraW5nIGRheXMgb2YgdGhlIHVzZXIncyBjYWxlbmRhcgogICAgbXkgJENhbGVuZGFyTmFtZSA9ICdUaW1lV29ya2luZ0hvdXJzJzsKICAgICRDYWxlbmRhck5hbWUgLj0gJFVzZXJEYXRhe0NhbGVuZGFyfSA/ICI6OkNhbGVuZGFyJFVzZXJEYXRhe0NhbGVuZGFyfSIgOiAnJzsKICAgIG15ICRDYWxlbmRhcldvcmtpbmdIb3VycyA9ICRDb25maWdPYmplY3QtPkdldCgkQ2FsZW5kYXJOYW1lKTsKCiAgICAjIHNob3cgIm90aGVyIHRpbWVzIiBibG9jaywgaWYgbmVjZXNzYXJ5CiAgICBpZiAoCiAgICAgICAgSXNBcnJheVJlZldpdGhEYXRhKCAkQ2FsZW5kYXJXb3JraW5nSG91cnMtPnsgJFdlZWtkYXlBcnJheVsgJFBhcmFte1dlZWtkYXl9IC0gMSBdIH0gKQogICAgICAgICYmICEkVmFjYXRpb25DaGVjawogICAgICAgICkKICAgIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnT3RoZXJUaW1lcycsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgJUZyb250ZW5kLAogICAgICAgICAgICAgICAgJUVycm9ycywKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgICRQYXJhbXtXZWVrZGF5X3RvX1RleHR9ID0gJFdlZWtkYXlBcnJheVsgJFBhcmFte1dlZWtkYXl9IC0gMSBdOwoKICAgICMgaW50ZWdyYXRlIHRoZSBoYW5kbGluZyBmb3IgcmVxdWlyZWQgcmVtYXJrcyBpbiByZWxhdGlvbiB0byBwcm9qZWN0cwogICAgJFBhcmFte1JlbWFya1JlZ0V4cH0gPSAkU2VsZi0+X1Byb2plY3QyUmVtYXJrUmVnRXhwKCk7CiAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgS2V5ICAgPT4gJ1JlbWFya1JlZ0V4cCcsCiAgICAgICAgVmFsdWUgPT4gJFBhcmFte1JlbWFya1JlZ0V4cH0sCiAgICApOwoKICAgICMgYnVpbGQgb3V0cHV0CiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKAogICAgICAgIFRpdGxlID0+ICdFZGl0JywKICAgICk7CgogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdPdmVydmlld1Byb2plY3QnLAogICAgICAgIERhdGEgPT4geyAlUGFyYW0sICVGcm9udGVuZCB9LAogICAgKTsKCiAgICBpZiAoICEkSW5jb21wbGV0ZVdvcmtpbmdEYXlze0VuZm9yY2VJbnNlcnR9ICkgewoKICAgICAgICAjIHNob3cgY3JlYXRlIHByb2plY3QgbGluaywgaWYgYWxsb3dlZAogICAgICAgIG15ICVVc2VyRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckdldCgKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwogICAgICAgIGlmICggJFVzZXJEYXRhe0NyZWF0ZVByb2plY3R9ICkgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NyZWF0ZVByb2plY3QnLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICBpZiAoJEVycm9yTm90ZSkgewogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICBJbmZvICAgICA9PiAkRXJyb3JOb3RlLAogICAgICAgICAgICBQcmlvcml0eSA9PiAnRXJyb3InLAogICAgICAgICk7CiAgICB9CiAgICBlbHNpZiAoIGRlZmluZWQgJFBhcmFte1N1Y2Nlc3NmdWxJbnNlcnR9ICkKICAgIHsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgSW5mbyA9PiBUcmFuc2xhdGFibGUoJ1N1Y2Nlc3NmdWwgaW5zZXJ0IScpLAogICAgICAgICk7CiAgICB9CgogICAgIyBzaG93IG1hc3MgZW50cnkgbm90aWZpY2F0aW9uCiAgICBpZiAoICRQYXJhbXtOb3RpZmljYXRpb259IGVxICdFcnJvcicgKSB7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgIEluZm8gICAgID0+IFRyYW5zbGF0YWJsZSgnRXJyb3Igd2hpbGUgaW5zZXJ0aW5nIG11bHRpcGxlIGRhdGVzIScpLAogICAgICAgICAgICBQcmlvcml0eSA9PiAnRXJyb3InLAogICAgICAgICk7CiAgICB9CiAgICBlbHNpZiAoICRQYXJhbXtOb3RpZmljYXRpb259IGVxICdTdWNjZXNzZnVsJyApIHsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgSW5mbyA9PiBUcmFuc2xhdGFibGUoJ1N1Y2Nlc3NmdWxseSBpbnNlcnRlZCBlbnRyaWVzIGZvciBzZXZlcmFsIGRhdGVzIScpLAogICAgICAgICk7CiAgICB9CgogICAgIyBzaG93IG5vdGlmaWNhdGlvbiBpZiB3cm9uZyBkYXRlIHdhcyBzZWxlY3RlZAogICAgaWYgKCAkUGFyYW17V3JvbmdEYXRlfSApIHsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgSW5mbyAgICAgPT4gVHJhbnNsYXRhYmxlKCdFbnRlcmVkIGRhdGUgd2FzIGludmFsaWQhIERhdGUgd2FzIGNoYW5nZWQgdG8gdG9kYXkuJyksCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdFcnJvcicsCiAgICAgICAgKTsKICAgIH0KCiAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgS2V5ICAgPT4gJ1llYXInLAogICAgICAgIFZhbHVlID0+ICRQYXJhbXtZZWFyfSwKICAgICk7CiAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgS2V5ICAgPT4gJ01vbnRoJywKICAgICAgICBWYWx1ZSA9PiAkUGFyYW17TW9udGh9LAogICAgKTsKICAgICRMYXlvdXRPYmplY3QtPkFkZEpTRGF0YSgKICAgICAgICBLZXkgICA9PiAnRGF5JywKICAgICAgICBWYWx1ZSA9PiAkUGFyYW17RGF5fSwKICAgICk7CgogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nRWRpdCcsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAlRnJvbnRlbmQsCiAgICAgICAgfSwKICAgICk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwogICAgcmV0dXJuICRPdXRwdXQ7Cgp9CgpzdWIgX0ZpcnN0VXNlclJlZGlyZWN0IHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBGb3IgaW5pdGlhbCB1c2FnZSwgdGhlIGZpcnN0IGFnZW50IHdpdGggJ3J3JyByaWdodHMgd2lsbCBiZSByZWRpcmVjdGVkIHRvICdTZXR0aW5nJy4gVGhlbiB0aGV5IGNhbiBjb25maWd1cmUKICAgICMgICBpbml0aWFsIHNldHRpbmdzIGZvciB0aGUgdGltZSBhY2NvdW50aW5nIGZlYXR1cmUuCgogICAgIyBEZWZpbmUgYWN0aW9uIGFuZCBnZXQgaXRzIGZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24uCiAgICBteSAkQWN0aW9uID0gJ0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nJzsKICAgIG15ICRDb25maWcgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0Zyb250ZW5kOjpNb2R1bGUnKS0+eyRBY3Rpb259OwoKICAgICMgR2V0IGdyb3VwIG5hbWVzIGZyb20gY29uZmlnLgogICAgbXkgQEdyb3VwTmFtZXMgPSBAeyAkQ29uZmlnLT57R3JvdXB9IHx8IFtdIH07CgogICAgbXkgJFBlcm1pc3Npb24gPSAwOwoKICAgICMgSWYgYWNjZXNzIGlzIHJlc3RyaWN0ZWQsIGFsbG93IGFjY2VzcyBvbmx5IGlmIHVzZXIgaGFzIGFwcHJvcHJpYXRlIHBlcm1pc3Npb25zIGluIGNvbmZpZ3VyZWQgZ3JvdXAocykuCiAgICBpZiAoQEdyb3VwTmFtZXMpIHsKCiAgICAgICAgbXkgJEdyb3VwT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyk7CgogICAgICAgICMgR2V0IHVzZXIgZ3JvdXBzLCB3aGVyZSB0aGUgdXNlciBoYXMgdGhlIGFwcHJvcHJpYXRlIHBlcm1pc3Npb25zLgogICAgICAgIG15ICVHcm91cHMgPSAkR3JvdXBPYmplY3QtPkdyb3VwTWVtYmVyTGlzdCgKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgVHlwZSAgID0+ICdydycsCiAgICAgICAgICAgIFJlc3VsdCA9PiAnSEFTSCcsCiAgICAgICAgKTsKCiAgICAgICAgR1JPVVA6CiAgICAgICAgZm9yIG15ICRHcm91cE5hbWUgKEBHcm91cE5hbWVzKSB7CiAgICAgICAgICAgIG5leHQgR1JPVVAgaWYgISRHcm91cE5hbWU7CgogICAgICAgICAgICAjIEdldCB0aGUgZ3JvdXAgSUQuCiAgICAgICAgICAgIG15ICRHcm91cElEID0gJEdyb3VwT2JqZWN0LT5Hcm91cExvb2t1cCgKICAgICAgICAgICAgICAgIEdyb3VwID0+ICRHcm91cE5hbWUsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG5leHQgR1JPVVAgaWYgISRHcm91cElEOwoKICAgICAgICAgICAgIyBTdG9wIGNoZWNraW5nIGlmIG1lbWJlcnNoaXAgaW4gYXQgbGVhc3Qgb25lIGdyb3VwIGlzIGZvdW5kLgogICAgICAgICAgICBpZiAoICRHcm91cHN7JEdyb3VwSUR9ICkgewogICAgICAgICAgICAgICAgJFBlcm1pc3Npb24gPSAxOwogICAgICAgICAgICAgICAgbGFzdCBHUk9VUDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIE90aGVyd2lzZSwgYWx3YXlzIGFsbG93IGFjY2Vzcy4KICAgIGVsc2UgewogICAgICAgICRQZXJtaXNzaW9uID0gMTsKICAgIH0KCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCggT1AgPT4gIkFjdGlvbj0kQWN0aW9uIiApIGlmICRQZXJtaXNzaW9uOwoKICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICBNZXNzYWdlID0+CiAgICAgICAgICAgIFRyYW5zbGF0YWJsZSgnTm8gdGltZSBwZXJpb2QgY29uZmlndXJlZCwgb3IgdGhlIHNwZWNpZmllZCBkYXRlIGlzIG91dHNpZGUgb2YgdGhlIGRlZmluZWQgdGltZSBwZXJpb2RzLicpLAogICAgICAgIENvbW1lbnQgPT4gVHJhbnNsYXRhYmxlKCdQbGVhc2UgY29udGFjdCB0aGUgdGltZSBhY2NvdW50aW5nIGFkbWluaXN0cmF0b3IgdG8gdXBkYXRlIHlvdXIgdGltZSBwZXJpb2RzIScpLAogICAgKTsKfQoKc3ViIF9BY3Rpb25MaXN0IHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgbXkgJUFjdGlvbkxpc3Q7CiAgICBteSAlQWN0aW9uID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyktPkFjdGlvblNldHRpbmdzR2V0KCk7CgogICAgIyBnZXQgYWN0aW9uIHNldHRpbmdzCiAgICBBQ1RJT05JRDoKICAgIGZvciBteSAkQWN0aW9uSUQgKCBzb3J0IGtleXMgJUFjdGlvbiApIHsKICAgICAgICBuZXh0IEFDVElPTklEIGlmICEkQWN0aW9ueyRBY3Rpb25JRH17QWN0aW9uU3RhdHVzfTsKICAgICAgICBuZXh0IEFDVElPTklEIGlmICEkQWN0aW9ueyRBY3Rpb25JRH17QWN0aW9ufTsKICAgICAgICAkQWN0aW9uTGlzdHskQWN0aW9uSUR9ID0gJEFjdGlvbnskQWN0aW9uSUR9e0FjdGlvbn07CiAgICB9CiAgICAkQWN0aW9uTGlzdHsnJ30gPSAnJzsKCiAgICByZXR1cm4gJUFjdGlvbkxpc3Q7Cn0KCnN1YiBfQWN0aW9uTGlzdENvbnN0cmFpbnRzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJUxpc3Q7CiAgICBpZiAoICRQYXJhbXtQcm9qZWN0SUR9ICYmIGtleXMgJXsgJFBhcmFte0FjdGlvbkxpc3RDb25zdHJhaW50c30gfSApIHsKICAgICAgICBteSAkUHJvamVjdE5hbWU7CgogICAgICAgIFBST0pFQ1Q6CiAgICAgICAgZm9yIG15ICRQcm9qZWN0ICggQHsgJFBhcmFte1Byb2plY3RMaXN0fS0+e0FsbFByb2plY3RzfSB9ICkgewogICAgICAgICAgICBpZiAoICRQcm9qZWN0LT57S2V5fSBlcSAkUGFyYW17UHJvamVjdElEfSApIHsKICAgICAgICAgICAgICAgICRQcm9qZWN0TmFtZSA9ICRQcm9qZWN0LT57VmFsdWV9OwogICAgICAgICAgICAgICAgbGFzdCBQUk9KRUNUOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoIGRlZmluZWQoJFByb2plY3ROYW1lKSApIHsKCiAgICAgICAgICAgICMgbG9vcCBvdmVyIGFjdGlvbnMgdG8gZmluZCBtYXRjaGVzIGZvciBjb25maWd1cmVkIHByb2plY3QKICAgICAgICAgICAgIyBhbmQgYWN0aW9uIHJlZy1leHAgcGFpcnMKICAgICAgICAgICAgZm9yIG15ICRBY3Rpb25JRCAoIHNvcnQga2V5cyAleyAkUGFyYW17QWN0aW9uTGlzdH0gfSApIHsKCiAgICAgICAgICAgICAgICBteSAkQWN0aW9uTmFtZSA9ICRQYXJhbXtBY3Rpb25MaXN0fS0+eyRBY3Rpb25JRH07CgogICAgICAgICAgICAgICAgUFJPSkVDVE5BTUVSRUdFWFA6CiAgICAgICAgICAgICAgICBmb3IgbXkgJFByb2plY3ROYW1lUmVnRXhwICggc29ydCBrZXlzICV7ICRQYXJhbXtBY3Rpb25MaXN0Q29uc3RyYWludHN9IH0gKSB7CiAgICAgICAgICAgICAgICAgICAgbXkgJEFjdGlvbk5hbWVSZWdFeHAgPSAkUGFyYW17QWN0aW9uTGlzdENvbnN0cmFpbnRzfS0+eyRQcm9qZWN0TmFtZVJlZ0V4cH07CiAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgICAkUHJvamVjdE5hbWUgICA9fiBteyRQcm9qZWN0TmFtZVJlZ0V4cH1zbXgKICAgICAgICAgICAgICAgICAgICAgICAgJiYgJEFjdGlvbk5hbWUgPX4gbXskQWN0aW9uTmFtZVJlZ0V4cH1zbXgKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJExpc3R7JEFjdGlvbklEfSA9ICRBY3Rpb25OYW1lOwogICAgICAgICAgICAgICAgICAgICAgICBsYXN0IFBST0pFQ1ROQU1FUkVHRVhQOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIGFsbCBhdmFpbGFibGUgYWN0aW9ucyB3aWxsIGJlIGFkZGVkIGlmIG5vIGFjdGlvbiB3YXMgYWRkZWQgYWJvdmUgKHBvc3NpYmxlIG1pc2NvbmZpZ3VyYXRpb24pCiAgICBpZiAoICFrZXlzICVMaXN0ICkgewogICAgICAgIGZvciBteSAkQWN0aW9uSUQgKCBzb3J0IGtleXMgJXsgJFBhcmFte0FjdGlvbkxpc3R9IH0gKSB7CiAgICAgICAgICAgIG15ICRBY3Rpb25OYW1lID0gJFBhcmFte0FjdGlvbkxpc3R9LT57JEFjdGlvbklEfTsKICAgICAgICAgICAgJExpc3R7JEFjdGlvbklEfSA9ICRBY3Rpb25OYW1lOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gXCVMaXN0Owp9CgpzdWIgX1Byb2plY3RMaXN0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgdGltZSBhY2NvdW50aW5nIG9iamVjdAogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgIyBnZXQgcHJvamVjdCBzZXR0aW5ncwogICAgbXkgJVByb2plY3QgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0dldCgKICAgICAgICBTdGF0dXMgPT4gJ3ZhbGlkJywKICAgICk7CgogICAgaWYgKCAhJFNlbGYtPntMYXN0UHJvamVjdHNSZWZ9ICkgewoKICAgICAgICAjIGdldCB0aGUgbGFzdCBwcm9qZWN0cwogICAgICAgIG15IEBMYXN0UHJvamVjdHMgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkxhc3RQcm9qZWN0c09mVXNlcigKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIGFkZCB0aGUgZmF2b3JpdGVzCiAgICAgICAgJXsgJFNlbGYtPntMYXN0UHJvamVjdHNSZWZ9IH0gPSBtYXAgeyAkXyA9PiAxIH0gQExhc3RQcm9qZWN0czsKICAgIH0KCiAgICBteSBATGFzdFByb2plY3RzID0gKAogICAgICAgIHsKICAgICAgICAgICAgS2V5ICAgPT4gJycsCiAgICAgICAgICAgIFZhbHVlID0+ICctJywKICAgICAgICB9LAogICAgKTsKCiAgICAjIGFkZCB0aGUgc2VwYXJhdG9yCiAgICBQUk9KRUNUSUQ6CiAgICBmb3IgbXkgJFByb2plY3RJRCAoCiAgICAgICAgc29ydCB7ICRQcm9qZWN0e1Byb2plY3R9eyRhfSBjbXAgJFByb2plY3R7UHJvamVjdH17JGJ9IH0KICAgICAgICBrZXlzICV7ICRQcm9qZWN0e1Byb2plY3R9IH0KICAgICAgICApCiAgICB7CiAgICAgICAgbmV4dCBQUk9KRUNUSUQgaWYgISRTZWxmLT57TGFzdFByb2plY3RzUmVmfS0+eyRQcm9qZWN0SUR9OwogICAgICAgIG15ICVIYXNoID0gKAogICAgICAgICAgICBLZXkgICA9PiAkUHJvamVjdElELAogICAgICAgICAgICBWYWx1ZSA9PiAkUHJvamVjdHtQcm9qZWN0fXskUHJvamVjdElEfSwKICAgICAgICApOwogICAgICAgIHB1c2ggQExhc3RQcm9qZWN0cywgXCVIYXNoOwogICAgfQoKICAgIEBMYXN0UHJvamVjdHMgPSAkU2VsZi0+X1Byb2plY3RMaXN0Q29uc3RyYWludHMoCiAgICAgICAgTGlzdCAgICAgICA9PiBcQExhc3RQcm9qZWN0cywKICAgICAgICBTZWxlY3RlZElEID0+ICRQYXJhbXtTZWxlY3RlZElEfSB8fCAnJywKICAgICk7CgogICAgbXkgQEFsbFByb2plY3RzOwogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBjaGVjayBpZiBBdXRvQ29tcGxldGlvbiBpcyBkaXNhYmxlZAogICAgIyBpbiB0aGlzIGNhc2UgYSBzZXBhcmF0b3IgaXMgbmVlZGVkIGJldHdlZW4gdHdvIGxpc3RzIG9mIHByb2plY3RzIChsYXN0IGFuZCBhbGwpCiAgICBpZiAoCiAgICAgICAgISRDb25maWdPYmplY3QtPkdldCgiVGltZUFjY291bnRpbmc6OkVuYWJsZUF1dG9Db21wbGV0aW9uIikKICAgICAgICB8fCAhJENvbmZpZ09iamVjdC0+R2V0KCJUaW1lQWNjb3VudGluZzo6VXNlRmlsdGVyIikKICAgICAgICApCiAgICB7CiAgICAgICAgaWYgKCBzY2FsYXIgQExhc3RQcm9qZWN0cyA+IDEgKSB7CgogICAgICAgICAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICAgICAgICAgIyBhZGQgbGFzdCBwcm9qZWN0cyBzZXBhcmF0b3IgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgbGlzdAogICAgICAgICAgICBteSAkTGFzdFByb2plY3RzU3RyID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdMYXN0IFNlbGVjdGVkIFByb2plY3RzJyk7CgogICAgICAgICAgICB1bnNoaWZ0IEBMYXN0UHJvamVjdHMsIHsKICAgICAgICAgICAgICAgIEtleSAgICAgID0+ICcwJywKICAgICAgICAgICAgICAgIFZhbHVlICAgID0+ICItLS0kTGFzdFByb2plY3RzU3RyLS0tIiwKICAgICAgICAgICAgICAgIERpc2FibGVkID0+IDEsCiAgICAgICAgICAgIH07CgogICAgICAgICAgICAjIGFkZCBhbGwgcHJvamVjdHMgc2VwYXJhdG9yIHJpZ2h0IGFmdGVyIHRoZSBsYXN0IHNlbGVjdGVkIHByb2plY3RzIGxpc3QKICAgICAgICAgICAgbXkgJEFsbFByb2plY3RzU3RyID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdBbGwgUHJvamVjdHMnKTsKCiAgICAgICAgICAgIHB1c2ggQExhc3RQcm9qZWN0cywgewogICAgICAgICAgICAgICAgS2V5ICAgICAgPT4gJzAnLAogICAgICAgICAgICAgICAgVmFsdWUgICAgPT4gIi0tLSRBbGxQcm9qZWN0c1N0ci0tLSIsCiAgICAgICAgICAgICAgICBEaXNhYmxlZCA9PiAxLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KICAgIGVsc2UgewogICAgICAgIEBBbGxQcm9qZWN0cyA9ICgKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgS2V5ICAgPT4gJycsCiAgICAgICAgICAgICAgICBWYWx1ZSA9PiAnLScsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGFkZCBhbGwgYWxsb3dlZCBwcm9qZWN0cyB0byB0aGUgbGlzdAogICAgUFJPSkVDVElEOgogICAgZm9yIG15ICRQcm9qZWN0SUQgKAogICAgICAgIHNvcnQgeyAkUHJvamVjdHtQcm9qZWN0fXskYX0gY21wICRQcm9qZWN0e1Byb2plY3R9eyRifSB9CiAgICAgICAga2V5cyAleyAkUHJvamVjdHtQcm9qZWN0fSB9CiAgICAgICAgKQogICAgewogICAgICAgIG5leHQgUFJPSkVDVElEIGlmICEkUHJvamVjdHtQcm9qZWN0fXskUHJvamVjdElEfTsKICAgICAgICBteSAlSGFzaCA9ICgKICAgICAgICAgICAgS2V5ICAgPT4gJFByb2plY3RJRCwKICAgICAgICAgICAgVmFsdWUgPT4gJFByb2plY3R7UHJvamVjdH17JFByb2plY3RJRH0sCiAgICAgICAgKTsKICAgICAgICBpZiAoICRQYXJhbXtTZWxlY3RlZElEfSAmJiAkUGFyYW17U2VsZWN0ZWRJRH0gZXEgJFByb2plY3RJRCApIHsKICAgICAgICAgICAgJEhhc2h7U2VsZWN0ZWR9ID0gMTsKICAgICAgICB9CgogICAgICAgIHB1c2ggQEFsbFByb2plY3RzLCBcJUhhc2g7CiAgICB9CgogICAgQEFsbFByb2plY3RzID0gJFNlbGYtPl9Qcm9qZWN0TGlzdENvbnN0cmFpbnRzKAogICAgICAgIExpc3QgICAgICAgPT4gXEBBbGxQcm9qZWN0cywKICAgICAgICBTZWxlY3RlZElEID0+ICRQYXJhbXtTZWxlY3RlZElEfSB8fCAnJywKICAgICk7CgogICAgbXkgJVByb2plY3RzID0gKAogICAgICAgIExhc3RQcm9qZWN0cyA9PiBcQExhc3RQcm9qZWN0cywKICAgICAgICBBbGxQcm9qZWN0cyAgPT4gXEBBbGxQcm9qZWN0cywKICAgICk7CgogICAgcmV0dXJuIFwlUHJvamVjdHM7Cn0KCnN1YiBfUHJvamVjdExpc3RDb25zdHJhaW50cyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15IEBMaXN0OwogICAgbXkgJFByb2plY3RDb3VudCAgICAgICAgICAgPSAwOwogICAgbXkgJFByb2plY3RMaXN0Q29uc3RyYWludHMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpQcm9qZWN0TGlzdENvbnN0cmFpbnRzJyk7CgogICAgaWYgKCBrZXlzICV7JFByb2plY3RMaXN0Q29uc3RyYWludHN9ICkgewoKICAgICAgICAjIGdldCBncm91cHMgb2YgY3VycmVudCB1c2VyCiAgICAgICAgbXkgJUdyb3VwcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpLT5Hcm91cE1lbWJlckxpc3QoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgIFR5cGUgICA9PiAncm8nLAogICAgICAgICAgICBSZXN1bHQgPT4gJ0hBU0gnLAogICAgICAgICk7CiAgICAgICAgJUdyb3VwcyA9IG1hcCB7ICRHcm91cHN7JF99ID0+IDEgfSBrZXlzICVHcm91cHM7CgogICAgICAgICMgZ2V0IHByb2plY3QgbGlzdCBjb25zdHJhaW50cwogICAgICAgIG15ICVQcm9qZWN0UmVnZXg7CiAgICAgICAgZm9yIG15ICRQcm9qZWN0UmVnZXggKCBzb3J0IGtleXMgJXskUHJvamVjdExpc3RDb25zdHJhaW50c30gKSB7CiAgICAgICAgICAgIGZvciBteSAkUHJvamVjdEdyb3VwICggc3BsaXQgLyxccyovLCAkUHJvamVjdExpc3RDb25zdHJhaW50cy0+eyRQcm9qZWN0UmVnZXh9ICkgewogICAgICAgICAgICAgICAgaWYgKCAkR3JvdXBzeyRQcm9qZWN0R3JvdXB9ICkgewogICAgICAgICAgICAgICAgICAgICRQcm9qZWN0UmVnZXh7JFByb2plY3RSZWdleH0gPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIG15IEBQcm9qZWN0UmVnZXggPSBrZXlzICVQcm9qZWN0UmVnZXg7CgogICAgICAgICMgcmVkdWNlIHByb2plY3QgbGlzdCBhY2NvcmRpbmcgdG8gY29uZmlndXJhdGlvbgogICAgICAgIGlmICggcmVmKCAkUGFyYW17TGlzdH0gKSAmJiBAUHJvamVjdFJlZ2V4ICkgewoKICAgICAgICAgICAgbXkgJEVsZW1lbnRDb3VudCA9IDA7CgogICAgICAgICAgICBmb3IgbXkgJFByb2plY3QgKCBAeyAkUGFyYW17TGlzdH0gfSApIHsKICAgICAgICAgICAgICAgIG15ICRQcm9qZWN0TmFtZSA9ICRQcm9qZWN0LT57VmFsdWV9OwoKICAgICAgICAgICAgICAgICMgZW1wdHkgZmlyc3QgZWxlbWVudCwgbGFzdCBwcm9qZWN0cyBzZXBhcmF0b3IgYW5kIGN1cnJlbnRseSBzZWxlY3RlZCBwcm9qZWN0CiAgICAgICAgICAgICAgICBpZiAoICEkRWxlbWVudENvdW50IHx8ICEkUHJvamVjdC0+e0tleX0gfHwgJFByb2plY3QtPntLZXl9IGVxICRQYXJhbXtTZWxlY3RlZElEfSApIHsKICAgICAgICAgICAgICAgICAgICBwdXNoIEBMaXN0LCAkUHJvamVjdDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgIFBST0pFQ1RSRUdFWFA6CiAgICAgICAgICAgICAgICAgICAgZm9yIG15ICRQcm9qZWN0UmVnZXggKEBQcm9qZWN0UmVnZXgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAkUHJvamVjdE5hbWUgPX4gbXskUHJvamVjdFJlZ2V4fXNteCApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2ggQExpc3QsICRQcm9qZWN0OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFByb2plY3RDb3VudCsrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdCBQUk9KRUNUUkVHRVhQOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJEVsZW1lbnRDb3VudCsrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IGZ1bGwgcHJvamVjdCBsaXN0IGlmIGNvbnN0cmFpbnRzIHJlc3VsdGVkIGluIGVtcHR5IHByb2plY3QgbGlzdCBvciBpZiBjb25zdHJhaW50cyBhcmVuJ3QKICAgICMgY29uZmlndXJlZCAocG9zc2libGUgbWlzY29uZmlndXJhdGlvbikKICAgIGlmICggISRQcm9qZWN0Q291bnQgKSB7CiAgICAgICAgQExpc3QgPSBAeyAkUGFyYW17TGlzdH0gfTsKICAgIH0KCiAgICByZXR1cm4gQExpc3Q7Cn0KCiMgaW50ZWdyYXRlIHRoZSBoYW5kbGluZyBmb3IgcmVxdWlyZWQgcmVtYXJrcyBpbiByZWxhdGlvbiB0byBwcm9qZWN0cwoKc3ViIF9Qcm9qZWN0MlJlbWFya1JlZ0V4cCB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgIG15IEBQcm9qZWN0czJSZW1hcmsgPSAoKTsKICAgIG15ICVQcm9qZWN0RGF0YSAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKS0+UHJvamVjdFNldHRpbmdzR2V0KAogICAgICAgIFN0YXR1cyA9PiAndmFsaWQnLAogICAgKTsKCiAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICByZXR1cm4gJycgaWYgISRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6OlByb2plY3QyUmVtYXJrUmVnRXhwJyk7CgogICAgbXkgJFByb2plY3QyUmVtYXJrUmVnRXhwID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6UHJvamVjdDJSZW1hcmtSZWdFeHAnKTsKCiAgICBmb3IgbXkgJFByb2plY3RJRCAoIHNvcnQga2V5cyAleyAkUHJvamVjdERhdGF7UHJvamVjdH0gfSApIHsKICAgICAgICBpZiAoICRQcm9qZWN0RGF0YXtQcm9qZWN0fXskUHJvamVjdElEfSA9fiBteyRQcm9qZWN0MlJlbWFya1JlZ0V4cH1zbXggKSB7CiAgICAgICAgICAgIHB1c2ggQFByb2plY3RzMlJlbWFyaywgJFByb2plY3RJRDsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIGpvaW4gJ3wnLCBAUHJvamVjdHMyUmVtYXJrOwp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6TGFuZ3VhZ2UgcXcoVHJhbnNsYXRhYmxlKTsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CgogICAgJFNlbGYtPntUaW1lWm9uZX0gPSAkUGFyYW17VGltZVpvbmV9CiAgICAgICAgfHwgJFBhcmFte1VzZXJUaW1lWm9uZX0KICAgICAgICB8fCAkRGF0ZVRpbWVPYmplY3QtPk9UUlNUaW1lWm9uZUdldCgpOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15IEBNb250aEFycmF5ID0gKAogICAgICAgICcnLCAgICAgJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAgICAgJ0FwcmlsJywgICAnTWF5JywKICAgICAgICAnSnVuZScsICdKdWx5JywgICAgJ0F1Z3VzdCcsICAgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywKICAgICAgICAnRGVjZW1iZXInLAogICAgKTsKICAgIG15IEBXZWVrZGF5QXJyYXkgPSAoICdNb24nLCAnVHVlJywgJ1dlZCcsICdUaHUnLCAnRnJpJywgJ1NhdCcsICdTdW4nLCApOwoKICAgICMgZ2V0IHRpbWUgb2JqZWN0CiAgICBteSAkRGF0ZVRpbWVPYmplY3RDdXJyZW50ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CiAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgb3ZlcnZpZXcgYWJvdXQgdGhlIHVzZXJzIHRpbWUgYWNjb3VudGluZwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIG15ICggJFNlYywgJE1pbiwgJEhvdXIsICRDdXJyZW50RGF5LCAkTW9udGgsICRZZWFyICkgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICBTeXN0ZW1UaW1lID0+ICREYXRlVGltZU9iamVjdEN1cnJlbnQtPlRvRXBvY2goKSwKICAgICk7CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIHBlcm1pc3Npb24gY2hlY2sKICAgIGlmICggISRTZWxmLT57QWNjZXNzUm99ICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5Ob1Blcm1pc3Npb24oCiAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgKTsKICAgIH0KCiAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoU3RhdHVzIERheSBNb250aCBZZWFyIFVzZXJJRCBQcm9qZWN0U3RhdHVzU2hvdykpIHsKICAgICAgICAkUGFyYW17JFBhcmFtZXRlcn0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0JyktPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyICk7CiAgICB9CiAgICAkUGFyYW17QWN0aW9ufSA9ICdBZ2VudFRpbWVBY2NvdW50aW5nRWRpdCc7CgogICAgaWYgKCAhJFBhcmFte1VzZXJJRH0gKSB7CiAgICAgICAgJFBhcmFte1VzZXJJRH0gPSAkU2VsZi0+e1VzZXJJRH07CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBpZiAoICRQYXJhbXtVc2VySUR9ICE9ICRTZWxmLT57VXNlcklEfSAmJiAhJFNlbGYtPntBY2Nlc3NSd30gKSB7CgogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Tm9QZXJtaXNzaW9uKAogICAgICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgJFBhcmFte0FjdGlvbn0gPSAnQWdlbnRUaW1lQWNjb3VudGluZ1ZpZXcnOwogICAgfQogICAgaWYgKCAkUGFyYW17VXNlcklEfSAhPSAkU2VsZi0+e1VzZXJJRH0gKSB7CiAgICAgICAgbXkgJVNob3duVXNlcnMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTGlzdCgKICAgICAgICAgICAgVHlwZSAgPT4gJ0xvbmcnLAogICAgICAgICAgICBWYWxpZCA9PiAxCiAgICAgICAgKTsKICAgICAgICAkUGFyYW17VXNlcn0gPSAkU2hvd25Vc2Vyc3sgJFBhcmFte1VzZXJJRH0gfTsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnVXNlcicsCiAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIENoZWNrIERhdGUKICAgIGlmICggISRQYXJhbXtZZWFyfSB8fCAhJFBhcmFte01vbnRofSApIHsKICAgICAgICAkUGFyYW17WWVhcn0gID0gJFllYXI7CiAgICAgICAgJFBhcmFte01vbnRofSA9ICRNb250aDsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRQYXJhbXtNb250aH0gPSBzcHJpbnRmKCAiJTAyZCIsICRQYXJhbXtNb250aH0gKTsKICAgIH0KCiAgICAjIHN0b3JlIGxhc3Qgc2NyZWVuCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6QXV0aFNlc3Npb24nKS0+VXBkYXRlU2Vzc2lvbklEKAogICAgICAgIFNlc3Npb25JRCA9PiAkU2VsZi0+e1Nlc3Npb25JRH0sCiAgICAgICAgS2V5ICAgICAgID0+ICdMYXN0U2NyZWVuJywKICAgICAgICBWYWx1ZSA9PgogICAgICAgICAgICAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufTtZZWFyPSRQYXJhbXtZZWFyfTtNb250aD0kUGFyYW17TW9udGh9IiwKICAgICk7CgogICAgJFBhcmFte01vbnRoX3RvX1RleHR9ID0gJE1vbnRoQXJyYXlbICRQYXJhbXtNb250aH0gXTsKCiAgICAjIGNyZWF0ZSBvbmUgYmFzZSBvYmplY3QKICAgIG15ICREYXRlVGltZU9iamVjdEdpdmVuID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICBZZWFyICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgICAgIE1vbnRoID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgICAgIERheSAgID0+IDEsCiAgICAgICAgfSwKICAgICk7CgogICAgbXkgJERhdGVUaW1lT2JqZWN0TmV4dCA9ICREYXRlVGltZU9iamVjdEdpdmVuLT5DbG9uZSgpOwogICAgbXkgJERhdGVUaW1lT2JqZWN0UHJldiA9ICREYXRlVGltZU9iamVjdEdpdmVuLT5DbG9uZSgpOwogICAgbXkgJERhdGVQYXJhbXNDdXJyZW50ICA9ICREYXRlVGltZU9iamVjdEdpdmVuLT5HZXQoKTsKCiAgICAjIGNhbGN1bGF0ZSB0aGUgbmV4dCBtb250aAogICAgJERhdGVUaW1lT2JqZWN0TmV4dC0+QWRkKAogICAgICAgIE1vbnRocyA9PiAxLAogICAgKTsKCiAgICBteSAkRGF0ZVBhcmFtc05leHQgPSAkRGF0ZVRpbWVPYmplY3ROZXh0LT5HZXQoKTsKCiAgICAkUGFyYW17WWVhck5leHR9ICA9ICREYXRlUGFyYW1zTmV4dC0+e1llYXJ9OwogICAgJFBhcmFte01vbnRoTmV4dH0gPSAkRGF0ZVBhcmFtc05leHQtPntNb250aH07CiAgICAkUGFyYW17RGF5TmV4dH0gICA9ICREYXRlUGFyYW1zTmV4dC0+e0RheX07CgogICAgIyBjYWxjdWxhdGUgdGhlIG5leHQgbW9udGgKICAgICREYXRlVGltZU9iamVjdFByZXYtPlN1YnRyYWN0KAogICAgICAgIE1vbnRocyA9PiAxLAogICAgKTsKCiAgICBteSAkRGF0ZVBhcmFtc0JhY2sgPSAkRGF0ZVRpbWVPYmplY3RQcmV2LT5HZXQoKTsKICAgICRQYXJhbXtZZWFyQmFja30gID0gJERhdGVQYXJhbXNCYWNrLT57WWVhcn07CiAgICAkUGFyYW17TW9udGhCYWNrfSA9ICREYXRlUGFyYW1zQmFjay0+e01vbnRofTsKICAgICRQYXJhbXtEYXlCYWNrfSAgID0gJERhdGVQYXJhbXNCYWNrLT57RGF5fTsKCiAgICAjIE92ZXJ2aWV3IHBlciBkYXkKICAgIG15ICRMYXN0RGF5T2ZNb250aCA9ICREYXRlVGltZU9iamVjdEdpdmVuLT5MYXN0RGF5T2ZNb250aEdldCgpOwogICAgbXkgJERheXNPZk1vbnRoICAgID0gJExhc3REYXlPZk1vbnRoLT57RGF5fTsKCiAgICBteSAlVXNlckRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJHZXQoCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICBmb3IgbXkgJERheSAoIDEgLi4gJERheXNPZk1vbnRoICkgewogICAgICAgICRQYXJhbXtEYXl9ID0gc3ByaW50ZiggIiUwMmQiLCAkRGF5ICk7CgogICAgICAgICRQYXJhbXtXZWVrZGF5fSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+RGF5T2ZXZWVrKCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0sICRQYXJhbXtEYXl9ICk7CgogICAgICAgIG15ICRWYWNhdGlvbkNoZWNrID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5WYWNhdGlvbkNoZWNrKAogICAgICAgICAgICBZZWFyICAgICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgICAgIE1vbnRoICAgID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgICAgIERheSAgICAgID0+ICREYXksCiAgICAgICAgICAgIENhbGVuZGFyID0+ICRVc2VyRGF0YXtDYWxlbmRhcn0sCiAgICAgICAgKTsKCiAgICAgICAgbXkgJERhdGUgICAgICAgICAgICAgICAgPSBzcHJpbnRmKCAiJTA0ZC0lMDJkLSUwMmQiLCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0sICREYXkgKTsKICAgICAgICBteSAkRGF0ZVRpbWVPYmplY3RTdGFydCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICAgICAgU3RyaW5nID0+ICREYXRlIC4gJyAwMDowMDowMCcsCiAgICAgICAgICAgIH0KICAgICAgICApOwogICAgICAgIG15ICREYXlTdGFydFRpbWUgPSAkRGF0ZVRpbWVPYmplY3RTdGFydC0+VG9FcG9jaCgpOwoKICAgICAgICBteSAkRGF0ZVRpbWVPYmplY3RTdG9wID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgICAgICBTdHJpbmcgPT4gJERhdGUgLiAnIDIzOjU5OjU5JywKICAgICAgICAgICAgfQogICAgICAgICk7CiAgICAgICAgbXkgJERheVN0b3BUaW1lID0gJERhdGVUaW1lT2JqZWN0U3RvcC0+VG9FcG9jaCgpOwoKICAgICAgICAjIGFkZCB0aW1lIHpvbmUgdG8gY2FsY3VsYXRpb24KICAgICAgICBteSAkVXNlckNhbGVuZGFyID0gJFVzZXJEYXRhe0NhbGVuZGFyfSB8fCAnJzsKICAgICAgICBteSAkWm9uZSAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCAiVGltZVpvbmU6OkNhbGVuZGFyIiAuICRVc2VyQ2FsZW5kYXIgKTsKICAgICAgICBpZiAoJFpvbmUpIHsKICAgICAgICAgICAgbXkgJFpvbmVTZWNvbmRzID0gJFpvbmUgKiA2MCAqIDYwOwogICAgICAgICAgICAkRGF5U3RhcnRUaW1lID0gJERheVN0YXJ0VGltZSAtICRab25lU2Vjb25kczsKICAgICAgICAgICAgJERheVN0b3BUaW1lICA9ICREYXlTdG9wVGltZSAtICRab25lU2Vjb25kczsKICAgICAgICB9CgogICAgICAgIG15ICRUaGlzRGF5V29ya2luZ1RpbWUgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdUaW1lKAogICAgICAgICAgICBTdGFydFRpbWUgPT4gJERheVN0YXJ0VGltZSwKICAgICAgICAgICAgU3RvcFRpbWUgID0+ICREYXlTdG9wVGltZSwKICAgICAgICAgICAgQ2FsZW5kYXIgID0+ICRVc2VyQ2FsZW5kYXIsCiAgICAgICAgKSB8fCAnMCc7CgogICAgICAgIGlmICggJFBhcmFte1llYXJ9IGVxICRZZWFyICYmICRQYXJhbXtNb250aH0gZXEgJE1vbnRoICYmICRDdXJyZW50RGF5IGVxICREYXkgKSB7CiAgICAgICAgICAgICRQYXJhbXtDbGFzc30gPSAnQWN0aXZlJzsKICAgICAgICB9CiAgICAgICAgZWxzaWYgKCRWYWNhdGlvbkNoZWNrKSB7CiAgICAgICAgICAgICRQYXJhbXtDbGFzc30gICA9ICdWYWNhdGlvbic7CiAgICAgICAgICAgICRQYXJhbXtDb21tZW50fSA9ICRWYWNhdGlvbkNoZWNrOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoJFRoaXNEYXlXb3JraW5nVGltZSkgewogICAgICAgICAgICAkUGFyYW17Q2xhc3N9ID0gJ1dvcmtpbmdEYXknOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFBhcmFte0NsYXNzfSA9ICdOb25Xb3JraW5nRGF5JzsKICAgICAgICB9CgogICAgICAgIG15ICVEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNHZXQoCiAgICAgICAgICAgIFllYXIgICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgICAgIE1vbnRoICA9PiAkUGFyYW17TW9udGh9LAogICAgICAgICAgICBEYXkgICAgPT4gJFBhcmFte0RheX0sCiAgICAgICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAkUGFyYW17Q29tbWVudH0gPSAkRGF0YXtTaWNrfQogICAgICAgICAgICA/IFRyYW5zbGF0YWJsZSgnU2ljayBsZWF2ZScpCiAgICAgICAgICAgIDogJERhdGF7TGVhdmVEYXl9ID8gVHJhbnNsYXRhYmxlKCdPbiB2YWNhdGlvbicpCiAgICAgICAgICAgIDogJERhdGF7T3ZlcnRpbWV9ID8gVHJhbnNsYXRhYmxlKCdPbiBvdmVydGltZSBsZWF2ZScpCiAgICAgICAgICAgIDogICAgICAgICAgICAgICAgICAgJyc7CgogICAgICAgICRQYXJhbXtXb3JraW5nSG91cnN9ID0gJERhdGF7VG90YWx9ID8gc3ByaW50ZiggIiUuMmYiLCAkRGF0YXtUb3RhbH0gKSA6ICcnOwoKICAgICAgICAkUGFyYW17V2Vla2RheV90b19UZXh0fSA9ICRXZWVrZGF5QXJyYXlbICRQYXJhbXtXZWVrZGF5fSAtIDEgXTsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnUm93JywKICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICApOwogICAgICAgICRQYXJhbXtDb21tZW50fSA9ICcnOwogICAgfQoKICAgIG15ICVVc2VyUmVwb3J0ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyUmVwb3J0aW5nKAogICAgICAgIFllYXIgID0+ICRQYXJhbXtZZWFyfSwKICAgICAgICBNb250aCA9PiAkUGFyYW17TW9udGh9LAogICAgKTsKICAgIGZvciBteSAkUmVwb3J0RWxlbWVudCAoCiAgICAgICAgcXcoVGFyZ2V0U3RhdGUgVGFyZ2V0U3RhdGVUb3RhbCBXb3JraW5nSG91cnNUb3RhbCBXb3JraW5nSG91cnMKICAgICAgICBPdmVydGltZSBPdmVydGltZVRvdGFsIE92ZXJ0aW1lVW50aWwgTGVhdmVEYXkgTGVhdmVEYXlUb3RhbAogICAgICAgIExlYXZlRGF5UmVtYWluaW5nIFNpY2sgU2lja1RvdGFsIFNpY2tSZW1haW5pbmcpCiAgICAgICAgKQogICAgewogICAgICAgICRVc2VyUmVwb3J0eyAkUGFyYW17VXNlcklEfSB9eyRSZXBvcnRFbGVtZW50fSB8fD0gMDsKICAgICAgICAkUGFyYW17JFJlcG9ydEVsZW1lbnR9ID0gc3ByaW50ZiggIiUuMmYiLCAkVXNlclJlcG9ydHsgJFBhcmFte1VzZXJJRH0gfXskUmVwb3J0RWxlbWVudH0gKTsKICAgIH0KCiAgICBpZiAoICRVc2VyRGF0YXtTaG93T3ZlcnRpbWV9ICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdPdmVydGltZScsCiAgICAgICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgfQoKICAgICMgT3ZlcnZpZXcgcGVyIHByb2plY3QgYW5kIGFjdGlvbgogICAgbXkgJVByb2plY3REYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0QWN0aW9uUmVwb3J0aW5nKAogICAgICAgIFllYXIgICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgTW9udGggID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCBcJVByb2plY3REYXRhICkgKSB7CgogICAgICAgICMgc2hvdyB0aGUgcmVwb3J0IHNvcnQgYnkgcHJvamVjdHMKICAgICAgICBpZiAoICEkUGFyYW17UHJvamVjdFN0YXR1c1Nob3d9IHx8ICRQYXJhbXtQcm9qZWN0U3RhdHVzU2hvd30gZXEgJ3ZhbGlkJyApIHsKICAgICAgICAgICAgJFBhcmFte1Byb2plY3RTdGF0dXNTaG93fSA9ICdhbGwnOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoICRQYXJhbXtQcm9qZWN0U3RhdHVzU2hvd30gZXEgJ2FsbCcgKSB7CiAgICAgICAgICAgICRQYXJhbXtQcm9qZWN0U3RhdHVzU2hvd30gPSAndmFsaWQnOwogICAgICAgIH0KCiAgICAgICAgJFBhcmFte1Nob3dQcm9qZWN0c30gPSAnU2hvdyAnIC4gJFBhcmFte1Byb2plY3RTdGF0dXNTaG93fSAuICcgcHJvamVjdHMnOwoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnUHJvamVjdFRhYmxlJywKICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICApOwoKICAgICAgICBQUk9KRUNUSUQ6CiAgICAgICAgZm9yIG15ICRQcm9qZWN0SUQgKAogICAgICAgICAgICBzb3J0IHsgJFByb2plY3REYXRheyRhfXtOYW1lfSBjbXAgJFByb2plY3REYXRheyRifXtOYW1lfSB9IGtleXMgJVByb2plY3REYXRhCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIG15ICRQcm9qZWN0UmVmID0gJFByb2plY3REYXRheyRQcm9qZWN0SUR9OwogICAgICAgICAgICBteSAkQWN0aW9uc1JlZiA9ICRQcm9qZWN0UmVmLT57QWN0aW9uc307CgogICAgICAgICAgICAkUGFyYW17UHJvamVjdH0gPSAnJzsKICAgICAgICAgICAgJFBhcmFte1N0YXR1c30gID0gJFByb2plY3RSZWYtPntTdGF0dXN9ID8gJycgOiAncGFzc2l2JzsKCiAgICAgICAgICAgIG15ICRUb3RhbCAgICAgID0gMDsKICAgICAgICAgICAgbXkgJFRvdGFsVG90YWwgPSAwOwoKICAgICAgICAgICAgbmV4dCBQUk9KRUNUSUQgaWYgJFBhcmFte1Byb2plY3RTdGF0dXNTaG93fSBlcSAnYWxsJyAmJiAkUGFyYW17U3RhdHVzfTsKCiAgICAgICAgICAgIGlmICgkQWN0aW9uc1JlZikgewogICAgICAgICAgICAgICAgZm9yIG15ICRBY3Rpb25JRCAoCiAgICAgICAgICAgICAgICAgICAgc29ydCB7ICRBY3Rpb25zUmVmLT57JGF9e05hbWV9IGNtcCAkQWN0aW9uc1JlZi0+eyRifXtOYW1lfSB9CiAgICAgICAgICAgICAgICAgICAga2V5cyAleyRBY3Rpb25zUmVmfQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBteSAkQWN0aW9uUmVmID0gJEFjdGlvbnNSZWYtPnskQWN0aW9uSUR9OwoKICAgICAgICAgICAgICAgICAgICAkUGFyYW17QWN0aW9ufSAgICAgPSAkQWN0aW9uUmVmLT57TmFtZX07CiAgICAgICAgICAgICAgICAgICAgJFBhcmFte0hvdXJzfSAgICAgID0gc3ByaW50ZiggIiUuMmYiLCAkQWN0aW9uUmVmLT57UGVyTW9udGh9IHx8IDAgKTsKICAgICAgICAgICAgICAgICAgICAkUGFyYW17SG91cnNUb3RhbH0gPSBzcHJpbnRmKCAiJS4yZiIsICRBY3Rpb25SZWYtPntUb3RhbH0gfHwgMCApOwogICAgICAgICAgICAgICAgICAgICRUb3RhbCAgICAgICs9ICRQYXJhbXtIb3Vyc307CiAgICAgICAgICAgICAgICAgICAgJFRvdGFsVG90YWwgKz0gJFBhcmFte0hvdXJzVG90YWx9OwogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdBY3Rpb24nLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHslUGFyYW19LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAhJFBhcmFte1Byb2plY3R9ICkgewogICAgICAgICAgICAgICAgICAgICAgICAkUGFyYW17UHJvamVjdH0gPSAkUHJvamVjdFJlZi0+e05hbWV9OwogICAgICAgICAgICAgICAgICAgICAgICBteSAkUHJvamVjdERlc2NyaXB0aW9uID0gJExheW91dE9iamVjdC0+QXNjaWkySHRtbCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHQgICAgICAgICAgID0+ICRQcm9qZWN0UmVmLT57RGVzY3JpcHRpb259LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgSFRNTFJlc3VsdE1vZGUgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5ld0xpbmUgICAgICAgID0+IDUwLAogICAgICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdQcm9qZWN0JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJvd1NwYW4gPT4gKCAxICsgc2NhbGFyIGtleXMgJXskQWN0aW9uc1JlZn0gKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGF0dXMgID0+ICRQYXJhbXtTdGF0dXN9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkUHJvamVjdERlc2NyaXB0aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdQcm9qZWN0RGVzY3JpcHRpb24nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcm9qZWN0RGVzY3JpcHRpb24gPT4gJFByb2plY3REZXNjcmlwdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAkVXNlckRhdGF7Q3JlYXRlUHJvamVjdH0gKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBwZXJzb25zIHdobyBhcmUgYWxsb3dlZCB0byBzZWUgdGhlIGNyZWF0ZSBvYmplY3QgbGluayBhcmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgYWxsb3dlZCB0byBzZWUgdGhlIHByb2plY3QgcmVwb3J0aW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdQcm9qZWN0TGluaycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb2plY3QgICA9PiAkUHJvamVjdFJlZi0+e05hbWV9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcm9qZWN0SUQgPT4gJFByb2plY3RJRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1Byb2plY3ROb0xpbmsnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4geyBQcm9qZWN0ID0+ICRQcm9qZWN0UmVmLT57TmFtZX0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBOb3cgc2hvdyByb3cgd2l0aCB0b3RhbCByZXN1bHQgb2YgYWxsIGFjdGlvbnMgb2YgdGhpcyBwcm9qZWN0CiAgICAgICAgICAgICAgICAkUGFyYW17SG91cnN9ICAgICAgPSBzcHJpbnRmKCAiJS4yZiIsICRUb3RhbCApOwogICAgICAgICAgICAgICAgJFBhcmFte0hvdXJzVG90YWx9ID0gc3ByaW50ZiggIiUuMmYiLCAkVG90YWxUb3RhbCApOwogICAgICAgICAgICAgICAgJFBhcmFte1RvdGFsSG91cnN9ICAgICAgKz0gJFRvdGFsOwogICAgICAgICAgICAgICAgJFBhcmFte1RvdGFsSG91cnNUb3RhbH0gKz0gJFRvdGFsVG90YWw7CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdBY3Rpb25Ub3RhbCcsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKCBkZWZpbmVkKCAkUGFyYW17VG90YWxIb3Vyc30gKSApIHsKICAgICAgICAgICAgJFBhcmFte1RvdGFsSG91cnN9ID0gc3ByaW50ZiggIiUuMmYiLCAkUGFyYW17VG90YWxIb3Vyc30gKTsKICAgICAgICB9CiAgICAgICAgaWYgKCBkZWZpbmVkKCAkUGFyYW17VG90YWxIb3Vyc1RvdGFsfSApICkgewogICAgICAgICAgICAkUGFyYW17VG90YWxIb3Vyc1RvdGFsfSA9IHNwcmludGYoICIlLjJmIiwgJFBhcmFte1RvdGFsSG91cnNUb3RhbH0gKTsKICAgICAgICB9CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0dyYW5kVG90YWwnLAogICAgICAgICAgICBEYXRhID0+IHslUGFyYW19LAogICAgICAgICk7CiAgICB9CgogICAgIyBidWlsZCBvdXRwdXQKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoCiAgICAgICAgVGl0bGUgPT4gVHJhbnNsYXRhYmxlKCdPdmVydmlldycpLAogICAgKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXcnCiAgICApOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICByZXR1cm4gJE91dHB1dDsKfQoKc3ViIF9DaGVja1ZhbGlkaXR5VXNlclBlcmlvZHMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlRXJyb3JzID0gKCk7CiAgICBteSAlR2V0UGFyYW07CgogICAgIyBnZXQgdGltZSBvYmplY3QKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgIGZvciAoIG15ICRQZXJpb2QgPSAxOyAkUGVyaW9kIDw9ICRQYXJhbXtQZXJpb2R9OyAkUGVyaW9kKysgKSB7CgogICAgICAgICMgY2hlY2sgZm9yIG5lZWRlZCBkYXRhCiAgICAgICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KERhdGVTdGFydCBEYXRlRW5kIExlYXZlRGF5cykpIHsKICAgICAgICAgICAgJEdldFBhcmFteyRQYXJhbWV0ZXJ9CiAgICAgICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKS0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgLiAiWyRQZXJpb2RdIiApOwogICAgICAgICAgICBpZiAoICEkR2V0UGFyYW17JFBhcmFtZXRlcn0gKSB7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyAkUGFyYW1ldGVyIC4gJy0nIC4gJFBlcmlvZCAuICdJbnZhbGlkJyB9ICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgJEVycm9yc3sgJFBhcmFtZXRlciAuICctJyAuICRQZXJpb2QgLiAnRXJyb3JUeXBlJyB9ID0gJ01pc3NpbmdWYWx1ZSc7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgbXkgKCAkWWVhciwgJE1vbnRoLCAkRGF5ICkgPSBzcGxpdCggJy0nLCAkR2V0UGFyYW17RGF0ZVN0YXJ0fSApOwogICAgICAgIG15ICRTdGFydERhdGUgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkRhdGUyU3lzdGVtVGltZSgKICAgICAgICAgICAgWWVhciAgID0+ICRZZWFyLAogICAgICAgICAgICBNb250aCAgPT4gJE1vbnRoLAogICAgICAgICAgICBEYXkgICAgPT4gJERheSwKICAgICAgICAgICAgSG91ciAgID0+IDAsCiAgICAgICAgICAgIE1pbnV0ZSA9PiAwLAogICAgICAgICAgICBTZWNvbmQgPT4gMCwKICAgICAgICApOwogICAgICAgICggJFllYXIsICRNb250aCwgJERheSApID0gc3BsaXQoICctJywgJEdldFBhcmFte0RhdGVFbmR9ICk7CiAgICAgICAgbXkgJEVuZERhdGUgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkRhdGUyU3lzdGVtVGltZSgKICAgICAgICAgICAgWWVhciAgID0+ICRZZWFyLAogICAgICAgICAgICBNb250aCAgPT4gJE1vbnRoLAogICAgICAgICAgICBEYXkgICAgPT4gJERheSwKICAgICAgICAgICAgSG91ciAgID0+IDAsCiAgICAgICAgICAgIE1pbnV0ZSA9PiAwLAogICAgICAgICAgICBTZWNvbmQgPT4gMCwKICAgICAgICApOwogICAgICAgIGlmICggISRTdGFydERhdGUgKSB7CiAgICAgICAgICAgICRFcnJvcnN7ICdEYXRlU3RhcnQtJyAuICRQZXJpb2QgLiAnSW52YWxpZCcgfSAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3sgJ0RhdGVTdGFydC0nIC4gJFBlcmlvZCAuICdFcnJvclR5cGUnIH0gPSAnSW52YWxpZCc7CiAgICAgICAgfQogICAgICAgIGlmICggISRFbmREYXRlICkgewogICAgICAgICAgICAkRXJyb3JzeyAnRGF0ZUVuZC0nIC4gJFBlcmlvZCAuICdJbnZhbGlkJyB9ICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAkRXJyb3JzeyAnRGF0ZUVuZC0nIC4gJFBlcmlvZCAuICdFcnJvclR5cGUnIH0gPSAnSW52YWxpZCc7CiAgICAgICAgfQogICAgICAgIGlmICggJFN0YXJ0RGF0ZSAmJiAkRW5kRGF0ZSAmJiAkU3RhcnREYXRlID49ICRFbmREYXRlICkgewogICAgICAgICAgICAkRXJyb3JzeyAnRGF0ZUVuZC0nIC4gJFBlcmlvZCAuICdJbnZhbGlkJyB9ICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAkRXJyb3JzeyAnRGF0ZUVuZC0nIC4gJFBlcmlvZCAuICdFcnJvclR5cGUnIH0gPSAnQmVmb3JlRGF0ZVN0YXJ0JzsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuICVFcnJvcnM7Cn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6Okxhbmd1YWdlIHF3KFRyYW5zbGF0YWJsZSk7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIG15ICREYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpOwoKICAgICRTZWxmLT57VGltZVpvbmV9ID0gJFBhcmFte1RpbWVab25lfQogICAgICAgIHx8ICRQYXJhbXtVc2VyVGltZVpvbmV9CiAgICAgICAgfHwgJERhdGVUaW1lT2JqZWN0LT5PVFJTVGltZVpvbmVHZXQoKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSBATW9udGhBcnJheSA9ICgKICAgICAgICAnJywgICAgICdKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgICAgICdBcHJpbCcsICAgJ01heScsCiAgICAgICAgJ0p1bmUnLCAnSnVseScsICAgICdBdWd1c3QnLCAgICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsCiAgICAgICAgJ0RlY2VtYmVyJywKICAgICk7CiAgICBteSBAV2Vla2RheUFycmF5ID0gKCAnTW9uJywgJ1R1ZScsICdXZWQnLCAnVGh1JywgJ0ZyaScsICdTYXQnLCAnU3VuJywgKTsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgbXkgJExheW91dE9iamVjdCAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKICAgIG15ICRQYXJhbU9iamVjdCAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CiAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CiAgICBteSAkRGF0ZVRpbWVPYmplY3RDdXJyZW50ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CiAgICBteSAkVXNlck9iamVjdCAgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyB0aW1lIGFjY291bnRpbmcgcHJvamVjdCByZXBvcnRpbmcKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnUmVwb3J0aW5nUHJvamVjdCcgKSB7CgogICAgICAgIG15ICRDb25maWcgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoIlRpbWVBY2NvdW50aW5nOjpGcm9udGVuZDo6JFNlbGYtPntTdWJhY3Rpb259Iik7CgogICAgICAgIG15ICVGcm9udGVuZCA9ICgpOwoKICAgICAgICAjIHBlcm1pc3Npb24gY2hlY2sKICAgICAgICBpZiAoICEkU2VsZi0+e0FjY2Vzc1JvfSApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgICAgIFdpdGhIZWFkZXIgPT4gJ3llcycsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGdldCBwYXJhbXMKICAgICAgICAkUGFyYW17UHJvamVjdElEfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdQcm9qZWN0SUQnICk7CgogICAgICAgICMgY2hlY2sgbmVlZGVkIHBhcmFtcwogICAgICAgIGlmICggISRQYXJhbXtQcm9qZWN0SUR9ICkgewoKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ1JlcG9ydGluZ1Byb2plY3Q6IE5lZWQgUHJvamVjdElEJykKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIG15ICVBY3Rpb24gID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0dldCgpOwogICAgICAgIG15ICVQcm9qZWN0ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NHZXQoKTsKICAgICAgICAkUGFyYW17UHJvamVjdH0gPSAkUHJvamVjdHtQcm9qZWN0fS0+eyAkUGFyYW17UHJvamVjdElEfSB9OwoKICAgICAgICAjIGdldCBzeXN0ZW0gdXNlcnMKICAgICAgICBteSAlU2hvd25Vc2VycyA9ICRVc2VyT2JqZWN0LT5Vc2VyTGlzdCgKICAgICAgICAgICAgVHlwZSAgPT4gJ0xvbmcnLAogICAgICAgICAgICBWYWxpZCA9PiAwCiAgICAgICAgKTsKCiAgICAgICAgJFBhcmFte1Nob3dPbmx5QWN0aXZlVXNlcnN9ID0gJENvbmZpZy0+e1Nob3dPbmx5QWN0aXZlVXNlcnN9OwoKICAgICAgICBpZiAoICRQYXJhbXtTaG93T25seUFjdGl2ZVVzZXJzfSApIHsKCiAgICAgICAgICAgICMgZ2V0IHJlZ2lzdGVyZWQgdXNlcnMKICAgICAgICAgICAgbXkgJVJlZ2lzdGVyZWRVc2VycyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckxpc3QoKTsKCiAgICAgICAgICAgICMgcmVkdWNlIHNob3duIHVzZXJzIHRvIG9ubHkgdGhlIG9uZXMgdGhhdCBhcmUgcmVnaXN0ZXJlZCBpbiB0aW1lIGFjY291bnRpbmcKICAgICAgICAgICAgJVNob3duVXNlcnMgPSBtYXAgeyAkXyA9PiAkU2hvd25Vc2Vyc3skX30gfSBrZXlzICVSZWdpc3RlcmVkVXNlcnM7CiAgICAgICAgfQoKICAgICAgICAjIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBQcm9qZWN0QWN0aW9uUmVwb3J0aW5nIGlzIG5vdCByZXdvcmtlZAogICAgICAgIG15ICggJFNlYywgJE1pbiwgJEhvdXIsICRDdXJyZW50RGF5LCAkTW9udGgsICRZZWFyICkgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICAgICAgU3lzdGVtVGltZSA9PiAkRGF0ZVRpbWVPYmplY3RDdXJyZW50LT5Ub0Vwb2NoKCksCiAgICAgICAgKTsKICAgICAgICBteSAlUHJvamVjdERhdGEgPSAoKTsKICAgICAgICBteSAlUHJvamVjdFRpbWUgPSAoKTsKCiAgICAgICAgbXkgQFVzZXJXaGl0ZUxpc3Q7CgogICAgICAgICMgT25seSBvbmUgZnVuY3Rpb24gc2hvdWxkIGJlIGVub3VnaAogICAgICAgIGZvciBteSAkVXNlcklEICggc29ydCBrZXlzICVTaG93blVzZXJzICkgewoKICAgICAgICAgICAgIyBPdmVydmlldyBwZXIgcHJvamVjdCBhbmQgYWN0aW9uCiAgICAgICAgICAgICMgUkVNQVJLOiBUaGlzIGlzIHRoZSB3cm9uZyBmdW5jdGlvbiB0byBnZXQgdGhpcyBpbmZvcm1hdGlvbgogICAgICAgICAgICAlUHJvamVjdERhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RBY3Rpb25SZXBvcnRpbmcoCiAgICAgICAgICAgICAgICBZZWFyICAgPT4gJFllYXIsCiAgICAgICAgICAgICAgICBNb250aCAgPT4gJE1vbnRoLAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRVc2VySUQsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGlmICggJFByb2plY3REYXRheyAkUGFyYW17UHJvamVjdElEfSB9ICkgewogICAgICAgICAgICAgICAgbXkgJFVzZXJUb3RhbEhvdXJzSW5Qcm9qZWN0OwogICAgICAgICAgICAgICAgbXkgJEFjdGlvbnNSZWYgPSAkUHJvamVjdERhdGF7ICRQYXJhbXtQcm9qZWN0SUR9IH0tPntBY3Rpb25zfTsKICAgICAgICAgICAgICAgIGZvciBteSAkQWN0aW9uSUQgKCBzb3J0IGtleXMgJXskQWN0aW9uc1JlZn0gKSB7CiAgICAgICAgICAgICAgICAgICAgJFByb2plY3RUaW1leyRBY3Rpb25JRH0tPnskVXNlcklEfS0+e0hvdXJzfSA9ICRBY3Rpb25zUmVmLT57JEFjdGlvbklEfS0+e1RvdGFsfTsKCiAgICAgICAgICAgICAgICAgICAgIyByZW1lbWJlciB0aGUgc3VtIG9mIGFsbCBob3VycyBvZiBhbGwgdGFza3MKICAgICAgICAgICAgICAgICAgICAkVXNlclRvdGFsSG91cnNJblByb2plY3QgKz0gJEFjdGlvbnNSZWYtPnskQWN0aW9uSUR9LT57VG90YWx9IHx8IDA7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyByZW1lbWJlciBvbmx5IHRoZSB1c2VycyB0aGF0IGhhcyBiZWVuIGFkZGVkIGhvdXJzIHRvIHRoaXMgcHJvamVjdAogICAgICAgICAgICAgICAgaWYgKCBkZWZpbmVkICRVc2VyVG90YWxIb3Vyc0luUHJvamVjdCAmJiAkVXNlclRvdGFsSG91cnNJblByb2plY3QgPiAwICkgewogICAgICAgICAgICAgICAgICAgIHB1c2ggQFVzZXJXaGl0ZUxpc3QsICRVc2VySUQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICggJFBhcmFte1Nob3dPbmx5QWN0aXZlVXNlcnN9ICkgewoKICAgICAgICAgICAgIyByZWR1Y2Ugc2hvd24gdXNlcnMgdG8gb25seSB0aGUgb25lcyB0aGF0IGFyZSBhY3RpdmUgaW4gdGhlIHByb2plY3QgKGJ5IGFkZGluZyBob3VycykKICAgICAgICAgICAgJVNob3duVXNlcnMgPSBtYXAgeyAkXyA9PiAkU2hvd25Vc2Vyc3skX30gfSBAVXNlcldoaXRlTGlzdDsKICAgICAgICB9CgogICAgICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCBcJVNob3duVXNlcnMgKSApIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdOb1VzZXJEYXRhRm91bmRNc2cnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnVXNlclRhYmxlJywKICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHNob3cgdGhlIGhlYWRlciBsaW5lCiAgICAgICAgICAgIGZvciBteSAkVXNlcklEICggc29ydCB7ICRTaG93blVzZXJzeyRhfSBjbXAgJFNob3duVXNlcnN7JGJ9IH0ga2V5cyAlU2hvd25Vc2VycyApIHsKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1VzZXJOYW1lJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsgVXNlciA9PiAkU2hvd25Vc2Vyc3skVXNlcklEfSB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBiZXR0ZXIgc29sdXRpb24gZm9yIHNvcnQgYWN0aW9ucyBuZWNlc3NhcnkKICAgICAgICAgICAgbXkgJU5ld0FjdGlvbiA9ICgpOwogICAgICAgICAgICBmb3IgbXkgJEFjdGlvbklEICggc29ydCBrZXlzICVQcm9qZWN0VGltZSApIHsKICAgICAgICAgICAgICAgICROZXdBY3Rpb257JEFjdGlvbklEfSA9ICRBY3Rpb257JEFjdGlvbklEfS0+e0FjdGlvbn07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJUFjdGlvbiA9ICVOZXdBY3Rpb247CgogICAgICAgICAgICAjIHNob3cgdGhlIHJlc3VsdHMKICAgICAgICAgICAgbXkgJVRvdGFsID0gKCk7CiAgICAgICAgICAgIGZvciBteSAkQWN0aW9uSUQgKCBzb3J0IHsgJEFjdGlvbnskYX0gY21wICRBY3Rpb257JGJ9IH0ga2V5cyAlQWN0aW9uICkgewogICAgICAgICAgICAgICAgbXkgJFRvdGFsSG91cnMgPSAwOwogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnQWN0aW9uJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgQWN0aW9uID0+ICRBY3Rpb257JEFjdGlvbklEfSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIGZvciBteSAkVXNlcklEICggc29ydCB7ICRTaG93blVzZXJzeyRhfSBjbXAgJFNob3duVXNlcnN7JGJ9IH0ga2V5cyAlU2hvd25Vc2VycyApIHsKICAgICAgICAgICAgICAgICAgICAkVG90YWxIb3VycyAgICAgKz0gJFByb2plY3RUaW1leyRBY3Rpb25JRH17JFVzZXJJRH17SG91cnN9IHx8IDA7CiAgICAgICAgICAgICAgICAgICAgJFRvdGFseyRVc2VySUR9ICs9ICRQcm9qZWN0VGltZXskQWN0aW9uSUR9eyRVc2VySUR9e0hvdXJzfSB8fCAwOwogICAgICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdVc2VyJywKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBIb3VycyA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwcmludGYoICIlLjJmIiwgJFByb2plY3RUaW1leyRBY3Rpb25JRH17JFVzZXJJRH17SG91cnN9IHx8IDAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgVG90YWwKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1VzZXInLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBIb3VycyA9PiBzcHJpbnRmKCAiJS4yZiIsICRUb3RhbEhvdXJzICksCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJFBhcmFte1RvdGFsQWxsfSA9IDA7CiAgICAgICAgICAgIGZvciBteSAkVXNlcklEICggc29ydCB7ICRTaG93blVzZXJzeyRhfSBjbXAgJFNob3duVXNlcnN7JGJ9IH0ga2V5cyAlU2hvd25Vc2VycyApIHsKICAgICAgICAgICAgICAgICRQYXJhbXtUb3RhbEFsbH0gKz0gJFRvdGFseyRVc2VySUR9OwogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnVXNlclRvdGFsJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgVG90YWwgPT4gc3ByaW50ZiggIiUuMmYiLCAkVG90YWx7JFVzZXJJRH0gKSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdVc2VyVG90YWxBbGwnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgVG90YWxBbGwgPT4gc3ByaW50ZiggIiUuMmYiLCAkUGFyYW17VG90YWxBbGx9ICksCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBteSBAUHJvamVjdEhpc3RvcnlBcnJheSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdEhpc3RvcnkoCiAgICAgICAgICAgIFByb2plY3RJRCA9PiAkUGFyYW17UHJvamVjdElEfSwKICAgICAgICApOwoKICAgICAgICBpZiAoICFJc0FycmF5UmVmV2l0aERhdGEoIFxAUHJvamVjdEhpc3RvcnlBcnJheSApICkgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ05vUHJvamVjdERhdGFGb3VuZE1zZycsCiAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdQcm9qZWN0VGFibGUnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICVGcm9udGVuZAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGZvciBteSAkUm93IChAUHJvamVjdEhpc3RvcnlBcnJheSkgewogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUm93JywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgVXNlciAgID0+ICRSb3ctPntVc2VyfSwKICAgICAgICAgICAgICAgICAgICAgICAgQWN0aW9uID0+ICRSb3ctPntBY3Rpb259LAogICAgICAgICAgICAgICAgICAgICAgICBSZW1hcmsgPT4gJFJvdy0+e1JlbWFya30gfHwgJy0tJywKICAgICAgICAgICAgICAgICAgICAgICAgUGVyaW9kID0+IHNwcmludGYoICIlLjJmIiwgJFJvdy0+e1BlcmlvZH0gKSwKICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZSAgID0+ICRSb3ctPntEYXRlfSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBzaG93IHRoZSB0b3RhbCBzdW0gb2YgaG91cnMgYXQgdGhlIGVuZCBvZiB0aGUgaGlzdG9yeSBsaXN0CiAgICAgICAgICAgICMgSSBhbHNvIGNhbiB1c2UgJFBhcmFte1RvdGFsQWxsfQogICAgICAgICAgICBteSAkUHJvamVjdFRvdGFsSG91cnMgPSBzcHJpbnRmKAogICAgICAgICAgICAgICAgIiUuMmYiLAogICAgICAgICAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0VG90YWxIb3VycygKICAgICAgICAgICAgICAgICAgICBQcm9qZWN0SUQgPT4gJFBhcmFte1Byb2plY3RJRH0sCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0hpc3RvcnlUb3RhbCcsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBIaXN0b3J5VG90YWwgPT4gJFByb2plY3RUb3RhbEhvdXJzIHx8IDAsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBidWlsZCBvdXRwdXQKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKAogICAgICAgICAgICBUaXRsZSA9PiBUcmFuc2xhdGFibGUoJ1JlcG9ydGluZyBQcm9qZWN0JyksCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAlRnJvbnRlbmQsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZ1Byb2plY3QnLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgdGltZSBhY2NvdW50aW5nIHJlcG9ydGluZwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIG15ICVGcm9udGVuZCAgID0gKCk7CiAgICBteSAlU2hvd25Vc2VycyA9ICRVc2VyT2JqZWN0LT5Vc2VyTGlzdCgKICAgICAgICBUeXBlICA9PiAnTG9uZycsCiAgICAgICAgVmFsaWQgPT4gMAogICAgKTsKICAgIG15ICggJFNlYywgJE1pbiwgJEhvdXIsICRDdXJyZW50RGF5LCAkTW9udGgsICRZZWFyICkgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlN5c3RlbVRpbWUyRGF0ZSgKICAgICAgICBTeXN0ZW1UaW1lID0+ICREYXRlVGltZU9iamVjdEN1cnJlbnQtPlRvRXBvY2goKSwKICAgICk7CgogICAgIyBwZXJtaXNzaW9uIGNoZWNrCiAgICBpZiAoICEkU2VsZi0+e0FjY2Vzc1J3fSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Tm9QZXJtaXNzaW9uKAogICAgICAgICAgICBXaXRoSGVhZGVyID0+ICd5ZXMnLAogICAgICAgICk7CiAgICB9CgogICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KFN0YXR1cyBNb250aCBZZWFyIFByb2plY3RTdGF0dXNTaG93KSkgewogICAgICAgICRQYXJhbXskUGFyYW1ldGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgKTsKICAgIH0KCiAgICAjIENoZWNrIERhdGUKICAgIGlmICggISRQYXJhbXtZZWFyfSB8fCAhJFBhcmFte01vbnRofSApIHsKICAgICAgICAkUGFyYW17WWVhcn0gID0gJFllYXI7CiAgICAgICAgJFBhcmFte01vbnRofSA9ICRNb250aDsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRQYXJhbXtNb250aH0gPSBzcHJpbnRmKCAiJTAyZCIsICRQYXJhbXtNb250aH0gKTsKICAgIH0KCiAgICAjIHN0b3JlIGxhc3Qgc2NyZWVuCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6QXV0aFNlc3Npb24nKS0+VXBkYXRlU2Vzc2lvbklEKAogICAgICAgIFNlc3Npb25JRCA9PiAkU2VsZi0+e1Nlc3Npb25JRH0sCiAgICAgICAgS2V5ICAgICAgID0+ICdMYXN0U2NyZWVuJywKICAgICAgICBWYWx1ZSA9PgogICAgICAgICAgICAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufTtZZWFyPSRQYXJhbXtZZWFyfTtNb250aD0kUGFyYW17TW9udGh9IiwKICAgICk7CgogICAgJFBhcmFte01vbnRoX3RvX1RleHR9ID0gJE1vbnRoQXJyYXlbICRQYXJhbXtNb250aH0gXTsKCiAgICBteSAlTW9udGggPSAoKTsKICAgIGZvciBteSAkSUQgKCAxIC4uIDEyICkgewogICAgICAgICRNb250aHsgc3ByaW50ZiggIiUwMmQiLCAkSUQgKSB9ID0gJE1vbnRoQXJyYXlbJElEXTsKICAgIH0KCiAgICAkRnJvbnRlbmR7TW9udGhPcHRpb259ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICAgPT4gXCVNb250aCwKICAgICAgICBTZWxlY3RlZElEICA9PiAkUGFyYW17TW9udGh9IHx8ICcnLAogICAgICAgIE5hbWUgICAgICAgID0+ICdNb250aCcsCiAgICAgICAgU29ydCAgICAgICAgPT4gJ051bWVyaWNLZXknLAogICAgICAgIFRyYW5zbGF0aW9uID0+IDEsCiAgICAgICAgVGl0bGUgICAgICAgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCJNb250aCIpLAogICAgKTsKCiAgICBteSBAWWVhciA9ICggJFllYXIgLSA0IC4uICRZZWFyICsgMSApOwoKICAgICRGcm9udGVuZHtZZWFyT3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgID0+IFxAWWVhciwKICAgICAgICBTZWxlY3RlZElEICA9PiAkUGFyYW17WWVhcn0gfHwgJycsCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ1llYXInLAogICAgICAgIFRyYW5zbGF0aW9uID0+IDAsCiAgICAgICAgVGl0bGUgICAgICAgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCJZZWFyIiksCiAgICApOwoKICAgICggJFBhcmFte1llYXJCYWNrfSwgJFBhcmFte01vbnRoQmFja30sICRQYXJhbXtEYXlCYWNrfSApCiAgICAgICAgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFkZERlbHRhWU1EKCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0sIDEsIDAsIC0xLCAwICk7CiAgICAoICRQYXJhbXtZZWFyTmV4dH0sICRQYXJhbXtNb250aE5leHR9LCAkUGFyYW17RGF5TmV4dH0gKQogICAgICAgID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BZGREZWx0YVlNRCggJFBhcmFte1llYXJ9LCAkUGFyYW17TW9udGh9LCAxLCAwLCAxLCAwICk7CgogICAgbXkgJVVzZXJSZXBvcnQgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJSZXBvcnRpbmcoCiAgICAgICAgWWVhciAgID0+ICRQYXJhbXtZZWFyfSwKICAgICAgICBNb250aCAgPT4gJFBhcmFte01vbnRofSwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIG15ICVVc2VyQmFzaWNzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyTGlzdCgpOwoKICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCBcJVNob3duVXNlcnMgKSB8fCAhSXNIYXNoUmVmV2l0aERhdGEoIFwlVXNlclJlcG9ydCApICkgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdOb1VzZXJEYXRhRm91bmRNc2cnLAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1VzZXJUYWJsZScsCiAgICAgICAgICAgIERhdGEgPT4geyAlUGFyYW0sICVGcm9udGVuZCB9LAogICAgICAgICk7CgogICAgICAgIFVTRVJJRDoKICAgICAgICBmb3IgbXkgJFVzZXJJRCAoIHNvcnQgeyAkU2hvd25Vc2Vyc3skYX0gY21wICRTaG93blVzZXJzeyRifSB9IGtleXMgJVNob3duVXNlcnMgKSB7CiAgICAgICAgICAgIG5leHQgVVNFUklEIGlmICEkVXNlclJlcG9ydHskVXNlcklEfTsKCiAgICAgICAgICAgIGZvciBteSAkUGFyYW1ldGVyICgKICAgICAgICAgICAgICAgIHF3KExlYXZlRGF5IE92ZXJ0aW1lIFdvcmtpbmdIb3VycyBTaWNrIExlYXZlRGF5UmVtYWluaW5nIE92ZXJ0aW1lVG90YWwpCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICRQYXJhbXskUGFyYW1ldGVyfSA9IHNwcmludGYoICIlLjJmIiwgKCAkVXNlclJlcG9ydHskVXNlcklEfXskUGFyYW1ldGVyfSB8fCAwICkgKTsKICAgICAgICAgICAgICAgICRQYXJhbXsgJ1RvdGFsJyAuICRQYXJhbWV0ZXIgfSArPSAkUGFyYW17JFBhcmFtZXRlcn07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgU2hvdyBPdmVydGltZSBpZiBhbGxvd2VkCiAgICAgICAgICAgIGlmICggISRVc2VyQmFzaWNzeyRVc2VySUR9e1Nob3dPdmVydGltZX0gKSB7CiAgICAgICAgICAgICAgICAkUGFyYW17T3ZlcnRpbWV9ICAgICAgPSAnJzsKICAgICAgICAgICAgICAgICRQYXJhbXtPdmVydGltZVRvdGFsfSA9ICcnOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkUGFyYW17VXNlcn0gICA9ICRTaG93blVzZXJzeyRVc2VySUR9OwogICAgICAgICAgICAkUGFyYW17VXNlcklEfSA9ICRVc2VySUQ7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnVXNlcicsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsgJVBhcmFtLCAlRnJvbnRlbmQgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIGZvciBteSAkUGFyYW1ldGVyICgKICAgICAgICAgICAgcXcoVG90YWxMZWF2ZURheSBUb3RhbE92ZXJ0aW1lIFRvdGFsV29ya2luZ0hvdXJzCiAgICAgICAgICAgIFRvdGFsU2ljayBUb3RhbExlYXZlRGF5UmVtYWluaW5nIFRvdGFsT3ZlcnRpbWVUb3RhbCkKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJFBhcmFteyRQYXJhbWV0ZXJ9ID0gc3ByaW50ZiggIiUuMmYiLCAoICRQYXJhbXskUGFyYW1ldGVyfSApIHx8IDAgKTsKICAgICAgICB9CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdVc2VyR3JhbmRUb3RhbCcsCiAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNob3cgdGhlIHJlcG9ydCBzb3J0IGJ5IHByb2plY3RzCiAgICBpZiAoICEkUGFyYW17UHJvamVjdFN0YXR1c1Nob3d9IHx8ICRQYXJhbXtQcm9qZWN0U3RhdHVzU2hvd30gZXEgJ3ZhbGlkJyApIHsKICAgICAgICAkUGFyYW17UHJvamVjdFN0YXR1c1Nob3d9ID0gJ2FsbCc7CiAgICB9CiAgICBlbHNpZiAoICRQYXJhbXtQcm9qZWN0U3RhdHVzU2hvd30gZXEgJ2FsbCcgKSB7CiAgICAgICAgJFBhcmFte1Byb2plY3RTdGF0dXNTaG93fSA9ICd2YWxpZCc7CiAgICB9CgogICAgJFBhcmFte1Nob3dQcm9qZWN0c30gPSAnU2hvdyAnIC4gJFBhcmFte1Byb2plY3RTdGF0dXNTaG93fSAuICcgcHJvamVjdHMnOwoKICAgIG15ICVQcm9qZWN0RGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdEFjdGlvblJlcG9ydGluZygKICAgICAgICBZZWFyICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgTW9udGggPT4gJFBhcmFte01vbnRofSwKICAgICk7CgogICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoIFwlUHJvamVjdERhdGEgKSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnTm9Qcm9qZWN0RGF0YUZvdW5kTXNnJywKICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICApOwogICAgICAgICRQYXJhbXtQcm9qZWN0U3RhdHVzTGlua0NsYXNzfSA9ICdIaWRkZW4nOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1Byb2plY3RUYWJsZScsCiAgICAgICAgICAgIERhdGEgPT4geyAlUGFyYW0sICVGcm9udGVuZCB9LAogICAgICAgICk7CgogICAgICAgICMgUkVNQVJLOiBtZXJnZSB0aGlzIHByb2plY3QgcmVwb3J0aW5nIGxpc3Qgd2l0aCB0aGUgbGlzdCBpbiBvdmVydmlldwogICAgICAgIFBST0pFQ1RJRDoKICAgICAgICBmb3IgbXkgJFByb2plY3RJRCAoCiAgICAgICAgICAgIHNvcnQgeyAkUHJvamVjdERhdGF7JGF9LT57TmFtZX0gY21wICRQcm9qZWN0RGF0YXskYn0tPntOYW1lfSB9CiAgICAgICAgICAgIGtleXMgJVByb2plY3REYXRhCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIG15ICRQcm9qZWN0UmVmID0gJFByb2plY3REYXRheyRQcm9qZWN0SUR9OwogICAgICAgICAgICBteSAkQWN0aW9uc1JlZiA9ICRQcm9qZWN0UmVmLT57QWN0aW9uc307CgogICAgICAgICAgICAkUGFyYW17UHJvamVjdH0gPSAnJzsKICAgICAgICAgICAgJFBhcmFte1N0YXR1c30gID0gJFByb2plY3RSZWYtPntTdGF0dXN9ID8gJycgOiAncGFzc2l2JzsKCiAgICAgICAgICAgIG15ICRUb3RhbCAgICAgID0gMDsKICAgICAgICAgICAgbXkgJFRvdGFsVG90YWwgPSAwOwoKICAgICAgICAgICAgbmV4dCBQUk9KRUNUSUQgaWYgJFBhcmFte1Byb2plY3RTdGF0dXNTaG93fSBlcSAnYWxsJyAmJiAkUGFyYW17U3RhdHVzfTsKCiAgICAgICAgICAgIGZvciBteSAkQWN0aW9uSUQgKAogICAgICAgICAgICAgICAgc29ydCB7ICRBY3Rpb25zUmVmLT57JGF9LT57TmFtZX0gY21wICRBY3Rpb25zUmVmLT57JGJ9LT57TmFtZX0gfQogICAgICAgICAgICAgICAga2V5cyAleyRBY3Rpb25zUmVmfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBteSAkQWN0aW9uUmVmID0gJEFjdGlvbnNSZWYtPnskQWN0aW9uSUR9OwoKICAgICAgICAgICAgICAgICRQYXJhbXtQcm9qZWN0SUR9ICA9ICRQcm9qZWN0SUQ7CiAgICAgICAgICAgICAgICAkUGFyYW17QWN0aW9ufSAgICAgPSAkQWN0aW9uUmVmLT57TmFtZX07CiAgICAgICAgICAgICAgICAkUGFyYW17SG91cnN9ICAgICAgPSBzcHJpbnRmKCAiJS4yZiIsICRBY3Rpb25SZWYtPntQZXJNb250aH0gfHwgMCApOwogICAgICAgICAgICAgICAgJFBhcmFte0hvdXJzVG90YWx9ID0gc3ByaW50ZiggIiUuMmYiLCAkQWN0aW9uUmVmLT57VG90YWx9IHx8IDAgKTsKICAgICAgICAgICAgICAgICRUb3RhbCAgICAgICs9ICRQYXJhbXtIb3Vyc307CiAgICAgICAgICAgICAgICAkVG90YWxUb3RhbCArPSAkUGFyYW17SG91cnNUb3RhbH07CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdBY3Rpb24nLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIGlmICggISRQYXJhbXtQcm9qZWN0fSApIHsKICAgICAgICAgICAgICAgICAgICAkUGFyYW17UHJvamVjdH0gPSAkUHJvamVjdFJlZi0+e05hbWV9OwogICAgICAgICAgICAgICAgICAgIG15ICRQcm9qZWN0RGVzY3JpcHRpb24gPSAkTGF5b3V0T2JqZWN0LT5Bc2NpaTJIdG1sKAogICAgICAgICAgICAgICAgICAgICAgICBUZXh0ICAgICAgICAgICA9PiAkUHJvamVjdFJlZi0+e0Rlc2NyaXB0aW9ufSwKICAgICAgICAgICAgICAgICAgICAgICAgSFRNTFJlc3VsdE1vZGUgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgICAgTmV3TGluZSAgICAgICAgPT4gNTAsCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1Byb2plY3QnLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJvd1NwYW4gICAgICAgICAgICA9PiAoIDEgKyBzY2FsYXIga2V5cyAleyRBY3Rpb25zUmVmfSApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RhdHVzICAgICAgICAgICAgID0+ICRQYXJhbXtTdGF0dXN9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICRQcm9qZWN0RGVzY3JpcHRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcm9qZWN0ICAgICAgICAgICAgPT4gJFByb2plY3RSZWYtPntOYW1lfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb2plY3RJRCAgICAgICAgICA9PiAkUHJvamVjdElELAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRQYXJhbXtIb3Vyc30gICAgICA9IHNwcmludGYoICIlLjJmIiwgJFRvdGFsICk7CiAgICAgICAgICAgICRQYXJhbXtIb3Vyc1RvdGFsfSA9IHNwcmludGYoICIlLjJmIiwgJFRvdGFsVG90YWwgKTsKICAgICAgICAgICAgJFBhcmFte1RvdGFsSG91cnN9ICAgICAgKz0gJFRvdGFsOwogICAgICAgICAgICAkUGFyYW17VG90YWxIb3Vyc1RvdGFsfSArPSAkVG90YWxUb3RhbDsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdBY3Rpb25Ub3RhbCcsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsgJVBhcmFtLCAlRnJvbnRlbmQgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICRQYXJhbXtUb3RhbEhvdXJzfSAgICAgIHx8PSAwOwogICAgICAgICRQYXJhbXtUb3RhbEhvdXJzVG90YWx9IHx8PSAwOwoKICAgICAgICAkUGFyYW17VG90YWxIb3Vyc30gICAgICA9IHNwcmludGYoICIlLjJmIiwgJFBhcmFte1RvdGFsSG91cnN9ICk7CiAgICAgICAgJFBhcmFte1RvdGFsSG91cnNUb3RhbH0gPSBzcHJpbnRmKCAiJS4yZiIsICRQYXJhbXtUb3RhbEhvdXJzVG90YWx9ICk7CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdQcm9qZWN0R3JhbmRUb3RhbCcsCiAgICAgICAgICAgIERhdGEgPT4geyAlUGFyYW0sICVGcm9udGVuZCB9LAogICAgICAgICk7CiAgICB9CgogICAgIyBidWlsZCBvdXRwdXQKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoCiAgICAgICAgVGl0bGUgPT4gVHJhbnNsYXRhYmxlKCdSZXBvcnRpbmcnKSwKICAgICk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIERhdGEgICAgICAgICA9PiB7ICVQYXJhbSwgJUZyb250ZW5kIH0sCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nJwogICAgKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpMYW5ndWFnZSBxdyhUcmFuc2xhdGFibGUpOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgbXkgJFBhcmFtT2JqZWN0ICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CiAgICBteSAkTGF5b3V0T2JqZWN0ICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CiAgICBteSAkTG9nT2JqZWN0ICAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyk7CiAgICBteSAkVXNlck9iamVjdCAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwoKICAgICMgZXhwcmVzc2lvbiBhZGQgdGltZSBwZXJpb2Qgd2FzIHByZXNzZWQKICAgIGlmICgKICAgICAgICAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnQWRkUGVyaW9kJyApCiAgICAgICAgfHwgJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1N1Ym1pdFVzZXJEYXRhJyApCiAgICAgICAgKQogICAgewoKICAgICAgICBteSAlR2V0UGFyYW0gPSAoKTsKCiAgICAgICAgJEdldFBhcmFte1VzZXJJRH0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnVXNlcklEJyApOwogICAgICAgIG15ICRQZXJpb2RzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyTGFzdFBlcmlvZE51bWJlckdldCgKICAgICAgICAgICAgVXNlcklEID0+ICRHZXRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgdmFsaWRpdHkgb2YgcGVyaW9kcwogICAgICAgIG15ICVFcnJvcnMgPSAkU2VsZi0+X0NoZWNrVmFsaWRpdHlVc2VyUGVyaW9kcygKICAgICAgICAgICAgUGVyaW9kID0+ICRQZXJpb2RzLAogICAgICAgICk7CgogICAgICAgICMgaWYgdGhlIHBlcmlvZCBkYXRhIGlzIE9LCiAgICAgICAgaWYgKCAhJUVycm9ycyApIHsKCiAgICAgICAgICAgICMgZ2V0IGFsbCBwYXJhbWV0ZXJzCiAgICAgICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhTdWJhY3Rpb24gRGVzY3JpcHRpb24gQ2FsZW5kYXIpKSB7CiAgICAgICAgICAgICAgICAkR2V0UGFyYW17JFBhcmFtZXRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KFNob3dPdmVydGltZSBDcmVhdGVQcm9qZWN0IEFsbG93U2tpcCkpIHsKICAgICAgICAgICAgICAgICRHZXRQYXJhbXskUGFyYW1ldGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgKSB8fCAwOwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAkUGVyaW9kID0gMTsKICAgICAgICAgICAgbXkgJVBlcmlvZERhdGE7CgogICAgICAgICAgICBteSAlVXNlckRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlNpbmdsZVVzZXJTZXR0aW5nc0dldCgKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkR2V0UGFyYW17VXNlcklEfQogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBnZXQgcGFyYW1ldGVycyBmb3IgYWxsIHJlZ2lzdGVyZWQgcGVyaW9kcwogICAgICAgICAgICB3aGlsZSAoICRVc2VyRGF0YXskUGVyaW9kfSApIHsKICAgICAgICAgICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhXZWVrbHlIb3VycyBPdmVydGltZSBEYXRlU3RhcnQgRGF0ZUVuZCBMZWF2ZURheXMpKSB7CiAgICAgICAgICAgICAgICAgICAgJFBlcmlvZERhdGF7JFBlcmlvZH17JFBhcmFtZXRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyIC4gIlskUGVyaW9kXSIgKQogICAgICAgICAgICAgICAgICAgICAgICB8fCAkVXNlckRhdGF7JFBlcmlvZH17JFBhcmFtZXRlcn07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkUGVyaW9kRGF0YXskUGVyaW9kfXtVc2VyU3RhdHVzfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICJQZXJpb2RTdGF0dXNbJFBlcmlvZF0iICkgfHwgMDsKICAgICAgICAgICAgICAgICRQZXJpb2QrKzsKICAgICAgICAgICAgfQogICAgICAgICAgICAkR2V0UGFyYW17UGVyaW9kfSA9IFwlUGVyaW9kRGF0YTsKCiAgICAgICAgICAgICMgdXBkYXRlIHBlcmlvZHMKICAgICAgICAgICAgaWYgKCAhJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NVcGRhdGUoJUdldFBhcmFtKSApIHsKCiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ1VuYWJsZSB0byB1cGRhdGUgdXNlciBzZXR0aW5ncyEnKSwKICAgICAgICAgICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluaXN0cmF0b3IuJyksCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICggJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0FkZFBlcmlvZCcgKSApIHsKCiAgICAgICAgICAgICAgICAjIHNob3cgdGhlIGVkaXQgdGltZSBzZXR0aW5ncyBhZ2FpbiwgYnV0IG5vdyB3aXRoIGEgbmV3IGVtcHR5IHRpbWUgcGVyaW9kIGxpbmUKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgICAgICAgICBPUCA9PgogICAgICAgICAgICAgICAgICAgICAgICAiQWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nO1N1YmFjdGlvbj0kR2V0UGFyYW17U3ViYWN0aW9ufTtVc2VySUQ9JEdldFBhcmFte1VzZXJJRH07IgogICAgICAgICAgICAgICAgICAgICAgICAuICJOZXdUaW1lUGVyaW9kPTEiLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICAgICAjIHNob3cgdGhlIG92ZXJ2aWV3IG9mIHRhc2tzIGFuZCB1c2VycwogICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICAgICAgICAgIE9QID0+ICJBY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmc7VXNlcj0kU2VsZi0+e1N1YmFjdGlvbn0iLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBhZGQgcHJvamVjdAogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdBZGRQcm9qZWN0JyApIHsKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgJFNlbGYtPl9Qcm9qZWN0U2V0dGluZ3NFZGl0KCBBY3Rpb24gPT4gJ0FkZFByb2plY3QnICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgYWRkIHByb2plY3QgYWN0aW9uCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0FkZFByb2plY3RBY3Rpb24nICkgewoKICAgICAgICAjIGNoYWxsZW5nZSB0b2tlbiBjaGVjayBmb3Igd3JpdGUgYWN0aW9uCiAgICAgICAgJExheW91dE9iamVjdC0+Q2hhbGxlbmdlVG9rZW5DaGVjaygpOwoKICAgICAgICBteSAkTm90ZSA9ICcnOwogICAgICAgIG15ICRQcm9qZWN0SUQ7CiAgICAgICAgbXkgKCAlR2V0UGFyYW0sICVFcnJvcnMgKTsKCiAgICAgICAgIyBnZXQgcGFyYW1ldGVycwogICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhQcm9qZWN0IFByb2plY3REZXNjcmlwdGlvbikpIHsKICAgICAgICAgICAgJEdldFBhcmFteyRQYXJhbWV0ZXJ9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtZXRlciApIHx8ICcnOwogICAgICAgIH0KICAgICAgICAkR2V0UGFyYW17UHJvamVjdFN0YXR1c30gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnUHJvamVjdFN0YXR1cycgKQogICAgICAgICAgICB8fCAnMCc7CgogICAgICAgICMgY2hlY2sgZm9yIG5lZWRlZCBkYXRhCiAgICAgICAgaWYgKCAhJEdldFBhcmFte1Byb2plY3R9ICkgewogICAgICAgICAgICAkRXJyb3Jze1Byb2plY3RJbnZhbGlkfSAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJEVycm9yc3tQcm9qZWN0RXJyb3JUeXBlfSA9ICdQcm9qZWN0TWlzc2luZ1ZhbHVlJzsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIGNoZWNrIHRoYXQgdGhlIG5hbWUgaXMgdW5pcXVlCiAgICAgICAgICAgIG15ICVFeGlzdGluZ1Byb2plY3QgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RHZXQoCiAgICAgICAgICAgICAgICBQcm9qZWN0ID0+ICRHZXRQYXJhbXtQcm9qZWN0fSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaWYgKCVFeGlzdGluZ1Byb2plY3QpIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7UHJvamVjdEludmFsaWR9ICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgJEVycm9yc3tQcm9qZWN0RXJyb3JUeXBlfSA9ICdQcm9qZWN0RHVwbGljYXRlTmFtZSc7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgaWYgbm8gZXJyb3JzIG9jY3VycmVkCiAgICAgICAgaWYgKCAhJUVycm9ycyApIHsKCiAgICAgICAgICAgICMgYWRkIHByb2plY3QKICAgICAgICAgICAgJFByb2plY3RJRCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCRQcm9qZWN0SUQpIHsKCiAgICAgICAgICAgICAgICAjIGJ1aWxkIHRoZSBvdXRwdXQKICAgICAgICAgICAgICAgICRTZWxmLT5fU2V0dGluZ092ZXJ2aWV3KCk7CiAgICAgICAgICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICAgICAgICAgIEluZm8gPT4gVHJhbnNsYXRhYmxlKCdQcm9qZWN0IGFkZGVkIScpLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnLAogICAgICAgICAgICAgICAgICAgIERhdGEgICAgICAgICA9PiB7JUdldFBhcmFtfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgICAgICAgICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJE5vdGUgPSAkTG9nT2JqZWN0LT5HZXRMb2dFbnRyeSgKICAgICAgICAgICAgICAgICAgICBUeXBlID0+ICdFcnJvcicsCiAgICAgICAgICAgICAgICAgICAgV2hhdCA9PiAnTWVzc2FnZScsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHNvbWV0aGluZyB3ZW50IHdyb25nCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICRPdXRwdXQgLj0gJE5vdGUKICAgICAgICAgICAgPyAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdFcnJvcicsCiAgICAgICAgICAgIEluZm8gICAgID0+ICROb3RlLAogICAgICAgICAgICApCiAgICAgICAgICAgIDogJyc7CiAgICAgICAgJFNlbGYtPl9Qcm9qZWN0U2V0dGluZ3NFZGl0KAogICAgICAgICAgICBBY3Rpb24gPT4gJ0FkZFByb2plY3QnLAogICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgICVFcnJvcnMsCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZycsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgZWRpdCBwcm9qZWN0CiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0VkaXRQcm9qZWN0JyApIHsKICAgICAgICBteSAkSUQgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnSUQnICk7CgogICAgICAgICMgZ2V0IHByb2plY3QgZGF0YQogICAgICAgIG15ICVQcm9qZWN0ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0R2V0KAogICAgICAgICAgICBJRCA9PiAkSUQsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICRTZWxmLT5fUHJvamVjdFNldHRpbmdzRWRpdCgKICAgICAgICAgICAgQWN0aW9uID0+ICdFZGl0UHJvamVjdCcsCiAgICAgICAgICAgICVQcm9qZWN0LAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGVkaXQgcHJvamVjdCBhY3Rpb24KICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnRWRpdFByb2plY3RBY3Rpb24nICkgewoKICAgICAgICAjIGNoYWxsZW5nZSB0b2tlbiBjaGVjayBmb3Igd3JpdGUgYWN0aW9uCiAgICAgICAgJExheW91dE9iamVjdC0+Q2hhbGxlbmdlVG9rZW5DaGVjaygpOwoKICAgICAgICBteSAkTm90ZSA9ICcnOwogICAgICAgIG15ICggJUdldFBhcmFtLCAlRXJyb3JzICk7CgogICAgICAgICMgZ2V0IHBhcmFtZXRlcnMKICAgICAgICAkR2V0UGFyYW17SUR9ICAgICAgICAgICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnSUQnICkgfHwgJyc7CiAgICAgICAgJEdldFBhcmFte1Byb2plY3RTdGF0dXN9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1Byb2plY3RTdGF0dXMnICkKICAgICAgICAgICAgfHwgJzAnOwogICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhQcm9qZWN0IFByb2plY3REZXNjcmlwdGlvbikpIHsKICAgICAgICAgICAgJEdldFBhcmFteyRQYXJhbWV0ZXJ9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtZXRlciApIHx8ICcnOwogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayBmb3IgbmVlZGVkIGRhdGEKICAgICAgICBpZiAoICEkR2V0UGFyYW17UHJvamVjdH0gKSB7CiAgICAgICAgICAgICRFcnJvcnN7UHJvamVjdEludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAjIGNoZWNrIHRoYXQgdGhlIG5hbWUgaXMgdW5pcXVlCiAgICAgICAgICAgIG15ICVFeGlzdGluZ1Byb2plY3QgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RHZXQoCiAgICAgICAgICAgICAgICBQcm9qZWN0ID0+ICRHZXRQYXJhbXtQcm9qZWN0fSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgaWYgdGhlIHByb2plY3QgbmFtZSBpcyBmb3VuZCwgY2hlY2sgdGhhdCB0aGUgSUQgaXMgZGlmZmVyZW50CiAgICAgICAgICAgIGlmICggJUV4aXN0aW5nUHJvamVjdCAmJiAkRXhpc3RpbmdQcm9qZWN0e0lEfSBuZSAkR2V0UGFyYW17SUR9ICkgewogICAgICAgICAgICAgICAgJEVycm9yc3tQcm9qZWN0SW52YWxpZH0gICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAkRXJyb3Jze1Byb2plY3RFcnJvclR5cGV9ID0gJ1Byb2plY3REdXBsaWNhdGVOYW1lJzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBpZiBubyBlcnJvcnMgb2NjdXJyZWQKICAgICAgICBpZiAoICElRXJyb3JzICkgewoKICAgICAgICAgICAgIyBlZGl0IHByb2plY3QKICAgICAgICAgICAgaWYgKCAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc1VwZGF0ZSglR2V0UGFyYW0pICkgewoKICAgICAgICAgICAgICAgICRTZWxmLT5fU2V0dGluZ092ZXJ2aWV3KCk7CiAgICAgICAgICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICAgICAgICAgIEluZm8gPT4gVHJhbnNsYXRhYmxlKCdQcm9qZWN0IHVwZGF0ZWQhJyksCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZycsCiAgICAgICAgICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICROb3RlID0gJExvZ09iamVjdC0+R2V0TG9nRW50cnkoCiAgICAgICAgICAgICAgICAgICAgVHlwZSA9PiAnRXJyb3InLAogICAgICAgICAgICAgICAgICAgIFdoYXQgPT4gJ01lc3NhZ2UnLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBzb21ldGhpbmcgd2VudCB3cm9uZwogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAkT3V0cHV0IC49ICROb3RlCiAgICAgICAgICAgID8gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICBQcmlvcml0eSA9PiAnRXJyb3InLAogICAgICAgICAgICBJbmZvICAgICA9PiAkTm90ZSwKICAgICAgICAgICAgKQogICAgICAgICAgICA6ICcnOwogICAgICAgICRTZWxmLT5fUHJvamVjdFNldHRpbmdzRWRpdCgKICAgICAgICAgICAgQWN0aW9uID0+ICdFZGl0UHJvamVjdCcsCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAlRXJyb3JzLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGFkZCB0YXNrCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0FkZFRhc2snICkgewogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAkU2VsZi0+X1Rhc2tTZXR0aW5nc0VkaXQoIEFjdGlvbiA9PiAnQWRkVGFzaycgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZycsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgYWRkIHRhc2sgYWN0aW9uCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0FkZFRhc2tBY3Rpb24nICkgewoKICAgICAgICAjIGNoYWxsZW5nZSB0b2tlbiBjaGVjayBmb3Igd3JpdGUgYWN0aW9uCiAgICAgICAgJExheW91dE9iamVjdC0+Q2hhbGxlbmdlVG9rZW5DaGVjaygpOwoKICAgICAgICBteSAkTm90ZSA9ICcnOwogICAgICAgIG15ICRUYXNrSUQ7CiAgICAgICAgbXkgKCAlR2V0UGFyYW0sICVFcnJvcnMgKTsKCiAgICAgICAgIyBnZXQgcGFyYW1ldGVycwogICAgICAgICRHZXRQYXJhbXtUYXNrfSAgICAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdUYXNrJyApIHx8ICcnOwogICAgICAgICRHZXRQYXJhbXtUYXNrU3RhdHVzfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdUYXNrU3RhdHVzJyApCiAgICAgICAgICAgIHx8ICcwJzsKCiAgICAgICAgIyBjaGVjayBmb3IgbmVlZGVkIGRhdGEKICAgICAgICBpZiAoICEkR2V0UGFyYW17VGFza30gKSB7CiAgICAgICAgICAgICRFcnJvcnN7VGFza0ludmFsaWR9ICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAkRXJyb3Jze1Rhc2tFcnJvclR5cGV9ID0gJ1Rhc2tNaXNzaW5nVmFsdWUnOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgY2hlY2sgdGhhdCB0aGUgbmFtZSBpcyB1bmlxdWUKICAgICAgICAgICAgbXkgJUV4aXN0aW5nVGFzayA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uR2V0KAogICAgICAgICAgICAgICAgQWN0aW9uID0+ICRHZXRQYXJhbXtUYXNrfSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaWYgKCVFeGlzdGluZ1Rhc2spIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7VGFza0ludmFsaWR9ICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgJEVycm9yc3tUYXNrRXJyb3JUeXBlfSA9ICdUYXNrRHVwbGljYXRlTmFtZSc7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgaWYgbm8gZXJyb3JzIG9jY3VycmVkCiAgICAgICAgaWYgKCAhJUVycm9ycyApIHsKCiAgICAgICAgICAgICMgYWRkIHRhc2sKICAgICAgICAgICAgJFRhc2tJRCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgICAgICBBY3Rpb24gICAgICAgPT4gJEdldFBhcmFte1Rhc2t9LAogICAgICAgICAgICAgICAgQWN0aW9uU3RhdHVzID0+ICRHZXRQYXJhbXtUYXNrU3RhdHVzfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGlmICgkVGFza0lEKSB7CgogICAgICAgICAgICAgICAgIyBidWlsZCB0aGUgb3V0cHV0CiAgICAgICAgICAgICAgICAkU2VsZi0+X1NldHRpbmdPdmVydmlldygpOwogICAgICAgICAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgICAgICAgICBJbmZvID0+IFRyYW5zbGF0YWJsZSgnVGFzayBhZGRlZCEnKSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nJywKICAgICAgICAgICAgICAgICAgICBEYXRhICAgICAgICAgPT4ge30sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICROb3RlID0gJExvZ09iamVjdC0+R2V0TG9nRW50cnkoCiAgICAgICAgICAgICAgICAgICAgVHlwZSA9PiAnRXJyb3InLAogICAgICAgICAgICAgICAgICAgIFdoYXQgPT4gJ01lc3NhZ2UnLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBzb21ldGhpbmcgd2VudCB3cm9uZwogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAkT3V0cHV0IC49ICROb3RlCiAgICAgICAgICAgID8gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICBQcmlvcml0eSA9PiAnRXJyb3InLAogICAgICAgICAgICBJbmZvICAgICA9PiAkTm90ZSwKICAgICAgICAgICAgKQogICAgICAgICAgICA6ICcnOwogICAgICAgICRTZWxmLT5fVGFza1NldHRpbmdzRWRpdCgKICAgICAgICAgICAgQWN0aW9uID0+ICdBZGRUYXNrJywKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAlRXJyb3JzLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGVkaXQgdGFzawogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdFZGl0VGFzaycgKSB7CiAgICAgICAgbXkgJElEID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0FjdGlvbklEJyApIHx8ICcnOwoKICAgICAgICAjIGdldCBwcm9qZWN0IGRhdGEKICAgICAgICBteSAlVGFzayA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uR2V0KAogICAgICAgICAgICBJRCA9PiAkSUQsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJVRhc2tEYXRhID0gKAogICAgICAgICAgICBUYXNrICAgICAgID0+ICRUYXNre0FjdGlvbn0sCiAgICAgICAgICAgIFRhc2tTdGF0dXMgPT4gJFRhc2t7QWN0aW9uU3RhdHVzfSwKICAgICAgICApOwoKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgJFNlbGYtPl9UYXNrU2V0dGluZ3NFZGl0KAogICAgICAgICAgICBBY3Rpb24gICA9PiAnRWRpdFRhc2snLAogICAgICAgICAgICBBY3Rpb25JRCA9PiAkSUQsCiAgICAgICAgICAgICVUYXNrRGF0YSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nJywKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBlZGl0IHByb2plY3QgYWN0aW9uCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0VkaXRUYXNrQWN0aW9uJyApIHsKCiAgICAgICAgIyBjaGFsbGVuZ2UgdG9rZW4gY2hlY2sgZm9yIHdyaXRlIGFjdGlvbgogICAgICAgICRMYXlvdXRPYmplY3QtPkNoYWxsZW5nZVRva2VuQ2hlY2soKTsKCiAgICAgICAgbXkgJE5vdGUgPSAnJzsKICAgICAgICBteSAoICVHZXRQYXJhbSwgJUVycm9ycyApOwoKICAgICAgICAjIGdldCBwYXJhbWV0ZXJzCiAgICAgICAgJEdldFBhcmFte0FjdGlvbklEfSAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0FjdGlvbklEJyApICAgfHwgJyc7CiAgICAgICAgJEdldFBhcmFte1Rhc2tTdGF0dXN9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1Rhc2tTdGF0dXMnICkgfHwgJzAnOwogICAgICAgICRHZXRQYXJhbXtUYXNrfSAgICAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdUYXNrJyApICAgICAgIHx8ICcnOwoKICAgICAgICAjIGNoZWNrIGZvciBuZWVkZWQgZGF0YQogICAgICAgIGlmICggISRHZXRQYXJhbXtUYXNrfSApIHsKICAgICAgICAgICAgJEVycm9yc3tUYXNrSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgY2hlY2sgdGhhdCB0aGUgbmFtZSBpcyB1bmlxdWUKICAgICAgICAgICAgbXkgJUV4aXN0aW5nVGFzayA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uR2V0KAogICAgICAgICAgICAgICAgQWN0aW9uID0+ICRHZXRQYXJhbXtUYXNrfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgaWYgdGhlIHRhc2sgbmFtZSBpcyBmb3VuZCwgY2hlY2sgdGhhdCB0aGUgSUQgaXMgZGlmZmVyZW50CiAgICAgICAgICAgIGlmICggJUV4aXN0aW5nVGFzayAmJiAkRXhpc3RpbmdUYXNre0lEfSBuZSAkR2V0UGFyYW17QWN0aW9uSUR9ICkgewogICAgICAgICAgICAgICAgJEVycm9yc3tUYXNrSW52YWxpZH0gICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAkRXJyb3Jze1Rhc2tFcnJvclR5cGV9ID0gJ1Rhc2tEdXBsaWNhdGVOYW1lJzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBpZiBubyBlcnJvcnMgb2NjdXJyZWQKICAgICAgICBpZiAoICElRXJyb3JzICkgewoKICAgICAgICAgICAgIyBlZGl0IGFjdGlvbiAodGFzaykKICAgICAgICAgICAgbXkgJEFjdGlvblVwZGF0ZSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NVcGRhdGUoCiAgICAgICAgICAgICAgICBBY3Rpb25JRCAgICAgPT4gJEdldFBhcmFte0FjdGlvbklEfSwKICAgICAgICAgICAgICAgIEFjdGlvbiAgICAgICA9PiAkR2V0UGFyYW17VGFza30sCiAgICAgICAgICAgICAgICBBY3Rpb25TdGF0dXMgPT4gJEdldFBhcmFte1Rhc2tTdGF0dXN9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCRBY3Rpb25VcGRhdGUpIHsKICAgICAgICAgICAgICAgICRTZWxmLT5fU2V0dGluZ092ZXJ2aWV3KCk7CiAgICAgICAgICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICAgICAgICAgIEluZm8gPT4gVHJhbnNsYXRhYmxlKCdUYXNrIHVwZGF0ZWQhJyksCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZycsCiAgICAgICAgICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICROb3RlID0gJExvZ09iamVjdC0+R2V0TG9nRW50cnkoCiAgICAgICAgICAgICAgICAgICAgVHlwZSA9PiAnRXJyb3InLAogICAgICAgICAgICAgICAgICAgIFdoYXQgPT4gJ01lc3NhZ2UnLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBzb21ldGhpbmcgd2VudCB3cm9uZwogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAkT3V0cHV0IC49ICROb3RlCiAgICAgICAgICAgID8gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICBQcmlvcml0eSA9PiAnRXJyb3InLAogICAgICAgICAgICBJbmZvICAgICA9PiAkTm90ZSwKICAgICAgICAgICAgKQogICAgICAgICAgICA6ICcnOwogICAgICAgICRTZWxmLT5fVGFza1NldHRpbmdzRWRpdCgKICAgICAgICAgICAgQWN0aW9uID0+ICdFZGl0VGFzaycsCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAlRXJyb3JzLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGFkZCB1c2VyCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0FkZFVzZXInICkgewoKICAgICAgICAjIGdldCBwYXJhbWV0ZXJzCiAgICAgICAgbXkgJE5ld1VzZXJJRCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdOZXdVc2VySUQnICkKICAgICAgICAgICAgfHwgJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1VzZXJJRCcgKQogICAgICAgICAgICB8fCAnJzsKICAgICAgICBpZiAoICEkTmV3VXNlcklEICkgewoKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ1RoZSBVc2VySUQgaXMgbm90IHZhbGlkIScpLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgbXkgJE5ld1RpbWVQZXJpb2QgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnTmV3VGltZVBlcmlvZCcgKTsKCiAgICAgICAgbXkgJExhc3RQZXJpb2ROdW1iZXIgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJMYXN0UGVyaW9kTnVtYmVyR2V0KAogICAgICAgICAgICBVc2VySUQgPT4gJE5ld1VzZXJJRCwKICAgICAgICApOwoKICAgICAgICBteSAkU3VjY2VzcyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICBVc2VySUQgPT4gJE5ld1VzZXJJRCwKICAgICAgICAgICAgUGVyaW9kID0+ICRMYXN0UGVyaW9kTnVtYmVyICsgMSwKICAgICAgICApOwoKICAgICAgICAjIGlmIGl0IGlzIG5vdCBhbiBhY3Rpb24gYWJvdXQgYWRkaW5nIGEgbmV3IHRpbWUgcGVyaW9kCiAgICAgICAgaWYgKCAhJE5ld1RpbWVQZXJpb2QgJiYgISRTdWNjZXNzICkgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnQ2FuXCd0IGluc2VydCB1c2VyIGRhdGEhJyksCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBteSAlVXNlciA9ICRVc2VyT2JqZWN0LT5HZXRVc2VyRGF0YSgKICAgICAgICAgICAgVXNlcklEID0+ICROZXdVc2VySUQsCiAgICAgICAgKTsKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgJFNlbGYtPl9Vc2VyU2V0dGluZ3NFZGl0KAogICAgICAgICAgICBBY3Rpb24gICAgPT4gJ0FkZFVzZXInLAogICAgICAgICAgICBTdWJhY3Rpb24gPT4gJ0FkZFVzZXInLAogICAgICAgICAgICAlVXNlciwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nJywKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBlZGl0IHVzZXIgc2V0dGluZ3MKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnRWRpdFVzZXInICkgewogICAgICAgIG15ICRJRCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdVc2VySUQnICkgfHwgJyc7CiAgICAgICAgaWYgKCAhJElEICkgewoKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ1RoZSBVc2VySUQgaXMgbm90IHZhbGlkIScpLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgbXkgJE5ld1RpbWVQZXJpb2QgICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnTmV3VGltZVBlcmlvZCcgKTsKICAgICAgICBteSAkTGFzdFBlcmlvZE51bWJlciA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckxhc3RQZXJpb2ROdW1iZXJHZXQoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkSUQsCiAgICAgICAgKTsKCiAgICAgICAgIyBpZiBpdCBpcyBhbiBhY3Rpb24gYWJvdXQgYWRkaW5nIGEgbmV3IHRpbWUgcGVyaW9kLCBpbnNlcnQgaXQKICAgICAgICBpZiAoJE5ld1RpbWVQZXJpb2QpIHsKICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkSUQsCiAgICAgICAgICAgICAgICBQZXJpb2QgPT4gJExhc3RQZXJpb2ROdW1iZXIgKyAxLAogICAgICAgICAgICApOwogICAgICAgICAgICBpZiAoICEkU3VjY2VzcyApIHsKCiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ1VuYWJsZSB0byBhZGQgdGltZSBwZXJpb2QhJyksCiAgICAgICAgICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBjb250YWN0IHRoZSBhZG1pbmlzdHJhdG9yLicpLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgbXkgJUVycm9ycyA9ICgpOwoKICAgICAgICBpZiAoCiAgICAgICAgICAgICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdBZGRQZXJpb2QnICkKICAgICAgICAgICAgfHwgJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1N1Ym1pdFVzZXJEYXRhJyApCiAgICAgICAgICAgICkKICAgICAgICB7CgogICAgICAgICAgICAjIGNoZWNrIHZhbGlkaXR5IG9mIHBlcmlvZHMKICAgICAgICAgICAgJUVycm9ycyA9ICRTZWxmLT5fQ2hlY2tWYWxpZGl0eVVzZXJQZXJpb2RzKAogICAgICAgICAgICAgICAgUGVyaW9kID0+ICRMYXN0UGVyaW9kTnVtYmVyLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgdXNlciBkYXRhCiAgICAgICAgbXkgJVVzZXIgPSAkVXNlck9iamVjdC0+R2V0VXNlckRhdGEoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkSUQsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICRTZWxmLT5fVXNlclNldHRpbmdzRWRpdCgKICAgICAgICAgICAgQWN0aW9uICAgID0+ICdFZGl0VXNlcicsCiAgICAgICAgICAgIFN1YmFjdGlvbiA9PiAnRWRpdFVzZXInLAogICAgICAgICAgICBVc2VySUQgICAgPT4gJElELAogICAgICAgICAgICBFcnJvcnMgICAgPT4gXCVFcnJvcnMsCiAgICAgICAgICAgIFBlcmlvZHMgICA9PiAkTGFzdFBlcmlvZE51bWJlciwKICAgICAgICAgICAgJVVzZXIsCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZycsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgc2V0dGluZ3MgZm9yIGhhbmRsaW5nIHRpbWUgYWNjb3VudGluZwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKCiAgICAjIGdldCB1c2VyIGRhdGEKICAgIG15ICVVc2VyRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckdldCgKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAjIHBlcm1pc3Npb24gY2hlY2sKICAgIGlmICggISRVc2VyRGF0YXtDcmVhdGVQcm9qZWN0fSAmJiAhJFNlbGYtPntBY2Nlc3NSd30gKSB7CgogICAgICAgICMgcmV0dXJuIG5vIHBlcm1pc3Npb24gc2NyZWVuCiAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPk5vUGVybWlzc2lvbigKICAgICAgICAgICAgV2l0aEhlYWRlciA9PiAneWVzJywKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IHRoZSB1c2VyIGFjdGlvbiB0byBzaG93IGEgbWVzc2FnZSBpZiBhbiB1c2VyIHdhcyB1cGRhdGVkIG9yIGFkZGVkCiAgICBteSAkTm90ZSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdVc2VyJyApOwoKICAgICMgYnVpbGQgb3V0cHV0CiAgICAkU2VsZi0+X1NldHRpbmdPdmVydmlldygpOwogICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigKICAgICAgICBUaXRsZSA9PiBUcmFuc2xhdGFibGUoJ1NldHRpbmcnKSwKICAgICk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKCiAgICAjIHNob3cgYSBub3RpZmljYXRpb24gbWVzc2FnZSBpZiBwcm9wZXIKICAgIGlmICgkTm90ZSkgewogICAgICAgICRPdXRwdXQgLj0gJE5vdGUgZXEgJ0VkaXRVc2VyJwogICAgICAgICAgICA/ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgSW5mbyA9PiBUcmFuc2xhdGFibGUoJ1VzZXIgdXBkYXRlZCEnKSwKICAgICAgICAgICAgKQogICAgICAgICAgICA6ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgSW5mbyA9PiBUcmFuc2xhdGFibGUoJ1VzZXIgYWRkZWQhJyksCiAgICAgICAgICAgICk7CiAgICB9CgogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZycKICAgICk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgIHJldHVybiAkT3V0cHV0OwoKfQoKc3ViIF9DaGVja1ZhbGlkaXR5VXNlclBlcmlvZHMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlRXJyb3JzID0gKCk7CiAgICBteSAlR2V0UGFyYW07CgogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgZm9yICggbXkgJFBlcmlvZCA9IDE7ICRQZXJpb2QgPD0gJFBhcmFte1BlcmlvZH07ICRQZXJpb2QrKyApIHsKCiAgICAgICAgIyBjaGVjayBmb3IgbmVlZGVkIGRhdGEKICAgICAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoRGF0ZVN0YXJ0IERhdGVFbmQgTGVhdmVEYXlzKSkgewogICAgICAgICAgICAkR2V0UGFyYW17JFBhcmFtZXRlcn0KICAgICAgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpLT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtZXRlciAuICJbJFBlcmlvZF0iICk7CiAgICAgICAgICAgIGlmICggISRHZXRQYXJhbXskUGFyYW1ldGVyfSApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7ICRQYXJhbWV0ZXIgLiAnLScgLiAkUGVyaW9kIC4gJ0ludmFsaWQnIH0gICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyAkUGFyYW1ldGVyIC4gJy0nIC4gJFBlcmlvZCAuICdFcnJvclR5cGUnIH0gPSAnTWlzc2luZ1ZhbHVlJzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBteSAoICRZZWFyLCAkTW9udGgsICREYXkgKSA9IHNwbGl0KCAnLScsICRHZXRQYXJhbXtEYXRlU3RhcnR9ICk7CiAgICAgICAgbXkgJFN0YXJ0RGF0ZSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+RGF0ZTJTeXN0ZW1UaW1lKAogICAgICAgICAgICBZZWFyICAgPT4gJFllYXIsCiAgICAgICAgICAgIE1vbnRoICA9PiAkTW9udGgsCiAgICAgICAgICAgIERheSAgICA9PiAkRGF5LAogICAgICAgICAgICBIb3VyICAgPT4gMCwKICAgICAgICAgICAgTWludXRlID0+IDAsCiAgICAgICAgICAgIFNlY29uZCA9PiAwLAogICAgICAgICk7CiAgICAgICAgKCAkWWVhciwgJE1vbnRoLCAkRGF5ICkgPSBzcGxpdCggJy0nLCAkR2V0UGFyYW17RGF0ZUVuZH0gKTsKICAgICAgICBteSAkRW5kRGF0ZSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+RGF0ZTJTeXN0ZW1UaW1lKAogICAgICAgICAgICBZZWFyICAgPT4gJFllYXIsCiAgICAgICAgICAgIE1vbnRoICA9PiAkTW9udGgsCiAgICAgICAgICAgIERheSAgICA9PiAkRGF5LAogICAgICAgICAgICBIb3VyICAgPT4gMCwKICAgICAgICAgICAgTWludXRlID0+IDAsCiAgICAgICAgICAgIFNlY29uZCA9PiAwLAogICAgICAgICk7CiAgICAgICAgaWYgKCAhJFN0YXJ0RGF0ZSApIHsKICAgICAgICAgICAgJEVycm9yc3sgJ0RhdGVTdGFydC0nIC4gJFBlcmlvZCAuICdJbnZhbGlkJyB9ICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAkRXJyb3JzeyAnRGF0ZVN0YXJ0LScgLiAkUGVyaW9kIC4gJ0Vycm9yVHlwZScgfSA9ICdJbnZhbGlkJzsKICAgICAgICB9CiAgICAgICAgaWYgKCAhJEVuZERhdGUgKSB7CiAgICAgICAgICAgICRFcnJvcnN7ICdEYXRlRW5kLScgLiAkUGVyaW9kIC4gJ0ludmFsaWQnIH0gICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICRFcnJvcnN7ICdEYXRlRW5kLScgLiAkUGVyaW9kIC4gJ0Vycm9yVHlwZScgfSA9ICdJbnZhbGlkJzsKICAgICAgICB9CiAgICAgICAgaWYgKCAkU3RhcnREYXRlICYmICRFbmREYXRlICYmICRTdGFydERhdGUgPj0gJEVuZERhdGUgKSB7CiAgICAgICAgICAgICRFcnJvcnN7ICdEYXRlRW5kLScgLiAkUGVyaW9kIC4gJ0ludmFsaWQnIH0gICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICRFcnJvcnN7ICdEYXRlRW5kLScgLiAkUGVyaW9kIC4gJ0Vycm9yVHlwZScgfSA9ICdCZWZvcmVEYXRlU3RhcnQnOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gJUVycm9yczsKfQoKc3ViIF9Qcm9qZWN0U2V0dGluZ3NFZGl0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdPdmVydmlld1Byb2plY3QnLAogICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnQWN0aW9uTGlzdFByb2plY3QnLAogICAgICAgIERhdGEgPT4ge30sCiAgICApOwogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnQWN0aW9uU2V0dGluZ092ZXJ2aWV3JywKICAgICAgICBEYXRhID0+IHt9LAogICAgKTsKCiAgICAjIGRlZmluZSBzdGF0dXMgbGlzdAogICAgbXkgJVN0YXR1c0xpc3QgPSAoCiAgICAgICAgMSA9PiBUcmFuc2xhdGFibGUoJ3ZhbGlkJyksCiAgICAgICAgMCA9PiBUcmFuc2xhdGFibGUoJ2ludmFsaWQnKSwKICAgICk7CgogICAgbXkgJFByb2plY3RTdGF0dXMgPSAxOwogICAgaWYgKCBkZWZpbmVkICRQYXJhbXtQcm9qZWN0U3RhdHVzfSApIHsKICAgICAgICAkUHJvamVjdFN0YXR1cyA9ICRQYXJhbXtQcm9qZWN0U3RhdHVzfTsKICAgIH0KCiAgICAkUGFyYW17U3RhdHVzT3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgPT4gXCVTdGF0dXNMaXN0LAogICAgICAgIFNlbGVjdGVkSUQgPT4gJFByb2plY3RTdGF0dXMsCiAgICAgICAgTmFtZSAgICAgICA9PiAnUHJvamVjdFN0YXR1cycsCiAgICAgICAgQ2xhc3MgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdVcGRhdGVQcm9qZWN0JywKICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICApOwoKICAgICMgc2hvd3MgaGVhZGVyCiAgICBpZiAoICRQYXJhbXtBY3Rpb259IGVxICdFZGl0UHJvamVjdCcgKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0hlYWRlckVkaXRQcm9qZWN0JywKICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICApOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0hlYWRlckFkZFByb2plY3QnLAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CiAgICB9CgogICAgIyBzaG93IHNlcnZlciBlcnJvciBtZXNzYWdlIChpZiBhbnkpIGZvciB0aGUgcHJvamVjdCBuYW1lCiAgICBpZiAoICRQYXJhbXtQcm9qZWN0RXJyb3JUeXBlfSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAkUGFyYW17UHJvamVjdEVycm9yVHlwZX0sCiAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gMTsKfQoKc3ViIF9TZXR0aW5nT3ZlcnZpZXcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlUHJvamVjdCA9ICgpOwogICAgbXkgJURhdGEgICAgPSAoKTsKCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICMgYnVpbGQgb3V0cHV0CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdTZXR0aW5nJywKICAgICAgICBEYXRhID0+IHt9LAogICAgKTsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0FjdGlvbkxpc3RTZXR0aW5nJywKICAgICAgICBEYXRhID0+IHt9LAogICAgKTsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0FjdGlvbkFkZFByb2plY3QnLAogICAgICAgIERhdGEgPT4ge30sCiAgICApOwoKICAgICMgaGFzaCB0byBzYXZlIHJlZ2lzdGVyZWQgdXNlcnMKICAgIG15ICVVc2VyOwoKICAgICMgZ2V0IG5lZWRlZCBvYmplY3RzCiAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKICAgIG15ICRVc2VyT2JqZWN0ICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7CgogICAgaWYgKCAkU2VsZi0+e0FjY2Vzc1J3fSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnQWN0aW9uQWRkVGFzaycsCiAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgdXNlciBkYXRhCiAgICAgICAgbXkgJVNob3duVXNlcnMgPSAkVXNlck9iamVjdC0+VXNlckxpc3QoCiAgICAgICAgICAgIFR5cGUgID0+ICdMb25nJywKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIGdldCBsaXN0IG9mIHJlZ2lzdGVyZWQgdXNlcnMgKGlmIGFueSkKICAgICAgICAlVXNlciA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckxpc3QoKTsKCiAgICAgICAgVVNFUklORk86CiAgICAgICAgZm9yIG15ICRVc2VySW5mbyAoIHNvcnQgeyAkU2hvd25Vc2Vyc3skYX0gY21wICRTaG93blVzZXJzeyRifSB9IGtleXMgJVNob3duVXNlcnMgKSB7CiAgICAgICAgICAgIG5leHQgVVNFUklORk8gaWYgISRVc2VyeyRVc2VySW5mb307CgogICAgICAgICAgICAjIGRlbGV0ZSBhbHJlYWR5IHJlZ2lzdGVyZWQgdXNlciBmcm9tIHRoZSAnbmV3JyBsaXN0CiAgICAgICAgICAgIGRlbGV0ZSAkU2hvd25Vc2Vyc3skVXNlckluZm99OwogICAgICAgIH0KCiAgICAgICAgJFNob3duVXNlcnN7Jy0nfSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgiQWRkIGEgdXNlciB0byB0aW1lIGFjY291bnRpbmcuLi4iKTsKCiAgICAgICAgaWYgKCBzY2FsYXIga2V5cyAlU2hvd25Vc2VycyA+IDEgKSB7CiAgICAgICAgICAgIG15ICROZXdVc2VyT3B0aW9uID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVTaG93blVzZXJzLAogICAgICAgICAgICAgICAgU2VsZWN0ZWRJRCAgID0+ICcnLAogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICdOZXdVc2VySUQnLAogICAgICAgICAgICAgICAgVHJhbnNsYXRpb24gID0+IDAsCiAgICAgICAgICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMCwKICAgICAgICAgICAgICAgIFRpdGxlICAgICAgICA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoIk5ldyBVc2VyIiksCiAgICAgICAgICAgICAgICBDbGFzcyAgICAgICAgPT4gJ01vZGVybml6ZScsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnQWN0aW9uQWRkVXNlcicsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBOZXdVc2VyT3B0aW9uID0+ICROZXdVc2VyT3B0aW9uLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBTaG93IHByb2plY3QgZGF0YQogICAgJVByb2plY3QgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0dldCgpOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0UHJvamVjdCcsCiAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgKTsKCiAgICAjIGRlZmluZSBzdGF0dXMgbGlzdAogICAgbXkgJVN0YXR1c0xpc3QgPSAoCiAgICAgICAgMSA9PiBUcmFuc2xhdGFibGUoJ3ZhbGlkJyksCiAgICAgICAgMCA9PiBUcmFuc2xhdGFibGUoJ2ludmFsaWQnKSwKICAgICk7CgogICAgIyBzaG93IGxpc3Qgb2YgYXZhaWxhYmxlIHByb2plY3RzIChpZiBhbnkpCiAgICBpZiAoICRQcm9qZWN0e1Byb2plY3R9ICkgewoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdSZXN1bHRQcm9qZWN0VGFibGUnLAogICAgICAgICAgICBEYXRhID0+IHslUGFyYW19LAogICAgICAgICk7CgogICAgICAgIGZvciBteSAkUHJvamVjdElEICgKICAgICAgICAgICAgc29ydCB7ICRQcm9qZWN0e1Byb2plY3R9eyRhfSBjbXAgJFByb2plY3R7UHJvamVjdH17JGJ9IH0KICAgICAgICAgICAga2V5cyAleyAkUHJvamVjdHtQcm9qZWN0fSB9CiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRQYXJhbXtQcm9qZWN0fSAgICAgICAgICAgID0gJFByb2plY3R7UHJvamVjdH17JFByb2plY3RJRH07CiAgICAgICAgICAgICRQYXJhbXtQcm9qZWN0RGVzY3JpcHRpb259ID0gJFByb2plY3R7UHJvamVjdERlc2NyaXB0aW9ufXskUHJvamVjdElEfTsKICAgICAgICAgICAgJFBhcmFte1Byb2plY3RJRH0gICAgICAgICAgPSAkUHJvamVjdElEOwogICAgICAgICAgICAkUGFyYW17U3RhdHVzfSAgICAgICAgICAgICA9ICRTdGF0dXNMaXN0eyAkUHJvamVjdHtQcm9qZWN0U3RhdHVzfXskUHJvamVjdElEfSB9OwoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld1Jlc3VsdFByb2plY3RSb3cnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBvdGhlcndpc2UsIHNob3cgYSBubyBkYXRhIGZvdW5kIG1lc3NhZ2UKICAgIGVsc2UgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdOb1Byb2plY3REYXRhRm91bmRNc2cnLAogICAgICAgICk7CiAgICB9CgogICAgaWYgKCAkU2VsZi0+e0FjY2Vzc1J3fSApIHsKCiAgICAgICAgIyBTaG93IGFjdGlvbiBkYXRhCiAgICAgICAgbXkgJUFjdGlvbiA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NHZXQoKTsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0U2V0dGluZycsCiAgICAgICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICAgICApOwoKICAgICAgICAjIHNob3cgbGlzdCBvZiBhdmFpbGFibGUgdGFza3MvYWN0aW9ucyAoaWYgYW55KQogICAgICAgIGlmICglQWN0aW9uKSB7CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0U2V0dGluZ1RhYmxlJywKICAgICAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBmb3IgbXkgJEFjdGlvbklEICggc29ydCB7ICRBY3Rpb257JGF9e0FjdGlvbn0gY21wICRBY3Rpb257JGJ9e0FjdGlvbn0gfSBrZXlzICVBY3Rpb24gKSB7CiAgICAgICAgICAgICAgICAkUGFyYW17QWN0aW9ufSAgID0gJEFjdGlvbnskQWN0aW9uSUR9e0FjdGlvbn07CiAgICAgICAgICAgICAgICAkUGFyYW17QWN0aW9uSUR9ID0gJEFjdGlvbklEOwogICAgICAgICAgICAgICAgJFBhcmFte1N0YXR1c30gICA9ICRTdGF0dXNMaXN0eyAkQWN0aW9ueyRBY3Rpb25JRH17QWN0aW9uU3RhdHVzfSB9OwoKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0U2V0dGluZ1JvdycsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgb3RoZXJ3aXNlLCBzaG93IGEgbm8gZGF0YSBmb3VuZCBtZXNzYWdlCiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnTm9TZXR0aW5nRGF0YUZvdW5kTXNnJywKICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIHNob3cgdXNlciBkYXRhCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0VXNlcicsCiAgICAgICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICAgICApOwoKICAgICAgICAjIHNob3cgbGlzdCBvZiByZWdpc3RlcmVkIHVzZXJzIChpZiBhbnkpCiAgICAgICAgaWYgKCVVc2VyKSB7CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0VXNlclRhYmxlJywKICAgICAgICAgICAgICAgIERhdGEgPT4geyVQYXJhbX0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBmb3IgbXkgJFVzZXJJRCAoIHNvcnQgeyAkVXNlcnskYX0gY21wICRVc2VyeyRifSB9IGtleXMgJVVzZXIgKSB7CgogICAgICAgICAgICAgICAgIyBnZXQgbWlzc2luZyB1c2VyIGRhdGEKICAgICAgICAgICAgICAgIG15ICVVc2VyRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckdldCgKICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFVzZXJJRCwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBteSAlVXNlckdlbmVyYWxEYXRhID0gJFVzZXJPYmplY3QtPkdldFVzZXJEYXRhKAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkVXNlcklELAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAkUGFyYW17VXNlcn0gICAgICAgPSAiJFVzZXJHZW5lcmFsRGF0YXtVc2VyRnVsbG5hbWV9ICgkVXNlckdlbmVyYWxEYXRhe1VzZXJMb2dpbn0pIjsKICAgICAgICAgICAgICAgICRQYXJhbXtVc2VySUR9ICAgICA9ICRVc2VySUQ7CiAgICAgICAgICAgICAgICAkUGFyYW17Q29tbWVudH0gICAgPSAkVXNlckRhdGF7RGVzY3JpcHRpb259OwogICAgICAgICAgICAgICAgJFBhcmFte0NhbGVuZGFyTm99ID0gJFVzZXJEYXRhe0NhbGVuZGFyfTsKICAgICAgICAgICAgICAgICRQYXJhbXtDYWxlbmRhcn0gICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgKICAgICAgICAgICAgICAgICAgICAiVGltZVpvbmU6OkNhbGVuZGFyIgogICAgICAgICAgICAgICAgICAgICAgICAuICggJFBhcmFte0NhbGVuZGFyTm99IHx8ICcnICkgLiAiTmFtZSIKICAgICAgICAgICAgICAgICkgfHwgJ0RlZmF1bHQnOwoKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0VXNlclJvdycsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgb3RoZXJ3aXNlLCBzaG93IGEgbm8gZGF0YSBmb3VuZCBtZXNzYWdlCiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnTm9Vc2VyRGF0YUZvdW5kTXNnJywKICAgICAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAxOwp9CgpzdWIgX1Rhc2tTZXR0aW5nc0VkaXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ1NldHRpbmcnLAogICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnQWN0aW9uTGlzdFNldHRpbmcnLAogICAgICAgIERhdGEgPT4ge30sCiAgICApOwogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnQWN0aW9uT3ZlcnZpZXdTZXR0aW5nJywKICAgICAgICBEYXRhID0+IHt9LAogICAgKTsKCiAgICAjIGRlZmluZSBzdGF0dXMgbGlzdAogICAgbXkgJVN0YXR1c0xpc3QgPSAoCiAgICAgICAgMSA9PiBUcmFuc2xhdGFibGUoJ3ZhbGlkJyksCiAgICAgICAgMCA9PiBUcmFuc2xhdGFibGUoJ2ludmFsaWQnKSwKICAgICk7CgogICAgbXkgJFRhc2tTdGF0dXMgPSAxOwogICAgaWYgKCBkZWZpbmVkICRQYXJhbXtUYXNrU3RhdHVzfSApIHsKICAgICAgICAkVGFza1N0YXR1cyA9ICRQYXJhbXtUYXNrU3RhdHVzfTsKICAgIH0KCiAgICAkUGFyYW17U3RhdHVzT3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgPT4gXCVTdGF0dXNMaXN0LAogICAgICAgIFNlbGVjdGVkSUQgPT4gJFRhc2tTdGF0dXMsCiAgICAgICAgTmFtZSAgICAgICA9PiAnVGFza1N0YXR1cycsCiAgICAgICAgQ2xhc3MgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdVcGRhdGVUYXNrJywKICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICApOwoKICAgICMgc2hvd3MgaGVhZGVyCiAgICBpZiAoICRQYXJhbXtBY3Rpb259IGVxICdFZGl0VGFzaycgKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0hlYWRlckVkaXRUYXNrJywKICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICApOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0hlYWRlckFkZFRhc2snLAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CiAgICB9CgogICAgIyBzaG93IHNlcnZlciBlcnJvciBtZXNzYWdlIChpZiBhbnkpIGZvciB0aGUgdGFzayBuYW1lCiAgICBpZiAoICRQYXJhbXtUYXNrRXJyb3JUeXBlfSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAkUGFyYW17VGFza0Vycm9yVHlwZX0sCiAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gMTsKfQoKc3ViIF9Vc2VyU2V0dGluZ3NFZGl0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CiAgICBteSAlR2V0UGFyYW0gPSAoKTsKCiAgICAjIGdldCBwYXJhbSBvYmplY3QKICAgIG15ICRQYXJhbU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKCiAgICAjIGdldCBwYXJhbWV0ZXJzCiAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoRGVzY3JpcHRpb24gU2hvd092ZXJ0aW1lIENyZWF0ZVByb2plY3QgQWxsb3dTa2lwIENhbGVuZGFyKSkgewogICAgICAgICRHZXRQYXJhbXskUGFyYW1ldGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgKTsKICAgIH0KCiAgICAjIGdldCBsYXlvdXQgb2JqZWN0CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ1NldHRpbmcnLAogICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnQWN0aW9uTGlzdFNldHRpbmcnLAogICAgICAgIERhdGEgPT4ge30sCiAgICApOwogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnQWN0aW9uT3ZlcnZpZXdTZXR0aW5nJywKICAgICAgICBEYXRhID0+IHt9LAogICAgKTsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ1JlZmVyZW5jZScsCiAgICAgICAgRGF0YSA9PiB7fSwKICAgICk7CgogICAgIyBkZWZpbmUgc3RhdHVzIGxpc3QKICAgIG15ICVTdGF0dXNMaXN0ID0gKAogICAgICAgIDEgPT4gVHJhbnNsYXRhYmxlKCd2YWxpZCcpLAogICAgICAgIDAgPT4gVHJhbnNsYXRhYmxlKCdpbnZhbGlkJyksCiAgICApOwoKICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICMgZmlsbCB1cCB0aGUgY2FsZW5kYXIgbGlzdAogICAgbXkgJENhbGVuZGFyTGlzdFJlZiA9IHsgMCA9PiAnRGVmYXVsdCcgfTsKICAgIG15ICRDYWxlbmRhckluZGV4ICAgPSAxOwogICAgd2hpbGUgKCAkQ29uZmlnT2JqZWN0LT5HZXQoICJUaW1lWm9uZTo6Q2FsZW5kYXIiIC4gJENhbGVuZGFySW5kZXggLiAiTmFtZSIgKSApIHsKICAgICAgICAkQ2FsZW5kYXJMaXN0UmVmLT57JENhbGVuZGFySW5kZXh9ID0gJENvbmZpZ09iamVjdC0+R2V0KCAiVGltZVpvbmU6OkNhbGVuZGFyIiAuICRDYWxlbmRhckluZGV4IC4gIk5hbWUiICk7CiAgICAgICAgJENhbGVuZGFySW5kZXgrKzsKICAgIH0KCiAgICAjIGdldCB0aW1lIGFjY291bnRpbmcgb2JqZWN0CiAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAjIGdldCB1c2VyIGRhdGEKICAgIG15ICVVc2VyRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckdldCgKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICRQYXJhbXtDYWxlbmRhck9wdGlvbn0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgICA9PiAkQ2FsZW5kYXJMaXN0UmVmLAogICAgICAgIE5hbWUgICAgICAgID0+ICdDYWxlbmRhcicsCiAgICAgICAgVHJhbnNsYXRpb24gPT4gMSwKICAgICAgICBTZWxlY3RlZElEICA9PiAkR2V0UGFyYW17Q2FsZW5kYXJ9IHx8ICRVc2VyRGF0YXtDYWxlbmRhcn0gfHwgMCwKICAgICAgICBDbGFzcyAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgJFBhcmFte0Rlc2NyaXB0aW9ufSA9ICRHZXRQYXJhbXtEZXNjcmlwdGlvbn0gfHwgJFVzZXJEYXRhe0Rlc2NyaXB0aW9ufSB8fCAnJzsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdPdmVydmlld1VwZGF0ZVVzZXInLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIFNob3dPdmVydGltZSA9PiAoICRHZXRQYXJhbXtTaG93T3ZlcnRpbWV9IHx8ICRVc2VyRGF0YXtTaG93T3ZlcnRpbWV9ICkKICAgICAgICAgICAgPyAnY2hlY2tlZD0iY2hlY2tlZCInCiAgICAgICAgICAgIDogJycsCiAgICAgICAgICAgIENyZWF0ZVByb2plY3QgPT4gKCAkR2V0UGFyYW17Q3JlYXRlUHJvamVjdH0gfHwgJFVzZXJEYXRhe0NyZWF0ZVByb2plY3R9ICkKICAgICAgICAgICAgPyAnY2hlY2tlZD0iY2hlY2tlZCInCiAgICAgICAgICAgIDogJycsCiAgICAgICAgICAgIEFsbG93U2tpcCA9PiAoICRHZXRQYXJhbXtBbGxvd1NraXB9IHx8ICRVc2VyRGF0YXtBbGxvd1NraXB9ICkKICAgICAgICAgICAgPyAnY2hlY2tlZD0iY2hlY2tlZCInCiAgICAgICAgICAgIDogJycsCiAgICAgICAgfQogICAgKTsKCiAgICAjIGlmIHRoZXJlIGFyZSBlcnJvcnMgdG8gc2hvdwogICAgaWYgKCAkUGFyYW17RXJyb3JzfSAmJiAleyAkUGFyYW17RXJyb3JzfSB9ICkgewoKICAgICAgICAjIHNob3cgYWxsIGV4aXN0aW5nIHBlcmlvZHMKICAgICAgICBmb3IgKCBteSAkUGVyaW9kID0gMTsgJFBlcmlvZCA8PSAkUGFyYW17UGVyaW9kc307ICRQZXJpb2QrKyApIHsKCiAgICAgICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhEYXRlU3RhcnQgRGF0ZUVuZCBMZWF2ZURheXMgV2Vla2x5SG91cnMgT3ZlcnRpbWUgUGVyaW9kU3RhdHVzICkpIHsKICAgICAgICAgICAgICAgICRHZXRQYXJhbXskUGFyYW1ldGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICIkUGFyYW1ldGVyXFskUGVyaW9kXF0iICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRQYXJhbXskUGVyaW9kfXtQZXJpb2RTdGF0dXNPcHRpb259ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgICAgICAgICBEYXRhICAgICAgID0+IFwlU3RhdHVzTGlzdCwKICAgICAgICAgICAgICAgIFNlbGVjdGVkSUQgPT4gJEdldFBhcmFte1BlcmlvZFN0YXR1c30gfHwgJFBhcmFteyRQZXJpb2R9e1BlcmlvZFN0YXR1c30sCiAgICAgICAgICAgICAgICBOYW1lICAgICAgID0+ICJQZXJpb2RTdGF0dXNbJFBlcmlvZF0iLAogICAgICAgICAgICAgICAgSUQgICAgICAgICA9PiAiUGVyaW9kU3RhdHVzLSRQZXJpb2QiLAogICAgICAgICAgICAgICAgVGl0bGUgICAgICA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoIlBlcmlvZCBTdGF0dXMiKSwKICAgICAgICAgICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1BlcmlvZE92ZXJ2aWV3Um93JywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgIFBlcmlvZCAgICAgICAgICAgPT4gJFBlcmlvZCwKICAgICAgICAgICAgICAgICAgICBEYXRlU3RhcnRJbnZhbGlkID0+ICRQYXJhbXtFcnJvcnN9LT57ICdEYXRlU3RhcnQtJyAuICRQZXJpb2QgLiAnSW52YWxpZCcgfQogICAgICAgICAgICAgICAgICAgICAgICB8fCAnJywKICAgICAgICAgICAgICAgICAgICBEYXRlRW5kSW52YWxpZCAgID0+ICRQYXJhbXtFcnJvcnN9LT57ICdEYXRlRW5kLScgLiAkUGVyaW9kIC4gJ0ludmFsaWQnIH0gfHwgJycsCiAgICAgICAgICAgICAgICAgICAgTGVhdmVEYXlzSW52YWxpZCA9PiAkUGFyYW17RXJyb3JzfS0+eyAnTGVhdmVEYXlzLScgLiAkUGVyaW9kIC4gJ0ludmFsaWQnIH0KICAgICAgICAgICAgICAgICAgICAgICAgfHwgJycsCiAgICAgICAgICAgICAgICAgICAgRGF0ZVN0YXJ0ICAgICAgICAgID0+ICRHZXRQYXJhbXtEYXRlU3RhcnR9LAogICAgICAgICAgICAgICAgICAgIERhdGVFbmQgICAgICAgICAgICA9PiAkR2V0UGFyYW17RGF0ZUVuZH0sCiAgICAgICAgICAgICAgICAgICAgTGVhdmVEYXlzICAgICAgICAgID0+ICRHZXRQYXJhbXtMZWF2ZURheXN9LAogICAgICAgICAgICAgICAgICAgIFdlZWtseUhvdXJzICAgICAgICA9PiAkR2V0UGFyYW17V2Vla2x5SG91cnN9LAogICAgICAgICAgICAgICAgICAgIE92ZXJ0aW1lICAgICAgICAgICA9PiAkR2V0UGFyYW17T3ZlcnRpbWV9LAogICAgICAgICAgICAgICAgICAgIFBlcmlvZFN0YXR1c09wdGlvbiA9PiAkUGFyYW17JFBlcmlvZH17UGVyaW9kU3RhdHVzT3B0aW9ufSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0RhdGVTdGFydCcKICAgICAgICAgICAgICAgICAgICAuICgKICAgICAgICAgICAgICAgICAgICAkUGFyYW17RXJyb3JzfS0+eyAnRGF0ZVN0YXJ0LScgLiAkUGVyaW9kIC4gJ0Vycm9yVHlwZScgfQogICAgICAgICAgICAgICAgICAgICAgICB8fCAnTWlzc2luZ1ZhbHVlJwogICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBEYXRhID0+IHsgUGVyaW9kID0+ICRQZXJpb2QgfSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdEYXRlRW5kJwogICAgICAgICAgICAgICAgICAgIC4gKCAkUGFyYW17RXJyb3JzfS0+eyAnRGF0ZUVuZC0nIC4gJFBlcmlvZCAuICdFcnJvclR5cGUnIH0gfHwgJ01pc3NpbmdWYWx1ZScgKSwKICAgICAgICAgICAgICAgIERhdGEgPT4geyBQZXJpb2QgPT4gJFBlcmlvZCB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KICAgIGVsc2UgewogICAgICAgIG15ICVVc2VyID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5TaW5nbGVVc2VyU2V0dGluZ3NHZXQoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIHNob3cgdXNlciBkYXRhCiAgICAgICAgaWYgKCVVc2VyKSB7CiAgICAgICAgICAgIG15ICRMYXN0UGVyaW9kTnVtYmVyID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyTGFzdFBlcmlvZE51bWJlckdldCgKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfQogICAgICAgICAgICApOwoKICAgICAgICAgICAgZm9yICggbXkgJFBlcmlvZCA9IDE7ICRQZXJpb2QgPD0gJExhc3RQZXJpb2ROdW1iZXI7ICRQZXJpb2QrKyApIHsKICAgICAgICAgICAgICAgIG15ICVQZXJpb2RQYXJhbSA9ICgpOwoKICAgICAgICAgICAgICAgICMgZ2V0IGFsbCBuZWVkZWQgZGF0YSB0byBkaXNwbGF5CiAgICAgICAgICAgICAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoRGF0ZVN0YXJ0IERhdGVFbmQgTGVhdmVEYXlzIFdlZWtseUhvdXJzIE92ZXJ0aW1lKSkgewogICAgICAgICAgICAgICAgICAgICRQZXJpb2RQYXJhbXskUGFyYW1ldGVyfSA9ICRVc2VyeyRQZXJpb2R9eyRQYXJhbWV0ZXJ9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJFBlcmlvZFBhcmFte1BlcmlvZH0gPSAkUGVyaW9kOwoKICAgICAgICAgICAgICAgICRQZXJpb2RQYXJhbXtQZXJpb2RTdGF0dXNPcHRpb259ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgICAgICAgICAgICAgRGF0YSAgICAgICA9PiBcJVN0YXR1c0xpc3QsCiAgICAgICAgICAgICAgICAgICAgU2VsZWN0ZWRJRCA9PiAkVXNlcnskUGVyaW9kfXtVc2VyU3RhdHVzfSwKICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgID0+ICJQZXJpb2RTdGF0dXNbJFBlcmlvZF0iLAogICAgICAgICAgICAgICAgICAgIElEICAgICAgICAgPT4gIlBlcmlvZFN0YXR1cy0kUGVyaW9kIiwKICAgICAgICAgICAgICAgICAgICBUaXRsZSAgICAgID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgiUGVyaW9kIFN0YXR1cyIpLAogICAgICAgICAgICAgICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1BlcmlvZE92ZXJ2aWV3Um93JywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IFwlUGVyaW9kUGFyYW0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHNob3cgYSBubyBkYXRhIGZvdW5kIG1lc3NhZ2UKICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdQZXJpb2RPdmVydmlld1Jvd05vRGF0YScsCiAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gMTsKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWdlbnRUaW1lQWNjb3VudGluZ1ZpZXc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIG15ICREYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpOwoKICAgICRTZWxmLT57VGltZVpvbmV9ID0gJFBhcmFte1RpbWVab25lfQogICAgICAgIHx8ICRQYXJhbXtVc2VyVGltZVpvbmV9CiAgICAgICAgfHwgJERhdGVUaW1lT2JqZWN0LT5PVFJTVGltZVpvbmVHZXQoKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSBATW9udGhBcnJheSA9ICgKICAgICAgICAnJywgICAgICdKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgICAgICdBcHJpbCcsICAgJ01heScsCiAgICAgICAgJ0p1bmUnLCAnSnVseScsICAgICdBdWd1c3QnLCAgICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsCiAgICAgICAgJ0RlY2VtYmVyJywKICAgICk7CiAgICBteSBAV2Vla2RheUFycmF5ID0gKCAnTW9uJywgJ1R1ZScsICdXZWQnLCAnVGh1JywgJ0ZyaScsICdTYXQnLCAnU3VuJywgKTsKCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyB2aWV3IG9sZGVyIGRheSBpbnNlcnRzCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKICAgICMgZ2V0IGxheW91dCBvYmplY3QKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBwZXJtaXNzaW9uIGNoZWNrCiAgICBpZiAoICEkU2VsZi0+e0FjY2Vzc1JvfSApIHsKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+Tm9QZXJtaXNzaW9uKAogICAgICAgICAgICBXaXRoSGVhZGVyID0+ICd5ZXMnLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgcGFyYW1zCiAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoRGF5IE1vbnRoIFllYXIgVXNlcklEKSkgewogICAgICAgICRQYXJhbXskUGFyYW1ldGVyfSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKS0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgKTsKICAgIH0KCiAgICAjIGNoZWNrIG5lZWRlZCBwYXJhbXMKICAgIGZvciBteSAkTmVlZGVkIChxdyhEYXkgTW9udGggWWVhcikpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CgogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJ1ZpZXc6IE5lZWQgJXMhJywgJE5lZWRlZCApLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIGZvcm1hdCB0aGUgZGF0ZSBwYXJ0cwogICAgJFBhcmFte1llYXJ9ICA9IHNwcmludGYoICIlMDJkIiwgJFBhcmFte1llYXJ9ICk7CiAgICAkUGFyYW17TW9udGh9ID0gc3ByaW50ZiggIiUwMmQiLCAkUGFyYW17TW9udGh9ICk7CiAgICAkUGFyYW17RGF5fSAgID0gc3ByaW50ZiggIiUwMmQiLCAkUGFyYW17RGF5fSApOwoKICAgICMgaWYgbm8gVXNlcklEIHBvc3RlZCB1c2UgdGhlIGN1cnJlbnQgdXNlcgogICAgJFBhcmFte1VzZXJJRH0gfHw9ICRTZWxmLT57VXNlcklEfTsKCiAgICAjIGdldCB0aW1lIGFuZCB0aW1lYWNjb3VudGluZyBvYmplY3QKICAgIG15ICREYXRlVGltZU9iamVjdEN1cnJlbnQgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKCdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnKTsKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAjIGdldCBjdXJyZW50IGRhdGUgYW5kIHRpbWUKICAgIG15ICggJFNlYywgJE1pbiwgJEhvdXIsICREYXksICRNb250aCwgJFllYXIgKSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgIFN5c3RlbVRpbWUgPT4gJERhdGVUaW1lT2JqZWN0Q3VycmVudC0+VG9FcG9jaCgpLAogICAgKTsKCiAgICBteSAkTWF4QWxsb3dlZEluc2VydERheXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpNYXhBbGxvd2VkSW5zZXJ0RGF5cycpIHx8ICcxMCc7CiAgICAoICRQYXJhbXtZZWFyQWxsb3dlZH0sICRQYXJhbXtNb250aEFsbG93ZWR9LCAkUGFyYW17RGF5QWxsb3dlZH0gKQogICAgICAgID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BZGREZWx0YVlNRCggJFllYXIsICRNb250aCwgJERheSwgMCwgMCwgLSRNYXhBbGxvd2VkSW5zZXJ0RGF5cyApOwoKICAgIG15ICREYXRlVGltZU9iamVjdEdpdmVuID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICBZZWFyICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgICAgIE1vbnRoID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgICAgIERheSAgID0+ICRQYXJhbXtEYXl9LAogICAgICAgIH0KICAgICk7CgogICAgbXkgJERhdGVUaW1lT2JqZWN0QWxsb3dlZCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgWWVhciAgPT4gJFBhcmFte1llYXJBbGxvd2VkfSwKICAgICAgICAgICAgTW9udGggPT4gJFBhcmFte01vbnRoQWxsb3dlZH0sCiAgICAgICAgICAgIERheSAgID0+ICRQYXJhbXtEYXlBbGxvd2VkfSwKICAgICAgICB9CiAgICApOwoKICAgIGlmICgKICAgICAgICAkRGF0ZVRpbWVPYmplY3RHaXZlbi0+Q29tcGFyZSggRGF0ZVRpbWVPYmplY3QgPT4gJERhdGVUaW1lT2JqZWN0QWxsb3dlZCApCiAgICAgICAgPiAwCiAgICAgICAgJiYgJFBhcmFte1VzZXJJRH0gPT0gJFNlbGYtPntVc2VySUR9CiAgICAgICAgKQogICAgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgT1AgPT4KICAgICAgICAgICAgICAgICJBY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ0VkaXQ7WWVhcj0kUGFyYW17WWVhcn07TW9udGg9JFBhcmFte01vbnRofTtEYXk9JFBhcmFte0RheX0iLAogICAgICAgICk7CiAgICB9CgogICAgIyBzaG93IHRoZSBuYW1pbmcgb2YgdGhlIGFnZW50IHdoaWNoIHRpbWUgYWNjb3VudGluZyBpcyB2aXNpdGVkCiAgICBpZiAoICRQYXJhbXtVc2VySUR9ICE9ICRTZWxmLT57VXNlcklEfSApIHsKICAgICAgICBteSAlU2hvd25Vc2VycyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPlVzZXJMaXN0KAogICAgICAgICAgICBUeXBlICA9PiAnTG9uZycsCiAgICAgICAgICAgIFZhbGlkID0+IDEKICAgICAgICApOwogICAgICAgICRQYXJhbXtVc2VyfSA9ICRTaG93blVzZXJzeyAkUGFyYW17VXNlcklEfSB9OwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdVc2VyJywKICAgICAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICAgICApOwogICAgfQoKICAgICRQYXJhbXtXZWVrZGF5fSAgICAgICAgID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5EYXlPZldlZWsoICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgJFBhcmFte0RheX0gKTsKICAgICRQYXJhbXtXZWVrZGF5X3RvX1RleHR9ID0gJFdlZWtkYXlBcnJheVsgJFBhcmFte1dlZWtkYXl9IC0gMSBdOwogICAgJFBhcmFte01vbnRoX3RvX1RleHR9ICAgPSAkTW9udGhBcnJheVsgJFBhcmFte01vbnRofSBdOwoKICAgICMgVmFsdWVzIGZvciB0aGUgbGluayBpY29ucyA8PgogICAgKCAkUGFyYW17WWVhckJhY2t9LCAkUGFyYW17TW9udGhCYWNrfSwgJFBhcmFte0RheUJhY2t9ICkKICAgICAgICA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWRkRGVsdGFZTUQoICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgJFBhcmFte0RheX0sIDAsIDAsIC0xICk7CiAgICAoICRQYXJhbXtZZWFyTmV4dH0sICRQYXJhbXtNb250aE5leHR9LCAkUGFyYW17RGF5TmV4dH0gKQogICAgICAgID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BZGREZWx0YVlNRCggJFBhcmFte1llYXJ9LCAkUGFyYW17TW9udGh9LCAkUGFyYW17RGF5fSwgMCwgMCwgMSApOwoKICAgICRQYXJhbXtEYXRlU2VsZWN0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkRGF0ZVNlbGVjdGlvbigKICAgICAgICAlUGFyYW0sCiAgICAgICAgUHJlZml4ICAgPT4gJycsCiAgICAgICAgRm9ybWF0ICAgPT4gJ0RhdGVJbnB1dEZvcm1hdCcsCiAgICAgICAgVmFsaWRhdGUgPT4gMSwKICAgICAgICBDbGFzcyAgICA9PiAkUGFyYW17RXJyb3JzfS0+e0RhdGVJbnZhbGlkfSwKICAgICk7CgogICAgIyBTaG93IFdvcmtpbmcgVW5pdHMKICAgICMgZ2V0IGV4aXN0aW5nIHdvcmtpbmcgdW5pdHMKICAgIG15ICVEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNHZXQoCiAgICAgICAgWWVhciAgID0+ICRQYXJhbXtZZWFyfSwKICAgICAgICBNb250aCAgPT4gJFBhcmFte01vbnRofSwKICAgICAgICBEYXkgICAgPT4gJFBhcmFte0RheX0sCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICAkUGFyYW17RGF0ZX0gPSAkRGF0YXtEYXRlfTsKCiAgICAjIGdldCBwcm9qZWN0IGFuZCBhY3Rpb24gc2V0dGluZ3MKICAgIG15ICVQcm9qZWN0ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NHZXQoKTsKICAgIG15ICVBY3Rpb24gID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0dldCgpOwoKICAgICMgZ2V0IHNpY2ssIGxlYXZlIGRheSBhbmQgb3ZlcnRpbWUKICAgICRQYXJhbXtTaWNrfSAgICAgPSAkRGF0YXtTaWNrfSAgICAgPyAnY2hlY2tlZCcgOiAnJzsKICAgICRQYXJhbXtMZWF2ZURheX0gPSAkRGF0YXtMZWF2ZURheX0gPyAnY2hlY2tlZCcgOiAnJzsKICAgICRQYXJhbXtPdmVydGltZX0gPSAkRGF0YXtPdmVydGltZX0gPyAnY2hlY2tlZCcgOiAnJzsKCiAgICAjIG9ubHkgc2hvdyB0aGUgdW5pdCBibG9jayBpZiB0aGVyZSBpcyBzb21lIGRhdGEKICAgIG15ICRVbml0c1JlZiA9ICREYXRhe1dvcmtpbmdVbml0c307CiAgICBpZiAoICRVbml0c1JlZi0+WzBdICkgewoKICAgICAgICBmb3IgbXkgJFVuaXRSZWYgKCBAeyRVbml0c1JlZn0gKSB7CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1VuaXQnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgUHJvamVjdCAgID0+ICRQcm9qZWN0e1Byb2plY3R9eyAkVW5pdFJlZi0+e1Byb2plY3RJRH0gfSwKICAgICAgICAgICAgICAgICAgICBBY3Rpb24gICAgPT4gJEFjdGlvbnsgJFVuaXRSZWYtPntBY3Rpb25JRH0gfXtBY3Rpb259LAogICAgICAgICAgICAgICAgICAgIFJlbWFyayAgICA9PiAkVW5pdFJlZi0+e1JlbWFya30sCiAgICAgICAgICAgICAgICAgICAgU3RhcnRUaW1lID0+ICRVbml0UmVmLT57U3RhcnRUaW1lfSwKICAgICAgICAgICAgICAgICAgICBFbmRUaW1lICAgPT4gJFVuaXRSZWYtPntFbmRUaW1lfSwKICAgICAgICAgICAgICAgICAgICBQZXJpb2QgICAgPT4gJFVuaXRSZWYtPntQZXJpb2R9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdUb3RhbCcsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgVG90YWwgPT4gc3ByaW50ZiggIiUuMmYiLCAkRGF0YXtUb3RhbH0gKSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ05vRGF0YUZvdW5kJywKICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICApOwogICAgfQoKICAgIGlmICggJFBhcmFte1NpY2t9IHx8ICRQYXJhbXtMZWF2ZURheX0gfHwgJFBhcmFte092ZXJ0aW1lfSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnT3RoZXJUaW1lcycsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgU2ljayAgICAgPT4gJFBhcmFte1NpY2t9LAogICAgICAgICAgICAgICAgTGVhdmVEYXkgPT4gJFBhcmFte0xlYXZlRGF5fSwKICAgICAgICAgICAgICAgIE92ZXJ0aW1lID0+ICRQYXJhbXtPdmVydGltZX0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICBteSAlVXNlckRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJHZXQoCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICBteSAkVmFjYXRpb24gPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlZhY2F0aW9uQ2hlY2soCiAgICAgICAgWWVhciAgICAgPT4gJFBhcmFte1llYXJ9LAogICAgICAgIE1vbnRoICAgID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgRGF5ICAgICAgPT4gJFBhcmFte0RheX0sCiAgICAgICAgQ2FsZW5kYXIgPT4gJFVzZXJEYXRhe0NhbGVuZGFyfSwKICAgICk7CgogICAgaWYgKCRWYWNhdGlvbikgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdWYWNhdGlvbicsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgVmFjYXRpb24gPT4gJFZhY2F0aW9uLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgIyBwcmVzZW50YXRpb24KICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoCiAgICAgICAgVGl0bGUgPT4gJ1ZpZXcnLAogICAgKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFRpbWVBY2NvdW50aW5nVmlldycKICAgICk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgIHJldHVybiAkT3V0cHV0Owp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgo8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSBXMzAwcHgiPgogICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiWWVhciIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgPHAgY2xhc3M9IlZhbHVlIj4KICAgICAgICBbJSBEYXRhLlllYXIgfCBodG1sICVdCiAgICA8L3A+CiAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiTW9udGgiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgIDxwIGNsYXNzPSJWYWx1ZSI+CiAgICAgICAgWyUgVHJhbnNsYXRlKERhdGEuTW9udGgpIHwgaHRtbCAlXQogICAgPC9wPgogICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIkRheSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgPHAgY2xhc3M9IlZhbHVlIj4KICAgICAgICBbJSBEYXRhLkRheSB8IGh0bWwgJV0KICAgIDwvcD4KICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KPC9maWVsZHNldD4KPHAgY2xhc3M9IlNwYWNpbmdUb3AgQ2VudGVyIj4KICAgIFslIFRyYW5zbGF0ZSgiRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGUgVGltZSBBY2NvdW50aW5nIG9mIHRoaXMgZGF5PyIpIHwgaHRtbCAlXQo8L3A+Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgo8ZGl2IGNsYXNzPSJNYWluQm94IEFSSUFSb2xlTWFpbiBMYXlvdXRGaXhlZFNpZGViYXIgU2lkZWJhckZpcnN0Ij4KICAgIDxoMSBjbGFzcz0iSGVhZGVyIj5bJSBUcmFuc2xhdGUoIkVkaXQgVGltZSBSZWNvcmQiKSB8IGh0bWwgJV08L2gxPgoKICAgIDxkaXYgY2xhc3M9IlNpZGViYXJDb2x1bW4iPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1Byb2plY3QiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJBY3Rpb25zIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJBY3Rpb25MaXN0Ij4KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXc7WWVhcj1bJSBEYXRhLlllYXIgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aCB8IHVyaSAlXSIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtbGVmdCI+PC9pPlslIFRyYW5zbGF0ZSgiR28gdG8gb3ZlcnZpZXciKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrU3RhcnQoIkNyZWF0ZVByb2plY3QiKSAlXQogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nIiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1nZWFyIj48L2k+WyUgVHJhbnNsYXRlKCJHbyB0byBzZXR0aW5ncyIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkNyZWF0ZVByb2plY3QiKSAlXQogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1Byb2plY3QiKSAlXQoKICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiRGF0ZSBOYXZpZ2F0aW9uIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIGNsYXNzPSJWYWxpZGF0ZSIgbmFtZT0iRGF0ZVNlbGVjdGlvbiIgaWQ9IkRhdGVTZWxlY3Rpb25Gb3JtIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IkVkaXQiIC8+CiAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5EYXRlICVdCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgaWQ9Ik5hdmlnYXRpb25TZWxlY3QiIGNsYXNzPSJDYWxsRm9yQWN0aW9uIElubGluZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxpIGNsYXNzPSJmYSBmYS1hcnJvdy1jaXJjbGUtby1yaWdodCI+PC9pPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiSW5jb21wbGV0ZVdvcmtpbmdEYXlzIikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiRGF5cyB3aXRob3V0IGVudHJpZXMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICBbJSBEYXRhLkluY29tcGxldGVXb3JraW5nRGF5c1NlbGVjdCAlXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkluY29tcGxldGVXb3JraW5nRGF5cyIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbmNvbXBsZXRlV29ya2luZ0RheXNNYXNzRW50cnkiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJEYXlzIHdpdGhvdXQgZW50cmllcyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KCiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSBJbmNvbXBsZXRlV29ya2luZ0RheXMiPgogICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGlkPSJTZWxlY3RBbGxEYXlzIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJJbmNvbXBsZXRlV29ya2luZ0RheS1BbGwiIG5hbWU9IkluY29tcGxldGVXb3JraW5nRGF5LUFsbCIgLz48L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiRGF0ZSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+PC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgICAgICBbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbmNvbXBsZXRlV29ya2luZ0RheXNNYXNzRW50cnlTaW5nbGVEYXkiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlcxMHBjIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJJbmNvbXBsZXRlV29ya2luZ0RheS1bJSBEYXRhLkRhdGUgfCBodG1sICVdIiBuYW1lPSJJbmNvbXBsZXRlV29ya2luZ0RheS1bJSBEYXRhLkRhdGUgfCBodG1sICVdIiAvPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PGxhYmVsIGZvcj0iSW5jb21wbGV0ZVdvcmtpbmdEYXktWyUgRGF0YS5EYXRlIHwgaHRtbCAlXSI+WyUgRGF0YS5EYXRlSFIgfCBMb2NhbGl6ZSgiRGF0ZSIpICVdIC0gWyUgVHJhbnNsYXRlKERhdGEuV2Vla2RheSkgfCBodG1sICVdPC9sYWJlbD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJXMTBwYyI+PGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WWVhcj1bJSBEYXRhLlllYXIgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aCB8IHVyaSAlXTtEYXk9WyUgRGF0YS5EYXkgfCB1cmkgJV0iPjxpIGNsYXNzPSJmYSBmYS1lZGl0Ij48L2k+PC9hPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgWyUgUmVuZGVyQmxvY2tFbmQoIkluY29tcGxldGVXb3JraW5nRGF5c01hc3NFbnRyeVNpbmdsZURheSIpICVdCiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgIDwvdGFibGU+CgogICAgICAgICAgICAgICAgPCEtLSA8dWwgY2xhc3M9IkluY29tcGxldGVXb3JraW5nRGF5cyI+CiAgICAgICAgICAgICAgICAgICAgPGxpIGlkPSJTZWxlY3RBbGxEYXlzIj48bGFiZWwgZm9yPSJJbmNvbXBsZXRlV29ya2luZ0RheS1BbGwiPjxlbT5bJSBUcmFuc2xhdGUoIlNlbGVjdCBhbGwgZGF5cyIpIHwgaHRtbCAlXTwvZW0+PC9sYWJlbD48L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT4gLSA8L2xpPgogICAgICAgICAgICAgICAgPC91bD4gLS0+CiAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgaWQ9Ik1hc3NFbnRyeSIgbmFtZT0iTWFzc0VudHJ5IiBjbGFzcz0iU3BhY2luZ1RvcFNtYWxsIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9Ik1hc3NFbnRyeSIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJEYXRlcyIgdmFsdWU9IiIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJMZWF2ZURheSIgdmFsdWU9IiIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTaWNrIiB2YWx1ZT0iIiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ik92ZXJ0aW1lIiB2YWx1ZT0iIiAvPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJNYXNzRW50cnlTdWJtaXQiIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLXBsdXMtc3F1YXJlLW8iPiA8L2k+WyUgVHJhbnNsYXRlKCJNYXNzIGVudHJ5IikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ik1hc3NFbnRyeUNvbmZpcm1EaWFsb2ciIGNsYXNzPSJIaWRkZW4iPgogICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlBsZWFzZSBjaG9vc2UgdGhlIHJlYXNvbiBmb3IgeW91ciBhYnNlbmNlIGZvciB0aGUgc2VsZWN0ZWQgZGF5cyIpIHwgaHRtbCAlXS48L2gyPgogICAgICAgICAgICAgICAgICAgIDx1bCBpZD0iTWFzc0VudHJ5Q29uZmlybVJhZGlvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxpbnB1dCB0eXBlPSJyYWRpbyIgZGF0YS1hYnNlbmNlPSJMZWF2ZURheSIgbmFtZT0iQWJzZW5jZVtdIiBpZD0iQ29uZmlybUxlYXZlRGF5IiAvPjxsYWJlbCBmb3I9IkNvbmZpcm1MZWF2ZURheSI+WyUgVHJhbnNsYXRlKCJPbiB2YWNhdGlvbiIpIHwgaHRtbCAlXTwvbGFiZWw+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxpbnB1dCB0eXBlPSJyYWRpbyIgZGF0YS1hYnNlbmNlPSJTaWNrIiBuYW1lPSJBYnNlbmNlW10iIGlkPSJDb25maXJtU2ljayIgLz48bGFiZWwgZm9yPSJDb25maXJtU2ljayI+WyUgVHJhbnNsYXRlKCJPbiBzaWNrIGxlYXZlIikgfCBodG1sICVdPC9sYWJlbD48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGlucHV0IHR5cGU9InJhZGlvIiBkYXRhLWFic2VuY2U9Ik92ZXJ0aW1lIiBuYW1lPSJBYnNlbmNlW10iIGlkPSJDb25maXJtT3ZlcnRpbWUiIC8+PGxhYmVsIGZvcj0iQ29uZmlybU92ZXJ0aW1lIj5bJSBUcmFuc2xhdGUoIk9uIG92ZXJ0aW1lIGxlYXZlIikgfCBodG1sICVdPC9sYWJlbD48L2xpPgogICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJJbmNvbXBsZXRlV29ya2luZ0RheXNNYXNzRW50cnkiKSAlXQoKICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUgU3BhY2luZ1RvcCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJSZWZlcmVuY2UiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGEgXCIqXCIuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iQ29udGVudENvbHVtbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkRhdGUiKSB8IGh0bWwgJV06IFslIFRyYW5zbGF0ZShEYXRhLldlZWtkYXlfdG9fVGV4dCkgfCBodG1sICVdIFslIERhdGEuWWVhciB8IGh0bWwgJV0tWyUgRGF0YS5Nb250aCB8IGh0bWwgJV0tWyUgRGF0YS5EYXkgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQgSG9yaXpvbnRhbFNjcm9sbCI+CiAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbmFtZT0iV29ya2luZ1VuaXRzIiBpZD0iV29ya2luZ1VuaXRzIiBjbGFzcz0iVmFsaWRhdGUgUHJldmVudE11bHRpcGxlU3VibWl0cyI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iWyUgRW52KCJBY3Rpb24iKSAlXSIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJFZGl0IiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlJlY29yZHNOdW1iZXIiIGlkPSJSZWNvcmRzTnVtYmVyIiB2YWx1ZT0iWyUgRGF0YS5SZWNvcmRzTnVtYmVyIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdGF0dXMiIHZhbHVlPSJBY3Rpb24iIC8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iWWVhciIgdmFsdWU9IlslIERhdGEuWWVhciB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iTW9udGgiIHZhbHVlPSJbJSBEYXRhLk1vbnRoIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJEYXkiIHZhbHVlPSJbJSBEYXRhLkRheSB8IGh0bWwgJV0iIC8+ClslIFJlbmRlckJsb2NrU3RhcnQoIlVuaXRCbG9jayIpICVdCiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUgTm9Ib3ZlciBIaWdoQ2VsbHMiIGlkPSJJbnNlcnRXb3JraW5nSG91cnMiPgogICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiUHJvamVjdCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiVGFzayIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiUmVtYXJrIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJTdGFydCIpIHwgaHRtbCAlXSAoSEg6TU0pPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJFbmQiKSB8IGh0bWwgJV0gKEhIOk1NKTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPjxzcGFuIGNsYXNzPSJNYXJrZXIiPlslIERhdGEuUGVyaW9kTm90ZSB8IGh0bWwgJV08L3NwYW4+IFslIFRyYW5zbGF0ZSgiUGVyaW9kIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiVW5pdCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9IldvcmtpbmdIb3VycyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlByb2plY3RPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUHJvamVjdElEWyUgRGF0YS5JRCB8IGh0bWwgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlByb2plY3RJRFslIERhdGEuSUQgfCBodG1sICVdU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJDb21ib19Qcm9qZWN0SURbJSBEYXRhLklEIHwgaHRtbCAlXUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iQ29tYm9fUHJvamVjdElEWyUgRGF0YS5JRCB8IGh0bWwgJV1TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuQWN0aW9uT3B0aW9uICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkFjdGlvbklEWyUgRGF0YS5JRCB8IGh0bWwgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkFjdGlvbklEWyUgRGF0YS5JRCB8IGh0bWwgJV1TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkNvbWJvX0FjdGlvbklEWyUgRGF0YS5JRCB8IGh0bWwgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkNvbWJvX0FjdGlvbklEWyUgRGF0YS5JRCB8IGh0bWwgJV1TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJSZW1hcmtbWyUgRGF0YS5JRCB8IGh0bWwgJV1dIiBpZD0iUmVtYXJrWyUgRGF0YS5JRCB8IGh0bWwgJV0iIGNsYXNzPSJWYWxpZGF0ZV9UaW1lQWNjb3VudGluZ19SZW1hcmsgWyUgRGF0YS5SZW1hcmtJbnZhbGlkIHwgaHRtbCAlXSIgdmFsdWU9IlslIERhdGEuUmVtYXJrIHwgaHRtbCAlXSIgc2l6ZT0iMzUiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlJlbWFyayIpIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUmVtYXJrWyUgRGF0YS5JRCB8IGh0bWwgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiUGxlYXNlIGFkZCBhIHJlbWFyayB3aXRoIG1vcmUgdGhhbiA4IGNoYXJhY3RlcnMhIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJSZW1hcmtbJSBEYXRhLklEIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IlN0YXJ0VGltZVtbJSBEYXRhLklEIHwgaHRtbCAlXV0iIGlkPSJTdGFydFRpbWVbJSBEYXRhLklEIHwgaHRtbCAlXSIgY2xhc3M9IlN0YXJ0VGltZSBWYWxpZGF0ZV9UaW1lQWNjb3VudGluZ19TdGFydFRpbWUgWyUgRGF0YS5TdGFydFRpbWVSZXF1aXJlZCB8IGh0bWwgJV0gWyUgRGF0YS5TdGFydFRpbWVJbnZhbGlkIHwgaHRtbCAlXSIgdmFsdWU9IlslIERhdGEuU3RhcnRUaW1lIHwgaHRtbCAlXSIgc2l6ZT0iNyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiU3RhcnQgVGltZSIpIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iU3RhcnRUaW1lWyUgRGF0YS5JRCB8IGh0bWwgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlN0YXJ0VGltZVslIERhdGEuSUQgfCBodG1sICVdU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiU3RhcnRUaW1lR2VuZXJpY1NlcnZlckVycm9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJTdGFydFRpbWVHZW5lcmljU2VydmVyRXJyb3IiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTdGFydFRpbWVOZWdhdGl2ZVNlcnZlckVycm9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiTmVnYXRpdmUgdGltZXMgYXJlIG5vdCBhbGxvd2VkLiIpIHwgaHRtbCAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIlN0YXJ0VGltZU5lZ2F0aXZlU2VydmVyRXJyb3IiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTdGFydFRpbWVSZXBlYXRlZEhvdXJTZXJ2ZXJFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlJlcGVhdGVkIGhvdXJzIGFyZSBub3QgYWxsb3dlZC4gU3RhcnQgdGltZSBtYXRjaGVzIGFub3RoZXIgaW50ZXJ2YWwuIikgfCBodG1sICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiU3RhcnRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3IiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTdGFydFRpbWVJbnZhbGlkRm9ybWF0U2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJJbnZhbGlkIGZvcm1hdCEgUGxlYXNlIGVudGVyIGEgdGltZSB3aXRoIHRoZSBmb3JtYXQgSEg6TU0uIikgfCBodG1sICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiU3RhcnRUaW1lSW52YWxpZEZvcm1hdFNlcnZlckVycm9yIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiU3RhcnRUaW1lMjRIb3VycyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIjI0OjAwIGlzIG9ubHkgcGVybWl0dGVkIGFzIGVuZCB0aW1lLiIpIHwgaHRtbCAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIlN0YXJ0VGltZTI0SG91cnMiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTdGFydFRpbWVJbnZhbGlkIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiSW52YWxpZCB0aW1lISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4iKSB8IGh0bWwgJV08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJTdGFydFRpbWVJbnZhbGlkIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJFbmRUaW1lW1slIERhdGEuSUQgfCBodG1sICVdXSIgaWQ9IkVuZFRpbWVbJSBEYXRhLklEIHwgaHRtbCAlXSIgY2xhc3M9IkVuZFRpbWUgVmFsaWRhdGVfRGVwZW5kaW5nUmVxdWlyZWRBTkQgVmFsaWRhdGVfRGVwZW5kaW5nX1N0YXJ0VGltZVslIERhdGEuSUQgfCBodG1sICVdIFslIERhdGEuRW5kVGltZVJlcXVpcmVkIHwgaHRtbCAlXSBbJSBEYXRhLkVuZFRpbWVJbnZhbGlkIHwgaHRtbCAlXSIgdmFsdWU9IlslIERhdGEuRW5kVGltZSB8IGh0bWwgJV0iIHNpemU9IjciIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkVuZCBUaW1lIikgfCBodG1sICVdIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJFbmRUaW1lWyUgRGF0YS5JRCB8IGh0bWwgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkVuZFRpbWVbJSBEYXRhLklEIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkVuZFRpbWVHZW5lcmljU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIkVuZFRpbWVHZW5lcmljU2VydmVyRXJyb3IiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJFbmRUaW1lQmVmb3JlU3RhcnRUaW1lU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJFbmQgdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0IHRpbWUuIikgfCBodG1sICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiRW5kVGltZUJlZm9yZVN0YXJ0VGltZVNlcnZlckVycm9yIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiRW5kVGltZU5lZ2F0aXZlU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJOZWdhdGl2ZSB0aW1lcyBhcmUgbm90IGFsbG93ZWQuIikgfCBodG1sICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiRW5kVGltZU5lZ2F0aXZlU2VydmVyRXJyb3IiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJFbmRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJSZXBlYXRlZCBob3VycyBhcmUgbm90IGFsbG93ZWQuIEVuZCB0aW1lIG1hdGNoZXMgYW5vdGhlciBpbnRlcnZhbC4iKSB8IGh0bWwgJV08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJFbmRUaW1lUmVwZWF0ZWRIb3VyU2VydmVyRXJyb3IiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJFbmRUaW1lSW52YWxpZEZvcm1hdFNlcnZlckVycm9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiSW52YWxpZCBmb3JtYXQhIFBsZWFzZSBlbnRlciBhIHRpbWUgd2l0aCB0aGUgZm9ybWF0IEhIOk1NLiIpIHwgaHRtbCAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIkVuZFRpbWVJbnZhbGlkRm9ybWF0U2VydmVyRXJyb3IiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJFbmRUaW1lSW52YWxpZCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIkludmFsaWQgdGltZSEgQSBkYXkgaGFzIG9ubHkgMjQgaG91cnMuIikgfCBodG1sICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiRW5kVGltZUludmFsaWQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVbml0SW5wdXRQZXJpb2QiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IlBlcmlvZFtbJSBEYXRhLklEIHwgaHRtbCAlXV0iIGlkPSJQZXJpb2RbJSBEYXRhLklEIHwgaHRtbCAlXSIgY2xhc3M9IlBlcmlvZCBWYWxpZGF0ZV9UaW1lQWNjb3VudGluZ19QZXJpb2QgVmFsaWRhdGVfVGltZVVuaXRzIFslIERhdGEuUGVyaW9kUmVxdWlyZWQgfCBodG1sICVdIFslIERhdGEuUGVyaW9kSW52YWxpZCB8IGh0bWwgJV0iIHZhbHVlPSJbJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV0iIHNpemU9IjciIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlBlcmlvZCIpIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUGVyaW9kWyUgRGF0YS5JRCB8IGh0bWwgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJZb3UgaGF2ZSB0byBmaWxsIGluIHN0YXJ0IGFuZCBlbmQgdGltZSBvciBhIHRpbWUgcGVyaW9kLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlBlcmlvZFslIERhdGEuSUQgfCBodG1sICVdU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiUGVyaW9kR2VuZXJpY1NlcnZlckVycm9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJQZXJpb2RHZW5lcmljU2VydmVyRXJyb3IiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbnZhbGlkSG91cnNQZXJpb2RTZXJ2ZXJFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIkludmFsaWQgcGVyaW9kISBBIGRheSBoYXMgb25seSAyNCBob3Vycy4iKSB8IGh0bWwgJV08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJJbnZhbGlkSG91cnNQZXJpb2RTZXJ2ZXJFcnJvciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlplcm9Ib3Vyc1BlcmlvZFNlcnZlckVycm9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiQSB2YWxpZCBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4iKSB8IGh0bWwgJV08L3A+ClslIFJlbmRlckJsb2NrRW5kKCJaZXJvSG91cnNQZXJpb2RTZXJ2ZXJFcnJvciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIk5lZ2F0aXZlUGVyaW9kU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJJbnZhbGlkIHBlcmlvZCEgTmVnYXRpdmUgcGVyaW9kcyBhcmUgbm90IGFsbG93ZWQuIikgfCBodG1sICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiTmVnYXRpdmVQZXJpb2RTZXJ2ZXJFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiVW5pdElucHV0UGVyaW9kIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiVW5pdFBlcmlvZFdpdGhvdXRJbnB1dCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIERhdGEuUGVyaW9kIHwgaHRtbCAlXTwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJVbml0UGVyaW9kV2l0aG91dElucHV0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJVbml0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iNiIgY2xhc3M9IlJpZ2h0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBQbHVzIiB0eXBlPSJidXR0b24iIGlkPSJNb3JlSW5wdXRGaWVsZHMiIG5hbWU9Ik1vcmVJbnB1dEZpZWxkcyI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLXBsdXMtc3F1YXJlIj48L2k+WyUgVHJhbnNsYXRlKCJBZGQgb25lIHJvdyIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIlVuaXRCbG9jayIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjQiPjwvdGQ+ClslIFJlbmRlckJsb2NrU3RhcnQoIlRvdGFsIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgVHJhbnNsYXRlKCJUb3RhbCIpIHwgaHRtbCAlXTo8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48c3BhbiBjbGFzcz0iVG90YWxIb3VycyI+WyUgRGF0YS5Ub3RhbCB8IGh0bWwgJV08L3NwYW4+PC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlRvdGFsIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrU3RhcnQoIlJlYWRvbmx5IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iNiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZShEYXRhLkRlc2NyaXB0aW9uKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIlJlYWRvbmx5IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdGhlclRpbWVzIikgJV0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJTcGFjaW5nVG9wIEFic2VuY2UiPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIHZhbHVlPSIxIiBpZD0iTGVhdmVEYXkiIG5hbWU9IkxlYXZlRGF5IiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJPbiB2YWNhdGlvbiIpIHwgaHRtbCAlXSIgY2xhc3M9IlslIERhdGEuTGVhdmVEYXlJbnZhbGlkICVdIiBbJSBEYXRhLkxlYXZlRGF5ICVdIC8+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkxlYXZlRGF5Ij5bJSBUcmFuc2xhdGUoIk9uIHZhY2F0aW9uIikgfCBodG1sICVdPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTGVhdmVEYXlTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgdmFsdWU9IjEiIGlkPSJTaWNrIiBuYW1lPSJTaWNrIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJPbiBzaWNrIGxlYXZlIikgfCBodG1sICVdIiBjbGFzcz0iWyUgRGF0YS5TaWNrSW52YWxpZCAlXSIgWyUgRGF0YS5TaWNrICVdIC8+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlNpY2siPlslIFRyYW5zbGF0ZSgiT24gc2ljayBsZWF2ZSIpIHwgaHRtbCAlXTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlNpY2tTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJZb3UgY2FuIG9ubHkgc2VsZWN0IG9uZSBjaGVja2JveCBlbGVtZW50ISIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgdmFsdWU9IjEiIGlkPSJPdmVydGltZSIgbmFtZT0iT3ZlcnRpbWUiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIk9uIG92ZXJ0aW1lIGxlYXZlIikgfCBodG1sICVdIiBjbGFzcz0iWyUgRGF0YS5PdmVydGltZUludmFsaWQgJV0iIFslIERhdGEuT3ZlcnRpbWUgJV0gLz4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iT3ZlcnRpbWUiPlslIFRyYW5zbGF0ZSgiT24gb3ZlcnRpbWUgbGVhdmUiKSB8IGh0bWwgJV08L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJPdmVydGltZVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIllvdSBjYW4gb25seSBzZWxlY3Qgb25lIGNoZWNrYm94IGVsZW1lbnQhIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk90aGVyVGltZXMiKSAlXQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNlbnRlciBTcGFjaW5nVG9wIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iUHJpbWFyeSBDYWxsRm9yQWN0aW9uIiB0eXBlPSJzdWJtaXQiIG5hbWU9Ikluc2VydFdvcmtpbmdVbml0cyIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiU3VibWl0IikgfCBodG1sICVdIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtY2hlY2stc3F1YXJlLW8iPjwvaT4gWyUgVHJhbnNsYXRlKCJTdWJtaXQiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGlkPSJEZWxldGVUaW1lQWNjb3VudGluZ0VudHJ5IiBocmVmPSIjIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiRGVsZXRlIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJvciIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTsiPlslIFRyYW5zbGF0ZSgiQ2FuY2VsIikgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KPC9kaXY+Cgo8cCBpZD0iU2lja0xlYXZlTWVzc2FnZSIgY2xhc3M9IkhpZGRlbiBDZW50ZXIiPgogICAgWyUgVHJhbnNsYXRlKCJBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIHNpY2sgbGVhdmU/IikgfCBodG1sICVdCjwvcD4KCjxwIGlkPSJWYWNhdGlvbk1lc3NhZ2UiIGNsYXNzPSJIaWRkZW4gQ2VudGVyIj4KICAgIFslIFRyYW5zbGF0ZSgiQXJlIHlvdSBzdXJlIHRoYXQgeW91IHdvcmtlZCB3aGlsZSB5b3Ugd2VyZSBvbiB2YWNhdGlvbj8iKSB8IGh0bWwgJV0KPC9wPgoKPHAgaWQ9Ik92ZXJ0aW1lTWVzc2FnZSIgY2xhc3M9IkhpZGRlbiBDZW50ZXIiPgogICAgWyUgVHJhbnNsYXRlKCJBcmUgeW91IHN1cmUgdGhhdCB5b3Ugd29ya2VkIHdoaWxlIHlvdSB3ZXJlIG9uIG92ZXJ0aW1lIGxlYXZlPyIpIHwgaHRtbCAlXQo8L3A+Cgo8cCBpZD0iTW9yZTE2SG91cnNNZXNzYWdlIiBjbGFzcz0iSGlkZGVuIENlbnRlciI+CiAgICBbJSBUcmFuc2xhdGUoIkFyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3b3JrZWQgbW9yZSB0aGFuIDE2IGhvdXJzPyIpIHwgaHRtbCAlXQo8L3A+Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgo8ZGl2IGNsYXNzPSJNYWluQm94IEFSSUFSb2xlTWFpbiI+CiAgICA8aDEgY2xhc3M9IkhlYWRlciI+WyUgVHJhbnNsYXRlKCJUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3IikgfCBodG1sICVdPC9oMT4KCiAgICA8ZGl2IGNsYXNzPSJMYXlvdXRGaXhlZFNpZGViYXIgU2lkZWJhckxhc3QiPgogICAgICAgIDxkaXYgY2xhc3M9IlNpZGViYXJDb2x1bW4iPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydGltZSIpICVdCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIk92ZXJ0aW1lIChIb3VycykiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSBGaXhlZExhYmVsIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiT3ZlcnRpbWUgKHRoaXMgbW9udGgpIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSI+WyUgRGF0YS5PdmVydGltZSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIk92ZXJ0aW1lICh0b3RhbCkiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj5bJSBEYXRhLk92ZXJ0aW1lVW50aWwgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJSZW1haW5pbmcgb3ZlcnRpbWUgbGVhdmUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj5bJSBEYXRhLk92ZXJ0aW1lVG90YWwgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ0aW1lIikgJV0KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlZhY2F0aW9uIChEYXlzKSIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIEZpeGVkTGFiZWwiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJWYWNhdGlvbiB0YWtlbiAodGhpcyBtb250aCkiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj5bJSBEYXRhLkxlYXZlRGF5IHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiVmFjYXRpb24gdGFrZW4gKHRvdGFsKSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiPlslIERhdGEuTGVhdmVEYXlUb3RhbCB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIlJlbWFpbmluZyB2YWNhdGlvbiIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiPlslIERhdGEuTGVhdmVEYXlSZW1haW5pbmcgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlNpY2sgTGVhdmUgKERheXMpIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UgRml4ZWRMYWJlbCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5bJSBUcmFuc2xhdGUoIlNpY2sgbGVhdmUgdGFrZW4gKHRoaXMgbW9udGgpIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSI+WyUgRGF0YS5TaWNrIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiU2ljayBsZWF2ZSB0YWtlbiAodG90YWwpIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSI+WyUgRGF0YS5TaWNrVG90YWwgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudENvbHVtbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIk92ZXJ2aWV3IikgfCBodG1sICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlVzZXIiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAtIFslIERhdGEuVXNlciB8IGh0bWwgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIlVzZXIiKSAlXQogICAgICAgICAgICAgICAgICAgIDwvaDI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQWRkaXRpb25hbEluZm9ybWF0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9IkFycm93IiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJQcmV2aW91cyBtb250aCIpIHwgaHRtbCAlXSIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WWVhcj1bJSBEYXRhLlllYXJCYWNrIHwgdXJpICVdO01vbnRoPVslIERhdGEuTW9udGhCYWNrIHwgdXJpICVdO1VzZXJJRD1bJSBEYXRhLlVzZXJJRCB8IHVyaSAlXSI+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LWxlZnQiPjwvaT48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJBcnJvdyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiTmV4dCBtb250aCIpIHwgaHRtbCAlXSIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WWVhcj1bJSBEYXRhLlllYXJOZXh0IHwgdXJpICVdO01vbnRoPVslIERhdGEuTW9udGhOZXh0IHwgdXJpICVdO1VzZXJJRD1bJSBEYXRhLlVzZXJJRCB8IHVyaSAlXSI+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LXJpZ2h0Ij48L2k+PC9hPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoRGF0YS5Nb250aF90b19UZXh0KSB8IGh0bWwgJV0gWyUgRGF0YS5ZZWFyIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJEYXkiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIldlZWtkYXkiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkNvbW1lbnQiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIldvcmtpbmcgSG91cnMiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJbJSBEYXRhLkNsYXNzIHwgaHRtbCAlXSBNYXN0ZXJBY3Rpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iRml4ZWQgRGF5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIERhdGEuQWN0aW9uIHwgdXJpICVdO1llYXI9WyUgRGF0YS5ZZWFyIHwgdXJpICVdO01vbnRoPVslIERhdGEuTW9udGggfCB1cmkgJV07RGF5PVslIERhdGEuRGF5IHwgdXJpICVdO1VzZXJJRD1bJSBEYXRhLlVzZXJJRCB8IHVyaSAlXSIgY2xhc3M9Ik1hc3RlckFjdGlvbkxpbmsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5EYXkgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iRml4ZWQgV2Vla2RheSI+WyUgVHJhbnNsYXRlKERhdGEuV2Vla2RheV90b19UZXh0KSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBUcmFuc2xhdGUoRGF0YS5Db21tZW50KSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPlslIERhdGEuV29ya2luZ0hvdXJzIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiUm93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlNwYWNpbmdUb3AgUmlnaHQiPjxzdHJvbmc+WyUgVHJhbnNsYXRlKCJUb3RhbCB3b3JrZWQgaG91cnMiKSB8IGh0bWwgJV06PC9zdHJvbmc+IFslIERhdGEuV29ya2luZ0hvdXJzIHwgaHRtbCAlXTwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiUHJvamVjdFRhYmxlIikgJV0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgPGgyPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlVzZXIncyBwcm9qZWN0IG92ZXJ2aWV3IikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1llYXI9WyUgRGF0YS5ZZWFyIHwgdXJpICVdO01vbnRoPVslIERhdGEuTW9udGggfCB1cmkgJV07UHJvamVjdFN0YXR1c1Nob3c9WyUgRGF0YS5Qcm9qZWN0U3RhdHVzU2hvdyB8IHVyaSAlXTtVc2VySUQ9WyUgRGF0YS5Vc2VySUQgfCB1cmkgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgKFslIFRyYW5zbGF0ZShEYXRhLlNob3dQcm9qZWN0cykgfCBodG1sICVdKQogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9oMj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUgTm9Ib3ZlciBIaWdoQ2VsbHMiPgogICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiUHJvamVjdCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiVGFzayIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiSG91cnMgKG1vbnRobHkpIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJIb3VycyAoTGlmZXRpbWUpIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiUHJvamVjdCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIHJvd3NwYW49IlslIERhdGEuUm93U3BhbiAlXSIgY2xhc3M9IlJvd1NwYW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQcm9qZWN0Tm9MaW5rIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5Qcm9qZWN0ICVdClslIFJlbmRlckJsb2NrRW5kKCJQcm9qZWN0Tm9MaW5rIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUHJvamVjdExpbmsiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZztTdWJhY3Rpb249UmVwb3J0aW5nUHJvamVjdDtQcm9qZWN0SUQ9WyUgRGF0YS5Qcm9qZWN0SUQgfCB1cmkgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5Qcm9qZWN0ICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KWyUgUmVuZGVyQmxvY2tFbmQoIlByb2plY3RMaW5rIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdHJvbmc+ClslIFJlbmRlckJsb2NrU3RhcnQoIlByb2plY3REZXNjcmlwdGlvbiIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxici8+WyUgRGF0YS5Qcm9qZWN0RGVzY3JpcHRpb24gJV0KWyUgUmVuZGVyQmxvY2tFbmQoIlByb2plY3REZXNjcmlwdGlvbiIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlByb2plY3QiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBEYXRhLkFjdGlvbiB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPlslIERhdGEuSG91cnMgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij5bJSBEYXRhLkhvdXJzVG90YWwgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdGlvblRvdGFsIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHN0cm9uZz5bJSBUcmFuc2xhdGUoIlRvdGFsIikgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuSG91cnMgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuSG91cnNUb3RhbCB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvblRvdGFsIikgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbiIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkdyYW5kVG90YWwiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJHcmFuZFRvdGFsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iMiI+PHN0cm9uZz5bJSBUcmFuc2xhdGUoIkdyYW5kIHRvdGFsIikgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuVG90YWxIb3VycyB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ub3RhbEhvdXJzVG90YWwgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJHcmFuZFRvdGFsIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiUHJvamVjdFRhYmxlIikgJV0KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Rpdj4K
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgo8ZGl2IGNsYXNzPSJNYWluQm94IEFSSUFSb2xlTWFpbiBMYXlvdXRGaXhlZFNpZGViYXIgU2lkZWJhckZpcnN0Ij4KICAgIDxoMSBjbGFzcz0iSGVhZGVyIj5bJSBUcmFuc2xhdGUoIlRpbWUgcmVwb3J0aW5nIikgfCBodG1sICVdOiBbJSBUcmFuc2xhdGUoRGF0YS5Nb250aF90b19UZXh0KSB8IGh0bWwgJV0gWyUgRGF0YS5ZZWFyICVdPC9oMT4KCiAgICA8ZGl2IGNsYXNzPSJTaWRlYmFyQ29sdW1uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiTW9udGggTmF2aWdhdGlvbiIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Ik1vbnRoU2VsZWN0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iQXJyb3cgTGVmdCIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiUHJldmlvdXMgbW9udGgiKSB8IGh0bWwgJV0iIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1llYXI9WyUgRGF0YS5ZZWFyQmFjayB8IHVyaSAlXTtNb250aD1bJSBEYXRhLk1vbnRoQmFjayB8IHVyaSAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1jYXJldC1sZWZ0Ij48L2k+CiAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJBcnJvdyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiTmV4dCBtb250aCIpIHwgaHRtbCAlXSIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WWVhcj1bJSBEYXRhLlllYXJOZXh0IHwgdXJpICVdO01vbnRoPVslIERhdGEuTW9udGhOZXh0IHwgdXJpICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLWNhcmV0LXJpZ2h0Ij48L2k+CiAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+WyUgVHJhbnNsYXRlKERhdGEuTW9udGhfdG9fVGV4dCkgfCBodG1sICVdIFslIERhdGEuWWVhciAlXTwvc3Ryb25nPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbmFtZT0iY29tcG9zZSIgaWQ9IkRhdGVTZWxlY3Rpb25Gb3JtIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iICAgIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlJlcG9ydGluZyIgLz4KICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLk1vbnRoT3B0aW9uICVdCiAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5ZZWFyT3B0aW9uICVdCiAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBpZD0iTmF2aWdhdGlvblNlbGVjdCIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIFNwYWNpbmdUb3AiIGFjY2Vzc2tleT0iZyI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWFycm93LWNpcmNsZS1vLXJpZ2h0Ij48L2k+WyUgVHJhbnNsYXRlKCJHbyB0byBkYXRlIikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJDb250ZW50Q29sdW1uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiVXNlciByZXBvcnRzIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQgSG9yaXpvbnRhbFNjcm9sbCI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOb1VzZXJEYXRhRm91bmRNc2ciKSAlXQogICAgICAgICAgICAgICAgPGRpdiBpZD0iVGltZUFjY291bnRpbmdFbXB0eU1lc3NhZ2VTbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBkYXRhIGZvdW5kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJOb1VzZXJEYXRhRm91bmRNc2ciKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiVXNlclRhYmxlIikgJV0KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIj4KICAgICAgICAgICAgICAgICAgICA8dGhlYWQgY2xhc3M9IlR3b1Jvd3MiPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+PC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iQ2VudGVyIiBjb2xzcGFuPSI0Ij5bJSBUcmFuc2xhdGUoIk1vbnRobHkgdG90YWwiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJDZW50ZXIiIGNvbHNwYW49IjIiPlslIFRyYW5zbGF0ZSgiTGlmZXRpbWUgdG90YWwiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJVc2VyIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIldvcmtpbmcgSG91cnMiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiT3ZlcnRpbWUgbGVhdmUiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiVmFjYXRpb24iKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiU2ljayBsZWF2ZSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJPdmVydGltZSBsZWF2ZSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJWYWNhdGlvbiByZW1haW5pbmciKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVc2VyIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJNYXN0ZXJBY3Rpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nT3ZlcnZpZXc7WWVhcj1bJSBEYXRhLlllYXIgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aCB8IHVyaSAlXTtVc2VySUQ9WyUgRGF0YS5Vc2VySUQgfCB1cmkgJV0iIGNsYXNzPSJNYXN0ZXJBY3Rpb25MaW5rIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5Vc2VyIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij5bJSBEYXRhLldvcmtpbmdIb3VycyB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5PdmVydGltZSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5MZWF2ZURheSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5TaWNrIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij5bJSBEYXRhLk92ZXJ0aW1lVG90YWwgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPlslIERhdGEuTGVhdmVEYXlSZW1haW5pbmcgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIlVzZXIiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVc2VyR3JhbmRUb3RhbCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0iR3JhbmRUb3RhbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHN0cm9uZz5bJSBUcmFuc2xhdGUoIlRvdGFsIikgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ub3RhbFdvcmtpbmdIb3VycyB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+PHN0cm9uZz5bJSBEYXRhLlRvdGFsT3ZlcnRpbWUgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ub3RhbExlYXZlRGF5IHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuVG90YWxTaWNrIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuVG90YWxPdmVydGltZVRvdGFsIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuVG90YWxMZWF2ZURheVJlbWFpbmluZyB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiVXNlckdyYW5kVG90YWwiKSAlXQogICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICA8L3RhYmxlPgogWyUgUmVuZGVyQmxvY2tFbmQoIlVzZXJUYWJsZSIpICVdCgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlByb2plY3QgcmVwb3J0cyIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJbJSBEYXRhLlByb2plY3RTdGF0dXNMaW5rQ2xhc3MgJV0iIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1llYXI9WyUgRGF0YS5ZZWFyIHwgdXJpICVdO01vbnRoPVslIERhdGEuTW9udGggfCB1cmkgJV07UHJvamVjdFN0YXR1c1Nob3c9WyUgRGF0YS5Qcm9qZWN0U3RhdHVzU2hvdyB8IHVyaSAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIChbJSBUcmFuc2xhdGUoRGF0YS5TaG93UHJvamVjdHMpIHwgaHRtbCAlXSkKICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICA8L2gyPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQgSG9yaXpvbnRhbFNjcm9sbCI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOb1Byb2plY3REYXRhRm91bmRNc2ciKSAlXQogICAgICAgICAgICAgICAgPGRpdiBpZD0iVGltZUFjY291bnRpbmdFbXB0eU1lc3NhZ2VTbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBkYXRhIGZvdW5kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJOb1Byb2plY3REYXRhRm91bmRNc2ciKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiUHJvamVjdFRhYmxlIikgJV0KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIE5vSG92ZXIiPgogICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiUHJvamVjdCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJUYXNrIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkhvdXJzIChtb250aGx5KSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJIb3VycyAoTGlmZXRpbWUpIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJNYXN0ZXJBY3Rpb24iPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQcm9qZWN0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCByb3dzcGFuPSJbJSBEYXRhLlJvd1NwYW4gJV0iIGNsYXNzPSJSb3dTcGFuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtTdWJhY3Rpb249UmVwb3J0aW5nUHJvamVjdDtQcm9qZWN0SUQ9WyUgRGF0YS5Qcm9qZWN0SUQgfCB1cmkgJV0iIGNsYXNzPSJNYXN0ZXJBY3Rpb25MaW5rIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuUHJvamVjdCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdHJvbmc+ClslIFJlbmRlckJsb2NrU3RhcnQoIlByb2plY3REZXNjcmlwdGlvbiIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIgLz5bJSBEYXRhLlByb2plY3REZXNjcmlwdGlvbiAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiUHJvamVjdERlc2NyaXB0aW9uIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KWyUgUmVuZGVyQmxvY2tFbmQoIlByb2plY3QiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5BY3Rpb24gfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+WyUgRGF0YS5Ib3VycyB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij5bJSBEYXRhLkhvdXJzVG90YWwgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25Ub3RhbCIpICVdCiAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHN0cm9uZz5bJSBUcmFuc2xhdGUoIlRvdGFsIikgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+PHN0cm9uZz5bJSBEYXRhLkhvdXJzIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ib3Vyc1RvdGFsIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvblRvdGFsIikgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbiIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlByb2plY3RHcmFuZFRvdGFsIikgJV0KICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9IkdyYW5kVG90YWwiPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iMiI+PHN0cm9uZz5bJSBUcmFuc2xhdGUoIkdyYW5kIHRvdGFsIikgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+PHN0cm9uZz5bJSBEYXRhLlRvdGFsSG91cnMgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJSaWdodCI+PHN0cm9uZz5bJSBEYXRhLlRvdGFsSG91cnNUb3RhbCB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJQcm9qZWN0R3JhbmRUb3RhbCIpICVdCiAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICA8L3RhYmxlPgpbJSBSZW5kZXJCbG9ja0VuZCgiUHJvamVjdFRhYmxlIikgJV0KCiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgo8ZGl2IGNsYXNzPSJNYWluQm94IEFSSUFSb2xlTWFpbiBMYXlvdXRGaXhlZFNpZGViYXIgU2lkZWJhckZpcnN0Ij4KICAgIDxoMSBjbGFzcz0iSGVhZGVyIj5bJSBUcmFuc2xhdGUoIlByb2plY3QgcmVwb3J0IikgfCBodG1sICVdOiBbJSBEYXRhLlByb2plY3QgfCBodG1sICVdPC9oMT4KCiAgICA8ZGl2IGNsYXNzPSJTaWRlYmFyQ29sdW1uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiQWN0aW9ucyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iQWN0aW9uTGlzdCI+CiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXSIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtbGVmdCI+PC9pPlslIFRyYW5zbGF0ZSgiR28gdG8gcmVwb3J0aW5nIG92ZXJ2aWV3IikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkhpbnQiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+ClslIElGIERhdGEuU2hvd09ubHlBY3RpdmVVc2VycyA9PSAnMScgJV0KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkN1cnJlbnRseSBvbmx5IGFjdGl2ZSB1c2VycyBpbiB0aGlzIHByb2plY3QgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZG1pblN5c0NvbmZpZztTdWJhY3Rpb249RWRpdDtTeXNDb25maWdHcm91cD1UaW1lQWNjb3VudGluZztTeXNDb25maWdTdWJHcm91cD1Gcm9udGVuZDo6QWdlbnQ6OlRpbWVBY2NvdXRuaW5nOjpWaWV3UmVwb3J0aW5nUHJvamVjdCI+U2hvd09ubHlBY3RpdmVVc2VyczwvYT4KICAgICAgICAgICAgICAgIDwvcD4KWyUgRUxTRSAlXQogICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiQ3VycmVudGx5IGFsbCB0aW1lIGFjY291bnRpbmcgdXNlcnMgYXJlIHNob3duLiBUbyBjaGFuZ2UgdGhpcyBiZWhhdmlvciwgcGxlYXNlIHVwZGF0ZSBzZXR0aW5nOiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZG1pblN5c0NvbmZpZztTdWJhY3Rpb249RWRpdDtTeXNDb25maWdHcm91cD1UaW1lQWNjb3VudGluZztTeXNDb25maWdTdWJHcm91cD1Gcm9udGVuZDo6QWdlbnQ6OlRpbWVBY2NvdXRuaW5nOjpWaWV3UmVwb3J0aW5nUHJvamVjdCI+U2hvd09ubHlBY3RpdmVVc2VyczwvYT4KICAgICAgICAgICAgICAgIDwvcD4KWyUgRU5EICVdCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iQ29udGVudENvbHVtbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlByb2plY3QgcmVwb3J0IikgfCBodG1sICVdOiBbJSBEYXRhLlByb2plY3QgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiTm9Vc2VyRGF0YUZvdW5kTXNnIikgJV0KICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlRpbWVBY2NvdW50aW5nRW1wdHlNZXNzYWdlU21hbGwiPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiTm8gZGF0YSBmb3VuZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiTm9Vc2VyRGF0YUZvdW5kTXNnIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIlVzZXJUYWJsZSIpICVdCiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSBEYXRhVGFibGVOb0hpZ2hsaWdodCI+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJUYXNrIikgfCBodG1sICVdPC90aD4KWyUgUmVuZGVyQmxvY2tTdGFydCgiVXNlck5hbWUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIERhdGEuVXNlciB8IGh0bWwgJV08L3RoPgpbJSBSZW5kZXJCbG9ja0VuZCgiVXNlck5hbWUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiVG90YWwiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdGlvbiIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5BY3Rpb24gfCBodG1sICVdPC90ZD4KWyUgUmVuZGVyQmxvY2tTdGFydCgiVXNlciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij5bJSBEYXRhLkhvdXJzIHwgaHRtbCAlXTwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJVc2VyIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbiIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0iR3JhbmRUb3RhbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHN0cm9uZz5bJSBUcmFuc2xhdGUoIlRvdGFsIikgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KWyUgUmVuZGVyQmxvY2tTdGFydCgiVXNlclRvdGFsIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ub3RhbCB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiVXNlclRvdGFsIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiVXNlclRvdGFsQWxsIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPjxzdHJvbmc+WyUgRGF0YS5Ub3RhbEFsbCB8IGh0bWwgJV08L3N0cm9uZz48L3RkPgpbJSBSZW5kZXJCbG9ja0VuZCgiVXNlclRvdGFsQWxsIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgPC90YWJsZT4KIFslIFJlbmRlckJsb2NrRW5kKCJVc2VyVGFibGUiKSAlXQoKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJIaXN0b3J5IikgfCBodG1sICVdOiBbJSBEYXRhLlByb2plY3QgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiTm9Qcm9qZWN0RGF0YUZvdW5kTXNnIikgJV0KICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlRpbWVBY2NvdW50aW5nRW1wdHlNZXNzYWdlU21hbGwiPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiTm8gZGF0YSBmb3VuZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiTm9Qcm9qZWN0RGF0YUZvdW5kTXNnIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIlByb2plY3RUYWJsZSIpICVdCiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSBEYXRhVGFibGVOb0hpZ2hsaWdodCI+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJEYXRlIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlVzZXIiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiVGFzayIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJSZW1hcmsiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiUGVyaW9kIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiUm93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIERhdGEuRGF0ZSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIERhdGEuVXNlciB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIERhdGEuQWN0aW9uIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5SZW1hcmsgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPlslIERhdGEuUGVyaW9kIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9IkdyYW5kVG90YWwiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJIaXN0b3J5VG90YWwiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjQiPjxzdHJvbmc+WyUgVHJhbnNsYXRlKCJUb3RhbCIpIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuSGlzdG9yeVRvdGFsIHwgaHRtbCAlXTwvc3Ryb25nPjwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJIaXN0b3J5VG90YWwiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICA8L3RhYmxlPgpbJSBSZW5kZXJCbG9ja0VuZCgiUHJvamVjdFRhYmxlIikgJV0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KPC9kaXY+Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1Byb2plY3QiKSAlXQo8ZGl2IGNsYXNzPSJNYWluQm94IEFSSUFSb2xlTWFpbiBMYXlvdXRGaXhlZFNpZGViYXIgU2lkZWJhckZpcnN0Ij4KICAgIDxoMSBjbGFzcz0iSGVhZGVyIj5bJSBUcmFuc2xhdGUoIkVkaXQgVGltZSBBY2NvdW50aW5nIFByb2plY3QgU2V0dGluZ3MiKSB8IGh0bWwgJV08L2gxPgoKICAgIDxkaXYgY2xhc3M9IlNpZGViYXJDb2x1bW4iPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25MaXN0UHJvamVjdCIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkFjdGlvbnMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9IkFjdGlvbkxpc3QiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25BZGRQcm9qZWN0IikgJV0KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IkFkZFByb2plY3QiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIkFkZCIpIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGkgY2xhc3M9ImZhIGZhLXBsdXMtc3F1YXJlIj48L2k+WyUgVHJhbnNsYXRlKCJBZGQgcHJvamVjdCIpIHwgaHRtbCAlXTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbkFkZFByb2plY3QiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uU2V0dGluZ092ZXJ2aWV3IikgJV0KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdIiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1sZWZ0Ij48L2k+WyUgVHJhbnNsYXRlKCJHbyB0byBzZXR0aW5ncyBvdmVydmlldyIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvblNldHRpbmdPdmVydmlldyIpICVdCiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbkxpc3RQcm9qZWN0IikgJV0KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9IkNvbnRlbnRDb2x1bW4iPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdVcGRhdGVQcm9qZWN0IikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJIZWFkZXJBZGRQcm9qZWN0IikgJV0KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkFkZCBQcm9qZWN0IikgfCBodG1sICVdPC9oMj4KWyUgUmVuZGVyQmxvY2tFbmQoIkhlYWRlckFkZFByb2plY3QiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJIZWFkZXJFZGl0UHJvamVjdCIpICVdCiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJFZGl0IFByb2plY3QgU2V0dGluZ3MiKSB8IGh0bWwgJV08L2gyPgpbJSBSZW5kZXJCbG9ja0VuZCgiSGVhZGVyRWRpdFByb2plY3QiKSAlXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgbmFtZT0iUHJvamVjdFVwZGF0ZSIgY2xhc3M9IlZhbGlkYXRlIFByZXZlbnRNdWx0aXBsZVN1Ym1pdHMiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlslIERhdGEuQWN0aW9uIHwgaHRtbCAlXUFjdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iSUQiIHZhbHVlPSJbJSBEYXRhLklEIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IlByb2plY3QiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiTmFtZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iUHJvamVjdCIgaWQ9IlByb2plY3QiIHZhbHVlPSJbJSBEYXRhLlByb2plY3QgfCBodG1sICVdIiBjbGFzcz0iVzUwcGMgVmFsaWRhdGVfUmVxdWlyZWQgWyUgRGF0YS5Qcm9qZWN0SW52YWxpZCB8IGh0bWwgJV0iIG1heGxlbmd0aD0iNTAiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlByb2plY3RFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KClslIFJlbmRlckJsb2NrU3RhcnQoIlByb2plY3RNaXNzaW5nVmFsdWUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUHJvamVjdFNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiUHJvamVjdE1pc3NpbmdWYWx1ZSIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQcm9qZWN0RHVwbGljYXRlTmFtZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJQcm9qZWN0U2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoZXJlIGlzIGFscmVhZHkgYSBwcm9qZWN0IHdpdGggdGhpcyBuYW1lLiBQbGVhc2UsIGNob29zZSBhIGRpZmZlcmVudCBvbmUuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJQcm9qZWN0RHVwbGljYXRlTmFtZSIpICVdCgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iUHJvamVjdERlc2NyaXB0aW9uIj5bJSBUcmFuc2xhdGUoIkRlc2NyaXB0aW9uIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJQcm9qZWN0RGVzY3JpcHRpb24iIGlkPSJQcm9qZWN0RGVzY3JpcHRpb24iIHZhbHVlPSJbJSBEYXRhLlByb2plY3REZXNjcmlwdGlvbiB8IGh0bWwgJV0iIGNsYXNzPSJXNTBwYyIgbWF4bGVuZ3RoPSIxNTAiLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlByb2plY3RTdGF0dXMiPlslIFRyYW5zbGF0ZSgiU3RhdHVzIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuU3RhdHVzT3B0aW9uICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCBTcGFjaW5nVG9wIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IlByaW1hcnkgQ2FsbEZvckFjdGlvbiIgdHlwZT0ic3VibWl0IiBpZD0iU3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJTdWJtaXQiKSB8IGh0bWwgJV0iPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1jaGVjay1zcXVhcmUtbyI+PC9pPiBbJSBUcmFuc2xhdGUoIlN1Ym1pdCIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgib3IiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdIj5bJSBUcmFuc2xhdGUoIkNhbmNlbCIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3VXBkYXRlUHJvamVjdCIpICVdCiAgICA8L2Rpdj4KPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1Byb2plY3QiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiU2V0dGluZyIpICVdCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIExheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyRmlyc3QiPgogICAgPGgxIGNsYXNzPSJIZWFkZXIiPlslIFRyYW5zbGF0ZSgiRWRpdCBUaW1lIEFjY291bnRpbmcgU2V0dGluZ3MiKSB8IGh0bWwgJV08L2gxPgoKICAgIDxkaXYgY2xhc3M9IlNpZGViYXJDb2x1bW4iPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uTGlzdFNldHRpbmciKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJBY3Rpb25zIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJBY3Rpb25MaXN0Ij4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uQWRkUHJvamVjdCIpICVdCiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJBZGRQcm9qZWN0Ii8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJBZGQiKSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxpIGNsYXNzPSJmYSBmYS1wbHVzLXNxdWFyZSI+PC9pPlslIFRyYW5zbGF0ZSgiQWRkIHByb2plY3QiKSB8IGh0bWwgJV08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25BZGRQcm9qZWN0IikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uQWRkVGFzayIpICVdCiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJBZGRUYXNrIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJBZGQgdGFzayIpIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGkgY2xhc3M9ImZhIGZhLXBsdXMtc3F1YXJlIj48L2k+WyUgVHJhbnNsYXRlKCJBZGQgdGFzayIpIHwgaHRtbCAlXTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbkFkZFRhc2siKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25BZGRVc2VyIikgJV0KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBpZD0iQWN0aW9uQWRkVXNlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJBZGRVc2VyIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLk5ld1VzZXJPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25BZGRVc2VyIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uT3ZlcnZpZXdTZXR0aW5nIikgJV0KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdIiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1sZWZ0Ij48L2k+WyUgVHJhbnNsYXRlKCJHbyB0byBzZXR0aW5ncyBvdmVydmlldyIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbk92ZXJ2aWV3U2V0dGluZyIpICVdCgogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25MaXN0U2V0dGluZyIpICVdCgogICAgWyUgSUYgIUVudigiU3ViYWN0aW9uIikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiRmlsdGVyIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJGaWx0ZXJCb3giIHBsYWNlaG9sZGVyPSJbJSBUcmFuc2xhdGUoIkp1c3Qgc3RhcnQgdHlwaW5nIHRvIGZpbHRlci4uLiIpIHwgaHRtbCAlXSIgdmFsdWU9IiIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiRmlsdGVyIGZvciBwcm9qZWN0cywgdGFza3Mgb3IgdXNlcnMiKSB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgWyUgRU5EICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZWZlcmVuY2UiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSBTcGFjaW5nVG9wIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlJlZmVyZW5jZSIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlJlcXVpcmVkIGZpZWxkcyBhcmUgbWFya2VkIHdpdGggYSBcIipcIi4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRpbWUgcGVyaW9kcyBjYW4gbm90IGJlIGRlbGV0ZWQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiUmVmZXJlbmNlIikgJV0KCiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJDb250ZW50Q29sdW1uIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdSZXN1bHRQcm9qZWN0IikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0QWN0aW9uIFRvZ2dsZSI+PGEgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiU2hvdyBvciBoaWRlIHRoZSBjb250ZW50IikgfCBodG1sICVdIj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtcmlnaHQiPjwvaT48aSBjbGFzcz0iZmEgZmEtY2FyZXQtZG93biI+PC9pPjwvYT48L2Rpdj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlByb2plY3QgTGlzdCIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KClslIFJlbmRlckJsb2NrU3RhcnQoIk5vUHJvamVjdERhdGFGb3VuZE1zZyIpICVdCiAgICAgICAgICAgICAgICA8ZGl2IGlkPSJUaW1lQWNjb3VudGluZ0VtcHR5TWVzc2FnZVNtYWxsIj4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIk5vIGRhdGEgZm91bmQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk5vUHJvamVjdERhdGFGb3VuZE1zZyIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1Jlc3VsdFByb2plY3RUYWJsZSIpICVdCiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSIgaWQ9IlByb2plY3RzIj4KICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iVzMzcGMiPlslIFRyYW5zbGF0ZSgiUHJvamVjdCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9IlczM3BjIj5bJSBUcmFuc2xhdGUoIkNvbW1lbnQiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiU3RhdHVzIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJGaWx0ZXJNZXNzYWdlIEhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBtYXRjaGVzIGZvdW5kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdSZXN1bHRQcm9qZWN0Um93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyIFslIElGIERhdGEuU3RhdHVzID09ICdpbnZhbGlkJyVdY2xhc3M9IkludmFsaWQiWyUgRU5EICVdPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxhIGNsYXNzPSJBc0Jsb2NrIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtTdWJhY3Rpb249RWRpdFByb2plY3Q7SUQ9WyUgRGF0YS5Qcm9qZWN0SUQgfCB1cmkgJV0iPlslIERhdGEuUHJvamVjdCB8IGh0bWwgJV08L2E+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCB0aXRsZT0iWyUgRGF0YS5Qcm9qZWN0RGVzY3JpcHRpb24gfCBodG1sICVdIj5bJSBEYXRhLlByb2plY3REZXNjcmlwdGlvbiB8IHRydW5jYXRlKDQwKSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIFRyYW5zbGF0ZShEYXRhLlN0YXR1cykgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3UmVzdWx0UHJvamVjdFJvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgIDwvdGFibGU+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1Jlc3VsdFByb2plY3RUYWJsZSIpICVdCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdSZXN1bHRQcm9qZWN0IikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UmVzdWx0U2V0dGluZyIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldEFjdGlvbiBUb2dnbGUiPjxhIGhyZWY9IiMiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlNob3cgb3IgaGlkZSB0aGUgY29udGVudCIpIHwgaHRtbCAlXSI+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LXJpZ2h0Ij48L2k+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LWRvd24iPjwvaT48L2E+PC9kaXY+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJUYXNrIExpc3QiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOb1NldHRpbmdEYXRhRm91bmRNc2ciKSAlXQogICAgICAgICAgICAgICAgPGRpdiBpZD0iVGltZUFjY291bnRpbmdFbXB0eU1lc3NhZ2VTbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBkYXRhIGZvdW5kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJOb1NldHRpbmdEYXRhRm91bmRNc2ciKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdSZXN1bHRTZXR0aW5nVGFibGUiKSAlXQogICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUiIGlkPSJUYXNrcyI+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9IlczM3BjIj5bJSBUcmFuc2xhdGUoIlRhc2siKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiU3RhdHVzIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJGaWx0ZXJNZXNzYWdlIEhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBtYXRjaGVzIGZvdW5kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UmVzdWx0U2V0dGluZ1JvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBbJSBJRiBEYXRhLlN0YXR1cyA9PSAnaW52YWxpZCclXWNsYXNzPSJJbnZhbGlkIlslIEVORCAlXT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48YSBjbGFzcz0iQXNCbG9jayIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07U3ViYWN0aW9uPUVkaXRUYXNrO0FjdGlvbklEPVslIERhdGEuQWN0aW9uSUQgfCB1cmkgJV0iPlslIERhdGEuQWN0aW9uIHwgaHRtbCAlXTwvYT48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIFRyYW5zbGF0ZShEYXRhLlN0YXR1cykgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3UmVzdWx0U2V0dGluZ1JvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgIDwvdGFibGU+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1Jlc3VsdFNldHRpbmdUYWJsZSIpICVdCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdSZXN1bHRTZXR0aW5nIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3VXBkYXRlVGFzayIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiSGVhZGVyQWRkVGFzayIpICVdCiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJBZGQgVGFzayIpIHwgaHRtbCAlXTwvaDI+ClslIFJlbmRlckJsb2NrRW5kKCJIZWFkZXJBZGRUYXNrIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiSGVhZGVyRWRpdFRhc2siKSAlXQogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiRWRpdCBUYXNrIFNldHRpbmdzIikgfCBodG1sICVdPC9oMj4KWyUgUmVuZGVyQmxvY2tFbmQoIkhlYWRlckVkaXRUYXNrIikgJV0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIG5hbWU9IlRhc2tVcGRhdGUiIGNsYXNzPSJWYWxpZGF0ZSBQcmV2ZW50TXVsdGlwbGVTdWJtaXRzIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJbJSBEYXRhLkFjdGlvbiB8IGh0bWwgJV1BY3Rpb24iPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbklEIiB2YWx1ZT0iWyUgRGF0YS5BY3Rpb25JRCB8IGh0bWwgJV0iLz4KICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJUYXNrIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIlRhc2siKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IlRhc2siIGlkPSJUYXNrIiB2YWx1ZT0iWyUgRGF0YS5UYXNrIHwgaHRtbCAlXSIgY2xhc3M9Ilc1MHBjIFZhbGlkYXRlX1JlcXVpcmVkIFslIERhdGEuVGFza0ludmFsaWQgfCBodG1sICVdIiBtYXhsZW5ndGg9IjUwIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJUYXNrRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJUYXNrTWlzc2luZ1ZhbHVlIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlRhc2tTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlRhc2tNaXNzaW5nVmFsdWUiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiVGFza0R1cGxpY2F0ZU5hbWUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iVGFza1NlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGVyZSBpcyBhbHJlYWR5IGEgdGFzayB3aXRoIHRoaXMgbmFtZS4gUGxlYXNlLCBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiVGFza0R1cGxpY2F0ZU5hbWUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iVGFza1N0YXR1cyI+WyUgVHJhbnNsYXRlKCJTdGF0dXMiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5TdGF0dXNPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIFNwYWNpbmdUb3AiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iUHJpbWFyeSBDYWxsRm9yQWN0aW9uIiB0eXBlPSJzdWJtaXQiIGlkPSJTdWJtaXQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlN1Ym1pdCIpIHwgaHRtbCAlXSI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNoZWNrLXNxdWFyZS1vIj48L2k+IFslIFRyYW5zbGF0ZSgiU3VibWl0IikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJvciIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV0iPlslIFRyYW5zbGF0ZSgiQ2FuY2VsIikgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdVcGRhdGVUYXNrIikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UmVzdWx0VXNlciIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldEFjdGlvbiBUb2dnbGUiPjxhIGhyZWY9IiMiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlNob3cgb3IgaGlkZSB0aGUgY29udGVudCIpIHwgaHRtbCAlXSI+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LXJpZ2h0Ij48L2k+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LWRvd24iPjwvaT48L2E+PC9kaXY+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJVc2VyIExpc3QiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOb1VzZXJEYXRhRm91bmRNc2ciKSAlXQogICAgICAgICAgICAgICAgPGRpdiBpZD0iVGltZUFjY291bnRpbmdFbXB0eU1lc3NhZ2VTbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBkYXRhIGZvdW5kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJOb1VzZXJEYXRhRm91bmRNc2ciKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdSZXN1bHRVc2VyVGFibGUiKSAlXQogICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUiIGlkPSJVc2VycyI+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9IlczM3BjIj5bJSBUcmFuc2xhdGUoIlVzZXIiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJXMzNwYyI+WyUgVHJhbnNsYXRlKCJDb21tZW50IikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkNhbGVuZGFyIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJGaWx0ZXJNZXNzYWdlIEhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBtYXRjaGVzIGZvdW5kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UmVzdWx0VXNlclJvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48YSBjbGFzcz0iQXNCbG9jayIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07U3ViYWN0aW9uPUVkaXRVc2VyO1VzZXJJRD1bJSBEYXRhLlVzZXJJRCB8IHVyaSAlXSI+WyUgRGF0YS5Vc2VyIHwgaHRtbCAlXTwvYT48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIERhdGEuQ29tbWVudCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgVHJhbnNsYXRlKERhdGEuQ2FsZW5kYXIpIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1Jlc3VsdFVzZXJSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICA8L3RhYmxlPgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdSZXN1bHRVc2VyVGFibGUiKSAlXQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3UmVzdWx0VXNlciIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1VwZGF0ZVVzZXIiKSAlXQogICAgPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIG5hbWU9IlVzZXJVcGRhdGUiIGNsYXNzPSJWYWxpZGF0ZSBQcmV2ZW50TXVsdGlwbGVTdWJtaXRzIj4KICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIiAvPgogICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlslIERhdGEuU3ViYWN0aW9uIHwgaHRtbCAlXSIgLz4KICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJVc2VySUQiIHZhbHVlPSJbJSBEYXRhLlVzZXJJRCB8IGh0bWwgJV0iIC8+CiAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWRkUGVyaW9kIiB2YWx1ZT0iIiAvPgogICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1Ym1pdFVzZXJEYXRhIiB2YWx1ZT0iIiAvPgoKICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiVXNlciBTZXR0aW5ncyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJOYW1lIj5bJSBUcmFuc2xhdGUoIk5hbWUiKSB8IGh0bWwgJV0gKFslIFRyYW5zbGF0ZSgiVXNlcm5hbWUiKSB8IGh0bWwgJV0pOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iVmFsdWUiPlslIERhdGEuVXNlckZ1bGxuYW1lIHwgaHRtbCAlXSAoWyUgRGF0YS5Vc2VyTG9naW4gfCBodG1sICVdKTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iRGVzY3JpcHRpb24iPlslIFRyYW5zbGF0ZSgiRGVzY3JpcHRpb24iKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJEZXNjcmlwdGlvbiIgaWQ9IkRlc2NyaXB0aW9uIiBjbGFzcz0iVzUwcGMiIHZhbHVlPSJbJSBEYXRhLkRlc2NyaXB0aW9uIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlNob3dPdmVydGltZSI+WyUgVHJhbnNsYXRlKCJVc2VyIGlzIGFsbG93ZWQgdG8gc2VlIG92ZXJ0aW1lcyIpIHwgaHRtbCAlXTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9IlNob3dPdmVydGltZSIgaWQ9IlNob3dPdmVydGltZSIgdmFsdWU9IjEiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlNob3cgT3ZlcnRpbWUiKSB8IGh0bWwgJV0iIFslIERhdGEuU2hvd092ZXJ0aW1lICVdIC8+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJDcmVhdGVQcm9qZWN0Ij5bJSBUcmFuc2xhdGUoIlVzZXIgaXMgYWxsb3dlZCB0byBjcmVhdGUgcHJvamVjdHMiKSB8IGh0bWwgJV08L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJDcmVhdGVQcm9qZWN0IiBpZD0iQ3JlYXRlUHJvamVjdCIgdmFsdWU9IjEiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkFsbG93IHByb2plY3QgY3JlYXRpb24iKSB8IGh0bWwgJV0iIFslIERhdGEuQ3JlYXRlUHJvamVjdCAlXSAvPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iQWxsb3dTa2lwIj5bJSBUcmFuc2xhdGUoIlVzZXIgaXMgYWxsb3dlZCB0byBza2lwIHRpbWUgYWNjb3VudGluZyIpIHwgaHRtbCAlXTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9IkFsbG93U2tpcCIgaWQ9IkFsbG93U2tpcCIgdmFsdWU9IjEiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkFsbG93IHRpbWUgYWNjb3VudGluZyBza2lwcGluZyIpIHwgaHRtbCAlXSIgWyUgRGF0YS5BbGxvd1NraXAgJV0gLz4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPlslIFRyYW5zbGF0ZSgiSWYgdGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQsIHRpbWUgYWNjb3VudGluZyBpcyBlZmZlY3RpdmVseSBvcHRpb25hbCBmb3IgdGhlIHVzZXIuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+WyUgVHJhbnNsYXRlKCJUaGVyZSB3aWxsIGJlIG5vIHdhcm5pbmdzIGFib3V0IG1pc3NpbmcgZW50cmllcyBhbmQgbm8gZW50cnkgZW5mb3JjZW1lbnQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iQ2FsZW5kYXIiPlslIFRyYW5zbGF0ZSgiQ2FsZW5kYXIiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuQ2FsZW5kYXJPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlRpbWUgU3BhbnMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CgogICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUgTm9Ib3ZlciBUaW1lQWNjb3VudGluZ1RhYmxlIj4KICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIlBlcmlvZCBCZWdpbiIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJQZXJpb2QgRW5kIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIkRheXMgb2YgVmFjYXRpb24iKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiSG91cnMgcGVyIFdlZWsiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiQXV0aG9yaXplZCBPdmVydGltZSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJTdGF0dXMiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQZXJpb2RPdmVydmlld1JvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9IkRhdGVTdGFydC1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV0iIG5hbWU9IkRhdGVTdGFydFtbJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV1dIiB2YWx1ZT0iWyUgRGF0YS5EYXRlU3RhcnQgfCBodG1sICVdIiBjbGFzcz0iIFZhbGlkYXRlX1JlcXVpcmVkIFslIERhdGEuRGF0ZVN0YXJ0SW52YWxpZCB8IGh0bWwgJV0iIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlN0YXJ0IERhdGUiKSB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRGF0ZVN0YXJ0LVslIERhdGEuUGVyaW9kIHwgaHRtbCAlXUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXSBbJSBUcmFuc2xhdGUoIlBsZWFzZSBpbnNlcnQgYSB2YWxpZCBkYXRlLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiRGF0ZVN0YXJ0SW52YWxpZCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRGF0ZVN0YXJ0LVslIERhdGEuUGVyaW9kIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJJbnZhbGlkIGRhdGUhIikgfCBodG1sICVdPC9wPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiRGF0ZVN0YXJ0SW52YWxpZCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkRhdGVTdGFydE1pc3NpbmdWYWx1ZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRGF0ZVN0YXJ0LVslIERhdGEuUGVyaW9kIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkRhdGVTdGFydE1pc3NpbmdWYWx1ZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iRGF0ZUVuZC1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV0iIG5hbWU9IkRhdGVFbmRbWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdXSIgdmFsdWU9IlslIERhdGEuRGF0ZUVuZCB8IGh0bWwgJV0iIGNsYXNzPSIgVmFsaWRhdGVfUmVxdWlyZWQgWyUgRGF0YS5EYXRlRW5kSW52YWxpZCB8IGh0bWwgJV0iIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkVuZCBEYXRlIikgfCBodG1sICVdIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkRhdGVFbmQtWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdIFslIFRyYW5zbGF0ZSgiUGxlYXNlIGluc2VydCBhIHZhbGlkIGRhdGUuIikgfCBodG1sICVdPC9wPjwvZGl2PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJEYXRlRW5kSW52YWxpZCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRGF0ZUVuZC1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV1TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiSW52YWxpZCBkYXRlISIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkRhdGVFbmRJbnZhbGlkIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiRGF0ZUVuZE1pc3NpbmdWYWx1ZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRGF0ZUVuZC1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV1TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJEYXRlRW5kTWlzc2luZ1ZhbHVlIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiRGF0ZUVuZEJlZm9yZURhdGVTdGFydCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRGF0ZUVuZC1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV1TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiUGVyaW9kIGVuZCBtdXN0IGJlIGFmdGVyIHBlcmlvZCBiZWdpbi4iKSB8IGh0bWwgJV08L3A+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJEYXRlRW5kQmVmb3JlRGF0ZVN0YXJ0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJMZWF2ZURheXMtWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdIiBuYW1lPSJMZWF2ZURheXNbWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdXSIgdmFsdWU9IlslIERhdGEuTGVhdmVEYXlzIHwgaHRtbCAlXSIgY2xhc3M9IkxlYXZlRGF5cyBWYWxpZGF0ZV9SZXF1aXJlZCBbJSBEYXRhLkxlYXZlRGF5c0ludmFsaWQgfCBodG1sICVdIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJMZWF2ZSBEYXlzIikgfCBodG1sICVdIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkxlYXZlRGF5cy1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV1FcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTGVhdmVEYXlzLVslIERhdGEuUGVyaW9kIHwgaHRtbCAlXVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJXZWVrbHlIb3Vycy1bJSBEYXRhLlBlcmlvZCB8IGh0bWwgJV0iIG5hbWU9IldlZWtseUhvdXJzW1slIERhdGEuUGVyaW9kIHwgaHRtbCAlXV0iIHZhbHVlPSJbJSBEYXRhLldlZWtseUhvdXJzIHwgaHRtbCAlXSIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiV2Vla2x5IEhvdXJzIikgfCBodG1sICVdIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9Ik92ZXJ0aW1lLVslIERhdGEuUGVyaW9kIHwgaHRtbCAlXSIgbmFtZT0iT3ZlcnRpbWVbWyUgRGF0YS5QZXJpb2QgfCBodG1sICVdXSIgdmFsdWU9IlslIERhdGEuT3ZlcnRpbWUgfCBodG1sICVdIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJPdmVydGltZSIpIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5QZXJpb2RTdGF0dXNPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJQZXJpb2RPdmVydmlld1JvdyIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJQZXJpb2RPdmVydmlld1Jvd05vRGF0YSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSI2Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIk5vIHRpbWUgcGVyaW9kcyBmb3VuZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJQZXJpb2RPdmVydmlld1Jvd05vRGF0YSIpICVdCiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgIDwvdGFibGU+CgogICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkFkZCB0aW1lIHBlcmlvZCIpIHwgaHRtbCAlXSIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiQWRkIHRpbWUgcGVyaW9kIikgfCBodG1sICVdIiBpZD0iQWRkUGVyaW9kIiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBQbHVzIFNwYWNpbmdUb3BTbWFsbCI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLXBsdXMtc3F1YXJlIj48L2k+IFslIFRyYW5zbGF0ZSgiQWRkIHRpbWUgcGVyaW9kIikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IlByaW1hcnkgQ2FsbEZvckFjdGlvbiIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJTdWJtaXQiKSB8IGh0bWwgJV0iIGlkPSJTdWJtaXRVc2VyRGF0YSI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNoZWNrLXNxdWFyZS1vIj48L2k+IFslIFRyYW5zbGF0ZSgiU3VibWl0IikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIm9yIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdIj5bJSBUcmFuc2xhdGUoIkNhbmNlbCIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9mb3JtPgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdVcGRhdGVVc2VyIikgJV0KICAgIDwvZGl2Pgo8L2Rpdj4KClslIFJlbmRlckJsb2NrRW5kKCJTZXR0aW5nIikgJV0K
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgo8ZGl2IGNsYXNzPSJNYWluQm94IEFSSUFSb2xlTWFpbiBMYXlvdXRGaXhlZFNpZGViYXIgU2lkZWJhckZpcnN0Ij4KICAgIDxoMSBjbGFzcz0iSGVhZGVyIj5bJSBUcmFuc2xhdGUoIlZpZXcgVGltZSBSZWNvcmQiKSB8IGh0bWwgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiVXNlciIpICVdCiAgICAgICAgLSBbJSBUcmFuc2xhdGUoIlZpZXcgb2YgIikgfCBodG1sICVdIFslIERhdGEuVXNlciB8IGh0bWwgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIlVzZXIiKSAlXQogICAgPC9oMT4KCiAgICA8ZGl2IGNsYXNzPSJTaWRlYmFyQ29sdW1uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiQWN0aW9ucyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iQWN0aW9uTGlzdCI+CiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3O1llYXI9WyUgRGF0YS5ZZWFyIHwgdXJpICVdO01vbnRoPVslIERhdGEuTW9udGggfCB1cmkgJV0iIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LWxlZnQiPjwvaT5bJSBUcmFuc2xhdGUoIkdvIHRvIG92ZXJ2aWV3IikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkRhdGUgTmF2aWdhdGlvbiIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Ik1vbnRoU2VsZWN0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iQXJyb3ciIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlByZXZpb3VzIGRheSIpIHwgaHRtbCAlXSIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07WWVhcj1bJSBEYXRhLlllYXJCYWNrIHwgdXJpICVdO01vbnRoPVslIERhdGEuTW9udGhCYWNrIHwgdXJpICVdO0RheT1bJSBEYXRhLkRheUJhY2sgfCB1cmkgJV07VXNlcklEPVslIERhdGEuVXNlcklEIHwgdXJpICVdIj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtbGVmdCI+PC9pPjwvYT4KICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iQXJyb3ciIHRpdGxlPSJbJSBUcmFuc2xhdGUoIk5leHQgZGF5IikgfCBodG1sICVdIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtZZWFyPVslIERhdGEuWWVhck5leHQgfCB1cmkgJV07TW9udGg9WyUgRGF0YS5Nb250aE5leHQgfCB1cmkgJV07RGF5PVslIERhdGEuRGF5TmV4dCB8IHVyaSAlXTtVc2VySUQ9WyUgRGF0YS5Vc2VySUQgfCB1cmkgJV0iPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1yaWdodCI+PC9pPjwvYT4KICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlllYXIgfCBodG1sICVdLVslIERhdGEuTW9udGggfCBodG1sICVdLVslIERhdGEuRGF5IHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbmFtZT0iRGF0ZVNlbGVjdGlvbiIgY2xhc3M9IlZhbGlkYXRlIiBpZD0iRGF0ZVNlbGVjdGlvbkZvcm0iPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iVmlldyIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJVc2VySUQiICAgIHZhbHVlPSJbJSBEYXRhLlVzZXJJRCB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5EYXRlU2VsZWN0aW9uICVdCiAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBpZD0iTmF2aWdhdGlvblNlbGVjdCIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIFNwYWNpbmdUb3AiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1hcnJvdy1jaXJjbGUtby1yaWdodCI+PC9pPlslIFRyYW5zbGF0ZSgiR28gdG8gZGF0ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iQ29udGVudENvbHVtbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkRhdGUiKSB8IGh0bWwgJV06IFslIFRyYW5zbGF0ZShEYXRhLldlZWtkYXlfdG9fVGV4dCkgfCBodG1sICVdIFslIERhdGEuRGF0ZSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSBEYXRhVGFibGVOb0hpZ2hsaWdodCI+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJQcm9qZWN0IikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlRhc2siKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiUmVtYXJrIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlN0YXJ0IikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkVuZCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJQZXJpb2QiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVbml0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIERhdGEuUHJvamVjdCB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIERhdGEuQWN0aW9uIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5SZW1hcmsgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPlslIERhdGEuU3RhcnRUaW1lIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij5bJSBEYXRhLkVuZFRpbWUgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iUmlnaHQiPlslIERhdGEuUGVyaW9kIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJVbml0IikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIlRvdGFsIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjQiPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHN0cm9uZz5bJSBUcmFuc2xhdGUoIlRvdGFsIikgfCBodG1sICVdOjwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlJpZ2h0Ij48c3Ryb25nPlslIERhdGEuVG90YWwgfCBodG1sICVdPC9zdHJvbmc+PC90ZD4KCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJUb3RhbCIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOb0RhdGFGb3VuZCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSI2Ij5bJSBUcmFuc2xhdGUoIk5vIGRhdGEgZm91bmQgZm9yIHRoaXMgZGF5LiIpIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJOb0RhdGFGb3VuZCIpICVdCgogICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICA8L3RhYmxlPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3RoZXJUaW1lcyIpICVdCiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgdmFsdWU9Ii0yIiBpZD0iTGVhdmVEYXkiIG5hbWU9IkxlYXZlRGF5IiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJPbiB2YWNhdGlvbiIpIHwgaHRtbCAlXSIgWyUgRGF0YS5MZWF2ZURheSAlXSBkaXNhYmxlZCAvPgogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkxlYXZlRGF5Ij5bJSBUcmFuc2xhdGUoIk9uIHZhY2F0aW9uIikgfCBodG1sICVdPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIHZhbHVlPSItMSIgaWQ9IlNpY2siIG5hbWU9IlNpY2siIHRpdGxlPSJbJSBUcmFuc2xhdGUoIk9uIHNpY2sgbGVhdmUiKSB8IGh0bWwgJV0iIFslIERhdGEuU2ljayAlXSBkaXNhYmxlZCAvPgogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlNpY2siPlslIFRyYW5zbGF0ZSgiT24gc2ljayBsZWF2ZSIpIHwgaHRtbCAlXTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iLTMiIGlkPSJPdmVydGltZSIgbmFtZT0iT3ZlcnRpbWUiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIk9uIG92ZXJ0aW1lIGxlYXZlIikgfCBodG1sICVdIiBbJSBEYXRhLk92ZXJ0aW1lICVdIGRpc2FibGVkIC8+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iT3ZlcnRpbWUiPlslIFRyYW5zbGF0ZSgiT24gb3ZlcnRpbWUgbGVhdmUiKSB8IGh0bWwgJV08L2xhYmVsPgogICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdGhlclRpbWVzIikgJV0KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrU3RhcnQoIlZhY2F0aW9uIikgJV0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlNwYWNpbmdUb3BTbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuVmFjYXRpb24gfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJWYWNhdGlvbiIpICVdCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2Pgo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpOb3RpZmljYXRpb246OlRpbWVBY2NvdW50aW5nOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6TGFuZ3VhZ2UgcXcoVHJhbnNsYXRhYmxlKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJywKICAgICdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0JywKKTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBnZXQgVXNlcklEIHBhcmFtCiAgICAkU2VsZi0+e1VzZXJJRH0gPSAkUGFyYW17VXNlcklEfSB8fCBkaWUgIkdvdCBubyBVc2VySUQhIjsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkRGF0ZVRpbWVPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpOwogICAgbXkgJERhdGVUaW1lU2V0dGluZ3MgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwoKICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgIG15ICVVc2VyID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyQ3VycmVudFBlcmlvZEdldCgKICAgICAgICBZZWFyICA9PiAkRGF0ZVRpbWVTZXR0aW5ncy0+e1llYXJ9LAogICAgICAgIE1vbnRoID0+ICREYXRlVGltZVNldHRpbmdzLT57TW9udGh9LAogICAgICAgIERheSAgID0+ICREYXRlVGltZVNldHRpbmdzLT57RGF5fSwKICAgICk7CiAgICBpZiAoICRVc2VyeyAkU2VsZi0+e1VzZXJJRH0gfSApIHsKICAgICAgICBteSAlSW5jb21wbGV0ZVdvcmtpbmdEYXlzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNDb21wbGV0bmVzc0NoZWNrKAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgcmVkaXJlY3QgaWYgaW5jb21wbGV0ZSB3b3JraW5nIGRheSBhcmUgb3V0IG9mIHJhbmdlCiAgICAgICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKICAgICAgICBteSAkUHJpb3JpdHkgICAgID0gKCAkSW5jb21wbGV0ZVdvcmtpbmdEYXlze0VuZm9yY2VJbnNlcnR9ICkgPyAnRXJyb3InIDogJ1dhcm5pbmcnOwogICAgICAgIGlmICggJEluY29tcGxldGVXb3JraW5nRGF5c3tXYXJuaW5nfSB8fCAkSW5jb21wbGV0ZVdvcmtpbmdEYXlze0VuZm9yY2VJbnNlcnR9ICkgewogICAgICAgICAgICByZXR1cm4gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpLT5Ob3RpZnkoCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAkUHJpb3JpdHksCiAgICAgICAgICAgICAgICBMaW5rICAgICA9PiAkTGF5b3V0T2JqZWN0LT57QmFzZWxpbmt9IC4gJ0FjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nRWRpdCcsCiAgICAgICAgICAgICAgICBJbmZvICAgICA9PiBUcmFuc2xhdGFibGUoJ1BsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzIScpLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gJyc7Cn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpUb29sQmFyOjpJbmNvbXBsZXRlV29ya2luZ0RheXM7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpMYW5ndWFnZSBxdyhUcmFuc2xhdGFibGUpOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJywKKTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICRTZWxmLT57VXNlcklEfSA9ICRQYXJhbXtVc2VySUR9IHx8IGRpZSAiR290IG5vIFVzZXJJRCEiOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgRGVmaW5lIGFjdGlvbiBhbmQgZ2V0IGl0cyBmcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uLgogICAgbXkgJEFjdGlvbiA9ICdBZ2VudFRpbWVBY2NvdW50aW5nRWRpdCc7CiAgICBteSAkQ29uZmlnID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdGcm9udGVuZDo6TW9kdWxlJyktPnskQWN0aW9ufTsKCiAgICAjIERvIG5vdCBzaG93IGljb24gaWYgZnJvbnRlbmQgbW9kdWxlIGlzIG5vdCByZWdpc3RlcmVkLgogICAgcmV0dXJuIGlmICEkQ29uZmlnOwoKICAgICMgR2V0IGdyb3VwIG5hbWVzIGZyb20gY29uZmlnLgogICAgbXkgQEdyb3VwTmFtZXMgPSBAeyAkQ29uZmlnLT57R3JvdXB9IHx8IFtdIH07CgogICAgIyBJZiBhY2Nlc3MgaXMgcmVzdHJpY3RlZCwgYWxsb3cgYWNjZXNzIG9ubHkgaWYgdXNlciBoYXMgYXBwcm9wcmlhdGUgcGVybWlzc2lvbnMgaW4gY29uZmlndXJlZCBncm91cChzKS4KICAgIGlmIChAR3JvdXBOYW1lcykgewoKICAgICAgICBteSAkR3JvdXBPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKTsKCiAgICAgICAgIyBHZXQgdXNlciBncm91cHMsIHdoZXJlIHRoZSB1c2VyIGhhcyB0aGUgYXBwcm9wcmlhdGUgcGVybWlzc2lvbnMuCiAgICAgICAgbXkgJUdyb3VwTGlzdCA9ICRHcm91cE9iamVjdC0+R3JvdXBNZW1iZXJMaXN0KAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICBUeXBlICAgPT4gJ3J3JywKICAgICAgICAgICAgUmVzdWx0ID0+ICdIQVNIJywKICAgICAgICApOwoKICAgICAgICBteSAkUGVybWlzc2lvbiA9IDA7CgogICAgICAgIEdST1VQOgogICAgICAgIGZvciBteSAkR3JvdXBOYW1lIChAR3JvdXBOYW1lcykgewogICAgICAgICAgICBuZXh0IEdST1VQIGlmICEkR3JvdXBOYW1lOwoKICAgICAgICAgICAgIyBHZXQgdGhlIGdyb3VwIElELgogICAgICAgICAgICBteSAkR3JvdXBJRCA9ICRHcm91cE9iamVjdC0+R3JvdXBMb29rdXAoCiAgICAgICAgICAgICAgICBHcm91cCA9PiAkR3JvdXBOYW1lLAogICAgICAgICAgICApOwogICAgICAgICAgICBuZXh0IEdST1VQIGlmICEkR3JvdXBJRDsKCiAgICAgICAgICAgICMgU3RvcCBjaGVja2luZyBpZiBtZW1iZXJzaGlwIGluIGF0IGxlYXN0IG9uZSBncm91cCBpcyBmb3VuZC4KICAgICAgICAgICAgaWYgKCAkR3JvdXBMaXN0eyRHcm91cElEfSApIHsKICAgICAgICAgICAgICAgICRQZXJtaXNzaW9uID0gMTsKICAgICAgICAgICAgICAgIGxhc3QgR1JPVVA7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgRGVueSBhY2Nlc3MgaWYgdGhlIGFnZW50IGRvZXNuJ3QgaGF2ZSB0aGUgYXBwcm9wcmlhdGUgcGVybWlzc2lvbnMuCiAgICAgICAgcmV0dXJuIGlmICEkUGVybWlzc2lvbjsKICAgIH0KCiAgICBteSAkRGF0ZVRpbWVPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpOwogICAgbXkgJERhdGVUaW1lU2V0dGluZ3MgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwoKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgIG15ICVVc2VyQ3VycmVudFBlcmlvZCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckN1cnJlbnRQZXJpb2RHZXQoCiAgICAgICAgWWVhciAgPT4gJERhdGVUaW1lU2V0dGluZ3MtPntZZWFyfSwKICAgICAgICBNb250aCA9PiAkRGF0ZVRpbWVTZXR0aW5ncy0+e01vbnRofSwKICAgICAgICBEYXkgICA9PiAkRGF0ZVRpbWVTZXR0aW5ncy0+e0RheX0sCiAgICApOwoKICAgICMgRGVueSBhY2Nlc3MsIGlmIHVzZXIgaGFzIG5vIHZhbGlkIHBlcmlvZC4KICAgIHJldHVybiBpZiAhJFVzZXJDdXJyZW50UGVyaW9keyAkU2VsZi0+e1VzZXJJRH0gfTsKCiAgICAjIEdldCB0aGUgbnVtYmVyIG9mIGluY29tcGxldGUgd29ya2luZyBkYXlzLgogICAgbXkgJENvdW50ICAgICAgICAgICAgICAgICA9IDA7CiAgICBteSAlSW5jb21wbGV0ZVdvcmtpbmdEYXlzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNDb21wbGV0bmVzc0NoZWNrKAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgIFlFQVJJRDoKICAgIGZvciBteSAkWWVhcklEICggc29ydCBrZXlzICV7ICRJbmNvbXBsZXRlV29ya2luZ0RheXN7SW5jb21wbGV0ZX0gfSApIHsKCiAgICAgICAgbmV4dCBZRUFSSUQgaWYgISRZZWFySUQ7CiAgICAgICAgbmV4dCBZRUFSSUQgaWYgISRJbmNvbXBsZXRlV29ya2luZ0RheXN7SW5jb21wbGV0ZX17JFllYXJJRH07CiAgICAgICAgbmV4dCBZRUFSSUQgaWYgcmVmICRJbmNvbXBsZXRlV29ya2luZ0RheXN7SW5jb21wbGV0ZX17JFllYXJJRH0gbmUgJ0hBU0gnOwoKICAgICAgICAjIEV4dHJhY3QgeWVhci4KICAgICAgICBteSAlWWVhciA9ICV7ICRJbmNvbXBsZXRlV29ya2luZ0RheXN7SW5jb21wbGV0ZX17JFllYXJJRH0gfTsKCiAgICAgICAgTU9OVEg6CiAgICAgICAgZm9yIG15ICRNb250aElEICggc29ydCBrZXlzICVZZWFyICkgewoKICAgICAgICAgICAgbmV4dCBNT05USCBpZiAhJE1vbnRoSUQ7CiAgICAgICAgICAgIG5leHQgTU9OVEggaWYgISRZZWFyeyRNb250aElEfTsKICAgICAgICAgICAgbmV4dCBNT05USCBpZiByZWYgJFllYXJ7JE1vbnRoSUR9IG5lICdIQVNIJzsKCiAgICAgICAgICAgICMgZXh0cmFjdCBtb250aAogICAgICAgICAgICBteSAlTW9udGggPSAleyAkWWVhcnskTW9udGhJRH0gfTsKCiAgICAgICAgICAgICRDb3VudCArPSBzY2FsYXIga2V5cyAlTW9udGg7CgogICAgICAgICAgICAjIFJlbW92ZSBjdXJyZW50IGRheSBiZWNhdXNlIGl0IG1ha2VzIG5vIHNlbnNlIHRvIHNob3cgdGhlIGN1cnJlbnQgZGF5IGFzIGluY29tcGxldGUuCiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICREYXRlVGltZVNldHRpbmdzLT57WWVhcn0gZXEgJFllYXJJRAogICAgICAgICAgICAgICAgJiYgJE1vbnRoSUQgZXEgc3ByaW50ZiggJyUwMmQnLCAkRGF0ZVRpbWVTZXR0aW5ncy0+e01vbnRofSApCiAgICAgICAgICAgICAgICAmJiBkZWZpbmVkICRNb250aHsgc3ByaW50ZiggJyUwMmQnLCAkRGF0ZVRpbWVTZXR0aW5ncy0+e0RheX0gKSB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICRDb3VudC0tOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBHZXQgdG9vbGJhciBvYmplY3QgcGFyYW1ldGVycy4KICAgIG15ICRDbGFzcyA9ICRQYXJhbXtDb25maWd9LT57Q3NzQ2xhc3N9OwogICAgbXkgJFRleHQgID0gVHJhbnNsYXRhYmxlKCdJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cycpOwogICAgbXkgJFVSTCAgID0gJExheW91dE9iamVjdC0+e0Jhc2VsaW5rfTsKICAgIG15ICRJY29uICA9ICRQYXJhbXtDb25maWd9LT57SWNvbn07CgogICAgcmV0dXJuICgpIGlmICEkQ291bnQ7CgogICAgbXkgJVJldHVybiA9ICgKICAgICAgICAxMDAwODEwID0+IHsKICAgICAgICAgICAgQmxvY2sgICAgICAgPT4gJ1Rvb2xCYXJJdGVtJywKICAgICAgICAgICAgRGVzY3JpcHRpb24gPT4gJFRleHQsCiAgICAgICAgICAgIENvdW50ICAgICAgID0+ICRDb3VudCwKICAgICAgICAgICAgQ2xhc3MgICAgICAgPT4gJENsYXNzLAogICAgICAgICAgICBJY29uICAgICAgICA9PiAkSWNvbiwKICAgICAgICAgICAgTGluayAgICAgICAgPT4gJFVSTCAuICdBY3Rpb249JyAuICRBY3Rpb24sCiAgICAgICAgICAgIEFjY2Vzc0tleSAgID0+ICcnLAogICAgICAgIH0sCiAgICApOwoKICAgIHJldHVybiAlUmV0dXJuOwp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgo8b3B0aW9uIHZhbHVlPSJ7eyBWYWx1ZSB9fSIge3sgInNlbGVjdGVkIiBpZiBTZWxlY3RlZCB9fT57eyBUZXh0IH19PC9vcHRpb24+Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgo8c3BhbiBjbGFzcz0iQUpBWExvYWRlciI+PC9zcGFuPgo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWU7CnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyggOmFsbCApOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEQicsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VXNlcicsCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nIC0gdGltZSBhY2NvdW50aW5nIGxpYgoKPWhlYWQxIERFU0NSSVBUSU9OCgpBbGwgdGltZSBhY2NvdW50aW5nIGZ1bmN0aW9ucwoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1oZWFkMiBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlcjsKICAgIGxvY2FsICRLZXJuZWw6Ok9NID0gS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXItPm5ldygpOwogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIG15ICREYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpOwoKICAgICRTZWxmLT57VGltZVpvbmV9ID0gJFBhcmFte1RpbWVab25lfQogICAgICAgIHx8ICRQYXJhbXtVc2VyVGltZVpvbmV9CiAgICAgICAgfHwgJERhdGVUaW1lT2JqZWN0LT5PVFJTVGltZVpvbmVHZXQoKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1oZWFkMiBVc2VyQ3VycmVudFBlcmlvZEdldCgpCgpyZXR1cm5zIGEgaGFzaCB3aXRoIHRoZSBjdXJyZW50IHBlcmlvZCBkYXRhIG9mIHRoZSBzcGVjaWZpZWQgdXNlcgoKICAgIG15ICVVc2VyRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckN1cnJlbnRQZXJpb2RHZXQoCiAgICAgICAgWWVhciAgPT4gJzIwMDUnLAogICAgICAgIE1vbnRoID0+ICcxMicsCiAgICAgICAgRGF5ICAgPT4gJzI0JywKICAgICk7CgpUaGUgcmV0dXJuZWQgaGFzaCBjb250YWlucyB0aGUgZm9sbG93aW5nIGVsZW1lbnRzOgoKICAgICVVc2VyRGF0YSA9ICgKICAgICAgICAxID0+IHsKICAgICAgICAgICAgVXNlcklEICAgICAgPT4gMSwKICAgICAgICAgICAgUGVyaW9kICAgICAgPT4gMTIzLAogICAgICAgICAgICBEYXRlU3RhcnQgICA9PiAnMjAwNS0xMi0yNCcsCiAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICcyMDA1LTEyLTI0JywKICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gNDAuNCwKICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gMTIsCiAgICAgICAgICAgIE92ZXJUaW1lICAgID0+IDM0LAogICAgICAgIH0sCiAgICApOwoKPWN1dAoKc3ViIFVzZXJDdXJyZW50UGVyaW9kR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgcGFyYW1zCiAgICBmb3IgbXkgJE5lZWRlZFBhcmFtIChxdyhZZWFyIE1vbnRoIERheSkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZFBhcmFtfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlVzZXJDdXJyZW50UGVyaW9kR2V0OiBOZWVkICROZWVkZWRQYXJhbSEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGJ1aWxkIGRhdGUgc3RyaW5nIGZvciBnaXZlbiBwYXJhbXMKICAgIG15ICREYXRlID0gc3ByaW50ZiAiJTA0ZC0lMDJkLSUwMmQgMDA6MDA6MDAiLCAkUGFyYW17WWVhcn0sICRQYXJhbXtNb250aH0sICRQYXJhbXtEYXl9OwoKICAgICMgY2hlY2sgY2FjaGUKICAgIGlmICggJFNlbGYtPnsnQ2FjaGU6OlVzZXJDdXJyZW50UGVyaW9kR2V0J317JERhdGV9ICkgewoKICAgICAgICByZXR1cm4gJXsgJFNlbGYtPnsnQ2FjaGU6OlVzZXJDdXJyZW50UGVyaW9kR2V0J317JERhdGV9IH07CiAgICB9CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGRiIHNlbGVjdAogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIHVzZXJfaWQsIHByZWZlcmVuY2VfcGVyaW9kLCBkYXRlX3N0YXJ0LCBkYXRlX2VuZCwgd2Vla2x5X2hvdXJzLCBsZWF2ZV9kYXlzLAogICAgICAgICAgICAgICAgb3ZlcnRpbWUKICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfdXNlcl9wZXJpb2QKICAgICAgICAgICAgV0hFUkUgZGF0ZV9zdGFydCA8PSA/CiAgICAgICAgICAgICAgICBBTkQgZGF0ZV9lbmQgID49ID8KICAgICAgICAgICAgICAgIEFORCBzdGF0dXMgPSA/JywKICAgICAgICBCaW5kID0+IFsgXCREYXRlLCBcJERhdGUsIFwxLCBdLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSBkYXRhCiAgICBteSAlRGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIG15ICRVc2VyUmVmID0gewogICAgICAgICAgICBVc2VySUQgICAgICA9PiAkUm93WzBdLAogICAgICAgICAgICBQZXJpb2QgICAgICA9PiAkUm93WzFdLAogICAgICAgICAgICBEYXRlU3RhcnQgICA9PiBzdWJzdHIoICRSb3dbMl0sIDAsIDEwICksCiAgICAgICAgICAgIERhdGVFbmQgICAgID0+IHN1YnN0ciggJFJvd1szXSwgMCwgMTAgKSwKICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gJFJvd1s0XSwKICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gJFJvd1s1XSwKICAgICAgICAgICAgT3ZlcnRpbWUgICAgPT4gJFJvd1s2XSwKICAgICAgICB9OwogICAgICAgICREYXRheyAkUm93WzBdIH0gPSAkVXNlclJlZjsKICAgIH0KCiAgICAjIGNoZWNrIGZvciB2YWxpZCB1c2VyIGRhdGEKICAgIHJldHVybiBpZiAhJURhdGE7CgogICAgIyBzdG9yZSB1c2VyIGRhdGEgaW4gY2FjaGUKICAgICRTZWxmLT57J0NhY2hlOjpVc2VyQ3VycmVudFBlcmlvZEdldCd9eyREYXRlfSA9IFwlRGF0YTsKCiAgICByZXR1cm4gJURhdGE7Cn0KCj1oZWFkMiBVc2VyUmVwb3J0aW5nKCkKCnJldHVybnMgYSBoYXNoIHdpdGggaW5mb3JtYXRpb24gYWJvdXQgbGVhdmUgZGF5cywgb3ZlcnRpbWVzLAp3b3JraW5nIGhvdXJzIGV0Yy4gb2YgYWxsIHVzZXJzCgogICAgbXkgJURhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJSZXBvcnRpbmcoCiAgICAgICAgWWVhciAgPT4gJzIwMDUnLAogICAgICAgIE1vbnRoID0+ICcxMicsCiAgICAgICAgRGF5ICAgPT4gJzEyJywgICAgICAjIE9wdGlvbmFsCiAgICApOwoKPWN1dAoKc3ViIFVzZXJSZXBvcnRpbmcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBsb2cgb2JqZWN0CiAgICBteSAkTG9nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpOwoKICAgICMgY2hlY2sgbmVlZGVkIHBhcmFtcwogICAgZm9yIG15ICROZWVkZWRQYXJhbSAocXcoWWVhciBNb250aCBEYXkpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWRQYXJhbX0gJiYgJE5lZWRlZFBhcmFtIG5lICdEYXknICkgewogICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlVzZXJSZXBvcnRpbmc6IE5lZWQgJE5lZWRlZFBhcmFtISIKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayB2YWxpZCBkYXRlIHZhbHVlcwogICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICBZZWFyICA9PiAkUGFyYW17WWVhcn0sCiAgICAgICAgICAgIE1vbnRoID0+ICRQYXJhbXtNb250aH0sCiAgICAgICAgICAgIERheSAgID0+ICRQYXJhbXtEYXl9IHx8IDEsCiAgICAgICAgfSwKICAgICk7CgogICAgcmV0dXJuIGlmICEkRGF0ZVRpbWVPYmplY3Q7CgogICAgIyBnZXQgZGF5cyBvZiBtb250aCBpZiBub3QgcHJvdmlkZWQKICAgIG15ICRMYXN0RGF5T2ZNb250aCA9ICREYXRlVGltZU9iamVjdC0+TGFzdERheU9mTW9udGhHZXQoKTsKICAgICRQYXJhbXtEYXl9IHx8PSAkTGFzdERheU9mTW9udGgtPntEYXl9OwoKICAgIG15ICVVc2VyQ3VycmVudFBlcmlvZCA9ICRTZWxmLT5Vc2VyQ3VycmVudFBlcmlvZEdldCglUGFyYW0pOwogICAgbXkgJFllYXJTdGFydCAgICAgICAgID0gMTk3MDsKICAgIG15ICRNb250aFN0YXJ0ICAgICAgICA9IDE7CiAgICBteSAkRGF5U3RhcnQgICAgICAgICAgPSAxOwogICAgbXkgJFllYXJFbmQgICAgICAgICAgID0gJFBhcmFte1llYXJ9OwogICAgbXkgJE1vbnRoRW5kICAgICAgICAgID0gJFBhcmFte01vbnRofTsKICAgIG15ICREYXlFbmQgICAgICAgICAgICA9ICRQYXJhbXtEYXl9OwoKICAgIG15ICVEYXRhOwoKICAgIFVTRVJJRDoKICAgIGZvciBteSAkVXNlcklEICggc29ydCBrZXlzICVVc2VyQ3VycmVudFBlcmlvZCApIHsKCiAgICAgICAgaWYgKCAkVXNlckN1cnJlbnRQZXJpb2R7JFVzZXJJRH0tPntEYXRlU3RhcnR9ID1+IG17IFxBIChcZHs0fSktKFxkezJ9KS0oXGR7Mn0pIH14bXMgKSB7CiAgICAgICAgICAgICRZZWFyU3RhcnQgID0gJDE7CiAgICAgICAgICAgICRNb250aFN0YXJ0ID0gJDI7CiAgICAgICAgICAgICREYXlTdGFydCAgID0gJDM7CiAgICAgICAgfQoKICAgICAgICBteSAkRGF0ZVRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgICAgIFllYXIgID0+ICRZZWFyU3RhcnQsCiAgICAgICAgICAgICAgICBNb250aCA9PiAkTW9udGhTdGFydCwKICAgICAgICAgICAgICAgIERheSAgID0+ICREYXlTdGFydCwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICBpZiAoICEkRGF0ZVRpbWVPYmplY3QgKSB7CgogICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnbm90aWNlJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdVc2VyUmVwb3J0aW5nOiBJbnZhbGlkIHN0YXJ0IGRhdGUgZm9yIHVzZXIgJwogICAgICAgICAgICAgICAgICAgIC4gIiRVc2VySUQ6ICRVc2VyQ3VycmVudFBlcmlvZHskVXNlcklEfXtEYXRlU3RhcnR9IiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG5leHQgVVNFUklEOwogICAgICAgIH0KCiAgICAgICAgbXkgJUN1cnJlbnRVc2VyRGF0YSA9ICgKICAgICAgICAgICAgTGVhdmVEYXRlICAgICAgICA9PiAwLAogICAgICAgICAgICBTaWNrICAgICAgICAgICAgID0+IDAsCiAgICAgICAgICAgIE92ZXJ0aW1lICAgICAgICAgPT4gMCwKICAgICAgICAgICAgVGFyZ2V0U3RhdGUgICAgICA9PiAwLAogICAgICAgICAgICBMZWF2ZURheVRvdGFsICAgID0+IDAsCiAgICAgICAgICAgIFNpY2tUb3RhbCAgICAgICAgPT4gMCwKICAgICAgICAgICAgU2lja1RvdGFsICAgICAgICA9PiAwLAogICAgICAgICAgICBUYXJnZXRTdGF0ZVRvdGFsID0+IDAsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJENhbGVuZGFyID0geyAkU2VsZi0+VXNlckdldCggVXNlcklEID0+ICRVc2VySUQgKSB9LT57Q2FsZW5kYXJ9OwoKICAgICAgICBZRUFSOgogICAgICAgIGZvciBteSAkWWVhciAoICRZZWFyU3RhcnQgLi4gJFllYXJFbmQgKSB7CgogICAgICAgICAgICBteSAkTW9udGhTdGFydFBvaW50ID0gJFllYXIgPT0gJFllYXJTdGFydCA/ICRNb250aFN0YXJ0IDogMTsKICAgICAgICAgICAgbXkgJE1vbnRoRW5kUG9pbnQgICA9ICRZZWFyID09ICRZZWFyRW5kICAgPyAkTW9udGhFbmQgICA6IDEyOwoKICAgICAgICAgICAgTU9OVEg6CiAgICAgICAgICAgIGZvciBteSAkTW9udGggKCAkTW9udGhTdGFydFBvaW50IC4uICRNb250aEVuZFBvaW50ICkgewoKICAgICAgICAgICAgICAgIG15ICREYXlTdGFydFBvaW50ID0KICAgICAgICAgICAgICAgICAgICAkWWVhciA9PSAkWWVhclN0YXJ0ICYmICRNb250aCA9PSAkTW9udGhTdGFydAogICAgICAgICAgICAgICAgICAgID8gJERheVN0YXJ0CiAgICAgICAgICAgICAgICAgICAgOiAxOwoKICAgICAgICAgICAgICAgIG15ICREYXlFbmRQb2ludDsKCiAgICAgICAgICAgICAgICBpZiAoICRZZWFyID09ICRZZWFyRW5kICYmICRNb250aCA9PSAkTW9udGhFbmQgKSB7CiAgICAgICAgICAgICAgICAgICAgJERheUVuZFBvaW50ID0gJERheUVuZDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICREYXlFbmRQb2ludCA9ICRTZWxmLT5EYXlzSW5Nb250aCggJFllYXIsICRNb250aCApOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERBWToKICAgICAgICAgICAgICAgIGZvciBteSAkRGF5ICggJERheVN0YXJ0UG9pbnQgLi4gJERheUVuZFBvaW50ICkgewoKICAgICAgICAgICAgICAgICAgICBteSAlV29ya2luZ1VuaXQgPSAkU2VsZi0+V29ya2luZ1VuaXRzR2V0KAogICAgICAgICAgICAgICAgICAgICAgICBZZWFyICAgPT4gJFllYXIsCiAgICAgICAgICAgICAgICAgICAgICAgIE1vbnRoICA9PiAkTW9udGgsCiAgICAgICAgICAgICAgICAgICAgICAgIERheSAgICA9PiAkRGF5LAogICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFVzZXJJRCwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICBteSAkTGVhdmVEYXkgICAgPSAwOwogICAgICAgICAgICAgICAgICAgIG15ICRTaWNrICAgICAgICA9IDA7CiAgICAgICAgICAgICAgICAgICAgbXkgJE92ZXJ0aW1lICAgID0gMDsKICAgICAgICAgICAgICAgICAgICBteSAkVGFyZ2V0U3RhdGUgPSAwOwoKICAgICAgICAgICAgICAgICAgICBpZiAoICRXb3JraW5nVW5pdHtMZWF2ZURheX0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRDdXJyZW50VXNlckRhdGF7TGVhdmVEYXlUb3RhbH0rKzsKICAgICAgICAgICAgICAgICAgICAgICAgJExlYXZlRGF5ID0gMTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzaWYgKCAkV29ya2luZ1VuaXR7U2lja30gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRDdXJyZW50VXNlckRhdGF7U2lja1RvdGFsfSsrOwogICAgICAgICAgICAgICAgICAgICAgICAkU2ljayA9IDE7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2lmICggJFdvcmtpbmdVbml0e092ZXJ0aW1lfSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJEN1cnJlbnRVc2VyRGF0YXtPdmVydGltZVRvdGFsfSsrOwogICAgICAgICAgICAgICAgICAgICAgICAkT3ZlcnRpbWUgPSAxOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgJEN1cnJlbnRVc2VyRGF0YXtXb3JraW5nSG91cnNUb3RhbH0gKz0gJFdvcmtpbmdVbml0e1RvdGFsfTsKICAgICAgICAgICAgICAgICAgICBteSAkVmFjYXRpb25DaGVjayA9ICRTZWxmLT5WYWNhdGlvbkNoZWNrKAogICAgICAgICAgICAgICAgICAgICAgICBZZWFyICAgICA9PiAkWWVhciwKICAgICAgICAgICAgICAgICAgICAgICAgTW9udGggICAgPT4gJE1vbnRoLAogICAgICAgICAgICAgICAgICAgICAgICBEYXkgICAgICA9PiAkRGF5LAogICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhciA9PiAkQ2FsZW5kYXIgfHwgJycsCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICBteSAkV2Vla2RheSA9ICRTZWxmLT5EYXlPZldlZWsoICRZZWFyLCAkTW9udGgsICREYXkgKTsKICAgICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgICAgICRXZWVrZGF5ICE9IDYKICAgICAgICAgICAgICAgICAgICAgICAgJiYgJFdlZWtkYXkgIT0gNwogICAgICAgICAgICAgICAgICAgICAgICAmJiAhJFZhY2F0aW9uQ2hlY2sKICAgICAgICAgICAgICAgICAgICAgICAgJiYgISRTaWNrCiAgICAgICAgICAgICAgICAgICAgICAgICYmICEkTGVhdmVEYXkKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJEN1cnJlbnRVc2VyRGF0YXtUYXJnZXRTdGF0ZVRvdGFsfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKz0gJFVzZXJDdXJyZW50UGVyaW9keyRVc2VySUR9e1dlZWtseUhvdXJzfSAvIDU7CiAgICAgICAgICAgICAgICAgICAgICAgICRUYXJnZXRTdGF0ZSA9ICRVc2VyQ3VycmVudFBlcmlvZHskVXNlcklEfXtXZWVrbHlIb3Vyc30gLyA1OwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaWYgKCAkTW9udGggPT0gJE1vbnRoRW5kICYmICRZZWFyID09ICRZZWFyRW5kICkgewogICAgICAgICAgICAgICAgICAgICAgICAkQ3VycmVudFVzZXJEYXRhe1RhcmdldFN0YXRlfSAgKz0gJFRhcmdldFN0YXRlOwogICAgICAgICAgICAgICAgICAgICAgICAkQ3VycmVudFVzZXJEYXRhe1dvcmtpbmdIb3Vyc30gKz0gJFdvcmtpbmdVbml0e1RvdGFsfTsKICAgICAgICAgICAgICAgICAgICAgICAgJEN1cnJlbnRVc2VyRGF0YXtMZWF2ZURheX0gICAgICs9ICRMZWF2ZURheTsKICAgICAgICAgICAgICAgICAgICAgICAgJEN1cnJlbnRVc2VyRGF0YXtTaWNrfSAgICAgICAgICs9ICRTaWNrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgJEN1cnJlbnRVc2VyRGF0YXtPdmVydGltZX0gICAgICA9ICRDdXJyZW50VXNlckRhdGF7V29ya2luZ0hvdXJzfSAtICRDdXJyZW50VXNlckRhdGF7VGFyZ2V0U3RhdGV9OwogICAgICAgICRDdXJyZW50VXNlckRhdGF7T3ZlcnRpbWVUb3RhbH0gPSAkVXNlckN1cnJlbnRQZXJpb2R7JFVzZXJJRH17T3ZlcnRpbWV9CiAgICAgICAgICAgICsgJEN1cnJlbnRVc2VyRGF0YXtXb3JraW5nSG91cnNUb3RhbH0KICAgICAgICAgICAgLSAkQ3VycmVudFVzZXJEYXRhe1RhcmdldFN0YXRlVG90YWx9OwogICAgICAgICRDdXJyZW50VXNlckRhdGF7T3ZlcnRpbWVVbnRpbH0gICAgID0gJEN1cnJlbnRVc2VyRGF0YXtPdmVydGltZVRvdGFsfSAtICRDdXJyZW50VXNlckRhdGF7T3ZlcnRpbWV9OwogICAgICAgICRDdXJyZW50VXNlckRhdGF7TGVhdmVEYXlSZW1haW5pbmd9ID0gJFVzZXJDdXJyZW50UGVyaW9keyRVc2VySUR9e0xlYXZlRGF5c30gLSAkQ3VycmVudFVzZXJEYXRhe0xlYXZlRGF5VG90YWx9OwoKICAgICAgICAkRGF0YXskVXNlcklEfSA9IFwlQ3VycmVudFVzZXJEYXRhOwogICAgfQoKICAgIHJldHVybiAlRGF0YTsKfQoKPWhlYWQyIFByb2plY3RTZXR0aW5nc0dldCgpCgpyZXR1cm5zIGEgaGFzaCB3aXRoIGFsbCB0aGUgcHJvamVjdHMnIGRhdGEKCiAgICBteSAlUHJvamVjdERhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0dldCgKICAgICAgICBTdGF0dXMgPT4gJ3ZhbGlkJyB8fCAnaW52YWxpZCcsIG9wdGlvbmFsIGRlZmF1bHQgdmFsaWQgJiYgaW52YWxpZAogICAgKTsKCj1jdXQKCnN1YiBQcm9qZWN0U2V0dGluZ3NHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkV2hlcmUgPSAnJzsKICAgIGlmICggJFBhcmFte1N0YXR1c30gKSB7CiAgICAgICAgJFdoZXJlID0gJyBXSEVSRSBzdGF0dXMgPSAnOwogICAgICAgICRXaGVyZSAuPSAkUGFyYW17U3RhdHVzfSBlcSAnaW52YWxpZCcgPyAiJzAnIiA6ICInMSciOwogICAgfQoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBkYiBzZWxlY3QKICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gIgogICAgICAgICAgICBTRUxFQ1QgaWQsIHByb2plY3QsIGRlc2NyaXB0aW9uLCBzdGF0dXMKICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfcHJvamVjdAogICAgICAgICAgICAkV2hlcmUiLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSBkYXRhCiAgICBteSAlRGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIG15ICRJRCA9ICRSb3dbMF07CiAgICAgICAgJERhdGF7UHJvamVjdH17JElEfSAgICAgICAgICAgID0gJFJvd1sxXTsKICAgICAgICAkRGF0YXtQcm9qZWN0RGVzY3JpcHRpb259eyRJRH0gPSAkUm93WzJdOwogICAgICAgICREYXRhe1Byb2plY3RTdGF0dXN9eyRJRH0gICAgICA9ICRSb3dbM107CiAgICB9CgogICAgcmV0dXJuICVEYXRhOwp9Cgo9aGVhZDIgUHJvamVjdEdldCgpCgpyZXR1cm5zIGEgaGFzaCB3aXRoIHRoZSByZXF1ZXN0ZWQgcHJvamVjdCBkYXRhCgogICAgbXkgJVByb2plY3REYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0R2V0KCBJRCA9PiAyICk7CgpUaGlzIHJldHVybnMgc29tZXRoaW5nIGxpa2U6CgogICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gKAogICAgICAgIFByb2plY3QgICAgICAgICAgICA9PiAnaW50ZXJuYWwnLAogICAgICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAnZGVzY3JpcHRpb24nLAogICAgICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAxLAogICAgKTsKCiAgICBvcgoKICAgIG15ICVQcm9qZWN0RGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdEdldCggUHJvamVjdCA9PiAnaW50ZXJuYWwnICk7CgpUaGlzIHJldHVybnMgc29tZXRoaW5nIGxpa2U6CgogICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gKAogICAgICAgIElEICAgICAgICAgICAgICAgICA9PiAyLAogICAgICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAnZGVzY3JpcHRpb24nLAogICAgICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBQcm9qZWN0R2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtJRH0gJiYgISRQYXJhbXtQcm9qZWN0fSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgSUQgb3IgcHJvamVjdCBuYW1lIScKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJVByb2plY3Q7CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGxvb2sgZm9yIHRoZSB0YXNrIGRhdGEgd2l0aCB0aGUgSUQKICAgIGlmICggJFBhcmFte0lEfSApIHsKCiAgICAgICAgIyBTUUwKICAgICAgICByZXR1cm4gaWYgISREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgICAgIFNFTEVDVCBwcm9qZWN0LCBkZXNjcmlwdGlvbiwgc3RhdHVzCiAgICAgICAgICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ19wcm9qZWN0CiAgICAgICAgICAgICAgICBXSEVSRSBpZCA9ID8nLAogICAgICAgICAgICBCaW5kID0+IFsgXCRQYXJhbXtJRH0gXSwKICAgICAgICApOwogICAgICAgIHdoaWxlICggbXkgQERhdGEgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAgICAgJVByb2plY3QgPSAoCiAgICAgICAgICAgICAgICBJRCAgICAgICAgICAgICAgICAgPT4gJFBhcmFte0lEfSwKICAgICAgICAgICAgICAgIFByb2plY3QgICAgICAgICAgICA9PiAkRGF0YVswXSwKICAgICAgICAgICAgICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAkRGF0YVsxXSwKICAgICAgICAgICAgICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAkRGF0YVsyXSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBsb29rIGZvciB0aGUgdGFzayBkYXRhIHdpdGggdGhlIHRhc2sgbmFtZQogICAgZWxzZSB7CgogICAgICAgICMgU1FMCiAgICAgICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgICAgICBTRUxFQ1QgaWQsIGRlc2NyaXB0aW9uLCBzdGF0dXMKICAgICAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3Byb2plY3QKICAgICAgICAgICAgICAgIFdIRVJFIHByb2plY3QgPSA/JywKICAgICAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17UHJvamVjdH0gXSwKICAgICAgICApOwogICAgICAgIHdoaWxlICggbXkgQERhdGEgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAgICAgJVByb2plY3QgPSAoCiAgICAgICAgICAgICAgICBQcm9qZWN0ICAgICAgICAgICAgPT4gJFBhcmFte1Byb2plY3R9LAogICAgICAgICAgICAgICAgSUQgICAgICAgICAgICAgICAgID0+ICREYXRhWzBdLAogICAgICAgICAgICAgICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICREYXRhWzFdLAogICAgICAgICAgICAgICAgUHJvamVjdFN0YXR1cyAgICAgID0+ICREYXRhWzJdLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gJVByb2plY3Q7Cn0KCj1oZWFkMiBQcm9qZWN0U2V0dGluZ3NJbnNlcnQoKQoKaW5zZXJ0cyBhIG5ldyBwcm9qZWN0IGluIHRoZSBkYgoKICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzSW5zZXJ0KAogICAgICAgIFByb2plY3QgICAgICAgICAgICA9PiAnaW50ZXJuYWwnLCAgICAjIG9wdGlvbmFsCiAgICAgICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICdkZXNjcmlwdGlvbicsICMgb3B0aW9uYWwKICAgICAgICBQcm9qZWN0U3RhdHVzICAgICAgPT4gMSB8fCAwLCAgICAgICAgIyBvcHRpb25hbAogICAgKTsKCiAgICByZXR1cm5zIElEIG9mIGNyZWF0ZWQgcHJvamVjdAoKPWN1dAoKc3ViIFByb2plY3RTZXR0aW5nc0luc2VydCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICRQYXJhbXtQcm9qZWN0fSAgICAgICAgICAgIHx8PSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpEZWZhdWx0UHJvamVjdE5hbWUnKTsKICAgICRQYXJhbXtQcm9qZWN0RGVzY3JpcHRpb259IHx8PSAnJzsKCiAgICBpZiAoICRQYXJhbXtQcm9qZWN0U3RhdHVzfSBuZSAnMCcgJiYgJFBhcmFte1Byb2plY3RTdGF0dXN9IG5lICcxJyApIHsKICAgICAgICAkUGFyYW17UHJvamVjdFN0YXR1c30gPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpEZWZhdWx0UHJvamVjdFN0YXR1cycpOwogICAgfQoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBpbnNlcnQgcHJvamVjdCByZWNvcmQKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5EbygKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBJTlNFUlQgSU5UTyB0aW1lX2FjY291bnRpbmdfcHJvamVjdCAocHJvamVjdCwgZGVzY3JpcHRpb24sIHN0YXR1cykKICAgICAgICAgICAgVkFMVUVTICg/LCA/LCA/KScsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17UHJvamVjdH0sIFwkUGFyYW17UHJvamVjdERlc2NyaXB0aW9ufSwgXCRQYXJhbXtQcm9qZWN0U3RhdHVzfSBdLAogICAgKTsKCiAgICAjIGdldCBpZCBvZiBuZXdseSBjcmVhdGVkIHByb2plY3QgcmVjb3JkCiAgICByZXR1cm4gaWYgISREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBTRUxFQ1QgaWQKICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfcHJvamVjdAogICAgICAgICAgICBXSEVSRSBwcm9qZWN0ID0gPycsCiAgICAgICAgQmluZCAgPT4gWyBcJFBhcmFte1Byb2plY3R9IF0sCiAgICAgICAgTGltaXQgPT4gMSwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgZGF0YQogICAgbXkgJFByb2plY3RJRDsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICRQcm9qZWN0SUQgPSAkUm93WzBdOwogICAgfQoKICAgIHJldHVybiAkUHJvamVjdElEOwp9Cgo9aGVhZDIgUHJvamVjdFNldHRpbmdzVXBkYXRlKCkKCnVwZGF0ZXMgYSBwcm9qZWN0CgogICAgbXkgJFN1Y2Nlc3MgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc1VwZGF0ZSgKICAgICAgICBJRCAgICAgICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIFByb2plY3QgICAgICAgICAgICA9PiAnaW50ZXJuYWwnLAogICAgICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAnZGVzY3JpcHRpb24nLAogICAgICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBQcm9qZWN0U2V0dGluZ3NVcGRhdGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICROZWVkZWQgKHF3KElEIFByb2plY3QpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBTUUwKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFVQREFURSB0aW1lX2FjY291bnRpbmdfcHJvamVjdAogICAgICAgICAgICBTRVQgcHJvamVjdCA9ID8sIGRlc2NyaXB0aW9uID0gPywgc3RhdHVzID0gPwogICAgICAgICAgICBXSEVSRSBpZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWwogICAgICAgICAgICBcJFBhcmFte1Byb2plY3R9LCBcJFBhcmFte1Byb2plY3REZXNjcmlwdGlvbn0sIFwkUGFyYW17UHJvamVjdFN0YXR1c30sIFwkUGFyYW17SUR9LAogICAgICAgIF0sCiAgICApOwoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgQWN0aW9uU2V0dGluZ3NHZXQoKQoKcmV0dXJucyBhIGhhc2ggd2l0aCBhbGwgdGhlIGFjdGlvbnMgc2V0dGluZ3MKCiAgICBteSAlQWN0aW9uRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NHZXQoKTsKCj1jdXQKCnN1YiBBY3Rpb25TZXR0aW5nc0dldCB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBkYiBzZWxlY3QKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFNFTEVDVCBpZCwgYWN0aW9uLCBzdGF0dXMKICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfYWN0aW9uJywKICAgICk7CgogICAgIyBmZXRjaCB0aGUgZGF0YQogICAgbXkgJURhdGE7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkRGF0YXsgJFJvd1swXSB9e0FjdGlvbn0gICAgICAgPSAkUm93WzFdOwogICAgICAgICREYXRheyAkUm93WzBdIH17QWN0aW9uU3RhdHVzfSA9ICRSb3dbMl07CiAgICB9CgogICAgcmV0dXJuICVEYXRhOwp9Cgo9aGVhZDIgQWN0aW9uR2V0KCkKCnJldHVybnMgYSBoYXNoIHdpdGggdGhlIHJlcXVlc3RlZCBhY3Rpb24gKHRhc2spIGRhdGEKCiAgICBteSAlQWN0aW9uRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uR2V0KCBJRCA9PiAyICk7CgpUaGlzIHJldHVybnMgc29tZXRoaW5nIGxpa2U6CgogICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gKAogICAgICAgIEFjdGlvbiAgICAgICA9PiAnTXkgdGFzaycsCiAgICAgICAgQWN0aW9uU3RhdHVzID0+IDEsCiAgICApOwoKICAgIG9yCgogICAgbXkgJUFjdGlvbkRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvbkdldCggQWN0aW9uID0+ICdNeSB0YXNrJyApOwoKVGhpcyByZXR1cm5zIHNvbWV0aGluZyBsaWtlOgoKICAgICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICgKICAgICAgICBJRCAgICAgICAgICAgPT4gMiwKICAgICAgICBBY3Rpb25TdGF0dXMgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgQWN0aW9uR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtJRH0gJiYgISRQYXJhbXtBY3Rpb259ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBJRCBvciBBY3Rpb24hJwogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSAlVGFzazsKCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgbG9vayBmb3IgdGhlIHRhc2sgZGF0YSB3aXRoIHRoZSBJRAogICAgaWYgKCAkUGFyYW17SUR9ICkgewoKICAgICAgICAjIFNRTAogICAgICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICAgICAgU0VMRUNUIGFjdGlvbiwgc3RhdHVzCiAgICAgICAgICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ19hY3Rpb24KICAgICAgICAgICAgICAgIFdIRVJFIGlkID0gPycsCiAgICAgICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte0lEfSBdLAogICAgICAgICk7CiAgICAgICAgd2hpbGUgKCBteSBARGF0YSA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICAgICAlVGFzayA9ICgKICAgICAgICAgICAgICAgIElEICAgICAgICAgICA9PiAkUGFyYW17SUR9LAogICAgICAgICAgICAgICAgQWN0aW9uICAgICAgID0+ICREYXRhWzBdLAogICAgICAgICAgICAgICAgQWN0aW9uU3RhdHVzID0+ICREYXRhWzFdLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIGxvb2sgZm9yIHRoZSB0YXNrIGRhdGEgd2l0aCB0aGUgdGFzayBuYW1lCiAgICBlbHNlIHsKCiAgICAgICAgIyBTUUwKICAgICAgICByZXR1cm4gaWYgISREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgICAgIFNFTEVDVCBpZCwgc3RhdHVzCiAgICAgICAgICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ19hY3Rpb24KICAgICAgICAgICAgICAgIFdIRVJFIGFjdGlvbiA9ID8nLAogICAgICAgICAgICBCaW5kID0+IFsgXCRQYXJhbXtBY3Rpb259IF0sCiAgICAgICAgKTsKICAgICAgICB3aGlsZSAoIG15IEBEYXRhID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgICAgICVUYXNrID0gKAogICAgICAgICAgICAgICAgQWN0aW9uICAgICAgID0+ICRQYXJhbXtBY3Rpb259LAogICAgICAgICAgICAgICAgSUQgICAgICAgICAgID0+ICREYXRhWzBdLAogICAgICAgICAgICAgICAgQWN0aW9uU3RhdHVzID0+ICREYXRhWzFdLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gJVRhc2s7Cn0KCj1oZWFkMiBBY3Rpb25TZXR0aW5nc0luc2VydCgpCgppbnNlcnRzIGEgbmV3IGFjdGlvbiBpbiB0aGUgZGIKCiAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzSW5zZXJ0KAogICAgICAgIEFjdGlvbiAgICAgICA9PiAnbWVldGluZycsICAgIyBvcHRpb25hbAogICAgICAgIEFjdGlvblN0YXR1cyA9PiAxIHx8IDAsICAgICAgIyBvcHRpb25hbAogICAgKTsKCj1jdXQKCnN1YiBBY3Rpb25TZXR0aW5nc0luc2VydCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICRQYXJhbXtBY3Rpb259IHx8PSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpEZWZhdWx0QWN0aW9uTmFtZScpIHx8ICcnOwogICAgaWYgKCAkUGFyYW17QWN0aW9uU3RhdHVzfSBuZSAnMCcgJiYgJFBhcmFte0FjdGlvblN0YXR1c30gbmUgJzEnICkgewogICAgICAgICRQYXJhbXtBY3Rpb25TdGF0dXN9ID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6RGVmYXVsdEFjdGlvblN0YXR1cycpOwogICAgfQoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBkYiBpbnNlcnQKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5EbygKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBJTlNFUlQgSU5UTyB0aW1lX2FjY291bnRpbmdfYWN0aW9uIChhY3Rpb24sIHN0YXR1cykKICAgICAgICAgICAgVkFMVUVTICg/LCA/KScsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17QWN0aW9ufSwgXCRQYXJhbXtBY3Rpb25TdGF0dXN9LCBdLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIEFjdGlvblNldHRpbmdzVXBkYXRlKCkKCnVwZGF0ZXMgYW4gYWN0aW9uICh0YXNrKQoKICAgIG15ICRTdWNjZXNzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc1VwZGF0ZSgKICAgICAgICBBY3Rpb25JRCAgICAgPT4gMTIzLAogICAgICAgIEFjdGlvbiAgICAgICA9PiAnaW50ZXJuYWwnLAogICAgICAgIEFjdGlvblN0YXR1cyA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBBY3Rpb25TZXR0aW5nc1VwZGF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoQWN0aW9uSUQgQWN0aW9uKSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgU1FMCiAgICByZXR1cm4gaWYgISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5EbygKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBVUERBVEUgdGltZV9hY2NvdW50aW5nX2FjdGlvbgogICAgICAgICAgICBTRVQgYWN0aW9uID0gPywgc3RhdHVzID0gPwogICAgICAgICAgICBXSEVSRSBpZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWwogICAgICAgICAgICBcJFBhcmFte0FjdGlvbn0sIFwkUGFyYW17QWN0aW9uU3RhdHVzfSwgXCRQYXJhbXtBY3Rpb25JRH0KICAgICAgICBdLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIFVzZXJMaXN0KCkKCnJldHVybnMgYSBoYXNoIHdpdGggdGhlIHVzZXIgZGF0YSBvZiBhbGwgdXNlcnMKCiAgICBteSAlVXNlckRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJMaXN0KCk7Cgo9Y3V0CgpzdWIgVXNlckxpc3QgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgZGIgc2VsZWN0CiAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIHVzZXJfaWQsIGRlc2NyaXB0aW9uLCBzaG93X292ZXJ0aW1lLCBjcmVhdGVfcHJvamVjdCwgYWxsb3dfc2tpcCwgY2FsZW5kYXIKICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfdXNlcicsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIGRhdGEKICAgIG15ICVEYXRhOwogICAgd2hpbGUgKCBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJERhdGF7ICRSb3dbMF0gfXtVc2VySUR9ICAgICAgICA9ICRSb3dbMF07CiAgICAgICAgJERhdGF7ICRSb3dbMF0gfXtEZXNjcmlwdGlvbn0gICA9ICRSb3dbMV07CiAgICAgICAgJERhdGF7ICRSb3dbMF0gfXtTaG93T3ZlcnRpbWV9ICA9ICRSb3dbMl07CiAgICAgICAgJERhdGF7ICRSb3dbMF0gfXtDcmVhdGVQcm9qZWN0fSA9ICRSb3dbM107CiAgICAgICAgJERhdGF7ICRSb3dbMF0gfXtBbGxvd1NraXB9ICAgICA9ICRSb3dbNF07CiAgICAgICAgJERhdGF7ICRSb3dbMF0gfXtDYWxlbmRhcn0gICAgICA9ICRSb3dbNV07CiAgICB9CgogICAgcmV0dXJuICVEYXRhOwp9Cgo9aGVhZDIgVXNlckdldCgpCgpyZXR1cm5zIGEgaGFzaCB3aXRoIHRoZSB1c2VyIGRhdGEgb2Ygb25lIHVzZXIKCiAgICBteSAlVXNlckRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJHZXQoCiAgICAgICAgVXNlcklEID0+IDE1LAogICAgKTsKCj1jdXQKCnN1YiBVc2VyR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgZGF0YQogICAgaWYgKCAhJFBhcmFte1VzZXJJRH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdVc2VyR2V0OiBOZWVkIFVzZXJJRCEnLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgZGIgc2VsZWN0CiAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIGRlc2NyaXB0aW9uLCBzaG93X292ZXJ0aW1lLCBjcmVhdGVfcHJvamVjdCwgYWxsb3dfc2tpcCwgY2FsZW5kYXIKICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfdXNlcgogICAgICAgICAgICBXSEVSRSB1c2VyX2lkID0gPycsCiAgICAgICAgQmluZCA9PiBbIFwkUGFyYW17VXNlcklEfSBdLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSBkYXRhCiAgICBteSAlRGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICREYXRhe1VzZXJJRH0gICAgICAgID0gJFBhcmFte1VzZXJJRH07CiAgICAgICAgJERhdGF7RGVzY3JpcHRpb259ICAgPSAkUm93WzBdOwogICAgICAgICREYXRhe1Nob3dPdmVydGltZX0gID0gJFJvd1sxXTsKICAgICAgICAkRGF0YXtDcmVhdGVQcm9qZWN0fSA9ICRSb3dbMl07CiAgICAgICAgJERhdGF7QWxsb3dTa2lwfSAgICAgPSAkUm93WzNdOwogICAgICAgICREYXRhe0NhbGVuZGFyfSAgICAgID0gJFJvd1s0XTsKICAgIH0KCiAgICByZXR1cm4gJURhdGE7Cn0KCj1oZWFkMiBVc2VyU2V0dGluZ3NHZXQoKQoKcmV0dXJucyBhIGhhc2ggd2l0aCB0aGUgY29tcGxldGUgdXNlciBwZXJpb2QgZGF0YSBmb3IgYWxsIHVzZXJzCgogICAgbXkgJVVzZXJEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NHZXQoKTsKCnJldHVybnM6CiAgICAlVXNlckRhdGEgPSAoCiAgICAgICAgMyA9PiB7CiAgICAgICAgICAgIDEgPT4gewogICAgICAgICAgICAgICAgRGF0ZUVuZCAgICAgPT4gIjIwMTUtMTItMzEiLAogICAgICAgICAgICAgICAgRGF0ZVN0YXJ0ICAgPT4gIjIwMTUtMDEtMDEiLAogICAgICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gIjIzLjAwIiwKICAgICAgICAgICAgICAgIE92ZXJ0aW1lICAgID0+ICIwLjAwIiwKICAgICAgICAgICAgICAgIFBlcmlvZCAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiAzLAogICAgICAgICAgICAgICAgVXNlclN0YXR1cyAgPT4gMSwKICAgICAgICAgICAgICAgIFdlZWtseUhvdXJzID0+ICI0MC4wMCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIDIgPT4gewogICAgICAgICAgICAgICAgRGF0ZUVuZCAgICAgPT4gIjIwMTUtMTItMzEiLAogICAgICAgICAgICAgICAgRGF0ZVN0YXJ0ICAgPT4gIjIwMTUtMDEtMDEiLAogICAgICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gIjIzLjAwIiwKICAgICAgICAgICAgICAgIE92ZXJ0aW1lICAgID0+ICIwLjAwIiwKICAgICAgICAgICAgICAgIFBlcmlvZCAgICAgID0+IDIsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICA9PiAzLAogICAgICAgICAgICAgICAgVXNlclN0YXR1cyAgPT4gMSwKICAgICAgICAgICAgICAgIFdlZWtseUhvdXJzID0+ICIzMi4wMCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICA0ID0+IHsKICAgICAgICAgICAgMSA9PiB7CiAgICAgICAgICAgICAgICBEYXRlRW5kICAgICA9PiAiMjAxNS0xMi0zMSIsCiAgICAgICAgICAgICAgICBEYXRlU3RhcnQgICA9PiAiMjAxNS0wMS0wMSIsCiAgICAgICAgICAgICAgICBMZWF2ZURheXMgICA9PiAiMjMuMDAiLAogICAgICAgICAgICAgICAgT3ZlcnRpbWUgICAgPT4gIjAuMDAiLAogICAgICAgICAgICAgICAgUGVyaW9kICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgID0+IDQsCiAgICAgICAgICAgICAgICBVc2VyU3RhdHVzICA9PiAxLAogICAgICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gIjQwLjAwIiwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfTsKCj1jdXQKCnN1YiBVc2VyU2V0dGluZ3NHZXQgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgZGIgc2VsZWN0CiAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIHVzZXJfaWQsIHByZWZlcmVuY2VfcGVyaW9kLCBkYXRlX3N0YXJ0LCBkYXRlX2VuZCwgd2Vla2x5X2hvdXJzLCBsZWF2ZV9kYXlzLAogICAgICAgICAgICAgICAgb3ZlcnRpbWUsIHN0YXR1cwogICAgICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ191c2VyX3BlcmlvZCcKICAgICk7CgogICAgIyBmZXRjaCB0aGUgZGF0YQogICAgbXkgJURhdGE7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkRGF0YXsgJFJvd1swXSB9eyAkUm93WzFdIH17VXNlcklEfSAgICAgID0gJFJvd1swXTsKICAgICAgICAkRGF0YXsgJFJvd1swXSB9eyAkUm93WzFdIH17UGVyaW9kfSAgICAgID0gJFJvd1sxXTsKICAgICAgICAkRGF0YXsgJFJvd1swXSB9eyAkUm93WzFdIH17RGF0ZVN0YXJ0fSAgID0gc3Vic3RyKCAkUm93WzJdLCAwLCAxMCApOwogICAgICAgICREYXRheyAkUm93WzBdIH17ICRSb3dbMV0gfXtEYXRlRW5kfSAgICAgPSBzdWJzdHIoICRSb3dbM10sIDAsIDEwICk7CiAgICAgICAgJERhdGF7ICRSb3dbMF0gfXsgJFJvd1sxXSB9e1dlZWtseUhvdXJzfSA9ICRSb3dbNF07CiAgICAgICAgJERhdGF7ICRSb3dbMF0gfXsgJFJvd1sxXSB9e0xlYXZlRGF5c30gICA9ICRSb3dbNV07CiAgICAgICAgJERhdGF7ICRSb3dbMF0gfXsgJFJvd1sxXSB9e092ZXJ0aW1lfSAgICA9ICRSb3dbNl07CiAgICAgICAgJERhdGF7ICRSb3dbMF0gfXsgJFJvd1sxXSB9e1VzZXJTdGF0dXN9ICA9ICRSb3dbN107CiAgICB9CgogICAgcmV0dXJuICVEYXRhOwp9Cgo9aGVhZDIgU2luZ2xlVXNlclNldHRpbmdzR2V0KCkKCnJldHVybnMgYSBoYXNoIHdpdGggdGhlIHJlcXVlc3RlZCB1c2VyJ3MgcGVyaW9kIGRhdGEKCiAgICBteSAlVXNlckRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlNpbmdsZVVzZXJTZXR0aW5nc0dldCggVXNlcklEID0+IDEgKTsKCj1jdXQKCnN1YiBTaW5nbGVVc2VyU2V0dGluZ3NHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte1VzZXJJRH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIFVzZXJJRCEnCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBkYiBzZWxlY3QKICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBTRUxFQ1QgdXNlcl9pZCwgcHJlZmVyZW5jZV9wZXJpb2QsIGRhdGVfc3RhcnQsIGRhdGVfZW5kLCB3ZWVrbHlfaG91cnMsIGxlYXZlX2RheXMsCiAgICAgICAgICAgICAgICBvdmVydGltZSwgc3RhdHVzCiAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3VzZXJfcGVyaW9kIFdIRVJFIHVzZXJfaWQgPSA/JywKICAgICAgICBCaW5kID0+IFsgXCRQYXJhbXtVc2VySUR9IF0sCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIGRhdGEKICAgIG15ICVVc2VyRGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICRVc2VyRGF0YXsgJFJvd1sxXSB9e1VzZXJJRH0gICAgICA9ICRSb3dbMF07CiAgICAgICAgJFVzZXJEYXRheyAkUm93WzFdIH17UGVyaW9kfSAgICAgID0gJFJvd1sxXTsKICAgICAgICAkVXNlckRhdGF7ICRSb3dbMV0gfXtEYXRlU3RhcnR9ICAgPSBzdWJzdHIoICRSb3dbMl0sIDAsIDEwICk7CiAgICAgICAgJFVzZXJEYXRheyAkUm93WzFdIH17RGF0ZUVuZH0gICAgID0gc3Vic3RyKCAkUm93WzNdLCAwLCAxMCApOwogICAgICAgICRVc2VyRGF0YXsgJFJvd1sxXSB9e1dlZWtseUhvdXJzfSA9ICRSb3dbNF07CiAgICAgICAgJFVzZXJEYXRheyAkUm93WzFdIH17TGVhdmVEYXlzfSAgID0gJFJvd1s1XTsKICAgICAgICAkVXNlckRhdGF7ICRSb3dbMV0gfXtPdmVydGltZX0gICAgPSAkUm93WzZdOwogICAgICAgICRVc2VyRGF0YXsgJFJvd1sxXSB9e1VzZXJTdGF0dXN9ICA9ICRSb3dbN107CiAgICB9CgogICAgcmV0dXJuICVVc2VyRGF0YTsKfQoKPWhlYWQyIFVzZXJMYXN0UGVyaW9kTnVtYmVyR2V0KCkKCnJldHVybnMgdGhlIG51bWJlciBvZiB0aGUgbGFzdCByZWdpc3RlcmVkIHBlcmlvZCBmb3IgdGhlIHNwZWNpZmllZCB1c2VyCgogICAgbXkgJExhc3RQZXJpb2ROdW1iZXIgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJMYXN0UGVyaW9kTnVtYmVyR2V0KCBVc2VySUQgPT4gMSApOwoKPWN1dAoKc3ViIFVzZXJMYXN0UGVyaW9kTnVtYmVyR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBVc2VySUQhJwogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgZGIgc2VsZWN0CiAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIG1heChwcmVmZXJlbmNlX3BlcmlvZCkKICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfdXNlcl9wZXJpb2QKICAgICAgICAgICAgV0hFUkUgdXNlcl9pZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte1VzZXJJRH0gXSwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgZGF0YQogICAgbXkgQFJvdyAgICAgICAgICAgICAgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKTsKICAgIG15ICRMYXN0UGVyaW9kTnVtYmVyID0gJFJvd1swXSB8fCAwOwoKICAgIHJldHVybiAkTGFzdFBlcmlvZE51bWJlcjsKfQoKPWhlYWQyIFVzZXJTZXR0aW5nc0luc2VydCgpCgppbnNlcnQgbmV3IHVzZXIgZGF0YSBpbiB0aGUgZGIKCiAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0luc2VydCgKICAgICAgICBVc2VySUQgICAgICAgPT4gJzInLAogICAgICAgIFBlcmlvZCAgICAgICA9PiAnMicsCiAgICApOwoKPWN1dAoKc3ViIFVzZXJTZXR0aW5nc0luc2VydCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJE5lZWRlZCAocXcgKFVzZXJJRCBQZXJpb2QpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkIgogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIGlmIHVzZXIgZXhpc3RzCiAgICBpZiAoICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTG9va3VwKCBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0gKSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlVzZXJJRCAkUGFyYW17VXNlcklEfSBkb2VzIG5vdCBleGlzdCEiCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICRQYXJhbXtXZWVrbHlIb3Vyc30gPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpEZWZhdWx0VXNlcldlZWtseUhvdXJzJykKICAgICAgICB8fCAnNDAnOwogICAgJFBhcmFte0xlYXZlRGF5c30gID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6RGVmYXVsdFVzZXJMZWF2ZURheXMnKSB8fCAnMjUnOwogICAgJFBhcmFte1VzZXJTdGF0dXN9ID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6RGVmYXVsdFVzZXJTdGF0dXMnKSAgICB8fCAnMSc7CiAgICAkUGFyYW17T3ZlcnRpbWV9ICAgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpEZWZhdWx0VXNlck92ZXJ0aW1lJykgIHx8ICcwJzsKICAgICRQYXJhbXtEYXRlRW5kfSAgICA9ICRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6OkRlZmF1bHRVc2VyRGF0ZUVuZCcpCiAgICAgICAgfHwgJzIwMTktMTItMzEnOwogICAgJFBhcmFte0RhdGVTdGFydH0gPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpbWVBY2NvdW50aW5nOjpEZWZhdWx0VXNlckRhdGVTdGFydCcpCiAgICAgICAgfHwgJzIwMTktMDEtMDEnOwogICAgJFBhcmFte0Rlc2NyaXB0aW9ufSA9ICRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6OkRlZmF1bHRVc2VyRGVzY3JpcHRpb24nKQogICAgICAgIHx8ICdQdXQgeW91ciBkZXNjcmlwdGlvbiBoZXJlLic7CgogICAgJFBhcmFte0RhdGVTdGFydH0gLj0gJyAwMDowMDowMCc7CiAgICAkUGFyYW17RGF0ZUVuZH0gICAuPSAnIDAwOjAwOjAwJzsKCiAgICAjIGRlbGV0ZSBjYWNoZQogICAgZGVsZXRlICRTZWxmLT57J0NhY2hlOjpVc2VyQ3VycmVudFBlcmlvZEdldCd9OwoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBkYiBpbnNlcnQKICAgIHJldHVybiBpZiAhJERCT2JqZWN0LT5EbygKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBJTlNFUlQgSU5UTyB0aW1lX2FjY291bnRpbmdfdXNlcl9wZXJpb2QgKHVzZXJfaWQsIHByZWZlcmVuY2VfcGVyaW9kLCBkYXRlX3N0YXJ0LAogICAgICAgICAgICAgICAgZGF0ZV9lbmQsIHdlZWtseV9ob3VycywgbGVhdmVfZGF5cywgb3ZlcnRpbWUsIHN0YXR1cykKICAgICAgICAgICAgVkFMVUVTICg/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KScsCiAgICAgICAgQmluZCA9PiBbCiAgICAgICAgICAgIFwkUGFyYW17VXNlcklEfSwgICAgICBcJFBhcmFte1BlcmlvZH0sICAgIFwkUGFyYW17RGF0ZVN0YXJ0fSwgXCRQYXJhbXtEYXRlRW5kfSwKICAgICAgICAgICAgXCRQYXJhbXtXZWVrbHlIb3Vyc30sIFwkUGFyYW17TGVhdmVEYXlzfSwgXCRQYXJhbXtPdmVydGltZX0sICBcJFBhcmFte1VzZXJTdGF0dXN9LAogICAgICAgIF0sCiAgICApOwoKICAgICMgc2VsZWN0IFVzZXJJRAogICAgJERCT2JqZWN0LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIFNFTEVDVCB1c2VyX2lkCiAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3VzZXIKICAgICAgICAgICAgV0hFUkUgdXNlcl9pZCA9ID8nLAogICAgICAgIEJpbmQgID0+IFsgXCRQYXJhbXtVc2VySUR9LCBdLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIGRhdGEKICAgIG15ICRVc2VySUQ7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkVXNlcklEID0gJFJvd1swXTsKICAgIH0KCiAgICBpZiAoICFkZWZpbmVkICRVc2VySUQgKSB7CgogICAgICAgICMgZGIgaW5zZXJ0CiAgICAgICAgcmV0dXJuIGlmICEkREJPYmplY3QtPkRvKAogICAgICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICAgICAgSU5TRVJUIElOVE8gdGltZV9hY2NvdW50aW5nX3VzZXIgKHVzZXJfaWQsIGRlc2NyaXB0aW9uKQogICAgICAgICAgICAgICAgVkFMVUVTICg/LCA/KScsCiAgICAgICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte1VzZXJJRH0sIFwkUGFyYW17RGVzY3JpcHRpb259LCBdLAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBVc2VyU2V0dGluZ3NVcGRhdGUoKQoKdXBkYXRlcyB1c2VyIGRhdGEgaW4gdGhlIGRiCgogICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NVcGRhdGUoCiAgICAgICAgVXNlcklEICAgICAgICA9PiAxLAogICAgICAgIERlc2NyaXB0aW9uICAgPT4gJ1NvbWUgVGV4dCcsCiAgICAgICAgQ3JlYXRlUHJvamVjdCA9PiAxIHx8IDAsCiAgICAgICAgU2hvd092ZXJ0aW1lICA9PiAxIHx8IDAsCiAgICAgICAgQWxsb3dTa2lwICAgICA9PiAxIHx8IDAsCiAgICAgICAgUGVyaW9kICAgICAgICA9PiB7CiAgICAgICAgICAgIDEgPT4gewogICAgICAgICAgICAgICAgRGF0ZVN0YXJ0ICAgID0+ICcyMDE1LTEyLTEyJywKICAgICAgICAgICAgICAgIERhdGVFbmQgICAgICA9PiAnMjAxNS0xMi0zMScsCiAgICAgICAgICAgICAgICBXZWVrbHlIb3VycyAgPT4gJzM4JywKICAgICAgICAgICAgICAgIExlYXZlRGF5cyAgICA9PiAnMjUnLAogICAgICAgICAgICAgICAgT3ZlcnRpbWUgICAgID0+ICczOCcsCiAgICAgICAgICAgICAgICBVc2VyU3RhdHVzICAgPT4gMSB8fCAwLAogICAgICAgICAgICB9LAogICAgICAgICAgICAyID0+IHsKICAgICAgICAgICAgICAgIERhdGVTdGFydCAgICA9PiAnMjAxNS0xMi0xMicsCiAgICAgICAgICAgICAgICBEYXRlRW5kICAgICAgPT4gJzIwMTUtMTItMzEnLAogICAgICAgICAgICAgICAgV2Vla2x5SG91cnMgID0+ICczOCcsCiAgICAgICAgICAgICAgICBMZWF2ZURheXMgICAgPT4gJzI1JywKICAgICAgICAgICAgICAgIE92ZXJ0aW1lICAgICA9PiAnMzgnLAogICAgICAgICAgICAgICAgVXNlclN0YXR1cyAgID0+IDEgfHwgMCwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgMyA9PiAuLi4uLi4KICAgICAgICB9CiAgICApOwoKPWN1dAoKc3ViIFVzZXJTZXR0aW5nc1VwZGF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZGVsZXRlIGNhY2hlCiAgICBkZWxldGUgJFNlbGYtPnsnQ2FjaGU6OlVzZXJDdXJyZW50UGVyaW9kR2V0J307CgogICAgbXkgJFVzZXJJRCA9ICRQYXJhbXtVc2VySUR9OwoKICAgIGlmICggIWRlZmluZWQgJFBhcmFte1BlcmlvZH0tPnsxfXtEYXRlU3RhcnR9ICYmICFkZWZpbmVkICRQYXJhbXtQZXJpb2R9LT57MX17RGF0ZUVuZH0gKSB7CgogICAgICAgIHJldHVybiAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlVzZXJTZXR0aW5nVXBkYXRlOiBObyBkYXRhIGZvciB1c2VyIGlkICRVc2VySUQhIgogICAgICAgICk7CiAgICB9CgogICAgIyBzZXQgZGVmYXVsdCB2YWx1ZXMKICAgICRQYXJhbXtTaG93T3ZlcnRpbWV9ICB8fD0gMDsKICAgICRQYXJhbXtDcmVhdGVQcm9qZWN0fSB8fD0gMDsKICAgICRQYXJhbXtBbGxvd1NraXB9ICAgICB8fD0gMDsKICAgICRQYXJhbXtDYWxlbmRhcn0gICAgICB8fD0gMDsKCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgZGIgaW5zZXJ0CiAgICByZXR1cm4gaWYgISREQk9iamVjdC0+RG8oCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgVVBEQVRFIHRpbWVfYWNjb3VudGluZ191c2VyCiAgICAgICAgICAgIFNFVCBkZXNjcmlwdGlvbiA9ID8sIHNob3dfb3ZlcnRpbWUgPSA/LCBjcmVhdGVfcHJvamVjdCA9ID8sIGFsbG93X3NraXAgPSA/LCBjYWxlbmRhciA9ID8KICAgICAgICAgICAgV0hFUkUgdXNlcl9pZCA9ID8nLAogICAgICAgIEJpbmQgPT4gWwogICAgICAgICAgICBcJFBhcmFte0Rlc2NyaXB0aW9ufSwgXCRQYXJhbXtTaG93T3ZlcnRpbWV9LAogICAgICAgICAgICBcJFBhcmFte0NyZWF0ZVByb2plY3R9LCBcJFBhcmFte0FsbG93U2tpcH0sIFwkUGFyYW17Q2FsZW5kYXJ9LCBcJFBhcmFte1VzZXJJRH0KICAgICAgICBdLAogICAgKTsKCiAgICAjIHVwZGF0ZSBhbGwgcGVyaW9kcwogICAgZm9yIG15ICRQZXJpb2QgKCBzb3J0IGtleXMgJXsgJFBhcmFte1BlcmlvZH0gfSApIHsKCiAgICAgICAgIyBkYiBpbnNlcnQKICAgICAgICByZXR1cm4gaWYgISREQk9iamVjdC0+RG8oCiAgICAgICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgICAgICBVUERBVEUgdGltZV9hY2NvdW50aW5nX3VzZXJfcGVyaW9kCiAgICAgICAgICAgICAgICBTRVQgbGVhdmVfZGF5cyA9ID8sIGRhdGVfc3RhcnQgPSA/LCBkYXRlX2VuZCA9ID8sIG92ZXJ0aW1lID0gPywgd2Vla2x5X2hvdXJzID0gPywKICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSA/CiAgICAgICAgICAgICAgICBXSEVSRSB1c2VyX2lkID0gPwogICAgICAgICAgICAgICAgICAgIEFORCBwcmVmZXJlbmNlX3BlcmlvZCA9ID8nLAogICAgICAgICAgICBCaW5kID0+IFsKICAgICAgICAgICAgICAgIFwkUGFyYW17UGVyaW9kfS0+eyRQZXJpb2R9e0xlYXZlRGF5c30sICAgXCRQYXJhbXtQZXJpb2R9LT57JFBlcmlvZH17RGF0ZVN0YXJ0fSwKICAgICAgICAgICAgICAgIFwkUGFyYW17UGVyaW9kfS0+eyRQZXJpb2R9e0RhdGVFbmR9LCAgICAgXCRQYXJhbXtQZXJpb2R9LT57JFBlcmlvZH17T3ZlcnRpbWV9LAogICAgICAgICAgICAgICAgXCRQYXJhbXtQZXJpb2R9LT57JFBlcmlvZH17V2Vla2x5SG91cnN9LCBcJFBhcmFte1BlcmlvZH0tPnskUGVyaW9kfXtVc2VyU3RhdHVzfSwKICAgICAgICAgICAgICAgIFwkVXNlcklELCBcJFBlcmlvZCwKICAgICAgICAgICAgXQogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBXb3JraW5nVW5pdHNDb21wbGV0bmVzc0NoZWNrKCkKCnJldHVybnMgYSBoYXNoIHdpdGggdGhlIGluY29tcGxldGUgd29ya2luZyBkYXlzIGFuZAp0aGUgaW5mb3JtYXRpb24gaWYgdGhlIGluY29tcGxldGUgd29ya2luZyBkYXlzIGFyZSBpbiB0aGUgYWxsb3dlZApyYW5nZS4KCiAgICBteSAlV29ya2luZ1VuaXRzQ2hlY2sgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0NvbXBsZXRuZXNzQ2hlY2soCiAgICAgICAgVXNlcklEID0+IDEyMywKICAgICk7Cgo9Y3V0CgpzdWIgV29ya2luZ1VuaXRzQ29tcGxldG5lc3NDaGVjayB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGlmICggISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCBVc2VySUQiCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICRVc2VySUQgPSAkUGFyYW17VXNlcklEfTsKCiAgICBteSAlVXNlckRhdGEgPSAkU2VsZi0+VXNlckdldCggVXNlcklEID0+ICRVc2VySUQgKTsKICAgIGlmICggISVVc2VyRGF0YSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ0NvdWxkIG5vdCBnZXQgdXNlciBkYXRhJywKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBTa2lwIGNoZWNrIGZvciB1c2VycyB0aGF0IGFyZSBub3QgcmVxdWlyZWQgdG8gbG9nIHRpbWVzLgogICAgcmV0dXJuICgpIGlmICRVc2VyRGF0YXtBbGxvd1NraXB9OwoKICAgIG15ICVEYXRhICAgICAgICAgICAgICAgID0gKCk7CiAgICBteSAkV29ya2luZ1VuaXRJRCAgICAgICA9IDA7CiAgICBteSAlQ29tcGxldGVXb3JraW5nRGF5cyA9ICgpOwoKICAgICMgZ2V0IHRpbWUgb2JqZWN0CiAgICBteSAkRGF0ZVRpbWVPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpOwogICAgbXkgJERhdGVUaW1lU2V0dGluZ3MgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwoKICAgIG15ICggJFNlYywgJE1pbiwgJEhvdXIsICREYXksICRNb250aCwgJFllYXIgKSA9ICgKICAgICAgICAkRGF0ZVRpbWVTZXR0aW5ncy0+e1NlY29uZH0sCiAgICAgICAgJERhdGVUaW1lU2V0dGluZ3MtPntNaW51dGV9LAogICAgICAgICREYXRlVGltZVNldHRpbmdzLT57SG91cn0sCiAgICAgICAgJERhdGVUaW1lU2V0dGluZ3MtPntEYXl9LAogICAgICAgICREYXRlVGltZVNldHRpbmdzLT57TW9udGh9LAogICAgICAgICREYXRlVGltZVNldHRpbmdzLT57WWVhcn0sCiAgICApOwoKICAgICMgVE9ETzogU2VhcmNoIG9ubHkgaW4gdGhlIEN1cnJlbnRVc2VyUGVyaW9kCiAgICAjIFRPRE86IFNlYXJjaCBvbmx5IHdvcmtpbmcgdW5pdHMgd2hlcmUgYWN0aW9uX2lkIGFuZCBwcm9qZWN0X2lkIGlzIHRydWUKCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBTRUxFQ1QgRElTVElOQ1QgdGltZV9zdGFydAogICAgICAgICAgICBGUk9NIHRpbWVfYWNjb3VudGluZ190YWJsZQogICAgICAgICAgICBXSEVSRSB1c2VyX2lkID0gPycsCiAgICAgICAgQmluZCA9PiBbIFwkVXNlcklEIF0sCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIGRhdGEKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIGlmICggJFJvd1swXSA9fiAvXihcZCspLShcZCspLShcZCspLyApIHsKICAgICAgICAgICAgJENvbXBsZXRlV29ya2luZ0RheXN7JDF9eyQyfXskM30gPSAxOwogICAgICAgIH0KICAgIH0KCiAgICBteSAlVXNlckN1cnJlbnRQZXJpb2QgPSAkU2VsZi0+VXNlckN1cnJlbnRQZXJpb2RHZXQoCiAgICAgICAgWWVhciAgPT4gJFllYXIsCiAgICAgICAgTW9udGggPT4gJE1vbnRoLAogICAgICAgIERheSAgID0+ICREYXksCiAgICApOwoKICAgIG15ICRXb3JraW5nRGF5cyA9IDA7CiAgICBteSAkWWVhclN0YXJ0ICAgPSAxOTcwOwogICAgbXkgJE1vbnRoU3RhcnQgID0gMTsKICAgIG15ICREYXlTdGFydCAgICA9IDE7CiAgICBteSAkWWVhckVuZCAgICAgPSAkWWVhcjsKICAgIG15ICRNb250aEVuZCAgICA9ICRNb250aDsKICAgIG15ICREYXlFbmQgICAgICA9ICREYXk7CgogICAgaWYgKAogICAgICAgICRVc2VyQ3VycmVudFBlcmlvZHskVXNlcklEfS0+e0RhdGVTdGFydH0KICAgICAgICAmJiAkVXNlckN1cnJlbnRQZXJpb2R7JFVzZXJJRH0tPntEYXRlU3RhcnR9ID1+IC9eKFxkKyktKFxkKyktKFxkKykvCiAgICAgICAgKQogICAgewogICAgICAgICRZZWFyU3RhcnQgID0gJDE7CiAgICAgICAgJE1vbnRoU3RhcnQgPSAkMjsKICAgICAgICAkRGF5U3RhcnQgICA9ICQzOwogICAgfQoKICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgIG15ICRDYWxlbmRhciA9ICRVc2VyRGF0YXtDYWxlbmRhcn07CgogICAgZm9yIG15ICRZZWFyICggJFllYXJTdGFydCAuLiAkWWVhckVuZCApIHsKCiAgICAgICAgbXkgJE1vbnRoU3RhcnRQb2ludCA9ICRZZWFyID09ICRZZWFyU3RhcnQgPyAkTW9udGhTdGFydCA6IDE7CiAgICAgICAgbXkgJE1vbnRoRW5kUG9pbnQgICA9ICRZZWFyID09ICRZZWFyRW5kICAgPyAkTW9udGhFbmQgICA6IDEyOwoKICAgICAgICBmb3IgbXkgJE1vbnRoICggJE1vbnRoU3RhcnRQb2ludCAuLiAkTW9udGhFbmRQb2ludCApIHsKCiAgICAgICAgICAgIG15ICREYXlTdGFydFBvaW50ID0gJFllYXIgPT0gJFllYXJTdGFydCAmJiAkTW9udGggPT0gJE1vbnRoU3RhcnQgPyAkRGF5U3RhcnQgOiAxOwoKICAgICAgICAgICAgbXkgJERheUVuZFBvaW50OwogICAgICAgICAgICBpZiAoICRZZWFyID09ICRZZWFyRW5kICYmICRNb250aCA9PSAkTW9udGhFbmQgKSB7CiAgICAgICAgICAgICAgICAkRGF5RW5kUG9pbnQgPSAkRGF5RW5kOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJERheUVuZFBvaW50ID0gJFNlbGYtPkRheXNJbk1vbnRoKCAkWWVhciwgJE1vbnRoICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG15ICRNb250aFN0cmluZyA9IHNwcmludGYgIiUwMmQiLCAkTW9udGg7CgogICAgICAgICAgICBmb3IgbXkgJERheSAoICREYXlTdGFydFBvaW50IC4uICREYXlFbmRQb2ludCApIHsKCiAgICAgICAgICAgICAgICBteSAkVmFjYXRpb25DaGVjayA9ICRTZWxmLT5WYWNhdGlvbkNoZWNrKAogICAgICAgICAgICAgICAgICAgIFllYXIgICAgID0+ICRZZWFyLAogICAgICAgICAgICAgICAgICAgIE1vbnRoICAgID0+ICRNb250aCwKICAgICAgICAgICAgICAgICAgICBEYXkgICAgICA9PiAkRGF5LAogICAgICAgICAgICAgICAgICAgIENhbGVuZGFyID0+ICRDYWxlbmRhciB8fCAnJywKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBHZXQgY2FsZW5kYXIgdGltZXpvbmUgb3IgdXNlIHRoZSBvbmUgb2YgdGltZS1hY2NvdW50aW5nIG9iamVjdC4KICAgICAgICAgICAgICAgIG15ICRUaW1lWm9uZSA9ICRDb25maWdPYmplY3QtPkdldCggIlRpbWVab25lOjpDYWxlbmRhciIgLiAoICRDYWxlbmRhciB8fCAnJyApICkKICAgICAgICAgICAgICAgICAgICB8fCAkU2VsZi0+e1RpbWVab25lfTsKCiAgICAgICAgICAgICAgICBteSAkRGF5U3RhcnRUaW1lID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAgICAgICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICAgICAgICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBZZWFyICAgICA9PiAkWWVhciwKICAgICAgICAgICAgICAgICAgICAgICAgTW9udGggICAgPT4gJE1vbnRoLAogICAgICAgICAgICAgICAgICAgICAgICBEYXkgICAgICA9PiAkRGF5LAogICAgICAgICAgICAgICAgICAgICAgICBIb3VyICAgICA9PiAwLAogICAgICAgICAgICAgICAgICAgICAgICBNaW51dGUgICA9PiAwLAogICAgICAgICAgICAgICAgICAgICAgICBTZWNvbmQgICA9PiAwLAogICAgICAgICAgICAgICAgICAgICAgICBUaW1lWm9uZSA9PiAkVGltZVpvbmUsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgbXkgJERheVN0b3BUaW1lID0gJERheVN0YXJ0VGltZS0+Q2xvbmUoKTsKICAgICAgICAgICAgICAgICREYXlTdG9wVGltZS0+U2V0KAogICAgICAgICAgICAgICAgICAgIEhvdXIgICA9PiAyMywKICAgICAgICAgICAgICAgICAgICBNaW51dGUgPT4gNTksCiAgICAgICAgICAgICAgICAgICAgU2Vjb25kID0+IDU5LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIENvbnZlcnQgdG8gdGhlIHRpbWV6b25lIG9mIHRpbWUtYWNjb3VudGluZyBvYmplY3QuCiAgICAgICAgICAgICAgICAkRGF5U3RhcnRUaW1lLT5Ub1RpbWVab25lKAogICAgICAgICAgICAgICAgICAgIFRpbWVab25lID0+ICRTZWxmLT57VGltZVpvbmV9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICREYXlTdG9wVGltZS0+VG9UaW1lWm9uZSgKICAgICAgICAgICAgICAgICAgICBUaW1lWm9uZSA9PiAkU2VsZi0+e1RpbWVab25lfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBDb252ZXJ0IHRvIGVwb2Nocy4KICAgICAgICAgICAgICAgICREYXlTdGFydFRpbWUgPSAkRGF5U3RhcnRUaW1lLT5Ub0Vwb2NoKCk7CiAgICAgICAgICAgICAgICAkRGF5U3RvcFRpbWUgID0gJERheVN0b3BUaW1lLT5Ub0Vwb2NoKCk7CgogICAgICAgICAgICAgICAgIyBPTEQgQ09ERQoKICAgICAgICAgICAgICAgICNteSAkRGF0ZVRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICAgICAgICAgIyAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICAgICAgICAgICMgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgICAgICMgICAgICAgIFllYXIgID0+ICRZZWFyLAogICAgICAgICAgICAgICAgIyAgICAgICAgTW9udGggPT4gJE1vbnRoLAogICAgICAgICAgICAgICAgIyAgICAgICAgRGF5ICAgPT4gJERheSwKICAgICAgICAgICAgICAgICMgICAgfSwKICAgICAgICAgICAgICAgICMpOwoKICAgICAgICAgICAgICAgICNteSAkRGF0ZSA9IHNwcmludGYgIiUwNGQtJTAyZC0lMDJkIiwgJFllYXIsICRNb250aCwgJERheTsKCiAgICAgICAgICAgICAgICAjbXkgJERhdGVUaW1lT2JqZWN0U3RhcnQgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICAgICAgICAgIyAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICAgICAgICAgICMgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgICAgICMgICAgICAgIFN0cmluZyA9PiAkRGF0ZSAuICcgMDA6MDA6MDAnLAogICAgICAgICAgICAgICAgIyAgICB9LAogICAgICAgICAgICAgICAgIyk7CiAgICAgICAgICAgICAgICAjbXkgJERheVN0YXJ0VGltZSA9ICREYXRlVGltZU9iamVjdFN0YXJ0LT5Ub0Vwb2NoKCk7CgogICAgICAgICAgICAgICAgI215ICREYXRlVGltZU9iamVjdFN0b3AgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICAgICAgICAgIyAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICAgICAgICAgICMgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgICAgICMgICAgICAgIFN0cmluZyA9PiAkRGF0ZSAuICcgMjM6NTk6NTknLAogICAgICAgICAgICAgICAgIyAgICB9LAogICAgICAgICAgICAgICAgIyk7CiAgICAgICAgICAgICAgICAjbXkgJERheVN0b3BUaW1lID0gJERhdGVUaW1lT2JqZWN0U3RvcC0+VG9FcG9jaCgpOwoKICAgICAgICAgICAgICAgICMgYWRkIHRpbWUgem9uZSB0byBjYWxjdWxhdGlvbgogICAgICAgICAgICAgICAgI215ICRab25lID0gJENvbmZpZ09iamVjdC0+R2V0KCAiVGltZVpvbmU6OkNhbGVuZGFyIiAuICggJENhbGVuZGFyIHx8ICcnICkgKTsKICAgICAgICAgICAgICAgICNpZiAoJFpvbmUpIHsKICAgICAgICAgICAgICAgICMgICAgbXkgJFpvbmVTZWNvbmRzID0gJFpvbmUgKiA2MCAqIDYwOwogICAgICAgICAgICAgICAgIyAgICAkRGF5U3RhcnRUaW1lID0gJERheVN0YXJ0VGltZSAtICRab25lU2Vjb25kczsKICAgICAgICAgICAgICAgICMgICAgJERheVN0b3BUaW1lICA9ICREYXlTdG9wVGltZSAtICRab25lU2Vjb25kczsKICAgICAgICAgICAgICAgICN9CgogICAgICAgICAgICAgICAgIyBFTkQKCiAgICAgICAgICAgICAgICBteSAkVGhpc0RheVdvcmtpbmdUaW1lID0gJFNlbGYtPldvcmtpbmdUaW1lKAogICAgICAgICAgICAgICAgICAgIFN0YXJ0VGltZSA9PiAkRGF5U3RhcnRUaW1lLAogICAgICAgICAgICAgICAgICAgIFN0b3BUaW1lICA9PiAkRGF5U3RvcFRpbWUsCiAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIgID0+ICRDYWxlbmRhciB8fCAnJywKICAgICAgICAgICAgICAgICkgfHwgJzAnOwoKICAgICAgICAgICAgICAgIG15ICREYXlTdHJpbmcgPSBzcHJpbnRmICIlMDJkIiwgJERheTsKCiAgICAgICAgICAgICAgICBpZiAoICRUaGlzRGF5V29ya2luZ1RpbWUgJiYgISRWYWNhdGlvbkNoZWNrICkgewogICAgICAgICAgICAgICAgICAgICRXb3JraW5nRGF5cyArPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICRUaGlzRGF5V29ya2luZ1RpbWUKICAgICAgICAgICAgICAgICAgICAmJiAhJFZhY2F0aW9uQ2hlY2sKICAgICAgICAgICAgICAgICAgICAmJiAhJENvbXBsZXRlV29ya2luZ0RheXN7JFllYXJ9eyRNb250aFN0cmluZ317JERheVN0cmluZ30KICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJERhdGF7SW5jb21wbGV0ZX17JFllYXJ9eyRNb250aFN0cmluZ317JERheVN0cmluZ30gPSAkV29ya2luZ0RheXM7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBteSAkTWF4SW50ZXJ2YWxsT2ZJbmNvbXBsZXRlRGF5cyA9ICRDb25maWdPYmplY3QtPkdldCgnVGltZUFjY291bnRpbmc6Ok1heEludGVydmFsT2ZJbmNvbXBsZXRlRGF5cycpIHx8ICc1JzsKICAgIG15ICRNYXhJbnRlcnZhbGxPZkluY29tcGxldGVEYXlzQmVmb3JlV2FybmluZwogICAgICAgID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaW1lQWNjb3VudGluZzo6TWF4SW50ZXJ2YWxPZkluY29tcGxldGVEYXlzQmVmb3JlV2FybmluZycpCiAgICAgICAgfHwgJzMnOwogICAgZm9yIG15ICRZZWFyICggc29ydCBrZXlzICV7ICREYXRhe0luY29tcGxldGV9IH0gKSB7CgogICAgICAgIGZvciBteSAkTW9udGggKCBzb3J0IGtleXMgJXsgJERhdGF7SW5jb21wbGV0ZX17JFllYXJ9IH0gKSB7CgogICAgICAgICAgICBmb3IgbXkgJERheSAoIHNvcnQga2V5cyAleyAkRGF0YXtJbmNvbXBsZXRlfXskWWVhcn17JE1vbnRofSB9ICkgewoKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAkRGF0YXtJbmNvbXBsZXRlfXskWWVhcn17JE1vbnRofXskRGF5fQogICAgICAgICAgICAgICAgICAgIDwgJFdvcmtpbmdEYXlzIC0gJE1heEludGVydmFsbE9mSW5jb21wbGV0ZURheXMKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJERhdGF7RW5mb3JjZUluc2VydH0gPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzaWYgKAogICAgICAgICAgICAgICAgICAgICREYXRhe0luY29tcGxldGV9eyRZZWFyfXskTW9udGh9eyREYXl9CiAgICAgICAgICAgICAgICAgICAgPCAkV29ya2luZ0RheXMgLSAkTWF4SW50ZXJ2YWxsT2ZJbmNvbXBsZXRlRGF5c0JlZm9yZVdhcm5pbmcKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJERhdGF7V2FybmluZ30gPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAlRGF0YTsKfQoKPWhlYWQyIFdvcmtpbmdVbml0c0dldCgpCgpyZXR1cm5zIGEgaGFzaCB3aXRoIHRoZSB3b3JraW5nIHVuaXRzIGRhdGEKCiAgICBteSAlV29ya2luZ1VuaXRzRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzR2V0KAogICAgICAgIFllYXIgICA9PiAnMjAwNScsCiAgICAgICAgTW9udGggID0+ICc3JywKICAgICAgICBEYXkgICAgPT4gJzEzJywKICAgICAgICBVc2VySUQgPT4gJzEyMycsCiAgICApOwoKPWN1dAoKc3ViIFdvcmtpbmdVbml0c0dldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGlmICggISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCBVc2VySUQiCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICREYXRlICAgICAgPSBzcHJpbnRmICIlMDRkLSUwMmQtJTAyZCIsICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgJFBhcmFte0RheX07CiAgICBteSAkRGF0ZVN0YXJ0ID0gJERhdGUgLiAiIDAwOjAwOjAwIjsKICAgIG15ICREYXRlU3RvcCAgPSAkRGF0ZSAuICIgMjM6NTk6NTkiOwoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBhc2sgdGhlIGRhdGFiYXNlCiAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIHVzZXJfaWQsIHByb2plY3RfaWQsIGFjdGlvbl9pZCwgcmVtYXJrLCB0aW1lX3N0YXJ0LCB0aW1lX2VuZCwgcGVyaW9kCiAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3RhYmxlCiAgICAgICAgICAgIFdIRVJFIHRpbWVfc3RhcnQgPj0gPwogICAgICAgICAgICAgICAgQU5EIHRpbWVfc3RhcnQgPD0gPwogICAgICAgICAgICAgICAgQU5EIHVzZXJfaWQgPSA/CiAgICAgICAgICAgIE9SREVSIGJ5IGlkJywKICAgICAgICBCaW5kID0+IFsgXCREYXRlU3RhcnQsIFwkRGF0ZVN0b3AsIFwkUGFyYW17VXNlcklEfSBdLAogICAgKTsKCiAgICBteSAlRGF0YSA9ICgKICAgICAgICBUb3RhbCA9PiAwLAogICAgICAgIERhdGUgID0+ICREYXRlLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIFJPVzoKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewoKICAgICAgICBuZXh0IFJPVyBpZiAkUm93WzRdICF+IG17XiAoLis/KSBccyAoXGQrOlxkKykgOiAoXGQrKSB9eG1zOwoKICAgICAgICAjIGNoZWNrIGlmIGl0IGlzIGEgc3BlY2lhbCB3b3JraW5nIHVuaXQKICAgICAgICBpZiAoICRSb3dbMV0gPT0gLTEgKSB7CiAgICAgICAgICAgIG15ICRBY3Rpb25JRCA9ICRSb3dbMl07CgogICAgICAgICAgICAkRGF0YXtTaWNrfSAgICAgPSAkQWN0aW9uSUQgPT0gLTEgPyAxIDogMDsKICAgICAgICAgICAgJERhdGF7TGVhdmVEYXl9ID0gJEFjdGlvbklEID09IC0yID8gMSA6IDA7CiAgICAgICAgICAgICREYXRhe092ZXJ0aW1lfSA9ICRBY3Rpb25JRCA9PSAtMyA/IDEgOiAwOwoKICAgICAgICAgICAgbmV4dCBST1c7CiAgICAgICAgfQoKICAgICAgICBteSAkU3RhcnRUaW1lID0gJDI7CiAgICAgICAgbXkgJEVuZFRpbWUgICA9ICcnOwogICAgICAgIGlmICggJFJvd1s1XSA9fiBte14oLis/KVxzKFxkKzpcZCspOihcZCspfXhtcyApIHsKICAgICAgICAgICAgJEVuZFRpbWUgPSAkMjsKCiAgICAgICAgICAgICMgcmVwbGFjZSAyMzo1OTo1OSB3aXRoIDI0OjAwCiAgICAgICAgICAgIGlmICggJEVuZFRpbWUgZXEgJzIzOjU5JyAmJiAkMyBlcSAnNTknICkgewogICAgICAgICAgICAgICAgJEVuZFRpbWUgPSAnMjQ6MDAnOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBteSAlV29ya2luZ1VuaXQgPSAoCiAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUm93WzBdLAogICAgICAgICAgICBQcm9qZWN0SUQgPT4gJFJvd1sxXSwKICAgICAgICAgICAgQWN0aW9uSUQgID0+ICRSb3dbMl0sCiAgICAgICAgICAgIFJlbWFyayAgICA9PiAkUm93WzNdLAogICAgICAgICAgICBTdGFydFRpbWUgPT4gJFN0YXJ0VGltZSwKICAgICAgICAgICAgRW5kVGltZSAgID0+ICRFbmRUaW1lLAogICAgICAgICAgICBQZXJpb2QgICAgPT4gZGVmaW5lZCggJFJvd1s2XSApID8gc3ByaW50ZiggIiUuMmYiLCAkUm93WzZdICkgOiAwLAogICAgICAgICk7CgogICAgICAgICMgb25seSBjb3VudCBjb21wbGV0ZSB3b3JraW5nIHVuaXRzCiAgICAgICAgaWYgKCAkUm93WzFdICYmICRSb3dbMl0gKSB7CiAgICAgICAgICAgICREYXRhe1RvdGFsfSArPSAkV29ya2luZ1VuaXR7UGVyaW9kfTsKICAgICAgICB9CgogICAgICAgIHB1c2ggQHsgJERhdGF7V29ya2luZ1VuaXRzfSB9LCBcJVdvcmtpbmdVbml0OwogICAgfQoKICAgIHJldHVybiAlRGF0YTsKfQoKPWhlYWQyIFdvcmtpbmdVbml0c0luc2VydCgpCgppbnNlcnQgd29ya2luZyB1bml0cyBpbiB0aGUgZGIKCiAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0luc2VydCgKICAgICAgICBZZWFyICA9PiAnMjAwNScsCiAgICAgICAgTW9udGggPT4gJzA3JywKICAgICAgICBEYXkgICA9PiAnMDInLAogICAgICAgIExlYXZlRGF5ID0+IDEsIHx8IDAKICAgICAgICBTaWNrICAgICA9PiAxLCB8fCAwCiAgICAgICAgT3ZlcnRpbWUgPT4gMSwgfHwgMAogICAgICAgIFdvcmtpbmdVbml0cyA9PiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFByb2plY3RJRCA9PiAxLAogICAgICAgICAgICAgICAgQWN0aW9uSUQgID0+IDIzLAogICAgICAgICAgICAgICAgUmVtYXJrICAgID0+ICdTb21lVGV4dCcsCiAgICAgICAgICAgICAgICBTdGFydFRpbWUgPT4gJzc6MzAnLAogICAgICAgICAgICAgICAgRW5kVGltZSAgID0+ICcxMTowMCcsCiAgICAgICAgICAgICAgICBQZXJpb2QgICAgPT4gJzguNScsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsgLi4uLi4uIH0sCiAgICAgICAgXSwKICAgICAgICBVc2VySUQgPT4gMTIzLAogICAgKTsKCj1jdXQKCnN1YiBXb3JraW5nVW5pdHNJbnNlcnQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoWWVhciBNb250aCBEYXkgVXNlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIldvcmtpbmdVbml0c0luc2VydDogTmVlZCAkTmVlZGVkISIKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJERhdGUgPSBzcHJpbnRmICIlMDRkLSUwMmQtJTAyZCIsICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgJFBhcmFte0RheX07CgogICAgIyBhZGQgc3BlY2lhbCB0aW1lIHdvcmtpbmcgdW5pdHMKICAgIG15ICVTcGVjaWFsQWN0aW9uID0gKAogICAgICAgICdTaWNrJyAgICAgPT4gJy0xJywKICAgICAgICAnTGVhdmVEYXknID0+ICctMicsCiAgICAgICAgJ092ZXJ0aW1lJyA9PiAnLTMnLAogICAgKTsKCiAgICBFTEVNRU5UOgogICAgZm9yIG15ICRFbGVtZW50IChxdyhMZWF2ZURheSBTaWNrIE92ZXJ0aW1lKSkgewoKICAgICAgICBuZXh0IEVMRU1FTlQgaWYgISRQYXJhbXskRWxlbWVudH07CgogICAgICAgIG15ICVVbml0ID0gKAogICAgICAgICAgICBQcm9qZWN0SUQgPT4gLTEsCiAgICAgICAgICAgIEFjdGlvbklEICA9PiAkU3BlY2lhbEFjdGlvbnskRWxlbWVudH0sCiAgICAgICAgICAgIFJlbWFyayAgICA9PiAnJywKICAgICAgICAgICAgU3RhcnRUaW1lID0+ICcnLAogICAgICAgICAgICBFbmRUaW1lICAgPT4gJycsCiAgICAgICAgICAgIFBlcmlvZCAgICA9PiAwLAogICAgICAgICk7CgogICAgICAgIHB1c2ggQHsgJFBhcmFte1dvcmtpbmdVbml0c30gfSwgXCVVbml0OwogICAgfQoKICAgICMgaW5zZXJ0IG5ldyB3b3JraW5nIHVuaXRzCiAgICBVTklUUkVGOgogICAgZm9yIG15ICRVbml0UmVmICggQHsgJFBhcmFte1dvcmtpbmdVbml0c30gfSApIHsKCiAgICAgICAgbXkgJFN0YXJ0VGltZSA9ICREYXRlIC4gJyAnIC4gKCAkVW5pdFJlZi0+e1N0YXJ0VGltZX0gfHwgJzAwOjAwJyApIC4gJzowMCc7CiAgICAgICAgbXkgJEVuZFRpbWUgICA9ICREYXRlIC4gJyAnIC4gKCAkVW5pdFJlZi0+e0VuZFRpbWV9ICAgfHwgJzAwOjAwJyApIC4gJzowMCc7CgogICAgICAgICMgJycgZG9lcyBub3Qgd29yayBpbiBpbnRlZ2VyIGZpZWxkIG9mIFBvc3RncmVTUUwKICAgICAgICAkVW5pdFJlZi0+e1Byb2plY3RJRH0gfHw9IDA7CiAgICAgICAgJFVuaXRSZWYtPntBY3Rpb25JRH0gIHx8PSAwOwogICAgICAgICRVbml0UmVmLT57UGVyaW9kfSAgICB8fD0gMDsKCiAgICAgICAgIyBidWlsZCBEUUwKICAgICAgICBteSAkU1FMID0gJwogICAgICAgICAgICBJTlNFUlQgSU5UTyB0aW1lX2FjY291bnRpbmdfdGFibGUgKHVzZXJfaWQsIHByb2plY3RfaWQsIGFjdGlvbl9pZCwgcmVtYXJrLCB0aW1lX3N0YXJ0LAogICAgICAgICAgICAgICAgdGltZV9lbmQsIHBlcmlvZCwgY3JlYXRlZCApCiAgICAgICAgICAgIFZBTFVFUyAgKCA/LCA/LCA/LCA/LCA/LCA/LCA/LCBjdXJyZW50X3RpbWVzdGFtcCknOwogICAgICAgIG15ICRCaW5kID0gWwogICAgICAgICAgICBcJFBhcmFte1VzZXJJRH0sIFwkVW5pdFJlZi0+e1Byb2plY3RJRH0sIFwkVW5pdFJlZi0+e0FjdGlvbklEfSwKICAgICAgICAgICAgXCRVbml0UmVmLT57UmVtYXJrfSwgXCRTdGFydFRpbWUsIFwkRW5kVGltZSwgXCRVbml0UmVmLT57UGVyaW9kfSwKICAgICAgICBdOwoKICAgICAgICAjIGRiIGluc2VydAogICAgICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgICAgICBTUUwgID0+ICRTUUwsCiAgICAgICAgICAgIEJpbmQgPT4gJEJpbmQKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgV29ya2luZ1VuaXRzRGVsZXRlKCkKCmRlbGV0ZXMgd29ya2luZyB1bml0cyBpbiB0aGUgZGIKCiAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0RlbGV0ZSgKICAgICAgICBZZWFyICAgPT4gJzIwMTUnLAogICAgICAgIE1vbnRoICA9PiAnNycsCiAgICAgICAgRGF5ICAgID0+ICcxMycsCiAgICAgICAgVXNlcklEID0+IDEyMywKICAgICk7Cgo9Y3V0CgpzdWIgV29ya2luZ1VuaXRzRGVsZXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgZm9yIG15ICROZWVkZWQgKHF3KFllYXIgTW9udGggRGF5IFVzZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJXb3JraW5nVW5pdHNJbnNlcnQ6IE5lZWQgJE5lZWRlZCEiCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICREYXRlICAgICAgPSBzcHJpbnRmICIlMDRkLSUwMmQtJTAyZCIsICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSwgJFBhcmFte0RheX07CiAgICBteSAkU3RhcnRUaW1lID0gJERhdGUgLiAnIDAwOjAwOjAwJzsKICAgIG15ICRFbmRUaW1lICAgPSAkRGF0ZSAuICcgMjM6NTk6NTknOwoKICAgIHJldHVybiBpZiAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyktPkRvKAogICAgICAgIFNRTCA9PiAnCiAgICAgICAgICAgIERFTEVURSBGUk9NIHRpbWVfYWNjb3VudGluZ190YWJsZQogICAgICAgICAgICBXSEVSRSB0aW1lX3N0YXJ0ID49ID8KICAgICAgICAgICAgICAgIEFORCB0aW1lX3N0YXJ0IDw9ID8KICAgICAgICAgICAgICAgIEFORCB1c2VyX2lkID0gPycsCiAgICAgICAgQmluZCA9PiBbIFwkU3RhcnRUaW1lLCBcJEVuZFRpbWUsIFwkUGFyYW17VXNlcklEfSwgXSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBQcm9qZWN0QWN0aW9uUmVwb3J0aW5nKCkKCnJldHVybnMgYSBoYXNoIHdpdGggdGhlIGhvdXJzIGRlcGVuZGVudCBwcm9qZWN0IGFuZCBhY3Rpb24gZGF0YQoKICAgIG15ICVQcm9qZWN0RGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdEFjdGlvblJlcG9ydGluZygKICAgICAgICBZZWFyICA9PiAyMDA1LAogICAgICAgIE1vbnRoID0+IDcsCiAgICAgICAgVXNlcklEID0+IDEyMywgIyBvcHRpb25hbDsgbm8gVXNlcklEIG1lYW5zICdvZiBhbGwgdXNlcnMnCiAgICApOwoKPWN1dAoKc3ViIFByb2plY3RBY3Rpb25SZXBvcnRpbmcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhZZWFyIE1vbnRoKSkgewogICAgICAgICRQYXJhbXskUGFyYW1ldGVyfSA9ICREQk9iamVjdC0+UXVvdGUoICRQYXJhbXskUGFyYW1ldGVyfSApIHx8ICcnOwogICAgICAgIGlmICggISRQYXJhbXskUGFyYW1ldGVyfSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlByb2plY3RBY3Rpb25SZXBvcnRpbmc6IE5lZWQgJFBhcmFtZXRlciEiCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgaG91cnMgcGVyIG1vbnRoCiAgICBteSAkRGF5c0luTW9udGggPSAkU2VsZi0+RGF5c0luTW9udGgoICRQYXJhbXtZZWFyfSwgJFBhcmFte01vbnRofSApOwogICAgbXkgJERhdGVTdHJpbmcgID0gJFBhcmFte1llYXJ9IC4gIi0iIC4gc3ByaW50ZiggIiUwMmQiLCAkUGFyYW17TW9udGh9ICk7CiAgICBteSAkU1FMRGF0ZSAgICAgPSAiJERhdGVTdHJpbmctJERheXNJbk1vbnRoIDIzOjU5OjU5IjsKCiAgICBteSAkU1FMID0gJwogICAgICAgIFNFTEVDVCBwcm9qZWN0X2lkLCBhY3Rpb25faWQsIHBlcmlvZAogICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3RhYmxlCiAgICAgICAgV0hFUkUgcHJvamVjdF9pZCAhPSAtMQogICAgICAgICAgICBBTkQgdGltZV9zdGFydCA8PSA/JzsKICAgIG15IEBCaW5kID0gKCBcJFNRTERhdGUgKTsKCiAgICBpZiAoICRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRTUUwgLj0gJyBBTkQgdXNlcl9pZCA9ID8nOwogICAgICAgIHB1c2ggQEJpbmQsIFwkUGFyYW17VXNlcklEfTsKICAgIH0KCiAgICAjIHRvdGFsIGhvdXJzCiAgICAkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMICA9PiAkU1FMLAogICAgICAgIEJpbmQgPT4gXEBCaW5kLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSBkYXRhCiAgICBteSAlRGF0YTsKICAgIFJPVzoKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewoKICAgICAgICBuZXh0IFJPVyBpZiAhJFJvd1syXTsKCiAgICAgICAgJERhdGF7ICRSb3dbMF0gfS0+e0FjdGlvbnN9LT57ICRSb3dbMV0gfS0+e1RvdGFsfSArPSAkUm93WzJdOwogICAgfQoKICAgIG15ICRTUUxEYXRlU3RhcnQgPSAiJERhdGVTdHJpbmctMDEgMDA6MDA6MDAiOwoKICAgICRTUUwgPSAnCiAgICAgICAgU0VMRUNUIHByb2plY3RfaWQsIGFjdGlvbl9pZCwgcGVyaW9kCiAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfdGFibGUKICAgICAgICBXSEVSRSBwcm9qZWN0X2lkICE9IC0xCiAgICAgICAgICAgIEFORCB0aW1lX3N0YXJ0ID49ID8KICAgICAgICAgICAgQU5EIHRpbWVfc3RhcnQgPD0gPyc7CiAgICBAQmluZCA9ICggXCRTUUxEYXRlU3RhcnQsIFwkU1FMRGF0ZSApOwoKICAgIGlmICggJFBhcmFte1VzZXJJRH0gKSB7CiAgICAgICAgJFNRTCAuPSAnIEFORCB1c2VyX2lkID0gPyc7CiAgICAgICAgcHVzaCBAQmluZCwgXCRQYXJhbXtVc2VySUR9OwogICAgfQoKICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgID0+ICRTUUwsCiAgICAgICAgQmluZCA9PiBcQEJpbmQsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIGRhdGEKICAgIFJPVzoKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewoKICAgICAgICBuZXh0IFJPVyBpZiAhJFJvd1syXTsKCiAgICAgICAgJERhdGF7ICRSb3dbMF0gfS0+e0FjdGlvbnN9LT57ICRSb3dbMV0gfS0+e1Blck1vbnRofSArPSAkUm93WzJdOwogICAgfQoKICAgICMgYWRkIHJlYWRhYmxlIGNvbXBvbmVudHMKICAgIG15ICVQcm9qZWN0ID0gJFNlbGYtPlByb2plY3RTZXR0aW5nc0dldCgpOwogICAgbXkgJUFjdGlvbiAgPSAkU2VsZi0+QWN0aW9uU2V0dGluZ3NHZXQoKTsKCiAgICBmb3IgbXkgJFByb2plY3RJRCAoIHNvcnQga2V5cyAlRGF0YSApIHsKCiAgICAgICAgJERhdGF7JFByb2plY3RJRH0tPntOYW1lfSAgICAgICAgPSAkUHJvamVjdHtQcm9qZWN0fS0+eyRQcm9qZWN0SUR9IHx8ICcnOwogICAgICAgICREYXRheyRQcm9qZWN0SUR9LT57U3RhdHVzfSAgICAgID0gJFByb2plY3R7UHJvamVjdFN0YXR1c30tPnskUHJvamVjdElEfTsKICAgICAgICAkRGF0YXskUHJvamVjdElEfS0+e0Rlc2NyaXB0aW9ufSA9ICRQcm9qZWN0e1Byb2plY3REZXNjcmlwdGlvbn0tPnskUHJvamVjdElEfTsKCiAgICAgICAgbXkgJEFjdGlvbnNSZWYgPSAkRGF0YXskUHJvamVjdElEfS0+e0FjdGlvbnN9OwoKICAgICAgICBmb3IgbXkgJEFjdGlvbklEICggc29ydCBrZXlzICV7JEFjdGlvbnNSZWZ9ICkgewogICAgICAgICAgICAkRGF0YXskUHJvamVjdElEfS0+e0FjdGlvbnN9LT57JEFjdGlvbklEfS0+e05hbWV9ID0gJEFjdGlvbnskQWN0aW9uSUR9LT57QWN0aW9ufSB8fCAnJzsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuICVEYXRhOwp9Cgo9aGVhZDIgUHJvamVjdFRvdGFsSG91cnMoKQoKcmV0dXJucyB0aGUgc3VtIG9mIGFsbCBob3VycyByZWxhdGVkIHRvIGEgcHJvamVjdAoKICAgIG15ICRQcm9qZWN0VG90YWxIb3VycyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFRvdGFsSG91cnMoCiAgICAgICAgUHJvamVjdElEICA9PiAxNSwKICAgICk7Cgo9Y3V0CgpzdWIgUHJvamVjdFRvdGFsSG91cnMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBwYXJhbQogICAgaWYgKCAhJFBhcmFte1Byb2plY3RJRH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdQcm9qZWN0QWN0aW9uUmVwb3J0aW5nOiBOZWVkIFByb2plY3RJRCEnCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZ2V0IGRhdGFiYXNlIG9iamVjdAogICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgIyBhc2sgdGhlIGRhdGFiYXNlCiAgICByZXR1cm4gaWYgISREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBTRUxFQ1QgU1VNKHBlcmlvZCkKICAgICAgICAgICAgRlJPTSB0aW1lX2FjY291bnRpbmdfdGFibGUKICAgICAgICAgICAgV0hFUkUgcHJvamVjdF9pZCA9ID8nLAogICAgICAgIEJpbmQgID0+IFsgXCRQYXJhbXtQcm9qZWN0SUR9IF0sCiAgICAgICAgTGltaXQgPT4gMSwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICBteSAkVG90YWwgPSAwOwogICAgd2hpbGUgKCBteSBAUm93ID0gJERCT2JqZWN0LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJFRvdGFsID0gJFJvd1swXTsKICAgIH0KCiAgICByZXR1cm4gJFRvdGFsOwp9Cgo9aGVhZDIgUHJvamVjdEhpc3RvcnkoKQoKcmV0dXJucyBhbiBhcnJheSB3aXRoIGFsbCBXb3JraW5nVW5pdHMgcmVsYXRlZCB0byBhIHByb2plY3QKCiAgICBteSBAUHJvamVjdEhpc3RvcnlBcnJheSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdEhpc3RvcnkoCiAgICAgICAgUHJvamVjdElEICA9PiAxNSwKICAgICk7CgpUaGlzIHdvdWxkIHJldHVybgoKICAgIEBQcm9qZWN0SGlzdG9yeUFycmF5ID0gKAogICAgICAgIHsKICAgICAgICAgICAgSUQgICAgICAgID0+IDk5OSwKICAgICAgICAgICAgVXNlcklEICAgID0+IDE1LAogICAgICAgICAgICBVc2VyICAgICAgPT4gJ1RvbScsCiAgICAgICAgICAgIEFjdGlvbklEICA9PiA2LAogICAgICAgICAgICBBY3Rpb24gICAgPT4gJ21pc2MnLAogICAgICAgICAgICBSZW1hcmsgICAgPT4gJ3JlbWFyaycsCiAgICAgICAgICAgIFRpbWVTdGFydCA9PiAnNzowMCcsCiAgICAgICAgICAgIFRpbWVFbmQgICA9PiAnMTg6MDAnLAogICAgICAgICAgICBEYXRlICAgICAgPT4gJzIwMDgtMTAtMzEnLCAjIHRoZSBkYXRlIG9mIHRoZSB3b3JraW5nIHVuaXQKICAgICAgICAgICAgUGVyaW9kICAgID0+IDExLAogICAgICAgICAgICBDcmVhdGVkICAgPT4gJzIwMDgtMTEtMDEnLCAjIHRoZSBpbnNlcnQgdGltZSBvZiB0aGUgd29ya2luZyB1bml0CiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIElEICAgICAgICA9PiA5OTksCiAgICAgICAgICAgIFVzZXJJRCAgICA9PiAxNiwKICAgICAgICAgICAgVXNlciAgICAgID0+ICdNYW5lJywKICAgICAgICAgICAgQWN0aW9uSUQgID0+IDcsCiAgICAgICAgICAgIEFjdGlvbiAgICA9PiAnZGV2ZWxvcG1lbnQnLAogICAgICAgICAgICBSZW1hcmsgICAgPT4gJ3JlbWFyaycsCiAgICAgICAgICAgIFRpbWVTdGFydCA9PiAnNzowMCcsCiAgICAgICAgICAgIFRpbWVFbmQgICA9PiAnMTg6MDAnLAogICAgICAgICAgICBQZXJpb2QgICAgPT4gMTEsCiAgICAgICAgICAgIERhdGUgICAgICA9PiAnMjAwOC0xMS0wMycsCiAgICAgICAgICAgIENyZWF0ZWQgICA9PiAnMjAwOC0xMS0wMycsCiAgICAgICAgfQogICAgKTsKCj1jdXQKCnN1YiBQcm9qZWN0SGlzdG9yeSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHBhcmFtCiAgICBpZiAoICEkUGFyYW17UHJvamVjdElEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ1Byb2plY3RBY3Rpb25SZXBvcnRpbmc6IE5lZWQgUHJvamVjdElEIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBjYWxsIGFjdGlvbiBkYXRhIHRvIGdldCB0aGUgcmVhZGFibGUgbmFtZSBvZiB0aGUgYWN0aW9uCiAgICBteSAlQWN0aW9uRGF0YSA9ICRTZWxmLT5BY3Rpb25TZXR0aW5nc0dldCgpOwoKICAgICMgZ2V0IHVzZXIgbGlzdAogICAgbXkgJVNob3duVXNlcnMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTGlzdCgKICAgICAgICBUeXBlICA9PiAnTG9uZycsCiAgICAgICAgVmFsaWQgPT4gMCwKICAgICk7CgogICAgIyBnZXQgZGF0YWJhc2Ugb2JqZWN0CiAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAjIGFzayB0aGUgZGF0YWJhc2UKICAgICREQk9iamVjdC0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gJwogICAgICAgICAgICBTRUxFQ1QgaWQsIHVzZXJfaWQsIGFjdGlvbl9pZCwgcmVtYXJrLCB0aW1lX3N0YXJ0LCB0aW1lX2VuZCwgcGVyaW9kLCBjcmVhdGVkCiAgICAgICAgICAgIEZST00gdGltZV9hY2NvdW50aW5nX3RhYmxlCiAgICAgICAgICAgIFdIRVJFIHByb2plY3RfaWQgPSA/CiAgICAgICAgICAgIE9SREVSIEJZIHRpbWVfc3RhcnQnLAogICAgICAgIEJpbmQgPT4gWyBcJFBhcmFte1Byb2plY3RJRH0gXSwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICBteSBARGF0YTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICREQk9iamVjdC0+RmV0Y2hyb3dBcnJheSgpICkgewoKICAgICAgICBteSAkVXNlclJlZiA9IHsKICAgICAgICAgICAgSUQgICAgICAgID0+ICRSb3dbMF0sCiAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUm93WzFdLAogICAgICAgICAgICBVc2VyICAgICAgPT4gJFNob3duVXNlcnN7ICRSb3dbMV0gfSwKICAgICAgICAgICAgQWN0aW9uSUQgID0+ICRSb3dbMl0sCiAgICAgICAgICAgIEFjdGlvbiAgICA9PiAkQWN0aW9uRGF0YXsgJFJvd1syXSB9e0FjdGlvbn0sCiAgICAgICAgICAgIFJlbWFyayAgICA9PiAkUm93WzNdIHx8ICcnLAogICAgICAgICAgICBUaW1lU3RhcnQgPT4gJFJvd1s0XSwKICAgICAgICAgICAgVGltZUVuZCAgID0+ICRSb3dbNV0sCiAgICAgICAgICAgIERhdGUgICAgICA9PiAkUm93WzRdLAogICAgICAgICAgICBQZXJpb2QgICAgPT4gJFJvd1s2XSwKICAgICAgICAgICAgQ3JlYXRlZCAgID0+ICRSb3dbN10sCiAgICAgICAgfTsKICAgICAgICAkVXNlclJlZi0+e0RhdGV9ID1+IHN7KFxkXGRcZFxkLVxkXGQtXGRcZCkgXHMgLisgfXskMX14bXM7CgogICAgICAgIHB1c2ggQERhdGEsICRVc2VyUmVmOwogICAgfQoKICAgIHJldHVybiBARGF0YTsKfQoKPWhlYWQyIExhc3RQcm9qZWN0c09mVXNlcigpCgpyZXR1cm5zIGFuIGFycmF5IHdpdGggdGhlIGxhc3QgcHJvamVjdHMgb2YgdGhlIGN1cnJlbnQgdXNlcgoKICAgIG15IEBMYXN0UHJvamVjdHMgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkxhc3RQcm9qZWN0c09mVXNlcigKICAgICAgICBVc2VySUQgPT4gMTIzLAogICAgKTsKCj1jdXQKCnN1YiBMYXN0UHJvamVjdHNPZlVzZXIgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBpZiAoICEkUGFyYW17VXNlcklEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgVXNlcklEIgogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCBkYXRhYmFzZSBvYmplY3QKICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICMgZGIgc2VsZWN0CiAgICAjIEkgZG9uJ3QgdXNlIGRpc3RpbmN0IGJlY2F1c2Ugb2YgT1JERVIgQlkgcHJvYmxlbXMgb2YgUG9zdGdyZVNRTAogICAgcmV0dXJuIGlmICEkREJPYmplY3QtPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICcKICAgICAgICAgICAgU0VMRUNUIHByb2plY3RfaWQgRlJPTSB0aW1lX2FjY291bnRpbmdfdGFibGUKICAgICAgICAgICAgV0hFUkUgdXNlcl9pZCA9ID8KICAgICAgICAgICAgICAgIEFORCBwcm9qZWN0X2lkIDw+IC0xCiAgICAgICAgICAgIE9SREVSIEJZIHRpbWVfc3RhcnQgREVTQycsCiAgICAgICAgQmluZCAgPT4gWyBcJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICBMaW1pdCA9PiA0MCwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICBteSAlUHJvamVjdHM7CiAgICBteSAkQ291bnRlciA9IDA7CiAgICBST1c6CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkREJPYmplY3QtPkZldGNocm93QXJyYXkoKSApIHsKCiAgICAgICAgbmV4dCBST1cgaWYgJENvdW50ZXIgPiA3OwogICAgICAgIG5leHQgUk9XIGlmICRQcm9qZWN0c3sgJFJvd1swXSB9OwoKICAgICAgICAkUHJvamVjdHN7ICRSb3dbMF0gfSA9IDE7CiAgICAgICAgJENvdW50ZXIrKzsKICAgIH0KCiAgICByZXR1cm4ga2V5cyAlUHJvamVjdHM7Cn0KCj1oZWFkMiBEYXlPZldlZWsoKQoKU3Vic3RpdHV0ZSBmb3IgRGF0ZTo6UGNhbGM6OkRheV9vZl9XZWVrKCkgd2hpY2ggdXNlcyBLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUuCgo9Y3V0CgpzdWIgRGF5T2ZXZWVrIHsKICAgIG15ICggJFNlbGYsICRZZWFyLCAkTW9udGgsICREYXkgKSA9IEBfOwoKICAgIG15ICREYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAgICAgT2JqZWN0UGFyYW1zID0+IHsKICAgICAgICAgICAgWWVhciAgICAgPT4gJFllYXIsCiAgICAgICAgICAgIE1vbnRoICAgID0+ICRNb250aCwKICAgICAgICAgICAgRGF5ICAgICAgPT4gJERheSwKICAgICAgICAgICAgVGltZVpvbmUgPT4gJ2Zsb2F0aW5nJywKICAgICAgICB9LAogICAgKTsKCiAgICBpZiAoICEkRGF0ZVRpbWVPYmplY3QgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICJlcnJvciIsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJFcnJvciBjcmVhdGluZyBEYXRlVGltZSBvYmplY3QuIiwKICAgICAgICApOwoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJERhdGVUaW1lVmFsdWVzID0gJERhdGVUaW1lT2JqZWN0LT5HZXQoKTsKCiAgICByZXR1cm4gJERhdGVUaW1lVmFsdWVzLT57RGF5T2ZXZWVrfTsKfQoKPWhlYWQyIEFkZERlbHRhWU1EKCkKClN1YnN0aXR1dGUgZm9yIERhdGU6OlBjYWxjOjpBZGRfRGVsdGFfWU1EKCkgd2hpY2ggdXNlcyBLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUuCgo9Y3V0CgpzdWIgQWRkRGVsdGFZTUQgewogICAgbXkgKCAkU2VsZiwgJFllYXIsICRNb250aCwgJERheSwgJFllYXJzVG9BZGQsICRNb250aHNUb0FkZCwgJERheXNUb0FkZCApID0gQF87CgogICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICBZZWFyICAgICA9PiAkWWVhciwKICAgICAgICAgICAgTW9udGggICAgPT4gJE1vbnRoLAogICAgICAgICAgICBEYXkgICAgICA9PiAkRGF5LAogICAgICAgICAgICBUaW1lWm9uZSA9PiAnZmxvYXRpbmcnLAogICAgICAgIH0sCiAgICApOwoKICAgIGlmICggISREYXRlVGltZU9iamVjdCApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gImVycm9yIiwKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkVycm9yIGNyZWF0aW5nIERhdGVUaW1lIG9iamVjdC4iLAogICAgICAgICk7CgogICAgICAgIHJldHVybiAoICRZZWFyLCAkTW9udGgsICREYXksICk7CiAgICB9CgogICAgJERhdGVUaW1lT2JqZWN0LT5BZGQoCiAgICAgICAgWWVhcnMgID0+ICRZZWFyc1RvQWRkICB8fCAwLAogICAgICAgIE1vbnRocyA9PiAkTW9udGhzVG9BZGQgfHwgMCwKICAgICAgICBEYXlzICAgPT4gJERheXNUb0FkZCAgIHx8IDAsCiAgICApOwogICAgbXkgJERhdGVUaW1lVmFsdWVzID0gJERhdGVUaW1lT2JqZWN0LT5HZXQoKTsKCiAgICByZXR1cm4gKAogICAgICAgICREYXRlVGltZVZhbHVlcy0+e1llYXJ9LAogICAgICAgICREYXRlVGltZVZhbHVlcy0+e01vbnRofSwKICAgICAgICAkRGF0ZVRpbWVWYWx1ZXMtPntEYXl9LAogICAgKTsKfQoKPWhlYWQyIERheXNJbk1vbnRoKCkKClN1YnN0aXR1dGUgZm9yIERhdGU6OlBjYWxjOjpEYXlzX2luX01vbnRoKCkgd2hpY2ggdXNlcyBLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUuCgo9Y3V0CgpzdWIgRGF5c0luTW9udGggewogICAgbXkgKCAkU2VsZiwgJFllYXIsICRNb250aCApID0gQF87CgogICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICBZZWFyICAgICA9PiAkWWVhciwKICAgICAgICAgICAgTW9udGggICAgPT4gJE1vbnRoLAogICAgICAgICAgICBEYXkgICAgICA9PiAxLAogICAgICAgICAgICBUaW1lWm9uZSA9PiAnZmxvYXRpbmcnLAogICAgICAgIH0sCiAgICApOwoKICAgIGlmICggISREYXRlVGltZU9iamVjdCApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gImVycm9yIiwKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkVycm9yIGNyZWF0aW5nIERhdGVUaW1lIG9iamVjdC4iLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSAkTGFzdERheU9mTW9udGggPSAkRGF0ZVRpbWVPYmplY3QtPkxhc3REYXlPZk1vbnRoR2V0KCk7CgogICAgcmV0dXJuICRMYXN0RGF5T2ZNb250aC0+e0RheX07Cn0KCj1oZWFkMiBWYWNhdGlvbkNoZWNrKCkKCmNoZWNrIGlmIHRoZSBzZWxlY3RlZCBkYXkgaXMgYSB2YWNhdGlvbiAoaXQgZG9lcyBub3QgbWF0dGVyIGlmIHlvdQppbnNlcnQgMDEgb3IgMSBmb3IgbW9udGggb3IgZGF5IGluIHRoZSBmdW5jdGlvbiBvciBpbiB0aGUgU3lzQ29uZmlnKQoKcmV0dXJucyAodHJ1ZSkgdmFjYXRpb24gZGF5IGlmIGV4aXN0cywgcmV0dXJucyBmYWxzZSBpZiBkYXRlIGlzIG5vCnZhY2F0aW9uIGRheQoKICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+VmFjYXRpb25DaGVjaygKICAgICAgICBZZWFyICAgICA9PiAyMDA1LAogICAgICAgIE1vbnRoICAgID0+IDcgfHwgJzA3JywKICAgICAgICBEYXkgICAgICA9PiAxMywKICAgICk7CgogICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5WYWNhdGlvbkNoZWNrKAogICAgICAgIFllYXIgICAgID0+IDIwMDUsCiAgICAgICAgTW9udGggICAgPT4gNyB8fCAnMDcnLAogICAgICAgIERheSAgICAgID0+IDEzLAogICAgICAgIENhbGVuZGFyID0+IDMsICMgJycgaXMgZGVmYXVsdDsgMCBpcyBoYW5kbGVkIGxpa2UgJycKICAgICk7Cgo9Y3V0CgpzdWIgVmFjYXRpb25DaGVjayB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgcmVxdWlyZWQgcGFyYW1zCiAgICBmb3IgKHF3KFllYXIgTW9udGggRGF5KSkgewogICAgICAgIGlmICggISRQYXJhbXskX30gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJWYWNhdGlvbkNoZWNrOiBOZWVkICRfISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIFRpbWVab25lID0+ICRTZWxmLT57VGltZVpvbmV9LAogICAgICAgIH0sCiAgICApOwogICAgaWYgKCAhJERhdGVUaW1lT2JqZWN0ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiRXJyb3IgY3JlYXRpbmcgRGF0ZVRpbWUgb2JqZWN0LiIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgcmV0dXJuICREYXRlVGltZU9iamVjdC0+SXNWYWNhdGlvbkRheSgKICAgICAgICBDYWxlbmRhciA9PiAkUGFyYW17Q2FsZW5kYXJ9LAogICAgKTsKfQoKPWhlYWQyIFdvcmtpbmdUaW1lKCkKCmdldCB0aGUgd29ya2luZyB0aW1lIGluIHNlY29uZHMgYmV0d2VlbiB0aGVzZSBsb2NhbCBzeXN0ZW0gdGltZXMuCgogICAgbXkgJFdvcmtpbmdUaW1lID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVGltZSgKICAgICAgICBTdGFydFRpbWUgPT4gJENyZWF0ZWQsCiAgICAgICAgU3RvcFRpbWUgID0+ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lKCksCiAgICApOwoKICAgIG15ICRXb3JraW5nVGltZSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1RpbWUoCiAgICAgICAgU3RhcnRUaW1lID0+ICRDcmVhdGVkLAogICAgICAgIFN0b3BUaW1lICA9PiAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpLAogICAgICAgIENhbGVuZGFyICA9PiAzLCAjICcnIGlzIGRlZmF1bHQKICAgICk7Cgo9Y3V0CgpzdWIgV29ya2luZ1RpbWUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIChxdyhTdGFydFRpbWUgU3RvcFRpbWUpKSB7CiAgICAgICAgaWYgKCAhZGVmaW5lZCAkUGFyYW17JF99ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkXyEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAwIGlmICRQYXJhbXtTdGFydFRpbWV9ID49ICRQYXJhbXtTdG9wVGltZX07CgogICAgbXkgJFN0YXJ0RGF0ZVRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgIEVwb2NoICAgID0+ICRQYXJhbXtTdGFydFRpbWV9LAogICAgICAgICAgICBUaW1lWm9uZSA9PiAkU2VsZi0+e1RpbWVab25lfSwKICAgICAgICB9LAogICAgKTsKCiAgICBteSAkU3RvcERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICBFcG9jaCAgICA9PiAkUGFyYW17U3RvcFRpbWV9LAogICAgICAgICAgICBUaW1lWm9uZSA9PiAkU2VsZi0+e1RpbWVab25lfSwKICAgICAgICB9LAogICAgKTsKCiAgICBteSAkRGVsdGEgPSAkU3RhcnREYXRlVGltZU9iamVjdC0+RGVsdGEoCiAgICAgICAgRGF0ZVRpbWVPYmplY3QgPT4gJFN0b3BEYXRlVGltZU9iamVjdCwKICAgICAgICBGb3JXb3JraW5nVGltZSA9PiAxLAogICAgICAgIENhbGVuZGFyICAgICAgID0+ICRQYXJhbXtDYWxlbmRhcn0sCiAgICApOwoKICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCREZWx0YSkgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdFcnJvciBjYWxjdWxhdGluZyB3b3JraW5nIHRpbWUuJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICByZXR1cm4gJERlbHRhLT57QWJzb2x1dGVTZWNvbmRzfTsKfQoKPWhlYWQyIFN5c3RlbVRpbWUyRGF0ZSgpCgpjb252ZXJ0cyBhIHN5c3RlbSB0aW1lIHRvIGEgc3RydWN0dXJlZCBkYXRlIGFycmF5LgoKICAgIG15ICgkU2VjLCAkTWluLCAkSG91ciwgJERheSwgJE1vbnRoLCAkWWVhciwgJFdlZWtEYXkpID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5TeXN0ZW1UaW1lMkRhdGUoCiAgICAgICAgU3lzdGVtVGltZSA9PiAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpLAogICAgKTsKCiRXZWVrRGF5IGlzIHRoZSBkYXkgb2YgdGhlIHdlZWssIHdpdGggMCBpbmRpY2F0aW5nIFN1bmRheSBhbmQgMyBpbmRpY2F0aW5nIFdlZG5lc2RheS4KCj1jdXQKCnN1YiBTeXN0ZW1UaW1lMkRhdGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhZGVmaW5lZCAkUGFyYW17U3lzdGVtVGltZX0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIFN5c3RlbVRpbWUhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSAkRGF0ZVRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgIEVwb2NoID0+ICRQYXJhbXtTeXN0ZW1UaW1lfSwKICAgICAgICB9LAogICAgKTsKCiAgICAkRGF0ZVRpbWVPYmplY3QtPlRvVGltZVpvbmUoIFRpbWVab25lID0+ICRTZWxmLT57VGltZVpvbmV9ICk7CgogICAgbXkgJERhdGVUaW1lVmFsdWVzID0gJERhdGVUaW1lT2JqZWN0LT5HZXQoKTsKCiAgICBteSAkWWVhciAgPSAkRGF0ZVRpbWVWYWx1ZXMtPntZZWFyfTsKICAgIG15ICRNb250aCA9IHNwcmludGYgIiUwMmQiLCAkRGF0ZVRpbWVWYWx1ZXMtPntNb250aH07CiAgICBteSAkRGF5ICAgPSBzcHJpbnRmICIlMDJkIiwgJERhdGVUaW1lVmFsdWVzLT57RGF5fTsKICAgIG15ICRIb3VyICA9IHNwcmludGYgIiUwMmQiLCAkRGF0ZVRpbWVWYWx1ZXMtPntIb3VyfTsKICAgIG15ICRNaW4gICA9IHNwcmludGYgIiUwMmQiLCAkRGF0ZVRpbWVWYWx1ZXMtPntNaW51dGV9OwogICAgbXkgJFNlYyAgID0gc3ByaW50ZiAiJTAyZCIsICREYXRlVGltZVZhbHVlcy0+e1NlY29uZH07CgogICAgbXkgJFdEYXkgPSAkRGF0ZVRpbWVWYWx1ZXMtPntEYXlPZldlZWt9ID09IDcgPyAwIDogJERhdGVUaW1lVmFsdWVzLT57RGF5T2ZXZWVrfTsKCiAgICByZXR1cm4gKCAkU2VjLCAkTWluLCAkSG91ciwgJERheSwgJE1vbnRoLCAkWWVhciwgJFdEYXkgKTsKfQoKPWhlYWQyIERheU9mV2Vla1RvTmFtZSgpCgpDb252ZXJ0IGEgZGF5IG51bWJlciBpbnRvIHRoZSBkYXkgbmFtZQoKICAgIG15ICREYXlOYW1lID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5EYXlPZldlZWtUb05hbWUoCiAgICAgICAgTnVtYmVyID0+IDEgIyB3aWxsIHJldHVybiAnTW9uZGF5JwogICAgKTsKCj1jdXQKCnN1YiBEYXlPZldlZWtUb05hbWUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhZGVmaW5lZCAkUGFyYW17TnVtYmVyfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgTnVtYmVyISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgaWYgKCAhSXNQb3NpdGl2ZUludGVnZXIoICRQYXJhbXtOdW1iZXJ9ICkgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOdW1iZXIgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIhIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGlmICggJFBhcmFte051bWJlcn0gPiA3ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTnVtYmVyIG11c3Qgbm90IGJlIGdyYXRlciB0aGFuIDchIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSBARGF5TmFtZXMgPSAoCiAgICAgICAgJ01vbmRheScsCiAgICAgICAgJ1R1ZXNkYXknLAogICAgICAgICdXZWRuZXNkYXknLAogICAgICAgICdUaHVyc2RheScsCiAgICAgICAgJ0ZyaWRheScsCiAgICAgICAgJ1NhdHVyZGF5JywKICAgICAgICAnU3VuZGF5JwogICAgKTsKCiAgICByZXR1cm4gJERheU5hbWVzWyAkUGFyYW17TnVtYmVyfSAtIDEgXTsKfQoKPWhlYWQyIERhdGUyU3lzdGVtVGltZSgpCgpjb252ZXJ0cyBhIHN0cnVjdHVyZWQgZGF0ZSBhcnJheSB0byBzeXN0ZW0gdGltZSBvZiBPVFJTLgoKICAgIG15ICRTeXN0ZW1UaW1lID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5EYXRlMlN5c3RlbVRpbWUoCiAgICAgICAgWWVhciAgID0+IDIwMDQsCiAgICAgICAgTW9udGggID0+IDgsCiAgICAgICAgRGF5ICAgID0+IDE0LAogICAgICAgIEhvdXIgICA9PiAyMiwKICAgICAgICBNaW51dGUgPT4gNDUsCiAgICAgICAgU2Vjb25kID0+IDAsCiAgICApOwoKPWN1dAoKc3ViIERhdGUyU3lzdGVtVGltZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgKHF3KFllYXIgTW9udGggRGF5IEhvdXIgTWludXRlIFNlY29uZCkpIHsKICAgICAgICBpZiAoICFkZWZpbmVkICRQYXJhbXskX30gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRfISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJERhdGVUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJywKICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIFRpbWVab25lID0+ICRTZWxmLT57VGltZVpvbmV9LAogICAgICAgIH0sCiAgICApOwoKICAgIGlmICggISREYXRlVGltZU9iamVjdCApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSA9PgogICAgICAgICAgICAgICAgIkludmFsaWQgRGF0ZSAnJFBhcmFte1llYXJ9LSRQYXJhbXtNb250aH0tJFBhcmFte0RheX0gJFBhcmFte0hvdXJ9OiRQYXJhbXtNaW51dGV9OiRQYXJhbXtTZWNvbmR9JyEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICRTeXN0ZW1UaW1lID0gJERhdGVUaW1lT2JqZWN0LT5Ub0Vwb2NoKCk7CgogICAgcmV0dXJuICRTeXN0ZW1UaW1lOwp9Cgo9aGVhZDIgVGltZVN0YW1wMlN5c3RlbVRpbWUoKQoKY29udmVydHMgYSBnaXZlbiB0aW1lIHN0YW1wIHRvIGxvY2FsIHN5c3RlbSB0aW1lLgoKICAgIG15ICRTeXN0ZW1UaW1lID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5UaW1lU3RhbXAyU3lzdGVtVGltZSgKICAgICAgICBTdHJpbmcgPT4gJzIwMDQtMDgtMTQgMjI6NDU6MDAnLAogICAgKTsKCj1jdXQKCnN1YiBUaW1lU3RhbXAyU3lzdGVtVGltZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17U3RyaW5nfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgU3RyaW5nIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJFN5c3RlbVRpbWUgPSAwOwoKICAgICMgbWF0Y2ggaXNvIGRhdGUgZm9ybWF0CiAgICBpZiAoICRQYXJhbXtTdHJpbmd9ID1+IC8oXGR7NH0pLShcZHsxLDJ9KS0oXGR7MSwyfSlccyhcZHsxLDJ9KTooXGR7MSwyfSk6KFxkezEsMn0pLyApIHsKICAgICAgICAkU3lzdGVtVGltZSA9ICRTZWxmLT5EYXRlMlN5c3RlbVRpbWUoCiAgICAgICAgICAgIFllYXIgICA9PiAkMSwKICAgICAgICAgICAgTW9udGggID0+ICQyLAogICAgICAgICAgICBEYXkgICAgPT4gJDMsCiAgICAgICAgICAgIEhvdXIgICA9PiAkNCwKICAgICAgICAgICAgTWludXRlID0+ICQ1LAogICAgICAgICAgICBTZWNvbmQgPT4gJDYsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIG1hdGNoIGlzbyBkYXRlIGZvcm1hdCAod3JvbmcgZm9ybWF0KQogICAgZWxzaWYgKCAkUGFyYW17U3RyaW5nfSA9fiAvKFxkezEsMn0pLShcZHsxLDJ9KS0oXGR7NH0pXHMoXGR7MSwyfSk6KFxkezEsMn0pOihcZHsxLDJ9KS8gKSB7CiAgICAgICAgJFN5c3RlbVRpbWUgPSAkU2VsZi0+RGF0ZTJTeXN0ZW1UaW1lKAogICAgICAgICAgICBZZWFyICAgPT4gJDMsCiAgICAgICAgICAgIE1vbnRoICA9PiAkMiwKICAgICAgICAgICAgRGF5ICAgID0+ICQxLAogICAgICAgICAgICBIb3VyICAgPT4gJDQsCiAgICAgICAgICAgIE1pbnV0ZSA9PiAkNSwKICAgICAgICAgICAgU2Vjb25kID0+ICQ2LAogICAgICAgICk7CiAgICB9CgogICAgIyBtYXRjaCBldXJvIHRpbWUgZm9ybWF0CiAgICBlbHNpZiAoICRQYXJhbXtTdHJpbmd9ID1+IC8oXGR7MSwyfSlcLihcZHsxLDJ9KVwuKFxkezR9KVxzKFxkezEsMn0pOihcZHsxLDJ9KTooXGR7MSwyfSkvICkgewogICAgICAgICRTeXN0ZW1UaW1lID0gJFNlbGYtPkRhdGUyU3lzdGVtVGltZSgKICAgICAgICAgICAgWWVhciAgID0+ICQzLAogICAgICAgICAgICBNb250aCAgPT4gJDIsCiAgICAgICAgICAgIERheSAgICA9PiAkMSwKICAgICAgICAgICAgSG91ciAgID0+ICQ0LAogICAgICAgICAgICBNaW51dGUgPT4gJDUsCiAgICAgICAgICAgIFNlY29uZCA9PiAkNiwKICAgICAgICApOwogICAgfQoKICAgICMgbWF0Y2ggeXl5eS1tbS1kZFRoaDptbTpzcyt0dDp6eiB0aW1lIGZvcm1hdAogICAgZWxzaWYgKAogICAgICAgICRQYXJhbXtTdHJpbmd9CiAgICAgICAgPX4gLyhcZHs0fSktKFxkezEsMn0pLShcZHsxLDJ9KVQoXGR7MSwyfSk6KFxkezEsMn0pOihcZHsxLDJ9KShcK3xcLSkoKFxkezEsMn0pOihcZHsxLDJ9KSkvaQogICAgICAgICkKICAgIHsKICAgICAgICAkU3lzdGVtVGltZSA9ICRTZWxmLT5EYXRlMlN5c3RlbVRpbWUoCiAgICAgICAgICAgIFllYXIgICA9PiAkMSwKICAgICAgICAgICAgTW9udGggID0+ICQyLAogICAgICAgICAgICBEYXkgICAgPT4gJDMsCiAgICAgICAgICAgIEhvdXIgICA9PiAkNCwKICAgICAgICAgICAgTWludXRlID0+ICQ1LAogICAgICAgICAgICBTZWNvbmQgPT4gJDYsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIG1hdGNoIG1haWwgdGltZSBmb3JtYXQKICAgIGVsc2lmICgKICAgICAgICAkUGFyYW17U3RyaW5nfQogICAgICAgID1+IC8oKC4uLiksXHMrfCkoXGR7MSwyfSlccyguLi4pXHMoXGR7NH0pXHMoXGR7MSwyfSk6KFxkezEsMn0pOihcZHsxLDJ9KVxzKChcK3xcLSkoXGR7Mn0pKFxkezJ9KXwuLi4pLwogICAgICAgICkKICAgIHsKICAgICAgICBteSBATW9udGhNYXAgICAgPSBxdy9KYW4gRmViIE1hciBBcHIgTWF5IEp1biBKdWwgQXVnIFNlcCBPY3QgTm92IERlYy87CiAgICAgICAgbXkgJE1vbnRoICAgICAgID0gMTsKICAgICAgICBteSAkTW9udGhTdHJpbmcgPSAkNDsKICAgICAgICBmb3IgbXkgJE1vbnRoQ291bnQgKCAwIC4uICQjTW9udGhNYXAgKSB7CiAgICAgICAgICAgIGlmICggJE1vbnRoU3RyaW5nID1+IC8kTW9udGhNYXBbJE1vbnRoQ291bnRdL2kgKSB7CiAgICAgICAgICAgICAgICAkTW9udGggPSAkTW9udGhDb3VudCArIDE7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgJFN5c3RlbVRpbWUgPSAkU2VsZi0+RGF0ZTJTeXN0ZW1UaW1lKAogICAgICAgICAgICBZZWFyICAgPT4gJDUsCiAgICAgICAgICAgIE1vbnRoICA9PiAkTW9udGgsCiAgICAgICAgICAgIERheSAgICA9PiAkMywKICAgICAgICAgICAgSG91ciAgID0+ICQ2LAogICAgICAgICAgICBNaW51dGUgPT4gJDcsCiAgICAgICAgICAgIFNlY29uZCA9PiAkOCwKICAgICAgICApOyAgICAjICsgJFNlbGYtPntUaW1lU2VjRGlmZn07CiAgICB9CiAgICBlbHNpZiAoICAgICMgbWF0Y2ggeXl5eS1tbS1kZFRoaDptbTpzc1oKICAgICAgICAkUGFyYW17U3RyaW5nfSA9fiAvKFxkezR9KS0oXGR7MSwyfSktKFxkezEsMn0pVChcZHsxLDJ9KTooXGR7MSwyfSk6KFxkezEsMn0pWiQvCiAgICAgICAgKQogICAgewogICAgICAgICRTeXN0ZW1UaW1lID0gJFNlbGYtPkRhdGUyU3lzdGVtVGltZSgKICAgICAgICAgICAgWWVhciAgID0+ICQxLAogICAgICAgICAgICBNb250aCAgPT4gJDIsCiAgICAgICAgICAgIERheSAgICA9PiAkMywKICAgICAgICAgICAgSG91ciAgID0+ICQ0LAogICAgICAgICAgICBNaW51dGUgPT4gJDUsCiAgICAgICAgICAgIFNlY29uZCA9PiAkNiwKICAgICAgICApOwogICAgfQoKICAgICMgcmV0dXJuIGVycm9yCiAgICBpZiAoICFkZWZpbmVkICRTeXN0ZW1UaW1lICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiSW52YWxpZCBEYXRlICckUGFyYW17U3RyaW5nfSchIiwKICAgICAgICApOwogICAgfQoKICAgICMgcmV0dXJuIHN5c3RlbSB0aW1lCiAgICByZXR1cm4gJFN5c3RlbVRpbWU7Cgp9CgoxOwoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwczovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQ+LgoKPWN1dAo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpTdGF0czo6RHluYW1pYzo6VGltZUFjY291bnRpbmc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpMYW5ndWFnZSBxdyhUcmFuc2xhdGFibGUpOwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoSXNBcnJheVJlZldpdGhEYXRhKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VXNlcicsCik7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIEdldE9iamVjdE5hbWUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICByZXR1cm4gJ1RpbWVBY2NvdW50aW5nJzsKfQoKc3ViIEdldE9iamVjdEF0dHJpYnV0ZXMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkRGF0ZVRpbWVPYmplY3RDdXJyZW50ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CgogICAgIyBzZXQgcHJlZGVmaW5lZCBzdGFydCB0aW1lCiAgICBteSAkVGltZVN0YW1wID0gJERhdGVUaW1lT2JqZWN0Q3VycmVudC0+VG9FcG9jaCgpOwogICAgbXkgKCREYXRlKSA9IHNwbGl0IC9ccysvLCAkVGltZVN0YW1wOwogICAgbXkgJFRvZGF5ID0gc3ByaW50ZiAiJXMgMjM6NTk6NTkiLCAkRGF0ZTsKCiAgICAjIGdldCB0aW1lIGFjY291bnRpbmcgb2JqZWN0CiAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAjIGdldCBwcm9qZWN0IGxpc3QKICAgIG15ICVQcm9qZWN0TGlzdCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzR2V0KAogICAgICAgIFN0YXR1cyA9PiAndmFsaWQnLAogICAgKTsKCiAgICAjIGdldCBhY3Rpb24gbGlzdAogICAgbXkgJUFjdGlvbkxpc3RTb3VyY2UgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzR2V0KCk7CiAgICBteSAlQWN0aW9uTGlzdDsKCiAgICBmb3IgbXkgJEFjdGlvbiAoIHNvcnQga2V5cyAlQWN0aW9uTGlzdFNvdXJjZSApIHsKICAgICAgICAkQWN0aW9uTGlzdHskQWN0aW9ufSA9ICRBY3Rpb25MaXN0U291cmNleyRBY3Rpb259LT57QWN0aW9ufTsKICAgIH0KCiAgICAjIGdldCB1c2VyIGxpc3QKICAgIG15ICVVc2VyTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPlVzZXJMaXN0KAogICAgICAgIFR5cGUgID0+ICdMb25nJywKICAgICAgICBWYWxpZCA9PiAwLAogICAgKTsKCiAgICBteSBAQXR0cmlidXRlcyA9ICgKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgPT4gVHJhbnNsYXRhYmxlKCdQcm9qZWN0JyksCiAgICAgICAgICAgIFVzZUFzWHZhbHVlICAgICAgPT4gMSwKICAgICAgICAgICAgVXNlQXNWYWx1ZVNlcmllcyA9PiAwLAogICAgICAgICAgICBVc2VBc1Jlc3RyaWN0aW9uID0+IDEsCiAgICAgICAgICAgIEVsZW1lbnQgICAgICAgICAgPT4gJ1Byb2plY3QnLAogICAgICAgICAgICBCbG9jayAgICAgICAgICAgID0+ICdNdWx0aVNlbGVjdEZpZWxkJywKICAgICAgICAgICAgVHJhbnNsYXRpb24gICAgICA9PiAwLAogICAgICAgICAgICBWYWx1ZXMgICAgICAgICAgID0+ICRQcm9qZWN0TGlzdHtQcm9qZWN0fSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICA9PiBUcmFuc2xhdGFibGUoJ1VzZXInKSwKICAgICAgICAgICAgVXNlQXNYdmFsdWUgICAgICA9PiAxLAogICAgICAgICAgICBVc2VBc1ZhbHVlU2VyaWVzID0+IDAsCiAgICAgICAgICAgIFVzZUFzUmVzdHJpY3Rpb24gPT4gMSwKICAgICAgICAgICAgRWxlbWVudCAgICAgICAgICA9PiAnVXNlcicsCiAgICAgICAgICAgIEJsb2NrICAgICAgICAgICAgPT4gJ011bHRpU2VsZWN0RmllbGQnLAogICAgICAgICAgICBUcmFuc2xhdGlvbiAgICAgID0+IDAsCiAgICAgICAgICAgIFZhbHVlcyAgICAgICAgICAgPT4gXCVVc2VyTGlzdCwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICA9PiBUcmFuc2xhdGFibGUoJ1NvcnQgc2VxdWVuY2UnKSwKICAgICAgICAgICAgVXNlQXNYdmFsdWUgICAgICA9PiAwLAogICAgICAgICAgICBVc2VBc1ZhbHVlU2VyaWVzID0+IDEsCiAgICAgICAgICAgIFVzZUFzUmVzdHJpY3Rpb24gPT4gMCwKICAgICAgICAgICAgRWxlbWVudCAgICAgICAgICA9PiAnU29ydFNlcXVlbmNlJywKICAgICAgICAgICAgQmxvY2sgICAgICAgICAgICA9PiAnU2VsZWN0RmllbGQnLAogICAgICAgICAgICBUcmFuc2xhdGlvbiAgICAgID0+IDEsCiAgICAgICAgICAgIFZhbHVlcyAgICAgICAgICAgPT4gewogICAgICAgICAgICAgICAgVXAgICA9PiAnYXNjZW5kaW5nJywKICAgICAgICAgICAgICAgIERvd24gPT4gJ2Rlc2NlbmRpbmcnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICAgICAgICAgID0+IFRyYW5zbGF0YWJsZSgnVGFzaycpLAogICAgICAgICAgICBVc2VBc1h2YWx1ZSAgICAgID0+IDAsCiAgICAgICAgICAgIFVzZUFzVmFsdWVTZXJpZXMgPT4gMCwKICAgICAgICAgICAgVXNlQXNSZXN0cmljdGlvbiA9PiAxLAogICAgICAgICAgICBFbGVtZW50ICAgICAgICAgID0+ICdQcm9qZWN0QWN0aW9uJywKICAgICAgICAgICAgQmxvY2sgICAgICAgICAgICA9PiAnTXVsdGlTZWxlY3RGaWVsZCcsCiAgICAgICAgICAgIFRyYW5zbGF0aW9uICAgICAgPT4gMCwKICAgICAgICAgICAgVmFsdWVzICAgICAgICAgICA9PiBcJUFjdGlvbkxpc3QsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgPT4gVHJhbnNsYXRhYmxlKCdQZXJpb2QnKSwKICAgICAgICAgICAgVXNlQXNYdmFsdWUgICAgICA9PiAwLAogICAgICAgICAgICBVc2VBc1ZhbHVlU2VyaWVzID0+IDAsCiAgICAgICAgICAgIFVzZUFzUmVzdHJpY3Rpb24gPT4gMSwKICAgICAgICAgICAgRWxlbWVudCAgICAgICAgICA9PiAnUGVyaW9kJywKICAgICAgICAgICAgVGltZVBlcmlvZEZvcm1hdCA9PiAnRGF0ZUlucHV0Rm9ybWF0JywgICAgICAgICMgJ0RhdGVJbnB1dEZvcm1hdExvbmcnLAogICAgICAgICAgICBCbG9jayAgICAgICAgICAgID0+ICdUaW1lJywKICAgICAgICAgICAgVmFsdWVzICAgICAgICAgICA9PiB7CiAgICAgICAgICAgICAgICBUaW1lU3RhcnQgPT4gJ1RpbWVBY2NvdW50aW5nUGVyaW9kU3RhcnQnLAogICAgICAgICAgICAgICAgVGltZVN0b3AgID0+ICdUaW1lQWNjb3VudGluZ1BlcmlvZFN0b3AnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICApOwoKICAgIHJldHVybiBAQXR0cmlidXRlczsKfQoKc3ViIEdldEhlYWRlckxpbmUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKICAgIG15IEBIZWFkZXJMaW5lID0gKCIiKTsKCiAgICAjIFVzZXJzIGFzIFgtdmFsdWUKICAgIGlmICggJFBhcmFte1hWYWx1ZX0tPntFbGVtZW50fSAmJiAkUGFyYW17WFZhbHVlfS0+e0VsZW1lbnR9IGVxICdVc2VyJyApIHsKCiAgICAgICAgIyB1c2VyIGhhdmUgYmVlbiBzZWxlY3RlZCBhcyB4LXZhbHVlCiAgICAgICAgbXkgQFVzZXJJRHMgPSBAeyAkUGFyYW17WFZhbHVlfS0+e1NlbGVjdGVkVmFsdWVzfSB9OwoKICAgICAgICAjIGdldCB1c2VyIG9iamVjdAogICAgICAgIG15ICRVc2VyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKCiAgICAgICAgIyBpdGVyYXRlIG92ZXIgc2VsZWN0ZWQgdXNlcnMKICAgICAgICBVU0VSSUQ6CiAgICAgICAgZm9yIG15ICRVc2VySUQgKEBVc2VySURzKSB7CiAgICAgICAgICAgIG15ICRVc2VyTmFtZSA9ICRVc2VyT2JqZWN0LT5Vc2VyTmFtZSgKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkVXNlcklELAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcHVzaCBASGVhZGVyTGluZSwgJFVzZXJOYW1lOwogICAgICAgIH0KICAgIH0KCiAgICAjIFByb2plY3RzIGFzIFgtdmFsdWUKICAgIGVsc2UgewogICAgICAgICMgcHJvamVjdHMgaGF2ZSBiZWVuIHNlbGVjdGVkIGFzIHgtdmFsdWUKICAgICAgICBteSBAUHJvamVjdElEcyA9IEB7ICRQYXJhbXtYVmFsdWV9LT57U2VsZWN0ZWRWYWx1ZXN9IH07CgogICAgICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgICAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAgICAgIyBpdGVyYXRlIG92ZXIgc2VsZWN0ZWQgcHJvamVjdHMKICAgICAgICBQUk9KRUNUSUQ6CiAgICAgICAgZm9yIG15ICRQcm9qZWN0SUQgKEBQcm9qZWN0SURzKSB7CiAgICAgICAgICAgIG15ICVQcm9qZWN0RGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdEdldCgKICAgICAgICAgICAgICAgIElEID0+ICRQcm9qZWN0SUQsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBwdXNoIEBIZWFkZXJMaW5lLCAkUHJvamVjdERhdGF7UHJvamVjdH07CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiBcQEhlYWRlckxpbmU7Cn0KCnN1YiBHZXRTdGF0VGFibGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKICAgIG15IEBTdGF0QXJyYXk7CiAgICBteSBAVXNlcklEczsKCiAgICAjIFVzZXJzIGFzIFgtdmFsdWUKICAgIGlmICggJFBhcmFte1hWYWx1ZX0tPntFbGVtZW50fSAmJiAkUGFyYW17WFZhbHVlfS0+e0VsZW1lbnR9IGVxICdVc2VyJyApIHsKCiAgICAgICAgIyB1c2VyIGhhdmUgYmVlbiBzZWxlY3RlZCBhcyB4LXZhbHVlCiAgICAgICAgQFVzZXJJRHMgPSBAeyAkUGFyYW17WFZhbHVlfS0+e1NlbGVjdGVkVmFsdWVzfSB9OwoKICAgICAgICAjIGdldCBzdGF0IGRhdGEKICAgICAgICBteSAkU3RhdERhdGEgPSAkU2VsZi0+X0dldFN0YXREYXRhKAogICAgICAgICAgICBQYXJhbSAgID0+IFwlUGFyYW0sCiAgICAgICAgICAgIFVzZXJJRHMgPT4gXEBVc2VySURzLAogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgc3RhdCBkYXRhCiAgICAgICAgcmV0dXJuIGlmICEkU3RhdERhdGE7CiAgICAgICAgcmV0dXJuIGlmIHJlZiAkU3RhdERhdGEgbmUgJ0FSUkFZJzsKCiAgICAgICAgbXkgQFJhd1N0YXRBcnJheSA9IEB7JFN0YXREYXRhfTsKICAgICAgICByZXR1cm4gaWYgIUBSYXdTdGF0QXJyYXk7CgogICAgICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgICAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAgICAgIyBnZXQgbGlzdCBvZiBuZWVkZWQgZGF0YQogICAgICAgIG15ICVQcm9qZWN0RGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzR2V0KCk7CiAgICAgICAgbXkgJVByb2plY3RMaXN0ID0gJXsgJFByb2plY3REYXRhe1Byb2plY3R9IHx8IHt9IH07CgogICAgICAgIG15ICVBY3Rpb25EYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0dldCgpOwogICAgICAgIG15ICVBY3Rpb25MaXN0ID0gbWFwIHsgKCAkXyA9PiAkQWN0aW9uRGF0YXskX30tPntBY3Rpb259ICkgfSBrZXlzICVBY3Rpb25EYXRhOwoKICAgICAgICBteSBAU29ydGVkUHJvamVjdElEcyA9IHNvcnQgeyAkUHJvamVjdExpc3R7JGF9IGNtcCAkUHJvamVjdExpc3R7JGJ9IH0ga2V5cyAlUHJvamVjdExpc3Q7CiAgICAgICAgbXkgQFNvcnRlZEFjdGlvbklEcyAgPSBzb3J0IHsgJEFjdGlvbkxpc3R7JGF9IGNtcCAkQWN0aW9uTGlzdHskYn0gfSBrZXlzICVBY3Rpb25MaXN0OwoKICAgICAgICAjIHJlLXNvcnQgcHJvamVjdHMgZGVwZW5kaW5nIG9uIHNlbGVjdGVkIHNlcXVlbmNlCiAgICAgICAgaWYgKAogICAgICAgICAgICBJc0FycmF5UmVmV2l0aERhdGEoICRQYXJhbXtWYWx1ZVNlcmllc30gKQogICAgICAgICAgICAmJiAkUGFyYW17VmFsdWVTZXJpZXN9LT5bMF0tPntTZWxlY3RlZFZhbHVlc30tPlswXSBlcSAnRG93bicKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgQFNvcnRlZFByb2plY3RJRHMgPSByZXZlcnNlIEBTb3J0ZWRQcm9qZWN0SURzOwogICAgICAgIH0KCiAgICAgICAgIyBpdGVyYXRlIG92ZXIgc29ydGVkIHByb2plY3QgbGlzdAogICAgICAgIFNPUlRFRFBST0pFQ1RJRDoKICAgICAgICBmb3IgbXkgJFNvcnRlZFByb2plY3RJRCAoQFNvcnRlZFByb2plY3RJRHMpIHsKCiAgICAgICAgICAgICMgY2hlY2sgZm9yIHVuc2VsZWN0ZWQgcHJvamVjdHMKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgJFBhcmFte1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0fQogICAgICAgICAgICAgICAgJiYgIWdyZXAgeyAkXyA9PSAkU29ydGVkUHJvamVjdElEIH0gQHsgJFBhcmFte1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0fSB8fCBbXSB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG5leHQgU09SVEVEUFJPSkVDVElEOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGdldCB0aGUgY3VycmVudCBwcm9qZWN0IGRhdGEgb2YgY3VycmVudCBwcm9qZWN0CiAgICAgICAgICAgIG15IEBQcm9qZWN0U3RhdERhdGEgPSBncmVwIHsgJF8tPntQcm9qZWN0SUR9ID09ICRTb3J0ZWRQcm9qZWN0SUQgfSBAUmF3U3RhdEFycmF5OwoKICAgICAgICAgICAgIyBpdGVyYXRlIG92ZXIgc29ydGVkIGFjdGlvbiBsaXN0CiAgICAgICAgICAgIFNPUlRFREFDVElPTklEOgogICAgICAgICAgICBmb3IgbXkgJFNvcnRlZEFjdGlvbklEIChAU29ydGVkQWN0aW9uSURzKSB7CgogICAgICAgICAgICAgICAgIyBjaGVjayBmb3IgdW5zZWxlY3RlZCBhY3Rpb25zCiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgJFBhcmFte1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0QWN0aW9ufQogICAgICAgICAgICAgICAgICAgICYmICFncmVwIHsgJF8gPT0gJFNvcnRlZEFjdGlvbklEIH0gQHsgJFBhcmFte1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0QWN0aW9ufSB8fCBbXSB9CiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIG5leHQgU09SVEVEQUNUSU9OSUQ7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBnZXQgdGhlIGN1cnJlbnQgYWN0aW9uIG91dCBvZiB0aGUgY3VycmVudCBwcm9qZWN0CiAgICAgICAgICAgICAgICBteSBAQWN0aW9uU3RhdERhdGEgPSBncmVwIHsgJF8tPntBY3Rpb25JRH0gPT0gJFNvcnRlZEFjdGlvbklEIH0gQFByb2plY3RTdGF0RGF0YTsKCiAgICAgICAgICAgICAgICBteSBAUm93RGF0YTsKCiAgICAgICAgICAgICAgICAjIGFkZCBkZXNjcmlwdGl2ZSBmaXJzdCBjb2x1bW4KICAgICAgICAgICAgICAgIG15ICRSb3dMYWJlbCA9ICIkUHJvamVjdExpc3R7JFNvcnRlZFByb2plY3RJRH06OiRBY3Rpb25MaXN0eyRTb3J0ZWRBY3Rpb25JRH0iOwogICAgICAgICAgICAgICAgcHVzaCBAUm93RGF0YSwgJFJvd0xhYmVsOwoKICAgICAgICAgICAgICAgICMgaXRlcmF0ZSBvdmVyIHNlbGVjdGVkIHVzZXJzCiAgICAgICAgICAgICAgICBVU0VSSUQ6CiAgICAgICAgICAgICAgICBmb3IgbXkgJFVzZXJJRCAoQFVzZXJJRHMpIHsKCiAgICAgICAgICAgICAgICAgICAgIyBhdCBsZWFzdCBnZXQgJzAnIGZvciB1c2VyIGRhdGEKICAgICAgICAgICAgICAgICAgICBteSAkVXNlclBlcmlvZFN1bSA9IDA7CgogICAgICAgICAgICAgICAgICAgICMgaXRlcmF0ZSBvdmVyIHBlcmlvZCBkYXRhIG9mIHVzZXIKICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJFBlcmlvZERhdGEgKCBncmVwIHsgJF8tPntVc2VySUR9ID09ICRVc2VySUQgfSBAQWN0aW9uU3RhdERhdGEgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRVc2VyUGVyaW9kU3VtICs9ICRQZXJpb2REYXRhLT57UGVyaW9kfTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICMgc2FmZSB1c2VyIGRhdGEgdG8gcm93IGRhdGEKICAgICAgICAgICAgICAgICAgICBwdXNoIEBSb3dEYXRhLCAkVXNlclBlcmlvZFN1bTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIHN0b3JlIGN1cnJlbnQgcm93IHRvIGdsb2JhbCBzdGF0IGFycmF5CiAgICAgICAgICAgICAgICBwdXNoIEBTdGF0QXJyYXksIFxAUm93RGF0YTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIFByb2plY3RzIGFzIFgtdmFsdWUKICAgIGVsc2UgewoKICAgICAgICAjIHByb2plY3RzIGhhdmUgYmVlbiBzZWxlY3RlZCBhcyB4LXZhbHVlCiAgICAgICAgbXkgQFByb2plY3RJRHMgPSBAeyAkUGFyYW17WFZhbHVlfS0+e1NlbGVjdGVkVmFsdWVzfSB9OwoKICAgICAgICAjIGdldCB1c2VyIG9iamVjdAogICAgICAgIG15ICRVc2VyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKCiAgICAgICAgIyB3ZSBuZWVkIHRvIGdldCBhbGwgdXNlcnMKICAgICAgICBteSAlVXNlcklEcyA9ICRVc2VyT2JqZWN0LT5Vc2VyTGlzdCgKICAgICAgICAgICAgVHlwZSAgPT4gJ1Nob3J0JywKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICApOwoKICAgICAgICBAVXNlcklEcyA9IGtleXMgJVVzZXJJRHM7CgogICAgICAgICMgZ2V0IGNhbGN1bGF0ZWQgc3RhdHMgZGF0YQogICAgICAgIG15ICRTdGF0RGF0YSA9ICRTZWxmLT5fR2V0U3RhdERhdGEoCiAgICAgICAgICAgIFBhcmFtICAgPT4gXCVQYXJhbSwKICAgICAgICAgICAgVXNlcklEcyA9PiBcQFVzZXJJRHMsCiAgICAgICAgKTsKCiAgICAgICAgIyBjaGVjayBzdGF0IGRhdGEKICAgICAgICByZXR1cm4gaWYgISRTdGF0RGF0YTsKICAgICAgICByZXR1cm4gaWYgcmVmICRTdGF0RGF0YSBuZSAnQVJSQVknOwoKICAgICAgICBteSBAUmF3U3RhdEFycmF5ID0gQHskU3RhdERhdGF9OwogICAgICAgIHJldHVybiBpZiAhQFJhd1N0YXRBcnJheTsKCiAgICAgICAgIyBnZXQgbGlzdCBvZiBuZWVkZWQgZGF0YQogICAgICAgIG15ICVVc2VyTGlzdCA9ICRVc2VyT2JqZWN0LT5Vc2VyTGlzdCgKICAgICAgICAgICAgVHlwZSAgPT4gJ0xvbmcnLAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICk7CgogICAgICAgIG15IEBTb3J0ZWRVc2VySURzID0gc29ydCB7ICRVc2VyTGlzdHskYX0gY21wICRVc2VyTGlzdHskYn0gfSBrZXlzICVVc2VyTGlzdDsKCiAgICAgICAgIyByZS1zb3J0IHVzZXJzIGRlcGVuZGluZyBvbiBzZWxlY3RlZCBzZXF1ZW5jZQogICAgICAgIGlmICgKICAgICAgICAgICAgSXNBcnJheVJlZldpdGhEYXRhKCAkUGFyYW17VmFsdWVTZXJpZXN9ICkKICAgICAgICAgICAgJiYgJFBhcmFte1ZhbHVlU2VyaWVzfS0+WzBdLT57U2VsZWN0ZWRWYWx1ZXN9LT5bMF0gZXEgJ0Rvd24nCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIEBTb3J0ZWRVc2VySURzID0gcmV2ZXJzZSBAU29ydGVkVXNlcklEczsKICAgICAgICB9CgogICAgICAgICMgaXRlcmF0ZSBvdmVyIHNvcnRlZCB1c2VyIGxpc3QKICAgICAgICBTT1JURURVU0VSSUQ6CiAgICAgICAgZm9yIG15ICRTb3J0ZWRVc2VySUQgKEBTb3J0ZWRVc2VySURzKSB7CgogICAgICAgICAgICAjIGNoZWNrIGZvciB1bnNlbGVjdGVkIHVzZXJzCiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICRQYXJhbXtSZXN0cmljdGlvbnN9LT57VXNlcn0KICAgICAgICAgICAgICAgICYmICFncmVwIHsgJF8gPT0gJFNvcnRlZFVzZXJJRCB9IEB7ICRQYXJhbXtSZXN0cmljdGlvbnN9LT57VXNlcn0gfHwgW10gfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBuZXh0IFNPUlRFRFVTRVJJRDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBnZXQgdGhlIGN1cnJlbnQgdXNlciBkYXRhIG9mIGN1cnJlbnQgdXNlcgogICAgICAgICAgICBteSBAVXNlclN0YXREYXRhID0gZ3JlcCB7ICRfLT57VXNlcklEfSA9PSAkU29ydGVkVXNlcklEIH0gQFJhd1N0YXRBcnJheTsKCiAgICAgICAgICAgIG15IEBSb3dEYXRhOwoKICAgICAgICAgICAgIyBhZGQgZGVzY3JpcHRpdmUgZmlyc3QgY29sdW1uCiAgICAgICAgICAgIG15ICRSb3dMYWJlbCA9ICRVc2VyTGlzdHskU29ydGVkVXNlcklEfTsKICAgICAgICAgICAgcHVzaCBAUm93RGF0YSwgJFJvd0xhYmVsOwoKICAgICAgICAgICAgIyBpdGVyYXRlIG92ZXIgc2VsZWN0ZWQgcHJvamVjdHMKICAgICAgICAgICAgUFJPSkVDVElEOgogICAgICAgICAgICBmb3IgbXkgJFByb2plY3RJRCAoQFByb2plY3RJRHMpIHsKCiAgICAgICAgICAgICAgICAjIGF0IGxlYXN0IGdldCAnMCcgZm9yIHVzZXIgZGF0YQogICAgICAgICAgICAgICAgbXkgJFByb2plY3RQZXJpb2RTdW0gPSAwOwoKICAgICAgICAgICAgICAgICMgaXRlcmF0ZSBvdmVyIHBlcmlvZCBkYXRhIG9mIHVzZXIKICAgICAgICAgICAgICAgIGZvciBteSAkUGVyaW9kRGF0YSAoIGdyZXAgeyAkXy0+e1Byb2plY3RJRH0gPT0gJFByb2plY3RJRCB9IEBVc2VyU3RhdERhdGEgKSB7CiAgICAgICAgICAgICAgICAgICAgJFByb2plY3RQZXJpb2RTdW0gKz0gJFBlcmlvZERhdGEtPntQZXJpb2R9OwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgc2FmZSB1c2VyIGRhdGEgdG8gcm93IGRhdGEKICAgICAgICAgICAgICAgIHB1c2ggQFJvd0RhdGEsICRQcm9qZWN0UGVyaW9kU3VtOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHN0b3JlIGN1cnJlbnQgcm93IHRvIGdsb2JhbCBzdGF0IGFycmF5CiAgICAgICAgICAgIHB1c2ggQFN0YXRBcnJheSwgXEBSb3dEYXRhOwogICAgICAgIH0KCiAgICB9CgogICAgcmV0dXJuIEBTdGF0QXJyYXk7Cn0KCnN1YiBHZXRTdGF0VGFibGVQcmV2aWV3IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgQFN0YXRBcnJheTsKICAgIG15IEBVc2VySURzOwoKICAgICMgVXNlcnMgYXMgWC12YWx1ZQogICAgaWYgKCAkUGFyYW17WFZhbHVlfS0+e0VsZW1lbnR9ICYmICRQYXJhbXtYVmFsdWV9LT57RWxlbWVudH0gZXEgJ1VzZXInICkgewoKICAgICAgICAjIHVzZXIgaGF2ZSBiZWVuIHNlbGVjdGVkIGFzIHgtdmFsdWUKICAgICAgICBAVXNlcklEcyA9IEB7ICRQYXJhbXtYVmFsdWV9LT57U2VsZWN0ZWRWYWx1ZXN9IH07CgogICAgICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgICAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAgICAgIyBnZXQgbGlzdCBvZiBuZWVkZWQgZGF0YQogICAgICAgIG15ICVQcm9qZWN0RGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzR2V0KCk7CiAgICAgICAgbXkgJVByb2plY3RMaXN0ID0gJXsgJFByb2plY3REYXRhe1Byb2plY3R9IHx8IHt9IH07CgogICAgICAgIG15ICVBY3Rpb25EYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0dldCgpOwogICAgICAgIG15ICVBY3Rpb25MaXN0ID0gbWFwIHsgKCAkXyA9PiAkQWN0aW9uRGF0YXskX30tPntBY3Rpb259ICkgfSBrZXlzICVBY3Rpb25EYXRhOwoKICAgICAgICBteSBAU29ydGVkUHJvamVjdElEcyA9IHNvcnQgeyAkUHJvamVjdExpc3R7JGF9IGNtcCAkUHJvamVjdExpc3R7JGJ9IH0ga2V5cyAlUHJvamVjdExpc3Q7CiAgICAgICAgbXkgQFNvcnRlZEFjdGlvbklEcyAgPSBzb3J0IHsgJEFjdGlvbkxpc3R7JGF9IGNtcCAkQWN0aW9uTGlzdHskYn0gfSBrZXlzICVBY3Rpb25MaXN0OwoKICAgICAgICAjIHJlLXNvcnQgcHJvamVjdHMgZGVwZW5kaW5nIG9uIHNlbGVjdGVkIHNlcXVlbmNlCiAgICAgICAgaWYgKAogICAgICAgICAgICBJc0FycmF5UmVmV2l0aERhdGEoICRQYXJhbXtWYWx1ZVNlcmllc30gKQogICAgICAgICAgICAmJiAkUGFyYW17VmFsdWVTZXJpZXN9LT5bMF0tPntTZWxlY3RlZFZhbHVlc30tPlswXSBlcSAnRG93bicKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgQFNvcnRlZFByb2plY3RJRHMgPSByZXZlcnNlIEBTb3J0ZWRQcm9qZWN0SURzOwogICAgICAgIH0KCiAgICAgICAgIyBpdGVyYXRlIG92ZXIgc29ydGVkIHByb2plY3QgbGlzdAogICAgICAgIFNPUlRFRFBST0pFQ1RJRDoKICAgICAgICBmb3IgbXkgJFNvcnRlZFByb2plY3RJRCAoQFNvcnRlZFByb2plY3RJRHMpIHsKCiAgICAgICAgICAgICMgY2hlY2sgZm9yIHVuc2VsZWN0ZWQgcHJvamVjdHMKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgJFBhcmFte1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0fQogICAgICAgICAgICAgICAgJiYgIWdyZXAgeyAkXyA9PSAkU29ydGVkUHJvamVjdElEIH0gQHsgJFBhcmFte1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0fSB8fCBbXSB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG5leHQgU09SVEVEUFJPSkVDVElEOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGl0ZXJhdGUgb3ZlciBzb3J0ZWQgYWN0aW9uIGxpc3QKICAgICAgICAgICAgU09SVEVEQUNUSU9OSUQ6CiAgICAgICAgICAgIGZvciBteSAkU29ydGVkQWN0aW9uSUQgKEBTb3J0ZWRBY3Rpb25JRHMpIHsKCiAgICAgICAgICAgICAgICAjIGNoZWNrIGZvciB1bnNlbGVjdGVkIGFjdGlvbnMKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAkUGFyYW17UmVzdHJpY3Rpb25zfS0+e1Byb2plY3RBY3Rpb259CiAgICAgICAgICAgICAgICAgICAgJiYgIWdyZXAgeyAkXyA9PSAkU29ydGVkQWN0aW9uSUQgfSBAeyAkUGFyYW17UmVzdHJpY3Rpb25zfS0+e1Byb2plY3RBY3Rpb259IHx8IFtdIH0KICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgbmV4dCBTT1JURURBQ1RJT05JRDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBteSBAUm93RGF0YTsKCiAgICAgICAgICAgICAgICAjIGFkZCBkZXNjcmlwdGl2ZSBmaXJzdCBjb2x1bW4KICAgICAgICAgICAgICAgIG15ICRSb3dMYWJlbCA9ICIkUHJvamVjdExpc3R7JFNvcnRlZFByb2plY3RJRH06OiRBY3Rpb25MaXN0eyRTb3J0ZWRBY3Rpb25JRH0iOwogICAgICAgICAgICAgICAgcHVzaCBAUm93RGF0YSwgJFJvd0xhYmVsOwoKICAgICAgICAgICAgICAgICMgaXRlcmF0ZSBvdmVyIHNlbGVjdGVkIHVzZXJzCiAgICAgICAgICAgICAgICBVU0VSSUQ6CiAgICAgICAgICAgICAgICBmb3IgbXkgJFVzZXJJRCAoQFVzZXJJRHMpIHsKCiAgICAgICAgICAgICAgICAgICAgIyBzYWZlIHVzZXIgZGF0YSB0byByb3cgZGF0YQogICAgICAgICAgICAgICAgICAgIHB1c2ggQFJvd0RhdGEsIGludCByYW5kIDUwOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgc3RvcmUgY3VycmVudCByb3cgdG8gZ2xvYmFsIHN0YXQgYXJyYXkKICAgICAgICAgICAgICAgIHB1c2ggQFN0YXRBcnJheSwgXEBSb3dEYXRhOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgUHJvamVjdHMgYXMgWC12YWx1ZQogICAgZWxzZSB7CgogICAgICAgICMgcHJvamVjdHMgaGF2ZSBiZWVuIHNlbGVjdGVkIGFzIHgtdmFsdWUKICAgICAgICBteSBAUHJvamVjdElEcyA9IEB7ICRQYXJhbXtYVmFsdWV9e1NlbGVjdGVkVmFsdWVzfSB9OwoKICAgICAgICAjIGdldCB1c2VyIG9iamVjdAogICAgICAgIG15ICRVc2VyT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKCiAgICAgICAgIyB3ZSBuZWVkIHRvIGdldCBhbGwgdXNlcnMKICAgICAgICBteSAlVXNlcklEcyA9ICRVc2VyT2JqZWN0LT5Vc2VyTGlzdCgKICAgICAgICAgICAgVHlwZSAgPT4gJ1Nob3J0JywKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICApOwoKICAgICAgICBAVXNlcklEcyA9IGtleXMgJVVzZXJJRHM7CgogICAgICAgICMgZ2V0IGxpc3Qgb2YgbmVlZGVkIGRhdGEKICAgICAgICBteSAlVXNlckxpc3QgPSAkVXNlck9iamVjdC0+VXNlckxpc3QoCiAgICAgICAgICAgIFR5cGUgID0+ICdMb25nJywKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICApOwoKICAgICAgICBteSBAU29ydGVkVXNlcklEcyA9IHNvcnQgeyAkVXNlckxpc3R7JGF9IGNtcCAkVXNlckxpc3R7JGJ9IH0ga2V5cyAlVXNlckxpc3Q7CgogICAgICAgICMgcmUtc29ydCB1c2VycyBkZXBlbmRpbmcgb24gc2VsZWN0ZWQgc2VxdWVuY2UKICAgICAgICBpZiAoCiAgICAgICAgICAgIElzQXJyYXlSZWZXaXRoRGF0YSggJFBhcmFte1ZhbHVlU2VyaWVzfSApCiAgICAgICAgICAgICYmICRQYXJhbXtWYWx1ZVNlcmllc30tPlswXS0+e1NlbGVjdGVkVmFsdWVzfS0+WzBdIGVxICdEb3duJwogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICBAU29ydGVkVXNlcklEcyA9IHJldmVyc2UgQFNvcnRlZFVzZXJJRHM7CiAgICAgICAgfQoKICAgICAgICAjIGl0ZXJhdGUgb3ZlciBzb3J0ZWQgdXNlciBsaXN0CiAgICAgICAgU09SVEVEVVNFUklEOgogICAgICAgIGZvciBteSAkU29ydGVkVXNlcklEIChAU29ydGVkVXNlcklEcykgewoKICAgICAgICAgICAgIyBjaGVjayBmb3IgdW5zZWxlY3RlZCB1c2VycwogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAkUGFyYW17UmVzdHJpY3Rpb25zfS0+e1VzZXJ9CiAgICAgICAgICAgICAgICAmJiAhZ3JlcCB7ICRfID09ICRTb3J0ZWRVc2VySUQgfSBAeyAkUGFyYW17UmVzdHJpY3Rpb25zfS0+e1VzZXJ9IHx8IFtdIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbmV4dCBTT1JURURVU0VSSUQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG15IEBSb3dEYXRhOwoKICAgICAgICAgICAgIyBhZGQgZGVzY3JpcHRpdmUgZmlyc3QgY29sdW1uCiAgICAgICAgICAgIG15ICRSb3dMYWJlbCA9ICRVc2VyTGlzdHskU29ydGVkVXNlcklEfTsKICAgICAgICAgICAgcHVzaCBAUm93RGF0YSwgJFJvd0xhYmVsOwoKICAgICAgICAgICAgIyBpdGVyYXRlIG92ZXIgc2VsZWN0ZWQgcHJvamVjdHMKICAgICAgICAgICAgUFJPSkVDVElEOgogICAgICAgICAgICBmb3IgbXkgJFByb2plY3RJRCAoQFByb2plY3RJRHMpIHsKCiAgICAgICAgICAgICAgICAjIHNhZmUgdXNlciBkYXRhIHRvIHJvdyBkYXRhCiAgICAgICAgICAgICAgICBwdXNoIEBSb3dEYXRhLCBpbnQgcmFuZCA1MDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBzdG9yZSBjdXJyZW50IHJvdyB0byBnbG9iYWwgc3RhdCBhcnJheQogICAgICAgICAgICBwdXNoIEBTdGF0QXJyYXksIFxAUm93RGF0YTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIEBTdGF0QXJyYXk7Cn0KCnN1YiBFeHBvcnRXcmFwcGVyIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgbmVlZGVkIG9iamVjdHMKICAgIG15ICRVc2VyT2JqZWN0ICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyk7CiAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAjIHdyYXAgaWRzIHRvIHVzZWQgc3BlbGxpbmcKICAgIGZvciBteSAkVXNlIChxdyhVc2VBc1ZhbHVlU2VyaWVzIFVzZUFzUmVzdHJpY3Rpb24gVXNlQXNYdmFsdWUpKSB7CgogICAgICAgIEVMRU1FTlQ6CiAgICAgICAgZm9yIG15ICRFbGVtZW50ICggQHsgJFBhcmFteyRVc2V9IH0gKSB7CiAgICAgICAgICAgIG5leHQgRUxFTUVOVCBpZiAhJEVsZW1lbnQ7CiAgICAgICAgICAgIG5leHQgRUxFTUVOVCBpZiAhJEVsZW1lbnQtPntTZWxlY3RlZFZhbHVlc307CgogICAgICAgICAgICBteSAkRWxlbWVudE5hbWUgPSAkRWxlbWVudC0+e0VsZW1lbnR9OwogICAgICAgICAgICBteSAkVmFsdWVzICAgICAgPSAkRWxlbWVudC0+e1NlbGVjdGVkVmFsdWVzfTsKCiAgICAgICAgICAgIGlmICggJEVsZW1lbnROYW1lIGVxICdVc2VyJyApIHsKCiAgICAgICAgICAgICAgICBJRDoKICAgICAgICAgICAgICAgIGZvciBteSAkSUQgKCBAeyRWYWx1ZXN9ICkgewogICAgICAgICAgICAgICAgICAgIG5leHQgSUQgaWYgISRJRDsKCiAgICAgICAgICAgICAgICAgICAgJElELT57Q29udGVudH0gPSAkVXNlck9iamVjdC0+VXNlckxvb2t1cCgKICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+ICRJRC0+e0NvbnRlbnR9CiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRFbGVtZW50TmFtZSBlcSAnUHJvamVjdCcgKSB7CgogICAgICAgICAgICAgICAgSUQ6CiAgICAgICAgICAgICAgICBmb3IgbXkgJElEICggQHskVmFsdWVzfSApIHsKICAgICAgICAgICAgICAgICAgICBuZXh0IElEIGlmICEkSUQ7CgogICAgICAgICAgICAgICAgICAgIG15ICVUbXBQcm9qZWN0RGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdEdldCgKICAgICAgICAgICAgICAgICAgICAgICAgSUQgPT4gJElELT57Q29udGVudH0KICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICRJRC0+e0NvbnRlbnR9ID0gJFRtcFByb2plY3REYXRhe1Byb2plY3R9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJEVsZW1lbnROYW1lIGVxICdQcm9qZWN0QWN0aW9uJyApIHsKCiAgICAgICAgICAgICAgICBJRDoKICAgICAgICAgICAgICAgIGZvciBteSAkSUQgKCBAeyRWYWx1ZXN9ICkgewogICAgICAgICAgICAgICAgICAgIG5leHQgSUQgaWYgISRJRDsKCiAgICAgICAgICAgICAgICAgICAgbXkgJVRtcEFjdGlvbkRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvbkdldCgKICAgICAgICAgICAgICAgICAgICAgICAgSUQgPT4gJElELT57Q29udGVudH0KICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICRJRC0+e0NvbnRlbnR9ID0gJFRtcEFjdGlvbkRhdGF7QWN0aW9ufTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBcJVBhcmFtOwp9CgpzdWIgSW1wb3J0V3JhcHBlciB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IG5lZWRlZCBvYmplY3RzCiAgICBteSAkVXNlck9iamVjdCAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwogICAgbXkgJExvZ09iamVjdCAgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpOwogICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgIyB3cmFwIHVzZWQgc3BlbGxpbmcgdG8gaWRzCiAgICBmb3IgbXkgJFVzZSAocXcoVXNlQXNWYWx1ZVNlcmllcyBVc2VBc1Jlc3RyaWN0aW9uIFVzZUFzWHZhbHVlKSkgewogICAgICAgIEVMRU1FTlQ6CiAgICAgICAgZm9yIG15ICRFbGVtZW50ICggQHsgJFBhcmFteyRVc2V9IH0gKSB7CiAgICAgICAgICAgIG5leHQgRUxFTUVOVCBpZiAhJEVsZW1lbnQ7CiAgICAgICAgICAgIG5leHQgRUxFTUVOVCBpZiAhJEVsZW1lbnQtPntTZWxlY3RlZFZhbHVlc307CgogICAgICAgICAgICBteSAkRWxlbWVudE5hbWUgPSAkRWxlbWVudC0+e0VsZW1lbnR9OwogICAgICAgICAgICBteSAkVmFsdWVzICAgICAgPSAkRWxlbWVudC0+e1NlbGVjdGVkVmFsdWVzfTsKCiAgICAgICAgICAgIGlmICggJEVsZW1lbnROYW1lIGVxICdVc2VyJyApIHsKCiAgICAgICAgICAgICAgICBJRDoKICAgICAgICAgICAgICAgIGZvciBteSAkSUQgKCBAeyRWYWx1ZXN9ICkgewogICAgICAgICAgICAgICAgICAgIG5leHQgSUQgaWYgISRJRDsKCiAgICAgICAgICAgICAgICAgICAgbXkgJFVzZXJJRCA9ICRVc2VyT2JqZWN0LT5Vc2VyTG9va3VwKAogICAgICAgICAgICAgICAgICAgICAgICBVc2VyTG9naW4gPT4gJElELT57Q29udGVudH0sCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgaWYgKCRVc2VySUQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJElELT57Q29udGVudH0gPSAkVXNlcklEOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJJbXBvcnQ6IENhbicgZmluZCB0aGUgdXNlciAkSUQtPntDb250ZW50fSEiCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICRJRCA9IHVuZGVmOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRFbGVtZW50TmFtZSBlcSAnUHJvamVjdCcgKSB7CgogICAgICAgICAgICAgICAgSUQ6CiAgICAgICAgICAgICAgICBmb3IgbXkgJElEICggQHskVmFsdWVzfSApIHsKICAgICAgICAgICAgICAgICAgICBuZXh0IElEIGlmICEkSUQ7CgogICAgICAgICAgICAgICAgICAgIG15ICVQcm9qZWN0ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0R2V0KAogICAgICAgICAgICAgICAgICAgICAgICBQcm9qZWN0ID0+ICRJRC0+e0NvbnRlbnR9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAkUHJvamVjdHtJRH0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRJRC0+e0NvbnRlbnR9ID0gJFByb2plY3R7SUR9OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJExvZ09iamVjdC0+TG9nKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJJbXBvcnQ6IENhbicgZmluZCBwcm9qZWN0ICRJRC0+e0NvbnRlbnR9ISIKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgJElEID0gdW5kZWY7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJEVsZW1lbnROYW1lIGVxICdQcm9qZWN0QWN0aW9uJyApIHsKICAgICAgICAgICAgICAgIElEOgogICAgICAgICAgICAgICAgZm9yIG15ICRJRCAoIEB7JFZhbHVlc30gKSB7CiAgICAgICAgICAgICAgICAgICAgbmV4dCBJRCBpZiAhJElEOwoKICAgICAgICAgICAgICAgICAgICBteSAlQWN0aW9uID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25HZXQoCiAgICAgICAgICAgICAgICAgICAgICAgIEFjdGlvbiA9PiAkSUQtPntDb250ZW50fSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIGlmICggJEFjdGlvbntJRH0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRJRC0+e0NvbnRlbnR9ID0gJEFjdGlvbntJRH07CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAkTG9nT2JqZWN0LT5Mb2coCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkltcG9ydDogQ2FuJyBmaW5kIGFjdGlvbiAkSUQtPntDb250ZW50fSEiCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICRJRCA9IHVuZGVmOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBcJVBhcmFtOwp9CgpzdWIgR2V0RXh0ZW5kZWRUaXRsZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIHJldHVybiBpZiAkUGFyYW17UmVzdHJpY3Rpb25zfS0+e1RpbWVBY2NvdW50aW5nUGVyaW9kU3RhcnR9IHx8ICRQYXJhbXtSZXN0cmljdGlvbnN9LT57VGltZUFjY291bnRpbmdQZXJpb2RTdG9wfTsKCiAgICBteSAlRGF0ZUluZGV4VG9OYW1lID0gKAogICAgICAgICdTZWNvbmQnID0+IDAsCiAgICAgICAgJ01pbnV0ZScgPT4gMSwKICAgICAgICAnSG91cicgICA9PiAyLAogICAgICAgICdEYXknICAgID0+IDMsCiAgICAgICAgJ01vbnRoJyAgPT4gNCwKICAgICAgICAnWWVhcicgICA9PiA1LAogICAgKTsKCiAgICBteSAlUHJldmlvdXNNb250aERhdGVzID0gJFNlbGYtPl9HZXRQcmV2aW91c01vbnRoRGF0ZXMoCiAgICAgICAgRGF0ZUluZGV4VG9OYW1lID0+IFwlRGF0ZUluZGV4VG9OYW1lLAogICAgKTsKCiAgICBteSAkU3RhcnREYXRlID0gc3ByaW50ZiAiJTA0ZC0lMDJkLSUwMmQgMDA6MDA6MDAiLCAkUHJldmlvdXNNb250aERhdGVze05ld1N0YXJ0RGF0ZX0tPlswXSwKICAgICAgICAkUHJldmlvdXNNb250aERhdGVze05ld1N0YXJ0RGF0ZX0tPlsxXSwgJFByZXZpb3VzTW9udGhEYXRlc3tOZXdTdGFydERhdGV9LT5bMl07CiAgICBteSAkU3RvcERhdGUgPSBzcHJpbnRmICIlMDRkLSUwMmQtJTAyZCAwMDowMDowMCIsICRQcmV2aW91c01vbnRoRGF0ZXN7TmV3U3RvcERhdGV9LT5bMF0sCiAgICAgICAgJFByZXZpb3VzTW9udGhEYXRlc3tOZXdTdG9wRGF0ZX0tPlsxXSwgJFByZXZpb3VzTW9udGhEYXRlc3tOZXdTdG9wRGF0ZX0tPlsyXTsKCiAgICByZXR1cm4gIiRTdGFydERhdGUtJFN0b3BEYXRlIjsKfQoKc3ViIF9HZXRTdGF0RGF0YSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15IEBSZXR1cm47CiAgICBteSBAVXNlcklEcyA9IEB7ICRQYXJhbXtVc2VySURzfSB8fCBbXSB9OwoKICAgIG15ICVEYXRlSW5kZXhUb05hbWUgPSAoCiAgICAgICAgJ1NlY29uZCcgPT4gMCwKICAgICAgICAnTWludXRlJyA9PiAxLAogICAgICAgICdIb3VyJyAgID0+IDIsCiAgICAgICAgJ0RheScgICAgPT4gMywKICAgICAgICAnTW9udGgnICA9PiA0LAogICAgICAgICdZZWFyJyAgID0+IDUsCiAgICApOwoKICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgICMgbG9vcGluZyBvdmVyIGFsbCBvciBzZWxlY3RlZCB1c2VycwogICAgZm9yIG15ICRVc2VySUQgKEBVc2VySURzKSB7CgogICAgICAgIG15ICRTdGFydERhdGU7CiAgICAgICAgbXkgJFN0b3BEYXRlOwoKICAgICAgICAjIGNoZWNrIGlmIHRpbWUgcGVyaW9kIGhhcyBiZWVuIHNlbGVjdGVkCiAgICAgICAgaWYgKCAkUGFyYW17UGFyYW19LT57UmVzdHJpY3Rpb25zfS0+e1RpbWVBY2NvdW50aW5nUGVyaW9kU3RhcnR9ICkgewoKICAgICAgICAgICAgIyBnZXQgVU5JWCB0aW1lLXN0YW1wIG9mIHN0YXJ0IGFuZCBlbmQgdmFsdWVzCiAgICAgICAgICAgICRTdGFydERhdGUgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlRpbWVTdGFtcDJTeXN0ZW1UaW1lKAogICAgICAgICAgICAgICAgU3RyaW5nID0+ICRQYXJhbXtQYXJhbX0tPntSZXN0cmljdGlvbnN9LT57VGltZUFjY291bnRpbmdQZXJpb2RTdGFydH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTdG9wRGF0ZSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VGltZVN0YW1wMlN5c3RlbVRpbWUoCiAgICAgICAgICAgICAgICBTdHJpbmcgPT4gJFBhcmFte1BhcmFtfS0+e1Jlc3RyaWN0aW9uc30tPntUaW1lQWNjb3VudGluZ1BlcmlvZFN0b3B9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgSU1QT1JUQU5UOgogICAgICAgICAgICAjIElmIG5vIHRpbWUgcGVyaW9kIGhhZCBiZWVuIHNlbGVjdGVkIHByZXZpb3VzIG1vbnRoIHdpbGwgYmUgdXNlZCBhcyBwZXJpb2QhCiAgICAgICAgICAgIG15ICVQcmV2aW91c01vbnRoRGF0ZXMgPSAkU2VsZi0+X0dldFByZXZpb3VzTW9udGhEYXRlcygKICAgICAgICAgICAgICAgIERhdGVJbmRleFRvTmFtZSA9PiBcJURhdGVJbmRleFRvTmFtZSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgQ2FsY3VsYXRlIFVOSVggdGltZXN0YW1wcyBmb3Igc3RhcnQgYW5kIHN0b3AgZGF0ZS4KICAgICAgICAgICAgJFN0YXJ0RGF0ZSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+RGF0ZTJTeXN0ZW1UaW1lKAogICAgICAgICAgICAgICAgWWVhciAgID0+ICRQcmV2aW91c01vbnRoRGF0ZXN7TmV3U3RhcnREYXRlfS0+WzBdLAogICAgICAgICAgICAgICAgTW9udGggID0+ICRQcmV2aW91c01vbnRoRGF0ZXN7TmV3U3RhcnREYXRlfS0+WzFdLAogICAgICAgICAgICAgICAgRGF5ICAgID0+ICRQcmV2aW91c01vbnRoRGF0ZXN7TmV3U3RhcnREYXRlfS0+WzJdLAogICAgICAgICAgICAgICAgSG91ciAgID0+IDAsCiAgICAgICAgICAgICAgICBNaW51dGUgPT4gMCwKICAgICAgICAgICAgICAgIFNlY29uZCA9PiAwLAogICAgICAgICAgICApOwogICAgICAgICAgICAkU3RvcERhdGUgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkRhdGUyU3lzdGVtVGltZSgKICAgICAgICAgICAgICAgIFllYXIgICA9PiAkUHJldmlvdXNNb250aERhdGVze05ld1N0b3BEYXRlfS0+WzBdLAogICAgICAgICAgICAgICAgTW9udGggID0+ICRQcmV2aW91c01vbnRoRGF0ZXN7TmV3U3RvcERhdGV9LT5bMV0sCiAgICAgICAgICAgICAgICBEYXkgICAgPT4gJFByZXZpb3VzTW9udGhEYXRlc3tOZXdTdG9wRGF0ZX0tPlsyXSwKICAgICAgICAgICAgICAgIEhvdXIgICA9PiAyMywKICAgICAgICAgICAgICAgIE1pbnV0ZSA9PiA1OSwKICAgICAgICAgICAgICAgIFNlY29uZCA9PiA1OSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgY2FsY3VsYXRlIG51bWJlciBvZiBkYXlzIHdpdGhpbiB0aGUgZ2l2ZW4gcmFuZ2UKICAgICAgICBteSAkRGF5cyA9IGludCggKCAkU3RvcERhdGUgLSAkU3RhcnREYXRlICkgLyA4NjQwMCApICsgMTsKCiAgICAgICAgREFZOgogICAgICAgIGZvciBteSAkRGF5ICggMCAuLiAkRGF5cyApIHsKCiAgICAgICAgICAgICMgZ2V0IGRheSByZWxhdGl2ZSB0byBzdGFydCBkYXRlCiAgICAgICAgICAgIG15ICREYXRlT2ZQZXJpb2QgPSAkU3RhcnREYXRlICsgJERheSAqIDg2NDAwOwoKICAgICAgICAgICAgIyBnZXQgbmVlZGVkIGRhdGUgdmFsdWVzIG91dCBvZiB0aW1lLXN0YW1wCiAgICAgICAgICAgIG15IEBEYXRlVmFsdWVzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5TeXN0ZW1UaW1lMkRhdGUoCiAgICAgICAgICAgICAgICBTeXN0ZW1UaW1lID0+ICREYXRlT2ZQZXJpb2QsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGdldCB3b3JraW5nIHVuaXQgZm9yIHVzZXIgYW5kIGRheQogICAgICAgICAgICBteSAlV29ya2luZ1VuaXQgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0dldCgKICAgICAgICAgICAgICAgIFllYXIgICA9PiAkRGF0ZVZhbHVlc1sgJERhdGVJbmRleFRvTmFtZXsnWWVhcid9IF0sCiAgICAgICAgICAgICAgICBNb250aCAgPT4gJERhdGVWYWx1ZXNbICREYXRlSW5kZXhUb05hbWV7J01vbnRoJ30gXSwKICAgICAgICAgICAgICAgIERheSAgICA9PiAkRGF0ZVZhbHVlc1sgJERhdGVJbmRleFRvTmFtZXsnRGF5J30gXSwKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkVXNlcklELAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBleHRyYWN0IGRldGFpbGVkIGluZm9ybWF0aW9uCiAgICAgICAgICAgIG15IEBEYXlXb3JraW5nVW5pdHMgPSBAeyAkV29ya2luZ1VuaXR7V29ya2luZ1VuaXRzfSB8fCBbXSB9OwoKICAgICAgICAgICAgIyBjaGVjayBmb3IgcHJvamVjdCByZXN0cmljdGlvbnMKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgJFBhcmFte1BhcmFtfS0+e1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0fQogICAgICAgICAgICAgICAgJiYgcmVmICRQYXJhbXtQYXJhbX0tPntSZXN0cmljdGlvbnN9LT57UHJvamVjdH0gZXEgJ0FSUkFZJwogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CgogICAgICAgICAgICAgICAgIyBidWlsZCBtYXRjaGluZyBoYXNoIGZvciBzZWxlY3RlZCBwcm9qZWN0cwogICAgICAgICAgICAgICAgbXkgJVNlbGVjdGVkUHJvamVjdElEcyA9IG1hcCB7ICggJF8gPT4gMSApIH0gQHsgJFBhcmFte1BhcmFtfS0+e1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0fSB9OwoKICAgICAgICAgICAgICAgICMgZmlsdGVyIG9ubHkgc2VsZWN0ZWQgcHJvamVjdHMKICAgICAgICAgICAgICAgIG15IEBGaWx0ZXJlZFByb2plY3RXVXMgPSBncmVwIHsKICAgICAgICAgICAgICAgICAgICAkU2VsZWN0ZWRQcm9qZWN0SURzeyAkXy0+e1Byb2plY3RJRH0gfQogICAgICAgICAgICAgICAgfSBARGF5V29ya2luZ1VuaXRzOwoKICAgICAgICAgICAgICAgIEBEYXlXb3JraW5nVW5pdHMgPSBARmlsdGVyZWRQcm9qZWN0V1VzOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGNoZWNrIGZvciB0YXNrIHJlc3RyaWN0aW9ucwogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAkUGFyYW17UGFyYW19LT57UmVzdHJpY3Rpb25zfS0+e1Byb2plY3RBY3Rpb259CiAgICAgICAgICAgICAgICAmJiByZWYgJFBhcmFte1BhcmFtfS0+e1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0QWN0aW9ufSBlcSAnQVJSQVknCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKCiAgICAgICAgICAgICAgICAjIGJ1aWxkIG1hdGNoaW5nIGhhc2ggZm9yIHNlbGVjdGVkIGFjdGlvbnMKICAgICAgICAgICAgICAgIG15ICVTZWxlY3RlZEFjdGlvbklEcyA9IG1hcCB7ICggJF8gPT4gMSApIH0gQHsgJFBhcmFte1BhcmFtfS0+e1Jlc3RyaWN0aW9uc30tPntQcm9qZWN0QWN0aW9ufSB9OwoKICAgICAgICAgICAgICAgICMgZmlsdGVyIG9ubHkgc2VsZWN0ZWQgYWN0aW9ucwogICAgICAgICAgICAgICAgbXkgQEZpbHRlcmVkQWN0aW9uV1VzID0gZ3JlcCB7ICRTZWxlY3RlZEFjdGlvbklEc3sgJF8tPntBY3Rpb25JRH0gfSB9IEBEYXlXb3JraW5nVW5pdHM7CgogICAgICAgICAgICAgICAgQERheVdvcmtpbmdVbml0cyA9IEBGaWx0ZXJlZEFjdGlvbldVczsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBjaGVjayBmb3IgdXNlciByZXN0cmljdGlvbnMKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgJFBhcmFte1BhcmFtfS0+e1Jlc3RyaWN0aW9uc30tPntVc2VyfQogICAgICAgICAgICAgICAgJiYgcmVmICRQYXJhbXtQYXJhbX0tPntSZXN0cmljdGlvbnN9LT57VXNlcn0gZXEgJ0FSUkFZJwogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CgogICAgICAgICAgICAgICAgIyBidWlsZCBtYXRjaGluZyBoYXNoIGZvciBzZWxlY3RlZCBhY3Rpb25zCiAgICAgICAgICAgICAgICBteSAlU2VsZWN0ZWRVc2VySURzID0gbWFwIHsgKCAkXyA9PiAxICkgfSBAeyAkUGFyYW17UGFyYW19LT57UmVzdHJpY3Rpb25zfS0+e1VzZXJ9IH07CgogICAgICAgICAgICAgICAgIyBmaWx0ZXIgb25seSBzZWxlY3RlZCBhY3Rpb25zCiAgICAgICAgICAgICAgICBteSBARmlsdGVyZWRVc2VyV1VzID0gZ3JlcCB7ICRTZWxlY3RlZFVzZXJJRHN7ICRfLT57VXNlcklEfSB9IH0gQERheVdvcmtpbmdVbml0czsKCiAgICAgICAgICAgICAgICBARGF5V29ya2luZ1VuaXRzID0gQEZpbHRlcmVkVXNlcldVczsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBkbyBub3Qgc3RvcmUgZGF0YSBpZiBubyBkYXRhIGlzIGF2YWlsYWJsZQogICAgICAgICAgICBuZXh0IERBWSBpZiAhQERheVdvcmtpbmdVbml0czsKCiAgICAgICAgICAgICMgYWRkIGRhdGEgdG8gZ2xvYmFsIHJlc3VsdCBzZXQKICAgICAgICAgICAgcHVzaCBAUmV0dXJuLCBARGF5V29ya2luZ1VuaXRzOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gXEBSZXR1cm47Cn0KCnN1YiBfR2V0UHJldmlvdXNNb250aERhdGVzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgaWYgKCAhJFBhcmFte0RhdGVJbmRleFRvTmFtZX0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkIERhdGVJbmRleFRvTmFtZSEiLAogICAgICAgICk7CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCB0aW1lIGFjY291bnRpbmcgb2JqZWN0CiAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CiAgICBteSAkRGF0ZVRpbWVPYmplY3RDdXJyZW50ID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CgogICAgIyBHZXQgY3VycmVudCBkYXRlIHZhbHVlcy4KICAgIG15IEBDdXJyZW50RGF0ZSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgIFN5c3RlbVRpbWUgPT4gJERhdGVUaW1lT2JqZWN0Q3VycmVudC0+VG9FcG9jaCgpLAogICAgKTsKCiAgICAjIEdldCBmaXJzdCBkYXkgb2YgcHJldmlvdXMgbW9udGguCiAgICBteSBATmV3U3RhcnREYXRlID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BZGREZWx0YVlNRCgKICAgICAgICAkQ3VycmVudERhdGVbICRQYXJhbXtEYXRlSW5kZXhUb05hbWV9LT57J1llYXInfSBdLAogICAgICAgICRDdXJyZW50RGF0ZVsgJFBhcmFte0RhdGVJbmRleFRvTmFtZX0tPnsnTW9udGgnfSBdLAogICAgICAgIDEsCiAgICAgICAgMCwKICAgICAgICAtMSwKICAgICAgICAwLAogICAgKTsKCiAgICAjIEdldCBmaXJzdCBkYXkgb2YgbmV4dCBtb250aCByZWxhdGl2ZSB0byBwcmV2aW91cyBtb250aC4KICAgIG15IEBOZXdTdG9wRGF0ZSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWRkRGVsdGFZTUQoCiAgICAgICAgJE5ld1N0YXJ0RGF0ZVswXSwKICAgICAgICAkTmV3U3RhcnREYXRlWzFdLAogICAgICAgICROZXdTdGFydERhdGVbMl0sCiAgICAgICAgMCwKICAgICAgICArMSwKICAgICAgICAwLAogICAgKTsKCiAgICAjIEdldCBsYXN0IG9mIGRheSBwcmV2aW91cyBtb250aC4KICAgIEBOZXdTdG9wRGF0ZSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWRkRGVsdGFZTUQoCiAgICAgICAgJE5ld1N0b3BEYXRlWzBdLAogICAgICAgICROZXdTdG9wRGF0ZVsxXSwKICAgICAgICAkTmV3U3RvcERhdGVbMl0sCiAgICAgICAgMCwKICAgICAgICAwLAogICAgICAgIC0xLAogICAgKTsKCiAgICByZXR1cm4gKAogICAgICAgIE5ld1N0YXJ0RGF0ZSA9PiBcQE5ld1N0YXJ0RGF0ZSwKICAgICAgICBOZXdTdG9wRGF0ZSAgPT4gXEBOZXdTdG9wRGF0ZSwKICAgICk7Cn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSB2YXJzIHF3KCRTZWxmKTsKCm15IEBUZXN0cyA9ICgKICAgIHsKICAgICAgICBOYW1lICAgID0+ICdFbXB0eScsCiAgICAgICAgQ29uZmlnICA9PiB7fSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnV3JvbmcgRGF5IChzdHJpbmcpJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBOdW1iZXIgPT4gJ2EnLAogICAgICAgIH0sCiAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ1dyb25nIERheSAoMCknLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIE51bWJlciA9PiAwLAogICAgICAgIH0sCiAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ1dyb25nIERheSAoLTEpJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBOdW1iZXIgPT4gLTEsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnV3JvbmcgRGF5ICg4KScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgTnVtYmVyID0+IDgsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnTW9uZGF5JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBOdW1iZXIgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0ID0+ICdNb25kYXknLAogICAgICAgIFN1Y2Nlc3MgICAgICAgID0+IDEsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnVHVlc2RheScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgTnVtYmVyID0+IDIsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdCA9PiAnVHVlc2RheScsCiAgICAgICAgU3VjY2VzcyAgICAgICAgPT4gMSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdXZWRuZXNkYXknLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIE51bWJlciA9PiAzLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHQgPT4gJ1dlZG5lc2RheScsCiAgICAgICAgU3VjY2VzcyAgICAgICAgPT4gMSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdUaHVyc2RheScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgTnVtYmVyID0+IDQsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdCA9PiAnVGh1cnNkYXknLAogICAgICAgIFN1Y2Nlc3MgICAgICAgID0+IDEsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRnJpZGF5JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBOdW1iZXIgPT4gNSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0ID0+ICdGcmlkYXknLAogICAgICAgIFN1Y2Nlc3MgICAgICAgID0+IDEsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnU2F0dXJkYXknLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIE51bWJlciA9PiA2LAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHQgPT4gJ1NhdHVyZGF5JywKICAgICAgICBTdWNjZXNzICAgICAgICA9PiAxLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ1N1bmRheScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgTnVtYmVyID0+IDcsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdCA9PiAnU3VuZGF5JywKICAgICAgICBTdWNjZXNzICAgICAgICA9PiAxLAogICAgfSwKKTsKCm5vIHdhcm5pbmdzICdvbmNlJzsgICAgIyMgbm8gY3JpdGljCm15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwp1c2Ugd2FybmluZ3M7CgpURVNUOgpmb3IgbXkgJFRlc3QgKEBUZXN0cykgewogICAgbXkgJERheU5hbWUgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkRheU9mV2Vla1RvTmFtZSggJXsgJFRlc3QtPntDb25maWd9IH0gKTsKCiAgICBpZiAoICEkVGVzdC0+e1N1Y2Nlc3N9ICkgewogICAgICAgICRTZWxmLT5GYWxzZSgKICAgICAgICAgICAgJERheU5hbWUsCiAgICAgICAgICAgICIkVGVzdC0+e05hbWV9IERheU9mV2Vla1RvTmFtZSgpIC0gd2l0aCBmYWxzZSIsCiAgICAgICAgKTsKICAgICAgICBuZXh0IFRFU1Q7CiAgICB9CgogICAgJFNlbGYtPklzKAogICAgICAgICREYXlOYW1lLAogICAgICAgICRUZXN0LT57RXhwZWN0ZWRSZXN1bHR9LAogICAgICAgICIkVGVzdC0+e05hbWV9IERheU9mV2Vla1RvTmFtZSgpIiwKICAgICk7Cn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSB2YXJzIHF3KCRTZWxmKTsKCnVzZSB2YXI6OnBhY2thZ2VzZXR1cDo6VGltZUFjY291bnRpbmc7CgpteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCm15ICRSYW5kb21Hcm91cCA9ICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CgpteSBAVGVzdHMgPSAoCiAgICB7CiAgICAgICAgTmFtZSAgICAgID0+ICdSZXN0b3JlIHBlcm1pc3Npb25zIG9mIEFnZW50VGltZUFjY291bnRpbmdFZGl0IGZyb250ZW5kIG1vZHVsZScsCiAgICAgICAgU2V0dGluZ3MgID0+IFsnRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50VGltZUFjY291bnRpbmdFZGl0J10sCiAgICAgICAgT2xkQ29uZmlnID0+IHsKICAgICAgICAgICAgJ0Zyb250ZW5kOjpNb2R1bGUnID0+IHsKICAgICAgICAgICAgICAgICdBZ2VudFRpbWVBY2NvdW50aW5nRWRpdCcgPT4gewogICAgICAgICAgICAgICAgICAgICdEZXNjcmlwdGlvbicgPT4gJ1RpbWUgYWNjb3VudGluZyBlZGl0LicsCiAgICAgICAgICAgICAgICAgICAgJ0dyb3VwJyAgICAgICA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgICRSYW5kb21Hcm91cCwKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICdHcm91cFJvJyA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgICRSYW5kb21Hcm91cCwKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICdOYXZCYXInID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0FjY2Vzc0tleScgICA9PiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdCbG9jaycgICAgICAgPT4gJ0l0ZW1BcmVhJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdEZXNjcmlwdGlvbicgPT4gJ1RpbWUgYWNjb3VudGluZy4nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0xpbmsnICAgICAgICA9PiAnQWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdFZGl0JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdOYW1lJyAgICAgICAgPT4gJ1RpbWUgQWNjb3VudGluZycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTmF2QmFyJyAgICAgID0+ICdUaW1lQWNjb3VudGluZycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUHJpbycgICAgICAgID0+ICc2MDAwJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdUeXBlJyAgICAgICAgPT4gJ01lbnUnCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBY2Nlc3NLZXknICAgPT4gJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQmxvY2snICAgICAgID0+ICcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0Rlc2NyaXB0aW9uJyA9PiAnRWRpdCB0aW1lIHJlY29yZC4nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0dyb3VwUm8nICAgICA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFJhbmRvbUdyb3VwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdMaW5rJyAgID0+ICdBY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ0VkaXQnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ05hbWUnICAgPT4gJ0VkaXQnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ05hdkJhcicgPT4gJ1RpbWVBY2NvdW50aW5nJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdQcmlvJyAgID0+ICcyMDAnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1R5cGUnICAgPT4gJycKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwKCiAgICB7CiAgICAgICAgTmFtZSAgICAgICAgPT4gJ1Jlc3RvcmUgcGVybWlzc2lvbnMgb2YgRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50VGltZUFjY291bnRpbmdWaWV3IHRvIHRoZSBvbGQgZGVmYXVsdHMnLAogICAgICAgIFNldHRpbmdzICAgID0+IFsnRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50VGltZUFjY291bnRpbmdWaWV3J10sCiAgICAgICAgT2xkQ29uZmlnICAgPT4ge30sCiAgICAgICAgT2xkRGVmYXVsdHMgPT4gewogICAgICAgICAgICAnRnJvbnRlbmQ6Ok1vZHVsZScgPT4gewogICAgICAgICAgICAgICAgJ0FnZW50VGltZUFjY291bnRpbmdWaWV3JyA9PiB7CiAgICAgICAgICAgICAgICAgICAgR3JvdXAgICA9PiBbJ3RpbWVfYWNjb3VudGluZyddLAogICAgICAgICAgICAgICAgICAgIEdyb3VwUm8gPT4gWyd0aW1lX2FjY291bnRpbmcnXSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBDb25maWcgPT4ge30sCiAgICB9LAopOwoKbXkgJEdldENvbmZpZyA9IHN1YiB7CiAgICBteSAkU291cmNlICAgICAgPSBzaGlmdDsKICAgIG15ICRTZXR0aW5nTmFtZSA9IHNoaWZ0OwoKICAgIG15ICRDb25maWcgPSAkU291cmNlOwogICAgbXkgQEtleXMgICA9IHNwbGl0ICcjIyMnLCAkU2V0dGluZ05hbWU7CiAgICB3aGlsZSAoIG15ICRLZXkgPSBzaGlmdCBAS2V5cyApIHsKICAgICAgICAkQ29uZmlnID0gJENvbmZpZy0+eyRLZXl9OwogICAgfQoKICAgIHJldHVybiAkQ29uZmlnOwp9OwoKbXkgJENoZWNrR3JvdXBHcm91cFJvID0gc3ViIHsKICAgIG15ICVQYXJhbSAgICA9IEBfOwogICAgbXkgJEV4cGVjdGVkID0gJFBhcmFte0V4cGVjdGVkfTsKICAgIG15ICRSZXN1bHQgICA9ICRQYXJhbXtSZXN1bHR9OwogICAgbXkgJFRlc3ROYW1lID0gJFBhcmFte1Rlc3ROYW1lfTsKCiAgICBpZiAoICRFeHBlY3RlZC0+e0dyb3VwfSB8fCAkRXhwZWN0ZWQtPntHcm91cFJvfSApIHsKCiAgICAgICAgIyBDaGVjayBmb3IgS2V5IEdyb3VwIGFuZCBHcm91cFJvLgogICAgICAgIGZvciBteSAkS2V5IChxdyhHcm91cCBHcm91cFJvKSkgewogICAgICAgICAgICAkU2VsZi0+SXNEZWVwbHkoCiAgICAgICAgICAgICAgICAkUmVzdWx0LT57JEtleX0sCiAgICAgICAgICAgICAgICAkRXhwZWN0ZWQtPnskS2V5fSAvLyBbXSwKICAgICAgICAgICAgICAgICRUZXN0TmFtZSAuICIsICckeyBLZXkgfScgZml4ZWQhIgogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KfTsKCm15ICRTeXNDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnJyk7CgpURVNUOgpmb3IgbXkgJFRlc3QgKEBUZXN0cykgewoKICAgICMgSWYgdGhlIGtleSAnQ29uZmlnJyBleGlzdHMsIGxldHMgc2V0IHRoZSBuZXcgY29uZmlnIGJlZm9yZSBkbyBhbnl0aGluZyBlbHNlCiAgICBpZiAoICRUZXN0LT57Q29uZmlnfSApIHsKICAgICAgICBmb3IgbXkgJEtleSAoIHNvcnQga2V5cyAleyAkVGVzdC0+e0NvbmZpZ30gfSApIHsKICAgICAgICAgICAgJEhlbHBlci0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgICAgIEtleSAgID0+ICRLZXksCiAgICAgICAgICAgICAgICBWYWx1ZSA9PiAkVGVzdC0+e0NvbmZpZ30tPnskS2V5fSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBDaGVjayBpZiBpdCB3YXMgcmVzdG9yZWQgdG8gdGhlIG9sZCBjb25maWcKICAgIG15ICRPbGRDb25maWcgPSAkVGVzdC0+e09sZENvbmZpZ307CiAgICBsb2NhbCAqdmFyOjpwYWNrYWdlc2V0dXA6OlRpbWVBY2NvdW50aW5nOjpfR2V0T1RSUzVDb25maWdCYWNrdXAgPSBzdWIgeyAgICAjIyBubyBjcml0aWMKICAgICAgICByZXR1cm4gJE9sZENvbmZpZzsKICAgIH07CiAgICB2YXI6OnBhY2thZ2VzZXR1cDo6VGltZUFjY291bnRpbmctPm5ldygpLT5Db2RlVXBncmFkZUZyb21Mb3dlclRoYW5fNV8wXzkyKCk7CgogICAgIyBDaGVjayBpZiB0aGUgbmV3IGNvbmZpZyBpcyBhY2NvcmRpbmcgdG8gdGhlIG9sZCBvbmUuCiAgICBteSBAU2V0dGluZ3MgPSBAeyAkVGVzdC0+e1NldHRpbmdzfSB9OwogICAgU0VUVElOR19OQU1FOgogICAgZm9yIG15ICRTZXR0aW5nTmFtZSAoQFNldHRpbmdzKSB7CiAgICAgICAgbXkgJFNldHRpbmdPbGRDb25maWcgICA9ICRHZXRDb25maWctPiggJE9sZENvbmZpZywgICAgICAgICAgICRTZXR0aW5nTmFtZSApOwogICAgICAgIG15ICRTZXR0aW5nT2xkRGVmYXVsdHMgPSAkR2V0Q29uZmlnLT4oICRUZXN0LT57T2xkRGVmYXVsdHN9LCAkU2V0dGluZ05hbWUgKTsKICAgICAgICBteSAlQ29uZmlnICAgICAgICAgICAgID0gJFN5c0NvbmZpZ09iamVjdC0+U2V0dGluZ0dldCgKICAgICAgICAgICAgTmFtZSA9PiAkU2V0dGluZ05hbWUsCiAgICAgICAgKTsKICAgICAgICBteSAkRWZmZWN0aXZlVmFsdWUgPSAkQ29uZmlne0VmZmVjdGl2ZVZhbHVlfTsKCiAgICAgICAgIyBJdCdzIG5vdCBhIGNvbXBsZXggdmFsdWUsIGNoZWNrIG9ubHkgaWYgdGhlIHZhbHVlIHdhcyByZXN0b3JlZC4KICAgICAgICBpZiAoICEoIHJlZiAkRWZmZWN0aXZlVmFsdWUgKSApIHsKICAgICAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAgICAgJEVmZmVjdGl2ZVZhbHVlLAogICAgICAgICAgICAgICAgJFNldHRpbmdPbGRDb25maWcgLy8gJFNldHRpbmdPbGREZWZhdWx0cywKICAgICAgICAgICAgICAgICRUZXN0LT57TmFtZX0KICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG5leHQgU0VUVElOR19OQU1FOwogICAgICAgIH0KCiAgICAgICAgJENoZWNrR3JvdXBHcm91cFJvLT4oCiAgICAgICAgICAgIEV4cGVjdGVkID0+ICRTZXR0aW5nT2xkQ29uZmlnIC8vICRTZXR0aW5nT2xkRGVmYXVsdHMsCiAgICAgICAgICAgIFJlc3VsdCAgID0+ICRFZmZlY3RpdmVWYWx1ZSwKICAgICAgICAgICAgVGVzdE5hbWUgPT4gJFRlc3QtPntOYW1lfSwKICAgICAgICApOwoKICAgICAgICBpZiAoICRTZXR0aW5nT2xkQ29uZmlnLT57TmF2QmFyfSB8fCAkU2V0dGluZ09sZERlZmF1bHRzLT57TmF2QmFyfSApIHsKCiAgICAgICAgICAgICMgQ2hlY2sgZm9yIG5hdmlnYXRpb24gcGVybWlzc2lvbnMuCiAgICAgICAgICAgIG15ICggdW5kZWYsICRGcm9udGVuZCApID0gc3BsaXQgJyMjIycsICRTZXR0aW5nTmFtZTsKCiAgICAgICAgICAgICMgR2V0IHRoZSBvbGQgbmF2aWdhdGlvbi4KICAgICAgICAgICAgbXkgJE9sZE5hdmlnYXRpb24gPSAkU2V0dGluZ09sZENvbmZpZy0+e05hdkJhcn0gLy8gJFNldHRpbmdPbGREZWZhdWx0cy0+e05hdkJhcn07CgogICAgICAgICAgICAjIEdldCB0aGUgY3VycmVudCBuYXZpZ2F0aW9uLgogICAgICAgICAgICBteSAkTmV3TmF2aWdhdGlvbgogICAgICAgICAgICAgICAgPSAkR2V0Q29uZmlnLT4oICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyksICdGcm9udGVuZDo6TmF2aWdhdGlvbiMjIycgLiAkRnJvbnRlbmQgKTsKCiAgICAgICAgICAgICMgQ2hlY2sgaWYgdGhlIHBlcm1pc3Npb24gaXMgdGhlIHNhbWUgYXMgdGhlIG9sZCBvbmUuCiAgICAgICAgICAgIGZvciBteSAkSW5kZXggKCBzb3J0IGtleXMgJXskTmV3TmF2aWdhdGlvbn0gKSB7CiAgICAgICAgICAgICAgICBteSAkTmV3SXRlbXMgPSAkTmV3TmF2aWdhdGlvbi0+eyRJbmRleH07CiAgICAgICAgICAgICAgICBmb3IgbXkgJE5ld0l0ZW0gKCBAeyROZXdJdGVtc30gKSB7CiAgICAgICAgICAgICAgICAgICAgbXkgJE9sZEl0ZW0KICAgICAgICAgICAgICAgICAgICAgICAgPSBMaXN0OjpVdGlsOjpmaXJzdCB7ICRfLT57TmFtZX0gZXEgJE5ld0l0ZW0tPntOYW1lfSAmJiAkXy0+e0Jsb2NrfSBlcSAkTmV3SXRlbS0+e0Jsb2NrfSB9CiAgICAgICAgICAgICAgICAgICAgQHskT2xkTmF2aWdhdGlvbn07CiAgICAgICAgICAgICAgICAgICAgbmV4dCBORVdfSVRFTSBpZiAhJE9sZEl0ZW07CgogICAgICAgICAgICAgICAgICAgICRDaGVja0dyb3VwR3JvdXBSby0+KAogICAgICAgICAgICAgICAgICAgICAgICBFeHBlY3RlZCA9PiAkT2xkSXRlbSwKICAgICAgICAgICAgICAgICAgICAgICAgUmVzdWx0ICAgPT4gJE5ld0l0ZW0sCiAgICAgICAgICAgICAgICAgICAgICAgIFRlc3ROYW1lID0+IHNwcmludGYoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkVGVzdC0+e05hbWV9IC4gJyAoTmF2aWdhdGlvbiAlcyknLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJE5ld0l0ZW0tPntOYW1lfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICROZXdJdGVtLT57QmxvY2t9ID8gJy0nIC4gJE5ld0l0ZW0tPntCbG9ja30gOiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9CgojIFJlc3RvcmUgZGVmYXVsdCBzZXR0aW5nIHZhbHVlcyBhZnRlciB0ZXN0aW5nLCBzaW5jZSBvdmVycmlkZXMgYXJlIGRlcGxveWVkIGZyb20gZXh0ZXJuYWwgY29kZS4KbXkgQFNldHRpbmdzID0gKAogICAgJ0Zyb250ZW5kOjpNb2R1bGUjIyNBZ2VudFRpbWVBY2NvdW50aW5nRWRpdCcsCiAgICAnRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50VGltZUFjY291bnRpbmdPdmVydmlldycsCiAgICAnRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50VGltZUFjY291bnRpbmdTZXR0aW5nJywKICAgICdGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZycsCiAgICAnRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50VGltZUFjY291bnRpbmdWaWV3JywKICAgICdGcm9udGVuZDo6TmF2aWdhdGlvbiMjI0FnZW50VGltZUFjY291bnRpbmdFZGl0IyMjMDAyLVRpbWVBY2NvdW50aW5nJywKICAgICdGcm9udGVuZDo6TmF2aWdhdGlvbiMjI0FnZW50VGltZUFjY291bnRpbmdPdmVydmlldyMjIzAwMi1UaW1lQWNjb3VudGluZycsCiAgICAnRnJvbnRlbmQ6Ok5hdmlnYXRpb24jIyNBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZyMjIzAwMi1UaW1lQWNjb3VudGluZycsCiAgICAnRnJvbnRlbmQ6Ok5hdmlnYXRpb24jIyNBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nIyMjMDAyLVRpbWVBY2NvdW50aW5nJywKKTsKCmZvciBteSAkU2V0dGluZ05hbWUgKEBTZXR0aW5ncykgewogICAgbXkgJEV4Y2x1c2l2ZUxvY2tHVUlEID0gJFN5c0NvbmZpZ09iamVjdC0+U2V0dGluZ0xvY2soCiAgICAgICAgTmFtZSAgID0+ICRTZXR0aW5nTmFtZSwKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkRXhjbHVzaXZlTG9ja0dVSUQsCiAgICAgICAgIkxvY2tlZCAkU2V0dGluZ05hbWUiCiAgICApOwoKICAgIG15ICRTdWNjZXNzID0gJFN5c0NvbmZpZ09iamVjdC0+U2V0dGluZ1Jlc2V0KAogICAgICAgIE5hbWUgICAgICAgICAgICAgID0+ICRTZXR0aW5nTmFtZSwKICAgICAgICBFeGNsdXNpdmVMb2NrR1VJRCA9PiAkRXhjbHVzaXZlTG9ja0dVSUQsCiAgICAgICAgVXNlcklEICAgICAgICAgICAgPT4gMSwKICAgICk7CiAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAkU3VjY2VzcywKICAgICAgICAiUmVzZXQgJFNldHRpbmdOYW1lIgogICAgKTsKfQoKbXkgJFN1Y2Nlc3MgPSAkU3lzQ29uZmlnT2JqZWN0LT5Db25maWd1cmF0aW9uRGVwbG95KAogICAgQ29tbWVudHMgICAgICA9PiAnVXBncmFkZUxvd2VyVGhhbjUwOTIudCcsCiAgICBVc2VySUQgICAgICAgID0+IDEsCiAgICBGb3JjZSAgICAgICAgID0+IDEsCiAgICBEaXJ0eVNldHRpbmdzID0+IFxAU2V0dGluZ3MsCik7CiRTZWxmLT5UcnVlKAogICAgJFN1Y2Nlc3MsCiAgICAnUmVzdG9yZWQgZGVmYXVsdCBjb25maWd1cmF0aW9uJwopOwoKMTsK
CiMgLS0KIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAyMCBPVFJTIEFHLCBodHRwczovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KIyAtLQoKIyMgbm8gY3JpdGljIChNb2R1bGVzOjpSZXF1aXJlRXhwbGljaXRQYWNrYWdlKQp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgojIGRlY2xhcmUgZXh0ZXJuYWxseSBkZWZpbmVkIHZhcmlhYmxlcyB0byBhdm9pZCBlcnJvcnMgdW5kZXIgJ3VzZSBzdHJpY3QnCnVzZSB2YXJzIHF3KCRTZWxmKTsKCiMgZ2V0IGhlbHBlciBvYmplY3QKJEtlcm5lbDo6T00tPk9iamVjdFBhcmFtQWRkKAogICAgJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyA9PiB7CiAgICAgICAgUmVzdG9yZURhdGFiYXNlID0+IDEsCiAgICB9LAopOwpteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCm15ICRVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgpOwoKbXkgJFVzZXJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwoKbXkgJFVzZXJJRCA9ICRVc2VyT2JqZWN0LT5Vc2VyTG9va3VwKAogICAgVXNlckxvZ2luID0+ICRVc2VyTG9naW4sCik7CgpteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCm15ICRTdWNjZXNzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NJbnNlcnQoCiAgICBVc2VySUQgPT4gJFVzZXJJRCwKICAgIFBlcmlvZCA9PiAxLAopOwokU2VsZi0+VHJ1ZSgKICAgICRTdWNjZXNzLAogICAgIlVzZXJTZXR0aW5nc0luc2VydCgpIGZvciB1c2VyICRVc2VySUQiLAopOwoKJFN1Y2Nlc3MgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc1VwZGF0ZSgKICAgIFVzZXJJRCAgICAgICAgPT4gJFVzZXJJRCwKICAgIERlc2NyaXB0aW9uICAgPT4gJ1NvbWUgVGV4dCcsCiAgICBDcmVhdGVQcm9qZWN0ID0+IDEgfHwgMCwKICAgIFNob3dPdmVydGltZSAgPT4gMSB8fCAwLAogICAgUGVyaW9kICAgICAgICA9PiB7CiAgICAgICAgMSA9PiB7CiAgICAgICAgICAgIERhdGVTdGFydCAgID0+ICcyMDE2LTAxLTAxJywKICAgICAgICAgICAgRGF0ZUVuZCAgICAgPT4gJzIwMTYtMTItMzEnLAogICAgICAgICAgICBXZWVrbHlIb3VycyA9PiAnMzgnLAogICAgICAgICAgICBMZWF2ZURheXMgICA9PiAnMjUnLAogICAgICAgICAgICBPdmVydGltZSAgICA9PiAnMzgnLAogICAgICAgICAgICBVc2VyU3RhdHVzICA9PiAxLAogICAgICAgIH0sCiAgICB9LAopOwokU2VsZi0+VHJ1ZSgKICAgICRTdWNjZXNzLAogICAgIlVzZXJTZXR0aW5nc1VwZGF0ZSgpIGZvciB1c2VyICRVc2VySUQiLAopOwoKIyBUaGlzIHVuaXQgdGVzdCBvbmx5IGNoZWNrIHRoYXQgdGhlIGZ1bmN0aW9uIHVzZXMgY29ycmVjdCBkYXRlIHZhbHVlcyBhbmQgaXQgZG9lcyBub3QgYnJlYWsKZm9yIG15ICRNb250aCAoIDEgLi4gMTIgKSB7CiAgICBteSAkTW9udGhTdWNjZXNzID0gMTsKICAgIGZvciBteSAkRGF5ICggMSAuLiAyOCApIHsKICAgICAgICAkU3VjY2VzcyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzSW5zZXJ0KAogICAgICAgICAgICBZZWFyICAgPT4gJzIwMTYnLAogICAgICAgICAgICBNb250aCAgPT4gJE1vbnRoLAogICAgICAgICAgICBEYXkgICAgPT4gJERheSwKICAgICAgICAgICAgU2ljayAgID0+IDEsCiAgICAgICAgICAgIFVzZXJJRCA9PiAkVXNlcklELAogICAgICAgICk7CiAgICAgICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CiAgICAgICAgICAgICRNb250aFN1Y2Nlc3MgPSAwOwogICAgICAgIH0KICAgIH0KICAgICRTZWxmLT5UcnVlKAogICAgICAgICRTdWNjZXNzLAogICAgICAgICJXb3JraW5nVW5pdHNJbnNlcnQoKSBpbiBtb250aCAkTW9udGggZm9yIHVzZXIgJFVzZXJJRCIsCiAgICApOwp9CgpteSBAVGVzdHMgPSAoCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICcyMDE2LUphbi0xJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBZZWFyICA9PiAyMDE2LAogICAgICAgICAgICBNb250aCA9PiAxLAogICAgICAgICAgICBEYXkgICA9PiAxLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnMjAxNi1GZWItMScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgWWVhciAgPT4gMjAxNiwKICAgICAgICAgICAgTW9udGggPT4gMiwKICAgICAgICAgICAgRGF5ICAgPT4gMSwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJzIwMTYtT2N0LTEnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIFllYXIgID0+IDIwMTYsCiAgICAgICAgICAgIE1vbnRoID0+IDEwLAogICAgICAgICAgICBEYXkgICA9PiAxLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnMjAxNi1EZWMtMTInLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIFllYXIgID0+IDIwMTYsCiAgICAgICAgICAgIE1vbnRoID0+IDEyLAogICAgICAgICAgICBEYXkgICA9PiAxMiwKICAgICAgICB9LAogICAgfSwKKTsKCmZvciBteSAkVGVzdCAoQFRlc3RzKSB7CgogICAgJEtlcm5lbDo6T00tPk9iamVjdHNEaXNjYXJkKAogICAgICAgIE9iamVjdHMgPT4gWyAnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJywgXSwKICAgICk7CgogICAgIyBSZWRlZmluZSBWYWNhdGlvbkNoZWNrIGluIG9yZGVyIHRvIGJyZWFrIG9uIGEgd3JvbmcgZGF0ZSAodGhpcyBzaG91bGQgbm90IGhhcHBlbikuCiAgICBubyB3YXJuaW5ncyBxdyggb25jZSByZWRlZmluZSApOyAgICAjIyBubyBjcml0aWMKICAgIGxvY2FsICpLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmc6OlZhY2F0aW9uQ2hlY2sgPSBzdWIgewogICAgICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgICAgICMgY2hlY2sgcmVxdWlyZWQgcGFyYW1zCiAgICAgICAgZm9yIChxdyhZZWFyIE1vbnRoIERheSkpIHsKICAgICAgICAgICAgaWYgKCAhJFBhcmFteyRffSApIHsKICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlZhY2F0aW9uQ2hlY2s6IE5lZWQgJF8hIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIG15ICREYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoCiAgICAgICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgICAgICBPYmplY3RQYXJhbXMgPT4gewogICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgVGltZVpvbmUgPT4gJFNlbGYtPntUaW1lWm9uZX0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBJZiBkYXRlIGlzIHdyb25nIERhdGVUaW1lT2JqZWN0IGlzIHVuZGVmaW5lZCBhbmQgaXQgc2hvdWxkIGJyZWFrIHVuaXQgdGVzdCBpZgogICAgICAgICMgICBJc1ZhY2F0aW9uRGF5KCkgaXMgY2FsbGVkLCB0aGlzIGhhcHBlbnMgYXQgY2VydGFpbiBwb2ludCBpbiBVc2VyUmVwb3J0aW5nKCkuCgogICAgICAgIHJldHVybiAkRGF0ZVRpbWVPYmplY3QtPklzVmFjYXRpb25EYXkoCiAgICAgICAgICAgIENhbGVuZGFyID0+ICRQYXJhbXtDYWxlbmRhcn0sCiAgICAgICAgKTsKICAgIH07CiAgICB1c2Ugd2FybmluZ3M7CgogICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgbXkgJURhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJSZXBvcnRpbmcoICV7ICRUZXN0LT57Q29uZmlnfSB9ICk7CgogICAgJFNlbGYtPklzTm90RGVlcGx5KAogICAgICAgIFwlRGF0YSwKICAgICAgICB7fSwKICAgICAgICAiJFRlc3QtPntOYW1lfSBVc2VyUmVwb3J0aW5nKCkgcmV0dXJuIHZhbHVlIGlzIG5vdCBlbXB0eSIKICAgICk7Cn0KMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCiMgZGVjbGFyZSBleHRlcm5hbGx5IGRlZmluZWQgdmFyaWFibGVzIHRvIGF2b2lkIGVycm9ycyB1bmRlciAndXNlIHN0cmljdCcKdXNlIHZhcnMgcXcoJFNlbGYpOwoKJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+U2V0KAogICAgS2V5ICAgPT4gJ1RpbWVWYWNhdGlvbkRheXM6OkNhbGVuZGFyMScsCiAgICBWYWx1ZSA9PiB7CiAgICAgICAgMSA9PiB7CiAgICAgICAgICAgIDEgPT4gJ05ldyBZZWFyXCdzIERheScKICAgICAgICB9LAogICAgICAgIDEyID0+IHsKICAgICAgICAgICAgMTIgPT4gJ0Jlc3QgZGF5IGluIHdvcmxkJywKICAgICAgICAgICAgMjQgPT4gJ0NocmlzdG1hcyBFdmUnLAogICAgICAgICAgICAyNSA9PiAnRmlyc3QgQ2hyaXN0bWFzIERheScsCiAgICAgICAgICAgIDI2ID0+ICdTZWNvbmQgQ2hyaXN0bWFzIERheScsCiAgICAgICAgICAgIDMxID0+ICdOZXcgWWVhclwncyBFdmUnCiAgICAgICAgfSwKICAgICAgICA1ID0+IHsKICAgICAgICAgICAgMSA9PiAnSW50ZXJuYXRpb25hbCBXb3JrZXJzXCcgRGF5JwogICAgICAgIH0sCiAgICB9LAopOwoKbXkgQFRlc3RzID0gKAogICAgewogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ05vIFBhcmFtcycsCiAgICAgICAgQ29uZmlnICAgICAgICA9PiB7fSwKICAgICAgICBFeHBlY3RlZFZhbHVlID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnTm8gWWVhcicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgTW9udGggICAgPT4gMSwKICAgICAgICAgICAgRGF5ICAgICAgPT4gMSwKICAgICAgICAgICAgQ2FsZW5kYXIgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkVmFsdWUgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdObyBNb250aCcsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgWWVhciAgICAgPT4gMjAxNywKICAgICAgICAgICAgRGF5ICAgICAgPT4gMSwKICAgICAgICAgICAgQ2FsZW5kYXIgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkVmFsdWUgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdObyBEYXknLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIFllYXIgICAgID0+IDIwMTcsCiAgICAgICAgICAgIE1vbnRoICAgID0+IDEsCiAgICAgICAgICAgIENhbGVuZGFyID0+IDEsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFZhbHVlID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnV3JvbmcgRGF0ZScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgWWVhciAgICAgPT4gMjAxNywKICAgICAgICAgICAgTW9udGggICAgPT4gMiwKICAgICAgICAgICAgRGF5ICAgICAgPT4gMjksCiAgICAgICAgICAgIENhbGVuZGFyID0+IDEsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFZhbHVlID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnTm8gVmFjYXRpb24gRGF5JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBZZWFyICAgICA9PiAyMDE3LAogICAgICAgICAgICBNb250aCAgICA9PiAyLAogICAgICAgICAgICBEYXkgICAgICA9PiAxNSwKICAgICAgICAgICAgQ2FsZW5kYXIgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkVmFsdWUgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdWYWNhdGlvbiBEYXkgTnVtZXJpYyBNb250aCcsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgWWVhciAgICAgPT4gMjAxNywKICAgICAgICAgICAgTW9udGggICAgPT4gMSwKICAgICAgICAgICAgRGF5ICAgICAgPT4gMSwKICAgICAgICAgICAgQ2FsZW5kYXIgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkVmFsdWUgPT4gIk5ldyBZZWFyJ3MgRGF5IiwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdWYWNhdGlvbiBEYXkgU3RyaW5nIE1vbnRoJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBZZWFyICAgICA9PiAyMDE3LAogICAgICAgICAgICBNb250aCAgICA9PiAnMDEnLAogICAgICAgICAgICBEYXkgICAgICA9PiAxLAogICAgICAgICAgICBDYWxlbmRhciA9PiAxLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRWYWx1ZSA9PiAiTmV3IFllYXIncyBEYXkiLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ1ZhY2F0aW9uIERheSBDdXN0b20nLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIFllYXIgICAgID0+IDIwMTcsCiAgICAgICAgICAgIE1vbnRoICAgID0+IDEyLAogICAgICAgICAgICBEYXkgICAgICA9PiAxMiwKICAgICAgICAgICAgQ2FsZW5kYXIgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkVmFsdWUgPT4gIkJlc3QgZGF5IGluIHdvcmxkIiwKICAgIH0KKTsKCm15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKZm9yIG15ICRUZXN0IChAVGVzdHMpIHsKCiAgICBteSAkUmVzdWx0ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5WYWNhdGlvbkNoZWNrKCAleyAkVGVzdC0+e0NvbmZpZ30gfSApOwoKICAgICRTZWxmLT5JcygKICAgICAgICAkUmVzdWx0IC8vIDAsCiAgICAgICAgJFRlc3QtPntFeHBlY3RlZFZhbHVlfSwKICAgICAgICAiJFRlc3QtPntOYW1lfSBWYWNhdGlvbkNoZWNrKCkiLAogICAgKTsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCiMgZGVjbGFyZSBleHRlcm5hbGx5IGRlZmluZWQgdmFyaWFibGVzIHRvIGF2b2lkIGVycm9ycyB1bmRlciAndXNlIHN0cmljdCcKdXNlIHZhcnMgcXcoJFNlbGYpOwoKIyBnZXQgaGVscGVyIG9iamVjdAokS2VybmVsOjpPTS0+T2JqZWN0UGFyYW1BZGQoCiAgICAnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInID0+IHsKICAgICAgICBSZXN0b3JlRGF0YWJhc2UgPT4gMSwKICAgIH0sCik7Cm15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKIyBzZXQgZml4ZWQgdGltZQokSGVscGVyLT5GaXhlZFRpbWVTZXQoCiAgICAkS2VybmVsOjpPTS0+Q3JlYXRlKAogICAgICAgICdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnLAogICAgICAgIE9iamVjdFBhcmFtcyA9PiB7CiAgICAgICAgICAgIFN0cmluZyA9PiAnMjAxMS0wMS0zMSAyMzo1OTo1OScsCiAgICAgICAgfSwKICAgICktPlRvRXBvY2goKSwKKTsKCm15ICRSYW5kb21OdW1iZXIgPSBpbnQgc3Vic3RyICRIZWxwZXItPkdldFJhbmRvbU51bWJlcigpLCAtNSwgNTsKCiMgZGF0YSBmb3IgdGhlIG5ldyBhY3Rpb24gKHRhc2spCm15ICVOZXdBY3Rpb25EYXRhID0gKAogICAgQWN0aW9uICAgICAgID0+ICdUZXN0QWN0aW9uJyAuICRSYW5kb21OdW1iZXIsCiAgICBBY3Rpb25TdGF0dXMgPT4gMSwKKTsKCiMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgojIGNyZWF0ZSBhIG5ldyBhY3Rpb24gKHRhc2spCm15ICRJbnNlcnQgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzSW5zZXJ0KCVOZXdBY3Rpb25EYXRhKTsKCiMgdmVyaWZ5IHRoYXQgdGhlIGFjdGlvbiB3YXMgc3VjY2Vzc2Z1bGx5IGluc2VydGVkCiRTZWxmLT5UcnVlKAogICAgJEluc2VydCwKICAgICdJbnNlcnQgdGVzdCBhY3Rpb24gc2V0dGluZ3MgaW50byBkYXRhYmFzZScsCik7CgojIGdldCB0aGUgYWN0aW9uIGRhdGEgdGhhdCB3YXMgaW5zZXJ0ZWQgYWJvdmUKbXkgJUFjdGlvbkRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvbkdldCggQWN0aW9uID0+ICROZXdBY3Rpb25EYXRhe0FjdGlvbn0gKTsKCiMgdmVyaWZ5IHRoYXQgdGhlIGRhdGEgc2F2ZWQgaW4gdGhlIERCIGlzIHRoZSBzYW1lIHRoYXQgd2FzIGluc2VydGVkCiRTZWxmLT5JcygKICAgICRBY3Rpb25EYXRhe0FjdGlvblN0YXR1c30sCiAgICAkTmV3QWN0aW9uRGF0YXtBY3Rpb25TdGF0dXN9LAogICAgJ0NvbXBhcmUgYWN0aW9uIHN0YXR1cyBzYXZlZCBpbiBEQiB3aXRoIHRoZSBpbnNlcnRlZCBvbmUnLAopOwoKIyBtb2RpZnkgdGhlIGFjdGlvbiBuYW1lCm15ICRVcGRhdGUgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzVXBkYXRlKAogICAgQWN0aW9uSUQgICAgID0+ICRBY3Rpb25EYXRhe0lEfSwKICAgIEFjdGlvbiAgICAgICA9PiAkTmV3QWN0aW9uRGF0YXtBY3Rpb259IC4gJ21vZGlmaWVkJywKICAgIEFjdGlvblN0YXR1cyA9PiAxLAopOwoKIyB2ZXJpZnkgdGhhdCB0aGUgYWN0aW9uIHdhcyB1cGRhdGVkCiRTZWxmLT5UcnVlKAogICAgJFVwZGF0ZSwKICAgICdVcGRhdGUgdGVzdCBhY3Rpb24gc2V0dGluZ3MnLAopOwoKIyBnZXQgYWxsIGFjdGlvbnMgZGF0YQpteSAlQWxsQWN0aW9ucyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NHZXQoKTsKCiMgdmVyaWZ5IHRoZSBsYXN0IG1vZGlmaWNhdGlvbgokU2VsZi0+SXMoCiAgICAkQWxsQWN0aW9uc3sgJEFjdGlvbkRhdGF7SUR9IH17QWN0aW9ufSwKICAgICROZXdBY3Rpb25EYXRhe0FjdGlvbn0gLiAnbW9kaWZpZWQnLAogICAgJ0NvbXBhcmUgYWN0aW9uIG5hbWUgc2F2ZWQgaW4gREIgd2l0aCB0aGUgc3BlY2lmaWVkIGluIHRoZSB1cGRhdGUnLAopOwoKIyBkYXRhIGZvciB0aGUgbmV3IHByb2plY3QKbXkgJU5ld1Byb2plY3REYXRhID0gKAogICAgUHJvamVjdCAgICAgICAgICAgID0+ICdUZXN0UHJvamVjdCcgLiAkUmFuZG9tTnVtYmVyLAogICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICdUZXN0JywKICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAxLAopOwoKIyBjcmVhdGUgYSBuZXcgcHJvamVjdApteSAkUHJvamVjdElEID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NJbnNlcnQoJU5ld1Byb2plY3REYXRhKTsKCiMgdmVyaWZ5IHRoYXQgdGhlIGFjdGlvbiB3YXMgc3VjY2Vzc2Z1bGx5IGluc2VydGVkCiRTZWxmLT5UcnVlKAogICAgJFByb2plY3RJRCwKICAgICdJbnNlcnQgdGVzdCBwcm9qZWN0IHNldHRpbmdzIGludG8gZGF0YWJhc2UnLAopOwoKIyBnZXQgdGhlIGFjdGlvbiBkYXRhIHRoYXQgd2FzIGluc2VydGVkIGFib3ZlCm15ICVQcm9qZWN0RGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdEdldCggSUQgPT4gJFByb2plY3RJRCApOwoKIyB2ZXJpZnkgdGhhdCB0aGUgZGF0YSBzYXZlZCBpbiB0aGUgREIgaXMgdGhlIHNhbWUgdGhhdCB3YXMgaW5zZXJ0ZWQKJFNlbGYtPklzKAogICAgJFByb2plY3REYXRhe1Byb2plY3R9LAogICAgJE5ld1Byb2plY3REYXRhe1Byb2plY3R9LAogICAgJ0NvbXBhcmUgcHJvamVjdCBuYW1lIHNhdmVkIGluIERCIHdpdGggdGhlIGluc2VydGVkIG9uZScsCik7CiRTZWxmLT5JcygKICAgICRQcm9qZWN0RGF0YXtQcm9qZWN0RGVzY3JpcHRpb259LAogICAgJE5ld1Byb2plY3REYXRhe1Byb2plY3REZXNjcmlwdGlvbn0sCiAgICAnQ29tcGFyZSBwcm9qZWN0IGRlc2NyaXB0aW9uIHNhdmVkIGluIERCIHdpdGggdGhlIGluc2VydGVkIG9uZScsCik7CiRTZWxmLT5JcygKICAgICRQcm9qZWN0RGF0YXtQcm9qZWN0U3RhdHVzfSwKICAgICROZXdQcm9qZWN0RGF0YXtQcm9qZWN0U3RhdHVzfSwKICAgICdDb21wYXJlIHByb2plY3Qgc3RhdHVzIHNhdmVkIGluIERCIHdpdGggdGhlIGluc2VydGVkIG9uZScsCik7CgojIG1vZGlmeSB0aGUgcHJvamVjdCBuYW1lCiRVcGRhdGUgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc1VwZGF0ZSgKICAgIElEICAgICAgICAgICAgICAgICA9PiAkUHJvamVjdElELAogICAgUHJvamVjdCAgICAgICAgICAgID0+ICROZXdQcm9qZWN0RGF0YXtQcm9qZWN0fSAuICdtb2RpZmllZCcsCiAgICBQcm9qZWN0RGVzY3JpcHRpb24gPT4gJ1Rlc3QnLAogICAgUHJvamVjdFN0YXR1cyAgICAgID0+IDEsCik7CgojIHZlcmlmeSB0aGF0IHRoZSBhY3Rpb24gd2FzIHVwZGF0ZWQKJFNlbGYtPlRydWUoCiAgICAkVXBkYXRlLAogICAgJ1VwZGF0ZSB0ZXN0IHByb2plY3Qgc2V0dGluZ3MnLAopOwoKIyBnZXQgYWxsIHByb2plY3RzIGRhdGEKbXkgJUFsbFByb2plY3RzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NHZXQoIFN0YXR1cyA9PiAndmFsaWQnICk7CgojIHZlcmlmeSB0aGUgbGFzdCBtb2RpZmljYXRpb24KJFNlbGYtPklzKAogICAgJEFsbFByb2plY3Rze1Byb2plY3R9eyRQcm9qZWN0SUR9LAogICAgJE5ld1Byb2plY3REYXRhe1Byb2plY3R9IC4gJ21vZGlmaWVkJywKICAgICdDb21wYXJlIHByb2plY3QgbmFtZSBzYXZlZCBpbiBEQiB3aXRoIHRoZSBzcGVjaWZpZWQgaW4gdGhlIHVwZGF0ZScsCik7CgojIGNyZWF0ZSBuZXcgdXNlcgpteSAkVXNlckxvZ2luID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKS0+VGVzdFVzZXJDcmVhdGUoKTsKbXkgJFVzZXJJRCAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPlVzZXJMb29rdXAoCiAgICBVc2VyTG9naW4gPT4gJFVzZXJMb2dpbiwKKTsKCiMgb2J0YWluIHRoZSBsYXN0IHJlZ2lzdGVyZWQgcGVyaW9kIG9mIHRoZSB0ZXN0IHVzZXIKbXkgJExhc3RQZXJpb2ROdW1iZXIgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJMYXN0UGVyaW9kTnVtYmVyR2V0KCBVc2VySUQgPT4gJFVzZXJJRCApICsgMTsKCiMgY3JlYXRlIHJlZ2lzdHJ5IGZvciB0aGUgbmV3IHVzZXIgaW4gVEEKJEluc2VydCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzSW5zZXJ0KAogICAgVXNlcklEID0+ICRVc2VySUQsCiAgICBQZXJpb2QgPT4gJExhc3RQZXJpb2ROdW1iZXIsCik7CgojIHZlcmlmeSB0aGF0IHRoZSB1c2VyIHdhcyBzdWNjZXNzZnVsbHkgaW5zZXJ0ZWQKJFNlbGYtPlRydWUoCiAgICAkSW5zZXJ0LAogICAgJ0luc2VydCB0ZXN0IHVzZXIgc2V0dGluZ3MgaW50byBkYXRhYmFzZScsCik7CgojIGluc2VydCBhbm90aGVyIHBlcmlvZCBlbnRyeSBmb3IgdGhlIHNhbWUgdXNlcgokSW5zZXJ0ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NJbnNlcnQoCiAgICBVc2VySUQgPT4gJFVzZXJJRCwKICAgIFBlcmlvZCA9PiAkTGFzdFBlcmlvZE51bWJlciArIDEsCik7CgojIHZlcmlmeSB0aGF0IHRoZSB1c2VyIHdhcyBzdWNjZXNzZnVsbHkgaW5zZXJ0ZWQKJFNlbGYtPlRydWUoCiAgICAkSW5zZXJ0LAogICAgJ0luc2VydCB0aW1lIHBlcmlvZCBmb3IgdGVzdCB1c2VyIHNldHRpbmdzIGludG8gZGF0YWJhc2UnLAopOwoKJFJhbmRvbU51bWJlciA9IGludCBzdWJzdHIgJEhlbHBlci0+R2V0UmFuZG9tTnVtYmVyKCksIC0zLCAzOwoKIyB1cGRhdGUgdXNlciBkYXRhCm15ICVVc2VyU2V0dGluZ3NVcGRhdGVEYXRhID0gKAogICAgVXNlcklEICAgICAgICA9PiAkVXNlcklELAogICAgRGVzY3JpcHRpb24gICA9PiAnVGVzdCB1c2VyJyAuICRSYW5kb21OdW1iZXIsCiAgICBDcmVhdGVQcm9qZWN0ID0+IDEsCiAgICBTaG93T3ZlcnRpbWUgID0+IDEsCiAgICBBbGxvd1NraXAgICAgID0+IDEsCiAgICBQZXJpb2QgICAgICAgID0+IHsKICAgICAgICAxID0+IHsKICAgICAgICAgICAgRGF0ZVN0YXJ0ICAgPT4gJzIwMTEtMDEtMDEnLAogICAgICAgICAgICBEYXRlRW5kICAgICA9PiAnMjAxMS0wMS0zMScsCiAgICAgICAgICAgIFdlZWtseUhvdXJzID0+ICRSYW5kb21OdW1iZXIsCiAgICAgICAgICAgIExlYXZlRGF5cyAgID0+ICcxMCcsCiAgICAgICAgICAgIE92ZXJ0aW1lICAgID0+ICcyMCcsCiAgICAgICAgICAgIFVzZXJTdGF0dXMgID0+IDEsCiAgICAgICAgfSwKICAgICAgICAyID0+IHsKICAgICAgICAgICAgRGF0ZVN0YXJ0ICAgPT4gJzIwMTEtMDItMDEnLAogICAgICAgICAgICBEYXRlRW5kICAgICA9PiAnMjAxMS0xMi0zMScsCiAgICAgICAgICAgIFdlZWtseUhvdXJzID0+ICRSYW5kb21OdW1iZXIgKyAxMCwKICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gJzUnLAogICAgICAgICAgICBPdmVydGltZSAgICA9PiAnMTAnLAogICAgICAgICAgICBVc2VyU3RhdHVzICA9PiAxLAogICAgICAgIH0sCiAgICB9LAopOwokVXBkYXRlID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NVcGRhdGUoJVVzZXJTZXR0aW5nc1VwZGF0ZURhdGEpOwoKIyB2ZXJpZnkgdGhhdCB0aGUgYWN0aW9uIHdhcyB1cGRhdGVkCiRTZWxmLT5UcnVlKAogICAgJFVwZGF0ZSwKICAgICdVcGRhdGUgdGVzdCB1c2VyIHNldHRpbmdzJywKKTsKCiMgZ2V0IHVzZXIgc2V0dGluZ3MKbXkgJVNpbmdsZVVzZXJEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5TaW5nbGVVc2VyU2V0dGluZ3NHZXQoIFVzZXJJRCA9PiAkVXNlcklEICk7CgojIHZlcmlmeSB0aGUgbGFzdCBtb2RpZmljYXRpb24KJFNlbGYtPklzKAogICAgaW50ICRTaW5nbGVVc2VyRGF0YXsxfXtXZWVrbHlIb3Vyc30sCiAgICAkUmFuZG9tTnVtYmVyLAogICAgJ0NvbXBhcmUgd2Vla2x5IGhvdXJzIGZvciBwZXJpb2QgMSBzYXZlZCBpbiBEQiB3aXRoIHRoZSBzcGVjaWZpZWQgaW4gdGhlIHVwZGF0ZScsCik7CgokU2VsZi0+SXMoCiAgICBpbnQgJFNpbmdsZVVzZXJEYXRhezJ9e1dlZWtseUhvdXJzfSwKICAgICRSYW5kb21OdW1iZXIgKyAxMCwKICAgICdDb21wYXJlIHdlZWtseSBob3VycyBmb3IgcGVyaW9kIDIgc2F2ZWQgaW4gREIgd2l0aCB0aGUgc3BlY2lmaWVkIGluIHRoZSB1cGRhdGUnLAopOwoKIyBnZXQgdXNlciBkYXRhCiVTaW5nbGVVc2VyRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckdldCggVXNlcklEID0+ICRVc2VySUQgKTsKCiMgY29tcGFyZSBkYXRhIHNhdmVkIG9uIHRoZSBEQiB3aXRoIHRoZSBpbnNlcnRlZCBvbmUKJFNlbGYtPklzKAogICAgJFNpbmdsZVVzZXJEYXRhe0Rlc2NyaXB0aW9ufSwKICAgICdUZXN0IHVzZXInIC4gJFJhbmRvbU51bWJlciwKICAgICdDb21wYXJlIGRlc2NyaXB0aW9uIHNhdmVkIG9uIHRoZSBEQiB3aXRoIHRoZSBzcGVjaWZpZWQgaW4gdGhlIGluc2VydGlvbicsCik7CgojIGdldCBhbGwgdXNlcnMgZGF0YQpteSAlQWxsVXNlcnNEYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyTGlzdCgpOwoKIyB2ZXJpZnkgdGhhdCB0aGUgdGVzdCB1c2VyIGlzIGluIHRoZSBsaXN0CiRTZWxmLT5UcnVlKAogICAgJEFsbFVzZXJzRGF0YXskVXNlcklEfXtEZXNjcmlwdGlvbn0sCiAgICAnVmVyaWZ5IHRoZSBleGlzdGVuY2Ugb2YgdGhlIHRlc3QgdXNlciBpbiB0aGUgbGlzdCcKKTsKCiMgZ2V0IGFsbCBwZXJpb2RzIG9mIGRhdGEgb2YgYWxsIHVzZXJzCm15ICVBbGxVc2Vyc1BlcmlvZERhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0dldCgpOwoKIyB2ZXJpZnkgdGhlIHBlcmlvZCBkYXRhIG9mIHRoZSB0ZXN0IHVzZXIKbXkgJENvcnJlY3RVc2VyRGF0YSA9CiAgICAoCiAgICAkQWxsVXNlcnNQZXJpb2REYXRheyRVc2VySUR9ezF9e1dlZWtseUhvdXJzfSA9PSAkUmFuZG9tTnVtYmVyCiAgICAgICAgJiYgJEFsbFVzZXJzUGVyaW9kRGF0YXskVXNlcklEfXsxfXtMZWF2ZURheXN9ID09IDEwCiAgICAgICAgJiYgJEFsbFVzZXJzUGVyaW9kRGF0YXskVXNlcklEfXsxfXtPdmVydGltZX0gPT0gMjAKICAgICAgICAmJiAkQWxsVXNlcnNQZXJpb2REYXRheyRVc2VySUR9ezF9e1VzZXJTdGF0dXN9CiAgICAgICAgJiYgJEFsbFVzZXJzUGVyaW9kRGF0YXskVXNlcklEfXsyfXtXZWVrbHlIb3Vyc30gPT0gJFJhbmRvbU51bWJlciArIDEwCiAgICAgICAgJiYgJEFsbFVzZXJzUGVyaW9kRGF0YXskVXNlcklEfXsyfXtMZWF2ZURheXN9ID09IDUKICAgICAgICAmJiAkQWxsVXNlcnNQZXJpb2REYXRheyRVc2VySUR9ezJ9e092ZXJ0aW1lfSA9PSAxMAogICAgICAgICYmICRBbGxVc2Vyc1BlcmlvZERhdGF7JFVzZXJJRH17Mn17VXNlclN0YXR1c30KICAgICkgPyAxIDogMDsKCiRTZWxmLT5UcnVlKAogICAgJENvcnJlY3RVc2VyRGF0YSwKICAgICdWZXJpZnkgdGhlIHBlcmlvZCBkYXRhIG9mIHRoZSB0ZXN0IHVzZXIgaW4gdGhlIGxpc3QnCik7CgojIGdldCBjdXJyZW50IHBlcmlvZCBvZiB1c2VyCm15ICVVc2VyQ3VycmVudFBlcmlvZCA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlckN1cnJlbnRQZXJpb2RHZXQoCiAgICBZZWFyICA9PiAnMjAxMScsCiAgICBNb250aCA9PiAnMDEnLAogICAgRGF5ICAgPT4gJzE1JywKKTsKCiMgY2hlY2sgdGhlIHBlcmlvZAokU2VsZi0+SXMoCiAgICAkVXNlckN1cnJlbnRQZXJpb2R7JFVzZXJJRH0tPntQZXJpb2R9LAogICAgMSwKICAgICdWZXJpZnkgY3VycmVudCBwZXJpb2QnLAopOwoKJFNlbGYtPklzKAogICAgJFVzZXJDdXJyZW50UGVyaW9keyRVc2VySUR9LT57RGF0ZVN0YXJ0fSwKICAgICcyMDExLTAxLTAxJywKICAgICdWZXJpZnkgc3RhcnQgZGF0ZSBvZiBjdXJyZW50IHBlcmlvZCcsCik7CgokU2VsZi0+SXMoCiAgICAkVXNlckN1cnJlbnRQZXJpb2R7JFVzZXJJRH0tPntEYXRlRW5kfSwKICAgICcyMDExLTAxLTMxJywKICAgICdWZXJpZnkgZW5kIGRhdGUgb2YgY3VycmVudCBwZXJpb2QnLAopOwoKIyBDaGVjayBmb3IgY29tcGxldGVuZXNzIC0gc2hvdWxkIGJlIG9rIGFzIHVzZXIgaXMgbm90IHJlcXVpcmVkIHRvIGxvZyB0aW1lcy4KbXkgJVdvcmtpbmdVbml0c0NoZWNrQWxsb3dTa2lwID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNDb21wbGV0bmVzc0NoZWNrKAogICAgVXNlcklEID0+ICRVc2VySUQsCik7CiRTZWxmLT5GYWxzZSgKICAgICRXb3JraW5nVW5pdHNDaGVja0FsbG93U2tpcHtFbmZvcmNlSW5zZXJ0fSwKICAgICdWZXJpZnkgdXNlciBwZXJtaXNzaW9uIHRvIHNraXAgbG9nZ2luZyBlbmFibGVkJywKKTsKCiMgVXBkYXRlICdBbGxvd1NraXAnIGZsYWcuCiRVcGRhdGUgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc1VwZGF0ZSgKICAgICVVc2VyU2V0dGluZ3NVcGRhdGVEYXRhLAogICAgQWxsb3dTa2lwID0+IDAsCik7CgojIHZlcmlmeSB0aGF0IHRoZSBhY3Rpb24gd2FzIHVwZGF0ZWQKJFNlbGYtPlRydWUoCiAgICAkVXBkYXRlLAogICAgJ1VwZGF0ZSB0ZXN0IHVzZXIgc2V0dGluZ3MnLAopOwoKIyBDaGVjayBmb3IgY29tcGxldGVuZXNzIC0gc2hvdWxkIHJldHVybiBhIHJlc3VsdCBhcyB1c2VyIGlzIG5vdyByZXF1aXJlZCB0byBsb2cgdGltZXMuCm15ICVXb3JraW5nVW5pdHNDaGVja05vQWxsb3dTa2lwID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNDb21wbGV0bmVzc0NoZWNrKAogICAgVXNlcklEID0+ICRVc2VySUQsCik7CiRTZWxmLT5UcnVlKAogICAgJFdvcmtpbmdVbml0c0NoZWNrTm9BbGxvd1NraXB7RW5mb3JjZUluc2VydH0sCiAgICAnVmVyaWZ5IHVzZXIgcGVybWlzc2lvbiB0byBza2lwIGxvZ2dpbmcgZGlzYWJsZWQnLAopOwoKIyBoYXNoIHdpdGggdGhlIHdvcmtpbmcgdW5pdHMgZm9yIEphbi4gMTR0aCwgMjAxMQpteSAlV29ya2luZ1VuaXRzID0gKAogICAgWWVhciAgICAgICAgID0+ICcyMDExJywKICAgIE1vbnRoICAgICAgICA9PiAnMDEnLAogICAgRGF5ICAgICAgICAgID0+ICcxNCcsCiAgICBMZWF2ZURheSAgICAgPT4gMCwKICAgIFNpY2sgICAgICAgICA9PiAwLAogICAgT3ZlcnRpbWUgICAgID0+IDAsCiAgICBXb3JraW5nVW5pdHMgPT4gWwogICAgICAgIHsKICAgICAgICAgICAgUHJvamVjdElEID0+ICRQcm9qZWN0SUQsCiAgICAgICAgICAgIEFjdGlvbklEICA9PiAkQWN0aW9uRGF0YXtJRH0sCiAgICAgICAgICAgIFJlbWFyayAgICA9PiAnTXkgY29tbWVudCcsCiAgICAgICAgICAgIFN0YXJ0VGltZSA9PiAnNzowMCcsCiAgICAgICAgICAgIEVuZFRpbWUgICA9PiAnMTA6MDAnLAogICAgICAgICAgICBQZXJpb2QgICAgPT4gMy4wLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBQcm9qZWN0SUQgPT4gJFByb2plY3RJRCwKICAgICAgICAgICAgQWN0aW9uSUQgID0+ICRBY3Rpb25EYXRhe0lEfSwKICAgICAgICAgICAgUmVtYXJrICAgID0+ICdNeSBjb21tZW50JywKICAgICAgICAgICAgU3RhcnRUaW1lID0+ICcxMzowMCcsCiAgICAgICAgICAgIEVuZFRpbWUgICA9PiAnMTU6MDAnLAogICAgICAgICAgICBQZXJpb2QgICAgPT4gMi4wLAogICAgICAgIH0sCiAgICBdLAogICAgVXNlcklEID0+ICRVc2VySUQsCik7CgojIGluc2VydCB3b3JraW5nIHVuaXRzIGluIHRoZSBEQgokSW5zZXJ0ID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNJbnNlcnQoJVdvcmtpbmdVbml0cyk7CgojIHZlcmlmeSB0aGF0IHRoZSB3b3JraW5nIHVuaXRzIHdlcmUgc3VjY2Vzc2Z1bGx5IGluc2VydGVkCiRTZWxmLT5UcnVlKAogICAgJEluc2VydCwKICAgICdJbnNlcnQgd29ya2luZyB1bml0cyBmb3IgdGVzdCB1c2VyIGludG8gZGF0YWJhc2UnLAopOwoKIyBnZXQgYWxsIGRheXMgd2l0aG91dCB3b3JraW5nIHVuaXRzIGVudHJ5Cm15ICVXb3JraW5nVW5pdHNDaGVjayA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzQ29tcGxldG5lc3NDaGVjaygKICAgIFVzZXJJRCA9PiAkVXNlcklELAopOwoKIyB2ZXJpZnkgdGhhdCBKYW4gMTR0aCwgMjAxMSBpcyBub3QgaW4gdGhlIGxpc3Qgb2YgZGF5cyB3aXRob3V0IGVudHJ5CiRTZWxmLT5GYWxzZSgKICAgIGRlZmluZWQgJFdvcmtpbmdVbml0c0NoZWNreydJbmNvbXBsZXRlJ317JzIwMTEnfXsnMDEnfXsnMTQnfSwKICAgICdWZXJpZnkgY29tcGxldGlvbiBvZiB3b3JraW5nIHVuaXRzJwopOwoKIyBnZXQgd29ya2luZyB1bml0cyBvZiBhbGwgdXNlcnMKbXkgJURhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJSZXBvcnRpbmcoCiAgICBZZWFyICA9PiAnMjAxMScsCiAgICBNb250aCA9PiAnMDEnLAogICAgRGF5ICAgPT4gJzE1JywKKTsKCiMgdmVyaWZ5IHRoZSBjb3JyZWN0bmVzcyBvZiB0aGUgd29ya2luZyB1bml0cyBmb3IgdGhlIHRlc3QgdXNlcgokU2VsZi0+SXMoCiAgICAkRGF0YXskVXNlcklEfXtXb3JraW5nSG91cnNUb3RhbH0sCiAgICA1LAogICAgJ1ZlcmlmeSBudW1iZXIgb2Ygd29ya2luZyBob3VycyBvZiB0aGUgdGVzdCB1c2VyJywKKTsKCiMgZ2V0IHByb2plY3RzIGluIHdoaWNoIHRoZSB0ZXN0IHVzZXIgaGFzIHdvcmtlZCBvbgpteSBATGFzdFByb2plY3RzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5MYXN0UHJvamVjdHNPZlVzZXIoCiAgICBVc2VySUQgPT4gJFVzZXJJRCwKKTsKCm15ICRUZXN0UHJvamVjdEV4aXN0ZW5jZTsKCklEOgpmb3IgbXkgJElEIChATGFzdFByb2plY3RzKSB7CiAgICBuZXh0IElEIGlmICRJRCAhPSAkUHJvamVjdElEOwogICAgJFRlc3RQcm9qZWN0RXhpc3RlbmNlID0gMTsKfQoKIyB2ZXJpZnkgdGhhdCBleGlzdGVuY2Ugb2YgdGhlIHRlc3QgcHJvamVjdCBpbnRvIHRoZSB1c2VyJ3MgbGlzdAokU2VsZi0+VHJ1ZSgKICAgICRUZXN0UHJvamVjdEV4aXN0ZW5jZSwKICAgICdWZXJpZnkgdGhhdCBleGlzdGVuY2Ugb2YgdGhlIHRlc3QgcHJvamVjdCBpbnRvIHRoZSB1c2VyXCdzIGxpc3QnLAopOwoKIyBnZXQgcHJvamVjdCAtIGFjdGlvbiB3b3JraW5nIGhvdXJzCm15ICVQcm9qZWN0QWN0aW9uV29ya2luZ0hvdXJzID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0QWN0aW9uUmVwb3J0aW5nKAogICAgWWVhciAgID0+IDIwMTEsCiAgICBNb250aCAgPT4gMSwKICAgIFVzZXJJRCA9PiAkVXNlcklELAopOwoKIyB2ZXJpZnkgdG90YWwgcmVwb3J0ZWQgaG91cnMgZm9yIHRoZSB0ZXN0IGFjdGlvbiAodGFzaykgYW5kIHRlc3QgcHJvamVjdAokU2VsZi0+SXMoCiAgICAkUHJvamVjdEFjdGlvbldvcmtpbmdIb3Vyc3skUHJvamVjdElEfXtBY3Rpb25zfXsgJEFjdGlvbkRhdGF7SUR9IH17VG90YWx9LAogICAgJzUnLAogICAgJ1ZlcmlmeSB0b3RhbCByZXBvcnRlZCBob3VycyBmb3IgdGhlIHRlc3QgYWN0aW9uICh0YXNrKSBhbmQgdGVzdCBwcm9qZWN0JywKKTsKCiMgZ2V0IHByb2plY3Qgd29ya2luZyB1bml0cwpteSBAUHJvamVjdEhpc3RvcnlBcnJheSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdEhpc3RvcnkoIFByb2plY3RJRCA9PiAkUHJvamVjdElEICk7CgpteSAkVG90YWxIb3VyczsKCiMgZ2V0IHN1bSBvZiBhbGwgd29ya2luZyB1bml0IGZvciB0aGUgdGVzdCBwcm9qZWN0CmZvciBteSAkUHJvamVjdCAoQFByb2plY3RIaXN0b3J5QXJyYXkpIHsKICAgICRUb3RhbEhvdXJzICs9ICRQcm9qZWN0LT57UGVyaW9kfTsKfQoKbXkgJFRlc3RQcm9qZWN0VG90YWxIb3VycyA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFRvdGFsSG91cnMoCiAgICBQcm9qZWN0SUQgPT4gJFByb2plY3RJRCwKKTsKCiMgdmVyaWZ5IHRvdGFsIHdvcmtpbmcgdW5pdHMgZm9yIHRoZSB0ZXN0IHByb2plY3QKJFNlbGYtPklzKAogICAgaW50ICRUb3RhbEhvdXJzLAogICAgaW50ICRUZXN0UHJvamVjdFRvdGFsSG91cnMsCiAgICAnVmVyaWZ5IHRvdGFsIGhvdXJzIG9mIHRlc3QgcHJvamVjdCcsCik7CgojIGRlbGV0ZSB3b3JraW5nIHVuaXRzIGZvciBKYW4uIDE1dGgsIDIwMTEKbXkgJERlbGV0ZSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzRGVsZXRlKAogICAgWWVhciAgID0+ICcyMDExJywKICAgIE1vbnRoICA9PiAnMScsCiAgICBEYXkgICAgPT4gJzE1JywKICAgIFVzZXJJRCA9PiAkVXNlcklELAopOwoKIyB2ZXJpZnkgdGhhdCB0aGUgd29ya2luZyB1bml0cyB3ZXJlIHN1Y2Nlc3NmdWxseSBkZWxldGVkCiRTZWxmLT5UcnVlKAogICAgJERlbGV0ZSwKICAgICdEZWxldGUgd29ya2luZyB1bml0cyBmb3IgdGVzdCcsCik7CgojIGdldCB3b3JraW5nIHVuaXRzIGZvciBKYW4uIDE1dGgsIDIwMTEKbXkgJVdvcmtpbmdVbml0c0RhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0dldCgKICAgIFllYXIgICA9PiAnMjAxMScsCiAgICBNb250aCAgPT4gJzEnLAogICAgRGF5ICAgID0+ICcxNScsCiAgICBVc2VySUQgPT4gJFVzZXJJRCwKKTsKCiMgdmVyaWZ5IG5vbmV4aXN0ZW5jZSBvZiB0aGUgZGVsZXRlZCB3b3JraW5nIHVuaXRzCiRTZWxmLT5JcygKICAgICRXb3JraW5nVW5pdHNEYXRhe1RvdGFsfSwKICAgICcwJywKICAgICdWZXJpZnkgbm9uZXhpc3RlbmNlIG9mIHRoZSBkZWxldGVkIHdvcmtpbmcgdW5pdHMnLAopOwoKIyBzZXQgdG8gaW52YWxpZCBhbGwgcmVnaXN0cmllcyB1c2VkIGZvciB0aGUgdGVzdHMKJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc1VwZGF0ZSgKICAgIEFjdGlvbklEICAgICA9PiAkQWN0aW9uRGF0YXtJRH0sCiAgICBBY3Rpb24gICAgICAgPT4gJE5ld0FjdGlvbkRhdGF7QWN0aW9ufSAuICdtb2RpZmllZCcsCiAgICBBY3Rpb25TdGF0dXMgPT4gMCwKKTsKCiRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzVXBkYXRlKAogICAgSUQgICAgICAgICAgICAgICAgID0+ICRQcm9qZWN0SUQsCiAgICBQcm9qZWN0ICAgICAgICAgICAgPT4gJE5ld1Byb2plY3REYXRhe1Byb2plY3R9IC4gJ21vZGlmaWVkJywKICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAnVGVzdCcsCiAgICBQcm9qZWN0U3RhdHVzICAgICAgPT4gMCwKKTsKCiRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzVXBkYXRlKAogICAgVXNlcklEICAgICAgICA9PiAkVXNlcklELAogICAgRGVzY3JpcHRpb24gICA9PiAnVGVzdCB1c2VyJywKICAgIENyZWF0ZVByb2plY3QgPT4gMCwKICAgIFNob3dPdmVydGltZSAgPT4gMCwKICAgIEFsbG93U2tpcCAgICAgPT4gMCwKICAgIFBlcmlvZCAgICAgICAgPT4gewogICAgICAgIDEgPT4gewogICAgICAgICAgICBEYXRlU3RhcnQgICA9PiAnMjAxMS0wMS0wMScsCiAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICcyMDExLTAxLTMxJywKICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gJzUwJywKICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gJzEwJywKICAgICAgICAgICAgT3ZlcnRpbWUgICAgPT4gJzIwJywKICAgICAgICAgICAgVXNlclN0YXR1cyAgPT4gMCwKICAgICAgICB9LAogICAgICAgIDIgPT4gewogICAgICAgICAgICBEYXRlU3RhcnQgICA9PiAnMjAxMS0wMi0wMScsCiAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICcyMDExLTAyLTI4JywKICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gJzMwJywKICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gJzUnLAogICAgICAgICAgICBPdmVydGltZSAgICA9PiAnMTAnLAogICAgICAgICAgICBVc2VyU3RhdHVzICA9PiAwLAogICAgICAgIH0sCiAgICB9LAopOwoKIyBjbGVhbnVwIGlzIGRvbmUgYnkgUmVzdG9yZURhdGFiYXNlLgoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7Cgp1c2UgdmFycyAocXcoJFNlbGYpKTsKCm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgIG15ICRIZWxwZXIgICAgICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CiAgICAgICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CgogICAgICAgICMgVXNlIGEgY2FsZW5kYXIgd2l0aCB0aGUgc2FtZSBidXNpbmVzcyBob3VycyBmb3IgZXZlcnkgZGF5IHNvIHRoYXQgdGhlIFVUIHJ1bnMgY29ycmVjdGx5CiAgICAgICAgIyBvbiBldmVyeSBkYXkgb2YgdGhlIHdlZWsgYW5kIG91dHNpZGUgdXN1YWwgYnVzaW5lc3MgaG91cnMuCiAgICAgICAgbXkgJVdlZWs7CiAgICAgICAgbXkgQERheXMgPSBxdyhTdW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQpOwogICAgICAgIGZvciBteSAkRGF5IChARGF5cykgewogICAgICAgICAgICAkV2Vla3skRGF5fSA9IFsgMCAuLiAyMyBdOwogICAgICAgIH0KICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnVGltZVdvcmtpbmdIb3VycycsCiAgICAgICAgICAgIFZhbHVlID0+IFwlV2VlaywKICAgICAgICApOwoKICAgICAgICAjIERpc2FibGUgZGVmYXVsdCBWYWNhdGlvbiBkYXlzLgogICAgICAgICRIZWxwZXItPkNvbmZpZ1NldHRpbmdDaGFuZ2UoCiAgICAgICAgICAgIEtleSAgID0+ICdUaW1lVmFjYXRpb25EYXlzJywKICAgICAgICAgICAgVmFsdWUgPT4ge30sCiAgICAgICAgKTsKCiAgICAgICAgIyBEaXNhYmxlIE1hc3NFbnRyeSBmZWF0dXJlcy4KICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICBLZXkgICA9PiAnVGltZUFjY291bnRpbmc6OkFsbG93TWFzc0VudHJ5Rm9yVXNlcicsCiAgICAgICAgICAgIFZhbHVlID0+IDAsCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCB1c2VyLgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICd1c2VycycgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgIyBHZXQgdGVzdCB1c2VyIElELgogICAgICAgIG15ICRUZXN0VXNlcklEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxvb2t1cCgKICAgICAgICAgICAgVXNlckxvZ2luID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgSW5zZXJ0IHRlc3QgdXNlciBpbnRvIGFjY291bnQgc2V0dGluZy4KICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgVXNlcklEID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICBQZXJpb2QgPT4gJzEnLAogICAgICAgICk7CgogICAgICAgIG15ICREYXRlVGltZU9iamVjdCAgID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CiAgICAgICAgbXkgJERhdGVUaW1lU2V0dGluZ3MgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwoKICAgICAgICBteSAkWWVhckN1cnJlbnQgID0gJERhdGVUaW1lU2V0dGluZ3MtPntZZWFyfTsKICAgICAgICBteSAkTW9udGhDdXJyZW50ID0gJERhdGVUaW1lU2V0dGluZ3MtPntNb250aH07CiAgICAgICAgbXkgJERheUN1cnJlbnQgICA9ICREYXRlVGltZVNldHRpbmdzLT57RGF5fTsKCiAgICAgICAgIyBVcGRhdGUgdXNlciB0aW1lIGFjY291bnQgc2V0dGluZy4KICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc1VwZGF0ZSgKICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnU2VsZW5pdW0gdGVzdCBhY2NvdW50aW5nIHVzZXInLAogICAgICAgICAgICBDcmVhdGVQcm9qZWN0ID0+IDEsCiAgICAgICAgICAgIFNob3dPdmVydGltZSAgPT4gMSwKICAgICAgICAgICAgUGVyaW9kICAgICAgICA9PiB7CiAgICAgICAgICAgICAgICAxID0+IHsKICAgICAgICAgICAgICAgICAgICBEYXRlU3RhcnQgICA9PiAiJFllYXJDdXJyZW50LSRNb250aEN1cnJlbnQtJERheUN1cnJlbnQiLAogICAgICAgICAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICIkWWVhckN1cnJlbnQtJE1vbnRoQ3VycmVudC0kRGF5Q3VycmVudCIsCiAgICAgICAgICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gJzM4JywKICAgICAgICAgICAgICAgICAgICBMZWF2ZURheXMgICA9PiAnMjUnLAogICAgICAgICAgICAgICAgICAgIE92ZXJ0aW1lICAgID0+ICczOCcsCiAgICAgICAgICAgICAgICAgICAgVXNlclN0YXR1cyAgPT4gMSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCBwcm9qZWN0LgogICAgICAgIG15ICRQcm9qZWN0VGl0bGUgPSAnUHJvamVjdCAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkUHJvamVjdElEICAgID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIFByb2plY3QgICAgICAgICAgICA9PiAkUHJvamVjdFRpdGxlLAogICAgICAgICAgICBQcm9qZWN0RGVzY3JpcHRpb24gPT4gJ1NlbGVuaXVtIHRlc3QgcHJvamVjdCcsCiAgICAgICAgICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIHRlc3QgYWN0aW9uLgogICAgICAgIG15ICRBY3Rpb25UaXRsZSA9ICdBY3Rpb24gJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgQWN0aW9uICAgICAgID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICAgICAgQWN0aW9uU3RhdHVzID0+IDEsCiAgICAgICAgKTsKICAgICAgICBteSAlQWN0aW9uRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uR2V0KAogICAgICAgICAgICBBY3Rpb24gPT4gJEFjdGlvblRpdGxlLAogICAgICAgICk7CiAgICAgICAgbXkgJEFjdGlvbklEID0gJEFjdGlvbkRhdGF7SUR9OwoKICAgICAgICAjIExvZ2luIGFzIHRlc3QgdXNlci4KICAgICAgICAkU2VsZW5pdW0tPkxvZ2luKAogICAgICAgICAgICBUeXBlICAgICA9PiAnQWdlbnQnLAogICAgICAgICAgICBVc2VyICAgICA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAjIE5hdmlnYXRlIHRvIEFnZW50VGltZUFjY291bnRpbmdFZGl0LgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdFZGl0Iik7CgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PiAncmV0dXJuIHR5cGVvZigkKSA9PT0gImZ1bmN0aW9uIiAmJiAkKCIjUmVjb3Jkc051bWJlciIpLmxlbmd0aDsnCiAgICAgICAgKTsKCiAgICAgICAgIyBBZGQgYWRkaXRpb25hbCByb3cuCiAgICAgICAgbXkgJFJlY29yZHNOdW1iZXIgICAgID0gJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgncmV0dXJuIHBhcnNlSW50KCQoIiNSZWNvcmRzTnVtYmVyIikudmFsKCksIDEwKTsnKTsKICAgICAgICBteSAkTmV4dFJlY29yZHNOdW1iZXIgPSAkUmVjb3Jkc051bWJlciArIDE7CgogICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoCiAgICAgICAgICAgICJcJChcIiNNb3JlSW5wdXRGaWVsZHNcIilbMF0uc2Nyb2xsSW50b1ZpZXcodHJ1ZSk7IiwKICAgICAgICApOwogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcmpRdWVyeUV2ZW50Qm91bmQoCiAgICAgICAgICAgIENTU1NlbGVjdG9yID0+ICIjTW9yZUlucHV0RmllbGRzIiwKICAgICAgICApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI01vcmVJbnB1dEZpZWxkcyIsICdjc3MnICktPmNsaWNrKCk7CgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PiAicmV0dXJuIFwkKCcjUmVjb3Jkc051bWJlcicpLnZhbCgpID09ICROZXh0UmVjb3Jkc051bWJlcjsiCiAgICAgICAgKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoCiAgICAgICAgICAgIEphdmFTY3JpcHQgPT4gInJldHVybiBcJCgnI0luc2VydFdvcmtpbmdIb3VycyB0ci5Xb3JraW5nSG91cnMnKS5sZW5ndGggPT0gJE5leHRSZWNvcmRzTnVtYmVyOyIKICAgICAgICApOwoKICAgICAgICAjIENoZWNrIHRpbWUgYWNjb3VudGluZyBlZGl0IGZpZWxkIElEcywgZmlyc3QgYW5kIGFkZGVkIHJvdy4KICAgICAgICBmb3IgbXkgJFJvdyAoIDEsICROZXh0UmVjb3Jkc051bWJlciApIHsKICAgICAgICAgICAgZm9yIG15ICRFZGl0RmllbGRJRCAoCiAgICAgICAgICAgICAgICBxdyhQcm9qZWN0SUQgQWN0aW9uSUQgUmVtYXJrIFN0YXJ0VGltZSBFbmRUaW1lIFBlcmlvZCkKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgicmV0dXJuIFwkKCcjJEVkaXRGaWVsZElEJFJvdycpLmxlbmd0aDsiKSwKICAgICAgICAgICAgICAgICAgICAiRWxlbWVudCAnIyRFZGl0RmllbGRJRCRSb3cnIGlzIGZvdW5kIGluIHNjcmVlbiIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZvciBteSAkRWRpdFJlc3RJRCAoCiAgICAgICAgICAgIHF3KE1vbnRoIERheSBZZWFyIERheURhdGVwaWNrZXJJY29uIE5hdmlnYXRpb25TZWxlY3QgSW5jb21wbGV0ZVdvcmtpbmdEYXlzTGlzdCBMZWF2ZURheSBTaWNrIE92ZXJ0aW1lKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoInJldHVybiBcJCgnIyRFZGl0UmVzdElEJykubGVuZ3RoOyIpLAogICAgICAgICAgICAgICAgIkVsZW1lbnQgJyMkRWRpdFJlc3RJRCcgaXMgZm91bmQgaW4gc2NyZWVuIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgRWRpdCB0aW1lIGFjY291bnRpbmcgZm9yIHRlc3QgY3JlYXRlZCB1c2VyLgogICAgICAgICRTZWxlbml1bS0+SW5wdXRGaWVsZFZhbHVlU2V0KAogICAgICAgICAgICBFbGVtZW50ID0+ICcjUHJvamVjdElEMScsCiAgICAgICAgICAgIFZhbHVlICAgPT4gJFByb2plY3RJRCwKICAgICAgICApOwoKICAgICAgICAkU2VsZW5pdW0tPklucHV0RmllbGRWYWx1ZVNldCgKICAgICAgICAgICAgRWxlbWVudCA9PiAnI0FjdGlvbklEMScsCiAgICAgICAgICAgIFZhbHVlICAgPT4gJEFjdGlvbklELAogICAgICAgICk7CgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1JlbWFyazEiLCAgICAnY3NzJyApLT5zZW5kX2tleXMoJ1NlbGVuaXVtIHRlc3QgcmVtYXJrJyk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjU3RhcnRUaW1lMSIsICdjc3MnICktPnNlbmRfa2V5cygnMTA6MDAnKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNFbmRUaW1lMSIsICAgJ2NzcycgKS0+c2VuZF9rZXlzKCAnMTY6MDAnLCAiXHQiICk7CgogICAgICAgICMgU3VibWl0IHdvcmsgYWNjb3VudGluZyBlZGl0IHRpbWUgcmVjb3JkLgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2J1dHRvbltcQHZhbHVlPSdTdWJtaXQnXVtcQHR5cGU9J3N1Ym1pdCddIiktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBWZXJpZnkgdGhhdCBwZXJpb2QgY2FsY3VsYXRlIGNvcnJlY3QgdGltZS4KICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1BlcmlvZDEiLCAnY3NzJyApLT5nZXRfdmFsdWUoKSwKICAgICAgICAgICAgJzYuMDAnLAogICAgICAgICAgICAiUGVyaW9kIHRpbWUgY29ycmVjdGx5IGNhbGN1bGF0ZWQiLAogICAgICAgICk7CgogICAgICAgICMgVmVyaWZ5IHN1Ym1pdCBtZXNzYWdlLgogICAgICAgIG15ICRTdWJtaXRNZXNzYWdlID0gJ1N1Y2Nlc3NmdWwgaW5zZXJ0ISc7CiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkU3VibWl0TWVzc2FnZSApID4gLTEsCiAgICAgICAgICAgICIkU3VibWl0TWVzc2FnZSBpcyBmb3VuZCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBDaGVjayBpZiBBZ2VudCBoYXZlIGFjY2VzcyB0byBOYXZiYXIuIFNlZSBidWcjMTM0NjYuCiAgICAgICAgIyBOYXZpZ2F0ZSB0byBBZ2VudFRpbWVBY2NvdW50aW5nU2V0dGluZy4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KAogICAgICAgICAgICAiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmc7U3ViYWN0aW9uPUVkaXRVc2VyO1VzZXJJRD0kVGVzdFVzZXJJRCIKICAgICAgICApOwoKICAgICAgICAjIFN1YnRyYWN0IDEwIGRheXMgZnJvbSBjdXJyZW50IGRhdGUuCiAgICAgICAgbXkgJEludGVydmFsID0gMTA7CiAgICAgICAgJERhdGVUaW1lT2JqZWN0LT5TdWJ0cmFjdCggRGF5cyA9PiAkSW50ZXJ2YWwgKTsKICAgICAgICBteSAkWWVhclN0YXJ0ID0gJERhdGVUaW1lT2JqZWN0LT5Gb3JtYXQoCiAgICAgICAgICAgIEZvcm1hdCA9PiAnJVknLAogICAgICAgICk7CiAgICAgICAgbXkgJE1vbnRoU3RhcnQgPSAkRGF0ZVRpbWVPYmplY3QtPkZvcm1hdCgKICAgICAgICAgICAgRm9ybWF0ID0+ICclbScsCiAgICAgICAgKTsKICAgICAgICBteSAkRGF5U3RhcnQgPSAkRGF0ZVRpbWVPYmplY3QtPkZvcm1hdCgKICAgICAgICAgICAgRm9ybWF0ID0+ICclZCcsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJFN1YnRyYWN0ZWREYXRlID0gIiRZZWFyU3RhcnQtJE1vbnRoU3RhcnQtJERheVN0YXJ0IjsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNEYXRlU3RhcnQtMSIsICdjc3MnICktPmNsZWFyKCk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjRGF0ZVN0YXJ0LTEiLCAnY3NzJyApLT5zZW5kX2tleXMoJFN1YnRyYWN0ZWREYXRlKTsKCiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yalF1ZXJ5RXZlbnRCb3VuZCgKICAgICAgICAgICAgQ1NTU2VsZWN0b3IgPT4gIiNTdWJtaXRVc2VyRGF0YSIsCiAgICAgICAgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNTdWJtaXRVc2VyRGF0YSIsICdjc3MnICktPmNsaWNrKCk7CgogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PiAicmV0dXJuIFwkKCcuTWVzc2FnZUJveC5FcnJvciBhW2hyZWYqPVwiQWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdFZGl0XCJdJykubGVuZ3RoOyIKICAgICAgICApOwoKICAgICAgICAjIENoZWNrIGlmIGVycm9yIG5vdGlmaWNhdGlvbiBpcyBzaG93biBvbiBwYWdlLgogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJFNlbGVuaXVtLT5leGVjdXRlX3NjcmlwdCgKICAgICAgICAgICAgICAgICJyZXR1cm4gXCQoJy5NZXNzYWdlQm94LkVycm9yIGFbaHJlZio9XCJBY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ0VkaXRcIl0nKS50ZXh0KCkudHJpbSgpOyIKICAgICAgICAgICAgKSwKICAgICAgICAgICAgIlBsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISIsCiAgICAgICAgICAgICdFcnJvciBub3RpZmljYXRpb24gZm9yIGluc2VydGluZyB3b3JraW5nIGhvdXJzIGlzIGZvdW5kJywKICAgICAgICApOwoKICAgICAgICAjIENoZWNrcyBpZiBJbmNvbXBsZXRlIHdvcmtpbmcgZGF5cyBpcyBzaG93bi4KICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoCiAgICAgICAgICAgICAgICAicmV0dXJuIFwkKCcuSW5jb21wbGV0ZVdvcmtpbmdEYXlzIC5Db3VudGVyJykudGV4dCgpOyIKICAgICAgICAgICAgKSwKICAgICAgICAgICAgJEludGVydmFsLAogICAgICAgICAgICAiJEludGVydmFsIGluY29tcGxldGUgd29ya2luZyBkYXlzIGlzIGZvdW5kIGluIHRvb2xiYXIgY291bnRlciIsCiAgICAgICAgKTsKCiAgICAgICAgIyBUcnkgdG8gbmF2aWdhdGUgdG8gQWdlbnREYXNoYm9hcmQuCiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnREYXNoYm9hcmQiKTsKCiAgICAgICAgJFNlbGYtPkZhbHNlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfY3VycmVudF91cmwoKSwgJ0FjdGlvbj1BZ2VudERhc2hib2FyZCcgKSA+IC0xLAogICAgICAgICAgICAiVXNlciBpcyBibG9rZWQgdG8gdXNlIGFwcGxpY2F0aW9uLCBpdCBpcyBuZWVkZWQgdG8gaW5zZXJ0IHdvcmtpbmcgaG91cnMiLAogICAgICAgICk7CgogICAgICAgICMgRGlzYWJsZSBNYXNzRW50cnkgZmVhdHVyZXMuCiAgICAgICAgJEhlbHBlci0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICAgICAgS2V5ICAgPT4gJ1RpbWVBY2NvdW50aW5nOjpNYXhJbnRlcnZhbE9mSW5jb21wbGV0ZURheXMnLAogICAgICAgICAgICBWYWx1ZSA9PiAxNSwKICAgICAgICApOwoKICAgICAgICAjIERpc2FibGUgTWFzc0VudHJ5IGZlYXR1cmVzLgogICAgICAgICRIZWxwZXItPkNvbmZpZ1NldHRpbmdDaGFuZ2UoCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgICAgIEtleSAgID0+ICdUaW1lQWNjb3VudGluZzo6TWF4SW50ZXJ2YWxPZkluY29tcGxldGVEYXlzQmVmb3JlV2FybmluZycsCiAgICAgICAgICAgIFZhbHVlID0+IDUsCiAgICAgICAgKTsKCiAgICAgICAgIyBSZWZyZXNoIHRoZSBzY3JlZW4gdG8gbG9hZCBuZXcgbm90aWZpY2F0aW9uIGFmdGVyIGNoYW5naW5nIGNvbmZpZy4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkUmVmcmVzaCgpOwoKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoCiAgICAgICAgICAgIEphdmFTY3JpcHQgPT4gInJldHVybiBcJCgnLk1lc3NhZ2VCb3guTm90aWNlIGFbaHJlZio9XCJBY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ0VkaXRcIl0nKS5sZW5ndGg7IgogICAgICAgICk7CgogICAgICAgICMgQ2hlY2sgaWYgd2Fycm5pbmcgbm90aWZpY2F0aW9uIGlzIHNob3duIG9uIHBhZ2UuCiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAgICAgICAgInJldHVybiBcJCgnLk1lc3NhZ2VCb3guTm90aWNlIGFbaHJlZio9XCJBY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ0VkaXRcIl0nKS50ZXh0KCkudHJpbSgpOyIKICAgICAgICAgICAgKSwKICAgICAgICAgICAgIlBsZWFzZSBpbnNlcnQgeW91ciB3b3JraW5nIGhvdXJzISIsCiAgICAgICAgICAgICdXYXJybmluZyBub3RpZmljYXRpb24gZm9yIGluc2VydGluZyB3b3JraW5nIGhvdXJzIGlzIGZvdW5kJywKICAgICAgICApOwoKICAgICAgICAjIFRyeSB0byBuYXZpZ2F0ZSB0byBBZ2VudERhc2hib2FyZC4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudERhc2hib2FyZCIpOwoKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X2N1cnJlbnRfdXJsKCksICdBY3Rpb249QWdlbnREYXNoYm9hcmQnICkgPiAtMSwKICAgICAgICAgICAgIlVzZXIgaXMgbm90IGJsb2tlZCB0byB1c2UgYXBwbGljYXRpb24iLAogICAgICAgICk7CgogICAgICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICAgICAjIEdldCBEQiBjbGVhbi11cCBkYXRhLgogICAgICAgIG15IEBEQkNsZWFuRGF0YSA9ICgKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUXVvdGVkICA9PiAkUHJvamVjdFRpdGxlLAogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3Byb2plY3QnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAncHJvamVjdCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICcnLAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiJFByb2plY3RUaXRsZSBpcyBkZWxldGVkIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUXVvdGVkICA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfYWN0aW9uJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ2FjdGlvbicsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICcnLAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiJEFjdGlvblRpdGxlIGlzIGRlbGV0ZWQiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdGFibGUnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIGlzIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHRhYmxlIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3VzZXInLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIGlzIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHNldHRpbmciLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdXNlcl9wZXJpb2QnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIGlzIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHBlcmlvZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBDbGVhbiBzeXN0ZW0gZnJvbSB0ZXN0IGNyZWF0ZWQgZGF0YS4KICAgICAgICBmb3IgbXkgJERlbGV0ZSAoQERCQ2xlYW5EYXRhKSB7CiAgICAgICAgICAgIGlmICggJERlbGV0ZS0+e1F1b3RlZH0gKSB7CiAgICAgICAgICAgICAgICAkRGVsZXRlLT57QmluZH0gPSAkREJPYmplY3QtPlF1b3RlKCAkRGVsZXRlLT57UXVvdGVkfSApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJERCT2JqZWN0LT5EbygKICAgICAgICAgICAgICAgIFNRTCAgPT4gIkRFTEVURSBGUk9NICREZWxldGUtPntUYWJsZX0gV0hFUkUgJERlbGV0ZS0+e1doZXJlfSA9ID8iLAogICAgICAgICAgICAgICAgQmluZCA9PiBbIFwkRGVsZXRlLT57QmluZH0gXSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgICAgICREZWxldGUtPntNZXNzYWdlfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9Cik7CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7Cgp1c2UgdmFycyAocXcoJFNlbGYpKTsKCiMgZ2V0IHNlbGVuaXVtIG9iamVjdApteSAkU2VsZW5pdW0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OlNlbGVuaXVtJyk7CgokU2VsZW5pdW0tPlJ1blRlc3QoCiAgICBzdWIgewoKICAgICAgICAjIGdldCBoZWxwZXIgb2JqZWN0CiAgICAgICAgbXkgJEhlbHBlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CgogICAgICAgICMgdXNlIGEgY2FsZW5kYXIgd2l0aCB0aGUgc2FtZSBidXNpbmVzcyBob3VycyBmb3IgZXZlcnkgZGF5IHNvIHRoYXQgdGhlIFVUIHJ1bnMgY29ycmVjdGx5CiAgICAgICAgIyBvbiBldmVyeSBkYXkgb2YgdGhlIHdlZWsgYW5kIG91dHNpZGUgdXN1YWwgYnVzaW5lc3MgaG91cnMuCiAgICAgICAgbXkgJVdlZWs7CiAgICAgICAgbXkgQERheXMgPSBxdyhTdW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQpOwogICAgICAgIGZvciBteSAkRGF5IChARGF5cykgewogICAgICAgICAgICAkV2Vla3skRGF5fSA9IFsgMCAuLiAyMyBdOwogICAgICAgIH0KCiAgICAgICAgJEhlbHBlci0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgS2V5ICAgPT4gJ1RpbWVXb3JraW5nSG91cnMnLAogICAgICAgICAgICBWYWx1ZSA9PiBcJVdlZWssCiAgICAgICAgKTsKCiAgICAgICAgJEhlbHBlci0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgS2V5ICAgPT4gJ1RpbWVXb3JraW5nSG91cnMnLAogICAgICAgICAgICBWYWx1ZSA9PiBcJVdlZWssCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCB1c2VyIGFuZCBsb2dpbgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICd1c2VycycgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgIyBnZXQgdGVzdCB1c2VyIElECiAgICAgICAgbXkgJFRlc3RVc2VySUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTG9va3VwKAogICAgICAgICAgICBVc2VyTG9naW4gPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgdGltZSBhY2NvdW50aW5nIG9iamVjdAogICAgICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgICAgICAjIGluc2VydCB0ZXN0IHVzZXIgaW50byBhY2NvdW50IHNldHRpbmcKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgVXNlcklEID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICBQZXJpb2QgPT4gJzEnLAogICAgICAgICk7CgogICAgICAgIG15ICREYXRlVGltZU9iamVjdCAgID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CiAgICAgICAgbXkgJERhdGVUaW1lU2V0dGluZ3MgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwoKICAgICAgICBteSAkWWVhckN1cnJlbnQgID0gJERhdGVUaW1lU2V0dGluZ3MtPntZZWFyfTsKICAgICAgICBteSAkTW9udGhDdXJyZW50ID0gJERhdGVUaW1lU2V0dGluZ3MtPntNb250aH07CiAgICAgICAgbXkgJERheUN1cnJlbnQgICA9ICREYXRlVGltZVNldHRpbmdzLT57RGF5fTsKCiAgICAgICAgJERhdGVUaW1lT2JqZWN0LT5BZGQoIERheXMgPT4gMSApOwogICAgICAgIG15ICREYXRlVGltZVNldHRpbmdzRW5kID0gJERhdGVUaW1lT2JqZWN0LT5HZXQoKTsKCiAgICAgICAgbXkgJFllYXJFbmQgID0gJERhdGVUaW1lU2V0dGluZ3NFbmQtPntZZWFyfTsKICAgICAgICBteSAkTW9udGhFbmQgPSAkRGF0ZVRpbWVTZXR0aW5nc0VuZC0+e01vbnRofTsKICAgICAgICBteSAkRGF5RW5kICAgPSAkRGF0ZVRpbWVTZXR0aW5nc0VuZC0+e0RheX07CgogICAgICAgICMgdXBkYXRlIHVzZXIgdGltZSBhY2NvdW50IHNldHRpbmcKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc1VwZGF0ZSgKICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnU2VsZW5pdW0gdGVzdCBhY2NvdW50aW5nIHVzZXInLAogICAgICAgICAgICBDcmVhdGVQcm9qZWN0ID0+IDEsCiAgICAgICAgICAgIFNob3dPdmVydGltZSAgPT4gMSwKICAgICAgICAgICAgUGVyaW9kICAgICAgICA9PiB7CiAgICAgICAgICAgICAgICAxID0+IHsKICAgICAgICAgICAgICAgICAgICBEYXRlU3RhcnQgICA9PiAiJFllYXJDdXJyZW50LSRNb250aEN1cnJlbnQtJERheUN1cnJlbnQiLAogICAgICAgICAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICIkWWVhckVuZC0kTW9udGhFbmQtJERheUVuZCIsCiAgICAgICAgICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gJzM4JywKICAgICAgICAgICAgICAgICAgICBMZWF2ZURheXMgICA9PiAnMjUnLAogICAgICAgICAgICAgICAgICAgIE92ZXJ0aW1lICAgID0+ICczOCcsCiAgICAgICAgICAgICAgICAgICAgVXNlclN0YXR1cyAgPT4gMSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCBwcm9qZWN0CiAgICAgICAgbXkgJFByb2plY3RUaXRsZSA9ICdQcm9qZWN0ICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgIG15ICRQcm9qZWN0SUQgICAgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPlByb2plY3RTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgUHJvamVjdCAgICAgICAgICAgID0+ICRQcm9qZWN0VGl0bGUsCiAgICAgICAgICAgIFByb2plY3REZXNjcmlwdGlvbiA9PiAnU2VsZW5pdW0gdGVzdCBwcm9qZWN0JywKICAgICAgICAgICAgUHJvamVjdFN0YXR1cyAgICAgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCBhY3Rpb24KICAgICAgICBteSAkQWN0aW9uVGl0bGUgPSAnQWN0aW9uICcgLiAkSGVscGVyLT5HZXRSYW5kb21JRCgpOwogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uU2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIEFjdGlvbiAgICAgICA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgICAgIEFjdGlvblN0YXR1cyA9PiAxLAogICAgICAgICk7CiAgICAgICAgbXkgJUFjdGlvbkRhdGEgPSAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvbkdldCgKICAgICAgICAgICAgQWN0aW9uID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICApOwogICAgICAgIG15ICRBY3Rpb25JRCA9ICRBY3Rpb25EYXRhe0lEfTsKCiAgICAgICAgIyBhZGQgd29ya2luZyB1bml0cyBmb3IgdGVzdCB1c2VyCiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNJbnNlcnQoCiAgICAgICAgICAgIFllYXIgICAgICAgICA9PiAkWWVhckN1cnJlbnQsCiAgICAgICAgICAgIE1vbnRoICAgICAgICA9PiAkTW9udGhDdXJyZW50LAogICAgICAgICAgICBEYXkgICAgICAgICAgPT4gJERheUN1cnJlbnQsCiAgICAgICAgICAgIExlYXZlRGF5ICAgICA9PiAxLAogICAgICAgICAgICBTaWNrICAgICAgICAgPT4gMSwKICAgICAgICAgICAgT3ZlcnRpbWUgICAgID0+IDEsCiAgICAgICAgICAgIFdvcmtpbmdVbml0cyA9PiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUHJvamVjdElEID0+ICRQcm9qZWN0SUQsCiAgICAgICAgICAgICAgICAgICAgQWN0aW9uSUQgID0+ICRBY3Rpb25JRCwKICAgICAgICAgICAgICAgICAgICBSZW1hcmsgICAgPT4gJ1NlbGVuaXVtIHRlc3QgcmVtYXJrJywKICAgICAgICAgICAgICAgICAgICBQZXJpb2QgICAgPT4gJzUnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgVXNlcklEID0+ICRUZXN0VXNlcklELAogICAgICAgICk7CgogICAgICAgICMgbG9nIGluIHRlc3QgdXNlcgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICAjIGdldCBzY3JpcHQgYWxpYXMKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICMgbmF2aWdhdGUgdG8gQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3CiAgICAgICAgJFNlbGVuaXVtLT5WZXJpZmllZEdldCgiJHtTY3JpcHRBbGlhc31pbmRleC5wbD9BY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3OyIpOwoKICAgICAgICAjIGNoZWNrIHBhZ2UgbGF5b3V0CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSIsICAgICAgICAgICAgICdjc3MnICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSB0aGVhZCB0ciB0aCIsICdjc3MnICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSB0Ym9keSB0ciB0ZCIsICdjc3MnICk7CgogICAgICAgICMgdmVyaWZ5IEFnZW50VGltZUFjY291bnRpbmdPdmVydmlldyB2YWx1ZXMKICAgICAgICBteSBAV2Vla2RheUFycmF5ID0gKCAnTW9uJywgJ1R1ZScsICdXZWQnLCAnVGh1JywgJ0ZyaScsICdTYXQnLCAnU3VuJywgKTsKICAgICAgICBteSBAVGVzdCAgICAgICAgID0gKAogICAgICAgICAgICAkUHJvamVjdFRpdGxlLCAkQWN0aW9uVGl0bGUsICdUaW1lIHJlcG9ydGluZyBtb250aGx5IG92ZXJ2aWV3JywgJ09uIG92ZXJ0aW1lIGxlYXZlJywgJ092ZXJ0aW1lIChIb3VycyknLAogICAgICAgICAgICAnVmFjYXRpb24gKERheXMpJywgJ1NpY2sgTGVhdmUgKERheXMpJywgQFdlZWtkYXlBcnJheQogICAgICAgICk7CgogICAgICAgIGZvciBteSAkQ2hlY2sgKEBUZXN0KSB7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRDaGVjayApID4gLTEsCiAgICAgICAgICAgICAgICAiJENoZWNrIGlzIGZvdW5kIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgZ2V0IERCIG9iamVjdAogICAgICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICAgICAjIGdldCBEQiBjbGVhbi11cCBkYXRhCiAgICAgICAgbXkgQERCQ2xlYW5EYXRhID0gKAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBRdW90ZWQgID0+ICRQcm9qZWN0VGl0bGUsCiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfcHJvamVjdCcsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICdwcm9qZWN0JywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJycsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICIkUHJvamVjdFRpdGxlIGlzIGRlbGV0ZWQiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBRdW90ZWQgID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ19hY3Rpb24nLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAnYWN0aW9uJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJycsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICIkQWN0aW9uVGl0bGUgaXMgZGVsZXRlZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ190YWJsZScsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgdGFibGUiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdXNlcicsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgc2V0dGluZyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ191c2VyX3BlcmlvZCcsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgcGVyaW9kIiwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGNsZWFuIHN5c3RlbSBmcm9tIHRlc3QgY3JlYXRlZCBkYXRhCiAgICAgICAgZm9yIG15ICREZWxldGUgKEBEQkNsZWFuRGF0YSkgewogICAgICAgICAgICBpZiAoICREZWxldGUtPntRdW90ZWR9ICkgewogICAgICAgICAgICAgICAgJERlbGV0ZS0+e0JpbmR9ID0gJERCT2JqZWN0LT5RdW90ZSggJERlbGV0ZS0+e1F1b3RlZH0gKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICREQk9iamVjdC0+RG8oCiAgICAgICAgICAgICAgICBTUUwgID0+ICJERUxFVEUgRlJPTSAkRGVsZXRlLT57VGFibGV9IFdIRVJFICREZWxldGUtPntXaGVyZX0gPSA/IiwKICAgICAgICAgICAgICAgIEJpbmQgPT4gWyBcJERlbGV0ZS0+e0JpbmR9IF0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICAgICAkRGVsZXRlLT57TWVzc2FnZX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQopOwoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7Cgp1c2UgdmFycyAocXcoJFNlbGYpKTsKCm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgIG15ICRIZWxwZXIgICAgICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CiAgICAgICAgbXkgJFRpbWVBY2NvdW50aW5nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWVBY2NvdW50aW5nJyk7CiAgICAgICAgbXkgJERhdGVUaW1lT2JqZWN0ICAgICAgID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyk7CgogICAgICAgICMgU2V0IE1heEludGVydmFsT2ZJbmNvbXBsZXRlRGF5cyBTeXNDb25maWcgb24gNTAgZGF5cyBmb3IgdGVzdCBwdXJwb3NlLgogICAgICAgICRIZWxwZXItPkNvbmZpZ1NldHRpbmdDaGFuZ2UoCiAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgICAgIEtleSAgID0+ICdUaW1lQWNjb3VudGluZzo6TWF4SW50ZXJ2YWxPZkluY29tcGxldGVEYXlzJywKICAgICAgICAgICAgVmFsdWUgPT4gNTAsCiAgICAgICAgKTsKCiAgICAgICAgIyBVc2UgYSBjYWxlbmRhciB3aXRoIHRoZSBzYW1lIGJ1c2luZXNzIGhvdXJzIGZvciBldmVyeSBkYXkgc28gdGhhdCB0aGUgVVQgcnVucyBjb3JyZWN0bHkKICAgICAgICAjIG9uIGV2ZXJ5IGRheSBvZiB0aGUgd2VlayBhbmQgb3V0c2lkZSB1c3VhbCBidXNpbmVzcyBob3Vycy4KICAgICAgICBteSAlV2VlazsKICAgICAgICBteSBARGF5cyA9IHF3KFN1biBNb24gVHVlIFdlZCBUaHUgRnJpIFNhdCk7CiAgICAgICAgZm9yIG15ICREYXkgKEBEYXlzKSB7CiAgICAgICAgICAgICRXZWVreyREYXl9ID0gWyAwIC4uIDIzIF07CiAgICAgICAgfQoKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnVGltZVdvcmtpbmdIb3VycycsCiAgICAgICAgICAgIFZhbHVlID0+IFwlV2VlaywKICAgICAgICApOwoKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnVGltZVdvcmtpbmdIb3VycycsCiAgICAgICAgICAgIFZhbHVlID0+IFwlV2VlaywKICAgICAgICApOwoKICAgICAgICAjIENyZWF0ZSB0ZXN0IHVzZXIuCiAgICAgICAgbXkgJFRlc3RVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgICAgICAgICAgR3JvdXBzID0+IFsgJ2FkbWluJywgJ3VzZXJzJyBdLAogICAgICAgICkgfHwgZGllICJEaWQgbm90IGdldCB0ZXN0IHVzZXIiOwoKICAgICAgICAjIEdldCB0ZXN0IHVzZXIgSUQuCiAgICAgICAgbXkgJFRlc3RVc2VySUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTG9va3VwKAogICAgICAgICAgICBVc2VyTG9naW4gPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyBJbnNlcnQgdGVzdCB1c2VyIGludG8gYWNjb3VudCBzZXR0aW5nLgogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICBVc2VySUQgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgIFBlcmlvZCA9PiAnMScsCiAgICAgICAgKTsKCiAgICAgICAgJERhdGVUaW1lT2JqZWN0LT5TdWJ0cmFjdCggRGF5cyA9PiA0MCApOwogICAgICAgIG15ICRZZWFyU3RhcnQgPSAkRGF0ZVRpbWVPYmplY3QtPkZvcm1hdCgKICAgICAgICAgICAgRm9ybWF0ID0+ICclWScsCiAgICAgICAgKTsKICAgICAgICBteSAkTW9udGhTdGFydCA9ICREYXRlVGltZU9iamVjdC0+Rm9ybWF0KAogICAgICAgICAgICBGb3JtYXQgPT4gJyVtJywKICAgICAgICApOwogICAgICAgIG15ICREYXlTdGFydCA9ICREYXRlVGltZU9iamVjdC0+Rm9ybWF0KAogICAgICAgICAgICBGb3JtYXQgPT4gJyVkJywKICAgICAgICApOwoKICAgICAgICAkRGF0ZVRpbWVPYmplY3QtPkFkZCgKICAgICAgICAgICAgU2Vjb25kcyA9PiAxCiAgICAgICAgKTsKICAgICAgICBteSAkRGF0ZVRpbWVTZXR0aW5ncyA9ICREYXRlVGltZU9iamVjdC0+R2V0KCk7CgogICAgICAgIG15ICRZZWFyQ3VycmVudCAgPSAkRGF0ZVRpbWVTZXR0aW5ncy0+e1llYXJ9OwogICAgICAgIG15ICRNb250aEN1cnJlbnQgPSAkRGF0ZVRpbWVTZXR0aW5ncy0+e01vbnRofTsKICAgICAgICBteSAkRGF5Q3VycmVudCAgID0gJERhdGVUaW1lU2V0dGluZ3MtPntEYXl9OwoKICAgICAgICAkRGF0ZVRpbWVTZXR0aW5ncyA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpOwogICAgICAgICREYXRlVGltZVNldHRpbmdzLT5BZGQoCiAgICAgICAgICAgIERheXMgPT4gMSwKICAgICAgICApOwogICAgICAgIG15ICREYXRlVGltZVNldHRpbmdzRW5kID0gJERhdGVUaW1lU2V0dGluZ3MtPkdldCgpOwoKICAgICAgICBteSAkWWVhckVuZCAgPSAkRGF0ZVRpbWVTZXR0aW5nc0VuZC0+e1llYXJ9OwogICAgICAgIG15ICRNb250aEVuZCA9ICREYXRlVGltZVNldHRpbmdzRW5kLT57TW9udGh9OwogICAgICAgIG15ICREYXlFbmQgICA9ICREYXRlVGltZVNldHRpbmdzRW5kLT57RGF5fTsKCiAgICAgICAgIyBVcGRhdGUgdXNlciB0aW1lIGFjY291bnQgc2V0dGluZy4KICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc1VwZGF0ZSgKICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgRGVzY3JpcHRpb24gICA9PiAnU2VsZW5pdW0gdGVzdCBhY2NvdW50aW5nIHVzZXInLAogICAgICAgICAgICBDcmVhdGVQcm9qZWN0ID0+IDEsCiAgICAgICAgICAgIFNob3dPdmVydGltZSAgPT4gMSwKICAgICAgICAgICAgUGVyaW9kICAgICAgICA9PiB7CiAgICAgICAgICAgICAgICAxID0+IHsKICAgICAgICAgICAgICAgICAgICBEYXRlU3RhcnQgICA9PiAiJFllYXJTdGFydC0kTW9udGhTdGFydC0kRGF5U3RhcnQiLAogICAgICAgICAgICAgICAgICAgIERhdGVFbmQgICAgID0+ICIkWWVhckVuZC0kTW9udGhFbmQtJERheUVuZCIsCiAgICAgICAgICAgICAgICAgICAgV2Vla2x5SG91cnMgPT4gJzM4JywKICAgICAgICAgICAgICAgICAgICBMZWF2ZURheXMgICA9PiAnMjUnLAogICAgICAgICAgICAgICAgICAgIE92ZXJ0aW1lICAgID0+ICczOCcsCiAgICAgICAgICAgICAgICAgICAgVXNlclN0YXR1cyAgPT4gMSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBDcmVhdGUgdGVzdCBwcm9qZWN0LgogICAgICAgIG15ICRQcm9qZWN0VGl0bGUgPSAnUHJvamVjdCAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkUHJvamVjdElEICAgID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIFByb2plY3QgICAgICAgICAgICA9PiAkUHJvamVjdFRpdGxlLAogICAgICAgICAgICBQcm9qZWN0RGVzY3JpcHRpb24gPT4gJ1NlbGVuaXVtIHRlc3QgcHJvamVjdCcsCiAgICAgICAgICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIHRlc3QgYWN0aW9uLgogICAgICAgIG15ICRBY3Rpb25UaXRsZSA9ICdBY3Rpb24gJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgQWN0aW9uICAgICAgID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICAgICAgQWN0aW9uU3RhdHVzID0+IDEsCiAgICAgICAgKTsKICAgICAgICBteSAlQWN0aW9uRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uR2V0KAogICAgICAgICAgICBBY3Rpb24gPT4gJEFjdGlvblRpdGxlLAogICAgICAgICk7CiAgICAgICAgbXkgJEFjdGlvbklEID0gJEFjdGlvbkRhdGF7SUR9OwoKICAgICAgICAjIEFkZCB3b3JraW5nIHVuaXRzIGZvciB0ZXN0IHVzZXIuCiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Xb3JraW5nVW5pdHNJbnNlcnQoCiAgICAgICAgICAgIFllYXIgICAgICAgICA9PiAkWWVhckN1cnJlbnQsCiAgICAgICAgICAgIE1vbnRoICAgICAgICA9PiAkTW9udGhDdXJyZW50LAogICAgICAgICAgICBEYXkgICAgICAgICAgPT4gJERheUN1cnJlbnQsCiAgICAgICAgICAgIExlYXZlRGF5ICAgICA9PiAxLAogICAgICAgICAgICBTaWNrICAgICAgICAgPT4gMSwKICAgICAgICAgICAgT3ZlcnRpbWUgICAgID0+IDEsCiAgICAgICAgICAgIFdvcmtpbmdVbml0cyA9PiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUHJvamVjdElEID0+ICRQcm9qZWN0SUQsCiAgICAgICAgICAgICAgICAgICAgQWN0aW9uSUQgID0+ICRBY3Rpb25JRCwKICAgICAgICAgICAgICAgICAgICBSZW1hcmsgICAgPT4gJ1NlbGVuaXVtIHRlc3QgcmVtYXJrJywKICAgICAgICAgICAgICAgICAgICBQZXJpb2QgICAgPT4gJzUnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgVXNlcklEID0+ICRUZXN0VXNlcklELAogICAgICAgICk7CgogICAgICAgICMgTG9naW4gYXMgdGVzdCB1c2VyLgogICAgICAgICRTZWxlbml1bS0+TG9naW4oCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdBZ2VudCcsCiAgICAgICAgICAgIFVzZXIgICAgID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICApOwoKICAgICAgICBteSAkU2NyaXB0QWxpYXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1NjcmlwdEFsaWFzJyk7CgogICAgICAgICMgTmF2aWdhdGUgdG8gQWdlbnRUaW1lQWNjb3VudGluZ1JlcG9ydGluZy4KICAgICAgICAkU2VsZW5pdW0tPlZlcmlmaWVkR2V0KCIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nIik7CgogICAgICAgICMgU2VsZWN0IG1vbnRoIGFuZCB5ZWFyIHRoYXQgYXJlIHVzZWQgZm9yIHRlc3RpbmcuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjTW9udGggb3B0aW9uW3ZhbHVlPSckTW9udGhTdGFydCddIiwgJ2NzcycgKS0+Y2xpY2soKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNZZWFyIG9wdGlvblt2YWx1ZT0nJFllYXJTdGFydCddIiwgICAnY3NzJyApLT5jbGljaygpOwogICAgICAgICRTZWxlbml1bS0+V2FpdEZvcigKICAgICAgICAgICAgSmF2YVNjcmlwdCA9PiAicmV0dXJuIFwkKCcjTW9udGgnKS52YWwoKSA9PSAkTW9udGhTdGFydCAmJiBcJCgnI1llYXInKS52YWwoKSA9PSAkWWVhclN0YXJ0IgogICAgICAgICk7CgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI05hdmlnYXRpb25TZWxlY3QiLCAnY3NzJyApLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgQ2hlY2sgcGFnZSBsYXlvdXQuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSIsICAgICAgICAgICAgICdjc3MnICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSB0aGVhZCB0ciB0aCIsICdjc3MnICk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICJ0YWJsZSB0Ym9keSB0ciB0ZCIsICdjc3MnICk7CgogICAgICAgICMgVmVyaWZ5IHRoZXJlIGlzIGxpbmsgdG8gdGVzdCB1c2VyIHJlcG9ydHMuCiAgICAgICAgbXkgJFVzZXJSZXBvcnRFbGVtZW50ID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIkVGVzdFVzZXJMb2dpbiAkVGVzdFVzZXJMb2dpbiIsICdsaW5rX3RleHQnICk7CiAgICAgICAgJFVzZXJSZXBvcnRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgJFVzZXJSZXBvcnRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKCiAgICAgICAgIyBWZXJpZnkgdGhlcmUgaXMgbGluayB0byB0ZXN0IHVzZXIgcHJvamVjdCByZXBvcnRzLgogICAgICAgIG15ICRQcm9qZWN0UmVwb3J0RWxlbWVudCA9ICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiJFByb2plY3RUaXRsZSIsICdsaW5rX3RleHQnICk7CiAgICAgICAgJFByb2plY3RSZXBvcnRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgJFByb2plY3RSZXBvcnRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKCiAgICAgICAgIyBTZWxlY3QgdGVzdCBjcmVhdGVkIHByb2plY3QuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICRQcm9qZWN0VGl0bGUsICdsaW5rX3RleHQnICktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBDaGVjayBwYWdlIGxheW91dC4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIiwgICAgICAgICAgICAgJ2NzcycgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIHRoZWFkIHRyIHRoIiwgJ2NzcycgKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggInRhYmxlIHRib2R5IHRyIHRkIiwgJ2NzcycgKTsKCiAgICAgICAgIyBWZXJpZnkgdGhlcmUgaXMgdGVzdCBjcmVhdGVkIGFjdGlvbi4KICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRBY3Rpb25UaXRsZSApID4gLTEsCiAgICAgICAgICAgICIkQWN0aW9uVGl0bGUgaXMgZm91bmQiLAogICAgICAgICk7CgogICAgICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICAgICAjIEdldCBEQiBjbGVhbi11cCBkYXRhLgogICAgICAgIG15IEBEQkNsZWFuRGF0YSA9ICgKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUXVvdGVkICA9PiAkUHJvamVjdFRpdGxlLAogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3Byb2plY3QnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAncHJvamVjdCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICcnLAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiJFByb2plY3RUaXRsZSBpcyBkZWxldGVkIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUXVvdGVkICA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfYWN0aW9uJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ2FjdGlvbicsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICcnLAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiJEFjdGlvblRpdGxlIGlzIGRlbGV0ZWQiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdGFibGUnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIGlzIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHRhYmxlIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3VzZXInLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIGlzIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHNldHRpbmciLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdXNlcl9wZXJpb2QnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIGlzIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHBlcmlvZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBDbGVhbiBzeXN0ZW0gZnJvbSB0ZXN0IGNyZWF0ZWQgZGF0YS4KICAgICAgICBmb3IgbXkgJERlbGV0ZSAoQERCQ2xlYW5EYXRhKSB7CiAgICAgICAgICAgIGlmICggJERlbGV0ZS0+e1F1b3RlZH0gKSB7CiAgICAgICAgICAgICAgICAkRGVsZXRlLT57QmluZH0gPSAkREJPYmplY3QtPlF1b3RlKCAkRGVsZXRlLT57UXVvdGVkfSApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJERCT2JqZWN0LT5EbygKICAgICAgICAgICAgICAgIFNRTCAgPT4gIkRFTEVURSBGUk9NICREZWxldGUtPntUYWJsZX0gV0hFUkUgJERlbGV0ZS0+e1doZXJlfSA9ID8iLAogICAgICAgICAgICAgICAgQmluZCA9PiBbIFwkRGVsZXRlLT57QmluZH0gXSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgICAgICREZWxldGUtPntNZXNzYWdlfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9Cik7CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7Cgp1c2UgdmFycyAocXcoJFNlbGYpKTsKCm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgIG15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKICAgICAgICAjIENyZWF0ZSB0ZXN0IHVzZXIgYW5kIGxvZ2luLgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICd1c2VycycgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgQ3JlYXRlIGFub3RoZXIgdGVzdCB1c2VyLgogICAgICAgIG15ICRUZXN0VXNlciA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKCk7CgogICAgICAgICMgR2V0IHRlc3QgdXNlciBJRC4KICAgICAgICBteSAkVGVzdFVzZXJJRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPlVzZXJMb29rdXAoCiAgICAgICAgICAgIFVzZXJMb2dpbiA9PiAkVGVzdFVzZXIsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJFNjcmlwdEFsaWFzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdTY3JpcHRBbGlhcycpOwoKICAgICAgICAjIE5hdmlnYXRlIHRvIEFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nLgogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoIiR7U2NyaXB0QWxpYXN9aW5kZXgucGw/QWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdTZXR0aW5nIik7CgogICAgICAgICMgQ2hlY2sgdGltZSBhY2NvdW50IHNldHRpbmcgcGFnZSBJRHMuCiAgICAgICAgZm9yIG15ICRTZXR0aW5nUGFnZSAoCiAgICAgICAgICAgIHF3KAogICAgICAgICAgICBOZXdVc2VySUQKICAgICAgICAgICAgQ29yZV9VSV9BdXRvZ2VuZXJhdGVkSURfMAogICAgICAgICAgICBDb3JlX1VJX0F1dG9nZW5lcmF0ZWRJRF8xCiAgICAgICAgICAgIENvcmVfVUlfQXV0b2dlbmVyYXRlZElEXzIKICAgICAgICAgICAgLkZpbHRlckJveAogICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIG15ICRTZWxlY3RvciA9ICggJFNldHRpbmdQYWdlID1+IG0vXlthLXpBLVowLTldLyA/ICcjJyA6ICcnICkgLiAkU2V0dGluZ1BhZ2U7CiAgICAgICAgICAgIG15ICRFbGVtZW50ICA9ICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAkU2VsZWN0b3IsICdjc3MnICk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKICAgICAgICB9CgogICAgICAgICMgQ2hlY2sgYWRkIHByb2plY3QgYW5kIGFkZCB0YXNrLgogICAgICAgIGZvciBteSAkU2V0dGluZ0FkZCAoICdBZGQnLCAnQWRkIHRhc2snLCApIHsKICAgICAgICAgICAgbXkgJEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEB2YWx1ZT0nJFNldHRpbmdBZGQnXVtcQHR5cGU9J3N1Ym1pdCddIik7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKICAgICAgICB9CgogICAgICAgICMgRm9yIGNoZWNrICduZXcgdXNlcicgaW5wdXQgYXV0b2NvbXBsZXRlLgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAnaW5wdXRbaWQ9Ik5ld1VzZXJJRF9TZWFyY2giXScsICdjc3MnICk7CgogICAgICAgICMgQ2xpY2sgb24gJ0FkZCBwcm9qZWN0Jy4KICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCgiLy9idXR0b25bXEB2YWx1ZT0nQWRkJ11bXEB0eXBlPSdzdWJtaXQnXSIpLT5WZXJpZmllZENsaWNrKCk7CgogICAgICAgICMgQ2hlY2sgcHJvamVjdCBwYWdlIElEcy4KICAgICAgICBmb3IgbXkgJFByb2plY3RQYWdlSUQgKHF3KFByb2plY3QgUHJvamVjdERlc2NyaXB0aW9uIFByb2plY3RTdGF0dXMpKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiMkUHJvamVjdFBhZ2VJRCIsICdjc3MnICk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKICAgICAgICB9CgogICAgICAgICMgQ3JlYXRlIHRlc3QgcHJvamVjdC4KICAgICAgICBteSAkUHJvamVjdFRpdGxlICAgICAgID0gJ1Byb2plY3QgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJFByb2plY3REZXNjcmlwdGlvbiA9ICdTZWxlbml1bSB0ZXN0IHByb2plY3QnOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI1Byb2plY3QiLCAgICAgICAgICAgICdjc3MnICktPnNlbmRfa2V5cygkUHJvamVjdFRpdGxlKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNQcm9qZWN0RGVzY3JpcHRpb24iLCAnY3NzJyApLT5zZW5kX2tleXMoJFByb2plY3REZXNjcmlwdGlvbik7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYnV0dG9uW1xAdmFsdWU9J1N1Ym1pdCddW1xAdHlwZT0nc3VibWl0J10iKS0+VmVyaWZpZWRDbGljaygpOwoKICAgICAgICAjIFZlcmlmeSBjcmVhdGVkIHRlc3QgcHJvamVjdC4KICAgICAgICBmb3IgbXkgJFByb2plY3RWZXJpZnkgKCAkUHJvamVjdFRpdGxlLCAkUHJvamVjdERlc2NyaXB0aW9uICkgewogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkUHJvamVjdFZlcmlmeSApID4gLTEsCiAgICAgICAgICAgICAgICAiJFByb2plY3RWZXJpZnkgaXMgZm91bmQiLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBDbGljayBvbiAnQWRkIHRhc2snLgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2J1dHRvbltcQHZhbHVlPSdBZGQgdGFzayddW1xAdHlwZT0nc3VibWl0J10iKS0+VmVyaWZpZWRDbGljaygpOwoKICAgICAgICAjIENoZWNrIHRhc2sgcGFnZSBJRHMuCiAgICAgICAgZm9yIG15ICRUYXNrUGFnZUlEIChxdyhUYXNrIFRhc2tTdGF0dXMpKSB7CiAgICAgICAgICAgIG15ICRFbGVtZW50ID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjJFRhc2tQYWdlSUQiLCAnY3NzJyApOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZW5hYmxlZCgpOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZGlzcGxheWVkKCk7CiAgICAgICAgfQoKICAgICAgICAjIENyZWF0ZSB0ZXN0IHRhc2suCiAgICAgICAgbXkgJEFjdGlvblRpdGxlID0gJ1Rhc2sgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjVGFzayIsICdjc3MnICktPnNlbmRfa2V5cygkQWN0aW9uVGl0bGUpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2J1dHRvbltcQHZhbHVlPSdTdWJtaXQnXVtcQHR5cGU9J3N1Ym1pdCddIiktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBWZXJpZnkgY3JlYXRlZCB0ZXN0IHRhc2suCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkQWN0aW9uVGl0bGUgKSA+IC0xLAogICAgICAgICAgICAiJEFjdGlvblRpdGxlIGlzIGZvdW5kIiwKICAgICAgICApOwoKICAgICAgICAjIFRoaXMgY2hhbmdlIHRyaWdnZXJlZCBhIHBhZ2UgbG9hZCBvbiBhIG5ldyBwYWdlLgogICAgICAgICRTZWxlbml1bS0+ZXhlY3V0ZV9zY3JpcHQoCiAgICAgICAgICAgICJcJCgnI05ld1VzZXJJRCcpLnZhbCgnJFRlc3RVc2VySUQnKS50cmlnZ2VyKCdyZWRyYXcuSW5wdXRGaWVsZCcpLnRyaWdnZXIoJ2NoYW5nZScpOyIKICAgICAgICApOwoKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoCiAgICAgICAgICAgIEphdmFTY3JpcHQgPT4KICAgICAgICAgICAgICAgICdyZXR1cm4gdHlwZW9mKENvcmUpID09ICJvYmplY3QiICYmIHR5cGVvZihDb3JlLkFwcCkgPT0gIm9iamVjdCIgJiYgQ29yZS5BcHAuUGFnZUxvYWRDb21wbGV0ZTsnCiAgICAgICAgKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gInJldHVybiB0eXBlb2YoXCQpID09PSAnZnVuY3Rpb24nICYmIFwkKCcjRGVzY3JpcHRpb24nKS5sZW5ndGg7IiApOwoKICAgICAgICAjIENoZWNrIGVkaXQgdXNlciBwYWdlLgogICAgICAgIGZvciBteSAkRWRpdFVzZXJQYWdlSUQgKAogICAgICAgICAgICBxdyhEZXNjcmlwdGlvbiBTaG93T3ZlcnRpbWUgQ3JlYXRlUHJvamVjdCBBbGxvd1NraXAgQ2FsZW5kYXIgRGF0ZVN0YXJ0LTEgRGF0ZUVuZC0xIExlYXZlRGF5cy0xCiAgICAgICAgICAgIFdlZWtseUhvdXJzLTEgT3ZlcnRpbWUtMSBQZXJpb2RTdGF0dXMtMSkKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJEVsZW1lbnQgPSAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiMkRWRpdFVzZXJQYWdlSUQiLCAnY3NzJyApOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZW5hYmxlZCgpOwogICAgICAgICAgICAkRWxlbWVudC0+aXNfZGlzcGxheWVkKCk7CiAgICAgICAgfQoKICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KCJcJCgnI0xlYXZlRGF5cy0xJykudmFsKCcnKTsiKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNMZWF2ZURheXMtMSIsICdjc3MnICktPnNlbmRfa2V5cygwKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNEYXRlU3RhcnQtMSIsICdjc3MnICktPmNsaWNrKCk7CgogICAgICAgICMgVmVyaWZ5IGxlYXZlIGRheXMgY29ycmVjdCBmb3JtYXQuCiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNMZWF2ZURheXMtMSIsICdjc3MnICktPmdldF92YWx1ZSgpLAogICAgICAgICAgICAnMC4wMCcsCiAgICAgICAgICAgICJMZWF2ZSBEYXlzIGNvcnJlY3QgZm9ybWF0IiwKICAgICAgICApOwoKICAgICAgICAkU2VsZW5pdW0tPmV4ZWN1dGVfc2NyaXB0KCJcJCgnI0xlYXZlRGF5cy0xJykudmFsKCcnKTsiKTsKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNMZWF2ZURheXMtMSIsICdjc3MnICktPnNlbmRfa2V5cyg0MCk7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjRGF0ZVN0YXJ0LTEiLCAnY3NzJyApLT5jbGljaygpOwoKICAgICAgICAjIFZlcmlmeSBsZWF2ZSBkYXlzIGNvcnJlY3QgZm9ybWF0LgogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjTGVhdmVEYXlzLTEiLCAnY3NzJyApLT5nZXRfdmFsdWUoKSwKICAgICAgICAgICAgJzQwLjAwJywKICAgICAgICAgICAgIkxlYXZlIERheXMgY29ycmVjdCBmb3JtYXQiLAogICAgICAgICk7CgogICAgICAgICMgQ2xpY2sgJ0FkZCB0aW1lIHBlcmlvZCcuCiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYnV0dG9uW1xAdmFsdWU9J0FkZCB0aW1lIHBlcmlvZCddW1xAdHlwZT0nc3VibWl0J10iKS0+VmVyaWZpZWRDbGljaygpOwoKICAgICAgICAjIENoZWNrIGZvciBuZXcgYWRkZWQgdGltZSBwZXJpb2QgZmllbGRzLgogICAgICAgIGZvciBteSAkTmV3VGltZVBlcmlvZElEIChxdyhEYXRlU3RhcnQtMiBEYXRlRW5kLTIgTGVhdmVEYXlzLTIgV2Vla2x5SG91cnMtMiBPdmVydGltZS0yIFBlcmlvZFN0YXR1cy0yKSkKICAgICAgICB7CiAgICAgICAgICAgIG15ICRFbGVtZW50ID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjJE5ld1RpbWVQZXJpb2RJRCIsICdjc3MnICk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19lbmFibGVkKCk7CiAgICAgICAgICAgICRFbGVtZW50LT5pc19kaXNwbGF5ZWQoKTsKICAgICAgICB9CgogICAgICAgICMgRWRpdCB1c2VyIHNldHRpbmcuCiAgICAgICAgbXkgJFVzZXJEZXNjcmlwdGlvbiA9ICdTZWxlbml1bSB0ZXN0IHVzZXIgc2V0dGluZyc7CiAgICAgICAgJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjRGVzY3JpcHRpb24iLCAnY3NzJyApLT5jbGVhcigpOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0Rlc2NyaXB0aW9uIiwgJ2NzcycgKS0+c2VuZF9rZXlzKCRVc2VyRGVzY3JpcHRpb24pOwoKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNTaG93T3ZlcnRpbWUiLCAnY3NzJyApLT5jbGljaygpOwogICAgICAgICRTZWxlbml1bS0+V2FpdEZvciggSmF2YVNjcmlwdCA9PiAicmV0dXJuIFwkKCcjU2hvd092ZXJ0aW1lOmNoZWNrZWQnKS5sZW5ndGg7IiApOwoKICAgICAgICAkU2VsZW5pdW0tPmZpbmRfZWxlbWVudCggIiNDcmVhdGVQcm9qZWN0IiwgJ2NzcycgKS0+Y2xpY2soKTsKICAgICAgICAkU2VsZW5pdW0tPldhaXRGb3IoIEphdmFTY3JpcHQgPT4gInJldHVybiBcJCgnI0NyZWF0ZVByb2plY3Q6Y2hlY2tlZCcpLmxlbmd0aDsiICk7CgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAiI0FsbG93U2tpcCIsICdjc3MnICktPmNsaWNrKCk7CiAgICAgICAgJFNlbGVuaXVtLT5XYWl0Rm9yKCBKYXZhU2NyaXB0ID0+ICJyZXR1cm4gXCQoJyNBbGxvd1NraXA6Y2hlY2tlZCcpLmxlbmd0aDsiICk7CgogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCIvL2J1dHRvbltcQHZhbHVlPSdTdWJtaXQnXVtcQHR5cGU9J3N1Ym1pdCddIiktPlZlcmlmaWVkQ2xpY2soKTsKCiAgICAgICAgIyBWZXJpZnkgdGVzdCB1c2VyIHNldHRpbmcuCiAgICAgICAgbXkgJFNldHRpbmdVc2VyID0gIiRUZXN0VXNlciAkVGVzdFVzZXIgKCRUZXN0VXNlcikiOwogICAgICAgIGZvciBteSAkU2V0dGluZ1VzZXJWZXJpZnkgKCAkU2V0dGluZ1VzZXIsICRVc2VyRGVzY3JpcHRpb24gKSB7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgaW5kZXgoICRTZWxlbml1bS0+Z2V0X3BhZ2Vfc291cmNlKCksICRTZXR0aW5nVXNlclZlcmlmeSApID4gLTEsCiAgICAgICAgICAgICAgICAiJFNldHRpbmdVc2VyVmVyaWZ5IGlzIGZvdW5kIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICAgICAjIEdldCBEQiBjbGVhbi11cCBkYXRhLgogICAgICAgIG15IEBEQkNsZWFuRGF0YSA9ICgKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUXVvdGVkICA9PiAkUHJvamVjdFRpdGxlLAogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3Byb2plY3QnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAncHJvamVjdCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICcnLAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiJFByb2plY3RUaXRsZSBpcyBkZWxldGVkIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUXVvdGVkICA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfYWN0aW9uJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ2FjdGlvbicsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICcnLAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiJEFjdGlvblRpdGxlIGlzIGRlbGV0ZWQiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdXNlcicsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgc2V0dGluZyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ191c2VyX3BlcmlvZCcsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgcGVyaW9kIiwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIENsZWFuIHN5c3RlbSBmcm9tIHRlc3QgY3JlYXRlZCBkYXRhLgogICAgICAgIGZvciBteSAkRGVsZXRlIChAREJDbGVhbkRhdGEpIHsKICAgICAgICAgICAgaWYgKCAkRGVsZXRlLT57UXVvdGVkfSApIHsKICAgICAgICAgICAgICAgICREZWxldGUtPntCaW5kfSA9ICREQk9iamVjdC0+UXVvdGUoICREZWxldGUtPntRdW90ZWR9ICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkREJPYmplY3QtPkRvKAogICAgICAgICAgICAgICAgU1FMICA9PiAiREVMRVRFIEZST00gJERlbGV0ZS0+e1RhYmxlfSBXSEVSRSAkRGVsZXRlLT57V2hlcmV9ID0gPyIsCiAgICAgICAgICAgICAgICBCaW5kID0+IFsgXCREZWxldGUtPntCaW5kfSBdLAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAgICAgJERlbGV0ZS0+e01lc3NhZ2V9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KKTsKCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7Cgp1c2UgdmFycyAocXcoJFNlbGYpKTsKCiMgZ2V0IHNlbGVuaXVtIG9iamVjdApteSAkU2VsZW5pdW0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OlNlbGVuaXVtJyk7CgokU2VsZW5pdW0tPlJ1blRlc3QoCiAgICBzdWIgewoKICAgICAgICAjIGdldCBoZWxwZXIgb2JqZWN0CiAgICAgICAgbXkgJEhlbHBlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CgogICAgICAgICMgZ2V0IG5lZWRlZCBvYmplY3QKICAgICAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAgICAgIyBzZXQgTWF4SW50ZXJ2YWxPZkluY29tcGxldGVEYXlzIFN5c0NvbmZpZyBvbiA1MCBkYXlzIGZvciB0ZXN0IHB1cnBvc2UKICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICBLZXkgICA9PiAnVGltZUFjY291bnRpbmc6Ok1heEludGVydmFsT2ZJbmNvbXBsZXRlRGF5cycsCiAgICAgICAgICAgIFZhbHVlID0+IDUwLAogICAgICAgICk7CgogICAgICAgICMgdXNlIGEgY2FsZW5kYXIgd2l0aCB0aGUgc2FtZSBidXNpbmVzcyBob3VycyBmb3IgZXZlcnkgZGF5IHNvIHRoYXQgdGhlIFVUIHJ1bnMgY29ycmVjdGx5CiAgICAgICAgIyBvbiBldmVyeSBkYXkgb2YgdGhlIHdlZWsgYW5kIG91dHNpZGUgdXN1YWwgYnVzaW5lc3MgaG91cnMuCiAgICAgICAgbXkgJVdlZWs7CiAgICAgICAgbXkgQERheXMgPSBxdyhTdW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQpOwogICAgICAgIGZvciBteSAkRGF5IChARGF5cykgewogICAgICAgICAgICAkV2Vla3skRGF5fSA9IFsgMCAuLiAyMyBdOwogICAgICAgIH0KCiAgICAgICAgJEhlbHBlci0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgS2V5ICAgPT4gJ1RpbWVXb3JraW5nSG91cnMnLAogICAgICAgICAgICBWYWx1ZSA9PiBcJVdlZWssCiAgICAgICAgKTsKCiAgICAgICAgIyBEaXNhYmxlIGRlZmF1bHQgVmFjYXRpb24gZGF5cy4KICAgICAgICAkSGVscGVyLT5Db25maWdTZXR0aW5nQ2hhbmdlKAogICAgICAgICAgICBLZXkgICA9PiAnVGltZVZhY2F0aW9uRGF5cycsCiAgICAgICAgICAgIFZhbHVlID0+IHt9LAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgdXNlciBhbmQgbG9naW4KICAgICAgICBteSAkVGVzdFVzZXJMb2dpbiA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKAogICAgICAgICAgICBHcm91cHMgPT4gWyAnYWRtaW4nLCAndXNlcnMnIF0sCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICMgZ2V0IHRlc3QgdXNlciBJRAogICAgICAgIG15ICRUZXN0VXNlcklEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxvb2t1cCgKICAgICAgICAgICAgVXNlckxvZ2luID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgICAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAgICAgIyBpbnNlcnQgdGVzdCB1c2VyIGludG8gYWNjb3VudCBzZXR0aW5nCiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgUGVyaW9kID0+ICcxJywKICAgICAgICApOwoKICAgICAgICBteSAkRGF0ZVRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKCdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnKTsKCiAgICAgICAgJERhdGVUaW1lT2JqZWN0LT5TdWJ0cmFjdCggRGF5cyA9PiA0MCApOwogICAgICAgIG15ICREYXRlVGltZVNldHRpbmdzU3RhcnQgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwogICAgICAgIG15ICRZZWFyU3RhcnQgICAgICAgICAgICAgPSAkRGF0ZVRpbWVTZXR0aW5nc1N0YXJ0LT57WWVhcn07CiAgICAgICAgbXkgJE1vbnRoU3RhcnQgICAgICAgICAgICA9ICREYXRlVGltZVNldHRpbmdzU3RhcnQtPntNb250aH07CiAgICAgICAgbXkgJERheVN0YXJ0ICAgICAgICAgICAgICA9ICREYXRlVGltZVNldHRpbmdzU3RhcnQtPntEYXl9OwoKICAgICAgICAkRGF0ZVRpbWVPYmplY3QtPkFkZCgKICAgICAgICAgICAgRGF5cyAgICA9PiA0MCwKICAgICAgICAgICAgU2Vjb25kcyA9PiAxCiAgICAgICAgKTsKICAgICAgICBteSAkRGF0ZVRpbWVTZXR0aW5ncyA9ICREYXRlVGltZU9iamVjdC0+R2V0KCk7CgogICAgICAgIG15ICRZZWFyQ3VycmVudCAgPSAkRGF0ZVRpbWVTZXR0aW5ncy0+e1llYXJ9OwogICAgICAgIG15ICRNb250aEN1cnJlbnQgPSAkRGF0ZVRpbWVTZXR0aW5ncy0+e01vbnRofTsKICAgICAgICBteSAkRGF5Q3VycmVudCAgID0gJERhdGVUaW1lU2V0dGluZ3MtPntEYXl9OwoKICAgICAgICAkRGF0ZVRpbWVPYmplY3QtPlN1YnRyYWN0KCBTZWNvbmRzID0+IDEgKTsKICAgICAgICAkRGF0ZVRpbWVPYmplY3QtPkFkZCggRGF5cyA9PiAxICk7CiAgICAgICAgbXkgJERhdGVUaW1lU2V0dGluZ3NFbmQgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwoKICAgICAgICBteSAkWWVhckVuZCAgPSAkRGF0ZVRpbWVTZXR0aW5nc0VuZC0+e1llYXJ9OwogICAgICAgIG15ICRNb250aEVuZCA9ICREYXRlVGltZVNldHRpbmdzRW5kLT57TW9udGh9OwogICAgICAgIG15ICREYXlFbmQgICA9ICREYXRlVGltZVNldHRpbmdzRW5kLT57RGF5fTsKCiAgICAgICAgIyB1cGRhdGUgdXNlciB0aW1lIGFjY291bnQgc2V0dGluZwogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzVXBkYXRlKAogICAgICAgICAgICBVc2VySUQgICAgICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICdTZWxlbml1bSB0ZXN0IGFjY291bnRpbmcgdXNlcicsCiAgICAgICAgICAgIENyZWF0ZVByb2plY3QgPT4gMSwKICAgICAgICAgICAgU2hvd092ZXJ0aW1lICA9PiAxLAogICAgICAgICAgICBQZXJpb2QgICAgICAgID0+IHsKICAgICAgICAgICAgICAgIDEgPT4gewogICAgICAgICAgICAgICAgICAgIERhdGVTdGFydCAgID0+ICIkWWVhclN0YXJ0LSRNb250aFN0YXJ0LSREYXlTdGFydCIsCiAgICAgICAgICAgICAgICAgICAgRGF0ZUVuZCAgICAgPT4gIiRZZWFyRW5kLSRNb250aEVuZC0kRGF5RW5kIiwKICAgICAgICAgICAgICAgICAgICBXZWVrbHlIb3VycyA9PiAnMzgnLAogICAgICAgICAgICAgICAgICAgIExlYXZlRGF5cyAgID0+ICcyNScsCiAgICAgICAgICAgICAgICAgICAgT3ZlcnRpbWUgICAgPT4gJzM4JywKICAgICAgICAgICAgICAgICAgICBVc2VyU3RhdHVzICA9PiAxLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IHByb2plY3QKICAgICAgICBteSAkUHJvamVjdFRpdGxlID0gJ1Byb2plY3QgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJFByb2plY3RJRCAgICA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICBQcm9qZWN0ICAgICAgICAgICAgPT4gJFByb2plY3RUaXRsZSwKICAgICAgICAgICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICdTZWxlbml1bSB0ZXN0IHByb2plY3QnLAogICAgICAgICAgICBQcm9qZWN0U3RhdHVzICAgICAgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IGFjdGlvbgogICAgICAgIG15ICRBY3Rpb25UaXRsZSA9ICdBY3Rpb24gJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgQWN0aW9uICAgICAgID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICAgICAgQWN0aW9uU3RhdHVzID0+IDEsCiAgICAgICAgKTsKICAgICAgICBteSAlQWN0aW9uRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uR2V0KAogICAgICAgICAgICBBY3Rpb24gPT4gJEFjdGlvblRpdGxlLAogICAgICAgICk7CiAgICAgICAgbXkgJEFjdGlvbklEID0gJEFjdGlvbkRhdGF7SUR9OwoKICAgICAgICAjIGFkZCB3b3JraW5nIHVuaXRzIGZvciB0ZXN0IHVzZXIKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0luc2VydCgKICAgICAgICAgICAgWWVhciAgICAgICAgID0+ICRZZWFyQ3VycmVudCwKICAgICAgICAgICAgTW9udGggICAgICAgID0+ICRNb250aEN1cnJlbnQsCiAgICAgICAgICAgIERheSAgICAgICAgICA9PiAkRGF5Q3VycmVudCwKICAgICAgICAgICAgTGVhdmVEYXkgICAgID0+IDEsCiAgICAgICAgICAgIFNpY2sgICAgICAgICA9PiAxLAogICAgICAgICAgICBPdmVydGltZSAgICAgPT4gMSwKICAgICAgICAgICAgV29ya2luZ1VuaXRzID0+IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBQcm9qZWN0SUQgPT4gJFByb2plY3RJRCwKICAgICAgICAgICAgICAgICAgICBBY3Rpb25JRCAgPT4gJEFjdGlvbklELAogICAgICAgICAgICAgICAgICAgIFJlbWFyayAgICA9PiAnU2VsZW5pdW0gdGVzdCByZW1hcmsnLAogICAgICAgICAgICAgICAgICAgIFBlcmlvZCAgICA9PiAnNScsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICBdLAogICAgICAgICAgICBVc2VySUQgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgKTsKCiAgICAgICAgIyBsb2cgaW4gdGVzdCB1c2VyCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHNjcmlwdCBhbGlhcwogICAgICAgIG15ICRTY3JpcHRBbGlhcyA9ICRDb25maWdPYmplY3QtPkdldCgnU2NyaXB0QWxpYXMnKTsKCiAgICAgICAgIyBuYXZpZ2F0ZSB0byBBZ2VudFRpbWVBY2NvdW50aW5nVmlldyBvZiB0ZXN0IGNyZWF0ZWQgd29yayB1bml0IGRheQogICAgICAgICRTZWxlbml1bS0+VmVyaWZpZWRHZXQoCiAgICAgICAgICAgICIke1NjcmlwdEFsaWFzfWluZGV4LnBsP0FjdGlvbj1BZ2VudFRpbWVBY2NvdW50aW5nVmlldztZZWFyPSRZZWFyQ3VycmVudDtNb250aD0kTW9udGhDdXJyZW50O0RheT0kRGF5Q3VycmVudDtVc2VySUQ9JFRlc3RVc2VySUQiCiAgICAgICAgKTsKCiAgICAgICAgIyBjaGVjayBwYWdlIGxheW91dAogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUiLCAgICAgICAgICAgICAnY3NzJyApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUgdGhlYWQgdHIgdGgiLCAnY3NzJyApOwogICAgICAgICRTZWxlbml1bS0+ZmluZF9lbGVtZW50KCAidGFibGUgdGJvZHkgdHIgdGQiLCAnY3NzJyApOwoKICAgICAgICAjIGNoZWNrIHRpbWUgYWNjb3VudGluZyB2aWV3IHBhZ2UgSURzCiAgICAgICAgZm9yIG15ICRJRCAocXcoTW9udGggRGF5IFllYXIgRGF5RGF0ZXBpY2tlckljb24gTmF2aWdhdGlvblNlbGVjdCBMZWF2ZURheSBTaWNrIE92ZXJ0aW1lKSkKICAgICAgICB7CiAgICAgICAgICAgIG15ICRFbGVtZW50ID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoICIjJElEIiwgJ2NzcycgKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2VuYWJsZWQoKTsKICAgICAgICAgICAgJEVsZW1lbnQtPmlzX2Rpc3BsYXllZCgpOwogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayBmb3IgdGVzdCBwcm9qZWN0IGFuZCBhY3Rpb24KICAgICAgICBmb3IgbXkgJENoZWNrICggJFByb2plY3RUaXRsZSwgJEFjdGlvblRpdGxlICkgewogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgIGluZGV4KCAkU2VsZW5pdW0tPmdldF9wYWdlX3NvdXJjZSgpLCAkQ2hlY2sgKSA+IC0xLAogICAgICAgICAgICAgICAgIiRDaGVjayBpcyBmb3VuZCIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGdldCBEQiBvYmplY3QKICAgICAgICBteSAkREJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6REInKTsKCiAgICAgICAgIyBnZXQgREIgY2xlYW4tdXAgZGF0YQogICAgICAgIG15IEBEQkNsZWFuRGF0YSA9ICgKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUXVvdGVkICA9PiAkUHJvamVjdFRpdGxlLAogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3Byb2plY3QnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAncHJvamVjdCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICcnLAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiJFByb2plY3RUaXRsZSBpcyBkZWxldGVkIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUXVvdGVkICA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfYWN0aW9uJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ2FjdGlvbicsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICcnLAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiJEFjdGlvblRpdGxlIGlzIGRlbGV0ZWQiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdGFibGUnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIGlzIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHRhYmxlIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3VzZXInLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIGlzIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHNldHRpbmciLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdXNlcl9wZXJpb2QnLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAndXNlcl9pZCcsCiAgICAgICAgICAgICAgICBCaW5kICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAiVGVzdCB1c2VyICRUZXN0VXNlcklEIGlzIHJlbW92ZWQgZnJvbSBhY2NvdW50aW5nIHBlcmlvZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjbGVhbiBzeXN0ZW0gZnJvbSB0ZXN0IGNyZWF0ZWQgZGF0YQogICAgICAgIGZvciBteSAkRGVsZXRlIChAREJDbGVhbkRhdGEpIHsKICAgICAgICAgICAgaWYgKCAkRGVsZXRlLT57UXVvdGVkfSApIHsKICAgICAgICAgICAgICAgICREZWxldGUtPntCaW5kfSA9ICREQk9iamVjdC0+UXVvdGUoICREZWxldGUtPntRdW90ZWR9ICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkREJPYmplY3QtPkRvKAogICAgICAgICAgICAgICAgU1FMICA9PiAiREVMRVRFIEZST00gJERlbGV0ZS0+e1RhYmxlfSBXSEVSRSAkRGVsZXRlLT57V2hlcmV9ID0gPyIsCiAgICAgICAgICAgICAgICBCaW5kID0+IFsgXCREZWxldGUtPntCaW5kfSBdLAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICRTdWNjZXNzLAogICAgICAgICAgICAgICAgJERlbGV0ZS0+e01lc3NhZ2V9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KKTsKCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7Cgp1c2UgdmFycyAocXcoJFNlbGYpKTsKCiMgZ2V0IHNlbGVuaXVtIG9iamVjdApteSAkU2VsZW5pdW0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OlNlbGVuaXVtJyk7CgokU2VsZW5pdW0tPlJ1blRlc3QoCiAgICBzdWIgewoKICAgICAgICAjIGdldCBoZWxwZXIgb2JqZWN0CiAgICAgICAgbXkgJEhlbHBlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CgogICAgICAgICMgdXNlIGEgY2FsZW5kYXIgd2l0aCB0aGUgc2FtZSBidXNpbmVzcyBob3VycyBmb3IgZXZlcnkgZGF5IHNvIHRoYXQgdGhlIFVUIHJ1bnMgY29ycmVjdGx5CiAgICAgICAgIyBvbiBldmVyeSBkYXkgb2YgdGhlIHdlZWsgYW5kIG91dHNpZGUgdXN1YWwgYnVzaW5lc3MgaG91cnMuCiAgICAgICAgbXkgJVdlZWs7CiAgICAgICAgbXkgQERheXMgPSBxdyhTdW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQpOwogICAgICAgIGZvciBteSAkRGF5IChARGF5cykgewogICAgICAgICAgICAkV2Vla3skRGF5fSA9IFsgMCAuLiAyMyBdOwogICAgICAgIH0KCiAgICAgICAgJEhlbHBlci0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgS2V5ICAgPT4gJ1RpbWVXb3JraW5nSG91cnMnLAogICAgICAgICAgICBWYWx1ZSA9PiBcJVdlZWssCiAgICAgICAgKTsKCiAgICAgICAgJEhlbHBlci0+Q29uZmlnU2V0dGluZ0NoYW5nZSgKICAgICAgICAgICAgS2V5ICAgPT4gJ1RpbWVXb3JraW5nSG91cnMnLAogICAgICAgICAgICBWYWx1ZSA9PiBcJVdlZWssCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgdGVzdCB1c2VyIGFuZCBsb2dpbgogICAgICAgIG15ICRUZXN0VXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICAgICAgICAgIEdyb3VwcyA9PiBbICdhZG1pbicsICd1c2VycycgXSwKICAgICAgICApIHx8IGRpZSAiRGlkIG5vdCBnZXQgdGVzdCB1c2VyIjsKCiAgICAgICAgIyBnZXQgdGVzdCB1c2VyIElECiAgICAgICAgbXkgJFRlc3RVc2VySUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTG9va3VwKAogICAgICAgICAgICBVc2VyTG9naW4gPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgdGltZSBhY2NvdW50aW5nIG9iamVjdAogICAgICAgIG15ICRUaW1lQWNjb3VudGluZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lQWNjb3VudGluZycpOwoKICAgICAgICAjIGluc2VydCB0ZXN0IHVzZXIgaW50byBhY2NvdW50IHNldHRpbmcKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPlVzZXJTZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgVXNlcklEID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICBQZXJpb2QgPT4gJzEnLAogICAgICAgICk7CgogICAgICAgIG15ICREYXRlVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpOwoKICAgICAgICAkRGF0ZVRpbWVPYmplY3QtPlN1YnRyYWN0KCBEYXlzID0+IDQwICk7CiAgICAgICAgbXkgJERhdGVUaW1lU2V0dGluZ3NTdGFydCA9ICREYXRlVGltZU9iamVjdC0+R2V0KCk7CiAgICAgICAgbXkgJFllYXJTdGFydCAgICAgICAgICAgICA9ICREYXRlVGltZVNldHRpbmdzU3RhcnQtPntZZWFyfTsKICAgICAgICBteSAkTW9udGhTdGFydCAgICAgICAgICAgID0gJERhdGVUaW1lU2V0dGluZ3NTdGFydC0+e01vbnRofTsKICAgICAgICBteSAkRGF5U3RhcnQgICAgICAgICAgICAgID0gJERhdGVUaW1lU2V0dGluZ3NTdGFydC0+e0RheX07CgogICAgICAgICREYXRlVGltZU9iamVjdC0+QWRkKAogICAgICAgICAgICBEYXlzICAgID0+IDQwLAogICAgICAgICAgICBTZWNvbmRzID0+IDEKICAgICAgICApOwogICAgICAgIG15ICREYXRlVGltZVNldHRpbmdzID0gJERhdGVUaW1lT2JqZWN0LT5HZXQoKTsKCiAgICAgICAgbXkgJFllYXJDdXJyZW50ICA9ICREYXRlVGltZVNldHRpbmdzLT57WWVhcn07CiAgICAgICAgbXkgJE1vbnRoQ3VycmVudCA9ICREYXRlVGltZVNldHRpbmdzLT57TW9udGh9OwogICAgICAgIG15ICREYXlDdXJyZW50ICAgPSAkRGF0ZVRpbWVTZXR0aW5ncy0+e0RheX07CgogICAgICAgICREYXRlVGltZU9iamVjdC0+U3VidHJhY3QoIFNlY29uZHMgPT4gMSApOwogICAgICAgICREYXRlVGltZU9iamVjdC0+QWRkKCBEYXlzID0+IDEgKTsKICAgICAgICBteSAkRGF0ZVRpbWVTZXR0aW5nc0VuZCA9ICREYXRlVGltZU9iamVjdC0+R2V0KCk7CgogICAgICAgIG15ICRZZWFyRW5kICA9ICREYXRlVGltZVNldHRpbmdzRW5kLT57WWVhcn07CiAgICAgICAgbXkgJE1vbnRoRW5kID0gJERhdGVUaW1lU2V0dGluZ3NFbmQtPntNb250aH07CiAgICAgICAgbXkgJERheUVuZCAgID0gJERhdGVUaW1lU2V0dGluZ3NFbmQtPntEYXl9OwoKICAgICAgICAjIHVwZGF0ZSB1c2VyIHRpbWUgYWNjb3VudCBzZXR0aW5nCiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NVcGRhdGUoCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgIERlc2NyaXB0aW9uICAgPT4gJ1NlbGVuaXVtIHRlc3QgYWNjb3VudGluZyB1c2VyJywKICAgICAgICAgICAgQ3JlYXRlUHJvamVjdCA9PiAxLAogICAgICAgICAgICBTaG93T3ZlcnRpbWUgID0+IDEsCiAgICAgICAgICAgIFBlcmlvZCAgICAgICAgPT4gewogICAgICAgICAgICAgICAgMSA9PiB7CiAgICAgICAgICAgICAgICAgICAgRGF0ZVN0YXJ0ICAgPT4gIiRZZWFyU3RhcnQtJE1vbnRoU3RhcnQtJERheVN0YXJ0IiwKICAgICAgICAgICAgICAgICAgICBEYXRlRW5kICAgICA9PiAiJFllYXJFbmQtJE1vbnRoRW5kLSREYXlFbmQiLAogICAgICAgICAgICAgICAgICAgIFdlZWtseUhvdXJzID0+ICczOCcsCiAgICAgICAgICAgICAgICAgICAgTGVhdmVEYXlzICAgPT4gJzI1JywKICAgICAgICAgICAgICAgICAgICBPdmVydGltZSAgICA9PiAnMzgnLAogICAgICAgICAgICAgICAgICAgIFVzZXJTdGF0dXMgID0+IDEsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgcHJvamVjdAogICAgICAgIG15ICRQcm9qZWN0VGl0bGUgPSAnUHJvamVjdCAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICBteSAkUHJvamVjdElEICAgID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Qcm9qZWN0U2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIFByb2plY3QgICAgICAgICAgICA9PiAkUHJvamVjdFRpdGxlLAogICAgICAgICAgICBQcm9qZWN0RGVzY3JpcHRpb24gPT4gJ1NlbGVuaXVtIHRlc3QgcHJvamVjdCcsCiAgICAgICAgICAgIFByb2plY3RTdGF0dXMgICAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgYWN0aW9uCiAgICAgICAgbXkgJEFjdGlvblRpdGxlID0gJ0FjdGlvbiAnIC4gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPkFjdGlvblNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICBBY3Rpb24gICAgICAgPT4gJEFjdGlvblRpdGxlLAogICAgICAgICAgICBBY3Rpb25TdGF0dXMgPT4gMSwKICAgICAgICApOwogICAgICAgIG15ICVBY3Rpb25EYXRhID0gJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25HZXQoCiAgICAgICAgICAgIEFjdGlvbiA9PiAkQWN0aW9uVGl0bGUsCiAgICAgICAgKTsKICAgICAgICBteSAkQWN0aW9uSUQgPSAkQWN0aW9uRGF0YXtJRH07CgogICAgICAgICMgYWRkIHdvcmtpbmcgdW5pdHMgZm9yIHRlc3QgdXNlcgogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+V29ya2luZ1VuaXRzSW5zZXJ0KAogICAgICAgICAgICBZZWFyICAgICAgICAgPT4gJFllYXJDdXJyZW50LAogICAgICAgICAgICBNb250aCAgICAgICAgPT4gJE1vbnRoQ3VycmVudCwKICAgICAgICAgICAgRGF5ICAgICAgICAgID0+ICREYXlDdXJyZW50LAogICAgICAgICAgICBMZWF2ZURheSAgICAgPT4gMSwKICAgICAgICAgICAgU2ljayAgICAgICAgID0+IDEsCiAgICAgICAgICAgIE92ZXJ0aW1lICAgICA9PiAxLAogICAgICAgICAgICBXb3JraW5nVW5pdHMgPT4gWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFByb2plY3RJRCA9PiAkUHJvamVjdElELAogICAgICAgICAgICAgICAgICAgIEFjdGlvbklEICA9PiAkQWN0aW9uSUQsCiAgICAgICAgICAgICAgICAgICAgUmVtYXJrICAgID0+ICdTZWxlbml1bSB0ZXN0IHJlbWFyaycsCiAgICAgICAgICAgICAgICAgICAgUGVyaW9kICAgID0+ICc1JywKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIFVzZXJJRCA9PiAkVGVzdFVzZXJJRCwKICAgICAgICApOwoKICAgICAgICAjIGxvZyBpbiB0ZXN0IHVzZXIKICAgICAgICAkU2VsZW5pdW0tPkxvZ2luKAogICAgICAgICAgICBUeXBlICAgICA9PiAnQWdlbnQnLAogICAgICAgICAgICBVc2VyICAgICA9PiAkVGVzdFVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgKTsKCiAgICAgICAgIyB2ZXJpZnkgdGhlcmUgaXMgbm90aWZpY2F0aW9uIG1lc3NhZ2UKICAgICAgICBteSAkTm90aWZpY2F0aW9uTWVzc2FnZSA9ICdQbGVhc2UgaW5zZXJ0IHlvdXIgd29ya2luZyBob3VycyEnOwogICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICBpbmRleCggJFNlbGVuaXVtLT5nZXRfcGFnZV9zb3VyY2UoKSwgJE5vdGlmaWNhdGlvbk1lc3NhZ2UgKSA+IC0xLAogICAgICAgICAgICAiJE5vdGlmaWNhdGlvbk1lc3NhZ2UgaXMgZm91bmQiLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IERCIG9iamVjdAogICAgICAgIG15ICREQk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpOwoKICAgICAgICAjIGdldCBEQiBjbGVhbi11cCBkYXRhCiAgICAgICAgbXkgQERCQ2xlYW5EYXRhID0gKAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBRdW90ZWQgID0+ICRQcm9qZWN0VGl0bGUsCiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfcHJvamVjdCcsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICdwcm9qZWN0JywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJycsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICIkUHJvamVjdFRpdGxlIGlzIGRlbGV0ZWQiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBRdW90ZWQgID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ19hY3Rpb24nLAogICAgICAgICAgICAgICAgV2hlcmUgICA9PiAnYWN0aW9uJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJycsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICIkQWN0aW9uVGl0bGUgaXMgZGVsZXRlZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ190YWJsZScsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgdGFibGUiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBUYWJsZSAgID0+ICd0aW1lX2FjY291bnRpbmdfdXNlcicsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgc2V0dGluZyIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ191c2VyX3BlcmlvZCcsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICd1c2VyX2lkJywKICAgICAgICAgICAgICAgIEJpbmQgICAgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICJUZXN0IHVzZXIgJFRlc3RVc2VySUQgaXMgcmVtb3ZlZCBmcm9tIGFjY291bnRpbmcgcGVyaW9kIiwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGNsZWFuIHN5c3RlbSBmcm9tIHRlc3QgY3JlYXRlZCBkYXRhCiAgICAgICAgZm9yIG15ICREZWxldGUgKEBEQkNsZWFuRGF0YSkgewogICAgICAgICAgICBpZiAoICREZWxldGUtPntRdW90ZWR9ICkgewogICAgICAgICAgICAgICAgJERlbGV0ZS0+e0JpbmR9ID0gJERCT2JqZWN0LT5RdW90ZSggJERlbGV0ZS0+e1F1b3RlZH0gKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICREQk9iamVjdC0+RG8oCiAgICAgICAgICAgICAgICBTUUwgID0+ICJERUxFVEUgRlJPTSAkRGVsZXRlLT57VGFibGV9IFdIRVJFICREZWxldGUtPntXaGVyZX0gPSA/IiwKICAgICAgICAgICAgICAgIEJpbmQgPT4gWyBcJERlbGV0ZS0+e0JpbmR9IF0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTZWxmLT5UcnVlKAogICAgICAgICAgICAgICAgJFN1Y2Nlc3MsCiAgICAgICAgICAgICAgICAkRGVsZXRlLT57TWVzc2FnZX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQopOwoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7Cgp1c2UgdmFycyAocXcoJFNlbGYpKTsKCm15ICRTZWxlbml1bSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6U2VsZW5pdW0nKTsKCiRTZWxlbml1bS0+UnVuVGVzdCgKICAgIHN1YiB7CgogICAgICAgIG15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKICAgICAgICAjIHVzZSBhIGNhbGVuZGFyIHdpdGggdGhlIHNhbWUgYnVzaW5lc3MgaG91cnMgZm9yIGV2ZXJ5IGRheSBzbyB0aGF0IHRoZSBVVCBydW5zIGNvcnJlY3RseQogICAgICAgICMgb24gZXZlcnkgZGF5IG9mIHRoZSB3ZWVrIGFuZCBvdXRzaWRlIHVzdWFsIGJ1c2luZXNzIGhvdXJzLgogICAgICAgIG15ICVXZWVrOwogICAgICAgIG15IEBEYXlzID0gcXcoU3VuIE1vbiBUdWUgV2VkIFRodSBGcmkgU2F0KTsKICAgICAgICBmb3IgbXkgJERheSAoQERheXMpIHsKICAgICAgICAgICAgJFdlZWt7JERheX0gPSBbIDAgLi4gMjMgXTsKICAgICAgICB9CgogICAgICAgICRIZWxwZXItPkNvbmZpZ1NldHRpbmdDaGFuZ2UoCiAgICAgICAgICAgIEtleSAgID0+ICdUaW1lV29ya2luZ0hvdXJzJywKICAgICAgICAgICAgVmFsdWUgPT4gXCVXZWVrLAogICAgICAgICk7CgogICAgICAgICMgY3JlYXRlIHRlc3QgdXNlciBhbmQgbG9naW4KICAgICAgICBteSAkVGVzdFVzZXJMb2dpbiA9ICRIZWxwZXItPlRlc3RVc2VyQ3JlYXRlKAogICAgICAgICAgICBHcm91cHMgPT4gWyAnYWRtaW4nLCAndXNlcnMnIF0sCiAgICAgICAgKSB8fCBkaWUgIkRpZCBub3QgZ2V0IHRlc3QgdXNlciI7CgogICAgICAgICMgZ2V0IHRlc3QgdXNlciBJRAogICAgICAgIG15ICRUZXN0VXNlcklEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxvb2t1cCgKICAgICAgICAgICAgVXNlckxvZ2luID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHRpbWUgYWNjb3VudGluZyBvYmplY3QKICAgICAgICBteSAkVGltZUFjY291bnRpbmdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZUFjY291bnRpbmcnKTsKCiAgICAgICAgIyBpbnNlcnQgdGVzdCB1c2VyIGludG8gYWNjb3VudCBzZXR0aW5nCiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5Vc2VyU2V0dGluZ3NJbnNlcnQoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgUGVyaW9kID0+ICcxJywKICAgICAgICApOwoKICAgICAgICBteSAkRGF0ZVRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKCdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnKTsKCiAgICAgICAgJERhdGVUaW1lT2JqZWN0LT5TdWJ0cmFjdCggRGF5cyA9PiA0MCApOwogICAgICAgIG15ICREYXRlVGltZVNldHRpbmdzU3RhcnQgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwogICAgICAgIG15ICRZZWFyU3RhcnQgICAgICAgICAgICAgPSAkRGF0ZVRpbWVTZXR0aW5nc1N0YXJ0LT57WWVhcn07CiAgICAgICAgbXkgJE1vbnRoU3RhcnQgICAgICAgICAgICA9ICREYXRlVGltZVNldHRpbmdzU3RhcnQtPntNb250aH07CiAgICAgICAgbXkgJERheVN0YXJ0ICAgICAgICAgICAgICA9ICREYXRlVGltZVNldHRpbmdzU3RhcnQtPntEYXl9OwoKICAgICAgICAkRGF0ZVRpbWVPYmplY3QtPkFkZCgKICAgICAgICAgICAgRGF5cyAgICA9PiA0MCwKICAgICAgICAgICAgU2Vjb25kcyA9PiAxCiAgICAgICAgKTsKICAgICAgICBteSAkRGF0ZVRpbWVTZXR0aW5ncyA9ICREYXRlVGltZU9iamVjdC0+R2V0KCk7CgogICAgICAgIG15ICRZZWFyQ3VycmVudCAgPSAkRGF0ZVRpbWVTZXR0aW5ncy0+e1llYXJ9OwogICAgICAgIG15ICRNb250aEN1cnJlbnQgPSAkRGF0ZVRpbWVTZXR0aW5ncy0+e01vbnRofTsKICAgICAgICBteSAkRGF5Q3VycmVudCAgID0gJERhdGVUaW1lU2V0dGluZ3MtPntEYXl9OwoKICAgICAgICAkRGF0ZVRpbWVPYmplY3QtPlN1YnRyYWN0KCBTZWNvbmRzID0+IDEgKTsKICAgICAgICAkRGF0ZVRpbWVPYmplY3QtPkFkZCggRGF5cyA9PiAxICk7CiAgICAgICAgbXkgJERhdGVUaW1lU2V0dGluZ3NFbmQgPSAkRGF0ZVRpbWVPYmplY3QtPkdldCgpOwoKICAgICAgICBteSAkWWVhckVuZCAgPSAkRGF0ZVRpbWVTZXR0aW5nc0VuZC0+e1llYXJ9OwogICAgICAgIG15ICRNb250aEVuZCA9ICREYXRlVGltZVNldHRpbmdzRW5kLT57TW9udGh9OwogICAgICAgIG15ICREYXlFbmQgICA9ICREYXRlVGltZVNldHRpbmdzRW5kLT57RGF5fTsKCiAgICAgICAgIyB1cGRhdGUgdXNlciB0aW1lIGFjY291bnQgc2V0dGluZwogICAgICAgICRUaW1lQWNjb3VudGluZ09iamVjdC0+VXNlclNldHRpbmdzVXBkYXRlKAogICAgICAgICAgICBVc2VySUQgICAgICAgID0+ICRUZXN0VXNlcklELAogICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+ICdTZWxlbml1bSB0ZXN0IGFjY291bnRpbmcgdXNlcicsCiAgICAgICAgICAgIENyZWF0ZVByb2plY3QgPT4gMSwKICAgICAgICAgICAgU2hvd092ZXJ0aW1lICA9PiAxLAogICAgICAgICAgICBQZXJpb2QgICAgICAgID0+IHsKICAgICAgICAgICAgICAgIDEgPT4gewogICAgICAgICAgICAgICAgICAgIERhdGVTdGFydCAgID0+ICIkWWVhclN0YXJ0LSRNb250aFN0YXJ0LSREYXlTdGFydCIsCiAgICAgICAgICAgICAgICAgICAgRGF0ZUVuZCAgICAgPT4gIiRZZWFyRW5kLSRNb250aEVuZC0kRGF5RW5kIiwKICAgICAgICAgICAgICAgICAgICBXZWVrbHlIb3VycyA9PiAnMzgnLAogICAgICAgICAgICAgICAgICAgIExlYXZlRGF5cyAgID0+ICcyNScsCiAgICAgICAgICAgICAgICAgICAgT3ZlcnRpbWUgICAgPT4gJzM4JywKICAgICAgICAgICAgICAgICAgICBVc2VyU3RhdHVzICA9PiAxLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IHByb2plY3QKICAgICAgICBteSAkUHJvamVjdFRpdGxlID0gJ1Byb2plY3QgJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgbXkgJFByb2plY3RJRCAgICA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+UHJvamVjdFNldHRpbmdzSW5zZXJ0KAogICAgICAgICAgICBQcm9qZWN0ICAgICAgICAgICAgPT4gJFByb2plY3RUaXRsZSwKICAgICAgICAgICAgUHJvamVjdERlc2NyaXB0aW9uID0+ICdTZWxlbml1bSB0ZXN0IHByb2plY3QnLAogICAgICAgICAgICBQcm9qZWN0U3RhdHVzICAgICAgPT4gMSwKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSB0ZXN0IGFjdGlvbgogICAgICAgIG15ICRBY3Rpb25UaXRsZSA9ICdBY3Rpb24gJyAuICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CiAgICAgICAgJFRpbWVBY2NvdW50aW5nT2JqZWN0LT5BY3Rpb25TZXR0aW5nc0luc2VydCgKICAgICAgICAgICAgQWN0aW9uICAgICAgID0+ICRBY3Rpb25UaXRsZSwKICAgICAgICAgICAgQWN0aW9uU3RhdHVzID0+IDEsCiAgICAgICAgKTsKICAgICAgICBteSAlQWN0aW9uRGF0YSA9ICRUaW1lQWNjb3VudGluZ09iamVjdC0+QWN0aW9uR2V0KAogICAgICAgICAgICBBY3Rpb24gPT4gJEFjdGlvblRpdGxlLAogICAgICAgICk7CiAgICAgICAgbXkgJEFjdGlvbklEID0gJEFjdGlvbkRhdGF7SUR9OwoKICAgICAgICAjIGFkZCB3b3JraW5nIHVuaXRzIGZvciB0ZXN0IHVzZXIKICAgICAgICAkVGltZUFjY291bnRpbmdPYmplY3QtPldvcmtpbmdVbml0c0luc2VydCgKICAgICAgICAgICAgWWVhciAgICAgICAgID0+ICRZZWFyQ3VycmVudCwKICAgICAgICAgICAgTW9udGggICAgICAgID0+ICRNb250aEN1cnJlbnQsCiAgICAgICAgICAgIERheSAgICAgICAgICA9PiAkRGF5Q3VycmVudCwKICAgICAgICAgICAgTGVhdmVEYXkgICAgID0+IDEsCiAgICAgICAgICAgIFNpY2sgICAgICAgICA9PiAxLAogICAgICAgICAgICBPdmVydGltZSAgICAgPT4gMSwKICAgICAgICAgICAgV29ya2luZ1VuaXRzID0+IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBQcm9qZWN0SUQgPT4gJFByb2plY3RJRCwKICAgICAgICAgICAgICAgICAgICBBY3Rpb25JRCAgPT4gJEFjdGlvbklELAogICAgICAgICAgICAgICAgICAgIFJlbWFyayAgICA9PiAnU2VsZW5pdW0gdGVzdCByZW1hcmsnLAogICAgICAgICAgICAgICAgICAgIFBlcmlvZCAgICA9PiAnNScsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICBdLAogICAgICAgICAgICBVc2VySUQgPT4gJFRlc3RVc2VySUQsCiAgICAgICAgKTsKCiAgICAgICAgIyBsb2cgaW4gdGVzdCB1c2VyCiAgICAgICAgJFNlbGVuaXVtLT5Mb2dpbigKICAgICAgICAgICAgVHlwZSAgICAgPT4gJ0FnZW50JywKICAgICAgICAgICAgVXNlciAgICAgPT4gJFRlc3RVc2VyTG9naW4sCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRUZXN0VXNlckxvZ2luLAogICAgICAgICk7CgogICAgICAgICMgdmVyaWZ5IHRoZXJlIGlzIHRvb2wgYmFyIGZvciBpbmNvbXBsZXRlIGRheXMKICAgICAgICBteSAkVG9vbEJhckluY29tcGxldGVEYXlzID0gJFNlbGVuaXVtLT5maW5kX2VsZW1lbnQoIi8vYVtjb250YWlucyhcQHRpdGxlLCBcJ0luY29tcGxldGUgd29ya2luZyBkYXlzOicpXSIpOwogICAgICAgICRUb29sQmFySW5jb21wbGV0ZURheXMtPmlzX2VuYWJsZWQoKTsKICAgICAgICAkVG9vbEJhckluY29tcGxldGVEYXlzLT5pc19kaXNwbGF5ZWQoKTsKCiAgICAgICAgIyBnZXQgREIgb2JqZWN0CiAgICAgICAgbXkgJERCT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkRCJyk7CgogICAgICAgICMgZ2V0IERCIGNsZWFuLXVwIGRhdGEKICAgICAgICBteSBAREJDbGVhbkRhdGEgPSAoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFF1b3RlZCAgPT4gJFByb2plY3RUaXRsZSwKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ19wcm9qZWN0JywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3Byb2plY3QnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIiRQcm9qZWN0VGl0bGUgaXMgZGVsZXRlZCIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFF1b3RlZCAgPT4gJEFjdGlvblRpdGxlLAogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX2FjdGlvbicsCiAgICAgICAgICAgICAgICBXaGVyZSAgID0+ICdhY3Rpb24nLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAnJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIiRBY3Rpb25UaXRsZSBpcyBkZWxldGVkIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3RhYmxlJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCBpcyByZW1vdmVkIGZyb20gYWNjb3VudGluZyB0YWJsZSIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRhYmxlICAgPT4gJ3RpbWVfYWNjb3VudGluZ191c2VyJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCBpcyByZW1vdmVkIGZyb20gYWNjb3VudGluZyBzZXR0aW5nIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGFibGUgICA9PiAndGltZV9hY2NvdW50aW5nX3VzZXJfcGVyaW9kJywKICAgICAgICAgICAgICAgIFdoZXJlICAgPT4gJ3VzZXJfaWQnLAogICAgICAgICAgICAgICAgQmluZCAgICA9PiAkVGVzdFVzZXJJRCwKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gIlRlc3QgdXNlciAkVGVzdFVzZXJJRCBpcyByZW1vdmVkIGZyb20gYWNjb3VudGluZyBwZXJpb2QiLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgY2xlYW4gc3lzdGVtIGZyb20gdGVzdCBjcmVhdGVkIGRhdGEKICAgICAgICBmb3IgbXkgJERlbGV0ZSAoQERCQ2xlYW5EYXRhKSB7CiAgICAgICAgICAgIGlmICggJERlbGV0ZS0+e1F1b3RlZH0gKSB7CiAgICAgICAgICAgICAgICAkRGVsZXRlLT57QmluZH0gPSAkREJPYmplY3QtPlF1b3RlKCAkRGVsZXRlLT57UXVvdGVkfSApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJERCT2JqZWN0LT5EbygKICAgICAgICAgICAgICAgIFNRTCAgPT4gIkRFTEVURSBGUk9NICREZWxldGUtPntUYWJsZX0gV0hFUkUgJERlbGV0ZS0+e1doZXJlfSA9ID8iLAogICAgICAgICAgICAgICAgQmluZCA9PiBbIFwkRGVsZXRlLT57QmluZH0gXSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkU3VjY2VzcywKICAgICAgICAgICAgICAgICREZWxldGUtPntNZXNzYWdlfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9Cik7CgoxOwo=
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMjAgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KLy8gLS0KLy8gVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKLy8gdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgovLyAtLQoKInVzZSBzdHJpY3QiOwoKdmFyIFRpbWVBY2NvdW50aW5nID0gVGltZUFjY291bnRpbmcgfHwge307CgovKioKICogQG5hbWVzcGFjZSBUaW1lQWNjb3VudGluZy5BZ2VudAogKiBAYXV0aG9yIE9UUlMgQUcKICogQGRlc2NyaXB0aW9uCiAqICAgICAgVGhpcyBuYW1lc3BhY2UgY29udGFpbnMgdGhlIHNwZWNpYWwgbW9kdWxlIGZ1bmN0aW9ucyBmb3IgVGltZUFjY291bnRpbmcuCiAqLwpUaW1lQWNjb3VudGluZy5BZ2VudCA9IChmdW5jdGlvbiAoVGFyZ2V0TlMpIHsKCiAgICBUYXJnZXROUy5Jbml0ID0gZnVuY3Rpb24gKCkgewoKICAgICAgICBDb3JlLlVJLlRhYmxlLkluaXRUYWJsZUZpbHRlcigkKCcuRmlsdGVyQm94JyksICQoJy5EYXRhVGFibGUnKSk7CgogICAgICAgIFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3Jkcy5NYXNzRW50cnlJbml0KCk7CgogICAgICAgICQoJyNOZXdVc2VySUQnKS5vbignY2hhbmdlJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICQodGhpcykuY2xvc2VzdCgnZm9ybScpLnN1Ym1pdCgpOwogICAgICAgIH0pOwoKICAgICAgICAkKCcjQWRkUGVyaW9kJykub2ZmKCdjbGljaycpLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2YXIgJEZvcm0gPSAkKHRoaXMpLmNsb3Nlc3QoJ2Zvcm0nKTsKICAgICAgICAgICAgJCgnaW5wdXRbbmFtZT0iQWRkUGVyaW9kIl0nLCAkRm9ybSkudmFsKDEpOwogICAgICAgIH0pOwoKICAgICAgICAkKCcjU3VibWl0VXNlckRhdGEnKS5vZmYoJ2NsaWNrJykub24oJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHZhciAkRm9ybSA9ICQodGhpcykuY2xvc2VzdCgnZm9ybScpOwogICAgICAgICAgICAkKCdpbnB1dFtuYW1lPSJTdWJtaXRVc2VyRGF0YSJdJywgJEZvcm0pLnZhbCgxKTsKICAgICAgICB9KTsKCiAgICAgICAgJCgnI05hdmlnYXRpb25TZWxlY3QnKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICQoJyNEYXRlU2VsZWN0aW9uRm9ybScpLnN1Ym1pdCgpOwogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfSk7CgogICAgICAgICQoJyNJbmNvbXBsZXRlV29ya2luZ0RheXNMaXN0Jykub2ZmKCdjaGFuZ2UuSW5jb21wbGV0ZVdvcmtpbmdEYXlzJykub24oJ2NoYW5nZS5JbmNvbXBsZXRlV29ya2luZ0RheXMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBEYXRlID0gJCh0aGlzKS52YWwoKS5zcGxpdCgnLScpOwogICAgICAgICAgICBpZiAoRGF0ZVswXSAmJiBEYXRlWzFdICYmIERhdGVbMl0pIHsKICAgICAgICAgICAgICAgIGxvY2F0aW9uLmhyZWYgPSBDb3JlLkNvbmZpZy5HZXQoJ0Jhc2VsaW5rJykgKyAiQWN0aW9uPSIgKyBDb3JlLkNvbmZpZy5HZXQoJ0FjdGlvbicpICsgIjtZZWFyPSIgKyBEYXRlWzBdICsgIjtNb250aD0iICsgRGF0ZVsxXSArICI7RGF5PSIgKyBEYXRlWzJdOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CgogICAgICAgIFRpbWVBY2NvdW50aW5nLkFnZW50LkNvbmZpcm1hdGlvbkRpYWxvZy5CaW5kQ29uZmlybWF0aW9uRGlhbG9nKHsKICAgICAgICAgICAgRWxlbWVudElEOiAgICAgICAgICAgICAgICAgICdEZWxldGVUaW1lQWNjb3VudGluZ0VudHJ5JywKICAgICAgICAgICAgRWxlbWVudFNlbGVjdG9yOiAgICAgICAgICAgICcjRGVsZXRlVGltZUFjY291bnRpbmdFbnRyeScsCiAgICAgICAgICAgIERpYWxvZ0NvbnRlbnRRdWVyeVN0cmluZzogICAnQWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdFZGl0O0RlbGV0ZURpYWxvZz0xO1llYXI9JyArIENvcmUuQ29uZmlnLkdldCgnWWVhcicpICsgJztNb250aD0nICsgQ29yZS5Db25maWcuR2V0KCdNb250aCcpICsgJztEYXk9JyArIENvcmUuQ29uZmlnLkdldCgnRGF5JyksCiAgICAgICAgICAgIENvbmZpcm1lZEFjdGlvblF1ZXJ5U3RyaW5nOiAnQWN0aW9uPUFnZW50VGltZUFjY291bnRpbmdFZGl0O1N1YmFjdGlvbj1EZWxldGU7WWVhcj0nICsgQ29yZS5Db25maWcuR2V0KCdZZWFyJykgKyAnO01vbnRoPScgKyBDb3JlLkNvbmZpZy5HZXQoJ01vbnRoJykgKyAnO0RheT0nICsgQ29yZS5Db25maWcuR2V0KCdEYXknKSwKICAgICAgICAgICAgRGlhbG9nVGl0bGU6ICAgICAgICAgICAgICAgIENvcmUuTGFuZ3VhZ2UuVHJhbnNsYXRlKCJEZWxldGUgVGltZSBBY2NvdW50aW5nIEVudHJ5IiksCiAgICAgICAgICAgIFRyYW5zbGF0ZWRUZXh0OiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBZZXM6IENvcmUuTGFuZ3VhZ2UuVHJhbnNsYXRlKCdZZXMnKSwKICAgICAgICAgICAgICAgIE5vOiAgQ29yZS5MYW5ndWFnZS5UcmFuc2xhdGUoJ05vJykKICAgICAgICAgICAgfQogICAgICAgIH0pOwoKICAgICAgICAvLyBzaG93IHRoZSBjb25maXJtYXRpb24gZGlhbG9nIHRvIGNvbmZpcm0gdGhlIGFjdGlvbgogICAgICAgIGlmIChDb3JlLkNvbmZpZy5HZXQoJ0Jsb2NrTmFtZScpKSB7CiAgICAgICAgICAgIENvcmUuVUkuRGlhbG9nLlNob3dDb250ZW50RGlhbG9nKAogICAgICAgICAgICAgICAgQ29yZS5Db25maWcuR2V0KCdCbG9ja05hbWUnKSwKICAgICAgICAgICAgICAgIENvcmUuTGFuZ3VhZ2UuVHJhbnNsYXRlKCJDb25maXJtIGluc2VydCIpLAogICAgICAgICAgICAgICAgJzIwJScsCiAgICAgICAgICAgICAgICAnQ2VudGVyJywKICAgICAgICAgICAgICAgIHRydWUsCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMYWJlbDogQ29yZS5MYW5ndWFnZS5UcmFuc2xhdGUoJ1llcycpLAogICAgICAgICAgICAgICAgICAgICAgICBDbGFzczogIlByaW1hcnkiLAogICAgICAgICAgICAgICAgICAgICAgICBUeXBlOiAiQ2xvc2UiLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBMYWJlbDogQ29yZS5MYW5ndWFnZS5UcmFuc2xhdGUoJ05vJyksCgogICAgICAgICAgICAgICAgICAgICAgICAvLyBkZWZpbmUgdGhlIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIHdoZW4gdGhlICdObycgYnV0dG9uIGlzIHByZXNzZWQKICAgICAgICAgICAgICAgICAgICAgICAgRnVuY3Rpb246IGZ1bmN0aW9uKCl7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGlzYWJsZSBZZXMgYW5kIE5vIGJ1dHRvbnMgdG8gcHJldmVudCBtdWx0aXBsZSBzdWJtaXRzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCdkaXYuRGlhbG9nOnZpc2libGUgZGl2LkNvbnRlbnRGb290ZXIgYnV0dG9uJykuYXR0cignZGlzYWJsZWQnLCAnZGlzYWJsZWQnKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZWRpcmVjdCB0byB0aGUgbW9kdWxlIHRoYXQgZGVsZXRlcyB0aGUgc2F2ZWQgZW50cnkgYWZ0ZXIgcHJlc3NpbmcgdGhlIE5vIGJ1dHRvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24uaHJlZiA9IENvcmUuQ29uZmlnLkdldCgnQmFzZWxpbmsnKSArICdBY3Rpb249QWdlbnRUaW1lQWNjb3VudGluZ0VkaXQ7U3ViYWN0aW9uPURlbGV0ZTtZZWFyPScgKyAgQ29yZS5Db25maWcuR2V0KCdZZWFyJykgKyAnO01vbnRoPScgKyAgQ29yZS5Db25maWcuR2V0KCdNb250aCcpICsgJztEYXk9JyArICBDb3JlLkNvbmZpZy5HZXQoJ0RheScpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgJCgnLkxlYXZlRGF5cycpLm9uKCdjaGFuZ2UnLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgdmFyIEZpZWxkVmFsdWUgPSAkKHRoaXMpLnZhbCgpOwoKICAgICAgICAgICAvLyByZXBsYWNlICwgd2l0aCAuCiAgICAgICAgICAgRmllbGRWYWx1ZSA9IEZpZWxkVmFsdWUucmVwbGFjZSgvLC9nLCAiLiIpOwoKICAgICAgICAgICAvLyBjaGVjayBpZiB0aGUgZW50ZXJlZCB2YWx1ZSBvbmx5IGNvbnNpc3RzIG9mIGFsbG93ZWQgdmFsdWVzCiAgICAgICAgICAgLy8gaWYgbm90LCB3ZSBkbyBub3QgZXZhbCBmb3Igc2VjdXJpdHkgcmVhc29ucwogICAgICAgICAgIGlmIChGaWVsZFZhbHVlLm1hdGNoKC9eWzAtOS4rXC0gXSskLykpIHsKICAgICAgICAgICAgICAgLy8gQ2FsY3VsYXRpb24KICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgIC8qZXNsaW50LWRpc2FibGUgbm8tZXZhbCAqLwogICAgICAgICAgICAgICAgICAgRmllbGRWYWx1ZSA9IGV2YWwoRmllbGRWYWx1ZSk7CiAgICAgICAgICAgICAgICAgICAvKmVzbGludC1lbmFibGUgbm8tZXZhbCAqLwogICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIGNhdGNoIChDYWxjRXJyb3IpIHsKICAgICAgICAgICAgICAgICAgIEZpZWxkVmFsdWUgPSAwOwogICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAvLyBzZXQgbmV3IHZhbHVlCiAgICAgICAgICAgICAgICQodGhpcykudmFsKEZpZWxkVmFsdWUudG9GaXhlZCgyKSk7CiAgICAgICAgICAgfQogICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAkKHRoaXMpLnZhbCgnJyk7CiAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgfTsKCiAgICBDb3JlLkluaXQuUmVnaXN0ZXJOYW1lc3BhY2UoVGFyZ2V0TlMsICdBUFBfTU9EVUxFJyk7CgogICAgcmV0dXJuIFRhcmdldE5TOwoKfShUaW1lQWNjb3VudGluZy5BZ2VudCB8fCB7fSkpOwo=
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMjAgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KLy8gLS0KLy8gVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKLy8gdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgovLyAtLQoKInVzZSBzdHJpY3QiOwoKdmFyIFRpbWVBY2NvdW50aW5nID0gVGltZUFjY291bnRpbmcgfHwge307ClRpbWVBY2NvdW50aW5nLkFnZW50ID0gVGltZUFjY291bnRpbmcuQWdlbnQgfHwge307CgoKLyoqCiAqIEBuYW1lc3BhY2UgVGltZUFjY291bnRpbmcuQWdlbnQuQ29uZmlybWF0aW9uRGlhbG9nCiAqIEBtZW1iZXJvZiBUaW1lQWNjb3VudGluZy5BZ2VudAogKiBAYXV0aG9yIE9UUlMgQUcKICogQGRlc2NyaXB0aW9uCiAqICAgICAgVGhpcyBuYW1lc3BhY2UgY29udGFpbnMgdGhlIHNwZWNpYWwgbW9kdWxlIGZ1bmN0aW9ucyBmb3IgQ29uZmlybWF0aW9uRGlhbG9nLgogKi8KVGltZUFjY291bnRpbmcuQWdlbnQuQ29uZmlybWF0aW9uRGlhbG9nID0gKGZ1bmN0aW9uIChUYXJnZXROUykgewoKICAgIC8qKgogICAgICogQHByaXZhdGUKICAgICAqIEBuYW1lIERpYWxvZ0RhdGEKICAgICAqIEBtZW1iZXJvZiBUaW1lQWNjb3VudGluZy5BZ2VudC5Db25maXJtYXRpb25EaWFsb2cKICAgICAqIEBtZW1iZXIge0FycmF5fQogICAgICogQGRlc2NyaXB0aW9uCiAgICAgKiAgICAgIFRoaXMgdmFyaWFibGUgc3RvcmVzIHRoZSBwYXJhbWV0ZXJzIHRoYXQgYXJlIHBhc3NlZCBmcm9tIHRoZSBEVEwgYW5kIGNvbnRhaW4gYWxsIHRoZSBkYXRhIHRoYXQgdGhlIGRpYWxvZyBuZWVkcy4KICAgICAqLwogICAgdmFyIERpYWxvZ0RhdGEgPSBbXTsKCiAgICAvKioKICAgICAqIEBwcml2YXRlCiAgICAgKiBAbmFtZSBTaG93V2FpdGluZ0RpYWxvZwogICAgICogQG1lbWJlcm9mIFRpbWVBY2NvdW50aW5nLkFnZW50LkNvbmZpcm1hdGlvbkRpYWxvZwogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcGFyYW0ge1N0cmluZ30gUG9zaXRpb25Ub3AgLSB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGUgZGlhbG9nLgogICAgICogQGRlc2NyaXB0aW9uIFNob3dzIHdhaXRpbmcgZGlhbG9nIHVudGlsIHNlYXJjaCBzY3JlZW4gaXMgcmVhZHkuCiAgICAgKi8KICAgIGZ1bmN0aW9uIFNob3dXYWl0aW5nRGlhbG9nKFBvc2l0aW9uVG9wKXsKICAgICAgICBDb3JlLlVJLkRpYWxvZy5TaG93Q29udGVudERpYWxvZygnPGRpdiBjbGFzcz0iU3BhY2luZyBDZW50ZXIiPjxzcGFuIGNsYXNzPSJBSkFYTG9hZGVyIiB0aXRsZT0iJyArIENvcmUuQ29uZmlnLkdldCgnTG9hZGluZ01zZycpICsgJyI+PC9zcGFuPjwvZGl2PicsICcnLCBQb3NpdGlvblRvcCwgJ0NlbnRlcicsIHRydWUpOwogICAgfQoKICAgIC8qKgogICAgICogQG5hbWUgU2hvd0NvbmZpcm1hdGlvbkRpYWxvZwogICAgICogQG1lbWJlcm9mIFRpbWVBY2NvdW50aW5nLkFnZW50LkNvbmZpcm1hdGlvbkRpYWxvZwogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcmV0dXJucyB7Qm9vbGVhbn0gZmFsc2UuCiAgICAgKiBAcGFyYW0ge0V2ZW50T2JqZWN0fSBFdmVudCAtIGV2ZW50IG9iamVjdCBvZiB0aGUgY2xpY2tlZCBlbGVtZW50LgogICAgICogQGRlc2NyaXB0aW9uCiAgICAgKiAgICAgIFRoaXMgZnVuY3Rpb24gc2hvd3MgYSBjb25maXJtYXRpb24gZGlhbG9nIHdpdGggMiBidXR0b25zOiBZZXMgYW5kIE5vIG9yIGEgbWVzc2FnZSBkaWFsb2cgd2l0aCBvbmUgYnV0dG9uOiBPay4KICAgICAqLwogICAgVGFyZ2V0TlMuU2hvd0NvbmZpcm1hdGlvbkRpYWxvZyA9IGZ1bmN0aW9uIChFdmVudCkgewoKICAgICAgICB2YXIgTG9jYWxEaWFsb2dEYXRhLAogICAgICAgICAgICBQb3NpdGlvblRvcCwKICAgICAgICAgICAgRGF0YSwKICAgICAgICAgICAgQnV0dG9uczsKCiAgICAgICAgLy8gZ2V0IGdsb2JhbCBzYXZlZCBEaWFsb2dEYXRhIGZvciB0aGlzIGZ1bmN0aW9uCiAgICAgICAgTG9jYWxEaWFsb2dEYXRhID0gRGlhbG9nRGF0YVskKEV2ZW50LnRhcmdldCkuYXR0cignaWQnKV07CgogICAgICAgIC8vIGRlZmluZSB0aGUgcG9zaXRpb24gb2YgdGhlIGRpYWxvZwogICAgICAgIFBvc2l0aW9uVG9wID0gJCh3aW5kb3cpLmhlaWdodCgpICogMC4zOwoKICAgICAgICAvLyBzaG93IHdhaXRpbmcgZGlhbG9nCiAgICAgICAgU2hvd1dhaXRpbmdEaWFsb2coUG9zaXRpb25Ub3ApOwoKICAgICAgICAvLyBhamF4IGNhbGwgdG8gdGhlIG1vZHVsZSB0aGF0IGV4ZWN1dGVzIHRoZSBhY3Rpb24gd2hlbiBwcmVzc2luZyB0aGUgY29uZmlybWF0aW9uIGJ1dHRvbgogICAgICAgIERhdGEgPSBMb2NhbERpYWxvZ0RhdGEuRGlhbG9nQ29udGVudFF1ZXJ5U3RyaW5nOwogICAgICAgIENvcmUuQUpBWC5GdW5jdGlvbkNhbGwoQ29yZS5Db25maWcuR2V0KCdCYXNlbGluaycpLCBEYXRhLCBmdW5jdGlvbiAoUmVzcG9uc2UpIHsKCiAgICAgICAgICAgIC8vICdDb25maXJtYXRpb24nIG9wZW5zIGEgZGlhbG9nIHdpdGggMiBidXR0b25zOiBZZXMgYW5kIE5vCiAgICAgICAgICAgIGlmIChSZXNwb25zZS5EaWFsb2dUeXBlID09PSAnQ29uZmlybWF0aW9uJykgewoKICAgICAgICAgICAgICAgIC8vIGRlZmluZSB5ZXMgYW5kIG5vIGJ1dHRvbnMKICAgICAgICAgICAgICAgIEJ1dHRvbnMgPSBbewogICAgICAgICAgICAgICAgICAgIExhYmVsOiBMb2NhbERpYWxvZ0RhdGEuVHJhbnNsYXRlZFRleHQuWWVzLAogICAgICAgICAgICAgICAgICAgIENsYXNzOiAiUHJpbWFyeSIsCgogICAgICAgICAgICAgICAgICAgIC8vIGRlZmluZSB0aGUgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgd2hlbiB0aGUgJ1llcycgYnV0dG9uIGlzIHByZXNzZWQKICAgICAgICAgICAgICAgICAgICBGdW5jdGlvbjogZnVuY3Rpb24oKXsKCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRpc2FibGUgWWVzIGFuZCBObyBidXR0b25zIHRvIHByZXZlbnQgbXVsdGlwbGUgc3VibWl0cwogICAgICAgICAgICAgICAgICAgICAgICAkKCdkaXYuRGlhbG9nOnZpc2libGUgZGl2LkNvbnRlbnRGb290ZXIgYnV0dG9uJykuYXR0cignZGlzYWJsZWQnLCAnZGlzYWJsZWQnKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlZGlyZWN0IHRvIHRoZSBtb2R1bGUgdGhhdCBkb2VzIHRoZSBjb25maXJtZWQgYWN0aW9uIGFmdGVyIHByZXNzaW5nIHRoZSBZZXMgYnV0dG9uCiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLmhyZWYgPSBDb3JlLkNvbmZpZy5HZXQoJ0Jhc2VsaW5rJykgKyBMb2NhbERpYWxvZ0RhdGEuQ29uZmlybWVkQWN0aW9uUXVlcnlTdHJpbmc7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgIExhYmVsOiBMb2NhbERpYWxvZ0RhdGEuVHJhbnNsYXRlZFRleHQuTm8sCiAgICAgICAgICAgICAgICAgICAgVHlwZTogIkNsb3NlIgogICAgICAgICAgICAgICAgfV07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vICdNZXNzYWdlJyBvcGVucyBhIGRpYWxvZyB3aXRoIDEgYnV0dG9uOiBPawogICAgICAgICAgICBlbHNlIGlmIChSZXNwb25zZS5EaWFsb2dUeXBlID09PSAnTWVzc2FnZScpIHsKCiAgICAgICAgICAgICAgICAvLyBkZWZpbmUgT2sgYnV0dG9uCiAgICAgICAgICAgICAgICBCdXR0b25zID0gW3sKICAgICAgICAgICAgICAgICAgICBMYWJlbDogTG9jYWxEaWFsb2dEYXRhLlRyYW5zbGF0ZWRUZXh0Lk9rLAogICAgICAgICAgICAgICAgICAgIENsYXNzOiAiUHJpbWFyeSIsCiAgICAgICAgICAgICAgICAgICAgVHlwZTogIkNsb3NlIgogICAgICAgICAgICAgICAgfV07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIHNob3cgdGhlIGNvbmZpcm1hdGlvbiBkaWFsb2cgdG8gY29uZmlybSB0aGUgYWN0aW9uCiAgICAgICAgICAgIENvcmUuVUkuRGlhbG9nLlNob3dDb250ZW50RGlhbG9nKFJlc3BvbnNlLkhUTUwsIExvY2FsRGlhbG9nRGF0YS5EaWFsb2dUaXRsZSwgUG9zaXRpb25Ub3AsICJDZW50ZXIiLCB0cnVlLCBCdXR0b25zKTsKICAgICAgICB9LCAnanNvbicpOwogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH07CgogICAgLyoqCiAgICAgKiBAbmFtZSBCaW5kQ29uZmlybWF0aW9uRGlhbG9nCiAgICAgKiBAbWVtYmVyb2YgVGltZUFjY291bnRpbmcuQWdlbnQuQ29uZmlybWF0aW9uRGlhbG9nCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBwYXJhbSB7T2JqZWN0fSBEYXRhIC0gRGlhbG9nRGF0YS4KICAgICAqIEBkZXNjcmlwdGlvbiAgQmluZHMgY29uZm9ybWF0aW9uIGRpYWxvZyB0byBhbiBlbGVtZW50CiAgICAgKi8KICAgIFRhcmdldE5TLkJpbmRDb25maXJtYXRpb25EaWFsb2cgPSBmdW5jdGlvbiAoRGF0YSkgewogICAgICAgIERpYWxvZ0RhdGFbRGF0YS5FbGVtZW50SURdID0gRGF0YTsKCiAgICAgICAgLy8gYmluZGluZyBhIGNsaWNrIGV2ZW50IHRvIHRoZSBkZWZpbmVkIGVsZW1lbnQKICAgICAgICAkKERpYWxvZ0RhdGFbRGF0YS5FbGVtZW50SURdLkVsZW1lbnRTZWxlY3RvcikKICAgICAgICAgICAgLm9mZignY2xpY2suVGltZUFjY291bnRpbmcuQmluZENvbmZpcm1hdGlvbkRpYWxvZycpCiAgICAgICAgICAgIC5vbignY2xpY2suVGltZUFjY291bnRpbmcuQmluZENvbmZpcm1hdGlvbkRpYWxvZycsIFRpbWVBY2NvdW50aW5nLkFnZW50LkNvbmZpcm1hdGlvbkRpYWxvZy5TaG93Q29uZmlybWF0aW9uRGlhbG9nKTsKICAgIH07CgogICAgcmV0dXJuIFRhcmdldE5TOwp9KFRpbWVBY2NvdW50aW5nLkFnZW50LkNvbmZpcm1hdGlvbkRpYWxvZyB8fCB7fSkpOwo=
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMjAgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KLy8gLS0KLy8gVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKLy8gdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgovLyAtLQoKInVzZSBzdHJpY3QiOwoKdmFyIFRpbWVBY2NvdW50aW5nID0gVGltZUFjY291bnRpbmcgfHwge307ClRpbWVBY2NvdW50aW5nLkFnZW50ID0gVGltZUFjY291bnRpbmcuQWdlbnQgfHwge307CgovKioKICogQG5hbWVzcGFjZSBUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMKICogQG1lbWJlcm9mIFRpbWVBY2NvdW50aW5nLkFnZW50CiAqIEBhdXRob3IgT1RSUyBBRwogKiBAZGVzY3JpcHRpb24KICogICAgICBUaGlzIG5hbWVzcGFjZSBjb250YWlucyB0aGUgc3BlY2lhbCBtb2R1bGUgZnVuY3Rpb25zIGZvciB0aGUgZWRpdCBzY3JlZW4uCiAqLwpUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMgPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgLy8gQWRkcyBvcHRpb24gdG8gYSBzZWxlY3Rpb24KICAgIGZ1bmN0aW9uIEFkZFNlbGVjdGlvbk9wdGlvbigkU2VsZWN0aW9uRWxlbWVudCwgT3B0aW9uVGV4dCwgT3B0aW9uVmFsdWUsIFNlbGVjdGVkT3B0aW9uKSB7CiAgICAgICAgdmFyIE9wdGlvbkhUTUwgPSBDb3JlLlRlbXBsYXRlLlJlbmRlcigKICAgICAgICAgICAgJ0FnZW50L1RpbWVBY2NvdW50aW5nL09wdGlvbicsCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFZhbHVlOiAgICBPcHRpb25WYWx1ZSwKICAgICAgICAgICAgICAgIFRleHQ6ICAgICBPcHRpb25UZXh0LAogICAgICAgICAgICAgICAgU2VsZWN0ZWQ6IE9wdGlvblZhbHVlID09PSBTZWxlY3RlZE9wdGlvbgogICAgICAgICAgICB9CiAgICAgICAgKTsKCiAgICAgICAgJFNlbGVjdGlvbkVsZW1lbnQuYXBwZW5kKE9wdGlvbkhUTUwpOwogICAgfQoKICAgIC8qKgogICAgICogQG5hbWUgSW5pdAogICAgICogQG1lbWJlcm9mIFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcGFyYW0ge1N0cmluZ30gV29ya2luZ1VuaXRJRCAtIFRoZSBJRCBvZiB0aGUgd29ya2luZyB1bml0IHdlIGFyZSBpbgogICAgICogQGRlc2NyaXB0aW9uCiAgICAgKiAgICAgIEZpbGxzIG9wdGlvbnMgb2YgYWN0aW9uIHNlbGVjdGlvbiBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgcHJvamVjdAogICAgICovCiAgICBUYXJnZXROUy5GaWxsQWN0aW9uTGlzdCA9IGZ1bmN0aW9uIChXb3JraW5nVW5pdElEKSB7CiAgICAgICAgdmFyIFByb2plY3ROYW1lID0gJCgnI1Byb2plY3RJRCcgKyBXb3JraW5nVW5pdElEICsgJyBvcHRpb246c2VsZWN0ZWQnKS50ZXh0KCksCiAgICAgICAgICAgIEFjdGlvbkxpc3QgPSBDb3JlLkNvbmZpZy5HZXQoJ0FjdGlvbkxpc3QnKSwKICAgICAgICAgICAgQWN0aW9uTGlzdENvbnN0cmFpbnRzID0gQ29yZS5Db25maWcuR2V0KCdBY3Rpb25MaXN0Q29uc3RyYWludHMnKSwKICAgICAgICAgICAgJEFjdGlvblNlbGVjdGlvbiA9ICQoIiNBY3Rpb25JRCIgKyBXb3JraW5nVW5pdElEKSwKICAgICAgICAgICAgU2VsZWN0ZWRBY3Rpb25JRCA9ICRBY3Rpb25TZWxlY3Rpb24udmFsKCksCiAgICAgICAgICAgIE9wdGlvbkNvdW50ID0gMDsKCiAgICAgICAgLy8gcmVtb3ZlIHByZXZpb3VzIGFjdGlvbnMsIGxlYXZlIGZpcnN0IGVsZW1lbnQgKGVtcHR5IGVsZW1lbnQpCiAgICAgICAgJEFjdGlvblNlbGVjdGlvbi5maW5kKCdvcHRpb24nKS5maWx0ZXIoJzpub3QoOmZpcnN0KScpLnJlbW92ZSgpOwoKICAgICAgICAkLmVhY2goQWN0aW9uTGlzdCwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgQWN0aW9uSUQgPSB0aGlzWzBdLAogICAgICAgICAgICAgICAgQWN0aW9uTmFtZSA9IHRoaXNbMV07CgogICAgICAgICAgICAkLmVhY2goQWN0aW9uTGlzdENvbnN0cmFpbnRzLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB2YXIgUHJvamVjdE5hbWVSZWdFeHAgPSBuZXcgUmVnRXhwKHRoaXNbMF0pLAogICAgICAgICAgICAgICAgICAgIEFjdGlvbk5hbWVSZWdFeHAgPSBuZXcgUmVnRXhwKHRoaXNbMV0pOwoKICAgICAgICAgICAgICAgIC8vIGFkZCBhY3Rpb24gdG8gc2VsZWN0aW9uCiAgICAgICAgICAgICAgICBpZiAoUHJvamVjdE5hbWVSZWdFeHAudGVzdChQcm9qZWN0TmFtZSkgJiYgQWN0aW9uTmFtZVJlZ0V4cC50ZXN0KEFjdGlvbk5hbWUpKSB7CiAgICAgICAgICAgICAgICAgICAgQWRkU2VsZWN0aW9uT3B0aW9uKCRBY3Rpb25TZWxlY3Rpb24sIEFjdGlvbk5hbWUsIEFjdGlvbklELCBTZWxlY3RlZEFjdGlvbklEKTsKICAgICAgICAgICAgICAgICAgICBPcHRpb25Db3VudCsrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9KTsKCiAgICAgICAgLy8gYWxsIGFjdGlvbnMgd2lsbCBiZSBhZGRlZCBpZiBubyBhY3Rpb24gd2FzIGFkZGVkIGFib3ZlIChwb3NzaWJsZSBtaXNjb25maWd1cmF0aW9uKQogICAgICAgIGlmICghT3B0aW9uQ291bnQpIHsKICAgICAgICAgICAgLy8gaWdub3JlIGZpcnN0IGVsZW1lbnQgYmVjYXVzZSBpdCdzIHRoZSBlbXB0eSBlbGVtZW50IHdoaWNoIGlzIGFscmVhZHkgcGFydCBvZiB0aGUgbGlzdAogICAgICAgICAgICAkLmVhY2goQWN0aW9uTGlzdCwgZnVuY3Rpb24gKEluZGV4KSB7CiAgICAgICAgICAgICAgICB2YXIgQWN0aW9uSUQgPSB0aGlzWzBdLAogICAgICAgICAgICAgICAgICAgIEFjdGlvbk5hbWUgPSB0aGlzWzFdOwogICAgICAgICAgICAgICAgaWYgKEluZGV4ID4gMCkgewogICAgICAgICAgICAgICAgICAgIEFkZFNlbGVjdGlvbk9wdGlvbigkQWN0aW9uU2VsZWN0aW9uLCBBY3Rpb25OYW1lLCBBY3Rpb25JRCwgU2VsZWN0ZWRBY3Rpb25JRCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgIH07CgoKICAgIGZ1bmN0aW9uIEluaXRBZGRSb3coKSB7CiAgICAgICAgJCgnI01vcmVJbnB1dEZpZWxkcycpLm9mZignY2xpY2suTW9yZUlucHV0RmllbGRzJykub24oJ2NsaWNrLk1vcmVJbnB1dEZpZWxkcycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyICRMYXN0Um93ID0gJCgnI0luc2VydFdvcmtpbmdIb3VycyB0Ym9keSB0ci5Xb3JraW5nSG91cnM6bGFzdCcpLAogICAgICAgICAgICAgICAgJE5ld1JvdywgTmV3Um93SFRNTCwKICAgICAgICAgICAgICAgIFJlY29yZE51bWJlciA9IHBhcnNlSW50KCQoJyNSZWNvcmRzTnVtYmVyJykudmFsKCksIDEwKSArIDE7CgogICAgICAgICAgICBDb3JlLlVJLklucHV0RmllbGRzLkRlYWN0aXZhdGUoJCgnLldvcmtpbmdIb3VycycpKTsKICAgICAgICAgICAgJE5ld1JvdyA9ICRMYXN0Um93LmNsb25lKCk7CiAgICAgICAgICAgIE5ld1Jvd0hUTUwgPSAkTmV3Um93Lmh0bWwoKTsKCiAgICAgICAgICAgIC8vIE5vdyB0YWtlIHRoZSBsYXN0IHJvdyBhbmQgcmVwbGFjZSBhbGwgbnVtYmVycyB3aXRoIHRoZSBuZXcgcmVjb3JkIG51bWJlcgogICAgICAgICAgICBOZXdSb3dIVE1MID0gTmV3Um93SFRNTC5yZXBsYWNlKC9Qcm9qZWN0SURbMC05XSsvZywgJ1Byb2plY3RJRCcgKyBSZWNvcmROdW1iZXIpOwogICAgICAgICAgICBOZXdSb3dIVE1MID0gTmV3Um93SFRNTC5yZXBsYWNlKC9Qcm9qZWN0SURcW1swLTldKy9nLCAnUHJvamVjdElEWycgKyBSZWNvcmROdW1iZXIpOwogICAgICAgICAgICBOZXdSb3dIVE1MID0gTmV3Um93SFRNTC5yZXBsYWNlKC9GaWxsQWN0aW9uTGlzdFwoWzAtOV0rL2csICdGaWxsQWN0aW9uTGlzdCgnICsgUmVjb3JkTnVtYmVyKTsKICAgICAgICAgICAgTmV3Um93SFRNTCA9IE5ld1Jvd0hUTUwucmVwbGFjZSgvQWN0aW9uSURbMC05XSsvZywgJ0FjdGlvbklEJyArIFJlY29yZE51bWJlcik7CiAgICAgICAgICAgIE5ld1Jvd0hUTUwgPSBOZXdSb3dIVE1MLnJlcGxhY2UoL0FjdGlvbklEXFtbMC05XSsvZywgJ0FjdGlvbklEWycgKyBSZWNvcmROdW1iZXIpOwogICAgICAgICAgICBOZXdSb3dIVE1MID0gTmV3Um93SFRNTC5yZXBsYWNlKC9SZW1hcmtbMC05XSsvZywgJ1JlbWFyaycgKyBSZWNvcmROdW1iZXIpOwogICAgICAgICAgICBOZXdSb3dIVE1MID0gTmV3Um93SFRNTC5yZXBsYWNlKC9SZW1hcmtcW1swLTldKy9nLCAnUmVtYXJrWycgKyBSZWNvcmROdW1iZXIpOwogICAgICAgICAgICBOZXdSb3dIVE1MID0gTmV3Um93SFRNTC5yZXBsYWNlKC9TdGFydFRpbWVbMC05XSsvZywgJ1N0YXJ0VGltZScgKyBSZWNvcmROdW1iZXIpOwogICAgICAgICAgICBOZXdSb3dIVE1MID0gTmV3Um93SFRNTC5yZXBsYWNlKC9TdGFydFRpbWVcW1swLTldKy9nLCAnU3RhcnRUaW1lWycgKyBSZWNvcmROdW1iZXIpOwogICAgICAgICAgICBOZXdSb3dIVE1MID0gTmV3Um93SFRNTC5yZXBsYWNlKC9FbmRUaW1lWzAtOV0rL2csICdFbmRUaW1lJyArIFJlY29yZE51bWJlcik7CiAgICAgICAgICAgIE5ld1Jvd0hUTUwgPSBOZXdSb3dIVE1MLnJlcGxhY2UoL0VuZFRpbWVcW1swLTldKy9nLCAnRW5kVGltZVsnICsgUmVjb3JkTnVtYmVyKTsKICAgICAgICAgICAgTmV3Um93SFRNTCA9IE5ld1Jvd0hUTUwucmVwbGFjZSgvUGVyaW9kWzAtOV0rL2csICdQZXJpb2QnICsgUmVjb3JkTnVtYmVyKTsKICAgICAgICAgICAgTmV3Um93SFRNTCA9IE5ld1Jvd0hUTUwucmVwbGFjZSgvUGVyaW9kXFtbMC05XSsvZywgJ1BlcmlvZFsnICsgUmVjb3JkTnVtYmVyKTsKCiAgICAgICAgICAgIC8vIE5vdyB3cml0ZSB0aGlzIEhUTUwgYmFjayB0byB0aGUganF1ZXJ5IG9iamVjdAogICAgICAgICAgICAkTmV3Um93Lmh0bWwoTmV3Um93SFRNTCk7CgogICAgICAgICAgICAvLyBJZiBsYXN0IHJvdyBjb250YWluZWQgdmFsdWVzLCB0aGVzZSBtdXN0IGJlIHJlbW92ZWQKICAgICAgICAgICAgJE5ld1JvdwogICAgICAgICAgICAgICAgLmZpbmQoJ2lucHV0OnRleHQnKS52YWwoJycpLmVuZCgpCiAgICAgICAgICAgICAgICAuZmluZCgnc2VsZWN0IG9wdGlvbicpLnByb3AoJ3NlbGVjdGVkJywgZmFsc2UpOwoKICAgICAgICAgICAgLy8gTm93IGFkZCB0aGlzIHJvdyB0byB0aGUgdGFibGUKICAgICAgICAgICAgJExhc3RSb3cuYWZ0ZXIoJE5ld1Jvdyk7CgogICAgICAgICAgICAvLyBTYXZlIG5ldyBSZWNvcmROdW1iZXIKICAgICAgICAgICAgJCgnI1JlY29yZHNOdW1iZXInKS52YWwoUmVjb3JkTnVtYmVyKTsKCiAgICAgICAgICAgIC8vIFJlLWluaXRpYXRlIHRoZSAnb2RkL2V2ZW4nIGNvbG91cnMgb2YgdGhlIHRhYmxlCiAgICAgICAgICAgICQoJyNJbnNlcnRXb3JraW5nSG91cnMgdGJvZHkgdHInKQogICAgICAgICAgICAgICAgLnJlbW92ZUNsYXNzKCdFdmVuJykKICAgICAgICAgICAgICAgIC5maWx0ZXIoJzpvZGQnKS5hZGRDbGFzcygnRXZlbicpOwoKICAgICAgICAgICAgLy8gTW9kZXJuaXplIGZpZWxkcwogICAgICAgICAgICBDb3JlLlVJLklucHV0RmllbGRzLkFjdGl2YXRlKCQoJy5Xb3JraW5nSG91cnMnKSk7CiAgICAgICAgfSk7CiAgICB9CgogICAgZnVuY3Rpb24gUmVjYWxjdWxhdGVUb3RhbEhvdXJzKCkgewogICAgICAgIHZhciBUb3RhbCA9IDA7CiAgICAgICAgJCgnLlBlcmlvZCcpLmVhY2goZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgVmFsdWUgPSBwYXJzZUZsb2F0KCQodGhpcykudmFsKCkpOwogICAgICAgICAgICBpZiAoIWlzTmFOKFZhbHVlKSkgewogICAgICAgICAgICAgICAgVG90YWwgKz0gVmFsdWU7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICAkKCcuVG90YWxIb3VycycpLnRleHQoVG90YWwudG9GaXhlZCgyKSk7CiAgICB9CgogICAgZnVuY3Rpb24gSW5pdFBlcmlvZENhbGN1bGF0aW9uKCkgewogICAgICAgIC8vIGluaXQgY2FsY3VsYXRpb24gb2YgcGVyaW9kIGZpZWxkIGFmdGVyIHdvcmtpbmcgaG91cnMgd2hlcmUgYWRkZWQvc3Vic3RyYWN0ZWQvd2hhdGV2ZXIuLi4KICAgICAgICAkKCcuUGVyaW9kJykub2ZmKCdjaGFuZ2UuUGVyaW9kQ2FsY3VsYXRpb24nKS5vbignY2hhbmdlLlBlcmlvZENhbGN1bGF0aW9uJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgIHZhciBGaWVsZFZhbHVlID0gJCh0aGlzKS52YWwoKTsKCiAgICAgICAgICAgLy8gcmVwbGFjZSAsIHdpdGggLgogICAgICAgICAgIEZpZWxkVmFsdWUgPSBGaWVsZFZhbHVlLnJlcGxhY2UoLywvZywgIi4iKTsKCiAgICAgICAgICAgLy8gY2hlY2sgaWYgdGhlIGVudGVyZWQgdmFsdWUgb25seSBjb25zaXN0cyBvZiBhbGxvd2VkIHZhbHVlcwogICAgICAgICAgIC8vIGlmIG5vdCwgd2UgZG8gbm90IGV2YWwgZm9yIHNlY3VyaXR5IHJlYXNvbnMKICAgICAgICAgICBpZiAoRmllbGRWYWx1ZS5tYXRjaCgvXlswLTkuK1wtIF0rJC8pKSB7CiAgICAgICAgICAgICAgIC8vIENhbGN1bGF0aW9uCiAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAvKmVzbGludC1kaXNhYmxlIG5vLWV2YWwgKi8KICAgICAgICAgICAgICAgICAgIEZpZWxkVmFsdWUgPSBldmFsKEZpZWxkVmFsdWUpOwogICAgICAgICAgICAgICAgICAgLyplc2xpbnQtZW5hYmxlIG5vLWV2YWwgKi8KICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICBjYXRjaCAoQ2FsY0Vycm9yKSB7CiAgICAgICAgICAgICAgICAgICBGaWVsZFZhbHVlID0gMDsKICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgLy8gc2V0IG5ldyB2YWx1ZQogICAgICAgICAgICAgICAkKHRoaXMpLnZhbChGaWVsZFZhbHVlLnRvRml4ZWQoMikpOwoKICAgICAgICAgICAgICAgLy8gbm93IFN0YXJ0VGltZSBhbmQgRW5kVGltZSB3aWxsIG5vdCBtYXRjaCB0aGUgcGVyaW9kIGFueW1vcmUKICAgICAgICAgICAgICAgLy8gZGVsZXRlIHRoZXNlIGVudHJpZXMKICAgICAgICAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCd0cicpLmZpbmQoJy5TdGFydFRpbWUsIC5FbmRUaW1lJykudmFsKCcnKTsKCiAgICAgICAgICAgfQogICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAkKHRoaXMpLnZhbCgnJyk7CiAgICAgICAgICAgfQoKICAgICAgICAgICAvLyBub3cgcmUtY2FsY3VsYXRlIHRoZSB0b3RhbCBob3VycyBzdW0KICAgICAgICAgICBSZWNhbGN1bGF0ZVRvdGFsSG91cnMoKTsKICAgICAgICB9KTsKCiAgICAgICAgLy8gaW5pdCBwZXJpb2QgY2FsY3VsYXRpb24gb24gc3RhcnR0aW1lIGFuZCBlbmR0aW1lIGZpZWxkcwogICAgICAgICQoJy5TdGFydFRpbWUsIC5FbmRUaW1lJykub2ZmKCdjaGFuZ2UuUGVyaW9kQ2FsY3VsYXRpb24nKS5vbignY2hhbmdlLlBlcmlvZENhbGN1bGF0aW9uJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgJFN0YXJ0VGltZSwgJEVuZFRpbWUsCiAgICAgICAgICAgICAgICBTdGFydFRpbWVIb3VyLCBTdGFydFRpbWVNaW51dGUsIEVuZFRpbWVIb3VyLCBFbmRUaW1lTWludXRlLAogICAgICAgICAgICAgICAgU3RhcnREYXRlLCBFbmREYXRlLCBUb2RheSwKICAgICAgICAgICAgICAgIFBlcmlvZDsKCiAgICAgICAgICAgIGlmICgkKHRoaXMpLmhhc0NsYXNzKCdTdGFydFRpbWUnKSkgewogICAgICAgICAgICAgICAgJFN0YXJ0VGltZSA9ICQodGhpcyk7CiAgICAgICAgICAgICAgICAkRW5kVGltZSA9ICRTdGFydFRpbWUuY2xvc2VzdCgndHInKS5maW5kKCcuRW5kVGltZScpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJFN0YXJ0VGltZSA9ICQodGhpcykuY2xvc2VzdCgndHInKS5maW5kKCcuU3RhcnRUaW1lJyk7CiAgICAgICAgICAgICAgICAkRW5kVGltZSA9ICQodGhpcyk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIG9ubHkgY2FsY3VsYXRlIGlmIGJvdGggZmllbGRzIGFyZSBmaWxsZWQKICAgICAgICAgICAgaWYgKCRTdGFydFRpbWUudmFsKCkgJiYgJEVuZFRpbWUudmFsKCkpIHsKICAgICAgICAgICAgICAgIC8vIGV4dHJhY3QgaG91cnMgYW5kIG1pbnV0ZXMKICAgICAgICAgICAgICAgIFN0YXJ0VGltZUhvdXIgPSAkU3RhcnRUaW1lLnZhbCgpLnNwbGl0KC86LylbMF0gfHwgMDsKICAgICAgICAgICAgICAgIFN0YXJ0VGltZU1pbnV0ZSA9ICRTdGFydFRpbWUudmFsKCkuc3BsaXQoLzovKVsxXSB8fCAwOwogICAgICAgICAgICAgICAgRW5kVGltZUhvdXIgPSAkRW5kVGltZS52YWwoKS5zcGxpdCgvOi8pWzBdIHx8IDA7CiAgICAgICAgICAgICAgICBFbmRUaW1lTWludXRlID0gJEVuZFRpbWUudmFsKCkuc3BsaXQoLzovKVsxXSB8fCAwOwoKICAgICAgICAgICAgICAgIC8vIGRlZmluZSBkYXRlIG9iamVjdHMKICAgICAgICAgICAgICAgIFRvZGF5ID0gbmV3IERhdGUoKTsKICAgICAgICAgICAgICAgIFN0YXJ0RGF0ZSA9IG5ldyBEYXRlKFRvZGF5LmdldFllYXIoKSwgVG9kYXkuZ2V0TW9udGgoKSwgVG9kYXkuZ2V0RGF0ZSgpLCBTdGFydFRpbWVIb3VyLCBTdGFydFRpbWVNaW51dGUsIDApOwogICAgICAgICAgICAgICAgRW5kRGF0ZSA9IG5ldyBEYXRlKFRvZGF5LmdldFllYXIoKSwgVG9kYXkuZ2V0TW9udGgoKSwgVG9kYXkuZ2V0RGF0ZSgpLCBFbmRUaW1lSG91ciwgRW5kVGltZU1pbnV0ZSwgMCk7CgogICAgICAgICAgICAgICAgLy8gY2FsY3VsYXRlIGRpZmZlcmVuY2VzCiAgICAgICAgICAgICAgICBQZXJpb2QgPSBFbmREYXRlLmdldFRpbWUoKSAtIFN0YXJ0RGF0ZS5nZXRUaW1lKCk7CiAgICAgICAgICAgICAgICBQZXJpb2QgPSBQZXJpb2QgLyAoMTAwMCAqIDYwICogNjApOwoKICAgICAgICAgICAgICAgIC8vIHNldCBuZXcgdmFsdWUKICAgICAgICAgICAgICAgIGlmICghaXNOYU4oUGVyaW9kKSkgewogICAgICAgICAgICAgICAgICAgICRTdGFydFRpbWUuY2xvc2VzdCgndHInKS5maW5kKCcuUGVyaW9kJykudmFsKFBlcmlvZC50b0ZpeGVkKDIpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICRTdGFydFRpbWUuY2xvc2VzdCgndHInKS5maW5kKCcuUGVyaW9kJykudmFsKCcnKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZWNhbGN1bGF0ZVRvdGFsSG91cnMoKTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgfQoKICAgIC8qKgogICAgICogQG5hbWUgSW5pdAogICAgICogQG1lbWJlcm9mIFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgVGhpcyBmdW5jdGlvbiBpbml0aWFsaXplcyBhbGwgbmVlZGVkIEpTIGZvciB0aGUgRWRpdCBzY3JlZW4KICAgICAqLwogICAgVGFyZ2V0TlMuSW5pdCA9IGZ1bmN0aW9uICgpIHsKCiAgICAgICAgdmFyIFJlbWFya1JlZ0V4cENvbnRlbnQgPSBDb3JlLkNvbmZpZy5HZXQoJ1JlbWFya1JlZ0V4cENvbnRlbnQnKSwKICAgICAgICAgICAgLy8gQWRkIHNvbWUgc3BlY2lhbCB2YWxpZGF0aW9uIG1ldGhvZHMgZm9yIHRoZSBlZGl0IHNjcmVlbgogICAgICAgICAgICAvLyBEZWZpbmUgYWxsIGF2YWlsYWJsZSBlbGVtZW50cyAob25seSB0aGUgcHJlZml4ZXMpIGluIGEgcm93CiAgICAgICAgICAgIEVsZW1lbnRQcmVmaXhlcyA9IFsnUHJvamVjdElEJywgJ0FjdGlvbklEJywgJ1JlbWFyaycsICdTdGFydFRpbWUnLCAnRW5kVGltZScsICdQZXJpb2QnXSwKICAgICAgICAgICAgQ2hlY2tlZDsKCiAgICAgICAgLy8gVmFsaWRhdGVzIHRoZSBwcm9qZWN0OiBpZiBzb21lIG90aGVyIGZpZWxkIGluIHRoaXMgcm93IGlzIGZpbGxlZCwgdGhlIHByb2plY3Qgc2VsZWN0IG11c3QgYmUgZmlsbGVkLCB0b28KICAgICAgICBDb3JlLkZvcm0uVmFsaWRhdGUuQWRkTWV0aG9kKCdWYWxpZGF0ZV9UaW1lQWNjb3VudGluZ19Qcm9qZWN0JywgZnVuY3Rpb24gKFZhbHVlLCBFbGVtZW50KSB7CiAgICAgICAgICAgIHZhciBJRCwKICAgICAgICAgICAgICAgIFJlc3VsdCA9IHRydWU7CgogICAgICAgICAgICAvLyBHZXQgSUQKICAgICAgICAgICAgLy8gT3VyIEVsZW1lbnQgY2FuIGJlIHRoZSBzZWxlY3QgZWxlbWVudCBvciB0aGUgYXV0b2NvbXBsZXRpb24gaW5wdXQgZmllbGQKICAgICAgICAgICAgaWYgKCQoRWxlbWVudCkuaXMoJ3NlbGVjdCcpKSB7CiAgICAgICAgICAgICAgICBJRCA9ICQoRWxlbWVudCkuYXR0cignaWQnKS5yZXBsYWNlKCdQcm9qZWN0SUQnLCAnJyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBJRCA9ICQoRWxlbWVudCkucHJldkFsbCgnc2VsZWN0JykuYXR0cignaWQnKS5yZXBsYWNlKCdQcm9qZWN0SUQnLCAnJyk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICghVmFsdWUpIHsKICAgICAgICAgICAgICAgICQuZWFjaChFbGVtZW50UHJlZml4ZXMsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoIVJlc3VsdCkgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBpZiAodGhpcyAhPT0gJ1Byb2plY3RJRCcgJiYgJCgnIycgKyB0aGlzICsgSUQpLnZhbCgpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJlc3VsdCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gUmVzdWx0OwogICAgICAgIH0pOwoKICAgICAgICBDb3JlLkZvcm0uVmFsaWRhdGUuQWRkUnVsZSgnVmFsaWRhdGVfVGltZUFjY291bnRpbmdfUHJvamVjdCcsIHsKICAgICAgICAgICAgLyplc2xpbnQtZGlzYWJsZSBjYW1lbGNhc2UgKi8KICAgICAgICAgICAgVmFsaWRhdGVfVGltZUFjY291bnRpbmdfUHJvamVjdDogdHJ1ZQogICAgICAgICAgICAvKmVzbGludC1lbmFibGUgY2FtZWxjYXNlICovCiAgICAgICAgfSk7CgogICAgICAgIC8vIFZhbGlkYXRlcyB0aGUgcmVtYXJrczogZGVwZW5kaW5nIG9uIHRoZSBwcm9qZWN0LCByZW1hcmtzIG11c3QgYmUgZW50ZXJlZCBvciBub3QKICAgICAgICBDb3JlLkZvcm0uVmFsaWRhdGUuQWRkTWV0aG9kKCdWYWxpZGF0ZV9UaW1lQWNjb3VudGluZ19SZW1hcmsnLCBmdW5jdGlvbiAoVmFsdWUsIEVsZW1lbnQpIHsKICAgICAgICAgICAgdmFyIElEID0gJChFbGVtZW50KS5hdHRyKCdpZCcpLnJlcGxhY2UoJ1JlbWFyaycsICcnKSwKICAgICAgICAgICAgICAgIFJlbWFya1JlZ0V4cCA9IG5ldyBSZWdFeHAoIl4oIiArIFJlbWFya1JlZ0V4cENvbnRlbnQgKyAiKSQiKSwKICAgICAgICAgICAgICAgIFJlbWFya0NoZWNrID0gUmVtYXJrUmVnRXhwLnRlc3QoJCgnI1Byb2plY3RJRCcgKyBJRCkudmFsKCkpOwoKICAgICAgICAgICAgaWYgKCQoJyNQcm9qZWN0SUQnICsgSUQpLnZhbCgpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gIShSZW1hcmtDaGVjayAmJiBWYWx1ZS5sZW5ndGggPCA4KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfSk7CgogICAgICAgIENvcmUuRm9ybS5WYWxpZGF0ZS5BZGRSdWxlKCdWYWxpZGF0ZV9UaW1lQWNjb3VudGluZ19SZW1hcmsnLCB7CiAgICAgICAgICAgIC8qZXNsaW50LWRpc2FibGUgY2FtZWxjYXNlICovCiAgICAgICAgICAgIFZhbGlkYXRlX1RpbWVBY2NvdW50aW5nX1JlbWFyazogdHJ1ZQogICAgICAgICAgICAvKmVzbGludC1lbmFibGUgY2FtZWxjYXNlICovCiAgICAgICAgfSk7CgogICAgICAgIC8vIFZhbGlkYXRlcyB0aGUgc3RhcnQgdGltZTogaWYgYSBwcm9qZWN0IGlzIGdpdmVuIGFuZCBubyB0aW1lIHBlcmlvZCBpcyBnaXZlbiwgdGhpcyBmaWVsZCBpcyByZXF1aXJlZAogICAgICAgIENvcmUuRm9ybS5WYWxpZGF0ZS5BZGRNZXRob2QoJ1ZhbGlkYXRlX1RpbWVBY2NvdW50aW5nX1N0YXJ0VGltZScsIGZ1bmN0aW9uIChWYWx1ZSwgRWxlbWVudCkgewogICAgICAgICAgICB2YXIgSUQgPSAkKEVsZW1lbnQpLmF0dHIoJ2lkJykucmVwbGFjZSgnU3RhcnRUaW1lJywgJycpOwoKICAgICAgICAgICAgaWYgKCFWYWx1ZSAmJiAkKCcjUHJvamVjdElEJyArIElEKS52YWwoKSAmJiAhJCgnI1BlcmlvZCcgKyBJRCkudmFsKCkpIHsKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfSk7CgogICAgICAgIENvcmUuRm9ybS5WYWxpZGF0ZS5BZGRSdWxlKCdWYWxpZGF0ZV9UaW1lQWNjb3VudGluZ19TdGFydFRpbWUnLCB7CiAgICAgICAgICAgIC8qZXNsaW50LWRpc2FibGUgY2FtZWxjYXNlICovCiAgICAgICAgICAgIFZhbGlkYXRlX1RpbWVBY2NvdW50aW5nX1N0YXJ0VGltZTogdHJ1ZQogICAgICAgICAgICAvKmVzbGludC1lbmFibGUgY2FtZWxjYXNlICovCiAgICAgICAgfSk7CgogICAgICAgIC8vIFZhbGlkYXRlcyB0aGUgdGltZSBwZXJpb2Q6IGlmIGEgcHJvamVjdCBpcyBnaXZlbiBhbmQgbm8gc3RhcnQgdGltZSBpcyBnaXZlbiwgdGhpcyBmaWVsZCBpcyByZXF1aXJlZAogICAgICAgIENvcmUuRm9ybS5WYWxpZGF0ZS5BZGRNZXRob2QoJ1ZhbGlkYXRlX1RpbWVBY2NvdW50aW5nX1BlcmlvZCcsIGZ1bmN0aW9uIChWYWx1ZSwgRWxlbWVudCkgewogICAgICAgICAgICB2YXIgSUQgPSAkKEVsZW1lbnQpLmF0dHIoJ2lkJykucmVwbGFjZSgnUGVyaW9kJywgJycpOwoKICAgICAgICAgICAgaWYgKCFWYWx1ZSAmJiAkKCcjUHJvamVjdElEJyArIElEKS52YWwoKSAmJiAhJCgnI1N0YXJ0VGltZScgKyBJRCkudmFsKCkpIHsKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfSk7CgogICAgICAgIENvcmUuRm9ybS5WYWxpZGF0ZS5BZGRSdWxlKCdWYWxpZGF0ZV9UaW1lQWNjb3VudGluZ19QZXJpb2QnLCB7CiAgICAgICAgICAgIC8qZXNsaW50LWRpc2FibGUgY2FtZWxjYXNlICovCiAgICAgICAgICAgIFZhbGlkYXRlX1RpbWVBY2NvdW50aW5nX1BlcmlvZDogdHJ1ZQogICAgICAgICAgICAvKmVzbGludC1lbmFibGUgY2FtZWxjYXNlICovCiAgICAgICAgfSk7CgogICAgICAgIC8vIGluaXRpYXRlICJtb3JlIGlucHV0IGZpZWxkcyIgZnVuY3Rpb25hbGl0eQogICAgICAgIEluaXRBZGRSb3coKTsKCiAgICAgICAgLy8gaW5pdGlhdGUgcGVyaW9kIGNhbGN1bGF0aW9uCiAgICAgICAgSW5pdFBlcmlvZENhbGN1bGF0aW9uKCk7CgogICAgICAgIC8vIFNlbGVjdCBvbmx5IG9uZSBjaGVja2JveCBpbiB0aGUgZ3JvdXAgJ0Fic2VuY2UnCiAgICAgICAgJCgiLkFic2VuY2UgaW5wdXQ6Y2hlY2tib3giKS5jbGljayhmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIENoZWNrZWQgPSAkKHRoaXMpLnByb3AoImNoZWNrZWQiKTsKICAgICAgICAgICAgJCgiLkFic2VuY2UgaW5wdXQ6Y2hlY2tib3giKS5wcm9wKCJjaGVja2VkIiwgZmFsc2UpOwogICAgICAgICAgICAkKHRoaXMpLnByb3AoImNoZWNrZWQiLCBDaGVja2VkKTsKICAgICAgICB9KTsKICAgIH07CgoKICAgIC8qKgogICAgICogQG5hbWUgTWFzc0VudHJ5SW5pdAogICAgICogQG1lbWJlcm9mIFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcwogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcGFyYW0ge09iamVjdH0gTGFuZ3VhZ2Ugb2JqZWN0IHdpdGggdGV4dCB0cmFuc2xhdGlvbnMKICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIHRoZSBqYXZhc2NyaXB0IGZvciB0aGUgbWFzcyBlbnRyeSBmdW5jdGlvbmFsaXR5CiAgICAgKi8KICAgIFRhcmdldE5TLk1hc3NFbnRyeUluaXQgPSBmdW5jdGlvbigpIHsKICAgICAgICAkKCcjSW5jb21wbGV0ZVdvcmtpbmdEYXktQWxsJykub2ZmKCdjbGljay5TZWxlY3RBbGxEYXlzJykub24oJ2NsaWNrLlNlbGVjdEFsbERheXMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBTdGF0ZSA9ICQodGhpcykucHJvcCgnY2hlY2tlZCcpOwogICAgICAgICAgICAkKCcuSW5jb21wbGV0ZVdvcmtpbmdEYXlzIHRib2R5IGlucHV0OmNoZWNrYm94JykucHJvcCgnY2hlY2tlZCcsIFN0YXRlKTsKICAgICAgICB9KTsKICAgICAgICAkKCcjTWFzc0VudHJ5U3VibWl0Jykub2ZmKCdjbGljay5NYXNzRW50cnlTdWJtaXQnKS5vbignY2xpY2suTWFzc0VudHJ5U3VibWl0JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgJFdvcmtpbmdEYXlDaGVja2JveGVzID0gJCgnLkluY29tcGxldGVXb3JraW5nRGF5cyB0Ym9keSBpbnB1dDpjaGVja2JveDpjaGVja2VkJykuZmlsdGVyKCdbbmFtZSE9SW5jb21wbGV0ZVdvcmtpbmdEYXktQWxsXScpOwoKICAgICAgICAgICAgaWYgKCEkV29ya2luZ0RheUNoZWNrYm94ZXMubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICBhbGVydChDb3JlLkxhbmd1YWdlLlRyYW5zbGF0ZSgnUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgZGF5IScpKTsKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gU2hvdyBvdmVybGF5CiAgICAgICAgICAgIENvcmUuVUkuRGlhbG9nLlNob3dDb250ZW50RGlhbG9nKCQoJyNNYXNzRW50cnlDb25maXJtRGlhbG9nJyksIENvcmUuTGFuZ3VhZ2UuVHJhbnNsYXRlKCdNYXNzIEVudHJ5JyksICcxNTBweCcsICdDZW50ZXInLCB0cnVlLCBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTGFiZWw6IENvcmUuTGFuZ3VhZ2UuVHJhbnNsYXRlKCdTdWJtaXQnKSwKICAgICAgICAgICAgICAgICAgICBGdW5jdGlvbjogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgJFNlbGVjdGVkUmFkaW8gPSAkKCcjTWFzc0VudHJ5Q29uZmlybVJhZGlvIGxpIGlucHV0OnJhZGlvOmNoZWNrZWQnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFic2VuY2VSZWFzb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0ZWREYXRlcyA9ICcnOwoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEkU2VsZWN0ZWRSYWRpby5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KENvcmUuTGFuZ3VhZ2UuVHJhbnNsYXRlKCdQbGVhc2UgY2hvb3NlIGEgcmVhc29uIGZvciBhYnNlbmNlIScpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2V0IGFic2VuY2UgcmVhc29uCiAgICAgICAgICAgICAgICAgICAgICAgIEFic2VuY2VSZWFzb24gPSAkU2VsZWN0ZWRSYWRpby5kYXRhKCdhYnNlbmNlJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChBYnNlbmNlUmVhc29uID09PSAnTGVhdmVEYXknKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcjTWFzc0VudHJ5IGlucHV0W25hbWU9TGVhdmVEYXldJykudmFsKDEpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKEFic2VuY2VSZWFzb24gPT09ICdTaWNrJykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnI01hc3NFbnRyeSBpbnB1dFtuYW1lPVNpY2tdJykudmFsKDEpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKEFic2VuY2VSZWFzb24gPT09ICdPdmVydGltZScpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJyNNYXNzRW50cnkgaW5wdXRbbmFtZT1PdmVydGltZV0nKS52YWwoMSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbGxlY3QgZGF0ZXMKICAgICAgICAgICAgICAgICAgICAgICAgJCgnLkluY29tcGxldGVXb3JraW5nRGF5cyB0Ym9keSBpbnB1dDpjaGVja2JveDpjaGVja2VkJykuZWFjaChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgRGF0ZUl0ZW0gPSAkKHRoaXMpLmF0dHIoJ25hbWUnKS5yZXBsYWNlKC9JbmNvbXBsZXRlV29ya2luZ0RheS0vLCAiIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoRGF0ZUl0ZW0gIT09ICdBbGwnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGVkRGF0ZXMgKz0gRGF0ZUl0ZW0gKyAnfCc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICAkKCcjTWFzc0VudHJ5IGlucHV0W25hbWU9RGF0ZXNdJykudmFsKENvbGxlY3RlZERhdGVzKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNob3cgd2FpdGluZyBpY29uCiAgICAgICAgICAgICAgICAgICAgICAgICQoJy5EaWFsb2c6dmlzaWJsZScpCiAgICAgICAgICAgICAgICAgICAgICAgIC5maW5kKCcuQ29udGVudEZvb3RlcicpCiAgICAgICAgICAgICAgICAgICAgICAgIC5lbXB0eSgpCiAgICAgICAgICAgICAgICAgICAgICAgIC5lbmQoKQogICAgICAgICAgICAgICAgICAgICAgICAuZmluZCgnLklubmVyQ29udGVudCcpCiAgICAgICAgICAgICAgICAgICAgICAgIC53aWR0aCgkKCcuRGlhbG9nOnZpc2libGUnKS5maW5kKCcuSW5uZXJDb250ZW50Jykud2lkdGgoKSkKICAgICAgICAgICAgICAgICAgICAgICAgLmVtcHR5KCkKICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZChDb3JlLlRlbXBsYXRlLlJlbmRlcignQWdlbnQvVGltZUFjY291bnRpbmcvRGlhbG9nL0FqYXhMb2FkZXInKSk7CgogICAgICAgICAgICAgICAgICAgICAgICAvLyBTdWJtaXQgZm9ybQogICAgICAgICAgICAgICAgICAgICAgICAkKCcjTWFzc0VudHJ5Jykuc3VibWl0KCk7CiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBDbGFzczogJ1ByaW1hcnknCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExhYmVsOiBDb3JlLkxhbmd1YWdlLlRyYW5zbGF0ZSgnQ2FuY2VsJyksCiAgICAgICAgICAgICAgICAgICAgRnVuY3Rpb246IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ29yZS5VSS5EaWFsb2cuQ2xvc2VEaWFsb2coJCgnLkRpYWxvZzp2aXNpYmxlJykpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSk7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9KTsKICAgIH07CgogICAgQ29yZS5Jbml0LlJlZ2lzdGVyTmFtZXNwYWNlKFRhcmdldE5TLCAnQVBQX01PRFVMRScpOwoKICAgIHJldHVybiBUYXJnZXROUzsKfShUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMgfHwge30pKTsK
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMjAgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KLy8gLS0KLy8gVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKLy8gdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgovLyAtLQoKInVzZSBzdHJpY3QiOwoKdmFyIFRpbWVBY2NvdW50aW5nID0gVGltZUFjY291bnRpbmcgfHwge307CgovKioKICogQG5hbWVzcGFjZSBUaW1lQWNjb3VudGluZy5BZ2VudC5PdmVydmlldwogKiBAYXV0aG9yIE9UUlMgQUcKICogQGRlc2NyaXB0aW9uCiAqICAgICAgVGhpcyBuYW1lc3BhY2UgY29udGFpbnMgdGhlIHNwZWNpYWwgbW9kdWxlIGZ1bmN0aW9ucyBmb3IgVGltZUFjY291bnRpbmcuCiAqLwpUaW1lQWNjb3VudGluZy5BZ2VudC5PdmVydmlldyA9IChmdW5jdGlvbiAoVGFyZ2V0TlMpIHsKCiAgICBUYXJnZXROUy5Jbml0ID0gZnVuY3Rpb24gKCkgewoKICAgICAgICAkKCcuTWFzdGVyQWN0aW9uJykuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoRXZlbnQpIHsKICAgICAgICAgICAgdmFyICRNYXN0ZXJBY3Rpb25MaW5rID0gJCh0aGlzKS5maW5kKCcuTWFzdGVyQWN0aW9uTGluaycpOwogICAgICAgICAgICAvLyBvbmx5IGFjdCBpZiB0aGUgbGluayB3YXMgbm90IGNsaWNrZWQgZGlyZWN0bHkKICAgICAgICAgICAgaWYgKEV2ZW50LnRhcmdldCAhPT0gJE1hc3RlckFjdGlvbkxpbmsuZ2V0KDApKSB7CiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24gPSAkTWFzdGVyQWN0aW9uTGluay5hdHRyKCdocmVmJyk7CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgIH07CgogICAgQ29yZS5Jbml0LlJlZ2lzdGVyTmFtZXNwYWNlKFRhcmdldE5TLCAnQVBQX01PRFVMRScpOwoKICAgIHJldHVybiBUYXJnZXROUzsKCn0oVGltZUFjY291bnRpbmcuQWdlbnQuT3ZlcnZpZXcgfHwge30pKTsK
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMjAgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KLy8gLS0KLy8gVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKLy8gdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgovLyAtLQoKInVzZSBzdHJpY3QiOwoKdmFyIFRpbWVBY2NvdW50aW5nID0gVGltZUFjY291bnRpbmcgfHwge307ClRpbWVBY2NvdW50aW5nLkFnZW50ID0gVGltZUFjY291bnRpbmcuQWdlbnQgfHwge307CgovKioKICogQG5hbWVzcGFjZSBUaW1lQWNjb3VudGluZy5BZ2VudC5SZXBvcnRpbmcKICogQGF1dGhvciBPVFJTIEFHCiAqIEBkZXNjcmlwdGlvbgogKiAgICAgIFRoaXMgbmFtZXNwYWNlIGNvbnRhaW5zIHRoZSBzcGVjaWFsIG1vZHVsZSBmdW5jdGlvbnMgZm9yIFRpbWVBY2NvdW50aW5nLgogKi8KVGltZUFjY291bnRpbmcuQWdlbnQuUmVwb3J0aW5nID0gKGZ1bmN0aW9uIChUYXJnZXROUykgewoKICAgIFRhcmdldE5TLkluaXQgPSBmdW5jdGlvbiAoKSB7CgogICAgICAgICQoJyNOYXZpZ2F0aW9uU2VsZWN0Jykub24oJ2NsaWNrJywgZnVuY3Rpb24oKXsKICAgICAgICAgICAgJCgnI0RhdGVTZWxlY3Rpb25Gb3JtJykuc3VibWl0KCk7CiAgICAgICAgfSk7CiAgICB9OwoKICAgIENvcmUuSW5pdC5SZWdpc3Rlck5hbWVzcGFjZShUYXJnZXROUywgJ0FQUF9NT0RVTEUnKTsKCiAgICByZXR1cm4gVGFyZ2V0TlM7Cgp9KFRpbWVBY2NvdW50aW5nLkFnZW50LlJlcG9ydGluZyB8fCB7fSkpOwo=
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMjAgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KLy8gLS0KLy8gVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKLy8gdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgovLyAtLQoKInVzZSBzdHJpY3QiOwoKdmFyIFRpbWVBY2NvdW50aW5nID0gVGltZUFjY291bnRpbmcgfHwge307CgovKioKICogQG5hbWVzcGFjZSBUaW1lQWNjb3VudGluZy5BZ2VudC5WaWV3CiAqIEBhdXRob3IgT1RSUyBBRwogKiBAZGVzY3JpcHRpb24KICogICAgICBUaGlzIG5hbWVzcGFjZSBjb250YWlucyB0aGUgc3BlY2lhbCBtb2R1bGUgZnVuY3Rpb25zIGZvciBUaW1lQWNjb3VudGluZy4KICovClRpbWVBY2NvdW50aW5nLkFnZW50LlZpZXcgPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgVGFyZ2V0TlMuSW5pdCA9IGZ1bmN0aW9uICgpIHsKCiAgICAgICAgJCgnI05hdmlnYXRpb25TZWxlY3QnKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICQoJyNEYXRlU2VsZWN0aW9uRm9ybScpLnN1Ym1pdCgpOwogICAgICAgIH0pOwogICAgfTsKCiAgICBDb3JlLkluaXQuUmVnaXN0ZXJOYW1lc3BhY2UoVGFyZ2V0TlMsICdBUFBfTU9EVUxFJyk7CgogICAgcmV0dXJuIFRhcmdldE5TOwoKfShUaW1lQWNjb3VudGluZy5BZ2VudC5WaWV3IHx8IHt9KSk7Cg==
PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sO2NoYXJzZXQ9dXRmLTgiIC8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL3RoaXJkcGFydHkvcXVuaXQtMi4zLjMvcXVuaXQuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIvPgoKICAgIDx0aXRsZT5UaW1lQWNjb3VudGluZyBmb3IgT1RSUyAmbmRhc2g7IFVuaXRUZXN0IFJlc3VsdHM8L3RpdGxlPgo8L2hlYWQ+Cjxib2R5PgogICAgPGgxIGlkPSJxdW5pdC1oZWFkZXIiPlRpbWVBY2NvdW50aW5nIGZvciBPVFJTICZuZGFzaDsgVW5pdFRlc3QgUmVzdWx0czwvaDE+CiAgICA8aDIgaWQ9InF1bml0LWJhbm5lciI+PC9oMj4KICAgIDxoMiBpZD0icXVuaXQtdXNlckFnZW50Ij48L2gyPgogICAgPG9sIGlkPSJxdW5pdC10ZXN0cyI+PC9vbD4KCgogICAgPCEtLSBVbml0VGVzdCBjb2RlIGdvZXMgaGVyZSAtLT4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL3RoaXJkcGFydHkvcXVuaXQtMi4zLjMvcXVuaXQuanMiPjwvc2NyaXB0PgogICAgPCEtLQogICAgICAgIE5vdyBhbHdheXMgbG9hZCBsaWJyYXJ5IGZpcnN0IGFuZCB0aGVuIHRoZSBVbml0VGVzdCBmaWxlIGZvciBpdC4KICAgICAgICBUaGUgVW5pdFRlc3QgZmlsZSBpcyByZXNwb25zaWJsZSBmb3IgcnVubmludCB0aGUgdGVzdHMuCiAgICAtLT4KCiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi90aGlyZHBhcnR5L2pxdWVyeS0zLjQuMS9qcXVlcnkuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vdGhpcmRwYXJ0eS9qcXVlcnktdWktMS4xMi4xL2pxdWVyeS11aS5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi90aGlyZHBhcnR5L2pxdWVyeS1wdWJzdWIvcHVic3ViLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL3RoaXJkcGFydHkvanF1ZXJ5LXZhbGlkYXRlLTEuMTYuMC9qcXVlcnkudmFsaWRhdGUuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vdGhpcmRwYXJ0eS9qcXVlcnktanN0cmVlLTMuMy43L2pxdWVyeS5qc3RyZWUuanMiPjwvc2NyaXB0PgoKICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL0NvcmUuTGFuZ3VhZ2UuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5Jbml0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL0NvcmUuSmF2YVNjcmlwdEVuaGFuY2VtZW50cy5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9Db3JlLkRlYnVnLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL0NvcmUuRXhjZXB0aW9uLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL0NvcmUuRGF0YS5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9Db3JlLkpTT04uanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5Db25maWcuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5BcHAuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5VSS5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9Db3JlLlVJLkFjY2Vzc2liaWxpdHkuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5VSS5SaWNoVGV4dEVkaXRvci5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9Db3JlLlVJLlRyZWVTZWxlY3Rpb24uanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vQ29yZS5VSS5JbnB1dEZpZWxkcy5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9Db3JlLlVJLkRpYWxvZy5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9Db3JlLkZvcm0uRXJyb3JUb29sdGlwcy5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9Db3JlLkZvcm0uVmFsaWRhdGUuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkNvcmUuVW5pdFRlc3QuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iVGltZUFjY291bnRpbmcuQWdlbnQuRWRpdFRpbWVSZWNvcmRzLlVuaXRUZXN0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgICAgICBUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMuUnVuVW5pdFRlc3RzKCk7CiAgICA8L3NjcmlwdD4KCjwvYm9keT4KPC9odG1sPgo=
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMjAgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KLy8gLS0KLy8gVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKLy8gdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgovLyAtLQoKInVzZSBzdHJpY3QiOwoKdmFyIFRpbWVBY2NvdW50aW5nID0gVGltZUFjY291bnRpbmcgfHwge307ClRpbWVBY2NvdW50aW5nLkFnZW50ID0gVGltZUFjY291bnRpbmcuQWdlbnQgfHwge307CgpUaW1lQWNjb3VudGluZy5BZ2VudC5FZGl0VGltZVJlY29yZHMgPSAoZnVuY3Rpb24gKE5hbWVzcGFjZSkgewogICAgTmFtZXNwYWNlLlJ1blVuaXRUZXN0cyA9IGZ1bmN0aW9uKCl7CgogICAgICAgIC8qCiAgICAgICAgICogQ3JlYXRlIGEgZm9ybSBjb250YWluZXIgZm9yIHRoZSB0ZXN0cwogICAgICAgICAqLwogICAgICAgIHZhciAkVGVzdEZvcm0gPSAkKCc8Zm9ybSBpZD0iVGVzdEZvcm0iPjwvZm9ybT4nKSwKICAgICAgICAgICAgJFRhYmxlOwoKICAgICAgICBRVW5pdC5tb2R1bGUoJ1RpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcycpOwogICAgICAgIFFVbml0LnRlc3QoJ2NsaWVudC1zaWRlIHRpbWUgcGVyaW9kIGNhbGN1bGF0aW9ucycsIGZ1bmN0aW9uKEFzc2VydCl7CgogICAgICAgICAgICBBc3NlcnQuZXhwZWN0KDIwKTsKCiAgICAgICAgICAgICRUZXN0Rm9ybS5hcHBlbmQoJzx0YWJsZT48dHI+PHRkPjwvdGQ+PC90cj48dHI+PHRkPjwvdGQ+PC90cj48dHI+PHRkPjwvdGQ+PC90cj48L3RhYmxlPicpOwogICAgICAgICAgICAkVGFibGUgPSAkVGVzdEZvcm0uZmluZCgndHI6ZXEoMCkgdGQnKTsKICAgICAgICAgICAgJFRhYmxlLmFwcGVuZCgnPGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSIiIGlkPSJTdGFydFRpbWUxIiBuYW1lPSJTdGFydFRpbWUxIiBjbGFzcz0iU3RhcnRUaW1lIiAvPicpOwogICAgICAgICAgICAkVGFibGUuYXBwZW5kKCc8aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IiIgaWQ9IkVuZFRpbWUxIiBuYW1lPSJFbmRUaW1lMSIgY2xhc3M9IkVuZFRpbWUiIC8+Jyk7CiAgICAgICAgICAgICRUYWJsZS5hcHBlbmQoJzxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iIiBpZD0iUGVyaW9kMSIgbmFtZT0iUGVyaW9kMSIgY2xhc3M9IlBlcmlvZCIgLz4nKTsKICAgICAgICAgICAgJFRhYmxlID0gJFRlc3RGb3JtLmZpbmQoJ3RyOmVxKDEpIHRkJyk7CiAgICAgICAgICAgICRUYWJsZS5hcHBlbmQoJzxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iIiBpZD0iU3RhcnRUaW1lMiIgbmFtZT0iU3RhcnRUaW1lMiIgY2xhc3M9IlN0YXJ0VGltZSIgLz4nKTsKICAgICAgICAgICAgJFRhYmxlLmFwcGVuZCgnPGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSIiIGlkPSJFbmRUaW1lMiIgbmFtZT0iRW5kVGltZTIiIGNsYXNzPSJFbmRUaW1lIiAvPicpOwogICAgICAgICAgICAkVGFibGUuYXBwZW5kKCc8aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IiIgaWQ9IlBlcmlvZDIiIG5hbWU9IlBlcmlvZDIiIGNsYXNzPSJQZXJpb2QiIC8+Jyk7CiAgICAgICAgICAgICRUYWJsZSA9ICRUZXN0Rm9ybS5maW5kKCd0cjplcSgyKSB0ZCcpOwogICAgICAgICAgICAkVGFibGUuYXBwZW5kKCc8aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IiIgaWQ9IlN0YXJ0VGltZTMiIG5hbWU9IlN0YXJ0VGltZTMiIGNsYXNzPSJTdGFydFRpbWUiIC8+Jyk7CiAgICAgICAgICAgICRUYWJsZS5hcHBlbmQoJzxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iIiBpZD0iRW5kVGltZTMiIG5hbWU9IkVuZFRpbWUzIiBjbGFzcz0iRW5kVGltZSIgLz4nKTsKICAgICAgICAgICAgJFRhYmxlLmFwcGVuZCgnPGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSIiIGlkPSJQZXJpb2QzIiBuYW1lPSJQZXJpb2QzIiBjbGFzcz0iUGVyaW9kIiAvPicpOwogICAgICAgICAgICAkVGFibGUuYXBwZW5kKCc8c3BhbiBpZD0iVG90YWxIb3VycyIgbmFtZT0iVG90YWxIb3VycyIgY2xhc3M9IlRvdGFsSG91cnMiPjwvc3Bhbj4nKTsKICAgICAgICAgICAgJCgnYm9keScpLmFwcGVuZCgkVGVzdEZvcm0pOwoKICAgICAgICAgICAgLyoKICAgICAgICAgICAgICogUnVuIHRoZSB0ZXN0cwogICAgICAgICAgICAgKi8KCiAgICAgICAgICAgIFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3Jkcy5Jbml0KCk7CgogICAgICAgICAgICAvLyBUZXN0OiB0aW1lIGNhbGN1bGF0aW9uIG9uIHRpbWUgcGVyaW9kIGZpZWxkCiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudmFsKCcyJyk7CiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIEFzc2VydC5lcXVhbCgkKCcjUGVyaW9kMScpLnZhbCgpLCAnMi4wMCcsICdOb3JtYWwgbnVtYmVyIGVudHJ5Jyk7CgogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnZhbCgnZm9vYmFyJyk7CiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIEFzc2VydC5lcXVhbCgkKCcjUGVyaW9kMScpLnZhbCgpLCAnJywgJ05vdCBhIG51bWJlciAoPSJmb29iYXIiKScpOwoKICAgICAgICAgICAgJCgnI1BlcmlvZDEnKS52YWwoJzIgKyAzJyk7CiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIEFzc2VydC5lcXVhbCgkKCcjUGVyaW9kMScpLnZhbCgpLCAnNS4wMCcsICdFYXN5IGNhbGN1bGF0aW9uJyk7CgogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnZhbCgnYWxlcnQoImh1aHUiKTsnKTsKICAgICAgICAgICAgJCgnI1BlcmlvZDEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgQXNzZXJ0LmVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICcnLCAnRXZpbCBqYXZhc2NyaXB0IGNvZGUnKTsKCiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudmFsKCcyLjIzICsgMS4wOScpOwogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICBBc3NlcnQuZXF1YWwoJCgnI1BlcmlvZDEnKS52YWwoKSwgJzMuMzInLCAnQ2FsY3VsYXRpb24gd2l0aCBub24taW50ZWdlcnMnKTsKCiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudmFsKCcyLjAwMDEgKyAxLjUnKTsKICAgICAgICAgICAgJCgnI1BlcmlvZDEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgQXNzZXJ0LmVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICczLjUwJywgJ0NhbGN1bGF0aW9uIHdpdGggYSBudW1iZXIgd2l0aCBtb3JlIHRoYW4gMiBkZWNpbWFscycpOwoKICAgICAgICAgICAgJCgnI1BlcmlvZDEnKS52YWwoJzEsMiArIDEsMycpOwogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICBBc3NlcnQuZXF1YWwoJCgnI1BlcmlvZDEnKS52YWwoKSwgJzIuNTAnLCAnTnVtYmVycyB3aXRoICwgaW5zdGVhZCBvZiAuJyk7CgogICAgICAgICAgICAkKCcjUGVyaW9kMScpLnZhbCgnNS44IC0gMS4yJyk7CiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIEFzc2VydC5lcXVhbCgkKCcjUGVyaW9kMScpLnZhbCgpLCAnNC42MCcsICdTdWJzdHJhY3Rpb24nKTsKCiAgICAgICAgICAgICQoJyNQZXJpb2QxJykudmFsKCcnKTsKCiAgICAgICAgICAgIC8vIFRlc3Q6IGNhbGN1bGF0ZSBwZXJpb2QgZnJvbSBlbnRlcmVkIHN0YXJ0IGFuZCBlbmQgdGltZQogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnZhbCgnMScpOwogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS52YWwoJycpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgQXNzZXJ0LmVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICcnLCAnT25seSBzdGFydCB0aW1lIGVudGVyZWQnKTsKCiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudmFsKCcnKTsKICAgICAgICAgICAgJCgnI1N0YXJ0VGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgJCgnI0VuZFRpbWUxJykudmFsKCcyJyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICBBc3NlcnQuZXF1YWwoJCgnI1BlcmlvZDEnKS52YWwoKSwgJycsICdPbmx5IGVuZCB0aW1lIGVudGVyZWQnKTsKCiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudmFsKCcxJyk7CiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnZhbCgnMicpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgQXNzZXJ0LmVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICcxLjAwJywgJ0JvdGggdGltZXMgZW50ZXJlZCcpOwoKICAgICAgICAgICAgJCgnI1N0YXJ0VGltZTEnKS52YWwoJzk6MDYnKTsKICAgICAgICAgICAgJCgnI1N0YXJ0VGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgJCgnI0VuZFRpbWUxJykudmFsKCcxMDowMCcpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgQXNzZXJ0LmVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICcwLjkwJywgJ0Vhc3kgY2FsY3VsYXRpb24gd2l0aCB0d28gdGltZXMgb2YgdGhlIGZvcm1hdCBISDpNTScpOwoKICAgICAgICAgICAgJCgnI1N0YXJ0VGltZTEnKS52YWwoJzk6MDAnKTsKICAgICAgICAgICAgJCgnI1N0YXJ0VGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgJCgnI0VuZFRpbWUxJykudmFsKCcxMTozMCcpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgQXNzZXJ0LmVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICcyLjUwJywgJ0Vhc3kgY2FsY3VsYXRpb24gd2l0aCB0d28gdGltZXMgb2YgdGhlIGZvcm1hdCBISDpNTScpOwoKICAgICAgICAgICAgJCgnI1N0YXJ0VGltZTEnKS52YWwoJzksNScpOwogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS52YWwoJzEwLDUnKTsKICAgICAgICAgICAgJCgnI0VuZFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIEFzc2VydC5lcXVhbCgkKCcjUGVyaW9kMScpLnZhbCgpLCAnJywgJ1N0YXJ0VGltZSBhbmQgRW5kVGltZSBmb3JtYXQgYXJlIHdyb25nJyk7CgogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnZhbCgnOTo1Jyk7CiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnZhbCgnMTA6NScpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgQXNzZXJ0LmVxdWFsKCQoJyNQZXJpb2QxJykudmFsKCksICcxLjAwJywgJ1N0YXJ0VGltZSBhbmQgRW5kVGltZSBmb3JtYXQgYXJlIHNsaWdodGx5IHdyb25nJyk7CgogICAgICAgICAgICAvLyBUZXN0OiBDYWxjdWxhdGlvbiBvZiB0b3RhbCBob3VycwogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnZhbCgnOTo1Jyk7CiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgICQoJyNFbmRUaW1lMScpLnZhbCgnMTA6NScpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgQXNzZXJ0LmVxdWFsKCQoJyNUb3RhbEhvdXJzJykudGV4dCgpLCAnMS4wMCcsICdFYXN5IHN0YXJ0Jyk7CgogICAgICAgICAgICAkKCcjUGVyaW9kMicpLnZhbCgnMi41Jyk7CiAgICAgICAgICAgICQoJyNQZXJpb2QyJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIEFzc2VydC5lcXVhbCgkKCcjVG90YWxIb3VycycpLnRleHQoKSwgJzMuNTAnLCAnU2Vjb25kIHBlcmlvZCBmaWVsZCcpOwoKICAgICAgICAgICAgJCgnI1BlcmlvZDInKS52YWwoJzEuNSArIDksNScpOwogICAgICAgICAgICAkKCcjUGVyaW9kMicpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICBBc3NlcnQuZXF1YWwoJCgnI1RvdGFsSG91cnMnKS50ZXh0KCksICcxMi4wMCcsICdTZWNvbmQgcGVyaW9kIGZpZWxkIGdldHMgYW4gYWRkaXRpb25hbCBjYWxjdWxhdGlvbiB3aXRoIG9uZSB3cm9uZyBjb21tYScpOwoKICAgICAgICAgICAgJCgnI1BlcmlvZDMnKS52YWwoJzQuMzUnKTsKICAgICAgICAgICAgJCgnI1BlcmlvZDMnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgICAgQXNzZXJ0LmVxdWFsKCQoJyNUb3RhbEhvdXJzJykudGV4dCgpLCAnMTYuMzUnLCAnVGhpcmQgZmllbGQnKTsKCiAgICAgICAgICAgICQoJyNTdGFydFRpbWUxJykudmFsKCcxNDowMCcpOwogICAgICAgICAgICAkKCcjU3RhcnRUaW1lMScpLnRyaWdnZXIoJ2NoYW5nZScpOwogICAgICAgICAgICAkKCcjRW5kVGltZTEnKS52YWwoJ29wZW5lbmQnKTsKICAgICAgICAgICAgJCgnI0VuZFRpbWUxJykudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICAgIEFzc2VydC5lcXVhbCgkKCcjVG90YWxIb3VycycpLnRleHQoKSwgJzE1LjM1JywgJ0ZpcnN0IHJvdzogc3RhcnR0aW1lIGFuZCBlbmR0aW1lIGZpZWxkcyBoYXZlIHdyb25nIGlucHV0Jyk7CgoKICAgICAgICAgICAgLyoKICAgICAgICAgICAgICogQ2xlYW51cCBkaXYgY29udGFpbmVyIGFuZCBjb250ZW50cwogICAgICAgICAgICAgKi8KICAgICAgICAgICAgJCgnI1Rlc3RGb3JtJykucmVtb3ZlKCk7CiAgICAgICAgfSk7CgogICAgfTsKCiAgICByZXR1cm4gTmFtZXNwYWNlOwp9KFRpbWVBY2NvdW50aW5nLkFnZW50LkVkaXRUaW1lUmVjb3JkcyB8fCB7fSkpOwo=
LyoKQ29weXJpZ2h0IChDKSAyMDAxLTIwMjAgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KKi8KCi8qKgogKiBAcGFja2FnZSAgICAgU2tpbiAiRGVmYXVsdCIKICogQHNlY3Rpb24gICAgIFRpbWUgQWNjb3VudGluZyBEZWZhdWx0IENTUwogKi8KCkBtZWRpYSBzY3JlZW4scHJvamVjdGlvbix0dixoYW5kaGVsZCB7CgovKioKICogQHN1YnNlY3Rpb24gIGxlZnQgYW5kIHJpZ2h0IGFycm93cwogKi8KCi5BcnJvdyB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHdpZHRoOiAxMHB4OwogICAgaGVpZ2h0OiAxMnB4OwogICAgZmxvYXQ6IGxlZnQ7CiAgICBtYXJnaW4tdG9wOiAtMnB4OwogICAgbWFyZ2luLXJpZ2h0OiA0cHg7Cn0KCi5BcnJvdyBpIHsKICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIGNvbG9yOiAjNTU1Owp9CgovKioKICogQHN1YnNlY3Rpb24gIHNwZWNpYWwgc2V0dGluZ3M6IHJlcG9ydGluZwogKi8KCmRpdi5Nb250aFNlbGVjdGlvbiB7CiAgICBsaW5lLWhlaWdodDogMjRweDsKICAgIG1hcmdpbi1ib3R0b206IDEwcHg7Cn0KCi5Nb250aFNlbGVjdGlvbiAuQXJyb3cgewogICAgbWFyZ2luLXRvcDogMXB4Owp9CgovKioKICogQHN1YnNlY3Rpb24gIEluY29tcGxldGVXb3JraW5nRGF5cyBzZWxlY3QKICovCiNJbmNvbXBsZXRlV29ya2luZ0RheXNMaXN0IG9wdGlvbltzZWxlY3RlZD1zZWxlY3RlZF0gewogICAgZm9udC13ZWlnaHQ6IGJvbGQ7Cn0KCi8qKgogKiBAc3Vic2VjdGlvbiAgcHJvamVjdCBhbmQgYWN0aW9uIGRyb3Bkb3ducwogKi8KLlByb2plY3RTZWxlY3Rpb24gewogICAgd2lkdGg6IDMwMHB4Owp9CgouQWN0aW9uU2VsZWN0aW9uIHsKICAgIHdpZHRoOiAzMDBweDsKfQoKLlNpZGViYXJDb2x1bW4gLkRhdGVwaWNrZXJJY29uIHsKICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7Cn0KCi5TaWRlYmFyQ29sdW1uIHRoIGlucHV0W3R5cGU9Y2hlY2tib3hdIHsKICAgIG1hcmdpbjogMHB4Owp9Cgp9IC8qIGVuZCBAbWVkaWEgKi8K
LyoKQ29weXJpZ2h0IChDKSAyMDAxLTIwMjAgT1RSUyBBRywgaHR0cHM6Ly9vdHJzLmNvbS8KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dC4KKi8KCi8qKgogKiBAcGFja2FnZSAgICAgU2tpbiAiRGVmYXVsdCIKICogQHNlY3Rpb24gICAgIFRpbWUgQWNjb3VudGluZyBBZGRpdGlvbmFsIFRhYmxlIFNldHRpbmdzCiAqLwoKQG1lZGlhIHNjcmVlbixwcm9qZWN0aW9uLHR2LGhhbmRoZWxkIHsKCi8qKgogKiBAc3Vic2VjdGlvbiAgZGF0YSB0YWJsZSBlbGVtZW50cyB3aXRob3V0IGhvdmVyCiAqLwoKLk5vSG92ZXIgdGJvZHkgdHI6aG92ZXIgdGQgewogICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7CiAgICBib3gtc2hhZG93OiBub25lOwp9CgouTm9Ib3ZlciB0ci5FdmVuOmhvdmVyIHRkIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGNUY1RjU7Cn0KCi5Ob0hvdmVyIHRyLkdyYW5kVG90YWw6aG92ZXIgdGQgewogICAgYmFja2dyb3VuZC1jb2xvcjogI0NGQ0ZDRjsKfQoKLlRpbWVBY2NvdW50aW5nVGFibGUgaW5wdXRbdHlwZT10ZXh0XSB7CiAgICB3aWR0aDogMTAwJTsKICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KCi5UaW1lQWNjb3VudGluZ1RhYmxlIHRkIHsKICAgIHBhZGRpbmc6IDEwcHggIWltcG9ydGFudDsKfQoKLyoqCiAqIEBzdWJzZWN0aW9uICBzcGVjaWFsIHRhYmxlIGhlaWdodAogKi8KCi5IaWdoQ2VsbHMgdGJvZHkgdGQgewogICAgaGVpZ2h0OiAzMHB4Owp9CgovKioKICogQHN1YnNlY3Rpb24gIGZpeGVkIGRhdGEgdGFibGUgd2lkdGhzCiAqLwoKLkRhdGFUYWJsZSB0ZC5GaXhlZC5EYXkgewogICAgd2lkdGg6IDUwcHg7Cn0KCi5EYXRhVGFibGUgdGQuRml4ZWQuV2Vla2RheSB7CiAgICB3aWR0aDogODBweDsKfQoKLyoqCiAqIEBzdWJzZWN0aW9uICB0YWJsZSBjb2xvdXJzIGZvciBvdmVydmlldwogKi8KCi5EYXRhVGFibGUgdHIuVmFjYXRpb24gdGQgewogICAgYmFja2dyb3VuZC1jb2xvcjogI0VCQ0NDQzsKfQoKLkRhdGFUYWJsZSB0ci5Ob25Xb3JraW5nRGF5IHRkIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkUwRTA7Cn0KCi5EYXRhVGFibGUgdHIuQWN0aXZlIHRkIHsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMDAwMDAwOwogICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMwMDAwMDA7CiAgICBjb2xvcjogIzFBMUExQTsKfQoKLkRhdGFUYWJsZSB0ci5BY3RpdmUgdGQ6Zmlyc3QtY2hpbGQgewogICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjMDAwMDAwOwp9CgouRGF0YVRhYmxlIHRyLkFjdGl2ZSB0ZDpsYXN0LWNoaWxkLAouRGF0YVRhYmxlIHRyLkFjdGl2ZSB0ZC5MYXN0IHsKICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICMwMDAwMDA7Cn0KCi5EYXRhVGFibGUgdHIuR3JhbmRUb3RhbCB0ZCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjQ0ZDRkNGOwp9CgovKioKICogQHN1YnNlY3Rpb24gIGRhdGEgdGFibGUgd2l0aCB0d28gaGVhZGVyIHJvd3MKICovCgouRGF0YVRhYmxlIHRoZWFkLlR3b1Jvd3MgewogICAgYmFja2dyb3VuZDogbm9uZTsKfQoKLkRhdGFUYWJsZSB0aGVhZC5Ud29Sb3dzIHRyIHsKICAgIGJhY2tncm91bmQ6ICNlZWVlZWU7Cn0KCi5EYXRhVGFibGUgdGhlYWQuVHdvUm93cyB0cjpmaXJzdC1jaGlsZCB0aCB7CiAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgcGFkZGluZy1ib3R0b206IDJweDsKfQoKLkRhdGFUYWJsZSB0aGVhZC5Ud29Sb3dzIHRyOmxhc3QtY2hpbGQgdGgsCi5EYXRhVGFibGUgdGhlYWQuVHdvUm93cyB0ci5MYXN0IHRoIHsKICAgIGJvcmRlci10b3A6IG5vbmU7CiAgICBwYWRkaW5nLXRvcDogM3B4Owp9Cgp0ci5NYXN0ZXJBY3Rpb24gdGQuUm93U3BhbiB7CiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwp9Cgp0ZC5Sb3dTcGFuewogICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjY2NjOwogICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGUgIWltcG9ydGFudDsKfQoKI1RpbWVBY2NvdW50aW5nRW1wdHlNZXNzYWdlU21hbGwgewogICAgYm9yZGVyLWNvbG9yOiAjZGRkOwogICAgYm9yZGVyLWltYWdlOiBub25lOwogICAgYm9yZGVyLXN0eWxlOiBzb2xpZDsKICAgIGJvcmRlci13aWR0aDogMXB4OwogICAgcGFkZGluZzogN3B4OwogICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7Cn0KLyogZW5kIEBtZWRpYSAqLwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIHZhcjo6cGFja2FnZXNldHVwOjpUaW1lQWNjb3VudGluZzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBMaXN0OjpVdGlsIHF3KCk7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OkNhY2hlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpTeXNDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCiAgICAnS2VybmVsOjpTeXN0ZW06Ok1haW4nLAopOwoKPWhlYWQxIE5BTUUKCnZhcjo6cGFja2FnZXNldHVwOjpUaW1lQWNjb3VudGluZyAtIGNvZGUgdG8gZXhlY3V0ZSBkdXJpbmcgcGFja2FnZSBpbnN0YWxsYXRpb24KCj1oZWFkMSBERVNDUklQVElPTgoKQWxsIGZ1bmN0aW9ucwoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1oZWFkMiBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlcjsKICAgIGxvY2FsICRLZXJuZWw6Ok9NID0gS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXItPm5ldygpOwogICAgbXkgJENvZGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCd2YXI6OnBhY2thZ2VzZXR1cDo6VGltZUFjY291bnRpbmcnKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBGb3JjZSBhIHJlbG9hZCBvZiBaWlpBdXRvLnBtIHRvIGdldCB0aGUgZnJlc2ggY29uZmlndXJhdGlvbiB2YWx1ZXMuCiAgICBmb3IgbXkgJE1vZHVsZSAoIHNvcnQga2V5cyAlSU5DICkgewogICAgICAgIGlmICggJE1vZHVsZSA9fiBtL1paWkFBP3V0b1wucG0kLyApIHsKICAgICAgICAgICAgZGVsZXRlICRJTkN7JE1vZHVsZX07CiAgICAgICAgfQogICAgfQoKICAgICMgQ3JlYXRlIGNvbW1vbiBvYmplY3RzIHdpdGggZnJlc2ggZGVmYXVsdCBjb25maWcuCiAgICAkS2VybmVsOjpPTS0+T2JqZWN0c0Rpc2NhcmQoKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1oZWFkMiBDb2RlSW5zdGFsbCgpCgpydW4gdGhlIGNvZGUgaW5zdGFsbCBwYXJ0CgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5Db2RlSW5zdGFsbCgpOwoKPWN1dAoKc3ViIENvZGVJbnN0YWxsIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBDb2RlVW5pbnN0YWxsKCkKCnJ1biB0aGUgY29kZSB1bmluc3RhbGwgcGFydAoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+Q29kZVVuaW5zdGFsbCgpOwoKPWN1dAoKc3ViIENvZGVVbmluc3RhbGwgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIERlYWN0aXZhdGUgdGhlIGdyb3VwICd0aW1lX2FjY291bnRpbmcnIGlmIGV4aXN0cy4KICAgICRTZWxmLT5fR3JvdXBEZWFjdGl2YXRlKAogICAgICAgIE5hbWUgPT4gJ3RpbWVfYWNjb3VudGluZycsCiAgICApOwoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDIgQ29kZVVwZ3JhZGVGcm9tTG93ZXJUaGFuXzRfMF85MSgpCgpUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgZXhlY3V0ZWQgaWYgdGhlIGluc3RhbGxlZCBtb2R1bGUgdmVyc2lvbiBpcyBzbWFsbGVyIHRoYW4gNC4wLjkxLgoKbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5Db2RlVXBncmFkZUZyb21Mb3dlclRoYW5fNF8wXzkxKCk7Cgo9Y3V0CgpzdWIgQ29kZVVwZ3JhZGVGcm9tTG93ZXJUaGFuXzRfMF85MSB7ICAgICMjIG5vIGNyaXRpYwogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoYW5nZSBjb25maWd1cmF0aW9ucyB0byBtYXRjaCB0aGUgbmV3IG1vZHVsZSBsb2NhdGlvbi4KICAgICRTZWxmLT5fTWlncmF0ZUNvbmZpZ3MoKTsKCiAgICByZXR1cm4gMTsKfQoKPWhlYWQyIENvZGVVcGdyYWRlRnJvbUxvd2VyVGhhbl81XzBfOTIoKQoKVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGV4ZWN1dGVkIGlmIHRoZSBpbnN0YWxsZWQgbW9kdWxlIHZlcnNpb24gaXMgc21hbGxlciB0aGFuIDUuMC45Mi4KCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPkNvZGVVcGdyYWRlRnJvbUxvd2VyVGhhbl81XzBfOTIoKTsKCj1jdXQKCnN1YiBDb2RlVXBncmFkZUZyb21Mb3dlclRoYW5fNV8wXzkyIHsgICAgIyMgbm8gY3JpdGljCiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgUmVjb3ZlciB0aGUgb2xkIHBlcm1pc3Npb25zCiAgICAkU2VsZi0+X01pZ3JhdGVQZXJtaXNzaW9ucygpOwoKICAgIHJldHVybiAxOwp9Cgo9aGVhZDEgUFJJVkFURSBJTlRFUkZBQ0UKCj1oZWFkMiBfR3JvdXBEZWFjdGl2YXRlKCkKCmRlYWN0aXZhdGUgYSBncm91cAoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+X0dyb3VwRGVhY3RpdmF0ZSgKICAgICAgICBOYW1lID0+ICd0aGUtZ3JvdXAtbmFtZScsCiAgICApOwoKPWN1dAoKc3ViIF9Hcm91cERlYWN0aXZhdGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte05hbWV9ICkgewogICAgICAgIEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIE5hbWUhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCBncm91cCBvYmplY3QKICAgIG15ICRHcm91cE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpOwoKICAgICMgbG9va3VwIGdyb3VwIGlkCiAgICBteSAkR3JvdXBJRCA9ICRHcm91cE9iamVjdC0+R3JvdXBMb29rdXAoCiAgICAgICAgR3JvdXAgPT4gJFBhcmFte05hbWV9LAogICAgKTsKCiAgICByZXR1cm4gaWYgISRHcm91cElEOwoKICAgICMgZ2V0IHZhbGlkIGxpc3QKICAgIG15ICVWYWxpZExpc3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnKS0+VmFsaWRMaXN0KAogICAgICAgIFVzZXJJRCA9PiAxLAogICAgKTsKICAgIG15ICVWYWxpZExpc3RSZXZlcnNlID0gcmV2ZXJzZSAlVmFsaWRMaXN0OwoKICAgICMgZ2V0IGN1cnJlbnQgZ3JvdXAgZGF0YQogICAgbXkgJUdyb3VwRGF0YSA9ICRHcm91cE9iamVjdC0+R3JvdXBHZXQoCiAgICAgICAgSUQgICAgID0+ICRHcm91cElELAogICAgICAgIFVzZXJJRCA9PiAxLAogICAgKTsKCiAgICAjIGRlYWN0aXZhdGUgZ3JvdXAKICAgICRHcm91cE9iamVjdC0+R3JvdXBVcGRhdGUoCiAgICAgICAgJUdyb3VwRGF0YSwKICAgICAgICBWYWxpZElEID0+ICRWYWxpZExpc3RSZXZlcnNle2ludmFsaWR9LAogICAgICAgIFVzZXJJRCAgPT4gMSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBfTWlncmF0ZUNvbmZpZ3MoKQoKY2hhbmdlIGNvbmZpZ3VyYXRpb25zIHRvIG1hdGNoIHRoZSBuZXcgbW9kdWxlIGxvY2F0aW9uLgoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+X01pZ3JhdGVDb25maWdzKCk7Cgo9Y3V0CgpzdWIgX01pZ3JhdGVDb25maWdzIHsKCiAgICBteSAkU3lzQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycpOwogICAgbXkgJENvbmZpZ09iamVjdCAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBNaWdyYXRlIHRpbWUgYWNjb3VudGluZyBub3RpZmljYXRpb24gU3lzQ29uZmlnCiAgICAjICAgZ2V0IHNldHRpbmcgY29udGVudCBmb3IgdGltZSBhY2NvdW50aW5nIFN5c0NvbmZpZy4KICAgIG15ICRTZXR0aW5nID0gJENvbmZpZ09iamVjdC0+R2V0KCdGcm9udGVuZDo6Tm90aWZ5TW9kdWxlJyk7CgogICAgbXkgQE5ld1NldHRpbmdzOwoKICAgIGlmICggJFNldHRpbmctPnsnODg4LVRpbWVBY2NvdW50aW5nJ30tPntNb2R1bGV9ICkgewoKICAgICAgICAjIHVwZGF0ZSBtb2R1bGUgbG9jYXRpb24KICAgICAgICAkU2V0dGluZy0+eyc4ODgtVGltZUFjY291bnRpbmcnfS0+e01vZHVsZX0gPSAiS2VybmVsOjpPdXRwdXQ6OkhUTUw6Ok5vdGlmaWNhdGlvbjo6VGltZUFjY291bnRpbmciOwoKICAgICAgICAjIHNldCBuZXcgc2V0dGluZwogICAgICAgIHB1c2ggQE5ld1NldHRpbmdzLCB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICdGcm9udGVuZDo6Tm90aWZ5TW9kdWxlIyMjODg4LVRpbWVBY2NvdW50aW5nJywKICAgICAgICAgICAgRWZmZWN0aXZlVmFsdWUgPT4gJFNldHRpbmctPnsnVGltZUFjY291bnRpbmcnfSwKICAgICAgICB9OwogICAgfQoKICAgICMgTWlncmF0ZSB0aW1lIGFjY291bnRpbmcgdG9vbCBiYXIgU3lzQ29uZmlnCiAgICAjICAgZ2V0IHNldHRpbmcgY29udGVudCBmb3IgdGltZSBhY2NvdW50aW5nIFN5c0NvbmZpZy4KICAgICRTZXR0aW5nID0gJENvbmZpZ09iamVjdC0+R2V0KCdGcm9udGVuZDo6VG9vbEJhck1vZHVsZScpOwoKICAgIGlmICggJFNldHRpbmctPnsnMjAxLVRpbWVBY2NvdW50aW5nOjpJbmNvbXBsZXRlV29ya2luZ0RheXMnfS0+e01vZHVsZX0gKSB7CgogICAgICAgICMgdXBkYXRlIG1vZHVsZSBsb2NhdGlvbgogICAgICAgICRTZXR0aW5nLT57JzIwMS1UaW1lQWNjb3VudGluZzo6SW5jb21wbGV0ZVdvcmtpbmdEYXlzJ30tPntNb2R1bGV9CiAgICAgICAgICAgID0gIktlcm5lbDo6T3V0cHV0OjpIVE1MOjpUb29sQmFyOjpJbmNvbXBsZXRlV29ya2luZ0RheXMiOwoKICAgICAgICAjIHNldCBuZXcgc2V0dGluZwogICAgICAgIHB1c2ggQE5ld1NldHRpbmdzLCB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICdGcm9udGVuZDo6VG9vbEJhck1vZHVsZSMjIzIwMS1UaW1lQWNjb3VudGluZzo6SW5jb21wbGV0ZVdvcmtpbmdEYXlzJywKICAgICAgICAgICAgRWZmZWN0aXZlVmFsdWUgPT4gJFNldHRpbmctPnsnMjAxLVRpbWVBY2NvdW50aW5nOjpJbmNvbXBsZXRlV29ya2luZ0RheXMnfSwKICAgICAgICB9OwogICAgfQoKICAgIHJldHVybiAxIGlmICFATmV3U2V0dGluZ3M7CgogICAgbXkgJFN1Y2Nlc3MgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnJyktPlNldHRpbmdzU2V0KAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgQ29tbWVudHMgPT4gJ1RpbWVBY2NvdW50aW5nIC0gcGFja2FnZSBzZXR1cCBmdW5jdGlvbjogTWlncmF0ZUNvbmZpZ3MnLAogICAgICAgIFNldHRpbmdzID0+IFxATmV3U2V0dGluZ3MKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCj1oZWFkMiBfR2V0T1RSUzVDb25maWdCYWNrdXAoKQoKR2V0IHRoZSBjdXN0b20gY29uZmlndXJhdGlvbnMgbWFkZSBpbiB0aGUgcHJldmlvdXMgdmVyc2lvbiwgT1RSUyA1LgoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+X0dldE9UUlM1Q29uZmlnQmFja3VwKCk7Cgo9Y3V0CgpzdWIgX0dldE9UUlM1Q29uZmlnQmFja3VwIHsKICAgIG15ICRDb25maWcgPSB7fTsKCiAgICBteSAkRmlsZUNsYXNzID0gJ0tlcm5lbDo6Q29uZmlnOjpCYWNrdXBzOjpaWlpBdXRvT1RSUzUnOwogICAgZGVsZXRlICRJTkN7JEZpbGVDbGFzc307CgogICAgaWYgKAogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpNYWluJyktPlJlcXVpcmUoCiAgICAgICAgICAgICRGaWxlQ2xhc3MsCiAgICAgICAgICAgIFNpbGVudCA9PiAxLAogICAgICAgICkKICAgICAgICApCiAgICB7CiAgICAgICAgJEZpbGVDbGFzcy0+TG9hZCgkQ29uZmlnKTsKICAgIH0KCiAgICByZXR1cm4gJENvbmZpZzsKfQoKPWhlYWQyIF9NaWdyYXRlUGVybWlzc2lvbnMoKQoKY2hhbmdlIHBlcm1pc3Npb25zIHRvIG1hdGNoIHRoZSBvbGQgb25lcyBiZWZvcmUgdGhlIHVwZ3JhZGUuCgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5fTWlncmF0ZVBlcm1pc3Npb25zKCk7Cgo9Y3V0CgpzdWIgX01pZ3JhdGVQZXJtaXNzaW9ucyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRPbGRDb25maWcgPSAkU2VsZi0+X0dldE9UUlM1Q29uZmlnQmFja3VwKCk7CiAgICBteSAkTmV3Q29uZmlnID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICBteSAkR2V0Q29uZmlnID0gc3ViIHsKICAgICAgICBteSAkU291cmNlICAgICAgPSBzaGlmdDsKICAgICAgICBteSAkU2V0dGluZ05hbWUgPSBzaGlmdDsKCiAgICAgICAgbXkgJENvbmZpZyA9ICRTb3VyY2U7CiAgICAgICAgbXkgQEtleXMgICA9IHNwbGl0ICcjIyMnLCAkU2V0dGluZ05hbWU7CiAgICAgICAgd2hpbGUgKCBteSAkS2V5ID0gc2hpZnQgQEtleXMgKSB7CiAgICAgICAgICAgICRDb25maWcgPSAkQ29uZmlnLT57JEtleX07CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJENvbmZpZzsKICAgIH07CgogICAgbXkgQE5ld1NldHRpbmdzICAgICAgID0gKCk7CiAgICBteSBAU2V0dGluZ3NUb01pZ3JhdGUgPSAoCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICA9PiAnRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50VGltZUFjY291bnRpbmdFZGl0JywKICAgICAgICAgICAgRGVmYXVsdHMgPT4gewogICAgICAgICAgICAgICAgR3JvdXAgPT4gWwogICAgICAgICAgICAgICAgICAgICd0aW1lX2FjY291bnRpbmcnCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgR3JvdXBSbyA9PiBbCiAgICAgICAgICAgICAgICAgICAgJ3RpbWVfYWNjb3VudGluZycKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBOYXZCYXIgPT4gWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQmxvY2sgICA9PiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgR3JvdXBSbyA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGltZV9hY2NvdW50aW5nJwogICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdFZGl0JywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAoKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgID0+ICdGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRUaW1lQWNjb3VudGluZ092ZXJ2aWV3JywKICAgICAgICAgICAgRGVmYXVsdHMgPT4gewogICAgICAgICAgICAgICAgR3JvdXAgPT4gWwogICAgICAgICAgICAgICAgICAgICd0aW1lX2FjY291bnRpbmcnCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgR3JvdXBSbyA9PiBbCiAgICAgICAgICAgICAgICAgICAgJ3RpbWVfYWNjb3VudGluZycKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBOYXZCYXIgPT4gWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQmxvY2sgICA9PiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgR3JvdXBSbyA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGltZV9hY2NvdW50aW5nJwogICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdPdmVydmlldycsCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAoKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgICAgID0+ICdGcm9udGVuZDo6TW9kdWxlIyMjQWdlbnRUaW1lQWNjb3VudGluZ1NldHRpbmcnLAogICAgICAgICAgICBEZWZhdWx0cyA9PiB7CiAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbiA9PiAnVGltZSBhY2NvdW50aW5nIHNldHRpbmdzLicsCiAgICAgICAgICAgICAgICBHcm91cCAgICAgICA9PiBbCiAgICAgICAgICAgICAgICAgICAgJ3RpbWVfYWNjb3VudGluZycKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBHcm91cFJvID0+IFsKICAgICAgICAgICAgICAgICAgICAndGltZV9hY2NvdW50aW5nJwogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIE5hdkJhciA9PiBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBCbG9jayA9PiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgR3JvdXAgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RpbWVfYWNjb3VudGluZycKICAgICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnU2V0dGluZ3MnLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICB9LAogICAgICAgIH0sCgogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAgICAgPT4gJ0Zyb250ZW5kOjpNb2R1bGUjIyNBZ2VudFRpbWVBY2NvdW50aW5nUmVwb3J0aW5nJywKICAgICAgICAgICAgRGVmYXVsdHMgPT4gewogICAgICAgICAgICAgICAgR3JvdXAgPT4gWwogICAgICAgICAgICAgICAgICAgICd0aW1lX2FjY291bnRpbmcnCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgR3JvdXBSbyA9PiBbCiAgICAgICAgICAgICAgICAgICAgJ3RpbWVfYWNjb3VudGluZycKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICBOYXZCYXIgPT4gWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQmxvY2sgPT4gJycsCiAgICAgICAgICAgICAgICAgICAgICAgIEdyb3VwID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0aW1lX2FjY291bnRpbmcnCiAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1JlcG9ydGluZycsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKCiAgICAgICAgewogICAgICAgICAgICBOYW1lICAgICA9PiAnRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50VGltZUFjY291bnRpbmdWaWV3JywKICAgICAgICAgICAgRGVmYXVsdHMgPT4gewogICAgICAgICAgICAgICAgR3JvdXAgPT4gWwogICAgICAgICAgICAgICAgICAgICd0aW1lX2FjY291bnRpbmcnCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgR3JvdXBSbyA9PiBbCiAgICAgICAgICAgICAgICAgICAgJ3RpbWVfYWNjb3VudGluZycKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICk7CgogICAgbXkgJFN5c0NvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTeXNDb25maWcnKTsKCiAgICBTRVRUSU5HOgogICAgZm9yIG15ICRTZXR0aW5nIChAU2V0dGluZ3NUb01pZ3JhdGUpIHsKICAgICAgICBteSAkU2V0dGluZ09sZENvbmZpZyA9ICRHZXRDb25maWctPiggJE9sZENvbmZpZywgJFNldHRpbmctPntOYW1lfSwgKTsKICAgICAgICBteSAkU2V0dGluZ0RlZmF1bHRzICA9ICRTZXR0aW5nLT57RGVmYXVsdHN9OwoKICAgICAgICBteSBAR3JvdXBHcm91cFJvID0gcXcoIEdyb3VwIEdyb3VwUm8gKTsKCiAgICAgICAgewogICAgICAgICAgICBteSAkTmV3U2V0dGluZyA9ICRHZXRDb25maWctPiggJE5ld0NvbmZpZywgJFNldHRpbmctPntOYW1lfSApOwoKICAgICAgICAgICAgIyBDaGVjayBmb3IgR3JvdXAgYW5kIEdyb3VwUm8uCiAgICAgICAgICAgIGZvciBteSAkS2V5IChAR3JvdXBHcm91cFJvKSB7CiAgICAgICAgICAgICAgICBpZiAoIGRlZmluZWQgJFNldHRpbmdPbGRDb25maWctPnskS2V5fSB8fCBkZWZpbmVkICRTZXR0aW5nRGVmYXVsdHMtPnskS2V5fSApIHsKICAgICAgICAgICAgICAgICAgICAkTmV3U2V0dGluZy0+eyRLZXl9ID0gJFNldHRpbmdPbGRDb25maWctPnskS2V5fSAvLyAkU2V0dGluZ0RlZmF1bHRzLT57JEtleX07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHB1c2ggQE5ld1NldHRpbmdzLCB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICA9PiAkU2V0dGluZy0+e05hbWV9LAogICAgICAgICAgICAgICAgRWZmZWN0aXZlVmFsdWUgPT4gJE5ld1NldHRpbmcsCiAgICAgICAgICAgICAgICBJc1ZhbGlkICAgICAgICA9PiAxLAogICAgICAgICAgICB9OwogICAgICAgIH0KCiAgICAgICAgIyBDaGVjayBmb3IgTmF2QmFyID0+IE5hdmlnYXRpb24uCiAgICAgICAgaWYgKCAkU2V0dGluZ09sZENvbmZpZy0+e05hdkJhcn0gfHwgJFNldHRpbmdEZWZhdWx0cy0+e05hdkJhcn0gKSB7CiAgICAgICAgICAgIG15ICggdW5kZWYsICRGcm9udGVuZCApID0gc3BsaXQgJyMjIycsICRTZXR0aW5nLT57TmFtZX07CiAgICAgICAgICAgIG15ICROZXdTZXR0aW5nID0gJEdldENvbmZpZy0+KCAkTmV3Q29uZmlnLCAiRnJvbnRlbmQ6Ok5hdmlnYXRpb24jIyMkeyBGcm9udGVuZCB9IiApOwoKICAgICAgICAgICAgZm9yIG15ICRJbmRleCAoIHNvcnQga2V5cyAleyROZXdTZXR0aW5nfSApIHsKICAgICAgICAgICAgICAgIG15ICROZXdJdGVtcyA9ICROZXdTZXR0aW5nLT57JEluZGV4fTsKICAgICAgICAgICAgICAgIGZvciBteSAkTmV3SXRlbSAoIEB7JE5ld0l0ZW1zfSApIHsKCiAgICAgICAgICAgICAgICAgICAgU09VUkNFOgogICAgICAgICAgICAgICAgICAgIGZvciBteSAkU291cmNlICggKCAkU2V0dGluZ09sZENvbmZpZy0+e05hdkJhcn0sICRTZXR0aW5nRGVmYXVsdHMtPntOYXZCYXJ9ICkgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG15ICRPbGRJdGVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IExpc3Q6OlV0aWw6OmZpcnN0IHsgJF8tPntOYW1lfSBlcSAkTmV3SXRlbS0+e05hbWV9ICYmICRfLT57QmxvY2t9IGVxICROZXdJdGVtLT57QmxvY2t9IH0KICAgICAgICAgICAgICAgICAgICAgICAgQHskU291cmNlfTsKICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCBTT1VSQ0UgaWYgISRPbGRJdGVtOwoKICAgICAgICAgICAgICAgICAgICAgICAgZm9yIG15ICRLZXkgKEBHcm91cEdyb3VwUm8pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggZGVmaW5lZCAkT2xkSXRlbS0+eyRLZXl9ICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICROZXdJdGVtLT57JEtleX0gPSAkT2xkSXRlbS0+eyRLZXl9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3QgU09VUkNFOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBwdXNoIEBOZXdTZXR0aW5ncywgewogICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICJGcm9udGVuZDo6TmF2aWdhdGlvbiMjIyR7IEZyb250ZW5kIH0jIyMkeyBJbmRleCB9IiwKICAgICAgICAgICAgICAgICAgICBFZmZlY3RpdmVWYWx1ZSA9PiAkTmV3U2V0dGluZy0+eyRJbmRleH0sCiAgICAgICAgICAgICAgICAgICAgSXNWYWxpZCAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBEZXBsb3kgdGhlIG5ldyBzZXR0aW5ncy4KICAgIG15ICRTZXR0aW5nc0RlcGxveWVkID0gJFN5c0NvbmZpZ09iamVjdC0+U2V0dGluZ3NTZXQoCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICBDb21tZW50cyA9PiAnVGltZUFjY291bnRpbmcgLSBwYWNrYWdlIHNldHVwIGZ1bmN0aW9uOiBfTWlncmF0ZVBlcm1pc3Npb25zJywKICAgICAgICBTZXR0aW5ncyA9PiBcQE5ld1NldHRpbmdzLAogICAgKTsKICAgIGlmICggISRTZXR0aW5nc0RlcGxveWVkICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBNZXNzYWdlICA9PiAnRXJyb3Igd2hpbGUgZGVwbG95aW5nIHRoZSBtaWdyYXRlZCBwZXJtaXNzaW9ucyEnLAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCjE7Cgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHBzOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMg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IG9iagpbL0lDQ0Jhc2VkIDIgMCBSXQplbmRvYmoKNSAwIG9iago8PAogIC9UeXBlIC9NZXRhZGF0YQogIC9TdWJ0eXBlIC9YTUwKICAvTGVuZ3RoIDYgMCBSCj4+CnN0cmVhbQo8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iPgo8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgo8cmRmOkRlc2NyaXB0aW9uIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgcmRmOmFib3V0PSIiPgo8ZGM6Zm9ybWF0PmFwcGxpY2F0aW9uL3BkZjwvZGM6Zm9ybWF0Pgo8ZGM6bGFuZ3VhZ2U+ZW48L2RjOmxhbmd1YWdlPgo8ZGM6ZGF0ZT4yMDIwLTAxLTI0VDE3OjAxOjE0WjwvZGM6ZGF0ZT4KPC9yZGY6RGVzY3JpcHRpb24+CjxyZGY6RGVzY3JpcHRpb24geG1sbnM6cGRmPSJodHRwOi8vbnMuYWRvYmUuY29tL3BkZi8xLjMvIiByZGY6YWJvdXQ9IiI+CjxwZGY6UHJvZHVjZXI+QXBhY2hlIEZPUCBWZXJzaW9uIDIuMTwvcGRmOlByb2R1Y2VyPgo8cGRmOlBERlZlcnNpb24+MS40PC9wZGY6UERGVmVyc2lvbj4KPC9yZGY6RGVzY3JpcHRpb24+CjxyZGY6RGVzY3JpcHRpb24geG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiByZGY6YWJvdXQ9IiI+Cjx4bXA6Q3JlYXRvclRvb2w+QXBhY2hlIEZPUCBWZXJzaW9uIDIuMTwveG1wOkNyZWF0b3JUb29sPgo8eG1wOk1ldGFkYXRhRGF0ZT4yMDIwLTAxLTI0VDE3OjAxOjE0WjwveG1wOk1ldGFkYXRhRGF0ZT4KPHhtcDpDcmVhdGVEYXRlPjIwMjAtMDEtMjRUMTc6MDE6MTRaPC94bXA6Q3JlYXRlRGF0ZT4KPC9yZGY6RGVzY3JpcHRpb24+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IG51bGxdCj4+CmVuZG9iago1MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDY3OS42MjkgMTE3LjE5IDY4OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNTAgMCBSCi9IIC9JCgo+PgplbmRvYmoKNTIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0LjA5IDY3OS42MjkgNTQwLjAgNjg5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA1MCAwIFIKL0ggL0kKCj4+CmVuZG9iago1MyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iago1NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDY2Ny42MjkgMTUzLjg1OCA2NzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDUzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjU1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNjY3LjYyOSA1MzkuOTk4IDY3Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNTMgMCBSCi9IIC9JCgo+PgplbmRvYmoKNTYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCA3MDAuOCBudWxsXQo+PgplbmRvYmoKNTcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjU1LjYyOSAyNTMuNTA3IDY2NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNTYgMCBSCi9IIC9JCgo+PgplbmRvYmoKNTggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA2NTUuNjI5IDUzOS45OTggNjY1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA1NiAwIFIKL0ggL0kKCj4+CmVuZG9iago1OSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDYzNC42OSBudWxsXQo+PgplbmRvYmoKNjAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjQzLjYyOSAyMjYuMTMyIDY1My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNTkgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA2NDMuNjI5IDUzOS45OTggNjUzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA1OSAwIFIKL0ggL0kKCj4+CmVuZG9iago2MiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDU0Ni43NjEgbnVsbF0KPj4KZW5kb2JqCjYzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDYzMS42MjkgMjU1LjAxOSA2NDEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDYyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjY0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNjMxLjYyOSA1MzkuOTk4IDY0MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjIgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCA0ODAuNjUxIG51bGxdCj4+CmVuZG9iago2NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MTkuNjI5IDI0Ny41MDggNjI5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA2NSAwIFIKL0ggL0kKCj4+CmVuZG9iago2NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDYxOS42MjkgNTM5Ljk5OCA2MjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDY1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjY4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI4IDAgUiAvWFlaIDcyLjAgNDAyLjU0MSBudWxsXQo+PgplbmRvYmoKNjkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjA3LjYyOSAyNTIuMTMzIDYxNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjggMCBSCi9IIC9JCgo+PgplbmRvYmoKNzAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA2MDcuNjI5IDUzOS45OTggNjE3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA2OCAwIFIKL0ggL0kKCj4+CmVuZG9iago3MSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDM2MC40MzEgbnVsbF0KPj4KZW5kb2JqCjcyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDU5NS42MjkgMjYzLjY1NiA2MDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDcxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjczIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNTk1LjYyOSA1MzkuOTk4IDYwNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzEgMCBSCi9IIC9JCgo+PgplbmRvYmoKNzQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCAzMDYuMzIxIG51bGxdCj4+CmVuZG9iago3NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1ODMuNjI5IDQwNy40NDkgNTkzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3NCAwIFIKL0ggL0kKCj4+CmVuZG9iago3NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDU4My42MjkgNTM5Ljk5OCA1OTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDc0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjc3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI4IDAgUiAvWFlaIDcyLjAgMjI4LjIxMSBudWxsXQo+PgplbmRvYmoKNzggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTcxLjYyOSAzMzMuNjE5IDU4MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzcgMCBSCi9IIC9JCgo+PgplbmRvYmoKNzkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA1NzEuNjI5IDUzOS45OTggNTgxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3NyAwIFIKL0ggL0kKCj4+CmVuZG9iago4MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDE2Mi4xMDEgbnVsbF0KPj4KZW5kb2JqCjgxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDU1OS42MjkgMzk2LjgwMSA1NjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDgwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjgyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy44MDggNTU5LjYyOSA1NDAuMTY4IDU2OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODAgMCBSCi9IIC9JCgo+PgplbmRvYmoKODMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzEgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKODQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTQ3LjYyOSAxODguNzk3IDU1Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODMgMCBSCi9IIC9JCgo+PgplbmRvYmoKODUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA1NDcuNjI5IDUzOS45OTggNTU3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4MyAwIFIKL0ggL0kKCj4+CmVuZG9iago4NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszNCAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iago4NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDUzNS42MjkgMjA0Ljk3NiA1NDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDg2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjg4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNTM1LjYyOSA1MzkuOTk4IDU0NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODYgMCBSCi9IIC9JCgo+PgplbmRvYmoKODkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzQgMCBSIC9YWVogNzIuMCA3MDAuOCBudWxsXQo+PgplbmRvYmoKOTAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTIzLjYyOSAxNzMuNDA4IDUzMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODkgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA1MjMuNjI5IDUzOS45OTggNTMzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4OSAwIFIKL0ggL0kKCj4+CmVuZG9iago5MiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszNCAwIFIgL1hZWiA3Mi4wIDYyNi40IG51bGxdCj4+CmVuZG9iago5MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1MTEuNjI5IDE2NC45MTMgNTIxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5MiAwIFIKL0ggL0kKCj4+CmVuZG9iago5NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuODA3IDUxMS42MjkgNTQwLjE2NyA1MjEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDkyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjk1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM0IDAgUiAvWFlaIDcyLjAgNTU4LjAgbnVsbF0KPj4KZW5kb2JqCjk2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDQ5OS42MjkgMjA5LjU1MiA1MDkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDk1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjk3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNDk5LjYyOSA1MzkuOTk4IDUwOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTUgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzQgMCBSIC9YWVogNzIuMCA0ODkuNiBudWxsXQo+PgplbmRvYmoKOTkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDg3LjYyOSAyMjEuNzk0IDQ5Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTggMCBSCi9IIC9JCgo+PgplbmRvYmoKMTAwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNDg3LjYyOSA1MzkuOTk4IDQ5Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTggMCBSCi9IIC9JCgo+PgplbmRvYmoKMTAxIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQwIDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjEwMiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDQ3NS42MjkgMTQ5LjM5IDQ4NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTAxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjEwMyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDQ3NS42MjkgNTM5Ljk5OCA0ODUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEwMSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAgMCBSIC9YWVogNzIuMCA2NDQuOCBudWxsXQo+PgplbmRvYmoKMTA1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDQ2My42MjkgMTk5LjAwNiA0NzMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEwNCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA0NjMuNjI5IDUzOS45OTggNDczLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMDQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTA3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQwIDAgUiAvWFlaIDcyLjAgNTY4LjQgbnVsbF0KPj4KZW5kb2JqCjEwOCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0NTEuNjI5IDE5NC42NDEgNDYxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMDcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTA5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNDUxLjYyOSA1MzkuOTk4IDQ2MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTA3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjExMCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MyAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagoxMTEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA0MzkuNjI5IDE2MS43ODQgNDQ5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMTAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTEyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNDM5LjYyOSA1MzkuOTk4IDQ0OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTEwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjExMyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MyAwIFIgL1hZWiA3Mi4wIDY2Ny42NzEgbnVsbF0KPj4KZW5kb2JqCjExNCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0MjcuNjI5IDM2MS45MjEgNDM3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMTMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTE1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNDI3LjYyOSA1MzkuOTk4IDQzNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTEzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjExNiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MyAwIFIgL1hZWiA3Mi4wIDYwNS41MzYgbnVsbF0KPj4KZW5kb2JqCjExNyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0MTUuNjI5IDM4OC42MDYgNDI1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMTYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTE4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgNDE1LjYyOSA1MzkuOTk3IDQyNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTE2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjExOSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MyAwIFIgL1hZWiA3Mi4wIDU0My40MDEgbnVsbF0KPj4KZW5kb2JqCjEyMCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0MDMuNjI5IDM5MS4wMzYgNDEzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMTkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTIxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgNDAzLjYyOSA1MzkuOTk3IDQxMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTE5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEyMiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MyAwIFIgL1hZWiA3Mi4wIDQ4MS4yNjYgbnVsbF0KPj4KZW5kb2JqCjEyMyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzOTEuNjI5IDM3OC4yODcgNDAxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMjIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTI0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgMzkxLjYyOSA1MzkuOTk3IDQwMS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTIyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjEyNSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MyAwIFIgL1hZWiA3Mi4wIDQxOS4xMzEgbnVsbF0KPj4KZW5kb2JqCjEyNiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzNzkuNjI5IDM2NS4zNzggMzg5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMjUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTI3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgMzc5LjYyOSA1MzkuOTk3IDM4OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTI1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEyOCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MyAwIFIgL1hZWiA3Mi4wIDM1Ni45OTYgbnVsbF0KPj4KZW5kb2JqCjEyOSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzNjcuNjI5IDUwNi4wMjEgMzc3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMjggMCBSCi9IIC9JCgo+PgplbmRvYmoKMTMwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy43IDM2Ny42MjkgNTQwLjA2IDM3Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTI4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEzMSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MyAwIFIgL1hZWiA3Mi4wIDI4MC40NjEgbnVsbF0KPj4KZW5kb2JqCjEzMiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzNTUuNjI5IDQ5MC40NyAzNjUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzMSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzQzLjYyOSAxNTAuNzkgMzUzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTM0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42NCAzNDMuNjI5IDU0MC4wIDM1My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTMxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjEzNSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MyAwIFIgL1hZWiA3Mi4wIDIwMy45MjYgbnVsbF0KPj4KZW5kb2JqCjEzNiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzMzEuNjI5IDQ5Mi4wIDM0MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTM1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEzNyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzMTkuNjI5IDE1MC43OSAzMjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzNSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjY0IDMxOS42MjkgNTQwLjAgMzI5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTM5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQzIDAgUiAvWFlaIDcyLjAgMTI3LjM5MSBudWxsXQo+PgplbmRvYmoKMTQwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDMwNy42MjkgNTA3LjM4IDMxNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTM5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyOTUuNjI5IDEyMi42MSAzMDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzOSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNDIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOSAyOTUuNjI5IDUzOS45OTkgMzA1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTQzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ2IDAgUiAvWFlaIDcyLjAgNzA4LjAgbnVsbF0KPj4KZW5kb2JqCjE0NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyODMuNjI5IDUwMS42OSAyOTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE0MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNDUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMjcxLjYyOSAxMjIuNjEgMjgxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNDMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTQ2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzkgMjcxLjYyOSA1MzkuOTk5IDI4MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0NyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0NiAwIFIgL1hZWiA3Mi4wIDYyOC4yMDIgbnVsbF0KPj4KZW5kb2JqCjE0OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyNTkuNjI5IDM3MC42MzcgMjY5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNDcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTQ5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgMjU5LjYyOSA1MzkuOTk3IDI2OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQ3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE1MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0NiAwIFIgL1hZWiA3Mi4wIDU2Mi44MDQgbnVsbF0KPj4KZW5kb2JqCjE1MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyNDcuNjI5IDUwNS4zOTQgMjU3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNTAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTUyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42OTggMjQ3LjYyOSA1NDAuMDU4IDI1Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTUwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE1MyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0NiAwIFIgL1hZWiA3Mi4wIDQ3MS4wMDYgbnVsbF0KPj4KZW5kb2JqCjE1NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyMzUuNjI5IDQ2Ni41NDcgMjQ1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNTMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTU1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgMjM1LjYyOSA1MzkuOTk3IDI0NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTUzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE1NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0NiAwIFIgL1hZWiA3Mi4wIDM5MS4yMDggbnVsbF0KPj4KZW5kb2JqCjE1NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyMjMuNjI5IDQ5NC4xMzggMjMzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNTYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTU4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzUgMjIzLjYyOSA1MzkuOTk1IDIzMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTU2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE1OSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0NiAwIFIgL1hZWiA3Mi4wIDMxMS40MSBudWxsXQo+PgplbmRvYmoKMTYwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDIxMS42MjkgNDk1LjY1OSAyMjEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE1OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNjEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNSAyMTEuNjI5IDUzOS45OTUgMjIxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNTkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTYyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ2IDAgUiAvWFlaIDcyLjAgMjMxLjYxMiBudWxsXQo+PgplbmRvYmoKMTYzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDE5OS42MjkgNDgyLjkxMiAyMDkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE2MiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNjQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyAxOTkuNjI5IDUzOS45OTcgMjA5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNjIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTY1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ2IDAgUiAvWFlaIDcyLjAgMTUxLjgxNCBudWxsXQo+PgplbmRvYmoKMTY2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDE4Ny42MjkgNDcwLjkxIDE5Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTY1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE2NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDE4Ny42MjkgNTM5Ljk5NyAxOTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE2NSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNjggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDkgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKMTY5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDE3NS42MjkgMzY5Ljc5IDE4NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTY4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE3MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDE3NS42MjkgNTM5Ljk5NyAxODUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE2OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNzEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDkgMCBSIC9YWVogNzIuMCA2NjIuOTEgbnVsbF0KPj4KZW5kb2JqCjE3MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxNjMuNjI5IDQwMS4xMTYgMTczLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNzEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTczIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgMTYzLjYyOSA1MzkuOTk3IDE3My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTcxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE3NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0OSAwIFIgL1hZWiA3Mi4wIDYwMC4yMTMgbnVsbF0KPj4KZW5kb2JqCjE3NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxNTEuNjI5IDMxOS43MjkgMTYxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNzQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTc2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgMTUxLjYyOSA1MzkuOTk3IDE2MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTc0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE3NyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0OSAwIFIgL1hZWiA3Mi4wIDUyNS41MTYgbnVsbF0KPj4KZW5kb2JqCjE3OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxMzkuNjI5IDI2OC45NCAxNDkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE3NyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNzkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyAxMzkuNjI5IDUzOS45OTcgMTQ5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNzcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTgwIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ5IDAgUiAvWFlaIDcyLjAgNDM4LjgxOSBudWxsXQo+PgplbmRvYmoKMTgxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDEyNy42MjkgMzI5LjgwOSAxMzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE4MCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxODIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyAxMjcuNjI5IDUzOS45OTcgMTM3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxODAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTgzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ5IDAgUiAvWFlaIDcyLjAgMzY0LjEyMiBudWxsXQo+PgplbmRvYmoKMTg0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDExNS42MjkgMzExLjMxMiAxMjUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE4MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxODUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyAxMTUuNjI5IDUzOS45OTcgMTI1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxODMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTg2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ5IDAgUiAvWFlaIDcyLjAgMzAxLjQyNSBudWxsXQo+PgplbmRvYmoKMTg3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDEwMy42MjkgMzEzLjY0MyAxMTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE4NiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxODggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyAxMDMuNjI5IDUzOS45OTcgMTEzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxODYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTg5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ5IDAgUiAvWFlaIDcyLjAgMjM4LjcyOCBudWxsXQo+PgplbmRvYmoKMTkwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDkxLjYyOSAzMTQuMjEgMTAxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxODkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTkxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggOTEuNjI5IDUzOS45OTggMTAxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxODkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTkyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ5IDAgUiAvWFlaIDcy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NDkgMCBSIC9YWVogNzIuMCAxMTMuMzM0IG51bGxdCj4+CmVuZG9iagoyMzcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNzA5LjAwNSAzMTYuMTUzIDcxOC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjM2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjIzOCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDcwOS4wMDUgNTM5Ljk5NyA3MTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIzNiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMzkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjAxIDAgUiAvWFlaIDcyLjAgNzA4LjAgbnVsbF0KPj4KZW5kb2JqCjI0MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2OTcuMDA1IDMyMS41NjEgNzA2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyMzkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjQxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNjk3LjAwNSA1MzkuOTk4IDcwNi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjM5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI0MiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDEgMCBSIC9YWVogNzIuMCA2NDQuODg5IG51bGxdCj4+CmVuZG9iagoyNDMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjg1LjAwNSAzMzAuMTE3IDY5NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjQyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI0NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDY4NS4wMDUgNTM5Ljk5OCA2OTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI0MiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNDUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjAxIDAgUiAvWFlaIDcyLjAgNTgxLjc3OCBudWxsXQo+PgplbmRvYmoKMjQ2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY3My4wMDUgMzI3Ljg5NiA2ODIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI0NSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNDcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA2NzMuMDA1IDUzOS45OTggNjgyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNDUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjQ4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIwMSAwIFIgL1hZWiA3Mi4wIDUxOC42NjcgbnVsbF0KPj4KZW5kb2JqCjI0OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2NjEuMDA1IDMxOS44ODggNjcwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNDggMCBSCi9IIC9JCgo+PgplbmRvYmoKMjUwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgNjYxLjAwNSA1MzkuOTk3IDY3MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjQ4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI1MSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDEgMCBSIC9YWVogNzIuMCA0NTUuNTU2IG51bGxdCj4+CmVuZG9iagoyNTIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjQ5LjAwNSAzMDUuMTU2IDY1OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjUxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI1MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDY0OS4wMDUgNTM5Ljk5OCA2NTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI1MSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNTQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjAxIDAgUiAvWFlaIDcyLjAgMzkyLjQ0NSBudWxsXQo+PgplbmRvYmoKMjU1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDYzNy4wMDUgMzM4LjUyNCA2NDYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI1NCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNTYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyA2MzcuMDA1IDUzOS45OTcgNjQ2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNTQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjU3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIwMSAwIFIgL1hZWiA3Mi4wIDMyOS4zMzQgbnVsbF0KPj4KZW5kb2JqCjI1OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MjUuMDA1IDMyOC4zOTQgNjM0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNTcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjU5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNjI1LjAwNSA1MzkuOTk4IDYzNC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjU3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI2MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDEgMCBSIC9YWVogNzIuMCAyNTQuMjIzIG51bGxdCj4+CmVuZG9iagoyNjEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjEzLjAwNSA0ODAuNzcgNjIyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNjAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjYyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNjEzLjAwNSA1MzkuOTk4IDYyMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjYwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI2MyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDEgMCBSIC9YWVogNzIuMCAxNzYuNzEyIG51bGxdCj4+CmVuZG9iagoyNjQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjAxLjAwNSAzNzUuNzg2IDYxMC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjYzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI2NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDYwMS4wMDUgNTM5Ljk5OCA2MTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI2MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNjYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjAxIDAgUiAvWFlaIDcyLjAgMTEzLjYwMSBudWxsXQo+PgplbmRvYmoKMjY3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDU4OS4wMDUgMzI3LjMzOCA1OTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI2NiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNjggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA1ODkuMDA1IDUzOS45OTggNTk4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNjYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjY5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIwNCAwIFIgL1hZWiA3Mi4wIDcwOC4wIG51bGxdCj4+CmVuZG9iagoyNzAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTc3LjAwNSAzNjQuOTY5IDU4Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjY5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI3MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDU3Ny4wMDUgNTM5Ljk5OCA1ODYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI2OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNzIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjA0IDAgUiAvWFlaIDcyLjAgNjQzLjYgbnVsbF0KPj4KZW5kb2JqCjI3MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1NjUuMDA1IDQzOC40NDggNTc0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNzIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjc0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgNTY1LjAwNSA1MzkuOTk3IDU3NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjcyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI3NSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDQgMCBSIC9YWVogNzIuMCA1NjcuMiBudWxsXQo+PgplbmRvYmoKMjc2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDU1My4wMDUgMzMwLjQ2NiA1NjIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI3NSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNzcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyA1NTMuMDA1IDUzOS45OTcgNTYyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNzUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjc4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIwNCAwIFIgL1hZWiA3Mi4wIDQ5MC44IG51bGxdCj4+CmVuZG9iagoyNzkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTQxLjAwNSAzMjIuNjI3IDU1MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjc4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI4MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDU0MS4wMDUgNTM5Ljk5NyA1NTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI3OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyODEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjA0IDAgUiAvWFlaIDcyLjAgNDE0LjQgbnVsbF0KPj4KZW5kb2JqCjI4MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1MjkuMDA1IDI3NS41ODQgNTM4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyODEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjgzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgNTI5LjAwNSA1MzkuOTk3IDUzOC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjgxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI4NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDQgMCBSIC9YWVogNzIuMCAzMzguMCBudWxsXQo+PgplbmRvYmoKMjg1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDUxNy4wMDUgMjU2LjczOCA1MjYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI4NCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyODYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyA1MTcuMDA1IDUzOS45OTcgNTI2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyODQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjg3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIwNyAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagoyODggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA1MDUuMDA1IDEyNS4yNzYgNTE0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyODcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjg5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yNzggNTA1LjAwNSA1MzkuOTk4IDUxNC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjg3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI5MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDcgMCBSIC9YWVogNzIuMCA1NzAuMTYyIG51bGxdCj4+CmVuZG9iagoyOTEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDkzLjAwNSAyMjYuODQgNTAyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyOTAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjkyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yNzcgNDkzLjAwNSA1MzkuOTk3IDUwMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjkwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI5MyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMDcgMCBSIC9YWVogNzIuMCAyODQuNzM0IG51bGxdCj4+CmVuZG9iagoyOTQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDgxLjAwNSAyMTQuMzk3IDQ5MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjkzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI5NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjc3IDQ4MS4wMDUgNTM5Ljk5NyA0OTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI5MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoyOTYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjEwIDAgUiAvWFlaIDcyLjAgNjgyLjQ0IG51bGxdCj4+CmVuZG9iagoyOTcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDY5LjAwNSAxNzUuMzIgNDc4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyOTYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjk4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yNzggNDY5LjAwNSA1MzkuOTk4IDQ3OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjk2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI5OSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTAgMCBSIC9YWVogNzIuMCAzOTguNDI0IG51bGxdCj4+CmVuZG9iagozMDAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDU3LjAwNSAyNjIuNjkyIDQ2Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjk5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMwMSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjc3IDQ1Ny4wMDUgNTM5Ljk5NyA0NjYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI5OSAwIFIKL0ggL0kKCj4+CmVuZG9iagozMDIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjIzIDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjMwMyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDQ0NS4wMDUgMTMyLjkwOCA0NTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMwMiAwIFIKL0ggL0kKCj4+CmVuZG9iagozMDQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjI3OCA0NDUuMDA1IDUzOS45OTggNDU0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMDIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzA1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIzMiAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagozMDYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA0MzMuMDA1IDExOS4wNiA0NDIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMwNSAwIFIKL0ggL0kKCj4+CmVuZG9iagozMDcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjI3OCA0MzMuMDA1IDUzOS45OTggNDQyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMDUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzA4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIzMiAwIFIgL1hZWiA3Mi4wIDY3OC44IG51bGxdCj4+CmVuZG9iagozMDkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDIxLjAwNSAxNzEuOTIgNDMwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMDggMCBSCi9IIC9JCgo+PgplbmRvYmoKMzEwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yNzggNDIxLjAwNSA1MzkuOTk4IDQzMC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzA4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMxMSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMzIgMCBSIC9YWVogNzIuMCA2MjQuNCBudWxsXQo+PgplbmRvYmoKMzEyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDQwOS4wMDUgMTY3LjgzMyA0MTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMxMSAwIFIKL0ggL0kKCj4+CmVuZG9iagozMTMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjI3OCA0MDkuMDA1IDUzOS45OTggNDE4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMTEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzE0IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIzNSAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagozMTUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCAzOTcuMDA1IDE1MC4zMzMgNDA2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMTQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzE2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy40NDggMzk3LjAwNSA1NDAuMTY4IDQwNi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzE0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMxNyAwIG9iago8PCAvTGVuZ3RoIDMxOCAwIFIgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCniczZ3Nri3HcaXn9ynOC6iU/z+AcQGTFI3umWECHgga2bA9EN3gyK/fsTKrKrPuKXavBVCgIFC8PLe+s3fu2hUZGT8rfvniP5z97w/4V+3h499+/vLL+TP/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+Ss7aAplbmRzdHJlYW0KZW5kb2JqCjMyNyAwIG9iagoxNDQzMwplbmRvYmoKMzI2IDAgb2JqCjw8IC9MZW5ndGggMzI4IDAgUiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeJybxPD/D//N7y/4////oQAAORgIegplbmRzdHJlYW0KZW5kb2JqCjMyOCAwIG9iagoyMgplbmRvYmoKMzI5IDAgb2JqCjw8CiAgL1R5cGUgL0ZvbnQKICAvU3VidHlwZSAvVHlwZTAKICAvQmFzZUZvbnQgL0VBQUFBQStEZWphVnVTYW5zLUJvbGQKICAvRW5jb2RpbmcgL0lkZW50aXR5LUgKICAvVG9Vbmljb2RlIDMzMCAwIFIKICAvRGVzY2VuZGFudEZvbnRzIFszMzEgMCBSXQo+PgplbmRvYmoKMzMxIDAgb2JqCjw8IC9UeXBlIC9Gb250Ci9CYXNlRm9udCAvRUFBQUFBK0RlamFWdVNhbnMtQm9sZCAKL0NJRFRvR0lETWFwIC9JZGVudGl0eSAKL1N1YnR5cGUgL0NJREZvbnRUeXBlMgovQ0lEU3lzdGVtSW5mbyA8PCAvUmVnaXN0cnkgKEFkb2JlKSAvT3JkZXJpbmcgKFVDUykgL1N1cHBsZW1lbnQgMCA+PgovRm9udERlc2NyaXB0b3IgMzI0IDAgUgovRFcgMAovVyBbIDAgWzYwMCAzNDggNDE1IDgzMCA2ODcgNTkyIDcxMSAxMDQxIDY3OCA3MTEgNDc4IDY3NCAzNDIgNjgyIDc3MyA3MTUgNzcwIDU5NSA0OTMgOTk1IDcxNSAzNDIgMzc5IDc3MyA2OTUgNjk1IDY5NSA2OTUgNjgzIDc2MiAzOTkgNjk1IDY5NSA3MTUgNDM1IDczMyA2MzcgNjQ1IDcxNSA3MzIgNzExIDM0OCA2ODMgODUwIDY1MSA5MjMgNjk1IDcyMCA4MzYgNjk1IDY1MSAxMTAzIDY5NSA2OTUgNzE1IDY2NSAzNzIgODM3IDM0MiA4MTIgODM2IDcyNCAzNjUgXSBdCj4+CmVuZG9iagozMzAgMCBvYmoKPDwgL0xlbmd0aCAzMzIgMCBSIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4nF2Uy46bQBBF9/6KXs4sRtAPYEYaWYocRfIi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2o7H/v/zQf/bAvwPPyPQ/wEp+27NCmVuZHN0cmVhbQplbmRvYmoKMzQ1IDAgb2JqCjExMDQxCmVuZG9iagozNDQgMCBvYmoKPDwgL0xlbmd0aCAzNDYgMCBSIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4nJvA8OOIf0f5Q/7f318AACrCB2UKZW5kc3RyZWFtCmVuZG9iagozNDYgMCBvYmoKMjEKZW5kb2JqCjM0NyAwIG9iago8PAogIC9UeXBlIC9Gb250CiAgL1N1YnR5cGUgL1R5cGUwCiAgL0Jhc2VGb250IC9FQUFBQUMrRGVqYVZ1U2Fuc01vbm8KICAvRW5jb2RpbmcgL0lkZW50aXR5LUgKICAvVG9Vbmljb2RlIDM0OCAwIFIKICAvRGVzY2VuZGFudEZvbnRzIFszNDkgMCBSXQo+PgplbmRvYmoKMzQ5IDAgb2JqCjw8IC9UeXBlIC9Gb250Ci9CYXNlRm9udCAvRUFBQUFDK0RlamFWdVNhbnNNb25vIAovQ0lEVG9HSURNYXAgL0lkZW50aXR5IAovU3VidHlwZSAvQ0lERm9udFR5cGUyCi9DSURTeXN0ZW1JbmZvIDw8IC9SZWdpc3RyeSAoQWRvYmUpIC9PcmRlcmluZyAoVUNTKSAvU3VwcGxlbWVudCAwID4+Ci9Gb250RGVzY3JpcHRvciAzNDIgMCBSCi9EVyAwCi9XIFsgMCBbNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIF0gXQo+PgplbmRvYmoKMzQ4IDAgb2JqCjw8IC9MZW5ndGggMzUwIDAgUiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeJxdk9tq4zAQhu/zFLpsL4qtsWy1UAIly0Iu9kCz+wC2NE4NG1kozkXefmX9Uy+sIYfPmhnNZ2uqw/HLMUyLqn6m2Z14UeMUfOLrfEuO1cDnKew0KT+5Rah8u0sfd1VOPt2vC1+OYZxVgyh/ixKpVPWe/1yXdFcPb34e+FF5Htf7P5LnNIWzevh9OG13T7cY//CFw6Lqco+DL7/V4Vsfv/cXVlWp83T0OWha7k85/V/Er3tkRYU1enCz52vsHac+nHn3Wudrr16/5mu/Vv9v3VikDaP76NMWPuZrX0hnqmuqQVSodaCmkG1AplD3DGpBLagDSZ4t1DDoGWsEegG9gHqQRA7oRTpzWBPy6MWAGCQ1R+Shiq4LGXSt4Wfhp+FnNAh+HWpq8fMg+DU9CH6tVIFfJ1XET/YTvwEkfhYEPwN3Db9Wdhc/PE8NP5Je4Nd0hQgODSIJDgZVCA5WIuHQSqQ44JkRHCx6ITgYiYSDwZMnOFg4EBxa2JI4yH5wMHgPBIdO1uBgsHuDd9TacmTlbOrPk7qdbEIY4R3mJERjfT3r68xug+RuKeUZKiNbhmcdmynwNvtxjmtW+fwFihAI1QplbmRzdHJlYW0KZW5kb2JqCjM1MCAwIG9iago0NDgKZW5kb2JqCjE1IDAgb2JqCjw8IC9UeXBlIC9QYWdlcwovQ291bnQgMjMKL0tpZHMgWzEzIDAgUiAxOTggMCBSIDMyMCAwIFIgMjE3IDAgUiAyNSAwIFIgMjggMCBSIDMxIDAgUiAzNCAwIFIgNDAgMCBSIDQzIDAgUiA0NiAwIFIgNDkgMCBSIDIwMSAwIFIgMjA0IDAgUiAyMDcgMCBSIDIxMCAwIFIgMjIwIDAgUiAyMjMgMCBSIDIyNiAwIFIgMjI5IDAgUiAyMzIgMCBSIDIzNSAwIFIgMzIzIDAgUiBdID4+CmVuZG9iagozNTEgMCBvYmoKPDwKICAvVHlwZSAvQ2F0YWxvZwogIC9QYWdlcyAxNSAwIFIKICAvTGFuZyAoZW4pCiAgL01ldGFkYXRhIDUgMCBSCiAgL1BhZ2VMYWJlbHMgMzUyIDAgUgo+PgplbmRvYmoKMTQgMCBvYmoKPDwKICAvRm9udCA8PAogIC9GMTYgMzI5IDAgUgogIC9GMTUgMzM4IDAgUgogIC9GMTkgMzQ3IDAgUgo+PgogIC9Qcm9jU2V0IFsvUERGIC9JbWFnZUIgL0ltYWdlQyAvVGV4dF0KICAvWE9iamVjdCA8PAogIC9JbTEgNyAwIFIKICAvSW0yIDkgMCBSCiAgL0ltMyAxNiAwIFIKICAvSW00IDE4IDAgUgo+PgogIC9Db2xvclNwYWNlIDw8IC9EZWZhdWx0UkdCIDQgMCBSID4+Cj4+CmVuZG9iagozNTIgMCBvYmoKPDwgL051bXMgWzAgPDwgL1MgL0QgPj4gMSA8PCAvUyAvciAvU3QgMiA+PiAyIDw8IC9TIC9yIC9TdCAzID4+IDMgPDwgL1MgL3IgL1N0IDQgPj4gNCA8PCAvUyAvciAvU3QgNSA+PiA1IDw8IC9TIC9EID4+IDEyIDw8IC9TIC9EIC9TdCA4ID4+IDE2IDw8IC9TIC9EIC9TdCAxMiA+PiAyMiA8PCAvUyAvRCAvU3QgMTggPj5dID4+CmVuZG9iagp4cmVmCjAgMzUzCjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAxNSAwMDAwMCBuIAowMDAwMDAwMTM5IDAwMDAwIG4gCjAwMDAwMDI2NzcgMDAwMDAgbiAKMDAwMDAwMjY5NyAwMDAwMCBuIAowMDAwMDAyNzMwIDAwMDAwIG4gCjAwMDAwMDM2NjIgMDAwMDAgbiAKMDAwMDAwMzY4MSAwMDAwMCBuIAowMDAwMDUyMjA2IDAwMDAwIG4gCjAwMDAwNTIyMjcgMDAwMDAgbiAKMDAwMDEwNTQ4NyAwMDAwMCBuIAowMDAwMTA1NTA5IDAwMDAwIG4gCjAwMDAxMDYwMDkgMDAwMDAgbiAKMDAwMDEwNjAyOSAwMDAwMCBuIAowMDAwMjY4OTUzIDAwMDAwIG4gCjAwMDAyNjg2MTUgMDAwMDAgbiAKMDAwMDEwNjIyMyAwMDAwMCBuIAowMDAwMTEyMzk0IDAwMDAwIG4gCjAwMDAxMTI0MTUgMDAwMDAgbiAKMDAwMDExOTU5NSAwMDAwMCBuIAowMDAwMTE5NjE2IDAwMDAwIG4gCjAwMDAxMTk3MDEgMDAwMDAgbiAKMDAwMDExOTgzOSAwMDAwMCBuIAowMDAwMTIwNzcyIDAwMDAwIG4gCjAwMDAxMjA3OTIgMDAwMDAgbiAKMDAwMDEyMDgxOSAwMDAwMCBuIAowMDAwMTIxMDMwIDAwMDAwIG4gCjAwMDAxMjQwMzIgMDAwMDAgbiAKMDAwMDEyNDA1MyAwMDAwMCBuIAowMDAwMTI0MjQ3IDAwMDAwIG4gCjAwMDAxMjQ5MTcgMDAwMDAgbiAKMDAwMDEyNDkzNyAwMDAwMCBuIAowMDAwMTI1MTMxIDAwMDAwIG4gCjAwMDAxMjU5ODEgMDAwMDAgbiAKMDAwMDEyNjAwMSAwMDAwMCBuIAowMDAwMTI2MTk1IDAwMDAwIG4gCjAwMDAxMjYyOTAgMDAwMDAgbiAKMDAwMDEyNjQyNiAwMDAwMCBuIAowMDAwMTI3ODMzIDAwMDAwIG4gCjAwMDAxMjc4NTQgMDAwMDAgbiAKMDAwMDEyNzg4MSAwMDAwMCBuIAowMDAwMTI4MDkyIDAwMDAwIG4gCjAwMDAxMjkzNDggMDAwMDAgbiAKMDAwMDEyOTM2OSAwMDAwMCBuIAowMDAwMTI5NTYzIDAwMDAwIG4gCjAwMDAxMzA5NDcgMDAwMDAgbiAKMDAwMDEzMDk2OCAwMDAwMCBuIAowMDAwMTMxMTYyIDAwMDAwIG4gCjAwMDAxMzI5MjQgMDAwMDAgbiAKMDAwMDEzMjk0NSAwMDAwMCBuIAowMDAwMTMzMTM5IDAwMDAwIG4gCjAwMDAxMzMyMTcgMDAwMDAgbiAKMDAwMDEzMzM1MyAwMDAwMCBuIAowMDAwMTMzNDkwIDAwMDAwIG4gCjAwMDAxMzM1NjggMDAwMDAgbiAKMDAwMDEzMzcwNSAwMDAwMCBuIAowMDAwMTMzODQ1IDAwMDAwIG4gCjAwMDAxMzM5MjMgMDAwMDAgbiAKMDAwMDEzNDA2MSAwMDAwMCBuIAowMDAwMTM0MjAxIDAwMDAwIG4gCjAwMDAxMzQyODAgMDAwMDAgbiAKMDAwMDEzNDQxOCAwMDAwMCBuIAowMDAwMTM0NTU4IDAwMDAwIG4gCjAwMDAxMzQ2MzggMDAwMDAgbiAKMDAwMDEzNDc3NiAwMDAwMCBuIAowMDAwMTM0OTE2IDAwMDAwIG4gCjAwMDAxMzQ5OTYgMDAwMDAgbiAKMDAwMDEzNTEzNCAwMDAwMCBuIAowMDAwMTM1Mjc0IDAwMDAwIG4gCjAwMDAxMzUzNTQgMDAwMDAgbiAKMDAwMDEzNTQ5MiAwMDAwMCBuIAowMDAwMTM1NjMyIDAwMDAwIG4gCjAwMDAxMzU3MTIgMDAwMDAgbiAKMDAwMDEzNTg1MCAwMDAwMCBuIAowMDAwMTM1OTkwIDAwMDAwIG4gCjAwMDAxMzYwNzAgMDAwMDAgbiAKMDAwMDEzNjIwOCAwMDAwMCBuIAowMDAwMTM2MzQ4IDAwMDAwIG4gCjAwMDAxMzY0MjggMDAwMDAgbiAKMDAwMDEzNjU2NiAwMDAwMCBuIAowMDAwMTM2NzA2IDAwMDAwIG4gCjAwMDAxMzY3ODYgMDAwMDAgbiAKMDAwMDEzNjkyNCAwMDAwMCBuIAowMDAwMTM3MDY0IDAwMDAwIG4gCjAwMDAxMzcxNDIgMDAwMDAgbiAKMDAwMDEzNzI4MCAwMDAwMCBuIAowMDAwMTM3NDIwIDAwMDAwIG4gCjAwMDAxMzc0OTggMDAwMDAgbiAKMDAwMDEzNzYzNSAwMDAwMCBuIAowMDAwMTM3Nzc1IDAwMDAwIG4gCjAwMDAxMzc4NTMgMDAwMDAgbiAKMDAwMDEzNzk5MSAwMDAwMCBuIAowMDAwMTM4MTMxIDAwMDAwIG4gCjAwMDAxMzgyMDkgMDAwMDAgbiAKMDAwMDEzODM0NyAwMDAwMCBuIAowMDAwMTM4NDg3IDAwMDAwIG4gCjAwMDAxMzg1NjUgMDAwMDAgbiAKMDAwMDEzODcwMyAwMDAwMCBuIAowMDAwMTM4ODQzIDAwMDAwIG4gCjAwMDAxMzg5MjEgMDAwMDAgbiAKMDAwMDEzOTA1OSAwMDAwMCBuIAowMDAwMTM5MjAwIDAwMDAwIG4gCjAwMDAxMzkyNzkgMDAwMDAgbiAKMDAwMDEzOTQxNyAwMDAwMCBuIAowMDAwMTM5NTU5IDAwMDAwIG4gCjAwMDAxMzk2MzggMDAwMDAgbiAKMDAwMDEzOTc3OCAwMDAwMCBuIAowMDAwMTM5OTIwIDAwMDAwIG4gCjAwMDAxMzk5OTkgMDAwMDAgbiAKMDAwMDE0MDEzOSAwMDAwMCBuIAowMDAwMTQwMjgxIDAwMDAwIG4gCjAwMDAxNDAzNjAgMDAwMDAgbiAKMDAwMDE0MDQ5OSAwMDAwMCBuIAowMDAwMTQwNjQxIDAwMDAwIG4gCjAwMDAxNDA3MjIgMDAwMDAgbiAKMDAwMDE0MDg2MiAwMDAwMCBuIAowMDAwMTQxMDA0IDAwMDAwIG4gCjAwMDAxNDEwODUgMDAwMDAgbiAKMDAwMDE0MTIyNSAwMDAwMCBuIAowMDAwMTQxMzY3IDAwMDAwIG4gCjAwMDAxNDE0NDggMDAwMDAgbiAKMDAwMDE0MTU4OCAwMDAwMCBuIAowMDAwMTQxNzMwIDAwMDAwIG4gCjAwMDAxNDE4MTEgMDAwMDAgbiAKMDAwMDE0MTk1MSAwMDAwMCBuIAowMDAwMTQyMDkzIDAwMDAwIG4gCjAwMDAxNDIxNzQgMDAwMDAgbiAKMDAwMDE0MjMxNCAwMDAwMCBuIAowMDAwMTQyNDU2IDAwMDAwIG4gCjAwMDAxNDI1MzcgMDAwMDAgbiAKMDAwMDE0MjY3NyAwMDAwMCBuIAowMDAwMTQyODE2IDAwMDAwIG4gCjAwMDAxNDI4OTcgMDAwMDAgbiAKMDAwMDE0MzAzNiAwMDAwMCBuIAowMDAwMTQzMTc1IDAwMDAwIG4gCjAwMDAxNDMzMTQgMDAwMDAgbiAKMDAwMDE0MzM5NSAwMDAwMCBuIAowMDAwMTQzNTMzIDAwMDAwIG4gCjAwMDAxNDM2NzIgMDAwMDAgbiAKMDAwMDE0MzgxMSAwMDAwMCBuIAowMDAwMTQzODkyIDAwMDAwIG4gCjAwMDAxNDQwMzEgMDAwMDAgbiAKMDAwMDE0NDE3MCAwMDAwMCBuIAowMDAwMTQ0MzEyIDAwMDAwIG4gCjAwMDAxNDQzOTEgMDAwMDAgbiAKMDAwMDE0NDUzMCAwMDAwMCBuIAowMDAwMTQ0NjY5IDAwMDAwIG4gCjAwMDAxNDQ4MTEgMDAwMDAgbiAKMDAwMDE0NDg5MiAwMDAwMCBuIAowMDAwMTQ1MDMyIDAwMDAwIG4gCjAwMDAxNDUxNzQgMDAwMDAgbiAKMDAwMDE0NTI1NSAwMDAwMCBuIAowMDAwMTQ1Mzk1IDAwMDAwIG4gCjAwMDAxNDU1MzcgMDAwMDAgbiAKMDAwMDE0NTYxOCAwMDAwMCBuIAowMDAwMTQ1NzU4IDAwMDAwIG4gCjAwMDAxNDU5MDAgMDAwMDAgbiAKMDAwMDE0NTk4MSAwMDAwMCBuIAowMDAwMTQ2MTIxIDAwMDAwIG4gCjAwMDAxNDYyNjMgMDAwMDAgbiAKMDAwMDE0NjM0MyAwMDAwMCBuIAowMDAwMTQ2NDgzIDAwMDAwIG4gCjAwMDAxNDY2MjUgMDAwMDAgbiAKMDAwMDE0NjcwNiAwMDAwMCBuIAowMDAwMTQ2ODQ2IDAwMDAwIG4gCjAwMDAxNDY5ODggMDAwMDAgbiAKMDAwMDE0NzA2OSAwMDAwMCBuIAowMDAwMTQ3MjA4IDAwMDAwIG4gCjAwMDAxNDczNTAgMDAwMDAgbiAKMDAwMDE0NzQyOSAwMDAwMCBuIAowMDAwMTQ3NTY4IDAwMDAwIG4gCjAwMDAxNDc3MTAgMDAwMDAgbiAKMDAwMDE0Nzc5MCAwMDAwMCBuIAowMDAwMTQ3OTMwIDAwMDAwIG4gCjAwMDAxNDgwNzIgMDAwMDAgbiAKMDAwMDE0ODE1MyAwMDAwMCBuIAowMDAwMTQ4MjkzIDAwMDAwIG4gCjAwMDAxNDg0MzUgMDAwMDAgbiAKMDAwMDE0ODUxNiAwMDAwMCBuIAowMDAwMTQ4NjU1IDAwMDAwIG4gCjAwMDAxNDg3OTcgMDAwMDAgbiAKMDAwMDE0ODg3OCAwMDAwMCBuIAowMDAwMTQ5MDE4IDAwMDAwIG4gCjAwMDAxNDkxNjAgMDAwMDAgbiAKMDAwMDE0OTI0MSAwMDAwMCBuIAowMDAwMTQ5MzgxIDAwMDAwIG4gCjAwMDAxNDk1MjMgMDAwMDAgbiAKMDAwMDE0OTYwNCAwMDAwMCBuIAowMDAwMTQ5NzQ0IDAwMDAwIG4gCjAwMDAxNDk4ODYgMDAwMDAgbiAKMDAwMDE0OTk2NyAwMDAwMCBuIAowMDAwMTUwMTA1IDAwMDAwIG4gCjAwMDAxNTAyNDYgMDAwMDAgbiAKMDAwMDE1MDMyNyAwMDAwMCBuIAowMDAwMTUwNDY1IDAwMDAwIG4gCjAwMDAxNTA2MDUgMDAwMDAgbiAKMDAwMDE3NDI1MCAwMDAwMCBuIAowMDAwMTc0MjczIDAwMDAwIG4gCjAwMDAxNzUwNDUgMDAwMDAgbiAKMDAwMDE3NTI1OSAwMDAwMCBuIAowMDAwMTc2ODE2IDAwMDAwIG4gCjAwMDAxNzY4MzggMDAwMDAgbiAKMDAwMDE3NzAzNCAwMDAwMCBuIAowMDAwMTc4NzUzIDAwMDAwIG4gCjAwMDAxNzg3NzUgMDAwMDAgbiAKMDAwMDE3ODk3MSAwMDAwMCBuIAowMDAwMTgxMTMyIDAwMDAwIG4gCjAwMDAxODExNTQgMDAwMDAgbiAKMDAwMDE4MTM1MCAwMDAwMCBuIAowMDAwMTgzOTA1IDAwMDAwIG4gCjAwMDAxODM5MjcgMDAwMDAgbiAKMDAwMDE4NDEyMyAwMDAwMCBuIAowMDAwMTg0MjA1IDAwMDAwIG4gCjAwMDAxODQzNDQgMDAwMDAgbiAKMDAwMDE4NDQ4NiAwMDAwMCBuIAowMDAwMTg1NDI2IDAwMDAwIG4gCjAwMDAxODU0NDcgMDAwMDAgbiAKMDAwMDE4NTQ4NCAwMDAwMCBuIAowMDAwMTg1Njk4IDAwMDAwIG4gCjAwMDAxODYzODUgMDAwMDAgbiAKMDAwMDE4NjQwNiAwMDAwMCBuIAowMDAwMTg2NjAyIDAwMDAwIG4gCjAwMDAxODc3ODkgMDAwMDAgbiAKMDAwMDE4NzgxMSAwMDAwMCBuIAowMDAwMTg4MDA3IDAwMDAwIG4gCjAwMDAxODk0MDUgMDAwMDAgbiAKMDAwMDE4OTQyNyAwMDAwMCBuIAowMDAwMTg5NjIzIDAwMDAwIG4gCjAwMDAxOTA1MzAgMDAwMDAgbiAKMDAwMDE5MDU1MSAwMDAwMCBuIAowMDAwMTkwNzQ3IDAwMDAwIG4gCjAwMDAxOTI4OTIgMDAwMDAgbiAKMDAwMDE5MjkxNCAwMDAwMCBuIAowMDAwMTkzMTEwIDAwMDAwIG4gCjAwMDAxOTUwNDIgMDAwMDAgbiAKMDAwMDE5NTA2NCAwMDAwMCBuIAowMDAwMTk1MjYwIDAwMDAwIG4gCjAwMDAxOTUzNDEgMDAwMDAgbiAKMDAwMDE5NTQ4MSAwMDAwMCBuIAowMDAwMTk1NjIzIDAwMDAwIG4gCjAwMDAxOTU3MDMgMDAwMDAgbiAKMDAwMDE5NTg0MyAwMDAwMCBuIAowMDAwMTk1OTg1IDAwMDAwIG4gCjAwMDAxOTYwNjcgMDAwMDAgbiAKMDAwMDE5NjIwNyAwMDAwMCBuIAowMDAwMTk2MzQ5IDAwMDAwIG4gCjAwMDAxOTY0MzEgMDAwMDAgbiAKMDAwMDE5NjU3MSAwMDAwMCBuIAowMDAwMTk2NzEzIDAwMDAwIG4gCjAwMDAxOTY3OTUgMDAwMDAgbiAKMDAwMDE5NjkzNSAwMDAwMCBuIAowMDAwMTk3MDc3IDAwMDAwIG4gCjAwMDAxOTcxNTkgMDAwMDAgbiAKMDAwMDE5NzI5OSAwMDAwMCBuIAowMDAwMTk3NDQxIDAwMDAwIG4gCjAwMDAxOTc1MjMgMDAwMDAgbiAKMDAwMDE5NzY2MyAwMDAwMCBuIAowMDAwMTk3ODA1IDAwMDAwIG4gCjAwMDAxOTc4ODcgMDAwMDAgbiAKMDAwMDE5ODAyNyAwMDAwMCBuIAowMDAwMTk4MTY5IDAwMDAwIG4gCjAwMDAxOTgyNTEgMDAwMDAgbiAKMDAwMDE5ODM5MCAwMDAwMCBuIAowMDAwMTk4NTMyIDAwMDAwIG4gCjAwMDAxOTg2MTQgMDAwMDAgbiAKMDAwMDE5ODc1NCAwMDAwMCBuIAowMDAwMTk4ODk2IDAwMDAwIG4gCjAwMDAxOTg5NzggMDAwMDAgbiAKMDAwMDE5OTExOCAwMDAwMCBuIAowMDAwMTk5MjYwIDAwMDAwIG4gCjAwMDAxOTkzNDAgMDAwMDAgbiAKMDAwMDE5OTQ4MCAwMDAwMCBuIAowMDAwMTk5NjIyIDAwMDAwIG4gCjAwMDAxOTk3MDIgMDAwMDAgbiAKMDAwMDE5OTg0MiAwMDAwMCBuIAowMDAwMTk5OTg0IDAwMDAwIG4gCjAwMDAyMDAwNjQgMDAwMDAgbiAKMDAwMDIwMDIwNCAwMDAwMCBuIAowMDAwMjAwMzQ2IDAwMDAwIG4gCjAwMDAyMDA0MjYgMDAwMDAgbiAKMDAwMDIwMDU2NiAwMDAwMCBuIAowMDAwMjAwNzA4IDAwMDAwIG4gCjAwMDAyMDA3ODggMDAwMDAgbiAKMDAwMDIwMDkyOCAwMDAwMCBuIAowMDAwMjAxMDcwIDAwMDAwIG4gCjAwMDAyMDExNTAgMDAwMDAgbiAKMDAwMDIwMTI5MCAwMDAwMCBuIAowMDAwMjAxNDMyIDAwMDAwIG4gCjAwMDAyMDE1MTIgMDAwMDAgbiAKMDAwMDIwMTY1MSAwMDAwMCBuIAowMDAwMjAxNzkzIDAwMDAwIG4gCjAwMDAyMDE4NzUgMDAwMDAgbiAKMDAwMDIwMjAxNCAwMDAwMCBuIAowMDAwMjAyMTU2IDAwMDAwIG4gCjAwMDAyMDIyMzggMDAwMDAgbiAKMDAwMDIwMjM3OCAwMDAwMCBuIAowMDAwMjAyNTIwIDAwMDAwIG4gCjAwMDAyMDI2MDEgMDAwMDAgbiAKMDAwMDIwMjc0MCAwMDAwMCBuIAowMDAwMjAyODgyIDAwMDAwIG4gCjAwMDAyMDI5NjQgMDAwMDAgbiAKMDAwMDIwMzEwNCAwMDAwMCBuIAowMDAwMjAzMjQ2IDAwMDAwIG4gCjAwMDAyMDMzMjYgMDAwMDAgbiAKMDAwMDIwMzQ2NSAwMDAwMCBuIAowMDAwMjAzNjA3IDAwMDAwIG4gCjAwMDAyMDM2ODcgMDAwMDAgbiAKMDAwMDIwMzgyNSAwMDAwMCBuIAowMDAwMjAzOTY3IDAwMDAwIG4gCjAwMDAyMDQwNDcgMDAwMDAgbiAKMDAwMDIwNDE4NiAwMDAwMCBuIAowMDAwMjA0MzI4IDAwMDAwIG4gCjAwMDAyMDQ0MDggMDAwMDAgbiAKMDAwMDIwNDU0OCAwMDAwMCBuIAowMDAwMjA0NjkwIDAwMDAwIG4gCjAwMDAyMDQ3NzAgMDAwMDAgbiAKMDAwMDIwNDkwOSAwMDAwMCBuIAowMDAwMjA1MDUxIDAwMDAwIG4gCjAwMDAyMTk1ODIgMDAwMDAgbiAKMDAwMDIxOTYwNSAwMDAwMCBuIAowMDAwMjIwMDU4IDAwMDAwIG4gCjAwMDAyMjAyNzIgMDAwMDAgbiAKMDAwMDIyMTcwNyAwMDAwMCBuIAowMDAwMjIxNzI5IDAwMDAwIG4gCjAwMDAyMjE5MjUgMDAwMDAgbiAKMDAwMDIyMjE5MCAwMDAwMCBuIAowMDAwMjM2NzQ1IDAwMDAwIG4gCjAwMDAyMzY3MjIgMDAwMDAgbiAKMDAwMDIzNjg0NSAwMDAwMCBuIAowMDAwMjM2ODY1IDAwMDAwIG4gCjAwMDAyMzc1MTIgMDAwMDAgbiAKMDAwMDIzNzAzMCAwMDAwMCBuIAowMDAwMjM4MDkyIDAwMDAwIG4gCjAwMDAyMzgxMTMgMDAwMDAgbiAKMDAwMDIzODM3MyAwMDAwMCBuIAowMDAwMjU0NDUyIDAwMDAwIG4gCjAwMDAyNTQ0MjkgMDAwMDAgbiAKMDAwMDI1NDU1NyAwMDAwMCBuIAowMDAwMjU0NTc3IDAwMDAwIG4gCjAwMDAyNTUyNzIgMDAwMDAgbiAKMDAwMDI1NDczNyAwMDAwMCBuIAowMDAwMjU1OTE2IDAwMDAwIG4gCjAwMDAyNTU5MzcgMDAwMDAgbiAKMDAwMDI1NjE5OSAwMDAwMCBuIAowMDAwMjY3MzYyIDAwMDAwIG4gCjAwMDAyNjczMzkgMDAwMDAgbiAKMDAwMDI2NzQ2MSAwMDAwMCBuIAowMDAwMjY3NDgxIDAwMDAwIG4gCjAwMDAyNjgwNjggMDAwMDAgbiAKMDAwMDI2NzY0NSAwMDAwMCBuIAowMDAwMjY4NTk0IDAwMDAwIG4gCjAwMDAyNjg4NDQgMDAwMDAgbiAKMDAwMDI2OTE4MyAwMDAwMCBuIAp0cmFpbGVyCjw8CiAgL1Jvb3QgMzUxIDAgUgogIC9JbmZvIDEgMCBSCiAgL0lEIFs8MTVDNDZCOTNGRDk1REUyNDkwM0Y3M0Q1QjU0RDcyQ0U+IDwxNUM0NkI5M0ZEOTVERTI0OTAzRjczRDVCNTRENzJDRT5dCiAgL1NpemUgMzUzCj4+CnN0YXJ0eHJlZgoyNjkzODcKJSVFT0YK