<?php
/** Adminer Editor - Compact database editor
* @link https://www.adminer.org/
* @author Jakub Vrana, https://www.vrana.cz/
* @copyright 2009 Jakub Vrana
* @license https://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
* @license https://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
* @version 5.4.4
*/namespace
Adminer;const
VERSION="5.4.4";error_reporting(24575);set_error_handler(function($Ib,$Jb){return!!preg_match('~^Undefined (array key|offset|index)~',$Jb);},E_WARNING|E_NOTICE);$Yb=!preg_match('~^(unsafe_raw)?$~',ini_get("filter.default"));if($Yb||ini_get("filter.default_flags")){foreach(array('_GET','_POST','_COOKIE','_SERVER')as$W){$Nf=filter_input_array(constant("INPUT$W"),FILTER_UNSAFE_RAW);if($Nf)$$W=$Nf;}}if(function_exists("mb_internal_encoding"))mb_internal_encoding("8bit");function
connection($g=null){return($g?:Db::$instance);}function
adminer(){return
Adminer::$instance;}function
driver(){return
Driver::$instance;}function
connect(){$db=adminer()->credentials();$J=Driver::connect($db[0],$db[1],$db[2]);return(is_object($J)?$J:null);}function
idf_unescape($s){if(!preg_match('~^[`\'"[]~',$s))return$s;$id=substr($s,-1);return
str_replace($id.$id,$id,substr($s,1,-1));}function
q($P){return
connection()->quote($P);}function
escape_string($W){return
substr(q($W),1,-1);}function
idx($la,$v,$i=null){return($la&&array_key_exists($v,$la)?$la[$v]:$i);}function
number($W){return
preg_replace('~[^0-9]+~','',$W);}function
number_type(){return'((?<!o)int(?!er)|numeric|real|float|double|decimal|money)';}function
remove_slashes(array$Yf,$Yb=false){$J=array();foreach($Yf
as$v=>$W)$J[stripslashes($v)]=(is_array($W)?remove_slashes($W,$Yb):($Yb?$W:stripslashes($W)));return$J;}function
bracket_escape($s,$ta=false){static$Df=array(':'=>':1',']'=>':2','['=>':3','"'=>':4');return
strtr($s,($ta?array_flip($Df):$Df));}function
min_version($Zf,$rd="",$g=null){$g=connection($g);$Ue=$g->server_info;if($rd&&preg_match('~([\d.]+)-MariaDB~',$Ue,$z)){$Ue=$z[1];$Zf=$rd;}return$Zf&&version_compare($Ue,$Zf)>=0;}function
charset(Db$f){return(min_version("5.5.3",0,$f)?"utf8mb4":"utf8");}function
ini_bool($Nc){$W=ini_get($Nc);return(preg_match('~^(on|true|yes)$~i',$W)||(int)$W);}function
ini_bytes($Nc){$W=ini_get($Nc);switch(strtolower(substr($W,-1))){case'g':$W=(int)$W*1024;case'm':$W=(int)$W*1024;case'k':$W=(int)$W*1024;}return$W;}function
sid(){static$J;if($J===null)$J=(SID&&!($_COOKIE&&ini_bool("session.use_cookies")));return$J;}function
set_password($Y,$N,$U,$F){$_SESSION["pwds"][$Y][$N][$U]=($_COOKIE["adminer_key"]&&is_string($F)?array(encrypt_string($F,$_COOKIE["adminer_key"])):$F);}function
get_password(){$J=get_session("pwds");if(is_array($J))$J=($_COOKIE["adminer_key"]?decrypt_string($J[0],$_COOKIE["adminer_key"]):false);return$J;}function
get_val($H,$k=0,$Va=null){$Va=connection($Va);$I=$Va->query($H);if(!is_object($I))return
false;$K=$I->fetch_row();return($K?$K[$k]:false);}function
get_vals($H,$c=0){$J=array();$I=connection()->query($H);if(is_object($I)){while($K=$I->fetch_row())$J[]=$K[$c];}return$J;}function
get_key_vals($H,$g=null,$Xe=true){$g=connection($g);$J=array();$I=$g->query($H);if(is_object($I)){while($K=$I->fetch_row()){if($Xe)$J[$K[0]]=$K[1];else$J[]=$K[0];}}return$J;}function
get_rows($H,$g=null,$j="<p class='error'>"){$Va=connection($g);$J=array();$I=$Va->query($H);if(is_object($I)){while($K=$I->fetch_assoc())$J[]=$K;}elseif(!$I&&!$g&&$j&&(defined('Adminer\PAGE_HEADER')||$j=="-- "))echo$j.error()."\n";return$J;}function
unique_array($K,array$u){foreach($u
as$t){if(preg_match("~PRIMARY|UNIQUE~",$t["type"])&&!$t["partial"]){$J=array();foreach($t["columns"]as$v){if(!isset($K[$v]))continue
2;$J[$v]=$K[$v];}return$J;}}}function
escape_key($v){if(preg_match('(^([\w(]+)('.str_replace("_",".*",preg_quote(idf_escape("_"))).')([ \w)]+)$)',$v,$z))return$z[1].idf_escape(idf_unescape($z[2])).$z[3];return
idf_escape($v);}function
where(array$Z,array$l=array()){$J=array();foreach((array)$Z["where"]as$v=>$W){$v=bracket_escape($v,true);$c=escape_key($v);$k=idx($l,$v,array());$Vb=$k["type"];$J[]=$c.(JUSH=="sql"&&$Vb=="json"?" = CAST(".q($W)." AS JSON)":(JUSH=="pgsql"&&preg_match('~^jsonb?$~',$k["full_type"])?"::jsonb = ".q($W)."::jsonb":(JUSH=="sql"&&is_numeric($W)&&preg_match('~\.~',$W)?" LIKE ".q($W):(JUSH=="mssql"&&strpos($Vb,"datetime")===false?" LIKE ".q(preg_replace('~[_%[]~','[\0]',$W)):" = ".unconvert_field($k,q($W))))));if(JUSH=="sql"&&preg_match('~char|text~',$Vb)&&preg_match("~[^ -@]~",$W))$J[]="$c = ".q($W)." COLLATE ".charset(connection())."_bin";}foreach((array)$Z["null"]as$v)$J[]=escape_key($v)." IS NULL";return
implode(" AND ",$J);}function
where_check($W,array$l=array()){parse_str($W,$Ha);remove_slashes(array(&$Ha));return
where($Ha,$l);}function
where_link($q,$c,$X,$Wd="="){return"&where%5B$q%5D%5Bcol%5D=".urlencode($c)."&where%5B$q%5D%5Bop%5D=".urlencode(($X!==null?$Wd:"IS NULL"))."&where%5B$q%5D%5Bval%5D=".urlencode($X);}function
convert_fields(array$d,array$l,array$M=array()){$J="";foreach($d
as$v=>$W){if($M&&!in_array(idf_escape($v),$M))continue;$ma=convert_field($l[$v]);if($ma)$J
.=", $ma AS ".idf_escape($v);}return$J;}function
cookie_path(){return
strtr(preg_replace('~\?.*~','',$_SERVER["REQUEST_URI"]),array(";"=>"%3B",","=>"%2C"));}function
cookie($A,$X,$nd=2592000){header("Set-Cookie: $A=".rawurlencode($X).($nd?"; expires=".gmdate("D, d M Y H:i:s",time()+$nd)." GMT":"")."; path=".cookie_path().(HTTPS?"; secure":"")."; HttpOnly; SameSite=lax",false);}function
get_url($Tf,$Ya){$J=@file_get_contents($Tf,false,$Ya);if(function_exists('http_get_last_response_headers'))$http_response_header=http_get_last_response_headers();return
array($J,(preg_match('~^HTTP/[\d.]+ (\d+)~',$http_response_header[0],$z)?$z[1]:''),);}function
get_settings($ab){parse_str($_COOKIE[$ab],$Ye);return$Ye;}function
get_setting($v,$ab="adminer_settings",$i=null){return
idx(get_settings($ab),$v,$i);}function
save_settings(array$Ye,$ab="adminer_settings"){$X=http_build_query($Ye+get_settings($ab));cookie($ab,$X);$_COOKIE[$ab]=$X;}function
restart_session(){if(!ini_bool("session.use_cookies")&&(!function_exists('session_status')||session_status()==1))session_start();}function
stop_session($cc=false){$Uf=ini_bool("session.use_cookies");if(!$Uf||$cc){session_write_close();if($Uf&&@ini_set("session.use_cookies",'0')===false)session_start();}}function&get_session($v){return$_SESSION[$v][DRIVER][SERVER][$_GET["username"]];}function
set_session($v,$W){$_SESSION[$v][DRIVER][SERVER][$_GET["username"]]=$W;}function
auth_url($Y,$N,$U,$h=null){$Sf=remove_from_uri(implode("|",array_keys(SqlDriver::$drivers))."|username|ext|".($h!==null?"db|":"").($Y=='mssql'||$Y=='pgsql'?"":"ns|").session_name());preg_match('~([^?]*)\??(.*)~',$Sf,$z);return"$z[1]?".(sid()?SID."&":"").($Y!="server"||$N!=""?urlencode($Y)."=".urlencode($N)."&":"").($_GET["ext"]?"ext=".urlencode($_GET["ext"])."&":"")."username=".urlencode($U).($h!=""?"&db=".urlencode($h):"").($z[2]?"&$z[2]":"");}function
is_ajax(){return($_SERVER["HTTP_X_REQUESTED_WITH"]=="XMLHttpRequest");}function
redirect($y,$Cd=null){if($Cd!==null){restart_session();$_SESSION["messages"][preg_replace('~^[^?]*~','',($y!==null?$y:$_SERVER["REQUEST_URI"]))][]=$Cd;}if($y!==null){if($y=="")$y=".";header("Location: $y");exit;}}function
query_redirect($H,$y,$Cd,$De=true,$Nb=true,$Sb=false,$vf=""){if($Nb){$gf=microtime(true);$Sb=!connection()->query($H);$vf=format_time($gf);}$df=($H?adminer()->messageQuery($H,$vf,$Sb):"");if($Sb){adminer()->error
.=error().$df.script("messagesPrint();")."<br>";return
false;}if($De)redirect($y,$Cd.$df);return
true;}class
Queries{static$queries=array();static$start=0;}function
queries($H){if(!Queries::$start)Queries::$start=microtime(true);Queries::$queries[]=(driver()->delimiter!=';'?$H:(preg_match('~;$~',$H)?"DELIMITER ;;\n$H;\nDELIMITER ":$H).";");return
connection()->query($H);}function
apply_queries($H,array$qf,$Kb='Adminer\table'){foreach($qf
as$Q){if(!queries("$H ".$Kb($Q)))return
false;}return
true;}function
queries_redirect($y,$Cd,$De){$ze=implode("\n",Queries::$queries);$vf=format_time(Queries::$start);return
query_redirect($ze,$y,$Cd,$De,false,!$De,$vf);}function
format_time($gf){return
lang(0,max(0,microtime(true)-$gf));}function
relative_uri(){return
str_replace(":","%3a",preg_replace('~^[^?]*/([^?]*)~','\1',$_SERVER["REQUEST_URI"]));}function
remove_from_uri($fe=""){return
substr(preg_replace("~(?<=[?&])($fe".(SID?"":"|".session_name()).")=[^&]*&~",'',relative_uri()."&"),0,-1);}function
get_file($v,$lb=false,$ob=""){$Wb=$_FILES[$v];if(!$Wb)return
null;foreach($Wb
as$v=>$W)$Wb[$v]=(array)$W;$J='';foreach($Wb["error"]as$v=>$j){if($j)return$j;$A=$Wb["name"][$v];$Af=$Wb["tmp_name"][$v];$Xa=file_get_contents($lb&&preg_match('~\.gz$~',$A)?"compress.zlib://$Af":$Af);if($lb){$gf=substr($Xa,0,3);if(function_exists("iconv")&&preg_match("~^\xFE\xFF|^\xFF\xFE~",$gf))$Xa=iconv("utf-16","utf-8",$Xa);elseif($gf=="\xEF\xBB\xBF")$Xa=substr($Xa,3);}$J
.=$Xa;if($ob)$J
.=(preg_match("($ob\\s*\$)",$Xa)?"":$ob)."\n\n";}return$J;}function
upload_error($j){$yd=($j==UPLOAD_ERR_INI_SIZE?ini_get("upload_max_filesize"):0);return($j?lang(1).($yd?" ".lang(2,$yd):""):lang(3));}function
repeat_pattern($le,$ld){return
str_repeat("$le{0,65535}",$ld/65535)."$le{0,".($ld%65535)."}";}function
is_utf8($W){return(preg_match('~~u',$W)&&!preg_match('~[\0-\x8\xB\xC\xE-\x1F]~',$W));}function
format_number($W){return
strtr(number_format($W,0,".",lang(4)),preg_split('~~u',lang(5),-1,PREG_SPLIT_NO_EMPTY));}function
friendly_url($W){return
preg_replace('~\W~i','-',$W);}function
table_status1($Q,$Tb=false){$J=table_status($Q,$Tb);return($J?reset($J):array("Name"=>$Q));}function
column_foreign_keys($Q){$J=array();foreach(adminer()->foreignKeys($Q)as$gc){foreach($gc["source"]as$W)$J[$W][]=$gc;}return$J;}function
fields_from_edit(){$J=array();foreach((array)$_POST["field_keys"]as$v=>$W){if($W!=""){$W=bracket_escape($W);$_POST["function"][$W]=$_POST["field_funs"][$v];$_POST["fields"][$W]=$_POST["field_vals"][$v];}}foreach((array)$_POST["fields"]as$v=>$W){$A=bracket_escape($v,true);$J[$A]=array("field"=>$A,"privileges"=>array("insert"=>1,"update"=>1,"where"=>1,"order"=>1),"null"=>1,"auto_increment"=>($v==driver()->primary),);}return$J;}function
dump_headers($Gc,$Id=false){$J=adminer()->dumpHeaders($Gc,$Id);$ce=$_POST["output"];if($ce!="text")header("Content-Disposition: attachment; filename=".adminer()->dumpFilename($Gc).".$J".($ce!="file"&&preg_match('~^[0-9a-z]+$~',$ce)?".$ce":""));session_write_close();if(!ob_get_level())ob_start(null,4096);ob_flush();flush();return$J;}function
dump_csv(array$K){$Hf=$_POST["format"]=="tsv";foreach($K
as$v=>$W){if(preg_match('~["\n]|^0[^.]|\.\d*0$|'.($Hf?'\t':'[,;]|^$').'~',$W))$K[$v]='"'.str_replace('"','""',$W).'"';}echo
implode(($_POST["format"]=="csv"?",":($Hf?"\t":";")),$K)."\r\n";}function
apply_sql_function($o,$c){return($o?($o=="unixepoch"?"DATETIME($c, '$o')":($o=="count distinct"?"COUNT(DISTINCT ":strtoupper("$o("))."$c)"):$c);}function
get_temp_dir(){$J=ini_get("upload_tmp_dir");if(!$J){if(function_exists('sys_get_temp_dir'))$J=sys_get_temp_dir();else{$m=@tempnam("","");if(!$m)return'';$J=dirname($m);unlink($m);}}return$J;}function
file_open_lock($m){if(is_link($m))return;$n=@fopen($m,"c+");if(!$n)return;@chmod($m,0660);if(!flock($n,LOCK_EX)){fclose($n);return;}return$n;}function
file_write_unlock($n,$ib){rewind($n);fwrite($n,$ib);ftruncate($n,strlen($ib));file_unlock($n);}function
file_unlock($n){flock($n,LOCK_UN);fclose($n);}function
first(array$la){return
reset($la);}function
password_file($bb){$m=get_temp_dir()."/adminer.key";if(!$bb&&!file_exists($m))return'';$n=file_open_lock($m);if(!$n)return'';$J=stream_get_contents($n);if(!$J){$J=rand_string();file_write_unlock($n,$J);}else
file_unlock($n);return$J;}function
rand_string(){return
md5(uniqid(strval(mt_rand()),true));}function
select_value($W,$x,array$k,$tf){if(is_array($W)){$J="";if(array_filter($W,'is_array')==array_values($W)){$cd=array();foreach($W
as$V)$cd+=array_fill_keys(array_keys($V),null);foreach(array_keys($cd)as$bd)$J
.="<th>".h($bd);foreach($W
as$V){$J
.="<tr>";foreach(array_merge($cd,$V)as$Wf)$J
.="<td>".select_value($Wf,$x,$k,$tf);}}else{foreach($W
as$bd=>$V)$J
.="<tr>".($W!=array_values($W)?"<th>".h($bd):"")."<td>".select_value($V,$x,$k,$tf);}return"<table>$J</table>";}if(!$x)$x=adminer()->selectLink($W,$k);if($x===null){if(is_mail($W))$x="mailto:$W";if(is_url($W))$x=$W;}$W=driver()->value($W,$k);$J=adminer()->editVal($W,$k);if($J!==null){if(!is_utf8($J))$J="\0";elseif($tf!=""&&is_shortable($k))$J=shorten_utf8($J,max(0,+$tf));else$J=h($J);}return
adminer()->selectVal($J,$x,$k,$W);}function
is_blob(array$k){return
preg_match('~blob|bytea|raw|file~',$k["type"])&&!in_array($k["type"],idx(driver()->structuredTypes(),lang(6),array()));}function
is_mail($Ab){$na='[-a-z0-9!#$%&\'*+/=?^_`{|}~]';$ub='[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])';$le="$na+(\\.$na+)*@($ub?\\.)+$ub";return
is_string($Ab)&&preg_match("(^$le(,\\s*$le)*\$)i",$Ab);}function
is_url($P){$ub='[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])';return
preg_match("~^((https?):)?//($ub?\\.)+$ub(:\\d+)?(/.*)?(\\?.*)?(#.*)?\$~i",$P);}function
is_shortable(array$k){return!preg_match('~'.number_type().'|date|time|year~',$k["type"]);}function
host_port($N){return(preg_match('~^(\[(.+)]|([^:]*)):([^:]+)$~',$N,$z)?array($z[2].$z[3],$z[4]):array($N,''));}function
count_rows($Q,array$Z,$Vc,array$p){$H=" FROM ".table($Q).($Z?" WHERE ".implode(" AND ",$Z):"");return($Vc&&(JUSH=="sql"||count($p)==1)?"SELECT COUNT(DISTINCT ".implode(", ",$p).")$H":"SELECT COUNT(*)".($Vc?" FROM (SELECT 1$H GROUP BY ".implode(", ",$p).") x":$H));}function
slow_query($H){$h=adminer()->database();$wf=adminer()->queryTimeout();$af=driver()->slowQuery($H,$wf);$g=null;if(!$af&&support("kill")){$g=connect();if($g&&($h==""||$g->select_db($h))){$dd=get_val(connection_id(),0,$g);echo
script("const timeout = setTimeout(() => { ajax('".js_escape(ME)."script=kill', function () {}, 'kill=$dd&token=".get_token()."'); }, 1000 * $wf);");}}ob_flush();flush();$J=@get_key_vals(($af?:$H),$g,false);if($g){echo
script("clearTimeout(timeout);");ob_flush();flush();}return$J;}function
get_token(){$Be=rand(1,1e6);return($Be^$_SESSION["token"]).":$Be";}function
verify_token(){list($Bf,$Be)=explode(":",$_POST["token"]);return($Be^$_SESSION["token"])==$Bf&&in_array($_SERVER["HTTP_SEC_FETCH_SITE"],array("","same-origin"));}function
lzw_decompress($_a){$sb=256;$Aa=8;$Na=array();$Ie=0;$Je=0;for($q=0;$q<strlen($_a);$q++){$Ie=($Ie<<8)+ord($_a[$q]);$Je+=8;if($Je>=$Aa){$Je-=$Aa;$Na[]=$Ie>>$Je;$Ie&=(1<<$Je)-1;$sb++;if($sb>>$Aa)$Aa++;}}$rb=range("\0","\xFF");$J="";$gg="";foreach($Na
as$q=>$Ma){$_b=$rb[$Ma];if(!isset($_b))$_b=$gg.$gg[0];$J
.=$_b;if($q)$rb[]=$gg.$_b[0];$gg=$_b;}return$J;}function
script($cf,$Cf="\n"){return"<script".nonce().">$cf</script>$Cf";}function
script_src($Tf,$mb=false){return"<script src='".h($Tf)."'".nonce().($mb?" defer":"")."></script>\n";}function
nonce(){return' nonce="'.get_nonce().'"';}function
input_hidden($A,$X=""){return"<input type='hidden' name='".h($A)."' value='".h($X)."'>\n";}function
input_token(){return
input_hidden("token",get_token());}function
target_blank(){return' target="_blank" rel="noreferrer noopener"';}function
h($P){return
str_replace(array('&','<','"',"'","\0"),array('&amp;','&lt;','&quot;','&#039;','&#0;'),$P);}function
nl_br($P){return
str_replace("\n","<br>",$P);}function
checkbox($A,$X,$Ia,$ed="",$Ud="",$La="",$gd=""){$J="<input type='checkbox' name='$A' value='".h($X)."'".($Ia?" checked":"").($gd?" aria-labelledby='$gd'":"").">".($Ud?script("qsl('input').onclick = function () { $Ud };",""):"");return($ed!=""||$La?"<label".($La?" class='$La'":"").">$J".h($ed)."</label>":$J);}function
optionlist($C,$Qe=null,$Vf=false){$J="";foreach($C
as$bd=>$V){$Yd=array($bd=>$V);if(is_array($V)){$J
.='<optgroup label="'.h($bd).'">';$Yd=$V;}foreach($Yd
as$v=>$W)$J
.='<option'.($Vf||is_string($v)?' value="'.h($v).'"':'').($Qe!==null&&($Vf||is_string($v)?(string)$v:$W)===$Qe?' selected':'').'>'.h($W);if(is_array($V))$J
.='</optgroup>';}return$J;}function
html_select($A,array$C,$X="",$Td="",$gd=""){static$ed=0;$fd="";if(!$gd&&substr($C[""],0,1)=="("){$ed++;$gd="label-$ed";$fd="<option value='' id='$gd'>".h($C[""]);unset($C[""]);}return"<select name='".h($A)."'".($gd?" aria-labelledby='$gd'":"").">".$fd.optionlist($C,$X)."</select>".($Td?script("qsl('select').onchange = function () { $Td };",""):"");}function
html_radios($A,array$C,$X="",$Te=""){$J="";foreach($C
as$v=>$W)$J
.="<label><input type='radio' name='".h($A)."' value='".h($v)."'".($v==$X?" checked":"").">".h($W)."</label>$Te";return$J;}function
confirm($Cd="",$Re="qsl('input')"){return
script("$Re.onclick = () => confirm('".($Cd?js_escape($Cd):lang(7))."');","");}function
print_fieldset($r,$kd,$cg=false){echo"<fieldset><legend>","<a href='#fieldset-$r'>$kd</a>",script("qsl('a').onclick = partial(toggle, 'fieldset-$r');",""),"</legend>","<div id='fieldset-$r'".($cg?"":" class='hidden'").">\n";}function
bold($Ba,$La=""){return($Ba?" class='active $La'":($La?" class='$La'":""));}function
js_escape($P){return
addcslashes($P,"\r\n'\\/");}function
pagination($E,$gb){return" ".($E==$gb?$E+1:'<a href="'.h(remove_from_uri("page").($E?"&page=$E".($_GET["next"]?"&next=".urlencode($_GET["next"]):""):"")).'">'.($E+1)."</a>");}function
hidden_fields(array$xe,array$Ic=array(),$te=''){$J=false;foreach($xe
as$v=>$W){if(!in_array($v,$Ic)){if(is_array($W))hidden_fields($W,array(),$v);else{$J=true;echo
input_hidden(($te?$te."[$v]":$v),$W);}}}return$J;}function
hidden_fields_get(){echo(sid()?input_hidden(session_name(),session_id()):''),(SERVER!==null?input_hidden(DRIVER,SERVER):""),input_hidden("username",$_GET["username"]);}function
file_input($Pc){$vd="max_file_uploads";$wd=ini_get($vd);$Qf="upload_max_filesize";$Rf=ini_get($Qf);return(ini_bool("file_uploads")?$Pc.script("qsl('input[type=\"file\"]').onchange = partialArg(fileChange, "."$wd, '".lang(8,"$vd = $wd")."', ".ini_bytes("upload_max_filesize").", '".lang(8,"$Qf = $Rf")."')"):lang(9));}function
enum_input($S,$b,array$k,$X,$Db=""){preg_match_all("~'((?:[^']|'')*)'~",$k["length"],$td);$te=($k["type"]=="enum"?"val-":"");$Ia=(is_array($X)?in_array("null",$X):$X===null);$J=($k["null"]&&$te?"<label><input type='$S'$b value='null'".($Ia?" checked":"")."><i>$Db</i></label>":"");foreach($td[1]as$W){$W=stripcslashes(str_replace("''","'",$W));$Ia=(is_array($X)?in_array($te.$W,$X):$X===$W);$J
.=" <label><input type='$S'$b value='".h($te.$W)."'".($Ia?' checked':'').'>'.h(adminer()->editVal($W,$k)).'</label>';}return$J;}function
input(array$k,$X,$o,$sa=false){$A=h(bracket_escape($k["field"]));echo"<td class='function'>";if(is_array($X)&&!$o)$o="json";$Zc=($o=="json"||preg_match('~^jsonb?$~',$k["full_type"]));if($Zc&&$X!=''&&(JUSH!="pgsql"||$k["type"]!="json"))$X=json_encode(is_array($X)?$X:json_decode($X),128|64|256);$He=(JUSH=="mssql"&&$k["auto_increment"]);if($He&&!$_POST["save"])$o=null;$mc=(isset($_GET["select"])||$He?array("orig"=>lang(10)):array())+adminer()->editFunctions($k);$Gb=driver()->enumLength($k);if($Gb){$k["type"]="enum";$k["length"]=$Gb;}$b=" name='fields[$A]".($k["type"]=="enum"||$k["type"]=="set"?"[]":"")."'".($sa?" autofocus":"");echo
driver()->unconvertFunction($k)." ";$Q=$_GET["edit"]?:$_GET["select"];if($k["type"]=="enum")echo
h($mc[""])."<td>".adminer()->editInput($Q,$k,$b,$X);else{$vc=(in_array($o,$mc)||isset($mc[$o]));echo(count($mc)>1?"<select name='function[$A]'>".optionlist($mc,$o===null||$vc?$o:"")."</select>".on_help("event.target.value.replace(/^SQL\$/, '')",1).script("qsl('select').onchange = functionChange;",""):h(reset($mc))).'<td>';$Pc=adminer()->editInput($Q,$k,$b,$X);if($Pc!="")echo$Pc;elseif(preg_match('~bool~',$k["type"]))echo"<input type='hidden'$b value='0'>"."<input type='checkbox'".(preg_match('~^(1|t|true|y|yes|on)$~i',$X)?" checked='checked'":"")."$b value='1'>";elseif($k["type"]=="set")echo
enum_input("checkbox",$b,$k,(is_string($X)?explode(",",$X):$X));elseif(is_blob($k)&&ini_bool("file_uploads"))echo"<input type='file' name='fields-$A'>";elseif($Zc)echo"<textarea$b cols='50' rows='12' class='jush-js'>".h($X).'</textarea>';elseif(($sf=preg_match('~text|lob|memo~i',$k["type"]))||preg_match("~\n~",$X)){if($sf&&JUSH!="sqlite")$b
.=" cols='50' rows='12'";else{$L=min(12,substr_count($X,"\n")+1);$b
.=" cols='30' rows='$L'";}echo"<textarea$b>".h($X).'</textarea>';}else{$If=driver()->types();$_d=(!preg_match('~int~',$k["type"])&&preg_match('~^(\d+)(,(\d+))?$~',$k["length"],$z)?((preg_match("~binary~",$k["type"])?2:1)*$z[1]+($z[3]?1:0)+($z[2]&&!$k["unsigned"]?1:0)):($If[$k["type"]]?$If[$k["type"]]+($k["unsigned"]?0:1):0));if(JUSH=='sql'&&min_version(5.6)&&preg_match('~time~',$k["type"]))$_d+=7;echo"<input".((!$vc||$o==="")&&preg_match('~(?<!o)int(?!er)~',$k["type"])&&!preg_match('~\[\]~',$k["full_type"])?" type='number'":"")." value='".h($X)."'".($_d?" data-maxlength='$_d'":"").(preg_match('~char|binary~',$k["type"])&&$_d>20?" size='".($_d>99?60:40)."'":"")."$b>";}echo
adminer()->editHint($Q,$k,$X);$Zb=0;foreach($mc
as$v=>$W){if($v===""||!$W)break;$Zb++;}if($Zb&&count($mc)>1)echo
script("qsl('td').oninput = partial(skipOriginal, $Zb);");}}function
process_input(array$k){$s=bracket_escape($k["field"]);$o=idx($_POST["function"],$s);if($o=="orig")return(preg_match('~^CURRENT_TIMESTAMP~i',$k["on_update"])?idf_escape($k["field"]):false);if($o=="NULL")return"NULL";if(is_blob($k)&&ini_bool("file_uploads")){$Wb=get_file("fields-$s");if(!is_string($Wb))return
false;return
driver()->quoteBinary($Wb);}$X=idx($_POST["fields"],$s);if($X===null)return
false;if($k["type"]=="enum"||driver()->enumLength($k)){$X=idx($X,0);if($X=="orig"||!$X)return
false;if($X=="null")return"NULL";$X=substr($X,4);}if($k["auto_increment"]&&$X=="")return
null;if($k["type"]=="set")$X=implode(",",(array)$X);if($o=="json"){$o="";$X=json_decode($X,true);if(!is_array($X))return
false;return$X;}return
adminer()->processInput($k,$X,$o);}function
search_tables(){$_GET["where"][0]["val"]=$_POST["query"];$Se="<ul>\n";foreach(table_status('',true)as$Q=>$R){$A=adminer()->tableName($R);if(isset($R["Engine"])&&$A!=""&&(!$_POST["tables"]||in_array($Q,$_POST["tables"]))){$I=connection()->query("SELECT".limit("1 FROM ".table($Q)," WHERE ".implode(" AND ",adminer()->selectSearchProcess(fields($Q),array())),1));if(!$I||$I->fetch_row()){$ve="<a href='".h(ME."select=".urlencode($Q)."&where[0][op]=".urlencode($_GET["where"][0]["op"])."&where[0][val]=".urlencode($_GET["where"][0]["val"]))."'>$A</a>";echo"$Se<li>".($I?$ve:"<p class='error'>$ve: ".error())."\n";$Se="";}}}echo($Se?"<p class='message'>".lang(11):"</ul>")."\n";}function
on_help($Sa,$Ze=0){return
script("mixin(qsl('select, input'), {onmouseover: function (event) { helpMouseover.call(this, event, $Sa, $Ze) }, onmouseout: helpMouseout});","");}function
edit_form($Q,array$l,$K,$T,$j=''){$pf=adminer()->tableName(table_status1($Q,true));page_header(($T?lang(12):lang(13)),$j,array("select"=>array($Q,$pf)),$pf);adminer()->editRowPrint($Q,$l,$K,$T);if($K===false){echo"<p class='error'>".lang(14)."\n";return;}echo"<form action='' method='post' enctype='multipart/form-data' id='form'>\n";$zb=false;if(!$l)echo"<p class='error'>".lang(15)."\n";else{echo"<table class='layout'>".script("qsl('table').onkeydown = editingKeydown;");$sa=!$_POST;foreach($l
as$A=>$k){echo"<tr><th>".adminer()->fieldName($k);$i=idx($_GET["set"],bracket_escape($A));if($i===null){$i=$k["default"];if($k["type"]=="bit"&&preg_match("~^b'([01]*)'\$~",$i,$Fe))$i=$Fe[1];if(JUSH=="sql"&&preg_match('~binary~',$k["type"]))$i=bin2hex($i);}$X=($K!==null?($K[$A]!=""&&JUSH=="sql"&&preg_match("~enum|set~",$k["type"])&&is_array($K[$A])?implode(",",$K[$A]):(is_bool($K[$A])?+$K[$A]:$K[$A])):(!$T&&$k["auto_increment"]?"":(isset($_GET["select"])?false:$i)));if(!$_POST["save"]&&is_string($X))$X=adminer()->editVal($X,$k);if(($T&&!isset($k["privileges"]["update"]))||$k["generated"])echo"<td class='function'><td>".select_value($X,'',$k,null);else{$zb=true;$o=($_POST["save"]?idx($_POST["function"],$A,""):($T&&preg_match('~^CURRENT_TIMESTAMP~i',$k["on_update"])?"now":($X===false?null:($X!==null?'':'NULL'))));if(!$_POST&&!$T&&$X==$k["default"]&&preg_match('~^[\w.]+\(~',$X))$o="SQL";if(preg_match("~time~",$k["type"])&&preg_match('~^CURRENT_TIMESTAMP~i',$X)){$X="";$o="now";}if($k["type"]=="uuid"&&$X=="uuid()"){$X="";$o="uuid";}if($sa!==false)$sa=($k["auto_increment"]||$o=="now"||$o=="uuid"?null:true);input($k,$X,$o,$sa);if($sa)$sa=false;}echo"\n";}if(!support("table")&&!fields($Q))echo"<tr>"."<th><input name='field_keys[]'>".script("qsl('input').oninput = fieldChange;")."<td class='function'>".html_select("field_funs[]",adminer()->editFunctions(array("null"=>isset($_GET["select"]))))."<td><input name='field_vals[]'>"."\n";echo"</table>\n";}echo"<p>\n";if($zb){echo"<input type='submit' value='".lang(16)."'>\n";if(!isset($_GET["select"]))echo"<input type='submit' name='insert' value='".($T?lang(17):lang(18))."' title='Ctrl+Shift+Enter'>\n",($T?script("qsl('input').onclick = function () { return !ajaxForm(this.form, '".lang(19)."…', this); };"):"");}echo($T?"<input type='submit' name='delete' value='".lang(20)."'>".confirm()."\n":"");if(isset($_GET["select"]))hidden_fields(array("check"=>(array)$_POST["check"],"clone"=>$_POST["clone"],"all"=>$_POST["all"]));echo
input_hidden("referer",(isset($_POST["referer"])?$_POST["referer"]:$_SERVER["HTTP_REFERER"])),input_hidden("save",1),input_token(),"</form>\n";}function
shorten_utf8($P,$ld=80,$lf=""){if(!preg_match("(^(".repeat_pattern("[\t\r\n -\x{10FFFF}]",$ld).")($)?)u",$P,$z))preg_match("(^(".repeat_pattern("[\t\r\n -~]",$ld).")($)?)",$P,$z);return
h($z[1]).$lf.(isset($z[2])?"":"<i>…</i>");}function
icon($Fc,$A,$Ec,$xf){return"<button type='submit' name='$A' title='".h($xf)."' class='icon icon-$Fc'><span>$Ec</span></button>";}if(isset($_GET["file"])){if(substr(VERSION,-4)!='-dev'){if($_SERVER["HTTP_IF_MODIFIED_SINCE"]){header("HTTP/1.1 304 Not Modified");exit;}header("Expires: ".gmdate("D, d M Y H:i:s",time()+365*24*60*60)." GMT");header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");header("Cache-Control: immutable");}@ini_set("zlib.output_compression",'1');if($_GET["file"]=="default.css"){header("Content-Type: text/css; charset=utf-8");echo
lzw_decompress("h:Mhgб\"PimcQCa	2ód<fa:;NBqR;1Lf9u7&)l;3J/CQXr2Mai0)e:LuÝh-923li7mZw4њ<-̴!U,Févt2S,a҇FVXaNq)-ǜh:n59Y;j-_9krٓ;.tTqo0{y\rHnGSZh;i^uxWΒC@k=b/A0+(l\\x:\rb8\00!\0F\nB͎(3\r\\Ȅa'I|(i\n\r4Og@4C@@!QB	°c¯q,\r1Eh&2PZiGH9G\"v4rDR\npJ-A|/.cDu:,=R]U5mVkLLQ@-\\@9%SrMPDIa\r(YY\\@Xp:plLC O,\r2]7?m06pTaҥC;_˗yȴd>bnnܣ3X8\r[ˀ-)i>V[Yy&L3#X|	X\\ù`C#H22.#Z`<sÒ\0uh־M_\niZeO/CӒ_`31>=k3R/;/d\0ڵm7/AXq.sL :\$Fw8߾~Hj\"Գ7gSFLίQ_O'W]c=51X~7;i\r*\nJS1ZctAV86fdy;Y]zIpc3Y]}@\$.+1'>ZcpdGL#k8PzYAuv]s9_Aq:\nKhB;XbAHq,CI`jS[ˌ1Vr;pB)#鐉;4H/*<3L;lf\ns\$K`}Ք7jx`d%j]4YHbYJ`GG.KfI)2MfָXRC̱V,~g\0g6:[j1H:AlIqu3\"q|8<9s'Q]J|\0`pjfObq\$1J>RH(ǔq\n#r@e(yVJ0Q҈6P[C:G伞4^PZ\\(\n)~9R%Sj{70_s	z|8H	\"@#9DVL\$H5WJ@zaJ ^	)2\nQv]ՇQp.˵&h2dM1#[[kf,ոΆWq'fLkgn6G;eהECVY{\0D5Rx\"h\"ݟ7W,ňuc31Cxp<If]ѱ^{/H&sρi9\$֒b0َIK\0]IDG}EDVNýmQ31KT3zq|#!\"	҃k/phy-.! 0dmK~au0>\$:\$VMf٨k6:3L@d1zlg֩iX97<׭#a}s\0\\mZXQ'n.9KC9?lXq깗\$M2FqЎKB:bo#KXnMzȤ\r=fm%fi.q;-7x(@#9F)/M-6.V^*g\n!\$(7GxwDWba{1-ԐGw\r9њ (:'%?0Ά)tjHV8}f\$f^wlKl=1ZZEigֺ1Xثbe&,2rk>޲O{-A]mMDȁ>G;ЗgQo:0.7lLשl|:nD탉-K*NY3x.dt>Ў)\$\$9BeeRGwir[62Ǳ9Xk0̱5^PO>C `XOk7\0Klx;48L\$09*9 hNF>\0rPQo<	\\Fd'L:b.4,29@Hnb- #2`Z.L\rPP\"^.Fh\0\r\0\n`	@ 	no	@@\n0 	\0j@q@	1	 \r\0` V`B\n`\n@fh\0` \n@	F`p1\r\0\\&B|`@NI#ApH\rp	`P	11% -\r6\n2	H*@	`\n  	l`z,\rɠ\r\"lh\0(d226\0]#L^\\%\0\\}\$HC\n<}E%IB>͈I\$r6dfhr</FbxYE'2boj\"m(@r*خ~d\$2U2a#`\\A貶r+Ruh\\'+؉\"G!.nMrW*#+%.h\$cCDƊ-#bO`Pv^W@tS-0-|ܶ)g'hF<\rj*\$4'\rH[ɪ1-Fh:,/ɾJ^ODٍj'\rT-&[DĪ(5E B\"`es\n9\r`h\rV%!MZlP^:o>֯XC):meC/\n8I2\rp2&)oC5m0iuAB3fDS61҈C2/Ҩ\ru14GGؔb쒑=KA3>4*\0TI%?r@!3S8,+?.1%6=\0s쭖XnRB@si(O(lKKu%+P65!.O0{Sj.`ȡiz%");}elseif($_GET["file"]=="dark.css"){header("Content-Type: text/css; charset=utf-8");echo
lzw_decompress("h:Mhgh0LЁd91S!	F!\"-6NbdGg:;Nr)c7\r(Hb81s9k\rc)m8OVAc1c34Of*-P1r416d2ցo#3Bf#	g9Φ،fc\rIb6EC&,bum7aVs#m!hrv\\3\rL:SAdk5naF3e6fSyr!L-K,3L@J˲*J쵣	bc99@H8\\6>`Ŏ;A<T'p&qqE4\rlh<5#pR #I%fBIܲ>ʫ29<Cj27j8jc(n?(a\0@5*3:δ60-AlLP4@ɰ\$H4n311t0͙9WO!rH9Q96F<7\r-xC\n @:\$iضm4Kid{\n6\rxhˋ#^'4V@a<#h0S-c9+pa2cyhBO\$9wiXɔVY9*rHtm	@b|@/l\$z+%p2l.7;&{mXC<l96x9m7R0\\4P)AoxqO#f[;6~P\raTGT0uޟ\n3\\ \\ʎJudCGPZ>d8ҨC?VdLL.(ti>,L");}elseif($_GET["file"]=="functions.js"){header("Content-Type: text/javascript; charset=utf-8");echo
lzw_decompress("':̢i11	4Q6a&:OAIe:NFD|!Cym2\"r<̱/C#:DbqSeJ˦Cܺ\n\nǱS\rZH\$RAܞS+XKvtdg:6EvXŞjmҩej2MB&ʮLC3Q0L-x\nDyNaPn:s͐(cL/(5{Qy4g-i4ڃf(bUko7&ä*ACb`.\r\nCh<\r)`إ`7CʒZX<Q1X@0dp9EQfF\r!(h)\np'#ČH(i*r&<#7K~# A:N6l,\rJP3!@2>CrhN](a0M326UE2'!<#3R<XCH7#n+a\$!2P0.wdr:YE!]<j@\\pl_\rZғTͩZs3\"~9j>WeQ:X/\"\$8X硉@4H:tL܌j~#8_Ax\$x{LEJ4'00<8>c(zX^5Dt;#K_v꩕u1\n`jn'\"Ir7U*!Ynjk@Ì+5)̄3CZB2HV`qæk]<{\r9|gr\\襜:B2781͍d=HLU}^NߔC*/|􊾓V`)8z:Rb8WA:\$2\r/BE~8iYtzX6ǰICQ7 3)6\00N\r갦 \r0ѯ 9~'%Dw'cdi'ta&r11?\\CmSɞ\$ж o&R,!.AHG\"tPv-&	30.	裃!iĕkJ7	:sO\0^'7^(`B(0nL9(\0\n[Uec)Fʛq2R5\r܀e}ܱh.iZ:AYED2@s1d<)H`تI1I\rZGRϔ/\$Oc\"*p'7`]@\\4BXzgABTQ3wc-sr_:բS@2 #Ė\nuP!Te6TaM)\0v(sVAZS<av(A%#&: `C)\r]MIC'/	PHXb\r\nYMzJFJP?JdBllDCS+-r1<w]v!)IKP4EslkV-kj,c,fRdC!&n0RJ2[3x3TB-Glls`hsV)W4SvC:nd-x` ®\$AP-kr^sASV?3E2X,KtSAq7\n^+%skG<aw	DdYڇQgbn\0A{濡9ùl.Hg(0TJ\$h-Bzm\nWY`!lc\0ϪÄՆMLxyk*Z3EU L-~?ii4[ iDZP)hZ\n5\"1tŦd/BrJcN[FժxK߭nDQS?Q\rL'!\nͅII%2萵Q;ǘ8mX-zIFF]t.H	r/[!#\r{̫pH\n4&3r*L臜{Ae\0L(*{kؘDJ_C:U2\0I0,\n;|xef0`1N`6>C){)3(t8dèO_DT^`H:c\0f<Y`f\\&x \nd+5U݇Oz{n-iFYb7vo%)Xh '7UIVwSR}dK_4 Wjnτ\0l\r\0.p@\0@Ȅ[PZIXكcbqtg2 \\i9< Z@i,`^N'uGBr'&\$F(/җ*uɄYiO	`ʑn:paPhnrM	\0кML,\$Nw)\0*l7GrlrQ	Os\"46 bXbӄoXbbeg\r `BВRhJ\"g\rTcj>I-zGolvu\rz\r	D9BK\r^\rY@,BЖL`^#\rwHpDJMXQ&lg&I\01 	P5&n0?gTs٠O!)`v X ͐QЂ\r y!'v.\r	fK! {#*/ඡ\0H\0r(Ȉ`SpcmI)8.s#G\"`Ƈx'ŔE)Qo)&\\VRZ@2bʒf'dZ&,U\r\"*4! \rD'G\\VHi1Rpc\$L2\nbToB8Fk\\\rB\r\0-l\n1354\04SHM4Qr2O%6p5/O5:pL5)Pľ%E361\r4I:S\"LeGs\\Q627=C	,	&D)<;\\~2ˮr076.'?52K6sa6R23SVLM@Fr9pț3j@NSӂk:@)B\0N`!e\n'PX\\YqLV&r+c.]锏h2]4 z`q8c6q4 ӓPg>#.)7Ne\$nB`\" 4L~΂\nu.OBN@R&N(uN@:h\n]6*hPXΠ@,P3S6U:鮟H5L-6T6SC0FsRRB~r:TnA/OP2-H:1e]P-'''8;8WUbYe!\r ^)Ȗp]	j.`</\"Uw3ʸb brA`fF_u^McTB	_Se65`\ra)ec]cAa_oa2>B\$@Q<OHJtx\"gZ\$nW@	D#S\0002#VΕB;N1NKPnv1wEl*YnB4IqZ`z\0\rR'\"픚iO	ps|)=fs1s72i-Gf `P%H\nhI\re\0X'\"\$z͉Yex@|~k yse`\$ZRz \\Wx[v`{\"Rwn'to#r*\0D3~^@xB~Ħ@}BUCx| YPXN`	\n\0Rmz+X:qy*X(No^8[fG\$LZ[vr#Xυe׍\$':\0[\nr\0Z}	b\$S|BcrQH)xРNDeMb ewzXswxAd苂LYC`{}q}Ό  4j4bFO7MN.'WS/uL	|\")IՁU%VUՌ^q'K4=c\"PvV7HI!\n`	㛓firH	tXn\$wFHĂP@rBa@W9`~bu>wbw3M~zw\$J<@\r&IX<_,[,eDuWL%\06\r?bLeKe*l;cXkY\0BL@\n@o\0h%lx=RB's2tpDϧ\"Z=\rBcQ2vBr4lv ^g(% \$\rvС\nP\\~U.R%ٯvГzx_e{3!e,{ewco|0EW!8wѶuitNef:\r(DV@\n{}cAâ׃|*!X¶\r\$LL/ELlU-/WƬc\$l\nUTPNŵt羣SY<,44.s	kv۠R+bdFN!rgs\$?BB2?P\$dtU`U\rāT\"搖EJ@oUx:<3SSIxGzD(7~M|Q~b5+Irzv@wf6#E\"-	(җhS*7\$QlvB%+]2Ohˢrod\rw'!C`biH8ώ(\0 @DdB>,4qHү츠Hbd\0`]e\"b w6;I?uMNj\rbS_!޷wdK\\O}{=ttZ\0DxaN 3Re#w^NPzU=!zLy͸@˸c]l٬[p՞XMspq5*W4Xs^\"@r~|>B5g2	N\$gFu\rzTjB2Anyc^vҸv\nOv:v}\0P[A%3@@Ǌ=cXGy)~u>zĜQXW\"wEwt;mJnfa@Oo;O hVVc^\06,#2s*y2{tXo;lث\n\nZc?`(%4\$&GrT!AݡCmj0ԀC\0D[H/{!Ak!N:5q\0MKC.B7/ @`Ip;PGr`+D<C]ǆ+<,%Hl`09-GsV]J\nu^Vi5/	6\r%T肊:\n!@ nS\"&)mt1f%RVXJtX%@=bU\$`z@X2dD^Pqő4p@\\,B~6??2OP6\0U0@	XKpf6 RR,e8񶁄Z\nk.BfB:7]\"I6JU\$Mpa:4_gpǐ/0@K;pÅTI<AD =!C\nj	忉S<e-a?XRA]@r4ӢӁOD%9n9x'O4-ZtpFK&1f^biB\rPKƢ)%'*Age\r.o@,`BQ7D\$o	*|Z)ҍE9`BC\n0/qبv#?ʽSt3oGmSlFo)?Y#F9SdfGסESyw#>w9籷9xRn8y.).P,+{dtH:!&;	b߈8k-<G4)%ZP֑p~[@.D텸~	(cGˢŨ8Xђ'ڎH=,\noɤBI/!Rt\nvU%DZlRhG*Lp:.V6\"8 Blr\0*<\"3,Ď|R-TGhfLXBtt\0");}elseif($_GET["file"]=="jush.js"){header("Content-Type: text/javascript; charset=utf-8");echo
lzw_decompress('');}elseif($_GET["file"]=="logo.png"){header("Content-Type: image/png");echo"PNG\r\n\n\0\0\0\rIHDR\0\0\09\0\0\09\0\0\0~6\0\0\0000PLTE\0\0\0+NvYtssuIJ/.C\0\0\0tRNS\0@f\0\0\0	pHYs\0\0\0\0\0\0\0IDAT8ՔN@El϶p6G.\$=>	w5r}z7>P#\$Kj7ݶ?4mt&~3!00^Af0\",*4oEX(*Y	6	PcOW܊mr0~/L\rXj#mjC]Gm\0}ߑuA9X\n8VY+D#iqnKQ8J1Q6Y0`PbQ\\h~>:pSɀGEQ=I{*327\neLB~/R(\$) HQni6J	<-.wɪjVmm?SHvƩ\0^q)]U92,;Ǎ'p!X˃LD.tæ/wR	wdr2Ƥ4[=E5S+c\0\0\0\0IENDB`";}exit;}if(!$_SERVER["REQUEST_URI"])$_SERVER["REQUEST_URI"]=$_SERVER["ORIG_PATH_INFO"];if(!strpos($_SERVER["REQUEST_URI"],'?')&&$_SERVER["QUERY_STRING"]!="")$_SERVER["REQUEST_URI"].="?$_SERVER[QUERY_STRING]";if($_SERVER["HTTP_X_FORWARDED_PREFIX"])$_SERVER["REQUEST_URI"]=$_SERVER["HTTP_X_FORWARDED_PREFIX"].$_SERVER["REQUEST_URI"];define('Adminer\HTTPS',($_SERVER["HTTPS"]&&strcasecmp($_SERVER["HTTPS"],"off"))||ini_bool("session.cookie_secure"));@ini_set("session.use_trans_sid",'0');if(!defined("SID")){session_cache_limiter("");session_name("adminer_sid");session_set_cookie_params(0,cookie_path(),"",HTTPS,true);session_start();}if(function_exists("get_magic_quotes_gpc")&&get_magic_quotes_gpc()){$_GET=remove_slashes($_GET,$Yb);$_POST=remove_slashes($_POST,$Yb);$_COOKIE=remove_slashes($_COOKIE,$Yb);}if(function_exists("get_magic_quotes_runtime")&&get_magic_quotes_runtime())set_magic_quotes_runtime(false);@set_time_limit(0);@ini_set("precision",'16');function
lang($s,$B=null){if(is_string($s)){$qe=array_search($s,get_translations("en"));if($qe!==false)$s=$qe;}$ka=func_get_args();$ka[0]=Lang::$translations[$s]?:$s;return
call_user_func_array('Adminer\lang_format',$ka);}function
lang_format($Ef,$B=null){if(is_array($Ef)){$qe=($B==1?0:(LANG=='cs'||LANG=='sk'?($B&&$B<5?1:2):(LANG=='fr'?(!$B?0:1):(LANG=='pl'?($B%10>1&&$B%10<5&&$B/10%10!=1?1:2):(LANG=='sl'?($B%100==1?0:($B%100==2?1:($B%100==3||$B%100==4?2:3))):(LANG=='lt'?($B%10==1&&$B%100!=11?0:($B%10>1&&$B/10%10!=1?1:2)):(LANG=='lv'?($B%10==1&&$B%100!=11?0:($B?1:2)):(in_array(LANG,array('bs','hr','ru','sr','uk'))?($B%10==1&&$B%100!=11?0:($B%10>1&&$B%10<5&&$B/10%10!=1?1:2)):1))))))));$Ef=$Ef[$qe];}$Ef=str_replace("'",'’',$Ef);$ka=func_get_args();array_shift($ka);$ic=str_replace("%d","%s",$Ef);if($ic!=$Ef)$ka[0]=format_number($B);return
vsprintf($ic,$ka);}function
langs(){return
array('en'=>'English','ar'=>'العربية','bg'=>'Български','bn'=>'বাংলা','bs'=>'Bosanski','ca'=>'Català','cs'=>'Čeština','da'=>'Dansk','de'=>'Deutsch','el'=>'Ελληνικά','es'=>'Español','et'=>'Eesti','fa'=>'فارسی','fi'=>'Suomi','fr'=>'Français','gl'=>'Galego','he'=>'עברית','hi'=>'हिन्दी','hr'=>'Hrvatski','hu'=>'Magyar','id'=>'Bahasa Indonesia','it'=>'Italiano','ja'=>'日本語','ka'=>'ქართული','ko'=>'한국어','lt'=>'Lietuvių','lv'=>'Latviešu','ms'=>'Bahasa Melayu','nl'=>'Nederlands','no'=>'Norsk','pl'=>'Polski','pt'=>'Português','pt-br'=>'Português (Brazil)','ro'=>'Limba Română','ru'=>'Русский','sk'=>'Slovenčina','sl'=>'Slovenski','sr'=>'Српски','sv'=>'Svenska','ta'=>'த‌மிழ்','th'=>'ภาษาไทย','tr'=>'Türkçe','uk'=>'Українська','uz'=>'Oʻzbekcha','vi'=>'Tiếng Việt','zh'=>'简体中文','zh-tw'=>'繁體中文',);}function
switch_lang(){echo"<form action='' method='post'>\n<div id='lang'>","<label>".lang(21).": ".html_select("lang",langs(),LANG,"this.form.submit();")."</label>"," <input type='submit' value='".lang(22)."' class='hidden'>\n",input_token(),"</div>\n</form>\n";}if(isset($_POST["lang"])&&verify_token()){cookie("adminer_lang",$_POST["lang"]);$_SESSION["lang"]=$_POST["lang"];redirect(remove_from_uri());}$aa="en";if(idx(langs(),$_COOKIE["adminer_lang"])){cookie("adminer_lang",$_COOKIE["adminer_lang"]);$aa=$_COOKIE["adminer_lang"];}elseif(idx(langs(),$_SESSION["lang"]))$aa=$_SESSION["lang"];else{$ca=array();preg_match_all('~([-a-z]+)(;q=([0-9.]+))?~',str_replace("_","-",strtolower($_SERVER["HTTP_ACCEPT_LANGUAGE"])),$td,PREG_SET_ORDER);foreach($td
as$z)$ca[$z[1]]=(isset($z[3])?$z[3]:1);arsort($ca);foreach($ca
as$v=>$ye){if(idx(langs(),$v)){$aa=$v;break;}$v=preg_replace('~-.*~','',$v);if(!isset($ca[$v])&&idx(langs(),$v)){$aa=$v;break;}}}define('Adminer\LANG',$aa);class
Lang{static$translations;}Lang::$translations=(array)$_SESSION["translations"];if($_SESSION["translations_version"]!=LANG.
3062807761){Lang::$translations=array();$_SESSION["translations_version"]=LANG.
3062807761;}if(!Lang::$translations){Lang::$translations=get_translations(LANG);$_SESSION["translations"]=Lang::$translations;}function
get_translations($hd){switch($hd){case"en":$e="%(n0Q :\r	@a0p(a<MSl\\;bѨ\\zNb)̅#FCyfn7Y	h5\r1rNQ<ΰC|~\n\$u\rZhsN(fa(L,7&sL \n'CΗt{:Z\rcG 9\0Qf 4N\0;Nl>\"d0!CDFPVG7Efq\nuJ90ar#uDC,/d\n&sSsu9c9m-3\r \n\n献(@L@;-<@L*B\n<\0!hHz2h: S<B\nl\"&\$NZ1\$VȀS	@t&Ц)B+\"Z6hn\"/M\n&i\nj+0!^07n\"4/jj&}I.9.#8'\$8z:0Cp΂\n2\n!0j#{VFeXγ70ʮюP\0α2\"އp2c1Ø:\\hkDApiZ9Vo\\9ܵ.3Om\rp#dh,ݻoЍZf3Rc9WɄ+ɍ#\"6#B3:xȮH#8_\"xDh͋CO]N 4%ʉEtu,*:X-k	P]4~c湾sGdhSYCMLd.DWc@ދ!5*9ZJS\"8%(U(/V.H@;wMT͒|bW)]}hH ZU\r#O;.\$eGݸ\$\n\npL@&LP2_m2b;@ί[r-8jHY\"΄ʓ3lP\n%\rRZyq՗lFg[쨐3h?μڢ\$`ٚ6o1<`k) k\\nmT<WjI[:#Ā@@j+@VNv|Kq@Ym&%Za,e@\\&e|8%dL Dq6͜ձeW	L*&S*[Pe\$V+ʋQD2uYZs/e}֚2:g-=DR/ 8 \naD&jHF\nbE\n#13'Z-;2L4\$QGc^LF*FeFdʹu(l3,v+1ͥ734&fIȑ `CU5ZNZxi\\Z,[T*`Z/j2&:(4E7sZˈAd* A`)5pN\n/SdBn,ϗ\"i׏D~)Ay6-\0Zr~3((+ZW¾BQ0f*a2&u@PEQ*hhauABUUֹDLl-ۄ9ȵ0F;Ep.";break;case"ar":$e="%)l*C(Xl\"qd+aN.6d^\"(<elV&,lS\nA#RNd|X\nFC1l7`jR[-sa_Nvf|I7FS	;918+[x]š'\$g)EAxDt\n\"3?C,̅Jٷdj=v=I ,΢A7i6LS:h4NF~.5/LZuJ-xk莿bĔ*xB4:I(FSR2P7\rnH7(9\r&Hz\ni3B\"̴\$PTsDEkĒ(GH4ĔBݖBIxP!P<S^sXbV\"bΈ:ZE)+PC\$(T!BBOK+jĬ#XqDB@	ht)`P5hc\rT0\n;PLĞh9\0x0:@0<x\$!p4(f\0A0	\0𼎍#uʿEp296hZ2;(sɔ\n͜ZB lJ\$*BUm	),P:\rS+@70;*ߒ0P7Cm<:c9è\rxac9h0\\aKQfr3\"QY/7mfV:5]8@ nX9jC4|0C@:t,;D8^2xjB:o67lHi++bC\"ȡlkeWidBjNZ9,xJ2?2|o|/tE\\A=j\$6\\\rt뫐iW3?&a)٩\0B'l񍘪n! A\"vO.#Dhͤ4ӗ+;Z@z,f~BimE1o8\0POJ9#	b:\\X)1mARHv\"#R\rϪra:J%J%^Y?Vd!ZtV1E*2G\$dI0	J ;85rK0;\"U-\$& @RҊ93#R*\$l(XaD%\"pfԐdn)BThO0&DЛ*zrN{0c`໻\\%܁\$|7@CuKqQ^dH[ۚ}OFY\0KDR;nV(ss/àKy-H#\$SL/'\$Z%,t8FDd*6zAK`0\\=`+[G;Gr펠1`FϤ-TXǊ}J<PTYY;8HvHI}'.\0lt408 Aus\0Hfh(iUڽ*@ApTEc\$Uko[>A\n!AHNI83I6\\jJfleR,>!ȗŸ G,DE2j᎕07\0ډK<`+9HITʯ[^s	o,WJ0ta<KEW_jRUD*a1QGgGHռ ";break;case"bg":$e="%)h-Z(6Q\rA| P\rAtX4P)	EVLh.du\r4eܞ/-O!AH#8:ʥ4lcZ2͠.(\nY(\$\$1`(`1ƃQp9\$+JlYhmrF @#e&a9kG:~drUIzay2ƁѢ^ЦGeS2uJ\\nEW&oI\\qՎ=rBz~̲7Fp0bv%6ڰÈk;\rlJK=/\0X+ĺL=\$\n\r\r63L[ʏ;qlq*oYσhA9sr] ˈƹ\0*X7p@2C9<O\"l(1>Ǐ3/(ۀ	Bf6nGϒ«\nr;\"(ެM	C%H gJ1D	Õ=S)1d	h0&ӯCD\\*JJ:S]O:	S8th& PdȺNVb84 D3Aa\0:c@*|)70!^0ɝ{cx3\r#=2X#V\r2H0CcT7c'd(:p4Me͈5u	@ˈOLD,\$hWI+wYI#oLV6`3z0%aCN.\$GS|/1v\"{O)7.K.\"\n\"N))Kf=0ǯN;?U\n:L\$3>)Z1)Ͻ3H	T=Yp3%ϣ|P(cЯHФ貰!\"i4_]3dW*36ⲧ1#H*^c@440z\r8a^\\08/e20n@VIpgb,WՎg<vibВvNqIAm(5IITN5SΎgFEVp\\_[}WC*\0S*e9>>	2\\C@렪 30@vQsKV-{87JxJO6bE)隠C\n4	Q T(a̰9@ea3Y.xgbL4@%cr|Y@`@a\rȃC}	1Ɉ̧l\ni.:F%@\$	mJ=31\0PVIgGL4,LvO%@@S	\r2H=p\0pA;IPJv@הPuf\"68#tϨ9	Jb8UKXwJ;Ld\nXQId%0G\$PqVO[Ӹu4 Z	rI=s|+-sSPP\\Hjd+1jeMSYqE!HpטzHT(8v@<\$-K|N׭DyY,giՓn3rt/(7{IL\\!	VwcS*Pךgu)󴈻@\\m5a'O<4#κ!GH\n\\!)n	,.`7&䎓SLqAw\0^+aQ#mL)L9|(Lu\$Ll 18;ڪ1xj\r˙2co\rS1Ӝw蜬=-'C`+-gbHMc''hjWoJrbAfw\nZxU\n/K@6\$EeVuY\n)`9&Y&,<S2+M hk)&5d(Nki2/62)jH'pNR>N܈ԆYb8paĄ\$9Vgse.C\"¯\\KPZ1ExC&q<=\$nJm+%4A\\Sq1dKvBM[2`\\/6҆";break;case"bn":$e="%)Ut<d sNb\nda\n 6#k:jKMŐD)RA%4}O&S+&e<Jаy#Fj4IjhjV\0B`ULcqؽ2`S4C- dOTSTLZ(JyBHWβt|,G8rgu\$)k2~\n\$g#)eӫf\nVUN(]>uL]	q:jtZut*#w=vp=L˨\r?JtH;:B6cz*\n(:O-*X#ps{BPB/j{BZ-INJGED!QY\$IMV.<SPw@H<ٗxm^&Hۼ4Ě6ش|/\"AjU<#'˒*Io>)2,p,6IQI4ϻAQU8\$XGKpRt(=^>nBhm%\nu4t!E*lSj|bɨE\\PJ2\\кd/\")YM9LPH i)-D%uӒ	*Cъ݇ryN@*3MH<ٕ@<-m\r}B\$	К&BpcV5S[Xb(k,ƒJ.L`x0I2 ~Q-*{,٫-=uQoJ6G,dEwr=LAlx+u	?ܺ5pq ~SGjKqܺ\$˿(XӐZv(=AkB2uvKO`95ȟ)3JEe ;MQՖ\"+}[XͫPbٙݨy4Xae^Y7ɯjJ@R݉vjtrޟ\\E&<2(rFq-(Q47Pꠍ\ryS-\"\r:\0x/L[.\r3xd\r0@x\"lM)Ns-v,t	1b72u56\n%h)Be_|AEp;FKHVd;Q\n;\$SHt;\"MvO[xVN[ 2Ĉ\"tPQR+B`\\р2Üg\0IWzKqoI*eঔm_O2ӿyl\0pXˮ~_*A`#hꗟFPJ:\rml<;aYLO2A>\rbNh22O	!|H\n+>R(\n0)f\$ZXC`i^9hqTfO3cu\nF />9*2co!UGGJ%,u5ZԵre(ޏe0~Y|WTnT<Ԣi:c4IpdA) atdQ`{P1Lї*UԽ[Sj'	G[ʨ2+K~bҚ,4=9R]=ԕ}&C,člG}b!N(vɬ4()ţ\"׮z[G4]:%InSOpT#x+h&v	#qpk}NuX_Wb#f ^F!f #JvC+f* H:p^ħ)q j|:^0wTw~l@}KJ\0JLi)\\֧{\"ڙ<=NW\"D*emΐ4&<)\ruM i+/E*nGT4O::`L55Xf(ɽOڇ])lwZғRl9U40-ҹ\\T%oENvؙ(P5G:o6+O~pT&u?Uq-[m߮96H*<2O\n)qcCW,\n3Ag'ڻa#osoY#u9U L\nBz&N3JI}ӔRzDOT7=͕ЊhP`y4蔇ԓqKzӎ\\naC7^]-.ORc\$'[GVR6ډ#xkd<u6[J]<;uU2p";break;case"bs":$e="%(l0FQt7aNg).&0M磱7JdKia20%9IH)7C@iCf4(o9Nqi :igcH* A\"PCIrDqe0	>m7ݤSqA9!PtBaX.	B2w1{=biTe:Eo;i&a1l2̧;F8pȐ3c{1cMYd2wT/cg̒d9\r;P1,&)BM5Қ֍[;\09K@*!\"4)i5K^	ZpB58*IrB%/@ @1\$c\"H%@Ԉ7 R) PH g.)dG#<l#CJ<#(,bF,11ǭCI2B@	ht)r\rh\\-4.HA. ʢR\r\n/\n!\0#x!AV7˫]סNYC4E,bneS\$7cMg3˾VCk;Fc,V*\"jlX\"L8\r7g\rݷ72h0J9B|\n{6#3pc06.Jp9@35fIP:A@h'5hܤ5'8@ /wUbR4/0z\r8a^(]CÐ\\{a}M_BH.\\zǡ&e1~4lDƥ\0Zc#[ڳ}z{(/[nnUH89\rx:ov4TnmP0-VXKQ,X9@[{O`1p7d+h##7*cy(γY-^1ήC@hy'j^\$4@@P%PH\0PPI5dCq&&Hn)/dxqKTA:êcUY#\0MZv/\$.*:n7hqÚI;@Pgk@DF,N\r)rR)8>O0,3pcLE c8k\\,`6dQ,%\"^f\0M%ȨRNVʝ a֦p\rRCUa`dyKӘTupTTPʤr\\qy<)q-gX~iM\rbdrsL|B<(ul˨ \naD&a)R\\DyT:bl0t81;4!JjMYTNdi1!RG!&a(*FC=GOK9=laLhd*Rcc ɸ*`U\ndZ\$	0In\${_⑌\nIlIJěI:t:Lor85SkL-ҾL4/|`oM*\0IF5\r6:0ޖ@jB9L&Uumm!#k}6UOJ[%B;x{QG1I2M\"4!#uB\0PRT ԻZP";break;case"ca":$e="%(m8g3IeLa9t<NBQ0 6Lsk\r@x4d	s#q2T\0Bc@n7Ʀ3xCf4(i8hTC`uADZs2Χ!c9L7)I&ZMQ)B>MΒc:N!i3M`(Q4D9pEΦ\r\$0߯Q5M]YbscL<7N	]WcEY!,\nNxmoF[7n絆^4C8)llމ-ޙB26#r*Z;93Ͳ>7jk>cz,90p܉#p1);h&aY)7@#|#c*l @1*(rn2ڠ^sc\$Mp1+ؼz86\rx	tѤZBG\nC1sr7\"@	ht)`P2hc\rD0PFQ%-B:£ò:##x!IYVh܏/L\r`\n)fGiնZ2\nF)#N6L\n\n\"(43ȇU(\n*؄. P2(Ϸ#e9Nb0\r0\nI	 :\$Hqt7\"ިCp\"M͘A</X؎X3-,%#pꪅR\$&&+H*5ʄ3ZT\n#&jey#5VD49Ax^;r%l!~\$ѳ1p^۝vJ\\Y4V:3\"FF	;ҕð# ]XFlɳmթ4I]nvn(fV8få)q@59cJIw 4o\nڵ200Ј2:;Ĉ&3sh [%Nὔ':TS5Io#iY5LWB\n (?:(@HJ6<d(\$h4VC:<\n)XDׁDt7&PoEZU!n?@cRA(4\r)p	j<7:R,\nnrqĝ\0B0\r̸Np\\vzD.HKIy1|`@LNI\$CBN\\/JEAX\0 0/h@l(t1S:TO\naP#:LY'p\0C!U\"hKGDC7(r/f]	,Mr;i8h\0S\n!0A#\0F\n#\"c	Ճ(u%\n)\$Ԛh'}\nN	@\\#vEՅx&VҳCy#ƹX%REp	\ntkӐN5>dYcEA\0C_Tn6ZԔTj\$\rWK泂T-f*mpg'Dz*_璡TJD+/5sCJxQhGvl\n	x<zSJMBtFDD8JN)7^+\n`o/snHA@(V|.cgL*X'2z`a,DXT\0E\0WXPI9Y ¤y5q3Aj;!";break;case"cs":$e="%(e8̆*dl7qraNCyo9D	m\r5hv7e6MflTLJs!Ht	PeONY0cAn8Ua:Nf@t< ya;Qhybƨ9:-P2l= bqa27GɌ1Wa1M̈vNBɲ:[t7Ie!;ɲZ-SDκfUFcga;da1l^ߐB͘e64\$\nch=-\0P#[h<KfIcD 0B+Kn#`\$ \nh4@c(*K<\03t`)'2c\00C&I҂)ɲ|ȁC2\rѰH i20|`A.9B=7P2r;@*0P1²9+IG@t&Ц)C \\6MB8Qc@6X\n˽(x!EV2v7H:Rm\\YL\"0+\"f*c=?j!%\\k(F%T\"-@:9c	<£ڹCJh94874`I&72s0C,s.\$7i2',\rN̍lE\0Znl̎eIn;`NE\r90۔eC~YeYcoT(*g\$\rΣ[7nJc~R:aje\rgu繶cD'ۍ[C\"/b7nD\"%fʎU#&Z\"(C@:T^h]>si\n@3z*:\r=^9][(aՌqt.#69^vk'e߼;qg:3)A9)f4E>ǨzXt=K=_Z{`Lh;7jʁi\rH7;^Chp&L\$7BZ^Ba'T,jj.|<R^|V[B%+C,LR\$J	B\$7NTʂ.!00we\rD^&ދ:!.Xj\r\$H^\$oeRFcLd!+hD2H\nmڪAG'	D!E(LkpPtbM\$Ȯe	|8321xC[Uq0XQ\rD8h/C5Bc~\$M410fS\nA\0	2Za*&Y\\\$A<ޝV2TI&yCd\0+f~0>Z*,i1\"LӋ'RBWQ9f̻igDރ-\$fMI@A@'0~KCPQ 5FyZ/i> WaqHrNDl)GxrT_/r&EH7Z<=THFEb\"IIӴ4\\Я +x\\\$=Ir+K+Uʚ?#`+-Swdrc@fe~i!\r,֠7Bby_#lL-\"6[\"H\rP\"G%[\"ƍ2VdL=BØlQLPURw&*L*0-v\n(쵪[o춷iU4~0( D4ՇRwqF@u\n;w1-嵝Tc2\\X2\$˾-o0Ҩݧ\ndaZɪ5@<ŤF	(!b*9%ZXfؗzP HEAZg\r2Q5i)zЍN";break;case"da":$e="%(u7I:\r	f4is4N2l\"ц9Ü,r	Nd(2e7Lo7C\0(`1ƃQp9GS<y8MDYCQ\$cf2 )RN17&sIl36Me#)bl51#lg6rY&331@a\rI-	rɺ6G2A]	!τĝ4z]Nw?t\"3ob)t3˭YESq7\nn5S8++;\r0ދ1# &<l,(&70h@PJ2L21\\[P!CPxH b\ni{:\r;1#&		\r61Ь\r:B@	ht)`P9\0K48t\$Ih@)|7<x#t%!r03#-#I2(3P*1TS?T7\$	9B#7M\ncdWW1@PcB޳.(3i*<,*\r<<1c(9ë}1XW3,mE\rhR`ب46H\$#&W[\r(qBBd3ێt|\";4Čzˀ4!xDi,rLS{VKi{.\"\\t3Pɣh9\\&2¬u/ƾPcc湸yg06NfjU\0nxB3U.\0@3*,#=ܚƘh젃[ZZn47MLO}OA3f {7ۭxàВw\r,}n5P햦iNy2 j^۷a\0\$\no	Hz2l,ȇcH\"3@)LI*>r;D09`ytPCb!h\"Ds\rv		\rz'Bhpa`!p^(h\r!r`̻!a00a) RA(-CPc=8@H!230Q\\9daH͐6uNI amh!	{꽌I,8qc\"eIȆW[lvA<)DeZorC&יH\r3wB9\"Eb`L	A\r%Ѹ6ZZ(b^HsDT0i7ϭ`	rM?\n߉rsl%Lf~r&B̗2FH{F(EMa\rcVkeg8Grs]0083&h,5B5ChUFU,T=	j0vNI3\01pɐ\n<dL(Rwap\\Ti!2#=\$NЕ]TdZ>DJ)3!dحs`UJ5d>FX%4\"HP-]f\$IB[9U^Jd,U@";break;case"de":$e="%(o1\r! ;C	i9	MQ4x4L&:Xg904@i9S\nI5eLn4NA\0(`1ƃQp9S]\r3jPpv >9M(n1\$\$NқbqX8@a1Gc\\Z\n'X(7[sSa\$NF(X\n\"ڌ5MR\r6e]ͤ<#(@dDM^|z:gCܮvܧDSuﵗ6-l\"䇾*,7m+\râ50 P:c.\"\rc\n\"26I b±(0:B`3Qz;#	6p:.抏@PJC, P52(H i4+r\\6b1&\025-Ĝ!\03҉N@&\$\rC* 	@t&Ц)JcUD5K(1DRD\r\0\n5\09Cc:%5hx!IZZ\$\0c*f6ֲóЇUxކOo%̳'(sZP0յ36o@-6\"9&(8Ў2m\$P:GNR\r0;5.J\\;Nbŋ\rkn-<7C\\C06`HR p7at&p<]7kRRȟ\r@ЖIP9 ivmgY䆵hhR}i.v(N7k&Uiҏ92[\rMʑ,҄5C0z\rP9Ax^;r̥s3or\"8A ø֍x,76?9r#47:5+#/5wYPǃ|Ƨ.̵OV uWX띀wvN`;WnC(/\$i& нΰu`\r\"TJVp0r(&xBH\n\0)pՂ\\t?\nZ;O*\0n-#-qK`2\nlXqɛc.\r\r4x\nr+JӱN7r0c2DCxc]L(reDlˣHj\"<pʑa\n\"T0&Dsxlb|m	=!YBd\0LF'~\rʃ5a#\$a >\nr+\"Đ!0o9As3{cHZ{T'#0fʌ\$,UI2r=/YQs-?,4iInD5^KA:+Oa!3!;Kԏ]9<Ck5opOSO\$HxS\nE1\no'8䝓d8'UՓ-I_jQgRn&.9S[\"@.D&T(F!,\n@嵢˘	urh1R虊G}ԩ\rd>w\$WJeW\$ODi7ϥvcy,6qpla-;,5~\r?<:И(4\00-\0Ȍj	\"]Zbi*ip#q-%7Z>hq?'q:24G &aKNm6\$A\"c?w)xpY=!07I kQ×CE\"iI92Ҙm+[ĩXz^̇@eUd+L\"n[^z;gt{k\ru8ypt";break;case"el":$e="%)g-Vrg/x\"ZАzgcLK=[QeDXŢJr͜F1z#@Cf+Y.SD,ZO.DS\nlΜ/*	D+9YXfad3\rFqnFWBWPckx2V'\\Is4ADqe0̶3/tfOj,Q#rDIjI\rQe^DAJuC\"\nΕӗMs7>|w2U:RJ.(E,Z7O\" (b<K42LNpR8:8<,rZ\$39q!j|RbʒZ\rCMrGnS1˔>̂j ĚdڨQo(!r{Lqvg%|<B5x7(9\rCIj#'\nŢP0N|9HTlB#3N)tJY:g'>L @1#ٶ}2Qs@\$	xHA̅O+ Ң\n2 ^IΏ\\zL5N~>sУNe8De ITFq7c0!(@^xHʮmJ0ZcT{,\0:c@+ |ӎF:E0!^0ɶcx3\r#>2ڃX\r4bțH0CcW4hݴmZۜŤ7cN1ezK/ȥE1I(6\rWĤUq]gL#)	b\rL37sQ\n:5_դN-\"JkuS	.d(4%sц\$n?\\0d#/)BTfL[]DEc43ҔH`./Ay#6<2׺sOs|O,cznJ@w7DHwAOFb-1E>Ps1)}s`≰T\r\r\$50@k<l![\n~ȣaӆ`z@t9^üi'\$C8/FCzGfCpgkEjݒE'!\$?{s.픬(\$D?BoU&\$\"3Jt*h_12x\\m\r8Gwo-X& iCf-9dC 2W*%PųFTBԆcD2(z6ie\n%D7)p3FRə9N!R>\0Xaq\0C`lY8(heY3- Ack`9`D`o톇/5mMFy!JDQalV5H@HLP؟OlS\r{0W9+\n (\0PYK26B\\&R@\$rli;Gixnt.%r\r!ڈPFBϩ)iIsHȎ=L]xQ4(Webs*רdppه0Ԋ4:a<at`)g!Uj,A) D\$=eN\\)T\$Y63)u`8YzTI^.t.qG\0b 32D^(ʒ)3=!\$Eq-L[zBF/X.U`B/	0D,g:a9ABE\n<)L'	FLvrWaY3V*EiXr2'I9bvgɡq~dVIaؠL85̒\0+*Xlr1>Df*̫fԖq.Bv#z'El!JT'UڂMdF51:ϊ9&IjLa.*Jgl-lG6,9U\0b\rv\rVe\rp͚EHPݢ2ψ@\nSIȨ![lAU(BRA\0U\nl	q('\"ղDZIOɶRRiYx\nV%zˌY5Ẳg}S%*gV(橮X*=(8Ryhubx4NSi\$w\"%YbHWqL%ʷ\$s_nIX	TẢtfTȷڨY!V-OTZlc<>s/-{Ob!j~:]FM+VͼF|tDܧ0և*pQ\\'H]+σbgЅ";break;case"es":$e="%(oNbi1gBMi;,la6XkA<M\$N;abS\nFE9͎Q 2NgC,@\nFC1l7AECL653MƓ\$:o9FS,i7K_2Χ#xI7FS\rA<MӔia	r8MNfDl4̆gMjE*p2iiN@	:.O~ir2,dQCO&p9H3,0gKvIyfG{[ <\rℶ8ܲJӪP0Β4kR݉-ޔNj,KoǬD+j޸o90*V0B`\r+/ph02\"!+1*`)(PA jQ4쌂h	C#M#B	@t&Ц)C h^-4.B/:\"\$@8a\0x0:-r2:h~6\r^0gZK\nVán-Px!;[HZm-zIaChB0ʏ</M#\nk]GBNPelx6F:OKi4sw|*bf/|Ḇ5¾PHRe(,COU!L\$,5}<2(@a)p5c2е@ ?Cr5@40c0z\r8a^h]}jÐ\\{΃}=bY܊_Y.1)L 𭨣;\"l&\$@Pc%/JLqO2[&ʹm[fݸ,W~v<\\ˇ|VP]Їhupkw8!j-,ϴ:j\rϋ9q7}/5^cDC0ǎJcY朂RB8<.X8B,i<\"H\nBA<\$\n(ric\"%4h\ns\r4bY˽òH_E3Ò:\\/!˹Xt0%3	Wd);к6!,ʠC	l=P7RѨ;H\0VIapIX}@mЊ#A4rȾi/&\$2*b3&UP3-2&3I!,ʜT+(o4<W>̊\\J)\0\0¡oPo\nu'@j\$䤕fl6op<AWfL)'uy>P\0@+A'fJ\"\$P~WHSeə71L䠶LL),Gf^f%sSIQІ`+#ZO;ڒz]+7(M5`yIp0-,zpLeTXXdneT}\n DPO\nldM*UȜSnqJe=5\0n+\nRm\"6qOlh63'Z	5J\"C>γ2NCzBxa2.)8Ȧ~YW0Xc/1piܯ(BFaQ5iVb<<0kHC&";break;case"et":$e="%(a4\r\"e9&!i7D|<@vabQ\\\n&Mg92 3B!G3u92	apIdCf4(a&	\r1Lj:e2\rq!?M3ϦV(6byeWhsygD̀nZhB\n%( i4sYm4'SRNY7D	4n7hI8'S:4ܜ>NSozZW<,5!Z 6N~ޓ0~3?r3̾!Ϋ'\n3R%b52CKBTK\$\rȰ\n\$B` [%<*ϊ9\rOJH@az 8\0PH i& P:%R^:@Sj46kC4Mq\0006B^,b@	ht)`R6A\"+\"o\\2F+@)|Ó<x\$,!3\rF'(`ďRh@2ΪT<9rXi8:M6\"CXG	5LD(ˬsF6pDH3R2\r3E	H6+p01h3c9XXX35e caJN+<\"I?Haj7#.pp\0F#61I#B3:x﭅ȣ9hׁx«K\nA^]R4¬ۍa ძPN. ƳC4-vζ;\"3l[ ݲXՄT6|b7`K@޴OBT(!=nb6Jτzg:1̿9gb#3%bf0{cb.Ex\"A#<gB%t!LLQi\n (@	\0\n-&!Ne{\0p)6)X#fcKkJNP''9\"x%✘r-!0z{SHGA0N)\r兄`@Rb8v+#AƆ\na*%\$H6ZWj0Alp\$Vˉ&R\$\n~Lvɂ\ruxd応rNxS\nESx!A%8\$}#.I	1L\$DYh\0ӑDm\$n01E:x \naD&G` RXKYJZ6+LĐm\01R\0ZhG*Z5{MKU3 X)#GźNB\r5W[xl'ĬT+'vdr1\$JZqgXRxeG6&T0yF&ٚCy,t(sLcI4赒tM;i#G8r*(eKHɔ<|sC-EZ)0f	o2WUqU)%B:Ոe*\nE:i-`";break;case"fa":$e="%)l)\n@T6PD&چ,\"0@@c\$}\rl,\nB\\\n	Nd(z	m*[\nl=NCMK(~B%	2ID6MB\0Sm`ێ,k6ѶmkvᶹBhHA9!d+anپ<W-l'Dqe0̳\nXvC-*UeKY\$v⬅5NWf+PdFZ\\aT綷Jė\\VLã#u\r#He)nZ4Į>N(N죂ͺ猪j(l4{\\)#7lX\$d˨)SCB5x7(9\r㒖޻OK(2t\"')#cx\",DLȅPJ2@Vr쨸\$#\0 PH g6{U*J'#\\\"`STGJCP)̪pC=;HQU\r9ӤCR	Q@	ht)`P<ȺhZ2K\"\"C@6\nd19E\r#x!_`b7Hc}{(H0Cc&lR7]Uw](:p45\"(Z:3]\n\"\nhl-\0s\0ت=rYC6:NlIHl<˸k&*18N39QDeD(:ŒjbA\$d,*hMxg+d@f.iznj.Z7nӢˣiT!Xv*\rP]u{\02\r|T4U0C3:xم1Eh!xk#7}!oZQ9	B~ʬ+i<\"J7rb\"e!.@\\+v+/U];un׻fݫ\rȨ;x_O\r1/^!䨡טNO`=7RPeq(.a|%2Bb;FHK!E04ȇ Ra9@ea3Xxg\\Q0:ALtǺl_н4s[\nEPeѴxG\$Y=vM@\$	D3\$yPPLK}9fݬ2/1<KX7@#xo9<Xh:+*1;ŃU %'8V3_M\$\$\"® sɮ(Cppq0Rw\r12\\P2s1zIxC\naH#K־J8&O%B)d6Q8'Di'DEh)-zIDNvVN=\$!tx2	\$<\$27%1xq_dX\\\ntQ8d|WS`blT[~4qQ?0`\$:RnhQ'GkMMt6YzU|ѽfXIBQ	Ⱥg#yG͔#I-4L69&D6i\n|2fcTJ`͒Rh>ÉYdݿ:/\nV\\=-KMTru!;'0]Kuu٣(#JD/SI\nstAiՔ7e1,wT*`Zf\r(o%݃e[3y1ClFJٹ\nVǔbQѼ?}F/E1,TlJh̠)gxz;fz*o{dZ|uU!Ph`^G*~6\ra!Q3t|Ab>ߊ˧0։Yb.JgEUj3q>BM6̾61zrQd&-Kg.eD\\";break;case"fi":$e="%(i2\r3 2Dcy6bHyl;MlegSnGgC@tB\\ 72	aR,#!j6 [\rHyWUy8N|=NFI7FS	 ѧ4y0&~AHk!22p2p(MSQRM:\rf(i9׫hCcRJJrTf!7Y4֣I7uz^\r2ÛO 6ybkOd{%zMs24*6Z݊::cД4\"7Њ\0ܒ\r)R>/4Mh2P<c5Ƒk0:mBPJ2&:2+X7hpHt0+0M\"#0NE(SƊr2J\">/PܰGB@t&Ц)C>p;SPɚ#m=`@*|a.P|ՕpHΖta_d%0S懍p[!N9Ah[1\rID0 P:޵%d#ډ4J\r06_^%3J#zJ:%ͨو-r39>Qj0TH\r\r2\nmI\"d})rje\".RYBA\rbp3ZiKo.&nN:v#hr ;ZRz:tn2*j^P{~PvϜ)L{-mN@ j\\iHUB3Кtd#\\]{Op}\r#j5*X7CӻHDpiׯbS\"t AGUu݇dݣ1ۇ'r(xC&\0D9q謀Zz\"?2_a	\0<bIHIz5圂`rH1Y0	y\r ţ t|OA^\r4ùh_5kkm\"Y>Aiڬ!oRiO&@Zi7`\$g\0-K,մ\n\n)84czHҡ~D\0(yPЈR*sN{4,	aI%I}\$̚R\$ƂiH+}4sL_Qc>T)LHbB\\W,P aL)`Zb_o&>v'6.(C5s0Є	Vu	\$ч9E!:|0#6Y}@khBBQbsHHڟ<u%13Tai5+a.<)@Zg^O(OS)[nCHr'`5KQ's.WF4;X)**\0tZ=2X(IdM⎔z#2a\r'NA{T{m*56B9elM!\0\nquEԓͣoFv9g\$<*I 'O)%C|j\rkj-rGRLV6|ÆYN	Puddm2:HKBuJgEH;F@%F6ޠSQ2f.( fX0n	j9q,'-BPRYDՀO'ř܉T5";break;case"fr":$e="%(m8g3IeAt2c4c\"Q0 :M&xcC);fSF %9ȄzA\"Oqo:0,X\nFC1l7AECj :%f0u9hZvMqM0Pecqe0:N+MޏR5Mj;g*L'S\$yy=W3Rt\"pv2LndNhM@m2)@jF~-N\$\"s93N78-L?O\n77eKzT7@<o0½)03 P\rcr\"L;?t\0јdL24P-'ıMR4kn03V:IR&05h	ʃ6CC\0ϼ L5MH: P^sb\nC*@k4a+\$-,%\n\nsM\\#p\r@t&Ц)CPh^-5.Pp!ɍ\n;\n0T\0#x!If&D=nBtP1d*4#W*ݲ10(aKb0es^bM@ӂB;87✑N2YS	THmzH).sw1^@¢82˞Ar4*0X̡vˣ0ӺNMjN|7&A)ΞhζX@ï@xx52,!@ ^9iq#VnÌD4<Cxх\$h!}STxDuGsVhl8cm%h{e#\$M5jNh \$/,4s8:sEtwR9u}nS}S2=6IJŭb<e0=2aGҾ61N@xHTًIZ\n4	+08c'~3AX\rMWT<0k\rq&0\0@@P 8(AA@0'4i0IC\$޼tȱB\\Np`')OikJMOJ/5&B6\$%0Z5:2̫1Fd\0@Sx.ȕԒʏ(@\\aL)dAUZ	Ɵn#Dq%sJ;n,`Cmh,<fL3b'ItPg홆@	9>B\$\r\\!0h6q-`ˈih\$@m\$(	C?V@j~-<6r1?FQzΗt,&Hʬ1\\*XI;@Ee=Q	`THN6(f':В8##̒H\rg/2ָ\rޱ#ӌ\nZJj\$T	\"oX:akKi4شMF@#;plaʆqQD<ٗ\0,z4ˇ(Ti\$veTX\r}ve,ٶAg6E\$ȫ*U5y((WT06i* E#bE2B	QbZrסi-=TKnR41Pa8Rst\r1oWt+m 9Azw|xHJNóbKb`@LRTHܚ&Z=\$)DU@";break;case"gl":$e="%(o7js4Q9'!@f4SI.iXjZ<dH\$RI44r6N\$z 2U:c@59\0(`1ƃQp9\r0  7Q!y<u9cfx(Ys~\n\$g#)	1s|dc4pMBysB02jn0 SvݣF]ɨ9b\rga8ɲ5EA5iÊvUXلA:^Z:n<oU,KVƍPQ<\r/!26	0B	p֪J~I@򽯢:BH`Ep1NƟ;#*&6\0<@L)J*\nJ^sbK	M>!\nK<C{BbaV0P1Ծ)Q0Bc@	ht)`P2hc\r<0U`5Rr\nj:¥c9!0k9BCx!QYV@1-L62k*6b8u02bL\n4EmK\nZH\n!@q`,|OpÜI\\ iPQF1*Z5+pUKvaLX2hl)R7p\\8ӎٹL\"HFAYtjD7N)lp3Z,#&f #D49Ax^;sSĬz(h@^]YVԎX#2UBu6!+21Ջ4no\0;[T77qqhɎ^Uʣj'(1(lB\n۬PKjp164sv3P\\{T\0i|TC1Zbe0.g?	Y# &\$NK;\r傮󍣞K9Snw'yd\0 o#<\0PRK0&9^DH\rؔCÞB!RVGi;L3bFVim*ؗ`@C/XGX]|A@aؙrB#1TwD@A83Rcw2D;C\ngo	HAvZ(\n5FePN,KOdP:Q#WXæ(xR~LI5\rC\nr\\`(-p薼Ig&ZUM2䌶)CP&l(GK[vNDw1%|	s\rBxS\n1@ДaJS-D#nm>w8oc,s\neݚP}q|0WD\0AiR #(e )\$x0*;3j=Yho7J8ڰ\nJ9&7u|tp#J0\r1pC#0Ǿ.ά&BCu\"\$*Hh3[\nP#pJ VԔl=\"ԘQalPǪE&U	G󹔀/P\"\r8g!A2+:M;.۠E+Grd(cz!n 'G\$k|Ea\\h\r0aJ_UF.ʜHp^G)5[9N1ŧ	\0~H*\r";break;case"he":$e="%)kƺAAvUkb*m(]'mu]2וC!ɘ2\nAB)̅E\"ш6\\׎%b1I|:\nh5\r4-\$L#@'b0T#LIRQ\$c9L'3,.N(	\\aMGXk1UPtfOn1[	SVqClql{Q/CQD#) g+n^U¤VnBi'̱k\"1hDAb;9QӉuvGJ]/)\$Q)\n*fy7L@<n>,DжZor.ɦ%k\\kL^L\"/zNTA(ȷ;Oɐ!hHAQcB20JV)-	#8>HR,Dh<S\$	К&Bc<h6 #CN<:z\r::OE@C|PT 703-!I/\0\04c6/	\0\rUYP<(94+7\$T\$Ki+;ϣ	z8DܬKLCشZ:BHIL-,l>-\"9'\$r6^;CΏ\$XCΖRLE%wP7C%}<\$@>*# Q8EAB3:xNV7@!t3^2S^xD\$+l.Nk.RT6#@`6_P`0z^Xć%\"\$Fiughd麭o\\zBmU<%U0V_	93s!I|D6%h*\r1t@;#`K\0 2\\H 1c(9ï6\r=G#|Sǡ]jc_͂#&~/2H\n\0RrW4.^_vi )Kg}\0CA'@?'ނXEİv{o\$Y'xKOTA8Uw@;;+ؔ\n~6C0ȒX)3D\nP҉00,:j`F#7d2_A&NGa\$Act n)%y+[׹Kb,jIy'\n<)IDq5R<m,HaD\"YI\"6hY\rg\$c0Td	d:xF^,(:%Gz::8x\rtPH9F1BǑkѰ,Hˠe@Z=ØBGqB`C3R^p\$/\$XIh81J_Z(ݜbl)60N-%c\$JhC%:hvjbH\nL9JBTl\"\\֘,	3PWYI<ucu<cY\rdH)bAITȄ\n:Cu*MXKC";break;case"hi":$e="%pRX*\n\nAUpUYAX*\n\"baTBtA4!RO_IQ@q*`j:\n	Nd(O)!\"5)RW	|`Rő*?RTDyKR!\nDJ\"cU|\nԳu%g\$I-=a<fHQHAԴ%[M._Dqe0̵GYHsz.K`RC3ue\"#IrU쒮IB#RE#ɿ҆>+Iڧ5)\\/bHhjڥOMh\n+;Ⱥ)HP4J*\rj-O4@#M-H!&1|H\",LD'H?Dz1Ӹ20c+2s50!H(Rj-~?R)+C3:J3}ryOKK\"J;nTHHT<[WP.\"\\޲D Mi@m|\\O0!d>SH grDo@=x)Ot_T.w}zGY?Sv(mB@	ht)`P<ȺhZ2Xaa+Q\n H5Px`Q?So?<ynV8Xh;MbØꙜR6/[V%U9NDS\n\nAy#L\0Ӌen|	 ɉ4R&DW\"37coyGkC`9's`(<{KcOb2I\\޹6ʟ?4bCAv/X7wˁQ=7:acC1<rrl6ΐ|)c%Igd>#?o)A\0h8 p`\rpa4poAP o\r:8?gT5֐{?EE`n\r3moOėIO4%\rAM6q3\\gD^1h\$~N<|v#CWY/@KM@%ip)iGc\"\0BTad.Chq>\n\"DhFq:#&T\nRh\$ڈbbI\"Fg.aLEu1];K@9).Qt\nED@sŔN!.]#̝}}NtSӡ.lԠ)S3gMvr,nH\nj*ާjShpR!2	6rv9N(bIVh:}pmQAb'91F#\\xSxɞH}2qI~P?y`8B瑜0~DPUXHp)˒UUV\\A1-X\0F=gX)bFFBMc|)A	Oӧ~;%x+ҵ|iFFkN3dtwNMh	!G夝V|]P{\$&dKcj.er\$a/U\0¡khII}YUw%;jϵJsWfv)/cVv;YFaL(RF`!q\nPuE㯷ez^ly0Sݳ\\QXO7y]Ov='v)\\)ﰪӶU_%J|#5f@gޣ9҂e9Dz\\j,3`+68i:AT*`Z0lۖ1[iyrA&\ns?%W\$a鞃%Vs]L(OP#Z=6-6NjpWS6MbWwvl/?Y6]I?lSP{RX9]qY)/X'H=dE;XPY؎	 rE(\"	>t9Rܢ)b6\r}mV,RY'U[cq˓Z	]Χ\"^@vud0_PNMz.?k}E ";break;case"hr":$e="%(r4y@d0\rC) 7BbSoYm0\ryv7!Rl4B%!B)̅!\"DbqYa.pčF`1ƃQp9ftk4\n%NqAi3NQ6b!&CC!YYC7Ӎ!'Q8(LSBU9L:M51t=(_͆,0WףInM:3I!)5&Gifpeb\$M'n<(;Ie!̾~Ǒ\$P*޸CHְ-`IXKځMC<,h7	;&%!S0B5&XJ2:1s1q0JppHH23C7C6C8\nkB|\$j\nCEz 1@9Q@\$Bh\nb2hc<L<*|J(@ɸ\0x0-kZ04A^0\r?PCp̼8Z)UU\":I24t*C؈5cA7,B7Kp+>	JL.-*D@*r趌2Spq}dh:eID\$?S5E؈c7\$p\rí(8ˊ8ˌcE99|BdL&Z&cf9}ӎz,MN%y[;|\"C݄\$Ck%J#&i<0=hAS\0ԌD49Ax^;tÎAr3X^22(>7}%c4kιE/\"PɧɈÞ\";v;&71;wm]O%7FO=0uC(\r3#\"H8\r836SF9\r;#%*2dH<3I%ySWI[	93-2TlT6sk.RllZ:?ƥ:/vcH&:@P+V\"60PQAJ(nPC	I\r4>HBsDQa82H\rK/AJhxo{e\"!\rُ5Z\\Q(\rnKe6e\n:&֙60#ZBS\nA1.B%%LܟSJd=i4IA*-'H:^LI_c\0LI:`+`*2\rMH0|7eT\n(7Иrs8d1ȶ&Mi\n<)H!S%!CPV0MQ\\VPMY\re` L(R2rB4\\a*\0ZK%!67X͚ASd8`)תP	!UfCu5ЈiUȹ\rTqY7W\\hz0hU\r(ܹhg?%jJ@@BFNR?\$ .^[KY-EzF\"_*ds'\n?'Rhb1E.udymʢD\"N!&t­੷`*1!G`!}QhMQ\$)P`3hSK-0~IzB8E)ԯy\n0Rh\n\nXx{q";break;case"hu":$e="%k\rBs7SN2DC3MF6e7DjD!iMNlNFSK5!Je@n\r5Iz4B\0Pb2ar\n#FQis'jbRI;g:ڊlƣjl&虦7CIiMc*)-q֞kC2Q\rZt4Oh97eEyAc;`i;e:؟Pp2i3D&aҙeD67{ɭWăc>O]\rO@,j).3B:9)lr<C\$,2\np9\rPMc\\BFf	HHҘ8>P6-`=6F45\"jb6A(-K,0R.pHM%Ca2#BZ1\$6Pe^&5[D-6|uC\r<Ⱥ\rp\n#6\"j6x0vL&C<x%Uz!p4wdl@0iP=u't7cMP-C(2(@H5(\n	3*.:6ڹub\r0̙z趴3\"CB\r1mh3Eh3XYX360\r\0R*3@5\nLCYxa\0fv1wWnzv3:xﻅEhz-sA4=f@yh0xV:gm RbV3ֲ)c[-ݣҝvВ\r^۷;뻎ݷ}h6**!.Z[i9e*C7))85Ne7(ͩl/T*pIcpDs,bk.U-A\0se96jR{82C\\ /lN4RnrEFܲNt8iU{ۀ \n (42\"J&in'&@Jn)	ƽvKaBjy=;T0LV)%+FxKRimRH[1[fP#@[u-sAZ)	o9\noC\naH#0K#\"[6nPa`Z3G\r{\rՔn9C95F:_y92/  Kg\0Mi=Ȱ5 j'CߛT6f >HxS\n@Ӱ\rf8\n'*+3\$YgNZ\nY@1Y0eoD@@L\$hHE2ilFEdI,1YSHU8\ncRA&mQ6F%ƕIL:ĞKĿWAF7\0]Ya'Uŀ\\\r!@BICSt32J54W̞5BFrIR`!\rjRf+[oB+Af%VV|ӐEjL&H!4a@T,#,#@c\r(db~7-v#\"聏)-{Xɥ}Yj2D&V	<H\nK\rdv0Ĵ5DA9 \n+Bpz7ͧ2tF׼8ZsNܐkv(CZ\rWeCxkJ8Taupe";break;case"id":$e="%(i2MbItL9(g0#)a9D#)rc1M'I>na&ȀJs!H\0Na2)b2ar\n%D2ÄL7ADt&[\nDqegQBe\$i63yiR!s\r6Hqj<PSN|L'f1Ir\"ɼ 4N#q@p9NƓa%kIt4V-K7eLxn5b#q)53򍼈e_Kb)\0AuR`Q-\nmipCx.%&(Z90#r&pأi8\"64Mh!hHA!@P7c{,){\"3R+\r4Ex	К&Bc<h6 ȺHz'\n~-9'N9#x!E:|3\r(AЫ@i%2N42\rˢ32^p;S/b 3E#F\"87U6CSJӤ3<4#]|%`ꓠ{]!,9ƒc0XxΚab9\\#\n1JR*\"C(P9*:ԻlpԦ`N>@ jjCR#-0z\r8a^h\\bz&},HP̺J4zy`|r!iޑB|!Ø;Q5H8\r+xchѐy.Oyh⸾f9fISUv{;.j%%b|M8=&B&:RВhLVH̑\nB0j<|b55w-ϭ]WeJt \n\$-o4#b\"z&RyUO\n@&B~- :QCt5\\C`6ZCX5C\$A䛂0hsx70ArRd\"j{a kmuFgdݗ OesF|%&@L9:ں	\$PĔ`u\r\$r`^IObfML  =\08`ɺ-d<bb,I)66̡)8k9W*J\0T(t-RI 	iWNQIBrH9GaF(@	МN'L(zA1*=tqp:>䵐\"DBbjO{ǙM\"fJub_\"\r3%\\'I;7%W+Q@n`+a1Fc_27}9	FBE(BFNE'2&4&ĖM\nŌ9E&A@QOdX%)RCǬl<v4vJ<hZA5`(&`PrM2,{IM\\|BG#S46\"J\$h-`6֟T!5|'n᭕]I?U";break;case"it":$e="%(a9Lfit7S`i6DyA	:fL0č0qL'9t%F#L5@Js!I1Xf7e3M&FC1l7AECI7!li((\n:Q\$c9fq	\"1s0Co&5:bb14߆,&DiG3R>i3dx_!'iH@p҈&|C)yNȃ2bclD8&uLrs<Ix(l̙\nC9.NBD:7+P֦Bf9+R!c^7-`#\0DcR:\" @1*hq%R8^rXb4\"|79Kh90̢ND-Ѥ/(i@t&Ц)C h^-3.B?p9jB:踣\r3#x!MIR:?Pc'V#ınj~\"5[Qx8.+!r:4cB#WDJf(ކڎc*\$֓\\Ҿ:W&ƍ-@ɌÒK78@6DX7+b5b<6(*^]`FC.aU+d@\r;20ːk5l7\rt`=ip3ɊDȘH#B3ѐtM:J28^\";|#xDṇuʚDhE4C0zdy`FI2P̸ߡ+ʄR!c'kl;N׶{~vJ	#hXVvcTؔQd>\$3W,d))JWLb%#΍]!P9P\"U\"d{nJ<Qa#E20܈34KqƤ՚fā\0 uW@̔@\n	)%A8,sg\r\r(I]NHF7Ƒ8G44 ^`4?<C\"&J\\&5F>^F΋Mnicϖ>=1\rH;n0`Y) \"IsxJc\r&0с+Π(Qq\rvJdT)HFnkk\0007\"ëZ/P៨K\"@ReŘ)VS9)cvYc?U/`Q!<δq0h)s*B\niFd90IEaA3kE>ւ#qM<7xBLqC5PX>GHF0u\r-B)\"fǳXc?5Gِ6hHC(Eupl Ph8\$\0ȒWgϤpF	\"*LyXftT\$@өz/\\HGEE\0*~Bn>%5Q!K%0_7aFV^Tw)ʍz]GƲFS=l/@fK­	@9YHYσn=:mKQ&\$CYbCh\0";break;case"ja":$e="%:\$\nqҮ4(b*JqTl}!Mn4N I*ADq\$]HU)̄ )dt'*0N*\$1)AJ堡`(`1ƃQp9 b:W&K<^\n2&(z>\n\$g#)eu@xn胐 Qt\"ʊ\\q4\nqCi\"VηT:Shiz1~BAXMWe[WPqI9kG2YaA\"ʅK2zė:\0T9S3P41y_yA	A\$#L+DOHU1z_QiL	T+DR\$MAH\$:Q⹼kH\"6\$^ӑ+8A=YqD@D0S#X1ag.\"g3:A(ȤoAA-4T5! b(!8ss%]g1Gz')[S#E!zNGI\\Tbs4'1.R]dA\\CH*-6.h\"%J\$Xx0Br4B|r,@-(dw)\\8\"\\IT5z^C;%B8\ns`\nc␑iasmqxZKAʯm>K^͘cD9,g1*X*_cىy,CrRӄAUIpGD!%R\rT\\g9[.S\"mJ4*;/!\n,AJ	\\:Q/=RfM6dzomg|U1t%3hC)\\I+r# 4(\$\$\\Tƶ#~؍y-;wJhPr!]0\rC@:t=x3(n\rpKBNKTH 	&b>}IBL<BZ;~by,\$	KnԈaϼ!/H]؂\\>GS}?'/2`tq\\`EA\rl77@P 2lGA\$>dm@@Z4x,cH< 9<J	!+Rdb}8HVps\nT\$Np4Z9Y{1fj|IP\n\n (8X˙2ƈcadaIH P7ȁ5˂mv!43.S\$\\4 \$-bJ\n#GɤHf?r#/&[*oqV\0kLԴbCLA#\r'h.<JDD3q'(hA	5FGL#FvAC8(R)O!1Dh(J	se佗0堪&ȚT!\nm1xc+QD\\lf\0]Oe0Ԛ&CHՠ#B9E\0Fc=Խڟ]\$MR%@'0BW\\FJ\\y8zOA10ɛ؋f=WD\rcɡ3])\$GL(ʼgeA*-MX&gGJgDHbD<TTA.7zӝw袧B~9G=RƠ%\0CCm`\0+p\"x\$T!58=Az'Kqbx!^+epgԹ8\$嫑3RE̎B\0rd48,Odn(X|AzDղ4ܢMѯB*8TH~:V!h/&7^]\0-DErъ7!*Br	qY_4i7舝3\nxbY";break;case"ka":$e="%)RAt5BPt2'K¢:R>5-%A(:<PSsE,I5AdNi=	  2i?cXM\")v@\nFC1l7fT+U	]MJH^x894\${]&?M3s2Ԏuiz3`̞*Z%\"xܢoJitҵTA=D+I? y12EQ~\rux.ue}2T?rNSzhĬ	ZԸH:\0'i.o.ķIă[2Hָ3Ђ\0[W-o:\rp\$H<C'or.+(dɒ.׽\\3)VD+댙5\\vԶ#ֿ=rV%mBdO0+T/1IRʦNsڥjt.s<*Oc5F-[\"*(d jPQtOJ&O\$N9Z2jC\0BQLy9MSC<ŐsJ3YugF<t[I@ /po7bGAr@wܷQm\\2h9\0x0a::889C|703.!4A\0Ӄm\$Ⳑ\$Y]Of]p4\"2̲6vU3fMmkWnMzme\0sڻo8:W{ɼ\rZꩻ^iuaDM\\Ĩ\\J9_K\">p\ru7FT_5dM^3!5֢0*BWQZPJR2(D nF2AjojUu(Y2]'7@430z\r8a^\\08\rp^aDQ-GȌ΋bjը\$~ւ5htsZd3#*#t^i\"䥸r\\M<UA&E\\ʳOHf)#(ξ'_3}O?0ny?Ct?DaL\n&0YMoB=g\r\"3Ñ{+A	rQL!8g˔ZXv-4b\rq0T>qX\r:5ZD1%wrQ٦²9Ț\$]VehJB}JDU5F K&'U%9JMs;B0RLLv!4@[NBW(c;{[KY{ȩ%)8bhpΩ)rJ+4/S7	\"YO&DO4YZR\rЌ`tfdDZ'A2Ռb0w\":'Lh) RT19p\r|~U.%jb\nщNˉhdRm0eTU	ZȊҔMiM0YܖL}&BГ5hlnk%3&r| bɣ,UO|vQF&JٯhbxS\nTD]9APlP	Ɠf(HyiKDTf#^ͰVFy]	)MyQz[`Z#Ip`KDH7gJ\$լ\0H7W/LP)	u!*yL-P4N)Sui@:Hd|felD<e( KYI@<&6_u)>݃ʌ2ĠA\0ClB.o8\"1`zi/]FT֐*YjN_BG̞|~6np{u[\\Dj7Q)}Q. ɕe8^m*TRiSĞP/CM	j=K9.tSO2\r5rXR#	W#LfFw|T({\n\\nI&㛕1:lD[1{X\na&DؖDF&kmB<LBݳOW֭\" %bd&mrly\nEML/{'Ѥ";break;case"ko":$e="%b\nv%Ю\nq֓NU)ЈT2;db4V:\0BapbZ;aا;O)Cf4(s2Cs;jGjYJӑiRAU\"K`I7FS\rzsaV/|XTSɇZvHS^+v&kCi=#qA/iHXElKȤ;Fv(=v!ȉVWj)qss])Kq{fv!松i<Ro@Y.H (u3 P0H3kN.\$zKXvEJ7\rcp;9\rQd(vE*Q  u\$!̝ev\rr(:u@@y'(r6VLSHGA(h!HE@PH g@RdL\"dU@Y@V>1*^+E!@vdL?\nZNGYlBH*-5.h\$;R%MTj\r/rh9\0x0:Z00!^0]pcx3\r#=2׃BzV\"\r#1\r-vkU27cM.\$AWT,Ąu=ҊUJ*!N\nj4LP:K02)ncuRŖG1LM`P7<0:c9è\rxab9j08lî,aJW'mԐh}X9m2U\r@96m8@ l,64M0C3:xׅ+Qx{#47}/~+ސs5ͥй\"ܥP:Y26gk%bk-C9K2C?Sx]n- ;wpHmb/\$@oNaѨPi[9AycBjQ 	R6RD_MT'C\n!/`@HlkቅBG	C*s!\0sky6& k1X0 @b\r!61&D<)뒐@P#Q|\nN:z=D@A*tblsXhnQȖiB\$3@tq\"w&͙>\$xLL\\co0[!n\rSw\r18 0¶,3xF#BS'~ qflId8EC@\$!\0:RdBlF1#qfB}パd\nVZ͡pS\"9 a7P@\$\r7bÈu-t3#\01%cꔤ(:9XPd!	@:^T9&)BXH¥\nF:+Zv@L#FH`f>.+O2JǬ~[Dd1daZ*R=CA!@'(Ӆ{ӦrTZO =gn#7qanD]L3\n,\r`#:	\")Ԟ[0h4fXF,)m-ɵ2A\0U\n橂%w\$X\\5 d#tMoʕSD;.ltP\"%ЈCZ萇i!%t)hRRt1Mbk!ZTq#Dk0cTZ'-YYv\nC^qI*	SȪ)QRL*,(gD	YT6ɬ5\0`@.#; D>jG\$CkI8MHB%<";break;case"lt":$e="%(e8NǓY@W̦á@f0Mp(a5&	scb!iDS\n:Fe)zQ: #!j6 t7\rLU+	4Y2?M3te>\"K\$s5Ms:o9LtuY),#)gALEuy&C\\MQp7Cj|eVS{/^4L+R:I'S=fPkʼLnx\nO4DXi:zE?FĲC\n錎*[r;\09LC6Τ\n10)_\rz\n(1)Bt8@ݦL^Ť(騩C0xJ2+2<L\$IC.\0܁A b#*JbLގc\nK Ь\"bG%ʲq \03,\$	К&Bc,<h6 AЬeʦ\0Rh\r8\nh-5(0!^0cYcx31S_X舘9BLkUvV2ܑX˓53dܰ\nhЂ*B # P;P±H2=BH672#'E\\07 <w1n\03c&7wXYC>,bg\$\r`˅RF)V]8r(#(7£m58@ \nx9f4`\rhC@:t;+	@|Ƣ0^]ݰٖGZ@J\"IC:Yﻎ!:H=H9Dp;-noÿl(7r\r}f\$)Sܭ\rJy3*:c<¶1<ǪZSƈGw:֋an5r4̃pM%Nf2y8\\f@rT֛b5B\\=CHo2,oLuF]BH\n6BfA\0(&I[acn,PO a|hgQ^IHwwD`Ȳ8i*VeCY\rM4BYjτ<848xrI8>C;vI%\0tØe#ˣ_S\nA#\\\0BW\$B2x\rj;=Ôg*税ci¬\$bPeb'M&cu>ؘ:TdKz\r?qsM,1)Qm!*̅CkcyJF9D&/Рیt<)BXL:I6<%vi \naQM@CV9iE1vs=E.N!p4a\$Ba7ޚ\"/f1<\"rct/_	0ƌҤAB_I(5NbtӈkNO#*xNHi\0j4j(FEU\n\\\r!5M\"y&7jI9BFl{3]E\"@JmV.hD3	5C3(e#6ǀ/j\$d8:Dy/S>1/yD0hm,6\\|ǘ5w\\PШd(&fi,]YI:#wV\"+%=3\nRHu\\9&FpsB˙Hg@PK#mIRB#{(SB/Dz]1\rp\"|\0";break;case"lv":$e="%(e4SsLq:I :SHaa@m0fl:ZiBf3AĀJ2WYCf4(:T|i8AEh2q1M~\n\$g#)e\$:bq[8zLL4r4wa:LP\\@n0=))L\\逆X,Pm@n2e6Sm'2	i ǛfS0ƁM3{q[ܾH=q#\n2\rc7;0\0P֒c~\rx02M!Y^\\&7I£*±H(0Cx2\0 H\"H`7-BP'):dA(HRd4\\4P ȸpHA&'-HǠP1\roj?T%\n+lF\rYW&IK:382B@	ht)`P2hc=L3MFǡ&Ԡ^:\0x0aԎO\\C<x%5r!p4hbJ\"iH;τ+`1[ՕYq&vk2>4K:d#֥ #B4F!D2lT:@P:RB.(l29*H4(@P!yC!.CNb>9+:n	ν,.1R]7D7[qV[6f)~fѾ	x	'VI\r9v`ĞinogczZl˦ѤIxV\$ۈ暕z\"=pgqT0Cru,#P#&uUռ֌\0D49Ax^;u'َAs>3^2Y@f}{ddI&#ccHɔ}C%uo::OR]ϩbJBi]ab!ab9RPsW^[y= ]av纮BHm͇S%	:	;Bp1ʑH'A}vJBq\r%Dr814؂Q@KiBԚlܓ;}iT]n\r_6Mz[ \0;F'Vg!mgq;dP((`ל\$tP0.ػI`*H]<ϨbjHfpxB?h#-RR9c&]BP0!R R`_CHH\0N\rͦPgx\"< G!	\r1 6S63&ZNuD7/y1Q3FVZ%\n6|a9ִ݋uq%vHK\r\0@޴f8O\naRc+H%&o\$@0\0Z_gNI4֢t9P5B(x@՚֌%R[gT7<Q	hBH_©[[K	)	)dՄgF`PiVE>I04%\$(.,,,LYE%!06jg<):WCb2&eCYwe[قKdUd*@A^\"LE_3 ;Gx/J7p_IwwCmܖ)gHY]M	PrE+K0(RF/7/l߬mgu,:Okm'\"푕VB8[F5ۣ9cI!4q:*PKB%Re{&4\\}Au\n,\rI!\"}FS";break;case"ms":$e="%(u0	 3CM9*lpB\$ 6Mg3ImL&8i1a#\\@a2M@Js!FHs;MGS\$dX\nFC1l7AD 8Ls0A7Nl~\n\$g#->9`\\64Ԭ\r pa(bAS\\݌Z*fjSi*4\rfZe;fSsW,[\rfv\$d8NJpƹiɺa6Ӯ`&s=2#*L=<Cm(5x=c9#\"*^:A`P2\nX,Z'cbωzZ3TCh{fԔ4c\0<@LiG*\n5)!hH!- 5ޖIz@!jB\noj		Αb4ʚL4\$Bh\nb-3.ChZ2T'څ\n~.&l<x#4m!c0Ҳ.69N~1\r	_X2PܒJk\$70&+#CI*\nuňN%#'\rrδS0\r*2(UDMڄLcV!1Ӭ6^1\"w. !3v3)v<v6c3P=lTZJ&\"zͨc~82cH_ͳ0<}FB3:x海rXAx)#LAni\rMN#Qb'i<bHX,Sy;)ӘCT>\$C\0C!bC&2Vj8Ƶ\rzXEGc=+Zt=7	bm5\$|33@л#)>3Amj0Pc0ڻn\"dVǺ˶tHwX(JL0 -H% 2\\C~F9f;P\ryBA-'3y)8HhyGnAU.)媖ZØs-pC=cH	]F1 @R?tsx0CĂJjEŉN#&.).A0b^Lha٠Ϊ2CwfX\\mzCcK@ f]x\\sE0mT\0P	L*8#A%P`O:j|Y9PAU,#Nd#zD Gh\n!2rͺ6!*@srl'5s.W|n08L8ٞCqgQ3연hfL]1dCY38ػ#VIB#.PT*`Z;4p	YLș2u!1Le8u=|\$g	u(V,sT\\4l7ސ\n6Cek\rG(:&d*&.tIO^llR=ZfAYHr0C>Ipt ¤btV-?FwC(s";break;case"nl":$e="%(n6Sak3do0p(a<MSlde1tF'#yNb)̅%!MуqtBK%FC1l7ADs)u4̧)іDf4Xj\\2y8DEs->8 4_F[Q~\n\$g#))UYv?!hv,c4mF\$r47e5čʰ*wEI}Na#fuVlnSoгi@t\r2a1hl -湓6FG5!uYq|P+-c1\"̴7H:\$0:(2\r#NAJ9ڽ@;(چ\$OHFPD*01(#\"2J5 PׁA jB^M`\rh0NA-ʼQ/BZè\$	К&B Z6h5QP*IǶ(V¢`:I0S8|\0.=H2Օr5J)\r]@ӠFh9 ށ+J\"\"&ie@Bb80,b߽r\n:j{P2#8ȓc2)\\ћH\nXBQh8!Kx=xH()`ڸ\\mΘՅT7cx>V>G HCNYbi_Ɖo˴3G\"J*4#p֡hg\02erjS\0E t\$;*48^\"*^4Jg_~HLxh#jA3#H,ndQjqj1dJ۷;#V9pY7qu\06,fh@S14\r볦/Ӄ*\n༽:\\Hs\"~EgO/~hJ\nsi=HC&i뿒D&zYHjLP@\$D63ᠴ#AAE\$ćdHI@шwI5M\01f\\|R,IH<(5\$n\rtD[\\hiCT!s;РSTyE21^T[48N(Q#CRS\nA>A-h1݈rV\"tVKORspH҆dk{)_#\0fNo-9ۛ~ez1bdlt6ljxS\ncS4	=5Ez]! =rfۖR3UCrT 2S!\$0i\\@enR8JrM_hBDH5 KH^!g|CĈP&!RyC),S`P,C (!\n)ihK0̺PuH_Q8#@0-}4B3Tp#,a˫/:NkwQRFCι(\nP2dڌCu,<,!Β4^d PܢD\"\0 N֩RG[I3@x\$j䜶\0(L֘cz@p8B@c PlWO.=|>)b!\r-<(>>s藌\$Xvv`\n\nWJ^Fʢ]@";break;case"no":$e="%(u7I6NgHYp&p(a5&ө@tNHn&\\FSae92t2Y	'8C!X0cAn8G#<t<'\0,uCkQ\$cġsn,p&=&%GHi3&m'0te2b,e3,	hG#	*\n\"Z\rRs3\r,o&wÜg ahf\$A29:ta3\\TϾͳ3}u8h韡B>\n)%˂kW?Sq7p90̳00p;\rP6鼎	V\r8/`P<(\0<LYF*\n5 R4A l@/`43n6i0ȣ)m#2BCX2\r\nɤ782	ht)`Pۃ;2L8:G)@\"a\0x0a`:JX)<x#=!r43у-+KMR\"Ȳ(@ߨ5b޷<\"rENh蜒?{Bt++KنS:B838;((f!hИ.7*3\n@:bbB9c06]8:\rOScj|@an*[\nCXDɋ!C1׃KL\0ЙD4%cx聾.hʰ8^%;?4^ڴ/0db`8<hAn!3B@@8;ta8\r;NP}hZ iV/zjs]\$`)le߻8Ԙ83αP8Z	Z6r2EJ(X1@;1ru1HҲ	c1\"BN٠\r.v4uBtM	Q`L\n (ɩ\0NLY[: y8r^b\$eJޟbw3t3fYd	VRze A3％\r놀sEGC6 pF\\&g#vy!ц:C n#|BLk#\$:  כ;7R:-<#/'0Q3&\rBh>K>7L߆Dc\r\$5VgAp 2圛i~9a0ɗLyʔ:a*̓6A-GX]D'!L(ZFCqA*C\nU)J3WAHҘϑd0Au^EVf[:#<ӂ0RE*6֘Hsw;=y[N#D'p2Ԋ*@\0eզ*GKM-\$a]KK;TNym#PK%AK:jM',gy wP9hpA8,օM\n9`\0{(MY3`@Q\$WV%`Ǽ+ΔZ#B!¾[k\"\nrf+qe,P{-r\$2";break;case"pl":$e="%(g9MƓ(l4΢劂7!fSi̢Q4k9Ma ;\rmD\"BdJs!I\n0@i9#f(@\nFC1l7AEC :'Ik0geň\$y;¨\rfwS)3	1iz=M0Q\nkr!c:DCyêI#,d	CA2eӘFաњd	B7N^ qR yW~Xzqu&p7v\nBBR\rh01!	`?(.ǌ+NPĲ\r\$#.7`3?c4z2cS'D*hPJ2\"xr( #7 Tk`PH i, P=CT8K3\rk/\rԁB`R7\rɪnzЏC*@t&Ц)Pc,9PA(?@6̮`x0;L0Ĉkx!IS\"3\r1`9:Ʊ썎\rĘB9\rCC*VBC=P\"1Īj/줻bҗL#}:L6`,p:)6\r0̈2 C\$P<QcF	xȰ6:4!igi0#~O=>(hpH:.p8&LeWW['a~7FFc.ea:mg.~w(lv^c4ڋijR) \r6vOT\0D49Ax^;pt0]8zp4axD8ѫLصԽ\rIx<*/g[(vy>ɿ=Ix΋,Ό~lM;όGOWَ]nC\rȹނ%Ru#y9s\r=QRzfTj]L#DSX+yF Xuy@P\$=lN%k,^^aĴ8`-*&xxsFG2ԟ;q3fϹPr`](ף2ۍ'CX\$&mVD5=R<RQHl-8	SPe7ᄘDNѸrc\$bZzܖ`Hl9R/\"6qXoELU7'd\re\$6'Y\r\$A*zZ.\rLHVlNS\raFG\r\"zWc\$O@OCZ) Bn<-\r=fxFi\rk`ȵFII+%QZC4BQBHG	a=1dzr# By=b7Е?S^\"U>hZ\r,t&I'-.&]M3\$1>AE~C	a5A1H[d䈜BdߤU4;Npsc\nE#.0T\"3Ib#)Tad5\"hle6zg6é,\r&IـcR6HAI8tj%lH]HنnAhxv`+\rd\n	Ta\"&\n] K5P&q/zI˂CKpU\nIpNF>/LC\r\rđgq%mf{R%\ri=GKުYR0]-TH,Qch?Y:Rsء;='(4*cpDzU\"9ϫTxA!zgJVch1nJHkwkxi0q	̓\$!ƨ\"M	эV-d4;CA[4Tc\":@J!63BPu";break;case"pt":$e="%(Q5Ho9jӱ 2Ɠ	A\n3Lf)oihXj\n2H\$RI4* R4K',t2D\0d3\rFqTiC,i؎hQi6OFTe6\"PDqe0̴m,5=.ǋo;]2yg4&6ZiC	-MCNf;7bh<&1N^p|BRY7DV\n8if)b:[NL,hlI]bo7[2XOԸI2>\$P#8\"#kR߉-ޖB<\np7\r܌I8䔈ClZ-˂4r2Bo߉K\$v0x\nN`A(CʠRC̹A jBN1ЏCH/x:\07mX'~&&J0\n;.@	ht)`P2hc\rL0`G?ȴ+:\0x0!:M:\\E#|Ȇ\$#<2ؖ35,bR\"6[1;KiGit6Ȁ\"3JB\"āBRӘ2#M\$\r0:H727*1䍮R2#\nzb1:k\"38!cf9djڲ8@\"8ʆ79P:3\\u\"#&8fC9n0z\r8a^\\kq[J3^K{A6c28\$dȄ3q84dĒ[rs9,Ť][/cF˳;^۷#5+]#v<\\W,x]\riݏ;vc[C![?)H1Xjﶏ@jX18\"9jyf\\7y͙\$ ŘcHl]'fq	:b`\"Ol\0 u2& PPAI)<2YȨl1hՖݲ?Q5sCp;#҉z\r;cYɽ\$FLʜcRq<*C{ϝsCnsEРWz	 BC\0b\"pFZj,P)#xUfr:RO|QU,Bl^њ}2prZN9}7ӅYUm@,p\$\$`ܔ90ZbN^Zu\$d'\0OHpRLT( 2䵰#@* &@\\zdf~_4WaЙsjmXtQ<\"Oeн%CNQ	F!6^0T)hF\"LCp܊Nd?\"SHy17qI>j>jACaE]t6Xc.)PoQ|G?#0Q(jVjPh8#M˥+RQ*MOr9eal#(}K+6@xʞUf9K(yq󥉆JX#մb:JB`o/ChtB)0	&&7;A,ף^.rhJ4EԂW~u[\$yWTXQ Re{#AhKNÃX";break;case"pt-br":$e="%(Q5Ho9jӱ 2Ɠ	A\nN\\\n*MqmaOl( 9Hm4\r3x\\4Js!I3@nB3'h5\rAscIEGSbr4EcyUz0Dqe0̢\n<miiQb4(&!Nod?S4L<ي-L,ݒq`S 쪧(o:\r>yxs-s8kjFI{Ct6}c3ܡ\rê:8lܛɭ@ҏ;cp͸K7`P85x7#980+a..\"&\rXb2 z)<m\$ @1*(r2R^sb\n:+=Fh'\0ؾP9-Ct~(#( pk#;`0B@	ht)`P2hc\rD08DZ8@6@*8|ǎdX|<x\$l!`6\r-m͂1?Or8P擠ڟ\"ͣKh΂s\"Kll,A\r	Ncx35CrHnpzP7`81:9ѣ\riK\nR3k[)h&F2mjN*;q:3[K#&leʵ#գǌD49Ax^;sY\r!zo?(O^۝{Y\$pZ̄3meCNuȪȎca)*|2՘ízl6;Zڟv7n9[lˎ(:o:%ғW#\\YH^\$C2\0ZÎNԵi44#J..#Y#9Lk=L.9\rLNkQDRVZL#\$IBz\nHU9E#FСB|EQ\nY>Á5'uZJ6;C,Jlfphġ@{˛0}<uzq'@hc\r\n4v %щ@`C\naH#FH(b&2Հl_H\$v&P(fɓdM9jF`=[AS0\0Q%#ᭈHy;Ęla1Ъ`ڋlh1w\"s<( -D*&@bzD-%WPœSdT3U˸w5p@Lq1H@!%H=x4ǆU'ȓN\r#6L:I=5za>ҳe\$AtL9~noE-G0j	8CBAҝ oQxThrNbiPh8[gj|N:JC5Qj9Ф	=EM':4D0\"ID(I\r@&ʚT<9W*ePtV48L5;ց!*\r6\nMbRpLRb郓B<6+Ń:\nh;vIx\".	Y~Aov=,Zk҆860";break;case"ro":$e="%(uM0r1DcK!2i2a	!;HE4v?!\ra2M'1\0@%9dtˤ!eұ`(`1ƃQp9\r0ӑ@dC&It7AE3ed&3IrE#Q&(r2NrjEDj9M 4ݤ'LqL&V< 1my1&A.Ś2ȦCMeyS\"Dbg3BiMASM7,kYF\\S>t4N;g竔sgA@1B:޲IйlKp9<P6 P\"5xפ#Ak::-kj\n6.H99`30cpʻ9\rs1 @7k˲¼/@PQhpHA!tNB,D80Ƽ+);#p	@t&Ц)C \rh\\-5H.t	꣄ B95\rz9C|bXxIXbxJvͥ/CL\n9h8B\"ލ@Qچґ,R\r286\rP(\06HSI3-WHIN\$<nP13&,\nH2ejLҜRэBh@XiVm)B%ʴ)@410z\r8a^\\gR3^2@}7}\r5hX\nmz\$4Ҡ8^~kj;A:0:+ţV&Pc/rwQ֨2Fնmۆkc]<)/\\	7E\r|&cZMI㔣)ڍF.l2C@A(䜸4\$ZHߤ	ΩيKZAQ&:V`&t<.By~Cf</rf!oA 43XiK-ajǤyO:^:-2xJA3aٮppj-H@pHI\rbt4<xFb(ןiHL\$ψc\rȾ`IVg!0#5,7Zp \nA>ɜV]d\\2jBA9GTcP(iԄ+Qʓ.5B^ axtx\nA\r\\C#hȅS#fl;(5T8ʓ\$&Beɠ!\"TbR,FYZ,bX,0FK\$D\"RYkdמ6N%jL(-!  P(h4 3MBNIQ2!uL@\"d'4 u3<#Zr@\riQ)V5!BC&6`Gj@	s2HA!\rNU?+!ӕ^\$p\niaA(YIؑKVM[a%dZfR\nP#pgH^CD2*L-M~PdOr2Uq=j~kmn*A3E\niF*{\nƬ7Xa?2αII.86>@0]]8!vJUd\$[Afn5Bo) =_bHUqi`2DYkrR3DfҒ%CjkwU;nXVqP	.";break;case"ru":$e="%)h-D\rAhX4mEFxAf@C#mE#i{a2fAZH^GWqh.ahhh)-IhyL%0q )̅9h(HRDLD)Cf4Ըh/	4&Y9ڡLQcQ\$c9L'3-hKclqu0hʮsizxr#^3KB!A%X֡PTB/G\n>#=Ii\\\"\"\$=i9*JQI`=I3(@n:4<){)h4@F:PD0\r\",fƨIo#4cA%!1c)x%\$*J)G1ۧF딿Ɓ^\00Ŀ̂8@+hڢ->Jy\$10P,#&4\n˴KarΗ1=>˯1\0)cKZ#25lV5|@V\r{W㊃A jӋc%̑T3\$ugTVpTm~c=Qː\$*;(1NhѠt`Pyh+e\\-:.qT,!+\n9io&Ld|zK{gʹ\"-:ߨdqJrjZԬ3k+*хkKdݢKwW6}&KCȠě=t&i:C`9NoT\"Dxb>\rFORc*ښE4wT;H\\S!:Cۑhc\nhNZfB|\">7{-::BH_\\dXoeǺ\n|%hg3=/Ⱦw|.kxcAT\nK&O5gV[9RLP{y5VCZ>:H4^Y8-2y@CHn6L	q4G\")u2@\rf4@:;P\\b|Q`7 (n7LDti끉i\\G~R<~INLW'u]r.֌Pf#KKvT x%;ÌѠ2ƨr<E~2 C@(OsSYmSD̈EUR`-\0UNtRJFNWQ}5	hYqT/'z/\"#2^g'Ȁ`Ll|EϾIde!F}v|y-!'b.[!2g(CL4Fl@eOtAF,M:#PYAI950үMrl[\$]Oʭ6<Ǜ/`k&~0E};3OJGL򚪍f^)0Z4m*]*,\$9fgJ%YNH\$]&bU_qLRS\nAγ~j`Nʥ2TEJe*di06FR1KA@f͒\\:^Ҟ28ބL#P!?\\5QUsF5AnT\n.R!v#Gmr\0'L*NuH/)*W4(:HjzDU.@'0.m7T')V\0?1\"'	g:il\$Y:u-^B1?3GQX*z\\;sNҷm\\l]*)tBL(˚pI-} #@ppVUPѢB~^:ܷ!IBS# ò2HR *hjFQU0cW~74cuQ-D*:!.p]M6&KI譢Rdf[bhlX\ru\\lhY !0\nƀ.IT\nȹgN[wO=w] \$yE<Y,8Cɛ*KBҨK.\r=E=y/IӕZ2I '/'R[uMa\rJk){\"J+>%G=ף1{	@\0蒒g2=WdvD6UD5%U︯ BppFDݒ\"8n|6۫i-⳧2Gm@vS^C\$F]`\"\"{m9^d,yb&&*[zhCrO[K\nc\"<tM!Fepxv";break;case"sk":$e="%(](!@n2\rC	l7&P\rl25q\$\"r:\rFQ\0B0y%990cAn8U\rZv0&㙭'(a7&(n1!%iAD9ϡf?BKe|i3fRSzi0\"	75d%Stiы&KuqmNemB~Q%b	a6ORj5#'MnqoI{<q\"7)RPcC(p7G)B,CXԦcCh½7\"T6<m1#Ȝ2M4@1 @P7\"̴-I\$1\"@ؔpL,\n#\r#I	2\$\rpJ2:213,1<,ƍS\\c\r	RNqB=5C(5*r77\"bMBBԎQ	ht)`P\rp9VC(\0:!\0x0Csg\"|H73@:VaEr\$\"Ӫ,]P@&X3܎ay0QFT\"WèADk\nC*?\rt5#j!4IEC(6P\r0\nH'f`P2J܊ɢv#(^r,J(X-Ң<ARt6C9~:yZ3*Y\nj(ήk*,\ren:%z>٥Jz/[ՅCCnx22ʢN ɢ\"r\r f:8@0z\r8a^H\\Ð\\z4ہxDJC2#-#I^Vd96hPs0nBJta|Bt\r\$cLHh#! 7m_;|x!<Dxrz!9Zs\rid	\$\rI5HA(<և\0H%jE'\n2	bI& 8C_y94m'~4@@ñ+-4Iho4(!4ơBujJ8˔5xNpf@#>^́3\nI	I0Vh i\"E\r~mɀgo1䆊FpTx`Zb[0B+k\$R0Q\$3\$陿@@uY3\$в@#}\0du\rd04f縔2Zid1\0K\rՄI	1(%PP@	tS|Y-h&`A,ڿZ\n7\rfG\"LZPJ D;-X;G5t%ȐTY\rΡ\"66Io@'0/dTQ^=Q6Q QR--θ\r\rJ4#\nŮ5\0BaGa9/)#hp0 P(0LOh،bjG_/=/F̥:K`K1Cil]X6y9k`Kvl<FL01BԈlhH4rΝb4ϋb,=C#|RLXfFNMxeKpzI0-崳ɘ2V@M>ʕ	CcM	O/ԖBB)(/\"(EWFr@uJ+IJFˮ*6ǱdwU06_UȚ]]ZDif<ՆʬQY%1u@'%\0PCQϕ&qSJft;3f1A @\n	db#~CŐ/'E	Q<`wqGc⑵	M:cm.";break;case"sl":$e="%(eM#)@n0\rUi'Cyk2QF\"	1k7Αv?5B25fA2dB\0Pb2ar\n*!fPsSYPaDqa9Ύr\"tDgNfoBAoB&sL@Vdk1:0v9L&9du2hyr4\rS9 դh4Ε܈h9\\,xAcFQ =ptgtfYyS=bX,ģ)^+Nĳ\npǎ`9H[:񌣲\"\rpl4(#Ȑ(7	SHC£5\"\r(0;6(PJ2H:1{2y\rH!1<S\\b	B̵#Ԧ5#`,Z/Bd8F\" '/45B@	ht)`P\rpA<-C{GM:A\0x0a:ظ0!^07Nl@#-UV	\\`P之@u^Xc29,Ezbu8c-+L, 6+S+7Qt5ͅL2\\9אʊBP2D\n{l6˅gc06)g\0/HW :@Q\$^٥t(D*6P3~3X1+4]4(C@:t㾴;Y4!c8^##p^2 =oV)S+Jإ\"c\rǎ|Q`D&8/ǖbυ[biηc9l[%gZFN#hãpI8X:f9a'mP\nV=%k:1,]{@Є#.6c\$mRr	c+>80@]\"E^\"x[2I8冏\nd-d\\4\$Fɂ4y\$\0@\n	)!a`ws\rH#3J7G	m7FoI&dDtl_D۟6&:&92\"Ò< 1Uڒ=!e0HH4I;@{S\nA̅&(N!KXA\rgD:HIA,Yf	\r0TIK1AՠB3\$5DHy5eD\$Pǈ\$08S|L2\r!,{// zHa-%fx	XP	L*9CQ`I*`R4\"\$`I	XHA=Zl+[,8dH*W\0S\n!0+3vKI+Rx!	C8\\&6F5\$Qn(2Et`'8NOaHT֖H髵4嫘!FiiJɢmH\"ລʅ&:􊖣2DאlaKS0mZHRe0-#ga4EjU8Tk\nEi(McE\$ &đ;W:GfDBiףvm~9cj\nFmXR4YH#ĜxO0APLn8 #jTho@Tb.Ѡn%y\0F!͂G)\n}\rM\r).;~MZ7oy\0Dl	!.:J]3\\Zhal\0=L:Ő";break;case"sr":$e="%)h.i4	|Ez\\4S֊\rh/PHPnv0G h\r\n)EȄ:%9>/M}H`(`1ƃQp9C\nD?!G: 'a%e|Dqe0̢\nm=c/\"mF:D\"Uj8k:]\nHƖHr9a (h_(әHY7D	Fn7#Il2̧1: :4c41?\n+ʆ4I(k+<F\$70)pE0k/쒎x)H3Σ˩ChH2xKʾ\$1*[;\09Cx䭔r!k)pғ'8R#h82lIk~\"BQH<ҭ>i{W\r2H;\"\"BHiKN}4Bh2&X j\\uXb1)@JSZ'0b\"\"u9OO\n ĝh\$5lH#vj>H)OLr\$	К&B \\6p<Ⱥsl#WQ*h9\0x0>:0<x%>!p4hˊ#dpAoLKݖxc7cN:9dj|\$^F	8XE|S;2\"WF&'Q\rj\r!\006G,/+.4P{6@:烨1c:\07?0QSl|:@U1mIpJ͘q#'47K|ǟ#\$/[>3:xmp^2c}AI 9#(v(koVP*QtJѱ<B4!;\$Ci3< 3yO1=.za3vX/L\$\$~kԑ`!50C[o7B')ZM_0H˾ ȉ<}2A!@ϻF '^!Gq)2Ёa <]E\r!64q:_;`ң)FI/\$Y\0\$K\\߂\0PVI蜵\$Jp%p;HzAK)q>'s\"^#Xwld44%\nc5o>?9@C18 rц0r^pRDI \\DUfFĸ\0XBn\"bJY!&McuJN8#T_LcDrC)=<:DF\$aBG*|@ekL\0P93:\nmvM@C4R@J(60TҩG.4**22R_+8]&^ۑ6R,Y4&lZ5b3,_b02C\\EхLPzM2\0@L}gb\nH4!3\09L\$_IɼJ% A6iue:]~.V,)74|OxrQRK^d:䤣5x\\loإҫ,V,#uJ\r'Ag0h(\nP#p̝SGIYgUQiE\\3|<XEpzxdʋW!㳯\$dB)9]{Kaiq_GCAbLMiRrZXeZBn?	HTAΩ\$\$bL%*//*x@BT@S5̐QU3~@Od.[FB2vV U[^GE+f뚶'Zl~cȱ";break;case"sv":$e="%(e:5)@i7	 6ELp&)\\\n\$0s8t!CtrZo9I\rb%9iC7,X\nFC1l7ADqzn\na!CzkDqe0t\n<pō9=N7'L	n%#)HrL×3|+f-5/2p9N\\C*ĝ!7K\\ 2Qч9g6fs+ϦuCS7OenTޝ0֭	ZBѴ\0+\"&h	R7'3((,h7\$J 6D0	0*.1(\$M<P5A b)S:\rj[3<:=.!8䯎qpδ@bz6Hp	К&B3hZSQI69\n\\(\0:\0x0:܊R3\\<x\$}\"!rD3ң-;OJ!VnƢ`3R<C[-3р>5\re.44b/L*&\r)!\"D#܁Ce-`3b +4m,3nc`1mzX7KK5j/à\\߸R4V	aTW~#}썸Mbxr::a(ȓF^+e1\r2c6!^Y::U{r84.0z\r9Ax^;r+	xRMJA5]AzcKrd[驫~.:\\7%\\n~kñ죦ϴ{ny#續\$\"\$\06-7`R\$x8+(E:چ%W*Na̳8\\8<w)C(WPH+aE4f\\nh)9&t<%b!Ha1G \0lX9-!J\0S9jGμzKܓ\n3xM1Ɉxڜ D2I C&	fq\$A'`3H-!\rLT8蜒Dtb#&!0o.0YIz)6e 	I+>leHLɩPd\$5YzA@.PjV'VȜ\0g2_K\0{p-G[Lbzg(8b6BO\naQ?dOP4\0&	Q4J!,[K\"Iw\rd*Se3f#dt	8hQ	@nF\nAhׂ;\$3	KåB-Fڒ&w\$eFq:HD9u)R4mц%nAU\r5ᦜ*vrI8CZ\$_Lf!(F94w!]>1Jh9\r *I(!8DU.M,F#/[	!(eb[XR⃦sNy\$B妬peHMFJO*\r4qWtyɘ`~EcN*hh`0#|qM8L)CNi(3pԡE2\\3^Y±@a-PC|f#unu\0bl-ƙ";break;case"ta":$e="%)J::u>8@#\"\0p6&ALQ\\!_ FKh3Xҽ.B!Pt9_`\$RTmq?5MN%urι@WDS\n4;(pP0cAn8UUɼ_ArªZ.(qg+S\\+5~\n\$g#)eGKN@r|,F,u]FdXGiSTrP+_5ȕʙa^i6OCq)Jj^E.Q@+W@J,W(I{\$#x\r\rx@8CH4(2a\0\$ :74#1EH%!p#%9nҗ@P#x;j\"r\\K<<2Jj2t81Pd2Nx)CH3(Q*ڒŢ2(7L(\npp@2C9@(T=o  첞4좨2PH\n.1Am\"JϒAtrBdA(ԵuscvS8X3Aj̠u\"rʺQ(ȗ)ׂ%9VU`DPH g*LJЙ9s(8x92Ui߉L)gZsj	ЎN&j9Ur.б_RjJu:@P\$Bh\nb2x6\",թx4@h9\0x0h:<0u<x)!p4mAA7*@Go%Qw2m29<Ktso=_/'w~+b[̽U3Z^n)MoS9{f[ofOGrJ87/CgCx3\r9hcIBDj3CθSAP7` :0ƌfΠ,FA\\^ATp\n)´^\nI5m0YD6\nё!XjKIH\nM#z HX\"n4E@܃\n 6 p`q+*0(nģwS>x:E' ? ܮ'b!D5Zy2 2D+A[LJaRiG`t4@(b3F#tpORGh#u\$&X-|:Hw\$Qo]ͶnKq\nŉ4VF]\$_+R[PoN3*R/zSPh71W,NÓ]3K2	`s0n>:FT(\rep4{hВ1<Ϣ\n\n (dt(3Äz!ٰ\rڛE	\0\nq,Pؤ2(EHS\$Nâ1GlJC2HJK:=PW?p̽_CE	Ќcs2t)ugC.\\%c\r\rFpAE)YazF%ǌOگP{>bWI#W'ׁ^{iҥB+;&Ȝ1[TT5҅5ܣ@#5|,:\\JcE_FxH\\h-Ҽ,\\,g@Ԛm&\"f/L7V;(A a\0Yg\rӍhC0n!QةeSzW^/7i4xYDz(`?JW_AG-;vC\$ ,f.UUfT6)So1si[]Z1-SLQ^\0S\n!084F\n5.Óxֳ(n:&;utE뼫T\r*oi\n/eºY7;I=['z:.j\nJ8\rsrRH>cjdj>\0Zwm'ע;62,q!ݚɩ֊=WHc\roŽ\n1pm4h#:J@F`T9طYHj6xUɻlUL\${2kzdi9&l]})O^N[S_GД(l=΃\"6Gn+,FcHÚ*=V;-tM^KIF|wVe\rӼį̄I7'/*};un2<5h[fo#ab~=7bx0RJeM2WkL}},Y\"\\.MНYO(2dhr]0!~|w}+2S:G,?dS<m_=OF/\$9Fi6f|zkD	]\0J";break;case"th":$e="%OZAS0U/Z\$CDAUPȴqp*\n*\nW	lM1\"T!R4\\K3umpPUq\\-c8UR\n%bh9\\EY*uq2[S\ny8\\E1BH#'\0Pb2as=G\nASZg\\Zsf{2q4\rvuTq,..+h(n1s6t9K'vK֗!AvyOS.lUشt.}pTkp+nC퓴>>Bi\"X *~-h+#\0,@4#7\r\09\r#689R: :8à4ƃ1FK=\n[;I쎷+c:lִp,,C셗\$450=9s?B.jQ@o뚑B`P#pΞϓ.(cOs̅B57NK6Mӳ,ҏ+JĐ3ooZ3=z&Yϰ`gc2sUsP,ώ7x#!X<`TP^wbӭJpY'i_'S,6icC\rʴ\\\\eh;A5egA'mi.X\nzC\n\n3P\$Bh\nb50.`ZrS.*M\r:º:TõTC|l[ 703.8㧂\$!\rIP\rC_ 29;Ñ3F+m\$L+A\rLDu5\"˖vO@\r*obKiW;C@P:PB.\"3e20Ae\r01<cX7#n<.:cf9è\rx΢C,F\\]6@s'%̹B>u~	C	7Rx\"Fŵ\0A47*iFp0=A:@/&޺TP#xGnf+ }\\htg!#y'	OX&暗CYCVZb%A>a2dsI1C4#䊎 sv@NdX,G1.&hAtS]9g0x\"l\$6`bt\\#޻Q!:iA''+c&A\0SCbo\0;4P9KC4?`rk7a\0Xw3Ha\rl \nO>2 sNA	⚂I(`!\0P	@\ncIXg4\"\"E;QIپ\rڅCQ2M7CYѪ)Eh tF\0\"Bw&=;urP	|ٞDTfꡘ08&*G8@!=r]0D`Zb3*{) IiRxDlzƺl QHu!˔RP&tFRJ,Z\r*q\\Gb8wzBC|@Tp048A:6m1B8WteY&}%K6 Q4ExQnu+l萨j+Ǧ	eܝRxv^*Enٲ\"mJѺDlZ DV=Oޅosd(@ޜJ.*RֻCL.\nI\\lcFltИ]F<£n!6NJBFs#N_K'ܜq\"vUɗSY6lU3dORͼ\nia+ r/k͂800-2^5O ^nP=OKTxq\0hGԧN~ʭۛOR~C0y'%)C][\0B8]!L\r;RtJ#vK;Na	hgNܝ\0mT\$ |/'2-Uֵ%qN)W^J3#	An.l2{9D`W\\7[\\GvAOR\r+`Q\0";break;case"tr":$e="%(o9L\";\rln2NFai<BS`z4hP\"2B!Bu:`Ehr2r	LcAb'\0(`1ƃQp9Φal1N5+b(Bi=Dqe0̳U18t5hZM,4&`(a1\rɮ}d=Iⶓ^a<~xB3|2u2\"SXS8|Ii1gQ̑̚\r;Mno+\$#ӆҙAE>yFqH7ҵ\\Y;H3B7\"1*ʶ	b\nB8҉^@:&[PA(Ȗ5F˚TDԖ#pHHA R[MN1Cl\$i(0B`ҋ:XPbt\"悌pc<POa\0:mXx0aIB |PHH:,7v\r#fa4\r]IWգ(:\$sľqYb̺&4:!\0?\"\"3R\nܢH`čh2\ra2&h9\nc:\rw,=p5\00J]F\rZ\"77ks80	r!tg(</\\\ro SuB~\0C;&9P #\"։E0z)7Jh=7\\CֲcrKP\0лD49Ax^;듖lAr438^#}祌;,xnTK@˅%8xb:8Acd64hV效A3˻|7p@Ӎ%W\r-X.\nE.꺾#{7lsVIHwr+r9Tg`Ic#vq\rBv{(\r:LS\\)s\rf#C7U&ECp*p܉ \rVHH\n6HX8 䜔(eՔt;+UI(A/1EIB`˚n}7b\\T@\"\\Unh\$6XE'#P4\"TWU(p(7r4øhAkvKtBR99P!0hj0:`F7D8G\"PyX/WνH.e~\0Lqn5S(lD9RE8l\r)@p	I\"I摂a2UA}tU^K1@Y\rP	L*&[DZAJAc9UanA<Dn9uG0Tr//'8}D)Q'x(GyMфCj!\"Sqbjh7|騨xj!&MH\nN*=(c\rޤu\rmW\r*DPh8E!2\\icόiUOKrhđ0覣بccXٙГA g#UEt1Ճe%>V#1V\nu5O\n\"ũFYx70\rXS%RsB~\"%BD^6fD|G7\rΡ7Ʞ.e,,p";break;case"uk":$e="%)h-ZƂh. h-mhĆ& h#˘.(.<h#v_Ps94R\\h%p	NmcL4PҒ\0(`1ƃQp9(;Au\r*u`Cd-|EX~\n\$g#)exZ9 G\"HESXj8R9ֽ|_b#rk:-HB!PńRDiyA	ǖx]5KOcJvf[5{ftk,TIjh0'\rz~8ȋ\$\ry*.#΋4nNƃ4ê*0(r}48죎'plA\rDn<@#)یF^ƭs	X ?V	/僬J+L14ܰR	:Om\"*2;] ɣ *s\r<\$p M9O%r\rENUR\n2PH gZ3\0D0E({Z1bZ얨1Bܤ./KMIdh>':.h3m.#(1&haѠRuPh&\\-7\0qȓmb#aJ­~G+L&x!]bדxB+\nܚ+h\\*Vb֪&k`Dk_fB,[7L=4hJ|L&k˨&Xd!ֽP:W0H|s*8/4:=dZURhz\"lB	1BI#c|AG(QnӼ::Mo>*vq	?qϋ#AI/)w3ARkFϼԿY\r}G8*v\\tw}I-;0^?-^j{>lϵ,\n({nP>nO\nhgHڹT} GM,%\$SVj>CHn1'c\$OYAs@x/0xe\r2Ci1\$ɡL,Sr#ֽhp\0dVSL\"g&̖,zNQyy{4ً&S+	&\"D\"%DȜRA*x(xh9(	!IH4J}d?\$	Qtg\\RNʄ8&e<P)L#83¼c[Fd>)(t*\r\r͇drl2,H^Q`\r&ĥ(,㔙Bh-@\rf\n (B+E\$S3~H҆#M	%d;TA*'@m͘NPQ\nҍʜHi8 tChrtej)G29jFy`\"PӘ?\n(qp\":\r&IaL)d)[!Um)ήu-}F=.5E\\GKz;'*!`Hޤic:У>idW頏D<RP!IHq(+dƯ[fܪo_V!\\M!N_'@'03zkyk蠱IkeJOO*-1;6m=I5FIqɈdt熽[eH&47vQ	\nI@PB5^ɧ'\$R7ɠ_)DQM1FgF ZCjNWI۟H5Fz\r\"	5Τ3֏HDi63tVnR9 8%\rVب27)?V3@j<5 mcxd93H\ntG \nP#pK]gvplbOhWNz6bomě&-i7V娲#Y@q5#ૐӳhRVTp |w)'rETT#MqVTڌ:^=^1gR81!%?!Xѳ5`B3~jlվװp'i\\\\9Q!lPv;jοwK\\qd-zmCA9m[MYhu|7uZK{<<!䑷Sٺ:蔒s1+v";break;case"uz":$e="%(a<\rƑk6LBNl6Lp(a51`u<'Ai6&%4MF`B\"u2Kc'80cAn8!\"n:far Io7X&9 5瑃Hq9L'3(}Aap-rLfqJ֘lX*MF\n%mRp(+7NY>|B:\rY.3\r4Asҙuzah@ti8[-:KZaO7;|kul7*'֊+ɜӉh@<6`5h꜎M\$\n\r(#5/[N\"\r<Z,`6h7PJH@褔I6PH g,-pҍ@R*ڌJPkZ!* 7PM-TaК&B ]3G\"=	:--=0\n|)i2T[!^0όSB{O+Pc=+=]X#l@\"Ժ3\rOVu5i:\$[|/:):(:s3C\nHSj5*-C\r)p̈#r亃(;b@T4ۭh>N8(3&:9.%!cRTιN6\0ۑdn9exAff=QUeY.L!.2'v%k2՚&TA˦⹩4##]PCC8a^h\\m8\\،|V4xDC[܅u䈢x3#Ed4O67&	{95}ل[_wH@*yt{&09}4c/OƎ~й\\,7r!\\EQJdcq.ػ7HEc<;\0L&D1bȬf\$P!r`Q^1Edĭ\r<D'Y@		kU%&MtP24` \n (+YK-P`I\ri\rܑl\r,\r#II+\"H&GPt\"Ų2#G䗙\"hpl9iƆE\r.F\$'Uc!\r7H/ )aL)hLP;\nd|qxXKI#%p|o|u\0Ied@vI\$Yc|܈rn58*Rze|4IhI6[a8-.+xa@'0\$B-/HF}׀MYhr\\4H,!Ty>2dvj'\naD&Rn\0F\n4تZCf3IpD].dt\"BDpTTcn~ڍT&U&Rz'ĘRjGk\"\"RQFdzNo6Y>0-<2)'%\nVklqUÚ친4;*f\$dSDI.FHՎB^c>eS'ab<qftηWNფľ3r+%`\0R\$Svb\0Ms\0\rQu6ԳEKF9Y,lRzX\$ɊB)!I\$e	E.C:e_2S{F>\0";break;case"vi":$e="%(ha\rq]Ҍ]c\rTnAjhc,\"	b5H؉q	Nd)	R!/5!PäA&n&0cAn810Lthb*L QCH1b	,Q^cM3s2Nr=v8]&-.c\rF 1XE)C	nz477JqmU`-M@daH9[׵\rH!y i=Yd\$IXWxmmtWjYoqwD:<6\nc4`P7e'@@#hߢ,*X7@9Cx䐈CJ<(Z8BW	J NsZ:\n\n(T! ŵ|]Cb#cj LtnH7F-t:@MP`PH g:V@[_CA-K hReٗEz6<@RcMR		JH2CCCŋpN	К&Bcl<h6 Tv\r;̝h9:JD1 <x\$6u!p4nA0I4c606DLu|]ݐ2@97+dA.S\n:V\"K0PY0hu@] PABޯ[,3(29C.O0)MZ\n.:&躃.u3\rN7QRUZj2]Hs026Hh\0r/c@3_v\\# D{ǅ\r#\$FY3:xхD0ߡxr#7}ݒv\\\0PSFhA\0@ZQ~:l;%(1\nRG]Hc/HA&G/|?cK}H&\r\\BIIw1Efk+,5ۈ4P	a0!1%i\r r\r2̚1`\$\r.BC9^\$a\r,Ӕ2ok\$	@b	-Td\$HH@\$N6,rJ׉y\r%9*#0CcpAj&	z!0ސ\"T;𰞵i\\ۢ3#IsrO)CuHtLC,3KKaYl2DW&) &ibIM%RfA]UV]!D\$XI97c.i)s\$l\"tƟ\"be	om TJcR,Hh5)\$!\$foH\0007&R#Kւ\0003\"T\0\\[%^GLyv@'0՚]bmpO\0KbjܖI7E,iOj|52^M و0iȣ4tcB0TCl\$*%dזI7^G˟rNl1MXV\0\\'\$4C<JZ3ECdpDגL&41RTXJ68tbCg\"A`HqNK?P7PQ\\p}Dh)6i\$m:hbBg9-)/\"܌&	laH3, \$u\nY\0v,aj`@9ALAOZ,h\"{&E[	'ޙ~DJή";break;case"zh":$e="%:\$\nr.r/dȻ[8 S8rNT*Ю\\9HHZ1!SVJ@%9Ql]m	FU*qQ;Cf4)ΔT9w:vO\"%CBrixM3s2bV}\n%[L`*9>S؜%yP⣎uYоHQ)\":VdjdK:tRd(t/0Vc5_hIG*\\?M[h9ͣQpCqH\nt+ծB_cS>R\$2Cϒ')2T*´[1P*2sD6rë`re5pKRxLa SA b8sTHAv]\"h^9{sH]AE!zNGI\0ڑeJGD0\$	К&Bc<p6 4g4ml^9h9\0x0:49C|RȆ703ӣ-QU/A\0O+ʴKB%{aD')bJTfӔ>sKaZKaLO\\h̡g)[19A3	}IC`9,k)L]~rD3^N(\$QCA<FCɸt9zZZc*8\$:BM-Y^[C\$HI)OG. אXS3# ]BA\0A\"ZvVR\0кD49Ax^;pãi\\7C8^2xX#X|7ea|AXIBZ\$D5|\"\$;kiy\\F;\n+'/3͓wc.;˳;^7i;~(:nTΘsYq+XDrsdOfX!rBa,+䅌rJו!I18*\"7hF\$spDa*VDYc`F(ebYvGQ\n@\$\0A^pT8Bp\nAr6b^vw BLJK\"w\"^W¡FkB+1gęCӡe!0s\nx*0^dqm([1ɄPER\"\0C\naH#.)\"<#m1ϛT\$SQ&3#F\"8:uCNJIZ3¸Z\\#LO3a@^ CO	`*鲌G4Wvd|ybA9 !Eہ8RO\naRZHEQ0,d\$Tb-Xm9J\\GHJ\\r.\$V\0P(\$L\0\naD&^tH#%i_#]ǴLG.`)1nY|%4F\n\rba!T	xF#\rvJ/Q8@G~&^_{}Ph8;#)G(}'t,*O8\"	ArDAK2d%*(YL\"L_D:]Eq/cicGJfJiqn5%@X9h)|1fZBPWz&֓L4_H QY]\\ࢌT";break;case"zh-tw":$e="%:\$\ns.eUȸE9PK72(Ph)ʅ@:i	aJe R)ܫ{	Nd(vQDCѮUjaʜTOABPb2ar\nr/WtЀBT)*yX^%ӕ\\r|I7FS	99STB\$rNuMТUP)&9G'ܪ{;ds'.̖L9ho^^+ieD:=.RFR%F{A,\\{Xs&֚u\0rzM6U!TDǇEtl6N_'zV~NZRZRGATO\$DЭ8UJt|R)O؜PL)^C-eLhJ\\<i6mnt6WA(C2R SA bd89R]g1G\$i^1I%zޏhqzNO	psd:G<N\$	К&Bc4<p6 BKI#@6\nt/c9\r\0\\#0!^0cYcx3\r#=n2V#\0\r5t1g1K?n'AK[h1PPKdJГ12A\$&YA=e8|P:Lte\\MtШq4gWbsާIG&FYg)C\$_IFIL	yqkBAXN0P m2YBɶND.#XB3:xÅ˳Ap9x7%0MAFq|A;YH\nD!)W,OYߛV}.H\\F|cgDu˾opG\rGr\\<Iwö́UD]e+ۤrA\\Its)%|_@L\\et\nHiYLbCՄa2Ma |	0ED	+L|[eI]Kw/nN8Mba(sDx\$\043w	ӯ)E;RY~ApP:;\nV,8~g>BBpHZ\"NDk4\\!ݟӲ\"3'cs@*1::<BbfG(8	XI\0C\naH#\0['<!2/!5cK\n:agd|8G0\\4kD&46~G(\0QL 0TsthHlq#p 	BA;:D`\"\$s@Z:D)A@'09&i.3.rMٛk!!Z[2ֆ\0y*VaeaL(PzgK%dq,u\ntc̊	Astm\"F]Q<2(HzQNX^'^aga>KٝA~+8DXrTPJѕ\nP#p|QL<hu4Jp#y!Rv_(D	ArC¨t'xJsNlBplע1_׈CZK/F9Б2nJ6iP-4auDwpg\n9t@^(opH\n:'V9dA阀(,E\0";break;}$Ff=array();foreach(explode("\n",lzw_decompress($e))as$W)$Ff[]=(strpos($W,"\t")?explode("\t",$W):$W);return$Ff;}abstract
class
SqlDb{static$instance;var$extension;var$flavor='';var$server_info;var$affected_rows=0;var$info='';var$errno=0;var$error='';protected$multi;abstract
function
attach($N,$U,$F);abstract
function
quote($P);abstract
function
select_db($jb);abstract
function
query($H,$Jf=false);function
multi_query($H){return$this->multi=$this->query($H);}function
store_result(){return$this->multi;}function
next_result(){return
false;}}if(extension_loaded('pdo')){abstract
class
PdoDb
extends
SqlDb{protected$pdo;function
dsn($wb,$U,$F,array$C=array()){$C[\PDO::ATTR_ERRMODE]=\PDO::ERRMODE_SILENT;$C[\PDO::ATTR_STATEMENT_CLASS]=array('Adminer\PdoResult');try{$this->pdo=new
\PDO($wb,$U,$F,$C);}catch(\Exception$Lb){return$Lb->getMessage();}$this->server_info=@$this->pdo->getAttribute(\PDO::ATTR_SERVER_VERSION);return'';}function
quote($P){return$this->pdo->quote($P);}function
query($H,$Jf=false){$I=$this->pdo->query($H);$this->error="";if(!$I){list(,$this->errno,$this->error)=$this->pdo->errorInfo();if(!$this->error)$this->error=lang(23);return
false;}$this->store_result($I);return$I;}function
store_result($I=null){if(!$I){$I=$this->multi;if(!$I)return
false;}if($I->columnCount()){$I->num_rows=$I->rowCount();return$I;}$this->affected_rows=$I->rowCount();return
true;}function
next_result(){$I=$this->multi;if(!is_object($I))return
false;$I->_offset=0;return@$I->nextRowset();}}class
PdoResult
extends
\PDOStatement{var$_offset=0,$num_rows;function
fetch_assoc(){return$this->fetch_array(\PDO::FETCH_ASSOC);}function
fetch_row(){return$this->fetch_array(\PDO::FETCH_NUM);}private
function
fetch_array($Gd){$J=$this->fetch($Gd);return($J?array_map(array($this,'unresource'),$J):$J);}private
function
unresource($W){return(is_resource($W)?stream_get_contents($W):$W);}function
fetch_field(){$K=(object)$this->getColumnMeta($this->_offset++);$S=$K->pdo_type;$K->type=($S==\PDO::PARAM_INT?0:15);$K->charsetnr=($S==\PDO::PARAM_LOB||(isset($K->flags)&&in_array("blob",(array)$K->flags))?63:0);return$K;}function
seek($Qd){for($q=0;$q<$Qd;$q++)$this->fetch();}}}function
add_driver($r,$A){SqlDriver::$drivers[$r]=$A;}function
get_driver($r){return
SqlDriver::$drivers[$r];}abstract
class
SqlDriver{static$instance;static$drivers=array();static$extensions=array();static$jush;protected$conn;protected$types=array();var$delimiter=";";var$insertFunctions=array();var$editFunctions=array();var$unsigned=array();var$operators=array();var$functions=array();var$grouping=array();var$onActions="RESTRICT|NO ACTION|CASCADE|SET NULL|SET DEFAULT";var$partitionBy=array();var$inout="IN|OUT|INOUT";var$enumLength="'(?:''|[^'\\\\]|\\\\.)*'";var$generated=array();static
function
connect($N,$U,$F){$f=new
Db;return($f->attach($N,$U,$F)?:$f);}function
__construct(Db$f){$this->conn=$f;}function
types(){return
call_user_func_array('array_merge',array_values($this->types));}function
structuredTypes(){return
array_map('array_keys',$this->types);}function
enumLength(array$k){}function
unconvertFunction(array$k){}function
select($Q,array$M,array$Z,array$p,array$D=array(),$w=1,$E=0,$ve=false){$Vc=(count($p)<count($M));$H=adminer()->selectQueryBuild($M,$Z,$p,$D,$w,$E);if(!$H)$H="SELECT".limit(($_GET["page"]!="last"&&$w&&$p&&$Vc&&JUSH=="sql"?"SQL_CALC_FOUND_ROWS ":"").implode(", ",$M)."\nFROM ".table($Q),($Z?"\nWHERE ".implode(" AND ",$Z):"").($p&&$Vc?"\nGROUP BY ".implode(", ",$p):"").($D?"\nORDER BY ".implode(", ",$D):""),$w,($E?$w*$E:0),"\n");$gf=microtime(true);$J=$this->conn->query($H);if($ve)echo
adminer()->selectQuery($H,$gf,!$J);return$J;}function
delete($Q,$_e,$w=0){$H="FROM ".table($Q);return
queries("DELETE".($w?limit1($Q,$H,$_e):" $H$_e"));}function
update($Q,array$O,$_e,$w=0,$Te="\n"){$Yf=array();foreach($O
as$v=>$W)$Yf[]="$v = $W";$H=table($Q)." SET$Te".implode(",$Te",$Yf);return
queries("UPDATE".($w?limit1($Q,$H,$_e,$Te):" $H$_e"));}function
insert($Q,array$O){return
queries("INSERT INTO ".table($Q).($O?" (".implode(", ",array_keys($O)).")\nVALUES (".implode(", ",$O).")":" DEFAULT VALUES").$this->insertReturning($Q));}function
insertReturning($Q){return"";}function
insertUpdate($Q,array$L,array$ue){return
false;}function
begin(){return
queries("BEGIN");}function
commit(){return
queries("COMMIT");}function
rollback(){return
queries("ROLLBACK");}function
slowQuery($H,$wf){}function
convertSearch($s,array$W,array$k){return$s;}function
value($W,array$k){return(method_exists($this->conn,'value')?$this->conn->value($W,$k):$W);}function
quoteBinary($Le){return
q($Le);}function
warnings(){}function
tableHelp($A,$Yc=false){}function
inheritsFrom($Q){return
array();}function
inheritedTables($Q){return
array();}function
partitionsInfo($Q){return
array();}function
hasCStyleEscapes(){return
false;}function
engines(){return
array();}function
supportsIndex(array$R){return!is_view($R);}function
indexAlgorithms(array$of){return
array();}function
checkConstraints($Q){return
get_key_vals("SELECT c.CONSTRAINT_NAME, CHECK_CLAUSE
FROM INFORMATION_SCHEMA.CHECK_CONSTRAINTS c
JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS t ON c.CONSTRAINT_SCHEMA = t.CONSTRAINT_SCHEMA AND c.CONSTRAINT_NAME = t.CONSTRAINT_NAME".($this->conn->flavor=='maria'?" AND c.TABLE_NAME = ".q($Q):"")."
WHERE c.CONSTRAINT_SCHEMA = ".q($_GET["ns"]!=""?$_GET["ns"]:DB)."
AND t.TABLE_NAME = ".q($Q).(JUSH=="pgsql"?"
AND CHECK_CLAUSE NOT LIKE '% IS NOT NULL'":""),$this->conn);}function
allFields(){$J=array();if(DB!=""){foreach(get_rows("SELECT TABLE_NAME AS tab, COLUMN_NAME AS field, IS_NULLABLE AS nullable, DATA_TYPE AS type, CHARACTER_MAXIMUM_LENGTH AS length".(JUSH=='sql'?", COLUMN_KEY = 'PRI' AS `primary`":"")."
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = ".q($_GET["ns"]!=""?$_GET["ns"]:DB)."
ORDER BY TABLE_NAME, ORDINAL_POSITION",$this->conn)as$K){$K["null"]=($K["nullable"]=="YES");$J[$K["tab"]][]=$K;}}return$J;}}class
Adminer{static$instance;var$error='';private$values=array();function
name(){return"<a href='https://www.adminer.org/editor/'".target_blank()." id='h1'><img src='".h(preg_replace("~\\?.*~","",ME)."?file=logo.png&version=5.4.4")."' width='24' height='24' alt='' id='logo'>".lang(24)."</a>";}function
credentials(){return
array(SERVER,$_GET["username"],get_password());}function
connectSsl(){}function
permanentLogin($bb=false){return
password_file($bb);}function
bruteForceKey(){return$_SERVER["REMOTE_ADDR"];}function
serverName($N){}function
database(){if(connection()){$kb=adminer()->databases(false);return(!$kb?get_val("SELECT SUBSTRING_INDEX(CURRENT_USER, '@', 1)"):$kb[(information_schema($kb[0])?1:0)]);}}function
operators(){return
array("<=",">=");}function
schemas(){return
schemas();}function
databases($bc=true){return
get_databases($bc);}function
pluginsLinks(){}function
queryTimeout(){return
5;}function
afterConnect(){}function
headers(){}function
csp($eb){return$eb;}function
head($hb=null){return
true;}function
bodyClass(){echo" editor";}function
css(){$J=array();foreach(array("","-dark")as$Gd){$m="adminer$Gd.css";if(file_exists($m)){$Wb=file_get_contents($m);$J["$m?v=".crc32($Wb)]=($Gd?"dark":(preg_match('~prefers-color-scheme:\s*dark~',$Wb)?'':'light'));}}return$J;}function
loginForm(){echo"<table class='layout'>\n",adminer()->loginFormField('username','<tr><th>'.lang(25).'<td>',input_hidden("auth[driver]","server").'<input name="auth[username]" autofocus value="'.h($_GET["username"]).'" autocomplete="username" autocapitalize="off">'),adminer()->loginFormField('password','<tr><th>'.lang(26).'<td>','<input type="password" name="auth[password]" autocomplete="current-password">'),"</table>\n","<p><input type='submit' value='".lang(27)."'>\n",checkbox("auth[permanent]",1,$_COOKIE["adminer_permanent"],lang(28))."\n";}function
loginFormField($A,$zc,$X){return$zc.$X."\n";}function
login($od,$F){return
true;}function
tableName($of){return
h(isset($of["Engine"])?($of["Comment"]!=""?$of["Comment"]:$of["Name"]):"");}function
fieldName($k,$D=0){return
h(preg_replace('~\s+\[.*\]$~','',($k["comment"]!=""?$k["comment"]:$k["field"])));}function
selectLinks($of,$O=""){$a=$of["Name"];if($O!==null)echo'<p class="tabs"><a href="'.h(ME.'edit='.urlencode($a).$O).'">'.lang(29)."</a>\n";}function
foreignKeys($Q){return
foreign_keys($Q);}function
backwardKeys($Q,$nf){$J=array();foreach(get_rows("SELECT TABLE_NAME, CONSTRAINT_NAME, COLUMN_NAME, REFERENCED_COLUMN_NAME
FROM information_schema.KEY_COLUMN_USAGE
WHERE TABLE_SCHEMA = ".q(adminer()->database())."
AND REFERENCED_TABLE_SCHEMA = ".q(adminer()->database())."
AND REFERENCED_TABLE_NAME = ".q($Q)."
ORDER BY ORDINAL_POSITION",null,"")as$K)$J[$K["TABLE_NAME"]]["keys"][$K["CONSTRAINT_NAME"]][$K["COLUMN_NAME"]]=$K["REFERENCED_COLUMN_NAME"];foreach($J
as$v=>$W){$A=adminer()->tableName(table_status1($v,true));if($A!=""){$Ne=preg_quote($nf);$Te="(:|\\s*-)?\\s+";$J[$v]["name"]=(preg_match("(^$Ne$Te(.+)|^(.+?)$Te$Ne\$)iu",$A,$z)?$z[2].$z[3]:$A);}else
unset($J[$v]);}return$J;}function
backwardKeysPrint($va,$K){foreach($va
as$Q=>$ua){foreach($ua["keys"]as$Ra){$x=ME.'select='.urlencode($Q);$q=0;foreach($Ra
as$c=>$W)$x
.=where_link($q++,$c,$K[$W]);echo"<a href='".h($x)."'>".h($ua["name"])."</a>";$x=ME.'edit='.urlencode($Q);foreach($Ra
as$c=>$W)$x
.="&set".urlencode("[".bracket_escape($c)."]")."=".urlencode($K[$W]);echo"<a href='".h($x)."' title='".lang(29)."'>+</a> ";}}}function
selectQuery($H,$gf,$Sb=false){return"<!--\n".str_replace("--","--><!-- ",$H)."\n(".format_time($gf).")\n-->\n";}function
rowDescription($Q){foreach(fields($Q)as$k){if(preg_match("~varchar|character varying~",$k["type"]))return
idf_escape($k["field"]);}return"";}function
rowDescriptions($L,$fc){$J=$L;foreach($L[0]as$v=>$W){if(list($Q,$r,$A)=$this->_foreignColumn($fc,$v)){$Hc=array();foreach($L
as$K)$Hc[$K[$v]]=q($K[$v]);$qb=$this->values[$Q];if(!$qb)$qb=get_key_vals("SELECT $r, $A FROM ".table($Q)." WHERE $r IN (".implode(", ",$Hc).")");foreach($L
as$_=>$K){if(isset($K[$v]))$J[$_][$v]=(string)$qb[$K[$v]];}}}return$J;}function
selectLink($W,$k){}function
selectVal($W,$x,$k,$be){$J="$W";$x=h($x);if(is_blob($k)&&!is_utf8($W)){$J=lang(30,strlen($be));if(preg_match("~^(GIF|\xFF\xD8\xFF|\x89PNG\x0D\x0A\x1A\x0A)~",$be))$J="<img src='$x' alt='$J'>";}if(like_bool($k)&&$J!="")$J=(preg_match('~^(1|t|true|y|yes|on)$~i',$W)?lang(31):lang(32));if($x)$J="<a href='$x'".(is_url($x)?target_blank():"").">$J</a>";if(preg_match('~date~',$k["type"]))$J="<div class='datetime'>$J</div>";return$J;}function
editVal($W,$k){if(preg_match('~date|timestamp~',$k["type"])&&$W!==null)return
preg_replace('~^(\d{2}(\d+))-(0?(\d+))-(0?(\d+))~',lang(33),$W);return$W;}function
config(){return
array();}function
selectColumnsPrint($M,$d){}function
selectSearchPrint($Z,$d,$u){$Z=(array)$_GET["where"];echo'<fieldset id="fieldset-search"><legend>'.lang(34)."</legend><div>\n";$cd=array();foreach($Z
as$v=>$W)$cd[$W["col"]]=$v;$q=0;$l=fields($_GET["select"]);foreach($d
as$A=>$pb){$k=$l[$A];if($k["type"]=="enum"||like_bool($k)){$v=$cd[$A];$q--;echo"<div>".h($pb).":".input_hidden("where[$q][col]",$A);$W=idx($Z[$v],"val");echo(like_bool($k)?"<select name='where[$q][val]'>".optionlist(array(""=>"",lang(32),lang(31)),$W,true)."</select>":enum_input("checkbox"," name='where[$q][val][]'",$k,(array)$W,lang(35))),"</div>\n";unset($d[$A]);}elseif(is_array($C=$this->foreignKeyOptions($_GET["select"],$A))){if($l[$A]["null"])$C[0]='('.lang(35).')';$v=$cd[$A];$q--;echo"<div>".h($pb).input_hidden("where[$q][col]",$A).input_hidden("where[$q][op]","=").": <select name='where[$q][val]'>".optionlist($C,idx($Z[$v],"val"),true)."</select></div>\n";unset($d[$A]);}}$q=0;foreach($Z
as$W){if(($W["col"]==""||$d[$W["col"]])&&"$W[col]$W[val]"!=""){echo"<div><select name='where[$q][col]'><option value=''>(".lang(36).")".optionlist($d,$W["col"],true)."</select>",html_select("where[$q][op]",array(-1=>"")+adminer()->operators(),$W["op"]),"<input type='search' name='where[$q][val]' value='".h($W["val"])."'>".script("mixin(qsl('input'), {onkeydown: selectSearchKeydown, onsearch: selectSearchSearch});","")."</div>\n";$q++;}}echo"<div><select name='where[$q][col]'><option value=''>(".lang(36).")".optionlist($d,null,true)."</select>",script("qsl('select').onchange = selectAddRow;",""),html_select("where[$q][op]",array(-1=>"")+adminer()->operators()),"<input type='search' name='where[$q][val]'></div>",script("mixin(qsl('input'), {onchange: function () { this.parentNode.firstChild.onchange(); }, onsearch: selectSearchSearch});"),"</div></fieldset>\n";}function
selectOrderPrint($D,$d,$u){$ae=array();foreach($u
as$v=>$t){$D=array();foreach($t["columns"]as$W)$D[]=$d[$W];if(count(array_filter($D,'strlen'))>1&&$v!="PRIMARY")$ae[$v]=implode(", ",$D);}if($ae)echo'<fieldset><legend>'.lang(37)."</legend><div>","<select name='index_order'>".optionlist(array(""=>"")+$ae,(idx($_GET["order"],0)!=""?"":$_GET["index_order"]),true)."</select>","</div></fieldset>\n";if($_GET["order"])echo"<div style='display: none;'>".hidden_fields(array("order"=>array(1=>reset($_GET["order"])),"desc"=>($_GET["desc"]?array(1=>1):array()),))."</div>\n";}function
selectLimitPrint($w){echo"<fieldset><legend>".lang(38)."</legend><div>",html_select("limit",array("",50,100),$w),"</div></fieldset>\n";}function
selectLengthPrint($tf){}function
selectActionPrint($u){echo"<fieldset><legend>".lang(39)."</legend><div>","<input type='submit' value='".lang(40)."'>","</div></fieldset>\n";}function
selectCommandPrint(){return
true;}function
selectImportPrint(){return
true;}function
selectEmailPrint($Bb,$d){}function
selectColumnsProcess($d,$u){return
array(array(),array());}function
selectSearchProcess($l,$u){$J=array();foreach((array)$_GET["where"]as$v=>$Z){$Oa=$Z["col"];$Vd=$Z["op"];$W=$Z["val"];if(($v>=0&&$Oa!="")||$W!=""){$Ua=array();foreach(($Oa!=""?array($Oa=>$l[$Oa]):$l)as$A=>$k){if($Oa!=""||is_numeric($W)||!preg_match(number_type(),$k["type"])){$A=idf_escape($A);if($Oa!=""&&$k["type"]=="enum"){$Jc=array();foreach($W
as$Xf){if(preg_match('~val-~',$Xf))$Jc[]=q(substr($Xf,4));}$Ua[]=(in_array("null",$W)?"$A IS NULL OR ":"").($Jc?"$A IN (".implode(", ",$Jc).")":"0");}else{$uf=preg_match('~char|text|enum|set~',$k["type"]);$X=adminer()->processInput($k,(!$Vd&&$uf&&preg_match('~^[^%]+$~',$W)?"%$W%":$W));$Ua[]=driver()->convertSearch($A,$Z,$k).($X=="NULL"?" IS".($Vd==">="?" NOT":"")." $X":(in_array($Vd,adminer()->operators())||$Vd=="="?" $Vd $X":($uf?" LIKE $X":" IN (".($X[0]=="'"?str_replace(",","', '",$X):$X).")")));if($v<0&&$W=="0")$Ua[]="$A IS NULL";}}}$J[]=($Ua?"(".implode(" OR ",$Ua).")":"1 = 0");}}return$J;}function
selectOrderProcess($l,$u){$Lc=$_GET["index_order"];if($Lc!="")unset($_GET["order"][1]);if($_GET["order"])return
array(idf_escape(reset($_GET["order"])).($_GET["desc"]?" DESC":""));foreach(($Lc!=""?array($u[$Lc]):$u)as$t){if($Lc!=""||$t["type"]=="INDEX"){$uc=array_filter($t["descs"]);$pb=false;foreach($t["columns"]as$W){if(preg_match('~date|timestamp~',$l[$W]["type"])){$pb=true;break;}}$J=array();foreach($t["columns"]as$v=>$W)$J[]=idf_escape($W).(($uc?$t["descs"][$v]:$pb)?" DESC":"");return$J;}}return
array();}function
selectLimitProcess(){return(isset($_GET["limit"])?intval($_GET["limit"]):50);}function
selectLengthProcess(){return"100";}function
selectEmailProcess($Z,$fc){return
false;}function
selectQueryBuild($M,$Z,$p,$D,$w,$E){return"";}function
messageQuery($H,$vf,$Sb=false){return" <span class='time'>".@date("H:i:s")."</span><!--\n".str_replace("--","--><!-- ",$H)."\n".($vf?"($vf)\n":"")."-->";}function
editRowPrint($Q,$l,$K,$T){}function
editFunctions($k){$J=array();if($k["null"]&&preg_match('~blob~',$k["type"]))$J["NULL"]=lang(35);$J[""]=($k["null"]||$k["auto_increment"]||like_bool($k)?"":"*");if(preg_match('~date|time~',$k["type"]))$J["now"]=lang(41);if(preg_match('~_(md5|sha1)$~i',$k["field"],$z))$J[]=strtolower($z[1]);return$J;}function
editInput($Q,$k,$b,$X){if($k["type"]=="enum")return(isset($_GET["select"])?"<label><input type='radio'$b value='orig' checked><i>".lang(10)."</i></label> ":"").enum_input("radio",$b,$k,$X,lang(35));$C=$this->foreignKeyOptions($Q,$k["field"],$X);if($C!==null)return(is_array($C)?"<select$b>".optionlist($C,(string)$X,true)."</select>":"<input value='".h($X)."'$b class='hidden'>"."<input value='".h($C)."' class='jsonly'>"."<div></div>".script("qsl('input').oninput = partial(whisper, '".ME."script=complete&source=".urlencode($Q)."&field=".urlencode($k["field"])."&value='); qsl('div').onclick = whisperClick;",""));if(like_bool($k))return'<input type="checkbox" value="1"'.(preg_match('~^(1|t|true|y|yes|on)$~i',$X)?' checked':'')."$b>";$Ac="";if(preg_match('~time~',$k["type"]))$Ac=lang(42);if(preg_match('~date|timestamp~',$k["type"]))$Ac=lang(43).($Ac?" [$Ac]":"");if($Ac)return"<input value='".h($X)."'$b> ($Ac)";if(preg_match('~_(md5|sha1)$~i',$k["field"]))return"<input type='password' value='".h($X)."'$b>";return'';}function
editHint($Q,$k,$X){return(preg_match('~\s+(\[.*\])$~',($k["comment"]!=""?$k["comment"]:$k["field"]),$z)?h(" $z[1]"):'');}function
processInput($k,$X,$o=""){if($o=="now")return"$o()";$J=$X;if(preg_match('~date|timestamp~',$k["type"])&&preg_match('(^'.str_replace('\$1','(?P<p1>\d*)',preg_replace('~(\\\\\\$([2-6]))~','(?P<p\2>\d{1,2})',preg_quote(lang(33)))).'(.*))',$X,$z))$J=($z["p1"]!=""?$z["p1"]:($z["p2"]!=""?($z["p2"]<70?20:19).$z["p2"]:gmdate("Y")))."-$z[p3]$z[p4]-$z[p5]$z[p6]".end($z);$J=q($J);if($X==""&&like_bool($k))$J="'0'";elseif($X==""&&($k["null"]||!preg_match('~char|text~',$k["type"])))$J="NULL";elseif(preg_match('~^(md5|sha1)$~',$o))$J="$o($J)";return
unconvert_field($k,$J);}function
dumpOutput(){return
array();}function
dumpFormat(){return
array('csv'=>'CSV,','csv;'=>'CSV;','tsv'=>'TSV');}function
dumpDatabase($h){}function
dumpTable($Q,$jf,$Yc=0){echo"\xef\xbb\xbf";}function
dumpData($Q,$jf,$H){$I=connection()->query($H,1);if($I){while($K=$I->fetch_assoc()){if($jf=="table"){dump_csv(array_keys($K));$jf="INSERT";}dump_csv($K);}}}function
dumpFilename($Gc){return
friendly_url($Gc);}function
dumpHeaders($Gc,$Id=false){$Ob="csv";header("Content-Type: text/csv; charset=utf-8");return$Ob;}function
dumpFooter(){}function
importServerPath(){}function
homepage(){return
true;}function
navigation($Fd){echo"<h1>".adminer()->name()." <span class='version'>".VERSION;$Md=$_COOKIE["adminer_version"];echo" <a href='https://www.adminer.org/editor/#download'".target_blank()." id='version'>".(version_compare(VERSION,$Md)<0?h($Md):"")."</a>","</span></h1>\n";switch_lang();if($Fd=="auth"){$Zb=true;foreach((array)$_SESSION["pwds"]as$Y=>$Ve){foreach($Ve[""]as$U=>$F){if($F!==null){if($Zb){echo"<ul id='logins'>",script("mixin(qs('#logins'), {onmouseover: menuOver, onmouseout: menuOut});");$Zb=false;}echo"<li><a href='".h(auth_url($Y,"",$U))."'>".($U!=""?h($U):"<i>".lang(35)."</i>")."</a>\n";}}}}else{adminer()->databasesPrint($Fd);$da=adminer()->menuActions(array(),$Fd);echo($da?"<p class='links'>\n".implode("\n",$da)."\n":"");if($Fd!="db"&&$Fd!="ns"){$R=table_status('',true);if(!$R)echo"<p class='message'>".lang(11)."\n";else
adminer()->tablesPrint($R);}}}function
syntaxHighlighting($qf){}function
databasesPrint($Fd){}function
menuActions($da,$Fd){return$da;}function
tablesPrint($qf){echo"<ul id='tables'>",script("mixin(qs('#tables'), {onmouseover: menuOver, onmouseout: menuOut});");foreach($qf
as$K){echo'<li>';$A=adminer()->tableName($K);if($A!="")echo"<a href='".h(ME).'select='.urlencode($K["Name"])."'".bold($_GET["select"]==$K["Name"]||$_GET["edit"]==$K["Name"],"select")." title='".lang(44)."'>$A</a>\n";}echo"</ul>\n";}function
_foreignColumn($fc,$c){foreach((array)$fc[$c]as$ec){if(count($ec["source"])==1){$A=adminer()->rowDescription($ec["table"]);if($A!=""){$r=idf_escape($ec["target"][0]);return
array($ec["table"],$r,$A);}}}}private
function
foreignKeyOptions($Q,$c,$X=null){if(list($rf,$r,$A)=$this->_foreignColumn(column_foreign_keys($Q),$c)){$J=&$this->values[$rf];if($J===null){$R=table_status1($rf);$J=($R["Rows"]>1000?"":array(""=>"")+get_key_vals("SELECT $r, $A FROM ".table($rf)." ORDER BY 2"));}if(!$J&&$X!==null)return
get_val("SELECT $A FROM ".table($rf)." WHERE $r = ".q($X));return$J;}}}class
Plugins{private
static$append=array('dumpFormat'=>true,'dumpOutput'=>true,'editRowPrint'=>true,'editFunctions'=>true,'config'=>true);var$plugins;var$error='';private$hooks=array();function
__construct($oe){if($oe===null){$oe=array();$ya="adminer-plugins";if(is_dir($ya)){foreach(glob("$ya/*.php")as$m)$this->includeOnce($m);}$_c=" href='https://www.adminer.org/plugins/#use'".target_blank();if(file_exists("$ya.php")){$Kc=$this->includeOnce("$ya.php");if(is_array($Kc)){foreach($Kc
as$ne)$oe[get_class($ne)]=$ne;}else$this->error
.=lang(45,"<b>$ya.php</b>",$_c)."<br>";}foreach(get_declared_classes()as$La){if(!$oe[$La]&&(preg_match('~^Adminer\w~i',$La)||is_subclass_of($La,'Adminer\Plugin'))){$Ee=new
\ReflectionClass($La);$Wa=$Ee->getConstructor();if($Wa&&$Wa->getNumberOfRequiredParameters())$this->error
.=lang(46,$_c,"<b>$La</b>","<b>$ya.php</b>")."<br>";else$oe[$La]=new$La;}}}$this->plugins=$oe;$ea=new
Adminer;$oe[]=$ea;$Ee=new
\ReflectionObject($ea);foreach($Ee->getMethods()as$Ed){foreach($oe
as$ne){$A=$Ed->getName();if(method_exists($ne,$A))$this->hooks[$A][]=$ne;}}}function
includeOnce($m){return
include_once"./$m";}function
__call($A,array$ge){$ka=array();foreach($ge
as$v=>$W)$ka[]=&$ge[$v];$J=null;foreach($this->hooks[$A]as$ne){$X=call_user_func_array(array($ne,$A),$ka);if($X!==null){if(!self::$append[$A])return$X;$J=$X+(array)$J;}}return$J;}}abstract
class
Plugin{protected$translations=array();function
description(){return$this->lang('');}function
screenshot(){return"";}protected
function
lang($s,$B=null){$ka=func_get_args();$ka[0]=idx($this->translations[LANG],$s)?:$s;return
call_user_func_array('Adminer\lang_format',$ka);}}Adminer::$instance=(function_exists('adminer_object')?adminer_object():(is_dir("adminer-plugins")||file_exists("adminer-plugins.php")?new
Plugins(null):new
Adminer));SqlDriver::$drivers=array("server"=>"MySQL / MariaDB")+SqlDriver::$drivers;if(!defined('Adminer\DRIVER')){define('Adminer\DRIVER',"server");if(extension_loaded("mysqli")&&$_GET["ext"]!="pdo"){class
Db
extends
\MySQLi{static$instance;var$extension="MySQLi",$flavor='';function
__construct(){parent::init();}function
attach($N,$U,$F){mysqli_report(MYSQLI_REPORT_OFF);list($Cc,$pe)=host_port($N);$ff=adminer()->connectSsl();if($ff)$this->ssl_set($ff['key'],$ff['cert'],$ff['ca'],'','');$J=@$this->real_connect(($N!=""?$Cc:ini_get("mysqli.default_host")),($N.$U!=""?$U:ini_get("mysqli.default_user")),($N.$U.$F!=""?$F:ini_get("mysqli.default_pw")),null,(is_numeric($pe)?intval($pe):ini_get("mysqli.default_port")),(is_numeric($pe)?null:$pe),($ff?($ff['verify']!==false?2048:64):0));$this->options(MYSQLI_OPT_LOCAL_INFILE,0);return($J?'':$this->error);}function
set_charset($Ga){if(parent::set_charset($Ga))return
true;parent::set_charset('utf8');return$this->query("SET NAMES $Ga");}function
next_result(){return
self::more_results()&&parent::next_result();}function
quote($P){return"'".$this->escape_string($P)."'";}}}elseif(extension_loaded("mysql")&&!((ini_bool("sql.safe_mode")||ini_bool("mysql.allow_local_infile"))&&extension_loaded("pdo_mysql"))){class
Db
extends
SqlDb{private$link;function
attach($N,$U,$F){if(ini_bool("mysql.allow_local_infile"))return
lang(47,"'mysql.allow_local_infile'","MySQLi","PDO_MySQL");$this->link=@mysql_connect(($N!=""?$N:ini_get("mysql.default_host")),($N.$U!=""?$U:ini_get("mysql.default_user")),($N.$U.$F!=""?$F:ini_get("mysql.default_password")),true,131072);if(!$this->link)return
mysql_error();$this->server_info=mysql_get_server_info($this->link);return'';}function
set_charset($Ga){if(function_exists('mysql_set_charset')){if(mysql_set_charset($Ga,$this->link))return
true;mysql_set_charset('utf8',$this->link);}return$this->query("SET NAMES $Ga");}function
quote($P){return"'".mysql_real_escape_string($P,$this->link)."'";}function
select_db($jb){return
mysql_select_db($jb,$this->link);}function
query($H,$Jf=false){$I=@($Jf?mysql_unbuffered_query($H,$this->link):mysql_query($H,$this->link));$this->error="";if(!$I){$this->errno=mysql_errno($this->link);$this->error=mysql_error($this->link);return
false;}if($I===true){$this->affected_rows=mysql_affected_rows($this->link);$this->info=mysql_info($this->link);return
true;}return
new
Result($I);}}class
Result{var$num_rows;private$result;private$offset=0;function
__construct($I){$this->result=$I;$this->num_rows=mysql_num_rows($I);}function
fetch_assoc(){return
mysql_fetch_assoc($this->result);}function
fetch_row(){return
mysql_fetch_row($this->result);}function
fetch_field(){$J=mysql_fetch_field($this->result,$this->offset++);$J->orgtable=$J->table;$J->charsetnr=($J->blob?63:0);return$J;}function
__destruct(){mysql_free_result($this->result);}}}elseif(extension_loaded("pdo_mysql")){class
Db
extends
PdoDb{var$extension="PDO_MySQL";function
attach($N,$U,$F){$C=array(\PDO::MYSQL_ATTR_LOCAL_INFILE=>false);$ff=adminer()->connectSsl();if($ff){if($ff['key'])$C[\PDO::MYSQL_ATTR_SSL_KEY]=$ff['key'];if($ff['cert'])$C[\PDO::MYSQL_ATTR_SSL_CERT]=$ff['cert'];if($ff['ca'])$C[\PDO::MYSQL_ATTR_SSL_CA]=$ff['ca'];if(isset($ff['verify']))$C[\PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT]=$ff['verify'];}list($Cc,$pe)=host_port($N);return$this->dsn("mysql:charset=utf8;host=$Cc".($pe?(is_numeric($pe)?";port=":";unix_socket=").$pe:""),$U,$F,$C);}function
set_charset($Ga){return$this->query("SET NAMES $Ga");}function
select_db($jb){return$this->query("USE ".idf_escape($jb));}function
query($H,$Jf=false){$this->pdo->setAttribute(\PDO::MYSQL_ATTR_USE_BUFFERED_QUERY,!$Jf);return
parent::query($H,$Jf);}}}class
Driver
extends
SqlDriver{static$extensions=array("MySQLi","MySQL","PDO_MySQL");static$jush="sql";var$unsigned=array("unsigned","zerofill","unsigned zerofill");var$operators=array("=","<",">","<=",">=","!=","LIKE","LIKE %%","REGEXP","IN","FIND_IN_SET","IS NULL","NOT LIKE","NOT REGEXP","NOT IN","IS NOT NULL","SQL");var$functions=array("char_length","date","from_unixtime","lower","round","floor","ceil","sec_to_time","time_to_sec","upper");var$grouping=array("avg","count","count distinct","group_concat","max","min","sum");static
function
connect($N,$U,$F){$f=parent::connect($N,$U,$F);if(is_string($f)){if(function_exists('iconv')&&!is_utf8($f)&&strlen($Le=iconv("windows-1250","utf-8",$f))>strlen($f))$f=$Le;return$f;}$f->set_charset(charset($f));$f->query("SET sql_quote_show_create = 1, autocommit = 1");$f->flavor=(preg_match('~MariaDB~',$f->server_info)?'maria':'mysql');add_driver(DRIVER,($f->flavor=='maria'?"MariaDB":"MySQL"));return$f;}function
__construct(Db$f){parent::__construct($f);$this->types=array(lang(48)=>array("tinyint"=>3,"smallint"=>5,"mediumint"=>8,"int"=>10,"bigint"=>20,"decimal"=>66,"float"=>12,"double"=>21),lang(49)=>array("date"=>10,"datetime"=>19,"timestamp"=>19,"time"=>10,"year"=>4),lang(50)=>array("char"=>255,"varchar"=>65535,"tinytext"=>255,"text"=>65535,"mediumtext"=>16777215,"longtext"=>4294967295),lang(51)=>array("enum"=>65535,"set"=>64),lang(52)=>array("bit"=>20,"binary"=>255,"varbinary"=>65535,"tinyblob"=>255,"blob"=>65535,"mediumblob"=>16777215,"longblob"=>4294967295),lang(53)=>array("geometry"=>0,"point"=>0,"linestring"=>0,"polygon"=>0,"multipoint"=>0,"multilinestring"=>0,"multipolygon"=>0,"geometrycollection"=>0),);$this->insertFunctions=array("char"=>"md5/sha1/password/encrypt/uuid","binary"=>"md5/sha1","date|time"=>"now",);$this->editFunctions=array(number_type()=>"+/-","date"=>"+ interval/- interval","time"=>"addtime/subtime","char|text"=>"concat",);if(min_version('5.7.8',10.2,$f))$this->types[lang(50)]["json"]=4294967295;if(min_version('',10.7,$f)){$this->types[lang(50)]["uuid"]=128;$this->insertFunctions['uuid']='uuid';}if(min_version(9,'',$f)){$this->types[lang(48)]["vector"]=16383;$this->insertFunctions['vector']='string_to_vector';}if(min_version(5.1,'',$f))$this->partitionBy=array("HASH","LINEAR HASH","KEY","LINEAR KEY","RANGE","LIST");if(min_version(5.7,10.2,$f))$this->generated=array("STORED","VIRTUAL");}function
unconvertFunction(array$k){return(preg_match("~binary~",$k["type"])?"<code class='jush-sql'>UNHEX</code>":($k["type"]=="bit"?doc_link(array('sql'=>'bit-value-literals.html'),"<code>b''</code>"):(preg_match("~geometry|point|linestring|polygon~",$k["type"])?"<code class='jush-sql'>GeomFromText</code>":"")));}function
insert($Q,array$O){return($O?parent::insert($Q,$O):queries("INSERT INTO ".table($Q)." ()\nVALUES ()"));}function
insertUpdate($Q,array$L,array$ue){$d=array_keys(reset($L));$te="INSERT INTO ".table($Q)." (".implode(", ",$d).") VALUES\n";$Yf=array();foreach($d
as$v)$Yf[$v]="$v = VALUES($v)";$lf="\nON DUPLICATE KEY UPDATE ".implode(", ",$Yf);$Yf=array();$ld=0;foreach($L
as$O){$X="(".implode(", ",$O).")";if($Yf&&(strlen($te)+$ld+strlen($X)+strlen($lf)>1e6)){if(!queries($te.implode(",\n",$Yf).$lf))return
false;$Yf=array();$ld=0;}$Yf[]=$X;$ld+=strlen($X)+2;}return
queries($te.implode(",\n",$Yf).$lf);}function
slowQuery($H,$wf){if(min_version('5.7.8','10.1.2')){if($this->conn->flavor=='maria')return"SET STATEMENT max_statement_time=$wf FOR $H";elseif(preg_match('~^(SELECT\b)(.+)~is',$H,$z))return"$z[1] /*+ MAX_EXECUTION_TIME(".($wf*1000).") */ $z[2]";}}function
convertSearch($s,array$W,array$k){return(preg_match('~char|text|enum|set~',$k["type"])&&!preg_match("~^utf8~",$k["collation"])&&preg_match('~[\x80-\xFF]~',$W['val'])?"CONVERT($s USING ".charset($this->conn).")":$s);}function
quoteBinary($Le){return"X".q(bin2hex($Le));}function
warnings(){$I=$this->conn->query("SHOW WARNINGS");if($I&&$I->num_rows){ob_start();print_select_result($I);return
ob_get_clean();}}function
tableHelp($A,$Yc=false){$qd=($this->conn->flavor=='maria');if(information_schema(DB))return
strtolower("information-schema-".($qd?"$A-table/":str_replace("_","-",$A)."-table.html"));if(DB=="mysql")return($qd?"mysql$A-table/":"system-schema.html");}function
partitionsInfo($Q){$kc="FROM information_schema.PARTITIONS WHERE TABLE_SCHEMA = ".q(DB)." AND TABLE_NAME = ".q($Q);$I=$this->conn->query("SELECT PARTITION_METHOD, PARTITION_EXPRESSION, PARTITION_ORDINAL_POSITION $kc ORDER BY PARTITION_ORDINAL_POSITION DESC LIMIT 1");$J=array();list($J["partition_by"],$J["partition"],$J["partitions"])=$I->fetch_row();$je=get_key_vals("SELECT PARTITION_NAME, PARTITION_DESCRIPTION $kc AND PARTITION_NAME != '' ORDER BY PARTITION_ORDINAL_POSITION");$J["partition_names"]=array_keys($je);$J["partition_values"]=array_values($je);return$J;}function
hasCStyleEscapes(){static$Ea;if($Ea===null){$ef=get_val("SHOW VARIABLES LIKE 'sql_mode'",1,$this->conn);$Ea=(strpos($ef,'NO_BACKSLASH_ESCAPES')===false);}return$Ea;}function
engines(){$J=array();foreach(get_rows("SHOW ENGINES")as$K){if(preg_match("~YES|DEFAULT~",$K["Support"]))$J[]=$K["Engine"];}return$J;}function
indexAlgorithms(array$of){return(preg_match('~^(MEMORY|NDB)$~',$of["Engine"])?array("HASH","BTREE"):array());}}function
idf_escape($s){return"`".str_replace("`","``",$s)."`";}function
table($s){return
idf_escape($s);}function
get_databases($bc){$J=get_session("dbs");if($J===null){$H="SELECT SCHEMA_NAME FROM information_schema.SCHEMATA ORDER BY SCHEMA_NAME";$J=($bc?slow_query($H):get_vals($H));restart_session();set_session("dbs",$J);stop_session();}return$J;}function
limit($H,$Z,$w,$Qd=0,$Te=" "){return" $H$Z".($w?$Te."LIMIT $w".($Qd?" OFFSET $Qd":""):"");}function
limit1($Q,$H,$Z,$Te="\n"){return
limit($H,$Z,1,0,$Te);}function
db_collation($h,array$Qa){$J=null;$bb=get_val("SHOW CREATE DATABASE ".idf_escape($h),1);if(preg_match('~ COLLATE ([^ ]+)~',$bb,$z))$J=$z[1];elseif(preg_match('~ CHARACTER SET ([^ ]+)~',$bb,$z))$J=$Qa[$z[1]][-1];return$J;}function
logged_user(){return
get_val("SELECT USER()");}function
tables_list(){return
get_key_vals("SELECT TABLE_NAME, TABLE_TYPE FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() ORDER BY TABLE_NAME");}function
count_tables(array$kb){$J=array();foreach($kb
as$h)$J[$h]=count(get_vals("SHOW TABLES IN ".idf_escape($h)));return$J;}function
table_status($A="",$Tb=false){$J=array();foreach(get_rows($Tb?"SELECT TABLE_NAME AS Name, ENGINE AS Engine, TABLE_COMMENT AS Comment FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() ".($A!=""?"AND TABLE_NAME = ".q($A):"ORDER BY Name"):"SHOW TABLE STATUS".($A!=""?" LIKE ".q(addcslashes($A,"%_\\")):""))as$K){if($K["Engine"]=="InnoDB")$K["Comment"]=preg_replace('~(?:(.+); )?InnoDB free: .*~','\1',$K["Comment"]);if(!isset($K["Engine"]))$K["Comment"]="";if($A!="")$K["Name"]=$A;$J[$K["Name"]]=$K;}return$J;}function
is_view(array$R){return$R["Engine"]===null;}function
fk_support(array$R){return
preg_match('~InnoDB|IBMDB2I'.(min_version(5.6)?'|NDB':'').'~i',$R["Engine"]);}function
fields($Q){$qd=(connection()->flavor=='maria');$J=array();foreach(get_rows("SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = ".q($Q)." ORDER BY ORDINAL_POSITION")as$K){$k=$K["COLUMN_NAME"];$S=$K["COLUMN_TYPE"];$oc=$K["GENERATION_EXPRESSION"];$Rb=$K["EXTRA"];preg_match('~^(VIRTUAL|PERSISTENT|STORED)~',$Rb,$nc);preg_match('~^([^( ]+)(?:\((.+)\))?( unsigned)?( zerofill)?$~',$S,$sd);$i=$K["COLUMN_DEFAULT"];if($i!=""){$Xc=preg_match('~text|json~',$sd[1]);if(!$qd&&$Xc)$i=preg_replace("~^(_\w+)?('.*')$~",'\2',stripslashes($i));if($qd||$Xc){$i=($i=="NULL"?null:preg_replace_callback("~^'(.*)'$~",function($z){return
stripslashes(str_replace("''","'",$z[1]));},$i));}if(!$qd&&preg_match('~binary~',$sd[1])&&preg_match('~^0x(\w*)$~',$i,$z))$i=pack("H*",$z[1]);}$J[$k]=array("field"=>$k,"full_type"=>$S,"type"=>$sd[1],"length"=>$sd[2],"unsigned"=>ltrim($sd[3].$sd[4]),"default"=>($nc?($qd?$oc:stripslashes($oc)):$i),"null"=>($K["IS_NULLABLE"]=="YES"),"auto_increment"=>($Rb=="auto_increment"),"on_update"=>(preg_match('~\bon update (\w+)~i',$Rb,$z)?$z[1]:""),"collation"=>$K["COLLATION_NAME"],"privileges"=>array_flip(explode(",","$K[PRIVILEGES],where,order")),"comment"=>$K["COLUMN_COMMENT"],"primary"=>($K["COLUMN_KEY"]=="PRI"),"generated"=>($nc[1]=="PERSISTENT"?"STORED":$nc[1]),);}return$J;}function
indexes($Q,$g=null){$J=array();foreach(get_rows("SHOW INDEX FROM ".table($Q),$g)as$K){$A=$K["Key_name"];$J[$A]["type"]=($A=="PRIMARY"?"PRIMARY":($K["Index_type"]=="FULLTEXT"?"FULLTEXT":($K["Non_unique"]?($K["Index_type"]=="SPATIAL"?"SPATIAL":"INDEX"):"UNIQUE")));$J[$A]["columns"][]=$K["Column_name"];$J[$A]["lengths"][]=($K["Index_type"]=="SPATIAL"?null:$K["Sub_part"]);$J[$A]["descs"][]=null;$J[$A]["algorithm"]=$K["Index_type"];}return$J;}function
foreign_keys($Q){static$le='(?:`(?:[^`]|``)+`|"(?:[^"]|"")+")';$J=array();$cb=get_val("SHOW CREATE TABLE ".table($Q),1);if($cb){preg_match_all("~CONSTRAINT ($le) FOREIGN KEY ?\\(((?:$le,? ?)+)\\) REFERENCES ($le)(?:\\.($le))? \\(((?:$le,? ?)+)\\)(?: ON DELETE (".driver()->onActions."))?(?: ON UPDATE (".driver()->onActions."))?~",$cb,$td,PREG_SET_ORDER);foreach($td
as$z){preg_match_all("~$le~",$z[2],$cf);preg_match_all("~$le~",$z[5],$rf);$J[idf_unescape($z[1])]=array("db"=>idf_unescape($z[4]!=""?$z[3]:$z[4]),"table"=>idf_unescape($z[4]!=""?$z[4]:$z[3]),"source"=>array_map('Adminer\idf_unescape',$cf[0]),"target"=>array_map('Adminer\idf_unescape',$rf[0]),"on_delete"=>($z[6]?:"RESTRICT"),"on_update"=>($z[7]?:"RESTRICT"),);}}return$J;}function
view($A){return
array("select"=>preg_replace('~^(?:[^`]|`[^`]*`)*\s+AS\s+~isU','',get_val("SHOW CREATE VIEW ".table($A),1)));}function
collations(){$J=array();foreach(get_rows("SHOW COLLATION")as$K){if($K["Default"])$J[$K["Charset"]][-1]=$K["Collation"];else$J[$K["Charset"]][]=$K["Collation"];}ksort($J);foreach($J
as$v=>$W)sort($J[$v]);return$J;}function
information_schema($h){return($h=="information_schema")||(min_version(5.5)&&$h=="performance_schema");}function
error(){return
h(preg_replace('~^You have an error.*syntax to use~U',"Syntax error",connection()->error));}function
create_database($h,$Pa){return
queries("CREATE DATABASE ".idf_escape($h).($Pa?" COLLATE ".q($Pa):""));}function
drop_databases(array$kb){$J=apply_queries("DROP DATABASE",$kb,'Adminer\idf_escape');restart_session();set_session("dbs",null);return$J;}function
rename_database($A,$Pa){$J=false;if(create_database($A,$Pa)){$qf=array();$bg=array();foreach(tables_list()as$Q=>$S){if($S=='VIEW')$bg[]=$Q;else$qf[]=$Q;}$J=(!$qf&&!$bg)||move_tables($qf,$bg,$A);drop_databases($J?array(DB):array());}return$J;}function
auto_increment(){$ra=" PRIMARY KEY";if($_GET["create"]!=""&&$_POST["auto_increment_col"]){foreach(indexes($_GET["create"])as$t){if(in_array($_POST["fields"][$_POST["auto_increment_col"]]["orig"],$t["columns"],true)){$ra="";break;}if($t["type"]=="PRIMARY")$ra=" UNIQUE";}}return" AUTO_INCREMENT$ra";}function
alter_table($Q,$A,array$l,array$dc,$Ta,$Eb,$Pa,$qa,$ie){$ia=array();foreach($l
as$k){if($k[1]){$i=$k[1][3];if(preg_match('~ GENERATED~',$i)){$k[1][3]=(connection()->flavor=='maria'?"":$k[1][2]);$k[1][2]=$i;}$ia[]=($Q!=""?($k[0]!=""?"CHANGE ".idf_escape($k[0]):"ADD"):" ")." ".implode($k[1]).($Q!=""?$k[2]:"");}else$ia[]="DROP ".idf_escape($k[0]);}$ia=array_merge($ia,$dc);$hf=($Ta!==null?" COMMENT=".q($Ta):"").($Eb?" ENGINE=".q($Eb):"").($Pa?" COLLATE ".q($Pa):"").($qa!=""?" AUTO_INCREMENT=$qa":"");if($ie){$je=array();if($ie["partition_by"]=='RANGE'||$ie["partition_by"]=='LIST'){foreach($ie["partition_names"]as$v=>$W){$X=$ie["partition_values"][$v];$je[]="\n  PARTITION ".idf_escape($W)." VALUES ".($ie["partition_by"]=='RANGE'?"LESS THAN":"IN").($X!=""?" ($X)":" MAXVALUE");}}$hf
.="\nPARTITION BY $ie[partition_by]($ie[partition])";if($je)$hf
.=" (".implode(",",$je)."\n)";elseif($ie["partitions"])$hf
.=" PARTITIONS ".(+$ie["partitions"]);}elseif($ie===null)$hf
.="\nREMOVE PARTITIONING";if($Q=="")return
queries("CREATE TABLE ".table($A)." (\n".implode(",\n",$ia)."\n)$hf");if($Q!=$A)$ia[]="RENAME TO ".table($A);if($hf)$ia[]=ltrim($hf);return($ia?queries("ALTER TABLE ".table($Q)."\n".implode(",\n",$ia)):true);}function
alter_indexes($Q,$ia){$Fa=array();foreach($ia
as$W)$Fa[]=($W[2]=="DROP"?"\nDROP INDEX ".idf_escape($W[1]):"\nADD $W[0] ".($W[0]=="PRIMARY"?"KEY ":"").($W[1]!=""?idf_escape($W[1])." ":"")."(".implode(", ",$W[2]).")");return
queries("ALTER TABLE ".table($Q).implode(",",$Fa));}function
truncate_tables(array$qf){return
apply_queries("TRUNCATE TABLE",$qf);}function
drop_views(array$bg){return
queries("DROP VIEW ".implode(", ",array_map('Adminer\table',$bg)));}function
drop_tables(array$qf){return
queries("DROP TABLE ".implode(", ",array_map('Adminer\table',$qf)));}function
move_tables(array$qf,array$bg,$rf){$Ge=array();foreach($qf
as$Q)$Ge[]=table($Q)." TO ".idf_escape($rf).".".table($Q);if(!$Ge||queries("RENAME TABLE ".implode(", ",$Ge))){$nb=array();foreach($bg
as$Q)$nb[table($Q)]=view($Q);connection()->select_db($rf);$h=idf_escape(DB);foreach($nb
as$A=>$ag){if(!queries("CREATE VIEW $A AS ".str_replace(" $h."," ",$ag["select"]))||!queries("DROP VIEW $h.$A"))return
false;}return
true;}return
false;}function
copy_tables(array$qf,array$bg,$rf){queries("SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO'");foreach($qf
as$Q){$A=($rf==DB?table("copy_$Q"):idf_escape($rf).".".table($Q));if(($_POST["overwrite"]&&!queries("\nDROP TABLE IF EXISTS $A"))||!queries("CREATE TABLE $A LIKE ".table($Q))||!queries("INSERT INTO $A SELECT * FROM ".table($Q)))return
false;foreach(get_rows("SHOW TRIGGERS LIKE ".q(addcslashes($Q,"%_\\")))as$K){$Gf=$K["Trigger"];if(!queries("CREATE TRIGGER ".($rf==DB?idf_escape("copy_$Gf"):idf_escape($rf).".".idf_escape($Gf))." $K[Timing] $K[Event] ON $A FOR EACH ROW\n$K[Statement];"))return
false;}}foreach($bg
as$Q){$A=($rf==DB?table("copy_$Q"):idf_escape($rf).".".table($Q));$ag=view($Q);if(($_POST["overwrite"]&&!queries("DROP VIEW IF EXISTS $A"))||!queries("CREATE VIEW $A AS $ag[select]"))return
false;}return
true;}function
trigger($A,$Q){if($A=="")return
array();$L=get_rows("SHOW TRIGGERS WHERE `Trigger` = ".q($A));return
reset($L);}function
triggers($Q){$J=array();foreach(get_rows("SHOW TRIGGERS LIKE ".q(addcslashes($Q,"%_\\")))as$K)$J[$K["Trigger"]]=array($K["Timing"],$K["Event"]);return$J;}function
trigger_options(){return
array("Timing"=>array("BEFORE","AFTER"),"Event"=>array("INSERT","UPDATE","DELETE"),"Type"=>array("FOR EACH ROW"),);}function
routine($A,$S){$l=get_rows("SELECT
	PARAMETER_NAME field,
	DATA_TYPE type,
	REGEXP_REPLACE(DTD_IDENTIFIER, '^[^(]+\\\\(?|\\\\)$', '') length,
	REGEXP_REPLACE(DTD_IDENTIFIER, '^[^ ]+ ', '') `unsigned`,
	1 `null`,
	DTD_IDENTIFIER full_type,
	PARAMETER_MODE `inout`,
	CHARACTER_SET_NAME collation
FROM information_schema.PARAMETERS
WHERE SPECIFIC_SCHEMA = DATABASE() AND ROUTINE_TYPE = '$S' AND SPECIFIC_NAME = ".q($A)."
ORDER BY ORDINAL_POSITION");$J=connection()->query("SELECT
	ROUTINE_COMMENT comment,
	CONCAT(IF(IS_DETERMINISTIC = 'YES', 'DETERMINISTIC\\n', ''), IF(SQL_DATA_ACCESS != 'CONTAINS SQL', CONCAT(SQL_DATA_ACCESS, '\\n'), ''), ROUTINE_DEFINITION) definition,
	'SQL' language
FROM information_schema.ROUTINES
WHERE ROUTINE_SCHEMA = DATABASE() AND ROUTINE_TYPE = '$S' AND ROUTINE_NAME = ".q($A))->fetch_assoc();if($l&&$l[0]['field']=='')$J['returns']=array_shift($l);$J['fields']=$l;return$J;}function
routines(){return
get_rows("SELECT SPECIFIC_NAME, ROUTINE_NAME, ROUTINE_TYPE, DTD_IDENTIFIER FROM information_schema.ROUTINES WHERE ROUTINE_SCHEMA = DATABASE()");}function
routine_languages(){return
array();}function
routine_id($A,array$K){return
idf_escape($A);}function
last_id($I){return
get_val("SELECT LAST_INSERT_ID()");}function
explain(Db$f,$H){return$f->query("EXPLAIN ".(min_version(5.1)&&!min_version(5.7)?"PARTITIONS ":"").$H);}function
found_rows(array$R,array$Z){return($Z||$R["Engine"]!="InnoDB"?null:$R["Rows"]);}function
create_sql($Q,$qa,$jf){$J=get_val("SHOW CREATE TABLE ".table($Q),1);if(!$qa)$J=preg_replace('~ AUTO_INCREMENT=\d+~','',$J);return$J;}function
truncate_sql($Q){return"TRUNCATE ".table($Q);}function
use_sql($jb,$jf=""){$A=idf_escape($jb);$J="";if(preg_match('~CREATE~',$jf)&&($bb=get_val("SHOW CREATE DATABASE $A",1))){set_utf8mb4($bb);if($jf=="DROP+CREATE")$J="DROP DATABASE IF EXISTS $A;\n";$J
.="$bb;\n";}return$J."USE $A";}function
trigger_sql($Q){$J="";foreach(get_rows("SHOW TRIGGERS LIKE ".q(addcslashes($Q,"%_\\")),null,"-- ")as$K)$J
.="\nCREATE TRIGGER ".idf_escape($K["Trigger"])." $K[Timing] $K[Event] ON ".table($K["Table"])." FOR EACH ROW\n$K[Statement];;\n";return$J;}function
show_variables(){return
get_rows("SHOW VARIABLES");}function
show_status(){return
get_rows("SHOW STATUS");}function
process_list(){return
get_rows("SHOW FULL PROCESSLIST");}function
convert_field(array$k){if(preg_match("~binary~",$k["type"]))return"HEX(".idf_escape($k["field"]).")";if($k["type"]=="bit")return"BIN(".idf_escape($k["field"])." + 0)";if(preg_match("~geometry|point|linestring|polygon~",$k["type"]))return(min_version(8)?"ST_":"")."AsWKT(".idf_escape($k["field"]).")";}function
unconvert_field(array$k,$J){if(preg_match("~binary~",$k["type"]))$J="UNHEX($J)";if($k["type"]=="bit")$J="CONVERT(b$J, UNSIGNED)";if(preg_match("~geometry|point|linestring|polygon~",$k["type"])){$te=(min_version(8)?"ST_":"");$J=$te."GeomFromText($J, $te"."SRID($k[field]))";}return$J;}function
support($Ub){return
preg_match('~^(comment|columns|copy|database|drop_col|dump|indexes|kill|privileges|move_col|procedure|processlist|routine|sql|status|table|trigger|variables|view'.(min_version(5.1)?'|event':'').(min_version(8)?'|descidx':'').(min_version('8.0.16','10.2.1')?'|check':'').')$~',$Ub);}function
kill_process($r){return
queries("KILL ".number($r));}function
connection_id(){return"SELECT CONNECTION_ID()";}function
max_connections(){return
get_val("SELECT @@max_connections");}function
types(){return
array();}function
type_values($r){return"";}function
schemas(){return
array();}function
get_schema(){return"";}function
set_schema($Me,$g=null){return
true;}}define('Adminer\JUSH',Driver::$jush);define('Adminer\SERVER',"".$_GET[DRIVER]);define('Adminer\DB',"$_GET[db]");define('Adminer\ME',preg_replace('~\?.*~','',relative_uri()).'?'.(sid()?SID.'&':'').(SERVER!==null?DRIVER."=".urlencode(SERVER).'&':'').($_GET["ext"]?"ext=".urlencode($_GET["ext"]).'&':'').(isset($_GET["username"])?"username=".urlencode($_GET["username"]).'&':'').(DB!=""?'db='.urlencode(DB).'&'.(isset($_GET["ns"])?"ns=".urlencode($_GET["ns"])."&":""):''));function
page_header($xf,$j="",$Da=array(),$yf=""){page_headers();if(is_ajax()&&$j){page_messages($j);exit;}if(!ob_get_level())ob_start('ob_gzhandler',4096);$zf=$xf.($yf!=""?": $yf":"");$_f=strip_tags($zf.(SERVER!=""&&SERVER!="localhost"?h(" - ".SERVER):"")." - ".adminer()->name());echo'<!DOCTYPE html>
<html lang="',LANG,'" dir="',lang(54),'">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="robots" content="noindex">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>',$_f,'</title>
<link rel="stylesheet" href="',h(preg_replace("~\\?.*~","",ME)."?file=default.css&version=5.4.4"),'">
';$fb=adminer()->css();if(is_int(key($fb)))$fb=array_fill_keys($fb,'light');$wc=in_array('light',$fb)||in_array('',$fb);$tc=in_array('dark',$fb)||in_array('',$fb);$hb=($wc?($tc?null:false):($tc?:null));$Ad=" media='(prefers-color-scheme: dark)'";if($hb!==false)echo"<link rel='stylesheet'".($hb?"":$Ad)." href='".h(preg_replace("~\\?.*~","",ME)."?file=dark.css&version=5.4.4")."'>\n";echo"<meta name='color-scheme' content='".($hb===null?"light dark":($hb?"dark":"light"))."'>\n",script_src(preg_replace("~\\?.*~","",ME)."?file=functions.js&version=5.4.4");if(adminer()->head($hb))echo"<link rel='icon' href='data:image/gif;base64,R0lGODlhEAAQAJEAAAQCBPz+/PwCBAROZCH5BAEAAAAALAAAAAAQABAAAAI2hI+pGO1rmghihiUdvUBnZ3XBQA7f05mOak1RWXrNq5nQWHMKvuoJ37BhVEEfYxQzHjWQ5qIAADs='>\n","<link rel='apple-touch-icon' href='".h(preg_replace("~\\?.*~","",ME)."?file=logo.png&version=5.4.4")."'>\n";foreach($fb
as$Tf=>$Gd){$b=($Gd=='dark'&&!$hb?$Ad:($Gd=='light'&&$tc?" media='(prefers-color-scheme: light)'":""));echo"<link rel='stylesheet'$b href='".h($Tf)."'>\n";}echo"\n<body class='".lang(54)." nojs";adminer()->bodyClass();echo"'>\n";$m=get_temp_dir()."/adminer.version";echo
script("mixin(document.body, {onkeydown: bodyKeydown, onclick: bodyClick".(isset($_COOKIE["adminer_version"])?"":", onload: partial(verifyVersion, '".VERSION."')")."});
document.body.classList.replace('nojs', 'js');
const offlineMessage = '".js_escape(lang(55))."';
const thousandsSeparator = '".js_escape(lang(4))."';"),"<div id='help' class='jush-".JUSH." jsonly hidden'></div>\n",script("mixin(qs('#help'), {onmouseover: () => { helpOpen = 1; }, onmouseout: helpMouseout});"),"<div id='content'>\n","<span id='menuopen' class='jsonly'>".icon("move","","menu","")."</span>".script("qs('#menuopen').onclick = event => { qs('#foot').classList.toggle('foot'); event.stopPropagation(); }");if($Da!==null){$x=substr(preg_replace('~\b(username|db|ns)=[^&]*&~','',ME),0,-1);echo'<p id="breadcrumb"><a href="'.h($x?:".").'">'.get_driver(DRIVER).'</a> » ';$x=substr(preg_replace('~\b(db|ns)=[^&]*&~','',ME),0,-1);$N=adminer()->serverName(SERVER);$N=($N!=""?$N:lang(56));if($Da===false)echo"$N\n";else{echo"<a href='".h($x)."' accesskey='1' title='Alt+Shift+1'>$N</a> » ";if($_GET["ns"]!=""||(DB!=""&&is_array($Da)))echo'<a href="'.h($x."&db=".urlencode(DB).(support("scheme")?"&ns=":"")).'">'.h(DB).'</a> » ';if(is_array($Da)){if($_GET["ns"]!="")echo'<a href="'.h(substr(ME,0,-1)).'">'.h($_GET["ns"]).'</a> » ';foreach($Da
as$v=>$W){$pb=(is_array($W)?$W[1]:h($W));if($pb!="")echo"<a href='".h(ME."$v=").urlencode(is_array($W)?$W[0]:$W)."'>$pb</a> » ";}}echo"$xf\n";}}echo"<h2>$zf</h2>\n","<div id='ajaxstatus' class='jsonly hidden'></div>\n";restart_session();page_messages($j);$kb=&get_session("dbs");if(DB!=""&&$kb&&!in_array(DB,$kb,true))$kb=null;stop_session();define('Adminer\PAGE_HEADER',1);}function
page_headers(){header("Content-Type: text/html; charset=utf-8");header("Cache-Control: no-cache");header("X-Frame-Options: deny");header("X-XSS-Protection: 0");header("X-Content-Type-Options: nosniff");header("Referrer-Policy: origin-when-cross-origin");foreach(adminer()->csp(csp())as$eb){$xc=array();foreach($eb
as$v=>$W)$xc[]="$v $W";header("Content-Security-Policy: ".implode("; ",$xc));}adminer()->headers();}function
csp(){return
array(array("script-src"=>"'self' 'unsafe-inline' 'nonce-".get_nonce()."' 'strict-dynamic'","connect-src"=>"'self' https://www.adminer.org","frame-src"=>"'none'","object-src"=>"'none'","base-uri"=>"'none'","form-action"=>"'self'",),);}function
get_nonce(){static$Od;if(!$Od)$Od=base64_encode(rand_string());return$Od;}function
page_messages($j){$Sf=preg_replace('~^[^?]*~','',$_SERVER["REQUEST_URI"]);$Dd=idx($_SESSION["messages"],$Sf);if($Dd){echo"<div class='message'>".implode("</div>\n<div class='message'>",$Dd)."</div>".script("messagesPrint();");unset($_SESSION["messages"][$Sf]);}if($j)echo"<div class='error'>$j</div>\n";if(adminer()->error)echo"<div class='error'>".adminer()->error."</div>\n";}function
page_footer($Fd=""){echo"</div>\n\n<div id='foot' class='foot'>\n<div id='menu'>\n";adminer()->navigation($Fd);echo"</div>\n";if($Fd!="auth")echo'<form action="" method="post">
<p class="logout">
<span>',h($_GET["username"])."\n",'</span>
<input type="submit" name="logout" value="',lang(57),'" id="logout">
',input_token(),'</form>
';echo"</div>\n\n",script("setupSubmitHighlight(document);");}function
int32($_){while($_>=2147483648)$_-=4294967296;while($_<=-2147483649)$_+=4294967296;return(int)$_;}function
long2str(array$V,$dg){$Le='';foreach($V
as$W)$Le
.=pack('V',$W);if($dg)return
substr($Le,0,end($V));return$Le;}function
str2long($Le,$dg){$V=array_values(unpack('V*',str_pad($Le,4*ceil(strlen($Le)/4),"\0")));if($dg)$V[]=strlen($Le);return$V;}function
xxtea_mx($ig,$hg,$mf,$bd){return
int32((($ig>>5&0x7FFFFFF)^$hg<<2)+(($hg>>3&0x1FFFFFFF)^$ig<<4))^int32(($mf^$hg)+($bd^$ig));}function
encrypt_string($if,$v){if($if=="")return"";$v=array_values(unpack("V*",pack("H*",md5($v))));$V=str2long($if,true);$_=count($V)-1;$ig=$V[$_];$hg=$V[0];$ye=floor(6+52/($_+1));$mf=0;while($ye-->0){$mf=int32($mf+0x9E3779B9);$xb=$mf>>2&3;for($de=0;$de<$_;$de++){$hg=$V[$de+1];$Jd=xxtea_mx($ig,$hg,$mf,$v[$de&3^$xb]);$ig=int32($V[$de]+$Jd);$V[$de]=$ig;}$hg=$V[0];$Jd=xxtea_mx($ig,$hg,$mf,$v[$de&3^$xb]);$ig=int32($V[$_]+$Jd);$V[$_]=$ig;}return
long2str($V,false);}function
decrypt_string($if,$v){if($if=="")return"";if(!$v)return
false;$v=array_values(unpack("V*",pack("H*",md5($v))));$V=str2long($if,false);$_=count($V)-1;$ig=$V[$_];$hg=$V[0];$ye=floor(6+52/($_+1));$mf=int32($ye*0x9E3779B9);while($mf){$xb=$mf>>2&3;for($de=$_;$de>0;$de--){$ig=$V[$de-1];$Jd=xxtea_mx($ig,$hg,$mf,$v[$de&3^$xb]);$hg=int32($V[$de]-$Jd);$V[$de]=$hg;}$ig=$V[$_];$Jd=xxtea_mx($ig,$hg,$mf,$v[$de&3^$xb]);$hg=int32($V[0]-$Jd);$V[0]=$hg;$mf=int32($mf-0x9E3779B9);}return
long2str($V,true);}$G=array();if($_COOKIE["adminer_permanent"]){foreach(explode(" ",$_COOKIE["adminer_permanent"])as$W){list($v)=explode(":",$W);$G[$v]=$W;}}function
add_invalid_login(){$xa=get_temp_dir()."/adminer-invalid";foreach(glob("$xa*")?:array($xa)as$m){$n=file_open_lock($m);if($n)break;}if(!$n)$n=file_open_lock("$xa-".rand_string());if(!$n)return;$Tc=json_decode(stream_get_contents($n),true);$vf=time();if($Tc){foreach($Tc
as$Uc=>$W){if($W[0]<$vf)unset($Tc[$Uc]);}}$Sc=&$Tc[adminer()->bruteForceKey()];if(!$Sc)$Sc=array($vf+30*60,0);$Sc[1]++;file_write_unlock($n,json_encode($Tc));}function
check_invalid_login(array&$G){$Tc=array();foreach(glob(get_temp_dir()."/adminer-invalid*")as$m){$n=file_open_lock($m);if($n){$Tc=json_decode(stream_get_contents($n),true);file_unlock($n);break;}}$Sc=idx($Tc,adminer()->bruteForceKey(),array());$Nd=($Sc[1]>29?$Sc[0]-time():0);if($Nd>0)auth_error(lang(58,ceil($Nd/60)),$G);}$pa=$_POST["auth"];if($pa){session_regenerate_id();$Y=$pa["driver"];$N=$pa["server"];$U=$pa["username"];$F=(string)$pa["password"];$h=$pa["db"];set_password($Y,$N,$U,$F);$_SESSION["db"][$Y][$N][$U][$h]=true;if($pa["permanent"]){$v=implode("-",array_map('base64_encode',array($Y,$N,$U,$h)));$we=adminer()->permanentLogin(true);$G[$v]="$v:".base64_encode($we?encrypt_string($F,$we):"");cookie("adminer_permanent",implode(" ",$G));}if(count($_POST)==1||DRIVER!=$Y||SERVER!=$N||$_GET["username"]!==$U||DB!=$h)redirect(auth_url($Y,$N,$U,$h));}elseif($_POST["logout"]&&(!$_SESSION["token"]||verify_token())){foreach(array("pwds","db","dbs","queries")as$v)set_session($v,null);unset_permanent($G);redirect(substr(preg_replace('~\b(username|db|ns)=[^&]*&~','',ME),0,-1),lang(59).' '.lang(60));}elseif($G&&!$_SESSION["pwds"]){session_regenerate_id();$we=adminer()->permanentLogin();foreach($G
as$v=>$W){list(,$Ka)=explode(":",$W);list($Y,$N,$U,$h)=array_map('base64_decode',explode("-",$v));set_password($Y,$N,$U,decrypt_string(base64_decode($Ka),$we));$_SESSION["db"][$Y][$N][$U][$h]=true;}}function
unset_permanent(array&$G){foreach($G
as$v=>$W){list($Y,$N,$U,$h)=array_map('base64_decode',explode("-",$v));if($Y==DRIVER&&$N==SERVER&&$U==$_GET["username"]&&$h==DB)unset($G[$v]);}cookie("adminer_permanent",implode(" ",$G));}function
auth_error($j,array&$G){$We=session_name();if(isset($_GET["username"])){header("HTTP/1.1 403 Forbidden");if(($_COOKIE[$We]||$_GET[$We])&&!$_SESSION["token"])$j=lang(61);else{restart_session();add_invalid_login();$F=get_password();if($F!==null){if($F===false)$j
.=($j?'<br>':'').lang(62,target_blank(),'<code>permanentLogin()</code>');set_password(DRIVER,SERVER,$_GET["username"],null);}unset_permanent($G);}}if(!$_COOKIE[$We]&&$_GET[$We]&&ini_bool("session.use_only_cookies"))$j=lang(63);$ge=session_get_cookie_params();cookie("adminer_key",($_COOKIE["adminer_key"]?:rand_string()),$ge["lifetime"]);if(!$_SESSION["token"])$_SESSION["token"]=rand(1,1e6);page_header(lang(27),$j,null);echo"<form action='' method='post'>\n","<div>";if(hidden_fields($_POST,array("auth")))echo"<p class='message'>".lang(64)."\n";echo"</div>\n";adminer()->loginForm();echo"</form>\n";page_footer("auth");exit;}if(isset($_GET["username"])&&!class_exists('Adminer\Db')){unset($_SESSION["pwds"][DRIVER]);unset_permanent($G);page_header(lang(65),lang(66,implode(", ",Driver::$extensions)),false);page_footer("auth");exit;}$f='';if(isset($_GET["username"])&&is_string(get_password())){list($Cc,$pe)=host_port(SERVER);if(!preg_match('~^[-a-z0-9.:]*$~i',$Cc))auth_error(lang(67),$G);if(preg_match('~^\s*([-+]?\d+)~',$pe,$z)&&($z[1]<1024||$z[1]>65535))auth_error(lang(68),$G);check_invalid_login($G);$db=adminer()->credentials();$f=Driver::connect($db[0],$db[1],$db[2]);if(is_object($f)){Db::$instance=$f;Driver::$instance=new
Driver($f);if($f->flavor)save_settings(array("vendor-".DRIVER."-".SERVER=>get_driver(DRIVER)));}}$od=null;if(!is_object($f)||($od=adminer()->login($_GET["username"],get_password()))!==true){$j=(is_string($f)?nl_br(h($f)):(is_string($od)?$od:lang(69))).(preg_match('~^ | $~',get_password())?'<br>'.lang(70):'');auth_error($j,$G);}if($_POST["logout"]&&$_SESSION["token"]&&!verify_token()){page_header(lang(57),lang(71));page_footer("db");exit;}if(!$_SESSION["token"])$_SESSION["token"]=rand(1,1e6);stop_session(true);if($pa&&$_POST["token"])$_POST["token"]=get_token();$j='';if($_POST){if(!verify_token()){$Nc="max_input_vars";$zd=ini_get($Nc);if(extension_loaded("suhosin")){foreach(array("suhosin.request.max_vars","suhosin.post.max_vars")as$v){$W=ini_get($v);if($W&&(!$zd||$W<$zd)){$Nc=$v;$zd=$W;}}}$j=(!$_POST["token"]&&$zd?lang(72,"'$Nc'"):lang(71).' '.lang(73));}}elseif($_SERVER["REQUEST_METHOD"]=="POST"){$j=lang(74,"'post_max_size'");if(isset($_GET["sql"]))$j
.=' '.lang(75);}function
doc_link(array$ke,$sf=""){return"";}function
email_header($xc){return"=?UTF-8?B?".base64_encode($xc)."?=";}function
send_mail($Ab,$kf,$Cd,$kc="",array$Xb=array()){$Hb=PHP_EOL;$Cd=str_replace("\n",$Hb,wordwrap(str_replace("\r","","$Cd\n")));$Ca=uniqid("boundary");$oa="";foreach((array)$Xb["error"]as$v=>$W){if(!$W)$oa
.="--$Ca$Hb"."Content-Type: ".str_replace("\n","",$Xb["type"][$v]).$Hb."Content-Disposition: attachment; filename=\"".preg_replace('~["\n]~','',$Xb["name"][$v])."\"$Hb"."Content-Transfer-Encoding: base64$Hb$Hb".chunk_split(base64_encode(file_get_contents($Xb["tmp_name"][$v])),76,$Hb).$Hb;}$za="";$yc="Content-Type: text/plain; charset=utf-8$Hb"."Content-Transfer-Encoding: 8bit";if($oa){$oa
.="--$Ca--$Hb";$za="--$Ca$Hb$yc$Hb$Hb";$yc="Content-Type: multipart/mixed; boundary=\"$Ca\"";}$yc
.=$Hb."MIME-Version: 1.0$Hb"."X-Mailer: Adminer Editor".($kc?$Hb."From: ".str_replace("\n","",$kc):"");return
mail($Ab,email_header($kf),$za.$Cd.$oa,$yc);}function
like_bool(array$k){return$k["type"]=="bool"||(preg_match('~bit|tinyint~',$k["type"])&&$k["length"]==1);}connection()->select_db(adminer()->database());adminer()->afterConnect();add_driver(DRIVER,lang(27));if(isset($_GET["select"])&&($_POST["edit"]||$_POST["clone"])&&!$_POST["save"])$_GET["edit"]=$_GET["select"];if(isset($_GET["download"])){$a=$_GET["download"];$l=fields($a);header("Content-Type: application/octet-stream");header("Content-Disposition: attachment; filename=".friendly_url("$a-".implode("_",$_GET["where"])).".".friendly_url($_GET["field"]));$M=array(idf_escape($_GET["field"]));$I=driver()->select($a,$M,array(where($_GET,$l)),$M);$K=($I?$I->fetch_row():array());echo
driver()->value($K[0],$l[$_GET["field"]]);exit;}elseif(isset($_GET["edit"])){$a=$_GET["edit"];$l=fields($a);$Z=(isset($_GET["select"])?($_POST["check"]&&count($_POST["check"])==1?where_check($_POST["check"][0],$l):""):where($_GET,$l));$T=(isset($_GET["select"])?$_POST["edit"]:$Z);foreach($l
as$A=>$k){if((!$T&&!isset($k["privileges"]["insert"]))||adminer()->fieldName($k)=="")unset($l[$A]);}if($_POST&&!$j&&!isset($_GET["select"])){$y=$_POST["referer"];if($_POST["insert"])$y=($T?null:$_SERVER["REQUEST_URI"]);elseif(!preg_match('~^.+&select=.+$~',$y))$y=ME."select=".urlencode($a);$u=indexes($a);$Lf=unique_array($_GET["where"],$u);$Ae="\nWHERE $Z";if(isset($_POST["delete"]))queries_redirect($y,lang(76),driver()->delete($a,$Ae,$Lf?0:1));else{$O=array();foreach($l
as$A=>$k){$W=process_input($k);if($W!==false&&$W!==null)$O[idf_escape($A)]=$W;}if($T){if(!$O)redirect($y);queries_redirect($y,lang(77),driver()->update($a,$O,$Ae,$Lf?0:1));if(is_ajax()){page_headers();page_messages($j);exit;}}else{$I=driver()->insert($a,$O);$jd=($I?last_id($I):0);queries_redirect($y,lang(78,($jd?" $jd":"")),$I);}}}$K=null;if($Z){$M=array();foreach($l
as$A=>$k){if(isset($k["privileges"]["select"])){$ma=($_POST["clone"]&&$k["auto_increment"]?"''":convert_field($k));$M[]=($ma?"$ma AS ":"").idf_escape($A);}}$K=array();if(!support("table"))$M=array("*");if($M){$I=driver()->select($a,$M,array($Z),$M,array(),(isset($_GET["select"])?2:1));if(!$I)$j=error();else{$K=$I->fetch_assoc();if(!$K)$K=false;}if(isset($_GET["select"])&&(!$K||$I->fetch_assoc()))$K=null;}}if(!support("table")&&!$l){if(!$Z){$I=driver()->select($a,array("*"),array(),array("*"));$K=($I?$I->fetch_assoc():false);if(!$K)$K=array(driver()->primary=>"");}if($K){foreach($K
as$v=>$W){if(!$Z)$K[$v]=null;$l[$v]=array("field"=>$v,"null"=>($v!=driver()->primary),"auto_increment"=>($v==driver()->primary));}}}if($_POST["save"])$K=(array)$_POST["fields"]+($K?$K:array());edit_form($a,$l,$K,$T,$j);}elseif(isset($_GET["select"])){$a=$_GET["select"];$R=table_status1($a);$u=indexes($a);$l=fields($a);$hc=column_foreign_keys($a);$Rd=$R["Oid"];$fa=get_settings("adminer_import");$Ke=array();$d=array();$Oe=array();$Zd=array();$tf="";foreach($l
as$v=>$k){$A=adminer()->fieldName($k);$Kd=html_entity_decode(strip_tags($A),ENT_QUOTES);if(isset($k["privileges"]["select"])&&$A!=""){$d[$v]=$Kd;if(is_shortable($k))$tf=adminer()->selectLengthProcess();}if(isset($k["privileges"]["where"])&&$A!="")$Oe[$v]=$Kd;if(isset($k["privileges"]["order"])&&$A!="")$Zd[$v]=$Kd;$Ke+=$k["privileges"];}list($M,$p)=adminer()->selectColumnsProcess($d,$u);$M=array_unique($M);$p=array_unique($p);$Vc=count($p)<count($M);$Z=adminer()->selectSearchProcess($l,$u);$D=adminer()->selectOrderProcess($l,$u);$w=adminer()->selectLimitProcess();if($_GET["val"]&&is_ajax()){header("Content-Type: text/plain; charset=utf-8");foreach($_GET["val"]as$Mf=>$K){$ma=convert_field($l[key($K)]);$M=array($ma?:idf_escape(key($K)));$Z[]=where_check($Mf,$l);$J=driver()->select($a,$M,$Z,$M);if($J)echo
first($J->fetch_row());}exit;}$ue=$Of=array();foreach($u
as$t){if($t["type"]=="PRIMARY"){$ue=array_flip($t["columns"]);$Of=($M?$ue:array());foreach($Of
as$v=>$W){if(in_array(idf_escape($v),$M))unset($Of[$v]);}break;}}if($Rd&&!$ue){$ue=$Of=array($Rd=>0);$u[]=array("type"=>"PRIMARY","columns"=>array($Rd));}if($_POST&&!$j){$fg=$Z;if(!$_POST["all"]&&is_array($_POST["check"])){$Ja=array();foreach($_POST["check"]as$Ha)$Ja[]=where_check($Ha,$l);$fg[]="((".implode(") OR (",$Ja)."))";}$fg=($fg?"\nWHERE ".implode(" AND ",$fg):"");if($_POST["export"]){save_settings(array("output"=>$_POST["output"],"format"=>$_POST["format"]),"adminer_import");dump_headers($a);adminer()->dumpTable($a,"");$kc=($M?implode(", ",$M):"*").convert_fields($d,$l,$M)."\nFROM ".table($a);$qc=($p&&$Vc?"\nGROUP BY ".implode(", ",$p):"").($D?"\nORDER BY ".implode(", ",$D):"");$H="SELECT $kc$fg$qc";if(is_array($_POST["check"])&&!$ue){$Kf=array();foreach($_POST["check"]as$W)$Kf[]="(SELECT".limit($kc,"\nWHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($W,$l).$qc,1).")";$H=implode(" UNION ALL ",$Kf);}adminer()->dumpData($a,"table",$H);adminer()->dumpFooter();exit;}if(!adminer()->selectEmailProcess($Z,$hc)){if($_POST["save"]||$_POST["delete"]){$I=true;$ga=0;$O=array();if(!$_POST["delete"]){foreach($l
as$A=>$W){$s=bracket_escape($A);if(isset($_POST["fields"][$s])||$_FILES["fields-$s"]){$W=process_input($l[$A]);if($W!==null&&($_POST["clone"]||$W!==false))$O[idf_escape($A)]=($W!==false?$W:idf_escape($A));}}}if($_POST["delete"]||$O){$H=($_POST["clone"]?"INTO ".table($a)." (".implode(", ",array_keys($O)).")\nSELECT ".implode(", ",$O)."\nFROM ".table($a):"");if($_POST["all"]||($ue&&is_array($_POST["check"]))||$Vc){$I=($_POST["delete"]?driver()->delete($a,$fg):($_POST["clone"]?queries("INSERT $H$fg".driver()->insertReturning($a)):driver()->update($a,$O,$fg)));$ga=connection()->affected_rows;if(is_object($I))$ga+=$I->num_rows;}else{foreach((array)$_POST["check"]as$W){$eg="\nWHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($W,$l);$I=($_POST["delete"]?driver()->delete($a,$eg,1):($_POST["clone"]?queries("INSERT".limit1($a,$H,$eg)):driver()->update($a,$O,$eg,1)));if(!$I)break;$ga+=connection()->affected_rows;}}}$Cd=lang(79,$ga);if($_POST["clone"]&&$I&&$ga==1){$jd=last_id($I);if($jd)$Cd=lang(78," $jd");}queries_redirect(remove_from_uri($_POST["all"]&&$_POST["delete"]?"page":""),$Cd,$I);if(!$_POST["delete"]){$re=(array)$_POST["fields"];edit_form($a,array_intersect_key($l,$re),$re,!$_POST["clone"],$j);page_footer();exit;}}elseif(!$_POST["import"]){if(!$_POST["val"])$j=lang(80);else{$I=true;$ga=0;foreach($_POST["val"]as$Mf=>$K){$O=array();foreach($K
as$v=>$W){$v=bracket_escape($v,true);$O[idf_escape($v)]=(preg_match('~char|text~',$l[$v]["type"])||$W!=""?adminer()->processInput($l[$v],$W):"NULL");}$I=driver()->update($a,$O," WHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($Mf,$l),($Vc||$ue?0:1)," ");if(!$I)break;$ga+=connection()->affected_rows;}queries_redirect(remove_from_uri(),lang(79,$ga),$I);}}elseif(!is_string($Wb=get_file("csv_file",true)))$j=upload_error($Wb);elseif(!preg_match('~~u',$Wb))$j=lang(81);else{save_settings(array("output"=>$fa["output"],"format"=>$_POST["separator"]),"adminer_import");$I=true;$Ra=array_keys($l);preg_match_all('~(?>"[^"]*"|[^"\r\n]+)+~',$Wb,$td);$ga=count($td[0]);driver()->begin();$Te=($_POST["separator"]=="csv"?",":($_POST["separator"]=="tsv"?"\t":";"));$L=array();foreach($td[0]as$v=>$W){preg_match_all("~((?>\"[^\"]*\")+|[^$Te]*)$Te~",$W.$Te,$ud);if(!$v&&!array_diff($ud[1],$Ra)){$Ra=$ud[1];$ga--;}else{$O=array();foreach($ud[1]as$q=>$Oa)$O[idf_escape($Ra[$q])]=($Oa==""&&$l[$Ra[$q]]["null"]?"NULL":q(preg_match('~^".*"$~s',$Oa)?str_replace('""','"',substr($Oa,1,-1)):$Oa));$L[]=$O;}}$I=(!$L||driver()->insertUpdate($a,$L,$ue));if($I)driver()->commit();queries_redirect(remove_from_uri("page"),lang(82,$ga),$I);driver()->rollback();}}}$pf=adminer()->tableName($R);if(is_ajax()){page_headers();ob_start();}else
page_header(lang(40).": $pf",$j);$O=null;if(isset($Ke["insert"])||!support("table")){$ge=array();foreach((array)$_GET["where"]as$W){if(isset($hc[$W["col"]])&&count($hc[$W["col"]])==1&&($W["op"]=="="||(!$W["op"]&&(is_array($W["val"])||!preg_match('~[_%]~',$W["val"])))))$ge["set"."[".bracket_escape($W["col"])."]"]=$W["val"];}$O=$ge?"&".http_build_query($ge):"";}adminer()->selectLinks($R,$O);if(!$d&&support("table"))echo"<p class='error'>".lang(83).($l?".":": ".error())."\n";else{echo"<form action='' id='form'>\n","<div style='display: none;'>";hidden_fields_get();echo(DB!=""?input_hidden("db",DB).(isset($_GET["ns"])?input_hidden("ns",$_GET["ns"]):""):""),input_hidden("select",$a),"</div>\n";adminer()->selectColumnsPrint($M,$d);adminer()->selectSearchPrint($Z,$Oe,$u);adminer()->selectOrderPrint($D,$Zd,$u);adminer()->selectLimitPrint($w);adminer()->selectLengthPrint($tf);adminer()->selectActionPrint($u);echo"</form>\n";$E=$_GET["page"];$jc=null;if($E=="last"){$jc=get_val(count_rows($a,$Z,$Vc,$p));$E=floor(max(0,intval($jc)-1)/$w);}$Pe=$M;$pc=$p;if(!$Pe){$Pe[]="*";$Za=convert_fields($d,$l,$M);if($Za)$Pe[]=substr($Za,2);}foreach($M
as$v=>$W){$k=$l[idf_unescape($W)];if($k&&($ma=convert_field($k)))$Pe[$v]="$ma AS $W";}if(!$Vc&&$Of){foreach($Of
as$v=>$W){$Pe[]=idf_escape($v);if($pc)$pc[]=idf_escape($v);}}$I=driver()->select($a,$Pe,$Z,$pc,$D,$w,$E,true);if(!$I)echo"<p class='error'>".error()."\n";else{if(JUSH=="mssql"&&$E)$I->seek($w*$E);$Cb=array();echo"<form action='' method='post' enctype='multipart/form-data'>\n";$L=array();while($K=$I->fetch_assoc()){if($E&&JUSH=="oracle")unset($K["RNUM"]);$L[]=$K;}if($_GET["page"]!="last"&&$w&&$p&&$Vc&&JUSH=="sql")$jc=get_val(" SELECT FOUND_ROWS()");if(!$L)echo"<p class='message'>".lang(14)."\n";else{$wa=adminer()->backwardKeys($a,$pf);echo"<div class='scrollable'>","<table id='table' class='nowrap checkable odds'>",script("mixin(qs('#table'), {onclick: tableClick, ondblclick: partialArg(tableClick, true), onkeydown: editingKeydown});"),"<thead><tr>".(!$p&&$M?"":"<td><input type='checkbox' id='all-page' class='jsonly'>".script("qs('#all-page').onclick = partial(formCheck, /check/);","")." <a href='".h($_GET["modify"]?remove_from_uri("modify"):$_SERVER["REQUEST_URI"]."&modify=1")."'>".lang(84)."</a>");$Ld=array();$mc=array();reset($M);$Ce=1;foreach($L[0]as$v=>$W){if(!isset($Of[$v])){$W=idx($_GET["columns"],key($M))?:array();$k=$l[$M?($W?$W["col"]:current($M)):$v];$A=($k?adminer()->fieldName($k,$Ce):($W["fun"]?"*":h($v)));if($A!=""){$Ce++;$Ld[$v]=$A;$c=idf_escape($v);$Dc=remove_from_uri('(order|desc)[^=]*|page').'&order%5B0%5D='.urlencode($v);$pb="&desc%5B0%5D=1";echo"<th id='th[".h(bracket_escape($v))."]'>".script("mixin(qsl('th'), {onmouseover: partial(columnMouse), onmouseout: partial(columnMouse, ' hidden')});","");$lc=apply_sql_function($W["fun"],$A);$bf=isset($k["privileges"]["order"])||$lc!=$A;echo($bf?"<a href='".h($Dc.($D[0]==$c||$D[0]==$v?$pb:''))."'>$lc</a>":$lc);$Bd=($bf?"<a href='".h($Dc.$pb)."' title='".lang(85)."' class='text'> ↓</a>":'');if(!$W["fun"]&&isset($k["privileges"]["where"])){$Bd
.='<a href="#fieldset-search" title="'.lang(34).'" class="text jsonly"> =</a>';$Bd
.=script("qsl('a').onclick = partial(selectSearch, '".js_escape($v)."');");}echo($Bd?"<span class='column hidden'>$Bd</span>":"");}$mc[$v]=$W["fun"];next($M);}}$md=array();if($_GET["modify"]){foreach($L
as$K){foreach($K
as$v=>$W)$md[$v]=max($md[$v],min(40,strlen(utf8_decode($W))));}}echo($wa?"<th>".lang(86):"")."</thead>\n";if(is_ajax())ob_end_clean();foreach(adminer()->rowDescriptions($L,$hc)as$_=>$K){$Lf=unique_array($L[$_],$u);if(!$Lf){$Lf=array();reset($M);foreach($L[$_]as$v=>$W){if(!preg_match('~^(COUNT|AVG|GROUP_CONCAT|MAX|MIN|SUM)\(~',current($M)))$Lf[$v]=$W;next($M);}}$Mf="";foreach($Lf
as$v=>$W){$k=(array)$l[$v];if((JUSH=="sql"||JUSH=="pgsql")&&preg_match('~char|text|enum|set~',$k["type"])&&strlen($W)>64){$v=(strpos($v,'(')?$v:idf_escape($v));$v="MD5(".(JUSH!='sql'||preg_match("~^utf8~",$k["collation"])?$v:"CONVERT($v USING ".charset(connection()).")").")";$W=md5($W);}$Mf
.="&".($W!==null?urlencode("where[".bracket_escape($v)."]")."=".urlencode($W===false?"f":$W):"null%5B%5D=".urlencode($v));}echo"<tr>".(!$p&&$M?"":"<td>".checkbox("check[]",substr($Mf,1),in_array(substr($Mf,1),(array)$_POST["check"])).($Vc||information_schema(DB)?"":" <a href='".h(ME."edit=".urlencode($a).$Mf)."' class='edit'>".lang(87)."</a>"));reset($M);foreach($K
as$v=>$W){if(isset($Ld[$v])){$c=current($M);$k=(array)$l[$v];if($W!=""&&(!isset($Cb[$v])||$Cb[$v]!=""))$Cb[$v]=(is_mail($W)?$Ld[$v]:"");$x="";if(is_blob($k)&&$W!="")$x=ME.'download='.urlencode($a).'&field='.urlencode($v).$Mf;if(!$x&&$W!==null){foreach((array)$hc[$v]as$gc){if(count($hc[$v])==1||end($gc["source"])==$v){$x="";foreach($gc["source"]as$q=>$cf)$x
.=where_link($q,$gc["target"][$q],$L[$_][$cf]);$x=($gc["db"]!=""?preg_replace('~([?&]db=)[^&]+~','\1'.urlencode($gc["db"]),ME):ME).'select='.urlencode($gc["table"]).$x;if($gc["ns"])$x=preg_replace('~([?&]ns=)[^&]+~','\1'.urlencode($gc["ns"]),$x);if(count($gc["source"])==1)break;}}}if($c=="COUNT(*)"){$x=ME."select=".urlencode($a);$q=0;foreach((array)$_GET["where"]as$V){if(!array_key_exists($V["col"],$Lf))$x
.=where_link($q++,$V["col"],$V["val"],$V["op"]);}foreach($Lf
as$bd=>$V)$x
.=where_link($q++,$bd,$V);}$Ec=select_value($W,$x,$k,$tf);$r=h("val[$Mf][".bracket_escape($v)."]");$se=idx(idx($_POST["val"],$Mf),bracket_escape($v));$T=idx($k["privileges"],"update");$zb=!is_array($K[$v])&&is_utf8($Ec)&&$L[$_][$v]==$K[$v]&&!$mc[$v]&&!$k["generated"]&&$T;$S=(preg_match('~^(AVG|MIN|MAX)\((.+)\)~',$c,$z)?$l[idf_unescape($z[2])]["type"]:$k["type"]);$sf=preg_match('~text|json|lob~',$S);$Wc=preg_match(number_type(),$S)||preg_match('~^(CHAR_LENGTH|ROUND|FLOOR|CEIL|TIME_TO_SEC|COUNT|SUM)\(~',$c);echo"<td id='$r'".($Wc&&($W===null||is_numeric(strip_tags($Ec))||$S=="money")?" class='number'":"");if(($_GET["modify"]&&$zb&&$W!==null)||$se!==null){$sc=h($se!==null?$se:$K[$v]);echo">".($sf?"<textarea name='$r' cols='30' rows='".(substr_count($K[$v],"\n")+1)."'>$sc</textarea>":"<input name='$r' value='$sc' size='$md[$v]'>");}else{$pd=strpos($Ec,"<i>…</i>");echo($T?" data-text='".($pd?2:($sf?1:0))."'".($zb?"":" data-warning='".h(lang(88))."'"):"").">$Ec";}}next($M);}if($wa)echo"<td>";adminer()->backwardKeysPrint($wa,$L[$_]);echo"</tr>\n";}if(is_ajax())exit;echo"</table>\n","</div>\n";}if(!is_ajax()){if($L||$E){$Mb=true;if($_GET["page"]!="last"){if(!$w||(count($L)<$w&&($L||!$E)))$jc=($E?$E*$w:0)+count($L);elseif(JUSH!="sql"||!$Vc){$jc=($Vc?false:found_rows($R,$Z));if(intval($jc)<max(1e4,2*($E+1)*$w))$jc=first(slow_query(count_rows($a,$Z,$Vc,$p)));elseif(JUSH=='sql'||JUSH=='pgsql')$Mb=false;}}$ee=($w&&($jc===false||$jc>$w||$E));if($ee)echo(($jc===false?count($L)+1:$jc-$E*$w)>$w?'<p><a href="'.h(remove_from_uri("page")."&page=".($E+1)).'" class="loadmore">'.lang(89).'</a>'.script("qsl('a').onclick = partial(selectLoadMore, $w, '".lang(90)."…');",""):''),"\n";echo"<div class='footer'><div>\n";if($ee){$xd=($jc===false?$E+(count($L)>=$w?2:1):floor(($jc-1)/$w));echo"<fieldset>";if(JUSH!="simpledb"){echo"<legend><a href='".h(remove_from_uri("page"))."'>".lang(91)."</a></legend>",script("qsl('a').onclick = function () { pageClick(this.href, +prompt('".lang(91)."', '".($E+1)."')); return false; };"),pagination(0,$E).($E>5?" …":"");for($q=max(1,$E-4);$q<min($xd,$E+5);$q++)echo
pagination($q,$E);if($xd>0)echo($E+5<$xd?" …":""),($Mb&&$jc!==false?pagination($xd,$E):" <a href='".h(remove_from_uri("page")."&page=last")."' title='~$xd'>".lang(92)."</a>");}else
echo"<legend>".lang(91)."</legend>",pagination(0,$E).($E>1?" …":""),($E?pagination($E,$E):""),($xd>$E?pagination($E+1,$E).($xd>$E+1?" …":""):"");echo"</fieldset>\n";}echo"<fieldset>","<legend>".lang(93)."</legend>";$tb=($Mb?"":"~ ").$jc;$Ud="const checked = formChecked(this, /check/); selectCount('selected', this.checked ? '$tb' : checked); selectCount('selected2', this.checked || !checked ? '$tb' : checked);";echo
checkbox("all",1,0,($jc!==false?($Mb?"":"~ ").lang(94,$jc):""),$Ud)."\n","</fieldset>\n";if(adminer()->selectCommandPrint())echo'<fieldset',($_GET["modify"]?'':' class="jsonly"'),'><legend>',lang(84),'</legend><div>
<input type="submit" value="',lang(16),'"',($_GET["modify"]?'':' title="'.lang(80).'"'),'>
</div></fieldset>
<fieldset><legend>',lang(95),' <span id="selected"></span></legend><div>
<input type="submit" name="edit" value="',lang(12),'">
<input type="submit" name="clone" value="',lang(96),'">
<input type="submit" name="delete" value="',lang(20),'">',confirm(),'</div></fieldset>
';$ic=adminer()->dumpFormat();foreach((array)$_GET["columns"]as$c){if($c["fun"]){unset($ic['sql']);break;}}if($ic){print_fieldset("export",lang(97)." <span id='selected2'></span>");$ce=adminer()->dumpOutput();echo($ce?html_select("output",$ce,$fa["output"])." ":""),html_select("format",$ic,$fa["format"])," <input type='submit' name='export' value='".lang(97)."'>\n","</div></fieldset>\n";}adminer()->selectEmailPrint(array_filter($Cb,'strlen'),$d);echo"</div></div>\n";}if(adminer()->selectImportPrint())echo"<p>","<a href='#import'>".lang(98)."</a>",script("qsl('a').onclick = partial(toggle, 'import');",""),"<span id='import'".($_POST["import"]?"":" class='hidden'").">: ",file_input("<input type='file' name='csv_file'> ".html_select("separator",array("csv"=>"CSV,","csv;"=>"CSV;","tsv"=>"TSV"),$fa["format"])." <input type='submit' name='import' value='".lang(98)."'>"),"</span>";echo
input_token(),"</form>\n",(!$p&&$M?"":script("tableCheck();"));}}}if(is_ajax()){ob_end_clean();exit;}}elseif(isset($_GET["script"])){if($_GET["script"]=="kill")connection()->query("KILL ".number($_POST["kill"]));elseif(list($Q,$r,$A)=adminer()->_foreignColumn(column_foreign_keys($_GET["source"]),$_GET["field"])){$w=11;$I=connection()->query("SELECT $r, $A FROM ".table($Q)." WHERE ".(preg_match('~^[0-9]+$~',$_GET["value"])?"$r = $_GET[value] OR ":"")."$A LIKE ".q("$_GET[value]%")." ORDER BY 2 LIMIT $w");for($q=1;($K=$I->fetch_row())&&$q<$w;$q++)echo"<a href='".h(ME."edit=".urlencode($Q)."&where".urlencode("[".bracket_escape(idf_unescape($r))."]")."=".urlencode($K[0]))."'>".h($K[1])."</a><br>\n";if($K)echo"...\n";}exit;}else{page_header(lang(56),"",false);if(adminer()->homepage()){echo"<form action='' method='post'>\n","<p>".lang(99).": <input type='search' name='query' value='".h($_POST["query"])."'> <input type='submit' value='".lang(34)."'>\n";if($_POST["query"]!="")search_tables();echo"<div class='scrollable'>\n","<table class='nowrap checkable odds'>\n",script("mixin(qsl('table'), {onclick: tableClick, ondblclick: partialArg(tableClick, true)});"),'<thead><tr class="wrap">','<td><input id="check-all" type="checkbox" class="jsonly">'.script("qs('#check-all').onclick = partial(formCheck, /^tables\[/);",""),'<th>'.lang(100),'<td>'.lang(101),"</thead>\n";foreach(table_status()as$Q=>$K){$A=adminer()->tableName($K);if($A!=""){echo'<tr><td>'.checkbox("tables[]",$Q,in_array($Q,(array)$_POST["tables"],true)),"<th><a href='".h(ME).'select='.urlencode($Q)."'>$A</a>";$W=format_number($K["Rows"]);echo"<td align='right'><a href='".h(ME."edit=").urlencode($Q)."'>".($K["Engine"]=="InnoDB"&&$W?"~ $W":$W)."</a>";}}echo"</table>\n","</div>\n","</form>\n",script("tableCheck();");adminer()->pluginsLinks();}}page_footer();