Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php /* ===================================================== DataLife Engine - by So..
Decoded Output download
?><?php
/*
=====================================================
DataLife Engine - by SoftNews Media Group
-----------------------------------------------------
http://dle-news.ru/
-----------------------------------------------------
Copyright (c) 2004-2017 SoftNews Media Group
=====================================================
=====================================================
: addcomments.php
-----------------------------------------------------
:
=====================================================
*/
if( ! defined( 'DATALIFEENGINE' ) OR !$config['allow_comments'] ) {
die( "Hacking attempt!" );
}
require_once ENGINE_DIR . '/classes/parse.class.php';
if( $config['allow_comments_wysiwyg'] > 0 ) {
$allowed_tags = array ('div[style|class]', 'span[style|class]', 'p[style|class]', 'br', 'strong', 'em', 'ul', 'li', 'ol', 'b', 'u', 'i', 's' );
if( $user_group[$member_id['user_group']]['allow_url'] ) $allowed_tags[] = 'a[href|target|style|class|title]';
if( $user_group[$member_id['user_group']]['allow_image'] ) $allowed_tags[] = 'img[style|class|src|alt|width|height]';
$parse = new ParseFilter( $allowed_tags );
} else {
$parse = new ParseFilter();
}
$parse->safe_mode = true;
$parse->remove_html = false;
$parse->allow_url = $user_group[$member_id['user_group']]['allow_url'];
$parse->allow_image = $user_group[$member_id['user_group']]['allow_image'];
$_TIME = time();
$_IP = get_ip();
$name = $db->safesql( htmlspecialchars(strip_tags( trim( $_POST['name'] ) ), ENT_QUOTES, $config['charset'] ) );
$not_allow_symbol = array (""", "`", " ", '
', '
', "
", "
", '\', ",", "/", "", "#", ";", ":", "~", "[", "]", "{", "}", ")", "(", "*", "^", "%", "$", "<", ">", "?", "!", '"', "'", " ", "&" );
$mail = $db->safesql(trim( str_replace( $not_allow_symbol, '', strip_tags( stripslashes( $_POST['mail'] ) ) ) ) );
$post_id = intval( $_POST['post_id'] );
$stop = array ();
$added_comments_id = 0;
if( $is_logged ) {
$name = $db->safesql($member_id['name']);
$mail = $db->safesql($member_id['email']);
}
if ( $user_group[$member_id['user_group']]['spamfilter'] ) {
$row = $db->super_query( "SELECT * FROM " . PREFIX . "_spam_log WHERE ip = '{$_IP}'" );
if ( !$row['id'] OR !$row['email'] ) {
include_once ENGINE_DIR . '/classes/stopspam.class.php';
$sfs = new StopSpam($config['spam_api_key'], $user_group[$member_id['user_group']]['spamfilter'] );
$args = array('ip' => $_IP, 'email' => $mail);
if ($sfs->is_spammer( $args )) {
if ( !$row['id'] ) {
$db->query( "INSERT INTO " . PREFIX . "_spam_log (ip, is_spammer, email, date) VALUES ('{$_IP}','1', '{$mail}', '{$_TIME}')" );
} else {
$db->query( "UPDATE " . PREFIX . "_spam_log SET is_spammer='1', email='{$mail}' WHERE id='{$row['id']}'" );
}
$stop[] = $lang['reg_err_29']." ";
$CN_HALT = TRUE;
} else {
if ( !$row['id'] ) {
$db->query( "INSERT INTO " . PREFIX . "_spam_log (ip, is_spammer, email, date) VALUES ('{$_IP}','0', '{$mail}', '{$_TIME}')" );
} else {
$db->query( "UPDATE " . PREFIX . "_spam_log SET email='{$mail}' WHERE id='{$row['id']}'" );
}
}
} else {
if ($row['is_spammer']) {
$stop[] = $lang['reg_err_29']." ";
$CN_HALT = TRUE;
}
}
}
if ($is_logged AND $config['comments_restricted'] AND (($_TIME - $member_id['reg_date']) < ($config['comments_restricted'] * 86400)) ) {
$stop[] = str_replace( '{days}', intval($config['comments_restricted']), $lang['news_info_8'] );
$CN_HALT = TRUE;
}
if( $config['simple_reply'] AND $_POST['parent'] ) $config['allow_comments_wysiwyg'] = "-1";
if( $config['allow_comments_wysiwyg'] > 0 ) {
$parse->wysiwyg = true;
$comments = $parse->BB_Parse( $parse->process( trim($_POST['comments']) ) );
} else {
if ($config['allow_comments_wysiwyg'] == "-1") $parse->allowbbcodes = false;
$comments = $parse->BB_Parse( $parse->process( trim($_POST['comments'] )), false );
}
if( intval($config['comments_minlen']) AND dle_strlen( str_replace(" ", "", strip_tags(trim($comments))), $config['charset'] ) < $config['comments_minlen'] ) {
$stop[] = $lang['news_err_40'];
$CN_HALT = TRUE;
}
if( $user_group[$member_id['user_group']]['max_comment_day'] ) {
$this_time = $_TIME - 86400;
$db->query( "DELETE FROM " . PREFIX . "_sendlog WHERE date < '$this_time' AND flag='3'" );
if ( !$is_logged ) $check_user = $_IP; else $check_user = $db->safesql($member_id['name']);
$row = $db->super_query("SELECT COUNT(*) as count FROM " . PREFIX . "_sendlog WHERE user = '{$check_user}' AND flag='3'");
if( $row['count'] >= $user_group[$member_id['user_group']]['max_comment_day'] ) {
$stop[] = str_replace('{max}', $user_group[$member_id['user_group']]['max_comment_day'], $lang['news_err_45']);
$CN_HALT = TRUE;
}
}
if ( $is_logged AND $user_group[$member_id['user_group']]['disable_comments_captcha'] AND $member_id['comm_num'] >= $user_group[$member_id['user_group']]['disable_comments_captcha'] ) {
$user_group[$member_id['user_group']]['comments_question'] = false;
$user_group[$member_id['user_group']]['captcha'] = false;
}
if( $user_group[$member_id['user_group']]['captcha'] ) {
if ($config['allow_recaptcha']) {
require_once ENGINE_DIR . '/classes/recaptcha.php';
$_REQUEST['sec_code'] = 1;
$_SESSION['sec_code_session'] = false;
if ($_POST['g_recaptcha_response']) {
$reCaptcha = new ReCaptcha($config['recaptcha_private_key']);
$resp = $reCaptcha->verifyResponse($_IP, $_POST['g_recaptcha_response'] );
if ($resp != null && $resp->success) {
$_REQUEST['sec_code'] = 1;
$_SESSION['sec_code_session'] = 1;
}
}
}
} else {
$_SESSION['sec_code_session'] = 1;
$_REQUEST['sec_code'] = 1;
}
if( $user_group[$member_id['user_group']]['comments_question'] ) {
if ( intval($_SESSION['question']) ) {
$answer = $db->super_query("SELECT id, answer FROM " . PREFIX . "_question WHERE id='".intval($_SESSION['question'])."'");
$answers = explode( "
", $answer['answer'] );
$pass_answer = false;
if( function_exists('mb_strtolower') ) {
$question_answer = trim(mb_strtolower($_POST['question_answer'], $config['charset']));
} else {
$question_answer = trim(strtolower($_POST['question_answer']));
}
if( count($answers) AND $question_answer ) {
foreach( $answers as $answer ){
if( function_exists('mb_strtolower') ) {
$answer = trim(mb_strtolower($answer, $config['charset']));
} else {
$answer = trim(strtolower($answer));
}
if( $answer AND $answer == $question_answer ) {
$pass_answer = true;
break;
}
}
}
if( !$pass_answer ) { $stop[] = $lang['reg_err_24']; $CN_HALT = TRUE; }
} else { $stop[] = $lang['reg_err_24']; $CN_HALT = TRUE;}
}
if( $is_logged and ($member_id['restricted'] == 2 or $member_id['restricted'] == 3) ) {
$stop[] = $lang['news_info_3'];
$CN_HALT = TRUE;
}
if( dle_strlen( $name, $config['charset'] ) > 40 ) {
$stop[] = $lang['news_err_1'];
$CN_HALT = TRUE;
}
if( preg_match( "/[\||\'|\<|\>|\[|\]|\"|\!|\?|\$|\@|\#|\/|\|\&\~\*\{\+]/", $name ) ) {
$stop[] = $lang['reg_err_4'];
$CN_HALT = TRUE;
}
if( dle_strlen( $mail, $config['charset'] ) > 40 AND !$is_logged ) {
$stop[] = $lang['news_err_2'];
$CN_HALT = TRUE;
}
if( !$post_id ) {
$stop[] = $lang['news_err_id'];
$CN_HALT = TRUE;
}
if( dle_strlen( $comments, $config['charset'] ) > $config['comments_maxlen'] ) {
$stop[] = $lang['news_err_3'];
$CN_HALT = TRUE;
}
if( dle_strlen($comments, $config['charset']) > 65000) {
$stop[] = $lang['news_err_3'];
$CN_HALT = TRUE;
}
if( $_REQUEST['sec_code'] != $_SESSION['sec_code_session'] OR !$_SESSION['sec_code_session'] ) {
$stop[] = $lang['news_err_30'];
$CN_HALT = TRUE;
}
if( $comments == '' ) {
$stop[] = $lang['news_err_11'];
$CN_HALT = TRUE;
}
if( $parse->not_allowed_tags ) {
$stop[] = $lang['news_err_33'];
$CN_HALT = TRUE;
}
if( $parse->not_allowed_text ) {
$stop[] = $lang['news_err_37'];
$CN_HALT = TRUE;
}
if( $member_id['user_group'] > 2 and intval( $config['flood_time'] ) and !$CN_HALT ) {
if( flooder( $_IP ) == TRUE ) {
$stop[] = $lang['news_err_4'] . " " . $lang['news_err_5'] . " {$config['flood_time']} " . $lang['news_err_6'];
$CN_HALT = TRUE;
}
}
if( $config['tree_comments'] ){
if( $_POST['parent'] AND intval($_POST['parent']) > 0 ) $parent = intval( $_POST['parent'] ); else $parent = 0;
if( $_POST['indent'] AND intval($_POST['indent']) > 0 ) $indent = intval( $_POST['indent'] ); else $indent = 0;
if ($parent) {
$row = $db->super_query("SELECT id FROM " . PREFIX . "_comments WHERE id = '{$parent}'");
if (!$row['id']) { $stop[] = $lang['reply_error_2']; $CN_HALT = TRUE; }
if ($config['tree_comments_level'] AND $indent >= $config['tree_comments_level'] ) { $stop[] = $lang['reply_error_1']; $CN_HALT = TRUE; }
}
} else {
$parent = 0;
$indent = 0;
}
$row = $db->super_query( "SELECT id, date, allow_comm, approve, access, user_id FROM " . PREFIX . "_post LEFT JOIN " . PREFIX . "_post_extras ON (" . PREFIX . "_post.id=" . PREFIX . "_post_extras.news_id) WHERE id='{$post_id}'" );
$options = news_permission( $row['access'] );
$news_author = $row['user_id'];
if( (! $user_group[$member_id['user_group']]['allow_addc'] and $options[$member_id['user_group']] != 2) or $options[$member_id['user_group']] == 1 ) die( "Hacking attempt!" );
if( ! $row['id'] or ! $row['allow_comm'] or ! $row['approve'] ) {
$stop[] = $lang['news_err_29'];
$CN_HALT = TRUE;
}
if ( $config['max_comments_days'] ) {
$row['date'] = strtotime( $row['date'] );
if ($row['date'] < ($_TIME - ($config['max_comments_days'] * 3600 * 24)) ) {
$stop[] = $lang['news_err_29'];
$CN_HALT = TRUE;
}
}
if( empty( $name ) and $CN_HALT != TRUE ) {
$stop[] = $lang['news_err_9'];
$CN_HALT = TRUE;
}
if( $mail != "" ) {
if( @count(explode("@", $mail)) != 2 ) {
$stop[] = $lang['news_err_10'];
$CN_HALT = TRUE;
}
}
if( !$is_logged and $CN_HALT != TRUE ) {
$db->query( "SELECT name from " . USERPREFIX . "_users WHERE name = '" . $name . "'" );
if( $db->num_rows() > 0 ) {
$name = $lang['c_not_reg']." ".$name;
$db->query( "SELECT name from " . USERPREFIX . "_users WHERE name = '" . $name . "'" );
if( $db->num_rows() > 0 ) {
$stop[] = $lang['news_err_7'];
$CN_HALT = TRUE;
}
}
$db->free();
}
if( intval( $config['auto_wrap'] ) ) {
if ( $config['charset'] == "utf-8" ) $utf_pref = "u"; else $utf_pref = "";
$comments = preg_split( '((>)|(<))', $comments, - 1, PREG_SPLIT_DELIM_CAPTURE );
$n = count( $comments );
for($i = 0; $i < $n; $i ++) {
if( $comments[$i] == "<" ) {
$i ++;
continue;
}
if( preg_match( "#([^\s
]{" . intval( $config['auto_wrap'] ) . "})#{$utf_pref}i", $comments[$i] ) ) {
$comments[$i] = preg_replace( "#([^\s
]{" . intval( $config['auto_wrap']-1 ) . "})#{$utf_pref}i", "<br />", $comments[$i] );
}
}
$comments = join( "", $comments );
}
$time = date( "Y-m-d H:i:s", $_TIME );
$where_approve = 1;
$_SESSION['sec_code_session'] = 0;
$_SESSION['question'] = false;
if( $CN_HALT ) {
msgbox( $lang['all_err_1'], implode( "<br />", $stop ) . "<br /><br /><a href=\"javascript:history.go(-1)\">" . $lang['all_prev'] . "</a>" );
} else {
$update_comments = false;
if ( $config['allow_combine'] ) {
$row = $db->super_query( "SELECT id, post_id, user_id, date, text, ip, is_register, approve, parent FROM " . PREFIX . "_comments WHERE post_id = '{$post_id}' ORDER BY id DESC LIMIT 0,1" );
if( $row['id'] ) {
if( $row['user_id'] == $member_id['user_id'] AND $row['is_register'] AND $row['parent'] == $parent ) $update_comments = true;
elseif( $row['ip'] == $_IP AND ! $row['is_register'] AND ! $is_logged AND $row['parent'] == $parent) $update_comments = true;
$row['date'] = strtotime( $row['date'] );
if( date( "Y-m-d", $row['date'] ) != date( "Y-m-d", $_TIME ) ) $update_comments = false;
if ( $user_group[$member_id['user_group']]['edit_limit'] AND (($row['date'] + ($user_group[$member_id['user_group']]['edit_limit'] * 60)) < $_TIME ) ) $update_comments = false;
if( ((dle_strlen( $row['text'], $config['charset'] ) + dle_strlen( $comments, $config['charset'] )) > $config['comments_maxlen']) and $update_comments ) {
$update_comments = false;
$stop[] = $lang['news_err_3'];
$CN_HALT = TRUE;
msgbox( $lang['all_err_1'], implode( "<br />", $stop ) . "<br /><br /><a href=\"javascript:history.go(-1)\">" . $lang['all_prev'] . "</a>" );
}
}
}
if( ! $CN_HALT ) {
if( $config['allow_cmod'] and $user_group[$member_id['user_group']]['allow_modc'] ) {
if( $update_comments ) {
if( $row['approve'] ) $update_comments = false;
}
$where_approve = 0;
$stop[] = $lang['news_err_31'];
$CN_HALT = TRUE;
msgbox( $lang['all_info'], implode( "<br />", $stop ) . "<br /><br /><a href=\"javascript:history.go(-1)\">" . $lang['all_prev'] . "</a>" );
}
if( $update_comments ) {
$comments = $db->safesql( $row['text'] ) . "<br /><br />" . $db->safesql( $comments );
$db->query( "UPDATE " . PREFIX . "_comments set date='$time', text='{$comments}', approve='{$where_approve}' WHERE id='{$row['id']}'" );
$added_comments_id = $row['id'];
} else {
$comments = $db->safesql( $comments );
if( $is_logged ) $db->query( "INSERT INTO " . PREFIX . "_comments (post_id, user_id, date, autor, email, text, ip, is_register, approve, parent) values ('{$post_id}', '{$member_id['user_id']}', '{$time}', '{$name}', '{$mail}', '{$comments}', '{$_IP}', '1', '{$where_approve}', '{$parent}')" );
else $db->query( "INSERT INTO " . PREFIX . "_comments (post_id, date, autor, email, text, ip, is_register, approve, parent) values ('{$post_id}', '{$time}', '{$name}', '{$mail}', '{$comments}', '{$_IP}', '0', '{$where_approve}', '{$parent}')" );
$added_comments_id = $db->insert_id();
//
if( $where_approve ) $db->query( "UPDATE " . PREFIX . "_post SET comm_num=comm_num+1 WHERE id='{$post_id}'" );
//
if( $is_logged ) {
$db->query( "UPDATE " . USERPREFIX . "_users SET comm_num=comm_num+1 WHERE user_id ='{$member_id['user_id']}'" );
}
}
if ( $user_group[$member_id['user_group']]['allow_up_image'] ){
$db->query( "UPDATE " . PREFIX . "_comments_files SET c_id='{$added_comments_id}' WHERE c_id = '0' AND author = '{$member_id['name']}'" );
}
//
if( $config['flood_time'] ) {
$db->query( "INSERT INTO " . PREFIX . "_flood (id, ip) values ('$_TIME', '$_IP')" );
}
if( $user_group[$member_id['user_group']]['max_comment_day'] ) {
$db->query( "INSERT INTO " . PREFIX . "_sendlog (user, date, flag) values ('{$check_user}', '{$_TIME}', '3')" );
}
if ( $config['mail_comments'] OR $config['allow_subscribe'] ) {
include_once ENGINE_DIR . '/classes/mail.class.php';
$row = $db->super_query( "SELECT id, short_story, title, date, alt_name, category FROM ".PREFIX."_post WHERE id = '{$post_id}'" );
$row['date'] = strtotime( $row['date'] );
$row['category'] = intval( $row['category'] );
if( $config['allow_alt_url'] ) {
if( $config['seo_type'] == 1 OR $config['seo_type'] == 2 ) {
if( $row['category'] and $config['seo_type'] == 2 ) {
$full_link = $config['http_home_url'] . get_url( $row['category'] ) . "/" . $row['id'] . "-" . $row['alt_name'] . ".html";
} else {
$full_link = $config['http_home_url'] . $row['id'] . "-" . $row['alt_name'] . ".html";
}
} else {
$full_link = $config['http_home_url'] . date( 'Y/m/d/', $row['date'] ) . $row['alt_name'] . ".html";
}
} else {
$full_link = $config['http_home_url'] . "index.php?newsid=" . $row['id'];
}
$title = stripslashes($row['title']);
$row = $db->super_query( "SELECT * FROM " . PREFIX . "_email WHERE name='comments' LIMIT 0,1" );
$mail = new dle_mail( $config, $row['use_html'] );
if (strpos($full_link, "//") === 0) $full_link = "http:".$full_link;
elseif (strpos($full_link, "/") === 0) $full_link = "http://".$_SERVER['HTTP_HOST'].$full_link;
$row['template'] = stripslashes( $row['template'] );
$row['template'] = str_replace( "{%username%}", $name, $row['template'] );
$row['template'] = str_replace( "{%date%}", langdate( "j F Y H:i", $_TIME, true ), $row['template'] );
$row['template'] = str_replace( "{%link%}", $full_link, $row['template'] );
$row['template'] = str_replace( "{%title%}", $title, $row['template'] );
$body = str_replace( '
', "", $comments );
$body = str_replace( '
', "", $body );
$body = stripslashes( stripslashes( $body ) );
$body = str_replace( "<br />", "
", $body );
$body = strip_tags( $body );
if( $row['use_html'] ) {
$body = str_replace("
", "<br />", $body );
}
$row['template'] = str_replace( "{%text%}", $body, $row['template'] );
}
if( $config['mail_comments'] ) {
$body = str_replace( "{%ip%}", $_IP, $row['template'] );
$body = str_replace( "{%username_to%}", $lang['admin'], $body );
$body = str_replace( "{%unsubscribe%}", "--", $body );
$mail->send( $config['admin_mail'], $lang['mail_comments'], $body );
}
if ( $config['allow_subscribe'] AND $where_approve ) {
$row['template'] = str_replace( "{%ip%}", "--", $row['template'] );
$found_news_author_subscribe = false;
$found_reply_author_subscribe = false;
$news_author_subscribe = $db->super_query( "SELECT " . USERPREFIX . "_users.user_id, " . USERPREFIX . "_users.name, " . USERPREFIX . "_users.email, " . USERPREFIX . "_users.news_subscribe FROM " . PREFIX . "_post_extras LEFT JOIN " . USERPREFIX . "_users ON " . PREFIX . "_post_extras.user_id=" . USERPREFIX . "_users.user_id WHERE " . PREFIX . "_post_extras.news_id='{$post_id}'" );
if( $parent ) {
$reply_author_subscribe = $db->super_query( "SELECT " . USERPREFIX . "_users.user_id, " . USERPREFIX . "_users.name, " . USERPREFIX . "_users.email, " . USERPREFIX . "_users.comments_reply_subscribe FROM " . PREFIX . "_comments LEFT JOIN " . USERPREFIX . "_users ON " . PREFIX . "_comments.user_id=" . USERPREFIX . "_users.user_id WHERE " . PREFIX . "_comments.id='{$parent}'" );
} else $reply_author_subscribe = array();
if (strpos($config['http_home_url'], "//") === 0) $slink = "http:".$config['http_home_url'];
elseif (strpos($config['http_home_url'], "/") === 0) $slink = "http://".$_SERVER['HTTP_HOST'].$config['http_home_url'];
else $slink = $config['http_home_url'];
$db->query( "SELECT user_id, name, email, hash FROM " . PREFIX . "_subscribe WHERE news_id='{$post_id}'" );
while( $rec = $db->get_row() )
{
if( $rec['user_id'] == $news_author_subscribe['user_id'] ) {
$found_news_author_subscribe = true;
}
if( $parent AND $rec['user_id'] == $reply_author_subscribe['user_id'] ) {
$found_reply_author_subscribe = true;
}
if ($rec['user_id'] != $member_id['user_id'] ) {
$body = str_replace( "{%username_to%}", $rec['name'], $row['template'] );
$body = str_replace( "{%unsubscribe%}", $slink . "index.php?do=unsubscribe&post_id=" . $post_id . "&user_id=" . $rec['user_id'] . "&hash=" . $rec['hash'], $body );
$mail->send( $rec['email'], $lang['mail_comments'], $body );
}
}
if($news_author_subscribe['news_subscribe'] AND !$found_news_author_subscribe AND $news_author_subscribe['user_id'] != $member_id['user_id']) {
$body = str_replace( "{%username_to%}", $news_author_subscribe['name'], $row['template'] );
if ($config['allow_alt_url']) {
$body = str_replace( "{%unsubscribe%}", $slink . "user/" . urlencode ( $news_author_subscribe['name'] ) . "/", $body );
} else {
$body = str_replace( "{%unsubscribe%}", $slink . "index.php??subaction=userinfo&user=" . urlencode ( $news_author_subscribe['name'] ), $body );
}
$mail->send( $news_author_subscribe['email'], $lang['mail_comments'], $body );
$last_send = $news_author_subscribe['user_id'];
} else $last_send = false;
if($parent AND $reply_author_subscribe['comments_reply_subscribe'] AND !$found_reply_author_subscribe AND $reply_author_subscribe['user_id'] != $last_send AND $reply_author_subscribe['user_id'] != $member_id['user_id'] ) {
$body = str_replace( "{%username_to%}", $reply_author_subscribe['name'], $row['template'] );
if ($config['allow_alt_url']) {
$body = str_replace( "{%unsubscribe%}", $slink . "user/" . urlencode ( $reply_author_subscribe['name'] ) . "/", $body );
} else {
$body = str_replace( "{%unsubscribe%}", $slink . "index.php??subaction=userinfo&user=" . urlencode ( $reply_author_subscribe['name'] ), $body );
}
$mail->send( $reply_author_subscribe['email'], $lang['mail_comments'], $body );
}
$db->free();
}
if ($config['allow_subscribe'] AND $is_logged AND $_POST['allow_subscribe'] AND $user_group[$member_id['user_group']]['allow_subscribe']) {
$found_subscribe = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_subscribe WHERE news_id='{$post_id}' AND user_id='{$member_id['user_id']}'" );
if( !$found_subscribe['count'] ) {
if(function_exists('openssl_random_pseudo_bytes')) {
$stronghash = md5(openssl_random_pseudo_bytes(15));
} else $stronghash = md5(uniqid( mt_rand(), TRUE ));
$salt = str_shuffle($stronghash);
$s_hash = "";
for($i = 0; $i < 10; $i ++) {
$s_hash .= $salt{mt_rand( 0, 31 )};
}
$s_hash = md5($s_hash);
$db->query( "INSERT INTO " . PREFIX . "_subscribe (user_id, name, email, news_id, hash) values ('{$member_id['user_id']}', '{$member_id['name']}', '{$member_id['email']}', '{$post_id}', '{$s_hash}')" );
}
}
if ( $config['allow_alt_url'] AND !$config['seo_type'] ) $cprefix = "full_"; else $cprefix = "full_".$post_id;
clear_cache( array( 'news_', 'rss', 'comm_'.$post_id, $cprefix ) );
if( !$ajax_adds AND !$CN_HALT ) {
header( "Location: {$_SERVER['REQUEST_URI']}" );
die();
}
} else msgbox( $lang['all_err_1'], implode( "<br />", $stop ) . "<br /><br /><a href=\"javascript:history.go(-1)\">" . $lang['all_prev'] . "</a>" );
}
?>
Did this file decode correctly?
Original Code
<?php
/*
=====================================================
DataLife Engine - by SoftNews Media Group
-----------------------------------------------------
http://dle-news.ru/
-----------------------------------------------------
Copyright (c) 2004,2017 SoftNews Media Group
=====================================================
*/
?><?php $_F=__FILE__;$_X='P0tOP1sxWyBEKiA3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NyBiZW49bmttejNiU29IbW8zYi1iWWRifVp6PXEzc1FiMjM0bW5iTQpabFtiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIGIxPT1bOkRENEwzLW8zc1FGCmxEIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIGJWWltkCm1IMT1iKHkpYnRYWEktdFg+LmJ9Wno9cTNzUWIyMzRtbmJNClpsWyA3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NyBi0JTQsNC90L3Ri9C5YtC60L7QtGLQt9Cw0YnQuNGJ0LXQvWLQsNCy0YLQvtGA0YHQutC40LzQuGLQv9GA0LDQstCw0LzQuCA3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NyBi0KTQsNC50Ls6Ym40NHlacHAzbz1RRlsxWyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBi0J3QsNC30L3QsNGH0LXQvdC40LU6YtCU0L7QsdCw0LLQu9C10L3QuNC1YtC60L7QvNC80LXQvdGC0LDRgNC40LXQsmLQsmLQsdCw0LfRg2LQtNCw0L3QvdGL0YUgNzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NzcgKkQgbXooYiFiNDN6bW8zNChiJ2U5YzlrRXtTU3FNRXFTJ2IpYkdnYiEkeVpvem1IVSduTExac195WnBwM289USdhYiliaiAJNG0zKGIiNW55OG1vSGJuPT0zcFs9ISJiKTsgVCAgCjM2bG0KM19ab3kzYlNxTUVxU19lRWdiRmInRHlMblFRM1FEW24KUTNGeUxuUVFGWzFbJzsgIG16KGIkeVpvem1IVSduTExac195WnBwM289UV9zZFFtc2RIJ2FiS2JYYiliaiAJIAkkbkxMWnMzNF89bkhRYjdibgoKbmRiKCc0bXZVUT1kTDN8eUxuUVFhJyxiJ1Fbbm9VUT1kTDN8eUxuUVFhJyxiJ1tVUT1kTDN8eUxuUVFhJyxiJ1kKJyxiJ1E9ClpvSCcsYiczcCcsYidsTCcsYidMbScsYidaTCcsYidZJyxiJ2wnLGInbScsYidRJ2IpOyAJIAlteihiJGxRMwpfSApabFtVJHAzcFkzCl9tNFUnbFEzCl9IClpsWydhYVUnbkxMWnNfbApMJ2FiKWIkbkxMWnMzNF89bkhRVWFiN2InblUxCjN6fD1uCkgzPXxRPWRMM3x5TG5RUXw9bT1MM2EnOyAJbXooYiRsUTMKX0gKWmxbVSRwM3BZMwpfbTRVJ2xRMwpfSApabFsnYWFVJ25MTFpzX21wbkgzJ2FiKWIkbkxMWnMzNF89bkhRVWFiN2InbXBIVVE9ZEwzfHlMblFRfFEKeXxuTD18c200PTF8MTNtSDE9YSc7IAkgCSRbbgpRM2I3Ym8zc2JybgpRM3ttTD0zCihiJG5MTFpzMzRfPW5IUWIpOyAgVGIzTFEzYmogCSAJJFtuClEzYjdibzNzYnJuClEze21MPTMKKCk7IAkgVCAgJFtuClEzLUtRbnozX3BaNDNiN2I9CmwzOyAkW24KUTMtSwozcFp2M18xPXBMYjdiem5MUTM7ICRbbgpRMy1LbkxMWnNfbApMYjdiJGxRMwpfSApabFtVJHAzcFkzCl9tNFUnbFEzCl9IClpsWydhYVUnbkxMWnNfbApMJ2E7ICRbbgpRMy1LbkxMWnNfbXBuSDNiN2IkbFEzCl9IClpsW1UkcDNwWTMKX200VSdsUTMKX0gKWmxbJ2FhVSduTExac19tcG5IMydhOyAgJF9jRTJTYjdiPW1wMygpOyAkX0VyYjdiSDM9X21bKCk7ICAkb25wM2I3YiQ0WS1LUW56M1E2TChiMT1wTFFbM3ltbkx5MW4KUShRPQptW189bkhRKGI9Cm1wKGIkX3JHfWNVJ29ucDMnYWIpYiksYlNxY19Cd0djU30sYiR5Wm96bUhVJ3kxbgpRMz0nYWIpYik7ICAkb1o9X25MTFpzX1FkcFlaTGI3Ym4KCm5kYigiXEF0dCIsYiJcQWZYIixiIlw9IixiJ1xvJyxiJ1wKJyxiIlxvIixiIlwKIixiJ1xcJyxiIiwiLGIiRCIsYiLCrCIsYiIjIixiIjsiLGIiOiIsYiJ+IixiIlUiLGIiYSIsYiJqIixiIlQiLGIiKSIsYiIoIixiIioiLGIiXiIsYiIlIixiIiQiLGIiTiIsYiJLIixiIj8iLGIiISIsYiciJyxiIiciLGIiYiIsYiImImIpOyAkcG5tTGI3YiQ0WS1LUW56M1E2TCg9Cm1wKGJRPQpfCjNbTG55MyhiJG9aPV9uTExac19RZHBZWkwsYicnLGJRPQptW189bkhRKGJRPQptW1FMblExM1EoYiRfckd9Y1UncG5tTCdhYiliKWIpYiliKTsgICRbWlE9X200YjdibW89dm5MKGIkX3JHfWNVJ1taUT1fbTQnYWIpOyAkUT1aW2I3Ym4KCm5kYigpOyAkbjQ0MzRfeVpwcDNvPVFfbTRiN2JYOyAgbXooYiRtUV9MWkhIMzRiKWJqIAkkb25wM2I3YiQ0WS1LUW56M1E2TCgkcDNwWTMKX200VSdvbnAzJ2EpOyAJJHBubUxiN2IkNFktS1FuejNRNkwoJHAzcFkzCl9tNFUnM3BubUwnYSk7IFQgIG16YihiJGxRMwpfSApabFtVJHAzcFkzCl9tNFUnbFEzCl9IClpsWydhYVUnUVtucHptTD0zCidhYiliaiAgCSQKWnNiN2IkNFktS1FsWzMKXzZsMwpkKGIifVNrU1ZjYipie2dHMmIiYkZicmdTe0VDYkZiIl9RW25wX0xaSGJpNVNnU2JtW2I3YidqJF9FclQnImIpOyAgCW16YihiISQKWnNVJ200J2FiR2diISQKWnNVJzNwbm1MJ2FiKWJqICAJCW1veUxsNDNfWm95M2JTcU1FcVNfZUVnYkZiJ0R5TG5RUTNRRFE9WltRW25wRnlMblFRRlsxWyc7IAkJJFF6UWI3Ym8zc2J9PVpbfVtucCgkeVpvem1IVSdRW25wX25bbV84M2QnYSxiJGxRMwpfSApabFtVJHAzcFkzCl9tNFUnbFEzCl9IClpsWydhYVUnUVtucHptTD0zCidhYik7IAkJJG4KSFFiN2JuCgpuZCgnbVsnYjdLYiRfRXIsYiczcG5tTCdiN0tiJHBubUwpOyAgCQltemIoJFF6US1LbVFfUVtucHAzCihiJG4KSFFiKSliaiAgCQkJbXpiKGIhJApac1UnbTQnYWIpYmogCQkJCSQ0WS1LNmwzCmQoYiJFcX1TZ2NiRXFjR2IiYkZicmdTe0VDYkZiIl9RW25wX0xaSGIobVssYm1RX1FbbnBwMwosYjNwbm1MLGI0bj0zKWJoOWt3U31iKCdqJF9FclQnLCc+JyxiJ2okcG5tTFQnLGInaiRfY0UyU1QnKSJiKTsgCQkJVGIzTFEzYmogCQkJCSQ0WS1LNmwzCmQoYiJ3cmU5Y1NiImJGYnJnU3tFQ2JGYiJfUVtucF9MWkhifVNjYm1RX1FbbnBwMwo3Jz4nLGIzcG5tTDcnaiRwbm1MVCdiaTVTZ1NibTQ3J2okClpzVSdtNCdhVCciYik7IAkJCVQgIAkJCSRRPVpbVWFiN2IkTG5vSFUnCjNIXzMKCl90UCdhRiJiIjsgCQkJJFZxXzU5a2NiN2JjZ3dTOyAgCQlUYjNMUTNiaiAJCQltemIoYiEkClpzVSdtNCdhYiliaiAJCQkJJDRZLUs2bDMKZChiIkVxfVNnY2JFcWNHYiJiRmJyZ1N7RUNiRmIiX1FbbnBfTFpIYihtWyxibVFfUVtucHAzCixiM3BubUwsYjRuPTMpYmg5a3dTfWIoJ2okX0VyVCcsJ1gnLGInaiRwbm1MVCcsYidqJF9jRTJTVCcpImIpOyAJCQlUYjNMUTNiaiAJCQkJJDRZLUs2bDMKZChiIndyZTljU2IiYkZicmdTe0VDYkZiIl9RW25wX0xaSGJ9U2NiM3BubUw3J2okcG5tTFQnYmk1U2dTYm00NydqJApac1UnbTQnYVQnImIpOyAJCQlUIAkJVCAJIAlUYjNMUTNiaiAgCQltemIoJApac1UnbVFfUVtucHAzCidhKWJqICAJCQkkUT1aW1VhYjdiJExub0hVJwozSF8zCgpfdFAnYUYiYiI7IAkJCSRWcV81OWtjYjdiY2d3UzsgCQkgCQlUICAJVCAgVCAgbXpiKCRtUV9MWkhIMzRiOXFlYiR5Wm96bUhVJ3lacHAzbz1RXwozUT0KbXk9MzQnYWI5cWViKCgkX2NFMlNiLWIkcDNwWTMKX200VScKM0hfNG49MydhKWJOYigkeVpvem1IVSd5WnBwM289UV8KM1E9Cm15PTM0J2FiKmJXZklYWCkpYiliaiAJJFE9WltVYWI3YlE9Cl8KM1tMbnkzKGInajRuZFFUJyxibW89dm5MKCR5Wm96bUhVJ3lacHAzbz1RXwozUT0KbXk9MzQnYSksYiRMbm9IVSdvM3NRX21velpfVydhYik7IAkkVnFfNTlrY2I3YmNnd1M7IFQgIG16KGIkeVpvem1IVSdRbXBbTDNfCjNbTGQnYWI5cWViJF9yR31jVSdbbgozbz0nYWIpYiR5Wm96bUhVJ25MTFpzX3lacHAzbz1RX3NkUW1zZEgnYWI3YiItPiI7ICBteihiJHlab3ptSFUnbkxMWnNfeVpwcDNvPVFfc2RRbXNkSCdhYktiWGIpYmogCQkgCSRbbgpRMy1Lc2RRbXNkSGI3Yj0KbDM7IAkgCSR5WnBwM289UWI3YiRbbgpRMy1LPDxfcm4KUTMoYiRbbgpRMy1LWwpaeTNRUShiPQptcCgkX3JHfWNVJ3lacHAzbz1RJ2EpYiliKTsgCSBUYjNMUTNiaiAJCSAJbXpiKCR5Wm96bUhVJ25MTFpzX3lacHAzbz1RX3NkUW1zZEgnYWI3N2IiLT4iKWIkW24KUTMtS25MTFpzWVl5WjQzUWI3YnpuTFEzOyAJCSAJJHlacHAzbz1RYjdiJFtuClEzLUs8PF9ybgpRMyhiJFtuClEzLUtbClp5M1FRKGI9Cm1wKCRfckd9Y1UneVpwcDNvPVEnYWIpKSxiem5MUTNiKTsgVCAgbXooYm1vPXZuTCgkeVpvem1IVSd5WnBwM289UV9wbW9MM28nYSliOXFlYjRMM19RPQpMM28oYlE9Cl8KM1tMbnkzKCJiIixiIiIsYlE9Cm1bXz1uSFEoPQptcCgkeVpwcDNvPVEpKSksYiR5Wm96bUhVJ3kxbgpRMz0nYWIpYk5iJHlab3ptSFUneVpwcDNvPVFfcG1vTDNvJ2FiKWJqICAJJFE9WltVYWI3YiRMbm9IVSdvM3NRXzMKCl9JWCdhOyAJJFZxXzU5a2NiN2JjZ3dTOyAgVCAgbXooYiRsUTMKX0gKWmxbVSRwM3BZMwpfbTRVJ2xRMwpfSApabFsnYWFVJ3BuQV95WnBwM289XzRuZCdhYiliaiAgCSQ9MW1RXz1tcDNiN2IkX2NFMlNiLWJXZklYWDsgCSQ0WS1LNmwzCmQoYiJlU2tTY1Nie2dHMmIiYkZicmdTe0VDYkZiIl9RM280TFpIYmk1U2dTYjRuPTNiTmInJD0xbVFfPW1wMydiOXFlYnpMbkg3Jy8nImIpOyAgCW16YihiISRtUV9MWkhIMzRiKWIkeTEzeThfbFEzCmI3YiRfRXI7YjNMUTNiJHkxM3k4X2xRMwpiN2IkNFktS1FuejNRNkwoJHAzcFkzCl9tNFUnb25wMydhKTsgIAkkClpzYjdiJDRZLUtRbFszCl82bDMKZCgifVNrU1ZjYlZHd3FjKCopYm5RYnlabG89YntnRzJiImJGYnJnU3tFQ2JGYiJfUTNvNExaSGJpNVNnU2JsUTMKYjdiJ2okeTEzeThfbFEzClQnYjlxZWJ6TG5INycvJyIpOyAJCSAJbXooYiQKWnNVJ3labG89J2FiSzdiYiRsUTMKX0gKWmxbVSRwM3BZMwpfbTRVJ2xRMwpfSApabFsnYWFVJ3BuQV95WnBwM289XzRuZCdhYiliaiAJCSAJCSRRPVpbVWFiN2JRPQpfCjNbTG55MygnanBuQVQnLGIkbFEzCl9IClpsW1UkcDNwWTMKX200VSdsUTMKX0gKWmxbJ2FhVSdwbkFfeVpwcDNvPV80bmQnYSxiJExub0hVJ28zc1FfMwoKX0l4J2EpOyAJCSRWcV81OWtjYjdiY2d3UzsgCVQgIFQgIG16YihiJG1RX0xaSEgzNGI5cWViJGxRMwpfSApabFtVJHAzcFkzCl9tNFUnbFEzCl9IClpsWydhYVUnNG1RbllMM195WnBwM289UV95bls9eTFuJ2FiOXFlYiRwM3BZMwpfbTRVJ3lacHBfb2xwJ2FiSzdiJGxRMwpfSApabFtVJHAzcFkzCl9tNFUnbFEzCl9IClpsWydhYVUnNG1RbllMM195WnBwM289UV95bls9eTFuJ2FiKWJqICAJJGxRMwpfSApabFtVJHAzcFkzCl9tNFUnbFEzCl9IClpsWydhYVUneVpwcDNvPVFfNmwzUT1tWm8nYWI3YnpuTFEzOyAJJGxRMwpfSApabFtVJHAzcFkzCl9tNFUnbFEzCl9IClpsWydhYVUneW5bPXkxbidhYjdiem5MUTM7ICBUICBteihiJGxRMwpfSApabFtVJHAzcFkzCl9tNFUnbFEzCl9IClpsWydhYVUneW5bPXkxbidhYiliaiAgCW16YigkeVpvem1IVSduTExac18KM3luWz15MW4nYSliaiAgCQkKMzZsbQozX1pveTNiU3FNRXFTX2VFZ2JGYidEeUxuUVEzUUQKM3luWz15MW5GWzFbJzsgCQkkX2dTQndTfWNVJ1EzeV95WjQzJ2FiN2I+OyAJCSRffVN9fUVHcVUnUTN5X3laNDNfUTNRUW1abydhYjdiem5MUTM7ICAJCW16YigkX3JHfWNVJ0hfCjN5bls9eTFuXwozUVtab1EzJ2EpYmogCQkJJAozVm5bPXkxbmI3Ym8zc2JnM1ZuWz15MW4oJHlab3ptSFUnCjN5bls9eTFuX1sKbXZuPTNfODNkJ2EpOyAgCQkJJAozUVtiN2IkCjNWbls9eTFuLUt2MwptemRnM1FbWm9RMygkX0VyLGIkX3JHfWNVJ0hfCjN5bls9eTFuXwozUVtab1EzJ2FiKTsgCQkJIAkJYmJiYmJiYmJtemIoJAozUVtiITdib2xMTGImJmIkCjNRWy1LUWx5eTNRUSliaiAgCQkJCQkkX2dTQndTfWNVJ1EzeV95WjQzJ2FiN2I+OyAJCQkJCSRffVN9fUVHcVUnUTN5X3laNDNfUTNRUW1abydhYjdiPjsgIAkJYmJiYmJiYmJUIAkJVCAgCVQgIFRiM0xRM2JqIAkkX31TfX1FR3FVJ1EzeV95WjQzX1EzUVFtWm8nYWI3Yj47IAkkX2dTQndTfWNVJ1EzeV95WjQzJ2FiN2I+OyBUICBteihiJGxRMwpfSApabFtVJHAzcFkzCl9tNFUnbFEzCl9IClpsWydhYVUneVpwcDNvPVFfNmwzUT1tWm8nYWIpYmogIAltemIoYm1vPXZuTCgkX31TfX1FR3FVJzZsM1E9bVpvJ2EpYiliaiAJIAkJJG5vUXMzCmI3YiQ0WS1LUWxbMwpfNmwzCmQoIn1Ta1NWY2JtNCxibm9RczMKYntnRzJiImJGYnJnU3tFQ2JGYiJfNmwzUT1tWm9iaTVTZ1NibTQ3JyJGbW89dm5MKCRffVN9fUVHcVUnNmwzUT1tWm8nYSlGIiciKTsgCSAJCSRub1FzMwpRYjdiM0FbTFo0MyhiIlxvIixiJG5vUXMzClUnbm9RczMKJ2FiKTsgCSAJCSRbblFRX25vUXMzCmI3YnpuTFEzOyAJIAkJbXooYnpsb3k9bVpvXzNBbVE9USgncFlfUT0KPVpMWnMzCicpYiliaiAJCQkkNmwzUT1tWm9fbm9RczMKYjdiPQptcChwWV9RPQo9WkxaczMKKCRfckd9Y1UnNmwzUT1tWm9fbm9RczMKJ2EsYiR5Wm96bUhVJ3kxbgpRMz0nYSkpOyAJCVRiM0xRM2JqIAkJCSQ2bDNRPW1ab19ub1FzMwpiN2I9Cm1wKFE9Cj1aTFpzMwooJF9yR31jVSc2bDNRPW1ab19ub1FzMwonYSkpOyAJCVQgCSAJCW16KGJ5WmxvPSgkbm9RczMKUSliOXFlYiQ2bDNRPW1ab19ub1FzMwpiKWJqIAkJCXpaCjNueTEoYiRub1FzMwpRYm5RYiRub1FzMwpiKWogCSAJCQkJbXooYnpsb3k9bVpvXzNBbVE9USgncFlfUT0KPVpMWnMzCicpYiliaiAJCQkJCSRub1FzMwpiN2I9Cm1wKHBZX1E9Cj1aTFpzMwooJG5vUXMzCixiJHlab3ptSFUneTFuClEzPSdhKSk7IAkJCQlUYjNMUTNiaiAJCQkJCSRub1FzMwpiN2I9Cm1wKFE9Cj1aTFpzMwooJG5vUXMzCikpOyAJCQkJVCAJIAkJCQlteihiJG5vUXMzCmI5cWViJG5vUXMzCmI3N2IkNmwzUT1tWm9fbm9RczMKYiliaiAJCQkJCSRbblFRX25vUXMzCgk3Yj0KbDM7IAkJCQkJWQozbjg7IAkJCQlUIAkJCVQgCQlUIAkgCQlteihiISRbblFRX25vUXMzCmIpYmpiJFE9WltVYWI3YiRMbm9IVScKM0hfMwoKX3RJJ2E7YiRWcV81OWtjYjdiY2d3UztiVCAJIAlUYjNMUTNiamIkUT1aW1VhYjdiJExub0hVJwozSF8zCgpfdEknYTtiJFZxXzU5a2NiN2JjZ3dTO1QgCQkgVCAgbXooYiRtUV9MWkhIMzRibm80YigkcDNwWTMKX200VScKM1E9Cm15PTM0J2FiNzdidGJaCmIkcDNwWTMKX200VScKM1E9Cm15PTM0J2FiNzdiLyliKWJqIAkgCSRRPVpbVWFiN2IkTG5vSFUnbzNzUV9tb3paXy8nYTsgCSRWcV81OWtjYjdiY2d3UzsgIFQgIG16KGI0TDNfUT0KTDNvKGIkb25wMyxiJHlab3ptSFUneTFuClEzPSdhYiliS2JJWGIpYmogCSRRPVpbVWFiN2IkTG5vSFUnbzNzUV8zCgpfPidhOyAJJFZxXzU5a2NiN2JjZ3dTOyBUICBteihiWwozSF9wbj15MShiIkRVXHx8XCd8XE58XEt8XFV8XGF8XCJ8XCF8XD98XCR8XEB8XCN8XER8XFxcfFwmXH5cKlxqXCthRCIsYiRvbnAzYiliKWJqIAkkUT1aW1VhYjdiJExub0hVJwozSF8zCgpfSSdhOyAJJFZxXzU5a2NiN2JjZ3dTOyBUICBteihiNEwzX1E9CkwzbyhiJHBubUwsYiR5Wm96bUhVJ3kxbgpRMz0nYWIpYktiSVhiOXFlYiEkbVFfTFpISDM0YiliaiAJJFE9WltVYWI3YiRMbm9IVSdvM3NRXzMKCl90J2E7IAkkVnFfNTlrY2I3YmNnd1M7IFQgIG16KGIhJFtaUT1fbTRiKWJqIAkkUT1aW1VhYjdiJExub0hVJ28zc1FfMwoKX200J2E7IAkkVnFfNTlrY2I3YmNnd1M7IFQgbXooYjRMM19RPQpMM28oYiR5WnBwM289USxiJHlab3ptSFUneTFuClEzPSdhYiliS2IkeVpvem1IVSd5WnBwM289UV9wbkFMM28nYWIpYmogCSRRPVpbVWFiN2IkTG5vSFUnbzNzUV8zCgpfLydhOyAJJFZxXzU5a2NiN2JjZ3dTOyBUICBteihiNEwzX1E9CkwzbygkeVpwcDNvPVEsYiR5Wm96bUhVJ3kxbgpRMz0nYSliS2JmeFhYWCliaiAJJFE9WltVYWI3YiRMbm9IVSdvM3NRXzMKCl8vJ2E7IAkkVnFfNTlrY2I3YmNnd1M7IFQgIG16KGIkX2dTQndTfWNVJ1EzeV95WjQzJ2FiITdiJF99U319RUdxVSdRM3lfeVo0M19RM1FRbVpvJ2FiR2diISRffVN9fUVHcVUnUTN5X3laNDNfUTNRUW1abydhYiliaiAJJFE9WltVYWI3YiRMbm9IVSdvM3NRXzMKCl8vWCdhOyAJJFZxXzU5a2NiN2JjZ3dTOyBUICBteihiJHlacHAzbz1RYjc3YicnYiliaiAJJFE9WltVYWI3YiRMbm9IVSdvM3NRXzMKCl8+PidhOyAJJFZxXzU5a2NiN2JjZ3dTOyBUICBteihiJFtuClEzLUtvWj1fbkxMWnMzNF89bkhRYiliaiAJJFE9WltVYWI3YiRMbm9IVSdvM3NRXzMKCl8vLydhOyAJJFZxXzU5a2NiN2JjZ3dTOyBUICBteihiJFtuClEzLUtvWj1fbkxMWnMzNF89M0E9YiliaiAJJFE9WltVYWI3YiRMbm9IVSdvM3NRXzMKCl8vLidhOyAJJFZxXzU5a2NiN2JjZ3dTOyBUICBteihiJHAzcFkzCl9tNFUnbFEzCl9IClpsWydhYktidGJubzRibW89dm5MKGIkeVpvem1IVSd6TFpaNF89bXAzJ2FiKWJubzRiISRWcV81OWtjYiliaiAJbXooYnpMWlo0MwooYiRfRXJiKWI3N2JjZ3dTYiliaiAJCSRRPVpbVWFiN2IkTG5vSFUnbzNzUV8zCgpfSSdhYkZiImIiYkZiJExub0hVJ28zc1FfMwoKX3gnYWJGYiJiaiR5Wm96bUhVJ3pMWlo0Xz1tcDMnYVRiImJGYiRMbm9IVSdvM3NRXzMKCl9mJ2E7IAkJJFZxXzU5a2NiN2JjZ3dTOyAJVCBUICBteihiJHlab3ptSFUnPQozM195WnBwM289USdhYilqIAkgCW16KGIkX3JHfWNVJ1tuCjNvPSdhYjlxZWJtbz12bkwoJF9yR31jVSdbbgozbz0nYSliS2JYYiliJFtuCjNvPWI3Ym1vPXZuTChiJF9yR31jVSdbbgozbz0nYWIpO2IzTFEzYiRbbgozbz1iN2JYOyAJbXooYiRfckd9Y1UnbW80M289J2FiOXFlYm1vPXZuTCgkX3JHfWNVJ21vNDNvPSdhKWJLYlhiKWIkbW80M289YjdibW89dm5MKGIkX3JHfWNVJ21vNDNvPSdhYik7YjNMUTNiJG1vNDNvPWI3Ylg7IAkgCW16YigkW24KM289KWJqIAkJIAkJJApac2I3YiQ0WS1LUWxbMwpfNmwzCmQoIn1Ta1NWY2JtNGJ7Z0cyYiJiRmJyZ1N7RUNiRmIiX3lacHAzbz1RYmk1U2dTYm00YjdiJ2okW24KM289VCciKTsgCQkgCQltemIoISQKWnNVJ200J2EpYmpiJFE9WltVYWI3YiRMbm9IVScKM1tMZF8zCgpaCl90J2E7YiRWcV81OWtjYjdiY2d3UztiVCAJCSAJCW16YigkeVpvem1IVSc9CjMzX3lacHAzbz1RX0wzdjNMJ2FiOXFlYiRtbzQzbz1iSzdiJHlab3ptSFUnPQozM195WnBwM289UV9MM3YzTCdhYiliamIkUT1aW1VhYjdiJExub0hVJwozW0xkXzMKCloKXz4nYTtiJFZxXzU5a2NiN2JjZ3dTO2JUIAlUIAkgVGIzTFEzYmogCSAJJFtuCjNvPWI3Ylg7IAkkbW80M289YjdiWDsgCSBUICAkClpzYjdiJDRZLUtRbFszCl82bDMKZChiIn1Ta1NWY2JtNCxiNG49MyxibkxMWnNfeVpwcCxibltbClp2Myxibnl5M1FRLGJsUTMKX200YntnRzJiImJGYnJnU3tFQ2JGYiJfW1pRPWJrU3tjYl1HRXFiImJGYnJnU3tFQ2JGYiJfW1pRPV8zQT0KblFiR3FiKCJiRmJyZ1N7RUNiRmIiX1taUT1GbTQ3ImJGYnJnU3tFQ2JGYiJfW1pRPV8zQT0KblFGbzNzUV9tNCliaTVTZ1NibTQ3J2okW1pRPV9tNFQnImIpOyAkWls9bVpvUWI3Ym8zc1FfWzMKcG1RUW1abyhiJApac1Unbnl5M1FRJ2FiKTsgJG8zc1Ffbmw9MVoKYjdiJApac1UnbFEzCl9tNCdhOyAgIG16KGIoIWIkbFEzCl9IClpsW1UkcDNwWTMKX200VSdsUTMKX0gKWmxbJ2FhVSduTExac19uNDR5J2Fibm80YiRaWz1tWm9RVSRwM3BZMwpfbTRVJ2xRMwpfSApabFsnYWFiITdidCliWgpiJFpbPW1ab1FVJHAzcFkzCl9tNFUnbFEzCl9IClpsWydhYWI3N2I+YiliNG0zKGIiNW55OG1vSGJuPT0zcFs9ISJiKTsgIG16KGIhYiQKWnNVJ200J2FiWgpiIWIkClpzVSduTExac195WnBwJ2FiWgpiIWIkClpzVSduW1sKWnYzJ2FiKWJqIAkkUT1aW1VhYjdiJExub0hVJ28zc1FfMwoKX3RQJ2E7IAkkVnFfNTlrY2I3YmNnd1M7IFQgIG16YihiJHlab3ptSFUncG5BX3lacHAzbz1RXzRuZFEnYWIpYmogCSQKWnNVJzRuPTMnYWI3YlE9Cj1aPW1wMyhiJApac1UnNG49MydhYik7ICAJbXpiKCQKWnNVJzRuPTMnYWJOYigkX2NFMlNiLWIoJHlab3ptSFUncG5BX3lacHAzbz1RXzRuZFEnYWIqYi9mWFhiKmJ0SSkpYiliaiAJCSRRPVpbVWFiN2IkTG5vSFUnbzNzUV8zCgpfdFAnYTsgCQkkVnFfNTlrY2I3YmNnd1M7IAlUIFQgIG16KGIzcFs9ZChiJG9ucDNiKWJubzRiJFZxXzU5a2NiITdiY2d3U2IpYmogCSRRPVpbVWFiN2IkTG5vSFUnbzNzUV8zCgpfUCdhOyAJJFZxXzU5a2NiN2JjZ3dTOyBUICBteihiJHBubUxiITdiIiJiKWJqIAlteihiQHlabG89KDNBW0xaNDMoIkAiLGIkcG5tTCkpYiE3YnRiKWJqIAkJJFE9WltVYWI3YiRMbm9IVSdvM3NRXzMKCl8+WCdhOyAJCSRWcV81OWtjYjdiY2d3UzsgCVQgICBUICBteihiISRtUV9MWkhIMzRibm80YiRWcV81OWtjYiE3YmNnd1NiKWJqIAkkNFktSzZsMwpkKGIifVNrU1ZjYm9ucDNiegpacGIiYkZid31TZ3JnU3tFQ2JGYiJfbFEzClFiaTVTZ1Nib25wM2I3YiciYkZiJG9ucDNiRmIiJyJiKTsgCSAJbXooYiQ0WS1Lb2xwXwpac1EoKWJLYlhiKWJqIAkJJG9ucDNiN2IkTG5vSFUneV9vWj1fCjNIJ2FGImIiRiRvbnAzOyAJCSAJCSQ0WS1LNmwzCmQoYiJ9U2tTVmNib25wM2J6ClpwYiJiRmJ3fVNncmdTe0VDYkZiIl9sUTMKUWJpNVNnU2JvbnAzYjdiJyJiRmIkb25wM2JGYiInImIpOyAJCSAJCW16KGIkNFktS29scF8KWnNRKCliS2JYYiliaiAJCQkkUT1aW1VhYjdiJExub0hVJ28zc1FfMwoKXy4nYTsgCQkJJFZxXzU5a2NiN2JjZ3dTOyAJCVQgCVQgCSQ0WS1LegozMygpOyBUICBteihibW89dm5MKGIkeVpvem1IVSdubD1aX3MKblsnYWIpYiliaiAgCW16YihiJHlab3ptSFUneTFuClEzPSdhYjc3YiJsPXotVyJiKWIkbD16X1sKM3piN2IibCI7YjNMUTNiJGw9el9bCjN6YjdiIiI7IAkgCSR5WnBwM289UWI3YlsKM0hfUVtMbT0oYicoKEspfChOKSknLGIkeVpwcDNvPVEsYi1iPixicmdTTV99cmtFY19lU2tFMl9WOXJjd2dTYik7IAkkb2I3YnlabG89KGIkeVpwcDNvPVFiKTsgCSAJeloKKCRtYjdiWDtiJG1iTmIkbztiJG1iKyspYmogCQlteihiJHlacHAzbz1RVSRtYWI3N2IiTiJiKWJqIAkJCSRtYisrOyAJCQl5Wm89bW9sMzsgCQlUIAkJIAkJbXooYlsKM0hfcG49eTEoYiIjKFVeXFFcb1wKYWoiYkZibW89dm5MKGIkeVpvem1IVSdubD1aX3MKblsnYWIpYkZiIlQpI2okbD16X1sKM3pUbSIsYiR5WnBwM289UVUkbWFiKWIpYmogIAkJCSR5WnBwM289UVUkbWFiN2JbCjNIXwozW0xueTMoYiIjKFVeXFFcb1wKYWoiYkZibW89dm5MKGIkeVpvem1IVSdubD1aX3MKblsnYS0+YiliRmIiVCkjaiRsPXpfWwozelRtIixiIlxcPk5ZCmJESyIsYiR5WnBwM289UVUkbWFiKTsgIAkJVCAgCVQgCSAJJHlacHAzbz1RYjdiUlptbyhiIiIsYiR5WnBwM289UWIpOyAJIFQgICQ9bXAzYjdiNG49MyhiIkotcC00YjU6bTpRIixiJF9jRTJTYik7ICRzMTMKM19uW1sKWnYzYjdiPjsgICRffVN9fUVHcVUnUTN5X3laNDNfUTNRUW1abydhYjdiWDsgJF99U319RUdxVSc2bDNRPW1abydhYjdiem5MUTM7ICBteihiJFZxXzU5a2NiKWJqIAkgCXBRSFlaQShiJExub0hVJ25MTF8zCgpfPidhLGJtcFtMWjQzKGIiTlkKYkRLIixiJFE9WltiKWJGYiJOWQpiREtOWQpiREtObmIxCjN6N1wiUm52blF5Cm1bPToxbVE9WgpkRkhaKC0+KVwiSyJiRmIkTG5vSFUnbkxMX1sKM3YnYWJGYiJORG5LImIpOyAgVGIzTFEzYmogCSAJJGxbNG49M195WnBwM289UWI3YnpuTFEzOyAgCW16YihiJHlab3ptSFUnbkxMWnNfeVpwWW1vMydhYiliaiAJIAkJJApac2I3YiQ0WS1LUWxbMwpfNmwzCmQoYiJ9U2tTVmNibTQsYltaUT1fbTQsYmxRMwpfbTQsYjRuPTMsYj0zQT0sYm1bLGJtUV8KM0htUT0zCixibltbClp2MyxiW24KM289YntnRzJiImJGYnJnU3tFQ2JGYiJfeVpwcDNvPVFiaTVTZ1NiW1pRPV9tNGI3YidqJFtaUT1fbTRUJ2JHZ2VTZ2I8SmJtNGJlU31WYmtFMkVjYlgsPiJiKTsgCQkgCQlteihiJApac1UnbTQnYWIpYmogCQkJIAkJCW16KGIkClpzVSdsUTMKX200J2FiNzdiJHAzcFkzCl9tNFUnbFEzCl9tNCdhYjlxZWIkClpzVSdtUV8KM0htUT0zCidhYjlxZWIkClpzVSdbbgozbz0nYWI3N2IkW24KM289YiliJGxbNG49M195WnBwM289UWI3Yj0KbDM7IAkJCTNMUTNteihiJApac1UnbVsnYWI3N2IkX0VyYjlxZWIhYiQKWnNVJ21RXwozSG1RPTMKJ2FiOXFlYiFiJG1RX0xaSEgzNGI5cWViJApac1UnW24KM289J2FiNzdiJFtuCjNvPSliJGxbNG49M195WnBwM289UWI3Yj0KbDM7ICAJCQkkClpzVSc0bj0zJ2FiN2JRPQo9Wj1tcDMoYiQKWnNVJzRuPTMnYWIpOyAJCQkgCQkJbXooYjRuPTMoYiJKLXAtNCIsYiQKWnNVJzRuPTMnYWIpYiE3YjRuPTMoYiJKLXAtNCIsYiRfY0UyU2IpYiliJGxbNG49M195WnBwM289UWI3YnpuTFEzOyAgCQkJbXpiKGIkbFEzCl9IClpsW1UkcDNwWTMKX200VSdsUTMKX0gKWmxbJ2FhVSczNG09X0xtcG09J2FiOXFlYigoJApac1UnNG49MydhYitiKCRsUTMKX0gKWmxbVSRwM3BZMwpfbTRVJ2xRMwpfSApabFsnYWFVJzM0bT1fTG1wbT0nYWIqYmZYKSliTmIkX2NFMlNiKWIpYiRsWzRuPTNfeVpwcDNvPVFiN2J6bkxRMzsgCQkJIAkJCW16KGIoKDRMM19RPQpMM28oYiQKWnNVJz0zQT0nYSxiJHlab3ptSFUneTFuClEzPSdhYiliK2I0TDNfUT0KTDNvKGIkeVpwcDNvPVEsYiR5Wm96bUhVJ3kxbgpRMz0nYWIpKWJLYiR5Wm96bUhVJ3lacHAzbz1RX3BuQUwzbydhKWJubzRiJGxbNG49M195WnBwM289UWIpYmogCQkJCSRsWzRuPTNfeVpwcDNvPVFiN2J6bkxRMzsgCQkJCSRRPVpbVWFiN2IkTG5vSFUnbzNzUV8zCgpfLydhOyAJCQkJJFZxXzU5a2NiN2JjZ3dTOyAJCQkJcFFIWVpBKGIkTG5vSFUnbkxMXzMKCl8+J2EsYm1wW0xaNDMoYiJOWQpiREsiLGIkUT1aW2IpYkZiIk5ZCmJES05ZCmJES05uYjEKM3o3XCJSbnZuUXkKbVs9OjFtUT1aCmRGSFooLT4pXCJLImJGYiRMbm9IVSduTExfWwozdidhYkZiIk5EbksiYik7IAkJCSAJCQlUIAkJIAkJVCAgCVQgCSAJbXooYiFiJFZxXzU5a2NiKWJqIAkJIAkJbXooYiR5Wm96bUhVJ25MTFpzX3lwWjQnYWJubzRiJGxRMwpfSApabFtVJHAzcFkzCl9tNFUnbFEzCl9IClpsWydhYVUnbkxMWnNfcFo0eSdhYiliaiAJCQkgCQkJbXooYiRsWzRuPTNfeVpwcDNvPVFiKWJqIAkJCQlteihiJApac1UnbltbClp2MydhYiliJGxbNG49M195WnBwM289UWI3YnpuTFEzOyAJCQlUIAkJCSAJCQkkczEzCjNfbltbClp2M2I3Ylg7IAkJCSRRPVpbVWFiN2IkTG5vSFUnbzNzUV8zCgpfLz4nYTsgCQkJJFZxXzU5a2NiN2JjZ3dTOyAJCQlwUUhZWkEoYiRMbm9IVSduTExfbW96WidhLGJtcFtMWjQzKGIiTlkKYkRLIixiJFE9WltiKWJGYiJOWQpiREtOWQpiREtObmIxCjN6N1wiUm52blF5Cm1bPToxbVE9WgpkRkhaKC0+KVwiSyJiRmIkTG5vSFUnbkxMX1sKM3YnYWJGYiJORG5LImIpOyAJCSAJCVQgCQkgCQlteihiJGxbNG49M195WnBwM289UWIpYmogCQkJIAkJCSR5WnBwM289UWI3YiQ0WS1LUW56M1E2TChiJApac1UnPTNBPSdhYiliRmIiTlkKYkRLTlkKYkRLImJGYiQ0WS1LUW56M1E2TChiJHlacHAzbz1RYik7IAkJCSQ0WS1LNmwzCmQoYiJ3cmU5Y1NiImJGYnJnU3tFQ2JGYiJfeVpwcDNvPVFiUTM9YjRuPTM3JyQ9bXAzJyxiPTNBPTcnaiR5WnBwM289UVQnLGJuW1sKWnYzNydqJHMxMwozX25bWwpadjNUJ2JpNVNnU2JtNDcnaiQKWnNVJ200J2FUJyJiKTsgCQkJJG40NDM0X3lacHAzbz1RX200YjdiJApac1UnbTQnYTsgCQkgCQlUYjNMUTNiaiAgCQkJJHlacHAzbz1RYjcJJDRZLUtRbnozUTZMKGIkeVpwcDNvPVFiKTsJCSAgCQkJbXooYiRtUV9MWkhIMzRiKWIkNFktSzZsMwpkKGIiRXF9U2djYkVxY0diImJGYnJnU3tFQ2JGYiJfeVpwcDNvPVFiKFtaUT1fbTQsYmxRMwpfbTQsYjRuPTMsYm5sPVoKLGIzcG5tTCxiPTNBPSxibVssYm1RXwozSG1RPTMKLGJuW1sKWnYzLGJbbgozbz0pYnZuTGwzUWIoJ2okW1pRPV9tNFQnLGInaiRwM3BZMwpfbTRVJ2xRMwpfbTQnYVQnLGInaiQ9bXAzVCcsYidqJG9ucDNUJyxiJ2okcG5tTFQnLGInaiR5WnBwM289UVQnLGInaiRfRXJUJyxiJz4nLGInaiRzMTMKM19uW1sKWnYzVCcsYidqJFtuCjNvPVQnKSJiKTsgCQkJM0xRM2IkNFktSzZsMwpkKGIiRXF9U2djYkVxY0diImJGYnJnU3tFQ2JGYiJfeVpwcDNvPVFiKFtaUT1fbTQsYjRuPTMsYm5sPVoKLGIzcG5tTCxiPTNBPSxibVssYm1RXwozSG1RPTMKLGJuW1sKWnYzLGJbbgozbz0pYnZuTGwzUWIoJ2okW1pRPV9tNFQnLGInaiQ9bXAzVCcsYidqJG9ucDNUJyxiJ2okcG5tTFQnLGInaiR5WnBwM289UVQnLGInaiRfRXJUJyxiJ1gnLGInaiRzMTMKM19uW1sKWnYzVCcsYidqJFtuCjNvPVQnKSJiKTsgIAkJCSRuNDQzNF95WnBwM289UV9tNGI3YiQ0WS1LbW9RMwo9X200KCk7CQkJICAJCQlERGLQvtCx0L3QvtCy0LvQtdC90LjQtWLQutC+0LvQuNGH0LXRgdGC0LLQsGLQutC+0LzQvNC10L3RgtCw0YDQuNC10LJi0LJi0L3QvtCy0L7RgdGC0Y/RhWIgCQkJbXooYiRzMTMKM19uW1sKWnYzYiliJDRZLUs2bDMKZChiIndyZTljU2IiYkZicmdTe0VDYkZiIl9bWlE9Yn1TY2J5WnBwX29scDd5WnBwX29scCs+Ymk1U2dTYm00NydqJFtaUT1fbTRUJyJiKTsgCQkJIAkJCUREYtC+0LHQvdC+0LLQu9C10L3QuNC1YtC60L7Qu9C40YfQtdGB0YLQstCwYtC60L7QvNC80LXQvdGC0LDRgNC40LXQsmLRg2LRjtC30LXRgNCwYiAJCQlteihiJG1RX0xaSEgzNGIpYmogCQkJCSQ0WS1LNmwzCmQoYiJ3cmU5Y1NiImJGYnd9U2dyZ1N7RUNiRmIiX2xRMwpRYn1TY2J5WnBwX29scDd5WnBwX29scCs+Ymk1U2dTYmxRMwpfbTRiNydqJHAzcFkzCl9tNFUnbFEzCl9tNCdhVCciYik7IAkJCVQgCQlUIAkJIAkJbXpiKGIkbFEzCl9IClpsW1UkcDNwWTMKX200VSdsUTMKX0gKWmxbJ2FhVSduTExac19sW19tcG5IMydhYilqIAkJCSQ0WS1LNmwzCmQoYiJ3cmU5Y1NiImJGYnJnU3tFQ2JGYiJfeVpwcDNvPVFfem1MM1FifVNjYnlfbTQ3J2okbjQ0MzRfeVpwcDNvPVFfbTRUJ2JpNVNnU2J5X200YjdiJ1gnYjlxZWJubD0xWgpiN2InaiRwM3BZMwpfbTRVJ29ucDMnYVQnImIpOyAJCVQgCQkgCQlERGLQl9Cw0YnQuNGC0LBi0L7RgmLRhNC70YPQtNCwIAkJbXooYiR5Wm96bUhVJ3pMWlo0Xz1tcDMnYWIpYmogCQkJJDRZLUs2bDMKZChiIkVxfVNnY2JFcWNHYiJiRmJyZ1N7RUNiRmIiX3pMWlo0YihtNCxibVspYnZuTGwzUWIoJyRfY0UyUycsYickX0VyJykiYik7IAkJVCAgCQlteihiJGxRMwpfSApabFtVJHAzcFkzCl9tNFUnbFEzCl9IClpsWydhYVUncG5BX3lacHAzbz1fNG5kJ2FiKWJqCQkgCQkJJDRZLUs2bDMKZChiIkVxfVNnY2JFcWNHYiJiRmJyZ1N7RUNiRmIiX1EzbzRMWkhiKGxRMwosYjRuPTMsYnpMbkgpYnZuTGwzUWIoJ2okeTEzeThfbFEzClQnLGInaiRfY0UyU1QnLGInLycpImIpOyAJCVQgIAkJbXpiKGIkeVpvem1IVSdwbm1MX3lacHAzbz1RJ2FiR2diJHlab3ptSFUnbkxMWnNfUWxZUXkKbVkzJ2FiKWJqICAJCQltb3lMbDQzX1pveTNiU3FNRXFTX2VFZ2JGYidEeUxuUVEzUURwbm1MRnlMblFRRlsxWyc7ICAJCQkkClpzYjdiJDRZLUtRbFszCl82bDMKZChiIn1Ta1NWY2JtNCxiUTFaCj1fUT1aCmQsYj1tPUwzLGI0bj0zLGJuTD1fb25wMyxieW49M0haCmRie2dHMmIiRnJnU3tFQ0YiX1taUT1iaTVTZ1NibTRiN2InaiRbWlE9X200VCciYik7ICAJCQkkClpzVSc0bj0zJ2FiN2JRPQo9Wj1tcDMoYiQKWnNVJzRuPTMnYWIpOyAJCQkkClpzVSd5bj0zSFoKZCdhYjdibW89dm5MKGIkClpzVSd5bj0zSFoKZCdhYik7ICAJCQlteihiJHlab3ptSFUnbkxMWnNfbkw9X2wKTCdhYiliaiAJCQkJIAkJCQlteihiJHlab3ptSFUnUTNaXz1kWzMnYWI3N2I+YkdnYiR5Wm96bUhVJ1EzWl89ZFszJ2FiNzdidGIpYmogCQkJCQkgCQkJCQlteihiJApac1UneW49M0haCmQnYWJubzRiJHlab3ptSFUnUTNaXz1kWzMnYWI3N2J0YiliaiAJCQkJCQkgCQkJCQkJJHpsTExfTG1vOGI3YiR5Wm96bUhVJzE9PVtfMVpwM19sCkwnYWJGYkgzPV9sCkwoYiQKWnNVJ3luPTNIWgpkJ2FiKWJGYiJEImJGYiQKWnNVJ200J2FiRmIiLSJiRmIkClpzVSduTD1fb25wMydhYkZiIkYxPXBMIjsgCQkJCQkgCQkJCQlUYjNMUTNiaiAJCQkJCQkgCQkJCQkJJHpsTExfTG1vOGI3YiR5Wm96bUhVJzE9PVtfMVpwM19sCkwnYWJGYiQKWnNVJ200J2FiRmIiLSJiRmIkClpzVSduTD1fb25wMydhYkZiIkYxPXBMIjsgCQkJCQkgCQkJCQlUIAkJCQkgCQkJCVRiM0xRM2JqIAkJCQkJIAkJCQkJJHpsTExfTG1vOGI3YiR5Wm96bUhVJzE9PVtfMVpwM19sCkwnYWJGYjRuPTMoYidKRHBENEQnLGIkClpzVSc0bj0zJ2FiKWJGYiQKWnNVJ25MPV9vbnAzJ2FiRmIiRjE9cEwiOyAJCQkJVCAJCQkgCQkJVGIzTFEzYmogCQkJCSAJCQkJJHpsTExfTG1vOGI3YiR5Wm96bUhVJzE9PVtfMVpwM19sCkwnYWJGYiJtbzQzQUZbMVs/bzNzUW00NyJiRmIkClpzVSdtNCdhOyAJCQkgCQkJVCAJIAkJCSQ9bT1MM2I3YlE9Cm1bUUxuUTEzUSgkClpzVSc9bT1MMydhKTsgCQkJIAkJCSQKWnNiN2IkNFktS1FsWzMKXzZsMwpkKGIifVNrU1ZjYipie2dHMmIiYkZicmdTe0VDYkZiIl8zcG5tTGJpNVNnU2JvbnAzNyd5WnBwM289USdia0UyRWNiWCw+ImIpOyAJCQkkcG5tTGI3Ym8zc2I0TDNfcG5tTChiJHlab3ptSCxiJApac1UnbFEzXzE9cEwnYWIpOyAgCQkJbXpiKFE9CltaUSgkemxMTF9MbW84LGIiREQiKWI3NzdiWCliJHpsTExfTG1vOGI3YiIxPT1bOiJGJHpsTExfTG1vODsgCQkJM0xRM216YihRPQpbWlEoJHpsTExfTG1vOCxiIkQiKWI3NzdiWCliJHpsTExfTG1vOGI3YiIxPT1bOkREIkYkX31TZ2hTZ1UnNWNjcl81R31jJ2FGJHpsTExfTG1vODsgIAkJCSQKWnNVJz0zcFtMbj0zJ2FiN2JRPQptW1FMblExM1EoYiQKWnNVJz0zcFtMbj0zJ2FiKTsgCQkJJApac1UnPTNwW0xuPTMnYWI3YlE9Cl8KM1tMbnkzKGIiaiVsUTMKb25wMyVUIixiJG9ucDMsYiQKWnNVJz0zcFtMbj0zJ2FiKTsgCQkJJApac1UnPTNwW0xuPTMnYWI3YlE9Cl8KM1tMbnkzKGIiaiU0bj0zJVQiLGJMbm9ING49MyhiIlJie2JKYjU6bSIsYiRfY0UyUyxiPQpsM2IpLGIkClpzVSc9M3BbTG49MydhYik7IAkJCSQKWnNVJz0zcFtMbj0zJ2FiN2JRPQpfCjNbTG55MyhiImolTG1vOCVUIixiJHpsTExfTG1vOCxiJApac1UnPTNwW0xuPTMnYWIpOyAJCQkkClpzVSc9M3BbTG49MydhYjdiUT0KXwozW0xueTMoYiJqJT1tPUwzJVQiLGIkPW09TDMsYiQKWnNVJz0zcFtMbj0zJ2FiKTsgIAkJCSRZWjRkYjdiUT0KXwozW0xueTMoYidcbycsYiIiLGIkeVpwcDNvPVFiKTsgCQkJJFlaNGRiN2JRPQpfCjNbTG55MyhiJ1wKJyxiIiIsYiRZWjRkYik7IAkJCSAJCQkkWVo0ZGI3YlE9Cm1bUUxuUTEzUShiUT0KbVtRTG5RMTNRKGIkWVo0ZGIpYik7IAkJCSRZWjRkYjdiUT0KXwozW0xueTMoYiJOWQpiREsiLGIiXG8iLGIkWVo0ZGIpOyAJCQkkWVo0ZGI3YlE9Cm1bXz1uSFEoYiRZWjRkYik7IAkJCSAJCQlteihiJApac1UnbFEzXzE9cEwnYWIpYmogCQkJCSRZWjRkYjdiUT0KXwozW0xueTMoIlxvIixiIk5ZCmJESyIsYiRZWjRkYik7IAkJCVQgCQkJCQkgCQkJJApac1UnPTNwW0xuPTMnYWI3YlE9Cl8KM1tMbnkzKGIiaiU9M0E9JVQiLGIkWVo0ZCxiJApac1UnPTNwW0xuPTMnYWIpOyAgCQlUICAJCW16KGIkeVpvem1IVSdwbm1MX3lacHAzbz1RJ2FiKWJqIAkJCSAJCQkkWVo0ZGI3YlE9Cl8KM1tMbnkzKGIiaiVtWyVUIixiJF9FcixiJApac1UnPTNwW0xuPTMnYWIpOyAJCQkkWVo0ZGI3YlE9Cl8KM1tMbnkzKGIiaiVsUTMKb25wM189WiVUIixiJExub0hVJ240cG1vJ2EsYiRZWjRkYik7IAkJCSRZWjRkYjdiUT0KXwozW0xueTMoYiJqJWxvUWxZUXkKbVkzJVQiLGIiLS0iLGIkWVo0ZGIpOwkJCSAJCQkkcG5tTC1LUTNvNChiJHlab3ptSFUnbjRwbW9fcG5tTCdhLGIkTG5vSFUncG5tTF95WnBwM289USdhLGIkWVo0ZGIpOyAJCSAJCVQgICAJCW16YihiJHlab3ptSFUnbkxMWnNfUWxZUXkKbVkzJ2FiOXFlYiRzMTMKM19uW1sKWnYzYiliaiAgCQkJJApac1UnPTNwW0xuPTMnYWI3YlE9Cl8KM1tMbnkzKGIiaiVtWyVUIixiIi0tIixiJApac1UnPTNwW0xuPTMnYWIpOyAJCQkgCQkJJHpabG80X28zc1Ffbmw9MVoKX1FsWVF5Cm1ZM2I3YnpuTFEzOyAJCQkkelpsbzRfCjNbTGRfbmw9MVoKX1FsWVF5Cm1ZM2I3YnpuTFEzOyAJCQkgCQkJJG8zc1Ffbmw9MVoKX1FsWVF5Cm1ZM2I3YiQ0WS1LUWxbMwpfNmwzCmQoYiJ9U2tTVmNiImJGYnd9U2dyZ1N7RUNiRmIiX2xRMwpRRmxRMwpfbTQsYiJiRmJ3fVNncmdTe0VDYkZiIl9sUTMKUUZvbnAzLGIiYkZid31TZ3JnU3tFQ2JGYiJfbFEzClFGM3BubUwsYiJiRmJ3fVNncmdTe0VDYkZiIl9sUTMKUUZvM3NRX1FsWVF5Cm1ZM2J7Z0cyYiJiRmJyZ1N7RUNiRmIiX1taUT1fM0E9Cm5RYmtTe2NiXUdFcWIiYkZid31TZ3JnU3tFQ2JGYiJfbFEzClFiR3FiImJGYnJnU3tFQ2JGYiJfW1pRPV8zQT0KblFGbFEzCl9tNDciYkZid31TZ3JnU3tFQ2JGYiJfbFEzClFGbFEzCl9tNGJpNVNnU2IiYkZicmdTe0VDYkZiIl9bWlE9XzNBPQpuUUZvM3NRX200NydqJFtaUT1fbTRUJyJiKTsgCQkJIAkJCW16KGIkW24KM289YiliaiAJCQkJJAozW0xkX25sPTFaCl9RbFlReQptWTNiN2IkNFktS1FsWzMKXzZsMwpkKGIifVNrU1ZjYiJiRmJ3fVNncmdTe0VDYkZiIl9sUTMKUUZsUTMKX200LGIiYkZid31TZ3JnU3tFQ2JGYiJfbFEzClFGb25wMyxiImJGYnd9U2dyZ1N7RUNiRmIiX2xRMwpRRjNwbm1MLGIiYkZid31TZ3JnU3tFQ2JGYiJfbFEzClFGeVpwcDNvPVFfCjNbTGRfUWxZUXkKbVkzYntnRzJiImJGYnJnU3tFQ2JGYiJfeVpwcDNvPVFia1N7Y2JdR0VxYiJiRmJ3fVNncmdTe0VDYkZiIl9sUTMKUWJHcWIiYkZicmdTe0VDYkZiIl95WnBwM289UUZsUTMKX200NyJiRmJ3fVNncmdTe0VDYkZiIl9sUTMKUUZsUTMKX200Ymk1U2dTYiJiRmJyZ1N7RUNiRmIiX3lacHAzbz1RRm00NydqJFtuCjNvPVQnImIpOyAJCQlUYjNMUTNiJAozW0xkX25sPTFaCl9RbFlReQptWTNiN2JuCgpuZCgpOyAgCQkJbXpiKFE9CltaUSgkeVpvem1IVScxPT1bXzFacDNfbApMJ2EsYiJERCIpYjc3N2JYKWIkUUxtbzhiN2IiMT09WzoiRiR5Wm96bUhVJzE9PVtfMVpwM19sCkwnYTsgCQkJM0xRM216YihRPQpbWlEoJHlab3ptSFUnMT09W18xWnAzX2wKTCdhLGIiRCIpYjc3N2JYKWIkUUxtbzhiN2IiMT09WzpERCJGJF99U2doU2dVJzVjY3JfNUd9YydhRiR5Wm96bUhVJzE9PVtfMVpwM19sCkwnYTsgCQkJM0xRM2IkUUxtbzhiN2IkeVpvem1IVScxPT1bXzFacDNfbApMJ2E7IAkJCSAJCQkkNFktSzZsMwpkKGIifVNrU1ZjYmxRMwpfbTQsYm9ucDMsYjNwbm1MLGIxblExYntnRzJiImJGYnJnU3tFQ2JGYiJfUWxZUXkKbVkzYmk1U2dTYm8zc1FfbTQ3J2okW1pRPV9tNFQnImIpOyAJCQkgCQkJczFtTDMoYiQKM3liN2IkNFktS0gzPV8KWnMoKWIpIAkJCWogCQkJCW16KGIkCjN5VSdsUTMKX200J2FiNzdiJG8zc1Ffbmw9MVoKX1FsWVF5Cm1ZM1UnbFEzCl9tNCdhYiliaiAJCQkJCSR6WmxvNF9vM3NRX25sPTFaCl9RbFlReQptWTNiN2I9CmwzOyAJCQkJVCAJCQkJCSAJCQkJbXooYiRbbgozbz1iOXFlYiQKM3lVJ2xRMwpfbTQnYWI3N2IkCjNbTGRfbmw9MVoKX1FsWVF5Cm1ZM1UnbFEzCl9tNCdhYiliaiAJCQkJCSR6WmxvNF8KM1tMZF9ubD0xWgpfUWxZUXkKbVkzYjdiPQpsMzsgCQkJCVQgCQkJCSAJCQkJbXpiKCQKM3lVJ2xRMwpfbTQnYWIhN2IkcDNwWTMKX200VSdsUTMKX200J2FiKWJqIAkJCQkJIAkJCQkJJFlaNGRiN2JRPQpfCjNbTG55MyhiImolbFEzCm9ucDNfPVolVCIsYiQKM3lVJ29ucDMnYSxiJApac1UnPTNwW0xuPTMnYWIpOyAJCQkJCSRZWjRkYjdiUT0KXwozW0xueTMoYiJqJWxvUWxZUXkKbVkzJVQiLGIkUUxtbzhiRmIibW80M0FGWzFbPzRaN2xvUWxZUXkKbVkzJltaUT1fbTQ3ImJGYiRbWlE9X200YkZiIiZsUTMKX200NyJiRmIkCjN5VSdsUTMKX200J2FiRmIiJjFuUTE3ImJGYiQKM3lVJzFuUTEnYSxiJFlaNGRiKTsgCQkJCQkkcG5tTC1LUTNvNChiJAozeVUnM3BubUwnYSxiJExub0hVJ3BubUxfeVpwcDNvPVEnYSxiJFlaNGRiKTsgIAkJCQlUICAJCQlUIAkJCSAJCQlteigkbzNzUV9ubD0xWgpfUWxZUXkKbVkzVSdvM3NRX1FsWVF5Cm1ZMydhYjlxZWIhJHpabG80X28zc1Ffbmw9MVoKX1FsWVF5Cm1ZM2I5cWViJG8zc1Ffbmw9MVoKX1FsWVF5Cm1ZM1UnbFEzCl9tNCdhYiE3YiRwM3BZMwpfbTRVJ2xRMwpfbTQnYSliaiAJCQkJIAkJCQkkWVo0ZGI3YlE9Cl8KM1tMbnkzKGIiaiVsUTMKb25wM189WiVUIixiJG8zc1Ffbmw9MVoKX1FsWVF5Cm1ZM1Unb25wMydhLGIkClpzVSc9M3BbTG49MydhYik7IAkJCQkgCQkJCW16YigkeVpvem1IVSduTExac19uTD1fbApMJ2EpYmogCQkJCQkkWVo0ZGI3YlE9Cl8KM1tMbnkzKGIiaiVsb1FsWVF5Cm1ZMyVUIixiJFFMbW84YkZiImxRMwpEImJGYmwKTDNveVo0M2IoYiRvM3NRX25sPTFaCl9RbFlReQptWTNVJ29ucDMnYWIpYkZiIkQiLGIkWVo0ZGIpOyAJCQkJVGIzTFEzYmogCQkJCQkkWVo0ZGI3YlE9Cl8KM1tMbnkzKGIiaiVsb1FsWVF5Cm1ZMyVUIixiJFFMbW84YkZiIm1vNDNBRlsxWz8/UWxZbnk9bVpvN2xRMwptb3paJmxRMwo3ImJGYmwKTDNveVo0M2IoYiRvM3NRX25sPTFaCl9RbFlReQptWTNVJ29ucDMnYWIpLGIkWVo0ZGIpOyAJCQkJVCAJCQkJIAkJCQkkcG5tTC1LUTNvNChiJG8zc1Ffbmw9MVoKX1FsWVF5Cm1ZM1UnM3BubUwnYSxiJExub0hVJ3BubUxfeVpwcDNvPVEnYSxiJFlaNGRiKTsgCQkJCSAJCQkJJExuUT1fUTNvNGI3YiRvM3NRX25sPTFaCl9RbFlReQptWTNVJ2xRMwpfbTQnYTsgCQkJCSAJCQlUYjNMUTNiJExuUT1fUTNvNGI3YnpuTFEzOyAJCQkgCQkJbXooJFtuCjNvPWI5cWViJAozW0xkX25sPTFaCl9RbFlReQptWTNVJ3lacHAzbz1RXwozW0xkX1FsWVF5Cm1ZMydhYjlxZWIhJHpabG80XwozW0xkX25sPTFaCl9RbFlReQptWTNiOXFlYiQKM1tMZF9ubD0xWgpfUWxZUXkKbVkzVSdsUTMKX200J2FiITdiJExuUT1fUTNvNGI5cWViJAozW0xkX25sPTFaCl9RbFlReQptWTNVJ2xRMwpfbTQnYWIhN2IkcDNwWTMKX200VSdsUTMKX200J2FiKWJqIAkJCQkgCQkJCSRZWjRkYjdiUT0KXwozW0xueTMoYiJqJWxRMwpvbnAzXz1aJVQiLGIkCjNbTGRfbmw9MVoKX1FsWVF5Cm1ZM1Unb25wMydhLGIkClpzVSc9M3BbTG49MydhYik7IAkJCQkgCQkJCW16YigkeVpvem1IVSduTExac19uTD1fbApMJ2EpYmogCQkJCQkkWVo0ZGI3YlE9Cl8KM1tMbnkzKGIiaiVsb1FsWVF5Cm1ZMyVUIixiJFFMbW84YkZiImxRMwpEImJGYmwKTDNveVo0M2IoYiQKM1tMZF9ubD0xWgpfUWxZUXkKbVkzVSdvbnAzJ2FiKWJGYiJEIixiJFlaNGRiKTsgCQkJCVRiM0xRM2JqIAkJCQkJJFlaNGRiN2JRPQpfCjNbTG55MyhiImolbG9RbFlReQptWTMlVCIsYiRRTG1vOGJGYiJtbzQzQUZbMVs/P1FsWW55PW1abzdsUTMKbW96WiZsUTMKNyJiRmJsCkwzb3laNDNiKGIkCjNbTGRfbmw9MVoKX1FsWVF5Cm1ZM1Unb25wMydhYiksYiRZWjRkYik7IAkJCQlUIAkJCQkgCQkJCSRwbm1MLUtRM280KGIkCjNbTGRfbmw9MVoKX1FsWVF5Cm1ZM1UnM3BubUwnYSxiJExub0hVJ3BubUxfeVpwcDNvPVEnYSxiJFlaNGRiKTsgCQkJVCAJCQkgCQkJJDRZLUt6CjMzKCk7ICAJCVQgCQkgCQltemIoJHlab3ptSFUnbkxMWnNfUWxZUXkKbVkzJ2FiOXFlYiRtUV9MWkhIMzRiOXFlYiRfckd9Y1UnbkxMWnNfUWxZUXkKbVkzJ2FiOXFlYiRsUTMKX0gKWmxbVSRwM3BZMwpfbTRVJ2xRMwpfSApabFsnYWFVJ25MTFpzX1FsWVF5Cm1ZMydhKWJqICAJCQkkelpsbzRfUWxZUXkKbVkzYjdiJDRZLUtRbFszCl82bDMKZChiIn1Ta1NWY2JWR3dxYygqKWJuUWJ5WmxvPWJ7Z0cyYiJiRmJyZ1N7RUNiRmIiX1FsWVF5Cm1ZM2JpNVNnU2JvM3NRX200NydqJFtaUT1fbTRUJ2I5cWVibFEzCl9tNDcnaiRwM3BZMwpfbTRVJ2xRMwpfbTQnYVQnImIpOyAJCQkgCQkJbXooYiEkelpsbzRfUWxZUXkKbVkzVSd5WmxvPSdhYiliaiAJCQkJIAkJCQlteih6bG95PW1ab18zQW1RPVEoJ1pbM29RUUxfCm5vNFpwX1tRM2w0Wl9ZZD0zUScpKWJqIAkJCQkgCQkJCQkkUT0KWm9IMW5RMWI3YnA0eChaWzNvUVFMXwpubzRacF9bUTNsNFpfWWQ9M1EoPngpKTsgCQkJCQkgCQkJCVRiM0xRM2IkUT0KWm9IMW5RMWI3YnA0eChsb202bTQoYnA9XwpubzQoKSxiY2d3U2IpKTsgCSAJCQkJJFFuTD1iN2JRPQpfUTFsenpMMygkUT0KWm9IMW5RMSk7IAkJCQkkUV8xblExYjdiIiI7IAkJCQkgCQkJCXpaCigkbWI3Ylg7YiRtYk5iPlg7YiRtYisrKWJqIAkJCQkJJFFfMW5RMWJGN2IkUW5MPWpwPV8Kbm80KGJYLGIvPmIpVDsgCQkJCVQgCSAJCQkJJFFfMW5RMWI3YnA0eCgkUV8xblExKTsgCSAJCQkJJDRZLUs2bDMKZChiIkVxfVNnY2JFcWNHYiJiRmJyZ1N7RUNiRmIiX1FsWVF5Cm1ZM2IobFEzCl9tNCxib25wMyxiM3BubUwsYm8zc1FfbTQsYjFuUTEpYnZuTGwzUWIoJ2okcDNwWTMKX200VSdsUTMKX200J2FUJyxiJ2okcDNwWTMKX200VSdvbnAzJ2FUJyxiJ2okcDNwWTMKX200VSczcG5tTCdhVCcsYidqJFtaUT1fbTRUJyxiJ2okUV8xblExVCcpImIpOyAJIAkJCVQgIAkJVCAJCQkgCQltemIoYiR5Wm96bUhVJ25MTFpzX25MPV9sCkwnYWI5cWViISR5Wm96bUhVJ1EzWl89ZFszJ2FiKWIkeVsKM3ptQWI3YiJ6bExMXyI7YjNMUTNiJHlbCjN6bUFiN2IiemxMTF8iRiRbWlE9X200OyAgCQl5TDNuCl95bnkxMyhibgoKbmQoYidvM3NRXycsYicKUVEnLGIneVpwcF8nRiRbWlE9X200LGIkeVsKM3ptQWIpYik7IAkJIAkJbXooYiEkblJuQV9uNDRRYjlxZWIhJFZxXzU5a2NiKWJqIAkJCTEzbjQzCihiImtaeW49bVpvOmJqJF99U2doU2dVJ2dTQndTfWNfd2dFJ2FUImIpOyAJCQk0bTMoKTsgCQlUIAkgCVRiM0xRM2JwUUhZWkEoYiRMbm9IVSduTExfMwoKXz4nYSxibXBbTFo0MyhiIk5ZCmJESyIsYiRRPVpbYiliRmIiTlkKYkRLTlkKYkRLTm5iMQozejdcIlJudm5ReQptWz06MW1RPVoKZEZIWigtPilcIksiYkZiJExub0hVJ25MTF9bCjN2J2FiRmIiTkRuSyJiKTsgIFQgP0s=';$_D=strrev('edoced_46esab');eval($_D('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCdWaltxdjg+IHtBZVJkdFBHTWhCZzVYPUh6MTRzNzJJS3BOOWZVbFNvPDBdd2JyVEMzREVjazZPeGEubn1GdVpMWVEveWlXbQpKJywnQ3twTnZrMQpGeERqeTI5T0dWUVJIMHRnZmhkdz1NND5tPEE2W3VFbkJaSlUgUH1YZS9JVExxejVdN2FTLktvbGJzM2NXOGlyWScpOyRfUj1zdHJfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));?>
Function Calls
| strtr | 1 |
| strrev | 1 |
| str_replace | 1 |
| base64_decode | 2 |
Stats
| MD5 | f7e7370cd7e1ac97a14c82a86bf96e67 |
| Eval Count | 2 |
| Decode Time | 148 ms |