iPhoneHandle
1.3.3
OTRS AG
http://otrs.org/
GNU AFFERO GENERAL PUBLIC LICENSE Version 3, November 2007
Build for iPhoneHandle 1.3.3.
Build for iPhoneHandle 1.3.2.
Build for iPhoneHandle 1.3.1.
First version for OTRS 3.3.x.
The iPhoneHandle Package.
Das iPhoneHandle Paket.
3.3.x
<br/>
<strong>WELCOME</strong>
<br/>
<br/>
You are about to install the OTRS package iPhoneHandle.<br/>
<br/>
<br/>
<b>ATTENTION</b>
<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>ATTENTION</strong>
<br/>
<br/>
If you uninstall this package, the iPhone app, will not be able to communicate with your server!
<br/>
<br/>
((enjoy))<br/>
<br/>
<br/>
<strong>WELCOME</strong>
<br/>
<br/>
You are about to upgrade the OTRS package iPhoneHandle.<br/>
<br/>
<br/>
((enjoy))<br/>
<br/>
# define function name
my $FunctionName = 'CodeInstall';
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
# load the module
if ( $Self->{MainObject}->Require($CodeModule) ) {
# create new instance
my $CodeObject = $CodeModule->new( %{$Self} );
if ($CodeObject) {
# start method
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 = 'CodeUpgrade';
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
# load the module
if ( $Self->{MainObject}->Require($CodeModule) ) {
# create new instance
my $CodeObject = $CodeModule->new( %{$Self} );
if ($CodeObject) {
# start method
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 = 'CodeUninstall';
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
# load the module
if ( $Self->{MainObject}->Require($CodeModule) ) {
# create new instance
my $CodeObject = $CodeModule->new( %{$Self} );
if ($CodeObject) {
# start method
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 = 'CodeReinstall';
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
# load the module
if ( $Self->{MainObject}->Require($CodeModule) ) {
# create new instance
my $CodeObject = $CodeModule->new( %{$Self} );
if ($CodeObject) {
# start method
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."
);
}
}
2015-09-09 00:36:18
opms.otrs.com
IyEvdXNyL2Jpbi9wZXJsCiMgLS0KIyBiaW4vY2dpLWJpbi9qc29uLnBsIC0ganNvbiBoYW5kbGUKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNSBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFGRkVSTyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCiMgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgVVNBCiMgb3Igc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKIyB1c2UgLi4vLi4vIGFzIGxpYiBsb2NhdGlvbgp1c2UgRmluZEJpbiBxdygkQmluKTsKdXNlIGxpYiAiJEJpbi8uLi8uLiI7CnVzZSBsaWIgIiRCaW4vLi4vLi4vS2VybmVsL2NwYW4tbGliIjsKCiMgbG9hZCBpUGhvbmUgSGFuZGxlIHdlYiBpbnRlcmZhY2UKdXNlIEtlcm5lbDo6U3lzdGVtOjpXZWI6OkludGVyZmFjZWlQaG9uZUhhbmRsZSgpOwoKIyBjcmVhdGUgbmV3IG9iamVjdApteSAkSW50ZXJmYWNlID0gS2VybmVsOjpTeXN0ZW06OldlYjo6SW50ZXJmYWNlaVBob25lSGFuZGxlLT5uZXcoKTsKCiMgZXhlY3V0ZSBvYmplY3QKbXkgJFJlc3BvbnNlID0gJEludGVyZmFjZS0+UnVuKCk7CgpwcmludCAiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBcbiI7CnByaW50ICJcbiI7CnByaW50ICRSZXNwb25zZTsKCjE7Cg==
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8b3Ryc19jb25maWcgdmVyc2lvbj0iMS4wIiBpbml0PSJBcHBsaWNhdGlvbiI+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkRlYnVnTG9nIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkFsbG93cyB0byBlbmFibGUgYSBzcGVjaWFsIGxvZyBmb3IgYWxsIGNvbW11bmljYXRpb24gYmV0d2VlbiBpUGhvbmUgYW5kIG90cnMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTo6TG9nPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpMb2dGaWxlIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIHBhdGggYW5kIGZpbGUgbmFtZSBmb3IgdGhlIGRlYnVnIGxvZyBmaWxlLiBUaGlzIGZpbGUgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgYnkgdGhlIHN5c3RlbSwgaWYgaXQgZG9lc24ndCBleGlzdC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlOjpMb2c8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPi90bXAvaVBob25lLmxvZzwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KCiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldFBob25lIyMjVGlja2V0VHlwZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZXRzIHRoZSB0aWNrZXQgdHlwZSBpbiB0aGUgbmV3IHBob25lIHRpY2tldCBzY3JlZW4gb24gdGhlIGlQaG9uZSBpbnRlcmZhY2UgKFRpY2tldDo6VHlwZSBuZWVkcyB0byBiZSBhY3RpdmF0ZWQpLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3UGhvbmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldFBob25lIyMjU2VydmljZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZXRzIHRoZSBzZXJ2aWNlIGluIHRoZSBuZXcgcGhvbmUgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZSAoVGlja2V0OjpTZXJ2aWNlIG5lZWRzIHRvIGJlIGFjdGl2YXRlZCkuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdQaG9uZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UGhvbmUjIyNPd25lciIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZXRzIHRoZSB0aWNrZXQgb3duZXIgaW4gdGhlIG5ldyBwaG9uZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3UGhvbmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldFBob25lIyMjUmVzcG9uc2libGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgcmVzcG9uc2libGUgYWdlbnQgb2YgdGhlIHRpY2tldCBpbiB0aGUgbmV3IHBob25lIHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdQaG9uZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UGhvbmUjIyNDdXN0b21lcklEIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIGN1c3RvbWVyIGlkIGluIHRoZSBuZXcgcGhvbmUgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld1Bob25lPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIxIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQaG9uZSMjI1N0YXRlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkFsbG93cyB0byBzZXQgYSBuZXcgdGlja2V0IHN0YXRlIGluIHRoZSBuZXcgcGhvbmUgdGlja2V0IHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdQaG9uZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UGhvbmUjIyNTdGF0ZURlZmF1bHQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgZGVmYXVsdCBuZXh0IHN0YXRlIGZvciBuZXcgcGhvbmUgdGlja2V0cyBpbiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld1Bob25lPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj5vcGVuPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQaG9uZSMjI1ByaW9yaXR5RGVmYXVsdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IHRpY2tldCBwcmlvcml0eSBpbiB0aGUgbmV3IHBob25lIHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdQaG9uZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+MyBub3JtYWw8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldFBob25lIyMjQm9keSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZXRzIHRoZSBkZWZhdWx0IGJvZHkgdGV4dCBmb3Igbm90ZXMgYWRkZWQgaW4gdGhlIG5ldyBwaG9uZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3UGhvbmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8VGV4dEFyZWE+PC9UZXh0QXJlYT4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldFBob25lIyMjQXJ0aWNsZVR5cGVEZWZhdWx0IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGRlZmF1bHQgdHlwZSBvZiB0aGUgdGlja2V0IGluIHRoZSBuZXcgcGhvbmUgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld1Bob25lPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj5waG9uZTwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UGhvbmUjIyNTZW5kZXJUeXBlIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIGRlZmF1bHQgc2VuZGVyIHR5cGUgZm9yIG5ldyBwaG9uZSB0aWNrZXQgaW4gdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdQaG9uZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+Y3VzdG9tZXI8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldFBob25lIyMjVGltZVVuaXRzIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIHRpbWUgdW5pdHMgaW4gdGhlIG5ldyBwaG9uZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3UGhvbmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQaG9uZSMjI0hpc3RvcnlUeXBlIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGhpc3RvcnkgdHlwZSBmb3IgdGhlIG5ldyBwaG9uZSB0aWNrZXQgc2NyZWVuIGFjdGlvbiwgd2hpY2ggZ2V0cyB1c2VkIGZvciB0aWNrZXQgaGlzdG9yeSBpbiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld1Bob25lPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj5QaG9uZUNhbGxDdXN0b21lcjwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UGhvbmUjIyNIaXN0b3J5Q29tbWVudCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBoaXN0b3J5IGNvbW1lbnQgZm9yIHRoZSBuZXcgcGhvbmUgdGlja2V0IHNjcmVlbiBhY3Rpb24sIHdoaWNoIGdldHMgdXNlZCBmb3IgdGlja2V0IGhpc3RvcnkgaW4gdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdQaG9uZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+PC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXROb3RlIyMjUGVybWlzc2lvbiIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5SZXF1aXJlZCBwZXJtaXNzaW9ucyB0byB1c2UgdGhlIHRpY2tldCBub3RlIHNjcmVlbiBpbiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld05vdGU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPm5vdGU8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldFBob25lIyMjRHluYW1pY0ZpZWxkIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkR5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBuZXcgcGhvbmUgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEVuYWJsZWQsIDIgPSBFbmFibGVkIGFuZCByZXF1aXJlZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld1Bob25lPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXROb3RlIyMjUmVxdWlyZWRMb2NrIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgaWYgYSB0aWNrZXQgbG9jayBpcyByZXF1aXJlZCBpbiB0aGUgdGlja2V0IG5vdGUgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlIChpZiB0aGUgdGlja2V0IGlzbid0IGxvY2tlZCB5ZXQsIHRoZSB0aWNrZXQgZ2V0cyBsb2NrZWQgYW5kIHRoZSBjdXJyZW50IGFnZW50IHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgYXMgaXRzIG93bmVyKS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld05vdGU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjAiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNUaWNrZXRUeXBlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIHRpY2tldCB0eXBlIGluIHRoZSB0aWNrZXQgbm90ZSBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UgKFRpY2tldDo6VHlwZSBuZWVkcyB0byBiZSBhY3RpdmF0ZWQpLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Tm90ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KCiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNTZXJ2aWNlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIHNlcnZpY2UgaW4gdGhlIHRpY2tldCBub3RlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZSAoVGlja2V0OjpTZXJ2aWNlIG5lZWRzIHRvIGJlIGFjdGl2YXRlZCkuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdOb3RlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXROb3RlIyMjT3duZXIiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgdGlja2V0IG93bmVyIGluIHRoZSB0aWNrZXQgbm90ZSBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdOb3RlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXROb3RlIyMjUmVzcG9uc2libGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgcmVzcG9uc2libGUgYWdlbnQgb2YgdGhlIHRpY2tldCBpbiB0aGUgdGlja2V0IG5vdGUgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Tm90ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Tm90ZSMjI1N0YXRlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPklmIGEgbm90ZSBpcyBhZGRlZCBieSBhbiBhZ2VudCwgc2V0cyB0aGUgc3RhdGUgb2YgYSB0aWNrZXQgaW4gdGhlIHRpY2tldCBub3RlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld05vdGU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjAiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNTdGF0ZVR5cGUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgbmV4dCBzdGF0ZSBvZiBhIHRpY2tldCBhZnRlciBhZGRpbmcgYSBub3RlLCBpbiB0aGUgdGlja2V0IG5vdGUgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Tm90ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxJdGVtPm9wZW48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5jbG9zZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5wZW5kaW5nIHJlbWluZGVyPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+cGVuZGluZyBhdXRvPC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Tm90ZSMjI1N0YXRlRGVmYXVsdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IG5leHQgc3RhdGUgb2YgYSB0aWNrZXQgYWZ0ZXIgYWRkaW5nIGEgbm90ZSwgaW4gdGhlIHRpY2tldCBub3RlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld05vdGU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPm9wZW48L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNOb3RlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkFsbG93cyBhZGRpbmcgbm90ZXMgaW4gdGhlIHRpY2tldCBub3RlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld05vdGU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNTdWJqZWN0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIGRlZmF1bHQgc3ViamVjdCBmb3Igbm90ZXMgYWRkZWQgaW4gdGhlIHRpY2tldCBub3RlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld05vdGU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPk5vdGU8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNCb2R5IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIGRlZmF1bHQgYm9keSB0ZXh0IGZvciBub3RlcyBhZGRlZCBpbiB0aGUgdGlja2V0IG5vdGUgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Tm90ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxUZXh0QXJlYT48L1RleHRBcmVhPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Tm90ZSMjI0FydGljbGVUeXBlRGVmYXVsdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IHR5cGUgb2YgdGhlIG5vdGUgaW4gdGhlIHRpY2tldCBub3RlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld05vdGU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPm5vdGUtaW50ZXJuYWw8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNBcnRpY2xlVHlwZXMiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U3BlY2lmeSB0aGUgZGlmZmVyZW50IG5vdGUgdHlwZXMsIHRoYXQgeW91IHdhbnQgdG8gdXNlIGluIHlvdXIgc3lzdGVtLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Tm90ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3RlLWludGVybmFsIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3RlLWV4dGVybmFsIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3RlLXJlcG9ydCI+MDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Tm90ZSMjI1ByaW9yaXR5IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjAiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNob3dzIHRoZSB0aWNrZXQgcHJpb3JpdHkgb3B0aW9ucyBpbiB0aGUgdGlja2V0IG5vdGUgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Tm90ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Tm90ZSMjI1ByaW9yaXR5RGVmYXVsdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IHRpY2tldCBwcmlvcml0eSBpbiB0aGUgdGlja2V0IG5vdGUgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Tm90ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+MyBub3JtYWw8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNUaXRsZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TaG93cyB0aGUgdGl0bGUgZmllbGRzIGluIHRoZSB0aWNrZXQgbm90ZSBzY3JlZW4gb2YgdGhlIGlwaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdOb3RlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXROb3RlIyMjVGltZVVuaXRzIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIHRpbWUgdW5pdHMgaW4gdGhlIHRpY2tldCBub3RlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld05vdGU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNIaXN0b3J5VHlwZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBoaXN0b3J5IHR5cGUgZm9yIHRoZSB0aWNrZXQgbm90ZSBzY3JlZW4gYWN0aW9uLCB3aGljaCBnZXRzIHVzZWQgZm9yIHRpY2tldCBoaXN0b3J5IGluIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Tm90ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+QWRkTm90ZTwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Tm90ZSMjI0hpc3RvcnlDb21tZW50IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGhpc3RvcnkgY29tbWVudCBmb3IgdGhlIHRpY2tldCBub3RlIHNjcmVlbiBhY3Rpb24sIHdoaWNoIGdldHMgdXNlZCBmb3IgdGlja2V0IGhpc3RvcnkgaW4gdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdOb3RlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj4lJU5vdGU8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNEeW5hbWljRmllbGQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHRpY2tldCBub3RlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEVuYWJsZWQsIDIgPSBFbmFibGVkIGFuZCByZXF1aXJlZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld05vdGU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KCiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENsb3NlIyMjUGVybWlzc2lvbiIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5SZXF1aXJlZCBwZXJtaXNzaW9ucyB0byB1c2UgdGhlIGNsb3NlIHRpY2tldCBzY3JlZW4gaW4gdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDbG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+Y2xvc2U8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENsb3NlIyMjUmVxdWlyZWRMb2NrIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgaWYgYSB0aWNrZXQgbG9jayBpcyByZXF1aXJlZCBpbiB0aGUgY2xvc2UgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZSAoaWYgdGhlIHRpY2tldCBpc24ndCBsb2NrZWQgeWV0LCB0aGUgdGlja2V0IGdldHMgbG9ja2VkIGFuZCB0aGUgY3VycmVudCBhZ2VudCB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IGFzIGl0cyBvd25lcikuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDbG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q2xvc2UjIyNUaWNrZXRUeXBlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIHRpY2tldCB0eXBlIGluIHRoZSBjbG9zZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlIChUaWNrZXQ6OlR5cGUgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0Nsb3NlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDbG9zZSMjI1NlcnZpY2UiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgc2VydmljZSBpbiB0aGUgY2xvc2UgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZSAoVGlja2V0OjpTZXJ2aWNlIG5lZWRzIHRvIGJlIGFjdGl2YXRlZCkuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDbG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q2xvc2UjIyNPd25lciIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZXRzIHRoZSB0aWNrZXQgb3duZXIgaW4gdGhlIGNsb3NlIHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDbG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q2xvc2UjIyNSZXNwb25zaWJsZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZXRzIHRoZSByZXNwb25zaWJsZSBhZ2VudCBvZiB0aGUgdGlja2V0IGluIHRoZSBjbG9zZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q2xvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjAiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENsb3NlIyMjU3RhdGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+SWYgYSBub3RlIGlzIGFkZGVkIGJ5IGFuIGFnZW50LCBzZXRzIHRoZSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgY2xvc2UgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0Nsb3NlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIxIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDbG9zZSMjI1N0YXRlVHlwZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBuZXh0IHN0YXRlIG9mIGEgdGlja2V0IGFmdGVyIGFkZGluZyBhIG5vdGUsIGluIHRoZSBjbG9zZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q2xvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8SXRlbT5jbG9zZWQ8L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDbG9zZSMjI1N0YXRlRGVmYXVsdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IG5leHQgc3RhdGUgb2YgYSB0aWNrZXQgYWZ0ZXIgYWRkaW5nIGEgbm90ZSwgaW4gdGhlIGNsb3NlIHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDbG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+Y2xvc2VkIHN1Y2Nlc3NmdWw8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENsb3NlIyMjTm90ZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5BbGxvd3MgYWRkaW5nIG5vdGVzIGluIHRoZSBjbG9zZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q2xvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENsb3NlIyMjU3ViamVjdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZXRzIHRoZSBkZWZhdWx0IHN1YmplY3QgZm9yIG5vdGVzIGFkZGVkIGluIHRoZSBjbG9zZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q2xvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPkNsb3NlPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDbG9zZSMjI0JvZHkiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgZGVmYXVsdCBib2R5IHRleHQgZm9yIG5vdGVzIGFkZGVkIGluIHRoZSBjbG9zZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q2xvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8VGV4dEFyZWE+PC9UZXh0QXJlYT4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENsb3NlIyMjQXJ0aWNsZVR5cGVEZWZhdWx0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGRlZmF1bHQgdHlwZSBvZiB0aGUgbm90ZSBpbiB0aGUgY2xvc2UgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0Nsb3NlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj5ub3RlLWludGVybmFsPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDbG9zZSMjI0FydGljbGVUeXBlcyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TcGVjaWZpZXMgdGhlIGRpZmZlcmVudCBub3RlIHR5cGVzIHRoYXQgd2lsbCBiZSB1c2VkIGluIHRoZSBzeXN0ZW0uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDbG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3RlLWludGVybmFsIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3RlLWV4dGVybmFsIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3RlLXJlcG9ydCI+MDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q2xvc2UjIyNQcmlvcml0eSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TaG93cyB0aGUgdGlja2V0IHByaW9yaXR5IG9wdGlvbnMgaW4gdGhlIGNsb3NlIHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDbG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q2xvc2UjIyNQcmlvcml0eURlZmF1bHQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgZGVmYXVsdCB0aWNrZXQgcHJpb3JpdHkgaW4gdGhlIGNsb3NlIHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDbG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+MyBub3JtYWw8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENsb3NlIyMjVGl0bGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2hvd3MgdGhlIHRpdGxlIGZpZWxkcyBpbiB0aGUgY2xvc2UgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0Nsb3NlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDbG9zZSMjI1RpbWVVbml0cyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZXRzIHRoZSB0aW1lIHVuaXRzIGluIHRoZSBjbG9zZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q2xvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENsb3NlIyMjSGlzdG9yeVR5cGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgaGlzdG9yeSB0eXBlIGZvciB0aGUgY2xvc2UgdGlja2V0IHNjcmVlbiBhY3Rpb24sIHdoaWNoIGdldHMgdXNlZCBmb3IgdGlja2V0IGhpc3RvcnkgaW4gdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDbG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+QWRkTm90ZTwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q2xvc2UjIyNIaXN0b3J5Q29tbWVudCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBoaXN0b3J5IGNvbW1lbnQgZm9yIHRoZSBjbG9zZSB0aWNrZXQgc2NyZWVuIGFjdGlvbiwgd2hpY2ggZ2V0cyB1c2VkIGZvciB0aWNrZXQgaGlzdG9yeSBpbiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0Nsb3NlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj4lJUNsb3NlPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDbG9zZSMjI0R5bmFtaWNGaWVsZCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgdGlja2V0IGNsb3NlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEVuYWJsZWQsIDIgPSBFbmFibGVkIGFuZCByZXF1aXJlZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0Nsb3NlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDb21wb3NlIyMjUGVybWlzc2lvbiIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5SZXF1aXJlZCBwZXJtaXNzaW9ucyB0byB1c2UgdGhlIHRpY2tldCBjb21wb3NlIHNjcmVlbiBpbiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0NvbXBvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPmNvbXBvc2U8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENvbXBvc2UjIyNSZXF1aXJlZExvY2siIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyBpZiBhIHRpY2tldCBsb2NrIGlzIHJlcXVpcmVkIGluIHRoZSB0aWNrZXQgY29tcG9zZSBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UgKGlmIHRoZSB0aWNrZXQgaXNuJ3QgbG9ja2VkIHlldCwgdGhlIHRpY2tldCBnZXRzIGxvY2tlZCBhbmQgdGhlIGN1cnJlbnQgYWdlbnQgd2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSBhcyBpdHMgb3duZXIpLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q29tcG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q29tcG9zZSMjI1N0YXRlIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPklmIGEgbm90ZSBpcyBhZGRlZCBieSBhbiBhZ2VudCwgc2V0cyB0aGUgc3RhdGUgb2YgYSB0aWNrZXQgaWYgaXQgaXMgY29tcG9zZWQgLyBhbnN3ZXJlZCBpbiB0aGUgdGlja2V0IGNvbXBvc2Ugc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q29tcG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q29tcG9zZSMjI1N0YXRlRGVmYXVsdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IG5leHQgc3RhdGUgb2YgYSB0aWNrZXQgaWYgaXQgaXMgY29tcG9zZWQgLyBhbnN3ZXJlZCBpbiB0aGUgdGlja2V0IGNvbXBvc2Ugc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q29tcG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+b3BlbjwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q29tcG9zZSMjI1N0YXRlVHlwZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBuZXh0IHBvc3NpYmxlIHN0YXRlcyBhZnRlciBjb21wb3NpbmcgLyBhbnN3ZXJpbmcgYSB0aWNrZXQgaW4gdGhlIHRpY2tldCBjb21wb3NlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0NvbXBvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8SXRlbT5vcGVuPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+Y2xvc2VkPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+cGVuZGluZyBhdXRvPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+cGVuZGluZyByZW1pbmRlcjwvSXRlbT4KICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpDb21wb3NlQWRkQ3VzdG9tZXJBZGRyZXNzIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkFkZHMgY3VzdG9tZXJzIGVtYWlsIGFkZHJlc3NlcyB0byByZWNpcGllbnRzIGluIHRoZSB0aWNrZXQgY29tcG9zZSBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDb21wb3NlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIxIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6Q29tcG9zZVJlcGxhY2VTZW5kZXJBZGRyZXNzIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlJlcGxhY2VzIHRoZSBvcmlnaW5hbCBzZW5kZXIgd2l0aCBjdXJyZW50IGN1c3RvbWVyJ3MgZW1haWwgYWRkcmVzcyBvbiBjb21wb3NlIGFuc3dlciBpbiB0aGUgdGlja2V0IGNvbXBvc2Ugc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q29tcG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkNvbXBvc2VFeGNsdWRlQ2NSZWNpcGllbnRzIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlVzZXMgQ2MgcmVjaXBpZW50cyBpbiByZXBseSBDYyBsaXN0IG9uIGNvbXBvc2UgYW4gZW1haWwgYW5zd2VyIGluIHRoZSB0aWNrZXQgY29tcG9zZSBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDb21wb3NlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDb21wb3NlIyMjVGltZVVuaXRzIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIHRpbWUgdW5pdHMgaW4gdGhlIHRpY2tldCBjb21wb3NlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0NvbXBvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENvbXBvc2UjIyNEeW5hbWljRmllbGQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHRpY2tldCBjb21wb3NlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEVuYWJsZWQsIDIgPSBFbmFibGVkIGFuZCByZXF1aXJlZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0NvbXBvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KCiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1vdmUjIyNQZXJtaXNzaW9uIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlJlcXVpcmVkIHBlcm1pc3Npb25zIHRvIHVzZSB0aGUgbW92ZSB0aWNrZXQgc2NyZWVuIGluIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3TW92ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+Y29tcG9zZTwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TW92ZSMjI1JlcXVpcmVkTG9jayIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIGlmIGEgdGlja2V0IGxvY2sgaXMgcmVxdWlyZWQgaW4gdGhlIG1vdmUgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZSAoaWYgdGhlIHRpY2tldCBpc24ndCBsb2NrZWQgeWV0LCB0aGUgdGlja2V0IGdldHMgbG9ja2VkIGFuZCB0aGUgY3VycmVudCBhZ2VudCB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IGFzIGl0cyBvd25lcikuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdNb3ZlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIxIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNb3ZlIyMjT3duZXIiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgdGlja2V0IG93bmVyIGluIHRoZSBtb3ZlIHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdNb3ZlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIxIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNb3ZlIyMjU3RhdGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+QWxsb3dzIHRvIHNldCBhIG5ldyB0aWNrZXQgc3RhdGUgaW4gdGhlIG1vdmUgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld01vdmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1vdmUjIyNTdGF0ZVR5cGUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgbmV4dCBzdGF0ZSBvZiBhIHRpY2tldCBhZnRlciBiZWluZyBtb3ZlZCB0byBhbm90aGVyIHF1ZXVlLCBpbiB0aGUgbW92ZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3TW92ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxJdGVtPm9wZW48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5jbG9zZWQ8L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNb3ZlIyMjU3RhdGVEZWZhdWx0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGRlZmF1bHQgbmV4dCBzdGF0ZSBvZiBhIHRpY2tldCBhZnRlciBhZGRpbmcgYSBub3RlLCBpbiB0aGUgbW92ZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3TW92ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+b3BlbjwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TW92ZSMjI1ByaW9yaXR5IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjAiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNob3dzIHRoZSB0aWNrZXQgcHJpb3JpdHkgb3B0aW9ucyBpbiB0aGUgbW92ZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3TW92ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TW92ZSMjI1ByaW9yaXR5RGVmYXVsdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IHRpY2tldCBwcmlvcml0eSBpbiB0aGUgbW92ZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3TW92ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+MyBub3JtYWw8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1vdmUjIyNUaW1lVW5pdHMiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgdGltZSB1bml0cyBpbiB0aGUgbW92ZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3TW92ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TW92ZSMjI0R5bmFtaWNGaWVsZCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgdGlja2V0IG1vdmUgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gRW5hYmxlZCwgMiA9IEVuYWJsZWQgYW5kIHJlcXVpcmVkLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3TW92ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgoKICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6QVBJOjpPYmplY3QjIyNUaWNrZXRPYmplY3QiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+Q29uZmlndXJlIGFjY2VzcyByZXN0cmljdGlvbnMgdG8gb2JqZWN0cyBvZiBpUGhvbmUgaGFuZGxlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkFQSTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+KE1vdmVMaXN0fE1vdmVUaWNrZXQpPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpBUEk6Ok9iamVjdCMjI0N1c3RvbU9iamVjdCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Db25maWd1cmUgYWNjZXNzIHJlc3RyaWN0aW9ucyB0byBvYmplY3RzIG9mIGlQaG9uZSBoYW5kbGUuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+QVBJPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj48L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkFQSTo6T2JqZWN0IyMjaVBob25lT2JqZWN0IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkNvbmZpZ3VyZSBhY2Nlc3MgcmVzdHJpY3Rpb25zIHRvIG9iamVjdHMgb2YgaVBob25lIGhhbmRsZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5BUEk8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPjwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KCiAgICA8Q29uZmlnSXRlbSBOYW1lPSJEeW5hbWljRmllbGRzOjpFeHRlbnNpb246OkJhY2tlbmQjIyMxMDAtaVBob25lIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkR5bmFtaWMgRmllbGRzIEV4dGVuc2lvbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5EeW5hbWljRmllbGRzOjpFeHRlbnNpb246OlJlZ2lzdHJhdGlvbjwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OmlQaG9uZUJhY2tlbmQ8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJEeW5hbWljRmllbGRzOjpFeHRlbnNpb246OkRyaXZlcjo6VGV4dCMjIzEwMC1pUGhvbmUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RHluYW1pYyBGaWVsZHMgRXh0ZW5zaW9uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkR5bmFtaWNGaWVsZHM6OkV4dGVuc2lvbjo6UmVnaXN0cmF0aW9uPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjppUGhvbmVUZXh0PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJCZWhhdmlvcnMiPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IklzSVBob25lQ2FwYWJsZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJEeW5hbWljRmllbGRzOjpFeHRlbnNpb246OkRyaXZlcjo6VGV4dEFyZWEjIyMxMDAtaVBob25lIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkR5bmFtaWMgRmllbGRzIEV4dGVuc2lvbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5EeW5hbWljRmllbGRzOjpFeHRlbnNpb246OlJlZ2lzdHJhdGlvbjwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6aVBob25lVGV4dEFyZWE8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkJlaGF2aW9ycyI+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSXNJUGhvbmVDYXBhYmxlIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkR5bmFtaWNGaWVsZHM6OkV4dGVuc2lvbjo6RHJpdmVyOjpDaGVja2JveCMjIzEwMC1pUGhvbmUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RHluYW1pYyBGaWVsZHMgRXh0ZW5zaW9uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkR5bmFtaWNGaWVsZHM6OkV4dGVuc2lvbjo6UmVnaXN0cmF0aW9uPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjppUGhvbmVDaGVja2JveDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQmVoYXZpb3JzIj4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJJc0lQaG9uZUNhcGFibGUiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRHluYW1pY0ZpZWxkczo6RXh0ZW5zaW9uOjpEcml2ZXI6OkRyb3Bkb3duIyMjMTAwLWlQaG9uZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EeW5hbWljIEZpZWxkcyBFeHRlbnNpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RHluYW1pY0ZpZWxkczo6RXh0ZW5zaW9uOjpSZWdpc3RyYXRpb248L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpEcml2ZXI6OmlQaG9uZURyb3Bkb3duPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJCZWhhdmlvcnMiPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IklzSVBob25lQ2FwYWJsZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8IS0tICBNdWx0aXNlbGVjdCBEeW5hbWljIEZpZWxkIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkIGJ5IGlQaG9uZSBBcHAgLS0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJEeW5hbWljRmllbGRzOjpFeHRlbnNpb246OkRyaXZlcjo6RGF0ZVRpbWUjIyMxMDAtaVBob25lIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkR5bmFtaWMgRmllbGRzIEV4dGVuc2lvbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5EeW5hbWljRmllbGRzOjpFeHRlbnNpb246OlJlZ2lzdHJhdGlvbjwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6aVBob25lRGF0ZVRpbWU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkJlaGF2aW9ycyI+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSXNJUGhvbmVDYXBhYmxlIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkR5bmFtaWNGaWVsZHM6OkV4dGVuc2lvbjo6RHJpdmVyOjpEYXRlIyMjMTAwLWlQaG9uZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EeW5hbWljIEZpZWxkcyBFeHRlbnNpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RHluYW1pY0ZpZWxkczo6RXh0ZW5zaW9uOjpSZWdpc3RyYXRpb248L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpEcml2ZXI6OmlQaG9uZURhdGU8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkJlaGF2aW9ycyI+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSXNJUGhvbmVDYXBhYmxlIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KPC9vdHJzX2NvbmZpZz4K
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRHluYW1pY0ZpZWxkL0RyaXZlci9pUGhvbmVDaGVja2JveC5wbSAtIERyaXZlciBmb3IgRHluYW1pY0ZpZWxkIENoZWNrYm94IGJhY2tlbmQKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNSBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6aVBob25lQ2hlY2tib3g7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjppUGhvbmVDaGFja2JveAoKPWhlYWQxIFNZTk9QU0lTCgpEeW5hbWljRmllbGRzIENoZWNrYm94IGJhY2tlbmQgZHJpdmVyIGZvciBpUGhvbmVIYW5kbGUKCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgpUaGlzIG1vZHVsZSBpbXBsZW1lbnRzIHRoZSBwdWJsaWMgaW50ZXJmYWNlIG9mIEw8S2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZD4uClBsZWFzZSBsb29rIHRoZXJlIGZvciBhIGRldGFpbGVkIHJlZmVyZW5jZSBvZiB0aGUgZnVuY3Rpb25zLgoKPW92ZXIgNAoKPWN1dAoKc3ViIElQaG9uZUZpZWxkUGFyYW1ldGVyQnVpbGQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIHRha2UgY29uZmlnIGZyb20gZmllbGQgY29uZmlnCiAgICBteSAkRmllbGRDb25maWcgPSAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0NvbmZpZ307CiAgICBteSAkRmllbGROYW1lICAgPSAnRHluYW1pY0ZpZWxkXycgLiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e05hbWV9OwogICAgbXkgJEZpZWxkTGFiZWwgID0gJFBhcmFte0xhbmd1YWdlT2JqZWN0fS0+R2V0KCAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0xhYmVsfSApOwoKICAgIG15ICRWYWx1ZSA9ICcnOwoKICAgICMgc2V0IHRoZSBmaWVsZCB2YWx1ZSBvciBkZWZhdWx0CiAgICBpZiAoICRQYXJhbXtVc2VEZWZhdWx0VmFsdWV9ICkgewogICAgICAgICRWYWx1ZSA9ICggZGVmaW5lZCAkRmllbGRDb25maWctPntEZWZhdWx0VmFsdWV9ID8gJEZpZWxkQ29uZmlnLT57RGVmYXVsdFZhbHVlfSA6ICcnICk7CiAgICB9CiAgICAkVmFsdWUgPSAkUGFyYW17VmFsdWV9IGlmIGRlZmluZWQgJFBhcmFte1ZhbHVlfTsKCiAgICAjIHNldCBQb3NzaWJsZVZhbHVlcwogICAgbXkgJFBvc3NpYmxlVmFsdWVzID0gewogICAgICAgIDAgPT4gJFBhcmFte0xhbmd1YWdlT2JqZWN0fS0+R2V0KCdVbmNoZWNrZWQnKSB8fCAnVW5jaGVja2VkJywKICAgICAgICAxID0+ICRQYXJhbXtMYW5ndWFnZU9iamVjdH0tPkdldCgnQ2hlY2tlZCcpICAgfHwgJ0NoZWNrZWQnLAogICAgfTsKCiAgICAjIGNyZWF0ZSB0aGUgZmllbGQgZGVmaW5pdGlvbgogICAgbXkgJERhdGEgPSB7CiAgICAgICAgTmFtZSAgICAgID0+ICRGaWVsZE5hbWUsCiAgICAgICAgVGl0bGUgICAgID0+ICRGaWVsZExhYmVsLAogICAgICAgIERhdGF0eXBlICA9PiAnVGV4dCcsCiAgICAgICAgVmlld3R5cGUgID0+ICdQaWNrZXInLAogICAgICAgIE9wdGlvbnMgICA9PiAkUG9zc2libGVWYWx1ZXMsCiAgICAgICAgTWFuZGF0b3J5ID0+ICRQYXJhbXtNYW5kYXRvcnl9LAogICAgICAgIERlZmF1bHQgICA9PiAkVmFsdWUsCiAgICB9OwoKICAgIHJldHVybiAkRGF0YTsKfQoKc3ViIElQaG9uZUZpZWxkVmFsdWVHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkRmllbGROYW1lID0gJ0R5bmFtaWNGaWVsZF8nIC4gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntOYW1lfTsKCiAgICBteSAkVmFsdWUgPSAkUGFyYW17JEZpZWxkTmFtZX07CgogICAgcmV0dXJuICRWYWx1ZTsKfQoKc3ViIElQaG9uZUZpZWxkVmFsdWVWYWxpZGF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IHRoZSBmaWVsZCB2YWx1ZSBmcm9tIHBhcmFtCiAgICBteSAkVmFsdWUgPSAkUGFyYW17VmFsdWV9OwoKICAgIG15ICRTZXJ2ZXJFcnJvcjsKICAgIG15ICRFcnJvck1lc3NhZ2U7CgogICAgIyBwZXJmb3JtIG5lY2Vzc2FyeSB2YWxpZGF0aW9ucwogICAgaWYgKCAkUGFyYW17TWFuZGF0b3J5fSAmJiAhJFZhbHVlICkgewogICAgICAgICRTZXJ2ZXJFcnJvciA9IDE7CiAgICB9CiAgICBlbHNlIHsKCiAgICAgICAgIyB2YWxpZGF0ZSBpZiB2YWx1ZSBpcyBpbiBwb3NzaWJsZSB2YWx1ZXMgbGlzdCAoYnV0IGxldCBwYXNzIGVtcHR5IHZhbHVlcykKICAgICAgICBpZiAoICRWYWx1ZSBuZSAnMCcgJiYgJFZhbHVlIG5lICcxJyApIHsKICAgICAgICAgICAgJFNlcnZlckVycm9yICA9IDE7CiAgICAgICAgICAgICRFcnJvck1lc3NhZ2UgPSAnVGhlIGZpZWxkIGNvbnRlbnQgaXMgaW52YWxpZCc7CiAgICAgICAgfQogICAgfQoKICAgICMgY3JlYXRlIHJlc3VsdGluZyBzdHJ1Y3R1cmUKICAgIG15ICRSZXN1bHQgPSB7CiAgICAgICAgU2VydmVyRXJyb3IgID0+ICRTZXJ2ZXJFcnJvciwKICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJEVycm9yTWVzc2FnZSwKICAgIH07CgogICAgcmV0dXJuICRSZXN1bHQ7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRHluYW1pY0ZpZWxkL0RyaXZlci9pUGhvbmVEYXRlLnBtIC0gRHJpdmVyIGZvciBEeW5hbWljRmllbGQgRGF0ZSBiYWNrZW5kCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTUgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpEcml2ZXI6OmlQaG9uZURhdGU7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjppUGhvbmVEYXRlCgo9aGVhZDEgU1lOT1BTSVMKCkR5bmFtaWNGaWVsZHMgRGF0ZSBiYWNrZW5kIGRyaXZlciBmb3IgaVBob25lSGFuZGxlCgo9aGVhZDEgUFVCTElDIElOVEVSRkFDRQoKVGhpcyBtb2R1bGUgaW1wbGVtZW50cyB0aGUgcHVibGljIGludGVyZmFjZSBvZiBMPEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQ+LgpQbGVhc2UgbG9vayB0aGVyZSBmb3IgYSBkZXRhaWxlZCByZWZlcmVuY2Ugb2YgdGhlIGZ1bmN0aW9ucy4KCj1vdmVyIDQKCj1jdXQKCnN1YiBJUGhvbmVGaWVsZFBhcmFtZXRlckJ1aWxkIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyB0YWtlIGNvbmZpZyBmcm9tIGZpZWxkIGNvbmZpZwogICAgbXkgJEZpZWxkQ29uZmlnID0gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntDb25maWd9OwogICAgbXkgJEZpZWxkTmFtZSAgID0gJ0R5bmFtaWNGaWVsZF8nIC4gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntOYW1lfTsKICAgIG15ICRGaWVsZExhYmVsICA9ICRQYXJhbXtMYW5ndWFnZU9iamVjdH0tPkdldCggJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntMYWJlbH0gKTsKCiAgICBteSAkVmFsdWUgPSAnJzsKCiAgICAjIHNldCB0aGUgZmllbGQgdmFsdWUgb3IgZGVmYXVsdAogICAgaWYgKCAkUGFyYW17VXNlRGVmYXVsdFZhbHVlfSApIHsKICAgICAgICBteSAkVGltZURpZmYgPSAoIGRlZmluZWQgJEZpZWxkQ29uZmlnLT57RGVmYXVsdFZhbHVlfSA/ICRGaWVsZENvbmZpZy0+e0RlZmF1bHRWYWx1ZX0gOiAnJyApOwoKICAgICAgICAjIGdldCBjdXJyZW50IHN5c3RlbSB0aW1lCiAgICAgICAgbXkgJFN5c3RlbVRpbWUgPSAkU2VsZi0+e1RpbWVPYmplY3R9LT5TeXN0ZW1UaW1lKCk7CgogICAgICAgICMgZ2V0IHRpbWUgc3RyaW5nICsgJFRpbWUgZGlmZgogICAgICAgICRWYWx1ZSA9ICRTZWxmLT57VGltZU9iamVjdH0tPlN5c3RlbVRpbWUyVGltZVN0YW1wKAogICAgICAgICAgICBTeXN0ZW1UaW1lID0+ICRTeXN0ZW1UaW1lICsgJFRpbWVEaWZmLAogICAgICAgICk7CgogICAgICAgICMgcmVtb3ZlIHRoZSB0aW1lIHBhcnQKICAgICAgICAkVmFsdWUgPX4gc3tcQSAoXGR7NH0tXGR7Mn0tXGR7Mn0pICAuKiBcen17JDF9eG1zOwogICAgfQogICAgJFZhbHVlID0gJFBhcmFte1ZhbHVlfSBpZiBkZWZpbmVkICRQYXJhbXtWYWx1ZX07CgogICAgIyBjcmVhdGUgdGhlIGZpZWxkIGRlZmluaXRpb24KICAgIG15ICREYXRhID0gewogICAgICAgIE5hbWUgICAgICA9PiAkRmllbGROYW1lLAogICAgICAgIFRpdGxlICAgICA9PiAkRmllbGRMYWJlbCwKICAgICAgICBEYXRhdHlwZSAgPT4gJ0RhdGUnLAogICAgICAgIFZpZXd0eXBlICA9PiAnUGlja2VyJywKICAgICAgICBNYW5kYXRvcnkgPT4gJFBhcmFte01hbmRhdG9yeX0sCiAgICAgICAgRGVmYXVsdCAgID0+ICRWYWx1ZSB8fCAnJywKICAgIH07CgogICAgcmV0dXJuICREYXRhOwp9CgpzdWIgSVBob25lRmllbGRWYWx1ZUdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRGaWVsZE5hbWUgPSAnRHluYW1pY0ZpZWxkXycgLiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e05hbWV9OwoKICAgIG15ICRWYWx1ZSA9ICRQYXJhbXskRmllbGROYW1lfTsKCiAgICAjIHJlbW92ZSB0aGUgdGltZSBwYXJ0CiAgICBpZiAoJFZhbHVlKSB7CiAgICAgICAgJFZhbHVlID1+IHN7XEEgKFxkezR9LVxkezJ9LVxkezJ9KSAgLiogXHp9eyQxfXhtczsKCiAgICAgICAgIyBhZGQgMHMgdG8gdGhlIHRpbWUgcGFydAogICAgICAgICRWYWx1ZSAuPSAnIDAwOjAwOjAwJzsKICAgIH0KCiAgICByZXR1cm4gJFZhbHVlOwp9CgpzdWIgSVBob25lRmllbGRWYWx1ZVZhbGlkYXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgdGhlIGZpZWxkIHZhbHVlIGZyb20gcGFyYW0KICAgIG15ICRWYWx1ZSA9ICRQYXJhbXtWYWx1ZX07CgogICAgbXkgJFNlcnZlckVycm9yOwogICAgbXkgJEVycm9yTWVzc2FnZTsKCiAgICAjIHBlcmZvcm0gbmVjZXNzYXJ5IHZhbGlkYXRpb25zCiAgICBpZiAoICRQYXJhbXtNYW5kYXRvcnl9ICYmICRWYWx1ZSBlcSAnJyApIHsKCiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgU2VydmVyRXJyb3IgID0+IDEsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAkRXJyb3JNZXNzYWdlLAogICAgICAgIH07CiAgICB9CgogICAgIyB0cnkgdG8gY29udmVydCB2YWx1ZSB0byBhIFN5c3RlbVRpbWUKICAgIGlmICgkVmFsdWUpIHsKICAgICAgICBteSAkU3lzdGVtVGltZSA9ICRTZWxmLT57VGltZU9iamVjdH0tPlRpbWVTdGFtcDJTeXN0ZW1UaW1lKAogICAgICAgICAgICBTdHJpbmcgPT4gJFZhbHVlLAogICAgICAgICk7CgogICAgICAgIGlmICggISRTeXN0ZW1UaW1lICkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgU2VydmVyRXJyb3IgID0+IDEsCiAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJEVycm9yTWVzc2FnZSwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyBjcmVhdGUgcmVzdWx0aW5nIHN0cnVjdHVyZQogICAgbXkgJFJlc3VsdCA9IHsKICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gJFNlcnZlckVycm9yLAogICAgICAgIEVycm9yTWVzc2FnZSA9PiAkRXJyb3JNZXNzYWdlLAogICAgfTsKCiAgICByZXR1cm4gJFJlc3VsdDsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHA6Ly9vdHJzLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRHluYW1pY0ZpZWxkL0RyaXZlci9pUGhvbmVEYXRlVGltZS5wbSAtIERyaXZlciBmb3IgRHluYW1pY0ZpZWxkIERhdGVUaW1lIGJhY2tlbmQKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNSBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6aVBob25lRGF0ZVRpbWU7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjppUGhvbmVEYXRlVGltZQoKPWhlYWQxIFNZTk9QU0lTCgpEeW5hbWljRmllbGRzIERhdGVUaW1lIGJhY2tlbmQgZHJpdmVyIGZvciBpUGhvbmVIYW5kbGUKCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgpUaGlzIG1vZHVsZSBpbXBsZW1lbnRzIHRoZSBwdWJsaWMgaW50ZXJmYWNlIG9mIEw8S2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZD4uClBsZWFzZSBsb29rIHRoZXJlIGZvciBhIGRldGFpbGVkIHJlZmVyZW5jZSBvZiB0aGUgZnVuY3Rpb25zLgoKPW92ZXIgNAoKPWN1dAoKc3ViIElQaG9uZUZpZWxkUGFyYW1ldGVyQnVpbGQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIHRha2UgY29uZmlnIGZyb20gZmllbGQgY29uZmlnCiAgICBteSAkRmllbGRDb25maWcgPSAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0NvbmZpZ307CiAgICBteSAkRmllbGROYW1lICAgPSAnRHluYW1pY0ZpZWxkXycgLiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e05hbWV9OwogICAgbXkgJEZpZWxkTGFiZWwgID0gJFBhcmFte0xhbmd1YWdlT2JqZWN0fS0+R2V0KCAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0xhYmVsfSApOwoKICAgIG15ICRWYWx1ZSA9ICcnOwoKICAgICMgc2V0IHRoZSBmaWVsZCB2YWx1ZSBvciBkZWZhdWx0CiAgICBpZiAoICRQYXJhbXtVc2VEZWZhdWx0VmFsdWV9ICkgewogICAgICAgIG15ICRUaW1lRGlmZiA9ICggZGVmaW5lZCAkRmllbGRDb25maWctPntEZWZhdWx0VmFsdWV9ID8gJEZpZWxkQ29uZmlnLT57RGVmYXVsdFZhbHVlfSA6IDAgKTsKCiAgICAgICAgIyBnZXQgY3VycmVudCBzeXN0ZW0gdGltZQogICAgICAgIG15ICRTeXN0ZW1UaW1lID0gJFNlbGYtPntUaW1lT2JqZWN0fS0+U3lzdGVtVGltZSgpOwoKICAgICAgICAjIGdldCB0aW1lIHN0cmluZyArICRUaW1lIGRpZmYKICAgICAgICAkVmFsdWUgPSAkU2VsZi0+e1RpbWVPYmplY3R9LT5TeXN0ZW1UaW1lMlRpbWVTdGFtcCgKICAgICAgICAgICAgU3lzdGVtVGltZSA9PiAkU3lzdGVtVGltZSArICRUaW1lRGlmZiwKICAgICAgICApOwoKICAgIH0KICAgICRWYWx1ZSA9ICRQYXJhbXtWYWx1ZX0gaWYgZGVmaW5lZCAkUGFyYW17VmFsdWV9OwoKICAgICMgY3JlYXRlIHRoZSBmaWVsZCBkZWZpbml0aW9uCiAgICBteSAkRGF0YSA9IHsKICAgICAgICBOYW1lICAgICAgPT4gJEZpZWxkTmFtZSwKICAgICAgICBUaXRsZSAgICAgPT4gJEZpZWxkTGFiZWwsCiAgICAgICAgRGF0YXR5cGUgID0+ICdEYXRlVGltZScsCiAgICAgICAgVmlld3R5cGUgID0+ICdQaWNrZXInLAogICAgICAgIE1hbmRhdG9yeSA9PiAkUGFyYW17TWFuZGF0b3J5fSwKICAgICAgICBEZWZhdWx0ICAgPT4gJFZhbHVlIHx8ICcnLAogICAgfTsKCiAgICByZXR1cm4gJERhdGE7Cn0KCnN1YiBJUGhvbmVGaWVsZFZhbHVlR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJEZpZWxkTmFtZSA9ICdEeW5hbWljRmllbGRfJyAuICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TmFtZX07CgogICAgbXkgJFZhbHVlID0gJFBhcmFteyRGaWVsZE5hbWV9OwoKICAgICMgdGltZSB6b25lIHRyYW5zbGF0aW9uIGlmIG5lZWRlZAogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGltZVpvbmVVc2VyJykgJiYgJFBhcmFte1VzZXJUaW1lWm9uZX0gJiYgJFZhbHVlICkgewoKICAgICAgICAjIGNvdmVydCAkVmFsdWUgdG8gYSBudW1lcmljIHRpbWUgZm9yIGNvbnZldHJzaW9ucwogICAgICAgIG15ICRTeXN0ZW1UaW1lID0gJFNlbGYtPntUaW1lT2JqZWN0fS0+VGltZVN0YW1wMlN5c3RlbVRpbWUoCiAgICAgICAgICAgIFN0cmluZyA9PiAkVmFsdWUsCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgYSB0aW1lIG9iamVjdCBmb3IgdGhlcyB1c2VyIChiZWNhdXNlIG9mIHRoZSB0aW1lIHpvbmUpCiAgICAgICAgJFNlbGYtPntVc2VyVGltZU9iamVjdH0gPSBLZXJuZWw6OlN5c3RlbTo6VGltZS0+bmV3KAogICAgICAgICAgICAleyRTZWxmfSwKICAgICAgICAgICAgVXNlclRpbWVab25lID0+ICRQYXJhbXtVc2VyVGltZVpvbmV9LAogICAgICAgICk7CgogICAgICAgICMgc3VidHJhY3QgdGhlIHVzZXIgdGltZSB6b25lIGZyb20gdGhlIGN1cnJlbnQgdmFsdWUKICAgICAgICAkU3lzdGVtVGltZSA9ICRTeXN0ZW1UaW1lIC0gKCAkUGFyYW17VXNlclRpbWVab25lfSAqIDM2MDAgKTsKCiAgICAgICAgIyBjb252ZXJ0IG51bWVyaWMgdmFsdWUgYWdhaW4gdG8gc3RyaW5nCiAgICAgICAgJFZhbHVlID0gJFNlbGYtPntVc2VyVGltZU9iamVjdH0tPlN5c3RlbVRpbWUyVGltZVN0YW1wKAogICAgICAgICAgICBTeXN0ZW1UaW1lID0+ICRTeXN0ZW1UaW1lLAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuICRWYWx1ZTsKfQoKc3ViIElQaG9uZUZpZWxkVmFsdWVWYWxpZGF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IHRoZSBmaWVsZCB2YWx1ZSBmcm9tIHBhcmFtCiAgICBteSAkVmFsdWUgPSAkUGFyYW17VmFsdWV9OwoKICAgIG15ICRTZXJ2ZXJFcnJvcjsKICAgIG15ICRFcnJvck1lc3NhZ2U7CgogICAgIyBwZXJmb3JtIG5lY2Vzc2FyeSB2YWxpZGF0aW9ucwogICAgaWYgKCAkUGFyYW17TWFuZGF0b3J5fSAmJiAkVmFsdWUgZXEgJycgKSB7CgogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIFNlcnZlckVycm9yICA9PiAxLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJEVycm9yTWVzc2FnZSwKICAgICAgICB9OwogICAgfQoKICAgICMgdHJ5IHRvIGNvbnZlcnQgdmFsdWUgdG8gYSBTeXN0ZW1UaW1lCiAgICBpZiAoJFZhbHVlKSB7CiAgICAgICAgbXkgJFN5c3RlbVRpbWUgPSAkU2VsZi0+e1RpbWVPYmplY3R9LT5UaW1lU3RhbXAyU3lzdGVtVGltZSgKICAgICAgICAgICAgU3RyaW5nID0+ICRWYWx1ZSwKICAgICAgICApOwoKICAgICAgICBpZiAoICEkU3lzdGVtVGltZSApIHsKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIFNlcnZlckVycm9yICA9PiAxLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRFcnJvck1lc3NhZ2UsCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgICMgY3JlYXRlIHJlc3VsdGluZyBzdHJ1Y3R1cmUKICAgIG15ICRSZXN1bHQgPSB7CiAgICAgICAgU2VydmVyRXJyb3IgID0+ICRTZXJ2ZXJFcnJvciwKICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJEVycm9yTWVzc2FnZSwKICAgIH07CgogICAgcmV0dXJuICRSZXN1bHQ7Cn0KCnN1YiBfVHJhbnNmb3JtRGF0ZVNlbGVjdGlvbiB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgdGltZSB6b25lIHRyYW5zbGF0aW9uIGlmIG5lZWRlZAogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGltZVpvbmVVc2VyJykgJiYgJFBhcmFte1VzZXJUaW1lWm9uZX0gKSB7CiAgICAgICAgbXkgJFN5c3RlbVRpbWUgPSAkU2VsZi0+e1RpbWVPYmplY3R9LT5UaW1lU3RhbXAyU3lzdGVtVGltZSgKICAgICAgICAgICAgU3RyaW5nID0+ICRQYXJhbXtUaW1lU3RhbXB9LAogICAgICAgICk7CiAgICAgICAgJFN5c3RlbVRpbWUgPSAkU3lzdGVtVGltZSAtICggJFNlbGYtPntVc2VyVGltZVpvbmV9ICogMzYwMCApOwoKICAgICAgICAkU2VsZi0+e1VzZXJUaW1lT2JqZWN0fSA9IEtlcm5lbDo6U3lzdGVtOjpUaW1lLT5uZXcoCiAgICAgICAgICAgICV7JFNlbGZ9LAogICAgICAgICAgICBVc2VyVGltZVpvbmUgPT4gJFBhcmFte1VzZXJUaW1lWm9uZX0sCiAgICAgICAgKTsKCiAgICAgICAgJFBhcmFte1RpbWVTdGFtcH0gPSAkU2VsZi0+e1VzZXJUaW1lT2JqZWN0fS0+U3lzdGVtVGltZTJUaW1lU3RhbXAoCiAgICAgICAgICAgIFN5c3RlbVRpbWUgPT4gJFN5c3RlbVRpbWUsCiAgICAgICAgKTsKICAgIH0KICAgIHJldHVybiAkUGFyYW17VGltZVN0YW1wfTsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHA6Ly9vdHJzLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRHluYW1pY0ZpZWxkL0RyaXZlci9pUGhvbmVEcm9wZG93bi5wbSAtIERyaXZlciBmb3IgRHluYW1pY0ZpZWxkIERyb3Bkb3duIGJhY2tlbmQKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNSBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6aVBob25lRHJvcGRvd247Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjppUGhvbmVEcm9wZG93bgoKPWhlYWQxIFNZTk9QU0lTCgpEeW5hbWljRmllbGRzIERyb3Bkb3duIGJhY2tlbmQgZHJpdmVyIGZvciBpUGhvbmVIYW5kbGUKCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgpUaGlzIG1vZHVsZSBpbXBsZW1lbnRzIHRoZSBwdWJsaWMgaW50ZXJmYWNlIG9mIEw8S2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZD4uClBsZWFzZSBsb29rIHRoZXJlIGZvciBhIGRldGFpbGVkIHJlZmVyZW5jZSBvZiB0aGUgZnVuY3Rpb25zLgoKPW92ZXIgNAoKPWN1dAoKc3ViIElQaG9uZUZpZWxkUGFyYW1ldGVyQnVpbGQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIHRha2UgY29uZmlnIGZyb20gZmllbGQgY29uZmlnCiAgICBteSAkRmllbGRDb25maWcgPSAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0NvbmZpZ307CiAgICBteSAkRmllbGROYW1lICAgPSAnRHluYW1pY0ZpZWxkXycgLiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e05hbWV9OwogICAgbXkgJEZpZWxkTGFiZWwgID0gJFBhcmFte0xhbmd1YWdlT2JqZWN0fS0+R2V0KCAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0xhYmVsfSApOwoKICAgIG15ICRWYWx1ZSA9ICcnOwoKICAgICMgc2V0IHRoZSBmaWVsZCB2YWx1ZSBvciBkZWZhdWx0CiAgICBpZiAoICRQYXJhbXtVc2VEZWZhdWx0VmFsdWV9ICkgewogICAgICAgICRWYWx1ZSA9ICggZGVmaW5lZCAkRmllbGRDb25maWctPntEZWZhdWx0VmFsdWV9ID8gJEZpZWxkQ29uZmlnLT57RGVmYXVsdFZhbHVlfSA6ICcnICk7CiAgICB9CiAgICAkVmFsdWUgPSAkUGFyYW17VmFsdWV9IGlmIGRlZmluZWQgJFBhcmFte1ZhbHVlfTsKCiAgICAjIHNldCBQb3NzaWJsZVZhbHVlcwogICAgbXkgJFBvc3NpYmxlVmFsdWVzID0gJEZpZWxkQ29uZmlnLT57UG9zc2libGVWYWx1ZXN9OwoKICAgIGlmICggJEZpZWxkQ29uZmlnLT57VHJhbnNsYXRhYmxlVmFsdWVzfSApIHsKICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCRQb3NzaWJsZVZhbHVlcykgKSB7CiAgICAgICAgICAgIGZvciBteSAkUG9zc2libGVLZXkgKCBzb3J0IGtleXMgJXskUG9zc2libGVWYWx1ZXN9ICkgewogICAgICAgICAgICAgICAgbXkgJE9yaWdpbmFsVmFsdWUgPSAkUG9zc2libGVWYWx1ZXMtPnskUG9zc2libGVLZXl9OwogICAgICAgICAgICAgICAgJFBvc3NpYmxlVmFsdWVzLT57JFBvc3NpYmxlS2V5fSA9ICRQYXJhbXtMYW5ndWFnZU9iamVjdH0tPkdldCgkT3JpZ2luYWxWYWx1ZSkgfHwgJE9yaWdpbmFsVmFsdWU7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBzZXQgUG9zc2libGVOb25lIGF0dHJpYnV0ZQogICAgbXkgJEZpZWxkUG9zc2libGVOb25lOwogICAgaWYgKCBkZWZpbmVkICRQYXJhbXtPdmVycmlkZVBvc3NpYmxlTm9uZX0gKSB7CiAgICAgICAgJEZpZWxkUG9zc2libGVOb25lID0gJFBhcmFte092ZXJyaWRlUG9zc2libGVOb25lfTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRGaWVsZFBvc3NpYmxlTm9uZSA9ICRGaWVsZENvbmZpZy0+e1Bvc3NpYmxlTm9uZX0gfHwgMDsKICAgIH0KCiAgICBpZiAoJEZpZWxkUG9zc2libGVOb25lKSB7CiAgICAgICAgJFBvc3NpYmxlVmFsdWVzLT57Jyd9ID0gJy0nOwogICAgfQoKICAgICMgY3JlYXRlIHRoZSBmaWVsZCBkZWZpbml0aW9uCiAgICBteSAkRGF0YSA9IHsKICAgICAgICBOYW1lICAgICAgPT4gJEZpZWxkTmFtZSwKICAgICAgICBUaXRsZSAgICAgPT4gJEZpZWxkTGFiZWwsCiAgICAgICAgRGF0YXR5cGUgID0+ICdUZXh0JywKICAgICAgICBWaWV3dHlwZSAgPT4gJ1BpY2tlcicsCiAgICAgICAgT3B0aW9ucyAgID0+ICRQb3NzaWJsZVZhbHVlcywKICAgICAgICBNYW5kYXRvcnkgPT4gJFBhcmFte01hbmRhdG9yeX0sCiAgICAgICAgRGVmYXVsdCAgID0+ICRWYWx1ZSB8fCAnJywKICAgIH07CgogICAgcmV0dXJuICREYXRhOwp9CgpzdWIgSVBob25lRmllbGRWYWx1ZUdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRGaWVsZE5hbWUgPSAnRHluYW1pY0ZpZWxkXycgLiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e05hbWV9OwoKICAgIG15ICRWYWx1ZSA9ICRQYXJhbXskRmllbGROYW1lfTsKCiAgICByZXR1cm4gJFZhbHVlOwp9CgpzdWIgSVBob25lRmllbGRWYWx1ZVZhbGlkYXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgdGhlIGZpZWxkIHZhbHVlIGZyb20gcGFyYW0KICAgIG15ICRWYWx1ZSA9ICRQYXJhbXtWYWx1ZX07CgogICAgbXkgJFNlcnZlckVycm9yOwogICAgbXkgJEVycm9yTWVzc2FnZTsKCiAgICAjIHBlcmZvcm0gbmVjZXNzYXJ5IHZhbGlkYXRpb25zCiAgICBpZiAoICRQYXJhbXtNYW5kYXRvcnl9ICYmICRWYWx1ZSBlcSAnJyApIHsKICAgICAgICAkU2VydmVyRXJyb3IgPSAxOwogICAgfQogICAgZWxzZSB7CgogICAgICAgICMgZ2V0IHBvc3NpYmxlIHZhbHVlcyBsaXN0CiAgICAgICAgbXkgJFBvc3NpYmxlVmFsdWVzID0gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntDb25maWd9LT57UG9zc2libGVWYWx1ZXN9OwoKICAgICAgICAjIHZhbGlkYXRlIGlmIHZhbHVlIGlzIGluIHBvc3NpYmxlIHZhbHVlcyBsaXN0IChidXQgbGV0IHBhc3MgZW1wdHkgdmFsdWVzKQogICAgICAgIGlmICggJFZhbHVlICYmICEkUG9zc2libGVWYWx1ZXMtPnskVmFsdWV9ICkgewogICAgICAgICAgICAkU2VydmVyRXJyb3IgID0gMTsKICAgICAgICAgICAgJEVycm9yTWVzc2FnZSA9ICdUaGUgZmllbGQgY29udGVudCBpcyBpbnZhbGlkJzsKICAgICAgICB9CiAgICB9CgogICAgIyBjcmVhdGUgcmVzdWx0aW5nIHN0cnVjdHVyZQogICAgbXkgJFJlc3VsdCA9IHsKICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gJFNlcnZlckVycm9yLAogICAgICAgIEVycm9yTWVzc2FnZSA9PiAkRXJyb3JNZXNzYWdlLAogICAgfTsKCiAgICByZXR1cm4gJFJlc3VsdDsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHA6Ly9vdHJzLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRHluYW1pY0ZpZWxkL0RyaXZlci9pUGhvbmVUZXh0LnBtIC0gRHJpdmVyIGZvciBEeW5hbWljRmllbGQgVGV4dCBiYWNrZW5kCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTUgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpEcml2ZXI6OmlQaG9uZVRleHQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjppUGhvbmVUZXh0Cgo9aGVhZDEgU1lOT1BTSVMKCkR5bmFtaWNGaWVsZHMgVGV4dCBiYWNrZW5kIGRyaXZlciBmb3IgaVBob25lSGFuZGxlCgo9aGVhZDEgUFVCTElDIElOVEVSRkFDRQoKVGhpcyBtb2R1bGUgaW1wbGVtZW50cyB0aGUgcHVibGljIGludGVyZmFjZSBvZiBMPEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQ+LgpQbGVhc2UgbG9vayB0aGVyZSBmb3IgYSBkZXRhaWxlZCByZWZlcmVuY2Ugb2YgdGhlIGZ1bmN0aW9ucy4KCj1vdmVyIDQKCj1jdXQKCnN1YiBJUGhvbmVGaWVsZFBhcmFtZXRlckJ1aWxkIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyB0YWtlIGNvbmZpZyBmcm9tIGZpZWxkIGNvbmZpZwogICAgbXkgJEZpZWxkQ29uZmlnID0gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntDb25maWd9OwogICAgbXkgJEZpZWxkTmFtZSAgID0gJ0R5bmFtaWNGaWVsZF8nIC4gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntOYW1lfTsKICAgIG15ICRGaWVsZExhYmVsICA9ICRQYXJhbXtMYW5ndWFnZU9iamVjdH0tPkdldCggJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntMYWJlbH0gKTsKCiAgICBteSAkVmFsdWUgPSAnJzsKCiAgICAjIHNldCB0aGUgZmllbGQgdmFsdWUgb3IgZGVmYXVsdAogICAgaWYgKCAkUGFyYW17VXNlRGVmYXVsdFZhbHVlfSApIHsKICAgICAgICAkVmFsdWUgPSAoIGRlZmluZWQgJEZpZWxkQ29uZmlnLT57RGVmYXVsdFZhbHVlfSA/ICRGaWVsZENvbmZpZy0+e0RlZmF1bHRWYWx1ZX0gOiAnJyApOwogICAgfQogICAgJFZhbHVlID0gJFBhcmFte1ZhbHVlfSBpZiBkZWZpbmVkICRQYXJhbXtWYWx1ZX07CgogICAgIyBjcmVhdGUgdGhlIGZpZWxkIGRlZmluaXRpb24KICAgIG15ICREYXRhID0gewogICAgICAgIE5hbWUgICAgICA9PiAkRmllbGROYW1lLAogICAgICAgIFRpdGxlICAgICA9PiAkRmllbGRMYWJlbCwKICAgICAgICBEYXRhdHlwZSAgPT4gJ1RleHQnLAogICAgICAgIFZpZXd0eXBlICA9PiAnSW5wdXQnLAogICAgICAgIE1pbiAgICAgICA9PiAxLAogICAgICAgIE1heCAgICAgICA9PiAyMDAsCiAgICAgICAgTWFuZGF0b3J5ID0+ICRQYXJhbXtNYW5kYXRvcnl9LAogICAgICAgIERlZmF1bHQgICA9PiAkVmFsdWUgfHwgJycsCiAgICB9OwoKICAgIHJldHVybiAkRGF0YTsKfQoKc3ViIElQaG9uZUZpZWxkVmFsdWVHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkRmllbGROYW1lID0gJ0R5bmFtaWNGaWVsZF8nIC4gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntOYW1lfTsKCiAgICBteSAkVmFsdWUgPSAkUGFyYW17JEZpZWxkTmFtZX07CgogICAgcmV0dXJuICRWYWx1ZTsKfQoKc3ViIElQaG9uZUZpZWxkVmFsdWVWYWxpZGF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IHRoZSBmaWVsZCB2YWx1ZSBmcm9tIHBhcmFtCiAgICBteSAkVmFsdWUgPSAkUGFyYW17VmFsdWV9OwoKICAgIG15ICRTZXJ2ZXJFcnJvcjsKICAgIG15ICRFcnJvck1lc3NhZ2U7CgogICAgIyBwZXJmb3JtIG5lY2Vzc2FyeSB2YWxpZGF0aW9ucwogICAgaWYgKCAkUGFyYW17TWFuZGF0b3J5fSAmJiAkVmFsdWUgZXEgJycgKSB7CiAgICAgICAgJFNlcnZlckVycm9yID0gMTsKICAgIH0KCiAgICAjIGNyZWF0ZSByZXN1bHRpbmcgc3RydWN0dXJlCiAgICBteSAkUmVzdWx0ID0gewogICAgICAgIFNlcnZlckVycm9yICA9PiAkU2VydmVyRXJyb3IsCiAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRFcnJvck1lc3NhZ2UsCiAgICB9OwoKICAgIHJldHVybiAkUmVzdWx0Owp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cDovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRHluYW1pY0ZpZWxkL0RyaXZlci9pUGhvbmVUZXh0QXJlYS5wbSAtIERyaXZlciBmb3IgRHluYW1pY0ZpZWxkIFRleHRBcmVhIGJhY2tlbmQKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNSBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6aVBob25lVGV4dEFyZWE7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjppUGhvbmVUZXh0QXJlYQoKPWhlYWQxIFNZTk9QU0lTCgpEeW5hbWljRmllbGRzIFRleHRBcmVhIGJhY2tlbmQgZHJpdmVyIGZvciBpUGhvbmVIYW5sZQoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKClRoaXMgbW9kdWxlIGltcGxlbWVudHMgdGhlIHB1YmxpYyBpbnRlcmZhY2Ugb2YgTDxLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kPi4KUGxlYXNlIGxvb2sgdGhlcmUgZm9yIGEgZGV0YWlsZWQgcmVmZXJlbmNlIG9mIHRoZSBmdW5jdGlvbnMuCgo9b3ZlciA0Cgo9Y3V0CgpzdWIgSVBob25lRmllbGRQYXJhbWV0ZXJCdWlsZCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgdGFrZSBjb25maWcgZnJvbSBmaWVsZCBjb25maWcKICAgIG15ICRGaWVsZENvbmZpZyA9ICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57Q29uZmlnfTsKICAgIG15ICRGaWVsZE5hbWUgICA9ICdEeW5hbWljRmllbGRfJyAuICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TmFtZX07CiAgICBteSAkRmllbGRMYWJlbCAgPSAkUGFyYW17TGFuZ3VhZ2VPYmplY3R9LT5HZXQoICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TGFiZWx9ICk7CgogICAgbXkgJFZhbHVlID0gJyc7CgogICAgIyBzZXQgdGhlIGZpZWxkIHZhbHVlIG9yIGRlZmF1bHQKICAgIGlmICggJFBhcmFte1VzZURlZmF1bHRWYWx1ZX0gKSB7CiAgICAgICAgJFZhbHVlID0gKCBkZWZpbmVkICRGaWVsZENvbmZpZy0+e0RlZmF1bHRWYWx1ZX0gPyAkRmllbGRDb25maWctPntEZWZhdWx0VmFsdWV9IDogJycgKTsKICAgIH0KICAgICRWYWx1ZSA9ICRQYXJhbXtWYWx1ZX0gaWYgZGVmaW5lZCAkUGFyYW17VmFsdWV9OwoKICAgICMgY3JlYXRlIHRoZSBmaWVsZCBkZWZpbml0aW9uCiAgICBteSAkRGF0YSA9IHsKICAgICAgICBOYW1lICAgICAgPT4gJEZpZWxkTmFtZSwKICAgICAgICBUaXRsZSAgICAgPT4gJEZpZWxkTGFiZWwsCiAgICAgICAgRGF0YXR5cGUgID0+ICdUZXh0JywKICAgICAgICBWaWV3dHlwZSAgPT4gJ1RleHRBcmVhJywKICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICBNYXggICAgICAgPT4gMjBfMDAwLAogICAgICAgIE1hbmRhdG9yeSA9PiAkUGFyYW17TWFuZGF0b3J5fSwKICAgICAgICBEZWZhdWx0ICAgPT4gJFZhbHVlIHx8ICcnLAogICAgfTsKCiAgICByZXR1cm4gJERhdGE7Cn0KCnN1YiBJUGhvbmVGaWVsZFZhbHVlR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJEZpZWxkTmFtZSA9ICdEeW5hbWljRmllbGRfJyAuICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TmFtZX07CgogICAgbXkgJFZhbHVlID0gJFBhcmFteyRGaWVsZE5hbWV9OwoKICAgIHJldHVybiAkVmFsdWU7Cn0KCnN1YiBJUGhvbmVGaWVsZFZhbHVlVmFsaWRhdGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCB0aGUgZmllbGQgdmFsdWUgZnJvbSB0aGUgcGFyYW0KICAgIG15ICRWYWx1ZSA9ICRQYXJhbXtWYWx1ZX07CgogICAgbXkgJFNlcnZlckVycm9yOwogICAgbXkgJEVycm9yTWVzc2FnZTsKCiAgICAjIHBlcmZvcm0gbmVjZXNzYXJ5IHZhbGlkYXRpb25zCiAgICBpZiAoICRQYXJhbXtNYW5kYXRvcnl9ICYmICRWYWx1ZSBlcSAnJyApIHsKICAgICAgICAkU2VydmVyRXJyb3IgPSAxOwogICAgfQoKICAgICMgY3JlYXRlIHJlc3VsdGluZyBzdHJ1Y3R1cmUKICAgIG15ICRSZXN1bHQgPSB7CiAgICAgICAgU2VydmVyRXJyb3IgID0+ICRTZXJ2ZXJFcnJvciwKICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJEVycm9yTWVzc2FnZSwKICAgIH07CgogICAgcmV0dXJuICRSZXN1bHQ7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRHluYW1pY0ZpZWxkL2lQaG9uZUJhY2tlbmQucG0gLSBJbnRlcmZhY2UgZm9yIER5bmFtaWNGaWVsZCBiYWNrZW5kcwojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6aVBob25lQmFja2VuZDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjppUGhvbmVCYWNrZW5kCgo9aGVhZDEgU1lOT1BTSVMKCkR5bmFtaWNGaWVsZHMgYmFja2VuZCBpbnRlcmZhY2UgZm9yIGlQaG9uZQoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIElQaG9uZUZpZWxkUGFyYW1ldGVyQnVpbGQoKQoKY3JlYXRlcyB0aGUgZmllbGQgZGVmaW5pdGlvbiB0byBiZSB1c2VkIGluIGlwaG9uZSBlZGl0IG1hc2tzLgoKICAgIG15ICRGaWVsZERlZmluaXRpb24gPSAkQmFja2VuZE9iamVjdC0+SVBob25lRmllbGRQYXJhbWV0ZXJCdWlsZCgKICAgICAgICBEeW5hbWljRmllbGRDb25maWcgICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLCAgICAgICMgQ29tcGxldGUgY29uZmlnIG9mIHRoZSBEeW5hbWljRmllbGQKICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgICA9PiAnQW55IHZhbHVlJywgICAgICAgICAgICAgICMgT3B0aW9uYWwKICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgICA9PiAxLCAgICAgICAgICAgICAgICAgICAgICAgICMgMCBvciAxLAogICAgICAgIFVzZURlZmF1bHRWYWx1ZSAgICAgID0+IDEsICAgICAgICAgICAgICAgICAgICAgICAgIyAwIG9yIDEsIDEgZGVmYXVsdAogICAgICAgIE92ZXJyaWRlUG9zc2libGVOb25lID0+IDEsICAgICAgICAgICAgICAgICAgICAgICAgIyBPcHRpb25hbCwgMCBvciAxLiBJZiBkZWZpbmVkIG9ydmVycmlkZXMgdGhlIFBvc3NpYmxlIE5vbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIHNldHRpbmcgb2YgYWxsIGR5bmFtaWMgZmllbGRzICh3aGVyZSBhcHBsaWVzKSB3aXRoIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgZGVmaW5lZCB2YWx1ZQogICAgICAgIExhbmd1YWdlT2JqZWN0ICAgICAgID0+ICRMYW5ndWFnZU9iamVjdCwKICAgICk7CgogICAgUmV0dXJuczoKCiAgICAgICAgbXkgJEZpZWxkRGVmaW5pdGlvbiA9IHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJ3NvbWUgbmFtZScsICAgICAgIyBGaWVsZCBuYW1lICdEeWFubWljRmllbGRfTmFtZVgnCgogICAgICAgICAgICBUaXRsZSAgICAgICAgICA9PiAnc29tZSB0aXRsZScsICAgICAjIEZpZWxkIGxhYmVsICh0cmFuc2xhdGVkIGlmIGNhcGFibGUpCgogICAgICAgICAgICBEYXRhdHlwZSAgICAgICA9PiAkRGF0YXR5cGUsICAgICAgICAjIFRoZSB0eXBlIG9mIHRoYXQgdG8gaG9sZCwgT3B0aW9uczoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICBEYXRlIHx8IFRpbWUgfHwgRGF0ZVRpbWUgfHwgVGV4dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgIHx8IE51bWVyaWMKCiAgICAgICAgICAgIFZpZXd0eXBlICAgICAgID0+ICRWaWV3VHlwZSwgICAgICAgICMgVGhlIGZvcm1hdCBvZiB0aGUgZmllbGQgaW4gdGhlIGlQaG9uZSBBcHAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICBBdXRvQ29tcGxldGlvbiAoaW5wdXQgZmllbGQgd2l0aCBhbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgIGF1dG8tY29tcGxldGlvbiBmZWF0dXJlOyBwb3NzaWJsZSB2YWx1ZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICBhcmUgbG9hZGVkIGR5bmFtaWNhbGx5IGZyb20gdGhlIHNlcnZlciB3aXRoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgdGhlIER5bmFtaWNPcHRpb25zKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgIFBpY2tlciAob3B0aW9uIGxpc3Qgd2l0aCB2YWx1ZXMgd2hpY2ggYXJlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgcHJvdmlkZWQgd2l0aCB0aGUgT3B0aW9ucyBvciBEeW5hbWljT3B0aW9ucwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgIGF0dHJpYnV0ZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICBFTWFpbCAoaW5wdXQgZmllbGQgZm9yIEUtTWFpbCBhZGRyZXNzZXMgd2l0aCBhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgc3VpdGFibGUga2V5Ym9hcmQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgVVJMIChpbnB1dCBmaWVsZCBmb3IgVVJMcyB3aXRoIGEgc3VpdGFibGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICBrZXlib2FyZCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICBQYXNzd29yZCAoaW5wdXQgZmllbGQgZm9yIHBhc3N3b3Jkcywgd2hpY2ggZG9lcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgIG5vdCByZXZlYWwgdGhlIGVudGVyZWQgdGV4dCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICBJbnB1dCAoc2ltcGxlIGlucHV0IGZpZWxkKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgIFRleHRBcmVhIChtdWx0aS1saW5lIGlucHV0IGZpZWxkKQoKICAgICAgICAgICAgTWluICAgICAgICAgICAgID0+IDEsICAgICAgICAgICAgICAgIyBPcHRpb25hbCwgTWluaW11bSB2YWx1ZSBmb3IgbnVtZXJpYyBmb3JtIGZpZWxkcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgIG9yIG1pbmltdW0gbGVuZ3RoIGZvciB0ZXh0IGZpZWxkcy4KCiAgICAgICAgICAgIE1heCAgICAgICAgICAgICA9PiAyLCAgICAgICAgICAgICAgICMgT3B0aW9uYWwsIE1heGltdW0gdmFsdWUgZm9yIG51bWVyaWMgZm9ybSBmaWVsZHMgb3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICBtYXhpbXVtIGxlbmd0aCBmb3IgdGV4dCBmaWVsZHMuCgogICAgICAgICAgICBPcHRpb25zICAgICAgICAgPT4geyAgICAgICAgICAgICAgICAjIE9wdGlvbmFsLCBMaXN0IG9mIG9wdGlvbnMgd2hpY2ggZGVmaW5lcyB0aGUgcmFuZ2UKICAgICAgICAgICAgICAgIDEgPT4gJ1ZhbHVlMScsICAgICAgICAgICAgICAgICAgIyAgICBvZiB2YWx1ZXMgZm9yIGFuIGVsZW1lbnQgb2YgVmlld3R5cGUgUGlja2VyLgogICAgICAgICAgICAgICAgMiA9PiAnVmFsdWUyJywgICAgICAgICAgICAgICAgICAjICAgIE9wdGlvbnMgaXMgbm90IHJlcXVpcmVkIGZvciBwaWNrZXIgZWxlbWVudHMKICAgICAgICAgICAgfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICB3aXRoIERhdGF0eXBlIERhdGUsIFRpbWUgb3IgRGF0ZVRpbWUuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgTWFuZGF0b3J5IGlmIHRoZSBEYXRhdHlwZSBpcyBub3QgRGF0ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICBUaW1lIHVuZCBEYXRlVGltZSwgdGhlIFZpZXd0eXBlIGlzIFBpY2tlciBhbmQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICBEeXluYW1pY09wdGlvbnMgaXMgbm90IHByb3ZpZGVkCgogICAgICAgICAgICBEeW5hbWljT3B0aW9ucyA9PiB7ICAgICAgICAgICAgICAgICAjIE9wdGlvbmFsLCBTaW1pbGFyIHRvIE9wdGlvbnMgYnV0IHRoZSBsaXN0IG9mCiAgICAgICAgICAgICAgICBPYmplY3QgICAgID0+ICdzb21lIG9iamVjdCcsICAgICMgICAgdmFsdWVzIGlzIG5vdCBmaXhlZCwgaW5zdGVhZCBhIGZ1bmN0aW9uIGlzCiAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICdzb21lIG1ldGhvZCcsICAgICMgICAgY2FsbGVkIHRvIHJldHJlaXZlIHRoZSBwb3NzaWJsZSBvcHRpb25zLgogICAgICAgICAgICAgICAgUGFyYW1ldGVycyA9PiBbICAgICAgICAgICAgICAgICAjICAgIER5bmFtaWNPcHRpb25zIGlzIG5vdCByZXF1aXJlZCBmb3IgcGlja2VyCiAgICAgICAgICAgICAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgZWxlbWVudHMgd2l0aCBEYXRhdHlwZSBEYXRlLCBUaW1lIG9yIERhdGVUaW1lLgogICAgICAgICAgICAgICAgICAgICAgICBQYXJhbTEgPT4gJ3NvbWUgZGF0YScsICAjICAgIE1hbmRhdG9yeSBpZiB0aGUgRGF0YXR5cGUgaXMgbm90IERhdGUsCiAgICAgICAgICAgICAgICAgICAgICAgIFBhcmFtMiA9PiAnc29tZSBkYXRhJywgICMgICAgVGltZSB1bmQgRGF0ZVRpbWUsIHRoZSBWaWV3dHlwZSBpcyBQaWNrZXIgYW5kCiAgICAgICAgICAgICAgICAgICAgfSwgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgRHl5bmFtaWNPcHRpb25zIGlzIG5vdCBwcm92aWRlZAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgfSwKCiAgICAgICAgICAgIEF1dG9GaWxsRWxlbWVudHMgPT4gWyAgICAgICAgICAgICAgICMgT3B0aW9uYWwsIFVzZWQgdG8gc2V0IGFub3RoZXIgZmllbGQgdmFsdWUKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBFbGVtZW50TmFtZSA9PiAnZmllbGQgbmFtZScsCiAgICAgICAgICAgICAgICAgICAgT2JqZWN0ICAgICAgPT4gJ3NvbWUgb2JqZWN0JywKICAgICAgICAgICAgICAgICAgICBNZXRob2QgICAgICA9PiAnc29tZSBtZXRob2QnLAogICAgICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFyYW0xID0+ICdzb21lIGRhdGEnLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICBdLAoKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDAsICAgICAgICAgICAgICAgICAgICAgIyAwIHx8IDEKCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAnc29tZSB2YWx1ZScsCiAgICAgICAgfTsKICAgIH07Cgo9Y3V0CgpzdWIgSVBob25lRmllbGRQYXJhbWV0ZXJCdWlsZCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoRHluYW1pY0ZpZWxkQ29uZmlnIExhbmd1YWdlT2JqZWN0KSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBEeW5hbWljRmllbGRDb25maWcgKGdlbmVyYWwpCiAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSggJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30gKSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlRoZSBmaWVsZCBjb25maWd1cmF0aW9uIGlzIGludmFsaWQiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY2hlY2sgRHluYW1pY0ZpZWxkQ29uZmlnIChpbnRlcm5hbGx5KQogICAgZm9yIG15ICROZWVkZWQgKHF3KElEIEZpZWxkVHlwZSBPYmplY3RUeXBlIENvbmZpZyBOYW1lKSkgewogICAgICAgIGlmICggISRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQgaW4gRHluYW1pY0ZpZWxkQ29uZmlnISIKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIHNldCB0aGUgZHluYW1pYyBmaWVsZCBzcGVjaWZpYyBiYWNrZW5kCiAgICBteSAkRHluYW1pY0ZpZWxkQmFja2VuZCA9ICdEeW5hbWljRmllbGQnIC4gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntGaWVsZFR5cGV9IC4gJ09iamVjdCc7CgogICAgaWYgKCAhJFNlbGYtPnskRHluYW1pY0ZpZWxkQmFja2VuZH0gKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJCYWNrZW5kICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57RmllbGRUeXBlfSBpcyBpbnZhbGlkISIKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIHNldCB1c2UgZGVmYXVsdCB2YWx1ZSBhcyBkZWZhdWx0IGlmIG5vdCBzcGVjaWZpZWQKICAgIGlmICggIWRlZmluZWQgJFBhcmFte1VzZURlZmF1bHRWYWx1ZX0gKSB7CiAgICAgICAgJFBhcmFte1VzZURlZmF1bHRWYWx1ZX0gPSAxOwogICAgfQoKICAgICMgdmVyaWZ5IGlmIGZ1bmN0aW9uIGlzIGF2YWlsYWJsZQogICAgcmV0dXJuIGlmICEkU2VsZi0+eyREeW5hbWljRmllbGRCYWNrZW5kfS0+Y2FuKCdJUGhvbmVGaWVsZFBhcmFtZXRlckJ1aWxkJyk7CgogICAgIyBjYWxsIElQaG9uZUZpZWxkUGFyYW1ldGVyQnVpbGQgb24gdGhlIHNwZWNpZmljIGJhY2tlbmQKICAgIG15ICRGaWVsZERlZmluaXRpb24gPSAkU2VsZi0+eyREeW5hbWljRmllbGRCYWNrZW5kfS0+SVBob25lRmllbGRQYXJhbWV0ZXJCdWlsZCglUGFyYW0pOwoKICAgIHJldHVybiAkRmllbGREZWZpbml0aW9uOwoKfQoKPWl0ZW0gSVBob25lRmllbGRWYWx1ZUdldCgpCgpleHRyYWN0cyB0aGUgdmFsdWUgb2YgYSBkeW5hbWljIGZpZWxkIGZyb20gdGhlIHBhcmFtIG9iamVjdC4KCiAgICBteSAkVmFsdWUgPSAkQmFja2VuZE9iamVjdC0+SVBob25lRmllbGRWYWx1ZUdldCgKICAgICAgICBEeW5hbWljRmllbGRDb25maWcgICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLCAgICAjIGNvbXBsZXRlIGNvbmZpZyBvZiB0aGUgRHluYW1pY0ZpZWxkCiAgICAgICAgRHluYW1pY0ZpZWxkX05hbWVYICAgPT4gJ0R5bmFtaWNGaWVsZFZhbHVlJywgICAgIyBSYXcgZmllbGQgdmFsdWUgd2hlcmUsIE5hbWVYIGlzIHRoZSBuYW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgb2YgdGhlIGZpbGVkCiAgICAgICAgVXNlclRpbWVab25lICAgICAgICAgPT4gLTYsCiAgICApOwoKICAgIFJldHVybnMgJFZhbHVlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGRlcGVuZGluZyBvbiBlYWNoIGZpZWxkIHR5cGUgZS5nLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAkVmFsdWUgPSAnYSB0ZXh0JzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgJFZhbHVlID0gJzE5NzctMTItMTIgMTI6MDA6MDAnOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAkVmFsdWUgPSAxOwoKPWN1dAoKc3ViIElQaG9uZUZpZWxkVmFsdWVHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICROZWVkZWQgKHF3KER5bmFtaWNGaWVsZENvbmZpZykpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIgogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgZGVmaW5lIHRyYW5zZm9ybSBkYXRlcyBwYXJhbWV0ZXIKICAgIGlmICggIWRlZmluZWQgJFBhcmFte1RyYW5zZm9ybURhdGVzfSApIHsKICAgICAgICAkUGFyYW17VHJhbnNmb3JtRGF0ZXN9ID0gMTsKICAgIH0KCiAgICAjIGNoZWNrIER5bmFtaWNGaWVsZENvbmZpZyAoZ2VuZXJhbCkKICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfSApICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiVGhlIGZpZWxkIGNvbmZpZ3VyYXRpb24gaXMgaW52YWxpZCIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBjaGVjayBEeW5hbWljRmllbGRDb25maWcgKGludGVybmFsbHkpCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoSUQgRmllbGRUeXBlIE9iamVjdFR5cGUgTmFtZSkpIHsKICAgICAgICBpZiAoICEkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+eyROZWVkZWR9ICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkIGluIER5bmFtaWNGaWVsZENvbmZpZyEiCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBzZXQgdGhlIGR5bmFtaWMgZmllbGQgc3BlY2lmaWMgYmFja2VuZAogICAgbXkgJER5bmFtaWNGaWVsZEJhY2tlbmQgPSAnRHluYW1pY0ZpZWxkJyAuICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57RmllbGRUeXBlfSAuICdPYmplY3QnOwoKICAgIGlmICggISRTZWxmLT57JER5bmFtaWNGaWVsZEJhY2tlbmR9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiQmFja2VuZCAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0ZpZWxkVHlwZX0gaXMgaW52YWxpZCEiCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyB2ZXJpZnkgaWYgZnVuY3Rpb24gaXMgYXZhaWxhYmxlCiAgICByZXR1cm4gaWYgISRTZWxmLT57JER5bmFtaWNGaWVsZEJhY2tlbmR9LT5jYW4oJ0lQaG9uZUZpZWxkVmFsdWVHZXQnKTsKCiAgICAjIHJldHVybiB2YWx1ZSBmcm9tIHRoZSBzcGVjaWZpYyBiYWNrZW5kCiAgICByZXR1cm4gJFNlbGYtPnskRHluYW1pY0ZpZWxkQmFja2VuZH0tPklQaG9uZUZpZWxkVmFsdWVHZXQoJVBhcmFtKTsKfQoKPWl0ZW0gSVBob25lRmllbGRWYWx1ZVZhbGlkYXRlKCkKCnZhbGlkYXRlIHRoZSBjdXJyZW50IHZhbHVlIGZvciB0aGUgZHluYW1pYyBmaWVsZAoKICAgIG15ICRSZXN1bHQgPSAkQmFja2VuZE9iamVjdC0+SVBob25lRmllbGRWYWx1ZVZhbGlkYXRlKAogICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgID0+ICREeW5hbWljRmllbGRDb25maWcsICAgICAgIyBjb21wbGV0ZSBjb25maWcgb2YgdGhlIER5bmFtaWNGaWVsZAogICAgICAgIFZhbHVlICAgICAgICAgICAgICAgID0+ICRWYWx1ZSwgICAgICAgICAgICAgICAgICAgIyBUaGUgY3VycmVudCBkeW5hbWljIGZpZWxkIHZhbHVlCiAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgICAgPT4gMSwgICAgICAgICAgICAgICAgICAgICAgICAjIDAgb3IgMSwKICAgICk7CgogICAgUmV0dXJucwoKICAgICRSZXN1bHQgPSB7CiAgICAgICAgU2VydmVyRXJyb3IgICAgICAgID0+IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAjIDAgb3IgMSwKICAgICAgICBFcnJvck1lc3NhZ2UgICAgICAgPT4gJEVycm9yTWVzc2FnZSwgICAgICAgICAgICAgICMgT3B0aW9uYWwgb3IgYSBkZWZhdWx0IHdpbGwgYmUgdXNlZCBpbiBlcnJvciBjYXNlCiAgICB9Cgo9Y3V0CgpzdWIgSVBob25lRmllbGRWYWx1ZVZhbGlkYXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCBEeW5hbWljRmllbGRDb25maWchIgogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY2hlY2sgRHluYW1pY0ZpZWxkQ29uZmlnIChnZW5lcmFsKQogICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9ICkgKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJUaGUgZmllbGQgY29uZmlndXJhdGlvbiBpcyBpbnZhbGlkIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGNoZWNrIER5bmFtaWNGaWVsZENvbmZpZyAoaW50ZXJuYWxseSkKICAgIGZvciBteSAkTmVlZGVkIChxdyhJRCBGaWVsZFR5cGUgT2JqZWN0VHlwZSBDb25maWcgTmFtZSkpIHsKICAgICAgICBpZiAoICEkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+eyROZWVkZWR9ICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkIGluIER5bmFtaWNGaWVsZENvbmZpZyEiCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBzZXQgdGhlIGR5bmFtaWMgZmllbGQgc3BlY2lmaWMgYmFja2VuZAogICAgbXkgJER5bmFtaWNGaWVsZEJhY2tlbmQgPSAnRHluYW1pY0ZpZWxkJyAuICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57RmllbGRUeXBlfSAuICdPYmplY3QnOwoKICAgIGlmICggISRTZWxmLT57JER5bmFtaWNGaWVsZEJhY2tlbmR9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiQmFja2VuZCAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0ZpZWxkVHlwZX0gaXMgaW52YWxpZCEiCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyB2ZXJpZnkgaWYgZnVuY3Rpb24gaXMgYXZhaWxhYmxlCiAgICByZXR1cm4gaWYgISRTZWxmLT57JER5bmFtaWNGaWVsZEJhY2tlbmR9LT5jYW4oJ0lQaG9uZUZpZWxkVmFsdWVWYWxpZGF0ZScpOwoKICAgICMgcmV0dXJuIHZhbGlkYXRpb24gc3RydWN0dXJlIGZyb20gdGhlIHNwZWNpZmljIGJhY2tlbmQKICAgIHJldHVybiAkU2VsZi0+eyREeW5hbWljRmllbGRCYWNrZW5kfS0+SVBob25lRmllbGRWYWx1ZVZhbGlkYXRlKCVQYXJhbSk7Cgp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cDovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
IyAtLQojIEtlcm5lbC9TeXN0ZW0vV2ViL0ludGVyZmFjZWlQaG9uZUhhbmRsZS5wbSAtIHRoZSBhZ2VudCBpbnRlcmZhY2UgZmlsZSAoaW5jbC4gYXV0aCkKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNSBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpXZWI6OkludGVyZmFjZWlQaG9uZUhhbmRsZTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6OkNvbmZpZzsKdXNlIEtlcm5lbDo6U3lzdGVtOjpBdXRoOwp1c2UgS2VybmVsOjpTeXN0ZW06OkN1c3RvbWVyVXNlcjsKdXNlIEtlcm5lbDo6U3lzdGVtOjpEQjsKdXNlIEtlcm5lbDo6U3lzdGVtOjpFbmNvZGU7CnVzZSBLZXJuZWw6OlN5c3RlbTo6TG9nOwp1c2UgS2VybmVsOjpTeXN0ZW06Okdyb3VwOwp1c2UgS2VybmVsOjpTeXN0ZW06OmlQaG9uZTsKdXNlIEtlcm5lbDo6U3lzdGVtOjpKU09OOwp1c2UgS2VybmVsOjpTeXN0ZW06OkxpbmtPYmplY3Q7CnVzZSBLZXJuZWw6OlN5c3RlbTo6TG9jazsKdXNlIEtlcm5lbDo6U3lzdGVtOjpNYWluOwp1c2UgS2VybmVsOjpTeXN0ZW06OlF1ZXVlOwp1c2UgS2VybmVsOjpTeXN0ZW06OlNlcnZpY2U7CnVzZSBLZXJuZWw6OlN5c3RlbTo6U0xBOwp1c2UgS2VybmVsOjpTeXN0ZW06OlN0YXRlOwp1c2UgS2VybmVsOjpTeXN0ZW06OlRpY2tldDsKdXNlIEtlcm5lbDo6U3lzdGVtOjpUaW1lOwp1c2UgS2VybmVsOjpTeXN0ZW06OlR5cGU7CnVzZSBLZXJuZWw6OlN5c3RlbTo6VXNlcjsKdXNlIEtlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3Q7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OldlYjo6SW50ZXJmYWNlaVBob25lSGFuZGxlIC0gdGhlIGlQaG9uZSBIYW5kbGUgd2ViIGludGVyZmFjZQoKPWhlYWQxIFNZTk9QU0lTCgp0aGUgZ2xvYmFsIGlQaG9uZSBIYW5kbGUgd2ViIGludGVyZmFjZQoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIG5ldygpCgpjcmVhdGUgaVBob25lSGFuZGxlIHdlYiBpbnRlcmZhY2Ugb2JqZWN0CgogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpXZWI6OkludGVyZmFjZWlQaG9uZUhhbmRsZTsKCiAgICBteSAkSW50ZXJmYWNlQWdlbnQgPSBLZXJuZWw6OlN5c3RlbTo6V2ViOjpJbnRlcmZhY2VpUGhvbmVIYW5kbGUtPm5ldygKICAgICAgICBXZWJSZXF1ZXN0ID0+IENHSTo6RmFzdC0+bmV3KCksICMgb3B0aW9uYWwsIGUuIGcuIGlmIGZhc3QgY2dpIGlzIHVzZWQsIHRoZSBDR0kgb2JqZWN0IGlzIGFscmVhZHkgcHJvdmlkZWQKICAgICk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgY3JlYXRlIGNvbW1vbiBvYmplY3RzCiAgICAkU2VsZi0+e0NvbmZpZ09iamVjdH0gPSBLZXJuZWw6OkNvbmZpZy0+bmV3KCk7CiAgICAkU2VsZi0+e0xvZ09iamVjdH0gICAgPSBLZXJuZWw6OlN5c3RlbTo6TG9nLT5uZXcoCiAgICAgICAgTG9nUHJlZml4ID0+ICdPVFJTLWlQaG9uZUhhbmRsZScsCiAgICAgICAgJXskU2VsZn0sCiAgICApOwogICAgJFNlbGYtPntFbmNvZGVPYmplY3R9ID0gS2VybmVsOjpTeXN0ZW06OkVuY29kZS0+bmV3KCAleyRTZWxmfSApOwogICAgJFNlbGYtPntNYWluT2JqZWN0fSAgID0gS2VybmVsOjpTeXN0ZW06Ok1haW4tPm5ldyggJXskU2VsZn0gKTsKICAgICRTZWxmLT57VGltZU9iamVjdH0gICA9IEtlcm5lbDo6U3lzdGVtOjpUaW1lLT5uZXcoICV7JFNlbGZ9ICk7CiAgICAkU2VsZi0+e1BhcmFtT2JqZWN0fSAgPSBLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0LT5uZXcoCiAgICAgICAgJXskU2VsZn0sCiAgICAgICAgV2ViUmVxdWVzdCA9PiAkUGFyYW17V2ViUmVxdWVzdH0gfHwgMCwKICAgICk7CiAgICAkU2VsZi0+e0RCT2JqZWN0fSAgICAgICAgICAgPSBLZXJuZWw6OlN5c3RlbTo6REItPm5ldyggJXskU2VsZn0gKTsKICAgICRTZWxmLT57VXNlck9iamVjdH0gICAgICAgICA9IEtlcm5lbDo6U3lzdGVtOjpVc2VyLT5uZXcoICV7JFNlbGZ9ICk7CiAgICAkU2VsZi0+e0dyb3VwT2JqZWN0fSAgICAgICAgPSBLZXJuZWw6OlN5c3RlbTo6R3JvdXAtPm5ldyggJXskU2VsZn0gKTsKICAgICRTZWxmLT57UXVldWVPYmplY3R9ICAgICAgICA9IEtlcm5lbDo6U3lzdGVtOjpRdWV1ZS0+bmV3KCAleyRTZWxmfSApOwogICAgJFNlbGYtPntTZXJ2aWNlT2JqZWN0fSAgICAgID0gS2VybmVsOjpTeXN0ZW06OlNlcnZpY2UtPm5ldyggJXskU2VsZn0gKTsKICAgICRTZWxmLT57VHlwZU9iamVjdH0gICAgICAgICA9IEtlcm5lbDo6U3lzdGVtOjpUeXBlLT5uZXcoICV7JFNlbGZ9ICk7CiAgICAkU2VsZi0+e1N0YXRlT2JqZWN0fSAgICAgICAgPSBLZXJuZWw6OlN5c3RlbTo6U3RhdGUtPm5ldyggJXskU2VsZn0gKTsKICAgICRTZWxmLT57TG9ja09iamVjdH0gICAgICAgICA9IEtlcm5lbDo6U3lzdGVtOjpMb2NrLT5uZXcoICV7JFNlbGZ9ICk7CiAgICAkU2VsZi0+e1NMQU9iamVjdH0gICAgICAgICAgPSBLZXJuZWw6OlN5c3RlbTo6U0xBLT5uZXcoICV7JFNlbGZ9ICk7CiAgICAkU2VsZi0+e0N1c3RvbWVyVXNlck9iamVjdH0gPSBLZXJuZWw6OlN5c3RlbTo6Q3VzdG9tZXJVc2VyLT5uZXcoICV7JFNlbGZ9ICk7CiAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0gICAgICAgPSBLZXJuZWw6OlN5c3RlbTo6VGlja2V0LT5uZXcoICV7JFNlbGZ9ICk7CiAgICAkU2VsZi0+e0xpbmtPYmplY3R9ICAgICAgICAgPSBLZXJuZWw6OlN5c3RlbTo6TGlua09iamVjdC0+bmV3KCAleyRTZWxmfSApOwogICAgJFNlbGYtPntKU09OT2JqZWN0fSAgICAgICAgID0gS2VybmVsOjpTeXN0ZW06OkpTT04tPm5ldyggJXskU2VsZn0gKTsKICAgICRTZWxmLT57aVBob25lT2JqZWN0fSAgICAgICA9IEtlcm5lbDo6U3lzdGVtOjppUGhvbmUtPm5ldyggJXskU2VsZn0gKTsKCiAgICAjIGdldCBsb2cgZmlsZW5hbWUKICAgICRTZWxmLT57RGVidWdMb2dGaWxlfSA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdpUGhvbmU6OkxvZ0ZpbGUnKSB8fCAnJzsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1pdGVtIFJ1bigpCgpleGVjdXRlIHRoZSBvYmplY3QKCiAgICBteSAkUmVzdWx0ID0gJEludGVyZmFjZUFnZW50LT5SdW4oKTsKClJldHVybnM6CiAgICAkUmVzdWx0ID0gewogICAgICAgIFN1Y2Nlc3MgPT4gMSwKICAgICAgICBEYXRhICAgID0+ICRBcnJheU9mSGFzaGVzUmVmLAogICAgfQoKT3I6CiAgICAkUmVzdWx0ID0gJEFycmF5UmVmLAoKT3I6CiAgICAkUmVzdWx0ID0gewogICAgICAgIFJlc3VsdCAgICAgICA9PiAwLAogICAgICAgIEVycm9yTWVzc2FnZSA9PiAnc29tZSBtZXNzYWdlJywKICAgIH0KCj1jdXQKCnN1YiBSdW4gewogICAgbXkgKCRTZWxmKSA9IEBfOwoKICAgICMgc2V0IGNvbW1vbiB2YXJpYWJsZXMKICAgIG15ICRVc2VyICAgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICdVc2VyJyApICAgICB8fCAnJzsKICAgIG15ICRQdyAgICAgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICdQYXNzd29yZCcgKSB8fCAnJzsKICAgIG15ICRPYmplY3QgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICdPYmplY3QnICkgICB8fCAnJzsKICAgIG15ICRNZXRob2QgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICdNZXRob2QnICkgICB8fCAnJzsKICAgIG15ICREYXRhICAgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICdEYXRhJyApOwogICAgbXkgJFBhcmFtU2NhbGFyID0gJFNlbGYtPntKU09OT2JqZWN0fS0+RGVjb2RlKCBEYXRhID0+ICREYXRhICk7CgogICAgbXkgJVBhcmFtOwogICAgaWYgKCRQYXJhbVNjYWxhcikgewogICAgICAgICVQYXJhbSA9ICV7JFBhcmFtU2NhbGFyfTsKICAgIH0KCiAgICAjIGluYm91bmQgbG9nCiAgICBpZiAoICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdpUGhvbmU6OkRlYnVnTG9nJykgKSB7CiAgICAgICAgbXkgJE1lc3NhZ2UgPSAnVXNlcj0nIC4gJFVzZXIgLiAnJlBhc3N3b3JkPSoqKionIC4gJyZPYmplY3Q9JyAuICRPYmplY3QKICAgICAgICAgICAgLiAnJk1ldGhvZD0nIC4gJE1ldGhvZCAuICcmRGF0YT0nIC4gJERhdGE7CgogICAgICAgICRTZWxmLT5fTG9nKAogICAgICAgICAgICBEaXJlY3Rpb24gPT4gJ0luYm91bmQnLAogICAgICAgICAgICBNZXNzYWdlICAgPT4gJE1lc3NhZ2UsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGNoZWNrIG5lZWRlZAogICAgaWYgKCAhJFVzZXIgfHwgISRPYmplY3QgfHwgISRNZXRob2QgKSB7CiAgICAgICAgbXkgJE1lc3NhZ2UgPSAiTmVlZCBVc2VyLCBPYmplY3QgYW5kIE1ldGhvZCEiOwogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAkTWVzc2FnZSwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gJFNlbGYtPl9SZXN1bHQoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRNZXNzYWdlLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgIyBhZ2VudCBhdXRoCiAgICBteSAlUGFyYW1GaXhlZDsKICAgIGlmICgxKSB7CiAgICAgICAgbXkgJEF1dGhPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6QXV0aC0+bmV3KCAleyRTZWxmfSApOwogICAgICAgIG15ICRVc2VyTG9naW4gID0gJEF1dGhPYmplY3QtPkF1dGgoCiAgICAgICAgICAgIFVzZXIgPT4gJFVzZXIsCiAgICAgICAgICAgIFB3ICAgPT4gJFB3CiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAhJFVzZXJMb2dpbiApIHsKICAgICAgICAgICAgbXkgJE1lc3NhZ2UgPSAiQXV0aCBmb3IgdXNlciAkVXNlciBmYWlsZWQhIjsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnbm90aWNlJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICRNZXNzYWdlLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm4gJFNlbGYtPl9SZXN1bHQoCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRNZXNzYWdlLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgc2V0IHVzZXIgaWQKICAgICAgICBteSAkVXNlcklEID0gJFNlbGYtPntVc2VyT2JqZWN0fS0+VXNlckxvb2t1cCgKICAgICAgICAgICAgVXNlckxvZ2luID0+ICRVc2VyTG9naW4sCiAgICAgICAgKTsKICAgICAgICBpZiAoICEkVXNlcklEICkgewogICAgICAgICAgICByZXR1cm4gJFNlbGYtPl9SZXN1bHQoCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJVc2VyICRVc2VyTG9naW4gbm90IGZvdW5kLCBVc2VySUQgY2FuIG5vdCBiZSBzZXQhIiwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAkUGFyYW1GaXhlZHtVc2VySUR9ID0gJFVzZXJJRDsKICAgIH0KCiAgICAjIHN5c3RlbSBhdXRoCiAgICAjIFRoaXMgY29kZSBpcyBub3QgbmVlZGVkIGFuZCBoYXMgdG8gYmUgcmVtb3ZlZCEKICAgIGVsc2UgewogICAgICAgIG15ICRSZXF1aXJlZFVzZXIgICAgID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1NPQVA6OlVzZXInKTsKICAgICAgICBteSAkUmVxdWlyZWRQYXNzd29yZCA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdTT0FQOjpQYXNzd29yZCcpOwoKICAgICAgICBpZiAoCiAgICAgICAgICAgICFkZWZpbmVkICRSZXF1aXJlZFVzZXIKICAgICAgICAgICAgfHwgIWxlbmd0aCAkUmVxdWlyZWRVc2VyCiAgICAgICAgICAgIHx8ICFkZWZpbmVkICRSZXF1aXJlZFBhc3N3b3JkIHx8ICFsZW5ndGggJFJlcXVpcmVkUGFzc3dvcmQKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnbm90aWNlJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdTT0FQOjpVc2VyIG9yIFNPQVA6OlBhc3N3b3JkIGlzIGVtcHR5LCBTT0FQIGFjY2VzcyBkZW5pZWQhJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuICRTZWxmLT5fUmVzdWx0KCk7CiAgICAgICAgfQoKICAgICAgICBpZiAoICRVc2VyIG5lICRSZXF1aXJlZFVzZXIgfHwgJFB3IG5lICRSZXF1aXJlZFBhc3N3b3JkICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdub3RpY2UnLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkF1dGggZm9yIHVzZXIgJFVzZXIgZmFpbGVkISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiAkU2VsZi0+X1Jlc3VsdCgpOwogICAgICAgIH0KICAgIH0KCiAgICAjIG9iamVjdCB3aGl0ZSBsaXN0CiAgICBteSAkT2JqZWN0V2hpdGVMaXN0ID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ2lQaG9uZTo6QVBJOjpPYmplY3QnKTsKICAgIGlmICgkT2JqZWN0V2hpdGVMaXN0KSB7CiAgICAgICAgaWYgKCAhZGVmaW5lZCAkT2JqZWN0V2hpdGVMaXN0LT57JE9iamVjdH0gKSB7CiAgICAgICAgICAgIG15ICRNZXNzYWdlID0gIk5vIGFjY2VzcyB0byAnJE9iamVjdCchIjsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gJE1lc3NhZ2UsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiAkU2VsZi0+X1Jlc3VsdCgKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwKICAgICAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJE1lc3NhZ2UsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBpZiAoICRPYmplY3RXaGl0ZUxpc3QtPnskT2JqZWN0fSAmJiAkTWV0aG9kICF+IC8kT2JqZWN0V2hpdGVMaXN0LT57JE9iamVjdH0vICkgewogICAgICAgICAgICBteSAkTWVzc2FnZSA9ICJObyBhY2Nlc3MgbWV0aG9kICckTWV0aG9kKCknIGZyb20gJyRPYmplY3QnISI7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICRNZXNzYWdlLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm4gJFNlbGYtPl9SZXN1bHQoCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRNZXNzYWdlLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgaWYgKCAhJFNlbGYtPnskT2JqZWN0fSAmJiAkT2JqZWN0IG5lICdDdXN0b21PYmplY3QnICkgewogICAgICAgIG15ICRNZXNzYWdlID0gIk5vIHN1Y2ggT2JqZWN0ICRPYmplY3QhIjsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJE1lc3NhZ2UsCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gJFNlbGYtPl9SZXN1bHQoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRNZXNzYWdlLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgIyBjaGVjayBpZiBtZXRob2QgZXhpc3RzIGluIG9iamVjdHMgb3RoZXIgdGhhbiAnQ3VzdG9tT2JqZWN0JwogICAgaWYgKAogICAgICAgICggJFNlbGYtPnskT2JqZWN0fSAmJiAhJFNlbGYtPnskT2JqZWN0fS0+Y2FuKCRNZXRob2QpICkKICAgICAgICAmJiAhJFNlbGYtPmNhbigkTWV0aG9kKQogICAgICAgICkKICAgIHsKICAgICAgICBteSAkTWVzc2FnZSA9ICJObyBzdWNoIG1ldGhvZCAnJE1ldGhvZCcgaW4gJyRPYmplY3QnISI7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICRNZXNzYWdlLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuICRTZWxmLT5fUmVzdWx0KAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAkTWVzc2FnZSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQogICAgZWxzaWYgKCAkT2JqZWN0IGVxICdDdXN0b21PYmplY3QnICkgewoKICAgICAgICAjIGNoZWNrIGlmIG1ldGhvZCBleGlzdHMgaW4gaVBob25lT2JqZWN0CiAgICAgICAgaWYgKCAhJFNlbGYtPntpUGhvbmVPYmplY3R9LT5jYW4oJE1ldGhvZCkgKSB7CiAgICAgICAgICAgIG15ICRNZXNzYWdlID0gIk5vIHN1Y2ggbWV0aG9kICckTWV0aG9kJyBpbiAnJE9iamVjdCchIjsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gJE1lc3NhZ2UsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiAkU2VsZi0+X1Jlc3VsdCgKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwKICAgICAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJE1lc3NhZ2UsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNsZWFudXAgcGFyYW1zIGlQaG9uZSBhcHBsaWNhdGlvbiBkb2VzIG5vdCBzZW5kIGVtcHR5IHZhbHVlcywgYnV0IHNhbWUgbmFtZSBhcyBwYXJhbWV0ZXIgYXM6CiAgICAjIFRpY2tldElEID0+ICdUaWNrZXRJRCcsIHRoaXMgdmFsdWVzIHdpbGwgbmVlZCB0byBiZSBzZXQgYXMgZW1wdHksIHNlZSBidWcjOTc1MgogICAgUEFSQU1OQU1FOgogICAgZm9yIG15ICRQYXJhbU5hbWUgKCBzb3J0IGtleXMgJVBhcmFtICkgewogICAgICAgIG5leHQgUEFSQU1OQU1FIGlmICEkUGFyYW17JFBhcmFtTmFtZX07CiAgICAgICAgbmV4dCBQQVJBTU5BTUUgaWYgJFBhcmFteyRQYXJhbU5hbWV9IG5lICIkUGFyYW1OYW1lIjsKICAgICAgICAkUGFyYW17JFBhcmFtTmFtZX0gPSAnJzsKICAgIH0KCiAgICAjIGV4ZWN1dGUgaVBob25lT2JqZWN0IG1ldGhvZHMKICAgIGlmICggJE9iamVjdCBlcSAnQ3VzdG9tT2JqZWN0JyB8fCAkT2JqZWN0IGVxICdpUGhvbmVPYmplY3QnICkgewoKICAgICAgICBteSBAUmVzdWx0ID0gJFNlbGYtPntpUGhvbmVPYmplY3R9LT4kTWV0aG9kKAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICVQYXJhbUZpeGVkLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuICRTZWxmLT5fUmVzdWx0KCBcQFJlc3VsdCApOwogICAgfQoKICAgICMgZXhlY3V0ZSBvdGhlciBvYmplY3QgbWV0aG9kcwogICAgZWxzZSB7CiAgICAgICAgbXkgQFJlc3VsdCA9ICRTZWxmLT57JE9iamVjdH0tPiRNZXRob2QoCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgJVBhcmFtRml4ZWQsCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gJFNlbGYtPl9SZXN1bHQoIFxAUmVzdWx0ICk7CiAgICB9Cn0KCj1pdGVtIF9SZXN1bHQoKQoKZW5jb2RlcyB0aGUgcmVzdWx0IGFzIGEgSlNPTiBvYmplY3QKCiAgICBteSAkUmVzdWx0ID0gJEludGVyZmFjZUFnZW50LT5fUmVzdWx0KAogICAgICAgICRBcnJheVJlZiwgICAgICAgICAgI09wdGlvbmFsLAogICAgfTsKCk9SOgogICAgbXkgJFJlc3VsdCA9ICRJbnRlcmZhY2VBZ2VudC0+X1Jlc3VsdCgKICAgICAgICBTdWNjZXNzID0+IDEsICAgICAgICAgICAgICAgICAgICAjIE9wdGlvbmFsCiAgICAgICAgRGF0YSAgICA9PiAkQXJyYXlIYXNoUmVmICAgICAgICAgIyBPcHRpb25hbCwgTWFuZGF0b3J5IGlmIFN1Y2NjZXNzIGlzIDEKICAgICAgICBNZXNzYWdlID0+ICdzb21lIGVycnJvciBtZXNzYWdlJyAjIE9wdGlvbmFsCiAgICApOwoKUmV0dXJucyBKU09OIHJlcHJlc2VudGF0aW9uIG9mOgogICAgJFJlc3VsdCA9IHsKICAgICAgICBTdWNjZXNzID0+ICdzdWNjZXNzZnVsJywKICAgICAgICBEYXRhICAgID0+ICRBcnJheU9mSGFzaGVzUmVmLAogICAgfQoKT3IgSlNPTiByZXByZXNldGF0aW9uIG9mOgogICAgJFJlc3VsdCA9IHsKICAgICAgICBSZXN1bHQgICAgICAgPT4gJ2ZhaWxlcycsCiAgICAgICAgTWVzc2FnZSA9PiAnc29tZSBtZXNzYWdlJywKICAgIH0KCj1jdXQKCnN1YiBfUmVzdWx0IHsKICAgIG15ICggJFNlbGYsICRSZXN1bHQgKSA9IEBfOwoKICAgIG15ICVSZXN1bHRQcm90b2NvbDsKCiAgICBpZiAoJFJlc3VsdCkgewoKICAgICAgICAjIHRoaXMgbWV0aG9kIGlzIHN0aWxsIG5lZWRlZCBmb3Igb3RoZXIgb2JqZWN0cyB0aGFuIEN1c3RvbU9iamVjdAogICAgICAgICMgdGhpcyBtZXRob2QgaXMgYWxzbyB1c2VkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IG9mIG5vdCBtaWdyYXRlZCBDdXN0b21PYmplY3QgZnVuY3Rpb25zCiAgICAgICAgaWYgKCByZWYgJFJlc3VsdCBlcSAnQVJSQVknICkgewoKICAgICAgICAgICAgIyAtMSByZXNwb25zZSBtZWFucyBhbiBlcnJvcgogICAgICAgICAgICBpZiAoIGRlZmluZWQgQHskUmVzdWx0fVswXSAmJiBAeyRSZXN1bHR9WzBdIGVxIC0xICkgewogICAgICAgICAgICAgICAgJFJlc3VsdFByb3RvY29se1Jlc3VsdH0gPSAnZmFpbGVkJzsKCiAgICAgICAgICAgICAgICAjIGdldCBsYXN0IGxvZ2VkIGVycm9yIGFuZCBzZXQgaXMgYXMgdGhlIGVycm9yIG1lc3NhZ2UKICAgICAgICAgICAgICAgIGZvciBteSAkS2V5IChxdyhlcnJvciBub3RpY2UpKSB7CiAgICAgICAgICAgICAgICAgICAgJFJlc3VsdFByb3RvY29se01lc3NhZ2V9ID0gJFNlbGYtPntMb2dPYmplY3R9LT5HZXRMb2dFbnRyeSgKICAgICAgICAgICAgICAgICAgICAgICAgVHlwZSA9PiAkS2V5LAogICAgICAgICAgICAgICAgICAgICAgICBXaGF0ID0+ICdNZXNzYWdlJywKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIGxhc3QgaWYgJFJlc3VsdFByb3RvY29se01lc3NhZ2V9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAjIG90aGVyd2lzZSBpcyBhbHdheXMgc3VjY2Vzc2Z1bAogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRSZXN1bHRQcm90b2NvbHtSZXN1bHR9ID0gJ3N1Y2Nlc3NmdWwnOwogICAgICAgICAgICAgICAgJFJlc3VsdFByb3RvY29se0RhdGF9ICAgPSAkUmVzdWx0OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHRoaXMgbWV0aG9kIHdpbGwgaGF2ZSBtb3JlIGNvbnRyb2wgb3ZlciB0aGUgZXJyb3IgbWVzc2FnZXMKICAgICAgICBlbHNpZiAoIHJlZiAkUmVzdWx0IGVxICdIQVNIJyApIHsKCiAgICAgICAgICAgICMgY2hlY2sgZm9yIGEgdHJ1ZSB2YWx1ZSBpbiBTdWNjZXNzIGtleQogICAgICAgICAgICBpZiAoIGRlZmluZWQgJFJlc3VsdC0+e1N1Y2Nlc3N9ICYmICRSZXN1bHQtPntTdWNjZXNzfSA9PSAxICkgewogICAgICAgICAgICAgICAgJFJlc3VsdFByb3RvY29se1Jlc3VsdH0gPSAnc3VjY2Vzc2Z1bCc7CiAgICAgICAgICAgICAgICAkUmVzdWx0UHJvdG9jb2x7RGF0YX0gICA9ICRSZXN1bHQtPntEYXRhfTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBvdGhlcndpc2UgaXMgYW4gZXJyb3IKICAgICAgICAgICAgZWxzaWYgKCBkZWZpbmVkICRSZXN1bHQtPntTdWNjZXNzfSAmJiAhJFJlc3VsdC0+e1N1Y2Nlc3N9ICkgewogICAgICAgICAgICAgICAgJFJlc3VsdFByb3RvY29se1Jlc3VsdH0gICAgICA9ICdmYWlsZWQnLAogICAgICAgICAgICAgICAgICAgICRSZXN1bHRQcm90b2NvbHtNZXNzYWdlfSA9ICRSZXN1bHQtPntFcnJvck1lc3NhZ2V9CiAgICAgICAgICAgICAgICAgICAgfHwgJ1Vua25vd24gRXJyb3IsIHBsYXNlIGNvbnRhY3Qgc3lzdGVtIGFkbWluaXN0cmF0b3IgdG8gY2hlY2sgT1RSUyBMb2dzISc7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgc3VjY2VzcyBmYWxsYmFjayBpZiByZXN1bHQgaXMgbm90IGFuIEFSUkFZIG9yIEhBU0gKICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFJlc3VsdFByb3RvY29se1Jlc3VsdH0gPSAnc3VjY2Vzc2Z1bCc7CiAgICAgICAgICAgICRSZXN1bHRQcm90b2NvbHtEYXRhfSAgID0gJFJlc3VsdDsKICAgICAgICB9CiAgICB9CgogICAgIyBmYWlsZWQgZmFsbGJhY2sgaWYgdGhlcmUgd2FzIG5vIHJlc3BvbnNlCiAgICBlbHNlIHsKICAgICAgICAkUmVzdWx0UHJvdG9jb2x7UmVzdWx0fSA9ICdmYWlsZWQnOwoKICAgICAgICAjIGdldCBsYXN0IGxvZ2VkIGVycm9yIGFuZCBzZXQgaXMgYXMgdGhlIGVycm9yIG1lc3NhZ2UKICAgICAgICBmb3IgbXkgJEtleSAocXcoZXJyb3Igbm90aWNlKSkgewogICAgICAgICAgICAkUmVzdWx0UHJvdG9jb2x7TWVzc2FnZX0gPSAkU2VsZi0+e0xvZ09iamVjdH0tPkdldExvZ0VudHJ5KAogICAgICAgICAgICAgICAgVHlwZSA9PiAkS2V5LAogICAgICAgICAgICAgICAgV2hhdCA9PiAnTWVzc2FnZScsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGxhc3QgaWYgJFJlc3VsdFByb3RvY29se01lc3NhZ2V9OwogICAgICAgIH0KICAgIH0KCiAgICAjIHNldCByZXN1bHQgdG8gYSB2YXJpYWJsZSBmb3IgZWFzeSBsb2cgb3V0cHV0CiAgICBteSAkSlNPTlJlc3VsdCA9ICRTZWxmLT57SlNPTk9iamVjdH0tPkVuY29kZSggRGF0YSA9PiBcJVJlc3VsdFByb3RvY29sICk7CgogICAgIyBvdXRib3VuZCBsb2cKICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ2lQaG9uZTo6RGVidWdMb2cnKSApIHsKCiAgICAgICAgJFNlbGYtPl9Mb2coCiAgICAgICAgICAgIERpcmVjdGlvbiA9PiAnT3V0Ym91bmQnLAogICAgICAgICAgICBNZXNzYWdlICAgPT4gJEpTT05SZXN1bHQsCiAgICAgICAgICAgICkKICAgIH0KCiAgICByZXR1cm4gJEpTT05SZXN1bHQ7Cn0KCj1pdGVtIF9Mb2coKQoKd3JpdGVzIHRvIGEgZGVmaW5lZCBsb2cgZmlsZQoKICAgICRJbnRlcmZhY2VBZ2VudC0+X0xvZygKICAgICAgICBEaXJlY3Rpb24gPT4gJ0luYm91bmQnLCAgICAgICAjIG9yIE91dGJvdW5kCiAgICAgICAgTWVzc2FnZSAgID0+ICdTb21lIE1lc3NhZ2UnLAogICAgfTsKCj1jdXQKCnN1YiBfTG9nIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJEZIOwoKICAgICMgb3BlbiBsb2dmaWxlCiAgICBpZiAoICFvcGVuICRGSCwgJz4+JywgJFNlbGYtPntEZWJ1Z0xvZ0ZpbGV9ICkgewoKICAgICAgICAjIHByaW50IGVycm9yIHNjcmVlbgogICAgICAgIHByaW50IFNUREVSUiAiXG4iOwogICAgICAgIHByaW50IFNUREVSUiAiID4+IENhbid0IHdyaXRlICRTZWxmLT57TG9nRmlsZX06ICQhIDw8XG4iOwogICAgICAgIHByaW50IFNUREVSUiAiXG4iOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIHdyaXRlIGxvZyBmaWxlCiAgICBwcmludCAkRkggJ1snIC4gJFNlbGYtPntUaW1lT2JqZWN0fS0+Q3VycmVudFRpbWVzdGFtcCgpIC4gJ10nOwogICAgcHJpbnQgJEZIICJbRGVidWddIFskUGFyYW17RGlyZWN0aW9ufV0gJFBhcmFte01lc3NhZ2V9XG4iOwoKICAgICMgY2xvc2UgZmlsZSBoYW5kbGUKICAgIGNsb3NlICRGSDsKICAgIHJldHVybiAxOwp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cDovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
IyAtLQojIHNjcmlwdHMvdGVzdC9KU09OR2F0ZXdheS50IC0gSlNPTiBnYXRld2F5IHRlc3RzY3JpcHQKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNSBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4Owp1c2UgdmFycyAocXcoJFNlbGYpKTsKCnVzZSBLZXJuZWw6OkNvbmZpZzsKdXNlIEtlcm5lbDo6U3lzdGVtOjpKU09OOwp1c2UgS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXI7CnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyhJc0FycmF5UmVmV2l0aERhdGEgSXNIYXNoUmVmV2l0aERhdGEgSXNTdHJpbmdXaXRoRGF0YSk7CnVzZSBLZXJuZWw6OlN5c3RlbTo6V2ViVXNlckFnZW50OwoKIyBoZWxwZXIgb2JqZWN0Cm15ICRIZWxwZXJPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlci0+bmV3KAogICAgJXskU2VsZn0sCiAgICBVbml0VGVzdE9iamVjdCAgICAgICAgICAgICA9PiAkU2VsZiwKICAgIFJlc3RvcmVTeXN0ZW1Db25maWd1cmF0aW9uID0+IDEsCik7CgojIGNyZWF0ZSBvdGhlciBvYmplY3RzCm15ICRDb25maWdPYmplY3QgICAgICAgPSBLZXJuZWw6OkNvbmZpZy0+bmV3KCk7Cm15ICRKU09OT2JqZWN0ICAgICAgICAgPSBLZXJuZWw6OlN5c3RlbTo6SlNPTi0+bmV3KCAleyRTZWxmfSApOwpteSAkV2ViVXNlckFnZW50T2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OldlYlVzZXJBZ2VudC0+bmV3KCAleyRTZWxmfSApOwoKIyBnZXQgcmVtb3RlIGhvc3Qgd2l0aCBzb21lIHByZWNhdXRpb25zIGZvciBjZXJ0YWluIHVuaXQgdGVzdCBzeXN0ZW1zCm15ICRIb3N0OwpteSAkRlFETiA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdGUUROJyk7CgojIHRyeSB0byByZXNvbHZlIGZxZG4gaG9zdAppZiAoICRGUUROIG5lICd5b3VyaG9zdC5leGFtcGxlLmNvbScgJiYgZ2V0aG9zdGJ5bmFtZSgkRlFETikgKSB7CiAgICAkSG9zdCA9ICRGUUROOwp9CgojIHRyeSB0byByZXNvbHZlIGxvY2FsaG9zdCBpbnN0ZWFkCmlmICggISRIb3N0ICYmIGdldGhvc3RieW5hbWUoJ2xvY2FsaG9zdCcpICkgewogICAgJEhvc3QgPSAnbG9jYWxob3N0JzsKfQoKIyB1c2UgaGFyZGNvZGVkIGxvY2FsaG9zdCBpcCBhZGRyZXNzCmlmICggISRIb3N0ICkgewogICAgJEhvc3QgPSAnMTI3LjAuMC4xJzsKfQoKIyBwcmVwYXJlIHdlYnNlcnZpY2UgY29uZmlnCm15ICRVUkwgPQogICAgJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ0h0dHBUeXBlJykKICAgIC4gJzovLycKICAgIC4gJEhvc3QKICAgIC4gJy8nCiAgICAuICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdTY3JpcHRBbGlhcycpCiAgICAuICdqc29uLnBsJzsKCm15ICRDYWxsSlNPTkNHSSA9IHN1YiB7CiAgICBteSAlUGFyYW0gPSBAXzsKCiAgICBteSAlSlNPTlBhcmFtczsKICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoICRQYXJhbXtKU09OUGFyYW1zfSApICkgewogICAgICAgICVKU09OUGFyYW1zID0gJXsgJFBhcmFte0pTT05QYXJhbXN9IH07CiAgICB9CgogICAgIyBjb3B5IEpTT04gQ0dJIGhhbmRsZXIKICAgIG15ICRKU09OVXJsID0gJFVSTCAuICc/JzsKCiAgICBmb3IgbXkgJEl0ZW0gKCBzb3J0IGtleXMgJUpTT05QYXJhbXMgKSB7CiAgICAgICAgJEpTT05VcmwgLj0gIiRJdGVtPSRKU09OUGFyYW1zeyRJdGVtfTsiOwogICAgfQogICAgbXkgJVJlc3BvbnNlID0gJFdlYlVzZXJBZ2VudE9iamVjdC0+UmVxdWVzdCgKICAgICAgICBVUkwgPT4gJEpTT05VcmwsCiAgICApOwoKICAgICRTZWxmLT5JcygKICAgICAgICAkUmVzcG9uc2V7U3RhdHVzfSwKICAgICAgICAnMjAwIE9LJywKICAgICAgICAiSlNPTiBDR0kgLSBUZXN0ICRQYXJhbXtUZXN0TmFtZX0gLSByZXNwb25zZSBpcyAyMDAgT0siLAogICAgKTsKCiAgICByZXR1cm4gJFJlc3BvbnNle0NvbnRlbnR9Owp9OwoKIyBjcmVhdGUgdGVzdCB1c2VyCm15ICRVc2VyID0gJEhlbHBlck9iamVjdC0+VGVzdFVzZXJDcmVhdGUoCiAgICBHcm91cHMgPT4gWyd1c2VycyddLAopOwpteSAkUGFzc3dvcmQgPSAkVXNlcjsKCm15ICRSYW5kb21JRCA9ICRIZWxwZXJPYmplY3QtPkdldFJhbmRvbUlEKCk7CgpteSBAVGVzdHMgPSAoCiAgICB7CiAgICAgICAgTmFtZSAgICAgICA9PiAnRW1wdHkgcGFyYW1zJywKICAgICAgICBKU09OUGFyYW1zID0+IHt9LAogICAgICAgIFN1Y2Nlc3MgICAgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgICAgICA9PiAnRW1wdHkgdXNlcicsCiAgICAgICAgSlNPTlBhcmFtcyA9PiB7CiAgICAgICAgICAgIFVzZXIgICAgID0+ICcnLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkUGFzc3dvcmQsCiAgICAgICAgICAgIE9iamVjdCAgID0+ICdDdXN0b21PYmplY3QnLAogICAgICAgICAgICBNZXRob2QgICA9PiAnVmVyc2lvbkdldCcsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgPT4gJ0VtcHR5IHBhc3N3b3JkJywKICAgICAgICBKU09OUGFyYW1zID0+IHsKICAgICAgICAgICAgVXNlciAgICAgPT4gJFVzZXIsCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICcnLAogICAgICAgICAgICBPYmplY3QgICA9PiAnQ3VzdG9tT2JqZWN0JywKICAgICAgICAgICAgTWV0aG9kICAgPT4gJ1ZlcnNpb25HZXQnLAogICAgICAgIH0sCiAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgICAgID0+ICdNaXNzaW5nIHBhc3N3b3JkJywKICAgICAgICBKU09OUGFyYW1zID0+IHsKICAgICAgICAgICAgVXNlciAgID0+ICRVc2VyLAogICAgICAgICAgICBPYmplY3QgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgIE1ldGhvZCA9PiAnVmVyc2lvbkdldCcsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgPT4gJ01pc3NpbmcgdXNlcicsCiAgICAgICAgSlNPTlBhcmFtcyA9PiB7CiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRQYXNzd29yZCwKICAgICAgICAgICAgT2JqZWN0ICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgIE1ldGhvZCAgID0+ICdWZXJzaW9uR2V0JywKICAgICAgICB9LAogICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgICAgICA9PiAnV3JvbmcgdXNlcicsCiAgICAgICAgSlNPTlBhcmFtcyA9PiB7CiAgICAgICAgICAgIFVzZXIgICAgID0+ICdOb3RFeGlzdGluZycgLiAkUmFuZG9tSUQsCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRQYXNzd29yZCwKICAgICAgICAgICAgT2JqZWN0ICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgIE1ldGhvZCAgID0+ICdWZXJzaW9uR2V0JywKICAgICAgICB9LAogICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgICAgICA9PiAnV3JvbmcgcGFzc3dvcmQnLAogICAgICAgIEpTT05QYXJhbXMgPT4gewogICAgICAgICAgICBVc2VyICAgICA9PiAkVXNlciwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJ05vdEV4aXN0aW5nJyAuICRSYW5kb21JRCwKICAgICAgICAgICAgT2JqZWN0ICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgIE1ldGhvZCAgID0+ICdWZXJzaW9uR2V0JywKICAgICAgICB9LAogICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgICAgICA9PiAnTWlzc2luZyBvYmplY3QnLAogICAgICAgIEpTT05QYXJhbXMgPT4gewogICAgICAgICAgICBVc2VyICAgICA9PiAkVXNlciwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFBhc3N3b3JkLAogICAgICAgICAgICBNZXRob2QgICA9PiAnVmVyc2lvbkdldCcsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgPT4gJ01pc3NpbmcgbWV0aG9kJywKICAgICAgICBKU09OUGFyYW1zID0+IHsKICAgICAgICAgICAgVXNlciAgICAgPT4gJFVzZXIsCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRQYXNzd29yZCwKICAgICAgICAgICAgT2JqZWN0ICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgPT4gJ1dyb25nIE9iamVjdCcsCiAgICAgICAgSlNPTlBhcmFtcyA9PiB7CiAgICAgICAgICAgIFVzZXIgICAgID0+ICRVc2VyLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkUGFzc3dvcmQsCiAgICAgICAgICAgIE9iamVjdCAgID0+ICdNeU9iamVjdCcsCiAgICAgICAgICAgIE1ldGhvZCAgID0+ICdUaWNrZXRHZXQnLAogICAgICAgIH0sCiAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgICAgID0+ICdCbGFja2xpc3QgT2JqZWN0JywKICAgICAgICBKU09OUGFyYW1zID0+IHsKICAgICAgICAgICAgVXNlciAgICAgPT4gJFVzZXIsCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRQYXNzd29yZCwKICAgICAgICAgICAgT2JqZWN0ICAgPT4gJ1NlcnZpY2VPYmplY3QnLAogICAgICAgICAgICBNZXRob2QgICA9PiAnU2VydmljZUdldCcsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgPT4gJ1doaXRlbGlzdCBPYmplY3QsIEJsYWNrbGlzdCBNZXRob2QnLAogICAgICAgIEpTT05QYXJhbXMgPT4gewogICAgICAgICAgICBVc2VyICAgICA9PiAkVXNlciwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFBhc3N3b3JkLAogICAgICAgICAgICBPYmplY3QgICA9PiAnVGlja2V0T2JqZWN0JywKICAgICAgICAgICAgTWV0aG9kICAgPT4gJ1RpY2tldEdldCcsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgPT4gJ1dyb25nIE1ldGhvZCBCbGFja2xpc3RlZCBEQk9iamVjdCcsCiAgICAgICAgSlNPTlBhcmFtcyA9PiB7CiAgICAgICAgICAgIFVzZXIgICAgID0+ICRVc2VyLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkUGFzc3dvcmQsCiAgICAgICAgICAgIE9iamVjdCAgID0+ICdEQk9iamVjdCcsCiAgICAgICAgICAgIE1ldGhvZCAgID0+ICdOb3RFeGlzdGVudEdldCcsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgPT4gJ0JsYWNrbGlzdGVkIERCT2JqZWN0JywKICAgICAgICBKU09OUGFyYW1zID0+IHsKICAgICAgICAgICAgVXNlciAgICAgPT4gJFVzZXIsCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRQYXNzd29yZCwKICAgICAgICAgICAgT2JqZWN0ICAgPT4gJ0RCT2JqZWN0JywKICAgICAgICAgICAgTWV0aG9kICAgPT4gJ0RvJywKICAgICAgICB9LAogICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgICAgICA9PiAnQmxhY2tsaXN0ZWQgU3lzQ29uZmlnT2JqZWN0JywKICAgICAgICBKU09OUGFyYW1zID0+IHsKICAgICAgICAgICAgVXNlciAgICAgPT4gJFVzZXIsCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRQYXNzd29yZCwKICAgICAgICAgICAgT2JqZWN0ICAgPT4gJ1N5c0NvbmZpZ09iamVjdCcsCiAgICAgICAgICAgIE1ldGhvZCAgID0+ICdHZXQnLAogICAgICAgIH0sCiAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgICAgID0+ICdCbGFja2xpc3RlZCBMb2dPYmplY3QnLAogICAgICAgIEpTT05QYXJhbXMgPT4gewogICAgICAgICAgICBVc2VyICAgICA9PiAkVXNlciwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFBhc3N3b3JkLAogICAgICAgICAgICBPYmplY3QgICA9PiAnTG9nT2JqZWN0JywKICAgICAgICAgICAgTWV0aG9kICAgPT4gJ0xvZycsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgPT4gJ1dyb25nIE1ldGhvZCBDdXN0b21PYmplY3QnLAogICAgICAgIEpTT05QYXJhbXMgPT4gewogICAgICAgICAgICBVc2VyICAgICA9PiAkVXNlciwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFBhc3N3b3JkLAogICAgICAgICAgICBPYmplY3QgICA9PiAnQ3VzdG9tT2JqZWN0JywKICAgICAgICAgICAgTWV0aG9kICAgPT4gJ05vdEV4aXN0ZW50R2V0JywKICAgICAgICB9LAogICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgICAgICA9PiAnTWlzc2luZyBQYXJhbWV0ZXJzIEN1c3RvbU9iamVjdCcsCiAgICAgICAgSlNPTlBhcmFtcyA9PiB7CiAgICAgICAgICAgIFVzZXIgICAgID0+ICRVc2VyLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkUGFzc3dvcmQsCiAgICAgICAgICAgIE9iamVjdCAgID0+ICdDdXN0b21PYmplY3QnLAogICAgICAgICAgICBNZXRob2QgICA9PiAnQ3VzdG9tZXJJREdldCcsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgPT4gJ0NvcnJlY3QgKFdpdGhvdXQgUGFyYW1ldGVycykgQ3VzdG9tT2JqZWN0JywKICAgICAgICBKU09OUGFyYW1zID0+IHsKICAgICAgICAgICAgVXNlciAgICAgPT4gJFVzZXIsCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRQYXNzd29yZCwKICAgICAgICAgICAgT2JqZWN0ICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgIE1ldGhvZCAgID0+ICdWZXJzaW9uR2V0JywKICAgICAgICB9LAogICAgICAgIFN1Y2Nlc3MgPT4gMSwKICAgIH0sCgopOwoKZm9yIG15ICRUZXN0IChAVGVzdHMpIHsKICAgIG15ICRKU09OUmVzcG9uc2UgPSAkQ2FsbEpTT05DR0ktPigKICAgICAgICBUZXN0TmFtZSAgID0+ICRUZXN0LT57TmFtZX0sCiAgICAgICAgSlNPTlBhcmFtcyA9PiAkVGVzdC0+e0pTT05QYXJhbXN9LAogICAgKTsKCiAgICBteSAkUmVzcG9uc2UgPSAkSlNPTk9iamVjdC0+RGVjb2RlKCBEYXRhID0+ICR7JEpTT05SZXNwb25zZX0gKTsKCiAgICAkU2VsZi0+SXMoCiAgICAgICAgcmVmICRSZXNwb25zZSwKICAgICAgICAnSEFTSCcsCiAgICAgICAgIkpTT04gQ0dJIC0gVGVzdCAkVGVzdC0+e05hbWV9IC0gZGVjb2RlZCByZXNwb25zZSBpcyBhIEhhc2ggUmVmZXJlbmNlIiwKICAgICk7CgogICAgaWYgKCAkVGVzdC0+e1N1Y2Nlc3N9ICkgewoKICAgIH0KICAgIGVsc2UgewogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJFJlc3BvbnNlLT57UmVzdWx0fSwKICAgICAgICAgICAgJ2ZhaWxlZCcsCiAgICAgICAgICAgICJKU09OIENHSSAtIFRlc3QgJFRlc3QtPntOYW1lfSAtIGRlY29kZWQgcmVzcG9uc2UgcmVzdWx0IGlzIGZhbHNlIiwKICAgICAgICApOwogICAgICAgICRTZWxmLT5Jc05vdCgKICAgICAgICAgICAgJFJlc3BvbnNlLT57TWVzc2FnZX0sCiAgICAgICAgICAgICcnLAogICAgICAgICAgICAiSlNPTiBDR0kgLSBUZXN0ICRUZXN0LT57TmFtZX0gLSBkZWNvZGVkIHJlc3BvbnNlIG1lc3NhZ2UgaXMgbm90IGVtcHR5IiwKICAgICAgICApOwogICAgfQp9CjE7Cg==
IyAtLQojIEhhc0JlaGF2aW9yLnQgLSBIYXNCZWhhdmlvciBiYWNrZW5kIHRlc3RzCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTUgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKdXNlIHZhcnMgKHF3KCRTZWxmKSk7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZDsKdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyOwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CgpteSAkSGVscGVyT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXItPm5ldygKICAgICUkU2VsZiwKICAgIFVuaXRUZXN0T2JqZWN0ID0+ICRTZWxmLAopOwoKbXkgJERGQmFja2VuZE9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQtPm5ldyggJXskU2VsZn0gKTsKCiMgdGhlcmVzIGlzIG5vdCByZWFsbHkgbmVlZGVkIHRvIGFkZCB0aGUgZHluYW1pYyBmaWVsZHMgZm9yIHRoaXMgdGVzdCwgd2UgY2FuIGRlZmluZSBhIHN0YXRpYwojIHNldCBvZiBjb25maWd1cmF0aW9ucwpteSAlRHluYW1pY0ZpZWxkQ29uZmlncyA9ICgKICAgIFRleHQgPT4gewogICAgICAgIElEICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIEludGVybmFsRmllbGQgPT4gMCwKICAgICAgICBOYW1lICAgICAgICAgID0+ICdUZXh0RmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ1RleHRGaWVsZCcsCiAgICAgICAgRmllbGRPcmRlciAgICA9PiAxMjMsCiAgICAgICAgRmllbGRUeXBlICAgICA9PiAnVGV4dCcsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlID0+ICcnLAogICAgICAgICAgICBMaW5rICAgICAgICAgPT4gJycsCiAgICAgICAgfSwKICAgICAgICBWYWxpZElEICAgID0+IDEsCiAgICAgICAgQ3JlYXRlVGltZSA9PiAnMjAxMS0wMi0wOCAxNTowODowMCcsCiAgICAgICAgQ2hhbmdlVGltZSA9PiAnMjAxMS0wNi0xMSAxNzoyMjowMCcsCiAgICB9LAogICAgVGV4dEFyZWEgPT4gewogICAgICAgIElEICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIEludGVybmFsRmllbGQgPT4gMCwKICAgICAgICBOYW1lICAgICAgICAgID0+ICdUZXh0QXJlYUZpZWxkJywKICAgICAgICBMYWJlbCAgICAgICAgID0+ICdUZXh0QXJlYUZpZWxkJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdUZXh0QXJlYScsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlID0+ICcnLAogICAgICAgICAgICBSb3dzICAgICAgICAgPT4gJycsCiAgICAgICAgICAgIENvbHMgICAgICAgICA9PiAnJywKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCiAgICBDaGVja2JveCA9PiB7CiAgICAgICAgSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAwLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ0NoZWNrYm94RmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ0NoZWNrYm94RmllbGQnLAogICAgICAgIEZpZWxkT3JkZXIgICAgPT4gMTIzLAogICAgICAgIEZpZWxkVHlwZSAgICAgPT4gJ0NoZWNrYm94JywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgPT4gJycsCiAgICAgICAgfSwKICAgICAgICBWYWxpZElEICAgID0+IDEsCiAgICAgICAgQ3JlYXRlVGltZSA9PiAnMjAxMS0wMi0wOCAxNTowODowMCcsCiAgICAgICAgQ2hhbmdlVGltZSA9PiAnMjAxMS0wNi0xMSAxNzoyMjowMCcsCiAgICB9LAogICAgRHJvcGRvd24gPT4gewogICAgICAgIElEICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIEludGVybmFsRmllbGQgPT4gMCwKICAgICAgICBOYW1lICAgICAgICAgID0+ICdEcm9wZG93bkZpZWxkJywKICAgICAgICBMYWJlbCAgICAgICAgID0+ICdEcm9wZG93bkZpZWxkJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdEcm9wZG93bicsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlICAgICAgID0+ICcnLAogICAgICAgICAgICBMaW5rICAgICAgICAgICAgICAgPT4gJycsCiAgICAgICAgICAgIFBvc3NpYmxlTm9uZSAgICAgICA9PiAnJywKICAgICAgICAgICAgVHJhbnNsYXRhYmxlVmFsdWVzID0+ICcnLAogICAgICAgICAgICBQb3NzaWJsZVZhbHVlcyAgICAgPT4gewogICAgICAgICAgICAgICAgQSA9PiAnQScsCiAgICAgICAgICAgICAgICBCID0+ICdCJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCiAgICBNdWx0aXNlbGVjdCA9PiB7CiAgICAgICAgSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAwLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ011bHRpc2VsZWN0RmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ011bHRpc2VsZWN0RmllbGQnLAogICAgICAgIEZpZWxkT3JkZXIgICAgPT4gMTIzLAogICAgICAgIEZpZWxkVHlwZSAgICAgPT4gJ011bHRpc2VsZWN0JywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgICAgICAgPT4gJycsCiAgICAgICAgICAgIFBvc3NpYmxlTm9uZSAgICAgICA9PiAnJywKICAgICAgICAgICAgVHJhbnNsYXRhYmxlVmFsdWVzID0+ICcnLAogICAgICAgICAgICBQb3NzaWJsZVZhbHVlcyAgICAgPT4gewogICAgICAgICAgICAgICAgQSA9PiAnQScsCiAgICAgICAgICAgICAgICBCID0+ICdCJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCiAgICBEYXRlVGltZSA9PiB7CiAgICAgICAgSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAwLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ0RhdGVUaW1lRmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ0RhdGVUaW1lRmllbGQnLAogICAgICAgIEZpZWxkT3JkZXIgICAgPT4gMTIzLAogICAgICAgIEZpZWxkVHlwZSAgICAgPT4gJ0RhdGVUaW1lJywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgID0+ICcnLAogICAgICAgICAgICBMaW5rICAgICAgICAgID0+ICcnLAogICAgICAgICAgICBZZWFyc1BlcmlvZCAgID0+ICcnLAogICAgICAgICAgICBZZWFyc0luRnV0dXJlID0+ICcnLAogICAgICAgICAgICBZZWFyc0luUGFzdCAgID0+ICcnLAogICAgICAgIH0sCiAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgICAgIENyZWF0ZVRpbWUgPT4gJzIwMTEtMDItMDggMTU6MDg6MDAnLAogICAgICAgIENoYW5nZVRpbWUgPT4gJzIwMTEtMDYtMTEgMTc6MjI6MDAnLAogICAgfSwKICAgIERhdGUgPT4gewogICAgICAgIElEICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIEludGVybmFsRmllbGQgPT4gMCwKICAgICAgICBOYW1lICAgICAgICAgID0+ICdEYXRlRmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ0RhdGVGaWVsZCcsCiAgICAgICAgRmllbGRPcmRlciAgICA9PiAxMjMsCiAgICAgICAgRmllbGRUeXBlICAgICA9PiAnRGF0ZScsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlICA9PiAnJywKICAgICAgICAgICAgTGluayAgICAgICAgICA9PiAnJywKICAgICAgICAgICAgWWVhcnNQZXJpb2QgICA9PiAnJywKICAgICAgICAgICAgWWVhcnNJbkZ1dHVyZSA9PiAnJywKICAgICAgICAgICAgWWVhcnNJblBhc3QgICA9PiAnJywKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCik7CgojIGRlZmluZSB0ZXN0cwpteSBAVGVzdHMgPSAoCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgVGV4dCcsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze1RleHR9LAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgJ0lzSVBob25lQ2FwYWJsZScgPT4gMSwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBUZXh0IEFyZWEnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tUZXh0QXJlYX0sCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICAnSXNJUGhvbmVDYXBhYmxlJyA9PiAxLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIENoZWNrYm94JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7Q2hlY2tib3h9LAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgJ0lzSVBob25lQ2FwYWJsZScgPT4gMSwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEcm9wZG93bicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze0Ryb3Bkb3dufSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgICdJc0lQaG9uZUNhcGFibGUnID0+IDEsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgTXVsdGlzZWxlY3QnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tNdWx0aXNlbGVjdH0sCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICAnSXNJUGhvbmVDYXBhYmxlJyA9PiAwLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIERhdGVUaW1lJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7RGF0ZVRpbWV9LAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgJ0lzSVBob25lQ2FwYWJsZScgPT4gMSwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEYXRlJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7RGF0ZX0sCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICAnSXNJUGhvbmVDYXBhYmxlJyA9PiAxLAogICAgICAgIH0sCiAgICB9LAopOwoKIyBleGVjdXRlIHRlc3RzCmZvciBteSAkVGVzdCAoQFRlc3RzKSB7CgogICAgIyBzZXQga25vd24gYmVoYXZpb3JzCiAgICBCRUhBVklPUjoKICAgIGZvciBteSAkQmVoYXZpb3IgKHF3KElzSVBob25lQ2FwYWJsZSkpIHsKCiAgICAgICAgIyB0byBzdG9yZSB0aGUgY29uZmlnIChhbHNvIGZvciBlYWNoIGJlaGF2aW9yKQogICAgICAgIG15ICVDb25maWc7CgogICAgICAgICMgYWRkIHRoZSBiZWhhdmlvciBpZiB0aGVyZSBpcyBhIGNvbmZpZyB3aGVyZSB0byBhZGQgaXQuCiAgICAgICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSggJFRlc3QtPntDb25maWd9ICkgKSB7CiAgICAgICAgICAgICVDb25maWcgPSAoCiAgICAgICAgICAgICAgICAleyAkVGVzdC0+e0NvbmZpZ30gfSwKICAgICAgICAgICAgICAgIEJlaGF2aW9yID0+ICRCZWhhdmlvciwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgY2FsbCBIYXNCZWhhdmlvciBmb3IgZWFjaCB0ZXN0IGZvciBlYWNoIGtub3duIGJlaGF2aW9yCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkREZCYWNrZW5kT2JqZWN0LT5IYXNCZWhhdmlvciglQ29uZmlnKTsKCiAgICAgICAgIyBpZiB0aGUgdGVzdCBpcyBhIHN1Y2Nlc3MgdGhlbiBjaGVjayB0aGUgZXhwZWN0ZWQgcmVzdWx0cyB3aXRoIHRydWUKICAgICAgICBpZiAoJFN1Y2Nlc3MpIHsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkVGVzdC0+e0V4cGVjdGVkUmVzdWx0c30tPnskQmVoYXZpb3J9LAogICAgICAgICAgICAgICAgIiRUZXN0LT57TmFtZX0gSGFzQmVoYXZpb3IoKSBmb3IgJEJlaGF2aW9yIGV4ZWN1dGVkIHdpdGggVHJ1ZSIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIG90aGVyd2lzZSBpZiB0aGVyZSBpcyBhIER5bmFtaWNGaWVsZCBjb25maWcgY2hlY2sgdGhlIGV4cGVjdGVkIHJlc3VsdHMgd2l0aCBmYWxzZQogICAgICAgIGVsc2UgewogICAgICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCAkVGVzdC0+e0NvbmZpZ30tPntEeW5hbWljRmllbGRDb25maWd9ICkgKSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+RmFsc2UoCiAgICAgICAgICAgICAgICAgICAgJFRlc3QtPntFeHBlY3RlZFJlc3VsdHN9LT57JEJlaGF2aW9yfSwKICAgICAgICAgICAgICAgICAgICAiJFRlc3QtPntOYW1lfSBIYXNCZWhhdmlvcigpIGZvciAkQmVoYXZpb3IgZXhlY3V0ZWQgd2l0aCBGYWxzZSIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGlmIHRoZXJlIGlzIG5vIER5bmFtaWNGaWVsZCBjb25maWcsIHRoZW4gaXQgc2hvdWxkIGZhaWwsIGRvbid0IG5lZWQgZnVydGhlciBjaGVja3MKICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICAgICAxLAogICAgICAgICAgICAgICAgICAgICIkVGVzdC0+e05hbWV9IEhhc0JlaGF2aW9yKCkgU2hvdWxkIG5vdCBydW4gb24gbWlzc2luZyBjb25maWd1cmF0aW9uIiwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBpZiB0aGUgdGVzdHMgc3VwcG9zZWQgdG8gZmFpbCBkdWUgdG8gbWlzc2luZyBlc3NlbnRpYWwgY29uZmlndXJhdGlvbiB0aGVyZSBpcyBubwogICAgICAgICAgICAgICAgIyBuZWVkIHRvIGtlZXAgdGVzdGluZyB3aXRoIG90aGVyIGJlaGF2aW9ycwogICAgICAgICAgICAgICAgbGFzdCBCRUhBVklPUjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQoKIyB3ZSBkb24ndCBuZWVkIGFueSBjbGVhbnVwCjE7Cg==
IyAtLQojIGlQaG9uZUZpZWxkUGFyYW1ldGVyQnVpbGQudCAtIGlQaG9uZUZpZWxkUGFyYW1ldGVyQnVpbGQgYmFja2VuZCB0ZXN0cwojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CnVzZSB2YXJzIChxdygkU2VsZikpOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQ7CnVzZSBLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcjsKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKbXkgJEhlbHBlck9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyLT5uZXcoCiAgICAlJFNlbGYsCiAgICBVbml0VGVzdE9iamVjdCA9PiAkU2VsZiwKKTsKCm15ICRERkJhY2tlbmRPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kLT5uZXcoICV7JFNlbGZ9ICk7CgpteSAkRW5MYW5ndWFnZU9iamVjdCA9IEtlcm5lbDo6TGFuZ3VhZ2UtPm5ldygKICAgICV7JFNlbGZ9LAogICAgVXNlckxhbmd1YWdlID0+ICdlbicsCik7Cm15ICRFc0xhbmd1YWdlT2JqZWN0ID0gS2VybmVsOjpMYW5ndWFnZS0+bmV3KAogICAgJXskU2VsZn0sCiAgICBVc2VyTGFuZ3VhZ2UgPT4gJ2VzJywKKTsKCiMgdGhlcmVzIGlzIG5vdCByZWFsbHkgbmVlZGVkIHRvIGFkZCB0aGUgZHluYW1pYyBmaWVsZHMgZm9yIHRoaXMgdGVzdCwgd2UgY2FuIGRlZmluZSBhIHN0YXRpYwojIHNldCBvZiBjb25maWd1cmF0aW9ucwpteSAlRHluYW1pY0ZpZWxkQ29uZmlncyA9ICgKICAgIFRleHQgPT4gewogICAgICAgIElEICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIEludGVybmFsRmllbGQgPT4gMCwKICAgICAgICBOYW1lICAgICAgICAgID0+ICdUZXh0RmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ093bmVyJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdUZXh0JywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgPT4gJycsCiAgICAgICAgICAgIExpbmsgICAgICAgICA9PiAnJywKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCiAgICBUZXh0QXJlYSA9PiB7CiAgICAgICAgSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAwLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ1RleHRBcmVhRmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ093bmVyJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdUZXh0QXJlYScsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlID0+ICcnLAogICAgICAgICAgICBSb3dzICAgICAgICAgPT4gJycsCiAgICAgICAgICAgIENvbHMgICAgICAgICA9PiAnJywKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCiAgICBDaGVja2JveCA9PiB7CiAgICAgICAgSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAwLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ0NoZWNrYm94RmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ093bmVyJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdDaGVja2JveCcsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlID0+ICcnLAogICAgICAgIH0sCiAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgICAgIENyZWF0ZVRpbWUgPT4gJzIwMTEtMDItMDggMTU6MDg6MDAnLAogICAgICAgIENoYW5nZVRpbWUgPT4gJzIwMTEtMDYtMTEgMTc6MjI6MDAnLAogICAgfSwKICAgIERyb3Bkb3duID0+IHsKICAgICAgICBJRCAgICAgICAgICAgID0+IDEyMywKICAgICAgICBJbnRlcm5hbEZpZWxkID0+IDAsCiAgICAgICAgTmFtZSAgICAgICAgICA9PiAnRHJvcGRvd25GaWVsZCcsCiAgICAgICAgTGFiZWwgICAgICAgICA9PiAnT3duZXInLAogICAgICAgIEZpZWxkT3JkZXIgICAgPT4gMTIzLAogICAgICAgIEZpZWxkVHlwZSAgICAgPT4gJ0Ryb3Bkb3duJywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgICAgICAgPT4gJycsCiAgICAgICAgICAgIExpbmsgICAgICAgICAgICAgICA9PiAnJywKICAgICAgICAgICAgUG9zc2libGVOb25lICAgICAgID0+ICcnLAogICAgICAgICAgICBUcmFuc2xhdGFibGVWYWx1ZXMgPT4gMSwKICAgICAgICAgICAgUG9zc2libGVWYWx1ZXMgICAgID0+IHsKICAgICAgICAgICAgICAgIDEgPT4gJ1ByaW9yaXR5JywKICAgICAgICAgICAgICAgIDIgPT4gJ1N0YXRlJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCiAgICBNdWx0aXNlbGVjdCA9PiB7CiAgICAgICAgSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAwLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ011bHRpc2VsZWN0RmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ093bmVyJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdNdWx0aXNlbGVjdCcsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlICAgICAgID0+ICcnLAogICAgICAgICAgICBQb3NzaWJsZU5vbmUgICAgICAgPT4gJycsCiAgICAgICAgICAgIFRyYW5zbGF0YWJsZVZhbHVlcyA9PiAxLAogICAgICAgICAgICBQb3NzaWJsZVZhbHVlcyAgICAgPT4gewogICAgICAgICAgICAgICAgMSA9PiAnUHJpb3JpdHknLAogICAgICAgICAgICAgICAgMiA9PiAnU3RhdGUnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgICAgIENyZWF0ZVRpbWUgPT4gJzIwMTEtMDItMDggMTU6MDg6MDAnLAogICAgICAgIENoYW5nZVRpbWUgPT4gJzIwMTEtMDYtMTEgMTc6MjI6MDAnLAogICAgfSwKICAgIERhdGVUaW1lID0+IHsKICAgICAgICBJRCAgICAgICAgICAgID0+IDEyMywKICAgICAgICBJbnRlcm5hbEZpZWxkID0+IDAsCiAgICAgICAgTmFtZSAgICAgICAgICA9PiAnRGF0ZVRpbWVGaWVsZCcsCiAgICAgICAgTGFiZWwgICAgICAgICA9PiAnT3duZXInLAogICAgICAgIEZpZWxkT3JkZXIgICAgPT4gMTIzLAogICAgICAgIEZpZWxkVHlwZSAgICAgPT4gJ0RhdGVUaW1lJywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgID0+IHVuZGVmLAogICAgICAgICAgICBMaW5rICAgICAgICAgID0+ICcnLAogICAgICAgICAgICBZZWFyc1BlcmlvZCAgID0+ICcnLAogICAgICAgICAgICBZZWFyc0luRnV0dXJlID0+ICcnLAogICAgICAgICAgICBZZWFyc0luUGFzdCAgID0+ICcnLAogICAgICAgIH0sCiAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgICAgIENyZWF0ZVRpbWUgPT4gJzIwMTEtMDItMDggMTU6MDg6MDAnLAogICAgICAgIENoYW5nZVRpbWUgPT4gJzIwMTEtMDYtMTEgMTc6MjI6MDAnLAogICAgfSwKICAgIERhdGUgPT4gewogICAgICAgIElEICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIEludGVybmFsRmllbGQgPT4gMCwKICAgICAgICBOYW1lICAgICAgICAgID0+ICdEYXRlRmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ093bmVyJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdEYXRlJywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgID0+ICcnLAogICAgICAgICAgICBMaW5rICAgICAgICAgID0+ICcnLAogICAgICAgICAgICBZZWFyc1BlcmlvZCAgID0+ICcnLAogICAgICAgICAgICBZZWFyc0luRnV0dXJlID0+ICcnLAogICAgICAgICAgICBZZWFyc0luUGFzdCAgID0+ICcnLAogICAgICAgIH0sCiAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgICAgIENyZWF0ZVRpbWUgPT4gJzIwMTEtMDItMDggMTU6MDg6MDAnLAogICAgICAgIENoYW5nZVRpbWUgPT4gJzIwMTEtMDYtMTEgMTc6MjI6MDAnLAogICAgfSwKKTsKCiMgZGVmaW5lIHRlc3RzCm15IEBUZXN0cyA9ICgKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBUZXh0IEVOJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tUZXh0fSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgICAgPT4gJ1ByaW9yaXR5JywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgVXNlRGVmYXVsdFZhbHVlICAgICAgPT4gMCwKICAgICAgICAgICAgT3ZlcnJpZGVQb3NzaWJsZU5vbmUgPT4gdW5kZWYsCiAgICAgICAgICAgIExhbmd1YWdlT2JqZWN0ICAgICAgID0+ICRFbkxhbmd1YWdlT2JqZWN0CiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ0R5bmFtaWNGaWVsZF9UZXh0RmllbGQnLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJ093bmVyJywKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgID0+ICdJbnB1dCcsCiAgICAgICAgICAgIE1pbiAgICAgICA9PiAxLAogICAgICAgICAgICBNYXggICAgICAgPT4gMjAwLAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMSwKICAgICAgICAgICAgRGVmYXVsdCAgID0+ICdQcmlvcml0eScsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgVGV4dCBFUycsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7VGV4dH0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICAgID0+ICdQcmlvcml0eScsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIFVzZURlZmF1bHRWYWx1ZSAgICAgID0+IDAsCiAgICAgICAgICAgIE92ZXJyaWRlUG9zc2libGVOb25lID0+IHVuZGVmLAogICAgICAgICAgICBMYW5ndWFnZU9iamVjdCAgICAgICA9PiAkRXNMYW5ndWFnZU9iamVjdAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgTmFtZSAgICAgID0+ICdEeW5hbWljRmllbGRfVGV4dEZpZWxkJywKICAgICAgICAgICAgVGl0bGUgICAgID0+ICdQcm9waWV0YXJpbycsCiAgICAgICAgICAgIERhdGF0eXBlICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnSW5wdXQnLAogICAgICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICAgICAgTWF4ICAgICAgID0+IDIwMCwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDEsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAnUHJpb3JpdHknLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIFRleHQgQXJlYSBFTicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7VGV4dEFyZWF9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgICA9PiAnUHJpb3JpdHknLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgICA9PiAwLAogICAgICAgICAgICBVc2VEZWZhdWx0VmFsdWUgICAgICA9PiAwLAogICAgICAgICAgICBPdmVycmlkZVBvc3NpYmxlTm9uZSA9PiB1bmRlZiwKICAgICAgICAgICAgTGFuZ3VhZ2VPYmplY3QgICAgICAgPT4gJEVuTGFuZ3VhZ2VPYmplY3QKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnRHluYW1pY0ZpZWxkX1RleHRBcmVhRmllbGQnLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJ093bmVyJywKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgID0+ICdUZXh0QXJlYScsCiAgICAgICAgICAgIE1pbiAgICAgICA9PiAxLAogICAgICAgICAgICBNYXggICAgICAgPT4gMjAwMDAsCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAwLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJ1ByaW9yaXR5JywKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBUZXh0IEFyZWEgRVMnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgID0+ICREeW5hbWljRmllbGRDb25maWdze1RleHRBcmVhfSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgICAgPT4gJ1ByaW9yaXR5JywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgICAgPT4gMCwKICAgICAgICAgICAgVXNlRGVmYXVsdFZhbHVlICAgICAgPT4gMCwKICAgICAgICAgICAgT3ZlcnJpZGVQb3NzaWJsZU5vbmUgPT4gdW5kZWYsCiAgICAgICAgICAgIExhbmd1YWdlT2JqZWN0ICAgICAgID0+ICRFc0xhbmd1YWdlT2JqZWN0CiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ0R5bmFtaWNGaWVsZF9UZXh0QXJlYUZpZWxkJywKICAgICAgICAgICAgVGl0bGUgICAgID0+ICdQcm9waWV0YXJpbycsCiAgICAgICAgICAgIERhdGF0eXBlICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnVGV4dEFyZWEnLAogICAgICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICAgICAgTWF4ICAgICAgID0+IDIwMDAwLAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMCwKICAgICAgICAgICAgRGVmYXVsdCAgID0+ICdQcmlvcml0eScsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgQ2hlY2tib3ggRU4nLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgID0+ICREeW5hbWljRmllbGRDb25maWdze0NoZWNrYm94fSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgICAgPT4gMCwKICAgICAgICAgICAgVXNlRGVmYXVsdFZhbHVlICAgICAgPT4gMCwKICAgICAgICAgICAgT3ZlcnJpZGVQb3NzaWJsZU5vbmUgPT4gdW5kZWYsCiAgICAgICAgICAgIExhbmd1YWdlT2JqZWN0ICAgICAgID0+ICRFbkxhbmd1YWdlT2JqZWN0CiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ0R5bmFtaWNGaWVsZF9DaGVja2JveEZpZWxkJywKICAgICAgICAgICAgVGl0bGUgICAgID0+ICdPd25lcicsCiAgICAgICAgICAgIERhdGF0eXBlICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnUGlja2VyJywKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDAsCiAgICAgICAgICAgIE9wdGlvbnMgICA9PiB7CiAgICAgICAgICAgICAgICAwID0+ICdVbmNoZWNrZWQnLAogICAgICAgICAgICAgICAgMSA9PiAnQ2hlY2tlZCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIERlZmF1bHQgPT4gMSwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBDaGVja2JveCBFUycsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7Q2hlY2tib3h9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgICA9PiAwLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBVc2VEZWZhdWx0VmFsdWUgICAgICA9PiAxLAogICAgICAgICAgICBPdmVycmlkZVBvc3NpYmxlTm9uZSA9PiB1bmRlZiwKICAgICAgICAgICAgTGFuZ3VhZ2VPYmplY3QgICAgICAgPT4gJEVzTGFuZ3VhZ2VPYmplY3QKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnRHluYW1pY0ZpZWxkX0NoZWNrYm94RmllbGQnLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJ1Byb3BpZXRhcmlvJywKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgID0+ICdQaWNrZXInLAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMSwKICAgICAgICAgICAgT3B0aW9ucyAgID0+IHsKICAgICAgICAgICAgICAgIDAgPT4gJ1VuY2hlY2tlZCcsCiAgICAgICAgICAgICAgICAxID0+ICdDaGVja2VkJywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgRGVmYXVsdCA9PiAwLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIERyb3Bkb3duIEVOJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tEcm9wZG93bn0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICAgID0+IDIsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIFVzZURlZmF1bHRWYWx1ZSAgICAgID0+IDEsCiAgICAgICAgICAgIE92ZXJyaWRlUG9zc2libGVOb25lID0+IHVuZGVmLAogICAgICAgICAgICBMYW5ndWFnZU9iamVjdCAgICAgICA9PiAkRW5MYW5ndWFnZU9iamVjdAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgTmFtZSAgICAgID0+ICdEeW5hbWljRmllbGRfRHJvcGRvd25GaWVsZCcsCiAgICAgICAgICAgIFRpdGxlICAgICA9PiAnT3duZXInLAogICAgICAgICAgICBEYXRhdHlwZSAgPT4gJ1RleHQnLAogICAgICAgICAgICBWaWV3dHlwZSAgPT4gJ1BpY2tlcicsCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAxLAogICAgICAgICAgICBPcHRpb25zICAgPT4gewogICAgICAgICAgICAgICAgMSA9PiAnUHJpb3JpdHknLAogICAgICAgICAgICAgICAgMiA9PiAnU3RhdGUnLAogICAgICAgICAgICB9LAogICAgICAgICAgICBEZWZhdWx0ID0+IDIsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgRHJvcGRvd24gRVMnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgID0+ICREeW5hbWljRmllbGRDb25maWdze0Ryb3Bkb3dufSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgICAgPT4gMiwKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgVXNlRGVmYXVsdFZhbHVlICAgICAgPT4gMSwKICAgICAgICAgICAgT3ZlcnJpZGVQb3NzaWJsZU5vbmUgPT4gMSwKICAgICAgICAgICAgTGFuZ3VhZ2VPYmplY3QgICAgICAgPT4gJEVzTGFuZ3VhZ2VPYmplY3QKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnRHluYW1pY0ZpZWxkX0Ryb3Bkb3duRmllbGQnLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJ1Byb3BpZXRhcmlvJywKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgID0+ICdQaWNrZXInLAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMSwKICAgICAgICAgICAgT3B0aW9ucyAgID0+IHsKICAgICAgICAgICAgICAgICcnID0+ICctJywKICAgICAgICAgICAgICAgIDEgID0+ICdQcmlvcmlkYWQnLAogICAgICAgICAgICAgICAgMiAgPT4gJ0VzdGFkbycsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIERlZmF1bHQgPT4gMiwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBNdWx0aXNlbGVjdCcsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7TXVsdGlzZWxlY3R9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgICA9PiAyLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBVc2VEZWZhdWx0VmFsdWUgICAgICA9PiAxLAogICAgICAgICAgICBPdmVycmlkZVBvc3NpYmxlTm9uZSA9PiB1bmRlZiwKICAgICAgICAgICAgTGFuZ3VhZ2VPYmplY3QgICAgICAgPT4gJEVuTGFuZ3VhZ2VPYmplY3QKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiAnJywKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgRGF0ZVRpbWUgRU4nLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgID0+ICREeW5hbWljRmllbGRDb25maWdze0RhdGVUaW1lfSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgICAgPT4gJzIwMTMvMDgvMjEgMTM6NDYnLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBVc2VEZWZhdWx0VmFsdWUgICAgICA9PiAxLAogICAgICAgICAgICBPdmVycmlkZVBvc3NpYmxlTm9uZSA9PiB1bmRlZiwKICAgICAgICAgICAgTGFuZ3VhZ2VPYmplY3QgICAgICAgPT4gJEVuTGFuZ3VhZ2VPYmplY3QKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnRHluYW1pY0ZpZWxkX0RhdGVUaW1lRmllbGQnLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJ093bmVyJywKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdEYXRlVGltZScsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnUGlja2VyJywKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDEsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAnMjAxMy8wOC8yMSAxMzo0NicsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgRGF0ZVRpbWUgRVMnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgID0+ICREeW5hbWljRmllbGRDb25maWdze0RhdGVUaW1lfSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgICAgPT4gJzIwMTMvMDgvMjEgMTM6NDYnLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBVc2VEZWZhdWx0VmFsdWUgICAgICA9PiAxLAogICAgICAgICAgICBPdmVycmlkZVBvc3NpYmxlTm9uZSA9PiB1bmRlZiwKICAgICAgICAgICAgTGFuZ3VhZ2VPYmplY3QgICAgICAgPT4gJEVzTGFuZ3VhZ2VPYmplY3QKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnRHluYW1pY0ZpZWxkX0RhdGVUaW1lRmllbGQnLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJ1Byb3BpZXRhcmlvJywKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdEYXRlVGltZScsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnUGlja2VyJywKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDEsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAnMjAxMy8wOC8yMSAxMzo0NicsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgRGF0ZSBFTicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7RGF0ZX0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICAgID0+ICcyMDEzLzA4LzIxIDEzOjQ2JywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgVXNlRGVmYXVsdFZhbHVlICAgICAgPT4gMSwKICAgICAgICAgICAgT3ZlcnJpZGVQb3NzaWJsZU5vbmUgPT4gdW5kZWYsCiAgICAgICAgICAgIExhbmd1YWdlT2JqZWN0ICAgICAgID0+ICRFbkxhbmd1YWdlT2JqZWN0CiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ0R5bmFtaWNGaWVsZF9EYXRlRmllbGQnLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJ093bmVyJywKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdEYXRlJywKICAgICAgICAgICAgVmlld3R5cGUgID0+ICdQaWNrZXInLAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMSwKICAgICAgICAgICAgRGVmYXVsdCAgID0+ICcyMDEzLzA4LzIxIDEzOjQ2JywKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEYXRlIEVTJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tEYXRlfSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgICAgPT4gJzIwMTMvMDgvMjEgMTM6NDYnLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBVc2VEZWZhdWx0VmFsdWUgICAgICA9PiAxLAogICAgICAgICAgICBPdmVycmlkZVBvc3NpYmxlTm9uZSA9PiB1bmRlZiwKICAgICAgICAgICAgTGFuZ3VhZ2VPYmplY3QgICAgICAgPT4gJEVzTGFuZ3VhZ2VPYmplY3QKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnRHluYW1pY0ZpZWxkX0RhdGVGaWVsZCcsCiAgICAgICAgICAgIFRpdGxlICAgICA9PiAnUHJvcGlldGFyaW8nLAogICAgICAgICAgICBEYXRhdHlwZSAgPT4gJ0RhdGUnLAogICAgICAgICAgICBWaWV3dHlwZSAgPT4gJ1BpY2tlcicsCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAxLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJzIwMTMvMDgvMjEgMTM6NDYnLAogICAgICAgIH0sCiAgICB9LAopOwoKIyBleGVjdXRlIHRlc3RzCmZvciBteSAkVGVzdCAoQFRlc3RzKSB7CgogICAgIyBjYWxsIElQaG9uZUZpZWxkUGFyYW1ldGVyQnVpbGQKICAgIG15ICRGaWVsZERlZmluaXRpb24gPSAkREZCYWNrZW5kT2JqZWN0LT5JUGhvbmVGaWVsZFBhcmFtZXRlckJ1aWxkKCAleyAkVGVzdC0+e0NvbmZpZ30gfSApOwoKICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoICRUZXN0LT57RXhwZWN0ZWRSZXN1bHRzfSApICkgewogICAgICAgICRTZWxmLT5Jc0RlZXBseSgKICAgICAgICAgICAgJEZpZWxkRGVmaW5pdGlvbiwKICAgICAgICAgICAgJFRlc3QtPntFeHBlY3RlZFJlc3VsdHN9LAogICAgICAgICAgICAiJFRlc3QtPntOYW1lfSBJUGhvbmVGaWVsZFBhcmFtZXRlckJ1aWxkKCkgOiIKICAgICAgICApOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkRmllbGREZWZpbml0aW9uLAogICAgICAgICAgICB1bmRlZiwKICAgICAgICAgICAgIiRUZXN0LT57TmFtZX0gSVBob25lRmllbGRQYXJhbWV0ZXJCdWlsZCgpIDoiCiAgICAgICAgKTsKCiAgICB9Cn0KCiMgd2UgZG9uJ3QgbmVlZCBhbnkgY2xlYW51cAoxOwo=
IyAtLQojIGlQaG9uZUZpZWxkVmFsdWVHZXQudCAtIGlQaG9uZUZpZWxkVmFsdWVHZXQgYmFja2VuZCB0ZXN0cwojIENvcHlyaWdodCAoQykgMjAwMS0yMDE1IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CnVzZSB2YXJzIChxdygkU2VsZikpOwoKdXNlIEtlcm5lbDo6Q29uZmlnOwp1c2UgS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZDsKdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyOwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CgpteSAkSGVscGVyT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXItPm5ldygKICAgICUkU2VsZiwKICAgIFVuaXRUZXN0T2JqZWN0ID0+ICRTZWxmLAopOwoKbXkgJENvbmZpZ09iamVjdCA9IEtlcm5lbDo6Q29uZmlnLT5uZXcoKTsKCiRDb25maWdPYmplY3QtPlNldCgKICAgIEtleSAgID0+ICdUaW1lWm9uZVVzZXInLAogICAgVmFsdWUgPT4gMQopOwoKbXkgJERGQmFja2VuZE9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQtPm5ldygKICAgICV7JFNlbGZ9LAogICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QKKTsKCiMgdGhlcmVzIGlzIG5vdCByZWFsbHkgbmVlZGVkIHRvIGFkZCB0aGUgZHluYW1pYyBmaWVsZHMgZm9yIHRoaXMgdGVzdCwgd2UgY2FuIGRlZmluZSBhIHN0YXRpYwojIHNldCBvZiBjb25maWd1cmF0aW9ucwpteSAlRHluYW1pY0ZpZWxkQ29uZmlncyA9ICgKICAgIFRleHQgPT4gewogICAgICAgIElEICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIEludGVybmFsRmllbGQgPT4gMCwKICAgICAgICBOYW1lICAgICAgICAgID0+ICdUZXh0RmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ093bmVyJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdUZXh0JywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgPT4gJycsCiAgICAgICAgICAgIExpbmsgICAgICAgICA9PiAnJywKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCiAgICBUZXh0QXJlYSA9PiB7CiAgICAgICAgSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAwLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ1RleHRBcmVhRmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ093bmVyJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdUZXh0QXJlYScsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlID0+ICcnLAogICAgICAgICAgICBSb3dzICAgICAgICAgPT4gJycsCiAgICAgICAgICAgIENvbHMgICAgICAgICA9PiAnJywKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCiAgICBDaGVja2JveCA9PiB7CiAgICAgICAgSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAwLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ0NoZWNrYm94RmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ093bmVyJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdDaGVja2JveCcsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlID0+ICcnLAogICAgICAgIH0sCiAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgICAgIENyZWF0ZVRpbWUgPT4gJzIwMTEtMDItMDggMTU6MDg6MDAnLAogICAgICAgIENoYW5nZVRpbWUgPT4gJzIwMTEtMDYtMTEgMTc6MjI6MDAnLAogICAgfSwKICAgIERyb3Bkb3duID0+IHsKICAgICAgICBJRCAgICAgICAgICAgID0+IDEyMywKICAgICAgICBJbnRlcm5hbEZpZWxkID0+IDAsCiAgICAgICAgTmFtZSAgICAgICAgICA9PiAnRHJvcGRvd25GaWVsZCcsCiAgICAgICAgTGFiZWwgICAgICAgICA9PiAnT3duZXInLAogICAgICAgIEZpZWxkT3JkZXIgICAgPT4gMTIzLAogICAgICAgIEZpZWxkVHlwZSAgICAgPT4gJ0Ryb3Bkb3duJywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgICAgICAgPT4gJycsCiAgICAgICAgICAgIExpbmsgICAgICAgICAgICAgICA9PiAnJywKICAgICAgICAgICAgUG9zc2libGVOb25lICAgICAgID0+ICcnLAogICAgICAgICAgICBUcmFuc2xhdGFibGVWYWx1ZXMgPT4gMSwKICAgICAgICAgICAgUG9zc2libGVWYWx1ZXMgICAgID0+IHsKICAgICAgICAgICAgICAgIDEgPT4gJ1ByaW9yaXR5JywKICAgICAgICAgICAgICAgIDIgPT4gJ1N0YXRlJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCiAgICBNdWx0aXNlbGVjdCA9PiB7CiAgICAgICAgSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAwLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ011bHRpc2VsZWN0RmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ093bmVyJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdNdWx0aXNlbGVjdCcsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlICAgICAgID0+ICcnLAogICAgICAgICAgICBQb3NzaWJsZU5vbmUgICAgICAgPT4gJycsCiAgICAgICAgICAgIFRyYW5zbGF0YWJsZVZhbHVlcyA9PiAxLAogICAgICAgICAgICBQb3NzaWJsZVZhbHVlcyAgICAgPT4gewogICAgICAgICAgICAgICAgMSA9PiAnUHJpb3JpdHknLAogICAgICAgICAgICAgICAgMiA9PiAnU3RhdGUnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgICAgIENyZWF0ZVRpbWUgPT4gJzIwMTEtMDItMDggMTU6MDg6MDAnLAogICAgICAgIENoYW5nZVRpbWUgPT4gJzIwMTEtMDYtMTEgMTc6MjI6MDAnLAogICAgfSwKICAgIERhdGVUaW1lID0+IHsKICAgICAgICBJRCAgICAgICAgICAgID0+IDEyMywKICAgICAgICBJbnRlcm5hbEZpZWxkID0+IDAsCiAgICAgICAgTmFtZSAgICAgICAgICA9PiAnRGF0ZVRpbWVGaWVsZCcsCiAgICAgICAgTGFiZWwgICAgICAgICA9PiAnT3duZXInLAogICAgICAgIEZpZWxkT3JkZXIgICAgPT4gMTIzLAogICAgICAgIEZpZWxkVHlwZSAgICAgPT4gJ0RhdGVUaW1lJywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgID0+IHVuZGVmLAogICAgICAgICAgICBMaW5rICAgICAgICAgID0+ICcnLAogICAgICAgICAgICBZZWFyc1BlcmlvZCAgID0+ICcnLAogICAgICAgICAgICBZZWFyc0luRnV0dXJlID0+ICcnLAogICAgICAgICAgICBZZWFyc0luUGFzdCAgID0+ICcnLAogICAgICAgIH0sCiAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgICAgIENyZWF0ZVRpbWUgPT4gJzIwMTEtMDItMDggMTU6MDg6MDAnLAogICAgICAgIENoYW5nZVRpbWUgPT4gJzIwMTEtMDYtMTEgMTc6MjI6MDAnLAogICAgfSwKICAgIERhdGUgPT4gewogICAgICAgIElEICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIEludGVybmFsRmllbGQgPT4gMCwKICAgICAgICBOYW1lICAgICAgICAgID0+ICdEYXRlRmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ093bmVyJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdEYXRlJywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgID0+ICcnLAogICAgICAgICAgICBMaW5rICAgICAgICAgID0+ICcnLAogICAgICAgICAgICBZZWFyc1BlcmlvZCAgID0+ICcnLAogICAgICAgICAgICBZZWFyc0luRnV0dXJlID0+ICcnLAogICAgICAgICAgICBZZWFyc0luUGFzdCAgID0+ICcnLAogICAgICAgIH0sCiAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgICAgIENyZWF0ZVRpbWUgPT4gJzIwMTEtMDItMDggMTU6MDg6MDAnLAogICAgICAgIENoYW5nZVRpbWUgPT4gJzIwMTEtMDYtMTEgMTc6MjI6MDAnLAogICAgfSwKKTsKCiMgZGVmaW5lIHRlc3RzCm15IEBUZXN0cyA9ICgKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBUZXh0JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgICAgID0+ICREeW5hbWljRmllbGRDb25maWdze1RleHR9LAogICAgICAgICAgICBEeW5hbWljRmllbGRfVGV4dEZpZWxkID0+ICdQcmlvcml0eScsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdCA9PiAnUHJpb3JpdHknLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBUZXh0IEFyZWEnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgICAgICAgID0+ICREeW5hbWljRmllbGRDb25maWdze1RleHRBcmVhfSwKICAgICAgICAgICAgRHluYW1pY0ZpZWxkX1RleHRBcmVhRmllbGQgPT4gJ1ByaW9yaXR5JywKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0ID0+ICdQcmlvcml0eScsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIENoZWNrYm94JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgICAgICAgICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tDaGVja2JveH0sCiAgICAgICAgICAgIER5bmFtaWNGaWVsZF9DaGVja2JveEZpZWxkID0+IDEsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdCA9PiAxLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEcm9wZG93bicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnICAgICAgICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7RHJvcGRvd259LAogICAgICAgICAgICBEeW5hbWljRmllbGRfRHJvcGRvd25GaWVsZCA9PiAyLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHQgPT4gMiwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgTXVsdGlzZWxlY3QnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgICAgICAgICAgID0+ICREeW5hbWljRmllbGRDb25maWdze011bHRpc2VsZWN0fSwKICAgICAgICAgICAgRHluYW1pY0ZpZWxkX011bHRpc2VsZWN0RmllbGQgPT4gMiwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0ID0+ICcnLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEYXRlVGltZSBOb3JtYWwnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgICAgICAgID0+ICREeW5hbWljRmllbGRDb25maWdze0RhdGVUaW1lfSwKICAgICAgICAgICAgRHluYW1pY0ZpZWxkX0RhdGVUaW1lRmllbGQgPT4gJzIwMTMtMDgtMjEgMTM6NDY6MDAnLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHQgPT4gJzIwMTMtMDgtMjEgMTM6NDY6MDAnLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEYXRlVGltZSBUaW1lWm9uZSAtNicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnICAgICAgICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7RGF0ZVRpbWV9LAogICAgICAgICAgICBEeW5hbWljRmllbGRfRGF0ZVRpbWVGaWVsZCA9PiAnMjAxMy0wOC0yMSAxMzo0NjowMCcsCiAgICAgICAgICAgIFVzZXJUaW1lWm9uZSAgICAgICAgICAgICAgID0+IC02LAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHQgPT4gJzIwMTMtMDgtMjEgMTk6NDY6MDAnLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEYXRlVGltZSBUaW1lWm9uZSArMTEnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgICAgICAgID0+ICREeW5hbWljRmllbGRDb25maWdze0RhdGVUaW1lfSwKICAgICAgICAgICAgRHluYW1pY0ZpZWxkX0RhdGVUaW1lRmllbGQgPT4gJzIwMTMtMDgtMjEgOTo0NjowMCcsCiAgICAgICAgICAgIFVzZXJUaW1lWm9uZSAgICAgICAgICAgICAgID0+IDExLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHQgPT4gJzIwMTMtMDgtMjAgMjI6NDY6MDAnLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEYXRlIE5vcm1hbCcsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnICAgICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tEYXRlfSwKICAgICAgICAgICAgRHluYW1pY0ZpZWxkX0RhdGVGaWVsZCA9PiAnMjAxMy0wOC0yMSAxMzo0NicsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdCA9PiAnMjAxMy0wOC0yMSAwMDowMDowMCcsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIERhdGUgVGltZVpvbmUgLTYnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7RGF0ZX0sCiAgICAgICAgICAgIER5bmFtaWNGaWVsZF9EYXRlRmllbGQgPT4gJzIwMTMtMDgtMjEgMTM6NDYnLAogICAgICAgICAgICBVc2VyVGltZVpvbmUgICAgICAgICAgID0+IC02LAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHQgPT4gJzIwMTMtMDgtMjEgMDA6MDA6MDAnLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEYXRlIFRpbWVab25lICsxMScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnICAgICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tEYXRlfSwKICAgICAgICAgICAgRHluYW1pY0ZpZWxkX0RhdGVGaWVsZCA9PiAnMjAxMy0wOC0yMSAxMzo0NicsCiAgICAgICAgICAgIFVzZXJUaW1lWm9uZSAgICAgICAgICAgPT4gMTEsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdCA9PiAnMjAxMy0wOC0yMSAwMDowMDowMCcsCiAgICB9LAopOwoKIyBleGVjdXRlIHRlc3RzCmZvciBteSAkVGVzdCAoQFRlc3RzKSB7CgogICAgIyBjYWxsIElQaG9uZUZpZWxkVmFsdWVHZXQKICAgIG15ICRWYWx1ZSA9ICRERkJhY2tlbmRPYmplY3QtPklQaG9uZUZpZWxkVmFsdWVHZXQoICV7ICRUZXN0LT57Q29uZmlnfSB9ICk7CgogICAgaWYgKCAkVGVzdC0+e0V4cGVjdGVkUmVzdWx0fSApIHsKICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICRWYWx1ZSwKICAgICAgICAgICAgJFRlc3QtPntFeHBlY3RlZFJlc3VsdH0sCiAgICAgICAgICAgICIkVGVzdC0+e05hbWV9IElQaG9uZUZpZWxkVmFsdWVHZXQoKSA6IgogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICRWYWx1ZSwKICAgICAgICAgICAgdW5kZWYsCiAgICAgICAgICAgICIkVGVzdC0+e05hbWV9IElQaG9uZUZpZWxkVmFsdWVHZXQoKSA6IgogICAgICAgICk7CiAgICB9Cn0KCiMgd2UgZG9uJ3QgbmVlZCBhbnkgY2xlYW51cAoxOwo=
IyAtLQojIGlQaG9uZUZpZWxkVmFsdWVWYWxpZGF0ZS50IC0gaVBob25lRmllbGRWYWx1ZVZhbGlkYXRlIGJhY2tlbmQgdGVzdHMKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNSBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4Owp1c2UgdmFycyAocXcoJFNlbGYpKTsKCnVzZSBLZXJuZWw6OkNvbmZpZzsKdXNlIEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQ7CnVzZSBLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcjsKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKbXkgJEhlbHBlck9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyLT5uZXcoCiAgICAlJFNlbGYsCiAgICBVbml0VGVzdE9iamVjdCA9PiAkU2VsZiwKKTsKCm15ICRERkJhY2tlbmRPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kLT5uZXcoICV7JFNlbGZ9ICk7CgojIHRoZXJlcyBpcyBub3QgcmVhbGx5IG5lZWRlZCB0byBhZGQgdGhlIGR5bmFtaWMgZmllbGRzIGZvciB0aGlzIHRlc3QsIHdlIGNhbiBkZWZpbmUgYSBzdGF0aWMKIyBzZXQgb2YgY29uZmlndXJhdGlvbnMKbXkgJUR5bmFtaWNGaWVsZENvbmZpZ3MgPSAoCiAgICBUZXh0ID0+IHsKICAgICAgICBJRCAgICAgICAgICAgID0+IDEyMywKICAgICAgICBJbnRlcm5hbEZpZWxkID0+IDAsCiAgICAgICAgTmFtZSAgICAgICAgICA9PiAnVGV4dEZpZWxkJywKICAgICAgICBMYWJlbCAgICAgICAgID0+ICdPd25lcicsCiAgICAgICAgRmllbGRPcmRlciAgICA9PiAxMjMsCiAgICAgICAgRmllbGRUeXBlICAgICA9PiAnVGV4dCcsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlID0+ICcnLAogICAgICAgICAgICBMaW5rICAgICAgICAgPT4gJycsCiAgICAgICAgfSwKICAgICAgICBWYWxpZElEICAgID0+IDEsCiAgICAgICAgQ3JlYXRlVGltZSA9PiAnMjAxMS0wMi0wOCAxNTowODowMCcsCiAgICAgICAgQ2hhbmdlVGltZSA9PiAnMjAxMS0wNi0xMSAxNzoyMjowMCcsCiAgICB9LAogICAgVGV4dEFyZWEgPT4gewogICAgICAgIElEICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIEludGVybmFsRmllbGQgPT4gMCwKICAgICAgICBOYW1lICAgICAgICAgID0+ICdUZXh0QXJlYUZpZWxkJywKICAgICAgICBMYWJlbCAgICAgICAgID0+ICdPd25lcicsCiAgICAgICAgRmllbGRPcmRlciAgICA9PiAxMjMsCiAgICAgICAgRmllbGRUeXBlICAgICA9PiAnVGV4dEFyZWEnLAogICAgICAgIE9iamVjdFR5cGUgICAgPT4gJ1RpY2tldCcsCiAgICAgICAgQ29uZmlnICAgICAgICA9PiB7CiAgICAgICAgICAgIERlZmF1bHRWYWx1ZSA9PiAnJywKICAgICAgICAgICAgUm93cyAgICAgICAgID0+ICcnLAogICAgICAgICAgICBDb2xzICAgICAgICAgPT4gJycsCiAgICAgICAgfSwKICAgICAgICBWYWxpZElEICAgID0+IDEsCiAgICAgICAgQ3JlYXRlVGltZSA9PiAnMjAxMS0wMi0wOCAxNTowODowMCcsCiAgICAgICAgQ2hhbmdlVGltZSA9PiAnMjAxMS0wNi0xMSAxNzoyMjowMCcsCiAgICB9LAogICAgQ2hlY2tib3ggPT4gewogICAgICAgIElEICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIEludGVybmFsRmllbGQgPT4gMCwKICAgICAgICBOYW1lICAgICAgICAgID0+ICdDaGVja2JveEZpZWxkJywKICAgICAgICBMYWJlbCAgICAgICAgID0+ICdPd25lcicsCiAgICAgICAgRmllbGRPcmRlciAgICA9PiAxMjMsCiAgICAgICAgRmllbGRUeXBlICAgICA9PiAnQ2hlY2tib3gnLAogICAgICAgIE9iamVjdFR5cGUgICAgPT4gJ1RpY2tldCcsCiAgICAgICAgQ29uZmlnICAgICAgICA9PiB7CiAgICAgICAgICAgIERlZmF1bHRWYWx1ZSA9PiAnJywKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCiAgICBEcm9wZG93biA9PiB7CiAgICAgICAgSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAwLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ0Ryb3Bkb3duRmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ093bmVyJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdEcm9wZG93bicsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlICAgICAgID0+ICcnLAogICAgICAgICAgICBMaW5rICAgICAgICAgICAgICAgPT4gJycsCiAgICAgICAgICAgIFBvc3NpYmxlTm9uZSAgICAgICA9PiAnJywKICAgICAgICAgICAgVHJhbnNsYXRhYmxlVmFsdWVzID0+IDEsCiAgICAgICAgICAgIFBvc3NpYmxlVmFsdWVzICAgICA9PiB7CiAgICAgICAgICAgICAgICAxID0+ICdQcmlvcml0eScsCiAgICAgICAgICAgICAgICAyID0+ICdTdGF0ZScsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBWYWxpZElEICAgID0+IDEsCiAgICAgICAgQ3JlYXRlVGltZSA9PiAnMjAxMS0wMi0wOCAxNTowODowMCcsCiAgICAgICAgQ2hhbmdlVGltZSA9PiAnMjAxMS0wNi0xMSAxNzoyMjowMCcsCiAgICB9LAogICAgTXVsdGlzZWxlY3QgPT4gewogICAgICAgIElEICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIEludGVybmFsRmllbGQgPT4gMCwKICAgICAgICBOYW1lICAgICAgICAgID0+ICdNdWx0aXNlbGVjdEZpZWxkJywKICAgICAgICBMYWJlbCAgICAgICAgID0+ICdPd25lcicsCiAgICAgICAgRmllbGRPcmRlciAgICA9PiAxMjMsCiAgICAgICAgRmllbGRUeXBlICAgICA9PiAnTXVsdGlzZWxlY3QnLAogICAgICAgIE9iamVjdFR5cGUgICAgPT4gJ1RpY2tldCcsCiAgICAgICAgQ29uZmlnICAgICAgICA9PiB7CiAgICAgICAgICAgIERlZmF1bHRWYWx1ZSAgICAgICA9PiAnJywKICAgICAgICAgICAgUG9zc2libGVOb25lICAgICAgID0+ICcnLAogICAgICAgICAgICBUcmFuc2xhdGFibGVWYWx1ZXMgPT4gMSwKICAgICAgICAgICAgUG9zc2libGVWYWx1ZXMgICAgID0+IHsKICAgICAgICAgICAgICAgIDEgPT4gJ1ByaW9yaXR5JywKICAgICAgICAgICAgICAgIDIgPT4gJ1N0YXRlJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCiAgICBEYXRlVGltZSA9PiB7CiAgICAgICAgSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAwLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ0RhdGVUaW1lRmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ093bmVyJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdEYXRlVGltZScsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlICA9PiB1bmRlZiwKICAgICAgICAgICAgTGluayAgICAgICAgICA9PiAnJywKICAgICAgICAgICAgWWVhcnNQZXJpb2QgICA9PiAnJywKICAgICAgICAgICAgWWVhcnNJbkZ1dHVyZSA9PiAnJywKICAgICAgICAgICAgWWVhcnNJblBhc3QgICA9PiAnJywKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCiAgICBEYXRlID0+IHsKICAgICAgICBJRCAgICAgICAgICAgID0+IDEyMywKICAgICAgICBJbnRlcm5hbEZpZWxkID0+IDAsCiAgICAgICAgTmFtZSAgICAgICAgICA9PiAnRGF0ZUZpZWxkJywKICAgICAgICBMYWJlbCAgICAgICAgID0+ICdPd25lcicsCiAgICAgICAgRmllbGRPcmRlciAgICA9PiAxMjMsCiAgICAgICAgRmllbGRUeXBlICAgICA9PiAnRGF0ZScsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlICA9PiAnJywKICAgICAgICAgICAgTGluayAgICAgICAgICA9PiAnJywKICAgICAgICAgICAgWWVhcnNQZXJpb2QgICA9PiAnJywKICAgICAgICAgICAgWWVhcnNJbkZ1dHVyZSA9PiAnJywKICAgICAgICAgICAgWWVhcnNJblBhc3QgICA9PiAnJywKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCik7CgojIGRlZmluZSB0ZXN0cwpteSBAVGVzdHMgPSAoCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgVGV4dCcsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze1RleHR9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJ1ByaW9yaXR5JywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+IDAsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gdW5kZWYsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBUZXh0IEVtcHR5JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7VGV4dH0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAnJywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+IDAsCgogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgU2VydmVyRXJyb3IgID0+IHVuZGVmLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gdW5kZWYsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgVGV4dCBFbXB0eSBNYW5kYXRvcnknLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tUZXh0fSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICcnLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIFNlcnZlckVycm9yICA9PiAxLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gdW5kZWYsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgVGV4dEFyZWEnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tUZXh0QXJlYX0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAnUHJpb3JpdHknLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gMCwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIFNlcnZlckVycm9yICA9PiB1bmRlZiwKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+IHVuZGVmLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIFRleHRBcmVhIEVtcHR5JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7VGV4dEFyZWF9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJycsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAwLAoKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIFNlcnZlckVycm9yICA9PiB1bmRlZiwKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+IHVuZGVmLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIFRleHRBcmVhIEVtcHR5IE1hbmRhdG9yeScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze1RleHRBcmVhfSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICcnLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIFNlcnZlckVycm9yICA9PiAxLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gdW5kZWYsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgQ2hlY2tib3gnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tDaGVja2JveH0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gMCwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIFNlcnZlckVycm9yICA9PiB1bmRlZiwKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+IHVuZGVmLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIENoZWNrYm94IEVtcHR5JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7Q2hlY2tib3h9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gMCwKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+IDAsCgogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgU2VydmVyRXJyb3IgID0+IHVuZGVmLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gdW5kZWYsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgQ2hlY2tib3ggRW1wdHkgTWFuZGF0b3J5JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7Q2hlY2tib3h9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJycsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAxLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgU2VydmVyRXJyb3IgID0+IDEsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEcm9wZG93bicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze0Ryb3Bkb3dufSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAwLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgU2VydmVyRXJyb3IgID0+IHVuZGVmLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gdW5kZWYsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgRHJvcGRvd24gRW1wdHknLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tEcm9wZG93bn0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAwLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gMCwKCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gdW5kZWYsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEcm9wZG93biBFbXB0eSBNYW5kYXRvcnknLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tEcm9wZG93bn0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAnJywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+IDEsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gMSwKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+IHVuZGVmLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIERyb3Bkb3duIFdyb25nIFZhbHVlJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7RHJvcGRvd259LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gMywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+IDEsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gMSwKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICdUaGUgZmllbGQgY29udGVudCBpcyBpbnZhbGlkJywKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBNdWx0aXNlbGVjdCcsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze011bHRpc2VsZWN0fSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAwLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+ICcnLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBNdWx0aXNlbGVjdCBFbXB0eScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze011bHRpc2VsZWN0fSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+IDAsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAwLAoKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiAnJywKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgTXVsdGlzZWxlY3QgRW1wdHkgTWFuZGF0b3J5JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7TXVsdGlzZWxlY3R9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJycsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAxLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+ICcnLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEYXRlVGltZScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze0RhdGVUaW1lfSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICcyMDEzLTA4LTIxIDEzOjQ2OjAwJywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+IDAsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gdW5kZWYsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEYXRlVGltZSBlbXB0eScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze0RhdGVUaW1lfSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICcnLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gMCwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIFNlcnZlckVycm9yICA9PiB1bmRlZiwKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+IHVuZGVmLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIERhdGVUaW1lIEVtcHR5IE1hbmRhdG9yeScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze0RhdGVUaW1lfSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICcnLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIFNlcnZlckVycm9yICA9PiAxLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gdW5kZWYsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgRGF0ZVRpbWUgV3JvbmcgRm9ybWF0JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7RGF0ZVRpbWV9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJzIwMTMvMDgvMjEgMTM6NDY6MDAnLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIFNlcnZlckVycm9yICA9PiAxLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gdW5kZWYsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgRGF0ZVRpbWUgV3JvbmcgRGF0ZScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze0RhdGVUaW1lfSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICcyMDEzLTMxLTIxIDEzOjQ2OjAwJywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+IDEsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gMSwKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+IHVuZGVmLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIERhdGUnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tEYXRlfSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICcyMDEzLTA4LTIxIDEzOjQ2OjAwJywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+IDAsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gdW5kZWYsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEYXRlIGVtcHR5JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7RGF0ZX0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAnJywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+IDAsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gdW5kZWYsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEYXRlIEVtcHR5IE1hbmRhdG9yeScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze0RhdGV9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJycsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAxLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgU2VydmVyRXJyb3IgID0+IDEsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEYXRlIFdyb25nIEZvcm1hdCcsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze0RhdGV9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJzIwMTMvMDgvMjEgMTM6NDY6MDAnLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIFNlcnZlckVycm9yICA9PiAxLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gdW5kZWYsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgRGF0ZSBXcm9uZyBEYXRlJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7RGF0ZX0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAnMjAxMy0zMS0yMSAxMzo0NjowMCcsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAxLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgU2VydmVyRXJyb3IgID0+IDEsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKCik7CgojIGV4ZWN1dGUgdGVzdHMKZm9yIG15ICRUZXN0IChAVGVzdHMpIHsKCiAgICAjIGNhbGwgSVBob25lRmllbGRWYWx1ZVZhbGlkYXRlCiAgICBteSAkUmVzdWx0ID0gJERGQmFja2VuZE9iamVjdC0+SVBob25lRmllbGRWYWx1ZVZhbGlkYXRlKCAleyAkVGVzdC0+e0NvbmZpZ30gfSApOwoKICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoICRUZXN0LT57RXhwZWN0ZWRSZXN1bHRzfSApICkgewogICAgICAgICRTZWxmLT5Jc0RlZXBseSgKICAgICAgICAgICAgJFJlc3VsdCwKICAgICAgICAgICAgJFRlc3QtPntFeHBlY3RlZFJlc3VsdHN9LAogICAgICAgICAgICAiJFRlc3QtPntOYW1lfSBJUGhvbmVGaWVsZFZhbHVlVmFsaWRhdGUoKSA6IgogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICRSZXN1bHQsCiAgICAgICAgICAgIHVuZGVmLAogICAgICAgICAgICAiJFRlc3QtPntOYW1lfSBJUGhvbmVGaWVsZFZhbHVlVmFsaWRhdGUoKSA6IgogICAgICAgICk7CiAgICB9Cn0KCiMgd2UgZG9uJ3QgbmVlZCBhbnkgY2xlYW51cAoxOwo=
IyAtLQojIGlQaG9uZUhhbmRsZS5wbSAtIGNvZGUgdG8gZXhjZWN1dGUgZHVyaW5nIHBhY2thZ2UgaW5zdGFsbGF0aW9uCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTUgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSB2YXI6OnBhY2thZ2VzZXR1cDo6aVBob25lSGFuZGxlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6Q29uZmlnOwp1c2UgS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZzsKdXNlIEtlcm5lbDo6U3lzdGVtOjpQYWNrYWdlOwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7Cgo9aGVhZDEgTkFNRQoKaVBob25lSGFuZGxlLnBtIC0gY29kZSB0byBleGNlY3V0ZSBkdXJpbmcgcGFja2FnZSBpbnN0YWxsYXRpb24KCj1oZWFkMSBTWU5PUFNJUwoKQWxsIGZ1bmN0aW9ucwoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIG5ldygpCgpjcmVhdGUgYW4gb2JqZWN0CgogICAgdXNlIEtlcm5lbDo6Q29uZmlnOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpMb2c7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok1haW47CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OlRpbWU7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkRCOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpYTUw7CiAgICB1c2UgdmFyOjpwYWNrYWdlc2V0dXA6OmlQaG9uZTsKCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gS2VybmVsOjpDb25maWctPm5ldygpOwogICAgbXkgJExvZ09iamVjdCAgICA9IEtlcm5lbDo6U3lzdGVtOjpMb2ctPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICk7CiAgICBteSAkTWFpbk9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpNYWluLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICApOwogICAgbXkgJFRpbWVPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6VGltZS0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgKTsKICAgIG15ICREQk9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpEQi0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgICAgIE1haW5PYmplY3QgICA9PiAkTWFpbk9iamVjdCwKICAgICk7CiAgICBteSAkWE1MT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OlhNTC0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgICAgIERCT2JqZWN0ICAgICA9PiAkREJPYmplY3QsCiAgICAgICAgTWFpbk9iamVjdCAgID0+ICRNYWluT2JqZWN0LAogICAgKTsKICAgIG15ICRDb2RlT2JqZWN0ID0gdmFyOjpwYWNrYWdlc2V0dXA6OmlQaG9uZS0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgICAgIE1haW5PYmplY3QgICA9PiAkTWFpbk9iamVjdCwKICAgICAgICBUaW1lT2JqZWN0ICAgPT4gJFRpbWVPYmplY3QsCiAgICAgICAgREJPYmplY3QgICAgID0+ICREQk9iamVjdCwKICAgICAgICBYTUxPYmplY3QgICAgPT4gJFhNTE9iamVjdCwKICAgICk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgY2hlY2sgbmVlZGVkIG9iamVjdHMKICAgIGZvciBteSAkT2JqZWN0ICgKICAgICAgICBxdyhDb25maWdPYmplY3QgTG9nT2JqZWN0IE1haW5PYmplY3QgVGltZU9iamVjdCBEQk9iamVjdCBYTUxPYmplY3QgRW5jb2RlT2JqZWN0KQogICAgICAgICkKICAgIHsKICAgICAgICAkU2VsZi0+eyRPYmplY3R9ID0gJFBhcmFteyRPYmplY3R9IHx8IGRpZSAiR290IG5vICRPYmplY3QhIjsKICAgIH0KCiAgICAjIGNyZWF0ZSBuZWVkZWQgc3lzY29uZmlnIG9iamVjdAogICAgJFNlbGYtPntTeXNDb25maWdPYmplY3R9ID0gS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZy0+bmV3KCAleyRTZWxmfSApOwoKICAgICMgcmVidWlsZCBaWloqIGZpbGVzCiAgICAkU2VsZi0+e1N5c0NvbmZpZ09iamVjdH0tPldyaXRlRGVmYXVsdCgpOwoKICAgICMgZGVmaW5lIHRoZSBaWlogZmlsZXMKICAgIG15IEBaWlpGaWxlcyA9ICgKICAgICAgICAnWlpaQUF1dG8ucG0nLAogICAgICAgICdaWlpBdXRvLnBtJywKICAgICk7CgogICAgIyByZWxvYWQgdGhlIFpaWiBmaWxlcyAobW9kX3Blcmwgd29ya2Fyb3VuZCkKICAgIGZvciBteSAkWlpaRmlsZSAoQFpaWkZpbGVzKSB7CgogICAgICAgIFBSRUZJWDoKICAgICAgICBmb3IgbXkgJFByZWZpeCAoQElOQykgewogICAgICAgICAgICBteSAkRmlsZSA9ICRQcmVmaXggLiAnL0tlcm5lbC9Db25maWcvRmlsZXMvJyAuICRaWlpGaWxlOwogICAgICAgICAgICBuZXh0IFBSRUZJWCBpZiAhLWYgJEZpbGU7CiAgICAgICAgICAgIGRvICRGaWxlOwogICAgICAgICAgICBsYXN0IFBSRUZJWDsKICAgICAgICB9CiAgICB9CgogICAgIyBjcmVhdGUgbmVlZGVkIG9iamVjdHMKICAgICRTZWxmLT57Q29uZmlnT2JqZWN0fSAgPSBLZXJuZWw6OkNvbmZpZy0+bmV3KCk7CiAgICAkU2VsZi0+e1BhY2thZ2VPYmplY3R9ID0gS2VybmVsOjpTeXN0ZW06OlBhY2thZ2UtPm5ldyglUGFyYW0pOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWl0ZW0gQ29kZUluc3RhbGwoKQoKcnVuIHRoZSBjb2RlIGluc3RhbGwgcGFydAoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+Q29kZUluc3RhbGwoKTsKCj1jdXQKCnN1YiBDb2RlSW5zdGFsbCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICRTZWxmLT5fVXBkYXRlUmVsZWFzZUZpbGUoKTsKCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gQ29kZVJlaW5zdGFsbCgpCgpydW4gdGhlIGNvZGUgcmVpbnN0YWxsIHBhcnQKCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPkNvZGVSZWluc3RhbGwoKTsKCj1jdXQKCnN1YiBDb2RlUmVpbnN0YWxsIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgJFNlbGYtPl9VcGRhdGVSZWxlYXNlRmlsZSgpOwogICAgJFNlbGYtPl9NaWdyYXRlQ29uZmlndXJhdGlvbnMoKTsKCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gQ29kZVVwZ3JhZGUoKQoKcnVuIHRoZSBjb2RlIHVwZ3JhZGUgcGFydAoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+Q29kZVVwZ3JhZGUoKTsKCj1jdXQKCnN1YiBDb2RlVXBncmFkZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICRTZWxmLT5fVXBkYXRlUmVsZWFzZUZpbGUoKTsKICAgICRTZWxmLT5fTWlncmF0ZUNvbmZpZ3VyYXRpb25zKCk7CgogICAgcmV0dXJuIDE7Cn0KCj1pdGVtIENvZGVVbmluc3RhbGwoKQoKcnVuIHRoZSBjb2RlIHVuaW5zdGFsbCBwYXJ0CgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5Db2RlVW5pbnN0YWxsKCk7Cgo9Y3V0CgpzdWIgQ29kZVVuaW5zdGFsbCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICRTZWxmLT5fUmVtb3ZlUmVsZWFzZUZpbGUoKTsKCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gX1VwZGF0ZVJlbGVhc2VGaWxlKCkKCmNyZWF0ZXMgb3IgdXBkYXRlcyBSRUxFQVNFLmlQaG9uZUhhbmRsZSBmaWxlCgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5fVXBkYXRlUmVsZWFzZUZpbGUoKTsKCj1jdXQKCnN1YiBfVXBkYXRlUmVsZWFzZUZpbGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkUGFja2FnZVZlcnNpb247CgogICAgIyBnZXQgdGhlIGluc3RhbGxlZCB2ZXJzaW9uIG9mIGlQaG9uZUhhbmRsZSBwYWNrYWdlCiAgICBQQUNLQUdFOgogICAgZm9yIG15ICRQYWNrYWdlICggJFNlbGYtPntQYWNrYWdlT2JqZWN0fS0+UmVwb3NpdG9yeUxpc3QoKSApIHsKICAgICAgICBpZiAoICRQYWNrYWdlLT57TmFtZX0tPntDb250ZW50fSBlcSAnaVBob25lSGFuZGxlJyApIHsKICAgICAgICAgICAgJFBhY2thZ2VWZXJzaW9uID0gJFBhY2thZ2UtPntWZXJzaW9ufS0+e0NvbnRlbnR9OwogICAgICAgICAgICBsYXN0IFBBQ0tBR0U7CiAgICAgICAgfQogICAgfQoKICAgICMgaWYgbm8gaVBob25lSGFuZGxlIHBhY2thZ2UgZm91bmQgYW5kIHRoZSBjb2RlIGluc3RhbGwgaXMgZXhlY3V0ZWQgdGhpcyBtdXN0IGJlIGEKICAgICMgZGV2ZWxvcG1lbnQgc2NlbmFyaW8KICAgIGlmICggISRQYWNrYWdlVmVyc2lvbiApIHsKICAgICAgICAkUGFja2FnZVZlcnNpb24gPSAnZ2l0JzsKICAgIH0KCiAgICAjIGdldCBob21lIHBhdGgKICAgIG15ICRIb21lID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ0hvbWUnKTsKCiAgICAjIGNyZWF0ZSBvciBvdmVyd3JpdGUgUkVMRUFTRS5pUGhvbmVIYW5kbGUgZmlsZQogICAgbXkgJENvbnRlbnQgICAgICA9ICJQUk9EVUNUID0gaVBob25lSGFuZGxlXG5WRVJTSU9OID0gJFBhY2thZ2VWZXJzaW9uIjsKICAgIG15ICRGaWxlTG9jYXRpb24gPSAkU2VsZi0+e01haW5PYmplY3R9LT5GaWxlV3JpdGUoCiAgICAgICAgTG9jYXRpb24gPT4gIiRIb21lL3Zhci9SRUxFQVNFLmlQaG9uZUhhbmRsZSIsCiAgICAgICAgQ29udGVudCAgPT4gXCRDb250ZW50LAogICAgKTsKCiAgICBpZiAoICEkRmlsZUxvY2F0aW9uICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiRVJST1I6IENhbid0IHdyaXRlICRIb21lL3Zhci9SRUxFQVNFLmlQaG9uZUhhbmRsZSEuXG4iLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuIC0xOwogICAgfQoKICAgICMgY2hlY2sgUkVMRUFTRSBmaWxlCiAgICBpZiAoICEtZSAiJEhvbWUvdmFyL1JFTEVBU0UuaVBob25lSGFuZGxlIiApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkZpbGUgJEhvbWUvdmFyL1JFTEVBU0UuaVBob25lSGFuZGxlIHdhcyBub3QgY3JlYXRlZCEuXG4iLAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCj1pdGVtIF9SZW1vdmVSZWxlYXNlRmlsZSgpCgpyZW1vdmVzIFJFTEVBU0UuaVBob25lSGFuZGxlIGZpbGUgZnJvbSB0aGUgZmlsZSBzeXN0ZW0KCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPl9SZW1vdmVSZWxlYXNlRmlsZSgpOwoKPWN1dAoKc3ViIF9SZW1vdmVSZWxlYXNlRmlsZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IGhvbWUgcGF0aAogICAgbXkgJEhvbWUgPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnSG9tZScpOwoKICAgICMgZGVsZXRlIFJFTEVBU0UgZmlsZQogICAgaWYgKCAtZSAiJEhvbWUvdmFyL1JFTEVBU0UuaVBob25lSGFuZGxlIiApIHsKICAgICAgICBpZiAoICF1bmxpbmsgIiRIb21lL3Zhci9SRUxFQVNFLmlQaG9uZUhhbmRsZSIgKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJGaWxlICRIb21lL3Zhci9SRUxFQVNFLmlQaG9uZUhhbmRsZSBjb3VsZCBub3QgYmUgZGVsZXRlZCEuXG4iLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICByZXR1cm4gLTE7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ25vdGljZScsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJGaWxlICRIb21lL3Zhci9SRUxFQVNFLmlQaG9uZUhhbmRsZSB3YXMgYWxyZWFkeSBkZWxldGVkIS5cbiIsCiAgICAgICAgKTsKICAgIH0KICAgIHJldHVybiAxOwp9Cgo9aXRlbSBfTWlncmF0ZUNvbmZpZ3VyYXRpb25zKCkKCm1pZ3JhdGVzIG9sZCBUaWNrZXRGcmVlVGV4dCwgVGlja2V0RnJlZVRpbWUgYW5kIEFydGljbGVGcmVlVGV4dCBjb25maWd1cmF0aW9ucyB0byBuZXcgRHluYW1pYwpGaWVsZHMgQ29uZmlndXJhdGlvbnMKCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPl9NaWdyYXRlQ29uZmlndXJhdGlvbnMoKTsKCj1jdXQKCnN1YiBfTWlncmF0ZUNvbmZpZ3VyYXRpb25zIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgQFNjcmVlbnMgPSAoCiAgICAgICAgJ2lQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UGhvbmUnLAogICAgICAgICdpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUnLAogICAgICAgICdpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENsb3NlJywKICAgICAgICAnaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDb21wb3NlJywKICAgICAgICAnaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNb3ZlJywKICAgICk7CgogICAgbXkgQEZyZWVGaWVsZFR5cGVzID0gKAogICAgICAgICdUaWNrZXRGcmVlVGV4dCcsCiAgICAgICAgJ1RpY2tldEZyZWVUaW1lJywKICAgICAgICAnQXJ0aWNsZUZyZWVUZXh0JywKICAgICk7CgogICAgU0NSRUVOOgogICAgZm9yIG15ICRTY3JlZW4gKEBTY3JlZW5zKSB7CgogICAgICAgIG15ICRTY3JlZW5Db25maWcgPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgkU2NyZWVuKTsKCiAgICAgICAgIyBza2lwIHNjcmVlbiBpZiBEeW5hbWljIEZpZWxkcyBhcmUgYWxyZWFkeSBkZWZpbmVkCiAgICAgICAgbmV4dCBTQ1JFRU4gaWYgSXNIYXNoUmVmV2l0aERhdGEoICRTY3JlZW5Db25maWctPntEeW5hbWljRmllbGR9ICk7CgogICAgICAgIG15ICVGaWVsZHNUb0FkZDsKCiAgICAgICAgIyBnYXRoZXIgYWxsIGZyZWUgZmllbGRzIGZvciB0aGlzIHNjcmVlbgogICAgICAgIGZvciBteSAkRnJlZUZpZWxkVHlwZSAoQEZyZWVGaWVsZFR5cGVzKSB7CgogICAgICAgICAgICAjIGNoZWNrIGlmIEZyZWVGaWVsZFR5cGUgY29uZmlndXJhdGlvbiBpcyBzZXQgYW5kIGdldCB0aGUgY29uZmlndXJlZCBmaWVsZHMKICAgICAgICAgICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSggJFNjcmVlbkNvbmZpZy0+eyRGcmVlRmllbGRUeXBlfSApICkgewoKICAgICAgICAgICAgICAgIEZSRUVGSUVMRDoKICAgICAgICAgICAgICAgIGZvciBteSAkRnJlZUZpZWxkICggc29ydCBrZXlzICV7ICRTY3JlZW5Db25maWctPnskRnJlZUZpZWxkVHlwZX0gfSApIHsKCiAgICAgICAgICAgICAgICAgICAgIyBza2lwIHRoZSBGcmVlRmllbGRzIHRoYXQgYXJlIHNldCB0byAwCiAgICAgICAgICAgICAgICAgICAgbmV4dCBGUkVFRklFTEQgaWYgISRTY3JlZW5Db25maWctPnskRnJlZUZpZWxkVHlwZX0tPnskRnJlZUZpZWxkfTsKCiAgICAgICAgICAgICAgICAgICAgIyBhZGQgZmllbGQgc2V0dGluZyAoMSBvciAyKSB0byB0aGUgRmllbGRzVG9BZGQgaGFzaAogICAgICAgICAgICAgICAgICAgICRGaWVsZHNUb0FkZHsgJEZyZWVGaWVsZFR5cGUgLiAkRnJlZUZpZWxkIH0gPSAkU2NyZWVuQ29uZmlnLT57JEZyZWVGaWVsZFR5cGV9LT57JEZyZWVGaWVsZH07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgdXBkYXRlIER5bmFtaWNGaWVsZCBjb25maWd1cmF0aW9uIGZvciB0aGUgc2NyZWVuIGFuZCBhZGQgdGhlIGNvbmZpZ3VyZWQgRnJlZUZpZWxkcwogICAgICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoIFwlRmllbGRzVG9BZGQgKSApIHsKICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkU2VsZi0+e1N5c0NvbmZpZ09iamVjdH0tPkNvbmZpZ0l0ZW1VcGRhdGUoCiAgICAgICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICAgICAgS2V5ICAgPT4gJFNjcmVlbiAuICcjIyNEeW5hbWljRmllbGQnLAogICAgICAgICAgICAgICAgVmFsdWUgPT4gXCVGaWVsZHNUb0FkZCwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGlmICggISRTdWNjZXNzICkgewogICAgICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiQ2FuJ3QgdXBkYXRlIER5bmFtaWNGaWVsZCBjb25maWd1cmF0aW9uIGZvciAkU2NyZWVuIS5cbiIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIDEKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHA6Ly9vdHJzLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIEtlcm5lbC9TeXN0ZW0vaVBob25lLnBtIC0gYWxsIGlQaG9uZSBoYW5kbGUgZnVuY3Rpb25zCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTUgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6aVBob25lOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6TGFuZ3VhZ2U7CnVzZSBLZXJuZWw6OlN5c3RlbTo6Q2hlY2tJdGVtOwp1c2UgS2VybmVsOjpTeXN0ZW06OlByaW9yaXR5Owp1c2UgS2VybmVsOjpTeXN0ZW06OlN5c3RlbUFkZHJlc3M7CnVzZSBLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOwp1c2UgS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZDsKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjppUGhvbmUgLSBpUGhvbmUgbGliCgo9aGVhZDEgU1lOT1BTSVMKCkFsbCBpUGhvbmUgZnVuY3Rpb25zLgoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIG5ldygpCgpjcmVhdGUgYW4gb2JqZWN0CgogICAgdXNlIEtlcm5lbDo6Q29uZmlnOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpFbmNvZGU7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkxvZzsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6VGltZTsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6TWFpbjsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6REI7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OlVzZXI7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Okdyb3VwOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpRdWV1ZTsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6U2VydmljZTsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6VHlwZTsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6U3RhdGU7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkxvY2s7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OlNMQTsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6Q3VzdG9tZXJVc2VyOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpUaWNrZXQ7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkxpbmtPYmplY3Q7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OmlQaG9uZTsKCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gS2VybmVsOjpDb25maWctPm5ldygpOwogICAgbXkgJEVuY29kZU9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpFbmNvZGUtPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICk7CiAgICBteSAkTG9nT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkxvZy0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIEVuY29kZU9iamVjdCA9PiAkRW5jb2RlT2JqZWN0LAogICAgKTsKICAgIG15ICRUaW1lT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OlRpbWUtPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBMb2dPYmplY3QgICAgPT4gJExvZ09iamVjdCwKICAgICk7CiAgICBteSAkTWFpbk9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpNYWluLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICApOwogICAgbXkgJERCT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkRCLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICAgICAgTWFpbk9iamVjdCAgID0+ICRNYWluT2JqZWN0LAogICAgKTsKICAgIG15ICRVc2VyT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OlVzZXItPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBMb2dPYmplY3QgICAgPT4gJExvZ09iamVjdCwKICAgICAgICBNYWluT2JqZWN0ICAgPT4gJE1haW5PYmplY3QsCiAgICAgICAgVGltZU9iamVjdCAgID0+ICRUaW1lT2JqZWN0LAogICAgICAgIERCT2JqZWN0ICAgICA9PiAkREJPYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICApOwogICAgbXkgJEdyb3VwT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06Okdyb3VwLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICAgICAgREJPYmplY3QgICAgID0+ICREQk9iamVjdCwKICAgICAgICBNYWluT2JqZWN0ICAgPT4gJE1haW5PYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICApOwogICAgbXkgJFF1ZXVlT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OlF1ZXVlLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ICAgICAgICA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICAgICAgICAgPT4gJExvZ09iamVjdCwKICAgICAgICBEQk9iamVjdCAgICAgICAgICAgID0+ICREQk9iamVjdCwKICAgICAgICBNYWluT2JqZWN0ICAgICAgICAgID0+ICRNYWluT2JqZWN0LAogICAgICAgIEVuY29kZU9iamVjdCAgICAgICAgPT4gJEVuY29kZU9iamVjdCwKICAgICAgICBHcm91cE9iamVjdCAgICAgICAgID0+ICRHcm91cE9iamVjdCwgIyBpZiBnaXZlbgogICAgICAgIEN1c3RvbWVyR3JvdXBPYmplY3QgPT4gJEN1c3RvbWVyR3JvdXBPYmplY3QsICMgaWYgZ2l2ZW4KICAgICk7CiAgICBteSAkU2VydmljZU9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpTZXJ2aWNlLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICAgICAgREJPYmplY3QgICAgID0+ICREQk9iamVjdCwKICAgICAgICBNYWluT2JqZWN0ICAgPT4gJE1haW5PYmplY3QsCiAgICApOwogICAgbXkgJFR5cGVPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6VHlwZS0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgICAgIERCT2JqZWN0ICAgICA9PiAkREJPYmplY3QsCiAgICAgICAgTWFpbk9iamVjdCAgID0+ICRNYWluT2JqZWN0LAogICAgICAgIEVuY29kZU9iamVjdCA9PiAkRW5jb2RlT2JqZWN0LAogICAgKTsKICAgIG15ICRTdGF0ZU9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpTdGF0ZS0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgICAgIERCT2JqZWN0ICAgICA9PiAkREJPYmplY3QsCiAgICAgICAgTWFpbk9iamVjdCAgID0+ICRNYWluT2JqZWN0LAogICAgICAgIEVuY29kZU9iamVjdCA9PiAkRW5jb2RlT2JqZWN0LAogICAgKTsKICAgIG15ICRMb2NrT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkxvY2stPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBMb2dPYmplY3QgICAgPT4gJExvZ09iamVjdCwKICAgICAgICBEQk9iamVjdCAgICAgPT4gJERCT2JqZWN0LAogICAgICAgIE1haW5PYmplY3QgICA9PiAkTWFpbk9iamVjdCwKICAgICAgICBFbmNvZGVPYmplY3QgPT4gJEVuY29kZU9iamVjdCwKICAgICk7CiAgICBteSAkU0xBT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OlNMQS0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIEVuY29kZU9iamVjdCA9PiAkRW5jb2RlT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgICAgIERCT2JqZWN0ICAgICA9PiAkREJPYmplY3QsCiAgICAgICAgTWFpbk9iamVjdCAgID0+ICRNYWluT2JqZWN0LAogICAgKTsKICAgIG15ICRDdXN0b21lclVzZXJPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6Q3VzdG9tZXJVc2VyLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICAgICAgREJPYmplY3QgICAgID0+ICREQk9iamVjdCwKICAgICAgICBNYWluT2JqZWN0ICAgPT4gJE1haW5PYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICApOwogICAgbXkgJFRpY2tldE9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpUaWNrZXQtPm5ldygKICAgICAgICBDb25maWdPYmplY3QgICAgICAgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBMb2dPYmplY3QgICAgICAgICAgPT4gJExvZ09iamVjdCwKICAgICAgICBEQk9iamVjdCAgICAgICAgICAgPT4gJERCT2JqZWN0LAogICAgICAgIE1haW5PYmplY3QgICAgICAgICA9PiAkTWFpbk9iamVjdCwKICAgICAgICBUaW1lT2JqZWN0ICAgICAgICAgPT4gJFRpbWVPYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ICAgICAgID0+ICRFbmNvZGVPYmplY3QsCiAgICAgICAgR3JvdXBPYmplY3QgICAgICAgID0+ICRHcm91cE9iamVjdCwgICAgICAgICMgaWYgZ2l2ZW4KICAgICAgICBDdXN0b21lclVzZXJPYmplY3QgPT4gJEN1c3RvbWVyVXNlck9iamVjdCwgIyBpZiBnaXZlbgogICAgICAgIFF1ZXVlT2JqZWN0ICAgICAgICA9PiAkUXVldWVPYmplY3QsICAgICAgICAjIGlmIGdpdmVuCiAgICApOwogICAgbXkgJExpbmtPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6TGlua09iamVjdC0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgICAgIERCT2JqZWN0ICAgICA9PiAkREJPYmplY3QsCiAgICAgICAgVGltZU9iamVjdCAgID0+ICRUaW1lT2JqZWN0LAogICAgICAgIE1haW5PYmplY3QgICA9PiAkTWFpbk9iamVjdCwKICAgICAgICBFbmNvZGVPYmplY3QgPT4gJEVuY29kZU9iamVjdCwKICAgICk7CiAgICBteSAkaVBob25lT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OmlQaG9uZS0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCAgICAgICA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICAgICAgICA9PiAkTG9nT2JqZWN0LAogICAgICAgIERCT2JqZWN0ICAgICAgICAgICA9PiAkREJPYmplY3QsCiAgICAgICAgTWFpbk9iamVjdCAgICAgICAgID0+ICRNYWluT2JqZWN0LAogICAgICAgIFRpbWVPYmplY3QgICAgICAgICA9PiAkVGltZU9iamVjdCwKICAgICAgICBFbmNvZGVPYmplY3QgICAgICAgPT4gJEVuY29kZU9iamVjdCwKICAgICAgICBHcm91cE9iamVjdCAgICAgICAgPT4gJEdyb3VwT2JqZWN0LAogICAgICAgIEN1c3RvbWVyVXNlck9iamVjdCA9PiAkQ3VzdG9tZXJVc2VyT2JqZWN0LAogICAgICAgIFF1ZXVlT2JqZWN0ICAgICAgICA9PiAkUXVldWVPYmplY3QsCiAgICAgICAgVXNlck9iamVjdCAgICAgICAgID0+ICRVc2VyT2JqZWN0LAogICAgICAgIFF1ZXVlT2JqZWN0ICAgICAgICA9PiAkUXVldWVPYmplY3QsCiAgICAgICAgU2VydmljZU9iamVjdCAgICAgID0+ICRTZXJ2aWNlT2JqZWN0LAogICAgICAgIFR5cGVPYmplY3QgICAgICAgICA9PiAkVHlwZU9iamVjdCwKICAgICAgICBTdGF0ZU9iamVjdCAgICAgICAgPT4gJFN0YXRlT2JqZWN0LAogICAgICAgIExvY2tPYmplY3QgICAgICAgICA9PiAkTG9ja09iamVjdCwKICAgICAgICBTTEFPYmplY3QgICAgICAgICAgPT4gJFNMQU9iamVjdCwKICAgICAgICBUaWNrZXRPYmplY3QgICAgICAgPT4gJFRpY2tldE9iamVjdCwKICAgICAgICBMaW5rT2JqZWN0ICAgICAgICAgPT4gJExpbmtPYmplY3QsCiAgICApOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIGNoZWNrIG5lZWRlZCBvYmplY3RzCiAgICBmb3IgKAogICAgICAgIHF3KENvbmZpZ09iamVjdCBVc2VyT2JqZWN0IEdyb3VwT2JqZWN0IFF1ZXVlT2JqZWN0IFNlcnZpY2VPYmplY3QgVHlwZU9iamVjdAogICAgICAgIFN0YXRlT2JqZWN0IExvY2tPYmplY3QgU0xBT2JqZWN0IEN1c3RvbWVyVXNlck9iamVjdCBUaWNrZXRPYmplY3QgTGlua09iamVjdCApCiAgICAgICAgKQogICAgewogICAgICAgICRTZWxmLT57JF99ID0gJFBhcmFteyRffSB8fCBkaWUgIkdvdCBubyAkXyEgb2JqZWN0IjsKICAgIH0KCiAgICAkU2VsZi0+e0NoZWNrSXRlbU9iamVjdH0gICAgPSBLZXJuZWw6OlN5c3RlbTo6Q2hlY2tJdGVtLT5uZXcoJVBhcmFtKTsKICAgICRTZWxmLT57UHJpb3JpdHlPYmplY3R9ICAgICA9IEtlcm5lbDo6U3lzdGVtOjpQcmlvcml0eS0+bmV3KCVQYXJhbSk7CiAgICAkU2VsZi0+e1N5c3RlbUFkZHJlc3N9ICAgICAgPSBLZXJuZWw6OlN5c3RlbTo6U3lzdGVtQWRkcmVzcy0+bmV3KCVQYXJhbSk7CiAgICAkU2VsZi0+e0R5bmFtaWNGaWVsZE9iamVjdH0gPSBLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkLT5uZXcoJVBhcmFtKTsKICAgICRTZWxmLT57QmFja2VuZE9iamVjdH0gICAgICA9IEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQtPm5ldyglUGFyYW0pOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWl0ZW0gU2NyZWVuQ29uZmlnKCkKR2V0IGZpZWxkcyBkZWZpbnRpb24gZm9yIGVhY2ggc2NyZWVuIChQaG9uZSwgTm90ZSwgQ2xvc2UsIENvbXBvc2Ugb3IgTW92ZSkKClBob25lICAgKE5ldyBwaG9uZSB0aWNrZXQpCk5vdGUgICAgKEFkZCBhIG5vdGUgdG8gYSBUaWNrZXQpCkNsb3NlICAgKENsb3NlIGEgdGNrZXQpCkNvbXBvc2UgKFJlcGx5IG9yIHJlc3BvbnNlIGEgdGlja2V0KQpNb3ZlICAgIChDaGFuZ2UgdGlja2V0IHF1ZXVlKQoKTm90ZSwgQ2xvc2UsIENvbXBvc2UgYW5kIE1vdmUsIHJlcXVpcmVzIFRpY2tldElEIGFyZ3VtZW50CgpUaGUgZmllbGRzIHRoYXQgYXJlIHJldHVybmVkIGRlcGVuZCBvbiB0aGUgU2NyZWVuIEFyZ3VtZW50IGFuZCBvbiB0aGUgU2V0dGluZ3MgaW4gc3lzY29uZmlnIGZvciB0aGUgaVBob25lCmFzIHdlbGwgYXMgb24gZ2VuZXJhbCBzZXR0aW5ncy4KCiAgICBteSBAUmVzdWx0ID0gJGlQaG9uZU9iamVjdC0+U2NyZWVuQ29uZmlnKAogICAgICAgIFNjcmVlbiA9PiAiUGhvbmUiLAogICAgICAgIFVzZXJJRCA9PiAxLAogICAgKTsKCiAgICBteSBAUmVzdWx0ID0gJGlQaG9uZU9iamVjdC0+U2NyZWVuQ29uZmlnKAogICAgICAgIFNjcmVlbiAgID0+ICJOb3RlIiwKICAgICAgICBUaWNrZXRJRCA9PiAyMjQsCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICk7CgogICAgIyBhIHJlc3VsdCBjb3VsZCBiZQoKICAgIEBSZXN1bHQgPSAoCiAgICAgICAgQWN0aW9ucyA9PiB7CiAgICAgICAgICAgIFBhcmFtZXRlcnMgPT4gewogICAgICAgICAgICAgICAgQWN0aW9uID0+ICJQaG9uZSIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIE1ldGhvZCA9PiAiU2NyZWVuQWN0aW9ucyIsCiAgICAgICAgICAgIE9iamVjdCA9PiAiQ3VzdG9tT2JqZWN0IiwKICAgICAgICAgICAgVGl0bGUgPT4gIk5ldyBQaG9uZSBUaWNrZXQiCiAgICAgICB9LAogICAgICAgIEVsZW1lbnRzID0+ICgKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAgICAgICA9PiAiVHlwZUlEIiwKICAgICAgICAgICAgICAgIFRpdGxlICAgICAgPT4gIlR5cGUiLAogICAgICAgICAgICAgICAgRGF0YXR5cGUgICA9PiAiVGV4dCIsCiAgICAgICAgICAgICAgICBWaWV3dHlwZSAgID0+ICJQaWNrZXIiLAogICAgICAgICAgICAgICAgT3B0aW9ucyAgICA9PiB7CiAgICAgICAgICAgICAgICAgICAgMT0+ICJkZWZhdWx0IiwKICAgICAgICAgICAgICAgICAgICAyPT4gIlJmQyIsCiAgICAgICAgICAgICAgICAgICAgMz0+ICJJbmNpZGVudCIsCiAgICAgICAgICAgICAgICAgICAgND0+ICJJbmNpZGVudDo6U2VydmljZVJlcXVlc3QiLAogICAgICAgICAgICAgICAgICAgIDU9PiAiSW5jaWRlbnQ6OkRpc2FzdGVyIgogICAgICAgICAgICAgICAgICAgIDY9PiAiUHJvYmxlbSIsCiAgICAgICAgICAgICAgICAgICAgNz0+ICJQcm9ibGVtOjpLbm93bkVycm9yIiwKICAgICAgICAgICAgICAgICAgICA4PT4gIlByb2JsZW06OlBlbmRpbmdSZkMiLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIERlZmF1bHQgICA9PiIiLAogICAgICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICJDdXN0b21lclVzZXJMb2dpbiIsCiAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgICA9PiAiRnJvbSBjdXN0b21lciIsCiAgICAgICAgICAgICAgICBEYXRhdHlwZSAgICAgICA9PiAiVGV4dCIsCiAgICAgICAgICAgICAgICBWaWV3dHlwZSAgICAgICA9PiJBdXRvQ29tcGxldGlvbiIsCiAgICAgICAgICAgICAgICBEeW5hbWljT3B0aW9ucyA9PiB7CiAgICAgICAgICAgICAgICAgICAgT2JqZWN0ICAgICA9PiAiQ3VzdG9tT2JqZWN0IiwKICAgICAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+IkN1c3RvbWVyU2VhcmNoIiwKICAgICAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0+CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlYXJjaCA9PiAiQ3VzdG9tZXJVc2VyTG9naW4iLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgID0+ICIiLAogICAgICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAgICAgID0+ICJRdWV1ZUlEIiwKICAgICAgICAgICAgICAgIFRpdGxlICAgICA9PiAiVG8gcXVldWUiLAogICAgICAgICAgICAgICAgRGF0YXR5cGUgID0+ICJUZXh0IiwKICAgICAgICAgICAgICAgIFZpZXd0eXBlICA9PiAiUGlja2VyIiwKICAgICAgICAgICAgICAgIE9wdGlvbnMgICA9PnsKICAgICAgICAgICAgICAgICAgICAgID0+ICItIiwKICAgICAgICAgICAgICAgICAgICAxID0+ICJQb3N0bWFzdGVyIiwKICAgICAgICAgICAgICAgICAgICAyID0+ICJSYXciLAogICAgICAgICAgICAgICAgICAgIDMgPT4gIkp1bmsiLAogICAgICAgICAgICAgICAgICAgIDQgPT4gIk1pc2MiLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIERlZmF1bHQgICA9PiAiIiwKICAgICAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICA9PiAiU2VydmljZUlEIiwKICAgICAgICAgICAgICAgIFRpdGxlICAgICAgICAgID0+ICJTZXJ2aWNlIiwKICAgICAgICAgICAgICAgIERhdGF0eXBlICAgICAgID0+ICJUZXh0IiwKICAgICAgICAgICAgICAgIFZpZXd0eXBlICAgICAgID0+IlBpY2tlciIsCiAgICAgICAgICAgICAgICBEeW5hbWljT3B0aW9ucyA9PiB7CiAgICAgICAgICAgICAgICAgICAgT2JqZWN0ICAgICA9PiAiQ3VzdG9tT2JqZWN0IgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAgICAgPT4gIlNlcnZpY2VzR2V0IiwKICAgICAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tZXJVc2VySUQgPT4gIkN1c3RvbWVyVXNlckxvZ2luIiwKICAgICAgICAgICAgICAgICAgICAgICAgUXVldWVJRCAgICAgICAgPT4gIlF1ZXVlSUQiLAogICAgICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCAgICAgICA9PiAiVGlja2V0SUQiLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgPT4gMCwKICAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgID0+ICIiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICA9PiAiU0xBSUQiLAogICAgICAgICAgICAgICAgVGl0bGUgICAgICAgICAgPT4gIlNMQSIsCiAgICAgICAgICAgICAgICBEYXRhdHlwZSAgICAgICA9PiAiVGV4dCIsCiAgICAgICAgICAgICAgICBWaWV3dHlwZSAgICAgICA9PiAiUGlja2VyIiwKICAgICAgICAgICAgICAgIER5bmFtaWNPcHRpb25zID0+IHsKICAgICAgICAgICAgICAgICAgICBPYmplY3QgICAgID0+ICJDdXN0b21PYmplY3QiLAogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAgICAgPT4gIlNMQXNHZXQiLAogICAgICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBDdXN0b21lclVzZXJJRCA9PiAiQ3VzdG9tZXJVc2VyTG9naW4iLAogICAgICAgICAgICAgICAgICAgICAgICBRdWV1ZUlEICAgICAgICA9PiAiUXVldWVJRCIsCiAgICAgICAgICAgICAgICAgICAgICAgIFNlcnZpY2VJRCAgICAgID0+ICJTZXJ2aWNlSUQiLAogICAgICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCAgICAgICA9PiAiVGlja2V0SUQiLgogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgPT4gIiIsCiAgICAgICAgICAgICAgICBNYW5kYXRvcnkgICAgICA9PiAwLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICA9PiAiT3duZXJJRCIsCiAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgICA9PiAiT3duZXIiLAogICAgICAgICAgICAgICAgRGF0YXR5cGUgICAgICAgPT4gIlRleHQiLAogICAgICAgICAgICAgICAgVmlld3R5cGUgICAgICAgPT4iUGlja2VyIiwKICAgICAgICAgICAgICAgIER5bmFtaWNPcHRpb25zID0+IHsKICAgICAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgUXVldWVJRCAgPT4gIlF1ZXVlSUQiLAogICAgICAgICAgICAgICAgICAgICAgICBBbGxVc2VycyA9PiAxLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kICAgICA9PiAiVXNlcnNHZXQiLAogICAgICAgICAgICAgICAgICAgIE9iamVjdCAgICAgPT4gIkN1c3RvbU9iamVjdCIsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgPT4gIiIsCiAgICAgICAgICAgICAgICBNYW5kYXRvcnkgICAgICA9PiAwLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICA9PiAiUmVzcG9uc2libGVJRCIsCiAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgICA9PiAiUmVzcG9uc2libGUiLAogICAgICAgICAgICAgICAgRGF0YXR5cGUgICAgICAgPT4gIlRleHQiLAogICAgICAgICAgICAgICAgVmlld3R5cGUgICAgICAgPT4gIlBpY2tlciIsCiAgICAgICAgICAgICAgICBEeW5hbWljT3B0aW9ucyA9PiB7CiAgICAgICAgICAgICAgICAgICAgT2JqZWN0ICAgICA9PiAiQ3VzdG9tT2JqZWN0IiwKICAgICAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICJVc2Vyc0dldCIsCiAgICAgICAgICAgICAgICAgICAgUGFyYW1ldGVycyA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFF1ZXVlSUQgID0+ICJRdWV1ZUlEIiwKICAgICAgICAgICAgICAgICAgICAgICAgQWxsVXNlcnMgPT4gMQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgPT4gIiIsCiAgICAgICAgICAgICAgICBNYW5kYXRvcnkgICAgICA9PiAwLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgPT4gIlN1YmplY3QiLAogICAgICAgICAgICAgICAgVGl0bGUgICAgID0+ICJTdWJqZWN0IiwKICAgICAgICAgICAgICAgIERhdGF0eXBlICA9PiAiVGV4dCIsCiAgICAgICAgICAgICAgICBWaWV3dHlwZSAgPT4gIklucHV0IiwKICAgICAgICAgICAgICAgIE1heCAgICAgICA9PiAyNTAsCiAgICAgICAgICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIERlZmF1bHQgICA9PiAiIiwKICAgICAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgPT4gIkJvZHkiLAogICAgICAgICAgICAgICAgVGl0bGUgICAgID0+ICJUZXh0IiwKICAgICAgICAgICAgICAgIERhdGF0eXBlICA9PiAiVGV4dCIsCiAgICAgICAgICAgICAgICBWaWV3dHlwZSAgPT4gIlRleHRBcmVhIiwKICAgICAgICAgICAgICAgIE1heCAgICAgICA9PiAyMDAwMCwKICAgICAgICAgICAgICAgIE1pbiAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgRGVmYXVsdCAgID0+ICIiLAogICAgICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICA9PiAiQ3VzdG9tZXJJRCIsCiAgICAgICAgICAgICAgICBUaXRsZSAgICAgPT4gIkN1c3RvbWVySUQiLAogICAgICAgICAgICAgICAgRGF0YXR5cGUgID0+ICJUZXh0IiwKICAgICAgICAgICAgICAgIFZpZXd0eXBlICA9PiAiSW5wdXQiLAogICAgICAgICAgICAgICAgTWF4ICAgICAgID0+IDE1MCwKICAgICAgICAgICAgICAgIE1pbiAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgRGVmYXVsdCAgID0+ICIiLAogICAgICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDAsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICJTdGF0ZUlEIiwKICAgICAgICAgICAgICAgIFRpdGxlICAgICAgICAgID0+ICJOZXh0IFRpY2tldCBTdGF0ZSIsCiAgICAgICAgICAgICAgICBEYXRhdHlwZSAgICAgICA9PiAiVGV4dCIsCiAgICAgICAgICAgICAgICBWaWV3dHlwZSAgICAgICA9PiAiUGlja2VyIiwKICAgICAgICAgICAgICAgIER5bmFtaWNPcHRpb25zID0+IHsKICAgICAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICJOZXh0U3RhdGVzR2V0IiwKICAgICAgICAgICAgICAgICAgICBPYmplY3QgICAgID0+ICJDdXN0b21PYmplY3QiLAogICAgICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBRdWV1ZUlEID0+ICJRdWV1ZUlEIiwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgID0+ICI0IiwKICAgICAgICAgICAgICAgIERlZmF1bHRPcHRpb24gID0+ICJvcGVuIiwKICAgICAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICA9PiAiUGVuZGluZ0RhdGUiLAogICAgICAgICAgICAgICAgVGl0bGUgICAgID0+ICJQZW5kaW5nIERhdGUgKGZvciBwZW5kaW5nKiBzdGF0ZXMpIgogICAgICAgICAgICAgICAgRGF0YXR5cGUgID0+ICJEYXRlVGltZSIsCiAgICAgICAgICAgICAgICBWaWV3dHlwZSAgPT4gIlBpY2tlciIsCiAgICAgICAgICAgICAgICBEZWZhdWx0ICAgPT4gIiIsCiAgICAgICAgICAgICAgICBNYW5kYXRvcnkgPT4gMCwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gIlByaW9yaXR5SUQiLAogICAgICAgICAgICAgICAgVGl0bGUgICAgICAgICAgPT4gIlByaW9yaXR5IgogICAgICAgICAgICAgICAgRGF0YXR5cGUgICAgICAgPT4gIlRleHQiLAogICAgICAgICAgICAgICAgVmlld3R5cGUgICAgICAgPT4gIlBpY2tlciIsCiAgICAgICAgICAgICAgICBEeW5hbWljT3B0aW9ucyA9PiB7CiAgICAgICAgICAgICAgICAgICAgT2JqZWN0ICAgICA9PiAiQ3VzdG9tT2JqZWN0IgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAgICAgPT4gIlByaW9yaXRpZXNHZXQiLAogICAgICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgPT4gIiIsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgRGVmYXVsdE9wdGlvbiAgPT4gIjMgbm9ybWFsIiwKICAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgID0+ICIzIiwKICAgICAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgID0+ICJEeW5hbWljRmllbGRfTmFtZVgiLAogICAgICAgICAgICAgICAgVGl0bGUgICAgICAgPT4gIlByb2R1Y3QiLAogICAgICAgICAgICAgICAgRGF0YXR5cGUgICAgPT4gIlRleHQiLAogICAgICAgICAgICAgICAgVmlld3R5cGUgICAgPT4gIlBpY2tlciIsCiAgICAgICAgICAgICAgICBPcHRpb25zICAgICA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIi0iLAogICAgICAgICAgICAgICAgICAgIFBob25lICAgID0+ICJQaG9uZSIsCiAgICAgICAgICAgICAgICAgICAgTm90ZWJvb2sgPT4gIk5vdGVib29rIiwKICAgICAgICAgICAgICAgICAgICBQQyAgICAgICA9PiAiUEMiLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIERlZmF1bHQgICAgID0+ICJOb3RlYm9vayIsCiAgICAgICAgICAgICAgICBNYW5kYXRvcnkgICA9PiAwLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lID0+ICJUaW1lVW5pdHMiLAogICAgICAgICAgICAgICAgVGl0bGUgPT4gIlRpbWUgdW5pdHMgKHdvcmsgdW5pdHMpIiwKICAgICAgICAgICAgICAgIERhdGF0eXBlID0+ICJOdW1lcmljIiwKICAgICAgICAgICAgICAgIFZpZXd0eXBlID0+ICJJbnB1dCIsCiAgICAgICAgICAgICAgICBNYXggPT4gMTAsCiAgICAgICAgICAgICAgICBNaW4gPT4gMSwKICAgICAgICAgICAgICAgIERlZmF1bHQgPT4gIiIsCiAgICAgICAgICAgICAgICBNYW5kYXRvcnkgPT4gMCwKICAgICAgICAgICAgfSwKICAgICAgICApLAogICAgKTsKCj1jdXQKCnN1YiBTY3JlZW5Db25maWcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fSA9IEtlcm5lbDo6TGFuZ3VhZ2UtPm5ldyggJXskU2VsZn0sIFVzZXJMYW5ndWFnZSA9PiAkUGFyYW17TGFuZ3VhZ2V9ICk7CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBOZXcgUGhvbmUgVGlja2V0IFNjcmVlbgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKICAgIGlmICggJFBhcmFte1NjcmVlbn0gZXEgJ1Bob25lJyApIHsKCiAgICAgICAgIyBnZXQgc2NyZWVuIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgaXBob25lIGZyb20gc3lzY29uZmlnCiAgICAgICAgJFNlbGYtPntDb25maWd9ID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ2lQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UGhvbmUnKTsKICAgICAgICBteSAlQ29uZmlnID0gKAogICAgICAgICAgICBUaXRsZSAgICA9PiAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCdOZXcgUGhvbmUgVGlja2V0JyksCiAgICAgICAgICAgIEVsZW1lbnRzID0+ICRTZWxmLT5fR2V0U2NyZWVuRWxlbWVudHMoJVBhcmFtKSwKICAgICAgICAgICAgQWN0aW9ucyAgPT4gewogICAgICAgICAgICAgICAgT2JqZWN0ICAgICA9PiAnQ3VzdG9tT2JqZWN0JywKICAgICAgICAgICAgICAgIE1ldGhvZCAgICAgPT4gJ1NjcmVlbkFjdGlvbnMnLAogICAgICAgICAgICAgICAgUGFyYW1ldGVycyA9PiB7CiAgICAgICAgICAgICAgICAgICAgQWN0aW9uID0+ICdQaG9uZScsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICAgICAgcmV0dXJuIFwlQ29uZmlnOwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgQWRkIE5vdGUgU2NyZWVuCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBpZiAoICRQYXJhbXtTY3JlZW59IGVxICdOb3RlJyApIHsKCiAgICAgICAgIyBnZXQgc2NyZWVuIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgaXBob25lIGZyb20gc3lzY29uZmlnCiAgICAgICAgJFNlbGYtPntDb25maWd9ID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ2lQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Tm90ZScpOwoKICAgICAgICBteSAlQ29uZmlnID0gKAogICAgICAgICAgICBUaXRsZSAgICA9PiAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCdBZGQgTm90ZScpLAogICAgICAgICAgICBFbGVtZW50cyA9PiAkU2VsZi0+X0dldFNjcmVlbkVsZW1lbnRzKCVQYXJhbSksCiAgICAgICAgICAgIEFjdGlvbnMgID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdCAgICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICdTY3JlZW5BY3Rpb25zJywKICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgPT4gewogICAgICAgICAgICAgICAgICAgIEFjdGlvbiAgID0+ICdOb3RlJywKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgIFRpdGxlICAgID0+ICdhIHRpdGxlJywKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gXCVDb25maWc7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBDbG9zZSBUaWNrZXQgU2NyZWVuCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgogICAgaWYgKCAkUGFyYW17U2NyZWVufSBlcSAnQ2xvc2UnICkgewoKICAgICAgICAjIGdldCBzY3JlZW4gY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBpcGhvbmUgZnJvbSBzeXNjb25maWcKICAgICAgICAkU2VsZi0+e0NvbmZpZ30gPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDbG9zZScpOwoKICAgICAgICBteSAlQ29uZmlnID0gKAogICAgICAgICAgICBUaXRsZSAgICA9PiAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCdDbG9zZScpLAogICAgICAgICAgICBFbGVtZW50cyA9PiAkU2VsZi0+X0dldFNjcmVlbkVsZW1lbnRzKCVQYXJhbSksCiAgICAgICAgICAgIEFjdGlvbnMgID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdCAgICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICdTY3JlZW5BY3Rpb25zJywKICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgPT4gewogICAgICAgICAgICAgICAgICAgIEFjdGlvbiAgID0+ICdDbG9zZScsCiAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gXCVDb25maWc7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBDb21wb3NlIFNjcmVlbgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKICAgIGlmICggJFBhcmFte1NjcmVlbn0gZXEgJ0NvbXBvc2UnICkgewoKICAgICAgICAjIGdldCBzY3JlZW4gY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBpcGhvbmUgZnJvbSBzeXNjb25maWcKICAgICAgICAkU2VsZi0+e0NvbmZpZ30gPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDb21wb3NlJyk7CgogICAgICAgIG15ICVDb25maWcgPSAoCiAgICAgICAgICAgIFRpdGxlICAgID0+ICRTZWxmLT57TGFuZ3VhZ2VPYmplY3R9LT5HZXQoJ0NvbXBvc2UnKSwKICAgICAgICAgICAgRWxlbWVudHMgPT4gJFNlbGYtPl9HZXRTY3JlZW5FbGVtZW50cyglUGFyYW0pIHx8ICcnLAogICAgICAgICAgICBBY3Rpb25zICA9PiB7CiAgICAgICAgICAgICAgICBPYmplY3QgICAgID0+ICdDdXN0b21PYmplY3QnLAogICAgICAgICAgICAgICAgTWV0aG9kICAgICA9PiAnU2NyZWVuQWN0aW9ucycsCiAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0+IHsKICAgICAgICAgICAgICAgICAgICBBY3Rpb24gICAgICAgICA9PiAnQ29tcG9zZScsCiAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgICAgICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgICAgICBSZXBseUFydGljbGVJRCA9PiAkUGFyYW17QXJ0aWNsZUlEfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgICAgICBpZiAoICEkQ29uZmlne0VsZW1lbnRzfSApIHsKICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgIH0KICAgICAgICByZXR1cm4gXCVDb25maWc7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBNb3ZlIFNjcmVlbgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgaWYgKCAkUGFyYW17U2NyZWVufSBlcSAnTW92ZScgKSB7CgogICAgICAgICMgZ2V0IHNjcmVlbiBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIGlwaG9uZSBmcm9tIHN5c2NvbmZpZwogICAgICAgICRTZWxmLT57Q29uZmlnfSA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1vdmUnKTsKCiAgICAgICAgbXkgJUNvbmZpZyA9ICgKICAgICAgICAgICAgVGl0bGUgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgnTW92ZScpLAogICAgICAgICAgICBFbGVtZW50cyA9PiAkU2VsZi0+X0dldFNjcmVlbkVsZW1lbnRzKCVQYXJhbSksCiAgICAgICAgICAgIEFjdGlvbnMgID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdCAgICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICdTY3JlZW5BY3Rpb25zJywKICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgPT4gewogICAgICAgICAgICAgICAgICAgIEFjdGlvbiAgID0+ICdNb3ZlJywKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgICAgIHJldHVybiBcJUNvbmZpZzsKICAgIH0KCiAgICByZXR1cm4gLTE7Cn0KCj1pdGVtIEJhZGdlcygpCgpHZXQgQmFkZ2VzIHRpY2tldCBjb3VudHMgZm9yIFdhdGNoZWQsIExvY2tlZCBhbmQgUmVwb3NpYmxlIGZvciB0aWNrZXRzCgogICAgbXkgQFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPkJhZGdlcygKICAgICAgICBVc2VySUQgICAgICAgICAgPT4gMSwKICAgICk7CgogICAgIyBhIHJlc3VsdCBjb3VsZCBiZQoKICAgIEBSZXN1bHQgPSAoCiAgICAgICAgTG9ja2VkID0+IHsKICAgICAgICAgICAgQWxsID0+IDEsCiAgICAgICAgICAgIE5ldyA9PiAxLAogICAgICAgIH0sCgogICAgICAgIFdhdGNoZWQgPT4geyAgICAgICAjIE9wdGlvbmFsIGlmIGZlYXR1cmUgaXMgZW5hYmxlZAogICAgICAgICAgICBBbGwgPT4gMiwKICAgICAgICAgICAgTmV3ID0+IDAsCiAgICAgICAgfSwKCiAgICAgICAgUmVzcG9uc2libGUgPT4geyAgICMgT3B0aW9uYWwgaWYgZmVhdHVyZSBpcyBlbmFibGVkCiAgICAgICAgICAgIEFsbCA9PiAxLAogICAgICAgICAgICBOZXcgPT4gMSwKICAgICAgICB9LAogICAgKTsKCj1jdXQKCnN1YiBCYWRnZXMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSBARGF0YTsKCiAgICAjIGxvY2tlZAogICAgaWYgKDEpIHsKICAgICAgICBteSAkQ291bnQgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgUmVzdWx0ICAgICA9PiAnQ09VTlQnLAogICAgICAgICAgICBMb2NrcyAgICAgID0+IFsnbG9jayddLAogICAgICAgICAgICBPd25lcklEcyAgID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgICAgICBQZXJtaXNzaW9uID0+ICdybycsCiAgICAgICAgKTsKICAgICAgICBteSAkQ291bnROZXcgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgUmVzdWx0ICAgICA9PiAnQ09VTlQnLAogICAgICAgICAgICBMb2NrcyAgICAgID0+IFsnbG9jayddLAogICAgICAgICAgICBPd25lcklEcyAgID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgVGlja2V0RmxhZyA9PiB7CiAgICAgICAgICAgICAgICBTZWVuID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFRpY2tldEZsYWdVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgUGVybWlzc2lvbiAgICAgICA9PiAncm8nLAogICAgICAgICk7CiAgICAgICAgJENvdW50TmV3ID0gJENvdW50IC0gJENvdW50TmV3OwogICAgICAgIHB1c2ggQERhdGEsIHsKICAgICAgICAgICAgTG9ja2VkID0+IHsKICAgICAgICAgICAgICAgIEFsbCA9PiAkQ291bnQsCiAgICAgICAgICAgICAgICBOZXcgPT4gJENvdW50TmV3LAogICAgICAgICAgICAgICAgfQogICAgICAgIH07CiAgICB9CgogICAgIyByZXNwb25zaWJsZQogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGlja2V0OjpSZXNwb25zaWJsZScpICkgewogICAgICAgIG15ICRDb3VudCA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICBSZXN1bHQgICAgICAgICA9PiAnQ09VTlQnLAogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICA9PiAnT3BlbicsCiAgICAgICAgICAgIFJlc3BvbnNpYmxlSURzID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgVXNlcklEICAgICAgICAgPT4gMSwKICAgICAgICAgICAgUGVybWlzc2lvbiAgICAgPT4gJ3JvJywKICAgICAgICApOwogICAgICAgIG15ICRDb3VudE5ldyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICBSZXN1bHQgICAgICAgICA9PiAnQ09VTlQnLAogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICA9PiAnT3BlbicsCiAgICAgICAgICAgIFJlc3BvbnNpYmxlSURzID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgVGlja2V0RmxhZyAgICAgPT4gewogICAgICAgICAgICAgICAgU2VlbiA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICBUaWNrZXRGbGFnVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIFBlcm1pc3Npb24gICAgICAgPT4gJ3JvJywKICAgICAgICApOwogICAgICAgICRDb3VudE5ldyA9ICRDb3VudCAtICRDb3VudE5ldzsKCiAgICAgICAgcHVzaCBARGF0YSwgewogICAgICAgICAgICBSZXNwb25zaWJsZSA9PiB7CiAgICAgICAgICAgICAgICBBbGwgPT4gJENvdW50LAogICAgICAgICAgICAgICAgTmV3ID0+ICRDb3VudE5ldywKICAgICAgICAgICAgICAgIH0KICAgICAgICB9OwogICAgfQoKICAgICMgd2F0Y2hlZAogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGlja2V0OjpXYXRjaGVyJykgKSB7CgogICAgICAgICMgY2hlY2sgYWNjZXNzCiAgICAgICAgbXkgJEFjY2Vzc09rID0gMTsKICAgICAgICBteSBAR3JvdXBzOwogICAgICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpY2tldDo6V2F0Y2hlckdyb3VwJykgKSB7CiAgICAgICAgICAgIEBHcm91cHMgPSBAeyAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGlja2V0OjpXYXRjaGVyR3JvdXAnKSB9OwogICAgICAgIH0KICAgICAgICBpZiAoQEdyb3VwcykgewogICAgICAgICAgICBteSAkQWNjZXNzID0gMDsKICAgICAgICAgICAgZm9yIG15ICRHcm91cCAoQEdyb3VwcykgewogICAgICAgICAgICAgICAgbmV4dCBpZiAhJFBhcmFteyJVc2VySXNHcm91cFskR3JvdXBdIn07CiAgICAgICAgICAgICAgICBpZiAoICRQYXJhbXsiVXNlcklzR3JvdXBbJEdyb3VwXSJ9IGVxICdZZXMnICkgewogICAgICAgICAgICAgICAgICAgICRBY2Nlc3MgPSAxOwogICAgICAgICAgICAgICAgICAgIGxhc3Q7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgcmV0dXJuIG9uIG5vIGFjY2VzcwogICAgICAgICAgICBpZiAoICEkQWNjZXNzICkgewogICAgICAgICAgICAgICAgJEFjY2Vzc09rID0gMDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKCRBY2Nlc3NPaykgewoKICAgICAgICAgICAgIyBmaW5kIHdhdGNoZWQgdGlja2V0cwogICAgICAgICAgICBteSAkQ291bnQgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgICAgIFJlc3VsdCAgICAgICA9PiAnQ09VTlQnLAogICAgICAgICAgICAgICAgV2F0Y2hVc2VySURzID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGVybWlzc2lvbiAgID0+ICdybycsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG15ICRDb3VudE5ldyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICAgICAgUmVzdWx0ICAgICAgID0+ICdDT1VOVCcsCiAgICAgICAgICAgICAgICBXYXRjaFVzZXJJRHMgPT4gWyAkUGFyYW17VXNlcklEfSBdLAogICAgICAgICAgICAgICAgVGlja2V0RmxhZyAgID0+IHsKICAgICAgICAgICAgICAgICAgICBTZWVuID0+IDEsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgVGlja2V0RmxhZ1VzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gICAgICAgPT4gJ3JvJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJENvdW50TmV3ID0gJENvdW50IC0gJENvdW50TmV3OwoKICAgICAgICAgICAgcHVzaCBARGF0YSwgewogICAgICAgICAgICAgICAgV2F0Y2hlZCA9PiB7CiAgICAgICAgICAgICAgICAgICAgQWxsID0+ICRDb3VudCwKICAgICAgICAgICAgICAgICAgICBOZXcgPT4gJENvdW50TmV3LAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIEBEYXRhOwp9Cgo9aXRlbSBFc2NhbGF0aW9uVmlldygpCgpHZXQgdGhlIG51bWJlciBvZiB0aWNrZXRzIG9uIGVzdGFsYXRpb24gc3RhdHVzIGJ5IHN0YXRlIHR5cGUgb3IgbGFzdCBjdXN0b21lciBhcnRpY2xlIGluZm9ybWF0aW9uIGZyb20KZWFjaCB0aWNrZXQgaW4gZXNjYWxhdGlvbiBzdGF0dXMgd2l0aGluIGEgZmlsdGVyLCBpZiB0aGUgIkZpbHRlciIgYXJndW1lbnQgaXMgc3BlY2lmaWVkLgoKICAgIG15IEBSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5Fc2NhbGF0aW9uVmlldygKICAgICAgICBVc2VySUQgID0+IDEsCgogICAgICAgICMgT3JkZXJCeSBhbmQgU29ydEJ5IChvcHRpb25hbCkKICAgICAgICBPcmRlckJ5ID0+ICdEb3duJywgICMgRG93bnxVcAogICAgICAgIFNvcnRCeSAgPT4gJ0FnZScsICAgIyBPd25lcnxSZXNwb25zaWJsZXxDdXN0b21lcklEfFN0YXRlfFRpY2tldE51bWJlcnxRdWV1ZXxQcmlvcml0eXxBZ2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgVHlwZXxMb2NrfFRpdGxlfFNlcnZpY2V8U0xBfFBlbmRpbmdUaW1lfEVzY2FsYXRpb25UaW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEVzY2FsYXRpb25VcGRhdGVUaW1lfEVzY2FsYXRpb25SZXNwb25zZVRpbWV8RXNjYWxhdGlvblNvbHV0aW9uVGltZQogICAgKTsKCiAgICAjIGEgcmVzdWx0IGNvdWxkIGJlCgogICAgQFJlc3VsdCA9ICgKICAgICAgICB7CiAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAiVG9kYXkiLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHMgICAgICAgICAgICAgICAgPT4gMiwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzV2l0aE5ld01lc3NhZ2VzID0+IDAsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAiVG9tb3Jyb3ciLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHMgICAgICAgICAgICAgICAgPT4gMiwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzV2l0aE5ld01lc3NhZ2VzID0+IDAsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAiTmV4dFdlZWsiLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHMgICAgICAgICAgICAgICAgPT4gMiwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzV2l0aE5ld01lc3NhZ2VzID0+IDAKICAgICAgICB9LAogICAgKTsKCiAgICBteSBAUmVzdWx0ID0gJGlQaG9uZU9iamVjdC0+RXNjYWxhdGlvblZpZXcoCiAgICAgICAgVXNlcklEICA9PiAxLAogICAgICAgIEZpbHRlciAgPT4gIlRvZGF5IiwKCiAgICAgICAgI0xpbWl0IChvcHRpb25hbCkgc2V0IHRvIDEwMCBieSBkZWZhdWx0LCBpZiBub3Qgc3BlY2lmaWVkCiAgICAgICAgTGltaXQgICA9PiA1MCwKCiAgICAgICAgIyBPcmRlckJ5IGFuZCBTb3J0QnkgKG9wdGlvbmFsKQogICAgICAgIE9yZGVyQnkgPT4gJ0Rvd24nLCAgIyBEb3dufFVwCiAgICAgICAgU29ydEJ5ICA9PiAnQWdlJywgICAjIE93bmVyfFJlc3BvbnNpYmxlfEN1c3RvbWVySUR8U3RhdGV8VGlja2V0TnVtYmVyfFF1ZXVlfFByaW9yaXR5fEFnZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUeXBlfExvY2t8VGl0bGV8U2VydmljZXxTTEF8UGVuZGluZ1RpbWV8RXNjYWxhdGlvblRpbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgRXNjYWxhdGlvblVwZGF0ZVRpbWV8RXNjYWxhdGlvblJlc3BvbnNlVGltZXxFc2NhbGF0aW9uU29sdXRpb25UaW1lCiAgICApOwoKICAgICNhIHJlc3VsdCBjb3VsZCBiZQoKICAgIEBSZXN1bHQgPSAoCiAgICAgICAgewogICAgICAgICAgICBBZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxNTk2LAogICAgICAgICAgICBBcnRpY2xlSUQgICAgICAgICAgICAgICAgICAgICAgICA9PiA5MjMsCiAgICAgICAgICAgIEFydGljbGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJwaG9uZSIsCiAgICAgICAgICAgIEJvZHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJUZXN0aW5nIGZvciBlc2NhbGF0aW9uIiwKICAgICAgICAgICAgQ2hhcnNldCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gInV0Zi04IiwKICAgICAgICAgICAgQ29udGVudENoYXJzZXQgICAgICAgICAgICAgICAgICAgPT4gInV0Zi04IiwKICAgICAgICAgICAgQ29udGVudFR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gInRleHQvcGxhaW47IiwKICAgICAgICAgICAgY2hhcnNldCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gInV0Zi04IiwKICAgICAgICAgICAgQ3JlYXRlZCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIjIwMTAtMDYtMjMgMTE6NDY6MTUiLAogICAgICAgICAgICBDcmVhdGVkQnkgICAgICAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZSAgICAgICAgICAgICAgICA9PiAtMTI5NiwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVEZXN0aW5hdGlvbkRhdGUgPT4gIjIwMTAtMDYtMjMgMTE6NTE6MTQiLAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZURlc3RpbmF0aW9uVGltZSA9PiAxMjc3MzExODc0LAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZUVzY2FsYXRpb24gICAgICA9PiAxLAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZVdvcmtpbmdUaW1lICAgICA9PiAtMTI2MCwKICAgICAgICAgICAgRnJvbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gImN1c3RvbWVyQG90cnMub3JnIiwKICAgICAgICAgICAgSW5jb21pbmdUaW1lICAgICAgICAgICAgICAgICAgICAgPT4gMTI3NzMxMTU3NSwKICAgICAgICAgICAgTG9jayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gInVubG9jayIsCiAgICAgICAgICAgIE1pbWVUeXBlICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ0ZXh0L3BsYWluIiwKICAgICAgICAgICAgT3duZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkFnZW50MSIsCiAgICAgICAgICAgIFByaW9yaXR5ICAgICAgICAgICAgICAgICAgICAgICAgID0+ICIzIG5vcm1hbCIsCiAgICAgICAgICAgIFByaW9yaXR5Q29sb3IgICAgICAgICAgICAgICAgICAgID0+ICIjY2RjZGNkIiwKICAgICAgICAgICAgUXVldWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkp1bmsiLAogICAgICAgICAgICBSZXNwb25zaWJsZSAgICAgICAgICAgICAgICAgICAgICA9PiAiQWdlbnQxIiwKICAgICAgICAgICAgU2VuZGVyVHlwZSAgICAgICAgICAgICAgICAgICAgICAgPT4gImN1c3RvbWVyIiwKICAgICAgICAgICAgU29sdXRpb25UaW1lICAgICAgICAgICAgICAgICAgICAgPT4gLTEyOTYsCiAgICAgICAgICAgIFNvbHV0aW9uVGltZURlc3RpbmF0aW9uRGF0ZSAgICAgID0+ICIyMDEwLTA2LTIzIDExOjUxOjE0IiwKICAgICAgICAgICAgU29sdXRpb25UaW1lRGVzdGluYXRpb25UaW1lICAgICAgPT4gMTI3NzMxMTg3NCwKICAgICAgICAgICAgU29sdXRpb25UaW1lRXNjYWxhdGlvbiAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgU29sdXRpb25UaW1lV29ya2luZ1RpbWUgICAgICAgICAgPT4gLTEyNjAsCiAgICAgICAgICAgIFN0YXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJvcGVuIiwKICAgICAgICAgICAgU3ViamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkVzY2FsYXRpb24gVGVzdCIsCiAgICAgICAgICAgIFRpY2tldElEICAgICAgICAgICAgICAgICAgICAgICAgID0+IDE3NiwKICAgICAgICAgICAgVGlja2V0TnVtYmVyICAgICAgICAgICAgICAgICAgICAgPT4gMjAxMDA2MjMxMDAwMDAxNSwKICAgICAgICAgICAgVGl0bGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkVzY2FsYXRpb24gVGVzdCIsCiAgICAgICAgICAgIFRvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJKdW5rIiwKICAgICAgICAgICAgVHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkluY2lkZW50IiwKICAgICAgICAgICAgVW50aWxUaW1lICAgICAgICAgICAgICAgICAgICAgICAgPT4gMCwKICAgICAgICAgICAgVXBkYXRlVGltZSAgICAgICAgICAgICAgICAgICAgICAgPT4gLTEyOTUsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVEZXN0aW5hdGlvbkRhdGUgICAgICAgID0+ICIyMDEwLTA2LTIzIDExOjUxOjE1IiwKICAgICAgICAgICAgVXBkYXRlVGltZURlc3RpbmF0aW9uVGltZSAgICAgICAgPT4gMTI3NzMxMTg3NSwKICAgICAgICAgICAgVXBkYXRlVGltZUVzY2FsYXRpb24gICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgVXBkYXRlVGltZVdvcmtpbmdUaW1lICAgICAgICAgICAgPT4gLTEyNjAsCiAgICAgICAgICAgIFNlZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgfSwKICAgICk7Cgo9Y3V0CgpzdWIgRXNjYWxhdGlvblZpZXcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAoICRTZWMsICRNaW4sICRIb3VyLCAkRGF5LCAkTW9udGgsICRZZWFyICkgPSAkU2VsZi0+e1RpbWVPYmplY3R9LT5TeXN0ZW1UaW1lMkRhdGUoCiAgICAgICAgU3lzdGVtVGltZSA9PiAkU2VsZi0+e1RpbWVPYmplY3R9LT5TeXN0ZW1UaW1lKCkgKyA2MCAqIDYwICogMjQgKiA3LAogICAgKTsKICAgIG15ICRUaW1lU3RhbXBOZXh0V2VlayA9ICIkWWVhci0kTW9udGgtJERheSAyMzo1OTo1OSI7CgogICAgKCAkU2VjLCAkTWluLCAkSG91ciwgJERheSwgJE1vbnRoLCAkWWVhciApID0gJFNlbGYtPntUaW1lT2JqZWN0fS0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgIFN5c3RlbVRpbWUgPT4gJFNlbGYtPntUaW1lT2JqZWN0fS0+U3lzdGVtVGltZSgpICsgNjAgKiA2MCAqIDI0LAogICAgKTsKICAgIG15ICRUaW1lU3RhbXBUb21vcnJvdyA9ICIkWWVhci0kTW9udGgtJERheSAyMzo1OTo1OSI7CgogICAgKCAkU2VjLCAkTWluLCAkSG91ciwgJERheSwgJE1vbnRoLCAkWWVhciApID0gJFNlbGYtPntUaW1lT2JqZWN0fS0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgIFN5c3RlbVRpbWUgPT4gJFNlbGYtPntUaW1lT2JqZWN0fS0+U3lzdGVtVGltZSgpLAogICAgKTsKICAgIG15ICRUaW1lU3RhbXBUb2RheSA9ICIkWWVhci0kTW9udGgtJERheSAyMzo1OTo1OSI7CgogICAgIyBkZWZpbmUgZmlsdGVyCiAgICBteSAlRmlsdGVycyA9ICgKICAgICAgICBUb2RheSA9PiB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnVG9kYXknLAogICAgICAgICAgICBQcmlvICAgPT4gMTAwMCwKICAgICAgICAgICAgU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIFRpY2tldEVzY2FsYXRpb25UaW1lT2xkZXJEYXRlID0+ICRUaW1lU3RhbXBUb2RheSwKICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICAgICAgICAgICAgICAgICAgID0+ICRQYXJhbXtPcmRlckJ5fSwKICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgICAgICAgICAgICAgICAgICAgID0+ICRQYXJhbXtTb3J0Qnl9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICBQZXJtaXNzaW9uICAgICAgICAgICAgICAgICAgICA9PiAncm8nLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgVG9tb3Jyb3cgPT4gewogICAgICAgICAgICBOYW1lICAgPT4gJ1RvbW9ycm93JywKICAgICAgICAgICAgUHJpbyAgID0+IDIwMDAsCiAgICAgICAgICAgIFNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBUaWNrZXRFc2NhbGF0aW9uVGltZU9sZGVyRGF0ZSA9PiAkVGltZVN0YW1wVG9tb3Jyb3csCiAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgICAgICAgICAgICAgICA9PiAkUGFyYW17T3JkZXJCeX0sCiAgICAgICAgICAgICAgICBTb3J0QnkgICAgICAgICAgICAgICAgICAgICAgICA9PiAkUGFyYW17U29ydEJ5fSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgUGVybWlzc2lvbiAgICAgICAgICAgICAgICAgICAgPT4gJ3JvJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIE5leHRXZWVrID0+IHsKICAgICAgICAgICAgTmFtZSAgID0+ICdOZXh0IFdlZWsnLAogICAgICAgICAgICBQcmlvICAgPT4gMzAwMCwKICAgICAgICAgICAgU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIFRpY2tldEVzY2FsYXRpb25UaW1lT2xkZXJEYXRlID0+ICRUaW1lU3RhbXBOZXh0V2VlaywKICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICAgICAgICAgICAgICAgICAgID0+ICRQYXJhbXtPcmRlckJ5fSwKICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgICAgICAgICAgICAgICAgICAgID0+ICRQYXJhbXtTb3J0Qnl9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICBQZXJtaXNzaW9uICAgICAgICAgICAgICAgICAgICA9PiAncm8nLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICApOwoKICAgICMgZG8gc2hvd24gdGlja2V0cyBsb29rdXAKICAgIG15ICRMaW1pdCA9ICRQYXJhbXtMaW1pdH0gfHwgMTAwOwogICAgaWYgKCAkUGFyYW17RmlsdGVyfSApIHsKICAgICAgICBteSBAVmlld2FibGVUaWNrZXRzID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRTZWFyY2goCiAgICAgICAgICAgICV7ICRGaWx0ZXJzeyAkUGFyYW17RmlsdGVyfSB9LT57U2VhcmNofSB9LAogICAgICAgICAgICBMaW1pdCAgPT4gJExpbWl0LAogICAgICAgICAgICBSZXN1bHQgPT4gJ0FSUkFZJywKICAgICAgICApOwogICAgICAgIG15IEBMaXN0OwogICAgICAgIGZvciBteSAkVGlja2V0SUQgKEBWaWV3YWJsZVRpY2tldHMpIHsKICAgICAgICAgICAgbmV4dCBpZiAhJFRpY2tldElEOwogICAgICAgICAgICBteSAlQXJ0aWNsZSA9ICRTZWxmLT5UaWNrZXRMaXN0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbmV4dCBpZiAhJUFydGljbGU7CiAgICAgICAgICAgIHB1c2ggQExpc3QsIFwlQXJ0aWNsZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIEBMaXN0OwogICAgfQoKICAgICMgZG8gbmF2IGJhciBsb29rdXAKICAgIG15IEBTdGF0ZXM7CiAgICBmb3IgbXkgJEZpbHRlciAoIHNvcnQga2V5cyAlRmlsdGVycyApIHsKICAgICAgICBteSAkQ291bnQgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgJXsgJEZpbHRlcnN7JEZpbHRlcn0tPntTZWFyY2h9IH0sCiAgICAgICAgICAgIFJlc3VsdCA9PiAnQ09VTlQnLAogICAgICAgICk7CiAgICAgICAgbXkgJENvdW50TmV3ID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRTZWFyY2goCiAgICAgICAgICAgICV7ICRGaWx0ZXJzeyRGaWx0ZXJ9LT57U2VhcmNofSB9LAogICAgICAgICAgICBSZXN1bHQgICAgID0+ICdDT1VOVCcsCiAgICAgICAgICAgIFRpY2tldEZsYWcgPT4gewogICAgICAgICAgICAgICAgU2VlbiA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICBUaWNrZXRGbGFnVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICAgICAgJENvdW50TmV3ID0gJENvdW50IC0gJENvdW50TmV3OwoKICAgICAgICBwdXNoIEBTdGF0ZXMsIHsKICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICRGaWx0ZXIsCiAgICAgICAgICAgIEZpbHRlck5hbWUgICAgICAgICAgICAgICAgICAgICA9PiAkRmlsdGVyc3skRmlsdGVyfS0+e05hbWV9LAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHMgICAgICAgICAgICAgICAgPT4gJENvdW50LAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHNXaXRoTmV3TWVzc2FnZXMgPT4gJENvdW50TmV3LAogICAgICAgIH07CiAgICB9CiAgICByZXR1cm4gQFN0YXRlczsKfQoKPWl0ZW0gU3RhdHVzVmlldygpCgpHZXQgdGhlIG51bWJlciBvZiB0aWNrZXRzIGJ5IHN0YXR1cyAob3BlbiBvciBjbG9zZWQpIG9yIGxhc3QgY3VzdG9tZXIgYXJ0aWNsZSBpbmZvcm1hdGlvbiBmcm9tIGVhY2gKdGlja2V0IGluIGVhY2ggc3RhdHVzIHdpdGhpbiBhbiBzcGVjaWZpZWQgZmlsdGVyLCBpZiB0aGUgIkZpbHRlciIgYXJndW1lbnQgaXMgc3BlY2lmaWVkLgoKICAgIG15IEBSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5TdGF0dXNWaWV3KAogICAgICAgIFVzZXJJRCAgPT4gMSwKCiAgICAgICAgIyBPcmRlckJ5IGFuZCBTb3J0QnkgKG9wdGlvbmFsKQogICAgICAgIE9yZGVyQnkgPT4gJ0Rvd24nLCAgIyBEb3dufFVwCiAgICAgICAgU29ydEJ5ICA9PiAnQWdlJywgICAjIE93bmVyfFJlc3BvbnNpYmxlfEN1c3RvbWVySUR8U3RhdGV8VGlja2V0TnVtYmVyfFF1ZXVlfFByaW9yaXR5fEFnZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUeXBlfExvY2t8VGl0bGV8U2VydmljZXxTTEF8UGVuZGluZ1RpbWV8RXNjYWxhdGlvblRpbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgRXNjYWxhdGlvblVwZGF0ZVRpbWV8RXNjYWxhdGlvblJlc3BvbnNlVGltZXxFc2NhbGF0aW9uU29sdXRpb25UaW1lCiAgICApOwoKICAgICNhIHJlc3VsdCBjb3VsZCBiZQoKICAgIEBSZXN1bHQgPSAoCiAgICAgICAgewogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gIk9wZW4iLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHMgICAgICAgICAgICAgICAgPT4gMiwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzV2l0aE5ld01lc3NhZ2VzID0+IDAsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAiQ2xvc2VkIiwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAwLAogICAgICAgIH0sCiAgICApOwoKICAgIG15IEBSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5TdGF0dXNWaWV3KAogICAgICAgIFVzZXJJRCAgPT4gMSwKICAgICAgICBGaWx0ZXIgID0+ICJPcGVuIiwKCiAgICAgICAgI0xpbWl0IChvcHRpb25hbCkgc2V0IHRvIDEwMCBieSBkZWZhdWx0LCBpZiBub3Qgc3BjaWZpZWQKICAgICAgICBMaW1pdCAgID0+IDUwLAoKICAgICAgICAjIE9yZGVyQnkgYW5kIFNvcnRCeSAob3B0aW9uYWwpCiAgICAgICAgT3JkZXJCeSA9PiAnRG93bicsICAjIERvd258VXAKICAgICAgICBTb3J0QnkgID0+ICdBZ2UnLCAgICMgT3duZXJ8UmVzcG9uc2libGV8Q3VzdG9tZXJJRHxTdGF0ZXxUaWNrZXROdW1iZXJ8UXVldWV8UHJpb3JpdHl8QWdlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFR5cGV8TG9ja3xUaXRsZXxTZXJ2aWNlfFNMQXxQZW5kaW5nVGltZXxFc2NhbGF0aW9uVGltZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBFc2NhbGF0aW9uVXBkYXRlVGltZXxFc2NhbGF0aW9uUmVzcG9uc2VUaW1lfEVzY2FsYXRpb25Tb2x1dGlvblRpbWUKICAgICk7CgogICAgI2EgcmVzdWx0IGNvdWxkIGJlCgogICAgQFJlc3VsdCA9ICgKICAgICAgICB7CiAgICAgICAgICAgICBBZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxNTk2LAogICAgICAgICAgICBBcnRpY2xlSUQgICAgICAgICAgICAgICAgICAgICAgICA9PiA5MjMsCiAgICAgICAgICAgIEFydGljbGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJwaG9uZSIsCiAgICAgICAgICAgIEJvZHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJUaGlzIGlzIGFuIG9wZW4gdGlja2V0IiwKICAgICAgICAgICAgQ2hhcnNldCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gInV0Zi04IiwKICAgICAgICAgICAgQ29udGVudENoYXJzZXQgICAgICAgICAgICAgICAgICAgPT4gInV0Zi04IiwKICAgICAgICAgICAgQ29udGVudFR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gInRleHQvcGxhaW47IiwKICAgICAgICAgICAgY2hhcnNldCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gInV0Zi04IiwKICAgICAgICAgICAgQ3JlYXRlZCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIjIwMTAtMDYtMjMgMTE6NDY6MTUiLAogICAgICAgICAgICBDcmVhdGVkQnkgICAgICAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZSAgICAgICAgICAgICAgICA9PiAtMTI5NiwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVEZXN0aW5hdGlvbkRhdGUgPT4gIjIwMTAtMDYtMjMgMTE6NTE6MTQiLAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZURlc3RpbmF0aW9uVGltZSA9PiAxMjc3MzExODc0LAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZUVzY2FsYXRpb24gICAgICA9PiAxLAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZVdvcmtpbmdUaW1lICAgICA9PiAtMTI2MCwKICAgICAgICAgICAgRnJvbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gImN1c3RvbWVyQG90cnMub3JnIiwKICAgICAgICAgICAgSW5jb21pbmdUaW1lICAgICAgICAgICAgICAgICAgICAgPT4gMTI3NzMxMTU3NSwKICAgICAgICAgICAgTG9jayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gInVubG9jayIsCiAgICAgICAgICAgIE1pbWVUeXBlICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ0ZXh0L3BsYWluIiwKICAgICAgICAgICAgT3duZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkFnZW50MSIsCiAgICAgICAgICAgIFByaW9yaXR5ICAgICAgICAgICAgICAgICAgICAgICAgID0+ICIzIG5vcm1hbCIsCiAgICAgICAgICAgIFByaW9yaXR5Q29sb3IgICAgICAgICAgICAgICAgICAgID0+ICIjY2RjZGNkIiwKICAgICAgICAgICAgUXVldWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkp1bmsiLAogICAgICAgICAgICBSZXNwb25zaWJsZSAgICAgICAgICAgICAgICAgICAgICA9PiAiQWdlbnQxIiwKICAgICAgICAgICAgU2VuZGVyVHlwZSAgICAgICAgICAgICAgICAgICAgICAgPT4gImN1c3RvbWVyIiwKICAgICAgICAgICAgU29sdXRpb25UaW1lICAgICAgICAgICAgICAgICAgICAgPT4gLTEyOTYsCiAgICAgICAgICAgIFNvbHV0aW9uVGltZURlc3RpbmF0aW9uRGF0ZSAgICAgID0+ICIyMDEwLTA2LTIzIDExOjUxOjE0IiwKICAgICAgICAgICAgU29sdXRpb25UaW1lRGVzdGluYXRpb25UaW1lICAgICAgPT4gMTI3NzMxMTg3NCwKICAgICAgICAgICAgU29sdXRpb25UaW1lRXNjYWxhdGlvbiAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgU29sdXRpb25UaW1lV29ya2luZ1RpbWUgICAgICAgICAgPT4gLTEyNjAsCiAgICAgICAgICAgIFN0YXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJvcGVuIiwKICAgICAgICAgICAgU3ViamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIk9wZW4gVGlja2V0IFRlc3QiLAogICAgICAgICAgICBUaWNrZXRJRCAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxNzYsCiAgICAgICAgICAgIFRpY2tldE51bWJlciAgICAgICAgICAgICAgICAgICAgID0+IDIwMTAwNjIzMTAwMDAwMTUsCiAgICAgICAgICAgIFRpdGxlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJPcGVuIFRpY2tldCBUZXN0IiwKICAgICAgICAgICAgVG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkp1bmsiLAogICAgICAgICAgICBUeXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSW5jaWRlbnQiLAogICAgICAgICAgICBVbnRpbFRpbWUgICAgICAgICAgICAgICAgICAgICAgICA9PiAwLAogICAgICAgICAgICBVcGRhdGVUaW1lICAgICAgICAgICAgICAgICAgICAgICA9PiAtMTI5NSwKICAgICAgICAgICAgVXBkYXRlVGltZURlc3RpbmF0aW9uRGF0ZSAgICAgICAgPT4gIjIwMTAtMDYtMjMgMTE6NTE6MTUiLAogICAgICAgICAgICBVcGRhdGVUaW1lRGVzdGluYXRpb25UaW1lICAgICAgICA9PiAxMjc3MzExODc1LAogICAgICAgICAgICBVcGRhdGVUaW1lRXNjYWxhdGlvbiAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBVcGRhdGVUaW1lV29ya2luZ1RpbWUgICAgICAgICAgICA9PiAtMTI2MCwKICAgICAgICAgICAgU2VlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICB9LAogICAgKTsKCj1jdXQKCnN1YiBTdGF0dXNWaWV3IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBkZWZpbmUgZmlsdGVyCiAgICBteSAlRmlsdGVycyA9ICgKICAgICAgICBPcGVuID0+IHsKICAgICAgICAgICAgTmFtZSAgID0+ICdPcGVuJywKICAgICAgICAgICAgUHJpbyAgID0+IDEwMDAsCiAgICAgICAgICAgIFNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBTdGF0ZVR5cGUgID0+ICdPcGVuJywKICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgPT4gJFBhcmFte09yZGVyQnl9LAogICAgICAgICAgICAgICAgU29ydEJ5ICAgICA9PiAkUGFyYW17U29ydEJ5fSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICBQZXJtaXNzaW9uID0+ICdybycsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBDbG9zZWQgPT4gewogICAgICAgICAgICBOYW1lICAgPT4gJ0Nsb3NlZCcsCiAgICAgICAgICAgIFByaW8gICA9PiAxMDAxLAogICAgICAgICAgICBTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgU3RhdGVUeXBlICA9PiAnQ2xvc2VkJywKICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgPT4gJFBhcmFte09yZGVyQnl9LAogICAgICAgICAgICAgICAgU29ydEJ5ICAgICA9PiAkUGFyYW17U29ydEJ5fSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICBQZXJtaXNzaW9uID0+ICdybycsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICk7CgogICAgIyBkbyBzaG93biB0aWNrZXRzIGxvb2t1cAogICAgbXkgJExpbWl0ID0gJFBhcmFte0xpbWl0fSB8fCAxMDA7CiAgICBpZiAoICRQYXJhbXtGaWx0ZXJ9ICkgewogICAgICAgIG15IEBWaWV3YWJsZVRpY2tldHMgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgJXsgJEZpbHRlcnN7ICRQYXJhbXtGaWx0ZXJ9IH0tPntTZWFyY2h9IH0sCiAgICAgICAgICAgIExpbWl0ICA9PiAkTGltaXQsCiAgICAgICAgICAgIFJlc3VsdCA9PiAnQVJSQVknLAogICAgICAgICk7CiAgICAgICAgbXkgQExpc3Q7CiAgICAgICAgZm9yIG15ICRUaWNrZXRJRCAoQFZpZXdhYmxlVGlja2V0cykgewogICAgICAgICAgICBuZXh0IGlmICEkVGlja2V0SUQ7CiAgICAgICAgICAgIG15ICVBcnRpY2xlID0gJFNlbGYtPlRpY2tldExpc3QoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfQogICAgICAgICAgICApOwogICAgICAgICAgICBuZXh0IGlmICElQXJ0aWNsZTsKICAgICAgICAgICAgcHVzaCBATGlzdCwgXCVBcnRpY2xlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gQExpc3Q7CiAgICB9CgogICAgIyBkbyBuYXYgYmFyIGxvb2t1cAogICAgbXkgQFN0YXRlczsKICAgIGZvciBteSAkRmlsdGVyICggc29ydCBrZXlzICVGaWx0ZXJzICkgewogICAgICAgIG15ICRDb3VudCA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICAleyAkRmlsdGVyc3skRmlsdGVyfS0+e1NlYXJjaH0gfSwKICAgICAgICAgICAgUmVzdWx0ID0+ICdDT1VOVCcsCiAgICAgICAgKTsKICAgICAgICBteSAkQ291bnROZXcgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgJXsgJEZpbHRlcnN7JEZpbHRlcn0tPntTZWFyY2h9IH0sCiAgICAgICAgICAgIFJlc3VsdCAgICAgPT4gJ0NPVU5UJywKICAgICAgICAgICAgVGlja2V0RmxhZyA9PiB7CiAgICAgICAgICAgICAgICBTZWVuID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFRpY2tldEZsYWdVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgICAgICAkQ291bnROZXcgPSAkQ291bnQgLSAkQ291bnROZXc7CgogICAgICAgIHB1c2ggQFN0YXRlcywgewogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gJEZpbHRlciwKICAgICAgICAgICAgRmlsdGVyTmFtZSAgICAgICAgICAgICAgICAgICAgID0+ICRGaWx0ZXJzeyRGaWx0ZXJ9LT57TmFtZX0sCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAkQ291bnQsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAkQ291bnROZXcsCiAgICAgICAgfTsKICAgIH0KICAgIHJldHVybiBAU3RhdGVzOwp9Cgo9aXRlbSBMb2NrZWRWaWV3KCkKCkdldCB0aGUgbnVtYmVyIG9mIGxvY2tlZCB0aWNrZXRzIGJ5IHN0YXR1cyB0eXBlIChhbGwsIG5ldywgcmVtaW5kZXIsIHJlbWluZGVyIHJlYWNoZWQgKSBvciBsYXN0CmN1c3RvbWVyIGFydGljbGUgaW5mb3JtYXRpb24gZnJvbSBlYWNoIGxvY2tlZCB0aWNrZXQgaW4gZWFjaCBzdGF0dXMgd2l0aGluIGFuIHNwZWNpZmllZCBmaWx0ZXIsIGlmCnRoZSAiRmlsdGVyIiBhcmd1bWVudCBpcyBzcGVjaWZpZWQuCgogICAgbXkgQFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPkxvY2tlZFZpZXcoCiAgICAgICAgVXNlcklEICA9PiAxLAoKICAgICAgICAjIE9yZGVyQnkgYW5kIFNvcnRCeSAob3B0aW9uYWwpCiAgICAgICAgT3JkZXJCeSA9PiAnRG93bicsICAjIERvd258VXAKICAgICAgICBTb3J0QnkgID0+ICdBZ2UnLCAgICMgT3duZXJ8UmVzcG9uc2libGV8Q3VzdG9tZXJJRHxTdGF0ZXxUaWNrZXROdW1iZXJ8UXVldWV8UHJpb3JpdHl8QWdlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFR5cGV8TG9ja3xUaXRsZXxTZXJ2aWNlfFNMQXxQZW5kaW5nVGltZXxFc2NhbGF0aW9uVGltZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBFc2NhbGF0aW9uVXBkYXRlVGltZXxFc2NhbGF0aW9uUmVzcG9uc2VUaW1lfEVzY2FsYXRpb25Tb2x1dGlvblRpbWUKICAgICk7CgogICAgI2EgcmVzdWx0IGNvdWxkIGJlCgogICAgQFJlc3VsdCA9ICgKICAgICAgICB7CiAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAiQWxsIiwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+IDIsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAwLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gIk5ldywKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAwLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gIlJlbWluZGVyLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHMgICAgICAgICAgICAgICAgPT4gMCwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzV2l0aE5ld01lc3NhZ2VzID0+IDAsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAiUmVtaW5kZXJSZWFjaGVkLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHMgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzV2l0aE5ld01lc3NhZ2VzID0+IDAsCiAgICAgICAgfSwKICAgICk7CgogICAgbXkgQFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPkxvY2tlZFZpZXcoCiAgICAgICAgVXNlcklEICA9PiAxLAogICAgICAgIEZpbHRlciAgPT4gIk5ldyIsCgogICAgICAgICNMaW1pdCAob3B0aW9uYWwpIHNldCB0byAxMDAgYnkgZGVmYXVsdCwgaWYgbm90IHNwY2lmaWVkCiAgICAgICAgTGltaXQgICA9PiA1MCwKCiAgICAgICAgIyBPcmRlckJ5IGFuZCBTb3J0QnkgKG9wdGlvbmFsKQogICAgICAgIE9yZGVyQnkgPT4gJ0Rvd24nLCAgIyBEb3dufFVwCiAgICAgICAgU29ydEJ5ICA9PiAnQWdlJywgICAjIE93bmVyfFJlc3BvbnNpYmxlfEN1c3RvbWVySUR8U3RhdGV8VGlja2V0TnVtYmVyfFF1ZXVlfFByaW9yaXR5fEFnZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUeXBlfExvY2t8VGl0bGV8U2VydmljZXxTTEF8UGVuZGluZ1RpbWV8RXNjYWxhdGlvblRpbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgRXNjYWxhdGlvblVwZGF0ZVRpbWV8RXNjYWxhdGlvblJlc3BvbnNlVGltZXxFc2NhbGF0aW9uU29sdXRpb25UaW1lCiAgICApOwoKICAgICNhIHJlc3VsdCBjb3VsZCBiZQoKICAgIEBSZXN1bHQgPSAoCiAgICAgICAgewogICAgICAgICAgICBBZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxNTk2LAogICAgICAgICAgICBBcnRpY2xlSUQgICAgICAgICAgICAgICAgICAgICAgICA9PiA5MjMsCiAgICAgICAgICAgIEFydGljbGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJwaG9uZSIsCiAgICAgICAgICAgIEJvZHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJUaGlzIGlzIGFuIG9wZW4gdGlja2V0IiwKICAgICAgICAgICAgQ2hhcnNldCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gInV0Zi04IiwKICAgICAgICAgICAgQ29udGVudENoYXJzZXQgICAgICAgICAgICAgICAgICAgPT4gInV0Zi04IiwKICAgICAgICAgICAgQ29udGVudFR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gInRleHQvcGxhaW47IiwKICAgICAgICAgICAgY2hhcnNldCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gInV0Zi04IiwKICAgICAgICAgICAgQ3JlYXRlZCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIjIwMTAtMDYtMjMgMTE6NDY6MTUiLAogICAgICAgICAgICBDcmVhdGVkQnkgICAgICAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZSAgICAgICAgICAgICAgICA9PiAtMTI5NiwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVEZXN0aW5hdGlvbkRhdGUgPT4gIjIwMTAtMDYtMjMgMTE6NTE6MTQiLAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZURlc3RpbmF0aW9uVGltZSA9PiAxMjc3MzExODc0LAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZUVzY2FsYXRpb24gICAgICA9PiAxLAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZVdvcmtpbmdUaW1lICAgICA9PiAtMTI2MCwKICAgICAgICAgICAgRnJvbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gImN1c3RvbWVyQG90cnMub3JnIiwKICAgICAgICAgICAgSW5jb21pbmdUaW1lICAgICAgICAgICAgICAgICAgICAgPT4gMTI3NzMxMTU3NSwKICAgICAgICAgICAgTG9jayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gImxvY2siLAogICAgICAgICAgICBNaW1lVHlwZSAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidGV4dC9wbGFpbiIsCiAgICAgICAgICAgIE93bmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJBZ2VudDEiLAogICAgICAgICAgICBQcmlvcml0eSAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiMyBub3JtYWwiLAogICAgICAgICAgICBQcmlvcml0eUNvbG9yICAgICAgICAgICAgICAgICAgICA9PiAiI2NkY2RjZCIsCiAgICAgICAgICAgIFF1ZXVlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJKdW5rIiwKICAgICAgICAgICAgUmVzcG9uc2libGUgICAgICAgICAgICAgICAgICAgICAgPT4gIkFnZW50MSIsCiAgICAgICAgICAgIFNlbmRlclR5cGUgICAgICAgICAgICAgICAgICAgICAgID0+ICJjdXN0b21lciIsCiAgICAgICAgICAgIFNvbHV0aW9uVGltZSAgICAgICAgICAgICAgICAgICAgID0+IC0xMjk2LAogICAgICAgICAgICBTb2x1dGlvblRpbWVEZXN0aW5hdGlvbkRhdGUgICAgICA9PiAiMjAxMC0wNi0yMyAxMTo1MToxNCIsCiAgICAgICAgICAgIFNvbHV0aW9uVGltZURlc3RpbmF0aW9uVGltZSAgICAgID0+IDEyNzczMTE4NzQsCiAgICAgICAgICAgIFNvbHV0aW9uVGltZUVzY2FsYXRpb24gICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIFNvbHV0aW9uVGltZVdvcmtpbmdUaW1lICAgICAgICAgID0+IC0xMjYwLAogICAgICAgICAgICBTdGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAib3BlbiIsCiAgICAgICAgICAgIFN1YmplY3QgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJPcGVuIFRpY2tldCBUZXN0IiwKICAgICAgICAgICAgVGlja2V0SUQgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMTc2LAogICAgICAgICAgICBUaWNrZXROdW1iZXIgICAgICAgICAgICAgICAgICAgICA9PiAyMDEwMDYyMzEwMDAwMDE1LAogICAgICAgICAgICBUaXRsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiT3BlbiBUaWNrZXQgVGVzdCIsCiAgICAgICAgICAgIFRvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJKdW5rIiwKICAgICAgICAgICAgVHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkluY2lkZW50IiwKICAgICAgICAgICAgVW50aWxUaW1lICAgICAgICAgICAgICAgICAgICAgICAgPT4gMCwKICAgICAgICAgICAgVXBkYXRlVGltZSAgICAgICAgICAgICAgICAgICAgICAgPT4gLTEyOTUsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVEZXN0aW5hdGlvbkRhdGUgICAgICAgID0+ICIyMDEwLTA2LTIzIDExOjUxOjE1IiwKICAgICAgICAgICAgVXBkYXRlVGltZURlc3RpbmF0aW9uVGltZSAgICAgICAgPT4gMTI3NzMxMTg3NSwKICAgICAgICAgICAgVXBkYXRlVGltZUVzY2FsYXRpb24gICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgVXBkYXRlVGltZVdvcmtpbmdUaW1lICAgICAgICAgICAgPT4gLTEyNjAsCiAgICAgICAgICAgIFNlZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsICMgb25seSBvbiBvdHJzIDMueCBmcmFtZXdvcmsKICAgICAgICB9LAogICAgKTsKCj1jdXQKCnN1YiBMb2NrZWRWaWV3IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBkZWZpbmUgZmlsdGVyCiAgICBteSAlRmlsdGVycyA9ICgKICAgICAgICBBbGwgPT4gewogICAgICAgICAgICBOYW1lICAgPT4gJ0FsbCcsCiAgICAgICAgICAgIFByaW8gICA9PiAxMDAwLAogICAgICAgICAgICBTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgTG9ja3MgICAgICA9PiBbJ2xvY2snXSwKICAgICAgICAgICAgICAgIE93bmVySURzICAgPT4gWyAkUGFyYW17VXNlcklEfSBdLAogICAgICAgICAgICAgICAgT3JkZXJCeSAgICA9PiAkUGFyYW17T3JkZXJCeX0sCiAgICAgICAgICAgICAgICBTb3J0QnkgICAgID0+ICRQYXJhbXtTb3J0Qnl9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGVybWlzc2lvbiA9PiAncm8nLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgTmV3ID0+IHsKICAgICAgICAgICAgTmFtZSAgID0+ICdOZXcgQXJ0aWNsZScsCiAgICAgICAgICAgIFByaW8gICA9PiAxMDAxLAogICAgICAgICAgICBTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgTG9ja3MgICAgICA9PiBbJ2xvY2snXSwKICAgICAgICAgICAgICAgIE93bmVySURzICAgPT4gWyAkUGFyYW17VXNlcklEfSBdLAogICAgICAgICAgICAgICAgVGlja2V0RmxhZyA9PiB7CiAgICAgICAgICAgICAgICAgICAgU2VlbiA9PiAxLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIFRpY2tldEZsYWdVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgID0+ICRQYXJhbXtPcmRlckJ5fSwKICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgICAgICAgPT4gJFBhcmFte1NvcnRCeX0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQZXJtaXNzaW9uICAgICAgID0+ICdybycsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZW1pbmRlciA9PiB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnUGVuZGluZycsCiAgICAgICAgICAgIFByaW8gICA9PiAxMDAyLAogICAgICAgICAgICBTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgTG9ja3MgICAgICA9PiBbJ2xvY2snXSwKICAgICAgICAgICAgICAgIFN0YXRlVHlwZSAgPT4gWyAncGVuZGluZyByZW1pbmRlcicsICdwZW5kaW5nIGF1dG8nIF0sCiAgICAgICAgICAgICAgICBPd25lcklEcyAgID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgPT4gJFBhcmFte09yZGVyQnl9LAogICAgICAgICAgICAgICAgU29ydEJ5ICAgICA9PiAkUGFyYW17U29ydEJ5fSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gPT4gJ3JvJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlbWluZGVyUmVhY2hlZCA9PiB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnUmVtaW5kZXIgUmVhY2hlZCcsCiAgICAgICAgICAgIFByaW8gICA9PiAxMDAzLAogICAgICAgICAgICBTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgTG9ja3MgICAgICAgICAgICAgICAgICAgICAgICAgPT4gWydsb2NrJ10sCiAgICAgICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICA9PiBbJ3BlbmRpbmcgcmVtaW5kZXInXSwKICAgICAgICAgICAgICAgIFRpY2tldFBlbmRpbmdUaW1lT2xkZXJNaW51dGVzID0+IDEsCiAgICAgICAgICAgICAgICBPd25lcklEcyAgICAgICAgICAgICAgICAgICAgICA9PiBbICRQYXJhbXtVc2VySUR9IF0sCiAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgICAgICAgICAgICAgICA9PiAkUGFyYW17T3JkZXJCeX0sCiAgICAgICAgICAgICAgICBTb3J0QnkgICAgICAgICAgICAgICAgICAgICAgICA9PiAkUGFyYW17U29ydEJ5fSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQZXJtaXNzaW9uICAgICAgICAgICAgICAgICAgICA9PiAncm8nLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICApOwoKICAgICMgZG8gc2hvd24gdGlja2V0cyBsb29rdXAKICAgIG15ICRMaW1pdCA9ICRQYXJhbXtMaW1pdH0gfHwgMTAwOwogICAgaWYgKCAkUGFyYW17RmlsdGVyfSApIHsKICAgICAgICBteSBAVmlld2FibGVUaWNrZXRzID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRTZWFyY2goCiAgICAgICAgICAgICV7ICRGaWx0ZXJzeyAkUGFyYW17RmlsdGVyfSB9LT57U2VhcmNofSB9LAogICAgICAgICAgICBMaW1pdCAgPT4gJExpbWl0LAogICAgICAgICAgICBSZXN1bHQgPT4gJ0FSUkFZJywKICAgICAgICApOwogICAgICAgIG15IEBMaXN0OwogICAgICAgIGZvciBteSAkVGlja2V0SUQgKEBWaWV3YWJsZVRpY2tldHMpIHsKICAgICAgICAgICAgbmV4dCBpZiAhJFRpY2tldElEOwogICAgICAgICAgICBteSAlQXJ0aWNsZSA9ICRTZWxmLT5UaWNrZXRMaXN0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbmV4dCBpZiAhJUFydGljbGU7CiAgICAgICAgICAgIHB1c2ggQExpc3QsIFwlQXJ0aWNsZTsKICAgICAgICB9CgogICAgICAgIGlmICggIUBMaXN0ICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiVGhlcmUgYXJlIG5vIGxvY2tlZCB0aWNrZXRzIHVuZGVyICRQYXJhbXtGaWx0ZXJ9IGZpbHRlciAiCiAgICAgICAgICAgICAgICAgICAgLiAiY2F0ZWdvcnkiLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIEBMaXN0OwogICAgfQoKICAgICMgZG8gbmF2IGJhciBsb29rdXAKICAgIG15IEBTdGF0ZXM7CiAgICBmb3IgbXkgJEZpbHRlciAoIHNvcnQga2V5cyAlRmlsdGVycyApIHsKICAgICAgICBteSAkQ291bnQgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgJXsgJEZpbHRlcnN7JEZpbHRlcn0tPntTZWFyY2h9IH0sCiAgICAgICAgICAgIFJlc3VsdCA9PiAnQ09VTlQnLAogICAgICAgICk7CiAgICAgICAgbXkgJENvdW50TmV3ID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRTZWFyY2goCiAgICAgICAgICAgICV7ICRGaWx0ZXJzeyRGaWx0ZXJ9LT57U2VhcmNofSB9LAogICAgICAgICAgICBSZXN1bHQgICAgID0+ICdDT1VOVCcsCiAgICAgICAgICAgIFRpY2tldEZsYWcgPT4gewogICAgICAgICAgICAgICAgU2VlbiA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICBUaWNrZXRGbGFnVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICAgICAgJENvdW50TmV3ID0gJENvdW50IC0gJENvdW50TmV3OwoKICAgICAgICBwdXNoIEBTdGF0ZXMsIHsKICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICRGaWx0ZXIsCiAgICAgICAgICAgIEZpbHRlck5hbWUgICAgICAgICAgICAgICAgICAgICA9PiAkRmlsdGVyc3skRmlsdGVyfS0+e05hbWV9LAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHMgICAgICAgICAgICAgICAgPT4gJENvdW50LAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHNXaXRoTmV3TWVzc2FnZXMgPT4gJENvdW50TmV3LAogICAgICAgIH07CiAgICB9CiAgICByZXR1cm4gQFN0YXRlczsKfQoKPWl0ZW0gV2F0Y2hlZFZpZXcoKQoKR2V0IHRoZSBudW1iZXIgb2Ygd2F0Y2hlZCB0aWNrZXRzIGJ5IHN0YXR1cyB0eXBlIChhbGwsIG5ldywgcmVtaW5kZXIsIHJlbWluZGVyIHJlYWNoZWQgKSBvciBsYXN0CmN1c3RtZXIgYXJ0aWNsZSBpbmZvcm1hdGlvbiBmcm9tIGVhY2ggd2F0Y2hlZCB0aWNrZXQgaW4gZWFjaCBzdGF0dXMgd2l0aGluIGFuIHNwZWNpZmllZCBmaWx0ZXIsIGlmCnRoZSAiRmlsdGVyIiBhcmd1bWVudCBpcyBzcGVjaWZpZWQuCgogICAgbXkgQFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPldhdGNoZWRWaWV3KAogICAgICAgIFVzZXJJRCAgPT4gMSwKCiAgICAgICAgIyBPcmRlckJ5IGFuZCBTb3J0QnkgKG9wdGlvbmFsKQogICAgICAgIE9yZGVyQnkgPT4gJ0Rvd24nLCAgIyBEb3dufFVwCiAgICAgICAgU29ydEJ5ICA9PiAnQWdlJywgICAjIE93bmVyfFJlc3BvbnNpYmxlfEN1c3RvbWVySUR8U3RhdGV8VGlja2V0TnVtYmVyfFF1ZXVlfFByaW9yaXR5fEFnZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUeXBlfExvY2t8VGl0bGV8U2VydmljZXxTTEF8UGVuZGluZ1RpbWV8RXNjYWxhdGlvblRpbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgRXNjYWxhdGlvblVwZGF0ZVRpbWV8RXNjYWxhdGlvblJlc3BvbnNlVGltZXxFc2NhbGF0aW9uU29sdXRpb25UaW1lCiAgICApOwoKICAgICNhIHJlc3VsdCBjb3VsZCBiZQoKICAgIEBSZXN1bHQgPSAoCiAgICAgICAgewogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gIkFsbCIsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAyLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHNXaXRoTmV3TWVzc2FnZXMgPT4gMCwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJOZXcsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHNXaXRoTmV3TWVzc2FnZXMgPT4gMCwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJSZW1pbmRlciwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+IDAsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAwLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gIlJlbWluZGVyUmVhY2hlZCwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAwLAogICAgICAgIH0sCiAgICApOwoKICAgIG15IEBSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5XYXRjaGVkVmlldygKICAgICAgICBVc2VySUQgID0+IDEsCiAgICAgICAgRmlsdGVyICA9PiAiTmV3IiwKCiAgICAgICAgI0xpbWl0IChvcHRpb25hbCkgc2V0IHRvIDEwMCBieSBkZWZhdWx0LCBpZiBub3Qgc3BjaWZpZWQKICAgICAgICBMaW1pdCAgID0+IDUwLAoKICAgICAgICAjIE9yZGVyQnkgYW5kIFNvcnRCeSAob3B0aW9uYWwpCiAgICAgICAgT3JkZXJCeSA9PiAnRG93bicsICAjIERvd258VXAKICAgICAgICBTb3J0QnkgID0+ICdBZ2UnLCAgICMgT3duZXJ8UmVzcG9uc2libGV8Q3VzdG9tZXJJRHxTdGF0ZXxUaWNrZXROdW1iZXJ8UXVldWV8UHJpb3JpdHl8QWdlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFR5cGV8TG9ja3xUaXRsZXxTZXJ2aWNlfFNMQXxQZW5kaW5nVGltZXxFc2NhbGF0aW9uVGltZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBFc2NhbGF0aW9uVXBkYXRlVGltZXxFc2NhbGF0aW9uUmVzcG9uc2VUaW1lfEVzY2FsYXRpb25Tb2x1dGlvblRpbWUKICAgICk7CgogICAgI2EgcmVzdWx0IGNvdWxkIGJlCgogICAgQFJlc3VsdCA9ICgKICAgICAgICB7CiAgICAgICAgICAgIEFnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDE1OTYsCiAgICAgICAgICAgIEFydGljbGVJRCAgICAgICAgICAgICAgICAgICAgICAgID0+IDkyMywKICAgICAgICAgICAgQXJ0aWNsZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gInBob25lIiwKICAgICAgICAgICAgQm9keSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIlRoaXMgaXMgYW4gb3BlbiB0aWNrZXQiLAogICAgICAgICAgICBDaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDb250ZW50Q2hhcnNldCAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDb250ZW50VHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAidGV4dC9wbGFpbjsiLAogICAgICAgICAgICBjaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDcmVhdGVkICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiMjAxMC0wNi0yMyAxMTo0NjoxNSIsCiAgICAgICAgICAgIENyZWF0ZWRCeSAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lICAgICAgICAgICAgICAgID0+IC0xMjk2LAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZURlc3RpbmF0aW9uRGF0ZSA9PiAiMjAxMC0wNi0yMyAxMTo1MToxNCIsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRGVzdGluYXRpb25UaW1lID0+IDEyNzczMTE4NzQsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRXNjYWxhdGlvbiAgICAgID0+IDEsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lV29ya2luZ1RpbWUgICAgID0+IC0xMjYwLAogICAgICAgICAgICBGcm9tICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiY3VzdG9tZXJAb3Rycy5vcmciLAogICAgICAgICAgICBJbmNvbWluZ1RpbWUgICAgICAgICAgICAgICAgICAgICA9PiAxMjc3MzExNTc1LAogICAgICAgICAgICBMb2NrICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAibG9jayIsCiAgICAgICAgICAgIE1pbWVUeXBlICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ0ZXh0L3BsYWluIiwKICAgICAgICAgICAgT3duZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkFnZW50MSIsCiAgICAgICAgICAgIFByaW9yaXR5ICAgICAgICAgICAgICAgICAgICAgICAgID0+ICIzIG5vcm1hbCIsCiAgICAgICAgICAgIFByaW9yaXR5Q29sb3IgICAgICAgICAgICAgICAgICAgID0+ICIjY2RjZGNkIiwKICAgICAgICAgICAgUXVldWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkp1bmsiLAogICAgICAgICAgICBSZXNwb25zaWJsZSAgICAgICAgICAgICAgICAgICAgICA9PiAiQWdlbnQxIiwKICAgICAgICAgICAgU2VuZGVyVHlwZSAgICAgICAgICAgICAgICAgICAgICAgPT4gImN1c3RvbWVyIiwKICAgICAgICAgICAgU29sdXRpb25UaW1lICAgICAgICAgICAgICAgICAgICAgPT4gLTEyOTYsCiAgICAgICAgICAgIFNvbHV0aW9uVGltZURlc3RpbmF0aW9uRGF0ZSAgICAgID0+ICIyMDEwLTA2LTIzIDExOjUxOjE0IiwKICAgICAgICAgICAgU29sdXRpb25UaW1lRGVzdGluYXRpb25UaW1lICAgICAgPT4gMTI3NzMxMTg3NCwKICAgICAgICAgICAgU29sdXRpb25UaW1lRXNjYWxhdGlvbiAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgU29sdXRpb25UaW1lV29ya2luZ1RpbWUgICAgICAgICAgPT4gLTEyNjAsCiAgICAgICAgICAgIFN0YXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJvcGVuIiwKICAgICAgICAgICAgU3ViamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIk9wZW4gVGlja2V0IFRlc3QiLAogICAgICAgICAgICBUaWNrZXRJRCAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxNzYsCiAgICAgICAgICAgIFRpY2tldE51bWJlciAgICAgICAgICAgICAgICAgICAgID0+IDIwMTAwNjIzMTAwMDAwMTUsCiAgICAgICAgICAgIFRpdGxlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJPcGVuIFRpY2tldCBUZXN0IiwKICAgICAgICAgICAgVG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkp1bmsiLAogICAgICAgICAgICBUeXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSW5jaWRlbnQiLAogICAgICAgICAgICBVbnRpbFRpbWUgICAgICAgICAgICAgICAgICAgICAgICA9PiAwLAogICAgICAgICAgICBVcGRhdGVUaW1lICAgICAgICAgICAgICAgICAgICAgICA9PiAtMTI5NSwKICAgICAgICAgICAgVXBkYXRlVGltZURlc3RpbmF0aW9uRGF0ZSAgICAgICAgPT4gIjIwMTAtMDYtMjMgMTE6NTE6MTUiLAogICAgICAgICAgICBVcGRhdGVUaW1lRGVzdGluYXRpb25UaW1lICAgICAgICA9PiAxMjc3MzExODc1LAogICAgICAgICAgICBVcGRhdGVUaW1lRXNjYWxhdGlvbiAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBVcGRhdGVUaW1lV29ya2luZ1RpbWUgICAgICAgICAgICA9PiAtMTI2MCwKICAgICAgICAgICAgU2VlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMSwgIyBvbmx5IG9uIG90cnMgMy54IGZyYW1ld29yawogICAgICAgIH0sCiAgICApOwoKPWN1dAoKc3ViIFdhdGNoZWRWaWV3IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBkZWZpbmUgZmlsdGVyCiAgICAjIGdldCBhbGwgd2F0Y2hlZCB0aWNrZXRzIG5vIG1hdHRlciBpZiB0aGV5IGFyZSBsb2NrZWQgb3Igbm90CiAgICBteSAlRmlsdGVycyA9ICgKICAgICAgICBBbGwgPT4gewogICAgICAgICAgICBOYW1lICAgPT4gJ0FsbCcsCiAgICAgICAgICAgIFByaW8gICA9PiAxMDAwLAogICAgICAgICAgICBTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgV2F0Y2hVc2VySURzID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICA9PiAkUGFyYW17T3JkZXJCeX0sCiAgICAgICAgICAgICAgICBTb3J0QnkgICAgICAgPT4gJFBhcmFte1NvcnRCeX0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gICA9PiAncm8nLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgTmV3ID0+IHsKICAgICAgICAgICAgTmFtZSAgID0+ICdOZXcgQXJ0aWNsZScsCiAgICAgICAgICAgIFByaW8gICA9PiAxMDAxLAogICAgICAgICAgICBTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgV2F0Y2hVc2VySURzID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgICAgIFRpY2tldEZsYWcgICA9PiB7CiAgICAgICAgICAgICAgICAgICAgU2VlbiA9PiAxLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIFRpY2tldEZsYWdVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgID0+ICRQYXJhbXtPcmRlckJ5fSwKICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgICAgICAgPT4gJFBhcmFte1NvcnRCeX0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQZXJtaXNzaW9uICAgICAgID0+ICdybycsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZW1pbmRlciA9PiB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnUGVuZGluZycsCiAgICAgICAgICAgIFByaW8gICA9PiAxMDAyLAogICAgICAgICAgICBTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgU3RhdGVUeXBlICAgID0+IFsgJ3BlbmRpbmcgcmVtaW5kZXInLCAncGVuZGluZyBhdXRvJyBdLAogICAgICAgICAgICAgICAgV2F0Y2hVc2VySURzID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICA9PiAkUGFyYW17T3JkZXJCeX0sCiAgICAgICAgICAgICAgICBTb3J0QnkgICAgICAgPT4gJFBhcmFte1NvcnRCeX0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gICA9PiAncm8nLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVtaW5kZXJSZWFjaGVkID0+IHsKICAgICAgICAgICAgTmFtZSAgID0+ICdSZW1pbmRlciBSZWFjaGVkJywKICAgICAgICAgICAgUHJpbyAgID0+IDEwMDMsCiAgICAgICAgICAgIFNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICA9PiBbJ3BlbmRpbmcgcmVtaW5kZXInXSwKICAgICAgICAgICAgICAgIFRpY2tldFBlbmRpbmdUaW1lT2xkZXJNaW51dGVzID0+IDEsCiAgICAgICAgICAgICAgICBXYXRjaFVzZXJJRHMgICAgICAgICAgICAgICAgICA9PiBbICRQYXJhbXtVc2VySUR9IF0sCiAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgICAgICAgICAgICAgICA9PiAkUGFyYW17T3JkZXJCeX0sCiAgICAgICAgICAgICAgICBTb3J0QnkgICAgICAgICAgICAgICAgICAgICAgICA9PiAkUGFyYW17U29ydEJ5fSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQZXJtaXNzaW9uICAgICAgICAgICAgICAgICAgICA9PiAncm8nLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICApOwoKICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpY2tldDo6V2F0Y2hlcicpICkgewoKICAgICAgICAjIGRvIHNob3duIHRpY2tldHMgbG9va3VwCiAgICAgICAgbXkgJExpbWl0ID0gJFBhcmFte0xpbWl0fSB8fCAxMDA7CiAgICAgICAgaWYgKCAkUGFyYW17RmlsdGVyfSApIHsKICAgICAgICAgICAgbXkgQFZpZXdhYmxlVGlja2V0cyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICAgICAgJXsgJEZpbHRlcnN7ICRQYXJhbXtGaWx0ZXJ9IH0tPntTZWFyY2h9IH0sCiAgICAgICAgICAgICAgICBMaW1pdCAgPT4gJExpbWl0LAogICAgICAgICAgICAgICAgUmVzdWx0ID0+ICdBUlJBWScsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG15IEBMaXN0OwogICAgICAgICAgICBmb3IgbXkgJFRpY2tldElEIChAVmlld2FibGVUaWNrZXRzKSB7CiAgICAgICAgICAgICAgICBuZXh0IGlmICEkVGlja2V0SUQ7CiAgICAgICAgICAgICAgICBteSAlQXJ0aWNsZSA9ICRTZWxmLT5UaWNrZXRMaXN0KAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfQogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIG5leHQgaWYgISVBcnRpY2xlOwogICAgICAgICAgICAgICAgcHVzaCBATGlzdCwgXCVBcnRpY2xlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICggIUBMaXN0ICkgewogICAgICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiVGhlcmUgYXJlIG5vIHdhdGNoZWQgdGlja2V0cyB1bmRlciAkUGFyYW17RmlsdGVyfSBmaWx0ZXIgIgogICAgICAgICAgICAgICAgICAgICAgICAuICJjYXRlZ29yeSIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBATGlzdDsKICAgICAgICB9CgogICAgICAgICMgZG8gbmF2IGJhciBsb29rdXAKICAgICAgICBteSBAU3RhdGVzOwogICAgICAgIGZvciBteSAkRmlsdGVyICggc29ydCBrZXlzICVGaWx0ZXJzICkgewogICAgICAgICAgICBteSAkQ291bnQgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgICAgICV7ICRGaWx0ZXJzeyRGaWx0ZXJ9LT57U2VhcmNofSB9LAogICAgICAgICAgICAgICAgUmVzdWx0ID0+ICdDT1VOVCcsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG15ICRDb3VudE5ldyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICAgICAgJXsgJEZpbHRlcnN7JEZpbHRlcn0tPntTZWFyY2h9IH0sCiAgICAgICAgICAgICAgICBSZXN1bHQgICAgID0+ICdDT1VOVCcsCiAgICAgICAgICAgICAgICBUaWNrZXRGbGFnID0+IHsKICAgICAgICAgICAgICAgICAgICBTZWVuID0+IDEsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgVGlja2V0RmxhZ1VzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJENvdW50TmV3ID0gJENvdW50IC0gJENvdW50TmV3OwoKICAgICAgICAgICAgcHVzaCBAU3RhdGVzLCB7CiAgICAgICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gJEZpbHRlciwKICAgICAgICAgICAgICAgIEZpbHRlck5hbWUgICAgICAgICAgICAgICAgICAgICA9PiAkRmlsdGVyc3skRmlsdGVyfS0+e05hbWV9LAogICAgICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+ICRDb3VudCwKICAgICAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAkQ291bnROZXcsCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgICAgIHJldHVybiBAU3RhdGVzOwogICAgfQogICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICBNZXNzYWdlICA9PiAnVGlja2V0IHdhdGNoZXIgZmVhdHVyZSBpcyBub3QgZW5hYmxlIGluIHN5c3RlbSBjb25maWd1cmF0aW9uICcKICAgICAgICAgICAgLiAnUGxlYXNlIGNvbnRhY3QgYWRtaW4nLAogICAgKTsKICAgIHJldHVybiAtMTsKfQoKPWl0ZW0gUmVzcG9uc2libGVWaWV3KCkKCkdldCB0aGUgbnVtYmVyIG9mIGxvY2tlZCBvciB1bmxvY2tlZCB0aWNrZXRzIHdoZXJlIHRoZSB1c2VyIGlzIHJlc3BvbnNpYmxlIGZvciBieSBzdGF0dXMgdHlwZQooYWxsLCBuZXcsIHJlbWluZGVyLCByZW1pbmRlciByZWFjaGVkICkgb3IgbGFzdCBjdXN0b21lciBhcnRpY2xlIGluZm9ybWF0aW9uIGZyb20gZWFjaCB0aWNrZXQgd2hlcmUKdGhlIHVzZXIgaXMgcmVzcG9uc2libGUgZm9yICBpbiBlYWNoIHN0YXR1cyB3aXRoaW4gYW4gc3BlY2lmaWVkIGZpbHRlciwgaWYgdGhlICJGaWx0ZXIiIGFyZ3VtZW50IGlzCnNwZWNpZmllZC4KCiAgICBteSBAUmVzdWx0ID0gJGlQaG9uZU9iamVjdC0+UmVzcG9uc2libGVWaWV3KAogICAgICAgIFVzZXJJRCAgPT4gMSwKCiAgICAgICAgIyBPcmRlckJ5IGFuZCBTb3J0QnkgKG9wdGlvbmFsKQogICAgICAgIE9yZGVyQnkgPT4gJ0Rvd24nLCAgIyBEb3dufFVwCiAgICAgICAgU29ydEJ5ICA9PiAnQWdlJywgICAjIE93bmVyfFJlc3BvbnNpYmxlfEN1c3RvbWVySUR8U3RhdGV8VGlja2V0TnVtYmVyfFF1ZXVlfFByaW9yaXR5fEFnZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUeXBlfExvY2t8VGl0bGV8U2VydmljZXxTTEF8UGVuZGluZ1RpbWV8RXNjYWxhdGlvblRpbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgRXNjYWxhdGlvblVwZGF0ZVRpbWV8RXNjYWxhdGlvblJlc3BvbnNlVGltZXxFc2NhbGF0aW9uU29sdXRpb25UaW1lCiAgICApOwoKICAgICNhIHJlc3VsdCBjb3VsZCBiZQoKICAgIEBSZXN1bHQgPSAoCiAgICAgICAgewogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gIkFsbCIsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAyLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHNXaXRoTmV3TWVzc2FnZXMgPT4gMCwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJOZXcsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHNXaXRoTmV3TWVzc2FnZXMgPT4gMCwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJSZW1pbmRlciwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+IDAsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAwLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gIlJlbWluZGVyUmVhY2hlZCwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAwLAogICAgICAgIH0sCiAgICApOwoKICAgIG15IEBSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5SZXNwb25zaWJsZVZpZXcoCiAgICAgICAgVXNlcklEICA9PiAxLAogICAgICAgIEZpbHRlciAgPT4gIk5ldyIsCgogICAgICAgICNMaW1pdCAob3B0aW9uYWwpIHNldCB0byAxMDAgYnkgZGVmYXVsdCwgaWYgbm90IHNwY2lmaWVkCiAgICAgICAgTGltaXQgICA9PiA1MCwKCiAgICAgICAgIyBPcmRlckJ5IGFuZCBTb3J0QnkgKG9wdGlvbmFsKQogICAgICAgIE9yZGVyQnkgPT4gJ0Rvd24nLCAgIyBEb3dufFVwCiAgICAgICAgU29ydEJ5ICA9PiAnQWdlJywgICAjIE93bmVyfFJlc3BvbnNpYmxlfEN1c3RvbWVySUR8U3RhdGV8VGlja2V0TnVtYmVyfFF1ZXVlfFByaW9yaXR5fEFnZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUeXBlfExvY2t8VGl0bGV8U2VydmljZXxTTEF8UGVuZGluZ1RpbWV8RXNjYWxhdGlvblRpbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgRXNjYWxhdGlvblVwZGF0ZVRpbWV8RXNjYWxhdGlvblJlc3BvbnNlVGltZXxFc2NhbGF0aW9uU29sdXRpb25UaW1lCiAgICApOwoKICAgICNhIHJlc3VsdCBjb3VsZCBiZQoKICAgIEBSZXN1bHQgPSAoCiAgICAgICAgewogICAgICAgICAgICBBZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxNTk2LAogICAgICAgICAgICBBcnRpY2xlSUQgICAgICAgICAgICAgICAgICAgICAgICA9PiA5MjMsCiAgICAgICAgICAgIEFydGljbGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJwaG9uZSIsCiAgICAgICAgICAgIEJvZHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJUaGlzIGlzIGFuIG9wZW4gdGlja2V0IiwKICAgICAgICAgICAgQ2hhcnNldCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gInV0Zi04IiwKICAgICAgICAgICAgQ29udGVudENoYXJzZXQgICAgICAgICAgICAgICAgICAgPT4gInV0Zi04IiwKICAgICAgICAgICAgQ29udGVudFR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gInRleHQvcGxhaW47IiwKICAgICAgICAgICAgY2hhcnNldCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gInV0Zi04IiwKICAgICAgICAgICAgQ3JlYXRlZCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIjIwMTAtMDYtMjMgMTE6NDY6MTUiLAogICAgICAgICAgICBDcmVhdGVkQnkgICAgICAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZSAgICAgICAgICAgICAgICA9PiAtMTI5NiwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVEZXN0aW5hdGlvbkRhdGUgPT4gIjIwMTAtMDYtMjMgMTE6NTE6MTQiLAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZURlc3RpbmF0aW9uVGltZSA9PiAxMjc3MzExODc0LAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZUVzY2FsYXRpb24gICAgICA9PiAxLAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZVdvcmtpbmdUaW1lICAgICA9PiAtMTI2MCwKICAgICAgICAgICAgRnJvbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gImN1c3RvbWVyQG90cnMub3JnIiwKICAgICAgICAgICAgSW5jb21pbmdUaW1lICAgICAgICAgICAgICAgICAgICAgPT4gMTI3NzMxMTU3NSwKICAgICAgICAgICAgTG9jayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gImxvY2siLAogICAgICAgICAgICBNaW1lVHlwZSAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidGV4dC9wbGFpbiIsCiAgICAgICAgICAgIE93bmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJBZ2VudDEiLAogICAgICAgICAgICBQcmlvcml0eSAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiMyBub3JtYWwiLAogICAgICAgICAgICBQcmlvcml0eUNvbG9yICAgICAgICAgICAgICAgICAgICA9PiAiI2NkY2RjZCIsCiAgICAgICAgICAgIFF1ZXVlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJKdW5rIiwKICAgICAgICAgICAgUmVzcG9uc2libGUgICAgICAgICAgICAgICAgICAgICAgPT4gIkFnZW50MSIsCiAgICAgICAgICAgIFNlbmRlclR5cGUgICAgICAgICAgICAgICAgICAgICAgID0+ICJjdXN0b21lciIsCiAgICAgICAgICAgIFNvbHV0aW9uVGltZSAgICAgICAgICAgICAgICAgICAgID0+IC0xMjk2LAogICAgICAgICAgICBTb2x1dGlvblRpbWVEZXN0aW5hdGlvbkRhdGUgICAgICA9PiAiMjAxMC0wNi0yMyAxMTo1MToxNCIsCiAgICAgICAgICAgIFNvbHV0aW9uVGltZURlc3RpbmF0aW9uVGltZSAgICAgID0+IDEyNzczMTE4NzQsCiAgICAgICAgICAgIFNvbHV0aW9uVGltZUVzY2FsYXRpb24gICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIFNvbHV0aW9uVGltZVdvcmtpbmdUaW1lICAgICAgICAgID0+IC0xMjYwLAogICAgICAgICAgICBTdGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAib3BlbiIsCiAgICAgICAgICAgIFN1YmplY3QgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJPcGVuIFRpY2tldCBUZXN0IiwKICAgICAgICAgICAgVGlja2V0SUQgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMTc2LAogICAgICAgICAgICBUaWNrZXROdW1iZXIgICAgICAgICAgICAgICAgICAgICA9PiAyMDEwMDYyMzEwMDAwMDE1LAogICAgICAgICAgICBUaXRsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiT3BlbiBUaWNrZXQgVGVzdCIsCiAgICAgICAgICAgIFRvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJKdW5rIiwKICAgICAgICAgICAgVHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkluY2lkZW50IiwKICAgICAgICAgICAgVW50aWxUaW1lICAgICAgICAgICAgICAgICAgICAgICAgPT4gMCwKICAgICAgICAgICAgVXBkYXRlVGltZSAgICAgICAgICAgICAgICAgICAgICAgPT4gLTEyOTUsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVEZXN0aW5hdGlvbkRhdGUgICAgICAgID0+ICIyMDEwLTA2LTIzIDExOjUxOjE1IiwKICAgICAgICAgICAgVXBkYXRlVGltZURlc3RpbmF0aW9uVGltZSAgICAgICAgPT4gMTI3NzMxMTg3NSwKICAgICAgICAgICAgVXBkYXRlVGltZUVzY2FsYXRpb24gICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgVXBkYXRlVGltZVdvcmtpbmdUaW1lICAgICAgICAgICAgPT4gLTEyNjAsCiAgICAgICAgICAgIFNlZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsICMgb25seSBvbiBvdHJzIDMueCBmcmFtZXdvcmsKICAgICAgICB9LAogICAgKTsKCj1jdXQKCnN1YiBSZXNwb25zaWJsZVZpZXcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGRlZmluZSBmaWx0ZXIKICAgIG15ICVGaWx0ZXJzID0gKAogICAgICAgIEFsbCA9PiB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnQWxsJywKICAgICAgICAgICAgUHJpbyAgID0+IDEwMDAsCiAgICAgICAgICAgIFNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBTdGF0ZVR5cGUgICAgICA9PiAnT3BlbicsCiAgICAgICAgICAgICAgICBSZXNwb25zaWJsZUlEcyA9PiBbICRQYXJhbXtVc2VySUR9IF0sCiAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICA9PiAkUGFyYW17T3JkZXJCeX0sCiAgICAgICAgICAgICAgICBTb3J0QnkgICAgICAgICA9PiAkUGFyYW17U29ydEJ5fSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQZXJtaXNzaW9uICAgICA9PiAncm8nLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgTmV3ID0+IHsKICAgICAgICAgICAgTmFtZSAgID0+ICdOZXcgQXJ0aWNsZScsCiAgICAgICAgICAgIFByaW8gICA9PiAxMDAxLAogICAgICAgICAgICBTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgPT4gJ09wZW4nLAogICAgICAgICAgICAgICAgUmVzcG9uc2libGVJRHMgPT4gWyAkUGFyYW17VXNlcklEfSBdLAogICAgICAgICAgICAgICAgVGlja2V0RmxhZyAgICAgPT4gewogICAgICAgICAgICAgICAgICAgIFNlZW4gPT4gMSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBUaWNrZXRGbGFnVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgICA9PiAkUGFyYW17T3JkZXJCeX0sCiAgICAgICAgICAgICAgICBTb3J0QnkgICAgICAgICAgID0+ICRQYXJhbXtTb3J0Qnl9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGVybWlzc2lvbiAgICAgICA9PiAncm8nLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVtaW5kZXIgPT4gewogICAgICAgICAgICBOYW1lICAgPT4gJ1BlbmRpbmcnLAogICAgICAgICAgICBQcmlvICAgPT4gMTAwMiwKICAgICAgICAgICAgU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgID0+IFsgJ3BlbmRpbmcgcmVtaW5kZXInLCAncGVuZGluZyBhdXRvJyBdLAogICAgICAgICAgICAgICAgUmVzcG9uc2libGVJRHMgPT4gWyAkUGFyYW17VXNlcklEfSBdLAogICAgICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgPT4gJFBhcmFte09yZGVyQnl9LAogICAgICAgICAgICAgICAgU29ydEJ5ICAgICAgICAgPT4gJFBhcmFte1NvcnRCeX0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGVybWlzc2lvbiAgICAgPT4gJ3JvJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlbWluZGVyUmVhY2hlZCA9PiB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnUmVtaW5kZXIgUmVhY2hlZCcsCiAgICAgICAgICAgIFByaW8gICA9PiAxMDAzLAogICAgICAgICAgICBTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgPT4gWydwZW5kaW5nIHJlbWluZGVyJ10sCiAgICAgICAgICAgICAgICBUaWNrZXRQZW5kaW5nVGltZU9sZGVyTWludXRlcyA9PiAxLAogICAgICAgICAgICAgICAgUmVzcG9uc2libGVJRHMgICAgICAgICAgICAgICAgPT4gWyAkUGFyYW17VXNlcklEfSBdLAogICAgICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgICAgICAgICAgICAgICAgPT4gJFBhcmFte09yZGVyQnl9LAogICAgICAgICAgICAgICAgU29ydEJ5ICAgICAgICAgICAgICAgICAgICAgICAgPT4gJFBhcmFte1NvcnRCeX0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGVybWlzc2lvbiAgICAgICAgICAgICAgICAgICAgPT4gJ3JvJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgKTsKCiAgICBpZiAoICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdUaWNrZXQ6OlJlc3BvbnNpYmxlJykgKSB7CgogICAgICAgICMgZG8gc2hvd24gdGlja2V0cyBsb29rdXAKICAgICAgICBteSAkTGltaXQgPSAkUGFyYW17TGltaXR9IHx8IDEwMDsKICAgICAgICBpZiAoICRQYXJhbXtGaWx0ZXJ9ICkgewogICAgICAgICAgICBteSBAVmlld2FibGVUaWNrZXRzID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRTZWFyY2goCiAgICAgICAgICAgICAgICAleyAkRmlsdGVyc3sgJFBhcmFte0ZpbHRlcn0gfS0+e1NlYXJjaH0gfSwKICAgICAgICAgICAgICAgIExpbWl0ICA9PiAkTGltaXQsCiAgICAgICAgICAgICAgICBSZXN1bHQgPT4gJ0FSUkFZJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgbXkgQExpc3Q7CiAgICAgICAgICAgIGZvciBteSAkVGlja2V0SUQgKEBWaWV3YWJsZVRpY2tldHMpIHsKICAgICAgICAgICAgICAgIG5leHQgaWYgISRUaWNrZXRJRDsKICAgICAgICAgICAgICAgIG15ICVBcnRpY2xlID0gJFNlbGYtPlRpY2tldExpc3QoCiAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9CiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgbmV4dCBpZiAhJUFydGljbGU7CiAgICAgICAgICAgICAgICBwdXNoIEBMaXN0LCBcJUFydGljbGU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCAhQExpc3QgKSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJUaGVyZSBhcmUgbm8gcmVzcG9uc2libGUgZm9yIHRpY2tldHMgdW5kZXIgJFBhcmFte0ZpbHRlcn0gZmlsdGVyICIKICAgICAgICAgICAgICAgICAgICAgICAgLiAiY2F0ZWdvcnkiLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gQExpc3Q7CiAgICAgICAgfQoKICAgICAgICAjIGRvIG5hdiBiYXIgbG9va3VwCiAgICAgICAgbXkgQFN0YXRlczsKICAgICAgICBmb3IgbXkgJEZpbHRlciAoIHNvcnQga2V5cyAlRmlsdGVycyApIHsKICAgICAgICAgICAgbXkgJENvdW50ID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRTZWFyY2goCiAgICAgICAgICAgICAgICAleyAkRmlsdGVyc3skRmlsdGVyfS0+e1NlYXJjaH0gfSwKICAgICAgICAgICAgICAgIFJlc3VsdCA9PiAnQ09VTlQnLAogICAgICAgICAgICApOwogICAgICAgICAgICBteSAkQ291bnROZXcgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgICAgICV7ICRGaWx0ZXJzeyRGaWx0ZXJ9LT57U2VhcmNofSB9LAogICAgICAgICAgICAgICAgUmVzdWx0ICAgICA9PiAnQ09VTlQnLAogICAgICAgICAgICAgICAgVGlja2V0RmxhZyA9PiB7CiAgICAgICAgICAgICAgICAgICAgU2VlbiA9PiAxLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIFRpY2tldEZsYWdVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRDb3VudE5ldyA9ICRDb3VudCAtICRDb3VudE5ldzsKCiAgICAgICAgICAgIHB1c2ggQFN0YXRlcywgewogICAgICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICRGaWx0ZXIsCiAgICAgICAgICAgICAgICBGaWx0ZXJOYW1lICAgICAgICAgICAgICAgICAgICAgPT4gJEZpbHRlcnN7JEZpbHRlcn0tPntOYW1lfSwKICAgICAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAkQ291bnQsCiAgICAgICAgICAgICAgICBOdW1iZXJPZlRpY2tldHNXaXRoTmV3TWVzc2FnZXMgPT4gJENvdW50TmV3LAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgICByZXR1cm4gQFN0YXRlczsKICAgIH0KICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgTWVzc2FnZSAgPT4gJ1RpY2tldCByZXNwb25zaWJsZSBmZWF0dXJlIGlzIG5vdCBlbmFibGUgaW4gc3lzdGVtIGNvbmZpZ3VyYXRpb24gJwogICAgICAgICAgICAuICdQbGVhc2UgY29udGFjdCBhZG1pbicsCiAgICApOwogICAgcmV0dXJuIC0xOwp9Cgo9aXRlbSBRdWV1ZVZpZXcoKQoKR2V0IHRoZSBudW1iZXIgb2Ygdmlld2FibGUgdGlja2V0cyBwZXIgcXVldWUgYXMgd2VsbCBhcyBiYXNpYyBxdWV1ZSBpbmZvcm1hdGlvbiwgb3IgbGFzdCBjdXN0b21lcgphcnRpY2xlIGluZm9ybWF0aW9uIGZyb20gZWFjaCB0aWNrZXQgd2l0aGluIGFuIHNwZWNpZmllZCBxdWV1ZSwgaWYgdGhlICJRdWV1ZSIgYXJndW1lbnQgaXMKc3BlY2lmaWVkLgoKICAgIG15IEBSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5RdWV1ZVZpZXcoCiAgICAgICAgVXNlcklEICA9PiAxLAoKICAgICAgICAjIE9yZGVyQnkgYW5kIFNvcnRCeSAob3B0aW9uYWwpCiAgICAgICAgT3JkZXJCeSA9PiAnRG93bicsICAjIERvd258VXAKICAgICAgICBTb3J0QnkgID0+ICdBZ2UnLCAgICMgT3duZXJ8UmVzcG9uc2libGV8Q3VzdG9tZXJJRHxTdGF0ZXxUaWNrZXROdW1iZXJ8UXVldWV8UHJpb3JpdHl8QWdlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFR5cGV8TG9ja3xUaXRsZXxTZXJ2aWNlfFNMQXxQZW5kaW5nVGltZXxFc2NhbGF0aW9uVGltZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBFc2NhbGF0aW9uVXBkYXRlVGltZXxFc2NhbGF0aW9uUmVzcG9uc2VUaW1lfEVzY2FsYXRpb25Tb2x1dGlvblRpbWUKICAgICk7CgogICAgI2EgcmVzdWx0IGNvdWxkIGJlCgogICAgQFJlc3VsdCA9ICgKICAgICAgICB7CiAgICAgICAgICAgIFF1ZXVlTmFtZSAgICAgICAgICAgICAgICAgICAgICA9PiAiSnVuayIsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAyLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHNXaXRoTmV3TWVzc2FnZXMgPT4gMCwKICAgICAgICAgICAgUXVldWVJRCAgICAgICAgICAgICAgICAgICAgICAgID0+IDMsCiAgICAgICAgICAgIENvbW1lbnQgICAgICAgICAgICAgICAgICAgICAgICA9PiAiQWxsIGp1bmsgdGlja2V0cy4iCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIFF1ZXVlTmFtZSAgICAgICAgICAgICAgICAgICAgICA9PiAiTWlzYyIsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHNXaXRoTmV3TWVzc2FnZXMgPT4gMCwKICAgICAgICAgICAgUXVldWVJRCAgICAgICAgICAgICAgICAgICAgICAgID0+IDQsCiAgICAgICAgICAgIENvbW1lbnQgICAgICAgICAgICAgICAgICAgICAgICA9PiAiQWxsIG1pc2MgdGlja2V0cy4iCiAgICAgICAgfSwKICAgICk7CgogICAgbXkgQFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPlF1ZXVlVmlldygKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgIFF1ZXVlSUQgID0+IDQsCgogICAgICAgICNMaW1pdCAob3B0aW9uYWwpIHNldCB0byAxMDAgYnkgZGVmYXVsdCwgaWYgbm90IHNwY2lmaWVkCiAgICAgICAgTGltaXQgICAgPT4gNTAsCgogICAgICAgICMgT3JkZXJCeSBhbmQgU29ydEJ5IChvcHRpb25hbCkKICAgICAgICBPcmRlckJ5ICA9PiAnRG93bicsICAjIERvd258VXAKICAgICAgICBTb3J0QnkgICA9PiAnQWdlJywgICAjIE93bmVyfFJlc3BvbnNpYmxlfEN1c3RvbWVySUR8U3RhdGV8VGlja2V0TnVtYmVyfFF1ZXVlfFByaW9yaXR5fEFnZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUeXBlfExvY2t8VGl0bGV8U2VydmljZXxTTEF8UGVuZGluZ1RpbWV8RXNjYWxhdGlvblRpbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgRXNjYWxhdGlvblVwZGF0ZVRpbWV8RXNjYWxhdGlvblJlc3BvbnNlVGltZXxFc2NhbGF0aW9uU29sdXRpb25UaW1lCiAgICApOwoKICAgICNhIHJlc3VsdCBjb3VsZCBiZQoKICAgIEBSZXN1bHQgPSAoCiAgICAgICAgewogICAgICAgICAgICBBZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxNTk2LAogICAgICAgICAgICBBcnRpY2xlSUQgICAgICAgICAgICAgICAgICAgICAgICA9PiA5MjMsCiAgICAgICAgICAgIEFydGljbGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJwaG9uZSIsCiAgICAgICAgICAgIEJvZHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJUaGlzIGlzIGFuIG9wZW4gdGlja2V0IiwKICAgICAgICAgICAgQ2hhcnNldCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gInV0Zi04IiwKICAgICAgICAgICAgQ29udGVudENoYXJzZXQgICAgICAgICAgICAgICAgICAgPT4gInV0Zi04IiwKICAgICAgICAgICAgQ29udGVudFR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gInRleHQvcGxhaW47IiwKICAgICAgICAgICAgY2hhcnNldCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gInV0Zi04IiwKICAgICAgICAgICAgQ3JlYXRlZCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIjIwMTAtMDYtMjMgMTE6NDY6MTUiLAogICAgICAgICAgICBDcmVhdGVkQnkgICAgICAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZSAgICAgICAgICAgICAgICA9PiAtMTI5NiwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVEZXN0aW5hdGlvbkRhdGUgPT4gIjIwMTAtMDYtMjMgMTE6NTE6MTQiLAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZURlc3RpbmF0aW9uVGltZSA9PiAxMjc3MzExODc0LAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZUVzY2FsYXRpb24gICAgICA9PiAxLAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZVdvcmtpbmdUaW1lICAgICA9PiAtMTI2MCwKICAgICAgICAgICAgRnJvbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gImN1c3RvbWVyQG90cnMub3JnIiwKICAgICAgICAgICAgSW5jb21pbmdUaW1lICAgICAgICAgICAgICAgICAgICAgPT4gMTI3NzMxMTU3NSwKICAgICAgICAgICAgTG9jayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gImxvY2siLAogICAgICAgICAgICBNaW1lVHlwZSAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidGV4dC9wbGFpbiIsCiAgICAgICAgICAgIE93bmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJBZ2VudDEiLAogICAgICAgICAgICBQcmlvcml0eSAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiMyBub3JtYWwiLAogICAgICAgICAgICBQcmlvcml0eUNvbG9yICAgICAgICAgICAgICAgICAgICA9PiAiI2NkY2RjZCIsCiAgICAgICAgICAgIFF1ZXVlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJNaXNjIiwKICAgICAgICAgICAgUmVzcG9uc2libGUgICAgICAgICAgICAgICAgICAgICAgPT4gIkFnZW50MSIsCiAgICAgICAgICAgIFNlbmRlclR5cGUgICAgICAgICAgICAgICAgICAgICAgID0+ICJjdXN0b21lciIsCiAgICAgICAgICAgIFNvbHV0aW9uVGltZSAgICAgICAgICAgICAgICAgICAgID0+IC0xMjk2LAogICAgICAgICAgICBTb2x1dGlvblRpbWVEZXN0aW5hdGlvbkRhdGUgICAgICA9PiAiMjAxMC0wNi0yMyAxMTo1MToxNCIsCiAgICAgICAgICAgIFNvbHV0aW9uVGltZURlc3RpbmF0aW9uVGltZSAgICAgID0+IDEyNzczMTE4NzQsCiAgICAgICAgICAgIFNvbHV0aW9uVGltZUVzY2FsYXRpb24gICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIFNvbHV0aW9uVGltZVdvcmtpbmdUaW1lICAgICAgICAgID0+IC0xMjYwLAogICAgICAgICAgICBTdGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAib3BlbiIsCiAgICAgICAgICAgIFN1YmplY3QgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJPcGVuIFRpY2tldCBUZXN0IiwKICAgICAgICAgICAgVGlja2V0SUQgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMTc2LAogICAgICAgICAgICBUaWNrZXROdW1iZXIgICAgICAgICAgICAgICAgICAgICA9PiAyMDEwMDYyMzEwMDAwMDE1LAogICAgICAgICAgICBUaXRsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiT3BlbiBUaWNrZXQgVGVzdCIsCiAgICAgICAgICAgIFRvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJKdW5rIiwKICAgICAgICAgICAgVHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkluY2lkZW50IiwKICAgICAgICAgICAgVW50aWxUaW1lICAgICAgICAgICAgICAgICAgICAgICAgPT4gMCwKICAgICAgICAgICAgVXBkYXRlVGltZSAgICAgICAgICAgICAgICAgICAgICAgPT4gLTEyOTUsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVEZXN0aW5hdGlvbkRhdGUgICAgICAgID0+ICIyMDEwLTA2LTIzIDExOjUxOjE1IiwKICAgICAgICAgICAgVXBkYXRlVGltZURlc3RpbmF0aW9uVGltZSAgICAgICAgPT4gMTI3NzMxMTg3NSwKICAgICAgICAgICAgVXBkYXRlVGltZUVzY2FsYXRpb24gICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgVXBkYXRlVGltZVdvcmtpbmdUaW1lICAgICAgICAgICAgPT4gLTEyNjAsCiAgICAgICAgICAgIFNlZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsICMgb25seSBvbiBvdHJzIDMueCBmcmFtZXdvcmsKICAgICAgICB9LAogICAgKTsKCj1jdXQKCnN1YiBRdWV1ZVZpZXcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSBAVmlld2FibGVMb2NrSURzID0gJFNlbGYtPntMb2NrT2JqZWN0fS0+TG9ja1ZpZXdhYmxlTG9jayggVHlwZSA9PiAnSUQnICk7CgogICAgbXkgQFZpZXdhYmxlU3RhdGVJRHMgPSAkU2VsZi0+e1N0YXRlT2JqZWN0fS0+U3RhdGVHZXRTdGF0ZXNCeVR5cGUoCiAgICAgICAgVHlwZSAgID0+ICdWaWV3YWJsZScsCiAgICAgICAgUmVzdWx0ID0+ICdJRCcsCiAgICApOwoKICAgICMgZG8gc2hvd24gdGlja2V0cyBsb29rdXAKICAgIG15ICRMaW1pdCA9ICRQYXJhbXtMaW1pdH0gfHwgMTAwOwogICAgaWYgKCAkUGFyYW17UXVldWVJRH0gKSB7CiAgICAgICAgbXkgQFZpZXdhYmxlVGlja2V0cyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U2VhcmNoKAoKICAgICAgICAgICAgT3JkZXJCeSAgICA9PiAkUGFyYW17T3JkZXJCeX0sCiAgICAgICAgICAgIFNvcnRCeSAgICAgPT4gJFBhcmFte1NvcnRCeX0sCiAgICAgICAgICAgIFN0YXRlSURzICAgPT4gXEBWaWV3YWJsZVN0YXRlSURzLAogICAgICAgICAgICBMb2NrSURzICAgID0+IFxAVmlld2FibGVMb2NrSURzLAogICAgICAgICAgICBRdWV1ZUlEcyAgID0+IFsgJFBhcmFte1F1ZXVlSUR9IF0sCiAgICAgICAgICAgIFBlcm1pc3Npb24gPT4gJ3J3JywKICAgICAgICAgICAgVXNlcklEICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgTGltaXQgICAgICA9PiAkTGltaXQsCiAgICAgICAgICAgIFJlc3VsdCAgICAgPT4gJ0FSUkFZJywKICAgICAgICApOwogICAgICAgIG15IEBMaXN0OwogICAgICAgIGZvciBteSAkVGlja2V0SUQgKEBWaWV3YWJsZVRpY2tldHMpIHsKICAgICAgICAgICAgbmV4dCBpZiAhJFRpY2tldElEOwogICAgICAgICAgICBteSAlQXJ0aWNsZSA9ICRTZWxmLT5UaWNrZXRMaXN0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbmV4dCBpZiAhJUFydGljbGU7CiAgICAgICAgICAgIHB1c2ggQExpc3QsIFwlQXJ0aWNsZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIEBMaXN0OwogICAgfQoKICAgIG15ICVBbGxRdWV1ZXMgPSAkU2VsZi0+e1F1ZXVlT2JqZWN0fS0+UXVldWVMaXN0KCBWYWxpZCA9PiAwICk7CgogICAgbXkgQFF1ZXVlczsKICAgIG15ICVRdWV1ZVN1bTsKICAgIGZvciBteSAkUXVldWVJRCAoIHNvcnQga2V5cyAlQWxsUXVldWVzICkgewogICAgICAgIG15ICVRdWV1ZSA9ICRTZWxmLT57UXVldWVPYmplY3R9LT5RdWV1ZUdldCgKICAgICAgICAgICAgSUQgPT4gJFF1ZXVlSUQsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJENvdW50ID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRTZWFyY2goCiAgICAgICAgICAgIFN0YXRlSURzID0+IFxAVmlld2FibGVTdGF0ZUlEcywKICAgICAgICAgICAgTG9ja0lEcyAgPT4gXEBWaWV3YWJsZUxvY2tJRHMsCiAgICAgICAgICAgIFF1ZXVlSURzID0+IFskUXVldWVJRF0sCgogICAgICAgICAgICBQZXJtaXNzaW9uID0+ICdydycsCiAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgIFJlc3VsdCAgICAgPT4gJ0NPVU5UJywKICAgICAgICAgICAgTGltaXQgICAgICA9PiAxMDAwLAogICAgICAgICk7CiAgICAgICAgbmV4dCBpZiAhJENvdW50OwoKICAgICAgICBteSAkQ291bnROZXcgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgU3RhdGVJRHMgPT4gXEBWaWV3YWJsZVN0YXRlSURzLAogICAgICAgICAgICBMb2NrSURzICA9PiBcQFZpZXdhYmxlTG9ja0lEcywKICAgICAgICAgICAgUXVldWVJRHMgPT4gWyRRdWV1ZUlEXSwKCiAgICAgICAgICAgIFRpY2tldEZsYWcgPT4gewogICAgICAgICAgICAgICAgU2VlbiA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICBUaWNrZXRGbGFnVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICBQZXJtaXNzaW9uICAgICAgID0+ICdydycsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgIFJlc3VsdCAgICAgICAgICAgPT4gJ0NPVU5UJywKICAgICAgICAgICAgTGltaXQgICAgICAgICAgICA9PiAxMDAwLAogICAgICAgICk7CiAgICAgICAgJENvdW50TmV3ID0gJENvdW50IC0gJENvdW50TmV3OwoKICAgICAgICBwdXNoIEBRdWV1ZXMsIHsKICAgICAgICAgICAgUXVldWVJRCAgID0+ICRRdWV1ZUlELAogICAgICAgICAgICBRdWV1ZU5hbWUgPT4gJFF1ZXVle05hbWV9LAogICAgICAgICAgICBDb21tZW50ICAgPT4gJFF1ZXVle0NvbW1lbnR9LAoKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+ICRDb3VudCwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzV2l0aE5ld01lc3NhZ2VzID0+ICRDb3VudE5ldywKICAgICAgICB9OwogICAgfQoKICAgIHJldHVybiBAUXVldWVzOwp9Cgo9aXRlbSBUaWNrZXRMaXN0KCkKCkdldCB0aGUgbGFzdCBjdXN0b21lciBhcnRpY2xlIGluZm9ybWF0aW9uIG9mIGEgdGlja2V0CgogICAgbXkgQFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPlRpY2tldExpc3QoCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICAgICBUaWNrZXRJRCAgPT4gMTc2LAogICAgKTsKCiAgICAjYSByZXN1bHQgY291bGQgYmUKCiAgICBAUmVzdWx0ID0gKAogICAgICAgIHsKICAgICAgICAgICAgQWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMTU5NiwKICAgICAgICAgICAgQXJ0aWNsZUlEICAgICAgICAgICAgICAgICAgICAgICAgPT4gOTIzLAogICAgICAgICAgICBBcnRpY2xlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAicGhvbmUiLAogICAgICAgICAgICBCb2R5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiVGhpcyBpcyBhbiBvcGVuIHRpY2tldCIsCiAgICAgICAgICAgIENoYXJzZXQgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ1dGYtOCIsCiAgICAgICAgICAgIENvbnRlbnRDaGFyc2V0ICAgICAgICAgICAgICAgICAgID0+ICJ1dGYtOCIsCiAgICAgICAgICAgIENvbnRlbnRUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJ0ZXh0L3BsYWluOyIsCiAgICAgICAgICAgIGNoYXJzZXQgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ1dGYtOCIsCiAgICAgICAgICAgIENyZWF0ZWQgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICIyMDEwLTA2LTIzIDExOjQ2OjE1IiwKICAgICAgICAgICAgQ3JlYXRlZEJ5ICAgICAgICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWUgICAgICAgICAgICAgICAgPT4gLTEyOTYsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRGVzdGluYXRpb25EYXRlID0+ICIyMDEwLTA2LTIzIDExOjUxOjE0IiwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVEZXN0aW5hdGlvblRpbWUgPT4gMTI3NzMxMTg3NCwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVFc2NhbGF0aW9uICAgICAgPT4gMSwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVXb3JraW5nVGltZSAgICAgPT4gLTEyNjAsCiAgICAgICAgICAgIEZyb20gICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJjdXN0b21lckBvdHJzLm9yZyIsCiAgICAgICAgICAgIEluY29taW5nVGltZSAgICAgICAgICAgICAgICAgICAgID0+IDEyNzczMTE1NzUsCiAgICAgICAgICAgIExvY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJsb2NrIiwKICAgICAgICAgICAgTWltZVR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgPT4gInRleHQvcGxhaW4iLAogICAgICAgICAgICBPd25lciAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiQWdlbnQxIiwKICAgICAgICAgICAgUHJpb3JpdHkgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIjMgbm9ybWFsIiwKICAgICAgICAgICAgUHJpb3JpdHlDb2xvciAgICAgICAgICAgICAgICAgICAgPT4gIiNjZGNkY2QiLAogICAgICAgICAgICBRdWV1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiTWlzYyIsCiAgICAgICAgICAgIFJlc3BvbnNpYmxlICAgICAgICAgICAgICAgICAgICAgID0+ICJBZ2VudDEiLAogICAgICAgICAgICBTZW5kZXJUeXBlICAgICAgICAgICAgICAgICAgICAgICA9PiAiY3VzdG9tZXIiLAogICAgICAgICAgICBTb2x1dGlvblRpbWUgICAgICAgICAgICAgICAgICAgICA9PiAtMTI5NiwKICAgICAgICAgICAgU29sdXRpb25UaW1lRGVzdGluYXRpb25EYXRlICAgICAgPT4gIjIwMTAtMDYtMjMgMTE6NTE6MTQiLAogICAgICAgICAgICBTb2x1dGlvblRpbWVEZXN0aW5hdGlvblRpbWUgICAgICA9PiAxMjc3MzExODc0LAogICAgICAgICAgICBTb2x1dGlvblRpbWVFc2NhbGF0aW9uICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBTb2x1dGlvblRpbWVXb3JraW5nVGltZSAgICAgICAgICA9PiAtMTI2MCwKICAgICAgICAgICAgU3RhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIm9wZW4iLAogICAgICAgICAgICBTdWJqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiT3BlbiBUaWNrZXQgVGVzdCIsCiAgICAgICAgICAgIFRpY2tldElEICAgICAgICAgICAgICAgICAgICAgICAgID0+IDE3NiwKICAgICAgICAgICAgVGlja2V0TnVtYmVyICAgICAgICAgICAgICAgICAgICAgPT4gMjAxMDA2MjMxMDAwMDAxNSwKICAgICAgICAgICAgVGl0bGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIk9wZW4gVGlja2V0IFRlc3QiLAogICAgICAgICAgICBUbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSnVuayIsCiAgICAgICAgICAgIFR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJJbmNpZGVudCIsCiAgICAgICAgICAgIFVudGlsVGltZSAgICAgICAgICAgICAgICAgICAgICAgID0+IDAsCiAgICAgICAgICAgIFVwZGF0ZVRpbWUgICAgICAgICAgICAgICAgICAgICAgID0+IC0xMjk1LAogICAgICAgICAgICBVcGRhdGVUaW1lRGVzdGluYXRpb25EYXRlICAgICAgICA9PiAiMjAxMC0wNi0yMyAxMTo1MToxNSIsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVEZXN0aW5hdGlvblRpbWUgICAgICAgID0+IDEyNzczMTE4NzUsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVFc2NhbGF0aW9uICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVXb3JraW5nVGltZSAgICAgICAgICAgID0+IC0xMjYwLAogICAgICAgICAgICBTZWVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxLCAjIG9ubHkgb24gb3RycyAzLnggZnJhbWV3b3JrCiAgICAgICAgfSwKICAgICk7Cgo9Y3V0CgpzdWIgVGlja2V0TGlzdCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICVDb2xvciA9ICgKICAgICAgICAxID0+ICcjY2RjZGNkJywKICAgICAgICAyID0+ICcjY2RjZGNkJywKICAgICAgICAzID0+ICcjY2RjZGNkJywKICAgICAgICA0ID0+ICcjZmZhYWFhJywKICAgICAgICA1ID0+ICcjZmY1MDVlJywKICAgICk7CgogICAgbXkgJUFydGljbGUgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPkFydGljbGVMYXN0Q3VzdG9tZXJBcnRpY2xlKAogICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICApOwogICAgaWYgKCVBcnRpY2xlKSB7CiAgICAgICAgJEFydGljbGV7UHJpb3JpdHlDb2xvcn0gPSAkQ29sb3J7ICRBcnRpY2xle1ByaW9yaXR5SUR9IH07CgogICAgICAgIG15ICVUaWNrZXRGbGFnID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRGbGFnR2V0KAogICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwogICAgICAgIGlmICggJFRpY2tldEZsYWd7c2Vlbn0gfHwgJFRpY2tldEZsYWd7U2Vlbn0gKSB7CiAgICAgICAgICAgICRBcnRpY2xle1NlZW59ID0gMTsKICAgICAgICB9CgogICAgICAgICMgc3RyaXAgb3V0IGFsbCBkYXRhCiAgICAgICAgbXkgQERlbGV0ZSA9IHF3KAogICAgICAgICAgICBSZXBseVRvIE1lc3NhZ2VJRCBJblJlcGx5VG8gUmVmZXJlbmNlcyBBZ2VUaW1lVW5peCBDcmVhdGVUaW1lVW5peCBTZW5kZXJUeXBlSUQKICAgICAgICAgICAgSW5jb21pbmdUaW1lIFJlYWxUaWxsVGltZU5vdFVzZWQgU2VydmljZUlEIFNMQUlEIFN0YXRlVHlwZSBBcmNoaXZlRmxhZyBVbmxvY2tUaW1lb3V0CiAgICAgICAgICAgIENoYW5nZWQKICAgICAgICAgICAgKQogICAgICAgICAgICA7CgogICAgICAgIGZvciBteSAkS2V5IChARGVsZXRlKSB7CiAgICAgICAgICAgIGRlbGV0ZSAkQXJ0aWNsZXskS2V5fTsKICAgICAgICB9CgogICAgICAgIGZvciBteSAkS2V5ICggc29ydCBrZXlzICVBcnRpY2xlICkgewogICAgICAgICAgICBpZiAoICFkZWZpbmVkICRBcnRpY2xleyRLZXl9IHx8ICRBcnRpY2xleyRLZXl9IGVxICcnICkgewogICAgICAgICAgICAgICAgZGVsZXRlICRBcnRpY2xleyRLZXl9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICggJEtleSA9fiAvXkVzY2FsYS8gKSB7CiAgICAgICAgICAgICAgICBkZWxldGUgJEFydGljbGV7JEtleX07CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiAlQXJ0aWNsZTsKICAgIH0KCiAgICAjIHJldHVybiBvbmx5IHRpY2tldCBpbmZvcm1hdGlvbiBpZiB0aWNrZXQgaGFzIG5vIGFydGljbGVzCiAgICBteSAlVGlja2V0RGF0YSA9ICRTZWxmLT5UaWNrZXRHZXQoCiAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfQogICAgKTsKICAgIHJldHVybiAlVGlja2V0RGF0YTsKfQoKPWl0ZW0gVGlja2V0R2V0KCkKR2V0IGluZm9ybWF0aW9uIG9mIGEgdGlja2V0CgogICAgbXkgQFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPlRpY2tldEdldCgKICAgICAgICBUaWNrZXRJRCAgPT4gMjI0LAogICAgICAgIFVzZXJJRCAgICA9PiAxLAogICAgKTsKCiAgICAjYSByZXN1bHQgY291bGQgYmUKCiAgICBAUmVzdWx0ID0gKAogICAgICAgIEFjY291bnRlZFRpbWUgICA9PiAiNTQwNCIsCiAgICAgICAgQWdlICAgICAgICAgICAgID0+ICI2ODE5NDYiLAogICAgICAgIEN1c3RvbWVySUQgICAgICA9PiAic3ciLAogICAgICAgIEN1c3RvbWVyVXNlcklEICA9PiAiRGF2aWQiLAogICAgICAgIENyZWF0ZWQgICAgICAgICA9PiAiMjAxMC0wNy0wNiAxNDowNTo1NCIsCiAgICAgICAgR3JvdXBJRCAgICAgICAgID0+IDEsCiAgICAgICAgVGlja2V0SUQgICAgICAgID0+IDIyNCwKICAgICAgICBMb2NrSUQgICAgICAgICAgPT4gMiwKICAgICAgICBMb2NrICAgICAgICAgICAgPT4gImxvY2siCiAgICAgICAgT3duZXJJRCAgICAgICAgID0+IDExMzQsCiAgICAgICAgT3duZXIgICAgICAgICAgID0+ICJBYXlsYSIsCiAgICAgICAgUHJpb3JpdHlDb2xvciAgID0+ICIjY2RjZGNkIiwKICAgICAgICBQcmlvcml0eUlEICAgICAgPT4gMSwKICAgICAgICBQcmlvcml0eSAgICAgICAgPT4gIjEgdmVyeSBsb3ciLAogICAgICAgIFF1ZXVlICAgICAgICAgICA9PiAiUmF3IiwKICAgICAgICBRdWV1ZUlEICAgICAgICAgPT4gMiwKICAgICAgICBSZXNwb25zaWJsZUlEICAgPT4gMTEzNCwKICAgICAgICBSZXNwb25zaWJsZSAgICAgPT4gIkFheWxhIiwKICAgICAgICBTZWVuICAgICAgICAgICAgPT4gMSwgIyBvbmx5IG9uIG90cnMgMy54IGZyYW1ld29yawogICAgICAgIFN0YXRlSUQgICAgICAgICA9PiAgNCwKICAgICAgICBTdGF0ZSAgICAgICAgICAgPT4gIm9wZW4iLAogICAgICAgIFRpY2tldE51bWJlciAgICA9PiAiMjAxMDA3MDYxMDAwMDIxNSIsCiAgICAgICAgVGl0bGUgICAgICAgICAgID0+ICJpUGhvbmUgVGVzdCIsCiAgICAgICAgVHlwZUlEICAgICAgICAgID0+IDEsCiAgICAgICAgVHlwZSAgICAgICAgICAgID0+ICJkZWZhdWx0IiwKICAgICAgICBVbnRpbFRpbWUgICAgICAgPT4gIjAiLAogICAgKTsKCj1jdXQKCnN1YiBUaWNrZXRHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIHBlcm1pc3Npb24gY2hlY2sKICAgIG15ICRBY2Nlc3MgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFBlcm1pc3Npb24oCiAgICAgICAgVHlwZSAgICAgPT4gJ3JvJywKICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9CiAgICApOwogICAgaWYgKCAhJEFjY2VzcyApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIllvdSBuZWVkIHJvIHBlcm1pc3Npb25zISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJUNvbG9yID0gKAogICAgICAgIDEgPT4gJyNjZGNkY2QnLAogICAgICAgIDIgPT4gJyNjZGNkY2QnLAogICAgICAgIDMgPT4gJyNjZGNkY2QnLAogICAgICAgIDQgPT4gJyNmZmFhYWEnLAogICAgICAgIDUgPT4gJyNmZjUwNWUnLAogICAgKTsKCiAgICBteSAlVGlja2V0ID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRHZXQoJVBhcmFtKTsKCiAgICAkVGlja2V0e1ByaW9yaXR5Q29sb3J9ID0gJENvbG9yeyAkVGlja2V0e1ByaW9yaXR5SUR9IH07CgogICAgbXkgJVRpY2tldEZsYWcgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldEZsYWdHZXQoCiAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CiAgICBpZiAoICRUaWNrZXRGbGFne3NlZW59IHx8ICRUaWNrZXRGbGFne1NlZW59ICkgewogICAgICAgICRUaWNrZXR7U2Vlbn0gPSAxOwogICAgfQogICAgZWxzZSB7CgogICAgICAgICMgY2hlY2sgaWYgdGlja2V0IG5lZWQgdG8gYmUgbWFya2VkIGFzIHNlZW4KICAgICAgICBteSAkQXJ0aWNsZUFsbFNlZW4gPSAxOwogICAgICAgIG15IEBJbmRleCA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+QXJ0aWNsZUluZGV4KCBUaWNrZXRJRCA9PiAkVGlja2V0e1RpY2tldElEfSApOwogICAgICAgIGlmICggSXNBcnJheVJlZldpdGhEYXRhKCBcQEluZGV4ICkgKSB7CiAgICAgICAgICAgIGZvciBteSAkQXJ0aWNsZUlEIChASW5kZXgpIHsKICAgICAgICAgICAgICAgIG15ICVBcnRpY2xlRmxhZyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+QXJ0aWNsZUZsYWdHZXQoCiAgICAgICAgICAgICAgICAgICAgQXJ0aWNsZUlEID0+ICRBcnRpY2xlSUQsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIGxhc3QgaWYgYXJ0aWNsZSB3YXMgbm90IHNob3duCiAgICAgICAgICAgICAgICBpZiAoICEkQXJ0aWNsZUZsYWd7U2Vlbn0gJiYgISRBcnRpY2xlRmxhZ3tzZWVufSApIHsKICAgICAgICAgICAgICAgICAgICAkQXJ0aWNsZUFsbFNlZW4gPSAwOwogICAgICAgICAgICAgICAgICAgIGxhc3Q7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgbWFyayB0aWNrZXQgYXMgc2VlbiBpZiBhbGwgYXJ0aWNsZSBhcmUgc2hvd24KICAgICAgICAgICAgaWYgKCRBcnRpY2xlQWxsU2VlbikgewogICAgICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRGbGFnU2V0KAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXR7VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgIEtleSAgICAgID0+ICdTZWVuJywKICAgICAgICAgICAgICAgICAgICBWYWx1ZSAgICA9PiAxLAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIGFkZCBhY2NvdW50ZWQgdGltZQogICAgbXkgJEFjY291bnRlZFRpbWUgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldEFjY291bnRlZFRpbWVHZXQoJVBhcmFtKTsKICAgIGlmICggZGVmaW5lZCAkQWNjb3VudGVkVGltZSApIHsKICAgICAgICAkVGlja2V0e0FjY291bnRlZFRpbWV9ID0gJEFjY291bnRlZFRpbWU7CiAgICB9CgogICAgIyBzdHJpcCBvdXQgYWxsIGRhdGEKICAgIG15IEBEZWxldGUgPSBxdygKICAgICAgICBSZXBseVRvIE1lc3NhZ2VJRCBJblJlcGx5VG8gUmVmZXJlbmNlcyBBZ2VUaW1lVW5peCBDcmVhdGVUaW1lVW5peCBTZW5kZXJUeXBlSUQKICAgICAgICBJbmNvbWluZ1RpbWUgUmVhbFRpbGxUaW1lTm90VXNlZCBTZXJ2aWNlSUQgU0xBSUQgU3RhdGVUeXBlIEFyY2hpdmVGbGFnIFVubG9ja1RpbWVvdXQKICAgICAgICBDaGFuZ2VkCiAgICAgICAgKQogICAgICAgIDsKCiAgICBmb3IgbXkgJEtleSAoQERlbGV0ZSkgewogICAgICAgIGRlbGV0ZSAkVGlja2V0eyRLZXl9OwogICAgfQogICAgZm9yIG15ICRLZXkgKCBzb3J0IGtleXMgJVRpY2tldCApIHsKICAgICAgICBpZiAoICFkZWZpbmVkICRUaWNrZXR7JEtleX0gfHwgJFRpY2tldHskS2V5fSBlcSAnJyApIHsKICAgICAgICAgICAgZGVsZXRlICRUaWNrZXR7JEtleX07CiAgICAgICAgfQogICAgICAgIGlmICggJEtleSA9fiAvXkVzY2FsYS8gKSB7CiAgICAgICAgICAgIGRlbGV0ZSAkVGlja2V0eyRLZXl9OwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiAlVGlja2V0Owp9Cgo9aXRlbSBBcnRpY2xlR2V0KCkKCkdldCBpbmZvcm1hdGlvbiBmcm9tIGFuIGFydGljbGUKCiAgICBteSAlUmVzdWx0ID0gJGlQaG9uZU9iamVjdC0+QXJ0aWNsZUdldCgpCiAgICAgICAgQXJ0aWNsZUlEICA9PiAxMDU0LAogICAgICAgIFVzZXJJRCAgICAgPT4gMSwKICAgICk7CgogICAgI2EgcmVzdWx0IGNvdWxkIGJlCgogICAgJVJlc3V0bCA9ICgKICAgICAgICBBZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxNjYyMDIsCiAgICAgICAgQWNjb3VudGVkVGltZSAgICAgICAgICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIEFydGljbGVJRCAgICAgICAgICAgICAgICAgICAgICAgID0+IDEwNTQsCiAgICAgICAgQXJ0aWNsZVR5cGVJRCAgICAgICAgICAgICAgICAgICAgPT4gNSwKICAgICAgICBBcnRpY2xlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAicGhvbmUiLAogICAgICAgIEJvZHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJpUGhvbmUgdGlja2V0IFRlc3QiLAogICAgICAgIENoYXJzZXQgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ1dGYtOCIsCiAgICAgICAgQ29udGVudENoYXJzZXQgICAgICAgICAgICAgICAgICAgPT4gInV0Zi04IiwKICAgICAgICBDb250ZW50VHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAidGV4dC9wbGFpbjsgY2hhcnNldD11dGYtOCIsCiAgICAgICAgQ3JlYXRlZCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIjIwMTAtMDctMTIgMTQ6MTM6MDYiLAogICAgICAgIENyZWF0ZWRCeSAgICAgICAgICAgICAgICAgICAgICAgID0+IDExMzQsCiAgICAgICAgQ3VzdG9tZXJJRCAgICAgICAgICAgICAgICAgICAgICAgPT4gInN3IiwKICAgICAgICBDdXN0b21lclVzZXJJRCAgICAgICAgICAgICAgICAgICA9PiAiRGF2aWQiLAogICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRGVzdGluYXRpb25EYXRlID0+ICIyMDEwLTA3LTEyIDE0OjE4OjA2IiwKICAgICAgICBGaXJzdFJlc3BvbnNlVGltZURlc3RpbmF0aW9uVGltZSA9PiAiMTI3ODk2MjI4NiIsCiAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVFc2NhbGF0aW9uICAgICAgPT4gMSwKICAgICAgICBGaXJzdFJlc3BvbnNlVGltZVdvcmtpbmdUaW1lICAgICA9PiAtODY3MDAsCiAgICAgICAgRmlyc3RSZXNwb25zZVRpbWUgICAgICAgICAgICAgICAgPT4gLTE2NTkwMiwKICAgICAgICBGcm9tICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiXCJEYXZpZCBQcm93c2VcIiA8cGRAc3cuY29tPiIsCiAgICAgICAgTG9ja0lEICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMiwKICAgICAgICBMb2NrICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAibG9jayIsCiAgICAgICAgTWltZVR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgPT4gInRleHQvcGxhaW4iLAogICAgICAgIE93bmVySUQgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDExMzQsCiAgICAgICAgT3duZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkFheWxhIiwKICAgICAgICBQcmlvcml0eUlEICAgICAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgIFByaW9yaXR5ICAgICAgICAgICAgICAgICAgICAgICAgID0+ICIxIHZlcnkgbG93IiwKICAgICAgICBRdWV1ZUlEICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAzLAogICAgICAgIFF1ZXVlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJKdW5rIiwKICAgICAgICBSZXNwb25zaWJsZUlEICAgICAgICAgICAgICAgICAgICA9PiAxMTM0LAogICAgICAgIFJlc3BvbnNpYmxlICAgICAgICAgICAgICAgICAgICAgID0+ICJBYXlsYSIsCiAgICAgICAgU2VlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMSwgIyBvbmx5IG9uIG90cnMgMy54IGZyYW1ld29yawogICAgICAgIFNlbmRlclR5cGUgICAgICAgICAgICAgICAgICAgICAgID0+ICJjdXN0b21lciIsCiAgICAgICAgU29sdXRpb25UaW1lRGVzdGluYXRpb25EYXRlICAgICAgPT4gIjIwMTAtMDctMTIgMTQ6MTg6MDYiLAogICAgICAgIFNvbHV0aW9uVGltZURlc3RpbmF0aW9uVGltZSAgICAgID0+IDEyNzg5NjIyODYsCiAgICAgICAgU29sdXRpb25UaW1lV29ya2luZ1RpbWUgICAgICAgICAgPT4gLTg2NzAwLAogICAgICAgIFNvbHV0aW9uVGltZUVzY2FsYXRpb24gICAgICAgICAgID0+IDEsCiAgICAgICAgU29sdXRpb25UaW1lICAgICAgICAgICAgICAgICAgICAgPT4gLTE2NTkwMiwKICAgICAgICBTdGF0ZUlEICAgICAgICAgICAgICAgICAgICAgICAgICA9PiA0LAogICAgICAgIFN1YmplY3QgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJpUGhvbmUgVGVzdCIsCiAgICAgICAgU3RhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIm9wZW4iLAogICAgICAgIFRpY2tldElEICAgICAgICAgICAgICAgICAgICAgICAgID0+IDI0NywKICAgICAgICBUaWNrZXROdW1iZXIgICAgICAgICAgICAgICAgICAgICA9PiAiMjAxMDA3MTIxMDAwMDA0MyIsCiAgICAgICAgVGl0bGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gImlQaG9uZSBUZXN0IiwKICAgICAgICBUbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSnVuayIsCiAgICAgICAgVHlwZUlEICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICBUeXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiZGVmYXVsdCIsCiAgICAgICAgVXBkYXRlVGltZURlc3RpbmF0aW9uRGF0ZSAgICAgICAgPT4gIjIwMTAtMDctMTIgMTQ6MTg6MDYiLAogICAgICAgIFVwZGF0ZVRpbWVEZXN0aW5hdGlvblRpbWUgICAgICAgID0+IDEyNzg5NjIyODYsCiAgICAgICAgVXBkYXRlVGltZUVzY2FsYXRpb24gICAgICAgICAgICAgPT4gMSwKICAgICAgICBVcGRhdGVUaW1lV29ya2luZ1RpbWUgICAgICAgICAgICA9PiAtODY3MDAsCiAgICAgICAgVXBkYXRlVGltZSAgICAgICAgICAgICAgICAgICAgICAgPT4gLTE2NTkwMiwKICAgICAgICBVbnRpbFRpbWUgICAgICAgICAgICAgICAgICAgICAgICA9PiAwLAogICAgKTsKCj1jdXQKCnN1YiBBcnRpY2xlR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBwZXJtaXNzaW9uIGNoZWNrCiAgICBteSAlQXJ0aWNsZSA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+QXJ0aWNsZUdldCglUGFyYW0pOwogICAgbXkgJEFjY2VzcyAgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFBlcm1pc3Npb24oCiAgICAgICAgVHlwZSAgICAgPT4gJ3JvJywKICAgICAgICBUaWNrZXRJRCA9PiAkQXJ0aWNsZXtUaWNrZXRJRH0sCiAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0KICAgICk7CiAgICBpZiAoICEkQWNjZXNzICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiWW91IG5lZWQgcm8gcGVybWlzc2lvbnMhIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBpZiAoJUFydGljbGUpIHsKCiAgICAgICAgIyBjaGVjayBpZiBhcnRpY2xlIGlzIHNlZW4KICAgICAgICBteSAlQXJ0aWNsZUZsYWcgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPkFydGljbGVGbGFnR2V0KAogICAgICAgICAgICBBcnRpY2xlSUQgPT4gJFBhcmFte0FydGljbGVJRH0sCiAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwogICAgICAgIGlmICggJEFydGljbGVGbGFne3NlZW59IHx8ICRBcnRpY2xlRmxhZ3tTZWVufSApIHsKICAgICAgICAgICAgJEFydGljbGV7U2Vlbn0gPSAxOwogICAgICAgIH0KCiAgICAgICAgIyBtYXJrIHNob3duIGFydGljbGUgYXMgc2VlbgogICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+QXJ0aWNsZUZsYWdTZXQoCiAgICAgICAgICAgIEFydGljbGVJRCA9PiAkUGFyYW17QXJ0aWNsZUlEfSwKICAgICAgICAgICAgS2V5ICAgICAgID0+ICdTZWVuJywKICAgICAgICAgICAgVmFsdWUgICAgID0+IDEsCiAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIGNoZWNrIGlmIHRpY2tldCBuZWVkIHRvIGJlIG1hcmtlZCBhcyBzZWVuCiAgICAgICAgbXkgJEFydGljbGVBbGxTZWVuID0gMTsKICAgICAgICBteSBASW5kZXggPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPkFydGljbGVJbmRleCggVGlja2V0SUQgPT4gJEFydGljbGV7VGlja2V0SUR9ICk7CiAgICAgICAgaWYgKCBJc0FycmF5UmVmV2l0aERhdGEoIFxASW5kZXggKSApIHsKICAgICAgICAgICAgZm9yIG15ICRBcnRpY2xlSUQgKEBJbmRleCkgewogICAgICAgICAgICAgICAgbXkgJUFydGljbGVGbGFnID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5BcnRpY2xlRmxhZ0dldCgKICAgICAgICAgICAgICAgICAgICBBcnRpY2xlSUQgPT4gJEFydGljbGVJRCwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgbGFzdCBpZiBhcnRpY2xlIHdhcyBub3Qgc2hvd24KICAgICAgICAgICAgICAgIGlmICggISRBcnRpY2xlRmxhZ3tTZWVufSAmJiAhJEFydGljbGVGbGFne3NlZW59ICkgewogICAgICAgICAgICAgICAgICAgICRBcnRpY2xlQWxsU2VlbiA9IDA7CiAgICAgICAgICAgICAgICAgICAgbGFzdDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBtYXJrIHRpY2tldCBhcyBzZWVuIGlmIGFsbCBhcnRpY2xlIGFyZSBzaG93bgogICAgICAgICAgICBpZiAoJEFydGljbGVBbGxTZWVuKSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldEZsYWdTZXQoCiAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJEFydGljbGV7VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgIEtleSAgICAgID0+ICdTZWVuJywKICAgICAgICAgICAgICAgICAgICBWYWx1ZSAgICA9PiAxLAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBhZGQgYWNjb3VudGVkIHRpbWUKICAgICAgICBteSAkQWNjb3VudGVkVGltZSA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+QXJ0aWNsZUFjY291bnRlZFRpbWVHZXQoJVBhcmFtKTsKICAgICAgICBpZiAoIGRlZmluZWQgJEFjY291bnRlZFRpbWUgKSB7CiAgICAgICAgICAgICRBcnRpY2xle0FjY291bnRlZFRpbWV9ID0gJEFjY291bnRlZFRpbWU7CiAgICAgICAgfQoKICAgICAgICAjIHN0cmlwIG91dCBhbGwgZGF0YQogICAgICAgIG15IEBEZWxldGUgPSBxdygKICAgICAgICAgICAgUmVwbHlUbyBNZXNzYWdlSUQgSW5SZXBseVRvIFJlZmVyZW5jZXMgQWdlVGltZVVuaXggQ3JlYXRlVGltZVVuaXggU2VuZGVyVHlwZUlECiAgICAgICAgICAgIEluY29taW5nVGltZSBSZWFsVGlsbFRpbWVOb3RVc2VkIFNlcnZpY2VJRCBTTEFJRFN0YXRlVHlwZSBBcmNoaXZlRmxhZyBVbmxvY2tUaW1lb3V0CiAgICAgICAgICAgIENoYW5nZWQKICAgICAgICAgICAgKQogICAgICAgICAgICA7CgogICAgICAgIGZvciBteSAkS2V5IChARGVsZXRlKSB7CiAgICAgICAgICAgIGRlbGV0ZSAkQXJ0aWNsZXskS2V5fTsKICAgICAgICB9CgogICAgICAgIGZvciBteSAkS2V5ICggc29ydCBrZXlzICVBcnRpY2xlICkgewogICAgICAgICAgICBpZiAoICFkZWZpbmVkICRBcnRpY2xleyRLZXl9IHx8ICRBcnRpY2xleyRLZXl9IGVxICcnICkgewogICAgICAgICAgICAgICAgZGVsZXRlICRBcnRpY2xleyRLZXl9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICggJEtleSA9fiAvXkVzY2FsYS8gKSB7CiAgICAgICAgICAgICAgICBkZWxldGUgJEFydGljbGV7JEtleX07CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiAlQXJ0aWNsZTsKICAgIH0KICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgTWVzc2FnZSAgPT4gJ05vIEFydGljbGVzIGZvdW5kIGluIHRoaXMgdGlja2V0JywKICAgICk7CiAgICByZXR1cm4gLTE7Cn0KCj1pdGVtIFNlcnZpY2VzR2V0KCkKR2V0IGEgSGFzaCByZWZlcmVuY2UgdG8gYWxsIHBvc3NpYmxlIHNlcnZpY2VzIGJhc2VkIG9uIGEgVGlja2V0IG9yIFF1ZXVlIGFuZCBDdXN0b21lclVzZXIKCiAgICBteSAkUmVzdWx0ID0gJGlQaG9uZU9iamVjdC0+U2VydmljZXNHZXQoCiAgICAgICAgVXNlcklEICAgICAgICAgID0+IDEsCiAgICAgICAgUXVldWVJRCAgICAgICAgID0+IDMsICAjIHx8IFRpY2tldElEIE9wdGlvbmFsCiAgICAgICAgVGlja2V0SUQgICAgICAgID0+IDIzLCAjIHx8IFF1ZXVlSUQgT3B0aW9uYWwKICAgICAgICBDdXN0b21lclVzZXJJRCAgPT4gIkN1c3RvbWVyIiwKICAgICk7CgogICAgIyBhIHJlc3VsdCBjb3VsZCBiZQoKICAgICRSZXN1bHQgPSBbCiAgICAgICAgMSA9PiAiU2VydmljZSBBIiwKICAgICAgICAzID0+ICJTZXJ2aWNlIEE6OlN1YlNlcnZpY2UgMSIsCiAgICAgICAgMiA9PiAiU2VydmljZSBCIgogICAgXSwKCj1jdXQKCnN1YiBTZXJ2aWNlc0dldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICVTZXJ2aWNlID0gKCk7CgogICAgIyBnZXQgc2VydmljZQogICAgaWYgKCAoICRQYXJhbXtRdWV1ZUlEfSB8fCAkUGFyYW17VGlja2V0SUR9ICkgJiYgJFBhcmFte0N1c3RvbWVyVXNlcklEfSApIHsKICAgICAgICAlU2VydmljZSA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U2VydmljZUxpc3QoCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgQWN0aW9uID0+ICRQYXJhbXtBY3Rpb259LAogICAgICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgIH0KICAgIHJldHVybiBcJVNlcnZpY2U7Cn0KCj1pdGVtIFNMQXNHZXQoKQpHZXQgYSBIYXNoIHJlZmVyZW5jZSB0byBhbGwgcG9zc2libGUgU0xBcyBiYXNlZCBvbiBhIFNlcnZpY2UKCiAgICBteSAkUmVzdWx0ID0gJGlQaG9uZU9iamVjdC0+U0xBc0dldCgKICAgICAgICBTZXJ2aWNlSUQgICAgICAgPT4gMSwKICAgICAgICBRdWV1ZUlEICAgICAgICAgPT4gMywgICN8fCBUaWNrZVRJRCBvcHRpb25hbAogICAgICAgIFRpY2tldElEICAgICAgICA9PiAyMjMgI3x8IFF1ZXVlSUQgb3B0aW9uYWwKICAgICAgICBVc2VySUQgICAgICAgICAgPT4gMSwKICAgICk7CgogICAgIyBhIHJlc3VsdCBjb3VsZCBiZQoKICAgICRSZXN1bHQgPSBbCiAgICAgICAgMSA9PiAiU0xBIEdvbGQgZm9yIFNlcnZpY2UgQSIsCiAgICAgICAgMyA9PiAiU0xBIFNpbHZlciBmb3IgU2VydmljZSBBIiwKICAgIF0sCgo9Y3V0CgpzdWIgU0xBc0dldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICVTTEEgPSAoKTsKCiAgICAjIGdldCBzbGEKICAgIGlmICggJFBhcmFte1NlcnZpY2VJRH0gKSB7CiAgICAgICAgJVNMQSA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U0xBTGlzdCgKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICBBY3Rpb24gPT4gJFBhcmFte0FjdGlvbn0sCiAgICAgICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwogICAgfQogICAgcmV0dXJuIFwlU0xBOwp9Cgo9aXRlbSBVc2Vyc0dldCgpCkdldCBhIEhhc2ggcmVmZXJlbmNlIHRvIGFsbCB1c2VycyB0aGF0IGhhdmUgcmlnaHRzIG9uIGEgUXVldWUgb3IgdGhlIHNzZXJzIHRoYXQgaGF2ZSB0aGF0IHF1ZXVlIGluCnRoZSAiTXkgUXVldWVzIiBsaXN0CgogICAgbXkgJFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPlVzZXJzR2V0KAogICAgICAgIFF1ZXVlSUQgICAgICAgICA9PiAzLAogICAgICAgIEFsbFVzZXJzICAgICAgICA9PiAxICMgT3B0aW9uYWwsIFRvIGdldCB0aGUgY29tcGxldGUgbGlzdCBvZiB1c2VycyB3aXRoIHJpZ2h0cyBpbiB0aGUgcXVldWUKICAgICAgICBVc2VySUQgICAgICAgICAgPT4gMSwKICAgICk7CgogICAgIyBhIHJlc3VsdCBjb3VsZCBiZQoKICAgICRSZXN1bHQgPSBbCiAgICAgICAgMSAgICA9PiAiT1RSUyBBZG1pbiAocm9vdEBsb2NhbGhvc3QpIiwKICAgICAgICAxMTM4ID0+ICJBbXkgQWxsZW4gKEFheWxhKSAiCiAgICBdLAoKPWN1dAoKc3ViIFVzZXJzR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgdXNlcnMKICAgIG15ICVTaG93blVzZXJzICAgICAgID0gKCk7CiAgICBteSAlQWxsR3JvdXBzTWVtYmVycyA9ICRTZWxmLT57VXNlck9iamVjdH0tPlVzZXJMaXN0KAogICAgICAgIFR5cGUgID0+ICdMb25nJywKICAgICAgICBWYWxpZCA9PiAxLAogICAgKTsKCiAgICAjIGp1c3Qgc2hvdyBvbmx5IHVzZXJzIHdpdGggc2VsZWN0ZWQgY3VzdG9tIHF1ZXVlCiAgICBpZiAoICRQYXJhbXtRdWV1ZUlEfSAmJiAhJFBhcmFte0FsbFVzZXJzfSApIHsKICAgICAgICBteSBAVXNlcklEcyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+R2V0U3Vic2NyaWJlZFVzZXJJRHNCeVF1ZXVlSUQoJVBhcmFtKTsKICAgICAgICBmb3IgKCBzb3J0IGtleXMgJUFsbEdyb3Vwc01lbWJlcnMgKSB7CiAgICAgICAgICAgIG15ICRIaXQgPSAwOwogICAgICAgICAgICBmb3IgbXkgJFVJRCAoQFVzZXJJRHMpIHsKICAgICAgICAgICAgICAgIGlmICggJFVJRCBlcSAkXyApIHsKICAgICAgICAgICAgICAgICAgICAkSGl0ID0gMTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoICEkSGl0ICkgewogICAgICAgICAgICAgICAgZGVsZXRlICRBbGxHcm91cHNNZW1iZXJzeyRffTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIHNob3cgYWxsIHN5c3RlbSB1c2VycwogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGlja2V0OjpDaGFuZ2VPd25lclRvRXZlcnlvbmUnKSApIHsKICAgICAgICAlU2hvd25Vc2VycyA9ICVBbGxHcm91cHNNZW1iZXJzOwogICAgfQoKICAgICMgc2hvdyBhbGwgdXNlcnMgd2hvIGFyZSBydyBpbiB0aGUgcXVldWUgZ3JvdXAKICAgIGVsc2lmICggJFBhcmFte1F1ZXVlSUR9ICkgewogICAgICAgIG15ICRHSUQgPSAkU2VsZi0+e1F1ZXVlT2JqZWN0fS0+R2V0UXVldWVHcm91cElEKCBRdWV1ZUlEID0+ICRQYXJhbXtRdWV1ZUlEfSApOwogICAgICAgIG15ICVNZW1iZXJMaXN0ID0gJFNlbGYtPntHcm91cE9iamVjdH0tPkdyb3VwTWVtYmVyTGlzdCgKICAgICAgICAgICAgR3JvdXBJRCA9PiAkR0lELAogICAgICAgICAgICBUeXBlICAgID0+ICdydycsCiAgICAgICAgICAgIFJlc3VsdCAgPT4gJ0hBU0gnLAogICAgICAgICAgICBDYWNoZWQgID0+IDEsCiAgICAgICAgKTsKICAgICAgICBmb3IgKCBzb3J0IGtleXMgJU1lbWJlckxpc3QgKSB7CiAgICAgICAgICAgIGlmICggJEFsbEdyb3Vwc01lbWJlcnN7JF99ICkgewogICAgICAgICAgICAgICAgJFNob3duVXNlcnN7JF99ID0gJEFsbEdyb3Vwc01lbWJlcnN7JF99OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIFwlU2hvd25Vc2VyczsKfQoKPWl0ZW0gTmV4dFN0YXRlc0dldCgpCkdldCBhIEhhc2ggcmVmZXJlbmNlIHRvIGFsbCBwb3NzaWJsZSBzdGF0ZXMgYmFzZWQgb24gYSBUaWNrZXQgb3IgUXVldWUKCiAgICBteSAkUmVzdWx0ID0gJGlQaG9uZU9iamVjdC0+TmV4dFN0YXRlc0dldCgKICAgICAgICBRdWV1ZUlEICAgICAgICAgPT4gMywgICN8fCBUaWNrZVRJRCBvcHRpb25hbAogICAgICAgIFRpY2tldElEICAgICAgICA9PiAyMjMgI3x8IFF1ZXVlSUQgb3B0aW9uYWwKICAgICAgICBVc2VySUQgICAgICAgICAgPT4gMSwKICAgICk7CgogICAgIyBhIHJlc3VsdCBjb3VsZCBiZQoKICAgICRSZXN1bHQgPSBbCiAgICAgICAgMSAgPT4gIm5ldyIsCiAgICAgICAgMiAgPT4gImNsb3NlZCBzdWNjZXNzZnVsIiwKICAgICAgICAzICA9PiAiY2xvc2VkIHVuc3VjY2Vzc2Z1bCIsCiAgICAgICAgNCAgPT4gIm9wZW4iLAogICAgICAgIDUgID0+ICJyZW1vdmVkIgogICAgICAgIDYgID0+ICJwZW5kaW5nIHJlbWluZGVyIiwKICAgICAgICA3ICA9PiAicGVuZGluZyBhdXRvIGNsb3NlKyIsCiAgICAgICAgOCAgPT4gInBlbmRpbmcgYXV0byBjbG9zZS0iLAogICAgICAgIDkgID0+ICJtZXJnZWQiLAogICAgICAgIDEwID0+ICJjbG9zZWQgd2l0aCB3b3JrYXJvdW5kIiwKICAgIF0sCgo9Y3V0CgpzdWIgTmV4dFN0YXRlc0dldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICVOZXh0U3RhdGVzID0gKCk7CiAgICBpZiAoICRQYXJhbXtRdWV1ZUlEfSB8fCAkUGFyYW17VGlja2V0SUR9ICkgewogICAgICAgICVOZXh0U3RhdGVzID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5TdGF0ZUxpc3QoCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgQWN0aW9uID0+ICRQYXJhbXtBY3Rpb259LAogICAgICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgIH0KICAgIHJldHVybiBcJU5leHRTdGF0ZXM7Cn0KCj1pdGVtIFByaW9yaXRpZXNHZXQoKQpHZXQgYSBIYXNoIHJlZmVyZW5jZSB0byBhbGwgcG9zc2libGUgcHJpb3JpdGllcwoKICAgIG15ICRSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5Qcmlvcml0aWVzR2V0KAogICAgICAgIFVzZXJJRCAgICAgICAgICA9PiAxLAogICAgKTsKCiAgICAjIGEgcmVzdWx0IGNvdWxkIGJlCgogICAgJFJlc3VsdCA9IFsKICAgICAgICAxID0+ICIxIHZlcnkgbG93IiwKICAgICAgICAyID0+ICIyIGxvdyIsCiAgICAgICAgMyA9PiAiMyBub3JtYWwiLAogICAgICAgIDQgPT4gIjQgaGlnaCIsCiAgICAgICAgNSA9PiAiNSB2ZXJ5IGhpZ2giLAogICAgXSwKCj1jdXQKCnN1YiBQcmlvcml0aWVzR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJVByaW9yaXRpZXMgPSAoKTsKCiAgICAjIGdldCBwcmlvcml0eQogICAgJVByaW9yaXRpZXMgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlByaW9yaXR5TGlzdCgKICAgICAgICAlUGFyYW0sCiAgICAgICAgQWN0aW9uID0+ICRQYXJhbXtBY3Rpb259LAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgcmV0dXJuIFwlUHJpb3JpdGllczsKfQoKPWl0ZW0gQ3VzdG9tZXJTZWFyY2goKQpHZXQgYSBIYXNoIHJlZmVyZW5jZSB0byBhbGwgcG9zc2libGUgY3VzdG9tZXJzIG1hdGNoaW5nIHRoZSBnaXZlbiBzZWFyY2gKcGFyYW1ldGVyLCB1c2UgIioiIGZvciBhbGwuCgogICAgbXkgJFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPkN1c3RvbWVyU2VhcmNoKAogICAgICAgIFNlYXJjaCAgICAgICAgICA9PiAnc3cnLAogICAgICAgIFVzZXJJRCAgICAgICAgICA9PiAxLAogICAgKTsKCiAgICAjIGEgcmVzdWx0IGNvdWxkIGJlCgogICAgJFJlc3VsdCA9IFsKICAgICAgICBSYXkgICA9PiAnIlJheSBQYXJrIiA8cnBAc3cuY29tPicsCiAgICAgICAgRGF2aWQgPT4gJyJEYXZpZCBQcm93c2UiIDxkcEBzdy5jb20+JywKICAgIF0sCgo9Y3V0CgpzdWIgQ3VzdG9tZXJTZWFyY2ggewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBBdXRvQ29tcGxldGUgc2V0dGluZ3MgZm9ybSBjb25maWcKICAgICRTZWxmLT57Q29uZmlnfSA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdBdXRvQ29tcGxldGU6OkFnZW50JyktPntEZWZhdWx0fTsKCiAgICBteSAlQ3VzdG9tZXJzOwoKICAgICMgc2VhcmNoIG9ubHkgaWYgdGhlIHNlYXJjaCBzdHJpbmcgaXMgYXQgbGVhc3QgYXMgbG9uZyBhcyB0aGUgTWluaW11bSBRdWVyeSBMZW5naHQKICAgIGlmICggbGVuZ3RoKCAkUGFyYW17U2VhcmNofSApID49ICRTZWxmLT57Q29uZmlnfS0+e01pblF1ZXJ5TGVuZ3RofSApIHsKICAgICAgICAlQ3VzdG9tZXJzID0gJFNlbGYtPntDdXN0b21lclVzZXJPYmplY3R9LT5DdXN0b21lclNlYXJjaCgKICAgICAgICAgICAgU2VhcmNoID0+ICRQYXJhbXtTZWFyY2h9LAogICAgICAgICk7CiAgICB9CiAgICByZXR1cm4gXCVDdXN0b21lcnM7Cn0KCj1pdGVtIFNjcmVlbkFjdGlvbnMoKQpQZXJmb3JtcyBhIHRpY2tldCBhY3Rpb24gKEFjdGlvbnMgaW5jbHVkZSBQaG9uZSwgTm90ZSwgQ2xvc2UsIENvbXBvc2Ugb3IgTW92ZSkKClBob25lICAgKE5ldyBwaG9uZSB0aWNrZXQpCk5vdGUgICAgKEFkZCBhIG5vdGUgdG8gYSBUaWNrZXQpCkNsb3NlICAgKENsb3NlIGEgdGNrZXQpCkNvbXBvc2UgKFJlcGx5IG9yIHJlc3BvbnNlIGEgdGlja2V0KQpNb3ZlICAgIChDaGFuZ2UgdGlja2V0IHF1ZXVlKQoKVGhlIGFyZ3VtZW50cyB0YWtlbiBkZXBlbmQgb24gdGhlIHJlc3VsdHMgb2YgU2NyZWVuQ29uZmlnKCkKClRoZSByZXN1bHQgaXMgdGhlIFRpY2tldElEIGZvciBBY3Rpb24gUGhvbmUgb3IgQXJ0aWNsZUlEIGZvciB0aGUgb3RoZXIgYWN0aW9ucwoKICAgIG15IEBSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5TY3JlZW5BY3Rpb25zKAogICAgICAgIEFjdGlvbiAgICAgICAgICAgICAgPT4gIlBob25lIiwKICAgICAgICBTdWJqZWN0ICAgICAgICAgICAgID0+ICJpUGhvbmUgVGlja2V0IiwKICAgICAgICBDdXN0b21lcklEICAgICAgICAgID0+ICJvdHJzIiwKICAgICAgICBCb2R5ICAgICAgICAgICAgICAgID0+ICJNeSBmaXNydCBpUGhvbmUgdGlja2V0IiwKICAgICAgICBDdXN0b21lclVzZXJMb2dpbiAgID0+ICJBYXlsYSIsCiAgICAgICAgVGltZVVuaXRzICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgUXVldWVJRCAgICAgICAgICAgICA9PiAzLAogICAgICAgIE93bmVySUQgICAgICAgICAgICAgPT4gMjMsCiAgICAgICAgUmVzcG9uc2lsYmVJRCAgICAgICA9PiA0NSwKICAgICAgICBTdGF0ZUlEICAgICAgICAgICAgID0+IDQsCiAgICAgICAgUGVuZGluZ0RhdGUgICAgICAgICA9PiIyMDEwLTA3LTA5IDIzOjU0OjE4IiwKICAgICAgICBQcmlvcml0eUlEICAgICAgICAgID0+IDEsCiAgICAgICAgRHlhbm1pY0ZpZWxkX05hbWVYICA9PiAnc29tZSB2YWx1ZScsCiAgICAgICAgVXNlcklEICAgICAgICAgICAgICA9PiAxLAogICAgKTsKCiAgICAjIGEgcmVzdWx0IGNvdWxkIGJlCgogICAgQFJlc3VsdCA9ICggMjI0ICk7Cgo9Y3V0CgpzdWIgU2NyZWVuQWN0aW9ucyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICVVc2VyUHJlZmVyZW5jZXMgPSAkU2VsZi0+e1VzZXJPYmplY3R9LT5HZXRQcmVmZXJlbmNlcyggVXNlcklEID0+ICRQYXJhbXtVc2VySUR9ICk7CiAgICAkU2VsZi0+e1VzZXJUaW1lWm9uZX0gPSAkVXNlclByZWZlcmVuY2Vze1VzZXJUaW1lWm9uZX07CgogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGltZVpvbmVVc2VyJykgJiYgJFNlbGYtPntVc2VyVGltZVpvbmV9ICkgewogICAgICAgICRTZWxmLT57VXNlclRpbWVPYmplY3R9ID0gS2VybmVsOjpTeXN0ZW06OlRpbWUtPm5ldyggJXskU2VsZn0gKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRTZWxmLT57VXNlclRpbWVPYmplY3R9ID0gJFNlbGYtPntUaW1lT2JqZWN0fTsKICAgICAgICAkU2VsZi0+e1VzZXJUaW1lWm9uZX0gICA9ICcnOwogICAgfQoKICAgICRQYXJhbXtVc2VyVGltZVpvbmV9ID0gJFNlbGYtPntVc2VyVGltZVpvbmV9OwoKICAgIGlmICggJFBhcmFte0FjdGlvbn0gKSB7CiAgICAgICAgbXkgJFJlc3VsdDsKICAgICAgICBpZiAoICRQYXJhbXtBY3Rpb259IGVxICdQaG9uZScgKSB7CiAgICAgICAgICAgICRSZXN1bHQgPSAkU2VsZi0+X1RpY2tldFBob25lTmV3KCVQYXJhbSk7CiAgICAgICAgICAgIGlmICgkUmVzdWx0KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJFJlc3VsdDsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgfQogICAgICAgIGlmICggJFBhcmFte0FjdGlvbn0gZXEgJ05vdGUnIHx8ICRQYXJhbXtBY3Rpb259IGVxICdDbG9zZScgKSB7CiAgICAgICAgICAgICRSZXN1bHQgPSAkU2VsZi0+X1RpY2tldENvbW1vbkFjdGlvbnMoJVBhcmFtKTsKICAgICAgICAgICAgaWYgKCRSZXN1bHQpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkUmVzdWx0OwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICB9CiAgICAgICAgaWYgKCAkUGFyYW17QWN0aW9ufSBlcSAnQ29tcG9zZScgKSB7CiAgICAgICAgICAgICRSZXN1bHQgPSAkU2VsZi0+X1RpY2tldENvbXBvc2UoJVBhcmFtKTsKICAgICAgICAgICAgaWYgKCRSZXN1bHQpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkUmVzdWx0OwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICB9CiAgICAgICAgaWYgKCAkUGFyYW17QWN0aW9ufSBlcSAnTW92ZScgKSB7CiAgICAgICAgICAgICRSZXN1bHQgPSAkU2VsZi0+X1RpY2tldE1vdmUoJVBhcmFtKTsKICAgICAgICAgICAgaWYgKCRSZXN1bHQpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkUmVzdWx0OwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICB9CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdBY3Rpb24gdW5kZWZpbmVkISBleHBlY3RlZCBQaG9uZSwgTm90ZSwgQ2xvc2UsIENvbXBvc2Ugb3IgTW92ZSwgJwogICAgICAgICAgICAgICAgLiAnYnV0ICcgLiAkUGFyYW17QWN0aW9ufSAuICcgZm91bmQnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuIC0xOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdObyBBY3Rpb24gZ2l2ZW4hIFBsZWFzZSBjb250YWN0IHRoZSBhZG1pbi4nLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuIC0xOwogICAgfQp9Cgo9aXRlbSBWZXJzaW9uR2V0KCkKR2V0IGEgSGFzaCByZWZlcmVuY2Ugd2l0aCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgb3RycyBpUGhvbmUgUGFja2FnZSBleHRlbnNpb24KCiAgICBteSAkUmVzdXQgPSAkaVBob25lT2JqZWN0LT5WZXJzaW9uR2V0KAogICAgICAgIFVzZXJJRCA9PiAxOwogICAgKTsKCiAgICBhIHJlc3VsdCBjb3VsZCBiZQoKICAgICRSZXN1bHQgPSBbCiAgICAgICAgTmFtZSAgICA9PiAiaVBob25lSGFuZGxlIgogICAgICAgIFZlcnNpb24gPT4gIjAuOS4yIiwKICAgICAgICBWZW5kb3IgID0+ICJPVFJTIEFHIiwKICAgICAgICBVUkwgICAgID0+ICJMPGh0dHA6Ly9vdHJzLm9yZy8+IiwKICAgIF07Cgo9Y3V0CgpzdWIgVmVyc2lvbkdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGlmICggISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTm8gVXNlcklEIGdpdmVuISBQbGVhc2UgY29udGFjdCB0aGUgYWRtaW4uJywKICAgICAgICApOwogICAgICAgIHJldHVybiAtMTsKICAgIH0KCiAgICAjIGdldCBob21lIHBhdGgKICAgIG15ICRIb21lID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ0hvbWUnKTsKCiAgICAjIGxvYWQgUkVMRUFTRSBmaWxlCiAgICBpZiAoIC1lICEiJEhvbWUvdmFyL1JFTEVBU0UuaVBob25lSGFuZGxlIiApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkVSUk9SOiAkSG9tZS92YXIvUkVMRUFTRS5pUGhvbmVIYW5kbGUgZG9lcyBub3QgZXhpc3QhIFRoaXMgZmlsZSBpcyIKICAgICAgICAgICAgICAgIC4gIiBuZWVkZWQgYnkgaVBob25lSGFuZGxlLCB0aGUgc3lzdGVtIHdpbGwgbm90IHdvcmsgd2l0aG91dCB0aGlzIGZpbGUuXG4iLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuIC0xOwogICAgfQogICAgbXkgJFBhY2thZ2VOYW1lOwogICAgbXkgJFBhY2thZ2VWZXJzaW9uOwoKICAgICMgcmVhZCBSRUxFQVNFIGZpbGUgYW5kIHN0b3JlIGl0IGFzIGFuIGFycmF5IHJlZmVyZW5jZQogICAgbXkgJFByb2R1Y3QgPSAkU2VsZi0+e01haW5PYmplY3R9LT5GaWxlUmVhZCgKICAgICAgICBMb2NhdGlvbiA9PiAiJEhvbWUvdmFyL1JFTEVBU0UuaVBob25lSGFuZGxlIiwKICAgICAgICBSZXN1bHQgICA9PiAiQVJSQVkiLAogICAgKTsKCiAgICAjIHNlbmQgYW5kIGVycm9yIGlmIFJFTEVBU0UgZmlsZSB3YXMgbm90IHJlYWQKICAgIGlmICggISRQcm9kdWN0ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiRVJST1I6IENhbid0IHJlYWQgJEhvbWUvdmFyL1JFTEVBU0UuaVBob25lSGFuZGxlISBUaGlzIGZpbGUgaXMiCiAgICAgICAgICAgICAgICAuICIgbmVlZGVkIGJ5IGlQaG9uZUhhbmRsZSwgdGhlIHN5c3RlbSB3aWxsIG5vdCB3b3JrIHdpdGhvdXQgdGhpcyBmaWxlLlxuIiwKICAgICAgICApOwogICAgICAgIHJldHVybiAtMTsKICAgIH0KCiAgICAjIGdldCBQYWNrYWdlTmFtZSBhbmQgUGFja2FnZVZlcnNpb24gZnJvbSBSRUxFQVNFIGZpbGUKICAgIGZvciBteSAkTGluZSAoIEB7JFByb2R1Y3R9ICkgewoKICAgICAgICAjIGZpbHRlcmluZyBvZiBjb21tZW50IGxpbmVzCiAgICAgICAgaWYgKCAkTGluZSAhfiBte1xBIFwjfW1zeCApIHsKICAgICAgICAgICAgaWYgKCAkTGluZSA9fiBte1xBIFBST0RVQ1QgXHN7MCwyfSA9IFxzezAsMn0gKC4qKSBcc3swLDJ9IFx6fW1zeGkgKSB7CiAgICAgICAgICAgICAgICAkUGFja2FnZU5hbWUgPSAkMTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRMaW5lID1+IG17XEEgVkVSU0lPTiBcc3swLDJ9ID0gXHN7MCwyfSAoLiopIFxzezAsMn0gXHp9bXN4aSApIHsKICAgICAgICAgICAgICAgICRQYWNrYWdlVmVyc2lvbiA9ICQxOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiB7CiAgICAgICAgTmFtZSAgICAgID0+ICRQYWNrYWdlTmFtZSwKICAgICAgICBWZXJzaW9uICAgPT4gJFBhY2thZ2VWZXJzaW9uLAogICAgICAgIFZlbmRvciAgICA9PiAnT1RSUyBBRycsCiAgICAgICAgVVJMICAgICAgID0+ICdodHRwOi8vb3Rycy5vcmcvJywKICAgICAgICBGcmFtZXdvcmsgPT4gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1ZlcnNpb24nKSwKICAgIH07Cn0KCj1pdGVtIEN1c3RvbWVySURHZXQoKQpHZXQgdGhlIEN1c3RvbWVyIElEIGZyb20gYSBnaXZlbiBjdXN0b21lciBsb2dpbgoKICAgIG15ICRSZXN1dCA9ICRpUGhvbmVPYmplY3QtPkN1c3RvbWVySURHZXQoCiAgICAgICAgQ3VzdG9tZXJVc2VySUQgPT4gIkRhdmlkIjsKICAgICk7CgogICAgYSByZXN1bHQgY291bGQgYmUKCiAgICAkUmVzdWx0ID0gInN3IgoKPWN1dAoKc3ViIEN1c3RvbWVySURHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIGZvciBwYXJhbWV0ZXJzCiAgICBpZiAoICEkUGFyYW17Q3VzdG9tZXJVc2VySUR9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBDdXN0b21lclVzZXJJRCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuIC0xOwogICAgfQogICAgbXkgJEN1c3RvbWVySUQ7CgogICAgIyBnZXQgY3VzdG9tZXIgZGF0YQogICAgbXkgJUN1c3RvbWVyVXNlckRhdGEgPSAkU2VsZi0+e0N1c3RvbWVyVXNlck9iamVjdH0tPkN1c3RvbWVyVXNlckRhdGFHZXQoCiAgICAgICAgVXNlciA9PiAkUGFyYW17Q3VzdG9tZXJVc2VySUR9LAogICAgKTsKICAgIGlmICggJUN1c3RvbWVyVXNlckRhdGEgJiYgJEN1c3RvbWVyVXNlckRhdGF7VXNlckN1c3RvbWVySUR9ICkgewogICAgICAgICRDdXN0b21lcklEID0gJEN1c3RvbWVyVXNlckRhdGF7VXNlckN1c3RvbWVySUR9OwogICAgICAgIHJldHVybiAkQ3VzdG9tZXJJRDsKICAgIH0KICAgIGVsc2UgewogICAgICAgIHJldHVybiAnJzsKICAgIH0KfQoKPWl0ZW0gQXJ0aWNsZUluZGV4KCkKCnJldHVybnMgYW4gYXJyYXkgd2l0aCBhcnRpY2xlIGlkJ3Mgb3IgJycgaWYgdGlja2V0IGhhcyBubyBhcnRpY2xlcwoKICAgIG15IEBBcnRpY2xlSURzID0gJGlQaG9uZU9iamVjdC0+QXJ0aWNsZUluZGV4KAogICAgICAgIFRpY2tldElEID0+IDEyMywKICAgICk7CgogICAgbXkgQEFydGljbGVJRHMgPSAkaVBob25lT2JqZWN0LT5BcnRpY2xlSW5kZXgoCiAgICAgICAgU2VuZGVyVHlwZSA9PiAnY3VzdG9tZXInLAogICAgICAgIFRpY2tldElEICAgPT4gMTIzLAogICAgKTsKCj1jdXQKCnN1YiBBcnRpY2xlSW5kZXggewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSBASW5kZXggPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPkFydGljbGVJbmRleCglUGFyYW0pOwoKICAgIHJldHVybiBASW5kZXg7Cn0KCj1pdGVtIEluaXRDb25maWdHZXQoKQoKcmV0dXJucyBhIGhhc2ggcmVmZXJlbmNlIHdpdGggaW5pdGlhbCBjb25maWd1cmF0aW9uIHJlcXVpcmVkIGJ5IHRoZSBpUGhvbmUgYXBwCgogICAgbXkgJFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPkluaXRDb25maWdHZXQoCiAgICAgICAgVXNlcklEID0+IDEsCiAgICApOwoKICAgIGEgcmVzdWx0IGNvdWxkIGJlCgogICAgJFJlc3VsdCA9IFsKICAgICAgICBUaWNrZXRSZXNwb25zaWJsZSAgICAgICAgICA9PiAxLAogICAgICAgIFRpY2tldFdhdGNoZXIgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgQ3VycmVudFRpbWVzdGFtcCAgICAgICAgICAgPT4gIjIwMTAtMTAtMjYgMTE6NTM6MzUiLAogICAgICAgIFZlcnNpb25HZXQgICAgICAgICAgICAgICAgID0+IHsKICAgICAgICAgICAgVVJMICAgICAgID0+ICJodHRwOi8vb3Rycy5vcmcvIiwKICAgICAgICAgICAgRnJhbWV3b3JrID0+ICIzLjMueCBnaXQiLAogICAgICAgICAgICBWZXJzaW9uICAgPT4gIjAuOS42IiwKICAgICAgICAgICAgVmVuZG9yICAgID0+ICJPVFJTIEFHIiwKICAgICAgICAgICAgTmFtZSAgICAgID0+ICJpUGhvbmVIYW5kbGUiCiAgICAgICAgfSwKICAgICAgICBDdXN0b21lclNlYXJjaEF1dG9Db21wbGV0ZSA9PiB7CiAgICAgICAgICAgIFF1ZXJ5RGVsYXkgICAgICAgICAgPT4gMC4xLAogICAgICAgICAgICBBY3RpdmUgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIE1heFJlc3VsdHNEaXNwbGF5ZWQgPT4gMjAsCiAgICAgICAgICAgIFR5cGVBaGVhZCAgICAgICAgICAgPT4gZmFsc2UsCiAgICAgICAgICAgIE1pblF1ZXJ5TGVuZ3RoICAgICAgPT4gMywKICAgICAgICB9LAogICAgICAgIERlZmF1bHRDaGFyc2V0ICAgICAgICAgICAgID0+ICJ1dGYtOCIsCiAgICBdOwoKPWN1dAoKc3ViIEluaXRDb25maWdHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBpZiAoICEkUGFyYW17VXNlcklEfSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05vIFVzZXJJRCBnaXZlbiEgUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluLicsCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gLTE7CiAgICB9CgogICAgbXkgJUluaXRDb25maWc7CgogICAgJEluaXRDb25maWd7VGlja2V0V2F0Y2hlcn0gICAgICAgICAgICAgID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpY2tldDo6V2F0Y2hlcicpOwogICAgJEluaXRDb25maWd7VGlja2V0UmVzcG9uc2libGV9ICAgICAgICAgID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpY2tldDo6UmVzcG9uc2libGUnKTsKICAgICRJbml0Q29uZmlne0RlZmF1bHRDaGFyc2V0fSAgICAgICAgICAgICA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdEZWZhdWx0Q2hhcnNldCcpOwogICAgJEluaXRDb25maWd7Q3VzdG9tZXJTZWFyY2hBdXRvQ29tcGxldGV9ID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ0F1dG9Db21wbGV0ZTo6QWdlbnQnKS0+e0RlZmF1bHR9OwogICAgJEluaXRDb25maWd7Q3VycmVudFRpbWVzdGFtcH0gICAgICAgICAgID0gJFNlbGYtPntUaW1lT2JqZWN0fS0+Q3VycmVudFRpbWVzdGFtcCgpOwogICAgJEluaXRDb25maWd7VmVyc2lvbkdldH0gICAgICAgICAgICAgICAgID0gJFNlbGYtPlZlcnNpb25HZXQoJVBhcmFtKTsKCiAgICByZXR1cm4gXCVJbml0Q29uZmlnOwp9CgojIGludGVybmFsIHN1YnJvdXRpbmVzCgpzdWIgX0dldFR5cGVzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJVR5cGUgPSAoKTsKCiAgICAjIGdldCB0eXBlCiAgICAlVHlwZSA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0VHlwZUxpc3QoCiAgICAgICAgJVBhcmFtLAogICAgICAgIEFjdGlvbiA9PiAkUGFyYW17QWN0aW9ufSwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwogICAgcmV0dXJuIFwlVHlwZTsKfQoKc3ViIF9HZXRUb3MgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG93biBzZWxlY3Rpb24KICAgIG15ICVOZXdUb3MgPSAoKTsKICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT57J1RpY2tldDo6RnJvbnRlbmQ6Ok5ld1F1ZXVlT3duU2VsZWN0aW9uJ30gKSB7CiAgICAgICAgJU5ld1RvcyA9ICV7ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+eydUaWNrZXQ6OkZyb250ZW5kOjpOZXdRdWV1ZU93blNlbGVjdGlvbid9IH07CiAgICB9CiAgICBlbHNlIHsKCiAgICAgICAgIyBTZWxlY3Rpb25UeXBlIFF1ZXVlIG9yIFN5c3RlbUFkZHJlc3M/CiAgICAgICAgbXkgJVRvcyA9ICgpOwogICAgICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpY2tldDo6RnJvbnRlbmQ6Ok5ld1F1ZXVlU2VsZWN0aW9uVHlwZScpIGVxICdRdWV1ZScgKSB7CiAgICAgICAgICAgICVUb3MgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPk1vdmVMaXN0KAogICAgICAgICAgICAgICAgVHlwZSAgICA9PiAnY3JlYXRlJywKICAgICAgICAgICAgICAgIEFjdGlvbiAgPT4gJFBhcmFte0FjdGlvbn0sCiAgICAgICAgICAgICAgICBRdWV1ZUlEID0+ICRQYXJhbXtRdWV1ZUlEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAlVG9zID0gJFNlbGYtPntEQk9iamVjdH0tPkdldFRhYmxlRGF0YSgKICAgICAgICAgICAgICAgIFRhYmxlID0+ICdzeXN0ZW1fYWRkcmVzcycsCiAgICAgICAgICAgICAgICBXaGF0ICA9PiAncXVldWVfaWQsIGlkJywKICAgICAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgICAgICAgICBDbGFtcCA9PiAxLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgY3JlYXRlIHBlcm1pc3Npb24gcXVldWVzCiAgICAgICAgbXkgJVVzZXJHcm91cHMgPSAkU2VsZi0+e0dyb3VwT2JqZWN0fS0+R3JvdXBNZW1iZXJMaXN0KAogICAgICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgIFR5cGUgICA9PiAnY3JlYXRlJywKICAgICAgICAgICAgUmVzdWx0ID0+ICdIQVNIJywKICAgICAgICAgICAgQ2FjaGVkID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBidWlsZCBzZWxlY3Rpb24gc3RyaW5nCiAgICAgICAgZm9yIG15ICRRdWV1ZUlEICggc29ydCBrZXlzICVUb3MgKSB7CiAgICAgICAgICAgIG15ICVRdWV1ZURhdGEgPSAkU2VsZi0+e1F1ZXVlT2JqZWN0fS0+UXVldWVHZXQoIElEID0+ICRRdWV1ZUlEICk7CgogICAgICAgICAgICAjIHBlcm1pc3Npb24gY2hlY2ssIGNhbiB3ZSBjcmVhdGUgbmV3IHRpY2tldHMgaW4gcXVldWUKICAgICAgICAgICAgbmV4dCBpZiAhJFVzZXJHcm91cHN7ICRRdWV1ZURhdGF7R3JvdXBJRH0gfTsKCiAgICAgICAgICAgIG15ICRTdHJpbmcgPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGlja2V0OjpGcm9udGVuZDo6TmV3UXVldWVTZWxlY3Rpb25TdHJpbmcnKQogICAgICAgICAgICAgICAgfHwgJzxSZWFsbmFtZT4gPDxFbWFpbD4+IC0gUXVldWU6IDxRdWV1ZT4nOwogICAgICAgICAgICAkU3RyaW5nID1+IHMvPFF1ZXVlPi8kUXVldWVEYXRhe05hbWV9L2c7CiAgICAgICAgICAgICRTdHJpbmcgPX4gcy88UXVldWVDb21tZW50Pi8kUXVldWVEYXRhe0NvbW1lbnR9L2c7CiAgICAgICAgICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpY2tldDo6RnJvbnRlbmQ6Ok5ld1F1ZXVlU2VsZWN0aW9uVHlwZScpIG5lICdRdWV1ZScgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBteSAlU3lzdGVtQWRkcmVzc0RhdGEgPSAkU2VsZi0+e1N5c3RlbUFkZHJlc3N9LT5TeXN0ZW1BZGRyZXNzR2V0KAogICAgICAgICAgICAgICAgICAgIElEID0+ICRUb3N7JFF1ZXVlSUR9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICRTdHJpbmcgPX4gcy88UmVhbG5hbWU+LyRTeXN0ZW1BZGRyZXNzRGF0YXtSZWFsbmFtZX0vZzsKICAgICAgICAgICAgICAgICRTdHJpbmcgPX4gcy88RW1haWw+LyRTeXN0ZW1BZGRyZXNzRGF0YXtOYW1lfS9nOwogICAgICAgICAgICB9CiAgICAgICAgICAgICROZXdUb3N7JFF1ZXVlSUR9ID0gJFN0cmluZzsKICAgICAgICB9CiAgICB9CgogICAgIyBhZGQgZW1wdHkgc2VsZWN0aW9uCiAgICAkTmV3VG9zeycnfSA9ICctJzsKICAgIHJldHVybiBcJU5ld1RvczsKfQoKc3ViIF9HZXROb3RlVHlwZXMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlRGVmYXVsdE5vdGVUeXBlcyA9ICV7ICRTZWxmLT57Q29uZmlnfS0+e0FydGljbGVUeXBlc30gfTsKCiAgICBteSAlTm90ZVR5cGVzID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5BcnRpY2xlVHlwZUxpc3QoIFJlc3VsdCA9PiAnSEFTSCcgKTsKICAgIGZvciAoIHNvcnQga2V5cyAlTm90ZVR5cGVzICkgewogICAgICAgIGlmICggISREZWZhdWx0Tm90ZVR5cGVzeyAkTm90ZVR5cGVzeyRffSB9ICkgewogICAgICAgICAgICBkZWxldGUgJE5vdGVUeXBlc3skX307CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIFwlTm90ZVR5cGVzOwp9CgpzdWIgX0dldFNjcmVlbkVsZW1lbnRzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgQFNjcmVlbkVsZW1lbnRzOwoKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57VGl0bGV9ICkgewogICAgICAgIG15ICVUaWNrZXREYXRhID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRHZXQoCiAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICAgICAgbXkgJFRpdGxlRGVmYXVsdDsKICAgICAgICBpZiAoICRUaWNrZXREYXRhe1RpdGxlfSApIHsKICAgICAgICAgICAgJFRpdGxlRGVmYXVsdCA9ICRUaWNrZXREYXRhe1RpdGxlfSB8fCAnJzsKICAgICAgICB9CgogICAgICAgIG15ICRUaXRsZUVsZW1lbnRzID0gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ1RpdGxlJywKICAgICAgICAgICAgVGl0bGUgICAgID0+ICRTZWxmLT57TGFuZ3VhZ2VPYmplY3R9LT5HZXQoJ1RpdGxlJyksCiAgICAgICAgICAgIERhdGF0eXBlICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXdUeXBlICA9PiAnSW5wdXQnLAogICAgICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICAgICAgTWF4ICAgICAgID0+IDIwMCwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDEsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAkVGl0bGVEZWZhdWx0IHx8ICcnLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRUaXRsZUVsZW1lbnRzOwogICAgfQoKICAgICMgdHlwZQogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGlja2V0OjpUeXBlJykgJiYgJFNlbGYtPntDb25maWd9LT57VGlja2V0VHlwZX0gKSB7CiAgICAgICAgbXkgJFR5cGVFbGVtZW50cyA9IHsKICAgICAgICAgICAgTmFtZSAgICAgPT4gJ1R5cGVJRCcsCiAgICAgICAgICAgIFRpdGxlICAgID0+ICRTZWxmLT57TGFuZ3VhZ2VPYmplY3R9LT5HZXQoJ1R5cGUnKSwKICAgICAgICAgICAgRGF0YXR5cGUgPT4gJ1RleHQnLAogICAgICAgICAgICBWaWV3dHlwZSA9PiAnUGlja2VyJywKICAgICAgICAgICAgT3B0aW9ucyAgPT4gewogICAgICAgICAgICAgICAgJXsKICAgICAgICAgICAgICAgICAgICAkU2VsZi0+X0dldFR5cGVzKAogICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDEsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkVHlwZUVsZW1lbnRzOwogICAgfQoKICAgICMgZnJvbSwgdG8KICAgIGlmICggJFBhcmFte1NjcmVlbn0gZXEgJ1Bob25lJyApIHsKICAgICAgICBteSAkQ3VzdG9tZXJFbGVtZW50cyA9IHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJ0N1c3RvbWVyVXNlckxvZ2luJywKICAgICAgICAgICAgVGl0bGUgICAgICAgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgnRnJvbSBjdXN0b21lcicpLAogICAgICAgICAgICBEYXRhdHlwZSAgICAgICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICAgICAgID0+ICdBdXRvQ29tcGxldGlvbicsCiAgICAgICAgICAgIER5bmFtaWNPcHRpb25zID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdCAgICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICdDdXN0b21lclNlYXJjaCcsCiAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0+IFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFNlYXJjaCA9PiAnQ3VzdG9tZXJVc2VyTG9naW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICB9LAogICAgICAgICAgICBBdXRvRmlsbEVsZW1lbnRzID0+IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBFbGVtZW50TmFtZSA9PiAnQ3VzdG9tZXJJRCcsCiAgICAgICAgICAgICAgICAgICAgT2JqZWN0ICAgICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kICAgICAgPT4gJ0N1c3RvbWVySURHZXQnLAogICAgICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tZXJVc2VySUQgPT4gJ0N1c3RvbWVyVXNlckxvZ2luJywKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDEsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkQ3VzdG9tZXJFbGVtZW50czsKICAgIH0KCiAgICBpZiAoICRQYXJhbXtTY3JlZW59IGVxICdQaG9uZScgfHwgJFBhcmFte1NjcmVlbn0gZXEgJ01vdmUnICkgewogICAgICAgIG15ICRUaXRsZTsKICAgICAgICBpZiAoICRQYXJhbXtTY3JlZW59IGVxICdQaG9uZScgKSB7CiAgICAgICAgICAgICRUaXRsZSA9ICdUbyBxdWV1ZSc7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkVGl0bGUgPSAnTmV3IFF1ZXVlJwogICAgICAgIH0KICAgICAgICBteSAkUXVldWVFbGVtZW50cyA9IHsKICAgICAgICAgICAgTmFtZSAgICAgPT4gJ1F1ZXVlSUQnLAogICAgICAgICAgICBUaXRsZSAgICA9PiAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCRUaXRsZSksCiAgICAgICAgICAgIERhdGF0eXBlID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgPT4gJ1BpY2tlcicsCiAgICAgICAgICAgIE9wdGlvbnMgID0+IHsKICAgICAgICAgICAgICAgICV7CiAgICAgICAgICAgICAgICAgICAgJFNlbGYtPl9HZXRUb3MoCiAgICAgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMSwKICAgICAgICAgICAgRGVmYXVsdCAgID0+ICcnLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRRdWV1ZUVsZW1lbnRzOwogICAgfQoKICAgICMgc2VydmljZQogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGlja2V0OjpTZXJ2aWNlJykgJiYgJFNlbGYtPntDb25maWd9LT57U2VydmljZX0gKSB7CiAgICAgICAgbXkgJFNlcnZpY2VFbGVtZW50cyA9IHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJ1NlcnZpY2VJRCcsCiAgICAgICAgICAgIFRpdGxlICAgICAgICAgID0+ICRTZWxmLT57TGFuZ3VhZ2VPYmplY3R9LT5HZXQoJ1NlcnZpY2UnKSwKICAgICAgICAgICAgRGF0YXR5cGUgICAgICAgPT4gJ1RleHQnLAogICAgICAgICAgICBWaWV3dHlwZSAgICAgICA9PiAnUGlja2VyJywKICAgICAgICAgICAgRHluYW1pY09wdGlvbnMgPT4gewogICAgICAgICAgICAgICAgT2JqZWN0ICAgICA9PiAnQ3VzdG9tT2JqZWN0JywKICAgICAgICAgICAgICAgIE1ldGhvZCAgICAgPT4gJ1NlcnZpY2VzR2V0JywKICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgPT4gWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tZXJVc2VySUQgPT4gJ0N1c3RvbWVyVXNlckxvZ2luJywKICAgICAgICAgICAgICAgICAgICAgICAgUXVldWVJRCAgICAgICAgPT4gJ1F1ZXVlSUQnLAogICAgICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCAgICAgICA9PiAnVGlja2V0SUQnLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICB9LAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMCwKICAgICAgICAgICAgRGVmYXVsdCAgID0+ICcnLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRTZXJ2aWNlRWxlbWVudHM7CiAgICB9CgogICAgIyBzbGEKICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpY2tldDo6U2VydmljZScpICYmICRTZWxmLT57Q29uZmlnfS0+e1NlcnZpY2V9ICkgewogICAgICAgIG15ICRTTEFFbGVtZW50cyA9IHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJ1NMQUlEJywKICAgICAgICAgICAgVGl0bGUgICAgICAgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgnU0xBJyksCiAgICAgICAgICAgIERhdGF0eXBlICAgICAgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgICAgICAgPT4gJ1BpY2tlcicsCiAgICAgICAgICAgIER5bmFtaWNPcHRpb25zID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdCAgICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICdTTEFzR2V0JywKICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgPT4gWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tZXJVc2VySUQgPT4gJ0N1c3RvbWVyVXNlckxvZ2luJywKICAgICAgICAgICAgICAgICAgICAgICAgUXVldWVJRCAgICAgICAgPT4gJ1F1ZXVlSUQnLAogICAgICAgICAgICAgICAgICAgICAgICBTZXJ2aWNlSUQgICAgICA9PiAnU2VydmljZUlEJywKICAgICAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgICAgICAgPT4gJ1RpY2tldElEJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDAsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkU0xBRWxlbWVudHM7CiAgICB9CgogICAgIyBvd25lcgogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntPd25lcn0gKSB7CiAgICAgICAgbXkgJFRpdGxlOwogICAgICAgIGlmICggJFBhcmFte1NjcmVlbn0gZXEgJ01vdmUnICkgewogICAgICAgICAgICAkVGl0bGUgPSAnTmV3IE93bmVyJzsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRUaXRsZSA9ICdPd25lcic7CiAgICAgICAgfQoKICAgICAgICBteSAkT3duZXJFbGVtZW50cyA9IHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJ093bmVySUQnLAogICAgICAgICAgICBUaXRsZSAgICAgICAgICA9PiAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCRUaXRsZSksCiAgICAgICAgICAgIERhdGF0eXBlICAgICAgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgICAgICAgPT4gJ1BpY2tlcicsCiAgICAgICAgICAgIER5bmFtaWNPcHRpb25zID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdCAgICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICdVc2Vyc0dldCcsCiAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0+IFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFF1ZXVlSUQgID0+ICdRdWV1ZUlEJywKICAgICAgICAgICAgICAgICAgICAgICAgQWxsVXNlcnMgPT4gMSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDAsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkT3duZXJFbGVtZW50czsKICAgIH0KCiAgICAjIHJlc3BvbnNpYmxlCiAgICBpZiAoICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdUaWNrZXQ6OlJlc3BvbnNpYmxlJykgJiYgJFNlbGYtPntDb25maWd9LT57UmVzcG9uc2libGV9ICkgewogICAgICAgIG15ICRSZXNwb25zaWJsZUVsZW1lbnRzID0gewogICAgICAgICAgICBOYW1lICAgICAgICAgICA9PiAnUmVzcG9uc2libGVJRCcsCiAgICAgICAgICAgIFRpdGxlICAgICAgICAgID0+ICRTZWxmLT57TGFuZ3VhZ2VPYmplY3R9LT5HZXQoJ1Jlc3BvbnNpYmxlJyksCiAgICAgICAgICAgIERhdGF0eXBlICAgICAgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgICAgICAgPT4gJ1BpY2tlcicsCiAgICAgICAgICAgIER5bmFtaWNPcHRpb25zID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdCAgICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICdVc2Vyc0dldCcsCiAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0+IFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFF1ZXVlSUQgID0+ICdRdWV1ZUlEJywKICAgICAgICAgICAgICAgICAgICAgICAgQWxsVXNlcnMgPT4gMSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDAsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkUmVzcG9uc2libGVFbGVtZW50czsKICAgIH0KCiAgICBpZiAoICRQYXJhbXtTY3JlZW59IGVxICdDb21wb3NlJyApIHsKICAgICAgICBteSAlQ29tcG9zZURlZmF1bHRzID0gJFNlbGYtPl9HZXRDb21wb3NlRGVmYXVsdHMoCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAhJUNvbXBvc2VEZWZhdWx0cyApIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgbXkgJENvbXBvc2VGcm9tRWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnRnJvbScsCiAgICAgICAgICAgIFRpdGxlICAgICA9PiAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCdGcm9tJyksCiAgICAgICAgICAgIERhdGF0eXBlICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnSW5wdXQnLAogICAgICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICAgICAgTWF4ICAgICAgID0+IDUwLAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMSwKICAgICAgICAgICAgUmVhZG9ubHkgID0+IDEsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAkQ29tcG9zZURlZmF1bHRze0Zyb219IHx8ICcnLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRDb21wb3NlRnJvbUVsZW1lbnRzOwoKICAgICAgICBteSAkQ29tcG9zZVRvRWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnVG8nLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgnVG8nKSwKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgID0+ICdFTWFpbCcsCiAgICAgICAgICAgIE1pbiAgICAgICA9PiAxLAogICAgICAgICAgICBNYXggICAgICAgPT4gNTAsCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAwLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJENvbXBvc2VEZWZhdWx0c3tUb30gfHwgJycsCiAgICAgICAgfTsKICAgICAgICBwdXNoIEBTY3JlZW5FbGVtZW50cywgJENvbXBvc2VUb0VsZW1lbnRzOwoKICAgICAgICBteSAkQ29tcG9zZUNjRWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnQ2MnLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgnQ2MnKSwKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgID0+ICdFTWFpbCcsCiAgICAgICAgICAgIE1pbiAgICAgICA9PiAxLAogICAgICAgICAgICBNYXggICAgICAgPT4gNTAsCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAwLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJENvbXBvc2VEZWZhdWx0c3tDY30gfHwgJycsCiAgICAgICAgfTsKICAgICAgICBwdXNoIEBTY3JlZW5FbGVtZW50cywgJENvbXBvc2VDY0VsZW1lbnRzOwoKICAgICAgICBteSAkQ29tcG9zZUJjY0VsZW1lbnRzID0gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ0JjYycsCiAgICAgICAgICAgIFRpdGxlICAgICA9PiAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCdCY2MnKSwKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgID0+ICdFTWFpbCcsCiAgICAgICAgICAgIE1pbiAgICAgICA9PiAxLAogICAgICAgICAgICBNYXggICAgICAgPT4gNTAsCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAwLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJENvbXBvc2VEZWZhdWx0c3tCY2N9IHx8ICcnLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRDb21wb3NlQmNjRWxlbWVudHM7CgogICAgICAgIG15ICRTdWJqZWN0RWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnU3ViamVjdCcsCiAgICAgICAgICAgIFRpdGxlICAgICA9PiAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCdTdWJqZWN0JyksCiAgICAgICAgICAgIERhdGF0eXBlICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnSW5wdXQnLAogICAgICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICAgICAgTWF4ICAgICAgID0+IDI1MCwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDEsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAkQ29tcG9zZURlZmF1bHRze1N1YmplY3R9IHx8ICcnLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRTdWJqZWN0RWxlbWVudHM7CgogICAgICAgIG15ICRCb2R5RWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnQm9keScsCiAgICAgICAgICAgIFRpdGxlICAgICA9PiAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCdUZXh0JyksCiAgICAgICAgICAgIERhdGF0eXBlICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnVGV4dEFyZWEnLAogICAgICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICAgICAgTWF4ICAgICAgID0+IDIwXzAwMCwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDEsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAkQ29tcG9zZURlZmF1bHRze0JvZHl9IHx8ICcnLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRCb2R5RWxlbWVudHM7CiAgICB9CgogICAgIyBzdWJqZWN0CiAgICBpZiAoICRQYXJhbXtTY3JlZW59IG5lICdDb21wb3NlJyApIHsKICAgICAgICBteSAkRGVmYXVsdFN1YmplY3QgPSAnJzsKICAgICAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1N1YmplY3R9ICkgewogICAgICAgICAgICAkRGVmYXVsdFN1YmplY3QgPSAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCAkU2VsZi0+e0NvbmZpZ30tPntTdWJqZWN0fSApCiAgICAgICAgfQoKICAgICAgICBteSAkU3ViamVjdEVsZW1lbnRzID0gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ1N1YmplY3QnLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgnU3ViamVjdCcpLAogICAgICAgICAgICBEYXRhdHlwZSAgPT4gJ1RleHQnLAogICAgICAgICAgICBWaWV3dHlwZSAgPT4gJ0lucHV0JywKICAgICAgICAgICAgTWluICAgICAgID0+IDEsCiAgICAgICAgICAgIE1heCAgICAgICA9PiAyNTAsCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAxLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJERlZmF1bHRTdWJqZWN0IHx8ICcnLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRTdWJqZWN0RWxlbWVudHM7CiAgICB9CgogICAgIyBib2R5CiAgICBpZiAoICRQYXJhbXtTY3JlZW59IG5lICdDb21wb3NlJyApIHsKICAgICAgICBteSAkQm9keUVsZW1lbnRzID0gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ0JvZHknLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgnVGV4dCcpLAogICAgICAgICAgICBEYXRhdHlwZSAgPT4gJ1RleHQnLAogICAgICAgICAgICBWaWV3dHlwZSAgPT4gJ1RleHRBcmVhJywKICAgICAgICAgICAgTWluICAgICAgID0+IDEsCiAgICAgICAgICAgIE1heCAgICAgICA9PiAyMF8wMDAsCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAxLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJFNlbGYtPntDb25maWd9LT57Qm9keX0gfHwgJycsCiAgICAgICAgfTsKICAgICAgICBwdXNoIEBTY3JlZW5FbGVtZW50cywgJEJvZHlFbGVtZW50czsKICAgIH0KCiAgICAjIGN1c3RvbWVyIGlkCiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e0N1c3RvbWVySUR9ICkgewogICAgICAgIG15ICRDdXN0b21lckVsZW1lbnRzID0gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ0N1c3RvbWVySUQnLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgnQ3VzdG9tZXJJRCcpLAogICAgICAgICAgICBEYXRhdHlwZSAgPT4gJ1RleHQnLAogICAgICAgICAgICBWaWV3dHlwZSAgPT4gJ0lucHV0JywKICAgICAgICAgICAgTWluICAgICAgID0+IDEsCiAgICAgICAgICAgIE1heCAgICAgICA9PiAxNTAsCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAwLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJycsCiAgICAgICAgfTsKICAgICAgICBwdXNoIEBTY3JlZW5FbGVtZW50cywgJEN1c3RvbWVyRWxlbWVudHM7CiAgICB9CgogICAgI25vdGUKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57Tm90ZX0gKSB7CgogICAgICAgIG15ICREZWZhdWx0QXJ0aWNsZVR5cGU7CiAgICAgICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntBcnRpY2xlVHlwZURlZmF1bHR9ICkgewogICAgICAgICAgICAkRGVmYXVsdEFydGljbGVUeXBlID0gJFNlbGYtPntDb25maWd9LT57QXJ0aWNsZVR5cGVEZWZhdWx0fTsKICAgICAgICB9CgogICAgICAgIG15ICREZWZhdWx0QXJ0aWNsZVR5cGVJRDsKICAgICAgICBpZiAoJERlZmF1bHRBcnRpY2xlVHlwZSkgewogICAgICAgICAgICAkRGVmYXVsdEFydGljbGVUeXBlSUQgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPkFydGljbGVUeXBlTG9va3VwKAogICAgICAgICAgICAgICAgQXJ0aWNsZVR5cGUgPT4gJERlZmF1bHRBcnRpY2xlVHlwZSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgbXkgJE5vdGVFbGVtZW50cyA9IHsKICAgICAgICAgICAgTmFtZSAgICAgPT4gJ0FydGljbGVUeXBlSUQnLAogICAgICAgICAgICBUaXRsZSAgICA9PiAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCdOb3RlIHR5cGUnKSwKICAgICAgICAgICAgRGF0YXR5cGUgPT4gJ1RleHQnLAogICAgICAgICAgICBWaWV3dHlwZSA9PiAnUGlja2VyJywKICAgICAgICAgICAgT3B0aW9ucyAgPT4gewogICAgICAgICAgICAgICAgJXsgJFNlbGYtPl9HZXROb3RlVHlwZXMoICVQYXJhbSwgKSB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgPT4gMSwKICAgICAgICAgICAgRGVmYXVsdCAgICAgICA9PiAkRGVmYXVsdEFydGljbGVUeXBlSUQgfHwgJycsCiAgICAgICAgICAgIERlZmF1bHRPcHRpb24gPT4gJERlZmF1bHRBcnRpY2xlVHlwZSB8fCAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkTm90ZUVsZW1lbnRzOwogICAgfQoKICAgICMgc3RhdGUKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57U3RhdGV9ICkgewoKICAgICAgICBteSAkRGVmYXVsdFN0YXRlOwogICAgICAgIGlmICggJFNlbGYtPntDb25maWd9LT57U3RhdGVEZWZhdWx0fSApIHsKICAgICAgICAgICAgJERlZmF1bHRTdGF0ZSA9ICRTZWxmLT57Q29uZmlnfS0+e1N0YXRlRGVmYXVsdH0KICAgICAgICB9CgogICAgICAgIG15ICREZWZhdWx0U3RhdGVJRDsKICAgICAgICBpZiAoJERlZmF1bHRTdGF0ZSkgewoKICAgICAgICAgICAgIyBjYW4ndCB1c2UgU3RhdGVMb29rdXAgZm9yIDIuNCBmcmFtZXdvcmsgY29tcGF0aWJpbGl0eQogICAgICAgICAgICBteSAlU3RhdGUgPSAkU2VsZi0+e1N0YXRlT2JqZWN0fS0+U3RhdGVHZXQoCiAgICAgICAgICAgICAgICBOYW1lID0+ICREZWZhdWx0U3RhdGUsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoJVN0YXRlKSB7CiAgICAgICAgICAgICAgICAkRGVmYXVsdFN0YXRlSUQgPSAkU3RhdGV7SUR9OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBteSAkU3RhdGVFbGVtZW50cyA9IHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJ1N0YXRlSUQnLAogICAgICAgICAgICBUaXRsZSAgICAgICAgICA9PiAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCdOZXh0IFRpY2tldCBTdGF0ZScpLAogICAgICAgICAgICBEYXRhdHlwZSAgICAgICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICAgICAgID0+ICdQaWNrZXInLAogICAgICAgICAgICBEeW5hbWljT3B0aW9ucyA9PiB7CiAgICAgICAgICAgICAgICBPYmplY3QgICAgID0+ICdDdXN0b21PYmplY3QnLAogICAgICAgICAgICAgICAgTWV0aG9kICAgICA9PiAnTmV4dFN0YXRlc0dldCcsCiAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0+IFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFF1ZXVlSUQgPT4gJ1F1ZXVlSUQnLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICB9LAogICAgICAgICAgICBNYW5kYXRvcnkgICAgID0+IDEsCiAgICAgICAgICAgIERlZmF1bHQgICAgICAgPT4gJERlZmF1bHRTdGF0ZUlEIHx8ICcnLAogICAgICAgICAgICBEZWZhdWx0T3B0aW9uID0+ICREZWZhdWx0U3RhdGUgfHwgJycsCiAgICAgICAgfTsKICAgICAgICBwdXNoIEBTY3JlZW5FbGVtZW50cywgJFN0YXRlRWxlbWVudHM7CiAgICB9CgogICAgIyBwZW5kaW5nIGRhdGUKICAgIGlmICggJFBhcmFte1NjcmVlbn0gZXEgJ1Bob25lJyB8fCAkUGFyYW17U2NyZWVufSBlcSAnQ29tcG9zZScgKSB7CiAgICAgICAgbXkgJFBlbmRpbmdEYXRlRWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnUGVuZGluZ0RhdGUnLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgnUGVuZGluZyBEYXRlIChmb3IgcGVuZGluZyogc3RhdGVzKScpLAogICAgICAgICAgICBEYXRhdHlwZSAgPT4gJ0RhdGVUaW1lJywKICAgICAgICAgICAgVmlld3R5cGUgID0+ICdQaWNrZXInLAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMCwKICAgICAgICAgICAgRGVmYXVsdCAgID0+ICcnLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRQZW5kaW5nRGF0ZUVsZW1lbnRzOwogICAgfQoKICAgICMgcHJpb3JpdHkKICAgIGlmICggJFBhcmFte1NjcmVlbn0gZXEgJ1Bob25lJyApIHsKCiAgICAgICAgbXkgJERlZmF1bHRQcmlvcml0eTsKICAgICAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1ByaW9yaXR5RGVmYXVsdH0gKSB7CiAgICAgICAgICAgICREZWZhdWx0UHJpb3JpdHkgPSAkU2VsZi0+e0NvbmZpZ30tPntQcmlvcml0eURlZmF1bHR9OwogICAgICAgIH0KCiAgICAgICAgbXkgJERlZmF1bHRQcmlvcml0eUlEOwogICAgICAgIGlmICgkRGVmYXVsdFByaW9yaXR5KSB7CiAgICAgICAgICAgICREZWZhdWx0UHJpb3JpdHlJRCA9ICRTZWxmLT57UHJpb3JpdHlPYmplY3R9LT5Qcmlvcml0eUxvb2t1cCgKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICREZWZhdWx0UHJpb3JpdHksCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBteSAkUHJpb3JpdHlFbGVtZW50cyA9IHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJ1ByaW9yaXR5SUQnLAogICAgICAgICAgICBUaXRsZSAgICAgICAgICA9PiAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCdQcmlvcml0eScpLAogICAgICAgICAgICBEYXRhdHlwZSAgICAgICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICAgICAgID0+ICdQaWNrZXInLAogICAgICAgICAgICBEeW5hbWljT3B0aW9ucyA9PiB7CiAgICAgICAgICAgICAgICBPYmplY3QgICAgID0+ICdDdXN0b21PYmplY3QnLAogICAgICAgICAgICAgICAgTWV0aG9kICAgICA9PiAnUHJpb3JpdGllc0dldCcsCiAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0+ICcnLAogICAgICAgICAgICB9LAogICAgICAgICAgICBNYW5kYXRvcnkgICAgID0+IDEsCiAgICAgICAgICAgIERlZmF1bHQgICAgICAgPT4gJERlZmF1bHRQcmlvcml0eUlEIHx8ICcnLAogICAgICAgICAgICBEZWZhdWx0T3B0aW9uID0+ICREZWZhdWx0UHJpb3JpdHkgfHwgJycsCiAgICAgICAgfTsKICAgICAgICBwdXNoIEBTY3JlZW5FbGVtZW50cywgJFByaW9yaXR5RWxlbWVudHM7CiAgICB9CgogICAgIyBkeW5hbWljIGZpZWxkcwogICAgIyBnZXQgZHluYW1pYyBmaWVsZCBjb25maWcgZm9yIHRoZSBzY3JlZW4KICAgICRTZWxmLT57RHluYW1pY0ZpZWxkRmlsdGVyfSA9ICRTZWxmLT57Q29uZmlnfS0+e0R5bmFtaWNGaWVsZH07CgogICAgIyBnZXQgdGhlIGR5bmFtaWMgZmllbGRzIGZvciB0aWNrZXQgb2JqZWN0CiAgICAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gPSAkU2VsZi0+e0R5bmFtaWNGaWVsZE9iamVjdH0tPkR5bmFtaWNGaWVsZExpc3RHZXQoCiAgICAgICAgVmFsaWQgICAgICAgPT4gMSwKICAgICAgICBPYmplY3RUeXBlICA9PiBbICdUaWNrZXQnLCAnQXJ0aWNsZScgXSwKICAgICAgICBGaWVsZEZpbHRlciA9PiAkU2VsZi0+e0R5bmFtaWNGaWVsZEZpbHRlcn0gfHwge30sCiAgICApOwoKICAgICMgZ2V0IHVzZXIgcHJlZmVyZW5jZXMKICAgIG15ICVVc2VyUHJlZmVyZW5jZXMgPSAkU2VsZi0+e1VzZXJPYmplY3R9LT5HZXRQcmVmZXJlbmNlcyggVXNlcklEID0+ICRQYXJhbXtVc2VySUR9ICk7CgogICAgIyBjeWNsZSB0cm91Z2ggdGhlIGFjdGl2YXRlZCBEeW5hbWljIEZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgIERZTkFNSUNGSUVMRDoKICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHsgJFNlbGYtPntEeW5hbWljRmllbGR9IH0gKSB7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSggJER5bmFtaWNGaWVsZENvbmZpZy0+e0NvbmZpZ30gKTsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9OwoKICAgICAgICAjIHNraXAgYWxsIGR5bmFtaWMgZmllbGRzIHRoYXQgYXJlIG5vdCBkZXNpZ25lZCByZW5kZXIgaW4gaVBob25lIEFwcAogICAgICAgIG15ICRJc0lQaG9uZUNhcGFibGUgPSAkU2VsZi0+e0JhY2tlbmRPYmplY3R9LT5IYXNCZWhhdmlvcigKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgIEJlaGF2aW9yICAgICAgICAgICA9PiAnSXNJUGhvbmVDYXBhYmxlJywKICAgICAgICApOwogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICEkSXNJUGhvbmVDYXBhYmxlOwoKICAgICAgICAjIGNyZWF0ZSAkVmFsdWUgYXMgdW5kZWZpbmVkIGJlY2F1c2UgYSB1c2VyIGRlZmF1bHQgdmFsdWUgY291bGQgYmUgJycKICAgICAgICBteSAkVmFsdWUgPSB1bmRlZjsKCiAgICAgICAgIyBvdmVycmlkZSB0aGUgdmFsdWUgZnJvbSB1c2VyIHByZWZlcmVuY2VzIGlmIGlzIHNldAogICAgICAgIGlmICggJFVzZXJQcmVmZXJlbmNlc3sgJ1VzZXJEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9ICkgewogICAgICAgICAgICAkVmFsdWUgPSAkVXNlclByZWZlcmVuY2VzeyAnVXNlckR5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH07CiAgICAgICAgfQoKICAgICAgICBpZiAoICRQYXJhbXtUaWNrZXRJRH0gJiYgJER5bmFtaWNGaWVsZENvbmZpZy0+e09iamVjdFR5cGV9IGVxICdUaWNrZXQnICkgewogICAgICAgICAgICAkVmFsdWUgPSAkU2VsZi0+e0JhY2tlbmRPYmplY3R9LT5WYWx1ZUdldCgKICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICAgICAgT2JqZWN0SUQgICAgICAgICAgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBteSAkRmllbGREZWZpbml0aW9uID0gJFNlbGYtPntCYWNrZW5kT2JqZWN0fS0+SVBob25lRmllbGRQYXJhbWV0ZXJCdWlsZCgKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAkVmFsdWUsCiAgICAgICAgICAgIFVzZURlZmF1bHRWYWx1ZSAgICA9PiAxLAogICAgICAgICAgICBMYW5ndWFnZU9iamVjdCAgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0sCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAkU2VsZi0+e0NvbmZpZ30tPntEeW5hbWljRmllbGR9LT57ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9ID09IDIsCiAgICAgICAgKTsKCiAgICAgICAgIyBjaGVjayBpZiB0aGUgRmllbGREZWZpbml0aW9uIGlzIGRlZmluZWQgYW5kIGNvdGFpbiBkYXRhLCBvdGhlcndpc2UgYW4gdW5kZWYgdmFyaWFibGUgaW4KICAgICAgICAjIHRoaXMgcG9pbnQgd2lsbCBjYXVzZSBhIE5VTEwgZWxlbWVudCBpbiB0aGUgQVJSQVkgYW5kIHdpbGwgY2F1c2UgaVBob25lIEFwcCB0byBjcmFzaAogICAgICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoJEZpZWxkRGVmaW5pdGlvbikgKSB7CiAgICAgICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkRmllbGREZWZpbml0aW9uOwogICAgICAgIH0KICAgIH0KCiAgICAjIHRpbWUgdW5pdHMKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57VGltZVVuaXRzfSApIHsKICAgICAgICBteSAkTWFuZGF0b3J5OwogICAgICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpY2tldDo6RnJvbnRlbmQ6Ok5lZWRBY2NvdW50ZWRUaW1lJykgKSB7CiAgICAgICAgICAgICRNYW5kYXRvcnkgPSAxOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJE1hbmRhdG9yeSA9IDA7CiAgICAgICAgfQogICAgICAgIG15ICRUaW1lVW5pdHNNZWFzdXJlICA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpUaW1lVW5pdHMnKTsKICAgICAgICBteSAkVGltZVVuaXRzRWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnVGltZVVuaXRzJywKICAgICAgICAgICAgVGl0bGUgICAgID0+ICRTZWxmLT57TGFuZ3VhZ2VPYmplY3R9LT5HZXQoIlRpbWUgdW5pdHMgJFRpbWVVbml0c01lYXN1cmUiKSwKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdOdW1lcmljJywKICAgICAgICAgICAgVmlld3R5cGUgID0+ICdJbnB1dCcsCiAgICAgICAgICAgIE1pbiAgICAgICA9PiAxLAogICAgICAgICAgICBNYXggICAgICAgPT4gMTAsCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAkTWFuZGF0b3J5LAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJycsCiAgICAgICAgfTsKICAgICAgICBwdXNoIEBTY3JlZW5FbGVtZW50cywgJFRpbWVVbml0c0VsZW1lbnRzOwogICAgfQogICAgcmV0dXJuIFxAU2NyZWVuRWxlbWVudHM7Cn0KCnN1YiBfVGlja2V0UGhvbmVOZXcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAkU2VsZi0+e0NvbmZpZ30gPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQaG9uZScpOwoKICAgIG15ICVTdGF0ZURhdGEgPSAoKTsKICAgIGlmICggJFBhcmFte1N0YXRlSUR9ICkgewogICAgICAgICVTdGF0ZURhdGEgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPntTdGF0ZU9iamVjdH0tPlN0YXRlR2V0KAogICAgICAgICAgICBJRCA9PiAkUGFyYW17U3RhdGVJRH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHRyYW5zZm9ybSBwZW5kaW5nIHRpbWUsIHRpbWUgc3RhbXAgYmFzZWQgb24gdXNlciB0aW1lIHpvbmUKICAgIGlmICggSXNTdHJpbmdXaXRoRGF0YSggJFBhcmFte1BlbmRpbmdEYXRlfSApICkgewogICAgICAgICRQYXJhbXtQZW5kaW5nRGF0ZX0gPSAkU2VsZi0+X1RyYW5zZm9ybURhdGVTZWxlY3Rpb24oCiAgICAgICAgICAgIFRpbWVTdGFtcCA9PiAkUGFyYW17UGVuZGluZ0RhdGV9LAogICAgICAgICk7CiAgICB9CgogICAgbXkgJFVzZXJUaW1lWm9uZSA9ICRTZWxmLT57VXNlclRpbWVab25lfTsKCiAgICAjIGdldCBkeW5hbWljIGZpZWxkIGNvbmZpZyBmb3IgdGhlIHNjcmVlbgogICAgJFNlbGYtPntEeW5hbWljRmllbGRGaWx0ZXJ9ID0gJFNlbGYtPntDb25maWd9LT57RHluYW1pY0ZpZWxkfTsKCiAgICAjIGdldCB0aGUgZHluYW1pYyBmaWVsZHMgZm9yIHRpY2tldCBvYmplY3QKICAgICRTZWxmLT57RHluYW1pY0ZpZWxkfSA9ICRTZWxmLT57RHluYW1pY0ZpZWxkT2JqZWN0fS0+RHluYW1pY0ZpZWxkTGlzdEdldCgKICAgICAgICBWYWxpZCAgICAgICA9PiAxLAogICAgICAgIE9iamVjdFR5cGUgID0+IFsgJ1RpY2tldCcsICdBcnRpY2xlJyBdLAogICAgICAgIEZpZWxkRmlsdGVyID0+ICRTZWxmLT57RHluYW1pY0ZpZWxkRmlsdGVyfSB8fCB7fSwKICAgICk7CgogICAgbXkgJUR5bmFtaWNGaWVsZFZhbHVlczsKCiAgICAjIGN5Y2xlIHRyb3VnaCB0aGUgYWN0aXZhdGVkIER5bmFtaWMgRmllbGRzIGZvciB0aGlzIHNjcmVlbgogICAgRFlOQU1JQ0ZJRUxEOgogICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gfSApIHsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCAkRHluYW1pY0ZpZWxkQ29uZmlnLT57Q29uZmlnfSApOwogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICEkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX07CgogICAgICAgICMgc2tpcCBhbGwgZHluYW1pYyBmaWVsZHMgdGhhdCBhcmUgbm90IGRlc2lnbmVkIHJlbmRlciBpbiBpUGhvbmUgQXBwCiAgICAgICAgbXkgJElzSVBob25lQ2FwYWJsZSA9ICRTZWxmLT57QmFja2VuZE9iamVjdH0tPkhhc0JlaGF2aW9yKAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgQmVoYXZpb3IgICAgICAgICAgID0+ICdJc0lQaG9uZUNhcGFibGUnLAogICAgICAgICk7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgISRJc0lQaG9uZUNhcGFibGU7CgogICAgICAgICMgZXh0cmFjdCB0aGUgZHluYW1pYyBmaWVsZCB2YWx1ZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAkRHluYW1pY0ZpZWxkVmFsdWVzeyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSA9ICRTZWxmLT57QmFja2VuZE9iamVjdH0tPklQaG9uZUZpZWxkVmFsdWVHZXQoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBUcmFuc2Zvcm1EYXRlcyAgICAgPT4gMSwKICAgICAgICAgICAgVXNlclRpbWVab25lICAgICAgID0+ICRVc2VyVGltZVpvbmUgfHwgMCwKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICk7CgogICAgICAgICMgcGVyZm9ybSB2YWxpZGF0aW9uIG9mIHRoZSBkYXRhCiAgICAgICAgbXkgJFZhbGlkYXRpb25SZXN1bHQgPSAkU2VsZi0+e0JhY2tlbmRPYmplY3R9LT5JUGhvbmVGaWVsZFZhbHVlVmFsaWRhdGUoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJER5bmFtaWNGaWVsZFZhbHVlc3sgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0sCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAkU2VsZi0+e0NvbmZpZ30tPntEeW5hbWljRmllbGR9LT57ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9ID09IDIsCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoJFZhbGlkYXRpb25SZXN1bHQpICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiQ291bGQgbm90IHBlcmZvcm0gdmFsaWRhdGlvbiBvbiBmaWVsZCAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TGFiZWx9ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgICMgcHJvcGFnYXRlIHZhbGlkYXRpb24gZXJyb3IKICAgICAgICBpZiAoICRWYWxpZGF0aW9uUmVzdWx0LT57U2VydmVyRXJyb3J9ICkgewoKICAgICAgICAgICAgbXkgJEVycm9yTWVzc2FnZSA9ICRWYWxpZGF0aW9uUmVzdWx0LT57RXJyb3JNZXNzYWdlfQogICAgICAgICAgICAgICAgfHwgIkR5bmFtaWMgZmllbGQgJER5bmFtaWNGaWVsZENvbmZpZy0+e0xhYmVsfSBpbnZhbGlkIjsKCiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICRFcnJvck1lc3NhZ2UsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgbXkgJEN1c3RvbWVyVXNlciA9ICRQYXJhbXtDdXN0b21lclVzZXJMb2dpbn07CiAgICBteSAkQ3VzdG9tZXJJRCA9ICRQYXJhbXtDdXN0b21lcklEfSB8fCAnJzsKCiAgICAjIHJld3JhcCBib2R5IGlmIGV4aXN0cwogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnRnJvbnRlbmQ6OlJpY2hUZXh0JykgJiYgJFBhcmFte0JvZHl9ICkgewogICAgICAgICRQYXJhbXtCb2R5fQogICAgICAgICAgICA9fiBzLyhePi4rfC57NCwkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGlja2V0OjpGcm9udGVuZDo6VGV4dEFyZWFOb3RlJyl9KSg/OlxzfFx6KS8kMVxuL2dtOwogICAgfQoKICAgICMgY2hlY2sgcGVuZGluZyBkYXRlCiAgICBpZiAoICRTdGF0ZURhdGF7VHlwZU5hbWV9ICYmICRTdGF0ZURhdGF7VHlwZU5hbWV9ID1+IC9ecGVuZGluZy9pICkgewogICAgICAgIGlmICggISRTZWxmLT57VGltZU9iamVjdH0tPlRpbWVTdGFtcDJTeXN0ZW1UaW1lKCBTdHJpbmcgPT4gJFBhcmFte1BlbmRpbmdEYXRlfSApICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAnRGF0ZSBpbnZhbGlkJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBpZiAoCiAgICAgICAgICAgICRTZWxmLT57VGltZU9iamVjdH0tPlRpbWVTdGFtcDJTeXN0ZW1UaW1lKCBTdHJpbmcgPT4gJFBhcmFte1BlbmRpbmdEYXRlfSApCiAgICAgICAgICAgIDwgJFNlbGYtPntUaW1lT2JqZWN0fS0+U3lzdGVtVGltZSgpCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdEYXRlIGludmFsaWQnLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICNnZXQgY3VzdG9tZXIgaW5mbwogICAgbXkgJUN1c3RvbWVyVXNlckRhdGEgPSAkU2VsZi0+e0N1c3RvbWVyVXNlck9iamVjdH0tPkN1c3RvbWVyVXNlckRhdGFHZXQoCiAgICAgICAgVXNlciA9PiAkQ3VzdG9tZXJVc2VyLAogICAgKTsKICAgIG15ICVDdXN0b21lclVzZXJMaXN0ID0gJFNlbGYtPntDdXN0b21lclVzZXJPYmplY3R9LT5DdXN0b21lclNlYXJjaCgKICAgICAgICBVc2VyTG9naW4gPT4gJEN1c3RvbWVyVXNlciwKICAgICk7CiAgICBteSAkRnJvbTsKICAgIGlmICglQ3VzdG9tZXJVc2VyTGlzdCkgewogICAgICAgIGZvciAoIHNvcnQga2V5cyAlQ3VzdG9tZXJVc2VyTGlzdCApIHsKCiAgICAgICAgICAgIGlmICggJFBhcmFte0N1c3RvbWVyVXNlckxvZ2lufSBlcSAkXyApIHsKICAgICAgICAgICAgICAgICRGcm9tID0gJEN1c3RvbWVyVXNlckxpc3R7JF99CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkRnJvbSA9ICRDdXN0b21lclVzZXI7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkRnJvbSA9ICRDdXN0b21lclVzZXI7CiAgICB9CgogICAgIyBjaGVjayBlbWFpbCBhZGRyZXNzCiAgICBmb3IgbXkgJEVtYWlsICggTWFpbDo6QWRkcmVzcy0+cGFyc2UoICRDdXN0b21lclVzZXJEYXRhe1VzZXJFbWFpbH0gKSApIHsKICAgICAgICBpZiAoICEkU2VsZi0+e0NoZWNrSXRlbU9iamVjdH0tPkNoZWNrRW1haWwoIEFkZHJlc3MgPT4gJEVtYWlsLT5hZGRyZXNzKCkgKSApIHsKICAgICAgICAgICAgbXkgJFNlcnZlckVycm9yID0gJFNlbGYtPntDaGVja0l0ZW1PYmplY3R9LT5DaGVja0Vycm9yKCk7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJFcnJvciBvbiBmaWVsZCBcIkZyb21cIiAgXG4gJFNlcnZlckVycm9yIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KICAgIGlmICggISRQYXJhbXtDdXN0b21lclVzZXJMb2dpbn0gKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdGcm9tIGludmFsaWQ6IEZyb20gaXMgZW1wdHknLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKCAhJFBhcmFte1N1YmplY3R9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnU3ViamVjdCBpbnZhbGlkOiBTdWJqZWN0IGlzIGVtcHR5JywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGlmICggISRQYXJhbXtRdWV1ZUlEfSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ0Rlc3RpbmF0aW9uIGludmFsaWQ6IERlc3RpbmF0aW9uIHF1ZXVlIGlzIGVtcHR5JywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGlmICgKICAgICAgICAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGlja2V0OjpTZXJ2aWNlJykKICAgICAgICAmJiAkUGFyYW17U0xBSUR9CiAgICAgICAgJiYgISRQYXJhbXtTZXJ2aWNlSUR9CiAgICAgICAgKQogICAgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnU2VydmljZSBpbnZhbGlkOiBubyBzZXJ2aWNlIHNlbGVjdGVkJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGNyZWF0ZSBuZXcgdGlja2V0LCBkbyBkYiBpbnNlcnQKICAgIG15ICRUaWNrZXRJRCA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0Q3JlYXRlKAogICAgICAgIFRpdGxlICAgICAgICA9PiAkUGFyYW17U3ViamVjdH0sCiAgICAgICAgUXVldWVJRCAgICAgID0+ICRQYXJhbXtRdWV1ZUlEfSwKICAgICAgICBTdWJqZWN0ICAgICAgPT4gJFBhcmFte1N1YmplY3R9LAogICAgICAgIExvY2sgICAgICAgICA9PiAndW5sb2NrJywKICAgICAgICBUeXBlSUQgICAgICAgPT4gJFBhcmFte1R5cGVJRH0sCiAgICAgICAgU2VydmljZUlEICAgID0+ICRQYXJhbXtTZXJ2aWNlSUR9LAogICAgICAgIFNMQUlEICAgICAgICA9PiAkUGFyYW17U0xBSUR9LAogICAgICAgIFN0YXRlSUQgICAgICA9PiAkUGFyYW17U3RhdGVJRH0sCiAgICAgICAgUHJpb3JpdHlJRCAgID0+ICRQYXJhbXtQcmlvcml0eUlEfSwKICAgICAgICBPd25lcklEICAgICAgPT4gMSwKICAgICAgICBDdXN0b21lck5vICAgPT4gJEN1c3RvbWVySUQsCiAgICAgICAgQ3VzdG9tZXJVc2VyID0+ICRDdXN0b21lclVzZXIsCiAgICAgICAgVXNlcklEICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKICAgIGlmICggISRUaWNrZXRJRCApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ0Vycm9yOiBObyB0aWNrZXQgY3JlYXRlZCEgUGxlYXNlIGNvbnRhY3QgYWRtaW4nLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgc2V0IHRpY2tldCBkeW5hbWljIGZpZWxkcwogICAgIyBjeWNsZSB0cm91Z2ggdGhlIGFjdGl2YXRlZCBEeW5hbWljIEZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgIERZTkFNSUNGSUVMRDoKICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHsgJFNlbGYtPntEeW5hbWljRmllbGR9IH0gKSB7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICREeW5hbWljRmllbGRDb25maWctPntPYmplY3RUeXBlfSBuZSAnVGlja2V0JzsKCiAgICAgICAgIyBza2lwIGFsbCBkeW5hbWljIGZpZWxkcyB0aGF0IGFyZSBub3QgZGVzaWduZWQgcmVuZGVyIGluIGlQaG9uZSBBcHAKICAgICAgICBteSAkSXNJUGhvbmVDYXBhYmxlID0gJFNlbGYtPntCYWNrZW5kT2JqZWN0fS0+SGFzQmVoYXZpb3IoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBCZWhhdmlvciAgICAgICAgICAgPT4gJ0lzSVBob25lQ2FwYWJsZScsCiAgICAgICAgKTsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJElzSVBob25lQ2FwYWJsZTsKCiAgICAgICAgIyBzZXQgdGhlIHZhbHVlCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkU2VsZi0+e0JhY2tlbmRPYmplY3R9LT5WYWx1ZVNldCgKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgIE9iamVjdElEICAgICAgICAgICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAkRHluYW1pY0ZpZWxkVmFsdWVzeyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSwKICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICB9CgogICAgbXkgJE1pbWVUeXBlID0gJ3RleHQvcGxhaW4nOwoKICAgICMgY2hlY2sgaWYgbmV3IG93bmVyIGlzIGdpdmVuICh0aGVuIHNlbmQgbm8gYWdlbnQgbm90aWZ5KQogICAgbXkgJE5vQWdlbnROb3RpZnkgPSAwOwogICAgaWYgKCAkUGFyYW17T3duZXJJRH0gKSB7CiAgICAgICAgJE5vQWdlbnROb3RpZnkgPSAxOwogICAgfQogICAgbXkgJFF1ZXVlTmFtZSA9ICRTZWxmLT57UXVldWVPYmplY3R9LT5RdWV1ZUxvb2t1cCggUXVldWVJRCA9PiAkUGFyYW17UXVldWVJRH0gKTsKCiAgICBteSAkQXJ0aWNsZUlEID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5BcnRpY2xlQ3JlYXRlKAogICAgICAgIE5vQWdlbnROb3RpZnkgPT4gJE5vQWdlbnROb3RpZnksCiAgICAgICAgVGlja2V0SUQgICAgICA9PiAkVGlja2V0SUQsCiAgICAgICAgQXJ0aWNsZVR5cGUgICA9PiAkU2VsZi0+e0NvbmZpZ30tPntBcnRpY2xlVHlwZURlZmF1bHR9LAogICAgICAgIFNlbmRlclR5cGUgICAgPT4gJFNlbGYtPntDb25maWd9LT57U2VuZGVyVHlwZX0sCiAgICAgICAgRnJvbSAgICAgICAgICA9PiAkRnJvbSwKICAgICAgICBUbyAgICAgICAgICAgID0+ICRRdWV1ZU5hbWUsCiAgICAgICAgU3ViamVjdCAgICAgICA9PiAkUGFyYW17U3ViamVjdH0sCiAgICAgICAgQm9keSAgICAgICAgICA9PiAkUGFyYW17Qm9keX0sCiAgICAgICAgTWltZVR5cGUgICAgICA9PiAkTWltZVR5cGUsCgogICAgICAgICMgaXBob25lIG11c3Qgc2VuZCBpbmZvIGluIGN1cnJlbnQgY2hhcnNldAogICAgICAgIENoYXJzZXQgICAgICAgICAgPT4gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ0RlZmF1bHRDaGFyc2V0JyksCiAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICBIaXN0b3J5VHlwZSAgICAgID0+ICRTZWxmLT57Q29uZmlnfS0+e0hpc3RvcnlUeXBlfSwKICAgICAgICBIaXN0b3J5Q29tbWVudCAgID0+ICRTZWxmLT57Q29uZmlnfS0+e0hpc3RvcnlDb21tZW50fSB8fCAnJSUnLAogICAgICAgIEF1dG9SZXNwb25zZVR5cGUgPT4gJ2F1dG8gcmVwbHknLAogICAgICAgIE9yaWdIZWFkZXIgICAgICAgPT4gewogICAgICAgICAgICBGcm9tICAgID0+ICRGcm9tLAogICAgICAgICAgICBUbyAgICAgID0+ICRRdWV1ZU5hbWUsCiAgICAgICAgICAgIFN1YmplY3QgPT4gJFBhcmFte1N1YmplY3R9LAogICAgICAgICAgICBCb2R5ICAgID0+ICRQYXJhbXtCb2R5fSwKICAgICAgICB9LAogICAgICAgIFF1ZXVlID0+ICRRdWV1ZU5hbWUsCiAgICApOwoKICAgIGlmICgkQXJ0aWNsZUlEKSB7CgogICAgICAgICMgc2V0IHRpY2tldCBkeW5hbWljIGZpZWxkcwogICAgICAgICMgY3ljbGUgdHJvdWdoIHRoZSBhY3RpdmF0ZWQgRHluYW1pYyBGaWVsZHMgZm9yIHRoaXMgc2NyZWVuCiAgICAgICAgRFlOQU1JQ0ZJRUxEOgogICAgICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHsgJFNlbGYtPntEeW5hbWljRmllbGR9IH0gKSB7CiAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgJER5bmFtaWNGaWVsZENvbmZpZy0+e09iamVjdFR5cGV9IG5lICdBcnRpY2xlJzsKCiAgICAgICAgICAgICMgc2tpcCBhbGwgZHluYW1pYyBmaWVsZHMgdGhhdCBhcmUgbm90IGRlc2lnbmVkIHJlbmRlciBpbiBpUGhvbmUgQXBwCiAgICAgICAgICAgIG15ICRJc0lQaG9uZUNhcGFibGUgPSAkU2VsZi0+e0JhY2tlbmRPYmplY3R9LT5IYXNCZWhhdmlvcigKICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICAgICAgQmVoYXZpb3IgICAgICAgICAgID0+ICdJc0lQaG9uZUNhcGFibGUnLAogICAgICAgICAgICApOwogICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJElzSVBob25lQ2FwYWJsZTsKCiAgICAgICAgICAgICMgc2V0IHRoZSB2YWx1ZQogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRTZWxmLT57QmFja2VuZE9iamVjdH0tPlZhbHVlU2V0KAogICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICAgICBPYmplY3RJRCAgICAgICAgICAgPT4gJEFydGljbGVJRCwKICAgICAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAkRHluYW1pY0ZpZWxkVmFsdWVzeyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgc2V0IG93bmVyIChpZiBuZXcgdXNlciBpZCBpcyBnaXZlbikKICAgICAgICBpZiAoICRQYXJhbXtPd25lcklEfSApIHsKICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRPd25lclNldCgKICAgICAgICAgICAgICAgIFRpY2tldElEICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBOZXdVc2VySUQgPT4gJFBhcmFte093bmVySUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBzZXQgbG9jawogICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldExvY2tTZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBMb2NrICAgICA9PiAnbG9jaycsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgZWxzZSBzZXQgb3duZXIgdG8gY3VycmVudCBhZ2VudCBidXQgZG8gbm90IGxvY2sgaXQKICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRPd25lclNldCgKICAgICAgICAgICAgICAgIFRpY2tldElEICAgICAgICAgICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBOZXdVc2VySUQgICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICBTZW5kTm9Ob3RpZmljYXRpb24gPT4gMSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgc2V0IHJlc3BvbnNpYmxlIChpZiBuZXcgdXNlciBpZCBpcyBnaXZlbikKICAgICAgICBpZiAoICRQYXJhbXtSZXNwb25zaWJsZUlEfSApIHsKICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRSZXNwb25zaWJsZVNldCgKICAgICAgICAgICAgICAgIFRpY2tldElEICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBOZXdVc2VySUQgPT4gJFBhcmFte1Jlc3BvbnNpYmxlSUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyB0aW1lIGFjY291bnRpbmcKICAgICAgICBpZiAoICRQYXJhbXtUaW1lVW5pdHN9ICkgewogICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldEFjY291bnRUaW1lKAogICAgICAgICAgICAgICAgVGlja2V0SUQgID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgIEFydGljbGVJRCA9PiAkQXJ0aWNsZUlELAogICAgICAgICAgICAgICAgVGltZVVuaXQgID0+ICRQYXJhbXtUaW1lVW5pdHN9LAogICAgICAgICAgICAgICAgVXNlcklEICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBzaG91bGQgaSBzZXQgYW4gdW5sb2NrPwogICAgICAgIG15ICVTdGF0ZURhdGEgPSAkU2VsZi0+e1N0YXRlT2JqZWN0fS0+U3RhdGVHZXQoIElEID0+ICRQYXJhbXtTdGF0ZUlEfSApOwogICAgICAgIGlmICggJFN0YXRlRGF0YXtUeXBlTmFtZX0gPX4gL15jbG9zZS9pICkgewogICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldExvY2tTZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBMb2NrICAgICA9PiAndW5sb2NrJywKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBzZXQgcGVuZGluZyB0aW1lCiAgICAgICAgZWxzaWYgKCAkU3RhdGVEYXRhe1R5cGVOYW1lfSA9fiAvXnBlbmRpbmcvaSApIHsKCiAgICAgICAgICAgICMgc2V0IHBlbmRpbmcgdGltZQogICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFBlbmRpbmdUaW1lU2V0KAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBTdHJpbmcgICA9PiAkUGFyYW17UGVuZGluZ0RhdGV9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICByZXR1cm4gaW50ICRUaWNrZXRJRDsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnRXJyb3I6IG5vIGFydGljbGUgd2FzIGNyZWF0ZWQhIFBsZWFzZSBjb250YWN0IHRoZSBhZG1pbicsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9Cn0KCnN1YiBfVGlja2V0Q29tbW9uQWN0aW9ucyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICRTZWxmLT57Q29uZmlnfSA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCAnaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXQnIC4gJFBhcmFte0FjdGlvbn0gKTsKCiAgICBteSAlU3RhdGVEYXRhID0gKCk7CgogICAgaWYgKCAkUGFyYW17U3RhdGVJRH0gKSB7CiAgICAgICAgJVN0YXRlRGF0YSA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+e1N0YXRlT2JqZWN0fS0+U3RhdGVHZXQoCiAgICAgICAgICAgIElEID0+ICRQYXJhbXtTdGF0ZUlEfSwKICAgICAgICApOwogICAgfQoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17VGlja2V0SUR9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTm8gVGlja2V0SUQgaXMgZ2l2ZW4hIFBsZWFzZSBjb250YWN0IHRoZSBhZG1pbi4nLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY2hlY2sgcGVybWlzc2lvbnMKICAgIG15ICRBY2Nlc3MgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFBlcm1pc3Npb24oCiAgICAgICAgVHlwZSAgICAgPT4gJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0sCiAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBlcnJvciBzY3JlZW4sIGRvbid0IHNob3cgdGlja2V0CiAgICBpZiAoICEkQWNjZXNzICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiWW91IG5lZWQgJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0gcGVybWlzc2lvbnMhIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSAlVGlja2V0ID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRHZXQoIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0gKTsKCiAgICAjIGdldCBsb2NrIHN0YXRlCiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1JlcXVpcmVkTG9ja30gKSB7CiAgICAgICAgbXkgJExvY2tlZCA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0TG9ja0dldCggVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSApOwoKICAgICAgICBpZiAoICEkTG9ja2VkICkgewogICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldExvY2tTZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgTG9jayAgICAgPT4gJ2xvY2snLAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRPd25lclNldCgKICAgICAgICAgICAgICAgIFRpY2tldElEICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgTmV3VXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgbXkgJEFjY2Vzc09rID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5Pd25lckNoZWNrKAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIE93bmVySUQgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgICAgICBpZiAoICEkQWNjZXNzT2sgKSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdTb3JyeSwgeW91IG5lZWQgdG8gYmUgdGhlIG93bmVyIHRvIGRvIHRoaXMgYWN0aW9uISAnCiAgICAgICAgICAgICAgICAgICAgICAgIC4gJ1BsZWFzZSBjaGFuZ2UgdGhlIG93bmVyIGZpcnN0LicsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgdHJhbnNmb3JtIHBlbmRpbmcgdGltZSwgdGltZSBzdGFtcCBiYXNlZCBvbiB1c2VyIHRpbWUgem9uZQogICAgaWYgKCBJc1N0cmluZ1dpdGhEYXRhKCAkUGFyYW17UGVuZGluZ0RhdGV9ICkgKSB7CiAgICAgICAgJFBhcmFte1BlbmRpbmdEYXRlfSA9ICRTZWxmLT5fVHJhbnNmb3JtRGF0ZVNlbGVjdGlvbigKICAgICAgICAgICAgVGltZVN0YW1wID0+ICRQYXJhbXtQZW5kaW5nRGF0ZX0sCiAgICAgICAgKTsKICAgIH0KCiAgICBteSAkVXNlclRpbWVab25lID0gJFNlbGYtPntVc2VyVGltZVpvbmV9OwoKICAgICMgZ2V0IGR5bmFtaWMgZmllbGQgY29uZmlnIGZvciB0aGUgc2NyZWVuCiAgICAkU2VsZi0+e0R5bmFtaWNGaWVsZEZpbHRlcn0gPSAkU2VsZi0+e0NvbmZpZ30tPntEeW5hbWljRmllbGR9OwoKICAgICMgZ2V0IHRoZSBkeW5hbWljIGZpZWxkcyBmb3IgdGlja2V0IG9iamVjdAogICAgJFNlbGYtPntEeW5hbWljRmllbGR9ID0gJFNlbGYtPntEeW5hbWljRmllbGRPYmplY3R9LT5EeW5hbWljRmllbGRMaXN0R2V0KAogICAgICAgIFZhbGlkICAgICAgID0+IDEsCiAgICAgICAgT2JqZWN0VHlwZSAgPT4gWyAnVGlja2V0JywgJ0FydGljbGUnIF0sCiAgICAgICAgRmllbGRGaWx0ZXIgPT4gJFNlbGYtPntEeW5hbWljRmllbGRGaWx0ZXJ9IHx8IHt9LAogICAgKTsKCiAgICBteSAlRHluYW1pY0ZpZWxkVmFsdWVzOwoKICAgICMgY3ljbGUgdHJvdWdoIHRoZSBhY3RpdmF0ZWQgRHluYW1pYyBGaWVsZHMgZm9yIHRoaXMgc2NyZWVuCiAgICBEWU5BTUlDRklFTEQ6CiAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7ICRTZWxmLT57RHluYW1pY0ZpZWxkfSB9ICkgewogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoICREeW5hbWljRmllbGRDb25maWctPntDb25maWd9ICk7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgISREeW5hbWljRmllbGRDb25maWctPntOYW1lfTsKCiAgICAgICAgIyBza2lwIGFsbCBkeW5hbWljIGZpZWxkcyB0aGF0IGFyZSBub3QgZGVzaWduZWQgcmVuZGVyIGluIGlQaG9uZSBBcHAKICAgICAgICBteSAkSXNJUGhvbmVDYXBhYmxlID0gJFNlbGYtPntCYWNrZW5kT2JqZWN0fS0+SGFzQmVoYXZpb3IoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBCZWhhdmlvciAgICAgICAgICAgPT4gJ0lzSVBob25lQ2FwYWJsZScsCiAgICAgICAgKTsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJElzSVBob25lQ2FwYWJsZTsKCiAgICAgICAgIyBleHRyYWN0IHRoZSBkeW5hbWljIGZpZWxkIHZhbHVlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICREeW5hbWljRmllbGRWYWx1ZXN7ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9ID0gJFNlbGYtPntCYWNrZW5kT2JqZWN0fS0+SVBob25lRmllbGRWYWx1ZUdldCgKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgIFRyYW5zZm9ybURhdGVzICAgICA9PiAxLAogICAgICAgICAgICBVc2VyVGltZVpvbmUgICAgICAgPT4gJFVzZXJUaW1lWm9uZSB8fCAwLAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgKTsKCiAgICAgICAgIyBwZXJmb3JtIHZhbGlkYXRpb24gb2YgdGhlIGRhdGEKICAgICAgICBteSAkVmFsaWRhdGlvblJlc3VsdCA9ICRTZWxmLT57QmFja2VuZE9iamVjdH0tPklQaG9uZUZpZWxkVmFsdWVWYWxpZGF0ZSgKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAkRHluYW1pY0ZpZWxkVmFsdWVzeyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSwKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+ICRTZWxmLT57Q29uZmlnfS0+e0R5bmFtaWNGaWVsZH0tPnsgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0gPT0gMiwKICAgICAgICApOwoKICAgICAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSgkVmFsaWRhdGlvblJlc3VsdCkgKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJDb3VsZCBub3QgcGVyZm9ybSB2YWxpZGF0aW9uIG9uIGZpZWxkICREeW5hbWljRmllbGRDb25maWctPntMYWJlbH0hIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgIyBwcm9wYWdhdGUgdmFsaWRhdGlvbiBlcnJvcgogICAgICAgIGlmICggJFZhbGlkYXRpb25SZXN1bHQtPntTZXJ2ZXJFcnJvcn0gKSB7CgogICAgICAgICAgICBteSAkRXJyb3JNZXNzYWdlID0gJFZhbGlkYXRpb25SZXN1bHQtPntFcnJvck1lc3NhZ2V9CiAgICAgICAgICAgICAgICB8fCAiRHluYW1pYyBmaWVsZCAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TGFiZWx9IGludmFsaWQiOwoKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gJEVycm9yTWVzc2FnZSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIHJld3JhcCBib2R5IGlmIG5vIHJpY2ggdGV4dCBpcyB1c2VkCiAgICBpZiAoICRQYXJhbXtCb2R5fSApIHsKICAgICAgICBteSAkU2l6ZSA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpUZXh0QXJlYU5vdGUnKSB8fCA3MDsKICAgICAgICAkUGFyYW17Qm9keX0gPX4gcy8oXj4uK3wuezQsJFNpemV9KSg/OlxzfFx6KS8kMVxuL2dtOwogICAgfQoKICAgICMgY2hlY2sgcGVuZGluZyBkYXRlCiAgICBpZiAoICRTdGF0ZURhdGF7VHlwZU5hbWV9ICYmICRTdGF0ZURhdGF7VHlwZU5hbWV9ID1+IC9ecGVuZGluZy9pICkgewogICAgICAgIGlmICggISRTZWxmLT57VGltZU9iamVjdH0tPlRpbWVTdGFtcDJTeXN0ZW1UaW1lKCBTdHJpbmcgPT4gJFBhcmFte1BlbmRpbmdEYXRlfSApICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAnRGF0ZSBpbnZhbGlkJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBpZiAoCiAgICAgICAgICAgICRTZWxmLT57VGltZU9iamVjdH0tPlRpbWVTdGFtcDJTeXN0ZW1UaW1lKCBTdHJpbmcgPT4gJFBhcmFte1BlbmRpbmdEYXRlfSApCiAgICAgICAgICAgIDwgJFNlbGYtPntUaW1lT2JqZWN0fS0+U3lzdGVtVGltZSgpCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdEYXRlIGludmFsaWQnLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57Tm90ZX0gKSB7CgogICAgICAgICMgY2hlY2sgc3ViamVjdAogICAgICAgIGlmICggISRQYXJhbXtTdWJqZWN0fSApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ1N1YmplY3QgSW52YWxpZDogdGhlIFN1YmplY3QgaXMgZW1wdHkhJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayBib2R5CiAgICAgICAgaWYgKCAhJFBhcmFte0JvZHl9ICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAnQm9keSBJbnZhbGlkOiB0aGUgQm9keSBpcyBlbXB0eSEnLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICNjaGVjayBpZiBUaXRsZQogICAgaWYgKCAhJFBhcmFte1RpdGxlfSApIHsKICAgICAgICBteSAlVGlja2V0RGF0YSA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0R2V0KAogICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAkUGFyYW17VGl0bGV9ID0gJFRpY2tldERhdGF7VGl0bGV9OwogICAgfQoKICAgICMgc2V0IG5ldyB0aXRsZQogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntUaXRsZX0gKSB7CiAgICAgICAgaWYgKCBkZWZpbmVkICRQYXJhbXtUaXRsZX0gKSB7CiAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0VGl0bGVVcGRhdGUoCiAgICAgICAgICAgICAgICBUaXRsZSAgICA9PiAkUGFyYW17VGl0bGV9LAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIHNldCBuZXcgdHlwZQogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGlja2V0OjpUeXBlJykgJiYgJFNlbGYtPntDb25maWd9LT57VGlja2V0VHlwZX0gKSB7CiAgICAgICAgaWYgKCAkUGFyYW17VHlwZUlEfSApIHsKICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRUeXBlU2V0KAogICAgICAgICAgICAgICAgVHlwZUlEICAgPT4gJFBhcmFte1R5cGVJRH0sCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgc2V0IG5ldyBzZXJ2aWNlCiAgICBpZiAoICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdUaWNrZXQ6OlNlcnZpY2UnKSAmJiAkU2VsZi0+e0NvbmZpZ30tPntTZXJ2aWNlfSApIHsKICAgICAgICBpZiAoIGRlZmluZWQgJFBhcmFte1NlcnZpY2VJRH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U2VydmljZVNldCgKICAgICAgICAgICAgICAgIFNlcnZpY2VJRCAgICAgID0+ICRQYXJhbXtTZXJ2aWNlSUR9LAogICAgICAgICAgICAgICAgVGlja2V0SUQgICAgICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIEN1c3RvbWVyVXNlcklEID0+ICRUaWNrZXR7Q3VzdG9tZXJVc2VySUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGlmICggZGVmaW5lZCAkUGFyYW17U0xBSUR9ICkgewogICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFNMQVNldCgKICAgICAgICAgICAgICAgIFNMQUlEICAgID0+ICRQYXJhbXtTTEFJRH0sCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgc2V0IG5ldyBvd25lcgogICAgbXkgQE5vdGlmeURvbmU7CiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e093bmVyfSApIHsKICAgICAgICBteSAkQm9keVRleHQgPSAkUGFyYW17Qm9keX0gfHwgJyc7CiAgICAgICAgaWYgKCAkUGFyYW17T3duZXJJRH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0TG9ja1NldCgKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBMb2NrICAgICA9PiAnbG9jaycsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldE93bmVyU2V0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICBOZXdVc2VySUQgPT4gJFBhcmFte093bmVySUR9LAogICAgICAgICAgICAgICAgQ29tbWVudCAgID0+ICRCb2R5VGV4dCwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgcmVtZW1iZXIgdG8gbm90IG5vdGlmeSBvd25lciB0d2ljZQogICAgICAgICAgICBpZiAoICRTdWNjZXNzICYmICRTdWNjZXNzIGVxIDEgKSB7CiAgICAgICAgICAgICAgICBwdXNoIEBOb3RpZnlEb25lLCAkUGFyYW17T3duZXJJRH07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBzZXQgbmV3IHJlc3BvbnNpYmxlCiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1Jlc3BvbnNpYmxlfSApIHsKICAgICAgICBpZiAoICRQYXJhbXtSZXNwb25zaWJsZUlEfSApIHsKICAgICAgICAgICAgbXkgJEJvZHlUZXh0ID0gJFBhcmFte0JvZHl9IHx8ICcnOwogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0UmVzcG9uc2libGVTZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgIE5ld1VzZXJJRCA9PiAkUGFyYW17UmVzcG9uc2libGVJRH0sCiAgICAgICAgICAgICAgICBDb21tZW50ICAgPT4gJEJvZHlUZXh0LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyByZW1lbWJlciB0byBub3Qgbm90aWZ5IHJlc3BvbnNpYmxlIHR3aWNlCiAgICAgICAgICAgIGlmICggJFN1Y2Nlc3MgJiYgJFN1Y2Nlc3MgZXEgMSApIHsKICAgICAgICAgICAgICAgIHB1c2ggQE5vdGlmeURvbmUsICRQYXJhbXtSZXNwb25zaWJsZUlEfTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIGFkZCBub3RlCiAgICBteSAkQXJ0aWNsZUlEID0gJyc7CiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e05vdGV9IHx8ICRQYXJhbXtEZWZhdWx0c30gKSB7CiAgICAgICAgbXkgJE1pbWVUeXBlID0gJ3RleHQvcGxhaW4nOwoKICAgICAgICBteSAlVXNlciA9ICRTZWxmLT57VXNlck9iamVjdH0tPkdldFVzZXJEYXRhKAogICAgICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgbXkgJEZyb20gPSAiJFVzZXJ7VXNlckZpcnN0bmFtZX0gJFVzZXJ7VXNlckxhc3RuYW1lfSA8JFVzZXJ7VXNlckVtYWlsfT4iOwoKICAgICAgICAkQXJ0aWNsZUlEID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5BcnRpY2xlQ3JlYXRlKAogICAgICAgICAgICBUaWNrZXRJRCAgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgIFNlbmRlclR5cGUgPT4gJ2FnZW50JywKICAgICAgICAgICAgRnJvbSAgICAgICA9PiAkRnJvbSwKICAgICAgICAgICAgTWltZVR5cGUgICA9PiAkTWltZVR5cGUsCgogICAgICAgICAgICAjIGlwaG9uZSBtdXN0IHNlbmQgaW5mbyBpbiBjdXJyZW50IGNoYXJzZXQKICAgICAgICAgICAgQ2hhcnNldCAgICAgICAgPT4gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ0RlZmF1bHRDaGFyc2V0JyksCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICBIaXN0b3J5VHlwZSAgICA9PiAkU2VsZi0+e0NvbmZpZ30tPntIaXN0b3J5VHlwZX0sCiAgICAgICAgICAgIEhpc3RvcnlDb21tZW50ID0+ICRTZWxmLT57Q29uZmlnfS0+e0hpc3RvcnlDb21tZW50fSwKCiAgICAgICAgICAgICMgICAgICAgICAgICAgICAgRm9yY2VOb3RpZmljYXRpb25Ub1VzZXJJRCAgICAgICA9PiBcQE5vdGlmeVVzZXJJRHMsCiAgICAgICAgICAgIEV4Y2x1ZGVNdXRlTm90aWZpY2F0aW9uVG9Vc2VySUQgPT4gXEBOb3RpZnlEb25lLAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAhJEFydGljbGVJRCApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ0Vycm9yOiBubyBhcnRpY2xlIHdhcyBjcmVhdGVkISBQbGVhc2UgY29udGFjdCB0aGUgYWRtaW4uJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgIyB0aW1lIGFjY291bnRpbmcKICAgICAgICBpZiAoICRQYXJhbXtUaW1lVW5pdHN9ICkgewogICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldEFjY291bnRUaW1lKAogICAgICAgICAgICAgICAgVGlja2V0SUQgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBBcnRpY2xlSUQgPT4gJEFydGljbGVJRCwKICAgICAgICAgICAgICAgIFRpbWVVbml0ICA9PiAkUGFyYW17VGltZVVuaXRzfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgc2V0IGR5bmFtaWMgZmllbGRzCiAgICAgICAgIyBjeWNsZSB0cm91Z2ggdGhlIGFjdGl2YXRlZCBEeW5hbWljIEZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgICAgICBEWU5BTUlDRklFTEQ6CiAgICAgICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gfSApIHsKICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICAgICAgIyBzZXQgdGhlIG9iamVjdCBJRCAoVGlja2V0SUQgb3IgQXJ0aWNsZUlEKSBkZXBlbmRpbmcgb24gdGhlIGZpZWxkIGNvbmZpZ3JhdGlvbgogICAgICAgICAgICBteSAkT2JqZWN0SUQgPSAkRHluYW1pY0ZpZWxkQ29uZmlnLT57T2JqZWN0VHlwZX0gZXEgJ0FydGljbGUnID8gJEFydGljbGVJRCA6ICRQYXJhbXtUaWNrZXRJRH07CgogICAgICAgICAgICAjIHNldCB0aGUgdmFsdWUKICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkU2VsZi0+e0JhY2tlbmRPYmplY3R9LT5WYWx1ZVNldCgKICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICAgICAgT2JqZWN0SUQgICAgICAgICAgID0+ICRPYmplY3RJRCwKICAgICAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAkRHluYW1pY0ZpZWxkVmFsdWVzeyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgc2V0IHByaW9yaXR5CiAgICAgICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntQcmlvcml0eX0gJiYgJFBhcmFte1ByaW9yaXR5SUR9ICkgewogICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFByaW9yaXR5U2V0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgUHJpb3JpdHlJRCA9PiAkUGFyYW17UHJpb3JpdHlJRH0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBzZXQgc3RhdGUKICAgICAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1N0YXRlfSAmJiAkUGFyYW17U3RhdGVJRH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U3RhdGVTZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgU3RhdGVJRCAgPT4gJFBhcmFte1N0YXRlSUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHVubG9jayB0aGUgdGlja2V0IGFmdGVyIGNsb3NlCiAgICAgICAgICAgIG15ICVTdGF0ZURhdGEgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPntTdGF0ZU9iamVjdH0tPlN0YXRlR2V0KAogICAgICAgICAgICAgICAgSUQgPT4gJFBhcmFte1N0YXRlSUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBzZXQgdW5sb2NrIG9uIGNsb3NlIHN0YXRlCiAgICAgICAgICAgIGlmICggJFN0YXRlRGF0YXtUeXBlTmFtZX0gPX4gL15jbG9zZS9pICkgewogICAgICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRMb2NrU2V0KAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICAgICAgTG9jayAgICAgPT4gJ3VubG9jaycsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHNldCBwZW5kaW5nIHRpbWUgb24gcGVuZGlnIHN0YXRlCiAgICAgICAgICAgIGVsc2lmICggJFN0YXRlRGF0YXtUeXBlTmFtZX0gPX4gL15wZW5kaW5nL2kgKSB7CgogICAgICAgICAgICAgICAgIyBzZXQgcGVuZGluZyB0aW1lCiAgICAgICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFBlbmRpbmdUaW1lU2V0KAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICAgICAgU3RyaW5nICAgPT4gJFBhcmFte1BlbmRpbmdEYXRlfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgZWxzZSB7CgogICAgICAgICMgZmlsbHVwIGNvbmZpZ3VyZWQgZGVmYXVsdCB2YXJzCiAgICAgICAgaWYgKCAhZGVmaW5lZCAkUGFyYW17Qm9keX0gJiYgJFNlbGYtPntDb25maWd9LT57Qm9keX0gKSB7CiAgICAgICAgICAgICRQYXJhbXtCb2R5fSA9ICRTZWxmLT57Q29uZmlnfS0+e0JvZHl9OwogICAgICAgIH0KICAgICAgICBpZiAoICFkZWZpbmVkICRQYXJhbXtTdWJqZWN0fSAmJiAkU2VsZi0+e0NvbmZpZ30tPntTdWJqZWN0fSApIHsKICAgICAgICAgICAgJFBhcmFte1N1YmplY3R9ID0gJFNlbGYtPntDb25maWd9LT57U3ViamVjdH0sOwogICAgICAgIH0KCiAgICAgICAgbXkgJFJlc3VsdCA9ICRTZWxmLT5fVGlja2V0Q29tbW9uQWN0aW9ucygKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICBEZWZhdWx0cyA9PiAxLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuICRSZXN1bHQ7CiAgICB9CiAgICByZXR1cm4gJEFydGljbGVJRDsKfQoKc3ViIF9UaWNrZXRDb21wb3NlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgJFNlbGYtPntDb25maWd9ID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ2lQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q29tcG9zZScpOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17VGlja2V0SUR9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTm8gVGlja2V0SUQgaXMgZ2l2ZW4hIFBsZWFzZSBjb250YWN0IHRoZSBhZG1pbi4nLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY2hlY2sgcGVybWlzc2lvbnMKICAgIG15ICRBY2Nlc3MgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFBlcm1pc3Npb24oCiAgICAgICAgVHlwZSAgICAgPT4gJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0sCiAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBlcnJvciBzY3JlZW4sIGRvbid0IHNob3cgdGlja2V0CiAgICBpZiAoICEkQWNjZXNzICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiWW91IG5lZWQgJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0gcGVybWlzc2lvbnMhIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIG15ICVUaWNrZXQgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldEdldCggVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSApOwoKICAgICMgZ2V0IGxvY2sgc3RhdGUKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57UmVxdWlyZWRMb2NrfSApIHsKICAgICAgICBteSAkTG9ja2VkID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRMb2NrR2V0KCBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9ICk7CiAgICAgICAgaWYgKCAhJExvY2tlZCApIHsKICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRMb2NrU2V0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIExvY2sgICAgID0+ICdsb2NrJywKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldE93bmVyU2V0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICBOZXdVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBteSAkQWNjZXNzT2sgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPk93bmVyQ2hlY2soCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgT3duZXJJRCAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGlmICggISRBY2Nlc3NPayApIHsKICAgICAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlNvcnJ5LCB5b3UgbmVlZCB0byBiZSB0aGUgb3duZXIgdG8gZG8gdGhpcyBhY3Rpb24hICIKICAgICAgICAgICAgICAgICAgICAgICAgLiAiUGxlYXNlIGNoYW5nZSB0aGUgb3duZXIgZmlyc3QuIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyB0cmFuc2Zvcm0gcGVuZGluZyB0aW1lLCB0aW1lIHN0YW1wIGJhc2VkIG9uIHVzZXIgdGltZSB6b25lCiAgICBpZiAoIElzU3RyaW5nV2l0aERhdGEoICRQYXJhbXtQZW5kaW5nRGF0ZX0gKSApIHsKICAgICAgICAkUGFyYW17UGVuZGluZ0RhdGV9ID0gJFNlbGYtPl9UcmFuc2Zvcm1EYXRlU2VsZWN0aW9uKAogICAgICAgICAgICBUaW1lU3RhbXAgPT4gJFBhcmFte1BlbmRpbmdEYXRlfSwKICAgICAgICApOwogICAgfQoKICAgIG15ICRVc2VyVGltZVpvbmUgPSAkU2VsZi0+e1VzZXJUaW1lWm9uZX07CgogICAgIyBnZXQgZHluYW1pYyBmaWVsZCBjb25maWcgZm9yIHRoZSBzY3JlZW4KICAgICRTZWxmLT57RHluYW1pY0ZpZWxkRmlsdGVyfSA9ICRTZWxmLT57Q29uZmlnfS0+e0R5bmFtaWNGaWVsZH07CgogICAgIyBnZXQgdGhlIGR5bmFtaWMgZmllbGRzIGZvciB0aWNrZXQgb2JqZWN0CiAgICAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gPSAkU2VsZi0+e0R5bmFtaWNGaWVsZE9iamVjdH0tPkR5bmFtaWNGaWVsZExpc3RHZXQoCiAgICAgICAgVmFsaWQgICAgICAgPT4gMSwKICAgICAgICBPYmplY3RUeXBlICA9PiBbICdUaWNrZXQnLCAnQXJ0aWNsZScgXSwKICAgICAgICBGaWVsZEZpbHRlciA9PiAkU2VsZi0+e0R5bmFtaWNGaWVsZEZpbHRlcn0gfHwge30sCiAgICApOwoKICAgIG15ICVEeW5hbWljRmllbGRWYWx1ZXM7CgogICAgIyBjeWNsZSB0cm91Z2ggdGhlIGFjdGl2YXRlZCBEeW5hbWljIEZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgIERZTkFNSUNGSUVMRDoKICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHsgJFNlbGYtPntEeW5hbWljRmllbGR9IH0gKSB7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSggJER5bmFtaWNGaWVsZENvbmZpZy0+e0NvbmZpZ30gKTsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9OwoKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJFNlbGYtPntCYWNrZW5kT2JqZWN0fS0+SXNJUGhvbmVDYXBhYmxlKAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICApOwoKICAgICAgICAjIGV4dHJhY3QgdGhlIGR5bmFtaWMgZmllbGQgdmFsdWUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgJER5bmFtaWNGaWVsZFZhbHVlc3sgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0gPSAkU2VsZi0+e0JhY2tlbmRPYmplY3R9LT5JUGhvbmVGaWVsZFZhbHVlR2V0KAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgVHJhbnNmb3JtRGF0ZXMgICAgID0+IDEsCiAgICAgICAgICAgIFVzZXJUaW1lWm9uZSAgICAgICA9PiAkVXNlclRpbWVab25lIHx8IDAsCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICApOwoKICAgICAgICAjIHBlcmZvcm0gdmFsaWRhdGlvbiBvZiB0aGUgZGF0YQogICAgICAgIG15ICRWYWxpZGF0aW9uUmVzdWx0ID0gJFNlbGYtPntCYWNrZW5kT2JqZWN0fS0+SVBob25lRmllbGRWYWx1ZVZhbGlkYXRlKAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICREeW5hbWljRmllbGRWYWx1ZXN7ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9LAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gJFNlbGYtPntDb25maWd9LT57RHluYW1pY0ZpZWxkfS0+eyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSA9PSAyLAogICAgICAgICk7CgogICAgICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCRWYWxpZGF0aW9uUmVzdWx0KSApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkNvdWxkIG5vdCBwZXJmb3JtIHZhbGlkYXRpb24gb24gZmllbGQgJER5bmFtaWNGaWVsZENvbmZpZy0+e0xhYmVsfSEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAjIHByb3BhZ2F0ZSB2YWxpZGF0aW9uIGVycm9yCiAgICAgICAgaWYgKCAkVmFsaWRhdGlvblJlc3VsdC0+e1NlcnZlckVycm9yfSApIHsKCiAgICAgICAgICAgIG15ICRFcnJvck1lc3NhZ2UgPSAkVmFsaWRhdGlvblJlc3VsdC0+e0Vycm9yTWVzc2FnZX0KICAgICAgICAgICAgICAgIHx8ICJEeW5hbWljIGZpZWxkICREeW5hbWljRmllbGRDb25maWctPntMYWJlbH0gaW52YWxpZCI7CgogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAkRXJyb3JNZXNzYWdlLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgc2VuZCBlbWFpbAogICAgbXkgJVN0YXRlRGF0YSA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+e1N0YXRlT2JqZWN0fS0+U3RhdGVHZXQoCiAgICAgICAgSUQgPT4gJFBhcmFte1N0YXRlSUR9LAogICAgKTsKCiAgICAjIGNoZWNrIHBlbmRpbmcgZGF0ZQogICAgaWYgKCAkU3RhdGVEYXRhe1R5cGVOYW1lfSAmJiAkU3RhdGVEYXRhe1R5cGVOYW1lfSA9fiAvXnBlbmRpbmcvaSApIHsKICAgICAgICBpZiAoICEkU2VsZi0+e1RpbWVPYmplY3R9LT5UaW1lU3RhbXAyU3lzdGVtVGltZSggU3RyaW5nID0+ICRQYXJhbXtQZW5kaW5nRGF0ZX0gKSApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ0RhdGUgaW52YWxpZCcsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgaWYgKAogICAgICAgICAgICAkU2VsZi0+e1RpbWVPYmplY3R9LT5UaW1lU3RhbXAyU3lzdGVtVGltZSggU3RyaW5nID0+ICRQYXJhbXtQZW5kaW5nRGF0ZX0gKQogICAgICAgICAgICA8ICRTZWxmLT57VGltZU9iamVjdH0tPlN5c3RlbVRpbWUoKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAnRGF0ZSBpbnZhbGlkJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIHNvbWUgdmFsdWVzCiAgICBmb3IgbXkgJExpbmUgKHF3KEZyb20gVG8gQ2MgQmNjKSkgewogICAgICAgIG5leHQgaWYgISRQYXJhbXskTGluZX07CiAgICAgICAgZm9yIG15ICRFbWFpbCAoIE1haWw6OkFkZHJlc3MtPnBhcnNlKCAkUGFyYW17JExpbmV9ICkgKSB7CiAgICAgICAgICAgIGlmICggISRTZWxmLT57Q2hlY2tJdGVtT2JqZWN0fS0+Q2hlY2tFbWFpbCggQWRkcmVzcyA9PiAkRW1haWwtPmFkZHJlc3MoKSApICkgewogICAgICAgICAgICAgICAgbXkgJFNlcnZlckVycm9yID0gJFNlbGYtPntDaGVja0l0ZW1PYmplY3R9LT5DaGVja0Vycm9yKCk7CiAgICAgICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJFcnJvciBvbiBmaWVsZCBcIiRMaW5lXCIgXG4gJFNlcnZlckVycm9yIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyByZXBsYWNlIDxPVFJTX1RJQ0tFVF9TVEFURT4gd2l0aCBuZXh0IHRpY2tldCBzdGF0ZSBuYW1lCiAgICBpZiAoICRTdGF0ZURhdGF7TmFtZX0gKSB7CiAgICAgICAgJFBhcmFte0JvZHl9ID1+IHMvPE9UUlNfVElDS0VUX1NUQVRFPi8kU3RhdGVEYXRhe05hbWV9L2c7CiAgICAgICAgJFBhcmFte0JvZHl9ID1+IHMvJmx0O09UUlNfVElDS0VUX1NUQVRFJmd0Oy8kU3RhdGVEYXRhe05hbWV9L2c7CiAgICB9CgogICAgIyBnZXQgcmVjaXBpZW50cwogICAgbXkgJFJlY2lwaWVudHMgPSAnJzsKICAgIGZvciBteSAkTGluZSAocXcoVG8gQ2MgQmNjKSkgewogICAgICAgIGlmICggJFBhcmFteyRMaW5lfSApIHsKICAgICAgICAgICAgaWYgKCRSZWNpcGllbnRzKSB7CiAgICAgICAgICAgICAgICAkUmVjaXBpZW50cyAuPSAnLCc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJFJlY2lwaWVudHMgLj0gJFBhcmFteyRMaW5lfTsKICAgICAgICB9CiAgICB9CgogICAgbXkgJE1pbWVUeXBlID0gJ3RleHQvcGxhaW4nOwoKICAgICMgc2VuZCBlbWFpbAogICAgbXkgJEFydGljbGVJRCA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+QXJ0aWNsZVNlbmQoCiAgICAgICAgQXJ0aWNsZVR5cGUgICAgPT4gJ2VtYWlsLWV4dGVybmFsJywKICAgICAgICBTZW5kZXJUeXBlICAgICA9PiAnYWdlbnQnLAogICAgICAgIFRpY2tldElEICAgICAgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgSGlzdG9yeVR5cGUgICAgPT4gJ1NlbmRBbnN3ZXInLAogICAgICAgIEhpc3RvcnlDb21tZW50ID0+ICJcJVwlJFJlY2lwaWVudHMiLAogICAgICAgIEZyb20gICAgICAgICAgID0+ICRQYXJhbXtGcm9tfSwKICAgICAgICBUbyAgICAgICAgICAgICA9PiAkUGFyYW17VG99LAogICAgICAgIENjICAgICAgICAgICAgID0+ICRQYXJhbXtDY30sCiAgICAgICAgQmNjICAgICAgICAgICAgPT4gJFBhcmFte0JjY30sCiAgICAgICAgU3ViamVjdCAgICAgICAgPT4gJFBhcmFte1N1YmplY3R9LAogICAgICAgIFVzZXJJRCAgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgIEJvZHkgICAgICAgICAgID0+ICRQYXJhbXtCb2R5fSwKICAgICAgICBJblJlcGx5VG8gICAgICA9PiAkUGFyYW17SW5SZXBseVRvfSwKICAgICAgICBSZWZlcmVuY2VzICAgICA9PiAkUGFyYW17UmVmZXJlbmNlc30sCiAgICAgICAgQ2hhcnNldCAgICAgICAgPT4gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ0RlZmF1bHRDaGFyc2V0JyksCiAgICAgICAgTWltZVR5cGUgICAgICAgPT4gJE1pbWVUeXBlLAogICAgKTsKCiAgICAjIGVycm9yIHBhZ2UKICAgIGlmICggISRBcnRpY2xlSUQgKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdFcnJvciBubyBBcnRpY2xlIGNyZWF0ZWQhIFBsZWFzZSBjb250YWN0IHRoZSBhZG1pbicsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyB0aW1lIGFjY291bnRpbmcKICAgIGlmICggJFBhcmFte1RpbWVVbml0c30gKSB7CiAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRBY2NvdW50VGltZSgKICAgICAgICAgICAgVGlja2V0SUQgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgIEFydGljbGVJRCA9PiAkQXJ0aWNsZUlELAogICAgICAgICAgICBUaW1lVW5pdCAgPT4gJFBhcmFte1RpbWVVbml0c30sCiAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwogICAgfQoKICAgICMgc2V0IGR5bmFtaWMgZmllbGRzCiAgICAjIGN5Y2xlIHRyb3VnaCB0aGUgYWN0aXZhdGVkIER5bmFtaWMgRmllbGRzIGZvciB0aGlzIHNjcmVlbgogICAgRFlOQU1JQ0ZJRUxEOgogICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gfSApIHsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CgogICAgICAgICMgc2V0IHRoZSBvYmplY3QgSUQgKFRpY2tldElEIG9yIEFydGljbGVJRCkgZGVwZW5kaW5nIG9uIHRoZSBmaWVsZCBjb25maWdyYXRpb24KICAgICAgICBteSAkT2JqZWN0SUQgPSAkRHluYW1pY0ZpZWxkQ29uZmlnLT57T2JqZWN0VHlwZX0gZXEgJ0FydGljbGUnID8gJEFydGljbGVJRCA6ICRQYXJhbXtUaWNrZXRJRH07CgogICAgICAgICMgc2V0IHRoZSB2YWx1ZQogICAgICAgIG15ICRTdWNjZXNzID0gJFNlbGYtPntCYWNrZW5kT2JqZWN0fS0+VmFsdWVTZXQoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBPYmplY3RJRCAgICAgICAgICAgPT4gJE9iamVjdElELAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJER5bmFtaWNGaWVsZFZhbHVlc3sgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwogICAgfQoKICAgICMgc2V0IHN0YXRlCiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1N0YXRlfSAmJiAkUGFyYW17U3RhdGVJRH0gKSB7CiAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRTdGF0ZVNldCgKICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgU3RhdGVJRCAgPT4gJFBhcmFte1N0YXRlSUR9LAogICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwogICAgfQoKICAgICMgc2hvdWxkIEkgc2V0IGFuIHVubG9jaz8KICAgIGlmICggJFN0YXRlRGF0YXtUeXBlTmFtZX0gPX4gL15jbG9zZS9pICkgewogICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0TG9ja1NldCgKICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgTG9jayAgICAgPT4gJ3VubG9jaycsCiAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICB9CgogICAgIyBzZXQgcGVuZGluZyB0aW1lCiAgICBlbHNpZiAoICRTdGF0ZURhdGF7VHlwZU5hbWV9ID1+IC9ecGVuZGluZy9pICkgewogICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0UGVuZGluZ1RpbWVTZXQoCiAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICBTdHJpbmcgICA9PiAkUGFyYW17UGVuZGluZ0RhdGV9LAogICAgICAgICk7CiAgICB9CgogICAgIyBsb2cgdXNlIHJlc3BvbnNlIGlkIGFuZCByZXBseSBhcnRpY2xlIGlkICh1c2VmdWwgZm9yIHJlc3BvbnNlIGRpYWdub3N0aWNzKQogICAgbXkgJEhpc3RvcnlOYW1lOwogICAgaWYgKCAkUGFyYW17UmVwbHlBcnRpY2xlSUR9ICkgewogICAgICAgICRIaXN0b3J5TmFtZSA9ICJSZXNwb25zZSBmcm9tIGlQaG9uZSAvJFBhcmFte1JlcGx5QXJ0aWNsZUlEfS8kQXJ0aWNsZUlEKSI7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkSGlzdG9yeU5hbWUgPSAiUmVzcG9uc2UgZnJvbSBpUGhvbmUgLyRBcnRpY2xlSUQpIgogICAgfQogICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5IaXN0b3J5QWRkKAogICAgICAgIE5hbWUgICAgICAgICA9PiAkSGlzdG9yeU5hbWUsCiAgICAgICAgSGlzdG9yeVR5cGUgID0+ICdNaXNjJywKICAgICAgICBUaWNrZXRJRCAgICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICBDcmVhdGVVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwogICAgcmV0dXJuICRBcnRpY2xlSUQ7Cn0KCnN1YiBfVGlja2V0TW92ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgKHF3KFRpY2tldElEKSkgewogICAgICAgIGlmICggISRQYXJhbXskX30gKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJObyAkXyBpcyBnaXZlbiEgUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluLiIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgJFNlbGYtPntDb25maWd9ID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ2lQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TW92ZScpOwoKICAgICMgY2hlY2sgcGVybWlzc2lvbnMKICAgIG15ICRBY2Nlc3MgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFBlcm1pc3Npb24oCiAgICAgICAgVHlwZSAgICAgPT4gJ21vdmUnLAogICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0KICAgICk7CgogICAgIyBlcnJvciBzY3JlZW4sIGRvbid0IHNob3cgdGlja2V0CiAgICBpZiAoICEkQWNjZXNzICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiWW91IG5lZWQgJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0gcGVybWlzc2lvbnMhIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCBsb2NrIHN0YXRlCiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1JlcXVpcmVkTG9ja30gKSB7CiAgICAgICAgbXkgJExvY2tlZCA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0TG9ja0dldCggVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSApOwogICAgICAgIGlmICggISRMb2NrZWQgKSB7CiAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0TG9ja1NldCgKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBMb2NrICAgICA9PiAnbG9jaycsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRPd25lclNldCgKICAgICAgICAgICAgICAgIFRpY2tldElEICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgTmV3VXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgbXkgJEFjY2Vzc09rID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5Pd25lckNoZWNrKAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIE93bmVySUQgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgICAgICBpZiAoICEkQWNjZXNzT2sgKSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJTb3JyeSwgeW91IG5lZWQgdG8gYmUgdGhlIG93bmVyIHRvIGRvIHRoaXMgYWN0aW9uISAiCiAgICAgICAgICAgICAgICAgICAgICAgIC4gIlBsZWFzZSBjaGFuZ2UgdGhlIG93bmVyIGZpcnN0LiIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgdGlja2V0IGF0dHJpYnV0ZXMKICAgIG15ICVUaWNrZXQgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldEdldCggVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSApOwoKICAgICMgdHJhbnNmb3JtIHBlbmRpbmcgdGltZSwgdGltZSBzdGFtcCBiYXNlZCBvbiB1c2VyIHRpbWUgem9uZQogICAgaWYgKCBJc1N0cmluZ1dpdGhEYXRhKCAkUGFyYW17UGVuZGluZ0RhdGV9ICkgKSB7CiAgICAgICAgJFBhcmFte1BlbmRpbmdEYXRlfSA9ICRTZWxmLT5fVHJhbnNmb3JtRGF0ZVNlbGVjdGlvbigKICAgICAgICAgICAgVGltZVN0YW1wID0+ICRQYXJhbXtQZW5kaW5nRGF0ZX0sCiAgICAgICAgKTsKICAgIH0KCiAgICBteSAkVXNlclRpbWVab25lID0gJFNlbGYtPntVc2VyVGltZVpvbmV9OwoKICAgICMgZ2V0IGR5bmFtaWMgZmllbGQgY29uZmlnIGZvciB0aGUgc2NyZWVuCiAgICAkU2VsZi0+e0R5bmFtaWNGaWVsZEZpbHRlcn0gPSAkU2VsZi0+e0NvbmZpZ30tPntEeW5hbWljRmllbGR9OwoKICAgICMgZ2V0IHRoZSBkeW5hbWljIGZpZWxkcyBmb3IgdGlja2V0IG9iamVjdAogICAgJFNlbGYtPntEeW5hbWljRmllbGR9ID0gJFNlbGYtPntEeW5hbWljRmllbGRPYmplY3R9LT5EeW5hbWljRmllbGRMaXN0R2V0KAogICAgICAgIFZhbGlkICAgICAgID0+IDEsCiAgICAgICAgT2JqZWN0VHlwZSAgPT4gWyAnVGlja2V0JywgJ0FydGljbGUnIF0sCiAgICAgICAgRmllbGRGaWx0ZXIgPT4gJFNlbGYtPntEeW5hbWljRmllbGRGaWx0ZXJ9IHx8IHt9LAogICAgKTsKCiAgICBteSAlRHluYW1pY0ZpZWxkVmFsdWVzOwoKICAgICMgY3ljbGUgdHJvdWdoIHRoZSBhY3RpdmF0ZWQgRHluYW1pYyBGaWVsZHMgZm9yIHRoaXMgc2NyZWVuCiAgICBEWU5BTUlDRklFTEQ6CiAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7ICRTZWxmLT57RHluYW1pY0ZpZWxkfSB9ICkgewogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoICREeW5hbWljRmllbGRDb25maWctPntDb25maWd9ICk7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgISREeW5hbWljRmllbGRDb25maWctPntOYW1lfTsKCiAgICAgICAgIyBza2lwIGFsbCBkeW5hbWljIGZpZWxkcyB0aGF0IGFyZSBub3QgZGVzaWduZWQgcmVuZGVyIGluIGlQaG9uZSBBcHAKICAgICAgICBteSAkSXNJUGhvbmVDYXBhYmxlID0gJFNlbGYtPntCYWNrZW5kT2JqZWN0fS0+SGFzQmVoYXZpb3IoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBCZWhhdmlvciAgICAgICAgICAgPT4gJ0lzSVBob25lQ2FwYWJsZScsCiAgICAgICAgKTsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJElzSVBob25lQ2FwYWJsZTsKCiAgICAgICAgIyBleHRyYWN0IHRoZSBkeW5hbWljIGZpZWxkIHZhbHVlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICREeW5hbWljRmllbGRWYWx1ZXN7ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9ID0gJFNlbGYtPntCYWNrZW5kT2JqZWN0fS0+SVBob25lRmllbGRWYWx1ZUdldCgKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgIFRyYW5zZm9ybURhdGVzICAgICA9PiAxLAogICAgICAgICAgICBVc2VyVGltZVpvbmUgICAgICAgPT4gJFVzZXJUaW1lWm9uZSB8fCAwLAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgKTsKCiAgICAgICAgIyBwZXJmb3JtIHZhbGlkYXRpb24gb2YgdGhlIGRhdGEKICAgICAgICBteSAkVmFsaWRhdGlvblJlc3VsdCA9ICRTZWxmLT57QmFja2VuZE9iamVjdH0tPklQaG9uZUZpZWxkVmFsdWVWYWxpZGF0ZSgKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAkRHluYW1pY0ZpZWxkVmFsdWVzeyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSwKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+ICRTZWxmLT57Q29uZmlnfS0+e0R5bmFtaWNGaWVsZH0tPnsgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0gPT0gMiwKICAgICAgICApOwoKICAgICAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSgkVmFsaWRhdGlvblJlc3VsdCkgKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJDb3VsZCBub3QgcGVyZm9ybSB2YWxpZGF0aW9uIG9uIGZpZWxkICREeW5hbWljRmllbGRDb25maWctPntMYWJlbH0hIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgIyBwcm9wYWdhdGUgdmFsaWRhdGlvbiBlcnJvcgogICAgICAgIGlmICggJFZhbGlkYXRpb25SZXN1bHQtPntTZXJ2ZXJFcnJvcn0gKSB7CgogICAgICAgICAgICBteSAkRXJyb3JNZXNzYWdlID0gJFZhbGlkYXRpb25SZXN1bHQtPntFcnJvck1lc3NhZ2V9CiAgICAgICAgICAgICAgICB8fCAiRHluYW1pYyBmaWVsZCAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TGFiZWx9IGludmFsaWQiOwoKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gJEVycm9yTWVzc2FnZSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIERlc3RRdWV1ZUlEIGxvb2t1cAogICAgaWYgKCAhJFBhcmFte1F1ZXVlSUR9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTm8gUXVldWVJRCBpcyBnaXZlbiEgUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluLiIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgaWYgKCAkUGFyYW17T3duZXJJRH0gKSB7CiAgICAgICAgJFBhcmFte05ld1VzZXJJRH0gPSAkUGFyYW17T3duZXJJRH07CiAgICB9CgogICAgIyBtb3ZlIHRpY2tldCAoc2VuZCBub3RpZmljYXRpb24gb2Ygbm8gbmV3IG93bmVyIGlzIHNlbGVjdGVkKQogICAgbXkgJEJvZHlBc1RleHQgPSAkUGFyYW17Qm9keX0gfHwgJyc7CiAgICBteSAkTW92ZSA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0UXVldWVTZXQoCiAgICAgICAgUXVldWVJRCAgICAgICAgICAgID0+ICRQYXJhbXtRdWV1ZUlEfSwKICAgICAgICBVc2VySUQgICAgICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgVGlja2V0SUQgICAgICAgICAgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgU2VuZE5vTm90aWZpY2F0aW9uID0+ICRQYXJhbXtOZXdVc2VySUR9LAogICAgICAgIENvbW1lbnQgICAgICAgICAgICA9PiAkQm9keUFzVGV4dCwKICAgICk7CiAgICBpZiAoICEkTW92ZSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkVycm9yOiB0aWNrZXQgbm90IG1vdmVkISBQbGVhc2UgY29udGFjdCB0aGUgYWRtaW4uIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIHNldCBwcmlvcml0eQogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntQcmlvcml0eX0gJiYgJFBhcmFte1ByaW9yaXR5SUR9ICkgewogICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0UHJpb3JpdHlTZXQoCiAgICAgICAgICAgIFRpY2tldElEICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgUHJpb3JpdHlJRCA9PiAkUGFyYW17UHJpb3JpdHlJRH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNldCBzdGF0ZQogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntTdGF0ZX0gJiYgJFBhcmFte1N0YXRlSUR9ICkgewoKICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFN0YXRlU2V0KAogICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICBTdGF0ZUlEICA9PiAkUGFyYW17U3RhdGVJRH0sCiAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgdW5sb2NrIHRoZSB0aWNrZXQgYWZ0ZXIgY2xvc2UKICAgICAgICBteSAlU3RhdGVEYXRhID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT57U3RhdGVPYmplY3R9LT5TdGF0ZUdldCgKICAgICAgICAgICAgSUQgPT4gJFBhcmFte1N0YXRlSUR9LAogICAgICAgICk7CgogICAgICAgICMgc2V0IHVubG9jayBvbiBjbG9zZSBzdGF0ZQogICAgICAgIGlmICggJFN0YXRlRGF0YXtUeXBlTmFtZX0gPX4gL15jbG9zZS9pICkgewogICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldExvY2tTZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgTG9jayAgICAgPT4gJ3VubG9jaycsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBpZiBuZXcgdXNlciBpcyBnaXZlbiBhbmQgc2VuZCBub3RpZmljYXRpb24KICAgIGlmICggJFBhcmFte05ld1VzZXJJRH0gKSB7CgogICAgICAgICMgbG9jawogICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0TG9ja1NldCgKICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgTG9jayAgICAgPT4gJ2xvY2snLAogICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIHNldCBvd25lcgogICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0T3duZXJTZXQoCiAgICAgICAgICAgIFRpY2tldElEICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgIE5ld1VzZXJJRCA9PiAkUGFyYW17TmV3VXNlcklEfSwKICAgICAgICAgICAgQ29tbWVudCAgID0+ICRCb2R5QXNUZXh0LAogICAgICAgICk7CiAgICB9CgogICAgIyBmb3JjZSB1bmxvY2sgaWYgbm8gbmV3IG93bmVyIGlzIHNldCBhbmQgdGlja2V0IHdhcyB1bmxvY2tlZAogICAgZWxzZSB7CiAgICAgICAgaWYgKCAkU2VsZi0+e1RpY2tldFVubG9ja30gKSB7CiAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0TG9ja1NldCgKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBMb2NrICAgICA9PiAndW5sb2NrJywKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIGFkZCBub3RlIChzZW5kIG5vIG5vdGlmaWNhdGlvbikKICAgIG15ICRNaW1lVHlwZSA9ICd0ZXh0L3BsYWluJzsKCiAgICBteSAlVXNlckRhdGEgPSAkU2VsZi0+e1VzZXJPYmplY3R9LT5HZXRVc2VyRGF0YSggVXNlcklEID0+ICRQYXJhbXtVc2VySUR9ICk7CgogICAgbXkgJEFydGljbGVJRCA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+QXJ0aWNsZUNyZWF0ZSgKICAgICAgICBUaWNrZXRJRCAgICAgICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgIEFydGljbGVUeXBlICAgID0+ICdub3RlLWludGVybmFsJywKICAgICAgICBTZW5kZXJUeXBlICAgICA9PiAnYWdlbnQnLAogICAgICAgIEZyb20gICAgICAgICAgID0+ICIkVXNlckRhdGF7VXNlckZpcnN0bmFtZX0gJFVzZXJEYXRhe1VzZXJMYXN0bmFtZX0gPCRVc2VyRGF0YXtVc2VyRW1haWx9PiIsCiAgICAgICAgU3ViamVjdCAgICAgICAgPT4gJFBhcmFte1N1YmplY3R9LAogICAgICAgIEJvZHkgICAgICAgICAgID0+ICRQYXJhbXtCb2R5fSwKICAgICAgICBNaW1lVHlwZSAgICAgICA9PiAkTWltZVR5cGUsCiAgICAgICAgQ2hhcnNldCAgICAgICAgPT4gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ0RlZmF1bHRDaGFyc2V0JyksCiAgICAgICAgVXNlcklEICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgSGlzdG9yeVR5cGUgICAgPT4gJ0FkZE5vdGUnLAogICAgICAgIEhpc3RvcnlDb21tZW50ID0+ICclJU1vdmUnLAogICAgICAgIE5vQWdlbnROb3RpZnkgID0+IDEsCiAgICApOwoKICAgIGlmICggISRBcnRpY2xlSUQgKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJFcnJvcjogQ2FuJ3QgY3JlYXRlIGFuIGFydGljbGUgZm9yIHRoZSBtb3ZlZCB0aWNrZXQiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgc2V0IGR5bmFtaWMgZmllbGRzCiAgICAjIGN5Y2xlIHRyb3VnaCB0aGUgYWN0aXZhdGVkIER5bmFtaWMgRmllbGRzIGZvciB0aGlzIHNjcmVlbgogICAgRFlOQU1JQ0ZJRUxEOgogICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gfSApIHsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CgogICAgICAgICMgc2V0IHRoZSBvYmplY3QgSUQgKFRpY2tldElEIG9yIEFydGljbGVJRCkgZGVwZW5kaW5nIG9uIHRoZSBmaWVsZCBjb25maWdyYXRpb24KICAgICAgICBteSAkT2JqZWN0SUQgPSAkRHluYW1pY0ZpZWxkQ29uZmlnLT57T2JqZWN0VHlwZX0gZXEgJ0FydGljbGUnID8gJEFydGljbGVJRCA6ICRQYXJhbXtUaWNrZXRJRH07CgogICAgICAgICMgc2V0IHRoZSB2YWx1ZQogICAgICAgIG15ICRTdWNjZXNzID0gJFNlbGYtPntCYWNrZW5kT2JqZWN0fS0+VmFsdWVTZXQoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBPYmplY3RJRCAgICAgICAgICAgPT4gJE9iamVjdElELAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJER5bmFtaWNGaWVsZFZhbHVlc3sgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwogICAgfQoKICAgICMgdGltZSBhY2NvdW50aW5nCiAgICBpZiAoICRQYXJhbXtUaW1lVW5pdHN9ICkgewogICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0QWNjb3VudFRpbWUoCiAgICAgICAgICAgIFRpY2tldElEICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICBBcnRpY2xlSUQgPT4gJEFydGljbGVJRCwKICAgICAgICAgICAgVGltZVVuaXQgID0+ICRQYXJhbXtUaW1lVW5pdHN9LAogICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgIH0KCiAgICBpZiAoJEFydGljbGVJRCkgewogICAgICAgIHJldHVybiAkQXJ0aWNsZUlEOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgaWYgKCRNb3ZlKSB7CiAgICAgICAgICAgIHJldHVybiAkUGFyYW17UXVldWVJRH07CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIC0xOwoKfQoKc3ViIF9HZXRDb21wb3NlRGVmYXVsdHMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBpZiAoICEkUGFyYW17VGlja2V0SUR9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTm8gVGlja2V0SUQgZ2l2ZW4hIFBsZWFzZSBjb250YWN0IHRoZSBhZG1pbi4nLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICVDb21wb3NlRGF0YTsKCiAgICAjIGdldCBsYXN0IGN1c3RvbWVyIGFydGljbGUgb3Igc2VsZWN0ZWQgYXJ0aWNsZSAuLi4KICAgIG15ICVEYXRhOwogICAgaWYgKCAkUGFyYW17QXJ0aWNsZUlEfSApIHsKICAgICAgICAlRGF0YSA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+QXJ0aWNsZUdldCggQXJ0aWNsZUlEID0+ICRQYXJhbXtBcnRpY2xlSUR9ICk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAlRGF0YSA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+QXJ0aWNsZUxhc3RDdXN0b21lckFydGljbGUoCiAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGNoZWNrIGFydGljbGUgdHlwZSBhbmQgcmVwbGFjZSBUbyB3aXRoIEZyb20gKGluIGNhc2UpCiAgICBpZiAoICREYXRhe1NlbmRlclR5cGV9ICF+IC9jdXN0b21lci8gKSB7CiAgICAgICAgbXkgJFRvICAgPSAkRGF0YXtUb307CiAgICAgICAgbXkgJEZyb20gPSAkRGF0YXtGcm9tfTsKCiAgICAgICAgIyBzZXQgT3JpZ0Zyb20gZm9yIGNvcnJlY3QgZW1haWwgcXVvdGVpbmcgKHh4eHggd3JvdGUpCiAgICAgICAgJERhdGF7T3JpZ0Zyb219ID0gJERhdGF7RnJvbX07CgogICAgICAgICMgcmVwbGFjZSBGcm9tL1RvLCBUby9Gcm9tIGJlY2F1c2Ugc2VuZGVyIGlzIGFnZW50CiAgICAgICAgJERhdGF7RnJvbX0gICAgPSAkVG87CiAgICAgICAgJERhdGF7VG99ICAgICAgPSAkRGF0YXtGcm9tfTsKICAgICAgICAkRGF0YXtSZXBseVRvfSA9ICcnOwogICAgfQogICAgZWxzZSB7CgogICAgICAgICMgc2V0IE9yaWdGcm9tIGZvciBjb3JyZWN0IGVtYWlsIHF1b3RlaW5nICh4eHh4IHdyb3RlKQogICAgICAgICREYXRhe09yaWdGcm9tfSA9ICREYXRhe0Zyb219OwogICAgfQoKICAgICMgYnVpbGQgT3JpZ0Zyb21OYW1lICh0byBvbmx5IHVzZSB0aGUgcmVhbG5hbWUpCiAgICAkRGF0YXtPcmlnRnJvbU5hbWV9ID0gJERhdGF7T3JpZ0Zyb219OwogICAgJERhdGF7T3JpZ0Zyb21OYW1lfSA9fiBzLzwuKj58XCguKlwpfFwifDt8LC8vZzsKICAgICREYXRhe09yaWdGcm9tTmFtZX0gPX4gcy8oICQpfCggICQpLy9nOwoKICAgIG15ICVUaWNrZXQgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldEdldCgKICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICAjIGdldCBjdXN0b21lciBkYXRhCiAgICBteSAlQ3VzdG9tZXI7CiAgICBpZiAoICRUaWNrZXR7Q3VzdG9tZXJVc2VySUR9ICkgewogICAgICAgICVDdXN0b21lciA9ICRTZWxmLT57Q3VzdG9tZXJVc2VyT2JqZWN0fS0+Q3VzdG9tZXJVc2VyRGF0YUdldCgKICAgICAgICAgICAgVXNlciA9PiAkVGlja2V0e0N1c3RvbWVyVXNlcklEfQogICAgICAgICk7CiAgICB9CgogICAgIyBwcmVwYXJlIGJvZHksIHN1YmplY3QsIFJlcGx5VG8gLi4uCiAgICAjIHJld3JhcCBib2R5IGlmIGV4aXN0cwogICAgaWYgKCAkRGF0YXtCb2R5fSApIHsKICAgICAgICAkRGF0YXtCb2R5fSA9fiBzL1x0LyAvZzsKICAgICAgICBteSAkUXVvdGUgPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGlja2V0OjpGcm9udGVuZDo6UXVvdGUnKTsKICAgICAgICBpZiAoJFF1b3RlKSB7CiAgICAgICAgICAgICREYXRhe0JvZHl9ID1+IHMvXG4vXG4kUXVvdGUgL2c7CiAgICAgICAgICAgICREYXRhe0JvZHl9ID0gIlxuJFF1b3RlICIgLiAkRGF0YXtCb2R5fTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICREYXRhe0JvZHl9ID0gIlxuIiAuICREYXRhe0JvZHl9OwogICAgICAgICAgICBpZiAoICREYXRhe0NyZWF0ZWR9ICkgewogICAgICAgICAgICAgICAgJERhdGF7Qm9keX0gPSAiRGF0ZTogJERhdGF7Q3JlYXRlZH1cbiIgLiAkRGF0YXtCb2R5fTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmb3IgKHF3KFN1YmplY3QgUmVwbHlUbyBSZXBseS1UbyBDYyBUbyBGcm9tKSkgewogICAgICAgICAgICAgICAgaWYgKCAkRGF0YXskX30gKSB7CiAgICAgICAgICAgICAgICAgICAgJERhdGF7Qm9keX0gPSAiJF86ICREYXRheyRffVxuIiAuICREYXRhe0JvZHl9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgICREYXRhe0JvZHl9ID0gIlxuLS0tLSBNZXNzYWdlIGZyb20gJERhdGF7RnJvbX0gLS0tXG5cbiIgLiAkRGF0YXtCb2R5fTsKICAgICAgICAgICAgJERhdGF7Qm9keX0gLj0gIlxuLS0tLSBFbmQgTWVzc2FnZSAtLS1cbiI7CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgaWYgQ2MgcmVjaXBpZW50cyBzaG91bGQgYmUgdXNlZAogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGlja2V0OjpGcm9udGVuZDo6Q29tcG9zZUV4Y2x1ZGVDY1JlY2lwaWVudHMnKSApIHsKICAgICAgICAkRGF0YXtDY30gPSAnJzsKICAgIH0KCiAgICAjIGFkZCBub3QgbG9jYWwgVG8gYWRkcmVzc2VzIHRvIENjCiAgICBmb3IgbXkgJEVtYWlsICggTWFpbDo6QWRkcmVzcy0+cGFyc2UoICREYXRhe1RvfSApICkgewogICAgICAgIG15ICRJc0xvY2FsID0gJFNlbGYtPntTeXN0ZW1BZGRyZXNzfS0+U3lzdGVtQWRkcmVzc0lzTG9jYWxBZGRyZXNzKAogICAgICAgICAgICBBZGRyZXNzID0+ICRFbWFpbC0+YWRkcmVzcygpLAogICAgICAgICk7CiAgICAgICAgaWYgKCAhJElzTG9jYWwgKSB7CiAgICAgICAgICAgIGlmICggJERhdGF7Q2N9ICkgewogICAgICAgICAgICAgICAgJERhdGF7Q2N9IC49ICcsICc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJERhdGF7Q2N9IC49ICRFbWFpbC0+Zm9ybWF0KCk7CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgUmVwbHlUbwogICAgaWYgKCAkRGF0YXtSZXBseVRvfSApIHsKICAgICAgICAkRGF0YXtUb30gPSAkRGF0YXtSZXBseVRvfTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICREYXRhe1RvfSA9ICREYXRhe0Zyb219OwoKICAgICAgICAjIHRyeSB0byByZW1vdmUgc29tZSB3cm9uZyB0ZXh0IHRvIGZyb20gbGluZSAoYnkgd2F5IG9mIC4uLikKICAgICAgICAjIGFkZGVkIGJ5IHNvbWUgc3RyYW5nZSBtYWlsIHByb2dyYW1zIG9uIGJvdW5jZQogICAgICAgICREYXRhe1RvfSA9fiBzLyguKz9cPC4rP1xALis/XD4pXHMrXChieVxzK3dheVxzK29mXHMrLis/XCkvJDEvaWc7CiAgICB9CgogICAgIyBnZXQgdG8gZW1haWwgKGp1c3QgInNvbWVAZXhhbXBsZS5jb20iKQogICAgZm9yIG15ICRFbWFpbCAoIE1haWw6OkFkZHJlc3MtPnBhcnNlKCAkRGF0YXtUb30gKSApIHsKICAgICAgICAkRGF0YXtUb0VtYWlsfSA9ICRFbWFpbC0+YWRkcmVzcygpOwogICAgfQoKICAgICMgdXNlIGN1c3RvbWVyIGRhdGFiYXNlIGVtYWlsCiAgICBpZiAoICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpDb21wb3NlQWRkQ3VzdG9tZXJBZGRyZXNzJykgKSB7CgogICAgICAgICMgY2hlY2sgaWYgY3VzdG9tZXIgaXMgaW4gcmVjaXBpZW50IGxpc3QKICAgICAgICBpZiAoICRDdXN0b21lcntVc2VyRW1haWx9ICYmICREYXRhe1RvRW1haWx9ICF+IC9eXFEkQ3VzdG9tZXJ7VXNlckVtYWlsfVxFJC9pICkgewoKICAgICAgICAgICAgIyByZXBsYWNlIFRvIHdpdGggY3VzdG9tZXJzIGRhdGFiYXNlIGFkZHJlc3MKICAgICAgICAgICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGlja2V0OjpGcm9udGVuZDo6Q29tcG9zZVJlcGxhY2VTZW5kZXJBZGRyZXNzJykgKSB7CiAgICAgICAgICAgICAgICAkRGF0YXtUb30gPSAkQ3VzdG9tZXJ7VXNlckVtYWlsfTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBhZGQgY3VzdG9tZXJzIGRhdGFiYXNlIGFkZHJlc3MgdG8gQ2MKICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBpZiAoICREYXRhe0NjfSApIHsKICAgICAgICAgICAgICAgICAgICAkRGF0YXtDY30gLj0gJywgJyAuICRDdXN0b21lcntVc2VyRW1haWx9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJERhdGF7Q2N9ID0gJEN1c3RvbWVye1VzZXJFbWFpbH07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBmaW5kIGR1cGxpY2F0ZSBhZGRyZXNzZXMKICAgIG15ICVSZWNpcGllbnQ7CiAgICBmb3IgbXkgJFR5cGUgKHF3KFRvIENjIEJjYykpIHsKICAgICAgICBpZiAoICREYXRheyRUeXBlfSApIHsKICAgICAgICAgICAgbXkgJE5ld0xpbmUgPSAnJzsKICAgICAgICAgICAgZm9yIG15ICRFbWFpbCAoIE1haWw6OkFkZHJlc3MtPnBhcnNlKCAkRGF0YXskVHlwZX0gKSApIHsKICAgICAgICAgICAgICAgIG15ICRBZGRyZXNzID0gbGMgJEVtYWlsLT5hZGRyZXNzKCk7CgogICAgICAgICAgICAgICAgIyBvbmx5IHVzZSBlbWFpbCBhZGRyZXNzZXMgd2l0aCBAIGluc2lkZQogICAgICAgICAgICAgICAgaWYgKCAkQWRkcmVzcyAmJiAkQWRkcmVzcyA9fiAvQC8gJiYgISRSZWNpcGllbnR7JEFkZHJlc3N9ICkgewogICAgICAgICAgICAgICAgICAgICRSZWNpcGllbnR7JEFkZHJlc3N9ID0gMTsKICAgICAgICAgICAgICAgICAgICBteSAkSXNMb2NhbCA9ICRTZWxmLT57U3lzdGVtQWRkcmVzc30tPlN5c3RlbUFkZHJlc3NJc0xvY2FsQWRkcmVzcygKICAgICAgICAgICAgICAgICAgICAgICAgQWRkcmVzcyA9PiAkQWRkcmVzcywKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIGlmICggISRJc0xvY2FsICkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJE5ld0xpbmUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICROZXdMaW5lIC49ICcsICc7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgJE5ld0xpbmUgLj0gJEVtYWlsLT5mb3JtYXQoKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJERhdGF7JFR5cGV9ID0gJE5ld0xpbmU7CiAgICAgICAgfQogICAgfQoKICAgICRQYXJhbXtSZXNwb25zZUlEfSA9IDE7CgogICAgIyBzZXQgbm8gUmljaFRleHQgaW4gb3JkZXIgdG8gZ2V0IHRleHQvcGxhaW4gdGVtcGxhdGUgZm9yIHRoZSBpcGhvbmUKICAgICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+U2V0KAogICAgICAgIEtleSAgID0+ICdGcm9udGVuZDo6UmljaFRleHQnLAogICAgICAgIFZhbHVlID0+IDAKICAgICk7CgogICAgIyBnZXQgdGVtcGxhdGUKICAgIG15ICRUZW1wbGF0ZUdlbmVyYXRvciA9IEtlcm5lbDo6U3lzdGVtOjpUZW1wbGF0ZUdlbmVyYXRvci0+bmV3KCAleyRTZWxmfSApOwogICAgbXkgJVJlc3BvbnNlICAgICAgICAgID0gJFRlbXBsYXRlR2VuZXJhdG9yLT5SZXNwb25zZSgKICAgICAgICBUaWNrZXRJRCAgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgQXJ0aWNsZUlEICA9PiAkUGFyYW17QXJ0aWNsZUlEfSwKICAgICAgICBSZXNwb25zZUlEID0+ICRQYXJhbXtSZXNwb25zZUlEfSwKICAgICAgICBEYXRhICAgICAgID0+IFwlRGF0YSwKICAgICAgICBVc2VySUQgICAgID0+ICRQYXJhbXtVc2VySUR9CiAgICApOwogICAgJERhdGF7U2FsdXRhdGlvbn0gICAgICAgPSAkUmVzcG9uc2V7U2FsdXRhdGlvbn07CiAgICAkRGF0YXtTaWduYXR1cmV9ICAgICAgICA9ICRSZXNwb25zZXtTaWduYXR1cmV9OwogICAgJERhdGF7U3RhbmRhcmRSZXNwb25zZX0gPSAkUmVzcG9uc2V7U3RhbmRhcmRSZXNwb25zZX07CgogICAgJURhdGEgPSAkVGVtcGxhdGVHZW5lcmF0b3ItPkF0dHJpYnV0ZXMoCiAgICAgICAgVGlja2V0SUQgICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgIEFydGljbGVJRCAgPT4gJFBhcmFte0FydGljbGVJRH0sCiAgICAgICAgUmVzcG9uc2VJRCA9PiAkUGFyYW17UmVzcG9uc2VJRH0sCiAgICAgICAgRGF0YSAgICAgICA9PiBcJURhdGEsCiAgICAgICAgVXNlcklEICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgbXkgJFNhbHV0YXRpb24gPSAkRGF0YXtTYWx1dGF0aW9ufTsKICAgIG15ICRPcmlnRnJvbSAgID0gJERhdGF7T3JpZ0Zyb219OwogICAgbXkgJFdyb3RlICAgICAgPSAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCd3cm90ZScpOwogICAgbXkgJEJvZHkgICAgICAgPSAkRGF0YXtCb2R5fTsKICAgIG15ICRTaWduYXR1cmUgID0gJERhdGF7U2lnbmF0dXJlfTsKCiAgICBteSAkUmVzcG9uc2VGb3JtYXQgPSAiJFNhbHV0YXRpb24gXG4gJE9yaWdGcm9tICRXcm90ZTogXG4gJEJvZHkgXG4gJFNpZ25hdHVyZSBcbiI7CgogICAgIyByZXN0b3JlIHFkYXRhIGZvcm1hdHRpbmcgZm9yIE91dHB1dCByZXBsYWNlbWVudAogICAgJFJlc3BvbnNlRm9ybWF0ID1+IHMvJnF1b3Q7LyIvZ2k7CgogICAgIyBwcmVwYXJlIHN1YmplY3QKICAgIG15ICRUbiA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0TnVtYmVyTG9va3VwKCBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9ICk7CiAgICAkUGFyYW17U3ViamVjdH0gPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFN1YmplY3RCdWlsZCgKICAgICAgICBUaWNrZXROdW1iZXIgPT4gJFRuLAogICAgICAgIFN1YmplY3QgICAgICA9PiAkUGFyYW17U3ViamVjdH0gfHwgJycsCiAgICApOwoKICAgICMgY2hlY2sgc29tZSB2YWx1ZXMKICAgIGZvciBteSAkTGluZSAocXcoVG8gQ2MgQmNjKSkgewogICAgICAgIG5leHQgaWYgISREYXRheyRMaW5lfTsKICAgICAgICBmb3IgbXkgJEVtYWlsICggTWFpbDo6QWRkcmVzcy0+cGFyc2UoICREYXRheyRMaW5lfSApICkgewogICAgICAgICAgICBpZiAoICEkU2VsZi0+e0NoZWNrSXRlbU9iamVjdH0tPkNoZWNrRW1haWwoIEFkZHJlc3MgPT4gJEVtYWlsLT5hZGRyZXNzKCkgKSApIHsKICAgICAgICAgICAgICAgIG15ICRTZXJ2ZXJFcnJvciA9ICRTZWxmLT57Q2hlY2tJdGVtT2JqZWN0fS0+Q2hlY2tFcnJvcigpOwogICAgICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiRXJyb3Igb24gZmllbGQgXCIkTGluZVwiIFxuICRTZXJ2ZXJFcnJvciIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgaWYgKCAkRGF0YXtGcm9tfSApIHsKICAgICAgICBmb3IgbXkgJEVtYWlsICggTWFpbDo6QWRkcmVzcy0+cGFyc2UoICREYXRhe0Zyb219ICkgKSB7CiAgICAgICAgICAgIGlmICggISRTZWxmLT57Q2hlY2tJdGVtT2JqZWN0fS0+Q2hlY2tFbWFpbCggQWRkcmVzcyA9PiAkRW1haWwtPmFkZHJlc3MoKSApICkgewogICAgICAgICAgICAgICAgbXkgJFNlcnZlckVycm9yID0gJFNlbGYtPntDaGVja0l0ZW1PYmplY3R9LT5DaGVja0Vycm9yKCk7CiAgICAgICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJFcnJvciBvbiBmaWVsZCBcIkZyb21cIiAgXG4gJFNlcnZlckVycm9yIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgJUNvbXBvc2VEYXRhID0gKAogICAgICAgIEZyb20gICAgPT4gJERhdGF7RnJvbX0sCiAgICAgICAgVG8gICAgICA9PiAkRGF0YXtUb30sCiAgICAgICAgQ2MgICAgICA9PiAkRGF0YXtDY30sCiAgICAgICAgQmNjICAgICA9PiAkRGF0YXtCY2N9LAogICAgICAgIFJlcGx5VG8gPT4gJERhdGF7UmVwbHlUb30sCiAgICAgICAgU3ViamVjdCA9PiAkRGF0YXtTdWJqZWN0fSwKICAgICAgICBCb2R5ICAgID0+ICRSZXNwb25zZUZvcm1hdCwKICAgICk7CiAgICByZXR1cm4gJUNvbXBvc2VEYXRhOwp9CgpzdWIgX1RyYW5zZm9ybURhdGVTZWxlY3Rpb24gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIHRpbWUgem9uZSB0cmFuc2xhdGlvbiBpZiBuZWVkZWQKICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpbWVab25lVXNlcicpICYmICRTZWxmLT57VXNlclRpbWVab25lfSApIHsKICAgICAgICBteSAkU3lzdGVtVGltZSA9ICRTZWxmLT57VGltZU9iamVjdH0tPlRpbWVTdGFtcDJTeXN0ZW1UaW1lKAogICAgICAgICAgICBTdHJpbmcgPT4gJFBhcmFte1RpbWVTdGFtcH0sCiAgICAgICAgKTsKICAgICAgICAkU3lzdGVtVGltZSA9ICRTeXN0ZW1UaW1lIC0gKCAkU2VsZi0+e1VzZXJUaW1lWm9uZX0gKiAzNjAwICk7CiAgICAgICAgJFBhcmFte1RpbWVTdGFtcH0gPSAkU2VsZi0+e1VzZXJUaW1lT2JqZWN0fS0+U3lzdGVtVGltZTJUaW1lU3RhbXAoCiAgICAgICAgICAgIFN5c3RlbVRpbWUgPT4gJFN5c3RlbVRpbWUsCiAgICAgICAgKTsKICAgIH0KICAgIHJldHVybiAkUGFyYW17VGltZVN0YW1wfTsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHA6Ly9vdHJzLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
JVBERi0xLjQKJaqrrK0KNCAwIG9iago8PAovQ3JlYXRvciAoQXBhY2hlIEZPUCBWZXJzaW9uIDEuMSkKL1Byb2R1Y2VyIChBcGFjaGUgRk9QIFZlcnNpb24gMS4xKQovQ3JlYXRpb25EYXRlIChEOjIwMTUwOTA5MDAzNjE0KzAyJzAwJykKPj4KZW5kb2JqCjUgMCBvYmoKPDwKICAvTiAzCiAgL0xlbmd0aCAxMiAwIFIKICAvRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeJydlndYU+cex99zTvZgJCFsCHuGpUAAkRGmgAzZohCSAAESICQM90BUsKKoyFIEKYpYsFqG1IkoDori3g1SBJRarOLC0USep/X29t7b2+8f53ye3/v7vef9jfd5DgCkgEyuMBdWAUAokogj/L0ZsXHxDOwAgAEeYIA9ABxubrZXWFgwkCvQl83IlTuBf9GrmwBSvK8xFXuB/0+q3GyxBAAoTM6zePxcrpyL5JyZL8lW2CflTEvOUDCMUrBYfkA5ayg4dYatP/vMsKeCeUIRT86Rcs7mCXkK7pXzhjwpX86IIpfiPAE/X87X5WycKRUK5PxGESvkc+Q5oEgKu4TPTZOznZxJ4sgItpznAIAjpX7ByV+whF8gUSTFzsouFAtS0yQMc64Fw97FhcUI4Odn8iUSZhiHm8ER8xjsLGE2R1QIwEzOn0VR1JYhL7KTvYuTE9PBxv6LQv3Xxb8pRW9n6EX4555B9P4/bH/ll9UAAGtKXpstf9iSqwDoXAeAxt0/bMZ7AFCW963j8hf50BXzkiaRZLva2ubn59sI+FwbRUF/1/90+Bv64ns2iu1+Lw/Dh5/CkWZKGIq6cbMys6RiRm42h8tnMP88xP848K/PYR3BT+GL+SJ5RLR8ygSiVHm7RTyBRJAlYghE/6mJ/zDsT5qZa7mojR8BLdEGqFymAeTnfoCiEgGSsFu+Av3et2B8NFDcvBj90Zm5/yzo33eFyxSPXEHq5zh2RCSDKxXnzawpriVAAwJQBjSgCfSAETAHTOAAnIEb8AS+YB4IBZEgDiwGXJAGhEAM8sEysBoUg1KwBewA1aAONIJm0AoOg05wDJwG58AlcAXcAPeADIyAp2ASvALTEARhITJEhTQhfcgEsoIcIBY0F/KFgqEIKA5KglIhESSFlkFroVKoHKqG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K0b1R5vHHMaOjfuNX3my8MnI0+yn0xPFP6v+XPvM/Nl3v3j+0j8ZOznyXPz806+bXmi+2Pdy9sueqbCph6+Er6Zfl7zRfLP/Lett37uYd6PT+e+x7ys/WHzo/hj08f4n4adPvwHJ4vTiCmVuZHN0cmVhbQplbmRvYmoKNiAwIG9iagpbL0lDQ0Jhc2VkIDUgMCBSXQplbmRvYmoKNyAwIG9iago8PAogIC9UeXBlIC9NZXRhZGF0YQogIC9TdWJ0eXBlIC9YTUwKICAvTGVuZ3RoIDEzIDAgUgo+PgpzdHJlYW0KPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz48eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIj4KPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KPHJkZjpEZXNjcmlwdGlvbiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHJkZjphYm91dD0iIj4KPGRjOmxhbmd1YWdlPmVuPC9kYzpsYW5ndWFnZT4KPGRjOmZvcm1hdD5hcHBsaWNhdGlvbi9wZGY8L2RjOmZvcm1hdD4KPGRjOmRhdGU+MjAxNS0wOS0wOVQwMDozNjoxNCswMjowMDwvZGM6ZGF0ZT4KPC9yZGY6RGVzY3JpcHRpb24+CjxyZGY6RGVzY3JpcHRpb24geG1sbnM6cGRmPSJodHRwOi8vbnMuYWRvYmUuY29tL3BkZi8xLjMvIiByZGY6YWJvdXQ9IiI+CjxwZGY6UERGVmVyc2lvbj4xLjQ8L3BkZjpQREZWZXJzaW9uPgo8cGRmOlByb2R1Y2VyPkFwYWNoZSBGT1AgVmVyc2lvbiAxLjE8L3BkZjpQcm9kdWNlcj4KPC9yZGY6RGVzY3JpcHRpb24+CjxyZGY6RGVzY3JpcHRpb24geG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiByZGY6YWJvdXQ9IiI+Cjx4bXA6Q3JlYXRlRGF0ZT4yMDE1LTA5LTA5VDAwOjM2OjE0KzAyOjAwPC94bXA6Q3JlYXRlRGF0ZT4KPHhtcDpDcmVhdG9yVG9vbD5BcGFjaGUgRk9QIFZlcnNpb24gMS4xPC94bXA6Q3JlYXRvclRvb2w+Cjx4bXA6TWV0YWRhdGFEYXRlPjIwMTUtMDktMDlUMDA6MzY6MTQrMDI6MDA8L3htcDpNZXRhZGF0YURhdGU+CjwvcmRmOkRlc2NyaXB0aW9uPgo8L3JkZjpSREY+CjwveDp4bXBtZXRhPjw/eHBhY2tldCBlbmQ9InIiPz4KCmVuZHN0cmVhbQplbmRvYmoKMTAgMCBvYmoKPDwKICAvTmFtZSAvSW0xCiAgL1R5cGUgL1hPYmplY3QKICAvTGVuZ3RoIDE0IDAgUgogIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlCiAgL1N1YnR5cGUgL0ltYWdlCiAgL1dpZHRoIDI1MDAKICAvSGVpZ2h0IDg4NQogIC9CaXRzUGVyQ29tcG9uZW50IDgKICAvQ29sb3JTcGFjZSAvRGV2aWNlR3JheQo+PgpzdHJlYW0KeJzsnXuh6yAMxpEwCZUwCUiYBCRMAg4moRImAQmTUAmTsHu287h7lD4gIYF+vz/v3VmTlNGvgQRjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB62B/P107aCFp2t6F3nbQVAAAAAABMdK6/3r5w0obQcrj79KXjDjtpSwAAAAAAqDmcLrcfemlbaOl//bpdvJU2BgAAAACAjO54vj0xSNtDy/Ds2/XskI4DAAAAQAPY04vIudNJ20RJ9+7d7eL30kYBAAAAAGSw+9kB94aTtouS44iDt+F0kLYLAAAAACCJzp3H5M0XZ2nTKIk5ee2xqgoAAACA2uiOl4i2ucsbaesoGUs0/olVyDhQkL21R+9P4YvxYXm9/1fvvbcW6/0AgDl21h6+JozzfeYYnVOG7ynlaG0nbSsgY1LA3Wno+WGnPYWMA+x01vk+zPzmRriE89fU29CPEQBAwu6u3GKvglGujxmlkzYe5LH/rGH44ChtJB2n+YENGQeY+BJvCdrtnSGcjhZjFABwn1POIXNGuZz9Ae+GdTKbgfsmSNtJx7InKGQcoKU7+DDkTLMfXMPJYd4FYKvsv94IVybeJsGEUh0LBdwdaVPJ2C0e0GcnbStog92Bdqp9AfMuAJvDHvv8fP4Y14DG97WwWy7gvmim84ZbM5z7ZtwGQnSuH1bOouu5njHvArANdodTYJ5QoOMqINpGJMJJ2mAq+nV+DyesqYJEiui3PwI6VQPQNgWnlPOxk/YWTLF2aecibTAVq9e08GAEKdgTz1rHFNez66T9BgBwsDuUfCW8M5zw9NNLWHs7O2mLadiv9bup1nigDDt3Ztv/Noeeg+P2AeThUkMvbXgC3j+6IFpLNwBbYu/LvxLegYxTS7/2Xjppi2nwa/1uqCIXFCF+3EkplMy7c50YwRw+NfTShmdyuUs6h0aIvxRPwL2gZDoBb6zWMo0ct7X6ZcZLWwxqYufC2hHGgoZ5FxouF58aemnDyfgScxtvQRs5wrwslyO2havjsPYutrGm2K0evVbaZFAP4hm4ZwbfyUYDGi4Xnxp6acOp2WwL2oOaGaW30rEAr6yfX620yRSs6SzyDd4/wDL2Ct6X3wiinaqh4XLxqaGXNpyH0B8t3fDUz0HXjDKg770uVt/BJrqLrH6rGaQtBlWwczJbjue49nLpC2i4XHxq6KUNZ+Ry2kbtdbfgCMzSXKVT++CZ1Qq/ie4iq73upS0GFdDpemF+5eKEogINl4tPDb204cwM52PjK6tKttV+0nfSoQG/hNV3r5M2OZ/VuwBbKccFjNj1v6WyXL3IIgg0XC4+NfTShhfg2jebj+tOil8JoeLUcFp975y0yfmsd7rx1z2QjRtWDyoBJCZeaLhcfGropQ0vxOVk6YarFqyaMoYYUHE6WN1cpIXuIsNan9uoxgVc7I6rh5QUZ1s6ONBwufjU0EsbXo7WzrTGKyFYyvoJtn49s/qQBnT4BRPsvOY1jw+CLRseaLhcfGropQ0vSjsyrqIJRWZ7Bnhmfae0+ruLHNePVGmTgVoqmnB/KavioOFy8amhlza8NNcWupfVNaFcnXS8wPq7Vn13kfXtH6y0yUArVU24f5RUcdBwufjU0EsbLoB4S+tM6lJwdy5WOmZbZ72gqb1X2m79MEXCGIxSx7aVMcptZYGGy8Wnhl7acBnO9a6p1qfg7vR4PoqSUP3SSducx/pDGproiQfIsTob+i7kVGjmhYbLxaeGXtpwKYY6z/WsU8F9ca1XNbfA+sLU21Ha5jzWq9bqV48BA5364v8ZrmV+yNBwufjU0EsbLsf11NGN4EK4ShXcnXOVorkR1ve7rb1Kc73DTtpkoI5dwsuPOgZbIFLQcLn41NBLGy5KZY0v7CAdsCyQipNjfaONyreHJYjWTtpmoI3DkPC7UUiB92douFx8auilDRemIhXXBelgZYNUnBgJd8tJ25xDv9rd2os4ADXVL6P+h39BFRouF58aemnDxalExTWR1L8NOM1IiIR92VWfAL9+00HV7gJ6jhVvXPkkME+90HC5+NTQSxuugFKVOzm0ktSvfad8tSSkFGo+qiHhiYKRCZ5oYNnjDc8aL2i4XJLvj7ThGrgmR68Qu3aS+lhPlSEljVvx/sX1593jwHvwRFtJuG8unEMcGi4Xnxp6acN1UKRyJ5m25hPWmQRESNjjX3OzjWG1szVnHQEx7SXhvmHMNUPD5eJTQy9tuBb0poeam09QnypAwompFe/yTyjDPUvbDNRQcwunaULHFTNouFx8auilDVdDoVaIqzk0OJ8oDXXTpNynajOmCUupXtpmoISWdq58wPYCDQ2Xi08NvbThiuB7R0mn0fkENYDFCQm3qdrF1GG9r1baZqCDfcLgqQmmHzU0XC4+NfTShmtC3yJfs/OJ3qXrVukT7lKtJ4imLBxL2wx0cEwYO3Vx6TjiBg2Xi08NvbThulB2NHsTPeHGueiKdPskPZs6aavTSPC18pPFAA27PuVnUhksuQpouFx8auilDVeGpia0ja6j/gARV5akObbSjYsJDY29tM1AAfuEkVMjnj500HC5JN8UacO1cXV0wzqPZtdRf4CIK8ou6R5JW51EylKqlTYayGMbrB8bh34vCzRcLj419NKG60PJfvt269t/gYgrypByjzppq1NIWTaWthnI0/5WuP+Qb4qDhsvFp4Ze2nCFBA3aIqE7QnVAxJUkaWW+ysXUhAUxbIcDfcoPpFquxLuGoOFy8amhlzZcI/InCbS9Fe4PiLiCJBXI1KhtUpZSq+2iAojYbWQr3H8cafyg4XLxqaGXNlwl1O8oa9nMfAIRV46U07ZutwpvUMqSmLquQqAs3Vam3CdIk+zQcLn41NBLG64TWRHXejXDE3Vumq+SlPQU9ct6EVKexhVKVUDIvvndx2NQbv2GhsvFp4Ze2nCtOLrRvZZNzSdKKki2QNKwqu8Y0RStileJbbOpKfcJwtkXGi4Xnxp6acPV4uiG9zq2U+D+ADuRShGS7k91GaqUpVQMwk3jkn4ZLUC3mQUaLhefGnppw/XiqEb3OjY3nwjFeXuknfrhpM1eS8pSKrbDbZnNTblPkIk4aLhcfGropQ1XjMieuA3OJ+JVwBshraihtsXUpG1/1SUbAR0bnHKfoBJx0HC5+NTQSxuuGInChi3OJ1c8QYuQVtRQm75JyTZiO9yG2eKU+wyRiIOGy8Wnhl7acM2UF3HbnE/wCC1D2kZLJ232OoYEF7Edbrtsc8p9hkbEQcPl4lNDL224akq3L9vqfIJnaBFC0s2pazF1n+IitsNtlq1Ouc+QPOag4XLxqaGXNlw3ZTNESc+fJsBDtARpRQ11nZmadEZdZcvFgAxIuDsUIg4aLhefGnppw5VTsn3ZVpsU3bAlrgxpRQ11nZk6JDiItfytAgn3DYGIg4bLxaeGXtpw7bjswb2UDUu4Os/lrI7EooaaJE5SKttLWw1kgIT7Jf83Dg2Xi08NvbTh2ilW17CZM1LHqSrZUytD2r3ppO1eTp/in5W2Goiw3b0rn2QvOEHD5eJTQy9tuHpK1TVsW8Ldrl2ZMG+ac9q9qUhfJ+WypY0GImx64eODXBEHDZeLTw29tOH6KVM02Uu7KQ1WU/lJLGqoZzE1accfRt4m6SDhXvB54YSGyyX5BkgbXgEliiZTDnlsjIqyPbWSOs920oYvpU/xzktbDQTY+N6VEVxWPKHhcvGpoZc2vAIKFE3iB4Da1BIk3ppa+vftkryz0mYDASDhPsja+o1HWC4+NfTShtcAe4MRpPXvlOzjslESH1yDtN0LSaszlLYaCNCn/RKaJqt+DxouF58aemnDq8BmjO0l4J3wAXeYQZ94ZwRODk4hqWajrnMoAAnYuzJGTv0eNFwuPjX00oZXAXMeIqm3fIPUs3e+VlIbYtWxmJrW/w77MLdHYrfr5sko74GGy8Wnhl7a8DpIDu8SMKH84jjDDNI7Yl2lDV9EWnKlkhwjoENJV5Fr+I8OizJe1qDhcvGpoZc2vA4499vvpH++TzOJsCUDyhqYSR1rVRxom7QloQ55CgiRLUm9ht47a0fMsvboz0HStowfOjRcLj419NKGVwLjYlJi49VsHlPJZxJCdCbxfGEGd1Lvaw31JmlJxho8A6RIzbi3ofd2/jW1s/4s9l6fXNcADZeLT4w8NNxCutQAzyGxuzb4w6w/IjMJ+oswk9jl93ar4MakbSt10maDwsjUM1xOhzW/oc71g4ydib90aLhcfFrgoeGWwvW6XrytSDiueNP6mknK2ueZwgy+SZ5pnbTl86SN1E7abFAWgVNSr2eXooz2R4lF38QnHTRcLj4t8NBwi+lSIzxNKOnDtV/1LvjN/jQUtLCCfE/VpN4Y/QdSpZUG1dL6DhCxG1J/Aqn0GZtJOwEZ55IshYbLxacOEmnDq4EnEVeyJvWcPJfsT8WycZ4wuOCT5EdCJ235HGm7nOromgLIKLwZ7pKUgXumKzf5fpO2JQ4aLhefOkKkDa+HLjXEE5SrSR2OeXOJK/Q+iEQcL8m9CL205TOknbNVR8EtIKPsZriepnGNC0WtTurTCQ2Xi08dHtKG1wPHG3up7r6B4FFlQxFT0XKVleTEr/ZFx8SHM14ZNkXJzXBXTze4Ck2+P6Q86qDhcvGpg0Pa8HpgyBAVmlGCpTG3yESiXStUTmK66qb+JLS0PLH+bX6AknK7yygV3J2iKs4m2FfQvDbxqUND2vCKcKkxjhJKmE2l4O4cBn57sbrFSvJTTHcjtcTXIS9tNyhJuVMNiRXcnYIqLqHZOjRcLj51YEgbXhHkx3mWKGgYHKnJu+QGY4tBaoSVPvW+6N6pmOgWDtraEsV0xrljsd8NpRxY/8IGDZeLTx0W0obXBPWEP/CbfCJ/8O7ZlyM6apPBE6nH3itvEZdWHISDtrZEqbYig2XzgP8V+ofVqyHQcLn41FEhbXhNEK8mpT9Nl3LhSDPsuBck0O6Bky75vmhOkCb+ls7SdoOCFFpJZVhG/Q//K/Q3q1dTd1YCnjLjo4gvXeqYUB0D/+AcgvSx8N8Qv7UP3PbSJ+G+cby3A8kRVobkG9NJmx4npHnkpO0G5SiTKRq4l+cLpeLqeJPmuadW2q111BKDnT34PrBYuxzS7fbcv8UrX3HAnlfEoaqBkz75vnhp06OkJhc7acNBOYbkgb+Cnn/X6L6II3UIGWg4U4+G+6E7nAKLyYsgXUxlzi2yrKP+0rFm9LHCxUn6Er7eti+Jq2R6HQLklMhfXV0JT3ZFzpqo4scBDWeq03AP7EniLOAb7Sof8264C+/74I71DqiugKyd9A1xehOkQ5o/dawXAQoyhv1iWN+bnyly2oQv5EwO0HCmTg1nZM4CvpE+xAZWQ9mbebGKOMdt/aYZku+L1gRpapMetZoUkBOSR/1izuXePQ8ldoh3xdxJBhrOVKvhvuj8wGL8FHTSiDcNV6AfK6eI06oV2qBPvzFKE6Spa0vSdoNi8DcBKNsEu8SmOM2F6D9Aw5maNdwXh8Bifhy6PQKsacQis0nH+CqoVCu0QcbjTOdhtqnLZHhV2Aw7/rxV4d8G726Wb/TnqaHhTOUarvRZwHTpZdY690LPJsbqVFfGg22SsTNI5z7n1N3qOhUpYIC/NZwr7VIBEafz5/4MNJypXsOVVnFU037PaCNzOcN/+NYnkCHhJGPyt9K2jzEkOtNJGw4KwV/Q4Mo7VUDE+fJerQMazjSg4dhbzr5AJC4455SC51r2bD4Uc2GLZCQlNB58n1rRoD/LAIgI6SN+GU7CK34Rp/uMZAMN96CFGJTpl/OASFxw9iqyNCYugW8S0b8To2JSRc8dhZN66q8fnUW2AvsJDU7GL34Rp/Gd7RloONOGhitUav2ApgPQwGegJzFwIXsuL/B8ZWSXcWP07SFLzmnjPWErDBkDfglOyjF+EddJubYMaDjTioZjPjjgCUdhbU4iZIbC9eBcCcVLWTc2RsaPRd8CZPLKsLThoBDcfUUE32vYRZzy/iLQcKYZDVdsPZUkQdTz2ddR2Lec3cDkh8I1u3bIUd5W2vh3UlPwqJvZCGxz1A+i643MR1cr/L2/AA1n2tFwvKWe/6F4L2FsVuQJzFsFV0oRC12M5Mx82qRPcpJF36owYIH5oFThTBXbdhYd7s0ADWda0nCFRByBoXy5/aF8+irweIINcZzk3JlO2vhXQiN+ACaY2/sW6+QUg3ul2Ar7Nwk0nGlKw5URcQRFDXzLvi7fuLUw1XxhQxwnOSPQSxv/QnIaAgNsI/Cm4a6ljrmPw9y/WHUiDhrOtKXhGMXRf/IX+XLKAqcR2XAeeHyRcGUzHDNujK6qhj7VDSR6twFzGs5J+2eYz23UrWig4UxjGq7EGXI+20q+qlSXbVsCTIk4K+HLVsjqMe2krX8i/QltpU0HReBNw6l4E2CWqZoTcdBwpjENx3oO+w/5e7p7LtOEMiSBxRlsOedkyLgzmub05IQiTgLZBrz6Rnwz3DeMvaruWGn/4kDDmdY0HPdovlE8wdhmFZ8fvxR4Yq69Q3jd9Dm3ppO2/j8DhheYgjcNJ78Z7hveLXGaXtregIYzzWk4/i1x2S/wfMXgHUH8Uhg4nMGec06ydLce/ZPuhpM2HZSANw2nZq2AuQWelfYvCjScaU/DMe8NuOVvtmd7MxTr3MXjkZQ3myCrrkbPSdgh2Qc1LgBOWNNwivJTvF3iFDn6BjScaU/DZZXcLSI3f85Wd+EowpdC1g75KFrWKdok5NwaLfmH9IGHLO824Hyjv3bS3j3Bu5qqdi6GhjMNajj2A44znePrLCKXWmBZwMZJDZxkvepoaS/SJ3ugRYUCVlj733pp757hXU3Vs3viDWg406KG4+5bnakt2KouBBPeLCH3cv5sgLzFFx36OmPfhNrEAqBkyBrl02h5kfmBqcXTD520exGg4UyLGo47EefzrGPboZFpVw4suUVtB3M2xpBzb3RskEnPJSp7/gIeWLsUWGnv3mCt5vPS3kWAhjNNajjmRJzPsy5w2WUpYpcIx/yhQyc0S94Gmk7a/DtDsvkqWrMCbkLWGJ9G3Ssma29UPWVMr0DDmSY1HHNpaub8z2YXTfDSYCkkkXSoffJyFBo2yGS8q1lp20EBeGqtvlFV0PANaw2uk/ZuHGg406SG4zsI4UFefoitCFy00o5ltpR0aAPk3RwF7+Uh2Xgc0rAJ+rwhPomXdu4T1rIGpbsPoOFMmxpOc7McttYnsrn9gcEjK+pR8+Stf3tp83Ombw1ZRMAN53qMyrVF1k1EVtq7UaDhTJsajreqIU/D9VxmeZrQKXLLinrUPHkzvvx7eZ9uvI6yWsALZ6dQnb1pBkaPdb73QMOZRjUca8PDPA0XuMySnVU4XgF1zpPNkLn+7So2X2MSBVAz5A3wKeTfYEZhrcNV+aOBhjONajjWXjl5Go7NLEsTukQ4NsR5UY/aJ+/AEOmTDjLe09SVFAIGOB8CTtq5CIHRZ5Wv1NBwplENx6eUbpnvYHylUpYodIkw7D3xsh41T+ZakxU1PmezkxO1HJShzxveUyhNw/HqVpVOQ8OZVjVcYHHrhxzD+H5kHVHoEgn0HqFBHC+ZpT+ytyenkUInajkoAt+ZhppfAtgO474peKqPAA1nWtVwrK1ydBpGFTo9jkHDMTPk3Z+uUtulV4FBCRgrGlQWpX7DWZqqsaoBGs60quFYN3fmGMZXbUEVukQYIg4Nx0zmYJSc03OeVSo39gBiGDNSXtq3CQY+tzVKV2g406qG4+zQnaWWgkqrCGDoyadyA0ZL5E6AnZzpQ51mg1Jw9ghVqGX+4EzEOWnnPoGGM61qONaihhy7BpVWUdCgS82TWYjixQzPmbrxarAFGNtLaVxT/IOzsbHChRFoONOshgssfj3IegbwmUUVuVQY1i6kXWqePu/+yC2uhAyrcd79FmCUMp20b5Nw9kbtpJ37ABrONKvh8g4SmiTnbYRxjZcsdImE9lxqntxNjF7I7qyZey9kNCgI44ZohdmoZzi3EenbSQoNZ5rVcIyFqTm/Ycb+PR1V6BJheP8T9mgDZGYrpJYlc97QsJS6Bfq8gT2Fk/ZtBsb0hb6Kbmg4Aw23HqUazlKFLhGGiAt7tAH6zDvkRKzOSjVgKXUL8C2lXqVdm4OzJ0Mn7dw70HCmWQ3HKJZyNByjtLRUoUuEYeoQ9mgD5FaxySS1+hyTsZS6ARh1jP53gIHPeXWLqdBwBhpuPTmnLTJqOEcVukQYIi7s0QbIbmbvBIzOSsNhKXUL9LnjOk4n7dssjA8ZdYup0HAGGm49PsMsxp9XjlkUMDRkQsqEndzNMxKTep9jsOrGEIAIvqVUdSrmE86qhk7auTeg4UyzGo5xHPsMsxj3m4o/nAI50HDsZLcEtcVNzssdHorbC4rDuJSqbjVxhLAd96HhTLMajrERW84wDnxmKS95ByrJXkwtP+yyctnqd6QDAvrcUR1H8xkNvzCe1aAtDQkNZ6DhyjoX+MzC7jGQQHZm2BY2OK8RvXi2GhSAbyk1ZzN0MbJfzCbopJ17BRrOQMOVdS7wmYXdYyCB7Hf20om4vC2lWErdAIxLqU7at0Uwbtlx0r69Ag1noOHWk2NV4DNL268LVEH+O7sta29WjgVLqVuA8bipGpZSWRdTlSUioeEMNNx6cqwa+MzCMhFIIfudvWwiLi8Nh9/IFhhyh3QUZQomBudiqrRvr0DDGWi41WQ9stisuqHzFUgi/529K2htXhoOS6lbgKHL0S9O2reFMC6m6voJQcOZZjUcX3+4rFcxNqvudESxA1si/529ZHIrLw2HpdQtcMwe0VHqWEplXUzVdU4FNJyBhluNzzGLzao72nr3gCroswdeV8zWzDScrucP4CFkD+gY2jprRGFcTNW13AMNZ6DhVpOVS2az6k41MwzQRH4VX7lEXOY5Jyjd3gCM+qWet+QLXxA6ad+egYYzzWo4vvLyrOcAm1X5poGtkt9NqytkaWYaTlcKAfDA2FmkngmWcT3ZSfv2DDScaVbD8R1MmmUWm1UPUHUHEuirGXiZv2ospW4Bvs4iFb0DMNZ1qKrNhYYz0HBryeukwGXVN9dattwCTRAkLroihmam4SpKo4B0+JYRa3pHHtiioKowCBrONKvhAotft9x3+YHLrG88TfDAtsgflWWebpkvZhWlUUAyXfZgjuKkfVtBzxcGTa9C0HAGGm4tee1x2Mz6Bok4kADB6lNXwMzcNByWUrcAY1uNmmZXxjBoquyAhjPNajgWt+50WWYFNru+8STBA9uCYPNMicMacvdHdAVsBNL0+YM5QlV1/4zVuZo2xEHDmVY1HFtCPXM9JnDZ9cO1Iwkf2BZD/siz7EbmpuGqegSDVAjGcoS68rh82wI1bYiDhjOtaji2+vLMjT+MZ6B8o+kdCdQCQScC/kRcbhpO0xIQ4IJxO5yuU6bm4CvP1bQhDhrOtKrh2MpSM3/HfC1PiAwEW4TiwWeZbcxNw2EpdRMwdoeraTscayAUvQ1Bw5lWNVxgceuW/Tvm13AoawDrCfkDjzsRl/vTKbFjD4jDl36qbC2ecUOcoh4r0HCmVQ3H4tUt/3fM+HJEZSLYIBRVbJbVwuw0nGM1DygB3eF+GdgioahJDzScaVTDsZ2WmptF5jvG9T+1zTVAHoqXdt5EV59rHvLTm4BgIEdw0q6tpOcLhZ7fEjScaVTDsSXUu0zDGBPc/3EEEQTbolc+7rJ37OHNZhMwviQr2sm/CMYOcXo2XUPDmUY13MDiFcU6JZNhr7j8CIJtQbHIz7nE0ucap+exAxjh23CsqaPGIhiPTPXSvv0BDWfa1HBsoze/ICdwmfaCy48h2BaD6mGXnYar7gkMkuBr3lRfTQxbKBTFAhrOtKnh1C6lsm5SeMZlGwq2BcVvZmDbJ5P9aK6rPytIZSAYxuN4addWE9hioeeNCBrOtKnhBhanSEo++ZuLfOPzTQVbgqQ3qmcyLn+mrm0zE0gCHX6fYHzWdNK+/QINZ5rUcGwNPFy+bSUKUx+c9dQOgRqgaMrA1Zww5BqmqBsCYISxd1Mn7dtqGIOhRtBCw5kmNRzXngiKJ1SRwtQHF6QewApIytg8i2n5E7WizvKAEcbUk7Rr69lCUQM0nGlRw7Hl00naE/D1oHznigcXWE52E90HHYdpg06zgDpQ0vAMWzD0RAMazrSo4XoWl25EDwI260YIJBaDbUAyMjnasOVnCM8MVgGFDPkjOEKNRTGBLRpqihqg4UyDGo4tDUfz7sHYeXEEj11xYCE00yH9Cv5uyDbKkRsFNMK4U6XGRQ2+s2PVnNQADWca1HA9i0dkTpXbEPdgcCRWgw0wUAw4+lWW/D1OarIGgBfGijEr7VsCx/bDAQ1n2tNwbD9jqtK2chvivrlYIsNB49BM+ZbYKoJ9ejhnayMwihYtiac1MEpaL+3bD9Bwpj0NxyaRHJGBjAnuCEFNJTjQDE2KmLqNR59vEiq0NwLf3FplKpdxzUfLaxE0nGlOw7EVl5M9mhgrvuPGuxpfI0FhaKr6HKlNBNtb0RxuK4T8wRJBTSHmKkhKzVXHAxrOtKbh+ASSI7NxYLNxguupI3MANApNU1DaRr8h36Aat6ODFPg0S41lqaync0u79gM0nGlMw+3YVlIJ3zvKL6Z+c0EyDkwzkAw0T2gRxRyNYb8RGNcOvbRvSfR8AVHyo4KGM41puJ7FG2KPJBZTfzhDxoEJiHYidHQWEbyUoTncVkBZ6huMx1ZYad++gYYzbWk4vrIk0ufAwGbmEk8g40AMokQG3a+FopsiKnq2AmNZap1lMYyiVskGBWg405SGY2yf21Hayfh2tIhwJHUHtENPM8IskTkU53+homEz4LTUN9o/MRUazrSk4aoZsGwnSSxn6A9Ix4EPiKbEC5E5FA9lT2QLUE8gGC7j1PoiwBYQLYWp0HCmIQ235ytKGoj1Dt/JzGu4nLDKBN4YaMaWIzGG5GWnIzEFVABf+3QlimU1fM9Eqte0TKDhTDsa7sA3XMndYdymsJJwQj4OPEG0pYimvwjFuw4qGrYDwXCJoKWl7VoCX0ikXfsGGs40o+E4j5Kn7w00MFq7msvJdeQegjqh2IF2h+I3QzI/I9e8GRj3qHhp3xJhXPHR8e4PDWda0XCcPdeoV1INr+JMYuiPdVZeAWJ6ohFFMJwGAjNq3cgE1tN+FeZqmm8uAg1n2tBwu8DiBaMzA6fBiVyD53AVVAVVZVD+DiKSZV2fHxFQCYxvxlbat0QYu63oSHBDw5kmNBznVjimp4C6RNwv2CC3dQLRSMqd42lWdTuKkIAqaD7ptB7G1KSX9u0BNJxpQMPteKs8mepvBlaj87hAx20YqteL3C0IPYURqGjYECQjZhxp11Jh1HA6TpCFhjP1a7gjaxLudu14zFabiPsBOm6zUP2gfJYVNGu6OhZ8QBECyZAZRdq1ZPhCoqPdCjScqV3DuYHF/gKe8PUyIgM6bpOQLUl1OVYECgtQ0bAl+KZUJc3QEmALCTScHmqOAbuCY6xH0tMjbhLouM1B1qIhZ5anyVN7qpiACiAZMqPo0CspDHxBkXbtATScqVjD7Y4Di+3PcLZ21HFYwxKg47ZFTzVw0lcyidrUdXRBAeohGTKj1KvhAl9QpF17AA1nqtVwh57F8FdYU+gd70Y+Yi4nyxkMoAiyeTG9rIGm3yMqGrZENedllyTwBaWT9u0ONJypU8Md+iL658KbfWIshecB/eM2AtnGIp9oANHj2BLGBGin+T4aKbTebwUaztSn4fbHUouQDOczvFJBWcMHAec5tA9d0XSXZkAguTgqGjbFgWTQjOKlfUsGGq5a15ZTUQz2Bx/KLUBe2cUKY/Kfk+sZ56s2zkA1VtI2EhF1l6/1gCSQROtyJQnGoHhp3+5Aw5kaNNzO2oP3oXDWil/CVbia+seAMoeWoRuYLuHqRAUNV4zQTQENN0LrC8zQcIZJw10CDXKrjSUkHOuOU36Cx7JqoxCpqFuakOppLs1ZVA70QTRsxrDSviUDDZeClXZrHSwxqJ4yEq6y2tRPrj3ScU3Skw2R9UfyUE3LHX1YgGIC0bgZod5JjlHDqWi4Ag1noOFGuZTKMDHuwy1FOHaFggWKQdbnN2E+JEq+q3jEgHIEmnEzhrRr6RD+kN9R8QODhjPQcGMwNxV5pt4tcU8MaB7XGnTF32ubLFL9IhxHWIBeGDfeSLuWAV9QoOG0wBKDugklU+dB2lsarj2OF28JwrnRr7ow1fYCNBbZGjTjZhRp1zLgC8pV2rU70HAGGu6TsnuhdzV2iRvlenb17hsBb9ANy2u35rqB6KqeJyxALUQDZ4R6j7xvXtlCwxlouA9c4Ruwr7yu4QXIuFag6/O7atGFbIMoxuHWoBo5n6hYNUxk4AuLtGt3oOEMNNwbhQpSn2lKxH3JOCyqNsFANySWjwiypiZoLLI1Wt+9n0jgC4u0a3eg4Qw03CtFt8L9QpjyUAH2xrUA4ahc3iSO5qz7GxqLbI/Wu2gkEvjCoqE9KDScgYZ7wcvcg9ZE3L1StZMJJaCCrs/v8qwY2Yxc81MXJAENN0rgC4uV9s1Awz1giUGdDFbqJrQn4m63C7bG1Q1l2xu77JID1fWQCN4crZ9IkEjgC4uV9s1Awz1giUGV9IKao0UR9xVRKxdRkAtlIm5Y9NsiU41oLLI9oOFGoWv0+IGV9s1Awz1giUGFDLKv7m2KuNtwRDKuWnrCgbDkyK092dUcd2iAOo5ko+cDL+1bBoxN5K20bwYa7gFLDOrjJK01GhVxt1uvYesrSIC00m/BKCBrSbe8hgI0A6NY8dK+ZcAYFiftm4GGe8ASg9q4WOnb0LCIuwUnHVuQRE84COb7pNIlUjx/aIA2oOFGaTws0HAGGu6Lq5O+CQ/aFXG3wSMzUiGkiTg/dzG67XddgdgAZTQuVlJpPCzQcAYa7msoatEXtq1mvy9c0WykQkg3RM+spgayC6G/7xZpXKyk0nhYoOEMNFzfSd+B/zR2YsMbmiINFkE6Q06vphJuSccGzC3CKFaO0r5lAA2XgJV2ax0sMagGZbpiR3fSuEaURRvMEihvv5+4EOFKas0dWUEyjRdgpgINl4CVdmsdLDGoBH2aYtdLx4QXfREHU9BOkRMJMsJVW1ssOkAR0HCjQMMlYKXdWgdLDGrg6jvp2I/B2OZIBVBxVREo7318NfVAdxH0990mgW4IvWOlfcuA8Jf1jpf2zUDDPWCJgX4GtSdBtVzZ8AAqriJo50gfuQrlkRCuYHSAHgLdEHrHSvuWQePHV0DDmY1qONWHQHVtb4q7Z0C16mfwQSC99ZHVVMKVVKThNkqgG0PvWGnfMoCGS8BKu7UOlhio5qL+/CfGPQw6UNKRD8xDuxYzvppKeY2aawhBBoFwEL1hpX3LABouASvt1jpYYqCX4VRD54Hm11NvwUrHGCxjIL3vfuQKlCupOGZrqwS6QfSOlfYtA0YNd5b2zUDDPWCJgVLqEHB3dqTdVVXS42lbBcTHh4z8AinHui8eH6CDQDiK3rDSvmXAqOE0NPGBhjMb0nDh2EnHeg2H5lNxWFCtg4H0rn+uppKu1uLFYKsEymH0ipX2LQNouASstFvrYImBNi6nQ3WT+wZScaGTDjKYhzgR59++nnIlFcdsbZdAOIzesNK+ZQANl4CVdmsdLDHQRKhQv32zgVQcdqBXwEB7099WUwPld3ciAQIKIB1Hr1hp3zKAhkvASru1DpYYKOIkHeAMdifp6LGDVJx+iBNxr6uppD2tkYbbLoFyIL1ipX3LgFHDafi1QcOZ9jXc7XYNZ++sdJzTsK33irtdD9IxBnMMtLf8+bWK8JzUG9JwWyZQDqRXrLRvGaC3SAJW2q11sMRAI0Pwh0462us5Nr+gigJV7VCf12P/f3Wg/F4NzQ6AEKQj6RUr7VsG0HAJWGm31sESA7Vcz8da2ov80v6C6qW2W7I5Au0NH/5UO+3pwFYwRECYQDqUmhlX0HAJWGm31sESA9Vcz66TjvoquiAdMmbQZUQ51DPl706aPem3athjDaRgLOO30r5lgDPvE7DSbq2DJQbquVTT7feBDdIBY0bD9lgQJxDf759NkLS7Pa1oiIAsjAcUWmnfMmAMi5f2zUDDPWCJQQ0MVfX8dYN0vHi5YFOcZqinyu8jsWifL0jDbRpGsVJzByRouASstFvrYIlBJZyddPRX0LiKG6pKjG6OQHy774KLeP610jECkjQuVlJpPCzQcGbbGu5LOfiK8j9tq7grRJxiyOfKo9kNpF+INNy2aVyspNJ4WKDhzNY13Jd0gIrTgpMOL4gTiG/2dd/TfqGVjhAQpXGxkkrjYYGGM9BwUHF6cNLRBVFoS0i/GGi/Dmm4jdO4WEml8bBAwxlouDtV9bZouUbVSQcXROmlB8c0Vjo+QJbGxUoqjGHRcMIONJyBhvumqjaz1KtQiqj5dNvG6aTHxiRIw20d2nbRL3hp3zJovOUKNJyBhvvFS9+INXS+1RO4IOLU0kuPjSmsdHSAMI0f7p4KNFylnq2AJQY1UlUqzhhH2x9VDU46sCAC7fH0tCANt3kYNVzNo6vx4yug4Qw03H+q2hVn7kuqih+q6TjpuIIIjK/0uVjp2ABpoOFGCXxhsdK+GWi4BywxqJTacua7JpNxTjqsYJyd2neGmh+ygAZouFECX1g6ad8MNNwDlhjUSqioy8g3LSbj6lrU3hBqE3FWOjJAHMaaG2i4UaRduwMNZ6DhXqnx2E7HuOVBBJzYoBTikxXIqPkZC6hgHGDSrmUQ2o4KNJyBhnujRhFndse21lSrvAlbwEmPjHGsdFyAAhgHmLRrGTA+GaRduwMNZ6Dh3qlUP3SnQTpyhJylwwnGGaRHxhhIwwEDDTcOX1AGadfuQMMZaLgPKhVxxuwbknFeOphgFMaN4+lY6agADQx8I6zWR4LhfL6reHWChjPQcJ9UK+JaknFWOpRglCA9MD5B0hbcCXxDzEr7lg5fUKDhtMASg7qprcXIC43IuGu9QrppFCbiOumYABUEviFmpX1Lhy8oKt6doOEMNNwYXvqm5NG1UOKgYoYAH/TSA+Odqt+4AB2Nn0iQBuM7l5f27Q40nIGGG8VK35VcdvU3HDlIxxCMwdiGK41OOiJAB4zdC720b8lAw6Vgpd1aB0sMaqeJlbxD3auqTdyDBlHW6PckHQ+gBGi4ERg13FHatzvQcAYabpxGVvK6Y8XpuEbuQWvoOnELSh/8wNi80Ev7lgxjUKy0b3eg4Qw0XIR2VvIOp1p3x7VzD5riKD0unvHS0QBawIGpIzAmJ620b3eg4Qw0XISm3u871w/SAU1gaOkeNMQgPTD+09TPFGQBDTcCo4brpH27Aw1noOFitFbutj+eVS2CLcFLBw2Moai/iJOOBVDDjm+YqTiSIImeLyjSrj2AhjPQcFEaPHi9Nh2HLItOgvTA+KXeZyugh3GgSbuWTGg8JtBwBhouSr3580mq0nGtJUMbQU1/EeyYBP8Z+AZatS+TgS0kOp6P0HAGGi6Olb41bNSj4zrpUIExTtLj4hsdjxGghMA30qy0b6kMbCHR8eODhjPQcHF0DFIuOldDvSoScSpR0l/ESscBaAIHNXzCFxIdjRmh4Qw03ARW+t6wY4/nQTrK03TSIQJjqOgvggaC4Bk0+f2k9ZBAwxlouAnaTsT9sjv4oCOtMgYScToZpAfGDfoevAIN9wFjCbmOvajQcIZJw/WekVBsDbDB0tQInTuFUlFdBUpTdaKgv4iOxRygBjSI+4AxJFbatwfQcIZJw1lmo/dlzpDaWBJI5cqql44KGEX8EDeoe/DKnm+w1arhGPc86Pj5QcOZSjXcFzsXWEx/Qcc4LYm6Uge0ANOJeH8RFUduA00wjjZp1xJhXF6Wdu0baDhTr4b7wgYW45/Y5nNip+qIVR37LsA7jI+HJUDbg3cYt/VW+jbfswXkIu3aN9BwpmoN93UHmbXGdh8Uu4OWI1ZRfaiT3SA6LKy0/0AdAcPtDb6IKFldhoYzlWs49mzAdqoaRujK7Dqco9JX4OY5SA4KJY8QoImeb7w5ad/SGNgC4qVd+wYazlSv4cyetS/G5mvfDr143xEnHQMwThAcFJ2080AfaC7yDl9AlGwzgoYz9Ws4s+NcT93uYup/pGUcFlOVIljWsPl3KzACY2a4zrwvY6WulfbtG2g404CG4xVxm15M/ePQM4Z4FiymKkWsrAF9RcAIjJJFyRb+lTC2h1PyC4SGMy1oOFYRhxf+b3ZOrlTVSTsPxhEra1CykAOUwTjkpF1LgrE9nLRrP0DDmSY0HKeIw2LqH3upNVUspmpFqKyhzqQIYGfgG3NVLsic2MKhZW0ZGs60oeFMx6cuusKuaGbnB7Y4T3CV9hvECBLjobYpFpSCcThW2aaSLx5ajjCChjONaDjGhX8s27zgBrZIx7HSXoMIImUNyMuCcVCY+srQfDig4UwrGo4va4wHxhsCKs5L+wxiCJQ1XDtpp4FSHN+o07J4uAq+cFhp136AhjPNaDi+V47yrmjHl94XV+X8uQ0Eyhq8tM9AK4yFqTVujG6/LBUa7k4rMWAbrwK+aGfHt1d2nHyLbb7XYAzG58Q4NT5MK2FvpS3IhXHcaVEtK+BLS6rZogwNZ9rRcGwHrXgBX9SzL9tpJLsozN9u4XToCDwHb5Q+j81KO9wge+tPYbjVX8HFOC1Zad/Ww7fRQc3KCDScaUjDcW2vVjNcdVF0I5TLtXb4/p7hfLT5roNndmVX1rE/lZKddT48CR8t5Yap9HwDz0v7tp7QfjCg4UxDGo5LVahJGyujZCout9PySx+zcDpUuC6iF8ZGop+goIGInT2ewof8rv0ADMaxWOHLw8AWDCft2i/QcKYlDceVEKiyu2MBdj1PvEfIzYV+WDr0DreVipLr6l7a2Qa4595ic6WTNi4Pxt2Z9e3D3PEFQ83kCQ1nWtJwXIl0dIiLUSwDk5kLHZ/MrmdvScKwdRirAd+p70Gqis7687TirnznCKNsqW+vIKOglXbtD2g405SGY9oRV/seEUYOpfZC5S3xTNRnBW8rXz5SQLm9kVba1WrZH+LJt2c6aUPzYMwJV3dSwwZKGqDh7rQUA54SOZzOGGdfSMTZLCvD9JdfsEEuj2JN4irck6SAvTuFxSH20tbm0bONvexNucXhqxjXEwpoONOWhmM6glvGmTooJOKy3oGX5Geh43Io1CSu9h335ekOPqyLceWr1YzbO6p7lx/YQqEnJQkNZ9rScEyjVsqbKigj4nyOiUvn9cvJdTRB2Rw9583/AztTV7Cz/pzy21SzXT0JzrcJad9Wwrg3sJP27Q9oONOYhuM5PwCPjimKiLis5P2aPTLIxyVRpElcdYkQMfauT94YVvn2X8oB94aV9m0dTKtSN1W5Wmg405iG46mQ07P6rxLGg6b/yNlEu3pQQMeth++B8Z+6M0SlSEy//VF5P8xANNhG8NK+rYOvpEHRtlRoONOYhuNZTNVThaOTAmWJObcgKTn7pePI4rMJ+I/cwqvUHLvDiuKFKHUPfMajnCt7DgS2QChamIKGM61pOJ5fsJQ3tRBYov5MzjLakHrRgP5xy+m4V1MH5Ean+NJvRH016l5M5UwIS/u2Dr44KEqIQ8OZ1jQczy+4k3KnEgrshko3Lmt9/Xo+KpqwVMPd8NlKO6gXOv12p+7FVM4uv1VlKLfQ4Rca7kFjMWjMnUrg3w2Vblt2anboHVJACwgEtzmOoj04qqDVbw+qkiofMHb5rWo1fwsdfqHhHjQWA5ZtOV7MnVoIHGF/Jt20geLyl5Mli1WrsK6mojXcGNZzKJa6F1MZN8RVVRgd2MLgpV17AhrONKfhWFZ0qnr/EoHpmLP/JFtGV6qMZdUZerJQf3JF7N/YH7nKSOpeTOVcE+iknVsBXxSstGtPQMOZ5jQcS3eRzOSxCyyoUpY9R9yfSDaM9LV86NF1JApvo0Ak4p7YuX5gjHXVeplzQ5yTdm45fNvhVEl8aDjTnIZj8Sdz1DLtTFC1Q4g7EZdsGPliU0A6bhTuXs8XiLhv9iwLqM+oejtcDWN0VE2502yiOxw03IPWYhA4/Mkzienn5EniRUXP4+QvqWaxaEuk4z7ZcQsLVVuppdi5vsCJGIr68CfAuCFOU0XmDHw/R0Xd4aDhHrQWAxbBlOfPJjQczxEZf6SaxdbxAum4V9glXO177fPZHwsE+UHVQ5tzQ1w1JbuMK8qqBgc0nGlPw7H8gvN+upvQcMwPcY1WDX01Uzo7PWOc//DSXgpyYN0B94aqVMtqGANTzWsE3wGIupK00HCmPQ3Hsnjms0zahobjPTY10Sj2etmz6yiDWCuc61dPOGk/Zdi5vCNQV1NVE40PAl9gVO3nn6JnC4EuGQsNZ9rTcIZjtssbt9vQcJz1YMkajldYfnPxqlYXJCgR5gcbTHx2x1Aquv+persn54khtQxAPs2vKwLQcKZBDRcY/MnbTr0NDcfb5zfRJv6T2B9sfFWV/5iOX7bWJq7cFrhXnLTjOXBuzdWVhYrC+IvUJe+h4UyDGo5jWScvhb4RDcd6YGaiTZwmvXHe7Ilc3F1FntmSiNufhnKBfUVV/4jVMIatksXUni0AyqrDoeFMgxqORUpkWbQRDcdamZpmUrkE0YPLsSONaB2UlHDbaRMnKOBu1UiVCJy7M+tIuPP9JJWVu0DDmQY1HMtdzXr734iGY016pVnUc5o0yuW0oUTRA/7GcG8R3oCIkxVwd6x0CHLgfHWrIkPJGIBO2rdXoOFMgxqOpRQxy6GtaLjA4+eDNIsGRouiDJuScaUlXCVP0QzkBdyt9qMaODPDNbxC9Gzea6tYhoYzDWo4Fo98jkFMG8WybOKAcQkjbepg7jsc57qdGodCVSPPVLKvPInOD+UDOoK2Z/U6esbIOGnnFsCnYbVpe2g406KG40gM+ByDmI4f1vZz4ixqSNtJy1plMcNGZFwvEVt1I5+ITqgKdYxOOhg5cC6mVqBuGd3XtsQADWda1HCBwaGsahwmDaesQojNz3RfhZ+IG5BxhXr7vuOk/WZg5wRSmnGcdDxyYO1VqU3GfNKz+a7rkAYDDfegvRhwPFeg4RbAuHSZtAeKt+vwIhqXccV6+77jpD2n5tBLhTJC3QvWnHJYfWQY5z11GXBoONOihmMpIcgxiEnD6Uvq8/h5x6eYU7izSISGZZyYhKtulp1mfyp7lNYS6u4uwjkyr9qrGhi3kKjLQULDmRY1HMujO8cgrjVGqoCRweTnLVHD9Xz2rOPaZqWqWMnIraVev91xEIxjnKoDzJqCd9LezcC3hUTdUio03J32YsByW3M84jp4nSpgZDD5eUvsLDnw2bOaBhuOlO3t+04jIk7XJrhnlDVzXUnPGBl9SuYFxm3J6pZSoeHutBcDfQ3iOAzKtYkDvhdAm2CNZJpojMZOcZCVcF8irpOOQDYa11D/ULfddhWs+yistHeT9HyO63tvgoYzLWo4fQ3iOAy6KTz2JTA5mjagJDuLRAjtnKlavrfvO5Uf2LBz4hGcRjpAeXCqY9XylnEZWd8ObGi4Ow3GgMMjr82gXJs4CEyOpj1PdK5SndUp7yTkJVzdIs72ilNw31jpGGXRc4ZGXz7qP0ynAt1RuLwODWea1HCBwaOsVy8Og24KDx1i8vOWpuG0PiRbqHDQIOHqFXE7pWUMr3jpMGXBupNCc3sRxmmvk/btE2g4Aw23EI0aTt3eWh43b2nRZ9zam81Q+9Y4JTlOdW8xS7C9dNiWoXrFcJ6BMzadtHdRGLuqaPy1QcOZJjUcR5PfrHZJXE88bWkIJjfTZg/GNQUKzo46+gXppaP3i+aEyCg7N0jHbDHappd1sG6H1TvuBj6nnbRvI0DDmSY1nLomv1xywhIFjAomN9OWdQKbNURc+1rXVHvp0P1H78N0jL3+XXBP1L1zk6uj0zedtHsRGNNwKrs+Q8OZJjUcyzjOed5yaThPFTEa+CqiXII1bMYQcjnWmOsQOiR1nIpEnAvSwVqHlw5YHqzr/VqH3cDnsr7mcAYa7kGDMVDX5JerWZGyHSt8O9BsgjVHJXu2ZuhTfBNF8IStMbx0PJbR+ZpScF9zi7fSIcuE96i9Ttq9UTh/m520c2NAwxlouKXk1FWziRuykJHAN2kmGmRPKsonZxh8R3kXuFEm4XRu03mnljqGby6nQ4354XcGzhgpe3/+gdFlnQ5Dw5kmNZy6BnFsWzMsUcBoYKsiyCjA7dy5gvxHRU3j1Em4CkSc9m6+z1x710nHiwjeqiYr7d4InD9OJ+3cKNBwBhpuKVmF1RwG3dG1RYFt8TKzqL2GdFwtyTiFEk7r4+WHmhZRw7HWMpsxeKsaFB5asBv43FVZ0QAN96DFGHA8srNSyQODQXd0dYhjU0o+27Qa0nFnm+0mO9rOoP3BScclyr6Xjs1Shr6JBdRnetaA6Tu1gDPx6KWdGwcazrSp4QKHT+oMutMRRYwCvrJUS2Lf4TSwWUjDoL1MVfqc+yhOOjLjHIJ0YBbSVgLuF94231dtP9aO89fZSXs3DjScaVPD9Rw+5RjE1o3BE0WMAr6SBrLJcn/UvqqqumecWgmn8wTLStr5NpiA+4X3166tvwhnIb42X3+BhjNtajiWnHKOT2w9wzUtprIJVVInd055z5GLo3SXEsUS7nbVJuJ2dWyDu3htgaOEefemlfbvBdaso9ZRAg1n2tRwLJLJZRjE9/NS9NsauHwkfwc86G6Xf9VZ36BZwmkTcZ3uEfbDuZkS1BgDa/w0vUHz+qqzsYiBhnvQYgxYbqzPMIhvq5ieHDdfFRjH5uG97s1xCusbdEs4VSKuhkKGa19PP5t0mA9N9tL+PcHqqtqxAg1noOEWk9Xggu35p2djLd8cwvRw3nvNm+MGx+N1KqwbpknQIuJskI7ELMNJSay42TGPWj1hZK0Y15VwfAYazrSp4VicykonBw6LHniikGUzcHnI2Jmo01zjoGpJdac4UL+oEHH6S1Hb3gL3BnMiblDzCs36+3TS3kWBhjPQcIvJkhJ8x4RreUXi2/KX2eF3BtUyTk2Vag0SToOIU1+Kejl20jEqCt8ulm+0dFnne8Dc9DxjRoCGM41qOJYnTo5BjAVSjihmmfBVezpu0zXLuMDu/RLqkHDiIk67gtuagLvTM8dUx04x3k54Ttq9ONBwplENF7Q5xbhbQcdLEuO5Nl0J8/XKuMGJr9fUIuFkRZxyBXeWH0cS8B649TXiOmkPDfe2Px1PmHGg4UyjGq5X5xTjj8zRxCyPns29UucS6pVx0hvj6pFwciJu5wdp16cI2xRwd3rm0F4URDaweuik3ZsAGs40quFYdrL6HIsCh0XfaChNZcwzFtxx0h0HPj+y6LtyUXinJgknJOJ0N/Td4hLqf7gTcQraO7FuhlOdhoOGu9NkDFia/GaJicaPIw583pV9JqvtGxds0Tj8py4JJyHiVCu4bQu4Oz13iDn6V66B+TQKJ+zeJNBwplENx3Jns5qLsG467YjClgzfUamcnUUi7JX22Jcpb6hNwhUXcZoV3KCpPY0U/J0Nnah/zM23VafhoOHuNBkDljubtTGLtcZd+iQUzi21IisVh57PoQwE+v7WJ+EKizi9Cm4zjXznYO4RJ1wOzX1+ihP0bR5oONOohuPxKssi1mehcDaf8xR5odr9nQuMTiUz+LKbH2uUcCWfqWprUbdxlNYyuA9rEBVx3L9Q3Wk4aLg7bcaAxausxyfrvlPZAnfO/RiCU4jOCodrSRVXp4Qr9kxVq+A22kckBnsiTq6ujP0XaoUcWwg0nGlVw7GM7CyveLswlmrAMQZrMl+2D7rKrXHlVFytEq6MiNOq4IbNVzG8sxvYgy7UYYT9Fyq9TWcOaDjTqoYLHF7lrU5wWPQfOa3DO0GKb+lxnAvFqZRpNVKvhCsg4uwg7eIoV2yCG4G5cvOOiIjj/4VqH03QcKZVDddzeOWzTGLWAo4kbuvhnUYk84u/qFxTLaDiapZwX2LGccbGBmn/RjmzOl0xgT/2AiKO/xcq3/tuBmg406qGY9kBkTegWXrW/UdqW21g9Uq69dIPVuGaKreKq1vC3TjfavZB2rcxsIYah3cnyzfFZ2D+X6iG9vHTQMOZVjUcS/I8b28A+8F9IiKu53VKzRyyc/okDauK6/T5uxbHFJle2rERrr3l8bYR+hL3oHA7cv5fqJJX6Amg4UyrGo7l1mbWSHL/5CSS+YHXJVWp/P1JXTKOT8Vxd50qgmMIzK6X9mqEC+pQZ+DvL3LjXr9/o8AvVHlfkTvQcKZVDcdzfmeeTbyn2t0ERBx7Ml/bjlp9TeOYVFwTEo5BxGk8lOHaa/uZaIR5K8sPvpg/Bco05B/j80DDmVY1HI9beXMl47nwPxQWcfuB2R+Fhe2dumQch4prRMKRizinLy5IwS2kzN6Ac5m7USQbrGoVJAI0nGlWw7FMtpluDRw2vXDpKGK3EP4HmivozXLU7YzrqZ8bzUg42ueQvnYiSMEtp0RZwxeXEnekwFa4GgoaDDTcg0ZjEDjcytziyd8uvOC22gJvgmq3Y2hr/Uvc9bchCUco4vQVow5Iwa2BfS/LD/yFAMciP1D9BQ0GGu5BozEIHG75PJu4K1PvlNpWWyInUciVFHbKmvRTqjjbkoSjEnH6ilFRiLqSAqc1fBM6Vj+6UMYLVieogIYzzWo4lpxX7rAusghX4sSGXYl3WrVpuG9sXyAGy7lSvTaX2CxdFAIRp66UYfBdvldb41Dq7pD9Fscok4QTPoJ7MdBwBhpuDbmnBpR5PDK/BppSW7sdtxu5dLqe7IOjcKqYhAvFthVml/ooS7reAsmd3h7ljs0LXHtaih0QUsVKKjTcg0ZjwHNvM40q0qTo6xUq72DXOWyZh6/yNNw3uuobBpvvUClbL7tCv4ZbrogrNN4XgzqGVMqNuNvtxLFXsdyKfh0rqdBwDxqNAc+97TKt6lms+uSca2icYi+Cjs0FUnQtqQab502ZLlq376WacrUTGSKuK5e8WcJAW76yMYqtpt7IC41M0RX9SlZSoeEetBoDlX7xt4j74eoJQjjCIZTyoIo03ANdS6pZ8r0vZeV3/XS5R+qQmLtSthHu4jJuLihXm/qAVsUVHYqVrKRCwz1oNQYsfmUP7cBi1hg0u6NeKFqMybseTIuuKtX0VZy+mI3u+4Ll6ifSmu6ouq+3s029seCHYrWp39CpuLJ10Wciq/mBhjPtarjA4ZfPtapk0R+xirNFm6LVsh/jl2JLzAtITcL2xSz8excqlxdJEHGqOsJd+c7G3RLFVkJ+Idm9WPiMvyq6+34DDWeg4VaRrywGDrNi0Km4/amo4fpOSp1n35eN0BQpN5798Nv/PHX76ItddO0GyyL9c5ZCv7lqqxRotP7G5Zh37/bFj/ezNKEuATScaVfDqWwuUnwKuVL0kSou4Oo4qu8DTRvjVhc3FJRwLys1BYs+3Zp4aDoalWFfxHYJAjfwnHyihsDcm7/aVBBoOAMNt45ss0qWt38Tsk7k6ZzEuVIVJfNf2B2H8sGKsK64oaCEey0SLXjhFdtZNfUTCTVtDdVP+Rn4+y4eVy8tyMy9BImKgkDDmXY1HM/NzV/iK5/L/3qcH7sUU/fHfhCw9lZRWdQnirbBr1h/K3hE6vBmVVfwObUwvatpGTW3Wwx4h+fJsIDr+WiXGrl3UnNvXe/P0HAGGq60Y0KvgcPJdSuMtMdTELHzQW0FDa/oKW9YfHhuQQn3WVtQ8OLLRJyiZVQUMjAg8Rr9x6X3tpuybm99HwQNtGVuAhFaH/NFaTYGLI75fLvkZpBr8IeZROLOHr5mEOFnWDUNJmNYNX1hl2VxDpISrmyt4Hy3X0XVqFBwPMj/PIdw9v5on3Hen4L01FvXZjgDDfeg2RiwOEZxfra0QvqcPu7zhz8rmEC+qXgl9Zey7ZymWKADSja8cdIGzIg4PcuoKEVlo+QezMqopzPcN9BwpmENFzgco1jlE03lV0DdK6m/qFFxs93iip2vdYuWhhZtmziVij4MBS2ZAgqOk5LL91WRd7KwANBwpmENx5Mwp7BsYLGsFapfSf2lK97XKcJgp8zsC1pyihlRMvsV7/bbhYJmTAEFx0zJg1Mror65FxrONKzheNJdHYFlJbMO9eEIIqwENadtTvQZ6QuaMbEToaQZsVIPLXcLCo6fksnneqivszo0nGlYw/H8Skl6NQUW09qgyu6+UbSouNiCatGdQZN7bfqChoy+J+yVbJKCgitCL32fFeKkb8p6oOFMwxqO5+56CtOKH9pXD9VtyJhDi4obXVAtKuGmb23ZfeYfbwpaahmg4EoRpG+1Orz0LUkAGs40rOE6Fs9o6naUPDD0kXAyuXq0qLjPBdWiW7vn1HlhEfdqjR1KXjwKFFw5UJz6RpUrINBwpmENx+MZzUEku4HFuPpxJOHVhhIV976gakta9X48w0iUij5UnyXlTr5h2B0ouKJgEn6htq4i30DDmZY1HM8jgcY21EWNEq1brB0lKu5in2wqWlqzJMFa8tStr1j8WVSwxfEEUHClQYeRJyrdxAINZ1rWcEGzazre/JVR56vgMpSouNPfVF20Mm/ZGnnZh+qPTUoaikDBlQci7o9KJRw03J12Y8Cz6YzoEAHp0xo0Uus8shAd2+avP5XVfdGLLtzmWFjEua9LHlX8EHGqlggQcT9UO/VCw5mWNRxPgziqnZ88g69mrrXOI4vRcXZD6L70ZCh6ycUdeQo/VI86knBQcFJgFn5QX2/fX6DhTMsajuf20hQ1GNSmvtNiSeoHKlTc1ReuyXPLA7TBh2rYwsDXCvqt36qeeqHhTMsajqkLG5l9qG1/od55ZBU6Mj9FcWvis7WHarA84wwsY2vjbYSKJRw03J2GY8DiGp1v2IzxjKMKq3pskI51Wdy68GzqoTqsDA4gZ1PjbYyaJRw03J2GYzCw+EZU1GDQYOQZRxbVCjgM0uEuyOrfy3Yeqle6uQQko6O1jBiXmiUcNNydhmMQWHwjbICBLXG/OLqgVoEbpCNeioQaoK2IOLQT0cGmF0SqrUj9BhrONK3heApTB0IL0SXuG0cY0zpQ0i6OnaQy7k2IOBSjqmHDIq5yCQcNd6fhGDB1Me3oLMSZfQ8cXUTrQUe7OGYSO/G0L+JQyqCJzYq42iUcNNydhmPA1KdgcbOrBZQ9XkgpjjCgNdE1n4ZNbqZY9BCJ8gyUcwjIZ6Mv01Uec/8CNJxpWsN1LL7RHuq52TfAP66WMp510XiJasYjope2nZGrJxtAgIhNirj6JRw03J2WY8DiG12X3wcbbGr6QtWV7fm0XNyQ9Yjopa1no699/apNeulxURwnHXICoOFM2xousDh3o52D29/7M0Xdle0EtFvckPmW30vbzwNOZdAKTwmcWtpY/4CGM21rOKb9RsSbWbYs4qrfU0uAivO36MleqOmlPWAAPX0V41p9mxqjkZdnaDjTtoZjerMi3RBntiziGtiQQUGL2+IIbm0v7QM56Ainmv0gPUCKERoZidBwpm0Nx3QQAu2GOLNdEeeoA1ktzaUASBKsvbQXtISOICaAkV2QHiOFoE5DiAENZ9rWcFz1Ah21oZsUcW1syCBi19ZuHKI18paCgn4iNdDSiItybWcoQsOZtjUcU2EqQ/5og2f2tZLNp6IL0neEDrJtju283GAZtQ5s+zPxpZMOMh3QcKZxDTeweEd5ZOovm+sT5+ljWDuHQfqmEEG4zbEREYdl1Gpofj21mXXUO9BwpnENF1i8u10ZTN3Qftob1lHHaWRBlbRSpQURh2XUqmjjVxihoXXUO9BwpnENx/Vr5PgdbKlT+BkLS+O0sKBKXGxcv4jDMmplNPw+3doOFmg407iG45r/edLRPZO12rgeWcLXBtUvqJL3i6lcxGEZtT52J+lRw0N7My80nGlcw3EVpg485lb+tFoIHmqTVL6gytDyr+afxdXRxwPwYwfpkcNAgzMvNJxpXMNxFabemJpcN5zE/6W9V0Fyal5QZenaXK+Iw9motdJeKq7JmRcazrSu4QYW9/hqe3ZMx4OpATvhllBty1+mgzcqrdoeLE84QAkaS8U1mIQz0HAP2o5BYHGPbTH1i2Odj6tl4KG2kEqzAGxnp1Up4jxXNEAZ6t7V8EJj5ah/QMOZ1jUc26/Qspm8b7Y+9erZgtYetsJh4PnCUZ+IazPvsS1q3tXwwqnV5Q9oONO6hmM6MZX3tPaGXv+e6TvGmDWIr022OM5oVCbimtx8tEGqLxO/E5i2bysAGs60ruH2LO59ceV8sWkxFRcsY8DapLIsgGOORk0/Cmz7bIbqXqXeabrDNDScaV3DsRWmMj+xWtsVh41wSdRU2+C4g1FPE+xWNx9tk10vPZ5yaHwDCzScaV7Dsc37gdfurqUC1cHxBqtdqqlTLiFbahFxzW4+2ir1TsbX1s8IgYYzzWu4nsW/O9x7DGrc1D4KFFwOdXQ4uBbZcVNFRgQp5waxQXpYJdH+FmRoONO8huOrD+CsavjGDWzGlwMKLpMa2oyUkXCmhuPokIRrkwpVXPsKDhruQeMx4Dpt6wv+yXpX/X7agJ1B+ahPxV3K1b310r5OgyRcu1Sm4rag4KDhHjQegx2Lfw98CfOrVnG9LRCiDaD8CNVLydST6nO3Wt99tHG6XnqALaX5fXC/QMOZ5jWc4dNArO1F/qhWxV1PXYn4bAPN3WaKSjjNIq5gOhLI0J1qmI2H40YUHDTcg9ZjEFgcfODLeLA7Dnw+cHFxZYKzGdSm4oof626VPkZ94TgACXbqdylvav8KNJxpX8MxPvvKJOLuOMVpmBGuPTIS5ChNxfGX9nxGQqOIQxJuM1jFrUau29gG9wc0nGlfw7GdtnUr+uZte0Y/aDm7cmHZFBpTcV4iEAqPbEA56pbolC6NXNzWhiE0nGlfw3UsDv7QFXSkjiXVy7FkTDaGvlSckwmEtm6/KEfdHLbXlg0etrgBGRrOtK/hGIsabrdzWVf0zRuvQMBxoysVJ3emlK5uv0jCbRKnaE312m9pF9x/oOHMBjRcYPFQyNGdpnnjFQi4EmhKxRXr7DtGL+39H0jCbRYl0/FWBZyBhnvQfAxYUxdD+TdwJfPGK2fXFQ/ERlFzbIPwLn4tPUbOSMJtma/pWHZxZMMCzkDDPWg+BpxFDSJleQrmjReG05YnkfIoObahcFu4T5yG34DccjJQw+E0CA2/i994OXTnOeik3VpH8zHoWDz8Q8ote9KwqnbtkYArjooTVIu3hftEQY+RIB8FoIHuWPy1eug3V4UKQFt0rh8Kzxsvc8j5uPGXQDHk29yepENwR7rHyPUoHQGgiH05HYe5F4BGENJxlxPyb5LshPdEOukAfLMLkkFAW1/wzv7IPh9j7gWgMXYHH8olZi790Up7DER3gynaBNbLRcFL+w50srP+PLAMOcy9ADRL9yXkeCaOP67BOyvtJ/ihC7x3ewJN+SexKIjXdADV2OOJ8M16wNwLwBawjkXJXe4zCJ5ZqhDcDCZSjD1OLxaE29VKOw/U8zUh91lSbgi9P1hpNwAAJdnboz9TvAReviYQZztpf8AnR8myBi05KNn9cDifASykswf/NSUvHq7XEM7+S7t10oYDAATprPX+FJZPHQ+Gx/zhrJU2H0SRrmnQsZ1f/NhUHWEANbG31rrvvlR9+M/p+58OX//bSZsIANDHzv6fO+5vhP/p/f/pA8+kKjiI9xYRPWfrBwX94VDYAAAAAIDFqOjxK99eRL5J3h2k4gAAAACwDCVnbUmnoLScl4pGvwAAAABYgpcWLX+IlqfqCcMtdJKBAAAAAEAN7KW38T8jeFpoL+37M0jFAQAAAGAaRdmnO1I9RqTLcj9AKg4AAAAAcVQl4R7IlKeK9xT5BKk4AAAAAMRQloR7ICHiBE+omACpOAAAAACMoS8J940rHggVPUU+QSoOAAAAAJ9oTMJ948oGQquEuyEVBwAAAIB3tCbhHpxKRsLplXBIxQEAAADgFb1JuAcFG8Vp6ewbA6k4AAAAAPyiOgn34Fyqx4h2CXe7XX2hUAAAAABAOcqTcA8KNYrrpf1cAk5QBQAAAIAxVn0S7kEREddLe7kQL3d+BQAAAABUsDtJ65GlFMg+9dI+Lmaw7MEAAAAAgGLsIK1GlsPd7XfXS3u4hh6pOAAAAGCzqDsVdBpeEafwfK1JrgfOaAAAAABAL6o7oY1xtXzBqE3C3dBmBAAAANgmXZDWIAk4rmhUKOHQZgQAAADYIjU0FBnB8USjSgl3Q20DAAAAsDVqqmV4xXGEo1YJd0NtAwAAALAl6qrAfMPRx0P/ORUT4AhVAAAAYCsca6tleMVTx2NfdzxuAec2AAAAABtgH6Q1Ry49cUAql3BfnLCgCgAAADROPecyTEAq4hqQcLfb1VGGBAAAAADaqK4l3DiEIq4JCXfDgioAAADQMvUvo/5CJuJakXA3LKgCAAAArdLEMuovRCKuIQmHClUAAACgTRpZRv2FRMQ1JeG+uFiKqAAAAABADzZI6wtqCERcaxLui3OXHxYAAAAAaKHqpr4xskVcgxLuC49tcQAAAEAr+CbFSq6Ia1PC3W6DIxk0AAAAABDmMEirCi6yRFyrEu6GbXEAAABAC7TTT2SEDBFX8TH3C8C2OAAAAKBumtwI90SyiGtbwt3QLQ4AAAComV2jG+GeSBRxzUu42+3qSccSAAAAAIrhBmkdUYAkEbcBCXdDcQMAAABQJ3YTOiVJxG1Dwn0RLPmwAgAAAAArXZDWD8VYLeI2I+G+CHuO0QUAAAAAHrpeWjuUZK2IO0sbXJS+4xhhAAAAAKBn56V1Q2HWnfXeS5tbmh4lqgAAAEAFbKAY9QO3Ij59Uct6DUm/K87fAgAAANTjNCi469GVvaBbHJ++tF12KHrFcaDiAAAAAN3oaCcSuuJa0i0MUNFl5uvhfsndqeQ1Y6BdHAAAAKAXHQru+r09rfB5pG5ZhEqadP2tCd2rKIRFuzgAAABAJ0oawv0d1dkVtee6pIlGUQl36f5f+KhhhRsqDgAAAFCIDdIK4cH38uE3ZfuwLRBxh5L2XF52oO001DZAxQEAAADaUKLg3ttY9CWvPSviiq7ufjT0UFHbABUHAAAAaEKLghvsu2VFt/Nfp2svy0q4EQOUNH2BigMAAAB0oEXB3cb6V5TdgTYl4nYlFdR41+FOx4IqVBwAAACgADUKLnIy56GkdJoQcUU357no3RoKWjHB4NAvDgAAAJDE6ahF/WsoMkLRJcwQs6KkhLvaiTumZEEVXX8BAAAAQXT0g7szdSRn0e5oY/vQ7vTlTJiprdCyoAoVBwAAAAihR8F91jK8UHQZc1zE9eUMuMz2ONGyoHq7nrqUgQcAAACAdHZ+kFYAv8yf4lS0OZobMaDgCVuTdRW/6Gj5e6fvVg48AAAAAGSw07Kr6vZ0LsMUfUGD3MfVCxbHLpJwXzewL2fSDGe7ZuQBAAAAIJ2ul37u/2c4zNt7p2SjOPt2bVvu0rHteJ/sQzmrZggL7yEAAAAAcrC99DP/ieXb4gvmwt6KCgoWxi6XcF8chmJ2zYGGcQAAAAA3hyD9vH9i0TLqLyVF3LNdBXv7nlbeTEUr4ihSBQAAABjZ6SlFvc1Wo35QMB/2tCutYFGsW39Di55FNs0V5Q0AAAAAD52itM2SatQPSoq4v4uGYtd0STe1nH3zoLwBAAAAoGffSz/hX0hK2uyHcvb9XLIvdkWXeGPVHJZ255LqBQAAAABGcUH66f5CsGluFFzY/N6bdix1uZnDGaZv7lDKygVcfZfuCQAAAACe2R0H6Sf7C1eX7krZ3WnF6ihyJJxRVdzwRZ/nDAAAAAAe7HtVD/g1/URG2IVidtpyG/AyJZyups03LKkCAAAA+ShbRCU4nKkvZenVltJFA0HiSlPj5huWVAEAAIAsOj2Hov6QuhHumV7aCWoWnq81hzIVhypVAAAAIBFb8qT4RRC18++l/aCFSMIZZSWqXwxHNP4FAAAAVqKtjuGW1BEuQrFq0RLQSTijT8WhvgEAAABYhaozUX84EWqVguducUMq4YxCFXdxSMYBAAAAi1CYglt5NOo8zYg4agn3xWGQduqNK5JxAAAAwDwaU3AkpQyvNCLi+nlPU4IzSPv1DpJxAAAAwCT6ClHvrD3cfhFOVUO0RHgknNGo4m695XIWAAAAqB2nrhD1DlEx6gfFGvDywSbhjEoVNxw7RocBAACAStmfVGoaumLUT49VOrwCTglnVKq429nx+gwAAABUxu5Y7hzRNVyzztWao3IRxyzhjE4Vdz2hwAEAAAD44aByDfVG205kjKpFHL+E++IQpN0c4YI1VQAAAEDhkfZ/ZJ+MusB5rb7PU0TCGYX94h5gTRUAAMDG0VmH+qCAgjMVi7hSEs5oVXFX1KkCAADYLJ3STXB3yig4U62IKyjhvuh6aX9HGbA1DgAAwAbZ6Wwk8k0o+Gzu9ArZOGUlnFGr4rA1DgAAwNbQLOAYDmWYZFefiCsu4e5h8kozljjCAQAAwGY4qK1iuFNYwZkKRZyEhDNKz9F9cIaMAwAA0D66BZyAgjPViTghCXfHqY0UZBwAAICmUS7gZBScqUzECUo4o7VI9QFkHAAAgEbRLuBuvVyVYUUiTlbCGb3lDXcg4wAAALTGzp2VC7hy3UTGA1SLiBOXcEZxecMdyDgAAADtoLqNyA+yCs5UI+I0SLg7ejfG3SDjAAAAtIHmRr6/XE+ddJgqEXFaJNwXVvWLwRl94wAAAFTN/lSBMLl6HVmTCkScIgn3RXdSvKR6b/+LUxwAAADUifoahgfDUYeC+2I3SAdjBl0SztxX6QfpmEwynKx0iAAAAIB1dBVsgbszOOlIPaP87NSLGrX7hO4l1dvt2h80hg0AAAAYw9awgnpHqh1cFNUiTqWE+6LTXKX6AJvjAAAAVMDOVbGCekewHVwUxSJOq4S744J0dOa4YFUVAACAZqyvJAGnpBR1BLUiTrOE+2Kv/9Xh2qPlCAAAAI10+rv4/kdRIcM7SkWccgln7hngCl4gLl5h8rcgnbVH/8vBWvWjCgAAmmd3OA3ST8cVhIN0wKZQKeKuVTxsK0jGPdJxnXSgBLDHUxi7O5ezP3TSxgEAwFaxPpR+DGahcRvcCwpF3FV7zH6pIhm3ud1xs1PEFVUfAABQnP2xogXUO4OSfr6TWOkovVONhLtTRTLudi9WrSmq6SzdYzGcthGPOnCen07ayXRi4XHShukkNgKstGGbp5KH5X+Ckw7ZMpx0oF6pSsKZapJx9xNCpEPFzTpBrXib6tYIXGP+CSvtZDqx8ARpw3QSGwFe2rDNU5eEu6pfRP2PLhFXT9z+UH4M1y8n6TjxkqCl+07aaHAn0A/2D6y0k+nEwgMNN0psBHhpwzaP8g75L1T2iq9JxDnpYKRxqGB4WukgcZJ4DlpFr1oNE0jH+ThW2sl0YuGBhhslNgK8tGGb58jz02agt9KxWoseEeekQ5FMdxykgzeDdIQYyTjJFrk4eQLZGI9jpZ1MJxYeaLhRYiPASxu2efY8P21qhio3z/bSYfvBSQciC90FDu3O+DZkBaaGyqO2ybt/y7DSTqYTC0+7v+gsYiPASxsGND8ffzmrbgY3QS8duQf179hSvKbqpWPDxO6UG5nBSvuwcQLB8J7DSjuZTiw80HCjxEaAlzYM6H06/lBnCu6HXjp6X/TSQaBgd1Rap9rozi87EMTmhFScJIHgFs5hpZ1MJxYeaLhRYiPASxsGlG+Iq28X3CvyErkJCXen84N0LD+5SkeFh+wk3DdDowq3DgLNTZzESjuZTiw80HCjxEaAlzYMaN4Qd6mrEHWMnXT66CIdAUr26tqNnKVDwgHhoHXSvmyYQHYX41hpJ9OJhQcabpTYCPDShgEzsPy287m20fNdWMTpP+d+JQddFQ5H6XgwQHpQXDNp4PoIhLcxhpV2Mp1YeKDhRomNAC9tGFCxZeuTs5OOCxWiIq45CXfHyS9Q/9FJB4MeRyuSQ4tDsAoC6X0cx0o7mU4sPNBwo8RGgJc2DCjqYvZHA2uoT5CmNdZR2wlbS9lpkXGDdCToIZ8PmnyPqIFAfSdHsNJOphMLDzTcKLER4KUNA2bH8+NOpr1zs8VEXKsS7o4OGVd/25Z3GF7pIOJkCPS38gMr7WQ6sfBAw40SGwFe2jBgjPSu+2eufa2t4KaQqhux0o7zokDGNTdaWbLyEHEiBI57+YaVdjKdWHig4UaJjQAvbRgwxvP8uhNoZxPcGzLr1U7abX6kZVxr4oRpoELESRB4buYLVtrJdGLhgYYbJTYCvLRhQE13kbNreKKXEHFO2ukySMq41qZ7tqmgyRYs2glcd/MJK+1kOrHwtPajJiI2Ary0YcCoOG7rcuyko8BL+WTnhpo67JxQw5HGOoswbtxsb+OgfgLb3fyPlXYynVh4oOFGiY0AL20YMPLdRZoXcHdKB3lDEu6BSN+4tmpGWLvgOGnvtkdgvJ2/WGkn04mFBxpulNgI8NKGASPcXWQTAu5O2RW/po5nWMj+NBSNcWudRXrOWLVcI62UwHk/f7DSTqYTCw803CixEeClDQNGsrvIZgScKdzrd6ubyPfHklFua4Fw8avc5eyP9oHzp7A0/bnVISlHSBvVq7DSTqYTCw803CixEeClDQN3YqOZl7PrpB0vSkERd+2knZWjK1fj0FRnkW6RGLt4+/GHC3cjtqV4KyBkDe5lWGkn04mFBxpulNgI8NKGgTtHnt/3FE1XoUZY9pQkYPPrVod+KBFmaTdJCQscPnWRP3YL/rrm532VLLknuVhpJ9OJhQcabpTYCPDShoE7Hc/vO0abjXwXUOrAho2G94W9Z097NtUwY/497uqnXrtsmP2CYXuvbaLs7TwTt/2y4M9txbc0NmCh4UaJDRMvbRh4UHAT0aW5o7RWcCgSYiftphK4V1WdtIOE7GZfL85zj+vD7Ff4Ep6ANdj43Wpdy4SN+p0IftS6Oc3NvkScN1TDMEqJEmDsO3riwFirWnEO4oN+xtfrgtzublYyd+x+gHVAw23O70Riw8RLGwYelDiqYegPLT30EuFXy1trDDdLd+RJx7XUvmVuAlhYVDr3itLU6nMTQMNtzu9EYsPESxsGvhlmJt9cwnHDK6gv9MyRbklZ0MGRjmvpkIYw7eri94K5HZ+W0QeQADTc5vxOJDZMvLRh4BvO9BAScC/w7j1EF64Y5Om4TtojOiae5HdWpHZnRByej8qAhtuc34nEhomXNgx8w7WYet38DrgPeNvEId05xeFEF/yWEp5h0tNVq/MzIs4yeQDSgIbbnN+JxIaJlzYM/DBMzrxphM9+oIC5ONVLe6edpR1pZ2loKXU6DbfymTY9vLEjThfQcJvzO5HYMPHShoEfqBdTLyc0KYvAu5iKRNw8+2PID3Qn7QUd/ZSfq7u6edawdfcTvr5g6k12b5l2/3pnLfsvaffjyqHAtWIwarivO3XwjLfqEcC/u2VX/3VY5ffXte5XOrL2xNtzXeTrXjy+OS1SD2LDxCd92/5pcHRpBk2y+/n+Q9UtDNdBuZj6pd82E7f1TD/issFb5DJyl1UbWkqdbvG9Xl6Eqa/LKJveudPbV196ulqpvfs4+/UaTlznAVr/djHGa03aEb9T6TPJ7uDD8P5t/dHSmX2/wsfvN/SrFn5iw/TT7693vtebFQjH3Q+d698cupwp1rE693kv1kbqQWyY+JXfY4/9xxnL98FPFtDuY5oIGxEkH/c5Dei3GdgP3GpojY+Zncs4kquhME++Vfj13zc5xK+J08PuGNHcFKe+7CYW2Af6puSH2NUu0cPMuKDXcPuJlyOaExYni8wvJ7vwa8Iyv7vI1ShPG+qig/vsMr52aljftzqtGtixr/ErvqObWgAh2TsfjeRlA4d7EiymBg/9NsvEIKZhy+fdr6dz5zRR3UlbTscw4WbS+ViT53a5z89HPmn/f6Lrp75ymDwFbJbDXMHy4Ltl3xRTRM+f2flh6lrB5biyGmIN100798XZ5hm8n9/Oeu0XXSMs8XvyCLnp0+emLuJfrjE5/q5LB987C06pGVa8M8S+w8/+5Q9RefXE5Zj1S56+W333/5OR99a/e7+Lf88yC+NfwLfJLG8x9UqS990ABU7bwmrqSvbH9TquoaXUySHpkr5yWDc8I5+0v/8/reAenFLn/p2bMvaP5/k/zryG2/nZoTbY6PfTQ6rhbL8klINLN9ct3AAxLNACYd7v2UOAZ1Vc5Av8imt8fXr94O7mx9mPt27hN0aNW/bny8bGF31y2ns+kv9niTkNZ+IC2C0yJtru/Jrq3gKG2ehGuPR0a9mtM38sJQFO2ssKWavjGlpK7SfcTHwfmJSF3cfHIx+0P/+9aAfp1SdZuvRR9/VsWfAgndVwbtHlZo+mpYNQwy0QIz+kqtRlcvub+RxZzNw/v7slDSWH6bRK5CL+7xoxK16dWZm7WfDS8+SBW/SdsT/3s39p1oyNL4Jd5+2Pz0vu1l8gZzVcfApbVloftYbzKMyUxdRr8Nsp+6CgyMG0qVuOts4aHddJG0vHlM828TvDxHd+yt/Jiy/up3hZ/yZ5GBZ+953rvG6f0XDzB8r+XsqudiURMg23SjbcQpdg6soipLn7FWb8PiycDCYfypGL+J//Xqbpb8veIH7ZrS2bm9Gh38T+2M/+pdlHohAlYXgc192tWQ03MS0uMSe+lMqZ75quThtxV6SOqm5m+uFTgSZcySzUcQ2tV0/lzJJXjKcOTv380sgH7f3/5k7vesavM3JZDuSJ2UfLtIbbD8sv5da5kgyVhluez/xmgSB+ZZfw+jut6sO038uvN3U2TuQi/vt/+xW+LBZxS7XnMwtEU+xP/dwfpty5tcvHu7D4m78L4+c1XNzqJYo3OqsOq/xay/LXHMpK4E3B2xruP1ba0apZoOOctI109CxuDhPf+jE9T4ziNRLua2JaM/MvfXN/4joTkEkNZ1ddb+ZKVNBouC5hYlu3YGyH9Ve4TQuMMOl3v+IqE/oqcpGHXYvTsnMXeWbdl/4xr6ljfzkV4juJd25YozDWvB19i7h5DRcvEFjSHqmP/THvJpzJarI/JyHf0lkUYQqSqgnBE/vjVN+Rllarp9xM/9ap5Rz3/uHI5+xaCbdmPTXxWTc9f09puLXVTB9RYoFEwy1eEXxhzVM6uanmenn17XdPdJXIRbxZf+jiIhG37kXhmTlNHfs7P/1n6e1Ql6udlU73cbOex3z09iyZFqMWdYu9SmFmMXUI/sBrQOsUKWj4hnPj5GboXKzVVUajWm1M1aNnuDk1mXx8beRzdrWE+5pfFwqDVW/uz0ym+iY03HpXbFLgV0Kh4VI3+S7e9Zeot78vEh0QIfIXd7/7lVeJ/lIiF/EJ11iyRSYnSzCjqWN/5qf+KOfOLd4DOLVxI2byAg0Xj+X8Ymr0hY17m1M03uF0ROlCPjnjeS1IltJwbwj/GV0rbRYdU7N+ziCaSDJ8vMdGPmfXZioeX77I6PR0xWQ6JK7hElp7F0n25mu4nMe0W3aFrC0o0QERIn8QUqRQLGkUuYhPUr6zmal+/Xc+Mf3Tif2VZ7tzC5ePE9p12SUaLl6WMP9u28f+1C3xKIMRPXs/lKNjvuxWKFTQ8E1D/cvksW8b5Hj3pZZl4gmc5ebUY7B7+2zkYzYpwbNExK1+c39m4skS13ApD7MS2d5sDZf3mHbsV4gPiBD5fEjplRoT3JGL+KRGoXPt2/uE73xh6nbE/sbz3blFIm59gvt+txZouPjUOL+YGrOJszncg+e1vms4Qb3RMqwfaxk01MBMBc8Lqy3FdmJUZmmIqcVU9/bZyMcS1+jmN4NmSbipJ0tUw6XtCrI5N2AZuRou9zE9vyyVLQRiIi5EPh52Q8JFIj+WyEV82r6a6ZW4PuUrX3Hxb4/9iWe8cwtEXFog+yUaLi6z50Zt9CWA/7Wsf7hx9s6yX2p7MJ91/w6O3GLA+ntCrqWKhimplXcozBD/4vfdmsRDf058ZEq4iZk4pogSD8Ep0MEmU8NlP6Zns6YEQiDygw2RT4e0d4du1PzIRXziArSdiFSf9pWvxG9H7C88552bF3GJFwmRf3757qg8nJNi0RHEv8Wpc9j2xgX7WffvoEkcD51z0iYQMrWkkzcX9PEvflcH1EPfTxqWsviy8AIxRTQkXsdm3YElZGq4kOjYf+aypiSbiEd3loTIhxOHx/hzPXKRIe0aU5M6TY4grqljf+Fjf0DTSGtmUxBxZuR1zEel2NyS6BD5u5Y24WyQnnawLcBKuwz0MzEHZk44U9mut48WHfokL1ORC1BveeVfesnTcD2Bj9PvmkTP6LE6/UDz1X+sSval0sUCRXUQdzTxFfsDzzg27kz+BvJOef8kLPz26SWK6N+1tAlnexQtaPgGTeLALBNpjkwBMTW9dq8fLTr0SdIDkeV08l85+084S8NlL0o/mHqwkQXUfn53oPruH0b9oL6IjwSKbpknpqlXWkQzNu64ifFB3TQ/LPz66bkxmr/rJv8M6KbUCQ3PeGmngXoC3/CZGJl28ScTidtOdGLx+JOOXMO5zHswS46GI9INEzt3k6oLRhlZkgtU3x2/BP1FYslxwutENHXs455zbNyZGB/kTfPDwu+fXkwdln07qIpiJzS80Em7DbQzMXps5leH+Ff7xUY8cTk5e9+tY78rS9KG/rTKup69fVTjWzt5TsctEh1yDce+qTVHw02/l/7ers6OtlhcdKE5wX2/XbsllxhTJnN/sZpuxIMiF5l/vgz90dpFNyOqmWIf96OfnrvI/x/zMdZI/Y/o+JitSb2cDvef827RlDFyqXiLuKnF1GidmJv4I6Ccgic0PAPdD6aJT1L5bwB9/Kv96ycXDOWrfzXnEKY/H1nsmEzs9G8Tc3ea+NmOJkQWabjzX9Mm6/qZiYG9n1SGhpvSDcPxdRV458LEp9164+7XcLvllxhZ/Z78+O81Tr89GrrDaZj58JgbKy9iZwXNaJZsOut17V8LFXZu+iLjLw6xT/uxD0+vpA7H7tV8P/0zGAvsnenNkh9TRj/58QfvYz661WRqMTX2w2ipn8H2IFrAWU1edwjQPFNPydzvnphh36bK+YHsP6c/O/0g6tbadB75i1gr0IdJI18/r+HehMfX83T68cXdjCBdw03ohqsbu9IQD0rkElN3eOyQ9snj1T8+HyY+/M2b9jF2+k/GnuvrL7KfrsQdFVj95AVGpMNhmPoLO3aN2If9yGcncxZjd243qeIi4mc6M3L6/KMuTP3BnfcxH9WiUy9XsWHb0AmN24O6emYxKGsAk0w8wrNP+piolFup4SInOU6+GY1OmPFueNfI6078UK6xB8uchht9fE0+s7kr2dI1XB/9w8g5l7v4X/jRP5hK5lxGh8TEJT6FYpj4+jtjov4wJRvGfjHkFxnTu1PDLnIo7W7qxzOqqWMf9iOfnUqQhRGPv+imBPvYNaavEnF7bs35Y8xHb0U8PRKdZMZNAlUQZkYOH17adaCaiTkteyF+4sny9pCYGcTRdgeTKzbdyB/00UuMffpBvJucX+XyxFWiVt34392TNVz8vdRF/ybq6HiiZZiIZGxITMTy/akb4h+NuzHZXHDk8zMXGZfokxcZ8XziIvEeuVM/njHfY5/1nx+dSpDFB3Qf/6P146OLXGSmOeTHmI8aFfcjNqeiOVzFULXuSaGTdh5oZuJVdqyl1iqmjoB4/eT0ED7Hk8lTM/KI/VGLprrBR68x8mCZ1nDRq0xk4ri3tCZruBD7MzfxR1FHx7TMhMiYuF999I/en7pRDybdmLrFdkWYJi8ytXDzeZGpZHrKwB6XG7HP+s+PrtyB8Eu/7s/Sxse0iPsY89E7EV9MDQmuA+UMU6OGGZQ1gAkSZ9tlTAzLxR+cOW1nYh4fmWT7lEvEr+E+Pjqp4eIbG6byFlOWEZCq4dJq76IlJWOiIb64Nnm/on/2PiBC3PUpNyYWIUf+aPIi8YXyid/l5x/10c9OD+yJ3IL9/HTso/7jkxPDeTqtHHdkLBEXf/OZPMBt8jf6OeaH2Edji6nRMrFu0negmcIHpb6BsgYQR7+GmynmmnDgY+THdMfcmZ0h8nefwmPy+WDjV5iQosw7WlM1XB/5o5nsbfRyn9NU3LLpo6DjOay32xzirk/1dJlQKP7z01MXmQjwmotMbPKcDNTUTooR/5c7HR/NcxmFEP1L9xmi6GdnnnmTm/WWxygmR2PeZ+8vBmII9RX5BWUNIE6IDxyf/eUTo3K39IOz7yBxDz4m2djkPVc3sHyT8pSGm0xBxOeIj2vQkqjhYg/Q2T0/seTJp2joo4bNDInoH/rXz4W465MvDnENMKJ8Ji4ymZiJX+TjtsQ/Ovv+Hrfu07bYJ/3HJ+OZ0LlnUbzW+VMBxZXi3B7SieqJzzEf/fHHFlNjI9zNWAX00sdHTBG8dACAXkJ83NjsL5+YK1+/fGL0zja5nchCvH90GP/c/AtyH7nCx8NiSsN1U1eIL9DZqT/LJ1HDxbITs9ZGb9f74z2eZplL5kQv8TaWQtx1n/T9Y5ZNXGRSaqxwf1hhzmJXPt9rYp/07x+MJ0Lni6zjmcGPXHl0KXVWKa4b89HrjCvk6I1DLqVapnZ2l6GTDgFQS4gPG1vuy7MGbzwN8eZBbPvPvKPRRdj3D048HaaTA/Hnnp+1LotEDReR5wt23/aRq70/3+Nplm7uEiHyh8Oyj81eIvpusu5Ar+mLxCXK2wfjQ2c2UBM/ns+EauyT/v2D0feRJYWZQ+yPPxbpo25/GPRBiP7tyACODsTxX3Ts42gOVy/x8VIK9vN6QLVMjE5b7svjn1sw88X3KrxN+/34p5Y8WWIP1PdX8QlFNLOutaaDCSVpGi6mGxZsvo1dkKRD/jfRZM7rx0LU85kZM/7W8PnZ+EVm0r/xjNTbB6OSaYlqiKf7uvePxj7o3z84xD7pFhgUVUzvP9PowF1wGkJ80I+N+Whd+uh3L50qQDWQn6CYgJUOAtBK4Bw1i788/rluwWX62B+/PSUjc/GSLrqxFN77Y3JiH/7MFaKSxS8wL4M0DRdRMYtOBhsil3t79EbN6mavEF36eF2PC9FLuOnvj8fs87Pxi8yMu3h67e2DQ+xzdi5Od/rF5sU+6N8+F43+sv5oUXe6189FhfQS6Rq9yNiY72MfHpVlkVkGzeHqJTpaCoKKGBAhxEeNLffleSM3vlvhRRbEnryLTrNaODPHn+5zyfDoI4k5i56m4SKriYvWi2J5o9cnYtSuJc2Shsjf2pdPhajnc5mc6B9+fjR+kS71Iq/WxXsezkXpQVQqfsQ59kH/9rloAvH9g+NE04pvojLEPrfk9xy1cWx0RUM0Ntxjb3vZ3TaBFJOd5IvBfWAPqJUQHzT5yf8h/uX25YOZAze6P+nlKjm5o2iarHv9WFwRzXmSpVkySNJwsRU4t+SKsUfi6xMxqmmXXCN2t+zLp0LsErPqZ4j95af4i15kdtxF//LVi+gTZuGkH/Xl/YOxz/m3z0Uzyt0ie6KK6e1lZt0K5xtR4Ts65ocVl+qznAf6iPa0LMuCLQJgk0ycEOCzv3xiRC78YLfoOsve/MP4Z5ZppNiT0r1+LK6I7MwF1j1V6EjScLFkw6KUZuzp+6qcQsyqJVNZZ8fpll1iNp0Y/Uu7/KOz+dXoT/P1In3sY8tuRjzv9e5L7HP+7XMxcfWvvXMvcJ0FoviVUAmRUAlIWAmRUAk4qIRIqAQkrIRIqIS92321STjDAJPm0fP76/vu8hgIDScDDNrVxF6VH/5edGcHUCXRMQ/fL26aVjW4yYZYNrzvHXpySZR1x/hVvvZ1n+5VzURTxuiHlbNTagTKuEYNh+Z9XZVInAzU2RO6I6A6fCqnWvfUVAJ/msNKkBNaK5ngZQ1jP56yIVBcaeegDhXQPKaC41bnfkSVRIdXRpNQb7bKxpO1sXB43weapbuCrJJ1azjteXzNpz966SuXjEEVo3c+nFnSMypqwxo1XKgyFY0595AGynJf01hVKxQ7QZXySqwkOe6UlaBU2n2U8GTq+MeH0vlhMqgJW6VBcHF40O6MRxADudbiQziA1NNfNVL3XAjbKh0aaE+H16aSGIKGqx4y0pHsYUqUSruPEy47PaRBb+3Oq+hVDanY1RaKc1ZRpOFAhl7XlR3I7h9q0E3kdaAeT69CWmi4ZEOgGBrkrBe7PShg/PiVFcG+Ua7tKlsEq9FVoo1w8w0cjZM29fF0DO+1VZYP73vHLd0ZZI0IZ27m1HCj7SG1g1YzbwhXldcwfIvDJqcXkgLIuUINN9N77dHxA5+ooUMjoDqSOWGnOX0lyYboKtEpPQnNB9ANlMwPk3XK4jCogIFjMIBEyiVk5H2Mj3m4njb+WVfETSSrpEOjcQG4qZJEEKZw3YFNARyldPyqRMm0E7ZmIguqn0k2bmAI7E6fbAOyb4UabqaYl4/1BZDGMswWquM5Gs6oEih2G203aD1aKJnXNVg/jtEOv0EJtdXkZe9A8vFwBB+K1a9SshBrCO97p126O8gKwZFEMz6cAYLna7TXptYC2IqHxVjh8tYa/MCQ19Bwgjiv4XGmC7k2FYDqSH/ubkHDqbtBu2yNkvlhsh4k0z+5AEroNYm01YD8IDt8FqPFVNB4HincKmiYLQPji5AIwohxlUUHXLRXGaF/7SvqUf1I8hm2pOK0XAA5V6jh5jpt/1AFSmI5GwZQR7rHDTRc2qGoq6S8/NzGoGS+KJmASpai1U1tNSGeHT37HlQ3HI/oW1K7FZCsjHW54Wa/tIdskh4PmNrI0MKh7HaYEqTSyxfFG135K8llaGPG5D4mqCowZ00arrlXgZJ4w6YHUMdTNJxVJeXl/wKd2KNNXCiZL0omoNJwtdWEeHbUbcimoVQGDmruY9oqYJQsxrVZukfI+gh4wGgjewCkne9umBSk0p/mQq24v5Lx5d51vKKGQ6bW4v5qgE+rNWw6asaLaThbcQZ/9a3aHri4W2A0BIgy1G2wWQMXG9ivwWuSNopw4m8hKudkskeETWuVn4/woMGHdru0V9cVQAn3V/JcXnFqODtc2iqHbCoANWMXGi7jZY/q8SXJDJ6cqgil0ZBMDQf7+XExFQk97mLaKD0aZcvRLN0nZHVInxp17x5BHY4364BkXl1XACXMr+GGTaGGq8GlrXLIpgJQMzal4VAir+0FarhH4GNB78nH3z9YSmVwuI2yPjccA/2SKdLB1LqoRsJB0PFbDSTz6rpCcsTPtjt1YAc1XA0ubZVDNhWAmkENFy1Cl2yvGg6GiHtYTAVvvFbdcrIqejTIlsQt3StkdQjDpeoQoLQdzutsGCfDBFACNVyKNWk4n7bKGTYdNYMaLlqELtnSGk7r9MrVcDBE3P0lCd54DA63UdbohqMjjkwJeLhUBVSVfgFulBYk89WNoIZLQQ03gRouWoQu2bM0XABptD+XLjc7sur+kgRvPG5D3yaHHo3DZWmX7hiyNqRAETVxjeAVPh/T+KMgmVdXFkAJ1HApqOEmbErD9SCR1/bCi2o4kF/I3oMa/16S4I3H4HDbZK4ISrVYXlVDdoEkbio+IaWl1MmLEqTTr+WGZE3UcHHWpOHe0lY5w6ajZmxKw5WX/weqx5ckM3hy8ED7oxpC7dbeTwH2rgndhub037cUiIfDKXebwA2Qi9Mu3TVkbQhjteJuD+krZhIvCaSrv57noQTd7yOb4W6X19Bwkou1Bpe2yvLy8ADqeDENB2PxjX6mKJkvSiYAXx2PiTqUqNFVAnIL3Ya+Sn9FGlhKZXC4bbJWNxxv3CITpBm5LS61F0qdrC6AdPX3NMyv4V4xPtxcrzf3VwM8Le0Nmx5AHS+m4bSNQcl8UTIBlYaDiRwodQgaYFK3oYP2P68z8B5t1O0mK2K9bjjeuEXGSIcPihcC8goFCfUnuhSjHSU5uSqGevS1Ndx7XVe6h+9LZNNu7ku1qqRDqdTd8CQNp9+XoWoSiMWmneDQ+0l6LCjPWWo4g8Ntk/W64eiII2PEW6jawkJ7oczpPIxSamuDm+/8PU0ASVxhC6O8hoYrmQAzybapgPIeX5GGUzmtRGAJzTAdSuatGpxVAuwdnWhCiw+SlehF+f1NCnbxtepmkxWxZjccHXFkjLSYWuiIE0PrTA9qoZROWR18obf3NAEkMd2v8hoaDuUxvNsbrVtZ7hAv7/EVaTj4S5uaAoD3qYzSoWRe12C9U12xMUL48tTVo6pjTAcyHfEfGRxum6zZDffBBXoyQhRcRRJHDK0TmYZR0lZZn2ZzDErjSxqIeA0NB+dPO7NQb1jePVne4yvScJrPl7JuUF6IN/4Bwd+i9snB0TWsCDpKNMde4NFX8bGgXGdsD4PDbZJ1u+E4rMgYacAWrb2LXzERVYiSanc/daiA5p4GKVXTDSuvoeHggLETWJVb1s8hyvBZl/f4ijQcVDzqnYOogLGFKJ0fJqt2DCpVaUDJNPNbp230kD6e6aZ2gb7TNpqsCmM33Em4d7KMZukeIuuik0ZLgcaR7mCNTvQoqXZxDv5EFEYZLgC+jIZDtjozs6AS8KrsvaZF5T2+Ig0H9bR2XKuPACvTQbPH5SGU8h0uASu+OnHwSvmxoDqP6B3K4HCbxNgNd/l3tPbr0RFHBkjxeAt25R7Er47Y6IOJdY4d6IsYvJFRotzmSbyIhpt/XRoqC5U0QQNi6Jsq7/E1aTi4m1XpFIUHPMdrkiidV6arvEFh/EOFy6GK7R8dzCsbiV6UZySlx31DNoGtG+72UQF/ZaU0S/cRWRdBHIK5l8V04uBzkRwwcauqEDptBnM2amTMoFJeRMOh+dNwXRp+uGqkCbJvOLuX9/iaNBycb9pkDaKBk45G6XxpgXF0H2TSh2efqkj4Zk08FvB12qNvjkbVZLIujN1wXx9DwbRIOuLICGEi/+Q9b5uT/MkRfUnC1HWBAobT2DMONbyIhkPzrOEpPN0zBXSqp1De42vScJVBNqCemSwDooR+lA4ucrYqg3QfZP+k8EVji8YEmDP1WJBxx3ijZ/7tknmwdcN9j1vzUxJu2T4iayOIwyVLxImnXMHQw8k1NeMAd81jsidExHgVDZcKWW8A/BLQPK4e5B2mKu/xNWm4Oo8l7ufJmQiU0I/SlZ35/CMom421YmoYSh+ZCRvhIn0f/edW1WKyLmzl1q9XGK/9l8HvAzJAdsTliLiEhIuPPJzeK6qEn00jVwL6aTaqhh1SVwvceBUNh7pc6eE/pm+8wOtdaZ2IXpejBpX3+Ko0HPRY+mQV/wRv1iREh7oaOAU2CnvgRsiJj1eYFMX3lXjiKvVYOmBc/F8ZT3+LJKawTNxvsda3TDvcAvKKBHm8vDfKclJuaBfNhdMrXoP4s2mkKDqQzKtaFv/sb4aJXkXDoXlQN2vFvRkjxw88GJPWieht6YfJQn67f1iVhoNTjuZh4MyTpCilHyeEk1VV1I9pZsFdItQkHxFMPZYsbwr3LG2SPucZp7i/1cSgqQXQEUcGJBxxH1enKeWQ+tYA407I4ZOVYtk4ciWg969KeMSV4nhh71U0HHzPeU2d8Sc28q/hFa+UIw668NwwXSho9zer0nB4K4FP1oHnq6n+UNeCdU7ahYqH4zR0bwfTCvIpEeUh+Vh6MXvKZLJ+TN1wjxNEao7NxS3VQ2SdJD2957TScX2qkCaesSDLHw1+KY8tRil9unuAG64d9wAyxSUrCCDnOjUcUlgaPRx/YuM99KUxvPBQHruWQmH5K9NwWMtcm1Qd+Ptn2hKU0k9Swl9kutEBtiWjg25c4gOxTex1Sloo7MIbw+Bwm6TXP+E0g6+WjLGjgY44MkCQQj/0ic/KQ5ccdSh2fM1IDTDn5GAe/A0V+wfGE8XLaDiosBTXA8RXSf04Gf6qkAOAQTfQ2DcTCtr9zbo0HH6EqUrw1rCMC/H8JCWeq1Kh27DzNTauepj61oJxN33SJL9Uk49Fjl+eNJmsHVM3nB8Ubb2a6hbpILJaFFEIg8PZDz59mgcGbhJzybtKhG+bdpwWCo/kmQ2wAjMx7WU0HHb+tKkaQc5Gb5kYsRBvjxx/g4SSdsumuUnSZ1TSo5QJD7MQjDvjQrxpHUL8NflrSRBITSR5YrrtRnmac/oVlX4s+muTYiaTtWN5LdZ4q03GB4AGOuLIkKAZlKe42nGd5jy2Q1XL2VrBaOE1Hll96VDaRCwttIlm0qDX0XAwXyokdBfPFnkCPbRMiuIK38ET11IoabfceDdJ+oxKhB9BK1QgSLjYkjhK66dJsbtLHB3CXrX4D7THDf/Odfqr7nhSnQtMPxZ1xH3TS/zIkzDdtDYZ7Mb3sLoFOoismPRq6hfvfhRQ49iqBJy0tpDI6GFG6Us8Up2w6iR54tAmmukL/3U0nLBzyQm5oG6IZBIeLnacdjCP17ZgcxpO0jItLF+6Es9H0mekFQaVIOKk4wbTNt/QrHu9h0/UzpX0Y8FHSEa0yaLI+gjax6vAT4u39PLREUfG6HcCXEM4+xsX/dtRWrBMZQUblOUdeE0kR8DWwbkF19JO0r6QhhMyepjpDU3T0bp6XAWQAgfUizHXEkq7PQ0n/XLRVoSj8MuNnkxBiX0kLWr1rWy0rVY6boB6qxcaXoTi16aN88XgcBvE0g0Xc8Qar6a6Z/cPWTmd7QAbIq2iJDPHNij/c6J+jM5dwk4ddPC27aFREZNQ2pj9QwLIuVYNJ83T7y6aQ9hSHs0gvlB9LEOP00/HA2rA9jScqGXiD0Nc1fGxHDmJxakq+kUmHzdocvuoFMWvTRkijsHhtohlIN7ohGe7mkpHHBkira5U0woVa0arG+U5dnKGJlqTdLz72k1+dQes4KLhn15Jw0l6+CO0k4laemCgKtQnX/TtuClS8kicDZR8gxpO1jLdOIc4rFFQDJTaxxKLYRSuvhklbzqxAXgXhnXwe82vTbdzhMHhNoj4TsvEx6uwnWPdM3uHbADzi3nveKleVQn9+e1XFxycT/0UwGdwooX9ub3rOCdvg4697l9Jw6U+KS+n+8bJ5g3cKCl3T2KL5sOISFUQG38BJN2ghktpmf58fxbp3f2xCjI1XOpN8jk4/pImf8xC0EHrN5bm16YK8xU5UUVWT2c3ktCRFtvVVDriyIhEFPNy5JWFjDF7Q5EOvvY1KyFflSR7IuYqfykNpwl3pNtRDkeHJuCNast67CRrQCWWd5pbphKdlnlXDWvo9ULJfTS1+nemSCe5tEpXU4GO1fzaVLMwg8NtEEs3HNw6ZLua2jyxe8gmMN5z+Usidod9hTiYaGdUQ/Ql/VIazmywCH4W1Cu5xGQAKnuLGi7vIk8RFLgFpffx5J2ZQbIcKpsSzyCb6temWQ5Lhw0nq8NQXnlci+lqKrddkjGmYap/ScXQNa9QeBUbbfqLz3SvpeH0sbJkBD+L0VpZ9E0XQOJNajizi3zg2SOUwceTm22uTb08uqIyazScYtgzONwGMVyYl56/rZ+keVbvkM0wg4gTg6/dsK5QvCjSZr04PtO9mIazcbaIn5ImL7y4DAgg9TY1nJXLskX2oAwepFfGm0yRvvQ1/1zDp06t0XCKEHGpS8XICjH6JL0humFNV1PpiCMTzPfEpUeZcYWJ8JoWy07gHf1qGs7C2ZLwsxh8UwDXUgDJN6rhbBxfHtqTncPkRZK69uNGl1toC+dR3a8trRoZHG6D9LnjCOLlikxXU5tndA3ZFsYiTrG7F2UtHOsp0VgvC1ANr6bhDIRDcpKuf1ouXnAAyTeq4UxEnPDTQVk8zGHh0m+T/fQvW8TdyqzScMmvwMT+X7JG7FagUivppqupdMSRKaZx4lpFhSivHMUXkX4P1/5a4Sv65TRc9VhR+Flqn1YLyg0g/VY1nMHvVpoPUB6Ps9TPim2ym77IWgX7KrNKwyVDxDE43Aaxm/VcqirL1VThRBh5Yaw2SH/0qvNZKLcr2WWa2gN9o25ywTW8noarFA6apbLKp9WiYgPIsFkNVy3ixE96lMkLeeDdajrEq3cHHHt1md8jrk7DJd6PDA63Qezu/EivPGnCMqnx8/cN2SCVL99fwEWnY1B2V7Cuq5Fw8uWMFY16QQ1XJRxUEq5qNMLrOfeo4aT7YhW0oj0ol5cyVe3LUI6O75YrXRu/P946DZdYDGNwuA1iduUHCs7ziOUlcXTEkSgHgyEtzJ9DUAEufxJInoH9Qf/hPkZyVryihqvw2uq8tP8qnpZUQwB5NqzhajzoKacXyufFXBUKX/tT/qEJ6SLv9y7XabjE9ncGh9sedvF9naY6s5WuDx6CJoi3vnJodep3MCrB/csVcfoNnoUi9dpKhb6mhiv1k2VM0oeuqAbRDxyK271iDVfssywOAOQT+Ur3/qTKneK6RBPbpFXaMS9uwIvfN0tWTWLs6NGdZ7G8JI7jjQAOvmacTS6pF0BlfBWR4YORBdaYktkuyJ/YL6rhigTxNe/zseCTIlFDKG73mjVc2ceJ4peDsvpUxmOJK+69yJfV+B62sBuUWKnhRK8N/SLbw0xTaVc27S5WUZ/8IS9Ioffjk77NqQeV4r6t0E5Kue/9Q65DOyk7XlXDFUisS5NpqXbHk7qGUNzuVWu4z5zZoknjMkd5fTrrKXeCzNT3jxxPl2lt72c3Slap4cRDjE2x8WQpzOL7ttoazfbf0RFHJJoiX9x7m1cLKsf9/F01B5S895suo1VXn5zpXlfD/fvX9hl9meOl/SPraaVrCMXtXrmGy3wWH12TLrFKw2W69BU/NJnGnXwXvul86yJJgIZT78UQPigYHG6D9BnjU0L/0rRcTXXzdQzZPodTnzmgLi63juTQVHjM9LvvBjSd8qekmlheWcNlKIciBXdD/bQ0NZT3+Oo13OezQBWPueoUXJ2Gu6m4XmlQf3rGOTvwQvHa/ILfpp3PajITZiubjb5Ow6u9Zp4kyOZx2pnzk/dTk18BKszdk8iz9/VcUOsPh5Ni6enSqsp6bQ2nGyl9xbP6fFpt+mkpayjv8Q1ouH//jmfFrza01QePvLaAN8Xq0bVTtq6WUNkY/LthcLgNAoZDNn6JSj94EpqkeTv3ipEUSgTcP5WGk2bvi34iitOcgtCqq778gwOkCziCnDP/OqHFpTW/ddJIeT/Xt0d+Wvoayns84zE/pRKEO0uC93NcN+qiPgsDZJRxaEWN33fPu98AdIzaAKzhePfR9rC6/CpvY5rhlVscdERB054DHkTX4F1x0ajQcYmfc8D43RvObzZLL85fIu/10J34iZPLbaRM5+o+eKNH9e/rafXz1rATDm8+THtqwXF9jL5GruGcJSirUb5xIHjxje+L7dHBp5mHy6vW8MqtZo5uIXvk6LwPg0khhIs/ZfgGYmT9JNynCd+85fgAVDT3wr3P8XiQCc6d/P1JzTGzHV37V0M7t8Ny0xzd219PndYwrh8HR+vc0+tHLhB1z8Dpl2cEt8ehUDiNyfWGGV655efoF0K0oIHpljaMELJDwH5y/V62wMl0Pxj5w/IvvbK7cosXbpFFQQPTLW0YIWSHgOMV6mM8OMZvM6PVZB76WgX1TZtfs12QuILKCTEDjUu3tGGEkJWC3hqKcwlo8cxr64aeG0Z52B5GgUVKHr1dkDiu4ZMlQePSLW0YIWSloLeGYlcSCs2lPZbawKm3rWkRWYSgV0oSRRty7YLEPe9MNyET0LB0SxtGCFkpAbw1FFuDepC1qaya25I2iHj3rZ5zWe0llwlHoQeYLAgalm5pwwghKwXuJWpTOVuQUbse1cGJlHG6tkfurdlxStW7XZC4xrRXCMkBjUq3tGGEkJWCw3skplO4CUnnSjkKrhNX3yzyXIy2pBUvZdpIyA9+P5AlQaPSLW0YIWSl4MAMXs4IHXixHU3ncHmMb3gUL6LlxvLtgZyyeZSvZNoda+A6PlkMNCjd0oYRQtYKnvyclA1uI48qsJAzi/o5mklmxWZDWlNugI2I/ODoIwuCBqVb2jBCyFrBwbWuwhlBPGW2seQhZxZt5mkomQ+bMLuFBxq+yRpiAvQCk8VAg9ItbRghZK0Icb2uLcqEY/LHd6WHjEmURwO3R5fxfDOHjhazYw0ML0KWAo1Jt7RhhJDV0gvzWWhiOY4B5zhF6xAy8H21fWyuSm3rjLA61sBvCLIUaEy6pQ0jhKwWOUBqmLglXCckBytRQT+Fci1re5jE2K3VTmbHGhqLLiEkHzQk3dKGEULWSy9PadfLyf2ucrm2k1O7eBVBP4O2T2o1sSMxgnQU3dDwiNWxBoYXIQuBhqRb2jBCyHrR3XQZgsLPgXalB+38yZWsDWJyosFAOelHmQivCSELgYakW9owQsiKwUdTM3lHs19QF+Ge2XBiQmcwdCyEk83pWLqCyVKgEemWNowQsmIOvc3ch4ORBG0RVeElyCKYnGiIn4XJpLOwhFsyyVKgEemWNowQsmaONtvB8Y6moJ09uYy1PSxONNjIJqtjDc7EGkIy4YAkhJRgsgrV4vKDrgQpqjBZK73B2HE2puC4hVnwVANZhJl/HoSQvVJ/pu8qxUYNujLaZzWX2GGh/81OsvQGxnzw0lSyDGg8uqUNI4SsnLZyGUp2oQVVGe2T2kos6eoGzheNlTFGxxpMducRkgkaj25pwwgha6duT1yQPRdBU0b7nIYSUyz2oBmeZFGNtCQ81UCWAI1Ht7RhhJDVc6iY/nyibEXR4losWS0GkXUtA7I19ebccHYWEaKFw5EQUs6p0KUSv1X1kWBQBlkl72Vj5hFvaY/Ntak81UAWAA1Ht7RhhJAt0HQF013fpgsOqTLohNsox4IRM374pgYZxRfhqQbyfNBodEsbRgjZBseQOddpFFxKwwVVGWSNGLi9jPW7TXwRnmogzweNRre0YYSQrZDli9MpOFHDhVMzZ3PIvNR7vcxvyO2rTfrgqQayBGg0uqUNI4Rsh8NJt8fp2jltkW/edyGMJtc+dCd1CWSVvNXopJnmJ4NTFh/SpSOEzIQDcGWfEJJD014SDpb3sysr+uet1FiaS5biUq2VLvZGhWqjPniqgRBCyIY5tufoZHgNZ7rPyBcG19039laZBPq1DHhCCCGEPJ+Dc/7Oif4z8kj9dfeG4X3v1HsHPxhymhBCCCH7pTo43DzeLpNAv+9zWEYIIYQQsjz1weH8PIZ19RJullVeQgghhJAVUB0cbq5NZyaBfmdZ5iWEEEIIWZxqpdTOZZlFoF+GiCOEEELILqkODjefSjJxxPECOEIIIYTskerjn+18ttWfmGWIOEIIIYTskurgcLOe/OwNRBxDxBFCCCFkf1TfaeVWbd0HQ8QRQgghZI+ESoVkftn9kL5ewzFEHCGEEEJ2R3UgXTevfdUnLj4YIo4QQggh+6P21MDMbrh6P+HHbCGICSGEEEIWo6/UR25uA129hmOIOEIIIYTsjNp7ti7zmxjqRdxxfisJIYQQQp5I7T1bzfwmGjjieN8WIYQQQvZFXyeOnhI/N1RruOszzCSEEEIIeRa1S6nNM4w0cMTxvi1CCCGE7ImuTho96RqrUK3heN8WIYQQQvZE5Z3yzXOsrPUWcjGVEEIIIbuiMoDu07xbXbWI42IqIYQQQvZDpTZqnmVn9WUSz4iBQgip4eic/6V1jhGBCCFEom4p9YmbzLpqEXd4nrGEkCyO7Tn00x/tNXTeNUsbRwghq6RyKbV5nqX1jrj2ecYSQtQcTxf5W/J68W5pIwkhZHV0VaroqWc9L1WmfnAx9YW4L8hV8eZezXeLesLNV6XretXP93ppX+1plAN/AEsbRggxpW4ptXmmqfUx4jgFvAq+eqz8cg3+lTZloW7wM9XX+D7naXRuJjv2BvwBLG0YIcSSuqXUJ4dcC1XGfnAx9XWw03A3rq8jHVAX+Flqa7rsZ9HTGaeBGo6QlyD/HfpI81xjqx1xXEx9FWw13MfrSAfUfj9DXQUK7sbVv8ajqIIajpCXoGop9ek3H4Qaa2/w5f8imGu4V5EOqPXevKbDufhR9K25NXuDGo6QV6BuKdU929xqR1z7bIvJMsyg4T6lwwtEiUZt99YVvVV9PobG2p6dQQ1HyCvQVb1Hn29vqLH3g4upL8MsGu5z/OzeFYda7m2rOdQeMr+ebA3aG9RwhLwCVd/C7vn2Vjvidj8Hky9m0nAf17274lDDvWktx77+UexfT9dADUfIC1C1lLqAG+7fv/caiz+4mPoqzKXh5guysRKe0uy2LqLRD++vFPMlF2o4Ql6AruYV6pawuK2x+IOLqa/CfBru+Sd5ngpqtTeso/ZH/MuVIg5CDUfIC1DzOfy+jMl9hck3uADzEsyo4fYt4lCjvV0VVhKOIk6AGo6Q/VO1lNouY3PtBLCQ2eS5zKnhdi3iUJu9WQ12Eo4iDkMNR8j+6Srenv1SRvcVRn/se/4lf8yq4fa8J272JltKuE8RR796HGo4QvZPzVJqu5TRpwqjP7kuZTd5JvNquI/9nk5FLfZG5R9NjjPceaeIi0INR8juOVa8Ohdzw/07VE4C+51+yZ2ZNdy1WbqBc4Fa7G2KP/TWj+JsY9jeoIYjZPeU33Wz6GpS5fTMxdRXYGYNt0xgnWeAGuxtiq8N7RuBH2UxqOEI2T19+XtzyW0oh3KzbyznQSTPY24Nt9uzMai93qT0urv94nBLXAxqOEL2Ts1Sql/S8K7C8E94lO0FmF3D7VU5oPZ6i8LtV1JvcDU1AjUcIXunZpprljS8qTD8g6/8l2B2DbfXs6mzNlfzVK7h4m9cQtA+isbCtp1BDUfI3qm4tmrhPWV1m2oWCk5Mnsn8Gm6njjjUXG9QdvI4Un92g149uNNFcYSJW1ynUMMRsnNqvFnNsqa7CtOXt548gfk13E53xKHWeoOyEw8luGiut/QnW2Ng3M5wHrC0YYQQGyrirC1+KC+U2/7JaWnzyewIciGg2e2XLqjC1+zTn4ta6w3KFru1dzBf0yUeBbdHEEJejYoFSbe07XWx3heXoGR2BA3nFdmbVvHz2OXhmJpeSyAeSu3EpWnXi0+CgbsJIS9GRYSOFUTnkF/pKfa5k4k8UKnhPjn4lDdul96fyl6T6IS+TG1pO8iamjHiCCGvRYUrq13a9toLt9qlzSdzU6/hkrphn4up1b2GETSx4lRCJz0KnmoghLwW4itRZA0LF3UXbvGNv3ssNFzyU2GP/lyDXgMIJ5FUl55K5+hXsDRACCFPpFwE+aVNv1FzT9gqVCiZFRsNlxBxe1zBs+i1OEJfOk3+RnplNdXmEULIdqi49GYV3oe6OL+73I1OHjDScPLJn6ySNsJ8bcVdqTxkJAnqtto8QgjZDuV+rJUsRFbF+fVLW09mxkrDic6fy0zGL8l8P5kA+7FVltDjR7HL8yWEEAIQXocJmqVN/6Yqzu8ud6OTB6w0nPixs8cgNTa9llOy3i0uOOL2+CgIIQRQft/9al6WfXETPlayHkzmw0zDSYv2e9xXadNrOSXrr38S4iHxUAMh5IUoj82xmn3cVXF+26WtJ/NipuHE45DZZh2c+74E6c25Jju3guNnBaevGtrP/yrY92nUaxHLDLpReBYlJjXOtV999dlVc3/VHb4efDt7PbPw2VFvv8N2lr3Ev6O2tS///ov4NN4ZF07IUhTfd7+e792q8CIr2dRH5sJOw0mLqTnluFMXxj+m4N+s5vRj6y/j8r/ruHzOjPpyjHptirD5QV2G8FTzjGnefOhHJYTuNNNZp+Pp4fa2fjVfwRqa9jzpqGs4n5xVBcfPCqblt019yZ/6PETmuffg7awnZCHKL2lY0V2jNeFF9rgKRh6w03DSCW5tGc0JH8F5902eQRETJ9PgtJazUi0a9doUCw0nPIsM+eXO8BP2emmtHWWN74178lkc2k74Tg71ileqoD/XFP+GH/E3n7+HWusJWZDidcjripYCqsKLMLrIvrHTcNLhGVUBhzYkBuN7hXA4aG52/UalT4x6bYrQj+rWC+uxTllEc+4T3dTpigIjbLRf+NjFexK3xGsqn5Y6rh3+AFSN++QtPa76c6MtraSCvvDrRvmLuHaUcWSzdKpBHmFVa5A14UX80saTWbHTcMJefM182CSvXb1x9WUq7ih5SiLVdE1pa32RfQ8IGk4/l+IynM6IoOmmoDFIo+GaDvZkjypXnZlHue/LJHUa7nCC9o2a26rKm1bQqipIj9cxut/bD/1pRT4JQjIo3krWLG35IzXhRRhdZN+sRMMdOu2AvOaa9U+rSIakZkWUr8C8kbGCTepCcBlOY4K6v0K6OIWGi8sJ//U3vBOkSTcEevHueWs03CFLB7WKEsfoK+iyVFZUNEuUfjwRsijF4mc1gUW+6Uvb8cHoIjtnHRouZy786F2eXceQUfhj+8WhD3PlGRcxF1t0bWoL19Bk9VdSOyQ13BFsyfLff4U1K7YcIwH48GVaoeHazE/83IH7T+eD++GasQU76/f2az1XVMn2KD4NsLLhXh4hZXVNIbY8RcMlDmm7PnNM5vgcDuVHenppMyjK5PWmZZb88ZQLLw7CiIhyTbwhUhruDekJ//33vqIz0Ib9NmleWsPlSd0fk5u0zeUVBGXpSDQnref3PNkapZFF1hNY5Jua8CKr2tlHrHmKhhPd0iUiS1RXA459ful32vzWeq1l2SXfmP3XWDK/y5I6oeHwsTEv5v9QLBHA01wPOUs13KnonZoSvHUVXFtNwbnuwzv6nx0hq6D4QKdf2vIxXWlL1qdHiSlP0XCS8ih0CrQ6m6oCXIvVoBw+o8fiBMmg93mn0TKP/XsjFClrOEHA++8U+C3clrbm0YNXpuEOxefElCq8sAJF6bl+1kcyJCghK6B4Alidz7n8yrCVHc8gxthpOOGLRyip2Cmgury9Zr76pkVFowyZvRahky3KP4KoRn+yZMRVUJaihpM0o/8pAIr8pGAJIGObNk/WcKWrkTfeNbNDsfs4pEqviRb6wYt7yLYo/dZa4fJjxTunXdp2MiNPiQ+Hv94rdmoqfmVdeel/tKBslD6z1yIkPx2VgdmyOZS/JQQRJ2k4san+pwA4RlIByGGE9kedU6LhjjVX32hEnCuvIFF6rWNaHV+QkBVQ+kNySxs+peKn+4R91GQx7DScIMcalKcrH5YKEVfvhbsB1AlKntlrERRbOPpTU13NhAoJJ4k4QcPJWsgn+yOxsodeeoM3WoGGq5NwChFXJbTE0mvCTH0juVwJWRel432NO8gqTjXwuq09Y6fhuvwfBM6iIiHiql0O34AIiSh5Zq/F6FVmWV9aWnWvsjC3Yw13kBvqf0soXUxF6yitwjxBw9VKuLl9ZULplc/4i351O4UIAZTuHGiXNjxGV/6j5YfXjrHTcHh6QFNt5dacRISw+qn2h3g/5KXOQtsvfae821VDlRfuBgpehzVcop3+twTo4U18LaMBMOi0bA1nMa7EyOnV3x5Y2tbc2KMonpB1UfhSW9NVqXcqTjVkxI4kW8NMwwnXrIMlLwM/mRMMqtUkf8R/0Ch1Xq9FyTkPb3UnebWEg/4fqOFS6xw+3R/i5yUakcPNIbkazqCjPsQTOQYa0YOi61dSv3BSrxOyGkoji6z0M6X81cMNcTvGTMMFWA5YjLeYUITvJZvNcF+0sfJR4rxey+3LKMG76iotPDTxNx/UcCFRnP8rAr67xMPJHcjUasyDGi5ltRKovBsL97Gb1fY1bhYiZEqpm2ClS4/lXg9uiNsxVhou+5ZPk7kKRw9OfIG9n1vXfBvuTufE90105Qslzuo1QIG8DXXb42wUb1SYIA2XfCH5vyJgUnFNsgeZhro/U8NZfRrArw8TN1+8dHEt5vaLcF/JnPNdLxbfSt1OyFoo/DJd6yXxFdtZV6pKiQFGGk7anh4fPkZLnWihvxPyXM/NKHUjXyAZmxFR2pxegxS9e66XYh1XEz/y0YJYRyENF1Kl+b8iYJAQKXglatNoWSFPwxl11AdcrqneI/pNdO2kE6wZd+Tx3OPUdMSRTVCoedql7UYIv+AE3BC3X4w0nDC44q4y2Z/Rd6cvp8Ah6RMAO+klN1z0aigxvG3Mv4TS5vQapNhJ+anjXH51iQOiwb+5mzo8ujcfxJQxYQKedLqF/l4G1LTCqwmpoVZlHtBwiS+P6+e4/e6pNuXcja93yh7Y68U7dxu9zp0SrrJY6bDL45d/tLiGqO2ErIvC7TrrPNFwo/wTkhvi9ouJhhMFkIvlkAbj9TyaUo5S8fHBKQSra0EjhLW9WE/kpM2nasku+Ex/nOT8eW+Hb7RDK4kTZ9gUfy8DPhvhJl5k5ugFnaXh5LaEodZvTr2YOlK+KKbHoZ1F53HEVQZ/cygYCb7va6V7vgl5pNCpveLRXbx6xQ1x+8VCwzlpZMVn2SBUG5lRGmFx0cXK72HyFjajy2oDND/dXxqEDtJwvbT6j0lBUPcxF6RwP1pkJ4mFhsOLqbCVyBM71vw5Gk50j/ZumkG8tz6SXuirSzNNfsj69cLEWPGjnx1nBLIBChXPiveOlZ9qWHGjSB31Gs514thpYnlwIBJ0pzsevDGBhZdShUZhJ8gCGs4gGuu79jKHAIs4xyXSAedoJ4ktNBxeTJ3W9wPyxI4z5Gi4TrD2Eu2qRphGpp/7eNiiy+ZxIJLpghDqQ8HtAH8SnBHI6sFffiJrPdFwo7BJH9wQt2PqNNzBSVufcSEwU3Sv2hdYxLlpYhwVVvJOwSpie7jzGpyPSYjii1PUBHeNIOHwT1Az067Sa7hrOHvvnGu970I/6En4aOA+jwDqGA+ADA0nbrIEZghyd+pD7FDK9wY1Ew8TP06K5GSLyv6H+50zAlk9hU6rVY/trqxN3BC3Y4QZNniZ8DnPpoivpMIfl7QTIWdPVMkeeOkjJ5IYJfVSDTkIQZMzCG2yogCyijdjQv/SpD6lhrtMvIaP/w8fDVrVQxkmIyxDw3XYejxwhZjA466CGlG6mwuKuIlaRaU7XDg8B8EZgayeDv7yRFZ7ouFGcVRVbn/YLYahcCOAyacHyeXNpB2qZao1UAWJ3yecbiNpUVIv1pCDsO0sh+DkauBbQcwH13onilo1wiaxLcZAVZ55CcgkuV7DCesY0sDFm+jGQqgD6eTrVeG3zfh7BaVzUunApjWvNxHyRY9GvMiKTzTcKGvUB7c/7JdZNRw4pI08TImrwOHmnOmvDhkkHGO8AYVCJC1K6uUqcrC68TW2Hf5OALkSSwpQOozfFYoRJhsoVwdeueBRTr9G9RoON0RWNPiM9DAdcsOJ/tB/+AGOlrXhyZVWKhz1u2wSIYtTGIjDLW23TPGEveolYlLBnBoO7eIJIH3qSwHNJxOpCH+9vrAzImkLq8hC2hGfw1X4/SLlkJC7+CmORVVyhAnb7h5AehbEm1Ual/PMe9iARjYdZnQqS1IvX7gEOywe+lvFdVGUK9FkQpZGiC8lsPb41aVXwHL7w26ZUcMhtxoaheLll1/0IGc7Sle2PLg+DWcWtv8jNLk1JF3vqJPHrq7UCEMnkUd0KH80O3L1TuWi+pnjnSg+YbpytbOPJ0ovW3ag+KFgxfaLDwDkcUmrCFmUsou2/NJmpwhFzVq/OCWlzKfhoCRDqiG9lxRNhuNPDHgcoCnsjEhalNQnW5GF61FFeVwdqAD4txS7QgKoaqSTEiMssYD+B3ym0XHWgV6YplQ/c1Ck4uUI9w4OOhk10CW7Bi7CDlJhDad9BIRsCDjeRZqlzU5RHCKuWdpyMg9zabhYxNMf+ngOzV5SNBmOJqHGARLFQ69XJC1K6hXNyEK+ylVPGy0dKQeFcwy9TEYPUh5h+nttUDdE/VR6ZarWcPAxtEnTO5AzKBJpPp+Rx2GgpoUTbTh0CSEbpewEZ3ILyeIURw5tl7aczMM8Gu7qcY1os5pmV5TyDsxS1nUu9Zemy+h5gTZWOChb5XgHL5ORs0seYfrTUsDS6PdlxhjTaji4x1JxaB9+Oj8mAr2p2YqMhPhAskrhQaUNk4RskbJtKO3SZqfpihqm2atENskcGu4auy7rD7DVVBW/Bk2kNufB8ZdbJDFK6k1MGWKk4tpI0X08qer3jqwa6jJxhHl9J8DF1Ij+AO/v2BjTajiYTtEEuA/5IQ0afCqRC/TfUIkjI76Ttpp6CNkKRefBthBFrTRwKOMB7ZQZNNxJXh4L8Vy6YzN9PLPJfk0hGmskNUrqLUyZ2uZBy7NoJ+XWOEXhy8QPUkkjLOu5ZSym9vGUMamv1XABpWsqTH/4pQA7dJMKWkwd2JaY1K5nRpAiu6HsVqqVB4f7pi9q2sqDF5NiZtBw105UACCXV5nbgdxNfU8IEm55Dffvdi9t/ca4yYNB5+9VP3f0mhzuKZFGWJvTAR0qZWIs8nvFxqVWw6Fkqq/bI9if+WB5iBev+7RBi7XtY6IONeGPvmv5nie7oMxbtYnPmNJgBW5pw8kszLMfTliZQWtGTmWuarIqQrwVIZIeJfXVlgg2lh2XvzOJZAYKVPrHgOod+o6EEZbnPoVv5XacMme5Xqnh4Dq7z2oDpqp4JFpVB1+HvHftJiYyQiSKhM424m+UhojzSxtOZmGuc6kw6hfy/DQqc9HaX+V+zebUi62JZEFJfZ0lKd7qvHFjrxFotvJ0liq2nDDC2ry2A2OnviqgLaMLJUoNBwOGurw2IJBGVC1qw8XawePOONAW/BsdcmTL9OrB/oBf2modhaHf13/mlpQwX3y4Nl5hB5J7HSB3xfA8vPnkbyKSDSX15ZYoOfqQ7n3ESOyCVO+6h4HsGAgPYYRl6gRt6Be0xhvVQ0oN1ynrLgVpxE73JHqNdbANUfruRIcc2ShlvqpmabN1lN1AsYkDGySfGe9piO8PDbPUVTQ8nfuUISrnRCQzSupLLMnm7Vx6DZcb9EBhIQkGfYBHWO7tLzC8x0icgQX3+BhRargAUlkd9rK6kGPEQIU1+S7c4J1RAwl5IkWRcLfiqCpdTOU32S6Z877UqIibqa4Ml07jTv4S+pzSM9rhy55DPk3bZbXhh4HoKI75LTMQZ3iEtblN7kFBo4EGNvnFvymUGk511UIFAfZSFU7XVpHLqTFqJCFPoisZ6e3SVmsp3BfdLm03mYM5NVw0PulMVTlNY49v/lLkv8poh695GrkcT5ds30r7kH+mpz/4nsV1NLnNRc6qkYcNpHLRMpUaDqXyuW0AlLpVE3ibWt4Zd4Rsir5kmG9mD2jhtzej/O6SWTVcZNqcafUuqeEObzW7yCIFoqS+/pnkcTzl+eMez17NtII30FRwhOWvf8PF1IHCAOcvwZkznYbTLuMWg8qvxA9rKb6n57P7EmEfCVkP8PcqsYngcF+UBb9jlN99Mq+Gm96GOZeG81Ijy3eP/RAps8iQuWhy/HHuni/UdQvk0TY4wgp2n/SgqMEHZqdIozBvkAoOWxcvNRtUfiXjPj7WnGruGqPGEjIvRbv+rb7HnkBX9gte2mwyB1L0riCgFEWTT5vna7i32qBqH+vXcDfUUUcenkmo75ooj9K95pKqMchvOPCxgW4Aq4GVGq7Jb0SMwg/rJBOdXCXiqOLINih552/p2GbhfVtuabvJDAgazieyHjXuLaevrwpgrM0dVZvQcP9uMk7TmId3VbDonAjuwSj4xAvuWYdLJE0yDQrfqdNw2tscSpnr02bq6zxWuaSv3qjBhMxIyZfKdpZS/5U1sOiVS1ZPhYa70ZwTg2k8icyl4eJxKk7111N9ESkaJdX02nwcEsGKv7h7pIJN90xwDybBJ+7GxivoQVkPLyfgq0P7efet4SLK9VC3CfK9MWoyIXNRtB1uU8d2uqIfb240J7IFKjVcekpo1PVVEdtcVedyeCRSOEqq67UZaftUa+4mBqsOGuEe7DHVcGify8Nu3T6eAr2h963hova5OlfchrYNkdekZDvcNu7Z+qVsMXVbbSQ6qjXc55QgOrtGHuonarjCaNYxIq1GSbW9Nh+HVB/fv8Z6uy4a4B7MMZU/MLrl3w68zKXUV9RwGp0v0Ro1mpB5KNkOt7HAG2UrTDxbvkMMNJy8T3q0U/R5Gq7LLwT6JyKNRknVvTYjx15u5l/CkN9HKtyDMbbyBz2i9jcBUO7wDf2SGu5TxYWKQlujVhMyCyUCZ1NLqaWLqW5ps4k9FhpOduwOl16epuG6/CKanJkaJdX32owcgtjSv3RysnLcgy228gc5V/98i0DkwTf0i2q421bWvrjUjc135LUo2Q63tdhpZW8Mv7TZxB4TDSfGih0uphoucA4Ya7guM//77UKhxTXcwSFyZ01xNaH5TRUye0mLe7DEVv6kFlPB3/FGkJfVcP9u4aELd8b1XJMh66Vkktnckc2+5IfLQw07xEbDHYQBNZw+nxREIecykj74t4PcGZEmo6QZvTYF905uQNyDNDu731RB1UH5uAdLjOUPatePuxc8eLzZpVLDNWWtmIDKryS5ifnwVnTr7qbiMJAXo2Q7XLO00bkUHS/noYYdYqPhRM3UPCZ8ToxfnTO9D2f/5jSdEWmxzpBMcO9ku/qljna/iYKqn/JxD4YYazj0jf2jKsDrG7sxdebB8e3ipWaDyq9EJf2bNv8eE6t2E2JOwXa4rS2lFsZP4aGGHWKk4aSfzWBDHBx5cBVRRzOwJqSG8vu5jUzrK9Zw+YpH6AP3mwY1uKt8Gqp7Gsq6CC2mfp+dAfcdCJ+flfc0zH1f6qnuQeiX4J3PuK6t6KI0Qp5CibrZ3FJq4WKqW9pqYo6VhhM8u8NyUCrDNiVWUq/dG/ga2ZWGEzrB/aZBDbacoa23kgWpUeB0jRA3oFLD+cJWZLXqWRxP2vvaeKyBrJaS7XDN0kbnU7SY6pe2mphjpeHgXvOxIECThDNsVC8M4r7F+das4VxuWcIVnH9loQPFa9ZwSJt+6bQu/jdBcOjMg51ptUk4gPKf7h84nnS7iTYWTou8DgXb4ba3lFq4mMqNrPvDSsMJumm4kBVAKmfXJsEDdRXnxMU1nKCE2+zCcFnuNwnSjJZbX601HJJTXzbHvxCk5ijNQ6msXv7IDG9Ufhaacw7cHU1WSsF2uA0upZYtpm5RrBIZMw0neHYH6br5f0X4O6yXV4AW13CC7sr/gAqwLJesr6oRQ8zDcqDHe4SaVBpbSvMCSqbbJBzi+L8E6Ltjqe/mY3JVtVnIMkJESvxTm9zqX7SYurTRxBwzDSfE+R0IJ7RZwW5tBi8iXhs55/IaDk+c13TmEQGW5f7SoPOIhrudzDUckjsn+FZr6s3rUDKnMRn5V/1fCjTxLHh2IHGVg1vOMkIwBdvhthk2rSjGg1vaamKNmYbTbL+6gQae3WSF1aRL5OxQxkham14bE3AvZp+A7GFRzV8a1GLDe83NNRwaae+oyeL6gdI8ODGovj3QkGzvSax7yQIX789v/JKWEYIo2A7XLm1zGSVXirVLG02sMdNwgmRoB+lQqvmblFyXChm2GfXaCME9ni1ycVH3NPN7RWe44gC9pBvgzLLYAwkXaFT7wtBjfXB3BpDEZXePIYcONZsajqyUAmWzyaXUsjtTeRZpd9hpuKAsCKVzVk2ChjTFOSNpjXpthBQVxeUVhbeF9OlEhltf7TUc6qQWKNLGwjw4M2iWndGStcIOn9k5xnSo2UsbRkiUgu1w21xKTdxTDmBgx91hp+GwC2lY0OyuHzRhpnUJbEFGWl9lu3AwNVdX4efx+MrqQZqmqhmP2Gs4tJh6iT95ud+05sEVGsW4RU/18X2K9hgYqenGx0nlw7foMUoBWSM51yz+0C5tcykli6lL20yssdNwuKRhQeg7SRmsoInGo39MgcxITrZ4S18ksVGvjemhDXbBXh7L6UAa5THh6MNoBklmuC4+b8eL3BSteXBquKYXYlAdgxGJ3seNqksOifsykERMFgzbzUUZskY6NGAxzdI2l1LQ1u02lgDsNJz6vvYeJNPto4/6Wgb6r7g92DUdSVxci0wHbfjIW00VTmc9FoParFPUcT0+FE0zaLi8NYRGLEtrHhb4bdLeHuQcjPgOJNJppbjX9d509OUkd47Ubq+yi5Dngn5smO3GTCtZTHVLG02MWUDDoUU+1Up9vJbBPFc8eDvYgkhilNRrWoERf5VXfciPo+BmHyRE6VpNLfEeawZpZtBwWWsIiTe02jzo/OtTjjjoyhqkQk9e4ef7VFrRHnlsOijdJYvuQU6vMIuQJyPtRgFsMsDvF0IwCIhf2mhijJ2Gw7vJRuIM/sqcopIQzfmobeC4ThaPlUFGa72iEWVGfGSIOLyNabyDtwOpNI64uKAePe45NBwyOkbiDa02D++z8XIN8FmMtlKjJ58o/ov4d1H7kKK48FBhFiFPpmA7XLO0zeUUxFHZ6gEOglhAw8FZIenQQOYOXC3wXFLqc0v49We01ifbICMH377qFpwbdK7jRjtICrsr3RAgToblz6LhctYQGrkovXlYXRfe/tEO08EnnxbuwAf++HsK8SRpqV7lqCXkueRfXrDdpdQixbrl5pIYhhoO6oaxhoMDL3nUDeRsB4lK29PjroikLq0lRWot4KxYWnOiM29UQEDpUtLhEH/g47W/OTRcxmJq6pWlNw//VN6lZ4L3GIxywScvFn8DLJwPfk4dKNwlyi53axPyfKSv1zjbXUotW0xd2mZijKGGC6igyTVRPUqZ2L8NJNxINaDCE/vtpCtaIslRUp/opSSdYMdXa9tEAVJg1o+pUMYHLmURByTc5BnOouFSnXQn9YbWmyeoa2FoNVBuTr5YYKMSIxftfXSPidDwTmlcODw2GheV7JoCUdMsbXMN+ZLV8h5FsgYMNRxemx+nxB5g0ROH3OQj1QALF2cdPNdGGiDU4tMdJZPelNufhJY0PuGjmvyEe5RSFHFH9PZoRgln0XD6xdSxOWMyzOtwLR16IkjpfkQcWcKpIGnotuCBD5Vf6RaDALIpQwER8kzyT2pue22x4HJYw3sUyRow1HC4qEnSHibFsxXe49UoC5caJMy1sQbMqOFUPqZLG+2nQ5vc5Dr16Qh7KvD8joTDVIXPouHUi6nJN3SGeZLMB+udxz7HsoATQzmNva7tMCG0xEndA+cIhvglK0SYzwB+aZOrKDiG65e2mdiyjIYTZMM1rhsO2L00nk0CLBv7lWQJ91wNJ3oE77x3p8dous75TuNYd9MKhWwhkvxmYoA5mnHaeTRcp2jqjeRmlxzzpAkietrkJDzKdppceiGDfZBtjzKMHWVws7fkbsWuwYj5hCxNEH5CcTa+tAh//xAeTN0ZhhoOC7Ppz0RSG71vxsnFBcJxanwyCW4OhwuDP0SyoKS5vRYhyz/+Hj7RJ4/9gPFE/UmYahMnOPum7pl5NJxo8wPJXVs55kkRWyJ6F+urD7AWKR2qu3aTn9FBqmH83IR7JKHQhd5Wbocjq0T4AcXZ+p6A1zqHSyIYajg8rbqMtN/D7PzW/CY9OC8qrImZgpOvj390Se6SLyJ51OYUEBLmlHNtYvV1cp7L6X5pU9N2vZR4Wv48Gk75/Zn+5swyL7Hb5t2735THtpMHlYuVHw/V+0d/bu8D2J3EdfPpmrnkbm2i1gjzA5dSyQrRftrd2fqVcfkt5sHUnbGQhtN8PlyDxsU0DSonbhHomokporvkm0hrUdLcXouhXE0tACxUK+r78vf1qVSR1s+k4XTfn22ynDzz0jE1r6p+QuJSsyX762eRfGLTrxUxllTnxsnlwzGT5IQsT/4Wf7e0ybXkzxUbXz0mI56i4SLKIbEBTU9kG5Jc9OXk7kmT7pJvIq1FSXN7LUrJPXgaUJAKq/piUZpn0nDC0uAD5ffRx83TqF0NcX/ov7JbrGPE3Avy76Lv7k6+lO9bdy8eIU8m+96CSdyrzdHlNpkHU3eGoYbDexFiJUkXemYQ82coPsaCzpnxS6NvbHavRck/XqUBX72Zv6siistpSmUX9Qp7FNt3M80rWLqI0SJzjL5toleeKGzvVb5vfsqTdZI9qWx/T0D+VQ1+aZOJKU/RcNEfSsE1IVOic1XBeesETt/Y7F6L05m3QT6AGCwqiLZ9Lg2nkZ1tuphc80yGrTBz2HzbxJ+0kVLf/iYisk/y3/zb90nlRzXevm4ljzxFw8VXXix8TfG5qjMoeYDTNza71wDmbZAVjYX/J/MxV3aQZjFVcXgy27yupGuGiJdnWaxrg4OmVhsYFBcbE/J88j+wdjCSQ26buRFiX1hqODhDgE0HXe7gm9DGCzZ3xEW+1lDS7F5DdNaNAJ31Q73/B8zsc2k4xWKqJhJSvnldUe88ADfDfVPv6YMf2kYbGLiSSlZJtqN5D7HS8s9xLG0xMcVSwwVYFPja6bJHn9JC6+1kkYqybcqms21Dm6iudn5HK7Wzabj0CzvV5ELzurIO+iVxD229iBMmJpPtfJpuJeT5ZPuZ26UtNkB3uuuRHTgfyR1LDYcnVQdydNnD7xG8rm926vWHSFdkJC2l4C48SFI41Io4WMFsGi797tK8q0rM68q66BvFk6gTceJKrcF2Pq/oVUIWIHssN0tbbEGf22q3tMXEEksNhzUHLKrGYSZtrC7TI1d0ND2ygwCVkd1rAs4sTtx7o6iuRvliZTKbhkt+dasWSorMqxi2IMz0kLeKB3+RlWu1iOOOaLJSsr3M+7iyIHsFuV3aYmKJpYbDPyG8i1K4zadqIJZMVf0RtSByIQsqJLvXJA6hoBkRlOcI8f3pKQSNOJ+GS/kpW00hZeYVi6ygW8c49oXlpyVW5YeBqlMJWYDsTyu/tMUmZJ+C8ktbTCyx1HDCKWecKXVVKSDpzsgXce8HvDw3LR+lzO61RDMMXHG9U1eXvHUsTicok/k0XOroikouFZrXlA1bdVCOQ3a00i+ubbroQtO/y99+LAayW7J/Mzs5nJPbbB5M3RWWGk5Y3JJe/SULU4kFoxu5Iu5rekV/dJPiUcr8XpORLq1UcfU5W1ibUFCDOLHPp+FSF3Koyig2T7yKKk6GmC5z9QXdpFS8FBy/V5WQVZD7i9n+JQ3f5GrXfSwhkx9MNRyWG+J8mq0bdHNh1nrUT5FIFUz7AhU0TVlL0+X0zZjIBbEyiutjRzXIGnFGDScvpraqMsrNa3JfnVliukC9X0FYuIjpIbPozPIJeT7ZIaX2srUz+/Db0gYTS0w1nLAw34gZXcgYgH2rNEe/HnX9bSuaNqdfLqgoP0lZT7GKu2YruE8OWR6mpOtnRg0nv7R1iqnGvKxhW/Aosp57nr81y/SC8gl5NtnbZ/ayMSA7ukiztMXEEFMNJ2yIS33yOK3eUiu4r1JVW38eZieoQidKBSX0GebpOfhe2T+PXXUqnHUPJ21tnUsWNqOGExdTleE768xznbajmqIGNp1ST+crLPUv7oueCo6snOxdJ7sZ0n1mw93SBhNDTDWctDDvUnkbhUy5KjTDkLeQKvPSPiSHKnSiCFBCn2mgmuM53T8P9OeqDbtvnaIK3yhKmlPDSYsIyo/sWvM0w/a9VEx/cmgV3yGDMaymOWlPN1z24rEgOyZ3F8h+tvZ3eQ2/NEsbTAxpHKQxLU2jKI5naVLpu7eSqbARtE/ftaMij8j+cbGGvabmeAq6H+m7rz9xdWhFH5C6Cjgmqi38tBGPN23xBubJwzacmvyGDU0UH/v1Mh7DOUW3XZ8aS2cKOLIN8r5z97O9Mye6yHv1+4gQicObD9Pf4TWc26a80M+ZajLLVha5GO40bcsj/cU7s8qO7TnEq9jNMoQNt2E7Vbzvds/C+UvksYfuVC/Wm8+yI0/58zmH88nVm07I83jT7j7Y064wYRPT6CddtzpDiJaje/O/nEw8NrepqrUucjGOzvsQBpN6CMH7NzdDZQfnTn9P403lUH1R3H2I+Tk8so1zjz8LWx3tHn5zt9Ib09IJeRZKGRcJ3L5ZdPu+O767CSGEELJqNDJOHW97A6QjPl47bokghBBCyAZIyrg9aZrETbEUcIQQQgjZELKMW9o6U4SGcg8cIYQQQjbHGzypup/IIjdQVC+LCAWEEEIIIQtw9NEd//uJLHIjGinzwjAihBBCCNkyTTv1U+3LPzW5drDnFjhCCCGE7IHRquqeIovcGDQuGISNJIQQQghZCc3p7o5LXeC9Nbq/HXC8V4UQQggh+8P9XIzXLm2IMe33Auom7x4ihBBCCFFwePvUcXu7LLChfiOEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEII2SH/AePch+wKZW5kc3RyZWFtCmVuZG9iagoxMSAwIG9iago8PAogIC9OYW1lIC9JbTIKICAvVHlwZSAvWE9iamVjdAogIC9MZW5ndGggMTUgMCBSCiAgL0ZpbHRlciAvRmxhdGVEZWNvZGUKICAvU3VidHlwZSAvSW1hZ2UKICAvV2lkdGggMjUwMAogIC9IZWlnaHQgODg1CiAgL0JpdHNQZXJDb21wb25lbnQgOAogIC9Db2xvclNwYWNlIFsvSUNDQmFzZWQgNSAwIFJdCiAgL1NNYXNrIDEwIDAgUgo+PgpzdHJlYW0KeJzs3U2rZveZ5envk6Me10A4QVm2MyTZenUGslWWwRgNbNwCJ4K2wWBDYzAamKQnSc5SUw1F9qhA4/pObqkiWqEInTjnef/d/72vi/UB7L3ufThbC+L8/e8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADDdv/7P//Xt1P9z2It/+x8/eSH1/yIAAAAAAAB4cT+1pXJ7391S7aoAAAAAAABU7plQbanc2P1bqlEVAAAAAACAaztkP7WlcnsHbql2VQAAAAAAAC7r2AnVnMotnTCkGlUBAAAAAAA42Tn7qS2VWzpzSzWqAgAAAAAAcIhLTai2VG7mUluqXRUAAAAAAIDvuviEakvlZq6xpRpVAeB8//DuLyekfgwAAMDG5V89PnwArud6E6o5ldu46pBqVAWAB+X/xcB/bQAAAG4g/37x1QNwS7eZUG2p3MDNtlSjKgD8fdn/euA/NQAAAEfJP0x88gAkbjyh2lK5gdtvqUZVAPYj/8afkLoEAADg6vLvDp88AK1qQrWlcm3hkGpRBWCT8q/4+akrAgAALiD/spiZuhaAW8snVHMq15YPqUZVADYg/1pfN3V1AADAofLPh+VSNwZwXflyakvlNvL91KgKwKLyr/Ltpa4UAAB4Uf6ZsJnUTQJcXr6c2lK5jXw2taUCsJb8A3wnqXsGAID9yj8Htp26XoCLyZdTcyo3kG+mhlQAlpB/a+85dfncIb8KETk/9Q+SQ+UPSpZLfbOwtvwV3lvqwgHOlc+mtlRuIJ9NbakATJZ/Wcu3U58Dz+THICLnp/5Bcqj8Qcn2Uh81TJS/mFKfAMCJ8tnUlsoN5LOpLRWAgfLvaLk/9YHgHRHZQuofJIfKH5TsJ/Wxw63lL53cmfouAI6Tz6a2VK4t30xtqQBMk384y1Gp72W/8upF5PzUP0gOlT8o2XPq84dryV8ueTD1jQAcKp9NzalcW76Z2lIBGCL/UpYzU1/Q7uSNi8j5qX+QHCp/UCLfpH4b4Fz5SyQnpL4agIfls6ktlavKN1NDKgCt/LtYLpv6oHYk71pEzk/9g+RQ+YMSeVnqlwMOlb8scn7qIwK4Tz6b2lK5qnw2taUCUMm/heV6qY9rF/KWReT81D9IDpU/KJFDUr8ocLf81ZDLpj4ogLvls6k5levJN1NbKgCJ/PtXbpb61rYsL1dEzk/9g+RQ+YMSOTb1SwN+cm489X0BvCjfTG2pXE++mdpSAbix/JtXktR3t015rSJyfuofJIfKH5TIyanfHvYoP3u5WepbA3gm30xtqVxPvpkaUgG4jfwjVyakPsOtyQsVkfNT/yA5VP6gRM5P/RqxC/mdS5L67gC+lm+mtlSuJN9MbakA3ED+YSvTUp/kduRVisj5qX+QHCp/UCIXTP0+sUH5VcuE1GcI7F2+mZpTuZJ8M7WlAnBV+cesTE59nluQlygi56f+QXKo/EGJXCP1i8UW5Gcso1LfI7B3+WZqS+Ua8s3UlgrA9eSfsbJE6jtdW16fiJyf+gfJofIHJXLV1G8YS8rvVsamvk1gv/LN1JbKxeWDqS0VgCvJP11ludQ3u6q8OBE5P/UPkkPlD0rkBqnfM5aR36oskfpOgT3KN1NzKheXD6aGVAAuLv9claVT3+968spE5PzUP0gOlT8okVumfuGYKz9OWSv1wQK7kw+mtlQuLt9MbakAXFD+lSrbSH3Ii8n7EpHzU/8gOVT+oERun/q1Y5z8JmXR1JcL7Eg+mNpSubh8M7WlAnAR+ZepbC/1US8jb0pEzk/9g+RQ+YMSqVK/fIyQ36GsnvqEgb3IB1NzKpeVD6a2VAAuIv8mlQ2nvu4F5B2JyPmpf5AcKn9QIm3qV5BMfnuypdTnDOxCPpjaUrmgfDA1pAJwpvw7VPaQ+synywsSkfNT/yA5VP6gRCakfhG5qfzeZJOp7xrYvnwwtaVyQflmaksF4Bz5F6jsKvW9z5VXIyLnp/5Bcqj8QYnMSf06cgv5mcmGU183sHH5YGpL5VLywdSWCsDJ8g9P2Wfqwx8q70VEzk/9g+RQ+YMSGZX6jeSK8uuSnaS+dGCz8sHUnMql5IOpLRWA0+Tfm7Lz1G/AOHkjInJ+6h8kh8oflMjA1O8ll5cflewq9b0D25SvpbZULiUfTA2pABwr/8wUeZL6VZglr0NEzk/9g+RQ+YMSGZv67eQy8kOSfaY+fGCD8rXUlspF5IOpLRWAY+UfmCIvpH4npsiLEJHzU/8gOVT+oEQmp35BOVd+QrLn1OcPbFA+mJpTOV8+mNpSAThc/l0p8rLUL8cIeQsicn7qHySHyh+UyPzUrymnyM9G5B/89AAuLV9LbamcLx9MbakAHCj/ohS5P/Ur0ssrEJHzU/8gOVT+oESWSP2mcpz8YES+nfqFALYjX0ttqZwpX0sNqQAcKP+QFDkw9btSyh++iJyf+gfJofIHJbJQ6veVg+R3IvLd1K8FsBH5WmpO5Uz5YGpLBeBB+fejyLGpX5pM/uRF5PzUP0gOlT8okbVSv7LcJz8PkXtSvx/AFuRTqS2VM+WDqS0VgPvlX44ip6V+dRr5YxeR81P/IDlU/qBElkv91nK3/DBEHkz9lgDLy6dSWyrnyNdSWyoA98u/GUXOTP0O3Vr+wEXk/NQ/SA6VPyiRFVO/uLwoPwmRA1O/K8Dy8rXUnMrJ8rXUkArAPfKvRZGLpH6Tbip/2iJyfuofJIfKH5TIuqlfX57KL0HkqNRvDLC2fCq1pXKyfDC1pQLwMvl3osgFU79Pt5M/ahE5P/UPkkPlD0pk6dRv8N7lByByWupXB1hYPpXaUjlNvpbaUgG4U/55KHKN1C/WjeTPWUTOT/2D5FD5gxJZPfVLvF959SLnpH6BgFXlU6k5ldPka6ktFYDvyj8MRa6X+vW6hfwhi8j5qX+QHCp/UCIbSP0e71FeusiZqd8hYFX5TmpL5TT5WmpLBeAF+VehyLVTv2RXlz9hETk/9Q+SQ+UPSmQbqV/lfcnrFrlI6jcJWFU+ldpSOVY+lRpSAXhB/j0ocpvUr9p15Y9XRM5P/YPkUPmDEtlM6rd5L/KiRS6Y+n0ClpRPpeZUjpWvpbZUAL4t/xIUuXHqd+5a8gcrIuen/kFyqPxBiWwp9Qu9fXnFIhdP/VYB68l3Ulsqx8rXUlsqAN/IvwFFktRv3lXkT1VEzk/9g+RQ+YMS2Vjqd3rL8nJFrpT63QIWk++ktlSOkk+ltlQAvpF//YmEqd+/y8sfqYicn/oHyaHyByWyvdSv9TbltYpcNfUbBqwk30nNqRwln0oNqQA8kX/3ieSp38ILy5+niJyf+gfJofIHJbLJ1G/21uSFilw79UsGLCbfSW2pHC5fS22pAPzdf1gQ+f9Tv4uXlD9METk/9Q+SQ+UPSmSrqV/u7cirFLlN6lcNWEm+k9pSOVA+ldpSAfi7/7Ag8nzqN/Ji8icpIuen/kFyqPxBiWw19cu9EXmPIrdM/cIBy8h3UnMqB8qnUlsqAPmHnsjA1O/lZeSPUUTOT/2D5FD5gxLZcOr3e3l5gyK3T/3aAWvIR1JbKgfKp1JDKsDO5Z94ImNTv50XkD9DETk/9Q+SQ+UPSmTbqV/xheXdiSSp3zxgDflIakvlEPlUaksF2Ln8+05kcuoX9ALyZygi56f+QXKo/EGJbD71W76kvDWRMPX7B6wh30nNqTwon0ptqQB7ln/ZicxP/ZqeK3+AInJ+6h8kh8oflMgeUr/o68krE2lTv4LAAvKR1JbKg/Kp1JAKsFv5N53IKqlf1rPkT09Ezk/9g+RQ+YMS2UPqF30xeV8ieeq3EFhAPpLaUrlfPpXaUgF2K/+gE1kr9St7uvzRicj5qX+QHCp/UCI7Sf2uLyNvSmRI6ncRmC4fSc2p3C+fSm2pAPuUf8qJrJj6xT1R/txE5PzUP0gOlT8okf2kft0XkHckMir1GwlMl4+ktlReJt9JbakAu5V/x4ksmvrdPUX+0ETk/NQ/SA6VPyiR/aR+3afLCxKZlvqlBKbLR1JbKi+T76SGVIB9yj/iRJZO/QYfLX9iInJ+6h8kh8oflMiuUr/xo+XtiAxM/V4Co+UjqTmVl8mnUlsqwA7ln28iG0j9Hh8nf1wicn7qHySHyh+UyK5Sv/Fz5dWIzEz9agKj5QupLZU75TupLRVgh/JvN5FtpH6Vj5M/LhE5P/UPkkPlD0pkb6lf+onyUkQmp35BgbnyhdSWyp3yndSWCrA3+VebyJZSv9BHyJ+ViJyf+gfJofIHJbLD1O/9LHkdIvNTv6bAXPlIak7lu/Kd1JAKsCv595p8O0rcRi77kl5P/qBE5PzUP0gOlT8okR2mfu9nyevYbZS1UC7+3gGbkS+ktlRekO+ktlSAvcm/13Yb5W47N+j3fPlTEpHzU/8gOVT+oET2mfrVnyIvYifR4wZy7RKBReULqTmVF+Q7qS0VYFfyL7VdpW5b3btr/EH5IxKR81P/IDlU/qBE9pn61R8hb2HD0ez20nYKjJXPo7ZUXpDvpLZUgP3IP9P2kLrkl8qfzB5Sl/yw/BGJyPmpf5AcKn9QIrtN/fb38gq2l7rSO+TPZEupywSGyhdSWyrfyEdSQyrAfuQfaBtO3e1x8se17dT1PiB/PiJyfuofJIfKH5TIblO//bH8+W8mdZOHyh/UBlJ3CAyVL6TmVL6R76S2VID9yD/QNpm61bPkT2+rqYu9T/5wROT81D9IDpU/KJE9p/4BkMmf/DZS13ii/Lktnbo9YKJ8HrWl8kQ+ktpSAfYj/zTbWOo+Lyx/nhtL3ed98ocjIuen/kFyqPxBiew59Q+ATP7kl07d3mXkj3HR1L0BE+XzqC2VJ/KR1JYKsBP5d9mWUpd5Rfmz3VLqMl8qfzIicn7qHySHyh+UyM5T/wwI5M983dTVXV7+SJdL3RgwUT6PmlN5Ih9JDakAO5F/l20jdY03kj/nzaRu8m75YxGR81P/IDlU/qBEdp76Z0Agf+Yrpi7tuvLHu1bquoCJ8nnUlko+ktpSAXYi/yLbQOoOA/kz30bqGu+QPxMROT/1D5JD5Q9KZOepfwbcWv7Al0vd2I3kz3mh1F0BE+XzqDmVfCS1pQLsQf45tnrqAmP58189dYF3yJ+JiJyf+gfJofIHJSL1j4Gbyp/2WqnrurX8ga+SuihgnHwbtaWSj6SGVIDNyz/Elk7d3hR5EaunLvBF+QMRkfNT/yA5VP6gRKT+MXA7+aNeKHVXmfzJL5G6JWCcfBu1pe5cPpLaUgH2IP8QWzd1dePkjSydur3n5E9DRM5P/YPkUPmDEpH6x8Dt5I96ldRF9fIKhqfuB5gon0fNqXuWj6S2VIDNy7/CFk3d22h5O4um7o2byu9tQuoSmCI/xTx1A438scsLqS/iFvKHvETqlgbJuxieuh9gnHwbtaXuVr6Q2lIB9iD/BFsxdWkLyDtaNHVv3E5+bBNSl8AU+SnmqRsYJO9iz6nLv4X8Ic9PXdE4eSOTU5cDjJNvo7bU3coXUkMqwObl31/LpW5sJXlZK6YujdvJj21C6hKYIj/FPHUDc+XV7Cp121eXP+H5qSsaKu9lcupygFnybdSculv5SGpLBdi2/MtrudSNLSlvbbnUjXEj+aVNSF0CU+SnmKduYAF5RztJ3fN15Y93cupypssLGpu6GWCcfBu1pe5QvpDaUgE2L//yWit1XQvLu1sudWPcQn5mE1KXwBT5KeapG1hJXta2U9d7RfmznZy6nDXkNc1MXQswTr6NmlN3KF9IDakA25Z/di2UuqstyEtcK3Vd3EJ+ZhNSl8AU+SnmqRtYUt7aJlO3ekX5sx2bupmV5GXNTF0LMEs+jNpS9yZfSG2pANuWf3AtlLqr7cirXCt1XVxdfmMTUpfAFPkp5qkbWFje3fZSV3oV+VMdm7qZ9eSVDUzdCTBLPozaUvcmX0htqQDbln9wrZK6qK3JC10odVdcXX5jE1KXwBT5KeapG1he3uCWUpd5FflTHZu6mSXlrU1LXQgwTr6NmlN3JV9IbakAG5Z/ba2SuqhtymtdKHVXXFd+YBNSl8AU+SnmqRvYiLzHbaSu8fLyRzo2dTMLy7sblboNYJx8GLWl7kc+jxpSAbYt/9paInVLW5aXu1Dqrrii/LompC6BKfJTzFM3sB15lRtI3eHl5Y90Zupa1pbXNy11IcAs+TBqTt2PfCG1pQJsWP6dtUTqlrYvr3iV1EVxRfl1TUhdAlPkp5inbmBr8kJXT13gheXPc2DqTrYgL3FU6jaAWfJV1Ja6E/k8aksF2Lb8O2t+6or2Ii96ldRFcS35aU1IXQJT5KeYp25gg/JOl07d3iXlD3Ng6k62I69yTuoqgHHyYdSWugf5PGpIBdiw/CNrfuqK9iWve4nULXEt+WlNSF0CU+SnmKduYJvyWtdNXd0l5Q9zYOpOtiOvclTqNoBZ8mHUnLoH+UJqSwXYqvzzan7qivYoL32J1C1xFfldTUhdAlPkp5inbmDL8nJXTF3axeRPcmDqTrYmL3RO6iqAWfJV1Ja6efk8aksF2LD882p46n72K69+fuqKuIr8riakLoEp8lPMUzewcXm/y6Vu7GLyJzkwdScblHc6JHUPwDj5MGpO3bZ8HrWlAmxV/m01P3VFu5a3Pz91RVxeflQTUpfAFPkp5qkb2L684uVSN3YZ+WOclrqQbcprHZK6B2CcfBW1pW5Yvo0aUgE2LP+2Gp66H5yoE92d/KgmpC6BKfJTzFM3sAt5y2ulrusC8mc4LXUhW5aXOyF1CcA4+SpqS92wfB61pQJsVf5hNTx1PzyVX8Lw1P1wYflFTUhdAlPkp5inbmAX8pbXSl3XBeTPcFrqQrYsL3dI6h6AWfJV1Jy6Vfk2aksF2LD8q2py6nJ4Jj+G4an74cLyi5qQugSmyE8xT93AXuRFL5S6qwvIn+Go1G1sX17xhNQlAOPkq6gtdZPybdSQCrBV+SfV8NT98Jz8Hoan7odLys9pQuoSmCI/xTx1AzuSd71K6qIuIH+Go1K3sX15xRNSlwCMk6+i5tRNyudRWyrAVuWfVJNTl8Md8quYnLocLik/pwmpS2CK/BTz1A3sS173EqlbOlf+AKelLmQX8pbz1A0A4+STqC11e/Jt1JYKsFX599Tk1OVwt/wwhqfuh4vJb2lC6hKYIj/FPHUD+5LXvUTqls6VP8BRqdvYi7zoPHUDwDj5JGpO3Z58G7WlAmxV/j01NnUz3Cc/j8mpy+Fi8luakLoEpshPMU/dwO7kjS+RuqWz5E9vVOo29iIvekLqEoBx8knUlrol+TBqSAXYsPxjamzqZnhAfiGTU5fDZeSHNCF1CUyRn2KeuoE9ykufn7qi0+WPblrqQnYk7zpP3QAwTj6J2lK3JN9GbakAW5V/SY1N3QwPy49kcupyuIz8kCakLoEp8lPMUzewR3np81NXdLr80Y1K3ca+5HXnqRsAxsknUXPqZuTDqC0VYMPyL6mZqWvhUPmpTE5dDheQX9GE1CUwRX6KeeoGdirvfXjqfk6XP7pRqdvYl7zuPHUDwET5JGpL3YZ8GDWkAmxV/hk1NnUzHCG/lrGpm+EC8iuakLoEpshPMU/dwE7lvQ9P3c/p8kc3KnUbu5M37t6AafJJ1Jy6Dfk2aksF2Kr8M2pm6lo4Tn4wk1OXw7nyE5qQugSmyE8xT93ATuW9D0/dz+nyRzcndRV7lJfu5IBp8j3UlroB+TBqSwXYqvwbamzqZjhafjNjUzfDufITmpC6BKbITzFP3cB+5dVPTl3OifLnNip1G3uUl+7kgIHySdScurp8GDWkAmxV/g01M3UtnCI/m7Gpm+Fc+QlNSF0CU+SnmKduYL/y6ienLudE+XMblbqNncp7d3XANPkeaktdWj6M2lIBtir/ehqbuhlOlF/O2NTNcJb8fiakLoEp8lPMUzewa3n7Y1M3c6L8uY1K3cZO5b27OmCafA+1pS4tH0ZtqQBblX89zUxdC2fJ72dm6lo4S34/E1KXwBT5KeapG9i1vP2xqZs5Uf7cRqVuY6fy3l0dME2+h5pT15WvorZUgA3Lv54Gpu6Ec+UnNDZ1M5wuP54JqUtgivwU89QN7Fre/tjUzZwof26jUrexU3nvrg4YKN9DbamLyldRQyrAVuWfTjNT18IF5Fc0M3UtnC4/ngmpS2CK/BTz1A3sXX4AM1PXcor8oU1LXch+5dW7OmCafA81p64oX0VtqQAbln86DUzdCZeRH9LM1LVwuvx4JqQugSnyU8xTN7B3+QHMTF3LKfKHNi11IfuVV+/qgGnyMdSWuqJ8FbWlAmxV/t00M3UtXEx+SzNT18KJ8suZkLoEpshPMU/dwN7lBzAzdS2nyB/aqNRt7FrevsMDBsr3UHPqcvJV1JAKsFX5d9PM1LVwMfktzUxdCyfKL2dC6hKYIj/FPHUDe5cfwMzUtZwif2ijUrexa3n7Dg8YKB9DbalryVdRWyrAhuXfTQNTd8KF5Rc1M3UtnCI/mwmpS2CK/BTz1A3sXX4AM1PXcor8oY1K3cau5e07PGCgfAw1p64lX0VtqQBblX80zUxdCxeWX9TM1LVwivxsJqQugSnyU8xTN4Aj3MhZ5g9tVOo29i4/AIcHDJSPobbUVeSTqCEVYMPyj6aBqTvh8vKjmpm6Fk6Rn82E1CUwRX6KeeoGcIQbOcv8oY1K3cbe5Qfg8ICB8jHUnLqKfBW1pQJsWP7RNDB1J1xFflczU9fC0fKbmZC6BKbITzFP3QCOcAtnmT+xaakL2bv8ABweMFC+hNpSl5BPorZUgA3Lv5gGpu6Ea8lPa2bqWjhafjMTUpfAFPkp5qkbwBFu4SzzJzYwdSe7lrfv6oCZ8jHUljpfPokaUgE2LP9iGpi6E64ov66BqTvhaPnNTEhdAlPkp5inbgBHuIWzzJ/YwNSd7FrevqsDZsrHUHPqcPkkaksF2Lb8i2la6kK4rvzAZqauhePkBzMhdQlMkZ9inroBHOEWzjJ/YgNTd7JrefuuDpgpX0JtqcPlk6gtFWDD8s+lgak74eryGxuYuhOOkx/MhNQlMEV+innqBnCEWzjL/IkNTN3JruXtuzpgpnwJNadOlu+hhlSAbcs/lwam7oSry29sYOpOOE5+MBNSl8AU+SnmqRvAEW7hLPMnNjB1J7uWt+/wgLHyJdSWOlY+idpSAbYt/1aalroQbiE/s5mpa+EI+bVMSF0CU+SnmKduAEe4hbPMn9jA1J3sXX4ADg+YKV9Czakz5XuoLRVg2/IPpYGpO+FG8ksbmLoTjpBfy4TUJTBFfop56gb4Wn4G01IXcrT8iQ1M3QkA3CGfQW2pM+V7qCEVYNvyL/SBqTvhRvJLG5i6E46QX8uE1CUwRX6KeeoG+Fp+BtNSF3K0/IkNTN0JANwtX0LNqdPke6gtFWDz8i/0aakL4XbyY5uZuhYOlZ/KhNQlMEV+innqBvhafgbTUhdytPyJzUxdCwDcIZ9BbanT5HuoLRVg2/Jv84GpO+Gm8nsbmLoTDpWfyoTUJTBFfop56gb4Wn4Go1K3cYr8oc1MXQsA3CGfQc2po+RjqCEVYPPyb/OBqTvhpvJ7G5i6Ew6Vn8qE1CUwRX6KeeoG+Fp+BqNSt3GK/KHNTF0LANwtn0FtqXPke6gtFWDz8m/zaakL4dbykxuYuhMOlZ/KhNQlMEV+innqBvhafgajUrdxivyhzUxdCwDcLZ9BzalD5GOoLRVg8/IP84GpOyGQX93A1J1wkPxOJqQugSnyU8xTN4Aj3MJN5g9tbOpmAOAO+QZqSx0iH0MNqQCbl3+VD0zdCYH86gam7oSD5HcyIXUJTJGfYp66ARzhFm4yf2hjUzcDAHfLZ1Bzai4fQ22pAHuQf5VPS10IjfzwBqbuhIPkdzIhdQlMkZ9inroBHOEWbjJ/aGNTNwMAd8s3UFtqLh9DbakAm5d/kg9M3QmZ/PYGpu6Eh+VHMiF1CUyRn2KeugEc4RZuMn9ok1OXAwB3y2dQc2ooX0INqQB7kH+PD0zdCZn89gam7oSH5UcyIXUJTJGfYp66ARzhFg4yf26TU5cDAHfLN1BbaigfQ22pAHuQf49PS10Ipfz8BqbuhIflRzIhdQlMkZ9inroBHOEWDjJ/bsNT9wMAd8g3UHNqJV9CbakAO5F/jE9LXQix/AKnpS6Eh+VHMiF1CUyRn2KeugEc4RYOMn9uw1P3AwB3yzdQW2oiX0INqQB7kH+JD0zdCbH8Agem7oQH5BcyIXUJTJGfYp66ARzhFg4yf27zU1cEAHfIN1Bz6u3lS6gtFWAn8s/wgak7IZZf4MDUnfCA/EImpC6BKfJTzFM3gCPcwkHmz21+6ooA4A75AGpLvb18CbWlAuxE/hk+LXUh9PIjHJi6Ex6QX8iE1CUwRX6KeeoG9i4/gFGp2zhd/uiWSN0SANwh30DNqbeUz6CGVID9yL/Bp6UuhBHyO5yWuhAekF/IhNQlMEV+innqBvYuP4BRqds4Xf7olkjdEgDcIR9Abam3lC+htlSAncg/wAem7oQR8jscmLoT7pOfx4TUJTBFfop56gb2Lj+AUanbOF3+6FZJXRQAvCgfQM2pN5PPoLZUgP3Iv74Hpu6EEfI7HJi6E+6Tn8eE1CUwRX6KeeoG9i4/gFGp2zhd/ugWSt0VALwoH0BtqbeRz6CGVID9yD+9p6UuhCnyUxyYuhPuk5/HhNQlMEV+innqBvYuP4A5qas4S/70FkrdFQC8KB9Azak3kM+gtlSAXck/vaelLoRB8muclroQ7pOfx4TUJTBFfop56gZ2LW9/VOo2zpI/vbVS1wUAz8nXT1vqDeQzqC0VYFfy7+5pqQthkPwaB6buhJfKb2NC6hKYIj/FPHUDu5a3Pyp1G2fJn95yqRsDgOfkA6g59aryDdSQCrAr+Rf3wNSdMEh+jQNTd8JL5bcxIXUJTJGfYp66gV3L25+TuooLyJ/hcqkbA4Bn8vXTlnpV+QxqSwXYlfxze1rqQpglP8iBqTvhpfLbmJC6BKbITzFP3cB+5dWPSt3GBeTPcMXUpQHAM/kAak69knwDNaQC7E3+rT0tdSGMk9/ktNSF8FL5bUxIXQJT5KeYp25gv/LqR6Vu4wLyZ7ho6t4A4Kl8/TSnXkk+g9pSAfYm/9CelroQxslvclrqQnip/DYmpC6BKfJTzFM3sF959XNSV3EZ+WNcN3V1APC1fPq0pV5DvoHaUgH2Jv/EHpi6E8bJb3Jg6k64W34YE1KXwBT5KeapG9ipvPdRqdu4jPwxrp66QAAwp25QvoEaUgH2Jv+4Hpi6E8bJb3Jg6k64W34YE1KXwBT5KeapG9ipvPdRqdu4jPwxbiB1hwDsXT592lIvK99AbakAO5R/WU9LXQgT5Wc5MHUn3C0/jAmpS2CK/BTz1A3sUV76qNRtXFL+MDeQukMAdi2fPs2pl5VvoLZUgB3KP6unpS6EofLLnJa6EO6WH8aE1CUwRX6KeeoG9igvfVTqNi4pf5ibSd0kAPuVT5+21EvJB1BDKsA+5R/U01IXwlD5ZU5LXQh3yw9jQuoSmCI/xTx1A7uTNz4qdRsXlj/PjaXuE4A9yqdPc+pF5AOoLRVgn/Lv6IGpO2Go/DIHpu6EO+RXMSF1CUyRn2KeuoHdyRsflbqNC8uf5/ZSVwrAHuXTpy31fPkAakgF2Kf8I3pg6k4YKr/Mgak74Q75VUxIXQJT5KeYp25gX/K6R6Vu4yryp7rJ1K0CsC/59GlOPVM+gNpSAXYr/3wemLoThsovc2DqTrhDfhUTUpfAFPkp5qkb2Je87lGp27iK/KluOHW3AOxFvnvaUs+UD6C2VIDdyj+cp6UuhLny4xyYuhPukF/FhNQlMEV+innqBnYk73pU6jauJX+we0hdMgDbl0+f5tST5eunIRVgz/Lv5WmpC2G0/D6npS6EO+RXMSF1CUyRn2KeuoG9yIuelrqQK8qf7U5S9wzAluW7pzn1ZPkAaksF2LP8S3la6kIYLb/PaakL4Q75VUxIXQJT5KeYp25gF/KWp6Uu5Lryx7u31IUDsE357mlLPUG+ftpSAfYs/zoemLoTRsvvc2DqTnhRfhITUpfAFPkp5qkb2IW85WmpC7mu/PHuNnXzAGxKvnuaU0+Qr5+GVIA9yz+KB6buhNHy+xyYuhNelJ/EhNQlMEV+innqBrYvr3ha6kJuIX/IO0/dPwBbkI+ettRj5eunLRVg5/Jv4YGpO2G0/D4Hpu6EF+UnMSF1CUyRn2KeuoGNy/sdmLqTW8gfsjxJfQgArC3fPc2ph8unT0MqAPkn8LTUhTBdfqIDU3fCi/KTmJC6BKbITzFP3cCW5eUOTN3JjeTPWb6b+igAWE8+etpSD5evn7ZUAPLP3mmpC2EB+ZVOS10IL8pPYkLqEpgiP8U8dQOblTc7M3Utt5M/anlZ6tMAYCX57mlOPUQ+fdpSAfi7/w7g65vj5Vc6LXUhvCg/iQmpS2CK/BTz1A1sU17rzNS13FT+tOXA1JcCwGj56GlOPUQ+fRpSAfi7/w7gc5vj5Vc6LXUhvCg/iQmpS2CK/BTz1A1sUN7pzNS1BPJnLsemPhkAxskXT1vqg/Lp05YKwN/9FwCf2Jwkv9KBqTvhOfk9TEhdAlPkp5inbmBr8kLHpm4mkD9zOSf1+QAwRT56mlPvl0+fhlQA/u6/APis5iT5lQ5M3QnPye9hQuoSmCI/xTx1A9uRVzk5dTmZ/MnLRVLfEQClfPG0pd4jnz5tqQA8kX+3DkzdCQvIr3Rg6k54Tn4PE1KXwBT5KeapG9iIvMfJqcsp5Q9frpH6rAC4tXz0NKfeKd89bakAfCP/UB2YuhMWkF/pwNSd8Jz8HiakLoEp8lPMUzewvLzB4an76eUVyFVT3xcAt5AvnubUO+W7pyEVgG/kH6fTUhfCGvJDHZi6E56T38OE1CUwRX6KeeoG1pbXNz91Rb28ArlZ6lsD4IryxdOW+oJ897SlAvBt+QfptNSFsIz8VqelLoTn5PcwIXUJTJGfYp66gVXlxS2RuqUp8iLk9qmPDoALyxdPc+oL8t3TkArAt+UfodNSF8Iy8ludlroQnpPfw4TUJTBFfop56gbWk1e2SuqiBsm7kDb1AQJwAfncaUv9tnz3tKUC8IL8w3Na6kJYRn6r01IXwnPye5iQugSmyE8xT93AMvKm1kpd1zh5IzIk9SUCcLp88TSnPpGPnrZUAL4r/9iclroQlpHf6rTUhfCc/B4mpC6BKfJTzFM3sIC8o+VSNzZRXopMS32SABwtnzvNqU/ko6chFYAX5B+YA1N3wjLyWx2YuhOeyY9hQuoSmCI/xTx1A3Pl1ayburqh8l5kbOrbBOBQ+dxpS81HT1sqAN+Vf1QOTN0Jy8hvdWDqTngmP4YJqUtgivwU89QNzJLXsYHUHY6WtyPzUx8pAPfJ505zaj56GlIB+K78Q3Jg6k5YRn6rA1N3wjP5MUxIXQJT5KeYp24glj//jaXuc7q8IFkr9cECcId87tzzlpqPnrZUAO6UfzwOTN0Jy8hvdWDqTngmP4YJqUtgivwU89QN3EL+kHeSuuc15DXJoqkvF4Cn8rlzt3NqvnjaUgF4mfyDcWDqTlhGfqsDU3fCM/kxTEhdAlPkpyiyjdSv8krysmTp1PcLsHf51rnbOTVfPA2pALxM/p04MHUnLCO/1YGpO+GZ/BgmpC6BKfJTFNlA6vd4MXlfspnUtwywU/nWucMtNV88bakA3CP/NhyYuhOWkd/qwNSd8Ex+DBNSl8AU+SmKrJ76JV5S3ppsLPVFA+xLvnXucE7NF09DKgD3yD8Jp6UuhJXk5zowdSc8kx/DhNQlMEV+iiJLp36DF5Z3J5tMfdcAe5FvnbvaUvPF05YKwP3yL8FpqQthMfnFTktdCM/kxzAhdQlMkZ+iyLqpX9/l5Q3KhlNfN8DG5VvnfubUfO40pALwoPwDcFrqQlhMfrHTUhfCM/kxTEhdAlPkpyiyYuoXdyPyHmUnqS8dYJvyrXMnc2q+eNpSAXhQ/tE3LXUhLCa/2GmpC+GZ/BgmpC6BKfJTFFku9Vu7KXmbsqvU9w6wKfnQuYctNZ87bakAHCL/1puWuhAWk1/stNSF8Ex+DBNSl8AU+SmKrJX6ld2gvFPZW+qTB9iOfOvc9pyab52GVAAOkX/iDUzdCYvJL3Za6kJ4Jj+GCalLYIr8FEUWSv2+blberOwz9eEDLC8fOrc9p+Zzpy0VgEPkX3YDU3fCYvKLHZi6E57KL2FC6hKYIj9FkSVSv6nbl1cse059/gCrylfODW+p+dZpSAXgQPkH3cDUnbCY/GIHpu6Ep/JLmJC6BKbIT1FkfurXdC/yokXqlwBgPfnQudU5NZ87bakAHCj/jhuYuhMWk1/swNSd8FR+CRNSl8AU+SmKDE/9ju5LXrfIP3jrAY6Rr5ybnFPzrdOQCsDh8i+4gak7YTH5xQ5M3QlP5ZcwIXUJTJGfosjY1G/nTuW9i3yT+m0AWEO+cm5sS823TlsqAEfJP9wGpu6ExeQXOzB1JzyVX8KE1CUwRX6KIjNTv5q7lrcv8u3ULwTAdPnKubE5Nd86bakAHCX/ZBuYuhMWk1/swNSd8FR+CRNSl8AU+SmKTEv9UvK1/AxEXkj9TgCMlq+cm9lS86HTkArAsfKPtYGpO2Ex+cUOTN0JT+WXMCF1CUyRn6LInNSvI8/J70HkztRvBsBE+cq5jTk1HzptqQCcIP9GG5i6ExaTX+zA1J3wVH4JE1KXwBT5KYoMSf0ucof8KkRelvrlABgnXzk3MKfmQ6chFYAT5F9nA1N3wmLyix2YuhOeyi9hQuoSmCI/RZE89VvIffLzELkn9fsBMEg+ca6+peZDpy0VgNPk32UDU3fCYvKLHZi6E57KL2FC6hKYIj9FkTD1+8dB8jsRuT/1KwIwRb5yrjun5iunIRWAk+VfZANTd8Ji8osdmLoTnsovYULqEpgiP0WRJPWbx3HygxF5MPVbAtDLJ85159R86LSlAnCy/FtsYOpOWEx+sQNTd8JT+SVMSF0CU+SnKHLj1O8cp8uPR+TB1G8JQCyfOFfcUvOV05AKwDnyr7CBqTthMfnFDkzdCU/llzAhdQlMkZ+iyM1Sv21cQH5FIoekflEAMvnEudycmq+ctlQAzpR/fw1M3QmLyS92YOpOeCq/hAmpS2CK/BRFrp36JePC8osSOTD1uwLQyCfOtebUfOU0pAJwpvzLa2DqTlhMfrEDU3fCU/klTEhdAlPkpyhyvdSvF1eUX5fIIalfFIBAvm8utKXmK6ctFYDz5Z9dA1N3wmLyix2YuhOeyi9hQuoSmCI/RZGLp36ruJH80kQOTP2uANxaPnEuMafmE6ctFYCLyD+4BqbuhMXkFzswdSc8lV/ChNQlMEV+iiKXSv0yEcivTuTw1K8LwO3k++YSc2o+cRpSAbiI/FNrYOpOWEx+sQNTd8JT+SVMSF0CU+SnKHJm6neIXn6EIgemflcAbiffN4dvqfnEaUsF4FLy76yBqTthMfnFDkzdCU/llzAhdQlMkZ+iyGmpXx1myQ9S5PDUrwvALeT75uQ5Nd83DakAXFD+hTUwdScsJr/Ygak74an8EiakLoEp8lMUOTz168J0+YmKHJj6XQG4hXzfHDun5hOnLRWAC8o/rwam7oTF5Bc7MHUnPJVfwoTUJTBFfooi96d+RVhMfrEih6d+XQCuKx83Z26p+b5pSAXgsvIPq4GpO2Ex+cUOTN0JT+WXMCF1CUyRn6LICanfG6bLT1TkwNTvCsB15fvmtDk13zdtqQBcXP5VNTB1Jywmv9iBqTvhqfwSJqQugSnyUxS5SOo3iYnysxQ5MPW7AnAt+bg5bU7N901DKgAXl39PDUzdCYvJL3Zg6k54Kr+ECalLYIr8FEUunvqtYpD8GkUOTP2uAFxLPm7OmVPzfdOWCsA15B9TA1N3wmLyix2YuhOeyi9hQuoSmCI/RZGrpn7DGCG/Q5FDUr8oAFeRL5tDttR83DSkAnAl+ZfUwNSdsJj8Ygem7oSn8kuYkLoEpshPUeQ2qV81evkRijyY+i0BuIp83Jwwp+b7pi0VgCvJP6MGpu6ExeQXOzB1JzyVX8KE1CUwRX6KIjdO/c4Ryy9Q5MHUbwnAheXLZj6n5uOmIRWA68k/oAam7oTF5Bc7MHUnPJVfwoTUJTBFfooiSeo3j1h+gSL3p35FAC4sXzbDLTUfN22pAFxV/vU0MHUnLCa/2IGpO+Gp/BImpC6BKfJTFGlTv4KU8vMTuSf1+wFwSfmyWc2p+bJpSAXg2vJPp4GpO2Ex+cUOTN0JT+WXMCF1CUyRn6LIhNQvIqX8/ERelvrlALikfNlMko+btlQAri3/bhqYuhMWk1/swNSd8FR+CRNSl8AU+SmKzEn9OlLKz0/kztRvBsDF5LPm7fOrv/0/+bhpSAXg2vKPpoGpO2Ex+cUOTN0JT+WXMCF1CUyRn6LIqNRvJLH8AkW+m/q1ALiYfNy8ZT7+4stXXnv9V2//KJ84bakAXFX+xTQwdScsJr/Ygak74an8EiakLoEp8lMUGZj6vSSWX6DIC6nfCYDLyPfNW+b7P//wv/3373+VPzx+O185DakAXE/+uTQwdScsJr/Ygak74an8EiakLoEp8lMUmZn61aSXH6HIt1O/EACXkU+ct8njP//lyZD6Vf7pn3/46Qfv5VunLRWAK8m/lQam7oTF5Bc7MHUnPJVfwoTUJTBFfooik1O/oIyQ36HIk9SvAsAF5CvnDfLRZ59/M6Q+yU/eeD3fOg2pAFxJ/qE0MHUnLCa/2IGpO+Gp/BImpC6BKfJTFBme+h1livwURf7BTyRgE/Kt86r5+IsvX338/gtb6lf59btv5ounLRWAa8i/kgam7oTF5Bc7MHUnPJVfwoTUJTBFfooi81O/pgySX6NI/RIAnCufO6+at373yXeH1K/yvR/88E/vv5OPnoZUAC4u/0QamLoTFpNf7MDUnfBUfgkTUpfAFPkpiqyS+mVllvwgZc+pzx/gXPnieaV8+G//fueQ+iSPHj3Kd09bKgAXl38fDUzdCYvJL3Za6kJ4Jj+GCalLYIr8FEUWSv2+MlF+lrLP1IcPcJZ89LxGPv7iy1dee/2eLfWr/OLNH+XTpyEVgIvLv4+mpS6ExeQXOy11ITyTH8OE1CUwRX6KImulfmUZKr9M2WHqqwc4Sz59Xjzf//mH9w+pT/LJv7ydD6C2VAAuK/84mpa6EBaTX+y01IXwTH4ME1KXwBT5KYosl/qtZbT8PmU/qY8d4Fz5+nnBvPv7Px4ypD75w6mffvBevoEaUgG4oPzjaFrqQlhMfrHTUhfCM/kxTEhdAlPkpyiyYuoXlwXkVyp7SH3mAGfJB9BL5aPPPj9wSH2SN19/LZ9BbakAXFD+ZTQwdSesJD/XaakL4Zn8GCakLoEp8lMUWTT1u8sy8luVbac+cICz5DPo+fn4iy//8e13jtpSv8qv3l7+D6fWtwPAIPln0cDUnbCS/FynpS6EZ/JjmJC6BKbIT1Fk0dTvLuvJj1a2mvq0AU6XL6Hn59GvPjp2SH2SPzxe+w+n1rcDwCD5N9HA1J2wkvxcp6UuhGfyY5iQugSmyE9RZN3Ury+ryk9XNpb6ogHOko+h5+Txn/9y2pC6+h9Ora8GgFnyb6KBqTthGfmtDkzdCc/kxzAhdQlMkZ+iyNKp32DWlh+wbCb1LQOcLt9DT85Hn33+ymuvn7ylLv2HU+urAWCW/INoYOpOWEZ+qwNTd8Iz+TFMSF0CU+SnKLJ66peYjcgvWVZPfcIAp8tX0RPy8Rdfvvr4/XOG1HX/cGp9LwCMk38NDUzdCcvIb3Vg6k54Jj+GCalLYIr8FEVWT/0SszX5ScuiqS8X4HT5MHpC3vjNb88fUhf9w6n1vQAwTv41NDB1Jywjv9WBqTvhmfwYJqQugSnyUxTZQOr3mM3Kb1vWSn2wAKfLt9Gj8rO//u1SQ+pyfzi1vhQAJso/hQam7oRl5Lc6MHUnPJMfw4TUJTBFfooi20j9KrNx+YXLKqlPFeB0+UJ6YM7/M6lL/+HU+kwAmCj/DhqYuhOWkd/qwNSd8Ex+DBNSl8AU+SmKbCP1q8yO5Ncuk1OfJ8Dp8pH0kFzqz6Qu+odT6xsBYKj8O2hg6k5YRn6r01IXwnPye5iQugSmyE9RZDOp32b2KD97GZj6KgFOl0+lD+aCfyZ1uT+cWl8HAKPl30HTUhfCMvJbnZa6EJ6T38OE1CUwRX6KIptJ/Tazd/krIENSXyLA6fKp9P5c9s+kLveHU+vrAGC0/DtoYOpOWEN+qNNSF8Jz8nuYkLoEpshPUWRLqV9oeCp/F6RNfYAAp8sH05flGn8mdaE/nFrfBQDT5R9BA1N3whryQ52WuhCek9/DhNQlMEV+iiJbSv1Cwx3y90Jun/roAE6Xb6Z35uMvvvzHt9+59pD6JL94c+IfTq3vAoDp8o+ggak7YQ35oU5LXQjPye9hQuoSmCI/RZGNpX6n4QH5OyK3SX1oAKfLl9Pv5tGvPrrNkPokn/zLrD+cWl8EAAvIv4AGpu6ENeSHOi11ITwnv4cJqUtgivwURTaW+p2GI+Tvi1wv9XEBnCUfT7+dx3/+yy2H1P/2v/9w6l9++m4+odpSAThc/gU0MHUnLCC/0oGpO+E5+T1MSF0CU+SnKLK91K81nCh/d+SyqQ8K4HT5fvpNfvkf/3njIfVJHj169OkH7+UrqiEVgAPlnz8DU3fCAvIrHZi6E56T38OE1CUwRX6KeeoGRsvbWTR1b3AZ+askZ6a+IICz5Cvqv/7vP5P6ymuvJ1vqV/npj9/Ih1RbKgAHyj9/BqbuhAXkVzowdSc8J7+HCalLYIr8FPPUDawhr2m51I3BheXvlJyQ+moAzpIPqV/l+z//sBpSn+TX775pSAVgFfkX0LTUhbCA/EqnpS6EF+UnMSF1CUyRn2KeuoHF5H2tkroouKL8/ZLDUx8LwFnaIfWt333SDqlP8qf33zGkArCE/PNnYOpOmC4/0WmpC+FF+UlMSF0CU+SnmKduYEl5a/NTVwQ3kr9rcn/qAwE4Szik/uyvf8tX1Cf53g9+WP3h1Lp/ABaTf/4MTN0J0+UnOi11IbwoP4kJqUtgivwU89QNLCzvbnjqfuDW8pdO7kx9FwBnSYbUjz77PPwzqd/No0ePDKkAzJd/+wxM3QnT5Sc6LXUhvCg/iQmpS2CK/BTz1A2sLa9vcupyoJS/gPJN6lsAONeNh9SPv/jy1cfv5/vpC/nFmz+ypQIwXP7tMzB1J0yXn+i01IXwovwkJqQugSnyU8xTN7C8vMGxqZuBEfI3UeoTADjXjbfUR7/6KF9O78zH771lSAVgsvzbZ2DqThgtv8+BqTvhRflJTEhdAlPkp5inbmAL8hLHpm4GBsnfxz2nLh/gXDcbUt/9/R/zzfRl+d4Pfvin99+xpQIwVv7hMzB1J4yW3+fA1J3wovwkJqQugSnyU8xTN7AReY8zU9cC4+Rv5T5T1w5wrtsMqR/+27/ng+n9+ad//uGnH7xnSAVgrPzbZ1rqQhgtv89pqQvhDvlVTEhdAlPkp5inbmA78ioHpu4E5spfz12lbhvgAq49pH702eevvPZ6vpY+mDdff82QCsBY+bfPwNSdMFd+nNNSF8Id8quYkLoEpshPMU/dwKbkbQ5M3QmMlr+hO0ndM8BlXG9I/fiLL199/H6+kx6YX7z5I1sqADPl3z4DU3fCXPlxTktdCHfIr2JC6hKYIj/FPHUDW5MXOi11IbCG/FXdfOqGAS7gelvqo199lC+kR+Xj994ypAIwUP7hMzB1J8yVH+e01IVwh/wqJqQugSnyU8xTN7BBeaejUrcBK8lf2A2n7hbgMq4xpL77+z/m2+gJ+dP779hSAZgm//AZmLoT5sqPc1rqQrhDfhUTUpfAFPkp5qkb2Ka81jmpq4D15K/tJlO3CnAZFx9SP/y3f89X0dPyvR/88NMP3jOkAjBK/uEzMHUnDJVf5sDUnXCH/CompC6BKfJTzFM3sE15raNStwHryV/b7aWu9AI2838EONMFh9SPPvv8lddez1fRk/Po0aNLzal1q8AU/+//8d+/Sv2/grXl3z4DU3fCRPlZTktdCHfLD2NC6hKYIj/FPHUDm5U3Oyd1FbCq/OXdWOo+z7XJ/1PAaS4ypH78xZevPn4/30PPzE9//IYtFTjNk9n0Zan/17Gw/MNnYOpOmCg/y2mpC+Fu+WFMSF0CU+SnmKduYLPyZuekrgLWlr/Cm0nd5Lk2/38QONxFttTv//zDfAm9SH797puGVOB+98+mtlQuK//wGZi6EybKz3Ja6kK4W34YE1KXwBT5KeapG9iyvNwhqXuA5eVv8TZS13iWvf3/BR505pD61u8+yTfQC+aTf3nblgp844Tl1JzKBeUfPgNTd8JE+VlOS10Id8sPY0LqEpgiP8U8dQNblpc7J3UVsLz8Ld5A6g7Psuf/78DLnDyk/uyvf8vXz8vmez/44Z/ef8eQCrt1qfHUlspF5B8+A1N3wjj5TQ5M3Ql3yw9jQuoSmCI/xTx1AxuX9zskdQ+wEfm7vHTq9k7nOQB3Om1I/eizz/Pp8xr5p3/+4acfvGdIhT240nJqS+VS8g+fmalrYZb8IKelLoSXym9jQuoSmCI/xTx1AxuX9zskdQ+wHfnrvHTq9k7kmQAvc+yQ+pvP/+uV117Pd88r5dGjR7ZU2KSbjafmVC4l//AZmLoTZskPclrqQnip/DYmpC6BKfJTzFM3sH15xRNSlwCbkr/R66au7kSeD/AyRw2pH3/x5auP388Xz6vmpz9+w5AKGxCOp7ZULiL/8BmYuhNmyQ9yWupCeKn8NiakLoEp8lPMUzewfXnFE1KXAFuTv9SLpu7tFJ4VcL/Dt9RHv/oo3zpvkF+/+6YtFZaTb6a2VC4r//AZmLoTZskPclrqQnip/DYmpC6BKfJTzFM3sAt5yxNSlwBbk7/UK6Yu7RT5Q1v0ucGuHDKkvvW7T/KV82b55F/eNqTCcPlIak7lqvJf4Aem7oRB8mscmLoTXiq/jQmpS2CK/BTz1A3sQt7yhNQlwAbl7/VyqRs7Rf7QNvAMYfMeHFJ/9te/5fvmLfO9H/zwT++/Y0iFafJV1JbKLeW/tw9M3QlT5Kc4LXUh3Cc/jwmpS2CK/BTz1A3sQt7yhNQlwDblr/Zaqes6Wv7ENvY8YcPuGVI/+uzzfNxM5tRPP3jPlgq5fAm1pVLJf1cfmLoTpshPcVrqQrhPfh4TUpfAFPkp5qkb2Iu86Dx1A7BZ+du9UOqujpY/sa0+WNiklw2pr7z2er5sJnn06NGdc2pdFGxcPn2aUxki/xV9YOpOmCI/xWmpC+E++XlMSF0CU+SnmKduYC/yovPUDcCW5S/4KqmLOlr+xPbwkGEzvjukfvzFl68+fj/fNMP85I3XbalwA/nWaUtloPzX8oGpO2GK/BSnpS6E++TnMSF1CUyRn2KeuoG9yIuekLoE2Kz87V4ldVHHyR/X3h44bMALW+r3f/5hvmbm+emP3zCkwjXk+6YtleHyX8Vnpq6FXn6E01IXwgPyC5mQugSmyE8xT93AjuRd56kbgC3LX/AlUrd0nPxx7fnhw7q+GVLf+M1v8x1zSD5+7y1DKlxEvmmaU1lL/hv4wNSd0MuPcFrqQnhAfiETUpfAFPkp5qkb2JG86zx1A7Bx+Ts+P3VFx8kflxZgRU+G1Md//ku+YI7Kv/7kLVsqnCzfMSekLoEl5b94D0zdCb38CKelLoQH5BcyIXUJTJGfYp66gR3Ju85TNwAbl7/j81NXdIT8WWkE1vV//uH/yrfLafn5n//vf/2f/6tuBlaSb5fTUhfCkvJftmemroVYfoHTUhfCA/ILmZC6BKbITzFP3cCO5F3nqRs4Xf7ohqTugYflRzI8dT9HyJ+VdmBRT/4x2zdffy2fL+fk+z//8Jt/+rjuB0bL98rhqfthPfkv2DNT10IpP79pqQvhYfmRTEhdAlPkp5inbmBf8rod22nyRzckdQ88LD+S4an7OUL+rNQEK3oypH6Vv/z03e/94If5iDkhr7z2+m8+/69vtlRzKnxXvlGukroolpT/aj0wdSeU8vOblroQHpYfyYTUJTBFfop56gb2Ja/bsZ0mf3RDUvfAQfI7mZy6nEPlD2pO6ipgJd8MqU/y63ffzHfMCXn393/89pBqS4Un8l1yxdSlsaT81+mBqTuhlJ/ftNSF8LD8SCakLoEp8lPMUzewL3ndeeoGTpQ/tyGpe+Ag+Z1MTl3OofIHNTB1J7CAF7ZU/9LvV3n18fsvDKnmVHYunyNXT10g68l/i56ZuhYa+eENTN0JD8uPZELqEpgiP8U8dQP7ktedp27gRPlzG5K6Bw6Vn8rY1M0cKn9Qk1OXA0N9d0j1L/1+lY8++/zOLdWcyt7kE+RmUjfJkvLfnwem7oRGfnjTUhfCQfI7mZC6BKbITzFP3cC+5HXnqRs4Uf7chqTugUPlpzI2dTMHyZ/SQqm7ginuHFL9S7/f/dd9zansSj47bjJ1qywp/515YOpOaOSHNy11IRwkv5MJqUtgivwU89QN7E7euHs7Qf7chqTugUPlpzI2dTMHyZ/SiqlLg9I9Q+qe/6Xfl/3rvuZUNi9fGzefumHWk/+qPDN1LQTyq5uWuhAOkt/JhNQlMEV+innqBnYnb9y9nSB/bkNS98AR8muZmbqWg+RPaenU7cGtPTik7vZf+v3lf/znIVuqOZXNyBfG/aSumvXkvyHPTF0Lt5af3MDUnXCQ/E4mpC6BKfJTzFM3sDt54+7tBPlzG5K6B46QX8vM1LUcJH9Km0ndJFzdIUPqPv+l37d+98mBQ6o5ldXlw+IOU3fOkvJfjAem7oRby09uWupCOFR+KhNSl8AU+SnmqRvYnbxx93aC/LkNSd0DR8ivZWbqWh6WP6JNpm4VruLwIXVv/9LvP779zsdffHnUlmpOZTn5nrjn1OWzpPz34Zmpa+Gm8nublroQDpWfyoTUJTBFfop56gZ2J288T93AKfKHNiR1DxwnP5iBqTt5WP6Itp26XriYY4fUr/LpB+/t5F/6Pfxf9zWnspx8RpQnqQ+B9eS/Bs9MXQu3kx/bwNSdcKj8VCakLoEp8lPMUzewO3njeeoGTpE/tCGpe+A4+cEMTN3Jw/JHtJPUPcNZThhSn+STf3k7HzqvnWP/dV9bKkvIp0N5IfVFsKT8F+CZqWvhRvJLm5a6EI6QX8uE1CUwRX6KeeoG9igv3ckdK39oQ1L3wHHygxmYupMH5M9nh6k7h1OcvKV+lZ+88Xo+d14vp/3rvuZUxsoXQ3lZ6tNgSfnvvTNT18KN5Jc2LXUhHCG/lgmpS2CK/BTz1A3sUV66kztW/tCGpO6B4+QHMzB1Jw/In8+eU5cPhzpnSH3yL/3+0z9v9l/6Pflf9zWnMko+FMohqc+E9eS/7s5MXQu3kJ/ZwNSdcIT8WiakLoEp8lPMUzewR3npTu5Y+UMbkroHjpMfzMDUnTwgfz7yD+OPhJ07c0h9kj883ua/9HvOv+5rTmWCfByUo1LfC+vJf8sdm7oZri6/sWmpC+E4+cFMSF0CU+SnmKduYI/y0p3csfKHNiR1DxwnP5iBqTu5T/5w5IXUFwEvusiQ+iS/ePNH+fR52bz6+P0z/3VfcyqhfBaUE1JfDUvKf7+dmboWris/sIGpO+E4+cFMSF0CU+SnmKduYI/y0p3csfKHNiR1Dxwtv5lpqQu5T/5w5GWpTwO+dsEh9UkePXqUD6AXzEeffX7BIdWcym3ka6Cck/p8WFL+a+3Y1M1wRfl1DUzdCcfJD2ZC6hKYIj/FPHUDe5SX7uSOlT+0Ial74Gj5zUxLXch98ocjD6a+Efbr4kPqV/nT++987wcb+cOp7/7+jxcfUs2pXE8+AsqlUp8S68l/mx2buhmuKL+uaakL4Wj5zUxIXQJT5KeYp25gj/LS89QNHC1/YkNS98DR8puZlrqQ++QPRw5PfSzsyzWG1Cf59btv5jPo+Xn18ftXGlLNqVxcvv3JZVMfFEvKf4+dmboWriU/rYGpO+Fo+c1MSF0CU+SnmKduYI/y0vPUDZwif2hDUvfAcfKDmZa6kJfKn4yclvpw2L7rDalP8pM3Xs/H0HPyymuvX+Nf9zWncln55CdXSn1ZLCn/9XVs6ma4ivyuBqbuhKPlNzMhdQlMkZ9inrqBncp7d3XHyh/akNQ9cJz8YKalLuSl8icjZ6a+ILbp2kPqV/n0g/eW/pd+H//5L9ceUs2pnCxf+uTaqU+MVeW/uM5MXQuXlx/VwNSdcIr8bCakLoEp8lPMUzewU3nvru5Y+UMbkroHjpMfzKjUbdwnfzhykdR3xKbcYEh9kj88fjufRE/L93/+4W2GVHMqx8o3PrlZ6ltjSfmvrGNTN8OF5Rc1MHUnnCI/mwmpS2CK/BTz1A3sVN67qztW/tCGpO6B4+QHMyp1G/fJH45cNvVBsbybDalP8os3f5QPo8fmldde//iLL2+5pZpTeVC+68ntUx8dS8p/Ux2buhkuLL+ogak74RT52UxIXQJT5KeYp25gp/LeXd2x8oc2JHUPHCc/mFGp23ip/MnI9VIfF6u68Zb6VR49epTPo0flw3/79xsPqbZU7pEvelKlPj1Wlf+OOjZ1M1xMfksDU3fCifLLmZC6BKbITzFP3cBO5b27umPlD21O6io4Qn4to1K38VL5k5Frpz4xFnP7IfWr/OWn7y70h1Pf+t0ntx9Szal8Vz7kyYTUZ8iS8t9Ox6ZuhovJb2lg6k44UX45E1KXwBT5KeapG9ipvHdXd6z8oc1JXQVHyK9lVOo2Xip/MnKz1LfGApIh9Uk+fu+tfCQ9JK8+fv/2/7qvOZUX5PudzEl9jCwp/6V0cupyuID8igam7oTT5cczIXUJTJGfYp66gZ3Ke89TN3C0/InNSV0Fh8pPZVrqQl4qfzJy+9RHx1DhkPokP/3xG/lU+mA++uzzcEg1p5IvdzIt9UmyqvzX0bGpm+EC8isamLoTTpcfz4TUJTBFfop56gZ2Ku89T93A0fInNid1FRwqP5VpqQt5qfzJSJX69JglH1K/yqcfvDf8D6c+/vNf8iHVnLpP+WAnM1MfJgvLfxGdnLoczpLfz8zUtXC6/HgmpC6BKfJTzFM3sFN573nqBo6WP7E5qavgUPmpjErdxkHypyRV6tOjl6+o3+RP778z9g+nfv/nH+YTqjl1h/K1Tgamvko2Iv8VdGzqZjhLfj8DU3fCWfL7mZC6BKbITzFP3cB+5dU7vKPkT2xU6jY4SH4no1K3cZz8cUmS+u7I5PvpC5n5h1Nfee319s+kmlN3KB/sZFTqe2SD8l8+J6cuhxPllzMzdS2cJb+fCalLYIr8FPPUDexXXr3DO1b+0OakroKD5HcyKnUbp8sfndw+9dFxU/lyemcG/uHUX/7Hf+bLqTl1J/LNTuakPkY2Lv+dc3LqcjhFfjYzU9fCufITmpC6BKbITzFP3cB+5dU7vGPlD21O6io4SH4no1K3cQH5M5Qbp744biHfTF+WaX849d3f/zHfTM2pe5AvdzIk9SWyI/kvnJNTl8PR8puZmboWzpWf0ITUJTBFfop56gb2K6/e4R0rf2ijUrfBA/ILmZa6kAvLn6fcMvW5cS35YHp/5vzh1Fcfv5+vpebUzcvHO8lT3yA7lf+eOTx1Pxwhv5axqZvhXPkJTUhdAlPkp5inbmC/8uod3rHyhzYqdRs8IL+QaakLuZb8wcrNUt8aF5ZPpYdkwh9OfeW113/z+X/lU6k5dcPyCU/a1AcIfp/3C/BG5NcyM3UtXEB+RRNSl8AU+SnmqRvYr7z6PHUDR8uf2KjUbfCA/EJGpW7jFvKHLLdJfWhcRj6SHp78D6d++G//no+k5tRNyic8CVNfHzwn//VyeOp+OEh+J2NTN8MF5Fc0IXUJTJGfYp66gf3Kq89TN3C0/IlNS10I98nPY1TqNm4tf+Byg9RXxunyefSotH849a3ffZLPo+bU7cmHPKlSnx68VP6L5eTU5XCQ/E5mpq6Fy8gPaULqEpgiP8U8dQP7lVefp27gaPkTm5a6EF4qv41pqQvJ5E9erp36xDhavo2ekOoPpy7xZ1LNqWvJtzy5feqjg4Pkv1IOT90PD8gvZGzqZriM/JAmpC6BKfJTzFM3sF959XnqBk6RP7RpqQvhbvlhTEtdSC+vQK6a+r44VL6KnpxP/uXtGw+pr7z2+sdffJmvoubUzcgXPblx6ouD4+S/TM5PXREvld/G2NTNcDH5LU1IXQJT5KeYp25g1/L23d6x8oc2LXUh3C0/jFGp25glr0Oumvq+uE++h56ZX7z5o1tuqb/8j//M91Bz6jbko57cMvW5wenyXyPnp66Iu+WHMTZ1M1xMfksTUpfAFPkp5qkb2LW8fbd3rPyhTUtdCHfIr2Ja6kKGynuR66U+Lu6QL6EXyc3+cOq7v/9jvoSaUzcg3/XkZqlvDS4g/wVyfuqKuEN+FWNTN8Ml5ec0IXUJTJGfYp66gV3L23d7x8of2sDUnfCi/CSmpS5kurwguVLqy+KZfAO9VD794L0b/OHU7//8w3wDNaeuLp/25DapDw0uLP/tcX7qinhOfg+TU5fDJeXnNCF1CUyRn2KeuoFdy9vPUzdwtPyJDUzdCc/J72Fg6k6WkTclV0p9WXuXD6CXzZ/ef+eqQ+o/vv3O0n8m1Zyay9c9uUHqK4NryX9pXCJ1SzyVX8Lk1OVwYflFTUhdAlPkp5inbmDX8vbz1A2cIn9oA1N3wjP5MUxLXciS8tbkGqnPaqfy6fMa+fW7b15vS/3os8/z6dOcuqJ83ZMbpL4yuIX8N8YlUrfE1/IzmJy6HC4sv6gJqUtgivwU89QN7Frefp66gVPkD21m6lr4Wn4GA1N3sra8Prl46pval3z0vF5++uM3rjGk/uyvf8tHT3PqcvKBT66d+sTgpvLfFZdI3RIO1X3uS35UE1KXwBT5KeapG9i1vP08dQOnyB/azNS18LX8DAam7mQj8h7lsqkPahfyufOq+fSD9x49enTZIfWN3/w2nzvNqWvJNz65aur7gkz+i+ISqVvatbz94an74fLyo5qQugSmyE8xT93AruXt56kbOEX+0Mambmbv8gMYmLqTDco7lQumvqYty7fOG+QvP333ez/44aWG1Fcfv7+9P5NqTr2efOaT66U+LujlvyKukrqoncp7H566H64iv6sJqUtgivwU89QN7Frefp66gVPkD21s6mZ2LW9/ZupatiwvVy6V+pQ2KF85b5Y/PH77IkPqK6+9/pvP/ytfOc2pq8jHPrlG6rOCWfLfD1dJXdTu5I3PT10RV5Hf1YTUJTBFfop56gb2Lj8A53eC/LmNTd3MfuXVz0xdy/blFcsFU1/TRuT75o3z63ffPH9L/eV//Ge+b5pTl5DvfXLx1DcFQ+W/Fi6Uuqsdybuen7oiriU/rQmpS2CK/BTz1A3sXX4AeeoGTpE/tMmpy9mjvPSZqWvZl7xuuVTqU1pbvmwm+emP3zhnSH3857/ky6Y5db588pOLp74pmC7/nXCh1F3tQt7yEqlb4lry05qQugSmyE8xT93A3uUHkKdu4BT5Q5ucupzdyRsfm7qZncp7l4ukvqMl5ZtmlU8/eO/Ro0enDalv/Oa3+aZpTh0un/zksqkPCpaR/za4Vuq6Ni7vd4nULXFF+XVNSF0CU+SnmKduYO/yA8hTN3Ci/LlNTl3OjuRdT05dzt7lByDnpz6ileSDZpu//PTd7/3gh8cOqa8+fv/jL77MB01z6lj56icXTH1NsKT8V8G1Ute1WXmzq6QuiivKr2tC6hKYIj/FPHUDe5cfQJ66gRPlz2146n52IW95cupyeCq/BDk/9REtIJ8yJ+RP779z1JD6ymuv/+bz/8qnzAmp73eifPiTS6U+JVhe/nvgWqnr2qC801VSF8V15Qc2IXUJTJGfYp66gb3LDyBP3cCJ8uc2P3VF25dXPDl1ObwoPwk5M/UFzZWPmHPy8XtvHb6lfvTZ5/mIOSf1FQ+Sb39yqdSnBBuR/wa4XOrGNiVvc6HUXXFd+YFNSF0CU+SnmKduYO/yA8hTN3Ci/LktkbqlLcvLHZ66H+6WH4acmfqCxsnny2n5xZs/OmRI/dlf/5bPl9NS33Iv3/7kIqnvCDYo//VvudSNbUTe40Kpu+Lq8hubkLoEpshPMU/dwN7lB5CnbuB0+aNbInVLG5R3Oj91RTwsPxI5J/X5TJEPlzPz5uuv3T+kvvGb3+bD5czUF53J5z+5SOo7gs3Kf/FbMXVpy8sbXCh1V9xCfmYTUpfAFPkp5qkb2Lv8APLUDZwuf3SrpC5qU/I2l0jdEkfIr0VOTn07sXyyHJtPP3jv0aNHLxtSv//zD/PJcnLqu761fP6T81MfEexC/lvfiqlLW1je3Vqp6+IW8jObkLoEpshPMU/dAI5w1SPMn9tCqbvaiLzHJVK3xCnys5GTU99OI98rh+dP77/zvR/88LtD6quP3//4iy/zvXJ46uu+nXwElDNTXxDsS/4r36Kpe1tM3tdyqRvjRvJLm5C6BKbITzFP3QCOcOEjzB/dQqm7Wl7e4Cqpi+Is+f3IaakP56bypXKJ/OHx2y8Mqa+89vpHn32eL5VLpL7xq8tHQDkn9fnATuW/7K2burpl5E2tmLo0biS/tAmpS2CK/BTz1A3gCBc+wvzRrZW6rlXlxS2UuisuIz8kOS314dxCvlEulI/fe+vbW+ov/+M/841yodSXfi35DijnpD4f2Lv8N711U1e3gLyjFVOXxu3kxzYhdQlMkZ9inroBHOHCR5g/uuVSN7aevLK1UtfFJeXnJKelPpwrytfJ5fKLN3/0ZEj92V//lq+Ty6W+9wvLd0A5OfXtAE/lv+OtnrrAofJeFk3dGzeV39uE1CUwRX6KeeoGcIRrH2H+9JZL3dgy8qaWS90Y15Kflhyb+mSuIt8lF81P3nj9jd/8Nt8lF0199Zfx/7F3fz12XmXa4D/IK3kUFCjsStlV5U4yJiRO/CfmjSHBOAFrAkybhhak1S8KRK9ER5wEqdUaBdEHM7QU9QGIPiKaHCCBNEcjzuc7eRwVchy7qrz/PM+67rWe30/Xce9732s9Re1c7drxKlA2TvruAI+K/47Xe9IHWE78RPpN+uhoKn7fKiR9CFQRv4rxpE8Al7DvSxjfXqdJn1t18QPqMelDY17xCybrJn1lphRvJLtOvJHsPenrv5V4GygbJH1rgNPEf8EbIOkzLCF+Cl0nfXq0Fr9yFZI+BKqIX8V40ieAS9j3JYxvr9+kj66o+Ll0mvS50U78sslaSd+XCcS7yN4T7yIHSPoh2ES8EJQNkr41wJPFf7UbJumTjIlvvvekD5CA+K2rkPQhUEX8KsaTPgFcwu7vYXx7XSd9eoXEz6LrpE+P1uJXTtZK+r5sLl5E9p6jNca7yAGSfRDWEi8EZYOkbw2whvjvdSMlfZhNxbc9RtLHSED81lVI+hCoIn4V40mfAJ+KX4N40iewlfj2ek/6APPiR9B70gdITPzuyVpJ35e1xYvI3vPwMuNd5ABJPQirixeCsm7SVwbYUPyXusGSPs/ZxTc8TNInSUb84lVI+hCoIn4V40mfAJ+KX4N40iewrfgCB0j6DAPiOx8m6ZMkLH4DZa2k78uq4kVk73l8pfEucoC0fxBWF68FZa2k7wuwlfivc0MmfaqziG91pKQPk5j43auQ9CFQRfwqxpM+AT4VvwbxpE9gW/EFDpP0STYS3/NISR8mhcRvo6yY9E15sngR2XtOWmy8ixwgLR+EFcVrQVkr6fsCTCP+69yoSR/sZOKbHC/pIyUmfvcqJH0IVBG/ivGkT4BPxa9BPOkTmEB8hyMlfZhziS92yKRPlXLid1JWTPqmHC/eQg6Q0zcc7yIHSJtnYRXxWlDWSvq+ABOL/y43dtLHu6H43kZN+mBJil+/CkkfAlXEr2I86RPgU/FrEE/6BCYQ3+GQSZ/qNOJrHDjps6Wu+OWUFZO+KZ8TbyEHyCp7jneRA2TuZ2EV8WZQVkz6pgAziv8it4SkD3kl8S2NnfTxEha/gRWSPgSqiF/FeNInwKfi1yCe9AlMIL7DsZM+3rXFN7aQpM+Z6uJXVFZM+qZ8Kt5CjpFVVh0vIsfI3E/EKeLloKyY4CUB2oj/CreopE/7UfGFLCTpcyYvfgkrJH0IVBG/ivGkT4BPxa9BhaQPYQLxHS4h6UM+TXw5S0v6wOlJ/LrKKgnekHgFOUZWX3i8iBwj8z0RJ4mXg7Ji2t8NICX++9sy47iXk9RZU0f8ElZI+hCoIn4V40mfAJ+KX4MKSR/CBOI7XFoc95KTPX06Fb+38sRELka8ghwj6649XkSOkTmeiJPE+0FZJS2vBFBE/Pc3OTfPL7HxNyVzHCvdid/DCkkfAlXEr2I86RPgb+I3IZ70CUwjvsYlx7EuKvMdN8OL3155Ylreh3gFOUY2W368iBwm0z4Uj4v3g7JK5r4GQGXxX95Exkv6saaK+FWskPQhUEX8KsaTPgH+Jn4T4kmfwDTiaxRZQtIPOiOIX2N5Yhpcg3gFOUa2OYJ4CzlMpnooHhHvB2WVzHT6QEfiv7aJDJb0M00h8dtYIelDoIr4VYwnfQL8TfwmxJM+gcnENykydtKPOEOJ32c5PbOefryCHCPbH0S8hRwm25/FI+IVoTwxkx860K/4r20iIyX9QFNI/DZWSPoQqCJ+FeNJnwB/E78J8aRPYErxZYoMnPTzzYDit1pOzxyHHq8gx8hUxxFvIYfJVCcSrwjliZnqrIGRxH9nExkj6UeZWuIXskLSh0AV8asYT/oE+Jv4TaiQ9CFMJr5JkVGTfrgZWfx6y+mZ8KzjFeQYmfBE7qlTK9Wp8ZZQTs/2RwwMLP4Lm0jvST/ElBO/kxWSPgSqiF/FeNInwN/Eb0KFpA9hSvFlioyX9GPNIsTvuZyS7c833j8Ok+3P4nHxFnKYbHwE8ZZQTs+EjxswsPgvbCL9Jv34UlH8WlZI+hCoIn4V40mfAH8TvwkVkj6EKcWXKTJe0o81CxK/7XJKNj7WeP84UiZ83B6IV5AjZd3lx1tCOT1zPHHAwOK/rYn0mPSDS1Hxm1kh6UOgivhVjCd9AvxN/CZUSPoQJhbfp8hIST/QLFH82sspWfc04+XjSJnjcTsSryAHy4prjxeFckrme9yAgcV/TxPpLumnlrril7NC0odAFfGrGE/6BPhM/DLEkz6BicX3KTJM0k8zixa//3JSVj/EePk4UuZ71o7E+8fBcvq240WhnJK5nzVgbPHf00Q6Svp5pbT4/ayQ9CFQRfwqxpM+AT4TvwzxpE9gevGVigyQ9HMMn4o/CHJSnnh28fJxpDR41u6pU1vVqfGuUE5KmwcNGF78lzSRXpJ+WCktfj8rJH0IVBG/ivGkT4DPxC9DhaQPYXrxlYp0nfQTDJ8TfyLkpJx0ZPHycaS0fNbi/eNgeWS98a5QTkrLpwxYgvhvaCL1k35MqS5+RSskfQhUEb+K8aRPgM/EL0OFpA9hevGVinSd9BMMx4g/F3JsHj+pePk4Uto/aPH+cbA8WGy8LpRj0/4RAxYi/huaSOWkH1A6EL+lFZI+BKqIX8V40ifAZ+KXoULShzCL+FZFOk362YXTxB8QOTZHpxNvHgdL6imL94+DJV4XyrFJPV/AcsR/PROpmfSjSR/iF7VC0odAFfGrGE/6BPhM/DJUSPoQ5hJfrEh3ST+1sJL4kyKPJ948DpbsIxbvH4fJj3/xq1985b/He0N5ONmHC1iU+K9nItWSfijpRvyuVkj6EKgifhXjSZ8An4lfhgpJH8KM4rsV6Sjp5xXWE39k5EF2b9554dnn37/9eryCHCPpZ+tT8Ray9/zs47+8ffPON5958X5+vP/Knw7yHaKknypgieK/pInUSfpxpCfx61oh6UOgivhVjCd9AnxO/D5USPoQ5hJfrEgvST+ssKH4syO71289tbP7vzy9cz+vv/jih2+/Ge8iu076kfpMvI7sNz/+xa9uX7x2VKQe5QcXXv7jYb5MXGzSDxOwaPFf1UQqJP0g0pn4ja2Q9CFQRfwqxpM+AT4nfh8qJH0IM4rvVqR+0o8pbCv+EC02u1e+ftSiPsgzu3s/f+NmvJHsNOkn6VHxUrK7PPzPUR/JW3sv/UGdqkUFFin+C5tINulHkP7EL22FpA+BKuJXMZ70CfA58ftQIelDmFd8vSKVk35AYTLxp2lp+fJzLz5SpD7IjUtf8Q9Uey9Sj8TbyY7y+D9HfTy/uXg9Xi8uJ+mnB+Az8V/bRFJJP3x0KX5vKyR9CFQRv4rxpE+Az4nfhwpJH8Ls4hsWqZn0owkTiz9TC8nut+7uXLx0UpF6lC/unPunm1+LF5S9JP3onCbeUdbPKf8c9fF8cHgtXjIOn/RDA3CM+O9vIu2TfuzoVfzqVkj6EKgifhXjSZ8AnxO/D0WSPod5xdcrUjDp5xLmEn+4xs4zb3zv6b3D04vUB3n52ef9A9Wui9Qj8bKycv75w/944j9HfSTvHVz900G+cBwy6WcF4DTx3+JEWib9wNGx+O2tkPQhUEX8KsaTPgE+J34fiiR9DrOLb1ikVNJPJMwu/pQNmd2bd57a2V2xSPUPVMcoUo/EK8uCee/Pf/3+m3+/Vov6ID+48LI6VYsKLFD8dzmRBkk/Z3QvfocrJH0IVBG/ivGkT4DPid+HIkmfQwvxJYsUSfpZhHbij9tI2b3y9XWLVP9AdYwi9Ui8uyyVDf456iN5a++lPxzmK8gBkn4yANYT/41OZNaknzBGEL/GFZI+BKqIX8V40ifAo+JXokLSh9BIfM8i8aSfQgiIP3cD5OxXr23WovoHqmMUqUfiDWaFvPfnv/7DP767TYv6cJ36m4vX411k10k/EwAbiv9qJzJH0g8Wg4jf5ApJHwJVxK9iPOkT4FHxK1Ek6XNoJL5nkWDSzx/ExJ++frP7rbtffu7FLYtU/0B1gCL1SLzKzObd33/87Rdem6RIfZAPDq/FG8kek34UALYV/x1PZNqkHynGEb/MFZI+BKqIX8V40ifAo+JXokjS59BOfNUikaSfPMiLP4bdZfdbd5/eO5yqSPUPVHsvUo/EC81UfvTTf5m2RX2Q9w6u+vpULSqwQPHf9ESmSvphYijx+1wh6UOgivhVjCd9AjwqfiWKJH0OTcW3LdIy6QcOaok/kr1k9+adjb8g1T9QHbVIPRKvNRvnZx//5e2bd2YqUo/ygwsv/9HXpypSgeWJ/74nsn3SjxGjiV/pCkkfAlXEr2I86RPgUfErUSTpc2gtvnCRNkk/alBU/Nksnt0rX5+vSF3yP1BNX/zJxPvNZvnnD//j9sVrsxapD74+9T8PfX2qFhVYnPhvfSIbJ/30MKb4xa6Q9CFQRfwqxpM+AR4VvxJ1kj6K1uILF5k76YcMSos/oWXz5UuvzNqiPpwbl76ynH+gmr7yE4u3nHPnvT//9e73ftKgRX04v7moTtWiAksU//VPZN2kHxqGFb/bFZI+BKqIX8V40ifAMeK3okjS5xAQ37nIfEk/XtCH+KNaKrvfurtz8VKzIvUoz+zu/fyNm/GiU5G6gXjdOV/e/f3H337htcZF6lHeO7gary/rJH3HAdqJ/x4osnrSjwsji1/vCkkfAlXEr2I86RPgGPFbUSTpc8iIr11k8qSfKuhP/LGtkN2bd57eO2xcpD7IWy9fjtedWtQNxEvPOfLjX/wq0qI+yA8uvPyng3yPqUUFaCz+26DIE5N+Shhf/JJXSPoQqCJ+FeNJnwDHiN+KIkmfQ0x88yITJv08Qa/iD282u9dvzf0FqU/M4fn992+/Hq8+FanrilefE+a9P//17Zt3skXqUd7ae+kPh/lCU4sK0F7810KRk5J+OFiE+D2vkPQhUEX8KsaTPgGOEb8VdZI+ipj45kUmSfpJgu7Fn+JIdi9/LduiPsgXd85999rVeAGqSF1XvAOdJD/97e9uX7wWb1EfzgK/PjV9lwFKiP9yKPJ40o8FSxG/6hWSPgSqiF/FeNInwDHit6JO0kcRFt+/yMZJPz0wlPgT3Sy737r75edejFeoj+TlZ5//8O03402oInUt8SZ0y/zop/8Sb06PzXK+PjV9hQFqif+WKPIg6aeBZYlf+ApJHwJVxK9iPOkT4BjxW1En6aPIix+ByAZJPzcwoPhz3SDPvPG94BekPvEfqP78jZvxPlSRupZ4H7pZfvbxX+5cvRXvTE/J8F+fmr65AHXFf10UST8ELE78zldI+hCoIn4V40mfAMeLX4w6SR9FXvwIRFZP+nGBwcWf8flS4QtSn5jXX3wx3ooqUtcSL0bXzT9/+B/V/q7vsRn461PTdxaguvgvjbLYpO8+CxW/+RWSPgSqiF/FeNInwPHiF6NO0kdRQvwURFZJ+kGBpYg/7JPn7FevxXvSFXN4fv9X37kVr0cVqauL16Or5x/+8d14SbpW/u3wWrz61KICRMR/e5SlJX3lWa745a+Q9CFQRfwqxpM+AY4Xvxh1kj6KQuJnIXJS0g8HLE78qZ8qu9+6u3PxUrwhXStf3Dn3Tze/Fi9JFamri5ekT8x7f/5r8b/re1LeO7g6wN/7Td9QgF7Ff5OUJSR9zVm6+CNQIelDoIr4VYwnfQIcL34xSiV9GoXEz0LkkaSfCVi0+E+ALbN7807ZL0h9Ym5c+sqHb78Zb0sVqSuKt6Wn5Ke//V0Xf9f3pPzgwstd/73f9N0E6Fv890kZO+kLDn7KeRL5TPwqxpM+AY4Xvxilkj6NcuInInKU9KMAfCr+o2Cz7F75ev0vSD09h+f337/9erwzVaSuKN6ZHpsf/fRf4mXo9nlr76XfHl6Pt6JaVICU+C+WMl7Slxr+Jv4sVEj6EKgifhXjSZ8Ax4tfjGpJH0g58RORhSf9BACfE/+ZsG6+fOmVeBM6Sb64c+6HN67Hm1NF6orizenDee/Pf3375p14DTph3j+8Gq9HFakAQfHfMGWMpC8yfE78iaiQ9CFQRfwqxpM+AU4Uvxulkj6NouLnIgtM+tYDJ4r/fFglu9+62+/f9T0ppf7eb/oaVhevUI/y7u8//vYLr8Xbz8nz4/1X6n99avoOAows/qumdJ30/YVjxJ+LCkkfAlXEr2I86RPgRPG7USrp06grfjSynKQvO/Bk8R8Up2f3a2/2/nd9T0qRv/ebvoB9iBep73zw63jpOV/e2nvpPwv/vd/07QNYhPjvnNJj0tcWjhd/NCokfQhUEb+K8aRPgBPF70a1pA+ktPjpyNhJX3BgPfEfGsdm9/LX4o3nrIn/vd/0vetJ8O/63v3eT+J1Z4N8cHgtXptqUQGy4r98Si9JX1U4TfwBqZD0IVBF/CrGkz4BThS/G9WSPpAOxM9Ixkv6UgMbiv/0eDi737q7c/FSvOtsk9dffFGR2ovGRerPPv7Lnau34i1ns5T6e7/puwawXPFfRKVy0tcTniz+mFRI+hCoIn4V40mfACeK342CSZ9JB+JnJMMkfZeBCcR/ktzP7s07Xzh3Pl5xtszh+f1ffeeWIrULzYrUn/72d7cvXov3m43z9vmX/3CoRQWgxC+lUirpKwmrij8sFZI+BKqIX8V40ifAieJ3o2DSZ9KN+ElJ10nfX2BK2Z8nw/9d35PyxZ1zP3/jpiK1Cw2K1B/99F/itWYw/5b7e7/pywXA58Q/6kqFpK8hrCf+yFRI+hCoIn4V40mfAKeJX4+CSZ9JT+KHJd0lfWeBubT/ebKov+t7Ut56+bIitQvztajv/fmv33/z7+NtZjz/4+BK47/3m75TAJwo/rFXUklfPdhE/MGpkPQhUEX8KsaTPgFOE78eBZM+k/7Ej0zqJ31JgUaa/VRZ4N/1PSkvP/v8h2+/qUitb44i9d3ff7yoL0g9PW+ff/k/D69rUQE4Ev8ULM2SvmuwlfgTVCHpQ6CK+FWMJ30CnCZ+PWomfSy9ih+cFEz6VgKtNfjBsti/63tSDs/vv3/7dS1qfb4gtUE+mPnv/aYvEQBri38olvmSvlwwgfhzVCHpQ6CK+FWMJ30CnCZ+PWomfSx9ix+fVEj6GgJhM/1s8Xd9T8oXd879082vKVLrm6pI/fEvfhVvLcvmx/uvzPT3ftPXB4DNxT8jy7RJXyiYTPxpqpD0IVBF/CrGkz4BThO/HmWTPpnuxU9QUklfPaCKyX+8+Lu+T8wkX5+avjjj2/4LUu9+7yfxvrJ43tp7adq/95u+NQBMJv6RWbZJ+vrA9OKPVYWkD4Eq4lcxnvQJ8ATxG1Iz6WMZR/wopU3SFw0oaqofMv6u74rZ8utT0/dlKbYpUn1B6up5//CqIhWAk8Q/RMvqSV8WmFH8+aqQ9CFQRfwqxpM+AZ4gfkPKJn0yQ4mfpsyU9M0COrDlzxl/13fdbPz1qembsjjrFqnv/v5jX5C6bn5w4eU/HmpRAThR/DO1nJL07YAW4g9ahaQPgSriVzGe9AnwBPEbUjnpwxlQ/ExlkqTvEdCfzX7a7H7tzad2duPtZHfZ4OtT0xdkoVYvUt/54NeK1M3y1t5Lv7m4yd/7Td8OAJqKf8qWB0nfBWgq/sRVSPoQqCJ+FeNJnwBPEL8hlZM+nJHFD1fWTfrKAN1b98fO2a9ei5eSXee7164qUutbpUj9h398N95I9p73Dq7+6UCLCsBK4p++l5n0sUNG/NGrkPQhUEX8KsaTPgGeIH5DKid9OEsRP2g5JenbAQxlxZ88z7zxvaf3DuNd5AC5cekrT/z61PSl4LQ69b0///Xu934SLyLHyNvnX/7DCn/vN30dACgk/nl8CUkfMgAAdCb+O7wcJX0RgMGd/iNo98rX/V3fCXN4fv+kOjV9EfjMSUXqnau34hXkYPng8JoWFYANxD+nj5T0YQIAwCDiv9svLekDB5bl2B9Eu9+6++XnXoyXj+Plizvn3r/9uiK1uEeK1Hd//7EvSJ0pP95/5Y+P/QPV9PkD0JP45/cekz40AAAYXPx3/iGTPlWAz/1437155wvnzsdrx1HzxZ1zP7xxXZFa31GR+s4Hv1akzpq39l76zcXrWlQAthf/aF826ZMBAIBFi38i6DTpcwM4xtEPqLNfvRZvG5eQ71y9qkit7/9673/Gq8Yl5NsvvPbBf/zn//x//7/0gQMwmvhnf//NAQAAeFz8I0PNpI8F4MmO/pnkWy9fjveMw+fpvcPdb931vw7FHf1Lyd8eXn9r76V42zhwvv/m37/3578++IvK6WMHYHDx/zjgPzgAAACPi3+s8CkG4Ike/vrO92+/fnh+P144jpovP/fiUZHqfzjKeuTrO/9w+Orb51+Od47j5fbFa+988OtHvp1WowpAe/H/jOA/OAAAAMeKfwbx+QXg3udb1Af58O03X3/xxXjtOF6+fOkV/7NS3CNF6lH+dPDqDy6oU6fMnau3fvbxX44tUtWpAFTjPzUAAABl6UkBZnVskfog/3Tza1/cORfvH4fJ7pWv+1+f4o4tUh/kvYOr8QpyjPzop/9ySouqTgUAAAAAALJOb1Ef/geqlw7/Lt5C9p6ndnZ3b97x/8xT3OlF6lH+7fBavIjsOrcvXvvpb3+3SpGqUQUAAAAAACJWLFIf5LvXrsbryH7z9N7hM298z99GKG6VIvUovz28/tbeS/FSssd8/82/f+/Pf12rSFWnAgAAAAAALa1bpB7l/duvP7O7F+8lu8uXn3tx91t3/an54lYvUo/yh0Nfn7p2fvyLX23QompUAQAAAACANjZrUR/+e783Ln0l3k52lLNfvebLu+tbt0g9yp8OXv3x/ivxgrKLfPuF1979/cdbFqnqVAAAAAAAYD5bFqkP8sMb17+4cy5eUxbPp1+QeuXrGxep6tQ2NmtRH877h1fjTWXx3P3eTzb7u74aVQAAAAAAoIGpWtQH+dV3bh2e34/3lWXzhXPnd2/e2bJIVafObfsi9Si/uejrU4/P7YvX3vng19O2qOpUAAAAAABgQpMXqQ/y+osvxlvLgvni/rPrfkGqOrW9qYrUB1+f+vZ5X5/6udy5emuqv+urUQUAAAAAACY3X4v6IP9082v+3u/D+fKlVyZsUdWpM5m2SPX1qY9njr/rq04FAAAAAACm0qBI9fd+H84kX5CqTm1gjiL1QT44vBbvMbOZ9e/6alQBAAAAAIAtNWtR/b3fB5nwC1LVqbOatUg9ym8Pl/v1qW3+rq86FQAAAAAA2EykSF343/ud/AtS1akzaVCkHuWPh6/+4MLivj615d/11agCAAAAAABrCbaoS/57v2e/eq1Ni6pR3VKzIvUofzp49b2Dq/F+s1l+/ItfxVtUdSoAAAAAAHCseIv6cBby934//YLU67faF6nq1A00LlIf5DcXr8dbzrnz7RdeC/5dX40qAAAAAABwinhzemyG/3u/T+8dNviCVHXqJFJF6lH+cPjq2+eH/Xu/b9+8U+Hv+mpUAQAAAACAR8QL09Mz8N/7/fJzLzb7glR16payReqDv/f7Pw6uxHvPyfOjn/5LvCpVpwIAAAAAAI+LV6Ur5salr8Srz2mze+Xr8QpVnbqKeIX6SP7t8Fq8/Zwqty9e++lvfxcvSTWqAAAAAADAI+L16Lr54Y3rY/y93y+cOx//u77q1BXFm9NjM8bf+71z9dbPPv5LvBtVpwIAAAAAAI+IF6Ob5f3brz+zuxcvQ7fJzsVLRf6urzr1ieKd6Snp/e/93v3eT4p/QapGFQAAAAAAFijeh26ZD99+8+Vnn49Xoptl9/LX4m2pOnVF8bZ0lXT6937f+eDX8SZUnQoAAAAAADwi3oROlbdevhwvRtdK2b/rq049VrwkXT19/b3f2xevvfv7j+MdqEYVAAAAAAB4WLz9nDw/f+NmL1+fWvzv+qpTHxGvR9fNnw5efe/garwnfWLuXL3V+9/11agCAAAAAMBg4qXnfPnVd24dnt+PV6Wnp4u/66tOfSBejG6c31y8/tbeS/HC9KTc/d5P4nWnOhUAAAAAAHhYvO6cOx++/eaNS1+JF6bHpq+/66tOvddzkXqUPx6++oMLFf/e7zBfkKpRBQAAAACAMcRbzpb57rWr8eb0kfT4d30XXqfGm9Cp8sHhtXh5+iBDfkGqRhUAAAAAAPoVbzYjef/260W+PvWpnd1+/67vYuvUeAE6bf7z8Prb5/P/QHXsL0hVpwIAAAAAQHfinWYwH779ZvzrU5/eO+z97/ousE6NV59z5E8Hr/6PgyvBInUJX5CqUQUAAAAAgF7Eq8wKyX596pcvvTLG3/VdVJ0aLz1nzW8Pr7+191L7InVRX5CqUQUAAAAAgMriDWa1tP/61E//ru/1W/G6U526rnjX2SB/PHz1x/uvNGtRb1+89tPf/i7eXRZM+rIDAAAAAMASxYvLmvn5GzebfX3qF/efHfifow5cp8Zbzpb5t8NrDYrUO1dv/ezjv8Rby8pJ33oAAAAAAFiKeF9ZPL/6zq0GX5+6e/lr8X5TnbqBeLnZPn84fPUHF16er0j9/pt//96f/xovK7tI+voDAAAAAMDI4jVlL/nw7Tdffvb5mVrUp/cOd2/eiTeb6tQNxGvNYD6Y5x+o/sM/vhsvKLtL+jkAAAAAAIABxQvK7vLWy5cnL1K/fOmV5fxd38Hq1HibGc/k/0D1nQ9+He8lO036aQAAAAAAgHHES8l+88Mb16f6+tSndnZ3v/ZmvMqskPQDsYl4j1knk/wD1dsXr737+4/jjWTvST8WAAAAAADQt3gXOUDev/369nXqzsVLC//nqF3XqfH6slq2/Aeqd67e+tnHf4kXkcMk/XwAAAAAAEB/4hXkSPnw7TcPz+9v/s9Rr9+Kd5cFk35EVhUvLstms3+g+v03//69P/813j+Ol/SDAgAAAAAAfYg3j0Pmw7ffvHHpK+sWqV/cf/aZN74Xby3LJv2sPFm8ryyedf+B6t3v/STeOQ6c9OMCAAAAAADVxTvHsfPWy5fX+Oeol78WLyvrJ/3EnCbeVPaSFf+B6jsf/DreNi4h6ecGAAAAAAAqiveMC8kPb1x/4ten+ueoA9Sp8YKyr5z+D1RvX7z209/+Ll4yLirpBwgAAAAAAKqI14tLy/u3Xz+pTvXPUceoU+PVZKf5t8Nrb+299EiR+u0XXnv39x/Hu8VlJv0kAQAAAABAUrxVXGx+9Z1bh+f3HylSn9479M9Rx6hT46Vkv/nj4as/3n/lQZF65+qt9/7813iluPCknycAAAAAAGgtXibKh2+/eenw7x4UqWe/ei1eR/ae9FP1N/E6coD85uL1t/Zeuvu9nyhS6yT9YAEAAAAAQAvxDlEezo1LX/HtqCPVqfEWcpj83wevxttDeTzpJwwAAAAAAGYUrw7l8cT7x8ESfL7i/eNIOVppvDqUYxN8ygAAAAAAYA7xxlCOzdHpxPvHwRJ5xOLl40h5eLHx3lCOTeQpAwAAAACAycXrQjk2jxxTvH8cLI2fsnj5OFKO3XC8OpRj0/hBAwAAAACACcXrQjkpx55XvH8cLM0etHj5OFJOX3W8OpRj0+ZBAwAAAACAqcS7Qjkppx9cvH8cLA2etXj5OFJWWXi8N5STMvezBgAAAAAA24t3hXJKVjzEeAU5UmZ93OLl40hZa/Px3lBOykzPGgAAAAAAbCleFMopWfc04xXkSJnjcbunSA21qA+L94ZyUiZ80AAAAAAAYEvxolBOz2bHGq8gR8q0T9w9RWqBIvVIvDSUUzLJswYAAAAAABuLt4RyerY833gFOVImeeKOxPvHYTLVicRLQzk9Ux00AAAAAACsKN4SyumZ6qDjFeQwmepE4v3jMJnqRB6IN4ZyeiY/cQAAAAAAeFy8JZQnZtoTj7eQw2SS44hXkGNkkrN4XLwulCdmpqMHAAAAAIB4RShPzExHH28hh8mWBxGvIMfIJA/FKeJ1oTwxc98BAAAAAACWI94PyiqZ+xrEW8hhsvERxCvIMTLhQ3G6eF0oT0yzywAAAAAAwJDi/aCsmGZXIl5EjpENNh+vIMfI5E/E6eJdoaySxrcCAAAAAIABxMtBWTHt70a8iBwja+08XkEOkJkeh1XEu0JZJcEbAgAAAABAR+LloKye1CWJF5FjZMVtx1vIATLr47CieFcoqyR9TQAAAAAAqCveDMrqSV8WdWqjOjXeQg6QBo/D6uJdoayY9E0BAAAAAKCKeC0oayV9Xz4TLyLHyCkbjreQA6TZ47C6eEsoqyd9WQAAAAAASIrXgrJW0vflGPEicoCcst54Edl7mj0IG4i3hLJ60pcFAAAAAIDW4rWgrJv0lTlRvIscIMcuNl5E9p7GD8Jm4i2hrJ70ZQEAAAAAoIV4JyjrJn1lnizeRQ6QR1YaLyJ7T+RB2Fi8JZS1kr4vAAAAAABML14IygZJ35o1xLvIAfJgmfEisvcEH4RtxCtCWSvp+wIAAAAAwDTihaBslvTFWVu8ixwg9xSpSy1Sj8T7QVk36SsDAAAAAMDm4m2gbJb0xdlKvI7sOv/bt74f7yK7Tvr6TyPeD8oGSd8aAAAAAABWFa8CZeOk78404o1kp9m7dff6+f/1k4Pr8Uay06Qv/sTi5aBskPStAQAAAADgNPEqUDZO+u5MLN5L9pgLe8/v/LenLz+9p05VpD4QLwdls6QvDgAAAAAAn4n3gLJN0tdnLvFqsq8c/N3lnf/29FHu7D4bryb7Svqyzy7eDMpmSV8cAAAAAICli/eAsmXSN2he8YKylxxcvvmgSD3KO+cvxQvKXpK+5u3Em0HZOOm7AwAAAACwLPEGULZP+hI1Eq8p62f/tTuPFKlH+eX+i/Gasn7SFzwgXgvKxknfHQAAAACA8cUbQNk+6UvUWrysrJy9W3fPntk5tku9cGbno8Mr8bKybNL3OixeC8o2SV8fAAAAAIDRxOs/mSTpexQTryxrZu/W3We+dOHYIvVBnfrJwfV4a1kw6RtdRbwTlG2Svj4AAAAAACOI138ySdL3KC9eXBbM/v4LpxSpR7n89J46VZF6ungnKFsmfYMAAAAAAPoT7/5kqqSvUiHx7rJUDl648cQi9Sh3dp+N15d1kr7FdcULQdky6RsEAAAAANCBePEn0yZ9ocqJN5hFcnDljRWL1KO8c/5SvMSskPT97UC8EJTtk75EAAAAAAAVxVs/mTbpC1VXvMeMZ/+1O2fP7KzVpd7Pvx5cjleZitRexNtAmSTpewQAAAAAkBev/GTypO9UB+JtZjB7t+4+86UL6xap93PhzM5Hh1fihaYitSPxKlAmSfoeAQAAAAAExPs+mSPpa9WTeKeZyoW95zcoUo/y3FPnPjm4Hq81Fal9iVeBMlXSVwkAAAAAYHbxsk9mSvpmdSlea7bPwfNXNy5Sj3JjZz/ebCpSexTvAWXCpG8TAAAAAMDE4k2fzJf05epbvNxsmf1Xb29ZpB7l7t7z8X5TkdqpeAko0yZ9oQAAAAAAthVv+mS+pC/XIOIVZ5tc+MZ3z57ZmaRLvZ9f7r8YbzkVqf2KN4AyedJ3CgAAAABgPfGaT2ZN+n6NJl50zp29W3ef+dKFqYrU+7lwZuejwyvxrlOR2rV4/SdzJH2tAAAAAABOE+/4ZO6kr9iw4nXnrNnff2HCIvUozz117pOD6/HGU5E6gHj9J3Mkfa0AAAAAAD4TL/ikQdK3bHzxxnOmHFy+OXmRepQbO/vx0lOROox49yczJX2zAAAAAIDlird70ibpi7Yg8d5z8uy/dmemIvUo75y/FK8+FakjiRd/Ml/SlwsAAAAAWIR4ryctk75uSxRvPyfM3q27576wO2uXej//enA5XoAqUgcTb/1k1qTvFwAAAAAwoHipJ42TvnGLFu9Ap8qFvefnLlLv58KZnY8Or8RrUEXqkOKtn8ya9P0CAAAAALoXb/SkfdKXjk/Fa9Dtc/D81QZF6lEuP733ycH1eBmqSB1VvPKTuZO+YgAAAABAZ+J1nkSSvnd8TrwM3Sb7r95uVqQe5c7us/E+VJE6tnjfJw2SvmUAAAAAQGnxLk9SSV89jhevRDfL3q27Z8/sNO5S7+fnF16It6KK1OHFyz5pk/RFAwAAAACqiLd4Ekz69vFk8WJ0ky717MX2RepRevzi1PQVY0Pxsk+aJX3XAAAAAICAeIsn2aQvIGuId6NrpeXXpD6e554619cXp6YvF9uK13zSMunrBgAAAADMK97fSYWkryGbiDekK6b916Q+nm+ePYw3pIrUBYrXfNIy6esGAAAAAEwpXt5JkaRvIluJ96RPTOprUh/PO+cvxXtSReoyxTs+aZ/0pQMAAAAANhGv7aRU0veRacTb0id0qbmvSX08/37wSrwtVaQuVrzdk0jS9w4CPCkAAABAX+KFnVRL+koyvXhhelIOXrgR708fzoUzO2W/ODV9iWgn3u5JKumrB7PwvAAAAACdihd2UjDpW8mM4rXp49l/7U68PH08N3b247WpIpV7GtVlJ337YFseGQAAAKBT8apOyiZ9N2khXp4+nL1bd899YTfenB6bal+cmr44hMV7PckmfQFhDZ4XgJPEf0L2lfRx0RMXD4rwMAJjiFd1UjPpi0lr8Qr1s3+Uuv9CvDM9JR8dXolXqIpUHhb/L1qSTfoCwmniD4hHBqgv/oOxr6SPi564eFCEhxEYQ7yzk2pJX0li4i3q/RxcvhlvS0/Pc0+dq/DFqenLQkXx/7QlkaTvHRwv/mh4cIBexH8k9pX0cdETFw+K8DACY4g3d1In6ctIXrZIvfCN7549sxNvS5+Yb549VKRSWfy/cUnLpK8bPCr+UHh8gL7Efxj2lfRx0RMXD4rwMAJjiPd3Ek/6DlJLsEvdO3sx3pOumJ9feEGRSnHx/9IlDZK+ZfA58SfCcwT0KP5jsK+kj4ueuHhQhIcRGEO8yJNg0rePojJ/3ff5q/GGdK1Evjg1fTXoUvw/ecl8SV8u+Jv4s+BpAvoV/wHYV9LHRU9cPCjCwwgMI97oSeOkbxwdaFyk7r92J96NrpvLT+81/uLU9KWge/H/9iWTJ32nYKgfLOldAgsV/+nXV9LHRU9cPCjCwwgMI17tSbOk7xo9afenfW/dPfeF3Xg3ukHu7D6rSKU78f8CJhMmfZtYuvgj4LECBhD/uddX0sdFT1w8KMLDCAwjXvDJ3ElfMXrV6K/7/t3leCu6cf714LIilU7F/1OYbJn0DWLp4o+AhwsYQ/yHXl9JHxc9cfGgCA8jMIx40yfzJX256FuLIvXKG/E+dJtcOLPzXwfXFKl0Lf7fxGSzpC8OyxW//J4vYCTxn3h9JX1c9MTFgyI8jMBI4pWfTJv0hWIcc/9137NnduJ96Ja5sbOvS2UM8f84JmslfV9YqPjN94gBg4n/uOsr6eOiJy4eFOFhBEYS7/5kkqTvEWOar0u9sPd8vAmdJO+cv6RIZSTx/0omqyR9TVii+LX3oAHjif+g6yvp46InLh4U4WEERhIvAWXLpG8Qg/PXfZ+Yjw6vKFIZTPy/lckpSd8Olih+7T1uwJDiP+X6Svq46ImLB0V4GIGRxKtA2Szpi8OCTPwvUr/x3QH+uu/Dee6pc58cXFekMqT4fzSTx5O+FCxO/M574oBRxX/E9ZX0cdETFw+K8DACg4nXgrJ60peFhZrym1LPXoy3n5Pn7t7zilTGFv+vZ/Ig6bvAssQvfIWkDwEYVvznW19JHxc9cfGgCA8jMJh4PyhPTPqOwDR16sELN+K950z514PLilSWIP6f0SR9BViQ+G2vk/RRAGOK/3DrK+njoicuHhThYQQGEy8K5ZSkbwd8xl/3PSUXzuxs+Zd+08cL64n/97RlJn3sLEj8tpdK+jSAMcV/uPWV9HHRExcPivAwAuOJN4bySNI3Ao7nr/uekm+ePVSkskDx/7C2qKRPm6WIX/WCSZ8JMKD4T7a+kj4ueuLiQREeRmA88epQjpK+CPBk/rrvKfn5hRcUqSxZ/D+yDZ/0CbMI8XteNumTAUYT/7HWV9LHRU9cPCjCwwiMJ94hLjzp84f1+Ou+J+XCmZ3/OrimSIX4f20bMulTZSniV71y0ocDDCX+M62vpI+Lnrh4UISHERhPvExcZtLHDhvy131PyY2dfV0qPBD/z24jJX2YLEL8ntdP+oiAccR/oPWV9HHRExcPivAwAkOKF4vLSfqoYQL+uu8pWf0v/aaPEdqJ//e3AZI+Q8bX0fXuaFSAk8R/tegr6eOiJy4eFOFhBIYUbxiHT/qEYWL+uu9JuXBm56PDK4pUOEn8v8X1mPShsQidXuxOxwaI/3bRV9LHRU9cPCjCwwgMKV41Dpn0qcK8ntyl7j0fbzYjufz0niIVnij+H+U6SvqsGF/vV7r3+YEFiv920VfSx0VPXDwowsMIjCrePA6T9ElCO6f9dd8rb8Q7zWDeOX9JkQoriv/XufpJHxGDG+Yyj/EuACbnJyGL4p5DER5GYFTxCrL3pA8QMo4tUvdu3V3gX/d9JMf+pd/0cUF1zaqQvpI+FgY30jX2VAI8zo9BFsU9hyI8jMCo4l1kp0mfG+T5677H5vG/9Js+KOhJs0KkftJHweCGvMbjvSOAbfgxyKK451CEhxEYWLyX7CXpg4JyHi5S91+9He8xi+Thv/SbPiLoWINapHLS62dwo15gzybAA34GsijuORThYQQGFu8oiyd9PlDag7/ue+4Lu/ESs04e/KXf9PnACBqUIwWT3jojG/v2jv3uAFbnZyCL4p5DER5GYGDxsrJg0mcC3TjqUg/+7nK8viyV/37uoiIV5jB3S1Ik6TUzuOFvrycU4J4ulYVxz6EIDyMwtnh3WSHpQ4Be/R///faFMzvx+rJU9l+7c+6tH6VPBkY2d1eSTXq7jGwhV3chbxPgFH4AsijuORThYQTGFu8x9afQr/9n/9WPDq+oUx/k4PLNB18jmz4cWIRZS5NI0htlZMu5ust5p+sa/g1uw3K2Z4d1+On3iCW8x+31u6U697zTBaZY1wP9Pn2PqPMwzm2MdzEfy2FU8U5ThQqdOvpW0Pv55f6L8RKzQg6ev/qgSNWlQnsTfnBLJb1CRra0q7uoN3uKpb3f1S3zPszBDmta+E+/Bb7lDYx0N7LvpffttTTAZZvESE/fI0Z9a6O+rwnZDMsR7zf1p9CdB0XqUX5+4YV4lZnN/v4LDxep6lQImvCTTuOkN8fIlnZvF/6oLvNdP9HCb8W07LC4ZR6QZ3wVs24ptajI/GOsro1hbto25n70iuxkpLezkCPbkrWwQPGuU38K3XmkS72fO7vPxgvNVJ750oW9W3cf71LVqRDX4BOQTw10YYH3ttpbbvPqflIdq8FagvtpOfmQCxzSoo5m7Ad8Ki231H5XjcfufXUj7arxTdtMgyXU2ckA76L9eXVxjR+X3cncrzLAKfc+f2Xx3lN5Cn15vEg9yo2d/Xit2T7nvrB7UpGqS4VS5v5t36+mlLXYe1vqXc/96n5kPa7xTlL7aTPzwAsc0kIOJfJ011zFKVJbarmuZtOOsbfxdtXmmq2r8QaK7KTr+Zd5ZBuosJMGO+/9fLsevr54E6o/hV6cVKTezycH1y8/vRcvN1vm7Jmd/dfunFSkqlOhrJa///vtlLjFXtpSD+ysL+2n1uMiO4msqMG0Yy9wSMMfR+pOll3IseIrarauBnOOtLQhdzX3HVtLagMV1tLp5PFjqnmTH1dnIQ223fvJdj18ffFWVH8KvTilS72fjw6vXDizE684m+XgyhunF6nqVKgv8onAb6e0tORLW+e9z/TSfnY9Lr6TxvuZddQlLHBIA59F/E7WXMsj4mtpvKu5hxxsaaPuar6NrS7+9uNr6W7m+NHEj2x1pbbRZs/9nukSLmRWvCFVnkIXTi9SH9Sp8YqzUZH6wo1VilRdKnSkzqcDmMrCL22dtz/HS6d+ZJW9DPFVRFY035DxvVW7YB0Z9SDit7HsZh6IbyOyrlnHi29s8qWNvavJ17W6+BuvsJmOpo0fR4UlrCi+h8dX0WbD/R5op2P3Jd6ZKk+hvlW61Pv55f6L8aJz7uzvv7BikapOhU4FPxrAhFzaIhuY/HVb/ozq4krEN5Daz0wTxjdW6nZ1Z7xTiF/C4vs5El9CalfzzRbf1RxLm2Ok+H7mW1fLlQ6wmV5GjR9EkT30tas5pmr83uc8qBknbzZ2X5SnwOlWLFKPcnfv+XjdOV+e+dKFtYpUdSr0ruXnApiWG1vksZ32def+odTXxYi/8ex+5hgvvqtm2xvVYEcQv371V9TRluZY10xTxVc008Ymnye+mVnX1WyfYyxnaUP2fl7d7WrywRpvYM6zGmHsvihPgVOsVaQe5ZtnD+Ol5xw594XdvVt3damwWPN9IoDJTX5de7y0RZYw4evO9I46vRvxtxxf0eSDxVfUbHUDG2n/8YtXf0vxdx1f1xwjxZdTf12VdzXhutosc5j9FJ8wvvZqC+lxXdPO1n4JMx/a9DM3GLhfylPgJBt0qZ8cXL/89F68+pw2Z8/s7L92Z4MiVZ0KQ/LbKcXN8QG2x0tbYQkznUXBzHGCg2215hK6WOm0qxvYGMuP37cuFhV/vxXWNfk88bV0sa7iu5pqXQ02OdJ+Ko8XX3jBnXS6rgnHa7+H+Y9Ol9qO5hQ41gZF6lH+6+DahTM78QJ0whxcvrlxkapLheH51ZRqZvr02p059rDuKmaaoWZmOseRVlpwD11sdcK9jW2A5ccvWxe7ir/TIuuadpj4QnpZV/1dTbKuudc42H7KzhZfdc21DL+uSfbZ3Qn2NW3XNKfAsTbuUu/no8Mr8QJ0siL1+avbFKnqVFgUv51SQeojZzXBT99zz1A2Mx3lSPustopetjrV3sbW++bj16yLdcXfY511xefvaFfWNYn4+yq7opqDxZdc+ciGX9f2y+zrBDsadQxqU+AR2xSpR/nl/ovxGnT7XNh7fvsiVZ0Ki+W3U9oLfuQsKL6KmY6jbGY6x5GWaRvZvY2t683H71gXG4u/u1Lrig/f0a6sa3vxd1R5RQWniq+3+JEtZGNbbnKxxzfrqGPQnAIP275IPcqd3WfjZeg2eeZLF/Zu3dWlApPwqyltZD9yVhNfxUzHUTkdHWXXK4q/i073Nrau1x6/YF0sLf7WSu0qPnxHu7Iu25t1S2OPVCdTLWch69p+k70c37SjzjonwJCm6lLv58bOfrwS3Sxnz+xc+MZ3pypS1akAtBH8vFlQfBtzDFA/XZxj7yuKv4Uelza8ftcev11dLC3+vqqtKz55R7uyLqubdUsDz1Mtk+xnOevaco1dHN/kc840JMCoJixS7+eTg+vPPXUuXoxukP1Xb09bpKpTAWgg+HmzoOwH8PkGqJ8uzrHrFcXn73Fpw+t05/F71cXe4u+o4LriY/eyKOuyt462VGqYmtl+RUvb2DY7LH52HQ0JMKppu9T7+ejwyoUzO/FudK0cvHBjjiJVlwrA3LKfNwsa6QN4Ryl+ghViLe2XNrwedx6/VF1c1/h7qbmr+Ni9LMq67G3uRdUZJr7MXo5saRvbeIFlD26mIWeaEGBUkxepR/nl/ovxenSNf5G6/8JMRao6FYC5ZT9vFjTSB/BtRg2+dLXjq7OrXjZTJ1tfqMH1uPP2l6fH69ps5ocnj7xo5bUUSS+3qEg2XldkacHDqrOoOpNUPrItt5Qa+3+G/vdlmwWWPbuZJpx8PICBzVSkHuWd85fiJekqeeZLF/Zu3dWlAtCj+OfNggb7AD7VbHUmSQ1ZYYyyy1l37OBL87Dudl7htlSYITjh6nMWGaPxSCvOmX1165pjXW3m7G6SBhMWGWP4I6s2Z4NJNt5ewYPraDyAgc3apd7PN88exqvS03P2zM6Fb3x31iJVnQrAfOIfNgvK7mSOV5/wpAqO1GC8AYaZb54t56wzyTL1tfBqN6TUMA0WtfF4deaZb5JtZqsziXVts665ZxtmpMkHqzBDF+e15ZHVHG/ukTabLb6WZuNNPhvAwOYuUu/nk4Prl5/eixemp2T/1dsNilR1KgAziX/YLCi7kzleffIzqjlYtXmqTVX5ahUcaSH6WnjBaRcy0vaDFRlpvuVsv6hq81jXACNVHqzCGDU3Y7BSg208Yan9dDEYwPAadKn389HhlQtnduKd6bE5eOFGsyJVlwrAHCp82Kwmu5M5Xn2OAyo4Xp1Jag5W/2rVnGpsHS288pylZqv8HMUHm2k5U22p2lTLXNfGg5Uapv548RmqLaSLCQuONPdsGw9ZcEWTDzbhVADDa1OkHuVfDy7Ha9PHc2Hv+ZZFqjoVgDlU+LBZTXYnc7x6/Q/j209YZIzK43VxtcoONqqOFl58yCLjzXGg064rO9tM+5lwS6Vms64eJ2k8ZIVh4gPMdF7VhpxjmGmXNtOEm825hC1NOBXA8Fp2qffzzvlL8fL04TzzpQt7t+7qUgHoXYUPmwUFdzLHicx3NHWGrDBD8Qm7uFqVZxtSLws3YWSMmdYVHG+O/Uy+pTrjWVd3Y3Q0p/PqbtQ6kzQessg1K7ifSUYCWILGRepRbuzsxyvUo5w9s7P/2p32Rao6FYDJFfmwWU1wJ3OcyKznUmHULhY17ZzZV591Y/UnHEkv2y4+3uRDbjbnAk9z3SHnWNHkW6ozoXV1NENw2vgY/S6ho2knn2G+pc0xaoWlVVvOJPMALEGkSL2fTw6uP/fUuXiRej8HV95IFanqVACmVeTDZjXBtczx0nMfSnzaZS4q++qzbqyLIcfQxZWoPFupUesf5UyjBlc006KKTGhdvQzQ48DDvHqDI6swbYUZgtNWWFq1zUwyD8ASpLrU+/no8MqFMzvhIvXvLmeLVF0qABMq8mGzmuBaejyR+MC9LGrCUYNbarC0LoYcQxdXovJs84267rT1z3G+aVOvO9+iigxpXZEB5ljRrANvNvMw57WQI4sPkJ1244ErzFBzGICFCBapR/nl/ovBInXv7MV4kapOBWBCdT5slhJcS6cnEpx5sYsKvvTcG+tlzgF0cSvKDjbrtOsOXP8c5xs48qJzL6rCkNYV2dJMK5p17OwA3b33zWTH7m5p0w688cwVZphjmC0nAViOeJd6P3d2n40UqWfP7OzduhtvUXWpAExo8k+aY3y8Cq6l0+MIjt3XoiYceN2ZJz+jWZfWy5y9q38ryg5WbeDKhzj3wJEXnXtRFea0ruIvvY344Y7x0v0eWfCl2yytzswVZqg2CcBCxFvUB7n89F77LnX/1dvxClWdCsC0Jv+kOcbHq+Ba+j2O1NhLXlTqdRtsrKNRuzb5rZh82zWnajPzWmNXPsQ6Axe/7fH9zDrDqOvqZUXVJndeG0gN3+nSioxdZIwJJ9lmBoBFiVeoD/JfB9caf3HqwQs34uWpLhWAyU37+W6YT1jBtfR7FpGNLXxXkRdts7GORu3a5Ldi8m3XnKrNzKuPXfkE24zd/hUb7Co+52LXlbpRs+6n2vCpl3ZkGwzf6dKKjD3eGBvPALAo8f70kfz7wSvNitQLe8/Hm1N1KgBzmPbz3TCfsIJr6fos2g9vUZEXbbC0jkbt2uS3Ytpt15yq4NhlT7DZ2O1fscGi4tPGB6g/bV8rmnX+Xl666yNLDd/pxuqcdYUxKswAsBzx5vTYvHP+UoMi9dwXdut8Tao6FYBpTfsxc5hPWMGddH0W7Ye3qMiLNlhaR6N2bfJbMe22a07VcvLGL9d4V+1n7mtR8WnjA9Sftq8VlZp/aa87FZd8LUUmr7DDCnsAWI54bXpSbuzsz92l7r92J16Y6lIBmMm0H+6G+ZAV3EnXB9F+aZ3uqver1WZjfU3bqWlvxeTbLjhS48lXHL7m8RVU9qrXnDY+QP1pO9rP3POv+xYir9vXlS7yFrpeWpHJ4zsssgeAhYgXpqfkk4Prs35xasGvSVWnAjChaT/cDfMhK7iT3g+i5fxd76rrq9VmY31N26lpb8Xk2y44UuPJVxm+7PEV1Neu4tPGB6g/bUf7mXv+dd9C5HX7utJF3kLXS6szeXaSOnsAWIJ4YXp6Pjq8srSvSdWlAjCVaT8gj/EhK7uT3g+i5fxznFR3iRzNWq+7sb6m7VT2TkbG6y6NtzTh8RXU167i08YHKD5tX/tp8C7qv+4AR9b1PZ97OZWHz969IksAWIJ4VbpKfn7hhaV9Tao6FYBJTPvJbozPWdmd9H4QLfc2x0n1mIJHM4m+pu1U8EJGZusxjRc11fHV1Nei4icbH6D4tH3tp8G7qP+6A5xX+3fR9dLqDD/hJOsOU2cJAEsQ70lXzDfPHi7qa1J1qQBMYtpPdmN8zsrupPeDaLm3OU6qxxQ8mkn0NW2nghcyMluPabmoqc6urL521fgizTrA5MuZddoVB44f0CRSbyHyugOcV/t30fvS6gyf2mSdDQAML96Qrp5PDq4/99S5RX1NqjoVgO1N+LFumI9a2Z30fgot9zbHSfWYgkczib6m7VTwQkZm6zEtFzXV2ZXV164aX6RZB5h8ObNOu+LAfe2nwbtY640s50Un556vpc7wE24ycu233wDA8OIN6VqZ6otTe/maVHUqAJOY9pPdAJ+2sgsZ4Aia7W2Ok+ox7c9l9RfdRl/Tdip4ISOz9ZiWi5rq7Mrqa1eNL9KsA0y+nFmnXXHgvvbT4F2s9UaW86KTc8/XUmr49svs/fgAOhLvRjfI9l+c2tfXpOpSAdjehB+yxvi0lV3IAEfQbG9znFSPaX8uq7/oNvqatlPBCxmZrdM0W9RUZ1dWX7tqeYvmHmDy5cw67YoD97WfBu9irTeynBednHu+llLDt19mqbcPMLZ4MbpZtvzi1L6+JlWdCsD2JvxYN8AHrjm2sdZCBjiCNnub6aR6TPtzWf1Ft9HXtJ0KXsjIbJ2m2ZamOruy+tpV/HCtq9krzr2cgm+k/Yu2vyEzcc/XUmr49pew1NsHGFi8Et0423xxao9fk6pLBWBL036s6/0DV3wbAxxBm9XNcVKdpv25rP6i2+hr2k4FL2Rktk7TbEtTnV1Zfe0qfrjW1ewV515OwTfS/kXb35CZNH4jvS+t2vDODmBI8Up0m/z7wSuL+ppUdSoA25j2I3nvn7niqxhg/21WN9O97THtz2X1F91GX9N2KnghI7N1mmZbmursyuprV/HDta5mrzj3cgq+kfYv2v6GzKTxG+l9adWG7/HspnrvAKOKl6Hb553zl9YqUs+e2en3a1J1qQBsY9qP5L1/7IqvYoD9t1ndTPe2x7Q/l9VfdBt9Tdup4IWMzNZpmm1pqrMrq69dxQ/Xupq94tzLKfhG2r9o+xsyk8ZvpPelVRu+5fFVe+8Ao4o3oZPkxs7+Gl+T+urteAeqTgUgZdqPdf1+7JpjD+uuYoD9t1ndTIfVY9qfy+ovuo2+pu1U8EJGZus0zbY01dmV1deu4odrXc1ece7lFHwj7V+0/Q2ZSeM30vvSCg7fZqUF3zjAkOId6FT55OD6hTM7K31N6vNX4+2nLhWAoGk/lff7yWuOPay7igH232Z1Mx1Wj2l/Lqu/6Db6mrZTwQsZma3TNNvSVGdXVl+7ih+udTV7xbmXU/CNtH/R9jdkJo3fSO9LKzh8m5UWfOMA44kXoNPmXw8uP7FIfeZLF+LVpzoVgKxpP5X3++GrwhIGWH6b7c10aXtM+3NZ/UW30de0nQpeyMhsnabZlqY6u7L62lX8cK2r2SvOvZyCb6T9i7a/ITNp/EZ6X1rN4RtsteYbBxhMvP2cPHf3nj/9a1IvfOO78d5TlwpA1rSfyjv98FVkCQMsv832ZjqvHtP+XFZ/0W30NW2nghcyMlunabalqc6urL52FT9c62r2inMvp+Abaf+i7W/ITBq/kd6XVnP4ubda810DDCbee86Uy0/vnfjXfS/fjJee6lQAKpj2g3mPH8GKbGCAzTfb3kxH1l3an8vqL7qNvqbtVPBCRmbrNM22NNXZldXXruKHa13NXnHu5bR5F2u9keW86OT6veeRvdWcfO6V1nzXAIOJl54z5aPDK8d+ceqFvefjdac6FYAipv2k3ONHsCIbGGDzzbY305F1l/bnsvqLbqOvaTsVvJCR2TpNsy1NdXZl9bWr+OFaV7NXnHs5bd7FWm9kOS86uX7vefu9VZ581tnKvmuAYcQbz1nz8wsvPFKknvvC7t6tu/GuU5cKQBHTflLu7iNYnbc/wOabLXCmU+su7c9l9RfdRl/Tdip4ISOzdZpmi5rq7Mrqa1ctb9HcA0y+nFmnXXHgvvbT4F2s9UaW86KT6/eet99b5clnna3mWwYYSbzunDvfPHv4cJe6/+rteNGpTgWgjmk/KXf3QazOe+997S0XuLRbuqX43Q4O3GDaTk17K6bddsGRarKo1fW1q/iDaV3NXnHu5bR5F2u9keW86OT6veft91Z58vlmK/uWAYYRLzob5JOD6889de5vX5P6/NV4xalLBaCaaT8sd/RBbKY3vtl7733zLRfY+64ai9/t4MANpu3UtLdi2m0XHKkmi1pdX7uKP5jWVe0V55B6C5HXHeC82r+Lru958clnGq/s+wUYRrzobJN/P3hl5789/cyXLsT7TXUqAAVN+2G5l49j1d51fIAttdxh77tqrML1Tg3cYNpOTXsrpt12wZFqqnl8NfW1qPjJWle1V5xD6i1EXneAI4u8hU73Vn/smcYr+34BxhCvOFvmh/tfufCN78bLTV0qADVN+6mzi09k1d5yfIAttdxh77tqrML1Tg3cYNpOTXsrJt92zamqKXt8LYdv/HJtFhU/Weuq9opzSL2FyOsOcGSRt9Dp3roYe/Lxir9fgAHE+83GiTeb6lQAypr2U2f9T2Tzvd+N33J8gC21nL/3XTVW4XqnBm4wbaemvRWTb7vmVNWUPb6Wwzd+uTaLip+sdbV80VmX02D+dd9C5HWD73cqvd/zZqvrZebJJ6z8ZgEGEG82G+f+W47XmrpUAMqa/INn5c9lNd9skTF6Gb7TRUV0d7X6mrZT096Kybddc6pqyh5fy8nLvuI24idrXTVfdELB+Zf2ulOJzD/tPWmzul5mnnzCym8WYADxcrN9l3pPnQoAJ5v8s2fZj2Y132mRMXoZvt9dtdfd1epr2k5Neysm33bNqQoqe4LNxi77ituIH6t11XzRCQXnH+B12x9ZavhpX7fB6voaeMIJ679ZgK7Fm81IkXok3mzqUgGoaY6PnwU/nZV9j3Um6WL4fnfVXndXq69pOzXtrZh82zWnKqjsCTYbu+wrbiN+rNZV80Wnkh0+9dKOrMLe5l7d5NPOOvAc09Z8pwC9i5ebqSL13iK7VHUqACsa/jNa5TdYapj6k/e4qJTu7lVf03Zq8sd28m2XHayUyifYYOz2r9hmS/Fjta7Kr7u97OSpl+73vLLDT/vSs25vjlFnPeuZBi74TgG6Fi83s13qvUXWqe2vGQA9GvtjWvG3Vm2e1OSR151vOfNN3vjlWu6qr2k7Ne2tmGPbZQdrM3yzF1rIA77YFW02sHVVft3tZScf46VbHtkw5zXr9maac+6Dnm/sau8UoF/xcjNbpB6Jl5vqVABqGvWTWv33VXCkyNiRl55vP/NN3vjlOr1UDabt1ORP7uTbrjxbg8kbv9zwD/hiV7TZwNbV/nXb7GrysbMDdPfeNxMfe9oB5tjeHBO2OehZJ6/zNgG6Fu8340XqPV0qAJxgvM9rvbyjmlO1Hzv10vOtaI6x279ip5eqwbSdmvzJnWPblWebe+zGL9dsV6lRe9nP5NNuNrB1tX/dNruafOzsANn33ubIKsw8+QzTbm+m8Zqd8tzzF3mbAJ2K95sVitQj8XJTnQpATSN9auvovZQdrPHMqQFmWtFMM7d/xZaL6mvaTsUf3vZDTj7efDO3f8Vmi0rN2ct+Jp92s4GtK/LSDdZVYeBhXr3BeRUZePJrM+EOZ52tzSk3eAvx9wjQr3jFWadLvbe8OnXu2wXAGMb47Nbdu6g8W7OZswPMsaKZBo68aHdbajNtpyZ/eOfYdvHx5ps58qINdhUcsv5yZpp2s4GtK/LSc6+ryLTZAYosobtpJ5+k1EUKHnHLNxJ8jwCdivebpYrUe8vrUtWpAKyo609wnX4CLT5em4HjM8yxqMmnTb1ugxVNPnCDaTs1+bMz07brTzjHtKnXnXVX2Qkrb2bWaTcb2LpSrz7fxiafc+NRswPU2UNfo84xzMazNRimwfkG31HkPQL0KF5xlipSj8TLTV0qADX1+FGux5nbDD/VkLNOW2GSabc005zBl551RXMM3GDaTk17K+bbdhdDTjtq9tXn21V2trJrmXvazQa2rtSrz7S0OYbceM6RBujryAqOtNaczQaY+3DrvLVmbxCgR/GKs2aXek+dCgDHyX6sW/2TXRdDVngj9UetM8yEu5p8yPiKJl/OrAM3mLZTXTw4M41afMIKM0y+q/hgBXfSZtrNBrau4ACT722O8baZMD5DtYX0MuFMU9XPJGdaebcN3iBAj+IVZ80i9Ui839SlAlBQ/NNr/XS37cpDlppqy0XNN1t8hqk202bgBtN2qvJT09eodQabY1Hb76rIVHUW0njazQa2ruAA065uptm2GW+wGXo5ssqzFc8kq6u82zZvEKAv8YqzcpF6b2FdqjoVgNXFP8BWTqerrjlhzdVtM9Ucg1UYY8udNB64wbSdKvi8NJ52+4GrjTTTlraZqs48FbYRmda62gw87QxTLXD4qSrMMPxUzSYsm0lWV3a3bd4dQHfiLWfxLvXewurUqe4VAMOLf4Atm95XXW22yturM0yF5Ww2Q2rgBtN2qs79TE27zeRFxmi8qE4nmXyeDV49OK11tRl42hm2nKrUMLOOV2SM4Y+s5agFM+H2Cu622bsD6Ei84qxfpB6JV5zqVAAKin+GLZjB9hyfp6PtBWcospyNx4gM3GDaTpW6oqmB13oXwZfuZUvZA2q2mS3OJzDtZgNbV3yMDSaMD9B+UUXGKH5e2x9ZauwimXB71Xbb7K0B9CXecnZRpN7TpQLACeIfY0vFkmuuNP4uym6pyBiRgRtM26lSVzQ1cKlY1KyLig+Qmnazga0rPkbZlDqvOpNUzvZHtsy9zbfAOott9tYAOhJvOTvqUu+pUwHgBPFPskViw5VXGn8vNbdUZ5L2AzeYtlPVbmlq5jqxqFm3VGGGyLSbDWxdFSapmVLnVWqYmtl+RcvcW4MdVlhsy7cG0It4y9lRkXokXnHqUgGoKf5htkKst/I+42+n5qLqTNJ+4AbTdqraLQ2OXSG2NPeWiozRftrNBrauIsNUS7XzKjVMzWy/osWursEOs1tt+b4AehFvObsrUu8tqUtVpwKwrvjn2YE/Tcff3Rgrjb+jglsqNUzjgRtM26mCFzU4eTa21GBRRcZoP+1mA1tXnXnqZPvNTL6favNUyyT76XR1E4439xpTK235vgB6ES86e+xS7y2pTp1jewCMLf7pOBKL7Wir8fdVbUvV5mk5cINpO1XzrqYmz8aiGmypziSNp91sYOuqM0+RbL+WOfZTcKQ6mWo5Pa5u2tnabLL9Shu/L4AuxIvOHovUI/GWU50KQFnxz8iNY6vdbTX+7kptqeBIzQZuMG2nyl7X1PCpWFSbLZUapuW0mw1sXaVGimeSncyxnJpTVciEm+ludZMP1nKZzfbZ+E0BdCFedPZbpN7TpQLAqeKflJvFSjvdavw91tlSzanaDNxg2k5VvrGp+dvHopptqdo8zabdbGDrqjZVMFMtZI7NlB1ssCPraHVzTDXkPtu/KYD64l1n113qPXUqADxJ/CPzSJ804292vMXG32aRLdWcqs3ADabtVOUbG3wLLWNRLbdUcKQ20242sHUVHCySCbcxx1oqzzbSkfWyuplGGm+Z7d8RQH3xorP3IvWeLhUAVhD/4DzMJ81pJ49vr8hi42+2wpbKDtZg4AbTdqr4pQ2+izaxqMZbqjlVg2k3G9i6as7WONOuYo6dFB9vmCPrYnXzzTPeJtu/I4D64l3nAF3qPXUqAKwg+9l5mM+Yk88fX2OR3cbfcnxFxcebdeAG03aqi6sbfC+zxpbab6nsYHNPu9nA1lV5wjaZYw+Tb6P+hGMc2VrqvPGuF7uEqwJQR7zoHKNIPRJvOXWpAHSh/WfnwT5gzvEW4sussNhqe2i/pfoTzjdwg2k71cvtDb6dmWJLkS1Vnm3WaTcb2LqKDzl3ZlrC5KvoZc6uz2szFd541+td1G0BiIt3ncMUqfd0qQCwstR/Qxjj0+VMbyS+1Qq7PRJfQmpLXQw508ANpu1URxc4+I5G2s8D8T1EtlR/wpmm3Wxg66o/50yZ7+3PsYeORu36yDaWfdddb3iZFwYgIt51Dtal3lOnAsA64v9VodPPlfO9Het9IL6KyIo6GnXygRtM26nurvGK4s9y5eU8EN9G+y11MeQc0242sHX1Mm1f733yDXQ3cI/nNYnIW+59z64NQBvxrnOwIvVIvOjUpQLQl/h/YejuE+Xcb2rh631Y/NY13lJf0047cINpO9XjTV5d/KGuuZZHxDfTcksdjTrttJsNbF19zdzLu578vfc4c3fvfXLN3mnvq3ZtANqI153jFan3ltGlqlMBmFz8PzV09HGywVtb+IYfEb+BzVbU3cx9Tdupfu/z6hbygG9pIVvqa+D4hq2rjWknr/9+J3/X/U7e0bvuV+8Ld3kAGojXnaN2qfeWUadmNwzAwOL/5aH+B8lmb3CxGz7WEm5gd8P3NW2nBrjYK1rCM7694bfU19jxPVtXS9POX/mdTv5+B3gL9d9sv3rfvCsE0EC87hy1SD0S7zrVqQD0LvLfH7r4CNn4nS5zyacY+BJ29xb6mrZTw1zv1Y36gE9r1C31NX984dYVMe0bKfgGJ3+bw7yRsu+xa70fgbsEMLd43Tl2kXpPlwoA0/GfIB6RetdL2/MqFnsJYQmW/D80a7EliPAzqjuOrKDez8KlAphbvPEcvku9p04FgHn4qFhkA2MveTMLuYGwWB7wVdgSpPg9pDvOK6vIp6oib8EdA3hcvO5cQpF6T5cKAMzD52UAAIBtDPCRSpcKMKt447mQLvWeOhUAmIHPywAAANvo/SPVtEWqz4YAj4s3ngspUo/Eu05dKgAMxudlAACgju4+oXQ38KxvwQdDgMfFG89FFan3dKkAwNR8ZAYAAOro7hNKdwPPN78PhgDHipeeS+tS76lTAYBJ+cgMAADU0V2v19e0s87vgyHA4+KN5wKL1CPxulOXCgDD8JEZAACoo69er6NR557fp0KAY8VLT13qqEkvGAAWxKdmAACgjo7avV7mbDC8T4UAx4o3nostUo/E605dKgCMwadmAACgjo7avSJzrvV/cKYK1UdCgGPFS88lF6n3Ru9S1akA0IwPzgAAQClddHx1Jpy1Ho3vGaBr8d5z4V3qvdHr1PR2AWApfHAGAABKqV/zlRovXqH6SAhwrHjpqUg9Em88dakA0DsfnAEAgFKKN33VZotXqD4PAhwr3nvqUo/EG091KgD0zmdnAACgmpqVX8GRZt2Vz4MAG4uXnorUh8UbT10qAHTNZ2cAAKCaasVfnUna78qHQYANxHtPRerD4o2nOhUAuubjMwAAUFC8CuylhWy5KB8GAVYUrz51qY+IN566VADol4/PAABAQfF+sJcKcox3ATCSeO+pSD1WvPRUpwJAp3yCBgAAaoq3hF20kGO8C4CRxKtPXeqx4o2nLhUAOuUTNAAAUFO8JeyighzjXQAMI957KlJPES89dakA0CMfogEAgLLijWf9CnKYNwIwhnj1qUg9Rbz0VKcCQI98iAYAACqL957F+8dh3gjAGOLtpy71dPHSU5cKAN3xORoAACgu3n5W/tw0zBsBGEC8+lSkriLee6pTAaAvPkoDAAD1xTvQsh+ahnkjAAOIt5+61FXES09dKgD0xadpAACgC/EmtOYnpmHeCEDv4tWnInV18d5TlwoAHfGBGgAA6EW8Dy34WWmk9wLQtXj7qUtdXbz3VKcCQEd8pgYAAPoS70ZLfVAa6b0AdC3efipS1xLvPXWpANALH6sBAIDuxBvSOh+RRnovAP2Kt5+K1HXFe091KgD0wodrAACgU/G2tMKHo5HeC0C/4gWoLnUD8d5TlwoAXfARGwAA6Fq8Oc1+LBrpvQD0K16AKlI3E68+dakAUJ8P2gAAwAAW2KLO8cZT7wKga/ECVJe6sXj1qU4FgPp86AYAAEaykAp1df1ODtCLeAGqSN1GvPrUpQIAAAAAEYvtTwFoJl6A6lK3FK8+1akAAAAAQAWaUwAmFy9AFanbi1efulQAAAAAAADGE+9Adanbi1efulQAAAAAAAAGEy9AFalTibef6lQAAAAAAABGEu9AdalTiVefulQAAAAAAABGEu9AFakTirefulQAAAAAAADGEO9AFanTiref6lQAAAAAAADGEK9BdamTi7efulQAAAAAAAB6F+9AFakziReg6lQAAAAAAAC6Fq9BdakzibefulQAAAAAAAC6Fq9BFanziRegulQAAAAAAAA6Fa9Bdamziheg6lQAAAAAAAA6Fa9BFalzixegulQAAAAAAAB6FG9CdalzixegulQAAAAAAAC6E69BFaltxDtQdSoAAAAAAAB9iTehutQ24gWoLhUAAAAAAIC+xJtQRWoz8Q5UlwoAAAAAAEAv4k2oLrWleAeqTgUAAAAAAKAX8SZUkdpYvAPVpQIAAAAAANCFeBmqS20s3oHqUgEAAAAAAKgv3oQqUiPiNag6FQAAAAAAgOLiZaguNSLegepSAQDgdP/n//6dtZKeF/7/9uwox47cSgLo/lftgeFBW1arpaqXJCMu8xzwU8C7DDJLAAMAAOBC8TJUkZoSr0HVqQAA8JfvNqcKVgAAANgtXobqUoPiHaguFQCAl9vUn+pVAQAAYIl4GapIzYrXoLpUgNc6XB9oK+AzvotN4n+mnAik+IoBAGCWeB+qS82K16DqVIDXipcI2gr4Ct/CWvG/SM4F4ny/AAAwSLwMVaQ2iNegulSAd4rXBwoL+AqfwCrxP0EOCEr4bAEAYJB4H6pLbRCvQXWpAO8Ubw0UFvAVbv5z8b85jgmq+GABAGCQeB+qSC0Rb0LVqQAvFO8L4it9AvAl7vwT8b8zTgoK+VoBAGCKeB+qS+0Rr0F1qQAvFC8LGlb6EODPXPiPxf/COC/o5DsFAIAp4n2oIrVKvAnVpQK8Tbwm6Fnpo4DfcdU/EP+r4sigmY8UAACmiFeiutQq8SZUnQrwNvGOoGqlTwP+kXv+XfG/J/5AQTmfJwAAjBDvQxWpheJNqC4V4FXi7UDbSh8I/JpL/i3xvyT+QEE/3yYAAIwQr0R1qYXiTaguFeBV4tVA4UqfCfyCG/518b8h/kDBCD5MAAAYIV6JKlI7xctQdSrAe8R7gc6VPhb4mev9RfG/Hv5AwRS+SgAA6BevRHWpteJNqC4V4D3ipUDtSp8M/A93+yvifzf8gYJBfJIAANAvXokqUpvFy1BdKsBLxBuB5pU+HPgvF/uP4n8x/IGCWXyPAADQL96K6lKbxctQXSrAS8TrgPKVPh/4f27178X/VvgDBeP4GAEAoFy8ElWklouXoepUgJeIdwH9K31E8G+u9G/E/0r46wQT+RgBAKBcvBXVpfaLl6G6VIA3iHcB/St9RPBvrvRvxP9K+AMFE/kSAQCgXLwV1aX2i5ehulSAN4gXASNW+pTAm/8/iv99iK/0CcBUPkMAAGgWr0QVqVPE+1B1KsD14i3AlJU+KN7OZf6l+F+GhpU+BJjKZwgAAM3iragudYp4GapLBbhevAWYstIHxdu5zL8U/8tQstLnACP5BgEAoFm8FVWkDhLvQ3WpAHeLVwCDVvqseDU3+e8K/wL46wSD+AYBAKBWvBXVpc4S70PVqQB3S738T1zps+LV3OS/6//q/YGCZj5AAACoFW9FFanjxPtQXSrAxU4+9U9f6bPi1dzkv5vyvfsDBQAAAN8SL0Z1qePE+1BdKsDFRj/pn2kotBU0cI1/Mu5L99cJAAAAviLeiipSh4pXoupUgFvd8aS/u6TQVhDnGv9k4jfuDxQAAAD8UbwY1aUOFe9DdakAt7rpPX93T6GqIMg1/sncD9wfKAAAAPiNeDGqSB0q3ofqUgFudd97/r6eomF3vJY7/KPpX/f0+QEAAGCfeDeqS50rXonqUgGudOV7/qaeomR3vJM7/KPpn7Y/UAAAAPBL8WJUlzpavBJVpwJc6dbHfFUFl3GHf3TBd+0PFAAAAPxdvBhVpE4Xr0R1qQD3ufUxf1NPUbI7Xsgd/tEd37U/UAAAAPCTeDeqS50uXonqUgHuc/Fj/o6t9eyOt3GHf3THd+0PFAAAAPwoXowqUu8Qb0XVqQCXufgxf8fWenbH27jDP7rjo/YHCgAAAH4U70Z1qXeIV6K6VIDL3P2Yf/fu/jJ38mOmH/G/dKk/uOmjvmkvf3TBFuLkxgd8en8kn5/c8Z8OADBUvBtVpN4hXonqUgEus/wlv+pd5dbd3bSX5XYcekNc12zkuZtO9qa9/OS+HaWIi2+58u/JWvL50fL/hq5JBgCIiHejutSbxFtRXSrATe5+Qrlpdzv2Et/UKlvDKQlt7uTLTT/KrXuJn+9NH12WiPi6rd/dHVdLOD86cGHmhgMAZMW7UV3qTeKtqDoV4CZ3P5tcsLuT711VZ/dHh5OJhzZu4H3mHuLFe7nvi1u+tTO/uGPySPJnxh4azqYtlO/0Y8L5y/nbMigcAKBEvBtVpF4m3orqUgGucf1rydzdee/6J8FkgqENGnW3icd3cjvT52/b5smBl//K0MzXTh7/lR3Wnmz/fj8gnL/Eb0t5PgBAlXg9qku9TLwV1aUCXOP6R5KJu4s/c7Ud4l/isQRzGzHkGbMO7vx25k7eudljo+74lYmBLx/7zA+dSWZ5OFN2/V3xZErCiYdQng8A0CbejSpSrxQvRtWpAHe4/nlk3O7ir1udRxmPIp5b+XgnDTq1W8U/sZNnd2DIfVHMivpAIKkfKkxm3N6/KJ5GTzLx7ZfnAwAUitejutQrxVtRXSrAHa5/Gxm0u/ijVueBxrdfElrzbOeNOLIrxb+s88e3e8LdOUzJedPMJT9UlcmmtTuBuRGJoi0fAKBWvB5VpF4p3orqUgHucP2ryIjdxR+yas80vvGe0GoHixhxZPeJf1ORE9w624EERoS8b+BjvzUok31rawijIxJFTz4AQK14PapLvVi8GNWlAlzg+ieR/t3Fn7BqjzW+5arQOqdKmXJqN4l/Tanj2zfYme33J7xv4KrfiqdxZm3K4YKIpNGQDwDQLF6P6lIvFi9G1akAF7j7PaR/d/HHq9qTjW+2LbTCkYIGHdwF4h9R9uw2TXVy783xbp226reyURxeO9K4IyJpNFwbAKBTvB5VpN4tXozqUgGmu/sxpHx38Wer2sONb7MwtLZ5smad3Wjxzyd+cDtGOrzx2mzjozbHsu+SnFnLA7kmImlkrw0AUCvekOpS7xYvRnWpANPd/RLSvLv4g1U8gfuS2Rpa1TBxE09woviH03Bky+c5v+vabLeOWvhzkRyCa20mN0UkjZPhAAAjxOtRRer14sWoLhVgurufQWq3Fn+qKsnhvmT2JVY1TIO5RzlF/KspOay1w6S2XBjs7jkLf+58CPG1MJbLIpLGmXAAgCniDaku9Q3i3ag6FWC0u99AOrcWf6TqieLKZDYl1jNJifiBXpPkL8Wz7TmjtZOk9tuW6oE5C3/u8EgNa1Us90UkkDPhAABTxBtSXeobxItRXSrAaBe/gXRuLf5CVZXGxeEsT6xkjB7x07wv0r/E86w6nYVjBDfbluruIWt/8dg8PWtJMldGJJDd4QAAU8TrUUXqe8S7UV0qwFwXP4AU7iv+NlWYycXhrI2rZIwq8QO9Nd54hlUnsnCM7GarUt09Ye0vHpunai0J58p8ZLIvGQBgkHhDqkt9j3g3qksFmOvWB5DCfcUfpgoziYTT89OpiJ6MUeXk2b0n6nhobQcRH37VTnsiPTBh7S+eGaZwPc/n1oj6A0mdwpNkAIBZ4g2pIvU94t2oOhVgritfPzpfdY69Ph1ezUf2wYS1cTXMUCh17W+NPZ5SYf7xyVdtsyfS3eOV/+juSTrXw3wujqgwk4YZHiYDAMwSL0l1qa8S70Z1qQBDXfn6UbipfW9N/zTnsV9sDsdIO86rysl7fv0RRBLozzx+WxZusyTS3bOV/+juSb4+6skffRjR3fn0xNJ2Rk/mAQCmiDekutS3iXejulSAoS57+ih86do61bcGa5jh2GAPRyocrGGGTvsu9pmVzu+/GrbZMMPJkQ7vsSHPA7OV/+jWMZ7MVjLG4cEaxiiJ5bMxykcCAPrFG1JF6gvF61FdKsBEPY9CnXtZsqOqqaqG2TTSk2FqZ2uYodamW31+3Zdh1Tw9k6SuUEmkWwcb8bubZlg11UvmmT5MfIADgy2cCgCoFS9JdakvFK9H1akAE5W8CBXuYtWO2ubZNNUFk5SP1zBDreXHFF93ZHjHSPHLsHaD8Tx3TzXidzfNsPB0ekYqGaNwqqpA9oWzdjYAoE28IVWkvlO8G9WlAkzU8BzUM/mO7bTN0zZYyRjHJmwYY2E4PZZfpIY1N73a2eIDxO9MPM/dU4343R0DLD+XktniA9QOVpjJiNkAgCrxklSX+lrxelSXCjDO8regy1ZVvEtOvG28hhlGTNgwQ7m1J9WzxkV32XiDTv8r/77wrO843Pje1x5KyXjN4cTHq41l7Xg7ZgMAesRLUl3qa8XrUV0qwDjLH4IuWz3xLjnurRN+NmR8gMNDjp6h39rrVLWmhHbfhJcd9/IdVc0z6KfX/vq+m5OdsDyc7IQvSWbHbABAj3hJqkh9s3hDqk4FmGX5K9lNqyrbJcddOGR/RCVDNswwwtor3bbKE9sx3vIhvzvnBUe8dUc982SjyP761suTGnJEOGvnvCmc5tkAgBLxklSX+nLxelSXCjDL2teYm1ZVts+HOTPnd0dtO7IDc46eYYq196pt1Wa1drCeUYee7LFN9QwzLodBVygy54hkLghnUz7l4wEADeIlqSL15eL1qC4VYJa1rzHXrKpgnw9TO23bqR2Yc/QMs6y9XW2rMKVVI7WNOutAI5sqmWTWr8+6QpFRRySzdtTz4WxNqXk2AKBBvCfVpRJvSHWpAIMsf42ZvgqDXTVS4bSdZ7d1ztEzjLP2grWtqoiWDHNs2m8NPOUov6Vn/uwMwRB6jqBz2kHhRKZdeyLHggIA+FG8J9WlEm9I1akAg+x4jZm7CoNdONKZgb81c+fZdc7ZMMNQC6NrWz3JLDmpzoHLD/FjJVvIzhAMYdwtOjztoGTWDnw4n1RcAADxklSRyr90qQB8x6bXmHGrNtW1g1028zEN4TTMMNeOPxolqyGWVcfUOXPt8T3UsJHXDtAQ/ncdHnhWOAsHPpxPMDEA4OXiPakulf+IN6S6VIAp9r3GDFq1qS4f7MDMh8c+oOSyNcww3Y6/Hg0rHsjCMzo289fHLjy4JRr2Ek8ylUBD+N91cuBx4awd+/DPxXMDAN4p3pMqUvmPeEOqSwWYYutTTP8qT3XTeJeNvVXPlWuY4Q47/pLEVzaH5WdUNXbPkS0X3048zFQCQ+/SsZnHJbN27C9OvvYWlWQIALxEvCfVpfKjeEmqTgUY4cxTTPNqTnXHbAfGPj/5JlX3rWGGy+w43+AKbn/H6fSMXXJeO7iBqRka9v6BY2NPDGfh2F+cfOHPdeYJAFws3pPqUvlRvCHVpQKMcP4ppnN1Rrpwqrsn36HtpjXMcKtNZ31+RXa96VB6Jo+f1D7ZTTWEGdn+lXdpraHhHD7WtRepPFsA4DLxnlSRyo/iDakuFWCE7FNM22qLdMk8b5h8odo71jDD9XafftXtmnudDicWP6mtgptqCDOy/Vvv0iqjwzk5+dqLNC5qAGC0eFWqS+Un8ZJUlwrQL/780rZEWhLjSSOSaZjhPeJf0IHDjY/asFJBfXox10ttqiTMyBgle6+144sbt0ZntfV6AAAXiPekulT+Ll6S6lIB+sWfXAqXSOMZbjU0mYYZ3in+Ne043/iQJSuS1bP7uFhqayVhjt57211aZfkXN3TdkdXu2wIATBTvSRWp/F28JFWnAvSLP7N0LpFmM3wuvv3lsTTM8HLxy7PwfONDlqxIVs+u4XqRrZWEOXrvhXdpieVf3NB1X1xbrw0AMEi8KtWl8kvxklSXClAu/rRSu0SaCvDuzBv2uDD514pfpIdHHJ+wZEXO+vHtWyyytZIwR++98C4tsfyLG7ouTmzf5QEARohXpbpUfilekupSAcrFX1SalzwPp/eGnBu2vPAg+FflbZw4c2dQy7N6fN3Wmxtp1d7P/2LndXpubURz1xsS23eLAIBa8Z5Ukco/iZekulSAcvGHlPIlz2PRvSTehr0vPBF+Er9gXzzl+Hgl6/yZrrhl6w2NdNzG1/5i7XV6aG1Ec9d7Qtt0kQCATvGqVJfKb8R7Ul0qQLP4E0r5kuex6F6SakMIC4+G32i+afEPoWcdPsdFl2uxwxvsCfP8yb7hOj2xNp/R623R7bhOAECheFWqSOU34j2pOhWg2bj3kPLnnfhjVM+aeNbNsTTMwGcKb1r8Q+hZh49v0Z1a7OQeq5I8f7LX36WH1l7F0euF6S2/TgBAoXhbqkvl9+I9qS4VoNbox5DCt534S1TPGnG4g2JpmIEnqi5b/EPoWYcPbt2FWuzYHquSPH+yb7hLT6z93Eav1wa49kYBAFXiVakulT+K96S6VIBaFzyDVD3sxN+gelbzgb48lo9nYImGyxb/EHrW4fNad48WO7bHqiTPn+wb7tITaz+30evNMa66TgBAm3hVqkjlj+I9qS4VoNY1byAlrzrxB6ieVXiODeuzWNYm8/EMrBK/bPEPoWedPKx1N2i9M6m2JXn+cF9ynT629h6OXi8P8/n2AYBC8bZUl8pXxKtSdSpAp5seQBqedOKvTz2r6gR71gexLA/n4xlYK3jZ4h9Czzp5TOvuzhYHdtqW5PnDfc91+szCfKYvka5KAADoEW9Ldal8Rbwn1aUCdLrs9SP+pBN/eupZPWdXtb4by458Pp6B5VKXLf4h9KyTZ7Tu4mxxYKdtSZ4/3Pdcp88szGf6EuzyEACArHhVqkjli+I9qS4VoNN9Tx/Z95z4u1PPaji1VbtIxbIpoo9nCMrez912X+CTvzhunTydpbdmvd3BFsZ4/nDfc50+s/YSjl4S3poDAHBevC3VpfJ18apUlwpQ6L53j+xjTvzRqWfFj2zh8JFYCmcICt7PA47d5AO/OG6dPJ2lt2aLrZstjPH84R6+vROtjWjukvOZHACAY+JtqS6Vr4tXpbpUgEJXvnsE33Pij049K3tYa0c9H0vnDEGp+3nM4bu96ecmrpNHs/TKbLF1s4Uxnj/cw7d3orURzV0yj0QBAOwTb0sVqXxdvCpVpwIUuvXRI7Wv+ItTzwqe1POp9g352QAlMwSV3IStTl74Hb81dJ08l6X3ZYt9m+3M8PzhHr69E62NaO5yBA1RAACrxNtSXSrfFa9KdakAbW599Aju66YYd5vyCtcwTMMMQYW3YrmTl//uJNd6W1ab9tuZ4fnDXfiLU27Ud8mnytob6ygB4LXibakule+KV6W6VIA2t754BPd1WZJbTXl2axisYYag/kvy3Mk9Xhzjcm/LatN+OzM8f7gLf3HKjfou+dRae3sdJQC8SrwtVaTyXfGqVJcK0ObiF4/Uvu5LcpNBD24N4zXMEDTlqjx0bI93x7jW27LatN/OACOH+7Yb9V3yGWHhMTlKAHiDeGGqS+UD8bZUlwpQ5eIXj9S+7ktyk0F3r2HChhmyptyWJ07u8eIY17r7yv3S8i3XBhg53IU/ev5SHRh7bjjvtPY+O00AuFK8LdWl8pl4W6pLBahy8XNHamv3JbnDrIvXMGTDDFmDLszHTu7x7iQXemFQy7dcG2DkcBf+6OFLdWbsoeGw9mI7TQC4SbwtVaTymXhbqk4FqHLxc0dqa/clucOsW9cwZ8MMWcvvTGEUJzd4cYxrvTCo5VuuTS9yuAt/9PClOjb2xHD4j7XX22kCwB3ihakulY/F21JdKkCPu587Ulu7L8nlZl25hlEbZsha/jkXRnFydxfHuNY7g9rxuRWmFxmvP5YDk5f8EDss//YdJQBMFy9Mdal8LN6W6lIBetz93JHa2pVhrjXryjWM2jBD1vLPuS2Nw1u7MsMd3hnUps+tLb3UeP3JbB372A+dDIefjPgLAAAcEG9LFak8EW9LdakAPZa/dVQ9d6S2dmWYa82KqGHahhmyln/ObWmc39qVMS73zpQ2fW5t0aUmHBHOvpmrfmucKcmsveRXHiUAvES8MNWl8lC8MNWlApRY/tZR9dyR2troMM/MPCiikq+jYYa4tWfRFsj5fY3O8NjMo1N6YtPnVhVdasIp+WyaufDnFto986BYxl1yAGCHeGGqS+WheGGqTgUosfaho+25I7i1uXmeGXhQPiVfR8MMcWvPoiqTyKbmBnhy5rkpPbTjTrZFl5pwSj6bZi78uYV2zzwomXGXHADYIV6YKlJ5KN6W6lIBSqx96Gh77ghubWiexwYelE/J19EwQ9zas+iJJbidoQGK6IwdN7Mqt+CQg1JaO20kn63hLB/7zK+ciWXiIQIAC8ULU10qz8XbUl0qQIm1r1WFzx2prQ2N9My0s8IpmbZhhgZrj6MhmexeJqZ3eNqJEa2y6XL25BYc8p0pfWvOEeHsmPnMr5yJZeIhAgALxQtTXSpLxAtTXSpAg7VPZIXPHcGtjUv12JyDkun5OhpmaLD8RLLhxDcyLr3zo87KZ61997Mkt+yQU4JKDTkinB0D9/xQTyZnpgUAlosXpopUlogXprpUgAZrn6oKnzuCW5uV6uE5pyTT83U0zNBg+YkEIyrZwqDopuezL5l9tt7SeGjZOUfEFZywP5wd0x5OZkQmB0YFADaJd6a6VJaIF6a6VIAGy5+q2p47slubEuz5Id8Wy/NpG2YoseNcDqdUNfyU6C7IZ1MyW+2+q9nQsnP2xxUfrzmcTXMW/lxDLLtHBQB2iBemulQWinem6lSAuLUPHYXPHdmtjcg2Mt6rYlkyasMMJTYdzZm4OmeOD3B4wtRPL4/lgDM3NhVafM7m0BoGa5jh5JCRWJYHEkwGAKgSL0wVqSwUL0x1qQBxI96pnohvrTnh4GCdgexL5vmoDTP02HdAm3Irn7NkjDPjBX99YSYnnby9hxOLj1obXc9IPZMcmC3106sCmTUhALBbvDPVpbJQvDDVpQLENT9SLRHf2o6En4ccH6ktkN3hPJ+zYYYeW89oSYy1gx0e+LNhtk4VnOFhGinjLnNkaw0zlI9UNczz25Wdpy2NWeMBAGfEO1NdKmvFO1NdKkBW4fPUWg272xHyx/OUTBIf4Hw+D4dsmKHK7pMaujrz7JknO8kHv95g4n0+v7WGGZ4PVjLGyYh6homP8d0oJs4GAJwU70wVqawV70x1qQBZ1794NOxuR8jfmi3404dH+uB0yoPaMdvDlHocOK9xa0SewQGysTw4nLBjd+NwXCXTZvPsP82GK1eYT88kzSMBACnxzlSXynLxzlSXCpB1/aNHye42vS/1rKpAmg/og9mWT/jxDG0OX/L+Jc8d+cQHaDDovFL76pmkcFWdVOdqy2T0MABAg3hnqktlh3htqk4FCLr+0aNkd1tfmeKrNpP4AKuyWjvtxzMUihxi55LnpojiAzQYdF6pffVMUrjaDqttlWfS+esAQLl4Z6pIZYd4Z6pLBQh6w7tHye7OPDqdXwI5k1h8gFrxAy1Z8tyUT8MMDaacV2pTVcNUrefJ3J3Pk4jikzeHAwBkxWtTXSo7xDtTXSpA0BvePXp2F3+Sqjru+OSzEosP0Cx+pvElz335lIwRN+jIIptqm6dkLYnl4nyeRxSfvzkcACAl3pnqUtkk3pnqUgGC3vD0UbW7+MOUNOIrntXDU+sUP9ZxN+o9YfakseR0Umad2vlNFY7UsFbFIp+XBLI8HwAgIt6Z6lLZJ16b6lIBUt7w9NG2u/jblCgm5hYfoF/8ZAddp1eF2RPFkqMJmnJkkR11TpVdCzORzxsC2ZQPAHBevDNVpLJPvDbVpQKkvOH1o3CD8ReqhhCuieJMdPEBRogf7oi79Kowq3J4PkzWoFM7v6PawVJrbSDyuT6QrfkAAIfFa1NdKvvEa1N1KkDKGx5AOjcYf6eKJ3BBDifTiw8wRfx8yy/Sq8JsC2HJPEGzDu7wjppnO7+Wp3FZPi7M4XAAgMPitakula3itakuFSDiDW8gtRuMv1aVnG98RyMCjA8wSPyIa2/Rq8IsTGDVSEGDDu7wdsrHO7l2RHFTPvsiiu+rORwA4Jh4Z6pIZbd4bapLBYh4wzNI8wbjb1YlhxvfV3+G8QFmiZ9y2/15W5id2184Vcqsszu5nf4Jz6xNOcjn1kCy9wcA2CFem+pS2S1em+pSASLe8BJSvsH4y1XJycZ39/uNx2OMDzBR/ObsuIrCPJxS7WAR447v2HZGDHnNwU3M51hE8W2W5wMA7BavTXWpHBBvTnWpAOe95DGkf4/xJ6yGY43v8fe7zoY56yh7xK/QTQcXTyASUfl45407wTN7GTTqBQc3Lp/zEcX3W54PALBPvDZVpHJAvDnVpQKc95L3kBF7jD9kNRxofLO/2Xg20qEHWiJ+l246sngah1Pqn/CwiYd4YC+zph19av8knkNbPvGNl+cDAOwQr011qZwRb051qQDnveRVZNA2449a8aOM7/qfNp4NdvqxNojfq2sOKx7LyZSmzHnM3KPcupeJMw/a9dfFM2mLKJ5AeT4AwFrx2lSXyhnx5lSdCnDeSx5Gxm3T61bh3rMJ33S4WcGrddkxxSM6k9Ksac+Ye5r7NjJ38hH7/a54Pm0RxdMozwcAWCVem+pSOSbenOpSAQ57z/PIxJ163araeDbnW484KPJ9XXk6dwc1cebdpp/pjo2cH37t/OU7/Yx8fhIJZFA+AMBz8dpUkcox8eZUlwpw2HveSUbv9OUPXD0bD6b9hoNOOfN9XX8otwY1evhN7jjZtRuJzL9jI50bfOhAPrMiOhPI0HAAgOfi/akulQPizakWFQB+4+WvW6/dOMd4W15CVhDhu/sjEf3E/3EAwD7xIlWXyj7x/lSFCgDf8uZ3rddunGM8LC8hKEjx6f2ev06/5D84AGAtRSpXUqECAAAAAACwii6Vm6hQAQAAAAAAWE6XygVUqAAAAAAAAOyjSGU0FSoAAAAAAAC76VKZSIUKAAAAAADAMbpUBlGhAgAAAAAAcJ4ulX76UwAAAAAAALIUqdRSoQIAAAAAANBAl0ob/SkAAAAAAABtdKk0UKECAAAAAABQS5dKkP4UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIOX/AI2jFTUKZW5kc3RyZWFtCmVuZG9iagoxMiAwIG9iagoyNTkyCmVuZG9iagoxMyAwIG9iago4NTgKZW5kb2JqCjE0IDAgb2JqCjQ4MzIzCmVuZG9iagoxNSAwIG9iago1MzAzNgplbmRvYmoKMTYgMCBvYmoKPDwgL0xlbmd0aCAxNyAwIFIgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCniczVJNSwMxEL3vr5g/YJyZJJMEpGBbK3oTFzxIT4p6sIon/74zSep2LQjebMkmeXnz5vNjIED9n9iWCsPDbvjoGEFi8GLQzRyUwE4ozskIJbucO6qY4wi7+vgKzOJCQEQ+uhrtB2IA9v0F7oY3lbsc7rcKPlb4c9I/lrrVcA8DbozfoqPosMjs2KS+b3+JaC5xFE0gF7Wq/6pYP/qb+hx4xD4dKI6K/hLkoAkmxxhNRWmnVzuG9btqIDwPy3E43ZBompoeqwWMT9OMkfpPMSN69sCZnCoiFs4w7uD+TANTl2gBqjqKLn1G5WPRda5r2fdV55XFFsbrAw9ePQS1IAIfyeUYS04xfjsww7Wui71Ad7Dp4nonNHPDm3hNiHiWiSQXk9px8eCzVaeWNez9EHcfpk1/9dtt1gtggbPO0JKQb2cKjUWxMUkWEENlGqpFo3xYpM4qzYLOp73iy+au8n8tbhHnWezRg86Ri8WXEmjKetXbtmqZVFXqbd23ziJcHylHJ2boRSBI0MHwJWeclLVutGk5WGntY3emw3NTvRjrSH8BSCv3gwplbmRzdHJlYW0KZW5kb2JqCjggMCBvYmoKPDwKICAvUmVzb3VyY2VzIDMgMCBSCiAgL1R5cGUgL1BhZ2UKICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQogIC9Dcm9wQm94IFswIDAgNjEyIDc5Ml0KICAvQmxlZWRCb3ggWzAgMCA2MTIgNzkyXQogIC9UcmltQm94IFswIDAgNjEyIDc5Ml0KICAvUGFyZW50IDEgMCBSCiAgL0NvbnRlbnRzIDE2IDAgUgo+PgoKZW5kb2JqCjE3IDAgb2JqCjQyMwplbmRvYmoKMTkgMCBvYmoKPDwKICAvTmFtZSAvSW0zCiAgL1R5cGUgL1hPYmplY3QKICAvTGVuZ3RoIDIxIDAgUgogIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlCiAgL1N1YnR5cGUgL0ltYWdlCiAgL1dpZHRoIDQ1MAogIC9IZWlnaHQgNDUwCiAgL0JpdHNQZXJDb21wb25lbnQgOAogIC9Db2xvclNwYWNlIC9EZXZpY2VHcmF5Cj4+CnN0cmVhbQp4nO2d6arjMAyFh0IolFIopVBKoRRC3v8Rp8tdusSSLB85yz3f/7npWJEsHcnOv3+EEEIIIYQQQgghhHzSbI7ttt7jzu1x29R73OxZHy7dlWO1By5uj+suh/Wi2iPnS7M9dl+01R66+X5kR1csY7k9d08saz338PzUM43oZLm/dK9U2wjfH3zZV3t5ZsOn+a6caj3889HdhZ6YQbPtMd+NSs/f9j+d4dRM/wJeWdd5/in1/HrZ8MQ5p1ZwX+Xxi+QbtKvy/BmQ9IFLlcevkxZcVXn+DNgll7DKRnRIPr7G02fBJrmEVeqJNvX0c42nz4JV0oI1Uom+WuJBnW14DqRTiRpxbJ98+KbC02dCMo7VqCeSmXCdXXgeJJPR7hD+7Cb57HrK+vRJB7L4eiIhyHSs53NIr2J8f+KYfHTFDvPkSSej4bKIkEWxP2FHWMbomixdi7KezyGdjEYnhOkgWqu3NQ/SyWjwbiR4P2XtHNLKaHAYFYIoZe0chIXsQufH0kGU22AWaW0yVtsSgii3wTwEC0YW1oLvcxvMQ0hlIsOoEES5DeaR7rJGhlEhiHIbzETQ1QLDqBBEuQ1mIqUycWFUCKLcBnORLBgVRqUgym0wFymViSrqpSo06JEzJt0i7MK00XR3nttgPpI/BGmj6e48t0EH0nIGhVEp/+U2mI/QYApqtiaO29zgiIwDIbOPmdyUChiOyDiQYlrIwJMkA3FExoEwK9OFzI1KYZsjMh5EC+LnRqXkt86Zqdkh1fQBypq078bPGc8SYdKiwytrYvXCAxMu5I0QXRKK7wsvBvIhWhCtrAnFIM8NepE3QmxJmD553VFScyNvhFiZRNQPWEs4kTdCaHoh5jGU1NzIFkQ2fER3Zy3hRgxt0FxGymNYS/gRpVFkLiPmMawl/IjjTsj9Scx6WUsUIAY3XHgT8xjWEiVIDR+gd4gzOawlShCHZTrU7MNCHAdgX6IEaYDzBibPl98T1hJFCPN/dyAFhbzbVrrTdK4o9QQky5BLCY76lqHUE5CCQhbQOeNUiFJPAAoKuZSgIFOKnOgjMkWlYqEgU4iySZUXFIoLUpApRqzVuvIOhdyE5KBoOUqQK5VM5GqeV4oC0GSZwopbcUEG0XI0WabQTZRcl6o2AKXNW+aEmodT1QaghtESJ1RckKo2Aj2M+kOd9nbw8wQQ1DDauqtuTfFhEIWgh1GvE2p/mUEUgx5GvU6ouSCDKAg1jDqdUJkoZhCFoYdRnxPKbSUGUSCaNupzQvXFoCYKQ9VGXU6o7YLURHGoLSaPE6ouSE0UiOouDidU/yaDKBCtU9/lq6N6esTuPBClkX4nc9dSXZAjTlC0udFsJ9TGGDniBEaPeXn1t9aa58FdNLqyljcxo7TmOw7bw9FLwpyxtUbXCKiogVE1zC6ngNPfBypqcPSS0J58GFJbFoNw9OTx6jjGEk6TtDsqagFYchmjtmaIyCwGA7DkMq3JdQwBmYcGA7DkMibfMcRj5jEhWHIZQ0WhF/McrwjCossYKgpLNGYeE4LFefQyQDsVfIOf6AnC4j1qo9BQSTCPicLSY9IETUsoZh4ThsV/5GTGFIl5YCkMU0EhJjOGZj/zmEhMBYXgQ5Y0hn2lSEwFhaDMGFr9/FBdLKaCIqnMWNRxDhnGovfW7/SXA4a+bsf5mGBsVX2iKNRP0HScjwnHVNX3C5uGye+OpUQ4tqq+Lx0xui9LiWiMTvjZrjeVgiwl4rE64Xs0tKkBHFGrgE1ae7fFwiYGsCtRAaMzvdV1thjKar4KVid8jqNGs7MrUQWrEz7FUWMMZTVfCasT/sZRYwylC1bC7IT7zH/AQe1aWJ3wKzGxxlD/7V4kE7MTPup6YwyloFYRsxPe4qjV3nTBipidsFtb9VC6YF3MTtguTD2lji5YGdPAyx3TYMUNumBdjC0KO3TBylhbFGbogrUBOyFdsDq2sSUzdMH6GMfWbNAFB8Bc51mgCw6BaX7XBl1wGIyCtQG64DDYBkANsC84FGZtTYGt+aGwa2siPOsyHJiyngNqwwGpKDgjOiSIsp5j2oNSXlHwpMSw2Lv1CVjMD421BZ+CxfzQFPYoWMwPT1kywwu4RkBJMsNKYgyUJDNzPHO9OG6nplH4k5mJpTGL1XanR437tUmn/XpCSbZbmbHejT88y/Xu8KXjqzL8z3zl5bCZilrh7fVOIY1ZrH5s90Bzwtcpvva4nYQVfW2msacxzXp36gkvyt79ec6nPe1GvzH62kwjTmOuntdnvDvK5p1IzU+7cfuipygcaxqz3B7EAkkWIYSXedwRNb8oHKUaI7jeL6IZlMOS7WEz0tCTXxSObmu4Ws/2y8WvYRhe5cs4Kw3rQd1vxtVUWm4zkjEpelgzgtP4AmruwEU7mv9BszlkFrTCT894kS+HUblifkk4jnJ+uTcfcPxFyMEy84HTdiy7ou0C7lfOQ5twsc51vu9fnvyTjkN5l/0YMoKlayUG/chgsynoTScdx6dOXRPUgd9mnwEHzGaarSN2PpHURv0z0Mch46n1xp9PBinqS83XpaOH6UOpSc5DGXFRsCDV5+0B5uvS17l70oEXhjFi0emJqiZcbFAnPRLJB2KGvb4Ry351xbJwXTpW90RClgGdx6trxNLXrpIJl3vouf/+egJ0EujGsVp2Wn6Qt4IJF5DN74Xe9QWear5yqNIAL966u3hxZgW/vahLjBcAw/Sdyz48miIMGCvOLLa4s+LP9G6E2Ata7pxjo2nxoYnvnxn1K5cR7vf4yX2P82isOoc41c0rxXwSY8JNyILeuBwSVVCzOQY44mUb84rjDBgx9NTsApbyRqvpX6sIV4xwRKQB4RJpVPg826bOmi06qbk6InpHxBoQa8I1Snp5oc2q0dytK+EHHJCpqV/NTgEz4SYi+3R18dby0JuDE6xGLFGzU0BMuNgF2O/sH2pZ7sG/BxRMIwyIMOEiIH0pbtyhjdjuyoNpjAGLTRhgP5A8iTZi6YYYZcAyEzbwzAGqLoMTm1NJdRFnwAITNujy4Yyvoksmcz45uVurkQb0mhAdPy9BDTpsk+Tis2GsAV0mBNuv3Uf2uxrkluixYbQB800Itt8xviuHHBbItmG8AXNNuEHaL0pCfqcB9rzybFjDgNc92r6MSP2lPdQ8ygHsO2fYEK2FprA2m1ZA/TO4ldpDg5OPrDasZUCjCRug/aq63y84Cf5iqQ/rGdBiwkXugcU0tXa/PnA6hF7jOw3obJSfFafYwl4nnNzvAzfJc5SL2LVvybbe7EccQlzBdhBoy80LbJR8LwQT51TarTJw3l+ZNiFsA2x3Qx9h/AaVmbbJs0ROAz7O+Djjb9ufYC1Qn+xyilJBoDbES/+m4Fy073zE+3GYviVegwLo0NvfJyhx6dQTvJwu/juM7Z0M3r7/ElQALWrOhIEaMPjYDp0GfN7IvJHvTWEDBdDAGdpSMCLT6wbkVdJeMxHvTn14ep1AGego0s80GBs+VWNuKfRtn/Ga8Ke2X2DStZHb7wbGht+h1C3EfGQh3h3s621y1qNvTMB+NyA2fITSFcyAfme+heMG0lI7TcN+NyBNs+v/1326rO9wlt+EG4iGNs78MwWktmjdO09/k7ZOdzHBeVL2uxEx/Gol1WXHj+pbGZf+YgU+gGclPSZRs0H1RFotHDvIHqgdac5lEBNKiv3oWdXfeuT77uqbcEIJaD/QWS4DWne9sglN0wcjB9aNMaGPR9Q0YfshjU8TTDlswjKiVM+EhylvgK/gphJkbGOClUw4vQpQpEp1aJ3zXFZ4oeYSQH+pEErtQStenTnOJ4D+gppPSJFz3iHYhHPIQPuIzUrzDqyEmnA0I2h4lnHrln1oLOynaMPCEwc36/xK/sFNUM/9nfllMO/EaKUu6T/ChJPX0Cxg5hVecPZu4CacvwM+WIALi8RwtQHMDbM//AkHfAB1w5KLspEm/CsO+ADohmU3neMUtj/kgA9Qblh6PS/IhH/LAR9g3DDj1oLU70AUhjOvAVMAakPEjZKAV2myczClFNeGoJUrrCrmqoJaKPzcQAtautK68A/ugQ8A10EgxjABUfTP5aEPIDK3+G12E5BMxi8qTBjUacrCn4Hq18+ypSuB6zOVFYS4ir4d3cH4UJC93nPBJgSV9/6QG4IbvX5dDaxs/xk3hA9beE0INmD3R9wwZNJiNB3eP6CPBk07OUwYdDhu5rVh3PB2tgnDTjdO97SgDvBOzk8yC8PI46kzm7f/JWBA5pkRTfxO+9BnivgDvXYTxk/dz1Bmq3GK0GrCKpda9F3xN2EqHT+zmbDWrSQzCqX1joBaTFjvWpm5hNKqx7B1E1a9F2gWWWnIZ2nTaIcIa1/spFwAP36Qn0WxIXvhADdzTfos2iDXOokmHOJqteluh0NdrSaYcKCLwhIXwI+dqKOCOkkTDnXT29SuprxTOYF5JWFCtwER/5eJ2RBy60G7wV4w6v1r130Msh9M5IrmG5gE9CZpuJsZPVOIW+efuk8AYFTdidgQY7+vUXb3IMRH/uf9S9+HWjCXqUzAhqAC8KeIcrek3kzoNuBPNQfSlkZuQ5D9nnV9zPcKls4/8jK6tMT870ZsQ9B37N6mhRrAR1+8r8F7RgS6l+o4zrwUVT98KJvl3+1ZOA34mQ+hZPrx1Rawb4H2qfne00Xt17vgfQV61TBUq2xc1983KP0sNW7pLOW+0hBncE8tMUqtH/ILyq8sYWJVujXkfMTJ/2+lEXrUhtHux5DUwD7DK+8N/g/x+nYueZIfJ9oPndSgvhrZ6fuC04Q7379Tj2LgZl8vm+GCKS58Wj4L7TShy1ksZ2lwzc+BguliA+yWmi5YrndJvfF6GGAD+1Q9M12CPn79+PnGV7CWCe3HgoFDJFUdEep+OcVtHRNmnetGDgLVcsQVtNOdV9jWMGHuwXykDdt9+KR3s4f23rOFiXgTOm5WgA7knSPr/MUWfADecdIuelzQdzUGMCu/coyJposN+mpe3yBlrAndd5tgByvbA3y6bY0e83La71+sCUsup4GJww8uyC1xjSwd7vjt9y/0UxFlWxCsQfMFxogLvPnK7PcvzoSl9wVfgdZZXbkR4Xvf/UeVJ1sxJgQY8MoKvWR+IzbbiFMrmMZmhAkxBvx3q7jgm44jsVlh675vYKoD3oQwA/5Di1YPjhktjGZzjKmbkb0wtAkv4Doaq1w9OO8s8XS1D0oTWvCQHVadKftqRS/A3ukvl8NaetWW27AD7xf8OUikCQMMeGMdsp7nXSKWBYXOGzGiO/B21zA9GV0ifv/gY9/DogyIDp+/oEwYZ8AbK3xBffXDvifFRNBz5BQIyITRbbkFbhrsm94b4r2nswTaQ3C7C3LHa42+agNOa3rrQ+/hkCSh7vcFwIS1JlSWyEK/f2XB0nqdsY9iE5Z/scIOTGM+9f99YA2Kb28lKTyKgvj2Vg4YIyZa46iLw3P0HwBFL15vVh4MwIiJ9GJR+ndvnLfVp1cLTIgUQ3MoNGKb+rvFetoA5vtXIpEOZcAb64M/O02G/rJ6Yhjz3Sg/IjoMS68GnUyfC+qJ42bIc1S+M7pDG/BG45Ki06HD59ftYcDTNw9c4sxILjvLn2NJ1BI3HCeqzvFTxhYcXxMd0yno5S4nngrflckMo+2wsfOF7FKodiGosdiYXVFa9IwwejI1jOuRu5+MJIa+sDSNJvX2Jb4xhtFTqsc4HNlhtB16706wVhNU8eNchjA6QuvdyM/Lh5BjbFwDqhQM5Z1LDKOX43ZckfMXjzo6xjj6Q5O0ohhEhTB62q1Hk7V80niqCfR4Gpx+KypfOOwJo+1pvxmr633j64HXbCx5+bSi9t697Cfn46g974e1y4BdN8od/ZPFc3ajbt/bH9ttJvL/u/4PvRqxsqWMitXuMUyo7t7Nab9bjT1ovuFv8k7sc53LzX68GXQBjduAXTuFPWL+lIzyzfKVnhoOUfuJyWz2M6ZsEHP0ReH8KR1UnlgyMz+8V2j/wGRmYMqv+WQyMygFlcQPTGaGBHEo6DL0f+IvU1ZJfKOo/SQQ0EdmWFEMBeqkxxTaTPMEdqqSFcUwoFyQFcVAFBfzT7CiGALQZ8juCIPsJAqkC45rBv+vgHRBlvUDgHVBOmF9sC7Isr46aBdko7A2Zhc0W5pOWBWzCx7t4jedsCZWF7w6lrkHTCesiNkFVzk3XdAJ62F1wXvTwXy2nE5YDasLfo0SmrMedplqYZ0w/NarzXGUXaZKGPuCPy5lvm6GO2EdjH3Bp3Fsq9NyJ6yD0QWfe37WgRo6YQ2MJ3Zf0hLrQXs6YQ1s/vR2pMUaR+mE8Rhlsve5CWMcpRPGY7vS96O0s9b1dMJobCcleo4FGut6NuujsQnVfTc+GOt6NutjsQlqvfOfxg2UThiLqZpPnOo09plGfd/a9DFV84nDSMabgzg7GokpEiavajJqARO7EGlamG7yTVvAdhHw2C5wnhOmUkLo8hnFNTaZwrDkIqKqYisKWdWHYXEhuZ4zJTPJ7xqRQiylhJJJ2opCVvVBWFQVLZE0yapTunh0SljEaXVYyZbMsKAIweA+huaQKZlhQRGBRRK1XA1jSmbYJgzAkMeY9i9TMsNbggIwdNltFxpY2vXsUOAx6DFGTdqk7PB2CzgGPcaqhlmkHeYycPQ8xrzopjYxcxkwemcoY8zMUlEwlwGjN4Zy9GhDRUFdBssC6YI2hZW6DBR95jpPjTZIrMxloKgrnlnAGcp69piQ6CVcbkPIUNZzaA2IWsFl5x0GJ+Sto0DU3DFfQjE4IUtCGGpn0DHjaeg2slUPQw2iHhVTbzeyJIShqWCuMWuDwM2xQxCqouZrJOhOSGUNhLbUzpMOuhMyjILQgqi3l6c7IcMoBC2Iug8b6U7IMApBcxV/O11teDCMQlCCaMF5P12YYRgFoAXRkrpbFWYYRgEoQbRoqkx1QoZRAEoQLZO+VCdkGC1G0S8LBztVsYBhtBhFEy1dYa3rwXsRipGXuPgeNHVihi2mQpQgWn5gWhN82GIqRBlxKk80tNlRDjwVIo84AZZXm2PkwFMZinSJmOmME+3IPy3RgCSKmr7Nr1AUIWvPmHlApaqnLFOEuLagY5paVU9ZpgB5cVF6iVLVs54oQMwyYLeaKxULJ38LEL0DVqkpBQXrCT+yIIPbn5SCgufQ3IjhDag5h0t3fxYxz0cmGLLyw/6EF3F/gu5OSocC+ag/hVhLQKUS5XYLCmtOxAQDW2fLuQyFNSdSLQHem+RchsKaD3FV0UKJnMuAH/ZXkGoJeJUt6zLcCF1IfQn4ziTrMqwIXUhLiu8XiLkMK0IP0jx1QGoht0Hwz/sDSIOiEQ0fUUXnRuhAyg4jhjjF0WKObucjpRYhE4Bi8cIeYT7SvhRzX5bk9Lx3Ox8hqAUtp1gSclgmGyGxCJIpxbFDXpOXi7ScUT1zqR1JcTsXoWMXtidJXULW9LkIEklYZi8qa1EPnS3CNhiXVEhKLMed8hC2wcBmnRRGOfebh7CWgfKIFEaZyuQhbIORlZkQRpnK5JHeBkNXUgqjkc+dH8I2GLofSWGUqkwOgi/E3i0hhFGqMjmkt8HgJoHw6nDSIod0myA4qRfCKBtMGQjrGL0bpd8dNpgySPcGw2dvhRZT9KPnRLo3GD7tIGTBnJWxk27zxKf06UqUupqd5CJWOMCQ9n8mo2bSk6IVFjE98ERdzUz6sroaLZ7kUUKeYDKTFEaqJPRpNaHG0+dB0guqdHjSsgybvEbSCX0VaTItJ7CcMJJ0gkpX8yRlGSajRpL5fCVlMplIsU1vJFnPVyqpk/UEywkjy31CF6nVY+3PpC579njtrA49q1itHuupJ9oD05hc1h9GrLYNvadS7YH9eR+r13BazQteypnLnuYrYbn7ye0rXvP588zzllV8Oc3meI+nFacc7vXM5bDhF3tgLHenmu25dXuk8xFCCCGEEEIIIYQQif/EcnVmCmVuZHN0cmVhbQplbmRvYmoKMjAgMCBvYmoKPDwKICAvTmFtZSAvSW00CiAgL1R5cGUgL1hPYmplY3QKICAvTGVuZ3RoIDIyIDAgUgogIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlCiAgL1N1YnR5cGUgL0ltYWdlCiAgL1dpZHRoIDQ1MAogIC9IZWlnaHQgNDUwCiAgL0JpdHNQZXJDb21wb25lbnQgOAogIC9Db2xvclNwYWNlIFsvSUNDQmFzZWQgNSAwIFJdCiAgL1NNYXNrIDE5IDAgUgo+PgpzdHJlYW0KeJzt3WtvXdWdx/EXMlJGoIDJxfHxCSEyacjVcYhzwbEDzuRSTKEQRoQSmAqGMuqQioFRWqoRaqUOlVpBpZGQ8gCpqHk0gsfzns6csNDu0bnss/del9+6fD/6P8de2/qy9jWDAQAAAAAAAAAAAAAAAAAAAAAAAAAA3f38f/9vdNQ/Tto++/ELo6P+cQB4NBZPKmpvLKEUFcjPrHJSUSfqK0pOgXQ1iSchtdewouQUSEXbeFJRS20rSk6BOHWOJxW10Tmh5BSIhH08qagNJxUlp4CQw4oS0g6oKJA6KirkNqFUFJCgokJUFMiA24oS0lZIKJABKipERYEMUFEVTueBPFBRFSoKZIOQSlBRIBtUNDwSCuSEioZHRYGcOK8oIZ2LigI5oaKBOU8oFQW0qGhgJBTIDyENiYoC+aGiwXA6D2SJigZDRYEs+agoIZ2KhAJZoqJhsBEFMkZFA6CiQMbYjgZARYGMUVHfSCiQNyrqGxUF8uapooS0QkWB7FFRf3wklIoCsaGi/pBQoASc1PtDRYESUFFPOJ0HCkFFPaGiQDkIqQ8kFCgHFXWOjShQFCrqHBUFiuKvosWGlIoCpaGiDpFQoEBsRx2iokCBqKgrnhJKRYHIUVFXqChQLELqBAkFikVF7bERBUpGRe1RUaBkXitaQkhJKAAqaoOKAmA7aoOKAqCinflLKBUFEkJFOyOhAAxC2gEbUQAVKtoBFQVQ8V3R/EJKQgGMoqJtUVEAYwhpK1QUwBgq2hwJBTCJijZHRQFMRUib8JpQKgokjYo2QUUBzBKgoqmHlIQCqEdF61FRAPXYjtbwnVAqCmSAitYgoQDmClPRRENKRQE0QUWn4nQeQENsR6cioQAaoqKT2IgCaIWQjqGiAFqhoqNIKIC2glU0iZBSUQAdUFEjQEKpKJAltqMGCQXQGRVlIwrABttRKgrARuEVJaEA7JUcUioKwF6xFQ2TUCoKZC9kRaMKKQkF4EqBFWUjCsCh0rajJBSAW1SUigKwVE5IgyWUigJFoaIkFIClEkLKRhSAP4ErKgkpFQXgT/YVJaEAfMs7pFQUgG8ZV5SEAggjy5CGTCgVBQpHRakoABvhK+o7pCQUQGCZhZSKAggsp4qSUAASeYQ0cEKpKIAKFaWiACylHlISCkBLUlGHIaWiAOTSrSgJBRCDRLej4RNKRQFMpaqoZUhJKIB4JFdRNqIAopLWdlSSUCoKoF5CISWhACKUSkXZiAKIVvwhJaEAYkZFqSgASzGHlIQCiJ+wovUhVSWUigJoi4qSUAA2ItyOshEFkJaoQipMKBUF0I22omMhJaEAUhRJRdmIAkhUDNtREgogafKQUlEASdMm9PWP/5OEAkidKqG37//tmfMX3riyQUUBJE1V0bUXd54+s3b87LN3r22RUABJC5/QK7/45TChZtbX139z83kqCiBdgRP6yh+/rBJq5qWNSyQUQNKCJfTON9+d2Nwaq+hw3t3epKIA0hWsouuv3ppMqLlA+sn1KyQUQLoCJPTqrz6ZmtDqAikVBZA0rwm99Zf7z5y/UFPR4by66fcCqXqBAWTOX0LvfPPd6avX6hNq5oOrvi6QqlcXQBE8VfTi7Z81SajXC6TqpQVQBB8JvXHvvxom1N8FUvW6AihI+Muhk+P8CVL1ogIoiNvLoVOfDm0yDp8gVa8ogOK4quisp0MbXiB19Yq9ejkBlMg+ofVPhza8QGr/ir16IQEUyjKhky/Ld5vrz12kogAS1Tmh5tuhTio6HJtvkKqXEEDROle04QP2zafbo/jq9QOALiFt/oB9qztNHR7FVy8eADzUKqFtH7BvPm3vNKmXDQB+EP6O0qxpdadJvWwo1N4rr1Sj/lkQkfB3lGZNw48+qRcMsXjQOzM6Af6LoxUdmwD/dURrbkKbf7LJfpq806ReMGiMNXPq+P4ZaipKUQsX/o7SrJn7TpN6qRBIk2YGrmjDhFLUYs1K6Og/6BlmVs89O+tOk3qR4FG3bIYMabeKUtRyBL4pXz+zbtmrFwkuucpmQhWlqNkbS2i3r965mslb9urlgQOeyhmgom4TSlEzFvimfP2M3rJXLwy6C1DOACH1WlGKmpPwN+Xr587zl6loisKXM5uKUtQM/Nzuw6HO599fvqleEjSiLafXikoSSk7TNdz4rZ57Vh5PM8+cv3Dnm2+HYVevCqaTBzNMSOUVpagJMafPH1zdlPfTzM5n/11dqlWvDf5OHsmSK0pOYzZ6Q/yljUvyhK6/emvssQH1ChVNHkZVReW1JKepGHus6Dc3n9ee139/Lv8dFZWT91AeUnkkKWoSpr4opD2vv/qrT6a+CKBeqlLIG0hFyWlCal5af3VTc16/9uJOzXv96gXLmTx9sVVUHkNyGr+5H1BaX18Pfy5/+/7f6j+Qol623MiLR0XJabrmVvTuta1IzuUJqXPy0MUfUnn6yGnkGn5Y/o0rG8ESOnlfnpD6IO8bFY1h7NencA0Tambjwvkw5/KT9+UJqUPyrKVVUXnlyGnMWiXUPPh0/Kz3B59Gn7EnpA7Ja5ZoSOVxo6XRaptQM+9u+33w6eLtn3VIKCGtJ4+YfGxWT541chqnbgn1/ULTic2ttufyhLSGvF3xjM0yymsmH1d/kDmxSajXB59u/eW+TUIJaUVerdjGZjHlEYtkXP1xZsA+oebBJ+cXSK/84pf2CSWk8l7FOfYLK49YPGO/mElzklAzd56/7DCh9a8pUdG55JmKczyttrxjMYyntY2cw4Sauf7cRScJ7fBoEyGtyEsV24RcfHnKYpiQC67lPKGfff/gk5MLpK/88Uu3CS0kpPJeRTXaYyFPmXy06x+Aj4S6ukB6+V/e9ZHQvEMqT1Ykoz4O08mDRkud85dQ+wukbi+HZh9SebUiGfVxaEreNHLqhO+Emun2BKmPy6G5hlQerhhGfRC6kzeNlnYWJqFmOlwg9XQ5NLOQytslH/URcEmeNVraSsiEftb+FfuGH74rOaTyfBFPf+Rlo6VzBU6omebfIG314bsCQyovGPEMRh43WjqVJKFmmtxpOn31WpjLoSmGVB4x4ikhjxstHSVMqJn6R/GfOX/Bycvy+YVU3jHiGQN532ipPKFmau40dft2aN4hlaeMeEZInrgyWyqPZzWz/hV7h98bySak8qDRz5jJE1dUS+XlHJvJd5psPr+cZUvlQSOeCZFXLvuWyps5dUa/iq+9oxRbSOVNo5+Jklcu15bKa1kz5p8NDfaOUvwhlTeNeOZBHrqcWirv5Nx58YUt+U35GEIqzxr9zI88dBm0VF7IhiMvpDyk8rIRz4zJQ5duS+VtbDjDH1WeR2FI5XGjn+WQty6tlsrb2DyhhjyP4UMqjxv9LJO8dUmEVN7Gtgk15HkMFlJ53Ign5LmLuaXyNnau6KCMkMoTRz9RkecuwpbKw2iTUEOeR38hlSeOfmIqee7iaak8jPYJNeR59BFSeeXoJ+aSF08YUnkVHSbUkOfRYUvllaOfaEUevfAtlVfReUINeRvtQyqvHP1EZ/LoBWupvIqeEmrI22gTUnno6CfsyaPnO6TyKnpN6CC1ilYhlYeOfsItefc8tVReRd8JNeRhbDvy1tFP+CCPnvN5euWoPIwBEmrIw9hw7nz1zbX17Y/7p+XRo5/wRJ4+V/PEU0f/cfdC/0Dv/c2L8kL6TqghL+Tcee29u5sHTz+3/+hw3lk+Ja8f/YQ/8gbazL7LO7sX+8OEVnPx6NF717bkqfSaUEPeyfotqOlnNa/1Tny9rC8h/YQ/8h52Sej69lhCzezft/j2pXV5ML0m1JAHc3LeuPf7ags6Ni8tHf+ir08iCYVX8jC2SOjZrUcW9k0mNNpNqadDJs9mNe/89dubWy9O7Wc1Vxaf+by/Kg8j/YRv8kLOT+jJ8zX9jHNT6u94yfs5nDd/96dZW9DJ+fRg7CH1d7BQDnkna8bcS2o+MWxKfR8vbUJ/8tO3GvazmmjvN/k+UiiNPJjjW9DLO4/1DrVKaLUpFd6+D3OwJP18689fbZ/aaJvQ6jJpbPebwhwpFEgezx8Sur796N4DHRJazZXjx3JNqBE4oa9/+OvmZ/GzLpNGcr8p5GFCscQJPXm+/l5Sw+kf6N19YSPLhBph+tnkRlLz0V4mDX+MUDJVQp9YOWHfz2oeW9j78tpqlgk1ApzFP3/knKuEai+Tqo4RChd0C9r1QujcWVt52t8tJ/Uh8hjS196767afqsuk6kOE0gVKqPWFUMktJ/XB+UHkZ/GzLpOGeZpUfXCAH/hNqKMLoXPn+ulT+SXUiPwsftZ4/XqJ+pgAU/hIaNsnQi3n+KHDTs7u1YdiCicJtb8X33ZuL590fnavPhRAHYf93H/pxtRX432P/feg1Aehjk1Cd27cCtnPaq4dcPnSvfoIAI04OItf3QhzFj91bO7dq9d+vm4XQjs/UR/P2b164YF2rM7inT7O1HnWVp7OL6FG2wuhgc/ifZzdq5cc6CiVs/hZMzy7b36ZVL3Y7TS/ECqP5+h0OLtXrzRgK5Wz+FkzPLtvcplUvcxdRHshdO40P7tXrzHgzJx+Xt6J5Cx+1tRfJlWvbnc1F0Inv1Ef1cz9YL56aQH3ZiZ0xmfqY5tZl0nV62pL+0SozdQ8ma9eVMCj8YQeOxvhWfysWek/OXqZVL2WzowmtNU3lmOY9/un6CdKU53FLxxckYex7VRPk6pX0b0I7yU1nJeWjv/PMglFWYYVeuHUKXkSu83B1YvD/wuol9C9YYU+PbgqT2KH2blx652/fjv8v4B6CYEQRq8oDjd1+/ctyqvYfB5Z2Ldvfbu6HKFeS2dGz4g/769eWXxGHsaGs3nw9Bv3fj92XVe9nIBHk7dm7l3bWlt5Wp7HJrN7sb//0o2x67rqFXVg8tbMF/0zw3NkeSHnzvapjTtffTP1GQP1ogJe1Dwp9M/rZx9b2CvvZM0sHFzZd3ln6jMG6nW1Musxoa+Xz7zWOyHvZM288ua/zn3eVb26gDNNXvy5+8JG/0BPXsups+dHp+e+MqBe4y7mPrL+fv+UvJaTMzyLf/N3f2r47pV6jQEHWr2HfuX4MXkzR+fhhdCT5xu+e6Ve6XYavvvz6cG4LpNeW982N5JajXqxgY66fRPp7UvrkZzdP7r3wOi9pJxC2uo99C/6Z64diOIyaZOzeEKKbHRLaHXLaaX/pDahj/UOzboQmnpIO3wQ6evlM7eXTwr72eosnpYidTb9jOTsvsmF0ERD2iGh1XzY17zT1O0snpAiUa4Sqjq7f3ghdHXDJqExh9QmoaqnSX/y07dc9ZOWInJu+zl6dh/s3v3UJ0KzCal9QgM/BDX1iXpCiix56ufoXDzq/d+we+Kpo676GWFIXSU02Nn99qmNt/78lb+E0lLEI0BCzby8turp7L7V40zJhdR5PwOc3VfvxQcb9VFCoYL1sxof790Pz+LbPs6UUEj9JbQ6u3d+7/619+6G7CchhUr4hJq5d23r+KHDzs7iV0547ac2pL4TWs3H/dNONqWuHmeipYicqp+jY/8QlKt78dGGNFhCzdh/wCTYhVBaCiF5PEfH5jLpY71DDu/FRxjSwAmtpvN79ze3Xgx8IZSQIjB5M6dOt8uklk/Uxx9SVULNfN5fbfu6qKcnQmkp4iGvZc20elc0wI0keUu1CTXz9XKLTenrH/5ankpaCn/kkWw4Tb7z/MTKiW7vxSdUUXk/W21KNw+ejudCKC2Fc/Iwtp2X11Zn9fPhp5nObsnLGSCk8nI235TWfKY+5vFx1JAfeQ87z9SX7mu+US8ftwdO3szmm9II7yXRUrgiL6HljN5vCv8skzCk8lQ235Tu3LglzyAthQ/yALoa8/WSmLegzkMqj2TD+aJ/5s6//Ye8frQUzsm753w+uvlP8jYGC6m8ja1m+APLu0dL4ZA8d57G/HbyNgYIqbyKbRNqyKNHS2FPHjqv/azI2+g1pPIqdktoRR49Wopu5KELllBD3kZPIZVX0TKhhrx4tBStyCsXuJ8VeRudh1ReRScJrciLR0sxl7xyqn5W5G10GFJ5FR32c5S8eLQUU8krF0NCDXkbnYRUHkZPCTXkuaOlqMj7FlU/K/I2WoZUHkavCa3Ic0dLCyfvW5z9HCXPY+eQytsYIKEVee7IaYHkfUsioYY8jx0qKm9jyIRW5K2jpYWQxy2hflbkhWwVUnkbJQk15KGjpRmTly3RflbkhWw48jYKE1qRh46cZkZetgwSasgLOXd657bf6/1IXkhtQivyytHS1MmbllM/K/JO1szShet7di0s/MPuP/RPyjspT2hFXjlamiJ507LsZ0Vey6mzuLGz//GlYUKHs7Rr4cvl0/JaxpDQirxy5DQJ8qBl38+KvJmT0+sdMQk1c2z34v3lVXkzI0loRZ44WhotedDK6WdFns3RWT58ajShZp7b05dnM6qEVuSJI6fxkNeszH5W5PH8IaEnL00m1MzO4mF5PGNLaEXeN3IqJE8Z/azIE9o7t23uKM2aD3pHSWgNedxoaUjyjpHQqYQJHb2jNGuWdi1ob9mrj08j8riRU9/kEaOf9VQVXVo8XJ9QM089sld1p0l9ZNqRl42cOicvGP1sLnxCp95RmjVrCz0S2pA8a+TUkrxdMYz6IHQUMqG9M5vNEyq506Q+Gg7Is0ZOW5GHK5JRHwdbYRK6uLFTf0dp1ny0fIyEtiVvGjmtJ69WJKM+Di6FqOiegx0SGuxOk/oIeCEPGjkdI69WPKM+FF54TWiry6GT4/udJvXa+yWvWQwjXH95r2Ib4bEIIJ7LoZOzve8QCbUkT1kME2y15bGKcIItvlY8l0Mnx8ej+Or1FpB3LJ5xvrbyTEU7zpc6cpFcDg1wgVS90mLyiMUz9ospz1ScY7+w6YrkcqjXC6TqNY6FvGDxjM0yynsV27j6+0yag8uh57bdJtThBVL16sZIHjH52KyevFrxjKs/yDxYXg7d++g+HxVdsH6CVL2uUZOnjIomOq7+AvPT/Vz+yWOeErpg91V89YomQ940KprKuPqTy1iXhM7+dqjDC6QkNAx53JKo6KC8kDr56ypH23N5V4821c/rB1ZIaEjyysWc0EExFbVfqGI1r2jDD985md8unyCh4cmLR0XpZ6IiOZcfnYbfIFWvXLbk6aOixDM5kZzLj06TB5/Uy5Y/eQPlCTXkxSOe8YvnXH506h98Uq9ZWeQ9pKLEM36RnMuPztKuhVnn9erVKpc8jFSUeMYsknP50Zn6r9ir1wkPyQsZsqKD1ELq8BdHW5Gcy9ec16tXCOPkqQyQ0EEKFXX7+8JGDOfys87r1WuDOeTlLLCibn9NuOL7ffm2Y87r1auCFuQJdV7RQUwhdf6rwYeN5SPyeP59O7p4eBh29ZKgozwSOlBX1MdvBH/M6fP2vkPyfg5n/+NLDzfG319kUC8MbFFRylmI6lbOsd2L2oTu2bVQJZSK5iTFig6ChNTTT46QRm+I319eFYZ0mNDeue2xxwbUywP3UknowFtF/f3ACG/y4cw/9E8uiR4ZXT62PvVFAPUiwaNCKurvJ4Tc1BeFfrt8QpDQw6dmvU6lXiQEEmFFB11D6vVHQjxqXlr/oHc0ZEJ7vSP1r/arlwqhRZLQQbOK+v4ZEKe5H1AKdst+9KY8FcVUUVXU938RqWjySeS1hZ7vhO7ZtbB04XqTT56qFwyxCJlQYJaGH5a/v7z61CN7/Z7LT9yUJ6QA4tewor5v2c+6KU9FAcSseUK93mmae0eJkAKIU9uKDmfH9Rfz9j++1CGhhBSAXIeEOr/T1PyOEhUFEJXOCXV7p6l3ZrNzQgkpACGbirq607R8ZM0yoVQUgIRlQp3caTIfDnUy6uUEUBwnFX1g8U7T3kf3zX1HiYoCiJOrhJrp8PW8qV+9I6QAUuG2ol8un257gbTtA/aEFEA83CbUzEfLx1rclO/0gD0VBRAJHxV90PhR/CafbCKkAKLlKaENL5D6uBxKRQEE4zWhTS6QOnk6lJACUPFd0foLpA6fDqWiAMILkNAHsy+Qun06lJACCC9YRR9Mu0Bq/7I8FQUgFDKhDyZesa/5Bz0JKYAkBK7ocN5eOmISurjnYPiEElIADoVPqJnn9vQtvx1KRQHEQFXR+8urPzp+XpVQQgrACVVCzWgTSkUB2NNWdPgDEFIA6ZIndEBFAaRMnlCDkAJIUQwb0QoVBZCceBJqEFIAaYkqoQMqCiApsW1EDUIKIBURJtSgogDiF21CB2xHAaQg5ooO2I4CiFvkCTUIKYBoxZ/QARUFEKskNqIGFQUQoVQSahBSAFFJK6EDKgogMslVdEBIAcQkuYQOqCiAaKSYUIOQAohBuhUdiELq8OcHkLqkEzpgOwpALfWKDtiOApBKPaEGFQUgkUdCB2xHAYhkU9EB21EAweWU0AHbUQDBZVbRAdtRAAHll1CDkAIII8uEDqgogFByreggeEgD/3YAYpBxQgdsRwH4l3dFB2xHAXiWd0IHbEcB+JT9RtSgogA8KSGhBhUF4FwhG1GD7SgA58pJqEFFAbhVVEIHVBSAU6VtRA1CCsCVAhM6oKIA3CmzogNCCsCFYhM6oKIAXCi5ooOAIVX/ogB8KTmhA7ajAOwUvhE1qCiAzkjogIoCsEBFDUIKoAMSWqGiADqgoqOoKIC2SOgotqMAWmEjOomKAmiOhE6iogCao6JTEVIATZDQWagogCaoaA0qCmAuKlqD7SiAeiR0LioKoAYVnYuKAqhBQueiogBmYSPaECEFMBUJbYiKApiKijZHRQFMIqHNsR0FMIaNaFtUFMAoKtoWFQUwioS2RUUBVNiIdkNIARgktBsqCsCgop1RUQAk1AYVBUBFbXBSD4CKWqKiQOFIqCUqCpSMjagTVBQoFgl1gu0oUCwq6gQVBYpFRV2hokCBSKhDVBQoEBV1i5ACpaGiblFRoCgk1DkqChSFivpARYFykFAf2I4C5aCiPlBRoBCczvtDRYESkFB/qChQAirqDxUFSkBFvSKkQN5IqG9UFMgbFfWNigJ5o6IBUFEgYyQ0ACoK5IqNaBic1AO5oqLBUFEgSyQ0GCoKZImKBkNFgfxwOh8YFQUyQ0IDo6JAZqhoYJzUA5mhouFRUSAnJDQ8Kgpkg42oBBUFskFFVagokAcSqkJFgTxQURVO6oEMcDovREWBDJBQLSoKpI6KalFRIHVUVIuKAqmjonJUFMgDCVUhnkBmqGhgxBPIFRUNg3gC2SOhvhFPoBBU1BPiCRSIijpEOQEAAAAAAAAAAAAAAAAAAAAAAAAAXv0/v++nRwplbmRzdHJlYW0KZW5kb2JqCjIxIDAgb2JqCjU5NjgKZW5kb2JqCjIyIDAgb2JqCjY5NTUKZW5kb2JqCjIzIDAgb2JqCjw8IC9VUkkgKGh0dHBzOi8vcG9ydGFsLm90cnMuY29tL290cnMvY3VzdG9tZXIucGwjU2lnbnVwKQovUyAvVVJJID4+CmVuZG9iagoyNCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAyNTUuODIgNTk5LjgwNSAzMTguMTUgNjA5Ljc5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyMyAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNiAwIG9iago8PCAvTGVuZ3RoIDI3IDAgUiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeJzNV01P3EAMvedX+A8QxvM9EloJ2N2qvaGuxAFxoi09sFRw6d+vPR/JTCZL4YZgScbx2M/vebzhZUAQ9HPGFxckPByHl2xDcBKUzSZjQYnRGysEwhHiGkcUcf1E7ovV5JtXtjzLkab1b7gdngcBX4a7e3L9AWI08HcQfboq5PfhpsLJT8WnxVkjVSg/MdKXwenUDtKOGEwIAbwE6UZJPg9HOP96lLD9E4u6aRvFajlaNG0DCQh+9D5byTZKQ7n54RNISqK1EEJ2S3ZbWEwsO11PFpjj96GWOiSPt9ChGUWwzW0KNa0+gqgNwWgEPA5Xh+F8T5yhgMOv+SQqotsR90EDIu0zXImDwxHuLuhuS4KJzT0cvg27Q1uVxtHQif1UpMe2ktwi2npqEw+vP+EWnsmsjUg1841HsJK7bKAu06XLmh5zcT7NzFmg35o58lOjM0jceVsIE0yYo6snbIquV/RhTn0icU0CD8qNLmiKgzPzFAD5uNBejH82dDyIBX5GdjEl2QDtukgW1Dld5R3tKn8WkSJc2+9BX2CnK++Lezkr5ZC7RRyb7PxcXuc9l5kKnalY5nULm8l5OQZj3q/UcgIv48ScO+bfpVgMWeSYca9IfjFPzajLMbcJd7w3vd+p/FweKyZ5z3WSutJXh07fiExljV3FOD2QIWkcdc6sx2pUXjcoltmTjdVilTD7s29kJnToHHboVNmFdQe+ty9qfVNvxGp1habE9ZUtax51X6nyFGPqqmVo7pv3nZRKfVs6dgM0HS6q3Dj3B/fWpMw7MXaq9ioEta6CTZ2GepSxU3cZ4661Y65UbufunPbss7+Z2a5PQpkKxb+tH3XRt/AXWS7q6cXebT+3JoxqHo6RxTIpfOmKyjd3VGMTH+CjMG/Kuakw2uyvFwqu5Itxqr5IDETkKzNFLVCw1lM/uqqP6iz7vF93PYHCrA6OMpbOnKlYdwvjRIteemf+sTqpRYvOWU7Ft8e0jehmBf+/M2T7thoKQTRDvC3kMmtftGqy7N6otJ+M9UMenXKlknnWLklrB0Opwayx0ckj5jGkpi+8uD8sge2pO1SrYcNHPEd9t2D/GoG+4hrXxsRc8qmvkpmnPOAzbiY72swG6P22GhfT4S9Zki4RcHrBen2ckaNXo+f4jmpeLWI6n8u5LOoWK9Oy9TIlbZVRavqXg3IEFVYTlvEcX3lvhn/L+uWBCmVuZHN0cmVhbQplbmRvYmoKMjUgMCBvYmoKWwoyNCAwIFIKXQplbmRvYmoKMTggMCBvYmoKPDwKICAvUmVzb3VyY2VzIDMgMCBSCiAgL1R5cGUgL1BhZ2UKICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQogIC9Dcm9wQm94IFswIDAgNjEyIDc5Ml0KICAvQmxlZWRCb3ggWzAgMCA2MTIgNzkyXQogIC9UcmltQm94IFswIDAgNjEyIDc5Ml0KICAvUGFyZW50IDEgMCBSCiAgL0Fubm90cyAyNSAwIFIKICAvQ29udGVudHMgMjYgMCBSCj4+CgplbmRvYmoKMjcgMCBvYmoKOTA2CmVuZG9iagoyOSAwIG9iago8PCAvTGVuZ3RoIDMwIDAgUiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeJztWclu5DYQvesr+AOjYXETBRgNtG11kNyMGJjDYE4zWQ7jCZxLfj9cqriIkrrVYycGEtiNlqhaX9UjKfZzB4y7v3f+axgF+/zUPeMYsEEwaXBIGyZ5b7XhHNgTC/fQAw/3X5347C7J4p2hZ2gp3f/OPnTfOs5+6D5+cqJfGO81+6vjrbvC5M/dQxGnf8rfbJxlpBLEG470uRtUbAdhehj1OI7MCiaGXjiZz0/s/Y9Pgt3/EZJ6qBvFKNEb0HUDcTba3locdWO90M63f/iVCedEKc65aG692GxEh7Tj92qCaL81Na9DlNiKDnTPR1NdRlPpbk9EtQkfDWe/dbeP3fuTwww4e/w1M1H10lgXPZcMwOlpn8nAHp/Yxxt3eXv4xB5/6qbHOiMFvXZsfVOAh5YSvj2Usa5FLPvzF/aBfXPDSvOYr7+wwIygDlPUYVV/DWFuyqgZ5v5L1Jyc7AcNrmmtIbCED2ryoHkI3ffRfRy24K6lewaj++h4LeyBKc5uooTXCNImSocxcFK+Gnfu0t8fYyliOGIWjtS9BunCGRWFU7qDu+gEvF2FYdlksOkKy7R1pFTOnhlTfrcY3YQR3buPj9A7gBhxykDh/enAYPB5Ul5CHly0IXOnC9IFOGG2cGBGhicDWvdhmgVJ7dBTyYYfQb8+Ln8PPNYAThgjRAshTJI/RU9iyh446oLN11zGKMg+2Qu6JtsKsjZHH+wM2Za4i88q+4A66sBcU2JGIRo/Om7VfBj60RcTVGpBmHLNfeMEECcsx5gbCwyVJUj5soxVR5h5R7jZ1fTaTw8gxNxd1dnYx8GV2Xa51YAAtvEXgjxh5Vy3OI7fFDWxuR8A6+MTD/XN0oR+6lSKi+rT1o50w5OhGjEo20a12jlJd1f/kJby2d1iWXXxnT2P1EvBokfkGPUWULAY91Tww+IkkaW3/WHMAT9Nc0GZZbAoY7XLErs9QdNSNrrwxsIkqvNkEqA3SKb7Or0QwIzwBGI77YQnMCfYvONBtS2YWr5gmqDpu5zGr237ocVk3vbv3OKj93R+Vriq+ZN62f95cIEClcM1FmQLO4mQFAMXaJqjNWPKHZjD2KREC88ZVmSFufN5amvcqHJfo4cVb5oegi/Ql+hxzPTws0eq+y1aJqrc8bw4XUEXIVqM5nTB/ceFXEHpq4iCkRcswZEFimQ/a/xA3Z3kiFqBGcQElKb9zrrWNk1myJzhCKLl9rngtpC4AQxbLNxyyWlD0KOc9pGioYaQqil73kIFT0ds8sQvJIYf1+Q17JPu8YmLRdtyCyZQJxH3LJB5rCZ8G8ebIrJemGiQyKEQtM7dJ9tEX9oQWIzgGgoPbS2bFU+Nvdy14iWFq4ic1KsVLw0urXilw9UVL1nYu+KRorroPakOaHvta4A6t/YlhZVNYV2rau1reWzbl4rXZAqNL4P2/UySvO3lxCReMIlyCL5dfQwdBVzLIilaJOcsMnrftjHJX8Uh0i4plMYWGFR6WyNQ0t/JH9ILXX/BkUQVzyZ/GozO0CfJr7CnqtHCxrFEYGXfKOXCa8tLkui0Dd0L0EivnzWI8sXrhIBbzAp3kiFbn6ngeeG+hlTD+TOI/0n13yDV+MpnFdUB4KVHms1x607izY8UXQF66c+R/ek+ZVm+ygmkTrNucdxvS8xz/nK3fbaohO1Hf9ysQcz9VufYZ/23J55bBFeaN37DaU59HFu93eM97UyoplSxpYPizapsT4XKbCAz7aoMICrHs6iML4lK6N+5bJq+Munim1b5ZhbYWeCXKf99mGq+gemubhf004eiiWrzNxW5jCstqAA1mv8wKmodlfIt8DJUQqcNeVm+AJ1hAZ3qhx5amMT0r2FkNzDiu9goIi5SnsPFwErXmIwAqFfuHFxr6jOWsIxCO98JXKrrZXiZ9TQz0JuY9zDGOWYsfnt+6P4GHe6/ogplbmRzdHJlYW0KZW5kb2JqCjI4IDAgb2JqCjw8CiAgL1Jlc291cmNlcyAzIDAgUgogIC9UeXBlIC9QYWdlCiAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KICAvQ3JvcEJveCBbMCAwIDYxMiA3OTJdCiAgL0JsZWVkQm94IFswIDAgNjEyIDc5Ml0KICAvVHJpbUJveCBbMCAwIDYxMiA3OTJdCiAgL1BhcmVudCAxIDAgUgogIC9Db250ZW50cyAyOSAwIFIKPj4KCmVuZG9iagozMCAwIG9iagoxNDU2CmVuZG9iagozMiAwIG9iago8PCAvTGVuZ3RoIDMzIDAgUiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeJzNVsluGzEMvc9X8AeqiNQOGAa8Fu0tqIEcgpzS7RCnSC/9/ZKSZp+6SdpDkBij5YnzyPco+6lB0Pz3Th4hEdyfm6e6hhAIjK9LzoPRKjqvNcIZ8hwV6jx/YPhk1mHrzLd7NVI3/w43zWOj4X1ze8fQz6CVg1+Nnr9uEPJTcz3gKbv6zfIcMjVIb5jpUxNssQN5hcmllCASUFDEmPszXH04E+x/5KSux0bxlpRHNzaQhhRVjHWV1xQ5frdsPgDxS6zVWtNsKrDJistpl+cfE6zx56GmOhTEJXbolE5+NCyhutlLGI1DCBsN35rtqbk6cs1Qw+lr34lWGR+ZvTaAyOecZBLgdIbbFYvl1ndw+tgcTuOMLCrH3fqmCp4tRWIP6yNbJMLPL3ADj7xsnS75yiAieGodZluHjfwV8t3UV80D/w+rxjijgkM2bfRtsUhIHfizlRLyc8Mfri3y2PAeHqSgZUyMMTzG2OO0nEHeO5a54W6RNtO7EqPDyDOVcxiLQIUkTUgapxwaJplsp2gakIhr8AZWNfy2D08S3pZ1NN0rZu6J4CI3r+U3+NTVQXIW3q7kk68KCXSsHxlvypbkj7bgjC5nSeqy688KESFGuxIznw1lnUzB5VhYz9g1sMCrgs7VPJSN8Q7yWVOTG2QU9SwjSxMULsJwX4Rpn8ZeEge1UUlyR9tZaGgRvWeyPpPd9oRlnAsWR+IvKIPcJ076GYn+VRryA2+YNWDIvEJFuEHxw7TM/0EStHGWypImSziqbsmd5i4KEkgZaRe52lpBNr0gJtS+joOG2ZT+zLK3xVrs7YtSJauSmMnhTKqhs/8uw4uKXaP21ennue9kf/86w8g6tedq/+ZYU5xkdahc9pXxrswXjEDoZ4VaMsIS7vlG4ItcBWFoXX961xsBqV709WLOpcVpx2L9CjCut0V3ZW3qHdviLnYyeaMMZxMT/zK6YI9WrFbqYg80E/PYgpSytxIUyTtD7Yuoy7382qu2Y1i/5nQru5uzf77hl0wS3axciyZZwI1NIn09+AF03fwGh92JPwplbmRzdHJlYW0KZW5kb2JqCjMxIDAgb2JqCjw8CiAgL1Jlc291cmNlcyAzIDAgUgogIC9UeXBlIC9QYWdlCiAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KICAvQ3JvcEJveCBbMCAwIDYxMiA3OTJdCiAgL0JsZWVkQm94IFswIDAgNjEyIDc5Ml0KICAvVHJpbUJveCBbMCAwIDYxMiA3OTJdCiAgL1BhcmVudCAxIDAgUgogIC9Db250ZW50cyAzMiAwIFIKPj4KCmVuZG9iagozMyAwIG9iago3ODcKZW5kb2JqCjM1IDAgb2JqCjw8IC9VUkkgKGh0dHA6Ly9sb2NhbGhvc3Qvb3Rycy9pbmRleC5wbD9BY3Rpb249QWRtaW5QYWNrYWdlTWFuYWdlcikKL1MgL1VSSSA+PgplbmRvYmoKMzYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA2MDMuNDA1IDM4My4xMSA2MTMuMzk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM4IDAgb2JqCjw8IC9MZW5ndGggMzkgMCBSIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4nM1YyW4cOQy911foB6KI2gUYBtyLg5mbkQZyCHLKTDwHdwbOZX4/pEQtpV5sYy5OUmiJRXF9pFh5XkAo/PuBfkLS4vtxeWYaiKCF8UxyXhglo/NKgTiKvAcJKu+fkH3aNV7e+fqOJbX9P+LL8nNR4tPy9Ruy/iWUdOK/RZ2qG0R+Xh4GO+mterd2jpYa0O/Y0ucl2AIH7SUkl1ISUQsdpEae70fx8Y+jFrt/s1MPa6B4q6UHtwaQEinKGJmKNKkd6qaXT0KjEmuVUvpkS2wTxWW3y+9FB1n+qag5D4XjmnXgpEp+tSyi2u4tFq1FkDVKPC6bw/LxHmMGShx+9Eq00viI1isjAPCcI0+COBzF1xtM1u72mzj8uewPa48sSIfV+q4CniGlCR7WR4RIFL/+Fl/ETyRbp4q/tIggvK4IsxVhK3yF3Jt61LzAf2PUkM/I4ABBG30Nliaj9vhsKIT4e4cPxhZwbfAd4B5cWRuKecJ9ZD48A1AeWmfaFh+SmUoSzqUvChNkSBbtgJY1TUqx1BQlkwT6YgTc8xPYGFUMAFv42p4WO1a+L07QPr8PAw897lag5pvilvZFgwpdWpbsu1bF0ml/VutgaeMdvCEdxENWaVO151OWuXrAMHN6ypwL0oHBzCXbYJ6GzLDWrGJbskSEmrExq9pwtkhpvJalqLDHYZaST1Upaco+OrYeqo+3wmBhZa/2F+irmAz0V2W68xt0UJOM+zPyw5p2PU8v2/aKvE2eN8zdl19rLntyUWuqmgBP6+2IyyEOwLQdS7AlltXeWaodsX4lf8BAKXILQAZUJH2KiupHPUWI37OUPVdMtcgVr+aKys3HravrXCVZYMunyFiu7RxjeyuwW950C8hvO1RZ6Zq/HkfHAOyJZ1nzrjwkw6BW68tTsZpjXXFVscyWWz/E0hZ6plVEmLkbUbnWLOULo2HhXEczu6toQcTiJX7zIobveB8nuq3RerzQl8AYmYgdbLtSYN8bU75eLOsP3HgSNyvgOq4N62ozwnFMOrrpQet2Z0DHRsWXHqsBUa2d1LmmVnjs9Ja9OCF/5Jk6WqNP9dt0Xa3fyvXa+m3aKpYmz3KvHKvvShR6ZYwdoKFpis2lmJFHdFbPsXxjnC51fqVPug74eJL+eRRoN9y2m9iKDHpLbq1oaEHVjNxibGknehgIzhVyBu3/LzGRSkLGwgduV+dGjZo409sZjrpKJpUiFirGKmqcPtFioSPOWfSHxsofNGviC3yNE6mlgOb1U549y6En0Vc800pjseynwZbllOG2ieqTLY6vTX5l0Dir89ReVBLBjITXaCZZehSsJ8mj+uHFUYTZhjMWrAgvBYCYnWPpXSGT2hfjOTtK3Meov0FzqO7n5Ynz/RMAP07nLopfPyngdyv9V8Yw06kKRz/0IC6pNkBuuFfvuCPQuVpSBFRdQAnQ4U33QAbu3Zqez/N9mfXVLlQn9KrTcInCYFvl5XX+DPFq/QWw4fVWre8cy7Q71W6NZl9i+W7oRGTjZv1L57O+7UmX0gpBEGg+wGzU8MJbnuHT9WH5DYUnqKoKZW5kc3RyZWFtCmVuZG9iagozNyAwIG9iagpbCjM2IDAgUgpdCmVuZG9iagozNCAwIG9iago8PAogIC9SZXNvdXJjZXMgMyAwIFIKICAvVHlwZSAvUGFnZQogIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCiAgL0Nyb3BCb3ggWzAgMCA2MTIgNzkyXQogIC9CbGVlZEJveCBbMCAwIDYxMiA3OTJdCiAgL1RyaW1Cb3ggWzAgMCA2MTIgNzkyXQogIC9QYXJlbnQgMSAwIFIKICAvQW5ub3RzIDM3IDAgUgogIC9Db250ZW50cyAzOCAwIFIKPj4KCmVuZG9iagozOSAwIG9iagoxMTcwCmVuZG9iago0MSAwIG9iago8PCAvTGVuZ3RoIDQyIDAgUiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeJzNWcmOHDcMvddX6AdcFrWVBBgDuLcguRkZwAfDJyd2DjMOnEt+P6RE7dU9PUAOhqfQVRJFPlLcJP9YQEj894Z+tqDEl+flB4+B2JTQjoesE1qu3jopQTyL+A0ryPj9hOTDV6HlL5fnmFP5/kt8XL4vUvyyfPqMpH8IuVrx7yJncQ3L35cPDU6alT8tzhapBvUTI/2xbCa5g3IrBBtCEF4Jta0Kab48i7e/Pitx+jsq9aF3FGfU6sD2DiRF8Kv3PIpjq7IomyafhEIhxkgp1fRJZMOIjWqn36sKMv+Z1bgPieIWOrCrDK57TazK12sQ9SwIjRTflsPj8vaCNgMpHr/WSDSrdh7RSy0AcJ0lTTbx+Cw+vcM3+fBZPP62nB97jQysFqP1pzJ4dClF7mGcRxfx4p8/xUfxHYeNlUlfevEgnMoeZrKHdf61xdxUreYE/rVWQzq9bhbQab0rxiJQZ3wOZEL8fY8P2hbwXeOcOuK75Xey+THNgWdawPFDXafiXNqABEINILRdLWgEEUwGAaEK0cQ4JMaamClkemEhJCywIJW+M/AoGBJAadN4BEXfpGQooCZ/8sJ6DGeDmFwolgnMEB7Em82uSrxLA1H9bIJ2Um47K+QJvx1j6lhFB06ThR0Z4cCcaBdo/rKzmDSLi3Tavl2iKHYPU9xom55Ji0jsedWJOVyqCBKpzzuq91xYG3g/TtBemAeB3vwu6UD4lRvJaGIaBMZ9YrtmqGZHSQPXbWwgOUPjAZucPCByzGzBYERnTc8sf0sBEscYD/lmazJ1HhhEA9iKJTonM8j2TQEwSvX8WPbDCVrjahFWO6kyvm2YiHY6JqDA0Vxs5dgKJtHNuFjkrqle2OpC1m51GbxnqwsK30A+jULjTly31eQJXs25gAMmR1Q2ZoRuEmvsFcyoThm74octTetASuN4wplt0FJmZ2hQ5DAuEoFpiinagM/maDmOYzFybRP7L9FDExCDbtGnLdvxzJ4x2Cz6xaDRJGPHtmOCzePKVUuRPWEryM0OQsmcoGot3QNVVVoVJi8BaSY30TllRk9DAl8SKoyjw8b4arxswFwASlLo13P+ucW1xHybiCttm9hn3lNUF33uCs1Oit/VwNeAyutLDZuw9EmttW3NHWU0h9eYLTlca06+bc02txe0V9DNDgJucpAI6Jy2if2x27CSwCCmi9hxKZvys4Qh0TW5OfGUXSEqdOFWNwbYjoW4c6b0hEARutOOxXbqzFrkVuvUSA/N3P/SlgH2ZZbae1CqBJli3d6z21x463I7RBsUVK2bnffliZtdTks4b0MzST0i5ZlS04pcJ4cqpMa1EBmjH9i0/efqtyWKCu2xcdE+cXRkTTl6GeOdTOVW10cLSVmanL0KNJm4R3OWpROYoO6XyTmysFcbvaKqntnkClraZGB7Yzg27UiJ650UT7gGOSrkyI29eUlqOqylvvQjUydcZnZdq+fka8wXBzlNElpD1/XjweNOuZO/NDMla92FK8Z53sa27qKzheRsYZLhr6I+JsTyMq05MgrYQ1EOO73NuNughzQ1XLwM5T00kKExN7mEwsQ/uoTZUjqDQ0pOCtU2nllsbGKf3DMGPYuOB8wcUJwm8zrNh8+axGsA9gnddClTOaGwpUkqbK5rTAzviL+ecWm51asmDU29UZHtMTQndCtrSdqt4rNVJIwZ+XXWkdBkLLhWn/eSjHxV6c3fpX/qzxO+79HiqhtFFr1mCyugYUC7YlOyS9SVj/ulUPr+4qW7Gwl8F9LY/hoPOOWUx7bX7AbUWvBeQHYLLszxm22WL3h0vnc5sMbs7fmyKG5jLvCHnIiqjOx20FwMnR8XuQYZvPi2oHUCrHFD6RJMirA6ugT7SjdjWBZoVqXZZ7ok64ee4r1Zw+FJDJ98M7dqg5/D9Vzmb+zEn4fyte8kONNqibLoRs0zFhpQ7cDdaIih2hGiBiktombiWWwjnh003cBLtiFia5h7FchD5Up8D0e3R9MOvQLFNlgkjkz2qNeeAdkP0RcQ+GaReKsZzdT0H7uNE0cRPY4zl2LPdkx/TFEkM23b/mr2/vx+5GR74azkbrW5mB8x55rgg4SSsi+Yp7TqWhUO2dwe5Yu/nEpLDbRNeHcn8lRFC01OjUNKpt7JdOf8+HAQ1wRaUrhswl7Op5Z8k6C2Ku++jnKqv9qoyVJXL1LLJWVzVtxpCyvFrfawIZsOFY2Alzr6hsVOz73VU2U+zpWrk1zrqDbomWN/Ycr6hN7QoxyqB5BvFcNssaFCcoUubZadKHYMUu+X5/N8h+WYMAD/3mXwbeBnZoexZnKY3c6VlSubFZr/RPqw/AeKW+iYCmVuZHN0cmVhbQplbmRvYmoKNDAgMCBvYmoKPDwKICAvUmVzb3VyY2VzIDMgMCBSCiAgL1R5cGUgL1BhZ2UKICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQogIC9Dcm9wQm94IFswIDAgNjEyIDc5Ml0KICAvQmxlZWRCb3ggWzAgMCA2MTIgNzkyXQogIC9UcmltQm94IFswIDAgNjEyIDc5Ml0KICAvUGFyZW50IDEgMCBSCiAgL0NvbnRlbnRzIDQxIDAgUgo+PgoKZW5kb2JqCjQyIDAgb2JqCjE3NTUKZW5kb2JqCjQ0IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQwIDAgUiAvWFlaIDcyLjAgNDYzLjIgbnVsbF0KPj4KZW5kb2JqCjQ1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNjc5LjYyOSAzNjAuNzcxIDY4OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDQgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0Ljc5IDY3OS42MjkgNTQxLjE1IDY4OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDQgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDggMCBvYmoKPDwgL0xlbmd0aCA0OSAwIFIgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCniczVdNbxs5DL3Pr9AfKEtS1AeBIkDjtEX3FqyBHoqc2t32EHeRvfTv92lm4tgTd1e6BYYxkoZfj6IeNQ+TBMbvVXsU1/DlMD2saxKKhpjXpZRDZKopM0s4hHkuJDzP7yG+mR1l11l+fLdaOs6/h0/Tj4nDh+nzHUS/BqYUfk783N2JyT+n25M421t+sXGeRhpFX3CkD1OxpRw0k3hy91A1aCGFzJdDeP3xoOHmnxnU7XmhZFPKks4LiINXqnVdxRppgu/28j4onJgxsz6bNrHNSpphL8/fAlztPze13YdF4r+ik0Ts+Wy4mDrORiI6N9Gi4fBtut5Pr98jZ8Jh//fTSTRKrsi9WxCBXmpIStgfwuc3GN1c3YX9H9O7/TkiE0o4rS8q4XNJaSsPyxUlUsO/f4VP4QeWLfGCtw2qhKyPFWaPFXZWX2Xmpqes5SAoy8qtek+TV4MYqlpbMHbMWUvhDqJN/m3TwR/xalzGco0xDgLjyaVlG2tNpjadJd+XdqqGWMhLk8xPG4QZ+2qsPeUqvEqFcsDLuFujeb95wekKiGYRW4PYLUFJE4VKjFuV3RJ5hEd9u3V0s1loZqQsmJr5eZ6XtRkrFOK7rdJuVbAlZ3OSIKi+GuDVmPyv+7JozpZkSekxj1orlcLumf1SSk8sbTVdKUl2r3pZ058pJMq1IIbW3boUamNJnMYcuxQiK80VVDl3KiSwLTywl06FSjHDg8U+0FFmcvBaOiHgDJW2r9ytUKhiB8WkE7OC2QyY4aZTwUhRRMKpU75QrHAQTfoU0A1TAuZcrVMhUlEk1UtnSDEThHE4pBOzMXGGh8wXmeaCQiTFPrunTtAG4sZGi3onaHNKBR5S7QSdlIoBtGsnhpTI24lW6Szu5MQ40Zxy34mOWdGkkNaaOqs7J7K5J3gn6FzRw+HBaudxKEIlD9BYLEYeB2gsltpukwM0VoW0jNBYNVwCRmisgtFlhMacqdQBGvNInkZozAuJDtAYmhmpD9CYcSTL/TRmnCnHARozdqo8QGMmCqEBGkNuSGyAxkycogzQmKmS1QEaM0VTTwM0ZoqmrgM0ZvgYa7vcTWMW0dTzAI1ZRFOPAzRm7cbPAzRmZpTLAI2ZoavbAI1ZQlcfuY1ZMpKR25g1sm+fGjlexvDbm6KB9Uu7jtd0sUaUT76rbqdf1/ByuwplbmRzdHJlYW0KZW5kb2JqCjQ2IDAgb2JqClsKNDUgMCBSCjQ3IDAgUgpdCmVuZG9iago0MyAwIG9iago8PAogIC9SZXNvdXJjZXMgMyAwIFIKICAvVHlwZSAvUGFnZQogIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCiAgL0Nyb3BCb3ggWzAgMCA2MTIgNzkyXQogIC9CbGVlZEJveCBbMCAwIDYxMiA3OTJdCiAgL1RyaW1Cb3ggWzAgMCA2MTIgNzkyXQogIC9QYXJlbnQgMSAwIFIKICAvQW5ub3RzIDQ2IDAgUgogIC9Db250ZW50cyA0OCAwIFIKPj4KCmVuZG9iago0OSAwIG9iago4ODgKZW5kb2JqCjUxIDAgb2JqCjw8IC9MZW5ndGggNTIgMCBSIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4nO1ZyY7jNhC96yv4A+GwijswMNCW3UFya6SBOQzmNNkO4wk6l/x+qsgiJctLJ4E7UBCjWzCXYrGW9yiV9DKAMvT3Df/EjOrzYXiRMVARlQ0y5IOyRicfjAF1UKUPGkzpfyHxRa/LSi+0OdHU+7+qD8PXwahvh4+fSPRHZbRXfwzmdLuZyh+Gp5mdPGtWa+fcUgu4YktfhugqHDBoyD7nrBIqjBpJ5vNBvfvugGr3W3Hq6RgowaEO4I8BZFROOiUZpTGNnvbmyS8KaRPnjDF40mWxxYgvbtffiw6K/lNVyzxUiWvWgdcmh6NmVdV7f8eiYxVsjVG/DNvn4d0jxQyMev55YqLTNiSy3lgFQOs8exLV80F9fE8t3HxSz98P++djjxxoT2xdVcALpJDh4UIiiCT1+0/qg/pKw86b6i83EqiADWGuIewIX7GcTVPUgqL/edRIzurogUCbQg8WG7Wna8shpN8Huii2QG1Lc0hd8NJmWb4ytS39jjTH/VDlWUdZPza5mohzKUzKJu0gsDHYjeGNSZnhhMKG5LRTPM5jsRqGdqMg8iiPlO0X0ixV5tJCSzwvC02W3TCik0PiNopi/r6uArvQtqvSxa65xt15H4CCgqQVaBFuL+w6lzenHlzSjbnFhK3E8fxqCzK2Ew2SuhbZMpYXmi9kpKUcHuXi9sO079KbozgLP2dY8OYEC6fZEEsl7l0b1HbByGIOoM6XdUfZbKOcxYIVU/0oY+IXy1nbIUx8wgWfIrG8kCHkZjbkiS+GkmFbULdixlgVc2BLW8zsgdvJtRWXhI+sA9oa4WCXHUV/gSm5GToNctVsx+kqFkraCr1HgcR+0lys8tfYm61OQEdJcP0ocXke5XIg7KsT1kqeTA0KhClHJcrbibGM4B79vawbRVdj/NVdLArT5BxofCgBGTd8UAq/SsAeZU+oGviCvSRQmALzJImdTRb9RjnXTwknUiCrL6E2n3AAgG4R1hIHAFpIr7oCr7lTQvcXXJmd02dADjZoX6CYU0f5/t9HeQGO6C6pbkeKzPc7WTL9wEasego8bs4B8FknTDm76O8kuA0JEmrngZfYNZEADWrvkO5Q03Nmud+tjAQ83x/D0luAHtHr5KjyscbdQX8T0KOjR+FQnm1xVaAPSXuucaOf6oVx/aCHBu74ZiTIoFOgbYPPdxLchAQWnHbJ5eStXxMJrHXaR6pNfOp2zYviNZGgzDsBipF2rnpuTwLro05srUvpToLbkCBxRYmkAsKaSECLtc9UmzjoN31cYQ0AuKF6BVv529TeHvsOqf7N/I4M4h37N8G+c1RnUnYA3apuAC4EHcDQk7+bSpLdfwf74mhRv30TLqSsc0n8/V3QjbjgAflbBYlFtyYueIs6YMzZxKlSmd8HLgFIMMpZ4Xk7H4v1PY19NNNr6MWhje0rQxKuSCgvrb0OWO+9zhbIGlzd4V0e1xhOcB4YkUsyzDH56avJpa8JJ98w+rvwNIWrAEAAsvjiMcNtB9qlN+w7cQfqLztrs+za1sE0X747XAlqmQvnA/sKRHPSwXk623w/rhHeHqK96Dx9Cf/wT4EaEHR2RLdkVveC8RWgBsdlE29o//dALR+in4Y/ARhnyg8KZW5kc3RyZWFtCmVuZG9iago1MCAwIG9iago8PAogIC9SZXNvdXJjZXMgMyAwIFIKICAvVHlwZSAvUGFnZQogIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCiAgL0Nyb3BCb3ggWzAgMCA2MTIgNzkyXQogIC9CbGVlZEJveCBbMCAwIDYxMiA3OTJdCiAgL1RyaW1Cb3ggWzAgMCA2MTIgNzkyXQogIC9QYXJlbnQgMSAwIFIKICAvQ29udGVudHMgNTEgMCBSCj4+CgplbmRvYmoKNTIgMCBvYmoKMTIxNQplbmRvYmoKNTQgMCBvYmoKPDwgL0xlbmd0aCA1NSAwIFIgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCnic7VrJjhs3EL3rK/gDplnFHTAEaEajILkZGcAHwydnO3gcOJf8fopksZvsTUoySKTBwG5ITRZZC189Fqn5tgOh6N+b9OEjis9Pu2/cBsKj0I6brBNayWCdUiCeRH4HCSq/fyHxydsgy2+u9vFMw/tv4sPu606J73YfP5HoT0JJK/7cqbm6Zsofd+8bO1Ovulo7W0s14BVb+m3nTYEDOgnRxhhFQIFeIsl8fhJvv39Ccfw9O/W+B4ozKB3YHkBKxCBD4FZqk2hJd+r8IpCUGKOUwtlrEpu02Ox2+Vx1kOefTzVdhyKxZR1YqaLrvpaphre/Y1E/RbJGiV93d4+7tyeKGSjx+MuYiUZqF8h6pQUAjbPJEy8en8THd/TN7D+Jxx92D4+9RwakpWy9qoBnSGGCh3GBIBLEHz+LD+IrNRurir/pSwDhsCLMVIR1+PKZm8aoOUGp1EaN5JTUkKwAXYMFkZ4TPRRDnbru6TnS80BPeqd+RbGGY3m0Kv26bfPkF9LnqciqtB4Her8fn7V518aCLYu4tPxBaJRB0yjlB0dMmtDsBUUpueWLKqTk1clmyP+z/eBKP7A6fZcmKu+gSzhy+wOPu+e5kow5pwVj0aKTulicaCy3RjoXYgy0XBWvd409rtiZ9Ty0unJgoFiaA8XWA5Qn93XSufVYwp19D+U9C1d/68gjewPlM/mqI2ut42DsT3ZuxTT3ueW41qgsY9QbmUOoInYYjZdjNIM0FFzlgJIMWg6EOYet6GRQnlbIuavDFiOlX+fUmyVOewG+js2zzfEHEKQzJkbnzADAygEnHnpYBkYGVSgOZYPrglZYMhSTyRU4OTBVFhodhse56tI4T7UlvwcG5H15Ukigzsu2TEGdQ+XZhmPxJ3+3Y/8WcNsFGwBfE6lJ6xWS1UGio2md8R2CHy5HMIa9cHqAQZU4sM+R/W04OcczjHKArCX5rAkuLsMllF6snhj2PPRsrTmaWWOdpa4G7hOK0nTacqBDk3Tp844XFtQFZE5LIH3QBEkbri3j1P0+bazvpnLAnFghBXrMw5xOpoHbsemjhdUqz6JqvKjFDgzfyEIcNCqe7cAcUJOIk3IpzwNVm5gSYaDRvGFaNe4xzQ4ypHpNXWD4s7zi2ORoHkd5fGjSfbI3zOYLTSrVtmrHgnwG29TTKrcavUpCGZP97tmm/5adG9Qw2Ft9ME18qtwmPaBCiYaWwujY0cPhRdNDXvxNGkA00qcTlbHwSgPPRANonLQx781jOXW/sEW7ZvoNPqiyqrb3FWcNx0q2Txljpsk34w+M4qYYGDZ1KEtUHYcGDGtskguTOoZtygXFdrY6JxE8levKtdmaRt5Ktmao8xlA272IBUzbyRiC9JqyEc3VnbBuNhnpSCitRzpaKNsm41CnZhzshZElozoED83b2/IglmPpizg+zCZWth4WMoT7sX1RPmqepPTUXtZWDSxZOY4ekvOch8sbfz9qdaVajWfKgFFwqAbOBn8F4Ut+/uMSgYAmIebbItORjrod0slXIJZn4/Svs2Hg73wBkS3Zvu+xKH0yyDp8paPnoiNvpKUoAqBuzwjIR2zFx+7hqE0Yf4Na2oEiqs4TxxEmQgBN8A9j2o0CaqFxmnp9x2bij6IrFNKZts0No2jDDueN3GKIud+bHDFVObhcvarJ01/GTL2s8TmOeoGzV+vJAO3mMAluDhMu0hJc8px8a9IakvHOGZUZAMZx0EJsZQzYy8cs3dr0K4unkrl5efqiVaszfGyUk2UrNd29Od7QjY46ldHA8lnO8xnNsEW+QWDVusnLBoN0gcrjgK9XN8/Fy8ZSmYgmxvGCYPvqhvI3LhYt3Ax1VD0WMQJrWVhHT69auxPdKDYpDrd1rxJxvLCWqz6c5+s4VKFLv3To3tm8HblRObi+24xWTIM8O3heFJoVJ+er73C6+tvr1yDiP7/MMgElGDomOtVdZiXOfgnMuHaZtUmKVqXf+PJvTVf3C9LNkqJFqkKowzvrLmZFXKvVuDo6x4vN+P6iu+mbpvwZneuF6eU17uUVLM95jhLrjGucWPuXSLHqWGLFS2J0ma+rKzUHig4zoPx/BGltkJB+h45jgZQJ8oZKR819VeMZ9gtKMvnZV/Z7JvZzCqXxLobo7UW/2jdXce2Zb+lifvizjo0keZk/xTlEqWJQiKa/3IcbSk7Pf3JU7fJUsRg8f8PvDFUpFFf04fWG/1/laf47w/e7vwDrQ69lCmVuZHN0cmVhbQplbmRvYmoKNTMgMCBvYmoKPDwKICAvUmVzb3VyY2VzIDMgMCBSCiAgL1R5cGUgL1BhZ2UKICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQogIC9Dcm9wQm94IFswIDAgNjEyIDc5Ml0KICAvQmxlZWRCb3ggWzAgMCA2MTIgNzkyXQogIC9UcmltQm94IFswIDAgNjEyIDc5Ml0KICAvUGFyZW50IDEgMCBSCiAgL0NvbnRlbnRzIDU0IDAgUgo+PgoKZW5kb2JqCjU1IDAgb2JqCjE2NzYKZW5kb2JqCjU3IDAgb2JqCjw8IC9MZW5ndGggNTggMCBSIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4nO1aS28bNxC+61fwD2RDDt+AIUAvF+3NqIEcgpzS1yFO4V769zvkDrnkvuUogVULhuBdcjgvznwzpPS8EYzj37vwz3pgn582zzQmmAUmDQ1pwyRvnDacC/bE4rtoBI/vX5C895Zp6c2kOeKU3/9iHzZfN5z9tPn4CUl/Y7zR7N8NH4orWP66eSj0DLP81epZaioFvGJNnzdWteEAphFee++ZAwa2AaT5/MTe//wE7Ph3NOqhDhSjoDFC1wHEmXeNczSKYw1olB0mvzBAIUpxzmHwGsh6Izqa3f6fNJD4D1n196GlmNNO6IZ7Uz22rPLbORrVLII2nP252T9u3t+jzwRnj390magaaRxqzyUTAtfpYIllj0/s4x0O2u0n9vjL5vRYW6REozFbX5XDY0hBCA9lHIaIY//8zj6wrzisNG/tDQ9OMAMpwlSKsCq+bMSmGa855hrd85U44GsYOuKzwP+Cng2Np/fgbXQ5yC2Tmt11q8KUsPjZ4cfRuKJxTmNjXHFc3NNacZY0Ws3VlqFP0qzuZAWeIdfH5Ebesh2Lsl09F9+PhR1hrSWJYcy30YUeNgzBqvQwD0jghURYQPBILj6RobhYBoYHEnAiAZ6ccWw/4LbMyGBWNCNR7EgFT2oStQzPqpsLdAJISnAJuhBMdJJrZ0GRCxUZix956D5RN0fSbcsp0EXaQ6eR0NkRI6GmfOMhWqaTI5Qv9yyyRxcA+lfK+b2R+1aVqIZs3RnHT7TuQLwsOWNWCj9sQ7Lc9enKnU+SJH2CKZGz7ujyHG6Y5JHLZNwmWuGzRE7cwpbsR3KB4qzwqRUNmGCE8smnoLcMYZokwX1rbeRdZYcg2yFlAs4KG2bhQAFFmRWfk69LRLD0fBrJ1x+V1zN48n3z2iOeu5BWVlZ57a8rr4Xtcjg/41qJYeTbsJzNaiEAS0iMBLil9YXSWkjZeMmxaFhT1uXsrh3/htocM151eZ2ewzwkR1uiO47n/9ur40LL0KaVqX76v6R667d2X/D/vvVN5LdbBACrsQYpjFXpbwBwKQDwBlHVoVN5RlUJRG6KcNbTQBALvC7CnLrOlGwXAoo3BwSAB1MvLO5NcWg6EShfCRzEtjCMGbL+QJq4VjIkz1CjOA8BIPGMI8F7Z8wNAi4EAaA94qpBp4JfBwFb9s75ppNneoMxxKuBhTwsGd53ARJrRF/aQIU6dZfOIX1ubkzVnOLlxCjGvNDIBdQpSTP8rFFyGpDG7J5DpnKBSnA8rccwquKJsY6qFR7CJt+WOx30VLsxgipOSl55nxNprCApY069yYErq4mVyqpuIofnCxQtwWilko4T9KczdS/m3Yi63PIB6tQq72gD7gkUK2/aET1yQozJigpSWxiO/HGs8G7Uh0TBaRhJTg4jKSVhgvfiDnHsRlAtFlvJ8XjpNErRqiy28Y7iyoptmINCg3R9BtBBz3yhlaAag9oKKdyt0F6o0EqF/ZzEA4zV5qxL8DqlqV8uD8qxk7KdY+PAaJbz2X52Rb/M+RvrwqXBY6eWuGuuwgV+Rbiw5/laPWZRCrplHHAWsdejfHW7S78UDijuEFzxFGOcnMYBLKLaTpT/NJGFoElQVtQBYU7bNWwnW91q5UxG91Wcb3UzadnqLts+mfVjdi+1umlBaHXPCoQDX7kDrrBcTm2yHQYL8EGwdC1YYQkJD0qkBivJWu5+lAzfmQkEOV5dNcAV3TxGlAvS9p3UhS8KjcCCbJGrvX2lcDF0C+265RiwvLtOEEVmC4S/7mxQjQgqUjld61lepE3FJbpbdgFfUwSHw2l0nRsd7btwsLY87oxoNDitVet6CdqjsOs8teZ0WvltaOmklpPw/zLpywVgyfrpWwbl9SDYvm87qIVqtA+56qqfWcjjdSPly7+X0dJghVLecWVvKHohFNU63HR7Dtq59ZeyaiK108T8NzUlYWSd7pRiTA9IprAsE1Q3l6qHZJWu81BSrTX5oqtM4T5ZKgjJTWKMaGBxWXoy6GeC5PFVnp6+LT7f7jW3xZXPh9Fk/CCafuwpWjuPp2gbfpwmKti89gYTMB6Fi1miqTNf7DuNEFi1JKoLt1P1pRDTSAi/svZeGbkWMfFsNZrGaXwaBjPFBArm+QIEszQ7In0WCqqVkwhYUk0B4JQOU/CX55P3VnhtCvvOt3cZ+Wb9PLWro4k0DCilBgF1DhDG34A/bP4De6vGKwplbmRzdHJlYW0KZW5kb2JqCjU2IDAgb2JqCjw8CiAgL1Jlc291cmNlcyAzIDAgUgogIC9UeXBlIC9QYWdlCiAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KICAvQ3JvcEJveCBbMCAwIDYxMiA3OTJdCiAgL0JsZWVkQm94IFswIDAgNjEyIDc5Ml0KICAvVHJpbUJveCBbMCAwIDYxMiA3OTJdCiAgL1BhcmVudCAxIDAgUgogIC9Db250ZW50cyA1NyAwIFIKPj4KCmVuZG9iago1OCAwIG9iagoxNjU1CmVuZG9iago2MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsxOCAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iago2MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDY3OS42MjkgMTE3LjE5IDY4OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjAgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0LjI3OCA2NzkuNjI5IDU0Mi45NTggNjg5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA2MCAwIFIKL0ggL0kKCj4+CmVuZG9iago2NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iago2NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDY2Ny42MjkgMTUzLjgxMSA2NzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDY0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjY2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNi4zMzggNjY3LjYyOSA1NDIuNjk4IDY3Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjQgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCA3MDAuOCBudWxsXQo+PgplbmRvYmoKNjggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjU1LjYyOSAxNTUuMTM2IDY2NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjcgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM2LjQ4OSA2NTUuNjI5IDU0Mi44NDkgNjY1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA2NyAwIFIKL0ggL0kKCj4+CmVuZG9iago3MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDY1OC40IG51bGxdCj4+CmVuZG9iago3MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2NDMuNjI5IDE4NS4xMjYgNjUzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3MCAwIFIKL0ggL0kKCj4+CmVuZG9iago3MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzYuMjUyIDY0My42MjkgNTQyLjYxMiA2NTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDcwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjczIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI4IDAgUiAvWFlaIDcyLjAgNjM4LjAgbnVsbF0KPj4KZW5kb2JqCjc0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDYzMS42MjkgMjEyLjUwMSA2NDEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDczIDAgUgovSCAvSQoKPj4KZW5kb2JqCjc1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNi4xODcgNjMxLjYyOSA1NDIuNTQ3IDY0MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzMgMCBSCi9IIC9JCgo+PgplbmRvYmoKNzYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCA1ODYuMCBudWxsXQo+PgplbmRvYmoKNzcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNjE5LjYyOSAyMTEuNTExIDYyOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzYgMCBSCi9IIC9JCgo+PgplbmRvYmoKNzggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM2LjE5OCA2MTkuNjI5IDU0Mi41NTggNjI5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3NiAwIFIKL0ggL0kKCj4+CmVuZG9iago3OSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDUzNC4wIG51bGxdCj4+CmVuZG9iago4MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCA2MDcuNjI5IDIzMC42NTggNjE3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3OSAwIFIKL0ggL0kKCj4+CmVuZG9iago4MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzYuMDM1IDYwNy42MjkgNTQyLjM5NSA2MTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDc5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjgyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI4IDAgUiAvWFlaIDcyLjAgNDgyLjAgbnVsbF0KPj4KZW5kb2JqCjgzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDU5NS42MjkgMjIzLjE4MSA2MDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDgyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjg0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNi4wOTcgNTk1LjYyOSA1NDIuNDU3IDYwNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODIgMCBSCi9IIC9JCgo+PgplbmRvYmoKODUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCA0MzAuMCBudWxsXQo+PgplbmRvYmoKODYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNTgzLjYyOSAyMTQuNTg1IDU5My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODUgMCBSCi9IIC9JCgo+PgplbmRvYmoKODcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM2LjE3MiA1ODMuNjI5IDU0Mi41MzIgNTkzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4NSAwIFIKL0ggL0kKCj4+CmVuZG9iago4OCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDM3OC4wIG51bGxdCj4+CmVuZG9iago4OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCA1NzEuNjI5IDIzOS4zMDUgNTgxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4OCAwIFIKL0ggL0kKCj4+CmVuZG9iago5MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzUuOTYxIDU3MS42MjkgNTQyLjMyMSA1ODEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDg4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjkxIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI4IDAgUiAvWFlaIDcyLjAgMzI2LjAgbnVsbF0KPj4KZW5kb2JqCjkyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDU1OS42MjkgMTg4Ljg2OSA1NjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDkxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjkzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNi41NzYgNTU5LjYyOSA1NDIuOTM2IDU2OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTEgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCAzMDUuNiBudWxsXQo+PgplbmRvYmoKOTUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNTQ3LjYyOSAyMTYuNzg4IDU1Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTQgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM2LjUwNSA1NDcuNjI5IDU0Mi44NjUgNTU3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5NCAwIFIKL0ggL0kKCj4+CmVuZG9iago5NyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDI2NS42IG51bGxdCj4+CmVuZG9iago5OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCA1MzUuNjI5IDIwOS41NTkgNTQ1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5NyAwIFIKL0ggL0kKCj4+CmVuZG9iago5OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzYuNTY1IDUzNS42MjkgNTQyLjkyNSA1NDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDk3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEwMCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDIyNS42IG51bGxdCj4+CmVuZG9iagoxMDEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNTIzLjYyOSAyMTMuMDc5IDUzMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTAwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjEwMiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzYuNTM1IDUyMy42MjkgNTQyLjg5NSA1MzMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEwMCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCAxODUuNiBudWxsXQo+PgplbmRvYmoKMTA0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDUxMS42MjkgMjMyLjMzNyA1MjEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEwMyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM2LjM3MyA1MTEuNjI5IDU0Mi43MzMgNTIxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMDMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTA2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI4IDAgUiAvWFlaIDcyLjAgMTQ1LjYgbnVsbF0KPj4KZW5kb2JqCjEwNyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCA0OTkuNjI5IDIxMi42NjQgNTA5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMDYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTA4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNi41NCA0OTkuNjI5IDU0Mi45IDUwOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTA2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEwOSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMSAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagoxMTAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA0ODcuNjI5IDIwNC45MjkgNDk3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMDkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTExIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNS45NTYgNDg3LjYyOSA1NDIuMzE2IDQ5Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTA5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjExMiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMSAwIFIgL1hZWiA3Mi4wIDcwMC44IG51bGxdCj4+CmVuZG9iagoxMTMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDc1LjYyOSAxNzMuMzgzIDQ4NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTEyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjExNCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzYuMzQ0IDQ3NS42MjkgNTQyLjcwNCA0ODUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDExMiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMTUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzEgMCBSIC9YWVogNzIuMCA2MjYuNCBudWxsXQo+PgplbmRvYmoKMTE2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDQ2My42MjkgMTY0Ljg4OCA0NzMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDExNSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMTcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM2LjU4MyA0NjMuNjI5IDU0Mi45NDMgNDczLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMTUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTE4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzMxIDAgUiAvWFlaIDcyLjAgNTU4LjAgbnVsbF0KPj4KZW5kb2JqCjExOSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0NTEuNjI5IDIwOS41MDMgNDYxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMTggMCBSCi9IIC9JCgo+PgplbmRvYmoKMTIwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNi4wNiA0NTEuNjI5IDU0Mi40MiA0NjEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDExOCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMjEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzEgMCBSIC9YWVogNzIuMCA0ODkuNiBudWxsXQo+PgplbmRvYmoKMTIyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDQzOS42MjkgMjIxLjcxOSA0NDkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEyMSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMjMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM1Ljk2MiA0MzkuNjI5IDU0Mi4zMjIgNDQ5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMjEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTI0IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM0IDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjEyNSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDQyNy42MjkgMTQ5LjM2NyA0MzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEyNCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMjYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM2LjM3MiA0MjcuNjI5IDU0Mi43MzIgNDM3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMjQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTI3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM0IDAgUiAvWFlaIDcyLjAgNjc4LjggbnVsbF0KPj4KZW5kb2JqCjEyOCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0MTUuNjI5IDE5OC45NTYgNDI1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMjcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTI5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNi4xNDIgNDE1LjYyOSA1NDIuNTAyIDQyNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTI3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEzMCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszNCAwIFIgL1hZWiA3Mi4wIDYwMi40IG51bGxdCj4+CmVuZG9iagoxMzEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDAzLjYyOSAxOTQuNTkxIDQxMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTMwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjEzMiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzYuMTc4IDQwMy42MjkgNTQyLjUzOCA0MTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzMCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKMTM0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgMzkxLjYyOSAxNDcuNTk4IDQwMS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTMzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjEzNSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzYuMzg2IDM5MS42MjkgNTQyLjc0NiA0MDEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzMyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAgMCBSIC9YWVogNzIuMCA3MDAuOCBudWxsXQo+PgplbmRvYmoKMTM3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDM3OS42MjkgMjQyLjc4OSAzODkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzNiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM1Ljc5NiAzNzkuNjI5IDU0Mi4xNTYgMzg5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTM5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQwIDAgUiAvWFlaIDcyLjAgNjAwLjQgbnVsbF0KPj4KZW5kb2JqCjE0MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzNjcuNjI5IDI0NC45NjQgMzc3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTQxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNS43OCAzNjcuNjI5IDU0Mi4xNCAzNzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzOSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNDIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTAgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKMTQzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgMzU1LjYyOSAxNjEuNzYgMzY1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNDIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTQ0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNi4yNzggMzU1LjYyOSA1NDIuNjM4IDM2NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0NSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1MCAwIFIgL1hZWiA3Mi4wIDY2Ni4xNzggbnVsbF0KPj4KZW5kb2JqCjE0NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzNDMuNjI5IDM3OS40MzcgMzUzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNDUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTQ3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC43MTEgMzQzLjYyOSA1NDEuMDcxIDM1My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQ1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0OCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1MCAwIFIgL1hZWiA3Mi4wIDYwMC4xNjEgbnVsbF0KPj4KZW5kb2JqCjE0OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzMzEuNjI5IDQyMi42MzYgMzQxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNDggMCBSCi9IIC9JCgo+PgplbmRvYmoKMTUwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC4zNjkgMzMxLjYyOSA1NDAuNzI5IDM0MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQ4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE1MSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1MCAwIFIgL1hZWiA3Mi4wIDUzNC4xNDQgbnVsbF0KPj4KZW5kb2JqCjE1MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzMTkuNjI5IDM5Ny44MjQgMzI5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNTEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTUzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC41NjUgMzE5LjYyOSA1NDAuOTI1IDMyOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTUxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE1NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1MCAwIFIgL1hZWiA3Mi4wIDQ2OC4xMjcgbnVsbF0KPj4KZW5kb2JqCjE1NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzMDcuNjI5IDQyMi4xODcgMzE3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNTQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTU2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC4zNzIgMzA3LjYyOSA1NDAuNzMyIDMxNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTU0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE1NyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1MCAwIFIgL1hZWiA3Mi4wIDQwMi4xMSBudWxsXQo+PgplbmRvYmoKMTU4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDI5NS42MjkgNDI0LjgyNyAzMDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE1NyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNTkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0LjM1MSAyOTUuNjI5IDU0MC43MTEgMzA1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNTcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTYwIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzUwIDAgUiAvWFlaIDcyLjAgMzM2LjA5MyBudWxsXQo+PgplbmRvYmoKMTYxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDI4My42MjkgMzk0LjE2OSAyOTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE2MCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNjIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0LjU5NSAyODMuNjI5IDU0MC45NTUgMjkzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNjAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTYzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzUwIDAgUiAvWFlaIDcyLjAgMjcwLjA3NiBudWxsXQo+PgplbmRvYmoKMTY0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDI3MS42MjkgNDE3LjA4OCAyODEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE2MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNjUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0LjQxMyAyNzEuNjI5IDU0MC43NzMgMjgxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNjMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTY2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzUwIDAgUiAvWFlaIDcyLjAgMjA0LjA1OSBudWxsXQo+PgplbmRvYmoKMTY3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDI1OS42MjkgMzEyLjExNCAyNjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE2NiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNjggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM1LjI0NSAyNTkuNjI5IDU0MS42MDUgMjY5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNjYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTY5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzUwIDAgUiAvWFlaIDcyLjAgMTM4LjA0MiBudWxsXQo+PgplbmRvYmoKMTcwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDI0Ny42MjkgMzAzLjQzOCAyNTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE2OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNzEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM1LjMxMyAyNDcuNjI5IDU0MS42NzMgMjU3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNjkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTcyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzUzIDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjE3MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyMzUuNjI5IDMxMy45MDcgMjQ1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNzIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTc0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNS4yMzEgMjM1LjYyOSA1NDEuNTkxIDI0NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTcyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE3NSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1MyAwIFIgL1hZWiA3Mi4wIDY2MS45MjYgbnVsbF0KPj4KZW5kb2JqCjE3NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyMjMuNjI5IDIxOC41NTQgMjMzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNzUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTc3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNS45ODYgMjIzLjYyOSA1NDIuMzQ2IDIzMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTc1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE3OCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1MyAwIFIgL1hZWiA3Mi4wIDU5Ny45NSBudWxsXQo+PgplbmRvYmoKMTc5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDIxMS42MjkgNDIwLjg1MyAyMjEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE3OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxODAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0LjM4MyAyMTEuNjI5IDU0MC43NDMgMjIxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNzggMCBSCi9IIC9JCgo+PgplbmRvYmoKMTgxIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzUzIDAgUiAvWFlaIDcyLjAgNTMzLjk3NCBudWxsXQo+PgplbmRvYmoKMTgyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDE5OS42MjkgMzg5LjY2NiAyMDkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE4MSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxODMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0LjYzIDE5OS42MjkgNTQwLjk5IDIwOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTgxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE4NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1MyAwIFIgL1hZWiA3Mi4wIDQ2OS45OTggbnVsbF0KPj4KZW5kb2JqCjE4NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxODcuNjI5IDM1My40MSAxOTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE4NCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxODYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0LjkxNyAxODcuNjI5IDU0MS4yNzcgMTk3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxODQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTg3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzUzIDAgUiAvWFlaIDcyLjAgNDA2LjAyMiBudWxsXQo+PgplbmRvYmoKMTg4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDE3NS42MjkgMzk2LjU1OSAxODUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE4NyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxODkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0LjU3NSAxNzUuNjI5IDU0MC45MzUgMTg1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxODcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTkwIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzUzIDAgUiAvWFlaIDcyLjAgMzMwLjA0NiBudWxsXQo+PgplbmRvYmoKMTkxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDE2My42MjkgNDEzLjg3IDE3My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTkwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE5MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuNDM4IDE2My42MjkgNTQwLjc5OCAxNzMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE5MCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxOTMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTMgMCBSIC9YWVogNzIuMCAyNTQuMDcgbnVsbF0KPj4KZW5kb2JqCjE5NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxNTEuNjI5IDM4Ny45NTMgMTYxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxOTMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTk1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC42NDMgMTUxLjYyOSA1NDEuMDAzIDE2MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTkzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE5NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1MyAwIFIgL1hZWiA3Mi4wIDE3OC4wOTQgbnVsbF0KPj4KZW5kb2JqCjE5NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxMzkuNjI5IDM1My4yNzEgMTQ5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxOTYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTk4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC45MTkgMTM5LjYyOSA1NDEuMjc5IDE0OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTk2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE5OSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1MyAwIFIgL1hZWiA3Mi4wIDExNC4xMTggbnVsbF0KPj4KZW5kb2JqCjIwMCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxMjcuNjI5IDM2MS4yOTkgMTM3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxOTkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjAxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC44NTUgMTI3LjYyOSA1NDEuMjE1IDEzNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTk5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjIwMiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1NiAwIFIgL1hZWiA3Mi4wIDcwOC4wIG51bGxdCj4+CmVuZG9iagoyMDMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTE1LjYyOSAzODMuMzgxIDEyNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjAyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjIwNCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuNjc5IDExNS42MjkgNTQxLjAzOSAxMjUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIwMiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMDUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTYgMCBSIC9YWVogNzIuMCA2NDUuMzMyIG51bGxdCj4+CmVuZG9iagoyMDYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTAzLjYyOSAzNjMuNzA5IDExMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjA1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjIwNyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuODM1IDEwMy42MjkgNTQxLjE5NSAxMTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIwNSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMDggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTYgMCBSIC9YWVogNzIuMCA1ODIuNjY0IG51bGxdCj4+CmVuZG9iagoyMDkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgOTEuNjI5IDQwMS40OSAxMDEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIwOCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMTAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0LjUzNyA5MS42MjkgNTQwLjg5NyAxMDEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIwOCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMTEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTYgMCBSIC9YWVogNzIuMCA1MTkuOTk2IG51bGxdCj4+CmVuZG9iagoyMTIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNzkuNjI5IDM5Ni43MDggODkuNjE5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2dJRUDG8We5DUDG8WZ5VULE1WzoJKgaryjQFFUPZYmmCiuHNcsuCiq3Z0kFQMbxZnl1QMcyWjkVQsS9elVI0cHpVWsxT4+vZ32HaX/76y3+w//f/ApFKSEkKZW5kc3RyZWFtCmVuZG9iago2MiAwIG9iagpbCjYxIDAgUgo2MyAwIFIKNjUgMCBSCjY2IDAgUgo2OCAwIFIKNjkgMCBSCjcxIDAgUgo3MiAwIFIKNzQgMCBSCjc1IDAgUgo3NyAwIFIKNzggMCBSCjgwIDAgUgo4MSAwIFIKODMgMCBSCjg0IDAgUgo4NiAwIFIKODcgMCBSCjg5IDAgUgo5MCAwIFIKOTIgMCBSCjkzIDAgUgo5NSAwIFIKOTYgMCBSCjk4IDAgUgo5OSAwIFIKMTAxIDAgUgoxMDIgMCBSCjEwNCAwIFIKMTA1IDAgUgoxMDcgMCBSCjEwOCAwIFIKMTEwIDAgUgoxMTEgMCBSCjExMyAwIFIKMTE0IDAgUgoxMTYgMCBSCjExNyAwIFIKMTE5IDAgUgoxMjAgMCBSCjEyMiAwIFIKMTIzIDAgUgoxMjUgMCBSCjEyNiAwIFIKMTI4IDAgUgoxMjkgMCBSCjEzMSAwIFIKMTMyIDAgUgoxMzQgMCBSCjEzNSAwIFIKMTM3IDAgUgoxMzggMCBSCjE0MCAwIFIKMTQxIDAgUgoxNDMgMCBSCjE0NCAwIFIKMTQ2IDAgUgoxNDcgMCBSCjE0OSAwIFIKMTUwIDAgUgoxNTIgMCBSCjE1MyAwIFIKMTU1IDAgUgoxNTYgMCBSCjE1OCAwIFIKMTU5IDAgUgoxNjEgMCBSCjE2MiAwIFIKMTY0IDAgUgoxNjUgMCBSCjE2NyAwIFIKMTY4IDAgUgoxNzAgMCBSCjE3MSAwIFIKMTczIDAgUgoxNzQgMCBSCjE3NiAwIFIKMTc3IDAgUgoxNzkgMCBSCjE4MCAwIFIKMTgyIDAgUgoxODMgMCBSCjE4NSAwIFIKMTg2IDAgUgoxODggMCBSCjE4OSAwIFIKMTkxIDAgUgoxOTIgMCBSCjE5NCAwIFIKMTk1IDAgUgoxOTcgMCBSCjE5OCAwIFIKMjAwIDAgUgoyMDEgMCBSCjIwMyAwIFIKMjA0IDAgUgoyMDYgMCBSCjIwNyAwIFIKMjA5IDAgUgoyMTAgMCBSCjIxMiAwIFIK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ICAvQ3JvcEJveCBbMCAwIDYxMiA3OTJdCiAgL0JsZWVkQm94IFswIDAgNjEyIDc5Ml0KICAvVHJpbUJveCBbMCAwIDYxMiA3OTJdCiAgL1BhcmVudCAxIDAgUgogIC9Db250ZW50cyAyMzIgMCBSCj4+CgplbmRvYmoKMjMzIDAgb2JqCjE1NjQKZW5kb2JqCjIzNSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1NiAwIFIgL1hZWiA3Mi4wIDQzMy4zMjggbnVsbF0KPj4KZW5kb2JqCjIzNiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA3MDkuMDA1IDM4OS4zMjggNzE4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyMzUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjM4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC42MzMgNzA5LjAwNSA1NDAuOTkzIDcxOC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjM1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjIzOSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1NiAwIFIgL1hZWiA3Mi4wIDM3MC42NiBudWxsXQo+PgplbmRvYmoKMjQwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY5Ny4wMDUgMzY2LjQ3OCA3MDYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIzOSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNDEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0LjgxMyA2OTcuMDA1IDU0MS4xNzMgNzA2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyMzkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjQyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzU2IDAgUiAvWFlaIDcyLjAgMjk1Ljk5MiBudWxsXQo+PgplbmRvYmoKMjQzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY4NS4wMDUgMzU2LjA1IDY5NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjQyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI0NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuODk3IDY4NS4wMDUgNTQxLjI1NyA2OTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI0MiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNDUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTYgMCBSIC9YWVogNzIuMCAyMjEuMzI0IG51bGxdCj4+CmVuZG9iagoyNDYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjczLjAwNSAzOTIuNDE1IDY4Mi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjQ1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI0NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuNjA4IDY3My4wMDUgNTQwLjk2OCA2ODIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI0NSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNDggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTYgMCBSIC9YWVogNzIuMCAxNDYuNjU2IG51bGxdCj4+CmVuZG9iagoyNDkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjYxLjAwNSAzNzguOTA5IDY3MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjQ4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI1MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuNzE1IDY2MS4wMDUgNTQxLjA3NSA2NzAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI0OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNTEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjE2IDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjI1MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2NDkuMDA1IDM2Ni44OTcgNjU4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNTEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjUzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC44MTEgNjQ5LjAwNSA1NDEuMTcxIDY1OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjUxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI1NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTYgMCBSIC9YWVogNzIuMCA2NjEuMzkgbnVsbF0KPj4KZW5kb2JqCjI1NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MzcuMDA1IDM4Mi4wMTcgNjQ2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNTQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjU2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC42OTEgNjM3LjAwNSA1NDEuMDUxIDY0Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjU0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI1NyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTYgMCBSIC9YWVogNzIuMCA1ODQuNzE3IG51bGxdCj4+CmVuZG9iagoyNTggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjI1LjAwNSAzNzkuNDk3IDYzNC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjU3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI1OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuNzExIDYyNS4wMDUgNTQxLjA3MSA2MzQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI1NyAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNjAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjE2IDAgUiAvWFlaIDcyLjAgNTIwLjA0NCBudWxsXQo+PgplbmRvYmoKMjYxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDYxMy4wMDUgMzUxLjAyOSA2MjIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI2MCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNjIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0LjkzNiA2MTMuMDA1IDU0MS4yOTYgNjIyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNjAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjYzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIxNiAwIFIgL1hZWiA3Mi4wIDQ1NS4zNzEgbnVsbF0KPj4KZW5kb2JqCjI2NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MDEuMDA1IDQxNS45MDIgNjEwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNjMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjY1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC40MjIgNjAxLjAwNSA1NDAuNzgyIDYxMC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjYzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI2NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTYgMCBSIC9YWVogNzIuMCAzNzguNjk4IG51bGxdCj4+CmVuZG9iagoyNjcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTg5LjAwNSA0MDIuNzI1IDU5OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjY2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI2OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuNTI3IDU4OS4wMDUgNTQwLjg4NyA1OTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI2NiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNjkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjE2IDAgUiAvWFlaIDcyLjAgMzE0LjAyNSBudWxsXQo+PgplbmRvYmoKMjcwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDU3Ny4wMDUgNDE2LjA1MiA1ODYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI2OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNzEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0LjQyMSA1NzcuMDA1IDU0MC43ODEgNTg2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNjkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjcyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIxNiAwIFIgL1hZWiA3Mi4wIDIyNS4zNTIgbnVsbF0KPj4KZW5kb2JqCjI3MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1NjUuMDA1IDM3NS4zOTMgNTc0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNzIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjc0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC43NDMgNTY1LjAwNSA1NDEuMTAzIDU3NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjcyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI3NSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTYgMCBSIC9YWVogNzIuMCAxNDguNjc5IG51bGxdCj4+CmVuZG9iagoyNzYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTUzLjAwNSA0MTEuNzU5IDU2Mi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjc1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI3NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuNDU1IDU1My4wMDUgNTQwLjgxNSA1NjIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI3NSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNzggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjE5IDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjI3OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1NDEuMDA1IDM5OC4yNTIgNTUwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNzggMCBSCi9IIC9JCgo+PgplbmRvYmoKMjgwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC41NjEgNTQxLjAwNSA1NDAuOTIxIDU1MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjc4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI4MSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTkgMCBSIC9YWVogNzIuMCA2NTAuOTEgbnVsbF0KPj4KZW5kb2JqCjI4MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1MjkuMDA1IDM5OC44NCA1MzguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI4MSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyODMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0LjU1NyA1MjkuMDA1IDU0MC45MTcgNTM4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyODEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjg0IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIxOSAwIFIgL1hZWiA3Mi4wIDU4OC4yMTMgbnVsbF0KPj4KZW5kb2JqCjI4NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1MTcuMDA1IDM5Ni4xNDEgNTI2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyODQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjg2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC41NzkgNTE3LjAwNSA1NDAuOTM5IDUyNi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjg0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI4NyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTkgMCBSIC9YWVogNzIuMCA1MTMuNTE2IG51bGxdCj4+CmVuZG9iagoyODggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTA1LjAwNSAzNjAuODggNTE0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyODcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjg5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC44NTggNTA1LjAwNSA1NDEuMjE4IDUxNC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjg3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI5MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTkgMCBSIC9YWVogNzIuMCA0NTAuODE5IG51bGxdCj4+CmVuZG9iagoyOTEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDkzLjAwNSAzODIuOTYzIDUwMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjkwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI5MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuNjgzIDQ5My4wMDUgNTQxLjA0MyA1MDIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI5MCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyOTMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjE5IDAgUiAvWFlaIDcyLjAgMzg4LjEyMiBudWxsXQo+PgplbmRvYmoKMjk0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDQ4MS4wMDUgMzYzLjI5MSA0OTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI5MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoyOTUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0LjgzOSA0ODEuMDA1IDU0MS4xOTkgNDkwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyOTMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjk2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIxOSAwIFIgL1hZWiA3Mi4wIDMyNS40MjUgbnVsbF0KPj4KZW5kb2JqCjI5NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0NjkuMDA1IDQwMS4wNzEgNDc4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyOTYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjk4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC41MzkgNDY5LjAwNSA1NDAuODk5IDQ3OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjk2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI5OSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTkgMCBSIC9YWVogNzIuMCAyNjIuNzI4IG51bGxdCj4+CmVuZG9iagozMDAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDU3LjAwNSAzOTYuMjkgNDY2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyOTkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzAxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC41NzcgNDU3LjAwNSA1NDAuOTM3IDQ2Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjk5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMwMiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTkgMCBSIC9YWVogNzIuMCAxNzYuMDMxIG51bGxdCj4+CmVuZG9iagozMDMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDQ1LjAwNSAzNTUuNjMxIDQ1NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzAyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjMwNCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuOSA0NDUuMDA1IDU0MS4yNiA0NTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMwMiAwIFIKL0ggL0kKCj4+CmVuZG9iagozMDUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjE5IDAgUiAvWFlaIDcyLjAgMTEzLjMzNCBudWxsXQo+PgplbmRvYmoKMzA2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDQzMy4wMDUgMzkxLjk5NyA0NDIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMwNSAwIFIKL0ggL0kKCj4+CmVuZG9iagozMDcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0LjYxMSA0MzMuMDA1IDU0MC45NzEgNDQyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMDUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzA4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyMiAwIFIgL1hZWiA3Mi4wIDY5Ni4wIG51bGxdCj4+CmVuZG9iagozMDkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDIxLjAwNSAzNzguNDY2IDQzMC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzA4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMxMCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjguMzEgNDIxLjAwNSA1NDEuMDMgNDMwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMDggMCBSCi9IIC9JCgo+PgplbmRvYmoKMzExIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyMiAwIFIgL1hZWiA3Mi4wIDYxOS45OTggbnVsbF0KPj4KZW5kb2JqCjMxMiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0MDkuMDA1IDM3OS4wNTMgNDE4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMTEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzEzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyOC4zMDQgNDA5LjAwNSA1NDEuMDI0IDQxOC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzExIDAgUgovSCAvSQoKPj4KZW5kb2JqCjMxNCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjIgMCBSIC9YWVogNzIuMCA1NTUuOTk2IG51bGxdCj4+CmVuZG9iagozMTUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzk3LjAwNSA0MTcuMjkyIDQwNi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzE0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMxNiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjguMDAyIDM5Ny4wMDUgNTQwLjcyMiA0MDYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMxNCAwIFIKL0ggL0kKCj4+CmVuZG9iagozMTcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjIyIDAgUiAvWFlaIDcyLjAgNDkxLjk5NCBudWxsXQo+PgplbmRvYmoKMzE4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDM4NS4wMDUgMzg2LjEwNSAzOTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMxNyAwIFIKL0ggL0kKCj4+CmVuZG9iagozMTkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI4LjI0OCAzODUuMDA1IDU0MC45NjggMzk0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMTcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzIwIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyMiAwIFIgL1hZWiA3Mi4wIDQyNy45OTIgbnVsbF0KPj4KZW5kb2JqCjMyMSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzNzMuMDA1IDM0OS44NDkgMzgyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMjAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzIyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyOC41MzYgMzczLjAwNSA1NDEuMjU2IDM4Mi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzIwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjMyMyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjIgMCBSIC9YWVogNzIuMCAzNjMuOTkgbnVsbF0KPj4KZW5kb2JqCjMyNCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzNjEuMDA1IDM5Mi45OTggMzcwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMjMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzI1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyOC4xOTQgMzYxLjAwNSA1NDAuOTE0IDM3MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzIzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjMyNiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjIgMCBSIC9YWVogNzIuMCAyODcuOTg4IG51bGxdCj4+CmVuZG9iagozMjcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzQ5LjAwNSA0MTAuMzA5IDM1OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzI2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMyOCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjguMDU2IDM0OS4wMDUgNTQwLjc3NiAzNTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMyNiAwIFIKL0ggL0kKCj4+CmVuZG9iagozMjkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjIyIDAgUiAvWFlaIDcyLjAgMjExLjk4NiBudWxsXQo+PgplbmRvYmoKMzMwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDMzNy4wMDUgMzg0LjM5MiAzNDYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMyOSAwIFIKL0ggL0kKCj4+CmVuZG9iagozMzEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI4LjI2MiAzMzcuMDA1IDU0MC45ODIgMzQ2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMjkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzMyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyMiAwIFIgL1hZWiA3Mi4wIDEzNS45ODQgbnVsbF0KPj4KZW5kb2JqCjMzMyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzMjUuMDA1IDM0OS43MSAzMzQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMzMiAwIFIKL0ggL0kKCj4+CmVuZG9iagozMzQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI4LjUzOCAzMjUuMDA1IDU0MS4yNTggMzM0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMzIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzM1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyNSAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagozMzYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzEzLjAwNSAzNTcuNzM4IDMyMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzM1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMzNyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjguNDc0IDMxMy4wMDUgNTQxLjE5NCAzMjIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMzNSAwIFIKL0ggL0kKCj4+CmVuZG9iagozMzggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjI1IDAgUiAvWFlaIDcyLjAgNjYwLjMzOCBudWxsXQo+PgplbmRvYmoKMzM5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDMwMS4wMDUgMzc5LjgyIDMxMC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzM4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM0MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjguMjk4IDMwMS4wMDUgNTQxLjAxOCAzMTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMzOCAwIFIKL0ggL0kKCj4+CmVuZG9iagozNDEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjI1IDAgUiAvWFlaIDcyLjAgNTk0LjI5OCBudWxsXQo+PgplbmRvYmoKMzQyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDI4OS4wMDUgMzYwLjE0OCAyOTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM0MSAwIFIKL0ggL0kKCj4+CmVuZG9iagozNDMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI4LjQ1NCAyODkuMDA1IDU0MS4xNzQgMjk4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNDEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzQ0IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyNSAwIFIgL1hZWiA3Mi4wIDUyOC4yNTggbnVsbF0KPj4KZW5kb2JqCjM0NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyNzcuMDA1IDM5Ny45MjkgMjg2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNDQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzQ2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyOC4xNTYgMjc3LjAwNSA1NDAuODc2IDI4Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzQ0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM0NyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjUgMCBSIC9YWVogNzIuMCA0NjIuMjE4IG51bGxdCj4+CmVuZG9iagozNDggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMjY1LjAwNSAzOTMuMTQ3IDI3NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzQ3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM0OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjguMTkyIDI2NS4wMDUgNTQwLjkxMiAyNzQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM0NyAwIFIKL0ggL0kKCj4+CmVuZG9iagozNTAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjI1IDAgUiAvWFlaIDcyLjAgMzcyLjE3OCBudWxsXQo+PgplbmRvYmoKMzUxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDI1My4wMDUgMzg1Ljc2NyAyNjIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM1MCAwIFIKL0ggL0kKCj4+CmVuZG9iagozNTIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI4LjI1MiAyNTMuMDA1IDU0MC45NzIgMjYyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNTAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzUzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyNSAwIFIgL1hZWiA3Mi4wIDMwNi4xMzggbnVsbF0KPj4KZW5kb2JqCjM1NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyNDEuMDA1IDM2Mi45MTcgMjUwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNTMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzU1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyOC40MzIgMjQxLjAwNSA1NDEuMTUyIDI1MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzUzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjM1NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjUgMCBSIC9YWVogNzIuMCAyMjguMDk4IG51bGxdCj4+CmVuZG9iagozNTcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMjI5LjAwNSAzNTIuNDg5IDIzOC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzU2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM1OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjguNTE2IDIyOS4wMDUgNTQxLjIzNiAyMzguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM1NiAwIFIKL0ggL0kKCj4+CmVuZG9iagozNTkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjI1IDAgUiAvWFlaIDcyLjAgMTUwLjA1OCBudWxsXQo+PgplbmRvYmoKMzYwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDIxNy4wMDUgMzg4Ljg1NCAyMjYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM1OSAwIFIKL0ggL0kKCj4+CmVuZG9iagozNjEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI4LjIyNiAyMTcuMDA1IDU0MC45NDYgMjI2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNTkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzYyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyOCAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagozNjMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMjA1LjAwNSAzNzUuMzQ4IDIxNC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzYyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjM2NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjguMzM0IDIwNS4wMDUgNTQxLjA1NCAyMTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM2MiAwIFIKL0ggL0kKCj4+CmVuZG9iagozNjUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjI4IDAgUiAvWFlaIDcyLjAgNjUwLjkxIG51bGxdCj4+CmVuZG9iagozNjYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTkzLjAwNSAzNjMuMzM2IDIwMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzY1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM2NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjguNDMgMTkzLjAwNSA1NDEuMTUgMjAyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNjUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzY4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyOCAwIFIgL1hZWiA3Mi4wIDU4OC4yMTMgbnVsbF0KPj4KZW5kb2JqCjM2OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxODEuMDA1IDM3OC40NTYgMTkwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNjggMCBSCi9IIC9JCgo+PgplbmRvYmoKMzcwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyOC4zMSAxODEuMDA1IDU0MS4wMyAxOTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM2OCAwIFIKL0ggL0kKCj4+CmVuZG9iagozNzEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjI4IDAgUiAvWFlaIDcyLjAgNTEzLjUxNiBudWxsXQo+PgplbmRvYmoKMzcyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDE2OS4wMDUgMzc1LjkzNiAxNzguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM3MSAwIFIKL0ggL0kKCj4+CmVuZG9iagozNzMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI4LjMzIDE2OS4wMDUgNTQxLjA1IDE3OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzcxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjM3NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjggMCBSIC9YWVogNzIuMCA0NTAuODE5IG51bGxdCj4+CmVuZG9iagozNzUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTU3LjAwNSAzNDcuNDY4IDE2Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzc0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM3NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjguNTU0IDE1Ny4wMDUgNTQxLjI3NCAxNjYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM3NCAwIFIKL0ggL0kKCj4+CmVuZG9iagozNzcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjI4IDAgUiAvWFlaIDcyLjAgMzg4LjEyMiBudWxsXQo+PgplbmRvYmoKMzc4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDE0NS4wMDUgNDI0LjU1MyAxNTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM3NyAwIFIKL0ggL0kKCj4+CmVuZG9iagozNzkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3Ljk0NCAxNDUuMDA1IDU0MC42NjQgMTU0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNzcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzgwIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyOCAwIFIgL1hZWiA3Mi4wIDMyNS40MjUgbnVsbF0KPj4KZW5kb2JqCjM4MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxMzMuMDA1IDM1Ny4xMSAxNDIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM4MCAwIFIKL0ggL0kKCj4+CmVuZG9iagozODIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI4LjQ3OCAxMzMuMDA1IDU0MS4xOTggMTQyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzODAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzgzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyOCAwIFIgL1hZWiA3Mi4wIDI1MC43MjggbnVsbF0KPj4KZW5kb2JqCjM4NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxMjEuMDA1IDM5Mi4zNTEgMTMwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzODMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzg1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyOC4yIDEyMS4wMDUgNTQwLjkyIDEzMC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzgzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjM4NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjggMCBSIC9YWVogNzIuMCAxODguMDMxIG51bGxdCj4+CmVuZG9iagozODcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTA5LjAwNSA0MDAuMjU5IDExOC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzg2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM4OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjguMTM2IDEwOS4wMDUgNTQwLjg1NiAxMTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM4NiAwIFIKL0ggL0kKCj4+CmVuZG9iagozODkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjI4IDAgUiAvWFlaIDcyLjAgMTEzLjMzNCBudWxsXQo+PgplbmRvYmoKMzkwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDk3LjAwNSA0MTcuNTcxIDEwNi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzg5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM5MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjguMCA5Ny4wMDUgNTQwLjcyIDEwNi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzg5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM5MiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMzEgMCBSIC9YWVogNzIuMCA2OTYuMCBudWxsXQo+PgplbmRvYmoKMzkzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDg1LjAwNSAzOTEuNjUzIDk0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzOTIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzk0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyOC4yMDQgODUuMDA1IDU0MC45MjQgOTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM5MiAwIFIKL0ggL0kKCj4+CmVuZG9iagozOTUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjMxIDAgUiAvWFlaIDcyLjAgNjE4LjY2OSBudWxsXQo+PgplbmRvYmoKMzk2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDczLjAwNSAzNjQuOTk5IDgyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzOTUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzk3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyOC40MTYgNzMuMDA1IDU0MS4xMzYgODIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM5NSAwIFIKL0ggL0kKCj4+CmVuZG9iagozOTggMCBvYmoKPDwgL0xlbmd0aCAzOTkgMCBSIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0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MCBSCjI0MCAwIFIKMjQxIDAgUgoyNDMgMCBSCjI0NCAwIFIKMjQ2IDAgUgoyNDcgMCBSCjI0OSAwIFIKMjUwIDAgUgoyNTIgMCBSCjI1MyAwIFIKMjU1IDAgUgoyNTYgMCBSCjI1OCAwIFIKMjU5IDAgUgoyNjEgMCBSCjI2MiAwIFIKMjY0IDAgUgoyNjUgMCBSCjI2NyAwIFIKMjY4IDAgUgoyNzAgMCBSCjI3MSAwIFIKMjczIDAgUgoyNzQgMCBSCjI3NiAwIFIKMjc3IDAgUgoyNzkgMCBSCjI4MCAwIFIKMjgyIDAgUgoyODMgMCBSCjI4NSAwIFIKMjg2IDAgUgoyODggMCBSCjI4OSAwIFIKMjkxIDAgUgoyOTIgMCBSCjI5NCAwIFIKMjk1IDAgUgoyOTcgMCBSCjI5OCAwIFIKMzAwIDAgUgozMDEgMCBSCjMwMyAwIFIKMzA0IDAgUgozMDYgMCBSCjMwNyAwIFIKMzA5IDAgUgozMTAgMCBSCjMxMiAwIFIKMzEzIDAgUgozMTUgMCBSCjMxNiAwIFIKMzE4IDAgUgozMTkgMCBSCjMyMSAwIFIKMzIyIDAgUgozMjQgMCBSCjMyNSAwIFIKMzI3IDAgUgozMjggMCBSCjMzMCAwIFIKMzMxIDAgUgozMzMgMCBSCjMzNCAwIFIKMzM2IDAgUgozMzcgMCBSCjMzOSAwIFIKMzQwIDAgUgozNDIgMCBSCjM0MyAwIFIKMzQ1IDAgUgozNDYgMCBSCjM0OCAwIFIKMzQ5IDAgUgozNTEgMCBSCjM1MiAwIFIKMzU0IDAgUgozNTUgMCBSCjM1NyAwIFIKMzU4IDAgUgozNjAgMCBSCjM2MSAwIFIKMzYzIDAgUgozNjQgMCBSCjM2NiAwIFIKMzY3IDAgUgozNjkgMCBSCjM3MCAwIFIKMzcyIDAgUgozNzMgMCBSCjM3NSAwIFIKMzc2IDAgUgozNzggMCBSCjM3OSAwIFIKMzgxIDAgUgozODIgMCBSCjM4NCAwIFIKMzg1IDAgUgozODcgMCBSCjM4OCAwIFIKMzkwIDAgUgozOTEgMCBSCjM5MyAwIFIKMzk0IDAgUgozOTYgMCBSCjM5NyAwIFIKXQplbmRvYmoKMjM0IDAgb2JqCjw8CiAgL1Jlc291cmNlcyAzIDAgUgogIC9UeXBl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83TCuL1Iosn/4jzWct8ekWMtc7ztGmcJXeRMJmsrGnWHD88c57k4s7qRl/q6kZSrKkbXXtGuUWv+choD5ZnTkEOiVF9fXLV9dVPa8nIPtMsnca3+Aii2KuUKZW5kc3RyZWFtCmVuZG9iago0MDkgMCBvYmoKPDwKICAvUmVzb3VyY2VzIDMgMCBSCiAgL1R5cGUgL1BhZ2UKICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQogIC9Dcm9wQm94IFswIDAgNjEyIDc5Ml0KICAvQmxlZWRCb3ggWzAgMCA2MTIgNzkyXQogIC9UcmltQm94IFswIDAgNjEyIDc5Ml0KICAvUGFyZW50IDEgMCBSCiAgL0NvbnRlbnRzIDQxMCAwIFIKPj4KCmVuZG9iago0MTEgMCBvYmoKNjYyCmVuZG9iago0MTMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjMxIDAgUiAvWFlaIDcyLjAgNTUzLjMzOCBudWxsXQo+PgplbmRvYmoKNDE0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDcwOS4wMDUgNDA1LjE5IDcxOC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDEzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjQxNiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjguMDk4IDcwOS4wMDUgNTQwLjgxOCA3MTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQxMyAwIFIKL0ggL0kKCj4+CmVuZG9iago0MTcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjMxIDAgUiAvWFlaIDcyLjAgNDg4LjAwNyBudWxsXQo+PgplbmRvYmoKNDE4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY5Ny4wMDUgMzkzLjAyOCA3MDYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQxNyAwIFIKL0ggL0kKCj4+CmVuZG9iago0MTkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI4LjE5NCA2OTcuMDA1IDU0MC45MTQgNzA2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0MTcgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDIwIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIzMSAwIFIgL1hZWiA3Mi4wIDQyMi42NzYgbnVsbF0KPj4KZW5kb2JqCjQyMSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2ODUuMDA1IDM5MS41NDQgNjk0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0MjAgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDIyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyOC4yMDYgNjg1LjAwNSA1NDAuOTI2IDY5NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDIwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjQyMyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMzEgMCBSIC9YWVogNzIuMCAzNTcuMzQ1IG51bGxdCj4+CmVuZG9iago0MjQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjczLjAwNSAzNzAuMTc4IDY4Mi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDIzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjQyNSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjguMzc0IDY3My4wMDUgNTQxLjA5NCA2ODIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQyMyAwIFIKL0ggL0kKCj4+CmVuZG9iago0MjYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjMxIDAgUiAvWFlaIDcyLjAgMjgwLjAxNCBudWxsXQo+PgplbmRvYmoKNDI3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY2MS4wMDUgMzU5Ljc1IDY3MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDI2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjQyOCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjguNDU4IDY2MS4wMDUgNTQxLjE3OCA2NzAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQyNiAwIFIKL0ggL0kKCj4+CmVuZG9iago0MjkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjMxIDAgUiAvWFlaIDcyLjAgMjE0LjY4MyBudWxsXQo+PgplbmRvYmoKNDMwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY0OS4wMDUgMzk2LjExNiA2NTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQyOSAwIFIKL0ggL0kKCj4+CmVuZG9iago0MzEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI4LjE3IDY0OS4wMDUgNTQwLjg5IDY1OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDI5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjQzMiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMzEgMCBSIC9YWVogNzIuMCAxNDkuMzUyIG51bGxdCj4+CmVuZG9iago0MzMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjM3LjAwNSAzODUuNzE3IDY0Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDMyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjQzNCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjguMjUyIDYzNy4wMDUgNTQwLjk3MiA2NDYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQzMiAwIFIKL0ggL0kKCj4+CmVuZG9iago0MzUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAwIDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjQzNiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MjUuMDA1IDM4My4xOTcgNjM0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0MzUgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDM3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyOC4yNzIgNjI1LjAwNSA1NDAuOTkyIDYzNC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDM1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjQzOCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MDAgMCBSIC9YWVogNzIuMCA2NjEuNiBudWxsXQo+PgplbmRvYmoKNDM5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDYxMy4wMDUgMzcyLjM2IDYyMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDM4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ0MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjguMzU4IDYxMy4wMDUgNTQxLjA3OCA2MjIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQzOCAwIFIKL0ggL0kKCj4+CmVuZG9iago0NDEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAwIDAgUiAvWFlaIDcyLjAgNTg1LjIgbnVsbF0KPj4KZW5kb2JqCjQ0MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MDEuMDA1IDM2Ny45MDcgNjEwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NDEgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDQzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyOC4zOTIgNjAxLjAwNSA1NDEuMTEyIDYxMC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDQxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ0NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MDAgMCBSIC9YWVogNzIuMCA1MDguOCBudWxsXQo+PgplbmRvYmoKNDQ1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDU4OS4wMDUgMzc5LjM4MiA1OTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQ0NCAwIFIKL0ggL0kKCj4+CmVuZG9iago0NDYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI4LjMwMiA1ODkuMDA1IDU0MS4wMjIgNTk4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NDQgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDQ3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQwMCAwIFIgL1hZWiA3Mi4wIDQzMi40IG51bGxdCj4+CmVuZG9iago0NDggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTc3LjAwNSAyMDIuNDUzIDU4Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDQ3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ0OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjkuNzA0IDU3Ny4wMDUgNTQyLjQyNCA1ODYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQ0NyAwIFIKL0ggL0kKCj4+CmVuZG9iago0NTAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAzIDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjQ1MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDU2NS4wMDUgMTMwLjA4MSA1NzQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQ1MCAwIFIKL0ggL0kKCj4+CmVuZG9iago0NTIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMwLjEwOCA1NjUuMDA1IDU0Mi44MjggNTc0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NTAgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDUzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQwNiAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iago0NTQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA1NTMuMDA1IDExOS4wMzYgNTYyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NTMgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDU1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMC4xOSA1NTMuMDA1IDU0Mi45MSA1NjIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQ1MyAwIFIKL0ggL0kKCj4+CmVuZG9iago0NTYg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YmoKPDwKICAvVHlwZSAvRm9udAogIC9TdWJ0eXBlIC9UeXBlMAogIC9CYXNlRm9udCAvRUFBQUFCK0RlamFWdVNhbnMKICAvRW5jb2RpbmcgL0lkZW50aXR5LUgKICAvVG9Vbmljb2RlIDQ3NSAwIFIKICAvRGVzY2VuZGFudEZvbnRzIFs0NzQgMCBSXQo+PgoKZW5kb2JqCjQ3NCAwIG9iago8PCAvVHlwZSAvRm9udAovQmFzZUZvbnQgL0VBQUFBQitEZWphVnVTYW5zIAovQ0lEVG9HSURNYXAgL0lkZW50aXR5IAovU3VidHlwZSAvQ0lERm9udFR5cGUyCi9DSURTeXN0ZW1JbmZvIDw8IC9SZWdpc3RyeSAoQWRvYmUpIC9PcmRlcmluZyAoVUNTKSAvU3VwcGxlbWVudCAwID4+Ci9Gb250RGVzY3JpcHRvciA0NzAgMCBSCi9EVyAwCi9XIFsgMCBbNjAwIDMxNyAzNjAgNjAzIDQxMSA2MTUgMzUyIDYxMiA1NDkgMzE3IDg2MiA2MzYgNTc1IDM5MiA2MzMgNTU3IDI3NyA1MjAgNjg2IDYzNCA2MzQgNjM2IDYzMyA2MTEgNjMzIDY4NCA4MTcgNzg3IDYzNCA2MzYgNjMxIDI3NyA2MzYgOTg4IDYzNiA1NzkgNjM2IDY5NCA2MzQgNjM0IDYxMCA2ODQgNzQ4IDY5OCA5NzQgNTkxIDU5MSA2MzQgNzg3IDI5NCA3NzAgMzM2IDU5MSA4MzcgNjM2IDYzNiA2MzYgMjc3IDYzNiA3NTEgNzMxIDgzNyAzMTcgNjEwIDUzMCA0NTkgNTg5IDUyNCAzOTAgMzkwIDMzNiA4MzcgODM3IDc3NCAyNzQgNjU1IDI5NCBdIF0KPj4KZW5kb2JqCjQ3NSAwIG9iago8PCAvTGVuZ3RoIDQ4NyAwIFIgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCnicXZTbjpswEIbv8xS+3F6swGMDG2kVqUpVKRc9qGkfgGCTRWoAEXKRty/4m81KRcrhx/bM/3nsyfaHL4e+m032cxqaY5xN2/VhitfhNjXRnOK56zdWTOiaWVX6bi71uMmWxcf7dY6XQ98OxjEr3EadaUz2a/lznae7efochlP8ZEJs1/c/phCnrj+bpz/74+Pt8TaOf+Ml9rPJ07vYh/Sb7b/V4/f6Ek2W4jwfwjKpm+/Py/KPGb/vYzSStMVDM4R4HesmTnV/jpvXfHl25vXr8uzW6P+Nl1uWndrmrZ4e09vl2SVlF5XnkqMEFVAuqULHfFKVoKqkSot6QTnUligRVSflNeYpKafrGsZKVItqkrI5MbcofFZksPj0eLH4LD0Kn2WFKsinM0vGXlDKwE5YZcC1haHAmYWh0pgwFDBYGAp1FsinKuKzQMFXwifwOVwLfAUZBD7HOlG+Ewo+hzOBr4BP4KuomCifjsFXaD74PAyiNYJd4PMwCHwl9RP4Ks0OX0WNBL6KmA4+z+46+DwzndYPLw4+V6P0nFEjB5/gxcHn4HMwlLoOBqcZlEGjaI3YT6c1gsjBIFTFwVAQxWuNYPB6V9hPvzLIQ8FQ4cXjU3QddXBk8NTBsdde60DdPQyiShmou9e7UqdrrvfZv9/uj27AhuV60iHOIc61XLrtakv9aE7/fmINZ4ZkhF/by9omH72ruU3T0rZSl0z9au1UXR8f7XYcxnVV+vwDPXtTTAplbmRzdHJlYW0KZW5kb2JqCjQ3NiAwIG9iago8PAogIC9UeXBlIC9Gb250RGVzY3JpcHRvcgogIC9Gb250TmFtZSAvRUFBQUFDK0RlamFWdVNhbnMtQm9sZAogIC9Gb250QkJveCBbLTEwNjkgLTQxNSAxOTc1IDExNzRdCiAgL0ZsYWdzIDMzCiAgL0NhcEhlaWdodCA3MjkKICAvQXNjZW50IDExNzQKICAvRGVzY2VudCAtNDE1CiAgL0l0YWxpY0FuZ2xlIDAKICAvU3RlbVYgMAogIC9NaXNzaW5nV2lkdGggNTAwCiAgL0ZvbnRGaWxlMiA0NzcgMCBSCiAgL0NJRFNldCA0NzggMCBSCj4+CgplbmRvYmoKNDc3IDAgb2JqCjw8CiAgL0xlbmd0aDEgMzAxMDgKICAvTGVuZ3RoIDQ4OCAwIFIKICAvRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeJztvQl8FEX2OF7V1d0z03MnmdxHJxBCJCQhEDAcMoEECIQkhoCcmkkyIcEkEzMTEAGBdb1lwVUQEJdDvoiYxQh8PRARFXcVZcEVdD3RFVZ3jej6Y10MSfF/Vd2Tg8N11T3+v88vbXdXV1e9evd79abZRRghZEHLEEHu4ikZWV9PvP8hhNIPQu+0yvkB9apnBhmh/TpCQll149z6WcL1XyFEVOhrmVu3sHpp5ZthCInHEEr9qsbrqfr2ly//FqGMWHg/tAY6bI8bdsFzGTz3rakP3DgzKf538HwjQlis81V6kBQFYwnAx8Z6z42N8m3yQIQyF8N4tcFT722Kf/AkPG9AaFR2o88fOL8czUSo/hh739jkbVzs2fIpPJ9ByPAIrsaDcTXah/4M0EahLaidJCABjmroZfcWXIba4H0FjFwu3orL4F4vbkUCvF8qHgaYAh6MKtAN0EoWt+J9aC86BbOX4xXSBGkmG43YH4P1jfQS/krKEXLQdLFeHCXuEpeLu2BEs1gtLketcM0R3hA3iIvEI+IiNJ1hhgvZyfBA6/FE3AetF9bjPByF84TD6AXAuRqPxuvxCOk16TV0HB3HJTCyBS0QFPxb/DXOwNPxLpj1DfoGJ8BTtpCNT+NPAeO16A0yXVLQerQSh8DTPnQY8D6FvkZ+EaCildJxYYB0HL2EPkZvQz9C87AA1zgyUDoOx1doO5oHnPkYC9JxOcyQKFYLZ1EbvkXYJpzFfbAARwhOAG5eSw6L5eJvxTvhLXAHC2QwSSBj4DqbjZCO4/WAxcdyNV4I49ixCNZpE14SngYa96MPgC5YXZgtLBLWow/wTrwXMEboVrxTLDdUiDFovbxenI5OM96gN4TDwI8Szo+70d3yIPSNKKOvSCEuF7czjqFk6QWMcKJhohyC1uCJhluAEkSGoUUItBK9ipH0gnbAKKMch9aIKeRXgLsgLAnyDS9Eh4UcUoE28OM+/DS6Dz2N/AhAkH5PGWRJJAJGaaqjVUguqGp1Xz1dfWVG4sC0Cx5Vh0FtRSWt1oXq0+fPl0wXY6QZrVJsK0k2torJfT6+3MuPB6ZNKpmuPo375+fpYPPL86BzynRosifohv78PP6OrdoqJcN/BeWtamWNepfjrj7D73J4hw9E2l+hfi5mNgbnKlDYvnDuAc7cD7bqhvMVhCR4L8M7GezLUA7nZwgZZ8N5FiHTEDjhnQJ2awZbNwM8cwc4igBCVrBVW384wQ/Y4b0DOO2AeU6A6wS/EVKFUGgknLBe2AQ4P0LIBc/hRxGKqIMTxkT9HKHoEoRiwA/EwHpxLQjFAw4JsI56B0KJVyKUlIdQH/3suw9EDWskw5r94F2/VjjB5lMy4YR7f5ibOhJOWDP1JLN4ukaslraCVzOghH1IxP2AITLu9yQ2SncKIso4eKxtEHIcazvWlhnqTHQmJzoTq0XU4ScxHafoGoPt7NdNcirjJkY+vE/4RDgBsEKeEh5DO0SMRMexgzD9DEyGiT4h0HmPcIJ+oPkGwFXOAWszogiU7nahA6YV+EC4UQhXkDTQkY7CTSTS0dHW0ebMgb9BKKMN4OwqicJ4DnYOzhqaPaRfH5yoihHhIa4wwSCLqVgYdVfbt2e/6PwbXgNOa/KC2urq2htpKxzzxF0dN/zlxIef4T6egJeefeRR+ndvwMPwmH7+EykF7M8MeAx0h8qbQ9Bmy6GQtZGmMfZCMsY1QsMC6Dh5ps1xOvPJYaGjo8aHEkAjSXaFhWuogKt3OlAivwovLFiyZEHz4sXNOBHn02fpCfohfQaPJ4se27z5MXZiRF+hbXC8gq/EYXBcqfEQcBGzAZcoNMwdjV7Hx0Tb69ZjymanuDnikHNttGGMFYWNiHZ0HMwKIkTPnHb87XTmnutilsYIjDXpuE8Qr2FOG+6jIZYVLmYX3Fe85pFH1pQ94C779TX0DboDT8MZ0x8TR9H3szIff+ihx7MG0fcSEvAw7IJjWIKG0ybgjyyWA04j3DF2grDlvbCjEWsdeHeILKBQu9U5XrAiByAFAspyhjBRncw6c5LLLXNPecwyhhdoD0gJ0IqIx4xjoEyJ2YBdUr9NuEawOcPHpzcuw9V0/dX/W//ia3iP0NI4i36RfvuCmD79WtYJqec2bamYc5rhswNscA/wKBnVulNjXCEm0YBU2RBpf0892occit8dG2pAYSEWo1WeEGYNmZAQY41z9HN0TGq1l01/BsUh95UzOkYykeZoyI4cefLMyJOAeg4cETmZ2G1PSMlMKUlpTFmWsirl8RTDHHwVIB3uAqSvwkzvkmQDtHmDdSa6+Htxb96zjS8comsxHldU7RPoWnfp3EZ4rBnz2NzALrKtpv70J53ThAnW2OgF12/f2PmuMGHv9Y8+1PmOWL71uvJGzS6YPioi88wxaKw7Ebn+gE2vG49JGy347ciNIYcsa2NjXILRZUV5gtU+Ipbz/SAnhSnESa4Rp4HzGXGj45hGuBI5y3sog4okjQhJ6XjWuuGeG75YspQupUfp43gSTsJGPIquWlBe8zOHMLj65pvH5tG2zEE4G0dA7BpOX7yveklzg6Yb4I+kEMA1AmW7I60QRJX3Qo66Djl22zDoxHin1Wp3MPPJOtPGGH2yWyuilkVxbU3MBjamaDrbzUkphK61OlwTQCfoelx99ZMNL74q7Oic5sMP3tsQ3Sfl1+s4z7hGMDxiwGdvlX6FQlG9O9omGe1ksxPvNm5GitFsEkwisjpCbGVhmhJManWUzZrU6mSXkLJZoBM2phMjD3aMPHgwhLuag21nRjKFYMoQORqNDmWpDLE77M4SoYSUuMqFcmKagxj+cISFj4BGUr9sZx/nYKcwGN9AV141+2l6+NgTu3ZJv6Ivnkc0uWjYefTEMfweRNirgnIWXwbeKaDJD7mvMMkoKsGMfh9xRN5oO+pUX094LXZjHzB6C+oTQSKtJqt5VAKxho0AVW47CJbG0OO2dqYD3MCfTn9zOieEaXSmuzAjZZQ6KnF0ymR1cuIcdU5ig9qQeLN6c2Jjyj3qPYkPqQ8l/lr9deJz6nOJrqz4zISx8e6EKfElCZXx5Qm3xi9LuC9+VcKW+E0Ju+JbExxzevi5UTg5aLXZQ/omDg6aAshMFYUtjTfMutp7F66lD0zYs3znO9iOk9687Rf+30z1fxaARMyKzxZOzJt8b33q7Z3Lt1XPeW3Ly0/HTi1OT8fO2LgvOU9An4QQOYzHo1S3Tf4A7RYfFiQMquUwOjpAJnoccJtKTOWmRtMykwi+JZGLIbGF+Q92iuXnNslh9P1gnJHuhDijgHYMcodbdhrMO9EKU6jVgI2OgaLZGI5IGNPRY12R5gyLd7uQCzPYqugKExP7OBO7os4+YSmOw4PoEfoJpUvx8uONN93UKB3v/MvnnZ3t4n56XX1VVV23fQA9F9rHw5e2j7Z/bB/Of2Af6+4L2occ1rldMxDMefAN8MCMrnKHCgeM+0W0QpENJFwyYSDfopHPmDvyzEjGXped2EW7ZJftBruxxFpubbRutCrdrGbHPrxcuBIvp0s7X6FLgfzfCjntA4SFnbdrfmw2+DEb0O5AsehKd0zEZnTU5twsHTWutR3CD5MwMErBHT3GPCJOixxctMxDOE5COCuOL4/XGKBrHHNcQDnRRMA1kmzDNXTtxF3NR+g3WDkS2L3Fv3Chv2nhQrJPmP5t25bK2bgAEzgK5nS8un3Tpu3sDMpF17P4p9DDAob4JTpYjM/gqiWVS43SMklXLa5Wcti3bZqvUYCX84CXBjQYNFQ4gFaI+EoSjq6UjI5jk1oV8C827lUk5lV45gAKlZWJd7lN3QxUpHLqBJ/rkI7TD84Vibu69GUh4KWge9xhRkkgZDd62CRLWJSNDEkzF9RBJw9bbSchWLnLo0iUGCVFySMMBaTAMJPMkacbrjP4yFxpKZkvzpcXGe4gt4q3S3cbNpLV0hr5QcMzJDpcCJeGG/OE8dJE4zRhjnGuUC54pQVCozBfWmy8XbhDutv4S+EB6UGjaw5HGieaIJnhzMAb8KbOD4QiWkQnMcZ0PIEf7KSdW/CbdCCTOx0n2cSFIPX+aJK7XyykDK7Xw49FbQyJ22w5ajpk3d1nc8i76CjpZ0FWm9uljpFHpAZ9GvNnJzUtoH87Dd4MbKH4ivIrQBWSuRZkD2FaEJGdyOJYUr8Up5ZOkJ6p2DZQicP0DLYcbt41EVTkMbqv9mDltXtmtW5t8y2+0d+4ePH+itl4bPs5nDu7cluHk35NP1ETccTQ7PVbibx1zfqNW1ev2QryeAP0JAffAnrifApth/0dCu3SEybJN5gC4lvoEk0v5BTQCxnd4k4hcaIkCnGwUWQ3JMiQVcfBgGSBoBckWYKtkiQig+PYnpUINt9zDkbwDDcrJxP2MwaH9IXBYdRP6YsZSdidhgSHoAqtgghui0TgSBIpRkgJRtU4Ho3HE8gEMV+aKF+Dp5OVRidEplAur0QF34LvwXfjWzrfptnS8XO7xKL2AV2xm7RB/HFCrhnutJlkAyIHzPfbDpl2GxTZioyOEBYvQ1nSZDx/4MoZB7mDANl0gAKyQIMvDNsRpC1jTsZdq5lPyt+9JOSK/iQj3PXE/3R2iOVPN3iJxNadB3GvAtZNQe+73VaLYDMPjU+Il2SD0SSJytCEhPhkxRyfILp4/hv2uutY5EanuDEZQmH/eMWcEGNAU2JKbWGGkqTJ/ZneHGs7yRQlJyeYEf+NZcQhETovbV9AUqffZiTtMprBq7uvNZlMislstpitJrvUJ9oSbY22RdrTjOmmdCXdnG5Jt6aqOcYRphHKCPNwy3DrJNNEZaJ5omWCdYFlgXWvca9pr7LXvNey15psk20Gm9FmsilW8zDr6NTrUrXUIJiIJ2AxnIWQbm0d0i8DeJc9ZChLGiP8b11XXTnJMxqH7qdnabvviyXXfxyonVdQP/rLA2c6Kt+F/PyrzMzB2QPSzaY+mx7bvadPH+wYMmR4TmaG1Ri/5X92tcQzvn4KvkPkca6/20V2isJOaYUB7TQZI+VogiIlbIbdWNtBTXuzeIgDFZb4ns6Z+BUuow/jWbgBl51rwwp5eQKWJ5zLpt9wXbkTZHZa+gosutA9ALlaQk1rlCesLbK6JuGJ2JbQ1j4b5LWp4aFR4O2jwvs5wklCWIJqigezPgkLHmvjiYkmn5MduoggRcXx+ELGDMDZg4MuXk8sXGEy2fvAQ7SF7vV/ekPd8bnrHn7k4fVb7v3FXTfP2X9t00d1GPaBd5HklBdWf/hpcjJOHTpsXmV17dlZc6Zde0UqjlbV5w/c8kgwDoof8ziY6Q4TD8j7mfs2HlCwZIJgGAyEBw9qWQYEwicd1hKIfeSCyCfaO5uEuZ3rhK3n3mMOnP4Fzh1sZ0u68g0jWJaKStzJIegZ+375megVpmciZWQgIfEWuykyRoQV4y3hLochPIokahEYUpAIxiqNWxoO4ONNKMmRlJFUkgQRCetscoYGGxoXU8E5a7wKmXXttbOO/zHQHGj+ozBh8R30ffpW53JhDOzrIqrJfSVFk6+mBzv9FZUeD10oRPV9ccUfjknH9x2pX8fj9im4FMF+j+VgsW6bsB1ysO0QggQRhfbKwYIcOcUyPnaK5XQJ3QbOkPN6C/D6BOhMJLrbnYqYP4zA4ZFx4BCTpUhkW2U3t4RsENHjQqRLQjZjuAvH2EiU4/1JrVbmcgh3OR08KXPmdOksy8l7mrXmHfsJEVeEXxFBCLJFSJERERGRSSgpIikyG2VHZEeOQROlcRHjIu3MLBnKuHsXF9Qwg1Ak3HvuJSGxYNyK5plv3fQzehO24NSbD+EYegrH4I/H3JxXu2xyIZ4wYGDbmze9+QTnVQXkOBlAI6sd9HGHmlrspMW1wb42EoVbIuTwkLALagfYwVZ1OlikwsFyAVzJztrFi+fNW7xoHuRTB+i79B16ALtxCu6H3UIbjjx1in5GT332GY6kK2g9vg/7cQDfR+sZn38FOAigb3FolDtJNMStjm4xONY4V4e1GHZZhcfRCuvaeJKEcES4koAc8Y73wSIPOk7rOP2JmSI9Cd48VHfjKnKFoV42yRj1Dnmuc37ajExQt0z6v/Tdpd8uuuk9zz2bN98zZV8dmMCpTy1W+uWZr+npQVk4Y9y4O5vn3zFgIOPRPJYHSqdBD/pCpEkwRLUoaA1eLbYAPi2ODeFrk2OTDdGhESgp2to3mTn0jo6TGnYHg45imIbLsGAKoDMuqR/ukQ4enr29tOWAM2/9zFP0U5yDDbgvdtO76N7aA3ipt7raC2ciDhsw4Pl9WVnY/O5fcRKdT9fSX9AZCcLpW2752c9//rNbbtH2IYDztZCHmbXcVYbExY42u9baD8U8HHk0iowJcUdaTNZoB8tds7TsnaUtbB/Wlbsm90xVWXxkOMPWKcUFnCaI5ar+RYsWTdzTfAQr9JsjzXsmssD5KctSH9248VHheMUc+hSF1Io+Nadiixym2VUKOJkV8BCKrnbHOiRsMW6W8Ub0sE3erQihBmQwSVZrvt0cpplSMBs18z1uW/ce92RWB6hkVgjf5ErLDMuMwhzsAnTjsGbYsJllIYqs+E3hSJxFf0fX79r1+lty2OfD8orOo45NpByjoqceZzhVA79mgx2wGlG0xWFC4cQKkWAncew0bSBro0MHWpA8oHfd6qDjZc3TZe7JiLkuRs/wgtWqCB4+BVdYCJO7NHven5bQu2kh3oObl/xp3vVH/b9ra/ud/+j1pcOuxJuxF7LSzVcOo68V5NGzn31Kz+YV9PL3Eopwm7VUPZwgIgMimsh0J8a2MtyVnysCJ44hJUOSAj7QjBe6xylxZmQ2xRlNiN0USJRkY5zBIItxLJGLE4jMbiKBeZDxYZRskgkSRXxCMfAWlgzYbAnuDex62WFSa1i3XA5CTh+hJfVZEZfMAS+VE76LiN3kIAkmlWSYBpORprGk0FRKZpsqSJ3JT24yLSfLyArTStMDaBVZRR6QN5g2mjaRx02thB3Pm9hxgBwgR0xHTEfJUXLCdML0EfmIfGn60vR39BX5u3zelEUEi2gxEiVUiBVjjaFKgrWvMEAcYOyrDBFGiCOMQ5RMa54wSZxkzFN81tvQMmGleKe80rhMeQCtFtaL6+T1xjXKI3Kr8Lz4vLFVOSAcEY9AzH0bHRVOiH+QTxiPKp+ij4Qvxc/kL40fKd+ib+Th4Kkhf43huw4zJLK/pXV40anP8CK4b6e3dnxLbxVGCX3oHlzYeaLzBVxBf8Xtlk6TroXcku05R7jjuvech2xr8YdkdxzsN91859nDch0nT1647Uzuyml1mw3tsb8QQpiZ9jDbrWDGfjDnLZ17ZGVrD6Mlw5gd812npouvgS6a0AC3syv3kDBPPBQt8eBbRZ52mEvMjeZeaUdX0sE221rKAVttjCYgZIgDXbXgn7knynEGo0GCYGs0GpQhZgWirmkIhFzzEIEIyhCTQoggxIFIYTjsRyzJCmwyQUlPmI0Ws2Iyar/imA3IGtRXM1NVC1dVxFT19aCe/hOK+ieXoirZQraUqYxX3HBcp9QpS5VW2M60SnCAThyQ3lCOKh8JH0lfKhHhQhgJE0Mkh+wAMCGmMCXc3A+D2kmp8hXGAaa+5mRLhg2COwYVlIbLww3DjFdaRtvGCwVknDhBGm+cYJlBponTjLNMZeYZluts1UK5WCGVy+WGcmOVUm5uFhpFv9QoNxoajQGl0Xw7vkP+ufFO023muy0rbfcbH7Sssm0THiXbxEel/zE+atpm3mF5Ej8jP2l8xvIbfJAcEl+VjwvvkLfFd6VTxj+b/mT+i2UW33bFcLXlWjsBz973HB4A52wI6Auf20cXiuUdHUTsFIWOc5uI0EH5bzDH5WrwnXYUgyrc0dbwncix07ABrbXF2hRsDY0aqAwLHSgOiA3+GMKyIcdBnlBAbphmtKC4KIsjLgVlxE2zTLFWW8r5HqXRajVYZphnWGeETY+cZ6613mgxwl5e6qoBO8MEA2DKnCxodkg2qMjKeLqSVuN1eC6+Hq9++xAeSO+ln7S+uH/PEy++GIPX4jro30Br6L0d9P7ZtFUWaUfbV+ex+HkbFkEX74M4MBBoSUGPuK9AyWJYpFPby+GXRNdLkTud4s7kDd37uJgo2MZFJfV3vM92cQd77+JOOU51JcOZ7rLGVJwTlxOfk5CjToyfmDBRna7MiZsdf23CterMxHmxvjhfvC+hRvWpDYkBc8ASsC5OWKwuTlxjfsDyYPz6hA3q+sRt5m2WbdYdcTvidyTsUHck9p+De23T9N1I3xRnuNhzm9Y3MUsUX1v0l5q7fj6jeeu3v6fv0Td/Qf+4ciU2L775tll3rP7oCFaxbREWpW304LArC0tGjo1MzHp939//OjQb5xdOLisaVxifmPn7XSe+StZqYxBfBoMvEJAVjXWrONFKrCiREGsyImbDTgmD28YWBUXLRtESZnN0HBt5kNWjWcw6BrYXopueqJsYeEmS6BwMIZu5CuFrOhNvc+OW48fp/Z3zxLWdK8nOjlL6Z/oVduCJIKdRCBnvg/UtuP4CnzFU8xlDmc8YynzG0Mv6jBcu6TNMZcxvzPppHMfrRHEJDiFMckgOJRmciKoMF0YLw6XR0mAlEw43P64VrpU8ytPCE0orHNGSoEgmo8kkmWVLuBBJIsQoyWUMM0Wboy0pQn+SIvaXko1XgAsZKgwlWWKWlClnGjKNWaYhQP9om+ZE8k0TzWzDMFOYSaaKU6VSudRQapxpmmqeY/EhH/YJDaRGrDF4jTWm65UGc63FZ1lAFhhvNM0332i5w3Cr8U7LU8Je8qT4tPSEcb9lUrAqwwszcBmFb8ACRpDLI7g30E00j/6VnqF5kIa8JI5iZ/sA0XfuXq2euhRsqw/k0WYtjw5FLeFyS6xljXW1oyVpQ+zaZIspOookh0ZHRSTwPLrjpOP0QW5NbMt9+i224e4RxnTNN/Aox1L+YOolnPLCH6TLeP5120taDjjGrJ91CkfR39CzEHZewM04f+6Lwse36H/CYdo2EHLqQYPomXe+oifwnbgWN+FHVP03XsT3wrHodndWTLQQGxUXHgHbwIiI8OSocCUU7TTJOy0rIpTw0EjiiI2SkWiFiBjhMBnCzSROC4vg9SJy9ASJbQJzQnJ6qJCkV3YiY1llJyEmMiYqOjomJjp2qGtoeL4rP3yaa1p4SbzX5Q0vj7d3baCjhER9x2yIxxGhiQTYIZxYWFu7cAtdKhTC5it05ariJe43aPWTw264loyeObd6Ol1Ov+mEKP6bt+7fPzBk6XI6HfsbS7l8gvU/A7So243iZMkQB6mhEmdUIFE0sbYAaSKG0xhHRKLEmRRRJMmKiHYaxRWyALZkkERQCUgbzY5juxIg/muFwZEnWQ1FI1m3Fu2/Lpvhj8xklkUqGco0pVpZipbipcalpoByl7JReR6OI3CcUBwhxlhTggUMwKRaCsRxLFqappMZ4jTpGrmG1IrV0ly53BJAi/BNYrO0yBgw3SneJt0G0XGduEZabVxvgihoeg29jF8WXjO8aDxsege9hd8S3jEcN75ryuCbbJKI+UHEcZ3brqNLhFT8mpBKl3Rux+texw76lXS8fYCQLJSiXr9PmNBid5xhKPuSZiik2ckGVi41SjI2CINEwyAtT+JFAM2V5PTwgyKQv8tuwGiOe4giI3OUfCUejyfK0/AMucQ8F9fI5ea9+EnZFiVEG64SBhsKhGLBbZgqzDRUC7UGM69z898bMNsQ7BQScD0t7fyYgqPsQCICW0QdqAtfA/t2wYJ+5x5MhoL/FABpI7sRwaSY8FBFMSUrDH0jc5TgjljFV5EHiQpQYdWoCDpElvtfuu67y06YTlebBLvRbkoQXIYEY4LJpQwAJzgB0C80FCrXCDMMM5QawWfwKauFVcZVpkeFVgO4QRHDnsQWjqOIw3YFTibDcTYpxm4y3jjNOMNUYqvBc4nXOM9UbrvVeJfpAWNk0EGxCkkfzoS/4DI8Df+Z3k+3n6HbOSc+JgnAibyO90jyuX1I3ytFQf4pozcvrHuTXnXvE73q3hu/X917MfuKzMFr35mCW5gmVAvLhFXCJqFVPyB1FI7C8RE/voIjSkICthJFdKFQHEuixX6oLx5AUsWhaAjOITlipnEcGocLSIFYbrxRhtSP3C7dIa9Ba/A6sk5cLa2XtxNI9kjf7jp6AmwwI3A4nkvH0wWQxLUT+dwmTRei6DgpBOi346HusfY4ZIfIabESG6t0XcgOO4wCdtiTbYrgkJCy0fguQbsddpvZZGS8MYnIEUy8e+wRefzkrHKchC2Lk/3Qe9kYGpFjMHLWbe1mnVsoEbxCQLgNmHc/Z9+eHuw7prMvUsQmIkkgJoNkDMcuySW7DH2lvnJfA8u1ryRD5aGGHFuOPR/l44lkopgv5ctzBa98mwD+Qb7DeoftAWGNtEZeZ11n2y7sIDvER22P2v8X7yNPi62mVuV58zPWZ2yvCK9ZX7O9an9LOCXkdLHYhrXS72gcBbweCDGxmqaOf+7BI42zpkTAXrzTKJw9N/TZ1Z8Pn5Sg5VCw12O/M5m1vZ5eo4k86joUtTvmQ/vaOF6hcZMxIT1+YQzu9XqUaXrGxNAevzSy35gShb1NCxc2wd5uYdfPjNpvSmvJguAvip0Dun5oHD+7ctu332jxuvr8JzyvZ7XBLHeovDME7bRsYN8VDbQPIwNdAy6oDbrNKCoi1BGVETU6SmJoacUPnpf3+LiIVLe++GIrpONP4Bq8FlLxtXQdnYvXie9AKv457dBycRxBq+hquoZW4Q14Hkvag35LGAV+i6C0p9ALAvvtV+zxUURQ1bQfuPCTDsktlUiEb0L3sV96mdfmcCAXeQngONFgd4TTbBREJB2wrTWhFSHGcCWHwQ3poo5pLDi4J92hjaEbQ7U9rcZwZ6JOFgBfeOddC2GJF+le+ix9ERzN8mc2bnyGLO1YTl+ih/BQPAp4+g5Okd4j7+m1aSt6RHhSfkSETbSIjA7IkbP4x2odrKzj4sc7ktBO2Une+/z9LzgP6ukH/Dc9CUW5LeRRtF0mIvthT2ZO+XUAwKc7SZ/QN3DN349X4VvoEXo3bmYyvRtcWaq0H3ZqCWiSexDI6ZexEYZQu/mX8S4TQSud1oT4uNiY6MiI8NAQJ9i11QJBXfsyMloOUx3H9Cz4ZNaxkSwV1q6ZmCSGDiaALz/7hPIzO5GfLJiSleXY6PnAg130yXwcS1vLPyinZ8tPlNM/4wnj6ClcWo5L6Nlx2CjtZ18k0KXH6em36XK8lJ1v45DjeHnnDsq/n7oTIfE0/50y3x0hRUGOL0ZBhp8sPY5WEECVYPDP72t4nmnrmWZBPDLweGQ2kGipH8km44gE0nQxD3mn6O3cS+8UUjoHScffOSeKe0FKS0BPQrgN9EEZaLy7f6QlpQXJLfGodWBLyIb4tZmRLpOF9I22XxHt6meKjkkh0fZ+iX0zHR0n25jNOk6H5PT4tIkVg3tnscnaBi2Yx7ENnNo3e8jQ0OAASHGFV+sCgbrrm5ro4jvuwtHYie04+u471j4Iu/IPIaV9+8GvK2fPrKiYObtS2DC/oaG5ucHXvDR1x9LnfvPy/qU7Uq94btWHn3zy4arn8NQZ5eUzZlxXDrpwfh8dx78hMMPOfZQ7yiwgw0bJ9gHaLb1redghGWUrtlrAnfOfTA7yfS2vEJ9mP2G4TSXOcmejc5lT+8ggTNZ/+NK/Y/nD4Seuqi7Uv2XZ8/EXn8++XUbsgxaM0PkxQhu34dCnBLRCFBAmGRr8M69n4sGQxdo+7PzrB9Lxb+tRrz8srhb2gd6zvec6eIzX7uRtVC2EAElmIyGyKAjipyj9/O/R384rfcv5x50l1flVSEXq+fNyGA3D6w31+JNyhM8jo54Psc/ebzL9n91/vM4+8m8oQet+dVVofPD+96aOnfbDJi+MNeoz+NVQTyEeOhL/3vRtlv2w3t/9lyseBtxeBRxLkU/eivZJS9F0cT+aLu1Cm4zT0A6pnrdbyJsoRqpG04X9qEX6AMZBn7wL7nvRbN7XjBSpFO7wTBT0hjwIKeRr1CK+hOZJ96JP4bxTWoD2yVFoHxmMTsHzFjgr4PwVnPNgXgtZhFKkE6hagjFSKkpgfWyOoQpNkAFP6SV0H4ydbXwTjYL7UjkV4ME6DA/DNzBnGEpgtMA9iuHB5gjtMGYpnHvQO4BXPdzv5rjci5YI+8/vE9p0buWSIjQA3QgZp4AcyM24KH0hJMJdhLfR+Kou3q3FWV38NeNP9LaARPyt3iYIcgK9DQmHMEVvS8gi3Ky3ZWQXHtPbRuQUTuhtM/saXm9bQx7qf7vetqEhI1bqbQcyj3hfbzuROOJrWBGLJkAok6/O2hiF49f0toCM+Eu9TZCKqd4WkSoM0tsSihSq9LaM4oW79bYRJQnP6m0zGi78VW9bk4eTSXrbhmpGJOttBwofcVBvO5FxxGdoLPKhRrQQNaFaNBfVoABoen9UiVLhnoUy4RgMrQoYoaIxMCaA/HA2IS/yoHqUBr0FqAHGp0MrF9XBoaLSLlh+/uSFuxfmzIdrFYxUvseqQ7tWLYOV5sNa82BOA4xmeHhgzj+3Yh605sG8aagZRlTCWA+H5uUzPJwiFaA0wLURxlQA3FoYp8J8H6zu4e9glzvW17iwqXZuTUDtX5mqZmVmDlYrFqpjagP+QJPXU5+mFjRUpqu5dXVqKRvlV0u9fm/TfG9VunLR1KFsaplnfv08X8NcdYyn5jIT87zzPNOa1coaT8Ncr1/1NHnV2ga1sbmirrZSrfLVe2obALPeJE7hBPqhW5s8xdMAD2OAmDogCY3x1VVdboraPazHZPUHT5nGZeEHDvo4f7NAIoPhQNO8Tf5aX4OalT54cG/IQbgDL4TLwA68FCbVHLimAAFdPYO4VPsagJ8BEA/iShIAEQ+HkJwBcDUY8wFGOsz1wb0JxO7l8Jq4gqQDXC/MQTWBQOPwjIwqADq/Od3va26q9Fb7muZ60xu88HpcDwyCChVU6otNh71jSurliu4FGn1oAYxlav3TKCuDNB7eLIQxNXxmLbxr5HQFuGEwrjXxGcyUGNT5F3DyQjq6jbG5lzFejhoFjkvRrqmEB1o9uXaxW1BAA374oXwvV/PTO7hLy7ub5lp4o/BWgPcwLaznvL4e+nwggX+EC6OshMOr59C6jauW41TD33l1uubyVRp0qafpctekpa2m6Zim72kcLx+XfgOf36gbsLaCD6AGdB2r1bXAw2FonFZ0mAGOxYX6VMnHMT3UoAchsNEa7poue7n9a7qX1ENLkrjk2NwqfvdzvCphjkenT+FWUAkaWs+hBPibIH+qoVWnW1L/Lhy7V2A+jeEfAP3VtJ+t2M0T1tPIraYKVqjks4PYVHEKAlzXKuBtgL/V1lC+Y4U03ZorAbNmDkXjyQKuAzXcKwV0ztTzvp4UBWlo6qWVGrbNnIdpPaTD2vVcnpqslR4exA+z0y5DR1oXnRncg6gcsmYPGuxanau9pf/dVAc5p2Hb2KXRAY5Xt9Z1U7SA86P+e60QtIZq7tUbdAq9PVas4le2Rhq/M07MgxGVHJ42Jii/ah6JNM8WlFAlX7uKY1yrYzqcW2eZjp0HIPq4Z+iWQU9f1M2Biz1BA4wP6Nbg7zU2aCvdHOvpA3rOUznNHo65wn1zb13TuKHFEs93yNPHo6Cqy76e37v9x/eRRYBHIhZZPTpF6b049V1zGU8W6rFFW53xvJrjWKVrUh3X06auHg1TxtOqHjLvqXXBCOrhEbGW+4w6/qR0UVTFMWXyaujBjbm94qq2UtCHerj2aLobXONC/vj/IU1BLBWdgm4N83AZfX8Meq9zIT8uhVuaLu86Pq/2Mt5c6ZJOE/ezHu5XuuEGe/xdGhm0lwujh1f3c15ORXClBZyqKj4/6RLxMKmL7gtnKPAuGG2TemiZZjOFF8SXCm7vvh64Nut2ENST+fC29hIc88KWNKDHGDa6EQ4tenm4R/V2zegpdw3nYI9ySUup4R5e5Xe/jqOXa9Ll9CTo6y7lu6t4JGjgcu/Jr0txVenBuZ4y/KG26tfzd1WnJGhtQUtimUNdV+7RpM/oDbGRa/T1cJ2rS0yLh0yrlC6v+q/0VJenqkK3kYAeD6u7ODUB5fN1ilERPLF1iuGpDF0DeWQpf1cAfSrkcaXwZho85UFvHpdLLn/D3idxa7wG2gxiMZrKYWkwSuHKYM+AHgZb5c/saRKMLwJYbG4+ms7XyAdoUwCzYmgz2JOhtxDu+fo4NmMs9EyFZ9Yej1gWqq1XBLPKuO2weQwXDdMy6O9etTdWBXzFIGaT4akU4E/Q3+YC7AIOj+GfxvMj1i7S8dQ4V8qhMx4xyAzmWMCokD+x3qlwL4FxUzg/cznNGrZFnIZx8F6jJZ9joElCw2gs3EtgbTZiPOBVxrnAVirTR6ZxOTJ68vh8tuokPkrDrFiXMmt3Q0nXeanhwfg/rWvlKZz+QjhUTn8Z9JRx2eQC/CDcoO6M5xAY3grnxlROXy7nQzFfYQwfx7jI+FnYpXGlPaQylvOLyY1hnsdXyuUcmXJJSoLQekrnUtqhdK0wntOXzzlVyEdPAT7mw/iCrh5NHws4rWN1XmswNb3XdKKwB3fHchqZZK+GVfN1ncrlvOtNBZPTNRz/bio0CeTq17E9eNYt/SJdukF8yvjKZZfgyjXcFvP5qFwu6yldNjKO2+9kHfOpXRrW7QOm6vpZ3IVZb/4G7Sg47vv4Dg1WcO3eEszj+lSoYzilixvaCOU74Gq+Kx/iWiXf5wS6/HbvyN0za+zORnvmnWk9fG3PTEDzwuP52PoLxnX3arslLWZ173V65m6X2mEHd8daLh/MeruzD813a3uinllvFc/PtRzQ35WV+Hge6OvKTBbwt90xvVGvnfh67fPYyh4e+9O61grGom5YWl7p4dkCW81/CW5ePkIpF+0MG3m811ZZwNsBPTNh9DXrY1n/TRfshoP1n4tloF5SBkFaLpU59OR/E5d3o76XquUcZvlkug63CQX3Zd08YRzQ6m71F0i9W/sYtOHowqoC48HcHphXcV4rSKvhsTUV7q+CNa7/fNXppy5w/zfVg5Re9aALM69/XT1IuWQ9SP0314OU71UP6p3JV/bAqbvWERz5/Sqol6qwKP+xupJ6UV1J+X91pR51pe4Kw/8/60pKrwj7n6srKZfYrf031JWUS9aVuin699SVlO+oF/x76koK+mfrSt2/Ov2UdaVue+tdV7pc9L18dUnbn2uZxH9bdUlBvatLl65u/HuqS8p3cFftwcH/7iqTwnXs4mzm319lUv6Lq0zKBVWm7r3uv7PKpPzDKpP6b6syKf9ElUn9l1WZFM6DaQB1IsdW43YuvP/31Y6US8r8P1U7Ui6qHan/sdqRctnaUXcN6F9fO1L+idrRd8H919aOgp718hHl4oqP8gMqPj2rND9lxUf5URWfi/dsP6zio/So+HxX3eGnqNAELoLvRt2VBoWvw57SERrHP9Bi37WxL+O6PqZT+/u9XrXCW+dbkJqufo+v4NLV8XULG2v8am19o68p4K1Sq5t89Wpuk3e+/hFYcA3+1V2z9tVdz2UUpXv1ad4mj6qh1vXpnjLwO/+Uiz/y+97fB6oXrFzrVzxqoMlT5a33NF2v+qovhKIoJd6m+lo//4au1q/WeJu8sNbcJk8DkJ4GtANZMA041jTXm6YGfKqnYaHa6G3ywwRfRQA4Vgss8KiVgLQCIwM13iCfKit99Y0wnA0I1AB04LK3wQ/cS+IsSUoFYFWqx+/3VdZ6YD2lylfZXO9tCHgCDJ/q2joQUn8GkU9Qp/iqAwuA/UmpHJMmb2OTr6q50svBVNUCYbUVzQEvw0HpNSENxFxZ11zFMFlQG6jxNQcAmfpafSG2QpPGSgDb7IfxjJw0td7LqFa4gvhr0nqskcbWzPA1qX4vyAFG1wKqOvkXLM2QA7CNjNEBRWMdX2hBDSjWRROYGKqbmxpgQS+fWOVT/b401d9cMc9bGWA9jL5qXx0oGyOo0tdQVcvo8A9XlDIA56nwzfdyCjQt4gh0KUGDLwBi8Gu9TCqN3RqgvVP9NZ66OqXCq3MN0AAr8fSi09cAetGk1vuavJckWw0sbPRWe2ChdA2p3m/rPQvBWmB6VW11LVM0T10AVA8aANRTVcUp11jHDNTTBHg113maFLZQlddfO7eBozFXs1WYxDTUUwlA/GxGEB//hSsxkAoswBnmqbs0AH1OEI9uaIBeQ91CtbaHmiuMnCYv+9+Q52NZw88YyeQSNA8v6Jy3iU9a4Guq8qtJXXaYxNYOvlCSmNkmcZaBZAp1e6nwgiUxqM0gA8aT+b7aLsS8NwbAYlRPYyOYl6eizsteaLQDZNZQuoVS4wmoNR4/QPQ29OIJ07pu7a5SmxuqdIS7UVU4chqF3yVVv6+OWTUXGxOSR61j3gNsJTiw0VN5vWcuEAZ22OBTmKr+c0rVaylwWICit66aITUhXx1XXFSmTikeV3ZNbmm+WjBFLSktnlaQl5+nJuVOgeekNPWagrIJxVPLVBhRmltUNkMtHqfmFs1QJxUU5aWp+dNLSvOnTFGKS9WCySWFBfnQV1A0tnBqXkHReHUMzCsqLlMLCyYXlAHQsmI+VQdVkD+FAZucXzp2AjzmjikoLCibkaaMKygrApiAXKmaq5bklpYVjJ1amFuqlkwtLSmekg8w8gBsUUHRuFJYJX9yPhABgMYWl8woLRg/oSwNJpVBZ5pSVpqblz85t3RSmgrAioHkUpUPSQcsAYaaP41NnjIht7BQHVNQNqWsND93MhvLuDO+qHhyvjKueGpRXm5ZQXGROiYfSMkdU5iv4QakjC3MLZicpublTs4dz8gJLsKGaeR0s0NhE8bnF+WX5hamqVNK8scWsAbwsaA0f2wZHwm8B04UcnTHFhdNyb96KnTAuOASaco1E/L5EkBALvw3lmPGyS8CchmcsuLSsi5UrimYkp+m5pYWTGESGVdaDOgyeRaP4xowFfjJhFek48tkxPou1g4YxWbrBObl5xYCwCkMDehQeo0F7cq/sdLbGGC6rRu35hq5G9V8ZxrXWs0JgAqPbwDD1fp4E8ISWBaPOpp36w7YLBynaa6Xuw/QbohEmuutmu8FD+hnrsTXpPiYM1lQ6+eWDiGw3qfFPNXvqYPFYBazIj4KfKWnDqb5u9DsZVBKMBg2NtXClAVNtQFwJqqnGXqbam/Sw3CTHqY4BWo3BWyVbueg4d/k9TdClKqd761bmA5jm1gs45jUNlT7mup10jn7KgPDg6lCQJ3LgVf5AoqvaW66qig84/rRqdP3/fcRP00epGh5kPpD8iClOw9Sf2AepFycB+lOvpJD8gdjxiUS1O6ERfkxuZIazJWU/45cSdHk8C/LlRTNYH9UrqT8hLmS0p0rqT8wV1J65QU/IFdSLpcrqd8/V1J65Eo9zbdXugTxHJzET5UuKXq6pP6odEnphS7fN/7UKZPS4FN/dMqk/KQpk6KnTOoPT5mUC1Mm9YekTMolUyb1n0mZlLLcaZMnFjO0cyf8oOxI6ab8x2RHSjA7Un9MdqT0zI7UH5QdKZfMjtQfkx0xZe1lKF2Jj3LZxEf9JxIf5bsTH/V7JD4KT3x65w7/OKEJBMe7edKgpMMt/cf8m8EMXre7Hs4MXjur4r/qpfPfVxuhr/evhd/9LwwzFtReX5tRC87qxvTGmsYM3WP+oH/4yf8lMv87fzP7/0q7+C/358Iy3A9RRHAycsK1L04EBki4L2qHpz4oHK5Jel8SH8faBKv8fQJ6Fq7xsCLBcfxtLIqCawyKh2s074ni10h+jeDXcH514TBkA6gu/sTaBIfydgi/2rENLYH3dv7E2gRbsQXdA31W3mdFB5CILdiMZkAfe0Mw+/+vE7EZK6gf9LE3BK5u6GM9BJv4TCO/GpCFX9kMedcD6VJuKJY5XRK/inwU4RQJvAfzK3KfX0LOX0UoJR3n0qQOSs6lkXZKvj07Xvp2CTk7nvy9nXxDyd8oOUPJ/3mWfE3JXyn5ipIv48lpSr5oU6QvKGlTSJtb/PwvivR5FvmLQv7cTj67N1z6jJJP28mf2skpeDhFyUlKPqHkj5R8TMlHlJyg5MN28sH7kdIHVeT9SPLepnjpvSry7jvJ0rvt5J1k8oc3kqU/tJO33wqT3g4nbx13SG+FkeMOcuxNs3RMJW+aye9hxO/byRsA/41kcvR+i3S0DznyuzDpSD/yu8Mh0u/CyOEQ8jq8fj2OvBZGDr36rHSIkldfmSO9+ix5dZn4ivv8b5OlV+aQV9zib5PJbyh5uYocXOWQDlLyUix5kZIXKDnw/HDpQDt5/tcx0vPDyf7noqX9WeS5fU7puWiy71m7tM9Jnt1rkZ61k70W8gws9gwlT1PylIs8GUL+l5I9lOymZFcEeSKKtIaTxwHO4+1kJ9x2tpNfw/hfx5AWuLUsIY9RsqMfeZSS7ZQ8Qsk2Sv5HIVspeXiLTXqYki02ssUtbgZGbW4nm2DKpniyEW4b28mvgPhfxZKHKNnw4LPSBkoeXD9HevBZ8uAycf3KZGn9HLLeLa6jZC1ox1pKHkgna2Dimnj3ebIapq5Wyf0Wch903TeJ/BJuv6TkXuDDveFklYOsTCa/oGQFJfdQcjcld1FyJyV33J4s3UHJ7cnkNkpupeTnWeSWNeRnlCynZFkUWaqQmylZQsliSha1k5vayUJKFszfJi2gZP420hyIkZrbSSCG+NtJ0xJyAyWNvjTJl0Ya2kl9O6lrJ9dTMo+SWkpqKi1STRaZS0l1FvFWKZKXkiqFVLnFygpFqrSQCoV4yl2SZw0px06p3EWuU8i1lMyhZDY8z6Zk1swYaRYlM+FpZgyZQcn0dnINJdPg2X1+GiVTKSmLJ1PCSOnVUVJpO7kaXlwdRUqKo6SSdlJc5JSKo0iRk0yOJ4WTwqRCF5k00SlNCiMTC2zSRCcpsJEJ7WT8uDBpvIuMCyP57SRvrE3Ks5OxNjImN1ka005yAWZuMnGPtktuSkZfZZNG28lVNjJqpFUaFU5GWsmIKjKckpwwciUlw0LJ0OxoaWgyyR4SJmVHk+wD4hDFKg0JI0OWiYOzLNLgMDLYLWZZyKDMbdIgSjIBfuY2kmEh6aFkYNpwaWA7SXMlS2nDyYAqckUVSaWkv4ukRDillHjSTyXJ8aRvH2DAgL7xpI+TJCGrlNROEu0k0S2qYSRBIfHxJC42SopLJrH2UCk2isQ+DT7jXjHGSqKjJknRS0gULBo1iURSEuEk4bBaeDtxQZ8rmYRVkVAnCaHECc9OShxVxG5zSPZQYj8g2hzEtky0whtrO7FkETOQZg4n5mWiYiWKWzRRYqTEQIksKZJMiaQQyS2K7YRUEQFmCRS8l1XCToKsBD+Nq25dgQf83/GH/tMI/Av/4tD/B6aoeTkKZW5kc3RyZWFtCmVuZG9iago0NzggMCBvYmoKPDwgL0xlbmd0aCA0ODkgMCBSIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4nJvE+P9P/83/D/j///+hAAA9rAj7CmVuZHN0cmVhbQplbmRvYmoKNDc5IDAgb2JqCjw8CiAgL1R5cGUgL0ZvbnQKICAvU3VidHlwZSAvVHlwZTAKICAvQmFzZUZvbnQgL0VBQUFBQytEZWphVnVTYW5zLUJvbGQKICAvRW5jb2RpbmcgL0lkZW50aXR5LUgKICAvVG9Vbmljb2RlIDQ4MSAwIFIKICAvRGVzY2VuZGFudEZvbnRzIFs0ODAgMCBSXQo+PgoKZW5kb2JqCjQ4MCAwIG9iago8PCAvVHlwZSAvRm9udAovQmFzZUZvbnQgL0VBQUFBQytEZWphVnVTYW5zLUJvbGQgCi9DSURUb0dJRE1hcCAvSWRlbnRpdHkgCi9TdWJ0eXBlIC9DSURGb250VHlwZTIKL0NJRFN5c3RlbUluZm8gPDwgL1JlZ2lzdHJ5IChBZG9iZSkgL09yZGVyaW5nIChVQ1MpIC9TdXBwbGVtZW50IDAgPj4KL0ZvbnREZXNjcmlwdG9yIDQ3NiAwIFIKL0RXIDAKL1cgWyAwIFs2MDAgMzQ4IDQxNSA4MzAgNjg3IDU5MiA3MTEgMTA0MSA2NzggNzExIDQ3OCA2NzQgMzQyIDczMiA3MTEgODM2IDcxNSAzNDIgNjgyIDY2NSA3MTUgMzc5IDc3MyA0OTMgNTk1IDY5NSA2OTUgNjgzIDc2MiAzOTkgNjk1IDY5NSA2OTUgNjk1IDcxNSA0MzUgNzMzIDYzNyA2NDUgNzE1IDY4MyA5MjMgODUwIDcyMCA2OTUgMTEwMyA2OTUgNzcwIDc3MyA4MzYgOTk1IDY1MSAzNDggNjUxIDcxNSA4NTAgMzcyIDgxMiA4MzcgMzc5IDgzNyA2OTUgNjk1IDM0MiAzNjUgXSBdCj4+CmVuZG9iago0ODEgMCBvYmoKPDwgL0xlbmd0aCA0OTAgMCBSIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4nF2U246bMBBA3/MVftw+rMAeA7vSKlKVqlIeelHTfgBgk0VqABHykL8v+ExTqUi5HOwZ5oyxs8Px03HoF5N9n8f2FBfT9UOY43W8zW00TTz3w846E/p2UUrf7aWedtkafLpfl3g5Dt1ohFnhNulMY7If65/rMt/N08cwNvGDCbHb7n+bQ5z74Wyefh1Oj7un2zT9jpc4LCZP9+IQ0m92+FJPX+tLNFnK83wM66R+uT+v4f9m/LxP0bjElhraMcTrVLdxrodz3L3l67U3b5/Xa79l/2+81LCma9/r+TG9W699IrtSnrscclCAJJH3kE9UalwBCVQmqgqoYkyzvEA69gpFqCZOn9AwZqEWeoVCokLrjIy9QB11QjZnjJwWv7KF8Ct0DL+ygdSvgvBz1GnxK0oIB6FOi4PQCYuDx9bi4B2Eg9QQDqJjOAh+Dgchi8NB6ITDoSTOqQOVORw8tTgcPO5O14guOdao0uexRl6z4FfRCYdfga3Dr9An4Cf00+kaaZz6aU78CqoW/Dw5BT9PrwU/z9sj+FVkEfxqqhb8Kvoi6qc58fO8raJ+OhO/gu6Krp8+Dz9HzwQ/h63gULJ+HodVbNt2ur/c39322J2WQiwVVOqvb4K2qNIUBG2beDuMHidEe5vn9XBIZ1E6FbbzoB/i41CbxmmLSp8/P1Y0LgplbmRzdHJlYW0KZW5kb2JqCjQ4MiAwIG9iago4ODAyCmVuZG9iago0ODMgMCBvYmoKMjAKZW5kb2JqCjQ4NCAwIG9iagozNzEKZW5kb2JqCjQ4NSAwIG9iagoxNTkzNAplbmRvYmoKNDg2IDAgb2JqCjI3CmVuZG9iago0ODcgMCBvYmoKNTYxCmVuZG9iago0ODggMCBvYmoKMTQ1NzMKZW5kb2JqCjQ4OSAwIG9iagoyMgplbmRvYmoKNDkwIDAgb2JqCjUxMgplbmRvYmoKMSAwIG9iago8PCAvVHlwZSAvUGFnZXMKL0NvdW50IDIzCi9LaWRzIFs4IDAgUiA1OSAwIFIgMjM0IDAgUiA0MTIgMCBSIDQzIDAgUiAxOCAwIFIgMjggMCBSIDMxIDAgUiAzNCAwIFIgNDAgMCBSIDUwIDAgUiA1MyAwIFIgNTYgMCBSIDIxNiAwIFIgMjE5IDAgUiAyMjIgMCBSIDIyNSAwIFIgMjI4IDAgUiAyMzEgMCBSIDQwMCAwIFIgNDAzIDAgUiA0MDYgMCBSIDQwOSAwIFIgXSA+PgplbmRvYmoKMiAwIG9iago8PAogIC9UeXBlIC9DYXRhbG9nCiAgL1BhZ2VzIDEgMCBSCiAgL0xhbmcgKGVuKQogIC9NZXRhZGF0YSA3IDAgUgogIC9QYWdlTGFiZWxzIDkgMCBSCj4+CgplbmRvYmoKMyAwIG9iago8PAogIC9Gb250IDw8CiAgL0YxOSA0NjcgMCBSCiAgL0YxNSA0NzMgMCBSCiAgL0YxNiA0NzkgMCBSCj4+CgogIC9Qcm9jU2V0IFsvUERGIC9JbWFnZUIgL0ltYWdlQyAvVGV4dF0KICAvWE9iamVjdCA8PAogIC9JbTEgMTAgMCBSCiAgL0ltMiAxMSAwIFIKICAvSW0zIDE5IDAgUgogIC9JbTQgMjAgMCBSCj4+CgogIC9Db2xvclNwYWNlIDw8IC9EZWZhdWx0UkdCIDYgMCBSID4+Cgo+PgoKZW5kb2JqCjkgMCBvYmoKPDwgL051bXMgWzAgPDwgL1AgKDEpID4+CiAxIDw8IC9QIChpaSkgPj4KIDIgPDwgL1AgKGlpaSkgPj4KIDMgPDwgL1AgKGl2KSA+PgogNCA8PCAvUCAodikgPj4KIDUgPDwgL1AgKHZpKSA+PgogNiA8PCAvUCAoMSkgPj4KIDcgPDwgL1AgKDIpID4+CiA4IDw8IC9QICgzKSA+PgogOSA8PCAvUCAoNCkgPj4KIDEwIDw8IC9QICg1KSA+PgogMTEgPDwgL1AgKDYpID4+CiAxMiA8PCAvUCAoNykgPj4KIDEzIDw8IC9QICg4KSA+PgogMTQgPDwgL1AgKDkpID4+CiAxNSA8PCAvUCAoMTApID4+CiAxNiA8PCAvUCAoMTEpID4+CiAxNyA8PCAvUCAoMTIpID4+CiAxOCA8PCAvUCAoMTMpID4+CiAxOSA8PCAvUCAoMTQpID4+CiAyMCA8PCAvUCAoMTUpID4+CiAyMSA8PCAvUCAoMTYpID4+CiAyMiA8PCAvUCAoMTcpID4+Cl0gPj4KCmVuZG9iagp4cmVmCjAgNDkxCjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDI5NTg5OSAwMDAwMCBuIAowMDAwMjk2MTI0IDAwMDAwIG4gCjAwMDAyOTYyMjkgMDAwMDAgbiAKMDAwMDAwMDAxNSAwMDAwMCBuIAowMDAwMDAwMTQ1IDAwMDAwIG4gCjAwMDAwMDI4MjMgMDAwMDAgbiAKMDAwMDAwMjg1NiAwMDAwMCBuIAowMDAwMTA2MTc3IDAwMDAwIG4gCjAwMDAyOTY0NjQgMDAwMDAgbiAKMDAwMDAwMzgwNCAwMDAwMCBuIAowMDAwMDUyMzMxIDAwMDAwIG4gCjAwMDAxMDU1OTMgMDAwMDAgbiAKMDAwMDEwNTYxNCAwMDAwMCBuIAowMDAwMTA1NjM0IDAwMDAwIG4gCjAwMDAxMDU2NTYgMDAwMDAgbiAKMDAwMDEwNTY3OCAwMDAwMCBuIAowMDAwMTA2MzY5IDAwMDAwIG4gCjAwMDAxMjEwMTQgMDAwMDAgbiAKMDAwMDEwNjM4OSAwMDAwMCBuIAowMDAwMTEyNTYwIDAwMDAwIG4gCjAwMDAxMTk3NDAgMDAwMDAgbiAKMDAwMDExOTc2MSAwMDAwMCBuIAowMDAwMTE5NzgyIDAwMDAwIG4gCjAwMDAxMTk4NjcgMDAwMDAgbiAKMDAwMDEyMDk4NyAwMDAwMCBuIAowMDAwMTIwMDA1IDAwMDAwIG4gCjAwMDAxMjEyMjQgMDAwMDAgbiAKMDAwMDEyMjc3NiAwMDAwMCBuIAowMDAwMTIxMjQ0IDAwMDAwIG4gCjAwMDAxMjI5NjkgMDAwMDAgbiAKMDAwMDEyMzg1MyAwMDAwMCBuIAowMDAwMTIyOTkwIDAwMDAwIG4gCjAwMDAxMjQwNDYgMDAwMDAgbiAKMDAwMDEyNTU3MCAwMDAwMCBuIAowMDAwMTI0MDY2IDAwMDAwIG4gCjAwMDAxMjQxNjEgMDAwMDAgbiAKMDAwMDEyNTU0MyAwMDAwMCBuIAowMDAwMTI0Mjk3IDAwMDAwIG4gCjAwMDAxMjU3ODAgMDAwMDAgbiAKMDAwMDEyNzYzMiAwMDAwMCBuIAowMDAwMTI1ODAxIDAwMDAwIG4gCjAwMDAxMjc4MjUgMDAwMDAgbiAKMDAwMDEyOTE5NyAwMDAwMCBuIAowMDAwMTI3ODQ2IDAwMDAwIG4gCjAwMDAxMjc5MjQgMDAwMDAgbiAKMDAwMDEyOTE2MyAwMDAwMCBuIAowMDAwMTI4MDYxIDAwMDAwIG4gCjAwMDAxMjgxOTkgMDAwMDAgbiAKMDAwMDEyOTQwNyAwMDAwMCBuIAowMDAwMTMwNzE4IDAwMDAwIG4gCjAwMDAxMjk0MjcgMDAwMDAgbiAKMDAwMDEzMDkxMSAwMDAwMCBuIAowMDAwMTMyNjg0IDAwMDAwIG4gCjAwMDAxMzA5MzIgMDAwMDAgbiAKMDAwMDEzMjg3NyAwMDAwMCBuIAowMDAwMTM0NjI5IDAwMDAwIG4gCjAwMDAxMzI4OTggMDAwMDAgbiAKMDAwMDEzNDgyMiAwMDAwMCBuIAowMDAwMTgxODE3IDAwMDAwIG4gCjAwMDAxMzQ4NDMgMDAwMDAgbiAKMDAwMDEzNDkyMSAwMDAwMCBuIAowMDAwMTgxMDA3IDAwMDAwIG4gCjAwMDAxMzUwNTcgMDAwMDAgbiAKMDAwMDEzNTE5NyAwMDAwMCBuIAowMDAwMTM1Mjc1IDAwMDAwIG4gCjAwMDAxMzU0MTIgMDAwMDAgbiAKMDAwMDEzNTU1MiAwMDAwMCBuIAowMDAwMTM1NjMwIDAwMDAwIG4gCjAwMDAxMzU3NjggMDAwMDAgbiAKMDAwMDEzNTkwOCAwMDAwMCBuIAowMDAwMTM1OTg2IDAwMDAwIG4gCjAwMDAxMzYxMjQgMDAwMDAgbiAKMDAwMDEzNjI2NCAwMDAwMCBuIAowMDAwMTM2MzQyIDAwMDAwIG4gCjAwMDAxMzY0ODAgMDAwMDAgbiAKMDAwMDEzNjYyMCAwMDAwMCBuIAowMDAwMTM2Njk4IDAwMDAwIG4gCjAwMDAxMzY4MzYgMDAwMDAgbiAKMDAwMDEzNjk3NiAwMDAwMCBuIAowMDAwMTM3MDU0IDAwMDAwIG4gCjAwMDAxMzcxOTIgMDAwMDAgbiAKMDAwMDEzNzMzMiAwMDAwMCBuIAowMDAwMTM3NDEwIDAwMDAwIG4gCjAwMDAxMzc1NDggMDAwMDAgbiAKMDAwMDEzNzY4OCAwMDAwMCBuIAowMDAwMTM3NzY2IDAwMDAwIG4gCjAwMDAxMzc5MDQgMDAwMDAgbiAKMDAwMDEzODA0NCAwMDAwMCBuIAowMDAwMTM4MTIyIDAwMDAwIG4gCjAwMDAxMzgyNjAgMDAwMDAgbiAKMDAwMDEzODQwMCAwMDAwMCBuIAowMDAwMTM4NDc4IDAwMDAwIG4gCjAwMDAxMzg2MTYgMDAwMDAgbiAKMDAwMDEzODc1NiAwMDAwMCBuIAowMDAwMTM4ODM0IDAwMDAwIG4gCjAwMDAxMzg5NzIgMDAwMDAgbiAKMDAwMDEzOTExMiAwMDAwMCBuIAowMDAwMTM5MTkwIDAwMDAwIG4gCjAwMDAxMzkzMjggMDAwMDAgbiAKMDAwMDEzOTQ2OCAwMDAwMCBuIAowMDAwMTM5NTQ3IDAwMDAwIG4gCjAwMDAxMzk2ODcgMDAwMDAgbiAKMDAwMDEzOTgyOSAwMDAwMCBuIAowMDAwMTM5OTA4IDAwMDAwIG4gCjAwMDAxNDAwNDggMDAwMDAgbiAKMDAwMDE0MDE5MCAwMDAwMCBuIAowMDAwMTQwMjY5IDAwMDAwIG4gCjAwMDAxNDA0MDkgMDAwMDAgbiAKMDAwMDE0MDU0OCAwMDAwMCBuIAowMDAwMTQwNjI3IDAwMDAwIG4gCjAwMDAxNDA3NjYgMDAwMDAgbiAKMDAwMDE0MDkwOCAwMDAwMCBuIAowMDAwMTQwOTg3IDAwMDAwIG4gCjAwMDAxNDExMjcgMDAwMDAgbiAKMDAwMDE0MTI2OSAwMDAwMCBuIAowMDAwMTQxMzQ4IDAwMDAwIG4gCjAwMDAxNDE0ODggMDAwMDAgbiAKMDAwMDE0MTYzMCAwMDAwMCBuIAowMDAwMTQxNzA5IDAwMDAwIG4gCjAwMDAxNDE4NDkgMDAwMDAgbiAKMDAwMDE0MTk4OSAwMDAwMCBuIAowMDAwMTQyMDY4IDAwMDAwIG4gCjAwMDAxNDIyMDggMDAwMDAgbiAKMDAwMDE0MjM1MCAwMDAwMCBuIAowMDAwMTQyNDI5IDAwMDAwIG4gCjAwMDAxNDI1NjggMDAwMDAgbiAKMDAwMDE0MjcxMCAwMDAwMCBuIAowMDAwMTQyNzg5IDAwMDAwIG4gCjAwMDAxNDI5MjkgMDAwMDAgbiAKMDAwMDE0MzA3MSAwMDAwMCBuIAowMDAwMTQzMTUwIDAwMDAwIG4gCjAwMDAxNDMyOTAgMDAwMDAgbiAKMDAwMDE0MzQzMiAwMDAwMCBuIAowMDAwMTQzNTExIDAwMDAwIG4gCjAwMDAxNDM2NTAgMDAwMDAgbiAKMDAwMDE0Mzc5MiAwMDAwMCBuIAowMDAwMTQzODcxIDAwMDAwIG4gCjAwMDAxNDQwMTEgMDAwMDAgbiAKMDAwMDE0NDE1MyAwMDAwMCBuIAowMDAwMTQ0MjMyIDAwMDAwIG4gCjAwMDAxNDQzNzIgMDAwMDAgbiAKMDAwMDE0NDUxMiAwMDAwMCBuIAowMDAwMTQ0NTkxIDAwMDAwIG4gCjAwMDAxNDQ3MjkgMDAwMDAgbiAKMDAwMDE0NDg3MSAwMDAwMCBuIAowMDAwMTQ0OTUyIDAwMDAwIG4gCjAwMDAxNDUwOTIgMDAwMDAgbiAKMDAwMDE0NTIzNCAwMDAwMCBuIAowMDAwMTQ1MzE1IDAwMDAwIG4gCjAwMDAxNDU0NTUgMDAwMDAgbiAKMDAwMDE0NTU5NyAwMDAwMCBuIAowMDAwMTQ1Njc4IDAwMDAwIG4gCjAwMDAxNDU4MTggMDAwMDAgbiAKMDAwMDE0NTk2MCAwMDAwMCBuIAowMDAwMTQ2MDQxIDAwMDAwIG4gCjAwMDAxNDYxODEgMDAwMDAgbiAKMDAwMDE0NjMyMyAwMDAwMCBuIAowMDAwMTQ2NDAzIDAwMDAwIG4gCjAwMDAxNDY1NDMgMDAwMDAgbiAKMDAwMDE0NjY4NSAwMDAwMCBuIAowMDAwMTQ2NzY2IDAwMDAwIG4gCjAwMDAxNDY5MDYgMDAwMDAgbiAKMDAwMDE0NzA0OCAwMDAwMCBuIAowMDAwMTQ3MTI5IDAwMDAwIG4gCjAwMDAxNDcyNjkgMDAwMDAgbiAKMDAwMDE0NzQxMSAwMDAwMCBuIAowMDAwMTQ3NDkyIDAwMDAwIG4gCjAwMDAxNDc2MzIgMDAwMDAgbiAKMDAwMDE0Nzc3NCAwMDAwMCBuIAowMDAwMTQ3ODU1IDAwMDAwIG4gCjAwMDAxNDc5OTUgMDAwMDAgbiAKMDAwMDE0ODEzNyAwMDAwMCBuIAowMDAwMTQ4MjE2IDAwMDAwIG4gCjAwMDAxNDgzNTYgMDAwMDAgbiAKMDAwMDE0ODQ5OCAwMDAwMCBuIAowMDAwMTQ4NTc5IDAwMDAwIG4gCjAwMDAxNDg3MTkgMDAwMDAgbiAKMDAwMDE0ODg2MSAwMDAwMCBuIAowMDAwMTQ4OTQxIDAwMDAwIG4gCjAwMDAxNDkwODEgMDAwMDAgbiAKMDAwMDE0OTIyMyAwMDAwMCBuIAowMDAwMTQ5MzA0IDAwMDAwIG4gCjAwMDAxNDk0NDQgMDAwMDAgbiAKMDAwMDE0OTU4NCAwMDAwMCBuIAowMDAwMTQ5NjY1IDAwMDAwIG4gCjAwMDAxNDk4MDQgMDAwMDAgbiAKMDAwMDE0OTk0NiAwMDAwMCBuIAowMDAwMTUwMDI3IDAwMDAwIG4gCjAwMDAxNTAxNjcgMDAwMDAgbiAKMDAwMDE1MDMwOSAwMDAwMCBuIAowMDAwMTUwMzkwIDAwMDAwIG4gCjAwMDAxNTA1MjkgMDAwMDAgbiAKMDAwMDE1MDY3MSAwMDAwMCBuIAowMDAwMTUwNzUxIDAwMDAwIG4gCjAwMDAxNTA4OTEgMDAwMDAgbiAKMDAwMDE1MTAzMyAwMDAwMCBuIAowMDAwMTUxMTE0IDAwMDAwIG4gCjAwMDAxNTEyNTQgMDAwMDAgbiAKMDAwMDE1MTM5NiAwMDAwMCBuIAowMDAwMTUxNDc3IDAwMDAwIG4gCjAwMDAxNTE2MTcgMDAwMDAgbiAKMDAwMDE1MTc1OSAwMDAwMCBuIAowMDAwMTUxODM4IDAwMDAwIG4gCjAwMDAxNTE5NzggMDAwMDAgbiAKMDAwMDE1MjEyMCAwMDAwMCBuIAowMDAwMTUyMjAxIDAwMDAwIG4gCjAwMDAxNTIzNDEgMDAwMDAgbiAKMDAwMDE1MjQ4MyAwMDAwMCBuIAowMDAwMTUyNTY0IDAwMDAwIG4gCjAwMDAxNTI3MDIgMDAwMDAgbiAKMDAwMDE1Mjg0MyAwMDAwMCBuIAowMDAwMTUyOTI0IDAwMDAwIG4gCjAwMDAxNTMwNjIgMDAwMDAgbiAKMDAwMDE1MzIwMiAwMDAwMCBuIAowMDAwMTgyMDI4IDAwMDAwIG4gCjAwMDAxODM4NzggMDAwMDAgbiAKMDAwMDE4MjA1MSAwMDAwMCBuIAowMDAwMTg0MDczIDAwMDAwIG4gCjAwMDAxODU4MzMgMDAwMDAgbiAKMDAwMDE4NDA5NSAwMDAwMCBuIAowMDAwMTg2MDI4IDAwMDAwIG4gCjAwMDAxODc3NjcgMDAwMDAgbiAKMDAwMDE4NjA1MCAwMDAwMCBuIAowMDAwMTg3OTYyIDAwMDAwIG4gCjAwMDAxODk2NDYgMDAwMDAgbiAKMDAwMDE4Nzk4NCAwMDAwMCBuIAowMDAwMTg5ODQxIDAwMDAwIG4gCjAwMDAxOTE1NjkgMDAwMDAgbiAKMDAwMDE4OTg2MyAwMDAwMCBuIAowMDAwMTkxNzY0IDAwMDAwIG4gCjAwMDAxOTM0MjggMDAwMDAgbiAKMDAwMDE5MTc4NiAwMDAwMCBuIAowMDAwMTkzNjIzIDAwMDAwIG4gCjAwMDAyMzEyNjEgMDAwMDAgbiAKMDAwMDE5MzY0NSAwMDAwMCBuIAowMDAwMTkzNzI2IDAwMDAwIG4gCjAwMDAyMzAzNzYgMDAwMDAgbiAKMDAwMDE5Mzg2NiAwMDAwMCBuIAowMDAwMTk0MDA4IDAwMDAwIG4gCjAwMDAxOTQwODggMDAwMDAgbiAKMDAwMDE5NDIyOCAwMDAwMCBuIAowMDAwMTk0MzcwIDAwMDAwIG4gCjAwMDAxOTQ0NTEgMDAwMDAgbiAKMDAwMDE5NDU5MCAwMDAwMCBuIAowMDAwMTk0NzMyIDAwMDAwIG4gCjAwMDAxOTQ4MTMgMDAwMDAgbiAKMDAwMDE5NDk1MyAwMDAwMCBuIAowMDAwMTk1MDk1IDAwMDAwIG4gCjAwMDAxOTUxNzYgMDAwMDAgbiAKMDAwMDE5NTMxNiAwMDAwMCBuIAowMDAwMTk1NDU4IDAwMDAwIG4gCjAwMDAxOTU1MzggMDAwMDAgbiAKMDAwMDE5NTY3OCAwMDAwMCBuIAowMDAwMTk1ODIwIDAwMDAwIG4gCjAwMDAxOTU5MDEgMDAwMDAgbiAKMDAwMDE5NjA0MSAwMDAwMCBuIAowMDAwMTk2MTgzIDAwMDAwIG4gCjAwMDAxOTYyNjUgMDAwMDAgbiAKMDAwMDE5NjQwNSAwMDAwMCBuIAowMDAwMTk2NTQ3IDAwMDAwIG4gCjAwMDAxOTY2MjkgMDAwMDAgbiAKMDAwMDE5Njc2OSAwMDAwMCBuIAowMDAwMTk2OTExIDAwMDAwIG4gCjAwMDAxOTY5OTMgMDAwMDAgbiAKMDAwMDE5NzEzMyAwMDAwMCBuIAowMDAwMTk3Mjc1IDAwMDAwIG4gCjAwMDAxOTczNTcgMDAwMDAgbiAKMDAwMDE5NzQ5NyAwMDAwMCBuIAowMDAwMTk3NjM5IDAwMDAwIG4gCjAwMDAxOTc3MjEgMDAwMDAgbiAKMDAwMDE5Nzg2MSAwMDAwMCBuIAowMDAwMTk4MDAzIDAwMDAwIG4gCjAwMDAxOTgwODUgMDAwMDAgbiAKMDAwMDE5ODIyNSAwMDAwMCBuIAowMDAwMTk4MzY3IDAwMDAwIG4gCjAwMDAxOTg0NDkgMDAwMDAgbiAKMDAwMDE5ODU4OSAwMDAwMCBuIAowMDAwMTk4NzMxIDAwMDAwIG4gCjAwMDAxOTg4MTEgMDAwMDAgbiAKMDAwMDE5ODk1MSAwMDAwMCBuIAowMDAwMTk5MDkzIDAwMDAwIG4gCjAwMDAxOTkxNzQgMDAwMDAgbiAKMDAwMDE5OTMxMyAwMDAwMCBuIAowMDAwMTk5NDU1IDAwMDAwIG4gCjAwMDAxOTk1MzcgMDAwMDAgbiAKMDAwMDE5OTY3NyAwMDAwMCBuIAowMDAwMTk5ODE5IDAwMDAwIG4gCjAwMDAxOTk5MDEgMDAwMDAgbiAKMDAwMDIwMDA0MCAwMDAwMCBuIAowMDAwMjAwMTgyIDAwMDAwIG4gCjAwMDAyMDAyNjQgMDAwMDAgbiAKMDAwMDIwMDQwNCAwMDAwMCBuIAowMDAwMjAwNTQ2IDAwMDAwIG4gCjAwMDAyMDA2MjggMDAwMDAgbiAKMDAwMDIwMDc2OCAwMDAwMCBuIAowMDAwMjAwOTEwIDAwMDAwIG4gCjAwMDAyMDA5OTIgMDAwMDAgbiAKMDAwMDIwMTEzMiAwMDAwMCBuIAowMDAwMjAxMjc0IDAwMDAwIG4gCjAwMDAyMDEzNTYgMDAwMDAgbiAKMDAwMDIwMTQ5NSAwMDAwMCBuIAowMDAwMjAxNjM3IDAwMDAwIG4gCjAwMDAyMDE3MTkgMDAwMDAgbiAKMDAwMDIwMTg1OSAwMDAwMCBuIAowMDAwMjAxOTk4IDAwMDAwIG4gCjAwMDAyMDIwODAgMDAwMDAgbiAKMDAwMDIwMjIyMCAwMDAwMCBuIAowMDAwMjAyMzYyIDAwMDAwIG4gCjAwMDAyMDI0NDIgMDAwMDAgbiAKMDAwMDIwMjU4MiAwMDAwMCBuIAowMDAwMjAyNzIyIDAwMDAwIG4gCjAwMDAyMDI4MDQgMDAwMDAgbiAKMDAwMDIwMjk0NCAwMDAwMCBuIAowMDAwMjAzMDg2IDAwMDAwIG4gCjAwMDAyMDMxNjggMDAwMDAgbiAKMDAwMDIwMzMwOCAwMDAwMCBuIAowMDAwMjAzNDUwIDAwMDAwIG4gCjAwMDAyMDM1MzIgMDAwMDAgbiAKMDAwMDIwMzY3MiAwMDAwMCBuIAowMDAwMjAzODE0IDAwMDAwIG4gCjAwMDAyMDM4OTYgMDAwMDAgbiAKMDAwMDIwNDAzNiAwMDAwMCBuIAowMDAwMjA0MTc4IDAwMDAwIG4gCjAwMDAyMDQyNTkgMDAwMDAgbiAKMDAwMDIwNDM5OSAwMDAwMCBuIAowMDAwMjA0NTQxIDAwMDAwIG4gCjAwMDAyMDQ2MjMgMDAwMDAgbiAKMDAwMDIwNDc2MyAwMDAwMCBuIAowMDAwMjA0OTA1IDAwMDAwIG4gCjAwMDAyMDQ5ODcgMDAwMDAgbiAKMDAwMDIwNTEyNyAwMDAwMCBuIAowMDAwMjA1MjY5IDAwMDAwIG4gCjAwMDAyMDUzNTEgMDAwMDAgbiAKMDAwMDIwNTQ5MCAwMDAwMCBuIAowMDAwMjA1NjMyIDAwMDAwIG4gCjAwMDAyMDU3MTIgMDAwMDAgbiAKMDAwMDIwNTg1MiAwMDAwMCBuIAowMDAwMjA1OTk0IDAwMDAwIG4gCjAwMDAyMDYwNzYgMDAwMDAgbiAKMDAwMDIwNjIxNSAwMDAwMCBuIAowMDAwMjA2MzU3IDAwMDAwIG4gCjAwMDAyMDY0MzkgMDAwMDAgbiAKMDAwMDIwNjU3OSAwMDAwMCBuIAowMDAwMjA2NzIxIDAwMDAwIG4gCjAwMDAyMDY4MDMgMDAwMDAgbiAKMDAwMDIwNjk0MyAwMDAwMCBuIAowMDAwMjA3MDg1IDAwMDAwIG4gCjAwMDAyMDcxNjcgMDAwMDAgbiAKMDAwMDIwNzMwNyAwMDAwMCBuIAowMDAwMjA3NDQ5IDAwMDAwIG4gCjAwMDAyMDc1MzEgMDAwMDAgbiAKMDAwMDIwNzY3MSAwMDAwMCBuIAowMDAwMjA3ODEzIDAwMDAwIG4gCjAwMDAyMDc4OTUgMDAwMDAgbiAKMDAwMDIwODAzNSAwMDAwMCBuIAowMDAwMjA4MTc3IDAwMDAwIG4gCjAwMDAyMDgyNTkgMDAwMDAgbiAKMDAwMDIwODM5OSAwMDAwMCBuIAowMDAwMjA4NTQxIDAwMDAwIG4gCjAwMDAyMDg2MjMgMDAwMDAgbiAKMDAwMDIwODc2MyAwMDAwMCBuIAowMDAwMjA4OTA1IDAwMDAwIG4gCjAwMDAyMDg5ODUgMDAwMDAgbiAKMDAwMDIwOTEyNSAwMDAwMCBuIAowMDAwMjA5MjY3IDAwMDAwIG4gCjAwMDAyMDkzNDggMDAwMDAgbiAKMDAwMDIwOTQ4OCAwMDAwMCBuIAowMDAwMjA5NjI4IDAwMDAwIG4gCjAwMDAyMDk3MTAgMDAwMDAgbiAKMDAwMDIwOTg1MCAwMDAwMCBuIAowMDAwMjA5OTkwIDAwMDAwIG4gCjAwMDAyMTAwNzIgMDAwMDAgbiAKMDAwMDIxMDIxMiAwMDAwMCBuIAowMDAwMjEwMzUyIDAwMDAwIG4gCjAwMDAyMTA0MzQgMDAwMDAgbiAKMDAwMDIxMDU3NCAwMDAwMCBuIAowMDAwMjEwNzE2IDAwMDAwIG4gCjAwMDAyMTA3OTggMDAwMDAgbiAKMDAwMDIxMDkzOCAwMDAwMCBuIAowMDAwMjExMDgwIDAwMDAwIG4gCjAwMDAyMTExNjIgMDAwMDAgbiAKMDAwMDIxMTMwMSAwMDAwMCBuIAowMDAwMjExNDQzIDAwMDAwIG4gCjAwMDAyMTE1MjUgMDAwMDAgbiAKMDAwMDIxMTY2NSAwMDAwMCBuIAowMDAwMjExODA0IDAwMDAwIG4gCjAwMDAyMTE4ODYgMDAwMDAgbiAKMDAwMDIxMjAyNiAwMDAwMCBuIAowMDAwMjEyMTY4IDAwMDAwIG4gCjAwMDAyMTIyNTAgMDAwMDAgbiAKMDAwMDIxMjM4OSAwMDAwMCBuIAowMDAwMjEyNTI3IDAwMDAwIG4gCjAwMDAyMTI2MDcgMDAwMDAgbiAKMDAwMDIxMjc0NSAwMDAwMCBuIAowMDAwMjEyODg1IDAwMDAwIG4gCjAwMDAyMTI5NjcgMDAwMDAgbiAKMDAwMDIxMzEwNSAwMDAwMCBuIAowMDAwMjEzMjQ1IDAwMDAwIG4gCjAwMDAyMzE0NzQgMDAwMDAgbiAKMDAwMDIzMjgzMyAwMDAwMCBuIAowMDAwMjMxNDk3IDAwMDAwIG4gCjAwMDAyMzMwMjggMDAwMDAgbiAKMDAwMDIzNDE1NSAwMDAwMCBuIAowMDAwMjMzMDUwIDAwMDAwIG4gCjAwMDAyMzQzNTAgMDAwMDAgbiAKMDAwMDIzNTg1MCAwMDAwMCBuIAowMDAwMjM0MzcyIDAwMDAwIG4gCjAwMDAyMzYwNDUgMDAwMDAgbiAKMDAwMDIzNjgwNyAwMDAwMCBuIAowMDAwMjM2MDY3IDAwMDAwIG4gCjAwMDAyMzcwMDIgMDAwMDAgbiAKMDAwMDI1MTIyNCAwMDAwMCBuIAowMDAwMjM3MDIzIDAwMDAwIG4gCjAwMDAyMzcxMDUgMDAwMDAgbiAKMDAwMDI1MDk0NyAwMDAwMCBuIAowMDAwMjM3MjQ0IDAwMDAwIG4gCjAwMDAyMzczODYgMDAwMDAgbiAKMDAwMDIzNzQ2OCAwMDAwMCBuIAowMDAwMjM3NjA4IDAwMDAwIG4gCjAwMDAyMzc3NTAgMDAwMDAgbiAKMDAwMDIzNzgzMiAwMDAwMCBuIAowMDAwMjM3OTcyIDAwMDAwIG4gCjAwMDAyMzgxMTQgMDAwMDAgbiAKMDAwMDIzODE5NiAwMDAwMCBuIAowMDAwMjM4MzM2IDAwMDAwIG4gCjAwMDAyMzg0NzggMDAwMDAgbiAKMDAwMDIzODU2MCAwMDAwMCBuIAowMDAwMjM4Njk5IDAwMDAwIG4gCjAwMDAyMzg4NDEgMDAwMDAgbiAKMDAwMDIzODkyMyAwMDAwMCBuIAowMDAwMjM5MDYzIDAwMDAwIG4gCjAwMDAyMzkyMDMgMDAwMDAgbiAKMDAwMDIzOTI4NSAwMDAwMCBuIAowMDAwMjM5NDI1IDAwMDAwIG4gCjAwMDAyMzk1NjcgMDAwMDAgbiAKMDAwMDIzOTY0NyAwMDAwMCBuIAowMDAwMjM5Nzg3IDAwMDAwIG4gCjAwMDAyMzk5MjkgMDAwMDAgbiAKMDAwMDI0MDAwOSAwMDAwMCBuIAowMDAwMjQwMTQ4IDAwMDAwIG4gCjAwMDAyNDAyOTAgMDAwMDAgbiAKMDAwMDI0MDM3MCAwMDAwMCBuIAowMDAwMjQwNTEwIDAwMDAwIG4gCjAwMDAyNDA2NTIgMDAwMDAgbiAKMDAwMDI0MDczMiAwMDAwMCBuIAowMDAwMjQwODcyIDAwMDAwIG4gCjAwMDAyNDEwMTQgMDAwMDAgbiAKMDAwMDI0MTA5NCAwMDAwMCBuIAowMDAwMjQxMjM0IDAwMDAwIG4gCjAwMDAyNDEzNzYgMDAwMDAgbiAKMDAwMDI0MTQ1NiAwMDAwMCBuIAowMDAwMjQxNTk1IDAwMDAwIG4gCjAwMDAyNDE3MzcgMDAwMDAgbiAKMDAwMDI0MTgxNyAwMDAwMCBuIAowMDAwMjQxOTU2IDAwMDAwIG4gCjAwMDAyNDIwOTYgMDAwMDAgbiAKMDAwMDI0MjE3NiAwMDAwMCBuIAowMDAwMjQyMzE2IDAwMDAwIG4gCjAwMDAyNDI0NTUgMDAwMDAgbiAKMDAwMDI0MjUzNSAwMDAwMCBuIAowMDAwMjQyNjc0IDAwMDAwIG4gCjAwMDAyNDI4MTYgMDAwMDAgbiAKMDAwMDI1MTQzNyAwMDAwMCBuIAowMDAwMjUxNDU5IDAwMDAwIG4gCjAwMDAyNTE3MjIgMDAwMDAgbiAKMDAwMDI2MDYyMyAwMDAwMCBuIAowMDAwMjYwNzIxIDAwMDAwIG4gCjAwMDAyNjA4ODYgMDAwMDAgbiAKMDAwMDI2MTI0NSAwMDAwMCBuIAowMDAwMjYxNjk0IDAwMDAwIG4gCjAwMDAyNjE5NTUgMDAwMDAgbiAKMDAwMDI3Nzk4OCAwMDAwMCBuIAowMDAwMjc4MDkzIDAwMDAwIG4gCjAwMDAyNzgyNTQgMDAwMDAgbiAKMDAwMDI3ODc4NSAwMDAwMCBuIAowMDAwMjc5NDI0IDAwMDAwIG4gCjAwMDAyNzk2OTAgMDAwMDAgbiAKMDAwMDI5NDM2MiAwMDAwMCBuIAowMDAwMjk0NDYyIDAwMDAwIG4gCjAwMDAyOTQ2MjggMDAwMDAgbiAKMDAwMDI5NTExOCAwMDAwMCBuIAowMDAwMjk1NzA4IDAwMDAwIG4gCjAwMDAyOTU3MzAgMDAwMDAgbiAKMDAwMDI5NTc1MCAwMDAwMCBuIAowMDAwMjk1NzcxIDAwMDAwIG4gCjAwMDAyOTU3OTQgMDAwMDAgbiAKMDAwMDI5NTgxNCAwMDAwMCBuIAowMDAwMjk1ODM1IDAwMDAwIG4gCjAwMDAyOTU4NTggMDAwMDAgbiAKMDAwMDI5NTg3OCAwMDAwMCBuIAp0cmFpbGVyCjw8CiAgL1Jvb3QgMiAwIFIKICAvSW5mbyA0IDAgUgogIC9JRCBbPEREMjkwNENDM0JBNDc5RkQyMjE2OTE0QjU2NkFFRjk4PiA8REQyOTA0Q0MzQkE0NzlGRDIyMTY5MTRCNTY2QUVGOTg+XQogIC9TaXplIDQ5MQo+PgpzdGFydHhyZWYKMjk2ODg4CiUlRU9GCg==