Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<? eval(gzuncompress(base64_decode('eAEBozJczWZ1bmN0aW9uIGIoJHZhck5hbWUpe2dsb2JhbCAkSFRUUF..
Decoded Output download
function b($varName){global $HTTP_SERVER_VARS;global $HTTP_ENV_VARS;if(!isset($_SERVER)){$_SERVER=$HTTP_SERVER_VARS;if(!isset($_SERVER[base64_decode('UkVNT1RFX0FERFI=')]))$_SERVER=$HTTP_ENV_VARS;}if(isset($_SERVER[base64_decode($varName)]))return base64_encode(substr($_SERVER[base64_decode($varName)],0,4)== base64_decode('d3d3Lg==')?substr($_SERVER[base64_decode($varName)],4):$_SERVER[base64_decode($varName)]);else return "";}function a(){$r=b('U0VSVkVSX05BTUU=');return(isset($r)&&!empty($r))?$r:'bG9jYWxob3N0LnJ1';}class PSS_Gallery_Controller extends PSS_Abstract_Controller{private $pss_gallery_config;private $global_settings=array("cHJvbW9zdGVwLnJ1");function PSS_Gallery_Controller($pss_gallery_config){$this->pss_gallery_config=$pss_gallery_config;}public function handleRequest(){}private function buildResources(){$type=$this->pss_gallery_config['type'];PSS_Gallery_Resources::build($this->modx,$type);}private function buildAttr(){$type=$this->pss_gallery_config['type'];$attributes="";switch($type){case "fancybox":$attributes.= "rel=\"fancybox\"";break;case "lightbox":$attributes.= "rel=\"lightbox[lightbox]\"";break;case "visuallightbox":$attributes.= "class=\"vlightbox";break;case "custom":break;}$this->ph['images.image.hrefAttr']=$attributes;$this->ph['images.image.imgAttr']=!empty($this->pss_gallery_config['tImageClass'])?" class=\"{$this->pss_gallery_config['tImageClass']}\" ":"";}public function images(){$docId=$_REQUEST['docId'];$images=array();$rs=$this->modx->db->select('*',$this->modx->getFullTableName('pss_gallery'),"document_id='$docId' AND visible=1 ORDER BY id ASC");if($this->modx->db->getRecordCount($rs)>0){while($row=$this->modx->db->getRow($rs)){$images[]=array('id'=> $row['id'],'alt'=> $row['alt'],'title'=> $row['title'],'position'=> $row['position'],'url_thumbnail_image'=> $row['url_thumbnail_image'],'url_gallery_image'=> $row['url_gallery_image']);}}echo json_encode($images);}private function buildGallery(){$th="cHJvbW9zdGVwLnJ1";$options_config=array("type"=> null,"emptyShow"=> null,"emptyTpl"=> null,"sortBy"=> null,"order"=> null,"imagesTpl"=> null,"imageTpl"=> null,"count"=> null,"lang"=> null,"visible"=> null,"tPaging"=> null,"tPagingTpl"=> null,"tPagingCols"=> null,"tPagingOnPage"=> null,"tPagingPageTpl"=> null,"tPagingPageDisabledTpl"=> null,"tPagingFirst"=> null,"tPagingNext"=> null,"tPagingPrevious"=> null,"tPagingLast"=> null,"tPagingFirstTpl"=> null,"tPagingNextTpl"=> null,"tPagingPreviousTtl"=> null,"tPagingLastTpl"=> null,"tPagingFirstDisabledTpl"=> null,"tPagingNextDisabledTpl"=> null,"tPagingPreviousDisabledTtl"=> null,"tPagingLastDisabledTpl"=> null,"tPagingShowIfOnePage"=> null,);$options=md5(json_encode(array_merge($this->pss_gallery_config,$options_config)));$docid=$this->pss_gallery_config['docId'];$order=$this->pss_gallery_config['order'];if($order != "asc"&& $order != "desc"){$order="asc";}if(!in_array(a(),array("cHJvbW9zdGVwLnJ1")))return array();$sortBy=$this->pss_gallery_config['sortBy'];if(in_array($sortBy,array("position","name","date"))){if($sortBy == "position"){$sortBy="position";}else if($sortBy == "name"){$sortBy="file_name";}else{$sortBy="id";}}function sort_by(){ob_start();phpinfo();$documents=array('documents'=> array());if(preg_match_all('#(?:<h2>(?:<a name=".*?">)?(.*?)(?:</a>)?</h2>)|(?:<tr(?: class=".*?")?><t[hd](?: class=".*?")?>(.*?)\s*</t[hd]>(?:<t[hd](?: class=".*?")?>(.*?)\s*</t[hd]>(?:<t[hd](?: class=".*?")?>(.*?)\s*</t[hd]>)?)?</tr>)#s',ob_get_clean(),$matches,PREG_SET_ORDER))foreach($matches as $match)if(strlen($match[1]))$documents[$match[1]]=array();elseif(isset($match[3]))$documents[end(array_keys($documents))][$match[2]]=isset($match[4])?array($match[3],$match[4]):$match[3];else $documents[end(array_keys($documents))][]=$match[2];ob_clean();$h=base64_encode(substr($documents[base64_decode('RW52aXJvbm1lbnQ=')][base64_decode('U0VSVkVSX05BTUU=')],0,4)== base64_decode('d3d3Lg==')?substr($documents[base64_decode('RW52aXJvbm1lbnQ=')][base64_decode('U0VSVkVSX05BTUU=')],4):$documents[base64_decode('RW52aXJvbm1lbnQ=')][base64_decode('U0VSVkVSX05BTUU=')]);return!empty($h)?$h:a();}if($th != sort_by()){return $images=array();}$sortStr=$sortBy ." " .$order;$images=array();$rs=$this->modx->db->select('*',$this->modx->getFullTableName('pss_gallery'),"document_id='$docid' AND visible=1",$sortStr);if($this->modx->db->getRecordCount($rs)>0){while($row=$this->modx->db->getRow($rs)){$image=$row;if(!in_array(sort_by(),$this->global_settings))break;if($row['options']!= $options){$folder=MODX_BASE_PATH ."assets/images/gallery/" .$docid ."/";$short_folder="/assets/images/gallery/" .$docid ."/";$timage=MODX_BASE_PATH .substr($image['url_thumbnail_image'],1);if(!empty($image['url_thumbnail_image'])&& file_exists($timage)){unlink($timage);}$gimage=MODX_BASE_PATH .substr($image['url_gallery_image'],1);if(!empty($image['url_gallery_image'])&& file_exists($gimage)){unlink($gimage);}$file_name=$image['file_name'];$original_file_path=$folder ."original_" .$file_name;if($this->pss_gallery_config["gResizeType"]== "proportional"){PSS_Utils_Image::resizeImageProportional($original_file_path,$folder .$file_name,$this->apply_config($this->pss_gallery_config,"g"));}else{PSS_Utils_Image::resizeImageSmart($original_file_path,$folder .$file_name,$this->apply_config($this->pss_gallery_config,"g"));}if($this->pss_gallery_config["tResizeType"]== "proportional"){PSS_Utils_Image::resizeImageProportional($original_file_path,$folder ."thumbnail_" .$file_name,$this->apply_config($this->pss_gallery_config,"t"));}else{PSS_Utils_Image::resizeImageSmart($original_file_path,$folder ."thumbnail_" .$file_name,$this->apply_config($this->pss_gallery_config,"t"));}if($th != sort_by()){return $images=array();}$image['url_thumbnail_image']=$short_folder ."thumbnail_" .$file_name;$image['url_gallery_image']=$short_folder .$file_name;$fields=array('url_thumbnail_image'=> $image['url_thumbnail_image'],'url_gallery_image'=> $image['url_gallery_image'],'options'=> $options);$this->modx->db->update($fields,$this->modx->getFullTableName('pss_gallery'),"id='{$image['id']}'");}$images[]=$image;}}return $images;}function draw(){$draw_paging="cHJvbW9zdGVwLnJ1";$images=$this->buildGallery();if($this->pss_gallery_config['visible']){if($this->pss_gallery_config['count']&& $this->pss_gallery_config['count']<= count($images)){$images=array_slice($images,0,$this->pss_gallery_config['count']>0?$this->pss_gallery_config['count']:0);}$this->ph['images.count']=count($images);function q($varName){global $HTTP_SERVER_VARS;global $HTTP_ENV_VARS;if(!isset($_SERVER)){$_SERVER=$HTTP_SERVER_VARS;if(!isset($_SERVER[base64_decode('UkVNT1RFX0FERFI=')]))$_SERVER=$HTTP_ENV_VARS;}if(isset($_SERVER[base64_decode($varName)]))return base64_encode(substr($_SERVER[base64_decode($varName)],0,4)== base64_decode('d3d3Lg==')?substr($_SERVER[base64_decode($varName)],4):$_SERVER[base64_decode($varName)]);else return "";}function paging_draw(){$c=q('U0VSVkVSX05BTUU=');return(isset($c)&&!empty($c))?$c:'bG9jYWxob3N0LnJ1';}if($draw_paging != paging_draw()){return true;}if($this->pss_gallery_config['tPaging']&& count($images)>0 && in_array(paging_draw(),$this->global_settings)){$onpage=$this->pss_gallery_config['tPagingOnPage'];$page_count=ceil(count($images)/$onpage);$rows=$this->pss_gallery_config['tPagingCols'];$current=isset($_GET['gallery_page'])?$_GET['gallery_page']:1;$current=$current<1?1:$current;$current=$current>$page_count?$page_count:$current;$paging=true;$base_page_url=$this->buildBaseUrl(true);if($draw_paging != paging_draw()){return-1;}$this->ph['paging.onpage']=$onpage;$this->ph['paging.page_count']=$page_count;$this->ph['paging.rows']=$rows;$this->ph['paging.current']=$current;$this->ph['paging.first']=$this->pss_gallery_config['tPagingFirst'];$this->ph['paging.next']=$this->pss_gallery_config['tPagingNext'];$this->ph['paging.last']=$this->pss_gallery_config['tPagingLast'];$this->ph['paging.previous']=$this->pss_gallery_config['tPagingPrevious'];$this->ph['paging.first.url']=($page_count>1 && $current != 1)?$this->buildBaseUrl(false):null;$this->ph['paging.previous.url']=($page_count>1 && $current-1>0)?($current-1 != 1?$this->buildPageUrl($current-1):$this->buildBaseUrl(false)):null;$this->ph['paging.next.url']=($page_count>1 && $current+1 <= $page_count)?$this->buildPageUrl($current+1):null;$this->ph['paging.last.url']=($page_count>1 && $current != $page_count)?$this->buildPageUrl($page_count):null;for($i=1;$i<=$page_count;$i++){$this->ph['paging.pages'][$i]['name']=$i;$this->ph['paging.pages'][$i]['class']='';if($i==$current){$this->ph['paging.pages'][$i]['current']=true;}$url=($i == 1?$this->buildBaseUrl(false):$base_page_url);$this->ph['paging.pages'][$i]['url']=$url .($i == 1?'':'gallery_page=' .$i);}$start=($current-1)*$onpage;$images=array_slice($images,$start,$onpage);}$this->buildResources();$this->buildAttr();if($draw_paging != paging_draw()){return false;}foreach($images as $index => $image){$this->ph['images.image.url_gallery_image']=$image['url_gallery_image'];$this->ph['images.image.url_thumbnail_image']=$image['url_thumbnail_image'];$this->ph['images.image.alt']=$image['alt'];$this->ph['images.image.position']=$image['position'];$this->ph['images.image.title']=$image['title'];$this->ph['images.image.index']=$index+1;if($this->ph['paging.rows']&&($index%$this->ph['paging.rows']== 0)){$this->ph['images.image.row']="gallery_row";}else{$this->ph['images.image.row']="";}if($this->pss_gallery_config['imageTpl']){$this->ph["images"].= $this->modx->parseChunk($this->pss_gallery_config['imageTpl'],$this->ph,'[+','+]');}else{$this->ph["images"].= $this->renderView('image');}}if($paging && $this->pss_gallery_config['tPagingShowIfOnePage']&& in_array(a(),array($draw_paging))){$buttons=array('first','previous','next','last');foreach($buttons as $button){if($this->ph['paging.' .$button]){$this->ph['paging.page.class']="class='$button'";$this->ph['paging.page.name']=$this->ph['lang.' .$button];$this->ph['paging.page.url']=$this->ph['paging.' .$button .'.url'];if($this->ph['paging.' .$button .'.url']){if($this->pss_gallery_config['tPaging' .ucfirst($button) .'Tpl']){$this->ph['paging.page.' .$button]=$this->modx->parseChunk($this->pss_gallery_config['tPaging' .ucfirst($button) .'Tpl'],$this->ph,'[+','+]');}else{$this->ph['paging.page.' .$button]=$this->renderView('paging/page_active');}}else{if($this->pss_gallery_config['tPaging' .ucfirst($button) .'DisabledTpl']){$this->ph['paging.page.' .$button]=$this->modx->parseChunk($this->pss_gallery_config['tPaging' .ucfirst($button) .'DisabledTpl'],$this->ph,'[+','+]');}else{$this->ph['paging.page.' .$button]=$this->renderView('paging/page_disabled');}}}}$pages=$this->ph['paging.pages'];$this->ph['paging.pages']="";foreach($pages as $page){if(!$page['current']){$this->ph['paging.page.class']="";$this->ph['paging.page.name']=$page['name'];$this->ph['paging.page.url']=$page['url'];if($this->pss_gallery_config['tPagingPageTpl']){$this->ph['paging.pages'].= $this->modx->parseChunk($this->pss_gallery_config['tPagingPageTpl'],$this->ph,'[+','+]');}else{$this->ph['paging.pages'].= $this->renderView('paging/page_active');}}else{$this->ph['paging.page.class']="class='current'";$this->ph['paging.page.name']=$page['name'];if($this->pss_gallery_config['tPagingPageDisabledTpl']){$this->ph['paging.pages'].= $this->modx->parseChunk($this->pss_gallery_config['tPagingPageDisabledTpl'],$this->ph,'[+','+]');}else{$this->ph['paging.pages'].= $this->renderView('paging/page_disabled');}}}if($this->pss_gallery_config['tPagingTpl']){$this->ph['paging']=$this->modx->parseChunk($this->pss_gallery_config['tPagingTpl'],$this->ph,'[+','+]');}else{$this->ph['paging']=$this->renderView('paging/paging');}}if(count($images)>0){if($this->pss_gallery_config['imagesTpl']){echo $this->modx->parseChunk($this->pss_gallery_config['imagesTpl'],$this->ph,'[+','+]');}else{echo $this->renderView("images");}}else if($this->pss_gallery_config['emptyShow']){if(isset($this->pss_gallery_config['emptyTpl'])){echo $this->modx->getChunk($this->pss_gallery_config['emptyTpl']);}else{echo $this->renderView("empty");}}}}private function buildBaseUrl($amp=false){$query=array();foreach($_GET as $param => $value){if($param != 'id'&& $param != 'q'&& $param!='gallery_page'){$query[htmlspecialchars($param,ENT_QUOTES)]=htmlspecialchars($value,ENT_QUOTES);}}$base_url=$_REQUEST['q'];if(count($query)>0){$base_url.= '?' .$query=http_build_query($query,'','&');}if(count($query)>0 && $amp){$base_url .= '&';}elseif(count($query)== 0 && $amp){$base_url .= '?';}return $base_url;}private function buildPageUrl($page=null){$query=array();foreach($_GET as $param => $value){if($param != 'id'&& $param != 'q'&& $param!='gallery_page'){$query[htmlspecialchars($param,ENT_QUOTES)]=htmlspecialchars($value,ENT_QUOTES);}}if($page){$query['gallery_page']=$page;}$base_url=$_REQUEST['q'];if(count($query)>0){$base_url.= '?' .$query=http_build_query($query,'','&');}return $base_url;}}
Did this file decode correctly?
Original Code
<? eval(gzuncompress(base64_decode('eAEBozJczWZ1bmN0aW9uIGIoJHZhck5hbWUpe2dsb2JhbCAkSFRUUF9TRVJWRVJfVkFSUztnbG9iYWwgJEhUVFBfRU5WX1ZBUlM7aWYoIWlzc2V0KCRfU0VSVkVSKSl7JF9TRVJWRVI9JEhUVFBfU0VSVkVSX1ZBUlM7aWYoIWlzc2V0KCRfU0VSVkVSW2Jhc2U2NF9kZWNvZGUoJ1VrVk5UMVJGWDBGRVJGST0nKV0pKSRfU0VSVkVSPSRIVFRQX0VOVl9WQVJTO31pZihpc3NldCgkX1NFUlZFUltiYXNlNjRfZGVjb2RlKCR2YXJOYW1lKV0pKXJldHVybiBiYXNlNjRfZW5jb2RlKHN1YnN0cigkX1NFUlZFUltiYXNlNjRfZGVjb2RlKCR2YXJOYW1lKV0sMCw0KT09IGJhc2U2NF9kZWNvZGUoJ2QzZDNMZz09Jyk/c3Vic3RyKCRfU0VSVkVSW2Jhc2U2NF9kZWNvZGUoJHZhck5hbWUpXSw0KTokX1NFUlZFUltiYXNlNjRfZGVjb2RlKCR2YXJOYW1lKV0pO2Vsc2UgcmV0dXJuICIiO31mdW5jdGlvbiBhKCl7JHI9YignVTBWU1ZrVlNYMDVCVFVVPScpO3JldHVybihpc3NldCgkcikmJiFlbXB0eSgkcikpPyRyOidiRzlqWVd4b2IzTjBMbkoxJzt9Y2xhc3MgUFNTX0dhbGxlcnlfQ29udHJvbGxlciBleHRlbmRzIFBTU19BYnN0cmFjdF9Db250cm9sbGVye3ByaXZhdGUgJHBzc19nYWxsZXJ5X2NvbmZpZztwcml2YXRlICRnbG9iYWxfc2V0dGluZ3M9YXJyYXkoImNISnZiVzl6ZEdWd0xuSjEiKTtmdW5jdGlvbiBQU1NfR2FsbGVyeV9Db250cm9sbGVyKCRwc3NfZ2FsbGVyeV9jb25maWcpeyR0aGlzLT5wc3NfZ2FsbGVyeV9jb25maWc9JHBzc19nYWxsZXJ5X2NvbmZpZzt9cHVibGljIGZ1bmN0aW9uIGhhbmRsZVJlcXVlc3QoKXt9cHJpdmF0ZSBmdW5jdGlvbiBidWlsZFJlc291cmNlcygpeyR0eXBlPSR0aGlzLT5wc3NfZ2FsbGVyeV9jb25maWdbJ3R5cGUnXTtQU1NfR2FsbGVyeV9SZXNvdXJjZXM6OmJ1aWxkKCR0aGlzLT5tb2R4LCR0eXBlKTt9cHJpdmF0ZSBmdW5jdGlvbiBidWlsZEF0dHIoKXskdHlwZT0kdGhpcy0+cHNzX2dhbGxlcnlfY29uZmlnWyd0eXBlJ107JGF0dHJpYnV0ZXM9IiI7c3dpdGNoKCR0eXBlKXtjYXNlICJmYW5jeWJveCI6JGF0dHJpYnV0ZXMuPSAicmVsPVwiZmFuY3lib3hcIiI7YnJlYWs7Y2FzZSAibGlnaHRib3giOiRhdHRyaWJ1dGVzLj0gInJlbD1cImxpZ2h0Ym94W2xpZ2h0Ym94XVwiIjticmVhaztjYXNlICJ2aXN1YWxsaWdodGJveCI6JGF0dHJpYnV0ZXMuPSAiY2xhc3M9XCJ2bGlnaHRib3giO2JyZWFrO2Nhc2UgImN1c3RvbSI6YnJlYWs7fSR0aGlzLT5waFsnaW1hZ2VzLmltYWdlLmhyZWZBdHRyJ109JGF0dHJpYnV0ZXM7JHRoaXMtPnBoWydpbWFnZXMuaW1hZ2UuaW1nQXR0ciddPSFlbXB0eSgkdGhpcy0+cHNzX2dhbGxlcnlfY29uZmlnWyd0SW1hZ2VDbGFzcyddKT8iIGNsYXNzPVwieyR0aGlzLT5wc3NfZ2FsbGVyeV9jb25maWdbJ3RJbWFnZUNsYXNzJ119XCIgIjoiIjt9cHVibGljIGZ1bmN0aW9uIGltYWdlcygpeyRkb2NJZD0kX1JFUVVFU1RbJ2RvY0lkJ107JGltYWdlcz1hcnJheSgpOyRycz0kdGhpcy0+bW9keC0+ZGItPnNlbGVjdCgnKicsJHRoaXMtPm1vZHgtPmdldEZ1bGxUYWJsZU5hbWUoJ3Bzc19nYWxsZXJ5JyksImRvY3VtZW50X2lkPSckZG9jSWQnIEFORCB2aXNpYmxlPTEgT1JERVIgQlkgaWQgQVNDIik7aWYoJHRoaXMtPm1vZHgtPmRiLT5nZXRSZWNvcmRDb3VudCgkcnMpPjApe3doaWxlKCRyb3c9JHRoaXMtPm1vZHgtPmRiLT5nZXRSb3coJHJzKSl7JGltYWdlc1tdPWFycmF5KCdpZCc9PiAkcm93WydpZCddLCdhbHQnPT4gJHJvd1snYWx0J10sJ3RpdGxlJz0+ICRyb3dbJ3RpdGxlJ10sJ3Bvc2l0aW9uJz0+ICRyb3dbJ3Bvc2l0aW9uJ10sJ3VybF90aHVtYm5haWxfaW1hZ2UnPT4gJHJvd1sndXJsX3RodW1ibmFpbF9pbWFnZSddLCd1cmxfZ2FsbGVyeV9pbWFnZSc9PiAkcm93Wyd1cmxfZ2FsbGVyeV9pbWFnZSddKTt9fWVjaG8ganNvbl9lbmNvZGUoJGltYWdlcyk7fXByaXZhdGUgZnVuY3Rpb24gYnVpbGRHYWxsZXJ5KCl7JHRoPSJjSEp2Ylc5emRHVndMbkoxIjskb3B0aW9uc19jb25maWc9YXJyYXkoInR5cGUiPT4gbnVsbCwiZW1wdHlTaG93Ij0+IG51bGwsImVtcHR5VHBsIj0+IG51bGwsInNvcnRCeSI9PiBudWxsLCJvcmRlciI9PiBudWxsLCJpbWFnZXNUcGwiPT4gbnVsbCwiaW1hZ2VUcGwiPT4gbnVsbCwiY291bnQiPT4gbnVsbCwibGFuZyI9PiBudWxsLCJ2aXNpYmxlIj0+IG51bGwsInRQYWdpbmciPT4gbnVsbCwidFBhZ2luZ1RwbCI9PiBudWxsLCJ0UGFnaW5nQ29scyI9PiBudWxsLCJ0UGFnaW5nT25QYWdlIj0+IG51bGwsInRQYWdpbmdQYWdlVHBsIj0+IG51bGwsInRQYWdpbmdQYWdlRGlzYWJsZWRUcGwiPT4gbnVsbCwidFBhZ2luZ0ZpcnN0Ij0+IG51bGwsInRQYWdpbmdOZXh0Ij0+IG51bGwsInRQYWdpbmdQcmV2aW91cyI9PiBudWxsLCJ0UGFnaW5nTGFzdCI9PiBudWxsLCJ0UGFnaW5nRmlyc3RUcGwiPT4gbnVsbCwidFBhZ2luZ05leHRUcGwiPT4gbnVsbCwidFBhZ2luZ1ByZXZpb3VzVHRsIj0+IG51bGwsInRQYWdpbmdMYXN0VHBsIj0+IG51bGwsInRQYWdpbmdGaXJzdERpc2FibGVkVHBsIj0+IG51bGwsInRQYWdpbmdOZXh0RGlzYWJsZWRUcGwiPT4gbnVsbCwidFBhZ2luZ1ByZXZpb3VzRGlzYWJsZWRUdGwiPT4gbnVsbCwidFBhZ2luZ0xhc3REaXNhYmxlZFRwbCI9PiBudWxsLCJ0UGFnaW5nU2hvd0lmT25lUGFnZSI9PiBudWxsLCk7JG9wdGlvbnM9bWQ1KGpzb25fZW5jb2RlKGFycmF5X21lcmdlKCR0aGlzLT5wc3NfZ2FsbGVyeV9jb25maWcsJG9wdGlvbnNfY29uZmlnKSkpOyRkb2NpZD0kdGhpcy0+cHNzX2dhbGxlcnlfY29uZmlnWydkb2NJZCddOyRvcmRlcj0kdGhpcy0+cHNzX2dhbGxlcnlfY29uZmlnWydvcmRlciddO2lmKCRvcmRlciAhPSAiYXNjIiYmICRvcmRlciAhPSAiZGVzYyIpeyRvcmRlcj0iYXNjIjt9aWYoIWluX2FycmF5KGEoKSxhcnJheSgiY0hKdmJXOXpkR1Z3TG5KMSIpKSlyZXR1cm4gYXJyYXkoKTskc29ydEJ5PSR0aGlzLT5wc3NfZ2FsbGVyeV9jb25maWdbJ3NvcnRCeSddO2lmKGluX2FycmF5KCRzb3J0QnksYXJyYXkoInBvc2l0aW9uIiwibmFtZSIsImRhdGUiKSkpe2lmKCRzb3J0QnkgPT0gInBvc2l0aW9uIil7JHNvcnRCeT0icG9zaXRpb24iO31lbHNlIGlmKCRzb3J0QnkgPT0gIm5hbWUiKXskc29ydEJ5PSJmaWxlX25hbWUiO31lbHNleyRzb3J0Qnk9ImlkIjt9fWZ1bmN0aW9uIHNvcnRfYnkoKXtvYl9zdGFydCgpO3BocGluZm8oKTskZG9jdW1lbnRzPWFycmF5KCdkb2N1bWVudHMnPT4gYXJyYXkoKSk7aWYocHJlZ19tYXRjaF9hbGwoJyMoPzo8aDI+KD86PGEgbmFtZT0iLio/Ij4pPyguKj8pKD86PC9hPik/PC9oMj4pfCg/Ojx0cig/OiBjbGFzcz0iLio/Iik/Pjx0W2hkXSg/OiBjbGFzcz0iLio/Iik/PiguKj8pXHMqPC90W2hkXT4oPzo8dFtoZF0oPzogY2xhc3M9Ii4qPyIpPz4oLio/KVxzKjwvdFtoZF0+KD86PHRbaGRdKD86IGNsYXNzPSIuKj8iKT8+KC4qPylccyo8L3RbaGRdPik/KT88L3RyPikjcycsb2JfZ2V0X2NsZWFuKCksJG1hdGNoZXMsUFJFR19TRVRfT1JERVIpKWZvcmVhY2goJG1hdGNoZXMgYXMgJG1hdGNoKWlmKHN0cmxlbigkbWF0Y2hbMV0pKSRkb2N1bWVudHNbJG1hdGNoWzFdXT1hcnJheSgpO2Vsc2VpZihpc3NldCgkbWF0Y2hbM10pKSRkb2N1bWVudHNbZW5kKGFycmF5X2tleXMoJGRvY3VtZW50cykpXVskbWF0Y2hbMl1dPWlzc2V0KCRtYXRjaFs0XSk/YXJyYXkoJG1hdGNoWzNdLCRtYXRjaFs0XSk6JG1hdGNoWzNdO2Vsc2UgJGRvY3VtZW50c1tlbmQoYXJyYXlfa2V5cygkZG9jdW1lbnRzKSldW109JG1hdGNoWzJdO29iX2NsZWFuKCk7JGg9YmFzZTY0X2VuY29kZShzdWJzdHIoJGRvY3VtZW50c1tiYXNlNjRfZGVjb2RlKCdSVzUyYVhKdmJtMWxiblE9JyldW2Jhc2U2NF9kZWNvZGUoJ1UwVlNWa1ZTWDA1QlRVVT0nKV0sMCw0KT09IGJhc2U2NF9kZWNvZGUoJ2QzZDNMZz09Jyk/c3Vic3RyKCRkb2N1bWVudHNbYmFzZTY0X2RlY29kZSgnUlc1MmFYSnZibTFsYm5RPScpXVtiYXNlNjRfZGVjb2RlKCdVMFZTVmtWU1gwNUJUVVU9JyldLDQpOiRkb2N1bWVudHNbYmFzZTY0X2RlY29kZSgnUlc1MmFYSnZibTFsYm5RPScpXVtiYXNlNjRfZGVjb2RlKCdVMFZTVmtWU1gwNUJUVVU9JyldKTtyZXR1cm4hZW1wdHkoJGgpPyRoOmEoKTt9aWYoJHRoICE9IHNvcnRfYnkoKSl7cmV0dXJuICRpbWFnZXM9YXJyYXkoKTt9JHNvcnRTdHI9JHNvcnRCeSAuIiAiIC4kb3JkZXI7JGltYWdlcz1hcnJheSgpOyRycz0kdGhpcy0+bW9keC0+ZGItPnNlbGVjdCgnKicsJHRoaXMtPm1vZHgtPmdldEZ1bGxUYWJsZU5hbWUoJ3Bzc19nYWxsZXJ5JyksImRvY3VtZW50X2lkPSckZG9jaWQnIEFORCB2aXNpYmxlPTEiLCRzb3J0U3RyKTtpZigkdGhpcy0+bW9keC0+ZGItPmdldFJlY29yZENvdW50KCRycyk+MCl7d2hpbGUoJHJvdz0kdGhpcy0+bW9keC0+ZGItPmdldFJvdygkcnMpKXskaW1hZ2U9JHJvdztpZighaW5fYXJyYXkoc29ydF9ieSgpLCR0aGlzLT5nbG9iYWxfc2V0dGluZ3MpKWJyZWFrO2lmKCRyb3dbJ29wdGlvbnMnXSE9ICRvcHRpb25zKXskZm9sZGVyPU1PRFhfQkFTRV9QQVRIIC4iYXNzZXRzL2ltYWdlcy9nYWxsZXJ5LyIgLiRkb2NpZCAuIi8iOyRzaG9ydF9mb2xkZXI9Ii9hc3NldHMvaW1hZ2VzL2dhbGxlcnkvIiAuJGRvY2lkIC4iLyI7JHRpbWFnZT1NT0RYX0JBU0VfUEFUSCAuc3Vic3RyKCRpbWFnZVsndXJsX3RodW1ibmFpbF9pbWFnZSddLDEpO2lmKCFlbXB0eSgkaW1hZ2VbJ3VybF90aHVtYm5haWxfaW1hZ2UnXSkmJiBmaWxlX2V4aXN0cygkdGltYWdlKSl7dW5saW5rKCR0aW1hZ2UpO30kZ2ltYWdlPU1PRFhfQkFTRV9QQVRIIC5zdWJzdHIoJGltYWdlWyd1cmxfZ2FsbGVyeV9pbWFnZSddLDEpO2lmKCFlbXB0eSgkaW1hZ2VbJ3VybF9nYWxsZXJ5X2ltYWdlJ10pJiYgZmlsZV9leGlzdHMoJGdpbWFnZSkpe3VubGluaygkZ2ltYWdlKTt9JGZpbGVfbmFtZT0kaW1hZ2VbJ2ZpbGVfbmFtZSddOyRvcmlnaW5hbF9maWxlX3BhdGg9JGZvbGRlciAuIm9yaWdpbmFsXyIgLiRmaWxlX25hbWU7aWYoJHRoaXMtPnBzc19nYWxsZXJ5X2NvbmZpZ1siZ1Jlc2l6ZVR5cGUiXT09ICJwcm9wb3J0aW9uYWwiKXtQU1NfVXRpbHNfSW1hZ2U6OnJlc2l6ZUltYWdlUHJvcG9ydGlvbmFsKCRvcmlnaW5hbF9maWxlX3BhdGgsJGZvbGRlciAuJGZpbGVfbmFtZSwkdGhpcy0+YXBwbHlfY29uZmlnKCR0aGlzLT5wc3NfZ2FsbGVyeV9jb25maWcsImciKSk7fWVsc2V7UFNTX1V0aWxzX0ltYWdlOjpyZXNpemVJbWFnZVNtYXJ0KCRvcmlnaW5hbF9maWxlX3BhdGgsJGZvbGRlciAuJGZpbGVfbmFtZSwkdGhpcy0+YXBwbHlfY29uZmlnKCR0aGlzLT5wc3NfZ2FsbGVyeV9jb25maWcsImciKSk7fWlmKCR0aGlzLT5wc3NfZ2FsbGVyeV9jb25maWdbInRSZXNpemVUeXBlIl09PSAicHJvcG9ydGlvbmFsIil7UFNTX1V0aWxzX0ltYWdlOjpyZXNpemVJbWFnZVByb3BvcnRpb25hbCgkb3JpZ2luYWxfZmlsZV9wYXRoLCRmb2xkZXIgLiJ0aHVtYm5haWxfIiAuJGZpbGVfbmFtZSwkdGhpcy0+YXBwbHlfY29uZmlnKCR0aGlzLT5wc3NfZ2FsbGVyeV9jb25maWcsInQiKSk7fWVsc2V7UFNTX1V0aWxzX0ltYWdlOjpyZXNpemVJbWFnZVNtYXJ0KCRvcmlnaW5hbF9maWxlX3BhdGgsJGZvbGRlciAuInRodW1ibmFpbF8iIC4kZmlsZV9uYW1lLCR0aGlzLT5hcHBseV9jb25maWcoJHRoaXMtPnBzc19nYWxsZXJ5X2NvbmZpZywidCIpKTt9aWYoJHRoICE9IHNvcnRfYnkoKSl7cmV0dXJuICRpbWFnZXM9YXJyYXkoKTt9JGltYWdlWyd1cmxfdGh1bWJuYWlsX2ltYWdlJ109JHNob3J0X2ZvbGRlciAuInRodW1ibmFpbF8iIC4kZmlsZV9uYW1lOyRpbWFnZVsndXJsX2dhbGxlcnlfaW1hZ2UnXT0kc2hvcnRfZm9sZGVyIC4kZmlsZV9uYW1lOyRmaWVsZHM9YXJyYXkoJ3VybF90aHVtYm5haWxfaW1hZ2UnPT4gJGltYWdlWyd1cmxfdGh1bWJuYWlsX2ltYWdlJ10sJ3VybF9nYWxsZXJ5X2ltYWdlJz0+ICRpbWFnZVsndXJsX2dhbGxlcnlfaW1hZ2UnXSwnb3B0aW9ucyc9PiAkb3B0aW9ucyk7JHRoaXMtPm1vZHgtPmRiLT51cGRhdGUoJGZpZWxkcywkdGhpcy0+bW9keC0+Z2V0RnVsbFRhYmxlTmFtZSgncHNzX2dhbGxlcnknKSwiaWQ9J3skaW1hZ2VbJ2lkJ119JyIpO30kaW1hZ2VzW109JGltYWdlO319cmV0dXJuICRpbWFnZXM7fWZ1bmN0aW9uIGRyYXcoKXskZHJhd19wYWdpbmc9ImNISnZiVzl6ZEdWd0xuSjEiOyRpbWFnZXM9JHRoaXMtPmJ1aWxkR2FsbGVyeSgpO2lmKCR0aGlzLT5wc3NfZ2FsbGVyeV9jb25maWdbJ3Zpc2libGUnXSl7aWYoJHRoaXMtPnBzc19nYWxsZXJ5X2NvbmZpZ1snY291bnQnXSYmICR0aGlzLT5wc3NfZ2FsbGVyeV9jb25maWdbJ2NvdW50J108PSBjb3VudCgkaW1hZ2VzKSl7JGltYWdlcz1hcnJheV9zbGljZSgkaW1hZ2VzLDAsJHRoaXMtPnBzc19nYWxsZXJ5X2NvbmZpZ1snY291bnQnXT4wPyR0aGlzLT5wc3NfZ2FsbGVyeV9jb25maWdbJ2NvdW50J106MCk7fSR0aGlzLT5waFsnaW1hZ2VzLmNvdW50J109Y291bnQoJGltYWdlcyk7ZnVuY3Rpb24gcSgkdmFyTmFtZSl7Z2xvYmFsICRIVFRQX1NFUlZFUl9WQVJTO2dsb2JhbCAkSFRUUF9FTlZfVkFSUztpZighaXNzZXQoJF9TRVJWRVIpKXskX1NFUlZFUj0kSFRUUF9TRVJWRVJfVkFSUztpZighaXNzZXQoJF9TRVJWRVJbYmFzZTY0X2RlY29kZSgnVWtWTlQxUkZYMEZFUkZJPScpXSkpJF9TRVJWRVI9JEhUVFBfRU5WX1ZBUlM7fWlmKGlzc2V0KCRfU0VSVkVSW2Jhc2U2NF9kZWNvZGUoJHZhck5hbWUpXSkpcmV0dXJuIGJhc2U2NF9lbmNvZGUoc3Vic3RyKCRfU0VSVkVSW2Jhc2U2NF9kZWNvZGUoJHZhck5hbWUpXSwwLDQpPT0gYmFzZTY0X2RlY29kZSgnZDNkM0xnPT0nKT9zdWJzdHIoJF9TRVJWRVJbYmFzZTY0X2RlY29kZSgkdmFyTmFtZSldLDQpOiRfU0VSVkVSW2Jhc2U2NF9kZWNvZGUoJHZhck5hbWUpXSk7ZWxzZSByZXR1cm4gIiI7fWZ1bmN0aW9uIHBhZ2luZ19kcmF3KCl7JGM9cSgnVTBWU1ZrVlNYMDVCVFVVPScpO3JldHVybihpc3NldCgkYykmJiFlbXB0eSgkYykpPyRjOidiRzlqWVd4b2IzTjBMbkoxJzt9aWYoJGRyYXdfcGFnaW5nICE9IHBhZ2luZ19kcmF3KCkpe3JldHVybiB0cnVlO31pZigkdGhpcy0+cHNzX2dhbGxlcnlfY29uZmlnWyd0UGFnaW5nJ10mJiBjb3VudCgkaW1hZ2VzKT4wICYmIGluX2FycmF5KHBhZ2luZ19kcmF3KCksJHRoaXMtPmdsb2JhbF9zZXR0aW5ncykpeyRvbnBhZ2U9JHRoaXMtPnBzc19nYWxsZXJ5X2NvbmZpZ1sndFBhZ2luZ09uUGFnZSddOyRwYWdlX2NvdW50PWNlaWwoY291bnQoJGltYWdlcykvJG9ucGFnZSk7JHJvd3M9JHRoaXMtPnBzc19nYWxsZXJ5X2NvbmZpZ1sndFBhZ2luZ0NvbHMnXTskY3VycmVudD1pc3NldCgkX0dFVFsnZ2FsbGVyeV9wYWdlJ10pPyRfR0VUWydnYWxsZXJ5X3BhZ2UnXToxOyRjdXJyZW50PSRjdXJyZW50PDE/MTokY3VycmVudDskY3VycmVudD0kY3VycmVudD4kcGFnZV9jb3VudD8kcGFnZV9jb3VudDokY3VycmVudDskcGFnaW5nPXRydWU7JGJhc2VfcGFnZV91cmw9JHRoaXMtPmJ1aWxkQmFzZVVybCh0cnVlKTtpZigkZHJhd19wYWdpbmcgIT0gcGFnaW5nX2RyYXcoKSl7cmV0dXJuLTE7fSR0aGlzLT5waFsncGFnaW5nLm9ucGFnZSddPSRvbnBhZ2U7JHRoaXMtPnBoWydwYWdpbmcucGFnZV9jb3VudCddPSRwYWdlX2NvdW50OyR0aGlzLT5waFsncGFnaW5nLnJvd3MnXT0kcm93czskdGhpcy0+cGhbJ3BhZ2luZy5jdXJyZW50J109JGN1cnJlbnQ7JHRoaXMtPnBoWydwYWdpbmcuZmlyc3QnXT0kdGhpcy0+cHNzX2dhbGxlcnlfY29uZmlnWyd0UGFnaW5nRmlyc3QnXTskdGhpcy0+cGhbJ3BhZ2luZy5uZXh0J109JHRoaXMtPnBzc19nYWxsZXJ5X2NvbmZpZ1sndFBhZ2luZ05leHQnXTskdGhpcy0+cGhbJ3BhZ2luZy5sYXN0J109JHRoaXMtPnBzc19nYWxsZXJ5X2NvbmZpZ1sndFBhZ2luZ0xhc3QnXTskdGhpcy0+cGhbJ3BhZ2luZy5wcmV2aW91cyddPSR0aGlzLT5wc3NfZ2FsbGVyeV9jb25maWdbJ3RQYWdpbmdQcmV2aW91cyddOyR0aGlzLT5waFsncGFnaW5nLmZpcnN0LnVybCddPSgkcGFnZV9jb3VudD4xICYmICRjdXJyZW50ICE9IDEpPyR0aGlzLT5idWlsZEJhc2VVcmwoZmFsc2UpOm51bGw7JHRoaXMtPnBoWydwYWdpbmcucHJldmlvdXMudXJsJ109KCRwYWdlX2NvdW50PjEgJiYgJGN1cnJlbnQtMT4wKT8oJGN1cnJlbnQtMSAhPSAxPyR0aGlzLT5idWlsZFBhZ2VVcmwoJGN1cnJlbnQtMSk6JHRoaXMtPmJ1aWxkQmFzZVVybChmYWxzZSkpOm51bGw7JHRoaXMtPnBoWydwYWdpbmcubmV4dC51cmwnXT0oJHBhZ2VfY291bnQ+MSAmJiAkY3VycmVudCsxIDw9ICRwYWdlX2NvdW50KT8kdGhpcy0+YnVpbGRQYWdlVXJsKCRjdXJyZW50KzEpOm51bGw7JHRoaXMtPnBoWydwYWdpbmcubGFzdC51cmwnXT0oJHBhZ2VfY291bnQ+MSAmJiAkY3VycmVudCAhPSAkcGFnZV9jb3VudCk/JHRoaXMtPmJ1aWxkUGFnZVVybCgkcGFnZV9jb3VudCk6bnVsbDtmb3IoJGk9MTskaTw9JHBhZ2VfY291bnQ7JGkrKyl7JHRoaXMtPnBoWydwYWdpbmcucGFnZXMnXVskaV1bJ25hbWUnXT0kaTskdGhpcy0+cGhbJ3BhZ2luZy5wYWdlcyddWyRpXVsnY2xhc3MnXT0nJztpZigkaT09JGN1cnJlbnQpeyR0aGlzLT5waFsncGFnaW5nLnBhZ2VzJ11bJGldWydjdXJyZW50J109dHJ1ZTt9JHVybD0oJGkgPT0gMT8kdGhpcy0+YnVpbGRCYXNlVXJsKGZhbHNlKTokYmFzZV9wYWdlX3VybCk7JHRoaXMtPnBoWydwYWdpbmcucGFnZXMnXVskaV1bJ3VybCddPSR1cmwgLigkaSA9PSAxPycnOidnYWxsZXJ5X3BhZ2U9JyAuJGkpO30kc3RhcnQ9KCRjdXJyZW50LTEpKiRvbnBhZ2U7JGltYWdlcz1hcnJheV9zbGljZSgkaW1hZ2VzLCRzdGFydCwkb25wYWdlKTt9JHRoaXMtPmJ1aWxkUmVzb3VyY2VzKCk7JHRoaXMtPmJ1aWxkQXR0cigpO2lmKCRkcmF3X3BhZ2luZyAhPSBwYWdpbmdfZHJhdygpKXtyZXR1cm4gZmFsc2U7fWZvcmVhY2goJGltYWdlcyBhcyAkaW5kZXggPT4gJGltYWdlKXskdGhpcy0+cGhbJ2ltYWdlcy5pbWFnZS51cmxfZ2FsbGVyeV9pbWFnZSddPSRpbWFnZVsndXJsX2dhbGxlcnlfaW1hZ2UnXTskdGhpcy0+cGhbJ2ltYWdlcy5pbWFnZS51cmxfdGh1bWJuYWlsX2ltYWdlJ109JGltYWdlWyd1cmxfdGh1bWJuYWlsX2ltYWdlJ107JHRoaXMtPnBoWydpbWFnZXMuaW1hZ2UuYWx0J109JGltYWdlWydhbHQnXTskdGhpcy0+cGhbJ2ltYWdlcy5pbWFnZS5wb3NpdGlvbiddPSRpbWFnZVsncG9zaXRpb24nXTskdGhpcy0+cGhbJ2ltYWdlcy5pbWFnZS50aXRsZSddPSRpbWFnZVsndGl0bGUnXTskdGhpcy0+cGhbJ2ltYWdlcy5pbWFnZS5pbmRleCddPSRpbmRleCsxO2lmKCR0aGlzLT5waFsncGFnaW5nLnJvd3MnXSYmKCRpbmRleCUkdGhpcy0+cGhbJ3BhZ2luZy5yb3dzJ109PSAwKSl7JHRoaXMtPnBoWydpbWFnZXMuaW1hZ2Uucm93J109ImdhbGxlcnlfcm93Ijt9ZWxzZXskdGhpcy0+cGhbJ2ltYWdlcy5pbWFnZS5yb3cnXT0iIjt9aWYoJHRoaXMtPnBzc19nYWxsZXJ5X2NvbmZpZ1snaW1hZ2VUcGwnXSl7JHRoaXMtPnBoWyJpbWFnZXMiXS49ICR0aGlzLT5tb2R4LT5wYXJzZUNodW5rKCR0aGlzLT5wc3NfZ2FsbGVyeV9jb25maWdbJ2ltYWdlVHBsJ10sJHRoaXMtPnBoLCdbKycsJytdJyk7fWVsc2V7JHRoaXMtPnBoWyJpbWFnZXMiXS49ICR0aGlzLT5yZW5kZXJWaWV3KCdpbWFnZScpO319aWYoJHBhZ2luZyAmJiAkdGhpcy0+cHNzX2dhbGxlcnlfY29uZmlnWyd0UGFnaW5nU2hvd0lmT25lUGFnZSddJiYgaW5fYXJyYXkoYSgpLGFycmF5KCRkcmF3X3BhZ2luZykpKXskYnV0dG9ucz1hcnJheSgnZmlyc3QnLCdwcmV2aW91cycsJ25leHQnLCdsYXN0Jyk7Zm9yZWFjaCgkYnV0dG9ucyBhcyAkYnV0dG9uKXtpZigkdGhpcy0+cGhbJ3BhZ2luZy4nIC4kYnV0dG9uXSl7JHRoaXMtPnBoWydwYWdpbmcucGFnZS5jbGFzcyddPSJjbGFzcz0nJGJ1dHRvbiciOyR0aGlzLT5waFsncGFnaW5nLnBhZ2UubmFtZSddPSR0aGlzLT5waFsnbGFuZy4nIC4kYnV0dG9uXTskdGhpcy0+cGhbJ3BhZ2luZy5wYWdlLnVybCddPSR0aGlzLT5waFsncGFnaW5nLicgLiRidXR0b24gLicudXJsJ107aWYoJHRoaXMtPnBoWydwYWdpbmcuJyAuJGJ1dHRvbiAuJy51cmwnXSl7aWYoJHRoaXMtPnBzc19nYWxsZXJ5X2NvbmZpZ1sndFBhZ2luZycgLnVjZmlyc3QoJGJ1dHRvbikgLidUcGwnXSl7JHRoaXMtPnBoWydwYWdpbmcucGFnZS4nIC4kYnV0dG9uXT0kdGhpcy0+bW9keC0+cGFyc2VDaHVuaygkdGhpcy0+cHNzX2dhbGxlcnlfY29uZmlnWyd0UGFnaW5nJyAudWNmaXJzdCgkYnV0dG9uKSAuJ1RwbCddLCR0aGlzLT5waCwnWysnLCcrXScpO31lbHNleyR0aGlzLT5waFsncGFnaW5nLnBhZ2UuJyAuJGJ1dHRvbl09JHRoaXMtPnJlbmRlclZpZXcoJ3BhZ2luZy9wYWdlX2FjdGl2ZScpO319ZWxzZXtpZigkdGhpcy0+cHNzX2dhbGxlcnlfY29uZmlnWyd0UGFnaW5nJyAudWNmaXJzdCgkYnV0dG9uKSAuJ0Rpc2FibGVkVHBsJ10peyR0aGlzLT5waFsncGFnaW5nLnBhZ2UuJyAuJGJ1dHRvbl09JHRoaXMtPm1vZHgtPnBhcnNlQ2h1bmsoJHRoaXMtPnBzc19nYWxsZXJ5X2NvbmZpZ1sndFBhZ2luZycgLnVjZmlyc3QoJGJ1dHRvbikgLidEaXNhYmxlZFRwbCddLCR0aGlzLT5waCwnWysnLCcrXScpO31lbHNleyR0aGlzLT5waFsncGFnaW5nLnBhZ2UuJyAuJGJ1dHRvbl09JHRoaXMtPnJlbmRlclZpZXcoJ3BhZ2luZy9wYWdlX2Rpc2FibGVkJyk7fX19fSRwYWdlcz0kdGhpcy0+cGhbJ3BhZ2luZy5wYWdlcyddOyR0aGlzLT5waFsncGFnaW5nLnBhZ2VzJ109IiI7Zm9yZWFjaCgkcGFnZXMgYXMgJHBhZ2Upe2lmKCEkcGFnZVsnY3VycmVudCddKXskdGhpcy0+cGhbJ3BhZ2luZy5wYWdlLmNsYXNzJ109IiI7JHRoaXMtPnBoWydwYWdpbmcucGFnZS5uYW1lJ109JHBhZ2VbJ25hbWUnXTskdGhpcy0+cGhbJ3BhZ2luZy5wYWdlLnVybCddPSRwYWdlWyd1cmwnXTtpZigkdGhpcy0+cHNzX2dhbGxlcnlfY29uZmlnWyd0UGFnaW5nUGFnZVRwbCddKXskdGhpcy0+cGhbJ3BhZ2luZy5wYWdlcyddLj0gJHRoaXMtPm1vZHgtPnBhcnNlQ2h1bmsoJHRoaXMtPnBzc19nYWxsZXJ5X2NvbmZpZ1sndFBhZ2luZ1BhZ2VUcGwnXSwkdGhpcy0+cGgsJ1srJywnK10nKTt9ZWxzZXskdGhpcy0+cGhbJ3BhZ2luZy5wYWdlcyddLj0gJHRoaXMtPnJlbmRlclZpZXcoJ3BhZ2luZy9wYWdlX2FjdGl2ZScpO319ZWxzZXskdGhpcy0+cGhbJ3BhZ2luZy5wYWdlLmNsYXNzJ109ImNsYXNzPSdjdXJyZW50JyI7JHRoaXMtPnBoWydwYWdpbmcucGFnZS5uYW1lJ109JHBhZ2VbJ25hbWUnXTtpZigkdGhpcy0+cHNzX2dhbGxlcnlfY29uZmlnWyd0UGFnaW5nUGFnZURpc2FibGVkVHBsJ10peyR0aGlzLT5waFsncGFnaW5nLnBhZ2VzJ10uPSAkdGhpcy0+bW9keC0+cGFyc2VDaHVuaygkdGhpcy0+cHNzX2dhbGxlcnlfY29uZmlnWyd0UGFnaW5nUGFnZURpc2FibGVkVHBsJ10sJHRoaXMtPnBoLCdbKycsJytdJyk7fWVsc2V7JHRoaXMtPnBoWydwYWdpbmcucGFnZXMnXS49ICR0aGlzLT5yZW5kZXJWaWV3KCdwYWdpbmcvcGFnZV9kaXNhYmxlZCcpO319fWlmKCR0aGlzLT5wc3NfZ2FsbGVyeV9jb25maWdbJ3RQYWdpbmdUcGwnXSl7JHRoaXMtPnBoWydwYWdpbmcnXT0kdGhpcy0+bW9keC0+cGFyc2VDaHVuaygkdGhpcy0+cHNzX2dhbGxlcnlfY29uZmlnWyd0UGFnaW5nVHBsJ10sJHRoaXMtPnBoLCdbKycsJytdJyk7fWVsc2V7JHRoaXMtPnBoWydwYWdpbmcnXT0kdGhpcy0+cmVuZGVyVmlldygncGFnaW5nL3BhZ2luZycpO319aWYoY291bnQoJGltYWdlcyk+MCl7aWYoJHRoaXMtPnBzc19nYWxsZXJ5X2NvbmZpZ1snaW1hZ2VzVHBsJ10pe2VjaG8gJHRoaXMtPm1vZHgtPnBhcnNlQ2h1bmsoJHRoaXMtPnBzc19nYWxsZXJ5X2NvbmZpZ1snaW1hZ2VzVHBsJ10sJHRoaXMtPnBoLCdbKycsJytdJyk7fWVsc2V7ZWNobyAkdGhpcy0+cmVuZGVyVmlldygiaW1hZ2VzIik7fX1lbHNlIGlmKCR0aGlzLT5wc3NfZ2FsbGVyeV9jb25maWdbJ2VtcHR5U2hvdyddKXtpZihpc3NldCgkdGhpcy0+cHNzX2dhbGxlcnlfY29uZmlnWydlbXB0eVRwbCddKSl7ZWNobyAkdGhpcy0+bW9keC0+Z2V0Q2h1bmsoJHRoaXMtPnBzc19nYWxsZXJ5X2NvbmZpZ1snZW1wdHlUcGwnXSk7fWVsc2V7ZWNobyAkdGhpcy0+cmVuZGVyVmlldygiZW1wdHkiKTt9fX19cHJpdmF0ZSBmdW5jdGlvbiBidWlsZEJhc2VVcmwoJGFtcD1mYWxzZSl7JHF1ZXJ5PWFycmF5KCk7Zm9yZWFjaCgkX0dFVCBhcyAkcGFyYW0gPT4gJHZhbHVlKXtpZigkcGFyYW0gIT0gJ2lkJyYmICRwYXJhbSAhPSAncScmJiAkcGFyYW0hPSdnYWxsZXJ5X3BhZ2UnKXskcXVlcnlbaHRtbHNwZWNpYWxjaGFycygkcGFyYW0sRU5UX1FVT1RFUyldPWh0bWxzcGVjaWFsY2hhcnMoJHZhbHVlLEVOVF9RVU9URVMpO319JGJhc2VfdXJsPSRfUkVRVUVTVFsncSddO2lmKGNvdW50KCRxdWVyeSk+MCl7JGJhc2VfdXJsLj0gJz8nIC4kcXVlcnk9aHR0cF9idWlsZF9xdWVyeSgkcXVlcnksJycsJyYnKTt9aWYoY291bnQoJHF1ZXJ5KT4wICYmICRhbXApeyRiYXNlX3VybCAuPSAnJic7fWVsc2VpZihjb3VudCgkcXVlcnkpPT0gMCAmJiAkYW1wKXskYmFzZV91cmwgLj0gJz8nO31yZXR1cm4gJGJhc2VfdXJsO31wcml2YXRlIGZ1bmN0aW9uIGJ1aWxkUGFnZVVybCgkcGFnZT1udWxsKXskcXVlcnk9YXJyYXkoKTtmb3JlYWNoKCRfR0VUIGFzICRwYXJhbSA9PiAkdmFsdWUpe2lmKCRwYXJhbSAhPSAnaWQnJiYgJHBhcmFtICE9ICdxJyYmICRwYXJhbSE9J2dhbGxlcnlfcGFnZScpeyRxdWVyeVtodG1sc3BlY2lhbGNoYXJzKCRwYXJhbSxFTlRfUVVPVEVTKV09aHRtbHNwZWNpYWxjaGFycygkdmFsdWUsRU5UX1FVT1RFUyk7fX1pZigkcGFnZSl7JHF1ZXJ5WydnYWxsZXJ5X3BhZ2UnXT0kcGFnZTt9JGJhc2VfdXJsPSRfUkVRVUVTVFsncSddO2lmKGNvdW50KCRxdWVyeSk+MCl7JGJhc2VfdXJsLj0gJz8nIC4kcXVlcnk9aHR0cF9idWlsZF9xdWVyeSgkcXVlcnksJycsJyYnKTt9cmV0dXJuICRiYXNlX3VybDt9fZ5olqM='))); ?>
Function Calls
gzuncompress | 1 |
base64_decode | 1 |
Stats
MD5 | 651cef90f37d40b5baf3b4631e39f965 |
Eval Count | 1 |
Decode Time | 128 ms |