Survey
2.1.6
OTRS AG
http://otrs.org/
GNU AFFERO GENERAL PUBLIC LICENSE Version 3, November 2007
Build for Survey 2.1.6.
Added possibility to require answers on survey questions.
Updated Polish translation, thanks to Piotr Augustyniak!
Added Portugal Portuguese translation, thanks to Rui Francisco.
Bugfix 8238.
Build for Survey 2.1.1.
Build for Survey 2.1.0 rc1.
Bugfixes 7983, 8114, 8124, 8127.
Added polish translations.
Added delayed sending and maximum survey limit per customer and 30 days.
Build for Survey 2.1.0 beta1.
A customer survey tool.
Ein Kundenumfragen Werkzeug.
Una herramienta de encuestas a clientes.
3.1.x
<br>
<strong>WELCOME</strong>
<br>
<br>
You are about to install the OTRS package Survey.<br>
<br>
<br>
<strong>ATTENTION</strong>
<br>
<br>
Make sure your database accepts packages over 5 MB in size. A MySQL database for example accepts packages up to 1 MB by default. In this case, the value for max_allowed_packet must be increased. The recommended maximum size accepted is 20 MB.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<strong>WILLKOMMEN</strong>
<br>
<br>
Sie sind im Begriff das OTRS-Paket Survey zu installieren.<br>
<br>
<br>
<strong>ACHTUNG</strong>
<br>
<br>
Vergewissern Sie sich, dass ihre Datenbank Pakete mit einer Größe von mehr als 5 MB akzeptiert. Eine MySQL Datenbank akzeptiert beispielsweise standardmäßig Pakete mit einer Größe von maximal 1 MB. In diesem Fall muss der Wert für max_allowed_packet erhöht werden. Empfohlen werden 20 MB.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<strong>BIENVENIDO</strong>
<br>
<br>
Está apunto de instalar el módulo de encuestas de OTRS.<br>
<br>
<br>
<strong>ATENCIÓN</strong>
<br>
<br>
Asegúrese de que su base de datos acepta packetes de arriba de 5 MB de tamaño. Por ejemplo una base de datos MySQL acepta packetes de arriba de 1 MB por defecto. En este caso el valor max_allowed_packet debe ser incrementado. El tamaño máximo recomendado es de 20 MB.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<strong>ATTENTION</strong>
<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>
((enjoy))<br>
<br>
<br>
<strong>ACHTUNG</strong>
<br>
<br>
Bei der Deinstallation werden die von diesem Paket angelegten Datenbank-Tabellen gelöscht.
Alle darin enthaltenen Daten gehen unwiderruflich verloren!
<br>
<br>
((enjoy))<br>
<br>
<br>
<strong>ATENCIÓN</strong>
<br>
<br>
Si usted desinstala este paquete, todas las tablas de la base de datos creadas durante la instalación serán borradas.
¡Todos los datos de esas tablas serán irrevocablemente perdidos!.
<br>
<br>
((enjoy))<br>
<br>
<br>
<strong>WELCOME</strong>
<br>
<br>
You are about to upgrade the OTRS package Survey.<br>
<br>
<br>
<strong>ATTENTION</strong>
<br>
<br>
Make sure your database accepts packages over 5 MB in size. A MySQL database for example accepts packages up to 1 MB by default. In this case, the value for max_allowed_packet must be increased. The recommended maximum size accepted is 20 MB.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<strong>WILLKOMMEN</strong>
<br>
<br>
Sie sind im Begriff das OTRS-Paket Survey zu aktualisieren.<br>
<br>
<br>
<strong>ACHTUNG</strong>
<br>
<br>
Vergewissern Sie sich, dass ihre Datenbank Pakete mit einer Größe von mehr als 5 MB akzeptiert. Eine MySQL Datenbank akzeptiert beispielsweise standardmäßig Pakete mit einer Größe von maximal 1 MB. In diesem Fall muss der Wert für max_allowed_packet erhöht werden. Empfohlen werden 20 MB.<br>
<br>
<br>
((enjoy))<br>
<br>
<br>
<strong>BIENVENIDO</strong>
<br>
<br>
Esta apunto de actualizar el módulo de encuestas de OTRS.<br>
<br>
<br>
<strong>ATENCIÓN</strong>
<br>
<br>
Asegúrese de que su base de datos acepta packetes de arriba de 5 MB de tamaño. Por ejemplo una base de datos MySQL acepta packetes de arriba de 1 MB por defecto. En este caso el valor max_allowed_packet debe ser incrementado. El tamaño máximo recomendado es de 20 MB.<br>
<br>
<br>
((enjoy))<br>
<br>
# define function name
my $FunctionName = 'CodeUpgradeFromLowerThan_2_1_5';
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
# The code module has just recently been copied to it's location in the file system.
# In a persistent Perl environment an old version of the module might still be loaded,
# as watchdogs like Apache2::Reload haven't had a chance to reload it.
# So we need to make sure that the new version is being loaded.
# Kernel::System::Main::Require() checks the relative file path, so we need to remove that from %INC.
# This is only needed in persistent Perl environment, but does no harm in a CGI environment.
my $CodeModulePath = $CodeModule;
$CodeModulePath =~ s/::/\//g;
$CodeModulePath .= '.pm';
delete $INC{$CodeModulePath};
# load the module
if ( $Self->{MainObject}->Require($CodeModule) ) {
# create new instance
my $CodeObject = $CodeModule->new( %{$Self} );
if ($CodeObject) {
# start methode
if ( !$CodeObject->$FunctionName(%{$Self}) ) {
$Self->{LogObject}->Log(
Priority => 'error',
Message => "Could not call method $FunctionName() on $CodeModule.pm."
);
}
}
# error handling
else {
$Self->{LogObject}->Log(
Priority => 'error',
Message => "Could not call method new() on $CodeModule.pm."
);
}
}
# define function name
my $FunctionName = 'CodeUpgradeFromLowerThan_2_0_92';
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
# The code module has just recently been copied to it's location in the file system.
# In a persistent Perl environment an old version of the module might still be loaded,
# as watchdogs like Apache2::Reload haven't had a chance to reload it.
# So we need to make sure that the new version is being loaded.
# Kernel::System::Main::Require() checks the relative file path, so we need to remove that from %INC.
# This is only needed in persistent Perl environment, but does no harm in a CGI environment.
my $CodeModulePath = $CodeModule;
$CodeModulePath =~ s/::/\//g;
$CodeModulePath .= '.pm';
delete $INC{$CodeModulePath};
# load the module
if ( $Self->{MainObject}->Require($CodeModule) ) {
# create new instance
my $CodeObject = $CodeModule->new( %{$Self} );
if ($CodeObject) {
# start methode
if ( !$CodeObject->$FunctionName(%{$Self}) ) {
$Self->{LogObject}->Log(
Priority => 'error',
Message => "Could not call method $FunctionName() on $CodeModule.pm."
);
}
}
# error handling
else {
$Self->{LogObject}->Log(
Priority => 'error',
Message => "Could not call method new() on $CodeModule.pm."
);
}
}
2017-10-09 15:32:44
opms.otrs.com
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+CjxvdHJzX2NvbmZpZyB2ZXJzaW9uPSIxLjAiIGluaXQ9IkFwcGxpY2F0aW9uIj4KICAgIDxDb25maWdJdGVtIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZ2VudFN1cnZleSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5BbGwgcGFyYW1ldGVycyBmb3IgdGhlIFN1cnZleSBvYmplY3QgaW4gdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5TdXJ2ZXk8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxGcm9udGVuZE1vZHVsZVJlZz4KICAgICAgICAgICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkEgU3VydmV5IE1vZHVsZS48L0Rlc2NyaXB0aW9uPgogICAgICAgICAgICAgICAgPE5hdkJhck5hbWU+U3VydmV5PC9OYXZCYXJOYW1lPgogICAgICAgICAgICAgICAgPFRpdGxlPlN1cnZleTwvVGl0bGU+CiAgICAgICAgICAgICAgICA8TmF2QmFyPgogICAgICAgICAgICAgICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkEgU3VydmV5IE1vZHVsZS48L0Rlc2NyaXB0aW9uPgogICAgICAgICAgICAgICAgICAgIDxOYW1lIFRyYW5zbGF0YWJsZT0iMSI+U3VydmV5PC9OYW1lPgogICAgICAgICAgICAgICAgICAgIDxUeXBlPk1lbnU8L1R5cGU+CiAgICAgICAgICAgICAgICAgICAgPEJsb2NrPkl0ZW1BcmVhPC9CbG9jaz4KICAgICAgICAgICAgICAgICAgICA8TGluaz5BY3Rpb249QWdlbnRTdXJ2ZXk8L0xpbms+CiAgICAgICAgICAgICAgICAgICAgPE5hdkJhcj5TdXJ2ZXk8L05hdkJhcj4KICAgICAgICAgICAgICAgICAgICA8QWNjZXNzS2V5PnU8L0FjY2Vzc0tleT4KICAgICAgICAgICAgICAgICAgICA8UHJpbz44MDAwPC9QcmlvPgogICAgICAgICAgICAgICAgPC9OYXZCYXI+CiAgICAgICAgICAgICAgICA8TmF2QmFyPgogICAgICAgICAgICAgICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk92ZXJ2aWV3PC9EZXNjcmlwdGlvbj4KICAgICAgICAgICAgICAgICAgICA8TmFtZSBUcmFuc2xhdGFibGU9IjEiPk92ZXJ2aWV3PC9OYW1lPgogICAgICAgICAgICAgICAgICAgIDxMaW5rPkFjdGlvbj1BZ2VudFN1cnZleTwvTGluaz4KICAgICAgICAgICAgICAgICAgICA8VHlwZT48L1R5cGU+CiAgICAgICAgICAgICAgICAgICAgPEJsb2NrPjwvQmxvY2s+CiAgICAgICAgICAgICAgICAgICAgPE5hdkJhcj5TdXJ2ZXk8L05hdkJhcj4KICAgICAgICAgICAgICAgICAgICA8QWNjZXNzS2V5Pm88L0FjY2Vzc0tleT4KICAgICAgICAgICAgICAgICAgICA8UHJpbz4xMDA8L1ByaW8+CiAgICAgICAgICAgICAgICA8L05hdkJhcj4KICAgICAgICAgICAgICAgIDxOYXZCYXI+CiAgICAgICAgICAgICAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TmV3PC9EZXNjcmlwdGlvbj4KICAgICAgICAgICAgICAgICAgICA8TmFtZSBUcmFuc2xhdGFibGU9IjEiPk5ldzwvTmFtZT4KICAgICAgICAgICAgICAgICAgICA8TGluaz5BY3Rpb249QWdlbnRTdXJ2ZXk7U3ViYWN0aW9uPVN1cnZleUFkZDwvTGluaz4KICAgICAgICAgICAgICAgICAgICA8VHlwZT48L1R5cGU+CiAgICAgICAgICAgICAgICAgICAgPEJsb2NrPjwvQmxvY2s+CiAgICAgICAgICAgICAgICAgICAgPE5hdkJhcj5TdXJ2ZXk8L05hdkJhcj4KICAgICAgICAgICAgICAgICAgICA8QWNjZXNzS2V5Pm48L0FjY2Vzc0tleT4KICAgICAgICAgICAgICAgICAgICA8UHJpbz4yMDA8L1ByaW8+CiAgICAgICAgICAgICAgICA8L05hdkJhcj4KICAgICAgICAgICAgICAgIDxMb2FkZXI+CiAgICAgICAgICAgICAgICAgICAgPENTUz5TdXJ2ZXkuQWdlbnQuRGVmYXVsdC5jc3M8L0NTUz4KICAgICAgICAgICAgICAgICAgICA8Q1NTX0lFNz5TdXJ2ZXkuQWdlbnQuRGVmYXVsdC5JRTcuY3NzPC9DU1NfSUU3PgogICAgICAgICAgICAgICAgPC9Mb2FkZXI+CiAgICAgICAgICAgIDwvRnJvbnRlbmRNb2R1bGVSZWc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRnJvbnRlbmQ6Ok1vZHVsZSMjI0FnZW50U3VydmV5Wm9vbSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciBzdXJ2ZXkgem9vbSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlN1cnZleTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEZyb250ZW5kTW9kdWxlUmVnPgogICAgICAgICAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U3VydmV5IFpvb20gTW9kdWxlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgICAgICAgICA8TmF2QmFyTmFtZT5TdXJ2ZXk8L05hdkJhck5hbWU+CiAgICAgICAgICAgICAgICA8TG9hZGVyPgogICAgICAgICAgICAgICAgICAgIDxDU1M+U3VydmV5LkFnZW50LkRlZmF1bHQuY3NzPC9DU1M+CiAgICAgICAgICAgICAgICAgICAgPENTU19JRTc+U3VydmV5LkFnZW50LkRlZmF1bHQuSUU3LmNzczwvQ1NTX0lFNz4KICAgICAgICAgICAgICAgICAgICA8SmF2YVNjcmlwdD5TdXJ2ZXkuQWdlbnQuU3VydmV5Wm9vbS5qczwvSmF2YVNjcmlwdD4KICAgICAgICAgICAgICAgIDwvTG9hZGVyPgogICAgICAgICAgICA8L0Zyb250ZW5kTW9kdWxlUmVnPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZ2VudFN1cnZleUVkaXRRdWVzdGlvbnMiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3Igc3VydmV5IHpvb20gaW4gdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5TdXJ2ZXk8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxGcm9udGVuZE1vZHVsZVJlZz4KICAgICAgICAgICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkEgbW9kdWxlIHRvIGVkaXQgc3VydmV5IHF1ZXN0aW9ucy48L0Rlc2NyaXB0aW9uPgogICAgICAgICAgICAgICAgPExvYWRlcj4KICAgICAgICAgICAgICAgICAgICA8Q1NTPlN1cnZleS5BZ2VudC5EZWZhdWx0LmNzczwvQ1NTPgogICAgICAgICAgICAgICAgICAgIDxDU1NfSUU3PlN1cnZleS5BZ2VudC5EZWZhdWx0LklFNy5jc3M8L0NTU19JRTc+CiAgICAgICAgICAgICAgICA8L0xvYWRlcj4KICAgICAgICAgICAgPC9Gcm9udGVuZE1vZHVsZVJlZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJQdWJsaWNGcm9udGVuZDo6TW9kdWxlIyMjUHVibGljU3VydmV5IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBQdWJsaWNTdXJ2ZXkgb2JqZWN0IGluIHRoZSBwdWJsaWMgU3VydmV5IGFyZWEuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+U3VydmV5PC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OlB1YmxpYzo6TW9kdWxlUmVnaXN0cmF0aW9uPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEZyb250ZW5kTW9kdWxlUmVnPgogICAgICAgICAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+UHVibGljIFN1cnZleS48L0Rlc2NyaXB0aW9uPgogICAgICAgICAgICAgICAgPE5hdkJhck5hbWU+U3VydmV5PC9OYXZCYXJOYW1lPgogICAgICAgICAgICAgICAgPFRpdGxlPlN1cnZleTwvVGl0bGU+CiAgICAgICAgICAgICAgICA8TG9hZGVyPgogICAgICAgICAgICAgICAgICAgIDxDU1M+U3VydmV5LkN1c3RvbWVyLkRlZmF1bHQuY3NzPC9DU1M+CiAgICAgICAgICAgICAgICAgICAgPENTU19JRTc+U3VydmV5LkN1c3RvbWVyLkRlZmF1bHQuSUU3LmNzczwvQ1NTX0lFNz4KICAgICAgICAgICAgICAgIDwvTG9hZGVyPgogICAgICAgICAgICA8L0Zyb250ZW5kTW9kdWxlUmVnPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlN1cnZleTo6U2hvd1ZvdGVEYXRhIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjAiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkVuYWJsZSBvciBkaXNhYmxlIHRoZSBTaG93Vm90ZURhdGEgc2NyZWVuIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlIHRvIHNob3cgZGF0YSBvZiBhIHNwZWNpZmljIHN1cnZleSByZXN1bHQgd2hlbiB0aGUgY3VzdG9tZXIgdHJpZXMgdG8gYW5zd2VyIGEgc3VydmV5IHRoZSBzZWNvbmQgdGltZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5TdXJ2ZXk8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlOjpTdXJ2ZXk8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjAiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJTdXJ2ZXk6OlNlbmRQZXJpb2QiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+QW1vdW50IG9mIGRheXMgYWZ0ZXIgc2VuZGluZyBhIHN1cnZleSBtYWlsIGluIHdoaWNoIG5vIG5ldyBzdXJ2ZXkgcmVxdWVzdHMgYXJlIHNlbnQgdG8gdGhlIHNhbWUgY3VzdG9tZXIuIFNlbGVjdGluZyAwIHdpbGwgYWx3YXlzIHNlbmQgdGhlIHN1cnZleSBtYWlsLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlN1cnZleTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNvcmU6OlN1cnZleTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+MzAwPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iU3VydmV5OjpOb3RpZmljYXRpb25TZW5kZXIiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmYXVsdCBzZW5kZXIgZm9yIHRoZSBub3RpZmljYXRpb24gZW1haWwgdG8gY3VzdG9tZXJzIGFib3V0IG5ldyBzdXJ2ZXkuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+U3VydmV5PC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTo6U3VydmV5PC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj5xdWFsaXR5QGV4YW1wbGUuY29tPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iU3VydmV5OjpOb3RpZmljYXRpb25SZWNpcGllbnRCbGFja2xpc3QiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U3VydmV5cyB3aWxsIG5vdCBiZSBzZW50IHRvIHRoZSBjb25maWd1cmVkIGVtYWlsIGFkZHJlc3Nlcy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5TdXJ2ZXk8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEFycmF5PjwvQXJyYXk+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iU3VydmV5OjpOb3RpZmljYXRpb25TdWJqZWN0IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmF1bHQgc3ViamVjdCBmb3IgdGhlIG5vdGlmaWNhdGlvbiBlbWFpbCB0byBjdXN0b21lcnMgYWJvdXQgbmV3IHN1cnZleS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5TdXJ2ZXk8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlOjpTdXJ2ZXk8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPkhlbHAgdXMgd2l0aCB5b3VyIGZlZWRiYWNrITwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlN1cnZleTo6Tm90aWZpY2F0aW9uQm9keSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZhdWx0IGJvZHkgZm9yIHRoZSBub3RpZmljYXRpb24gZW1haWwgdG8gY3VzdG9tZXJzIGFib3V0IG5ldyBzdXJ2ZXkuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+U3VydmV5PC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTo6U3VydmV5PC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFRleHRBcmVhPkRlYXIgQ3VzdG9tZXIsCgpUaGFua3MgZm9yIHVzaW5nIG91ciBzZXJ2aWNlLiBIZWxwIHVzIHRvIGltcHJvdmUgdXMgYW5kIG91ciBzZXJ2aWNlcy4KClBsZWFzZSBnaXZlIHVzIGZlZWRiYWNrIG9uIGhvdyB0byBpbXByb3ZlIG91ciBzZXJ2aWNlczoKCiZsdDtPVFJTX0NPTkZJR19IdHRwVHlwZSZndDs6Ly8mbHQ7T1RSU19DT05GSUdfRlFETiZndDsvJmx0O09UUlNfQ09ORklHX1NjcmlwdEFsaWFzJmd0O3B1YmxpYy5wbD9BY3Rpb249UHVibGljU3VydmV5O1B1YmxpY1N1cnZleUtleT0mbHQ7T1RSU19QdWJsaWNTdXJ2ZXlLZXkmZ3Q7CgpUaGFua3MgZm9yIHlvdXIgaGVscCEKCllvdXIgT1RSUy1UZWFtCiAgICAgICAgICAgIDwvVGV4dEFyZWE+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iU3VydmV5OjpTZW5kTm9TdXJ2ZXlSZWdFeHAiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+SWYgdGhpcyByZWdleCBtYXRjaGVzLCBubyBjdXN0b21lciBzdXJ2ZXkgd2lsbCBiZSBzZW50LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlN1cnZleTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNvcmU6OlN1cnZleTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+KE1BSUxFUi1EQUVNT058cG9zdG1hc3RlcnxhYnVzZSlALis/XC4uKz88L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJUaWNrZXQ6OkV2ZW50TW9kdWxlUG9zdCMjIzk5LVN1cnZleVNlbmRSZXF1ZXN0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlRpY2tldCBldmVudCBtb2R1bGUgdG8gc2VuZCBhdXRvbWF0aWNhbGx5IHN1cnZleSBlbWFpbCByZXF1ZXN0cyB0byBjdXN0b21lcnMgaWYgYSB0aWNrZXQgaXMgY2xvc2VkLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlN1cnZleTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNvcmU6OlN1cnZleTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6U3lzdGVtOjpUaWNrZXQ6OkV2ZW50OjpTdXJ2ZXlTZW5kUmVxdWVzdDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRXZlbnQiPihBcnRpY2xlQ3JlYXRlfFRpY2tldFN0YXRlVXBkYXRlKTwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlN1cnZleTo6RnJvbnRlbmQ6Ok92ZXJ2aWV3IyMjU21hbGwiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIHN1cnZleSBsaXN0LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlN1cnZleTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6U3VydmV5T3ZlcnZpZXc8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6Ok91dHB1dDo6SFRNTDo6U3VydmV5T3ZlcnZpZXdTbWFsbDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmFtZSI+U21hbGw8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlBhZ2VTaG93biI+MjU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkltYWdlIj5vdmVydmlld3NtYWxsLnBuZzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSW1hZ2VTZWxlY3RlZCI+b3ZlcnZpZXdzbWFsbC1zZWxlY3RlZC5wbmc8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJTdXJ2ZXk6OkZyb250ZW5kOjpBZ2VudFN1cnZleSMjI1Nob3dDb2x1bW5zIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIHN1cnZleSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbnMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+U3VydmV5PC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpWaWV3U3VydmV5T3ZlcnZpZXc8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTnVtYmVyIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSW50cm9kdWN0aW9uIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTm90aWZpY2F0aW9uU2VuZGVyIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOb3RpZmljYXRpb25TdWJqZWN0Ij4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOb3RpZmljYXRpb25Cb2R5Ij4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJTdGF0dXMiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNyZWF0ZVRpbWUiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNyZWF0ZUJ5Ij4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDaGFuZ2VUaW1lIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDaGFuZ2VCeSI+MDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlN1cnZleTo6RnJvbnRlbmQ6OkhUTUxSaWNoVGV4dEhlaWdodERlZmF1bHQiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgZGVmYXVsdCBoZWlnaHQgZm9yIFJpY2h0ZXh0IHZpZXdzIGZvciBTdXJ2ZXlab29tIGVsZW1lbnRzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlN1cnZleTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6U3VydmV5Wm9vbTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9Il5bMC05XXsxLDR9JCI+ODA8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJTdXJ2ZXk6OkZyb250ZW5kOjpIVE1MUmljaFRleHRIZWlnaHRNYXgiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgZGVmYXVsdCBoZWlnaHQgZm9yIFJpY2h0ZXh0IHZpZXdzIGZvciBTdXJ2ZXlab29tIGVsZW1lbnRzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlN1cnZleTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6U3VydmV5Wm9vbTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9Il5bMC05XXsxLDR9JCI+MjUwMDwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlN1cnZleTo6U2VuZEluSG91cnNBZnRlckNsb3NlIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGFtb3VudCBpbiBob3VycyBhIHRpY2tldCBoYXMgdG8gYmUgY2xvc2VkIHRvIHRyaWdnZXIgdGhlIHNlbmRpbmcgb2YgYSBzdXJ2ZXksICggMCBtZWFucyBzZW5kIGltbWVkaWF0ZWx5IGFmdGVyIGNsb3NlICkuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+U3VydmV5PC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTo6U3VydmV5PC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iXlswLTldezEsNX0kIj4wPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iU3VydmV5OjpBbW91bnRPZlN1cnZleXNQZXIzMERheXMiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyBtYXhpbXVtIGFtb3VudCBvZiBzdXJ2ZXlzIHRoYXQgZ2V0IHNlbnQgdG8gYSBjdXN0b21lciBwZXIgMzAgZGF5cy4gKCAwIG1lYW5zIG5vIG1heGltdW0sIGFsbCBzdXJ2ZXkgcmVxdWVzdHMgd2lsbCBiZSBzZW50KS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5TdXJ2ZXk8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlOjpTdXJ2ZXk8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSJeWzAtOV17MSw0fSQiPjA8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJTdXJ2ZXk6Okhvb2siIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+VGhlIGlkZW50aWZpZXIgZm9yIGEgc3VydmV5LCBlLmcuIFN1cnZleSMsIE15U3VydmV5Iy4gVGhlIGRlZmF1bHQgaXMgU3VydmV5Iy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5TdXJ2ZXk8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlOjpTdXJ2ZXk8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPlN1cnZleSM8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJQcmVmZXJlbmNlc0dyb3VwcyMjI1N1cnZleU92ZXJ2aWV3U21hbGxQYWdlU2hvd24iIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+UGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgc3VydmV5cyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBzdXJ2ZXkgb3ZlcnZpZXcuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+U3VydmV5PC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpQcmVmZXJlbmNlczwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6T3V0cHV0OjpIVE1MOjpQcmVmZXJlbmNlc0dlbmVyaWM8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNvbHVtbiI+T3RoZXIgU2V0dGluZ3M8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkxhYmVsIiBUcmFuc2xhdGFibGU9IjEiPlN1cnZleSBPdmVydmlldyAiU21hbGwiIExpbWl0PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJLZXkiIFRyYW5zbGF0YWJsZT0iMSI+U3VydmV5IGxpbWl0IHBlciBwYWdlIGZvciBTdXJ2ZXkgT3ZlcnZpZXcgIlNtYWxsIjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGF0YSI+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMTAiPjEwPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjE1Ij4xNTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIyMCI+MjA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMjUiPjI1PC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjMwIj4zMDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIzNSI+MzU8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEYXRhU2VsZWN0ZWQiPjI1PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJQcmVmS2V5Ij5Vc2VyU3VydmV5T3ZlcnZpZXdTbWFsbFBhZ2VTaG93bjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iUHJpbyI+ODAwMDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0aXZlIj4wPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgo8L290cnNfY29uZmlnPgo=
iVBORw0KGgoAAAANSUhEUgAABA0AAAMSCAIAAACOOKp6AAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAAfQAAAH0AG5i+efAAAgAElEQVR4nOzdeUAUR9438OoZZpgBRBABcZBTRFSQPOAVj3hLDol4x9uVRI1G3TfigQLGe+OVRNB4RYzgEVlUxKhBYhLdFe8LgUFOHUBEQQ6Rud8/6tneeQZmGBDk8Pv5q6e6uqq6xe7+VVdXM2q1mgAAAAAAAGjgNHUDAAAAAACg2UGcAAAAAAAA2hAnAAAAAACANsQJAAAAAACgzUjzh0KhuHPnTkpKytOnT6VSKY/Hs7a27tq1q6+vr0AgoHmqqqo2b95sSNFjx4718vL64YcfiouL/1ufkVGbNm2cnJz69etnY2NT44ZPnz69du1aTk5OeXm5Wq02MTGxsrKyt7fv0aNHhw4d9NR49+7djIyMZ8+evXz5UqFQGBsb29ra9ujR43/+5384HIMiIrVaff369Tt37hQVFXE4nA4dOvTt27d79+6GbKu1p5pmzZrl5ORkSCHvMpVKtXbtWoFAsGLFiqZuCwD8H/U+LbdcarU6Nzc3LS0tNzf3xYsXSqXSzMzM0dGxX79+dnZ2BpZQ7wsKAEBz8N844dmzZ8ePH3/x4gUhxMrKqkOHDpWVlXl5eRKJJCkpacKECY6OjoQQDodjb2+vWURFRcXLly8FAkH79u01001MTNjlDh060J8ymaywsPDOnTsPHjyYPHly586dtRp069ats2fPqlQqgUDQsWNHLpdbXl6em5ubk5NTVlY2duxYPTvz119/FRcXCwQCS0tLLpdbVlaWk5OTk5Nz//79GTNmGBkZ6dmWEKJWq3/55ZfU1FQjIyNHR0elUvn48eMTJ048ffp02LBh+rdltW/fno2pWMbGxgZuDgDQ3LzJabnlevTo0ZEjRwghHA6nXbt2PB7vxYsX9+/fT05OHj169Hvvvad/8wa5oAAANK3/vXV++fJlZGRkZWVlp06dRo8ezfb0l5WV/frrr2lpaVFRUbNnz+7YsSOfzw8MDNQsIikp6fz58/b29tOmTdNVzfDhw9mQoKqqKiYmJiMjIy4ubvHixVwul81WXFz866+/qlSq4cOH9+vXj131+vXrtLS0169f69+ZESNGdOjQwdLSkk3JzMyMiYl5/PjxtWvX+vfvr3/zO3fu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gOEtKipK3S5vb+/x48c/uaE19M/j8ZKSkvrWra+v75w5c/o2br800XBIYRAahu9F/fe///36669nZmYuXbq0paXlq6++IoS88847169fP3PmjEAg+Oijj1555ZVbt25NmDCBaZKWlpabm3vhwoWKiopp06Z1advF119/7ejo2O3Qf/3rX8Vi8TfffMPhcN56662WlhbVvXPmzAkPD+/v6f7hxx9/DAkJKSwslMvlZmZm6r4iCQAAMBTl5ubOnj176tSpAznow4cP1e1yd3d/okM/6f77cdxeNdFwSGEQGoZ5wu+//04IWb58+dixYwkhtra2TU1N77777k8//TRt2jRCyI4dO/Lz83NzcwMDA5km69evd3V1JYR0dHR0afto/5WVlTNnzny0/P79+x9//PGlS5ccHBwIIampqcyGkrm5+b179zo6Ovh8fj/O9z//+c/mzZvz8/MpipLL5Tweb/To0S+//HI/DgEaKBSKlStX9tfqTVVVVX19fUdHB/MnUHstLS1VVVWHDx/ulzAAQJ2ff/7Z0NBQ11GMRM3Nze3t7aold+/ejYmJ4fP5zc3Nzs7OmZmZUVFR48aNEwqFcXFxDg4O586dO3r0aEBAwIsvvkgIuXfvXmJiIk3TMpnMzMwsIiKC+av7wYMHYWFhHA6HEFJdXR0VFTVr1iypVBoaGnr58uXt27cTQrhcbnx8PFO/uro6OTlZLBYzoyjjaW1t3b17t1QqpWna3Nx8586dLBarubl5/fr19vb2TU1NHA7HzMxMKBRqnqm6/qurq2NjY/l8vlQq9fLyUm0ilUptbGxmzZqVn5+vzcHMy8u7dOkSi8VSKBQxMTHGxsYaxq2qqoqLi9PX129sbLSwsCgtLd23b5+FhYW6JuqmrOGQwqA1DPMEOzu7559/3tra+uWXX3Zzc1u7dm1paalUKrWzs1Ot9vzzz6s2Udf20X8PHj58qK+v/+i4t27doml6wYIFzM/Zs2fr6empVmBatbe392+eMG7cuK1bt/7222+3bt1qb2+naXrChAkBAQH9OARoUFhY+Oabb/bXf9Py8vLff/+9vb29yx8ebVhZWfU2uwCA3vr000/xfMIgERUVdejQIeaf6f/7v/9zd3f38PAghGzatImpsHLlSuUbRwghIpEoMTGRyQdKSkrS09O3bdtGCDl//vymTZvmz59PCCkoKDAy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H/T09CZPnrx582Ytz1nC9QQAAAAAgD4llUpFIlFzc/Pt27ctLCx0nU7bsD4BAAAAAKBPxcfHNzQ0eHt799sigeB6AgAAAABA3/j999/3799fU1Pz7bffCoXCwsLCMWPG6DqpdmF9AgAAAABAX6iurj58+LC+vr6Dg8PevXv7c5FAcD0BAAAAAABaw/oEAAAAAADQhDoBAAAAAAA0oU4AAAAAAABNqBMAAAAAAEAT6gQAAAAAANCEOgEAAAAAADShTgAAAAAAAE2oEwAAAAAAQBPqBAAAAAAA0IQ6AQAAAAAANKFOAAAAAAAATagTAAAAAAB06dy5cyNGjDAxMZkyZUpVVdWDBw/c3NwGDRrk7OxcUVFRXl4+duxYPT29Tz75hBCisVU9jsZIjbDssF9++UUkEhkbeXqF8AAAAYZJREFUGzs4OJSWlmrsxUKdAAAAAACgS3Z2dsXFxbdv37558+ZXX32VlJRUWVn54MEDIyOjnTt3WlpalpSUmJub08EaW9XjaIzUCMsOe/HFF2/fvi2RSP7973//9ttvGnuxUCcAAAAAAOiSlZXVoEGDPvroI2tr66VLl5aXl1tZWfF4PGtr67KyMn19fX19fXawxlZCyNatW4cOHbp+/XqNkRph2WFCoTAqKsrGxsbS0nLmzJkae7FQJwAAAAAA6NLDhw8XLVp07dq1K1euDB06dPTo0VVVVQqFory8fMyYMRqDW2+NiIgoKiras2eP9rDssIcPH+7YsePevXsNDQ0a9xqp46hUqh4/VAAAAAAA6KTk5OSAgAA9PT1CSFRU1IYNG7y8vG7cuGFtbZ2ZmcnhcCZNmvTgwQNDQ8O33357x44d6lvVC4mKigr1kc8//7x62NDQUDrsk08+2blzZ3Nz85gxYz777DNDQ0P1vRITE+kw1AkAAAAAAKAJ9x0BAAAAAICm/wtvLFccLGpL7QAAAABJRU5ErkJggg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6Y3NfU3VydmV5OwoKdXNlIHV0Zjg7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFBQVN1cnZleQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnLSBDaGFuZ2UgU3RhdHVzIC0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5ldyBTdXJ2ZXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEVkaXQgUXVlc3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1F1ZXN0aW9uIEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW5zd2VyIEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNldCBuZXcgc3RhdHVzISBObyBxdWVzdGlvbnMgZGVmaW5lZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHVzIGNoYW5nZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoYW5rIHlvdSBmb3IgeW91ciBmZWVkYmFjay4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHN1cnZleSBpcyBmaW5pc2hlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tcGxldGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGVja2JveCAoTGlzdCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmFkaW8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmFkaW8gKExpc3QpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRzIE92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBEZXNjcmlwdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgSW50cm9kdWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1llcy9Obyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZZXNObyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbnN3ZXJlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgYW5zd2VyZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgRGV0YWlsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIGFscmVhZHkgYW5zd2VyZWQgdGhlIHN1cnZleS4nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgTmV3IFN1cnZleSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnRyb2R1Y3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW50ZXJuYWwgRGVzY3JpcHRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBHZW5lcmFsIEluZm8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbCBJbmZvJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRzIE92ZXJ2aWV3IG9mJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RzIFRhYmxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbmQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWb3RlIFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFN0YXQgRGV0YWlscyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyBiYWNrIHRvIHN0YXRzIG92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIEJhY2snfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5RWRpdFF1ZXN0aW9ucwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBRdWVzdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFF1ZXN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGUgdGhlIHF1ZXN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBRdWVzdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVlc3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gcXVlc3Rpb25zIHNhdmVkIGZvciB0aGlzIHN1cnZleS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBRdWVzdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyBiYWNrIHRvIHF1ZXN0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQb3NzaWJsZSBBbnN3ZXJzIEZvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQW5zd2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgZG9lc25cJ3QgaGF2ZSBzZXZlcmFsIGFuc3dlcnMsIGEgdGV4dGFyZWEgd2lsbCBiZSBkaXNwbGF5ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBBbnN3ZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gYmFjayB0byBlZGl0IHF1ZXN0aW9uJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleU92ZXJ2aWV3TmF2QmFyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heC4gc2hvd24gU3VydmV5cyBwZXIgcGFnZSd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlPdmVydmlld1NtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gU2VuZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBTdWJqZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBCb2R5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZWQgQnknfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5Wm9vbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEluZm9ybWF0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbnQgcmVxdWVzdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVjZWl2ZWQgc3VydmV5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0cyBEZXRhaWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBEZXRhaWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBSZXN1bHRzIEdyYXBoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHN0YXQgcmVzdWx0cy4nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IFB1YmxpY1N1cnZleQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhbnN3ZXIgdGhlc2UgcXVlc3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgbXkgYW5zd2Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVzZSBhcmUgeW91ciBhbnN3ZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBUaXRsZSd9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgU3VydmV5IE1vZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBtb2R1bGUgdG8gZWRpdCBzdXJ2ZXkgcXVlc3Rpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgcGFyYW1ldGVycyBmb3IgdGhlIFN1cnZleSBvYmplY3QgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbW91bnQgb2YgZGF5cyBhZnRlciBzZW5kaW5nIGEgc3VydmV5IG1haWwgaW4gd2hpY2ggbm8gbmV3IHN1cnZleSByZXF1ZXN0cyBhcmUgc2VudCB0byB0aGUgc2FtZSBjdXN0b21lci4gU2VsZWN0aW5nIDAgd2lsbCBhbHdheXMgc2VuZCB0aGUgc3VydmV5IG1haWwuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBib2R5IGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2VuZGVyIGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleXMgd2lsbCBub3QgYmUgc2VudCB0byB0aGUgY29uZmlndXJlZCBlbWFpbCBhZGRyZXNzZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdWJqZWN0IGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBzdXJ2ZXkgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIG1heGltdW0gYW1vdW50IG9mIHN1cnZleXMgdGhhdCBnZXQgc2VudCB0byBhIGN1c3RvbWVyIHBlciAzMCBkYXlzLiAoIDAgbWVhbnMgbm8gbWF4aW11bSwgYWxsIHN1cnZleSByZXF1ZXN0cyB3aWxsIGJlIHNlbnQpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGFtb3VudCBpbiBob3VycyBhIHRpY2tldCBoYXMgdG8gYmUgY2xvc2VkIHRvIHRyaWdnZXIgdGhlIHNlbmRpbmcgb2YgYSBzdXJ2ZXksICggMCBtZWFucyBzZW5kIGltbWVkaWF0ZWx5IGFmdGVyIGNsb3NlICkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBoZWlnaHQgZm9yIFJpY2h0ZXh0IHZpZXdzIGZvciBTdXJ2ZXlab29tIGVsZW1lbnRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIHN1cnZleSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIG9yIGRpc2FibGUgdGhlIFNob3dWb3RlRGF0YSBzY3JlZW4gaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UgdG8gc2hvdyBkYXRhIG9mIGEgc3BlY2lmaWMgc3VydmV5IHJlc3VsdCB3aGVuIHRoZSBjdXN0b21lciB0cmllcyB0byBhbnN3ZXIgYSBzdXJ2ZXkgdGhlIHNlY29uZCB0aW1lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Zyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHN1cnZleSB6b29tIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIFB1YmxpY1N1cnZleSBvYmplY3QgaW4gdGhlIHB1YmxpYyBTdXJ2ZXkgYXJlYS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGlzIHJlZ2V4IG1hdGNoZXMsIG5vIGN1c3RvbWVyIHN1cnZleSB3aWxsIGJlIHNlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIHN1cnZleXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgc3VydmV5IG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBTdXJ2ZXkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBab29tIE1vZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IGxpbWl0IHBlciBwYWdlIGZvciBTdXJ2ZXkgT3ZlcnZpZXcgIlNtYWxsIid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSBzdXJ2ZXksIGUuZy4gU3VydmV5IywgTXlTdXJ2ZXkjLiBUaGUgZGVmYXVsdCBpcyBTdXJ2ZXkjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBldmVudCBtb2R1bGUgdG8gc2VuZCBhdXRvbWF0aWNhbGx5IHN1cnZleSBlbWFpbCByZXF1ZXN0cyB0byBjdXN0b21lcnMgaWYgYSB0aWNrZXQgaXMgY2xvc2VkLid9ID0KICAgICAgICAnJzsKCiAgICAjCiAgICAjIE9CU09MRVRFIEVOVFJJRVMgRk9SIFJFRkVSRU5DRSwgRE8gTk9UIFRSQU5TTEFURSEKICAgICMKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6cnVfU3VydmV5OwoKdXNlIHV0Zjg7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFBQVN1cnZleQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnLSBDaGFuZ2UgU3RhdHVzIC0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5ldyBTdXJ2ZXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEVkaXQgUXVlc3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1F1ZXN0aW9uIEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW5zd2VyIEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNldCBuZXcgc3RhdHVzISBObyBxdWVzdGlvbnMgZGVmaW5lZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHVzIGNoYW5nZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoYW5rIHlvdSBmb3IgeW91ciBmZWVkYmFjay4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHN1cnZleSBpcyBmaW5pc2hlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tcGxldGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGVja2JveCAoTGlzdCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmFkaW8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmFkaW8gKExpc3QpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRzIE92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBEZXNjcmlwdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgSW50cm9kdWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1llcy9Obyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZZXNObyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbnN3ZXJlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgYW5zd2VyZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgRGV0YWlsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIGFscmVhZHkgYW5zd2VyZWQgdGhlIHN1cnZleS4nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgTmV3IFN1cnZleSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnRyb2R1Y3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW50ZXJuYWwgRGVzY3JpcHRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBHZW5lcmFsIEluZm8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbCBJbmZvJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRzIE92ZXJ2aWV3IG9mJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RzIFRhYmxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbmQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWb3RlIFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFN0YXQgRGV0YWlscyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyBiYWNrIHRvIHN0YXRzIG92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIEJhY2snfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5RWRpdFF1ZXN0aW9ucwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBRdWVzdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFF1ZXN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGUgdGhlIHF1ZXN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBRdWVzdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVlc3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gcXVlc3Rpb25zIHNhdmVkIGZvciB0aGlzIHN1cnZleS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBRdWVzdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyBiYWNrIHRvIHF1ZXN0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQb3NzaWJsZSBBbnN3ZXJzIEZvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQW5zd2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgZG9lc25cJ3QgaGF2ZSBzZXZlcmFsIGFuc3dlcnMsIGEgdGV4dGFyZWEgd2lsbCBiZSBkaXNwbGF5ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBBbnN3ZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gYmFjayB0byBlZGl0IHF1ZXN0aW9uJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleU92ZXJ2aWV3TmF2QmFyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXguIHNob3duIFN1cnZleXMgcGVyIHBhZ2UnfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5T3ZlcnZpZXdTbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIFNlbmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gU3ViamVjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gQm9keSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VkIEJ5J30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleVpvb20KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBJbmZvcm1hdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZW50IHJlcXVlc3RzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlY2VpdmVkIHN1cnZleXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgRGV0YWlscyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgRGV0YWlscyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgUmVzdWx0cyBHcmFwaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBzdGF0IHJlc3VsdHMuJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBQdWJsaWNTdXJ2ZXkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYW5zd2VyIHRoZXNlIHF1ZXN0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IG15IGFuc3dlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlc2UgYXJlIHlvdXIgYW5zd2Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgVGl0bGUnfSA9ICcnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIFN1cnZleSBNb2R1bGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgbW9kdWxlIHRvIGVkaXQgc3VydmV5IHF1ZXN0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIHBhcmFtZXRlcnMgZm9yIHRoZSBTdXJ2ZXkgb2JqZWN0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW1vdW50IG9mIGRheXMgYWZ0ZXIgc2VuZGluZyBhIHN1cnZleSBtYWlsIGluIHdoaWNoIG5vIG5ldyBzdXJ2ZXkgcmVxdWVzdHMgYXJlIHNlbnQgdG8gdGhlIHNhbWUgY3VzdG9tZXIuIFNlbGVjdGluZyAwIHdpbGwgYWx3YXlzIHNlbmQgdGhlIHN1cnZleSBtYWlsLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgYm9keSBmb3IgdGhlIG5vdGlmaWNhdGlvbiBlbWFpbCB0byBjdXN0b21lcnMgYWJvdXQgbmV3IHN1cnZleS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNlbmRlciBmb3IgdGhlIG5vdGlmaWNhdGlvbiBlbWFpbCB0byBjdXN0b21lcnMgYWJvdXQgbmV3IHN1cnZleS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXlzIHdpbGwgbm90IGJlIHNlbnQgdG8gdGhlIGNvbmZpZ3VyZWQgZW1haWwgYWRkcmVzc2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3ViamVjdCBmb3IgdGhlIG5vdGlmaWNhdGlvbiBlbWFpbCB0byBjdXN0b21lcnMgYWJvdXQgbmV3IHN1cnZleS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgc3VydmV5IGxpc3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBtYXhpbXVtIGFtb3VudCBvZiBzdXJ2ZXlzIHRoYXQgZ2V0IHNlbnQgdG8gYSBjdXN0b21lciBwZXIgMzAgZGF5cy4gKCAwIG1lYW5zIG5vIG1heGltdW0sIGFsbCBzdXJ2ZXkgcmVxdWVzdHMgd2lsbCBiZSBzZW50KS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBhbW91bnQgaW4gaG91cnMgYSB0aWNrZXQgaGFzIHRvIGJlIGNsb3NlZCB0byB0cmlnZ2VyIHRoZSBzZW5kaW5nIG9mIGEgc3VydmV5LCAoIDAgbWVhbnMgc2VuZCBpbW1lZGlhdGVseSBhZnRlciBjbG9zZSApLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgaGVpZ2h0IGZvciBSaWNodGV4dCB2aWV3cyBmb3IgU3VydmV5Wm9vbSBlbGVtZW50cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBzdXJ2ZXkgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW5zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSBvciBkaXNhYmxlIHRoZSBTaG93Vm90ZURhdGEgc2NyZWVuIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlIHRvIHNob3cgZGF0YSBvZiBhIHNwZWNpZmljIHN1cnZleSByZXN1bHQgd2hlbiB0aGUgY3VzdG9tZXIgdHJpZXMgdG8gYW5zd2VyIGEgc3VydmV5IHRoZSBzZWNvbmQgdGltZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciBzdXJ2ZXkgem9vbSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Zyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBQdWJsaWNTdXJ2ZXkgb2JqZWN0IGluIHRoZSBwdWJsaWMgU3VydmV5IGFyZWEuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhpcyByZWdleCBtYXRjaGVzLCBubyBjdXN0b21lciBzdXJ2ZXkgd2lsbCBiZSBzZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBzdXJ2ZXlzIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIHN1cnZleSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgU3VydmV5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgWm9vbSBNb2R1bGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBsaW1pdCBwZXIgcGFnZSBmb3IgU3VydmV5IE92ZXJ2aWV3ICJTbWFsbCInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgc3VydmV5LCBlLmcuIFN1cnZleSMsIE15U3VydmV5Iy4gVGhlIGRlZmF1bHQgaXMgU3VydmV5Iy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgZXZlbnQgbW9kdWxlIHRvIHNlbmQgYXV0b21hdGljYWxseSBzdXJ2ZXkgZW1haWwgcmVxdWVzdHMgdG8gY3VzdG9tZXJzIGlmIGEgdGlja2V0IGlzIGNsb3NlZC4nfSA9CiAgICAgICAgJyc7CgogICAgIwogICAgIyBPQlNPTEVURSBFTlRSSUVTIEZPUiBSRUZFUkVOQ0UsIERPIE5PVCBUUkFOU0xBVEUhCiAgICAjCgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6bmxfU3VydmV5OwoKdXNlIHV0Zjg7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFBQVN1cnZleQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnLSBDaGFuZ2UgU3RhdHVzIC0nfSA9ICctIFN0YXR1cyB3aWp6aWdlbiAtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBOZXcgU3VydmV5J30gPSAnTmlldXdlIGVucXXDqnRlIHRvZXZvZWdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgRWRpdCd9ID0gJ0Jld2VyayBlbnF1w6p0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgRWRpdCBRdWVzdGlvbnMnfSA9ICdCZXdlcmsgdnJhZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1F1ZXN0aW9uIEVkaXQnfSA9ICdCZXdlcmsgdnJhYWcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW5zd2VyIEVkaXQnfSA9ICdCZXdlcmsgYW50d29vcmQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNldCBuZXcgc3RhdHVzISBObyBxdWVzdGlvbnMgZGVmaW5lZC4nfSA9ICdLYW4gc3RhdHVzIG5pZXQgd2lqemlnZW4sIHZvZWcgZWVyc3QgdnJhZ2VuIHRvZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHVzIGNoYW5nZWQuJ30gPSAnU3RhdHVzIGJpamdld2Vya3QuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoYW5rIHlvdSBmb3IgeW91ciBmZWVkYmFjay4nfSA9ICdCZWRhbmt0IHZvb3IgdXcgZmVlZGJhY2suJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBzdXJ2ZXkgaXMgZmluaXNoZWQuJ30gPSAnRGUgZW5xdcOqdGUgaXMgaW5nZXN0dXVyZC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tcGxldGUnfSA9ICdWb2xsZWRpZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlJ30gPSAnT252b2xsZWRpZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGVja2JveCAoTGlzdCknfSA9ICdTZWxlY3RpZXZhayAobGlqc3QpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhZGlvJ30gPSAnS2V1emVyb25kamUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmFkaW8gKExpc3QpJ30gPSAnS2V1emVyb25kamUgKGxpanN0KSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0cyBPdmVydmlldyd9ID0gJ1N0YXRpc3RpZWtlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgRGVzY3JpcHRpb24nfSA9ICdPbXNjaHJpanZpbmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEludHJvZHVjdGlvbid9ID0gJ0ludHJvZHVjdGllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1llcy9Obyd9ID0gJ0phL05lZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZZXNObyd9ID0gJ0phTmVlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2Fuc3dlcmVkJ30gPSAnYmVhbnR3b29yZCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgYW5zd2VyZWQnfSA9ICduaWV0IGJlYW50d29vcmQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgRGV0YWlsJ30gPSAnRGV0YWlsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIGFscmVhZHkgYW5zd2VyZWQgdGhlIHN1cnZleS4nfSA9ICdVIGhlZWZ0IGRlemUgZW5xdcOqdGUgYWwgYmVhbnR3b29yZC4nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgTmV3IFN1cnZleSd9ID0gJ05pZXV3ZSBlbnF1w6p0ZSBhYW5tYWtlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnRyb2R1Y3Rpb24nfSA9ICdJbnRyb2R1Y3RpZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnRlcm5hbCBEZXNjcmlwdGlvbid9ID0gJ0ludGVybmUgb21zY2hyaWp2aW5nJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgR2VuZXJhbCBJbmZvJ30gPSAnQmV3ZXJrIGFsZ2VtZW5lIGluZm9ybWF0aWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbCBJbmZvJ30gPSAnQWxnZW1lbmUgaW5mb3JtYXRpZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0cyBPdmVydmlldyBvZid9ID0gJ0RldGFpbG92ZXJ6aWNodCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0cyBUYWJsZSd9ID0gJ1ZlcnpvZWtlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZW5kIFRpbWUnfSA9ICdWZXJzdHV1cmQgb3AnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSBUaW1lJ30gPSAnSW5nZXZ1bGQgb3AnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFN0YXQgRGV0YWlscyd9ID0gJ0RldGFpbG92ZXJ6aWNodCBzdGF0aXN0aWVrZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gYmFjayB0byBzdGF0cyBvdmVydmlldyd9ID0gJ2dhIHRlcnVnIG5hYXIgaGV0IG92ZXJ6aWNodCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyBCYWNrJ30gPSAnR2EgdGVydWcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5RWRpdFF1ZXN0aW9ucwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBRdWVzdGlvbnMnfSA9ICdCZXdlcmsgdnJhZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBRdWVzdGlvbid9ID0gJ1ZyYWFnIHRvZXZvZWdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlIHRoZSBxdWVzdGlvbid9ID0gJ1ZyYWFnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBRdWVzdGlvbnMnfSA9ICdWcmFnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVlc3Rpb24nfSA9ICdWcmFhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBxdWVzdGlvbnMgc2F2ZWQgZm9yIHRoaXMgc3VydmV5Lid9ID0gJ0VyIHppam4gZ2VlbiB2cmFnZW4gb3BnZXNsYWdlbiB2b29yIGRlemUgZW5xdcOqdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBRdWVzdGlvbid9ID0gJ0Jld2VyayB2cmFhZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyBiYWNrIHRvIHF1ZXN0aW9ucyd9ID0gJ2dhIHRlcnVnIG5hYXIgZGUgdnJhZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Bvc3NpYmxlIEFuc3dlcnMgRm9yJ30gPSAnTW9nZWxpamtlIGFudHdvb3JkZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEFuc3dlcid9ID0gJ0FudHdvb3JkIHRvZXZvZWdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGRvZXNuXCd0IGhhdmUgc2V2ZXJhbCBhbnN3ZXJzLCBhIHRleHRhcmVhIHdpbGwgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAnRGV6ZSBoZWVmdCBuaWV0IG1lZXJkZXJlIGFudHdvb3JkZW4uIEVyIHphbCBlZW4gdGVrc3R2YWsgZ2V0b29uZCB3b3JkZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQW5zd2VyJ30gPSAnQW50d29vcmQgYmV3ZXJrZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gYmFjayB0byBlZGl0IHF1ZXN0aW9uJ30gPSAnZ2EgdGVydWcgbmFhciBkZSB2cmFhZyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlPdmVydmlld05hdkJhcgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4LiBzaG93biBTdXJ2ZXlzIHBlciBwYWdlJ30gPSAnTWF4aW1hYWwgYWFudGFsIGVucXXDqnRlcyBwZXIgcGFnaW5hJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleU92ZXJ2aWV3U21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBTZW5kZXInfSA9ICdBZnplbmRlciBub3RpZmljYXRpZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gU3ViamVjdCd9ID0gJ09uZGVyd2VycCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gQm9keSd9ID0gJ0JvZHkgdGV4dCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VkIEJ5J30gPSAnR2V3aWp6aWdkIGRvb3InOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5Wm9vbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEluZm9ybWF0aW9uJ30gPSAnRGV0YWlscyBlbnF1w6p0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZW50IHJlcXVlc3RzJ30gPSAnVmVyc3R1dXJkZSB2ZXJ6b2VrZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVjZWl2ZWQgc3VydmV5cyd9ID0gJ09udHZhbmdlbiBlbnF1w6p0ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgRGV0YWlscyd9ID0gJ0RldGFpbHMgc3RhdGlzdGlla2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBEZXRhaWxzJ30gPSAnRGV0YWlscyBlbnF1w6p0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgUmVzdWx0cyBHcmFwaCd9ID0gJ1Jlc3VsdGF0ZW4gKGdyYWZpZWspJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHN0YXQgcmVzdWx0cy4nfSA9ICdHZWVuIHJlc3VsdGF0ZW4uJzsKCiAgICAjIFRlbXBsYXRlOiBQdWJsaWNTdXJ2ZXkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSd9ID0gJ0VucXXDqnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhbnN3ZXIgdGhlc2UgcXVlc3Rpb25zJ30gPSAnQmVhbnR3b29yZHQgdSBkZSB2b2xnZW5kZSB2cmFnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBteSBhbnN3ZXJzJ30gPSAnVG9vbiBtaWpuIGFudHdvb3JkZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlc2UgYXJlIHlvdXIgYW5zd2Vycyd9ID0gJ0RpdCB6aWpuIHV3IGFudHdvb3JkZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFRpdGxlJ30gPSAnRW5xdcOqdGV0aXRlbCc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgU3VydmV5IE1vZHVsZS4nfSA9ICdFZW4gbW9kdWxlIG9tIGVucXXDqnRlcyB0ZSBvbmRlcmhvdWRlbiBlbiB0ZSB2ZXJzdHVyZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBtb2R1bGUgdG8gZWRpdCBzdXJ2ZXkgcXVlc3Rpb25zLid9ID0gJ0VlbiBtb2R1bGUgb20gZW5xdcOqdGVzIHRlIG9uZGVyaG91ZGVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgcGFyYW1ldGVycyBmb3IgdGhlIFN1cnZleSBvYmplY3QgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbW91bnQgb2YgZGF5cyBhZnRlciBzZW5kaW5nIGEgc3VydmV5IG1haWwgaW4gd2hpY2ggbm8gbmV3IHN1cnZleSByZXF1ZXN0cyBhcmUgc2VudCB0byB0aGUgc2FtZSBjdXN0b21lci4gU2VsZWN0aW5nIDAgd2lsbCBhbHdheXMgc2VuZCB0aGUgc3VydmV5IG1haWwuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBib2R5IGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2VuZGVyIGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleXMgd2lsbCBub3QgYmUgc2VudCB0byB0aGUgY29uZmlndXJlZCBlbWFpbCBhZGRyZXNzZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdWJqZWN0IGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBzdXJ2ZXkgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIG1heGltdW0gYW1vdW50IG9mIHN1cnZleXMgdGhhdCBnZXQgc2VudCB0byBhIGN1c3RvbWVyIHBlciAzMCBkYXlzLiAoIDAgbWVhbnMgbm8gbWF4aW11bSwgYWxsIHN1cnZleSByZXF1ZXN0cyB3aWxsIGJlIHNlbnQpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGFtb3VudCBpbiBob3VycyBhIHRpY2tldCBoYXMgdG8gYmUgY2xvc2VkIHRvIHRyaWdnZXIgdGhlIHNlbmRpbmcgb2YgYSBzdXJ2ZXksICggMCBtZWFucyBzZW5kIGltbWVkaWF0ZWx5IGFmdGVyIGNsb3NlICkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBoZWlnaHQgZm9yIFJpY2h0ZXh0IHZpZXdzIGZvciBTdXJ2ZXlab29tIGVsZW1lbnRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIHN1cnZleSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIG9yIGRpc2FibGUgdGhlIFNob3dWb3RlRGF0YSBzY3JlZW4gaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UgdG8gc2hvdyBkYXRhIG9mIGEgc3BlY2lmaWMgc3VydmV5IHJlc3VsdCB3aGVuIHRoZSBjdXN0b21lciB0cmllcyB0byBhbnN3ZXIgYSBzdXJ2ZXkgdGhlIHNlY29uZCB0aW1lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Zyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHN1cnZleSB6b29tIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIFB1YmxpY1N1cnZleSBvYmplY3QgaW4gdGhlIHB1YmxpYyBTdXJ2ZXkgYXJlYS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGlzIHJlZ2V4IG1hdGNoZXMsIG5vIGN1c3RvbWVyIHN1cnZleSB3aWxsIGJlIHNlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIHN1cnZleXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgc3VydmV5IG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBTdXJ2ZXkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBab29tIE1vZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IGxpbWl0IHBlciBwYWdlIGZvciBTdXJ2ZXkgT3ZlcnZpZXcgIlNtYWxsIid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSBzdXJ2ZXksIGUuZy4gU3VydmV5IywgTXlTdXJ2ZXkjLiBUaGUgZGVmYXVsdCBpcyBTdXJ2ZXkjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBldmVudCBtb2R1bGUgdG8gc2VuZCBhdXRvbWF0aWNhbGx5IHN1cnZleSBlbWFpbCByZXF1ZXN0cyB0byBjdXN0b21lcnMgaWYgYSB0aWNrZXQgaXMgY2xvc2VkLid9ID0KICAgICAgICAnJzsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZGFfU3VydmV5OwoKdXNlIHV0Zjg7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFBQVN1cnZleQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnLSBDaGFuZ2UgU3RhdHVzIC0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5ldyBTdXJ2ZXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEVkaXQgUXVlc3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1F1ZXN0aW9uIEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW5zd2VyIEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNldCBuZXcgc3RhdHVzISBObyBxdWVzdGlvbnMgZGVmaW5lZC4nfSA9ICdLYW4gaWtrZSBzw6Z0dGUgbnkgc3RhdHVzISBEZXIgZXIgaWtrZSBkZWZpbmVyZXQgbm9nZW4gc3DDuHJnc23DpWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXR1cyBjaGFuZ2VkLid9ID0gJ1N0YXR1cyDDpm5kcmV0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGFuayB5b3UgZm9yIHlvdXIgZmVlZGJhY2suJ30gPSAnVGFrIGZvciBkaW4gYmVzdmFyZWxzZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHN1cnZleSBpcyBmaW5pc2hlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tcGxldGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGVja2JveCAoTGlzdCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmFkaW8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmFkaW8gKExpc3QpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRzIE92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBEZXNjcmlwdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgSW50cm9kdWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1llcy9Obyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZZXNObyd9ID0gJ0phTmVqJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2Fuc3dlcmVkJ30gPSAnYmVzdmFyZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnbm90IGFuc3dlcmVkJ30gPSAnaWtrZSBiZXN2YXJldCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0cyBEZXRhaWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgYWxyZWFkeSBhbnN3ZXJlZCB0aGUgc3VydmV5Lid9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBOZXcgU3VydmV5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludHJvZHVjdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnRlcm5hbCBEZXNjcmlwdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEdlbmVyYWwgSW5mbyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIEluZm8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgT3ZlcnZpZXcgb2YnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdHMgVGFibGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VuZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGUgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgU3RhdCBEZXRhaWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIGJhY2sgdG8gc3RhdHMgb3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gQmFjayd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlFZGl0UXVlc3Rpb25zCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFF1ZXN0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUXVlc3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZSB0aGUgcXVlc3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFF1ZXN0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydRdWVzdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBxdWVzdGlvbnMgc2F2ZWQgZm9yIHRoaXMgc3VydmV5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFF1ZXN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIGJhY2sgdG8gcXVlc3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Bvc3NpYmxlIEFuc3dlcnMgRm9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBBbnN3ZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBkb2VzblwndCBoYXZlIHNldmVyYWwgYW5zd2VycywgYSB0ZXh0YXJlYSB3aWxsIGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEFuc3dlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyBiYWNrIHRvIGVkaXQgcXVlc3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW5zd2VyJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleU92ZXJ2aWV3TmF2QmFyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heC4gc2hvd24gU3VydmV5cyBwZXIgcGFnZSd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlPdmVydmlld1NtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gU2VuZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBTdWJqZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBCb2R5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZWQgQnknfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5Wm9vbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEluZm9ybWF0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbnQgcmVxdWVzdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVjZWl2ZWQgc3VydmV5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0cyBEZXRhaWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBEZXRhaWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBSZXN1bHRzIEdyYXBoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHN0YXQgcmVzdWx0cy4nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IFB1YmxpY1N1cnZleQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5J30gPSAnVW5kZXJzw7hnZWxzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYW5zd2VyIHRoZXNlIHF1ZXN0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IG15IGFuc3dlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlc2UgYXJlIHlvdXIgYW5zd2Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgVGl0bGUnfSA9ICcnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIFN1cnZleSBNb2R1bGUuJ30gPSAnRXQgdW5kZXJzw7hnZWxzZXNtb2R1bC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBtb2R1bGUgdG8gZWRpdCBzdXJ2ZXkgcXVlc3Rpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgcGFyYW1ldGVycyBmb3IgdGhlIFN1cnZleSBvYmplY3QgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbW91bnQgb2YgZGF5cyBhZnRlciBzZW5kaW5nIGEgc3VydmV5IG1haWwgaW4gd2hpY2ggbm8gbmV3IHN1cnZleSByZXF1ZXN0cyBhcmUgc2VudCB0byB0aGUgc2FtZSBjdXN0b21lci4gU2VsZWN0aW5nIDAgd2lsbCBhbHdheXMgc2VuZCB0aGUgc3VydmV5IG1haWwuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBib2R5IGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2VuZGVyIGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleXMgd2lsbCBub3QgYmUgc2VudCB0byB0aGUgY29uZmlndXJlZCBlbWFpbCBhZGRyZXNzZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdWJqZWN0IGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBzdXJ2ZXkgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIG1heGltdW0gYW1vdW50IG9mIHN1cnZleXMgdGhhdCBnZXQgc2VudCB0byBhIGN1c3RvbWVyIHBlciAzMCBkYXlzLiAoIDAgbWVhbnMgbm8gbWF4aW11bSwgYWxsIHN1cnZleSByZXF1ZXN0cyB3aWxsIGJlIHNlbnQpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGFtb3VudCBpbiBob3VycyBhIHRpY2tldCBoYXMgdG8gYmUgY2xvc2VkIHRvIHRyaWdnZXIgdGhlIHNlbmRpbmcgb2YgYSBzdXJ2ZXksICggMCBtZWFucyBzZW5kIGltbWVkaWF0ZWx5IGFmdGVyIGNsb3NlICkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBoZWlnaHQgZm9yIFJpY2h0ZXh0IHZpZXdzIGZvciBTdXJ2ZXlab29tIGVsZW1lbnRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIHN1cnZleSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIG9yIGRpc2FibGUgdGhlIFNob3dWb3RlRGF0YSBzY3JlZW4gaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UgdG8gc2hvdyBkYXRhIG9mIGEgc3BlY2lmaWMgc3VydmV5IHJlc3VsdCB3aGVuIHRoZSBjdXN0b21lciB0cmllcyB0byBhbnN3ZXIgYSBzdXJ2ZXkgdGhlIHNlY29uZCB0aW1lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Zyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHN1cnZleSB6b29tIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIFB1YmxpY1N1cnZleSBvYmplY3QgaW4gdGhlIHB1YmxpYyBTdXJ2ZXkgYXJlYS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGlzIHJlZ2V4IG1hdGNoZXMsIG5vIGN1c3RvbWVyIHN1cnZleSB3aWxsIGJlIHNlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIHN1cnZleXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgc3VydmV5IG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBTdXJ2ZXkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBab29tIE1vZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IGxpbWl0IHBlciBwYWdlIGZvciBTdXJ2ZXkgT3ZlcnZpZXcgIlNtYWxsIid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSBzdXJ2ZXksIGUuZy4gU3VydmV5IywgTXlTdXJ2ZXkjLiBUaGUgZGVmYXVsdCBpcyBTdXJ2ZXkjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBldmVudCBtb2R1bGUgdG8gc2VuZCBhdXRvbWF0aWNhbGx5IHN1cnZleSBlbWFpbCByZXF1ZXN0cyB0byBjdXN0b21lcnMgaWYgYSB0aWNrZXQgaXMgY2xvc2VkLid9ID0KICAgICAgICAnJzsKCiAgICAjCiAgICAjIE9CU09MRVRFIEVOVFJJRVMgRk9SIFJFRkVSRU5DRSwgRE8gTk9UIFRSQU5TTEFURSEKICAgICMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSMnfSA9ICdVbmRlcnPDuGdlbHNlIyc7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZnJfU3VydmV5OwoKdXNlIHV0Zjg7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFBQVN1cnZleQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnLSBDaGFuZ2UgU3RhdHVzIC0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5ldyBTdXJ2ZXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEVkaXQgUXVlc3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1F1ZXN0aW9uIEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW5zd2VyIEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNldCBuZXcgc3RhdHVzISBObyBxdWVzdGlvbnMgZGVmaW5lZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHVzIGNoYW5nZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoYW5rIHlvdSBmb3IgeW91ciBmZWVkYmFjay4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHN1cnZleSBpcyBmaW5pc2hlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tcGxldGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGVja2JveCAoTGlzdCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmFkaW8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmFkaW8gKExpc3QpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRzIE92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBEZXNjcmlwdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgSW50cm9kdWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1llcy9Obyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZZXNObyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbnN3ZXJlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgYW5zd2VyZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgRGV0YWlsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIGFscmVhZHkgYW5zd2VyZWQgdGhlIHN1cnZleS4nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgTmV3IFN1cnZleSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnRyb2R1Y3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW50ZXJuYWwgRGVzY3JpcHRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBHZW5lcmFsIEluZm8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbCBJbmZvJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRzIE92ZXJ2aWV3IG9mJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RzIFRhYmxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbmQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWb3RlIFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFN0YXQgRGV0YWlscyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyBiYWNrIHRvIHN0YXRzIG92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIEJhY2snfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5RWRpdFF1ZXN0aW9ucwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBRdWVzdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFF1ZXN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGUgdGhlIHF1ZXN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBRdWVzdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVlc3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gcXVlc3Rpb25zIHNhdmVkIGZvciB0aGlzIHN1cnZleS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBRdWVzdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyBiYWNrIHRvIHF1ZXN0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQb3NzaWJsZSBBbnN3ZXJzIEZvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQW5zd2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgZG9lc25cJ3QgaGF2ZSBzZXZlcmFsIGFuc3dlcnMsIGEgdGV4dGFyZWEgd2lsbCBiZSBkaXNwbGF5ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBBbnN3ZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gYmFjayB0byBlZGl0IHF1ZXN0aW9uJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleU92ZXJ2aWV3TmF2QmFyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heC4gc2hvd24gU3VydmV5cyBwZXIgcGFnZSd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlPdmVydmlld1NtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gU2VuZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBTdWJqZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBCb2R5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZWQgQnknfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5Wm9vbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEluZm9ybWF0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbnQgcmVxdWVzdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVjZWl2ZWQgc3VydmV5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0cyBEZXRhaWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBEZXRhaWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBSZXN1bHRzIEdyYXBoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHN0YXQgcmVzdWx0cy4nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IFB1YmxpY1N1cnZleQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhbnN3ZXIgdGhlc2UgcXVlc3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgbXkgYW5zd2Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVzZSBhcmUgeW91ciBhbnN3ZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBUaXRsZSd9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgU3VydmV5IE1vZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBtb2R1bGUgdG8gZWRpdCBzdXJ2ZXkgcXVlc3Rpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgcGFyYW1ldGVycyBmb3IgdGhlIFN1cnZleSBvYmplY3QgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbW91bnQgb2YgZGF5cyBhZnRlciBzZW5kaW5nIGEgc3VydmV5IG1haWwgaW4gd2hpY2ggbm8gbmV3IHN1cnZleSByZXF1ZXN0cyBhcmUgc2VudCB0byB0aGUgc2FtZSBjdXN0b21lci4gU2VsZWN0aW5nIDAgd2lsbCBhbHdheXMgc2VuZCB0aGUgc3VydmV5IG1haWwuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBib2R5IGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2VuZGVyIGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleXMgd2lsbCBub3QgYmUgc2VudCB0byB0aGUgY29uZmlndXJlZCBlbWFpbCBhZGRyZXNzZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdWJqZWN0IGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBzdXJ2ZXkgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIG1heGltdW0gYW1vdW50IG9mIHN1cnZleXMgdGhhdCBnZXQgc2VudCB0byBhIGN1c3RvbWVyIHBlciAzMCBkYXlzLiAoIDAgbWVhbnMgbm8gbWF4aW11bSwgYWxsIHN1cnZleSByZXF1ZXN0cyB3aWxsIGJlIHNlbnQpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGFtb3VudCBpbiBob3VycyBhIHRpY2tldCBoYXMgdG8gYmUgY2xvc2VkIHRvIHRyaWdnZXIgdGhlIHNlbmRpbmcgb2YgYSBzdXJ2ZXksICggMCBtZWFucyBzZW5kIGltbWVkaWF0ZWx5IGFmdGVyIGNsb3NlICkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBoZWlnaHQgZm9yIFJpY2h0ZXh0IHZpZXdzIGZvciBTdXJ2ZXlab29tIGVsZW1lbnRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIHN1cnZleSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIG9yIGRpc2FibGUgdGhlIFNob3dWb3RlRGF0YSBzY3JlZW4gaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UgdG8gc2hvdyBkYXRhIG9mIGEgc3BlY2lmaWMgc3VydmV5IHJlc3VsdCB3aGVuIHRoZSBjdXN0b21lciB0cmllcyB0byBhbnN3ZXIgYSBzdXJ2ZXkgdGhlIHNlY29uZCB0aW1lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Zyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHN1cnZleSB6b29tIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIFB1YmxpY1N1cnZleSBvYmplY3QgaW4gdGhlIHB1YmxpYyBTdXJ2ZXkgYXJlYS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGlzIHJlZ2V4IG1hdGNoZXMsIG5vIGN1c3RvbWVyIHN1cnZleSB3aWxsIGJlIHNlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIHN1cnZleXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgc3VydmV5IG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBTdXJ2ZXkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBab29tIE1vZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IGxpbWl0IHBlciBwYWdlIGZvciBTdXJ2ZXkgT3ZlcnZpZXcgIlNtYWxsIid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSBzdXJ2ZXksIGUuZy4gU3VydmV5IywgTXlTdXJ2ZXkjLiBUaGUgZGVmYXVsdCBpcyBTdXJ2ZXkjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBldmVudCBtb2R1bGUgdG8gc2VuZCBhdXRvbWF0aWNhbGx5IHN1cnZleSBlbWFpbCByZXF1ZXN0cyB0byBjdXN0b21lcnMgaWYgYSB0aWNrZXQgaXMgY2xvc2VkLid9ID0KICAgICAgICAnJzsKCiAgICAjCiAgICAjIE9CU09MRVRFIEVOVFJJRVMgRk9SIFJFRkVSRU5DRSwgRE8gTk9UIFRSQU5TTEFURSEKICAgICMKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZGVfU3VydmV5OwoKdXNlIHV0Zjg7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFBQVN1cnZleQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnLSBDaGFuZ2UgU3RhdHVzIC0nfSA9ICctIFN0YXR1cyDDhG5kZXJuIC0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5ldyBTdXJ2ZXknfSA9ICdOZXVlIFVtZnJhZ2UgaGluenVmw7xnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEVkaXQnfSA9ICdVbWZyYWdlIGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEVkaXQgUXVlc3Rpb25zJ30gPSAnRnJhZ2VuIGRlciBVbWZyYWdlIGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVlc3Rpb24gRWRpdCd9ID0gJ0ZyYWdlIGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW5zd2VyIEVkaXQnfSA9ICdBbnR3b3J0IGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNldCBuZXcgc3RhdHVzISBObyBxdWVzdGlvbnMgZGVmaW5lZC4nfSA9ICdTdGF0dXMga29ubnRlIG5pY2h0IGdlc2V0enQgd2VyZGVuISBLZWluZSBGcmFnZW4gZGVmaW5pZXJ0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0dXMgY2hhbmdlZC4nfSA9ICdTdGF0dXMgZ2XDpG5kZXJ0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGFuayB5b3UgZm9yIHlvdXIgZmVlZGJhY2suJ30gPSAnRGFua2UgZsO8ciBJaHIgRmVlZGJhY2suJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBzdXJ2ZXkgaXMgZmluaXNoZWQuJ30gPSAnRGllIFVtZnJhZ2UgaXN0IGJlZW5kZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbXBsZXRlJ30gPSAnVm9sbHN0w6RuZGlnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUnfSA9ICdVbnZvbGxzdMOkbmRpZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGVja2JveCAoTGlzdCknfSA9ICdLb250cm9sbGvDpHN0Y2hlbiAoTGlzdGUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhZGlvJ30gPSAnT3B0aW9uc3NjaGFsdGVyJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JhZGlvIChMaXN0KSd9ID0gJ09wdGlvbnNzY2hhbHRlciAoTGlzdGUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRzIE92ZXJ2aWV3J30gPSAnU3RhdGlzdGlrIMOcYmVyc2ljaHQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IERlc2NyaXB0aW9uJ30gPSAnVW1mcmFnZSBCZXNjaHJlaWJ1bmcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEludHJvZHVjdGlvbid9ID0gJ1VtZnJhZ2UgRWlubGVpdHVuZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZZXMvTm8nfSA9ICdKYS9OZWluJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1llc05vJ30gPSAnSmFOZWluJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2Fuc3dlcmVkJ30gPSAnYmVhbnR3b3J0ZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnbm90IGFuc3dlcmVkJ30gPSAnbmljaHQgYmVhbnR3b3J0ZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgRGV0YWlsJ30gPSAnU3RhdGlzdGlrIERldGFpbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSBhbHJlYWR5IGFuc3dlcmVkIHRoZSBzdXJ2ZXkuJ30gPSAnU2llIGhhYmVuIGRpZSBVbWZyYWdlIHNjaG9uIGJlYW50d29ydGV0Lic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBOZXcgU3VydmV5J30gPSAnTmV1ZSBVbWZyYWdlIGVyc3RlbGxlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnRyb2R1Y3Rpb24nfSA9ICdFaW5sZWl0dW5nc3RleHQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW50ZXJuYWwgRGVzY3JpcHRpb24nfSA9ICdJbnRlcm5lIEJlc2NocmVpYnVuZyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEdlbmVyYWwgSW5mbyd9ID0gJ0FsbGdlbWVpbmUgQW5nYWJlbiBiZWFyYmVpdGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWwgSW5mbyd9ID0gJ0FsbGdlbWVpbmUgQW5nYWJlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0cyBPdmVydmlldyBvZid9ID0gJ1N0YXRpc3RpayDDnGJlcnNpY2h0IHZvbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0cyBUYWJsZSd9ID0gJ0FuZnJhZ2VuLVRhYmVsbGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VuZCBUaW1lJ30gPSAnU2VuZGV6ZWl0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGUgVGltZSd9ID0gJ0Fic3RpbW11bmdzemVpdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgU3RhdCBEZXRhaWxzJ30gPSAnRGV0YWlscyBVbWZyYWdlc3RhdGlzdGlrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIGJhY2sgdG8gc3RhdHMgb3ZlcnZpZXcnfSA9ICdadXLDvGNrIHp1ciDDnGJlcnNpY2h0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIEJhY2snfSA9ICdadXLDvGNrJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleUVkaXRRdWVzdGlvbnMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUXVlc3Rpb25zJ30gPSAnRnJhZ2VuIGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFF1ZXN0aW9uJ30gPSAnRnJhZ2UgaGluenVmw7xnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZSB0aGUgcXVlc3Rpb24nfSA9ICdGcmFnZSBlaW5nZWJlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgUXVlc3Rpb25zJ30gPSAnVW1mcmFnZS1GcmFnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVlc3Rpb24nfSA9ICdGcmFnZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBxdWVzdGlvbnMgc2F2ZWQgZm9yIHRoaXMgc3VydmV5Lid9ID0gJ0bDvHIgZGllc2UgVW1mcmFnZSBzaW5kIGtlaW5lIEZyYWdlbiBnZXNwZWljaGVydC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBRdWVzdGlvbid9ID0gJ0ZyYWdlIGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gYmFjayB0byBxdWVzdGlvbnMnfSA9ICdadXLDvGNrIHp1IGRlbiBGcmFnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUG9zc2libGUgQW5zd2VycyBGb3InfSA9ICdNw7ZnbGljaGUgQW50d29ydGVuIGbDvHInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEFuc3dlcid9ID0gJ0FudHdvcnQgaGluenVmw7xnZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBkb2VzblwndCBoYXZlIHNldmVyYWwgYW5zd2VycywgYSB0ZXh0YXJlYSB3aWxsIGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJ0RpZXNlIEZyYWdlIGhhdCBuaWNodCBtZWhyZXJlIEFudHdvcnRlbiwgZWluIFRleHRlaW5nYWJlZmVsZCB3aXJkIGhpbnp1Z2Vmw7xndC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBBbnN3ZXInfSA9ICdBbnR3b3J0IGJlYXJiZWl0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gYmFjayB0byBlZGl0IHF1ZXN0aW9uJ30gPSAnWnVyw7xjayB6dW0gQmVhcmJlaXRlbiBkZXIgRnJhZ2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW5zd2VyIHJlcXVpcmVkJ30gPSAnQW50d29ydCBlcmZvcmRlcmxpY2gnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5T3ZlcnZpZXdOYXZCYXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRleHQgU2V0dGluZ3MnfSA9ICdLb250ZXh0LUVpbnN0ZWxsdW5nZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4LiBzaG93biBTdXJ2ZXlzIHBlciBwYWdlJ30gPSAnTWF4aW1hbGUgQW56YWhsIGFuZ2V6ZWlndGVyIFVtZnJhZ2VuIHBybyBTZWl0ZSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlPdmVydmlld1NtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gU2VuZGVyJ30gPSAnQmVuYWNocmljaHRpZ3VuZyBBYnNlbmRlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gU3ViamVjdCd9ID0gJ0JlbmFjaHJpY2h0aWd1bmcgQmV0cmVmZic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gQm9keSd9ID0gJ0JlbmFjaHJpY2h0aWd1bmcgVGV4dCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VkIEJ5J30gPSAnR2XDpG5kZXJ0IHZvbic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlab29tCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgSW5mb3JtYXRpb24nfSA9ICdVbWZyYWdlLUluZm9ybWF0aW9uZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VudCByZXF1ZXN0cyd9ID0gJ0dlc2VuZGV0ZSBBbmZyYWdlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWNlaXZlZCBzdXJ2ZXlzJ30gPSAnRXJoYWx0ZW5lIFVtZnJhZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRzIERldGFpbHMnfSA9ICdTdGF0aXN0aWstRGV0YWlscyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgRGV0YWlscyd9ID0gJ1VtZnJhZ2UtRGV0YWlscyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgUmVzdWx0cyBHcmFwaCd9ID0gJ0dyYWZpayBVbWZyYWdlZXJnZWJuaXNzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBzdGF0IHJlc3VsdHMuJ30gPSAnS2VpbmUgU3RhdGlzdGlrLUVyZ2Vibmlzc2UuJzsKCiAgICAjIFRlbXBsYXRlOiBQdWJsaWNTdXJ2ZXkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSd9ID0gJ1VtZnJhZ2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFuc3dlciB0aGVzZSBxdWVzdGlvbnMnfSA9ICdCaXR0ZSBiZWFudHdvcnRlbiBTaWUgZGllc2UgRnJhZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgbXkgYW5zd2Vycyd9ID0gJ1plaWdlIG1laW5lIEFudHdvcnRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVzZSBhcmUgeW91ciBhbnN3ZXJzJ30gPSAnRGllcyBzaW5kIElocmUgQW50d29ydGVuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBUaXRsZSd9ID0gJ1VtZnJhZ2UgVGl0ZWwnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIFN1cnZleSBNb2R1bGUuJ30gPSAnRWluIFVtZnJhZ2UtTW9kdWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBtb2R1bGUgdG8gZWRpdCBzdXJ2ZXkgcXVlc3Rpb25zLid9ID0gJ0VpbiBNb2R1bCwgdW0gVW1mcmFnZW4genUgYmVhcmJlaXRlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgcGFyYW1ldGVycyBmb3IgdGhlIFN1cnZleSBvYmplY3QgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ0FsbGUgUGFyYW1ldGVyIGbDvHIgZGFzIFVtZnJhZ2UtTW9kdWwgaW0gQWdlbnRlbi1JbnRlcmZhY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Ftb3VudCBvZiBkYXlzIGFmdGVyIHNlbmRpbmcgYSBzdXJ2ZXkgbWFpbCBpbiB3aGljaCBubyBuZXcgc3VydmV5IHJlcXVlc3RzIGFyZSBzZW50IHRvIHRoZSBzYW1lIGN1c3RvbWVyLiBTZWxlY3RpbmcgMCB3aWxsIGFsd2F5cyBzZW5kIHRoZSBzdXJ2ZXkgbWFpbC4nfSA9CiAgICAgICAgJ0FuemFobCBhbiBUYWdlbiBuYWNoIGRlbSBWZXJzYW5kIGVpbmVzIFVtZnJhZ2UgTWFpbHMgaW4gZGVuZW4ga2VpbiBuZXVlcyBVbWZyYWdlIE1haWwgYW4gZGVuIGdsZWljaGVuIEt1bmRlbiB2ZXJzZW5kZXQgd2lyZC4gV8OkaGxlbiBzaWUgMCB1bSBpbW1lciBVbWZyYWdlIE1haWxzIHp1IHZlcnNlbmRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBib2R5IGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnVm9yZWluZ2VzdGVsbHRlciBUZXh0IGbDvHIgQmVuYWNocmljaHRpZ3VuZ3MtTWFpbHMgYW4gZGVuIEt1bmRlbiDDvGJlciBuZXVlIFVtZnJhZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNlbmRlciBmb3IgdGhlIG5vdGlmaWNhdGlvbiBlbWFpbCB0byBjdXN0b21lcnMgYWJvdXQgbmV3IHN1cnZleS4nfSA9CiAgICAgICAgJ1ZvcmVpbmdlc3RlbGx0ZXIgQWJzZW5kZXIgZsO8ciBCZW5hY2hyaWNodGlndW5ncy1NYWlscyBhbiBkZW4gS3VuZGVuIMO8YmVyIG5ldWUgVW1mcmFnZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleXMgd2lsbCBub3QgYmUgc2VudCB0byB0aGUgY29uZmlndXJlZCBlbWFpbCBhZGRyZXNzZXMuJ30gPQogICAgICAgICdVbWZyYWdlbiB3ZXJkZW4gbmljaHQgYW4gZGllIGtvbmZpZ3VyaWVydGVuIEUtTWFpbC1BZHJlc3NlbiBnZXNlbmRldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdWJqZWN0IGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnVm9yZWluZ2VzdGVsbHRlciBCZXRyZWZmIGbDvHIgQmVuYWNocmljaHRpZ3VuZ3MtTWFpbHMgYW4gZGVuIEt1bmRlbiDDvGJlciBuZXVlIFVtZnJhZ2VuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgc3VydmV5IGxpc3QuJ30gPQogICAgICAgICdEZWZpbmllcnQgZWluIMOcYmVyc2ljaHRzLU1vZHVsLCBkYXNzIGVpbmUgTGlzdGUgYWxsZXIgVW1mcmFnZW4gYW56ZWlndC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBtYXhpbXVtIGFtb3VudCBvZiBzdXJ2ZXlzIHRoYXQgZ2V0IHNlbnQgdG8gYSBjdXN0b21lciBwZXIgMzAgZGF5cy4gKCAwIG1lYW5zIG5vIG1heGltdW0sIGFsbCBzdXJ2ZXkgcmVxdWVzdHMgd2lsbCBiZSBzZW50KS4nfSA9CiAgICAgICAgJ0RlZmluaWVydCBkaWUgbWF4aW1hbGUgQW56YWhsIHZvbiBVbWZyYWdlbiBkaWUgZWluIEt1bmRlIGlubmVyaGFsYiB2b24gMzAgVGFnZW4genVnZXNhbmR0IGJla29tbXQuICggMCBzdGVodCBmw7xyIGtlaW4gTWF4aW11bSwgYWxsZSBVbWZyYWdlIE1haWxzIHdlcmRlbiB2ZXJzYW5kdC4pJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGFtb3VudCBpbiBob3VycyBhIHRpY2tldCBoYXMgdG8gYmUgY2xvc2VkIHRvIHRyaWdnZXIgdGhlIHNlbmRpbmcgb2YgYSBzdXJ2ZXksICggMCBtZWFucyBzZW5kIGltbWVkaWF0ZWx5IGFmdGVyIGNsb3NlICkuJ30gPQogICAgICAgICdEZWZpbmllcnQgZGllIEFuemFobCBhbiBTdHVuZGVuIGbDvHIgZGllIGVpbiBUaWNrZXQgZ2VzY2hsb3NzZW4gc2VpbiBtdXNzIHVtIGRlbiBWZXJzYW5kIGVpbmVyIFVtZnJhZ2UgYXVzenVsw7ZzZW4gKCAwIGJlZGV1dGV0LCBkYXNzIFVtZnJhZ2Ugc29mb3J0IG5hY2ggU2NobGllw59lbiBlaW5lcyBUaWNrZXRzIHZlcnNhbmR0IHdpcmQgKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBoZWlnaHQgZm9yIFJpY2h0ZXh0IHZpZXdzIGZvciBTdXJ2ZXlab29tIGVsZW1lbnRzLid9ID0KICAgICAgICAnRGVmaW5pZXJ0IGRpZSAgU3RhbmRhcmRow7ZoZSBlaW5lcyBXWVNJV1lHLUJlcmVpY2hzIGbDvHIgZGllIFVtZnJhZ2UtRGV0YWlsYW5zaWNodC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgc3VydmV5IG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1ucy4nfSA9CiAgICAgICAgJ0RlZmluaWVydCBkaWUgYW5nZXplaWd0ZW4gU3BhbHRlbiBkZXIgVW1mcmFnZSDDnGJlcnNpY2h0LiBEaWVzZSBPcHRpb24gaGF0IGtlaW5lIEF1c3dpcmt1bmcgYXVmIGRpZSBQb3NpdGlvbiBkZXIgU3BhbHRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIG9yIGRpc2FibGUgdGhlIFNob3dWb3RlRGF0YSBzY3JlZW4gaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UgdG8gc2hvdyBkYXRhIG9mIGEgc3BlY2lmaWMgc3VydmV5IHJlc3VsdCB3aGVuIHRoZSBjdXN0b21lciB0cmllcyB0byBhbnN3ZXIgYSBzdXJ2ZXkgdGhlIHNlY29uZCB0aW1lLid9ID0KICAgICAgICAnQWt0aXZpZXJlbiBvZGVyIGRlYWt0aXZpZXJlbiBkaWUgU2hvd1ZvdGVEYXRhIHNjcmVlbnMgaW0gUHVibGljIEludGVyZmFjZSwgdW0gQWJzdGltbXVuZ3MtRGF0ZW4gYW56dXplaWdlbiwgd2VuIGVpbiBLdW5kZSB2ZXJzdWNodCwgZWluIHp3ZWl0ZXMgbWFsIGFienVzdGltbWVuLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciBzdXJ2ZXkgem9vbSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnRnJvbnRlbmQtTW9kdWwtUmVnaXN0cmllcnVuZyBmw7xyIGRpZSBVbWZyYWdlLURldGFpbGFuc2ljaHQgaW0gQWdlbnRlbi1JbnRlcmZhY2UuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Zyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBQdWJsaWNTdXJ2ZXkgb2JqZWN0IGluIHRoZSBwdWJsaWMgU3VydmV5IGFyZWEuJ30gPQogICAgICAgICdGcm9udGVuZC1Nb2R1bC1SZWdpc3RyaWVydW5nIGbDvHIgZGllIMO2ZmZlbnRsaWNoZSBVbWZyYWdlLcOcYmVyc2ljaHQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoaXMgcmVnZXggbWF0Y2hlcywgbm8gY3VzdG9tZXIgc3VydmV5IHdpbGwgYmUgc2VudC4nfSA9ICdXZW5uIGRpZXNlciByZWd1bMOkcmUgQXVzZHJ1Y2sgenV0cmlmZnQsIHdpcmQga2VpbmUgVW1mcmFnZSBhbiBkZW4gS3VuZGVuIGdlc2VuZGV0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBzdXJ2ZXlzIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIHN1cnZleSBvdmVydmlldy4nfSA9CiAgICAgICAgJ1BhcmFtZXRlciBmw7xyIGRpZSBTZWl0ZW4gZGVyIFVtZnJhZ2Utw5xiZXJzaWNodC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIFN1cnZleS4nfSA9ICfDlmZmZW50bGljaGUgVW1mcmFnZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICdVbWZyYWdlLcOcYmVyc2ljaHQgTGltaXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFpvb20gTW9kdWxlLid9ID0gJ01vZHVsIFVtZnJhZ2UtRGV0YWlsYW5zaWNodCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgbGltaXQgcGVyIHBhZ2UgZm9yIFN1cnZleSBPdmVydmlldyAiU21hbGwiJ30gPSAnVW1mcmFnZS1MaW1pdCBwcm8gU2VpdGUgaW4gZGVyIFVtZnJhZ2Utw5xiZXJzaWNodCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSBzdXJ2ZXksIGUuZy4gU3VydmV5IywgTXlTdXJ2ZXkjLiBUaGUgZGVmYXVsdCBpcyBTdXJ2ZXkjLid9ID0KICAgICAgICAnRGllIGVpbmRldXRpZ2UgQmV6ZWljaG51bmcgZsO8ciBlaW5lIFVtZnJhZ2UsIHouIEIuIFN1cnZleSMgb2RlciBNeVN1cnZleSMuIFN0YW5kYXJkIGlzdCBTdXJ2ZXkjLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgZXZlbnQgbW9kdWxlIHRvIHNlbmQgYXV0b21hdGljYWxseSBzdXJ2ZXkgZW1haWwgcmVxdWVzdHMgdG8gY3VzdG9tZXJzIGlmIGEgdGlja2V0IGlzIGNsb3NlZC4nfSA9CiAgICAgICAgJ1RpY2tldC1FdmVudC1Nb2R1bCwgdW0gYXV0b21hdGlzY2ggVW1mcmFnZS1FLU1haWxzIGFuIEt1bmRlbiB6dSBzZW5kZW4sIHdlbm4gZWluIFRpY2tldCBnZXNjaGxvc3NlbiB3aXJkLic7CgogICAgIwogICAgIyBPQlNPTEVURSBFTlRSSUVTIEZPUiBSRUZFUkVOQ0UsIERPIE5PVCBUUkFOU0xBVEUhCiAgICAjCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VkIFRpbWUnfSA9ICfDhG5kZXJ1bmdzLVplaXRwdW5rdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGVkIEJ5J30gPSAnRXJzdGVsbHQgdm9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZWQgVGltZSd9ID0gJ0Vyc3RlbGwtWmVpdHB1bmt0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RheXMgc3RhcnRpbmcgZnJvbSB0aGUgbGF0ZXN0IGN1c3RvbWVyIHN1cnZleSBlbWFpbCBiZXR3ZWVuIG5vIGN1c3RvbWVyIHN1cnZleSBlbWFpbCBpcyBzZW50LCAoIDAgbWVhbnMgQWx3YXlzIHNlbmQgaXQgKSAuJ30gPQogICAgICAgICdBbnphaGwgVGFnZSwgdm9uIGRlciBsZXR6dGVuIFVtZnJhZ2UtRS1NYWlsIGFuIGRlbiBLdW5kZW4sIGluIGRlciBrZWluZSB3ZWl0ZXJlIFVtZnJhZ2UtRW1haWwgYW4gZGVuIEt1bmRlbiB2ZXJzZW5kZXQgd2lyZCAoMCBiZWRldXRldCwgZGFzcyBkaWUgRS1NYWlsIGltbWVyIHZlcnNlbmRldCB3aXJkKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBtYXhpbXVtIGFtb3VudCBvZiBzdXJ2ZXlzIHRoYXQgZ2V0IHNlbnQgdG8gYSBjdXN0b21lciBwZXIgMzAgZGF5cywgKCAwIG1lYW5zIHNlbmQgaW1tZWRpYXRlbHkgYWZ0ZXIgY2xvc2UgKS4nfSA9CiAgICAgICAgJ0RlZmluaWVydCBkaWUgbWF4aW1hbGUgQW56YWhsIGFuIFVtZnJhZ2VuIGRpZSBlaW4gS3VuZGUgcHJvIDMwIFRhZ2UgZXJow6RsdCAgKCAwIGJlZGV1dGV0IGtlaW4gTGltaXQsIGFsbGUgVW1mcmFnZWFuZnJhZ2VuIHdlcmRlbiBnZXNlbmRldCApLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBzdXJ2ZXkgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdEZWZpbmllcnQgZGllIGFuZ2V6ZWlndGVuIFNwYWx0ZW4gaW4gZGVyIFVtZnJhZ2Utw5xiZXJzaWNodC4gRGllIEVpbnN0ZWxsdW5nIGhhdCBrZWluZW4gRWZmZWt0IGF1ZiBkaWUgYW5nZXplaWd0ZSBSZWloZW5mb2xnZSBkZXIgU3BhbHRlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIG9yIGRpc2FibGUgdGhlIFNob3dWb3RlRGF0YSBzY3JlZW4gb24gcHVibGljIGludGVyZmFjZSB0byBzaG93IGRhdGEgb2YgYW4gc3BlY2lmaWMgdm90YXRpb24gd2hlbiBjdXN0b21lciB0cmllcyB0byBhbnN3ZXIgYSBzdXJ2ZXkgYnkgc2Vjb25kIHRpbWUuJ30gPQogICAgICAgICdBa3RpdmllcmVuIG9kZXIgZGVha3RpdmllcmVuIGRlcyBTaG93Vm90ZURhdGEgc2NyZWVucyBpbSBQdWJsaWMgSW50ZXJmYWNlLCB1bSBBYnN0aW1tdW5ncy1EYXRlbiBhbnp1emVpZ2VuLCB3ZW5uIGVpbiBLdW5kZSB2ZXJzdWNodCBlaW4gendlaXRlcyBtYWwgYWJ6dXN0aW1tZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhbnN3ZXIgdGhlIG5leHQgcXVlc3Rpb25zJ30gPSAnQml0dGUgYmVhbnR3b3J0ZW4gU2llIGRpZSBmb2xnZW5kZW4gRnJhZ2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSMnfSA9ICdVbWZyYWdlIyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGZpZWxkIGlzIHJlcXVpcmVkJ30gPSAnRGllc2VzIEZlbGQgd2lyZCBiZW7DtnRpZ3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IGV2ZW50IG1vZHVsZSB0byBzZW5kIGF1dG9tYXRpY2FsbHkgc3VydmV5IGVtYWlsIHJlcXVlc3RzIHRvIGN1c3RvbWVycyBpZiBhIHRpY2tldCBnZXRzIGNsb3NlZC4nfSA9CiAgICAgICAgJ1RpY2tldC1FdmVudC1Nb2R1bCwgdW0gYXV0b21hdGlzY2ggVW1mcmFnZS1FLU1haWxzIGFuIEt1bmRlbiB6dSBzZW5kZW4sIHdoZW4gZWluIFRpY2tldCBnZXNjaGxvc3NlbiB3aXJkLic7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6aXRfU3VydmV5OwoKdXNlIHV0Zjg7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgTmV3IFN1cnZleSd9ID0gJ0NyZWF6aW9uZSBudW92byBzb25kYWdnaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW50cm9kdWN0aW9uJ30gPSAnSW50cm9kdXppb25lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludGVybmFsIERlc2NyaXB0aW9uJ30gPSAnRGVzY3JpemlvbmUgYWQgdXNvIGludGVybm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEVkaXQnfSA9ICdNb2RpZmljYSBTb25kYWdnaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbCBJbmZvJ30gPSAnSW5mb3JtYXppb25pIEdlbmVyYWxpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRzIE92ZXJ2aWV3J30gPSAnUmlzdWx0YXRpIHN0YXRpc3RpY2knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdHMgVGFibGUnfSA9ICdUYWJlbGxhIGRlbGxlIHJpY2hpZXN0ZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZW5kIFRpbWUnfSA9ICdEYXRhIGUgT3JhIGRpIGludmlvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGUgVGltZSd9ID0gJ0RhdGEgZSBPcmEgZGkgY29tcGlsYXppb25lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RldGFpbHMnfSA9ICdEZXR0YWdsaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBxdWVzdGlvbnMgc2F2ZWQgZm9yIHRoaXMgc3VydmV5Lid9ID0gJ05vbiBjaSBzb25vIHZvY2kgcGVyIHF1ZXN0byBzb25kYWdnaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFN0YXQgRGV0YWlscyd9ID0gJ0RldHRhZ2xpIHN0YXRpc3RpY2kgc3VsIFNvbmRhZ2dpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyBiYWNrIHRvIHN0YXRzIG92ZXJ2aWV3J30gPSAnUml0b3JuYSBhbGxlIHN0YXRpc3RpY2hlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIEJhY2snfSA9ICdJbmRpZXRybyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlFZGl0UXVlc3Rpb25zCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgRWRpdCBRdWVzdGlvbnMnfSA9ICdNb2RpZmljYSBsZSBkb21hbmRlIGRlbCBzb25kYWdnaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFF1ZXN0aW9uJ30gPSAnQWdnaXVuZ2kgZG9tYW5kYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlIHRoZSBxdWVzdGlvbid9ID0gJ0luc2VyaXNjaSBsYSBkb21hbmRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBRdWVzdGlvbnMnfSA9ICdWb2NpIGRlbCBTb25kYWdnaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVlc3Rpb24nfSA9ICdEb21hbmRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUXVlc3Rpb24nfSA9ICdNb2RpZmljYSBkb21hbmRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIGJhY2sgdG8gcXVlc3Rpb25zJ30gPSAnUml0b3JuYSBhbGxlIGRvbWFuZGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUG9zc2libGUgQW5zd2VycyBGb3InfSA9ICdQb3NzaWJpbGkgcmlzcG9zdGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEFuc3dlcid9ID0gJ0FnZ2l1bmdpIHJpc3Bvc3RhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgZG9lc25cJ3QgaGF2ZSBzZXZlcmFsIGFuc3dlcnMsIGEgdGV4dGFyZWEgd2lsbCBiZSBkaXNwbGF5ZWQuJ30gPQogICAgICAgICdOb24gc29ubyBwcmV2aXN0ZSByaXNwb3N0ZSBtdWx0aXBsZSwgaWwgZGVzdGluYXRhcmlvIGluc2VyaXNjZSBkZWwgdGVzdG8gbGliZXJvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQW5zd2VyJ30gPSAnTW9kaWZpY2EgcmlzcG9zdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gYmFjayB0byBlZGl0IHF1ZXN0aW9uJ30gPSAnUml0b3JuYSBhIG1vZGlmaWNhcmUgbGUgZG9tYW5kZSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlPdmVydmlld05hdkJhcgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29udGV4dCBTZXR0aW5ncyd9ID0gJ0ltcG9zdGF6aW9uaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXguIHNob3duIFN1cnZleXMgcGVyIHBhZ2UnfSA9ICdOdW1lcm8gbWFzc2ltbyBkaSBzb25kYWdnaSBwZXIgcGFnaW5hJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleU92ZXJ2aWV3U21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBTZW5kZXInfSA9ICdNaXR0ZW50ZSBkZWwgc29uZGFnZ2lvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBTdWJqZWN0J30gPSAnT2dnZXR0byBkZWwgc29uZGFnZ2lvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBCb2R5J30gPSAnQ29ycG8gZGVsIHNvbmRhZ2dpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGVkIFRpbWUnfSA9ICdEYXRhIGUgT3JhIGRpIGNyZWF6aW9uZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGVkIEJ5J30gPSAnQ3JlYXRvIGRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZWQgVGltZSd9ID0gJ0RhdGEgZSBPcmEgZGkgbW9kaWZpY2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlZCBCeSd9ID0gJ01vZGlmaWNhdG8gZGEnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5Wm9vbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEluZm9ybWF0aW9uJ30gPSAnSW5mb3JtYXppb25pIHN1bCBzb25kYWdnaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VudCByZXF1ZXN0cyd9ID0gJ1NvbmRhZ2dpIGludmlhdGknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVjZWl2ZWQgc3VydmV5cyd9ID0gJ1NvbmRhZ2dpIHJpY2V2dXRpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgR2VuZXJhbCBJbmZvJ30gPSAnTW9kaWZpY2EgbGUgaW5mb3JtYXppb25pIGdlbmVyYWxpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUXVlc3Rpb25zJ30gPSAnTW9kaWZpY2EgbGUgZG9tYW5kZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0cyBEZXRhaWxzJ30gPSAnRGV0dGFnbGkgc3RhdGlzdGljaSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgRGV0YWlscyd9ID0gJ0RldHRhZ2xpIHN1bCBzb25kYWdnaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFJlc3VsdHMgR3JhcGgnfSA9ICdHcmFmaWNpIHN1bCBzb25kYWdnaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gc3RhdCByZXN1bHRzLid9ID0gJ05vbiBjaSBzb25vIHJpc3VsdGF0aSBkYSBtb3N0cmFyZSc7CgogICAgIyBUZW1wbGF0ZTogUHVibGljU3VydmV5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXknfSA9ICdTb25kYWdnaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFuc3dlciB0aGUgbmV4dCBxdWVzdGlvbnMnfSA9ICdQZXIgY29ydGVzaWEsIHJpc3BvbmRldGUgYWxsZSBzZWd1ZW50aSBkb21hbmRlJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBTdXJ2ZXkgTW9kdWxlLid9ID0gJ1VuIG1vZHVsbyBwZXIgaSBzb25kYWdnaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBtb2R1bGUgdG8gZWRpdCBzdXJ2ZXkgcXVlc3Rpb25zLid9ID0gJ1VuIG1vZHVsbyBwZXIgbW9kaWZpY2FyZSBsZSBkb21hbmRlIGRlaSBzb25kYWdnaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBzdGFydGluZyBmcm9tIHRoZSBsYXRlc3QgY3VzdG9tZXIgc3VydmV5IGVtYWlsIGJldHdlZW4gbm8gY3VzdG9tZXIgc3VydmV5IGVtYWlsIGlzIHNlbnQsICggMCBtZWFucyBBbHdheXMgc2VuZCBpdCApIC4nfSA9CiAgICAgICAgJ0dpb3JuaSBkYWxsXCd1bHRpbW8gc29uZGFnZ2lvIHByaW1hIGNoZSB2ZW5nYSBpbnZpYXRvIHVuIG51b3ZvIHNvbmRhZ2dpbyAoMCBpbmRpY2EgZGkgbWFuZGFybG8gc2VtcHJlKSAuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgYm9keSBmb3IgdGhlIG5vdGlmaWNhdGlvbiBlbWFpbCB0byBjdXN0b21lcnMgYWJvdXQgbmV3IHN1cnZleS4nfSA9CiAgICAgICAgJ0NvcnBvIGRlbCB0ZXN0byBkaSBkZWZhdWx0IHBlciBsYSBub3RpZmljYSB2aWEgZW1haWwgYWwgY2xpZW50ZSByaWd1YXJkbyB1biBudW92byBzb25kYWdnaW8uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2VuZGVyIGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnTWl0dGVudGUgZGkgZGVmYXVsdCBwZXIgbGEgbm90aWZpY2EgdmlhIGVtYWlsIGFsIGNsaWVudGUgcmlndWFyZG8gdW4gbnVvdm8gc29uZGFnZ2lvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXlzIHdpbGwgbm90IGJlIHNlbnQgdG8gdGhlIGNvbmZpZ3VyZWQgZW1haWwgYWRkcmVzc2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3ViamVjdCBmb3IgdGhlIG5vdGlmaWNhdGlvbiBlbWFpbCB0byBjdXN0b21lcnMgYWJvdXQgbmV3IHN1cnZleS4nfSA9CiAgICAgICAgJ09nZ2V0dG8gZGkgZGVmYXVsdCBwZXIgbGEgbm90aWZpY2EgdmlhIGVtYWlsIGFsIGNsaWVudGUgcmlndWFyZG8gdW4gbnVvdm8gc29uZGFnZ2lvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgc3VydmV5IGxpc3QuJ30gPQogICAgICAgICdEZWZpbmlzY2UgaWwgbW9kdWxvIHBlciBtb3N0cmFyZSBsYSB2aXN1YWxpenphemlvbmUgY29tcGF0dGEgZGkgdW5hIGxpc3RhIGRpIHNvbmRhZ2dpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBzdXJ2ZXkgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPQogICAgICAgICdEZWZpbmlzY2UgbGUgY29sb25uZSB2aXNpYmlsaSBuZWxsYSB2aXN1YWxpenphemlvbmUgU29uZGFnZ2kuIExcJ29wemlvbmUgbm9uIGhhIGVmZmV0dG8gc3VsIHBvc2l6aW9uYW1lbnRvIGRlbGxlIGNvbG9ubmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBwYXJhbWV0ZXJzIGZvciB0aGUgU3VydmV5IG9iamVjdCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0gJ1R1dHRpIGkgcGFyYW1ldHJpIHBlciBpIHNvbmRhZ2dpIG5lbGxcJ2FyZWEgQWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciBzdXJ2ZXkgem9vbSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnTW9kdWxvIGRpIHJlZ2lzdHJhemlvbmUgcGVyIGlsIHNvbmRhZ2dpbyBuZWxsXCdhcmVhIEFnZW50ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIFB1YmxpY1N1cnZleSBvYmplY3QgaW4gdGhlIHB1YmxpYyBTdXJ2ZXkgYXJlYS4nfSA9CiAgICAgICAgJ01vZHVsbyBkaSByZWdpc3RyYXppb25lIHBlciBpbCBzb25kYWdnaW8gbmVsbFwnYXJlYSBkaSBTb25kYWdnaSBQdWJibGljaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhpcyByZWdleCBtYXRjaGVzLCBubyBjdXN0b21lciBzdXJ2ZXkgd2lsbCBiZSBzZW50Lid9ID0KICAgICAgICAnU2UgcXVlc3RhIHNvdHRvc3RyaW5nYSB2aWVuZSByaWNvbm9zY2l1dGEsIGlsIHNvbmRhZ2dpbyBub24gdmllbmUgaW52aWF0by4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgc3VydmV5cyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBzdXJ2ZXkgb3ZlcnZpZXcuJ30gPQogICAgICAgICdQYXJhbWV0cmkgcGVyIGxhIHZpc3VhbGl6emF6aW9uZSAiY29tcGF0dGEiLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgU3VydmV5Lid9ID0KICAgICAgICAnU29uZGFnZ2lvIHB1YmJsaWNvLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJ0xpbWl0ZSBwZXIgdmlzdWFsaXp6YXppb25lICJjb21wYXR0YSIuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBab29tIE1vZHVsZS4nfSA9ICdNb2R1bG8gZGkgem9vbSBwZXIgaSBzb25kYWdnaS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IGxpbWl0IHBlciBwYWdlIGZvciBTdXJ2ZXkgT3ZlcnZpZXcgIlNtYWxsIi4nfSA9CiAgICAgICAgJ051bWVybyBkaSBzb25kYWdnaSBwZXIgcGFnaW5hIHBlciB2aXN0YSAiY29tcGF0dGEiLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSBzdXJ2ZXksIGUuZy4gU3VydmV5IywgTXlTdXJ2ZXkjLiBUaGUgZGVmYXVsdCBpcyBTdXJ2ZXkjLid9ID0KICAgICAgICAnSWRlbnRpZmljYXRpdm8gcGVyIGlsIHNvbmRhZ2dpbywgcGVyIGVzZW1waW8gU29uZGFnZ2lvIywgSW5jaGllc3RhIy4gSWwgZGVmYXVsdCBTb25kYWdnaW8jLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgZXZlbnQgbW9kdWxlIHRvIHNlbmQgYXV0b21hdGljYWxseSBzdXJ2ZXkgZW1haWwgcmVxdWVzdHMgdG8gY3VzdG9tZXJzIGlmIGEgdGlja2V0IGdldHMgY2xvc2VkLid9ID0KICAgICAgICAnTW9kdWxvIHBlciBnZXN0aXJlIGxcJ2ludmlvIGF1dG9tYXRpY28gZGkgZW1haWwgYWwgY2xpZW50ZSBxdWFuZG8gdW4gdGlja2V0IHZpZW5lIGNoaXVzby4nOwoKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgZmllbGQgaXMgcmVxdWlyZWQnfSA9ICdDYW1wbyBPYmJsaWdhdG9yaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEludHJvZHVjdGlvbid9ID0gJ0ludHJvZHV6aW9uZSBkZWwgc29uZGFnZ2lvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBEZXNjcmlwdGlvbid9ID0gJ0Rlc2NyaXppb25lIGRlbCBzb25kYWdnaW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tcGxldGUnfSA9ICdTb25kYWdnaSBjb21wbGV0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlJ30gPSAnU29uZGFnZ2kgaW5jb21wbGV0aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkjJ30gPSAnU29uZGFnZ2lvIyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHZhbHVlJ30gPSAnVmFsb3JlIGRpIGRlZmF1bHQnOwoKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSBvciBkaXNhYmxlIHRoZSBTaG93Vm90ZURhdGEgc2NyZWVuIG9uIHB1YmxpYyBpbnRlcmZhY2UgdG8gc2hvdyBkYXRhIG9mIGFuIHNwZWNpZmljIHZvdGF0aW9uIHdoZW4gY3VzdG9tZXIgdHJpZXMgdG8gYW5zd2VyIGEgc3VydmV5IGJ5IHNlY29uZCB0aW1lLid9ID0KICAgICAgICAnQWJpbGl0YSBvIERpc2FiaWxpdGEgbGEgc2NoZXJtYXRhIGRpIHZvdGF6aW9uZSBzdWxsXCdpbnRlcmZhY2NpYSBwdWJibGljYSBwZXIgbW9zdHJhcmUgaSBkYXRpIGRpIHVuIHNvbmRhZ2dpbyBzcGVjaWZpY28gc2Ugc2kgdGVudGEgZGkgaW5zZXJpcmUgaSBkYXRpIHBlciBkdWUgdm9sdGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBwYXJhbWV0ZXJzIGZvciB0aGUgU3VydmV5IG9iamVjdCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnVHV0dGkgaSBwYXJhbWV0cmkgZGVsIHNvbmRhZ2dpbyBuZWxsXCdpbnRlcmZhY2NpYSBBZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgaGVpZ2h0IGZvciBSaWNodGV4dCB2aWV3cyBmb3IgU3VydmV5Wm9vbSBlbGVtZW50cy4nfSA9CiAgICAgICAgJ0RlZmluaXNjZSBsXCdhbHRlenphIGRpIGRlZmF1bHQgcGVyIGxhIHZpc3RhIGNvbXBsZXRhIHBlciBnbGkgZWxlbWVudGkgU3VydmV5Wm9vbS4nOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6cnVfU3VydmV5OwoKdXNlIHV0Zjg7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFBQVN1cnZleQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnLSBDaGFuZ2UgU3RhdHVzIC0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5ldyBTdXJ2ZXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEVkaXQgUXVlc3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1F1ZXN0aW9uIEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW5zd2VyIEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNldCBuZXcgc3RhdHVzISBObyBxdWVzdGlvbnMgZGVmaW5lZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHVzIGNoYW5nZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoYW5rIHlvdSBmb3IgeW91ciBmZWVkYmFjay4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHN1cnZleSBpcyBmaW5pc2hlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tcGxldGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGVja2JveCAoTGlzdCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmFkaW8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmFkaW8gKExpc3QpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRzIE92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBEZXNjcmlwdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgSW50cm9kdWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1llcy9Obyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZZXNObyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbnN3ZXJlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgYW5zd2VyZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgRGV0YWlsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIGFscmVhZHkgYW5zd2VyZWQgdGhlIHN1cnZleS4nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgTmV3IFN1cnZleSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnRyb2R1Y3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW50ZXJuYWwgRGVzY3JpcHRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBHZW5lcmFsIEluZm8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbCBJbmZvJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRzIE92ZXJ2aWV3IG9mJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RzIFRhYmxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbmQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWb3RlIFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFN0YXQgRGV0YWlscyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyBiYWNrIHRvIHN0YXRzIG92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIEJhY2snfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5RWRpdFF1ZXN0aW9ucwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBRdWVzdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFF1ZXN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGUgdGhlIHF1ZXN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBRdWVzdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVlc3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gcXVlc3Rpb25zIHNhdmVkIGZvciB0aGlzIHN1cnZleS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBRdWVzdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyBiYWNrIHRvIHF1ZXN0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQb3NzaWJsZSBBbnN3ZXJzIEZvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQW5zd2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgZG9lc25cJ3QgaGF2ZSBzZXZlcmFsIGFuc3dlcnMsIGEgdGV4dGFyZWEgd2lsbCBiZSBkaXNwbGF5ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBBbnN3ZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gYmFjayB0byBlZGl0IHF1ZXN0aW9uJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleU92ZXJ2aWV3TmF2QmFyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXguIHNob3duIFN1cnZleXMgcGVyIHBhZ2UnfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5T3ZlcnZpZXdTbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIFNlbmRlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gU3ViamVjdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gQm9keSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VkIEJ5J30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleVpvb20KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBJbmZvcm1hdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZW50IHJlcXVlc3RzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlY2VpdmVkIHN1cnZleXMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgRGV0YWlscyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgRGV0YWlscyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgUmVzdWx0cyBHcmFwaCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBzdGF0IHJlc3VsdHMuJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBQdWJsaWNTdXJ2ZXkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYW5zd2VyIHRoZXNlIHF1ZXN0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IG15IGFuc3dlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlc2UgYXJlIHlvdXIgYW5zd2Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgVGl0bGUnfSA9ICcnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIFN1cnZleSBNb2R1bGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgbW9kdWxlIHRvIGVkaXQgc3VydmV5IHF1ZXN0aW9ucy4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIHBhcmFtZXRlcnMgZm9yIHRoZSBTdXJ2ZXkgb2JqZWN0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW1vdW50IG9mIGRheXMgYWZ0ZXIgc2VuZGluZyBhIHN1cnZleSBtYWlsIGluIHdoaWNoIG5vIG5ldyBzdXJ2ZXkgcmVxdWVzdHMgYXJlIHNlbnQgdG8gdGhlIHNhbWUgY3VzdG9tZXIuIFNlbGVjdGluZyAwIHdpbGwgYWx3YXlzIHNlbmQgdGhlIHN1cnZleSBtYWlsLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgYm9keSBmb3IgdGhlIG5vdGlmaWNhdGlvbiBlbWFpbCB0byBjdXN0b21lcnMgYWJvdXQgbmV3IHN1cnZleS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNlbmRlciBmb3IgdGhlIG5vdGlmaWNhdGlvbiBlbWFpbCB0byBjdXN0b21lcnMgYWJvdXQgbmV3IHN1cnZleS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXlzIHdpbGwgbm90IGJlIHNlbnQgdG8gdGhlIGNvbmZpZ3VyZWQgZW1haWwgYWRkcmVzc2VzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3ViamVjdCBmb3IgdGhlIG5vdGlmaWNhdGlvbiBlbWFpbCB0byBjdXN0b21lcnMgYWJvdXQgbmV3IHN1cnZleS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgc3VydmV5IGxpc3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBtYXhpbXVtIGFtb3VudCBvZiBzdXJ2ZXlzIHRoYXQgZ2V0IHNlbnQgdG8gYSBjdXN0b21lciBwZXIgMzAgZGF5cy4gKCAwIG1lYW5zIG5vIG1heGltdW0sIGFsbCBzdXJ2ZXkgcmVxdWVzdHMgd2lsbCBiZSBzZW50KS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBhbW91bnQgaW4gaG91cnMgYSB0aWNrZXQgaGFzIHRvIGJlIGNsb3NlZCB0byB0cmlnZ2VyIHRoZSBzZW5kaW5nIG9mIGEgc3VydmV5LCAoIDAgbWVhbnMgc2VuZCBpbW1lZGlhdGVseSBhZnRlciBjbG9zZSApLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgaGVpZ2h0IGZvciBSaWNodGV4dCB2aWV3cyBmb3IgU3VydmV5Wm9vbSBlbGVtZW50cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBzdXJ2ZXkgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW5zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSBvciBkaXNhYmxlIHRoZSBTaG93Vm90ZURhdGEgc2NyZWVuIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlIHRvIHNob3cgZGF0YSBvZiBhIHNwZWNpZmljIHN1cnZleSByZXN1bHQgd2hlbiB0aGUgY3VzdG9tZXIgdHJpZXMgdG8gYW5zd2VyIGEgc3VydmV5IHRoZSBzZWNvbmQgdGltZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciBzdXJ2ZXkgem9vbSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Zyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBQdWJsaWNTdXJ2ZXkgb2JqZWN0IGluIHRoZSBwdWJsaWMgU3VydmV5IGFyZWEuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhpcyByZWdleCBtYXRjaGVzLCBubyBjdXN0b21lciBzdXJ2ZXkgd2lsbCBiZSBzZW50Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQYXJhbWV0ZXJzIGZvciB0aGUgcGFnZXMgKGluIHdoaWNoIHRoZSBzdXJ2ZXlzIGFyZSBzaG93bikgb2YgdGhlIHNtYWxsIHN1cnZleSBvdmVydmlldy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQdWJsaWMgU3VydmV5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgT3ZlcnZpZXcgIlNtYWxsIiBMaW1pdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgWm9vbSBNb2R1bGUuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBsaW1pdCBwZXIgcGFnZSBmb3IgU3VydmV5IE92ZXJ2aWV3ICJTbWFsbCInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgc3VydmV5LCBlLmcuIFN1cnZleSMsIE15U3VydmV5Iy4gVGhlIGRlZmF1bHQgaXMgU3VydmV5Iy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaWNrZXQgZXZlbnQgbW9kdWxlIHRvIHNlbmQgYXV0b21hdGljYWxseSBzdXJ2ZXkgZW1haWwgcmVxdWVzdHMgdG8gY3VzdG9tZXJzIGlmIGEgdGlja2V0IGlzIGNsb3NlZC4nfSA9CiAgICAgICAgJyc7CgogICAgIwogICAgIyBPQlNPTEVURSBFTlRSSUVTIEZPUiBSRUZFUkVOQ0UsIERPIE5PVCBUUkFOU0xBVEUhCiAgICAjCgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZGFfU3VydmV5OwoKdXNlIHV0Zjg7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFBQVN1cnZleQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnLSBDaGFuZ2UgU3RhdHVzIC0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5ldyBTdXJ2ZXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEVkaXQgUXVlc3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1F1ZXN0aW9uIEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW5zd2VyIEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNldCBuZXcgc3RhdHVzISBObyBxdWVzdGlvbnMgZGVmaW5lZC4nfSA9ICdLYW4gaWtrZSBzw6Z0dGUgbnkgc3RhdHVzISBEZXIgZXIgaWtrZSBkZWZpbmVyZXQgbm9nZW4gc3DDuHJnc23DpWwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXR1cyBjaGFuZ2VkLid9ID0gJ1N0YXR1cyDDpm5kcmV0ISc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGFuayB5b3UgZm9yIHlvdXIgZmVlZGJhY2suJ30gPSAnVGFrIGZvciBkaW4gYmVzdmFyZWxzZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHN1cnZleSBpcyBmaW5pc2hlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tcGxldGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGVja2JveCAoTGlzdCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmFkaW8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmFkaW8gKExpc3QpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRzIE92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBEZXNjcmlwdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgSW50cm9kdWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1llcy9Obyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZZXNObyd9ID0gJ0phTmVqJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2Fuc3dlcmVkJ30gPSAnYmVzdmFyZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnbm90IGFuc3dlcmVkJ30gPSAnaWtrZSBiZXN2YXJldCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0cyBEZXRhaWwnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWW91IGhhdmUgYWxyZWFkeSBhbnN3ZXJlZCB0aGUgc3VydmV5Lid9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZSBOZXcgU3VydmV5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludHJvZHVjdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnRlcm5hbCBEZXNjcmlwdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEdlbmVyYWwgSW5mbyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIEluZm8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgT3ZlcnZpZXcgb2YnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdHMgVGFibGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VuZCBUaW1lJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1ZvdGUgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgU3RhdCBEZXRhaWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIGJhY2sgdG8gc3RhdHMgb3ZlcnZpZXcnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gQmFjayd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlFZGl0UXVlc3Rpb25zCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFF1ZXN0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUXVlc3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZSB0aGUgcXVlc3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFF1ZXN0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydRdWVzdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBxdWVzdGlvbnMgc2F2ZWQgZm9yIHRoaXMgc3VydmV5Lid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IFF1ZXN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIGJhY2sgdG8gcXVlc3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Bvc3NpYmxlIEFuc3dlcnMgRm9yJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBBbnN3ZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBkb2VzblwndCBoYXZlIHNldmVyYWwgYW5zd2VycywgYSB0ZXh0YXJlYSB3aWxsIGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEFuc3dlcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyBiYWNrIHRvIGVkaXQgcXVlc3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW5zd2VyJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleU92ZXJ2aWV3TmF2QmFyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heC4gc2hvd24gU3VydmV5cyBwZXIgcGFnZSd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlPdmVydmlld1NtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gU2VuZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBTdWJqZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBCb2R5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZWQgQnknfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5Wm9vbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEluZm9ybWF0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbnQgcmVxdWVzdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVjZWl2ZWQgc3VydmV5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0cyBEZXRhaWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBEZXRhaWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBSZXN1bHRzIEdyYXBoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHN0YXQgcmVzdWx0cy4nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IFB1YmxpY1N1cnZleQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5J30gPSAnVW5kZXJzw7hnZWxzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYW5zd2VyIHRoZXNlIHF1ZXN0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IG15IGFuc3dlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlc2UgYXJlIHlvdXIgYW5zd2Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgVGl0bGUnfSA9ICcnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIFN1cnZleSBNb2R1bGUuJ30gPSAnRXQgdW5kZXJzw7hnZWxzZXNtb2R1bC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBtb2R1bGUgdG8gZWRpdCBzdXJ2ZXkgcXVlc3Rpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgcGFyYW1ldGVycyBmb3IgdGhlIFN1cnZleSBvYmplY3QgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbW91bnQgb2YgZGF5cyBhZnRlciBzZW5kaW5nIGEgc3VydmV5IG1haWwgaW4gd2hpY2ggbm8gbmV3IHN1cnZleSByZXF1ZXN0cyBhcmUgc2VudCB0byB0aGUgc2FtZSBjdXN0b21lci4gU2VsZWN0aW5nIDAgd2lsbCBhbHdheXMgc2VuZCB0aGUgc3VydmV5IG1haWwuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBib2R5IGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2VuZGVyIGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleXMgd2lsbCBub3QgYmUgc2VudCB0byB0aGUgY29uZmlndXJlZCBlbWFpbCBhZGRyZXNzZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdWJqZWN0IGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBzdXJ2ZXkgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIG1heGltdW0gYW1vdW50IG9mIHN1cnZleXMgdGhhdCBnZXQgc2VudCB0byBhIGN1c3RvbWVyIHBlciAzMCBkYXlzLiAoIDAgbWVhbnMgbm8gbWF4aW11bSwgYWxsIHN1cnZleSByZXF1ZXN0cyB3aWxsIGJlIHNlbnQpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGFtb3VudCBpbiBob3VycyBhIHRpY2tldCBoYXMgdG8gYmUgY2xvc2VkIHRvIHRyaWdnZXIgdGhlIHNlbmRpbmcgb2YgYSBzdXJ2ZXksICggMCBtZWFucyBzZW5kIGltbWVkaWF0ZWx5IGFmdGVyIGNsb3NlICkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBoZWlnaHQgZm9yIFJpY2h0ZXh0IHZpZXdzIGZvciBTdXJ2ZXlab29tIGVsZW1lbnRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIHN1cnZleSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIG9yIGRpc2FibGUgdGhlIFNob3dWb3RlRGF0YSBzY3JlZW4gaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UgdG8gc2hvdyBkYXRhIG9mIGEgc3BlY2lmaWMgc3VydmV5IHJlc3VsdCB3aGVuIHRoZSBjdXN0b21lciB0cmllcyB0byBhbnN3ZXIgYSBzdXJ2ZXkgdGhlIHNlY29uZCB0aW1lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Zyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHN1cnZleSB6b29tIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIFB1YmxpY1N1cnZleSBvYmplY3QgaW4gdGhlIHB1YmxpYyBTdXJ2ZXkgYXJlYS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGlzIHJlZ2V4IG1hdGNoZXMsIG5vIGN1c3RvbWVyIHN1cnZleSB3aWxsIGJlIHNlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIHN1cnZleXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgc3VydmV5IG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBTdXJ2ZXkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBab29tIE1vZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IGxpbWl0IHBlciBwYWdlIGZvciBTdXJ2ZXkgT3ZlcnZpZXcgIlNtYWxsIid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSBzdXJ2ZXksIGUuZy4gU3VydmV5IywgTXlTdXJ2ZXkjLiBUaGUgZGVmYXVsdCBpcyBTdXJ2ZXkjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBldmVudCBtb2R1bGUgdG8gc2VuZCBhdXRvbWF0aWNhbGx5IHN1cnZleSBlbWFpbCByZXF1ZXN0cyB0byBjdXN0b21lcnMgaWYgYSB0aWNrZXQgaXMgY2xvc2VkLid9ID0KICAgICAgICAnJzsKCiAgICAjCiAgICAjIE9CU09MRVRFIEVOVFJJRVMgRk9SIFJFRkVSRU5DRSwgRE8gTk9UIFRSQU5TTEFURSEKICAgICMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSMnfSA9ICdVbmRlcnPDuGdlbHNlIyc7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6ZXNfU3VydmV5OwoKdXNlIHV0Zjg7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFBQVN1cnZleQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnLSBDaGFuZ2UgU3RhdHVzIC0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5ldyBTdXJ2ZXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEVkaXQnfSA9ICdFZGl0YXIgRW5jdWVzdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEVkaXQgUXVlc3Rpb25zJ30gPSAnRWRpdGFyIFByZWd1bnRhcyBkZSBFc3RhZMOtc3RpY2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVlc3Rpb24gRWRpdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbnN3ZXIgRWRpdCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDYW5cJ3Qgc2V0IG5ldyBzdGF0dXMhIE5vIHF1ZXN0aW9ucyBkZWZpbmVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0dXMgY2hhbmdlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhhbmsgeW91IGZvciB5b3VyIGZlZWRiYWNrLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgc3VydmV5IGlzIGZpbmlzaGVkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb21wbGV0ZSd9ID0gJ0NvbXBsZXRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luY29tcGxldGUnfSA9ICdJbmNvbXBsZXRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoZWNrYm94IChMaXN0KSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYWRpbyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYWRpbyAoTGlzdCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgT3ZlcnZpZXcnfSA9ICdyZXPDum1lbiBFc3RhZGlzdGljYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IERlc2NyaXB0aW9uJ30gPSAnRGVzY3JpcGNpw7NuIGRlIGxhIEVuY3Vlc3RhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBJbnRyb2R1Y3Rpb24nfSA9ICdJbnRyb2R1Y2Npw7NuIGRlIGxhIEVuY3Vlc3RhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1llcy9Obyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZZXNObyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbnN3ZXJlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgYW5zd2VyZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgRGV0YWlsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIGFscmVhZHkgYW5zd2VyZWQgdGhlIHN1cnZleS4nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgTmV3IFN1cnZleSd9ID0gJ0NyZWFyIE51ZXZhIEVuY3Vlc3RhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludHJvZHVjdGlvbid9ID0gJ0ludHJvZHVjY2nDs24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW50ZXJuYWwgRGVzY3JpcHRpb24nfSA9ICdEZXNjcmlwY2nDs24gSW50ZXJuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEdlbmVyYWwgSW5mbyd9ID0gJ0VkaXRhciBpbmZvcm1hY2nDs24gR2VuZXJhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmFsIEluZm8nfSA9ICdJbmZvcm1hY2nDs24gR2VuZXJhbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0cyBPdmVydmlldyBvZid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0cyBUYWJsZSd9ID0gJ1RhYmxhIGRlIFNvbGljaXR1ZGVzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbmQgVGltZSd9ID0gJ1RpZW1wbyBkZSBFbnbDrW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSBUaW1lJ30gPSAnVGllbXBvIGRlIFZvdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFN0YXQgRGV0YWlscyd9ID0gJ0RldGFsbGVzIGRlIEVzdGFkaXN0aWNhcyBkZSBFbmN1ZXN0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyBiYWNrIHRvIHN0YXRzIG92ZXJ2aWV3J30gPSAncmVncmVzYXIgYSByZXPDum1lbiBkZSBlc3RhZGlzdGljYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gQmFjayd9ID0gJ1JlZ3Jlc2FyJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleUVkaXRRdWVzdGlvbnMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUXVlc3Rpb25zJ30gPSAnRWRpdGFyIFByZWd1bnRhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUXVlc3Rpb24nfSA9ICdBZ3JlZ2FyIFByZWd1bnRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGUgdGhlIHF1ZXN0aW9uJ30gPSAnRXNjcmliYSBsYSBwcmVndW50YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgUXVlc3Rpb25zJ30gPSAnUHJlZ3VudGFzIGRlIEVzdGFkaXN0aWNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1F1ZXN0aW9uJ30gPSAnUHJlZ3VudGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gcXVlc3Rpb25zIHNhdmVkIGZvciB0aGlzIHN1cnZleS4nfSA9ICdObyBoYXkgcHJlZ3VudGFzIGFsbWFjZW5hZGFzIHBhcmEgZXN0YSBlbmN1ZXN0YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBRdWVzdGlvbid9ID0gJ0VkaXRhciBQcmVndW50YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyBiYWNrIHRvIHF1ZXN0aW9ucyd9ID0gJ3JlZ3Jlc2FyIGEgcHJlZ3VudGFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Bvc3NpYmxlIEFuc3dlcnMgRm9yJ30gPSAnUG9zaWJsZXMgcmVzcHVlc3RhcyBwYXJhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBBbnN3ZXInfSA9ICdBZ3JlZ2FyIFJlc3B1ZXN0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGRvZXNuXCd0IGhhdmUgc2V2ZXJhbCBhbnN3ZXJzLCBhIHRleHRhcmVhIHdpbGwgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAnRXN0YSBwcmVndW50YSBubyB0aWVuZSB2YXJpYXMgcmVzcHVlc3RhcywgdW4gYXJlYSBkZSB0ZXh0byBzZXLDoSBtb3N0cmFkYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEFuc3dlcid9ID0gJ0VkaXRhciBSZXNwdWVzdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gYmFjayB0byBlZGl0IHF1ZXN0aW9uJ30gPSAndm9sdmVyIGEgZWRpdGFyIHByZWd1bnRhJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleU92ZXJ2aWV3TmF2QmFyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAnQ29uZmlndXJhY2lvbmVzIGRlIENvbnRleHRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heC4gc2hvd24gU3VydmV5cyBwZXIgcGFnZSd9ID0gJ051bWVybyBtw6F4aW1vIGRlIGVuY3Vlc3RhcyBtb3N0cmFkYXMgcG9yIHDDoWdpbmEnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5T3ZlcnZpZXdTbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIFNlbmRlcid9ID0gJ1JlbWl0ZW50ZSBkZSBOb3RpZmljYWNpb24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIFN1YmplY3QnfSA9ICdBc3VudG8gZGUgTm90aWZpY2FjacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gQm9keSd9ID0gJ0N1ZXJwbyBkZSBOb3RpZmljYWNpw7NuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZWQgQnknfSA9ICdNb2RpZmljYWNvIHBvcic7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlab29tCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgSW5mb3JtYXRpb24nfSA9ICdJbmZvcm1hY2nDs24gZGUgRW5jdWVzdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VudCByZXF1ZXN0cyd9ID0gJ1NvbGljaXR1ZGVzIGVudmlhZGFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlY2VpdmVkIHN1cnZleXMnfSA9ICdTb2xpY2l0dWRlcyByZWNpYmlkYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgRGV0YWlscyd9ID0gJ0RldGFsbGUgZGUgRXN0YWTDrXN0aWNhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgRGV0YWlscyd9ID0gJ0RldGFsbGVzIGRlIEVuY3Vlc3RhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBSZXN1bHRzIEdyYXBoJ30gPSAnR3JhZmljYSBkZSBSZXN1bHRhZG9zIGRlIEVuY3Vlc3RhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHN0YXQgcmVzdWx0cy4nfSA9ICdObyBoYXkgZ3JhZmljYXMgZGUgcmVzdWx0YWRvcy4nOwoKICAgICMgVGVtcGxhdGU6IFB1YmxpY1N1cnZleQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5J30gPSAnRW5jdWVzdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFuc3dlciB0aGVzZSBxdWVzdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBteSBhbnN3ZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXNlIGFyZSB5b3VyIGFuc3dlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFRpdGxlJ30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBTdXJ2ZXkgTW9kdWxlLid9ID0gJ1VuIE3Ds2R1bG8gZGUgRW5jdWVzdGFzLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIG1vZHVsZSB0byBlZGl0IHN1cnZleSBxdWVzdGlvbnMuJ30gPSAnVW4gbcOzZHVsbyBwYXJhIGVkaXRhciBsYXMgcHJlZ3VudGFzIGRlIHVuYSBlbmN1ZXN0YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWxsIHBhcmFtZXRlcnMgZm9yIHRoZSBTdXJ2ZXkgb2JqZWN0IGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdUb2RvcyBsb3MgcGFyYW1ldHJvcyBwYXJhIGVsIG9iamV0byBFbmN1ZXN0YSBlbiBsYSBpbnRlcmZhc2UgZGUgYWdlbnRlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbW91bnQgb2YgZGF5cyBhZnRlciBzZW5kaW5nIGEgc3VydmV5IG1haWwgaW4gd2hpY2ggbm8gbmV3IHN1cnZleSByZXF1ZXN0cyBhcmUgc2VudCB0byB0aGUgc2FtZSBjdXN0b21lci4gU2VsZWN0aW5nIDAgd2lsbCBhbHdheXMgc2VuZCB0aGUgc3VydmV5IG1haWwuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBib2R5IGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnQ3VlcnBvIGRlZmF1bHQgcGFyYSBlbCBlbWFpbCBkZSBub3RpZmljYWNpw7NuIGEgbG9zIGNsaWVudGVzIHNvYnJlIGxhIGVuY3Vlc3RhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHNlbmRlciBmb3IgdGhlIG5vdGlmaWNhdGlvbiBlbWFpbCB0byBjdXN0b21lcnMgYWJvdXQgbmV3IHN1cnZleS4nfSA9CiAgICAgICAgJ1JlbWl0ZW50ZSBkZWZhdWx0IHBhcmEgZWwgZW1haWwgZGUgbm90aWZpY2FjacOzbiBhIGxvcyBjbGllbnRlcyBzb2JyZSBsYSBlbmN1ZXN0YS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5cyB3aWxsIG5vdCBiZSBzZW50IHRvIHRoZSBjb25maWd1cmVkIGVtYWlsIGFkZHJlc3Nlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN1YmplY3QgZm9yIHRoZSBub3RpZmljYXRpb24gZW1haWwgdG8gY3VzdG9tZXJzIGFib3V0IG5ldyBzdXJ2ZXkuJ30gPQogICAgICAgICdBc3VudG8gZGVmYXVsdCBwYXJhIGVsIGVtYWlsIGRlIG5vdGlmaWNhY2nDs24gYSBsb3MgY2xpZW50ZXMgc29icmUgbGEgZW5jdWVzdGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBzdXJ2ZXkgbGlzdC4nfSA9CiAgICAgICAgJ0RlZmluZSB1bmEgbcOzZHVsbyByZXN1bWVuIHBhcmEgbW9zdHJhciBsYSB2aXN0YSBwZXF1ZcOxYSBkZSBsYSBsaXN0YSBkZSBlbmN1ZXN0YXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgbWF4aW11bSBhbW91bnQgb2Ygc3VydmV5cyB0aGF0IGdldCBzZW50IHRvIGEgY3VzdG9tZXIgcGVyIDMwIGRheXMuICggMCBtZWFucyBubyBtYXhpbXVtLCBhbGwgc3VydmV5IHJlcXVlc3RzIHdpbGwgYmUgc2VudCkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgYW1vdW50IGluIGhvdXJzIGEgdGlja2V0IGhhcyB0byBiZSBjbG9zZWQgdG8gdHJpZ2dlciB0aGUgc2VuZGluZyBvZiBhIHN1cnZleSwgKCAwIG1lYW5zIHNlbmQgaW1tZWRpYXRlbHkgYWZ0ZXIgY2xvc2UgKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IGhlaWdodCBmb3IgUmljaHRleHQgdmlld3MgZm9yIFN1cnZleVpvb20gZWxlbWVudHMuJ30gPQogICAgICAgICdEZWZpbmUgbGEgYWx0dXJhIHByZWRlZmluaWRhIHBhcmEgbGEgdmlzdGEgZGUgdGV4dG8gZW5yaXF1ZWNpZG8gcGFyYSBsb3MgZWxlbWVudG9zIGRlIGxhIHBhbnRhbGwgZGUgZGV0YWxsZSBkZSBlc3RhZGlzdGljYXMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIHN1cnZleSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIG9yIGRpc2FibGUgdGhlIFNob3dWb3RlRGF0YSBzY3JlZW4gaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UgdG8gc2hvdyBkYXRhIG9mIGEgc3BlY2lmaWMgc3VydmV5IHJlc3VsdCB3aGVuIHRoZSBjdXN0b21lciB0cmllcyB0byBhbnN3ZXIgYSBzdXJ2ZXkgdGhlIHNlY29uZCB0aW1lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Zyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHN1cnZleSB6b29tIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICdSZWdpc3RybyBkZSBtw7NkdWxvIGZyb250ZW5kIFN1cnZleVpvb20gZW4gbGEgaW50ZXJmYWNlIGRlbCBhZ2VudGUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Zyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBQdWJsaWNTdXJ2ZXkgb2JqZWN0IGluIHRoZSBwdWJsaWMgU3VydmV5IGFyZWEuJ30gPQogICAgICAgICdSZWdpc3RybyBkZSBtw7NkdWxvIGZyb250ZW5kIFB1YmxpY1N1cnZleSBlbiBsYSBpbnRlcmZhY2UgcMO6YmxpY2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoaXMgcmVnZXggbWF0Y2hlcywgbm8gY3VzdG9tZXIgc3VydmV5IHdpbGwgYmUgc2VudC4nfSA9ICdTaSBlc3RhIGV4cHJlc2nDs24gcmVndWxhciBjb25jdWVyZGEsIGxhIGVuY3Vlc3RhIG5vIHNlcsOhIGVudmlhZGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIHN1cnZleXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgc3VydmV5IG92ZXJ2aWV3Lid9ID0KICAgICAgICAnUGFyYW1ldHJvcyBwYXJhIGxhcyBww6FnaW5hcyAoZW4gcXVlIGxhcyBlbmN1ZXN0YXMgc29uIG1vc3RyYWRhcykgZGUgbGEgdmlzdGEgZGUgcmVzdW1lbiBwZXF1ZcOxYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIFN1cnZleS4nfSA9ICdFbmN1ZXN0YSBQw7pibGljYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICdMaW1pdGUgZGUgbGEgdmlzdGEgZGUgcmVzdW1lbiBwZXF1ZcOxYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFpvb20gTW9kdWxlLid9ID0gJ01vZHVsbyBkZSBEZXRhbGxlIGRlIEVuY3Vlc3RhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgbGltaXQgcGVyIHBhZ2UgZm9yIFN1cnZleSBPdmVydmlldyAiU21hbGwiJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIHN1cnZleSwgZS5nLiBTdXJ2ZXkjLCBNeVN1cnZleSMuIFRoZSBkZWZhdWx0IGlzIFN1cnZleSMuJ30gPQogICAgICAgICdFbCBpZGVudGlmaWNhZG9yIHBhcmEgdW5hIGVuY3Vlc3RhLCBlamVtcGxvIFN1cnZleSMsIE15U3VydmV5Iy4gUG9yIGRlZmVjdG8gZXMgU3VydmV5Iy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IGV2ZW50IG1vZHVsZSB0byBzZW5kIGF1dG9tYXRpY2FsbHkgc3VydmV5IGVtYWlsIHJlcXVlc3RzIHRvIGN1c3RvbWVycyBpZiBhIHRpY2tldCBpcyBjbG9zZWQuJ30gPQogICAgICAgICcnOwoKICAgICMKICAgICMgT0JTT0xFVEUgRU5UUklFUyBGT1IgUkVGRVJFTkNFLCBETyBOT1QgVFJBTlNMQVRFIQogICAgIwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlZCBUaW1lJ30gPSAnVGllbXBvIGRlIG1vZGlmaWNhY2nDs24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBCeSd9ID0gJ0NyZWFkbyBwb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBUaW1lJ30gPSAnVGllbXBvIGRlIENyZWFjacOzbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHN0YXJ0aW5nIGZyb20gdGhlIGxhdGVzdCBjdXN0b21lciBzdXJ2ZXkgZW1haWwgYmV0d2VlbiBubyBjdXN0b21lciBzdXJ2ZXkgZW1haWwgaXMgc2VudCwgKCAwIG1lYW5zIEFsd2F5cyBzZW5kIGl0ICkgLid9ID0KICAgICAgICAnRGlhcyBjb21lbnphbmRvIGRlc2RlIGxhIMO6bHRpbWEgZW4gY3Vlc3RhIGVudmlhZGEgYWwgY2xpZW50ZSAoIDAgc2lnbmlmaWNhIGVudmlhbGEgc2llbXByZSApIC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgc3VydmV5IG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1uLid9ID0KICAgICAgICAnRGVmaW5lIGxhcyBjb2x1bW5hcyBtb3N0cmFkYXMgZW4gbGEgdmlzdGEgXCdSZXN1bWVuIGRlIEVzdGFkaXN0aWNhc1wnLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgb3IgZGlzYWJsZSB0aGUgU2hvd1ZvdGVEYXRhIHNjcmVlbiBvbiBwdWJsaWMgaW50ZXJmYWNlIHRvIHNob3cgZGF0YSBvZiBhbiBzcGVjaWZpYyB2b3RhdGlvbiB3aGVuIGN1c3RvbWVyIHRyaWVzIHRvIGFuc3dlciBhIHN1cnZleSBieSBzZWNvbmQgdGltZS4nfSA9CiAgICAgICAgJ0hhYmlsaXRhciBvIGRlc2hhYmlsaXRhciBsYSBwYW50YWxsYSBkZSBTaG93Vm90ZURhdGEgc2NyZWVuIGVuIGxhIGludGVyZmFzZSBwdWJsaWNhIHBhcmEgbW9zdHJhciBsb3MgZGF0b3MgZGUgdW4gdm90ZW8gY3VhbmRvIGVsIGNsaWVudGUgaW50ZW50YSBjb250ZXN0YXIgbGEgZW5jdWVzdGEgcG9yIHNlZ3VuZGEgdmV6Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYW5zd2VyIHRoZSBuZXh0IHF1ZXN0aW9ucyd9ID0gJ1BvciBmYXZvciBjb250ZXN0ZSBsYXMgc2lndWllbnRlcyBwcmVndW50YXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IGxpbWl0IHBlciBwYWdlIGZvciBTdXJ2ZXkgT3ZlcnZpZXcgIlNtYWxsIi4nfSA9ICdMaW1pdGUgZGUgZW5jdWVzdGFzIHBvciBww6FnaW5hIHBhcmEgbGEgdmlzdGEgZGUgcmVzdW1lbiBwZXF1ZcOxYS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5Iyd9ID0gJ0VuY3Vlc3RhIyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGZpZWxkIGlzIHJlcXVpcmVkJ30gPSAnRXN0ZSBjYW1wbyBlcyByZXF1ZXJpZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IGV2ZW50IG1vZHVsZSB0byBzZW5kIGF1dG9tYXRpY2FsbHkgc3VydmV5IGVtYWlsIHJlcXVlc3RzIHRvIGN1c3RvbWVycyBpZiBhIHRpY2tldCBnZXRzIGNsb3NlZC4nfSA9CiAgICAgICAgJ01vZHVsbyBkZSBldmVudG8gZGUgVGlja2V0IHBhcmEgZW52aWFyIGF1dG9tYXRpY2FtZW50ZSBjb3JyZW9zIGRlIHNvbGljaXR1ZGVzIGRlIGVuY3Vlc3RhIGEgY2xpZW50ZXMgc2kgZWwgdGlja2V0IHNlIGhhIGNlcnJhZG8uJzsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6YmdfU3VydmV5OwoKdXNlIHV0Zjg7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFBQVN1cnZleQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnLSBDaGFuZ2UgU3RhdHVzIC0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5ldyBTdXJ2ZXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEVkaXQgUXVlc3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1F1ZXN0aW9uIEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW5zd2VyIEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNldCBuZXcgc3RhdHVzISBObyBxdWVzdGlvbnMgZGVmaW5lZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHVzIGNoYW5nZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoYW5rIHlvdSBmb3IgeW91ciBmZWVkYmFjay4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHN1cnZleSBpcyBmaW5pc2hlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tcGxldGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGVja2JveCAoTGlzdCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmFkaW8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmFkaW8gKExpc3QpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRzIE92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBEZXNjcmlwdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgSW50cm9kdWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1llcy9Obyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZZXNObyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbnN3ZXJlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgYW5zd2VyZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgRGV0YWlsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIGFscmVhZHkgYW5zd2VyZWQgdGhlIHN1cnZleS4nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgTmV3IFN1cnZleSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnRyb2R1Y3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW50ZXJuYWwgRGVzY3JpcHRpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBHZW5lcmFsIEluZm8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbCBJbmZvJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRzIE92ZXJ2aWV3IG9mJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RzIFRhYmxlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbmQgVGltZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWb3RlIFRpbWUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFN0YXQgRGV0YWlscyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyBiYWNrIHRvIHN0YXRzIG92ZXJ2aWV3J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIEJhY2snfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5RWRpdFF1ZXN0aW9ucwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBRdWVzdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFF1ZXN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1R5cGUgdGhlIHF1ZXN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBRdWVzdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVlc3Rpb24nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gcXVlc3Rpb25zIHNhdmVkIGZvciB0aGlzIHN1cnZleS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBRdWVzdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyBiYWNrIHRvIHF1ZXN0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQb3NzaWJsZSBBbnN3ZXJzIEZvcid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgQW5zd2VyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgZG9lc25cJ3QgaGF2ZSBzZXZlcmFsIGFuc3dlcnMsIGEgdGV4dGFyZWEgd2lsbCBiZSBkaXNwbGF5ZWQuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBBbnN3ZXInfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gYmFjayB0byBlZGl0IHF1ZXN0aW9uJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleU92ZXJ2aWV3TmF2QmFyCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb250ZXh0IFNldHRpbmdzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heC4gc2hvd24gU3VydmV5cyBwZXIgcGFnZSd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlPdmVydmlld1NtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gU2VuZGVyJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBTdWJqZWN0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBCb2R5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZWQgQnknfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5Wm9vbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEluZm9ybWF0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbnQgcmVxdWVzdHMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVjZWl2ZWQgc3VydmV5cyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0cyBEZXRhaWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBEZXRhaWxzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBSZXN1bHRzIEdyYXBoJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHN0YXQgcmVzdWx0cy4nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IFB1YmxpY1N1cnZleQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhbnN3ZXIgdGhlc2UgcXVlc3Rpb25zJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1Nob3cgbXkgYW5zd2Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGVzZSBhcmUgeW91ciBhbnN3ZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBUaXRsZSd9ID0gJyc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgU3VydmV5IE1vZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBtb2R1bGUgdG8gZWRpdCBzdXJ2ZXkgcXVlc3Rpb25zLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgcGFyYW1ldGVycyBmb3IgdGhlIFN1cnZleSBvYmplY3QgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbW91bnQgb2YgZGF5cyBhZnRlciBzZW5kaW5nIGEgc3VydmV5IG1haWwgaW4gd2hpY2ggbm8gbmV3IHN1cnZleSByZXF1ZXN0cyBhcmUgc2VudCB0byB0aGUgc2FtZSBjdXN0b21lci4gU2VsZWN0aW5nIDAgd2lsbCBhbHdheXMgc2VuZCB0aGUgc3VydmV5IG1haWwuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBib2R5IGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2VuZGVyIGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleXMgd2lsbCBub3QgYmUgc2VudCB0byB0aGUgY29uZmlndXJlZCBlbWFpbCBhZGRyZXNzZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdWJqZWN0IGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgYW4gb3ZlcnZpZXcgbW9kdWxlIHRvIHNob3cgdGhlIHNtYWxsIHZpZXcgb2YgYSBzdXJ2ZXkgbGlzdC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIG1heGltdW0gYW1vdW50IG9mIHN1cnZleXMgdGhhdCBnZXQgc2VudCB0byBhIGN1c3RvbWVyIHBlciAzMCBkYXlzLiAoIDAgbWVhbnMgbm8gbWF4aW11bSwgYWxsIHN1cnZleSByZXF1ZXN0cyB3aWxsIGJlIHNlbnQpLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGFtb3VudCBpbiBob3VycyBhIHRpY2tldCBoYXMgdG8gYmUgY2xvc2VkIHRvIHRyaWdnZXIgdGhlIHNlbmRpbmcgb2YgYSBzdXJ2ZXksICggMCBtZWFucyBzZW5kIGltbWVkaWF0ZWx5IGFmdGVyIGNsb3NlICkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBoZWlnaHQgZm9yIFJpY2h0ZXh0IHZpZXdzIGZvciBTdXJ2ZXlab29tIGVsZW1lbnRzLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIHN1cnZleSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRW5hYmxlIG9yIGRpc2FibGUgdGhlIFNob3dWb3RlRGF0YSBzY3JlZW4gaW4gdGhlIHB1YmxpYyBpbnRlcmZhY2UgdG8gc2hvdyBkYXRhIG9mIGEgc3BlY2lmaWMgc3VydmV5IHJlc3VsdCB3aGVuIHRoZSBjdXN0b21lciB0cmllcyB0byBhbnN3ZXIgYSBzdXJ2ZXkgdGhlIHNlY29uZCB0aW1lLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Zyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHN1cnZleSB6b29tIGluIHRoZSBhZ2VudCBpbnRlcmZhY2UuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIFB1YmxpY1N1cnZleSBvYmplY3QgaW4gdGhlIHB1YmxpYyBTdXJ2ZXkgYXJlYS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGlzIHJlZ2V4IG1hdGNoZXMsIG5vIGN1c3RvbWVyIHN1cnZleSB3aWxsIGJlIHNlbnQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIHN1cnZleXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgc3VydmV5IG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBTdXJ2ZXkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBab29tIE1vZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IGxpbWl0IHBlciBwYWdlIGZvciBTdXJ2ZXkgT3ZlcnZpZXcgIlNtYWxsIid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSBzdXJ2ZXksIGUuZy4gU3VydmV5IywgTXlTdXJ2ZXkjLiBUaGUgZGVmYXVsdCBpcyBTdXJ2ZXkjLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBldmVudCBtb2R1bGUgdG8gc2VuZCBhdXRvbWF0aWNhbGx5IHN1cnZleSBlbWFpbCByZXF1ZXN0cyB0byBjdXN0b21lcnMgaWYgYSB0aWNrZXQgaXMgY2xvc2VkLid9ID0KICAgICAgICAnJzsKCiAgICAjCiAgICAjIE9CU09MRVRFIEVOVFJJRVMgRk9SIFJFRkVSRU5DRSwgRE8gTk9UIFRSQU5TTEFURSEKICAgICMKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxMiBJbmZvcm1hdHlrYSBCb2d1c2xhd3NraSBzcC4geiBvLm8uIHNwLmsuLCBodHRwOi8vd3d3LmliLnBsLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Okxhbmd1YWdlOjpwbF9TdXJ2ZXk7Cgp1c2UgdXRmODsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnN1YiBEYXRhIHsKICAgIG15ICRTZWxmID0gc2hpZnQ7CgogICAgIyBUZW1wbGF0ZTogQUFBU3VydmV5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eyctIENoYW5nZSBTdGF0dXMgLSd9ID0gJ1ptaWXFhCBzdGF0dXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5ldyBTdXJ2ZXknfSA9ICdEb2RhaiBub3fEhSBhbmtpZXTEmSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgRWRpdCd9ID0gJ0VkeWNqYSBhbmtpZXR5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBFZGl0IFF1ZXN0aW9ucyd9ID0gJ0VkeWNqYSBweXRhxYQgYW5raWV0eSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydRdWVzdGlvbiBFZGl0J30gPSAnRWR5Y2phIHB5dGHFhCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbnN3ZXIgRWRpdCd9ID0gJ0VkeWNqYSBvZHBvd2llZHppJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzZXQgbmV3IHN0YXR1cyEgTm8gcXVlc3Rpb25zIGRlZmluZWQuJ30gPSAnTmllIG1vxbxuYSB6bWllbmnEhyBzdGF0dXN1ISBCcmFrIHpkZWZpbmlvd2FueWNoIHB5dGHFhC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHVzIGNoYW5nZWQuJ30gPSAnU3RhdHVzIHptaWVuaW9ueS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhhbmsgeW91IGZvciB5b3VyIGZlZWRiYWNrLid9ID0gJ0R6acSZa3VqxJlteSB6YSB3eXBlxYJuaWVuaWUgYW5raWV0eS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHN1cnZleSBpcyBmaW5pc2hlZC4nfSA9ICdBbmtpZXRhIHpha2/FhGN6b25hLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb21wbGV0ZSd9ID0gJ0tvbXBsZXRuZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlJ30gPSAnTmlla29tcGxldG5lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoZWNrYm94IChMaXN0KSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYWRpbyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYWRpbyAoTGlzdCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgT3ZlcnZpZXcnfSA9ICdTdGF0eXN0eWthJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBEZXNjcmlwdGlvbid9ID0gJ09waXMgYW5raWV0eSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgSW50cm9kdWN0aW9uJ30gPSAnV3N0xJlwIGFua2lldHknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnWWVzL05vJ30gPSAnVGFrL05pZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZZXNObyd9ID0gJ1Rha05pZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbnN3ZXJlZCd9ID0gJ29kcG93aWVkemlhbm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnbm90IGFuc3dlcmVkJ30gPSAnbmllIG9kcG93aWVkemlhbm8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgRGV0YWlsJ30gPSAnU3pjemVnw7PFgnkgc3RhdHVzdSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSBhbHJlYWR5IGFuc3dlcmVkIHRoZSBzdXJ2ZXkuJ30gPSAnSnXFvCBvZHBvd2llZHppYcWCZcWbIG5hIHTEmSBhbmtpZXTEmS4nOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgTmV3IFN1cnZleSd9ID0gJ1V0d8Ozcnogbm93xIUgYW5raWV0xJknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW50cm9kdWN0aW9uJ30gPSAnV3Byb3dhZHplbmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludGVybmFsIERlc2NyaXB0aW9uJ30gPSAnV2V3bsSZdHJ6bnkgb3Bpcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEdlbmVyYWwgSW5mbyd9ID0gJ0VkeXR1aiBpbmZvcm1hY2plIG9nw7NsbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbCBJbmZvJ30gPSAnSW5mb3JtYWNqZSBvZ8OzbG5lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRzIE92ZXJ2aWV3IG9mJ30gPSAnUHJ6ZWdsxIVkIHN0YXR5c3R5a2knOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVxdWVzdHMgVGFibGUnfSA9ICdUYWJlbGEgxbzEhWRhxYQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VuZCBUaW1lJ30gPSAnQ3phcyB3eXPFgmFuaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSBUaW1lJ30gPSAnQ3phcyBnxYJvc293YW5pYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgU3RhdCBEZXRhaWxzJ30gPSAnU3pjemVnw7PFgnkgc3RhdHlzdHlraSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyBiYWNrIHRvIHN0YXRzIG92ZXJ2aWV3J30gPSAnV3N0ZWN6IGRvIHByemVnbMSFZHUgc3RhdHlzdHlraSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyBCYWNrJ30gPSAnV3N0ZWN6JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleUVkaXRRdWVzdGlvbnMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUXVlc3Rpb25zJ30gPSAnRWR5dHVqIHB5dGFuaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIFF1ZXN0aW9uJ30gPSAnRG9kYWogcHl0YW5pZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlIHRoZSBxdWVzdGlvbid9ID0gJ1dwcm93YWTFuiBweXRhbmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBRdWVzdGlvbnMnfSA9ICdQeXRhbmlhIGFua2lldHknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVlc3Rpb24nfSA9ICdQeXRhbmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHF1ZXN0aW9ucyBzYXZlZCBmb3IgdGhpcyBzdXJ2ZXkuJ30gPSAnQnJhayBweXRhxYQgemFwaXNhbnljaCB3IHRlaiBhbmtpZWNpZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBRdWVzdGlvbid9ID0gJ0VkeXR1aiBweXRhbmllJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIGJhY2sgdG8gcXVlc3Rpb25zJ30gPSAncG93csOzdCBkbyBweXRhxYQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUG9zc2libGUgQW5zd2VycyBGb3InfSA9ICdNb8W8bGl3ZSBvZHBvd2llZHppIGRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBBbnN3ZXInfSA9ICdEb2RhaiBvZHBvd2llZMW6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgZG9lc25cJ3QgaGF2ZSBzZXZlcmFsIGFuc3dlcnMsIGEgdGV4dGFyZWEgd2lsbCBiZSBkaXNwbGF5ZWQuJ30gPQogICAgICAgICdOaWUgcG9zaWFkYSB3aWVsdSBvZHBvd2llZHppLCBixJlkemllIHd5xZt3aWV0bGFuZSBwb2xlIHRla3N0b3dlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEFuc3dlcid9ID0gJ0VkeXR1aiBvZHBvd2llZMW6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIGJhY2sgdG8gZWRpdCBxdWVzdGlvbid9ID0gJ3Bvd3LDs3QgZG8gZWR5Y2ppIHB5dGFuaWEnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5T3ZlcnZpZXdOYXZCYXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRleHQgU2V0dGluZ3MnfSA9ICdVc3Rhd2llbmlhIGtvbnRla3N0b3dlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J01heC4gc2hvd24gU3VydmV5cyBwZXIgcGFnZSd9ID0gJ01ha3MuIGxpY3piYSB3ecWbd2lldGxhbnljaCBhbmtpZXQgbmEgc3Ryb27EmSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlPdmVydmlld1NtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gU2VuZGVyJ30gPSAnTmFkYXdjYSBwb3dpYWRvbWllbmlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBTdWJqZWN0J30gPSAnVGVtYXQgcG93aWFkb21pZW5pYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gQm9keSd9ID0gJ1RyZcWbxIcgcG93aWFkb21pZW5pYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VkIEJ5J30gPSAnWm1pZW5pb25lIHByemV6JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleVpvb20KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBJbmZvcm1hdGlvbid9ID0gJ0luZm9ybWFjamUgbyBhbmtpZWNpZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZW50IHJlcXVlc3RzJ30gPSAnV3lzxYJhbmUgxbzEhWRhbmlhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlY2VpdmVkIHN1cnZleXMnfSA9ICdPdHJ6eW1hbmUgYW5raWV0eSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0cyBEZXRhaWxzJ30gPSAnU3pjemVnw7PFgnkgc3RhdHlzdHlrJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBEZXRhaWxzJ30gPSAnU3pjemVnw7PFgnkgYW5raWV0eSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgUmVzdWx0cyBHcmFwaCd9ID0gJ1d5a3JlcyB3eW5pa8OzdyBhbmtpZXR5JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHN0YXQgcmVzdWx0cy4nfSA9ICdCcmFrIHd5bmlrw7N3IGFua2lldHkuJzsKCiAgICAjIFRlbXBsYXRlOiBQdWJsaWNTdXJ2ZXkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSd9ID0gJ0Fua2lldGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFuc3dlciB0aGVzZSBxdWVzdGlvbnMnfSA9ICdQcm9zesSZIG9kcG93aWVkemllxIcgbmEgdGUgcHl0YW5pYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IG15IGFuc3dlcnMnfSA9ICdQb2thxbwgbW9qZSBvZHBvd2llZHppJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXNlIGFyZSB5b3VyIGFuc3dlcnMnfSA9ICdPdG8gVHdvamUgb2Rwb3dpZWR6aSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgVGl0bGUnfSA9ICdUeXR1xYIgYW5raWV0eSc7CgogICAgIyBTeXNDb25maWcKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0EgU3VydmV5IE1vZHVsZS4nfSA9ICdNb2R1xYIgYW5raWV0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIG1vZHVsZSB0byBlZGl0IHN1cnZleSBxdWVzdGlvbnMuJ30gPSAnTW9kdcWCIGRvIGVkeWNqaSBweXRhxYQgYW5raWV0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBwYXJhbWV0ZXJzIGZvciB0aGUgU3VydmV5IG9iamVjdCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnV3N6eXN0a2llIHBhcmFtZXRyeSBkbGEgYW5raWV0IHcgaW50ZXJmZWpzaWUgYWdlbnRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbW91bnQgb2YgZGF5cyBhZnRlciBzZW5kaW5nIGEgc3VydmV5IG1haWwgaW4gd2hpY2ggbm8gbmV3IHN1cnZleSByZXF1ZXN0cyBhcmUgc2VudCB0byB0aGUgc2FtZSBjdXN0b21lci4gU2VsZWN0aW5nIDAgd2lsbCBhbHdheXMgc2VuZCB0aGUgc3VydmV5IG1haWwuJ30gPQogICAgICAgICdMaWN6YmEgZG5pIHBvIGt0w7NyeWNoIG5hc3TEhXBpIHd5c8WCYW5pZSDFvMSFZGFuaWEgd3lwZcWCbmllbmlhIGFua2lldHkuIFdwcm93YWR6ZW5pZSAiMCIgc3Bvd29kdWplIHd5c8WCYW5pZSBlLW1haWxhIHphd3N6ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBib2R5IGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnRG9tecWbbG5hIGJ1ZG93YSBpbmZvcm1hY2ppIGRsIHXFvHl0a293bmlrYSBvZG5vxZtuaWUgbm93ZWogYW5raWV0eS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZW5kZXIgZm9yIHRoZSBub3RpZmljYXRpb24gZW1haWwgdG8gY3VzdG9tZXJzIGFib3V0IG5ldyBzdXJ2ZXkuJ30gPQogICAgICAgICdEb215xZtsbnkgbmFkYXdjYSBpbmZvcm1hY2ppIG8gbm93ZWogYW5raWVjaWUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleXMgd2lsbCBub3QgYmUgc2VudCB0byB0aGUgY29uZmlndXJlZCBlbWFpbCBhZGRyZXNzZXMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc3ViamVjdCBmb3IgdGhlIG5vdGlmaWNhdGlvbiBlbWFpbCB0byBjdXN0b21lcnMgYWJvdXQgbmV3IHN1cnZleS4nfSA9CiAgICAgICAgJ0RvbXnFm2xueSB0ZW1hdCBpbmZvcm1hY2ppIG8gbm93ZWogYW5raWV0ZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIHN1cnZleSBsaXN0Lid9ID0KICAgICAgICAnRGVmbml1amUgbW9kdcWCIHByemVnbMSFZHUgd3nFm3dpZXRsYW5pYSBsaXN0IGFua2lldC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBtYXhpbXVtIGFtb3VudCBvZiBzdXJ2ZXlzIHRoYXQgZ2V0IHNlbnQgdG8gYSBjdXN0b21lciBwZXIgMzAgZGF5cy4gKCAwIG1lYW5zIG5vIG1heGltdW0sIGFsbCBzdXJ2ZXkgcmVxdWVzdHMgd2lsbCBiZSBzZW50KS4nfSA9CiAgICAgICAgJ0RlZmluaXVqZSBtYWtzeW1hbG7EhSBsaWN6YsSZIGFua2lldCB3eXN5xYJhbml1IGRvIEtsaWVudGEgdyBjacSFZ3UgMzAgZG5pLiAoMCBvem5hY3phIGJyYWsgb2dyYW5pY3plbmlhLCB3c3p5c3RraWUgxbzEhWRhbmlhIGLEmWTEhSB3eXN5xYJhbmUpLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBhbW91bnQgaW4gaG91cnMgYSB0aWNrZXQgaGFzIHRvIGJlIGNsb3NlZCB0byB0cmlnZ2VyIHRoZSBzZW5kaW5nIG9mIGEgc3VydmV5LCAoIDAgbWVhbnMgc2VuZCBpbW1lZGlhdGVseSBhZnRlciBjbG9zZSApLid9ID0KICAgICAgICAnVXN0YWxhIGxpY3pixJkgZ29kemluIGt0w7NyZSBtdXN6xIUgbWluxIXEhyBvZCB6YW1rbmnEmWNpYSB6Z8WCb3N6ZW5pYSBkbyB3eXPFgmFuaWEgYW5raWV0eSAoMCBvem5hY3phIGJlenp3xYJvY3puxIUgd3lzecWCa8SZIHByenkgemFteWthbml1IHpnxYJvc3plbmlhKS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCBoZWlnaHQgZm9yIFJpY2h0ZXh0IHZpZXdzIGZvciBTdXJ2ZXlab29tIGVsZW1lbnRzLid9ID0KICAgICAgICAnRGVmaW5pdWplIGRvbXnFm2xuxIUgd3lzb2tvxZvEhyB3aWRva8OzdyBSaWNodGV4dCBkbGEgZWxlbWVudMOzdyBTdXJ2ZXlab29tLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBzdXJ2ZXkgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW5zLid9ID0KICAgICAgICAnRGVmaW5pdWplIHdpZG9jem5lIGtvbHVtbnkgdyBwcnplZ2zEhWR6aWUgYW5raWV0LiBUYSBvcGNqYSBuaWUgd3DFgnl3YSBuYSBwb3p5Y2rEmSBrb2x1bW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSBvciBkaXNhYmxlIHRoZSBTaG93Vm90ZURhdGEgc2NyZWVuIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlIHRvIHNob3cgZGF0YSBvZiBhIHNwZWNpZmljIHN1cnZleSByZXN1bHQgd2hlbiB0aGUgY3VzdG9tZXIgdHJpZXMgdG8gYW5zd2VyIGEgc3VydmV5IHRoZSBzZWNvbmQgdGltZS4nfSA9CiAgICAgICAgJ1fFgsSFY3ogbHViIHd5xYLEhWN6IGVrcmFuIFNob3dWb3RlRGF0YSB3IGludGVyZmVqc2llIHB1YmxpY3pueW0gYWJ5IHBva2F6YcSHIHd5bmlraSBhbmtpZXR5IGdkeSBrbGllbnQgcHLDs2J1amUgb2Rwb3dpZWR6aWXEhyBuYSBha2lldMSZIGRydWdpIHJhei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3Igc3VydmV5IHpvb20gaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJ01vZHXFgiBmcm9udGVuZCByZWplc3RydWrEhWN5IHBvZGdsxIVkIGFua2lldCB3IHBhbmVsdSBhZ2VudGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Zyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBQdWJsaWNTdXJ2ZXkgb2JqZWN0IGluIHRoZSBwdWJsaWMgU3VydmV5IGFyZWEuJ30gPQogICAgICAgICdNb2R1xYIgZnJvbnRlbmQgcmVqZXN0cnVqxIVjeSBvYmlla3QgUHVibGljU3VydmV5IHcgb2JzemFyemUgcHVibGljem55bSBhbmtpZXR5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGlzIHJlZ2V4IG1hdGNoZXMsIG5vIGN1c3RvbWVyIHN1cnZleSB3aWxsIGJlIHNlbnQuJ30gPSAnR2R5IHRvIHd5cmHFvGVuaWUgcmVndWxhcm5lIGplc3Qgc3BlxYJuaW9uZSwgbmllIHpvc3RhbmllIHd5c8WCYW5hIMW8YWRuYSBhbmtpZXRhIGRvIGtsaWVudGEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIHN1cnZleXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgc3VydmV5IG92ZXJ2aWV3Lid9ID0KICAgICAgICAnUGFyYW1ldHJ5IGRsYSBzdHJvbiAobmEga3TDs3J5Y2ggcG9rYXp5d2FuZSBzxIUgYW5raWV0eSkgZGxhIG1hxYJlZ28gcHJ6ZWdsxIVkdSBhbmtpZXQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBTdXJ2ZXkuJ30gPSAnQW5raWV0YSBwdWJsaWN6bmEuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnTGltaXQgIm1hxYJlZ28iIHByemVnbMSFZHUgYW5raWV0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBab29tIE1vZHVsZS4nfSA9ICdQb2RnbMSFZCBhbmtpZXR5Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgbGltaXQgcGVyIHBhZ2UgZm9yIFN1cnZleSBPdmVydmlldyAiU21hbGwiJ30gPSAnTGltaXQgaWxvxZtjaSBhbmtpZXQgdyAibWHFgnltIiBwcnplZ2zEhWR6aWUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIGlkZW50aWZpZXIgZm9yIGEgc3VydmV5LCBlLmcuIFN1cnZleSMsIE15U3VydmV5Iy4gVGhlIGRlZmF1bHQgaXMgU3VydmV5Iy4nfSA9CiAgICAgICAgJ0lkZW50eWZpa2FjamEgZGxhIGFua2lldHksIG5wLiBTdXJ2ZXkjLCBNeVN1cnZleSMuIERvbXnFm2xuaWU6IFN1cnZleSMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBldmVudCBtb2R1bGUgdG8gc2VuZCBhdXRvbWF0aWNhbGx5IHN1cnZleSBlbWFpbCByZXF1ZXN0cyB0byBjdXN0b21lcnMgaWYgYSB0aWNrZXQgaXMgY2xvc2VkLid9ID0KICAgICAgICAnWmRhcnplbmllIHpnxYJvc3plbmlhIHd5c3nFgmEgYXV0b21hdHljem5pZSBlLW1haWxhIHogcHJvxZtixIUgbyB3eXBlxYJuaWVuaWUgYW5raWV0eSBwbyB6YW1rbmnEmWNpdSB6Z8WCb3N6ZW5pYS4nOwoKICAgICMKICAgICMgT0JTT0xFVEUgRU5UUklFUyBGT1IgUkVGRVJFTkNFLCBETyBOT1QgVFJBTlNMQVRFIQogICAgIwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlIFN0YXR1cyd9ID0gJ1ptaWXFhCBzdGF0dXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlZCBUaW1lJ30gPSAnQ3phcyB6bWlhbnknOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBCeSd9ID0gJ1V0d29yem9uZSBwcnpleic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGVkIFRpbWUnfSA9ICdDemFzIHV0d29yemVuaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGF5cyBzdGFydGluZyBmcm9tIHRoZSBsYXRlc3QgY3VzdG9tZXIgc3VydmV5IGVtYWlsIGJldHdlZW4gbm8gY3VzdG9tZXIgc3VydmV5IGVtYWlsIGlzIHNlbnQsICggMCBtZWFucyBBbHdheXMgc2VuZCBpdCApIC4nfSA9CiAgICAgICAgJ0xpY3piYSBkbmkgYmV6IHd5c3nFgmFuaWEgxbzEhWRhxYQgd3lwZcWCbmllbmlhIGFua2lldHkgZG8ga2xpZW50YSwgcG9jesSFd3N6eSBvZCBvc3RhdG5pZWogdGFraWVqIHd5c3nFgmtpIGRvIHRlZ28ga2xpZW50YSAoMCBvem5hY3phIHd5c3nFgmFuaWUgemEga2HFvGR5bSByYXplbSkuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIHNob3duIGNvbHVtbnMgaW4gdGhlIHN1cnZleSBvdmVydmlldy4gVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbHVtbi4nfSA9CiAgICAgICAgJ0RlZmluaXVqZSB3aWRvY3puZSBrb2x1bW55IHcgcHJ6ZWdsxIVkemllIGFua2lldC4gVGEgb3BjamEgbmllIHdwxYJ5d2EgbmEgcG96eWNqxJkga29sdW1uLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgb3IgZGlzYWJsZSB0aGUgU2hvd1ZvdGVEYXRhIHNjcmVlbiBvbiBwdWJsaWMgaW50ZXJmYWNlIHRvIHNob3cgZGF0YSBvZiBhbiBzcGVjaWZpYyB2b3RhdGlvbiB3aGVuIGN1c3RvbWVyIHRyaWVzIHRvIGFuc3dlciBhIHN1cnZleSBieSBzZWNvbmQgdGltZS4nfSA9CiAgICAgICAgJ1fFgsSFY3ogbHViIHd5xYLEhWN6IGVrcmFuIFNob3dWb3RlRGF0YSB3IGludGVyZmVqc2llIHB1YmxpY3pueW0gYWJ5IHBva2F6YcSHIHd5bmlraSBhbmtpZXR5IGdkeSBrbGllbnQgcHLDs2J1amUgb2Rwb3dpZWR6aWXEhyBuYSBha2lldMSZIGRydWdpIHJhei4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFuc3dlciB0aGUgbmV4dCBxdWVzdGlvbnMnfSA9ICdQcm9zaW15LCBvZHBvd2llZHogbmEgbmFzdMOqcG5lIHB5dGFuaWEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHVzIGNoYW5nZWQnfSA9ICdTdGF0dXMgem1pZW5pb255JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSMnfSA9ICdBbmtpZXRhIyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGZpZWxkIGlzIHJlcXVpcmVkJ30gPSAnVG8gcG9sZSBqZXN0IHd5bWFnYW5lJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBldmVudCBtb2R1bGUgdG8gc2VuZCBhdXRvbWF0aWNhbGx5IHN1cnZleSBlbWFpbCByZXF1ZXN0cyB0byBjdXN0b21lcnMgaWYgYSB0aWNrZXQgZ2V0cyBjbG9zZWQuJ30gPQogICAgICAgICdNb2R1xYIgemRhcnplbmlvd3kgemfFgm9zemVuaWEgZG8gYXV0b21hdHljem5lZ28gd3lzecWCYW5pYSDFvMSFZGHFhCBlLW1haWwgd3lwZcWCbmllbmlhIGFua2lldHkgZG8ga2xpZW50w7N3LCBwcnp5IHphbWtuacSZY2l1IHpnxYJvc3plbmlhLic7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6bmJfTk9fU3VydmV5OwoKdXNlIHV0Zjg7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFBQVN1cnZleQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnLSBDaGFuZ2UgU3RhdHVzIC0nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5ldyBTdXJ2ZXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEVkaXQnfSA9ICdSZWRpZ2VyIHNww7hycmV1bmRlcnPDuGtlbHNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBFZGl0IFF1ZXN0aW9ucyd9ID0gJ1JlZGlnZXIgc3DDuHJzbcOlbCB0aWwgc3DDuHJyZXVuZGVyc8O4a2Vsc2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1F1ZXN0aW9uIEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQW5zd2VyIEVkaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2FuXCd0IHNldCBuZXcgc3RhdHVzISBObyBxdWVzdGlvbnMgZGVmaW5lZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHVzIGNoYW5nZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoYW5rIHlvdSBmb3IgeW91ciBmZWVkYmFjay4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlIHN1cnZleSBpcyBmaW5pc2hlZC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29tcGxldGUnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGVja2JveCAoTGlzdCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmFkaW8nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmFkaW8gKExpc3QpJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRzIE92ZXJ2aWV3J30gPSAnU3RhdGlzdGlra292ZXJzaWt0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBEZXNjcmlwdGlvbid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgSW50cm9kdWN0aW9uJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1llcy9Obyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZZXNObyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbnN3ZXJlZCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydub3QgYW5zd2VyZWQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgRGV0YWlsJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1lvdSBoYXZlIGFscmVhZHkgYW5zd2VyZWQgdGhlIHN1cnZleS4nfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgTmV3IFN1cnZleSd9ID0gJ0xhZyBueSBzcMO4cnJldW5kZXJzw7hrZWxzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnRyb2R1Y3Rpb24nfSA9ICdJbnRyb2R1a3Nqb24nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW50ZXJuYWwgRGVzY3JpcHRpb24nfSA9ICdJbnRlcm4gYmVza3JpdmVsc2UnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBHZW5lcmFsIEluZm8nfSA9ICdSZWRpZ2VyIGdlbmVyZWxsIGluZm9ybWFzam9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYWwgSW5mbyd9ID0gJ0dlbmVyZWxsIGluZm9ybWFzam9uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRzIE92ZXJ2aWV3IG9mJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RzIFRhYmxlJ30gPSAnVGFiZWxsZm9yZXNww7hyc2VsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbmQgVGltZSd9ID0gJ1RpZCBzZW5kdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWb3RlIFRpbWUnfSA9ICdUaWQgc3ZhcnQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFN0YXQgRGV0YWlscyd9ID0gJ0RldGFsanN0YXRpc3Rpa2sgZm9yIHNww7hycmV1bmRlcnPDuGtlbHNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIGJhY2sgdG8gc3RhdHMgb3ZlcnZpZXcnfSA9ICdnw6UgdGlsYmFrZSB0aWwgc3RhdGlzdGlra292ZXJzaWt0ZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR28gQmFjayd9ID0gJ0fDpSB0aWxiYWtlJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleUVkaXRRdWVzdGlvbnMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUXVlc3Rpb25zJ30gPSAnUmVkaWdlciBzcMO4cnNtw6VsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBRdWVzdGlvbid9ID0gJ0xlZ2cgdGlsIHNww7hyc23DpWwnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZSB0aGUgcXVlc3Rpb24nfSA9ICdTa3JpdiBpbm4gc3DDuHJzbcOlbGV0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBRdWVzdGlvbnMnfSA9ICdTcMO4cnNtw6VsIHRpbCBzcMO4cnJldW5kZXJzw7hrZWxzZW4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVlc3Rpb24nfSA9ICdTcMO4cnNtw6VsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHF1ZXN0aW9ucyBzYXZlZCBmb3IgdGhpcyBzdXJ2ZXkuJ30gPSAnSW5nZW4gc3DDuHJzbcOlbCBsYWdyZXQgZm9yIGRlbm5lIHNww7hycmV1bmRlcnPDuGtlbHNlbi4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBRdWVzdGlvbid9ID0gJ1JlZGlnZXIgc3DDuHJzbcOlbCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydnbyBiYWNrIHRvIHF1ZXN0aW9ucyd9ID0gJ3RpbGJha2UgdGlsIHNww7hyc23DpWxlbmUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUG9zc2libGUgQW5zd2VycyBGb3InfSA9ICdNdWxpZ2Ugc3ZhcmFsdGVybmF0aXZlciBmb3InOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEFuc3dlcid9ID0gJ0xlZ2cgdGlsIHN2YXJhbHRlcm5hdGl2ZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBkb2VzblwndCBoYXZlIHNldmVyYWwgYW5zd2VycywgYSB0ZXh0YXJlYSB3aWxsIGJlIGRpc3BsYXllZC4nfSA9CiAgICAgICAgJ0RldHRlIHNww7hyc23DpWxldCBoYXIgaWtrZSBtdWxpZ2hldCBmb3Igc3ZhcmFsdGVybmF0aXZlci4gSGVyIHZpbCBkZXQga3VuIGJsaSB2aXN0IGVuIHRla3N0Ym9rcy4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBBbnN3ZXInfSA9ICdSZWRpZ2VyIHN2YXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gYmFjayB0byBlZGl0IHF1ZXN0aW9uJ30gPSAnZ8OlIHRpbGJha2UgZm9yIMOlIHJlZGlnZXJlIHNww7hyc23DpWwnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5T3ZlcnZpZXdOYXZCYXIKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbnRleHQgU2V0dGluZ3MnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTWF4LiBzaG93biBTdXJ2ZXlzIHBlciBwYWdlJ30gPSAnTWF4IGFudGFsbCBzcMO4cnJldW5kZXJzw7hrZWxzZXIgcHIgc2lkZSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlPdmVydmlld1NtYWxsCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gU2VuZGVyJ30gPSAnQXZzZW5kZXIgYXYgdmFyc2VsLWUtcG9zdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gU3ViamVjdCd9ID0gJ1RpdHRlbCBpIHZhcnNlbC1lLXBvc3QnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIEJvZHknfSA9ICdNZWxkaW5nIGkgdmFyc2VsLWUtcG9zdCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VkIEJ5J30gPSAnRW5kcmV0IGF2JzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleVpvb20KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBJbmZvcm1hdGlvbid9ID0gJ0luZm9ybWFzam9uIG9tIHNww7hycmV1bmRlcnPDuGtlbHNlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTZW50IHJlcXVlc3RzJ30gPSAnU2VuZHRlIGZvcmVzcMO4cnNsZXInOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUmVjZWl2ZWQgc3VydmV5cyd9ID0gJ01vdHRhdHRlIHNww7hycmV1bmRlcnPDuGtlbHNlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0cyBEZXRhaWxzJ30gPSAnRGV0YWxqZXIgb20gc3RhdGlzdGlra2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBEZXRhaWxzJ30gPSAnRGV0YWxqZXIgb20gc3DDuHJyZXVuZGVyc8O4a2Vsc2VuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBSZXN1bHRzIEdyYXBoJ30gPSAnR3JhZmlzayBmcmVtc3RpbGxpbmcgYXYgc3ZhcmVuZSBpIHNww7hycmV1bmRlcnPDuGtlbHNlbic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBzdGF0IHJlc3VsdHMuJ30gPSAnSW5nZW4gcmVzdWx0YXRlcic7CgogICAgIyBUZW1wbGF0ZTogUHVibGljU3VydmV5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXknfSA9ICdTcMO4cnJldW5kZXJzw7hrZWxzZSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQbGVhc2UgYW5zd2VyIHRoZXNlIHF1ZXN0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTaG93IG15IGFuc3dlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhlc2UgYXJlIHlvdXIgYW5zd2Vycyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgVGl0bGUnfSA9ICcnOwoKICAgICMgU3lzQ29uZmlnCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIFN1cnZleSBNb2R1bGUuJ30gPSAnRW4gbW9kdWwgZm9yIHNww7hycmV1bmRlcnPDuGtlbHNlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIG1vZHVsZSB0byBlZGl0IHN1cnZleSBxdWVzdGlvbnMuJ30gPSAnRW4gbW9kdWwgZm9yIMOlIHJlZGlnZXJlIHNww7hycmV1bmRlcnPDuGtlbHNlcic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbGwgcGFyYW1ldGVycyBmb3IgdGhlIFN1cnZleSBvYmplY3QgaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBbW91bnQgb2YgZGF5cyBhZnRlciBzZW5kaW5nIGEgc3VydmV5IG1haWwgaW4gd2hpY2ggbm8gbmV3IHN1cnZleSByZXF1ZXN0cyBhcmUgc2VudCB0byB0aGUgc2FtZSBjdXN0b21lci4gU2VsZWN0aW5nIDAgd2lsbCBhbHdheXMgc2VuZCB0aGUgc3VydmV5IG1haWwuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBib2R5IGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0KICAgICAgICAnU3RhbmRhcmQgbWVsZGluZyBpIHZhcnNlbC1lLXBvc3QgdGlsIGt1bmRlciBvbSBlbiBueSBzcMO4cnJldW5kZXJzw7hrZWxzZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZW5kZXIgZm9yIHRoZSBub3RpZmljYXRpb24gZW1haWwgdG8gY3VzdG9tZXJzIGFib3V0IG5ldyBzdXJ2ZXkuJ30gPQogICAgICAgICdTdGFuZGFyZCBhdnNlbmRlciBpIHZhcnNlbC1lLXBvc3QgdGlsIGt1bmRlciBvbSBlbiBueSBzcMO4cnJldW5kZXJzw7hrZWxzZS4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5cyB3aWxsIG5vdCBiZSBzZW50IHRvIHRoZSBjb25maWd1cmVkIGVtYWlsIGFkZHJlc3Nlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN1YmplY3QgZm9yIHRoZSBub3RpZmljYXRpb24gZW1haWwgdG8gY3VzdG9tZXJzIGFib3V0IG5ldyBzdXJ2ZXkuJ30gPQogICAgICAgICdTdGFuZGFyZCBvdmVyc2tyaWZ0IGkgdmFyc2VsLWUtcG9zdCB0aWwga3VuZGVyIG9tIGVuIG55IHNww7hycmV1bmRlcnPDuGtlbHNlLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgc3VydmV5IGxpc3QuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBtYXhpbXVtIGFtb3VudCBvZiBzdXJ2ZXlzIHRoYXQgZ2V0IHNlbnQgdG8gYSBjdXN0b21lciBwZXIgMzAgZGF5cy4gKCAwIG1lYW5zIG5vIG1heGltdW0sIGFsbCBzdXJ2ZXkgcmVxdWVzdHMgd2lsbCBiZSBzZW50KS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBhbW91bnQgaW4gaG91cnMgYSB0aWNrZXQgaGFzIHRvIGJlIGNsb3NlZCB0byB0cmlnZ2VyIHRoZSBzZW5kaW5nIG9mIGEgc3VydmV5LCAoIDAgbWVhbnMgc2VuZCBpbW1lZGlhdGVseSBhZnRlciBjbG9zZSApLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgaGVpZ2h0IGZvciBSaWNodGV4dCB2aWV3cyBmb3IgU3VydmV5Wm9vbSBlbGVtZW50cy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBzdXJ2ZXkgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW5zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VuYWJsZSBvciBkaXNhYmxlIHRoZSBTaG93Vm90ZURhdGEgc2NyZWVuIGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlIHRvIHNob3cgZGF0YSBvZiBhIHNwZWNpZmljIHN1cnZleSByZXN1bHQgd2hlbiB0aGUgY3VzdG9tZXIgdHJpZXMgdG8gYW5zd2VyIGEgc3VydmV5IHRoZSBzZWNvbmQgdGltZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciBzdXJ2ZXkgem9vbSBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Zyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBQdWJsaWNTdXJ2ZXkgb2JqZWN0IGluIHRoZSBwdWJsaWMgU3VydmV5IGFyZWEuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSWYgdGhpcyByZWdleCBtYXRjaGVzLCBubyBjdXN0b21lciBzdXJ2ZXkgd2lsbCBiZSBzZW50Lid9ID0gJ0h2aXMgZGVubmUgcmVnZXhlbiBzdGVtbWVyLCB2aWwgZGV0IGlra2UgYmxpIHNlbmR0IHV0IGVuIHNww7hycmV1bmRlcnPDuGtlbHNlIHRpbCBrdW5kZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BhcmFtZXRlcnMgZm9yIHRoZSBwYWdlcyAoaW4gd2hpY2ggdGhlIHN1cnZleXMgYXJlIHNob3duKSBvZiB0aGUgc21hbGwgc3VydmV5IG92ZXJ2aWV3Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1B1YmxpYyBTdXJ2ZXkuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBab29tIE1vZHVsZS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IGxpbWl0IHBlciBwYWdlIGZvciBTdXJ2ZXkgT3ZlcnZpZXcgIlNtYWxsIid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSBzdXJ2ZXksIGUuZy4gU3VydmV5IywgTXlTdXJ2ZXkjLiBUaGUgZGVmYXVsdCBpcyBTdXJ2ZXkjLid9ID0KICAgICAgICAnU3RhbmRhcmQgaWRlbnRpZmlrYXRvciBmb3IgZW4gdW5kZXJzw7hrbHNlLCBmLmVrcy4gU3DDuHJyZXVuZGVyc8O4a2Vsc2UjLCBNaW5TcMO4cnJldW5kZXJzw7hrZWxzZSMuIFN0YW5kYXJkIGVyIFN1cnZleSMuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBldmVudCBtb2R1bGUgdG8gc2VuZCBhdXRvbWF0aWNhbGx5IHN1cnZleSBlbWFpbCByZXF1ZXN0cyB0byBjdXN0b21lcnMgaWYgYSB0aWNrZXQgaXMgY2xvc2VkLid9ID0KICAgICAgICAnJzsKCiAgICAjCiAgICAjIE9CU09MRVRFIEVOVFJJRVMgRk9SIFJFRkVSRU5DRSwgRE8gTk9UIFRSQU5TTEFURSEKICAgICMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZWQgVGltZSd9ID0gJ1RpZCBlbmRyZXQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBCeSd9ID0gJ09wcHJldHRldCBhdic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGVkIFRpbWUnfSA9ICdUaWQgb3BwcmV0dGV0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1BsZWFzZSBhbnN3ZXIgdGhlIG5leHQgcXVlc3Rpb25zJ30gPSAnVmVubmxpZ3N0IHN2YXIgcMOlIGRlIG5lc3RlIHNww7hyc23DpWxlbmUnOwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6cHRfQlJfU3VydmV5OwoKdXNlIHV0Zjg7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFBQVN1cnZleQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnLSBDaGFuZ2UgU3RhdHVzIC0nfSA9ICctIEFsdGVyYXIgU3RhdHVzIC0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIE5ldyBTdXJ2ZXknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEVkaXQnfSA9ICdFZGl0YXIgUGVzcXVpc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEVkaXQgUXVlc3Rpb25zJ30gPSAnRWRpdGFyIFByZWd1bnRhcyBkYSBQZXNxdWlzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydRdWVzdGlvbiBFZGl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Fuc3dlciBFZGl0J30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NhblwndCBzZXQgbmV3IHN0YXR1cyEgTm8gcXVlc3Rpb25zIGRlZmluZWQuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXR1cyBjaGFuZ2VkLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGFuayB5b3UgZm9yIHlvdXIgZmVlZGJhY2suJ30gPSAnT2JyaWdhZG8gcGVsYSBzdWEgcGFydGljaXBhw6fDo28uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBzdXJ2ZXkgaXMgZmluaXNoZWQuJ30gPSAnQSBwZXNxdWlzYSBlc3TDoSBmaW5hbGl6YWRhLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDb21wbGV0ZSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbmNvbXBsZXRlJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoZWNrYm94IChMaXN0KSd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYWRpbyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSYWRpbyAoTGlzdCknfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3RhdHMgT3ZlcnZpZXcnfSA9ICdSZXN1bW8gZGUgRXN0YXTDrXN0aWNhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgRGVzY3JpcHRpb24nfSA9ICdEZXNjcmnDp8OjbyBkYSBQZXNxdWlzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgSW50cm9kdWN0aW9uJ30gPSAnSW50cm9kdcOnw6NvIGRhIFBlc3F1aXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1llcy9Obyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZZXNObyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydhbnN3ZXJlZCd9ID0gJ1Jlc3BvbmRpZG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnbm90IGFuc3dlcmVkJ30gPSAnTsOjbyByZXNwb25kaWRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRzIERldGFpbCd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydZb3UgaGF2ZSBhbHJlYWR5IGFuc3dlcmVkIHRoZSBzdXJ2ZXkuJ30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlIE5ldyBTdXJ2ZXknfSA9ICdDcmlhciBOb3ZhIFBlc3F1aXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0ludHJvZHVjdGlvbid9ID0gJ0ludHJvZHXDp8Ojbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnRlcm5hbCBEZXNjcmlwdGlvbid9ID0gJ0Rlc2NyacOnw6NvIEludGVybmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRWRpdCBHZW5lcmFsIEluZm8nfSA9ICdFZGl0YXIgSW5mb3JtYcOnw7VlcyBHZXJhaXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbCBJbmZvJ30gPSAnSW5mb3JtYcOnw6NvIEdlcmFsJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRzIE92ZXJ2aWV3IG9mJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlcXVlc3RzIFRhYmxlJ30gPSAnVGFiZWxhIGRlIFJlcXVpc2nDp8O1ZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2VuZCBUaW1lJ30gPSAnSG9yYSBkZSBFbnZpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydWb3RlIFRpbWUnfSA9ICdIb3JhIGRvIFZvdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFN0YXQgRGV0YWlscyd9ID0gJ0RldGFsaGVzIGRlIEVzdGF0w61zdGljYXMgZGEgUGVzcXVpc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gYmFjayB0byBzdGF0cyBvdmVydmlldyd9ID0gJ3ZvbHRhciBhbyByZXN1bW8gZGUgZXN0YXTDrXN0aWNhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHbyBCYWNrJ30gPSAnVm9sdGFyJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleUVkaXRRdWVzdGlvbnMKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUXVlc3Rpb25zJ30gPSAnRWRpdGFyIFByZWd1bnRhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUXVlc3Rpb24nfSA9ICdBZGljaW9uYXIgUHJlZ3VudGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZSB0aGUgcXVlc3Rpb24nfSA9ICdFc2NyZXZhIGEgcGVyZ3VudGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFF1ZXN0aW9ucyd9ID0gJ1Blcmd1bnRhcyBkYSBQZXNxdWlzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydRdWVzdGlvbid9ID0gJ1ByZWd1bnRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vIHF1ZXN0aW9ucyBzYXZlZCBmb3IgdGhpcyBzdXJ2ZXkuJ30gPSAnTmVuaHVtYSBxdWVzdMOjbyBzYWx2YSBwYXJhIGVzdGEgcGVzcXVpc2EuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUXVlc3Rpb24nfSA9ICdFZGl0YXIgUHJlZ3VudGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gYmFjayB0byBxdWVzdGlvbnMnfSA9ICd2b2x0YXIgw6BzIHByZWd1bnRhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQb3NzaWJsZSBBbnN3ZXJzIEZvcid9ID0gJ1Bvc3PDrXZlaXMgUmVzcG9zdGFzIFBhcmEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQWRkIEFuc3dlcid9ID0gJ0FkaWNpb25hciBSZXNwb3N0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGlzIGRvZXNuXCd0IGhhdmUgc2V2ZXJhbCBhbnN3ZXJzLCBhIHRleHRhcmVhIHdpbGwgYmUgZGlzcGxheWVkLid9ID0KICAgICAgICAnRXN0YSBwZXJndW50YSBuw6NvIHBvc3N1aSB2w6FyaWFzIHJlc3Bvc3RhcywgdW1hIMOhcmVhIGRlIHRleHRvIHNlcsOhIG1vc3RyYWRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQW5zd2VyJ30gPSAnRWRpdGFyIFJlc3Bvc3RhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIGJhY2sgdG8gZWRpdCBxdWVzdGlvbid9ID0gJ3ZvbHRhciBwYXJhIGVkaXRhciBwZXJndW50YSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlPdmVydmlld05hdkJhcgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29udGV4dCBTZXR0aW5ncyd9ID0gJ0NvbmZpZ3VyYcOnw7VlcyBkZSBDb250ZXh0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXguIHNob3duIFN1cnZleXMgcGVyIHBhZ2UnfSA9ICdNw6F4aW1vIGRlIFBlc3F1aXNhcyBtb3N0cmFkYXMgcG9yIHDDoWdpbmEnOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5T3ZlcnZpZXdTbWFsbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm90aWZpY2F0aW9uIFNlbmRlcid9ID0gJ1JlbWV0ZW50ZSBkYSBOb3RpZmljYcOnw6NvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBTdWJqZWN0J30gPSAnQXNzdW50byBkYSBOb3RpZmljYcOnw6NvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBCb2R5J30gPSAnQ29ycG8gZGEgTm90aWZpY2HDp8Ojbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDaGFuZ2VkIEJ5J30gPSAnTW9kaWZpY2FkbyBwb3InOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5Wm9vbQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEluZm9ybWF0aW9uJ30gPSAnSW5mb3JtYcOnw6NvIGRhIFBlc3F1aXNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbnQgcmVxdWVzdHMnfSA9ICdTb2xpY2l0YcOnw7VlcyBlbnZpYWRhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZWNlaXZlZCBzdXJ2ZXlzJ30gPSAnU29saWNpdGHDp8O1ZXMgcmVjZWJpZGFzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N0YXRzIERldGFpbHMnfSA9ICdEZXRhbGhlcyBkZSBFc3RhdMOtc3RpY2FzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBEZXRhaWxzJ30gPSAnRGV0YWxoZXMgZGEgUGVzcXVpc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFJlc3VsdHMgR3JhcGgnfSA9ICdHcsOhZmljb3MgZGUgUmVzdWx0YWRvcyBkYSBQZXNxdWlzYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydObyBzdGF0IHJlc3VsdHMuJ30gPSAnU2VtIHJlc3VsdGFkb3MgZGUgZXN0YXTDrXN0aWNhcy4nOwoKICAgICMgVGVtcGxhdGU6IFB1YmxpY1N1cnZleQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5J30gPSAnUGVzcXVpc2EnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFuc3dlciB0aGVzZSBxdWVzdGlvbnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBteSBhbnN3ZXJzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZXNlIGFyZSB5b3VyIGFuc3dlcnMnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFRpdGxlJ30gPSAnJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBTdXJ2ZXkgTW9kdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBIG1vZHVsZSB0byBlZGl0IHN1cnZleSBxdWVzdGlvbnMuJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBwYXJhbWV0ZXJzIGZvciB0aGUgU3VydmV5IG9iamVjdCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0Ftb3VudCBvZiBkYXlzIGFmdGVyIHNlbmRpbmcgYSBzdXJ2ZXkgbWFpbCBpbiB3aGljaCBubyBuZXcgc3VydmV5IHJlcXVlc3RzIGFyZSBzZW50IHRvIHRoZSBzYW1lIGN1c3RvbWVyLiBTZWxlY3RpbmcgMCB3aWxsIGFsd2F5cyBzZW5kIHRoZSBzdXJ2ZXkgbWFpbC4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IGJvZHkgZm9yIHRoZSBub3RpZmljYXRpb24gZW1haWwgdG8gY3VzdG9tZXJzIGFib3V0IG5ldyBzdXJ2ZXkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzZW5kZXIgZm9yIHRoZSBub3RpZmljYXRpb24gZW1haWwgdG8gY3VzdG9tZXJzIGFib3V0IG5ldyBzdXJ2ZXkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5cyB3aWxsIG5vdCBiZSBzZW50IHRvIHRoZSBjb25maWd1cmVkIGVtYWlsIGFkZHJlc3Nlcy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHN1YmplY3QgZm9yIHRoZSBub3RpZmljYXRpb24gZW1haWwgdG8gY3VzdG9tZXJzIGFib3V0IG5ldyBzdXJ2ZXkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyBhbiBvdmVydmlldyBtb2R1bGUgdG8gc2hvdyB0aGUgc21hbGwgdmlldyBvZiBhIHN1cnZleSBsaXN0Lid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgbWF4aW11bSBhbW91bnQgb2Ygc3VydmV5cyB0aGF0IGdldCBzZW50IHRvIGEgY3VzdG9tZXIgcGVyIDMwIGRheXMuICggMCBtZWFucyBubyBtYXhpbXVtLCBhbGwgc3VydmV5IHJlcXVlc3RzIHdpbGwgYmUgc2VudCkuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgYW1vdW50IGluIGhvdXJzIGEgdGlja2V0IGhhcyB0byBiZSBjbG9zZWQgdG8gdHJpZ2dlciB0aGUgc2VuZGluZyBvZiBhIHN1cnZleSwgKCAwIG1lYW5zIHNlbmQgaW1tZWRpYXRlbHkgYWZ0ZXIgY2xvc2UgKS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBkZWZhdWx0IGhlaWdodCBmb3IgUmljaHRleHQgdmlld3MgZm9yIFN1cnZleVpvb20gZWxlbWVudHMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgc2hvd24gY29sdW1ucyBpbiB0aGUgc3VydmV5IG92ZXJ2aWV3LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29sdW1ucy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgb3IgZGlzYWJsZSB0aGUgU2hvd1ZvdGVEYXRhIHNjcmVlbiBpbiB0aGUgcHVibGljIGludGVyZmFjZSB0byBzaG93IGRhdGEgb2YgYSBzcGVjaWZpYyBzdXJ2ZXkgcmVzdWx0IHdoZW4gdGhlIGN1c3RvbWVyIHRyaWVzIHRvIGFuc3dlciBhIHN1cnZleSB0aGUgc2Vjb25kIHRpbWUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3Igc3VydmV5IHpvb20gaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydGcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgUHVibGljU3VydmV5IG9iamVjdCBpbiB0aGUgcHVibGljIFN1cnZleSBhcmVhLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0lmIHRoaXMgcmVnZXggbWF0Y2hlcywgbm8gY3VzdG9tZXIgc3VydmV5IHdpbGwgYmUgc2VudC4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgc3VydmV5cyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBzdXJ2ZXkgb3ZlcnZpZXcuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIFN1cnZleS4nfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IE92ZXJ2aWV3ICJTbWFsbCIgTGltaXQnfSA9ICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFpvb20gTW9kdWxlLid9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgbGltaXQgcGVyIHBhZ2UgZm9yIFN1cnZleSBPdmVydmlldyAiU21hbGwiJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoZSBpZGVudGlmaWVyIGZvciBhIHN1cnZleSwgZS5nLiBTdXJ2ZXkjLCBNeVN1cnZleSMuIFRoZSBkZWZhdWx0IGlzIFN1cnZleSMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGlja2V0IGV2ZW50IG1vZHVsZSB0byBzZW5kIGF1dG9tYXRpY2FsbHkgc3VydmV5IGVtYWlsIHJlcXVlc3RzIHRvIGN1c3RvbWVycyBpZiBhIHRpY2tldCBpcyBjbG9zZWQuJ30gPQogICAgICAgICcnOwoKICAgICMKICAgICMgT0JTT0xFVEUgRU5UUklFUyBGT1IgUkVGRVJFTkNFLCBETyBOT1QgVFJBTlNMQVRFIQogICAgIwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlZCBUaW1lJ30gPSAnSG9yYSBkZSBNb2RpZmljYcOnw6NvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZWQgQnknfSA9ICdDcmlhZG8gcG9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZWQgVGltZSd9ID0gJ0hvcmEgZGUgQ3Jpw6fDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFuc3dlciB0aGUgbmV4dCBxdWVzdGlvbnMnfSA9ICdQb3IgZmF2b3IsIHJlc3BvbmRhIGFzIHNlZ3VpbnRlcyBwZXJndW50YXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5Iyd9ID0gJ1Blc3F1aXNhIyc7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyBDb3B5cmlnaHQgKEMpIDIwMTIgRkNDTiAtIFJ1aSBGcmFuY2lzY28gPHJ1aS5mcmFuY2lzY29AZmNjbi5wdD4KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpMYW5ndWFnZTo6cHRfUFRfU3VydmV5OwoKdXNlIHV0Zjg7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydDcmVhdGUgTmV3IFN1cnZleSd9ID0gJ0NyaWFyIG5vdm8gaW5xdcOpcml0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJbnRyb2R1Y3Rpb24nfSA9ICdJbnRyb2R1w6fDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW50ZXJuYWwgRGVzY3JpcHRpb24nfSA9ICdEZXNjcmnDp8OjbyBpbnRlcm5hJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBFZGl0J30gPSAnRWRpdGFyIGlucXXDqXJpdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR2VuZXJhbCBJbmZvJ30gPSAnSW5mb3JtYcOnw6NvIGdlbsOpcmljYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0cyBPdmVydmlldyd9ID0gJ1Zpc3RhIGRlIGVzdGFkbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSZXF1ZXN0cyBUYWJsZSd9ID0gJ1RhYmVsYSBkZSBwZWRpZG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbmQgVGltZSd9ID0gJ0hvcmEgZGUgZW52aW8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVm90ZSBUaW1lJ30gPSAnSG9yYSBkZSByZXNwb3N0YSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZXRhaWxzJ30gPSAnRGV0YWxoZXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gcXVlc3Rpb25zIHNhdmVkIGZvciB0aGlzIHN1cnZleS4nfSA9ICdOw6NvIGV4aXN0ZW0gcGVyZ3VudGFzIG5vIGlucXXDqXJpdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFN0YXQgRGV0YWlscyd9ID0gJ0VzdGF0w61zdGljYSBkZXRhbGhhIGRvIGlucXXDqXJpdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gYmFjayB0byBzdGF0cyBvdmVydmlldyd9ID0gJ3ZvbHRhciDDoCB2aXN0YSBkZSBlc3RhdMOtc3RpY2FzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dvIEJhY2snfSA9ICd2b2x0YXInOwoKICAgICMgVGVtcGxhdGU6IEFnZW50U3VydmV5RWRpdFF1ZXN0aW9ucwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IEVkaXQgUXVlc3Rpb25zJ30gPSAnRWRpdGFyIHBlcmd1bnRhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBZGQgUXVlc3Rpb24nfSA9ICdBZGljaW9uYXIgcGVyZ3VudGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZSB0aGUgcXVlc3Rpb24nfSA9ICdFc2NyZXZlciBhIHBlcmd1bnRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBRdWVzdGlvbnMnfSA9ICdQZXJndW50YXMgZG8gaW5xdcOpcml0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydRdWVzdGlvbid9ID0gJ1Blcmd1bnRhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUXVlc3Rpb24nfSA9ICdFZGl0YXIgcGVyZ3VudGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnZ28gYmFjayB0byBxdWVzdGlvbnMnfSA9ICd2b2x0YXIgw6BzIHBlcmd1bnRhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydQb3NzaWJsZSBBbnN3ZXJzIEZvcid9ID0gJ1Jlc3Bvc3RhcyBwb3Nzw612ZWlzJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FkZCBBbnN3ZXInfSA9ICdBZGljaW9uYXIgcmVzcG9zdGEnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBkb2VzblwndCBoYXZlIHNldmVyYWwgYW5zd2VycywgYSB0ZXh0YXJlYSB3aWxsIGJlIGRpc3BsYXllZC4nfSA9ICdOw6NvIGV4aXN0ZW0gdsOhcmlhcyByZXNwb3N0YXMsIHZhaSBzZXIgbW9zdHJhZGEgdW1hIMOhcmVhIGRlIHRleHRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgQW5zd2VyJ30gPSAnRWRpdGFyIHJlc3Bvc3RhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J2dvIGJhY2sgdG8gZWRpdCBxdWVzdGlvbid9ID0gJ3ZvbHRhciDDoCBlZGnDp8OjbyBkYSBwZXJndW50YSc7CgogICAgIyBUZW1wbGF0ZTogQWdlbnRTdXJ2ZXlPdmVydmlld05hdkJhcgogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ29udGV4dCBTZXR0aW5ncyd9ID0gJ0RlZmluacOnw7VlcyBkZSBjb250ZXh0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydNYXguIHNob3duIFN1cnZleXMgcGVyIHBhZ2UnfSA9ICdOw7ptZXJvIGRlIGlucXXDqXJpdG9zIHBvciBww6FnaW5hJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleU92ZXJ2aWV3U21hbGwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J05vdGlmaWNhdGlvbiBTZW5kZXInfSA9ICdSZW1ldGVudGUgZGEgbm90aWZpY2HDp8Ojbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gU3ViamVjdCd9ID0gJ0Fzc3VudG8gZGEgbm90aWZpY2HDp8Ojbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydOb3RpZmljYXRpb24gQm9keSd9ID0gJ1RleHRvIGRhIG5vdGlmaWNhw6fDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ3JlYXRlZCBUaW1lJ30gPSAnQ3JpYWRvIGVtJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NyZWF0ZWQgQnknfSA9ICdDcmlhZG8gcG9yJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NoYW5nZWQgVGltZSd9ID0gJ01vZGlmaWNhZG8gZW0nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQ2hhbmdlZCBCeSd9ID0gJ01vZGlmaWNhZG8gcG9yJzsKCiAgICAjIFRlbXBsYXRlOiBBZ2VudFN1cnZleVpvb20KICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBJbmZvcm1hdGlvbid9ID0gJ0luZm9ybWHDp8OjbyBkZSBpbnF1w6lyaXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1NlbnQgcmVxdWVzdHMnfSA9ICdQZWRpZG9zIGVudmlhZG9zJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JlY2VpdmVkIHN1cnZleXMnfSA9ICdJbnF1w6lyaXRvcyByZXNwb25kaWRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFZGl0IEdlbmVyYWwgSW5mbyd9ID0gJ0VkaXRhciBpbmZvcm1hw6fDo28gZ2Vuw6lyaWNhJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0VkaXQgUXVlc3Rpb25zJ30gPSAnRWRpdGFyIHBlcmd1bnRhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdGF0cyBEZXRhaWxzJ30gPSAnRGV0YWxoZXMgZGUgZXN0YXTDrXN0aWNhcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgRGV0YWlscyd9ID0gJ0RldGFsaGVzIGRvIGlucXXDqXJpdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IFJlc3VsdHMgR3JhcGgnfSA9ICdHcsOhZmljbyBkZSByZXN1bHRhZG9zIGRvIGlucXXDqXJpdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnTm8gc3RhdCByZXN1bHRzLid9ID0gJ07Dum1lcm8gZGUgcmVzcG9zdGFzJzsKCiAgICAjIFRlbXBsYXRlOiBQdWJsaWNTdXJ2ZXkKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSd9ID0gJ0lucXXDqXJpdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGxlYXNlIGFuc3dlciB0aGUgbmV4dCBxdWVzdGlvbnMnfSA9ICdQcm8gZmF2b3IsIHJlc3BvbmRhIMOgcyBzZWd1aW50ZXMgcGVyZ3VudGFzJzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBTdXJ2ZXkgTW9kdWxlLid9ID0gJ03Ds2R1bG8gZGUgaW5xdcOpcml0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQSBtb2R1bGUgdG8gZWRpdCBzdXJ2ZXkgcXVlc3Rpb25zLid9ID0gJ03Ds2R1bG8gcGFyYSBlZGl0YXIgYXMgcGVyZ3VudGFzIGRvcyBpbnF1w6lyaXRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEYXlzIHN0YXJ0aW5nIGZyb20gdGhlIGxhdGVzdCBjdXN0b21lciBzdXJ2ZXkgZW1haWwgYmV0d2VlbiBubyBjdXN0b21lciBzdXJ2ZXkgZW1haWwgaXMgc2VudCwgKCAwIG1lYW5zIEFsd2F5cyBzZW5kIGl0ICkgLid9ID0gJ07Dum1lcm8gZGUgZGlhcyBlbnRyZSBlbnZpbyBub3RpZmljYcOnw7VlcyBwb3IgY2xpZW50ZSwgKDAgc2lnbmlmaWNhIGVudmlhciBzZW1wcmUpJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgYm9keSBmb3IgdGhlIG5vdGlmaWNhdGlvbiBlbWFpbCB0byBjdXN0b21lcnMgYWJvdXQgbmV3IHN1cnZleS4nfSA9ICdDb3JwbyBwb3Igb21pc3PDo28gZG8gZW1haWwgZGEgbm90aWZpY2HDp8OjbyBkZSBpbnF1w6lyaXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmF1bHQgc2VuZGVyIGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0gJ1JlbWV0ZW50ZSBwb3Igb21pc3PDo28gZG8gZW1haWwgZGEgbm90aWZpY2HDp8OjbyBkZSBpbnF1w6lyaXRvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleXMgd2lsbCBub3QgYmUgc2VudCB0byB0aGUgY29uZmlndXJlZCBlbWFpbCBhZGRyZXNzZXMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmYXVsdCBzdWJqZWN0IGZvciB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIHRvIGN1c3RvbWVycyBhYm91dCBuZXcgc3VydmV5Lid9ID0gJ0Fzc3VudG8gcG9yIG9taXNzw6NvIGRvIGVtYWlsIGRhIG5vdGlmaWNhw6fDo28gZGUgaW5xdcOpcml0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIGFuIG92ZXJ2aWV3IG1vZHVsZSB0byBzaG93IHRoZSBzbWFsbCB2aWV3IG9mIGEgc3VydmV5IGxpc3QuJ30gPSAnRGVmaW5lIGEgdmlzdGEgcGVxdWVuYSBjb20gYSBsaXN0YSBkZSBpbnF1w6lyaXRvcyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZpbmVzIHRoZSBzaG93biBjb2x1bW5zIGluIHRoZSBzdXJ2ZXkgb3ZlcnZpZXcuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4uJ30gPSAnRGVmaW5lIGFzIGNvbHVuYXMgYSBtb3N0cmFyIG5hIHZpc3RhIGRlIGlucXXDqXJpdG9zLiBOw6NvIGludGVyZmVyZSBjb20gYSBwb3Npw6fDo28gZGFzIGNvbHVuYXMnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3Igc3VydmV5IHpvb20gaW4gdGhlIGFnZW50IGludGVyZmFjZS4nfSA9ICdNw7NkdWxvIGRlIGF1dG8gcmVnaXN0byBkZSBpbnF1w6lyaXRvcyBkZSBjbGllbnRlIG5vIGludGVyZmFjZSBkZSBhZ2VudGUnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIFB1YmxpY1N1cnZleSBvYmplY3QgaW4gdGhlIHB1YmxpYyBTdXJ2ZXkgYXJlYS4nfSA9ICdNw7NkdWxvIGRlIGF1dG8gcmVnaXN0byBkZSBpbnF1w6lyaXRvcyBkZSBjbGllbnRlIG5vIGludGVyZmFjZSBww7pibGljbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydJZiB0aGlzIHJlZ2V4IG1hdGNoZXMsIG5vIGN1c3RvbWVyIHN1cnZleSB3aWxsIGJlIHNlbnQuJ30gPSAnU2UgYSBleHByZXNzw6NvIHJlZ3VsYXIgY29pbmNpZGlyLCBuw6NvIHNlcsOhIGVudmlhZG8gdW0gaW5xdcOpcml0by4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUGFyYW1ldGVycyBmb3IgdGhlIHBhZ2VzIChpbiB3aGljaCB0aGUgc3VydmV5cyBhcmUgc2hvd24pIG9mIHRoZSBzbWFsbCBzdXJ2ZXkgb3ZlcnZpZXcuJ30gPSAnUGFyYW1ldHJpemHDp8OjbyBkYXMgcMOhZ2luYXMgZGEgdmlzdGEgZ2VyYWwgZGUgaW5xdcOpcml0b3MnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUHVibGljIFN1cnZleS4nfSA9ICdJbnF1w6lyaXRvIHDDumJsaWNvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBPdmVydmlldyAiU21hbGwiIExpbWl0J30gPSAnTGltaXRlIHBlcXVlbm8gbmEgdmlzdGEgZGUgaW5xdcOpcml0byc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgWm9vbSBNb2R1bGUuJ30gPSAnTcOzZHVsbyBkZSBkZXRhbGhlIGRlIGlucXXDqXJpdG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IGxpbWl0IHBlciBwYWdlIGZvciBTdXJ2ZXkgT3ZlcnZpZXcgIlNtYWxsIid9ID0gJ07Dum1lcm8gZGUgaW5xdcOpcml0b3MgcG9yIHDDoWdpbmEgbmEgdmlzdGEgcGVxdWVuYSc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUaGUgaWRlbnRpZmllciBmb3IgYSBzdXJ2ZXksIGUuZy4gU3VydmV5IywgTXlTdXJ2ZXkjLiBUaGUgZGVmYXVsdCBpcyBTdXJ2ZXkjLid9ID0gJ0lkZW50aWZpY2Fkb3IgcGFyYSBvcyBpbnF1w6lyaXRvcy4gZXguIFN1cnZleSMsIE15U3VydmV5Iy4gUG9yIG9taXNzw6NvIMOpIFN1cnZleSMgJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpY2tldCBldmVudCBtb2R1bGUgdG8gc2VuZCBhdXRvbWF0aWNhbGx5IHN1cnZleSBlbWFpbCByZXF1ZXN0cyB0byBjdXN0b21lcnMgaWYgYSB0aWNrZXQgZ2V0cyBjbG9zZWQuJ30gPSAnTcOzZHVsbyBkZSBlbnZpbyBkZSBub3RpZmljYcOnw7VlcyBhdXRvbcOhdGljYXMgcGFyYSBjbGllbnRlcyBxdWFuZG8gdW0gdGlja2V0IMOpIGZlY2hhZG8nOwoKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBJbnRyb2R1Y3Rpb24nfSA9ICdJbnRyb2R1w6fDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5IERlc2NyaXB0aW9uJ30gPSAnRGVzY3Jpw6fDo28nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBmaWVsZCBpcyByZXF1aXJlZCd9ID0gJ0NhbXBvIG9icmlnYXTDs3Jpbyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydTdXJ2ZXkgSW50cm9kdWN0aW9uJ30gPSAnSW50cm9kdcOnw6NvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1N1cnZleSBEZXNjcmlwdGlvbid9ID0gJ0Rlc2NyacOnw6NvJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0NvbXBsZXRlJ30gPSAnQ29tcGxldG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5jb21wbGV0ZSd9ID0gJ0luY29tcGxldG8nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU3VydmV5Iyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydEZWZhdWx0IHZhbHVlJ30gPSAnVmFsb3IgcG9yIG9taXNzw6NvJzsKCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydFbmFibGUgb3IgZGlzYWJsZSB0aGUgU2hvd1ZvdGVEYXRhIHNjcmVlbiBvbiBwdWJsaWMgaW50ZXJmYWNlIHRvIHNob3cgZGF0YSBvZiBhbiBzcGVjaWZpYyB2b3RhdGlvbiB3aGVuIGN1c3RvbWVyIHRyaWVzIHRvIGFuc3dlciBhIHN1cnZleSBieSBzZWNvbmQgdGltZS4nfSA9ICdBdGl2YSBvdSBpbmF0aXZhIG8gZWNyw6MgU2hvd1ZvdGVEYXRhIG5vIGludGVyZmFjZSBww7pibGljbywgcXVhbmRvIG8gY2xpZW50ZSB0ZW50YSByZXNwb25kZXIgYW8gaW5xdcOpcml0byBwZWxhIHNlZ3VuZGEgdmV6JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0FsbCBwYXJhbWV0ZXJzIGZvciB0aGUgU3VydmV5IG9iamVjdCBpbiB0aGUgYWdlbnQgaW50ZXJmYWNlLid9ID0gJ1RvZG9zIG9zIHBhcsOibWV0cm9zIHBhcmEgbyBvYmpldG8gSW5xdcOpcml0byBubyBpbnRlcmZhY2UgZGUgYWdlbnRlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgaGVpZ2h0IGZvciBSaWNodGV4dCB2aWV3cyBmb3IgU3VydmV5Wm9vbSBlbGVtZW50cy4nfSA9ICdEZWZpbmUgYSBhbHR1cmEgcG9yIG9taXNzw6NvIHBhcmEgbyBlZGl0b3IgcnRmIHBhcmEgb3MgZWxlbWVudG9zIGRvIGlucXXDqXJpdG8nOwoKICAgICMKICAgICMgT0JTT0xFVEUgRU5UUklFUyBGT1IgUkVGRVJFTkNFLCBETyBOT1QgVFJBTlNMQVRFIQogICAgIwoKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OlN1cnZleTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBEaWdlc3Q6Ok1ENTsKdXNlIEtlcm5lbDo6U3lzdGVtOjpDdXN0b21lclVzZXI7CnVzZSBLZXJuZWw6OlN5c3RlbTo6RW1haWw7CnVzZSBLZXJuZWw6OlN5c3RlbTo6SFRNTFV0aWxzOwp1c2UgS2VybmVsOjpTeXN0ZW06OlRpY2tldDsKdXNlIE1haWw6OkFkZHJlc3M7Cgp1c2UgdmFycyBxdyhASVNBICRWRVJTSU9OKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6U3VydmV5IC0gc3VydmV5IGxpYgoKPWhlYWQxIFNZTk9QU0lTCgpBbGwgc3VydmV5IGZ1bmN0aW9ucy4gRS4gZy4gdG8gYWRkIHN1cnZleSBvciBhbmQgZnVuY3Rpb25zLgoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIG5ldygpCgpjcmVhdGUgYW4gb2JqZWN0CgogICAgdXNlIEtlcm5lbDo6Q29uZmlnOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpFbmNvZGU7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkxvZzsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6VGltZTsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6REI7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok1haW47CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OlVzZXI7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OlN1cnZleTsKCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gS2VybmVsOjpDb25maWctPm5ldygpOwogICAgbXkgJEVuY29kZU9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpFbmNvZGUtPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICk7CiAgICBteSAkTG9nT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkxvZy0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIEVuY29kZU9iamVjdCA9PiAkRW5jb2RlT2JqZWN0LAogICAgKTsKICAgIG15ICRUaW1lT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OlRpbWUtPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBMb2dPYmplY3QgICAgPT4gJExvZ09iamVjdCwKICAgICk7CiAgICBteSAkTWFpbk9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpNYWluLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICApOwogICAgbXkgJERCT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkRCLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICAgICAgTWFpbk9iamVjdCAgID0+ICRNYWluT2JqZWN0LAogICAgKTsKICAgIG15ICRVc2VyT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OlVzZXItPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBMb2dPYmplY3QgICAgPT4gJExvZ09iamVjdCwKICAgICAgICBNYWluT2JqZWN0ICAgPT4gJE1haW5PYmplY3QsCiAgICAgICAgVGltZU9iamVjdCAgID0+ICRUaW1lT2JqZWN0LAogICAgICAgIERCT2JqZWN0ICAgICA9PiAkREJPYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICApOwogICAgbXkgJFN1cnZleU9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpTdXJ2ZXktPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBMb2dPYmplY3QgICAgPT4gJExvZ09iamVjdCwKICAgICAgICBUaW1lT2JqZWN0ICAgPT4gJFRpbWVPYmplY3QsCiAgICAgICAgREJPYmplY3QgICAgID0+ICREQk9iamVjdCwKICAgICAgICBNYWluT2JqZWN0ICAgPT4gJE1haW5PYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICAgICAgVXNlck9iamVjdCAgID0+ICRVc2VyT2JqZWN0LAogICAgKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBjaGVjayBuZWVkZWQgb2JqZWN0cwogICAgZm9yIG15ICRPYmplY3QgKAogICAgICAgIHF3KENvbmZpZ09iamVjdCBMb2dPYmplY3QgVGltZU9iamVjdCBEQk9iamVjdCBNYWluT2JqZWN0IEVuY29kZU9iamVjdCBVc2VyT2JqZWN0KQogICAgICAgICkKICAgIHsKICAgICAgICAkU2VsZi0+eyRPYmplY3R9ID0gJFBhcmFteyRPYmplY3R9IHx8IGRpZSAiR290IG5vICRPYmplY3QhIjsKICAgIH0KCiAgICAkU2VsZi0+e0hUTUxVdGlsc09iamVjdH0gPSAkUGFyYW17SFRNTFV0aWxzT2JqZWN0fQogICAgICAgIHx8IEtlcm5lbDo6U3lzdGVtOjpIVE1MVXRpbHMtPm5ldyggJXskU2VsZn0gKTsKCiAgICAkU2VsZi0+e1NlbmRtYWlsT2JqZWN0fSA9ICRQYXJhbXtTZW5kbWFpbE9iamVjdH0gfHwgS2VybmVsOjpTeXN0ZW06OkVtYWlsLT5uZXcoICV7JFNlbGZ9ICk7CgogICAgJFNlbGYtPntDdXN0b21lclVzZXJPYmplY3R9ID0gJFBhcmFte0N1c3RvbWVyVXNlck9iamVjdH0KICAgICAgICB8fCBLZXJuZWw6OlN5c3RlbTo6Q3VzdG9tZXJVc2VyLT5uZXcoICV7JFNlbGZ9ICk7CiAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0gPSAkUGFyYW17VGlja2V0T2JqZWN0fSB8fCBLZXJuZWw6OlN5c3RlbTo6VGlja2V0LT5uZXcoICV7JFNlbGZ9ICk7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBTdXJ2ZXlMaXN0KCkKCnRvIGdldCBhIGFycmF5IGxpc3Qgb2YgYWxsIHN1cnZleSBpdGVtcwoKICAgIG15IEBMaXN0ID0gJFN1cnZleU9iamVjdC0+U3VydmV5TGlzdCgpOwoKPWN1dAoKc3ViIFN1cnZleUxpc3QgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBzdXJ2ZXkgbGlzdAogICAgJFNlbGYtPntEQk9iamVjdH0tPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICdTRUxFQ1QgaWQgRlJPTSBzdXJ2ZXkgT1JERVIgQlkgY3JlYXRlX3RpbWUgREVTQycsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdHMKICAgIG15IEBMaXN0OwogICAgd2hpbGUgKCBteSBAUm93ID0gJFNlbGYtPntEQk9iamVjdH0tPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICBwdXNoIEBMaXN0LCAkUm93WzBdOwogICAgfQoKICAgIHJldHVybiBATGlzdDsKfQoKPWl0ZW0gU3VydmV5R2V0KCkKCnRvIGdldCBhbGwgYXR0cmlidXRlcyBvZiBhIHN1cnZleQoKICAgIG15ICVTdXJ2ZXkgPSAkU3VydmV5T2JqZWN0LT5TdXJ2ZXlHZXQoCiAgICAgICAgU3VydmV5SUQgPT4gMTIzCiAgICApOwoKPWN1dAoKc3ViIFN1cnZleUdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17U3VydmV5SUR9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBTdXJ2ZXlJRCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgcXVvdGUKICAgICRQYXJhbXtTdXJ2ZXlJRH0gPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVvdGUoICRQYXJhbXtTdXJ2ZXlJRH0sICdJbnRlZ2VyJyApOwoKICAgICMgZ2V0IGFsbCBhdHRyaWJ1dGVzIG9mIGEgc3VydmV5CiAgICAkU2VsZi0+e0RCT2JqZWN0fS0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gIlNFTEVDVCBpZCwgc3VydmV5bnVtYmVyLCB0aXRsZSwgaW50cm9kdWN0aW9uLCBkZXNjcmlwdGlvbiwiCiAgICAgICAgICAgIC4gIiBub3RpZmljYXRpb25fc2VuZGVyLCBub3RpZmljYXRpb25fc3ViamVjdCwgbm90aWZpY2F0aW9uX2JvZHksICIKICAgICAgICAgICAgLiAiIHN0YXR1cywgY3JlYXRlX3RpbWUsIGNyZWF0ZV9ieSwgY2hhbmdlX3RpbWUsIGNoYW5nZV9ieSAiCiAgICAgICAgICAgIC4gIiBGUk9NIHN1cnZleSBXSEVSRSBpZCA9ICRQYXJhbXtTdXJ2ZXlJRH0iLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgJURhdGE7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkU2VsZi0+e0RCT2JqZWN0fS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICREYXRhe1N1cnZleUlEfSAgICAgICAgICAgID0gJFJvd1swXTsKICAgICAgICAkRGF0YXtTdXJ2ZXlOdW1iZXJ9ICAgICAgICA9ICRSb3dbMV07CiAgICAgICAgJERhdGF7VGl0bGV9ICAgICAgICAgICAgICAgPSAkUm93WzJdOwogICAgICAgICREYXRhe0ludHJvZHVjdGlvbn0gICAgICAgID0gJFJvd1szXTsKICAgICAgICAkRGF0YXtEZXNjcmlwdGlvbn0gICAgICAgICA9ICRSb3dbNF07CiAgICAgICAgJERhdGF7Tm90aWZpY2F0aW9uU2VuZGVyfSAgPSAkUm93WzVdOwogICAgICAgICREYXRhe05vdGlmaWNhdGlvblN1YmplY3R9ID0gJFJvd1s2XTsKICAgICAgICAkRGF0YXtOb3RpZmljYXRpb25Cb2R5fSAgICA9ICRSb3dbN107CiAgICAgICAgJERhdGF7U3RhdHVzfSAgICAgICAgICAgICAgPSAkUm93WzhdOwogICAgICAgICREYXRhe0NyZWF0ZVRpbWV9ICAgICAgICAgID0gJFJvd1s5XTsKICAgICAgICAkRGF0YXtDcmVhdGVCeX0gICAgICAgICAgICA9ICRSb3dbMTBdOwogICAgICAgICREYXRhe0NoYW5nZVRpbWV9ICAgICAgICAgID0gJFJvd1sxMV07CiAgICAgICAgJERhdGF7Q2hhbmdlQnl9ICAgICAgICAgICAgPSAkUm93WzEyXTsKICAgIH0KCiAgICBpZiAoICElRGF0YSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5vIHN1Y2ggU3VydmV5SUQgJFBhcmFte1N1cnZleUlEfSEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgc2V0IGRlZmF1bHQgdmFsdWVzCiAgICAkRGF0YXtOb3RpZmljYXRpb25TZW5kZXJ9ICB8fD0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1N1cnZleTo6Tm90aWZpY2F0aW9uU2VuZGVyJyk7CiAgICAkRGF0YXtOb3RpZmljYXRpb25TdWJqZWN0fSB8fD0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1N1cnZleTo6Tm90aWZpY2F0aW9uU3ViamVjdCcpOwogICAgJERhdGF7Tm90aWZpY2F0aW9uQm9keX0gICAgfHw9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdTdXJ2ZXk6Ok5vdGlmaWNhdGlvbkJvZHknKTsKCiAgICAjIGdldCBxdWV1ZXMKICAgICREYXRhe1F1ZXVlc30gPSAkU2VsZi0+U3VydmV5UXVldWVHZXQoCiAgICAgICAgU3VydmV5SUQgPT4gJFBhcmFte1N1cnZleUlEfSwKICAgICk7CgogICAgIyBhZGRlZCBDcmVhdGVCeQogICAgaWYgKCAhJFBhcmFte1B1YmxpY30gKSB7CiAgICAgICAgbXkgJUNyZWF0ZVVzZXJJbmZvID0gJFNlbGYtPntVc2VyT2JqZWN0fS0+R2V0VXNlckRhdGEoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkRGF0YXtDcmVhdGVCeX0sCiAgICAgICAgICAgIENhY2hlZCA9PiAxLAogICAgICAgICk7CiAgICAgICAgJERhdGF7Q3JlYXRlVXNlckxvZ2lufSAgICAgPSAkQ3JlYXRlVXNlckluZm97VXNlckxvZ2lufTsKICAgICAgICAkRGF0YXtDcmVhdGVVc2VyRmlyc3RuYW1lfSA9ICRDcmVhdGVVc2VySW5mb3tVc2VyRmlyc3RuYW1lfTsKICAgICAgICAkRGF0YXtDcmVhdGVVc2VyTGFzdG5hbWV9ICA9ICRDcmVhdGVVc2VySW5mb3tVc2VyTGFzdG5hbWV9OwoKICAgICAgICAjIGFkZGVkIENoYW5nZUJ5CiAgICAgICAgbXkgJUNoYW5nZVVzZXJJbmZvID0gJFNlbGYtPntVc2VyT2JqZWN0fS0+R2V0VXNlckRhdGEoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkRGF0YXtDaGFuZ2VCeX0sCiAgICAgICAgICAgIENhY2hlZCA9PiAxLAogICAgICAgICk7CiAgICAgICAgJERhdGF7Q2hhbmdlVXNlckxvZ2lufSAgICAgPSAkQ2hhbmdlVXNlckluZm97VXNlckxvZ2lufTsKICAgICAgICAkRGF0YXtDaGFuZ2VVc2VyRmlyc3RuYW1lfSA9ICRDaGFuZ2VVc2VySW5mb3tVc2VyRmlyc3RuYW1lfTsKICAgICAgICAkRGF0YXtDaGFuZ2VVc2VyTGFzdG5hbWV9ICA9ICRDaGFuZ2VVc2VySW5mb3tVc2VyTGFzdG5hbWV9OwogICAgfQoKICAgIHJldHVybiAlRGF0YTsKfQoKPWl0ZW0gU3VydmV5U3RhdHVzU2V0KCkKCnRvIHNldCBhIG5ldyBzdXJ2ZXkgc3RhdHVzIChWYWxpZCwgSW52YWxpZCwgTWFzdGVyKQoKICAgICRTdGF0dXNTZXQgPSAkU3VydmV5T2JqZWN0LT5TdXJ2ZXlTdGF0dXNTZXQoCiAgICAgICAgU3VydmV5SUQgID0+IDEyMywKICAgICAgICBOZXdTdGF0dXMgPT4gJ01hc3RlcicKICAgICk7Cgo9Y3V0CgpzdWIgU3VydmV5U3RhdHVzU2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFN1cnZleUlEIE5ld1N0YXR1cykpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBxdW90ZQogICAgJFBhcmFte05ld1N0YXR1c30gPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVvdGUoICRQYXJhbXtOZXdTdGF0dXN9ICk7CiAgICAkUGFyYW17U3VydmV5SUR9ID0gJFNlbGYtPntEQk9iamVjdH0tPlF1b3RlKCAkUGFyYW17U3VydmV5SUR9LCAnSW50ZWdlcicgKTsKCiAgICAjIGdldCBjdXJyZW50IHN0YXR1cwogICAgJFNlbGYtPntEQk9iamVjdH0tPlByZXBhcmUoCiAgICAgICAgU1FMICAgPT4gIlNFTEVDVCBzdGF0dXMgRlJPTSBzdXJ2ZXkgV0hFUkUgaWQgPSAkUGFyYW17U3VydmV5SUR9IiwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICRTdGF0dXMgPSAnJzsKICAgIHdoaWxlICggbXkgQFJvdyA9ICRTZWxmLT57REJPYmplY3R9LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJFN0YXR1cyA9ICRSb3dbMF07CiAgICB9CgogICAgIyB0aGUgY3VyZW50IHN0YXR1cwogICAgaWYgKCAkU3RhdHVzIGVxICdOZXcnIHx8ICRTdGF0dXMgZXEgJ0ludmFsaWQnICkgewoKICAgICAgICAjIGdldCB0aGUgcXVlc3Rpb24gaWRzCiAgICAgICAgJFNlbGYtPntEQk9iamVjdH0tPlByZXBhcmUoCiAgICAgICAgICAgIFNRTCAgID0+ICJTRUxFQ1QgaWQgRlJPTSBzdXJ2ZXlfcXVlc3Rpb24gV0hFUkUgc3VydmV5X2lkID0gJFBhcmFte1N1cnZleUlEfSIsCiAgICAgICAgICAgIExpbWl0ID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICAgICAgbXkgJFF1ZXN0OwogICAgICAgIHdoaWxlICggbXkgQFJvdyA9ICRTZWxmLT57REJPYmplY3R9LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgICAgICRRdWVzdCA9ICRSb3dbMF07CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJ05vUXVlc3Rpb24nIGlmICEkUXVlc3Q7CgogICAgICAgICMgZ2V0IGFsbCBxdWVzdGlvbnMgKHR5cGUgcmFkaW8gYW5kIGNoZWNrYm94KQogICAgICAgICRTZWxmLT57REJPYmplY3R9LT5QcmVwYXJlKAogICAgICAgICAgICBTUUwgPT4gIlNFTEVDVCBpZCBGUk9NIHN1cnZleV9xdWVzdGlvbiIKICAgICAgICAgICAgICAgIC4gIiBXSEVSRSBzdXJ2ZXlfaWQgPSAkUGFyYW17U3VydmV5SUR9IEFORCAiCiAgICAgICAgICAgICAgICAuICIocXVlc3Rpb25fdHlwZSA9ICdSYWRpbycgT1IgcXVlc3Rpb25fdHlwZSA9ICdDaGVja2JveCcpIiwKICAgICAgICApOwoKICAgICAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgICAgICBteSBAUXVlc3Rpb25JRHM7CiAgICAgICAgd2hpbGUgKCBteSBAUm93ID0gJFNlbGYtPntEQk9iamVjdH0tPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAgICAgcHVzaCggQFF1ZXN0aW9uSURzLCAkUm93WzBdICk7CiAgICAgICAgfQogICAgICAgIGZvciBteSAkT25lSUQgKEBRdWVzdGlvbklEcykgewoKICAgICAgICAgICAgIyBnZXQgYWxsIGFuc3dlciBpZHMgb2YgYSBxdWVzdGlvbgogICAgICAgICAgICAkU2VsZi0+e0RCT2JqZWN0fS0+UHJlcGFyZSgKICAgICAgICAgICAgICAgIFNRTCAgID0+ICJTRUxFQ1QgQ09VTlQoaWQpIEZST00gc3VydmV5X2Fuc3dlciBXSEVSRSBxdWVzdGlvbl9pZCA9ICRPbmVJRCIsCiAgICAgICAgICAgICAgICBMaW1pdCA9PiAxLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICAgICAgICAgIG15ICRDb3VudGVyOwogICAgICAgICAgICB3aGlsZSAoIG15IEBSb3cgPSAkU2VsZi0+e0RCT2JqZWN0fS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICAgICAgICAgJENvdW50ZXIgPSAkUm93WzBdOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gJ0luY29tcGxldGVRdWVzdGlvbicgaWYgJENvdW50ZXIgPCAyOwogICAgICAgIH0KCiAgICAgICAgIyBzZXQgbmV3IHN0YXR1cwogICAgICAgIGlmICggJFBhcmFte05ld1N0YXR1c30gZXEgJ01hc3RlcicgKSB7CiAgICAgICAgICAgICRTZWxmLT57REJPYmplY3R9LT5EbygKICAgICAgICAgICAgICAgIFNRTCA9PiAiVVBEQVRFIHN1cnZleSBTRVQgc3RhdHVzID0gJ1ZhbGlkJyBXSEVSRSBzdGF0dXMgPSAnTWFzdGVyJyIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGlmICggJFBhcmFte05ld1N0YXR1c30gZXEgJ1ZhbGlkJyB8fCAkUGFyYW17TmV3U3RhdHVzfSBlcSAnTWFzdGVyJyApIHsKICAgICAgICAgICAgJFNlbGYtPntEQk9iamVjdH0tPkRvKAogICAgICAgICAgICAgICAgU1FMID0+ICJVUERBVEUgc3VydmV5IFNFVCBzdGF0dXMgPSAnJFBhcmFte05ld1N0YXR1c30nICIKICAgICAgICAgICAgICAgICAgICAuICJXSEVSRSBpZCA9ICRQYXJhbXtTdXJ2ZXlJRH0iLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm4gJ1N0YXR1c1NldCc7CiAgICAgICAgfQogICAgfQogICAgZWxzaWYgKCAkU3RhdHVzIGVxICdWYWxpZCcgKSB7CgogICAgICAgICMgc2V0IHN0YXR1cyBNYXN0ZXIKICAgICAgICBpZiAoICRQYXJhbXtOZXdTdGF0dXN9IGVxICdNYXN0ZXInICkgewogICAgICAgICAgICAkU2VsZi0+e0RCT2JqZWN0fS0+RG8oCiAgICAgICAgICAgICAgICBTUUwgPT4gIlVQREFURSBzdXJ2ZXkgU0VUIHN0YXR1cyA9ICdWYWxpZCcgV0hFUkUgc3RhdHVzID0gJ01hc3RlciciLAogICAgICAgICAgICApOwogICAgICAgICAgICAkU2VsZi0+e0RCT2JqZWN0fS0+RG8oCiAgICAgICAgICAgICAgICBTUUwgPT4gIlVQREFURSBzdXJ2ZXkgU0VUIHN0YXR1cyA9ICdNYXN0ZXInIFdIRVJFIGlkID0gJFBhcmFte1N1cnZleUlEfSIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiAnU3RhdHVzU2V0JzsKICAgICAgICB9CgogICAgICAgICMgc2V0IHN0YXR1cyBJbnZhbGlkCiAgICAgICAgZWxzaWYgKCAkUGFyYW17TmV3U3RhdHVzfSBlcSAnSW52YWxpZCcgKSB7CiAgICAgICAgICAgICRTZWxmLT57REJPYmplY3R9LT5EbygKICAgICAgICAgICAgICAgIFNRTCA9PiAiVVBEQVRFIHN1cnZleSBTRVQgc3RhdHVzID0gJ0ludmFsaWQnIFdIRVJFIGlkID0gJFBhcmFte1N1cnZleUlEfSIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiAnU3RhdHVzU2V0JzsKICAgICAgICB9CiAgICB9CiAgICBlbHNpZiAoICRTdGF0dXMgZXEgJ01hc3RlcicgKSB7CgogICAgICAgICMgc2V0IHN0YXR1cyBWYWxpZAogICAgICAgIGlmICggJFBhcmFte05ld1N0YXR1c30gZXEgJ1ZhbGlkJyB8fCAkUGFyYW17TmV3U3RhdHVzfSBlcSAnSW52YWxpZCcgKSB7CiAgICAgICAgICAgICRTZWxmLT57REJPYmplY3R9LT5EbygKICAgICAgICAgICAgICAgIFNRTCA9PiAiVVBEQVRFIHN1cnZleSBTRVQgc3RhdHVzID0gJyRQYXJhbXtOZXdTdGF0dXN9JyAiCiAgICAgICAgICAgICAgICAgICAgLiAiV0hFUkUgaWQgPSAkUGFyYW17U3VydmV5SUR9IiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuICdTdGF0dXNTZXQnOwogICAgICAgIH0KICAgIH0KfQoKPWl0ZW0gU3VydmV5U2F2ZSgpCgp0byB1cGRhdGUgYW4gZXhpc3Rpbmcgc3VydmV5CgogICAgJFN1cnZleU9iamVjdC0+U3VydmV5U2F2ZSgKICAgICAgICBVc2VySUQgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgU3VydmV5SUQgICAgICAgICAgICA9PiA0LAogICAgICAgIFRpdGxlICAgICAgICAgICAgICAgPT4gJ0EgVGl0bGUnLAogICAgICAgIEludHJvZHVjdGlvbiAgICAgICAgPT4gJ1RoZSBpbnRyb2R1Y3Rpb24gb2YgdGhlIHN1cnZleScsCiAgICAgICAgRGVzY3JpcHRpb24gICAgICAgICA9PiAnVGhlIGludGVybmFsIGRlc2NyaXB0aW9uIG9mIHRoZSBzdXJ2ZXknLAogICAgICAgIE5vdGlmaWNhdGlvblNlbmRlciAgPT4gJ3F1YWxpdHlAZXhhbXBsZS5jb20nLAogICAgICAgIE5vdGlmaWNhdGlvblN1YmplY3QgPT4gJ0hlbHAgdXMgd2l0aCB5b3VyIGZlZWRiYWNrIScsCiAgICAgICAgTm90aWZpY2F0aW9uQm9keSAgICA9PiAnRGVhciBjdXN0b21lci4uLicsCiAgICAgICAgUXVldWVzICAgICAgICAgICAgICA9PiBbMiwgNSwgOV0sICAjIChvcHRpb25hbCkgc3VydmV5IGlzIHZhbGlkIGZvciB0aGVzZSBxdWV1ZXMKICAgICk7Cgo9Y3V0CgpzdWIgU3VydmV5U2F2ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50ICgKICAgICAgICBxdygKICAgICAgICBVc2VySUQgU3VydmV5SUQgVGl0bGUgSW50cm9kdWN0aW9uIERlc2NyaXB0aW9uCiAgICAgICAgTm90aWZpY2F0aW9uU2VuZGVyIE5vdGlmaWNhdGlvblN1YmplY3QgTm90aWZpY2F0aW9uQm9keQogICAgICAgICkKICAgICAgICApCiAgICB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgcXVldWVzCiAgICBpZiAoICRQYXJhbXtRdWV1ZXN9ICYmIHJlZiAkUGFyYW17UXVldWVzfSBuZSAnQVJSQVknICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnUXVldWVzIG11c3QgYmUgYW4gYXJyYXkgcmVmZXJlbmNlLicsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBzZXQgZGVmYXVsdCB2YWx1ZQogICAgJFBhcmFte1F1ZXVlc30gfHw9IFtdOwoKICAgICMgcXVvdGUKICAgIGZvciBteSAkQXJndW1lbnQgKAogICAgICAgIHF3KAogICAgICAgIFRpdGxlIEludHJvZHVjdGlvbiBEZXNjcmlwdGlvbgogICAgICAgIE5vdGlmaWNhdGlvblNlbmRlciBOb3RpZmljYXRpb25TdWJqZWN0IE5vdGlmaWNhdGlvbkJvZHkKICAgICAgICApCiAgICAgICAgKQogICAgewogICAgICAgICRQYXJhbXskQXJndW1lbnR9ID0gJFNlbGYtPntEQk9iamVjdH0tPlF1b3RlKCAkUGFyYW17JEFyZ3VtZW50fSApOwogICAgfQogICAgZm9yIG15ICRBcmd1bWVudCAocXcoVXNlcklEIFN1cnZleUlEKSkgewogICAgICAgICRQYXJhbXskQXJndW1lbnR9ID0gJFNlbGYtPntEQk9iamVjdH0tPlF1b3RlKCAkUGFyYW17JEFyZ3VtZW50fSwgJ0ludGVnZXInICk7CiAgICB9CgogICAgIyB1cGRhdGUgdGhlIHN1cnZleQogICAgcmV0dXJuIGlmICEkU2VsZi0+e0RCT2JqZWN0fS0+RG8oCiAgICAgICAgU1FMID0+ICJVUERBVEUgc3VydmV5IFNFVCAiCiAgICAgICAgICAgIC4gInRpdGxlID0gJyRQYXJhbXtUaXRsZX0nLCAiCiAgICAgICAgICAgIC4gImludHJvZHVjdGlvbiA9ICckUGFyYW17SW50cm9kdWN0aW9ufScsICIKICAgICAgICAgICAgLiAiZGVzY3JpcHRpb24gPSAnJFBhcmFte0Rlc2NyaXB0aW9ufScsICIKICAgICAgICAgICAgLiAibm90aWZpY2F0aW9uX3NlbmRlciA9ICckUGFyYW17Tm90aWZpY2F0aW9uU2VuZGVyfScsICIKICAgICAgICAgICAgLiAibm90aWZpY2F0aW9uX3N1YmplY3QgPSAnJFBhcmFte05vdGlmaWNhdGlvblN1YmplY3R9JywgIgogICAgICAgICAgICAuICJub3RpZmljYXRpb25fYm9keSA9ICckUGFyYW17Tm90aWZpY2F0aW9uQm9keX0nLCAiCiAgICAgICAgICAgIC4gImNoYW5nZV90aW1lID0gY3VycmVudF90aW1lc3RhbXAsICIKICAgICAgICAgICAgLiAiY2hhbmdlX2J5ID0gJFBhcmFte1VzZXJJRH0gIgogICAgICAgICAgICAuICJXSEVSRSBpZCA9ICRQYXJhbXtTdXJ2ZXlJRH0iLAogICAgKTsKCiAgICAjIGluc2VydCBuZXcgc3VydmV5LXF1ZXVlIHJlbGF0aW9ucwogICAgcmV0dXJuICRTZWxmLT5TdXJ2ZXlRdWV1ZVNhdmUoCiAgICAgICAgU3VydmV5SUQgPT4gJFBhcmFte1N1cnZleUlEfSwKICAgICAgICBRdWV1ZUlEcyA9PiAkUGFyYW17UXVldWVzfSwKICAgICk7Cn0KCj1pdGVtIFN1cnZleU5ldygpCgp0byBhZGQgYSBuZXcgc3VydmV5CgogICAgbXkgJFN1cnZleUlEID0gJFN1cnZleU9iamVjdC0+U3VydmV5TmV3KAogICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgPT4gMSwKICAgICAgICBUaXRsZSAgICAgICAgICAgICAgID0+ICdBIFRpdGxlJywKICAgICAgICBJbnRyb2R1Y3Rpb24gICAgICAgID0+ICdUaGUgaW50cm9kdWN0aW9uIG9mIHRoZSBzdXJ2ZXknLAogICAgICAgIERlc2NyaXB0aW9uICAgICAgICAgPT4gJ1RoZSBpbnRlcm5hbCBkZXNjcmlwdGlvbiBvZiB0aGUgc3VydmV5JywKICAgICAgICBOb3RpZmljYXRpb25TZW5kZXIgID0+ICdxdWFsaXR5QGV4YW1wbGUuY29tJywKICAgICAgICBOb3RpZmljYXRpb25TdWJqZWN0ID0+ICdIZWxwIHVzIHdpdGggeW91ciBmZWVkYmFjayEnLAogICAgICAgIE5vdGlmaWNhdGlvbkJvZHkgICAgPT4gJ0RlYXIgY3VzdG9tZXIuLi4nLAogICAgICAgIFF1ZXVlcyAgICAgICAgICAgICAgPT4gWzIsIDUsIDldLCAgIyAob3B0aW9uYWwpIHN1cnZleSBpcyB2YWxpZCBmb3IgdGhlc2UgcXVldWVzCiAgICApOwoKPWN1dAoKc3ViIFN1cnZleU5ldyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50ICgKICAgICAgICBxdygKICAgICAgICBVc2VySUQgVGl0bGUgSW50cm9kdWN0aW9uIERlc2NyaXB0aW9uCiAgICAgICAgTm90aWZpY2F0aW9uU2VuZGVyIE5vdGlmaWNhdGlvblN1YmplY3QgTm90aWZpY2F0aW9uQm9keQogICAgICAgICkKICAgICAgICApCiAgICB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgcXVvdGUKICAgIGZvciBteSAkQXJndW1lbnQgKAogICAgICAgIHF3KAogICAgICAgIFRpdGxlIEludHJvZHVjdGlvbiBEZXNjcmlwdGlvbgogICAgICAgIE5vdGlmaWNhdGlvblNlbmRlciBOb3RpZmljYXRpb25TdWJqZWN0IE5vdGlmaWNhdGlvbkJvZHkKICAgICAgICApCiAgICAgICAgKQogICAgewogICAgICAgICRQYXJhbXskQXJndW1lbnR9ID0gJFNlbGYtPntEQk9iamVjdH0tPlF1b3RlKCAkUGFyYW17JEFyZ3VtZW50fSApOwogICAgfQogICAgJFBhcmFte1VzZXJJRH0gPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVvdGUoICRQYXJhbXtVc2VySUR9LCAnSW50ZWdlcicgKTsKCiAgICAjIGluc2VydCBhIG5ldyBzdXJ2ZXkKICAgICRTZWxmLT57REJPYmplY3R9LT5EbygKICAgICAgICBTUUwgPT4gIklOU0VSVCBJTlRPIHN1cnZleSAodGl0bGUsIGludHJvZHVjdGlvbiwgZGVzY3JpcHRpb24sIgogICAgICAgICAgICAuICIgbm90aWZpY2F0aW9uX3NlbmRlciwgbm90aWZpY2F0aW9uX3N1YmplY3QsIG5vdGlmaWNhdGlvbl9ib2R5LCIKICAgICAgICAgICAgLiAiIHN0YXR1cywgY3JlYXRlX3RpbWUsIGNyZWF0ZV9ieSwgY2hhbmdlX3RpbWUsIGNoYW5nZV9ieSIKICAgICAgICAgICAgLiAiKSBWQUxVRVMgKCIKICAgICAgICAgICAgLiAiJyRQYXJhbXtUaXRsZX0nLCAiCiAgICAgICAgICAgIC4gIickUGFyYW17SW50cm9kdWN0aW9ufScsICIKICAgICAgICAgICAgLiAiJyRQYXJhbXtEZXNjcmlwdGlvbn0nLCAiCiAgICAgICAgICAgIC4gIickUGFyYW17Tm90aWZpY2F0aW9uU2VuZGVyfScsICIKICAgICAgICAgICAgLiAiJyRQYXJhbXtOb3RpZmljYXRpb25TdWJqZWN0fScsICIKICAgICAgICAgICAgLiAiJyRQYXJhbXtOb3RpZmljYXRpb25Cb2R5fScsICIKICAgICAgICAgICAgLiAiJ05ldycsICIKICAgICAgICAgICAgLiAiY3VycmVudF90aW1lc3RhbXAsICIKICAgICAgICAgICAgLiAiJFBhcmFte1VzZXJJRH0sICIKICAgICAgICAgICAgLiAiY3VycmVudF90aW1lc3RhbXAsICIKICAgICAgICAgICAgLiAiJFBhcmFte1VzZXJJRH0pIiwKICAgICk7CgogICAgIyBnZXQgdGhlIGlkIG9mIHRoZSBzdXJ2ZXkKICAgICRTZWxmLT57REJPYmplY3R9LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAiU0VMRUNUIGlkIEZST00gc3VydmV5IFdIRVJFICIKICAgICAgICAgICAgLiAidGl0bGUgPSAnJFBhcmFte1RpdGxlfScgQU5EICIKICAgICAgICAgICAgLiAiaW50cm9kdWN0aW9uID0gJyRQYXJhbXtJbnRyb2R1Y3Rpb259JyBBTkQgIgogICAgICAgICAgICAuICJkZXNjcmlwdGlvbiA9ICckUGFyYW17RGVzY3JpcHRpb259JyAiCiAgICAgICAgICAgIC4gIk9SREVSIEJZIGlkIERFU0MiLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgJFN1cnZleUlEOwogICAgd2hpbGUgKCBteSBAUm93ID0gJFNlbGYtPntEQk9iamVjdH0tPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkU3VydmV5SUQgPSAkUm93WzBdOwogICAgfQoKICAgICMgc2V0IHRoZSBzdXJ2ZXkgbnVtYmVyCiAgICAkU2VsZi0+e0RCT2JqZWN0fS0+RG8oCiAgICAgICAgU1FMID0+ICJVUERBVEUgc3VydmV5IFNFVCAiCiAgICAgICAgICAgIC4gInN1cnZleW51bWJlciA9ICciCiAgICAgICAgICAgIC4gKCAkU3VydmV5SUQgKyAxMDAwMCApIC4gIicgIgogICAgICAgICAgICAuICJXSEVSRSBpZCA9ICRTdXJ2ZXlJRCIKICAgICk7CgogICAgcmV0dXJuICRTdXJ2ZXlJRCBpZiAhJFBhcmFte1F1ZXVlc307CiAgICByZXR1cm4gJFN1cnZleUlEIGlmIHJlZiAkUGFyYW17UXVldWVzfSBuZSAnQVJSQVknOwoKICAgICMgaW5zZXJ0IG5ldyBzdXJ2ZXktcXVldWUgcmVsYXRpb25zCiAgICAkU2VsZi0+U3VydmV5UXVldWVTYXZlKAogICAgICAgIFN1cnZleUlEID0+ICRTdXJ2ZXlJRCwKICAgICAgICBRdWV1ZUlEcyA9PiAkUGFyYW17UXVldWVzfSwKICAgICk7CgogICAgcmV0dXJuICRTdXJ2ZXlJRDsKfQoKPWl0ZW0gUXVlc3Rpb25MaXN0KCkKCnRvIGdldCBhIGFycmF5IGxpc3Qgb2YgYWxsIHF1ZXN0aW9uIGl0ZW1zCgogICAgbXkgQExpc3QgPSAkU3VydmV5T2JqZWN0LT5RdWVzdGlvbkxpc3QoCiAgICAgICAgU3VydmV5SUQgPT4gMQogICAgKTsKCj1jdXQKCnN1YiBRdWVzdGlvbkxpc3QgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte1N1cnZleUlEfSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgU3VydmV5SUQhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIHF1b3RlCiAgICAkUGFyYW17U3VydmV5SUR9ID0gJFNlbGYtPntEQk9iamVjdH0tPlF1b3RlKCAkUGFyYW17U3VydmV5SUR9LCAnSW50ZWdlcicgKTsKCiAgICAjIGdldCBhbGwgcXVlc3Rpb25zIG9mIGEgc3VydmV5CiAgICAkU2VsZi0+e0RCT2JqZWN0fS0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gIlNFTEVDVCBpZCwgc3VydmV5X2lkLCBxdWVzdGlvbiwgcXVlc3Rpb25fdHlwZSwgYW5zd2VyX3JlcXVpcmVkIgogICAgICAgICAgICAuICIgRlJPTSBzdXJ2ZXlfcXVlc3Rpb24gV0hFUkUgc3VydmV5X2lkID0gJFBhcmFte1N1cnZleUlEfSBPUkRFUiBCWSBwb3NpdGlvbiIsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgQExpc3Q7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkU2VsZi0+e0RCT2JqZWN0fS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIG15ICVEYXRhOwogICAgICAgICREYXRhe1F1ZXN0aW9uSUR9ICAgICA9ICRSb3dbMF07CiAgICAgICAgJERhdGF7U3VydmV5SUR9ICAgICAgID0gJFJvd1sxXTsKICAgICAgICAkRGF0YXtRdWVzdGlvbn0gICAgICAgPSAkUm93WzJdOwogICAgICAgICREYXRhe1R5cGV9ICAgICAgICAgICA9ICRSb3dbM107CiAgICAgICAgJERhdGF7QW5zd2VyUmVxdWlyZWR9ID0gJFJvd1s0XTsKCiAgICAgICAgcHVzaCBATGlzdCwgXCVEYXRhOwogICAgfQoKICAgIHJldHVybiBATGlzdDsKfQoKPWl0ZW0gUXVlc3Rpb25BZGQoKQoKdG8gYWRkIGEgbmV3IHF1ZXN0aW9uIHRvIGEgc3VydmV5CgogICAgJFN1cnZleU9iamVjdC0+UXVlc3Rpb25BZGQoCiAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgU3VydmV5SUQgPT4gMTAsCiAgICAgICAgUXVlc3Rpb24gPT4gJ1RoZSBRdWVzdGlvbicsCiAgICAgICAgQW5zd2VyUmVxdWlyZWQgPT4gMSwgIyBvciAwCiAgICAgICAgVHlwZSA9PiAnUmFkaW8nLAogICAgKTsKCj1jdXQKCnN1YiBRdWVzdGlvbkFkZCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhVc2VySUQgU3VydmV5SUQgUXVlc3Rpb24gVHlwZSkpIHsKICAgICAgICBpZiAoICFkZWZpbmVkICRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIHF1b3RlCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhRdWVzdGlvbiBUeXBlKSkgewogICAgICAgICRQYXJhbXskQXJndW1lbnR9ID0gJFNlbGYtPntEQk9iamVjdH0tPlF1b3RlKCAkUGFyYW17JEFyZ3VtZW50fSApOwogICAgfQogICAgZm9yIG15ICRBcmd1bWVudCAocXcoVXNlcklEIFN1cnZleUlEKSkgewogICAgICAgICRQYXJhbXskQXJndW1lbnR9ID0gJFNlbGYtPntEQk9iamVjdH0tPlF1b3RlKCAkUGFyYW17JEFyZ3VtZW50fSwgJ0ludGVnZXInICk7CiAgICB9CgogICAgcmV0dXJuIGlmICEkUGFyYW17UXVlc3Rpb259OwoKICAgICMgaW5zZXJ0IGEgbmV3IHF1ZXN0aW9uCiAgICAjIGlmIHdlIGRpZG4ndCBnZXQgYW4gQW5zd2VyIFBhcmFtZXRlciAoZS5nLiBqdXN0IHVuZGVmaW5lZCkKICAgICMgb3IgaXQgd2FzIHNvbWV0aGluZyBlbHNlIHRoYW4gMCBvciAxCiAgICAjIHdlIGFzc3VtZSBpdCdzIGEgcmVxdWlyZWQgYW5zd2VyCiAgICBpZiAoCiAgICAgICAgIWRlZmluZWQgJFBhcmFte0Fuc3dlclJlcXVpcmVkfQogICAgICAgIHx8CiAgICAgICAgKCAkUGFyYW17QW5zd2VyUmVxdWlyZWR9IG5lICcwJyAmJiAkUGFyYW17QW5zd2VyUmVxdWlyZWR9IG5lICcxJyApCiAgICAgICAgKQogICAgewogICAgICAgICRQYXJhbXtBbnN3ZXJSZXF1aXJlZH0gPSAxOwogICAgfQogICAgcmV0dXJuICRTZWxmLT57REJPYmplY3R9LT5EbygKICAgICAgICBTUUwgPT4gIklOU0VSVCBJTlRPIHN1cnZleV9xdWVzdGlvbiAoc3VydmV5X2lkLCBxdWVzdGlvbiwgcXVlc3Rpb25fdHlwZSwgIgogICAgICAgICAgICAuICJwb3NpdGlvbiwgYW5zd2VyX3JlcXVpcmVkLCBjcmVhdGVfdGltZSwgY3JlYXRlX2J5LCBjaGFuZ2VfdGltZSwgY2hhbmdlX2J5KSBWQUxVRVMgKCIKICAgICAgICAgICAgLiAiJFBhcmFte1N1cnZleUlEfSwgIgogICAgICAgICAgICAuICInJFBhcmFte1F1ZXN0aW9ufScsICIKICAgICAgICAgICAgLiAiJyRQYXJhbXtUeXBlfScsIDI1NSwgIgogICAgICAgICAgICAuICInJFBhcmFte0Fuc3dlclJlcXVpcmVkfScsIgogICAgICAgICAgICAuICJjdXJyZW50X3RpbWVzdGFtcCwgIgogICAgICAgICAgICAuICIkUGFyYW17VXNlcklEfSwgIgogICAgICAgICAgICAuICJjdXJyZW50X3RpbWVzdGFtcCwgIgogICAgICAgICAgICAuICIkUGFyYW17VXNlcklEfSkiLAogICAgKTsKfQoKPWl0ZW0gUXVlc3Rpb25EZWxldGUoKQoKdG8gZGVsZXRlIGEgcXVlc3Rpb24gZnJvbSBhIHN1cnZleQoKICAgICRTdXJ2ZXlPYmplY3QtPlF1ZXN0aW9uRGVsZXRlKAogICAgICAgIFN1cnZleUlEID0+IDEsCiAgICAgICAgUXVlc3Rpb25JRCA9PiAxMCwKICAgICk7Cgo9Y3V0CgpzdWIgUXVlc3Rpb25EZWxldGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoU3VydmV5SUQgUXVlc3Rpb25JRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBxdW90ZQogICAgZm9yIG15ICRBcmd1bWVudCAocXcoU3VydmV5SUQgUXVlc3Rpb25JRCkpIHsKICAgICAgICAkUGFyYW17JEFyZ3VtZW50fSA9ICRTZWxmLT57REJPYmplY3R9LT5RdW90ZSggJFBhcmFteyRBcmd1bWVudH0sICdJbnRlZ2VyJyApOwogICAgfQoKICAgICMgZGVsZXRlIGFsbCBhbnN3ZXJzIG9mIGEgcXVlc3Rpb24KICAgICRTZWxmLT57REJPYmplY3R9LT5EbygKICAgICAgICBTUUwgPT4gIkRFTEVURSBGUk9NIHN1cnZleV9hbnN3ZXIgV0hFUkUgcXVlc3Rpb25faWQgPSAkUGFyYW17UXVlc3Rpb25JRH0iLAogICAgKTsKCiAgICAjIGRlbGV0ZSB0aGUgcXVlc3Rpb24KICAgIHJldHVybiAkU2VsZi0+e0RCT2JqZWN0fS0+RG8oCiAgICAgICAgU1FMID0+ICJERUxFVEUgRlJPTSBzdXJ2ZXlfcXVlc3Rpb24gV0hFUkUgIgogICAgICAgICAgICAuICJpZCA9ICRQYXJhbXtRdWVzdGlvbklEfSBBTkQgIgogICAgICAgICAgICAuICJzdXJ2ZXlfaWQgPSAkUGFyYW17U3VydmV5SUR9IiwKICAgICk7Cn0KCj1pdGVtIFF1ZXN0aW9uU29ydCgpCgp0byBzb3J0IGFsbCBxdWVzdGlvbnMgZnJvbSBhIHN1cnZleQoKICAgICRTdXJ2ZXlPYmplY3QtPlF1ZXN0aW9uU29ydCgKICAgICAgICBTdXJ2ZXlJRCA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBRdWVzdGlvblNvcnQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte1N1cnZleUlEfSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgU3VydmV5SUQhJwogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgcXVvdGUKICAgICRQYXJhbXtTdXJ2ZXlJRH0gPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVvdGUoICRQYXJhbXtTdXJ2ZXlJRH0sICdJbnRlZ2VyJyApOwoKICAgICMgZ2V0IGFsbCBxdWVzdGlvbiBvZiBhIHN1cnZleSAoc29ydGVkIGJ5IHBvc2l0aW9uKQogICAgJFNlbGYtPntEQk9iamVjdH0tPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICJTRUxFQ1QgaWQgRlJPTSBzdXJ2ZXlfcXVlc3Rpb24iCiAgICAgICAgICAgIC4gIiBXSEVSRSBzdXJ2ZXlfaWQgPSAkUGFyYW17U3VydmV5SUR9IE9SREVSIEJZIHBvc2l0aW9uIiwKICAgICk7CgogICAgbXkgQExpc3Q7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkU2VsZi0+e0RCT2JqZWN0fS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIHB1c2ggQExpc3QsICRSb3dbMF07CiAgICB9CgogICAgbXkgJENvdW50ZXIgPSAxOwogICAgZm9yIG15ICRRdWVzdGlvbklEIChATGlzdCkgewogICAgICAgICRTZWxmLT57REJPYmplY3R9LT5EbygKICAgICAgICAgICAgU1FMID0+ICJVUERBVEUgc3VydmV5X3F1ZXN0aW9uIFNFVCBwb3NpdGlvbiA9ICRDb3VudGVyIFdIRVJFIGlkID0gJFF1ZXN0aW9uSUQiLAogICAgICAgICk7CiAgICB9CiAgICBjb250aW51ZSB7CiAgICAgICAgJENvdW50ZXIrKzsKICAgIH0KCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gUXVlc3Rpb25VcCgpCgp0byBtb3ZlIGEgcXVlc3Rpb24gdXAKCiAgICAkU3VydmV5T2JqZWN0LT5RdWVzdGlvblVwKAogICAgICAgIFN1cnZleUlEID0+IDEsCiAgICAgICAgUXVlc3Rpb25JRCA9PiA0LAogICAgKTsKCj1jdXQKCnN1YiBRdWVzdGlvblVwIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFN1cnZleUlEIFF1ZXN0aW9uSUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgcXVvdGUKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFN1cnZleUlEIFF1ZXN0aW9uSUQpKSB7CiAgICAgICAgJFBhcmFteyRBcmd1bWVudH0gPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVvdGUoICRQYXJhbXskQXJndW1lbnR9LCAnSW50ZWdlcicgKTsKICAgIH0KCiAgICAjIGdldCBwb3NpdGlvbgogICAgJFNlbGYtPntEQk9iamVjdH0tPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICJTRUxFQ1QgcG9zaXRpb24gRlJPTSBzdXJ2ZXlfcXVlc3Rpb24iCiAgICAgICAgICAgIC4gIiBXSEVSRSBpZCA9ICRQYXJhbXtRdWVzdGlvbklEfSBBTkQgc3VydmV5X2lkID0gJFBhcmFte1N1cnZleUlEfSIsCiAgICAgICAgTGltaXQgPT4gMSwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICBteSAkUG9zaXRpb24gPSAwOwogICAgd2hpbGUgKCBteSBAUm93ID0gJFNlbGYtPntEQk9iamVjdH0tPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkUG9zaXRpb24gPSAkUm93WzBdOwogICAgfQoKICAgIHJldHVybiBpZiAkUG9zaXRpb24gPCAyOwoKICAgIG15ICRQb3NpdGlvblVwID0gJFBvc2l0aW9uIC0gMTsKCiAgICAjIGdldCBxdWVzdGlvbgogICAgJFNlbGYtPntEQk9iamVjdH0tPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICJTRUxFQ1QgaWQgRlJPTSBzdXJ2ZXlfcXVlc3Rpb24iCiAgICAgICAgICAgIC4gIiBXSEVSRSBzdXJ2ZXlfaWQgPSAkUGFyYW17U3VydmV5SUR9IEFORCBwb3NpdGlvbiA9ICRQb3NpdGlvblVwIiwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICRRdWVzdGlvbklERG93bjsKICAgIHdoaWxlICggbXkgQFJvdyA9ICRTZWxmLT57REJPYmplY3R9LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJFF1ZXN0aW9uSUREb3duID0gJFJvd1swXTsKICAgIH0KCiAgICByZXR1cm4gaWYgISRRdWVzdGlvbklERG93bjsKCiAgICAjIHVwZGF0ZSBwb3NpdGlvbgogICAgJFNlbGYtPntEQk9iamVjdH0tPkRvKAogICAgICAgIFNRTCA9PiAiVVBEQVRFIHN1cnZleV9xdWVzdGlvbiBTRVQgIgogICAgICAgICAgICAuICJwb3NpdGlvbiA9ICRQb3NpdGlvbiAiCiAgICAgICAgICAgIC4gIldIRVJFIGlkID0gJFF1ZXN0aW9uSUREb3duIiwKICAgICk7CgogICAgIyB1cGRhdGUgcG9zaXRpb24KICAgIHJldHVybiAkU2VsZi0+e0RCT2JqZWN0fS0+RG8oCiAgICAgICAgU1FMID0+ICJVUERBVEUgc3VydmV5X3F1ZXN0aW9uIFNFVCAiCiAgICAgICAgICAgIC4gInBvc2l0aW9uID0gJFBvc2l0aW9uVXAgIgogICAgICAgICAgICAuICJXSEVSRSBpZCA9ICRQYXJhbXtRdWVzdGlvbklEfSIsCiAgICApOwp9Cgo9aXRlbSBRdWVzdGlvbkRvd24oKQoKdG8gbW92ZSBhIHF1ZXN0aW9uIGRvd24KCiAgICAkU3VydmV5T2JqZWN0LT5RdWVzdGlvbkRvd24oCiAgICAgICAgU3VydmV5SUQgPT4gMSwKICAgICAgICBRdWVzdGlvbklEID0+IDQsCiAgICApOwoKPWN1dAoKc3ViIFF1ZXN0aW9uRG93biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhTdXJ2ZXlJRCBRdWVzdGlvbklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIHF1b3RlCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhTdXJ2ZXlJRCBRdWVzdGlvbklEKSkgewogICAgICAgICRQYXJhbXskQXJndW1lbnR9ID0gJFNlbGYtPntEQk9iamVjdH0tPlF1b3RlKCAkUGFyYW17JEFyZ3VtZW50fSwgJ0ludGVnZXInICk7CiAgICB9CgogICAgIyBnZXQgcG9zaXRpb24KICAgICRTZWxmLT57REJPYmplY3R9LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAiU0VMRUNUIHBvc2l0aW9uIEZST00gc3VydmV5X3F1ZXN0aW9uIgogICAgICAgICAgICAuICIgV0hFUkUgaWQgPSAkUGFyYW17UXVlc3Rpb25JRH0gQU5EIHN1cnZleV9pZCA9ICRQYXJhbXtTdXJ2ZXlJRH0iLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgJFBvc2l0aW9uOwogICAgd2hpbGUgKCBteSBAUm93ID0gJFNlbGYtPntEQk9iamVjdH0tPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkUG9zaXRpb24gPSAkUm93WzBdOwogICAgfQoKICAgIHJldHVybiBpZiAhJFBvc2l0aW9uOwoKICAgIG15ICRQb3NpdGlvbkRvd24gPSAkUG9zaXRpb24gKyAxOwoKICAgICMgZ2V0IHF1ZXN0aW9uCiAgICAkU2VsZi0+e0RCT2JqZWN0fS0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gIlNFTEVDVCBpZCBGUk9NIHN1cnZleV9xdWVzdGlvbiIKICAgICAgICAgICAgLiAiIFdIRVJFIHN1cnZleV9pZCA9ICRQYXJhbXtTdXJ2ZXlJRH0gQU5EIHBvc2l0aW9uID0gJFBvc2l0aW9uRG93biIsCiAgICAgICAgTGltaXQgPT4gMSwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICBteSAkUXVlc3Rpb25JRFVwOwogICAgd2hpbGUgKCBteSBAUm93ID0gJFNlbGYtPntEQk9iamVjdH0tPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkUXVlc3Rpb25JRFVwID0gJFJvd1swXTsKICAgIH0KCiAgICByZXR1cm4gaWYgISRRdWVzdGlvbklEVXA7CgogICAgIyB1cGRhdGUgcG9zaXRpb24KICAgICRTZWxmLT57REJPYmplY3R9LT5EbygKICAgICAgICBTUUwgPT4gIlVQREFURSBzdXJ2ZXlfcXVlc3Rpb24gU0VUICIKICAgICAgICAgICAgLiAicG9zaXRpb24gPSAkUG9zaXRpb24gIgogICAgICAgICAgICAuICJXSEVSRSBpZCA9ICRRdWVzdGlvbklEVXAiLAogICAgKTsKCiAgICAjIHVwZGF0ZSBwb3NpdGlvbgogICAgcmV0dXJuICRTZWxmLT57REJPYmplY3R9LT5EbygKICAgICAgICBTUUwgPT4gIlVQREFURSBzdXJ2ZXlfcXVlc3Rpb24gU0VUICIKICAgICAgICAgICAgLiAicG9zaXRpb24gPSAkUG9zaXRpb25Eb3duICIKICAgICAgICAgICAgLiAiV0hFUkUgaWQgPSAkUGFyYW17UXVlc3Rpb25JRH0iLAogICAgKTsKfQoKPWl0ZW0gUXVlc3Rpb25HZXQoKQoKdG8gZ2V0IGFsbCBhdHRyaWJ1dGVzIG9mIGEgcXVlc3Rpb24KCiAgICBteSAlUXVlc3Rpb24gPSAkU3VydmV5T2JqZWN0LT5RdWVzdGlvbkdldCgKICAgICAgICBRdWVzdGlvbklEID0+IDEyMwogICAgKTsKCj1jdXQKCnN1YiBRdWVzdGlvbkdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17UXVlc3Rpb25JRH0gKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIFF1ZXN0aW9uSUQhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIHF1b3RlCiAgICAkUGFyYW17UXVlc3Rpb25JRH0gPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVvdGUoICRQYXJhbXtRdWVzdGlvbklEfSwgJ0ludGVnZXInICk7CgogICAgIyBnZXQgcXVlc3Rpb24KICAgICRTZWxmLT57REJPYmplY3R9LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAiU0VMRUNUIGlkLCBzdXJ2ZXlfaWQsIHF1ZXN0aW9uLCBxdWVzdGlvbl90eXBlLCBwb3NpdGlvbiwgYW5zd2VyX3JlcXVpcmVkLCAiCiAgICAgICAgICAgIC4gImNyZWF0ZV90aW1lLCBjcmVhdGVfYnksIGNoYW5nZV90aW1lLCBjaGFuZ2VfYnkgIgogICAgICAgICAgICAuICJGUk9NIHN1cnZleV9xdWVzdGlvbiBXSEVSRSBpZCA9ICRQYXJhbXtRdWVzdGlvbklEfSIsCiAgICAgICAgTGltaXQgPT4gMSwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICBteSAlRGF0YTsKCiAgICB3aGlsZSAoIG15IEBSb3cgPSAkU2VsZi0+e0RCT2JqZWN0fS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICREYXRhe1F1ZXN0aW9uSUR9ICAgICA9ICRSb3dbMF07CiAgICAgICAgJERhdGF7U3VydmV5SUR9ICAgICAgID0gJFJvd1sxXTsKICAgICAgICAkRGF0YXtRdWVzdGlvbn0gICAgICAgPSAkUm93WzJdOwogICAgICAgICREYXRhe1R5cGV9ICAgICAgICAgICA9ICRSb3dbM107CiAgICAgICAgJERhdGF7UG9zaXRpb259ICAgICAgID0gJFJvd1s0XTsKICAgICAgICAkRGF0YXtBbnN3ZXJSZXF1aXJlZH0gPSAkUm93WzVdOwogICAgICAgICREYXRhe0NyZWF0ZVRpbWV9ICAgICA9ICRSb3dbNl07CiAgICAgICAgJERhdGF7Q3JlYXRlQnl9ICAgICAgID0gJFJvd1s3XTsKICAgICAgICAkRGF0YXtDaGFuZ2VUaW1lfSAgICAgPSAkUm93WzhdOwogICAgICAgICREYXRhe0NoYW5nZUJ5fSAgICAgICA9ICRSb3dbOV07CiAgICB9CgogICAgcmV0dXJuICVEYXRhOwp9Cgo9aXRlbSBRdWVzdGlvblNhdmUoKQoKdG8gdXBkYXRlIGFuIGV4aXN0aW5nIHF1ZXN0aW9uCgogICAgJFN1cnZleU9iamVjdC0+UXVlc3Rpb25TYXZlKAogICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgIFF1ZXN0aW9uSUQgPT4gNCwKICAgICAgICBTdXJ2ZXlJRCA9PiAzLAogICAgICAgIEFuc3dlclJlcXVpcmVkID0+ICcxJywgIyBvciAnMCcKICAgICAgICBRdWVzdGlvbiA9PiAnVGhlIFF1ZXN0aW9uJywKICAgICk7Cgo9Y3V0CgpzdWIgUXVlc3Rpb25TYXZlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFVzZXJJRCBRdWVzdGlvbklEIFN1cnZleUlEIFF1ZXN0aW9uKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBteSAkQW5zd2VyUmVxdWlyZWQgPSAxOwogICAgaWYgKAogICAgICAgIGRlZmluZWQgJFBhcmFte0Fuc3dlclJlcXVpcmVkfQogICAgICAgICYmICggJFBhcmFte0Fuc3dlclJlcXVpcmVkfSBlcSAnMScgfHwgJFBhcmFte0Fuc3dlclJlcXVpcmVkfSBlcSAnMCcgKQogICAgICAgICkKICAgIHsKICAgICAgICAkQW5zd2VyUmVxdWlyZWQgPSAkUGFyYW17QW5zd2VyUmVxdWlyZWR9OwogICAgfQoKICAgICMgcXVvdGUKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFF1ZXN0aW9uKSkgewogICAgICAgICRQYXJhbXskQXJndW1lbnR9ID0gJFNlbGYtPntEQk9iamVjdH0tPlF1b3RlKCAkUGFyYW17JEFyZ3VtZW50fSApOwogICAgfQogICAgZm9yIG15ICRBcmd1bWVudCAocXcoVXNlcklEIFF1ZXN0aW9uSUQgU3VydmV5SUQpKSB7CiAgICAgICAgJFBhcmFteyRBcmd1bWVudH0gPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVvdGUoICRQYXJhbXskQXJndW1lbnR9LCAnSW50ZWdlcicgKTsKICAgIH0KCiAgICAjIHVwZGF0ZSBxdWVzdGlvbgogICAgcmV0dXJuICRTZWxmLT57REJPYmplY3R9LT5EbygKICAgICAgICBTUUwgPT4gIlVQREFURSBzdXJ2ZXlfcXVlc3Rpb24gU0VUICIKICAgICAgICAgICAgLiAicXVlc3Rpb24gPSAnJFBhcmFte1F1ZXN0aW9ufScsICIKICAgICAgICAgICAgLiAiYW5zd2VyX3JlcXVpcmVkID0gJEFuc3dlclJlcXVpcmVkLCAiCiAgICAgICAgICAgIC4gImNoYW5nZV90aW1lID0gY3VycmVudF90aW1lc3RhbXAsICIKICAgICAgICAgICAgLiAiY2hhbmdlX2J5ID0gJFBhcmFte1VzZXJJRH0gIgogICAgICAgICAgICAuICJXSEVSRSBpZCA9ICRQYXJhbXtRdWVzdGlvbklEfSAiCiAgICAgICAgICAgIC4gIkFORCBzdXJ2ZXlfaWQgPSAkUGFyYW17U3VydmV5SUR9IiwKICAgICk7Cn0KCj1pdGVtIFF1ZXN0aW9uQ291bnQoKQoKdG8gY291bnQgYWxsIHF1ZXN0aW9ucyBvZiBhIHN1cnZleQoKICAgIG15ICRDb3VudFF1ZXN0aW9uID0gJFN1cnZleU9iamVjdC0+UXVlc3Rpb25Db3VudCgKICAgICAgICBTdXJ2ZXlJRCA9PiAxMjMKICAgICk7Cgo9Y3V0CgpzdWIgUXVlc3Rpb25Db3VudCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17U3VydmV5SUR9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBTdXJ2ZXlJRCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgcXVvdGUKICAgICRQYXJhbXtTdXJ2ZXlJRH0gPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVvdGUoICRQYXJhbXtTdXJ2ZXlJRH0sICdJbnRlZ2VyJyApOwoKICAgICMgY291bnQgcXVlc3Rpb25zCiAgICAkU2VsZi0+e0RCT2JqZWN0fS0+UHJlcGFyZSgKICAgICAgICBTUUwgICA9PiAiU0VMRUNUIENPVU5UKGlkKSBGUk9NIHN1cnZleV9xdWVzdGlvbiBXSEVSRSBzdXJ2ZXlfaWQgPSAkUGFyYW17U3VydmV5SUR9IiwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICRDb3VudFF1ZXN0aW9uOwogICAgd2hpbGUgKCBteSBAUm93ID0gJFNlbGYtPntEQk9iamVjdH0tPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkQ291bnRRdWVzdGlvbiA9ICRSb3dbMF07CiAgICB9CgogICAgcmV0dXJuICRDb3VudFF1ZXN0aW9uOwp9Cgo9aXRlbSBBbnN3ZXJMaXN0KCkKCnRvIGdldCBhIGFycmF5IGxpc3Qgb2YgYWxsIGFuc3dlciBpdGVtcwoKICAgIG15IEBMaXN0ID0gJFN1cnZleU9iamVjdC0+QW5zd2VyTGlzdCgKICAgICAgICBRdWVzdGlvbklEID0+IDEKICAgICk7Cgo9Y3V0CgpzdWIgQW5zd2VyTGlzdCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17UXVlc3Rpb25JRH0gKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIFF1ZXN0aW9uSUQhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIHF1b3RlCiAgICAkUGFyYW17UXVlc3Rpb25JRH0gPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVvdGUoICRQYXJhbXtRdWVzdGlvbklEfSwgJ0ludGVnZXInICk7CgogICAgIyBnZXQgYW5zd2VyIGxpc3QKICAgICRTZWxmLT57REJPYmplY3R9LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAiU0VMRUNUIGlkLCBxdWVzdGlvbl9pZCwgYW5zd2VyICIKICAgICAgICAgICAgLiAiIEZST00gc3VydmV5X2Fuc3dlciBXSEVSRSBxdWVzdGlvbl9pZCA9ICRQYXJhbXtRdWVzdGlvbklEfSBPUkRFUiBCWSBwb3NpdGlvbiIsCiAgICApOwoKICAgICMgZmV0Y2h0IHRoZSByZXN1bHQKICAgIG15IEBMaXN0OwogICAgd2hpbGUgKCBteSBAUm93ID0gJFNlbGYtPntEQk9iamVjdH0tPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICBteSAlRGF0YTsKICAgICAgICAkRGF0YXtBbnN3ZXJJRH0gICA9ICRSb3dbMF07CiAgICAgICAgJERhdGF7UXVlc3Rpb25JRH0gPSAkUm93WzFdOwogICAgICAgICREYXRhe0Fuc3dlcn0gICAgID0gJFJvd1syXTsKCiAgICAgICAgcHVzaCBATGlzdCwgXCVEYXRhOwogICAgfQoKICAgIHJldHVybiBATGlzdDsKfQoKPWl0ZW0gQW5zd2VyQWRkKCkKCnRvIGFkZCBhIG5ldyBhbnN3ZXIgdG8gYSBxdWVzdGlvbgoKICAgICRTdXJ2ZXlPYmplY3QtPkFuc3dlckFkZCgKICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICBRdWVzdGlvbklEID0+IDEwLAogICAgICAgIEFuc3dlciA9PiAnVGhlIEFuc3dlcicsCiAgICApOwoKPWN1dAoKc3ViIEFuc3dlckFkZCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhVc2VySUQgUXVlc3Rpb25JRCBBbnN3ZXIpKSB7CiAgICAgICAgaWYgKCAhZGVmaW5lZCAkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBxdW90ZQogICAgZm9yIG15ICRBcmd1bWVudCAocXcoQW5zd2VyKSkgewogICAgICAgICRQYXJhbXskQXJndW1lbnR9ID0gJFNlbGYtPntEQk9iamVjdH0tPlF1b3RlKCAkUGFyYW17JEFyZ3VtZW50fSApOwogICAgfQogICAgZm9yIG15ICRBcmd1bWVudCAocXcoVXNlcklEIFF1ZXN0aW9uSUQpKSB7CiAgICAgICAgJFBhcmFteyRBcmd1bWVudH0gPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVvdGUoICRQYXJhbXskQXJndW1lbnR9LCAnSW50ZWdlcicgKTsKICAgIH0KCiAgICByZXR1cm4gaWYgISRQYXJhbXtBbnN3ZXJ9OwoKICAgICMgaW5zZXJ0IGFuc3dlcgogICAgcmV0dXJuICRTZWxmLT57REJPYmplY3R9LT5EbygKICAgICAgICBTUUwgPT4gIklOU0VSVCBJTlRPIHN1cnZleV9hbnN3ZXIgKHF1ZXN0aW9uX2lkLCBhbnN3ZXIsIHBvc2l0aW9uLCAiCiAgICAgICAgICAgIC4gImNyZWF0ZV90aW1lLCBjcmVhdGVfYnksIGNoYW5nZV90aW1lLCBjaGFuZ2VfYnkpIFZBTFVFUyAoIgogICAgICAgICAgICAuICIkUGFyYW17UXVlc3Rpb25JRH0sICIKICAgICAgICAgICAgLiAiJyRQYXJhbXtBbnN3ZXJ9JywgMjU1LCAiCiAgICAgICAgICAgIC4gImN1cnJlbnRfdGltZXN0YW1wLCAiCiAgICAgICAgICAgIC4gIiRQYXJhbXtVc2VySUR9LCAiCiAgICAgICAgICAgIC4gImN1cnJlbnRfdGltZXN0YW1wLCAiCiAgICAgICAgICAgIC4gIiRQYXJhbXtVc2VySUR9KSIsCiAgICApOwp9Cgo9aXRlbSBBbnN3ZXJEZWxldGUoKQoKdG8gZGVsZXRlIGEgYW5zd2VyIGZyb20gYSBxdWVzdGlvbgoKICAgICRTdXJ2ZXlPYmplY3QtPkFuc3dlckRlbGV0ZSgKICAgICAgICBRdWVzdGlvbklEID0+IDEwLAogICAgICAgIEFuc3dlcklEID0+IDQsCiAgICApOwoKPWN1dAoKc3ViIEFuc3dlckRlbGV0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhRdWVzdGlvbklEIEFuc3dlcklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIHF1b3RlCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhRdWVzdGlvbklEIEFuc3dlcklEKSkgewogICAgICAgICRQYXJhbXskQXJndW1lbnR9ID0gJFNlbGYtPntEQk9iamVjdH0tPlF1b3RlKCAkUGFyYW17JEFyZ3VtZW50fSwgJ0ludGVnZXInICk7CiAgICB9CgogICAgIyBkZWxldGUgYW5zd2VyCiAgICByZXR1cm4gJFNlbGYtPntEQk9iamVjdH0tPkRvKAogICAgICAgIFNRTCA9PiAiREVMRVRFIEZST00gc3VydmV5X2Fuc3dlciBXSEVSRSAiCiAgICAgICAgICAgIC4gImlkID0gJFBhcmFte0Fuc3dlcklEfSBBTkQgcXVlc3Rpb25faWQgPSAkUGFyYW17UXVlc3Rpb25JRH0iLAogICAgKTsKfQoKPWl0ZW0gQW5zd2VyU29ydCgpCgp0byBzb3J0IGFsbCBhbnN3ZXJzIGZyb20gYSBxdWVzdGlvbgoKICAgICRTdXJ2ZXlPYmplY3QtPkFuc3dlclNvcnQoCiAgICAgICAgUXVlc3Rpb25JRCA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBBbnN3ZXJTb3J0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtRdWVzdGlvbklEfSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgUXVlc3Rpb25JRCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgcXVvdGUKICAgICRQYXJhbXtRdWVzdGlvbklEfSA9ICRTZWxmLT57REJPYmplY3R9LT5RdW90ZSggJFBhcmFte1F1ZXN0aW9uSUR9LCAnSW50ZWdlcicgKTsKCiAgICAjIGdldCBhbnN3ZXIgbGlzdAogICAgJFNlbGYtPntEQk9iamVjdH0tPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICJTRUxFQ1QgaWQgRlJPTSBzdXJ2ZXlfYW5zd2VyIgogICAgICAgICAgICAuICIgV0hFUkUgcXVlc3Rpb25faWQgPSAkUGFyYW17UXVlc3Rpb25JRH0gT1JERVIgQlkgcG9zaXRpb24iLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15IEBMaXN0OwogICAgd2hpbGUgKCBteSBAUm93ID0gJFNlbGYtPntEQk9iamVjdH0tPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICBwdXNoIEBMaXN0LCAkUm93WzBdOwogICAgfQoKICAgIG15ICRDb3VudGVyID0gMTsKICAgIGZvciBteSAkQW5zd2VySUQgKEBMaXN0KSB7CgogICAgICAgICMgdXBkYXRlIHBvc2l0aW9uCiAgICAgICAgJFNlbGYtPntEQk9iamVjdH0tPkRvKAogICAgICAgICAgICBTUUwgPT4gIlVQREFURSBzdXJ2ZXlfYW5zd2VyIFNFVCBwb3NpdGlvbiA9ICRDb3VudGVyIFdIRVJFIGlkID0gJEFuc3dlcklEIiwKICAgICAgICApOwogICAgfQogICAgY29udGludWUgewogICAgICAgICRDb3VudGVyKys7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCj1pdGVtIEFuc3dlclVwKCkKCnRvIG1vdmUgYSBhbnN3ZXIgdXAKCiAgICAkU3VydmV5T2JqZWN0LT5BbnN3ZXJVcCgKICAgICAgICBRdWVzdGlvbklEID0+IDQsCiAgICAgICAgQW5zd2VySUQgPT4gMSwKICAgICk7Cgo9Y3V0CgpzdWIgQW5zd2VyVXAgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoUXVlc3Rpb25JRCBBbnN3ZXJJRCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBxdW90ZQogICAgZm9yIG15ICRBcmd1bWVudCAocXcoUXVlc3Rpb25JRCBBbnN3ZXJJRCkpIHsKICAgICAgICAkUGFyYW17JEFyZ3VtZW50fSA9ICRTZWxmLT57REJPYmplY3R9LT5RdW90ZSggJFBhcmFteyRBcmd1bWVudH0sICdJbnRlZ2VyJyApOwogICAgfQoKICAgICMgZ2V0IHBvc2l0aW9uCiAgICAkU2VsZi0+e0RCT2JqZWN0fS0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gIlNFTEVDVCBwb3NpdGlvbiBGUk9NIHN1cnZleV9hbnN3ZXIiCiAgICAgICAgICAgIC4gIiBXSEVSRSBpZCA9ICRQYXJhbXtBbnN3ZXJJRH0gQU5EIHF1ZXN0aW9uX2lkID0gJFBhcmFte1F1ZXN0aW9uSUR9IiwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICRQb3NpdGlvbjsKICAgIHdoaWxlICggbXkgQFJvdyA9ICRTZWxmLT57REJPYmplY3R9LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJFBvc2l0aW9uID0gJFJvd1swXTsKICAgIH0KCiAgICByZXR1cm4gaWYgJFBvc2l0aW9uIDwgMjsKCiAgICBteSAkUG9zaXRpb25VcCA9ICRQb3NpdGlvbiAtIDE7CgogICAgIyBnZXQgYW5zd2VyCiAgICAkU2VsZi0+e0RCT2JqZWN0fS0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gIlNFTEVDVCBpZCBGUk9NIHN1cnZleV9hbnN3ZXIiCiAgICAgICAgICAgIC4gIiBXSEVSRSBxdWVzdGlvbl9pZCA9ICRQYXJhbXtRdWVzdGlvbklEfSBBTkQgcG9zaXRpb24gPSAkUG9zaXRpb25VcCIsCiAgICAgICAgTGltaXQgPT4gMSwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICBteSAkQW5zd2VySUREb3duOwogICAgd2hpbGUgKCBteSBAUm93ID0gJFNlbGYtPntEQk9iamVjdH0tPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkQW5zd2VySUREb3duID0gJFJvd1swXTsKICAgIH0KCiAgICByZXR1cm4gaWYgISRBbnN3ZXJJRERvd247CgogICAgIyB1cGRhdGUgcG9zaXRpb24KICAgICRTZWxmLT57REJPYmplY3R9LT5EbygKICAgICAgICBTUUwgPT4gIlVQREFURSBzdXJ2ZXlfYW5zd2VyIFNFVCBwb3NpdGlvbiA9ICRQb3NpdGlvbiBXSEVSRSBpZCA9ICRBbnN3ZXJJRERvd24iLAogICAgKTsKCiAgICAjIHVwZGF0ZSBwb3NpdGlvbgogICAgcmV0dXJuICRTZWxmLT57REJPYmplY3R9LT5EbygKICAgICAgICBTUUwgPT4gIlVQREFURSBzdXJ2ZXlfYW5zd2VyIFNFVCAiCiAgICAgICAgICAgIC4gInBvc2l0aW9uID0gJFBvc2l0aW9uVXAgIgogICAgICAgICAgICAuICJXSEVSRSBpZCA9ICRQYXJhbXtBbnN3ZXJJRH0iLAogICAgKTsKfQoKPWl0ZW0gQW5zd2VyRG93bigpCgp0byBtb3ZlIGEgYW5zd2VyIGRvd24KCiAgICAkU3VydmV5T2JqZWN0LT5BbnN3ZXJEb3duKAogICAgICAgIFF1ZXN0aW9uSUQgPT4gNCwKICAgICAgICBBbnN3ZXJJRCA9PiAxLAogICAgKTsKCj1jdXQKCnN1YiBBbnN3ZXJEb3duIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFF1ZXN0aW9uSUQgQW5zd2VySUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgcXVvdGUKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFF1ZXN0aW9uSUQgQW5zd2VySUQpKSB7CiAgICAgICAgJFBhcmFteyRBcmd1bWVudH0gPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVvdGUoICRQYXJhbXskQXJndW1lbnR9LCAnSW50ZWdlcicgKTsKICAgIH0KCiAgICAjIGdldCBwb3NpdGlvbgogICAgJFNlbGYtPntEQk9iamVjdH0tPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICJTRUxFQ1QgcG9zaXRpb24gRlJPTSBzdXJ2ZXlfYW5zd2VyIgogICAgICAgICAgICAuICIgV0hFUkUgaWQgPSAkUGFyYW17QW5zd2VySUR9IEFORCBxdWVzdGlvbl9pZCA9ICRQYXJhbXtRdWVzdGlvbklEfSIsCiAgICAgICAgTGltaXQgPT4gMSwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICBteSAkUG9zaXRpb247CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkU2VsZi0+e0RCT2JqZWN0fS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICRQb3NpdGlvbiA9ICRSb3dbMF07CiAgICB9CgogICAgcmV0dXJuIGlmICEkUG9zaXRpb247CgogICAgbXkgJFBvc2l0aW9uRG93biA9ICRQb3NpdGlvbiArIDE7CgogICAgIyBnZXQgYW5zd2VyCiAgICAkU2VsZi0+e0RCT2JqZWN0fS0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gIlNFTEVDVCBpZCBGUk9NIHN1cnZleV9hbnN3ZXIiCiAgICAgICAgICAgIC4gIiBXSEVSRSBxdWVzdGlvbl9pZCA9ICRQYXJhbXtRdWVzdGlvbklEfSBBTkQgcG9zaXRpb24gPSAkUG9zaXRpb25Eb3duIiwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICRBbnN3ZXJJRFVwOwogICAgd2hpbGUgKCBteSBAUm93ID0gJFNlbGYtPntEQk9iamVjdH0tPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkQW5zd2VySURVcCA9ICRSb3dbMF07CiAgICB9CgogICAgcmV0dXJuIGlmICEkQW5zd2VySURVcDsKCiAgICAjIHVwZGF0ZSBwb3NpdGlvbgogICAgJFNlbGYtPntEQk9iamVjdH0tPkRvKAogICAgICAgIFNRTCA9PiAiVVBEQVRFIHN1cnZleV9hbnN3ZXIgU0VUIHBvc2l0aW9uID0gJFBvc2l0aW9uIFdIRVJFIGlkID0gJEFuc3dlcklEVXAiLAogICAgKTsKCiAgICAjIHVwZGF0ZSBwb3NpdGlvbgogICAgcmV0dXJuICRTZWxmLT57REJPYmplY3R9LT5EbygKICAgICAgICBTUUwgPT4gIlVQREFURSBzdXJ2ZXlfYW5zd2VyIFNFVCAiCiAgICAgICAgICAgIC4gInBvc2l0aW9uID0gJFBvc2l0aW9uRG93biAiCiAgICAgICAgICAgIC4gIldIRVJFIGlkID0gJFBhcmFte0Fuc3dlcklEfSIsCiAgICApOwp9Cgo9aXRlbSBBbnN3ZXJHZXQoKQoKdG8gZ2V0IGFsbCBhdHRyaWJ1dGVzIG9mIGEgYW5zd2VyCgogICAgbXkgJUFuc3dlciA9ICRTdXJ2ZXlPYmplY3QtPkFuc3dlckdldCgKICAgICAgICBBbnN3ZXJJRCA9PiAxMjMKICAgICk7Cgo9Y3V0CgpzdWIgQW5zd2VyR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtBbnN3ZXJJRH0gKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIFF1ZXN0aW9uSUQhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIHF1b3RlCiAgICAkUGFyYW17QW5zd2VySUR9ID0gJFNlbGYtPntEQk9iamVjdH0tPlF1b3RlKCAkUGFyYW17QW5zd2VySUR9LCAnSW50ZWdlcicgKTsKCiAgICAjIGdldCBhbnN3ZXIKICAgICRTZWxmLT57REJPYmplY3R9LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PgogICAgICAgICAgICAiU0VMRUNUIGlkLCBxdWVzdGlvbl9pZCwgYW5zd2VyLCBwb3NpdGlvbiwgY3JlYXRlX3RpbWUsIGNyZWF0ZV9ieSwgY2hhbmdlX3RpbWUsIGNoYW5nZV9ieSAiCiAgICAgICAgICAgIC4gIkZST00gc3VydmV5X2Fuc3dlciBXSEVSRSBpZCA9ICRQYXJhbXtBbnN3ZXJJRH0iLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgJURhdGE7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkU2VsZi0+e0RCT2JqZWN0fS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICREYXRhe0Fuc3dlcklEfSAgID0gJFJvd1swXTsKICAgICAgICAkRGF0YXtRdWVzdGlvbklEfSA9ICRSb3dbMV07CiAgICAgICAgJERhdGF7QW5zd2VyfSAgICAgPSAkUm93WzJdOwogICAgICAgICREYXRhe1Bvc2l0aW9ufSAgID0gJFJvd1szXTsKICAgICAgICAkRGF0YXtDcmVhdGVUaW1lfSA9ICRSb3dbNF07CiAgICAgICAgJERhdGF7Q3JlYXRlQnl9ICAgPSAkUm93WzVdOwogICAgICAgICREYXRhe0NoYW5nZVRpbWV9ID0gJFJvd1s2XTsKICAgICAgICAkRGF0YXtDaGFuZ2VCeX0gICA9ICRSb3dbN107CiAgICB9CgogICAgcmV0dXJuICVEYXRhOwp9Cgo9aXRlbSBBbnN3ZXJTYXZlKCkKCnRvIHVwZGF0ZSBhbiBleGlzdGluZyBhbnN3ZXIKCiAgICAkU3VydmV5T2JqZWN0LT5BbnN3ZXJTYXZlKAogICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgIEFuc3dlcklEID0+IDYsCiAgICAgICAgUXVlc3Rpb25JRCA9PiA0LAogICAgICAgIEFuc3dlciA9PiAnVGhlIEFuc3dlcicsCiAgICApOwoKPWN1dAoKc3ViIEFuc3dlclNhdmUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoVXNlcklEIEFuc3dlcklEIFF1ZXN0aW9uSUQgQW5zd2VyKSkgewogICAgICAgIGlmICggIWRlZmluZWQgJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgcXVvdGUKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KEFuc3dlcikpIHsKICAgICAgICAkUGFyYW17JEFyZ3VtZW50fSA9ICRTZWxmLT57REJPYmplY3R9LT5RdW90ZSggJFBhcmFteyRBcmd1bWVudH0gKTsKICAgIH0KICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFVzZXJJRCBBbnN3ZXJJRCBRdWVzdGlvbklEKSkgewogICAgICAgICRQYXJhbXskQXJndW1lbnR9ID0gJFNlbGYtPntEQk9iamVjdH0tPlF1b3RlKCAkUGFyYW17JEFyZ3VtZW50fSwgJ0ludGVnZXInICk7CiAgICB9CgogICAgcmV0dXJuIGlmICEkUGFyYW17QW5zd2VyfTsKCiAgICAjIHVwZGF0ZSBhbnN3ZXIKICAgIHJldHVybiAkU2VsZi0+e0RCT2JqZWN0fS0+RG8oCiAgICAgICAgU1FMID0+ICJVUERBVEUgc3VydmV5X2Fuc3dlciBTRVQgIgogICAgICAgICAgICAuICJhbnN3ZXIgPSAnJFBhcmFte0Fuc3dlcn0nLCAiCiAgICAgICAgICAgIC4gImNoYW5nZV90aW1lID0gY3VycmVudF90aW1lc3RhbXAsICIKICAgICAgICAgICAgLiAiY2hhbmdlX2J5ID0gJFBhcmFte1VzZXJJRH0gIgogICAgICAgICAgICAuICJXSEVSRSBpZCA9ICRQYXJhbXtBbnN3ZXJJRH0gIgogICAgICAgICAgICAuICJBTkQgcXVlc3Rpb25faWQgPSAkUGFyYW17UXVlc3Rpb25JRH0iLAogICAgKTsKfQoKPWl0ZW0gQW5zd2VyQ291bnQoKQoKdG8gY291bnQgYWxsIGFuc3dlcnMgb2YgYSBxdWVzdGlvbgoKICAgIG15ICRDb3VudEFuc3dlciA9ICRTdXJ2ZXlPYmplY3QtPkFuc3dlckNvdW50KAogICAgICAgIFF1ZXN0aW9uSUQgPT4gMTIzCiAgICApOwoKPWN1dAoKc3ViIEFuc3dlckNvdW50IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtRdWVzdGlvbklEfSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgUXVlc3Rpb25JRCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgcXVvdGUKICAgICRQYXJhbXtRdWVzdGlvbklEfSA9ICRTZWxmLT57REJPYmplY3R9LT5RdW90ZSggJFBhcmFte1F1ZXN0aW9uSUR9LCAnSW50ZWdlcicgKTsKCiAgICAjIGNvdW50IGFuc3dlcnMKICAgICRTZWxmLT57REJPYmplY3R9LT5QcmVwYXJlKAogICAgICAgIFNRTCAgID0+ICJTRUxFQ1QgQ09VTlQoaWQpIEZST00gc3VydmV5X2Fuc3dlciBXSEVSRSBxdWVzdGlvbl9pZCA9ICRQYXJhbXtRdWVzdGlvbklEfSIsCiAgICAgICAgTGltaXQgPT4gMSwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICBteSAkQ291bnRBbnN3ZXI7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkU2VsZi0+e0RCT2JqZWN0fS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICRDb3VudEFuc3dlciA9ICRSb3dbMF07CiAgICB9CgogICAgcmV0dXJuICRDb3VudEFuc3dlcjsKfQoKPWl0ZW0gVm90ZUxpc3QoKQoKdG8gZ2V0IGEgYXJyYXkgbGlzdCBvZiBhbGwgdm90ZSBpdGVtcwoKICAgIG15IEBMaXN0ID0gJFN1cnZleU9iamVjdC0+Vm90ZUxpc3QoCiAgICAgICAgU3VydmV5SUQgPT4gMQogICAgKTsKCj1jdXQKCnN1YiBWb3RlTGlzdCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17U3VydmV5SUR9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBTdXJ2ZXlJRCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgcXVvdGUKICAgICRQYXJhbXtTdXJ2ZXlJRH0gPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVvdGUoICRQYXJhbXtTdXJ2ZXlJRH0sICdJbnRlZ2VyJyApOwoKICAgICMgZ2V0IHZvdGUgbGlzdAogICAgJFNlbGYtPntEQk9iamVjdH0tPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICJTRUxFQ1QgaWQsIHRpY2tldF9pZCwgc2VuZF90aW1lLCB2b3RlX3RpbWUgIgogICAgICAgICAgICAuICJGUk9NIHN1cnZleV9yZXF1ZXN0IFdIRVJFIHN1cnZleV9pZCA9ICRQYXJhbXtTdXJ2ZXlJRH0gIgogICAgICAgICAgICAuICJBTkQgdmFsaWRfaWQgPSAwIE9SREVSIEJZIHZvdGVfdGltZSBERVNDIiwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICBteSBATGlzdDsKICAgIHdoaWxlICggbXkgQFJvdyA9ICRTZWxmLT57REJPYmplY3R9LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgbXkgJURhdGE7CiAgICAgICAgJERhdGF7UmVxdWVzdElEfSA9ICRSb3dbMF07CiAgICAgICAgJERhdGF7VGlja2V0SUR9ICA9ICRSb3dbMV07CiAgICAgICAgJERhdGF7U2VuZFRpbWV9ICA9ICRSb3dbMl07CiAgICAgICAgJERhdGF7Vm90ZVRpbWV9ICA9ICRSb3dbM107CgogICAgICAgIHB1c2ggQExpc3QsIFwlRGF0YTsKICAgIH0KCiAgICByZXR1cm4gQExpc3Q7Cn0KCj1pdGVtIFZvdGVHZXQoKQoKdG8gZ2V0IGFsbCBhdHRyaWJ1dGVzIG9mIGEgdm90ZQoKICAgIG15IEBWb3RlID0gJFN1cnZleU9iamVjdC0+Vm90ZUdldCgKICAgICAgICBSZXF1ZXN0SUQgPT4gMTMsCiAgICAgICAgUXVlc3Rpb25JRCA9PiAyMwogICAgKTsKCj1jdXQKCnN1YiBWb3RlR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFJlcXVlc3RJRCBRdWVzdGlvbklEKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIHF1b3RlCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhSZXF1ZXN0SUQgUXVlc3Rpb25JRCkpIHsKICAgICAgICAkUGFyYW17JEFyZ3VtZW50fSA9ICRTZWxmLT57REJPYmplY3R9LT5RdW90ZSggJFBhcmFteyRBcmd1bWVudH0sICdJbnRlZ2VyJyApOwogICAgfQoKICAgICMgZ2V0IHZvdGUKICAgICRTZWxmLT57REJPYmplY3R9LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAiU0VMRUNUIGlkLCB2b3RlX3ZhbHVlIEZST00gc3VydmV5X3ZvdGUiCiAgICAgICAgICAgIC4gIiBXSEVSRSByZXF1ZXN0X2lkID0gJFBhcmFte1JlcXVlc3RJRH0gQU5EIHF1ZXN0aW9uX2lkID0gJFBhcmFte1F1ZXN0aW9uSUR9IiwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICBteSBATGlzdDsKICAgIHdoaWxlICggbXkgQFJvdyA9ICRTZWxmLT57REJPYmplY3R9LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgbXkgJURhdGE7CiAgICAgICAgJERhdGF7UmVxdWVzdElEfSA9ICRSb3dbMF07CiAgICAgICAgJERhdGF7Vm90ZVZhbHVlfSA9ICRSb3dbMV0gfHwgJy0nOwoKICAgICAgICBwdXNoIEBMaXN0LCBcJURhdGE7CiAgICB9CgogICAgcmV0dXJuIEBMaXN0Owp9Cgo9aXRlbSBWb3RlQXR0cmlidXRlR2V0KCkKCnRvIGdldCBhbGwgYXR0cmlidXRlcyBvZiBhIHZvdGUKCiAgICBteSAkVm90ZUF0dHJpYnV0ZUNvbnRlbnQgPSAkU3VydmV5T2JqZWN0LT5Wb3RlQXR0cmlidXRlR2V0KAogICAgICAgIFZvdGVJRCA9PiAxMywKICAgICk7Cgo9Y3V0CgpzdWIgVm90ZUF0dHJpYnV0ZUdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhWb3RlSUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgcXVvdGUKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFZvdGVJRCkpIHsKICAgICAgICAkUGFyYW17JEFyZ3VtZW50fSA9ICRTZWxmLT57REJPYmplY3R9LT5RdW90ZSggJFBhcmFteyRBcmd1bWVudH0sICdJbnRlZ2VyJyApOwogICAgfQoKICAgICMgZ2V0IHZvdGUgYXR0cmlidXRlCiAgICAkU2VsZi0+e0RCT2JqZWN0fS0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gIlNFTEVDVCB2b3RlX3ZhbHVlIEZST00gc3VydmV5X3ZvdGUiCiAgICAgICAgICAgIC4gIiBXSEVSRSBpZCA9ICRQYXJhbXtWb3RlSUR9IiwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICRWb3RlQXR0cmlidXRlQ29udGVudCA9ICR7ICRTZWxmLT57REJPYmplY3R9LT5GZXRjaHJvd0FycmF5KCkgfVswXTsKICAgIHJldHVybiAkVm90ZUF0dHJpYnV0ZUNvbnRlbnQ7Cn0KCj1pdGVtIENvdW50Vm90ZSgpCgp0byBjb3VudCBhbGwgdm90ZXMgb2YgYSBzdXJ2ZXkKCiAgICBteSAkQ291bnRWb3RlID0gJFN1cnZleU9iamVjdC0+Q291bnRWb3RlKAogICAgICAgIFF1ZXN0aW9uSUQgPT4gMTIzLAogICAgICAgIFZvdGVWYWx1ZSA9PiAnVGhlIFZhbHVlJywKICAgICk7Cgo9Y3V0CgpzdWIgQ291bnRWb3RlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFF1ZXN0aW9uSUQgVm90ZVZhbHVlKSkgewogICAgICAgIGlmICggIWRlZmluZWQgJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgcXVvdGUKICAgICRQYXJhbXtWb3RlVmFsdWV9ID0gJFNlbGYtPntEQk9iamVjdH0tPlF1b3RlKCAkUGFyYW17Vm90ZVZhbHVlfSApOwogICAgJFBhcmFte1F1ZXN0aW9uSUR9ID0gJFNlbGYtPntEQk9iamVjdH0tPlF1b3RlKCAkUGFyYW17UXVlc3Rpb25JRH0sICdJbnRlZ2VyJyApOwoKICAgICMgY291bnQgdm90ZXMKICAgICRTZWxmLT57REJPYmplY3R9LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAiU0VMRUNUIENPVU5UKHZvdGVfdmFsdWUpIEZST00gc3VydmV5X3ZvdGUgV0hFUkUgIgogICAgICAgICAgICAuICJxdWVzdGlvbl9pZCA9ICRQYXJhbXtRdWVzdGlvbklEfSBBTkQgdm90ZV92YWx1ZSA9ICckUGFyYW17Vm90ZVZhbHVlfSciLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgJENvdW50Vm90ZTsKICAgIHdoaWxlICggbXkgQFJvdyA9ICRTZWxmLT57REJPYmplY3R9LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJENvdW50Vm90ZSA9ICRSb3dbMF07CiAgICB9CgogICAgcmV0dXJuICRDb3VudFZvdGU7Cn0KCj1pdGVtIENvdW50UmVxdWVzdCgpCgp0byBjb3VudCBhbGwgcmVxdWVzdHMgb2YgYSBzdXJ2ZXkKCiAgICBteSAkQ291bnRSZXF1ZXN0ID0gJFN1cnZleU9iamVjdC0+Q291bnRSZXF1ZXN0KAogICAgICAgIFF1ZXN0aW9uSUQgPT4gMTIzLAogICAgICAgIFZhbGlkSUQgPT4gMCwgICAgICAgIyAoMHwxfGFsbCkKICAgICk7Cgo9Y3V0CgpzdWIgQ291bnRSZXF1ZXN0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFN1cnZleUlEIFZhbGlkSUQpKSB7CiAgICAgICAgaWYgKCAhZGVmaW5lZCAkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBxdW90ZQogICAgJFBhcmFte1N1cnZleUlEfSA9ICRTZWxmLT57REJPYmplY3R9LT5RdW90ZSggJFBhcmFte1N1cnZleUlEfSwgJ0ludGVnZXInICk7CgogICAgIyBjb3VudCByZXF1ZXN0cwogICAgbXkgJFNRTCA9ICJTRUxFQ1QgQ09VTlQoaWQpIEZST00gc3VydmV5X3JlcXVlc3QgV0hFUkUgc3VydmV5X2lkID0gJFBhcmFte1N1cnZleUlEfSI7CgogICAgIyBhZGQgdmFsaWQgcGFydAogICAgaWYgKCAhJFBhcmFte1ZhbGlkSUR9ICkgewogICAgICAgICRTUUwgLj0gIiBBTkQgdmFsaWRfaWQgPSAwIjsKICAgIH0KICAgIGVsc2lmICggJFBhcmFte1ZhbGlkSUR9IGVxIDEgKSB7CiAgICAgICAgJFNRTCAuPSAiIEFORCB2YWxpZF9pZCA9IDEiOwogICAgfQoKICAgICMgYXNrIGRhdGFiYXNlCiAgICAkU2VsZi0+e0RCT2JqZWN0fS0+UHJlcGFyZSgKICAgICAgICBTUUwgICA9PiAkU1FMLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgJENvdW50UmVxdWVzdDsKICAgIHdoaWxlICggbXkgQFJvdyA9ICRTZWxmLT57REJPYmplY3R9LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJENvdW50UmVxdWVzdCA9ICRSb3dbMF07CiAgICB9CgogICAgcmV0dXJuICRDb3VudFJlcXVlc3Q7Cn0KCj1pdGVtIEVsZW1lbnRFeGlzdHMoKQoKZXhpc3RzIGFuIHN1cnZleS0sIHF1ZXN0aW9uLSwgYW5zd2VyLSBvciByZXF1ZXN0LWVsZW1lbnQKCiAgICBteSAkQ291bnRSZXF1ZXN0ID0gJFN1cnZleU9iamVjdC0+RWxlbWVudEV4aXN0cygKICAgICAgICBJRCA9PiAxMjMsICAgICAgICAgICAjIFN1cnZleUlELCBRdWVzdGlvbklELCBBbnN3ZXJJRCwgUmVxdWVzdElECiAgICAgICAgRWxlbWVudCA9PiAnU3VydmV5JyAgIyBTdXJ2ZXksIFF1ZXN0aW9uLCBBbnN3ZXIsIFJlcXVlc3QKICAgICk7Cgo9Y3V0CgpzdWIgRWxlbWVudEV4aXN0cyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhFbGVtZW50SUQgRWxlbWVudCkpIHsKICAgICAgICBpZiAoICFkZWZpbmVkICRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIHF1b3RlCiAgICAkUGFyYW17RWxlbWVudH0gPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVvdGUoICRQYXJhbXtFbGVtZW50fSApOwogICAgJFBhcmFte0VsZW1lbnRJRH0gPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVvdGUoICRQYXJhbXtFbGVtZW50SUR9LCAnSW50ZWdlcicgKTsKCiAgICBteSAlTG9va3VwVGFibGUgPSAoCiAgICAgICAgU3VydmV5ICAgPT4gJ3N1cnZleScsCiAgICAgICAgUXVlc3Rpb24gPT4gJ3N1cnZleV9xdWVzdGlvbicsCiAgICAgICAgQW5zd2VyICAgPT4gJ3N1cnZleV9hbnN3ZXInLAogICAgICAgIFJlcXVlc3QgID0+ICdzdXJ2ZXlfcmVxdWVzdCcsCiAgICApOwoKICAgICMgY291bnQgZWxlbWVudAogICAgJFNlbGYtPntEQk9iamVjdH0tPlByZXBhcmUoCiAgICAgICAgU1FMICAgPT4gIlNFTEVDVCBDT1VOVChpZCkgRlJPTSAkTG9va3VwVGFibGV7JFBhcmFte0VsZW1lbnR9fSBXSEVSRSBpZCA9ICRQYXJhbXtFbGVtZW50SUR9IiwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICRFbGVtZW50RXhpc3RzID0gJ05vJzsKICAgIHdoaWxlICggbXkgQFJvdyA9ICRTZWxmLT57REJPYmplY3R9LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgaWYgKCAkUm93WzBdICkgewogICAgICAgICAgICAkRWxlbWVudEV4aXN0cyA9ICdZZXMnOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gJEVsZW1lbnRFeGlzdHM7Cn0KCj1pdGVtIFJlcXVlc3RTZW5kKCkKCnRvIHNlbmQgYSByZXF1ZXN0IHRvIGEgY3VzdG9tZXIgKGlmIG1hc3RlciBzdXJ2ZXkgaXMgc2V0KQoKICAgICRTdXJ2ZXlPYmplY3QtPlJlcXVlc3RTZW5kKAogICAgICAgIFRpY2tldElEID0+IDEyMywKICAgICk7Cgo9Y3V0CgpzdWIgUmVxdWVzdFNlbmQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte1RpY2tldElEfSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgVGlja2V0SUQhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGNyZWF0ZSBQdWJsaWNTdXJ2ZXlLZXkKICAgIG15ICRtZDUgPSBEaWdlc3Q6Ok1ENS0+bmV3KCk7CiAgICAkbWQ1LT5hZGQoICRTZWxmLT57VGltZU9iamVjdH0tPlN5c3RlbVRpbWUoKSAuIGludCggcmFuZCg5OTk5OTk5OTkpICkgKTsKICAgIG15ICRQdWJsaWNTdXJ2ZXlLZXkgPSAkbWQ1LT5oZXhkaWdlc3Q7CgogICAgIyBmaW5kIG1hc3RlciBzdXJ2ZXkKICAgICRTZWxmLT57REJPYmplY3R9LT5QcmVwYXJlKAogICAgICAgIFNRTCAgID0+ICJTRUxFQ1QgaWQgRlJPTSBzdXJ2ZXkgV0hFUkUgc3RhdHVzID0gJ01hc3RlciciLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgJFN1cnZleUlEOwogICAgd2hpbGUgKCBteSBAUm93ID0gJFNlbGYtPntEQk9iamVjdH0tPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkU3VydmV5SUQgPSAkUm93WzBdOwogICAgfQoKICAgICMgcmV0dXJuLCBubyBtYXN0ZXIgc3VydmV5IGZvdW5kCiAgICByZXR1cm4gaWYgISRTdXJ2ZXlJRDsKCiAgICAjIGdldCB0aGUgc3VydmV5CiAgICBteSAlU3VydmV5ID0gJFNlbGYtPlN1cnZleUdldCgKICAgICAgICBTdXJ2ZXlJRCA9PiAkU3VydmV5SUQsCiAgICApOwogICAgbXkgJFN1YmplY3QgPSAkU3VydmV5e05vdGlmaWNhdGlvblN1YmplY3R9OwogICAgbXkgJEJvZHkgICAgPSAkU3VydmV5e05vdGlmaWNhdGlvbkJvZHl9OwoKICAgICMgZml4IG5ldyBsaW5lcwogICAgJEJvZHkgPX4gcy8oXG5ccnxcclxyXG58XHJcbikvXG4vZzsKCiAgICAjIHRpY2tldCBkYXRhCiAgICBteSAlVGlja2V0ID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRHZXQoCiAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICk7CgogICAgIyBjaGVjayBpZiB0aWNrZXQgaXMgaW4gYSBzZW5kIHF1ZXVlCiAgICBpZiAoICRTdXJ2ZXl7UXVldWVzfSAmJiByZWYgJFN1cnZleXtRdWV1ZXN9IGVxICdBUlJBWScgJiYgQHsgJFN1cnZleXtRdWV1ZXN9IH0gKSB7CiAgICAgICAgbXkgJEZvdW5kOwoKICAgICAgICBRVUVVRToKICAgICAgICBmb3IgbXkgJFF1ZXVlSUQgKCBAeyAkU3VydmV5e1F1ZXVlc30gfSApIHsKICAgICAgICAgICAgbmV4dCBRVUVVRSBpZiAkVGlja2V0e1F1ZXVlSUR9ICE9ICRRdWV1ZUlEOwogICAgICAgICAgICAkRm91bmQgPSAxOwogICAgICAgICAgICBsYXN0IFFVRVVFOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIGlmICEkRm91bmQ7CiAgICB9CgogICAgZm9yIG15ICREYXRhICggc29ydCBrZXlzICVUaWNrZXQgKSB7CiAgICAgICAgaWYgKCBkZWZpbmVkICRUaWNrZXR7JERhdGF9ICkgewogICAgICAgICAgICAkU3ViamVjdCA9fiBzLzxPVFJTX1RJQ0tFVF8kRGF0YT4vJFRpY2tldHskRGF0YX0vZ2k7CiAgICAgICAgICAgICRCb2R5ID1+IHMvPE9UUlNfVElDS0VUXyREYXRhPi8kVGlja2V0eyREYXRhfS9naTsKCiAgICAgICAgICAgICMgZmlsdGVyIGZvciBuZXcgcmljaCB0ZXh0IGNvbnRlbnQKICAgICAgICAgICAgJEJvZHkgPX4gcy8mbHQ7T1RSU19USUNLRVRfJERhdGEmZ3Q7LyRUaWNrZXR7JERhdGF9L2c7CiAgICAgICAgfQogICAgfQoKICAgICMgY2xlYW51cAogICAgJFN1YmplY3QgPX4gcy88T1RSU19USUNLRVRfLis/Pi8tL2dpOwogICAgJEJvZHkgPX4gcy88T1RSU19USUNLRVRfLis/Pi8tL2dpOwoKICAgICMgcmVwbGFjZSBjb25maWcgb3B0aW9ucwogICAgJFN1YmplY3QgPX4gc3s8T1RSU19DT05GSUdfKC4rPyk+fXskU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgkMSl9ZWd4OwogICAgJEJvZHkgPX4gc3s8T1RSU19DT05GSUdfKC4rPyk+fXskU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgkMSl9ZWd4OwoKICAgICMgZmlsdGVyIGZvciBuZXcgcmljaCB0ZXh0IGNvbnRlbnQKICAgICRCb2R5ID1+IHN7Jmx0O09UUlNfQ09ORklHXyguKz8pJmd0O317JFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJDEpfWVneDsKCiAgICAjIGNsZWFudXAKICAgICRTdWJqZWN0ID1+IHMvPE9UUlNfQ09ORklHXy4rPz4vLS9naTsKICAgICRCb2R5ID1+IHMvPE9UUlNfQ09ORklHXy4rPz4vLS9naTsKCiAgICAjIGZpbHRlciBmb3IgbmV3IHJpY2ggdGV4dCBjb250ZW50CiAgICAkQm9keSA9fiBzLyZsdDtPVFJTX0NPTkZJR18uKz8mZ3Q7Ly0vZ2k7CgogICAgIyBnZXQgY3VzdG9tZXIgZGF0YSBhbmQgcmVwbGFjZSBpdCB3aXRoIDxPVFJTX0NVU1RPTUVSX0RBVEFfLi4uCiAgICBteSAlQ3VzdG9tZXJVc2VyOwogICAgaWYgKCAkVGlja2V0e0N1c3RvbWVyVXNlcklEfSApIHsKICAgICAgICAlQ3VzdG9tZXJVc2VyID0gJFNlbGYtPntDdXN0b21lclVzZXJPYmplY3R9LT5DdXN0b21lclVzZXJEYXRhR2V0KAogICAgICAgICAgICBVc2VyID0+ICRUaWNrZXR7Q3VzdG9tZXJVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgcmVwbGFjZSBjdXN0b21lciBzdHVmZiB3aXRoIHRhZ3MKICAgICAgICBmb3IgbXkgJERhdGEgKCBzb3J0IGtleXMgJUN1c3RvbWVyVXNlciApIHsKICAgICAgICAgICAgbmV4dCBpZiAhJEN1c3RvbWVyVXNlcnskRGF0YX07CgogICAgICAgICAgICAkU3ViamVjdCA9fiBzLzxPVFJTX0NVU1RPTUVSX0RBVEFfJERhdGE+LyRDdXN0b21lclVzZXJ7JERhdGF9L2dpOwogICAgICAgICAgICAkQm9keSA9fiBzLzxPVFJTX0NVU1RPTUVSX0RBVEFfJERhdGE+LyRDdXN0b21lclVzZXJ7JERhdGF9L2dpOwoKICAgICAgICAgICAgIyBmaWx0ZXIgZm9yIG5ldyByaWNoIHRleHQgY29udGVudAogICAgICAgICAgICAkQm9keSA9fiBzLyZsdDtPVFJTX0NVU1RPTUVSX0RBVEFfJERhdGEmZ3Q7LyRDdXN0b21lclVzZXJ7JERhdGF9L2dpOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNsZWFudXAgYWxsIG5vdCBuZWVkZWQgPE9UUlNfQ1VTVE9NRVJfREFUQV8gdGFncwogICAgJFN1YmplY3QgPX4gcy88T1RSU19DVVNUT01FUl9EQVRBXy4rPz4vLS9naTsKICAgICRCb2R5ID1+IHMvPE9UUlNfQ1VTVE9NRVJfREFUQV8uKz8+Ly0vZ2k7CgogICAgIyBmaWx0ZXIgZm9yIG5ldyByaWNoIHRleHQgY29udGVudAogICAgJEJvZHkgPX4gcy8mbHQ7T1RSU19DVVNUT01FUl9EQVRBXy4rPyZndDsvLS9naTsKCiAgICAjIHJlcGxhY2Uga2V5CiAgICAkU3ViamVjdCA9fiBzLzxPVFJTX1B1YmxpY1N1cnZleUtleT4vJFB1YmxpY1N1cnZleUtleS9naTsKICAgICRCb2R5ID1+IHMvPE9UUlNfUHVibGljU3VydmV5S2V5Pi8kUHVibGljU3VydmV5S2V5L2dpOwoKICAgICMgZmlsdGVyIGZvciBuZXcgcmljaCB0ZXh0IGNvbnRlbnQKICAgICRCb2R5ID1+IHMvJmx0O09UUlNfUHVibGljU3VydmV5S2V5Jmd0Oy8kUHVibGljU3VydmV5S2V5L2dpOwoKICAgIG15ICRUb1N0cmluZyA9ICRDdXN0b21lclVzZXJ7VXNlckVtYWlsfTsKCiAgICBpZiAoICEkVG9TdHJpbmcgKSB7CiAgICAgICAgbXkgJUFydGljbGUgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPkFydGljbGVMYXN0Q3VzdG9tZXJBcnRpY2xlKAogICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICk7CiAgICAgICAgaWYgKCAkQXJ0aWNsZXtTZW5kZXJUeXBlfSBlcSAnYWdlbnQnICkgewogICAgICAgICAgICAkVG9TdHJpbmcgPSAkQXJ0aWNsZXtUb307CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkVG9TdHJpbmcgPSAkQXJ0aWNsZXtGcm9tfTsKICAgICAgICB9CiAgICB9CgogICAgIyBwYXJzZSB0aGUgdG8gc3RyaW5nCiAgICBteSAkVG87CiAgICBmb3IgbXkgJFRvUGFyc2VyICggTWFpbDo6QWRkcmVzcy0+cGFyc2UoJFRvU3RyaW5nKSApIHsKICAgICAgICAkVG8gPSAkVG9QYXJzZXItPmFkZHJlc3MoKTsKICAgIH0KCiAgICAjIHJldHVybiBpZiBubyB0byBpcyBmb3VuZAogICAgcmV0dXJuIGlmICEkVG87CgogICAgIyBjaGVjayBpZiBpdCdzIGEgdmFsaWQgZW1haWwgYWRkZWRzcyAobWluIGlzIG5lZWRlZCkKICAgIHJldHVybiBpZiAkVG8gIX4gL0AvOwoKICAgICMgY29udmVydCB0byBsb3dlciBjYXNlcwogICAgJFRvID0gbGMgJFRvOwoKICAgICMgY2hlY2sgcmVjaXBpZW50IGJsYWNrbGlzdAogICAgbXkgJFJlY2lwaWVudEJsYWNrbGlzdCA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdTdXJ2ZXk6Ok5vdGlmaWNhdGlvblJlY2lwaWVudEJsYWNrbGlzdCcpOwogICAgaWYgKAogICAgICAgIGRlZmluZWQgJFJlY2lwaWVudEJsYWNrbGlzdAogICAgICAgICYmIHJlZiAkUmVjaXBpZW50QmxhY2tsaXN0IGVxICdBUlJBWScKICAgICAgICAmJiBAeyRSZWNpcGllbnRCbGFja2xpc3R9CiAgICAgICAgKQogICAgewogICAgICAgIGZvciBteSAkUmVjaXBpZW50ICggQHskUmVjaXBpZW50QmxhY2tsaXN0fSApIHsKICAgICAgICAgICAgcmV0dXJuIGlmIGRlZmluZWQgJFJlY2lwaWVudCAmJiBsZW5ndGggJFJlY2lwaWVudCAmJiAkVG8gZXEgJFJlY2lwaWVudDsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBpZiBub3Qgc3VydmV5IHNob3VsZCBiZSBzZW5kCiAgICBteSAkU2VuZE5vU3VydmV5UmVnRXhwID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1N1cnZleTo6U2VuZE5vU3VydmV5UmVnRXhwJyk7CgogICAgcmV0dXJuIGlmICRTZW5kTm9TdXJ2ZXlSZWdFeHAgJiYgJFRvID1+IC8kU2VuZE5vU3VydmV5UmVnRXhwL2k7CgogICAgIyBxdW90ZQogICAgJFRvID0gJFNlbGYtPntEQk9iamVjdH0tPlF1b3RlKCRUbyk7CgogICAgIyBPbmx5IGlmIHdlIGhhdmVuJ3QgYmVlbiBjYWxsZWQgYnkgY3JvbgogICAgaWYgKCAhJFBhcmFte1RyaWdnZXJTZW5kUmVxdWVzdHN9ICkgewogICAgICAgIG15ICRBbW91bnRPZlN1cnZleXNQZXIzMERheXMgPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnU3VydmV5OjpBbW91bnRPZlN1cnZleXNQZXIzMERheXMnKTsKCiAgICAgICAgIyBpZiB3ZSBzaG91bGQganVzdCBzZW5kIGEgY2VydGFpbiBhbW91bnQgb2Ygc3VydmV5cyBwZXIgMzAgZGF5cyAmIHJlY2lwaWVudAogICAgICAgIGlmICgkQW1vdW50T2ZTdXJ2ZXlzUGVyMzBEYXlzKSB7CiAgICAgICAgICAgIG15ICROb3cgPSAkU2VsZi0+e1RpbWVPYmplY3R9LT5TeXN0ZW1UaW1lKCk7CgogICAgICAgICAgICAjIEZpbmQgYWxsIHN1cnZleXMgdGhhdCB3ZXJlIGNyZWF0ZWQgaW4gdGhlIGxhc3QgMzAgZGF5cwogICAgICAgICAgICBteSAkVGhpcnR5RGF5c0FnbyA9ICROb3cgLSAzMCAqIDg2NDAwOwogICAgICAgICAgICAkVGhpcnR5RGF5c0FnbyA9ICRTZWxmLT57VGltZU9iamVjdH0tPlN5c3RlbVRpbWUyVGltZVN0YW1wKCBTeXN0ZW1UaW1lID0+ICRUaGlydHlEYXlzQWdvICk7CiAgICAgICAgICAgIG15ICRMYXN0U2VudFRpbWUgPSAwOwoKICAgICAgICAgICAgJFNlbGYtPntEQk9iamVjdH0tPlByZXBhcmUoCiAgICAgICAgICAgICAgICBTUUwgPT4gIlNFTEVDVCBjcmVhdGVfdGltZSBGUk9NIHN1cnZleV9yZXF1ZXN0IFdIRVJFIExPV0VSKHNlbmRfdG8pID0gJyRUbycgIgogICAgICAgICAgICAgICAgICAgIC4gIkFORCBjcmVhdGVfdGltZSA+PSAnJFRoaXJ0eURheXNBZ28nIE9SREVSIEJZIGNyZWF0ZV90aW1lIERFU0MiCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgICAgICAgICAgbXkgQFJvd3M7CiAgICAgICAgICAgIHdoaWxlICggbXkgQFJvdyA9ICRTZWxmLT57REJPYmplY3R9LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgICAgICAgICBwdXNoIEBSb3dzLCAkUm93WzBdOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIElmIHdlIGhhdmUgcmVhY2hlZCB0aGUgbWF4aW11bSBhbW91bnQgb2Ygc3VydmV5cyBwZXIgbW9udGgKICAgICAgICAgICAgaWYgKCBzY2FsYXIgQFJvd3MgPj0gJEFtb3VudE9mU3VydmV5c1BlcjMwRGF5cyApIHsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIGlmIGEgc3VydmV5IGlzIHNlbnQgaW4gdGhlIGxhc3QgdGltZQogICAgbXkgJFNlbmRQZXJpb2QgPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnU3VydmV5OjpTZW5kUGVyaW9kJyk7CiAgICBpZiAoJFNlbmRQZXJpb2QpIHsKICAgICAgICBteSAkTGFzdFNlbnRUaW1lID0gMDsKCiAgICAgICAgIyBnZXQgc2VuZCB0aW1lCiAgICAgICAgJFNlbGYtPntEQk9iamVjdH0tPlByZXBhcmUoCiAgICAgICAgICAgIFNRTCA9PiAiU0VMRUNUIHNlbmRfdGltZSBGUk9NIHN1cnZleV9yZXF1ZXN0IFdIRVJFIExPV0VSKHNlbmRfdG8pID0gJyRUbycgIgogICAgICAgICAgICAgICAgLiAiT1JERVIgQlkgc2VuZF90aW1lIERFU0MiLAogICAgICAgICAgICBMaW1pdCA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgICAgIHdoaWxlICggbXkgQFJvdyA9ICRTZWxmLT57REJPYmplY3R9LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgICAgICRMYXN0U2VudFRpbWUgPSAkUm93WzBdOwogICAgICAgIH0KICAgICAgICBpZiAoJExhc3RTZW50VGltZSkgewogICAgICAgICAgICBteSAkTm93ID0gJFNlbGYtPntUaW1lT2JqZWN0fS0+U3lzdGVtVGltZSgpOwogICAgICAgICAgICAkTGFzdFNlbnRUaW1lID0gJFNlbGYtPntUaW1lT2JqZWN0fS0+VGltZVN0YW1wMlN5c3RlbVRpbWUoIFN0cmluZyA9PiAkTGFzdFNlbnRUaW1lICk7CgogICAgICAgICAgICByZXR1cm4gaWYgKCAkTGFzdFNlbnRUaW1lICsgJFNlbmRQZXJpb2QgKiA2MCAqIDYwICogMjQgKSA+ICROb3c7CgogICAgICAgIH0KICAgIH0KICAgIG15ICRTZW5kSW5Ib3Vyc0FmdGVyQ2xvc2UgPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnU3VydmV5OjpTZW5kSW5Ib3Vyc0FmdGVyQ2xvc2UnKTsKICAgICRQYXJhbXtUaWNrZXRJRH0gPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVvdGUoICRQYXJhbXtUaWNrZXRJRH0sICdJbnRlZ2VyJyApOwoKICAgICMgSWYgbm8gRGVsYXllZCBTZW5kaW5nIGlzIGNvbmZpZ3VyZWQKICAgICMgc2VuZCBpbW1lZGlhdGVseSwgbG9nIGl0IHRvIFRpY2tldCBIaXN0b3J5IGFuZCBpbnNlcnQgaXQgdG8gc3VydmV5X3JlcXVlc3RzCiAgICAjIGluY2x1ZGluZyBzZW50X3RpbWUKICAgIGlmICggISRTZW5kSW5Ib3Vyc0FmdGVyQ2xvc2UgJiYgISRQYXJhbXtUcmlnZ2VyU2VuZFJlcXVlc3RzfSApIHsKCiAgICAgICAgIyBpbnNlcnQgcmVxdWVzdAogICAgICAgICRTZWxmLT57REJPYmplY3R9LT5EbygKICAgICAgICAgICAgU1FMID0+ICJJTlNFUlQgSU5UTyBzdXJ2ZXlfcmVxdWVzdCAiCiAgICAgICAgICAgICAgICAuICIgKHRpY2tldF9pZCwgc3VydmV5X2lkLCB2YWxpZF9pZCwgcHVibGljX3N1cnZleV9rZXksIHNlbmRfdG8sIHNlbmRfdGltZSwgY3JlYXRlX3RpbWUpICIKICAgICAgICAgICAgICAgIC4gIiBWQUxVRVMgKCRQYXJhbXtUaWNrZXRJRH0sICRTdXJ2ZXlJRCwgMSwgJyIKICAgICAgICAgICAgICAgIC4gJFNlbGYtPntEQk9iamVjdH0tPlF1b3RlKCRQdWJsaWNTdXJ2ZXlLZXkpIC4gIicsICIKICAgICAgICAgICAgICAgIC4gIickVG8nLCBjdXJyZW50X3RpbWVzdGFtcCwgY3VycmVudF90aW1lc3RhbXApIiwKICAgICAgICApOwoKICAgICAgICAjIGxvZyBhY3Rpb24gb24gdGlja2V0CiAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5IaXN0b3J5QWRkKAogICAgICAgICAgICBUaWNrZXRJRCAgICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgQ3JlYXRlVXNlcklEID0+IDEsCiAgICAgICAgICAgIEhpc3RvcnlUeXBlICA9PiAnTWlzYycsCiAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAiU2VudCBjdXN0b21lciBzdXJ2ZXkgdG8gJyRUbycuIiwKICAgICAgICApOwogICAgfQoKICAgICMgSWYgd2Ugc2hvdWxkIHNlbmQgZGVsYXllZCBqdXN0IGNyb25qb2JzIGRlbGl2ZXIgIlRyaWdnZXJTZW5kUmVxdWVzdHMiLAogICAgIyBzbyB3ZSB3ZXJlIGNhbGxlZCBieSBhIGNsb3NlZCB0aWNrZXQKICAgICMgYW5kIGhhdmUgdG8gY3JlYXRlIHRoZSBzdXJ2ZXlfcmVxdWVzdCByZWNvcmQgd2l0aCBubyBzZW5kX3RpbWUKICAgICMgKHdpbGwgYmUgZmlsbGVkIGluIGJ5IGNyb25qb2IgYXMgc29vbiBhcyBpdCByZWFsbHkgZ290IGRlbGl2ZXJlZCkKICAgICMgYWRkaXRpb25hbGx5IG5vIFRpY2tldCBIaXN0b3J5IHlldCwgY2F1c2Ugbm8gc2VuZCBoYXMgaGFwcGVuZWQKICAgIGVsc2lmICggJFNlbmRJbkhvdXJzQWZ0ZXJDbG9zZSAmJiAhJFBhcmFte1RyaWdnZXJTZW5kUmVxdWVzdHN9ICkgewoKICAgICAgICAjIGluc2VydCByZXF1ZXN0CiAgICAgICAgJFNlbGYtPntEQk9iamVjdH0tPkRvKAogICAgICAgICAgICBTUUwgPT4gIklOU0VSVCBJTlRPIHN1cnZleV9yZXF1ZXN0ICIKICAgICAgICAgICAgICAgIC4gIiAodGlja2V0X2lkLCBzdXJ2ZXlfaWQsIHZhbGlkX2lkLCBwdWJsaWNfc3VydmV5X2tleSwgc2VuZF90bywgY3JlYXRlX3RpbWUpICIKICAgICAgICAgICAgICAgIC4gIiBWQUxVRVMgKCRQYXJhbXtUaWNrZXRJRH0sICRTdXJ2ZXlJRCwgMSwgJyIKICAgICAgICAgICAgICAgIC4gJFNlbGYtPntEQk9iamVjdH0tPlF1b3RlKCRQdWJsaWNTdXJ2ZXlLZXkpIC4gIicsICIKICAgICAgICAgICAgICAgIC4gIickVG8nLCBjdXJyZW50X3RpbWVzdGFtcCkiLAogICAgICAgICk7CgogICAgfQoKICAgICMgaGVyZSB3ZSBnb3QgY2FsbGVkIGJ5IGNyb24sIGFuZCBubyBtYXR0ZXIgaWYgU2VuZEluSG91cnNBZnRlckNsb3NlIGlzIGNvbmZpZ3VyZWQKICAgICMgb3Igbm90LCB3ZSBoYXZlIHRvIHNlbmQgdGhlIHN1cnZleSByZXF1ZXN0cyB0aGF0IHdlcmVuJ3Qgc2VudCB5ZXQKICAgICMgdGhpcyB0aW1lIHdlIGhhdmUgdG8gdXBkYXRlIHRoZSBzdXJ2ZXlfcmVxdWVzdCBsaW5lCiAgICAjIHRvIGZpbGwgaW4gdGhlIHNlbmRfdGltZSBhbmQgY3JlYXRlIHRoZSBUaWNrZXQgSGlzdG9yeSBlbnRyeQogICAgZWxzaWYgKAogICAgICAgICRQYXJhbXtUcmlnZ2VyU2VuZFJlcXVlc3RzfQogICAgICAgICYmICRQYXJhbXtTdXJ2ZXlSZXF1ZXN0SUR9CiAgICAgICAgJiYgJFBhcmFte1N1cnZleVJlcXVlc3RJRH0gPX4gL15cZCskLwogICAgICAgICkKICAgIHsKICAgICAgICAkU2VsZi0+e0RCT2JqZWN0fS0+RG8oCiAgICAgICAgICAgIFNRTCA9PiAiVVBEQVRFIHN1cnZleV9yZXF1ZXN0ICIKICAgICAgICAgICAgICAgIC4gIlNFVCBzZW5kX3RpbWUgPSBjdXJyZW50X3RpbWVzdGFtcCBXSEVSRSBpZCA9ICRQYXJhbXtTdXJ2ZXlSZXF1ZXN0SUR9IiwKICAgICAgICApOwoKICAgICAgICAjIGxvZyBhY3Rpb24gb24gdGlja2V0CiAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5IaXN0b3J5QWRkKAogICAgICAgICAgICBUaWNrZXRJRCAgICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgQ3JlYXRlVXNlcklEID0+IDEsCiAgICAgICAgICAgIEhpc3RvcnlUeXBlICA9PiAnTWlzYycsCiAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAiU2VudCBjdXN0b21lciBzdXJ2ZXkgdG8gJyRUbycuIiwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IGNoYXJzZXQKICAgIG15ICRDaGFyc2V0ID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ0RlZmF1bHRDaGFyc2V0JykgfHwgJ3VmdC04JzsKCiAgICAjIGNsZWFuIGh0bWwgYW5kIGNvbnZlcnQgdGhlIEZpZWxkIGluIGh0bWwgKFxuIC0tPjxicj4pCiAgICAkQm9keSA9fiBze1xBXCRodG1sXC90ZXh0XCRccyguKil9eyQxfXhtczsKICAgIGlmICggISQxICkgewoKICAgICAgICAjIGNvbnZlcnQgYm9keSB0byBodG1sCiAgICAgICAgJEJvZHkgPSAkU2VsZi0+e0hUTUxVdGlsc09iamVjdH0tPlRvSFRNTCgKICAgICAgICAgICAgU3RyaW5nID0+ICRCb2R5LAogICAgICAgICk7CiAgICB9CgogICAgIyBwcmVwYXJlIGh0bWwgbGlua3MKICAgICRTZWxmLT57SFRNTFV0aWxzT2JqZWN0fS0+TGlua1F1b3RlKAogICAgICAgIFN0cmluZyA9PiBcJEJvZHksCiAgICApOwoKICAgICMgY29tcGxldGUgaHRtbCBkb2N1bWVudAogICAgJEJvZHkgPSAkU2VsZi0+e0hUTUxVdGlsc09iamVjdH0tPkRvY3VtZW50Q29tcGxldGUoCiAgICAgICAgU3RyaW5nICA9PiAkQm9keSwKICAgICAgICBDaGFyc2V0ID0+ICRDaGFyc2V0LAogICAgKTsKCiAgICAjIHNlbmQgc3VydmV5CiAgICByZXR1cm4gJFNlbGYtPntTZW5kbWFpbE9iamVjdH0tPlNlbmQoCiAgICAgICAgRnJvbSAgICAgPT4gJFN1cnZleXtOb3RpZmljYXRpb25TZW5kZXJ9LAogICAgICAgIFRvICAgICAgID0+ICRUbywKICAgICAgICBTdWJqZWN0ICA9PiAkU3ViamVjdCwKICAgICAgICBNaW1lVHlwZSA9PiAndGV4dC9odG1sJywKICAgICAgICBDaGFyc2V0ICA9PiAkQ2hhcnNldCwKICAgICAgICBCb2R5ICAgICA9PiAkQm9keSwKICAgICkgaWYgKCAhJFNlbmRJbkhvdXJzQWZ0ZXJDbG9zZSB8fCAkUGFyYW17VHJpZ2dlclNlbmRSZXF1ZXN0c30gKTsKfQoKPWl0ZW0gUmVxdWVzdEdldCgpCgp0byBnZXQgYW4gYXJyYXkgbGlzdCBvZiByZXF1ZXN0IGVsZW1lbnRzCgogICAgbXkgJVJlcXVlc3REYXRhID0gJFN1cnZleU9iamVjdC0+UmVxdWVzdEdldCgKICAgICAgICBQdWJsaWNTdXJ2ZXlLZXkgPT4gJ0F3NWRlM1hmNXFBJywKICAgICk7Cgo9Y3V0CgpzdWIgUmVxdWVzdEdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17UHVibGljU3VydmV5S2V5fSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgUHVibGljU3VydmV5S2V5IScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBxdW90ZQogICAgJFBhcmFte1B1YmxpY1N1cnZleUtleX0gPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVvdGUoICRQYXJhbXtQdWJsaWNTdXJ2ZXlLZXl9ICk7CgogICAgIyBnZXQgdm90ZSBsaXN0CiAgICAkU2VsZi0+e0RCT2JqZWN0fS0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4KICAgICAgICAgICAgIlNFTEVDVCBpZCwgdGlja2V0X2lkLCBzdXJ2ZXlfaWQsIHZhbGlkX2lkLCBwdWJsaWNfc3VydmV5X2tleSwgc2VuZF90bywgc2VuZF90aW1lLCB2b3RlX3RpbWUgIgogICAgICAgICAgICAuICJGUk9NIHN1cnZleV9yZXF1ZXN0IFdIRVJFIHB1YmxpY19zdXJ2ZXlfa2V5ID0gJyRQYXJhbXtQdWJsaWNTdXJ2ZXlLZXl9JyAiLAogICAgICAgIExpbWl0ID0+IDEsCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgJVJlcXVlc3REYXRhOwoKICAgIHdoaWxlICggbXkgQFJvdyA9ICRTZWxmLT57REJPYmplY3R9LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJFJlcXVlc3REYXRhe1JlcXVlc3RJRH0gICAgICAgPSAkUm93WzBdOwogICAgICAgICRSZXF1ZXN0RGF0YXtUaWNrZXRJRH0gICAgICAgID0gJFJvd1sxXTsKICAgICAgICAkUmVxdWVzdERhdGF7U3VydmV5SUR9ICAgICAgICA9ICRSb3dbMl07CiAgICAgICAgJFJlcXVlc3REYXRhe1ZhbGlkSUR9ICAgICAgICAgPSAkUm93WzNdOwogICAgICAgICRSZXF1ZXN0RGF0YXtQdWJsaWNTdXJ2ZXlLZXl9ID0gJFJvd1s0XTsKICAgICAgICAkUmVxdWVzdERhdGF7U2VuZFRvfSAgICAgICAgICA9ICRSb3dbNV07CiAgICAgICAgJFJlcXVlc3REYXRhe1NlbmRUaW1lfSAgICAgICAgPSAkUm93WzZdOwogICAgICAgICRSZXF1ZXN0RGF0YXtWb3RlVGltZX0gICAgICAgID0gJFJvd1s3XTsKICAgIH0KCiAgICByZXR1cm4gJVJlcXVlc3REYXRhOwp9Cgo9aXRlbSBQdWJsaWNTdXJ2ZXlHZXQoKQoKdG8gZ2V0IGFsbCBwdWJsaWMgYXR0cmlidXRlcyBvZiBhIHN1cnZleQoKICAgIG15ICVQdWJsaWNTdXJ2ZXkgPSAkU3VydmV5T2JqZWN0LT5QdWJsaWNTdXJ2ZXlHZXQoCiAgICAgICAgICAgIFB1YmxpY1N1cnZleUtleSA9PiAnQXc1ZGUzWGY1cUEnLAogICAgICAgICAgICBJbnZhbGlkICAgICAgICAgPT4gMSwgIyBvcHRpb25hbCB0byBrbm93IGlmIG9uZSBrZXkgd2FzIGFscmVhZHkgdXNlZC4KICAgICk7Cgo9Y3V0CgpzdWIgUHVibGljU3VydmV5R2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggIWRlZmluZWQgJFBhcmFte1B1YmxpY1N1cnZleUtleX0gKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIFN1cnZleUlEIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBxdW90ZQogICAgJFBhcmFte1B1YmxpY1N1cnZleUtleX0gPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVvdGUoICRQYXJhbXtQdWJsaWNTdXJ2ZXlLZXl9ICk7CgogICAgbXkgJFZhbGlkSUQgPSAnQU5EIHZhbGlkX2lkID0gMSc7CgogICAgIyBpZiBub3QgaW52YWxpZCBzaG93IGp1c3QgdmFsaWQga2V5cwogICAgaWYgKCAkUGFyYW17SW52YWxpZH0gKSB7CiAgICAgICAgJFZhbGlkSUQgPSAnQU5EIHZhbGlkX2lkID0gMCc7CiAgICB9CgogICAgIyBnZXQgcmVxdWVzdAogICAgJFNlbGYtPntEQk9iamVjdH0tPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICJTRUxFQ1Qgc3VydmV5X2lkIEZST00gc3VydmV5X3JlcXVlc3QgIgogICAgICAgICAgICAuICJXSEVSRSBwdWJsaWNfc3VydmV5X2tleSA9ICckUGFyYW17UHVibGljU3VydmV5S2V5fScgJFZhbGlkSUQgIiwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICRTdXJ2ZXlJRDsKICAgIHdoaWxlICggbXkgQFJvdyA9ICRTZWxmLT57REJPYmplY3R9LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICAgICAgJFN1cnZleUlEID0gJFJvd1swXTsKICAgIH0KCiAgICByZXR1cm4gKCkgaWYgISRTdXJ2ZXlJRDsKCiAgICAjIGdldCBzdXJ2ZXkKICAgICRTZWxmLT57REJPYmplY3R9LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAiU0VMRUNUIGlkLCBzdXJ2ZXludW1iZXIsIHRpdGxlLCBpbnRyb2R1Y3Rpb24gIgogICAgICAgICAgICAuICJGUk9NIHN1cnZleSBXSEVSRSBpZCA9ICRTdXJ2ZXlJRCBBTkQgKHN0YXR1cyA9ICdNYXN0ZXInIE9SIHN0YXR1cyA9ICdWYWxpZCcpIiwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICVEYXRhOwogICAgd2hpbGUgKCBteSBAUm93ID0gJFNlbGYtPntEQk9iamVjdH0tPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkRGF0YXtTdXJ2ZXlJRH0gICAgID0gJFJvd1swXTsKICAgICAgICAkRGF0YXtTdXJ2ZXlOdW1iZXJ9ID0gJFJvd1sxXTsKICAgICAgICAkRGF0YXtUaXRsZX0gICAgICAgID0gJFJvd1syXTsKICAgICAgICAkRGF0YXtJbnRyb2R1Y3Rpb259ID0gJFJvd1szXTsKICAgIH0KCiAgICByZXR1cm4gJURhdGE7Cn0KCj1pdGVtIFB1YmxpY0Fuc3dlclNhdmUoKQoKdG8gc2F2ZSBhIHB1YmxpYyB2b3RlCgogICAgJFN1cnZleU9iamVjdC0+UHVibGljQW5zd2VyU2F2ZSgKICAgICAgICBQdWJsaWNTdXJ2ZXlLZXkgPT4gJ2FWa2RFODJEdzJxdzZlckNkYScsCiAgICAgICAgUXVlc3Rpb25JRCA9PiA0LAogICAgICAgIFZvdGVWYWx1ZSA9PiAnVGhlIFZhbHVlJywKICAgICk7Cgo9Y3V0CgpzdWIgUHVibGljQW5zd2VyU2F2ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhQdWJsaWNTdXJ2ZXlLZXkgUXVlc3Rpb25JRCBWb3RlVmFsdWUpKSB7CiAgICAgICAgaWYgKCAhZGVmaW5lZCAkUGFyYW17JEFyZ3VtZW50fSApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJEFyZ3VtZW50ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBxdW90ZQogICAgZm9yIG15ICRBcmd1bWVudCAocXcoUHVibGljU3VydmV5S2V5IFZvdGVWYWx1ZSkpIHsKICAgICAgICAkUGFyYW17JEFyZ3VtZW50fSA9ICRTZWxmLT57REJPYmplY3R9LT5RdW90ZSggJFBhcmFteyRBcmd1bWVudH0gKTsKICAgIH0KICAgICRQYXJhbXtRdWVzdGlvbklEfSA9ICRTZWxmLT57REJPYmplY3R9LT5RdW90ZSggJFBhcmFte1F1ZXN0aW9uSUR9LCAnSW50ZWdlcicgKTsKCiAgICAjIGdldCByZXF1ZXN0CiAgICAkU2VsZi0+e0RCT2JqZWN0fS0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gIlNFTEVDVCBpZCAiCiAgICAgICAgICAgIC4gIiBGUk9NIHN1cnZleV9yZXF1ZXN0IFdIRVJFIHB1YmxpY19zdXJ2ZXlfa2V5ID0gJyRQYXJhbXtQdWJsaWNTdXJ2ZXlLZXl9JyBBTkQgdmFsaWRfaWQgPSAxIiwKICAgICAgICBMaW1pdCA9PiAxLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15ICRSZXF1ZXN0SUQ7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkU2VsZi0+e0RCT2JqZWN0fS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgICRSZXF1ZXN0SUQgPSAkUm93WzBdOwogICAgfQoKICAgIHJldHVybiBpZiAhJFJlcXVlc3RJRDsKCiAgICAjIGluc2VydCB2b3RlCiAgICByZXR1cm4gJFNlbGYtPntEQk9iamVjdH0tPkRvKAogICAgICAgIFNRTCA9PiAiSU5TRVJUIElOVE8gc3VydmV5X3ZvdGUgKHJlcXVlc3RfaWQsIHF1ZXN0aW9uX2lkLCB2b3RlX3ZhbHVlLCBjcmVhdGVfdGltZSkgVkFMVUVTICgiCiAgICAgICAgICAgIC4gIiRSZXF1ZXN0SUQsICIKICAgICAgICAgICAgLiAiJFBhcmFte1F1ZXN0aW9uSUR9LCAiCiAgICAgICAgICAgIC4gIickUGFyYW17Vm90ZVZhbHVlfScsICIKICAgICAgICAgICAgLiAiY3VycmVudF90aW1lc3RhbXApIiwKICAgICk7Cn0KCj1pdGVtIFB1YmxpY1N1cnZleUludmFsaWRTZXQoKQoKdG8gc2V0IGEgcmVxdWVzdCBpbnZhbGlkCgogICAgJFN1cnZleU9iamVjdC0+UHVibGljU3VydmV5SW52YWxpZFNldCgKICAgICAgICBQdWJsaWNTdXJ2ZXlLZXkgPT4gJ2FWa2RFODJEdzJxdzZlckNkYScsCiAgICApOwoKPWN1dAoKc3ViIFB1YmxpY1N1cnZleUludmFsaWRTZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte1B1YmxpY1N1cnZleUtleX0gKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIFN1cnZleUlEIScKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIHF1b3RlCiAgICAkUGFyYW17UHVibGljU3VydmV5S2V5fSA9ICRTZWxmLT57REJPYmplY3R9LT5RdW90ZSggJFBhcmFte1B1YmxpY1N1cnZleUtleX0gKTsKCiAgICAjIGdldCByZXF1ZXN0CiAgICAkU2VsZi0+e0RCT2JqZWN0fS0+UHJlcGFyZSgKICAgICAgICBTUUwgPT4gIlNFTEVDVCBpZCAiCiAgICAgICAgICAgIC4gIiBGUk9NIHN1cnZleV9yZXF1ZXN0IFdIRVJFIHB1YmxpY19zdXJ2ZXlfa2V5ID0gJyRQYXJhbXtQdWJsaWNTdXJ2ZXlLZXl9JyIsCiAgICAgICAgTGltaXQgPT4gMSwKICAgICk7CgogICAgIyBmZXRjaCB0aGUgcmVzdWx0CiAgICBteSAkUmVxdWVzdElEOwogICAgd2hpbGUgKCBteSBAUm93ID0gJFNlbGYtPntEQk9iamVjdH0tPkZldGNocm93QXJyYXkoKSApIHsKICAgICAgICAkUmVxdWVzdElEID0gJFJvd1swXTsKICAgIH0KCiAgICByZXR1cm4gaWYgISRSZXF1ZXN0SUQ7CgogICAgIyB1cGRhdGUgcmVxdWVzdAogICAgcmV0dXJuICRTZWxmLT57REJPYmplY3R9LT5EbygKICAgICAgICBTUUwgPT4gIlVQREFURSBzdXJ2ZXlfcmVxdWVzdCBTRVQgIgogICAgICAgICAgICAuICJ2YWxpZF9pZCA9IDAsICIKICAgICAgICAgICAgLiAidm90ZV90aW1lID0gY3VycmVudF90aW1lc3RhbXAgIgogICAgICAgICAgICAuICJXSEVSRSBpZCA9ICRSZXF1ZXN0SUQiLAogICAgKTsKfQoKPWl0ZW0gU3VydmV5UXVldWVTYXZlKCkKCmFkZCBhIHN1cnZleV9xdWV1ZSByZWxhdGlvbgoKbXkgJFJlc3VsdCA9ICRTdXJ2ZXlPYmplY3QtPlN1cnZleVF1ZXVlU2F2ZSgKICAgIFN1cnZleUlEID0+IDMsCiAgICBRdWV1ZUlEcyA9PiBbMSwgN10sCik7Cgo9Y3V0CgpzdWIgU3VydmV5UXVldWVTYXZlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkQXJndW1lbnQgKHF3KFN1cnZleUlEIFF1ZXVlSURzKSkgewogICAgICAgIGlmICggISRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQhIgogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgcXVvdGUKICAgIGZvciBteSAkUXVldWVJRCAoIEB7ICRQYXJhbXtRdWV1ZUlEc30gfSApIHsKICAgICAgICAkUXVldWVJRCA9ICRTZWxmLT57REJPYmplY3R9LT5RdW90ZSggJFF1ZXVlSUQsICdJbnRlZ2VyJyApOwogICAgfQogICAgJFBhcmFte1N1cnZleUlEfSA9ICRTZWxmLT57REJPYmplY3R9LT5RdW90ZSggJFBhcmFte1N1cnZleUlEfSwgJ0ludGVnZXInICk7CgogICAgIyByZW1vdmUgYWxsIGV4aXN0aW5nIHJlbGF0aW9ucwogICAgJFNlbGYtPntEQk9iamVjdH0tPkRvKAogICAgICAgIFNRTCA9PiAiREVMRVRFIEZST00gc3VydmV5X3F1ZXVlIFdIRVJFIHN1cnZleV9pZCA9ICRQYXJhbXtTdXJ2ZXlJRH0iLAogICAgKTsKCiAgICAjIGFkZCBhbGwgc3VydmV5X3F1ZXVlIHJlbGF0aW9ucyB0byBkYXRhYmFzZQogICAgZm9yIG15ICRRdWV1ZUlEICggQHsgJFBhcmFte1F1ZXVlSURzfSB9ICkgewoKICAgICAgICAjIGFkZCBzdXJ2ZXlfcXVldWUgcmVsYXRpb24gdG8gZGF0YWJhc2UKICAgICAgICByZXR1cm4gaWYgISRTZWxmLT57REJPYmplY3R9LT5EbygKICAgICAgICAgICAgU1FMID0+ICJJTlNFUlQgSU5UTyBzdXJ2ZXlfcXVldWUiCiAgICAgICAgICAgICAgICAuICIgKHN1cnZleV9pZCwgcXVldWVfaWQpIFZBTFVFUyIKICAgICAgICAgICAgICAgIC4gIiAoJFBhcmFte1N1cnZleUlEfSwgJFF1ZXVlSUQpIiwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBTdXJ2ZXlRdWV1ZUdldCgpCgpnZXQgYSBzdXJ2ZXlfcXVldWUgcmVsYXRpb24gYXMgYW4gYXJyYXkgcmVmZXJlbmNlCgpteSAkUXVldWVzUmVmID0gJFN1cnZleU9iamVjdC0+U3VydmV5UXVldWVHZXQoCiAgICBTdXJ2ZXlJRCA9PiAzLAopOwoKPWN1dAoKc3ViIFN1cnZleVF1ZXVlR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtTdXJ2ZXlJRH0gKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIFN1cnZleUlEIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBxdW90ZQogICAgJFBhcmFte1N1cnZleUlEfSA9ICRTZWxmLT57REJPYmplY3R9LT5RdW90ZSggJFBhcmFte1N1cnZleUlEfSwgJ0ludGVnZXInICk7CgogICAgIyBnZXQgcXVldWUgaWRzIGZyb20gZGF0YWJhc2UKICAgICRTZWxmLT57REJPYmplY3R9LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAiU0VMRUNUIHF1ZXVlX2lkIEZST00gc3VydmV5X3F1ZXVlIgogICAgICAgICAgICAuICIgV0hFUkUgc3VydmV5X2lkID0gJFBhcmFte1N1cnZleUlEfSBPUkRFUiBCWSBxdWV1ZV9pZCBBU0MiLAogICAgKTsKCiAgICAjIGZldGNoIHRoZSByZXN1bHQKICAgIG15IEBRdWV1ZUxpc3Q7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkU2VsZi0+e0RCT2JqZWN0fS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIHB1c2ggQFF1ZXVlTGlzdCwgJFJvd1swXTsKICAgIH0KCiAgICByZXR1cm4gXEBRdWV1ZUxpc3Q7Cn0KCj1pdGVtIFN1cnZleVNlYXJjaCgpCgpzZWFyY2ggaW4gc3VydmV5cwoKICAgIG15IEBJRHMgPSAkU3VydmV5T2JqZWN0LT5TdXJ2ZXlTZWFyY2goCgogICAgICAgIE51bWJlciAgICAgICAgICAgICAgPT4gJzEzNCcsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBUaXRsZSAgICAgICAgICAgICAgID0+ICdzb21lIHRpdGxlJywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgSW50cm9kdWN0aW9uICAgICAgICA9PiAnc29tZSBpbnRyb2R1Y3Rpb24nLCAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIERlc2NyaXB0aW9uICAgICAgICAgPT4gJ3NvbWUgZGVzY3JpcHRpb24nLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKICAgICAgICBOb3RpZmljYXRpb25TZW5kZXIgID0+ICd1c2VyQGRvbWFpbicsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgTm90aWZpY2F0aW9uU3ViamVjdCA9PiAnc29tZSBub3RpZmljYXRpb24gc3ViamVjdCcsICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgIE5vdGlmaWNhdGlvbkJvZHkgICAgPT4gJ3NvbWUgbm90aWZpY2F0aW9uIGJvZHknLCAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKCiAgICAgICAgIyBpcyBzZWFyY2hpbmcgaW4gTnVtYmVyLCBUaXRsZSwgSW50cm9kdWN0aW9uLCBEZXNjcmlwdGlvbiwgTm90aWZpY2F0aW9uU2VuZGVyLAogICAgICAgICMgTm90aWZpY2F0aW9uU3ViamVjdCBhbmQgTm90aWZpY2F0aW9uQm9keQogICAgICAgIFdoYXQgICA9PiAnc29tZSB0ZXh0JywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkKCiAgICAgICAgU3RhdHVzID0+ICdzb21lIHN0YXR1cycsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQoKICAgICAgICBDcmVhdGVUaW1lTmV3ZXJEYXRlID0+ICcyMDEyLTAxLTAxIDEyOjAwOjAwJywKICAgICAgICBDcmVhdGVUaW1lT2xkZXJEYXRlID0+ICcyMDEyLTAxLTMxIDEyOjAwOjAwJywKICAgICAgICBDcmVhdGVCeSAgICAgICAgICAgID0+ICcxMjMnLCAgICAgICAgICAgICNVc2VySUQKICAgICAgICBDaGFuZ2VUaW1lTmV3ZXJEYXRlID0+ICcyMDEyLTAxLTAxIDEyOjAwOjAwJywKICAgICAgICBDaGFuZ2VUaW1lT2xkZXJEYXRlID0+ICcyMDEyLTEyLTMxIDEyOjAwOjAwJywKICAgICAgICBDaGFuZ2VCeSAgICAgICAgICAgID0+ICcxMjMnLCAgICAgICAgICAgICNVc2VySUQKCiAgICAgICAgT3JkZXJCeSA9PiBbICdTdXJ2ZXlJRCcsICdUaXRsZScgXSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgIyBkZWZhdWx0OiBbICdTdXJ2ZXlJRCcgXSwKICAgICAgICAjICgpU3VydmV5SUQsIE51bWJlciwgVGl0bGUsIEludHJvZHVjdGlvbiwgRGVzY3JpcHRpb24sCiAgICAgICAgIyBOb3RpZmljYXRpb25TZW5kZXIsIE5vdGlmaWNhdGlvblN1YmplY3QsIE5vdGlmaWNhdGlvbkJvZHksCiAgICAgICAgIyBTdGF0dXMsIENyZWF0ZVRpbWUsIENyZWF0ZUJ5LCBDaGFuZ2VUaW1lLCBDaGFuZ2VCeSkKCiAgICAgICAgIyBBZGRpdGlvbmFsIGluZm9ybWF0aW9uIGZvciBPcmRlckJ5OgogICAgICAgICMgVGhlIE9yZGVyQnlEaXJlY3Rpb24gY2FuIGJlIHNwZWNpZmllZCBmb3IgZWFjaCBPcmRlckJ5IGF0dHJpYnV0ZS4KICAgICAgICAjIFRoZSBwYWlyaW5nIGlzIG1hZGUgYnkgdGhlIGFycmF5IGluZGljZXMuCgogICAgICAgIE9yZGVyQnlEaXJlY3Rpb24gPT4gWyAnRG93bicsICdVcCcgXSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgICAgICMgZGVmYXVsdDogWyAnRG93bicgXQogICAgICAgICMgKERvd24gfCBVcCkKCiAgICAgICAgTGltaXQgICAgID0+IDE1MCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICAgICAgVXNlcklEICAgID0+IDEsCiAgICApOwoKPWN1dAoKc3ViIFN1cnZleVNlYXJjaCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17VXNlcklEfSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgVXNlcklEISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyB2ZXJpZnkgdGhhdCBhbGwgcGFzc2VkIGFycmF5IHBhcmFtZXRlcnMgY29udGFpbiBhbiBhcnJheXJlZgogICAgQVJHVU1FTlQ6CiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhPcmRlckJ5IE9yZGVyQnlEaXJlY3Rpb24pKSB7CgogICAgICAgIGlmICggIWRlZmluZWQgJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRQYXJhbXskQXJndW1lbnR9IHx8PSBbXTsKCiAgICAgICAgICAgIG5leHQgQVJHVU1FTlQ7CiAgICAgICAgfQoKICAgICAgICBpZiAoIHJlZiAkUGFyYW17JEFyZ3VtZW50fSBuZSAnQVJSQVknICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiJEFyZ3VtZW50IG11c3QgYmUgYW4gYXJyYXkgcmVmZXJlbmNlISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBkZWZpbmUgb3JkZXIgdGFibGUKICAgIG15ICVPcmRlckJ5VGFibGUgPSAoCgogICAgICAgICMgU3VydmV5IGl0ZW0gYXR0cmlidXRlcwogICAgICAgIFN1cnZleUlEICAgICAgICAgICAgPT4gJ3MuaWQnLAogICAgICAgIE51bWJlciAgICAgICAgICAgICAgPT4gJ3Muc3VydmV5bnVtYmVyJywKICAgICAgICBUaXRsZSAgICAgICAgICAgICAgID0+ICdzLnRpdGxlJywKICAgICAgICBJbnRyb2R1Y3Rpb24gICAgICAgID0+ICdzLmludHJvZHVjdGlvbicsCiAgICAgICAgRGVzY3JpcHRpb24gICAgICAgICA9PiAncy5kZXNjcmlwdGlvbicsCiAgICAgICAgTm90aWZpY2F0aW9uU2VuZGVyICA9PiAncy5ub3RpZmljYXRpb25fc2VuZGVyJywKICAgICAgICBOb3RpZmljYXRpb25TdWJqZWN0ID0+ICdzLm5vdGlmaWNhdGlvbl9zdWJqZWN0JywKICAgICAgICBOb3RpZmljYXRpb25Cb2R5ICAgID0+ICdzLm5vdGlmaWNhdGlvbl9ib2R5JywKICAgICAgICBTdGF0dXMgICAgICAgICAgICAgID0+ICdzLnN0YXR1cycsCiAgICAgICAgQ3JlYXRlVGltZSAgICAgICAgICA9PiAncy5jcmVhdGVfdGltZScsCiAgICAgICAgQ3JlYXRlQnkgICAgICAgICAgICA9PiAncy5jcmVhdGVfYnknLAogICAgICAgIENoYW5nZVRpbWUgICAgICAgICAgPT4gJ3MuY2hhbmdlX3RpbWUnLAogICAgICAgIENoYW5nZUJ5ICAgICAgICAgICAgPT4gJ3MuY2hhbmdlX2J5JywKICAgICk7CgogICAgIyBjaGVjayBpZiBPcmRlckJ5IGNvbnRhaW5zIG9ubHkgdW5pcXVlIHZhbGlkIHZhbHVlcwogICAgbXkgJU9yZGVyQnlTZWVuOwogICAgZm9yIG15ICRPcmRlckJ5ICggQHsgJFBhcmFte09yZGVyQnl9IH0gKSB7CgogICAgICAgIGlmICggISRPcmRlckJ5IHx8ICEkT3JkZXJCeVRhYmxleyRPcmRlckJ5fSB8fCAkT3JkZXJCeVNlZW57JE9yZGVyQnl9ICkgewoKICAgICAgICAgICAgIyBmb3VuZCBhbiBlcnJvcgogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiT3JkZXJCeSBjb250YWlucyBpbnZhbGlkIHZhbHVlICckT3JkZXJCeScgIgogICAgICAgICAgICAgICAgICAgIC4gJ29yIHRoZSB2YWx1ZSBpcyB1c2VkIG1vcmUgdGhhbiBvbmNlIScsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgICMgcmVtZW1iZXIgdGhlIHZhbHVlIHRvIGNoZWNrIGlmIGl0IGFwcGVhcnMgbW9yZSB0aGFuIG9uY2UKICAgICAgICAkT3JkZXJCeVNlZW57JE9yZGVyQnl9ID0gMTsKCiAgICB9CgogICAgIyBjaGVjayBpZiBPcmRlckJ5RGlyZWN0aW9uIGFycmF5IGNvbnRhaW5zIG9ubHkgJ1VwJyBvciAnRG93bicKICAgIERJUkVDVElPTjoKICAgIGZvciBteSAkRGlyZWN0aW9uICggQHsgJFBhcmFte09yZGVyQnlEaXJlY3Rpb259IH0gKSB7CgogICAgICAgICMgb25seSAnVXAnIG9yICdEb3duJyBhbGxvd2VkCiAgICAgICAgbmV4dCBESVJFQ1RJT04gaWYgJERpcmVjdGlvbiBlcSAnVXAnOwogICAgICAgIG5leHQgRElSRUNUSU9OIGlmICREaXJlY3Rpb24gZXEgJ0Rvd24nOwoKICAgICAgICAjIGZvdW5kIGFuIGVycm9yCiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJPcmRlckJ5RGlyZWN0aW9uIGNhbiBvbmx5IGNvbnRhaW4gJ1VwJyBvciAnRG93bichIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGFzc2VtYmxlIHRoZSBPUkRFUiBCWSBjbGF1c2UKICAgIG15IEBTUUxPcmRlckJ5OwogICAgbXkgQE9yZGVyQnlGaWVsZHM7CiAgICBteSAkQ291bnQgPSAwOwogICAgZm9yIG15ICRPcmRlckJ5ICggQHsgJFBhcmFte09yZGVyQnl9IH0gKSB7CgogICAgICAgICMgc2V0IHRoZSBkZWZhdWx0IG9yZGVyIGRpcmVjdGlvbgogICAgICAgIG15ICREaXJlY3Rpb24gPSAnREVTQyc7CgogICAgICAgICMgYWRkIHRoZSBnaXZlbiBvcmRlciBkaXJlY3Rpb24KICAgICAgICBpZiAoICRQYXJhbXtPcmRlckJ5RGlyZWN0aW9ufS0+WyRDb3VudF0gKSB7CiAgICAgICAgICAgIGlmICggJFBhcmFte09yZGVyQnlEaXJlY3Rpb259LT5bJENvdW50XSBlcSAnVXAnICkgewogICAgICAgICAgICAgICAgJERpcmVjdGlvbiA9ICdBU0MnOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJFBhcmFte09yZGVyQnlEaXJlY3Rpb259LT5bJENvdW50XSBlcSAnRG93bicgKSB7CiAgICAgICAgICAgICAgICAkRGlyZWN0aW9uID0gJ0RFU0MnOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGFkZCBTUUwKICAgICAgICBwdXNoIEBTUUxPcmRlckJ5LCAgICAiJE9yZGVyQnlUYWJsZXskT3JkZXJCeX0gJERpcmVjdGlvbiI7CiAgICAgICAgcHVzaCBAT3JkZXJCeUZpZWxkcywgJE9yZGVyQnlUYWJsZXskT3JkZXJCeX07CiAgICB9CiAgICBjb250aW51ZSB7CiAgICAgICAgJENvdW50Kys7CiAgICB9CgogICAgIyBpZiB0aGVyZSBpcyBhIHBvc3NpYmlsaXR5IHRoYXQgdGhlIG9yZGVyaW5nIGlzIG5vdCBkZXRlcm1pbmVkCiAgICAjIHdlIGFkZCBhbiBkZXNjZW5kaW5nIG9yZGVyaW5nIGJ5IGlkCiAgICBpZiAoICFncmVwIHsgJF8gZXEgJ1N1cnZleUlEJyB9ICggQHsgJFBhcmFte09yZGVyQnl9IH0gKSApIHsKICAgICAgICBwdXNoIEBTUUxPcmRlckJ5LCAiJE9yZGVyQnlUYWJsZXtTdXJ2ZXlJRH0gREVTQyI7CiAgICB9CgogICAgIyBzcWwKICAgIG15ICRTUUwgPSAnU0VMRUNUIHMuaWQgJzsKCiAgICAjIGV4dGVuZGVkIFNRTAogICAgbXkgJEV4dCA9ICcnOwoKICAgICMgZnVsbHRleHQgc2VhcmNoCiAgICBpZiAoICRQYXJhbXtXaGF0fSAmJiAkUGFyYW17V2hhdH0gbmUgJyonICkgewoKICAgICAgICAjIGRlZmluZSB0aGUgc2VhcmNoIGZpZWxkcyBmb3IgZnVsbHRleHQgc2VhcmNoCiAgICAgICAgbXkgQFNlYXJjaEZpZWxkcyA9ICgKICAgICAgICAgICAgJ3Muc3VydmV5bnVtYmVyJywKICAgICAgICAgICAgJ3MudGl0bGUnLAogICAgICAgICAgICAncy5pbnRyb2R1Y3Rpb24nLAogICAgICAgICAgICAncy5kZXNjcmlwdGlvbicsCiAgICAgICAgICAgICdzLm5vdGlmaWNhdGlvbl9zZW5kZXInLAogICAgICAgICAgICAncy5ub3RpZmljYXRpb25fc3ViamVjdCcsCiAgICAgICAgICAgICdzLm5vdGlmaWNhdGlvbl9ib2R5JywKICAgICAgICAgICAgJ3Muc3RhdHVzJywKICAgICAgICApOwoKICAgICAgICAjIGFkZCB0aGUgU1FMIGZvciB0aGUgZnVsbHRleHQgc2VhcmNoCiAgICAgICAgJEV4dCAuPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVlcnlDb25kaXRpb24oCiAgICAgICAgICAgIEtleSAgICAgICAgICA9PiBcQFNlYXJjaEZpZWxkcywKICAgICAgICAgICAgVmFsdWUgICAgICAgID0+ICRQYXJhbXtXaGF0fSwKICAgICAgICAgICAgU2VhcmNoUHJlZml4ID0+ICcqJywKICAgICAgICAgICAgU2VhcmNoU3VmZml4ID0+ICcqJywKICAgICAgICApOwogICAgfQoKICAgICMgc2VhcmNoIGZvciB0aGUgbnVtYmVyCiAgICBpZiAoICRQYXJhbXtOdW1iZXJ9ICkgewogICAgICAgICRQYXJhbXtOdW1iZXJ9ID1+IHMvXCovJS9nOwogICAgICAgICRQYXJhbXtOdW1iZXJ9ID1+IHMvJSUvJS9nOwogICAgICAgICRQYXJhbXtOdW1iZXJ9ID0gJFNlbGYtPntEQk9iamVjdH0tPlF1b3RlKCAkUGFyYW17TnVtYmVyfSwgJ0xpa2UnICk7CiAgICAgICAgaWYgKCRFeHQpIHsKICAgICAgICAgICAgJEV4dCAuPSAnIEFORCc7CiAgICAgICAgfQogICAgICAgICRFeHQgLj0gIiBMT1dFUihzLm51bWJlcikgTElLRSBMT1dFUignIiAuICRQYXJhbXtOdW1iZXJ9IC4gIicpICRTZWxmLT57TGlrZUVzY2FwZVN0cmluZ30iOwogICAgfQoKICAgICMgc2VhcmNoIGZvciB0aGUgdGl0bGUKICAgIGlmICggJFBhcmFte1RpdGxlfSApIHsKICAgICAgICAkUGFyYW17VGl0bGV9ID0gIlwlJFBhcmFte1RpdGxlfVwlIjsKICAgICAgICAkUGFyYW17VGl0bGV9ID1+IHMvXCovJS9nOwogICAgICAgICRQYXJhbXtUaXRsZX0gPX4gcy8lJS8lL2c7CiAgICAgICAgJFBhcmFte1RpdGxlfSA9ICRTZWxmLT57REJPYmplY3R9LT5RdW90ZSggJFBhcmFte1RpdGxlfSwgJ0xpa2UnICk7CiAgICAgICAgaWYgKCRFeHQpIHsKICAgICAgICAgICAgJEV4dCAuPSAnIEFORCc7CiAgICAgICAgfQogICAgICAgICRFeHQgLj0gIiBMT1dFUihzLnRpdGxlKSBMSUtFIExPV0VSKCciIC4gJFBhcmFte1RpdGxlfSAuICInKSAkU2VsZi0+e0xpa2VFc2NhcGVTdHJpbmd9IjsKICAgIH0KCiAgICAjIHNlYXJjaCBmb3IgdGhlIGludHJvZHVjdGlvbgogICAgaWYgKCAkUGFyYW17SW50cm9kdWN0aW9ufSApIHsKICAgICAgICAkUGFyYW17SW50cm9kdWN0aW9ufSA9ICJcJSRQYXJhbXtJbnRyb2R1Y3Rpb259XCUiOwogICAgICAgICRQYXJhbXtJbnRyb2R1Y3Rpb259ID1+IHMvXCovJS9nOwogICAgICAgICRQYXJhbXtJbnRyb2R1Y3Rpb259ID1+IHMvJSUvJS9nOwogICAgICAgICRQYXJhbXtJbnRyb2R1Y3Rpb259ID0gJFNlbGYtPntEQk9iamVjdH0tPlF1b3RlKCAkUGFyYW17SW50cm9kdWN0aW9ufSwgJ0xpa2UnICk7CiAgICAgICAgaWYgKCRFeHQpIHsKICAgICAgICAgICAgJEV4dCAuPSAnIEFORCc7CiAgICAgICAgfQogICAgICAgICRFeHQKICAgICAgICAgICAgLj0gIiBMT1dFUihzLmludHJvZHVjdGlvbikgTElLRSBMT1dFUignIgogICAgICAgICAgICAuICRQYXJhbXtJbnRyb2R1Y3Rpb259CiAgICAgICAgICAgIC4gIicpICRTZWxmLT57TGlrZUVzY2FwZVN0cmluZ30iOwogICAgfQoKICAgICMgc2VhcmNoIGZvciB0aGUgZGVzY3JpcHRpb24KICAgIGlmICggJFBhcmFte0Rlc2NyaXB0aW9ufSApIHsKICAgICAgICAkUGFyYW17RGVzY3JpcHRpb259ID0gIlwlJFBhcmFte0Rlc2NyaXB0aW9ufVwlIjsKICAgICAgICAkUGFyYW17RGVzY3JpcHRpb259ID1+IHMvXCovJS9nOwogICAgICAgICRQYXJhbXtEZXNjcmlwdGlvbn0gPX4gcy8lJS8lL2c7CiAgICAgICAgJFBhcmFte0Rlc2NyaXB0aW9ufSA9ICRTZWxmLT57REJPYmplY3R9LT5RdW90ZSggJFBhcmFte0Rlc2NyaXB0aW9ufSwgJ0xpa2UnICk7CiAgICAgICAgaWYgKCRFeHQpIHsKICAgICAgICAgICAgJEV4dCAuPSAnIEFORCc7CiAgICAgICAgfQogICAgICAgICRFeHQKICAgICAgICAgICAgLj0gIiBMT1dFUihzLmRlc2NyaXB0aW9uKSBMSUtFIExPV0VSKCciCiAgICAgICAgICAgIC4gJFBhcmFte0Rlc2NyaXB0aW9ufQogICAgICAgICAgICAuICInKSAkU2VsZi0+e0xpa2VFc2NhcGVTdHJpbmd9IjsKICAgIH0KCiAgICAjIHNlYXJjaCBmb3IgdGhlIG5vdGlmaWNhdGlvbiBzZW5kZXIKICAgIGlmICggJFBhcmFte05vdGlmaWNhdGlvblNlbmRlcn0gKSB7CiAgICAgICAgJFBhcmFte05vdGlmaWNhdGlvblNlbmRlcn0gPSAiXCUkUGFyYW17Tm90aWZpY2F0aW9uU2VuZGVyfVwlIjsKICAgICAgICAkUGFyYW17Tm90aWZpY2F0aW9uU2VuZGVyfSA9fiBzL1wqLyUvZzsKICAgICAgICAkUGFyYW17Tm90aWZpY2F0aW9uU2VuZGVyfSA9fiBzLyUlLyUvZzsKICAgICAgICAkUGFyYW17Tm90aWZpY2F0aW9uU2VuZGVyfSA9ICRTZWxmLT57REJPYmplY3R9LT5RdW90ZSggJFBhcmFte05vdGlmaWNhdGlvblNlbmRlcn0sICdMaWtlJyApOwogICAgICAgIGlmICgkRXh0KSB7CiAgICAgICAgICAgICRFeHQgLj0gJyBBTkQnOwogICAgICAgIH0KICAgICAgICAkRXh0CiAgICAgICAgICAgIC49ICIgTE9XRVIocy5ub3RpZmljYXRpb25fc2VuZGVyKSBMSUtFIExPV0VSKCciCiAgICAgICAgICAgIC4gJFBhcmFte05vdGlmaWNhdGlvblNlbmRlcn0KICAgICAgICAgICAgLiAiJykgJFNlbGYtPntMaWtlRXNjYXBlU3RyaW5nfSI7CiAgICB9CgogICAgIyBzZWFyY2ggZm9yIHRoZSBub3RpZmljYXRpb24gc3ViamVjdAogICAgaWYgKCAkUGFyYW17Tm90aWZpY2F0aW9uU3ViamVjdH0gKSB7CiAgICAgICAgJFBhcmFte05vdGlmaWNhdGlvblN1YmplY3R9ID0gIlwlJFBhcmFte05vdGlmaWNhdGlvblN1YmplY3R9XCUiOwogICAgICAgICRQYXJhbXtOb3RpZmljYXRpb25TdWJqZWN0fSA9fiBzL1wqLyUvZzsKICAgICAgICAkUGFyYW17Tm90aWZpY2F0aW9uU3ViamVjdH0gPX4gcy8lJS8lL2c7CiAgICAgICAgJFBhcmFte05vdGlmaWNhdGlvblN1YmplY3R9ID0gJFNlbGYtPntEQk9iamVjdH0tPlF1b3RlKCAkUGFyYW17Tm90aWZpY2F0aW9uU3ViamVjdH0sICdMaWtlJyApOwogICAgICAgIGlmICgkRXh0KSB7CiAgICAgICAgICAgICRFeHQgLj0gJyBBTkQnOwogICAgICAgIH0KICAgICAgICAkRXh0CiAgICAgICAgICAgIC49ICIgTE9XRVIocy5ub3RpZmljYXRpb25fc3ViamVjdCkgTElLRSBMT1dFUignIgogICAgICAgICAgICAuICRQYXJhbXtOb3RpZmljYXRpb25TdWJqZWN0fQogICAgICAgICAgICAuICInKSAkU2VsZi0+e0xpa2VFc2NhcGVTdHJpbmd9IjsKICAgIH0KCiAgICAjIHNlYXJjaCBmb3IgdGhlIG5vdGlmaWNhdGlvbiBib2R5CiAgICBpZiAoICRQYXJhbXtOb3RpZmljYXRpb25Cb2R5fSApIHsKICAgICAgICAkUGFyYW17Tm90aWZpY2F0aW9uQm9keX0gPSAiXCUkUGFyYW17Tm90aWZpY2F0aW9uQm9keX1cJSI7CiAgICAgICAgJFBhcmFte05vdGlmaWNhdGlvbkJvZHl9ID1+IHMvXCovJS9nOwogICAgICAgICRQYXJhbXtOb3RpZmljYXRpb25Cb2R5fSA9fiBzLyUlLyUvZzsKICAgICAgICAkUGFyYW17Tm90aWZpY2F0aW9uQm9keX0gPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVvdGUoICRQYXJhbXtOb3RpZmljYXRpb25Cb2R5fSwgJ0xpa2UnICk7CiAgICAgICAgaWYgKCRFeHQpIHsKICAgICAgICAgICAgJEV4dCAuPSAnIEFORCc7CiAgICAgICAgfQogICAgICAgICRFeHQKICAgICAgICAgICAgLj0gIiBMT1dFUihzLm5vdGlmaWNhdGlvbl9ib2R5KSBMSUtFIExPV0VSKCciCiAgICAgICAgICAgIC4gJFBhcmFte05vdGlmaWNhdGlvbkJvZHl9CiAgICAgICAgICAgIC4gIicpICRTZWxmLT57TGlrZUVzY2FwZVN0cmluZ30iOwogICAgfQoKICAgICMgc2VhcmNoIGZvciB0aGUgc3RhdHVzCiAgICBpZiAoICRQYXJhbXtTdGF0dXN9ICkgewogICAgICAgICRQYXJhbXtTdGF0dXN9ID0gIlwlJFBhcmFte1N0YXR1c31cJSI7CiAgICAgICAgJFBhcmFte1N0YXR1c30gPX4gcy9cKi8lL2c7CiAgICAgICAgJFBhcmFte1N0YXR1c30gPX4gcy8lJS8lL2c7CiAgICAgICAgJFBhcmFte1N0YXR1c30gPSAkU2VsZi0+e0RCT2JqZWN0fS0+UXVvdGUoICRQYXJhbXtTdGF0dXN9LCAnTGlrZScgKTsKICAgICAgICBpZiAoJEV4dCkgewogICAgICAgICAgICAkRXh0IC49ICcgQU5EJzsKICAgICAgICB9CiAgICAgICAgJEV4dCAuPSAiIExPV0VSKHMuc3RhdHVzKSBMSUtFIExPV0VSKCciIC4gJFBhcmFte1N0YXR1c30gLiAiJykgJFNlbGYtPntMaWtlRXNjYXBlU3RyaW5nfSI7CiAgICB9CgogICAgIyBzZWFyY2ggZm9yIHRoZSBjcmVhdGUgYnkKICAgIGlmICggJFBhcmFte0NyZWF0ZUJ5fSApIHsKICAgICAgICBpZiAoJEV4dCkgewogICAgICAgICAgICAkRXh0IC49ICcgQU5EJzsKICAgICAgICB9CiAgICAgICAgJEV4dCAuPSAiIHMuY3JlYXRlX2J5ID0gIiAuICRQYXJhbXtDcmVhdGVCeX07CiAgICB9CgogICAgIyBzZWFyY2ggZm9yIHRoZSBjcmVhdGUgYnkKICAgIGlmICggJFBhcmFte0NoYW5nZUJ5fSApIHsKICAgICAgICBpZiAoJEV4dCkgewogICAgICAgICAgICAkRXh0IC49ICcgQU5EJzsKICAgICAgICB9CiAgICAgICAgJEV4dCAuPSAiIHMuY3JlYXRlX2J5ID0gIiAuICRQYXJhbXtDaGFuZ2VCeX07CiAgICB9CgogICAgIyBzZXQgdGltZSBwYXJhbXMKICAgIG15ICVUaW1lUGFyYW1zID0gKAoKICAgICAgICAjIHRpbWVzIGluIGNoYW5nZV9pdGVtCiAgICAgICAgQ3JlYXRlVGltZU5ld2VyRGF0ZSA9PiAncy5jcmVhdGVfdGltZSA+PScsCiAgICAgICAgQ3JlYXRlVGltZU9sZGVyRGF0ZSA9PiAncy5jcmVhdGVfdGltZSA8PScsCiAgICAgICAgQ2hhbmdlVGltZU5ld2VyRGF0ZSA9PiAncy5jaGFuZ2VfdGltZSA+PScsCiAgICAgICAgQ2hhbmdlVGltZU9sZGVyRGF0ZSA9PiAncy5jaGFuZ2VfdGltZSA8PScsCiAgICApOwoKICAgICMgY2hlY2sgYW5kIGFkZCB0aW1lIHBhcmFtcyB0byBXSEVSRQogICAgVElNRVBBUkFNOgogICAgZm9yIG15ICRUaW1lUGFyYW0gKCBzb3J0IGtleXMgJVRpbWVQYXJhbXMgKSB7CgogICAgICAgIG5leHQgVElNRVBBUkFNIGlmICEkUGFyYW17JFRpbWVQYXJhbX07CgogICAgICAgICMgY2hlY2sgZm9ybWF0CiAgICAgICAgaWYgKCAkUGFyYW17JFRpbWVQYXJhbX0gIX4gbXsgXEEgXGRcZFxkXGQtXGRcZC1cZFxkIFxzIFxkXGQ6XGRcZDpcZFxkIFx6IH14bXMgKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJUaGUgcGFyYW1ldGVyICRUaW1lUGFyYW0gaGFzIGFuIGludmFsaWQgZGF0ZSBmb3JtYXQhIiwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgICRQYXJhbXskVGltZVBhcmFtfSA9ICRTZWxmLT57REJPYmplY3R9LT5RdW90ZSggJFBhcmFteyRUaW1lUGFyYW19ICk7CgogICAgICAgICMgYWRkIHRpbWUgcGFyYW1ldGVyIHRvIFdIRVJFCiAgICAgICAgaWYgKCRFeHQpIHsKICAgICAgICAgICAgJEV4dCAuPSAnIEFORCc7CiAgICAgICAgfQogICAgICAgICRFeHQgLj0gIiRUaW1lUGFyYW1zeyRUaW1lUGFyYW19ICckUGFyYW17JFRpbWVQYXJhbX0nIjsKICAgIH0KCiAgICAjIGFkZCBXSEVSRSBzdGF0ZW1lbnQKICAgIGlmICgkRXh0KSB7CiAgICAgICAgJEV4dCA9ICcgV0hFUkUgJyAuICRFeHQ7CiAgICB9CgogICAgIyBhZGQgdGhlIE9SREVSIEJZIGNsYXVzZQogICAgaWYgKEBTUUxPcmRlckJ5KSB7CiAgICAgICAgJEV4dCAuPSAnT1JERVIgQlkgJzsKICAgICAgICAkRXh0IC49IGpvaW4gJywgJywgQFNRTE9yZGVyQnk7CiAgICAgICAgJEV4dCAuPSAnICc7CiAgICAgICAgaWYgKEBPcmRlckJ5RmllbGRzKSB7CiAgICAgICAgICAgICRTUUwgLj0gJywgJyAuIGpvaW4gJywgJywgQE9yZGVyQnlGaWVsZHM7CiAgICAgICAgfQogICAgfQoKICAgICMgYWRkIGV4dGVuZGVkIFNRTAogICAgJFNRTCAuPSAnIEZST00gc3VydmV5IHMgJzsKICAgICRTUUwgLj0gJEV4dDsKCiAgICAjIGFzayBkYXRhYmFzZQogICAgcmV0dXJuIGlmICEkU2VsZi0+e0RCT2JqZWN0fS0+UHJlcGFyZSgKICAgICAgICBTUUwgICA9PiAkU1FMLAogICAgICAgIExpbWl0ID0+ICRQYXJhbXtMaW1pdH0sCiAgICApOwoKICAgICMgZmV0Y2ggdGhlIHJlc3VsdAogICAgbXkgQExpc3Q7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkU2VsZi0+e0RCT2JqZWN0fS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIHB1c2ggQExpc3QsICRSb3dbMF07CiAgICB9CiAgICByZXR1cm4gQExpc3Q7Cn0KCj1pdGVtIEdldFJpY2hUZXh0RG9jdW1lbnRDb21wbGV0ZSgpCgpnZXQgc29tZSB0ZXh0IHJlYWR5IHRvIHNob3cgYXMgcmljaHRleHQgYXR0YWNobWVudCBpbmxpbmUKCiAgICBteSAkUmljaFRleHREb2N1bWVudENvbXBsZXRlID0gJFN1cnZleU9iamVjdC0+R2V0UmljaFRleHREb2N1bWVudENvbXBsZXRlKAogICAgICAgIFRleHQgPT4gJFJpY2hUZXh0LAogICAgKTsKCj1jdXQKCnN1YiBHZXRSaWNoVGV4dERvY3VtZW50Q29tcGxldGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICRBcmd1bWVudCAocXcoVGV4dCkpIHsKICAgICAgICBpZiAoICFkZWZpbmVkICRQYXJhbXskQXJndW1lbnR9ICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkQXJndW1lbnQgcGFyYW1ldGVyISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBjbGVhbiBodG1sIHN0cmluZwogICAgbXkgJFRleHQgPSAkUGFyYW17VGV4dH07CiAgICAkVGV4dCA9fiBze1xBXCRodG1sXC90ZXh0XCRccyguKil9eyQxfXhtczsKCiAgICAjIGdldCBkb2N1bWVudCBjb21wbGV0ZQogICAgbXkgJEhUTUxEb2N1bWVudENvbXBsZXRlID0gJFNlbGYtPntIVE1MVXRpbHNPYmplY3R9LT5Eb2N1bWVudENvbXBsZXRlKAogICAgICAgIFN0cmluZyAgPT4gJFRleHQsCiAgICAgICAgQ2hhcnNldCA9PiAndXRmLTgnLAogICAgKTsKCiAgICByZXR1cm4gJEhUTUxEb2N1bWVudENvbXBsZXRlOwp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cDovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OlRpY2tldDo6RXZlbnQ6OlN1cnZleVNlbmRSZXF1ZXN0OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpTdXJ2ZXk7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgY2hlY2sgbmVlZGVkIG9iamVjdHMKICAgIGZvciBteSAkT2JqZWN0ICgKICAgICAgICBxdyhDb25maWdPYmplY3QgVGlja2V0T2JqZWN0IExvZ09iamVjdCBVc2VyT2JqZWN0IERCT2JqZWN0IE1haW5PYmplY3QgVGltZU9iamVjdCBFbmNvZGVPYmplY3QpCiAgICAgICAgKQogICAgewogICAgICAgICRTZWxmLT57JE9iamVjdH0gPSAkUGFyYW17JE9iamVjdH0gfHwgZGllICJHb3Qgbm8gJE9iamVjdCEiOwogICAgfQogICAgJFNlbGYtPntTdXJ2ZXlPYmplY3R9ID0gS2VybmVsOjpTeXN0ZW06OlN1cnZleS0+bmV3KCAleyRTZWxmfSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJEFyZ3VtZW50IChxdyhUaWNrZXRJRCBFdmVudCBDb25maWcpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRBcmd1bWVudH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICRBcmd1bWVudCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgbG9vcCBQcm90ZWN0aW9uLCBSZXF1ZXN0U2VuZCBjYWxscyBIaXN0b3J5QWRkCiAgICAjIHNvIHdlIGNhbid0IGxpc3RlbiBvbiBIaXN0b3J5QWRkIEV2ZW50cyBpbiBvcmRlciB0bwogICAgIyBwcmV2ZW50IGRlZXAgcmVjdXJzaW9uCiAgICByZXR1cm4gMSBpZiAkUGFyYW17RXZlbnR9IGVxICdIaXN0b3J5QWRkJzsKCiAgICAjIGdldCB0aWNrZXQgZGF0YQogICAgbXkgJVRpY2tldCA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0R2V0KAogICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICApOwoKICAgIHJldHVybiAxIGlmICRUaWNrZXR7U3RhdGVUeXBlfSBuZSAnY2xvc2VkJzsKCiAgICAjIHNlbmQgYWxzbyBzdXJ2ZXkgcmVxdWVzdCBvbiB0aWNrZXQgY3JlYXRpb24gKG9uIGZpcnN0IGFydGljbGUpCiAgICBpZiAoICRQYXJhbXtFdmVudH0gZXEgJ0FydGljbGVDcmVhdGUnICkgewoKICAgICAgICBteSBAQXJ0aWNsZUluZGV4ID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5BcnRpY2xlSW5kZXgoCiAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuIDEgaWYgc2NhbGFyIEBBcnRpY2xlSW5kZXggIT0gMTsKICAgIH0KCiAgICAjIHNlbmQgcmVxdWVzdAogICAgJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5SZXF1ZXN0U2VuZCgKICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7Cgp1c2UgdmFycyBxdygkU2VsZik7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OkN1c3RvbWVyVXNlcjsKdXNlIEtlcm5lbDo6U3lzdGVtOjpFbWFpbDsKdXNlIEtlcm5lbDo6U3lzdGVtOjpTdXJ2ZXk7CnVzZSBLZXJuZWw6OlN5c3RlbTo6VGlja2V0Owp1c2UgS2VybmVsOjpTeXN0ZW06OlVzZXI7CgojIGNyZWF0ZSBsb2NhbCBjb25maWcgb2JqZWN0Cm15ICRDb25maWdPYmplY3QgPSBLZXJuZWw6OkNvbmZpZy0+bmV3KCk7CgojIHNldCBjb25maWcgdG8gbm90IHNlbmQgZW1haWxzCiRDb25maWdPYmplY3QtPlNldCgKICAgIEtleSAgID0+ICdTZW5kbWFpbE1vZHVsZScsCiAgICBWYWx1ZSA9PiAnS2VybmVsOjpTeXN0ZW06OkVtYWlsOjpEb05vdFNlbmRFbWFpbCcsCik7CgojIGNyZWF0ZSBsb2NhbCBvYmplY3RzCm15ICRVc2VyT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OlVzZXItPm5ldygKICAgICV7JFNlbGZ9LAogICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCik7Cm15ICRUaWNrZXRPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6VGlja2V0LT5uZXcoCiAgICAleyRTZWxmfSwKICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAopOwpteSAkU3VydmV5T2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OlN1cnZleS0+bmV3KAogICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICBMb2dPYmplY3QgICAgPT4gJFNlbGYtPntMb2dPYmplY3R9LAogICAgVGltZU9iamVjdCAgID0+ICRTZWxmLT57VGltZU9iamVjdH0sCiAgICBEQk9iamVjdCAgICAgPT4gJFNlbGYtPntEQk9iamVjdH0sCiAgICBNYWluT2JqZWN0ICAgPT4gJFNlbGYtPntNYWluT2JqZWN0fSwKICAgIEVuY29kZU9iamVjdCA9PiAkU2VsZi0+e0VuY29kZU9iamVjdH0sCiAgICBVc2VyT2JqZWN0ICAgPT4gJFVzZXJPYmplY3QsCik7CgojIGNsZWFudXAgc3lzdGVtCiRTZWxmLT57REJPYmplY3R9LT5EbygKICAgIFNRTCA9PiAiREVMRVRFIEZST00gc3VydmV5X3JlcXVlc3QgV0hFUkUgc2VuZF90byBMSUtFICdcJVxAdW5pdHRlc3QuY29tXCUnIiwKKTsKCiMgY3JlYXRlIHN1cnZleQpteSAlU3VydmV5RGF0YSA9ICgKICAgIFRpdGxlICAgICAgICAgICAgICAgPT4gJ0EgVGl0bGUnLAogICAgSW50cm9kdWN0aW9uICAgICAgICA9PiAnVGhlIGludHJvZHVjdGlvbiBvZiB0aGUgc3VydmV5JywKICAgIERlc2NyaXB0aW9uICAgICAgICAgPT4gJ1RoZSBpbnRlcm5hbCBkZXNjcmlwdGlvbiBvZiB0aGUgc3VydmV5JywKICAgIE5vdGlmaWNhdGlvblNlbmRlciAgPT4gJ3F1YWxpdHlAdW5pdHRlc3QuY29tJywKICAgIE5vdGlmaWNhdGlvblN1YmplY3QgPT4gJ0hlbHAgdXMgd2l0aCB5b3VyIGZlZWRiYWNrISDDhMOWw5wnLAogICAgTm90aWZpY2F0aW9uQm9keSAgICA9PiAnRGVhciBjdXN0b21lci4uLiDDpMO2w7wnLAopOwpteSAkU3VydmV5SUQgPSAkU3VydmV5T2JqZWN0LT5TdXJ2ZXlOZXcoCiAgICBVc2VySUQgPT4gMSwKICAgICVTdXJ2ZXlEYXRhLAopOwokU2VsZi0+VHJ1ZSgKICAgICRTdXJ2ZXlJRCwKICAgICJTdXJ2ZXlOZXcoKSIsCik7Cgpmb3IgKCAxIC4uIDMgKSB7CiAgICBteSAkUXVlc3Rpb25BZGQgPSAkU3VydmV5T2JqZWN0LT5RdWVzdGlvbkFkZCgKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgIFN1cnZleUlEID0+ICRTdXJ2ZXlJRCwKICAgICAgICBRdWVzdGlvbiA9PiAnVGhlIFF1ZXN0aW9uJywKICAgICAgICBUeXBlICAgICA9PiAnUmFkaW8nLAogICAgKTsKfQpteSBATGlzdCA9ICRTdXJ2ZXlPYmplY3QtPlF1ZXN0aW9uTGlzdCgKICAgIFN1cnZleUlEID0+ICRTdXJ2ZXlJRCwKKTsKZm9yIG15ICRRdWVzdGlvbiAoQExpc3QpIHsKICAgIGZvciAoIDEgLi4gMyApIHsKICAgICAgICAkU3VydmV5T2JqZWN0LT5BbnN3ZXJBZGQoCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgID0+IDEsCiAgICAgICAgICAgIFF1ZXN0aW9uSUQgICAgID0+ICRRdWVzdGlvbi0+e1F1ZXN0aW9uSUR9LAogICAgICAgICAgICBBbnN3ZXIgICAgICAgICA9PiAnVGhlIEFuc3dlcicsCiAgICAgICAgICAgIEFuc3dlclJlcXVpcmVkID0+IDEsCiAgICAgICAgKTsKICAgIH0KfQoKbXkgJFN0YXR1c1NldCA9ICRTdXJ2ZXlPYmplY3QtPlN1cnZleVN0YXR1c1NldCgKICAgIFN1cnZleUlEICA9PiAkU3VydmV5SUQsCiAgICBOZXdTdGF0dXMgPT4gJ01hc3RlcicKKTsKJFNlbGYtPklzKAogICAgJFN0YXR1c1NldCwKICAgICdTdGF0dXNTZXQnLAogICAgIlN1cnZleVN0YXR1c1NldCgpIiwKKTsKCm15ICVTdXJ2ZXlHZXQgPSAkU3VydmV5T2JqZWN0LT5TdXJ2ZXlHZXQoCiAgICBTdXJ2ZXlJRCA9PiAkU3VydmV5SUQsCik7Cgpmb3IgbXkgJEtleSAoIHNvcnQga2V5cyAlU3VydmV5R2V0ICkgewogICAgbmV4dCBpZiAhZGVmaW5lZCAkU3VydmV5RGF0YXskS2V5fTsKICAgICRTZWxmLT5JcygKICAgICAgICAkU3VydmV5R2V0eyRLZXl9LAogICAgICAgICRTdXJ2ZXlEYXRheyRLZXl9LAogICAgICAgICJTdXJ2ZXlHZXQoKSIsCiAgICApOwp9CgpteSBAVGVzdHMgPSAoCiAgICB7CiAgICAgICAgTmFtZSAgICAgICAgICAgICAgICAgPT4gJyMxIHRyeScsCiAgICAgICAgJ1N1cnZleTo6U2VuZFBlcmlvZCcgPT4gMTAwLAogICAgICAgIFRpY2tldCAgICAgICAgICAgICAgID0+IHsKICAgICAgICAgICAgVGl0bGUgICAgICAgID0+ICdTb21lIFRpY2tldCBUaXRsZScsCiAgICAgICAgICAgIFF1ZXVlICAgICAgICA9PiAnUmF3JywKICAgICAgICAgICAgTG9jayAgICAgICAgID0+ICd1bmxvY2snLAogICAgICAgICAgICBQcmlvcml0eSAgICAgPT4gJzMgbm9ybWFsJywKICAgICAgICAgICAgU3RhdGUgICAgICAgID0+ICdvcGVuJywKICAgICAgICAgICAgQ3VzdG9tZXJObyAgID0+ICcxMjM0NjUnLAogICAgICAgICAgICBDdXN0b21lclVzZXIgPT4gJ2N1c3RvbWVyQHVuaXR0ZXN0LmNvbScsCiAgICAgICAgICAgIE93bmVySUQgICAgICA9PiAxLAogICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICB9LAogICAgICAgIEFydGljbGUgPT4gewogICAgICAgICAgICBBcnRpY2xlVHlwZSAgICA9PiAnZW1haWwtZXh0ZXJuYWwnLAogICAgICAgICAgICBTZW5kZXJUeXBlICAgICA9PiAnY3VzdG9tZXInLAogICAgICAgICAgICBGcm9tICAgICAgICAgICA9PiAnU29tZSBDdXN0b21lciA8c29tZUB1bml0dGVzdC5jb20+JywKICAgICAgICAgICAgVG8gICAgICAgICAgICAgPT4gJ1NvbWUgVG8gPHRvQHVuaXR0ZXN0LmNvbT4nLAogICAgICAgICAgICBTdWJqZWN0ICAgICAgICA9PiAnU29tZSBTdWJqZWN0JywKICAgICAgICAgICAgQm9keSAgICAgICAgICAgPT4gJ3RoZSBtZXNzYWdlIHRleHQnLAogICAgICAgICAgICBNZXNzYWdlSUQgICAgICA9PiAnPGFzZGFzZGFzZC4xMjNAdW5pdHRlc3QuY29tPicsCiAgICAgICAgICAgIENvbnRlbnRUeXBlICAgID0+ICd0ZXh0L3BsYWluOyBjaGFyc2V0PUlTTy04ODU5LTE1JywKICAgICAgICAgICAgSGlzdG9yeVR5cGUgICAgPT4gJ093bmVyVXBkYXRlJywKICAgICAgICAgICAgSGlzdG9yeUNvbW1lbnQgPT4gJ1NvbWUgZnJlZSB0ZXh0IScsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgID0+IDEsCiAgICAgICAgICAgIE5vQWdlbnROb3RpZnkgID0+IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgaWYgeW91IGRvbid0IHdhbnQgdG8gc2VuZCBhZ2VudCBub3RpZmljYXRpb25zCiAgICAgICAgfSwKICAgICAgICBSZXN1bHQgPT4gWwogICAgICAgICAgICAxLAogICAgICAgICAgICAwLAogICAgICAgIF0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgICAgICAgICAgID0+ICcjMiB0cnknLAogICAgICAgICdTdXJ2ZXk6OlNlbmRQZXJpb2QnID0+IDEwMCwKICAgICAgICBUaWNrZXQgICAgICAgICAgICAgICA9PiB7CiAgICAgICAgICAgIFRpdGxlICAgICAgICA9PiAnU29tZSBUaWNrZXQgVGl0bGUnLAogICAgICAgICAgICBRdWV1ZSAgICAgICAgPT4gJ1JhdycsCiAgICAgICAgICAgIExvY2sgICAgICAgICA9PiAndW5sb2NrJywKICAgICAgICAgICAgUHJpb3JpdHkgICAgID0+ICczIG5vcm1hbCcsCiAgICAgICAgICAgIFN0YXRlICAgICAgICA9PiAnb3BlbicsCiAgICAgICAgICAgIEN1c3RvbWVyTm8gICA9PiAnMTIzNDY1JywKICAgICAgICAgICAgQ3VzdG9tZXJVc2VyID0+ICdjdXN0b21lckB1bml0dGVzdC5jb20nLAogICAgICAgICAgICBPd25lcklEICAgICAgPT4gMSwKICAgICAgICAgICAgVXNlcklEICAgICAgID0+IDEsCiAgICAgICAgfSwKICAgICAgICBBcnRpY2xlID0+IHsKICAgICAgICAgICAgQXJ0aWNsZVR5cGUgICAgPT4gJ2VtYWlsLWV4dGVybmFsJywKICAgICAgICAgICAgU2VuZGVyVHlwZSAgICAgPT4gJ2N1c3RvbWVyJywKICAgICAgICAgICAgRnJvbSAgICAgICAgICAgPT4gJ1NvbWUgQ3VzdG9tZXIgPFNPTUVAdW5pdHRlc3QuY29tPicsCiAgICAgICAgICAgIFRvICAgICAgICAgICAgID0+ICdTb21lIFRvIDx0b0B1bml0dGVzdC5jb20+JywKICAgICAgICAgICAgU3ViamVjdCAgICAgICAgPT4gJ1NvbWUgU3ViamVjdCcsCiAgICAgICAgICAgIEJvZHkgICAgICAgICAgID0+ICd0aGUgbWVzc2FnZSB0ZXh0JywKICAgICAgICAgICAgTWVzc2FnZUlEICAgICAgPT4gJzxhc2Rhc2Rhc2QuMTIzQHVuaXR0ZXN0LmNvbT4nLAogICAgICAgICAgICBDb250ZW50VHlwZSAgICA9PiAndGV4dC9wbGFpbjsgY2hhcnNldD1JU08tODg1OS0xNScsCiAgICAgICAgICAgIEhpc3RvcnlUeXBlICAgID0+ICdPd25lclVwZGF0ZScsCiAgICAgICAgICAgIEhpc3RvcnlDb21tZW50ID0+ICdTb21lIGZyZWUgdGV4dCEnLAogICAgICAgICAgICBVc2VySUQgICAgICAgICA9PiAxLAogICAgICAgICAgICBOb0FnZW50Tm90aWZ5ICA9PiAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGlmIHlvdSBkb24ndCB3YW50IHRvIHNlbmQgYWdlbnQgbm90aWZpY2F0aW9ucwogICAgICAgIH0sCiAgICAgICAgUmVzdWx0ID0+IFsKICAgICAgICAgICAgMCwKICAgICAgICAgICAgMCwKICAgICAgICBdLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgICAgICAgICAgICAgICA9PiAnIzMgdHJ5JywKICAgICAgICAnU3VydmV5OjpTZW5kUGVyaW9kJyA9PiAxMDAsCiAgICAgICAgVGlja2V0ICAgICAgICAgICAgICAgPT4gewogICAgICAgICAgICBUaXRsZSAgICAgICAgPT4gJ1NvbWUgVGlja2V0IFRpdGxlJywKICAgICAgICAgICAgUXVldWUgICAgICAgID0+ICdSYXcnLAogICAgICAgICAgICBMb2NrICAgICAgICAgPT4gJ3VubG9jaycsCiAgICAgICAgICAgIFByaW9yaXR5ICAgICA9PiAnMyBub3JtYWwnLAogICAgICAgICAgICBTdGF0ZSAgICAgICAgPT4gJ29wZW4nLAogICAgICAgICAgICBDdXN0b21lck5vICAgPT4gJzEyMzQ2NScsCiAgICAgICAgICAgIEN1c3RvbWVyVXNlciA9PiAnY3VzdG9tZXJAdW5pdHRlc3QuY29tJywKICAgICAgICAgICAgT3duZXJJRCAgICAgID0+IDEsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgICAgIH0sCiAgICAgICAgQXJ0aWNsZSA9PiB7CiAgICAgICAgICAgIEFydGljbGVUeXBlICAgID0+ICdlbWFpbC1leHRlcm5hbCcsCiAgICAgICAgICAgIFNlbmRlclR5cGUgICAgID0+ICdjdXN0b21lcicsCiAgICAgICAgICAgIEZyb20gICAgICAgICAgID0+ICdTT01FQHVuaXR0ZXN0LmNvbScsCiAgICAgICAgICAgIFRvICAgICAgICAgICAgID0+ICdTb21lIFRvIDx0b0B1bml0dGVzdC5jb20+JywKICAgICAgICAgICAgU3ViamVjdCAgICAgICAgPT4gJ1NvbWUgU3ViamVjdCcsCiAgICAgICAgICAgIEJvZHkgICAgICAgICAgID0+ICd0aGUgbWVzc2FnZSB0ZXh0JywKICAgICAgICAgICAgTWVzc2FnZUlEICAgICAgPT4gJzxhc2Rhc2Rhc2QuMTIzQHVuaXR0ZXN0LmNvbT4nLAogICAgICAgICAgICBDb250ZW50VHlwZSAgICA9PiAndGV4dC9wbGFpbjsgY2hhcnNldD1JU08tODg1OS0xNScsCiAgICAgICAgICAgIEhpc3RvcnlUeXBlICAgID0+ICdPd25lclVwZGF0ZScsCiAgICAgICAgICAgIEhpc3RvcnlDb21tZW50ID0+ICdTb21lIGZyZWUgdGV4dCEnLAogICAgICAgICAgICBVc2VySUQgICAgICAgICA9PiAxLAogICAgICAgICAgICBOb0FnZW50Tm90aWZ5ICA9PiAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpZiB5b3UgZG9uJ3Qgd2FudCB0byBzZW5kIGFnZW50IG5vdGlmaWNhdGlvbnMKICAgICAgICB9LAogICAgICAgIFJlc3VsdCA9PiBbCiAgICAgICAgICAgIDAsCiAgICAgICAgICAgIDAsCiAgICAgICAgXSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgICAgICAgICAgICAgICAgPT4gJyM0IHRyeScsCiAgICAgICAgU2xlZXAgICAgICAgICAgICAgICAgPT4gODAsCiAgICAgICAgJ1N1cnZleTo6U2VuZFBlcmlvZCcgPT4gMSAvIDI0IC8gNjAsCiAgICAgICAgVGlja2V0ICAgICAgICAgICAgICAgPT4gewogICAgICAgICAgICBUaXRsZSAgICAgICAgPT4gJ1NvbWUgVGlja2V0IFRpdGxlJywKICAgICAgICAgICAgUXVldWUgICAgICAgID0+ICdSYXcnLAogICAgICAgICAgICBMb2NrICAgICAgICAgPT4gJ3VubG9jaycsCiAgICAgICAgICAgIFByaW9yaXR5ICAgICA9PiAnMyBub3JtYWwnLAogICAgICAgICAgICBTdGF0ZSAgICAgICAgPT4gJ29wZW4nLAogICAgICAgICAgICBDdXN0b21lck5vICAgPT4gJzEyMzQ2NScsCiAgICAgICAgICAgIEN1c3RvbWVyVXNlciA9PiAnY3VzdG9tZXJAdW5pdHRlc3QuY29tJywKICAgICAgICAgICAgT3duZXJJRCAgICAgID0+IDEsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgICAgIH0sCiAgICAgICAgQXJ0aWNsZSA9PiB7CiAgICAgICAgICAgIEFydGljbGVUeXBlICAgID0+ICdlbWFpbC1leHRlcm5hbCcsCiAgICAgICAgICAgIFNlbmRlclR5cGUgICAgID0+ICdjdXN0b21lcicsCiAgICAgICAgICAgIEZyb20gICAgICAgICAgID0+ICdTT01FQHVuaXR0ZXN0LmNvbScsCiAgICAgICAgICAgIFRvICAgICAgICAgICAgID0+ICdTb21lIFRvIDx0b0B1bml0dGVzdC5jb20+JywKICAgICAgICAgICAgU3ViamVjdCAgICAgICAgPT4gJ1NvbWUgU3ViamVjdCcsCiAgICAgICAgICAgIEJvZHkgICAgICAgICAgID0+ICd0aGUgbWVzc2FnZSB0ZXh0JywKICAgICAgICAgICAgTWVzc2FnZUlEICAgICAgPT4gJzxhc2Rhc2Rhc2QuMTIzQHVuaXR0ZXN0LmNvbT4nLAogICAgICAgICAgICBDb250ZW50VHlwZSAgICA9PiAndGV4dC9wbGFpbjsgY2hhcnNldD1JU08tODg1OS0xNScsCiAgICAgICAgICAgIEhpc3RvcnlUeXBlICAgID0+ICdPd25lclVwZGF0ZScsCiAgICAgICAgICAgIEhpc3RvcnlDb21tZW50ID0+ICdTb21lIGZyZWUgdGV4dCEnLAogICAgICAgICAgICBVc2VySUQgICAgICAgICA9PiAxLAogICAgICAgICAgICBOb0FnZW50Tm90aWZ5ICA9PiAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpZiB5b3UgZG9uJ3Qgd2FudCB0byBzZW5kIGFnZW50IG5vdGlmaWNhdGlvbnMKICAgICAgICB9LAogICAgICAgIFJlc3VsdCA9PiBbCiAgICAgICAgICAgIDEsCiAgICAgICAgICAgIDAsCiAgICAgICAgXSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgICAgICAgICAgICAgICAgPT4gJyM1IHRyeScsCiAgICAgICAgU2xlZXAgICAgICAgICAgICAgICAgPT4gMjAsCiAgICAgICAgJ1N1cnZleTo6U2VuZFBlcmlvZCcgPT4gMSAvIDI0IC8gNjAsCiAgICAgICAgVGlja2V0ICAgICAgICAgICAgICAgPT4gewogICAgICAgICAgICBUaXRsZSAgICAgICAgPT4gJ1NvbWUgVGlja2V0IFRpdGxlJywKICAgICAgICAgICAgUXVldWUgICAgICAgID0+ICdSYXcnLAogICAgICAgICAgICBMb2NrICAgICAgICAgPT4gJ3VubG9jaycsCiAgICAgICAgICAgIFByaW9yaXR5ICAgICA9PiAnMyBub3JtYWwnLAogICAgICAgICAgICBTdGF0ZSAgICAgICAgPT4gJ29wZW4nLAogICAgICAgICAgICBDdXN0b21lck5vICAgPT4gJzEyMzQ2NScsCiAgICAgICAgICAgIEN1c3RvbWVyVXNlciA9PiAnY3VzdG9tZXJAdW5pdHRlc3QuY29tJywKICAgICAgICAgICAgT3duZXJJRCAgICAgID0+IDEsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgICAgIH0sCiAgICAgICAgQXJ0aWNsZSA9PiB7CiAgICAgICAgICAgIEFydGljbGVUeXBlICAgID0+ICdlbWFpbC1leHRlcm5hbCcsCiAgICAgICAgICAgIFNlbmRlclR5cGUgICAgID0+ICdjdXN0b21lcicsCiAgICAgICAgICAgIEZyb20gICAgICAgICAgID0+ICdTT01FQHVuaXR0ZXN0LmNvbScsCiAgICAgICAgICAgIFRvICAgICAgICAgICAgID0+ICdTb21lIFRvIDx0b0B1bml0dGVzdC5jb20+JywKICAgICAgICAgICAgU3ViamVjdCAgICAgICAgPT4gJ1NvbWUgU3ViamVjdCcsCiAgICAgICAgICAgIEJvZHkgICAgICAgICAgID0+ICd0aGUgbWVzc2FnZSB0ZXh0JywKICAgICAgICAgICAgTWVzc2FnZUlEICAgICAgPT4gJzxhc2Rhc2Rhc2QuMTIzQHVuaXR0ZXN0LmNvbT4nLAogICAgICAgICAgICBDb250ZW50VHlwZSAgICA9PiAndGV4dC9wbGFpbjsgY2hhcnNldD1JU08tODg1OS0xNScsCiAgICAgICAgICAgIEhpc3RvcnlUeXBlICAgID0+ICdPd25lclVwZGF0ZScsCiAgICAgICAgICAgIEhpc3RvcnlDb21tZW50ID0+ICdTb21lIGZyZWUgdGV4dCEnLAogICAgICAgICAgICBVc2VySUQgICAgICAgICA9PiAxLAogICAgICAgICAgICBOb0FnZW50Tm90aWZ5ICA9PiAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpZiB5b3UgZG9uJ3Qgd2FudCB0byBzZW5kIGFnZW50IG5vdGlmaWNhdGlvbnMKICAgICAgICB9LAogICAgICAgIFJlc3VsdCA9PiBbCiAgICAgICAgICAgIDAsCiAgICAgICAgICAgIDAsCiAgICAgICAgXSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICcjNiB0cnknLAogICAgICAgIFRpY2tldCA9PiB7CiAgICAgICAgICAgIFRpdGxlICAgICAgICA9PiAnU29tZSBUaWNrZXQgVGl0bGUnLAogICAgICAgICAgICBRdWV1ZSAgICAgICAgPT4gJ1JhdycsCiAgICAgICAgICAgIExvY2sgICAgICAgICA9PiAndW5sb2NrJywKICAgICAgICAgICAgUHJpb3JpdHkgICAgID0+ICczIG5vcm1hbCcsCiAgICAgICAgICAgIFN0YXRlICAgICAgICA9PiAnb3BlbicsCiAgICAgICAgICAgIEN1c3RvbWVyTm8gICA9PiAnMTIzNDY1JywKICAgICAgICAgICAgQ3VzdG9tZXJVc2VyID0+ICdjdXN0b21lckB1bml0dGVzdC5jb20nLAogICAgICAgICAgICBPd25lcklEICAgICAgPT4gMSwKICAgICAgICAgICAgVXNlcklEICAgICAgID0+IDEsCiAgICAgICAgfSwKICAgICAgICBBcnRpY2xlID0+IHsKICAgICAgICAgICAgQXJ0aWNsZVR5cGUgICAgPT4gJ2VtYWlsLWV4dGVybmFsJywKICAgICAgICAgICAgU2VuZGVyVHlwZSAgICAgPT4gJ2N1c3RvbWVyJywKICAgICAgICAgICAgRnJvbSAgICAgICAgICAgPT4gJ015IE5hbWUnLAogICAgICAgICAgICBUbyAgICAgICAgICAgICA9PiAnU29tZSBUbyA8dG9AdW5pdHRlc3QuY29tPicsCiAgICAgICAgICAgIFN1YmplY3QgICAgICAgID0+ICdTb21lIFN1YmplY3QnLAogICAgICAgICAgICBCb2R5ICAgICAgICAgICA9PiAndGhlIG1lc3NhZ2UgdGV4dCcsCiAgICAgICAgICAgIE1lc3NhZ2VJRCAgICAgID0+ICc8YXNkYXNkYXNkLjEyM0B1bml0dGVzdC5jb20+JywKICAgICAgICAgICAgQ29udGVudFR5cGUgICAgPT4gJ3RleHQvcGxhaW47IGNoYXJzZXQ9SVNPLTg4NTktMTUnLAogICAgICAgICAgICBIaXN0b3J5VHlwZSAgICA9PiAnT3duZXJVcGRhdGUnLAogICAgICAgICAgICBIaXN0b3J5Q29tbWVudCA9PiAnU29tZSBmcmVlIHRleHQhJywKICAgICAgICAgICAgVXNlcklEICAgICAgICAgPT4gMSwKICAgICAgICAgICAgTm9BZ2VudE5vdGlmeSAgPT4gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgaWYgeW91IGRvbid0IHdhbnQgdG8gc2VuZCBhZ2VudCBub3RpZmljYXRpb25zCiAgICAgICAgfSwKICAgICAgICBSZXN1bHQgPT4gWwogICAgICAgICAgICAwLAogICAgICAgICAgICAwLAogICAgICAgIF0sCiAgICB9LAopOwoKZm9yIG15ICRUZXN0IChAVGVzdHMpIHsKCiAgICBpZiAoICRUZXN0LT57J1N1cnZleTo6U2VuZFBlcmlvZCd9ICkgewogICAgICAgICRDb25maWdPYmplY3QtPlNldCgKICAgICAgICAgICAgS2V5ICAgPT4gJ1N1cnZleTo6U2VuZFBlcmlvZCcsCiAgICAgICAgICAgIFZhbHVlID0+ICRUZXN0LT57J1N1cnZleTo6U2VuZFBlcmlvZCd9LAogICAgICAgICk7CiAgICB9CgogICAgaWYgKCAkVGVzdC0+e1NsZWVwfSApIHsKICAgICAgICBzbGVlcCAkVGVzdC0+e1NsZWVwfTsKICAgIH0KCiAgICBteSAkVGlja2V0SUQgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRDcmVhdGUoCiAgICAgICAgJXsgJFRlc3QtPntUaWNrZXR9IH0sCiAgICApOwoKICAgIG15ICRBcnRpY2xlSUQgPSAkVGlja2V0T2JqZWN0LT5BcnRpY2xlQ3JlYXRlKAogICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAleyAkVGVzdC0+e0FydGljbGV9IH0sCiAgICApOwoKICAgICMgc2VuZCBzdXJ2ZXkgZmlyc3QgdGltZQogICAgbXkgKCAkSGVhZGVyUmVmLCAkQm9keVJlZiApID0gJFN1cnZleU9iamVjdC0+UmVxdWVzdFNlbmQoCiAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgKTsKCiAgICAjIGNoZWNrIGlmIHN1cnZleSBnb3Qgc2VudAogICAgaWYgKCAkVGVzdC0+e1Jlc3VsdH0tPlswXSApIHsKCiAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICR7JEhlYWRlclJlZn0sCiAgICAgICAgICAgICIkVGVzdC0+e05hbWV9IFJlcXVlc3RTZW5kKCkgLSBzdXJ2ZXkgZ290IHNlbnQiLAogICAgICAgICk7CgogICAgICAgICR7JEhlYWRlclJlZn0gPX4gbXsgXiBTdWJqZWN0OiBbIF0gKCAuKz8gKSBcbiBcUys6IFsgXSB9eG1zOwogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJDEsCiAgICAgICAgICAgICdIZWxwIHVzIHdpdGggeW91ciBmZWVkYmFjayEgPT9VVEYtOD9RPz1DMz04ND1DMz05Nj1DMz05Qz89JywKICAgICAgICAgICAgIiRUZXN0LT57TmFtZX0gVGVzdCBzcGVjaWFsIGNoYXJhY3RlcnMgaW4gZW1haWwgc3ViamVjdCIsCiAgICAgICAgKTsKCiAgICAgICAgIyBkZWZpbmUgbWFpbCBib2R5CiAgICAgICAgbXkgJE1haWxib2R5MSA9ICJUaGlzIGlzIGEgbXVsdGktcGFydCBtZXNzYWdlIGluIE1JTUUgZm9ybWF0Li4uCgotLS0tLS0tLS0tLS09X01FU1NBR0VJRApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9XCJ1dGYtOFwiCkNvbnRlbnQtRGlzcG9zaXRpb246IGlubGluZQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpEZWFyIGN1c3RvbWVyLi4uID1DMz1BND1DMz1CNj1DMz1CQz0KCi0tLS0tLS0tLS0tLT1fTUVTU0FHRUlECkNvbnRlbnQtVHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PVwidXRmLThcIgpDb250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmUKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKPGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0zRFwiQ29udGVudC1UeXBlXCIgY29udGVudD0zRFwidGV4dC9odG1sOyBjaGFyc2V0PQo9M0R1dGYtOFwiLz48L2hlYWQ+PGJvZHkgc3R5bGU9M0RcImZvbnQtZmFtaWx5OkdlbmV2YSxIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZT0KcmlmOyBmb250LXNpemU6IDEycHg7XCI+RGVhciBjdXN0b21lci4uLiA9QzM9QTQ9QzM9QjY9QzM9QkM8L2JvZHk+PC9odG1sPj0KCi0tLS0tLS0tLS0tLT1fTUVTU0FHRUlELS0KIjsKCiAgICAgICAgIyBjb3B5IG1haWwgYm9keQogICAgICAgIG15ICRNYWlsYm9keTIgPSAkeyRCb2R5UmVmfTsKCiAgICAgICAgIyBwcmVwYXJlIG1haWwgYm9keQogICAgICAgICRNYWlsYm9keTIgPX4gc3sgXGR7OCwxMn0gLSBcZHszLDZ9IC0gXGR7MSwzfSB9e01FU1NBR0VJRH14bXNnOwoKICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICRNYWlsYm9keTIsCiAgICAgICAgICAgICRNYWlsYm9keTEsCiAgICAgICAgICAgICIkVGVzdC0+e05hbWV9IFRlc3Qgc3BlY2lhbCBjaGFyYWN0ZXJzIGluIGVtYWlsIGJvZHkiLAogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkU2VsZi0+RmFsc2UoCiAgICAgICAgICAgICR7JEhlYWRlclJlZn0sCiAgICAgICAgICAgICIkVGVzdC0+e05hbWV9IFJlcXVlc3RTZW5kKCkgLSBubyBzdXJ2ZXkgZ290IHNlbnQiLAogICAgICAgICk7CiAgICB9CgogICAgIyBzZW5kIHN1cnZleSBzZWNvbmQgdGltZQogICAgKCAkSGVhZGVyUmVmLCAkQm9keVJlZiApID0gJFN1cnZleU9iamVjdC0+UmVxdWVzdFNlbmQoCiAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgKTsKCiAgICAjIGNoZWNrIGlmIHN1cnZleSBnb3Qgc2VudAogICAgaWYgKCAkVGVzdC0+e1Jlc3VsdH0tPlsxXSApIHsKICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgJHskSGVhZGVyUmVmfSwKICAgICAgICAgICAgIiRUZXN0LT57TmFtZX0gMiBSZXF1ZXN0U2VuZCgpIC0gc3VydmV5IGdvdCBzZW50IiwKICAgICAgICApOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJFNlbGYtPkZhbHNlKAogICAgICAgICAgICAkeyRIZWFkZXJSZWZ9LAogICAgICAgICAgICAiJFRlc3QtPntOYW1lfSAyIFJlcXVlc3RTZW5kKCkgLSBubyBzdXJ2ZXkgZ290IHNlbnQiLAogICAgICAgICk7CiAgICB9CgogICAgbXkgJERlbGV0ZSA9ICRUaWNrZXRPYmplY3QtPlRpY2tldERlbGV0ZSgKICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SUQsCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICk7Cn0KCiMgdGVzdCBHZXRSaWNoVGV4dERvY3VtZW50Q29tcGxldGUKewogICAgbXkgJVRleHQ7CgogICAgI3Rlc3RzIGZvciByaWNoIHRleHQKICAgICRUZXh0e1JpY2hUZXh0fSA9IHsKICAgICAgICBJbnB1dCA9PgogICAgICAgICAgICAnJGh0bWwvdGV4dCQgPGVtPlRoaXMgaXMgdGhlIGludHJvZHVjdGlvbiB0byB0aGlzIHN1cnZleSwgaWYgeW91IHdhbnQgdG8gYW5zd2VyIGl0IHlvdSBoYXZlIHRvPGJyIC8+CnJlYWQgdGhpcyBmaXJzdCwgcGxlYXNlIGxldCB1cyB0ZWxsIHlvdSB0aGFua3MgZm9yIHRoZSBvcHBvcnR1bml0eSB0byBpbnRlcmFjdDxiciAvPgp3aXRoIHlvdS48L2VtPjxiciAvPgo8dWw+CiAgICA8bGk+CiAgICAgICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTI4KTsiPlBsZWFzZSByZWFkIGFsbCB0aGUgaW5zdHJ1Y3Rpb25zPC9zcGFuPjwvbGk+CiAgICA8bGk+CiAgICAgICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTI4KTsiPlBsZWFzZSB0YWtlIGF0dGVudGlvbiBpbiBldmVyeSBxdWVzdGlvbjwvc3Bhbj48L2xpPgogICAgPGxpPgogICAgICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDEyOCk7Ij5BbnN3ZXIgYXMgY2xlYXIgYXMgcG9zc2libGU8L3NwYW4+PC9saT4KPC91bD4KPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMjU1LCAxNjAsIDEyMik7Ij5UaGlzIGlzIGFsbCB3ZSBoYXZlIHRvIHRlbGwgeW91IGZvciBub3csIHBsZWFzZSB0YWtlIHRoZSBvcHBvcnR1bml0eSBub3cgdG88YnIgLz4KZXhwcmVzcyB5b3VyIGZlZWxpbmdzIGluIG91ciBzdXJ2ZXkuPC9zcGFuPjxiciAvPgo8YnIgLz4KPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMjU1LCAxNjAsIDEyMik7Ij4gZ3JlZXRpbmdzLDxiciAvPgo8YnIgLz4KZGFuaWVseiw8L3NwYW4+PGJyIC8+JywKICAgICAgICBPdXRwdXQgPT4KICAgICAgICAgICAgJzxodG1sPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ii8+PC9oZWFkPjxib2R5IHN0eWxlPSJmb250LWZhbWlseTpHZW5ldmEsSGVsdmV0aWNhLEFyaWFsLHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTJweDsiPjxlbT5UaGlzIGlzIHRoZSBpbnRyb2R1Y3Rpb24gdG8gdGhpcyBzdXJ2ZXksIGlmIHlvdSB3YW50IHRvIGFuc3dlciBpdCB5b3UgaGF2ZSB0bzxiciAvPgpyZWFkIHRoaXMgZmlyc3QsIHBsZWFzZSBsZXQgdXMgdGVsbCB5b3UgdGhhbmtzIGZvciB0aGUgb3Bwb3J0dW5pdHkgdG8gaW50ZXJhY3Q8YnIgLz4Kd2l0aCB5b3UuPC9lbT48YnIgLz4KPHVsPgogICAgPGxpPgogICAgICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDEyOCk7Ij5QbGVhc2UgcmVhZCBhbGwgdGhlIGluc3RydWN0aW9uczwvc3Bhbj48L2xpPgogICAgPGxpPgogICAgICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDEyOCk7Ij5QbGVhc2UgdGFrZSBhdHRlbnRpb24gaW4gZXZlcnkgcXVlc3Rpb248L3NwYW4+PC9saT4KICAgIDxsaT4KICAgICAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxMjgpOyI+QW5zd2VyIGFzIGNsZWFyIGFzIHBvc3NpYmxlPC9zcGFuPjwvbGk+CjwvdWw+CjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDI1NSwgMTYwLCAxMjIpOyI+VGhpcyBpcyBhbGwgd2UgaGF2ZSB0byB0ZWxsIHlvdSBmb3Igbm93LCBwbGVhc2UgdGFrZSB0aGUgb3Bwb3J0dW5pdHkgbm93IHRvPGJyIC8+CmV4cHJlc3MgeW91ciBmZWVsaW5ncyBpbiBvdXIgc3VydmV5Ljwvc3Bhbj48YnIgLz4KPGJyIC8+CjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDI1NSwgMTYwLCAxMjIpOyI+IGdyZWV0aW5ncyw8YnIgLz4KPGJyIC8+CmRhbmllbHosPC9zcGFuPjxiciAvPjwvYm9keT48L2h0bWw+JywKICAgIH07CgogICAgIyBjcmVhdGUgdGVzdHMgZm9yIHNpbXBsZSB0ZXh0CiAgICAkVGV4dHtTaW1wbGVUZXh0fSA9IHsKICAgICAgICBJbnB1dCA9PiAiVGhpcyBpcyBhbiBpbnRlcm5hbCBkZXNjcmlwdGlvbiBleGFtcGxlOgoKIC0gT25lCiAtIFR3bwogLSBUaHJlZQogLSBGb3VyCiAtIEZpdmUKClRoYXQncyBpdC4KLWR6CiIsCiAgICAgICAgT3V0cHV0ID0+CiAgICAgICAgICAgICc8aHRtbD48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIvPjwvaGVhZD48Ym9keSBzdHlsZT0iZm9udC1mYW1pbHk6R2VuZXZhLEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmOyBmb250LXNpemU6IDEycHg7Ij5UaGlzIGlzIGFuIGludGVybmFsIGRlc2NyaXB0aW9uIGV4YW1wbGU6CgogLSBPbmUKIC0gVHdvCiAtIFRocmVlCiAtIEZvdXIKIC0gRml2ZQoKVGhhdFwncyBpdC4KLWR6CjwvYm9keT48L2h0bWw+JywKICAgIH07CgogICAgbXkgJERvY3VtZW50Q29tcGxldGU7CiAgICBmb3IgbXkgJFRleHRUeXBlICggc29ydCBrZXlzICVUZXh0ICkgewogICAgICAgICREb2N1bWVudENvbXBsZXRlID0gJFN1cnZleU9iamVjdC0+R2V0UmljaFRleHREb2N1bWVudENvbXBsZXRlKCBUZXh0ID0+ICRUZXh0eyRUZXh0VHlwZX0tPntJbnB1dH0gKTsKICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICRUZXh0eyRUZXh0VHlwZX0tPntPdXRwdXR9LAogICAgICAgICAgICAkRG9jdW1lbnRDb21wbGV0ZSwKICAgICAgICAgICAgIkdldFJpY2hUZXh0RG9jdW1lbnRDb21wbGV0ZSBUZXN0IC0gJFRleHRUeXBlIiwKICAgICAgICApOwogICAgfQp9CgojIGFkZGVkICh2ZXJ5IGxpbWl0ZWQpIFN1cnZleVNlYXJjaCB0ZXN0cwoKbXkgQElEcyA9ICRTdXJ2ZXlPYmplY3QtPlN1cnZleVNlYXJjaCgKICAgIE5vdGlmaWNhdGlvblNlbmRlciA9PiAncXVhbGl0eUB1bml0dGVzdC5jb20nLAogICAgTGltaXQgICAgICAgICAgICAgID0+IDE1MCwgICAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICBVc2VySUQgICAgICAgICAgICAgPT4gMSwKKTsKCiRTZWxmLT5UcnVlKAogICAgc2NhbGFyIEBJRHMsCiAgICAiU3VydmV5U2VhcmNoKCkiLAopOwoKbXkgQFNvcnRlZElEcyA9ICRTdXJ2ZXlPYmplY3QtPlN1cnZleVNlYXJjaCgKICAgIE5vdGlmaWNhdGlvblNlbmRlciA9PiAncXVhbGl0eUB1bml0dGVzdC5jb20nLAogICAgT3JkZXJCeSAgICAgICAgICAgID0+IFsgJ1N1cnZleUlEJywgJ1RpdGxlJyBdLCAgICAjIChvcHRpb25hbCkKICAgIE9yZGVyQnlEaXJlY3Rpb24gICA9PiBbICdEb3duJywgJ1VwJyBdLCAgICAgICAgICAgIyAob3B0aW9uYWwpCiAgICBMaW1pdCAgICAgICAgICAgICAgPT4gMTUwLCAgICAgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKQogICAgVXNlcklEICAgICAgICAgICAgID0+IDEsCik7CgokU2VsZi0+VHJ1ZSgKICAgIHNjYWxhciBASURzLAogICAgIlN1cnZleVNlYXJjaCgpIHdpdGggc29ydCIsCik7CgojIGNsZWFudXAgc3lzdGVtCiRTZWxmLT57REJPYmplY3R9LT5EbygKICAgIFNRTCA9PiAiREVMRVRFIEZST00gc3VydmV5X3JlcXVlc3QgV0hFUkUgc2VuZF90byBMSUtFICdcJVxAdW5pdHRlc3QuY29tXCUnIiwKKTsKCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dFN1cnZleTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0OwoKPW92ZXIgNAoKPWl0ZW0gU3VydmV5TGlzdFNob3coKQoKUmV0dXJucyBhIGxpc3Qgb2Ygc3VydmV5cyBsaXN0IHdpdGggcGFnaW5hdGlvbi4KClRoaXMgZnVuY3Rpb24gaXMgc2ltaWxhciB0byBMPEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXRUaWNrZXQ6OlRpY2tldExpc3RTaG93KCk+CmluIEY8S2VybmVsL091dHB1dC9IVE1ML0xheW91dFRpY2tldC5wbT4uCgogICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPlN1cnZleUxpc3RTaG93KAogICAgICAgIFN1cnZleUlEcyAgPT4gJFN1cnZleUlEc1JlZiwgICAgICAgICAgICAgICAgICAgICAgIyB0b3RhbCBsaXN0IG9mIHN1cnZleXMgaWRzLCB0aGF0IGNhbiBiZSBsaXN0ZWQKICAgICAgICBUb3RhbCAgICAgID0+IHNjYWxhciBAeyAkU3VydmV5SURzUmVmIH0sICAgICAgICAgICMgdG90YWwgbnVtYmVyIG9mIGxpc3QgaXRlbXMsIGNoYW5nZXMgaW4gdGhpcyBjYXNlCiAgICAgICAgVmlldyAgICAgICA9PiAkU2VsZi0+e1ZpZXd9LCAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsLCB0aGUgZGVmYXVsdCB2YWx1ZSBpcyAnU21hbGwnCiAgICAgICAgRmlsdGVyICAgICA9PiAnQWxsJywKICAgICAgICBGaWx0ZXJzICAgID0+IFwlTmF2QmFyRmlsdGVyLAogICAgICAgIEZpbHRlckxpbmsgPT4gJExpbmtGaWx0ZXIsCiAgICAgICAgVGl0bGVOYW1lICA9PiAnT3ZlcnZpZXc6IFN1cnZleScsCiAgICAgICAgVGl0bGVWYWx1ZSA9PiAkU2VsZi0+e0ZpbHRlcn0sCiAgICAgICAgRW52ICAgICAgICA9PiAkU2VsZiwKICAgICAgICBMaW5rUGFnZSAgID0+ICRMaW5rUGFnZSwKICAgICk7Cgo9Y3V0CgpzdWIgU3VydmV5TGlzdFNob3cgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIHRha2Ugb2JqZWN0IHJlZiB0byBsb2NhbCwgcmVtb3ZlIGl0IGZyb20gJVBhcmFtIChwcmV2ZW50IG1lbW9yeSBsZWFrKQogICAgbXkgJEVudiA9IGRlbGV0ZSAkUGFyYW17RW52fTsKCiAgICAjIGxvb2t1cCBsYXRlc3QgdXNlZCB2aWV3IG1vZGUKICAgIGlmICggISRQYXJhbXtWaWV3fSAmJiAkU2VsZi0+eyAnVXNlclN1cnZleU92ZXJ2aWV3JyAuICRFbnYtPntBY3Rpb259IH0gKSB7CiAgICAgICAgJFBhcmFte1ZpZXd9ID0gJFNlbGYtPnsgJ1VzZXJTdXJ2ZXlPdmVydmlldycgLiAkRW52LT57QWN0aW9ufSB9OwogICAgfQoKICAgICMgc2V0IGZyb250ZW5kCiAgICBteSAkRnJvbnRlbmQgPSAkUGFyYW17RnJvbnRlbmR9IHx8ICdBZ2VudCc7CgogICAgIyBzZXQgZGVmYXV0IHZpZXcgbW9kZSB0byAnc21hbGwnCiAgICBteSAkVmlldyA9ICRQYXJhbXtWaWV3fSB8fCAnU21hbGwnOwoKICAgICMgc3RvcmUgbGF0ZXN0IHZpZXcgbW9kZQogICAgJFNlbGYtPntTZXNzaW9uT2JqZWN0fS0+VXBkYXRlU2Vzc2lvbklEKAogICAgICAgIFNlc3Npb25JRCA9PiAkU2VsZi0+e1Nlc3Npb25JRH0sCiAgICAgICAgS2V5ICAgICAgID0+ICdVc2VyU3VydmV5T3ZlcnZpZXcnIC4gJEVudi0+e0FjdGlvbn0sCiAgICAgICAgVmFsdWUgICAgID0+ICRWaWV3LAogICAgKTsKCiAgICAjIGdldCBiYWNrZW5kIGZyb20gY29uZmlnCiAgICBteSAkQmFja2VuZHMgPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnU3VydmV5OjpGcm9udGVuZDo6T3ZlcnZpZXcnKTsKICAgIGlmICggISRCYWNrZW5kcyApIHsKICAgICAgICByZXR1cm4gJEVudi0+e0xheW91dE9iamVjdH0tPkZhdGFsRXJyb3IoCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gJ05lZWQgY29uZmlnIG9wdGlvbiBTdXJ2ZXk6OkZyb250ZW5kOjpPdmVydmlldycsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGNoZWNrIGZvciBoYXNoLXJlZgogICAgaWYgKCByZWYgJEJhY2tlbmRzIG5lICdIQVNIJyApIHsKICAgICAgICByZXR1cm4gJEVudi0+e0xheW91dE9iamVjdH0tPkZhdGFsRXJyb3IoCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gJ0NvbmZpZyBvcHRpb24gU3VydmV5OjpGcm9udGVuZDo6T3ZlcnZpZXcgbmVlZHMgdG8gYmUgYSBIQVNIIHJlZiEnLAogICAgICAgICk7CiAgICB9CgogICAgIyBjaGVjayBmb3IgY29uZmlnIGtleQogICAgaWYgKCAhJEJhY2tlbmRzLT57JFZpZXd9ICkgewogICAgICAgIHJldHVybiAkRW52LT57TGF5b3V0T2JqZWN0fS0+RmF0YWxFcnJvcigKICAgICAgICAgICAgTWVzc2FnZSA9PiAiTm8gY29uZmlnIG9wdGlvbiBmb3VuZCBmb3IgdGhlIHZpZXcgJyRWaWV3JyEiLAogICAgICAgICk7CiAgICB9CgogICAgIyBuYXYgYmFyCiAgICBteSAkU3RhcnRIaXQgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oCiAgICAgICAgUGFyYW0gPT4gJ1N0YXJ0SGl0JywKICAgICkgfHwgMTsKCiAgICAjIGdldCBwZXJzb25hbCBwYWdlIHNob3duIGNvdW50CiAgICBteSAkUGFnZVNob3duUHJlZmVyZW5jZXNLZXkgPSAnVXNlclN1cnZleU92ZXJ2aWV3JyAuICRWaWV3IC4gJ1BhZ2VTaG93bic7CiAgICBteSAkUGFnZVNob3duICAgICAgICAgICAgICAgPSAkU2VsZi0+eyRQYWdlU2hvd25QcmVmZXJlbmNlc0tleX0gfHwgMTA7CiAgICBteSAkR3JvdXAgICAgICAgICAgICAgICAgICAgPSAnU3VydmV5T3ZlcnZpZXcnIC4gJFZpZXcgLiAnUGFnZVNob3duJzsKCiAgICAjIGNoZWNrIHN0YXJ0IG9wdGlvbiwgaWYgaGlnaGVyIHRoZW4gZWxlbWVudHMgYXZhaWxhYmxlLCBzZXQKICAgICMgaXQgdG8gdGhlIGxhc3Qgb3ZlcnZpZXcgcGFnZSAoVGhhbmtzIHRvIFN0ZWZhbiBTY2htaWR0ISkKICAgIGlmICggJFN0YXJ0SGl0ID4gJFBhcmFte1RvdGFsfSApIHsKICAgICAgICBteSAkUGFnZXMgPSBpbnQoICggJFBhcmFte1RvdGFsfSAvICRQYWdlU2hvd24gKSArIDAuOTk5OTkgKTsKICAgICAgICAkU3RhcnRIaXQgPSAoICggJFBhZ2VzIC0gMSApICogJFBhZ2VTaG93biApICsgMTsKICAgIH0KCiAgICAjIGdldCBkYXRhIHNlbGVjdGlvbgogICAgbXkgJURhdGE7CiAgICBteSAkQ29uZmlnID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1ByZWZlcmVuY2VzR3JvdXBzJyk7CiAgICBpZiAoICRDb25maWcgJiYgJENvbmZpZy0+eyRHcm91cH0gJiYgJENvbmZpZy0+eyRHcm91cH0tPntEYXRhfSApIHsKICAgICAgICAlRGF0YSA9ICV7ICRDb25maWctPnskR3JvdXB9LT57RGF0YX0gfTsKICAgIH0KCiAgICAjIHNldCBwYWdlIGxpbWl0IGFuZCBidWlsZCBwYWdlIG5hdgogICAgbXkgJExpbWl0ID0gJFBhcmFte0xpbWl0fSB8fCAyMF8wMDA7CiAgICBteSAlUGFnZU5hdiA9ICRFbnYtPntMYXlvdXRPYmplY3R9LT5QYWdlTmF2QmFyKAogICAgICAgIExpbWl0ICAgICA9PiAkTGltaXQsCiAgICAgICAgU3RhcnRIaXQgID0+ICRTdGFydEhpdCwKICAgICAgICBQYWdlU2hvd24gPT4gJFBhZ2VTaG93biwKICAgICAgICBBbGxIaXRzICAgPT4gJFBhcmFte1RvdGFsfSB8fCAwLAogICAgICAgIEFjdGlvbiAgICA9PiAnQWN0aW9uPScgLiAkRW52LT57TGF5b3V0T2JqZWN0fS0+e0FjdGlvbn0sCiAgICAgICAgTGluayAgICAgID0+ICRQYXJhbXtMaW5rUGFnZX0sCiAgICApOwoKICAgICMgYnVpbGQgc2hvd24gc3VydmV5cyBwZXIgcGFnZQogICAgJFBhcmFte1JlcXVlc3RlZFVSTH0gICAgPSAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufSI7CiAgICAkUGFyYW17R3JvdXB9ICAgICAgICAgICA9ICRHcm91cDsKICAgICRQYXJhbXtQcmVmZXJlbmNlc0tleX0gID0gJFBhZ2VTaG93blByZWZlcmVuY2VzS2V5OwogICAgJFBhcmFte1BhZ2VTaG93blN0cmluZ30gPSAkU2VsZi0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgTmFtZSAgICAgICAgPT4gJFBhZ2VTaG93blByZWZlcmVuY2VzS2V5LAogICAgICAgIFNlbGVjdGVkSUQgID0+ICRQYWdlU2hvd24sCiAgICAgICAgVHJhbnNsYXRpb24gPT4gMCwKICAgICAgICBEYXRhICAgICAgICA9PiBcJURhdGEsCiAgICApOwoKICAgICMgYnVpbGQgbmF2YmFyIGNvbnRlbnQKICAgICRFbnYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdPdmVydmlld05hdkJhcicsCiAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgKTsKCiAgICAjIGJhY2sgbGluawogICAgaWYgKCAkUGFyYW17TGlua0JhY2t9ICkgewogICAgICAgICRFbnYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdOYXZCYXJQYWdlQmFjaycsCiAgICAgICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IGZpbHRlcnMKICAgIGlmICggJFBhcmFte0ZpbHRlcnN9ICkgewoKICAgICAgICAjIGdldCBnaXZlbiBmaWx0ZXJzCiAgICAgICAgbXkgQE5hdkJhckZpbHRlcnM7CiAgICAgICAgZm9yIG15ICRQcmlvICggc29ydCBrZXlzICV7ICRQYXJhbXtGaWx0ZXJzfSB9ICkgewogICAgICAgICAgICBwdXNoIEBOYXZCYXJGaWx0ZXJzLCAkUGFyYW17RmlsdGVyc30tPnskUHJpb307CiAgICAgICAgfQoKICAgICAgICAjIGJ1aWxkIGZpbHRlciBjb250ZW50CiAgICAgICAgJEVudi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld05hdkJhckZpbHRlcicsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgbG9vcCBvdmVyIGZpbHRlcnMKICAgICAgICBteSAkQ291bnQgPSAwOwogICAgICAgIGZvciBteSAkRmlsdGVyIChATmF2QmFyRmlsdGVycykgewoKICAgICAgICAgICAgIyBpbmNyZW1lbnQgZmlsdGVyIGNvdW50IGFuZCBidWlsZCBmaWx0ZXIgaXRlbQogICAgICAgICAgICAkQ291bnQrKzsKICAgICAgICAgICAgJEVudi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdOYXZCYXJGaWx0ZXJJdGVtJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAleyRGaWx0ZXJ9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgZmlsdGVyIGlzIHNlbGVjdGVkCiAgICAgICAgICAgIGlmICggJEZpbHRlci0+e0ZpbHRlcn0gZXEgJFBhcmFte0ZpbHRlcn0gKSB7CiAgICAgICAgICAgICAgICAkRW52LT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdOYXZCYXJGaWx0ZXJJdGVtU2VsZWN0ZWQnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgICV7JEZpbHRlcn0sCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJEVudi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3TmF2QmFyRmlsdGVySXRlbVNlbGVjdGVkTm90JywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICAgICAleyRGaWx0ZXJ9LAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIGxvb3Agb3ZlciBjb25maWd1cmVkIGJhY2tlbmRzCiAgICBmb3IgbXkgJEJhY2tlbmQgKCBzb3J0IGtleXMgJXskQmFja2VuZHN9ICkgewoKICAgICAgICAjIGJ1aWxkIG5hdmJhciB2aWV3IG1vZGUKICAgICAgICAkRW52LT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3TmF2QmFyVmlld01vZGUnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICV7ICRCYWNrZW5kcy0+eyRCYWNrZW5kfSB9LAogICAgICAgICAgICAgICAgRmlsdGVyID0+ICRQYXJhbXtGaWx0ZXJ9LAogICAgICAgICAgICAgICAgVmlldyAgID0+ICRCYWNrZW5kLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgY3VycmVudCB2aWV3IGlzIGNvbmZpZ3VyZWQgaW4gYmFja2VuZAogICAgICAgIGlmICggJFZpZXcgZXEgJEJhY2tlbmQgKSB7CiAgICAgICAgICAgICRFbnYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3TmF2QmFyVmlld01vZGVTZWxlY3RlZCcsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgJXsgJEJhY2tlbmRzLT57JEJhY2tlbmR9IH0sCiAgICAgICAgICAgICAgICAgICAgRmlsdGVyID0+ICRQYXJhbXtGaWx0ZXJ9LAogICAgICAgICAgICAgICAgICAgIFZpZXcgICA9PiAkQmFja2VuZCwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkRW52LT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld05hdkJhclZpZXdNb2RlTm90U2VsZWN0ZWQnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICV7ICRCYWNrZW5kcy0+eyRCYWNrZW5kfSB9LAogICAgICAgICAgICAgICAgICAgIEZpbHRlciA9PiAkUGFyYW17RmlsdGVyfSwKICAgICAgICAgICAgICAgICAgICBWaWV3ICAgPT4gJEJhY2tlbmQsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIGlmIHBhZ2UgbmF2IGlzIGF2YWlsYWJsZQogICAgaWYgKCVQYWdlTmF2KSB7CiAgICAgICAgJEVudi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld05hdkJhclBhZ2VOYXZCYXInLAogICAgICAgICAgICBEYXRhID0+IFwlUGFnZU5hdiwKICAgICAgICApOwoKICAgICAgICAjIGRvbid0IHNob3cgY29udGV4dCBzZXR0aW5ncyBpbiBBSkFYIGNhc2UgKGUuIGcuIGluIGN1c3RvbWVyIHRpY2tldCBoaXN0b3J5KSwKICAgICAgICAjICAgYmVjYXVzZSB0aGUgc3VibWl0IHdpdGggcGFnZSByZWxvYWQgd2lsbCBub3Qgd29yayB0aGVyZQogICAgICAgIGlmICggISRQYXJhbXtBSkFYfSApIHsKICAgICAgICAgICAgJEVudi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnQ29udGV4dFNldHRpbmdzJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICVQYWdlTmF2LAogICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgYnVpbGQgaHRtbCBjb250ZW50CiAgICBteSAkT3V0cHV0TmF2QmFyID0gJEVudi0+e0xheW91dE9iamVjdH0tPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50U3VydmV5T3ZlcnZpZXdOYXZCYXInLAogICAgICAgIERhdGEgICAgICAgICA9PiB7JVBhcmFtfSwKICAgICk7CgogICAgIyBjcmVhdGUgb3V0cHV0CiAgICBteSAkT3V0cHV0UmF3ID0gJyc7CiAgICBpZiAoICEkUGFyYW17T3V0cHV0fSApIHsKICAgICAgICAkRW52LT57TGF5b3V0T2JqZWN0fS0+UHJpbnQoCiAgICAgICAgICAgIE91dHB1dCA9PiBcJE91dHB1dE5hdkJhciwKICAgICAgICApOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJE91dHB1dFJhdyAuPSAkT3V0cHV0TmF2QmFyOwogICAgfQoKICAgICMgbG9hZCBtb2R1bGUKICAgIGlmICggISRTZWxmLT57TWFpbk9iamVjdH0tPlJlcXVpcmUoICRCYWNrZW5kcy0+eyRWaWV3fS0+e01vZHVsZX0gKSApIHsKICAgICAgICByZXR1cm4gJEVudi0+e0xheW91dE9iamVjdH0tPkZhdGFsRXJyb3IoKTsKICAgIH0KCiAgICAjIGNoZWNrIGZvciBiYWNrZW5kIG9iamVjdAogICAgbXkgJE9iamVjdCA9ICRCYWNrZW5kcy0+eyRWaWV3fS0+e01vZHVsZX0tPm5ldyggJXskRW52fSApOwogICAgcmV0dXJuIGlmICEkT2JqZWN0OwoKICAgICMgcnVuIG1vZHVsZQogICAgbXkgJE91dHB1dCA9ICRPYmplY3QtPlJ1bigKICAgICAgICAlUGFyYW0sCiAgICAgICAgTGltaXQgICAgID0+ICRMaW1pdCwKICAgICAgICBTdGFydEhpdCAgPT4gJFN0YXJ0SGl0LAogICAgICAgIFBhZ2VTaG93biA9PiAkUGFnZVNob3duLAogICAgICAgIEFsbEhpdHMgICA9PiAkUGFyYW17VG90YWx9IHx8IDAsCiAgICAgICAgRnJvbnRlbmQgID0+ICRGcm9udGVuZCwKICAgICk7CgogICAgIyBjcmVhdGUgb3V0cHV0CiAgICBpZiAoICEkUGFyYW17T3V0cHV0fSApIHsKICAgICAgICAkRW52LT57TGF5b3V0T2JqZWN0fS0+UHJpbnQoCiAgICAgICAgICAgIE91dHB1dCA9PiBcJE91dHB1dCwKICAgICAgICApOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJE91dHB1dFJhdyAuPSAkT3V0cHV0OwogICAgfQoKICAgICMgY3JlYXRlIG92ZXJ2aWV3IG5hdiBiYXIKICAgICRFbnYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdPdmVydmlld05hdkJhcicsCiAgICAgICAgRGF0YSA9PiB7JVBhcmFtfSwKICAgICk7CgogICAgIyByZXR1cm4gY29udGVudCBpZiBhdmFpbGFibGUKICAgIHJldHVybiAkT3V0cHV0UmF3Owp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cDovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpNb2R1bGVzOjpBZ2VudFN1cnZleTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6U3VydmV5Owp1c2UgS2VybmVsOjpTeXN0ZW06OkhUTUxVdGlsczsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBnZXQgY29tbW9uIG9iamVjdHMKICAgICV7JFNlbGZ9ID0gJVBhcmFtOwoKICAgICMgY2hlY2sgbmVlZGVkIG9iamVjdHMKICAgIGZvciBteSAkT2JqZWN0IChxdyhQYXJhbU9iamVjdCBEQk9iamVjdCBMYXlvdXRPYmplY3QgTG9nT2JqZWN0IENvbmZpZ09iamVjdCkpIHsKICAgICAgICBpZiAoICEkU2VsZi0+eyRPYmplY3R9ICkgewogICAgICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkZhdGFsRXJyb3IoIE1lc3NhZ2UgPT4gIkdvdCBubyAkT2JqZWN0ISIgKTsKICAgICAgICB9CiAgICB9CiAgICAkU2VsZi0+e1N1cnZleU9iamVjdH0gICAgPSBLZXJuZWw6OlN5c3RlbTo6U3VydmV5LT5uZXcoJVBhcmFtKTsKICAgICRTZWxmLT57SFRNTFV0aWxzT2JqZWN0fSA9IEtlcm5lbDo6U3lzdGVtOjpIVE1MVXRpbHMtPm5ldyglUGFyYW0pOwoKICAgICMgZ2V0IGNvbmZpZyBvZiBmcm9udGVuZCBtb2R1bGUKICAgICRTZWxmLT57Q29uZmlnfSA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCJTdXJ2ZXk6OkZyb250ZW5kOjokU2VsZi0+e0FjdGlvbn0iKTsKCiAgICAjIGdldCBkZWZhdWx0IHBhcmFtZXRlcnMKICAgICRTZWxmLT57RmlsdGVyfSA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0ZpbHRlcicgKSB8fCAnJzsKICAgICRTZWxmLT57Vmlld30gICA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1ZpZXcnICkgICB8fCAnJzsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkT3V0cHV0OwoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgc3VydmV5IGVkaXQKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdTdXJ2ZXlFZGl0JyApIHsKICAgICAgICBteSAkU3VydmV5SUQgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICJTdXJ2ZXlJRCIgKTsKCiAgICAgICAgIyBjaGVjayBpZiBzdXJ2ZXkgZXhpc3RzCiAgICAgICAgaWYgKAogICAgICAgICAgICAkU2VsZi0+e1N1cnZleU9iamVjdH0tPkVsZW1lbnRFeGlzdHMoCiAgICAgICAgICAgICAgICBFbGVtZW50SUQgPT4gJFN1cnZleUlELAogICAgICAgICAgICAgICAgRWxlbWVudCAgID0+ICdTdXJ2ZXknCiAgICAgICAgICAgICkgbmUKICAgICAgICAgICAgJ1llcycKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+UmVkaXJlY3QoCiAgICAgICAgICAgICAgICBPUCA9PiAiQWN0aW9uPUFnZW50U3VydmV5IgogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgbXkgJVN1cnZleSA9ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+U3VydmV5R2V0KCBTdXJ2ZXlJRCA9PiAkU3VydmV5SUQgKTsKCiAgICAgICAgcmV0dXJuICRTZWxmLT5fU3VydmV5QWRkTWFzaygKICAgICAgICAgICAgJVN1cnZleSwKICAgICAgICApOwoKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIHN1cnZleSBzYXZlCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnU3VydmV5U2F2ZScgKSB7CgogICAgICAgICMgZ2V0IHBhcmFtcwogICAgICAgIG15ICRTdXJ2ZXlJRCA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gIlN1cnZleUlEIiApOwoKICAgICAgICBpZiAoICEkU3VydmV5SUQgKSB7CiAgICAgICAgICAgIHJldHVybiAkU2VsZi0+e0xheW91dE9iamVjdH0tPlJlZGlyZWN0KCBPUCA9PiAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufSIgKTsKICAgICAgICB9CgogICAgICAgICMgZ2V0IHJlcXVpZXJlZCBmb3JtIGVsZW1lbnRzIGFuZCBlcnJvcnMKICAgICAgICBteSAlU2VydmVyRXJyb3I7CiAgICAgICAgbXkgJUZvcm1FbGVtZW50czsKICAgICAgICBmb3IgbXkgJEl0ZW0gKAogICAgICAgICAgICBxdyggVGl0bGUgSW50cm9kdWN0aW9uIERlc2NyaXB0aW9uIE5vdGlmaWNhdGlvblNlbmRlciBOb3RpZmljYXRpb25TdWJqZWN0IE5vdGlmaWNhdGlvbkJvZHkgKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkRm9ybUVsZW1lbnRzeyRJdGVtfSA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gIiRJdGVtIiApOwoKICAgICAgICAgICAgaWYgKCAhJEZvcm1FbGVtZW50c3skSXRlbX0gKSB7CiAgICAgICAgICAgICAgICAkU2VydmVyRXJyb3J7ICIkSXRlbSIgLiAnU2VydmVyRXJyb3InIH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBAeyAkRm9ybUVsZW1lbnRze1F1ZXVlc30gfSA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRBcnJheSggUGFyYW0gPT4gIlF1ZXVlcyIgKTsKCiAgICAgICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnRnJvbnRlbmQ6OlJpY2hUZXh0JykgKSB7CiAgICAgICAgICAgICRGb3JtRWxlbWVudHN7SW50cm9kdWN0aW9ufSA9ICggbGVuZ3RoICRGb3JtRWxlbWVudHN7SW50cm9kdWN0aW9ufSApCiAgICAgICAgICAgICAgICA/ICJcJGh0bWwvdGV4dFwkICRGb3JtRWxlbWVudHN7SW50cm9kdWN0aW9ufSIKICAgICAgICAgICAgICAgIDogJyc7CiAgICAgICAgICAgICRGb3JtRWxlbWVudHN7Tm90aWZpY2F0aW9uQm9keX0gPSAoIGxlbmd0aCAkRm9ybUVsZW1lbnRze05vdGlmaWNhdGlvbkJvZHl9ICkKICAgICAgICAgICAgICAgID8gIlwkaHRtbC90ZXh0XCQgJEZvcm1FbGVtZW50c3tOb3RpZmljYXRpb25Cb2R5fSIKICAgICAgICAgICAgICAgIDogJyc7CiAgICAgICAgICAgICRGb3JtRWxlbWVudHN7RGVzY3JpcHRpb259ID0gKCBsZW5ndGggJEZvcm1FbGVtZW50c3tEZXNjcmlwdGlvbn0gKQogICAgICAgICAgICAgICAgPyAiXCRodG1sL3RleHRcJCAkRm9ybUVsZW1lbnRze0Rlc2NyaXB0aW9ufSIKICAgICAgICAgICAgICAgIDogJyc7CiAgICAgICAgfQoKICAgICAgICAjIHNhdmUgaWYgbm8gZXJyb3JzCiAgICAgICAgaWYgKCAhJVNlcnZlckVycm9yICkgewogICAgICAgICAgICBteSAkU2F2ZVJlc3VsdCA9ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+U3VydmV5U2F2ZSgKICAgICAgICAgICAgICAgICVGb3JtRWxlbWVudHMsCiAgICAgICAgICAgICAgICBTdXJ2ZXlJRCA9PiAkU3VydmV5SUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm4gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5Qb3B1cENsb3NlKAogICAgICAgICAgICAgICAgVVJMID0+ICJBY3Rpb249QWdlbnRTdXJ2ZXlab29tO1N1cnZleUlEPSRTdXJ2ZXlJRDsiLAogICAgICAgICAgICApOwoKICAgICAgICB9CgogICAgICAgICMgcmVsb2FkIGZvcm0gaWYgZXJyb3IKICAgICAgICByZXR1cm4gJFNlbGYtPl9TdXJ2ZXlBZGRNYXNrKAogICAgICAgICAgICBGb3JtRWxlbWVudHMgPT4gXCVGb3JtRWxlbWVudHMsCiAgICAgICAgICAgIFNlcnZlckVycm9yICA9PiBcJVNlcnZlckVycm9yLAogICAgICAgICAgICBTdXJ2ZXlJRCAgICAgPT4gJFN1cnZleUlELAogICAgICAgICk7CgogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgc3VydmV5IGFkZAogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ1N1cnZleUFkZCcgKSB7CiAgICAgICAgcmV0dXJuICRTZWxmLT5fU3VydmV5QWRkTWFzazsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIHN1cnZleSBuZXcKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdTdXJ2ZXlOZXcnICkgewoKICAgICAgICAjIGdldCBwYXJhbXMKICAgICAgICBteSAkU3VydmV5SUQgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICJTdXJ2ZXlJRCIgKTsKCiAgICAgICAgIyBnZXQgcmVxdWllcmVkIGZvcm0gZWxlbWVudHMgYW5kIGVycm9ycwogICAgICAgIG15ICVTZXJ2ZXJFcnJvcjsKICAgICAgICBteSAlRm9ybUVsZW1lbnRzOwogICAgICAgIGZvciBteSAkSXRlbSAoCiAgICAgICAgICAgIHF3KCBUaXRsZSBJbnRyb2R1Y3Rpb24gRGVzY3JpcHRpb24gTm90aWZpY2F0aW9uU2VuZGVyIE5vdGlmaWNhdGlvblN1YmplY3QgTm90aWZpY2F0aW9uQm9keSApCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRGb3JtRWxlbWVudHN7JEl0ZW19ID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKCBQYXJhbSA9PiAiJEl0ZW0iICk7CgogICAgICAgICAgICBpZiAoICEkRm9ybUVsZW1lbnRzeyRJdGVtfSApIHsKICAgICAgICAgICAgICAgICRTZXJ2ZXJFcnJvcnsgIiRJdGVtIiAuICdTZXJ2ZXJFcnJvcicgfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIEB7ICRGb3JtRWxlbWVudHN7UXVldWVzfSB9ID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldEFycmF5KCBQYXJhbSA9PiAiUXVldWVzIiApOwoKICAgICAgICBpZiAoICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdGcm9udGVuZDo6UmljaFRleHQnKSApIHsKICAgICAgICAgICAgJEZvcm1FbGVtZW50c3tJbnRyb2R1Y3Rpb259ICAgICA9ICJcJGh0bWwvdGV4dFwkICRGb3JtRWxlbWVudHN7SW50cm9kdWN0aW9ufSI7CiAgICAgICAgICAgICRGb3JtRWxlbWVudHN7Tm90aWZpY2F0aW9uQm9keX0gPSAiXCRodG1sL3RleHRcJCAkRm9ybUVsZW1lbnRze05vdGlmaWNhdGlvbkJvZHl9IjsKICAgICAgICAgICAgJEZvcm1FbGVtZW50c3tEZXNjcmlwdGlvbn0gICAgICA9ICJcJGh0bWwvdGV4dFwkICRGb3JtRWxlbWVudHN7RGVzY3JpcHRpb259IjsKICAgICAgICB9CgogICAgICAgICMgc2F2ZSBpZiBubyBlcnJvcnMKICAgICAgICBpZiAoICElU2VydmVyRXJyb3IgKSB7CiAgICAgICAgICAgIG15ICRTdXJ2ZXlJRCA9ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+U3VydmV5TmV3KAogICAgICAgICAgICAgICAgJUZvcm1FbGVtZW50cywKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm4gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5SZWRpcmVjdCgKICAgICAgICAgICAgICAgIE9QID0+ICJBY3Rpb249QWdlbnRTdXJ2ZXlab29tO1N1cnZleUlEPSRTdXJ2ZXlJRCIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIHJlbG9hZCBmb3JtIGlmIGVycm9yCiAgICAgICAgcmV0dXJuICRTZWxmLT5fU3VydmV5QWRkTWFzaygKICAgICAgICAgICAgRm9ybUVsZW1lbnRzID0+IFwlRm9ybUVsZW1lbnRzLAogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gXCVTZXJ2ZXJFcnJvciwKICAgICAgICApOwoKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIHN1cnZleSBzdGF0dXMKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdTdXJ2ZXlTdGF0dXMnICkgewogICAgICAgIG15ICRTdXJ2ZXlJRCAgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICJTdXJ2ZXlJRCIgKTsKICAgICAgICBteSAkTmV3U3RhdHVzID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKCBQYXJhbSA9PiAiTmV3U3RhdHVzIiApOwoKICAgICAgICAjIGNoZWNrIGlmIHN1cnZleSBleGlzdHMKICAgICAgICBpZiAoCiAgICAgICAgICAgICRTZWxmLT57U3VydmV5T2JqZWN0fS0+RWxlbWVudEV4aXN0cygKICAgICAgICAgICAgICAgIEVsZW1lbnRJRCA9PiAkU3VydmV5SUQsCiAgICAgICAgICAgICAgICBFbGVtZW50ICAgPT4gJ1N1cnZleScKICAgICAgICAgICAgKSBuZQogICAgICAgICAgICAnWWVzJwogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5SZWRpcmVjdCggT1AgPT4gIkFjdGlvbj0kU2VsZi0+e0FjdGlvbn0iICk7CiAgICAgICAgfQoKICAgICAgICAjIHNldCBhIG5ldyBzdGF0dXMKICAgICAgICBteSAkU3RhdHVzU2V0ID0gJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5TdXJ2ZXlTdGF0dXNTZXQoCiAgICAgICAgICAgIFN1cnZleUlEICA9PiAkU3VydmV5SUQsCiAgICAgICAgICAgIE5ld1N0YXR1cyA9PiAkTmV3U3RhdHVzLAogICAgICAgICk7CiAgICAgICAgbXkgJE1lc3NhZ2UgPSAnJzsKICAgICAgICBpZiAoIGRlZmluZWQoJFN0YXR1c1NldCkgJiYgJFN0YXR1c1NldCBlcSAnTm9RdWVzdGlvbicgKSB7CiAgICAgICAgICAgICRNZXNzYWdlID0gJztNZXNzYWdlPU5vUXVlc3Rpb24nOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoIGRlZmluZWQoJFN0YXR1c1NldCkgJiYgJFN0YXR1c1NldCBlcSAnSW5jb21wbGV0ZVF1ZXN0aW9uJyApIHsKICAgICAgICAgICAgJE1lc3NhZ2UgPSAnO01lc3NhZ2U9SW5jb21wbGV0ZVF1ZXN0aW9uJzsKICAgICAgICB9CiAgICAgICAgZWxzaWYgKCBkZWZpbmVkKCRTdGF0dXNTZXQpICYmICRTdGF0dXNTZXQgZXEgJ1N0YXR1c1NldCcgKSB7CiAgICAgICAgICAgICRNZXNzYWdlID0gJztNZXNzYWdlPVN0YXR1c1NldCc7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkU2VsZi0+e0xheW91dE9iamVjdH0tPlJlZGlyZWN0KAogICAgICAgICAgICBPUCA9PiAiQWN0aW9uPUFnZW50U3VydmV5Wm9vbTtTdXJ2ZXlJRD0kU3VydmV5SUQkTWVzc2FnZSIsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIHN0YXRzCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnU3RhdHMnICkgewogICAgICAgIG15ICRTdXJ2ZXlJRCA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gIlN1cnZleUlEIiApOwoKICAgICAgICAjIGNoZWNrIGlmIHN1cnZleSBleGlzdHMKICAgICAgICBpZiAoCiAgICAgICAgICAgICRTZWxmLT57U3VydmV5T2JqZWN0fS0+RWxlbWVudEV4aXN0cygKICAgICAgICAgICAgICAgIEVsZW1lbnRJRCA9PiAkU3VydmV5SUQsCiAgICAgICAgICAgICAgICBFbGVtZW50ICAgPT4gJ1N1cnZleScKICAgICAgICAgICAgKSBuZQogICAgICAgICAgICAnWWVzJwogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5SZWRpcmVjdCggT1AgPT4gIkFjdGlvbj0kU2VsZi0+e0FjdGlvbn0iICk7CiAgICAgICAgfQogICAgICAgICRPdXRwdXQgPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPkhlYWRlcigKICAgICAgICAgICAgVGl0bGUgPT4gJ1N0YXRzIE92ZXJ2aWV3JywKICAgICAgICAgICAgVHlwZSAgPT4gJ1NtYWxsJywKICAgICAgICApOwoKICAgICAgICBteSAlU3VydmV5ID0gJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5TdXJ2ZXlHZXQoIFN1cnZleUlEID0+ICRTdXJ2ZXlJRCApOwoKICAgICAgICAjIHByaW50IHRoZSBtYWluIHRhYmxlLgogICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1N0YXRzJywKICAgICAgICAgICAgRGF0YSA9PiB7JVN1cnZleX0sCiAgICAgICAgKTsKICAgICAgICBteSBATGlzdCA9ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+Vm90ZUxpc3QoIFN1cnZleUlEID0+ICRTdXJ2ZXlJRCApOwogICAgICAgIGZvciBteSAkVm90ZSAoQExpc3QpIHsKICAgICAgICAgICAgJFZvdGUtPntTdXJ2ZXlJRH0gPSAkU3VydmV5SUQ7CiAgICAgICAgICAgIG15ICVUaWNrZXQgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldEdldCggVGlja2V0SUQgPT4gJFZvdGUtPntUaWNrZXRJRH0gKTsKICAgICAgICAgICAgJFZvdGUtPntUaWNrZXROdW1iZXJ9ID0gJFRpY2tldHtUaWNrZXROdW1iZXJ9OwogICAgICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnU3RhdHNWb3RlJywKICAgICAgICAgICAgICAgIERhdGEgPT4gJFZvdGUsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgICRPdXRwdXQgLj0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRTdXJ2ZXknLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4geyVQYXJhbX0sCiAgICAgICAgKTsKCiAgICAgICAgJE91dHB1dCAuPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPkZvb3RlciggVHlwZSA9PiAnU21hbGwnICk7CiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBzdGF0cyBkZXRhaWxzCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnU3RhdHNEZXRhaWwnICkgewogICAgICAgIG15ICRTdXJ2ZXlJRCAgICAgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICJTdXJ2ZXlJRCIgKTsKICAgICAgICBteSAkUmVxdWVzdElEICAgID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKCBQYXJhbSA9PiAiUmVxdWVzdElEIiApOwogICAgICAgIG15ICRUaWNrZXROdW1iZXIgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICJUaWNrZXROdW1iZXIiICk7CgogICAgICAgICMgY2hlY2sgaWYgc3VydmV5IGV4aXN0cwogICAgICAgIGlmICgKICAgICAgICAgICAgJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5FbGVtZW50RXhpc3RzKAogICAgICAgICAgICAgICAgRWxlbWVudElEID0+ICRTdXJ2ZXlJRCwKICAgICAgICAgICAgICAgIEVsZW1lbnQgICA9PiAnU3VydmV5JwogICAgICAgICAgICApIG5lCiAgICAgICAgICAgICdZZXMnCiAgICAgICAgICAgIHx8ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+RWxlbWVudEV4aXN0cygKICAgICAgICAgICAgICAgIEVsZW1lbnRJRCA9PiAkUmVxdWVzdElELAogICAgICAgICAgICAgICAgRWxlbWVudCAgID0+ICdSZXF1ZXN0JwogICAgICAgICAgICApCiAgICAgICAgICAgIG5lICdZZXMnCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiAkU2VsZi0+e0xheW91dE9iamVjdH0tPlJlZGlyZWN0KCBPUCA9PiAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufSIgKTsKICAgICAgICB9CiAgICAgICAgJE91dHB1dCA9ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+SGVhZGVyKAogICAgICAgICAgICBUaXRsZSA9PiAnU3RhdHMgRGV0YWlsJywKICAgICAgICAgICAgVHlwZSAgPT4gJ1NtYWxsJywKICAgICAgICApOwoKICAgICAgICBteSAlU3VydmV5ID0gJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5TdXJ2ZXlHZXQoIFN1cnZleUlEID0+ICRTdXJ2ZXlJRCApOwoKICAgICAgICAjIHByaW50IHRoZSBtYWluIHRhYmxlLgogICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1N0YXRzRGV0YWlsJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAlU3VydmV5LAogICAgICAgICAgICAgICAgVGlja2V0TnVtYmVyID0+ICRUaWNrZXROdW1iZXIsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgICAgICBteSBAUXVlc3Rpb25MaXN0ID0gJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5RdWVzdGlvbkxpc3QoIFN1cnZleUlEID0+ICRTdXJ2ZXlJRCApOwogICAgICAgIGZvciBteSAkUXVlc3Rpb24gKEBRdWVzdGlvbkxpc3QpIHsKCiAgICAgICAgICAgIG15ICRDbGFzcyA9ICcnOwogICAgICAgICAgICBpZiAoICRRdWVzdGlvbi0+e1R5cGV9IGVxICdUZXh0YXJlYScgKSB7CiAgICAgICAgICAgICAgICAkQ2xhc3MgPSAnVGV4dGFyZWEnOwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAkUmVxdWlyZWRUZXh0ID0gJyc7CiAgICAgICAgICAgIGlmICggJFF1ZXN0aW9uLT57QW5zd2VyUmVxdWlyZWR9ICkgewogICAgICAgICAgICAgICAgJENsYXNzIC49ICcgTWFuZGF0b3J5JzsKICAgICAgICAgICAgICAgICRSZXF1aXJlZFRleHQgPSAnKiAnOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnU3RhdHNEZXRhaWxRdWVzdGlvbicsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAleyRRdWVzdGlvbn0sCiAgICAgICAgICAgICAgICAgICAgQ2xhc3MgICAgICAgID0+ICRDbGFzcywKICAgICAgICAgICAgICAgICAgICBSZXF1aXJlZFRleHQgPT4gJFJlcXVpcmVkVGV4dCwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG15IEBBbnN3ZXJzOwogICAgICAgICAgICBpZiAoICRRdWVzdGlvbi0+e1R5cGV9IGVxICdSYWRpbycgfHwgJFF1ZXN0aW9uLT57VHlwZX0gZXEgJ0NoZWNrYm94JyApIHsKICAgICAgICAgICAgICAgIG15IEBBbnN3ZXJMaXN0OwogICAgICAgICAgICAgICAgQEFuc3dlckxpc3QgPSAkU2VsZi0+e1N1cnZleU9iamVjdH0tPlZvdGVHZXQoCiAgICAgICAgICAgICAgICAgICAgUmVxdWVzdElEICA9PiAkUmVxdWVzdElELAogICAgICAgICAgICAgICAgICAgIFF1ZXN0aW9uSUQgPT4gJFF1ZXN0aW9uLT57UXVlc3Rpb25JRH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgZm9yIG15ICRSb3cgKEBBbnN3ZXJMaXN0KSB7CiAgICAgICAgICAgICAgICAgICAgbXkgJUFuc3dlciA9ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+QW5zd2VyR2V0KCBBbnN3ZXJJRCA9PiAkUm93LT57Vm90ZVZhbHVlfSApOwogICAgICAgICAgICAgICAgICAgIG15ICVEYXRhOwogICAgICAgICAgICAgICAgICAgICREYXRhe0Fuc3dlcn0gPSAkQW5zd2Vye0Fuc3dlcn07CiAgICAgICAgICAgICAgICAgICAgcHVzaCggQEFuc3dlcnMsIFwlRGF0YSApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJFF1ZXN0aW9uLT57VHlwZX0gZXEgJ1llc05vJyB8fCAkUXVlc3Rpb24tPntUeXBlfSBlcSAnVGV4dGFyZWEnICkgewogICAgICAgICAgICAgICAgbXkgQExpc3QgPSAkU2VsZi0+e1N1cnZleU9iamVjdH0tPlZvdGVHZXQoCiAgICAgICAgICAgICAgICAgICAgUmVxdWVzdElEICA9PiAkUmVxdWVzdElELAogICAgICAgICAgICAgICAgICAgIFF1ZXN0aW9uSUQgPT4gJFF1ZXN0aW9uLT57UXVlc3Rpb25JRH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIG15ICVEYXRhOwogICAgICAgICAgICAgICAgJERhdGF7QW5zd2VyfSA9ICRMaXN0WzBdLT57Vm90ZVZhbHVlfTsKCiAgICAgICAgICAgICAgICAjIGNsZWFuIGh0bWwKICAgICAgICAgICAgICAgIGlmICggJFF1ZXN0aW9uLT57VHlwZX0gZXEgJ1RleHRhcmVhJyAmJiAkRGF0YXtBbnN3ZXJ9ICkgewogICAgICAgICAgICAgICAgICAgICREYXRhe0Fuc3dlcn0gPX4gc3tcQVwkaHRtbFwvdGV4dFwkXHMoLiopfXskMX14bXM7CiAgICAgICAgICAgICAgICAgICAgJERhdGF7QW5zd2VyfSA9ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QXNjaWkySHRtbCgKICAgICAgICAgICAgICAgICAgICAgICAgVGV4dCAgICAgICAgICAgPT4gJERhdGF7QW5zd2VyfSwKICAgICAgICAgICAgICAgICAgICAgICAgSFRNTFJlc3VsdE1vZGUgPT4gMSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICREYXRhe0Fuc3dlcn0gPQogICAgICAgICAgICAgICAgICAgICAgICAkU2VsZi0+e0hUTUxVdGlsc09iamVjdH0tPlRvQXNjaWkoIFN0cmluZyA9PiAkRGF0YXtBbnN3ZXJ9ICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBwdXNoKCBAQW5zd2VycywgXCVEYXRhICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZm9yIG15ICRSb3cgKEBBbnN3ZXJzKSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1N0YXRzRGV0YWlsQW5zd2VyJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgJXskUm93fSwKICAgICAgICAgICAgICAgICAgICAgICAgQ2xhc3MgPT4gJENsYXNzLAogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgICRPdXRwdXQgLj0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRTdXJ2ZXknLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4geyVQYXJhbX0sCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+Rm9vdGVyKCk7CiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBzaG93IG92ZXJ2aWV3CiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgogICAgIyBzdG9yZSBsYXN0IHNjcmVlbiwgdXNlZCBmb3IgYmFja2xpbmtzCiAgICAkU2VsZi0+e1Nlc3Npb25PYmplY3R9LT5VcGRhdGVTZXNzaW9uSUQoCiAgICAgICAgU2Vzc2lvbklEID0+ICRTZWxmLT57U2Vzc2lvbklEfSwKICAgICAgICBLZXkgICAgICAgPT4gJ0xhc3RTY3JlZW5WaWV3JywKICAgICAgICBWYWx1ZSAgICAgPT4gJFNlbGYtPntSZXF1ZXN0ZWRVUkx9LAogICAgKTsKCiAgICAjIGdldCBzb3J0aW5nIHBhcmFtZXRlcnMKICAgIG15ICRTb3J0QnkgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICdTb3J0QnknICkKICAgICAgICB8fCAkU2VsZi0+e0NvbmZpZ30tPnsnU29ydEJ5OjpEZWZhdWx0J30KICAgICAgICB8fCAnTnVtYmVyJzsKCiAgICAjIGdldCBvcmRlcmluZyBwYXJhbWV0ZXJzCiAgICBteSAkT3JkZXJCeSA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gJ09yZGVyQnknICkKICAgICAgICB8fCAkU2VsZi0+e0NvbmZpZ30tPnsnT3JkZXI6OkRlZmF1bHQnfQogICAgICAgIHx8ICdEb3duJzsKCiAgICAjIGludmVzdGlnYXRlIHJlZnJlc2gKICAgIG15ICRSZWZyZXNoID0gJFNlbGYtPntVc2VyUmVmcmVzaFRpbWV9ID8gNjAgKiAkU2VsZi0+e1VzZXJSZWZyZXNoVGltZX0gOiB1bmRlZjsKCiAgICAjIG91dHB1dCBoZWFkZXIKICAgICRPdXRwdXQgPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPkhlYWRlcigKICAgICAgICBUaXRsZSAgID0+ICdPdmVydmlldycsCiAgICAgICAgUmVmcmVzaCA9PiAkUmVmcmVzaCwKICAgICk7CiAgICAkT3V0cHV0IC49ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+TmF2aWdhdGlvbkJhcigpOwogICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5QcmludCggT3V0cHV0ID0+IFwkT3V0cHV0ICk7CiAgICAkT3V0cHV0ID0gJyc7CgogICAgIyBnZXQgc3VydmV5IGxpc3QKICAgIG15IEBTdXJ2ZXlJRHMgPSAkU2VsZi0+e1N1cnZleU9iamVjdH0tPlN1cnZleVNlYXJjaCgKICAgICAgICBPcmRlckJ5ICAgICAgICAgID0+IFskU29ydEJ5XSwKICAgICAgICBPcmRlckJ5RGlyZWN0aW9uID0+IFskT3JkZXJCeV0sCiAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICMgZmluZCBvdXQgd2hpY2ggY29sdW1ucyBzaG91bGQgYmUgc2hvd24KICAgIG15IEBTaG93Q29sdW1uczsKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57U2hvd0NvbHVtbnN9ICkgewoKICAgICAgICAjIGdldCBhbGwgcG9zc2libGUgY29sdW1ucyBmcm9tIGNvbmZpZwogICAgICAgIG15ICVQb3NzaWJsZUNvbHVtbiA9ICV7ICRTZWxmLT57Q29uZmlnfS0+e1Nob3dDb2x1bW5zfSB9OwoKICAgICAgICAjIGdldCB0aGUgY29sdW1uIG5hbWVzIHRoYXQgc2hvdWxkIGJlIHNob3duCiAgICAgICAgQ09MVU1OTkFNRToKICAgICAgICBmb3IgbXkgJE5hbWUgKCBzb3J0IGtleXMgJVBvc3NpYmxlQ29sdW1uICkgewogICAgICAgICAgICBuZXh0IENPTFVNTk5BTUUgaWYgISRQb3NzaWJsZUNvbHVtbnskTmFtZX07CiAgICAgICAgICAgIHB1c2ggQFNob3dDb2x1bW5zLCAkTmFtZTsKICAgICAgICB9CiAgICB9CgogICAgIyBzaG93IHRoZSBsaXN0CiAgICBteSAkTGlua1BhZ2UgPQogICAgICAgICdGaWx0ZXI9JyAuICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QXNjaWkySHRtbCggVGV4dCA9PiAkU2VsZi0+e0ZpbHRlcn0gKQogICAgICAgIC4gJztWaWV3PScgLiAkU2VsZi0+e0xheW91dE9iamVjdH0tPkFzY2lpMkh0bWwoIFRleHQgPT4gJFNlbGYtPntWaWV3fSApCiAgICAgICAgLiAnO1NvcnRCeT0nIC4gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRTb3J0QnkgKQogICAgICAgIC4gJztPcmRlckJ5PScgLiAkU2VsZi0+e0xheW91dE9iamVjdH0tPkFzY2lpMkh0bWwoIFRleHQgPT4gJE9yZGVyQnkgKQogICAgICAgIC4gJzsnOwogICAgbXkgJExpbmtTb3J0ID0KICAgICAgICAnRmlsdGVyPScgLiAkU2VsZi0+e0xheW91dE9iamVjdH0tPkFzY2lpMkh0bWwoIFRleHQgPT4gJFNlbGYtPntGaWx0ZXJ9ICkKICAgICAgICAuICc7Vmlldz0nIC4gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRTZWxmLT57Vmlld30gKQogICAgICAgIC4gJzsnOwogICAgbXkgJExpbmtGaWx0ZXIgPQogICAgICAgICdTb3J0Qnk9JyAuICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QXNjaWkySHRtbCggVGV4dCA9PiAkU29ydEJ5ICkKICAgICAgICAuICc7T3JkZXJCeT0nIC4gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRPcmRlckJ5ICkKICAgICAgICAuICc7Vmlldz0nIC4gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRTZWxmLT57Vmlld30gKQogICAgICAgIC4gJzsnOwoKICAgICMgc2hvdyBjb25maWcgaXRlbSBsaXN0CiAgICAkT3V0cHV0IC49ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+U3VydmV5TGlzdFNob3coCiAgICAgICAgU3VydmV5SURzICAgPT4gW0BTdXJ2ZXlJRHNdLAogICAgICAgIFRvdGFsICAgICAgID0+IHNjYWxhciBAU3VydmV5SURzLAogICAgICAgIFZpZXcgICAgICAgID0+ICRTZWxmLT57Vmlld30sCiAgICAgICAgRmlsdGVyTGluayAgPT4gJExpbmtGaWx0ZXIsCiAgICAgICAgVGl0bGVOYW1lICAgPT4gJFNlbGYtPntMYXlvdXRPYmplY3R9LT57TGFuZ3VhZ2VPYmplY3R9LT5HZXQoJ092ZXJ2aWV3JyksCiAgICAgICAgVGl0bGVWYWx1ZSAgPT4gJFNlbGYtPntMYXlvdXRPYmplY3R9LT57TGFuZ3VhZ2VPYmplY3R9LT5HZXQoJ1N1cnZleScpLAogICAgICAgIEVudiAgICAgICAgID0+ICRTZWxmLAogICAgICAgIExpbmtQYWdlICAgID0+ICRMaW5rUGFnZSwKICAgICAgICBMaW5rU29ydCAgICA9PiAkTGlua1NvcnQsCiAgICAgICAgU2hvd0NvbHVtbnMgPT4gXEBTaG93Q29sdW1ucywKICAgICAgICBTb3J0QnkgICAgICA9PiAkU2VsZi0+e0xheW91dE9iamVjdH0tPkFzY2lpMkh0bWwoIFRleHQgPT4gJFNvcnRCeSApLAogICAgICAgIE9yZGVyQnkgICAgID0+ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QXNjaWkySHRtbCggVGV4dCA9PiAkT3JkZXJCeSApLAogICAgKTsKCiAgICAkT3V0cHV0IC49ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+Rm9vdGVyKCk7CiAgICByZXR1cm4gJE91dHB1dDsKfQoKc3ViIF9TdXJ2ZXlBZGRNYXNrIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJVNlcnZlckVycm9yOwogICAgaWYgKCAkUGFyYW17U2VydmVyRXJyb3J9ICkgewogICAgICAgICVTZXJ2ZXJFcnJvciA9ICV7ICRQYXJhbXtTZXJ2ZXJFcnJvcn0gfTsKICAgIH0KCiAgICBteSAlRm9ybUVsZW1lbnRzOwogICAgaWYgKCAkUGFyYW17Rm9ybUVsZW1lbnRzfSApIHsKICAgICAgICAlRm9ybUVsZW1lbnRzID0gJXsgJFBhcmFte0Zvcm1FbGVtZW50c30gfTsKICAgIH0KCiAgICBteSAkT3V0cHV0OwoKICAgICMgaWYgU3VydmV5SUQgdGhlIFN1cnZleUVkaXQgc2hvdWxkIGJlIGxvYWRlZCAocG9wdXApCiAgICBteSAkVGl0bGU7CiAgICBteSAkVHlwZTsKICAgIGlmICggJFBhcmFte1N1cnZleUlEfSApIHsKICAgICAgICAkVGl0bGUgPSAnU3VydmV5IEVkaXQnOwoKICAgICAgICAjIGZvciBoZWFkZXIgYW5kIGZvb3RlcgogICAgICAgICRUeXBlID0gJ1NtYWxsJzsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRUaXRsZSA9ICdBZGQgTmV3IFN1cnZleSc7CiAgICB9CgogICAgJE91dHB1dCAuPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPkhlYWRlcigKICAgICAgICBUaXRsZSA9PiAkVGl0bGUsCiAgICAgICAgVHlwZSAgPT4gJFR5cGUsCiAgICApOwoKICAgIG15ICRTZWxlY3RlZFF1ZXVlczsKICAgIGlmICggISRQYXJhbXtTdXJ2ZXlJRH0gKSB7CiAgICAgICAgJE91dHB1dCAuPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPk5hdmlnYXRpb25CYXIoKTsKCiAgICB9CiAgICBlbHNlIHsKICAgICAgICBteSAlU3VydmV5ID0gJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5TdXJ2ZXlHZXQoIFN1cnZleUlEID0+ICRQYXJhbXtTdXJ2ZXlJRH0gKTsKCiAgICAgICAgIyBnZXQgc2VsZWN0ZWQgcXVldWVzCiAgICAgICAgJFNlbGVjdGVkUXVldWVzID0gJFN1cnZleXtRdWV1ZXN9OwogICAgfQoKICAgIG15ICVRdWV1ZXMgICAgICA9ICRTZWxmLT57UXVldWVPYmplY3R9LT5HZXRBbGxRdWV1ZXMoKTsKICAgIG15ICRRdWV1ZVN0cmluZyA9ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUXVldWVzLAogICAgICAgIE5hbWUgICAgICAgICA9PiAnUXVldWVzJywKICAgICAgICBTaXplICAgICAgICAgPT4gNiwKICAgICAgICBNdWx0aXBsZSAgICAgPT4gMSwKICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMCwKICAgICAgICBTb3J0ICAgICAgICAgPT4gJ0FscGhhbnVtZXJpY1ZhbHVlJywKICAgICAgICBUcmFuc2xhdGlvbiAgPT4gMCwKICAgICAgICBTZWxlY3RlZElEICAgPT4gJEZvcm1FbGVtZW50c3tRdWV1ZXN9IHx8ICRTZWxlY3RlZFF1ZXVlcywKICAgICk7CgogICAgbXkgJEJsb2NrOwogICAgaWYgKCAhJFBhcmFte1N1cnZleUlEfSApIHsKICAgICAgICAkQmxvY2sgPSAnU3VydmV5QWRkJzsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRCbG9jayA9ICdTdXJ2ZXlFZGl0JzsKICAgIH0KCiAgICAjIHByaW50IHRoZSBmb3JtCiAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJEJsb2NrLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIFF1ZXVlU3RyaW5nICAgICAgICA9PiAkUXVldWVTdHJpbmcsCiAgICAgICAgICAgIE5vdGlmaWNhdGlvblNlbmRlciA9PiAkRm9ybUVsZW1lbnRze05vdGlmaWNhdGlvblNlbmRlcn0KICAgICAgICAgICAgICAgIHx8ICRQYXJhbXtOb3RpZmljYXRpb25TZW5kZXJ9CiAgICAgICAgICAgICAgICB8fCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnU3VydmV5OjpOb3RpZmljYXRpb25TZW5kZXInKSwKICAgICAgICAgICAgTm90aWZpY2F0aW9uU3ViamVjdCA9PiAkRm9ybUVsZW1lbnRze05vdGlmaWNhdGlvblN1YmplY3R9CiAgICAgICAgICAgICAgICB8fCAkUGFyYW17Tm90aWZpY2F0aW9uU3ViamVjdH0KICAgICAgICAgICAgICAgIHx8ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdTdXJ2ZXk6Ok5vdGlmaWNhdGlvblN1YmplY3QnKSwKICAgICAgICAgICAgJVNlcnZlckVycm9yLAogICAgICAgICAgICAlRm9ybUVsZW1lbnRzLAogICAgICAgIH0sCiAgICApOwoKICAgICMgcmljaCB0ZXh0IGVsZW1lbnRzCiAgICBteSAlU3VydmV5RWxlbWVudHM7CgogICAgJFN1cnZleUVsZW1lbnRze0ludHJvZHVjdGlvbn0gPSAkRm9ybUVsZW1lbnRze0ludHJvZHVjdGlvbn0gfHwKICAgICAgICAkUGFyYW17SW50cm9kdWN0aW9ufTsKCiAgICAkU3VydmV5RWxlbWVudHN7Tm90aWZpY2F0aW9uQm9keX0gPSAkRm9ybUVsZW1lbnRze05vdGlmaWNhdGlvbkJvZHl9IHx8CiAgICAgICAgJFBhcmFte05vdGlmaWNhdGlvbkJvZHl9IHx8CiAgICAgICAgJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1N1cnZleTo6Tm90aWZpY2F0aW9uQm9keScpOwoKICAgICRTdXJ2ZXlFbGVtZW50c3tEZXNjcmlwdGlvbn0gPSAkRm9ybUVsZW1lbnRze0Rlc2NyaXB0aW9ufSB8fAogICAgICAgICRQYXJhbXtEZXNjcmlwdGlvbn0gfHwKICAgICAgICAnJzsKCiAgICAjIGxvYWQgcmljaCB0ZXh0IGVkaXRvcgogICAgbXkgJFJpY2hUZXh0RWRpdG9yID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ0Zyb250ZW5kOjpSaWNoVGV4dCcpOwogICAgaWYgKCRSaWNoVGV4dEVkaXRvcikgewogICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soIE5hbWUgPT4gIiRCbG9jayIgLiAnUmljaFRleHQnICk7CiAgICB9CgogICAgIyBjb252ZXJ0IHJlcXVpcmVkIGVsZW1lbnRzIHRvIFJURQogICAgZm9yIG15ICRTdXJ2ZXlGaWVsZCAoIHNvcnQga2V5cyAlU3VydmV5RWxlbWVudHMgKSB7CiAgICAgICAgbmV4dCBpZiAhJFN1cnZleUVsZW1lbnRzeyRTdXJ2ZXlGaWVsZH07CgogICAgICAgICMgY2xlYW4gaHRtbAogICAgICAgIG15ICRIVE1MQ29udGVudCA9CiAgICAgICAgICAgICRTdXJ2ZXlFbGVtZW50c3skU3VydmV5RmllbGR9ID1+IHN7XEFcJGh0bWxcL3RleHRcJFxzKC4qKX17JDF9eG1zOwoKICAgICAgICBpZiAoICEkSFRNTENvbnRlbnQgJiYgJFJpY2hUZXh0RWRpdG9yICkgewogICAgICAgICAgICAkU3VydmV5RWxlbWVudHN7JFN1cnZleUZpZWxkfSA9CiAgICAgICAgICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkFzY2lpMkh0bWwoCiAgICAgICAgICAgICAgICBUZXh0ICAgICAgICAgICA9PiAkU3VydmV5RWxlbWVudHN7JFN1cnZleUZpZWxkfSwKICAgICAgICAgICAgICAgIEhUTUxSZXN1bHRNb2RlID0+IDEsCiAgICAgICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoICRIVE1MQ29udGVudCAmJiAhJFJpY2hUZXh0RWRpdG9yICkgewogICAgICAgICAgICAkU3VydmV5RWxlbWVudHN7JFN1cnZleUZpZWxkfSA9CiAgICAgICAgICAgICAgICAkU2VsZi0+e0hUTUxVdGlsc09iamVjdH0tPlRvQXNjaWkoIFN0cmluZyA9PiAkU3VydmV5RWxlbWVudHN7JFN1cnZleUZpZWxkfSApOwogICAgICAgIH0KICAgIH0KCiAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgIE5hbWUgPT4gIiRCbG9jayIgLiAnSW50cm9kdWN0aW9uJywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgSW50cm9kdWN0aW9uID0+ICRTdXJ2ZXlFbGVtZW50c3tJbnRyb2R1Y3Rpb259LAogICAgICAgIH0sCiAgICApOwoKICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAiJEJsb2NrIiAuICdOb3RpZmljYXRpb25Cb2R5JywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgTm90aWZpY2F0aW9uQm9keSA9PiAkU3VydmV5RWxlbWVudHN7Tm90aWZpY2F0aW9uQm9keX0sCiAgICAgICAgfSwKICAgICk7CgogICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICBOYW1lID0+ICIkQmxvY2siIC4gJ0ludGVybmFsRGVzY3JpcHRpb24nLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICBEZXNjcmlwdGlvbiA9PiAkU3VydmV5RWxlbWVudHN7RGVzY3JpcHRpb259LAogICAgICAgIH0sCiAgICApOwoKICAgICMgZ2VuZXJhdGVzIGdlbmVyaWMgZXJyb3JzIGZvciBqYXZhc2NyaXB0CiAgICBmb3IgbXkgJE5lZWRlZEl0ZW0gKAogICAgICAgIHF3KCBUaXRsZSBJbnRyb2R1Y3Rpb24gRGVzY3JpcHRpb24gTm90aWZpY2F0aW9uU2VuZGVyIE5vdGlmaWNhdGlvblN1YmplY3QgTm90aWZpY2F0aW9uQm9keSApCiAgICAgICAgKQogICAgewogICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJEJsb2NrIC4gJ0dlbmVyaWNFcnJvcicsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgSXRlbU5hbWUgPT4gJE5lZWRlZEl0ZW0gLiAnRXJyb3InLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgZm9yIG15ICRJdGVtICggc29ydCBrZXlzICVTZXJ2ZXJFcnJvciApIHsKICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICRCbG9jayAuICdHZW5lcmljU2VydmVyRXJyb3InLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIEl0ZW1OYW1lID0+ICRJdGVtLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgJE91dHB1dCAuPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPk91dHB1dCggVGVtcGxhdGVGaWxlID0+ICdBZ2VudFN1cnZleScgKTsKICAgICRPdXRwdXQgLj0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5Gb290ZXIoIFR5cGUgPT4gJFR5cGUgKTsKCiAgICByZXR1cm4gJE91dHB1dDsKfQoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpNb2R1bGVzOjpBZ2VudFN1cnZleUVkaXRRdWVzdGlvbnM7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlN1cnZleTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBnZXQgY29tbW9uIG9iamVjdHMKICAgICV7JFNlbGZ9ID0gJVBhcmFtOwoKICAgICMgY2hlY2sgbmVlZGVkIG9iamVjdHMKICAgIGZvciBteSAkT2JqZWN0IChxdyhQYXJhbU9iamVjdCBEQk9iamVjdCBMYXlvdXRPYmplY3QgTG9nT2JqZWN0IENvbmZpZ09iamVjdCkpIHsKICAgICAgICBpZiAoICEkU2VsZi0+eyRPYmplY3R9ICkgewogICAgICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkZhdGFsRXJyb3IoIE1lc3NhZ2UgPT4gIkdvdCBubyAkT2JqZWN0ISIgKTsKICAgICAgICB9CiAgICB9CiAgICAkU2VsZi0+e1N1cnZleU9iamVjdH0gPSBLZXJuZWw6OlN5c3RlbTo6U3VydmV5LT5uZXcoJVBhcmFtKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkT3V0cHV0OwoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgcXVlc3Rpb24gYWRkCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnUXVlc3Rpb25BZGQnICkgewogICAgICAgIG15ICRTdXJ2ZXlJRCA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gIlN1cnZleUlEIiApOwogICAgICAgIG15ICRRdWVzdGlvbiA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gIlF1ZXN0aW9uIiApOwogICAgICAgIG15ICRUeXBlICAgICA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gIlR5cGUiICk7CgogICAgICAgIG15ICRBbnN3ZXJSZXF1aXJlZCA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0Fuc3dlclJlcXVpcmVkJyApOwogICAgICAgIGlmICggJEFuc3dlclJlcXVpcmVkICYmICRBbnN3ZXJSZXF1aXJlZCBlcSAnTm8nICkgewogICAgICAgICAgICAkQW5zd2VyUmVxdWlyZWQgPSAwOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJEFuc3dlclJlcXVpcmVkID0gMTsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgaWYgc3VydmV5IGV4aXN0cwogICAgICAgIGlmICgKICAgICAgICAgICAgJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5FbGVtZW50RXhpc3RzKAogICAgICAgICAgICAgICAgRWxlbWVudElEID0+ICRTdXJ2ZXlJRCwKICAgICAgICAgICAgICAgIEVsZW1lbnQgICA9PiAnU3VydmV5JwogICAgICAgICAgICApIG5lCiAgICAgICAgICAgICdZZXMnCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiAkU2VsZi0+e0xheW91dE9iamVjdH0tPlJlZGlyZWN0KCBPUCA9PiAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufSIgKTsKICAgICAgICB9CgogICAgICAgIG15ICVTZXJ2ZXJFcnJvcjsKICAgICAgICBpZiAoJFF1ZXN0aW9uKSB7CiAgICAgICAgICAgICRTZWxmLT57U3VydmV5T2JqZWN0fS0+UXVlc3Rpb25BZGQoCiAgICAgICAgICAgICAgICBTdXJ2ZXlJRCAgICAgICA9PiAkU3VydmV5SUQsCiAgICAgICAgICAgICAgICBRdWVzdGlvbiAgICAgICA9PiAkUXVlc3Rpb24sCiAgICAgICAgICAgICAgICBUeXBlICAgICAgICAgICA9PiAkVHlwZSwKICAgICAgICAgICAgICAgIEFuc3dlclJlcXVpcmVkID0+ICRBbnN3ZXJSZXF1aXJlZCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5RdWVzdGlvblNvcnQoIFN1cnZleUlEID0+ICRTdXJ2ZXlJRCApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFNlcnZlckVycm9ye1F1ZXN0aW9ufSA9IDE7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJFNlbGYtPl9NYXNrUXVlc3Rpb25PdmVydmlldygKICAgICAgICAgICAgU3VydmV5SUQgICAgPT4gJFN1cnZleUlELAogICAgICAgICAgICBTZXJ2ZXJFcnJvciA9PiBcJVNlcnZlckVycm9yLAogICAgICAgICk7CgogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgcXVlc3Rpb24gZGVsZXRlCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnUXVlc3Rpb25EZWxldGUnICkgewogICAgICAgIG15ICRRdWVzdGlvbklEID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKCBQYXJhbSA9PiAiUXVlc3Rpb25JRCIgKTsKICAgICAgICBteSAkU3VydmV5SUQgICA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gIlN1cnZleUlEIiApOwoKICAgICAgICAjIGNoZWNrIGlmIHN1cnZleSBhbmQgcXVlc3Rpb24gZXhpc3RzCiAgICAgICAgaWYgKAogICAgICAgICAgICAkU2VsZi0+e1N1cnZleU9iamVjdH0tPkVsZW1lbnRFeGlzdHMoCiAgICAgICAgICAgICAgICBFbGVtZW50SUQgPT4gJFN1cnZleUlELAogICAgICAgICAgICAgICAgRWxlbWVudCAgID0+ICdTdXJ2ZXknCiAgICAgICAgICAgICkgbmUKICAgICAgICAgICAgJ1llcycKICAgICAgICAgICAgfHwgJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5FbGVtZW50RXhpc3RzKAogICAgICAgICAgICAgICAgRWxlbWVudElEID0+ICRRdWVzdGlvbklELAogICAgICAgICAgICAgICAgRWxlbWVudCAgID0+ICdRdWVzdGlvbicKICAgICAgICAgICAgKSBuZSAnWWVzJwogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5SZWRpcmVjdCggT1AgPT4gIkFjdGlvbj0kU2VsZi0+e0FjdGlvbn0iICk7CiAgICAgICAgfQogICAgICAgICRTZWxmLT57U3VydmV5T2JqZWN0fS0+UXVlc3Rpb25EZWxldGUoCiAgICAgICAgICAgIFN1cnZleUlEICAgPT4gJFN1cnZleUlELAogICAgICAgICAgICBRdWVzdGlvbklEID0+ICRRdWVzdGlvbklELAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5RdWVzdGlvblNvcnQoIFN1cnZleUlEID0+ICRTdXJ2ZXlJRCApOwogICAgICAgIHJldHVybiAkU2VsZi0+e0xheW91dE9iamVjdH0tPlJlZGlyZWN0KAogICAgICAgICAgICBPUCA9PiAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufTtTdWJhY3Rpb249U3VydmV5RWRpdDtTdXJ2ZXlJRD0kU3VydmV5SUQjUXVlc3Rpb24iCiAgICAgICAgKTsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIHF1ZXN0aW9uIHVwCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnUXVlc3Rpb25VcCcgKSB7CiAgICAgICAgbXkgJFF1ZXN0aW9uSUQgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICJRdWVzdGlvbklEIiApOwogICAgICAgIG15ICRTdXJ2ZXlJRCAgID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKCBQYXJhbSA9PiAiU3VydmV5SUQiICk7CgogICAgICAgICMgY2hlY2sgaWYgc3VydmV5IGFuZCBxdWVzdGlvbiBleGlzdHMKICAgICAgICBpZiAoCiAgICAgICAgICAgICRTZWxmLT57U3VydmV5T2JqZWN0fS0+RWxlbWVudEV4aXN0cygKICAgICAgICAgICAgICAgIEVsZW1lbnRJRCA9PiAkU3VydmV5SUQsCiAgICAgICAgICAgICAgICBFbGVtZW50ICAgPT4gJ1N1cnZleScKICAgICAgICAgICAgKSBuZQogICAgICAgICAgICAnWWVzJwogICAgICAgICAgICB8fCAkU2VsZi0+e1N1cnZleU9iamVjdH0tPkVsZW1lbnRFeGlzdHMoCiAgICAgICAgICAgICAgICBFbGVtZW50SUQgPT4gJFF1ZXN0aW9uSUQsCiAgICAgICAgICAgICAgICBFbGVtZW50ICAgPT4gJ1F1ZXN0aW9uJwogICAgICAgICAgICApIG5lICdZZXMnCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiAkU2VsZi0+e0xheW91dE9iamVjdH0tPlJlZGlyZWN0KCBPUCA9PiAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufSIgKTsKICAgICAgICB9CiAgICAgICAgJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5RdWVzdGlvblNvcnQoIFN1cnZleUlEID0+ICRTdXJ2ZXlJRCApOwogICAgICAgICRTZWxmLT57U3VydmV5T2JqZWN0fS0+UXVlc3Rpb25VcCgKICAgICAgICAgICAgU3VydmV5SUQgICA9PiAkU3VydmV5SUQsCiAgICAgICAgICAgIFF1ZXN0aW9uSUQgPT4gJFF1ZXN0aW9uSUQsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+UmVkaXJlY3QoCiAgICAgICAgICAgIE9QID0+ICJBY3Rpb249JFNlbGYtPntBY3Rpb259O1N1YmFjdGlvbj1TdXJ2ZXlFZGl0O1N1cnZleUlEPSRTdXJ2ZXlJRCNRdWVzdGlvbiIKICAgICAgICApOwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgcXVlc3Rpb24gZG93bgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ1F1ZXN0aW9uRG93bicgKSB7CiAgICAgICAgbXkgJFF1ZXN0aW9uSUQgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICJRdWVzdGlvbklEIiApOwogICAgICAgIG15ICRTdXJ2ZXlJRCAgID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKCBQYXJhbSA9PiAiU3VydmV5SUQiICk7CgogICAgICAgICMgY2hlY2sgaWYgc3VydmV5IGFuZCBxdWVzdGlvbiBleGlzdHMKICAgICAgICBpZiAoCiAgICAgICAgICAgICRTZWxmLT57U3VydmV5T2JqZWN0fS0+RWxlbWVudEV4aXN0cygKICAgICAgICAgICAgICAgIEVsZW1lbnRJRCA9PiAkU3VydmV5SUQsCiAgICAgICAgICAgICAgICBFbGVtZW50ICAgPT4gJ1N1cnZleScKICAgICAgICAgICAgKSBuZQogICAgICAgICAgICAnWWVzJwogICAgICAgICAgICB8fCAkU2VsZi0+e1N1cnZleU9iamVjdH0tPkVsZW1lbnRFeGlzdHMoCiAgICAgICAgICAgICAgICBFbGVtZW50SUQgPT4gJFF1ZXN0aW9uSUQsCiAgICAgICAgICAgICAgICBFbGVtZW50ICAgPT4gJ1F1ZXN0aW9uJwogICAgICAgICAgICApIG5lICdZZXMnCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiAkU2VsZi0+e0xheW91dE9iamVjdH0tPlJlZGlyZWN0KCBPUCA9PiAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufSIgKTsKICAgICAgICB9CiAgICAgICAgJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5RdWVzdGlvblNvcnQoIFN1cnZleUlEID0+ICRTdXJ2ZXlJRCApOwogICAgICAgICRTZWxmLT57U3VydmV5T2JqZWN0fS0+UXVlc3Rpb25Eb3duKAogICAgICAgICAgICBTdXJ2ZXlJRCAgID0+ICRTdXJ2ZXlJRCwKICAgICAgICAgICAgUXVlc3Rpb25JRCA9PiAkUXVlc3Rpb25JRCwKICAgICAgICApOwogICAgICAgIHJldHVybiAkU2VsZi0+e0xheW91dE9iamVjdH0tPlJlZGlyZWN0KAogICAgICAgICAgICBPUCA9PiAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufTtTdWJhY3Rpb249U3VydmV5RWRpdDtTdXJ2ZXlJRD0kU3VydmV5SUQjUXVlc3Rpb24iCiAgICAgICAgKTsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIHF1ZXN0aW9uIGVkaXQKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdRdWVzdGlvbkVkaXQnICkgewogICAgICAgIG15ICRTdXJ2ZXlJRCAgID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKCBQYXJhbSA9PiAnU3VydmV5SUQnICk7CiAgICAgICAgbXkgJFF1ZXN0aW9uSUQgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICdRdWVzdGlvbklEJyApOwoKICAgICAgICAjIGNoZWNrIGlmIHN1cnZleSBhbmQgcXVlc3Rpb24gZXhpc3RzCiAgICAgICAgaWYgKAogICAgICAgICAgICAkU2VsZi0+e1N1cnZleU9iamVjdH0tPkVsZW1lbnRFeGlzdHMoCiAgICAgICAgICAgICAgICBFbGVtZW50SUQgPT4gJFN1cnZleUlELAogICAgICAgICAgICAgICAgRWxlbWVudCAgID0+ICdTdXJ2ZXknCiAgICAgICAgICAgICkgbmUKICAgICAgICAgICAgJ1llcycKICAgICAgICAgICAgfHwgJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5FbGVtZW50RXhpc3RzKAogICAgICAgICAgICAgICAgRWxlbWVudElEID0+ICRRdWVzdGlvbklELAogICAgICAgICAgICAgICAgRWxlbWVudCAgID0+ICdRdWVzdGlvbicKICAgICAgICAgICAgKSBuZSAnWWVzJwogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5SZWRpcmVjdCggT1AgPT4gIkFjdGlvbj0kU2VsZi0+e0FjdGlvbn0iICk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJFNlbGYtPl9NYXNrUXVlc3Rpb25FZGl0KAogICAgICAgICAgICBTdXJ2ZXlJRCAgID0+ICRTdXJ2ZXlJRCwKICAgICAgICAgICAgUXVlc3Rpb25JRCA9PiAkUXVlc3Rpb25JRCwKICAgICAgICApOwoKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIHF1ZXN0aW9uIHNhdmUKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdRdWVzdGlvblNhdmUnICkgewogICAgICAgIG15ICRRdWVzdGlvbklEID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKCBQYXJhbSA9PiAnUXVlc3Rpb25JRCcgKTsKICAgICAgICBteSAkU3VydmV5SUQgICA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1N1cnZleUlEJyApOwogICAgICAgIG15ICRRdWVzdGlvbiAgID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKCBQYXJhbSA9PiAnUXVlc3Rpb24nICk7CgogICAgICAgIG15ICRBbnN3ZXJSZXF1aXJlZCA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0Fuc3dlclJlcXVpcmVkJyApOwogICAgICAgIGlmICggJEFuc3dlclJlcXVpcmVkICYmICRBbnN3ZXJSZXF1aXJlZCBlcSAnTm8nICkgewogICAgICAgICAgICAkQW5zd2VyUmVxdWlyZWQgPSAwOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJEFuc3dlclJlcXVpcmVkID0gMTsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgaWYgc3VydmV5IGFuZCBxdWVzdGlvbiBleGlzdHMKICAgICAgICBpZiAoCiAgICAgICAgICAgICRTZWxmLT57U3VydmV5T2JqZWN0fS0+RWxlbWVudEV4aXN0cygKICAgICAgICAgICAgICAgIEVsZW1lbnRJRCA9PiAkU3VydmV5SUQsCiAgICAgICAgICAgICAgICBFbGVtZW50ICAgPT4gJ1N1cnZleScKICAgICAgICAgICAgKSBuZQogICAgICAgICAgICAnWWVzJwogICAgICAgICAgICB8fCAkU2VsZi0+e1N1cnZleU9iamVjdH0tPkVsZW1lbnRFeGlzdHMoCiAgICAgICAgICAgICAgICBFbGVtZW50SUQgPT4gJFF1ZXN0aW9uSUQsCiAgICAgICAgICAgICAgICBFbGVtZW50ICAgPT4gJ1F1ZXN0aW9uJwogICAgICAgICAgICApIG5lICdZZXMnCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiAkU2VsZi0+e0xheW91dE9iamVjdH0tPlJlZGlyZWN0KCBPUCA9PiAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufSIgKTsKICAgICAgICB9CgogICAgICAgIG15ICVTZXJ2ZXJFcnJvcjsKICAgICAgICBpZiAoJFF1ZXN0aW9uKSB7CiAgICAgICAgICAgICRTZWxmLT57U3VydmV5T2JqZWN0fS0+UXVlc3Rpb25TYXZlKAogICAgICAgICAgICAgICAgUXVlc3Rpb25JRCAgICAgPT4gJFF1ZXN0aW9uSUQsCiAgICAgICAgICAgICAgICBTdXJ2ZXlJRCAgICAgICA9PiAkU3VydmV5SUQsCiAgICAgICAgICAgICAgICBRdWVzdGlvbiAgICAgICA9PiAkUXVlc3Rpb24sCiAgICAgICAgICAgICAgICBBbnN3ZXJSZXF1aXJlZCA9PiAkQW5zd2VyUmVxdWlyZWQsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm4gJFNlbGYtPl9NYXNrUXVlc3Rpb25FZGl0KAogICAgICAgICAgICAgICAgU3VydmV5SUQgICA9PiAkU3VydmV5SUQsCiAgICAgICAgICAgICAgICBRdWVzdGlvbklEID0+ICRRdWVzdGlvbklELAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFNlcnZlckVycm9ye1F1ZXN0aW9uU2VydmVyRXJyb3J9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkU2VsZi0+X01hc2tRdWVzdGlvbkVkaXQoCiAgICAgICAgICAgIFN1cnZleUlEICAgID0+ICRTdXJ2ZXlJRCwKICAgICAgICAgICAgUXVlc3Rpb25JRCAgPT4gJFF1ZXN0aW9uSUQsCiAgICAgICAgICAgIFNlcnZlckVycm9yID0+IFwlU2VydmVyRXJyb3IsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGFuc3dlciBhZGQKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdBbnN3ZXJBZGQnICkgewogICAgICAgIG15ICRTdXJ2ZXlJRCAgID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKCBQYXJhbSA9PiAiU3VydmV5SUQiICk7CiAgICAgICAgbXkgJFF1ZXN0aW9uSUQgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICJRdWVzdGlvbklEIiApOwogICAgICAgIG15ICRBbnN3ZXIgICAgID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKCBQYXJhbSA9PiAiQW5zd2VyIiApOwoKICAgICAgICAjIGNoZWNrIGlmIHN1cnZleSBhbmQgcXVlc3Rpb24gZXhpc3RzCiAgICAgICAgaWYgKAogICAgICAgICAgICAkU2VsZi0+e1N1cnZleU9iamVjdH0tPkVsZW1lbnRFeGlzdHMoCiAgICAgICAgICAgICAgICBFbGVtZW50SUQgPT4gJFN1cnZleUlELAogICAgICAgICAgICAgICAgRWxlbWVudCAgID0+ICdTdXJ2ZXknCiAgICAgICAgICAgICkgbmUKICAgICAgICAgICAgJ1llcycKICAgICAgICAgICAgfHwgJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5FbGVtZW50RXhpc3RzKAogICAgICAgICAgICAgICAgRWxlbWVudElEID0+ICRRdWVzdGlvbklELAogICAgICAgICAgICAgICAgRWxlbWVudCAgID0+ICdRdWVzdGlvbicKICAgICAgICAgICAgKSBuZSAnWWVzJwogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5SZWRpcmVjdCggT1AgPT4gIkFjdGlvbj0kU2VsZi0+e0FjdGlvbn0iICk7CiAgICAgICAgfQoKICAgICAgICBteSAlU2VydmVyRXJyb3I7CiAgICAgICAgaWYgKCRBbnN3ZXIpIHsKICAgICAgICAgICAgJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5BbnN3ZXJBZGQoCiAgICAgICAgICAgICAgICBTdXJ2ZXlJRCAgID0+ICRTdXJ2ZXlJRCwKICAgICAgICAgICAgICAgIFF1ZXN0aW9uSUQgPT4gJFF1ZXN0aW9uSUQsCiAgICAgICAgICAgICAgICBBbnN3ZXIgICAgID0+ICRBbnN3ZXIsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybiAkU2VsZi0+X01hc2tRdWVzdGlvbkVkaXQoCiAgICAgICAgICAgICAgICBTdXJ2ZXlJRCAgID0+ICRTdXJ2ZXlJRCwKICAgICAgICAgICAgICAgIFF1ZXN0aW9uSUQgPT4gJFF1ZXN0aW9uSUQsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkU2VydmVyRXJyb3J7QW5zd2VyU2VydmVyRXJyb3J9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkU2VsZi0+X01hc2tRdWVzdGlvbkVkaXQoCiAgICAgICAgICAgIFN1cnZleUlEICAgID0+ICRTdXJ2ZXlJRCwKICAgICAgICAgICAgUXVlc3Rpb25JRCAgPT4gJFF1ZXN0aW9uSUQsCiAgICAgICAgICAgIFNlcnZlckVycm9yID0+IFwlU2VydmVyRXJyb3IsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGFuc3dlciBkZWxldGUKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdBbnN3ZXJEZWxldGUnICkgewogICAgICAgIG15ICRBbnN3ZXJJRCAgID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKCBQYXJhbSA9PiAiQW5zd2VySUQiICk7CiAgICAgICAgbXkgJFF1ZXN0aW9uSUQgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICJRdWVzdGlvbklEIiApOwogICAgICAgIG15ICRTdXJ2ZXlJRCAgID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKCBQYXJhbSA9PiAiU3VydmV5SUQiICk7CgogICAgICAgICMgY2hlY2sgaWYgc3VydmV5LCBxdWVzdGlvbiBhbmQgYW5zd2VyIGV4aXN0cwogICAgICAgIGlmICgKICAgICAgICAgICAgJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5FbGVtZW50RXhpc3RzKAogICAgICAgICAgICAgICAgRWxlbWVudElEID0+ICRTdXJ2ZXlJRCwKICAgICAgICAgICAgICAgIEVsZW1lbnQgICA9PiAnU3VydmV5JwogICAgICAgICAgICApIG5lCiAgICAgICAgICAgICdZZXMnCiAgICAgICAgICAgIHx8ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+RWxlbWVudEV4aXN0cygKICAgICAgICAgICAgICAgIEVsZW1lbnRJRCA9PiAkUXVlc3Rpb25JRCwKICAgICAgICAgICAgICAgIEVsZW1lbnQgICA9PiAnUXVlc3Rpb24nCiAgICAgICAgICAgICkgbmUgJ1llcycKICAgICAgICAgICAgfHwgJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5FbGVtZW50RXhpc3RzKAogICAgICAgICAgICAgICAgRWxlbWVudElEID0+ICRBbnN3ZXJJRCwKICAgICAgICAgICAgICAgIEVsZW1lbnQgICA9PiAnQW5zd2VyJwogICAgICAgICAgICApCiAgICAgICAgICAgIG5lICdZZXMnCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiAkU2VsZi0+e0xheW91dE9iamVjdH0tPlJlZGlyZWN0KCBPUCA9PiAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufSIgKTsKICAgICAgICB9CiAgICAgICAgJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5BbnN3ZXJEZWxldGUoCiAgICAgICAgICAgIFF1ZXN0aW9uSUQgPT4gJFF1ZXN0aW9uSUQsCiAgICAgICAgICAgIEFuc3dlcklEICAgPT4gJEFuc3dlcklELAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5BbnN3ZXJTb3J0KCBRdWVzdGlvbklEID0+ICRRdWVzdGlvbklEICk7CiAgICAgICAgcmV0dXJuICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+UmVkaXJlY3QoCiAgICAgICAgICAgIE9QID0+CiAgICAgICAgICAgICAgICAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufTtTdWJhY3Rpb249UXVlc3Rpb25FZGl0O1N1cnZleUlEPSRTdXJ2ZXlJRDtRdWVzdGlvbklEPSRRdWVzdGlvbklEI0Fuc3dlciIsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGFuc3dlciB1cAogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0Fuc3dlclVwJyApIHsKICAgICAgICBteSAkQW5zd2VySUQgICA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gIkFuc3dlcklEIiApOwogICAgICAgIG15ICRRdWVzdGlvbklEID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKCBQYXJhbSA9PiAiUXVlc3Rpb25JRCIgKTsKICAgICAgICBteSAkU3VydmV5SUQgICA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gIlN1cnZleUlEIiApOwoKICAgICAgICAjIGNoZWNrIGlmIHN1cnZleSwgcXVlc3Rpb24gYW5kIGFuc3dlciBleGlzdHMKICAgICAgICBpZiAoCiAgICAgICAgICAgICRTZWxmLT57U3VydmV5T2JqZWN0fS0+RWxlbWVudEV4aXN0cygKICAgICAgICAgICAgICAgIEVsZW1lbnRJRCA9PiAkU3VydmV5SUQsCiAgICAgICAgICAgICAgICBFbGVtZW50ICAgPT4gJ1N1cnZleScKICAgICAgICAgICAgKSBuZQogICAgICAgICAgICAnWWVzJwogICAgICAgICAgICB8fCAkU2VsZi0+e1N1cnZleU9iamVjdH0tPkVsZW1lbnRFeGlzdHMoCiAgICAgICAgICAgICAgICBFbGVtZW50SUQgPT4gJFF1ZXN0aW9uSUQsCiAgICAgICAgICAgICAgICBFbGVtZW50ICAgPT4gJ1F1ZXN0aW9uJwogICAgICAgICAgICApIG5lICdZZXMnCiAgICAgICAgICAgIHx8ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+RWxlbWVudEV4aXN0cygKICAgICAgICAgICAgICAgIEVsZW1lbnRJRCA9PiAkQW5zd2VySUQsCiAgICAgICAgICAgICAgICBFbGVtZW50ICAgPT4gJ0Fuc3dlcicKICAgICAgICAgICAgKQogICAgICAgICAgICBuZSAnWWVzJwogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5SZWRpcmVjdCggT1AgPT4gIkFjdGlvbj0kU2VsZi0+e0FjdGlvbn0iICk7CiAgICAgICAgfQogICAgICAgICRTZWxmLT57U3VydmV5T2JqZWN0fS0+QW5zd2VyU29ydCggUXVlc3Rpb25JRCA9PiAkUXVlc3Rpb25JRCApOwogICAgICAgICRTZWxmLT57U3VydmV5T2JqZWN0fS0+QW5zd2VyVXAoCiAgICAgICAgICAgIFF1ZXN0aW9uSUQgPT4gJFF1ZXN0aW9uSUQsCiAgICAgICAgICAgIEFuc3dlcklEICAgPT4gJEFuc3dlcklELAogICAgICAgICk7CiAgICAgICAgcmV0dXJuICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+UmVkaXJlY3QoCiAgICAgICAgICAgIE9QID0+CiAgICAgICAgICAgICAgICAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufTtTdWJhY3Rpb249UXVlc3Rpb25FZGl0O1N1cnZleUlEPSRTdXJ2ZXlJRDtRdWVzdGlvbklEPSRRdWVzdGlvbklEI0Fuc3dlciIsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGFuc3dlciBkb3duCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQW5zd2VyRG93bicgKSB7CiAgICAgICAgbXkgJEFuc3dlcklEICAgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICJBbnN3ZXJJRCIgKTsKICAgICAgICBteSAkUXVlc3Rpb25JRCA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gIlF1ZXN0aW9uSUQiICk7CiAgICAgICAgbXkgJFN1cnZleUlEICAgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICJTdXJ2ZXlJRCIgKTsKCiAgICAgICAgIyBjaGVjayBpZiBzdXJ2ZXksIHF1ZXN0aW9uIGFuZCBhbnN3ZXIgZXhpc3RzCiAgICAgICAgaWYgKAogICAgICAgICAgICAkU2VsZi0+e1N1cnZleU9iamVjdH0tPkVsZW1lbnRFeGlzdHMoCiAgICAgICAgICAgICAgICBFbGVtZW50SUQgPT4gJFN1cnZleUlELAogICAgICAgICAgICAgICAgRWxlbWVudCAgID0+ICdTdXJ2ZXknCiAgICAgICAgICAgICkgbmUKICAgICAgICAgICAgJ1llcycKICAgICAgICAgICAgfHwgJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5FbGVtZW50RXhpc3RzKAogICAgICAgICAgICAgICAgRWxlbWVudElEID0+ICRRdWVzdGlvbklELAogICAgICAgICAgICAgICAgRWxlbWVudCAgID0+ICdRdWVzdGlvbicKICAgICAgICAgICAgKSBuZSAnWWVzJwogICAgICAgICAgICB8fCAkU2VsZi0+e1N1cnZleU9iamVjdH0tPkVsZW1lbnRFeGlzdHMoCiAgICAgICAgICAgICAgICBFbGVtZW50SUQgPT4gJEFuc3dlcklELAogICAgICAgICAgICAgICAgRWxlbWVudCAgID0+ICdBbnN3ZXInCiAgICAgICAgICAgICkKICAgICAgICAgICAgbmUgJ1llcycKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+UmVkaXJlY3QoIE9QID0+ICJBY3Rpb249JFNlbGYtPntBY3Rpb259IiApOwogICAgICAgIH0KICAgICAgICAkU2VsZi0+e1N1cnZleU9iamVjdH0tPkFuc3dlclNvcnQoIFF1ZXN0aW9uSUQgPT4gJFF1ZXN0aW9uSUQgKTsKICAgICAgICAkU2VsZi0+e1N1cnZleU9iamVjdH0tPkFuc3dlckRvd24oCiAgICAgICAgICAgIFF1ZXN0aW9uSUQgPT4gJFF1ZXN0aW9uSUQsCiAgICAgICAgICAgIEFuc3dlcklEICAgPT4gJEFuc3dlcklELAogICAgICAgICk7CiAgICAgICAgcmV0dXJuICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+UmVkaXJlY3QoCiAgICAgICAgICAgIE9QID0+CiAgICAgICAgICAgICAgICAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufTtTdWJhY3Rpb249UXVlc3Rpb25FZGl0O1N1cnZleUlEPSRTdXJ2ZXlJRDtRdWVzdGlvbklEPSRRdWVzdGlvbklEI0Fuc3dlciIsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGFuc3dlciBlZGl0CiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQW5zd2VyRWRpdCcgKSB7CiAgICAgICAgbXkgJFN1cnZleUlEICAgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICdTdXJ2ZXlJRCcgKTsKICAgICAgICBteSAkUXVlc3Rpb25JRCA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1F1ZXN0aW9uSUQnICk7CiAgICAgICAgbXkgJEFuc3dlcklEICAgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICdBbnN3ZXJJRCcgKTsKCiAgICAgICAgIyBjaGVjayBpZiBzdXJ2ZXksIHF1ZXN0aW9uIGFuZCBhbnN3ZXIgZXhpc3RzCiAgICAgICAgaWYgKAogICAgICAgICAgICAkU2VsZi0+e1N1cnZleU9iamVjdH0tPkVsZW1lbnRFeGlzdHMoCiAgICAgICAgICAgICAgICBFbGVtZW50SUQgPT4gJFN1cnZleUlELAogICAgICAgICAgICAgICAgRWxlbWVudCAgID0+ICdTdXJ2ZXknCiAgICAgICAgICAgICkgbmUKICAgICAgICAgICAgJ1llcycKICAgICAgICAgICAgfHwgJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5FbGVtZW50RXhpc3RzKAogICAgICAgICAgICAgICAgRWxlbWVudElEID0+ICRRdWVzdGlvbklELAogICAgICAgICAgICAgICAgRWxlbWVudCAgID0+ICdRdWVzdGlvbicKICAgICAgICAgICAgKSBuZSAnWWVzJwogICAgICAgICAgICB8fCAkU2VsZi0+e1N1cnZleU9iamVjdH0tPkVsZW1lbnRFeGlzdHMoCiAgICAgICAgICAgICAgICBFbGVtZW50SUQgPT4gJEFuc3dlcklELAogICAgICAgICAgICAgICAgRWxlbWVudCAgID0+ICdBbnN3ZXInCiAgICAgICAgICAgICkKICAgICAgICAgICAgbmUgJ1llcycKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+UmVkaXJlY3QoIE9QID0+ICJBY3Rpb249JFNlbGYtPntBY3Rpb259IiApOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRTZWxmLT5fTWFza0Fuc3dlckVkaXQoCiAgICAgICAgICAgIFN1cnZleUlEICAgPT4gJFN1cnZleUlELAogICAgICAgICAgICBRdWVzdGlvbklEID0+ICRRdWVzdGlvbklELAogICAgICAgICAgICBBbnN3ZXJJRCAgID0+ICRBbnN3ZXJJRCwKICAgICAgICApOwoKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGFuc3dlciBzYXZlCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQW5zd2VyU2F2ZScgKSB7CiAgICAgICAgbXkgJEFuc3dlcklEICAgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICJBbnN3ZXJJRCIgKTsKICAgICAgICBteSAkUXVlc3Rpb25JRCA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gIlF1ZXN0aW9uSUQiICk7CiAgICAgICAgbXkgJFN1cnZleUlEICAgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICJTdXJ2ZXlJRCIgKTsKICAgICAgICBteSAkQW5zd2VyICAgICA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gIkFuc3dlciIgKTsKCiAgICAgICAgIyBjaGVjayBpZiBzdXJ2ZXksIHF1ZXN0aW9uIGFuZCBhbnN3ZXIgZXhpc3RzCiAgICAgICAgaWYgKAogICAgICAgICAgICAkU2VsZi0+e1N1cnZleU9iamVjdH0tPkVsZW1lbnRFeGlzdHMoCiAgICAgICAgICAgICAgICBFbGVtZW50SUQgPT4gJFN1cnZleUlELAogICAgICAgICAgICAgICAgRWxlbWVudCAgID0+ICdTdXJ2ZXknCiAgICAgICAgICAgICkgbmUKICAgICAgICAgICAgJ1llcycKICAgICAgICAgICAgfHwgJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5FbGVtZW50RXhpc3RzKAogICAgICAgICAgICAgICAgRWxlbWVudElEID0+ICRRdWVzdGlvbklELAogICAgICAgICAgICAgICAgRWxlbWVudCAgID0+ICdRdWVzdGlvbicKICAgICAgICAgICAgKSBuZSAnWWVzJwogICAgICAgICAgICB8fCAkU2VsZi0+e1N1cnZleU9iamVjdH0tPkVsZW1lbnRFeGlzdHMoCiAgICAgICAgICAgICAgICBFbGVtZW50SUQgPT4gJEFuc3dlcklELAogICAgICAgICAgICAgICAgRWxlbWVudCAgID0+ICdBbnN3ZXInCiAgICAgICAgICAgICkKICAgICAgICAgICAgbmUgJ1llcycKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+UmVkaXJlY3QoIE9QID0+ICJBY3Rpb249JFNlbGYtPntBY3Rpb259IiApOwogICAgICAgIH0KCiAgICAgICAgbXkgJVNlcnZlckVycm9yOwogICAgICAgIGlmICgkQW5zd2VyKSB7CiAgICAgICAgICAgICRTZWxmLT57U3VydmV5T2JqZWN0fS0+QW5zd2VyU2F2ZSgKICAgICAgICAgICAgICAgIEFuc3dlcklEICAgPT4gJEFuc3dlcklELAogICAgICAgICAgICAgICAgUXVlc3Rpb25JRCA9PiAkUXVlc3Rpb25JRCwKICAgICAgICAgICAgICAgIEFuc3dlciAgICAgPT4gJEFuc3dlciwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm4gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5SZWRpcmVjdCgKICAgICAgICAgICAgICAgIE9QID0+CiAgICAgICAgICAgICAgICAgICAgIkFjdGlvbj0kU2VsZi0+e0FjdGlvbn07U3ViYWN0aW9uPVF1ZXN0aW9uRWRpdDtTdXJ2ZXlJRD0kU3VydmV5SUQ7UXVlc3Rpb25JRD0kUXVlc3Rpb25JRCNBbnN3ZXIiCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkU2VydmVyRXJyb3J7QW5zd2VyU2VydmVyRXJyb3J9ID0gJ1NldmVyRXJyb3InOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRTZWxmLT5fTWFza0Fuc3dlckVkaXQoCiAgICAgICAgICAgIFN1cnZleUlEICAgID0+ICRTdXJ2ZXlJRCwKICAgICAgICAgICAgUXVlc3Rpb25JRCAgPT4gJFF1ZXN0aW9uSUQsCiAgICAgICAgICAgIEFuc3dlcklEICAgID0+ICRBbnN3ZXJJRCwKICAgICAgICAgICAgU2VydmVyRXJyb3IgPT4gXCVTZXJ2ZXJFcnJvciwKICAgICAgICAgICAgKQogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgcXVlc3Rpb24gb3ZlcnZpZXcKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIG15ICRTdXJ2ZXlJRCA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1N1cnZleUlEJyApOwoKICAgIGlmICggISRTdXJ2ZXlJRCApIHsKICAgICAgICByZXR1cm4gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5SZWRpcmVjdCggT1AgPT4gIkFjdGlvbj1BZ2VudFN1cnZleSIgKTsKICAgIH0KCiAgICByZXR1cm4gJFNlbGYtPl9NYXNrUXVlc3Rpb25PdmVydmlldyggU3VydmV5SUQgPT4gJFN1cnZleUlEICk7Cn0KCnN1YiBfTWFza1F1ZXN0aW9uT3ZlcnZpZXcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlU2VydmVyRXJyb3I7CiAgICBpZiAoICRQYXJhbXtTZXJ2ZXJFcnJvcn0gKSB7CiAgICAgICAgJVNlcnZlckVycm9yID0gJXsgJFBhcmFte1NlcnZlckVycm9yfSB9OwogICAgfQoKICAgIG15ICRPdXRwdXQ7CgogICAgaWYgKCAhJFBhcmFte1N1cnZleUlEfSApIHsKICAgICAgICByZXR1cm4gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5SZWRpcmVjdCggT1AgPT4gIkFjdGlvbj1BZ2VudFN1cnZleSIgKTsKICAgIH0KCiAgICAjIG91dHB1dCBoZWFkZXIKICAgICRPdXRwdXQgPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPkhlYWRlcigKICAgICAgICBUaXRsZSA9PiAnU3VydmV5IEVkaXQgUXVlc3Rpb25zJywKICAgICAgICBUeXBlICA9PiAnU21hbGwnLAogICAgKTsKCiAgICAjIGdldCBhbGwgYXR0cmlidXRlcyBvZiB0aGUgc3VydmV5CiAgICBteSAlU3VydmV5ID0gJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5TdXJ2ZXlHZXQoIFN1cnZleUlEID0+ICRQYXJhbXtTdXJ2ZXlJRH0gKTsKCiAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ1N1cnZleUVkaXRRdWVzdGlvbnMnLAogICAgICAgIERhdGEgPT4gXCVTdXJ2ZXksCiAgICApOwoKICAgIG15IEBMaXN0ID0gJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5RdWVzdGlvbkxpc3QoIFN1cnZleUlEID0+ICRQYXJhbXtTdXJ2ZXlJRH0gKTsKCiAgICBpZiAoICRTdXJ2ZXl7U3RhdHVzfSAmJiAkU3VydmV5e1N0YXR1c30gZXEgJ05ldycgKSB7CgogICAgICAgIG15ICRBcnJheUhhc2hSZWYgPSBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEtleSAgICAgID0+ICdZZXNObycsCiAgICAgICAgICAgICAgICBWYWx1ZSAgICA9PiAnWWVzTm8nLAogICAgICAgICAgICAgICAgU2VsZWN0ZWQgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgS2V5ICAgPT4gJ1JhZGlvJywKICAgICAgICAgICAgICAgIFZhbHVlID0+ICdSYWRpbyAoTGlzdCknLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBLZXkgICA9PiAnQ2hlY2tib3gnLAogICAgICAgICAgICAgICAgVmFsdWUgPT4gJ0NoZWNrYm94IChMaXN0KScsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEtleSAgID0+ICdUZXh0YXJlYScsCiAgICAgICAgICAgICAgICBWYWx1ZSA9PiAnVGV4dGFyZWEnLAogICAgICAgICAgICB9LAogICAgICAgIF07CgogICAgICAgIG15ICRTZWxlY3Rpb25UeXBlID0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgRGF0YSAgICAgICAgICA9PiAkQXJyYXlIYXNoUmVmLAogICAgICAgICAgICBOYW1lICAgICAgICAgID0+ICdUeXBlJywKICAgICAgICAgICAgSUQgICAgICAgICAgICA9PiAnVHlwZScsCiAgICAgICAgICAgIFNlbGVjdGVkVmFsdWUgPT4gJ1llcy9ObycsCiAgICAgICAgICAgIFRyYW5zbGF0aW9uICAgPT4gMSwKICAgICAgICApOwoKICAgICAgICAkQXJyYXlIYXNoUmVmID0gWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBLZXkgICAgICA9PiAnWWVzJywKICAgICAgICAgICAgICAgIFZhbHVlICAgID0+ICdZZXMnLAogICAgICAgICAgICAgICAgU2VsZWN0ZWQgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgS2V5ICAgPT4gJ05vJywKICAgICAgICAgICAgICAgIFZhbHVlID0+ICdObycsCiAgICAgICAgICAgIH0KICAgICAgICBdOwoKICAgICAgICBteSAkQW5zd2VyUmVxdWlyZWRTZWxlY3QgPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICBEYXRhICAgICAgICAgID0+ICRBcnJheUhhc2hSZWYsCiAgICAgICAgICAgIE5hbWUgICAgICAgICAgPT4gJ0Fuc3dlclJlcXVpcmVkJywKICAgICAgICAgICAgSUQgICAgICAgICAgICA9PiAnQW5zd2VyUmVxdWlyZWQnLAogICAgICAgICAgICBTZWxlY3RlZFZhbHVlID0+ICdZZXMnLAogICAgICAgICAgICBUcmFuc2xhdGlvbiAgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJFF1ZXN0aW9uRXJyb3JDbGFzcyA9ICcnOwogICAgICAgIGlmICggJFNlcnZlckVycm9ye1F1ZXN0aW9ufSApIHsKICAgICAgICAgICAgJFF1ZXN0aW9uRXJyb3JDbGFzcyA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgfQoKICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdTdXJ2ZXlBZGRRdWVzdGlvbicsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgU3VydmV5SUQgICAgICAgICAgICAgPT4gJFBhcmFte1N1cnZleUlEfSwKICAgICAgICAgICAgICAgIFNlbGVjdGlvblR5cGUgICAgICAgID0+ICRTZWxlY3Rpb25UeXBlLAogICAgICAgICAgICAgICAgQW5zd2VyUmVxdWlyZWRTZWxlY3QgPT4gJEFuc3dlclJlcXVpcmVkU2VsZWN0LAogICAgICAgICAgICAgICAgUXVlc3Rpb25FcnJvckNsYXNzICAgPT4gJFF1ZXN0aW9uRXJyb3JDbGFzcywKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKCBOYW1lID0+ICdTdXJ2ZXlEZWxldGVDb2x1bW4nICk7CiAgICAgICAgaWYgKCBzY2FsYXIgQExpc3QgKSB7CiAgICAgICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soIE5hbWUgPT4gJ1N1cnZleVN0YXR1c0NvbHVtbicgKTsKICAgICAgICAgICAgbXkgJENvdW50ZXIgPSAwOwoKICAgICAgICAgICAgZm9yIG15ICRRdWVzdGlvbiAoQExpc3QpIHsKICAgICAgICAgICAgICAgIG15ICRBbnN3ZXJDb3VudCA9ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+QW5zd2VyQ291bnQoCiAgICAgICAgICAgICAgICAgICAgUXVlc3Rpb25JRCA9PiAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgbXkgJENsYXNzOwogICAgICAgICAgICAgICAgbXkgJENsYXNzVXA7CiAgICAgICAgICAgICAgICBteSAkQ2xhc3NEb3duOwoKICAgICAgICAgICAgICAgIGlmICggISRDb3VudGVyICkgewogICAgICAgICAgICAgICAgICAgICRDbGFzc1VwID0gJ0Rpc2FibGVkJywKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoICRDb3VudGVyID09ICQjTGlzdCApIHsKICAgICAgICAgICAgICAgICAgICAkQ2xhc3NEb3duID0gJ0Rpc2FibGVkJywKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBteSAkU3RhdHVzID0gJ0NvbXBsZXRlJzsKICAgICAgICAgICAgICAgIGlmICggJFF1ZXN0aW9uLT57VHlwZX0gZXEgJ1JhZGlvJyB8fCAkUXVlc3Rpb24tPntUeXBlfSBlcSAnQ2hlY2tib3gnICkgewogICAgICAgICAgICAgICAgICAgIGlmICggJEFuc3dlckNvdW50IDwgMiApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJENsYXNzICA9ICdFcnJvcic7CiAgICAgICAgICAgICAgICAgICAgICAgICRTdGF0dXMgPSAnSW5jb21wbGV0ZSc7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnU3VydmV5UXVlc3Rpb25zUm93JywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgJXskUXVlc3Rpb259LAogICAgICAgICAgICAgICAgICAgICAgICBTdGF0dXMgICAgPT4gJFN0YXR1cywKICAgICAgICAgICAgICAgICAgICAgICAgQ2xhc3MgICAgID0+ICRDbGFzcywKICAgICAgICAgICAgICAgICAgICAgICAgQ2xhc3NVcCAgID0+ICRDbGFzc1VwLAogICAgICAgICAgICAgICAgICAgICAgICBDbGFzc0Rvd24gPT4gJENsYXNzRG93biwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnU3VydmV5UXVlc3Rpb25zRGVsZXRlQnV0dG9uJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+ICRRdWVzdGlvbiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkQ291bnRlcisrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnU3VydmV5Tm9RdWVzdGlvbnNTYXZlZCcsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBDb2x1bW5zID0+IDUsCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICB9CiAgICBlbHNlIHsKICAgICAgICBteSAkQ291bnRlcjsKICAgICAgICBmb3IgbXkgJFF1ZXN0aW9uIChATGlzdCkgewoKICAgICAgICAgICAgbXkgJENsYXNzVXA7CiAgICAgICAgICAgIG15ICRDbGFzc0Rvd247CgogICAgICAgICAgICBpZiAoICEkQ291bnRlciApIHsKICAgICAgICAgICAgICAgICRDbGFzc1VwID0gJ0Rpc2FibGVkJywKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCAkQ291bnRlciAmJiAkQ291bnRlciA9PSAkI0xpc3QgKSB7CiAgICAgICAgICAgICAgICAkQ2xhc3NEb3duID0gJ0Rpc2FibGVkJywKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1N1cnZleVF1ZXN0aW9uc1NhdmVkJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICV7JFF1ZXN0aW9ufSwKICAgICAgICAgICAgICAgICAgICBDbGFzc1VwICAgPT4gJENsYXNzVXAsCiAgICAgICAgICAgICAgICAgICAgQ2xhc3NEb3duID0+ICRDbGFzc0Rvd24sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJENvdW50ZXIrKzsKICAgICAgICB9CiAgICB9CgogICAgJE91dHB1dCAuPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50U3VydmV5RWRpdFF1ZXN0aW9ucycsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsgU3VydmV5SUQgPT4gJFBhcmFte1N1cnZleUlEfSB9LAogICAgKTsKCiAgICAkT3V0cHV0IC49ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+Rm9vdGVyKCBUeXBlID0+ICdTbWFsbCcgKTsKICAgIHJldHVybiAkT3V0cHV0Owp9CgpzdWIgX01hc2tRdWVzdGlvbkVkaXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlU2VydmVyRXJyb3I7CiAgICBpZiAoICRQYXJhbXtTZXJ2ZXJFcnJvcn0gKSB7CiAgICAgICAgJVNlcnZlckVycm9yID0gJXsgJFBhcmFte1NlcnZlckVycm9yfSB9OwogICAgfQoKICAgIG15ICRPdXRwdXQ7CgogICAgIyBvdXRwdXQgaGVhZGVyCiAgICAkT3V0cHV0ID0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5IZWFkZXIoCiAgICAgICAgVGl0bGUgPT4gJ1F1ZXN0aW9uIEVkaXQnLAogICAgICAgIFR5cGUgID0+ICdTbWFsbCcsCiAgICApOwogICAgbXkgJVN1cnZleSA9ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+U3VydmV5R2V0KCBTdXJ2ZXlJRCA9PiAkUGFyYW17U3VydmV5SUR9ICk7CiAgICBteSAlUXVlc3Rpb24gPSAkU2VsZi0+e1N1cnZleU9iamVjdH0tPlF1ZXN0aW9uR2V0KCBRdWVzdGlvbklEID0+ICRQYXJhbXtRdWVzdGlvbklEfSApOwoKICAgIG15ICRBcnJheUhhc2hSZWYgPSBbCiAgICAgICAgewogICAgICAgICAgICBLZXkgICA9PiAnWWVzJywKICAgICAgICAgICAgVmFsdWUgPT4gJ1llcycsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIEtleSAgID0+ICdObycsCiAgICAgICAgICAgIFZhbHVlID0+ICdObycsCiAgICAgICAgfQogICAgXTsKCiAgICBpZiAoICRRdWVzdGlvbntBbnN3ZXJSZXF1aXJlZH0gKSB7CiAgICAgICAgJEFycmF5SGFzaFJlZi0+WzBde1NlbGVjdGVkfSA9IDE7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkQXJyYXlIYXNoUmVmLT5bMV17U2VsZWN0ZWR9ID0gMTsKICAgIH0KCiAgICBteSAkQW5zd2VyUmVxdWlyZWRTZWxlY3QgPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgICAgPT4gJEFycmF5SGFzaFJlZiwKICAgICAgICBOYW1lICAgICAgICAgID0+ICdBbnN3ZXJSZXF1aXJlZCcsCiAgICAgICAgSUQgICAgICAgICAgICA9PiAnQW5zd2VyUmVxdWlyZWQnLAogICAgICAgIFNlbGVjdGVkVmFsdWUgPT4gJ1llcycsCiAgICAgICAgVHJhbnNsYXRpb24gICA9PiAxLAogICAgKTsKCiAgICAjIHByaW50IHRoZSBtYWluIGJvZHkKICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnUXVlc3Rpb25FZGl0JywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgQW5zd2VyUmVxdWlyZWRTZWxlY3QgPT4gJEFuc3dlclJlcXVpcmVkU2VsZWN0LAogICAgICAgICAgICAlUXVlc3Rpb24sCiAgICAgICAgICAgICVTZXJ2ZXJFcnJvciwKICAgICAgICB9LAogICAgKTsKCiAgICBpZiAoICRRdWVzdGlvbntUeXBlfSBlcSAnWWVzTm8nICkgewogICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soIE5hbWUgPT4gJ1F1ZXN0aW9uRWRpdFRhYmxlJyApOwogICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soIE5hbWUgPT4gJ1F1ZXN0aW9uRWRpdFllc25vJyApOwogICAgfQogICAgZWxzaWYgKCAkUXVlc3Rpb257VHlwZX0gZXEgJ1JhZGlvJyB8fCAkUXVlc3Rpb257VHlwZX0gZXEgJ0NoZWNrYm94JyApIHsKCiAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jayggTmFtZSA9PiAnUXVlc3Rpb25FZGl0VGFibGUnICk7CgogICAgICAgIG15ICRUeXBlID0gJFF1ZXN0aW9ue1R5cGV9OwogICAgICAgIG15IEBMaXN0ID0gJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5BbnN3ZXJMaXN0KCBRdWVzdGlvbklEID0+ICRQYXJhbXtRdWVzdGlvbklEfSApOwogICAgICAgIGlmICggc2NhbGFyIEBMaXN0ICkgewoKICAgICAgICAgICAgaWYgKCAkU3VydmV5e1N0YXR1c30gZXEgJ05ldycgKSB7CgogICAgICAgICAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jayggTmFtZSA9PiAnUXVlc3Rpb25FZGl0VGFibGVEZWxldGUnICk7CgogICAgICAgICAgICAgICAgbXkgJENvdW50ZXIgPSAwOwogICAgICAgICAgICAgICAgZm9yIG15ICRBbnN3ZXIyIChATGlzdCkgewogICAgICAgICAgICAgICAgICAgICRBbnN3ZXIyLT57U3VydmV5SUR9ID0gJFBhcmFte1N1cnZleUlEfTsKCiAgICAgICAgICAgICAgICAgICAgbXkgJENsYXNzVXA7CiAgICAgICAgICAgICAgICAgICAgbXkgJENsYXNzRG93bjsKCiAgICAgICAgICAgICAgICAgICAgIyBkaXNhYmxlIHVwIGFjdGlvbiBvbiBmaXJzdCByb3cKICAgICAgICAgICAgICAgICAgICBpZiAoICEkQ291bnRlciApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJENsYXNzVXAgPSAnRGlzYWJsZWQnOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgIyBkaXNhYmxlIGRvd24gYWN0aW9uIG9uIGxhc3Qgcm93CiAgICAgICAgICAgICAgICAgICAgaWYgKCAkQ291bnRlciA9PSAkI0xpc3QgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRDbGFzc0Rvd24gPSAnRGlzYWJsZWQnOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAiUXVlc3Rpb25FZGl0IiAuICRUeXBlLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICV7JEFuc3dlcjJ9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xhc3NVcCAgID0+ICRDbGFzc1VwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xhc3NEb3duID0+ICRDbGFzc0Rvd24sCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdRdWVzdGlvbkVkaXQnIC4gJFR5cGUgLiAnRGVsZXRlJywKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiAkQW5zd2VyMiwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICRDb3VudGVyKys7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdRdWVzdGlvbkVkaXRBZGRBbnN3ZXInLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAlUXVlc3Rpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICVTZXJ2ZXJFcnJvciwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIG15ICRDb3VudGVyOwogICAgICAgICAgICAgICAgZm9yIG15ICRBbnN3ZXIyIChATGlzdCkgewogICAgICAgICAgICAgICAgICAgICRBbnN3ZXIyLT57U3VydmV5SUR9ID0gJFBhcmFte1N1cnZleUlEfTsKCiAgICAgICAgICAgICAgICAgICAgbXkgJENsYXNzVXA7CiAgICAgICAgICAgICAgICAgICAgbXkgJENsYXNzRG93bjsKCiAgICAgICAgICAgICAgICAgICAgaWYgKCAhJENvdW50ZXIgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRDbGFzc1VwID0gJ0Rpc2FibGVkJywKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGlmICggJENvdW50ZXIgJiYgJENvdW50ZXIgPT0gJCNMaXN0ICkgewogICAgICAgICAgICAgICAgICAgICAgICAkQ2xhc3NEb3duID0gJ0Rpc2FibGVkJywKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gIlF1ZXN0aW9uRWRpdCIgLiAkVHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAleyRBbnN3ZXIyfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzVXAgICA9PiAkQ2xhc3NVcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzRG93biA9PiAkQ2xhc3NEb3duLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgJENvdW50ZXIrKzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ05vQW5zd2Vyc1NhdmVkJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgIENvbHVtbnMgPT4gMywKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdRdWVzdGlvbkVkaXRBZGRBbnN3ZXInLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7JVF1ZXN0aW9ufSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CiAgICBlbHNpZiAoICRRdWVzdGlvbntUeXBlfSBlcSAnVGV4dGFyZWEnICkgewogICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soIE5hbWUgPT4gJ1F1ZXN0aW9uRWRpdFRleHRBcmVhJyApOwogICAgfQogICAgJE91dHB1dCAuPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50U3VydmV5RWRpdFF1ZXN0aW9ucycsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHslUGFyYW19LAogICAgKTsKICAgICRPdXRwdXQgLj0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5Gb290ZXIoIFR5cGUgPT4gJ1NtYWxsJyApOwogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCnN1YiBfTWFza0Fuc3dlckVkaXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlU2VydmVyRXJyb3I7CiAgICBpZiAoICRQYXJhbXtTZXJ2ZXJFcnJvcn0gKSB7CiAgICAgICAgJVNlcnZlckVycm9yID0gJXsgJFBhcmFte1NlcnZlckVycm9yfSB9OwogICAgfQoKICAgIG15ICRPdXRwdXQ7CiAgICAkT3V0cHV0ID0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5IZWFkZXIoCiAgICAgICAgVGl0bGUgPT4gJ0Fuc3dlciBFZGl0JywKICAgICAgICBUeXBlICA9PiAnU21hbGwnLAogICAgKTsKICAgIG15ICVBbnN3ZXIgPSAkU2VsZi0+e1N1cnZleU9iamVjdH0tPkFuc3dlckdldCggQW5zd2VySUQgPT4gJFBhcmFte0Fuc3dlcklEfSApOwogICAgJEFuc3dlcntTdXJ2ZXlJRH0gPSAkUGFyYW17U3VydmV5SUR9OwoKICAgICMgcHJpbnQgdGhlIG1haW4gdGFibGUuCiAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0Fuc3dlckVkaXQnLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAlQW5zd2VyLAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICVTZXJ2ZXJFcnJvciwKICAgICAgICB9LAogICAgKTsKCiAgICAkT3V0cHV0IC49ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWdlbnRTdXJ2ZXlFZGl0UXVlc3Rpb25zJywKICAgICAgICBEYXRhICAgICAgICAgPT4geyVQYXJhbX0sCiAgICApOwoKICAgICRPdXRwdXQgLj0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5Gb290ZXIoIFR5cGUgPT4gJ1NtYWxsJyApOwogICAgcmV0dXJuICRPdXRwdXQ7Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpNb2R1bGVzOjpBZ2VudFN1cnZleVpvb207Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlN1cnZleTsKdXNlIEtlcm5lbDo6U3lzdGVtOjpIVE1MVXRpbHM7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgZ2V0IGNvbW1vbiBvYmplY3RzCiAgICAleyRTZWxmfSA9ICVQYXJhbTsKCiAgICAjIGNoZWNrIG5lZWRlZCBvYmplY3RzCiAgICBmb3IgbXkgJE9iamVjdCAocXcoUGFyYW1PYmplY3QgREJPYmplY3QgTGF5b3V0T2JqZWN0IExvZ09iamVjdCBDb25maWdPYmplY3QpKSB7CiAgICAgICAgaWYgKCAhJFNlbGYtPnskT2JqZWN0fSApIHsKICAgICAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5GYXRhbEVycm9yKCBNZXNzYWdlID0+ICJHb3Qgbm8gJE9iamVjdCEiICk7CiAgICAgICAgfQogICAgfQogICAgJFNlbGYtPntTdXJ2ZXlPYmplY3R9ICAgID0gS2VybmVsOjpTeXN0ZW06OlN1cnZleS0+bmV3KCVQYXJhbSk7CiAgICAkU2VsZi0+e0hUTUxVdGlsc09iamVjdH0gPSBLZXJuZWw6OlN5c3RlbTo6SFRNTFV0aWxzLT5uZXcoJVBhcmFtKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkT3V0cHV0OwoKICAgICMgdmlldyBhdHRhY2htZW50IGZvciBodG1sIGVtYWlsCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnSFRNTFZpZXcnICkgewoKICAgICAgICAjIGdldCBwYXJhbXMKICAgICAgICBteSAkU3VydmV5SUQgICAgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICJTdXJ2ZXlJRCIgKTsKICAgICAgICBteSAkU3VydmV5RmllbGQgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICJTdXJ2ZXlGaWVsZCIgKTsKCiAgICAgICAgIyBuZWVkZWQgcGFyYW1zCiAgICAgICAgZm9yIG15ICROZWVkZWQgKHF3KCBTdXJ2ZXlJRCBTdXJ2ZXlGaWVsZCApKSB7CiAgICAgICAgICAgIGlmICggISROZWVkZWQgKSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZGVkIFBhcmFtOiAkTmVlZGVkISIsCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICggJFN1cnZleUZpZWxkIG5lICdJbnRyb2R1Y3Rpb24nICYmICRTdXJ2ZXlGaWVsZCBuZSAnRGVzY3JpcHRpb24nICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJJbnZhbGlkIFN1cnZleUZpZWxkIFBhcmFtOiAkU3VydmV5RmllbGQhIiwKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgaWYgc3VydmV5IGV4aXN0cwogICAgICAgIGlmICgKICAgICAgICAgICAgJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5FbGVtZW50RXhpc3RzKAogICAgICAgICAgICAgICAgRWxlbWVudElEID0+ICRTdXJ2ZXlJRCwKICAgICAgICAgICAgICAgIEVsZW1lbnQgICA9PiAnU3VydmV5JwogICAgICAgICAgICApIG5lCiAgICAgICAgICAgICdZZXMnCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkludmFsaWQgU3VydmV5SUQ6ICRTdXJ2ZXlJRCEiLAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgYWxsIGF0dHJpYnV0ZXMgb2YgdGhlIHN1cnZleQogICAgICAgIG15ICVTdXJ2ZXkgPSAkU2VsZi0+e1N1cnZleU9iamVjdH0tPlN1cnZleUdldCggU3VydmV5SUQgPT4gJFN1cnZleUlEICk7CgogICAgICAgIGlmICggJFN1cnZleXskU3VydmV5RmllbGR9ICkgewoKICAgICAgICAgICAgIyBjbGVhbiBodG1sIGFuZCBjb252ZXJ0IHRoZSBGaWVsZCBpbiBodG1sIChcbiAtLT48YnI+KQogICAgICAgICAgICAkU3VydmV5eyRTdXJ2ZXlGaWVsZH0gPX4gc3tcQVwkaHRtbFwvdGV4dFwkXHMoLiopfXskMX14bXM7CiAgICAgICAgICAgICRTdXJ2ZXl7JFN1cnZleUZpZWxkfSA9ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QXNjaWkySHRtbCgKICAgICAgICAgICAgICAgIFRleHQgICAgICAgICAgID0+ICRTdXJ2ZXl7JFN1cnZleUZpZWxkfSwKICAgICAgICAgICAgICAgIEhUTUxSZXN1bHRNb2RlID0+IDEsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAjIGNvbnZlcnQgdGV4dCBhcmVhIGZpZWxkcyB0byBhc2NpaQogICAgICAgICRTdXJ2ZXl7JFN1cnZleUZpZWxkfSA9ICRTZWxmLT57SFRNTFV0aWxzT2JqZWN0fS0+VG9Bc2NpaSggU3RyaW5nID0+ICRTdXJ2ZXl7JFN1cnZleUZpZWxkfSApOwoKICAgICAgICAkU3VydmV5eyRTdXJ2ZXlGaWVsZH0gPSAkU2VsZi0+e0hUTUxVdGlsc09iamVjdH0tPkRvY3VtZW50Q29tcGxldGUoCiAgICAgICAgICAgIFN0cmluZyAgPT4gJFN1cnZleXskU3VydmV5RmllbGR9LAogICAgICAgICAgICBDaGFyc2V0ID0+ICd1dGYtOCcsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QXR0YWNobWVudCgKICAgICAgICAgICAgVHlwZSAgICAgICAgPT4gJ2lubGluZScsCiAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L2h0bWwnLAogICAgICAgICAgICBDb250ZW50ICAgICA9PiAkU3VydmV5eyRTdXJ2ZXlGaWVsZH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIHN1cnZleSB6b29tCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgogICAgIyBnZXQgcGFyYW1zCiAgICBteSAkU3VydmV5SUQgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICJTdXJ2ZXlJRCIgKTsKICAgIG15ICRNZXNzYWdlICA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gIk1lc3NhZ2UiICk7CgogICAgIyBjaGVjayBpZiBzdXJ2ZXkgZXhpc3RzCiAgICBpZiAoCiAgICAgICAgISRTdXJ2ZXlJRCB8fAogICAgICAgICRTZWxmLT57U3VydmV5T2JqZWN0fS0+RWxlbWVudEV4aXN0cygKICAgICAgICAgICAgRWxlbWVudElEID0+ICRTdXJ2ZXlJRCwKICAgICAgICAgICAgRWxlbWVudCAgID0+ICdTdXJ2ZXknCiAgICAgICAgKSBuZQogICAgICAgICdZZXMnCiAgICAgICAgKQogICAgewogICAgICAgICRNZXNzYWdlID0gJztNZXNzYWdlPU5vU3VydmV5SUQnOwogICAgICAgIHJldHVybiAkU2VsZi0+e0xheW91dE9iamVjdH0tPlJlZGlyZWN0KCBPUCA9PiAiQWN0aW9uPUFnZW50U3VydmV5JE1lc3NhZ2UiICk7CiAgICB9CgogICAgIyBvdXRwdXQgaGVhZGVyCiAgICAkT3V0cHV0ID0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5IZWFkZXIoIFRpdGxlID0+ICdTdXJ2ZXknICk7CiAgICAkT3V0cHV0IC49ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+TmF2aWdhdGlvbkJhcigpOwoKICAgICMgb3V0cHV0IG1lc2FnZXMgaWYgc3RhdHVzIHdhcyBjaGFuZ2VkCiAgICBpZiAoIGRlZmluZWQoJE1lc3NhZ2UpICYmICRNZXNzYWdlIGVxICdOb1F1ZXN0aW9uJyApIHsKICAgICAgICAkT3V0cHV0IC49ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+Tm90aWZ5KAogICAgICAgICAgICBQcmlvcml0eSA9PiAnRXJyb3InLAogICAgICAgICAgICBJbmZvICAgICA9PiAnQ2FuXCd0IHNldCBuZXcgc3RhdHVzISBObyBxdWVzdGlvbnMgZGVmaW5lZC4nLAogICAgICAgICk7CiAgICB9CiAgICBlbHNpZiAoIGRlZmluZWQoJE1lc3NhZ2UpICYmICRNZXNzYWdlIGVxICdJbmNvbXBsZXRlUXVlc3Rpb24nICkgewogICAgICAgICRPdXRwdXQgLj0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5Ob3RpZnkoCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdFcnJvcicsCiAgICAgICAgICAgIEluZm8gICAgID0+ICdDYW5cJ3Qgc2V0IG5ldyBzdGF0dXMhIFF1ZXN0aW9ucyBpbmNvbXBsZXRlLicsCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2lmICggZGVmaW5lZCgkTWVzc2FnZSkgJiYgJE1lc3NhZ2UgZXEgJ1N0YXR1c1NldCcgKSB7CiAgICAgICAgJE91dHB1dCAuPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPk5vdGlmeSgKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ05vdGljZScsCiAgICAgICAgICAgIEluZm8gICAgID0+ICdTdGF0dXMgY2hhbmdlZC4nLAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgYWxsIGF0dHJpYnV0ZXMgb2YgdGhlIHN1cnZleQogICAgbXkgJVN1cnZleSA9ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+U3VydmV5R2V0KCBTdXJ2ZXlJRCA9PiAkU3VydmV5SUQgKTsKICAgIG15ICVIVE1MOwoKICAgICMgY2xlYW4gaHRtbCBhbmQgY29udmVydCB0aGUgdGV4dGFyZWFzIGluIGh0bWwgKFxuIC0tPjxicj4pCiAgICBmb3IgbXkgJFN1cnZleUZpZWxkIChxdyggSW50cm9kdWN0aW9uIERlc2NyaXB0aW9uICkpIHsKICAgICAgICBuZXh0IGlmICEkU3VydmV5eyRTdXJ2ZXlGaWVsZH07CgogICAgICAgICRTdXJ2ZXl7JFN1cnZleUZpZWxkfSA9fiBze1xBXCRodG1sXC90ZXh0XCRccyguKil9eyQxfXhtczsKCiAgICAgICAgaWYgKCQxKSB7CiAgICAgICAgICAgICRIVE1MeyRTdXJ2ZXlGaWVsZH0gPSAxOwogICAgICAgIH0KCiAgICAgICAgJFN1cnZleXskU3VydmV5RmllbGR9ID0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5Bc2NpaTJIdG1sKAogICAgICAgICAgICBUZXh0ICAgICAgICAgICA9PiAkU3VydmV5eyRTdXJ2ZXlGaWVsZH0sCiAgICAgICAgICAgIEhUTUxSZXN1bHRNb2RlID0+IDEsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCBudW1iZXJzIG9mIHJlcXVlc3RzIGFuZCB2b3RlcwogICAgbXkgJFNlbmRSZXF1ZXN0ID0gJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5Db3VudFJlcXVlc3QoCiAgICAgICAgU3VydmV5SUQgPT4gJFN1cnZleUlELAogICAgICAgIFZhbGlkSUQgID0+ICdhbGwnLAogICAgKTsKICAgIG15ICRSZXF1ZXN0Q29tcGxldGUgPSAkU2VsZi0+e1N1cnZleU9iamVjdH0tPkNvdW50UmVxdWVzdCgKICAgICAgICBTdXJ2ZXlJRCA9PiAkU3VydmV5SUQsCiAgICAgICAgVmFsaWRJRCAgPT4gMCwKICAgICk7CiAgICAkU3VydmV5e1NlbmRSZXF1ZXN0fSAgICAgPSAkU2VuZFJlcXVlc3Q7CiAgICAkU3VydmV5e1JlcXVlc3RDb21wbGV0ZX0gPSAkUmVxdWVzdENvbXBsZXRlOwoKICAgICMgZ2V0IHNlbGVjdGVkIHF1ZXVlcwogICAgbXkgJVF1ZXVlcyA9ICRTZWxmLT57UXVldWVPYmplY3R9LT5HZXRBbGxRdWV1ZXMoKTsKICAgIG15IEBRdWV1ZUxpc3QgPSBtYXAgeyAkUXVldWVzeyRffSB9IEB7ICRTdXJ2ZXl7UXVldWVzfSB9OwogICAgQFF1ZXVlTGlzdCA9IHNvcnQgeyBsYyAkYSBjbXAgbGMgJGIgfSBAUXVldWVMaXN0OwogICAgbXkgJFF1ZXVlTGlzdFN0cmluZyA9IGpvaW4gcXssIH0sIEBRdWV1ZUxpc3Q7CgogICAgbXkgJE5vUXVldWVNZXNzYWdlID0gJyc7CiAgICBpZiAoICEkUXVldWVMaXN0U3RyaW5nICkgewogICAgICAgICRRdWV1ZUxpc3RTdHJpbmcgPSAnLSBObyBxdWV1ZSBzZWxlY3RlZCAtJzsKICAgIH0KCiAgICAjIHByaW50IHRoZSBtYWluIHRhYmxlLgogICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdTdXJ2ZXlab29tJywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgJVN1cnZleSwKICAgICAgICAgICAgTm9RdWV1ZU1lc3NhZ2UgID0+ICROb1F1ZXVlTWVzc2FnZSwKICAgICAgICAgICAgUXVldWVMaXN0U3RyaW5nID0+ICRRdWV1ZUxpc3RTdHJpbmcsCiAgICAgICAgICAgIEhUTUxSaWNoVGV4dEhlaWdodERlZmF1bHQgPT4KICAgICAgICAgICAgICAgICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdTdXJ2ZXk6OkZyb250ZW5kOjpIVE1MUmljaFRleHRIZWlnaHREZWZhdWx0JykgfHwgODAsCiAgICAgICAgICAgIEhUTUxSaWNoVGV4dEhlaWdodE1heCA9PgogICAgICAgICAgICAgICAgJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1N1cnZleTo6RnJvbnRlbmQ6OkhUTUxSaWNoVGV4dEhlaWdodE1heCcpIHx8IDI1MDAsCiAgICAgICAgfSwKICAgICk7CgogICAgZm9yIG15ICRGaWVsZCAocXcoIEludHJvZHVjdGlvbiBEZXNjcmlwdGlvbikpIHsKICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdTdXJ2ZXlCbG9jaycsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgVGl0bGUgPT4gIlN1cnZleSAkRmllbGQiLAogICAgICAgICAgICAgICAgfQogICAgICAgICk7CiAgICAgICAgaWYgKCAkSFRNTHskRmllbGR9ICkgewogICAgICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnQm9keUhUTUwnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgU3VydmV5RmllbGQgPT4gJEZpZWxkLAogICAgICAgICAgICAgICAgICAgIFN1cnZleUlEICAgID0+ICRTdXJ2ZXlJRCwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnQm9keVBsYWluJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgIExhYmVsICAgPT4gJEZpZWxkLAogICAgICAgICAgICAgICAgICAgIENvbnRlbnQgPT4gJFN1cnZleXskRmllbGR9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBkaXNwbGF5IHN0YXRzIGlmIHN0YXR1cyBNYXN0ZXIsIFZhbGlkIG9yIEludmFsaWQKICAgIGlmICgKICAgICAgICAkU3VydmV5e1N0YXR1c30gZXEgJ01hc3RlcicKICAgICAgICB8fCAkU3VydmV5e1N0YXR1c30gZXEgJ1ZhbGlkJwogICAgICAgIHx8ICRTdXJ2ZXl7U3RhdHVzfSBlcSAnSW52YWxpZCcKICAgICAgICApCiAgICB7CiAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnU3VydmV5RWRpdFN0YXRzJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBTdXJ2ZXlJRCA9PiAkU3VydmV5SUQsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgYWxsIHF1ZXN0aW9ucyBvZiB0aGUgc3VydmV5CiAgICAgICAgbXkgQFF1ZXN0aW9uTGlzdCA9ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+UXVlc3Rpb25MaXN0KCBTdXJ2ZXlJRCA9PiAkU3VydmV5SUQgKTsKICAgICAgICBmb3IgbXkgJFF1ZXN0aW9uIChAUXVlc3Rpb25MaXN0KSB7CiAgICAgICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdTdXJ2ZXlFZGl0U3RhdHNRdWVzdGlvbicsCiAgICAgICAgICAgICAgICBEYXRhID0+ICRRdWVzdGlvbiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgbXkgQEFuc3dlcnM7CgogICAgICAgICAgICAjIGdlbmVyYXRlIHRoZSBhbnN3ZXJzIG9mIHRoZSBxdWVzdGlvbgogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAkUXVlc3Rpb24tPntUeXBlfSBlcSAnWWVzTm8nCiAgICAgICAgICAgICAgICB8fCAkUXVlc3Rpb24tPntUeXBlfSBlcSAnUmFkaW8nCiAgICAgICAgICAgICAgICB8fCAkUXVlc3Rpb24tPntUeXBlfSBlcSAnQ2hlY2tib3gnCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG15IEBBbnN3ZXJMaXN0OwoKICAgICAgICAgICAgICAgICMgc2V0IGFuc3dlcnMgdG8gWWVzIGFuZCBObyBpZiB0eXBlIHdhcyBZZXNObwogICAgICAgICAgICAgICAgaWYgKCAkUXVlc3Rpb24tPntUeXBlfSBlcSAnWWVzTm8nICkgewogICAgICAgICAgICAgICAgICAgIG15ICVEYXRhOwogICAgICAgICAgICAgICAgICAgICREYXRhe0Fuc3dlcn0gICA9ICJZZXMiOwogICAgICAgICAgICAgICAgICAgICREYXRhe0Fuc3dlcklEfSA9ICJZZXMiOwogICAgICAgICAgICAgICAgICAgIHB1c2goIEBBbnN3ZXJMaXN0LCBcJURhdGEgKTsKICAgICAgICAgICAgICAgICAgICBteSAlRGF0YTI7CiAgICAgICAgICAgICAgICAgICAgJERhdGEye0Fuc3dlcn0gICA9ICJObyI7CiAgICAgICAgICAgICAgICAgICAgJERhdGEye0Fuc3dlcklEfSA9ICJObyI7CiAgICAgICAgICAgICAgICAgICAgcHVzaCggQEFuc3dlckxpc3QsIFwlRGF0YTIgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewoKICAgICAgICAgICAgICAgICAgICAjIGdldCBhbGwgYW5zd2VycyBvZiBhIHF1ZXN0aW9uCiAgICAgICAgICAgICAgICAgICAgQEFuc3dlckxpc3QgPSAkU2VsZi0+e1N1cnZleU9iamVjdH0tPkFuc3dlckxpc3QoCiAgICAgICAgICAgICAgICAgICAgICAgIFF1ZXN0aW9uSUQgPT4gJFF1ZXN0aW9uLT57UXVlc3Rpb25JRH0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZvciBteSAkUm93IChAQW5zd2VyTGlzdCkgewogICAgICAgICAgICAgICAgICAgIG15ICRDb3VudFZvdGUgPSAkU2VsZi0+e1N1cnZleU9iamVjdH0tPkNvdW50Vm90ZSgKICAgICAgICAgICAgICAgICAgICAgICAgUXVlc3Rpb25JRCA9PiAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSwKICAgICAgICAgICAgICAgICAgICAgICAgVm90ZVZhbHVlICA9PiAkUm93LT57QW5zd2VySUR9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgbXkgJFBlcmNlbnQgPSAwOwoKICAgICAgICAgICAgICAgICAgICAjIGNhbGN1bGF0ZSB0aGUgcGVyY2VudHMKICAgICAgICAgICAgICAgICAgICBpZiAoJFJlcXVlc3RDb21wbGV0ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAkUGVyY2VudCA9IDEwMCAvICRSZXF1ZXN0Q29tcGxldGUgKiAkQ291bnRWb3RlOwogICAgICAgICAgICAgICAgICAgICAgICAkUGVyY2VudCA9IHNwcmludGYoICIlLjBmIiwgJFBlcmNlbnQgKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgbXkgJURhdGE7CiAgICAgICAgICAgICAgICAgICAgJERhdGF7QW5zd2VyfSAgICAgICAgPSAkUm93LT57QW5zd2VyfTsKICAgICAgICAgICAgICAgICAgICAkRGF0YXtBbnN3ZXJQZXJjZW50fSA9ICRQZXJjZW50OwogICAgICAgICAgICAgICAgICAgIHB1c2goIEBBbnN3ZXJzLCBcJURhdGEgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRRdWVzdGlvbi0+e1R5cGV9IGVxICdUZXh0YXJlYScgKSB7CiAgICAgICAgICAgICAgICBteSAkQW5zd2VyTm8gPSAkU2VsZi0+e1N1cnZleU9iamVjdH0tPkNvdW50Vm90ZSgKICAgICAgICAgICAgICAgICAgICBRdWVzdGlvbklEID0+ICRRdWVzdGlvbi0+e1F1ZXN0aW9uSUR9LAogICAgICAgICAgICAgICAgICAgIFZvdGVWYWx1ZSAgPT4gJycsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgbXkgJFBlcmNlbnQgPSAwOwoKICAgICAgICAgICAgICAgICMgY2FsY3VsYXRlIHRoZSBwZXJjZW50cwogICAgICAgICAgICAgICAgaWYgKCRSZXF1ZXN0Q29tcGxldGUpIHsKICAgICAgICAgICAgICAgICAgICAkUGVyY2VudCA9IDEwMCAvICRSZXF1ZXN0Q29tcGxldGUgKiAkQW5zd2VyTm87CiAgICAgICAgICAgICAgICAgICAgJFBlcmNlbnQgPSBzcHJpbnRmKCAiJS4wZiIsICRQZXJjZW50ICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBteSAlRGF0YTsKICAgICAgICAgICAgICAgICREYXRhe0Fuc3dlcn0gPSAiYW5zd2VyZWQiOwogICAgICAgICAgICAgICAgaWYgKCAhJFJlcXVlc3RDb21wbGV0ZSApIHsKICAgICAgICAgICAgICAgICAgICAkRGF0YXtBbnN3ZXJQZXJjZW50fSA9IDA7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkRGF0YXtBbnN3ZXJQZXJjZW50fSA9IDEwMCAtICRQZXJjZW50OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcHVzaCggQEFuc3dlcnMsIFwlRGF0YSApOwogICAgICAgICAgICAgICAgbXkgJURhdGEyOwogICAgICAgICAgICAgICAgJERhdGEye0Fuc3dlcn0gICAgICAgID0gIm5vdCBhbnN3ZXJlZCI7CiAgICAgICAgICAgICAgICAkRGF0YTJ7QW5zd2VyUGVyY2VudH0gPSAkUGVyY2VudDsKICAgICAgICAgICAgICAgIHB1c2goIEBBbnN3ZXJzLCBcJURhdGEyICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgb3V0cHV0IGFsbCBhbnN3ZXJzIG9mIHRoZSBzdXJ2ZXkKICAgICAgICAgICAgZm9yIG15ICRSb3cgKEBBbnN3ZXJzKSB7CiAgICAgICAgICAgICAgICAkUm93LT57QW5zd2VyUGVyY2VudFRhYmxlfSA9ICRSb3ctPntBbnN3ZXJQZXJjZW50fTsKICAgICAgICAgICAgICAgIGlmICggISRSb3ctPntBbnN3ZXJQZXJjZW50fSApIHsKICAgICAgICAgICAgICAgICAgICAkUm93LT57QW5zd2VyUGVyY2VudFRhYmxlfSA9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1N1cnZleUVkaXRTdGF0c0Fuc3dlcicsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiAkUm93LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoJFJlcXVlc3RDb21wbGV0ZSkgewogICAgICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnU3VydmV5RWRpdFN0YXRzRGV0YWlscycsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsgU3VydmV5SUQgPT4gJFN1cnZleUlEIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIGlmICggJFN1cnZleXtTdGF0dXN9IGVxICdOZXcnICkgewogICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soIE5hbWUgPT4gJ05vU3RhdFJlc3VsdHMnICk7CiAgICB9CgogICAgIyBvdXRwdXQgdGhlIHBvc3NpYmxlIHN0YXR1cwogICAgbXkgJU5ld1N0YXR1czsKICAgICROZXdTdGF0dXN7Q2hhbmdlU3RhdHVzfSA9ICctIENoYW5nZSBTdGF0dXMgLSc7CgogICAgaWYgKCAkU3VydmV5e1N0YXR1c30gZXEgJ05ldycgfHwgJFN1cnZleXtTdGF0dXN9IGVxICdJbnZhbGlkJyApIHsKICAgICAgICAkTmV3U3RhdHVze01hc3Rlcn0gPSAnTWFzdGVyJzsKICAgICAgICAkTmV3U3RhdHVze1ZhbGlkfSAgPSAnVmFsaWQnOwogICAgfQogICAgZWxzaWYgKCAkU3VydmV5e1N0YXR1c30gZXEgJ1ZhbGlkJyApIHsKICAgICAgICAkTmV3U3RhdHVze01hc3Rlcn0gID0gJ01hc3Rlcic7CiAgICAgICAgJE5ld1N0YXR1c3tJbnZhbGlkfSA9ICdJbnZhbGlkJzsKICAgIH0KICAgIGVsc2lmICggJFN1cnZleXtTdGF0dXN9IGVxICdNYXN0ZXInICkgewogICAgICAgICROZXdTdGF0dXN7VmFsaWR9ICAgPSAnVmFsaWQnOwogICAgICAgICROZXdTdGF0dXN7SW52YWxpZH0gPSAnSW52YWxpZCc7CiAgICB9CgogICAgbXkgJE5ld1N0YXR1c1N0ciA9ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgTmFtZSAgICAgICA9PiAnTmV3U3RhdHVzJywKICAgICAgICBJRCAgICAgICAgID0+ICdOZXdTdGF0dXMnLAogICAgICAgIERhdGEgICAgICAgPT4gXCVOZXdTdGF0dXMsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAnQ2hhbmdlU3RhdHVzJywKICAgICk7CgogICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdTdXJ2ZXlTdGF0dXMnLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICBOZXdTdGF0dXNTdHIgPT4gJE5ld1N0YXR1c1N0ciwKICAgICAgICAgICAgU3VydmV5SUQgICAgID0+ICRTdXJ2ZXlJRCwKICAgICAgICB9LAogICAgKTsKICAgICRPdXRwdXQgLj0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZ2VudFN1cnZleVpvb20nLAogICAgICAgIERhdGEgICAgICAgICA9PiB7JVBhcmFtfSwKICAgICk7CiAgICAkT3V0cHV0IC49ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+Rm9vdGVyKCk7CiAgICByZXR1cm4gJE91dHB1dDsKCn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpNb2R1bGVzOjpQdWJsaWNTdXJ2ZXk7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlN1cnZleTsKdXNlIEtlcm5lbDo6U3lzdGVtOjpIVE1MVXRpbHM7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgZ2V0IGNvbW1vbiBvYmplY3RzCiAgICAleyRTZWxmfSA9ICVQYXJhbTsKCiAgICAjIGNoZWNrIG5lZWRlZCBvYmplY3RzCiAgICBmb3IgbXkgJE9iamVjdCAocXcoUGFyYW1PYmplY3QgREJPYmplY3QgTGF5b3V0T2JqZWN0IExvZ09iamVjdCBDb25maWdPYmplY3QgVXNlck9iamVjdCkpIHsKICAgICAgICBpZiAoICEkU2VsZi0+eyRPYmplY3R9ICkgewogICAgICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkZhdGFsRXJyb3IoIE1lc3NhZ2UgPT4gIkdvdCBubyAkT2JqZWN0ISIgKTsKICAgICAgICB9CiAgICB9CiAgICAkU2VsZi0+e1N1cnZleU9iamVjdH0gICAgPSBLZXJuZWw6OlN5c3RlbTo6U3VydmV5LT5uZXcoJVBhcmFtKTsKICAgICRTZWxmLT57SFRNTFV0aWxzT2JqZWN0fSA9IEtlcm5lbDo6U3lzdGVtOjpIVE1MVXRpbHMtPm5ldyglUGFyYW0pOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRPdXRwdXQ7CgogICAgbXkgJUFuc3dlcnM7CiAgICBteSAlRXJyb3JzOwogICAgbXkgQFF1ZXN0aW9uTGlzdDsKCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIHB1YmxpYyBzdXJ2ZXkgdm90ZQogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ1B1YmxpY1N1cnZleVZvdGUnICkgewogICAgICAgIG15ICRQdWJsaWNTdXJ2ZXlLZXkgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICdQdWJsaWNTdXJ2ZXlLZXknICk7CiAgICAgICAgbXkgJVN1cnZleSA9ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+UHVibGljU3VydmV5R2V0KCBQdWJsaWNTdXJ2ZXlLZXkgPT4gJFB1YmxpY1N1cnZleUtleSApOwogICAgICAgIGlmICggJFN1cnZleXtTdXJ2ZXlJRH0gKSB7CiAgICAgICAgICAgIEBRdWVzdGlvbkxpc3QgPSAkU2VsZi0+e1N1cnZleU9iamVjdH0tPlF1ZXN0aW9uTGlzdCggU3VydmV5SUQgPT4gJFN1cnZleXtTdXJ2ZXlJRH0gKTsKCiAgICAgICAgICAgIGZvciBteSAkUXVlc3Rpb24gKEBRdWVzdGlvbkxpc3QpIHsKICAgICAgICAgICAgICAgIGlmICggJFF1ZXN0aW9uLT57VHlwZX0gZXEgJ1llc05vJyApIHsKICAgICAgICAgICAgICAgICAgICBteSAkUHVibGljU3VydmV5Vm90ZTEgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oCiAgICAgICAgICAgICAgICAgICAgICAgIFBhcmFtID0+ICJQdWJsaWNTdXJ2ZXlWb3RlMVskUXVlc3Rpb24tPntRdWVzdGlvbklEfV0iCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgICAkUXVlc3Rpb24tPntBbnN3ZXJSZXF1aXJlZH0KICAgICAgICAgICAgICAgICAgICAgICAgJiYKICAgICAgICAgICAgICAgICAgICAgICAgKCAhJFB1YmxpY1N1cnZleVZvdGUxIHx8ICFsZW5ndGggJFB1YmxpY1N1cnZleVZvdGUxICkKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJEVycm9yc3sgJFF1ZXN0aW9uLT57UXVlc3Rpb25JRH0gfXsnQW5zd2VyIHJlcXVpcmVkJ30gPSAxOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgJEFuc3dlcnN7ICRRdWVzdGlvbi0+e1F1ZXN0aW9uSUR9IH0gPSAkUHVibGljU3VydmV5Vm90ZTE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNpZiAoICRRdWVzdGlvbi0+e1R5cGV9IGVxICdSYWRpbycgKSB7CiAgICAgICAgICAgICAgICAgICAgbXkgJFB1YmxpY1N1cnZleVZvdGUyID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKAogICAgICAgICAgICAgICAgICAgICAgICBQYXJhbSA9PiAiUHVibGljU3VydmV5Vm90ZTJbJFF1ZXN0aW9uLT57UXVlc3Rpb25JRH1dIgogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICAgJFF1ZXN0aW9uLT57QW5zd2VyUmVxdWlyZWR9CiAgICAgICAgICAgICAgICAgICAgICAgICYmICggISRQdWJsaWNTdXJ2ZXlWb3RlMiB8fCAhbGVuZ3RoICRQdWJsaWNTdXJ2ZXlWb3RlMiApCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICRFcnJvcnN7ICRRdWVzdGlvbi0+e1F1ZXN0aW9uSUR9IH17J0Fuc3dlciByZXF1aXJlZCd9ID0gMTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICRBbnN3ZXJzeyAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSB9ID0gJFB1YmxpY1N1cnZleVZvdGUyOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzaWYgKCAkUXVlc3Rpb24tPntUeXBlfSBlcSAnQ2hlY2tib3gnICkgewogICAgICAgICAgICAgICAgICAgIG15IEBBbnN3ZXJMaXN0ID0gJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5BbnN3ZXJMaXN0KAogICAgICAgICAgICAgICAgICAgICAgICBRdWVzdGlvbklEID0+ICRRdWVzdGlvbi0+e1F1ZXN0aW9uSUR9CiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgZm9yIG15ICRBbnN3ZXIgKEBBbnN3ZXJMaXN0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG15ICRQdWJsaWNTdXJ2ZXlWb3RlMyA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhcmFtID0+ICJQdWJsaWNTdXJ2ZXlWb3RlM1skQW5zd2VyLT57QW5zd2VySUR9XSIKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAkUHVibGljU3VydmV5Vm90ZTMgJiYgJFB1YmxpY1N1cnZleVZvdGUzIGVxICdZZXMnICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaCBAeyAkQW5zd2Vyc3sgJFF1ZXN0aW9uLT57UXVlc3Rpb25JRH0gfSB9LCAkQW5zd2VyLT57QW5zd2VySUR9OwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICAgJFF1ZXN0aW9uLT57QW5zd2VyUmVxdWlyZWR9CiAgICAgICAgICAgICAgICAgICAgICAgICYmICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICFkZWZpbmVkICRBbnN3ZXJzeyAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmICRBbnN3ZXJzeyAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSB9IG5lICdBUlJBWScKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAhQHsgJEFuc3dlcnN7ICRRdWVzdGlvbi0+e1F1ZXN0aW9uSUR9IH0gfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICRFcnJvcnN7ICRRdWVzdGlvbi0+e1F1ZXN0aW9uSUR9IH17J0Fuc3dlciByZXF1aXJlZCd9ID0gMTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNpZiAoICRRdWVzdGlvbi0+e1R5cGV9IGVxICdUZXh0YXJlYScgKSB7CiAgICAgICAgICAgICAgICAgICAgbXkgJFB1YmxpY1N1cnZleVZvdGU0ID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKAogICAgICAgICAgICAgICAgICAgICAgICBQYXJhbSA9PiAiUHVibGljU3VydmV5Vm90ZTRbJFF1ZXN0aW9uLT57UXVlc3Rpb25JRH1dIgogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICMgY2hlY2sgaWYgcmljaCB0ZXh0IGlzIGVuYWJsZWQKICAgICAgICAgICAgICAgICAgICBpZiAoICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+e0Jyb3dzZXJSaWNoVGV4dH0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRQdWJsaWNTdXJ2ZXlWb3RlNCA9ICggbGVuZ3RoICRQdWJsaWNTdXJ2ZXlWb3RlNCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICJcJGh0bWwvdGV4dFwkICRQdWJsaWNTdXJ2ZXlWb3RlNCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJyc7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICAgJFF1ZXN0aW9uLT57QW5zd2VyUmVxdWlyZWR9CiAgICAgICAgICAgICAgICAgICAgICAgICYmCiAgICAgICAgICAgICAgICAgICAgICAgICggISRQdWJsaWNTdXJ2ZXlWb3RlNCB8fCAhbGVuZ3RoICRQdWJsaWNTdXJ2ZXlWb3RlNCApCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICRFcnJvcnN7ICRRdWVzdGlvbi0+e1F1ZXN0aW9uSUR9IH17J0Fuc3dlciByZXF1aXJlZCd9ID0gMTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgJEFuc3dlcnN7ICRRdWVzdGlvbi0+e1F1ZXN0aW9uSUR9IH0gPSAkUHVibGljU3VydmV5Vm90ZTQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgSWYgd2UgZGlkbid0IGhhdmUgZXJyb3JzLCBqdXN0IHNhdmUgdGhlIGFuc3dlcnMKICAgICAgICAgICAgaWYgKCAhc2NhbGFyIGtleXMgJUVycm9ycyApIHsKICAgICAgICAgICAgICAgIGZvciBteSAkUXVlc3Rpb24gKEBRdWVzdGlvbkxpc3QpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoICRRdWVzdGlvbi0+e1R5cGV9IGVxICdZZXNObycgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRTZWxmLT57U3VydmV5T2JqZWN0fS0+UHVibGljQW5zd2VyU2F2ZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY1N1cnZleUtleSA9PiAkUHVibGljU3VydmV5S2V5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUXVlc3Rpb25JRCAgICAgID0+ICRRdWVzdGlvbi0+e1F1ZXN0aW9uSUR9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgVm90ZVZhbHVlICAgICAgID0+ICRBbnN3ZXJzeyAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSB9LAogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNpZiAoICRRdWVzdGlvbi0+e1R5cGV9IGVxICdSYWRpbycgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRTZWxmLT57U3VydmV5T2JqZWN0fS0+UHVibGljQW5zd2VyU2F2ZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY1N1cnZleUtleSA9PiAkUHVibGljU3VydmV5S2V5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUXVlc3Rpb25JRCAgICAgID0+ICRRdWVzdGlvbi0+e1F1ZXN0aW9uSUR9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgVm90ZVZhbHVlICAgICAgID0+ICRBbnN3ZXJzeyAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSB9LAogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNpZiAoICRRdWVzdGlvbi0+e1R5cGV9IGVxICdDaGVja2JveCcgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG15IEBBbnN3ZXJMaXN0ID0gJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5BbnN3ZXJMaXN0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUXVlc3Rpb25JRCA9PiAkUXVlc3Rpb24tPntRdWVzdGlvbklEfQogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQW5zd2Vyc3sgJFF1ZXN0aW9uLT57UXVlc3Rpb25JRH0gfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgcmVmICRBbnN3ZXJzeyAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSB9IGVxICdBUlJBWScKICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIEB7ICRBbnN3ZXJzeyAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSB9IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIG15ICRBbnN3ZXIgKCBAeyAkQW5zd2Vyc3sgJFF1ZXN0aW9uLT57UXVlc3Rpb25JRH0gfSB9ICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTZWxmLT57U3VydmV5T2JqZWN0fS0+UHVibGljQW5zd2VyU2F2ZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljU3VydmV5S2V5ID0+ICRQdWJsaWNTdXJ2ZXlLZXksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFF1ZXN0aW9uSUQgICAgICA9PiAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVm90ZVZhbHVlICAgICAgID0+ICRBbnN3ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNpZiAoICRRdWVzdGlvbi0+e1R5cGV9IGVxICdUZXh0YXJlYScgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRTZWxmLT57U3VydmV5T2JqZWN0fS0+UHVibGljQW5zd2VyU2F2ZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY1N1cnZleUtleSA9PiAkUHVibGljU3VydmV5S2V5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUXVlc3Rpb25JRCAgICAgID0+ICRRdWVzdGlvbi0+e1F1ZXN0aW9uSUR9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgVm90ZVZhbHVlICAgICAgID0+ICRBbnN3ZXJzeyAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSB9LAogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRTZWxmLT57U3VydmV5T2JqZWN0fS0+UHVibGljU3VydmV5SW52YWxpZFNldCggUHVibGljU3VydmV5S2V5ID0+ICRQdWJsaWNTdXJ2ZXlLZXkgKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPkN1c3RvbWVySGVhZGVyKCBUaXRsZSA9PiAnU3VydmV5JyApOwoKICAgICAgICAgICAgICAgICMgcHJpbnQgdGhlIG1haW4gdGFibGUuCiAgICAgICAgICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1B1YmxpY1N1cnZleU1lc3NhZ2UnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlVHlwZSAgID0+ICdTdXJ2ZXkgSW5mb3JtYXRpb24nLAogICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlSGVhZGVyID0+ICdUaGFuayB5b3UgZm9yIHlvdXIgZmVlZGJhY2suJywKICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgICAgICA9PiAnVGhlIHN1cnZleSBpcyBmaW5pc2hlZC4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5PdXRwdXQoCiAgICAgICAgICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdQdWJsaWNTdXJ2ZXknLAogICAgICAgICAgICAgICAgICAgIERhdGEgICAgICAgICA9PiB7JVBhcmFtfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+Q3VzdG9tZXJGb290ZXIoKTsKICAgICAgICAgICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgc2hvdyBzdXJ2ZXkgdm90ZSBkYXRhCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnU2hvd1ZvdGVEYXRhJyApIHsKICAgICAgICBteSAkUHVibGljU3VydmV5S2V5ID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldFBhcmFtKCBQYXJhbSA9PiAnUHVibGljU3VydmV5S2V5JyApOwoKICAgICAgICAjIHJldHVybiBpZiBmZWF0dXJlIG5vdCBlbmFibGVkCiAgICAgICAgaWYgKCAhJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoIlN1cnZleTo6U2hvd1ZvdGVEYXRhIikgKSB7CiAgICAgICAgICAgICRPdXRwdXQgLj0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5DdXN0b21lckhlYWRlcigpOwoKICAgICAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1B1YmxpY1N1cnZleU1lc3NhZ2UnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZVR5cGUgICA9PiAnU3VydmV5IE1lc3NhZ2UhJywKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlSGVhZGVyID0+ICdNb2R1bGUgbm90IGVuYWJsZWQuJywKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0+CiAgICAgICAgICAgICAgICAgICAgICAgICdUaGlzIGZ1bmN0aW9uYWxpdHkgaXMgbm90IGVuYWJsZWQsIHBsZWFzZSBjb250YWN0IHlvdXIgYWRtaW5pc3RyYXRvci4nLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRPdXRwdXQgLj0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5PdXRwdXQoCiAgICAgICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ1B1YmxpY1N1cnZleScsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkT3V0cHV0IC49ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+Q3VzdG9tZXJGb290ZXIoKTsKICAgICAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICAgICAgfQoKICAgICAgICAjIEdldCB0aGUgcmVxdWVzdCBkYXRhIGFuZCBzdGFydCBzaG93aW5nIHRoZSBkYXRhCiAgICAgICAgbXkgJVJlcXVlc3REYXRhID0gJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5SZXF1ZXN0R2V0KAogICAgICAgICAgICBQdWJsaWNTdXJ2ZXlLZXkgPT4gJFB1YmxpY1N1cnZleUtleSwKICAgICAgICApOwoKICAgICAgICBteSAkU3VydmV5SUQgID0gJFJlcXVlc3REYXRhe1N1cnZleUlEfTsKICAgICAgICBteSAkVGlja2V0SUQgID0gJFJlcXVlc3REYXRhe1RpY2tldElEfTsKICAgICAgICBteSAkUmVxdWVzdElEID0gJFJlcXVlc3REYXRhe1JlcXVlc3RJRH07CgogICAgICAgICMgY2hlY2sgaWYgc3VydmV5IGV4aXN0cwogICAgICAgIGlmICgKICAgICAgICAgICAgJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5FbGVtZW50RXhpc3RzKAogICAgICAgICAgICAgICAgRWxlbWVudElEID0+ICRTdXJ2ZXlJRCwKICAgICAgICAgICAgICAgIEVsZW1lbnQgICA9PiAnU3VydmV5JwogICAgICAgICAgICApIG5lCiAgICAgICAgICAgICdZZXMnCiAgICAgICAgICAgIHx8ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+RWxlbWVudEV4aXN0cygKICAgICAgICAgICAgICAgIEVsZW1lbnRJRCA9PiAkUmVxdWVzdElELAogICAgICAgICAgICAgICAgRWxlbWVudCAgID0+ICdSZXF1ZXN0JwogICAgICAgICAgICApCiAgICAgICAgICAgIG5lICdZZXMnCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIldyb25nIHB1YmxpYyBzdXJ2ZXkga2V5OiAkUHVibGljU3VydmV5S2V5ISIsCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnaW5mbycsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkT3V0cHV0ID0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5DdXN0b21lckhlYWRlciggVGl0bGUgPT4gJ1N1cnZleScgKTsKCiAgICAgICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdQdWJsaWNTdXJ2ZXlNZXNzYWdlJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2VUeXBlICAgPT4gJ1N1cnZleSBFcnJvciEnLAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2VIZWFkZXIgPT4gJ0ludmFsaWQgc3VydmV5IGtleS4nLAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICAgICAgICAgJ1RoZSBpbnNlcnRlZCBzdXJ2ZXkga2V5IGlzIGludmFsaWQsIGlmIHlvdSBmb2xsb3dlZCBhIGxpbmsgbWF5YmUgdGhpcyBpcyBvYnNvbGV0ZSBvciBicm9rZW4uJywKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkT3V0cHV0IC49ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+T3V0cHV0KAogICAgICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdQdWJsaWNTdXJ2ZXknLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJE91dHB1dCAuPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPkN1c3RvbWVyRm9vdGVyKCk7CiAgICAgICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgICAgIH0KCiAgICAgICAgJE91dHB1dCA9ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+Q3VzdG9tZXJIZWFkZXIoIFRpdGxlID0+ICdTdXJ2ZXkgVm90ZScgKTsKCiAgICAgICAgbXkgJVN1cnZleSA9ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+U3VydmV5R2V0KAogICAgICAgICAgICBTdXJ2ZXlJRCA9PiAkU3VydmV5SUQsCiAgICAgICAgICAgIFB1YmxpYyAgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBjbGVhbiBodG1sCiAgICAgICAgaWYgKCAkU3VydmV5e0ludHJvZHVjdGlvbn0gKSB7CiAgICAgICAgICAgICRTdXJ2ZXl7SW50cm9kdWN0aW9ufSA9fiBze1xBXCRodG1sXC90ZXh0XCRccyguKil9eyQxfXhtczsKICAgICAgICAgICAgbXkgJEhUTUxDb250ZW50ID0gJDE7CiAgICAgICAgICAgIGlmICggISRIVE1MQ29udGVudCApIHsKICAgICAgICAgICAgICAgICRTdXJ2ZXl7SW50cm9kdWN0aW9ufSA9ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QXNjaWkySHRtbCgKICAgICAgICAgICAgICAgICAgICBUZXh0ICAgICAgICAgICA9PiAkU3VydmV5e0ludHJvZHVjdGlvbn0sCiAgICAgICAgICAgICAgICAgICAgSFRNTFJlc3VsdE1vZGUgPT4gMSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgcHJpbnQgdGhlIG1haW4gdGFibGUuCiAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnUHVibGljU3VydmV5Vm90ZURhdGEnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICVTdXJ2ZXksCiAgICAgICAgICAgICAgICBNZXNzYWdlVHlwZSA9PiAnU3VydmV5IFZvdGUgRGF0YScsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgICAgICBteSBAUXVlc3Rpb25MaXN0ID0gJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5RdWVzdGlvbkxpc3QoIFN1cnZleUlEID0+ICRTdXJ2ZXlJRCApOwogICAgICAgIGZvciBteSAkUXVlc3Rpb24gKEBRdWVzdGlvbkxpc3QpIHsKCiAgICAgICAgICAgIG15ICRDbGFzcyA9ICcnOwogICAgICAgICAgICBpZiAoICRRdWVzdGlvbi0+e1R5cGV9IGVxICdUZXh0YXJlYScgKSB7CiAgICAgICAgICAgICAgICAkQ2xhc3MgPSAnVGV4dGFyZWEnOwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAkUmVxdWlyZWRUZXh0ID0gJyc7CiAgICAgICAgICAgIGlmICggJFF1ZXN0aW9uLT57QW5zd2VyUmVxdWlyZWR9ICkgewogICAgICAgICAgICAgICAgJENsYXNzIC49ICcgTWFuZGF0b3J5JzsKICAgICAgICAgICAgICAgICRSZXF1aXJlZFRleHQgPSAnKiAnOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnUHVibGljU3VydmV5Vm90ZVF1ZXN0aW9uJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICV7JFF1ZXN0aW9ufSwKICAgICAgICAgICAgICAgICAgICBDbGFzcyAgICAgICAgPT4gJENsYXNzLAogICAgICAgICAgICAgICAgICAgIFJlcXVpcmVkVGV4dCA9PiAkUmVxdWlyZWRUZXh0LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgbXkgQEFuc3dlcnM7CiAgICAgICAgICAgIGlmICggJFF1ZXN0aW9uLT57VHlwZX0gZXEgJ1JhZGlvJyB8fCAkUXVlc3Rpb24tPntUeXBlfSBlcSAnQ2hlY2tib3gnICkgewogICAgICAgICAgICAgICAgbXkgQEFuc3dlckxpc3Q7CiAgICAgICAgICAgICAgICBAQW5zd2VyTGlzdCA9ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+Vm90ZUdldCgKICAgICAgICAgICAgICAgICAgICBSZXF1ZXN0SUQgID0+ICRSZXF1ZXN0SUQsCiAgICAgICAgICAgICAgICAgICAgUXVlc3Rpb25JRCA9PiAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBmb3IgbXkgJFJvdyAoQEFuc3dlckxpc3QpIHsKICAgICAgICAgICAgICAgICAgICBteSAlQW5zd2VyID0gJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5BbnN3ZXJHZXQoIEFuc3dlcklEID0+ICRSb3ctPntWb3RlVmFsdWV9ICk7CiAgICAgICAgICAgICAgICAgICAgbXkgJURhdGE7CiAgICAgICAgICAgICAgICAgICAgJERhdGF7QW5zd2VyfSA9ICRBbnN3ZXJ7QW5zd2VyfTsKICAgICAgICAgICAgICAgICAgICBwdXNoKCBAQW5zd2VycywgXCVEYXRhICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkUXVlc3Rpb24tPntUeXBlfSBlcSAnWWVzTm8nIHx8ICRRdWVzdGlvbi0+e1R5cGV9IGVxICdUZXh0YXJlYScgKSB7CiAgICAgICAgICAgICAgICBteSBATGlzdCA9ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+Vm90ZUdldCgKICAgICAgICAgICAgICAgICAgICBSZXF1ZXN0SUQgID0+ICRSZXF1ZXN0SUQsCiAgICAgICAgICAgICAgICAgICAgUXVlc3Rpb25JRCA9PiAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgbXkgJURhdGE7CiAgICAgICAgICAgICAgICAkRGF0YXtBbnN3ZXJ9ID0gJExpc3RbMF0tPntWb3RlVmFsdWV9OwoKICAgICAgICAgICAgICAgICMgY2xlYW4gaHRtbAogICAgICAgICAgICAgICAgaWYgKCAkUXVlc3Rpb24tPntUeXBlfSBlcSAnVGV4dGFyZWEnICYmICREYXRhe0Fuc3dlcn0gKSB7CiAgICAgICAgICAgICAgICAgICAgJERhdGF7QW5zd2VyfSA9fiBze1xBXCRodG1sXC90ZXh0XCRccyguKil9eyQxfXhtczsKICAgICAgICAgICAgICAgICAgICAkRGF0YXtBbnN3ZXJ9ID0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5Bc2NpaTJIdG1sKAogICAgICAgICAgICAgICAgICAgICAgICBUZXh0ICAgICAgICAgICA9PiAkRGF0YXtBbnN3ZXJ9LAogICAgICAgICAgICAgICAgICAgICAgICBIVE1MUmVzdWx0TW9kZSA9PiAxLAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgIGlmICgkMSkgewogICAgICAgICAgICAgICAgICAgICAgICAkRGF0YXtBbnN3ZXJ9ID0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTZWxmLT57SFRNTFV0aWxzT2JqZWN0fS0+VG9Bc2NpaSggU3RyaW5nID0+ICREYXRhe0Fuc3dlcn0gKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBwdXNoKCBAQW5zd2VycywgXCVEYXRhICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZm9yIG15ICRSb3cgKEBBbnN3ZXJzKSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1B1YmxpY1N1cnZleVZvdGVBbnN3ZXInLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAleyRSb3d9LAogICAgICAgICAgICAgICAgICAgICAgICBDbGFzcyA9PiAkQ2xhc3MsCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgJE91dHB1dCAuPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdQdWJsaWNTdXJ2ZXknLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPkN1c3RvbWVyRm9vdGVyKCk7CiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBzaG93IHN1cnZleQogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgbXkgJFB1YmxpY1N1cnZleUtleSA9ICRTZWxmLT57UGFyYW1PYmplY3R9LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1B1YmxpY1N1cnZleUtleScgKTsKICAgICRPdXRwdXQgPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPkN1c3RvbWVySGVhZGVyKCBUaXRsZSA9PiAnU3VydmV5JyApOwoKICAgIG15ICRVc2VkU3VydmV5S2V5ID0gJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5QdWJsaWNTdXJ2ZXlHZXQoCiAgICAgICAgUHVibGljU3VydmV5S2V5ID0+ICRQdWJsaWNTdXJ2ZXlLZXksCiAgICAgICAgSW52YWxpZCAgICAgICAgID0+IDEsCiAgICApOwoKICAgIG15ICVTdXJ2ZXkgPSAkU2VsZi0+e1N1cnZleU9iamVjdH0tPlB1YmxpY1N1cnZleUdldCggUHVibGljU3VydmV5S2V5ID0+ICRQdWJsaWNTdXJ2ZXlLZXkgKTsKCiAgICAkU3VydmV5e1B1YmxpY1N1cnZleUtleX0gPSAkUHVibGljU3VydmV5S2V5OwoKICAgIGlmICgkVXNlZFN1cnZleUtleSkgewogICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1B1YmxpY1N1cnZleU1lc3NhZ2UnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIE1lc3NhZ2VUeXBlICAgPT4gJ1N1cnZleSBJbmZvcm1hdGlvbicsCiAgICAgICAgICAgICAgICBNZXNzYWdlSGVhZGVyID0+ICdUaGFuayB5b3UgZm9yIHlvdXIgZmVlZGJhY2suJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgICAgICAgPT4gJ1lvdSBoYXZlIGFscmVhZHkgYW5zd2VyZWQgdGhlIHN1cnZleS4nLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoIlN1cnZleTo6U2hvd1ZvdGVEYXRhIikgKSB7CiAgICAgICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdTaG93QW5zd2Vyc0J1dHRvbicsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBQdWJsaWNTdXJ2ZXlLZXkgPT4gJFB1YmxpY1N1cnZleUtleSwKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQogICAgZWxzaWYgKCAkU3VydmV5e1N1cnZleUlEfSApIHsKCiAgICAgICAgIyBjbGVhbiBodG1sIGFuZCBwcm9jY2VzcyBpbnRyb2R1Y3Rpb24gdGV4dAogICAgICAgICRTdXJ2ZXl7SW50cm9kdWN0aW9ufSA9fiBze1xBXCRodG1sXC90ZXh0XCRccyguKil9eyQxfXhtczsKICAgICAgICBteSAkSFRNTENvbnRlbnQgPSAkMTsKICAgICAgICBpZiAoICEkSFRNTENvbnRlbnQgKSB7CiAgICAgICAgICAgICRTdXJ2ZXl7SW50cm9kdWN0aW9ufSA9ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QXNjaWkySHRtbCgKICAgICAgICAgICAgICAgIFRleHQgICAgICAgICAgID0+ICRTdXJ2ZXl7SW50cm9kdWN0aW9ufSwKICAgICAgICAgICAgICAgIEhUTUxSZXN1bHRNb2RlID0+IDEsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdQdWJsaWNTdXJ2ZXknLAogICAgICAgICAgICBEYXRhID0+IHslU3VydmV5fSwKICAgICAgICApOwoKICAgICAgICAjIElmIHdlIGhhZCBlcnJvcnMsIEBRdWVzdGlvbkxpc3QgaXMgYWxyZWFkeSBmaWxsZWQsIHNvIGxldCdzIHNhdmUgYSBTUUwgcXVlcnkKICAgICAgICBpZiAoICFAUXVlc3Rpb25MaXN0ICkgewogICAgICAgICAgICBAUXVlc3Rpb25MaXN0ID0gJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5RdWVzdGlvbkxpc3QoIFN1cnZleUlEID0+ICRTdXJ2ZXl7U3VydmV5SUR9ICk7CiAgICAgICAgfQoKICAgICAgICBmb3IgbXkgJFF1ZXN0aW9uIChAUXVlc3Rpb25MaXN0KSB7CgogICAgICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKCBOYW1lID0+ICdQdWJsaWNRdWVzdGlvbnMnICk7CgogICAgICAgICAgICBteSAkQ2xhc3MgICAgICAgID0gJyc7CiAgICAgICAgICAgIG15ICRSZXF1aXJlZFRleHQgPSAnJzsKICAgICAgICAgICAgbXkgJEVycm9yVGV4dDsKICAgICAgICAgICAgaWYgKCAkUXVlc3Rpb24tPntBbnN3ZXJSZXF1aXJlZH0gKSB7CiAgICAgICAgICAgICAgICAkQ2xhc3MgLj0gJ01hbmRhdG9yeSc7CiAgICAgICAgICAgICAgICAkUmVxdWlyZWRUZXh0ID0gJyogJzsKCiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgJEVycm9yc3sgJFF1ZXN0aW9uLT57UXVlc3Rpb25JRH0gfQogICAgICAgICAgICAgICAgJiYgcmVmICRFcnJvcnN7ICRRdWVzdGlvbi0+e1F1ZXN0aW9uSUR9IH0gZXEgJ0hBU0gnCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKCiAgICAgICAgICAgICAgICAjICVFcnJvcnMgaG9sZHMgYSBrZXkgZm9yIGVhY2ggUXVlc3Rpb25JRCB0aGF0IGhhZCBlcnJvcnMuCiAgICAgICAgICAgICAgICAjIFRoZSB2YWx1ZSBpcyBhIGhhc2hyZWYgd2hvJ3Mga2V5cyBhcmUgdGhlIEVycm9yVHlwZQogICAgICAgICAgICAgICAgIyBUaGUgdmFsdWUgaXMgc2V0IHRvIDEKICAgICAgICAgICAgICAgICMgUmVhc29uIGZvciB0aGlzIGlzLCB0aGF0IHRoZSB2YWx1ZSBtYXkgYmUgdXNlZCB0byBkaXNwbGF5CiAgICAgICAgICAgICAgICAjIGEgbW9yZSBzcGVjaWZpYyBFcnJvciBNZXNzYWdlIGNvbnRhaW5pbmcgdGV4dCBxdWVzdGlvbiBzcGVjaWZpYyBlcnJvciBtZXNzYWdlcwogICAgICAgICAgICAgICAgIyBvciBzaW1pbGFyLiBTbyBhIHR5cGUgc3BlY2lmaWMgZXJyb3IgbWVzc2FnZSB0cmVhdG1lbnQgd291bGQgYmUgcG9zc2libGUgaGVyZS4KCiAgICAgICAgICAgICAgICAjIEF0IHRoZSB0aW1lIG9mIGNyZWF0aW9uIHRoZSBvbmx5IGVycm9yIHR5cGUgd2FzICdBbnN3ZXIgcmVxdWlyZWQnLgogICAgICAgICAgICAgICAgIyBTbyBhIGRhdGEgc3RydWN0dXJlIGxvb2tzIGxpa2UgdGhpczoKICAgICAgICAgICAgICAgICMgJUVycm9ycyA9ICgKICAgICAgICAgICAgICAgICMgICAxID0+IHsKICAgICAgICAgICAgICAgICMgICAgICAgICdBbnN3ZXIgcmVxdWlyZWQnID0+IDEsCiAgICAgICAgICAgICAgICAjICAgfSwKICAgICAgICAgICAgICAgICMgICAyID0+IHsKICAgICAgICAgICAgICAgICMgICAgICAgICdBbnN3ZXIgcmVxdWlyZWQnID0+IDEsCiAgICAgICAgICAgICAgICAjICAgIH0sCiAgICAgICAgICAgICAgICAjICk7CgogICAgICAgICAgICAgICAgIyBMYXRlciBvbiBhIERhdGFzdHJ1Y3R1cmUgbGlrZSB0aGUgZm9sbG93aW5nIHdvdWxkIGJlIHBvc3NpYmxlOgogICAgICAgICAgICAgICAgIyAlRXJyb3JzID0gKAogICAgICAgICAgICAgICAgIyAgIDEgPT4gewogICAgICAgICAgICAgICAgIyAgICAgICAgJ0ludmFsaWQgdGV4dCcgPT4gJ1lvdXIgVGV4dCBkaWQgbm90IGNvbnRhaW4gdGhlIE9yZGVyIG51bWJlcicsCiAgICAgICAgICAgICAgICAjICAgfSwKICAgICAgICAgICAgICAgICMgICAyID0+IHsKICAgICAgICAgICAgICAgICMgICAgICAgICdBbnN3ZXIgcmVxdWlyZWQnID0+IDEsCiAgICAgICAgICAgICAgICAjICAgIH0sCiAgICAgICAgICAgICAgICAjICk7CiAgICAgICAgICAgICAgICAjIEFzIHNvb24gYXMgdGhpcyBpcyBuZWVkZWQsIHRoZSBmb2xsb3dpbmcgJEVycm9yVGV4dCBzdHJpbmdidWlsZGluZyBoYXMgdG8gYmUgY2hhbmdlZC4KCiAgICAgICAgICAgICAgICAjIFRoZSBzdHJpbmdidWlsZGluZyB3b3JrcyBhdCB0aGUgbW9tZW50IHRoaXMgd2F5OgogICAgICAgICAgICAgICAgIyAxLiBHbyB0aHJvdWdoIGFsbCBrZXlzIG9mIHRoZSAleyAkRXJyb3JzeyAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSB9IH0gaGFzaAogICAgICAgICAgICAgICAgIyAyLiBEbyBhIHRyYW5zbGF0aW9uIGZvciBlYWNoIGtleSAoaW5zaWRlIHRoZSAibWFwIHt9Ii1jbGF1c2UpCiAgICAgICAgICAgICAgICAjIDMuIGpvaW4gdGhlIHJlc3VsdGluZyBBcnJheSBieSBwdXR0aW5nICI8L3A+XG48L3A+IiBpbiBiZXR3ZWVuIHRoZSBBcnJheWtleXMKICAgICAgICAgICAgICAgICMgNC4gYWRkICc8cD4nIGF0IHRoZSBiZWdpbm5pbmcgYW5kICc8L3A+JyBhdCB0aGUgZW5kLgoKICAgICAgICAgICAgICAgICRFcnJvclRleHQgPSAnPHA+JwogICAgICAgICAgICAgICAgICAgIC4gKAogICAgICAgICAgICAgICAgICAgIGpvaW4gIjwvcD5cbjxwPiIsCiAgICAgICAgICAgICAgICAgICAgbWFwIHsgJFNlbGYtPntMYXlvdXRPYmplY3R9LT57TGFuZ3VhZ2VPYmplY3R9LT5HZXQoJF8pIH0KICAgICAgICAgICAgICAgICAgICAgICAga2V5cyAleyAkRXJyb3JzeyAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSB9IH0KICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgLiAnPC9wPic7CgogICAgICAgICAgICAgICAgJEVycm9yVGV4dCA9IDw8RU5EOwogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iVG9vbHRpcEVycm9yIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlRvb2x0aXAgVG9uZ3VlTGVmdCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iVG9uZ3VlIiA+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCIgcm9sZT0idG9vbHRpcCIgc3R5bGU9IndvcmQtd3JhcDogYnJlYWstd29yZDsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJEVycm9yVGV4dAogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KRU5ECiAgICAgICAgICAgICAgICAkQ2xhc3MgLj0gJyBFcnJvcic7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICggJFF1ZXN0aW9uLT57VHlwZX0gZXEgJ1llc05vJyApIHsKCiAgICAgICAgICAgICAgICBteSAlU2VsZWN0ZWQgPSAoCiAgICAgICAgICAgICAgICAgICAgWWVzU2VsZWN0ZWQgPT4gKAogICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmVkICRBbnN3ZXJzeyAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAkQW5zd2Vyc3sgJFF1ZXN0aW9uLT57UXVlc3Rpb25JRH0gfSBlcSAnWWVzJwogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgPyAnY2hlY2tlZD0iY2hlY2tlZCInCiAgICAgICAgICAgICAgICAgICAgOiAnJywKICAgICAgICAgICAgICAgICAgICBOb1NlbGVjdGVkID0+ICgKICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lZCAkQW5zd2Vyc3sgJFF1ZXN0aW9uLT57UXVlc3Rpb25JRH0gfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgJEFuc3dlcnN7ICRRdWVzdGlvbi0+e1F1ZXN0aW9uSUR9IH0gZXEgJ05vJwogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgPyAnY2hlY2tlZD0iY2hlY2tlZCInCiAgICAgICAgICAgICAgICAgICAgOiAnJywKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdQdWJsaWNBbnN3ZXJZZXNObycsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICV7JFF1ZXN0aW9ufSwKICAgICAgICAgICAgICAgICAgICAgICAgJVNlbGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICBFcnJvclRleHQgPT4gJEVycm9yVGV4dCB8fCAnJywKICAgICAgICAgICAgICAgICAgICAgICAgQ2xhc3MgPT4gJENsYXNzLAogICAgICAgICAgICAgICAgICAgICAgICBSZXF1aXJlZFRleHQgPT4gJFJlcXVpcmVkVGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRRdWVzdGlvbi0+e1R5cGV9IGVxICdSYWRpbycgKSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1B1YmxpY0Fuc3dlclJhZGlvJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgJXskUXVlc3Rpb259LAogICAgICAgICAgICAgICAgICAgICAgICBFcnJvclRleHQgPT4gJEVycm9yVGV4dCB8fCAnJywKICAgICAgICAgICAgICAgICAgICAgICAgQ2xhc3MgPT4gJENsYXNzLAogICAgICAgICAgICAgICAgICAgICAgICBSZXF1aXJlZFRleHQgPT4gJFJlcXVpcmVkVGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIG15IEBBbnN3ZXJMaXN0ID0gJFNlbGYtPntTdXJ2ZXlPYmplY3R9LT5BbnN3ZXJMaXN0KAogICAgICAgICAgICAgICAgICAgIFF1ZXN0aW9uSUQgPT4gJFF1ZXN0aW9uLT57UXVlc3Rpb25JRH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgZm9yIG15ICRBbnN3ZXIgKEBBbnN3ZXJMaXN0KSB7CgogICAgICAgICAgICAgICAgICAgIG15ICRTZWxlY3RlZCA9ICcnOwogICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lZCAkQW5zd2Vyc3sgJFF1ZXN0aW9uLT57UXVlc3Rpb25JRH0gfQogICAgICAgICAgICAgICAgICAgICAgICAmJiAkQW5zd2Vyc3sgJFF1ZXN0aW9uLT57UXVlc3Rpb25JRH0gfSBlcSAkQW5zd2VyLT57QW5zd2VySUR9CiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICRTZWxlY3RlZCA9ICdjaGVja2VkPSJjaGVja2VkIic7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1B1YmxpY0Fuc3dlclJhZGlvYicsCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJXskQW5zd2VyfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFuc3dlclNlbGVjdGVkID0+ICRTZWxlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJFF1ZXN0aW9uLT57VHlwZX0gZXEgJ0NoZWNrYm94JyApIHsKICAgICAgICAgICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUHVibGljQW5zd2VyQ2hlY2tib3gnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAleyRRdWVzdGlvbn0sCiAgICAgICAgICAgICAgICAgICAgICAgIEVycm9yVGV4dCA9PiAkRXJyb3JUZXh0IHx8ICcnLAogICAgICAgICAgICAgICAgICAgICAgICBDbGFzcyA9PiAkQ2xhc3MsCiAgICAgICAgICAgICAgICAgICAgICAgIFJlcXVpcmVkVGV4dCA9PiAkUmVxdWlyZWRUZXh0LAogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgbXkgQEFuc3dlckxpc3QgPSAkU2VsZi0+e1N1cnZleU9iamVjdH0tPkFuc3dlckxpc3QoCiAgICAgICAgICAgICAgICAgICAgUXVlc3Rpb25JRCA9PiAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBmb3IgbXkgJEFuc3dlciAoQEFuc3dlckxpc3QpIHsKICAgICAgICAgICAgICAgICAgICBteSAkU2VsZWN0ZWQgPSAnJzsKICAgICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZWQgJEFuc3dlcnN7ICRRdWVzdGlvbi0+e1F1ZXN0aW9uSUR9IH0KICAgICAgICAgICAgICAgICAgICAgICAgJiYgcmVmICRBbnN3ZXJzeyAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSB9IGVxICdBUlJBWScKICAgICAgICAgICAgICAgICAgICAgICAgJiYgQHsgJEFuc3dlcnN7ICRRdWVzdGlvbi0+e1F1ZXN0aW9uSUR9IH0gfQogICAgICAgICAgICAgICAgICAgICAgICAmJiBzY2FsYXIgZ3JlcCB7ICRfIGVxICRBbnN3ZXItPntBbnN3ZXJJRH0gfQogICAgICAgICAgICAgICAgICAgICAgICBAeyAkQW5zd2Vyc3sgJFF1ZXN0aW9uLT57UXVlc3Rpb25JRH0gfSB9CiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICRTZWxlY3RlZCA9ICdjaGVja2VkPSJjaGVja2VkIic7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1B1YmxpY0Fuc3dlckNoZWNrYm94YicsCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJXskQW5zd2VyfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFuc3dlclNlbGVjdGVkID0+ICRTZWxlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJFF1ZXN0aW9uLT57VHlwZX0gZXEgJ1RleHRhcmVhJyApIHsKICAgICAgICAgICAgICAgIG15ICRWYWx1ZSA9ICRBbnN3ZXJzeyAkUXVlc3Rpb24tPntRdWVzdGlvbklEfSB9IHx8ICcnOwogICAgICAgICAgICAgICAgJFZhbHVlID1+IHMvXlwkaHRtbFwvdGV4dFwkXHMvLzsKICAgICAgICAgICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUHVibGljQW5zd2VyVGV4dGFyZWEnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAleyRRdWVzdGlvbn0sCiAgICAgICAgICAgICAgICAgICAgICAgIEVycm9yVGV4dCA9PiAkRXJyb3JUZXh0IHx8ICcnLAogICAgICAgICAgICAgICAgICAgICAgICBDbGFzcyA9PiAkQ2xhc3MsCiAgICAgICAgICAgICAgICAgICAgICAgIFJlcXVpcmVkVGV4dCA9PiAkUmVxdWlyZWRUZXh0LAogICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSAgICAgICAgPT4gJFZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgY2hlY2sgaWYgcmljaCB0ZXh0IGlzIGVuYWJsZWQKICAgICAgICAgICAgICAgIGlmICggJFNlbGYtPntMYXlvdXRPYmplY3R9LT57QnJvd3NlclJpY2hUZXh0fSApIHsKICAgICAgICAgICAgICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKCBOYW1lID0+ICdSaWNoVGV4dCcgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIGVsc2UgewogICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1B1YmxpY1N1cnZleU1lc3NhZ2UnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIE1lc3NhZ2VUeXBlICAgPT4gJ1N1cnZleSBFcnJvciEnLAogICAgICAgICAgICAgICAgTWVzc2FnZUhlYWRlciA9PiAnSW52YWxpZCBzdXJ2ZXkga2V5LicsCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+CiAgICAgICAgICAgICAgICAgICAgJ1RoZSBpbnNlcnRlZCBzdXJ2ZXkga2V5IGlzIGludmFsaWQsIGlmIHlvdSBmb2xsb3dlZCBhIGxpbmsgbWF5YmUgdGhpcyBpcyBvYnNvbGV0ZSBvciBicm9rZW4uJywKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQogICAgJE91dHB1dCAuPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ1B1YmxpY1N1cnZleScsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHslUGFyYW19LAogICAgKTsKICAgICRPdXRwdXQgLj0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5DdXN0b21lckZvb3RlcigpOwogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OlN1cnZleU92ZXJ2aWV3U21hbGw7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgZ2V0IG5lZWRlZCBvYmplY3RzCiAgICBmb3IgbXkgJE9iamVjdCAoCiAgICAgICAgcXcoQ29uZmlnT2JqZWN0IExvZ09iamVjdCBEQk9iamVjdCBMYXlvdXRPYmplY3QgVXNlcklEIFVzZXJPYmplY3QgTWFpbk9iamVjdCkKICAgICAgICApCiAgICB7CiAgICAgICAgJFNlbGYtPnskT2JqZWN0fSA9ICRQYXJhbXskT2JqZWN0fSB8fCBkaWUgIkdvdCBubyAkT2JqZWN0ISI7CiAgICB9CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkTmVlZGVkIChxdyhQYWdlU2hvd24gU3RhcnRIaXQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBuZWVkIFN1cnZleUlEcwogICAgaWYgKCAhJFBhcmFte1N1cnZleUlEc30gKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIHRoZSBTdXJ2ZXlJRHMhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIHN0b3JlIHRoZSBTdXJ2ZXlJRHMgbG9jYWxseQogICAgbXkgQElEcyA9IEB7ICRQYXJhbXtTdXJ2ZXlJRHN9IH07CgogICAgIyBjaGVjayBTaG93Q29sdW1ucyBwYXJhbWV0ZXIKICAgIG15IEBTaG93Q29sdW1uczsKICAgIGlmICggJFBhcmFte1Nob3dDb2x1bW5zfSAmJiByZWYgJFBhcmFte1Nob3dDb2x1bW5zfSBlcSAnQVJSQVknICkgewogICAgICAgIEBTaG93Q29sdW1ucyA9IEB7ICRQYXJhbXtTaG93Q29sdW1uc30gfTsKICAgIH0KCiAgICBteSAkT3V0cHV0ID0gJyc7CgogICAgIyBzaG93IHN1cnZleXMgaWYgdGhlcmUgYXJlIHNvbWUKICAgIGlmIChASURzKSB7CgogICAgICAgICMgYnVpbGQgY29sdW1uIGhlYWRlciBibG9ja3MKICAgICAgICAjIGN1cnJlbnRseSBzb3J0aW5nIGlzIG5vdCBpbXBsZW1lbnRlZCBvbiBzdXJ2ZXksIGxlYXZlIHRoZSBjb2RlIGZvciBmdXR1cmUgaW1wbGVtZW50YXRpb24KICAgICAgICBpZiAoQFNob3dDb2x1bW5zKSB7CiAgICAgICAgICAgIGZvciBteSAkQ29sdW1uIChAU2hvd0NvbHVtbnMpIHsKCiAgICAgICAgICAgICAgICAjIGNyZWF0ZSBuZWVkZWQgdmFyaWFibGVzCiAgICAgICAgICAgICAgICBteSAkQ1NTID0gJyc7CiAgICAgICAgICAgICAgICBteSAkT3JkZXJCeTsKCiAgICAgICAgICAgICAgICAjIHNldCB0aGUgY29ycmVjdCBTZXQgQ1NTIGNsYXNzIGFuZCBvcmRlciBieSBsaW5rCiAgICAgICAgICAgICAgICBpZiAoICRQYXJhbXtTb3J0Qnl9ICYmICggJFBhcmFte1NvcnRCeX0gZXEgJENvbHVtbiApICkgewogICAgICAgICAgICAgICAgICAgIGlmICggJFBhcmFte09yZGVyQnl9ICYmICggJFBhcmFte09yZGVyQnl9IGVxICdVcCcgKSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJE9yZGVyQnkgPSAnRG93bic7CiAgICAgICAgICAgICAgICAgICAgICAgICRDU1MgLj0gJyBTb3J0RGVzY2VuZGluZyc7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAkT3JkZXJCeSA9ICdVcCc7CiAgICAgICAgICAgICAgICAgICAgICAgICRDU1MgLj0gJyBTb3J0QXNjZW5kaW5nJzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkT3JkZXJCeSA9ICdVcCc7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBvdXRwdXQgZWFjaCBoZWFkZXIKICAgICAgICAgICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnUmVjb3JkJyAuICRDb2x1bW4gLiAnSGVhZGVyJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICAgICBDU1MgICAgID0+ICRDU1MsCiAgICAgICAgICAgICAgICAgICAgICAgIE9yZGVyQnkgPT4gJE9yZGVyQnksCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIG15ICRDb3VudGVyID0gMDsKCiAgICAgICAgSUQ6CiAgICAgICAgZm9yIG15ICRJRCAoQElEcykgewogICAgICAgICAgICAkQ291bnRlcisrOwogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAkQ291bnRlciA+PSAkUGFyYW17U3RhcnRIaXR9CiAgICAgICAgICAgICAgICAmJiAkQ291bnRlciA8ICggJFBhcmFte1BhZ2VTaG93bn0gKyAkUGFyYW17U3RhcnRIaXR9ICkKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewoKICAgICAgICAgICAgICAgICMgZ2V0IHN1cnZleSBkYXRhCiAgICAgICAgICAgICAgICBteSAlRGF0YSA9ICRTZWxmLT57U3VydmV5T2JqZWN0fS0+U3VydmV5R2V0KAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICBTdXJ2ZXlJRCA9PiAkSUQsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIG5leHQgSUQgaWYgISVEYXRhOwoKICAgICAgICAgICAgICAgICMgYnVpbGQgcmVjb3JkIGJsb2NrCiAgICAgICAgICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1JlY29yZCcsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgJURhdGEsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBidWlsZCBjb2x1bW4gcmVjb3JkIGJsb2NrcwogICAgICAgICAgICAgICAgaWYgKEBTaG93Q29sdW1ucykgewogICAgICAgICAgICAgICAgICAgIENPTFVNTjoKICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJENvbHVtbiAoQFNob3dDb2x1bW5zKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdSZWNvcmQnIC4gJENvbHVtbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlRGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICAgICAjIHNob3cgbGlua3MgaWYgYXZhaWxhYmxlCiAgICAgICAgICAgICAgICAgICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICdSZWNvcmQnIC4gJENvbHVtbiAuICdMaW5rU3RhcnQnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICVEYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1JlY29yZCcgLiAkQ29sdW1uIC4gJ0xpbmtFbmQnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICVEYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBpZiB0aGVyZSBhcmUgbm8gc3VydmV5cyB0byBzaG93LCBhIG5vIGRhdGEgZm91bmQgbWVzc2FnZSBpcyBkaXNwbGF5ZWQgaW4gdGhlIHRhYmxlCiAgICBlbHNlIHsKICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdOb0RhdGFGb3VuZE1zZycsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgVG90YWxDb2x1bW5zID0+IHNjYWxhciBAU2hvd0NvbHVtbnMsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHVzZSB0ZW1wbGF0ZQogICAgJE91dHB1dCAuPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50U3VydmV5T3ZlcnZpZXdTbWFsbCcsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICBUeXBlICAgICAgICA9PiAkU2VsZi0+e1ZpZXdUeXBlfSwKICAgICAgICAgICAgQ29sdW1uQ291bnQgPT4gc2NhbGFyIEBTaG93Q29sdW1ucywKICAgICAgICB9LAogICAgKTsKCiAgICByZXR1cm4gJE91dHB1dDsKfQoKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjwhLS0gZHRsOmJsb2NrOlN1cnZleUFkZCAtLT4KPGRpdiBjbGFzcz0iTWFpbkJveCBBUklBUm9sZU1haW4gTGF5b3V0Rml4ZWRTaWRlYmFyIFNpZGViYXJMYXN0Ij4KCiAgICA8aDE+JFRleHR7IkNyZWF0ZSBOZXcgU3VydmV5In08L2gxPgoKICAgIDxkaXYgY2xhc3M9IkNvbnRlbnRDb2x1bW4iPgogICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICA8Zm9ybSBhY3Rpb249IiRFbnZ7IkNHSUhhbmRsZSJ9IiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5hbWU9IlN1cnZleSIgaWQ9IlN1cnZleSIgY2xhc3M9IlZhbGlkYXRlIFByZXZlbnRNdWx0aXBsZVN1Ym1pdHMiPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iJEVudnsiQWN0aW9uIn0iIC8+CiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJTdXJ2ZXlOZXciIC8+CgogICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UiPgoKICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJUaXRsZSI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gJFRleHR7IlRpdGxlIn06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iVGl0bGUiIG5hbWU9IlRpdGxlIiB0eXBlPSJ0ZXh0IiBjbGFzcz0iVzc1cGMgVmFsaWRhdGVfUmVxdWlyZWQgJFFEYXRheyJUaXRsZVNlcnZlckVycm9yIn0iIHZhbHVlPSIkUURhdGF7IlRpdGxlIn0iIC8+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKPCEtLSBkdGw6YmxvY2s6U3VydmV5QWRkUmljaFRleHQgLS0+CiRJbmNsdWRleyJSaWNoVGV4dEVkaXRvciJ9CjwhLS0gZHRsOmJsb2NrOlN1cnZleUFkZFJpY2hUZXh0IC0tPgoKCjwhLS0gZHRsOmJsb2NrOlN1cnZleUFkZEludHJvZHVjdGlvbiAtLT4KICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJJbnRyb2R1Y3Rpb24iPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+ICRUZXh0eyJJbnRyb2R1Y3Rpb24ifTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlJpY2hUZXh0RmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgaWQ9IkludHJvZHVjdGlvbiIgbmFtZT0iSW50cm9kdWN0aW9uIiBuYW1lPSJJbnRyb2R1Y3Rpb24iIGNsYXNzPSJSaWNoVGV4dCBWYWxpZGF0ZV9SZXF1aXJlZCAkUURhdGF7IkludHJvZHVjdGlvblNlcnZlckVycm9yIn0iIHRpdGxlPSJTdXJ2ZXkgSW50cm9kdWN0aW9uIiByb3dzPSIxNSIgY29scz0iJENvbmZpZ3siVGlja2V0OjpGcm9udGVuZDo6VGV4dEFyZWFOb3RlIn0iPiREYXRheyJJbnRyb2R1Y3Rpb24ifTwvdGV4dGFyZWE+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2Pgo8IS0tIGR0bDpibG9jazpTdXJ2ZXlBZGRJbnRyb2R1Y3Rpb24gLS0+CgogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9Ik5vdGlmaWNhdGlvblNlbmRlciI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gJFRleHR7IlNlbmRlciJ9OjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9Ik5vdGlmaWNhdGlvblNlbmRlciIgbmFtZT0iTm90aWZpY2F0aW9uU2VuZGVyIiB0eXBlPSJ0ZXh0IiBjbGFzcz0iVzc1cGMgVmFsaWRhdGVfUmVxdWlyZWQgJFFEYXRheyJOb3RpZmljYXRpb25TZW5kZXJTZXJ2ZXJFcnJvciJ9IiB2YWx1ZT0iJFFEYXRheyJOb3RpZmljYXRpb25TZW5kZXIifSIgLz4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9Ik5vdGlmaWNhdGlvblN1YmplY3QiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+ICRUZXh0eyJTdWJqZWN0In06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0iTm90aWZpY2F0aW9uU3ViamVjdCIgbmFtZT0iTm90aWZpY2F0aW9uU3ViamVjdCIgdHlwZT0idGV4dCIgY2xhc3M9Ilc3NXBjIFZhbGlkYXRlX1JlcXVpcmVkICRRRGF0YXsiTm90aWZpY2F0aW9uU3ViamVjdFNlcnZlckVycm9yIn0iIHZhbHVlPSIkUURhdGF7Ik5vdGlmaWNhdGlvblN1YmplY3QifSIgLz4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+Cgo8IS0tIGR0bDpibG9jazpTdXJ2ZXlBZGROb3RpZmljYXRpb25Cb2R5IC0tPgogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9Ik5vdGlmaWNhdGlvbkJvZHkiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+ICRUZXh0eyJCb2R5In06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJSaWNoVGV4dEZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIGlkPSJOb3RpZmljYXRpb25Cb2R5IiBuYW1lPSJOb3RpZmljYXRpb25Cb2R5IiBjbGFzcz0iUmljaFRleHQgVmFsaWRhdGVfUmVxdWlyZWQgJFFEYXRheyJOb3RpZmljYXRpb25Cb2R5U2VydmVyRXJyb3IifSIgdGl0bGU9Ik5vdGlmaWNhdGlvbiBCb2R5IiByb3dzPSIxNSIgY29scz0iJENvbmZpZ3siVGlja2V0OjpGcm9udGVuZDo6VGV4dEFyZWFOb3RlIn0iPiRRRGF0YXsiTm90aWZpY2F0aW9uQm9keSJ9PC90ZXh0YXJlYT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CjwhLS0gZHRsOmJsb2NrOlN1cnZleUFkZE5vdGlmaWNhdGlvbkJvZHkgLS0+CgogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlF1ZXVlcyI+JFRleHR7IlF1ZXVlcyJ9OjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAkRGF0YXsiUXVldWVTdHJpbmcifQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCjwhLS0gZHRsOmJsb2NrOlN1cnZleUFkZEludGVybmFsRGVzY3JpcHRpb24gLS0+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iRGVzY3JpcHRpb24iPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+ICRUZXh0eyJJbnRlcm5hbCBEZXNjcmlwdGlvbiJ9OjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iUmljaFRleHRGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBpZD0iRGVzY3JpcHRpb24iIG5hbWU9IkRlc2NyaXB0aW9uIiBjbGFzcz0iUmljaFRleHQgVmFsaWRhdGVfUmVxdWlyZWQgJFFEYXRheyJEZXNjcmlwdGlvblNlcnZlckVycm9yIn0iIHRpdGxlPSJJbnRlcm5hbCBEZXNjcmlwdGlvbiIgcm93cz0iMTUiIGNvbHM9IiRDb25maWd7IlRpY2tldDo6RnJvbnRlbmQ6OlRleHRBcmVhTm90ZSJ9Ij4kUURhdGF7IkRlc2NyaXB0aW9uIn08L3RleHRhcmVhPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KPCEtLSBkdGw6YmxvY2s6U3VydmV5QWRkSW50ZXJuYWxEZXNjcmlwdGlvbiAtLT4KCjwhLS0gZHRsOmJsb2NrOlN1cnZleUFkZEdlbmVyaWNFcnJvciAtLT4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSIkUURhdGF7Ikl0ZW1OYW1lIn0iIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHA+JFRleHR7IlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIn08L3A+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CjwhLS0gZHRsOmJsb2NrOlN1cnZleUFkZEdlbmVyaWNFcnJvciAtLT4KCjwhLS0gZHRsOmJsb2NrOlN1cnZleUFkZEdlbmVyaWNTZXJ2ZXJFcnJvciAtLT4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSIkUURhdGF7Ikl0ZW1OYW1lIn0iIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHA+JFRleHR7IlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIn08L3A+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CjwhLS0gZHRsOmJsb2NrOlN1cnZleUFkZEdlbmVyaWNTZXJ2ZXJFcnJvciAtLT4KCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJQcmltYXJ5IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSIkVGV4dHsiU2F2ZSJ9Ij4kVGV4dHsiU2F2ZSJ9PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgoKICAgICAgICAgICAgPC9mb3JtPgoKICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Rpdj4KPCEtLSBkdGw6YmxvY2s6U3VydmV5QWRkIC0tPgoKPCEtLSBkdGw6YmxvY2s6U3VydmV5RWRpdCAtLT4KPGZvcm0gYWN0aW9uPSIkRW52eyJDR0lIYW5kbGUifSIgbWV0aG9kPSJwb3N0IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBuYW1lPSJTdXJ2ZXkiIGlkPSJTdXJ2ZXkiIGNsYXNzPSJWYWxpZGF0ZSBQcmV2ZW50TXVsdGlwbGVTdWJtaXRzIj4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IiRFbnZ7IkFjdGlvbiJ9IiAvPgogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iU3VydmV5U2F2ZSIgLz4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1cnZleUlEIiB2YWx1ZT0iJFFEYXRheyJTdXJ2ZXlJRCJ9IiAvPgoKICAgIDxkaXYgY2xhc3M9IkxheW91dFBvcHVwIEFSSUFSb2xlTWFpbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgPGgxPiRUZXh0eyJFZGl0IEdlbmVyYWwgSW5mbyJ9OiAkVGV4dHsiJENvbmZpZ3siU3VydmV5OjpIb29rIn0ifSRRRGF0YXsiU3VydmV5TnVtYmVyIn0gLSAkUURhdGF7IlRpdGxlIn08L2gxPgogICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJDYW5jZWxDbG9zZVBvcHVwIiBocmVmPSIjIj4kVGV4dHsiQ2FuY2VsICYgY2xvc2Ugd2luZG93In08L2E+CiAgICAgICAgICAgIDwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+JFRleHR7IkdlbmVyYWwgSW5mbyJ9PC9oMj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CgogICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iVGl0bGUiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+ICRUZXh0eyJUaXRsZSJ9OjwvbGFiZWw+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJUaXRsZSIgbmFtZT0iVGl0bGUiIHR5cGU9InRleHQiIGNsYXNzPSJXNzVwYyBWYWxpZGF0ZV9SZXF1aXJlZCAkUURhdGF7IlRpdGxlU2VydmVyRXJyb3IifSIgdmFsdWU9IiRRRGF0YXsiVGl0bGUifSIgLz4KICAgICAgICAgICAgICAgIDwvZGl2PgoKPCEtLSBkdGw6YmxvY2s6U3VydmV5RWRpdFJpY2hUZXh0IC0tPgokSW5jbHVkZXsiUmljaFRleHRFZGl0b3IifQo8IS0tIGR0bDpibG9jazpTdXJ2ZXlFZGl0UmljaFRleHQgLS0+Cgo8IS0tIGR0bDpibG9jazpTdXJ2ZXlFZGl0SW50cm9kdWN0aW9uIC0tPgogICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iSW50cm9kdWN0aW9uIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiAkVGV4dHsiSW50cm9kdWN0aW9uIn06PC9sYWJlbD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlJpY2hUZXh0RmllbGQiPgogICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBpZD0iSW50cm9kdWN0aW9uIiBuYW1lPSJJbnRyb2R1Y3Rpb24iIG5hbWU9IkludHJvZHVjdGlvbiIgY2xhc3M9IlJpY2hUZXh0IFZhbGlkYXRlX1JlcXVpcmVkICRRRGF0YXsiSW50cm9kdWN0aW9uU2VydmVyRXJyb3IifSIgdGl0bGU9IlN1cnZleSBJbnRyb2R1Y3Rpb24iIHJvd3M9IjE1IiBjb2xzPSIkQ29uZmlneyJUaWNrZXQ6OkZyb250ZW5kOjpUZXh0QXJlYU5vdGUifSI+JERhdGF7IkludHJvZHVjdGlvbiJ9PC90ZXh0YXJlYT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2Pgo8IS0tIGR0bDpibG9jazpTdXJ2ZXlFZGl0SW50cm9kdWN0aW9uIC0tPgoKICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9Ik5vdGlmaWNhdGlvblNlbmRlciI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gJFRleHR7IlNlbmRlciJ9OjwvbGFiZWw+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJOb3RpZmljYXRpb25TZW5kZXIiIG5hbWU9Ik5vdGlmaWNhdGlvblNlbmRlciIgdHlwZT0idGV4dCIgY2xhc3M9Ilc3NXBjIFZhbGlkYXRlX1JlcXVpcmVkICRRRGF0YXsiTm90aWZpY2F0aW9uU2VuZGVyU2VydmVyRXJyb3IifSIgdmFsdWU9IiRRRGF0YXsiTm90aWZpY2F0aW9uU2VuZGVyIn0iIC8+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJOb3RpZmljYXRpb25TdWJqZWN0Ij48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiAkVGV4dHsiU3ViamVjdCJ9OjwvbGFiZWw+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJOb3RpZmljYXRpb25TdWJqZWN0IiBuYW1lPSJOb3RpZmljYXRpb25TdWJqZWN0IiB0eXBlPSJ0ZXh0IiBjbGFzcz0iVzc1cGMgVmFsaWRhdGVfUmVxdWlyZWQgJFFEYXRheyJOb3RpZmljYXRpb25TdWJqZWN0U2VydmVyRXJyb3IifSIgdmFsdWU9IiRRRGF0YXsiTm90aWZpY2F0aW9uU3ViamVjdCJ9IiAvPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+Cgo8IS0tIGR0bDpibG9jazpTdXJ2ZXlFZGl0Tm90aWZpY2F0aW9uQm9keSAtLT4KICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9Ik5vdGlmaWNhdGlvbkJvZHkiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+ICRUZXh0eyJCb2R5In06PC9sYWJlbD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlJpY2hUZXh0RmllbGQiPgogICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBpZD0iTm90aWZpY2F0aW9uQm9keSIgbmFtZT0iTm90aWZpY2F0aW9uQm9keSIgY2xhc3M9IlJpY2hUZXh0IFZhbGlkYXRlX1JlcXVpcmVkICRRRGF0YXsiTm90aWZpY2F0aW9uQm9keVNlcnZlckVycm9yIn0iIHRpdGxlPSJOb3RpZmljYXRpb24gQm9keSIgcm93cz0iMTUiIGNvbHM9IiRDb25maWd7IlRpY2tldDo6RnJvbnRlbmQ6OlRleHRBcmVhTm90ZSJ9Ij4kUURhdGF7Ik5vdGlmaWNhdGlvbkJvZHkifTwvdGV4dGFyZWE+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KPCEtLSBkdGw6YmxvY2s6U3VydmV5RWRpdE5vdGlmaWNhdGlvbkJvZHkgLS0+CgogICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iUXVldWVzIj4kVGV4dHsiUXVldWVzIn06PC9sYWJlbD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAkRGF0YXsiUXVldWVTdHJpbmcifQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+Cgo8IS0tIGR0bDpibG9jazpTdXJ2ZXlFZGl0SW50ZXJuYWxEZXNjcmlwdGlvbiAtLT4KICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IkRlc2NyaXB0aW9uIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiAkVGV4dHsiSW50ZXJuYWwgRGVzY3JpcHRpb24ifTo8L2xhYmVsPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iUmljaFRleHRGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIGlkPSJEZXNjcmlwdGlvbiIgbmFtZT0iRGVzY3JpcHRpb24iIGNsYXNzPSJSaWNoVGV4dCBWYWxpZGF0ZV9SZXF1aXJlZCAkUURhdGF7IkRlc2NyaXB0aW9uU2VydmVyRXJyb3IifSIgdGl0bGU9IkludGVybmFsIERlc2NyaXB0aW9uIiByb3dzPSIxNSIgY29scz0iJENvbmZpZ3siVGlja2V0OjpGcm9udGVuZDo6VGV4dEFyZWFOb3RlIn0iPiRRRGF0YXsiRGVzY3JpcHRpb24ifTwvdGV4dGFyZWE+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KPCEtLSBkdGw6YmxvY2s6U3VydmV5RWRpdEludGVybmFsRGVzY3JpcHRpb24gLS0+Cgo8IS0tIGR0bDpibG9jazpTdXJ2ZXlFZGl0R2VuZXJpY0Vycm9yIC0tPgogICAgICAgICAgICAgICAgPGRpdiBpZD0iJFFEYXRheyJJdGVtTmFtZSJ9IiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgPHA+JFRleHR7IlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIn08L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KPCEtLSBkdGw6YmxvY2s6U3VydmV5RWRpdEdlbmVyaWNFcnJvciAtLT4KCjwhLS0gZHRsOmJsb2NrOlN1cnZleUVkaXRTZXJ2ZXJFcnJvciAtLT4KICAgICAgICAgICAgICAgIDxkaXYgaWQ9IiRRRGF0YXsiSXRlbU5hbWUifSIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgIDxwPiRUZXh0eyJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiJ9PC9wPgogICAgICAgICAgICAgICAgPC9kaXY+CjwhLS0gZHRsOmJsb2NrOlN1cnZleUVkaXRTZXJ2ZXJFcnJvciAtLT4KCiAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iRm9vdGVyIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iUHJpbWFyeSIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iJFRleHR7IlNhdmUifSI+JFRleHR7IlNhdmUifTwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZm9ybT4KPCEtLSBkdGw6YmxvY2s6U3VydmV5RWRpdCAtLT4KCjwhLS0gZHRsOmJsb2NrOlN0YXRzIC0tPgo8ZGl2IGNsYXNzPSJMYXlvdXRQb3B1cCBBUklBUm9sZU1haW4iPgogICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICA8aDE+JFRleHR7IlN0YXRzIE92ZXJ2aWV3IG9mIn0gOiAkVGV4dHsiJENvbmZpZ3siU3VydmV5OjpIb29rIn0ifSREYXRheyJTdXJ2ZXlOdW1iZXIifSAtICREYXRheyJUaXRsZSJ9IDwvaDE+CiAgICAgICAgPHA+CiAgICAgICAgICAgIDxhIGNsYXNzPSJDYW5jZWxDbG9zZVBvcHVwIiBocmVmPSIjIj4kVGV4dHsiQ2FuY2VsICYgY2xvc2Ugd2luZG93In08L2E+CiAgICAgICAgPC9wPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KCiAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgPGgyPjwvaDI+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIFNwYWNpbmdUb3AgU3BhY2luZ0JvdHRvbU1lZGl1bSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+JFRleHR7IlJlcXVlc3RzIFRhYmxlIn08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSI+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFRleHR7IlNlbmQgVGltZSJ9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRUZXh0eyJWb3RlIFRpbWUifQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkVGV4dHsiVGlja2V0In0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFRleHR7IkRldGFpbHMifQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KPCEtLSBkdGw6YmxvY2s6U3RhdHNWb3RlIC0tPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFRpbWVMb25neyIkRGF0YXsiU2VuZFRpbWUifSJ9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRUaW1lTG9uZ3siJERhdGF7IlZvdGVUaW1lIn0ifQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iTGlua1pvb21WaWV3IEFzQmxvY2siIGhyZWY9IiRFbnZ7IkJhc2VsaW5rIn1BY3Rpb249QWdlbnRUaWNrZXRab29tO1RpY2tldElEPSRMUURhdGF7IlRpY2tldElEIn0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUURhdGF7IlRpY2tldE51bWJlciJ9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIkRW52eyJCYXNlbGluayJ9QWN0aW9uPSRFbnZ7IkFjdGlvbiJ9O1N1YmFjdGlvbj1TdGF0c0RldGFpbDtTdXJ2ZXlJRD0kUURhdGF7IlN1cnZleUlEIn07UmVxdWVzdElEPSRRRGF0YXsiUmVxdWVzdElEIn07VGlja2V0TnVtYmVyPSRRRGF0YXsiVGlja2V0TnVtYmVyIn0iIGNsYXNzPSJTZWVEZXRhaWxzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+U2VlIERldGFpbHM8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KPCEtLSBkdGw6YmxvY2s6U3RhdHNWb3RlIC0tPgogICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9IkZvb3RlciI+CiAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJDYW5jZWxDbG9zZVBvcHVwIFByaW1hcnkiIHZhbHVlPSIkVGV4dHsiQ2xvc2Ugd2luZG93In0iPiRUZXh0eyJDbG9zZSB3aW5kb3cifTwvYnV0dG9uPgogICAgPC9kaXY+CjwvZGl2Pgo8IS0tIGR0bDpqc19vbl9kb2N1bWVudF9jb21wbGV0ZSAtLT4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPi8vPCFbQ0RBVEFbCiAgICAkKCdhLkxpbmtab29tVmlldycpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24gKCkgewogICAgICAgIHdpbmRvdy5vcGVuZXIuQ29yZS5VSS5Qb3B1cC5GaXJlUG9wdXBFdmVudCgnVVJMJywgeyBVUkw6ICQodGhpcykuYXR0cignaHJlZicpfSk7CiAgICAgICAgd2luZG93LmNsb3NlKCk7CiAgICB9KTsKCiAgICAkKCdhLkhpc3RvcnlCYWNrJykuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoRXZlbnQpIHsKICAgICAgICBoaXN0b3J5LmJhY2soKTsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9KTsKICAgICQoJ2J1dHRvbi5IaXN0b3J5QmFjaycpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24gKEV2ZW50KSB7CiAgICAgICAgaGlzdG9yeS5iYWNrKCk7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSk7CgovL11dPjwvc2NyaXB0Pgo8IS0tIGR0bDpqc19vbl9kb2N1bWVudF9jb21wbGV0ZSAtLT4KCjwhLS0gZHRsOmJsb2NrOlN0YXRzIC0tPgoKPCEtLSBkdGw6YmxvY2s6U3RhdHNEZXRhaWwgLS0+CjxkaXYgY2xhc3M9IkxheW91dFBvcHVwIEFSSUFSb2xlTWFpbiI+CiAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgIDxoMT4kVGV4dHsiU3VydmV5IFN0YXQgRGV0YWlscyJ9IDogJFRleHR7IlRpY2tldCJ9IyREYXRheyJUaWNrZXROdW1iZXIifSA6ICRDb25maWd7IlN1cnZleTo6SG9vayJ9JERhdGF7IlN1cnZleU51bWJlciJ9IC0gJERhdGF7IlRpdGxlIn0gOiAgPC9oMT4KICAgICAgICA8cD4KICAgICAgICAgICAgPGEgY2xhc3M9IkNhbmNlbENsb3NlUG9wdXAiIGhyZWY9IiMiPiRUZXh0eyJDYW5jZWwgJiBjbG9zZSB3aW5kb3cifTwvYT4KICAgICAgICAgICAgJFRleHR7Im9yIn0KICAgICAgICAgICAgPGEgY2xhc3M9Ikhpc3RvcnlCYWNrIiBocmVmPSIjIj4kVGV4dHsiZ28gYmFjayB0byBzdGF0cyBvdmVydmlldyJ9PC9hPgogICAgICAgIDwvcD4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CgogICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgIDxoMj48L2gyPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSBTcGFjaW5nVG9wIFNwYWNpbmdCb3R0b21NZWRpdW0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPiRUZXh0eyJEZXRhaWxzIn08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CjwhLS0gZHRsOmJsb2NrOlN0YXRzRGV0YWlsUXVlc3Rpb24gLS0+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSIkRGF0YXsiQ2xhc3MifSI+JFFEYXRheyJSZXF1aXJlZFRleHQifSRRRGF0YXsiUXVlc3Rpb24ifTo8L2xhYmVsPgo8IS0tIGR0bDpibG9jazpTdGF0c0RldGFpbEFuc3dlciAtLT4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCAkRGF0YXsiQ2xhc3MifSI+CiAgICAgICAgICAgICAgICAgICAgICAgICREYXRheyJBbnN3ZXIifQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KPCEtLSBkdGw6YmxvY2s6U3RhdHNEZXRhaWxBbnN3ZXIgLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2Pgo8IS0tIGR0bDpibG9jazpTdGF0c0RldGFpbFF1ZXN0aW9uIC0tPgogICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9IkZvb3RlciI+CiAgICAgICAgPGZvcm0gYWN0aW9uPSIkRW52eyJDR0lIYW5kbGUifSIgbWV0aG9kPSJwb3N0Ij4KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iJEVudnsiQWN0aW9uIn0iIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlN0YXRzIiAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdXJ2ZXlJRCIgdmFsdWU9IiRRRGF0YXsiU3VydmV5SUQifSIgLz4KICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJQcmltYXJ5IiB2YWx1ZT0iJFRleHR7IkdvIEJhY2sifSI+JFRleHR7IkdvIEJhY2sifTwvYnV0dG9uPgogICAgICAgIDwvZm9ybT4KICAgIDwvZGl2Pgo8L2Rpdj4KPCEtLSBkdGw6anNfb25fZG9jdW1lbnRfY29tcGxldGUgLS0+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4vLzwhW0NEQVRBWwogICAgJCgnYS5IaXN0b3J5QmFjaycpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24gKEV2ZW50KSB7CiAgICAgICAgaGlzdG9yeS5iYWNrKCk7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSk7Ci8vXV0+PC9zY3JpcHQ+CjwhLS0gZHRsOmpzX29uX2RvY3VtZW50X2NvbXBsZXRlIC0tPgo8IS0tIGR0bDpibG9jazpTdGF0c0RldGFpbCAtLT4K
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjwhLS0gZHRsOmJsb2NrOlN1cnZleVpvb20gLS0+CjxkaXYgY2xhc3M9Ik1haW5Cb3ggQXJpYVJvbGVNYWluIExheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyRmlyc3QiPgogICAgPGRpdiBjbGFzcz0iQ2xlYXJMZWZ0Ij48L2Rpdj4KICAgIDxkaXYgY2xhc3M9IkhlYWRsaW5lIj4KICAgICAgICA8aDE+JFRleHR7IiRDb25maWd7IlN1cnZleTo6SG9vayJ9In0kUURhdGF7IlN1cnZleU51bWJlciJ9IC0gJFFEYXRheyJUaXRsZSJ9PC9oMT4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9IkxheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyTGFzdCI+CiAgICAgICAgPGRpdiBjbGFzcz0iU2lkZWJhckNvbHVtbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDxoMj4kVGV4dHsiU3VydmV5IEluZm9ybWF0aW9uIn08L2gyPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSBGaXhlZExhYmVsU21hbGwiPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPiRUZXh0eyJDcmVhdGVkIn06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj4kVGltZVNob3J0eyIkUURhdGF7IkNyZWF0ZVRpbWUifSJ9PC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+JFRleHR7IkNyZWF0ZWQgYnkifTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiPiRRRGF0YXsiQ3JlYXRlVXNlckZpcnN0bmFtZSJ9ICRRRGF0YXsiQ3JlYXRlVXNlckxhc3RuYW1lIn08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD4kVGV4dHsiQ2hhbmdlZCJ9OjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJWYWx1ZSIgPiRUaW1lU2hvcnR7IiRRRGF0YXsiQ2hhbmdlVGltZSJ9In08L3A+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+JFRleHR7IkNoYW5nZWQgYnkifTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiPiRRRGF0YXsiQ2hhbmdlVXNlckZpcnN0bmFtZSJ9ICRRRGF0YXsiQ2hhbmdlVXNlckxhc3RuYW1lIn08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD4kVGV4dHsiU3RhdHVzIn06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj4kVGV4dHsiJERhdGF7IlN0YXR1cyJ9In08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgoKICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSBGaXhlZExhYmVsU21hbGwiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+JFRleHR7IlNlbnQgcmVxdWVzdHMifTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iVmFsdWUiPiRRRGF0YXsiU2VuZFJlcXVlc3QifTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPiRUZXh0eyJSZWNlaXZlZCBzdXJ2ZXlzIn06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IlZhbHVlIj4kUURhdGF7IlJlcXVlc3RDb21wbGV0ZSJ9PC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudENvbHVtbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRyb2xSb3ciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQWRkaXRpb25hbEluZm9ybWF0aW9uIj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQWN0aW9uUm93Ij4KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iQWN0aW9ucyI+CiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIiIGNsYXNzPSJIaXN0b3J5QmFjayI+JFRleHR7IkJhY2sifTwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iJEVudnsiQmFzZWxpbmsifUFjdGlvbj1BZ2VudFN1cnZleTtTdWJhY3Rpb249U3VydmV5RWRpdDtTdXJ2ZXlJRD0kTFFEYXRheyJTdXJ2ZXlJRCJ9IiBjbGFzcz0iQXNQb3B1cCI+JFRleHR7IkVkaXQgR2VuZXJhbCBJbmZvIn08L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiRFbnZ7IkJhc2VsaW5rIn1BY3Rpb249QWdlbnRTdXJ2ZXlFZGl0UXVlc3Rpb25zO1N1cnZleUlEPSRMUURhdGF7IlN1cnZleUlEIn0iIGNsYXNzPSJBc1BvcHVwIj4kVGV4dHsiRWRpdCBRdWVzdGlvbnMifTwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgo8IS0tIGR0bDpibG9jazpTdXJ2ZXlFZGl0U3RhdHNEZXRhaWxzIC0tPgogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iJEVudnsiQmFzZWxpbmsifUFjdGlvbj1BZ2VudFN1cnZleTtTdWJhY3Rpb249U3RhdHM7U3VydmV5SUQ9JExRRGF0YXsiU3VydmV5SUQifSIgY2xhc3M9IkFzUG9wdXAiPiRUZXh0eyJTdGF0cyBEZXRhaWxzIn08L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KPCEtLSBkdGw6YmxvY2s6U3VydmV5RWRpdFN0YXRzRGV0YWlscyAtLT4KPCEtLSBkdGw6YmxvY2s6U3VydmV5U3RhdHVzIC0tPgogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSIkRW52eyJDR0lIYW5kbGUifSIgbWV0aG9kPSJwb3N0IiBjbGFzcz0iQWN0aW9uRm9ybSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJBZ2VudFN1cnZleSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlN1cnZleVN0YXR1cyIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1cnZleUlEIiB2YWx1ZT0iJFFEYXRheyJTdXJ2ZXlJRCJ9IiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJERhdGF7Ik5ld1N0YXR1c1N0ciJ9CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgo8IS0tIGR0bDpibG9jazpTdXJ2ZXlTdGF0dXMgLS0+CiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSBTcGFjaW5nVG9wIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgPGgyPiRUZXh0eyJTdXJ2ZXkgRGV0YWlscyJ9PC9oMj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UgRml4ZWRMYWJlbFNtYWxsIj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD4kVGV4dHsiTnVtYmVyIn06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPiRRRGF0YXsiU3VydmV5TnVtYmVyIn08L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPiRUZXh0eyJUaXRsZSJ9OjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4kUURhdGF7IlRpdGxlIiwiODAifTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+JFRleHR7IlF1ZXVlcyJ9OjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIiB0aXRsZT0iJFFEYXRheyJRdWV1ZUxpc3RTdHJpbmcifSI+JFFEYXRheyJRdWV1ZUxpc3RTdHJpbmciLCI4MCJ9ICRRRGF0YXsiTm9RdWV1ZU1lc3NhZ2UifTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+Cgo8IS0tIGR0bDpibG9jazpTdXJ2ZXlCbG9jayAtLT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIFNwYWNpbmdUb3AgVG9nZ2xlIiBpZD0iJERhdGF7IlN1cnZleUZpZWxkIn1CbG9jayI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldEFjdGlvbiBUb2dnbGUiPjxhIGhyZWY9IiMiIHRpdGxlPSIkVGV4dHsiU2hvdyBvciBoaWRlIHRoZSBjb250ZW50In0iPjxzcGFuPjwvc3Bhbj48L2E+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGgyPiRUZXh0eyIkRGF0YXsiVGl0bGUifSJ9PC9oMj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CjwhLS0gZHRsOmJsb2NrOkJvZHlIVE1MIC0tPgogICAgICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpZnJhbWUgd2lkdGg9IjEwMCUiIGZyYW1lYm9yZGVyPSIwIiBpZD0iSWZyYW1lU3VydmV5JFFEYXRheyJTdXJ2ZXlGaWVsZCJ9IiBvbmxvYWQ9IlN1cnZleS5BZ2VudC5TdXJ2ZXlab29tLklmcmFtZUF1dG9IZWlnaHQoJCgnI0lmcmFtZVN1cnZleSRRRGF0YXsiU3VydmV5RmllbGQifScpKTsiIHNyYz0iJEVudnsiQmFzZWxpbmsifUFjdGlvbj1BZ2VudFN1cnZleVpvb207U3ViYWN0aW9uPUhUTUxWaWV3O1N1cnZleUlEPSRRRGF0YXsiU3VydmV5SUQifTtTdXJ2ZXlGaWVsZD0kUURhdGF7IlN1cnZleUZpZWxkIn07Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPC9pZnJhbWU+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CjwhLS0gZHRsOmJsb2NrOkJvZHlIVE1MIC0tPgo8IS0tIGR0bDpibG9jazpCb2R5UGxhaW4gLS0+CiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0PgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9IlRleHRhcmVhIj4kVGV4dHsiJERhdGF7IkxhYmVsIn0ifTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCBUZXh0YXJlYSI+JFFEYXRheyJDb250ZW50In08L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CjwhLS0gZHRsOmJsb2NrOkJvZHlQbGFpbiAtLT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KPCEtLSBkdGw6YmxvY2s6U3VydmV5QmxvY2sgLS0+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSBTcGFjaW5nVG9wIFNwYWNpbmdCb3R0b21NZWRpdW0iPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRBY3Rpb24gVG9nZ2xlIj48YSBocmVmPSIjIiB0aXRsZT0iJFRleHR7IlNob3cgb3IgaGlkZSB0aGUgY29udGVudCJ9Ij48c3Bhbj48L3NwYW4+PC9hPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxoMj4kVGV4dHsiU3VydmV5IFJlc3VsdHMgR3JhcGgifTwvaDI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgoKPCEtLSBkdGw6YmxvY2s6Tm9TdGF0UmVzdWx0cyAtLT4KICAgICAgICAgICAgICAgICAgICAkVGV4dHsiTm8gc3RhdCByZXN1bHRzLiJ9CjwhLS0gZHRsOmJsb2NrOk5vU3RhdFJlc3VsdHMgLS0+Cgo8IS0tIGR0bDpibG9jazpTdXJ2ZXlFZGl0U3RhdHMgLS0+Cgo8IS0tIGR0bDpibG9jazpTdXJ2ZXlFZGl0U3RhdHNRdWVzdGlvbiAtLT4KICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlNwYWNpbmdUb3AgU3VydmV5R3JhcGhzIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iUXVlc3Rpb24iIHRpdGxlPSIkRGF0YXsiUXVlc3Rpb24ifSIgPiRRRGF0YXsiUXVlc3Rpb24iLCIxMDAifTogPC9kaXY+CjwhLS0gZHRsOmJsb2NrOlN1cnZleUVkaXRTdGF0c0Fuc3dlciAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQW5zd2VyIj4kVGV4dHsiJERhdGF7IkFuc3dlciJ9In08L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlN1cnZleUdyYXBoIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlN1cnZleUdyYXBoQ29udGFpbmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJTdXJ2ZXlHcmFwaEJhciIgc3R5bGU9IndpZHRoOiRRRGF0YXsiQW5zd2VyUGVyY2VudFRhYmxlIn0lOyI+PC9kaXYgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iU3VydmV5R3JhcGhMZXllbmQiPiRRRGF0YXsiQW5zd2VyUGVyY2VudCJ9JTwvcD4KPCEtLSBkdGw6YmxvY2s6U3VydmV5RWRpdFN0YXRzQW5zd2VyIC0tPgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CjwhLS0gZHRsOmJsb2NrOlN1cnZleUVkaXRTdGF0c1F1ZXN0aW9uIC0tPgoKPCEtLSBkdGw6YmxvY2s6U3VydmV5RWRpdFN0YXRzIC0tPgoKICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Rpdj4KPCEtLSBkdGw6anNfb25fZG9jdW1lbnRfY29tcGxldGUgLS0+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4vLzwhW0NEQVRBWwogICAgJCgndWwuQWN0aW9ucyBhLkFzUG9wdXAnKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uIChFdmVudCkgewogICAgICAgIENvcmUuVUkuUG9wdXAuT3BlblBvcHVwICgkKHRoaXMpLmF0dHIoJ2hyZWYnKSwgJ0FjdGlvbicpOwogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0pOwoKICAgICQoJ3VsLkFjdGlvbnMgYS5IaXN0b3J5QmFjaycpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24gKEV2ZW50KSB7CiAgICAgICAgaGlzdG9yeS5iYWNrKCk7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSk7CgogICAgJCgnI05ld1N0YXR1cycpLmJpbmQoJ2NoYW5nZScsIGZ1bmN0aW9uIChFdmVudCkgewogICAgICAgICQodGhpcykuY2xvc2VzdCgnZm9ybScpLnN1Ym1pdCgpOwogICAgfSk7CgogICAgQ29yZS5Db25maWcuU2V0KCdTdXJ2ZXkuSFRNTFJpY2hUZXh0SGVpZ2h0RGVmYXVsdCcsICIkUURhdGF7IkhUTUxSaWNoVGV4dEhlaWdodERlZmF1bHQifSIpOwogICAgQ29yZS5Db25maWcuU2V0KCdTdXJ2ZXkuSFRNTFJpY2hUZXh0SGVpZ2h0TWF4JywgIiRRRGF0YXsiSFRNTFJpY2hUZXh0SGVpZ2h0TWF4In0iKTsKCi8vXV0+PC9zY3JpcHQ+CjwhLS0gZHRsOmpzX29uX2RvY3VtZW50X2NvbXBsZXRlIC0tPgo8IS0tIGR0bDpibG9jazpTdXJ2ZXlab29tIC0tPgo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KPCEtLSBkdGw6YmxvY2s6U3VydmV5RWRpdFF1ZXN0aW9ucyAtLT4KPGRpdiBjbGFzcz0iTGF5b3V0UG9wdXAgQVJJQVJvbGVNYWluIj4KICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgPGgxPiRUZXh0eyJFZGl0IFF1ZXN0aW9ucyJ9OiAkVGV4dHsiJENvbmZpZ3siU3VydmV5OjpIb29rIn0ifSRRRGF0YXsiU3VydmV5TnVtYmVyIn0gLSAkUURhdGF7IlRpdGxlIn08L2gxPgogICAgICAgIDxwPgogICAgICAgICAgICA8YSBjbGFzcz0iQ2FuY2VsQ2xvc2VQb3B1cCIgaHJlZj0iIyI+JFRleHR7IkNhbmNlbCAmIGNsb3NlIHdpbmRvdyJ9PC9hPgogICAgICAgIDwvcD4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CgogICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgPC9kaXY+Cgo8IS0tIGR0bDpibG9jazpTdXJ2ZXlBZGRRdWVzdGlvbiAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUgU3BhY2luZ1RvcCBTcGFjaW5nQm90dG9tTWVkaXVtIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj4kVGV4dHsiQWRkIFF1ZXN0aW9uIn08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CgogICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSIkRW52eyJDR0lIYW5kbGUifSIgbWV0aG9kPSJwb3N0IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBuYW1lPSJTdXJ2ZXlRdWVzdGlvbnMiIGlkPSJTdXJ2ZXlRdWVzdGlvbnMiIGNsYXNzPSJWYWxpZGF0ZSBQcmV2ZW50TXVsdGlwbGVTdWJtaXRzIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSIkRW52eyJBY3Rpb24ifSIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJRdWVzdGlvbkFkZCIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdXJ2ZXlJRCIgdmFsdWU9IiRRRGF0YXsiU3VydmV5SUQifSIgLz4KCiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UgU3BhY2luZ1RvcCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IlF1ZXN0aW9uIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiAkVGV4dHsiVHlwZSB0aGUgcXVlc3Rpb24ifTombmJzcDs8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9IlF1ZXN0aW9uIiBuYW1lPSJRdWVzdGlvbiIgY2xhc3M9IlZhbGlkYXRlX1JlcXVpcmVkICRRRGF0YXsiUXVlc3Rpb25FcnJvckNsYXNzIn0gIiBzaXplPSI2MCIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICREYXRheyJTZWxlY3Rpb25UeXBlIn0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJRdWVzdGlvbkVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+JFRleHR7IlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIn08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJRdWVzdGlvblNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+JFRleHR7IlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIn08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJBbnN3ZXJSZXF1aXJlZCI+ICRUZXh0eyJBbnN3ZXIgcmVxdWlyZWQifTombmJzcDs8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkRGF0YXsiQW5zd2VyUmVxdWlyZWRTZWxlY3QifQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIHZhbHVlPSIkVGV4dHsiQWRkIn0iPiRUZXh0eyJBZGQifTwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KPCEtLSBkdGw6YmxvY2s6U3VydmV5QWRkUXVlc3Rpb24gLS0+CgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSBTcGFjaW5nVG9wIFNwYWNpbmdCb3R0b21NZWRpdW0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPiRUZXh0eyJTdXJ2ZXkgUXVlc3Rpb25zIn08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSI+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFRleHR7IlF1ZXN0aW9uIn0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFRleHR7IlR5cGUifQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KPCEtLSBkdGw6YmxvY2s6U3VydmV5U3RhdHVzQ29sdW1uIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRUZXh0eyJTdGF0dXMifQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KPCEtLSBkdGw6YmxvY2s6U3VydmV5U3RhdHVzQ29sdW1uIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRUZXh0eyJVcCJ9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRUZXh0eyJEb3duIn0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CjwhLS0gZHRsOmJsb2NrOlN1cnZleURlbGV0ZUNvbHVtbiAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkVGV4dHsiRGVsZXRlIn0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CjwhLS0gZHRsOmJsb2NrOlN1cnZleURlbGV0ZUNvbHVtbiAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KPCEtLSBkdGw6YmxvY2s6U3VydmV5Tm9RdWVzdGlvbnNTYXZlZCAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IiRRRGF0YXsiQ29sdW1ucyJ9Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkVGV4dHsiTm8gcXVlc3Rpb25zIHNhdmVkIGZvciB0aGlzIHN1cnZleS4ifQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KPCEtLSBkdGw6YmxvY2s6U3VydmV5Tm9RdWVzdGlvbnNTYXZlZCAtLT4KCjwhLS0gZHRsOmJsb2NrOlN1cnZleVF1ZXN0aW9uc1NhdmVkIC0tPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iJEVudnsiQmFzZWxpbmsifUFjdGlvbj0kRW52eyJBY3Rpb24ifTtTdWJhY3Rpb249UXVlc3Rpb25FZGl0O1N1cnZleUlEPSRRRGF0YXsiU3VydmV5SUQifTtRdWVzdGlvbklEPSRRRGF0YXsiUXVlc3Rpb25JRCJ9IiA+JFFEYXRheyJRdWVzdGlvbiIsIjkwIn08L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRUZXh0eyIkRGF0YXsiVHlwZSJ9In0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iJEVudnsiQmFzZWxpbmsifUFjdGlvbj0kRW52eyJBY3Rpb24ifTtTdWJhY3Rpb249UXVlc3Rpb25VcDtTdXJ2ZXlJRD0kUURhdGF7IlN1cnZleUlEIn07UXVlc3Rpb25JRD0kUURhdGF7IlF1ZXN0aW9uSUQifSIgY2xhc3M9IkFycm93VXAkUURhdGF7IkNsYXNzVXAifSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPiRUZXh0eyJVcCJ9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iJEVudnsiQmFzZWxpbmsifUFjdGlvbj0kRW52eyJBY3Rpb24ifTtTdWJhY3Rpb249UXVlc3Rpb25Eb3duO1N1cnZleUlEPSRRRGF0YXsiU3VydmV5SUQifTtRdWVzdGlvbklEPSRRRGF0YXsiUXVlc3Rpb25JRCJ9IiBjbGFzcz0iQXJyb3dEb3duJFFEYXRheyJDbGFzc0Rvd24ifSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPiRUZXh0eyJEb3duIn08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KPCEtLSBkdGw6YmxvY2s6U3VydmV5UXVlc3Rpb25zU2F2ZWQgLS0+Cgo8IS0tIGR0bDpibG9jazpTdXJ2ZXlRdWVzdGlvbnNSb3cgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIkRW52eyJCYXNlbGluayJ9QWN0aW9uPSRFbnZ7IkFjdGlvbiJ9O1N1YmFjdGlvbj1RdWVzdGlvbkVkaXQ7U3VydmV5SUQ9JFFEYXRheyJTdXJ2ZXlJRCJ9O1F1ZXN0aW9uSUQ9JFFEYXRheyJRdWVzdGlvbklEIn0iIGNsYXNzPSIkUURhdGF7IkNsYXNzIn0iPiRRRGF0YXsiUXVlc3Rpb24iLCI3MCJ9PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkVGV4dHsiJERhdGF7IlR5cGUifSJ9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRUZXh0eyIkRGF0YXsiU3RhdHVzIn0ifQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIkRW52eyJCYXNlbGluayJ9QWN0aW9uPSRFbnZ7IkFjdGlvbiJ9O1N1YmFjdGlvbj1RdWVzdGlvblVwO1N1cnZleUlEPSRRRGF0YXsiU3VydmV5SUQifTtRdWVzdGlvbklEPSRRRGF0YXsiUXVlc3Rpb25JRCJ9IiBjbGFzcz0iQXJyb3dVcCRRRGF0YXsiQ2xhc3NVcCJ9Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+JFRleHR7IlVwIn08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIkRW52eyJCYXNlbGluayJ9QWN0aW9uPSRFbnZ7IkFjdGlvbiJ9O1N1YmFjdGlvbj1RdWVzdGlvbkRvd247U3VydmV5SUQ9JFFEYXRheyJTdXJ2ZXlJRCJ9O1F1ZXN0aW9uSUQ9JFFEYXRheyJRdWVzdGlvbklEIn0iIGNsYXNzPSJBcnJvd0Rvd24kUURhdGF7IkNsYXNzRG93biJ9Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+JFRleHR7IkRvd24ifTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgo8IS0tIGR0bDpibG9jazpTdXJ2ZXlRdWVzdGlvbnNEZWxldGVCdXR0b24gLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSIkRW52eyJDR0lIYW5kbGUifSIgbWV0aG9kPSJwb3N0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iJEVudnsiQWN0aW9uIn0iIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlF1ZXN0aW9uRGVsZXRlIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdXJ2ZXlJRCIgdmFsdWU9IiRRRGF0YXsiU3VydmV5SUQifSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iUXVlc3Rpb25JRCIgdmFsdWU9IiRRRGF0YXsiUXVlc3Rpb25JRCJ9IiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgY2xhc3M9IlRyYXNoQ2FuIiB2YWx1ZT0iJFRleHR7IkRlbGV0ZSJ9IiA+JFRleHR7IkRlbGV0ZSJ9PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KPCEtLSBkdGw6YmxvY2s6U3VydmV5UXVlc3Rpb25zRGVsZXRlQnV0dG9uIC0tPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgo8IS0tIGR0bDpibG9jazpTdXJ2ZXlRdWVzdGlvbnNSb3cgLS0+CiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iRm9vdGVyIj4KICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgY2xhc3M9IkNhbmNlbENsb3NlUG9wdXAgUHJpbWFyeSIgdmFsdWU9IiRUZXh0eyJDbG9zZSB3aW5kb3cifSI+JFRleHR7IkNsb3NlIHdpbmRvdyJ9PC9idXR0b24+CiAgICA8L2Rpdj4KPC9kaXY+CjwhLS0gZHRsOmpzX29uX2RvY3VtZW50X2NvbXBsZXRlIC0tPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ly88IVtDREFUQVsKICAgICQoJ2EuSGlzdG9yeUJhY2snKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uIChFdmVudCkgewogICAgICAgIGhpc3RvcnkuYmFjaygpOwogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0pOwoKICAgICQoJ2J1dHRvbi5DYW5jZWxDbG9zZVBvcHVwJykuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoRXZlbnQpIHsKICAgICAgICBoaXN0b3J5LmJhY2soKTsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9KTsKCi8vXV0+PC9zY3JpcHQ+CjwhLS0gZHRsOmpzX29uX2RvY3VtZW50X2NvbXBsZXRlIC0tPgo8IS0tIGR0bDpibG9jazpTdXJ2ZXlFZGl0UXVlc3Rpb25zIC0tPgoKCjwhLS0gZHRsOmJsb2NrOlF1ZXN0aW9uRWRpdCAtLT4KPGRpdiBjbGFzcz0iTGF5b3V0UG9wdXAgQVJJQVJvbGVNYWluIj4KICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgPGgxPiRUZXh0eyJFZGl0IFF1ZXN0aW9uIn06ICRUZXh0eyIkRGF0YXsiUXVlc3Rpb24ifSJ9PC9oMT4KICAgICAgICA8cD4KICAgICAgICAgICAgPGEgY2xhc3M9IkNhbmNlbENsb3NlUG9wdXAiIGhyZWY9IiMiPiRUZXh0eyJDYW5jZWwgJiBjbG9zZSB3aW5kb3cifTwvYT4KICAgICAgICAgICAgJFRleHR7Im9yIn0KICAgICAgICAgICAgPGEgaHJlZj0iJEVudnsiQmFzZWxpbmsifUFjdGlvbj0kRW52eyJBY3Rpb24ifTtTdXJ2ZXlJRD0kTFFEYXRheyJTdXJ2ZXlJRCJ9IiA+JFRleHR7ImdvIGJhY2sgdG8gcXVlc3Rpb25zIn08L2E+CiAgICAgICAgPC9wPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KCiAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIFNwYWNpbmdUb3AgU3BhY2luZ0JvdHRvbU1lZGl1bSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+JFRleHR7IkVkaXQgUXVlc3Rpb24ifTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KCiAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IiRFbnZ7IkNHSUhhbmRsZSJ9IiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5hbWU9IlN1cnZleVF1ZXN0aW9uIiBpZD0iU3VydmV5UXVlc3Rpb24iIGNsYXNzPSJWYWxpZGF0ZSBQcmV2ZW50TXVsdGlwbGVTdWJtaXRzIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSIkRW52eyJBY3Rpb24ifSIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJRdWVzdGlvblNhdmUiIC8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iUXVlc3Rpb25JRCIgdmFsdWU9IiRRRGF0YXsiUXVlc3Rpb25JRCJ9IiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1cnZleUlEIiB2YWx1ZT0iJFFEYXRheyJTdXJ2ZXlJRCJ9IiAvPgogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iUXVlc3Rpb24iIGNsYXNzPSJNYW5kYXRvcnkiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+ICRUZXh0eyJRdWVzdGlvbiJ9OjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSI2MCIgbmFtZT0iUXVlc3Rpb24iIGlkPSJRdWVzdGlvbiIgdmFsdWU9IiRRRGF0YXsiUXVlc3Rpb24ifSIgY2xhc3M9IlZhbGlkYXRlX1JlcXVpcmVkICRRRGF0YXsiUXVlc3Rpb25TZXJ2ZXJFcnJvciJ9IiAvPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlF1ZXN0aW9uRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4kVGV4dHsiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4ifTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlF1ZXN0aW9uU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4kVGV4dHsiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4ifTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iQW5zd2VyUmVxdWlyZWQiPiAkVGV4dHsiQW5zd2VyIHJlcXVpcmVkIn06Jm5ic3A7PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJERhdGF7IkFuc3dlclJlcXVpcmVkU2VsZWN0In0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3MgPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgdmFsdWU9IiRUZXh0eyJTYXZlIn0iPiRUZXh0eyJTYXZlIn08L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgIDwvZm9ybT4KCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSBTcGFjaW5nVG9wIFNwYWNpbmdCb3R0b21NZWRpdW0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPiRUZXh0eyJQb3NzaWJsZSBBbnN3ZXJzIEZvciJ9OiAkVGV4dHsiJERhdGF7IlR5cGUifSJ9PC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgo8IS0tIGR0bDpibG9jazpRdWVzdGlvbkVkaXRBZGRBbnN3ZXIgLS0+CiAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IiRFbnZ7IkNHSUhhbmRsZSJ9IiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5hbWU9IkFuc3dlckFkZCIgaWQ9IkFuc3dlckFkZCIgY2xhc3M9IlZhbGlkYXRlIFByZXZlbnRNdWx0aXBsZVN1Ym1pdHMiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IiRFbnZ7IkFjdGlvbiJ9IiAvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IkFuc3dlckFkZCIgLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJRdWVzdGlvbklEIiB2YWx1ZT0iJFFEYXRheyJRdWVzdGlvbklEIn0iIC8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3VydmV5SUQiIHZhbHVlPSIkUURhdGF7IlN1cnZleUlEIn0iIC8+CiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJBbnN3ZXIiIGNsYXNzPSJNYW5kYXRvcnkiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+ICRUZXh0eyJBZGQgQW5zd2VyIn06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJBbnN3ZXIiIG5hbWU9IkFuc3dlciIgc2l6ZT0iNjAiIGNsYXNzPSJWYWxpZGF0ZV9SZXF1aXJlZCAkUURhdGF7IkFuc3dlclNlcnZlckVycm9yIn0gIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgdmFsdWU9IiRUZXh0eyJBZGQifSI+JFRleHR7IkFkZCJ9PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iQW5zd2VyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPiRUZXh0eyJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiJ9PC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkFuc3dlclNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4kVGV4dHsiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4ifTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICA8L2Zvcm0+CjwhLS0gZHRsOmJsb2NrOlF1ZXN0aW9uRWRpdEFkZEFuc3dlciAtLT4KCjwhLS0gZHRsOmJsb2NrOlF1ZXN0aW9uRWRpdFRhYmxlIC0tPgogICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUiPgogICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPiAkVGV4dHsiRGVzY3JpcHRpb24ifSA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPiAkVGV4dHsiVXAifSA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPiAkVGV4dHsiRG93biJ9IDwvdGg+CjwhLS0gZHRsOmJsb2NrOlF1ZXN0aW9uRWRpdFRhYmxlRGVsZXRlIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPiAkVGV4dHsiRGVsZXRlIn0gPC90aD4KPCEtLSBkdGw6YmxvY2s6UXVlc3Rpb25FZGl0VGFibGVEZWxldGUgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICA8dGJvZHk+CjwhLS0gZHRsOmJsb2NrOk5vQW5zd2Vyc1NhdmVkIC0tPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iJFFEYXRheyJDb2x1bW5zIn0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRUZXh0eyJObyBxdWVzdGlvbnMgc2F2ZWQgZm9yIHRoaXMgc3VydmV5LiJ9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgo8IS0tIGR0bDpibG9jazpOb0Fuc3dlcnNTYXZlZCAtLT4KCjwhLS0gZHRsOmJsb2NrOlF1ZXN0aW9uRWRpdFJhZGlvIC0tPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iJEVudnsiQmFzZWxpbmsifUFjdGlvbj0kRW52eyJBY3Rpb24ifTtTdWJhY3Rpb249QW5zd2VyRWRpdDtTdXJ2ZXlJRD0kUURhdGF7IlN1cnZleUlEIn07UXVlc3Rpb25JRD0kUURhdGF7IlF1ZXN0aW9uSUQifTtBbnN3ZXJJRD0kUURhdGF7IkFuc3dlcklEIn0iPiAkUURhdGF7IkFuc3dlciIsIjkwIn0gPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIkRW52eyJCYXNlbGluayJ9QWN0aW9uPSRFbnZ7IkFjdGlvbiJ9O1N1YmFjdGlvbj1BbnN3ZXJVcDtTdXJ2ZXlJRD0kUURhdGF7IlN1cnZleUlEIn07UXVlc3Rpb25JRD0kUURhdGF7IlF1ZXN0aW9uSUQifTtBbnN3ZXJJRD0kUURhdGF7IkFuc3dlcklEIn0iIGNsYXNzPSJBcnJvd1VwJFFEYXRheyJDbGFzc1VwIn0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4kVGV4dHsiVXAifTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiRFbnZ7IkJhc2VsaW5rIn1BY3Rpb249JEVudnsiQWN0aW9uIn07U3ViYWN0aW9uPUFuc3dlckRvd247U3VydmV5SUQ9JFFEYXRheyJTdXJ2ZXlJRCJ9O1F1ZXN0aW9uSUQ9JFFEYXRheyJRdWVzdGlvbklEIn07QW5zd2VySUQ9JFFEYXRheyJBbnN3ZXJJRCJ9IiBjbGFzcz0iQXJyb3dEb3duJFFEYXRheyJDbGFzc0Rvd24ifSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPiRUZXh0eyJEb3duIn08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KPCEtLSBkdGw6YmxvY2s6UXVlc3Rpb25FZGl0UmFkaW9EZWxldGUgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSIkRW52eyJDR0lIYW5kbGUifSIgbWV0aG9kPSJwb3N0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iJEVudnsiQWN0aW9uIn0iIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IkFuc3dlckRlbGV0ZSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3VydmV5SUQiIHZhbHVlPSIkUURhdGF7IlN1cnZleUlEIn0iIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlF1ZXN0aW9uSUQiIHZhbHVlPSIkUURhdGF7IlF1ZXN0aW9uSUQifSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQW5zd2VySUQiIHZhbHVlPSIkUURhdGF7IkFuc3dlcklEIn0iIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0iVHJhc2hDYW4iIHZhbHVlPSIkVGV4dHsiRGVsZXRlIn0iPiRUZXh0eyJEZWxldGUifTwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CjwhLS0gZHRsOmJsb2NrOlF1ZXN0aW9uRWRpdFJhZGlvRGVsZXRlIC0tPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgo8IS0tIGR0bDpibG9jazpRdWVzdGlvbkVkaXRSYWRpbyAtLT4KCjwhLS0gZHRsOmJsb2NrOlF1ZXN0aW9uRWRpdENoZWNrYm94IC0tPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iJEVudnsiQmFzZWxpbmsifUFjdGlvbj0kRW52eyJBY3Rpb24ifTtTdWJhY3Rpb249QW5zd2VyRWRpdDtTdXJ2ZXlJRD0kUURhdGF7IlN1cnZleUlEIn07UXVlc3Rpb25JRD0kUURhdGF7IlF1ZXN0aW9uSUQifTtBbnN3ZXJJRD0kUURhdGF7IkFuc3dlcklEIn0iPiRRRGF0YXsiQW5zd2VyIn08L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiRFbnZ7IkJhc2VsaW5rIn1BY3Rpb249JEVudnsiQWN0aW9uIn07U3ViYWN0aW9uPUFuc3dlclVwO1N1cnZleUlEPSRRRGF0YXsiU3VydmV5SUQifTtRdWVzdGlvbklEPSRRRGF0YXsiUXVlc3Rpb25JRCJ9O0Fuc3dlcklEPSRRRGF0YXsiQW5zd2VySUQifSIgY2xhc3M9IkFycm93VXAkUURhdGF7IkNsYXNzVXAifSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPiRUZXh0eyJVcCJ9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iJEVudnsiQmFzZWxpbmsifUFjdGlvbj0kRW52eyJBY3Rpb24ifTtTdWJhY3Rpb249QW5zd2VyRG93bjtTdXJ2ZXlJRD0kUURhdGF7IlN1cnZleUlEIn07UXVlc3Rpb25JRD0kUURhdGF7IlF1ZXN0aW9uSUQifTtBbnN3ZXJJRD0kUURhdGF7IkFuc3dlcklEIn0iIGNsYXNzPSJBcnJvd0Rvd24kUURhdGF7IkNsYXNzRG93biJ9Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+JFRleHR7IkRvd24ifTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgo8IS0tIGR0bDpibG9jazpRdWVzdGlvbkVkaXRDaGVja2JveERlbGV0ZSAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IiRFbnZ7IkNHSUhhbmRsZSJ9IiBtZXRob2Q9InBvc3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSIkRW52eyJBY3Rpb24ifSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iQW5zd2VyRGVsZXRlIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdXJ2ZXlJRCIgdmFsdWU9IiRRRGF0YXsiU3VydmV5SUQifSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iUXVlc3Rpb25JRCIgdmFsdWU9IiRRRGF0YXsiUXVlc3Rpb25JRCJ9IiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBbnN3ZXJJRCIgdmFsdWU9IiRRRGF0YXsiQW5zd2VySUQifSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIHZhbHVlPSIkVGV4dHsiRGVsZXRlIn0iIGNsYXNzPSJUcmFzaENhbiIgPiAkVGV4dHsiRGVsZXRlIn0gPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KPCEtLSBkdGw6YmxvY2s6UXVlc3Rpb25FZGl0Q2hlY2tib3hEZWxldGUgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CjwhLS0gZHRsOmJsb2NrOlF1ZXN0aW9uRWRpdENoZWNrYm94IC0tPgoKPCEtLSBkdGw6YmxvY2s6UXVlc3Rpb25FZGl0WWVzbm8gLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4gJFRleHR7IlllcyJ9IDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PGEgaHJlZj0iIiBjbGFzcz0iQXJyb3dVcERpc2FibGVkIj48c3Bhbj4kVGV4dHsiVXAifTwvc3Bhbj48L2E+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48YSBocmVmPSIiIGNsYXNzPSJBcnJvd0Rvd25EaXNhYmxlZCI+PHNwYW4+JFRleHR7IkRvd24ifTwvc3Bhbj48L2E+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiAkVGV4dHsiTm8ifSA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxhIGhyZWY9IiIgY2xhc3M9IkFycm93VXBEaXNhYmxlZCIgPjxzcGFuPiRUZXh0eyJVcCJ9PC9zcGFuPjwvYT48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxhIGhyZWY9IiIgY2xhc3M9IkFycm93RG93bkRpc2FibGVkIiA+PHNwYW4+JFRleHR7IkRvd24ifTwvc3Bhbj48L2E+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KPCEtLSBkdGw6YmxvY2s6UXVlc3Rpb25FZGl0WWVzbm8gLS0+CgogICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICA8L3RhYmxlPgo8IS0tIGR0bDpibG9jazpRdWVzdGlvbkVkaXRUYWJsZSAtLT4KCgo8IS0tIGR0bDpibG9jazpRdWVzdGlvbkVkaXRUZXh0QXJlYSAtLT4KICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICRUZXh0eyJUaGlzIGRvZXNuJ3QgaGF2ZSBzZXZlcmFsIGFuc3dlcnMsIGEgdGV4dGFyZWEgd2lsbCBiZSBkaXNwbGF5ZWQuIn0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CjwhLS0gZHRsOmJsb2NrOlF1ZXN0aW9uRWRpdFRleHRBcmVhIC0tPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iRm9vdGVyIj4KICAgICAgICA8Zm9ybSBhY3Rpb249IiRFbnZ7IkNHSUhhbmRsZSJ9IiBtZXRob2Q9InBvc3QiPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSIkRW52eyJBY3Rpb24ifSIgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3VydmV5SUQiIHZhbHVlPSIkUURhdGF7IlN1cnZleUlEIn0iIC8+CiAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0iUHJpbWFyeSIgdmFsdWU9IiRUZXh0eyJHbyBCYWNrIn0iPiRUZXh0eyJHbyBCYWNrIn08L2J1dHRvbj4KICAgICAgICA8L2Zvcm0+CiAgICA8L2Rpdj4KPC9kaXY+CjwhLS0gZHRsOmJsb2NrOlF1ZXN0aW9uRWRpdCAtLT4KCjwhLS0gZHRsOmJsb2NrOkFuc3dlckVkaXQgLS0+Cjxmb3JtIGFjdGlvbj0iJEVudnsiQ0dJSGFuZGxlIn0iIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbmFtZT0iQW5zd2VyRWRpdCIgaWQ9IkFuc3dlckVkaXQiIGNsYXNzPSJWYWxpZGF0ZSBQcmV2ZW50TXVsdGlwbGVTdWJtaXRzIj4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IiRFbnZ7IkFjdGlvbiJ9IiAvPgogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iQW5zd2VyU2F2ZSIgLz4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFuc3dlcklEIiB2YWx1ZT0iJFFEYXRheyJBbnN3ZXJJRCJ9IiAvPgogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iUXVlc3Rpb25JRCIgdmFsdWU9IiRRRGF0YXsiUXVlc3Rpb25JRCJ9IiAvPgogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3VydmV5SUQiIHZhbHVlPSIkUURhdGF7IlN1cnZleUlEIn0iIC8+CiAgICA8ZGl2IGNsYXNzPSJMYXlvdXRQb3B1cCBBUklBUm9sZU1haW4iPgoKICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICA8aDE+JFRleHR7IkVkaXQgQW5zd2VyIn06ICRRRGF0YXsiQW5zd2VyIn0gPC9oMT4KICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICA8YSBjbGFzcz0iQ2FuY2VsQ2xvc2VQb3B1cCIgaHJlZj0iIyI+JFRleHR7IkNhbmNlbCAmIGNsb3NlIHdpbmRvdyJ9PC9hPgogICAgICAgICAgICAgICAgJFRleHR7Im9yIn0KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiRFbnZ7IkJhc2VsaW5rIn1BY3Rpb249JEVudnsiQWN0aW9uIn07U3ViYWN0aW9uPVF1ZXN0aW9uRWRpdDtRdWVzdGlvbklEPSRMUURhdGF7IlF1ZXN0aW9uSUQifTtTdXJ2ZXlJRD0kTFFEYXRheyJTdXJ2ZXlJRCJ9Ij4kVGV4dHsiZ28gYmFjayB0byBlZGl0IHF1ZXN0aW9uIn08L2E+CiAgICAgICAgICAgIDwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUgU3BhY2luZ1RvcCBTcGFjaW5nQm90dG9tTWVkaXVtIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgPGgyPiRUZXh0eyJFZGl0IEFuc3dlciJ9PC9oMj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CgogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iQW5zd2VyIiBjbGFzcz0iTWFuZGF0b3J5Ij48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiAkVGV4dHsiQW5zd2VyIn06PC9sYWJlbD4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSI2MCIgaWQ9IkFuc3dlciIgbmFtZT0iQW5zd2VyIiB2YWx1ZT0iJFFEYXRheyJBbnN3ZXIifSIgY2xhc3M9IlZhbGlkYXRlX1JlcXVpcmVkICRRRGF0YXsiQW5zd2VyU2VydmVyRXJyb3IifSIvPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkFuc3dlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4kVGV4dHsiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4ifTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJBbnN3ZXJTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+JFRleHR7IlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIn08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iRm9vdGVyIj4KICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJQcmltYXJ5IiB2YWx1ZT0iJFRleHR7IlNhdmUifSI+JFRleHR7IlNhdmUifTwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZm9ybT4KPCEtLSBkdGw6YmxvY2s6QW5zd2VyRWRpdCAtLT4K
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjwhLS0gZHRsOmJsb2NrOlB1YmxpY1N1cnZleSAtLT4KPGRpdiBjbGFzcz0iQ29udGVudCBBUklBUm9sZU1haW4iIGlkPSJNYWluQm94Ij4KICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgPGgyPiRUZXh0eyJTdXJ2ZXkifTogJFFEYXRheyJUaXRsZSJ9PC9oMj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9IlN1cnZleUJsb2NrIj4KICAgICAgICA8ZGl2IGNsYXNzPSJTdXJ2ZXlCbG9ja0hlYWRlciI+CiAgICAgICAgICAgICRUZXh0eyJJbnRyb2R1Y3Rpb24ifQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAkRGF0YXsiSW50cm9kdWN0aW9uIn0KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICA8Zm9ybSBhY3Rpb249IiRFbnZ7IkNHSUhhbmRsZSJ9IiBtZXRob2Q9InBvc3QiPgogICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IiRFbnZ7IkFjdGlvbiJ9IiAvPgogICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlB1YmxpY1N1cnZleVZvdGUiIC8+CiAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iUHVibGljU3VydmV5S2V5IiB2YWx1ZT0iJFFEYXRheyJQdWJsaWNTdXJ2ZXlLZXkifSIgLz4KICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlN1cnZleSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IlN1cnZleUJsb2NrSGVhZGVyIj4KICAgICAgICAgICAgICAgICRUZXh0eyJQbGVhc2UgYW5zd2VyIHRoZXNlIHF1ZXN0aW9ucyJ9OgogICAgICAgICAgICA8L2Rpdj4KCjwhLS0gZHRsOmJsb2NrOlB1YmxpY1F1ZXN0aW9ucyAtLT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iUXVlc3Rpb25Db250YWluZXIiPgo8IS0tIGR0bDpibG9jazpQdWJsaWNBbnN3ZXJZZXNObyAtLT4KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJRdWVzdGlvbiAkUURhdGF7IkNsYXNzIn0iPiAkUURhdGF7IlJlcXVpcmVkVGV4dCJ9JERhdGF7IlF1ZXN0aW9uIn0gPC9kaXY+CiAgICAgICAgICAgICAgICAkRGF0YXsiRXJyb3JUZXh0In0KCiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0icmFkaW8iIGlkPSJQdWJsaWNTdXJ2ZXlWb3RlMSRRRGF0YXsiUXVlc3Rpb25JRCJ9WWVzIiBuYW1lPSJQdWJsaWNTdXJ2ZXlWb3RlMVskUURhdGF7IlF1ZXN0aW9uSUQifV0iIHZhbHVlPSJZZXMiICRRRGF0YXsiWWVzU2VsZWN0ZWQifSAvPgogICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJBbnN3ZXIiIGZvcj0iUHVibGljU3VydmV5Vm90ZTEkUURhdGF7IlF1ZXN0aW9uSUQifVllcyI+JFRleHR7IlllcyJ9PC9sYWJlbD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0icmFkaW8iIGlkPSJQdWJsaWNTdXJ2ZXlWb3RlMSRRRGF0YXsiUXVlc3Rpb25JRCJ9Tm8iIG5hbWU9IlB1YmxpY1N1cnZleVZvdGUxWyRRRGF0YXsiUXVlc3Rpb25JRCJ9XSIgdmFsdWU9Ik5vIiAgJFFEYXRheyJOb1NlbGVjdGVkIn0gLz4KICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iQW5zd2VyIiBmb3I9IlB1YmxpY1N1cnZleVZvdGUxJFFEYXRheyJRdWVzdGlvbklEIn1ObyI+JFRleHR7Ik5vIn08L2xhYmVsPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2Pgo8IS0tIGR0bDpibG9jazpQdWJsaWNBbnN3ZXJZZXNObyAtLT4KCjwhLS0gZHRsOmJsb2NrOlB1YmxpY0Fuc3dlclJhZGlvIC0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iUXVlc3Rpb24gJFFEYXRheyJDbGFzcyJ9Ij4gJFFEYXRheyJSZXF1aXJlZFRleHQifSREYXRheyJRdWVzdGlvbiJ9IDwvZGl2PgogICAgICAgICAgICAgICAgJERhdGF7IkVycm9yVGV4dCJ9CjwhLS0gZHRsOmJsb2NrOlB1YmxpY0Fuc3dlclJhZGlvYiAtLT4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgaWQ9IlB1YmxpY1N1cnZleVZvdGUyJFFEYXRheyJRdWVzdGlvbklEIn0kUURhdGF7IkFuc3dlcklEIn0iIG5hbWU9IlB1YmxpY1N1cnZleVZvdGUyWyRRRGF0YXsiUXVlc3Rpb25JRCJ9XSIgdmFsdWU9IiRRRGF0YXsiQW5zd2VySUQifSIgJFFEYXRheyJBbnN3ZXJTZWxlY3RlZCJ9Lz4KICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iQW5zd2VyIiBmb3I9IlB1YmxpY1N1cnZleVZvdGUyJFFEYXRheyJRdWVzdGlvbklEIn0kUURhdGF7IkFuc3dlcklEIn0iPiRRRGF0YXsiQW5zd2VyIn08L2xhYmVsPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2Pgo8IS0tIGR0bDpibG9jazpQdWJsaWNBbnN3ZXJSYWRpb2IgLS0+CjwhLS0gZHRsOmJsb2NrOlB1YmxpY0Fuc3dlclJhZGlvIC0tPgoKPCEtLSBkdGw6YmxvY2s6UHVibGljQW5zd2VyQ2hlY2tib3ggLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJRdWVzdGlvbiAkUURhdGF7IkNsYXNzIn0iPiAkUURhdGF7IlJlcXVpcmVkVGV4dCJ9JERhdGF7IlF1ZXN0aW9uIn0gPC9kaXY+CiAgICAgICAgICAgICAgICAkRGF0YXsiRXJyb3JUZXh0In0KPCEtLSBkdGw6YmxvY2s6UHVibGljQW5zd2VyQ2hlY2tib3hiIC0tPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iUHVibGljU3VydmV5Vm90ZTMkUURhdGF7IkFuc3dlcklEIn0iIG5hbWU9IlB1YmxpY1N1cnZleVZvdGUzWyRRRGF0YXsiQW5zd2VySUQifV0iIHZhbHVlPSJZZXMiICRRRGF0YXsiQW5zd2VyU2VsZWN0ZWQifS8+CiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9IkFuc3dlciIgZm9yPSJQdWJsaWNTdXJ2ZXlWb3RlMyRRRGF0YXsiQW5zd2VySUQifSI+JFFEYXRheyJBbnN3ZXIifTwvbGFiZWw+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CjwhLS0gZHRsOmJsb2NrOlB1YmxpY0Fuc3dlckNoZWNrYm94YiAtLT4KPCEtLSBkdGw6YmxvY2s6UHVibGljQW5zd2VyQ2hlY2tib3ggLS0+Cgo8IS0tIGR0bDpibG9jazpQdWJsaWNBbnN3ZXJUZXh0YXJlYSAtLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlF1ZXN0aW9uICRRRGF0YXsiQ2xhc3MifSI+ICRRRGF0YXsiUmVxdWlyZWRUZXh0In0kRGF0YXsiUXVlc3Rpb24ifSA8L2Rpdj4KICAgICAgICAgICAgICAgICREYXRheyJFcnJvclRleHQifQo8IS0tIGR0bDpibG9jazpSaWNoVGV4dC0tPgogICAgICAgICAgICAgICAgJEluY2x1ZGV7IkN1c3RvbWVyUmljaFRleHRFZGl0b3IifQo8IS0tIGR0bDpibG9jazpSaWNoVGV4dC0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iUmljaFRleHRBbnN3ZXIkUURhdGF7IkFuc3dlcklEIn0iPgogICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSB0aXRsZT0iJERhdGF7IlF1ZXN0aW9uIn0iIGlkPSJSaWNoVGV4dCRRRGF0YXsiUXVlc3Rpb25JRCJ9IiBuYW1lPSJQdWJsaWNTdXJ2ZXlWb3RlNFskUURhdGF7IlF1ZXN0aW9uSUQifV0iIGNsYXNzPSJSaWNoVGV4dCBEb250UHJpbnQiIHJvd3M9IjE1IiBjb2xzPSIkQ29uZmlneyJUaWNrZXQ6OkZyb250ZW5kOjpUZXh0QXJlYU5vdGUifSI+JERhdGF7IlZhbHVlIn08L3RleHRhcmVhPgogICAgICAgICAgICAgICAgPC9kaXY+CjwhLS0gZHRsOmJsb2NrOlB1YmxpY0Fuc3dlclRleHRhcmVhIC0tPgogICAgICAgICAgICA8L2Rpdj4KPCEtLSBkdGw6YmxvY2s6UHVibGljUXVlc3Rpb25zIC0tPgogICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgPGRpdiBjbGFzcz0iQWN0aW9uUm93IiBpZD0iQm90dG9tQWN0aW9uUm93Ij4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iUHJpbWFyeSIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iJFRleHR7IkZpbmlzaCJ9Ij4gJFRleHR7IkZpbmlzaCJ9IDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgPC9mb3JtPgo8L2Rpdj4KPCEtLSBkdGw6YmxvY2s6UHVibGljU3VydmV5IC0tPgoKPCEtLSBkdGw6YmxvY2s6UHVibGljU3VydmV5TWVzc2FnZSAtLT4KPGRpdiBpZD0iTWFpbkJveCIgY2xhc3M9IlRpY2tldENvbXBvc2UgQVJJQVJvbGVNYWluIj4KICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgPGgyPiAkVGV4dHsiJERhdGF7Ik1lc3NhZ2VUeXBlIn0ifSA8L2gyPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICA8aDQ+ICRUZXh0eyIkRGF0YXsiTWVzc2FnZUhlYWRlciJ9In0gPC9oND4KICAgICAgICAgICAgPHAgY2xhc3M9IlNwYWNpbmdUb3AiPgogICAgICAgICAgICAgICAgJFRleHR7IiREYXRheyJNZXNzYWdlIn0ifQogICAgICAgICAgICA8L3A+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KPCEtLSBkdGw6YmxvY2s6U2hvd0Fuc3dlcnNCdXR0b24gLS0+CiAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iJEVudnsiQ0dJSGFuZGxlIn0iIG1ldGhvZD0icG9zdCI+CiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSIkRW52eyJBY3Rpb24ifSIgLz4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlNob3dWb3RlRGF0YSIgLz4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlB1YmxpY1N1cnZleUtleSIgdmFsdWU9IiRRRGF0YXsiUHVibGljU3VydmV5S2V5In0iIC8+CiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgPiRUZXh0eyJTaG93IG15IGFuc3dlcnMifTwvYnV0dG9uPgogICAgICAgICAgICA8L2Zvcm0+CjwhLS0gZHRsOmJsb2NrOlNob3dBbnN3ZXJzQnV0dG9uIC0tPgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2Pgo8IS0tIGR0bDpibG9jazpQdWJsaWNTdXJ2ZXlNZXNzYWdlIC0tPgoKPCEtLSBkdGw6YmxvY2s6UHVibGljU3VydmV5Vm90ZURhdGEgLS0+CjxkaXYgY2xhc3M9IkNvbnRlbnQgQVJJQVJvbGVNYWluIiBpZD0iTWFpbkJveCI+CiAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgIDxoMj4kVGV4dHsiVGhlc2UgYXJlIHlvdXIgYW5zd2VycyJ9OjwvaDI+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9IlN1cnZleUJsb2NrIj4KICAgICAgICA8ZGl2IGNsYXNzPSJTdXJ2ZXlCbG9ja0hlYWRlciI+CiAgICAgICAgICAgICRUZXh0eyJTdXJ2ZXkgVGl0bGUifQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICA8aDI+JFRleHR7IlN1cnZleSJ9OiAkUURhdGF7IlRpdGxlIn08L2gyPgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iU3VydmV5QmxvY2siPgogICAgICAgIDxkaXYgY2xhc3M9IlN1cnZleUJsb2NrSGVhZGVyIj4KICAgICAgICAgICAgJFRleHR7IkludHJvZHVjdGlvbiJ9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICREYXRheyJJbnRyb2R1Y3Rpb24ifQogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgPGZpZWxkc2V0IGNsYXNzPSJTdXJ2ZXkiPgogICAgICAgIDxkaXYgY2xhc3M9IlN1cnZleUJsb2NrSGVhZGVyIj4KICAgICAgICAgICAgJFRleHR7IlRoZXNlIGFyZSB5b3VyIGFuc3dlcnMifToKICAgICAgICA8L2Rpdj4KCjwhLS0gZHRsOmJsb2NrOlB1YmxpY1N1cnZleVZvdGVRdWVzdGlvbiAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJRdWVzdGlvbkNvbnRhaW5lciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IlF1ZXN0aW9uICRRRGF0YXsiQ2xhc3MifSI+ICRRRGF0YXsiUmVxdWlyZWRUZXh0In0kUURhdGF7IlF1ZXN0aW9uIn06PC9kaXY+CjwhLS0gZHRsOmJsb2NrOlB1YmxpY1N1cnZleVZvdGVBbnN3ZXIgLS0+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkFuc3dlciI+CiAgICAgICAgICAgICAgICAkUURhdGF7IkFuc3dlciJ9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CjwhLS0gZHRsOmJsb2NrOlB1YmxpY1N1cnZleVZvdGVBbnN3ZXIgLS0+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICA8L2Rpdj4KPCEtLSBkdGw6YmxvY2s6UHVibGljU3VydmV5Vm90ZVF1ZXN0aW9uIC0tPgogICAgPC9maWVsZHNldD4KPC9kaXY+CjwhLS0gZHRsOmJsb2NrOlB1YmxpY1N1cnZleVZvdGVEYXRhIC0tPgo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KPCEtLSBkdGw6anNfb25fZG9jdW1lbnRfY29tcGxldGUgLS0+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4vLzwhW0NEQVRBWwogICAgQ29yZS5VSS5BY3Rpb25Sb3cuSW5pdCgpOwovL11dPjwvc2NyaXB0Pgo8IS0tIGR0bDpqc19vbl9kb2N1bWVudF9jb21wbGV0ZSAtLT4KCjxkaXYgaWQ9Ik92ZXJ2aWV3Qm9keSIgY2xhc3M9Ik92ZXJ2aWV3IEZpeGVkSGVhZGVyIj4KPCEtLSBkdGw6YmxvY2s6Tm9EYXRhRm91bmRNc2cgLS0+CiAgICA8ZGl2IGlkPSJFbXB0eU1lc3NhZ2VTbWFsbCI+CiAgICAgICAgJFRleHR7Ik5vIGRhdGEgZm91bmQuIn0KICAgIDwvZGl2Pgo8IS0tIGR0bDpibG9jazpOb0RhdGFGb3VuZE1zZyAtLT4KCiAgICA8Zm9ybSBhY3Rpb249IiRFbnZ7IkNHSUhhbmRsZSJ9IiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5hbWU9Im1hdHJpeCI+CiAgICAgICAgPHRhYmxlIGlkPSJGaXhlZFRhYmxlIiBjbGFzcz0iVGFibGVTbWFsbCI+CiAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgIDx0cj4KPCEtLSBkdGw6YmxvY2s6UmVjb3JkTnVtYmVySGVhZGVyIC0tPgogICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iTnVtYmVyICRRRGF0YXsiQ1NTIn0iPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIkRW52eyJCYXNlbGluayJ9QWN0aW9uPSRFbnZ7IkFjdGlvbiJ9O1NvcnRCeT1OdW1iZXI7T3JkZXJCeT0kTFFEYXRheyJPcmRlckJ5In0iPiRUZXh0eyIkQ29uZmlneyJTdXJ2ZXk6Okhvb2sifSJ9PC9hPgogICAgICAgICAgICAgICAgICAgIDwvdGg+CjwhLS0gZHRsOmJsb2NrOlJlY29yZE51bWJlckhlYWRlciAtLT4KPCEtLSBkdGw6YmxvY2s6UmVjb3JkVGl0bGVIZWFkZXIgLS0+CiAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJUaXRsZSAkUURhdGF7IkNTUyJ9Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iJEVudnsiQmFzZWxpbmsifUFjdGlvbj0kRW52eyJBY3Rpb24ifTtTb3J0Qnk9VGl0bGU7T3JkZXJCeT0kTFFEYXRheyJPcmRlckJ5In0iPiRUZXh0eyJUaXRsZSJ9PC9hPgogICAgICAgICAgICAgICAgICAgIDwvdGg+CjwhLS0gZHRsOmJsb2NrOlJlY29yZFRpdGxlSGVhZGVyIC0tPgo8IS0tIGR0bDpibG9jazpSZWNvcmRJbnRyb2R1Y3Rpb25IZWFkZXIgLS0+CiAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJJbnRyb2R1Y3Rpb24gJFFEYXRheyJDU1MifSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiRFbnZ7IkJhc2VsaW5rIn1BY3Rpb249JEVudnsiQWN0aW9uIn07U29ydEJ5PUludHJvZHVjdGlvbjtPcmRlckJ5PSRMUURhdGF7Ik9yZGVyQnkifSI+JFRleHR7IkludHJvZHVjdGlvbiJ9PC9hPgogICAgICAgICAgICAgICAgICAgIDwvdGg+CjwhLS0gZHRsOmJsb2NrOlJlY29yZEludHJvZHVjdGlvbkhlYWRlciAtLT4KPCEtLSBkdGw6YmxvY2s6UmVjb3JkRGVzY3JpcHRpb25IZWFkZXIgLS0+CiAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJEZXNjcmlwdGlvbiAkUURhdGF7IkNTUyJ9Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iJEVudnsiQmFzZWxpbmsifUFjdGlvbj0kRW52eyJBY3Rpb24ifTtTb3J0Qnk9RGVzY3JpcHRpb247T3JkZXJCeT0kTFFEYXRheyJPcmRlckJ5In0iPiRUZXh0eyJEZXNjcmlwdGlvbiJ9PC9hPgogICAgICAgICAgICAgICAgICAgIDwvdGg+CjwhLS0gZHRsOmJsb2NrOlJlY29yZERlc2NyaXB0aW9uSGVhZGVyIC0tPgo8IS0tIGR0bDpibG9jazpSZWNvcmROb3RpZmljYXRpb25TZW5kZXJIZWFkZXIgLS0+CiAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJOb3RpZmljYXRpb25TZW5kZXIgJFFEYXRheyJDU1MifSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiRFbnZ7IkJhc2VsaW5rIn1BY3Rpb249JEVudnsiQWN0aW9uIn07U29ydEJ5PU5vdGlmaWNhdGlvblNlbmRlcjtPcmRlckJ5PSRMUURhdGF7Ik9yZGVyQnkifSI+JFRleHR7Ik5vdGlmaWNhdGlvbiBTZW5kZXIifTwvYT4KICAgICAgICAgICAgICAgICAgICA8L3RoPgo8IS0tIGR0bDpibG9jazpSZWNvcmROb3RpZmljYXRpb25TZW5kZXJIZWFkZXIgLS0+CjwhLS0gZHRsOmJsb2NrOlJlY29yZE5vdGlmaWNhdGlvblN1YmplY3RIZWFkZXIgLS0+CiAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJOb3RpZmljYXRpb25TdWJqZWN0ICRRRGF0YXsiQ1NTIn0iPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIkRW52eyJCYXNlbGluayJ9QWN0aW9uPSRFbnZ7IkFjdGlvbiJ9O1NvcnRCeT1Ob3RpZmljYXRpb25TdWJqZWN0O09yZGVyQnk9JExRRGF0YXsiT3JkZXJCeSJ9Ij4kVGV4dHsiTm90aWZpY2F0aW9uIFN1YmplY3QifTwvYT4KICAgICAgICAgICAgICAgICAgICA8L3RoPgo8IS0tIGR0bDpibG9jazpSZWNvcmROb3RpZmljYXRpb25TdWJqZWN0SGVhZGVyIC0tPgo8IS0tIGR0bDpibG9jazpSZWNvcmROb3RpZmljYXRpb25Cb2R5SGVhZGVyIC0tPgogICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iTm90aWZpY2F0aW9uQm9keSAkUURhdGF7IkNTUyJ9Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iJEVudnsiQmFzZWxpbmsifUFjdGlvbj0kRW52eyJBY3Rpb24ifTtTb3J0Qnk9Tm90aWZpY2F0aW9uQm9keTtPcmRlckJ5PSRMUURhdGF7Ik9yZGVyQnkifSI+JFRleHR7Ik5vdGlmaWNhdGlvbiBCb2R5In08L2E+CiAgICAgICAgICAgICAgICAgICAgPC90aD4KPCEtLSBkdGw6YmxvY2s6UmVjb3JkTm90aWZpY2F0aW9uQm9keUhlYWRlciAtLT4KPCEtLSBkdGw6YmxvY2s6UmVjb3JkU3RhdHVzSGVhZGVyIC0tPgogICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iU3RhdHVzICRRRGF0YXsiQ1NTIn0iPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIkRW52eyJCYXNlbGluayJ9QWN0aW9uPSRFbnZ7IkFjdGlvbiJ9O1NvcnRCeT1TdGF0dXM7T3JkZXJCeT0kTFFEYXRheyJPcmRlckJ5In0iPiRUZXh0eyJTdGF0dXMifTwvYT4KICAgICAgICAgICAgICAgICAgICA8L3RoPgo8IS0tIGR0bDpibG9jazpSZWNvcmRTdGF0dXNIZWFkZXIgLS0+CjwhLS0gZHRsOmJsb2NrOlJlY29yZENyZWF0ZVRpbWVIZWFkZXIgLS0+CiAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJDcmVhdGVUaW1lICRRRGF0YXsiQ1NTIn0iPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIkRW52eyJCYXNlbGluayJ9QWN0aW9uPSRFbnZ7IkFjdGlvbiJ9O1NvcnRCeT1DcmVhdGVUaW1lO09yZGVyQnk9JExRRGF0YXsiT3JkZXJCeSJ9Ij4kVGV4dHsiQ3JlYXRlZCJ9PC9hPgogICAgICAgICAgICAgICAgICAgIDwvdGg+CjwhLS0gZHRsOmJsb2NrOlJlY29yZENyZWF0ZVRpbWVIZWFkZXIgLS0+CjwhLS0gZHRsOmJsb2NrOlJlY29yZENyZWF0ZUJ5SGVhZGVyIC0tPgogICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iQ3JlYXRlQnkgJFFEYXRheyJDU1MifSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiRFbnZ7IkJhc2VsaW5rIn1BY3Rpb249JEVudnsiQWN0aW9uIn07U29ydEJ5PUNyZWF0ZUJ5O09yZGVyQnk9JExRRGF0YXsiT3JkZXJCeSJ9Ij4kVGV4dHsiQ3JlYXRlZCBieSJ9PC9hPgogICAgICAgICAgICAgICAgICAgIDwvdGg+CjwhLS0gZHRsOmJsb2NrOlJlY29yZENyZWF0ZUJ5SGVhZGVyIC0tPgo8IS0tIGR0bDpibG9jazpSZWNvcmRDaGFuZ2VUaW1lSGVhZGVyIC0tPgogICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iQ2hhbmdlVGltZSAkUURhdGF7IkNTUyJ9Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iJEVudnsiQmFzZWxpbmsifUFjdGlvbj0kRW52eyJBY3Rpb24ifTtTb3J0Qnk9Q2hhbmdlVGltZTtPcmRlckJ5PSRMUURhdGF7Ik9yZGVyQnkifSI+JFRleHR7IkNoYW5nZWQifTwvYT4KICAgICAgICAgICAgICAgICAgICA8L3RoPgo8IS0tIGR0bDpibG9jazpSZWNvcmRDaGFuZ2VUaW1lSGVhZGVyIC0tPgo8IS0tIGR0bDpibG9jazpSZWNvcmRDaGFuZ2VCeUhlYWRlciAtLT4KICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9IkNoYW5nZUJ5ICRRRGF0YXsiQ1NTIn0iPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIkRW52eyJCYXNlbGluayJ9QWN0aW9uPSRFbnZ7IkFjdGlvbiJ9O1NvcnRCeT1DaGFuZ2VCeTtPcmRlckJ5PSRMUURhdGF7Ik9yZGVyQnkifSI+JFRleHR7IkNoYW5nZWQgQnkifTwvYT4KICAgICAgICAgICAgICAgICAgICA8L3RoPgo8IS0tIGR0bDpibG9jazpSZWNvcmRDaGFuZ2VCeUhlYWRlciAtLT4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgIDx0Ym9keT4KPCEtLSBkdGw6YmxvY2s6UmVjb3JkIC0tPgogICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJNYXN0ZXJBY3Rpb24iPgo8IS0tIGR0bDpibG9jazpSZWNvcmROdW1iZXIgLS0+CiAgICAgICAgICAgICAgICAgICAgPHRkPgo8IS0tIGR0bDpibG9jazpSZWNvcmROdW1iZXJMaW5rU3RhcnQgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiRFbnZ7IkJhc2VsaW5rIn1BY3Rpb249QWdlbnRTdXJ2ZXlab29tO1N1cnZleUlEPSRMUURhdGF7IlN1cnZleUlEIn0iIHRpdGxlPSIkTFFEYXRheyJTdXJ2ZXlOdW1iZXIifSIgY2xhc3M9Ik1hc3RlckFjdGlvbkxpbmsiPgo8IS0tIGR0bDpibG9jazpSZWNvcmROdW1iZXJMaW5rU3RhcnQgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUURhdGF7IlN1cnZleU51bWJlciJ9CjwhLS0gZHRsOmJsb2NrOlJlY29yZE51bWJlckxpbmtFbmQgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KPCEtLSBkdGw6YmxvY2s6UmVjb3JkTnVtYmVyTGlua0VuZCAtLT4KICAgICAgICAgICAgICAgICAgICA8L3RkPgo8IS0tIGR0bDpibG9jazpSZWNvcmROdW1iZXIgLS0+CjwhLS0gZHRsOmJsb2NrOlJlY29yZFRpdGxlIC0tPgogICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiB0aXRsZT0iJFFEYXRheyJUaXRsZSJ9Ij4kUURhdGF7IlRpdGxlIiwiNDAifTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvdGQ+CjwhLS0gZHRsOmJsb2NrOlJlY29yZFRpdGxlIC0tPgo8IS0tIGR0bDpibG9jazpSZWNvcmRJbnRyb2R1Y3Rpb24gLS0+CiAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHRpdGxlPSIkUURhdGF7IkludHJvZHVjdGlvbiJ9Ij4kUURhdGF7IkludHJvZHVjdGlvbiIsIjQwIn08L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L3RkPgo8IS0tIGR0bDpibG9jazpSZWNvcmRJbnRyb2R1Y3Rpb24gLS0+CjwhLS0gZHRsOmJsb2NrOlJlY29yZERlc2NyaXB0aW9uIC0tPgogICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiB0aXRsZT0iJFFEYXRheyJEZXNjcmlwdGlvbiJ9Ij4kUURhdGF7IkRlc2NyaXB0aW9uIiwiNDAifTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvdGQ+CjwhLS0gZHRsOmJsb2NrOlJlY29yZERlc2NyaXB0aW9uIC0tPgo8IS0tIGR0bDpibG9jazpSZWNvcmROb3RpZmljYXRpb25TZW5kZXIgLS0+CiAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PiRRRGF0YXsiTm90aWZpY2F0aW9uU2VuZGVyIn08L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L3RkPgo8IS0tIGR0bDpibG9jazpSZWNvcmROb3RpZmljYXRpb25TZW5kZXIgLS0+CjwhLS0gZHRsOmJsb2NrOlJlY29yZE5vdGlmaWNhdGlvblN1YmplY3QgLS0+CiAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHRpdGxlPSIkUURhdGF7Ik5vdGlmaWNhdGlvblN1YmplY3QifSI+JFFEYXRheyJOb3RpZmljYXRpb25TdWJqZWN0IiwiNDAifTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvdGQ+CjwhLS0gZHRsOmJsb2NrOlJlY29yZE5vdGlmaWNhdGlvblN1YmplY3QgLS0+CjwhLS0gZHRsOmJsb2NrOlJlY29yZE5vdGlmaWNhdGlvbkJvZHkgLS0+CiAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHRpdGxlPSIkUURhdGF7Ik5vdGlmaWNhdGlvbkJvZHkifSI+JFFEYXRheyJOb3RpZmljYXRpb25Cb2R5IiwiNDAifTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvdGQ+CjwhLS0gZHRsOmJsb2NrOlJlY29yZE5vdGlmaWNhdGlvbkJvZHkgLS0+CjwhLS0gZHRsOmJsb2NrOlJlY29yZFN0YXR1cyAtLT4KICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+JFRleHR7IiREYXRheyJTdGF0dXMifSJ9PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC90ZD4KPCEtLSBkdGw6YmxvY2s6UmVjb3JkU3RhdHVzIC0tPgo8IS0tIGR0bDpibG9jazpSZWNvcmRDcmVhdGVUaW1lIC0tPgogICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4kVGltZUxvbmd7IiRRRGF0YXsiQ3JlYXRlVGltZSJ9In08L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L3RkPgo8IS0tIGR0bDpibG9jazpSZWNvcmRDcmVhdGVUaW1lIC0tPgo8IS0tIGR0bDpibG9jazpSZWNvcmRDcmVhdGVCeSAtLT4KICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+JFFEYXRheyJDcmVhdGVVc2VyRmlyc3RuYW1lIn0gJFFEYXRheyJDcmVhdGVVc2VyTGFzdG5hbWUifTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvdGQ+CjwhLS0gZHRsOmJsb2NrOlJlY29yZENyZWF0ZUJ5IC0tPgo8IS0tIGR0bDpibG9jazpSZWNvcmRDaGFuZ2VUaW1lIC0tPgogICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4kVGltZUxvbmd7IiRRRGF0YXsiQ2hhbmdlVGltZSJ9In08L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L3RkPgo8IS0tIGR0bDpibG9jazpSZWNvcmRDaGFuZ2VUaW1lIC0tPgo8IS0tIGR0bDpibG9jazpSZWNvcmRDaGFuZ2VCeSAtLT4KICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+JFFEYXRheyJDaGFuZ2VVc2VyRmlyc3RuYW1lIn0gJFFEYXRheyJDaGFuZ2VVc2VyTGFzdG5hbWUifTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvdGQ+CjwhLS0gZHRsOmJsb2NrOlJlY29yZENoYW5nZUJ5IC0tPgogICAgICAgICAgICAgICAgPC90cj4KPCEtLSBkdGw6YmxvY2s6UmVjb3JkIC0tPgogICAgICAgICAgICA8L3Rib2R5PgogICAgICAgIDwvdGFibGU+CiAgICA8L2Zvcm0+CjwvZGl2Pgo8IS0tIGR0bDpqc19vbl9kb2N1bWVudF9jb21wbGV0ZSAtLT4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPi8vPCFbQ0RBVEFbCiAgICBDb3JlLlVJLkluaXRUYWJsZUhlYWQoJCgnI0ZpeGVkVGFibGUgdGhlYWQnKSwgJCgnI0ZpeGVkVGFibGUgdGJvZHknKSk7CiAgICBDb3JlLlVJLlN0YXRpY1RhYmxlQ29udHJvbCgkKCcjT3ZlcnZpZXdDb250cm9sJykuYWRkKCQoJyNPdmVydmlld0JvZHknKSkpOwogICAgJCgnLk1hc3RlckFjdGlvbicpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24gKEV2ZW50KSB7CiAgICAgICAgd2luZG93LmxvY2F0aW9uID0gJCh0aGlzKS5maW5kKCcuTWFzdGVyQWN0aW9uTGluaycpLmF0dHIoJ2hyZWYnKTsKICAgIH0pOwogICAgJCh3aW5kb3cpLnJlc2l6ZShmdW5jdGlvbigpIHsKICAgICAgICBDb3JlLlVJLkFkanVzdFRhYmxlSGVhZCgkKCcjT3ZlcnZpZXdIZWFkZXIgdGhlYWQnKSwgJCgnI092ZXJ2aWV3Qm9keSB0Ym9keScpKTsKICAgIH0pOwovL11dPjwvc2NyaXB0Pgo8IS0tIGR0bDpqc19vbl9kb2N1bWVudF9jb21wbGV0ZSAtLT4K
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KPCEtLSBkdGw6YmxvY2s6T3ZlcnZpZXdOYXZCYXIgLS0+CjxkaXYgY2xhc3M9Ik92ZXJ2aWV3Qm94IEFSSUFSb2xlTWFpbiAkUURhdGF7IlZpZXcifSI+CiAgICA8aDE+JFFEYXRheyJUaXRsZU5hbWUifTogJFFEYXRheyJUaXRsZVZhbHVlIn08L2gxPgoKICAgICREYXRheyJEYXRhSW5UaGVNaWRkbGUifQoKICAgIDxkaXYgY2xhc3M9Ik92ZXJ2aWV3Q29udHJvbCIgaWQ9Ik92ZXJ2aWV3Q29udHJvbCI+CiAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udHJvbFJvdyI+CjwhLS0gZHRsOmJsb2NrOk92ZXJ2aWV3TmF2QmFyRmlsdGVyIC0tPgogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJUYWJzIj4KPCEtLSBkdGw6YmxvY2s6T3ZlcnZpZXdOYXZCYXJGaWx0ZXJJdGVtIC0tPgo8IS0tIGR0bDpibG9jazpPdmVydmlld05hdkJhckZpbHRlckl0ZW1TZWxlY3RlZCAtLT4KICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9IkFjdGl2ZSAkUURhdGF7IkNTUyJ9Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iJEVudnsiQmFzZWxpbmsifUFjdGlvbj0kRW52eyJBY3Rpb24ifTskRGF0YXsiRmlsdGVyTGluayJ9RmlsdGVyPSRMUURhdGF7IkZpbHRlciJ9Ij4kVGV4dHsiJERhdGF7Ik5hbWUifSJ9PHNwYW4+JFFEYXRheyJDb3VudCJ9PC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgo8IS0tIGR0bDpibG9jazpPdmVydmlld05hdkJhckZpbHRlckl0ZW1TZWxlY3RlZCAtLT4KPCEtLSBkdGw6YmxvY2s6T3ZlcnZpZXdOYXZCYXJGaWx0ZXJJdGVtU2VsZWN0ZWROb3QgLS0+CiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSIkUURhdGF7IkNTUyJ9Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iJEVudnsiQmFzZWxpbmsifUFjdGlvbj0kRW52eyJBY3Rpb24ifTskRGF0YXsiRmlsdGVyTGluayJ9RmlsdGVyPSRMUURhdGF7IkZpbHRlciJ9Ij4kVGV4dHsiJERhdGF7Ik5hbWUifSJ9PHNwYW4+JFFEYXRheyJDb3VudCJ9PC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgo8IS0tIGR0bDpibG9jazpPdmVydmlld05hdkJhckZpbHRlckl0ZW1TZWxlY3RlZE5vdCAtLT4KPCEtLSBkdGw6YmxvY2s6T3ZlcnZpZXdOYXZCYXJGaWx0ZXJJdGVtU3BsaXQgLS0+CiAgICAgICAgICAgICAgICAgICAgLQo8IS0tIGR0bDpibG9jazpPdmVydmlld05hdkJhckZpbHRlckl0ZW1TcGxpdCAtLT4KPCEtLSBkdGw6YmxvY2s6T3ZlcnZpZXdOYXZCYXJGaWx0ZXJJdGVtIC0tPgogICAgICAgICAgICAgICAgPC91bD4KPCEtLSBkdGw6YmxvY2s6T3ZlcnZpZXdOYXZCYXJGaWx0ZXIgLS0+CjwhLS0gZHRsOmJsb2NrOk92ZXJ2aWV3TmF2QmFyUGFnZUJhY2sgLS0+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9IlRhYnMiPgogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaWQ9IlN1cnZleVNlYXJjaCIgaHJlZj0iJEVudnsiQmFzZWxpbmsifUFjdGlvbj0kRW52eyJBY3Rpb24ifTskRGF0YXsiTGlua0JhY2sifSI+JFRleHR7IkNoYW5nZSBzZWFyY2ggb3B0aW9ucyJ9PC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgo8IS0tZHRsOmpzX29uX2RvY3VtZW50X2NvbXBsZXRlLS0+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4vLzwhW0NEQVRBWwogICAgJCgnI1N1cnZleVNlYXJjaCcpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24gKEV2ZW50KSB7CiAgICAgICAgQ29yZS5BZ2VudC5TZWFyY2guT3BlblNlYXJjaERpYWxvZyggJ0FnZW50U3VydmV5U2VhcmNoJywgJyRRRGF0YXsiUHJvZmlsZSJ9JyApOwogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0pOwovL11dPjwvc2NyaXB0Pgo8IS0tZHRsOmpzX29uX2RvY3VtZW50X2NvbXBsZXRlLS0+CjwhLS0gZHRsOmJsb2NrOk92ZXJ2aWV3TmF2QmFyUGFnZUJhY2sgLS0+Cgo8IS0tIGR0bDpibG9jazpDb250ZXh0U2V0dGluZ3MgLS0+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9IkNvbnRleHRGdW5jdGlvbnMiPgogICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iQ29udGV4dFNldHRpbmdzIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgaWQ9IlNob3dDb250ZXh0U2V0dGluZ3NEaWFsb2ciIHRpdGxlPSIkVGV4dHsiQ29udGV4dCBTZXR0aW5ncyJ9Ij48c3Bhbj4kVGV4dHsiQ29udGV4dCBTZXR0aW5ncyJ9PC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgPC91bD4KCiAgICAgICAgICAgICAgICA8ZGl2IGlkPSJDb250ZXh0U2V0dGluZ3NEaWFsb2dDb250YWluZXIiIGNsYXNzPSJIaWRkZW4iPgogICAgICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iJEVudnsiQ0dJSGFuZGxlIn0iIG1ldGhvZD0icG9zdCIgaWQ9IkNvbnRleHRTZXR0aW5nc0RpYWxvZyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IkFnZW50UHJlZmVyZW5jZXMiLz4KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iVXBkYXRlIi8+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ikdyb3VwIiB2YWx1ZT0iJFFEYXRheyJHcm91cCJ9Ii8+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlJlZGlyZWN0VVJMIiB2YWx1ZT0iJFFEYXRheyJSZXF1ZXN0ZWRVUkwifSIvPgogICAgICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSIkUURhdGF7IlByZWZlcmVuY2VzS2V5In0iPiRUZXh0eyJNYXguIHNob3duIFN1cnZleXMgcGVyIHBhZ2UifTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICREYXRheyJQYWdlU2hvd25TdHJpbmcifQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgPC9kaXY+Cgo8IS0tIGR0bDpqc19vbl9kb2N1bWVudF9jb21wbGV0ZSAtLT4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPi8vPCFbQ0RBVEFbCiAgICAvLyBiaW5kIHRoZSBDb250ZXh0U2V0dGluZ3NEaWFsb2dDb250YWluZXIKICAgICQoJyNTaG93Q29udGV4dFNldHRpbmdzRGlhbG9nJykuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoRXZlbnQpIHsKICAgICAgICBDb3JlLlVJLkRpYWxvZy5TaG93Q29udGVudERpYWxvZygkKCcjQ29udGV4dFNldHRpbmdzRGlhbG9nQ29udGFpbmVyJyksICckSlNUZXh0eyJTZXR0aW5ncyJ9JywgJzIwJScsICdDZW50ZXInLCB0cnVlLAogICAgICAgICAgICBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTGFiZWw6ICckSlNUZXh0eyJTdWJtaXQifScsCiAgICAgICAgICAgICAgICAgICAgVHlwZTogJ1N1Ym1pdCcsCiAgICAgICAgICAgICAgICAgICAgQ2xhc3M6ICdQcmltYXJ5JwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdCiAgICAgICAgKTsKICAgICAgICBFdmVudC5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgIEV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0pOwovL11dPjwvc2NyaXB0Pgo8IS0tIGR0bDpqc19vbl9kb2N1bWVudF9jb21wbGV0ZSAtLT4KPCEtLSBkdGw6YmxvY2s6Q29udGV4dFNldHRpbmdzIC0tPgoKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkFjdGlvblJvdyI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJPdmVydmlld0FjdGlvbnMiPgogICAgICAgICAgICAgICAgICAgICREYXRheyJBY3Rpb25Sb3cifQogICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iT3ZlcnZpZXdab29tIj4KCjwhLS0gZHRsOmJsb2NrOk92ZXJ2aWV3TmF2QmFyVmlld01vZGUgLS0+CjwhLS0gZHRsOmJsb2NrOk92ZXJ2aWV3TmF2QmFyVmlld01vZGVTZWxlY3RlZCAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJBY3RpdmUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9IiRRRGF0YXsiTmFtZSJ9IiBocmVmPSIkRW52eyJCYXNlbGluayJ9QWN0aW9uPSRFbnZ7IkFjdGlvbiJ9O0ZpbHRlcj0kTFFEYXRheyJGaWx0ZXIifTtWaWV3PSRMUURhdGF7IlZpZXcifTskRGF0YXsiTGlua0ZpbHRlciJ9IiB0aXRsZT0iJFRleHR7IiREYXRheyJOYW1lIn0ifSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IkltYWdlTW9kZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJOYW1lU2hvcnQiPiRUZXh0eyIkRGF0YXsiTmFtZVNob3J0In0ifTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Ik5hbWVMb25nIj4kVGV4dHsiJERhdGF7Ik5hbWUifSJ9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KPCEtLSBkdGw6YmxvY2s6T3ZlcnZpZXdOYXZCYXJWaWV3TW9kZVNlbGVjdGVkIC0tPgo8IS0tIGR0bDpibG9jazpPdmVydmlld05hdkJhclZpZXdNb2RlTm90U2VsZWN0ZWQgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSIkUURhdGF7Ik5hbWUifSIgbmFtZT0iT3ZlcnZpZXdDb250cm9sIiBocmVmPSIkRW52eyJCYXNlbGluayJ9QWN0aW9uPSRFbnZ7IkFjdGlvbiJ9O0ZpbHRlcj0kTFFEYXRheyJGaWx0ZXIifTtWaWV3PSRMUURhdGF7IlZpZXcifTskRGF0YXsiTGlua0ZpbHRlciJ9IiB0aXRsZT0iJFRleHR7IiREYXRheyJOYW1lIn0ifSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IkltYWdlTW9kZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJOYW1lU2hvcnQiPiRUZXh0eyIkRGF0YXsiTmFtZVNob3J0In0ifTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Ik5hbWVMb25nIj4kVGV4dHsiJERhdGF7Ik5hbWUifSJ9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KPCEtLSBkdGw6YmxvY2s6T3ZlcnZpZXdOYXZCYXJWaWV3TW9kZU5vdFNlbGVjdGVkIC0tPgo8IS0tIGR0bDpibG9jazpPdmVydmlld05hdkJhclZpZXdNb2RlIC0tPgogICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IlBhZ2luYXRpb24iPgo8IS0tIGR0bDpibG9jazpPdmVydmlld05hdkJhclBhZ2VOYXZCYXIgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICREYXRheyJSZXN1bHRMb25nIn0KICAgICAgICAgICAgICAgICAgICAgICAgJERhdGF7IlNpdGVOYXZCYXJMb25nIn0KPCEtLSBkdGw6YmxvY2s6T3ZlcnZpZXdOYXZCYXJQYWdlTmF2QmFyIC0tPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhckxlZnQiPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiMgc29ydCBvcmRlciBiYXIgaWYgbmVlZGVkCiAgICAgICAgICAgICAgICAkRGF0YXsiU29ydE9yZGVyQmFyIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KPC9kaXY+CjwhLS0gZHRsOmJsb2NrOk92ZXJ2aWV3TmF2QmFyIC0tPgo=
Ly8gLS0KLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMTcgT1RSUyBBRywgaHR0cDovL290cnMuY29tL1xuIjsKLy8gLS0KLy8gVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKLy8gdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQovLyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgovLyAtLQoKInVzZSBzdHJpY3QiOwoKdmFyIFN1cnZleSA9IFN1cnZleSB8fCB7fTsKU3VydmV5LkFnZW50ID0gU3VydmV5LkFnZW50IHx8IHt9OwoKLyoqCiAqIEBuYW1lc3BhY2UKICogQGV4cG9ydHMgVGFyZ2V0TlMgYXMgU3VydmV5LkFnZW50LlN1cnZleVpvb20KICogQGRlc2NyaXB0aW9uCiAqICAgICAgVGhpcyBuYW1lc3BhY2UgY29udGFpbnMgdGhlIHNwZWNpYWwgbW9kdWxlIGZ1bmN0aW9ucyBmb3IgU3VydmV5Wm9vbS4KICovClN1cnZleS5BZ2VudC5TdXJ2ZXlab29tID0gKGZ1bmN0aW9uIChUYXJnZXROUykgewogICAgLyoqCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBwYXJhbSB7alF1ZXJ5T2JqZWN0fSAkSWZyYW1lIFRoZSBpZnJhbWUgd2hpY2ggc2hvdWxkIGJlIGF1dG8taGVpZ2h0ZWQKICAgICAqIEByZXR1cm4gbm90aGluZwogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIHRoZSBzcGVjaWFsIG1vZHVsZSBmdW5jdGlvbnMKICAgICAqLwogICAgVGFyZ2V0TlMuSWZyYW1lQXV0b0hlaWdodCA9IGZ1bmN0aW9uICgkSWZyYW1lKSB7CiAgICAgICAgaWYgKGlzSlF1ZXJ5T2JqZWN0KCRJZnJhbWUpKSB7CiAgICAgICAgICAgIHZhciBOZXdIZWlnaHQgPSAkSWZyYW1lLmNvbnRlbnRzKCkuaGVpZ2h0KCk7CiAgICAgICAgICAgIGlmICghTmV3SGVpZ2h0IHx8IGlzTmFOKE5ld0hlaWdodCkpIHsKICAgICAgICAgICAgICAgIE5ld0hlaWdodCA9IENvcmUuQ29uZmlnLkdldCgnU3VydmV5LkhUTUxSaWNoVGV4dEhlaWdodERlZmF1bHQnKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIGlmIChOZXdIZWlnaHQgPiBDb3JlLkNvbmZpZy5HZXQoJ1N1cnZleS5IVE1MUmljaFRleHRIZWlnaHRNYXgnKSkgewogICAgICAgICAgICAgICAgICAgIE5ld0hlaWdodCA9IENvcmUuQ29uZmlnLkdldCgnU3VydmV5LkhUTUxSaWNoVGV4dEhlaWdodE1heCcpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgICRJZnJhbWUuaGVpZ2h0KE5ld0hlaWdodCArICdweCcpOwogICAgICAgIH0KICAgIH07CgogICAgcmV0dXJuIFRhcmdldE5TOwp9KFN1cnZleS5BZ2VudC5TdXJ2ZXlab29tIHx8IHt9KSk7Cg==
LyoqCiAqIEBwcm9qZWN0ICAgICBPVFJTIChodHRwOi8vd3d3Lm90cnMub3JnKSAtIEFnZW50IEZyb250ZW5kCiAqIEB2ZXJzaW9uICAgICAkUmV2aXNpb246IDEuOCAkCiAqIEBjb3B5cmlnaHQgICBPVFJTIEFHCiAqIEBsaWNlbnNlICAgICBBR1BMIChodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQpCiAqLwoKLyoqCiAqIEBwYWNrYWdlICAgICBTa2luICJEZWZhdWx0IgogKiBAc2VjdGlvbiAgICAgRGVmYXVsdCBTZXR0aW5ncwogKi8KCkBtZWRpYSBzY3JlZW4scHJvamVjdGlvbix0dixoYW5kaGVsZCB7CgovKioKICogQHN1YnNlY3Rpb24gU3VydmV5IEdyYXBoCiAqLwoKZmllbGRzZXQuU3VydmV5R3JhcGhzIHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgbWFyZ2luLWJvdHRvbTogMjBweDsKfQoKZmllbGRzZXQuU3VydmV5R3JhcGhzIC5RdWVzdGlvbiB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTsKICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgd2lkdGg6IDI1JTsKICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgbWFyZ2luLWJvdHRvbTogMTBweDsKfQoKZmllbGRzZXQuU3VydmV5R3JhcGhzIC5BbnN3ZXIgewogICAgZmxvYXQ6IGxlZnQ7CiAgICBsaW5lLWhlaWdodDogMS4zZW07CiAgICB0ZXh0LWFsaWduOiByaWdodDsKICAgIHRleHQtc2hhZG93OiAwIDFweCAwICNGQUZBRkE7CiAgICB3aWR0aDogMjUlOwogICAgbWFyZ2luLWJvdHRvbTogNXB4Owp9CgpkaXYuU3VydmV5R3JhcGggewogICAgZmxvYXQ6IGxlZnQ7CiAgICB3aWR0aDogNTAlOwogICAgaGVpZ2h0OiAyMnB4OwogICAgcGFkZGluZy1sZWZ0OiA1cHg7CiAgICBwYWRkaW5nLWJvdHRvbTogM3B4Owp9CgpkaXYuU3VydmV5R3JhcGhDb250YWluZXIgewogICAgd2lkdGg6IDk1JTsKICAgIGhlaWdodDogMjJweDsKfQoKZGl2LlN1cnZleUdyYXBoQmFyIHsKICAgIGhlaWdodDogMjJweDsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGMkIxM0U7Cn0KCnAuU3VydmV5R3JhcGhMZXllbmQgewogICAgZmxvYXQ6IGxlZnQ7CiAgICBsaW5lLWhlaWdodDogMS4zZW07CiAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgI0ZBRkFGQTsKICAgIHdpZHRoOiAxMCU7CiAgICBtYXJnaW4tYm90dG9tOiA1cHg7CiAgICBoZWlnaHQ6IDIycHg7Cn0KCi5TdWJMYWJlbCB7CiAgICB3aWR0aDogMzUlOwogICAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgICBmbG9hdDogbGVmdDsKICAgIGRpc3BsYXk6IGJsb2NrOwp9CgouU3ViRmllbGQgewogICAgbWFyZ2luLWxlZnQ6IDM1JTsKICAgIGRpc3BsYXk6IGJsb2NrOwp9CgphLkFycm93VXAsCmEuQXJyb3dVcERpc2FibGVkLAphLkFycm93RG93biwKYS5BcnJvd0Rvd25EaXNhYmxlZCB7CiAgICBoZWlnaHQ6IDE2cHg7CiAgICB3aWR0aDogMTZweDsKICAgIHBhZGRpbmc6IDFweDsKICAgIG1hcmdpbi10b3A6IDA7CiAgICBtYXJnaW4tYm90dG9tOiAxcHg7CiAgICBib3JkZXItc3R5bGU6IG5vbmU7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgY3Vyc29yOiBwb2ludGVyOwp9CgphLkFycm93VXA6YWN0aXZlLAphLkFycm93RG93bjphY3RpdmUgewogICAgbWFyZ2luLXRvcDogMXB4OwogICAgbWFyZ2luLWJvdHRvbTogMDsKfQoKYS5BcnJvd1VwRGlzYWJsZWQ6YWN0aXZlLAphLkFycm93RG93bkRpc2FibGVkOmFjdGl2ZSB7CiAgICBtYXJnaW4tdG9wOiAwcHg7CiAgICBtYXJnaW4tYm90dG9tOiAxcHg7Cn0KCmEuQXJyb3dVcCB7CiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL2ljb25zL3N1cnZleV9hcnJvd191cC5wbmcpOwp9CgphLkFycm93VXBEaXNhYmxlZCB7CiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL2ljb25zL3N1cnZleV9hcnJvd191cF9kaXNhYmxlZC5wbmcpOwogICAgY3Vyc29yOiBkZWZhdWx0Owp9CgphLkFycm93RG93biB7CiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL2ljb25zL3N1cnZleV9hcnJvd19kb3duLnBuZykgbm8tcmVwZWF0IDAgMDsKfQoKYS5BcnJvd0Rvd25EaXNhYmxlZCB7CiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL2ljb25zL3N1cnZleV9hcnJvd19kb3duX2Rpc2FibGVkLnBuZyk7CiAgICBjdXJzb3I6IGRlZmF1bHQ7Cn0KCmEuQXJyb3dVcCBzcGFuLAphLkFycm93VXBEaXNhYmxlZCBzcGFuLAphLkFycm93RG93biBzcGFuLAphLkFycm93RG93bkRpc2FibGVkIHNwYW4sCmEuU2VlRGV0YWlscyBzcGFuIHsKICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICBkaXNwbGF5OiBub25lOwp9CgphLlNlZURldGFpbHMgewogICAgaGVpZ2h0OiAxNXB4OwogICAgd2lkdGg6IDE1cHg7CiAgICBwYWRkaW5nOiAxcHg7CiAgICBtYXJnaW4tdG9wOiAwOwogICAgbWFyZ2luLWJvdHRvbTogMXB4OwogICAgYm9yZGVyLXN0eWxlOiBub25lOwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWcvaWNvbnMvc3VydmV5X3NlZV9kZXRhaWxzLnBuZyk7Cn0KCmxhYmVsLlRleHRhcmVhLApkaXYuVGV4dGFyZWEgewogICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgIG1hcmdpbi10b3A6IDEwcHg7Cn0KCi5GaWVsZCB1bCBsaXsKICAgIG1hcmdpbi1sZWZ0OiAzMHB4OwogICAgbGlzdC1zdHlsZTogZGlzYzsKfQoKLkZpZWxkIG9sIGxpewogICAgbWFyZ2luLWxlZnQ6IDMwcHg7CiAgICBsaXN0LXN0eWxlOiBkZWNpbWFsOwp9Cn0=
LyoqCiAqIEBwcm9qZWN0ICAgICBPVFJTIChodHRwOi8vd3d3Lm90cnMub3JnKSAtIEFnZW50IEZyb250ZW5kCiAqIEB2ZXJzaW9uICAgICAkUmV2aXNpb246IDEuMSAkCiAqIEBjb3B5cmlnaHQgICBPVFJTIEFHCiAqIEBsaWNlbnNlICAgICBBR1BMIChodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQpCiAqIEBjc3MtZm9yICAgICBJRTcKICovCgovKioKICogQHBhY2thZ2UgICAgIFNraW4gIkRlZmF1bHQiCiAqIEBzZWN0aW9uICAgICBBZ2VudAogKi8KCkBtZWRpYSBzY3JlZW4scHJvamVjdGlvbix0dixoYW5kaGVsZCB7Cgpmb3JtLkFjdGlvbkZvcm0gewogICAgbWFyZ2luLXRvcDogNHB4Owp9CgpkaXYuRmllbGQgewogICBtYXJnaW4tdG9wOiA0cHg7Cn0KCn0gLyogZW5kIEBtZWRpYSAqLw==
LyoqCiAqIEBwcm9qZWN0ICAgICBPVFJTIChodHRwOi8vd3d3Lm90cnMub3JnKSAtIEN1c3RvbWVyIEZyb250ZW5kCiAqIEB2ZXJzaW9uICAgICAkUmV2aXNpb246IDEuNyAkCiAqIEBjb3B5cmlnaHQgICBPVFJTIEFHCiAqIEBsaWNlbnNlICAgICBBR1BMIChodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQpCiAqLwoKLyoqCiAqIEBwYWNrYWdlICAgICBTdXJ2ZXkgLSBTa2luICJEZWZhdWx0IgogKiBAc2VjdGlvbiAgICAgQ3VzdG9tZXIKICovCgpkaXYuU3VydmV5QmxvY2sgewogICAgbWFyZ2luOiA4cHggMCAxM3B4OwogICAgcGFkZGluZy1ib3R0b206IDVweDsKICAgIGJhY2tncm91bmQ6ICNGOEY5Rjk7CiAgICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudChjZW50ZXIgdG9wICwgI0ZGRiwgI0Y4RjlGOSk7CiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBmcm9tKCNGRkYpLCB0bygjRjhGOUY5KSk7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjRUFFRUVFOwogICAgYm9yZGVyLXJhZGl1czogNXB4OwogICAgLW1vei1ib3JkZXItcmFkaXVzOiA1cHg7CiAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDVweDsKICAgIHdpZHRoOiA3MzhweDsKfQoKLlN1cnZleUJsb2NrSGVhZGVyIHsKICAgIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KGNlbnRlciB0b3AgLCAjRjlGOUY5LCAjRUNFRUVFKSByZXBlYXQgc2Nyb2xsIDAgMCB0cmFuc3BhcmVudDsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjQ0NDQ0NDOwogICAgY29sb3I6ICMzMzMzMzM7CiAgICBmb250LXNpemU6IDEycHg7CiAgICBtYXJnaW46IDA7CiAgICBwYWRkaW5nOiA0cHggOXB4IDNweCA5cHg7CiAgICB0ZXh0LXNoYWRvdzogMCAxcHggMCAjRkZGRkZGOwp9CgpmaWVsZHNldC5TdXJ2ZXkgewogICAgd2lkdGg6IDczOHB4Owp9CgpkaXYuQWN0aW9uUm93IHsKICAgIHdpZHRoOiA3MjBweDsKfQoKZGl2LkludHJvIC5Db250ZW50ewogICAgYm9yZGVyLXRvcDogMDsKfQoKZGl2LlF1ZXN0aW9uewogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNDOUM5Qzk7CiAgICBjb2xvcjogIzkyOTI5MjsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIG1hcmdpbi1sZWZ0OiA0MHB4OwogICAgbWFyZ2luLXRvcDogMTVweDsKICAgIHdpZHRoOiA1MjBweDsKICAgIHBhZGRpbmc6IDRweCA5cHggM3B4IDlweDsKICAgIHRleHQtc2hhZG93OiAwIDFweCAwICNFQ0VFRUU7CiAgICBmb250LXdlaWdodDogYm9sZDsKICAgIGRpc3BsYXk6IGJsb2NrOwp9CmRpdi5NYW5kYXRvcnkgewogICAgY29sb3I6IGJsYWNrOwp9CgoKZGl2LkVycm9yIHsKICAgIGNvbG9yOiAjZmY1MDVlICFpbXBvcnRhbnQ7Cn0KCmRpdi5Ub29sdGlwRXJyb3J7CiAgICBtYXJnaW46IC0xMHB4IDAgMHB4IDc1cHg7Cn0KZGl2LlRvb2x0aXBFcnJvciBkaXY6Zmlyc3QtY2hpbGQgewogICAgYm9yZGVyLXRvcDogMHB4ICFpbXBvcnRhbnQ7Cn0KZGl2LlRvbmd1ZSB7CiAgICBib3JkZXI6IDBweDsKICAgIHBhZGRpbmc6IDBweCAhaW1wb3J0YW50Owp9CgpsYWJlbC5BbnN3ZXIgewogICAgYmFja2dyb3VuZDpub25lOwogICAgYm9yZGVyOiBub25lOwogICAgd2lkdGg6IDM2NXB4OwogICAgbWFyZ2luLWxlZnQ6IDhweDsKICAgIG1hcmdpbi10b3A6IDNweDsKICAgIHRleHQtYWxpZ246bGVmdDsKfQoKZmllbGRzZXQgaW5wdXQsCmRpdi5BbnN3ZXIgewogICAgZmxvYXQ6bGVmdDsKfQoKZmllbGRzZXQgaW5wdXQsCmZpZWxkc2V0IHRleHRhcmVhLApkaXYuQW5zd2VyIHsKICAgIG1hcmdpbjogN3B4IDAgN3B4IDc1cHg7Cn0KCi5SaWNoVGV4dEFuc3dlciB7CiAgICBtYXJnaW46IDdweCAwIDdweCA3NXB4Owp9CgpkaXYuQW5zd2VyIHsKICAgIHBhZGRpbmc6MHB4Owp9CgouU3VydmV5QnV0dG9uIHsKICAgIC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OjVweDsKICAgIC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21yaWdodDo1cHg7CiAgICAtbW96LWJveC1zaGFkb3c6MCAwIDNweCAjRjZGOUY5OwogICAgYm9yZGVyLWNvbG9yOi1tb3otdXNlLXRleHQtY29sb3IgI0Q2RDZENiAjRDZENkQ2OwogICAgYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjRDZENkQ2OwogICAgYm9yZGVyLXN0eWxlOm5vbmUgc29saWQgc29saWQ7CiAgICBib3JkZXItd2lkdGg6bWVkaXVtIDFweCAxcHg7CiAgICBib3R0b206LTIycHg7CiAgICBjb2xvcjojOTk5OTk5OwogICAgZGlzcGxheTpub25lOwogICAgaGVpZ2h0OjEwcHg7CiAgICBtYXJnaW46MCAxM3B4OwogICAgcGFkZGluZzo0cHggOHB4IDdweCAyNHB4OwogICAgcG9zaXRpb246YWJzb2x1dGU7Cn0K
LyoqCiAqIEBwcm9qZWN0ICAgICBPVFJTIChodHRwOi8vd3d3Lm90cnMub3JnKSAtIEN1c3RvbWVyIEZyb250ZW5kCiAqIEB2ZXJzaW9uICAgICAkUmV2aXNpb246IDEuMSAkCiAqIEBjb3B5cmlnaHQgICBPVFJTIEFHCiAqIEBsaWNlbnNlICAgICBBR1BMIChodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQpCiAqLwoKLyoqCiAqIEBwYWNrYWdlICAgICBTdXJ2ZXkgLSBTa2luICJEZWZhdWx0IgogKiBAc2VjdGlvbiAgICAgQ3VzdG9tZXIKICovCgpsYWJlbC5BbnN3ZXIgewogICAgcGFkZGluZy10b3A6IDVweDsKfQoKZGl2LlF1ZXN0aW9uQ29udGFpbmVyIHsKICAgIG1hcmdpbi1sZWZ0OiA0MHB4Owp9Cg==
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
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgdmFyOjpwYWNrYWdlc2V0dXA6OlN1cnZleTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSB2YXJzIHF3KEBJU0EgJFZFUlNJT04pOwoKPWhlYWQxIE5BTUUKClN1cnZleS5wbSAtIGNvZGUgdG8gZXhjZWN1dGUgZHVyaW5nIHBhY2thZ2UgaW5zdGFsbGF0aW9uCgo9aGVhZDEgU1lOT1BTSVMKCkFsbCBmdW5jdGlvbnMKCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgIHVzZSBLZXJuZWw6OkNvbmZpZzsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6RW5jb2RlOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpMb2c7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok1haW47CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OlRpbWU7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkRCOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpYTUw7CiAgICB1c2UgdmFyOjpwYWNrYWdlc2V0dXA6OlN1cnZleTsKCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gS2VybmVsOjpDb25maWctPm5ldygpOwogICAgbXkgJEVuY29kZU9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpFbmNvZGUtPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICk7CiAgICBteSAkTG9nT2JqZWN0ICAgID0gS2VybmVsOjpTeXN0ZW06OkxvZy0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIEVuY29kZU9iamVjdCA9PiAkRW5jb2RlT2JqZWN0LAogICAgKTsKICAgIG15ICRNYWluT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06Ok1haW4tPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBFbmNvZGVPYmplY3QgPT4gJEVuY29kZU9iamVjdCwKICAgICAgICBMb2dPYmplY3QgICAgPT4gJExvZ09iamVjdCwKICAgICk7CiAgICBteSAkVGltZU9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpUaW1lLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICApOwogICAgbXkgJERCT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkRCLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICAgICAgTWFpbk9iamVjdCAgID0+ICRNYWluT2JqZWN0LAogICAgKTsKICAgIG15ICRYTUxPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6WE1MLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICAgICAgREJPYmplY3QgICAgID0+ICREQk9iamVjdCwKICAgICAgICBNYWluT2JqZWN0ICAgPT4gJE1haW5PYmplY3QsCiAgICApOwogICAgbXkgJENvZGVPYmplY3QgPSB2YXI6OnBhY2thZ2VzZXR1cDo6U3VydmV5LT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICAgICAgTWFpbk9iamVjdCAgID0+ICRNYWluT2JqZWN0LAogICAgICAgIFRpbWVPYmplY3QgICA9PiAkVGltZU9iamVjdCwKICAgICAgICBEQk9iamVjdCAgICAgPT4gJERCT2JqZWN0LAogICAgICAgIFhNTE9iamVjdCAgICA9PiAkWE1MT2JqZWN0LAogICAgKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBjaGVjayBuZWVkZWQgb2JqZWN0cwogICAgZm9yIG15ICRPYmplY3QgKAogICAgICAgIHF3KENvbmZpZ09iamVjdCBMb2dPYmplY3QgRW5jb2RlT2JqZWN0IE1haW5PYmplY3QgVGltZU9iamVjdCBEQk9iamVjdCBYTUxPYmplY3QpCiAgICAgICAgKQogICAgewogICAgICAgICRTZWxmLT57JE9iamVjdH0gPSAkUGFyYW17JE9iamVjdH0gfHwgZGllICJHb3Qgbm8gJE9iamVjdCEiOwogICAgfQoKICAgIHJldHVybiAkU2VsZjsKfQoKPWl0ZW0gQ29kZUluc3RhbGwoKQoKcnVuIHRoZSBjb2RlIGluc3RhbGwgcGFydAoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+Q29kZUluc3RhbGwoKTsKCj1jdXQKCnN1YiBDb2RlSW5zdGFsbCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBDb2RlUmVpbnN0YWxsKCkKCnJ1biB0aGUgY29kZSByZWluc3RhbGwgcGFydAoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+Q29kZVJlaW5zdGFsbCgpOwoKPWN1dAoKc3ViIENvZGVSZWluc3RhbGwgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gQ29kZVVwZ3JhZGUoKQoKcnVuIHRoZSBjb2RlIHVwZ3JhZGUgcGFydAoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+Q29kZVVwZ3JhZGUoKTsKCj1jdXQKCnN1YiBDb2RlVXBncmFkZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBDb2RlVW5pbnN0YWxsKCkKCnJ1biB0aGUgY29kZSB1bmluc3RhbGwgcGFydAoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+Q29kZVVuaW5zdGFsbCgpOwoKPWN1dAoKc3ViIENvZGVVbmluc3RhbGwgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gQ29kZVVwZ3JhZGVGcm9tTG93ZXJUaGFuXzJfMF85MigpCgpUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgZXhlY3V0ZWQgaWYgdGhlIGluc3RhbGxlZCBtb2R1bGUgdmVyc2lvbiBpcyBzbWFsbGVyIHRoYW4gMi4wLjkyLgoKbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5Db2RlVXBncmFkZUZyb21Mb3dlclRoYW5fMl8wXzkyKCk7Cgo9Y3V0CgpzdWIgQ29kZVVwZ3JhZGVGcm9tTG93ZXJUaGFuXzJfMF85MiB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgU0VMRUNUIGFsbCBmdW5jdGlvbmFsaXR5IHZhbHVlcwogICAgJFNlbGYtPntEQk9iamVjdH0tPlByZXBhcmUoCiAgICAgICAgU1FMID0+ICdTRUxFQ1QgaWQsIHNlbmRfdGltZSBGUk9NIHN1cnZleV9yZXF1ZXN0JywKICAgICk7CgogICAgbXkgQExpc3Q7CiAgICBST1c6CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkU2VsZi0+e0RCT2JqZWN0fS0+RmV0Y2hyb3dBcnJheSgpICkgewogICAgICAgIG5leHQgUk9XIGlmICEkUm93WzFdOwoKICAgICAgICBwdXNoIEBMaXN0LCBcQFJvdzsKICAgIH0KCiAgICAjIHNhdmUgZW50cmllcyBpbiBuZXcgdGFibGUKICAgIGZvciBteSAkRW50cnkgKEBMaXN0KSB7CiAgICAgICAgJFNlbGYtPntEQk9iamVjdH0tPkRvKAogICAgICAgICAgICBTUUwgPT4KICAgICAgICAgICAgICAgICdVUERBVEUgc3VydmV5X3JlcXVlc3QgU0VUIGNyZWF0ZV90aW1lID0gPyBXSEVSRSAgaWQgPSA/JywKICAgICAgICAgICAgQmluZCA9PiBbIFwkRW50cnktPlsxXSwgXCRFbnRyeS0+WzBdIF0sCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gQ29kZVVwZ3JhZGVGcm9tTG93ZXJUaGFuXzJfMV81KCkKClRoaXMgZnVuY3Rpb24gaXMgb25seSBleGVjdXRlZCBpZiB0aGUgaW5zdGFsbGVkIG1vZHVsZSB2ZXJzaW9uIGlzIHNtYWxsZXIgdGhhbiAyLjEuNS4KCm15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+Q29kZVVwZ3JhZGVGcm9tTG93ZXJUaGFuXzJfMV81KCk7Cgo9Y3V0CgpzdWIgQ29kZVVwZ3JhZGVGcm9tTG93ZXJUaGFuXzJfMV81IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBzZXQgYWxsIHN1cnZleV9xdWVzdGlvbiByZWNvcmRzCiAgICAjIHRoYXQgZG9uJ3QgaGF2ZSBhbnN3ZXJfcmVxdWlyZWQgc2V0IHRvIHNvbWV0aGluZwogICAgIyB0byAwCiAgICAkU2VsZi0+X1ByZWZpbGxfQW5zd2VyUmVxdWlyZWRGcm9tU3VydmV5UXVlc3Rpb25fMl8xXzUoKTsKCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gX1ByZWZpbGxfQW5zd2VyUmVxdWlyZWRGcm9tU3VydmV5UXVlc3Rpb25fMl8xXzUoKQoKSW5zZXJ0cyAwIGludG8gYWxsIGFuc3dlcl9yZXF1aXJlZCByZWNvcmRzIG9mIHRhYmxlIHN1dmV5X3F1ZXN0aW9uCndoZXJlIHRoZXJlIGlzIG5vIGVudHJ5IHByZXNlbnQuCgogICAgbXkgJFN1Y2Nlc3MgPSAkUGFja2FnZVNldHVwLT5fUHJlZmlsbF9BbnN3ZXJSZXF1aXJlZEZyb21TdXJ2ZXlRdWVzdGlvbl8yXzFfNSgpOwoKPWN1dAoKc3ViIF9QcmVmaWxsX0Fuc3dlclJlcXVpcmVkRnJvbVN1cnZleVF1ZXN0aW9uXzJfMV81IHsKICAgIG15ICgkU2VsZikgPSBAXzsKCiAgICByZXR1cm4gaWYgISRTZWxmLT57REJPYmplY3R9LT5QcmVwYXJlKAogICAgICAgIFNRTCA9PiAnU0VMRUNUIGlkLCBhbnN3ZXJfcmVxdWlyZWQgJwogICAgICAgICAgICAuICdGUk9NIHN1cnZleV9xdWVzdGlvbicsCiAgICAgICAgTGltaXQgPT4gMCwKICAgICk7CiAgICBteSBASWRzVG9VcGRhdGU7CiAgICB3aGlsZSAoIG15IEBSb3cgPSAkU2VsZi0+e0RCT2JqZWN0fS0+RmV0Y2hyb3dBcnJheSgpICkgewoKICAgICAgICAjIGlmIHdlIGhhZCBhbiBpZAogICAgICAgICMgYnV0IG5vIGFuc3dlcl9yZXF1aXJlZCBvciBhbnN3ZXJfcmVxdWlyZWQgaXNuJ3QgMCBvciAxCiAgICAgICAgIyBjb2xsZWN0IHRoZSBJRCBpbiBASWRzVG9VcGRhdGUKICAgICAgICBpZiAoCiAgICAgICAgICAgIGRlZmluZWQgJFJvd1swXQogICAgICAgICAgICAmJiBsZW5ndGggJFJvd1swXQogICAgICAgICAgICAmJiAoCiAgICAgICAgICAgICAgICAhZGVmaW5lZCAkUm93WzFdCiAgICAgICAgICAgICAgICB8fCAoICRSb3dbMV0gbmUgJzAnICYmICRSb3dbMV0gbmUgJzEnICkKICAgICAgICAgICAgKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICBwdXNoIEBJZHNUb1VwZGF0ZSwgJFJvd1swXTsKICAgICAgICB9CiAgICB9CgogICAgZm9yIG15ICRRdWVzdGlvbklEIChASWRzVG9VcGRhdGUpIHsKICAgICAgICAkU2VsZi0+e0RCT2JqZWN0fS0+RG8oCiAgICAgICAgICAgIFNRTCA9PgogICAgICAgICAgICAgICAgJ1VQREFURSBzdXJ2ZXlfcXVlc3Rpb24gU0VUIGFuc3dlcl9yZXF1aXJlZCA9IDAgV0hFUkUgaWQgPSA/JywKICAgICAgICAgICAgQmluZCA9PiBbCiAgICAgICAgICAgICAgICBcJFF1ZXN0aW9uSUQsCiAgICAgICAgICAgIF0sCiAgICAgICAgKTsKICAgIH0KICAgIHJldHVybiAxOwp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBTb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKGh0dHA6Ly9vdHJzLm9yZy8pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAoKPWN1dAo=
IyAtLQojIGNyb24vc3VydmV5X3RyaWdnZXJfc2VuZF9yZXF1ZXN0cyAtIHNlbmQgZGVsYXllZCBzdXJ2ZXkgcmVxdWVzdHMKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNyBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgojIC0tCgojIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB3aXRoIHRoZSBleHRlbnN0aW9uICcuZGlzdCcuCiMgUGxlYXNlIHJlbW92ZSB0aGUgZXh0ZW5zaW9uIGFuZCB1bmNvbW1lbnQgdGhlIGxhc3QgbGluZSBmb3IgcHJvZHVjdGlvbi4KCiMgZXZlcnkgMjAgbWluCiMqLzIwICogKiAqICogJEhPTUUvYmluL290cnMuU3VydmV5VHJpZ2dlclNlbmRSZXF1ZXN0cy5wbCAtZSA+PiAvZGV2L251bGwK
IyEvdXNyL2Jpbi9wZXJsIC13CiMgLS0KIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNyBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFGRkVSTyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCiMgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMKIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQojIG9yIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCiMgdXNlIC4uLyBhcyBsaWIgbG9jYXRpb24KdXNlIEZpbGU6OkJhc2VuYW1lOwp1c2UgRmluZEJpbiBxdygkUmVhbEJpbik7CnVzZSBsaWIgZGlybmFtZSgkUmVhbEJpbik7CnVzZSBsaWIgZGlybmFtZSgkUmVhbEJpbikgLiAiL0tlcm5lbC9jcGFuLWxpYiI7Cgp1c2UgS2VybmVsOjpDb25maWc7CnVzZSBLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnOwp1c2UgS2VybmVsOjpTeXN0ZW06OlRpbWU7CnVzZSBLZXJuZWw6OlN5c3RlbTo6TG9nOwp1c2UgS2VybmVsOjpTeXN0ZW06Ok1haW47CnVzZSBLZXJuZWw6OlN5c3RlbTo6REI7CnVzZSBLZXJuZWw6OlN5c3RlbTo6U3RhdGU7CnVzZSBLZXJuZWw6OlN5c3RlbTo6VGlja2V0Owp1c2UgS2VybmVsOjpTeXN0ZW06OlVzZXI7CnVzZSBLZXJuZWw6OlN5c3RlbTo6U3VydmV5Owp1c2UgR2V0b3B0OjpTdGQ7CgpteSAlb3B0czsKZ2V0b3B0cyggJ2FmaGRldicsIFwlb3B0cyApOwoKbXkgJE9wdHNDb3VudCA9IHNjYWxhcigga2V5cyAlb3B0cyApOwoKaWYgKAogICAgJG9wdHN7aH0KICAgIHx8ICggJE9wdHNDb3VudCA8IDEgKQogICAgfHwgKCAkb3B0c3t2fSAmJiAkT3B0c0NvdW50ICE9IDIgKQogICAgKQp7CiAgICBwcmludCBTVERFUlIgIlVzYWdlOiBiaW4vJDAgWy1oXSBbLWRdIFstZV1cbiI7CiAgICBwcmludCBTVERFUlIgIiQwIFxuIjsKICAgIHByaW50IFNUREVSUiAiVHJpZ2dlciBzZW5kaW5nIGRlbGF5ZWQgc3VydmV5IHJlcXVlc3RzLlxuIjsKICAgIHByaW50IFNUREVSUiAiVXNhZ2U6ICQwIC1oIChEaXNwbGF5IHRoaXMgaGVscCB0ZXh0KVxuIjsKICAgIHByaW50IFNUREVSUiAiVXNhZ2U6ICQwIC1kIChEbyBhIGRyeSBydW4sIGltcGxpZXMgLXYpXG4iOwogICAgcHJpbnQgU1RERVJSICJVc2FnZTogJDAgLWUgKERvIGEgcmVhbCBydW4pXG4iOwogICAgcHJpbnQgU1RERVJSICJVc2FnZTogJDAgLXYgKEJlIG1vcmUgdmVyYm9zZSlcbiI7CiAgICBwcmludCBTVERFUlIgIkNvbmZpZ3VyYXRpb24gaXMgZG9uZSB1c2luZyBTeXNDb25maWcgKFN1cnZleS0+Q29yZSlcbiI7CiAgICBwcmludCBTVERFUlIgIlNob3J0IGV4cGxhbmF0aW9uOlxuIjsKICAgIHByaW50IFNUREVSUiAiMS4gR28gdG8geW91ciBTeXNDb25maWcgYW5kXG4iOwogICAgcHJpbnQgU1RERVJSICIgICAtIGNvbmZpZ3VyZSwgU3VydmV5OjpTZW5kSW5Ib3Vyc0FmdGVyQ2xvc2UgdG8gYSBoaWdoZXIgdmFsdWUgdGhhbiAwXG4iOwogICAgcHJpbnQgU1RERVJSICIyLiBDcmVhdGUgYSBzdXJ2ZXksIG1ha2UgaXQgbWFzdGVyXG4iOwogICAgcHJpbnQgU1RERVJSICIzLiBDcmVhdGUgYSB0aWNrZXQsIGNsb3NlIGl0XG4iOwogICAgcHJpbnQgU1RERVJSICI0LiBXYWl0IHRoZSBuZWNlc3NhcnkgYW1vdW50IG9mIGhvdXJzIHlvdSd2ZSBjb25maWd1cmVkXG4iOwogICAgcHJpbnQgU1RERVJSICI1LiBZb3UgY2FuIGRvIGEgZHJ5IHJ1biB0byBnZXQgYSBsaXN0IG9mIHN1cnZleXMgdGhhdCB3b3VsZCBiZSBzZW50ICgtZClcbiI7CiAgICBwcmludCBTVERFUlIgIjYuIElmIHlvdSdyZSBmaW5lIHdpdGggaXQsIGFjdGl2YXRlIHZhci9jcm9uL2dlbmVyaWNfYWdlbnRfc3VydmV5LmRpc3RcbiI7CiAgICBwcmludCBTVERFUlIgIkNvcHlyaWdodCAoQykgMjAwMS0yMDE3IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS9cbiI7CiAgICBleGl0Owp9CgojIGEgZHJ5IHJ1biBpbXBsaWVzIHZlcmJvc2l0eQppZiAoICRvcHRze2R9ICkgewogICAgJG9wdHN7dn0gPSAxOwp9CgojIGNvbW1vbiBvYmplY3RzCm15ICVDb21tb25PYmplY3QgPSAoKTsKJENvbW1vbk9iamVjdHtDb25maWdPYmplY3R9ID0gS2VybmVsOjpDb25maWctPm5ldygpOwokQ29tbW9uT2JqZWN0e0VuY29kZU9iamVjdH0gPSBLZXJuZWw6OlN5c3RlbTo6RW5jb2RlLT5uZXcoJUNvbW1vbk9iamVjdCk7CiRDb21tb25PYmplY3R7TG9nT2JqZWN0fSAgICA9IEtlcm5lbDo6U3lzdGVtOjpMb2ctPm5ldygKICAgIExvZ1ByZWZpeCA9PiAnT1RSUy1vdHJzLlN1cnZleVRyaWdnZXJTZW5kUmVxdWVzdCcsCiAgICAlQ29tbW9uT2JqZWN0LAopOwokQ29tbW9uT2JqZWN0e1RpbWVPYmplY3R9ICAgICAgPSBLZXJuZWw6OlN5c3RlbTo6VGltZS0+bmV3KCVDb21tb25PYmplY3QpOwokQ29tbW9uT2JqZWN0e01haW5PYmplY3R9ICAgICAgPSBLZXJuZWw6OlN5c3RlbTo6TWFpbi0+bmV3KCVDb21tb25PYmplY3QpOwokQ29tbW9uT2JqZWN0e0RCT2JqZWN0fSAgICAgICAgPSBLZXJuZWw6OlN5c3RlbTo6REItPm5ldyglQ29tbW9uT2JqZWN0KTsKJENvbW1vbk9iamVjdHtTeXNDb25maWdPYmplY3R9ID0gS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZy0+bmV3KCVDb21tb25PYmplY3QpOwokQ29tbW9uT2JqZWN0e1RpY2tldE9iamVjdH0gICAgPSBLZXJuZWw6OlN5c3RlbTo6VGlja2V0LT5uZXcoJUNvbW1vbk9iamVjdCk7CiRDb21tb25PYmplY3R7VXNlck9iamVjdH0gICAgICA9IEtlcm5lbDo6U3lzdGVtOjpVc2VyLT5uZXcoJUNvbW1vbk9iamVjdCk7CiRDb21tb25PYmplY3R7U3RhdGVPYmplY3R9ICAgICA9IEtlcm5lbDo6U3lzdGVtOjpTdGF0ZS0+bmV3KCVDb21tb25PYmplY3QpOwokQ29tbW9uT2JqZWN0e1N1cnZleU9iamVjdH0gICAgPSBLZXJuZWw6OlN5c3RlbTo6U3VydmV5LT5uZXcoJUNvbW1vbk9iamVjdCk7CgpteSAkU2VuZEluSG91cnNBZnRlckNsb3NlID0gJENvbW1vbk9iamVjdHtDb25maWdPYmplY3R9LT5HZXQoJ1N1cnZleTo6U2VuZEluSG91cnNBZnRlckNsb3NlJyk7CmlmICggISRTZW5kSW5Ib3Vyc0FmdGVyQ2xvc2UgKSB7CiAgICBpZiAoICRvcHRze3Z9ICkgewogICAgICAgIHByaW50ICJObyBkYXlzIGNvbmZpZ3VyZWQgaW4gU3VydmV5OjpTZW5kSW5Ib3Vyc0FmdGVyQ2xvc2UuXG4iOwogICAgfQogICAgZXhpdCAxOwp9CgojIEZpbmQgc3VydmV5X3JlcXVlc3RzIHRoYXQgaGF2ZW4ndCBiZWVuIHNlbnQgeWV0CiRDb21tb25PYmplY3R7REJPYmplY3R9LT5QcmVwYXJlKAogICAgU1FMID0+ICJTRUxFQ1QgaWQsIHRpY2tldF9pZCwgY3JlYXRlX3RpbWUgRlJPTSBzdXJ2ZXlfcmVxdWVzdCBXSEVSRSAiCiAgICAgICAgLiAiKHNlbmRfdGltZSBJUyBOVUxMIE9SIHNlbmRfdGltZSA9ICcwMDAwLTAwLTAwIDAwOjAwOjAwJykgT1JERVIgQlkgY3JlYXRlX3RpbWUgREVTQyIsCik7CgojIGZldGNoIHRoZSByZXN1bHQKbXkgQFJvd3M7CndoaWxlICggbXkgQFJvdyA9ICRDb21tb25PYmplY3R7REJPYmplY3R9LT5GZXRjaHJvd0FycmF5KCkgKSB7CiAgICBwdXNoIEBSb3dzLCB7CiAgICAgICAgSUQgICAgICAgICA9PiAkUm93WzBdLAogICAgICAgIFRpY2tldElEICAgPT4gJFJvd1sxXSwKICAgICAgICBDcmVhdGVUaW1lID0+ICRSb3dbMl0sCiAgICB9Owp9CgojIEdldCBTeXN0ZW1UaW1lIGluIFVuaXhUaW1lCm15ICROb3cgPSAkQ29tbW9uT2JqZWN0e1RpbWVPYmplY3R9LT5TeXN0ZW1UaW1lKCk7CgpTVVJWRVlSRVFVRVNUOgpmb3IgbXkgJExpbmUgKEBSb3dzKSB7CiAgICBmb3IgbXkgJFZhbCAocXcoSUQgVGlja2V0SUQgQ3JlYXRlVGltZSkpIHsKICAgICAgICBpZiAoICEkTGluZS0+eyRWYWx9ICkgewogICAgICAgICAgICBpZiAoICRvcHRze3Z9ICkgewogICAgICAgICAgICAgICAgcHJpbnQgIiRWYWwgbWlzc2luZyBpbiBzZXJ2aWNlX3JlcXVlc3Qgcm93LlxuIjsKICAgICAgICAgICAgfQogICAgICAgICAgICBuZXh0IFNVUlZFWVJFUVVFU1Q7CiAgICAgICAgfQogICAgfQoKICAgICMgQ29udmVydCBjcmVhdGVfdGltZSB0byB1bml4dGltZQogICAgbXkgJENyZWF0ZVRpbWUgPSAkQ29tbW9uT2JqZWN0e1RpbWVPYmplY3R9LT5UaW1lU3RhbXAyU3lzdGVtVGltZSggU3RyaW5nID0+ICRMaW5lLT57Q3JlYXRlVGltZX0gKTsKCiAgICAjIGRvbid0IHNlbmQgZm9yIHN1cnZleV9yZXF1ZXN0cyB0aGF0IGFyZSB5b3VuZ2VyIHRoYW4gQ3JlYXRlVGltZSArICRTZW5kSU5Ib3Vyc0FmdGVyQ2xvc2UKICAgIGlmICggJFNlbmRJbkhvdXJzQWZ0ZXJDbG9zZSAqIDM2MDAgKyAkQ3JlYXRlVGltZSA+ICROb3cgKSB7CiAgICAgICAgaWYgKCAkb3B0c3t2fSApIHsKICAgICAgICAgICAgcHJpbnQKICAgICAgICAgICAgICAgICJEaWQgbm90IHNlbmQgZm9yIHN1cnZleV9yZXF1ZXN0IHdpdGggaWQgJExpbmUtPntJRH0gYmVjYXVlIHNlbmQgdGltZSB3YXMndCByZWFjaGVkIHlldC5cbiI7CiAgICAgICAgfQogICAgICAgIG5leHQgU1VSVkVZUkVRVUVTVDsKICAgIH0KCiAgICBpZiAoICRvcHRze3Z9ICkgewogICAgICAgIHByaW50CiAgICAgICAgICAgICJTZW5kaW5nIHN1cnZleSBmb3Igc3VydmV5X3JlcXVlc3Qgd2l0aCBpZCAkTGluZS0+e0lEfSB0aGF0IGJlbG9uZ3MgdG8gVGlja2V0SUQgJExpbmUtPntUaWNrZXRJRH0uXG4iOwogICAgfQogICAgaWYgKCAhJG9wdHN7ZH0gJiYgJExpbmUtPntJRH0gJiYgJExpbmUtPntUaWNrZXRJRH0gKSB7CiAgICAgICAgJENvbW1vbk9iamVjdHtTdXJ2ZXlPYmplY3R9LT5SZXF1ZXN0U2VuZCgKICAgICAgICAgICAgVHJpZ2dlclNlbmRSZXF1ZXN0cyA9PiAxLAogICAgICAgICAgICBT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YmoKNCAwIG9iagpbL0lDQ0Jhc2VkIDIgMCBSXQplbmRvYmoKNSAwIG9iago8PAogIC9UeXBlIC9NZXRhZGF0YQogIC9TdWJ0eXBlIC9YTUwKICAvTGVuZ3RoIDYgMCBSCj4+CnN0cmVhbQo8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iPgo8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgo8cmRmOkRlc2NyaXB0aW9uIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgcmRmOmFib3V0PSIiPgo8ZGM6Zm9ybWF0PmFwcGxpY2F0aW9uL3BkZjwvZGM6Zm9ybWF0Pgo8ZGM6bGFuZ3VhZ2U+ZW48L2RjOmxhbmd1YWdlPgo8ZGM6ZGF0ZT4yMDE3LTEwLTA5VDE1OjMyOjQzKzAyOjAwPC9kYzpkYXRlPgo8L3JkZjpEZXNjcmlwdGlvbj4KPHJkZjpEZXNjcmlwdGlvbiB4bWxuczpwZGY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGRmLzEuMy8iIHJkZjphYm91dD0iIj4KPHBkZjpQcm9kdWNlcj5BcGFjaGUgRk9QIFZlcnNpb24gMi4xPC9wZGY6UHJvZHVjZXI+CjxwZGY6UERGVmVyc2lvbj4xLjQ8L3BkZjpQREZWZXJzaW9uPgo8L3JkZjpEZXNjcmlwdGlvbj4KPHJkZjpEZXNjcmlwdGlvbiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHJkZjphYm91dD0iIj4KPHhtcDpDcmVhdG9yVG9vbD5BcGFjaGUgRk9QIFZlcnNpb24gMi4xPC94bXA6Q3JlYXRvclRvb2w+Cjx4bXA6TWV0YWRhdGFEYXRlPjIwMTctMTAtMDlUMTU6MzI6NDMrMDI6MDA8L3htcDpNZXRhZGF0YURhdGU+Cjx4bXA6Q3JlYXRlRGF0ZT4yMDE3LTEwLTA5VDE1OjMyOjQzKzAyOjAwPC94bXA6Q3JlYXRlRGF0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MCAwIDYxMiA3OTJdCiAgL1BhcmVudCAxNSAwIFIKICAvQ29udGVudHMgNTYgMCBSCj4+CmVuZG9iago1OSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMiAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iago2MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDY3OS42MjkgMTE3LjE5IDY4OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNTkgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMxLjY4OSA2NzkuNjI5IDUzOS45OTkgNjg5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA1OSAwIFIKL0ggL0kKCj4+CmVuZG9iago2MiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyNSAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iago2MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDY2Ny42MjkgMTUzLjg1OCA2NzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDYyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjY0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNjY3LjYyOSA1MzkuOTk4IDY3Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjIgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKNjYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA2NTUuNjI5IDE5OS44MTUgNjY1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA2NSAwIFIKL0ggL0kKCj4+CmVuZG9iago2NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDY1NS42MjkgNTM5Ljk5OCA2NjUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDY1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjY4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI4IDAgUiAvWFlaIDcyLjAgNzAwLjggbnVsbF0KPj4KZW5kb2JqCjY5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY0My42MjkgMTczLjQwOCA2NTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDY4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjcwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNjQzLjYyOSA1MzkuOTk4IDY1My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjggMCBSCi9IIC9JCgo+PgplbmRvYmoKNzEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCA2MjYuNCBudWxsXQo+PgplbmRvYmoKNzIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjMxLjYyOSAxNjQuOTEzIDY0MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzEgMCBSCi9IIC9JCgo+PgplbmRvYmoKNzMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjgwNyA2MzEuNjI5IDU0MC4xNjcgNjQxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3MSAwIFIKL0ggL0kKCj4+CmVuZG9iago3NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDU1OC4wIG51bGxdCj4+CmVuZG9iago3NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MTkuNjI5IDIwOS41NTIgNjI5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3NCAwIFIKL0ggL0kKCj4+CmVuZG9iago3NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDYxOS42MjkgNTM5Ljk5OCA2MjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDc0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjc3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI4IDAgUiAvWFlaIDcyLjAgNDg5LjYgbnVsbF0KPj4KZW5kb2JqCjc4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDYwNy42MjkgMjIxLjc5NCA2MTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDc3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjc5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNjA3LjYyOSA1MzkuOTk4IDYxNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzcgMCBSCi9IIC9JCgo+PgplbmRvYmoKODAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzQgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKODEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA1OTUuNjI5IDE0OS4zOSA2MDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDgwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjgyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNTk1LjYyOSA1MzkuOTk4IDYwNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODAgMCBSCi9IIC9JCgo+PgplbmRvYmoKODMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzQgMCBSIC9YWVogNzIuMCA2NzguOCBudWxsXQo+PgplbmRvYmoKODQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTgzLjYyOSAxOTkuMDA2IDU5My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODMgMCBSCi9IIC9JCgo+PgplbmRvYmoKODUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA1ODMuNjI5IDUzOS45OTggNTkzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4MyAwIFIKL0ggL0kKCj4+CmVuZG9iago4NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszNCAwIFIgL1hZWiA3Mi4wIDYwMi40IG51bGxdCj4+CmVuZG9iago4NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1NzEuNjI5IDE5NC42NDEgNTgxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4NiAwIFIKL0ggL0kKCj4+CmVuZG9iago4OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDU3MS42MjkgNTM5Ljk5OCA1ODEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDg2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjg5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM3IDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjkwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNTU5LjYyOSAxNjEuNzg0IDU2OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODkgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA1NTkuNjI5IDUzOS45OTggNTY5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4OSAwIFIKL0ggL0kKCj4+CmVuZG9iago5MiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszNyAwIFIgL1hZWiA3Mi4wIDY3OC44IG51bGxdCj4+CmVuZG9iago5MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1NDcuNjI5IDIzMS42NTggNTU3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5MiAwIFIKL0ggL0kKCj4+CmVuZG9iago5NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDU0Ny42MjkgNTM5Ljk5NyA1NTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDkyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjk1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM3IDAgUiAvWFlaIDcyLjAgNjE0LjQgbnVsbF0KPj4KZW5kb2JqCjk2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDUzNS42MjkgMjE0Ljk4NCA1NDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDk1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjk3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgNTM1LjYyOSA1MzkuOTk3IDU0NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTUgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzcgMCBSIC9YWVogNzIuMCA1MjYuMCBudWxsXQo+PgplbmRvYmoKOTkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTIzLjYyOSAyNTEuMjUgNTMzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA1MjMuNjI5IDUzOS45OTggNTMzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzcgMCBSIC9YWVogNzIuMCA0NjEuNiBudWxsXQo+PgplbmRvYmoKMTAyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDUxMS42MjkgMzAzLjczMiA1MjEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEwMSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyA1MTEuNjI5IDUzOS45OTcgNTIxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMDEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTA0IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM3IDAgUiAvWFlaIDcyLjAgMzk3LjIgbnVsbF0KPj4KZW5kb2JqCjEwNSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0OTkuNjI5IDI1My4xNjIgNTA5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMDQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTA2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNDk5LjYyOSA1MzkuOTk4IDUwOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTA0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEwNyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszNyAwIFIgL1hZWiA3Mi4wIDMzMi44IG51bGxdCj4+CmVuZG9iagoxMDggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDg3LjYyOSAyNDEuMDkgNDk3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMDcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTA5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNDg3LjYyOSA1MzkuOTk4IDQ5Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTA3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjExMCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszNyAwIFIgL1hZWiA3Mi4wIDI2OC40IG51bGxdCj4+CmVuZG9iagoxMTEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDc1LjYyOSAyNjkuNDk4IDQ4NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTEwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjExMiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDQ3NS42MjkgNTM5Ljk5NyA0ODUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDExMCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMTMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzcgMCBSIC9YWVogNzIuMCAyMDQuMCBudWxsXQo+PgplbmRvYmoKMTE0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDQ2My42MjkgMzY4LjczNCA0NzMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDExMyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMTUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA0NjMuNjI5IDUzOS45OTggNDczLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMTMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTE2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQwIDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjExNyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDQ1MS42MjkgMTI1LjMgNDYxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMTYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTE4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNDUxLjYyOSA1MzkuOTk4IDQ2MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTE2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjExOSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MCAwIFIgL1hZWiA3Mi4wIDcwMC44IG51bGxdCj4+CmVuZG9iagoxMjAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDM5LjYyOSAyMTUuMzAxIDQ0OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTE5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEyMSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDQzOS42MjkgNTM5Ljk5OCA0NDkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDExOSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMjIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAgMCBSIC9YWVogNzIuMCA1NzUuNTY3IG51bGxdCj4+CmVuZG9iagoxMjMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDI3LjYyOSAxOTEuNzE0IDQzNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTIyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjEyNCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDQyNy42MjkgNTM5Ljk5OCA0MzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEyMiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMjUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAgMCBSIC9YWVogNzIuMCAyNDIuODI1IG51bGxdCj4+CmVuZG9iagoxMjYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDE1LjYyOSAyNzEuOTc2IDQyNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTI1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEyNyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDQxNS42MjkgNTM5Ljk5OCA0MjUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEyNSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMjggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDMgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKMTI5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDQwMy42MjkgMjI3Ljk5IDQxMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTI4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEzMCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDQwMy42MjkgNTM5Ljk5OCA0MTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEyOCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDMgMCBSIC9YWVogNzIuMCA0NDguMTU3IG51bGxdCj4+CmVuZG9iagoxMzIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzkxLjYyOSAxODIuNjg1IDQwMS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTMxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjEzMyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDM5MS42MjkgNTM5Ljk5OCA0MDEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzMSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDMgMCBSIC9YWVogNzIuMCAzMTYuMSBudWxsXQo+PgplbmRvYmoKMTM1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDM3OS42MjkgMjA1LjY2MyAzODkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzNCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCAzNzkuNjI5IDUzOS45OTggMzg5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTM3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ2IDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjEzOCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDM2Ny42MjkgMjYxLjc3NCAzNzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzNyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCAzNjcuNjI5IDUzOS45OTggMzc3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTQwIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQ5IDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjE0MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDM1NS42MjkgMTI1LjU2IDM2NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDM1NS42MjkgNTM5Ljk5OCAzNjUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE0MCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNDMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTUgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKMTQ0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgMzQzLjYyOSAxMTkuMDYgMzUzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNDMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTQ1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yNzggMzQzLjYyOSA1MzkuOTk4IDM1My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1NSAwIFIgL1hZWiA3Mi4wIDY3OC44IG51bGxdCj4+CmVuZG9iagoxNDcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzMxLjYyOSAxNjUuOTIzIDM0MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQ2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjc4IDMzMS42MjkgNTM5Ljk5OCAzNDEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE0NiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNDkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTUgMCBSIC9YWVogNzIuMCA2MjQuNCBudWxsXQo+PgplbmRvYmoKMTUwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDMxOS42MjkgMTUzLjczMSAzMjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE0OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNTEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjI3OCAzMTkuNjI5IDUzOS45OTggMzI5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNDkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTUyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzU4IDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjE1MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDMwNy42MjkgMTUwLjMzMyAzMTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE1MiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNTQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjQ0OCAzMDcuNjI5IDU0MC4xNjggMzE3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNTIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTU1IDAgb2JqCjw8IC9MZW5ndGggMTU2IDAgUiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeJzNvcuuLUl2HDi/X3F+gEF/P4BGApX1ELpnggrQgOBIgqQBSw2O9Pu9bHnscD9n7yLMGiBAEMnKvDfs7IgTOyzMl9uy9a+/4lew//sH/E+f6eu//e3Xv95/Fr96+srt+x/F2r5yuEZtIUT7q4UM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F2++XZkxn/4o/PjPdUB4/cv/+vqvv/73r/D1n3790z/bn/53+/P69X9+rc/48WP+i53+eQHrr8WzxbSt2X7+Zzj+VTnDA46zC1//89fvf/31j3+x32kMX3/9H8eNuvqKvRlfYAsk2gT7Ft23ye6Z/fPxNiVUJnP7j31T8H//H4ylDA8KZW5kc3RyZWFtCmVuZG9iagoxNTYgMCBvYmoKMjE4NDIKZW5kb2JqCjE1NyAwIG9iagpbCjYwIDAgUgo2MSAwIFIKNjMgMCBSCjY0IDAgUgo2NiAwIFIKNjcgMCBSCjY5IDAgUgo3MCAwIFIKNzIgMCBSCjczIDAgUgo3NSAwIFIKNzYgMCBSCjc4IDAgUgo3OSAwIFIKODEgMCBSCjgyIDAgUgo4NCAwIFIKODUgMCBSCjg3IDAgUgo4OCAwIFIKOTAgMCBSCjkxIDAgUgo5MyAwIFIKOTQgMCBSCjk2IDAgUgo5NyAwIFIKOTkgMCBSCjEwMCAwIFIKMTAyIDAgUgoxMDMgMCBSCjEwNSAwIFIKMTA2IDAgUgoxMDggMCBSCjEwOSAwIFIKMTExIDAgUgoxMTIgMCBSCjExNCAwIFIKMTE1IDAgUgoxMTcgMCBSCjExOCAwIFIKMTIwIDAgUgoxMjEgMCBSCjEyMyAwIFIKMTI0IDAgUgoxMjYgMCBSCjEyNyAwIFIKMTI5IDAgUgoxMzAgMCBSCjEzMiAwIFIKMTMzIDAgUgoxMzUgMCBSCjEzNiAwIFIKMTM4IDAgUgoxMzkgMCBSCjE0MSAwIFIKMTQyIDAgUgoxNDQgMCBSCjE0NSAwIFIKMTQ3IDAgUgoxNDggMCBSCjE1MCAwIFIKMTUxIDAgUgoxNTMgMCBSCjE1NCAwIFIKXQplbmRvYmoKMTU4IDAgb2JqCjw8CiAgL1Jlc291cmNlcyAxNCAwIFIKICAvVHlwZSAvUGFnZQogIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCiAgL0Nyb3BCb3ggWzAgMCA2MTIgNzkyXQogIC9CbGVlZEJveCBbMCAwIDYxMiA3OTJdCiAgL1RyaW1Cb3ggWzAgMCA2MTIgNzkyXQogIC9QYXJlbnQgMTUgMCBSCiAgL0Fubm90cyAxNTcgMCBSCiAgL0NvbnRlbnRzIDE1NSAwIFIKPj4KZW5kb2JqCjE1OSAwIG9i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ZW5kc3RyZWFtCmVuZG9iagoxNzIgMCBvYmoKMjcKZW5kb2JqCjE3MyAwIG9iago8PAogIC9UeXBlIC9Gb250CiAgL1N1YnR5cGUgL1R5cGUwCiAgL0Jhc2VGb250IC9FQUFBQUIrRGVqYVZ1U2FucwogIC9FbmNvZGluZyAvSWRlbnRpdHktSAogIC9Ub1VuaWNvZGUgMTc0IDAgUgogIC9EZXNjZW5kYW50Rm9udHMgWzE3NSAwIFJdCj4+CmVuZG9iagoxNzUgMCBvYmoKPDwgL1R5cGUgL0ZvbnQKL0Jhc2VGb250IC9FQUFBQUIrRGVqYVZ1U2FucyAKL0NJRFRvR0lETWFwIC9JZGVudGl0eSAKL1N1YnR5cGUgL0NJREZvbnRUeXBlMgovQ0lEU3lzdGVtSW5mbyA8PCAvUmVnaXN0cnkgKEFkb2JlKSAvT3JkZXJpbmcgKFVDUykgL1N1cHBsZW1lbnQgMCA+PgovRm9udERlc2NyaXB0b3IgMTY4IDAgUgovRFcgMAovVyBbIDAgWzYwMCAzMTcgMzYwIDYwMyA0MTEgNjE1IDM1MiA2MTIgNTQ5IDMxNyA4NjIgNjM2IDU3NSAzOTIgNjMzIDU1NyAyNzcgNTIwIDYzNiA2MzQgNTkxIDk3NCA2OTQgNjM0IDYzMyA4MTcgNjExIDU3OSA2MzQgNjM2IDc4NyA2MzQgNjM2IDYxMCA2MzMgNjM0IDI5NCAyNzcgNjg0IDY5OCA1OTEgMzM2IDY4NCA3NzAgNzQ4IDY4NiA2MzYgNjM0IDI3NyA2MzYgNjM2IDYzMSA1OTEgNjM2IDgzNyA3MzEgNzg3IDc3NCA2MzYgMzE3IDU4OSA1MjQgMzkwIDM5MCAzMzYgNTMwIDgzNyA5ODggNDU5IDYxMCAyNzQgNjM2IDUwMCA2NTUgNzUxIDY4NSA0MDAgXSBdCj4+CmVuZG9iagoxNzQgMCBvYmoKPDwgL0xlbmd0aCAxNzYgMCBSIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4nF2U246bMBCG7/cpfLm9WIE9xmykVaQqVaVc9KCmfQACJovUACLkIm9f8DfJSkXK4ccz4/lm7Ml2+y/7vptN9nMa6kOcTdv1zRQvw3WqoznGU9c/WWearp5Vpe/6XI1P2eJ8uF3meN737WAEq+Y6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CiAgL0ltNCAxOCAwIFIKPj4KICAvQ29sb3JTcGFjZSA8PCAvRGVmYXVsdFJHQiA0IDAgUiA+Pgo+PgplbmRvYmoKMTg3IDAgb2JqCjw8IC9OdW1zIFswIDw8IC9TIC9EID4+IDEgPDwgL1MgL3IgL1N0IDIgPj4gMiA8PCAvUyAvciAvU3QgMyA+PiAzIDw8IC9TIC9EID4+XSA+PgplbmRvYmoKeHJlZgowIDE4OAowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMTUgMDAwMDAgbiAKMDAwMDAwMDE0NSAwMDAwMCBuIAowMDAwMDAyNjgzIDAwMDAwIG4gCjAwMDAwMDI3MDMgMDAwMDAgbiAKMDAwMDAwMjczNiAwMDAwMCBuIAowMDAwMDAzNjgzIDAwMDAwIG4gCjAwMDAwMDM3MDIgMDAwMDAgbiAKMDAwMDA1MjIyNyAwMDAwMCBuIAowMDAwMDUyMjQ4IDAwMDAwIG4gCjAwMDAxMDU1MDggMDAwMDAgbiAKMDAwMDEwNTUzMCAwMDAwMCBuIAowMDAwMTA2MDIyIDAwMDAwIG4gCjAwMDAxMDYwNDIgMDAwMDAgbiAKMDAwMDIxODUzNiAwMDAwMCBuIAowMDAwMjE4Mjc0IDAwMDAwIG4gCjAwMDAxMDYyMzYgMDAwMDAgbiAKMDAwMDExMjQwNyAwMDAwMCBuIAowMDAwMTEyNDI4IDAwMDAwIG4gCjAwMDAxMTk2MDggMDAwMDAgbiAKMDAwMDExOTYyOSAwMDAwMCBuIAowMDAwMTIwMjUyIDAwMDAwIG4gCjAwMDAxMjAyNzIgMDAwMDAgbiAKMDAwMDEyMDQ2NiAwMDAwMCBuIAowMDAwMTIxMjI1IDAwMDAwIG4gCjAwMDAxMjEyNDUgMDAwMDAgbiAKMDAwMDEyMTQzOSAwMDAwMCBuIAowMDAwMTIyMjg4IDAwMDAwIG4gCjAwMDAxMjIzMDggMDAwMDAgbiAKMDAwMDEyMjUwMiAwMDAwMCBuIAowMDAwMTIyNTk3IDAwMDAwIG4gCjAwMDAxMjI3MzMgMDAwMDAgbiAKMDAwMDEyMzk3MCAwMDAwMCBuIAowMDAwMTIzOTkxIDAwMDAwIG4gCjAwMDAxMjQwMTggMDAwMDAgbiAKMDAwMDEyNDIyOSAwMDAwMCBuIAowMDAwMTI1ODg1IDAwMDAwIG4gCjAwMDAxMjU5MDYgMDAwMDAgbiAKMDAwMDEyNjEwMCAwMDAwMCBuIAowMDAwMTI4NTkzIDAwMDAwIG4gCjAwMDAxMjg2MTQgMDAwMDAgbiAKMDAwMDEyODgwOCAwMDAwMCBuIAowMDAwMTMxOTQ0IDAwMDAwIG4gCjAwMDAxMzE5NjUgMDAwMDAgbiAKMDAwMDEzMjE1OSAwMDAwMCBuIAowMDAwMTMzMjUxIDAwMDAwIG4gCjAwMDAxMzMyNzIgMDAwMDAgbiAKMDAwMDEzMzQ2NiAwMDAwMCBuIAowMDAwMTM0NzY5IDAwMDAwIG4gCjAwMDAxMzQ3OTAgMDAwMDAgbiAKMDAwMDEzNDk4NCAwMDAwMCBuIAowMDAwMTM2MDAzIDAwMDAwIG4gCjAwMDAxMzYwMjMgMDAwMDAgbiAKMDAwMDEzNjIxNyAwMDAwMCBuIAowMDAwMTM3ODU3IDAwMDAwIG4gCjAwMDAxMzc4NzggMDAwMDAgbiAKMDAwMDEzODA3MiAwMDAwMCBuIAowMDAwMTM5MzQ0IDAwMDAwIG4gCjAwMDAxMzkzNjUgMDAwMDAgbiAKMDAwMDEzOTU1OSAwMDAwMCBuIAowMDAwMTM5NjM3IDAwMDAwIG4gCjAwMDAxMzk3NzMgMDAwMDAgbiAKMDAwMDEzOTkxMyAwMDAwMCBuIAowMDAwMTM5OTkxIDAwMDAwIG4gCjAwMDAxNDAxMjggMDAwMDAgbiAKMDAwMDE0MDI2OCAwMDAwMCBuIAowMDAwMTQwMzQ2IDAwMDAwIG4gCjAwMDAxNDA0ODMgMDAwMDAgbiAKMDAwMDE0MDYyMyAwMDAwMCBuIAowMDAwMTQwNzAxIDAwMDAwIG4gCjAwMDAxNDA4MzkgMDAwMDAgbiAKMDAwMDE0MDk3OSAwMDAwMCBuIAowMDAwMTQxMDU3IDAwMDAwIG4gCjAwMDAxNDExOTUgMDAwMDAgbiAKMDAwMDE0MTMzNSAwMDAwMCBuIAowMDAwMTQxNDEzIDAwMDAwIG4gCjAwMDAxNDE1NTEgMDAwMDAgbiAKMDAwMDE0MTY5MSAwMDAwMCBuIAowMDAwMTQxNzY5IDAwMDAwIG4gCjAwMDAxNDE5MDcgMDAwMDAgbiAKMDAwMDE0MjA0NyAwMDAwMCBuIAowMDAwMTQyMTI1IDAwMDAwIG4gCjAwMDAxNDIyNjEgMDAwMDAgbiAKMDAwMDE0MjQwMSAwMDAwMCBuIAowMDAwMTQyNDc5IDAwMDAwIG4gCjAwMDAxNDI2MTcgMDAwMDAgbiAKMDAwMDE0Mjc1NyAwMDAwMCBuIAowMDAwMTQyODM1IDAwMDAwIG4gCjAwMDAxNDI5NzMgMDAwMDAgbiAKMDAwMDE0MzExMyAwMDAwMCBuIAowMDAwMTQzMTkxIDAwMDAwIG4gCjAwMDAxNDMzMjggMDAwMDAgbiAKMDAwMDE0MzQ2OCAwMDAwMCBuIAowMDAwMTQzNTQ2IDAwMDAwIG4gCjAwMDAxNDM2ODQgMDAwMDAgbiAKMDAwMDE0MzgyNCAwMDAwMCBuIAowMDAwMTQzOTAyIDAwMDAwIG4gCjAwMDAxNDQwNDAgMDAwMDAgbiAKMDAwMDE0NDE4MCAwMDAwMCBuIAowMDAwMTQ0MjU4IDAwMDAwIG4gCjAwMDAxNDQzOTUgMDAwMDAgbiAKMDAwMDE0NDUzNiAwMDAwMCBuIAowMDAwMTQ0NjE1IDAwMDAwIG4gCjAwMDAxNDQ3NTUgMDAwMDAgbiAKMDAwMDE0NDg5NyAwMDAwMCBuIAowMDAwMTQ0OTc2IDAwMDAwIG4gCjAwMDAxNDUxMTYgMDAwMDAgbiAKMDAwMDE0NTI1OCAwMDAwMCBuIAowMDAwMTQ1MzM3IDAwMDAwIG4gCjAwMDAxNDU0NzYgMDAwMDAgbiAKMDAwMDE0NTYxOCAwMDAwMCBuIAowMDAwMTQ1Njk3IDAwMDAwIG4gCjAwMDAxNDU4MzcgMDAwMDAgbiAKMDAwMDE0NTk3OSAwMDAwMCBuIAowMDAwMTQ2MDU4IDAwMDAwIG4gCjAwMDAxNDYxOTggMDAwMDAgbiAKMDAwMDE0NjM0MCAwMDAwMCBuIAowMDAwMTQ2NDE5IDAwMDAwIG4gCjAwMDAxNDY1NTYgMDAwMDAgbiAKMDAwMDE0NjY5OCAwMDAwMCBuIAowMDAwMTQ2Nzc3IDAwMDAwIG4gCjAwMDAxNDY5MTcgMDAwMDAgbiAKMDAwMDE0NzA1OSAwMDAwMCBuIAowMDAwMTQ3MTQwIDAwMDAwIG4gCjAwMDAxNDcyODAgMDAwMDAgbiAKMDAwMDE0NzQyMiAwMDAwMCBuIAowMDAwMTQ3NTAzIDAwMDAwIG4gCjAwMDAxNDc2NDMgMDAwMDAgbiAKMDAwMDE0Nzc4NSAwMDAwMCBuIAowMDAwMTQ3ODY0IDAwMDAwIG4gCjAwMDAxNDgwMDMgMDAwMDAgbiAKMDAwMDE0ODE0NSAwMDAwMCBuIAowMDAwMTQ4MjI2IDAwMDAwIG4gCjAwMDAxNDgzNjYgMDAwMDAgbiAKMDAwMDE0ODUwOCAwMDAwMCBuIAowMDAwMTQ4NTg3IDAwMDAwIG4gCjAwMDAxNDg3MjcgMDAwMDAgbiAKMDAwMDE0ODg2OSAwMDAwMCBuIAowMDAwMTQ4OTQ4IDAwMDAwIG4gCjAwMDAxNDkwODcgMDAwMDAgbiAKMDAwMDE0OTIyOSAwMDAwMCBuIAowMDAwMTQ5MzA4IDAwMDAwIG4gCjAwMDAxNDk0NDYgMDAwMDAgbiAKMDAwMDE0OTU4OCAwMDAwMCBuIAowMDAwMTQ5NjY3IDAwMDAwIG4gCjAwMDAxNDk4MDUgMDAwMDAgbiAKMDAwMDE0OTk0NyAwMDAwMCBuIAowMDAwMTUwMDI2IDAwMDAwIG4gCjAwMDAxNTAxNjYgMDAwMDAgbiAKMDAwMDE1MDMwOCAwMDAwMCBuIAowMDAwMTUwMzg3IDAwMDAwIG4gCjAwMDAxNTA1MjcgMDAwMDAgbiAKMDAwMDE1MDY2OSAwMDAwMCBuIAowMDAwMTUwNzQ4IDAwMDAwIG4gCjAwMDAxNTA4ODcgMDAwMDAgbiAKMDAwMDE1MTAyOSAwMDAwMCBuIAowMDAwMTcyOTQ5IDAwMDAwIG4gCjAwMDAxNzI5NzIgMDAwMDAgbiAKMDAwMDE3MzQ3OCAwMDAwMCBuIAowMDAwMTczNjkyIDAwMDAwIG4gCjAwMDAxNzM5NTcgMDAwMDAgbiAKMDAwMDE4ODMyOSAwMDAwMCBuIAowMDAwMTg4MzA2IDAwMDAwIG4gCjAwMDAxODg0MjkgMDAwMDAgbiAKMDAwMDE4ODQ0OSAwMDAwMCBuIAowMDAwMTg5MDkxIDAwMDAwIG4gCjAwMDAxODg2MTQgMDAwMDAgbiAKMDAwMDE4OTY2MSAwMDAwMCBuIAowMDAwMTg5NjgyIDAwMDAwIG4gCjAwMDAxODk5NDIgMDAwMDAgbiAKMDAwMDIwNjAxMiAwMDAwMCBuIAowMDAwMjA1OTg5IDAwMDAwIG4gCjAwMDAyMDYxMTcgMDAwMDAgbiAKMDAwMDIwNjEzNyAwMDAwMCBuIAowMDAwMjA2ODI4IDAwMDAwIG4gCjAwMDAyMDYyOTcgMDAwMDAgbiAKMDAwMDIwNzQ3MSAwMDAwMCBuIAowMDAwMjA3NDkyIDAwMDAwIG4gCjAwMDAyMDc3NTQgMDAwMDAgbiAKMDAwMDIxNzEzOCAwMDAwMCBuIAowMDAwMjE3MTE2IDAwMDAwIG4gCjAwMDAyMTcyMzYgMDAwMDAgbiAKMDAwMDIxNzI1NiAwMDAwMCBuIAowMDAwMjE3Nzg3IDAwMDAwIG4gCjAwMDAyMTc0MjAgMDAwMDAgbiAKMDAwMDIxODI1MyAwMDAwMCBuIAowMDAwMjE4NDI3IDAwMDAwIG4gCjAwMDAyMTg3NjYgMDAwMDAgbiAKdHJhaWxlcgo8PAogIC9Sb290IDE4NiAwIFIKICAvSW5mbyAxIDAgUgogIC9JRCBbPERGMkIwMEREN0ZEMDIyQzdFQUUwODc5QjlBRjhFN0Y2PiA8REYyQjAwREQ3RkQwMjJDN0VBRTA4NzlCOUFGOEU3RjY+XQogIC9TaXplIDE4OAo+PgpzdGFydHhyZWYKMjE4ODY1CiUlRU9GCg==