Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?PHP /* WARNING: This script is protected. Any attempt to reverse engineer, debug or dec..

Decoded Output download

 $codelock_active_key="A7f#x^67*r&l@o()m"; @extract($_REQUEST); error_reporting(E_ALL ^ E_NOTICE); if ($codelock_act >= 1) { } else { @set_time_limit(240); } if ($codelock_enc == "") { $codelock_enc="codelock.php"; } else {} if ($codelock_act >= 1) {         $codelock_testsize=@filesize($codelock_filed/$codelock_enc);         if($codelock_testsize != $codelock_mastersize){         @chmod("$codelock_filed/$codelock_enc", 0777);         if (@copy ("$codelock_rfiled/$codelock_enc","$codelock_filed/$codelock_enc")){}else{             $codelock_fp2 = @fopen("$codelock_filed/$codelock_enc", "wb");             if ($codelock_fp2) { } else { @unlink($codelock_filed/$codelock_enc); $codelock_fp2 = @fopen("$codelock_filed/$codelock_enc", "wb"); }             if ($codelock_fp2) {             @fwrite($codelock_fp2, $codelock_masterdata);             @fclose($codelock_fp2);             }         }         @chmod("$codelock_enc", 0777); } } else {} $codelock_encbrowser=""; $codelock_usezlib=""; $codelock_scname="2x2for2.com"; $codelock_coname="Rohit Seth"; $codelock_extranotes=""; if (!function_exists('gzdeflate') AND $codelock_usezlib=="^") {     echo"<font face='verdana' size='2'><br /><b>Error!</b> You need to install the ZLIB module for PHP to run this script!</font>";     die(); } else {}  if (function_exists('codelock_enc_int')) { } else { function codelock_enc_int($codelock_enc_int_code,$codelock_enc_key) { $codelock_encint_code=base64_encode($codelock_enc_int_code);  if ($codelock_enc_key == "") { } else { $codelock_enc_key=base64_encode($codelock_enc_key); $codelock_k1=substr($codelock_enc_key,0,1); $codelock_k2=substr($codelock_enc_key,1,1); $codelock_k3=substr($codelock_enc_key,2,1); $codelock_encint_code=str_replace("$codelock_k1", "$", $codelock_encint_code); $codelock_encint_code=str_replace("$codelock_k2", "(", $codelock_encint_code); $codelock_encint_code=str_replace("$codelock_k3", ")", $codelock_encint_code); } return $codelock_encint_code; } }  if (function_exists('codelock_dec_int')) { } else { function codelock_dec_int($codelock_decint_code,$codelock_calc_key) {  if ($codelock_calc_key == "") { } else { $codelock_calc_key=base64_encode($codelock_calc_key); $codelock_k1=substr($codelock_calc_key,0,1); $codelock_k2=substr($codelock_calc_key,1,1); $codelock_k3=substr($codelock_calc_key,2,1); $codelock_decint_code=str_replace("$", "$codelock_k1", $codelock_decint_code); $codelock_decint_code=str_replace("(", "$codelock_k2", $codelock_decint_code); $codelock_decint_code=str_replace(")", "$codelock_k3", $codelock_decint_code); } $codelock_decint_code=base64_decode($codelock_decint_code);  return $codelock_decint_code; } } if (function_exists('codelock_dec')) { } else { function codelock_dec($codelock_v){ switch($codelock_v){ case "A":$dv=0;break; case "B":$dv=1;break; case "C":$dv=2;break; case "D":$dv=3;break; case "E":$dv=4;break; case "F":$dv=5;break; case "G":$dv=6;break; case "H":$dv=7;break; case "I":$dv=8;break; case "J":$dv=9;break; case "K":$dv=10;break; case "L":$dv=11;break; case "M":$dv=12;break; case "N":$dv=13;break; case "O":$dv=14;break; case "P":$dv=15;break; case "Q":$dv=16;break; case "R":$dv=17;break; case "S":$dv=18;break; case "T":$dv=19;break; case "U":$dv=20;break; case "V":$dv=21;break; case "W":$dv=22;break; case "X":$dv=23;break; case "Y":$dv=24;break; case "Z":$dv=25;break; case "a":$dv=26;break; case "b":$dv=27;break; case "c":$dv=28;break; case "d":$dv=29;break; case "e":$dv=30;break; case "f":$dv=31;break; case "g":$dv=32;break; case "h":$dv=33;break; case "i":$dv=34;break; case "j":$dv=35;break; case "k":$dv=36;break; case "l":$dv=37;break; case "m":$dv=38;break; case "n":$dv=39;break; case "o":$dv=40;break; case "p":$dv=41;break; case "q":$dv=42;break; case "r":$dv=43;break; case "s":$dv=44;break; case "t":$dv=45;break; case "u":$dv=46;break; case "v":$dv=47;break; case "w":$dv=48;break; case "x":$dv=49;break; case "y":$dv=50;break; case "z":$dv=51;break; case "0":$dv=52;break; case "1":$dv=53;break; case "2":$dv=54;break; case "3":$dv=55;break; case "4":$dv=56;break; case "5":$dv=57;break; case "6":$dv=58;break; case "7":$dv=59;break; case "8":$dv=60;break; case "9":$dv=61;break; case "+":$dv=62;break; case "/":$dv=63;break; case "=":$dv=64;break; default: $dv=0;break; } return $dv; } } if (function_exists('codelock_run')) { } else { function codelock_run($ciph,$key){ $m=0; $abc=""; for($i=0;$i<strlen($ciph);$i++){ $c=substr($ciph,$i,1); $dv=codelock_dec($c); $dv=($dv-$m)/4; $fb=decbin($dv); while(strlen($fb)<4){ $fb="0".$fb; } $abc=$abc.$fb; $m++; if($m>3){ $m=0; } } $kl=0; $pd=""; for($j=0;$j<strlen($abc);$j=$j+8){ $c=substr($abc,$j,8); $k=substr($key,$kl,1); $dc=bindec($c); $dc=$dc - strlen($key); $c=chr($dc); $kl++; if($kl>=strlen($key)){ $kl=0; } $dc=ord($c)^ord($k); $p=chr($dc); $pd=$pd.$p; } return $pd; } }  if (substr($codelock_active_key, 0, 15) != "codelock_active") {     if ($codelock_enc == "") { $codelock_enc="codelock.php"; } else {}         if($codelock_fixpath==""){             $codelock_located_file_temp=$codelock_filed."/".$codelock_enc;         }else{             $codelock_located_file_temp=$codelock_fixpath."/".$codelock_enc;         }     $codelock_fp3 = @fopen("$codelock_located_file_temp", "rb");     $codelock_skip = @fgets($codelock_fp3, 8192);     $codelock_skip2 = @fgets($codelock_fp3, 8192);     $codelock_skip3 = @fgets($codelock_fp3, 65536);     $codelock_key_data = @fread($codelock_fp3, @filesize("$codelock_located_file_temp"));     @fclose ($codelock_fp3);     if ($codelock_usezlib == "^") {     $codelock_key_data=base64_decode($codelock_key_data);     $codelock_key_data=gzinflate($codelock_key_data);     } else {}     $codelock_key_data=codelock_dec_int($codelock_key_data,$codelock_active_key);     eval($codelock_key_data);     if ($codelock_act >= 1) {     } else {     return;     } } else {      $codelock_askforkey="n";     if($codelock_askforkey == "y") {     } else {     $codelock_unlock="A7f#x^67*r&l@o()m";     $codelock_sub="y";     }       if ($codelock_enc == "") { $codelock_enc="codelock.php"; } else {}         if($codelock_fixpath==""){         $codelock_openthisfile2=$codelock_filed."/".$codelock_enc;         }else{         $codelock_openthisfile2=$codelock_fixpath."/".$codelock_enc;         }         if($codelock_sub == "y") {         $codelock_fp = @fopen("$codelock_openthisfile2", "rb");         $codelock_skip = @fgets($codelock_fp, 8192);         $codelock_skip2 = @fgets($codelock_fp, 8192);         $codelock_skip3 = @fgets($codelock_fp, 65536);         $codelock_key_data = @fread($codelock_fp, @filesize("$codelock_openthisfile2"));         @fclose ($codelock_fp);             if ($codelock_usezlib == "^") {             $codelock_key_data=base64_decode($codelock_key_data);             $codelock_key_data=gzinflate($codelock_key_data);             } else {}         $codelock_exec=codelock_run($codelock_key_data,$codelock_unlock);         if (preg_match("/codelock_decrypted/i", $codelock_exec)) {              if ($codelock_usezlib == "^") {             $codelock_codeii=$codelock_lock;             for ($codelock_ii=0; $codelock_ii < 11; $codelock_ii++) {             $codelock_codeii=gzinflate(base64_decode($codelock_codeii));             $codelock_codeii=str_replace("eval(gzinf"."late(base64_de"."code('", "", $codelock_codeii);             $codelock_codeii=str_replace("')));", "", $codelock_codeii);             }             $codelock_lock=$codelock_codeii;             } else {             $codelock_lock=base64_decode($codelock_lock);             }              $codelock_skip3=$codelock_lock;             $codelock_skip3=str_replace("codelock_ac"."tive_key_text", $codelock_unlock, $codelock_skip3);             $pres_codelock_skip3=$codelock_skip3;                  if ($codelock_usezlib == "^") {             $codelock_codeii=$codelock_skip3;             $codelock_codeii=gzdeflate($codelock_codeii); $codelock_codeii=base64_encode($codelock_codeii);             for ($codelock_ii=0; $codelock_ii < 10; $codelock_ii++) {             $codelock_codeii="eval(gzinflate(base64_decode('".$codelock_codeii."')));";             $codelock_codeii=gzdeflate($codelock_codeii); $codelock_codeii=base64_encode($codelock_codeii);             }             $codelock_skip3=$codelock_codeii;             } else {             $codelock_skip3=base64_encode($codelock_skip3);             }          $codelock_nskip3=$codelock_skip3;         $codelock_nnskip3="";         if ($codelock_exp == "") { } else { $codelock_nnskip3.="$"."codelock_exp=\"$codelock_exp\"; "; }              if ($codelock_usezlib == "^") {             $codelock_nnnskip3="if ("."$"."codelock_file == '') { echo \"<font face='verdana' size='2'><br /><b>Error!</b> You cannot run codelock directly...</font>\"; die(); } else {} ".$codelock_nnskip3."$"."codelock_lock=\"$codelock_nskip3\"; eval(gzinflate(base64_decode("."$"."codelock_lock))); return; ?".chr(62).chr(13).chr(10);             } else {             $codelock_nnnskip3="if ("."$"."codelock_file == '') { echo \"<font face='verdana' size='2'><br /><b>Error!</b> You cannot run codelock directly...</font>\"; die(); } else {} ".$codelock_nnskip3."$"."codelock_lock=\"$codelock_nskip3\"; eval(base64_decode("."$"."codelock_lock)); return; ?".chr(62).chr(13).chr(10);             }         $codelock_exec2=codelock_enc_int($codelock_exec,$codelock_unlock);          if ($codelock_usezlib == "^") {             $codelock_exec2=gzdeflate($codelock_exec2);             $codelock_exec2=base64_encode($codelock_exec2);             } else {}         $codelock_fdata=$codelock_skip.$codelock_skip2.'$codelock_rfiled=dirname(__FILE__); '.$codelock_nnnskip3.$codelock_exec2;         $codelock_masterdata=$codelock_fdata;         @chmod("$codelock_enc", 0777);         $codelock_fp2 = @fopen("$codelock_enc", "wb");         if ($codelock_fp2) { } else { echo "<br /><b>Error!</b> There is a write permission problem.  You need to CHMOD the file: <b>$codelock_enc</b> to 777."; die(); }         @fwrite($codelock_fp2, $codelock_fdata);         @fclose ($codelock_fp2);         @chmod("$codelock_enc", 0777);         $codelock_mastersize=@filesize($codelock_enc);         ob_start(); phpinfo(INFO_GENERAL); $codelock_op_string = ob_get_contents();         ob_end_clean(); if (strstr($codelock_op_string, "indows")) { $codelock_w_op="y"; } else {}         if ($codelock_w_op == "y") { $codelock_sep_str=";"; } else { $codelock_sep_str=":"; }         $include_curr_dir=$codelock_filed;         $include_dir_write=@ini_get('include_path'); $include_dir_write=$include_dir_write.$codelock_sep_str.$include_curr_dir;         @ini_set('include_path', $include_dir_write);         eval($codelock_exec);         } else {}         } else {}  if ($codelock_act >= 1) {     return;     } else {         echo"



























";         echo"<br /><table width=\"600\" border=\"1\" cellspacing=\"10\" cellpadding=\"10\" bgcolor=\"#E1EAFF\" bordercolor=\"#006699\"><tr><td>";     if($codelock_frun == ""){     $codelock_openthisfile=$codelock_file;     }else{     $codelock_openthisfile='http://'.$_SERVER['HTTP_HOST']."/".$codelock_frun."/".$codelock_file;     }         echo"<form method=\"post\" action=\"$codelock_openthisfile\"><div align=\"center\">";             if ($codelock_scname == "") {             echo "<font face=\"arial\" color=\"#006699\" size=\"4\"><b>This script is protected</b></font><br /><br />";             } else {             echo "<font face=\"arial\" color=\"#006699\" size=\"4\"><b>$codelock_scname is protected</b></font><br /><br />";             }         if ($codelock_sub == "y") {         echo "<font face=\"arial\" color=\"#cc0000\" size=\"4\"><b>error </b></font><font face=\"arial\" color=\"#006699\" size=\"2\"><b>wrong unlock key</b></font><br /><br />";         } else {}         echo"<font face=\"Arial\" size=\"2\">Please enter your unlock key to proceed:</font><br /><input type=\"text\" name=\"codelock_unlock\" size=\"32\" maxlength=\"64\">";         echo"<input type=\"hidden\" name=\"codelock_sub\" value=\"y\">";         echo"<input type=\"hidden\" name=\"codelock_encbrowser\" value=\"$codelock_encbrowser\">";         echo"<input type=\"hidden\" name=\"codelock_enc\" value=\"$codelock_enc\">";         echo"<br /><br /><input type=\"submit\" name=\"Submit\" value=\"Unlock Now >>>\">";         if ($codelock_coname == "") { } else {          echo "<br /><br /><font face=\"arial\" color=\"#000000\" size=\"2\">This software is licensed to: $codelock_coname</font>";         }         if ($codelock_extranotes == "") {} else {         echo "<br /><font face=\"arial\" color=\"#000000\" size=\"2\"><b>Note: </b>$codelock_extranotes</font>";             }         echo"</div></form></td></tr></table>";     } } return;

Did this file decode correctly?

Original Code

<?PHP
/* WARNING: This script is protected. Any attempt to reverse engineer, debug or decode this file or its dependent files is strictly prohibited */
$codelock_rfiled=dirname(__FILE__); if ($codelock_file == '') { echo "<font face='verdana' size='2'><br /><b>Error!</b> You cannot run codelock directly...</font>"; die(); } else {} $codelock_lock="ICRjb2RlbG9ja19hY3RpdmVfa2V5PSJBN2YjeF42NypyJmxAbygpbSI7IEBleHRyYWN0KCRfUkVRVUVTVCk7IGVycm9yX3JlcG9ydGluZyhFX0FMTCBeIEVfTk9USUNFKTsgaWYgKCRjb2RlbG9ja19hY3QgPj0gMSkgeyB9IGVsc2UgeyBAc2V0X3RpbWVfbGltaXQoMjQwKTsgfSBpZiAoJGNvZGVsb2NrX2VuYyA9PSAiIikgeyAkY29kZWxvY2tfZW5jPSJjb2RlbG9jay5waHAiOyB9IGVsc2Uge30gaWYgKCRjb2RlbG9ja19hY3QgPj0gMSkgeyAgICAgICAgICRjb2RlbG9ja190ZXN0c2l6ZT1AZmlsZXNpemUoJGNvZGVsb2NrX2ZpbGVkLyRjb2RlbG9ja19lbmMpOyAgICAgICAgIGlmKCRjb2RlbG9ja190ZXN0c2l6ZSAhPSAkY29kZWxvY2tfbWFzdGVyc2l6ZSl7ICAgICAgICAgQGNobW9kKCIkY29kZWxvY2tfZmlsZWQvJGNvZGVsb2NrX2VuYyIsIDA3NzcpOyAgICAgICAgIGlmIChAY29weSAoIiRjb2RlbG9ja19yZmlsZWQvJGNvZGVsb2NrX2VuYyIsIiRjb2RlbG9ja19maWxlZC8kY29kZWxvY2tfZW5jIikpe31lbHNleyAgICAgICAgICAgICAkY29kZWxvY2tfZnAyID0gQGZvcGVuKCIkY29kZWxvY2tfZmlsZWQvJGNvZGVsb2NrX2VuYyIsICJ3YiIpOyAgICAgICAgICAgICBpZiAoJGNvZGVsb2NrX2ZwMikgeyB9IGVsc2UgeyBAdW5saW5rKCRjb2RlbG9ja19maWxlZC8kY29kZWxvY2tfZW5jKTsgJGNvZGVsb2NrX2ZwMiA9IEBmb3BlbigiJGNvZGVsb2NrX2ZpbGVkLyRjb2RlbG9ja19lbmMiLCAid2IiKTsgfSAgICAgICAgICAgICBpZiAoJGNvZGVsb2NrX2ZwMikgeyAgICAgICAgICAgICBAZndyaXRlKCRjb2RlbG9ja19mcDIsICRjb2RlbG9ja19tYXN0ZXJkYXRhKTsgICAgICAgICAgICAgQGZjbG9zZSgkY29kZWxvY2tfZnAyKTsgICAgICAgICAgICAgfSAgICAgICAgIH0gICAgICAgICBAY2htb2QoIiRjb2RlbG9ja19lbmMiLCAwNzc3KTsgfSB9IGVsc2Uge30gJGNvZGVsb2NrX2VuY2Jyb3dzZXI9IiI7ICRjb2RlbG9ja191c2V6bGliPSIiOyAkY29kZWxvY2tfc2NuYW1lPSIyeDJmb3IyLmNvbSI7ICRjb2RlbG9ja19jb25hbWU9IlJvaGl0IFNldGgiOyAkY29kZWxvY2tfZXh0cmFub3Rlcz0iIjsgaWYgKCFmdW5jdGlvbl9leGlzdHMoJ2d6ZGVmbGF0ZScpIEFORCAkY29kZWxvY2tfdXNlemxpYj09Il4iKSB7ICAgICBlY2hvIjxmb250IGZhY2U9J3ZlcmRhbmEnIHNpemU9JzInPjxiciAvPjxiPkVycm9yITwvYj4gWW91IG5lZWQgdG8gaW5zdGFsbCB0aGUgWkxJQiBtb2R1bGUgZm9yIFBIUCB0byBydW4gdGhpcyBzY3JpcHQhPC9mb250PiI7ICAgICBkaWUoKTsgfSBlbHNlIHt9ICBpZiAoZnVuY3Rpb25fZXhpc3RzKCdjb2RlbG9ja19lbmNfaW50JykpIHsgfSBlbHNlIHsgZnVuY3Rpb24gY29kZWxvY2tfZW5jX2ludCgkY29kZWxvY2tfZW5jX2ludF9jb2RlLCRjb2RlbG9ja19lbmNfa2V5KSB7ICRjb2RlbG9ja19lbmNpbnRfY29kZT1iYXNlNjRfZW5jb2RlKCRjb2RlbG9ja19lbmNfaW50X2NvZGUpOyAgaWYgKCRjb2RlbG9ja19lbmNfa2V5ID09ICIiKSB7IH0gZWxzZSB7ICRjb2RlbG9ja19lbmNfa2V5PWJhc2U2NF9lbmNvZGUoJGNvZGVsb2NrX2VuY19rZXkpOyAkY29kZWxvY2tfazE9c3Vic3RyKCRjb2RlbG9ja19lbmNfa2V5LDAsMSk7ICRjb2RlbG9ja19rMj1zdWJzdHIoJGNvZGVsb2NrX2VuY19rZXksMSwxKTsgJGNvZGVsb2NrX2szPXN1YnN0cigkY29kZWxvY2tfZW5jX2tleSwyLDEpOyAkY29kZWxvY2tfZW5jaW50X2NvZGU9c3RyX3JlcGxhY2UoIiRjb2RlbG9ja19rMSIsICIkIiwgJGNvZGVsb2NrX2VuY2ludF9jb2RlKTsgJGNvZGVsb2NrX2VuY2ludF9jb2RlPXN0cl9yZXBsYWNlKCIkY29kZWxvY2tfazIiLCAiKCIsICRjb2RlbG9ja19lbmNpbnRfY29kZSk7ICRjb2RlbG9ja19lbmNpbnRfY29kZT1zdHJfcmVwbGFjZSgiJGNvZGVsb2NrX2szIiwgIikiLCAkY29kZWxvY2tfZW5jaW50X2NvZGUpOyB9IHJldHVybiAkY29kZWxvY2tfZW5jaW50X2NvZGU7IH0gfSAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnY29kZWxvY2tfZGVjX2ludCcpKSB7IH0gZWxzZSB7IGZ1bmN0aW9uIGNvZGVsb2NrX2RlY19pbnQoJGNvZGVsb2NrX2RlY2ludF9jb2RlLCRjb2RlbG9ja19jYWxjX2tleSkgeyAgaWYgKCRjb2RlbG9ja19jYWxjX2tleSA9PSAiIikgeyB9IGVsc2UgeyAkY29kZWxvY2tfY2FsY19rZXk9YmFzZTY0X2VuY29kZSgkY29kZWxvY2tfY2FsY19rZXkpOyAkY29kZWxvY2tfazE9c3Vic3RyKCRjb2RlbG9ja19jYWxjX2tleSwwLDEpOyAkY29kZWxvY2tfazI9c3Vic3RyKCRjb2RlbG9ja19jYWxjX2tleSwxLDEpOyAkY29kZWxvY2tfazM9c3Vic3RyKCRjb2RlbG9ja19jYWxjX2tleSwyLDEpOyAkY29kZWxvY2tfZGVjaW50X2NvZGU9c3RyX3JlcGxhY2UoIiQiLCAiJGNvZGVsb2NrX2sxIiwgJGNvZGVsb2NrX2RlY2ludF9jb2RlKTsgJGNvZGVsb2NrX2RlY2ludF9jb2RlPXN0cl9yZXBsYWNlKCIoIiwgIiRjb2RlbG9ja19rMiIsICRjb2RlbG9ja19kZWNpbnRfY29kZSk7ICRjb2RlbG9ja19kZWNpbnRfY29kZT1zdHJfcmVwbGFjZSgiKSIsICIkY29kZWxvY2tfazMiLCAkY29kZWxvY2tfZGVjaW50X2NvZGUpOyB9ICRjb2RlbG9ja19kZWNpbnRfY29kZT1iYXNlNjRfZGVjb2RlKCRjb2RlbG9ja19kZWNpbnRfY29kZSk7ICByZXR1cm4gJGNvZGVsb2NrX2RlY2ludF9jb2RlOyB9IH0gaWYgKGZ1bmN0aW9uX2V4aXN0cygnY29kZWxvY2tfZGVjJykpIHsgfSBlbHNlIHsgZnVuY3Rpb24gY29kZWxvY2tfZGVjKCRjb2RlbG9ja192KXsgc3dpdGNoKCRjb2RlbG9ja192KXsgY2FzZSAiQSI6JGR2PTA7YnJlYWs7IGNhc2UgIkIiOiRkdj0xO2JyZWFrOyBjYXNlICJDIjokZHY9MjticmVhazsgY2FzZSAiRCI6JGR2PTM7YnJlYWs7IGNhc2UgIkUiOiRkdj00O2JyZWFrOyBjYXNlICJGIjokZHY9NTticmVhazsgY2FzZSAiRyI6JGR2PTY7YnJlYWs7IGNhc2UgIkgiOiRkdj03O2JyZWFrOyBjYXNlICJJIjokZHY9ODticmVhazsgY2FzZSAiSiI6JGR2PTk7YnJlYWs7IGNhc2UgIksiOiRkdj0xMDticmVhazsgY2FzZSAiTCI6JGR2PTExO2JyZWFrOyBjYXNlICJNIjokZHY9MTI7YnJlYWs7IGNhc2UgIk4iOiRkdj0xMzticmVhazsgY2FzZSAiTyI6JGR2PTE0O2JyZWFrOyBjYXNlICJQIjokZHY9MTU7YnJlYWs7IGNhc2UgIlEiOiRkdj0xNjticmVhazsgY2FzZSAiUiI6JGR2PTE3O2JyZWFrOyBjYXNlICJTIjokZHY9MTg7YnJlYWs7IGNhc2UgIlQiOiRkdj0xOTticmVhazsgY2FzZSAiVSI6JGR2PTIwO2JyZWFrOyBjYXNlICJWIjokZHY9MjE7YnJlYWs7IGNhc2UgIlciOiRkdj0yMjticmVhazsgY2FzZSAiWCI6JGR2PTIzO2JyZWFrOyBjYXNlICJZIjokZHY9MjQ7YnJlYWs7IGNhc2UgIloiOiRkdj0yNTticmVhazsgY2FzZSAiYSI6JGR2PTI2O2JyZWFrOyBjYXNlICJiIjokZHY9Mjc7YnJlYWs7IGNhc2UgImMiOiRkdj0yODticmVhazsgY2FzZSAiZCI6JGR2PTI5O2JyZWFrOyBjYXNlICJlIjokZHY9MzA7YnJlYWs7IGNhc2UgImYiOiRkdj0zMTticmVhazsgY2FzZSAiZyI6JGR2PTMyO2JyZWFrOyBjYXNlICJoIjokZHY9MzM7YnJlYWs7IGNhc2UgImkiOiRkdj0zNDticmVhazsgY2FzZSAiaiI6JGR2PTM1O2JyZWFrOyBjYXNlICJrIjokZHY9MzY7YnJlYWs7IGNhc2UgImwiOiRkdj0zNzticmVhazsgY2FzZSAibSI6JGR2PTM4O2JyZWFrOyBjYXNlICJuIjokZHY9Mzk7YnJlYWs7IGNhc2UgIm8iOiRkdj00MDticmVhazsgY2FzZSAicCI6JGR2PTQxO2JyZWFrOyBjYXNlICJxIjokZHY9NDI7YnJlYWs7IGNhc2UgInIiOiRkdj00MzticmVhazsgY2FzZSAicyI6JGR2PTQ0O2JyZWFrOyBjYXNlICJ0IjokZHY9NDU7YnJlYWs7IGNhc2UgInUiOiRkdj00NjticmVhazsgY2FzZSAidiI6JGR2PTQ3O2JyZWFrOyBjYXNlICJ3IjokZHY9NDg7YnJlYWs7IGNhc2UgIngiOiRkdj00OTticmVhazsgY2FzZSAieSI6JGR2PTUwO2JyZWFrOyBjYXNlICJ6IjokZHY9NTE7YnJlYWs7IGNhc2UgIjAiOiRkdj01MjticmVhazsgY2FzZSAiMSI6JGR2PTUzO2JyZWFrOyBjYXNlICIyIjokZHY9NTQ7YnJlYWs7IGNhc2UgIjMiOiRkdj01NTticmVhazsgY2FzZSAiNCI6JGR2PTU2O2JyZWFrOyBjYXNlICI1IjokZHY9NTc7YnJlYWs7IGNhc2UgIjYiOiRkdj01ODticmVhazsgY2FzZSAiNyI6JGR2PTU5O2JyZWFrOyBjYXNlICI4IjokZHY9NjA7YnJlYWs7IGNhc2UgIjkiOiRkdj02MTticmVhazsgY2FzZSAiKyI6JGR2PTYyO2JyZWFrOyBjYXNlICIvIjokZHY9NjM7YnJlYWs7IGNhc2UgIj0iOiRkdj02NDticmVhazsgZGVmYXVsdDogJGR2PTA7YnJlYWs7IH0gcmV0dXJuICRkdjsgfSB9IGlmIChmdW5jdGlvbl9leGlzdHMoJ2NvZGVsb2NrX3J1bicpKSB7IH0gZWxzZSB7IGZ1bmN0aW9uIGNvZGVsb2NrX3J1bigkY2lwaCwka2V5KXsgJG09MDsgJGFiYz0iIjsgZm9yKCRpPTA7JGk8c3RybGVuKCRjaXBoKTskaSsrKXsgJGM9c3Vic3RyKCRjaXBoLCRpLDEpOyAkZHY9Y29kZWxvY2tfZGVjKCRjKTsgJGR2PSgkZHYtJG0pLzQ7ICRmYj1kZWNiaW4oJGR2KTsgd2hpbGUoc3RybGVuKCRmYik8NCl7ICRmYj0iMCIuJGZiOyB9ICRhYmM9JGFiYy4kZmI7ICRtKys7IGlmKCRtPjMpeyAkbT0wOyB9IH0gJGtsPTA7ICRwZD0iIjsgZm9yKCRqPTA7JGo8c3RybGVuKCRhYmMpOyRqPSRqKzgpeyAkYz1zdWJzdHIoJGFiYywkaiw4KTsgJGs9c3Vic3RyKCRrZXksJGtsLDEpOyAkZGM9YmluZGVjKCRjKTsgJGRjPSRkYyAtIHN0cmxlbigka2V5KTsgJGM9Y2hyKCRkYyk7ICRrbCsrOyBpZigka2w+PXN0cmxlbigka2V5KSl7ICRrbD0wOyB9ICRkYz1vcmQoJGMpXm9yZCgkayk7ICRwPWNocigkZGMpOyAkcGQ9JHBkLiRwOyB9IHJldHVybiAkcGQ7IH0gfSAgaWYgKHN1YnN0cigkY29kZWxvY2tfYWN0aXZlX2tleSwgMCwgMTUpICE9ICJjb2RlbG9ja19hY3RpdmUiKSB7ICAgICBpZiAoJGNvZGVsb2NrX2VuYyA9PSAiIikgeyAkY29kZWxvY2tfZW5jPSJjb2RlbG9jay5waHAiOyB9IGVsc2Uge30gICAgICAgICBpZigkY29kZWxvY2tfZml4cGF0aD09IiIpeyAgICAgICAgICAgICAkY29kZWxvY2tfbG9jYXRlZF9maWxlX3RlbXA9JGNvZGVsb2NrX2ZpbGVkLiIvIi4kY29kZWxvY2tfZW5jOyAgICAgICAgIH1lbHNleyAgICAgICAgICAgICAkY29kZWxvY2tfbG9jYXRlZF9maWxlX3RlbXA9JGNvZGVsb2NrX2ZpeHBhdGguIi8iLiRjb2RlbG9ja19lbmM7ICAgICAgICAgfSAgICAgJGNvZGVsb2NrX2ZwMyA9IEBmb3BlbigiJGNvZGVsb2NrX2xvY2F0ZWRfZmlsZV90ZW1wIiwgInJiIik7ICAgICAkY29kZWxvY2tfc2tpcCA9IEBmZ2V0cygkY29kZWxvY2tfZnAzLCA4MTkyKTsgICAgICRjb2RlbG9ja19za2lwMiA9IEBmZ2V0cygkY29kZWxvY2tfZnAzLCA4MTkyKTsgICAgICRjb2RlbG9ja19za2lwMyA9IEBmZ2V0cygkY29kZWxvY2tfZnAzLCA2NTUzNik7ICAgICAkY29kZWxvY2tfa2V5X2RhdGEgPSBAZnJlYWQoJGNvZGVsb2NrX2ZwMywgQGZpbGVzaXplKCIkY29kZWxvY2tfbG9jYXRlZF9maWxlX3RlbXAiKSk7ICAgICBAZmNsb3NlICgkY29kZWxvY2tfZnAzKTsgICAgIGlmICgkY29kZWxvY2tfdXNlemxpYiA9PSAiXiIpIHsgICAgICRjb2RlbG9ja19rZXlfZGF0YT1iYXNlNjRfZGVjb2RlKCRjb2RlbG9ja19rZXlfZGF0YSk7ICAgICAkY29kZWxvY2tfa2V5X2RhdGE9Z3ppbmZsYXRlKCRjb2RlbG9ja19rZXlfZGF0YSk7ICAgICB9IGVsc2Uge30gICAgICRjb2RlbG9ja19rZXlfZGF0YT1jb2RlbG9ja19kZWNfaW50KCRjb2RlbG9ja19rZXlfZGF0YSwkY29kZWxvY2tfYWN0aXZlX2tleSk7ICAgICBldmFsKCRjb2RlbG9ja19rZXlfZGF0YSk7ICAgICBpZiAoJGNvZGVsb2NrX2FjdCA+PSAxKSB7ICAgICB9IGVsc2UgeyAgICAgcmV0dXJuOyAgICAgfSB9IGVsc2UgeyAgICAgICRjb2RlbG9ja19hc2tmb3JrZXk9Im4iOyAgICAgaWYoJGNvZGVsb2NrX2Fza2ZvcmtleSA9PSAieSIpIHsgICAgIH0gZWxzZSB7ICAgICAkY29kZWxvY2tfdW5sb2NrPSJBN2YjeF42NypyJmxAbygpbSI7ICAgICAkY29kZWxvY2tfc3ViPSJ5IjsgICAgIH0gICAgICAgaWYgKCRjb2RlbG9ja19lbmMgPT0gIiIpIHsgJGNvZGVsb2NrX2VuYz0iY29kZWxvY2sucGhwIjsgfSBlbHNlIHt9ICAgICAgICAgaWYoJGNvZGVsb2NrX2ZpeHBhdGg9PSIiKXsgICAgICAgICAkY29kZWxvY2tfb3BlbnRoaXNmaWxlMj0kY29kZWxvY2tfZmlsZWQuIi8iLiRjb2RlbG9ja19lbmM7ICAgICAgICAgfWVsc2V7ICAgICAgICAgJGNvZGVsb2NrX29wZW50aGlzZmlsZTI9JGNvZGVsb2NrX2ZpeHBhdGguIi8iLiRjb2RlbG9ja19lbmM7ICAgICAgICAgfSAgICAgICAgIGlmKCRjb2RlbG9ja19zdWIgPT0gInkiKSB7ICAgICAgICAgJGNvZGVsb2NrX2ZwID0gQGZvcGVuKCIkY29kZWxvY2tfb3BlbnRoaXNmaWxlMiIsICJyYiIpOyAgICAgICAgICRjb2RlbG9ja19za2lwID0gQGZnZXRzKCRjb2RlbG9ja19mcCwgODE5Mik7ICAgICAgICAgJGNvZGVsb2NrX3NraXAyID0gQGZnZXRzKCRjb2RlbG9ja19mcCwgODE5Mik7ICAgICAgICAgJGNvZGVsb2NrX3NraXAzID0gQGZnZXRzKCRjb2RlbG9ja19mcCwgNjU1MzYpOyAgICAgICAgICRjb2RlbG9ja19rZXlfZGF0YSA9IEBmcmVhZCgkY29kZWxvY2tfZnAsIEBmaWxlc2l6ZSgiJGNvZGVsb2NrX29wZW50aGlzZmlsZTIiKSk7ICAgICAgICAgQGZjbG9zZSAoJGNvZGVsb2NrX2ZwKTsgICAgICAgICAgICAgaWYgKCRjb2RlbG9ja191c2V6bGliID09ICJeIikgeyAgICAgICAgICAgICAkY29kZWxvY2tfa2V5X2RhdGE9YmFzZTY0X2RlY29kZSgkY29kZWxvY2tfa2V5X2RhdGEpOyAgICAgICAgICAgICAkY29kZWxvY2tfa2V5X2RhdGE9Z3ppbmZsYXRlKCRjb2RlbG9ja19rZXlfZGF0YSk7ICAgICAgICAgICAgIH0gZWxzZSB7fSAgICAgICAgICRjb2RlbG9ja19leGVjPWNvZGVsb2NrX3J1bigkY29kZWxvY2tfa2V5X2RhdGEsJGNvZGVsb2NrX3VubG9jayk7ICAgICAgICAgaWYgKHByZWdfbWF0Y2goIi9jb2RlbG9ja19kZWNyeXB0ZWQvaSIsICRjb2RlbG9ja19leGVjKSkgeyAgICAgICAgICAgICAgaWYgKCRjb2RlbG9ja191c2V6bGliID09ICJeIikgeyAgICAgICAgICAgICAkY29kZWxvY2tfY29kZWlpPSRjb2RlbG9ja19sb2NrOyAgICAgICAgICAgICBmb3IgKCRjb2RlbG9ja19paT0wOyAkY29kZWxvY2tfaWkgPCAxMTsgJGNvZGVsb2NrX2lpKyspIHsgICAgICAgICAgICAgJGNvZGVsb2NrX2NvZGVpaT1nemluZmxhdGUoYmFzZTY0X2RlY29kZSgkY29kZWxvY2tfY29kZWlpKSk7ICAgICAgICAgICAgICRjb2RlbG9ja19jb2RlaWk9c3RyX3JlcGxhY2UoImV2YWwoZ3ppbmYiLiJsYXRlKGJhc2U2NF9kZSIuImNvZGUoJyIsICIiLCAkY29kZWxvY2tfY29kZWlpKTsgICAgICAgICAgICAgJGNvZGVsb2NrX2NvZGVpaT1zdHJfcmVwbGFjZSgiJykpKTsiLCAiIiwgJGNvZGVsb2NrX2NvZGVpaSk7ICAgICAgICAgICAgIH0gICAgICAgICAgICAgJGNvZGVsb2NrX2xvY2s9JGNvZGVsb2NrX2NvZGVpaTsgICAgICAgICAgICAgfSBlbHNlIHsgICAgICAgICAgICAgJGNvZGVsb2NrX2xvY2s9YmFzZTY0X2RlY29kZSgkY29kZWxvY2tfbG9jayk7ICAgICAgICAgICAgIH0gICAgICAgICAgICAgICRjb2RlbG9ja19za2lwMz0kY29kZWxvY2tfbG9jazsgICAgICAgICAgICAgJGNvZGVsb2NrX3NraXAzPXN0cl9yZXBsYWNlKCJjb2RlbG9ja19hYyIuInRpdmVfa2V5X3RleHQiLCAkY29kZWxvY2tfdW5sb2NrLCAkY29kZWxvY2tfc2tpcDMpOyAgICAgICAgICAgICAkcHJlc19jb2RlbG9ja19za2lwMz0kY29kZWxvY2tfc2tpcDM7ICAgICAgICAgICAgICAgICAgaWYgKCRjb2RlbG9ja191c2V6bGliID09ICJeIikgeyAgICAgICAgICAgICAkY29kZWxvY2tfY29kZWlpPSRjb2RlbG9ja19za2lwMzsgICAgICAgICAgICAgJGNvZGVsb2NrX2NvZGVpaT1nemRlZmxhdGUoJGNvZGVsb2NrX2NvZGVpaSk7ICRjb2RlbG9ja19jb2RlaWk9YmFzZTY0X2VuY29kZSgkY29kZWxvY2tfY29kZWlpKTsgICAgICAgICAgICAgZm9yICgkY29kZWxvY2tfaWk9MDsgJGNvZGVsb2NrX2lpIDwgMTA7ICRjb2RlbG9ja19paSsrKSB7ICAgICAgICAgICAgICRjb2RlbG9ja19jb2RlaWk9ImV2YWwoZ3ppbmZsYXRlKGJhc2U2NF9kZWNvZGUoJyIuJGNvZGVsb2NrX2NvZGVpaS4iJykpKTsiOyAgICAgICAgICAgICAkY29kZWxvY2tfY29kZWlpPWd6ZGVmbGF0ZSgkY29kZWxvY2tfY29kZWlpKTsgJGNvZGVsb2NrX2NvZGVpaT1iYXNlNjRfZW5jb2RlKCRjb2RlbG9ja19jb2RlaWkpOyAgICAgICAgICAgICB9ICAgICAgICAgICAgICRjb2RlbG9ja19za2lwMz0kY29kZWxvY2tfY29kZWlpOyAgICAgICAgICAgICB9IGVsc2UgeyAgICAgICAgICAgICAkY29kZWxvY2tfc2tpcDM9YmFzZTY0X2VuY29kZSgkY29kZWxvY2tfc2tpcDMpOyAgICAgICAgICAgICB9ICAgICAgICAgICRjb2RlbG9ja19uc2tpcDM9JGNvZGVsb2NrX3NraXAzOyAgICAgICAgICRjb2RlbG9ja19ubnNraXAzPSIiOyAgICAgICAgIGlmICgkY29kZWxvY2tfZXhwID09ICIiKSB7IH0gZWxzZSB7ICRjb2RlbG9ja19ubnNraXAzLj0iJCIuImNvZGVsb2NrX2V4cD1cIiRjb2RlbG9ja19leHBcIjsgIjsgfSAgICAgICAgICAgICAgaWYgKCRjb2RlbG9ja191c2V6bGliID09ICJeIikgeyAgICAgICAgICAgICAkY29kZWxvY2tfbm5uc2tpcDM9ImlmICgiLiIkIi4iY29kZWxvY2tfZmlsZSA9PSAnJykgeyBlY2hvIFwiPGZvbnQgZmFjZT0ndmVyZGFuYScgc2l6ZT0nMic+PGJyIC8+PGI+RXJyb3IhPC9iPiBZb3UgY2Fubm90IHJ1biBjb2RlbG9jayBkaXJlY3RseS4uLjwvZm9udD5cIjsgZGllKCk7IH0gZWxzZSB7fSAiLiRjb2RlbG9ja19ubnNraXAzLiIkIi4iY29kZWxvY2tfbG9jaz1cIiRjb2RlbG9ja19uc2tpcDNcIjsgZXZhbChnemluZmxhdGUoYmFzZTY0X2RlY29kZSgiLiIkIi4iY29kZWxvY2tfbG9jaykpKTsgcmV0dXJuOyA/Ii5jaHIoNjIpLmNocigxMykuY2hyKDEwKTsgICAgICAgICAgICAgfSBlbHNlIHsgICAgICAgICAgICAgJGNvZGVsb2NrX25ubnNraXAzPSJpZiAoIi4iJCIuImNvZGVsb2NrX2ZpbGUgPT0gJycpIHsgZWNobyBcIjxmb250IGZhY2U9J3ZlcmRhbmEnIHNpemU9JzInPjxiciAvPjxiPkVycm9yITwvYj4gWW91IGNhbm5vdCBydW4gY29kZWxvY2sgZGlyZWN0bHkuLi48L2ZvbnQ+XCI7IGRpZSgpOyB9IGVsc2Uge30gIi4kY29kZWxvY2tfbm5za2lwMy4iJCIuImNvZGVsb2NrX2xvY2s9XCIkY29kZWxvY2tfbnNraXAzXCI7IGV2YWwoYmFzZTY0X2RlY29kZSgiLiIkIi4iY29kZWxvY2tfbG9jaykpOyByZXR1cm47ID8iLmNocig2MikuY2hyKDEzKS5jaHIoMTApOyAgICAgICAgICAgICB9ICAgICAgICAgJGNvZGVsb2NrX2V4ZWMyPWNvZGVsb2NrX2VuY19pbnQoJGNvZGVsb2NrX2V4ZWMsJGNvZGVsb2NrX3VubG9jayk7ICAgICAgICAgIGlmICgkY29kZWxvY2tfdXNlemxpYiA9PSAiXiIpIHsgICAgICAgICAgICAgJGNvZGVsb2NrX2V4ZWMyPWd6ZGVmbGF0ZSgkY29kZWxvY2tfZXhlYzIpOyAgICAgICAgICAgICAkY29kZWxvY2tfZXhlYzI9YmFzZTY0X2VuY29kZSgkY29kZWxvY2tfZXhlYzIpOyAgICAgICAgICAgICB9IGVsc2Uge30gICAgICAgICAkY29kZWxvY2tfZmRhdGE9JGNvZGVsb2NrX3NraXAuJGNvZGVsb2NrX3NraXAyLickY29kZWxvY2tfcmZpbGVkPWRpcm5hbWUoX19GSUxFX18pOyAnLiRjb2RlbG9ja19ubm5za2lwMy4kY29kZWxvY2tfZXhlYzI7ICAgICAgICAgJGNvZGVsb2NrX21hc3RlcmRhdGE9JGNvZGVsb2NrX2ZkYXRhOyAgICAgICAgIEBjaG1vZCgiJGNvZGVsb2NrX2VuYyIsIDA3NzcpOyAgICAgICAgICRjb2RlbG9ja19mcDIgPSBAZm9wZW4oIiRjb2RlbG9ja19lbmMiLCAid2IiKTsgICAgICAgICBpZiAoJGNvZGVsb2NrX2ZwMikgeyB9IGVsc2UgeyBlY2hvICI8YnIgLz48Yj5FcnJvciE8L2I+IFRoZXJlIGlzIGEgd3JpdGUgcGVybWlzc2lvbiBwcm9ibGVtLiAgWW91IG5lZWQgdG8gQ0hNT0QgdGhlIGZpbGU6IDxiPiRjb2RlbG9ja19lbmM8L2I+IHRvIDc3Ny4iOyBkaWUoKTsgfSAgICAgICAgIEBmd3JpdGUoJGNvZGVsb2NrX2ZwMiwgJGNvZGVsb2NrX2ZkYXRhKTsgICAgICAgICBAZmNsb3NlICgkY29kZWxvY2tfZnAyKTsgICAgICAgICBAY2htb2QoIiRjb2RlbG9ja19lbmMiLCAwNzc3KTsgICAgICAgICAkY29kZWxvY2tfbWFzdGVyc2l6ZT1AZmlsZXNpemUoJGNvZGVsb2NrX2VuYyk7ICAgICAgICAgb2Jfc3RhcnQoKTsgcGhwaW5mbyhJTkZPX0dFTkVSQUwpOyAkY29kZWxvY2tfb3Bfc3RyaW5nID0gb2JfZ2V0X2NvbnRlbnRzKCk7ICAgICAgICAgb2JfZW5kX2NsZWFuKCk7IGlmIChzdHJzdHIoJGNvZGVsb2NrX29wX3N0cmluZywgImluZG93cyIpKSB7ICRjb2RlbG9ja193X29wPSJ5IjsgfSBlbHNlIHt9ICAgICAgICAgaWYgKCRjb2RlbG9ja193X29wID09ICJ5IikgeyAkY29kZWxvY2tfc2VwX3N0cj0iOyI7IH0gZWxzZSB7ICRjb2RlbG9ja19zZXBfc3RyPSI6IjsgfSAgICAgICAgICRpbmNsdWRlX2N1cnJfZGlyPSRjb2RlbG9ja19maWxlZDsgICAgICAgICAkaW5jbHVkZV9kaXJfd3JpdGU9QGluaV9nZXQoJ2luY2x1ZGVfcGF0aCcpOyAkaW5jbHVkZV9kaXJfd3JpdGU9JGluY2x1ZGVfZGlyX3dyaXRlLiRjb2RlbG9ja19zZXBfc3RyLiRpbmNsdWRlX2N1cnJfZGlyOyAgICAgICAgIEBpbmlfc2V0KCdpbmNsdWRlX3BhdGgnLCAkaW5jbHVkZV9kaXJfd3JpdGUpOyAgICAgICAgIGV2YWwoJGNvZGVsb2NrX2V4ZWMpOyAgICAgICAgIH0gZWxzZSB7fSAgICAgICAgIH0gZWxzZSB7fSAgaWYgKCRjb2RlbG9ja19hY3QgPj0gMSkgeyAgICAgcmV0dXJuOyAgICAgfSBlbHNlIHsgICAgICAgICBlY2hvIgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoiOyAgICAgICAgIGVjaG8iPGJyIC8+PHRhYmxlIHdpZHRoPVwiNjAwXCIgYm9yZGVyPVwiMVwiIGNlbGxzcGFjaW5nPVwiMTBcIiBjZWxscGFkZGluZz1cIjEwXCIgYmdjb2xvcj1cIiNFMUVBRkZcIiBib3JkZXJjb2xvcj1cIiMwMDY2OTlcIj48dHI+PHRkPiI7ICAgICBpZigkY29kZWxvY2tfZnJ1biA9PSAiIil7ICAgICAkY29kZWxvY2tfb3BlbnRoaXNmaWxlPSRjb2RlbG9ja19maWxlOyAgICAgfWVsc2V7ICAgICAkY29kZWxvY2tfb3BlbnRoaXNmaWxlPSdodHRwOi8vJy4kX1NFUlZFUlsnSFRUUF9IT1NUJ10uIi8iLiRjb2RlbG9ja19mcnVuLiIvIi4kY29kZWxvY2tfZmlsZTsgICAgIH0gICAgICAgICBlY2hvIjxmb3JtIG1ldGhvZD1cInBvc3RcIiBhY3Rpb249XCIkY29kZWxvY2tfb3BlbnRoaXNmaWxlXCI+PGRpdiBhbGlnbj1cImNlbnRlclwiPiI7ICAgICAgICAgICAgIGlmICgkY29kZWxvY2tfc2NuYW1lID09ICIiKSB7ICAgICAgICAgICAgIGVjaG8gIjxmb250IGZhY2U9XCJhcmlhbFwiIGNvbG9yPVwiIzAwNjY5OVwiIHNpemU9XCI0XCI+PGI+VGhpcyBzY3JpcHQgaXMgcHJvdGVjdGVkPC9iPjwvZm9udD48YnIgLz48YnIgLz4iOyAgICAgICAgICAgICB9IGVsc2UgeyAgICAgICAgICAgICBlY2hvICI8Zm9udCBmYWNlPVwiYXJpYWxcIiBjb2xvcj1cIiMwMDY2OTlcIiBzaXplPVwiNFwiPjxiPiRjb2RlbG9ja19zY25hbWUgaXMgcHJvdGVjdGVkPC9iPjwvZm9udD48YnIgLz48YnIgLz4iOyAgICAgICAgICAgICB9ICAgICAgICAgaWYgKCRjb2RlbG9ja19zdWIgPT0gInkiKSB7ICAgICAgICAgZWNobyAiPGZvbnQgZmFjZT1cImFyaWFsXCIgY29sb3I9XCIjY2MwMDAwXCIgc2l6ZT1cIjRcIj48Yj5lcnJvciA8L2I+PC9mb250Pjxmb250IGZhY2U9XCJhcmlhbFwiIGNvbG9yPVwiIzAwNjY5OVwiIHNpemU9XCIyXCI+PGI+d3JvbmcgdW5sb2NrIGtleTwvYj48L2ZvbnQ+PGJyIC8+PGJyIC8+IjsgICAgICAgICB9IGVsc2Uge30gICAgICAgICBlY2hvIjxmb250IGZhY2U9XCJBcmlhbFwiIHNpemU9XCIyXCI+UGxlYXNlIGVudGVyIHlvdXIgdW5sb2NrIGtleSB0byBwcm9jZWVkOjwvZm9udD48YnIgLz48aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwiY29kZWxvY2tfdW5sb2NrXCIgc2l6ZT1cIjMyXCIgbWF4bGVuZ3RoPVwiNjRcIj4iOyAgICAgICAgIGVjaG8iPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwiY29kZWxvY2tfc3ViXCIgdmFsdWU9XCJ5XCI+IjsgICAgICAgICBlY2hvIjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cImNvZGVsb2NrX2VuY2Jyb3dzZXJcIiB2YWx1ZT1cIiRjb2RlbG9ja19lbmNicm93c2VyXCI+IjsgICAgICAgICBlY2hvIjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cImNvZGVsb2NrX2VuY1wiIHZhbHVlPVwiJGNvZGVsb2NrX2VuY1wiPiI7ICAgICAgICAgZWNobyI8YnIgLz48YnIgLz48aW5wdXQgdHlwZT1cInN1Ym1pdFwiIG5hbWU9XCJTdWJtaXRcIiB2YWx1ZT1cIlVubG9jayBOb3cgPj4+XCI+IjsgICAgICAgICBpZiAoJGNvZGVsb2NrX2NvbmFtZSA9PSAiIikgeyB9IGVsc2UgeyAgICAgICAgICBlY2hvICI8YnIgLz48YnIgLz48Zm9udCBmYWNlPVwiYXJpYWxcIiBjb2xvcj1cIiMwMDAwMDBcIiBzaXplPVwiMlwiPlRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdG86ICRjb2RlbG9ja19jb25hbWU8L2ZvbnQ+IjsgICAgICAgICB9ICAgICAgICAgaWYgKCRjb2RlbG9ja19leHRyYW5vdGVzID09ICIiKSB7fSBlbHNlIHsgICAgICAgICBlY2hvICI8YnIgLz48Zm9udCBmYWNlPVwiYXJpYWxcIiBjb2xvcj1cIiMwMDAwMDBcIiBzaXplPVwiMlwiPjxiPk5vdGU6IDwvYj4kY29kZWxvY2tfZXh0cmFub3RlczwvZm9udD4iOyAgICAgICAgICAgICB9ICAgICAgICAgZWNobyI8L2Rpdj48L2Zvcm0+PC90ZD48L3RyPjwvdGFibGU+IjsgICAgIH0gfSByZXR1cm47"; eval(base64_decode($codelock_lock)); return; ?>
JGNvZGVsb2NrX2V4cD0i(WpBNU9U$XlNVFlxIjsgJGNvZGVsb2NrX2V4cGlyeV9tZXNzYW)lPSJWR2hwY3lCamIyUmxJR2x6SUhCeWIzUmxZM1JsWkNFPSI7IGVycm9yX3JlcG9y)GluZyhFX0FM(CBeIEVf(k9USUNFK(sNCmV4)HJhY3$oJF9$(1NUK(sNCiRjb2RlbG9ja19kZWNyeXB0ZW$9IiI7D$okY29kZWxvY2tfYWN0aXZlX2V4cGlye(0iY29kZWxvY2tfYWN0aXZlX2V4cGlyeV90ZXh0IjsNCmlmICgkY29kZWxvY2tfaXAgP(0gIiIpIHsgfSBlbHNlIHsgJGNvZGVsb2NrX2lwPWNvZGVsb2NrX2RlY19pbn$oJGNvZGVsb2NrX2lwLCIiK(sgf$0KJGNvZGVsb2NrX2V4cD1jb2RlbG9ja19kZWNfaW50KCRjb2RlbG9ja19leHAsIiIpOw0KD$ppZiAoJGNvZGVsb2NrX2V4cCA9PSAiMCIgb3IgJGNvZGVsb2NrX2V4cCA9PSAiIikgew0KfSBlbHNlIHsNCiAgICAkY29kZWxvY2tfZXhwaXJ5X21lc3NhZ2U9Y29kZWxvY2tfZGVjX2lu)CgkY29kZWxvY2tfZXhwaXJ5X21lc3NhZ2UsIiIpOw0KICAgICRjb2RlbG9ja19leHBpcnlfbWVzc2FnZ(1z)HJpcHNsYXNoZXMoJGNvZGVsb2NrX2V4cGlyeV9tZXNzYW)lK(sNCiAgICAkY29kZWxvY2tf)G9kYXk9ZGF0ZSgiWW1kIix0aW1lKCkpOw0KICAgIGlmICggc3Vic3RyKCRjb2RlbG9ja19leHAsIDgsIDEpID09ICIqIikgew0KICAgICRjb2RlbG9ja19ke(1z)WJz)HIoJGNvZGVsb2NrX2V4cCwgNiwgMik7D$ogICAgJGNvZGVsb2NrX21uPXN1YnN0cigkY29kZWxvY2tfZXhwLCA0LCAyK(sNCiAgICAkY29kZWxvY2tfeXI9c3Vic3RyKCRjb2RlbG9ja19leHAsIDAsID$pOw0KICAgICRjb2RlbG9ja190b2RheV9hZG$9c3RyZnRpbWUoIiVZJW0lZCIsIG1r)GltZSgwLDAsMCwkY29kZWxvY2tfbW4sJGNvZGVsb2NrX2R5LCRjb2RlbG9ja195cikpOw0KICAgIH0gZWxzZSB7D$ogICAgJGNvZGVsb2NrX2R5PXN1YnN0cigkY29kZWxvY2tf)G9kYXksIDYsIDIpOw0KICAgICRjb2RlbG9ja19tbj1z)WJz)HIoJGNvZGVsb2NrX3RvZGF5LCA0LCAyK(sNCiAgICAkY29kZWxvY2tfeXI9c3Vic3RyKCRjb2RlbG9ja190b2RheSwgMCwgNCk7D$ogICAgJGNvZGVsb2NrX3RvZGF5X2FkZD1z)HJm)GltZSgiJVklbSVkIiwgbWt0aW1lKDAsMCwwLCRjb2RlbG9ja19tbiwkY29kZWxvY2tfZHkrJGNvZGVsb2NrX2V4cCwkY29kZWxvY2tfeXIpK(sNCiAgICB9D$ogICAgJGNvZGVsb2NrX3RvZGF5X3)yaXRlPWJhc2U2NF9lbmNvZGUoJGNvZGVsb2NrX3RvZGF5X2FkZCk7D$ogICAgaWYgKHN1YnN0cigkY29kZWxvY2tfYWN0aXZlX2V4cGlyeSwgMCwgOCkgP(0gImNvZGVsb2NrIiBB(k$gc3Vic3RyKCRjb2RlbG9ja19leHAsIDgsIDEpICE9ICIqIikgew0KJGNvZGVsb2NrX2V4ZWM9c3RyX3JlcGxhY2UoImNvZGVsb2NrX2Fj)GkiLiJ2ZV9leHBpcnlf)GV4)CIsIiRjb2RlbG9ja190b2RheV93cml0ZSIsJGNvZGVsb2NrX2V4ZWMpOw0KD$ogICAgJGNvZGVsb2NrX2V4ZWMyPWNvZGVsb2NrX2VuY19pbn$oJGNvZGVsb2NrX2V4ZWMsJGNvZGVsb2NrX3VubG9jayk7D$oNCmlmICgkY29kZWxvY2tf)XNlemxpYiA9PSAiXiIpIHsNCiRjb2RlbG9ja19leGVjMj1nemRlZmxh)GUoJGNvZGVsb2NrX2V4ZWMyK(sNCiRjb2RlbG9ja19leGVjMj1iYXNlNjRfZW5jb2RlKCRjb2RlbG9ja19leGVjMik7D$p9IGVsc2Uge30NCg0KJGNvZGVsb2NrX3NraXAzPSRwcmVzX2NvZGVsb2NrX3NraXAzOw0KaWYgKCRjb2RlbG9ja191c2V6bGliID09ICJeIikgew0KICAgICRjb2RlbG9ja19jb2RlaWk9JGNvZGVsb2NrX3NraXAzOw0KICAgICRjb2RlbG9ja19jb2RlaWk9Z3pkZWZsYXRlKCRjb2RlbG9ja19jb2RlaWkpOyAkY29kZWxvY2tfY29kZWlpPWJhc2U2NF9lbmNvZGUoJGNvZGVsb2NrX2NvZGVpaSk7D$ogICAgZm9yICgkY29kZWxvY2tfaWk9MDsgJGNvZGVsb2NrX2lpIDwgM(A7ICRjb2RlbG9ja19paSsrKSB7D$ogICAgJGNvZGVsb2NrX2NvZGVpa(0iZXZhbChnemluZmxh)GUoYmFzZ(Y0X2RlY29kZSgnIi4kY29kZWxvY2tfY29kZWlpLiInKSkpOyI7D$ogICAgJGNvZGVsb2NrX2NvZGVpa(1nemRlZmxh)GUoJGNvZGVsb2NrX2NvZGVpaSk7ICRjb2RlbG9ja19jb2RlaWk9YmFzZ(Y0X2VuY29kZSgkY29kZWxvY2tfY29kZWlpK(sNCiAgICB9D$ogICAgJGNvZGVsb2NrX3NraXAzPSRjb2RlbG9ja19jb2RlaWk7D$ogICAgfSBlbHNlIHsNCiAgICAkY29kZWxvY2tfc2tpcDM9YmFzZ(Y0X2VuY29kZSgkY29kZWxvY2tfc2tpcDMpOw0KICAgIH0NCg0KICAgICRjb2RlbG9ja19uc2tpcDM9JGNvZGVsb2NrX3NraXAzOw0KaWYgKCRjb2RlbG9ja191c2V6bGliID09ICJeIikgew0KICAgICRjb2RlbG9ja19ubm5za2lwMz0iaWYgKCIuIi$iLiJjb2RlbG9ja19maWxlID09ICcnKSB7IGVjaG8gXCI8Zm9u)CBmYWNlPS)2ZXJkYW5hJyBzaXplPScyJz48YnIgLz48Yj5FcnJvciE8L2I+IFlv)SBjYW5ub3$gcnVuIGNvZGVsb2NrIGRpcmVj)Gx5Li4uPC9mb250PlwiOyBkaWUoK(sgfSBlbHNlIHt9ICIuJGNvZGVsb2NrX25uc2tpcDMuIi$iLiJjb2RlbG9ja19sb2NrPVwiJGNvZGVsb2NrX25za2lwM1wiOyBl)mFsKG)6aW5mbGF0ZShiYXNlNjRfZGVjb2RlKCIuIi$iLiJjb2RlbG9ja19sb2NrKSkpOyByZXR1cm47ID8iLmNocig2MikuY2hyKDEzKS5jaHIoM(ApOw0KICAgIH0gZWxzZSB7D$ogICAgJGNvZGVsb2NrX25ubnNraXAzPSJpZiAoIi4iJCIuImNvZGVsb2NrX2ZpbGUgP(0gJycpIHsgZWNobyBcIjxmb250IGZhY2U9J3ZlcmRhbmEnIHNpemU9JzInPjxiciAvPjxiPkVycm9yI(wvYj4gWW91IGNhbm5v)CBy)W4gY29kZWxvY2sgZGlyZWN0bHkuLi48L2Zvbn$+XCI7IGRpZSgpOyB9IGVsc2Uge30gIi4kY29kZWxvY2tfbm5za2lwMy4iJCIuImNvZGVsb2NrX2xvY2s9XCIkY29kZWxvY2tfbnNraXAzXCI7IGV2YWwoYmFzZ(Y0X2RlY29kZSgiLiIkIi4iY29kZWxvY2tfbG9jaykpOyByZXR1cm47ID8iLmNocig2MikuY2hyKDEzKS5jaHIoM(ApOw0KICAgIH0NCiAgICAkY29kZWxvY2tfZmRh)GE9JGNvZGVsb2NrX3NraXAuJGNvZGVsb2NrX3NraXAyLiRjb2RlbG9ja19ubm5za2lwMy4kY29kZWxvY2tfZXhlYzI7D$ogICAg$GNobW9kKCIkY29kZWxvY2tfZW5jIiwgMDc3Nyk7D$ogICAgJGNvZGVsb2NrX2ZwMiA9IEBmb3BlbigiJGNvZGVsb2NrX2VuYyIsICJ3YiIpOw0KICAgIGlmICgkY29kZWxvY2tfZnAyKSB7IH0gZWxzZSB7IGVjaG8gIjxiciAvPjxiPkVycm9yI(wvYj4gVGhlcmUgaXMgYSB3cml0ZSBwZXJtaXNzaW9uIHByb2JsZW0uICBZb3UgbmVlZCB0byBDSE1PRCB0aGUgZmlsZ(ogPGI+JGNvZGVsb2NrX2VuYzwvYj4g)G8gNzc1LiI7IGRpZSgpOyB9D$ogICAg$GZ3cml0ZSgkY29kZWxvY2tfZnAyLCAkY29kZWxvY2tfZmRh)GEpOw0KICAgIEBmY2xvc2UgKCRjb2RlbG9ja19mcDIpOw0KICAgIEBjaG1vZCgiJGNvZGVsb2NrX2VuYyIsIDA3NzcpOw0KICAgIH0gZWxzZSB7D$ogICAgaWYgKHN1YnN0cigkY29kZWxvY2tfZXhwLCA4LCAxKSA9PSAiKiIpIHsNCiAgICAkY29kZWxvY2tfYWN0aXZlX2V4cGlye(1z)WJz)HIoJGNvZGVsb2NrX2V4cCwgMCwgOCk7D$ogICAgfSBlbHNlIHsgJGNvZGVsb2NrX2Fj)Gl2ZV9leHBpcnk9Y29kZWxvY2tfZGVjX2lu)CgkY29kZWxvY2tfYWN0aXZlX2V4cGlyeSwiIik7IH0NCiAgICB9D$ogICAgaWYgKCRjb2RlbG9ja19hY3Rp)mVfZXhwaXJ5IDw9ICRjb2RlbG9ja190b2RheSkgew0KICAgIGVjaG8gIjxiciAvPjxiciAvPiIuJGNvZGVsb2NrX2V4cGlyeV9tZXNzYW)lOw0KICAgIGVjaG8gIjxiciAvPkV4cGlyeSBkYXRlOiAiLiRjb2RlbG9ja19hY3Rp)mVfZXhwaXJ5Ow0KICAgIGRpZSgpOw0KICAgIH0gZWxzZSB7f$0Kf$0KD$ppZiAoJGNvZGVsb2NrX2lwID09ICIiKSB7D$p9IGVsc2Ugew0KICAgICRjb2RlbG9ja19pcD1z)HJfcmVwbGFjZSgiaHR0Ii4icDovLyIsICIiLCAkY29kZWxvY2tfaXApOw0KICAgICRjb2RlbG9ja19jaGVja19pcD0kSFRUUF9(RVJWRVJfVkFSU1siU0VSVkVSX0FERFIiX(sNCiAgICAkY29kZWxvY2tfaG9z)D0kSFRUUF9(RVJWRVJfVkFSU1siU0VSVkVSX05B(UUiX(sNCiAgICBpZigkY29kZWxvY2tfY2hlY2tfaXA9PSIiKSB7ICRjb2RlbG9ja19jaGVja19pcD0kX1NFUlZFUlsiU0VSVkVSX0FERFIiX(sgf$0KICAgIGlmKCRjb2RlbG9ja19ob3N0P(0iIikgeyAkY29kZWxvY2tfaG9z)D0kX1NFUlZFUlsiU0VSVkVSX05B(UUiX(sgf$0KICAgICRjb2RlbG9ja19pcD1z)HJfcmVwbGFjZSgiICIsICIiLCAkY29kZWxvY2tfaXApOw0KICAgICRjb2RlbG9ja19tYXg9c3Vic3RyX2Nv)W50KCRjb2RlbG9ja19pcCwgIiwiK(sNCiAgICAkY29kZWxvY2tfY29tcF9pcD1leHBsb2RlKCIsIiwkY29kZWxvY2tfaXApOw0KICAgIGZvcigkY29kZWxvY2tfa(0wOyRjb2RlbG9ja19pPCgkY29kZWxvY2tfbWF4KzEpOyRjb2RlbG9ja19pKyspew0KICAgICAgICBpZiAocHJlZ19tYXRjaCgiLyRjb2RlbG9ja19jb21wX2lwWyRjb2RlbG9ja19pXS9pIiwgJGNvZGVsb2NrX2NoZWNrX2lwKSkgeyAkY29kZWxvY2tfZj0ieSI7IH0gZWxzZSB7f$0KICAgICAgICBpZiAocHJlZ19tYXRjaCgiLyRjb2RlbG9ja19jb21wX2lwWyRjb2RlbG9ja19pXS9pIiwgJGNvZGVsb2NrX2hvc3$pKSB7ICRjb2RlbG9ja19mPSJ5IjsgfSBlbHNlIHt9D$ogICAgf$0KICAgIGlmICgkY29kZWxvY2tfZiA9PSAieSIpIHsgfSBlbHNlIHsgD$ogICAgZWNobyAiPGZvbn$gZmFjZ(1cInZlcmRhbmFcIiBzaXplPVwiMlwiPjxiciAvPjxiPkVycm9yI(wvYj4gWW91ciBJUCBBZGRyZXNzIG9yIEhvc3RuYW1lIGRvZXMgbm90IG1h)GNoIHRoZSByZXF1aXJlZCBJUDwvZm9u)D48YnIgLz48YnIgLz4iOw0KICAgIGVjaG8gIlRoaXMgc2NyaXB0IGlzIHJlc3RyaWN0ZW$g)G8g)GhlIEl$IG9yIFVS(DogIjsgZm9yKCRjb2RlbG9ja19pP(A7JGNvZGVsb2NrX2k8KCRjb2RlbG9ja19tYXgrMSk7JGNvZGVsb2NrX2krKyl7IGVjaG8iJGNvZGVsb2NrX2NvbXBfaXBbJGNvZGVsb2NrX2l)LCAiOyB9IGVjaG8iPGJyIC8+PGJyIC8+WW91ciBJUDogJGNvZGVsb2NrX2NoZWNrX2lwIGhvc3$6ICRjb2RlbG9ja19ob3N0IjsNCiAgICBkaWUoK(sgf$0Kf$0KD$ppZiAoJGNvZGVsb2NrX2Fj)Gl2ZV9rZXkgP(0gImNvZGVsb2NrX2Fj)Gl2ZV9rZXlf)GV4)CIpIHsgJGNvZGVsb2NrX2Fj)Gl2ZV9rZXk9JGNvZGVsb2NrX3VubG9jazsgfSBlbHNlIHt9D$oNCiRjb2RlbG9ja19hY3Rfc3ViZGlyPSRjb2RlbG9ja19maWxlZDsNCg0KJGNvZGVsb2NrX25l)2NvZGU9IiI7D$okY29kZWxvY2tfaHRtbD0iIjsNCiRjb2RlbG9ja19o)G1sX25l)z0iIjsNCkB1bmxpbmsoJGNvZGVsb2NrX3RtcGZuYW1lK(sgD$okY29kZWxvY2tfY3)k)GVtcD1nZXRj)2$oK(sNCiRjb2RlbG9ja19hY3Rfc3ViZGlyPSRjb2RlbG9ja19maWxlZDsNCg0KLy8gVGhpcyBjYXVzZXMgaW5jbHVkZSBwcm9ibGVtcy4uLg0KI0BjaGRpcigkY29kZWxvY2tfYWN0X3N1YmRpcik7D$oNCiRjb2RlbG9ja19hY3$9JGNvZGVsb2NrX2Fj)CsxOw0KD$pvYl9z)GFy)CgpOyBwaHBpbmZvKElORk9fR0VORVJB(Ck7ICRjb2RlbG9ja19vcF9z)HJpbmcgPSBvYl9nZXRfY29u)GVu)HMoK(sNCm9iX2VuZF9jbGVhbigpOyBpZiAoc3Ryc3RyKCRjb2RlbG9ja19vcF9z)HJpbmcsICJpbmRv)3MiKSkgeyAkY29kZWxvY2tf)19vcD0ieSI7IH0gD$ppZiAoJGNvZGVsb2NrX3)fb3AgP(0gInkiKSB7ICRjb2RlbG9ja19zZXBfc3RyPSI7IjsgfSBlbHNlIHsgJGNvZGVsb2NrX3NlcF9z)HI9IjoiOyB9D$okaW5jbHVkZV9j)XJyX2Rpcj0kY29kZWxvY2tfZmlsZW$7D$okaW5jbHVkZV9kaXJf)3Jp)GU9$GluaV9nZX$oJ2luY2x1ZGVfcGF0aCcpOyAkaW5jbHVkZV9kaXJf)3Jp)GU9JGluY2x1ZGVfZGlyX3)yaXRlLiRjb2RlbG9ja19zZXBfc3RyLiRpbmNs)WRlX2N1cnJfZGlyOw0K$GluaV9zZX$oJ2luY2x1ZGVfcGF0aCcsICRpbmNs)WRlX2Rpcl93cml0ZSk7D$oNCiRjb2RlbG9ja19pbmNs)WRlX2FkZHJlc3M9c3RyX3JlcGxhY2UoJGNvZGVsb2NrX2N3ZHRlbXAsICIiLCAkY29kZWxvY2tfZmlsZW$pOw0KaWYoJGNvZGVsb2NrX2luY2x1ZGVfYWRkcmVzcz09IiIpIHt9IGVsc2UgeyAkY29kZWxvY2tfaW5jbHVkZV9hZGRyZXNzLj0iLyI7IH0NCg0K$HVubGluaygkY29kZWxvY2tf)G1wZm5hbWUpOw0KIyAgIGlmKCRjb2RlbG9ja19hY3$gPj0xKSB7IEBjaGRpcigkY29kZWxvY2tfaW5jbHVkZV9hZGRyZXNzK(sgfSBlbHNlIHsgY2hkaXIoJGNvZGVsb2NrX2ZpbGVkK(sgf$0KIyAgIEB1bmxpbmsoJGNvZGVsb2NrX3RtcGZuYW1lK(sgD$oNCm)sb2JhbCAkY29kZWxvY2tfZml4cGF0aDsNCmlmKCRjb2RlbG9ja19maXhwYXRoP(0iIil7D$ogICAgJGNvZGVsb2Nrb3BlbnRoaXNmaWxlPSRjb2RlbG9ja19maWxlZC4iLyIuJGNvZGVsb2NrX2ZpbGU7D$p9ZWxzZXsNCiAgICAkY29kZWxvY2tvcGVu)Ghpc2ZpbGU9JGNvZGVsb2NrX2ZpeHBh)GguIi8iLiRjb2RlbG9ja19maWxlOw0Kf$0KICAgICRjb2RlbG9ja19mcD1AZm9wZW4oJGNvZGVsb2Nrb3BlbnRoaXNmaWxlLCAicmIiK(sNCmlmKCRjb2RlbG9ja19mcCl7D$p9ZWxzZXsNCiR2)GNvZGVsb2NrX2ZpbGUgPSBz)HJfcmVwbGFjZSgnXFwnLCAnLycsIF9fRklMRV9fK(sNCiRjb2RlbG9ja19pbmNs)WRlZF9kaXJlY3RvcnkgPSBz)WJz)HIoJHZ0Y29kZWxvY2tfZmlsZSwgMCwgc3RycnBvcygk)nRjb2RlbG9ja19maWxlLCAnLycpK(sNCiRjb2RlbG9ja29wZW50aGlzZmlsZ(0kY29kZWxvY2tfaW5jbHVkZWRfZGlyZWN0b3J5LiIvIi4k)nRjb2RlbG9ja19maWxlOw0KJGNvZGVsb2NrX2ZwPUBmb3BlbigkY29kZWxvY2tvcGVu)Ghpc2ZpbGUsICJyYiIpOw0Kf$0KICAgICRjb2RlbG9ja19pZ249$GZnZXRzKCRjb2RlbG9ja19mcCwgODE5Mik7D$ogICAgJGNvZGVsb2NrX2lnbjI9$GZnZXRzKCRjb2RlbG9ja19mcCwgODE5Mik7D$ogICAgJGNvZGVsb2NrX3NraXA9$GZnZXRzKCRjb2RlbG9ja19mcCwgNjU1MzYpOw0KICAgICRjb2RlbG9ja19kYXRhPUBmcmVhZCgkY29kZWxvY2tfZnAsIEBmaWxlc2l6ZSgiJGNvZGVsb2Nrb3BlbnRoaXNmaWxlIikpOw0KICAgIEBmY2xvc2UgKCRjb2RlbG9ja19mcCk7D$ogICAgaWYgKCRjb2RlbG9ja191c2V6bGliID09ICJeIikgew0KICAgICAgICAkY29kZWxvY2tfZGF0Y(1iYXNlNjRfZGVjb2RlKCRjb2RlbG9ja19kYXRhK(sNCiAgICAgICAgJGNvZGVsb2NrX2Rh)GE9Z3ppbmZsYXRlKCRjb2RlbG9ja19kYXRhK(sNCiAgICB9IGVsc2Uge30NCg0KICAgICRjb2RlbG9ja19wYW)lPWNvZGVsb2NrX2RlY19pbn$oJGNvZGVsb2NrX2Rh)GEsJGNvZGVsb2NrX2Fj)Gl2ZV9rZXkpOw0KD$ogICAgaWYgKHByZW)fbWF0Y2goIi9zZXNzaW8iLiJuX3Nl)F9zYXZlX2hhbmRsZXIoKS9pIiwgJGNvZGVsb2NrX3BhZ2UpKSB7D$ogICAgJGNvZGVsb2NrX2ZpcnN0PWNocig2MCkuIj9waHAg$G9iX3N0YXJ0KCk7IEBzZXNzaW8iLiJuX3Nl)F9zYXZlX2hhbmRsZXIoK(sgPyIuY2hyKDYyKS5jaHIoM(MpLmNocigxMCk7D$ogICAgJGNvZGVsb2NrX3BhZ2U9c3RyX3JlcGxhY2UoInNlc3NpbyIuIm5fc2V0X3Nh)mVfaGFuZGxlcigpIiwgIiMiLCAkY29kZWxvY2tfcGFnZSk7D$ogICAgJGNvZGVsb2NrX3BhZ2U9JGNvZGVsb2NrX2ZpcnN0LiRjb2RlbG9ja19wYW)lOw0KICAgIH0gZWxzZSB7f$0KD$ojICAgaWYoJGNvZGVsb2NrX2VuY2Jyb3)zZXIgP(0gIl4iIEFORCAkY29kZWxvY2tfaW5jX3Ry)WUgI(0gInkiKSB7D$ogICAgaWYoJGNvZGVsb2NrX2VuY2Jyb3)zZXIgP(0gIl4iKSB7D$ogICAgJGNvZGVsb2NrX2h0bWw9IiI7D$ogICAgJGNvZGVsb2NrX3NhZmVtb2RlPUBpbmlfZ2V0ICgnc2FmZV9tb2RlJyk7IA0KIyAgIEBjaGRpcigkY29kZWxvY2tfYWN0X2Rpcik7D$ogICAg$HVubGluaygkY29kZWxvY2tf)G1wZm5hbWUpOw0KICAgIGlmIChmaWxlX2V4aXN0cygi)GVtcCIpKSB7D$ogICAgJGNvZGVsb2NrX2ZpbGV0bXBzbmFtZ(1z)WJz)HIoJGNvZGVsb2NrX2ZpbGUsIDAsIDMpOw0KIyAgICRjb2RlbG9ja190bXBmbmFtZ(0i)GVtcC8kY29kZWxvY2tfYWN0LmNkayI7D$ogICAgJGNvZGVsb2NrX3RtcGZuYW1lPUB0ZW1wbmFtKCIv)G1wIiwiIik7D$ogICAgJGNvZGVsb2NrX2ZwMyA9IEBmb3BlbigkY29kZWxvY2tf)G1wZm5hbWUsIn)iIik7D$ogICAgfSBlbHNlIHsNCiMgICAkY29kZWxvY2tf)G1wZm5hbWU9IiRjb2RlbG9ja19hY3$uY2RrIjsNCiAgICAkY29kZWxvY2tf)G1wZm5hbWU9$HRlbXBuYW0oIi90bXAiLCIiK(sNCiAgICAkY29kZWxvY2tfZnAzID0g$GZvcGVuKCRjb2RlbG9ja190bXBmbmFtZSwi)2IiK(sNCiAgICB9D$ogICAgaWYgKCRjb2RlbG9ja19mcDMpIHsgfSBlbHNlIHsNCiAgICAgICAgaWYgKCRjb2RlbG9ja19zYWZlbW9kZSA9PSAiMSIpIHsgfSBlbHNlIHsNCiMgICAgICAgJGNvZGVsb2NrX3RtcGZuYW1lPSIkY29kZWxvY2tfYWN0LmNkayI7D$ogICAgICAgICRjb2RlbG9ja190bXBmbmFtZ(1A)GVtcG5hbSgiL3RtcCIsIiIpOw0KICAgICAgICAkY29kZWxvY2tfZnAzPUBmb3BlbigkY29kZWxvY2tf)G1wZm5hbWUsIn)iIik7D$ogICAgICAgIH0NCiAgICB9D$ogICAgb2Jfc3Rhcn$oK(sNCiAgICBpZiAocHJlZ19tYXRjaCgiL2RpIi4iZS9pIiwkY29kZWxvY2tfcGFnZSkg(1IgcHJlZ19tYXRjaCgiL2V4aSIuIn$vaSIsJGNvZGVsb2NrX3BhZ2UpKSB7IEBmY2xvc2UoJGNvZGVsb2NrX2ZwMyk7ICRjb2RlbG9ja19mcDM9IiI7D$ogICAgIEB1bmxpbmsoJGNvZGVsb2NrX3RtcGZuYW1lK(sNCiAgICAgfSBlbHNlIHt9D$ogICAgaWYoJGNvZGVsb2NrX2ZwMykgew0KICAgIEBm)3Jp)GUoJGNvZGVsb2NrX2ZwMywgJGNvZGVsb2NrX3BhZ2UpOw0KICAgIEBmY2xvc2UoJGNvZGVsb2NrX2ZwMyk7IGluY2x1ZGUoJGNvZGVsb2NrX3RtcGZuYW1lK(sNCiAgICBA)W5saW5rKCRjb2RlbG9ja190bXBmbmFtZSk7IA0KIyAgIGlmICgkY29kZWxvY2tfYWN0ID49MSkgeyBAY2hkaXIoJGNvZGVsb2NrX2luY2x1ZGVfYWRkcmVzcyk7IH0gZWxzZSB7IEBjaGRpcigkY29kZWxvY2tfZmlsZW$pOyB9D$ogICAgJGNvZGVsb2NrX3BhZ2U9IiI7D$ogICAgfSBlbHNlIHsNCiAgICBl)mFsKCI/Ii5jaHIoNjIpLiRjb2RlbG9ja19wYW)lLmNocig2MCkuIj8iK(sNCiMgICBpZiAoJGNvZGVsb2NrX2Fj)CA+P(EpIHsg$GNoZGlyKCRjb2RlbG9ja19pbmNs)WRlX2FkZHJlc3MpOyB9IGVsc2UgeyBAY2hkaXIoJGNvZGVsb2NrX2ZpbGVkK(sgf$0KICAgIH0NCiAgICAkY29kZWxvY2tfYWxsID0gb2JfZ2V0X2NvbnRlbnRzKCk7D$ogICAgb2JfZW5kX2NsZWFuKCk7D$ogICAgfSBlbHNlIHt9D$oNCiAgICBpZigkY29kZWxvY2tfZW5jYnJv)3NlciA9PSAiXiIpIHsNCiAgICAkY29kZWxvY2tfaHRtbF9uZXc9IiI7D$ogICAgJGNvZGVsb2NrX2h0bWw9ICRjb2RlbG9ja19hbGw7D$ogICAgJGNvZGVsb2NrX2xlbm)0aCA9IHN0cmxlbigkY29kZWxvY2tfaHRtbCk7D$ogICAgJGNvZGVsb2NrX25l)2NvZGU9IiI7D$ogICAgZm9yICgkY29kZWxvY2tfZ289MDsgJGNvZGVsb2NrX2)vIDwgJGNvZGVsb2NrX2xlbm)0aDsgJGNvZGVsb2NrX2)vKyspIHsNCiAgICAkY29kZWxvY2tfY3Vycl9z)HJpbmc9JGNvZGVsb2NrX2h0bWxbJGNvZGVsb2NrX2)vX(sNCiAgICBpZiAob3JkKCRjb2RlbG9ja19j)XJyX3N0cmluZykgPCAxMjgpIHsgJGNvZGVsb2NrX2h0bWxfbmV3Lj0kY29kZWxvY2tfY3Vycl9z)HJpbmc7IH0gZWxzZSB7D$ogICAgJGNvZGVsb2NrX2h0bWxfbmV3Lj0iJiMiLm9yZCgkY29kZWxvY2tfY3Vycl9z)HJpbmcpLiI7IjsNCiAgICB9IH0NCiAgICAkY29kZWxvY2tfZGlzYWJsZXJpZ2h0Y2xpY2s9Im4iOw0KICAgICRjb2RlbG9ja19o)G1sPSRjb2RlbG9ja19o)G1sX25l)zsNCiAgICBpZiAoJGNvZGVsb2NrX2Rpc2FibGVyaW)o)GNsaWNrP(0ieSIpIHsNCiAgICAkY29kZWxvY2tfaHRtbC49IjxzY3JpcH$gbGFuZ3VhZ2U9SmF2YVNjcmlw)D52YXIgbWVzc2FnZ(1cIlRoaXMgY29kZSBpcyBwcm90ZWN0ZW$hXCI7IGZ1bmN0aW9uIGNsaWNrSUU0KCl7IGlmIChl)mVu)C5i)XR0b249P(IpeyBhbGVy)ChtZXNzYW)lK(sgcmV0)XJuIGZhbHNlOyB9IH0gZnVuY3Rpb24gY2xpY2tOUz$oZSl7IGlmIChkb2N1bWVu)C5sYXllcnN8fGRvY3VtZW50Lm)l)EVsZW1lbnRCeUlkJiYhZG9j)W1lbn$uYWxsKXsgaWYgKGUu)2hpY2g9P(J8fGUu)2hpY2g9P(MpeyBhbGVy)ChtZXNzYW)lK(sgcmV0)XJuIGZhbHNlOyB9IH0gfSBpZiAoZG9j)W1lbn$ubGF5ZXJzKXsgZG9j)W1lbn$uY2Fw)HVyZUV2ZW50cyhF)mVu)C5N(1V(RURPV04pOyBkb2N1bWVu)C5vbm1v)XNlZG93bj1jbGlja05(NDsgfSBlbHNlIGlmIChkb2N1bWVu)C5hbGwmJiFkb2N1bWVu)C5nZXRFbGVtZW50$nlJZCl7IGRvY3VtZW50Lm9ubW91c2Vkb3)uPWNsaWNrSUU0OyB9IGRvY3VtZW50Lm9uY29u)GV4)G1lbnU9bmV3IEZ1bmN0aW9uKFwiYWxlcn$obWVzc2FnZSk7cmV0)XJuIGZhbHNlXCIpIDwvc2NyaXB0PiI7D$ogICAgfSBlbHNlIHt9D$ogICAgJGNvZGVsb2NrX2xlbm)0aCA9IHN0cmxlbigkY29kZWxvY2tfaHRtbCk7D$ogICAgJGNvZGVsb2NrX250X2g9YmFzZ(Y0X2VuY29kZSgkY29kZWxvY2tfaHRtbCk7D$ogICAgJGNvZGVsb2NrX250X2g9c3RyX3JlcGxhY2UoIkNBZ0kiLCAiKiIsICRjb2RlbG9ja19u)F9oK(sNCiAgICAkY29kZWxvY2tfbnRfaD1z)HJfcmVwbGFjZSgiVzUiLCAiISIsICRjb2RlbG9ja19u)F9oK(sNCiAgICAkY29kZWxvY2tfbnRfaD1z)HJfcmVwbGFjZSgi$0FnIiwgIkAiLCAkY29kZWxvY2tfbnRfaCk7D$ogICAgJGNvZGVsb2NrX2JvZHk9InZhciUyMGNvZGVsb2NrX2JhcyUzRCUyN0FC$0RFRk)ISUpL(E1O(1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1)n)4eXowM(IzNDU2Nzg5J(JCJ(JGJ(I3J(NCJ(IwZnVuY3Rpb24lMjBjb2RlbG9ja19kZWMlMjhz)HIlMjklMjAlN0IlMjBz)HIlM0Rz)HIuc3BsaX$lMjglMjclNDAlMjclMjkuam9pbiUyOCUyN0NBZyUyNyUyOSUz$iUyMHN0ciUzRHN0ci5zcGxp)CUyOCUyNyUyMSUyNyUyOS5qb2luJ(I4J(I3VzUlMjclMjklM0IlMjBz)HIlM0Rz)HIuc3BsaX$lMjglMjclMkElMjclMjkuam9pbiUyOCUyN0NBZ0klMjclMjklM0IlMjB2YXIlMjBi)CUy$yUyMGR0J(IwJ(NEJ(IwJ(I3J(I3J(NCJ(IwZm9yJ(I4aSUzRDAlM0IlMjBpJ(NDc3RyLmxlbm)0aCUz$iUyMGklMjAlMkIlM0$lMjA0J(I5J(IwJ()CJ(IwYn$lMjAlM0$lMjAlMjhjb2RlbG9ja19iYXMuaW5kZXhPZiUyOHN0ci5jaGFy$X$lMjhpJ(I5J(I5J(IwJ(I2J(IwMHhmZiUyOSUyMCUz$yUz$zE4J(IwJ()DJ(IwJ(I4Y29kZWxvY2tfYmFzLmluZGV4(2YlMjhz)HIuY2hhckF0J(I4aSUyMCUy$jElMjklMjklMjAlMjYlMjAweGZmJ(I5J(IwJ(NDJ(NDM(IlMjAlN0MlMjAlMjhjb2RlbG9ja19iYXMuaW5kZXhPZiUyOHN0ci5jaGFy$X$lMjhpJ(IwJ(JCMiUyOSUyOSUyMCUyNiUyMDB4ZmYlMjklMjAlM0MlM0MlMjA2J(IwJ()DJ(IwY29kZWxvY2tfYmFzLmluZGV4(2YlMjhz)HIuY2hhckF0J(I4aSUyMCUy$jMlMjklMjklMjAlMjYlMjAweGZmJ(NCJ(IwZH$lMjAlMkIlM0$lMjB()HJpbmcuZnJvbUNoYXJDb2RlJ(I4J(I4Yn$lMjAlMjYlMjAweGZmMDAwMCUyOSUyMCUzRSUzR(E2J(JDJ(IwJ(I4Yn$lMjAlMjYlMjAweGZmMDAlMjklMjAlM0UlM0U4J(JDJ(IwYn$lMjAlMjYlMjAweGZmJ(I5J(NCJ(IwJ()EJ(IwaWYlMjhz)HIuY2hhckNvZGVB)CUyOGklMjAtMiUyOSUyMCUzRCUzRCUyMDYxJ(I5J(IwJ()CJ(IwcmV0)XJuJ(I4ZH$uc3Vic3RyaW5nJ(I4MCUy$yUyMGR0Lmxlbm)0aCUyMC0yJ(I5J(I5J(NCJ(IwJ()EJ(IwZWxzZSUyMGlmJ(I4c3RyLmNoYXJDb2Rl$X$lMjhpJ(IwL(ElMjklMjAlM0$lM0$lMjA2MSUyOSUyMCU3$iUyMHJl)HVybiUyOGR0LnN1YnN0cmluZyUyODAlMkMlMjBk)C5sZW5n)GglMjAtMSUyOSUyOSUz$iUyMCU3RCUyMGVsc2UlMjAlN0JyZXR1cm4lMjhk)CUyOSU3RCUz$iUyMCU3RCI7D$ogICAgJGNvZGVsb2NrX25l)2NvZGUuPSAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNjcmlw)CBsYW5n)WFnZ(1KYXZhU2NyaXB0PmV2YWwo)W5lc2NhcGUoJyRjb2RlbG9ja19ib2R5JykpOyBkb2N1bWVu)C53cml0ZShjb2RlbG9ja19kZWMoJyRjb2RlbG9ja19u)F9oJykpOyA8L3Njcmlw)D4iLmNocigxMykuY2hyKDEwK(sNCiAgICBlY2hvICRjb2RlbG9ja19uZX)jb2RlOw0KICAgIHJl)HVybjsNCiAgICB9IGVsc2Ugew0KIyAgIEBjaGRpcigkY29kZWxvY2tfYWN0X2Rpcik7D$ogICAg$HVubGluaygkY29kZWxvY2tf)G1wZm5hbWUpOw0KICAgICRjb2RlbG9ja19zYWZlbW9kZ(1AaW5pX2)l)CAoJ3NhZmVfbW9kZScpOyANCiAgICBpZiAoZmlsZV9leGlz)HMoInRlbXAiKSkgew0KICAgICRjb2RlbG9ja19maWxl)G1wc25hbWU9c3Vic3RyKCRjb2RlbG9ja19maWxlLCAwLCAzK(sNCiMgICAkY29kZWxvY2tf)G1wZm5hbWU9InRlbXAvJGNvZGVsb2NrX2Fj)C5jZGsiOyANCiAgICAkY29kZWxvY2tf)G1wZm5hbWU9$HRlbXBuYW0oIi90bXAiLCIiK(sNCiAgICAkY29kZWxvY2tfZnAzID0g$GZvcGVuKCRjb2RlbG9ja190bXBmbmFtZSwi)2IiK(sNCiAgICB9IGVsc2Ugew0KIyAgICRjb2RlbG9ja190bXBmbmFtZ(0iJGNvZGVsb2NrX2Fj)C5jZGsiOw0KICAgICRjb2RlbG9ja190bXBmbmFtZ(1A)GVtcG5hbSgiL3RtcCIsIiIpOw0KICAgICAkY29kZWxvY2tfZnAzID0g$GZvcGVuKCRjb2RlbG9ja190bXBmbmFtZSwi)2IiK(sNCiAgICB9D$ogICAgaWYgKCRjb2RlbG9ja19mcDMpIHsgfSBlbHNlIHsNCiAgICAgICAgaWYgKCRjb2RlbG9ja19zYWZlbW9kZSA9PSAiMSIpIHsgfSBlbHNlIHsNCiMgICAgICAgJGNvZGVsb2NrX3RtcGZuYW1lPSIkY29kZWxvY2tfYWN0LmNkayI7D$ogICAgICAgICRjb2RlbG9ja190bXBmbmFtZ(1A)GVtcG5hbSgiL3RtcCIsIiIpOw0KICAgICAgICAgJGNvZGVsb2NrX2ZwMz1AZm9wZW4oJGNvZGVsb2NrX3RtcGZuYW1lLCJ3YiIpOw0KICAgICAgICB9D$ogICAgf$0KICAgIGlmIChwcmVnX21h)GNoKCIvZGkiLiJlL2kiLCRjb2RlbG9ja19wYW)lKSBPUiBwcmVnX21h)GNoKCIvZXhpIi4i)C9pIiwkY29kZWxvY2tfcGFnZSkpIHsg$GZjbG9zZSgkY29kZWxvY2tfZnAzK(sgJGNvZGVsb2NrX2ZwMz0iIjsNCiBA)W5saW5rKCRjb2RlbG9ja190bXBmbmFtZSk7IA0KfSBlbHNlIHt9D$ogICAgaWYoJGNvZGVsb2NrX2ZwMykgew0KICAgIEBm)3Jp)GUoJGNvZGVsb2NrX2ZwMywgJGNvZGVsb2NrX3BhZ2UpOyBAZmNsb3NlKCRjb2RlbG9ja19mcDMpOyBpbmNs)WRlKCRjb2RlbG9ja190bXBmbmFtZSk7D$oNCiAgICBA)W5saW5rKCRjb2RlbG9ja190bXBmbmFtZSk7IA0KIyAgIGlmICgkY29kZWxvY2tfYWN0ID49MSkgeyBAY2hkaXIoJGNvZGVsb2NrX2luY2x1ZGVfYWRkcmVzcyk7IEB1bmxpbmsoJGNvZGVsb2NrX3RtcGZuYW1lK(sgfSBlbHNlIHsg$GNoZGlyKCRjb2RlbG9ja19maWxlZCk7IEB1bmxpbmsoJGNvZGVsb2NrX3RtcGZuYW1lK(sgf$0KICAgICRjb2RlbG9ja19wYW)lPSIiOw0KICAgIH0gZWxzZSB7D$ogICAgZXZhbCgiPyIuY2hyKDYyKS4kY29kZWxvY2tfcGFnZS5jaHIoNjApLiI/Iik7D$ojICAgaWYgKCRjb2RlbG9ja19hY3$gPj0xKSB7IEBjaGRpcigkY29kZWxvY2tfaW5jbHVkZV9hZGRyZXNzK(sg$HVubGluaygkY29kZWxvY2tf)G1wZm5hbWUpOyB9IGVsc2UgeyBAY2hkaXIoJGNvZGVsb2NrX2ZpbGVkK(sg$HVubGluaygkY29kZWxvY2tf)G1wZm5hbWUpOyB9D$ogICAgf$0KICAgIHJl)HVybjsNCiAgICB9

Function Calls

dirname 1
base64_decode 1

Variables

$codelock_lock ICRjb2RlbG9ja19hY3RpdmVfa2V5PSJBN2YjeF42NypyJmxAbygpbSI7IEBl..
$codelock_rfiled /

Stats

MD5 f0c5aa8233e37a205d770d2f4c476037
Eval Count 1
Decode Time 102 ms