Files
da-postgresql/assets/adminer/adminer-5.4.2-pgsql.php
T
2026-07-04 16:00:04 +02:00

1079 lines
393 KiB
PHP
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
/** Adminer - Compact database management
* @link https://www.adminer.org/
* @author Jakub Vrana, https://www.vrana.cz/
* @copyright 2007 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.2
*/namespace
Adminer;const
VERSION="5.4.2";error_reporting(24575);set_error_handler(function($rc,$tc){return!!preg_match('~^Undefined (array key|offset|index)~',$tc);},E_WARNING|E_NOTICE);$Mc=!preg_match('~^(unsafe_raw)?$~',ini_get("filter.default"));if($Mc||ini_get("filter.default_flags")){foreach(array('_GET','_POST','_COOKIE','_SERVER')as$X){$yi=filter_input_array(constant("INPUT$X"),FILTER_UNSAFE_RAW);if($yi)$$X=$yi;}}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(){$xb=adminer()->credentials();$K=Driver::connect($xb[0],$xb[1],$xb[2]);return(is_object($K)?$K:null);}function
idf_unescape($u){if(!preg_match('~^[`\'"[]~',$u))return$u;$pe=substr($u,-1);return
str_replace($pe.$pe,$pe,substr($u,1,-1));}function
q($yh){return
connection()->quote($yh);}function
escape_string($X){return
substr(q($X),1,-1);}function
idx($ua,$y,$Jb=null){return($ua&&array_key_exists($y,$ua)?$ua[$y]:$Jb);}function
number($X){return
preg_replace('~[^0-9]+~','',$X);}function
number_type(){return'((?<!o)int(?!er)|numeric|real|float|double|decimal|money)';}function
remove_slashes(array$Oi,$Mc=false){$K=array();foreach($Oi
as$y=>$X)$K[stripslashes($y)]=(is_array($X)?remove_slashes($X,$Mc):($Mc?$X:stripslashes($X)));return$K;}function
bracket_escape($u,$_a=false){static$ji=array(':'=>':1',']'=>':2','['=>':3','"'=>':4');return
strtr($u,($_a?array_flip($ji):$ji));}function
min_version($Ri,$Be="",$g=null){$g=connection($g);$fh=$g->server_info;if($Be&&preg_match('~([\d.]+)-MariaDB~',$fh,$B)){$fh=$B[1];$Ri=$Be;}return$Ri&&version_compare($fh,$Ri)>=0;}function
charset(Db$f){return(min_version("5.5.3",0,$f)?"utf8mb4":"utf8");}function
ini_bool($Sd){$X=ini_get($Sd);return(preg_match('~^(on|true|yes)$~i',$X)||(int)$X);}function
ini_bytes($Sd){$X=ini_get($Sd);switch(strtolower(substr($X,-1))){case'g':$X=(int)$X*1024;case'm':$X=(int)$X*1024;case'k':$X=(int)$X*1024;}return$X;}function
sid(){static$K;if($K===null)$K=(SID&&!($_COOKIE&&ini_bool("session.use_cookies")));return$K;}function
set_password($Qi,$O,$V,$G){$_SESSION["pwds"][$Qi][$O][$V]=($_COOKIE["adminer_key"]&&is_string($G)?array(encrypt_string($G,$_COOKIE["adminer_key"])):$G);}function
get_password(){$K=get_session("pwds");if(is_array($K))$K=($_COOKIE["adminer_key"]?decrypt_string($K[0],$_COOKIE["adminer_key"]):false);return$K;}function
get_val($I,$l=0,$nb=null){$nb=connection($nb);$J=$nb->query($I);if(!is_object($J))return
false;$L=$J->fetch_row();return($L?$L[$l]:false);}function
get_vals($I,$c=0){$K=array();$J=connection()->query($I);if(is_object($J)){while($L=$J->fetch_row())$K[]=$L[$c];}return$K;}function
get_key_vals($I,$g=null,$ih=true){$g=connection($g);$K=array();$J=$g->query($I);if(is_object($J)){while($L=$J->fetch_row()){if($ih)$K[$L[0]]=$L[1];else$K[]=$L[0];}}return$K;}function
get_rows($I,$g=null,$k="<p class='error'>"){$nb=connection($g);$K=array();$J=$nb->query($I);if(is_object($J)){while($L=$J->fetch_assoc())$K[]=$L;}elseif(!$J&&!$g&&$k&&(defined('Adminer\PAGE_HEADER')||$k=="-- "))echo$k.error()."\n";return$K;}function
unique_array($L,array$w){foreach($w
as$v){if(preg_match("~PRIMARY|UNIQUE~",$v["type"])&&!$v["partial"]){$K=array();foreach($v["columns"]as$y){if(!isset($L[$y]))continue
2;$K[$y]=$L[$y];}return$K;}}}function
escape_key($y){if(preg_match('(^([\w(]+)('.str_replace("_",".*",preg_quote(idf_escape("_"))).')([ \w)]+)$)',$y,$B))return$B[1].idf_escape(idf_unescape($B[2])).$B[3];return
idf_escape($y);}function
where(array$Z,array$m=array()){$K=array();foreach((array)$Z["where"]as$y=>$X){$y=bracket_escape($y,true);$c=escape_key($y);$l=idx($m,$y,array());$Jc=$l["type"];$K[]=$c.(JUSH=="sql"&&$Jc=="json"?" = CAST(".q($X)." AS JSON)":(JUSH=="pgsql"&&preg_match('~^json~',$Jc)?"::jsonb = ".q($X)."::jsonb":(JUSH=="sql"&&is_numeric($X)&&preg_match('~\.~',$X)?" LIKE ".q($X):(JUSH=="mssql"&&strpos($Jc,"datetime")===false?" LIKE ".q(preg_replace('~[_%[]~','[\0]',$X)):" = ".unconvert_field($l,q($X))))));if(JUSH=="sql"&&preg_match('~char|text~',$Jc)&&preg_match("~[^ -@]~",$X))$K[]="$c = ".q($X)." COLLATE ".charset(connection())."_bin";}foreach((array)$Z["null"]as$y)$K[]=escape_key($y)." IS NULL";return
implode(" AND ",$K);}function
where_check($X,array$m=array()){parse_str($X,$Qa);remove_slashes(array(&$Qa));return
where($Qa,$m);}function
where_link($s,$c,$Y,$sf="="){return"&where%5B$s%5D%5Bcol%5D=".urlencode($c)."&where%5B$s%5D%5Bop%5D=".urlencode(($Y!==null?$sf:"IS NULL"))."&where%5B$s%5D%5Bval%5D=".urlencode($Y);}function
convert_fields(array$d,array$m,array$N=array()){$K="";foreach($d
as$y=>$X){if($N&&!in_array(idf_escape($y),$N))continue;$va=convert_field($m[$y]);if($va)$K
.=", $va AS ".idf_escape($y);}return$K;}function
cookie($D,$Y,$xe=2592000){header("Set-Cookie: $D=".rawurlencode($Y).($xe?"; expires=".gmdate("D, d M Y H:i:s",time()+$xe)." GMT":"")."; path=".preg_replace('~\?.*~','',$_SERVER["REQUEST_URI"]).(HTTPS?"; secure":"")."; HttpOnly; SameSite=lax",false);}function
get_settings($ub){parse_str($_COOKIE[$ub],$jh);return$jh;}function
get_setting($y,$ub="adminer_settings",$Jb=null){return
idx(get_settings($ub),$y,$Jb);}function
save_settings(array$jh,$ub="adminer_settings"){$Y=http_build_query($jh+get_settings($ub));cookie($ub,$Y);$_COOKIE[$ub]=$Y;}function
restart_session(){if(!ini_bool("session.use_cookies")&&(!function_exists('session_status')||session_status()==1))session_start();}function
stop_session($Uc=false){$Hi=ini_bool("session.use_cookies");if(!$Hi||$Uc){session_write_close();if($Hi&&@ini_set("session.use_cookies",'0')===false)session_start();}}function&get_session($y){return$_SESSION[$y][DRIVER][SERVER][$_GET["username"]];}function
set_session($y,$X){$_SESSION[$y][DRIVER][SERVER][$_GET["username"]]=$X;}function
auth_url($Qi,$O,$V,$j=null){$Di=remove_from_uri(implode("|",array_keys(SqlDriver::$drivers))."|username|ext|".($j!==null?"db|":"").($Qi=='mssql'||$Qi=='pgsql'?"":"ns|").session_name());preg_match('~([^?]*)\??(.*)~',$Di,$B);return"$B[1]?".(sid()?SID."&":"").($Qi!="server"||$O!=""?urlencode($Qi)."=".urlencode($O)."&":"").($_GET["ext"]?"ext=".urlencode($_GET["ext"])."&":"")."username=".urlencode($V).($j!=""?"&db=".urlencode($j):"").($B[2]?"&$B[2]":"");}function
is_ajax(){return($_SERVER["HTTP_X_REQUESTED_WITH"]=="XMLHttpRequest");}function
redirect($A,$C=null){if($C!==null){restart_session();$_SESSION["messages"][preg_replace('~^[^?]*~','',($A!==null?$A:$_SERVER["REQUEST_URI"]))][]=$C;}if($A!==null){if($A=="")$A=".";header("Location: $A");exit;}}function
query_redirect($I,$A,$C,$yg=true,$xc=true,$Ec=false,$Wh=""){if($xc){$wh=microtime(true);$Ec=!connection()->query($I);$Wh=format_time($wh);}$sh=($I?adminer()->messageQuery($I,$Wh,$Ec):"");if($Ec){adminer()->error
.=error().$sh.script("messagesPrint();")."<br>";return
false;}if($yg)redirect($A,$C.$sh);return
true;}class
Queries{static$queries=array();static$start=0;}function
queries($I){if(!Queries::$start)Queries::$start=microtime(true);Queries::$queries[]=(driver()->delimiter!=';'?$I:(preg_match('~;$~',$I)?"DELIMITER ;;\n$I;\nDELIMITER ":$I).";");return
connection()->query($I);}function
apply_queries($I,array$T,$uc='Adminer\table'){foreach($T
as$R){if(!queries("$I ".$uc($R)))return
false;}return
true;}function
queries_redirect($A,$C,$yg){$tg=implode("\n",Queries::$queries);$Wh=format_time(Queries::$start);return
query_redirect($tg,$A,$C,$yg,false,!$yg,$Wh);}function
format_time($wh){return
lang(0,max(0,microtime(true)-$wh));}function
relative_uri(){return
str_replace(":","%3a",preg_replace('~^[^?]*/([^?]*)~','\1',$_SERVER["REQUEST_URI"]));}function
remove_from_uri($Lf=""){return
substr(preg_replace("~(?<=[?&])($Lf".(SID?"":"|".session_name()).")=[^&]*&~",'',relative_uri()."&"),0,-1);}function
get_file($y,$Ib=false,$Ob=""){$Lc=$_FILES[$y];if(!$Lc)return
null;foreach($Lc
as$y=>$X)$Lc[$y]=(array)$X;$K='';foreach($Lc["error"]as$y=>$k){if($k)return$k;$D=$Lc["name"][$y];$ei=$Lc["tmp_name"][$y];$rb=file_get_contents($Ib&&preg_match('~\.gz$~',$D)?"compress.zlib://$ei":$ei);if($Ib){$wh=substr($rb,0,3);if(function_exists("iconv")&&preg_match("~^\xFE\xFF|^\xFF\xFE~",$wh))$rb=iconv("utf-16","utf-8",$rb);elseif($wh=="\xEF\xBB\xBF")$rb=substr($rb,3);}$K
.=$rb;if($Ob)$K
.=(preg_match("($Ob\\s*\$)",$rb)?"":$Ob)."\n\n";}return$K;}function
upload_error($k){$Ke=($k==UPLOAD_ERR_INI_SIZE?ini_get("upload_max_filesize"):0);return($k?lang(1).($Ke?" ".lang(2,$Ke):""):lang(3));}function
repeat_pattern($Yf,$ve){return
str_repeat("$Yf{0,65535}",$ve/65535)."$Yf{0,".($ve%65535)."}";}function
is_utf8($X){return(preg_match('~~u',$X)&&!preg_match('~[\0-\x8\xB\xC\xE-\x1F]~',$X));}function
format_number($X){return
strtr(number_format($X,0,".",lang(4)),preg_split('~~u',lang(5),-1,PREG_SPLIT_NO_EMPTY));}function
friendly_url($X){return
preg_replace('~\W~i','-',$X);}function
table_status1($R,$Fc=false){$K=table_status($R,$Fc);return($K?reset($K):array("Name"=>$R));}function
column_foreign_keys($R){$K=array();foreach(adminer()->foreignKeys($R)as$o){foreach($o["source"]as$X)$K[$X][]=$o;}return$K;}function
fields_from_edit(){$K=array();foreach((array)$_POST["field_keys"]as$y=>$X){if($X!=""){$X=bracket_escape($X);$_POST["function"][$X]=$_POST["field_funs"][$y];$_POST["fields"][$X]=$_POST["field_vals"][$y];}}foreach((array)$_POST["fields"]as$y=>$X){$D=bracket_escape($y,true);$K[$D]=array("field"=>$D,"privileges"=>array("insert"=>1,"update"=>1,"where"=>1,"order"=>1),"null"=>1,"auto_increment"=>($y==driver()->primary),);}return$K;}function
dump_headers($_d,$Ze=false){$K=adminer()->dumpHeaders($_d,$Ze);$If=$_POST["output"];if($If!="text")header("Content-Disposition: attachment; filename=".adminer()->dumpFilename($_d).".$K".($If!="file"&&preg_match('~^[0-9a-z]+$~',$If)?".$If":""));session_write_close();if(!ob_get_level())ob_start(null,4096);ob_flush();flush();return$K;}function
dump_csv(array$L){$ri=$_POST["format"]=="tsv";foreach($L
as$y=>$X){if(preg_match('~["\n]|^0[^.]|\.\d*0$|'.($ri?'\t':'[,;]|^$').'~',$X))$L[$y]='"'.str_replace('"','""',$X).'"';}echo
implode(($_POST["format"]=="csv"?",":($ri?"\t":";")),$L)."\r\n";}function
apply_sql_function($q,$c){return($q?($q=="unixepoch"?"DATETIME($c, '$q')":($q=="count distinct"?"COUNT(DISTINCT ":strtoupper("$q("))."$c)"):$c);}function
get_temp_dir(){$K=ini_get("upload_tmp_dir");if(!$K){if(function_exists('sys_get_temp_dir'))$K=sys_get_temp_dir();else{$n=@tempnam("","");if(!$n)return'';$K=dirname($n);unlink($n);}}return$K;}function
file_open_lock($n){if(is_link($n))return;$p=@fopen($n,"c+");if(!$p)return;@chmod($n,0660);if(!flock($p,LOCK_EX)){fclose($p);return;}return$p;}function
file_write_unlock($p,$Cb){rewind($p);fwrite($p,$Cb);ftruncate($p,strlen($Cb));file_unlock($p);}function
file_unlock($p){flock($p,LOCK_UN);fclose($p);}function
first(array$ua){return
reset($ua);}function
password_file($h){$n=get_temp_dir()."/adminer.key";if(!$h&&!file_exists($n))return'';$p=file_open_lock($n);if(!$p)return'';$K=stream_get_contents($p);if(!$K){$K=rand_string();file_write_unlock($p,$K);}else
file_unlock($p);return$K;}function
rand_string(){return
md5(uniqid(strval(mt_rand()),true));}function
select_value($X,$_,array$l,$Vh){if(is_array($X)){$K="";if(array_filter($X,'is_array')==array_values($X)){$ie=array();foreach($X
as$W)$ie+=array_fill_keys(array_keys($W),null);foreach(array_keys($ie)as$he)$K
.="<th>".h($he);foreach($X
as$W){$K
.="<tr>";foreach(array_merge($ie,$W)as$Li)$K
.="<td>".select_value($Li,$_,$l,$Vh);}}else{foreach($X
as$he=>$W)$K
.="<tr>".($X!=array_values($X)?"<th>".h($he):"")."<td>".select_value($W,$_,$l,$Vh);}return"<table>$K</table>";}if(!$_)$_=adminer()->selectLink($X,$l);if($_===null){if(is_mail($X))$_="mailto:$X";if(is_url($X))$_=$X;}$K=adminer()->editVal(driver()->value($X,$l),$l);if($K!==null){if(!is_utf8($K))$K="\0";elseif($Vh!=""&&is_shortable($l))$K=shorten_utf8($K,max(0,+$Vh));else$K=h($K);}return
adminer()->selectVal($K,$_,$l,$X);}function
is_blob(array$l){return
preg_match('~blob|bytea|raw|file~',$l["type"])&&!in_array($l["type"],idx(driver()->structuredTypes(),lang(6),array()));}function
is_mail($hc){$wa='[-a-z0-9!#$%&\'*+/=?^_`{|}~]';$Wb='[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])';$Yf="$wa+(\\.$wa+)*@($Wb?\\.)+$Wb";return
is_string($hc)&&preg_match("(^$Yf(,\\s*$Yf)*\$)i",$hc);}function
is_url($yh){$Wb='[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])';return
preg_match("~^((https?):)?//($Wb?\\.)+$Wb(:\\d+)?(/.*)?(\\?.*)?(#.*)?\$~i",$yh);}function
is_shortable(array$l){return!preg_match('~'.number_type().'|date|time|year~',$l["type"]);}function
host_port($O){return(preg_match('~^(\[(.+)]|([^:]+)):([^:]+)$~',$O,$B)?array($B[2].$B[3],$B[4]):array($O,''));}function
count_rows($R,array$Z,$be,array$r){$I=" FROM ".table($R).($Z?" WHERE ".implode(" AND ",$Z):"");return($be&&(JUSH=="sql"||count($r)==1)?"SELECT COUNT(DISTINCT ".implode(", ",$r).")$I":"SELECT COUNT(*)".($be?" FROM (SELECT 1$I GROUP BY ".implode(", ",$r).") x":$I));}function
slow_query($I){$j=adminer()->database();$Xh=adminer()->queryTimeout();$nh=driver()->slowQuery($I,$Xh);$g=null;if(!$nh&&support("kill")){$g=connect();if($g&&($j==""||$g->select_db($j))){$je=get_val(connection_id(),0,$g);echo
script("const timeout = setTimeout(() => { ajax('".js_escape(ME)."script=kill', function () {}, 'kill=$je&token=".get_token()."'); }, 1000 * $Xh);");}}ob_flush();flush();$K=@get_key_vals(($nh?:$I),$g,false);if($g){echo
script("clearTimeout(timeout);");ob_flush();flush();}return$K;}function
get_token(){$wg=rand(1,1e6);return($wg^$_SESSION["token"]).":$wg";}function
verify_token(){list($fi,$wg)=explode(":",$_POST["token"]);return($wg^$_SESSION["token"])==$fi;}function
lzw_decompress($Fa){$Tb=256;$Ga=8;$ab=array();$Hg=0;$Ig=0;for($s=0;$s<strlen($Fa);$s++){$Hg=($Hg<<8)+ord($Fa[$s]);$Ig+=8;if($Ig>=$Ga){$Ig-=$Ga;$ab[]=$Hg>>$Ig;$Hg&=(1<<$Ig)-1;$Tb++;if($Tb>>$Ga)$Ga++;}}$Sb=range("\0","\xFF");$K="";$aj="";foreach($ab
as$s=>$Za){$gc=$Sb[$Za];if(!isset($gc))$gc=$aj.$aj[0];$K
.=$gc;if($s)$Sb[]=$aj.$gc[0];$aj=$gc;}return$K;}function
script($ph,$ii="\n"){return"<script".nonce().">$ph</script>$ii";}function
script_src($Ei,$Mb=false){return"<script src='".h($Ei)."'".nonce().($Mb?" defer":"")."></script>\n";}function
nonce(){return' nonce="'.get_nonce().'"';}function
input_hidden($D,$Y=""){return"<input type='hidden' name='".h($D)."' value='".h($Y)."'>\n";}function
input_token(){return
input_hidden("token",get_token());}function
target_blank(){return' target="_blank" rel="noreferrer noopener"';}function
h($yh){return
str_replace("\0","&#0;",htmlspecialchars($yh,ENT_QUOTES,'utf-8'));}function
nl_br($yh){return
str_replace("\n","<br>",$yh);}function
checkbox($D,$Y,$Ta,$le="",$rf="",$Xa="",$ne=""){$K="<input type='checkbox' name='$D' value='".h($Y)."'".($Ta?" checked":"").($ne?" aria-labelledby='$ne'":"").">".($rf?script("qsl('input').onclick = function () { $rf };",""):"");return($le!=""||$Xa?"<label".($Xa?" class='$Xa'":"").">$K".h($le)."</label>":$K);}function
optionlist($vf,$Xg=null,$Ii=false){$K="";foreach($vf
as$he=>$W){$wf=array($he=>$W);if(is_array($W)){$K
.='<optgroup label="'.h($he).'">';$wf=$W;}foreach($wf
as$y=>$X)$K
.='<option'.($Ii||is_string($y)?' value="'.h($y).'"':'').($Xg!==null&&($Ii||is_string($y)?(string)$y:$X)===$Xg?' selected':'').'>'.h($X);if(is_array($W))$K
.='</optgroup>';}return$K;}function
html_select($D,array$vf,$Y="",$qf="",$ne=""){static$le=0;$me="";if(!$ne&&substr($vf[""],0,1)=="("){$le++;$ne="label-$le";$me="<option value='' id='$ne'>".h($vf[""]);unset($vf[""]);}return"<select name='".h($D)."'".($ne?" aria-labelledby='$ne'":"").">".$me.optionlist($vf,$Y)."</select>".($qf?script("qsl('select').onchange = function () { $qf };",""):"");}function
html_radios($D,array$vf,$Y="",$bh=""){$K="";foreach($vf
as$y=>$X)$K
.="<label><input type='radio' name='".h($D)."' value='".h($y)."'".($y==$Y?" checked":"").">".h($X)."</label>$bh";return$K;}function
confirm($C="",$Yg="qsl('input')"){return
script("$Yg.onclick = () => confirm('".($C?js_escape($C):lang(7))."');","");}function
print_fieldset($t,$ue,$Ui=false){echo"<fieldset><legend>","<a href='#fieldset-$t'>$ue</a>",script("qsl('a').onclick = partial(toggle, 'fieldset-$t');",""),"</legend>","<div id='fieldset-$t'".($Ui?"":" class='hidden'").">\n";}function
bold($Ia,$Xa=""){return($Ia?" class='active $Xa'":($Xa?" class='$Xa'":""));}function
js_escape($yh){return
addcslashes($yh,"\r\n'\\/");}function
pagination($F,$_b){return" ".($F==$_b?$F+1:'<a href="'.h(remove_from_uri("page").($F?"&page=$F".($_GET["next"]?"&next=".urlencode($_GET["next"]):""):"")).'">'.($F+1)."</a>");}function
hidden_fields(array$rg,array$Cd=array(),$kg=''){$K=false;foreach($rg
as$y=>$X){if(!in_array($y,$Cd)){if(is_array($X))hidden_fields($X,array(),$y);else{$K=true;echo
input_hidden(($kg?$kg."[$y]":$y),$X);}}}return$K;}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($Ud){$Fe="max_file_uploads";$Ge=ini_get($Fe);$Bi="upload_max_filesize";$Ci=ini_get($Bi);return(ini_bool("file_uploads")?$Ud.script("qsl('input[type=\"file\"]').onchange = partialArg(fileChange, "."$Ge, '".lang(8,"$Fe = $Ge")."', ".ini_bytes("upload_max_filesize").", '".lang(8,"$Bi = $Ci")."')"):lang(9));}function
enum_input($U,$b,array$l,$Y,$kc=""){preg_match_all("~'((?:[^']|'')*)'~",$l["length"],$De);$kg=($l["type"]=="enum"?"val-":"");$Ta=(is_array($Y)?in_array("null",$Y):$Y===null);$K=($l["null"]&&$kg?"<label><input type='$U'$b value='null'".($Ta?" checked":"")."><i>$kc</i></label>":"");foreach($De[1]as$X){$X=stripcslashes(str_replace("''","'",$X));$Ta=(is_array($Y)?in_array($kg.$X,$Y):$Y===$X);$K
.=" <label><input type='$U'$b value='".h($kg.$X)."'".($Ta?' checked':'').'>'.h(adminer()->editVal($X,$l)).'</label>';}return$K;}function
input(array$l,$Y,$q,$za=false){$D=h(bracket_escape($l["field"]));echo"<td class='function'>";if(is_array($Y)&&!$q)$q="json";$fe=($q=="json"||preg_match('~^jsonb?$~',$l["type"]));if($fe&&$Y!=''&&(JUSH!="pgsql"||$l["type"]!="json"))$Y=json_encode(is_array($Y)?$Y:json_decode($Y),128|64|256);$Gg=(JUSH=="mssql"&&$l["auto_increment"]);if($Gg&&!$_POST["save"])$q=null;$dd=(isset($_GET["select"])||$Gg?array("orig"=>lang(10)):array())+adminer()->editFunctions($l);$qc=driver()->enumLength($l);if($qc){$l["type"]="enum";$l["length"]=$qc;}$b=" name='fields[$D]".($l["type"]=="enum"||$l["type"]=="set"?"[]":"")."'".($za?" autofocus":"");echo
driver()->unconvertFunction($l)." ";$R=$_GET["edit"]?:$_GET["select"];if($l["type"]=="enum")echo
h($dd[""])."<td>".adminer()->editInput($R,$l,$b,$Y);else{$nd=(in_array($q,$dd)||isset($dd[$q]));echo(count($dd)>1?"<select name='function[$D]'>".optionlist($dd,$q===null||$nd?$q:"")."</select>".on_help("event.target.value.replace(/^SQL\$/, '')",1).script("qsl('select').onchange = functionChange;",""):h(reset($dd))).'<td>';$Ud=adminer()->editInput($R,$l,$b,$Y);if($Ud!="")echo$Ud;elseif(preg_match('~bool~',$l["type"]))echo"<input type='hidden'$b value='0'>"."<input type='checkbox'".(preg_match('~^(1|t|true|y|yes|on)$~i',$Y)?" checked='checked'":"")."$b value='1'>";elseif($l["type"]=="set")echo
enum_input("checkbox",$b,$l,(is_string($Y)?explode(",",$Y):$Y));elseif(is_blob($l)&&ini_bool("file_uploads"))echo"<input type='file' name='fields-$D'>";elseif($fe)echo"<textarea$b cols='50' rows='12' class='jush-js'>".h($Y).'</textarea>';elseif(($Th=preg_match('~text|lob|memo~i',$l["type"]))||preg_match("~\n~",$Y)){if($Th&&JUSH!="sqlite")$b
.=" cols='50' rows='12'";else{$M=min(12,substr_count($Y,"\n")+1);$b
.=" cols='30' rows='$M'";}echo"<textarea$b>".h($Y).'</textarea>';}else{$ti=driver()->types();$Me=(!preg_match('~int~',$l["type"])&&preg_match('~^(\d+)(,(\d+))?$~',$l["length"],$B)?((preg_match("~binary~",$l["type"])?2:1)*$B[1]+($B[3]?1:0)+($B[2]&&!$l["unsigned"]?1:0)):($ti[$l["type"]]?$ti[$l["type"]]+($l["unsigned"]?0:1):0));if(JUSH=='sql'&&min_version(5.6)&&preg_match('~time~',$l["type"]))$Me+=7;echo"<input".((!$nd||$q==="")&&preg_match('~(?<!o)int(?!er)~',$l["type"])&&!preg_match('~\[\]~',$l["full_type"])?" type='number'":"")." value='".h($Y)."'".($Me?" data-maxlength='$Me'":"").(preg_match('~char|binary~',$l["type"])&&$Me>20?" size='".($Me>99?60:40)."'":"")."$b>";}echo
adminer()->editHint($R,$l,$Y);$Nc=0;foreach($dd
as$y=>$X){if($y===""||!$X)break;$Nc++;}if($Nc&&count($dd)>1)echo
script("qsl('td').oninput = partial(skipOriginal, $Nc);");}}function
process_input(array$l){$u=bracket_escape($l["field"]);$q=idx($_POST["function"],$u);$Y=idx($_POST["fields"],$u);if($Y===null)return
false;if($l["type"]=="enum"||driver()->enumLength($l)){$Y=idx($Y,0);if($Y=="orig"||!$Y)return
false;if($Y=="null")return"NULL";$Y=substr($Y,4);}if($l["auto_increment"]&&$Y=="")return
null;if($q=="orig")return(preg_match('~^CURRENT_TIMESTAMP~i',$l["on_update"])?idf_escape($l["field"]):false);if($q=="NULL")return"NULL";if($l["type"]=="set")$Y=implode(",",(array)$Y);if($q=="json"){$q="";$Y=json_decode($Y,true);if(!is_array($Y))return
false;return$Y;}if(is_blob($l)&&ini_bool("file_uploads")){$Lc=get_file("fields-$u");if(!is_string($Lc))return
false;return
driver()->quoteBinary($Lc);}return
adminer()->processInput($l,$Y,$q);}function
search_tables(){$_GET["where"][0]["val"]=$_POST["query"];$ah="<ul>\n";foreach(table_status('',true)as$R=>$S){$D=adminer()->tableName($S);if(isset($S["Engine"])&&$D!=""&&(!$_POST["tables"]||in_array($R,$_POST["tables"]))){$J=connection()->query("SELECT".limit("1 FROM ".table($R)," WHERE ".implode(" AND ",adminer()->selectSearchProcess(fields($R),array())),1));if(!$J||$J->fetch_row()){$og="<a href='".h(ME."select=".urlencode($R)."&where[0][op]=".urlencode($_GET["where"][0]["op"])."&where[0][val]=".urlencode($_GET["where"][0]["val"]))."'>$D</a>";echo"$ah<li>".($J?$og:"<p class='error'>$og: ".error())."\n";$ah="";}}}echo($ah?"<p class='message'>".lang(11):"</ul>")."\n";}function
on_help($gb,$lh=0){return
script("mixin(qsl('select, input'), {onmouseover: function (event) { helpMouseover.call(this, event, $gb, $lh) }, onmouseout: helpMouseout});","");}function
edit_form($R,array$m,$L,$Ai,$k=''){$Gh=adminer()->tableName(table_status1($R,true));page_header(($Ai?lang(12):lang(13)),$k,array("select"=>array($R,$Gh)),$Gh);adminer()->editRowPrint($R,$m,$L,$Ai);if($L===false){echo"<p class='error'>".lang(14)."\n";return;}echo"<form action='' method='post' enctype='multipart/form-data' id='form'>\n";$ec=false;if(!$m)echo"<p class='error'>".lang(15)."\n";else{echo"<table class='layout'>".script("qsl('table').onkeydown = editingKeydown;");$za=!$_POST;foreach($m
as$D=>$l){echo"<tr><th>".adminer()->fieldName($l);$Jb=idx($_GET["set"],bracket_escape($D));if($Jb===null){$Jb=$l["default"];if($l["type"]=="bit"&&preg_match("~^b'([01]*)'\$~",$Jb,$Eg))$Jb=$Eg[1];if(JUSH=="sql"&&preg_match('~binary~',$l["type"]))$Jb=bin2hex($Jb);}$Y=($L!==null?($L[$D]!=""&&JUSH=="sql"&&preg_match("~enum|set~",$l["type"])&&is_array($L[$D])?implode(",",$L[$D]):(is_bool($L[$D])?+$L[$D]:$L[$D])):(!$Ai&&$l["auto_increment"]?"":(isset($_GET["select"])?false:$Jb)));if(!$_POST["save"]&&is_string($Y))$Y=adminer()->editVal($Y,$l);if(($Ai&&!isset($l["privileges"]["update"]))||$l["generated"])echo"<td class='function'><td>".select_value($Y,'',$l,null);else{$ec=true;$q=($_POST["save"]?idx($_POST["function"],$D,""):($Ai&&preg_match('~^CURRENT_TIMESTAMP~i',$l["on_update"])?"now":($Y===false?null:($Y!==null?'':'NULL'))));if(!$_POST&&!$Ai&&$Y==$l["default"]&&preg_match('~^[\w.]+\(~',$Y))$q="SQL";if(preg_match("~time~",$l["type"])&&preg_match('~^CURRENT_TIMESTAMP~i',$Y)){$Y="";$q="now";}if($l["type"]=="uuid"&&$Y=="uuid()"){$Y="";$q="uuid";}if($za!==false)$za=($l["auto_increment"]||$q=="now"||$q=="uuid"?null:true);input($l,$Y,$q,$za);if($za)$za=false;}echo"\n";}if(!support("table")&&!fields($R))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($ec){echo"<input type='submit' value='".lang(16)."'>\n";if(!isset($_GET["select"]))echo"<input type='submit' name='insert' value='".($Ai?lang(17):lang(18))."' title='Ctrl+Shift+Enter'>\n",($Ai?script("qsl('input').onclick = function () { return !ajaxForm(this.form, '".lang(19)."…', this); };"):"");}echo($Ai?"<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($yh,$ve=80,$Bh=""){if(!preg_match("(^(".repeat_pattern("[\t\r\n -\x{10FFFF}]",$ve).")($)?)u",$yh,$B))preg_match("(^(".repeat_pattern("[\t\r\n -~]",$ve).")($)?)",$yh,$B);return
h($B[1]).$Bh.(isset($B[2])?"":"<i>…</i>");}function
icon($zd,$D,$yd,$Zh){return"<button type='submit' name='$D' title='".h($Zh)."' class='icon icon-$zd'><span>$yd</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;1Lf9u7&)l;3J/CQXr2Mai0)e:LuÝh-923li7mZw4њ<-̴!U,vt2S,a҇FVXaNq)-ǜh:n59Y;j-_9krٓ;.tTqo0{y\rHn GSZh;i^uxWΒC@k= b/A0+(l\\x:\rb8\00!\0F\nB͎(3\r\\Ȅa'I|(i\n\r4Og@4C@@!QB °c¯q,\r1Eh&2PZiGH9G\"v 4rDR\npJ-A|/.cDu: ,= R]U5mVkLLQ@-\\@9%SrMPDIa\r(YY\\@Xp:plLC O,\r2]7?m06pT C;_˗yȴd>bn nܣ3X8\r[ˀ-)i>V[Yy&L3#X| X\\ù`C# H22.#Z`<sÒ\0uM_\niZeO/CӒ_`31>=k3R/;/d\0ڵm7/AXq.sL :\$Fw8߾~Hj\"Գ7gSFLίQ_O'W]c=51X~7;i\r*\nJS1ZctAV86fdy;Y]zI pc3Y]}˜@\$.+1'>ZcpdGL# k8PzYAuv]s9_ Aq :\nKhB;XbAHq,CI`jS[ˌ1Vr;pB)#鐉;4H/*<3L ;lf\ns\$K`}Ք7jx`d%j]4YHbYJ`GG.Kf I)2 ŠMfָXRC̱V,~g\0g6:[j1H:AlIqu3\"q|8<9s'Q]J|\0`pjf Obq\$1J>RH(ǔq\n#r@e(yVJ06P[C:G伞4 ^PZ\\(\n)~9R%Sj{70_s z|8H \"@#9DVL\$H5WJ@zaJ ^ )2\nQv]ՇQp.˵&h2dM1#[[kf,ոΆWq'fLkgn6G;eהECVY{\0D5Rx\"h\"ݟ7Wuc31Cxp<If]ѱ^{ /H& sρi9\$֒b0َIK\0]IDG}ED VNý mQ31KT3zq|#!\" ҃k/phy-.! 0dmK~au0>\$:\$VMf٨k6:3L@d1zlg֩iX97<׭#a}s\0\\mZXQ 'n.9KC9?lXq깗\$M2FqЎKB:bo#KXnMzȤ\r=fm%fi .q;-7x(@#9F)/M-6.V^*g\n!\$(7GxwDWba{1-ԐGw\r(:'%?0Ά)tjHV8}f\$f^wlKl=1ZZEigֺ1 Xث be&,2rk>޲O{-A]mMDȁ>G;ЗgQo:0.7lLשl|:nD-K*NY3x.dt>Ў)\$\$9BeeRGwir[62DZ9Xk0̱ 5^PO>C `XOk7\0K lx;48L \$09*9 hNF>\0rPQo< \\Fd'L:b.4,29@Hnb- #2`Z%.L\rPP\" ^.Fh\0\r\0 \n`  no\0 \r\r1`0  1\n G\0` V\0\n\r\0\nz\n@\0\r\n \n@ @\r\0'  @ z1\"* P #A p H\r\r%+Q7>\rCqK\r@@ ~\r \0\rd @ 3QёQ\n p íh> \r01qqq#q81<\rQIQ  l@': \0 #iE\n\"f.Q\$ RQ U\r ]crim2sw}1(2\0)1z Q\\\r\r @\nh\n @\0` @'q)@Z .RGq%p_2e Q& ox1'11 %f`\0f \0j\nf ` \n` @\$n=`\0Ҍ nI=\0@d' 8./2Y8@q. 42 E(\r:\n6 H*@ `\n  l\rɠ\rHlh\0(d4\0]IL^\\K\0\\}JC\n }EKIB>͈IJtdfht/FbxYEM4oj\"mN@tخ~dJ2U4I`\\AuQU.uh\\MQ؉\"G!TnMtPX#]Q-KTh\$cCDƊ-IbO`Pv^W@td SS0Sܙ<)gMhF<\rj*\$4'\rH[ɪW-Fh:,\\/ɾJ^ODٍj'\rT-&[N[E B\"`euj_\r`hF\rJV%!MZlP^:o>֯XxC ):mei/\n8I2\rp2)oC[mViugh6Zf|DUw\\WC45U\rW6mhcKog6Nd6P`Veo<%t?uf!YU,+e.W%\\\0v8쭖XnUBcfv@iN=u;NlKqwqKQ!v[\\7TO0{yj.`ȡiz%bH\"\"\"h _\$b |j\0f\"tĮ* }\$ZW\"@r(\r` CȂ(0&.`Nk9B\n&#(j@䂯fX^֮ @` I-}C0\nB}B5]|W{ʩb|}\"˅)}g ň,=cڪ{&bP/C \0 V\r׊ =BN\\=Kr \$ xՌWь8d H'ζ8}==\0\0]\n(7zy+\r`DY~|k3ڠE9CCёe@ w,@5|fxJlY%xE=Aj@OG ٚe ė֖L\n%/y?oyae`tG HJ5׃MY(6_eh tDz&x9jZ*/K:, j5Uߓ\" eqףY<ZuZ{!ezV %,|mxSw㦺=# @:X +ڻC:5Zt \0rZ!={ 2ñìy ǤXfð%csx+8A{/ U9y#1y,.5uk e_ y\r~{[Z:\0\\83mA9'8:i|Y/+9R ˺ÁX7σ:\r +^;MAΫ0Y*2<7Y\$ES[Zţ5vp\\iFr1:\">Wϔ<uħx<\\֥fƙۙ`ej?ec(<㣂fCZSDv\rU ");}elseif($_GET["file"]=="dark.css"){header("Content-Type: text/css; charset=utf-8");echo
lzw_decompress("h:Mhgh0d91S! F!\"-6NbdGg:;Nr)c7\r(Hb81s9k\rc)m8O VAc1c34 Of*-P1r416d2ցo#3Bf# g9Φ،fc\rIb6EC&,bum7aVs#m!hrv\\3\rL:SAdk5naF3e6fSyr!L-K,3L@J ˲*J bc9 9 @H8\\ 6>`Ŏ;A<T'p&qqE4\rlh<5#pR #I%fBIܲ>ʫ29< Cj27j8jc(n ?(a\0@5*3:δ60- Al LP4@ɰ\$H4n311t0͙9WO!rH9Q96F<7\r-xC\n @:\$iضm4Kid {\n6\rxhˋ#^'4V@a<#h0S-c9+pa2cyhBO\$9wiXɔVY9*rHtm @b|@/l\$z+%p2l.7;&{mXC<l96x9m7R0\\ 4P)AoxqO#f[;6~P\r aTGT0uޟ\n3\\ \\ʎJudCGPZ> d8ҨC?VdLL.(ti>,֜R+9iޞC\$#\"AChVb\n6 T2ew\nf6m !1'c;*eLRn\rG\$2S\$0a'l6&~Ad\$J\$s ȃB4 j.RQj\"7\nXs!6=BȀ}");}elseif($_GET["file"]=="functions.js"){header("Content-Type: text/javascript; charset=utf-8");echo
lzw_decompress("':̢i11 4Q6a&:OAIe:NFD|!Cym2\"r<̱/C#:DbqSeJ˦\n\nDZS\rZH\$RAܞS+XKvtdg:6EvXŞjmҩej2MBLC3Q0L-x\nDyNaPn:s͐(cL/(5{Qy4g-i4ڃf(bUko7&ä*ACb`.\r\nCh<\r)`إ`7CʒZX<Q1X@0dp9EQfF\r!(h)\np'#ČH(i* r&<#7K~# A:N6l,\rJP3!@2>CrhN](a0M326UE2'!<#3R<XCH7#n+a\$!2P0.wd r:Y E!]<j@\\pl_\rZғTͩZs3\"~9j>WeQ:X/\"\$8X硉@4H:tj~#8_Ax\$x{LEJ4'00<8>c(zX^5Dt;#K_vu1\n`jn'\"Ir7U*!Ynjk@Ì+5)̄3CZB2HV`Œk]<{\r9|gr\\襜:B2781͍d=HLU}^NߔC* /|􊾓V`) 8z:Rb8WA:\$ 2\r/BE~8iYtzX6ǰICQ7 3)6\00N\r \r0ѯ 9~'%Dw'cdi'ta&r11?\\CmSɞ\$ж o&R,!.AHG\"tPv-& 30. 裃!iĕkJ7 :sO\0^'7^(`B(0nL9(\0\n[Uec)Fʛq2R5\r܀e}ܱh.iZ:AYED2@s1d<)H`تI1I\rZGRϔ/\$Oc\"*p'7`]@\\ 4BXzgABTQ3wc-sr_:բS@2 #Ė\nuP!Te6TaM)\0v(sVAZS<a v (A%#&: `C) \r]MIC'/ PHXb\r \nYMzJFJP?J dBllDCS+-r1<w]v!)IKP4EslkV-kj,c,fRdC!&n0RJ2[3 x3TB-Glls`hsV)W4SvC:nd-x` ®\$AP-kr^sASV?3E2X,KtSAq7\n^+%skG< aw DdYڇQgbn\0A{濡9ù l.H g(0TJ\$h-Bzm\nWY`!lc\0ϪÄՆMLxyk*Z3EU L-~?ii4[ iDZP)hZ\n5\"1tŦd/BrJcN[FժxK߭nDQS?Q\rL' !\nͅII%2Q8mX-zIFF]t.H r/[!#\r{̫pH\n4&3r*L臜{Ae\0L(*{kؘDJ_C:U2\0I0,\n;| xe f0`1N`6>C){)3(t8dèO_DT^`H:c\0f<Y`f \\&x \nd+5U݇Oz {n-iFYb 7vo%)Xh '7UIVwSR}dK_4 Wjnτ\0l\r\0.p@\0[PZIXكcbqtg2 \\i9< Z@i,`^N'uGBr'&\$F(/җ*uɄYiO `ʑn: paPhnrM \0кML, \$ N w ) \0*l7Grlr Q Os\"46 bXoXbbeg\r `‹BВRhJ\"g\rTcj>I-zGolvu\rz\r D9BK\r^\rY@,BЖL`^#\rwHp DJMXQ&lg&I\01  P5&n0 ?gTs٠O!)`v X ͐QЂ\r y!'v.\r fK! {#*/\0H\0r(Ȉ`SpcmI)8.s#G\"`Ƈx'ŔE)Qo)&\\VRZ@2bʒf'dZ&,U\r\" *4! \rD'G\\VHi 1Rpc\$L2\nbToB8Fk\\\rB\r\0-l\n1354\04SHM4Qr2O%6p5/O5 :pL5)Pľ%E361\r4I:S\"LeGs\\Q627=C , &D)<;\\~2ˮr076.'?52K6sa6R23SVLM@Fr9pț3j@NSӂk:@)B\0N `!e\n'PX\\YqLV&r+c.]h2]4 z`q8c6q4 ӓPg>#.)7Ne\$nB`\" 4L~ ΂\nu.OB N@R&N(uN@:h\n]6* hPXΠ@,P3S6U:鮟H5L -6T6SC0FsRRB~r:T nA/OP2-H: 1e]P-'''8;8WUbYe!\r ^)Ȗp] j.`</\"U w3ʸb brA`fF_u^McTB _Se65`\ra)ec]cAa_oa2>B\$@Q<OHJtx\"gZ\$nW@ D#S\0002#VΕB;N1NKPnv1wEl*YnB4IqZ`z\0\rR'\"iO ps|)=fs1s72i-Gf `P%H\n h I\re\0X' \"\$Ye x@|~k yse`\$ZRz \\Wx[v`{\"Rwn'to#r*\0D3~^@xB~Ħ@}BUCx| YP XN` \n\0Rmz+X:qy*X(No^8[fG\$LZ[vr#Xυe׍\$': \0[\nr\0Z} b\$S|BcrQH)xРNDeMb ewzXswxAd苂LYC`{}q}Ό 4j4bFO7MN.'WS/uL |\")IՁU%VUՌ^q'K4=c\"PvV7H I! \n` firH tXn\$wFHĂP@rBa@W9`~bu>wbw3M~zw\$J<@\r&IX<_,[,eDuWL%\06\r?bLeKe*l;cXkY\0BL@\n@o\0h%lx=RB's2tp\"Z=\rBcQ2vBr4lv ^g(% \$\rvС\nP\\ ~U .R%ٯvГzx_e{3!e,{ewco|0EW!8wѶuitNef:\r(DV@\n{}cAâ׃|*!X¶\r\$LL/ELlU-/WƬc\$l\nUTPNŵt羣SY<,44.s kv۠R+bdFN!rgs\$?BB2?P\$dtU`U\rāT\"EJ@oUx:<3SSIxGzD(7~M|Q~b5+Irzv@wf6#E\"- (җ hS*7\$QlvB%+]2Ohˢrod\rw'! C`biH(\0 @DdB>,4qHүHbd\0`]e \"b w6;I?uMNj\rbS_!޷wdK\\O}{ =ttZ\0DxaN 3Re#w^NPzU=!zLy͸@˸c]l٬[p՞XMspq5*W4Xs^\"@r~|>B5g2 N\$gFu\rzTjB2Anyc^vҸv\nOv:v}\0P[A%3@@NJ=cXGy)~u>zĜQXW\"wEwt;mJnfa@Oo;O hVVc^\06,#2s*y2{tXo; lث\n \nZc?`(%4\$&GrT!Cmj0ԀC\0D[H/{!Ak!N:5q\0MKC.B7/ @`Ip;PGr`+ D<C]dž+<,%Hl`09-GsV]J\nu^Vi5/ 6\r%T:\n!@ nS\"&)mt1f%RVXJtX%@=bU\$`z@X2dD^Pqő4p@\\,B~6??2OP6\0U0@ XKpf6 RR,e8񶁄Z\nk .BfB:7]\"I6JU\$Mpa:4_gpǐ/0@K;pÅTI<AD =!C\nj S<e-a?XRA]@r4ӢӁOD% 9n9x'O4-ZtpFK&1f^biB\rPKƢ)%'*Age\r.o@,`[ `}+C24.(\nƄlfan*\0Ok!l%Y݄Et( |@J0\0D4!J\0pe@O.>;Mfk~N2K!h@ 5\06iwzgURXہ 8A[ƧѸ2&8Hf9]r\$j81AY <をx\n/\$h \0p(Qw@@ZDE`ik#ޯ%G Ad>B@H=m\$q t\0X@u\0HY<x*F @!<l\rg@U> ڷP 9 B#\nԜ0g.iNIH.=Td GL ܓH3S\0^0F-E\$\$ /\\q)\n@t# qF2od胢uG|H c9#<~:*;,BMd@t\0j5M!uku(|8%'Ȁ FЦc[C8!1 JA•T\$|6vX\\:nlr@#\$2!nC-H62B\0=@>H0>SA&h|u\$C\\`tk\0 |r ;\$zGq\"o&C;-[Q zLx :~6mE̮#r0 <iXKxu#IYH@V[QG® Ti P8*%<\njM\r.A Z&5s3<y:0!%RW**YyUFrHU0Fa,]Ä\"I9pGZ\$L!u3{Y8v g%Cvw8HY!K7i!3gc=]p7s@nHp2(<ő4d+0!M\\\$8\"\"`dOcyH/bmYǛFK&M,\$3 ]C>.F&70`>kSNN؟B\0l䀤ADdX:XcD4t J!B\0%(ԧь2IOrtI=@O\0<ib#Kz&S(:@@21^?W_(bQQ<b,G9=J}މݧEќQհ؈N J-LHFdz)u\0`zkhDQZt'hO!R Z!F5oI(,d5Fvb'\0&3HCC8<0)l_`53&\\٬QҌ@P@)#94F\n?6b)E OHj&x Fdm@ce-5M*lct輇JeD4\"u<OAy%/G60] @s5 %R+ р(hQ%\r\r3P\0ԴV\"ƍ!94U˅@QO tžr\"~&t@ `3#nP^D*\0|\0<x؈ZqЪ0B,j}'tU?/\$\nz52*6GPO#bWuNQ t\$\n7d@@9UPtyZmP SRDФR~o pu1:\"ب:*Z*bI F-&yTLbsWaMh 'e܍hP\$\"kqc5 \"@S4u3uvk*6ʤț_v\$ևZb&C (% ExE@;#HtM7Hd.U+8J2fd'aG\\Q7<sW[b8+L.)\0\".Ès|#7jgX, \rY !\",{bG`ĺ ԏd7>f X5 6 -%[+VeNbŀ}ddj+^Mϳ(CȦBYppflCdb;YVapIlK,=fE,IdPNҀ.3 c (ؕF046+ SZIp -\\H/\"Q']3LKUa[\rŲ8P2\$ÅW *3(\n/EOHض\$}\0.Q((iTa ^C֟B w4:L` !|_m,-\n\" DOţf,@XM;J`@P[I!i Eb&: O%\n!Kc\"9.ۂr=up`#-D9KAр06 i(QBb m'nH`T@QgnN,Hd`~l^<Z>\nu\r0w f58|& v4搔>צ޷y\0B^@ٞ\0W_Ϊ\\\0x_ \$siOIքi>f|'L-ltxP W3e[*(9!\\bn uXjH\"R=Z_*`!w\0w|T~8\0ڼ8]/\0d,u)6?/'VڜT)\$ j*rU ppD|jll~9 G<\rZtOq 0}XeC2Ȃ-!BJp=P9)!”\08tPu4tI'6CeºA@- qʔS kЀP-['8FP{\n0a: I# τ1/AĆsBfr4\0@=x\0=a\rki5Q~@Mhgb ^p~O yb xy=\$ AdZ7 m!\0x 3 U.ySuԬL\rV3q㦸U|;3NQ[^'4nv`gAVe1TNF{@Цat%L(H<^CG cdL}ip,lXquK)FJZG;@y1vxCuP3)Gβz)\n(>Zˏu=eJ9s=X46^YrqmURa!?ȱ@ ' 6b.*-MZ @R(elI2W6iIUP8 V2P*WcE,/@TO<!k /*%clZmJƭgZ&Eh6N+s}o1 \$BR\$'uƨmfeAO\0*+X[ WlL3J`Kpl_:iyIz0p>+P!EZ `tM3C;9ɯh\nr 2`@|@S7I`|Oz \nSp155[?qu\$\rIPDjhAl=F,K@p p'4&&,(KDTT4kIB٦%\0hA{CJ3#hK6Ά[%`P7Ҭz\n\"{ZЃ/Ht/n].5+cg=^\"\r0 'mB'v]15\"xrc[3.gtyCÓi.G\r_p\"?ѯ+00\0`*\$ \n4ZrQ@L .<@TB3d>9%A-\r?@.\nÐ \\9KghIXM^©X9, :I-\0N؈J2||q:82o_k`uzdCtpmE>L\rIPayj92jO`R\rMIH=^Y'0z C(9.6 \nř k/ZǫvuN YɖK|)'e::߰9KKP (iN+Г)t(5|. ),,@'>{?l\rN /:_}?I\"[`v[\0*!頦`?Xz)NvF\\nr\"~N(\rh?|i]eb=n!G~N7N@iw`wj\n\\fP%Az@0䫂Oe]R\0A1k]dfd E?ҿvBLַ]FQASKnbv6^-RSo3̯7SimZ@TF \r~(x/>U̝gi\0rX7 %f>kgc<Rz V59gvT0oE\rÃ2 Y6r\\FXxCp?@R%&xU\0ᷓ7Юd\0P[PGHGNN=4V&w;k83y ni!pwb>ksNŵ(@XAJcntx;%=OL.ZUW}\nZ5 /?v81L|bBYۊq\\zȇWmE?3lMyR bGg8%:\\M\\myI\nC7I\0D'XN98QtHKtXV穩Y%2@.fl<-Cr@Ryt'Up!\n4 9ܿނuHGp__(\0soɾW7ޒe\nY_YftBc-9bjWm?CKNv\0'/gWR􇰛Q#496DVgUdaZ6#MSkCV\r^(P*A\\6\n1(}?wyAp\n:UqhNj2 =8Dz=<_ڄq~^ne]Rqᗏ/7tzcja (Ӽ[ YcjFX7 &Hv0OxHkc\0[p׍,e\0(\rmpc+)/xr@:4\"7{M66 !|ɶ\"qB`/> M\"l,85t6rv9Q_/yMz0HWޔrT ]AL>{2ӯRJ}#=Q^2 \0w`-zr 9} ^@#OЮ`-\0yp-X\"*1*iMlqa/b\"l#A0PtyBhlPд\n\"%H2Ȅdi=wmj\r(\repPL˕Hq(Ą2/U;;At\rHN&:qRɜ`li;MwNS]W1`4.ST*w.T|=tR\r>M{`/s8/\0 -Gt -Ni5b\r1)!;ܟ!`ȡa wB\r\$;%uZ420~~S\0g*ÚQ|(?*ˁ_GD|(}ڵGVHٶ\rm&(2bJW}]2p?R?rI/#~\\{׆_u pK`?x4@kj0\0VCŒ#\0kpDu{ɺ@.[Ϙ(\0Oc \0O\0P\0pDp\"F9\$ť>(<OZ\rK D\\6A@% :(Xp)D\n6Re{)_+,\0@# V\0^A<VҘFcbPj\r0pVr\"r@:y( {n5jD#.S[T'2<{p]axnkz\"\\@1\\X<@H+;7b HWxBDcLY! 31&E7=Z)%?Fр B\"tP[w s;A&~ ;LsX砭v\\:% x k;)\"? 8!+.P@ ,P8e0I< ^ pu@2i &t\0A(t> 2;/bv- %P \$vnԀQm=Ӱ<`u>u\r\0BDZ\$| 9pŸ l&7\n {8 PjByHŇ\n' @<R(\"pS~цB 7 4\0");}elseif($_GET["file"]=="jush.js"){header("Content-Type: text/javascript; charset=utf-8");echo
lzw_decompress("v0F==FS _6r:ECIo:CXc\r؄J(:=Ea28x?'iSANNxsNBVl0S Ul(D|҄P>E㩶yH ch-3Eb bpEp9.~\n?Kbiw|`d.x8EN!23\rYy6GFmY8o7\n\r0<d4E'\n#\r.C!^t(bqH.s2N9#{c3nӸ2r:<+9\n<\r`/b\\!H2SڙF#8ЈI78K!+:+&2|: 9:NpA/ # 0D\\'12a@+J.c, 1@^.Bь`OK=`BP6>(eK%! ^BHSs8^93O1.Xj+M #+F:7S\$0V(FQ\r!I*X/̊ 67=۪X3݆؇^gf#Wgh7Ek\rŹG)tWe4Vו\rC+8\r\0aRؾ70^v6nxP\\@yAR o`K~f\n{f9ť~!`@C.A޺.9z\n l빨w~\${XHpɉح/ԤgcHfd%jc5^cH{\$\n\r!4n6cH[.6λ\\7Wޔ>}hW^Lژ rY_WV:@v\nøi 40BE*`z|ڑ \"C(mΈQ\$XawK- M0՚^?\"\rt\rh }yzɃI? bwA?щAhd6A^2a˃ZR иհ(,>)ޑK2!Cl\"\$!@[fzXHytA'XSʒ%H\n4&4VSZ_3RlMM}\$R:NiՁ@崿,cY2cgp::؁ HhPZ`F8AW^|CH+g\"8G\0t \nt&\n#sԖu'N\$')/` \$\0\\D056K㲿=A~BEZʖ٤@Y;'n=D2 l'/jxi&{WнY;q\"DA8a^1\r1lx)傄*R:p  *P{0ri2fvM3ק!dQ3<\n9No4Sjo6\0D hKYj=IxU -u\$ܹBn{a\0ra\\ N-\0CwZ9+T!ª\0Ԡ`!.Z\nrP?lhe>w0A)_!7[0J>TR)x8p牱DM-Epq\"\r\$qTdUzVL|P2§s鉰)=C'E\"\\[/N|Foy&Y\"YJ4v{;b>:]9:H [Cv4hA1?&3Җg jLI`7ʀZ ^:k\05|ՠh'2\$`C!Dm]-@R}< 1uy\r؅`ehcN\r= ̴p6.l夘6EDp}ǹURaqւy;Ӽ p=7A=T^69#6![E\\@:oo#3/^);{K . v8<bm)W\n2sθ]a'o%C{x\\\nYuhG\0hp;|*[8+vj~ȟ|rxLwtwʻ=>v\nL1E\nA! }|H'\0pA >0¹n*L!B `l\0B!L\"ͿwE[sf8oPݞAw)E|#\\SsU3&>^{_ϖj/bR//L\nΰδE\$ N@<vzom\0\0p4P.vƬ\$MN:0o6O!.0p ̔!\0\rop^c Z0k\nPPf|b %m ?P\nPB6.Эn\r P<p pXR`\\_\$M ('NA(~jÂL&`Bh\r,O`ck ٢)1*eld\0р~fڻƖ`K\rn'qt `VWD: ؐ6\r \rҀZq۱xI|FbR%k͆ @*r%\"+!bXrzifIP>\$ E&X%>B m`r^%RbBdm#a!V!d\rˎRO'Χo&S&R@Q 9&gqLLc Gb{j{g+l@\\<B|b-\"kD&\n\0DΚ( qL8ՒoNv\n %fP \rnKt[)Vg\n\"ԽN\$Wd 4'r\r#`\0Dz6@v(\rrb\$ @[fk9r7`\\ 8 D\"b `E@\$\0RT&\"~0 ` \n bG) =@[AJi8ge`dk;` 7\"z4F \$n42z7I E)^ь8\rŨ Nsq0ȎbPA+I:`WNJmIW4<nPJTJLbTJOCJfٔXN=Q9`7LfOOzS5 P\r\$=%4dnX\nXdɋO\r)F*hn B5\$jLbsM;+P\"nSw7QӃ8#j\"QDnfgrweW%)dXHWQ\$TK`5qH\"ukVURCH7@1\"\r'SUӒfW4 K0n;= cTDFfX]eLqFE\"xx\r(\$4S\$)F JtDʕDE(EF&Tv\"*`>|U/QdRv \\ZS\rOaҍ6n.ֱ\remvqPS]\0weOt_Pcw&mjozf@o#omO%g `=3mD?A/]5erk':uj|@wH3s;vtv#k&c_#m ^cIJ)nj\\wbဿ_BQ==/R+MYx9T\$z9aҲȡ2 7\0&yB\0(l\"*>MX@)xVW}.K`T\r@ Z'-IkH75b ?ςl>w `>\r}xZ8`ɂg]QdgO_FndL v54\"2xwW1[22KuL%8(\r-Ӎw×eA5 hW>xf (wzx-v V'Lv R!vV0y-0\rWK]b ̖O\\0NjS义Dج\rg3lQYEwdĘLX'LbNǹJȬf2ļ {8Ƞ#xsIdEw /Ȱ=UTYvGG+uY#RJ\$JP)̬JK顅x0z5 c\0n7YT9`Du_Yy#n:%Q9Y8@BiU^9TODڥTz#\$oj󨹛O\n'YFMN*ؗz٧:c:ٖÚz),u0Ă?!ĵ~2 { %;ȏwV6yk]~Fe|G`ShխZOXYKw;L\$p@k*`߳,Z?+ɣ\$ۡ9{zA7-n{١]~x_ V d׎;\rz9l\\WcwexK();{dqJmZ<:`85BK+U# LZIzM|KTZagsTZ G]=3X˺%\0ZUZnJ\"X\rX;Ӑ@YȌQ#LV9\0ۛcLp#U=1x)Tu9`Sڀ !@\\߫%c:FU[<<>T;x`O]}9yę?Y3=%2)ls]@KQ`ecէYXE&g\r@例6%=iQ|g|:9*5n~9k+af(\0+5I5޷õq]ietN݌M-5v3sa?e|R>zu駦^qQNۏ{Ξgd\0 rȇ~{4~M>>_>iwIW>dub?ʬAP\n'r ?@TQpՆKDKMI6@ZMIIa3X &U\0`VqGvzNO?f+Tn\r<P?cs<?S0\$S'b}`-`! `:OjF~=TڡlL^T5.OᩘP-YXK\$9+6 ˷\0Љ .MO\0ƿ|l/1V׬:KzS\$F\"?{kjow_PgDLkQ \$ kLޱ5_}B\08\\n\n8Vk\\`?\nEZb-VtS6r_%IiddH^sCI-b ̄)[ X6 rTj\")`{ qB 7VYHɆ˙JUA|\\YE j'L*kF \\#C OV,!Hហ\"f(Z̀\\\0pQƎT=.!G8^ltk\nkxZG|І\r_ @X<<\"j#E:=\n g \"OR\0\"~*\0eVIT)az\\?4>xܦ焨е/}Kh@K4xy\nƘ9\rA\n{<`PD-=o7{Ѝr\njT5|dg 9͑RGyf3\$x84ag<@b/\r\"~^!5#.pHhsp dq'7їXc595<hF0ƚ.QcTDFz3\0 {F|qmrݸ`@Q+&/4b\nF,я8*@D = u (@at \01i\ncB,h<3%b0\nhFw )(*XV\"\0} 4Nuq׎Lp[2(1H/.y u54 չ:Ab~vHRD\r#yG\nIjFx* rߏLSJ 8@aJ\$rcX0H_h C\$Yɬ'Rm41smBd0I'cUd\$\0P \"}Ba(/T\$B\n(ND'{|B~\0IT  P,Pth]%+ɓ dܜ)ҟ,Y1&_I he;Օed@\0@AhA&)]:P!\\k,M\\Lq\0E,PKD O\0*RWHg\$ sLav@m4C(LFx=lbh@Pݛ<9U|_@\"@ \\0 E6p\$8R&b@'̼\nP>9f^@\"̬ 1\02\"`\n\0L T)/M&isMqZyL4fg3YLNy馟5ٙf.\\-S5d\nǟ@2'T;bhPP,Yz|ٮzp-M`[82ms{N&hB@Ɓrq)( 1L0 D@P)|:NFo3:6x[k3-\n~)Rf3-a9ȀtGg;\0SisL\0B\0+Oe\0?Y4 Tz!>0Mr31qc;0'Le`F즜)Nu𰞔f>Ϫws)iPTTgO{\\B)ТXhJPrt2¡>P\0O} gC:'P֊3hAO\\U(D>|4Zx9(E\$zӑ&2T)*@&\0 AQL`N9 B̰O\\l|gkc0>LfR)AR\0/\$XE)`ȅ\\kȮ˸p)GTքGd 4E2rp ϪZ 6N< ]3sґ@l`(P'd!qD bm8wN Ɯ#<J(\0S\\CuVkZc\n@N*x2\0Xw@ aEP .iJ!%D@Pz΢&l=BiP-Ԋc|ZjAS*xi|*2pTcqz@!5/I7ӲƬF,t?U|\04jH 6ѩNHtD3p'qS<(,\0[jMw<?ux\nY<b\0E^G)|8Io;-e0\\\n=L'p\0{XU07`,,S9yP|iOh -DͲLSY[:Ӊv%&v94=OANt1\n\0}TU{^MSR*کBtVR׌Qgkz~@ \0nl^Y/YWaQsaʱXĴ]c,E`ZX00 mRkX8#[RwP\$HKu\rkB銂uNQ P6cF\0\0n r! ;/=De4YA5]O*`:Z`fs,~+<\"dU3e\0f%Pw^Hמ1` yYq ,^j\nhK#4p1veZb)2l1mUK\$\0nt/nxZ 8mEjJp#6F~E(yR凰%B7\nV6e-jbYj䇐e^B{6U\n@cW nyC`u}yiVt%0bJ,p)g1\rVX@R4;\$V@=sx ƊP̐HH*IȡX1ui;ᕦؐpQq[| (`+G]rDž\$O9dZlE NKz5u5_!Wp'Lw|= ¬.I lvNOPZ\n]o+?O~'DZ# Sǜ}ڮv*l\$Bi2E]ck]ER\nt)d7fL Z.xiU/`z`/^ b5yNvĕ+R%U66TCU;W./lQ`XŮ]|t1\"G6b+W/W e\0k{ԍ`e?d@(Nt)\n)a¬R>_!;}Ff3\"\0\$%Ea, R%DgKo!4!gY20_ XX 8rͣXFH `* Ax#EԝX:S=#)iCL(9T\\a# hP(5T.#q _ZM>Td=\0} fF12BJC+X#5É2-JP\\+,6aYb3]o@`c}a6Jb\\F&c\$0x1+ .Oq_\$W5%M0W7b\rxƆ, ,BalX._q8?-X+G,d`q16q<C\$e)VWca 02E'{0:bTG20\$h̝՚a.8,Cdǀ@ZV<#X_1U1 x\\X72yɰGDY<\$0HӒiVYN(rwX+”YFTgPe\\~pX-Ld++3,qK:BYOH`Ox\rŴ2rpx<&]Udb*\0I09x1\"\0. ,7D3}bh[2^jьG*.Sx!Ċ0: (? ^\0x2`ͫ7\$I\"H򴒴ė Iq?*PT\0T[c8'RLa\\ Bc\n,\\>g(Ҫ\\[6jނ@0R?uSl:K&%h@\$ Q@DՏU&%uRz*'/ +<04\0L`3wRmPR`Qq5%X\"lY| ɥG :U\"\"Pp!p\n&-f*dil tN, JR2Qp\"\\^\0?m}4 mbj@b01N!\rQRN/sOEfQdp\r_/D\nG?'P:j\"5@-E[TN\0VU:½>DFZs\0Yڿ])Ȇ jK#(mkB(Yct.<s\\'p)Եk nīݓfׅ\\^~;tX]yZ\rn=~lQGt؅#~ċkRu=F! x\"#\$C7-׫=`\nfF<D\\ \$\$p)~+g&J]y-h\rҀ+i^#5;9Tsف|\$,pl\n4c\09/&m%٫\nnA,;EG †p +(f{&=n8ۑ(XȚnh;JܠAk8\"wf1ҋ5)WKaP4ne#ƪQj7E -scJ-M;[/ Ŵ\\dV7`tw6=]:x 19[,HP<OZ=3O<@e+y魡xOXߎ\0w4i)\"ap^QpKY K:ujn [S\n.Tyȅˀ%~4\0>@5^Daɀ=p06yJe,RUα7E8k`ykSo)bֱiY\"o\r;ЅK5m@~gm\raW*\rH0/qb^Օ:j/).<޸ʸ2b5JLз{݈DZ3q24rܻ#Xykc德 E}=7u1>3\\m`<Z?7C/s<彿&>gntc&do4\" ;0t_5FrHr0O1kkiNbvit^pumEoVOF\rZ4_u8 ܌ޢ\"\n+nxF=9n&~\rt7r9N(^'J0W/*7~\rYG+pRnXˣڞWJMM-sC5K tD\\t8,sE͡W pz]ݎJV\r}3cו0=On}pDw_w@1 鈷zh(=O4%m4P7,sl'|7}JO`.}Ϣ\\~3\r?~y޹+=C;=PO\\BV)\0'Bq:xDRvbyK }y.cXrG3&\rC0>|MJ#@ܿLS=\nqב{_\rV\rP}|\0Ds<6-#I6fŪ߭l%@Fb)/FBe4+yzNbaEgT|L7\\ r\n4).!n/ƔըB@ðiL5}G?71F/Wc>|~+\0\0qL]q dANF04N\n\0`g1: \n>0n A*OwN\" Ee]҅G]o,e\"*v7&i{\\4o<_bbI1^ys6U?\$mXf+9I^PA~-{oͼrB.ǕÂ\$d9.n\\+Oa#\0TH7lo~Wx+.YW+K=~}|= tW&dtJ(<ݶ㚑<#T}oJz\\1 <%M1mdv=߉\\#~_79a\\R<k9LifI0K8'pz/-D͍wf&&~+~!UdRҋDi\r@cnqB|M(ZB/׏#Jp[| +cMRb*MjwNDz \"F?#HU`\"hlÄa\0(<Tn?\0c5w\0ژ&\0Ӹ;&5fhZ(k#-\0ae\0a\"?\0[00<lo\0005{`\rB@<7>` @p(>DT@+|\nž5zC.pպkɎTYJr {,\nVB`^[3^@\$ۮ(dxw@9 4@bqj- Ļx˷*\\5?,X(iE\$)I30\0R`\$ؔ`'O\r2N& OGTA*R\0= 펤*.\\zk ? f2%j^i@^M%x H%<(.NA.V[ N \0B3\0006 (.!;1ʦ>\$k@F#@֓N\$!a\$N`!]X\\䄂RPi^8.L2a}/ At#ALc-\\AڮBU \n\"«|PnAy\n!\"A| AƖtsJ^ЈA~ &\$N`\$;:T\n[w \n\nEJ 4ÉhAʑ\\/IW %pA B :S' bN7i 2PB/p ] BS \\% &P… YXB)d\n ( p=HP82 Õ :\rzO@% 2pݎUiP(e'\rVB 4vL8\"R0|CT 5\0:BxRp%ALpAT> ,\0B)Yiy j60D\":\nÁ&pB4pvD/D @C\\c\"qA` \$`0J\rT-Q \$>?14COSՂ3IX(@> >0t]\n: C 0\"l;9D%\n(>hxx5׶;@7+ \rxB>\"'NxB%nl2;B\0=;g0 , AF0'a&h`6?| ORc5A\0ZP)` )^yQ\0 ښ^fS/bLMEY \n {a\r\r1eE 8h],Zt QKE:#ȫoE|\\iL_\0Ec]pF`Qj X\",l6qś\\ZQsExd ؙQ<Q&`;SCdqE\"rFT[1v5{FOM1TQEI0 T Rz-*qyF3Z[`2Hg11\\Ưk`<ObqFZAE T`1Em񬀌nхFdoQE8F\0 `9GL^1ƩpjơpƭqPExL;Elf4BA k51=x\r3Ȕ@8\0^/B@T\raFLwQBeVHM48Cq2`3jrd䋀0(>BPov8'Pi8L#ɍQ1&32}*ALjBe6=PO\r\n߀0M &\0`'HX #e lh(6H< Y`H+2\0 RH\0v\09 !Hz-;AR\$\$\"ii ^#pT (!G` \0+h2FfH@a/Ⱥ1[#ŀjPH0\r@*D0ߪwz@2H\"̊ȰL΅!\$|@)J5D\0\$:<~RQ>4gE04rULM4JM!>4r\$ +\0ژ!^f0f!nd6PR\"G h􆦓\\Hn8r ;Z\0#A,J;,(0&\0D/#/ @3!2\0vywBKhFhc,\"JNGa霄O+@;H8GZ~;bJ:*<P24a\r)&/)\$fBi)@LRC(83ؘgL ɛ!r?D GT)9*\0ҥo!&\"B.q7c2:\0Hy?Tr̙\0ԜdTi>63_+2  !`2O|ï+e\$4\r@\$`\0|DZCKx|Gr\$oK}L`-5+>CѩO\"+P2l\n+{@@T\0;#(\"!;<2\$ :?+qqɄ[I |J v6\r؆\"\nb(ߒbI04J305&.g!+xJ`>9NΞW11UwJ4Jp\r <aH@ TdaT|\$!\$\$FG\"h MRȚ!l: %пF]._/b2ß` Ӄ+ZLܻRK=*:0\ns9+Z!*=,!_ČL0ѳ<4 3G˻4l 22%_\"7\0HQBB\"3a40\n%3.]4Y3_4հf56\$<|U3|ՁM^teMi(ҺL\rP H/!ӄE0?65Ͳ@,ͳ3`p! D#a`d@<ʩ6547\$U7Ÿ'>7fp\n͸t\0002DV J݀ĺpU!Xj\06s8 '+*ŧ( IH8UM,\04i jpC6awҢ'tܟ-.~n\n~S%tή^+? 9PDa) {Aɣ#RY|4j*?,A%\08\0V@;ϵ/ +4\r0@[H\n͢\n#L 0<3 Gaiڢ&*\nsY!RB(O@().#)jr hR\nr5W\0t܀x[ \$#/#\0;.Rrk, sӃZ`\n/=I2RO>(\rGϷ=+@)H>z\0+R49\$1v%(\0!BU%\"DPw3i.2ǐeLIOT\n2kjqO)@lIyt6g b%\0ۍ(̅A\0S&Ξ( N( 4H~s@-5`3(_ L`FSЁ2SPzdɪ*sw2mjY\r&JRM@s` 3\")B1\0C Ӯ\"H5B@i\rFz_T-N\" P 2p+Ig ) %\09\nb(AɎ\r2!RqY!Z;3aʈO8toʈ1U;!LDma\n\0Gd%BBKO@838Me6 S_6C%+FJ.4cDPRZ`)P\$2\$fGN\r]2\0 sp8i05\0<*I DloE lsHM\r\\ƑP= )[ ,l &\$q9ivd~震-J\"(HVi\$*Ԗ+3or\0dA Oa  K&)YI?Tr1[4ŭh9ғt.Jb:JJIԮ{ItRv%'R,A=K],#RJ68+J,4K lT\".J%04RK9Q0@lTRKtRiK+RLm RK}3!ҍB2R+ n\$9t2[#6l2\"(5UD}7!SK8T\0\\\n@E6J0 ( RY8Ĭ2\\}\$0%Sx0T %JӇ0w/R@82T!C͎ 4 ZxQԃ</J7\r6\$eP;tB5A+Q\$9M!\$TL2P -!KD2\$\$\0+eB1͠D<JI\$\rA?rR62_<K#15 \rx82Q;A+r[zQӓ^)#7O\\ LLn&#=SX`4-&j!U?c&h/H€9Xh p\0r/lMIJBWq v])Be18E y0X@uMN>\$@j]B GT7օ2 PBu@64\\G T` mTMTK%S)gUnS@mTILV>\0aU!u]%X;Ue@f+ hLH\0:FQ ؿG!R[TWQLk{P~\0_W`b+14VX\raYZDPyY5U4<5VPeC/\0[GusY+`9f5#Y\"AV|gM0%hbu(ZV UZ{MbU5YȤڭZлխZYUVu}kqZm5Vvug֔h+ͦF#Zc`oUfZ\"qW Z+|eq VD3U@Ǡ]xXHuyƃX`e5WXEaXL,c\0lj>\0RAm\0F8\n!:zP eךM5<|W?[fT\"e)_ v!V:4Bemeu~!MQ<2tqǥW}U]Vek5d{>V<~G0 #P(\0=2CҏN=\\ n)=.#T=`\n 7`ɏncօX!`rF\nv\r'+b=z- +X\"\0`@!`x\0!< !rh5W+əXn)bp5w` )3Jπ=E*]Xuc*X'c*>rm\0*ϏB #(='؟cwK \n%\0\rY0\ng،%OV\0 =\$XYYdx\\bR6?dV`Y\\H)Yd\\#&( 6 YP>@\\+\n\0(Yf*iMf ]VhjZ\nf)NAgzi\0\r6yV`\nV\\^ IY>\$>H V+ʟ+=hC&g\nM@%\0`oiZ:IdVdwvx=߀g(`geA'4@>\0Yi-6WZX\nv X9j\\Gg}oY\0@>g+p< 6ȣdf#?+=6)Z2&\0>e)Y=\"tٮlE~ &dvJSlPE#Adi;d QYHvkگe]6WOeaf-ٓm fN=%̀WgkY_f*mYfvہg%֬[y`dBw=uzn}`Y^%[[h@V&hh?hYŹ6ۣhͤb+=o\0i%֔[mۣi֏x=X-ڿpPV\\j26Ҁjڶ-@sjYaŜ@&Q\\fͬĶH8u=P'>h\0!\0=tiܘŤTͅd\\a%GauMڣrYs%VU[ sEZseVXmw8[smw6[n6lٷf7=Yne\\rVv\\r*-S\\nv~o!3oU7Gou:]=u [u=Kt]\0 seܷu[p]WS{i6Zt\rij@s@݅p1Gqڻ`Weq7:]qڠ\\wqsev٫tJehi+pB֌ifv]ypj)(j\0հV)H=&bT'2~&=ɢE3o=\\g6L+\0XZbMv'UzB\0VŌCڏohTvgZo.Ɯ8شI\0u2&[nE7X|&zWj0a2(|gJb;%>ӱ=E#[o \"H|p /Apl--\0*\0-ayBx*Za Ol\"uϣm&[]6P0L,J3@~@ge` bevx \n`,X-\0i>IH=#\\o_zE ص~`*_lEml8\0*\0i=V' / }w _wFIYm_w\"YceXEfݹB=U6vHŃ\0eYŁ=*,-ʻ\0eG/\n&bfJfXw*\n`'`h6++:ew\n@^ duR\nZN=Wc`!#h?xh\n%X#n j;&o7ŰD`\n@N%(~wa`#\0L Y&UUXfcڨMߕaڨndݡvIh龨Myu5*ْI2!4Ed]\n\r\0Waq>\"T>,0{Gg(UHc1䔕K!HB!T #Ȇ@: (\r fu\"II82& 4!M !nrgD<H![ҡ _<`9a\$ `9|MFyR^T`|TkL\n\r# \0.pTCu% ! J+#΂Hb\0-BHb9! 'O3/44~&sNVc5<S_)\"6C݈?VA9P\0jR\0PT` H6+1\00lX.,Cۉl%N{x)r|3+=H.. ~~rvm *v% 13x,tEӠQC͋hJ)P s+ 9&F45 B,Q/>Z@TE8;c\"\r3l12pi0TLVES9}|a) \$7[h'N5\09ŏh\raI>xXᏐx{F?Eg\\i/@K`2#d\0˹l0/5|2U>KT-8I E706+IS|'!:UN^H8N\r6 F\r1IQ(^I3&m_5OQ_&@^J\0IGdJ3̡`g7։6N1>0:lN\"(+d 0KUD{XK-P=>\$-W^\nD8Vo@e0L9EݒrGneDU,_v YXVh7%ݍ\$wS@ M6Uaj/sFJY_aY,嫖yYdU[ykɖ9p塗Y*@a6[We2YؘT6[8YWey9|ë gN0K =`ϘV`bI͕v+jؗ82f9%aEfC8Kb\rvdXe }pũS\0\nY|385W]A啔Xfx|LmHFQ0O6jyyDv0Z5a'}q+DUMl\$\$2`\"ԡXA.A\\yWNVoHC6HjChّeDv9*&U֍yOq3ȮᗰyhÜRA>QIyg4<u:YJvi!Hgc%A*M:Y9\\f0a59f6ZefD0ny9%Zy,磜qi\nM{qz{%Tv|Fz2gr}~9 u|EmB !P̀giUP(.hMyZXa!2/Uyz : ZΛ񠆁`8\\h20 sh1FAl\0󝦅a@h[΄h#U,D\nΆYhzy<5u~I~`%Y!FQ9 lRi6: +p>2eu̻79BEJxc^UVzOK(wX _M@S\ne~WNsi3)ɤ2NAT!TӌS'; TNJӂ=b\\xPcYDQ&2WL\$GhCH\$ b)6z`%l'uOz`^AOY~ i;hZ`: gk-6f̅P&CMkC+Չa.\rTdU  HTCp`ܒL\$(Y\rc#95.DhP\$#5%Wa1%2`\r-0lKeMGCOZTV>TtBcw>vt^RF}LU \0ȚK'|&TLL%Ă541Ƭ/\r\":\r̖߫Ay)LQxjǕU}7UX(cN~x ì!2\0~d5 8\rk1FtzdYk@؁T0\\YCΒi8\\5qVi CmExeJR<ζ+1ubB?kTYtbV|͢b7aS첟jA>PEge\0.yqlWk9T87QjMnlM\r_UQƬ]rW0*Hu:ty[ vfrg'8l/vKn&Y:Ki)9/m\nbtm9YNq\nl~b <h(&D~rz7\0׎E(ޖZl!mƎ8¹ƃg' ǜY>ęߜnjM};Y@^ݦ&=l=(8\"裱n2bf{>80ӹzROVc_\n{Qtgv!)EBBS8JWg{\\\$_h}Hmx#maM61>ٚW6&OQ۶mq\\>)` \nr\"j~=@1hv~bmФvϘ\0xj5 ~w`\01k[\nQó7m˄ik3W7n&\n?G_=E`<,;\nbHb@R4m\n uz.~wĠ]nw\r/ގ/?`I)ٴh8.p_f/ЛUVaRnrMv#ZH迮{kA9ztnǻ~!##t6(,(n=0*#So\0jv{ڮX*R=H;}b1ͮɗv)ڽTg7\0.Y\r{j;/W[(fZlTe\n0+ԃm]!&8\"qA&Sn~{DR_|LyD<)㉕N[@ᲥJ#/|,Ǿ@L%dJ+[dY0n`V`");}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\0tRNS\0@f\0\0\0 pHYs\0\0 \0\0 \0\0\0IDAT8ՔN@El϶p6G.\$=> w5r}z7>P#\$Kj7ݶ?4mt&~3!00^Af0\",*4oEX(*Y 6 PcOW܊mr0~/L\rXj #mjC]Gm\0}ߑuA9X\n8VY+D#iqnKQ8J1Q6Y0`PbQ\\h~>:pSɀGEQ=I{*327\neLB~/R(\$) HQni6J <-.wɪjVmm?SHvƩ\0^q)]U92,;Ǎ'p!X˃LD./wR 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,preg_replace('~\?.*~','',$_SERVER["REQUEST_URI"]),"",HTTPS,true);session_start();}if(function_exists("get_magic_quotes_gpc")&&get_magic_quotes_gpc()){$_GET=remove_slashes($_GET,$Mc);$_POST=remove_slashes($_POST,$Mc);$_COOKIE=remove_slashes($_COOKIE,$Mc);}if(function_exists("get_magic_quotes_runtime")&&get_magic_quotes_runtime())set_magic_quotes_runtime(false);@set_time_limit(0);@ini_set("precision",'15');function
lang($u,$E=null){if(is_string($u)){$fg=array_search($u,get_translations("en"));if($fg!==false)$u=$fg;}$ta=func_get_args();$ta[0]=Lang::$translations[$u]?:$u;return
call_user_func_array('Adminer\lang_format',$ta);}function
lang_format($ki,$E=null){if(is_array($ki)){$fg=($E==1?0:(LANG=='cs'||LANG=='sk'?($E&&$E<5?1:2):(LANG=='fr'?(!$E?0:1):(LANG=='pl'?($E%10>1&&$E%10<5&&$E/10%10!=1?1:2):(LANG=='sl'?($E%100==1?0:($E%100==2?1:($E%100==3||$E%100==4?2:3))):(LANG=='lt'?($E%10==1&&$E%100!=11?0:($E%10>1&&$E/10%10!=1?1:2)):(LANG=='lv'?($E%10==1&&$E%100!=11?0:($E?1:2)):(in_array(LANG,array('bs','ru','sr','uk'))?($E%10==1&&$E%100!=11?0:($E%10>1&&$E%10<5&&$E/10%10!=1?1:2)):1))))))));$ki=$ki[$fg];}$ki=str_replace("'",'',$ki);$ta=func_get_args();array_shift($ta);$Yc=str_replace("%d","%s",$ki);if($Yc!=$ki)$ta[0]=format_number($E);return
vsprintf($Yc,$ta);}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'=>'हिन्दी','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{$ga=array();preg_match_all('~([-a-z]+)(;q=([0-9.]+))?~',str_replace("_","-",strtolower($_SERVER["HTTP_ACCEPT_LANGUAGE"])),$De,PREG_SET_ORDER);foreach($De
as$B)$ga[$B[1]]=(isset($B[3])?$B[3]:1);arsort($ga);foreach($ga
as$y=>$H){if(idx(langs(),$y)){$aa=$y;break;}$y=preg_replace('~-.*~','',$y);if(!isset($ga[$y])&&idx(langs(),$y)){$aa=$y;break;}}}define('Adminer\LANG',$aa);class
Lang{static$translations;}Lang::$translations=(array)$_SESSION["translations"];if($_SESSION["translations_version"]!=LANG.
184593741){Lang::$translations=array();$_SESSION["translations_version"]=LANG.
184593741;}if(!Lang::$translations){Lang::$translations=get_translations(LANG);$_SESSION["translations"]=Lang::$translations;}function
get_translations($oe){switch($oe){case"en":$e="% (n0Q :\r @a0p(a<MSl\\;\\zNb#FCyfn7Y h5\r1rNQ <ΰC|~\n\$u\rZhsN(fa (L,7&sL \n'CΗt{:Z\rcG 9\0Qf 4N\0;Nl>\"d0!CDFPVG7Efq\nuJ90ar#u™DC,/d\n&sSsu 9GIC^\nDcn:0Cp΂L*<(;#X#{\0A kzc4\r2a@7c\\Qx(-9 b7p(*k2'\" ªz+ 1ÛQ 08G104+0z\r8a^(\\n|txDk3%8 x!r1m@;\0U,66JR2q*hSx'We\r\n젡*,1-gdcxؒH¢[#k⫳jp̘Ȼ0:\00oQUB0T,3؍.\$6 c@#Ы@2' \n& U`51&ǣz#m}\\̶ ʣ P6Y^%Gݡiz(5Jऱ8Ϊ\n)++F⠢H.2\"(hCf;b{|&FN\r0+x<u*;;S:ּH|/jj<`3 dc>\r|7('YxI#:B-Dͣ(\\Nußa0cgk\"}ּyZH/:*4#p֙1@A\0)JcN(N=ϳ(wPEp/'!~`}\"rJI2RI_Nf#} \"d*zO@(%CFRa%q\\Bh1I),H{^R[E\r#PB/qH΋l9>Efg);'ijj662`\r+x~X1:B[A*@\$.lA\0\ns7\rVHbq\r&, ( Zd8R0g#:%܂'ds '(M oF\r>SgYcxRz?`@˜RƵ\\eNb<H \$%W>ID#GtAtJl®A,%ifAdM6̯|P1\$D{C-'V0b0rL'0C .\nDYrvYXVLX\rsl&ES%* )2\\IRK3C#4j\$:Nك= I\"F 8PT*\0B`ERmڍ9x (M*؀O uo7x{\0U3SFnK`ʱ?\r8~}Raz3)n[3?hv~тaIȅb [1nf4;Ӕ6d:p\$X+-–p_p5^;T\$z-\"H]S_Ȗs7DgM`Eڽ\n^^ńdy&(\ngX`\"I]i 2ъm `7 <Zp˒KA#3]/>lZkE!P 0(5vy %E=fx KṖuE\n'!uRHO i:./-9쫺҉ Z<T2؝#S7gCtԙ\n=A4K1؃S&4P.U8e\n\n1lKe\nKzC+=\\* qf`qC>/CV9-ZرC-BD^~c\r@lNWόo={C%+q*p]25p -Ķ2v^2{f[:82. dTqq\\eN&vquķ9\0o|hCWnRNw޻V w#K~jgZ%}F>;ϕ7-;l mGqz\rƂtߟ5k SXIV38m_KWM3!)[L0'NWP 5]=5c|Q1Ņ\nظ9|N0 oqx9\\?Qlm|jX`\"ʰ}8/q+G~vv7<J2/aVXw/…`no\0.#v\"O6pF0#(.4°ved2L\0V\"FH`i#N0R+p\$joXkx:jk:o\n!eb\n8[}\0g\nЋ0KPV[ǰP \r; ƆF&8Ȥ0|p+00lp#@b6pcD7]lNO:\rhEgb*v7n!?B&:^ hl\$C16 nd\0\rV F/#H6gT\r Z9b%̋x\nZ8b@MFҰ \0+ѱnzD( \nx \r1خ\"\n9C\"\nˆ|ZoQ6т{SBGbD@%^\" VB68FkQh\$o~R;#.fR#\0kkx+ -/(BaRC6 \"H&cBa eRA0+jfN3ee~‚+|*:\0A 4*@";break;case"ar":$e="% )l* C(Xl\"qd+aN.6d^\"(<el V&,lS\nA#RNd|X\n FC1l7`jR[-sa_Nvf|I7FS ;918+[x]š'\$g)EAxDt\n\"3?C,̅Jٷdj=v=I ,΢A7i6LS: h4NF~.5/LZuJ-xk莿bĔ*xB4: I (FS R2P7\rnH7(9\r~QkfWrٰhA\\0b%\\D\"BUm Plp-\"\"Aqpk*k@7c0((.(@cx5) ,2\$(0쎰dB&MU?H:P6eRB,I+X]G\"m%.SIL# DA\07: 9V13\rT<;.Zk;ģ XнD49Ax^;pSU4J3(U9 xDlJ4J6H7x'ablQlMK0dTBT|Rգ(\rcO'4tB\\eOHDX+#] BF\\,cJ\\#T)Q\" 3 #X:aPƒF#\$FV(:ZE)+`G&emoLNqk+.Ym\r7Nov\nb,ejB?Y[2TTV==)>[d.o=n\"SI>ZFG^MF\n}+1\$m#g,TOƴS@wC)@C]ZzYD 9X Z+!C< @\0@  VKo 6*PJ[#>\ny_<\0uV35`@xgAg@Cg 03gLdIA\npn*T8uWrJr\"YȪVZYl-\0w\\K<`P/Ui|:/_&g9Rʤ#\nHx 20RQJ0Hi};v5Qx@]\0SemվWxD@sC݈Yy/@CL!:A<V37:0>\"k:0V+e ݥ2PO\n66 69_r).ՌCĈ!:&^,ZQ1oRi\"A<)2LG^AF3\$H n!JYsq:TcxUpoV47zROS\rQ\n[*#R[*RTTDk\\A@wnedù a+u(}#T#,\0C\naH#VDk.uRtH}:`!CBjH I24O\"hMI=\n[g0sT@UAQ:8 m1T@A~uv;pGYA8\0¡.o*ٿ1Ɍ_cz-H#mk^b7ȵ5\"6YUfp.ӖDf\$.5{d s0Aw(sF\nB3p84Ƿ#YQVJ[RPE֥\np \n@\"ra&\\ΜgBq\r{\0<*!%l*\"\"tQwA+Z]}WH@ #x%ɓO,Sv{.\r9; uQpe\\Q}< c6kmRhY]cPx\"푉1?8Se1nD')̭mL\nmcbɂiMv\nBe:5R2DPL\r뎮NG(s 9UR˃d-lPH\$, sCpD3;HlH>PqTdB(V7l,: (C/|XʛCy@;QE۔n!} aFmD410BRU%7f`BH*QXUA\nϻ[P'þoTxh\0e݆B,BB_p\$C1]]MzaR4iXjiG>nvIn\$\0tSq>ߟZzGF&5ϧxGXr\n\"K%B)TdJ#g%P\nK4!%bB,%#y)AV\"/D=apIc*B&Gb,,GD>dN,S+]T(e\"pDe\ro\\o?}̸00\"6'4g8d2P}v@0lΰ %h?#FbL.IX!&Hx&DZ&2bdnGLF\$ygOP Mhj, JX\r\r\rfLmJ з\n8ì-1G!VQ %Pgr@\rkQ1wpv0VujvBwQ -dOIi oRl`Y:\\M„2fLbƒ!/2Qקy!R,1-#@1N4P-z,4\nCg\n+(]& T>fĖH\$.<\$Thq.xH[\0=(2~g–ϐ%R:#-\$ -&Ny O\"c*cl\rc#'#l/y00/Q\"E/|a01b T2\rjq1~; S 2PD\019\nR10{b\\{ I#P6J#{m3S8S=73 \"35qrhs)RhB8:};8\0]EUi 8kIv=S=ƽ\n09@NEs@b:3LR)>>t51B\$j4d{KD.qd\0\r)1(5XPL#8fph:+sDIoUD>&rk\r\$M(kc@\$\0G%`(@\nZB/4WpMEo9O#pgdR!TlSG+\rd| JfNsfvS/s8nDQ*# DuщBAN\$\"fn^WRWbB&(RIBoC@uJnv½ K \\+ TEgVBQWSe3\n&U8< *TV2pXQ%\"\\F\$pGEGZOIBϒ1pfanzxf0\nl`tFpBh2qCV\r#VH#KGDX0m L+h`\rpk \0t @\n`";break;case"bg":$e="% )h-Z(6Q\rA| P\rAtX4P) EVLh.du\r4eܞ/-O!AH# 8:ʥ4lcZ2͠.(\nY(\$\$1`(`1 ƃQp9\$+JlYhmrF @#e&a9kG:~drUIzay2ƁѢ^ЦGeS2uJ\\nEW&oI\\qՎ=rBz~̲7Fp0bv%Èk;\rlJK=/\0X+ĺL=\$\n\r\r63L[ʏ;qlq*oYσhA9sr] ˈƹ\0*X7p@2C9+<j1(;qE0C:r?O/ґ)[\$1& \\ǻ,ԍT4\r7 #h-C: C1c(Lxs>\nB H*QI\$*ZFlCk=1PjM# 4Ҡ@2\r(I:i #gv@ 6X: #PHD@85+`@\\#CL3:x\rdJt3(z\rUd Ҹq#x@*ga쑠PD@O/e#\"X T,갪œOH\n7[(J2# kz;ʗh14;؎׆<붍 Ă;+|ޟ%\nLp&hZ\\`+3ܢhHt.\\fb&2!31EATЫsl'DI<s]Z,<o 5JzojysȮHDuiν͹0Y;t-b#ܯ×h4CR/fM! h_AitPN\"wBLP,\0Պ#[6m J)? *CC3M(\0Oq='>H[ 8 B. > BPPhVZ]\n+`6U 4:r !2fCd4xch>5`dfrndsKqy#<w,3./| nNI!@3R0p@B,lm|!+M#.p U&.I7,F ܖM:fdpRJUw*%hW`y%*2Td`,78D3\n0՞C x,UC lnE 03aS݆\"b }DY n BCHL(>U^TXb )(-6\"I)*rDI,pBT _kX8wa,.|0щ-LX>s\$(ʁ2A&\$jBs]GYYV\r#*NԜ:N66P)E(4D0 ]!6\0jT\n9W'sin`gC`o t@PsQ҆Ya\rcCi!,Wux \n (brLY:RY!Gq 8HctjۆHv\r!2{|Ԛ\r+=h 8-):|:P4ωQׂۏJb0Wz^aɲpChUCal`,\"gBShZ߁1\"8TS*Os\"2\"D/9%U\$ X徚^hM)z.njI\\A֕\\L5edoD;ArgBSc+LXQ*J(RSiCm@\"S<Qs3,yNF\$_Sd\$h+TTyaw49@vbqѮ+0ʒ.4`e\n[p>>UMW\$Zd`wr&䎓Ρ*Ψ2uuTTLb vF|/ ܸV@Ř|/n4 qbX:Ih 2k8B`&HVT(}`loQB&uLjF>֍*SjҵAXuѱ8ԉ]k\$iR;hr\nln;4f\"\"ѝ܆\$Qs  \\d[81puZ5:Wru (+nqYji-ܤl}bj\\5yk\$i#C)aE3U:0AC!Onmpo@e H:Fy> Q)t[Jڛ*wPihO\0Ȋf7\$L)w(\0n\\KvHP1n)/k*S\ncL\\ky vC)0<At\";]K @o,&d0Jay1\"6?K2\n \0@ %\\LZ\0ZKTZ&\$B&Ht(\$m@^lLm0TA6Ž^D҂sDXPΑ1%QM\"!med&#19/0&fԀ ֗1 7l'Dbr'hv\0yLn*xEPˢ-.PÔ7b5mW̤vǴ7DGȚ^)p :~@`* 0VC,DzAf:(z\$w N<4w#\$nok&BF֓x8,H(c\$\nF1H\$)%2>o'Nx~(O%\"(ǎD0'B \$lfvm)a(/)ͱ%ңH\$ NMD\"8N\n6gΜ⩆~.JO@J5cC c\0ͪTyrG.Ar0i-q=fm'.*J0Fخg`@\rJ\rO\r /\$n]1]J(UBhH2()u\$N\r*32lنi*Ӑe7(63)8Ϊ{\$\nӕ81T8/=H<Sc܂=()VS3S*Z9)m),J!?LO'a%AAh\$r(\$,DѬ|KCQ%C q2A9FRF@o*7Gm>+;8 ʎ61+6TcSdFuad#\nVlK>\r:4/ZEBJs'(!`TM3@հ+E.ܳx*/0nu{FeNԤAj*q;FSqTCGq)yO%=No4Uf4EUU.G ȅUΗ WE5VI(p4(?HEN%FQu5cȧ tR51DYD0(PBHsp'~9O=>)FY`U<l'-`?5eI'aNVa?D@u5&b3aФuSOd_10`S=Or`\"+n<;v\$DgZnY\\PP 8#P\$Yr ȽajKQ\r֣jikj{ַ4\0YLcjPc*f\",9x)nkXiv@Q}nV6o5duB6oeа\rnoG~)sB/DvO-,T(UFTx'F)7.24pgb!ȳ(j7F8t`wQxRkxy33Q#yQR\rV-c#L-jG\$Ծ;Lc1,\rK-KOF\0\np*XQ\$\n|sGVM\"ǩ&s],,φB@{,'v72TX<!nlXO[TT5dfFdX4ro68rVT6 jh1\",U\nU,lN'gCl5)s1urSw['WQv(R\\SFX/X,=ԭQݏ4ut0lvkv1|1C\0_ey,99.b Ns.P>)o-^d87kJBpNw :g[ (:i{l𘑸9sN#ίtpmoo\rJf~{\\f# ,0ҤRDР";break;case"bn":$e="% )Ut<d sNb\nda\n 6#k:jKD)RA%4}O&S+&e<Jаy#Fj4IjhjV\0B`ULcqؽ2`S4C- dOTSTLZ(JyBHWβt|,G8rgu\$)k2~\n\$g#)eӫf\nVUN(]>uL] q:jtZut*#w=vp=\r?JtH;:B6cz*\n(:O-*X#ps{B PB/j{BZ-INJGED!QY\$IMV.<SPw@H<ٗxm^&Hۼ4Ě6ش|/\"AjU<#*Io>)2,p,6IQI4ϻAQU8\$XGKpTiLKURtNK#p=.K\$Z|X=MSJ(ҚĜfBa*Adި74dNu`7c0(x: C1c(+JWO<۫w&O[^qaB*@bju4t!E*mݖx2\rH2S8[pd=\$SiOe%s(sܮ?%+'\n_\0x0C3:xyhv3(0;C ^,#(QM\\^03*>yDbZuʧב_QN4`uT?V>uMi-[>u&QD0J2z\r\\\n([t)Y%H LE.\\Jʟ(t'\\^;RN\$n2F,1:W1 t1uY5.*(AYY\rQYz<SFA¨D S%2CW0jVYJB\$\"U2rQ*2FLP̙cx\"x/8ocwUȈUG S,N,i//VRZ:ye2y6 I}j)\ngsQ*OO֘ s2W)&<ƚJ3Ja_#OJEst\nj .E-Gl/ڹ\\-7 Փf49\$|6edӳOl%br5m΄ocC.MLS),ebEU#UiqJF9'(SY\nm/tsfi|b\$gK0iL \r}pSNY=gNؽEX(USY_>ͥ[un彇vۂNt\r6ǹ'^씊'GTE4K32<`W`۬)|)ߨ\$RMȡE cƱm+HDLYrC4kLWh8XӗFm-(g[[pen\rɺ7fޛ~NWCtpw 1]%S,}خ&KRY1M'y+SṞ(GUĿCqK} Z9K(S/VP٩Jֱ6nb)\nbʜ(ltܴ_Fa81 P Cr؍9WRd,\n 0)vm2g*;ic:] .TV6y\\Tt~S\n˶0U[?,6F-7zWTRr)he\"04U*W:cs0aBֻ-Q*ї[FPgwr8]XP\n٩Ȫt@MNelD(thn_󢬸\n͙mRjX#wE)b-Sq{B֤OՕʫFR[i(Qe6H4)H7[Z}pxLYLFGP+M\0F\n2rdg)[f-P>TW.ԚS}d%#70Ww\0gcw.HhT4gphFyfUxqvBtb&Klj+j\\<b)a,Ѽ[sW@1s0_Gb<*2̥OAL5S;+PrZL4LS'..L[roNKn)L\"Fn^̣Jkl:r87@'CxM%jKkJЂx>BC` LDXIb/8J\\<*hR4&F[:R B-hgM0TU/#bvȦx/TΆi< FX&pL ڇ6h0N\0ҨBW\"\0EN“L%D.0Dtl6/D\0(f *E+nXYĈx)\rj lGF*\$,V(h+. A1X#b.znl4 H% FIÂ\r\r+|\0)dIt\\j4cVJ  \n`6EɪL؄bτߪOȰ6gA!D!~|QPVC l*CP,&W2!DBo=b1#'#li#uZarJ,2+ E%Qǧ\$LvpqL 6YNZH2qHr0RHW.\$F-҈0#Ov\"@@ A DX5EaG,go,:ҴW'-,\"`w%1xDB0g\$Ȧ{\n'M)4C!-̸WT138M˄T\"g7FꞨο&Rv3pM(s1aV \nW# &Lk'>zyM\nJvY0J\$;X<\rG\0 _.fwrp)M<ґ>\0K5<e<3=xCDxLs(]+T\"шsCW|CJF&2V(T 4YLE\"P7Rk)1JI4@43InֹH?32)SEK0r0k5CJ~p\ng@Q/\"~@oFX\0 Fji#)/ޓVyGެDT7LCPo,T<i\$d`Ǎ? BML\0ܱSo\nTNH(D)14%CVULS'&D@9NDӅ)53T'8ғ0w\0Q\"̴2@Ռ'bժw'B;K)m\\r%52'ST\$kV![5h6 BV[W6QT\"|1^5aW\"x/mxNvFTjbGZFGlu[uJ0DvWRz]=D\r0CJR6,n\rsb JE(R-B ON#n(vt1U]b/k<5l/v]\$o5Dv9@[U9q4f#]KpVr6Ws6BX)rK-t#zOs5\\V2}x;\0005Svt/ih7[TVy}x7-rwOOd\"o\rsps6|7(5XCWw|Q5)s;6:w`2~J70՗):GWruMCYsUm|~ c~WXU1>H8 URxrCRcw.\rtwYQ\\#!Kt7Yc^Q~X}Gb)rz|uQzQt%V=}8Wz;vʨi8qw/gʼnۈ]{0ХC+i!_c\0Bw^3fVupڦ&w~̦FQwN0frI[\rY:xN=Sz)P<R\\у .OXLR+ժ\r)7%4p\nZ |6rtKF}uNyaU(\\B7P͹=߃'4*'ҼQ]HK<{oƵL|dwKcޕp欔^ASi#*UQJr[frh#@!)9KDH\"79AN&\$dVTyCjXmZ.^JГRփVpїxH:UG ZP4gp:AnHb7r~g>U6'E</4bܳtAT\\6o\"vX/EJtA|{Ad\r7MGME6:|HMK? ʂ5vH:+zZ;d2f:Gr#Kr?;F^Q01XL";break;case"bs":$e="% (l0FQt7 a Ng).&0M磱 7JdKia20%9IH)7C@i Cf4(o9Nqi :igcH* A\"PCIrDqe0 >m7ݤSqA9!PtBaX. B2w1{=biTe:Eo;i&a1l2̧;F8pȐ3c{1cMYd2wT/cg̒d9\r;P1,&)BM5Қ֍[;\09K@!C.:k;,([^\nϳ _ P2xƢĉ\r4.@PЦ6# ^-JX: C1i5LN&%iŽό#R (GP9\$iˊ25JH9n\"9p #iD'CH鷔<c2\0x C@:td 3q \0xNSÐJ\0|/(3,j4px!@\$M*\r(NX514΃U3%w,7bsp++ @1\$cxhÇX`ԈNS\01Bu%\"# \rIC(0eoBh:#V\rnz^a: 4\02hؑC}~\rCNȜE5Tz5Lh6.p ˆn(Jj#l\nv}M؇x<06b5^\\0.UL\"VM[#H-Vb)ZMGx.+}kptVpgs\nmD0\n4D006Tv0h˫}CAH{x3&K O1@cpn\$d70ꢔ`ff%ēQ -%> Y0e\0F*'+u@\r91?}B1~7ʙT*X['rڽ6ĴZ@/e(XO<#&B\nw\\%cIi '~B8/\0sӇlZՊV9Dxx\"PhHInG!G^H(=T9PHX{1(Ch 5HB8h!&&U,c )H^C4mP\"8@G;RLKa~4lM'Vd@@P%S\nN%E4琒@qI e\0ӈqq'êcT\r;\0M3?.P]9_5bn ,Πcƨ3J_#T|х/gaL)fcp)ЅHԐ4eYFEZ%D\0;[C!4&\"2II;\r0s|\$0ohiaTB[8ua!p̆Q1VrG1:URLYg\n<)I+\\.d8@\\z\rg\\\$?F5&>Z&R;.pL \n~T ޭTKQMr-*O&y[`P^Xl!Gd\$^քm-M:bo! 8PT'rhRs\$<\n@U\"~Ah氖&\0zғpڿN:/ \r:A*d\$(#VgjKpJMx\nh.Xt5{TiitBP0562Ziq9ȐhuJ-ԣc }?MI\"s&m@LISxWq?0P0N8^nL(nܠ[@%jdV-Y\\\$1#BXƸ7Ize2|x#4 tXC+4\0aq)bSZAB4w Yq6vyxvnόT<4L\n5 \$l\05(~<!v@BH\r蠔<\nB(t19]u\0^\0S6Pv'̣AV:r0F IKBc8aDb@ O<t!Bpݒ\$%f\0 3G~jV]7ujm·R!hkgg`YqXW+3njPb ?k1S:PLLWq r\nA']\n)%/?4[rͻs+XZf W:2pwAi)o~fRZ X4RL ܮ;8]Vdɏ`+i£w[,fCLd`\n,M,6RM?\rƩLJ-2/P(5kZEF!fL\nJ8-c7̄YMO@M\r|l:\0SMZ*ЖRr0 1\n \nʏ\0&\$\rnYЦy\rp\rƧf-x%ԠlN0q\n3̪g(\"Ρ#\"&1&ƺ#&a/JNk\"m\npSۢr\"Æ8!\$czib<1\"-Q^'&4cSxEQ.%\"\"lНL +R\"\0Qkn\rSLyoܬߑƭoj1%L q1)_ u\r 4\$3e\"sP\$\rFz\"\$'8E<HmM%G%#rYpNv#D(\".e#\"`&@%\"z\$R'z\nw(QV\$=!q2E'ep\r-Q,ޣ|0)j8\r -43.V7 IS.fD.ޓ\0-2 C),\r2! P_M3A&U44p\\5dNvöw#bnQc\rLF6,ʥ'LrC3ds{6 (fs\\8ff5`0Q8h>擨,qHdv\rV8Bei1z4PJ\npB[\$O;'\rh6Azz7Hyr]e\r`S)+\"JqϾ7q3(<OIC\r\r \npO\$:)cfpfN\"0ʭv#.T >Tt\nJL&-#UMT!ƇeLQ 7!\$ɩPLP'-EDz#[\n\$\nNrNH `D,UMd&C &-9Lk!#dCdVA2!.#E ͢5Ҕf@hDDEjίhO- 0";break;case"ca":$e="% (m8g3IeLa9 t<NBQ0 6Lsk\r@x4d s#q2T\0Bc@n7Ʀ3x Cf4(i8hTC`uADZs2Χ!c9L7)I&ZMQ)B>MΒc:N!i3M`(Q4D9p\r\$Q5 M]YbscL<7N ]WcEY!,\nNxmoF[7n絆^ 4C8)llމ-ޙB26#r*Z;93#N6L\n\n\" (43Ȇ@)!4K,#r#x:3Ȧ4, )NQbѦtC3\0t9jk>cz,90p܈Sk*(7\r#ғ\"ne?4 #t:BȔ*ʔ.1ЃpΈΏ;`M1,; X8D49Ax^;r%H\$As<3^8UU`2\r dA^0\$sԜΠPHNC07[n5*{3N6X+< @1*xe4ѬB4Gȴm;J,z\\̌o0t7sd2+ -!Mp+ؼz86\r' rtܝ>aV4`54#'H<Q\rˣY،/\rڽ&C|K%z7ܛ4\\490бO0(:n\"BNFR@eB4B+NC<c3ͰA+(!.}\0N, FJ2PRՍC;D0<Ia7#+¤d9Nb0Dxf QERnR3*LpyyGy)\rg & ((`5I|2H\rb(Kd\nrJTSV\\+x\0wXJ=5Cp/IfnED)@ÒrB1*A4T< TT6R2ZbP6 j\\z\nÊ9, \nFMKEip~؛DXă )|bh\$9>fKѪT\"Zg!`D ]\n\"!+6bA3G.Sjpn*ILwȁ8&\nC(噯*Re@(#NjEI0 \n ()w\0((BbʓfqbJd\$BT\r2t9]٤;(!pZ3,82\rŦW,[2Hc\r+&D)fBS\nARQAID\r|DF[F̸ NpUSR#d\"G\0KIy1Nf`@ EEN]bJU?5E *u&(g mTJj,;D\0¡P(tNMn\nTuudӪX? 0*\n`haiD-ID\0b4* R~\$LṰ=?#HAD(B!\n5'@BD!P\"{(L047(ʑŘt0\$ISÃ@Qv]o:?'qAfȅu:ǰW\"eÄƱ,!N75trA\rGpq Q~<8S\nAX\\H\nĊvPt\n\$_KOxQ'(̐7@paцdLғM@gCHzg9ƚ3\rJd@\$Ό(czdʦbTIj)\$S<ېKz1曔J;(aֿ *ruMJ01ZY80gpZM!tAq;lHh;fr/ڣ@abC *7!m\"кoXT! \$2g[):RPY@.4AGnX/\0)=cXchLFkUIcT34CH\\u\\9G,p }闇(k_%_^5-!bawq3)Û{\"/4E]3~s Y\\g)yb LŊYvDȪ*s<nznRL=u{ڪR/ԀÞ\$Hq.I)@2-=yB\nIAB) *AXw dA^f\n+^8&r]B6^17Z_k\\OA]B*\nZqdƪ203\rF/_`f\"~ 0U\$ʹrMf5,#mlpD-`Nt \r3L\rH#FS>md̃iotrOJHOp#ʾd t&je/|qfp%\\`0bB0^o~zG5/\ngI]&If3W\n\0P^#24nR{c;\rk\r`@dM\r𔘰\\PG PfhE#PC jF<QP,3@cTr\$Hb7k%\r42- U Nf\r,h .H5L]VD@\$1HˇgdZd\0Աe#FdQ#l2HO\$\"k_mG\nͤƏmsZ\$ n_g\nG,0wl h'lSnJ>y- &:L!,Y\$~-vxw*CQ\$pwQϨO\$Q% &rZ2# i%rG#cU(V-M1\n)mǧ=*9^  &<٭+\n~cH*5q!,6ͨK҈h6Ik L.)2)0#3.\"ͽ0D\nWbw^\$R^,cP.d@ĸJ 04>?T\0k95}6\n(G<d\rVdT<fR5jHk\r\nZ4/(SjU\r6s8=gJ\rDxHoBgpXԲn v\"6hpB\$&~hd?ݰ9B\"Fl4B\$~bEp7-6<hdV,0q&>萎C5c`6*i>AOE<pogF3Et;X9C2%,џH**]\n\0qF\rblLmF\"~T%L־/P2z%(/fs9dɎDcJ/zm6r4d(-?K7\"8tZ>i@o8, d]#FoEG\nr \0@ t\n`";break;case"cs":$e="% (e8̆*dl7 qraNCyo9 D m\r5hv7 e6MflTLJs!Ht PeONY0cAn8Ua:Nf@t< ya;Qhybƨ9:-P2l= bqa27G Ɍ1Wa1M̈vN:[t7I™e!;ɲZ-SDκfUFcga;da1l^ߐe64\$\nch=-\0P#[h<KfI cD 0F!c`@6a0)02X1P4@))J(6cz 9&4'+\" a9~1q۬H ,B7ċCPQ#D\0Po\0-=#,\nf# Ir2Kj'CD8[9 S C(\rtDȋ0z\r8a^\\0ԂB x9X9\0J8|A  1^0n믣|#â5J(\r=9ם{Եc @HK5b9a @ 5N)c5X62`PB\\I2.\"\$f\r^7YT!LqH:\\i FsCX2i'!q?CMBbNkV-#FWt92:+P>@7n=Cz;pT7{_9#} ɘh:&>4t0'@T:F衈F<#6IZoƢȔʯ6m<yI! udF-\r֐ƈ2Ea 030>rDr\n'L7`NCpe\$A<2(n%C2+2'(tbGj\"LCA\ru 0l4ȉ -\n d*`cpt`5D(Dd,&Q\"Eؔf(D\rQԂpVC(]QODD|n\"mC2\\CQ'UXC;VJ[+t 9,U o\"4%0ia\06g5ܟe6.-2*JQ-O么>qZ\"y^h+%UPI,\niv.UI+5jʻW_#'\$*7Kܴ\"5+ F(uXj-<BLs!V[,TbbI\"-RVC [\$\$ 1u*YTx \rD^~`:+rc:LBPi\$FP@62h~RŒeNѦd\0*:U0\nI\r\$\$51(f!3զK sEF;c0fu#N?bIy\0ġ@m2%ze(L JB\"i:s`.L0(Cf5Dlqf )'%5˨zen5@m\0q#E*lQ_,<DD' \n:yMFzblQqeXv+b6'\0£C-OU_ĨgQCqe{;^] \nn,*C}<*VIih8#IC\r!顟YqUY&\$Żd^y\\9lďNv7e<0E[s 619Z6GHJ u*nu4qI4J4%@%w*jѺMQ='Ju#>AMS%z\$v4Pu'I{pÝ] GqI1F0H 41YVj˞''\$잠Bz a6a=\nsgGuꃈ<vu9 H!iH%kɐd__o7F!'18pv_T@\\\r@(!`x&ܜ+OC-KG\$`~vGIw?vtsSgq] Aa ^:eT,?\$BML[\rl|xY<6p(p7;L'(s4+2?G5 <u\r,Jr\rZzK*U i^+n%%)2LmLzc'x{^2H \\<#{ZX;(7Z\"G LI~ >DPX2B M]*y,MT:j=J7^.<GacCˤ1d9g 4v^h|pl&ú&pv\nӅ <.ЀGv=\0¬\n~h.jh0. <B/^6'** e 8 qBwT_\rBee8 `\rH&J#i& _%DdJu 0.P\rItsy pm)D.9v\nn\r O9Gu&qo*3\"D B&\$gr Ob*˃099 \$2uW>6s\$q  q \"&6XlcE28<A G#p>Q Ta<x\" MF|Ɔ%Z'ҦlR\\X\"rF&6kgZR\$j2%\$[\$Y*\r`rN'ze&2R&j@/_S\0_wQ\$0+22rU3% 3+|iH`1#4>S^!t`}b)\"eXxBfZЧ+\nm8G4 xs74e k69SSRA0rW<a41\r:Ǭek1t!\$S9>.3Of]>Q93T`\"6S`#0SΟ/\$T&TsBCJD<ExJm\rH< EDF\$܊h\"4l9Aa!bD b cfL\n\\qF>!Q4htv]K/eG\"#,k?\"aK%HX]c'FΉF&,vUILC'\"s)P&|%iBc(\nZ *LO;K4ZS!0tgL<5MRR4 &!|zТ6:4E7p u-\":6OWb\nS,Lލ(dOn !\$B9@bp#\"0o)S?)\n5 |n.]*vX#5_)A]_^6 H@sCaE. 9|jNN\r,C0P#P'tưVR'H\nb҄'Ef0SJBz7b0=B@ch@\"WbvUA C>,\"*/d쩕8hQ||3.C*Y3dSD c, ";break;case"da":$e="% (u7I :\r f4is4N2l\"ц9Ü,r Nd(2e7 Lo7C\0(`1 ƃQp9GS<y8MDYCQ\$cf2 )RN17&sIl36Me#)bl51#lg6rY&331@a\rI- rɺ6G2A] !τĝ4z]Nw?t\"3ob)t3˭YESq7\nn5P\"8{ )\$2,kI \ro£L&<ΐ7s-C.t9+Jnr 7L%9K0&<l\$(&70h## Ʃ 2ahl90c\$߸-':E ;A`@ !\0Й D46xKȬ5H}9rP^'AġlhĶ)07x#bH6:\$\n* \nX:F 2Uf9,g,B9\r @1[#(rJ\n%\n1x=*AB -˃}Ac(0c;11]#!0Y\r7`i{4Lx6IX8Pw3%\r6\\Xs9IZ9m&(hB3iYn\"_Ij {b # ; RpmBg3,b)OqhܚBC&\05PP&!B{I@%8TB77DU\"f @ԇˣ̺#xT,=0͠!Hܠ뎰7Ұo8HA-1\r\n0M(P9>30qk<C6*\r\r>'˴n\$X(rIJ)e0.Sʀ7c@ +T]+y0`<p@ߚ0iH26GJ0ri 2RI9JRjUKu2T!< : .̞MݡB((?lR,`rJHAQl&>_g7S'\\.8ƃ޹cMR=S|\n\nzOB64B\$<r s>ÌD7%ۛ@@P&T7\0A:0tWaKNHuIPq\r-2*L :F¨g,Ͻtp!E |WQbeQ!@nhn @(%0w\r16bԄY8 g0a ) Co!>h@H!236<R+Eɷ(!c\"tFI.OL*#Pșsi@J€O\naQ:XL57o̜ m8AI)YdJi.Ae5BEbXf\$6 HY\$#@ceSY\n=|C.9H6vp \n@\"[%&[~גW (->R\"F ͘c~B\ncbٝ,N:RC?t@+ؓu\$؜#2SA%O`+Pe6Օ;S#@=Xkds)@tܷ22K\n]+t2|.Ng\$*3shTZ0s|`}!\"u@¸m(i8jhnĆ\"Z_-#dMъ;F#BkG1 \0fdf%2k87H2J z;PT9ۘ-*\\ˠ%Hl1&p 1[BH:&GJBDyPohLyM]Sֹa =s<L O je H\0!>Mmm͡FrJbs>Lqh2ee6퐗xcvpr\rY40g;R|oybfZ(bp|Pi#(N\nwHX)5 @PH(d\"KΕn;p̖0B}F^o\rpΜBHؓ^/Lfsa1~0WO^Zz .'^9wD*yèl,ԋl=tZ&%H =f|ܸ/ pfڠK>W\n*ħtvF0\\Vfz ۗ=lZXjJ[@toæ{l ǛMu m?[nWs 4%uMjwaqiMV:O'XE\0/8p Ϛ^ X<iNDZ 4=\0Pk4\$JFnG6Έw`PʯE(dL{(rP C \"k\0Ef[Z `x0LZ/No\r,c6o0\"*PNl?k#:vO0E&(f0(oϻ'FpF8k N;^q o^:7%Q\$m\roL.Bxq|~ N1~iN`CFMрR0ѣq)j1qQ\$pNҗ0] OI~} ^G2hޥoE4[i/ܒ\"BpPB`h|K\$CLh̍OT'm\$Ê@\n\n0I#m٭)Bq\r((KD\")Hb\"\$HPdþ?;&Zx|~80%*/&P6\n22p&0c f!pa#*nO0 ƞ\n)1'[.i1Ci9ch!Q-4/32&BL6,(2A\rb\nd+`*@,@!cZ0\0bk.`f%p?F5l.\$B#23_1cL }KC43ĭnC:`1g;*C\n";break;case"de":$e="% (o1\r! ;C i9 MQ4x4L& :Xg904@i9S\nI5eLn4NA\0(`1 ƃQp9S]\r3jPpv >9M(n1\$\$NқbqX8@a1Gc\\Z\n'X(7[sSa\$NF(X\n\"ڌ5MR\r6e]ͤ<#(@dDM^|z:gCܮDSu6-l\"* ,7m+\râ50 P:c.\"\rc\n\"26I j: Ms:?@P25B87cD2N\rk\r\\;%P7#p*aƋC!+\$ \$B)ˀP7P>s>n j*\r#20-KԄeC .[3\"t!S8^; ^(4A31S!^0=IC:c+)@⾯h6R`02˄9+Cs<N2ch\n84Ҥ\nP7etfrr(-s|D\"@P<cMI3SRonC&3U:p\r>2ـ#m9;N64 ػc\\\n\"`Z%QP7:/MKrϊU͡PW)tF25c*T:N`728o\$ۈnQ7r\"#7LuȄtV\0aql\09Cc΃{7֎5В{}\rH{ p|aPl^EȦB蜕0lR \$?<!ئZ\0l 4Cp-\nΙ\\3CA<br?!|&Oq\r J\"T3 BC 2D'Юaj(ecl! @k#\r;:+(\",^ _,0wY\nUKMK7-p| ֆTC 9'pA3tuRxI{ Z(\nUQ+:WR\r^VX&F(/mؼ%^f-GS^MIdpK^pD#{\$`))8/%)7t( B\r=cN Pik|xA?paͤP<ʈApϚu.bPI\\\n)u?Zzr~i2~PZ r3fFlˣh4F|cPPvakɁ2\$3\\f/pI+Q\$KV'ܶVlV|T/5VE C\naH#s#i83RO ˄:k ͕QWg(T(ѡ,Ⱥo4QH‰dIph'Sr -;AT\nD!F4Cl}5rO ʼDӲHxS\nw=o'F5Q\$—-w{ًU?e_ʳoovq8ʂ lP9p腪t]eB+h愇,3bT.\$C6\r@\0U\n @ɠE /JZX ٥ҬP,% H-GaqLt*sL^Փu,{LKw/\r596@9̣`R\nAX1D5'?ƃڟNgzRĘebt\\b &N\nE!5W˩eӰ ,]nMRǤ8\0ب0D89u۟\nhZWJ6㗒`#C6L%jr}CNt \n44C B9ƍryG/=xo{}D41q\n^vM\r>Ku AA0ڴC2E(;5}P' @BH|A(ZMԑxZ/><g{+qc༪Xuay0Fn؁e?IX7c^{Lj],MyyYQ{\r՚Ow\"ӋכbD?ݜW>5#11y76:mf1[o>)`9rL>q,Da\"E69{[.޹Et'GZRf ?cf?ކ\"\r&k|\0*M%b`B/ b'-Ov >y-Zm'L#0)IXҏj#>dpeD\0=|@Knr-2#i{,/1(pQce\nFLبТ?Ƥbb*0\\oa FNC41\rdfn0pK\0\"Cm?К\"P5p9TBup@z%[/ ϖzW1\$ml3c>][Ip_>%R. vVLO<bio\$6JF1^veh&B}K̖@C\n%\\Ѣ1+ 3.SYk>\n&5Zx<C,\"\$rd\"ޢb:b{eEK\n)I\nv%v-&ψ)g2NB5nFB=&nl\\An_Q?&/\"I'RmQk(Q]\no'30g\"I).pi (fԍL [R6HR(,1'{}'dgpw@&p LGr!үc/3/'30&+o1-33-*m3@2+3( MJjBDQR3I59SV@z[玃1S_3|?3 3z,s72z\$7| c \0 :;jc~3DP+#c1Þ%e\rV h4G#c\0vbDơ\n\nZ\0@,Q\n-BI%0q%,o1280CB0t;pW8#@rRäPj@DOO |G#{ #HED,cn K \"IJ\"==b\\RQP^C c(0cc\"t)I5;jMTzB@\0ԠMuNL%4PEtdhJ'ȵNz@M|m%.b{\r\0'\rS1@xSDMVC\n1,\rHpVK:Eb ʪt0lt#uEZ+z օ6!&.'\r@Y0f(9G\r 5 ~SJzg\\0";break;case"el":$e="% )g-Vrg/x\"ZАzgcLK=[QeDX ŢJF1z#@Cf+Y.SD,ZO.DS\nlΜ/* D+9YXfad3\rFqnFWBWPckx2V'\\Is4ADqe0̶3/tfO j,Q#rDIjI\rQe^DAJuC \"\nΕӗMs7>|w2U:RJ.(E,Z7O\" (b<K42LNpR8:8< ,rZ\$39q!j|RbʒZ\rCMrGnS1˔j ĚdڨQo(!r{Lqvg %|<B5x7(9\rZj\$ŕ1.nO M&(\$&sAt)fզ5Z(1F3%`Ӕ1hAL4\r7 #h-C\": \"C1c(L(u\"jL<FӟXhTAr-)y{a1\n|q8!Ӛ%+dnN6#u x9H9d1c:3@0Եc:ZZ\rH;# XӌD49Ax^;p]Hx7(!xDm\"5\"6H7x<]}iPS9Mi0ܢLjp1|3ܣe \"0Cvf @1#>cF%\rt0'%z-i,J7!#*7ʊ(Xg=T>17-#lENz*Az>RD+1:S |8S%#UQ8UIZ:7OOiJO'.䈒SbB,҄RS\n!0Dnk%VuoόK<X*i:| 1XӠE \"4%\09XZ/DS@\n@P.?s<L\nyv}@#-1ɒ~IY9!4Rx\n GUAIp-@@Cip]5Q9[6i!C< @Ma6\r9/w:T3+y*aiY'Ipa@ iOwHm;ЕUQ 7S֍ISK.,?\" \0lI#R\$q҉bP?nr씡 ^yÊ\$ gQ+(\nXzAEN2SRP`\nd9 rcx94ِdc44ZUjeֿZdl͡ޛ@\"5 8HII\r.duz]sS bJK*9{!uը5&՚Zkݯ6\nÓel<<`̛nn46bӚD3Q%rU [I9\$+i<8\"!Y3,žUJ*,E+n{JU*)(6Q)Dt\0U_5l÷@σ`lxf8(ȶa 0وfh66@\r\0Շ5j0eAÆkU:t\"J?WftUC!XG1@?@b3LUtE+\n (\0PYK6D\n\$[ic;Hv\r!2|t\$\r,3\\2ӁZ8HXTS>H%̮,jhQђ3`YQU3HO;D\rS\r=Da!Efv-vF_9ad#ǼJ*y:<w>Y񰮤j`c qR.Mk`&^!8hK]şO\\G3 mb(*%(Dyw6\\U֛ըz1ĴH}D3~\"yQ:VBO\naSiRry:\nM;ÕDx'.2#EVIx1gd,=U¾8dtuJ#TYlDfs(9A0\"H0T̪\nG>:RDf\"bߛђo8]t|\n[yoy\"E›X?B0󅠃dIC;v]򛓼\0 tK\04\$%}!l&g׹AM&TR'B\rϾ2y~pQw9%iC/נQ%tz\0)\">A dvg\0V޶M*L\\Ά.I\"|!ν rG(DL(Jdx<JtoZ˰jM)L5JO#\$V,^2 (>x'œNdk9Ax*J.V v8 k\0^lrlZրeԎ!7\$\"\"I@*ͤ|_cHM\0R\0VKsGVBFh>m_B`42qtSVFϢ9OG#Gf]D_\r@E 4p\rh\\#\$8g̦FO,F\r<gxξ-a*e.t*6&0L&EQH.@\n \0@ Qdfj4J\rNT[\"aτ6Jy ^\0y#(y%c)\$\"\\OHe2J-\0A4Ib%..ŊGB%Y&*KE&э'L~x7r|ҁ(B(c2N%R1Z./chvk0)\$r),*ҀXrj^Bg03+Khz\$Kc &kϵJ\0B!i@v3 @Eؿ\"ԣ 6.d C2싳R//.T:.ljdT&,v'h!(c)'K(2:~q3. >K޷06lLȂOhSLv2#?\$\$I*A}w*>?Ô2\"aBPuгhS@@'CNvBRG4\$GTP(BAfA*>JTN]ThED 4&\nQ:@*ITR\05~&z.\"T~p\"HpJ(p\"L[d;GzhPEl^ \rR&~\rG\n\r\"L ~+\0^KzRND8\"RRaRTq7t>JHENKT0\"sTTIRFRfH \\HFgGtcUwVBwa@-\$u\$10Du++S,\rZ'5ZpZuZ\"#|[%/@@ BыHdA_7u)(sX͉:q\"uYY\$UV5vH1HYat.sX5Mbt)MnG*;EG,2QmVj\n@3kHrEn\\X1\$4fls/OT܁reNf64MKhkg6\rbHTqm._/cO&.2q5FSA~ sOTt.6#Yu@DtRtDtC rcXUIdqq7\\@-qw>3B,uD9bW+qUc/rvCuQux,m1|T'Ow4\\&Wyq o?\"8Hv/x\$Xl:C'7-Xms7xI,0\rEX\"Ghq葃vb|7VqV\r*Q7Wyt}?}?Up[ xKSQnڐI{W ?g7Dwq7K`?|Cr7cdTU@z -\rO]\n5,6lAJL: ~d I#xyXQsOHbM5ttK)`Dp]RxۅqqUxX%K<QˏLWT-;=)]jxS_?R!(1ÔULx|ȪNdo-=( չ(ձ'pw3 k^\"n,bNrA@`\rn\rj8+5\"HWx?VB8mqh67fHvS^Hw\np&I)U.؀9GI\\5^SCBO\$Kp`TٕN\"O\rGuazQeCH1?(n9QYNЧ&I/E+͍Z3p:>qgK͸\$hzG*\"=' ; ^~XBbpzX5JX|,#uIE0;g=es%\0#܅56Nbh!I`~8I`růTAHC`,:㯚҅'\$h%UavFhMB27SvJ3 m#SHž}Q+gZ`:ic' {svc-dyMLJN>Ydt%=ރaIcm3l |C{i ?sFh [;\rQ;*eL zE'9l)";break;case"es":$e="% (oNbi1 gBMi;,la6XkA<M\$N;abS\nFE9͎Q 2NgC,@\n FC1l7AECL653\$:o9FS,i7K_2Χ#xI7FS\rA<MӔia r8MNf Dl4̆gMjE*p2iiN@ :.O~ir2,dQCO&p9H3,0 gKvIyfG{[ <\rℶJ Ӫ P0Β4kR݉-ޔNj,K oǬaChB0ʏ</д P0tz!Ck)9xaj:- &10*ʈ(«+wrd-L`.t9c\\z!rt 2&\r@RSc#\$47Fn8MO1hR2:AKt\ṅc; `@<#C3:x_'@{9c2x\nԪj|C4M׬jHrl\r-A\nwnܣ-ڃ*s\$5JHՌkǰPJ \$Gx:c;/ ?@:ʉqBE P2X:^V]sv#T {7c02@Rj z'N,G8PiCЃsP: <J9P:+C L\nb3vQ-k}ިȅ?Tz^Pv,@rLQRL*5GCK8hVe(+Lb(Hb\"H91돃 |^0l9HKM@7`n[air½Q0[yv橎?[AJ=g{\"jLڝN\0@b&تe8daHG &)PC8Y T!`@VrU,f[vUwX*H,Ep/iDDY \nEA(HQ\"EVN\$\$(U)=%\0ңQkχ*+tXQ9,R/Ch8<ȓ()mAQM7Cvke5Pߡi3Ϛ:Bi (21JxCxpFjn&6CR7eu+0JlF 9D?FNXJHY9\\B )& p2VqȸB\0P @Kh( (L!7Rgy <3sv#,,''.:[\\/!\n\nFBAbE(rF z(\"d)Yq*>Q `&U a\n90F;AB\rMSt*F^_sXº2Oi\$D<)nh4 '\$2TŖj1FI˞)U1H4j6-58 9iC< { {O\naQ@k6(7̚@ uDTrRJC*cJsx\"j-bt~6>cZ̛y ٵ ,mL*OD_PXrhә|KEE=FOmi !h #yvO\nAK q|LmI\$[u ('-M/(ڰot0IZNR9J,̛ZY9T6F>iHyH \"r@V-籌VrISžv׆gPjsLi<mG.DF/l+g5Ȅ[k&1PcjlfACڑh:<7TꨡpBRS΅<4ez4c%\r¢@P*cc\rPӜYJR^kݴ\\V9 x!+JxDW\\mZ5ּlDu\rshKB@Z5~s\$yul/\nR'KD0:?| {xyF~O#p\\yMh=\\_ųɹ\\\\CL&;v!M!ةA0y0ēZ;kLD\$;>&ӵLEO*)Ed B0]_׉02;,10rW .GLGc3A47dFQ287 _PvoxQ\0\n&oO4<wה&\"I~L&Khd a&#jflmQАrV@O\" L\r‚\n{F4,Di\$Ǭ}D2\"0b찬o<q\"0rdEMB(rpm',<0\\_l %#v. .z4n^\nfZ6NVPb .4H(GͲo0Gl\0 \r0R=,&c2L ?#4?(&j#d4bfybUjˈ@\"HI#p#-NN!fFi]|B\rFf<ˊs(ecL(GZ=P~r0%NTe/RCGW\rP_Ѭ6PRgڈ2h-g\n-#uAʂ2 QL.\"#*ON:u^auG0K \"*^ƒ!Nw/,>/^jGQ2PGIr۠b[\$q&\"P'&dh-҆-2!(҄h\$i\$3(5)Rh*7br\$hm&+lJ\n22 vbJ^Fn'-0\nD5/gk |IeT^ī*\0ԭbJ#0ycRN\0\np\$na &E3-5#0Ä\"\$/ s`Mo*G:,,:ORJ.&'\$efG6^Fn&BIT,\$m0!g!hN g&*Fc3щmP*\$6o?T8UD ֗#C@96B?1a-\nnn b/ l P+\0%B\"@4&\\cH*ЊCK\rtR7oJLbdOED03IODldF`;&fi\n-'eT#4ƒ";break;case"et":$e="% (a4\r\"e9 &!i7D|<@vabQ\\\n&Mg92 3B!G3u92 apIdCf4(a & \r1Lj:e2\rq!?M3ϦV(6byeWhsygnZhB\n%( i4sYm4'SRNY7D 4n7hI8'S:>NSozZW<,5!Z 6N0~3?r3̾!Ϋ'\n3R% b5 2Cè11ɚ\09 ;>L8؉ .3(2cL9BB9\ra\0P5 P2k:1C&\rxF F@ -H: 0C1c(A\n܋\r P̜2I2X&\rտbS0kL-P<#@2\rC: dJ #ƈ%@̲,:ڰ9C4.0z\r8a^\\?C\\ƌx7WVxDj#36K\n|țO '<+ZN\"kB\nHLHLc| *%(N4cTb? ^\n!\r_EU\rӍhYp\" mF#XIz&\r*+ \\ڍ8kN-kx娎M;hX4cZqDnďc\\\n\"`Z(>7]00\n9A@%+^7>87Q\\8 H6F* ikFH)4㎆l\"(*\nq6Ȩ\"~ s؄a8ZlnM\rb0ڋ90u?#q\$(fvtNH\$to N Dz\rpy{)8O`9g!((`rH8I!Y!7N 8Tld׺C8 QkX3\nK jcVFZurX!a2BYA,\nl[u8)f~u`cIF@ֆSs4䜔R<6R|\\gy]+|QF|\$[1i0|ÁesКi9P4(#,;Hӈv68RQ-eO8a+y2\$9-䐋Ha =1U7\"@lp%R5Bд,TI' 8BXd@&)6Y`W'bHP BMB6'p@f9'83q͋^IFùhI(5꼍<sF~%!4tzSk`~Y4sA1 ߜi\rn`@˜Rb8nC# RL2D\rC~H'9au5ļO@ɹQRNky.\nd\$bfQY\0 -] \nHPi\$نYHk6Bڳ3nIg‘i_AئaewİI#`EBzz_ .A(*F\$jzB63dQ^e0\0U\n @0\0D0\"fF\ro\"cjplŹRJQs<b56zdpP|I!ōp\"HhIOVIӺys1#ZG+SIBoZ{{\"\ny \"XF+)ITi@u`kPDTQ&3i;5R(Y g\nKuC1P~ԇd6rQO! \0S}.,9d#-9-\nPJjfL52A.&\"h!m%k 6V\rRu\$,!ABu+jR\0֜!mȴc8rG\\\r)7Z6\nH\$pB\rw@%Ws(6[kԮǁBAa YCr IT8)ze1#'MN Yi')SĆxZz tC LKHyIQEdu(if-\nD̵uݓ:P\r=kM'('\"Ch rJ5;ޜv9C& _ۖ(Z)h60n=Ɗ \\9Sx䶫\$-8lC繜: <ްe&#U&V\r\n'wM\0tbW=Y=8O(\$,M􇰅DBA.kMS5fz*\$vBXڰl.PNe- T` \r@m8 J<\"OU\n TIpLF!.Q̺c>'7ϧ(Zs@twcDOd5|Ba_OL̰&Оd|E\n4//4lw*\n/U+fV\00(NjK!pw\nS ʫnɄejDgLT> t9ZD\"XW#|bG~ةl <Fd4+x!V26?I2̖C\rH>-%<8#{VH\$pkdCJW ZB/B\\_`R\r %0\"4_SV\nѻ1ʅ`w\ns \rPq  u\n0\"`i*p<s\nJ2tlhPiOCr7 HdUw\"0^wϡ&\"1ɍ>}\$а#Rg\rfQ&3~90\"{h?%PF>Q֘7b2j}+,Bs,:CjQMPDTFeց\"\"jbrRnIs /Eq\$.ߍz\$Lxxy,!Qk4 x,<(\$OQSKeL8#F 4\"bblHUH`\$f\r|C;j\npb \$`!f>‰/h\"Ps .|% JK@,q 4p9'9c4~U@G~Z4T4\"O`k.!I?m M݃g_\0SWђF'5i\"+b Eq lgGr/O:7}+C \rEB.s`<E-jO .'I+G [\0m#fM%INl&&\nNɠNFI-fTe\$R\$N%]!Ej4p<@ugQTeT~aJ \0@ t\n`";break;case"fa":$e="% )l)\n@T6PD&چ,\"0@@c\$}\rl,\nB\\\n Nd(z m*[\nl=NCMK(~B% 2ID6MB\0Sm`ێ,k6ѶmkvBhHA9!d+anپ<W-l'Dqe0̳\nXvC-*UeKY\$v⬅5NWf+PdFZ\\aT綷Jė\\VLã#u\r#He)nZ4Į>N(N죂ͺ猪j(l4{\\)#7 lX\$ )SCB5x7(9\rU+zU=]\n\"ˋZ%o\nSNcF5 HoRC+4\r7 #h-CZ: ZC1c(()\nM*TB?H`2Ѳ_)A7-A,۫  l 2aJ: 3U 1u\0\0N#12,4U\"9hf410z\r8a^\\04]x7bXxDlZ4Z6֣H7x5Nth!EDC8zT;1 3iM.%PU0FB9\rՂ\n>U9f]7j +SVJd/<aFE+%Q Nv50tH`Ká &6B5΢l*A!ET4ɏdO;f(*͏\0;EC/saZ7\r%B\"o_:s02Wk)\"\$-ayy{J*C}sd*X8\"R[/k Rd\rd7c:Ed8r !|^`C^4w`(>2B^Ca`<QHSL3\\ͪsUꜤ~؁ QRjM26\"'H\":1 C\$%HBć 6PACF1\rwø{A!\"!1oL\nȬ!\n#T+9SA,ƽxdS(,ʳZYl- P.\\ r)@O/T!JYAHx A?\$,›H_:.],gV_!t,duceGGMIl%#\$tZ+Mjuݐ|9.Ƹt\\j{ء劎v 0k02 G0\$Xv@e ʲVѨ9DKIюMUl\r10be3NêU:0<Wj+& 1E@Ca !(wfsmFNw(}y\n (J J(I'#)\0PLLk*&ڧq ('F` ҃`e `uBU\nVTTD_T\$BJ%VE\n/f>\n*fZ\nXɖpCh~5hC'kCa~05N(5@OM9+<P3&4šN^ BF%bk}|2\"B[.Vj|Н\$0ê\r, U<8U@2,\rq)|72T۪ḇ6*uiF͚8ȌcQt\nP-@r5}N7iB#^]h44vaG@d7:_hr3Rٓ482zfGdv'[ k\\p8mQ@PO *\0BE: \"PtJt.ћ7^!xh-7l|: I( ,E OV]`}t) ]3]4W4ًCR)r-zbO_80-~#z^]v6nAF=Y|uƁνU\$-C49ĨWW<0w\$&2 7Gz|',gO?hRCbugDvj9 \n nX9\r9vb#\n,eLH?h셷Z{,7T#vWƒ<ֆy'm~ .,rzX}98PcխBSrsQ:uL1 JZyC`+D@@ =P++IU2fXՐt2^W!!.\n\$Xet~v״eifuNYI/6> |b}iXE;BfuќCtJZ~yTYvvp;)&ch|Dm(/'r\0}:퐻Rg 0IȤۍH*J:!@D.+,PPV%BD MP|(~oCnDq>/`Bw)j@E2~H H. D F.@\n\\GĆ;BmngC ZW\rN`\rf.\"\n-/e x06\r'P؉Zw͂ٯ27>1TQq8ThGt<ka qHj(BByLv&/zCDo,0n,N!Qd7LQ 0/1Jb7\$iA'Cnz rG Fv-ORގ\$<0k4&\$/ pG07b%Wc&0) rq lh0bPq%) F-hj,GC-.xGc'2krrKۄhBRy(Q(Rwɉ-Ra(jyΦn\r/rA?- -&s/1/`N 2+|\\e; N s\"T*K2-s48 (n3@3\\Ç/ӑ44Suqo6TS )rhx3+O 8Gd2zFH`jܰZ<Joe3jH/#\"JfNNbQ9fB:o8c\"vn .gWsǣ5@l2\0*&\rM=P\n*\npb̉S ,C')6nPND~!\nJ\"xe?|*/zjp6b'1Sw&?Ă(仔,/F\nĔӇN=)OIdjyGrOP\"ac &!,LM2.E\n_ܘ=M0Ir/2iON/^x\nP>{\"gHl#lrtQ*'\"ӱ#)U3qX}mDI/|{GGq*,vx\nVTFpf8u;#aŠ{SNm]KȑCQe֪-XYz\rE@@ nC`RTn^Jڰ&t&@\\";break;case"fi":$e="% (i2\r3 2Dcy6bHyl;MlegSnGgC@tB\\ 72 aR, #!j6 [\rHyWUy8N|=NFI7FS ѧ4y0 &~AHk! 22p2p(MSQRM:\rf(i9׫hCcRJJrTf!7Y4֣I7uz^\rO 6ybkOd{%zMs24*6Z݊: :cДBp꒎Cz(:P ډ 4J LI{@('P2(6R906b>m(ФI(x: \0C1Z%#7\$JT ă!kg L0  ;1<\\ֹö@ロE2NR`4@:Uo\r3&듚6\0x CBh8a^H\\S\r]/ {Ø; ^(a\rx!R+#R#m ;A(9\rXVU\nO#tDP5XJ2V)C ,ҮH,.B \"H?qRطaK(] а֜F3c>b4-ٹr> \$W9\nZ2`R KH{ i\nձ\n5YZT(j{!PQOU+i_5lj%sI>>09z)9J_\n{\"B7ZcȏXQփ6;Ьo\\~Pbr`T^@!niQ <w*S]ۢ3\r#:Z2SpY2 423k;t@Rt@PX eS{ag(MLb`ONj/䱷T|xՓE I\r/\0O:`7 9Pp2! &v\\8P CI)AŨt,W\nYf,DȨty@^U~VX\$;.cCKEir[4CFCB5bLP*) ) 0 P]G\"#0漾 U[N,uA\$/FtXd,#|!<!X\$\n`*\"cG 7B\$_+dC&0òarJJjM# ǝcW3l%4&Q8xL 0X\"]Q\"؇v5<M@b*%&C\rDb-P؛j|xP @xh(\0SK,d5<\0PYXA<\" MH9:R_C9)#Q/򤙓SZ\$r5E*|t8E}r)+N2b\nc*+yIff˜RHL+}xshoA-vdc&/pY\$Ξ@`>`InfNBv\"Q! 1m\n9\rp. cD*XK\0P L*j!87e\\Z.rAhC1=\rq1V\r~4=^0\nm2vL0T\n\0%6zjA?Cd\\'yۚbP-d[p \n@\"q@ &\\^ל& \0R2<9\$ڂ e@î_k8i Wq.SYUVc}\n;O<w .:J/1͵G-\n:}&5raa>;Jm27Yh59񂇖\"WnvGHQZ!bDp5aP^JBE\$g4,]~Tj˼4+dJvob@_6M\n.MO\"0KPCC頂2zca<n1` pviK`1|WG;HAM&\r(\"*Aa!\$Sn\\\\,XDyrӞm_chv0oKVԞ HX`:Y%𣧗ԢUTԼZ<D޽h'רSN-FհȦ /B\rR\$\$\0I8ђ<7Zy]HO|K\n\n+vu;XD1\"9r`H>}y!>5V 1~:k933.јXsf`}\0jy{_Lci?L!\\rB(lT(b \"Khbo0F\0,\n&\$\r-FJd\r5`umX ԙ΢23,H̳#(p{E ǎ`lx0p\nG&=к9Jtc\rNϸ`t\"C<VpN쎰^P:@-*\0l\n1 B@О60AHZEzV\"\"m5E&)1o΂-Ҍ>B>\"ag&N2,\"Cҽ`FT`;B,Pn-w jjqBdEm 0M:/m1.rfϬ9 qO\nA\nN\n-ۦh\0qCςwR\0S!@ %N\"!NNGR\rgVuuC##26an&Q/5\$2P`2%NN@\"P(q Zd7r(&N@M/@ M]Jd%2)@)1Ʀ42.)dW+\"`\0 S)L).N|# -CEFmjr.ZEv 6;!A.2 u02qEfAm3CƤqTcXRorHcX3 6o#-[lT\n 6\"tM .:҆;q1 /敉b&&g_\"TɃ6GMd&:^Fc8P;#1@M\\J8f4xGL\$He< h?¸,ώ^4(J1lk[D\r62Pi%D.2u)D*pVh=1\"i@F橪B Ll 7m\"\n] &P7l\"j h\$*;HZ<NKOC%GLeBArA4ڼFP-4#.NdC89 PUJAP0 ";break;case"fr":$e="% (m8g3IeAt2c4c\"Q0 :M&xcC);fSF %9ȄzA\"Oqo:0,X\n FC1l7AECj :%f0u9hZvMqM0Pecqe0:N+MޏR5Mj;g*L'S\$yy=W3Rt\"pv2 LndNhM@m2)@jF~-N\$\"s9 3N78-L?O\n77eKzT7@<o)03 P\rcr\"L;?t\0щx10(\"P2(! W5(\r1)8l@l))/T<2.\0PЅp a,C1o M-'ı@PĢɍ\nՎۣ\rHRKRK205l j5 8M\rp1:\0D&UG \n !c(X8ÌD4<Cxm\rKS(p_dc,2`^cp̋%(|0p!~TV`;956p=j`@\r4:5N.1YZ\n>9l;r6QȳgnV0#\r\\n:F̈ɔ:6TL %7\"3'2tx#=9'1..j)Vy\\ckl0ߘXY`;RĚ\":(5[D()v+-(ؓ(~ᩘeU\\)\"cHˍ(?]Q Qݞ,:\"A 25K~R2vwX>(oòW/H?Hjw*dKBT5 ǣ.\"U= !o)!|]#(\n- !~/I>fL\"CA 2q^lt5\"bkɂ\n<8Xn6ɜ:MKhy:,tXDٝ*d\0Fp a(VC*̐'J),8S&5`× cH5eb#\n+Ha4#K4,ʴVZemuzKrvh>3HCc3/&% Y:E2bdjdܡ\0ڱL\" Z*OԌAjE[MI lkwuzl԰ \$x(\"8aqXeP4Ӓ%KC恂sB \$gWOTbش @C9wJx?3r\0uG;H_lgɮRdYN2O-M\0R\"``Ni-\$7II=*\n\\Ӹ^m\r' r(yi4d⤐F6IK&4<Bju mV`()fJkl\rL43BNՀh oO&P!0YRE\$iK\"\\/)UqZA(sKȠu\r\"v}H]reXC;+3SYhMiωur:8zqt\0[\$=C;=\"]XGMO\naPC@41(\nuQvS#yӓVķoftWNrQ8i2(wNUmo<(Q'\$iF0T*]u\\[C3]9B!Hlֲ:_I17>YX\n 8PT+&@.RH[F?x+@)'CA;R^(|2#Z~xN} ^CȁC;}I9LARκ9i3t'D5NQYw 5VH(S8zC U%KVHr=G+ )\r\0] HD;1i`nɑ\r|T5((`-\"E\rˋìxSN\0Ps0&vXDJ0WɼوkJ)nGj?a xwRI{Hu9!1.j񮴧cBH>cbxUT~\\3>nCw## 1kTCaŅvx\"mBAa U8\"QAY) d-UJTFG[\nVjee4Qd)yh]l^Q,))(P((=S\$QQhwJ҉ş59zY!0E&UMιoa3{?D5p܂&7(b@o9<cTE)#(s%#\$\\.#h#01C V2Π@v#J|ς\"X~*,ީi:*D1QK\n8ͮKlxeiA(g@d0^/,3\$:CF@*pdj  kmˇI~-RjΠkB`0`\"0k \r&^˧<\$\rfװPrP@:\$Q%\r4\"6^@Dl.,g;P\$pzdXOPMC4-4p H\$LQ\nc96`mPPB(,yG*3\nhn\"OPbvf`Xd\$-%OO\\Of ª15gŕB6CqL ]PPQ{ \nptiaSȥ\$zXp?\$Q`:\r\\D<P,%k*9˜%T+\$wBx5\nANZwqt8 x|Ł\$D'>FqQ- Glo,<rpqBNcr!kU+Љ 2,pQ\"Pզ D|-U2!2R\"14rc0f.rVbr+b:l22\$bq2=0A0p @3MR5sI501 v5GsX3JKVURӋ86#g%&3J:NGl Nx,ȠS\rsWS Hs<.Gt ;50W?m?N!nάqӛ/?4LT@4# Z}D}gS\"qw,H\"8GL·8lӔI\0TO,v2crgHjR`FgPZy@DSGdNRG- Lb\rV|8;uIr(\"u%k\\|j\nZsNb\"GE/EtL EAlmNji*/Js rDֿ'E-@NýR25sĂ'k#wTP p{\0#**K8-\0-N,O{,Jd\rHm,&wI{IFs\$&{XX\"̄Խ .[Eԕ XUX8 BD2ċTȄ@*v' JnP%Wgg L:qu;\$@ Aj\n\n*Lq\n׮4M@Kr7(X.,YLL*ni]N֖BЃri7(l6\"#<4 e͔Nh vA\\";break;case"gl":$e="% (o7js4Q9 '!@f4SI.iXjZ<dH\$RI44r6N\$z 2U:c@59 \0(`1 ƃQp9\r0 7Q!y<u9cfx(Y s~\n\$g#) 1s|dc4pMBysB0 2jn0 SvݣF]ɨ9b\rga8ɲ5EA5iÊvUXلA:^Z:n<oU,KVƍPQ<\r /!26 0B J~N6x\" \r 0!,h!@k) , |P:F[ \ncJ2P\n+-P-H.t92B\"1d!1ȢT7 4 [< i@1˞#\"<#:Ӿ1# ڻDZN!\0F#\$ p; X D49Ax^;sSEs*3_TUcJX|632jx%z'L/B\r\r|:L,0&t8z^ -0ʉJ+kj @1*x4-+Z5a31rci:4t +6,F2qO, ë̳h(3;SK \nK<C{Bm\rc,)#(0P&\$j7#47/Þ<#\".Ss\nb4+@\r4ǭ|k8df@#1n<[ȌU t 즱PSG(,1:\\TP<w#]3&})a\0ڼRU<#\$Qa0g)Klsm+m <&zQ>O+Dz+sDAiI~iVHa&P0RBX‹eH`)*HLdj *NMJh%RI9i4hx8^ Q+9*D V(Z+epXa(V:\r> >P\"\ra`RayNPi )bCN+CU!AArVQU[vUXq}ڍ! Ai; #HVUJ*Z(%;4ROhcPj(\nKuDid1 /*aG0dav Q@JbE\n d V`  Y=;-@\$,#%D\neX4&7HN wGvC0RP ¬ 㜃A27P(e[aʩP0t-`ੈjYH;C9gW LNhLK[-!1FU\0P\"N(n9A@)zjNtJ~(xtS+ 6r-<TPAhͫ%2'm\$ew*Hank%.zL> T3^oQca<)BK`#hi4yO!5ٖMOTt@mYCBhD~@BcgL0^GR #(e)\$x%+ܟ\nxg= '[ABJC\nT RA<'\0 A\n TxR\nXPB`ExXζ ǵɑf2l:.E/Ԡc`{^^>=\"뺂TSNЛȉй51Y2Lmt8<>tM\n\$\\RNaQ詚SHD)P̟Ϙ0jM\0(mII0O#s0b?8,L C¥%4i <m9惂ѫ:3(2DwA.D+h㼶)\r'3=Zv9\$gL@P*FdPנY@eҮ\$RP=fHxf4qZJ-,e>0}+J[\$4kJWl8'qvޡlWPT! 9vREJ^m`S;>px bK\$H6c yTƤ01&'~w9ԥvsLcff8SFu.|{w\$J\\9. zy5t~G8٫{ΓWyՏ)*Pה9\\* Z9HP;ZBhu\n4q882J^3:*%<V9\r)Q@VeF2\"P ofg=io0Z8&h.~:zL6\nEbL0#+Pg8# #fbP&NC0b06Z9~\"C~S)dG#N\nmM\r\0MMc\n.l\\ΐ\n&thj6lu(;аP G\$!\0<yczp`sP^\$1r\rxCFZ0 v` OnQ(OD n6=Psa\rcn;p\"5EB(&8zEZVdE^' ;N\$ \ǹcNed^+tVBD +\$*\r1d\r@_\"51m !0 o\r\$'Px\$(\0 \"3\"e,h&.*<1&rP\$>wFB!\"jg\n91hA#R7O v_(gm%)l0!!Ҍ#ҺrD!ҬxEnN J4rژ#b*W-D-&RE2*!CJR'Q3Y23BS\$1^<2Y,A3#2c\n,w&<b>\r ':%\$**d(\n&c N46H<3X'u1J\$9I9E@H`4Ơ1W'P8)dGP.'>8P6mz\nZ1оB+?T|. \"B(yD2N8\$xC0OdNK)3&*E\"2hG\nb͛D\$lG.C&HML6\"yL!lG,24\rڬIP~07(.wJT{I,T~E nC/Jn^2Pɑ\nltƼ/RBn@ޢtOoGO84΃xTl\$J8 6BdxcxBlB:Te-EU7Qj \r";break;case"he":$e="% )kƺAAvUkb*m(]' mu ]2וC!ɘ2\nABE\"ш6\\׎%b1I|:\nh5\r4-\$L#@'b0T#LIRQ\$c9L'3,.N( \\aMGXk1UPtfOn1[ SVqClql{Q/CQD#) g+n^U¤VnBi'̱k\"1hDAb;9QӉuvGJ]/)\$Q)\n*fy 7LĖLβ!S\$Q(iABj;r.0t&!L 4\r7 #h-C: C1c(1/BIi&9 kތBCNBåIz# 4@2\r(?:; #9s` 3x: #H@8/c `@PB3:xU 6@!t3(҃-Lz\r\"6 C#x}#3B9 Snƻ JL\"/zNTB9\r\nzNrOƹ\$1:\$֒(T4S*<\\J\rh+%l:_ ^D{xCH92JzĦjO1!ƴ\$PbB%\"d2ȥn({&hӠ:1)Zi,kW%TOph'ɻn.AYK`J<3 b>;H{_ġPZ^2^&1jbz\reM5:c<ٖsNW3\r#?Z2M=B^<n`жiO\$l2 MpۻK'[(<iTҍJm\"ҝKX0b^{:_DYKx-Uɭ6& ep)ʨTʡU**V8#@U\"ąQ:H1m1'(6}D:%OPIuJ3EȒ)£TTU|\rVAZ+ejP+)^JR%p5\"LÒZ\$d#jE%<H-\$H*a:\n46@p@+9#eC4a:\0\r3U/C\"6I,k:Xơ(\0P @z\nczN7& rI Hl \\)4vJsNJpS7o.=H4)5\04CO*R\\9/Hc\rު9._h0c .2gJ. =VbS=h!C=<4%p 'g\r \\ROMA&L,T{%A,kdNqylRCV^HIi\$:I\n9'DF0KT\$()\"Gcn 7dXHTGcef؃ڐK!60cB0T hx @cBgQ'\0 e GD`GtՌ^ӒDn:.!rhX{DfPV[\"Ѭݹr!%F !t/g1!\r09\$SdD3{HR۝3'.,۔x!<-%_Ԛ\\Xi,NGN;dLcT~L\$DM\nhHQzD^ڂ#3&^H) _`z6YZ(s\$w:ݪtPRHa vxL\".:oDmqdqژ][ͤb:KaScUJr9\"P^T<Ё+oyH{3QӔ1 SRb`'>Cѡ@a^!P*3lѸ(] 0_{8bĘ\$ E5䔐hHl)%NPdw<PUXUn@ÿ \0-PR#9L6aYآZ!7|Xm¸N4\r[ǯ]XFsEjV؝\"L7̕1 (9v4pyxw1f\"Nf2!GD=TYEhit.(#ņzvXD@aBo@n I۷xDl%yJM\"\rdPے;M@ȣE\$#V~yrsy^\0t{ǪWR{wE] {)hET>ьC~E~K?jK 7v/ۈ=DfK\$sEcr^gJ^k}LDdGhn4 ޾­+z(\" jLKi4eڧlOĻeN%jF\"^\\mt#\"E\nĦJ00|O 0\nGh\0˄0\"޵qQxp pPnPmPoB;/ s (`&`H*/j.Vi4 4\r8<D*q6NqP?n1Dؔ@@Q2юȁ@hCB%.Dyc)* h.Bΰ*\$*)φ:<>A8mޑ&<L[\n͸.VN0l<ĸNRb&;\n@(\"J(|\n%j@R q\0gr\rcn<U!-Vq2L_M@Cvbjd@!8\n&%c@5O;A\"pBJf\\p(3L[#%\nn*N2+LdI)R\n{ ,a-Kpjdejq\nCLc/BT#\r0l%0<CfИnzf''@'A.ʂ(py +FBKz\r@ ̠ d";break;case"hi":$e="% pRX*\n\nAUpUYAX*\n\"baTBtA4!RO_IQ@q*`j:\n Nd(O)!\"5)RW |`Rő*?RTDyKR!\nDJ\"cU|\nԳu%g\$I-=a<fHQH[M._Dqe0̵GYHsz.K`RC3ue\"#Ir UIB#RE#ɿ҆>+5)\\/bHhjڥOMh\n+)HP4J*\rj-O4@#M-H!&1|H \",LD'H?Dz1Ӹ20c+2s50!H(Rj-~?,ϳR6I1qH2{94ORx=.@'/>,J{V&q#?^ٔ9`P7c0(x: C1c(B4<38ЊW'T8ڗE#\"VΩJ;nTYLaBy?Eu[+&>J:5ȓ⟃9&XE1u.IS&}\r8C@:t # 4(\\C8^2xc2L\"D\0x;7!HShyNғo-2.PD]3\"D)MeuPge#]_\r|ro  _=tu\$]4{LԌ-pxH\\='M 攊ixxDZ?X]fa%&9ZV+._QHJ`}ĕC\\:cǹ(N=D%xϙ4vh x\\TUM3v%>AJP=W#ƂQ \r= A`\ntq\$afߺHpΎ!>jbv=c/=Ȱ ۱6\"(2O4\"#`gњ5AD̋/\\ ?D!d Γo8HCƗRŒ+H4!Y 3noRzz6` H7ń0&ӘXC`tR\$x)Ilc\\R0>RmRGn'a)q?^t\n; )B *&'))e<uDs''=cSG1_2Dy´SLiA5Fwky6&3h7jkq H'2̡4 p*Ilw.^\":Rid,ՕVmcզ(K\n\$l|wXz蓘bIm]i{]SrC+Oj-Mv_l-vCtmΨ6y6E'Uy>TaK>|q(1]GԷ@T)@.Q\nvn&,_a]:,+RFfKQFW}*٩A(.J^o%WP=ZT(\06~~\n\n)#L1<Vg ~i; ͺ6#)cKe,F0jBG9,?6\n #p0仓lL8DY8ao)H(\$\"cZi ) %0Y(0}s#tT>/>Iٓ:s\0 b3bS>FFUxF@{7OjkUwbvc.q\r%]h<v0&\$;u(-dR;A+\n\0缹NI&2\n<)B5x}[4様,>#2.,vX&AlLujF~؆0nHF\nB˖c`4ݱl_XsRg3y\$ʸ}68erW3Ɉf/*cj1E[o*IϕUaq4k 'D\$@]GcՊy(\"\"est|Ebʌ\nwn9bTcF4{]Ki39pw|,ha۹<w5u&ȶ8/'\\e'e6h+@4/˜)3ã{Uۇ;am1oD&f5W 9k{κśbca]t|NS>Qrk+u'7Y\0 m۔|l\\#E(^'0\nJ'K..Vآ|=?>j3DNJ0\nϮbHH\"/~\$aHv>M\\pz-];\08l@ҶGr @~Hb:-̠L̅(^pШdf8P| .\rͯ'.HGʂvrA\n\nPGzw\$,G)\r\$0&o\r.B#n;v?O3CB )b/\r&UQ,v\\%uP8YQG\nIhIIMHNiHx@qEwK%*0\rL\r+ .CMz@ 1q?+ ,(\",nE/`d>%P 9#J\":B9瀽+G.NC(=DZXP| đBr/C)!%8> Q\"HugpBӊ@pZSr-.PW\\O +rO\\JH)+p(6HhBO\0#Rp+LK.<DȨ>'-90@\nD/G.4xr-~aE^4Rr8M\$p[NH c\rf0`°8'6t)K3,pkEh'JN5.F\$E@ kj`(N0.GS+ Ό.%0dM/s1>3dOi'/!.l</@%?0ґPh4?df>:,B4:+8k/2T72O<sFG,@}2 \$_5[1`e ?0=uuAэGGHHXRS+EH=wQITCKHW114\$H*N<OFhR\r l#J/ v?OP&.ܣ Q8IO%TP2\"{5-@?K7Jǥ\n\$l\"LU4x.HoH\0V=L0!N;\0I4Z4/9Ĕb[][՛\\%bx3Hw[ITqMUHAF[7u_U?MhSNy*IV\"ge\n.ӟa`5Ԧ\nEMl%^`uZjvH)\\U22&j\\f6GfXv}ee @@due\\aD@g̪aavv4փ-KDVy@h5gvemI>H]6`u(VV6ijwmOnҡh q\"h7l(}Z(!/,NTKwOe4UG]K9)A'5#h#'pZ7YR-?Jd H\$6峕I(14Ut̍1`'eqMi\rWwRN>\0\npˊhPb6gFpVx'qEV\rr`q_wsvTGJ8vyqTثOȉ}|{q*-2sbK6)O\$\r -{P^<{+0|x`GRW*N]TjP.e8~->N=*yIO@\"\$^u\$Ur;4sdESdwXRE\rGrrC/2P3y˾^Gx51y4Ezcz Hm\nNOn\$8in9#&I\\kU8SuUBUȆ³7A\nN058V^?K;Uktx&}<hs.fUw#9Ec,FiWRy(@9nhbuӋsQy(\\&v#Fr;͂";break;case"hu":$e="% k\rBs7SN2DC3MF6e7D jD!iMNlNFSK5!Je @n\r5Iz4B\0Pb2ar\n#FQis'jbRI;g:ڊlƣjl&虦7C IiMc*)-kC2Q\rZt4Oh97eEyAc;`i;e:؟Pp2i3D&aҙeD67{ɭWăc>O]\rO@,j).3B:9)lr<C\$,2\np9\rP#h\" Ȣ%\r##5(\n.K9BBac*.: .\rJ趣B:\r2aA1z6,k,BR5i\\+2a \"X=A\0FR!,:iz0cZ9:GK<OCK9hH4'c0z\r8a^H\\0]z@j9 xDlZ46CH7x%BO #b/5')Rzh4p *4&`aCR&)`+ &\$N;G@\rMxCe\r#rޣ \" 0:a\$6(% DCL12@֕:v3>`p\09KذI\"v731e\re _,X,1c'\n\"ed92{1M]ͽ@K\$7tx\\6a<)\$3zaJ}l (:23#Y@7{\\Y%.؊9*c\rG(`#LbuVTC^jp\0z{][(\$aҺS`!pC8u'p0@h *#f`xf ̤0T\rQr@ՔڡTapsW <0`djL73\n)5E\n r,h(^ RK9\\ rW*^*Y!eҐÒZdY0ζt\\N\n '(2 2ES=eF%բ84 όa,E0-x)sKK2 H,{.ArzB=6R\nr' DG-AIBflžtbq1,*pIcQV#BLlx0i*2qx0N0H1fhi^&7Ha5'\nnaB'G:6&a\r\0(|E6^m%P47ԩNxh3 S\$wfP!;=o \nTzHArjITP\\tZh;P\$X(,U Iu4T*H\0C\naH#0݃r%1x#6rDaLf`Z2cG\r{FH <)N NjG%A0)5'aŦ2zaq@Ƽ<VfbD\$@'0HҠ!=jAD1Epd@!SZ\n[ PAeY1A\0@ܩ%;M*\0)AcLbKpmLS(Cp u&9S%L=2ҎN]鉊)RBCX85tQty#C (&4Z4ؗ\nS*uw.@B51Ds\r҉,3}Aݠ ~bMl+l[bwY*Fɪ\\* \"qI.\nDXx\"\\8O!KoDb2<7,`oY84p\\;\$/]+PrIZLS;!;O+ /pn3is`t+^0l#pSpf\0k3\n{)ެZ ǃyC`7vɄNHlJ T! \$ xCI܃M)R8mT@5ŰSϡx\rݏ@rdL{7 rd*CXNRd@M NM!:xoNO'[']tYNһ'89v W =g.|{*ߵVRXrftw9KT3>ra0U:\0MNQ1ѧ%%\n1o^a1?,,#@iFPWSp hAe<g+ i0jFK kbXâaI~oAfoBHl4V\"i vҐ:|\$<[64\n'F*N>p<)Xk`E0b\ng\\E#LdS\\k/\$VQ@i#l-w ZUFHiڇ'6͠_,Jh \\ t< &k\r0mP\rt\"R}[\rpvš'pQuSq\n=\r|Cǚg(s016=1DD:LSsBnI;l.,ı ~ȝP|Cp#bJܤBj iMfX\rDºJ:cD7Т6qj@WIAR1űz\n>!bT2LΊFSL1ƢUPcFL&LlWR!BdhR_їC INzP! I%X^88\0c 'Tq'2]ʤؐć')jx}w,uR*\r2& \nBzl>DЂGZ΄%Rzd(5zK-(/r&,f0+pwS*k`gΰ Nد\026,:\">g3C4\n<Nai\0u1 7 R'\$\n^~R&73/&@@9S@MGg{*FF?CRZ NӸ&x71<;:lv#(c=#^do1?k@K@N?^\$e\rVnTir[ zUT|\0\npH &%QFM=tbh&Tmpu\0 \"B(\"\$~Pjc&\$BI\"5! C\nF0pOlCBNrKC .+0tF)-PI)s& t%@KN[P?bYJC<&,gC`do>ēÐ?gUBU@>0&,|(Fb!\064).=\"j:5)zRm8)@P' fOmwI2BtgL!.'@T\0yLyU.dG)8`nL\"5 D\"`Odm\"7jS\rS f]a]8`@ l@K~m\0@\r";break;case"id":$e="% (i2MbItL9(g0#)a9D#)rc1M'I>na&ȀJs!H\0Na2)b2ar\n%D2ÄL7ADt&[\nDqegQBe\$i63yiR!s\r6Hqj<PSN|L'f1Ir\"ɼ 4N#q@p9NƓa%kIt4V-K7eLxn5b#q)53򍼈e_Kb)\0AuR`Q-\nmipCx,:>%:زj+\r((މBlC09k.c4\r\"‰ aA7cX:.%F8M&Iף܉c ښ`58Fc 0cJ lЎk4\r4פ `@1B3:xGԷ+paz9S^'.I0*87x\$Bh4RP&Vz ЄT*(0m`' tB\n cx\n nT\rk}\$xH(26\"6*Y\0P;η( /^ƽH9:L:Ka^5A*05:95N4c,ڢ –4)\"`1I\rzd#C|cu `.f P&U+V.fd.]YYv!28`\0R~Pp<յzEaUJ*!&E|EM+NCx30D%tT*\rt<4c5[:j9П`03l\")2R#KN\nJlTC .SU\$@5 C4]GJԵ07%VUt| TVXjC[O=0B\$ID6C  }JD(|9)u3n;P8\rr]\"Ųr>s@\$\"8 j,A3=@\\BAĨ[!3AR]v̼7p\n4W pi_e\"Hbw1)E>B' H\n ('@HxnJÄIl[;FHn\n<\$+K!MN`J|DO) \0pCKaCWqzF&Y\0Mmv'<3½\$XCm'iS 񑓔2japMk a*e''2OyI|NN4L<\00 \n<)FD%\$\0K,IDaxG)1-ᬣ08P^'DmNVp'4Ƅ`\"+mI!є>AAtX1Đe9<`<'\0 A\nW@@(Lck<8d@GKA5Eq7P`3\"ǰÛd.nvj6Ԟ謌9ja!nIbsIZI@PV4F=5(V#-ExF~DȲ~m D9+vYkPz_<tNmdw[u(u9iSj&6X3yF-fCX=,͈t{hVFAZDe'h\$g\r4#[krl;!+\n~\$2Ԃܐp7d1_\${bk*FPPޘed#tN <I-^36+~lb~xAؤ3\$EJe )!My\" Z+Dw\\2W2qHLƼwUů(H <H7B6a\nAPh3N<ZrKiice~CI\"YKf_!\\h}_zoRV RxC\$aV6 (8DA jcɘ̑'h+(Xfbw!ĸqBc0zZs:N8awF[\02_ծWvsmH|7\"^Q-<S|_IWq^U7\\Iq2MSp#dH9-|ʲ)罐K\$*\"Yt}Js/|.vkվregJY1.M ٩b%`j\\]Зnk7.{˽eמ H\nَO_e1%ID-CpDn|W c2n.'PO\$LRv(`R6 Tu\0`0N0,C&4#l\nPS0lP_.'l|!SN{n+y/psz!g%\"&!N+? L #_h*G#\n`_Ȍ0\r@/]ɦ\r#ZjB&Khm>ΦN3]冾\r1 M¼Z-\$d&\rV0!eV_~u/v\$@MУs \np&|b\"Do,#@Lx\0e V\nF\\I\0JM;#,*6 1JB:*hE'ZD [%F-낿t=c'H*!CE@u-# jGfb2|Ϩ#.\$JR!n)!Q0 !\nCam lF e.<:BNKT\$H\$>_c8.>_c2c:4/ZUd ?&TKqe2C='J@E %C\$'LBxHde";break;case"it":$e="% (a9Lfit7 S`i6DyA :fL0č0qL'9t%F#L5@Js!I1Xf7e3M& FC1l7AECI7!li((\n:Q\$c9fq \"1s0C o&5:bb14߆,&DiG3R>i3dx_!'iH@p҈ &|C)yNȃ2bclD8&uLrs<Ix(l̙\nC9.NBD:7cB# B!?P2P2l0jd4J\rH!t82\nA\0t9@ \\B(&c &1/`P!=%r&\r<IJC ɸ(<#բ)J\"=%#%C XD49Ax^;ҁp3M\\ zHɥ\0002~+t2c3 K|\n;S\$ƵX\r5RKP踺@%-fKBR:\" )Qܲ @1*htwj\rb:+jՋ\n3 7C*&pV7-@/-\"m+EnR'/\$Hr'2?<B&5<5c9e r)^W̚9[ _Ȉb -P;|gZւ1QXI\"޵MfD7O\\H73/h\r!-+8jB:P\rNc<0p MB܋B֤p,M:\$+NSj#X\r3Y4m%A/P~F(Kun*=xLt\"zft-T3;+ }u{;M\0nh2 YhL픃X[65\\I L%-\r\$MP@Q9H)%(Դ4l9) 9;uRbpgudEԹj * 0F0mn-LJ\rIreA\01\0002D \\`J5G&TمjqO@^Ck%S0|ރ0OUպ\nC\\ 3E0Ti\\)4*NF<>VDo’M\r)1&,̔؞JC  1C%)1H7G[:Ya\$\nl;e啥Jaey5f;4s&Y+@\$Sj91hRJ1FplZ8FFLۘf-M_aKbO9gsE\$(Iy:1DFO9 9v\$jDBtoHdx!0h}3xJdI\rRW ^@DEg m%/0k-eMh AHԏCܧ:8N\$zVWx \n<)JYˋj}:ji*sxĸ2dBA \00073FHLD0&\nU42S:~W惚-q\0U\n @x &[ljQ)y\0 > 6ÃJGј{r8&]d\n\nD&\$Փjt\$3X%Ҍ! s)6~ t\\aX2#ihVWFZ usMzVr!mcbP,q؈_◳Q:\nHF!ĵSz+&~V\"o0uP8Fa\nk ]P*׺wMHa!AoM;y5`~!\r7Vht_OAM]K0\" W2@BH9',\$lpyR44x@ +u4߃(cD -A`JYe;͑;?h=M`,ͳg2hDʉT^I2ܛ:ʸ35E\r{Vm*w\$ \rC-1`R( Z\$Z½ta*~ \\FB^GZ\\0 wQ2Ro1q#q\\em#{qA\$S:Ǖ܎qt.[- ΋k^&*OwI359D-\0+qGz\$0d ]7ajw|' hA\rlAĴz+V7ictC0{By^bF%W%ٺDZWHY״!dVۛkC'D76l#n\0wB{np\n%< y3.no:@Nf\rHZ\"b?M *[09\rĠrH_C=B&E4)^̢\0+&&2EBX \"n;M\0δ ͅ!:ѐZ_9Njn:P%0/ZF\$ĝPZ l (\\hH&Y pPOPNhh D##nCn(d:Fne} Ol (p\"OQ>&aB-PN,-\$\rν9]\"bQoqB;{luà!\${f]` Q\rѮJC8&HM 8{Gn2-GQ4ѱvq\0C!.nj^\"n]R5gg# ^^\"2##G#J+\"Ml–G^\\G(c^ӲV2ZzϿ&\$\r0z6@c\rV ccYf`0%E(BFIIP\nZ\r%mf6Moiֆl*Fl)@4\nɤ4@U*?4dB\"2 \r%Ts0/%%BV\"2Rk'i A Ź5#N(a%֓E5J3P3n\" 4j47IL중βõ 8c̏:Sp\$b\\kh\r#C& 9t˰퀂genƹ5N<+FLI7H\0h P#";break;case"ja":$e="% :\$\nqҮ4(b*JqTl}!Mn4N I*ADq\$ ]HU)d t'*0N*\$1 )AJ堡`(`1 ƃQp9 b:W&K<^\n2&(z>\n\$g#)eu@xn胐 Qt\"ʊ\\q4\nqCi\"VηT:Shiz1~BAXMWe[WPqI9kG2YaA\"ʅK2zė:\0T9S3P41y_yA A\$#L+DOHU1z_QiL T+DR\$MsKJs)sCg)&!/rDT0AI^Ez!htȄSZC<harsqP(b}>o\rx:\r2a7CS\0t92>KrjH3ND4+8A=YqD@Dw^V\02\rH2JA3uؐvԴD 3Q=s=m3sBs, Q^_96;A@x0C(3:x\riZu03( ; ^(Tg9hXx5΄]9DPVAA\$/Qh7MBtjM\"z&ALG%bYh:V)\"EA(ȤQ*Y2\r9k tJ1.Qi)\$ psQKRAayq 2J^RqEeBztd[rڤV&rq@E!zNiC̞hd*e`\nbd/4A.uM9H]C&muUc~Rh^pM9=~UB;<S\\VIw t,^g>7Tȝu u ҈ G@@d!.98bQV`ltQBfD+VwFm(2k\n bH=9^b0>_@HHZ,a:&pZBE a!DY)f+FL#Yp`f,RCI& Qڏd%a 9EcCV)c@ƔDwVQ WZ@'1W\n\\g)!XTRotL2܈ M+ hyk6\nK a=0XcAɎ1^ztx N81vidծ.8'ϰJAb[Vcו\"C)%4|zt-&\02&\$Y٬+aL11\$c,ms3qbr \nc 5nCVAB3 ;c/O;\n{\">^\$כ+\n q5XoSb9HH|IxBps\nUv ex\$qk¤7O0?((!G5FQzcDAE1UH땯+@\"v \"By+ yv,G(L֚\$wS)V46^Jne&+%jEX\"s.#a\$՛\0x(pj_'(A\n},wNWT˜R4-6MFs']@\$:֪[#U/%ܡe0&DЧǜKEq[H\r%Pᨊ(&آSj%!:<)KBQ@-eg|6Вqjd![IpP L*.UljJ\$>H›:'acLe)E6ӋD2)f)08@T^3)3ߠJAlj#RziRDQC^ɺlK8o-iTVxNT(@.A\" nBV*ɸJJ4i6p`Q3`\0n.n\0UQEd c'ĸ3z! p(Qa!Yqj{p0xHHsK)7OcDE%YСhl^u*E.1ωt]{:N>Kz֘\"8IV;ZHEhV|/0Lt] NUQ\rr|jy5qzГ*D4%g%x&G09 qyRψ<jd1&pX4}CBo0BKu|\"DQ oL(gR.=.D2!jry0\"l]>ﰯE /\\ t\nȴ_HƶBDN 4AH,8m&A\0@:q\0]k0c\nFJdh0Klo/o+XFH\nj+^nC\n:aB|':ho&p\"bef-p#p;,3c8&ܮ OB ZsP\\!~||\$lvG\0!X89bkAo%N\"Q\$#h=.bAF:0M\$>nq0)}X~!iE\\<x= Mr`x楀pG/' El1+c1UN7!yΪ[1ʾ͞QfqO`(ױ/^y&0Caݨ0%Z &:)6qeѕP\"2; Z\$z\$,qm\$9\$Qq&n'sJ'N1rI\$1jzzh҆\"bNnhr\$)›)C*]*Q؏&%Q)PUc(R2.'Ro#*oh)\$PMb0(n\"\n'c/\\e7@1rb2F\0~]03 33>SE0%\$:o).p[1.r?+1m:0.30R#xQ!3-=t*sȂ2m<3 w/fE??E{>@K?h!40^JQ 2=.\0! rO;UB:4ME\$9OE5BTURbMssp.G3RCTL.DGFńFTUHB/T\$-a%:,tKtDKOr'LHϸ3/oOTI9KPPԥOhTm&e|tDrbjAuM'NփX DJATC.1N=#h\rW BB\\P\nZ@ -b) p<Ԇ.H;ÑLr%9 vYJNFm[\r½dPcB80B.,@\"^&5@6 <xȽBdq_vwe1odz\rVe8.TZG/6sh 9ƀ#6k8sʟ\rER7!o5j<bI ArMGX*>l>g\0 \rkhAh8?-dX@) /dA@,&R8}ee` x\r!6nP=EɔX";break;case"ka":$e="% )ƒRAt5 BPt2':R>5-%A(:<PSsE,I5AdNi= 2i?cXM\")v@\n FC1l7fT+U ]MJH^x894\${]&?M3s2Ԏuiz3`̞*Z%\"xܢoJitҵTA=D+I? y12EQ~\rux.ue}2T?rNSzhĬ ZԸH:\0'i.o.ķIă[2Hָ3Ђ\0[W-o:\rp \$H<C'€or.+(dɒ.׽\\3)VD+댙<ʺbe+ԦSZ:dMA;iq\nW11MPqڥr+M)5\rx:\r2a7CT\0t92ܶգխ\0O0+SP&'K*9= Ɏvʲآnr%3\r)sAPfzhc6#p90'M[k.>Y<,[@430z\r8a^\\0wT8^2xώcH21ޟx?W+ѴTA6\"udy#hXcMĔd.^ji>T0@(τ.N%#7e>-NdLjG3Nޚ%-Ku:I<wdqgԱσ־ձ06'ARA`^&0Z3J\\^КPoq̵g\\::ee6Sã1bAqZm'~vkJ9☢1t/ѹxB\r#d| |p1/UOmn ;E\$5jJ9a&G\rcJ&z92R#&Ew\njt<wM`ےOQ'of}J,T\$NiҦhuSl@0s:r\r00a,\"o\r4xc>4@z\"brJDM<2J%ȫ6t<\rqɇ}\"of(^j1OFYB|V~`:\00%X{y\"&\r\$jU3&#\$ HSq`y 2bf ^,{/o6lcq'nNjyoX:ˣE,EV.Xc;9K+eAd5g\r-FaA\$㚸b[1S0Z^L#31tO%UA 'K#2cJ#I[&LyH}RFQĠP2f0Ƙd /I*e<FX-f΍%fFNa D˂ZUHN!(R\\@? R=?6\0(\$6HVtâ֩1'~v ̝ˆ13^K<Yj*+ՅHy,4+l\$\$.,{&X.Y'[n b\0H]WzZ@%Sd\\eռ48kKw9W[[7c%k1{&B e\rЌkIZ@Q,;\0ғiiC\naH#@@ Ez!ح_bA\r%j\$7D\\kDPmReu!S [Hz~VX|'\"Y&ʙ80ՕmiZPM? GyjRM7Լ29,g@bZQ\"Q&!@'0EaEvڠP}RZ -),_v{ԚT-& Ī:oChvG<`t޲J9FP(@u&(<_{:%ۚ{K%k-r;xMlNk e#pxGND\0'\rB;z6L;nsE2JU| F%rQ\"MwM9\\y&7B:DNkm˧+WE:4j3Ɋ`3 .\$FZ!@.N(|l4@E\0tMt7%3S=6+>taS<Z}sqɑZsg|\r]k5c+z:uAC LpQG\0e~WRej;dToLT?1нHt`3 Iq9IÒofM^g0T~ O⡼>%7Gp\$eݼ<\n4!)hJZ ϐ @}KxZ`gCItMgz&MPv0F \n`)ϥfl`]#lkυj_C@^-\0ZFdvcV#.bE\n(O\0(XƤ.#Eּ^p\n FаB0 .p*FKBh~d>N.Z-(0H`l->t1\$BU#L,XB.uaf>Ȫeqdw'Xa,C+o& L.Orq̢M q04%o CĈ=ll'V:@5J&쾯qluq(:4C0VkѰ#4n\$\0^}40 >IXG4&k@Đp H \r\nw? *y)\r*X:kjI*'@mh2 !rABi!8&}hPQ\nИ:DL}4Vs,-N}2\"и1R\\C**FmR[+2%+s4ri5D-;0D6B6G-RC'YZD&\"\0\"*\r&2<ū44J5i0m9B93c:mbI~\$,8QjXH+#9C>0AD3`m6rY 9'/3 g@q0V৖qp057/\0ȹ5 C(}hQ^#2/`VSFh61|}3\$]7-OHe6.0t3,+09-\">h&t1%HS03L4{>t~Zs+L34MӅ#J{txlo5#EAˎJԂ84(P%soJuRYQ-о&VX!NN1E:2UkKPT-UsWq_FU&3@ OV`B&5XYeZ5uoT@&2|X\"o\0001Ua.5QKIW^eV!ViucT%h\0N\"Zj^)bd%814 )IS.#H1lő[ 4QӁ_040;p/`1n*e#,1I6i\"\rW{\"4!SS[\rf\"`\nzHt'B6 Vqq\$%JpXˌĖ)RЉf}3#.\"tV,+MU<1\r\nzrtyDF0+ax8AvVIvLZHG;p6_u7n-g*,9e1JfP4BeRW{R&;ɍmtLJAB._ST'\05:fZAʈձxSU?Gf\$nx ΄Ք)<'Xt\n t\\`cTԖP#ƥ\0-W|G>RU\"e\n\\ob!\$x'!tsxVtr ՇZwZק1 VBf+IP4Vg";break;case"ko":$e="% b\nv\nq֓NU)ЈT2;db4V: \0BapbZ;aا;O)Cf4(s2Cs;jGjYJӑiRAU\"K`I7FS\rzsaV/|XTSɇZvHS^+v&kCi=#qA/iHXEl;Fv(=v!ȉVWj)qss])Kq{fv!i<Ro@Y.H (u3 P0H3kN.\$zKXvEJ7\rcp;9\rPDjQ peczODBB.R'0JI`ҁ;!`u!RJ:ex:\r2aA7cX:DQ!S:e4\\[3.i0J۞vRe\$xEzNa0@EFP'a8^\"[Np2\r zEC@99W1,3\rp0ƌ\04Hb941c0z\r8a^\\ex7p\\AxDlcj4b6H7x%t-BiN4TK)HxYY z׶.oY6VLSI)J: PA(h\$CGJaFluS\0(0e|; #`F%9\"A1TT\"JeXCjw\$ ?!k#n#bi\r1#t\$(9T)!0y,RtLKtiRe9h>Bym]%Tgf[(o,xQii\0sdYI-v!1Ylf\0hH'co,1@Ck\\C-v+49 X%k6&Hg%m9;D(tR?lA|v!: аs\\9E@ 9-J eA@s,eND+c RiY%Q84;-PeefCqi\\ȭ0 ]\ru޼W|6F\$>E SP!\r)>FM Ȑ\\˒ŒNy+ 4:+vS 8tKN_@ۚ^WfChpu7Hk\rz\rL:E ¾-ɈI-1* b %#e\$JƐ^LFaP4-U+\r!%BRoja3MRCn/FZk7-Sd\r-2%Oq9SRq@&r`'!P L\\c\\Ju-\"LW6\"j ٝ3BeȒ ]\$-,2D,淖D8Ee\\3ekDm RQhp2˜RhC2vSnl^!:dP(*0\ru%H2&؍0G  [f1><uLDw1M@o4;Zu Ň20\r:R{8C^1fJ€O\naQ,RV/iQ{玡b ò|]d6~#FH`0Xeid_+~^^fe*,G<%L->A9C@TF8&ώ;KY7c2Q2\nG&@5THq7aJ-Wbliॷe \r\n%U{LmKk \$ʷh)i+L6Un<7Dkk @\$9@.JVGm[@f?Lim4a@,zd}4*3rpB? ) ^}^bsM*UXlAKyaM:mR`iU\nP K^!6zp߯AY@͠u\\ۛ/a:JKC1kBvpBA'8߸f4ťlWaTǭTZ)8.\"؋\n֠( @BH+boWa'K\\EWI0Z/M=Pl:Ry Ŝ-IcT7EȺ{9x3M z [R/vL}9{wLA5%u^'! _{\\Iɗtނ%rgBh\$H'd\"moZ@ڂ4f ~G\"=8Cgq\"A?oE6FhBb.FB9-M\0c8pVFxᣪ:xCpz96ChλuiI~菦Pv9jvZB\$m`0„}CO\r\rPpd0- OmE@J(\rF%\r\rM) \0[ ^M2Pm\\ǼS'@аƂ QDz4pX-pM\nQU] (\"%\ru-~0|S( zQё0pXQC|}'֏E7zjo1=N4ztQ1a\n(\nqiT5p&\"\")!:&\"\\<:L!D6pRvRes T')\"r/4Q\nx\$\"5t'_.;(&i(f=1pc!n'Ѯ}R:}wP}*q6og,'M-R.QA0\"@&G}p2Jr=B}Russ /Ŀ'ѣr-18d\$R1p3!,M;1S\$f-v%Hк23'3MO41Z W-7i~nlq7I 8|֚&VQ7.k\r02.!(3f8sO<.=R;*\$rkhb4*RjB&J)f8 ;jJ!a@A |ϯ?q!el\"ND.` Ȩ[VVZ0K\\ \npEF. qD,k<i Pd(M6.\">r>v7F6\0tr'#A\" Qwy! \$yPJ6A\nH7Bb*xby3cL@ayJRM* D)R/ B:0!V:P Vk44K\"uvZE \\Vw8uXA<@TckG!/ dPGD(9\"Ds:8D4O2l+Rl?AW\\\"ET&L@-1:f5nrd\"'`hHH";break;case"lt":$e="% (e8NǓY@W̦á@f0Mp(a5& scb!i DS\n:Fe)zQ:  #!j6 t7\rLU+ 4Y2?M3te>\"K\$s5Ms:o9LtuY),#)gALEuy&C\\MQp7Cj|eVS{/^4L+R:I'S=fPkʼL nx\nO4DXi:zE?FIJC\n *[r;\09LB:)hɈF(\" ,+ɣ0\n* \n5 +,L`6187jʒ?p\\Ġ@1 @. @@cxƉ+Lx )_\r|XǣrK(IKBt8@ݦŤ(2\rd&\r\0#(\01nDdB-\0IC\"!#; XD49Ax^;pDQC\\ {*5]ZI|6 31 \"*7^0:@[2Mh)M/ r1UO84(쌏C%γc*P++s3(@t28/\r15H\"Lj52- L2W1^3> #*M:@P\r7Lԑå9C PQ<R!*9РV6\r[c7?bQO;/t{.ј჉{ċpD\nw=[\"]==8Gc\"NKz1cV:KL\nS4[ #m)B*C]r2'1R\$C)@6ci-(06|f1Mp2|\\K&t5dm\np\r3x\"N@C n' 7503?2aU^!#(D6.Cr 9:(D0iAHq\"<I\r%Шmi([x0@Un ȢՉV\\+x\0wXK,ep/A&5mD0p J9z(1^ .\" :owjL\\2|L슌*͞ErX+,V\\24Šp2:@hCJb\"YPr,>BQd*5,\"mTuTDi\"2b=b3s ʪ.0NC (3I)r2\\Ke2D}*dD\0UPPM!\nNp7]钃\rPdb阙P5B>CMkD\"BT 0\$8*dNtTG%>p%pGH9P& 01^\rHƗ @9->NEK%9@@J#XtV\"\$G&m.]O)&)=_#< -\$ <2XyY VaP[Cu8\nD3!PbhD1VuO }9<u\$XO\naR`kdGf(pk\"=u9\r\r3u/{D3Lci28mab\"@%%)EI\$M\0 d#E5NYS0nRFm=ijzd\$APthyޯ6}\nLB-vr/!&x:C.!=0,jic<봹΋/Ȋc[̝lݮ^N\"dݻxɞ\\cY0%L}I\ru&LfMug![Í\0/xL` ҇IN;2,!073;FN P撒a>DQ!Bhtj.oC(wK~WFHnuF& yb!CpZhX\n8 c_pr\0eseiOxLjqFsct7& vs l* E\nP 0-Q5 sD8|9Dht:psdF3h-ƣNk%Max^\0FHPHiv˷s؉FQB{sLwt~t e^X_rF&\"]{SkPwd ^q/iNICs)#АIIu1v2,p0蛭vrɞ %#N_߇qsFiz|so<_v[کQ/#`.Յ\$\"\rMP ,f\rb\r G,tFfB.\"C<E!)?c@bD=PdbLQF\$o8,6\rnl\"!/\"\rm&Zfl\rD\rL\rJrlFL2b^>,w D ĺ\0OW \r!/o00B\$̮\0cX|gUk2xȼ2\ro6O0 g^NQQ#hlꌖ+,bK^b!0\0D\09N^j;glwLޤfn\"Fgte ,9G\"PrE+ޅ\"p\"`F 1&1)\$(ü*1~(%11h-\0\0,- bۏe\"qʠR&۱tuD_R2D*S1N;!/W&Q#J.iF?RrȩRSe=rHu,\$'҅ǎ?@(!peǔC0\$ʏ&W+1'`E/\$VC,eS+pP\$/RF[-2+=n 6*%Le@#0#lz~(N0S0rS&3\";͜Kn\"##r13D%d5\r..S\\L-N0Bb mJ1!hcvx'eL,8i0A9ﳅ(o\$+:r'6DckO| ӏ;b\rF&.\"2,=#4E\rV0%SJ}d\r ̄c&}ī*\nZ\$-t\n0b;=\",<5QDB(\"BGX|{ՠ@k/:,#sR13<\0ݣ-|081A*.z<zZHBרnZ<0KF&NbNLhU/&-g\nzI\nB(BT Or\"+5FsU%`9(%lEʳ0LQDF_r(z&\"vՋ~KFi\rlnh-P/ # NP,\" ` 0Q4AD\0004@1ߥ>&,\n!NtvCRA@H܆ k\r-\\~`";break;case"lv":$e="% (e4SsLq: I :SHaa@m0fl:ZiBf3AĀJ2WYCf4(:T|i8AEh2q1M~\n\$g#)e\$:bq[8zLL4r4wa:LP\\@n0=))L\\逆X,Pm@n2e6Sm'2 i ǛfS0ƁM3{q[ܾH=q#\n2\rc7;0\0P֒c~\rx0 2M!Y^\\&pҧSNԹӨ&KX9\rjR\n!CM\0\n!V5)Q x2Ⱥ`契3@|Ht83㠺3\0t9\$B\rH(0CxmSY(D H\"H`7-B6I#^Ž \$0\\400z\r8a^h\\0H38^2xc>2\rh33H^0H=!(P!&ӂ+#0p:cCu`wLԁBj8ޮۺ:BP'):dBCNb`N!#>-k:\"Ђr5pSC[ #@7!9)]θOPh0P v|C(5\$!P:({+F*)r\\3N\r^}\n\na6ΜGv)\"e\$2\r9+Q=t\\MD@7~]#D`OR\\9D:|+IЦDt8% g虚ϬQ \0.g(yE\r##6\0!;L43OXl#R9=pC,9qCͭl%?@c}4hYF\$ĒQ .\$eK\$h[He47B[S!&܈sDL#D \\3\\ȸc(LEDB .0Z2(PD%aWp˜V\$jII&/\raNP AĜЀDK șʅPE2a//QeYdU\"id?!4LP\nMݩ:K,!4\r\rI\"XUTT*RuRhwUĥ+5j6,}G9Y@ \rkB\$Yĥ} H bZ5  TQ*ELRULJ䭕·79jIyi͘'%D\0%ݘ8M|r\$qHfYLQ6.+|͠\"RiÓvQ`Ib2Db\"M3lp%1 \n (jr]QڃP Q\nf@RgH撘,tIs\r''U>) ,@XKgE2 7 TfS)̂9Ljq\r*q\0eF!3(HC\naH#|faih,>aHiD)LI&@Ȑd\$\rXbg8KYa\$\\6K%8gJPP \r(2~8Dp\rI%'\nS^|pCt:C[ |tkNAE#:G #\$^\"6aA\0a.!Β4K|3>B6\$D }v]/tMT%qGn-'\":EV` \"`f8fݛξ1Ne6a\rW\rq.76;uDۤK\" pmZzgKq8U!k3J.K:Xڮj\"l !s\n:^'̘p;N7\n)[p󇤖AZ<߄ެ\rs#D3RU6zo:wJI\r*<v*%0C ##I6trd͙Pv,ZqnN 7ZrEC\0!AB5 1\r\0g9y0! \rЖ5/j4cPBT! \$M%xQK_D{֚It&7\r0÷0-/-Wt\"!#\0žͅo.!p%|A~|SϮ |T?CH 䒖/<Qï_y>ѭE\n\n\\4vALft20gdGH0 |f●gUc]\nK~r-d^Lg7r7j#n O'Ԭm\"HH5\ro&|L,R\n%߆%4z7>:i RXU fn#zgC/Bb(_ lg| Vx \n|v0..O:\r b\\,p @#ڞnnkW\nPCvnRc)DXNX+'Aqu\nBM3 F\nm\$m2z\"og`uMbNpdmBwAVˢ`,\"#\nqZwhQhO>Qp@Luc1g/Blzg+ ȱ4mѢ/@ }LYY\"R *E806cg+Q62Юq_.*o 0^r\0:#1`\r􄑼] #-ے:W)64Qw?6w%#6^a%e\$q=mNt|\rƎ'0q1\$î (F\$'\0O\"@#0x')Q'b\\?h)BRxR1k+,1#2FdEQ+.s+6/'`+\\CRp\\D\07BRL \"} \$S!2@0\r`1s.[2.^\npJrV't5--mCA)v6s^c|\$lb2OӊbΎ3;3&nB\"#\rچl2O͡)=1ҶPgb;@I \0V.b&2%B\nZTǔz#|\"P)C06SD3C:\n]2l<Z 07=|rjL *!9OGFQ.\r&s%ׯEvHBxS>QΛ[/0\0tVߨ3i;3Lm%!^\",A9NEͨcj,t{ L43;dB>, &nabLB9-fLO\r;.eC`.<GJ?4O%&s?M72qFQpE\n6R).\\";break;case"ms":$e="% (u0 3CM9*lpB\$ 6Mg3ImL&8i1a#\\@a2M@Js!FHs;MGS\$dX\n FC1l7AD 8Ls0A7Nl~\n\$g#->9`\\64Ԭ\r pa(bAS\\݌Z*fjSi*4\rfZe;fSsW,[\rfv\$d8NJpƹa6Ӯ`&s=2 #*L=<Cm(5x=c9#\"pl`\ri몐?%ˉ b 2KH-`( zچ6t8AcAa\0t9f:Bs,)bȳ hK Cr:?/L ٦b2\r\r*O(HP1sH&tk4=-c;c Xк D49Ax^;ԁrq6X]zdu 9 xDl4x|  JQx&\rm;]\"ɧKԔ4c+n*X @1/Pv c|+* |EKNzċ.ψq\0`Z›ڲX3Bq| %ԑ\$/&,\nb;I<,C<Kż9i N)KZYVnڤtϊT[et[4hܮ\rlz\$P\\\" l@PሁI@TpZβm ͉c#<v4>/S#d6,\nꥣx31UJ326Qk\\:ZT#l <|f&'aabiC^Em [\$#>+HKec~X)7%&Ml7A eM>UTU%Z\"!!a+erL!\$.#bz=J:=+x, :C X.RYL)8TS@ERb\rʸ<I!*tgV+0SI=ְP<gKE y Pᰉr60c uO3R&\nD.cay4<띓tHܶfX(JL0 Ħ(ĊQ;R{0l6e^LIg1nR\$)W}4uF#(@i d6u8g '2XL\0C\naH#NR9Q{\0Ă\nM&ĝsԒln(bYf.1ávlVj&YQ.I69j,:\"aY#)\0˜T<c*P` `atOȦXx4w?}!xF6 mg~%9^%SbXQ+ŖtPc_DD\0U\n @i@D0\"䒒͒\$!JC;\r3H UBL %ls?Ǯf2n*'hɜrwV\rL'!,^jX2F4N%r[5t5¿/;c`ˠŭHh\\|'PleL5z_\r\$XB~F)\rtdd#XEmp&6C\r-rqVGO9T\r:g-K 6&1MEC@W2\n?iddZ\nIo8l_r#P]LЁUdMw2>!Qx,uBFH\nd(S_QyHHK\"\\ˑ]l'@V^N+\$DICFWr\rAK#-#ME*c-eITi\ne˻kRBe0 T1CRnT' Id3z4244kIi6\r\\sj7D\nII\\woNClF!bpZ#<6(ϱ y,}wWK9=c\\\"MۆI#39\nbd!!֍9EiRUBevRZc_ꄿWg,30\$\$S t{tc;~6{}ZQq#賯/dî{@oGx_gzq~'Qij;jA(A/?K}O_ph ?/䳺|iź%:I/*kA6yT՚^a_ j %&8~_c& ^=) )#3ς{v>̬FOZjYFOOMo OT#,ޓ1l VC bp,9_\nM.PHn7OPJ=\r-?)M \"Z>L/j+ƾ/&* NZ#- Gt\"0 vDޟq(эF ЀQVﰾ/1b1\0eIX2oo\nlNOT\"i@3Pƍ'P= d(bP.mD6\rV cn2'cb܏^B&6PGҨގ.\nZ2ϮK&O)MLjM٦ v;n3s\rhYB쪴}paRjb^C\\|\$IZ눪&fH2gvRw(@/f\r6NRBdwc;hff漋\rV?̘/g\0.?/v *R?#bt+?B1r'j (κK0>;6w\r=`榢(@)R7jl6v\0";break;case"nl":$e="% (n6Sak3d o0 p(a<MSlde 1tF'#yNb)̅%!MуqtBK% FC1l7ADs)u4̧)іDf4Xj\\2y8DEs->8 4_F[Q~\n\$g#))UYv?!hv,c4mF\$r47e5čʰ*wEI}Na#fuVlnSoгi@t\r2a 1hl -6FG5!uYq|P+-c1\"̴7H:\$0:n\02\rC#v\"0,b߽r\n')t:j{P2Pb\"c(P4\r0(\r8.\r8@cxƵtc(/np:GĀ(85 oSD6cE^3:\\ Ǩcҩ6M X \0 E5 td\$4 ܵ8a{9slJ(}(,99}\rF Ƕ5ij,:B;H~nt[')í4R(*01(\"8*%*/.E:Cx@7%P7 2qJ3}=@P 5me8 I{\rH֊r#2>ʼQ8֊\r@N6n )\"d8 ?h\0>,1H\nm\0ӨpԸ910Bx1\"##G ,b: H*\"=]e9PטWT3:\\C͡i\$bcr3|(k\"T`3hMZK5- )oO@JV@cx=;{\"+n \"|ǩ\0\rC?%3/両jècr̟!%\n74Ės`\0A+b֨TJqRpʪUY?UYuh*J^BLITX#\$Q%\nLB6PIheXB]%\0mI:CPxNF\"g4*T!ڱVj xx&%,Ws\$dh@]Q03\0_A~@:đ,vD\"tiu\r5 NTzoS̤.TrvFrk\$|!aKiRZP̆Yq&27@@PDS]J\"\$gAim\nI*PDrj1 };hjo;ɺRŃ'yJ\"Ĕɽ3:d-.i#\"JT1;e@אC 50%B6&ܛ*\n`MdGl*! ) K.Ȋ.5\rH:~II9)%d!ȳ1-(fBzt\rndqPY. dQ /S)S`F)6@'0 T3Qڹ<Yy&?`CI*p(p,RQO\\ s28Gދ!S`8H%Ny2H\"HW\0(#pjIjH@*8U0NT(@-\"xS\r:i\"J\nyk(&0xpY+0]''@Aid3\"[A!r=JCI85\npr7\rqdM=mo\$UWbb:yN 9\"NFECXE@w'ur6M8|\nIf-b |-dhjSL]!8.tY10E1\$<\r5m؞@Kju^'\\ڴe.@`Rf3<٨ ,kS5#71:|ffkR,J7+OgST\n!@st\n5 R䃐yL \rF8Ѩ.5>sů|Ks.UDgdE~f_l*|̙˲ͫL\"'w.yn~a\$T8KzR\$ID^ۙwI\$^I;#+[c9\rN\0PE \\t)x\n(dIhg#1?4~IBJv8(=W~\\).q\0/5l0K]CS{*N_54qU/h=]b |b2M:vWc 8'#z7ۇ}[7ЅC`bf(oh.HqDq\\--^lO\$<@mDok\$o\"\"O(*ZDJ`\0ֽ@bF#;F0`ؙRp#iXDP/:./nl!pR0kPXx!=(PkBM.!b!4)la?8 :%/,U\0oEPq\\1J@M8>\0\0eӦ_dԱ nppC`b\$ 1B7or%QIgE:\"KG&#qf@m<7f#Er8!qz\"Bj:l&/,=0&\"z&QѲ~j1c#L<%Ѿf=Pd6=\r\0E9TG,mށ,V(c<Gac3!&,\r'-r\ny\"vdQ8ת2#@(q\$z@k\"-&DC2 *:7#j NyV/\nqbAW&3d?bK.>\"0!a6gF䣇&#ܛ`*sj( č4g &OU&A\"\" \r`NK2h:d#b \neL.\"d43dVj6HdahO\"j#DSEh&tC*C-b=20SP32)4ۑ6b&f \"%Fv(R:>w\r\nf3+&£&@dij\roj\nÆpj\0\\d#91,xaN\r=tQ0\0SZ&bQjy?Cs [rL@8dbEn\$`";break;case"no":$e="% (u7I 6NgHYp&p(a5@tNHn&\\FSae92t2Y '8C!X0cAn8G#<t<'\0,uCkQ\$cġsn,p&=& %GHi3&m'0te2b,e3, hG# *\n\"Z\rRs3\r ,o&wÜg ahf\$A29: ta3\\ͳ3}u8h韡B>\n)%˂kW?Sq7p900x@\$H7J /fL ;'2 *8'4\r0\"t80à!n17B\$ێP:2+:ܐ('\rZ7<B6jH7c/1)8d:F0; X ЙD4%cxMAs 3_Cc&v\r23V\rpx!:+&=B7J:+H;{0@P<(+#ܽ(J27=u(0/9 P˗\n Cz5w\" 0:8Ŏ̀6 P\$#UrƗ:\\k?@6kfBr{|x#X\"&/0\$5 rb`[`Z9mc(hKS8Pr)Y5C+V a6mPO[l9;X,T\\@7&o=H+C&O3z\"t`WbN)<u;Fr `؇zak #zANtPWKV6s͆Qmո >wSaJ:*7 R\"\r ޫRrSLJ|(ƮI'*4(tRaM)<rT35ph>1r;:0k<6\0yh pṡTҲ;u>QÐ-U 1ti\r#B )U.TwS*5K\n(x\" 4ZqxmEJ\r4aGCQ08Ƙ 䖣d/B`JXm;\rfW\"CfC'OtJ !@UKh'\0IsF,LXs#=>64&<0cm0( T4ڂ\0PNIC'&<!bhf92ert}CK} I#~z0H\0?pCaNY.D(\rTٜeN~X+0P%>Dp6GP@`ALAV{ϙ˜R7 AL=\r:C&BLk#\$ѐLRtzY#- <k t(thiB iy>Uz>7fU4nFt.YJyJ 3s Q%ęB\$;jN, 3Say%7Brڀ-#Mh@J=dzY(B-)#0YB!I14@\0U\n @.@D0\"FI+YČbgXű[ι)1`Py!0W#~'D\nt3<ϑ,Ma7T}n]0F4MkA͙F`MG|E7,I\"΃'\r*fHz_.ǿ%yX:A07S0C`u|2тB}W>GH1y'+Vȭ\$Tk)-c?I#l&O \$l1pK1 ٤\nˉ, /ctMB-.[] \$Y)Ag]6ŕ *@@ 9\r4Vjor!]Ni r4vXYh3GZF!\nU.;nM7FX\r߼fBjkp1KoPI {ˆn)}\nd<H@/h%!-J.Z3:NmZtmc\nzL:\n7j';|,Cw|Ca',Vv|gs\rwmö]IYBpD\\fPVRwű%@O<~;1IGq`\$դY|E& wHL,P'ЊݶY\r!%306\"P9 X6v0R1q6~γ^MOZWR~#~rs 1%J[H/L\0M߯\r-೫zmK~d|\r\$1HZ &4'/B: m rB jk)0ZbcOB,Ei&/m\0ݰ{' Qd ɪe#a\"&czPfgN)+@0\"# lG6h`W&~0 (h: Z&,pQ\ropF8?5<@l _, s1c%rms#,:C.YbG\nxqPLE (TpJi,^^>Qq11@ҍ8\rl7\$1.+Hʘ)\rQi:1jA1'-6Ӡp-Ln +Q\$=y^\$g긘%]BnzPPLۥ )2\$1 eEAH@&>mM\"ݯ 7@`hbÀ8Ox(iCj\npx?̢;%.\$g*n(h%*hr\"X/bQ\$C.// =DR<\0Zg\n!r|;9OCt,ʼn/> p!C) j:^ؚP`jg\"\"S&s*#+g3?3F4S6&4,%V2[\"\n\njsL=/g_+zZK-\rBa\$̵lm\nf!Fk#.PL3.G+35'=d b,p!*%xo.it";break;case"pl":$e="% (g9MƓ(l4΢劂7!fSi̢Q4k9Ma ;\rmD\"BdJs!I\n0@i9#f(@\n FC1l7AEC :'Ik0geň\$y;¨\rfwS)3 1iz=M0Q\nkr!c:DCyêI#,d CA2eӘFաњd ‘B7N^ qR yW~Xzqu&p7v\nBBR\rh01! `?( :*ȲX:%c\"0j:4ÔB)#|::L)5^ +`)\rzCt8\r.@cx5\0,j B.7*^?#\rxcK,99O`23Lx98pn482\05CXx D49Ax^;pDF]*zaE*xD˱2183J[4x(CzЏӱx:c* 3C+Cڼcv#F j6 '0u^ Z :8f8h׎%d8+j7a1\$#zq߭, 2jңj,MLoP:[(@3:<=\\x3\rk#ʷ3Ts1͂`LB%\"3R7\rlz.mv 9]7[\0(P:6O!=x|8/T˸N 9#rKF4teڿ8s~08K6L\n2\\3h2#ݧ\n]a@PRGtgp`\"HMicd1'\0:5@fC shc.emER ;#S{d *mM/:28^6]71JL Y#Ε ʋ.'R\\C!\r\rCdR^O&4DbQĨ\"r))k\rQ/DK0eP82%0F]ȑLgQ :C?¸JUX+%hWrH9+V%452\$=bfD xw-1H*UN*x:/%uQ^ȹof]K.AsAVbժW2^U`/ +XsQ8`zڂ!k0cߒa5psDWߢ\$.J%Mz-ʏmdA(CbH\nIM\n]+1&\$g6Bț06[Ú}suOs6n\rHjD:S*{](:G PBD.d*|BO.p9 b('F4O?4bZJ2{SbCTXt]FgLMB!ۓȚ!leE%\r\$A?MPxRvCT:\\HE8FD4C,ib]żA\0C\naH#M|j'znȓ?,6\r&D19a .X2G\0*R.oP(ɕ\$g,:HA5OR\r\r {Y*LٖN+6LDfHct*.vCU_TrDNc ȏ0D@ag9\$ F\nu0ԅ=ZX!<dThbZ\0))IpkcA]0;VzfNߣD`Oco?IbSaƭ`q>di)z~@UPh\nw\${4] 2.5q 6ݖ7i(@D-?\$kjEs7\nl=%Ɲ \\Hd=. :R2\0OӤWpe~ؓM}mh\r9ÕD@I,'().26GT 2\ro%U=eG.V`Ztb3d@82^׊\\L~TKHT`յcխz2\"=%lbp`C]KКZ^_/J818xc0t'.MA5[xnP+arPHR2 `]0D!GvBT! \$J\0A vb\0)Ębڬ WjZd1gr 2B3z\rh.ّmemL<ҽg(ώ\r:qƥ~aKv{O… V% 23ß?H8hFTllC\"B !-2(Ɏ\nNDtG%k͢& D.'ƀ'H&,1T;`)zGz+x4&\"l.,\rvG \$\\%\$`'OE*vHCF%  d]P Jon0p\n0eEA`CL% p 8fl[v1p'\njepC1*=GЭ\0\n*&n%0 \rk# b\$V\r/\rFc RFrfk`M;p L\rpIOڈS DK;ѹ,`\\ԣ}'Xv1?1dGq\$GLj]ʑGPo9 m43Oa!ϓ\" \",#B]#\0Ő7,J2Й,#L\rm&'p,!\n\$0D*Zcj~6\"*goC<`NJb#`(FpF]DZZ2J~Rl#fpNU<a.\"&#&#\r---8n\r@?-'2VJ1D3a2H\nP^S*^S\$R)!\r1ij5\"r ]-37RI6sP8hg97 \\5G|yS5g:FDF;P\\\rg9SysA :I0 c4ҋy=1CyHgPS9g=d4A3Q1+/T(?\rSpˣ'C3/?QCCIABM:=0.3yAQn0DREXT8ҏ9È`T*1nAEzk\0?4`1\rr\$'e:RB`ԤO/J7t{f\$1]K@Һ/?12J\"sOP%Gn\",&J \"'&=~'\nw!\nZHe&l{ hUCo(QXf\$oQPc3UD\$քQ/qpBP쇗Rg\n9\"cZ+801YŠ9\n\nld\rp)QFbFP+އ?1^zE_:&\nvVhmb <f\n)cu;Q5:;g=梺+E5S1\nMcQmVwBPf:\rGF?̽^l=BdjTte\r[\n*`v4N'tF(9ö#h8dc{b\\ +8\$sk\\p)ȚjA";break;case"pt":$e="% (Q 5Ho9 2Ɠ A\n3Lf)oihXj\n2H\$RI4* R4K',t2D\0d3\rFqTiC,i؎hQi6OFTe6 \"PDqe0̴m,5=.Nj o;] 2yg4&6ZiC -MCNf;7bh<&1N^p|BRY7D V\n8if)b:[NL,hlI]bo7[2XOԸI2>\$P#8\"#kR߉-ޖB<\np7\r܌I8䔠ڿ\"\0PϿΛJ0BRx)?,2c(G\r,\0ırȴ6IE>C1rR\r\$ܸ.KK,8M4#. ܿ,c{8Lƾ0ƃ;/;Jc9(400z\r8a^\\Q\\Ҍz2H[&8@Ԍ*Z^0H >\n)\n<kp@Mx#ڟ&mDz xHc\n7 (J28+6R{ \\ #/@ fr#J9q Z`ӣ㢂N1m 6MmX'~ecbmRZZR<ab Z(؋ ivJ'!\0(SjC;޷)Oru9&rp\"2>r`V4hcQ[eǩeS\n **,|߈džsh= =\$\rX6:^q:\\E#o\\ MeioC0@|Z:k#X1qQ*}LQ@AP7\\Sl0΁X5X\$ C8a5/Ԡ1E[((`qAS,T<ܼ8'IA*:-<XX3SZ:j[vU\rFPn\\3EBqhp\$ƉX@#\n*Hɉ9U)I1r%XX bEdWYM*-&\"Lq-M]JbKi)%&X!/+3Bcaы !/Hة@6F x5!6d!#\\R ǒdIIj,RH&@PR  PPAI)2YȨl%/7(xquiCb=(T7tK -Rq<-c^1pҰ t|Yʺ_FgW3ivrb oM!0 4Fϩ [L莮shdQADͤbɑ4&Β9)o-' „r ΆZb߹ a2Х@nv1'/1\nGSNç<URxS\nrZ @ u.d|6`vl|=YYn}Fß_['R`)i0U\0@p ^IRDUEgZ%z5Vjka8PT@-MPv@Ș-J!@1E'kj%AZSB5Dx1fMI@džê4 N:\nG h4x*KBτ܃rIa\\Xf_i\"\"BU&dT=hN@PV/Ӑt X;LE6hBY7 Vl2fUm(S.IPZ P \rBb \rVai0ATbNc0z\rɰj?< IU,=@(aH_=n٦;/RQf Pw[el+1@DJXCfc>8E1UA&5&+O#u[F}:C \0e&l6SBTRBU1^T9eqǠ8딷FJ8\n);A8)+aN3+\r9qp`nhGIKƔ/ڇ5>觖UL;DXT6Y ]5i* }L<A\$)'Fwr<(b1ܾp\"#ēm#ɪNABCƙmrVь(V)(/[<2u*6ܾ\$σqj*;)C\$b 8p1 ijMͅifVW߿k]~rpx+z\rB}}@\rNd@L~ƌ\"P4BR3D_PťBp)8#|'@Ӱ SD# (sF\\嫼%~tN:#/@@nlR,Nxpn:ͤb\r,vm:Pph_ MDp4kd#N%\n;N.K^bn6oV b#AIގdNc:?BR/2\\zLp\n^xOD C~/\rD\nǪj1\\pS \"Sk;\rOȥTifBOR'bhxOUv=͒r˞h7G'8@Qx!ѷ&\nN&zD9oMDwu,fvw'v/quQpJqׅ 1Ǖ gxdq/m1t2\n!R0dM\rl#\"\" <>,RB|FwLP:T Dec%%<3M\nRk '=2|%!\"s A) QThr(&wcLS6h bP<pf`cDH6`6X#~cF/0p|d\rV\0 Rd E!QŽ#D Zk{cl\npfj7 0XK空2~,+@%Ҩ/oyz-LRׄ:-1kX@ QB5h` L+8G\r.\"uBfdpatgbl LCm&ID`C\n@>\",S܍n/,RIpø,P%cJ1\rP)gRt &N\r--1r_?c_Ch ;6U?OmF4^͘H@UC(!Fnt j kt4 #U9#~H.|d37L6T;,\\F4/<`L* ";break;case"pt-br":$e="% (Q 5Ho9 2Ɠ A\nN\\\n*MqmaOl( 9Hm4\r3x\\4Js!I3@nB3'h5\rAs cIEGSbr4EcyUz0Dqe0̢\n<mii Qb4(&!Nod?S4L<ي-Lq`S 쪧(o:\r>yx s-s8kjFI{Ct6}c3ܡ\rê:8lܛɭ@ҏ;cp͸K7`P85x7#9\$9t6Ȅ00 /\$() P#6GrJ)6r7%C(3#澍pDȫЦ`PȲkRF+9>`E~#* \0ܟ-#{ 8L!\01KN\n\\:#\nȎc`2\0yS\r xC@:t|5R|68^QUC ^( h%j|CC.#jn%u >Pb>#\$7 ]׀7C /B:B(J28^P7ͮ3ШPRD X:Aq64Θe+D\r9|whQbB}VF9j&&jijlɪCt6\"Ă if=&M;4 I9Ms<9(q|lz\"wSN\$:#ԡl)\r#\$K **̼frϲ\r#W,xwʼne- #͹o\$`br3/2B(&73UEC \rzX<(s 4\0j3dXؒT0RHaISkI8T;h-r<]ڈXAVӎPb;JZ+epDՆV8n.-DG \"5V@\nO4kD&ȊaL8 r[vU ,UyYE(yl0\niZEA6\n|=jDhCVMh4!#*REqP0;S0\n@gΨCh=L#CcQ#9> ͐qdIZw-)>@PRN֖PQI*D2T\$uE7#Ã<G&ZJm7Pcqm\$(bbj(KPIŔaV,(07IJT1\"մf(BJ,aL)j3C\r\$=B0Mz0RKɓdM%EYl-4 )eəS@-%\rHB3#ih10s`T{h1 0Or<(Q%sQ<\0Ο9W 2SG{a%}͊\$D([O\"&Ӎb57`I#IKa4R\"\n0blͳK\$R DBp \n@\"n &[Arweb0BPJa.j!3󆸞)# Y2jMi߰x/I ܔӲ.63\\pjҥS\\\0.LCw.8tl\n%\0`GZ\"c!EHp(p-jns?8'GICMrnZ/<3Ґzf\\A6m\ndPXHs\\2+vT`pO^fl2rnJQ2 k\nb52W S yk-*8qZ-@a7(аeW,20A\\y=tbPlO r ;O6,L}%-8z8/AΨpC \0iuRjT\\B8̀\$ :)L1Κ6{y*bU\$SU(@x'N,85o\"Z%!\\k<p v% 9q_~T.5L=thZ:KKu^3Z:܂)4; ( P0Hw xGY:\$wld[-BkY<R6 OX ô@Y5\$WƀrMX #Tb4hO <unѡfQX{\r>*oo1pMO9=bbmX ~H/ӽ_̓ QT:8\"& `TMbb2\rC6Bf<Ԩ D': Rl^p81RF6\",?Ljďp\$/dx',/ 0>rr.^O=PmxtL9xc(hd\$\ng\nN\n9\n`LA \$ A\r\r|킊PjPc-z\rpnc4\$cE6dR89F&,UԔ#ɰO#41\rd\0*K0BVB|#%ı22cpkPO~)D֌\rㆡ&q\n\0 P)@A,\r̻13\\J\n\"eMjgK { O0c b<bP@lvI/QwQ&K\0 fhNǜ6Ru!Tuq.\"gU\"!b!\$2)\$od\n-P%2WlqQ*c(RlM72-/'Ȟrt\rrxr~1[(m'c''F&b<ٍp}\"0,2\"b)Q,R\r2 %vc] &%\"F^o!ƌǬJOxff,i3cj'#SSR71B@j\r& E!RNt@V\$'yJT|\nq8d,ЬON0P\00033G:Ø!\"\$\".2LYL H~\08DBDO6FL&Ch6NZg8H\r&%\0GE&&<L@7cF✢BN7.y\0ͣ-'\rڠC7D\",kC5DH;T#(BRBuNBn%FA(ml \0Vjr3k1 BRG>̐/5DI<8CCe\r#\rV`\rb<\0@/ x";break;case"ro":$e="% (uM0r1DcK!2i2a !;HE4v?!\ra2M'1\0@%9dtˤ!eұ`(`1 ƃQp9\r@dC&It7AE3ed&3IrE#Q&(r2NrjEDj9M 4ݤ'LqL&V< 1my1&A.Ś2ȦCMe›yS\"Dbg3BiMASM7,kYF\\S>t4N;gsgA @1B:޲IйlKp9<P6 P\"5xפ#k\$z5CJD(0pʰmT9BM P2h::˚vPC@ޣP-C: 8cx5h0-HRط.\r`M4,.9`30cpʻ9\nrФ+8E@\$(\r!4kzرa\0Ȃ481C`@#CC3:xiuMAr3_^U2\rLЌˊg^0XI0:9-JI+&\"8 @T*0ӄ>mؑ1Ќ(J2NWJ PB,Ce,̠:LB=%#C\n,߯؈2X%%ǘf\"RFd!ԫNB7F6a D83KҨ!K#\$i%fܹ\"`@8cmo#N-I|?\0:<Q)Z5Ќ7GG\n˼f=2 ָ?qUR7/#)]B/L(T@<|kQc=0B95y^KЕEq/\"~O\r %m=(Sf űM^b\nzPu j9HfXIr)`-Z82\nJ042YF%aPxJcdO-rB!\r%,@@bYk5g֪[ i- \"-P}SJ=CP6%bbu\r%\0zFA beI!!C^C+ )zDHO?xYAi-Eۍt<xW0s%T]l&Im32L)\n\\9)3?dn!.PI@qKF][!)&:n !\$(%PC4aU=3̧êpi5aI/,Lwb-h%2xhLZ\$ʝ4@\n\n@gaMNE`zXi< !3JDB2B2Pv\$u4E4.Cf\\X\nbd_VY\$U#?S˜RǤ7^8iAR\$ 4\"HLɩ QHRndu·Ϊl5(^ axx2Ğ g2!qVXO6ڵ>^y4Qj&!@'0Q oDJPYI/HV`h1PSR\\&1f0&`l񈜄1=l+%#).  \r̢*jR'Dl'TYKIhC3Ba],H,\"D<퉥teP4f曜 <o\r7L&KS3\0PM%R <\"`ʐT;Z?zK`d4+;?tkhdŔ:XlVLQ : ÕZ#(*4\\@PVg6r1#E\0L S\n@(P4B4)pl {FU@?iz,*k;{1?!D*HRm)3GPI@ɣnYMYm2tn\r.͛Nc(tsO\\߲ rg!tak6pK7?a\r'r IvI% =lۯv-zN:ݔ'&F@2g)ƕa 3\r#.ގpA\nP 0܉ vQM;B&\$6cl\net&QaٙecBI6P谙oHw 3@OQ\$=L<uS{Lpum))_D3g%lvN[wKc;{N\$Gr\0r\nk2便oK!,)D?5/#Ĝ[jxq2bJ9P b[.6`n#MO7σIXDZq~Jc\$-&%.I>H{bcI2߬<b4VodzgL佌@4+NziDd0\"\"LL`POp \$:dgHR\$Mq nbnI~m\$iD P>9@bZKE,@bFAiQ 6 24%lQp\0\0{ E\n0, V0,(nvpʕ\rg\rvbh4Rk\0 .agx*‘1 \r1ͧ`Q:Nְ!r\n 210%m/CPm1[ 0 0f5/qZQZ(>,Іc*6A\"KH:FB>h*>3@cMm,/ܩ\$L6ؒ E&zM f ϫ\nm с\0Q̦\"dxB\r0\"=rK\$q#L4yB`qb#|̖y\"(uqg\"bBBf'1gSb 'F4ҖG)]r)rrQ&&+b,z~@)r,BE-I0RjA0/P<cdK^ *RM\rs'~VIS;( _*lD:`,.rˎ/P,5[\0R“4ήjJ{{i~.d>ZenQ-ST3fC6SF57J :9'%. 60:cfD\rV'2ON<,f:R\$Eb%bZq\0~H\"\nZ:\"CNe\0{C\"''CU#!K!B~#Xt&JM2`xl9/.E&).o@y-av%mXecPdPhbPFGXba-)OLMMMMNSWNc=;*5Kͅ34aR6\"f1@}Fdfz2@9\nkb>.exf-~J]=fbLO` QkK\nsdLM\$W2/Mr/\"@ {2u< gik\0\$ \0@ t\n`";break;case"ru":$e="% )h-D\rAhX4mEF xAf@C#mE#i{a2fAZH^GWqh.ahhh)-IhyL%0q )̅9h(HRDLD)Cf4Ըh/ 4&Y9ڡLQcQ\$c9L'3-hKclqu0hʮsizxr#^3KB! A%X֡PTB/G\n >#=Ii\\\"\"\$ =i9*JQI`=I3(@n:4<){)h4@F:PD0\r\",fƨI o#4cA %!1c)x%\$*J)G1ۧFƁ^\00Ŀ̂8@+hڢ-bd ģKEPJO ͳI))CSchl4͊bJGp!\"S9S\0\rx:\r2a7CY\0t9211JP,,#&4\n`hˠʢ\"#RṢ\r\\ѠOO@6ˌ:RZB6#p9=L9R+!'(z*E4]<F:t's`@ !\0،D49Ax^;8X]d x7f9@K(}[de\n2T &C'x!Γ\rr-4/ԺD.嬑ՑehZ+LVŽ@9+r*PJ2cL\nt/* rҟ14(<<2 H/jo7IvMpXq| hGNqV6^ 7lf}4Nճ\$vUUe ^Ƕ`HI]\r6O\nSg4 .+'_OOXE,0j\nob*_ !iܟ&Tޛ[`q,C<dΏK4Ɛr؄O\rp%V%ea3{1qTd\"HypVd|a@0['ȁ!J\"_\"a `Z@!Al&RTun[nB]3x)&ҕSec\"FVZ&AIlmrBH(alM9\r9'6_JC!v9W^)JQ*irTlS.(v};&h5lN6qR} xMRK'`:[ӵ\n9<ׁ[Fj{\"d7:<8H*#&T PPF#%Z^qE( \$N6[y\"LMK>)C(N\$ӆ1y6L:fB*`TiH̕ Rbo- X3aAɕ'b.LRHN7-Q#,3d8gL;`rh@ްCiAͤi6[G_);tv6Up*i-V <WRӟc@̔H!u\\\\\".eᕘ6j;g4&њ@eѣ;Tsjg(SmaD=&N9ɠ|Q\nE fWxm#YEjDx*Q3Szli\n[0'\\ij׽RgNkAЂPg'\rJr%q9~ksdщWHA\0(,P)z19mʕ\nI:/&otE~W31/V؄~E.n[Lt\"ridn[UZΣ5kд5b#I3s S=JaL)`[I7[& !\"VWYhQ]zů^\nDG]<uRлx\\!VzW.vأ~. A:bkR.R nD`ꪅ3x -9n) ב#0n0H?>eN*U\0˜T+mΠ/ef@|עp]=Hi8%tce?/e}3Gyz<=gg#omv\0F\nBfci9}r\r&6z̆O3*\$(HDܲUkc\\ˏy'_匛K8Z3(b !6a|m/SlMlEItHbgRo}-7\nI]%68FAYO:x7*L0oGFMnL\0ʓ&duĦTd\$^K`,t(\n\0\n\r,Rocl8mu <jhG p\\#XWoخ\$N|N]BH7\"\"7bD\nL- 6\0ʾzZ4\rVM3LPQ2OKMH7 /B/jz-C܅&Z\ra`\0@\r%'. |J@0 *oVLڈP7gV̭)I(9E2C\0-pzcw}a xDq+2A2Q6 @ @Vu\0..+ Ni®paHF&?6Q`\n`.<\\bΨN_P> s@tZm u&3\$BV\r R3#t*+P6D\"QB0Y!2R^*B&MRBH'\$Aq'\$~҃&2fҎAcm.hdhcP ^'2%rzPd<'˖*%B\r(2|ruR*ƒ/ pŵ/|2B \"@JSV7H7T-%*BWDo3Ͼ#e3`NdW*przq#3iۑХ\"&zpbU_JDIRB.3++D#/p#7rf{'A5,ӸiK`&F>%!=\"(S??dY??%g@,>X(24' 礣\$N(goH n5+L|vEm Ote4Ղ\"huku&)vS=Ϟ `@\r\r\n<(:FxJ4\rk~\0=S<b]O\0dH=SRo#//=NMdPE!PEPHү;Ts\0TR\nhBp;R%,\0m@)5Rn eR<?@(*#U\0SV(Vs#\"5rK0>*^?VFXaV;U ՞L|.M\0r&5]F{Wgu(u1UqA4ϥ[-\$H@/GT,@k_nn?3.'ђ<vS>f\"ˋM!)8@L?aCT.zyM'e]/@VdD2&.P/5=B4>3I:mqvoU\\TB\"rSϱl/5Dy=k5kuY>p\"VR&{lX1pVSpjL6}s7vVnЊAIF6JJW@tq;@/aiVV(T\0E>`P݃ 5nS!w,p-\$l3 I'7z~H z!xHpqQz #zWx0\0007b{z~sn1#x(7yt.wMs;EFvQ.wx%pFPpiWRuPj/}33UѦ+Ӄb_^9g\"QSr݁T4\nGG FTgZs9*Bo&Y5ÁWXظ /8V8󵥌]+U,voO)UN5.3^mxWU&'')yauo+rllY\\\0.a1lSj*F\$m͡  %Y؎K4mfL(P:#6 @\nq)O's;\$ \$C&V=2rEњ&m-٭j8ht^[i{9moeBd0q_f_F8oy\r }S׊-| U2{\\{{9 0*qZ?2G%ox-(~A\$Ócvvt%b+9vB5Tgo?Pj#ډ@zUX(\nHݪv#z DoUgo:+i_i\\^'gB֝x|N*bCvtHp\$D\n>RL^NN\$Tz:\nmxHtZ'1͹9o˳_g:eۥ0zK˩L9cvU/Lۈq^.RdG {,\\";break;case"sk":$e="% (](!@n2\rC l7&P\rl25q\$\"r:\rFQ\0B0y%990cAn8U\rZv0&'(a7&(n1!%iAD9ϡf?BKe|i3fRSzi0\" 75d%Stiы&KuqmNemB~Q%b a6ORj5#'MnqoI{<q\"7)RPcC(p7G)B,CXԦc Ch½7\"T6<m1#Ȝ2M4@1b9`P*Ck ) 61P% 1Ȏ2h:80j 2I\r BtC!7c\\\nx,BԛB@\r֥ \rbP90*K6ME,x kE.)4*lC@51P D \0x#(C@:t54 9Xxc264C2仫0x!B+.qVJ(Ĥ'Л82U0:̢f=C\\.+\" @1/c á](G`P(#M@.FsC\"\\4u&7\r\$D8^MȌ:[\"#;3DEK\rc ʜC{ʌxS8IbbL4^bˊޭ\n Ń*`55s`bJTn,=Zj\\7#8[WPNF2!xX4u7ZT}%a.{P·9N.l\n0+4o\"(D]?< \"]iBVʌ\r] 6INH\rvo\rSEkp-(3cD O \\PrK1Aе̩Rr[HAQ(p@^+Y:l\"0)CrYEA2aynjZ!dC#aО\$¥ai0F![I:A7\"{ D*\r@daRw,0@r\\]S\nXdւZHZCL[J6bxC,#Da\\JQ0䃎aW04, fGQ]D&<Q'\n­U %XKc,b D9-0{&27-վ^0`eJXK\$x!A(և)3ȹ%iPrz`sU>P2njt|夑#يib)d+H xU=(\\S(4r(!4Y.\\8E=DeFdA2Td+jIf\0BCI(r9V)SnL;4,Q*iitE&!>^ʻsaW zK U%O8,ʌ+ON8WkSaL)iq)os'Hd\$!ǣϩbPJ1!#4{Wfh HGP9:PM\$mg0Ka\"d o#Rϲ&fBQVxBn\"56\nL(EІlI:C{uQi@@\rq/ApV-e&é?} t%E8'`@PGdyɅKL0dLk&\"e\rYSU`v]z9q!r%E\0ƅK+\\|b\0_\"Z<ֈڡ C{ 'Mjwe萄M4h1\nN8*Wz#ZeWW^o wZ 2\$(hLnz@UBHO=hZe2ӝP߱vO Q'Zgdj\nta4MSB4CrN!AJ(X! ԴZMn ͠4Q=-4S>44HIj8e՛N@dN0/؋H\"Z/<\\M,z||hH͠T%;\"yI:Plb\n@tm%F-)q\r7RԨ0:8F4?# T! \$Wrz.Wڣ\\~1@)\$\rlHc<9p1Ǩoc8MTLn92E+M{ 6-AIC!\rg+(:+0;=W!T#j1fr9NtmߠD~ӲOxO݃QkW?66&X1\":\")f^KbG:`j6GLG2D C<n`,E Vmj_-'dLDb \0KfJ'7#h6Jbrf*!DD4/CF^:(AC P}p@3Q ^!HJM 0Bhn CC*aBAP'\nhBޠB\nBlD`am. \$Dif.V)B%zmN\$ .h  خ.J\r.\rQ.B.m8EէM\r +Qtq b`pӭ?orP =Q\rI vW э bP)1sqlg\nx`/Q4erQX Ѧ1%Q QHB; /\0l*s L2Nn%Qik%Lrd>V|ѫ&0\rF\$.jo(ͤ!4'U\$br%f=)}*n͆`n}\" '̀\"GnCj.Rg\0?pEW'as+qaMN})f`fN6R(2RW-%\"2zЫMR*52E -4\"g5212Zx) Я4v? jbv^`.{sy7úHi8f #\0K`yC5Q S7&3 }41&Z/'V' :=qQW3NUQ<ss4N6d:s:n\rΣ;R[ Ac#зB'\ro'8.B\"θT;q@ND\"&*MD3E@\\K8FF\$|yKOT6o!\rԊ=I\rrPI\$9P\$ #}RqBrK@CLHA#J'Jd\$\r 1Ö:k'%r:RdH@>)0=)-#2iL`\nZ!rHBt>!E\"5J#5OT2?UOp{T\"&\"}7ct١J#bnpx犨`c V&.HL!.jX7M^m..[hQ;B\$TnqKN>P\rė\n -\r{<j<rWf `p IPaB`5\n/к2N3\$^u@d\0@Sp #eBr'c.\0u<OG-cqbL*l`C-r\"V\rhvX~^~CTۣ_YYNO7&oa 7cW7";break;case"sl":$e="% (eM#)@n0\rUi 'Cyk2QF\" 1k7Αv?5B25fA2dB\0Pb2ar\n*!fPsSYPaDqa9Ύr\"tDgNfoBAoB&sL@ Vdk1:0v9L&9du 2hyr4\rS9 դh4Ε܈h9\\,xAcFQ =ptgtfYyS=bX,ģ)^+Nij\npǎ`9HZDbt0I:ނ!2BjD87(9% :\r Eu\0@7i\0\0+j꾰LZEC%#((7 SH PHn4P2\rjn #o;ꙥc9XV 0z\r8a^(\\N* !c8^pHRAxDR,@x!D\$Z08\0(\r(C;2 Czεu7mkLݴ'\rn2p+J3( I W05\".]:86(3\r#%Ōs9>HP2-12:L6-t\0P:2C :p% I\\hQ(+\"Р7ԠA`9@1\n„b\r\"oLen\\=[Bo Bm\nLp;І{0>s\rij2\\6*|=dt:ql-_CMhHR\rpBDN-\\l@Ɏg˰Yn863 r \$Č/30Wp\r@ `@2)vU*,2\nI`M̕\"X\"\nz^7P,~ )cbCҜSʁQ*ELU7bV.ޙlf\nP L+(Vxv15r<Hix#aY+@(x,|;NTڝSQPӄ1UW+G9C\\S~N;u80L؈r}jTJd0Jȑb0 )'E@ QԂ-_a3E_~qai\"%\rk\r]HZȸhNEwI 0)2\0))-/MNV e%w*He\" !蕇5\\a8(ԣԌ_G 1ͤ!6wB=6f:E˜RѕhEDecY2BRB \r\$I:NrWZ;\"E qH5@I8_c0ki_f=<q ,dC1G1\"0gҎ7\$&t\0¤e O5\nOE\rJ2.5\" V\0Hv @,@#I\\VOdZt2LxZ(\n>\nK#AugÃl.sGtP\\kP&4r3[jGe-/o呧Xű9]#ihE.Q>3]q)b\0@600Lu786@*C.a6TC,l&Ù&Z`(- ;B7e&W #7rxeCfL}}H+k!9\rnR_ł6]_f2w.Wf.\nG n71֠W\":WK>PBeK\rZe;v8dABw-4u#_}Z:6\$b:Қ>0`\\\r#We,e|Fܺ,*@@ k);=CDG\"Y=ݱ&[MAm+|vu\rN }9}T0P82HRMTV`5e((mT0<P>?Ĉ#X=]ƙ.㡿w\r?'ʪ~ijgy D|q8mq_Ik:O\$|܄\0[GC+]#vmmݠ0ӷm<8wb;A:ͼӼ.ػJuwo fC\":bat\"/G\r(pN AOYH̴ \r \\74A˴ST)Q#/ ҝ9%}d]Үu('Lv43e.B0rø[Eq+;XDN,X]6L1`r5 *AZF>%r/\",\$ֈ7\n>1.:}F*=m:M<f\0~ k\$c1L.bDL*JʲdG 2P .# cr a|1- %~I P9I* b\\m0Dl#\"\rn~.,N2N97b&G2#QN1(m5nkYQDEmRQ lè\$;@K\0rq \$tF#gCbB+c5Ib 9bT\":0h>DBk\"0PN,Q1tCW\0ԅI& bM\\Q_c 3\"#Vu#g/9 %1^\rr/i+%B?\rP:g\$p.T[lGrJīng\0gF+(RbPP .&,\ng:1%%*?'\r8\rg<0oY+C)}[@r;]P'\$P%^Bb\$խj6\"JXg2b \$@d6C~]*X\"(s0%1\nM&ZNmhI\r%nd-sLGRgSZ+4e/Ru/^?q}7v/ \">b\0QDO&19Xq59c9}3;W:\$P1 \$\rc\"%9Ssu Y<Ÿe>+Nͣ>9?Φﳜ/?@d]=)Ep&I\$|lk\$@b\rJ\"\nZ\0A+>:tή8tW<TpîGe%N5\":G]\0KEҔg6z-J:<dct8#+LJF! UA`K`WB8)NC@^:MT7msM , FnLB`bA=Q7d6(\"^rN\\B &jPDm\r\r\r1`wur%v&m8>2]\n\n0Fki-2m=FZ>sQAC=W|lo\\3[ &RJ41\0H :]ǰ";break;case"sr":$e="% )h. i4 |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:]\nHr9a (h_(әHY7D Fn7#Il2̧1: :4c41?\n4I(k+<F\$70)pE0k/쒎x)H3Σ˩ChH2xKʾ\$1*[;\09Cx䭒2\"ũy'#R|N H NMFlĚ4Fr\"BT;qQk\"(4\r7 #h-C: C1c('8R#h8͆lIk~'H?A*t56Ȑ<% B6@2\r@\$MV1o \0kp[BюL OB9430z\r8a^h\\0v/ x7|C ^+/4q/\r7^0Κv餡f5u2 V2tJ(;^5%<M\n1w g[7](J2\".(;^ژ%fzh Ҏ(Sj_aƁ *jSb/aB 3 #n:fk4 RBHC)\rThm7|VNB2XkO\n TgD-t=gxJBZDhxH#~[> r(jȎP *EƉ&b&\"?e`#FI\$ FssW\$ i\$#5D*F\\6fn:XCNy0`a_1Ep՜Bʴ;;D\"y/f5Ȣ# ia!hF8 @C_[:K-9˙._̄!C<h C.sagf jb\$VT\rŔnar.`\0l\r5 !0 \0ܖn0RV(%J-#s\$.\n*NGiK,\\k/X`%؈nK`1f0tel`ʑ|+q#8̚6eC%ZmJ\0\$m\n\rY& 2s_ -LdюkyC\na9L&bII\r)`#~H6\n %*á[_GNi5PWT20A\\s` F8%`a =oI%'LexcXH\"4fx2Jn\\sL7*{jzfPB\0Nՠ\0PVI|f蜧\$a.q92>S[aJ0(j(_hD}-SÛ\\\r,fJ^I6h֤ `4W\$\\sC\naH#?sFboBhoaW_GF @:Θq0K-3[ފ3d <`[e4A sA.ٙ8VK!Q*Z`€O\naRBh.MLagHh5UWji6YA3b/8,4( 3,9<r,a,(Q?g >ˬ#KBqCjn܈1G/fpG&X\\(]u! \"\0U\n @iKʵ@YhSפ,~ E cl[Lp1aZ4V<QDL[نӬd%#'Yf-'L\\CCv,Uq(*&y ]@–O%hiPb\r;.<Tf#|>Gn\\9@ל?\\֐I\nǗ3:,: g\r7u7Y8Vsb}J<4-]u|=7:GHzt1֙7B)sPL\rBS@^(s\\9N4\"UxqrbKv\"Fx}(wxA G|3I]MN:S\0 )@[_kTZ(C3^ʩ;W*߽Yfl7|E%ʥtH(NtzWvr\n \0@/f[F=[6@4O+J^n@^mnnH&kx;PL(F0&zU^M*(%~#N6\0\\..,,P,cea 0e f,D‚:P ,y ^PqPj\n0dݬ,,htpPGj]e\r 0c0VPq-,%\r!\nq/ \rbZb ZK 6Եx{ Q7(hcʡbΜ\$lGb ( H1%PLGv7\$ea *DJERX*B/\nìUdl(\\D&li/,ܮh8\nN!0;rC\$<+o\nf\$R,>#o \"!P\$GO(8c-n øpCt̾,3N ς}(F:T.R#bFO2n[ &E-g0~U|.fZ ^@\r\r>\r4 ҐEp2pDžeqHS\$fg\$\$%vg.&Q&\r '3M,N2#&&%5+I5oZfr\\:`,-%.Rq7(I4&ǧ'3u! 67 5hrDP \$Ci{\nr3:ha;0Ȟ\r%\\s04Н=b8mf\$7a7A:t\rA\rc AhZzfd#Z0(Dݮ5DY\"DáϞl*!e|BCDTR,NY&F2ƪJx~rB\"4~r\$ly#\nN9#G N5w/C\n)/'Ig E\nkj, %B8BS178`?S{s-A*Orst%6ORS>r%C55NP1u'.fNH烄tXuFEUKUOcH6G<fMEjHqOTNn'puwS5NsQr+Zu@&-[q.bSYUb]>?8<h]DQlUpQX\rc4+b*j=v\0s`a ` PJ'6Z4gTZ!c—d+Nd\rePU^\n'V>EutHddlj}\rGnU|Ozkc&g-cichj*[E6\"{\"fFq.mcjb\r2jp{*?\rq \"VosIP\rVµQ,2Tp%%k Z3<v\np֤˛nND5u.K¨zO,[LƷt` cv-FUeJ,W\")\\k 0q=b06h#|f@47 W Xw(dO2E&2|}Ț)DR=&X2֗:@F^FSHT\$)8={':6fpuxN.h8a3ԯk{|QrAFQ\"S|VzᏠxTwC_6XSZ\0\\`yE^2*,:LqD<ėlP u).7HwEZ ׁj\nTN\rXt!Lgz-26%q|NX4";break;case"sv":$e="% (e: 5)@i7  6ELp&)\\\n\$0s8t!CtrZo9I\rb%9iC7,X\n FC1l7ADqzn\na!CzkDqe0t\n<pō9=N7'L nˆ%#)HrL×3|+f-5/2p9N\\C*ĝ!7K\\ 2Qч9g 6f s+ϦuCS7OenTޝ ZN'.44b910!\" @ ?87)h6+4NzZt8;CDjR, 4x7BbT\r\"BNr(L \n 00*\r+c ڈ7Ƀ<Ȃ\$3 6t.\n3-)SȌJi,84.0z\r9Ax^;Ӂr+7̭p3(^c+ ԎS`7^08S,B95k:Ұ8^3< +I\$<7 As\"H(7σl*,ULH5c;җI%C-`\r@P:`\\B3-o(\niSFn#d#9P2e&1A\n:!i ݲ9s&j)\"`Z5œ7>kXlܶ<2nlcFN1\rv78> 82q:F\$ lѣ30<`J\0@6m0뽚7\"# 5xx\\\$C8AA\";d'3\rN&K8#}R6#sN7c~[Ol\$\"76ϥ='4MW ;\r͑l1m9״aC!'?Y[*K, ŀ\$\r!*8)\0ʤS\niNu=.Tj7ȮUNeU,]BLp8aDQyw/d Q+ZmbR#FB] tReM>arT\"jpcL]ҁt7w\n8p䐒ʭS\"f:EAR L7R @p!a]#P_Z5\\RyƑDaWLÛ4kuE(s/L3bN]9 NL퍚8bA\n (٦OXFH `RA@/\0M6f!a\$q=\n` 7LY9؉JDb2lLia&Q8FbDJ<H<'2zёINH@ i.TtI#:4(\n@˜Rx7Lk\r/X+G81t%&dߊFO; F UdWa \0 \n=-2W 7ǀ c<(J6I\0O\naP7Hs%F , [&jhi.YЗJyD~]rq\"&`pRC\\!zHf1` \rԌvGXf0\$@@BP*PBpGX!A:^%޼ha^H:IU_O!A)3], {r.bOPZ=OBuB]P,\"YN9L)RPGjP<SL0i9}':JU[D6xEDɡ2i{7)x:f u?E..`) (9`IC9Dx^\"[Rc\$5 ]#*ZaYiղeQĵsd8CKeF@PM!YgOiӷ=\nmP]( lXd7/KQM|.D4 LED\$Cf+fia \nŒ%S\"gi!̑p^7 5t}sCJs#wiu^ppw!߇w5SQeHg<pغVp2I#}qKG2\$nnfNOI eo \$,ny?T% ɛNhO_4fQn\nތ0BOh[ #\\wΒsXN͖€DbjI:9'P,,,~d@.A@ G4,[6QUchDK3.\\9\r\n Y+H+9Flwmd9|HJO3OZwKj&s›Wxlen`i+n8E<}w,E\0̳Nj(kjM\\~n\rMY&>HհOT!BN\rZ'trHbhOz{L6عT*=%Lk6eb,P}\r25̈́mPmŊ[@oŦZPopE0po\"J&(bq\r\"87 h-(Hb*`4gfgÌJbzF/To”.PpX?lFl,^\$i%QRht4\r>4bOѰ/%b(d-d֎8(бtc-1[a\r~/ޞq '] 11Q!\n01-%R\\\rQ@ 86:O>k &%ʮ\\{#N]E G7d82C&K&r٨+'D6\rV\rg iN&(Tkz!3NZK\nv\rۤ\$\$*\"D\r+vpw\$-!-g)Z\0#:%BC@/\nbX\n|ҫr򤧎ʤ-eʂ,CCN\"Z%\nd\nDo(%(dƠ,C^O+LDx#S.jj\0v7N7/oa2q6c}\nŤBB|l40B\0pgvg@`j@Pp4'6@-C2b=D>^@BiJ ?3n^ѽ7nJʃ\$iD3";break;case"ta":$e="% )J:‘:u>8@#\"\0p6&ALQ\\!_ FKh3Xҽ.B!Pt9_`\$ RTmq?5MN%urι@WDS\n4;(pP0cAn8UUɼ_AZ.(qg+S \\+5~\n\$g#)eGKN@r|,F,u]FdXGiSTrP+_5ȕʙa^i6OCq)Jj^E.Q@+W@J,W(I{\$ #x\r\rx@8CH4(2a\0\$ :74#1EH%!p#%9nҗ@P#x;j\"r\\K<<2Jj2t81Pd 2Nx)CH3(Q*ڒŢ2(7L(\npp@2C97dr2R\n8㘨934NBX5cWn\ncSA0BTz\\Es꟡R-TՏԯթ(1R(60dpU)#p6݌¸Z+˸AVH7pt aQAQ7c]4좨2Vk\n\nVI+>S[)/W} 5 (X/UsL6 '6|ǞW[46U\0@2\rA\"OZ1qA \0ëlLulQ;l9460z\r8a^h\\u@Tc8^2x#K`|6m3Tcln4px!,*9V.б_h҄nP^Λ,C.4NRY<5-_Ϝv\$?+pIu\"~Cm9\rB\n C!.)4\0:^ vtҝ<y%H\"\nL3l1*hq1՘љD 0PCa\r2NJkt7WޅZ &͠gun|x\$RU0_aD UbM2%2'p'b~qҽyR\n<+YYwb2G贂0Q 5g6+Q:ĉcꁰP#zR}/1W^<y,4(3Vyboz()'ffW78o^A,04H%~ۓ`\$ Y|\"T~~E c,vfHϚRP8kJJ&u`\nHml|9u?յHziL\n\nW||)zD\r9xEatF:WڔA<bRn3Q-N(#rR!xrHup0f\rgʕP7gT !:Fp %!A6TRz@s5w@I5oV\\U՗BzɲjJ@TD*i^:\rkg Y\"+q.-Ƈwڪrk9ը:+WFdUe0dKi`]14f()4#^ÛxoJ|<\0m% SqB@×\"G@訉( 7JWCs5WZpTKn2FPZs3;ߕZ ΂ORԆpn2 #q]0k׫&N ,0n(iF P( m40+?Q\\PP @c2f)珋vPJ[4\$jC'U0CX\"Xz'b5ؤ@o!,9Z~E1?lZ@鑋knm<0n=`;\0C; ag Qj2F%njRw)=׀ՠڤN.^_Tj'o=̣x<\n,ĸ+,@t󤹞'Gqi8.^L+O,Ώ<(qsX8z\$<PW\r0G116T\0̨mJ<I:͢vZAcb\\BrxS\nQ\nS=hY?n|M}Z[V\nRDE\rVԼԍEAL˙[c29O2U2VNI\n#[kSFHh۰u`,GHAiŰ\$qf*o@p \n@\"@W\"<IX.\"f)}\"*\$!A/HΫB/'\0^eZߍyD·#x9Bpﮐߎt-(8g@( ܄/nh 4Vc^D2\r|/\02\$I=p0O\rjj4rPjr=P^yILjL5pg\r \" mvR4*H\0lH`_#D(BnX|\$N.`ttT@ Ml8lZ7&8Rk}JwQ6-OJ\nHV6\rC'o\"x||\n`Hjj\$j`DZ,gpd ^\"Q\n@`KP'p{Pn'Z\0܆*ր lF +&Kq\$V Czk.)U06,E 赮mOcb`%) \$6oJ}P/\n:Lv\nM\"w(Lzlc\"\nchF( X Ao )vlO.4T &~ C*\n+E()!IW\\JRFft \0@kJƺmhΤ \0C.cV*O,0\$\"\$M0nŖhR\n93P0\$OФ@NO7|s`\\-%60v4| 239&35h)5_*w9إI.cЪsq qe\rȲhiL^L\r)pvD4(‘8S02>m\r7D;;ә@STЍ*-6;7t)\n3CNo:s>R` n@@T@xPRj/\\:@H++E-4dE;dGwJ()s8PATxyBvП6y(DB%,{%pΔM0)q?zyM6Sd<\0E_.\nw QB\rVbQES7u0U83K.(+BR9uM;0H^00UAE3C+!MQLhE/XudLRRh9BܽUGXEYTK4[[ա5A5.t\\i!<ViApR`PHX(V.J?6 HT@7#_LF.iIb0/AҔ^wEUY_#jy@O\$#ծVMզ5+5RJ\0@\nE Fn@\r\rf\rFCE^6@nHd\r )YQWT5]0LbiHwV`{Ӓ5Y@gkDoR\\u=6[ooiEAjr]=2QnTo.eUǕ n)os ~6\nGV Yg\\F-sCs'rumqla\\iZ䬽+޻zuULumg-+jX.䞦?Ӡw(x2ȾYtsxDyz<me7rc7A?qV(H495:?wKUWl}g{6h/zO}XV5X}u8po\\U]wb& [ Z ]Q+\nz#J9RoW YwS 3@Qd/02`i C4rW%}N)%4и~YO8]<һcg3mŇh \n\0-׊*WU}3&׭+X=]U\\ Egnv(%zVuFIW]Lz9=IwrogrX=y7f g[pY\ru_ue6\$߹ICpxYnGU||c/ol+9[w2řEȀHHmi}r8#yQOT¡'Yh΀.<AH18\rvwQSӕ+ԓ:Us}U3=RrQ 5áZG&P3bJŘx-M(4?Q։u9xX{)mz 2Dl0jL(rbކK2ӭdC˭)Zh̿3)ۑ;ړ:Kr gzÂ]Vd8=t:;?y;:2D[3\$Z=C( ,1|/AYv?dtӳE{ۍ6:# 𛹹;KyKQgZ:{O ;qB=p@KU9J%wUGCyS9W:Z簥7:MXn\r:HhFJ\r nBN~kϴ\npSeA7zx_8*& :x3;;o\\ Z==q&\$h\$l<Dzx\\!P-.U-9\\egzMX ؊hY\r/v\nhIWnoJdgz1K %(ݵ[\nFo^Jm}VmSG\01Q%Tg0yVOY8{YXHp%y)sO%oY\$[RU_^ɦ7\0fD\$G<\rfxx@t͎woܸRw.H 4ѣ\0Pf06;Yw,Z{(Rm@h)3Q\n `KEW F_0fv<P5RZ\$&oQSBiM]`P\nt6R_<3%3wk-_CἿ4=g,>@`\"j \0@ t\n`";break;case"th":$e="% OZAS0U/Z \$CDAUPȴqp*\n*\nW lM1\"T!R 4\\K3umpPUq\\-c8UR\n%bh9\\EY*uq2[S\ny8\\E1BH#'\0Pb2as=G\nASZg\\Zsf{2q4\rvuTq,..+h(n1s6t9K'vK֗!AvyOS.lUشt.}pTkp+nC>>Bi\"X *~-h+#\0,@4 #7\r\09\r#6 89R: :8à1FK=\n[;I쎷+c:lִp,,C \$450=9s?B.jQ@o뚑B`P#pΞϓ.(cOs̅B5 7OK9Al DѲQzI\r1\$6t?\nH4 z\nK0%Od5s4\$Z\$C@9p6t8TT\0t92M ӳ,ҏ+Kn:RBTŇbO\\6M(js:[U\\/Hs9rblD?l1AP2\rMB |fE@9 #tH :w!048R `@jC3:xﻅyT p^8l;2\r#D #x}\0(+w 6x/%fdʑrNjا<9uʺOdѫclOxw\rs`bUk?˗N\n7jC#!B\nCl̄f;zB3hqdγ YIIՕgr<I(E\$h e :ƌld>J9-`02Lށ?G4\nNZ Ve&fKZ\\;أ` &dkrD@fz?Eܔ3l\"W_\n2zəK,('t5~lF\r4pCtQ%:Q DR1 rݫbg%xhI⻧ts a22z QrO97'Z[XbHĶňOt01K` C8djc15r#MAe : ><t?B1y ˠ \rv6ptm)ysh6ܰf\r!yY8 Q'A` T8K3`ώLO6BϐT\rɆni\r9h*`o \$9`8a ᆅз:HuG939-O|@Dse빅ipmITDm9J j!Fkon-ͺp[foɿ^Wptr\0U'MX2 Cs)}]LMOV /M9ӈ*m*\0I wV%\\[rnټ7ʨAs~p2yJqa\$6`pt%x5Pa_)CI\\tT øNm\"'<X-VdT v #Pb8ט9UCf\r:gKU1j}k~C82˲`At'SFϱL\"P-^-5bN\0\0(.SE7\$\\}\n);T\0007Vkԑ)Eh:4H\r7\0þ929#h}1KD~ FT9FB>q8T&l3M\0n\nW8Z\\Ųo=@˜Rω s,bQ Z0na:914ci}dJ)LCԖzA2YjV\rejva a戆@Z+Gp7}C0QF ʌ6: t|kGXCGn_5eX~PJE\"YU5lb|I\\!\0Zvn%(b1Busqٕ<q'F>)zjFLj(mET#Lit&TFmnюdYRaA<'\0 A\nЈB`EokMnO&M,t2LA ݭͷy࿕s9\\XrYgBfoL̊)ٝ14OeiۂmJ}9?|\rHt]Q-,tӃ ܖ]dv3p\\}T䀥zS)WRٕ %[t'\\,PX=iX\\\\1h(.~Ǭ~8UdzcTb>b~7\rHțo7#l/GPH8 H8`l:Q oLgCp ]FIH,'\\ @L|\$\\ '~UO:7ܓXވ>&(\"\"E>(- do Nz<*6[D:唖N,t)i8_ǼcGl7'9K\r\\'\"jEFJ7k @ \\-r)\0IN\\>4yd%zg@\n`\rE{DN̬GvEIot^0~\0\"V :bdE/UB!j.gB*ɜ~ܙ\$BQѰ>[#:c6)\"yrl6h~\" 921X2@FF\\đ&dB\n\\FXWG} 8g8\"R&C\0cw#Rd+XXB/\n\$XFX9JQ\$=fR\\j\$c yeP6&E@d'(ӧyoOX(y/\$gj9R-<oes\" 0PΙ+02X9%f4?NFt3pDE#g34&<`r7pI'EϬ#+@B-RT`8~'.h;L5~dA0±;\nӓ<V)8]98Ǎ\r/Y\rcI'o6s|6;͈*đ \" g@ Hk\r\r4\rT/\"0 ֔\"\r̿9O9m\"Rx8/bS13jXDhf64\0)' %&eG 7iSD4k2M3;G:ԩIԯ\">JsV~3c@OY tē3 GMl6q#(ď<&Q\n)d4TI`iJA?R RN+n\" K06TL:/ OVCU-: \0%\\φ@nR~ l2:sXHXgVqhͮ\n9SQ[9}}c\\&Gn\nRqR*mo6'USU55ͺ–'\nH6?TEvy6xUvVSN T?R\nt4\nFgԿDH d\ndVL4Y aU!e FOA[v@6X[?5<* @DWg]LEEFiȠo[v,6_;i-3=AbV#k fvMm)WU g+8W\\g;L!nnV-gvg@ mW Ton{-sVqk±TKbVuQq1646d_IU\$!qr-juT3\\a+Xa`F8\" hѫv_rFw2 \rwwwzÑ%~@QIm!n׵{ouoa)1|wnwc6Mp9e0eCu~ġB4rkRdO0k'Cg VRґ5O2%24\n\n;824920n\rV`xN/\$/m0@̺Ih\$`\npT\rQR#OR5 N@ɇ:`Q5 '@ \r o #\")Nz n|yt|Rp=e;\\&5NF u=wQ1LV(.rPdGdtH@QcL9\")c\$.'24*ojQ\$Ы^Va|B,eZuZ^:&yS1m_{HhdHDנS gT5b܆+:<b]@H/F)\\k-X6ZqB#C(t\rZ;O2=de+hu\nƚBs:6m~\n]k†Ъl)0.sr[q&tYH6e6PS<{P/\"w\$IFuL/tq<x!Ճ\0@ h8 \0@ t\n`";break;case"tr":$e="% (o9L\";\rln2NFai<BS`z4hP\"2B!Bu:`Ehr2r LcAb'\0(`1 ƃQp9Φal1N5+b(Bi=Dqe0̳U 18t5hZM,4&`(a1\rɮ}d=Iⶓ^a<~xB3|2u2\"SXS8|Ii1gQ̑̚\r;Mno+\$#ӆҙAE>yFqH7ҵ\\Y;H#cRX,0cCN\".;ԏ1#`*H#z:-9:ê\r@7;C(.@cx5ʶ b\nBJ2CJ&bzNȵJ82aՎcMX1sb7 2LLHX༎c42\0x C@:tD 3:B}9Ѵx^'aڍ/i̍\rx#& \0,#iŴPCp۬jű-Al\\)\nUp 2@5\rS'D\"XM{.2\$,C E_7 0`vICSB356rÏ\$\"H֛ 9\0P4hñBƘ\\AdW)\"e&0Wc\">+4QO\"إsնW:ìKn%Gj`\0006䐢@\n# zz KbssR5o@V׶hRC\rj#D<69I֢3\r#>2!\$I86DQCl H箚\r~C\00J{󁺢#sv3jh6{e\\D<vBHk<ſ`[ ~m+9ZAdey̚ `kHph\r1H18L)PʥʛS}P5KHrUjEx>JИX:b.-xia-69)H1'iĴOy8\$Qxp 4ᰚ\$I,1PC4TAR*gFR\rʰ<\"[B`\"R`uyZf4Ye #me\"jq@I/pTOc|\\;mpS]<09cI2ys)hT\"96@*P @NY \0jr(E6p rXRsH)֛\$ ]IDIl\"f],pz]l\r\\&<#P4%r`ʋO/ASW\n2V.(pC\"M vaRaNDLaL)i9'eR 58Z>Igy\$OkأOrkI#<iz)r)q^2ד\$NeTϣD#RLy}kAv(c E<CzxS\nD#H}RӿV\$,8u/(\$ycIF[еb֋\\ڣV%%]p{/< U\0Ha{<<\nQ OM H|^Kx\0U\n @>A\$T#\rSE a \$b!J. kݿԙswOs\"[\$!6Oȇ,\\\0XCv&7ܥPB7ԬW)%lpmxCDNaX83dI\"EZev->:\nIz&mEH =2\\D眓hVsKqą,PY43,k36tW94\"^sp ABL\r\rff<u2pNmV8S%2^u> 7-fnL:&-d@n>~\\)d \"DC6}n\rW\r,:j(C.DTʐ̳@=((*q)zP1!  %&%CgILC !,q'h!^׍T\0fu{WYPN_^,MY\$١>}fl7o_E[}{^{){3q}3&t4y]~|_TM;gl.`]p\$(5^D[w{(zbeӞ#N\riE\"E9p9 >!]<{?Ul]\rl[?0r+r4JKnaFbF(Iް2\".L2!#FP [,onbAM\"-M/n(\" J,8 Px\r)&L\n<CވJ\$/ܟ,LoN|c l9 LnI \nuf-!l\ngTnPgq`@ꢒO\"1 .P\0N\0P& H1 00#j&ˢ,n\")n#oCA.= %Ez ˪(VIQ*\"sM& 2qVmP\rۅqB~O P#PJP:cW[F!\"\r7 #d# 2E#̲X!ȉb\$<rC!qrH S\"GN\$jfO 2ha'rdAN zL\$ M%Nc#Hn()(b؍*ZE( ⥾7Ș%fs Җ\n@BP \$c|hHO\"Đo2²\r!DaMg6\" QO :3N\0e #RnB7\$C\"g\0Di4(p Z jtkXβ\r4N9tOLB CF#4K2Z4/&15RVx#%7e''(D? \\'!jG\"AD }gZ`i0\$ZYMVA\"X\r:zX3SB\"ADH,\\T,K\"pE01EE˫@\r LG!>kP> C_C,H\n[/`92~4g!Ϫ;F_L4C#LdC.LgD\r@=Ga6C?`";break;case"uk":$e="% )h-Z Ƃh.  h- mhĆ& h .(.<h#v_Ps94R\\h%p Nmc L4\0(`1 ƃQp9(;Au\r*u`Cd-|EX~\n\$g#)exZ9 G\"HESXj8R9ֽ|_b#rk:-HB!PńRDiyA ǖx]5KOcJvf[5{ftk,TIjh0'\rz~\$\ry*.4nNƃ4ê*0(r}48죎'plA\rDn<@#)یF^ƭs X ?V /傼SI%,@ҟ/\$⊱Ic@|7! Ir' L<>N5-4\r7 #h-C9AY7cX: sKC\") Hh,-Bht!\\ʖR8^t&P2\rH2O1EBJZn b0#O[̬=\0x0C83:x\rw^uf3( ;c ^+A٧aD,R@8*[dx!ܚ2()e!L¦V.AsgjȎ9Y٤z{OxΙtJڣK<j!d'& OrC\\cX)\$ݯQ\"3GAw%Ek)x[ZG#׵ni֧n1H¬!\0 KDm?p.  ڌg{kZM.qG=)9EtQ2k͑87%ѭhstAMB0\$&ԾIOa*FN}`d0xP4V&n0A\nyB\$Y(j!ˇ\"eR*~jdD*8dz\r; ء`r'J0/vPCcKT?ޤ:\$P4(mH]!!*(rjyỉF:bl rZR#G&]\$Û:! H#ĝƄK`tO\$Ti\"gI{3y֨, X.#\nX\n #H!@HS q#Z p RH0\\\"PLCjBtM9>&opMxs-Y:3FL{1ȤL;gꕟm̓6- Шo9_GQfԷ6)Wn&E1\"Iń\r}b#]91+H(1&(Ń+cLq2D5Se,`t\r5ȹEyQBul&U);aQ2@X)!p\"I^b'\rVx\rH{jbe>Ywd2s-ї:ġ\\%#- ٕVHhhj5H֎hF amZ7fK msޒh`k?F\n2>@kϓjPvTD PK;ml4 xֳ^Mڋ6V([KT4l(\"m\r\0@#1EN \0n*v\0PVM'\"vjS^ 0ɕ?8N&dWW ?+%c@OC8k^9S-!Prq\$W?~.GG(<oDځ~02k(.i%Vm'&:^a60*;IV-\$g'WWF,4 #uZhUPW[LP2XBu&QU`2?UiA_lt#z#I⥂nuœ \n<)GֶΗld<,x9 #mWfϸЄyGrvq(tHBkIQFMIze]x&֜[}xOlR+Q 0#@4n}R0TQ5#te]#eb_1u46\rƇq4L'R&Ƅt!S\rY('QJ4iCy8?:I pK^-o,QuH}pDgsk}PezT\"DC.@bE@WOH'=y5+\nCGwGZ/\rR_DZ\\٩o+Sp5\\hAԬƸV`s%jZ4\$xOKJȄ~H\":n \0Jd O\"bKg^oKKmbJ\rʗ4}p;m<3`ʸPX2%&)gȌ뤪6k6b4̭8@ndm/P\"B3 ^\0\0@\r'b|I6^ (%sb ͬ ִPOfꤊ&eoE0\$?M\$q/(mrO>%3\0\n\nq@(_̗-Č\rSm `(~n+hNPPP\n H|^DPLNLK*̬LM\$|-rq@^-RFLatrc. 1j M^wDbh!.A\n[/49/g/^PA=B'&<Q@} Om~=NS1l`QT5\\qG\"? H%>m\"k\$ 1&g)&.6Vs[\"Rw&Ok\$~l!G vOx5G\"R6\$@NG\$,oj%0%JM^^(\\*rd@m*:8lScJgM fIJ(!FFC m.-m+C1M:sf ґ64- ?\nM\\mSA506Z\"2+zn.'mfgw#ˈ w2!02Jmx2+C.p*0:/h&:o>;GvvV\r<L4y8m4+@t.@#@f g\n \r\r ,u>ӤK2\r\nY\0O HSF\n󂼑1G\0ZZta79F\\aGsO8c33F4HI{KTtJ450>2n0!@K#&oHQJihTy'A'P'Pt4(q%%.=CyJn2b2s17T5#ITT4'J2UOVt<LO10pW'~\$onVB\r+<W/U\nHDS ~W,Hk\n8qvY\r*E&-(3VNW1h:h%E(P^J*굸D6:OuqJUu U KL7uIc/5L_dhzdNlu[Fk56d0h_E\$O56f\\z9JI5aTRo h4lqj'Rfeb;efvg( G,0#&l\rgWAUigQQnvehnh`c4dvm vqLkvr6q5Mn+m5o6q6S/vNvrYCetovF +L#qv7uvL6ϰpwʇ\rBf)dV6Q06ARGzwyxvScw+ LVuk|oU|NFe)Pg5-%\$h0rf3vPk52qZ%+ńsi2?%'K!~wlx~ti SMUr44p9'y{8aQd*%@uj6bDk;;s˴a/Uh.5. \rn\nZNQuX#f!1X8vH8#Qv5,<x b6r@%m5;Ul^u䱔\nN)˳DS+D&Y\\ؖ{1M\"\rFjvR\$3i:h#m_F\$!Owv+YPlRzyaPW8%;oVr2G\n()@:!‚<q\\yUv_ |OPl,6A_M[p2Z\n:25 RV (O8\"b_Dg<'1317~Lu2Au1κ` zaXkvBo/sv2\"\rQh}>!RnD8FwڼCX`4@";break;case"uz":$e="% (a<\rƑk6LBNl6Lp(a51`u<'Ai6&%4MF`B\"u2Kc'80cAn8!\"n:far Io7X&9 5瑃Hq9L'3(}Aap-rLfqJ֘lX*MF \n%mRp(+7NY>|B:\rY.3\r4Asҙuzah@ti8[-:KZ aO7;|kul7*'֊Ӊ‹h@<6`50K48V7DBHCCXЎO*-C2C-7D(\r.͘t9֗Aj꾰A\0ܽ-b9\r?\n?81 #/[N\"\r<Z \"4*\$&6B|3O|8b\"1xQʸ4\0x4c(CC8a^\\PR \\،x709I|8Se|tdڴXFcA,9%OQsw*IAx]=3ލh!(2R'xЯ߸\\L<N#H%8XP à޼\"3[336Z#8 CE5J7;I2+p9Ah!z(>k~!* 7TN<4i\$gL6v23I(m+(<8N+#Z;mmF9>yAuya'څt9\r{=DBѡ \"Ϟ5 r2st7 z6ElyB*C,7&\\([}S 6RقNMk>:9s{+SRX|v612\"Cq]9\$u6AY1G u[Jbu4L!.y,Bˠ.0 fgpPtL1ID!8u%hh\$} P\n\"Z4 5D] &@435JaUjWfCP%]+|!p%a,|;f Ie\0\"Ddm)tLڥ&5K*>I,45\n, Pr4G\0U<'bi9P\n5V:%vW:+EVHsP~K:H#`Tڝ,*å-ɑ4\"]Ķ\$\" ro&IC# aNfxG7oFWЖɓsxN%:KDnx\0i.F\n )9ϲԢ1H)F R{! Ir\$DL#EvMq4X\$M2h\r.yVڸrTܒD眸,46Tq0!0q1@) !VFPOA0<f\r,\\K\$tJ\r>3D#^Mꆦo͡-^B\nR\0zT4VhI67H8ZY\\B\n<)I Lt3v'@:G>0i \nNf׉yqxXQrOSoԛ@)60z& Dپ0\"PF\$rIWRh\r31/x\"\"Y!8#>pHR؄'b014Ld&f_bL6g\r\$ĻS/Z}cxQ3\$(1 h0*z2\\aEUi7+5cWO3;WxkLP:VX50K+L&VDhi]MJ)U-[ZwSR|`;-]:\r(\$ p5+NLY[,c03XUra\"\"ՙ_}!4k0\0ZsE*\rT4Nia&fJɆ*n\$< Pg N#͟pFsHyI='ry\n ݕk!P*Ok[oJjE;+q9LI>h,N&'vdd9{=8霡WVeg^Y\ru#`l.&!+-loAH#jGXX}b\$u{`#Gc9bM\ri&M;M\"\$`r\0eS_B177=JkPkB9uVj.ӐsHxmi5G`\"6\nfR?= oQ3_u0gBם#~/%׿y_BJʼbn ,\nfZ_&fDG\$\nBx/m`B\rnmBa2-\0Dc 3OdbbdB l~B,i\"lgH KtE\$\$H> f+'\nie\n0/rzF \ngLy\rp 渆Fu0djK:60<0v>f/% О߀(0&,L ߩ &d=488qhZR\$J#1X))|\"9bBjz\rqT3n> 'B6b(%JA1+n\0ޭ7E-deۆ1M#\rN.᰽ ۱y[vlo c! ju p\rtG%P\"Rj\0#nfrqJʒ=2N+Nnv6 'p%c!2 c&gu*pvs& &RCrEmvҍ&7%n,m *RzRRD*A r2r%҇,,Rr]>n.Pr6r,N1\$.s2E \"Z\$Pև|@~b!;,Lc8P\r@'\n#3%b-N.\n&dEm)Ir@@g\rV\"„\$\npe 04HbJL&3eye;fSq# ^3l48\$\"PRznN7fr,Iu4ih@d+Re@ M~ l@i-cp\$~\"\r<8Dm`Rd1 C!.sE2 83cMgGf;ͱEF^>k.h\0\n9d-pe\"r't1DHcD4O\\\0FGG--4D4\$A&'>ߴԶ&12i\rTZ\\ @GV^BH'\$ΡĜ\r;@D";break;case"vi":$e="% (ha\rq]Ҍ]c\rTnAjhc,\" b5H؉ q Nd) R!/5!PäA&n&0cAn810Lthb*L QCH1b ,Q^cM3s2Nr=v8]&-.c\rF 1XE)C  nz477JqmU`-M@daH9[׵\rH!y i=Yd\$IXWxmmtWjYoqwD:<6\nc4`P7e' @@#hߢ,*X7@9Cx4|\"P!\0S\n: @6pP7̢ LBB~LrPūvSC@9p6t8DàD\0t92<!iJ Ns'\"h((Rf1B\"0]cC! ŵytV\0P,669x7B6~7&7c8L0cb9bj2 #1/4x]90j4/0z\r8a^H\\0ulO x7jZxDlL4L6أH7x\$\"\08CE39eپ骂:&YTd\r05 nB9\r\n\n: @U \")Q K!Sj]0H26Oc6,Pj[)17!\"t@[_MK=hReٗEz6<@T_bOTRZ/I-*P\"!2Jn(SQA[\nb\0C@E*b۶.-4y tRX<x8;۴N7IҢ:U(E# k)>RSm')y6têX[!~Y Ti;\n_\r`e` X@(,8`Cxf (7Rzjm-( 1jA ܋kNPer!3,H+htq \$G#A\0x`rE`T!r[\0ȫ [QoƹW:v\\ uZ}.y6ZLҒ-?(T,O\$ KvFB]pW 7, <Ø>6\\K*l+iIñ&.ċO,EOD_b@L\n}, <rC3<J^oE!eN`C[0%2pك7gHजZ;P9\$tqs ] t@P\$̯a.\$HFC(H8 ҁ`e hdUWtRR{O;q&6\0sZJppYEiPC3GˣV0?r\"5xH#D-bFDOWia4o\"ꘇF.\06p윅أOsMi%4(Mj\\et@byPZ \nII a@k\rV\nhNOap\r\\Ud!\n<)H]s\$\$KgE[J\$:!\" %63\"3`Έ\$QHJ'FTcB?iO`]ji 8 B2;2ڷ.ST(16';w\0LHH]4#UC/7(TfLa62lm7#W\n@x͂DTnj2x2F4\\ebEa 6pz]DT9,&dᠶjMb!D!>SRw:T \r4\0&!bPMϷGIl\$D Uo C]p856AC\$)Y68ȍ mpՊK[\r! p\$S!^^VQv\"ictn1sϢ*ͅ3 \$rn1)|ўj :SP\n@z<pxC> Ɇ.dYK8_\$\nP 0xZusqs>HK]s2@y8IڤKq!1lsM),GFOBfY:0 \\\\\$¥9BQ&.%E\"\r*=PA`>D\0ц&3|%:D>#73)Qw *iAʦn-<O{?&9}n,Z_#l.\0کC*2Xү\"B|x\"m\"\"(Fg&@\"=8?F6B.VҋBI܀D6'@~BBrc\"bA)NoJil)\n_1Y2>\$&p<><n^>C\" \$\rt\r.u.FFFU\r@P .x'c&Ǣ`p xzg` `%P\"z,RF DU\"rg/.v˄&;5B `ɱg>CkY0# ,L9T\$\\4ZlOi`ێ1e} Ъkˠol\$db3 FQ 1\r.dO\nдd1K41im n&9:zFG PQaF-\nh}e[Q \$RwS]\$C 022 Vm. m\n*kV\";/'!˒U')IXil~H&*gE2w+̄~r< +\"r'Ժg\$\0֑B%7l`/Ed @/J.0.jRk\\ys,p*93H3/{3P&A4VbwHEem- m\$b/\nzBJo\0}ϾA(3JcQ+2 \$CGcjf알~E](*x\"%*zS@\" 4:`ЀR)\0\nq̱e)JXaF;60RѰ5k<Isi;49ck 7NSR\"A pu'V=P7m&Ң:jhF1P\"jGQz# 3!R\rL\"4i ,4.<~4\"r7\"nmXn&C64FPLPR=*Q\r(-2Q۬*ln=/D)MH&@1[O4armԨx k>\0-pۓR^-mGR\0# z>̉.,)fF\rD`FkY E\$1l!.79\r(DM";break;case"zh":$e="% :\$\nr.r/dȻ[8 S8rNT*Ю\\9HHZ1!SVJ@%9Ql]m FU*qQ; Cf4)ΔT9 w:vO\"%CBrixM3s2bV}\n%[L`*9>S؜% yP⣎uYоHQ)\":VdjdK:tRd(t/0Vc5_hIG*\\?M[h9ͣQpCqH\nt+ծB_cS>R\$2{T9J1.[\$hVIdDcMAlN19@rM)zQ*řvE')2TC@9p6t8\r.h@cx5+EHa^CMb]j2ŮiF1|dJB6#p9%0JLW\\2,2 Y4\r C@:t\\ 3?hp^8.&xDωLsd)SCӡx)I\0ڑeM.յ0_!tg1<B9y(\\d4^_]4=̯]V1H@PJ2AE# \n:Y~tQE)DOYx@eqHr?kR^x7wB:H9i\"B&sr:G4<ܨ:3Fq|&ao%rHD1.TEBHT81U(]&rw}S3f\\Dz^c A|o=Mw)LA :: s]5T8x)]=|tMۆeI@6 AOX:Cp@09 #yip97 H =\r4n]!tC)<ӄ\\R'AiT 5N>%n\"XD5'Q_tfB ,,?%a='@1&D5+P]<TʡU*\\Ղ9+ur # !4a\"ʼn-\"Z:(pz4|NPOBo\rN &,bpO^C*TTZՌV\\+q],7[EI\n9BQ%@) +L^\nDC^+E b5%QhĎq6.%B\nj_͈S2M<)i-T@\$\0A6Dqca\n\$,\\<9pD\"sm8QPDMF!E,RI3,y +P pP!LP1^/QäQ \$cxƤD\0F\\ROٮFhGIlO2NJIZ¸Z:N\\PR06 dEtVauTa\0I\"\n3AfftqV+˜T`\nF,)=`NG!\"\nўG:D+?h-P3:Ⱥ\0~` &EpOIyѮ~\"K 9=P*[s E A/VŪ_L3A-ĨSBs|Q.Qw)4)'*c!=f\\ ]/ujrXD wQ:*(Wv \rD /e;?&r %KN%.pzŹ#%I\\?d \$sE֭`z 8sYV\"d]\n.A?0r\rᴫ3v,Qhr:.Vj<PvGE_BQ(Ђ|J!X^C\ryTT|0YzHrl cغ-\"ht1}>\r5tN9\0WچQ\n*@@?Q+k@\"e0@^7( wo)5H)N0=(DdXYw6\rA5wHܡ0X\rX=Yf~ PU[ye \\F1ϗĀp\np.+S\\ qC#pCc\\JU֢=aOaoM[x Y_CK؅q8[nɢWnaw\"8q>B9%7l#^S:H{%1.NUx:MB<Cvb\r3@c\0)ɟg^ Uo+_x\\k[6[\" 3Pr&ߛF,%Z+N/H0Ik,:IX\"6 E,:,%8(\0M*aB\0Zp<p?4Et('U;m<hN\0gP6sL F=zϤ]RO 6r^PFl-\ng-\npXx,6t Z'O G*>6&,P,r\ns,;\n% oL aa/hE@.z| \0b J.\0G~{+`2W @̭N QfOtMf_i/GQ~ erB\$&|8Dm84r\n:lVˆ(\$D1\n~!\\'*w\$ipB\roNjg\rD\\t 8\0C^Xi+\0\np;(OJ\"!e!R>.F^l!(nc*!^42,4\r^FJ-6zezG1(#c訊hi#,\\N4t2쒀zo,(R\018,f(nqҽ+ЭrAt+\$\"Cn6e. \r!Ԕ,#G*C-\$\$*>{+\nI<sU54Ʋ>LL73&bHZB|bv";break;case"zh-tw":$e="% :\$\ns.eUȸE9PK72(Ph)ʅ@ :i aJe R)ܫ{ Nd(vQDCѮUjaʜTOABPb2ar\nr/WtЀBT)*yX^\\r|I7FS 99STB\$rNuMТUP)&9G'ܪ{;ds'.̖L9ho^^+ieD:=.RFR%F{A,\\{Xs&֚u\0rzM6U!TDLJEtl6N_'zV~NZRZRGATO\$DЭ8UJt|R8Dp.R\$LGI,Ii.JJő[e|kzVseZ*x]4*2TC@9p6t8\r.(@cx5<\\gA2y 3IHA2]+X!rB\n# 4(tDVG1(DU7sQ=3I%ZF@4/c0z\r8a^(\\0T,L8^2xྎc2tJ(AALEIFPx)GI\\ęW\0RW!u'39rW,oLQ]1H@PJ2: @ea ^ʳESpiRdܲ63M3x^H^{d1H  N&k9]g1GG9{q%\$jCA\0Q7%z\n(:I*[%2=\$<B>g1bbI',J8]c[~_ܩw}nіI]%%rT{<])];G9]#9M\\XP>Q,CC@6AZk:Cp@0C9 #u_ cx3\r#?_>0\0Jr0gtDk)FGXa*%q DKG4C',qa\$\n0Cպ)%(OQV ҲBRjT9B (*\"vDV]~VdŘr_ØFX/.ac%D(sq Dr)˒H|!E)J!=' I=J2xXdDVznL7H)kZQb%` 4 \\\$sQ\n(B-!Ld,=+VE#[3á\"9mI0+MAX49a.BHXBaP(Rx7'D1vB\0 ~zBࡒu]Xq|PAE'D#:#QU'+M;\",s(\\-1z9&b8tyzfdrg?騕00 8{.d^bBj((t b\$!\$ua\\-`𸆄x \0L ԟ( JAa<'>O=PrQ@R9cK\\\"G4ݐCN\"xS\n\nEHLIidΝ8!\"9`*@-SQUj` Y ĄPzmpJiTrzmÐ_B-L\$P*P\0D0\"VJC4s2<#*\"ix7f.?bڛsO%d]qS>=Lj,V! X| 2iydRsJq `w]Lc@B{KAM]#%jQ\rB'Pb\rEL`6\0D͂c;JD*)D}wt`L\r 2gR2VsKIʀSj(\"g0b%`']phR:=xm!Q4T\\عSk\n9А! J @.qX`~e7ǼZ\r԰9^s{+썔fcCJ\r0hxZ; OaiAa s!q%ٕ>Al#~NxKV|~.9E\"|_+YDbOp-S\r(Dkxp![;\\Tmw۞PL1#_8ĀW*w}Gh8 `QφC|l؀F \\B\r}@N\0t4db\"G\"P_YGDF!:8O{v%h}ъ1#eߑa|}W\0;I|GR^\"9)t 0\04QfϊDx|9Sn, ـG\0ږn\rىE\0002/Cj,V/dG'OG'4aLIPKpuK0V:ucWN..VvrwZ#ΐN-@& eݐl 2^wC܁P;Ԛ0>viڬFVVi\rkI!p\r=\"E\\ɑ \nf\rh#n9@Go8` ;AqPؑUpL#VPo6 K qL\"zlxQhS^(hbw& <#6,'8G; q/\r7q\\1gS m Vc`}@\0\rJ0R! !`!ց-\"`\"!G#%\r0Pd\0\$ Af^ߊр2fo'2jJaN''\n\\Fxg͠ i +2H^aFb*!k+*Xj.Rh\r/C?nJ%gpx8B,&\"\nZOJx0)!^aRG|Kx^z.Bi#b2Ph560B.C7\"cDtOQVz,y9:za+,/di:9T`J\raƞj\"<O ]0 p0a*l \r 81!D /99:*X#l,D xA,\$ &eS2 TDNϪ";break;}$li=array();foreach(explode("\n",lzw_decompress($e))as$X)$li[]=(strpos($X,"\t")?explode("\t",$X):$X);return$li;}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($O,$V,$G);abstract
function
quote($yh);abstract
function
select_db($Eb);abstract
function
query($I,$ui=false);function
multi_query($I){return$this->multi=$this->query($I);}function
store_result(){return$this->multi;}function
next_result(){return
false;}}if(extension_loaded('pdo')){abstract
class
PdoDb
extends
SqlDb{protected$pdo;function
dsn($bc,$V,$G,array$vf=array()){$vf[\PDO::ATTR_ERRMODE]=\PDO::ERRMODE_SILENT;$vf[\PDO::ATTR_STATEMENT_CLASS]=array('Adminer\PdoResult');try{$this->pdo=new
\PDO($bc,$V,$G,$vf);}catch(\Exception$vc){return$vc->getMessage();}$this->server_info=@$this->pdo->getAttribute(\PDO::ATTR_SERVER_VERSION);return'';}function
quote($yh){return$this->pdo->quote($yh);}function
query($I,$ui=false){$J=$this->pdo->query($I);$this->error="";if(!$J){list(,$this->errno,$this->error)=$this->pdo->errorInfo();if(!$this->error)$this->error=lang(23);return
false;}$this->store_result($J);return$J;}function
store_result($J=null){if(!$J){$J=$this->multi;if(!$J)return
false;}if($J->columnCount()){$J->num_rows=$J->rowCount();return$J;}$this->affected_rows=$J->rowCount();return
true;}function
next_result(){$J=$this->multi;if(!is_object($J))return
false;$J->_offset=0;return@$J->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($Xe){$K=$this->fetch($Xe);return($K?array_map(array($this,'unresource'),$K):$K);}private
function
unresource($X){return(is_resource($X)?stream_get_contents($X):$X);}function
fetch_field(){$L=(object)$this->getColumnMeta($this->_offset++);$U=$L->pdo_type;$L->type=($U==\PDO::PARAM_INT?0:15);$L->charsetnr=($U==\PDO::PARAM_LOB||(isset($L->flags)&&in_array("blob",(array)$L->flags))?63:0);return$L;}function
seek($lf){for($s=0;$s<$lf;$s++)$this->fetch();}}}function
add_driver($t,$D){SqlDriver::$drivers[$t]=$D;}function
get_driver($t){return
SqlDriver::$drivers[$t];}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($O,$V,$G){$f=new
Db;return($f->attach($O,$V,$G)?:$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$l){}function
unconvertFunction(array$l){}function
select($R,array$N,array$Z,array$r,array$xf=array(),$z=1,$F=0,$og=false){$be=(count($r)<count($N));$I=adminer()->selectQueryBuild($N,$Z,$r,$xf,$z,$F);if(!$I)$I="SELECT".limit(($_GET["page"]!="last"&&$z&&$r&&$be&&JUSH=="sql"?"SQL_CALC_FOUND_ROWS ":"").implode(", ",$N)."\nFROM ".table($R),($Z?"\nWHERE ".implode(" AND ",$Z):"").($r&&$be?"\nGROUP BY ".implode(", ",$r):"").($xf?"\nORDER BY ".implode(", ",$xf):""),$z,($F?$z*$F:0),"\n");$wh=microtime(true);$K=$this->conn->query($I);if($og)echo
adminer()->selectQuery($I,$wh,!$K);return$K;}function
delete($R,$ug,$z=0){$I="FROM ".table($R);return
queries("DELETE".($z?limit1($R,$I,$ug):" $I$ug"));}function
update($R,array$P,$ug,$z=0,$bh="\n"){$Oi=array();foreach($P
as$y=>$X)$Oi[]="$y = $X";$I=table($R)." SET$bh".implode(",$bh",$Oi);return
queries("UPDATE".($z?limit1($R,$I,$ug,$bh):" $I$ug"));}function
insert($R,array$P){return
queries("INSERT INTO ".table($R).($P?" (".implode(", ",array_keys($P)).")\nVALUES (".implode(", ",$P).")":" DEFAULT VALUES").$this->insertReturning($R));}function
insertReturning($R){return"";}function
insertUpdate($R,array$M,array$ng){return
false;}function
begin(){return
queries("BEGIN");}function
commit(){return
queries("COMMIT");}function
rollback(){return
queries("ROLLBACK");}function
slowQuery($I,$Xh){}function
convertSearch($u,array$X,array$l){return$u;}function
value($X,array$l){return(method_exists($this->conn,'value')?$this->conn->value($X,$l):$X);}function
quoteBinary($Pg){return
q($Pg);}function
warnings(){}function
tableHelp($D,$ee=false){}function
inheritsFrom($R){return
array();}function
inheritedTables($R){return
array();}function
partitionsInfo($R){return
array();}function
hasCStyleEscapes(){return
false;}function
engines(){return
array();}function
supportsIndex(array$S){return!is_view($S);}function
indexAlgorithms(array$Fh){return
array();}function
checkConstraints($R){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 = t.TABLE_NAME":"")."
WHERE c.CONSTRAINT_SCHEMA = ".q($_GET["ns"]!=""?$_GET["ns"]:DB)."
AND t.TABLE_NAME = ".q($R).(JUSH=="pgsql"?"
AND CHECK_CLAUSE NOT LIKE '% IS NOT NULL'":""),$this->conn);}function
allFields(){$K=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$L){$L["null"]=($L["nullable"]=="YES");$K[$L["tab"]][]=$L;}}return$K;}}add_driver("pgsql","PostgreSQL");define('Adminer\DRIVER',"pgsql");if(extension_loaded("pgsql")&&$_GET["ext"]!="pdo"){class
PgsqlDb
extends
SqlDb{var$extension="PgSQL";var$timeout=0;private$link,$string,$database=true;function
_error($rc,$k){if(ini_bool("html_errors"))$k=html_entity_decode(strip_tags($k));$k=preg_replace('~^[^:]*: ~','',$k);$this->error=$k;}function
attach($O,$V,$G){$j=adminer()->database();set_error_handler(array($this,'_error'));list($wd,$eg)=host_port(addcslashes($O,"'\\"));$this->string="host='$wd'".($eg?" port='$eg'":"")." user='".addcslashes($V,"'\\")."' password='".addcslashes($G,"'\\")."'";$vh=adminer()->connectSsl();if(isset($vh["mode"]))$this->string
.=" sslmode='".$vh["mode"]."'";$this->link=@pg_connect("$this->string dbname='".($j!=""?addcslashes($j,"'\\"):"postgres")."'",PGSQL_CONNECT_FORCE_NEW);if(!$this->link&&$j!=""){$this->database=false;$this->link=@pg_connect("$this->string dbname='postgres'",PGSQL_CONNECT_FORCE_NEW);}restore_error_handler();if($this->link)pg_set_client_encoding($this->link,"UTF8");return($this->link?'':$this->error);}function
quote($yh){return(function_exists('pg_escape_literal')?pg_escape_literal($this->link,$yh):"'".pg_escape_string($this->link,$yh)."'");}function
value($X,array$l){return($l["type"]=="bytea"&&$X!==null?pg_unescape_bytea($X):$X);}function
select_db($Eb){if($Eb==adminer()->database())return$this->database;$K=@pg_connect("$this->string dbname='".addcslashes($Eb,"'\\")."'",PGSQL_CONNECT_FORCE_NEW);if($K)$this->link=$K;return$K;}function
close(){$this->link=@pg_connect("$this->string dbname='postgres'");}function
query($I,$ui=false){$J=@pg_query($this->link,$I);$this->error="";if(!$J){$this->error=pg_last_error($this->link);$K=false;}elseif(!pg_num_fields($J)){$this->affected_rows=pg_affected_rows($J);$K=true;}else$K=new
Result($J);if($this->timeout){$this->timeout=0;$this->query("RESET statement_timeout");}return$K;}function
warnings(){return
h(pg_last_notice($this->link));}function
copyFrom($R,array$M){$this->error='';set_error_handler(function($rc,$k){$this->error=(ini_bool('html_errors')?html_entity_decode($k):$k);return
true;});$K=pg_copy_from($this->link,$R,$M);restore_error_handler();return$K;}}class
Result{var$num_rows;private$result,$offset=0;function
__construct($J){$this->result=$J;$this->num_rows=pg_num_rows($J);}function
fetch_assoc(){return
pg_fetch_assoc($this->result);}function
fetch_row(){return
pg_fetch_row($this->result);}function
fetch_field(){$c=$this->offset++;$K=new
\stdClass;$K->orgtable=pg_field_table($this->result,$c);$K->name=pg_field_name($this->result,$c);$U=pg_field_type($this->result,$c);$K->type=(preg_match(number_type(),$U)?0:15);$K->charsetnr=($U=="bytea"?63:0);return$K;}function
__destruct(){pg_free_result($this->result);}}}elseif(extension_loaded("pdo_pgsql")){class
PgsqlDb
extends
PdoDb{var$extension="PDO_PgSQL";var$timeout=0;function
attach($O,$V,$G){$j=adminer()->database();list($wd,$eg)=host_port(addcslashes($O,"'\\"));$bc="pgsql:host='$wd'".($eg?" port='$eg'":"")." client_encoding=utf8 dbname='".($j!=""?addcslashes($j,"'\\"):"postgres")."'";$vh=adminer()->connectSsl();if(isset($vh["mode"]))$bc
.=" sslmode='".$vh["mode"]."'";return$this->dsn($bc,$V,$G);}function
select_db($Eb){return(adminer()->database()==$Eb);}function
query($I,$ui=false){$K=parent::query($I,$ui);if($this->timeout){$this->timeout=0;parent::query("RESET statement_timeout");}return$K;}function
warnings(){}function
copyFrom($R,array$M){$K=$this->pdo->pgsqlCopyFromArray($R,$M);$this->error=idx($this->pdo->errorInfo(),2)?:'';return$K;}function
close(){}}}if(class_exists('Adminer\PgsqlDb')){class
Db
extends
PgsqlDb{function
multi_query($I){if(preg_match('~\bCOPY\s+(.+?)\s+FROM\s+stdin;\n?(.*)\n\\\\\.$~is',str_replace("\r\n","\n",$I),$B)){$M=explode("\n",$B[2]);$this->affected_rows=count($M);return$this->copyFrom($B[1],$M);}return
parent::multi_query($I);}}}class
Driver
extends
SqlDriver{static$extensions=array("PgSQL","PDO_PgSQL");static$jush="pgsql";var$operators=array("=","<",">","<=",">=","!=","~","!~","LIKE","LIKE %%","ILIKE","ILIKE %%","IN","IS NULL","NOT LIKE","NOT ILIKE","NOT IN","IS NOT NULL","SQL");var$functions=array("char_length","lower","round","to_hex","to_timestamp","upper");var$grouping=array("avg","count","count distinct","max","min","sum");var$nsOid="(SELECT oid FROM pg_namespace WHERE nspname = current_schema())";static
function
connect($O,$V,$G){$f=parent::connect($O,$V,$G);if(is_string($f))return$f;$Ri=get_val("SELECT version()",0,$f);$f->flavor=(preg_match('~CockroachDB~',$Ri)?'cockroach':'');$f->server_info=preg_replace('~^\D*([\d.]+[-\w]*).*~','\1',$Ri);if(min_version(9,0,$f))$f->query("SET application_name = 'Adminer'");if($f->flavor=='cockroach')add_driver(DRIVER,"CockroachDB");return$f;}function
__construct(Db$f){parent::__construct($f);$this->types=array(lang(24)=>array("smallint"=>5,"integer"=>10,"bigint"=>19,"boolean"=>1,"numeric"=>0,"real"=>7,"double precision"=>16,"money"=>20),lang(25)=>array("date"=>13,"time"=>17,"timestamp"=>20,"timestamptz"=>21,"interval"=>0),lang(26)=>array("character"=>0,"character varying"=>0,"text"=>0,"tsquery"=>0,"tsvector"=>0,"uuid"=>0,"xml"=>0),lang(27)=>array("bit"=>0,"bit varying"=>0,"bytea"=>0),lang(28)=>array("cidr"=>43,"inet"=>43,"macaddr"=>17,"macaddr8"=>23,"txid_snapshot"=>0),lang(29)=>array("box"=>0,"circle"=>0,"line"=>0,"lseg"=>0,"path"=>0,"point"=>0,"polygon"=>0),);if(min_version(9.2,0,$f)){$this->types[lang(26)]["json"]=4294967295;if(min_version(9.4,0,$f))$this->types[lang(26)]["jsonb"]=4294967295;}$this->insertFunctions=array("char"=>"md5","date|time"=>"now",);$this->editFunctions=array(number_type()=>"+/-","date|time"=>"+ interval/- interval","char|text"=>"||",);if(min_version(12,0,$f))$this->generated=array("STORED");$this->partitionBy=array("RANGE","LIST");if(!$f->flavor)$this->partitionBy[]="HASH";}function
enumLength(array$l){$nc=$this->types[lang(6)][$l["type"]];return($nc?type_values($nc):"");}function
setUserTypes($ti){$this->types[lang(6)]=array_flip($ti);}function
insertReturning($R){$ya=array_filter(fields($R),function($l){return$l['auto_increment'];});return(count($ya)==1?" RETURNING ".idf_escape(key($ya)):"");}function
insertUpdate($R,array$M,array$ng){foreach($M
as$P){$Ai=array();$Z=array();foreach($P
as$y=>$X){$Ai[]="$y = $X";if(isset($ng[idf_unescape($y)]))$Z[]="$y = $X";}if(!(($Z&&queries("UPDATE ".table($R)." SET ".implode(", ",$Ai)." WHERE ".implode(" AND ",$Z))&&$this->conn->affected_rows)||queries("INSERT INTO ".table($R)." (".implode(", ",array_keys($P)).") VALUES (".implode(", ",$P).")")))return
false;}return
true;}function
slowQuery($I,$Xh){$this->conn->query("SET statement_timeout = ".(1000*$Xh));$this->conn->timeout=1000*$Xh;return$I;}function
convertSearch($u,array$X,array$l){$Uh="char|text";if(strpos($X["op"],"LIKE")===false)$Uh
.="|date|time(stamp)?|boolean|uuid|inet|cidr|macaddr|".number_type();return(preg_match("~$Uh~",$l["type"])?$u:"CAST($u AS text)");}function
quoteBinary($Pg){return"'\\x".bin2hex($Pg)."'";}function
warnings(){return$this->conn->warnings();}function
tableHelp($D,$ee=false){$ze=array("information_schema"=>"infoschema","pg_catalog"=>($ee?"view":"catalog"),);$_=$ze[$_GET["ns"]];if($_)return"$_-".str_replace("_","-",$D).".html";}function
inheritsFrom($R){return
get_rows("SELECT relname AS table, nspname AS ns FROM pg_class JOIN pg_inherits ON inhparent = oid JOIN pg_namespace ON relnamespace = pg_namespace.oid WHERE inhrelid = ".$this->tableOid($R)." ORDER BY 2, 1");}function
inheritedTables($R){return
get_rows("SELECT relname AS table, nspname AS ns FROM pg_inherits JOIN pg_class ON inhrelid = oid JOIN pg_namespace ON relnamespace = pg_namespace.oid WHERE inhparent = ".$this->tableOid($R)." ORDER BY 2, 1");}function
partitionsInfo($R){$L=(min_version(10)?$this->conn->query("SELECT * FROM pg_partitioned_table WHERE partrelid = ".$this->tableOid($R))->fetch_assoc():null);if($L){$b=get_vals("SELECT attname FROM pg_attribute WHERE attrelid = $L[partrelid] AND attnum IN (".str_replace(" ",", ",$L["partattrs"]).")");$La=array('h'=>'HASH','l'=>'LIST','r'=>'RANGE');return
array("partition_by"=>$La[$L["partstrat"]],"partition"=>implode(", ",array_map('Adminer\idf_escape',$b)),);}return
array();}function
tableOid($R){return"(SELECT oid FROM pg_class WHERE relnamespace = $this->nsOid AND relname = ".q($R)." AND relkind IN ('r', 'm', 'v', 'f', 'p'))";}function
indexAlgorithms(array$Fh){static$K=array();if(!$K)$K=get_vals("SELECT amname FROM pg_am".(min_version(9.6)?" WHERE amtype = 'i'":"")." ORDER BY amname = '".($this->conn->flavor=='cockroach'?"prefix":"btree")."' DESC, amname");return$K;}function
supportsIndex(array$S){return$S["Engine"]!="view";}function
hasCStyleEscapes(){static$Ma;if($Ma===null)$Ma=(get_val("SHOW standard_conforming_strings",0,$this->conn)=="off");return$Ma;}}function
idf_escape($u){return'"'.str_replace('"','""',$u).'"';}function
table($u){return
idf_escape($u);}function
get_databases($Tc){return
get_vals("SELECT datname FROM pg_database
WHERE datallowconn = TRUE AND has_database_privilege(datname, 'CONNECT')
ORDER BY datname");}function
limit($I,$Z,$z,$lf=0,$bh=" "){return" $I$Z".($z?$bh."LIMIT $z".($lf?" OFFSET $lf":""):"");}function
limit1($R,$I,$Z,$bh="\n"){return(preg_match('~^INTO~',$I)?limit($I,$Z,1,0,$bh):" $I".(is_view(table_status1($R))?$Z:$bh."WHERE ctid = (SELECT ctid FROM ".table($R).$Z.$bh."LIMIT 1)"));}function
db_collation($j,$eb){return
get_val("SELECT datcollate FROM pg_database WHERE datname = ".q($j));}function
logged_user(){return
get_val("SELECT user");}function
tables_list(){$I="SELECT table_name, table_type FROM information_schema.tables WHERE table_schema = current_schema()";if(support("materializedview"))$I
.="
UNION ALL
SELECT matviewname, 'MATERIALIZED VIEW'
FROM pg_matviews
WHERE schemaname = current_schema()";$I
.="
ORDER BY 1";return
get_key_vals($I);}function
count_tables($i){$K=array();foreach($i
as$j){if(connection()->select_db($j))$K[$j]=count(tables_list());}return$K;}function
table_status($D=""){static$pd;if($pd===null)$pd=get_val("SELECT 'pg_table_size'::regproc");$K=array();foreach(get_rows("SELECT
relname AS \"Name\",
CASE relkind WHEN 'v' THEN 'view' WHEN 'm' THEN 'materialized view' ELSE 'table' END AS \"Engine\"".($pd?",
pg_table_size(c.oid) AS \"Data_length\",
pg_indexes_size(c.oid) AS \"Index_length\"":"").",
obj_description(c.oid, 'pg_class') AS \"Comment\",
".(min_version(12)?"''":"CASE WHEN relhasoids THEN 'oid' ELSE '' END")." AS \"Oid\",
reltuples AS \"Rows\",
".(min_version(10)?"relispartition::int AS partition,":"")."
current_schema() AS nspname
FROM pg_class c
WHERE relkind IN ('r', 'm', 'v', 'f', 'p')
AND relnamespace = ".driver()->nsOid."
".($D!=""?"AND relname = ".q($D):"ORDER BY relname"))as$L)$K[$L["Name"]]=$L;return$K;}function
is_view($S){return
in_array($S["Engine"],array("view","materialized view"));}function
fk_support($S){return
true;}function
fields($R){$K=array();$pa=array('timestamp without time zone'=>'timestamp','timestamp with time zone'=>'timestamptz',);foreach(get_rows("SELECT
a.attname AS field,
format_type(a.atttypid, a.atttypmod) AS full_type,
pg_get_expr(d.adbin, d.adrelid) AS default,
a.attnotnull::int,
i.indrelid AS primary,
col_description(a.attrelid, a.attnum) AS comment".(min_version(10)?",
a.attidentity".(min_version(12)?",
a.attgenerated":""):"")."
FROM pg_attribute a
LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum
LEFT JOIN pg_index i ON a.attrelid = i.indrelid AND a.attnum = ANY(i.indkey) AND i.indisprimary
WHERE a.attrelid = ".driver()->tableOid($R)."
AND NOT a.attisdropped
AND a.attnum > 0
ORDER BY a.attnum")as$L){preg_match('~([^([]+)(\((.*)\))?([a-z ]+)?((\[[0-9]*])*)$~',$L["full_type"],$B);list(,$U,$ve,$L["length"],$ia,$ua)=$B;$L["length"].=$ua;$Sa=$U.$ia;if(isset($pa[$Sa])){$L["type"]=$pa[$Sa];$L["full_type"]=$L["type"].$ve.$ua;}else{$L["type"]=$U;$L["full_type"]=$L["type"].$ve.$ia.$ua;}if(in_array($L['attidentity'],array('a','d')))$L['default']='GENERATED '.($L['attidentity']=='d'?'BY DEFAULT':'ALWAYS').' AS IDENTITY';$L["generated"]=($L["attgenerated"]=="s"?"STORED":"");$L["null"]=!$L["attnotnull"];$L["auto_increment"]=$L['attidentity']||preg_match('~^nextval\(~i',$L["default"])||preg_match('~^unique_rowid\(~',$L["default"]);$L["privileges"]=array("insert"=>1,"select"=>1,"update"=>1,"where"=>1,"order"=>1);if(!$L['generated']&&preg_match('~(.+)::[^,)]+(.*)~',$L["default"],$B))$L["default"]=($B[1]=="NULL"?null:idf_unescape($B[1]).$B[2]);$K[$L["field"]]=$L;}return$K;}function
indexes($R,$g=null){$g=connection($g);$K=array();$Hh=driver()->tableOid($R);$d=get_key_vals("SELECT attnum, attname FROM pg_attribute WHERE attrelid = $Hh AND attnum > 0",$g);foreach(get_rows("SELECT relname, indisunique::int, indisprimary::int, indkey, indoption, amname, pg_get_expr(indpred, indrelid, true) AS partial, pg_get_expr(indexprs, indrelid) AS indexpr
FROM pg_index
JOIN pg_class ON indexrelid = oid
JOIN pg_am ON pg_am.oid = pg_class.relam
WHERE indrelid = $Hh
ORDER BY indisprimary DESC, indisunique DESC",$g)as$L){$Fg=$L["relname"];$K[$Fg]["type"]=($L["indisprimary"]?"PRIMARY":($L["indisunique"]?"UNIQUE":"INDEX"));$K[$Fg]["columns"]=array();$K[$Fg]["descs"]=array();$K[$Fg]["algorithm"]=$L["amname"];$K[$Fg]["partial"]=$L["partial"];$Md=preg_split('~(?<=\)), (?=\()~',$L["indexpr"]);foreach(explode(" ",$L["indkey"])as$Nd)$K[$Fg]["columns"][]=($Nd?$d[$Nd]:array_shift($Md));foreach(explode(" ",$L["indoption"])as$Od)$K[$Fg]["descs"][]=(intval($Od)&1?'1':null);$K[$Fg]["lengths"]=array();}return$K;}function
foreign_keys($R){$K=array();foreach(get_rows("SELECT conname, condeferrable::int AS deferrable, condeferred::int AS deferred, pg_get_constraintdef(oid) AS definition
FROM pg_constraint
WHERE conrelid = ".driver()->tableOid($R)."
AND contype = 'f'::char
ORDER BY conkey, conname")as$L){$L['deferrable']=($L['deferrable']?'':'NOT ').'DEFERRABLE'.($L['deferred']?' INITIALLY DEFERRED':'');if(preg_match('~FOREIGN KEY\s*\((.+)\)\s*REFERENCES (.+)\((.+)\)(.*)$~iA',$L['definition'],$B)){$L['source']=array_map('Adminer\idf_unescape',array_map('trim',explode(',',$B[1])));if(preg_match('~^(("([^"]|"")+"|[^"]+)\.)?"?("([^"]|"")+"|[^"]+)$~',$B[2],$Ce)){$L['ns']=idf_unescape($Ce[2]);$L['table']=idf_unescape($Ce[4]);}$L['target']=array_map('Adminer\idf_unescape',array_map('trim',explode(',',$B[3])));$L['on_delete']=(preg_match("~ON DELETE (".driver()->onActions.")~",$B[4],$Ce)?$Ce[1]:'NO ACTION');$L['on_update']=(preg_match("~ON UPDATE (".driver()->onActions.")~",$B[4],$Ce)?$Ce[1]:'NO ACTION');$K[$L['conname']]=$L;}}return$K;}function
view($D){return
array("select"=>trim(get_val("SELECT pg_get_viewdef(".driver()->tableOid($D).")")));}function
collations(){return
array();}function
information_schema($j){return
get_schema()=="information_schema";}function
error(){$K=h(connection()->error);if(preg_match('~^(.*\n)?([^\n]*)\n( *)\^(\n.*)?$~s',$K,$B))$K=$B[1].preg_replace('~((?:[^&]|&[^;]*;){'.strlen($B[3]).'})(.*)~','\1<b>\2</b>',$B[2]).$B[4];return
nl_br($K);}function
create_database($j,$db){return
queries("CREATE DATABASE ".idf_escape($j).($db?" ENCODING ".idf_escape($db):""));}function
drop_databases($i){connection()->close();return
apply_queries("DROP DATABASE",$i,'Adminer\idf_escape');}function
rename_database($D,$db){connection()->close();return
queries("ALTER DATABASE ".idf_escape(DB)." RENAME TO ".idf_escape($D));}function
auto_increment(){return"";}function
alter_table($R,$D,$m,$Vc,$ib,$lc,$db,$ya,$Uf){$ra=array();$tg=array();if($R!=""&&$R!=$D)$tg[]="ALTER TABLE ".table($R)." RENAME TO ".table($D);$ch="";foreach($m
as$l){$c=idf_escape($l[0]);$X=$l[1];if(!$X)$ra[]="DROP $c";else{$Ni=$X[5];unset($X[5]);if($l[0]==""){if(isset($X[6]))$X[1]=($X[1]==" bigint"?" big":($X[1]==" smallint"?" small":" "))."serial";$ra[]=($R!=""?"ADD ":" ").implode($X);if(isset($X[6]))$ra[]=($R!=""?"ADD":" ")." PRIMARY KEY ($X[0])";}else{if($c!=$X[0])$tg[]="ALTER TABLE ".table($D)." RENAME $c TO $X[0]";$ra[]="ALTER $c TYPE$X[1]";$dh=$R."_".idf_unescape($X[0])."_seq";$ra[]="ALTER $c ".($X[3]?"SET".preg_replace('~GENERATED ALWAYS(.*) STORED~','EXPRESSION\1',$X[3]):(isset($X[6])?"SET DEFAULT nextval(".q($dh).")":"DROP DEFAULT"));if(isset($X[6]))$ch="CREATE SEQUENCE IF NOT EXISTS ".idf_escape($dh)." OWNED BY ".idf_escape($R).".$X[0]";$ra[]="ALTER $c ".($X[2]==" NULL"?"DROP NOT":"SET").$X[2];}if($l[0]!=""||$Ni!="")$tg[]="COMMENT ON COLUMN ".table($D).".$X[0] IS ".($Ni!=""?substr($Ni,9):"''");}}$ra=array_merge($ra,$Vc);if($R==""){$Q="";if($Uf){$Ya=(connection()->flavor=='cockroach');$Q=" PARTITION BY $Uf[partition_by]($Uf[partition])";if($Uf["partition_by"]=='HASH'){$Vf=+$Uf["partitions"];for($s=0;$s<$Vf;$s++)$tg[]="CREATE TABLE ".idf_escape($D."_$s")." PARTITION OF ".idf_escape($D)." FOR VALUES WITH (MODULUS $Vf, REMAINDER $s)";}else{$mg="MINVALUE";foreach($Uf["partition_names"]as$s=>$X){$Y=$Uf["partition_values"][$s];$Qf=" VALUES ".($Uf["partition_by"]=='LIST'?"IN ($Y)":"FROM ($mg) TO ($Y)");if($Ya)$Q
.=($s?",":" (")."\n PARTITION ".(preg_match('~^DEFAULT$~i',$X)?$X:idf_escape($X))."$Qf";else$tg[]="CREATE TABLE ".idf_escape($D."_$X")." PARTITION OF ".idf_escape($D)." FOR$Qf";$mg=$Y;}$Q
.=($Ya?"\n)":"");}}array_unshift($tg,"CREATE TABLE ".table($D)." (\n".implode(",\n",$ra)."\n)$Q");}elseif($ra)array_unshift($tg,"ALTER TABLE ".table($R)."\n".implode(",\n",$ra));if($ch)array_unshift($tg,$ch);if($ib!==null)$tg[]="COMMENT ON TABLE ".table($D)." IS ".q($ib);foreach($tg
as$I){if(!queries($I))return
false;}return
true;}function
alter_indexes($R,$ra){$h=array();$Yb=array();$tg=array();foreach($ra
as$X){if($X[0]!="INDEX")$h[]=($X[2]=="DROP"?"\nDROP CONSTRAINT ".idf_escape($X[1]):"\nADD".($X[1]!=""?" CONSTRAINT ".idf_escape($X[1]):"")." $X[0] ".($X[0]=="PRIMARY"?"KEY ":"")."(".implode(", ",$X[2]).")");elseif($X[2]=="DROP")$Yb[]=idf_escape($X[1]);else$tg[]="CREATE INDEX ".idf_escape($X[1]!=""?$X[1]:uniqid($R."_"))." ON ".table($R).($X[3]?" USING $X[3]":"")." (".implode(", ",$X[2]).")".($X[4]?" WHERE $X[4]":"");}if($h)array_unshift($tg,"ALTER TABLE ".table($R).implode(",",$h));if($Yb)array_unshift($tg,"DROP INDEX ".implode(", ",$Yb));foreach($tg
as$I){if(!queries($I))return
false;}return
true;}function
truncate_tables($T){return
queries("TRUNCATE ".implode(", ",array_map('Adminer\table',$T)));}function
drop_views($Ti){return
drop_tables($Ti);}function
drop_tables($T){foreach($T
as$R){$Q=table_status1($R);if(!queries("DROP ".strtoupper($Q["Engine"])." ".table($R)))return
false;}return
true;}function
move_tables($T,$Ti,$Ph){foreach(array_merge($T,$Ti)as$R){$Q=table_status1($R);if(!queries("ALTER ".strtoupper($Q["Engine"])." ".table($R)." SET SCHEMA ".idf_escape($Ph)))return
false;}return
true;}function
trigger($D,$R){if($D=="")return
array("Statement"=>"EXECUTE PROCEDURE ()");$d=array();$Z="WHERE trigger_schema = current_schema() AND event_object_table = ".q($R)." AND trigger_name = ".q($D);foreach(get_rows("SELECT * FROM information_schema.triggered_update_columns $Z")as$L)$d[]=$L["event_object_column"];$K=array();foreach(get_rows('SELECT trigger_name AS "Trigger", action_timing AS "Timing", event_manipulation AS "Event", \'FOR EACH \' || action_orientation AS "Type", action_statement AS "Statement"
FROM information_schema.triggers'."
$Z
ORDER BY event_manipulation DESC")as$L){if($d&&$L["Event"]=="UPDATE")$L["Event"].=" OF";$L["Of"]=implode(", ",$d);if($K)$L["Event"].=" OR $K[Event]";$K=$L;}return$K;}function
triggers($R){$K=array();foreach(get_rows("SELECT * FROM information_schema.triggers WHERE trigger_schema = current_schema() AND event_object_table = ".q($R))as$L){$oi=trigger($L["trigger_name"],$R);$K[$oi["Trigger"]]=array($oi["Timing"],$oi["Event"]);}return$K;}function
trigger_options(){return
array("Timing"=>array("BEFORE","AFTER"),"Event"=>array("INSERT","UPDATE","UPDATE OF","DELETE","INSERT OR UPDATE","INSERT OR UPDATE OF","DELETE OR INSERT","DELETE OR UPDATE","DELETE OR UPDATE OF","DELETE OR INSERT OR UPDATE","DELETE OR INSERT OR UPDATE OF"),"Type"=>array("FOR EACH ROW","FOR EACH STATEMENT"),);}function
routine($D,$U){$M=get_rows('SELECT routine_definition AS definition, LOWER(external_language) AS language, *
FROM information_schema.routines
WHERE routine_schema = current_schema() AND specific_name = '.q($D));$K=idx($M,0,array());$K["returns"]=array("type"=>$K["type_udt_name"]);$K["fields"]=get_rows('SELECT COALESCE(parameter_name, ordinal_position::text) AS field, data_type AS type, character_maximum_length AS length, parameter_mode AS inout
FROM information_schema.parameters
WHERE specific_schema = current_schema() AND specific_name = '.q($D).'
ORDER BY ordinal_position');return$K;}function
routines(){return
get_rows('SELECT specific_name AS "SPECIFIC_NAME", routine_type AS "ROUTINE_TYPE", routine_name AS "ROUTINE_NAME", type_udt_name AS "DTD_IDENTIFIER"
FROM information_schema.routines
WHERE routine_schema = current_schema()
ORDER BY SPECIFIC_NAME');}function
routine_languages(){return
get_vals("SELECT LOWER(lanname) FROM pg_catalog.pg_language");}function
routine_id($D,$L){$K=array();foreach($L["fields"]as$l){$ve=$l["length"];$K[]=$l["type"].($ve?"($ve)":"");}return
idf_escape($D)."(".implode(", ",$K).")";}function
last_id($J){$L=(is_object($J)?$J->fetch_row():array());return($L?$L[0]:0);}function
explain($f,$I){return$f->query("EXPLAIN $I");}function
found_rows($S,$Z){if(preg_match("~ rows=([0-9]+)~",get_val("EXPLAIN SELECT * FROM ".idf_escape($S["Name"]).($Z?" WHERE ".implode(" AND ",$Z):"")),$Eg))return$Eg[1];}function
types(){return
get_key_vals("SELECT oid, typname
FROM pg_type
WHERE typnamespace = ".driver()->nsOid."
AND typtype IN ('b','d','e')
AND typelem = 0");}function
type_values($t){$qc=get_vals("SELECT enumlabel FROM pg_enum WHERE enumtypid = $t ORDER BY enumsortorder");return($qc?"'".implode("', '",array_map('addslashes',$qc))."'":"");}function
schemas(){return
get_vals("SELECT nspname FROM pg_namespace ORDER BY nspname");}function
get_schema(){return
get_val("SELECT current_schema()");}function
set_schema($Qg,$g=null){if(!$g)$g=connection();$K=$g->query("SET search_path TO ".idf_escape($Qg));driver()->setUserTypes(types());return$K;}function
foreign_keys_sql($R){$K="";$Q=table_status1($R);$Rc=foreign_keys($R);ksort($Rc);foreach($Rc
as$Qc=>$Pc)$K
.="ALTER TABLE ONLY ".idf_escape($Q['nspname']).".".idf_escape($Q['Name'])." ADD CONSTRAINT ".idf_escape($Qc)." $Pc[definition];\n";return($K?"$K\n":$K);}function
create_sql($R,$ya,$_h){$Jg=array();$eh=array();$Q=table_status1($R);$if=idf_escape($Q['nspname']);if(is_view($Q)){$Si=view($R);return
rtrim("CREATE VIEW $if.".idf_escape($R)." AS $Si[select]",";");}$m=fields($R);if(count($Q)<2||empty($m))return
false;$K="CREATE TABLE $if.".idf_escape($Q['Name'])." (\n ";foreach($m
as$l){$Of=idf_escape($l['field']).' '.$l['full_type'].default_value($l).($l['null']?"":" NOT NULL");$Jg[]=$Of;if(preg_match('~nextval\(\'([^\']+)\'\)~',$l['default'],$De)){$dh=$De[1];$rh=first(get_rows((min_version(10)?"SELECT *, cache_size AS cache_value FROM pg_sequences WHERE schemaname = current_schema() AND sequencename = ".q(idf_unescape($dh)):"SELECT * FROM $dh"),null,"-- "));$eh[]=($_h=="DROP+CREATE"?"DROP SEQUENCE IF EXISTS $if.$dh;\n":"")."CREATE SEQUENCE $if.$dh INCREMENT $rh[increment_by] MINVALUE $rh[min_value] MAXVALUE $rh[max_value]".($ya&&$rh['last_value']?" START ".($rh["last_value"]+1):"")." CACHE $rh[cache_value];";}}if(!empty($eh))$K=implode("\n\n",$eh)."\n\n$K";$ng="";foreach(indexes($R)as$Kd=>$v){if($v['type']=='PRIMARY'){$ng=$Kd;$Jg[]="CONSTRAINT ".idf_escape($Kd)." PRIMARY KEY (".implode(', ',array_map('Adminer\idf_escape',$v['columns'])).")";}}foreach(driver()->checkConstraints($R)as$ob=>$pb)$Jg[]="CONSTRAINT ".idf_escape($ob)." CHECK ($pb)";$K
.=implode(",\n ",$Jg)."\n)";$Qf=driver()->partitionsInfo($Q['Name']);if($Qf)$K
.="\nPARTITION BY $Qf[partition_by]($Qf[partition])";$K
.="\nWITH (oids = ".($Q['Oid']?'true':'false').");";if($Q['Comment'])$K
.="\n\nCOMMENT ON TABLE $if.".idf_escape($Q['Name'])." IS ".q($Q['Comment']).";";foreach($m
as$Ic=>$l){if($l['comment'])$K
.="\n\nCOMMENT ON COLUMN $if.".idf_escape($Q['Name']).".".idf_escape($Ic)." IS ".q($l['comment']).";";}foreach(get_rows("SELECT indexdef FROM pg_catalog.pg_indexes WHERE schemaname = current_schema() AND tablename = ".q($R).($ng?" AND indexname != ".q($ng):""),null,"-- ")as$L)$K
.="\n\n$L[indexdef];";return
rtrim($K,';');}function
truncate_sql($R){return"TRUNCATE ".table($R);}function
trigger_sql($R){$Q=table_status1($R);$K="";foreach(triggers($R)as$ni=>$mi){$oi=trigger($ni,$Q['Name']);$K
.="\nCREATE TRIGGER ".idf_escape($oi['Trigger'])." $oi[Timing] $oi[Event] ON ".idf_escape($Q["nspname"]).".".idf_escape($Q['Name'])." $oi[Type] $oi[Statement];;\n";}return$K;}function
use_sql($Eb,$_h=""){$D=idf_escape($Eb);$K="";if(preg_match('~CREATE~',$_h)){if($_h=="DROP+CREATE")$K="DROP DATABASE IF EXISTS $D;\n";$K
.="CREATE DATABASE $D;\n";}return"$K\\connect $D";}function
show_variables(){return
get_rows("SHOW ALL");}function
process_list(){return
get_rows("SELECT * FROM pg_stat_activity ORDER BY ".(min_version(9.2)?"pid":"procpid"));}function
convert_field($l){}function
unconvert_field($l,$K){return$K;}function
support($Gc){return
preg_match('~^(check|columns|comment|database|drop_col|dump|descidx|indexes|kill|partial_indexes|routine|scheme|sequence|sql|table|trigger|type|variables|view'.(min_version(9.3)?'|materializedview':'').(min_version(11)?'|procedure':'').(connection()->flavor=='cockroach'?'':'|processlist').')$~',$Gc);}function
kill_process($X){return
queries("SELECT pg_terminate_backend(".number($X).")");}function
connection_id(){return"SELECT pg_backend_pid()";}function
max_connections(){return
get_val("SHOW max_connections");}class
Adminer{static$instance;var$error='';function
name(){return"<a href='https://www.adminer.org/'".target_blank()." id='h1'><img src='".h(preg_replace("~\\?.*~","",ME)."?file=logo.png&version=5.4.2")."' width='24' height='24' alt='' id='logo'>Adminer</a>";}function
credentials(){return
array(SERVER,$_GET["username"],get_password());}function
connectSsl(){}function
permanentLogin($h=false){return
password_file($h);}function
bruteForceKey(){return$_SERVER["REMOTE_ADDR"];}function
serverName($O){return
h($O);}function
database(){return
DB;}function
databases($Tc=true){return
get_databases($Tc);}function
pluginsLinks(){}function
operators(){return
driver()->operators;}function
schemas(){return
schemas();}function
queryTimeout(){return
2;}function
afterConnect(){}function
headers(){}function
csp(array$yb){return$yb;}function
head($Bb=null){return
true;}function
bodyClass(){echo" adminer";}function
css(){$K=array();foreach(array("","-dark")as$Xe){$n="adminer$Xe.css";if(file_exists($n)){$Lc=file_get_contents($n);$K["$n?v=".crc32($Lc)]=($Xe?"dark":(preg_match('~prefers-color-scheme:\s*dark~',$Lc)?'':'light'));}}return$K;}function
loginForm(){echo"<table class='layout'>\n",adminer()->loginFormField('driver','<tr><th>'.lang(30).'<td>',input_hidden("auth[driver]","pgsql")."PostgreSQL"),adminer()->loginFormField('server','<tr><th>'.lang(31).'<td>','<input name="auth[server]" value="'.h(SERVER).'" title="'.lang(32).'" placeholder="localhost" autocapitalize="off">'),adminer()->loginFormField('username','<tr><th>'.lang(33).'<td>','<input name="auth[username]" id="username" autofocus value="'.h($_GET["username"]).'" autocomplete="username" autocapitalize="off">'),adminer()->loginFormField('password','<tr><th>'.lang(34).'<td>','<input type="password" name="auth[password]" autocomplete="current-password">'),adminer()->loginFormField('db','<tr><th>'.lang(35).'<td>','<input name="auth[db]" value="'.h($_GET["db"]).'" autocapitalize="off">'),"</table>\n","<p><input type='submit' value='".lang(36)."'>\n",checkbox("auth[permanent]",1,$_COOKIE["adminer_permanent"],lang(37))."\n";}function
loginFormField($D,$rd,$Y){return$rd.$Y."\n";}function
login($_e,$G){if($G=="")return
lang(38,target_blank());return
true;}function
tableName(array$Fh){return
h($Fh["Name"]);}function
fieldName(array$l,$xf=0){$U=$l["full_type"];$ib=$l["comment"];return'<span title="'.h($U.($ib!=""?($U?": ":"").$ib:'')).'">'.h($l["field"]).'</span>';}function
selectLinks(array$Fh,$P=""){$D=$Fh["Name"];echo'<p class="links">';$ze=array("select"=>lang(39));if(support("table")||support("indexes"))$ze["table"]=lang(40);$ee=false;if(support("table")){$ee=is_view($Fh);if($ee){if(support("view"))$ze["view"]=lang(41);}elseif(function_exists('Adminer\alter_table'))$ze["create"]=lang(42);}if($P!==null)$ze["edit"]=lang(43);foreach($ze
as$y=>$X)echo" <a href='".h(ME)."$y=".urlencode($D).($y=="edit"?$P:"")."'".bold(isset($_GET[$y])).">$X</a>";echo
doc_link(array(JUSH=>driver()->tableHelp($D,$ee)),"?"),"\n";}function
foreignKeys($R){return
foreign_keys($R);}function
backwardKeys($R,$Eh){return
array();}function
backwardKeysPrint(array$Aa,array$L){}function
selectQuery($I,$wh,$Ec=false){$K="</p>\n";if(!$Ec&&($Wi=driver()->warnings())){$t="warnings";$K=", <a href='#$t'>".lang(44)."</a>".script("qsl('a').onclick = partial(toggle, '$t');","")."$K<div id='$t' class='hidden'>\n$Wi</div>\n";}return"<p><code class='jush-".JUSH."'>".h(str_replace("\n"," ",$I))."</code> <span class='time'>(".format_time($wh).")</span>".(support("sql")?" <a href='".h(ME)."sql=".urlencode($I)."'>".lang(12)."</a>":"").$K;}function
sqlCommandQuery($I){return
shorten_utf8(trim($I),1000);}function
sqlPrintAfter(){}function
rowDescription($R){return"";}function
rowDescriptions(array$M,array$Wc){return$M;}function
selectLink($X,array$l){}function
selectVal($X,$_,array$l,$Gf){$K=($X===null?"<i>NULL</i>":(preg_match("~char|binary|boolean~",$l["type"])&&!preg_match("~var~",$l["type"])?"<code>$X</code>":(preg_match('~json~',$l["type"])?"<code class='jush-js'>$X</code>":$X)));if(is_blob($l)&&!is_utf8($X))$K="<i>".lang(45,strlen($Gf))."</i>";return($_?"<a href='".h($_)."'".(is_url($_)?target_blank():"").">$K</a>":$K);}function
editVal($X,array$l){return$X;}function
config(){return
array();}function
tableStructurePrint(array$m,$Fh=null){echo"<div class='scrollable'>\n","<table class='nowrap odds'>\n","<thead><tr><th>".lang(46)."<td>".lang(47).(support("comment")?"<td>".lang(48):"")."</thead>\n";$zh=driver()->structuredTypes();foreach($m
as$l){echo"<tr><th>".h($l["field"]);$U=h($l["full_type"]);$db=h($l["collation"]);echo"<td><span title='$db'>".(in_array($U,(array)$zh[lang(6)])?"<a href='".h(ME.'type='.urlencode($U))."'>$U</a>":$U.($db&&isset($Fh["Collation"])&&$db!=$Fh["Collation"]?" $db":""))."</span>",($l["null"]?" <i>NULL</i>":""),($l["auto_increment"]?" <i>".lang(49)."</i>":"");$Jb=h($l["default"]);echo(isset($l["default"])?" <span title='".lang(50)."'>[<b>".($l["generated"]?"<code class='jush-".JUSH."'>$Jb</code>":$Jb)."</b>]</span>":""),(support("comment")?"<td>".h($l["comment"]):""),"\n";}echo"</table>\n","</div>\n";}function
tableIndexesPrint(array$w,array$Fh){$Pf=false;foreach($w
as$D=>$v)$Pf|=!!$v["partial"];echo"<table>\n";$Kb=first(driver()->indexAlgorithms($Fh));foreach($w
as$D=>$v){ksort($v["columns"]);$og=array();foreach($v["columns"]as$y=>$X)$og[]="<i>".h($X)."</i>".($v["lengths"][$y]?"(".$v["lengths"][$y].")":"").($v["descs"][$y]?" DESC":"");echo"<tr title='".h($D)."'>","<th>$v[type]".($Kb&&$v['algorithm']!=$Kb?" ($v[algorithm])":""),"<td>".implode(", ",$og);if($Pf)echo"<td>".($v['partial']?"<code class='jush-".JUSH."'>WHERE ".h($v['partial']):"");echo"\n";}echo"</table>\n";}function
selectColumnsPrint(array$N,array$d){print_fieldset("select",lang(51),$N);$s=0;$N[""]=array();foreach($N
as$y=>$X){$X=idx($_GET["columns"],$y,array());$c=select_input(" name='columns[$s][col]'",$d,$X["col"],($y!==""?"selectFieldChange":"selectAddRow"));echo"<div>".(driver()->functions||driver()->grouping?html_select("columns[$s][fun]",array(-1=>"")+array_filter(array(lang(52)=>driver()->functions,lang(53)=>driver()->grouping)),$X["fun"]).on_help("event.target.value && event.target.value.replace(/ |\$/, '(') + ')'",1).script("qsl('select').onchange = function () { helpClose();".($y!==""?"":" qsl('select, input', this.parentNode).onchange();")." };","")."($c)":$c)."</div>\n";$s++;}echo"</div></fieldset>\n";}function
selectSearchPrint(array$Z,array$d,array$w){print_fieldset("search",lang(54),$Z);foreach($w
as$s=>$v){if($v["type"]=="FULLTEXT")echo"<div>(<i>".implode("</i>, <i>",array_map('Adminer\h',$v["columns"]))."</i>) AGAINST"," <input type='search' name='fulltext[$s]' value='".h(idx($_GET["fulltext"],$s))."'>",script("qsl('input').oninput = selectFieldChange;",""),(JUSH=='sql'?checkbox("boolean[$s]",1,isset($_GET["boolean"][$s]),"BOOL"):''),"</div>\n";}$Pa="this.parentNode.firstChild.onchange();";foreach(array_merge((array)$_GET["where"],array(array()))as$s=>$X){if(!$X||("$X[col]$X[val]"!=""&&in_array($X["op"],adminer()->operators())))echo"<div>".select_input(" name='where[$s][col]'",$d,$X["col"],($X?"selectFieldChange":"selectAddRow"),"(".lang(55).")"),html_select("where[$s][op]",adminer()->operators(),$X["op"],$Pa),"<input type='search' name='where[$s][val]' value='".h($X["val"])."'>",script("mixin(qsl('input'), {oninput: function () { $Pa }, onkeydown: selectSearchKeydown, onsearch: selectSearchSearch});",""),"</div>\n";}echo"</div></fieldset>\n";}function
selectOrderPrint(array$xf,array$d,array$w){print_fieldset("sort",lang(56),$xf);$s=0;foreach((array)$_GET["order"]as$y=>$X){if($X!=""){echo"<div>".select_input(" name='order[$s]'",$d,$X,"selectFieldChange"),checkbox("desc[$s]",1,isset($_GET["desc"][$y]),lang(57))."</div>\n";$s++;}}echo"<div>".select_input(" name='order[$s]'",$d,"","selectAddRow"),checkbox("desc[$s]",1,false,lang(57))."</div>\n","</div></fieldset>\n";}function
selectLimitPrint($z){echo"<fieldset><legend>".lang(58)."</legend><div>","<input type='number' name='limit' class='size' value='".intval($z)."'>",script("qsl('input').oninput = selectFieldChange;",""),"</div></fieldset>\n";}function
selectLengthPrint($Vh){if($Vh!==null)echo"<fieldset><legend>".lang(59)."</legend><div>","<input type='number' name='text_length' class='size' value='".h($Vh)."'>","</div></fieldset>\n";}function
selectActionPrint(array$w){echo"<fieldset><legend>".lang(60)."</legend><div>","<input type='submit' value='".lang(51)."'>"," <span id='noindex' title='".lang(61)."'></span>","<script".nonce().">\n","const indexColumns = ";$d=array();foreach($w
as$v){$Ab=reset($v["columns"]);if($v["type"]!="FULLTEXT"&&$Ab)$d[$Ab]=1;}$d[""]=1;foreach($d
as$y=>$X)json_row($y);echo";\n","selectFieldChange.call(qs('#form')['select']);\n","</script>\n","</div></fieldset>\n";}function
selectCommandPrint(){return!information_schema(DB);}function
selectImportPrint(){return!information_schema(DB);}function
selectEmailPrint(array$ic,array$d){}function
selectColumnsProcess(array$d,array$w){$N=array();$r=array();foreach((array)$_GET["columns"]as$y=>$X){if($X["fun"]=="count"||($X["col"]!=""&&(!$X["fun"]||in_array($X["fun"],driver()->functions)||in_array($X["fun"],driver()->grouping)))){$N[$y]=apply_sql_function($X["fun"],($X["col"]!=""?idf_escape($X["col"]):"*"));if(!in_array($X["fun"],driver()->grouping))$r[]=$N[$y];}}return
array($N,$r);}function
selectSearchProcess(array$m,array$w){$K=array();foreach($w
as$s=>$v){if($v["type"]=="FULLTEXT"&&idx($_GET["fulltext"],$s)!="")$K[]="MATCH (".implode(", ",array_map('Adminer\idf_escape',$v["columns"])).") AGAINST (".q($_GET["fulltext"][$s]).(isset($_GET["boolean"][$s])?" IN BOOLEAN MODE":"").")";}foreach((array)$_GET["where"]as$y=>$X){$bb=$X["col"];if("$bb$X[val]"!=""&&in_array($X["op"],adminer()->operators())){$mb=array();foreach(($bb!=""?array($bb=>$m[$bb]):$m)as$D=>$l){$kg="";$lb=" $X[op]";if(preg_match('~IN$~',$X["op"])){$Ed=process_length($X["val"]);$lb
.=" ".($Ed!=""?$Ed:"(NULL)");}elseif($X["op"]=="SQL")$lb=" $X[val]";elseif(preg_match('~^(I?LIKE) %%$~',$X["op"],$B))$lb=" $B[1] ".adminer()->processInput($l,"%$X[val]%");elseif($X["op"]=="FIND_IN_SET"){$kg="$X[op](".q($X["val"]).", ";$lb=")";}elseif(!preg_match('~NULL$~',$X["op"]))$lb
.=" ".adminer()->processInput($l,$X["val"]);if($bb!=""||(isset($l["privileges"]["where"])&&(preg_match('~^[-\d.'.(preg_match('~IN$~',$X["op"])?',':'').']+$~',$X["val"])||!preg_match('~'.number_type().'|bit~',$l["type"]))&&(!preg_match("~[\x80-\xFF]~",$X["val"])||preg_match('~char|text|enum|set~',$l["type"]))&&(!preg_match('~date|timestamp~',$l["type"])||preg_match('~^\d+-\d+-\d+~',$X["val"]))))$mb[]=$kg.driver()->convertSearch(idf_escape($D),$X,$l).$lb;}$K[]=(count($mb)==1?$mb[0]:($mb?"(".implode(" OR ",$mb).")":"1 = 0"));}}return$K;}function
selectOrderProcess(array$m,array$w){$K=array();foreach((array)$_GET["order"]as$y=>$X){if($X!="")$K[]=(preg_match('~^((COUNT\(DISTINCT |[A-Z0-9_]+\()(`(?:[^`]|``)+`|"(?:[^"]|"")+")\)|COUNT\(\*\))$~',$X)?$X:idf_escape($X)).(isset($_GET["desc"][$y])?" DESC":"");}return$K;}function
selectLimitProcess(){return(isset($_GET["limit"])?intval($_GET["limit"]):50);}function
selectLengthProcess(){return(isset($_GET["text_length"])?"$_GET[text_length]":"100");}function
selectEmailProcess(array$Z,array$Wc){return
false;}function
selectQueryBuild(array$N,array$Z,array$r,array$xf,$z,$F){return"";}function
messageQuery($I,$Wh,$Ec=false){restart_session();$td=&get_session("queries");if(!idx($td,$_GET["db"]))$td[$_GET["db"]]=array();if(strlen($I)>1e6)$I=preg_replace('~[\x80-\xFF]+$~','',substr($I,0,1e6))."\n…";$td[$_GET["db"]][]=array($I,time(),$Wh);$uh="sql-".count($td[$_GET["db"]]);$K="<a href='#$uh' class='toggle'>".lang(62)."</a> <a href='' class='jsonly copy'>🗐</a>\n";if(!$Ec&&($Wi=driver()->warnings())){$t="warnings-".count($td[$_GET["db"]]);$K="<a href='#$t' class='toggle'>".lang(44)."</a>, $K<div id='$t' class='hidden'>\n$Wi</div>\n";}return" <span class='time'>".@date("H:i:s")."</span>"." $K<div id='$uh' class='hidden'><pre><code class='jush-".JUSH."'>".shorten_utf8($I,1e4)."</code></pre>".($Wh?" <span class='time'>($Wh)</span>":'').(support("sql")?'<p><a href="'.h(str_replace("db=".urlencode(DB),"db=".urlencode($_GET["db"]),ME).'sql=&history='.(count($td[$_GET["db"]])-1)).'">'.lang(12).'</a>':'').'</div>';}function
editRowPrint($R,array$m,$L,$Ai){}function
editFunctions(array$l){$K=($l["null"]?"NULL/":"");$Ai=isset($_GET["select"])||where($_GET);foreach(array(driver()->insertFunctions,driver()->editFunctions)as$y=>$dd){if(!$y||(!isset($_GET["call"])&&$Ai)){foreach($dd
as$Yf=>$X){if(!$Yf||preg_match("~$Yf~",$l["type"]))$K
.="/$X";}}if($y&&$dd&&!preg_match('~set|bool~',$l["type"])&&!is_blob($l))$K
.="/SQL";}if($l["auto_increment"]&&!$Ai)$K=lang(49);return
explode("/",$K);}function
editInput($R,array$l,$b,$Y){if($l["type"]=="enum")return(isset($_GET["select"])?"<label><input type='radio'$b value='orig' checked><i>".lang(10)."</i></label> ":"").enum_input("radio",$b,$l,$Y,"NULL");return"";}function
editHint($R,array$l,$Y){return"";}function
processInput(array$l,$Y,$q=""){if($q=="SQL")return$Y;$D=$l["field"];$K=q($Y);if(preg_match('~^(now|getdate|uuid)$~',$q))$K="$q()";elseif(preg_match('~^current_(date|timestamp)$~',$q))$K=$q;elseif(preg_match('~^([+-]|\|\|)$~',$q))$K=idf_escape($D)." $q $K";elseif(preg_match('~^[+-] interval$~',$q))$K=idf_escape($D)." $q ".(preg_match("~^(\\d+|'[0-9.: -]') [A-Z_]+\$~i",$Y)&&JUSH!="pgsql"?$Y:$K);elseif(preg_match('~^(addtime|subtime|concat)$~',$q))$K="$q(".idf_escape($D).", $K)";elseif(preg_match('~^(md5|sha1|password|encrypt)$~',$q))$K="$q($K)";return
unconvert_field($l,$K);}function
dumpOutput(){$K=array('text'=>lang(63),'file'=>lang(64));if(function_exists('gzencode'))$K['gz']='gzip';return$K;}function
dumpFormat(){return(support("dump")?array('sql'=>'SQL'):array())+array('csv'=>'CSV,','csv;'=>'CSV;','tsv'=>'TSV');}function
dumpDatabase($j){}function
dumpTable($R,$_h,$ee=0){if($_POST["format"]!="sql"){echo"\xef\xbb\xbf";if($_h)dump_csv(array_keys(fields($R)));}else{if($ee==2){$m=array();foreach(fields($R)as$D=>$l)$m[]=idf_escape($D)." $l[full_type]";$h="CREATE TABLE ".table($R)." (".implode(", ",$m).")";}else$h=create_sql($R,$_POST["auto_increment"],$_h);set_utf8mb4($h);if($_h&&$h){if($_h=="DROP+CREATE"||$ee==1)echo"DROP ".($ee==2?"VIEW":"TABLE")." IF EXISTS ".table($R).";\n";if($ee==1)$h=remove_definer($h);echo"$h;\n\n";}}}function
dumpData($R,$_h,$I){if($_h){$He=(JUSH=="sqlite"?0:1048576);$m=array();$Ad=false;if($_POST["format"]=="sql"){if($_h=="TRUNCATE+INSERT")echo
truncate_sql($R).";\n";$m=fields($R);if(JUSH=="mssql"){foreach($m
as$l){if($l["auto_increment"]){echo"SET IDENTITY_INSERT ".table($R)." ON;\n";$Ad=true;break;}}}}$J=connection()->query($I,1);if($J){$Vd="";$Ka="";$ie=array();$ed=array();$Bh="";$Hc=($R!=''?'fetch_assoc':'fetch_row');$vb=0;while($L=$J->$Hc()){if(!$ie){$Oi=array();foreach($L
as$X){$l=$J->fetch_field();if(idx($m[$l->name],'generated')){$ed[$l->name]=true;continue;}$ie[]=$l->name;$y=idf_escape($l->name);$Oi[]="$y = VALUES($y)";}$Bh=($_h=="INSERT+UPDATE"?"\nON DUPLICATE KEY UPDATE ".implode(", ",$Oi):"").";\n";}if($_POST["format"]!="sql"){if($_h=="table"){dump_csv($ie);$_h="INSERT";}dump_csv($L);}else{if(!$Vd)$Vd="INSERT INTO ".table($R)." (".implode(", ",array_map('Adminer\idf_escape',$ie)).") VALUES";foreach($L
as$y=>$X){if($ed[$y]){unset($L[$y]);continue;}$l=$m[$y];$L[$y]=($X!==null?unconvert_field($l,preg_match(number_type(),$l["type"])&&!preg_match('~\[~',$l["full_type"])&&is_numeric($X)?$X:q(($X===false?0:$X))):"NULL");}$Pg=($He?"\n":" ")."(".implode(",\t",$L).")";if(!$Ka)$Ka=$Vd.$Pg;elseif(JUSH=='mssql'?$vb%1000!=0:strlen($Ka)+4+strlen($Pg)+strlen($Bh)<$He)$Ka
.=",$Pg";else{echo$Ka.$Bh;$Ka=$Vd.$Pg;}}$vb++;}if($Ka)echo$Ka.$Bh;}elseif($_POST["format"]=="sql")echo"-- ".str_replace("\n"," ",connection()->error)."\n";if($Ad)echo"SET IDENTITY_INSERT ".table($R)." OFF;\n";}}function
dumpFilename($_d){return
friendly_url($_d!=""?$_d:(SERVER?:"localhost"));}function
dumpHeaders($_d,$Ze=false){$If=$_POST["output"];$Ac=(preg_match('~sql~',$_POST["format"])?"sql":($Ze?"tar":"csv"));header("Content-Type: ".($If=="gz"?"application/x-gzip":($Ac=="tar"?"application/x-tar":($Ac=="sql"||$If!="file"?"text/plain":"text/csv")."; charset=utf-8")));if($If=="gz"){ob_start(function($yh){return
gzencode($yh);},1e6);}return$Ac;}function
dumpFooter(){if($_POST["format"]=="sql")echo"-- ".gmdate("Y-m-d H:i:s e")."\n";}function
importServerPath(){return"adminer.sql";}function
homepage(){echo'<p class="links">'.($_GET["ns"]==""&&support("database")?'<a href="'.h(ME).'database=">'.lang(65)."</a>\n":""),(support("scheme")?"<a href='".h(ME)."scheme='>".($_GET["ns"]!=""?lang(66):lang(67))."</a>\n":""),($_GET["ns"]!==""?'<a href="'.h(ME).'schema=">'.lang(68)."</a>\n":""),(support("privileges")?"<a href='".h(ME)."privileges='>".lang(69)."</a>\n":"");if($_GET["ns"]!=="")echo(support("routine")?"<a href='#routines'>".lang(70)."</a>\n":""),(support("sequence")?"<a href='#sequences'>".lang(71)."</a>\n":""),(support("type")?"<a href='#user-types'>".lang(6)."</a>\n":""),(support("event")?"<a href='#events'>".lang(72)."</a>\n":"");return
true;}function
navigation($We){echo"<h1>".adminer()->name()." <span class='version'>".VERSION;$ff=$_COOKIE["adminer_version"];echo" <a href='https://www.adminer.org/#download'".target_blank()." id='version'>".(version_compare(VERSION,$ff)<0?h($ff):"")."</a>","</span></h1>\n";switch_lang();if($We=="auth"){$If="";foreach((array)$_SESSION["pwds"]as$Qi=>$gh){foreach($gh
as$O=>$Ki){$D=h(get_setting("vendor-$Qi-$O")?:get_driver($Qi));foreach($Ki
as$V=>$G){if($G!==null){$Hb=$_SESSION["db"][$Qi][$O][$V];foreach(($Hb?array_keys($Hb):array(""))as$j)$If
.="<li><a href='".h(auth_url($Qi,$O,$V,$j))."'>($D) ".h("$V@".($O!=""?adminer()->serverName($O):"").($j!=""?" - $j":""))."</a>\n";}}}}if($If)echo"<ul id='logins'>\n$If</ul>\n".script("mixin(qs('#logins'), {onmouseover: menuOver, onmouseout: menuOut});");}else{$T=array();if($_GET["ns"]!==""&&!$We&&DB!=""){connection()->select_db(DB);$T=table_status('',true);}adminer()->syntaxHighlighting($T);adminer()->databasesPrint($We);$ha=array();if(DB==""||!$We){if(support("sql")){$ha[]="<a href='".h(ME)."sql='".bold(isset($_GET["sql"])&&!isset($_GET["import"])).">".lang(62)."</a>";$ha[]="<a href='".h(ME)."import='".bold(isset($_GET["import"])).">".lang(73)."</a>";}$ha[]="<a href='".h(ME)."dump=".urlencode(isset($_GET["table"])?$_GET["table"]:$_GET["select"])."' id='dump'".bold(isset($_GET["dump"])).">".lang(74)."</a>";}$Fd=$_GET["ns"]!==""&&!$We&&DB!="";if($Fd&&function_exists('Adminer\alter_table'))$ha[]='<a href="'.h(ME).'create="'.bold($_GET["create"]==="").">".lang(75)."</a>";echo($ha?"<p class='links'>\n".implode("\n",$ha)."\n":"");if($Fd){if($T)adminer()->tablesPrint($T);else
echo"<p class='message'>".lang(11)."</p>\n";}}}function
syntaxHighlighting(array$T){echo
script_src(preg_replace("~\\?.*~","",ME)."?file=jush.js&version=5.4.2",true);if(support("sql")){echo"<script".nonce().">\n";if($T){$ze=array();foreach($T
as$R=>$U)$ze[]=preg_quote($R,'/');echo"var jushLinks = { ".JUSH.":";json_row(js_escape(ME).(support("table")?"table":"select").'=$&','/\b('.implode('|',$ze).')\b/g',false);if(support('routine')){foreach(routines()as$L)json_row(js_escape(ME).'function='.urlencode($L["SPECIFIC_NAME"]).'&name=$&','/\b'.preg_quote($L["ROUTINE_NAME"],'/').'(?=["`]?\()/g',false);}json_row('');echo"};\n";foreach(array("bac","bra","sqlite_quo","mssql_bra")as$X)echo"jushLinks.$X = jushLinks.".JUSH.";\n";if(isset($_GET["sql"])||isset($_GET["trigger"])||isset($_GET["check"])){$Lh=array_fill_keys(array_keys($T),array());foreach(driver()->allFields()as$R=>$m){foreach($m
as$l)$Lh[$R][]=$l["field"];}echo"addEventListener('DOMContentLoaded', () => { autocompleter = jush.autocompleteSql('".idf_escape("")."', ".json_encode($Lh)."); });\n";}}echo"</script>\n";}echo
script("syntaxHighlighting('".preg_replace('~^(\d\.?\d).*~s','\1',connection()->server_info)."', '".connection()->flavor."');");}function
databasesPrint($We){$i=adminer()->databases();if(DB&&$i&&!in_array(DB,$i))array_unshift($i,DB);echo"<form action=''>\n<p id='dbs'>\n";hidden_fields_get();$Fb=script("mixin(qsl('select'), {onmousedown: dbMouseDown, onchange: dbChange});");echo"<label title='".lang(35)."'>".lang(76).": ".($i?html_select("db",array(""=>"")+$i,DB).$Fb:"<input name='db' value='".h(DB)."' autocapitalize='off' size='19'>\n")."</label>","<input type='submit' value='".lang(22)."'".($i?" class='hidden'":"").">\n";if(support("scheme")){if($We!="db"&&DB!=""&&connection()->select_db(DB)){echo"<br><label>".lang(77).": ".html_select("ns",array(""=>"")+adminer()->schemas(),$_GET["ns"])."$Fb</label>";if($_GET["ns"]!="")set_schema($_GET["ns"]);}}foreach(array("import","sql","schema","dump","privileges")as$X){if(isset($_GET[$X])){echo
input_hidden($X);break;}}echo"</p></form>\n";}function
tablesPrint(array$T){echo"<ul id='tables'>".script("mixin(qs('#tables'), {onmouseover: menuOver, onmouseout: menuOut});");foreach($T
as$R=>$Q){$R="$R";$D=adminer()->tableName($Q);if($D!=""&&!$Q["partition"])echo'<li><a href="'.h(ME).'select='.urlencode($R).'"'.bold($_GET["select"]==$R||$_GET["edit"]==$R,"select")." title='".lang(39)."'>".lang(78)."</a> ",(support("table")||support("indexes")?'<a href="'.h(ME).'table='.urlencode($R).'"'.bold(in_array($R,array($_GET["table"],$_GET["create"],$_GET["indexes"],$_GET["foreign"],$_GET["trigger"],$_GET["check"],$_GET["view"])),(is_view($Q)?"view":"structure"))." title='".lang(40)."'>$D</a>":"<span>$D</span>")."\n";}echo"</ul>\n";}function
showVariables(){return
show_variables();}function
showStatus(){return
show_status();}function
processList(){return
process_list();}function
killProcess($t){return
kill_process($t);}}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($dg){if($dg===null){$dg=array();$Ea="adminer-plugins";if(is_dir($Ea)){foreach(glob("$Ea/*.php")as$n)$this->includeOnce($n);}$sd=" href='https://www.adminer.org/plugins/#use'".target_blank();if(file_exists("$Ea.php")){$Gd=$this->includeOnce("$Ea.php");if(is_array($Gd)){foreach($Gd
as$cg)$dg[get_class($cg)]=$cg;}else$this->error
.=lang(79,"<b>$Ea.php</b>",$sd)."<br>";}foreach(get_declared_classes()as$Xa){if(!$dg[$Xa]&&(preg_match('~^Adminer\w~i',$Xa)||is_subclass_of($Xa,'Adminer\Plugin'))){$Cg=new
\ReflectionClass($Xa);$qb=$Cg->getConstructor();if($qb&&$qb->getNumberOfRequiredParameters())$this->error
.=lang(80,$sd,"<b>$Xa</b>","<b>$Ea.php</b>")."<br>";else$dg[$Xa]=new$Xa;}}}$this->plugins=$dg;$ja=new
Adminer;$dg[]=$ja;$Cg=new
\ReflectionObject($ja);foreach($Cg->getMethods()as$Ue){foreach($dg
as$cg){$D=$Ue->getName();if(method_exists($cg,$D))$this->hooks[$D][]=$cg;}}}function
includeOnce($n){return
include_once"./$n";}function
__call($D,array$Mf){$ta=array();foreach($Mf
as$y=>$X)$ta[]=&$Mf[$y];$K=null;foreach($this->hooks[$D]as$cg){$Y=call_user_func_array(array($cg,$D),$ta);if($Y!==null){if(!self::$append[$D])return$Y;$K=$Y+(array)$K;}}return$K;}}abstract
class
Plugin{protected$translations=array();function
description(){return$this->lang('');}function
screenshot(){return"";}protected
function
lang($u,$E=null){$ta=func_get_args();$ta[0]=idx($this->translations[LANG],$u)?:$u;return
call_user_func_array('Adminer\lang_format',$ta);}}Adminer::$instance=(function_exists('adminer_object')?adminer_object():(is_dir("adminer-plugins")||file_exists("adminer-plugins.php")?new
Plugins(null):new
Adminer));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($Zh,$k="",$Ja=array(),$ai=""){page_headers();if(is_ajax()&&$k){page_messages($k);exit;}if(!ob_get_level())ob_start('ob_gzhandler',4096);$bi=$Zh.($ai!=""?": $ai":"");$ci=strip_tags($bi.(SERVER!=""&&SERVER!="localhost"?h(" - ".SERVER):"")." - ".adminer()->name());echo'<!DOCTYPE html>
<html lang="',LANG,'" dir="',lang(81),'">
<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>',$ci,'</title>
<link rel="stylesheet" href="',h(preg_replace("~\\?.*~","",ME)."?file=default.css&version=5.4.2"),'">
';$zb=adminer()->css();if(is_int(key($zb)))$zb=array_fill_keys($zb,'light');$od=in_array('light',$zb)||in_array('',$zb);$md=in_array('dark',$zb)||in_array('',$zb);$Bb=($od?($md?null:false):($md?:null));$Ne=" media='(prefers-color-scheme: dark)'";if($Bb!==false)echo"<link rel='stylesheet'".($Bb?"":$Ne)." href='".h(preg_replace("~\\?.*~","",ME)."?file=dark.css&version=5.4.2")."'>\n";echo"<meta name='color-scheme' content='".($Bb===null?"light dark":($Bb?"dark":"light"))."'>\n",script_src(preg_replace("~\\?.*~","",ME)."?file=functions.js&version=5.4.2");if(adminer()->head($Bb))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.2")."'>\n";foreach($zb
as$Ei=>$Xe){$b=($Xe=='dark'&&!$Bb?$Ne:($Xe=='light'&&$md?" media='(prefers-color-scheme: light)'":""));echo"<link rel='stylesheet'$b href='".h($Ei)."'>\n";}echo"\n<body class='".lang(81)." nojs";adminer()->bodyClass();echo"'>\n";$n=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(82))."';
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($Ja!==null){$_=substr(preg_replace('~\b(username|db|ns)=[^&]*&~','',ME),0,-1);echo'<p id="breadcrumb"><a href="'.h($_?:".").'">'.get_driver(DRIVER).'</a> » ';$_=substr(preg_replace('~\b(db|ns)=[^&]*&~','',ME),0,-1);$O=adminer()->serverName(SERVER);$O=($O!=""?$O:lang(31));if($Ja===false)echo"$O\n";else{echo"<a href='".h($_)."' accesskey='1' title='Alt+Shift+1'>$O</a> » ";if($_GET["ns"]!=""||(DB!=""&&is_array($Ja)))echo'<a href="'.h($_."&db=".urlencode(DB).(support("scheme")?"&ns=":"")).'">'.h(DB).'</a> » ';if(is_array($Ja)){if($_GET["ns"]!="")echo'<a href="'.h(substr(ME,0,-1)).'">'.h($_GET["ns"]).'</a> » ';foreach($Ja
as$y=>$X){$Pb=(is_array($X)?$X[1]:h($X));if($Pb!="")echo"<a href='".h(ME."$y=").urlencode(is_array($X)?$X[0]:$X)."'>$Pb</a> » ";}}echo"$Zh\n";}}echo"<h2>$bi</h2>\n","<div id='ajaxstatus' class='jsonly hidden'></div>\n";restart_session();page_messages($k);$i=&get_session("dbs");if(DB!=""&&$i&&!in_array(DB,$i,true))$i=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$yb){$qd=array();foreach($yb
as$y=>$X)$qd[]="$y $X";header("Content-Security-Policy: ".implode("; ",$qd));}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$hf;if(!$hf)$hf=base64_encode(rand_string());return$hf;}function
page_messages($k){$Di=preg_replace('~^[^?]*~','',$_SERVER["REQUEST_URI"]);$Te=idx($_SESSION["messages"],$Di);if($Te){echo"<div class='message'>".implode("</div>\n<div class='message'>",$Te)."</div>".script("messagesPrint();");unset($_SESSION["messages"][$Di]);}if($k)echo"<div class='error'>$k</div>\n";if(adminer()->error)echo"<div class='error'>".adminer()->error."</div>\n";}function
page_footer($We=""){echo"</div>\n\n<div id='foot' class='foot'>\n<div id='menu'>\n";adminer()->navigation($We);echo"</div>\n";if($We!="auth")echo'<form action="" method="post">
<p class="logout">
<span>',h($_GET["username"])."\n",'</span>
<input type="submit" name="logout" value="',lang(83),'" id="logout">
',input_token(),'</form>
';echo"</div>\n\n",script("setupSubmitHighlight(document);");}function
int32($bf){while($bf>=2147483648)$bf-=4294967296;while($bf<=-2147483649)$bf+=4294967296;return(int)$bf;}function
long2str(array$W,$Vi){$Pg='';foreach($W
as$X)$Pg
.=pack('V',$X);if($Vi)return
substr($Pg,0,end($W));return$Pg;}function
str2long($Pg,$Vi){$W=array_values(unpack('V*',str_pad($Pg,4*ceil(strlen($Pg)/4),"\0")));if($Vi)$W[]=strlen($Pg);return$W;}function
xxtea_mx($cj,$bj,$Ch,$he){return
int32((($cj>>5&0x7FFFFFF)^$bj<<2)+(($bj>>3&0x1FFFFFFF)^$cj<<4))^int32(($Ch^$bj)+($he^$cj));}function
encrypt_string($xh,$y){if($xh=="")return"";$y=array_values(unpack("V*",pack("H*",md5($y))));$W=str2long($xh,true);$bf=count($W)-1;$cj=$W[$bf];$bj=$W[0];$H=floor(6+52/($bf+1));$Ch=0;while($H-->0){$Ch=int32($Ch+0x9E3779B9);$cc=$Ch>>2&3;for($Jf=0;$Jf<$bf;$Jf++){$bj=$W[$Jf+1];$af=xxtea_mx($cj,$bj,$Ch,$y[$Jf&3^$cc]);$cj=int32($W[$Jf]+$af);$W[$Jf]=$cj;}$bj=$W[0];$af=xxtea_mx($cj,$bj,$Ch,$y[$Jf&3^$cc]);$cj=int32($W[$bf]+$af);$W[$bf]=$cj;}return
long2str($W,false);}function
decrypt_string($xh,$y){if($xh=="")return"";if(!$y)return
false;$y=array_values(unpack("V*",pack("H*",md5($y))));$W=str2long($xh,false);$bf=count($W)-1;$cj=$W[$bf];$bj=$W[0];$H=floor(6+52/($bf+1));$Ch=int32($H*0x9E3779B9);while($Ch){$cc=$Ch>>2&3;for($Jf=$bf;$Jf>0;$Jf--){$cj=$W[$Jf-1];$af=xxtea_mx($cj,$bj,$Ch,$y[$Jf&3^$cc]);$bj=int32($W[$Jf]-$af);$W[$Jf]=$bj;}$cj=$W[$bf];$af=xxtea_mx($cj,$bj,$Ch,$y[$Jf&3^$cc]);$bj=int32($W[0]-$af);$W[0]=$bj;$Ch=int32($Ch-0x9E3779B9);}return
long2str($W,true);}$ag=array();if($_COOKIE["adminer_permanent"]){foreach(explode(" ",$_COOKIE["adminer_permanent"])as$X){list($y)=explode(":",$X);$ag[$y]=$X;}}function
add_invalid_login(){$Ca=get_temp_dir()."/adminer.invalid";foreach(glob("$Ca*")?:array($Ca)as$n){$p=file_open_lock($n);if($p)break;}if(!$p)$p=file_open_lock("$Ca-".rand_string());if(!$p)return;$Zd=unserialize(stream_get_contents($p));$Wh=time();if($Zd){foreach($Zd
as$ae=>$X){if($X[0]<$Wh)unset($Zd[$ae]);}}$Yd=&$Zd[adminer()->bruteForceKey()];if(!$Yd)$Yd=array($Wh+30*60,0);$Yd[1]++;file_write_unlock($p,serialize($Zd));}function
check_invalid_login(array&$ag){$Zd=array();foreach(glob(get_temp_dir()."/adminer.invalid*")as$n){$p=file_open_lock($n);if($p){$Zd=unserialize(stream_get_contents($p));file_unlock($p);break;}}$Yd=idx($Zd,adminer()->bruteForceKey(),array());$gf=($Yd[1]>29?$Yd[0]-time():0);if($gf>0)auth_error(lang(84,ceil($gf/60)),$ag);}$xa=$_POST["auth"];if($xa){session_regenerate_id();$Qi=$xa["driver"];$O=$xa["server"];$V=$xa["username"];$G=(string)$xa["password"];$j=$xa["db"];set_password($Qi,$O,$V,$G);$_SESSION["db"][$Qi][$O][$V][$j]=true;if($xa["permanent"]){$y=implode("-",array_map('base64_encode',array($Qi,$O,$V,$j)));$pg=adminer()->permanentLogin(true);$ag[$y]="$y:".base64_encode($pg?encrypt_string($G,$pg):"");cookie("adminer_permanent",implode(" ",$ag));}if(count($_POST)==1||DRIVER!=$Qi||SERVER!=$O||$_GET["username"]!==$V||DB!=$j)redirect(auth_url($Qi,$O,$V,$j));}elseif($_POST["logout"]&&(!$_SESSION["token"]||verify_token())){foreach(array("pwds","db","dbs","queries")as$y)set_session($y,null);unset_permanent($ag);redirect(substr(preg_replace('~\b(username|db|ns)=[^&]*&~','',ME),0,-1),lang(85).' '.lang(86));}elseif($ag&&!$_SESSION["pwds"]){session_regenerate_id();$pg=adminer()->permanentLogin();foreach($ag
as$y=>$X){list(,$Wa)=explode(":",$X);list($Qi,$O,$V,$j)=array_map('base64_decode',explode("-",$y));set_password($Qi,$O,$V,decrypt_string(base64_decode($Wa),$pg));$_SESSION["db"][$Qi][$O][$V][$j]=true;}}function
unset_permanent(array&$ag){foreach($ag
as$y=>$X){list($Qi,$O,$V,$j)=array_map('base64_decode',explode("-",$y));if($Qi==DRIVER&&$O==SERVER&&$V==$_GET["username"]&&$j==DB)unset($ag[$y]);}cookie("adminer_permanent",implode(" ",$ag));}function
auth_error($k,array&$ag){$hh=session_name();if(isset($_GET["username"])){header("HTTP/1.1 403 Forbidden");if(($_COOKIE[$hh]||$_GET[$hh])&&!$_SESSION["token"])$k=lang(87);else{restart_session();add_invalid_login();$G=get_password();if($G!==null){if($G===false)$k
.=($k?'<br>':'').lang(88,target_blank(),'<code>permanentLogin()</code>');set_password(DRIVER,SERVER,$_GET["username"],null);}unset_permanent($ag);}}if(!$_COOKIE[$hh]&&$_GET[$hh]&&ini_bool("session.use_only_cookies"))$k=lang(89);$Mf=session_get_cookie_params();cookie("adminer_key",($_COOKIE["adminer_key"]?:rand_string()),$Mf["lifetime"]);if(!$_SESSION["token"])$_SESSION["token"]=rand(1,1e6);page_header(lang(36),$k,null);echo"<form action='' method='post'>\n","<div>";if(hidden_fields($_POST,array("auth")))echo"<p class='message'>".lang(90)."\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($ag);page_header(lang(91),lang(92,implode(", ",Driver::$extensions)),false);page_footer("auth");exit;}$f='';if(isset($_GET["username"])&&is_string(get_password())){list(,$eg)=host_port(SERVER);if(preg_match('~^\s*([-+]?\d+)~',$eg,$B)&&($B[1]<1024||$B[1]>65535))auth_error(lang(93),$ag);check_invalid_login($ag);$xb=adminer()->credentials();$f=Driver::connect($xb[0],$xb[1],$xb[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)));}}$_e=null;if(!is_object($f)||($_e=adminer()->login($_GET["username"],get_password()))!==true){$k=(is_string($f)?nl_br(h($f)):(is_string($_e)?$_e:lang(94))).(preg_match('~^ | $~',get_password())?'<br>'.lang(95):'');auth_error($k,$ag);}if($_POST["logout"]&&$_SESSION["token"]&&!verify_token()){page_header(lang(83),lang(96));page_footer("db");exit;}if(!$_SESSION["token"])$_SESSION["token"]=rand(1,1e6);stop_session(true);if($xa&&$_POST["token"])$_POST["token"]=get_token();$k='';if($_POST){if(!verify_token()){$Sd="max_input_vars";$Le=ini_get($Sd);if(extension_loaded("suhosin")){foreach(array("suhosin.request.max_vars","suhosin.post.max_vars")as$y){$X=ini_get($y);if($X&&(!$Le||$X<$Le)){$Sd=$y;$Le=$X;}}}$k=(!$_POST["token"]&&$Le?lang(97,"'$Sd'"):lang(96).' '.lang(98));}}elseif($_SERVER["REQUEST_METHOD"]=="POST"){$k=lang(99,"'post_max_size'");if(isset($_GET["sql"]))$k
.=' '.lang(100);}function
print_select_result($J,$g=null,array$Af=array(),$z=0){$ze=array();$w=array();$d=array();$Ha=array();$ti=array();$K=array();for($s=0;(!$z||$s<$z)&&($L=$J->fetch_row());$s++){if(!$s){echo"<div class='scrollable'>\n","<table class='nowrap odds'>\n","<thead><tr>";for($x=0;$x<count($L);$x++){$l=$J->fetch_field();$D=$l->name;$_f=(isset($l->orgtable)?$l->orgtable:"");$zf=(isset($l->orgname)?$l->orgname:$D);if($Af&&JUSH=="sql")$ze[$x]=($D=="table"?"table=":($D=="possible_keys"?"indexes=":null));elseif($_f!=""){if(isset($l->table))$K[$l->table]=$_f;if(!isset($w[$_f])){$w[$_f]=array();foreach(indexes($_f,$g)as$v){if($v["type"]=="PRIMARY"){$w[$_f]=array_flip($v["columns"]);break;}}$d[$_f]=$w[$_f];}if(isset($d[$_f][$zf])){unset($d[$_f][$zf]);$w[$_f][$zf]=$x;$ze[$x]=$_f;}}if($l->charsetnr==63)$Ha[$x]=true;$ti[$x]=$l->type;echo"<th".($_f!=""||$l->name!=$zf?" title='".h(($_f!=""?"$_f.":"").$zf)."'":"").">".h($D).($Af?'':"");}echo"</thead>\n";}echo"<tr>";foreach($L
as$y=>$X){$_="";if(isset($ze[$y])&&!$d[$ze[$y]]){if($Af&&JUSH=="sql"){$R=$L[array_search("table=",$ze)];$_=ME.$ze[$y].urlencode($Af[$R]!=""?$Af[$R]:$R);}else{$_=ME."edit=".urlencode($ze[$y]);foreach($w[$ze[$y]]as$bb=>$x){if($L[$x]===null){$_="";break;}$_
.="&where".urlencode("[".bracket_escape($bb)."]")."=".urlencode($L[$x]);}}}$l=array('type'=>($Ha[$y]?'blob':($ti[$y]==254?'char':'')),);$X=select_value($X,$_,$l,null);echo"<td".($ti[$y]<=9||$ti[$y]==246?" class='number'":"").">$X";}}echo($s?"</table>\n</div>":"<p class='message'>".lang(14))."\n";return$K;}function
referencable_primary($Zg){$K=array();foreach(table_status('',true)as$Gh=>$R){if($Gh!=$Zg&&fk_support($R)){foreach(fields($Gh)as$l){if($l["primary"]){if($K[$Gh]){unset($K[$Gh]);break;}$K[$Gh]=$l;}}}}return$K;}function
textarea($D,$Y,$M=10,$fb=80){echo"<textarea name='".h($D)."' rows='$M' cols='$fb' class='sqlarea jush-".JUSH."' spellcheck='false' wrap='off'>";if(is_array($Y)){foreach($Y
as$X)echo
h($X[0])."\n\n\n";}else
echo
h($Y);echo"</textarea>";}function
select_input($b,array$vf,$Y="",$qf="",$bg=""){$Oh=($vf?"select":"input");return"<$Oh$b".($vf?"><option value=''>$bg".optionlist($vf,$Y,true)."</select>":" size='10' value='".h($Y)."' placeholder='$bg'>").($qf?script("qsl('$Oh').onchange = $qf;",""):"");}function
json_row($y,$X=null,$uc=true){static$Nc=true;if($Nc)echo"{";if($y!=""){echo($Nc?"":",")."\n\t\"".addcslashes($y,"\r\n\t\"\\/").'": '.($X!==null?($uc?'"'.addcslashes($X,"\r\n\"\\/").'"':$X):'null');$Nc=false;}else{echo"\n}\n";$Nc=true;}}function
edit_type($y,array$l,array$eb,array$Xc=array(),array$Dc=array()){$U=$l["type"];echo"<td><select name='".h($y)."[type]' class='type' aria-labelledby='label-type'>";if($U&&!array_key_exists($U,driver()->types())&&!isset($Xc[$U])&&!in_array($U,$Dc))$Dc[]=$U;$zh=driver()->structuredTypes();if($Xc)$zh[lang(101)]=$Xc;echo
optionlist(array_merge($Dc,$zh),$U),"</select><td>","<input name='".h($y)."[length]' value='".h($l["length"])."' size='3'".(!$l["length"]&&preg_match('~var(char|binary)$~',$U)?" class='required'":"")." aria-labelledby='label-length'>","<td class='options'>",($eb?"<input list='collations' name='".h($y)."[collation]'".(preg_match('~(char|text|enum|set)$~',$U)?"":" class='hidden'")." value='".h($l["collation"])."' placeholder='(".lang(102).")'>":''),(driver()->unsigned?"<select name='".h($y)."[unsigned]'".(!$U||preg_match(number_type(),$U)?"":" class='hidden'").'><option>'.optionlist(driver()->unsigned,$l["unsigned"]).'</select>':''),(isset($l['on_update'])?"<select name='".h($y)."[on_update]'".(preg_match('~timestamp|datetime~',$U)?"":" class='hidden'").'>'.optionlist(array(""=>"(".lang(103).")","CURRENT_TIMESTAMP"),(preg_match('~^CURRENT_TIMESTAMP~i',$l["on_update"])?"CURRENT_TIMESTAMP":$l["on_update"])).'</select>':''),($Xc?"<select name='".h($y)."[on_delete]'".(preg_match("~`~",$U)?"":" class='hidden'")."><option value=''>(".lang(104).")".optionlist(explode("|",driver()->onActions),$l["on_delete"])."</select> ":" ");}function
process_length($ve){$pc=driver()->enumLength;return(preg_match("~^\\s*\\(?\\s*$pc(?:\\s*,\\s*$pc)*+\\s*\\)?\\s*\$~",$ve)&&preg_match_all("~$pc~",$ve,$De)?"(".implode(",",$De[0]).")":preg_replace('~^[0-9].*~','(\0)',preg_replace('~[^-0-9,+()[\]]~','',$ve)));}function
process_type(array$l,$cb="COLLATE"){return" $l[type]".process_length($l["length"]).(preg_match(number_type(),$l["type"])&&in_array($l["unsigned"],driver()->unsigned)?" $l[unsigned]":"").(preg_match('~char|text|enum|set~',$l["type"])&&$l["collation"]?" $cb ".(JUSH=="mssql"?$l["collation"]:q($l["collation"])):"");}function
process_field(array$l,array$si){if($l["on_update"])$l["on_update"]=str_ireplace("current_timestamp()","CURRENT_TIMESTAMP",$l["on_update"]);return
array(idf_escape(trim($l["field"])),process_type($si),($l["null"]?" NULL":" NOT NULL"),default_value($l),(preg_match('~timestamp|datetime~',$l["type"])&&$l["on_update"]?" ON UPDATE $l[on_update]":""),(support("comment")&&$l["comment"]!=""?" COMMENT ".q($l["comment"]):""),($l["auto_increment"]?auto_increment():null),);}function
default_value(array$l){if($l["default"]===null)return"";$Jb=str_replace("\r","",$l["default"]);$ed=$l["generated"];return(in_array($ed,driver()->generated)?(JUSH=="mssql"?" AS ($Jb)".($ed=="VIRTUAL"?"":" $ed"):" GENERATED ALWAYS AS ($Jb) $ed"):" DEFAULT ".(!preg_match('~^GENERATED ~i',$Jb)&&(preg_match('~char|binary|text|json|enum|set~',$l["type"])||preg_match('~^(?![a-z])~i',$Jb))?(JUSH=="sql"&&preg_match('~text|json~',$l["type"])?"(".q($Jb).")":q($Jb)):str_ireplace("current_timestamp()","CURRENT_TIMESTAMP",(JUSH=="sqlite"?"($Jb)":$Jb))));}function
type_class($U){foreach(array('char'=>'text','date'=>'time|year','binary'=>'blob','enum'=>'set',)as$y=>$X){if(preg_match("~$y|$X~",$U))return" class='$y'";}}function
edit_fields(array$m,array$eb,$U="TABLE",array$Xc=array()){$m=array_values($m);$Lb=(($_POST?$_POST["defaults"]:get_setting("defaults"))?"":" class='hidden'");$jb=(($_POST?$_POST["comments"]:get_setting("comments"))?"":" class='hidden'");echo"<thead><tr>\n",($U=="PROCEDURE"?"<td>":""),"<th id='label-name'>".($U=="TABLE"?lang(105):lang(106)),"<td id='label-type'>".lang(47)."<textarea id='enum-edit' rows='4' cols='12' wrap='off' style='display: none;'></textarea>".script("qs('#enum-edit').onblur = editingLengthBlur;"),"<td id='label-length'>".lang(107),"<td>".lang(108);if($U=="TABLE")echo"<td id='label-null'>NULL\n","<td><input type='radio' name='auto_increment_col' value=''><abbr id='label-ai' title='".lang(49)."'>AI</abbr>",doc_link(array('pgsql'=>"datatype-numeric.html#DATATYPE-SERIAL",)),"<td id='label-default'$Lb>".lang(50),(support("comment")?"<td id='label-comment'$jb>".lang(48):"");echo"<td>".icon("plus","add[".(support("move_col")?0:count($m))."]","+",lang(109)),"</thead>\n<tbody>\n",script("mixin(qsl('tbody'), {onclick: editingClick, onkeydown: editingKeydown, oninput: editingInput});");foreach($m
as$s=>$l){$s++;$Bf=$l[($_POST?"orig":"field")];$Ub=(isset($_POST["add"][$s-1])||(isset($l["field"])&&!idx($_POST["drop_col"],$s)))&&(support("drop_col")||$Bf=="");echo"<tr".($Ub?"":" style='display: none;'").">\n",($U=="PROCEDURE"?"<td>".html_select("fields[$s][inout]",explode("|",driver()->inout),$l["inout"]):"")."<th>";if($Ub)echo"<input name='fields[$s][field]' value='".h($l["field"])."' data-maxlength='64' autocapitalize='off' aria-labelledby='label-name'".(isset($_POST["add"][$s-1])?" autofocus":"").">";echo
input_hidden("fields[$s][orig]",$Bf);edit_type("fields[$s]",$l,$eb,$Xc);if($U=="TABLE"){echo"<td>".checkbox("fields[$s][null]",1,$l["null"],"","","block","label-null"),"<td><label class='block'><input type='radio' name='auto_increment_col' value='$s'".($l["auto_increment"]?" checked":"")." aria-labelledby='label-ai'></label>","<td$Lb>".(driver()->generated?html_select("fields[$s][generated]",array_merge(array("","DEFAULT"),driver()->generated),$l["generated"])." ":checkbox("fields[$s][generated]",1,$l["generated"],"","","","label-default"));$b=" name='fields[$s][default]' aria-labelledby='label-default'";$Y=h($l["default"]);echo(preg_match('~\n~',$l["default"])?"<textarea$b rows='2' cols='30' style='vertical-align: bottom;'>\n$Y</textarea>":"<input$b value='$Y'>"),(support("comment")?"<td$jb><input name='fields[$s][comment]' value='".h($l["comment"])."' data-maxlength='".(min_version(5.5)?1024:255)."' aria-labelledby='label-comment'>":"");}echo"<td>",(support("move_col")?icon("plus","add[$s]","+",lang(109))." ".icon("up","up[$s]","↑",lang(110))." ".icon("down","down[$s]","↓",lang(111))." ":""),($Bf==""||support("drop_col")?icon("cross","drop_col[$s]","x",lang(112)):"");}}function
process_fields(array&$m){$lf=0;if($_POST["up"]){$pe=0;foreach($m
as$y=>$l){if(key($_POST["up"])==$y){unset($m[$y]);array_splice($m,$pe,0,array($l));break;}if(isset($l["field"]))$pe=$lf;$lf++;}}elseif($_POST["down"]){$Zc=false;foreach($m
as$y=>$l){if(isset($l["field"])&&$Zc){unset($m[key($_POST["down"])]);array_splice($m,$lf,0,array($Zc));break;}if(key($_POST["down"])==$y)$Zc=$l;$lf++;}}elseif($_POST["add"]){$m=array_values($m);array_splice($m,key($_POST["add"]),0,array(array()));}elseif(!$_POST["drop_col"])return
false;return
true;}function
normalize_enum(array$B){$X=$B[0];return"'".str_replace("'","''",addcslashes(stripcslashes(str_replace($X[0].$X[0],$X[0],substr($X,1,-1))),'\\'))."'";}function
grant($fd,array$qg,$d,$of){if(!$qg)return
true;if($qg==array("ALL PRIVILEGES","GRANT OPTION"))return($fd=="GRANT"?queries("$fd ALL PRIVILEGES$of WITH GRANT OPTION"):queries("$fd ALL PRIVILEGES$of")&&queries("$fd GRANT OPTION$of"));return
queries("$fd ".preg_replace('~(GRANT OPTION)\([^)]*\)~','\1',implode("$d, ",$qg).$d).$of);}function
drop_create($Yb,$h,$Zb,$Sh,$ac,$A,$Se,$Qe,$Re,$nf,$ef){if($_POST["drop"])query_redirect($Yb,$A,$Se);elseif($nf=="")query_redirect($h,$A,$Re);elseif($nf!=$ef){$wb=queries($h);queries_redirect($A,$Qe,$wb&&queries($Yb));if($wb)queries($Zb);}else
queries_redirect($A,$Qe,queries($Sh)&&queries($ac)&&queries($Yb)&&queries($h));}function
create_trigger($of,array$L){$Yh=" $L[Timing] $L[Event]".(preg_match('~ OF~',$L["Event"])?" $L[Of]":"");return"CREATE TRIGGER ".idf_escape($L["Trigger"]).(JUSH=="mssql"?$of.$Yh:$Yh.$of).rtrim(" $L[Type]\n$L[Statement]",";").";";}function
create_routine($Mg,array$L){$P=array();$m=(array)$L["fields"];ksort($m);foreach($m
as$l){if($l["field"]!="")$P[]=(preg_match("~^(".driver()->inout.")\$~",$l["inout"])?"$l[inout] ":"").idf_escape($l["field"]).process_type($l,"CHARACTER SET");}$Nb=rtrim($L["definition"],";");return"CREATE $Mg ".idf_escape(trim($L["name"]))." (".implode(", ",$P).")".($Mg=="FUNCTION"?" RETURNS".process_type($L["returns"],"CHARACTER SET"):"").($L["language"]?" LANGUAGE $L[language]":"").(JUSH=="pgsql"?" AS ".q($Nb):"\n$Nb;");}function
remove_definer($I){return
preg_replace('~^([A-Z =]+) DEFINER=`'.preg_replace('~@(.*)~','`@`(%|\1)',logged_user()).'`~','\1',$I);}function
format_foreign_key(array$o){$j=$o["db"];$if=$o["ns"];return" FOREIGN KEY (".implode(", ",array_map('Adminer\idf_escape',$o["source"])).") REFERENCES ".($j!=""&&$j!=$_GET["db"]?idf_escape($j).".":"").($if!=""&&$if!=$_GET["ns"]?idf_escape($if).".":"").idf_escape($o["table"])." (".implode(", ",array_map('Adminer\idf_escape',$o["target"])).")".(preg_match("~^(".driver()->onActions.")\$~",$o["on_delete"])?" ON DELETE $o[on_delete]":"").(preg_match("~^(".driver()->onActions.")\$~",$o["on_update"])?" ON UPDATE $o[on_update]":"").($o["deferrable"]?" $o[deferrable]":"");}function
tar_file($n,$di){$K=pack("a100a8a8a8a12a12",$n,644,0,0,decoct($di->size),decoct(time()));$Va=8*32;for($s=0;$s<strlen($K);$s++)$Va+=ord($K[$s]);$K
.=sprintf("%06o",$Va)."\0 ";echo$K,str_repeat("\0",512-strlen($K));$di->send();echo
str_repeat("\0",511-($di->size+511)%512);}function
doc_link(array$Xf,$Th="<sup>?</sup>"){$fh=connection()->server_info;$Ri=preg_replace('~^(\d\.?\d).*~s','\1',$fh);$Fi=array('sql'=>"https://dev.mysql.com/doc/refman/$Ri/en/",'sqlite'=>"https://www.sqlite.org/",'pgsql'=>"https://www.postgresql.org/docs/".(connection()->flavor=='cockroach'?"current":$Ri)."/",'mssql'=>"https://learn.microsoft.com/en-us/sql/",'oracle'=>"https://www.oracle.com/pls/topic/lookup?ctx=db".preg_replace('~^.* (\d+)\.(\d+)\.\d+\.\d+\.\d+.*~s','\1\2',$fh)."&id=",);if(connection()->flavor=='maria'){$Fi['sql']="https://mariadb.com/kb/en/";$Xf['sql']=(isset($Xf['mariadb'])?$Xf['mariadb']:str_replace(".html","/",$Xf['sql']));}return($Xf[JUSH]?"<a href='".h($Fi[JUSH].$Xf[JUSH].(JUSH=='mssql'?"?view=sql-server-ver$Ri":""))."'".target_blank().">$Th</a>":"");}function
db_size($j){if(!connection()->select_db($j))return"?";$K=0;foreach(table_status()as$S)$K+=$S["Data_length"]+$S["Index_length"];return
format_number($K);}function
set_utf8mb4($h){static$P=false;if(!$P&&preg_match('~\butf8mb4~i',$h)){$P=true;echo"SET NAMES ".charset(connection()).";\n\n";}}if(isset($_GET["status"]))$_GET["variables"]=$_GET["status"];if(isset($_GET["import"]))$_GET["sql"]=$_GET["import"];if(!(DB!=""?connection()->select_db(DB):isset($_GET["sql"])||isset($_GET["dump"])||isset($_GET["database"])||isset($_GET["processlist"])||isset($_GET["privileges"])||isset($_GET["user"])||isset($_GET["variables"])||$_GET["script"]=="connect"||$_GET["script"]=="kill")){if(DB!=""||$_GET["refresh"]){restart_session();set_session("dbs",null);}if(DB!=""){header("HTTP/1.1 404 Not Found");page_header(lang(35).": ".h(DB),lang(113),true);}else{if($_POST["db"]&&!$k)queries_redirect(substr(ME,0,-1),lang(114),drop_databases($_POST["db"]));page_header(lang(115),$k,false);echo"<p class='links'>\n";foreach(array('database'=>lang(116),'privileges'=>lang(69),'processlist'=>lang(117),'variables'=>lang(118),'status'=>lang(119),)as$y=>$X){if(support($y))echo"<a href='".h(ME)."$y='>$X</a>\n";}echo"<p>".lang(120,get_driver(DRIVER),"<b>".h(connection()->server_info)."</b>","<b>".connection()->extension."</b>")."\n","<p>".lang(121,"<b>".h(logged_user())."</b>")."\n";$i=adminer()->databases();if($i){$Sg=support("scheme");$eb=collations();echo"<form action='' method='post'>\n","<table class='checkable odds'>\n",script("mixin(qsl('table'), {onclick: tableClick, ondblclick: partialArg(tableClick, true)});"),"<thead><tr>".(support("database")?"<td>":"")."<th>".lang(35).(get_session("dbs")!==null?" - <a href='".h(ME)."refresh=1'>".lang(122)."</a>":"")."<td>".lang(123)."<td>".lang(124)."<td>".lang(125)." - <a href='".h(ME)."dbsize=1'>".lang(126)."</a>".script("qsl('a').onclick = partial(ajaxSetHtml, '".js_escape(ME)."script=connect');","")."</thead>\n";$i=($_GET["dbsize"]?count_tables($i):array_flip($i));foreach($i
as$j=>$T){$Lg=h(ME)."db=".urlencode($j);$t=h("Db-".$j);echo"<tr>".(support("database")?"<td>".checkbox("db[]",$j,in_array($j,(array)$_POST["db"]),"","","",$t):""),"<th><a href='$Lg' id='$t'>".h($j)."</a>";$db=h(db_collation($j,$eb));echo"<td>".(support("database")?"<a href='$Lg".($Sg?"&amp;ns=":"")."&amp;database=' title='".lang(65)."'>$db</a>":$db),"<td align='right'><a href='$Lg&amp;schema=' id='tables-".h($j)."' title='".lang(68)."'>".($_GET["dbsize"]?$T:"?")."</a>","<td align='right' id='size-".h($j)."'>".($_GET["dbsize"]?db_size($j):"?"),"\n";}echo"</table>\n",(support("database")?"<div class='footer'><div>\n"."<fieldset><legend>".lang(127)." <span id='selected'></span></legend><div>\n".input_hidden("all").script("qsl('input').onclick = function () { selectCount('selected', formChecked(this, /^db/)); };")."<input type='submit' name='drop' value='".lang(128)."'>".confirm()."\n"."</div></fieldset>\n"."</div></div>\n":""),input_token(),"</form>\n",script("tableCheck();");}if(!empty(adminer()->plugins)){echo"<div class='plugins'>\n","<h3>".lang(129)."</h3>\n<ul>\n";foreach(adminer()->plugins
as$cg){$Qb=(method_exists($cg,'description')?$cg->description():"");if(!$Qb){$Cg=new
\ReflectionObject($cg);if(preg_match('~^/[\s*]+(.+)~',$Cg->getDocComment(),$B))$Qb=$B[1];}$Tg=(method_exists($cg,'screenshot')?$cg->screenshot():"");echo"<li><b>".get_class($cg)."</b>".h($Qb?": $Qb":"").($Tg?" (<a href='".h($Tg)."'".target_blank().">".lang(130)."</a>)":"")."\n";}echo"</ul>\n";adminer()->pluginsLinks();echo"</div>\n";}}page_footer("db");exit;}if(support("scheme")){if(DB!=""&&$_GET["ns"]!==""){if(!isset($_GET["ns"]))redirect(preg_replace('~ns=[^&]*&~','',ME)."ns=".get_schema());if(!set_schema($_GET["ns"])){header("HTTP/1.1 404 Not Found");page_header(lang(77).": ".h($_GET["ns"]),lang(131),true);page_footer("ns");exit;}}}adminer()->afterConnect();class
TmpFile{private$handler;var$size;function
__construct(){$this->handler=tmpfile();}function
write($sb){$this->size+=strlen($sb);fwrite($this->handler,$sb);}function
send(){fseek($this->handler,0);fpassthru($this->handler);fclose($this->handler);}}if(isset($_GET["select"])&&($_POST["edit"]||$_POST["clone"])&&!$_POST["save"])$_GET["edit"]=$_GET["select"];if(isset($_GET["callf"]))$_GET["call"]=$_GET["callf"];if(isset($_GET["function"]))$_GET["procedure"]=$_GET["function"];if(isset($_GET["download"])){$a=$_GET["download"];$m=fields($a);header("Content-Type: application/octet-stream");header("Content-Disposition: attachment; filename=".friendly_url("$a-".implode("_",$_GET["where"])).".".friendly_url($_GET["field"]));$N=array(idf_escape($_GET["field"]));$J=driver()->select($a,$N,array(where($_GET,$m)),$N);$L=($J?$J->fetch_row():array());echo
driver()->value($L[0],$m[$_GET["field"]]);exit;}elseif(isset($_GET["table"])){$a=$_GET["table"];$m=fields($a);if(!$m)$k=error()?:lang(11);$S=table_status1($a);$D=adminer()->tableName($S);page_header(($m&&is_view($S)?$S['Engine']=='materialized view'?lang(132):lang(133):lang(134)).": ".($D!=""?$D:h($a)),$k);$Kg=array();foreach($m
as$y=>$l)$Kg+=$l["privileges"];adminer()->selectLinks($S,(isset($Kg["insert"])||!support("table")?"":null));$ib=$S["Comment"];if($ib!="")echo"<p class='nowrap'>".lang(48).": ".h($ib)."\n";if($m)adminer()->tableStructurePrint($m,$S);function
tables_links(array$T){echo"<ul>\n";foreach($T
as$L){$_=preg_replace('~ns=[^&]*~',"ns=".urlencode($L["ns"]),ME);echo"<li><a href='".h($_."table=".urlencode($L["table"]))."'>".($L["ns"]!=$_GET["ns"]?"<b>".h($L["ns"])."</b>.":"").h($L["table"])."</a>";}echo"</ul>\n";}$Rd=driver()->inheritsFrom($a);if($Rd){echo"<h3>".lang(135)."</h3>\n";tables_links($Rd);}if(support("indexes")&&driver()->supportsIndex($S)){echo"<h3 id='indexes'>".lang(136)."</h3>\n";$w=indexes($a);if($w)adminer()->tableIndexesPrint($w,$S);echo'<p class="links"><a href="'.h(ME).'indexes='.urlencode($a).'">'.lang(137)."</a>\n";}if(!is_view($S)){if(fk_support($S)){echo"<h3 id='foreign-keys'>".lang(101)."</h3>\n";$Xc=foreign_keys($a);if($Xc){echo"<table>\n","<thead><tr><th>".lang(138)."<td>".lang(139)."<td>".lang(104)."<td>".lang(103)."<td></thead>\n";foreach($Xc
as$D=>$o){echo"<tr title='".h($D)."'>","<th><i>".implode("</i>, <i>",array_map('Adminer\h',$o["source"]))."</i>";$_=($o["db"]!=""?preg_replace('~db=[^&]*~',"db=".urlencode($o["db"]),ME):($o["ns"]!=""?preg_replace('~ns=[^&]*~',"ns=".urlencode($o["ns"]),ME):ME));echo"<td><a href='".h($_."table=".urlencode($o["table"]))."'>".($o["db"]!=""&&$o["db"]!=DB?"<b>".h($o["db"])."</b>.":"").($o["ns"]!=""&&$o["ns"]!=$_GET["ns"]?"<b>".h($o["ns"])."</b>.":"").h($o["table"])."</a>","(<i>".implode("</i>, <i>",array_map('Adminer\h',$o["target"]))."</i>)","<td>".h($o["on_delete"]),"<td>".h($o["on_update"]),'<td><a href="'.h(ME.'foreign='.urlencode($a).'&name='.urlencode($D)).'">'.lang(140).'</a>',"\n";}echo"</table>\n";}echo'<p class="links"><a href="'.h(ME).'foreign='.urlencode($a).'">'.lang(141)."</a>\n";}if(support("check")){echo"<h3 id='checks'>".lang(142)."</h3>\n";$Ra=driver()->checkConstraints($a);if($Ra){echo"<table>\n";foreach($Ra
as$y=>$X)echo"<tr title='".h($y)."'>","<td><code class='jush-".JUSH."'>".h($X),"<td><a href='".h(ME.'check='.urlencode($a).'&name='.urlencode($y))."'>".lang(140)."</a>","\n";echo"</table>\n";}echo'<p class="links"><a href="'.h(ME).'check='.urlencode($a).'">'.lang(143)."</a>\n";}}if(support(is_view($S)?"view_trigger":"trigger")){echo"<h3 id='triggers'>".lang(144)."</h3>\n";$qi=triggers($a);if($qi){echo"<table>\n";foreach($qi
as$y=>$X)echo"<tr valign='top'><td>".h($X[0])."<td>".h($X[1])."<th>".h($y)."<td><a href='".h(ME.'trigger='.urlencode($a).'&name='.urlencode($y))."'>".lang(140)."</a>\n";echo"</table>\n";}echo'<p class="links"><a href="'.h(ME).'trigger='.urlencode($a).'">'.lang(145)."</a>\n";}$Qd=driver()->inheritedTables($a);if($Qd){echo"<h3 id='partitions'>".lang(146)."</h3>\n";$Qf=driver()->partitionsInfo($a);if($Qf)echo"<p><code class='jush-".JUSH."'>BY ".h("$Qf[partition_by]($Qf[partition])")."</code>\n";tables_links($Qd);}}elseif(isset($_GET["schema"])){page_header(lang(68),"",array(),h(DB.($_GET["ns"]?".$_GET[ns]":"")));$Ih=array();$Jh=array();$ca=($_GET["schema"]?:$_COOKIE["adminer_schema-".str_replace(".","_",DB)]);preg_match_all('~([^:]+):([-0-9.]+)x([-0-9.]+)(_|$)~',$ca,$De,PREG_SET_ORDER);foreach($De
as$s=>$B){$Ih[$B[1]]=array($B[2],$B[3]);$Jh[]="\n\t'".js_escape($B[1])."': [ $B[2], $B[3] ]";}$gi=0;$Da=-1;$Qg=array();$Bg=array();$te=array();$qa=driver()->allFields();foreach(table_status('',true)as$R=>$S){if(is_view($S))continue;$fg=0;$Qg[$R]["fields"]=array();foreach($qa[$R]as$l){$fg+=1.25;$l["pos"]=$fg;$Qg[$R]["fields"][$l["field"]]=$l;}$Qg[$R]["pos"]=($Ih[$R]?:array($gi,0));foreach(adminer()->foreignKeys($R)as$X){if(!$X["db"]){$re=$Da;if(idx($Ih[$R],1)||idx($Ih[$X["table"]],1))$re=min(idx($Ih[$R],1,0),idx($Ih[$X["table"]],1,0))-1;else$Da-=.1;while($te[(string)$re])$re-=.0001;$Qg[$R]["references"][$X["table"]][(string)$re]=array($X["source"],$X["target"]);$Bg[$X["table"]][$R][(string)$re]=$X["target"];$te[(string)$re]=true;}}$gi=max($gi,$Qg[$R]["pos"][0]+2.5+$fg);}echo'<div id="schema" style="height: ',$gi,'em;">
<script',nonce(),'>
qs(\'#schema\').onselectstart = () => false;
const tablePos = {',implode(",",$Jh)."\n",'};
const em = qs(\'#schema\').offsetHeight / ',$gi,';
document.onmousemove = schemaMousemove;
document.onmouseup = partialArg(schemaMouseup, \'',js_escape(DB),'\');
</script>
';foreach($Qg
as$D=>$R){echo"<div class='table' style='top: ".$R["pos"][0]."em; left: ".$R["pos"][1]."em;'>",'<a href="'.h(ME).'table='.urlencode($D).'"><b>'.h($D)."</b></a>",script("qsl('div').onmousedown = schemaMousedown;");foreach($R["fields"]as$l){$X='<span'.type_class($l["type"]).' title="'.h($l["type"].($l["length"]?"($l[length])":"").($l["null"]?" NULL":'')).'">'.h($l["field"]).'</span>';echo"<br>".($l["primary"]?"<i>$X</i>":$X);}foreach((array)$R["references"]as$Qh=>$Dg){foreach($Dg
as$re=>$zg){$se=$re-idx($Ih[$D],1);$s=0;foreach($zg[0]as$ph)echo"\n<div class='references' title='".h($Qh)."' id='refs$re-".($s++)."' style='left: $se"."em; top: ".$R["fields"][$ph]["pos"]."em; padding-top: .5em;'>"."<div style='border-top: 1px solid gray; width: ".(-$se)."em;'></div></div>";}}foreach((array)$Bg[$D]as$Qh=>$Dg){foreach($Dg
as$re=>$d){$se=$re-idx($Ih[$D],1);$s=0;foreach($d
as$Ph)echo"\n<div class='references arrow' title='".h($Qh)."' id='refd$re-".($s++)."' style='left: $se"."em; top: ".$R["fields"][$Ph]["pos"]."em;'>"."<div style='height: .5em; border-bottom: 1px solid gray; width: ".(-$se)."em;'></div>"."</div>";}}echo"\n</div>\n";}foreach($Qg
as$D=>$R){foreach((array)$R["references"]as$Qh=>$Dg){foreach($Dg
as$re=>$zg){$Ve=$gi;$Je=-10;foreach($zg[0]as$y=>$ph){$gg=$R["pos"][0]+$R["fields"][$ph]["pos"];$hg=$Qg[$Qh]["pos"][0]+$Qg[$Qh]["fields"][$zg[1][$y]]["pos"];$Ve=min($Ve,$gg,$hg);$Je=max($Je,$gg,$hg);}echo"<div class='references' id='refl$re' style='left: $re"."em; top: $Ve"."em; padding: .5em 0;'><div style='border-right: 1px solid gray; margin-top: 1px; height: ".($Je-$Ve)."em;'></div></div>\n";}}}echo'</div>
<p class="links"><a href="',h(ME."schema=".urlencode($ca)),'" id="schema-link">',lang(147),'</a>
';}elseif(isset($_GET["dump"])){$a=$_GET["dump"];if($_POST&&!$k){save_settings(array_intersect_key($_POST,array_flip(array("output","format","db_style","types","routines","events","table_style","auto_increment","triggers","data_style"))),"adminer_export");$T=array_flip((array)$_POST["tables"])+array_flip((array)$_POST["data"]);$Ac=dump_headers((count($T)==1?key($T):DB),(DB==""||count($T)>1));$de=preg_match('~sql~',$_POST["format"]);if($de){echo"-- Adminer ".VERSION." ".get_driver(DRIVER)." ".str_replace("\n"," ",connection()->server_info)." dump\n\n";if(JUSH=="sql"){echo"SET NAMES utf8;
SET time_zone = '+00:00';
SET foreign_key_checks = 0;
".($_POST["data_style"]?"SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO';
":"")."
";connection()->query("SET time_zone = '+00:00'");connection()->query("SET sql_mode = ''");}}$_h=$_POST["db_style"];$i=array(DB);if(DB==""){$i=$_POST["databases"];if(is_string($i))$i=explode("\n",rtrim(str_replace("\r","",$i),"\n"));}foreach((array)$i
as$j){adminer()->dumpDatabase($j);if(connection()->select_db($j)){if($de){if($_h)echo
use_sql($j,$_h).";\n\n";$Hf="";if($_POST["types"]){foreach(types()as$t=>$U){$qc=type_values($t);if($qc)$Hf
.=($_h!='DROP+CREATE'?"DROP TYPE IF EXISTS ".idf_escape($U).";;\n":"")."CREATE TYPE ".idf_escape($U)." AS ENUM ($qc);\n\n";else$Hf
.="-- Could not export type $U\n\n";}}if($_POST["routines"]){foreach(routines()as$L){$D=$L["ROUTINE_NAME"];$Mg=$L["ROUTINE_TYPE"];$h=create_routine($Mg,array("name"=>$D)+routine($L["SPECIFIC_NAME"],$Mg));set_utf8mb4($h);$Hf
.=($_h!='DROP+CREATE'?"DROP $Mg IF EXISTS ".idf_escape($D).";;\n":"")."$h;\n\n";}}if($_POST["events"]){foreach(get_rows("SHOW EVENTS",null,"-- ")as$L){$h=remove_definer(get_val("SHOW CREATE EVENT ".idf_escape($L["Name"]),3));set_utf8mb4($h);$Hf
.=($_h!='DROP+CREATE'?"DROP EVENT IF EXISTS ".idf_escape($L["Name"]).";;\n":"")."$h;;\n\n";}}echo($Hf&&JUSH=='sql'?"DELIMITER ;;\n\n$Hf"."DELIMITER ;\n\n":$Hf);}if($_POST["table_style"]||$_POST["data_style"]){$Ti=array();foreach(table_status('',true)as$D=>$S){$R=(DB==""||in_array($D,(array)$_POST["tables"]));$Cb=(DB==""||in_array($D,(array)$_POST["data"]));if($R||$Cb){$di=null;if($Ac=="tar"){$di=new
TmpFile;ob_start(array($di,'write'),1e5);}adminer()->dumpTable($D,($R?$_POST["table_style"]:""),(is_view($S)?2:0));if(is_view($S))$Ti[]=$D;elseif($Cb){$m=fields($D);adminer()->dumpData($D,$_POST["data_style"],"SELECT *".convert_fields($m,$m)." FROM ".table($D));}if($de&&$_POST["triggers"]&&$R&&($qi=trigger_sql($D)))echo"\nDELIMITER ;;\n$qi\nDELIMITER ;\n";if($Ac=="tar"){ob_end_flush();tar_file((DB!=""?"":"$j/")."$D.csv",$di);}elseif($de)echo"\n";}}if(function_exists('Adminer\foreign_keys_sql')){foreach(table_status('',true)as$D=>$S){$R=(DB==""||in_array($D,(array)$_POST["tables"]));if($R&&!is_view($S))echo
foreign_keys_sql($D);}}foreach($Ti
as$Si)adminer()->dumpTable($Si,$_POST["table_style"],1);if($Ac=="tar")echo
pack("x512");}}}adminer()->dumpFooter();exit;}page_header(lang(74),$k,($_GET["export"]!=""?array("table"=>$_GET["export"]):array()),h(DB));echo'
<form action="" method="post">
<table class="layout">
';$Gb=array('','USE','DROP+CREATE','CREATE');$Kh=array('','DROP+CREATE','CREATE');$Db=array('','TRUNCATE+INSERT','INSERT');if(JUSH=="sql")$Db[]='INSERT+UPDATE';$L=get_settings("adminer_export");if(!$L)$L=array("output"=>"text","format"=>"sql","db_style"=>(DB!=""?"":"CREATE"),"table_style"=>"DROP+CREATE","data_style"=>"INSERT");if(!isset($L["events"])){$L["routines"]=$L["events"]=($_GET["dump"]=="");$L["triggers"]=$L["table_style"];}echo"<tr><th>".lang(148)."<td>".html_radios("output",adminer()->dumpOutput(),$L["output"])."\n","<tr><th>".lang(149)."<td>".html_radios("format",adminer()->dumpFormat(),$L["format"])."\n",(JUSH=="sqlite"?"":"<tr><th>".lang(35)."<td>".html_select('db_style',$Gb,$L["db_style"]).(support("type")?checkbox("types",1,$L["types"],lang(6)):"").(support("routine")?checkbox("routines",1,$L["routines"],lang(70)):"").(support("event")?checkbox("events",1,$L["events"],lang(72)):"")),"<tr><th>".lang(124)."<td>".html_select('table_style',$Kh,$L["table_style"]).checkbox("auto_increment",1,$L["auto_increment"],lang(49)).(support("trigger")?checkbox("triggers",1,$L["triggers"],lang(144)):""),"<tr><th>".lang(150)."<td>".html_select('data_style',$Db,$L["data_style"]),'</table>
<p><input type="submit" value="',lang(74),'">
',input_token(),'
<table>
',script("qsl('table').onclick = dumpClick;");$lg=array();if(DB!=""){$Ta=($a!=""?"":" checked");echo"<thead><tr>","<th style='text-align: left;'><label class='block'><input type='checkbox' id='check-tables'$Ta>".lang(124)."</label>".script("qs('#check-tables').onclick = partial(formCheck, /^tables\\[/);",""),"<th style='text-align: right;'><label class='block'>".lang(150)."<input type='checkbox' id='check-data'$Ta></label>".script("qs('#check-data').onclick = partial(formCheck, /^data\\[/);",""),"</thead>\n";$Ti="";$Mh=tables_list();foreach($Mh
as$D=>$U){$kg=preg_replace('~_.*~','',$D);$Ta=($a==""||$a==(substr($a,-1)=="%"?"$kg%":$D));$og="<tr><td>".checkbox("tables[]",$D,$Ta,$D,"","block");if($U!==null&&!preg_match('~table~i',$U))$Ti
.="$og\n";else
echo"$og<td align='right'><label class='block'><span id='Rows-".h($D)."'></span>".checkbox("data[]",$D,$Ta)."</label>\n";$lg[$kg]++;}echo$Ti;if($Mh)echo
script("ajaxSetHtml('".js_escape(ME)."script=db');");}else{echo"<thead><tr><th style='text-align: left;'>","<label class='block'><input type='checkbox' id='check-databases'".($a==""?" checked":"").">".lang(35)."</label>",script("qs('#check-databases').onclick = partial(formCheck, /^databases\\[/);",""),"</thead>\n";$i=adminer()->databases();if($i){foreach($i
as$j){if(!information_schema($j)){$kg=preg_replace('~_.*~','',$j);echo"<tr><td>".checkbox("databases[]",$j,$a==""||$a=="$kg%",$j,"","block")."\n";$lg[$kg]++;}}}else
echo"<tr><td><textarea name='databases' rows='10' cols='20'></textarea>";}echo'</table>
</form>
';$Nc=true;foreach($lg
as$y=>$X){if($y!=""&&$X>1){echo($Nc?"<p>":" ")."<a href='".h(ME)."dump=".urlencode("$y%")."'>".h($y)."</a>";$Nc=false;}}}elseif(isset($_GET["sql"])){if(!$k&&$_POST["export"]){save_settings(array("output"=>$_POST["output"],"format"=>$_POST["format"]),"adminer_import");dump_headers("sql");if($_POST["format"]=="sql")echo"$_POST[query]\n";else{adminer()->dumpTable("","");adminer()->dumpData("","table",$_POST["query"]);adminer()->dumpFooter();}exit;}restart_session();$ud=&get_session("queries");$td=&$ud[DB];if(!$k&&$_POST["clear"]){$td=array();redirect(remove_from_uri("history"));}stop_session();page_header((isset($_GET["import"])?lang(73):lang(62)),$k);$ye='--'.(JUSH=='sql'?' ':'');if(!$k&&$_POST){$p=false;if(!isset($_GET["import"]))$I=$_POST["query"];elseif($_POST["webfile"]){$th=adminer()->importServerPath();$p=@fopen((file_exists($th)?$th:"compress.zlib://$th.gz"),"rb");$I=($p?fread($p,1e6):false);}else$I=get_file("sql_file",true,";");if(is_string($I)){if(function_exists('memory_get_usage')&&($Oe=ini_bytes("memory_limit"))!="-1")@ini_set("memory_limit",max($Oe,strval(2*strlen($I)+memory_get_usage()+8e6)));if($I!=""&&strlen($I)<1e6){$H=$I.(preg_match("~;[ \t\r\n]*\$~",$I)?"":";");if(!$td||first(end($td))!=$H){restart_session();$td[]=array($H,time());set_session("queries",$ud);stop_session();}}$qh="(?:\\s|/\\*[\s\S]*?\\*/|(?:#|$ye)[^\n]*\n?|--\r?\n)";$Ob=driver()->delimiter;$lf=0;$kc=true;$g=connect();if($g&&DB!=""){$g->select_db(DB);if($_GET["ns"]!="")set_schema($_GET["ns"],$g);}$hb=0;$sc=array();$Nf='[\'"'.(JUSH=="sql"?'`#':(JUSH=="sqlite"?'`[':(JUSH=="mssql"?'[':''))).']|/\*|'.$ye.'|$'.(JUSH=="pgsql"?'|\$([a-zA-Z]\w*)?\$':'');$hi=microtime(true);$ka=get_settings("adminer_import");while($I!=""){if(!$lf&&preg_match("~^$qh*+DELIMITER\\s+(\\S+)~i",$I,$B)){$Ob=preg_quote($B[1]);$I=substr($I,strlen($B[0]));}elseif(!$lf&&JUSH=='pgsql'&&preg_match("~^($qh*+COPY\\s+)[^;]+\\s+FROM\\s+stdin;~i",$I,$B)){$Ob="\n\\\\\\.\r?\n";$lf=strlen($B[0]);}else{preg_match("($Ob\\s*|$Nf)",$I,$B,PREG_OFFSET_CAPTURE,$lf);list($Zc,$fg)=$B[0];if(!$Zc&&$p&&!feof($p))$I
.=fread($p,1e5);else{if(!$Zc&&rtrim($I)=="")break;$lf=$fg+strlen($Zc);if($Zc&&!preg_match("(^$Ob)",$Zc)){$Na=driver()->hasCStyleEscapes()||(JUSH=="pgsql"&&($fg>0&&strtolower($I[$fg-1])=="e"));$Yf=($Zc=='/*'?'\*/':($Zc=='['?']':(preg_match("~^$ye|^#~",$Zc)?"\n":preg_quote($Zc).($Na?'|\\\\.':''))));while(preg_match("($Yf|\$)s",$I,$B,PREG_OFFSET_CAPTURE,$lf)){$Pg=$B[0][0];if(!$Pg&&$p&&!feof($p))$I
.=fread($p,1e5);else{$lf=$B[0][1]+strlen($Pg);if(!$Pg||$Pg[0]!="\\")break;}}}else{$kc=false;$H=substr($I,0,$fg+($Ob[0]=="\n"?3:0));$hb++;$og="<pre id='sql-$hb'><code class='jush-".JUSH."'>".adminer()->sqlCommandQuery($H)."</code></pre>\n";if(JUSH=="sqlite"&&preg_match("~^$qh*+ATTACH\\b~i",$H,$B)){echo$og,"<p class='error'>".lang(151)."\n";$sc[]=" <a href='#sql-$hb'>$hb</a>";if($_POST["error_stops"])break;}else{if(!$_POST["only_errors"]){echo$og;ob_flush();flush();}$wh=microtime(true);if(connection()->multi_query($H)&&$g&&preg_match("~^$qh*+USE\\b~i",$H))$g->query($H);do{$J=connection()->store_result();if(connection()->error){echo($_POST["only_errors"]?$og:""),"<p class='error'>".lang(152).(connection()->errno?" (".connection()->errno.")":"").": ".error()."\n";$sc[]=" <a href='#sql-$hb'>$hb</a>";if($_POST["error_stops"])break
2;}else{$Wh=" <span class='time'>(".format_time($wh).")</span>".(strlen($H)<1000?" <a href='".h(ME)."sql=".urlencode(trim($H))."'>".lang(12)."</a>":"");$ma=connection()->affected_rows;$Wi=($_POST["only_errors"]?"":driver()->warnings());$Xi="warnings-$hb";if($Wi)$Wh
.=", <a href='#$Xi'>".lang(44)."</a>".script("qsl('a').onclick = partial(toggle, '$Xi');","");$zc=null;$Af=null;$_c="explain-$hb";if(is_object($J)){$z=$_POST["limit"];$Af=print_select_result($J,$g,array(),$z);if(!$_POST["only_errors"]){echo"<form action='' method='post'>\n";$kf=$J->num_rows;echo"<p class='sql-footer'>".($kf?($z&&$kf>$z?lang(153,$z):"").lang(154,$kf):""),$Wh;if($g&&preg_match("~^($qh|\\()*+SELECT\\b~i",$H)&&($zc=explain($g,$H)))echo", <a href='#$_c'>Explain</a>".script("qsl('a').onclick = partial(toggle, '$_c');","");$t="export-$hb";echo", <a href='#$t'>".lang(74)."</a>".script("qsl('a').onclick = partial(toggle, '$t');","")."<span id='$t' class='hidden'>: ".html_select("output",adminer()->dumpOutput(),$ka["output"])." ".html_select("format",adminer()->dumpFormat(),$ka["format"]).input_hidden("query",$H)."<input type='submit' name='export' value='".lang(74)."'>".input_token()."</span>\n"."</form>\n";}}else{if(preg_match("~^$qh*+(CREATE|DROP|ALTER)$qh++(DATABASE|SCHEMA)\\b~i",$H)){restart_session();set_session("dbs",null);stop_session();}if(!$_POST["only_errors"])echo"<p class='message' title='".h(connection()->info)."'>".lang(155,$ma)."$Wh\n";}echo($Wi?"<div id='$Xi' class='hidden'>\n$Wi</div>\n":"");if($zc){echo"<div id='$_c' class='hidden explain'>\n";print_select_result($zc,$g,$Af);echo"</div>\n";}}$wh=microtime(true);}while(connection()->next_result());}$I=substr($I,$lf);$lf=0;}}}}if($kc)echo"<p class='message'>".lang(156)."\n";elseif($_POST["only_errors"])echo"<p class='message'>".lang(157,$hb-count($sc))," <span class='time'>(".format_time($hi).")</span>\n";elseif($sc&&$hb>1)echo"<p class='error'>".lang(152).": ".implode("",$sc)."\n";}else
echo"<p class='error'>".upload_error($I)."\n";}echo'
<form action="" method="post" enctype="multipart/form-data" id="form">
';$xc="<input type='submit' value='".lang(158)."' title='Ctrl+Enter'>";if(!isset($_GET["import"])){$H=$_GET["sql"];if($_POST)$H=$_POST["query"];elseif($_GET["history"]=="all")$H=$td;elseif($_GET["history"]!="")$H=idx($td[$_GET["history"]],0);echo"<p>";textarea("query",$H,20);echo
script(($_POST?"":"qs('textarea').focus();\n")."qs('#form').onsubmit = partial(sqlSubmit, qs('#form'), '".js_escape(remove_from_uri("sql|limit|error_stops|only_errors|history"))."');"),"<p>";adminer()->sqlPrintAfter();echo"$xc\n",lang(159).": <input type='number' name='limit' class='size' value='".h($_POST?$_POST["limit"]:$_GET["limit"])."'>\n";}else{$jd=(extension_loaded("zlib")?"[.gz]":"");echo"<fieldset><legend>".lang(160)."</legend><div>",file_input("SQL$jd: <input type='file' name='sql_file[]' multiple>\n$xc"),"</div></fieldset>\n";$Dd=adminer()->importServerPath();if($Dd)echo"<fieldset><legend>".lang(161)."</legend><div>",lang(162,"<code>".h($Dd)."$jd</code>"),' <input type="submit" name="webfile" value="'.lang(163).'">',"</div></fieldset>\n";echo"<p>";}echo
checkbox("error_stops",1,($_POST?$_POST["error_stops"]:isset($_GET["import"])||$_GET["error_stops"]),lang(164))."\n",checkbox("only_errors",1,($_POST?$_POST["only_errors"]:isset($_GET["import"])||$_GET["only_errors"]),lang(165))."\n",input_token();if(!isset($_GET["import"])&&$td){print_fieldset("history",lang(166),$_GET["history"]!="");for($X=end($td);$X;$X=prev($td)){$y=key($td);list($H,$Wh,$fc)=$X;echo'<a href="'.h(ME."sql=&history=$y").'">'.lang(12)."</a>"." <span class='time' title='".@date('Y-m-d',$Wh)."'>".@date("H:i:s",$Wh)."</span>"." <code class='jush-".JUSH."'>".shorten_utf8(ltrim(str_replace("\n"," ",str_replace("\r","",preg_replace("~^(#|$ye).*~m",'',$H)))),80,"</code>").($fc?" <span class='time'>($fc)</span>":"")."<br>\n";}echo"<input type='submit' name='clear' value='".lang(167)."'>\n","<a href='".h(ME."sql=&history=all")."'>".lang(168)."</a>\n","</div></fieldset>\n";}echo'</form>
';}elseif(isset($_GET["edit"])){$a=$_GET["edit"];$m=fields($a);$Z=(isset($_GET["select"])?($_POST["check"]&&count($_POST["check"])==1?where_check($_POST["check"][0],$m):""):where($_GET,$m));$Ai=(isset($_GET["select"])?$_POST["edit"]:$Z);foreach($m
as$D=>$l){if((!$Ai&&!isset($l["privileges"]["insert"]))||adminer()->fieldName($l)=="")unset($m[$D]);}if($_POST&&!$k&&!isset($_GET["select"])){$A=$_POST["referer"];if($_POST["insert"])$A=($Ai?null:$_SERVER["REQUEST_URI"]);elseif(!preg_match('~^.+&select=.+$~',$A))$A=ME."select=".urlencode($a);$w=indexes($a);$wi=unique_array($_GET["where"],$w);$vg="\nWHERE $Z";if(isset($_POST["delete"]))queries_redirect($A,lang(169),driver()->delete($a,$vg,$wi?0:1));else{$P=array();foreach($m
as$D=>$l){$X=process_input($l);if($X!==false&&$X!==null)$P[idf_escape($D)]=$X;}if($Ai){if(!$P)redirect($A);queries_redirect($A,lang(170),driver()->update($a,$P,$vg,$wi?0:1));if(is_ajax()){page_headers();page_messages($k);exit;}}else{$J=driver()->insert($a,$P);$qe=($J?last_id($J):0);queries_redirect($A,lang(171,($qe?" $qe":"")),$J);}}}$L=null;if($Z){$N=array();foreach($m
as$D=>$l){if(isset($l["privileges"]["select"])){$va=($_POST["clone"]&&$l["auto_increment"]?"''":convert_field($l));$N[]=($va?"$va AS ":"").idf_escape($D);}}$L=array();if(!support("table"))$N=array("*");if($N){$J=driver()->select($a,$N,array($Z),$N,array(),(isset($_GET["select"])?2:1));if(!$J)$k=error();else{$L=$J->fetch_assoc();if(!$L)$L=false;}if(isset($_GET["select"])&&(!$L||$J->fetch_assoc()))$L=null;}}if(!support("table")&&!$m){if(!$Z){$J=driver()->select($a,array("*"),array(),array("*"));$L=($J?$J->fetch_assoc():false);if(!$L)$L=array(driver()->primary=>"");}if($L){foreach($L
as$y=>$X){if(!$Z)$L[$y]=null;$m[$y]=array("field"=>$y,"null"=>($y!=driver()->primary),"auto_increment"=>($y==driver()->primary));}}}if($_POST["save"])$L=(array)$_POST["fields"]+($L?$L:array());edit_form($a,$m,$L,$Ai,$k);}elseif(isset($_GET["create"])){$a=$_GET["create"];$Sf=driver()->partitionBy;$Wf=($Sf?driver()->partitionsInfo($a):array());$Ag=referencable_primary($a);$Xc=array();foreach($Ag
as$Gh=>$l)$Xc[str_replace("`","``",$Gh)."`".str_replace("`","``",$l["field"])]=$Gh;$Df=array();$S=array();if($a!=""){$Df=fields($a);$S=table_status1($a);if(count($S)<2)$k=lang(11);}$L=$_POST;$L["fields"]=(array)$L["fields"];if($L["auto_increment_col"])$L["fields"][$L["auto_increment_col"]]["auto_increment"]=true;if($_POST)save_settings(array("comments"=>$_POST["comments"],"defaults"=>$_POST["defaults"]));if($_POST&&!process_fields($L["fields"])&&!$k){if($_POST["drop"])queries_redirect(substr(ME,0,-1),lang(172),drop_tables(array($a)));else{$m=array();$qa=array();$Gi=false;$Vc=array();$Cf=reset($Df);$oa=" FIRST";foreach($L["fields"]as$y=>$l){$o=$Xc[$l["type"]];$si=($o!==null?$Ag[$o]:$l);if($l["field"]!=""){if(!$l["generated"])$l["default"]=null;$sg=process_field($l,$si);$qa[]=array($l["orig"],$sg,$oa);if(!$Cf||$sg!==process_field($Cf,$Cf)){$m[]=array($l["orig"],$sg,$oa);if($l["orig"]!=""||$oa)$Gi=true;}if($o!==null)$Vc[idf_escape($l["field"])]=($a!=""&&JUSH!="sqlite"?"ADD":" ").format_foreign_key(array('table'=>$Xc[$l["type"]],'source'=>array($l["field"]),'target'=>array($si["field"]),'on_delete'=>$l["on_delete"],));$oa=" AFTER ".idf_escape($l["field"]);}elseif($l["orig"]!=""){$Gi=true;$m[]=array($l["orig"]);}if($l["orig"]!=""){$Cf=next($Df);if(!$Cf)$oa="";}}$Uf=array();if(in_array($L["partition_by"],$Sf)){foreach($L
as$y=>$X){if(preg_match('~^partition~',$y))$Uf[$y]=$X;}foreach($Uf["partition_names"]as$y=>$D){if($D==""){unset($Uf["partition_names"][$y]);unset($Uf["partition_values"][$y]);}}$Uf["partition_names"]=array_values($Uf["partition_names"]);$Uf["partition_values"]=array_values($Uf["partition_values"]);if($Uf==$Wf)$Uf=array();}elseif(preg_match("~partitioned~",$S["Create_options"]))$Uf=null;$C=lang(173);if($a==""){cookie("adminer_engine",$L["Engine"]);$C=lang(174);}$D=trim($L["name"]);queries_redirect(ME.(support("table")?"table=":"select=").urlencode($D),$C,alter_table($a,$D,(JUSH=="sqlite"&&($Gi||$Vc)?$qa:$m),$Vc,($L["Comment"]!=$S["Comment"]?$L["Comment"]:null),($L["Engine"]&&$L["Engine"]!=$S["Engine"]?$L["Engine"]:""),($L["Collation"]&&$L["Collation"]!=$S["Collation"]?$L["Collation"]:""),($L["Auto_increment"]!=""?number($L["Auto_increment"]):""),$Uf));}}page_header(($a!=""?lang(42):lang(75)),$k,array("table"=>$a),h($a));if(!$_POST){$ti=driver()->types();$L=array("Engine"=>$_COOKIE["adminer_engine"],"fields"=>array(array("field"=>"","type"=>(isset($ti["int"])?"int":(isset($ti["integer"])?"integer":"")),"on_update"=>"")),"partition_names"=>array(""),);if($a!=""){$L=$S;$L["name"]=$a;$L["fields"]=array();if(!$_GET["auto_increment"])$L["Auto_increment"]="";foreach($Df
as$l){$l["generated"]=$l["generated"]?:(isset($l["default"])?"DEFAULT":"");$L["fields"][]=$l;}if($Sf){$L+=$Wf;$L["partition_names"][]="";$L["partition_values"][]="";}}}$eb=collations();if(is_array(reset($eb)))$eb=call_user_func_array('array_merge',array_values($eb));$mc=driver()->engines();foreach($mc
as$lc){if(!strcasecmp($lc,$L["Engine"])){$L["Engine"]=$lc;break;}}echo'
<form action="" method="post" id="form">
<p>
';if(support("columns")||$a==""){echo
lang(175).": <input name='name'".($a==""&&!$_POST?" autofocus":"")." data-maxlength='64' value='".h($L["name"])."' autocapitalize='off'>\n",($mc?html_select("Engine",array(""=>"(".lang(176).")")+$mc,$L["Engine"]).on_help("event.target.value",1).script("qsl('select').onchange = helpClose;")."\n":"");if($eb)echo"<datalist id='collations'>".optionlist($eb)."</datalist>\n",(preg_match("~sqlite|mssql~",JUSH)?"":"<input list='collations' name='Collation' value='".h($L["Collation"])."' placeholder='(".lang(102).")'>\n");echo"<input type='submit' value='".lang(16)."'>\n";}if(support("columns")){echo"<div class='scrollable'>\n","<table id='edit-fields' class='nowrap'>\n";edit_fields($L["fields"],$eb,"TABLE",$Xc);echo"</table>\n",script("editFields();"),"</div>\n<p>\n",lang(49).": <input type='number' name='Auto_increment' class='size' value='".h($L["Auto_increment"])."'>\n",checkbox("defaults",1,($_POST?$_POST["defaults"]:get_setting("defaults")),lang(177),"columnShow(this.checked, 5)","jsonly");$kb=($_POST?$_POST["comments"]:get_setting("comments"));echo(support("comment")?checkbox("comments",1,$kb,lang(48),"editingCommentsClick(this, true);","jsonly").' '.(preg_match('~\n~',$L["Comment"])?"<textarea name='Comment' rows='2' cols='20'".($kb?"":" class='hidden'").">".h($L["Comment"])."</textarea>":'<input name="Comment" value="'.h($L["Comment"]).'" data-maxlength="'.(min_version(5.5)?2048:60).'"'.($kb?"":" class='hidden'").'>'):''),'<p>
<input type="submit" value="',lang(16),'">
';}echo'
';if($a!="")echo'<input type="submit" name="drop" value="',lang(128),'">',confirm(lang(178,$a));if($Sf&&(JUSH=='sql'||$a=="")){$Tf=preg_match('~RANGE|LIST~',$L["partition_by"]);print_fieldset("partition",lang(179),$L["partition_by"]);echo"<p>".html_select("partition_by",array_merge(array(""),$Sf),$L["partition_by"]).on_help("event.target.value.replace(/./, 'PARTITION BY \$&')",1).script("qsl('select').onchange = partitionByChange;"),"(<input name='partition' value='".h($L["partition"])."'>)\n",lang(180).": <input type='number' name='partitions' class='size".($Tf||!$L["partition_by"]?" hidden":"")."' value='".h($L["partitions"])."'>\n","<table id='partition-table'".($Tf?"":" class='hidden'").">\n","<thead><tr><th>".lang(181)."<th>".lang(182)."</thead>\n";foreach($L["partition_names"]as$y=>$X)echo'<tr>','<td><input name="partition_names[]" value="'.h($X).'" autocapitalize="off">',($y==count($L["partition_names"])-1?script("qsl('input').oninput = partitionNameChange;"):''),'<td><input name="partition_values[]" value="'.h(idx($L["partition_values"],$y)).'">';echo"</table>\n</div></fieldset>\n";}echo
input_token(),'</form>
';}elseif(isset($_GET["indexes"])){$a=$_GET["indexes"];$Ld=array("PRIMARY","UNIQUE","INDEX");$S=table_status1($a,true);$Id=driver()->indexAlgorithms($S);if(preg_match('~MyISAM|M?aria'.(min_version(5.6,'10.0.5')?'|InnoDB':'').'~i',$S["Engine"]))$Ld[]="FULLTEXT";if(preg_match('~MyISAM|M?aria'.(min_version(5.7,'10.2.2')?'|InnoDB':'').'~i',$S["Engine"]))$Ld[]="SPATIAL";$w=indexes($a);$m=fields($a);$ng=array();if(JUSH=="mongo"){$ng=$w["_id_"];unset($Ld[0]);unset($w["_id_"]);}$L=$_POST;if($L)save_settings(array("index_options"=>$L["options"]));if($_POST&&!$k&&!$_POST["add"]&&!$_POST["drop_col"]){$ra=array();foreach($L["indexes"]as$v){$D=$v["name"];if(in_array($v["type"],$Ld)){$d=array();$we=array();$Rb=array();$Jd=(support("partial_indexes")?$v["partial"]:"");$Hd=(in_array($v["algorithm"],$Id)?$v["algorithm"]:"");$P=array();ksort($v["columns"]);foreach($v["columns"]as$y=>$c){if($c!=""){$ve=idx($v["lengths"],$y);$Pb=idx($v["descs"],$y);$P[]=($m[$c]?idf_escape($c):$c).($ve?"(".(+$ve).")":"").($Pb?" DESC":"");$d[]=$c;$we[]=($ve?:null);$Rb[]=$Pb;}}$yc=$w[$D];if($yc){ksort($yc["columns"]);ksort($yc["lengths"]);ksort($yc["descs"]);if($v["type"]==$yc["type"]&&array_values($yc["columns"])===$d&&(!$yc["lengths"]||array_values($yc["lengths"])===$we)&&array_values($yc["descs"])===$Rb&&$yc["partial"]==$Jd&&(!$Id||$yc["algorithm"]==$Hd)){unset($w[$D]);continue;}}if($d)$ra[]=array($v["type"],$D,$P,$Hd,$Jd);}}foreach($w
as$D=>$yc)$ra[]=array($yc["type"],$D,"DROP");if(!$ra)redirect(ME."table=".urlencode($a));queries_redirect(ME."table=".urlencode($a),lang(183),alter_indexes($a,$ra));}page_header(lang(136),$k,array("table"=>$a),h($a));$Kc=array_keys($m);if($_POST["add"]){foreach($L["indexes"]as$y=>$v){if($v["columns"][count($v["columns"])]!="")$L["indexes"][$y]["columns"][]="";}$v=end($L["indexes"]);if($v["type"]||array_filter($v["columns"],'strlen'))$L["indexes"][]=array("columns"=>array(1=>""));}if(!$L){foreach($w
as$y=>$v){$w[$y]["name"]=$y;$w[$y]["columns"][]="";}$w[]=array("columns"=>array(1=>""));$L["indexes"]=$w;}$we=(JUSH=="sql"||JUSH=="mssql");$kh=($_POST?$_POST["options"]:get_setting("index_options"));echo'
<form action="" method="post">
<div class="scrollable">
<table class="nowrap">
<thead><tr>
<th id="label-type">',lang(184);$Bd=" class='idxopts".($kh?"":" hidden")."'";if($Id)echo"<th id='label-algorithm'$Bd>".lang(185).doc_link(array('pgsql'=>'indexes-types.html',));echo'<th><input type="submit" class="wayoff">',lang(186).($we?"<span$Bd> (".lang(187).")</span>":"");if($we||support("descidx"))echo
checkbox("options",1,$kh,lang(108),"indexOptionsShow(this.checked)","jsonly")."\n";echo'<th id="label-name">',lang(188);if(support("partial_indexes"))echo"<th id='label-condition'$Bd>".lang(189);echo'<th><noscript>',icon("plus","add[0]","+",lang(109)),'</noscript>
</thead>
';if($ng){echo"<tr><td>PRIMARY<td>";foreach($ng["columns"]as$y=>$c)echo
select_input(" disabled",$Kc,$c),"<label><input disabled type='checkbox'>".lang(57)."</label> ";echo"<td><td>\n";}$x=1;foreach($L["indexes"]as$v){if(!$_POST["drop_col"]||$x!=key($_POST["drop_col"])){echo"<tr><td>".html_select("indexes[$x][type]",array(-1=>"")+$Ld,$v["type"],($x==count($L["indexes"])?"indexesAddRow.call(this);":""),"label-type");if($Id)echo"<td$Bd>".html_select("indexes[$x][algorithm]",array_merge(array(""),$Id),$v['algorithm'],"label-algorithm");echo"<td>";ksort($v["columns"]);$s=1;foreach($v["columns"]as$y=>$c){echo"<span>".select_input(" name='indexes[$x][columns][$s]' title='".lang(46)."'",($m&&($c==""||$m[$c])?array_combine($Kc,$Kc):array()),$c,"partial(".($s==count($v["columns"])?"indexesAddColumn":"indexesChangeColumn").", '".js_escape(JUSH=="sql"?"":$_GET["indexes"]."_")."')"),"<span$Bd>",($we?"<input type='number' name='indexes[$x][lengths][$s]' class='size' value='".h(idx($v["lengths"],$y))."' title='".lang(107)."'>":""),(support("descidx")?checkbox("indexes[$x][descs][$s]",1,idx($v["descs"],$y),lang(57)):""),"</span> </span>";$s++;}echo"<td><input name='indexes[$x][name]' value='".h($v["name"])."' autocapitalize='off' aria-labelledby='label-name'>\n";if(support("partial_indexes"))echo"<td$Bd><input name='indexes[$x][partial]' value='".h($v["partial"])."' autocapitalize='off' aria-labelledby='label-condition'>\n";echo"<td>".icon("cross","drop_col[$x]","x",lang(112)).script("qsl('button').onclick = partial(editingRemoveRow, 'indexes\$1[type]');");}$x++;}echo'</table>
</div>
<p>
<input type="submit" value="',lang(16),'">
',input_token(),'</form>
';}elseif(isset($_GET["database"])){$L=$_POST;if($_POST&&!$k&&!$_POST["add"]){$D=trim($L["name"]);if($_POST["drop"]){$_GET["db"]="";queries_redirect(remove_from_uri("db|database"),lang(190),drop_databases(array(DB)));}elseif(DB!==$D){if(DB!=""){$_GET["db"]=$D;queries_redirect(preg_replace('~\bdb=[^&]*&~','',ME)."db=".urlencode($D),lang(191),rename_database($D,$L["collation"]));}else{$i=explode("\n",str_replace("\r","",$D));$Ah=true;$pe="";foreach($i
as$j){if(count($i)==1||$j!=""){if(!create_database($j,$L["collation"]))$Ah=false;$pe=$j;}}restart_session();set_session("dbs",null);queries_redirect(ME."db=".urlencode($pe),lang(192),$Ah);}}else{if(!$L["collation"])redirect(substr(ME,0,-1));query_redirect("ALTER DATABASE ".idf_escape($D).(preg_match('~^[a-z0-9_]+$~i',$L["collation"])?" COLLATE $L[collation]":""),substr(ME,0,-1),lang(193));}}page_header(DB!=""?lang(65):lang(116),$k,array(),h(DB));$eb=collations();$D=DB;if($_POST)$D=$L["name"];elseif(DB!="")$L["collation"]=db_collation(DB,$eb);elseif(JUSH=="sql"){foreach(get_vals("SHOW GRANTS")as$fd){if(preg_match('~ ON (`(([^\\\\`]|``|\\\\.)*)%`\.\*)?~',$fd,$B)&&$B[1]){$D=stripcslashes(idf_unescape("`$B[2]`"));break;}}}echo'
<form action="" method="post">
<p>
',($_POST["add"]||strpos($D,"\n")?'<textarea autofocus name="name" rows="10" cols="40">'.h($D).'</textarea><br>':'<input name="name" autofocus value="'.h($D).'" data-maxlength="64" autocapitalize="off">')."\n".($eb?html_select("collation",array(""=>"(".lang(102).")")+$eb,$L["collation"]).'':""),'<input type="submit" value="',lang(16),'">
';if(DB!="")echo"<input type='submit' name='drop' value='".lang(128)."'>".confirm(lang(178,DB))."\n";elseif(!$_POST["add"]&&$_GET["db"]=="")echo
icon("plus","add[0]","+",lang(109))."\n";echo
input_token(),'</form>
';}elseif(isset($_GET["scheme"])){$L=$_POST;if($_POST&&!$k){$_=preg_replace('~ns=[^&]*&~','',ME)."ns=";if($_POST["drop"])query_redirect("DROP SCHEMA ".idf_escape($_GET["ns"]),$_,lang(194));else{$D=trim($L["name"]);$_
.=urlencode($D);if($_GET["ns"]=="")query_redirect("CREATE SCHEMA ".idf_escape($D),$_,lang(195));elseif($_GET["ns"]!=$D)query_redirect("ALTER SCHEMA ".idf_escape($_GET["ns"])." RENAME TO ".idf_escape($D),$_,lang(196));else
redirect($_);}}page_header($_GET["ns"]!=""?lang(66):lang(67),$k);if(!$L)$L["name"]=$_GET["ns"];echo'
<form action="" method="post">
<p><input name="name" autofocus value="',h($L["name"]),'" autocapitalize="off">
<input type="submit" value="',lang(16),'">
';if($_GET["ns"]!="")echo"<input type='submit' name='drop' value='".lang(128)."'>".confirm(lang(178,$_GET["ns"]))."\n";echo
input_token(),'</form>
';}elseif(isset($_GET["call"])){$ba=($_GET["name"]?:$_GET["call"]);page_header(lang(197).": ".h($ba),$k);$Mg=routine($_GET["call"],(isset($_GET["callf"])?"FUNCTION":"PROCEDURE"));$Ed=array();$Hf=array();foreach($Mg["fields"]as$s=>$l){if(substr($l["inout"],-3)=="OUT"&&JUSH=='sql')$Hf[$s]="@".idf_escape($l["field"])." AS ".idf_escape($l["field"]);if(!$l["inout"]||substr($l["inout"],0,2)=="IN")$Ed[]=$s;}if(!$k&&$_POST){$Oa=array();foreach($Mg["fields"]as$y=>$l){$X="";if(in_array($y,$Ed)){$X=process_input($l);if($X===false)$X="''";if(isset($Hf[$y]))connection()->query("SET @".idf_escape($l["field"])." = $X");}if(isset($Hf[$y]))$Oa[]="@".idf_escape($l["field"]);elseif(in_array($y,$Ed))$Oa[]=$X;}$I=(isset($_GET["callf"])?"SELECT ":"CALL ").(idx($Mg["returns"],"type")=="record"?"* FROM ":"").table($ba)."(".implode(", ",$Oa).")";$wh=microtime(true);$J=connection()->multi_query($I);$ma=connection()->affected_rows;echo
adminer()->selectQuery($I,$wh,!$J);if(!$J)echo"<p class='error'>".error()."\n";else{$g=connect();if($g)$g->select_db(DB);do{$J=connection()->store_result();if(is_object($J))print_select_result($J,$g);else
echo"<p class='message'>".lang(198,$ma)." <span class='time'>".@date("H:i:s")."</span>\n";}while(connection()->next_result());if($Hf)print_select_result(connection()->query("SELECT ".implode(", ",$Hf)));}}echo'
<form action="" method="post">
';if($Ed){echo"<table class='layout'>\n";foreach($Ed
as$y){$l=$Mg["fields"][$y];$D=$l["field"];echo"<tr><th>".adminer()->fieldName($l);$Y=idx($_POST["fields"],$D);if($Y!=""){if($l["type"]=="set")$Y=implode(",",$Y);}input($l,$Y,idx($_POST["function"],$D,""));echo"\n";}echo"</table>\n";}echo'<p>
<input type="submit" value="',lang(197),'">
',input_token(),'</form>
<pre>
';function
pre_tr($Pg){return
preg_replace('~^~m','<tr>',preg_replace('~\|~','<td>',preg_replace('~\|$~m',"",rtrim($Pg))));}$R='(\+--[-+]+\+\n)';$L='(\| .* \|\n)';echo
preg_replace_callback("~^$R?$L$R?($L*)$R?~m",function($B){$Oc=pre_tr($B[2]);return"<table>\n".($B[1]?"<thead>$Oc</thead>\n":$Oc).pre_tr($B[4])."\n</table>";},preg_replace('~(\n( -|mysql)&gt; )(.+)~',"\\1<code class='jush-sql'>\\3</code>",preg_replace('~(.+)\n---+\n~',"<b>\\1</b>\n",h($Mg['comment']))));echo'</pre>
';}elseif(isset($_GET["foreign"])){$a=$_GET["foreign"];$D=$_GET["name"];$L=$_POST;if($_POST&&!$k&&!$_POST["add"]&&!$_POST["change"]&&!$_POST["change-js"]){if(!$_POST["drop"]){$L["source"]=array_filter($L["source"],'strlen');ksort($L["source"]);$Ph=array();foreach($L["source"]as$y=>$X)$Ph[$y]=$L["target"][$y];$L["target"]=$Ph;}if(JUSH=="sqlite")$J=recreate_table($a,$a,array(),array(),array(" $D"=>($L["drop"]?"":" ".format_foreign_key($L))));else{$ra="ALTER TABLE ".table($a);$J=($D==""||queries("$ra DROP ".(JUSH=="sql"?"FOREIGN KEY ":"CONSTRAINT ").idf_escape($D)));if(!$L["drop"])$J=queries("$ra ADD".format_foreign_key($L));}queries_redirect(ME."table=".urlencode($a),($L["drop"]?lang(199):($D!=""?lang(200):lang(201))),$J);if(!$L["drop"])$k=lang(202);}page_header(lang(203),$k,array("table"=>$a),h($a));if($_POST){ksort($L["source"]);if($_POST["add"])$L["source"][]="";elseif($_POST["change"]||$_POST["change-js"])$L["target"]=array();}elseif($D!=""){$Xc=foreign_keys($a);$L=$Xc[$D];$L["source"][]="";}else{$L["table"]=$a;$L["source"]=array("");}echo'
<form action="" method="post">
';$ph=array_keys(fields($a));if($L["db"]!="")connection()->select_db($L["db"]);if($L["ns"]!=""){$Ef=get_schema();set_schema($L["ns"]);}$_g=array_keys(array_filter(table_status('',true),'Adminer\fk_support'));$Ph=array_keys(fields(in_array($L["table"],$_g)?$L["table"]:reset($_g)));$qf="this.form['change-js'].value = '1'; this.form.submit();";echo"<p><label>".lang(204).": ".html_select("table",$_g,$L["table"],$qf)."</label>\n";if(support("scheme")){$Rg=array_filter(adminer()->schemas(),function($Qg){return!preg_match('~^information_schema$~i',$Qg);});echo"<label>".lang(77).": ".html_select("ns",$Rg,$L["ns"]!=""?$L["ns"]:$_GET["ns"],$qf)."</label>";if($L["ns"]!="")set_schema($Ef);}elseif(JUSH!="sqlite"){$Hb=array();foreach(adminer()->databases()as$j){if(!information_schema($j))$Hb[]=$j;}echo"<label>".lang(76).": ".html_select("db",$Hb,$L["db"]!=""?$L["db"]:$_GET["db"],$qf)."</label>";}echo
input_hidden("change-js"),'<noscript><p><input type="submit" name="change" value="',lang(205),'"></noscript>
<table>
<thead><tr><th id="label-source">',lang(138),'<th id="label-target">',lang(139),'</thead>
';$x=0;foreach($L["source"]as$y=>$X){echo"<tr>","<td>".html_select("source[".(+$y)."]",array(-1=>"")+$ph,$X,($x==count($L["source"])-1?"foreignAddRow.call(this);":""),"label-source"),"<td>".html_select("target[".(+$y)."]",$Ph,idx($L["target"],$y),"","label-target");$x++;}echo'</table>
<p>
<label>',lang(104),': ',html_select("on_delete",array(-1=>"")+explode("|",driver()->onActions),$L["on_delete"]),'</label>
<label>',lang(103),': ',html_select("on_update",array(-1=>"")+explode("|",driver()->onActions),$L["on_update"]),'</label>
',(DRIVER==='pgsql'?html_select("deferrable",array('NOT DEFERRABLE','DEFERRABLE','DEFERRABLE INITIALLY DEFERRED'),$L["deferrable"]).' ':''),doc_link(array('pgsql'=>"sql-createtable.html#SQL-CREATETABLE-PARMS-REFERENCES",)),'<p>
<input type="submit" value="',lang(16),'">
<noscript><p><input type="submit" name="add" value="',lang(206),'"></noscript>
';if($D!="")echo'<input type="submit" name="drop" value="',lang(128),'">',confirm(lang(178,$D));echo
input_token(),'</form>
';}elseif(isset($_GET["view"])){$a=$_GET["view"];$L=$_POST;$Ff="VIEW";if(JUSH=="pgsql"&&$a!=""){$Q=table_status1($a);$Ff=strtoupper($Q["Engine"]);}if($_POST&&!$k){$D=trim($L["name"]);$va=" AS\n$L[select]";$A=ME."table=".urlencode($D);$C=lang(207);$U=($_POST["materialized"]?"MATERIALIZED VIEW":"VIEW");if(!$_POST["drop"]&&$a==$D&&JUSH!="sqlite"&&$U=="VIEW"&&$Ff=="VIEW")query_redirect((JUSH=="mssql"?"ALTER":"CREATE OR REPLACE")." VIEW ".table($D).$va,$A,$C);else{$Rh=$D."_adminer_".uniqid();drop_create("DROP $Ff ".table($a),"CREATE $U ".table($D).$va,"DROP $U ".table($D),"CREATE $U ".table($Rh).$va,"DROP $U ".table($Rh),($_POST["drop"]?substr(ME,0,-1):$A),lang(208),$C,lang(209),$a,$D);}}if(!$_POST&&$a!=""){$L=view($a);$L["name"]=$a;$L["materialized"]=($Ff!="VIEW");if(!$k)$k=error();}page_header(($a!=""?lang(41):lang(210)),$k,array("table"=>$a),h($a));echo'
<form action="" method="post">
<p>',lang(188),': <input name="name" value="',h($L["name"]),'" data-maxlength="64" autocapitalize="off">
',(support("materializedview")?" ".checkbox("materialized",1,$L["materialized"],lang(132)):""),'<p>';textarea("select",$L["select"]);echo'<p>
<input type="submit" value="',lang(16),'">
';if($a!="")echo'<input type="submit" name="drop" value="',lang(128),'">',confirm(lang(178,$a));echo
input_token(),'</form>
';}elseif(isset($_GET["procedure"])){$ba=($_GET["name"]?:$_GET["procedure"]);$Mg=(isset($_GET["function"])?"FUNCTION":"PROCEDURE");$L=$_POST;$L["fields"]=(array)$L["fields"];if($_POST&&!process_fields($L["fields"])&&!$k){$Bf=routine($_GET["procedure"],$Mg);$Rh="$L[name]_adminer_".uniqid();foreach($L["fields"]as$y=>$l){if($l["field"]=="")unset($L["fields"][$y]);}drop_create("DROP $Mg ".routine_id($ba,$Bf),create_routine($Mg,$L),"DROP $Mg ".routine_id($L["name"],$L),create_routine($Mg,array("name"=>$Rh)+$L),"DROP $Mg ".routine_id($Rh,$L),substr(ME,0,-1),lang(211),lang(212),lang(213),$ba,$L["name"]);}page_header(($ba!=""?(isset($_GET["function"])?lang(214):lang(215)).": ".h($ba):(isset($_GET["function"])?lang(216):lang(217))),$k);if(!$_POST){if($ba=="")$L["language"]="sql";else{$L=routine($_GET["procedure"],$Mg);$L["name"]=$ba;}}$eb=get_vals("SHOW CHARACTER SET");sort($eb);$Ng=routine_languages();echo($eb?"<datalist id='collations'>".optionlist($eb)."</datalist>":""),'
<form action="" method="post" id="form">
<p>',lang(188),': <input name="name" value="',h($L["name"]),'" data-maxlength="64" autocapitalize="off">
',($Ng?"<label>".lang(21).": ".html_select("language",$Ng,$L["language"])."</label>\n":""),'<input type="submit" value="',lang(16),'">
<div class="scrollable">
<table class="nowrap">
';edit_fields($L["fields"],$eb,$Mg);if(isset($_GET["function"])){echo"<tr><td>".lang(218);edit_type("returns",(array)$L["returns"],$eb,array(),(JUSH=="pgsql"?array("void","trigger"):array()));}echo'</table>
',script("editFields();"),'</div>
<p>';textarea("definition",$L["definition"],20);echo'<p>
<input type="submit" value="',lang(16),'">
';if($ba!="")echo'<input type="submit" name="drop" value="',lang(128),'">',confirm(lang(178,$ba));echo
input_token(),'</form>
';}elseif(isset($_GET["sequence"])){$da=$_GET["sequence"];$L=$_POST;if($_POST&&!$k){$_=substr(ME,0,-1);$D=trim($L["name"]);if($_POST["drop"])query_redirect("DROP SEQUENCE ".idf_escape($da),$_,lang(219));elseif($da=="")query_redirect("CREATE SEQUENCE ".idf_escape($D),$_,lang(220));elseif($da!=$D)query_redirect("ALTER SEQUENCE ".idf_escape($da)." RENAME TO ".idf_escape($D),$_,lang(221));else
redirect($_);}page_header($da!=""?lang(222).": ".h($da):lang(223),$k);if(!$L)$L["name"]=$da;echo'
<form action="" method="post">
<p><input name="name" value="',h($L["name"]),'" autocapitalize="off">
<input type="submit" value="',lang(16),'">
';if($da!="")echo"<input type='submit' name='drop' value='".lang(128)."'>".confirm(lang(178,$da))."\n";echo
input_token(),'</form>
';}elseif(isset($_GET["type"])){$ea=$_GET["type"];$L=$_POST;if($_POST&&!$k){$_=substr(ME,0,-1);if($_POST["drop"])query_redirect("DROP TYPE ".idf_escape($ea),$_,lang(224));else
query_redirect("CREATE TYPE ".idf_escape(trim($L["name"]))." $L[as]",$_,lang(225));}page_header($ea!=""?lang(226).": ".h($ea):lang(227),$k);if(!$L)$L["as"]="AS ";echo'
<form action="" method="post">
<p>
';if($ea!=""){$ti=driver()->types();$qc=type_values($ti[$ea]);if($qc)echo"<code class='jush-".JUSH."'>ENUM (".h($qc).")</code>\n<p>";echo"<input type='submit' name='drop' value='".lang(128)."'>".confirm(lang(178,$ea))."\n";}else{echo
lang(188).": <input name='name' value='".h($L['name'])."' autocapitalize='off'>\n",doc_link(array('pgsql'=>"datatype-enum.html",),"?");textarea("as",$L["as"]);echo"<p><input type='submit' value='".lang(16)."'>\n";}echo
input_token(),'</form>
';}elseif(isset($_GET["check"])){$a=$_GET["check"];$D=$_GET["name"];$L=$_POST;if($L&&!$k){if(JUSH=="sqlite")$J=recreate_table($a,$a,array(),array(),array(),"",array(),"$D",($L["drop"]?"":$L["clause"]));else{$J=($D==""||queries("ALTER TABLE ".table($a)." DROP CONSTRAINT ".idf_escape($D)));if(!$L["drop"])$J=queries("ALTER TABLE ".table($a)." ADD".($L["name"]!=""?" CONSTRAINT ".idf_escape($L["name"]):"")." CHECK ($L[clause])");}queries_redirect(ME."table=".urlencode($a),($L["drop"]?lang(228):($D!=""?lang(229):lang(230))),$J);}page_header(($D!=""?lang(231).": ".h($D):lang(143)),$k,array("table"=>$a));if(!$L){$Ua=driver()->checkConstraints($a);$L=array("name"=>$D,"clause"=>$Ua[$D]);}echo'
<form action="" method="post">
<p>';if(JUSH!="sqlite")echo
lang(188).': <input name="name" value="'.h($L["name"]).'" data-maxlength="64" autocapitalize="off"> ';echo
doc_link(array('pgsql'=>"ddl-constraints.html#DDL-CONSTRAINTS-CHECK-CONSTRAINTS",),"?"),'<p>';textarea("clause",$L["clause"]);echo'<p><input type="submit" value="',lang(16),'">
';if($D!="")echo'<input type="submit" name="drop" value="',lang(128),'">',confirm(lang(178,$D));echo
input_token(),'</form>
';}elseif(isset($_GET["trigger"])){$a=$_GET["trigger"];$D="$_GET[name]";$pi=trigger_options();$L=(array)trigger($D,$a)+array("Trigger"=>$a."_bi");if($_POST){if(!$k&&in_array($_POST["Timing"],$pi["Timing"])&&in_array($_POST["Event"],$pi["Event"])&&in_array($_POST["Type"],$pi["Type"])){$of=" ON ".table($a);$Yb="DROP TRIGGER ".idf_escape($D).(JUSH=="pgsql"?$of:"");$A=ME."table=".urlencode($a);if($_POST["drop"])query_redirect($Yb,$A,lang(232));else{if($D!="")queries($Yb);queries_redirect($A,($D!=""?lang(233):lang(234)),queries(create_trigger($of,$_POST)));if($D!="")queries(create_trigger($of,$L+array("Type"=>reset($pi["Type"]))));}}$L=$_POST;}page_header(($D!=""?lang(235).": ".h($D):lang(236)),$k,array("table"=>$a));echo'
<form action="" method="post" id="form">
<table class="layout">
<tr><th>',lang(237),'<td>',html_select("Timing",$pi["Timing"],$L["Timing"],"triggerChange(/^".preg_quote($a,"/")."_[ba][iud]$/, '".js_escape($a)."', this.form);"),'<tr><th>',lang(238),'<td>',html_select("Event",$pi["Event"],$L["Event"],"this.form['Timing'].onchange();"),(in_array("UPDATE OF",$pi["Event"])?" <input name='Of' value='".h($L["Of"])."' class='hidden'>":""),'<tr><th>',lang(47),'<td>',html_select("Type",$pi["Type"],$L["Type"]),'</table>
<p>',lang(188),': <input name="Trigger" value="',h($L["Trigger"]),'" data-maxlength="64" autocapitalize="off">
',script("qs('#form')['Timing'].onchange();"),'<p>';textarea("Statement",$L["Statement"]);echo'<p>
<input type="submit" value="',lang(16),'">
';if($D!="")echo'<input type="submit" name="drop" value="',lang(128),'">',confirm(lang(178,$D));echo
input_token(),'</form>
';}elseif(isset($_GET["processlist"])){if(support("kill")){if($_POST&&!$k){$ke=0;foreach((array)$_POST["kill"]as$X){if(adminer()->killProcess($X))$ke++;}queries_redirect(ME."processlist=",lang(239,$ke),$ke||!$_POST["kill"]);}}page_header(lang(117),$k);echo'
<form action="" method="post">
<div class="scrollable">
<table class="nowrap checkable odds">
',script("mixin(qsl('table'), {onclick: tableClick, ondblclick: partialArg(tableClick, true)});");$s=-1;foreach(adminer()->processList()as$s=>$L){if(!$s){echo"<thead><tr lang='en'>".(support("kill")?"<th>":"");foreach($L
as$y=>$X)echo"<th>$y".doc_link(array('pgsql'=>"monitoring-stats.html#PG-STAT-ACTIVITY-VIEW",));echo"</thead>\n";}echo"<tr>".(support("kill")?"<td>".checkbox("kill[]",$L[JUSH=="sql"?"Id":"pid"],0):"");foreach($L
as$y=>$X)echo"<td>".((JUSH=="sql"&&$y=="Info"&&preg_match("~Query|Killed~",$L["Command"])&&$X!="")||(JUSH=="pgsql"&&$y=="current_query"&&$X!="<IDLE>")||(JUSH=="oracle"&&$y=="sql_text"&&$X!="")?"<code class='jush-".JUSH."'>".shorten_utf8($X,100,"</code>").' <a href="'.h(ME.($L["db"]!=""?"db=".urlencode($L["db"])."&":"")."sql=".urlencode($X)).'">'.lang(240).'</a>':h($X));echo"\n";}echo'</table>
</div>
<p>
';if(support("kill"))echo($s+1)."/".lang(241,max_connections()),"<p><input type='submit' value='".lang(242)."'>\n";echo
input_token(),'</form>
',script("tableCheck();");}elseif(isset($_GET["select"])){$a=$_GET["select"];$S=table_status1($a);$w=indexes($a);$m=fields($a);$Xc=column_foreign_keys($a);$mf=$S["Oid"];$la=get_settings("adminer_import");$Kg=array();$d=array();$Vg=array();$yf=array();$Vh="";foreach($m
as$y=>$l){$D=adminer()->fieldName($l);$cf=html_entity_decode(strip_tags($D),ENT_QUOTES);if(isset($l["privileges"]["select"])&&$D!=""){$d[$y]=$cf;if(is_shortable($l))$Vh=adminer()->selectLengthProcess();}if(isset($l["privileges"]["where"])&&$D!="")$Vg[$y]=$cf;if(isset($l["privileges"]["order"])&&$D!="")$yf[$y]=$cf;$Kg+=$l["privileges"];}list($N,$r)=adminer()->selectColumnsProcess($d,$w);$N=array_unique($N);$r=array_unique($r);$be=count($r)<count($N);$Z=adminer()->selectSearchProcess($m,$w);$xf=adminer()->selectOrderProcess($m,$w);$z=adminer()->selectLimitProcess();if($_GET["val"]&&is_ajax()){header("Content-Type: text/plain; charset=utf-8");foreach($_GET["val"]as$xi=>$L){$va=convert_field($m[key($L)]);$N=array($va?:idf_escape(key($L)));$Z[]=where_check($xi,$m);$K=driver()->select($a,$N,$Z,$N);if($K)echo
first($K->fetch_row());}exit;}$ng=$zi=array();foreach($w
as$v){if($v["type"]=="PRIMARY"){$ng=array_flip($v["columns"]);$zi=($N?$ng:array());foreach($zi
as$y=>$X){if(in_array(idf_escape($y),$N))unset($zi[$y]);}break;}}if($mf&&!$ng){$ng=$zi=array($mf=>0);$w[]=array("type"=>"PRIMARY","columns"=>array($mf));}if($_POST&&!$k){$Zi=$Z;if(!$_POST["all"]&&is_array($_POST["check"])){$Ua=array();foreach($_POST["check"]as$Qa)$Ua[]=where_check($Qa,$m);$Zi[]="((".implode(") OR (",$Ua)."))";}$Zi=($Zi?"\nWHERE ".implode(" AND ",$Zi):"");if($_POST["export"]){save_settings(array("output"=>$_POST["output"],"format"=>$_POST["format"]),"adminer_import");dump_headers($a);adminer()->dumpTable($a,"");$bd=($N?implode(", ",$N):"*").convert_fields($d,$m,$N)."\nFROM ".table($a);$hd=($r&&$be?"\nGROUP BY ".implode(", ",$r):"").($xf?"\nORDER BY ".implode(", ",$xf):"");$I="SELECT $bd$Zi$hd";if(is_array($_POST["check"])&&!$ng){$vi=array();foreach($_POST["check"]as$X)$vi[]="(SELECT".limit($bd,"\nWHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($X,$m).$hd,1).")";$I=implode(" UNION ALL ",$vi);}adminer()->dumpData($a,"table",$I);adminer()->dumpFooter();exit;}if(!adminer()->selectEmailProcess($Z,$Xc)){if($_POST["save"]||$_POST["delete"]){$J=true;$ma=0;$P=array();if(!$_POST["delete"]){foreach($_POST["fields"]as$D=>$X){$X=process_input($m[$D]);if($X!==null&&($_POST["clone"]||$X!==false))$P[idf_escape($D)]=($X!==false?$X:idf_escape($D));}}if($_POST["delete"]||$P){$I=($_POST["clone"]?"INTO ".table($a)." (".implode(", ",array_keys($P)).")\nSELECT ".implode(", ",$P)."\nFROM ".table($a):"");if($_POST["all"]||($ng&&is_array($_POST["check"]))||$be){$J=($_POST["delete"]?driver()->delete($a,$Zi):($_POST["clone"]?queries("INSERT $I$Zi".driver()->insertReturning($a)):driver()->update($a,$P,$Zi)));$ma=connection()->affected_rows;if(is_object($J))$ma+=$J->num_rows;}else{foreach((array)$_POST["check"]as$X){$Yi="\nWHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($X,$m);$J=($_POST["delete"]?driver()->delete($a,$Yi,1):($_POST["clone"]?queries("INSERT".limit1($a,$I,$Yi)):driver()->update($a,$P,$Yi,1)));if(!$J)break;$ma+=connection()->affected_rows;}}}$C=lang(243,$ma);if($_POST["clone"]&&$J&&$ma==1){$qe=last_id($J);if($qe)$C=lang(171," $qe");}queries_redirect(remove_from_uri($_POST["all"]&&$_POST["delete"]?"page":""),$C,$J);if(!$_POST["delete"]){$ig=(array)$_POST["fields"];edit_form($a,array_intersect_key($m,$ig),$ig,!$_POST["clone"],$k);page_footer();exit;}}elseif(!$_POST["import"]){if(!$_POST["val"])$k=lang(244);else{$J=true;$ma=0;foreach($_POST["val"]as$xi=>$L){$P=array();foreach($L
as$y=>$X){$y=bracket_escape($y,true);$P[idf_escape($y)]=(preg_match('~char|text~',$m[$y]["type"])||$X!=""?adminer()->processInput($m[$y],$X):"NULL");}$J=driver()->update($a,$P," WHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($xi,$m),($be||$ng?0:1)," ");if(!$J)break;$ma+=connection()->affected_rows;}queries_redirect(remove_from_uri(),lang(243,$ma),$J);}}elseif(!is_string($Lc=get_file("csv_file",true)))$k=upload_error($Lc);elseif(!preg_match('~~u',$Lc))$k=lang(245);else{save_settings(array("output"=>$la["output"],"format"=>$_POST["separator"]),"adminer_import");$J=true;$fb=array_keys($m);preg_match_all('~(?>"[^"]*"|[^"\r\n]+)+~',$Lc,$De);$ma=count($De[0]);driver()->begin();$bh=($_POST["separator"]=="csv"?",":($_POST["separator"]=="tsv"?"\t":";"));$M=array();foreach($De[0]as$y=>$X){preg_match_all("~((?>\"[^\"]*\")+|[^$bh]*)$bh~",$X.$bh,$Ee);if(!$y&&!array_diff($Ee[1],$fb)){$fb=$Ee[1];$ma--;}else{$P=array();foreach($Ee[1]as$s=>$bb)$P[idf_escape($fb[$s])]=($bb==""&&$m[$fb[$s]]["null"]?"NULL":q(preg_match('~^".*"$~s',$bb)?str_replace('""','"',substr($bb,1,-1)):$bb));$M[]=$P;}}$J=(!$M||driver()->insertUpdate($a,$M,$ng));if($J)driver()->commit();queries_redirect(remove_from_uri("page"),lang(246,$ma),$J);driver()->rollback();}}}$Gh=adminer()->tableName($S);if(is_ajax()){page_headers();ob_start();}else
page_header(lang(51).": $Gh",$k);$P=null;if(isset($Kg["insert"])||!support("table")){$Mf=array();foreach((array)$_GET["where"]as$X){if(isset($Xc[$X["col"]])&&count($Xc[$X["col"]])==1&&($X["op"]=="="||(!$X["op"]&&(is_array($X["val"])||!preg_match('~[_%]~',$X["val"])))))$Mf["set"."[".bracket_escape($X["col"])."]"]=$X["val"];}$P=$Mf?"&".http_build_query($Mf):"";}adminer()->selectLinks($S,$P);if(!$d&&support("table"))echo"<p class='error'>".lang(247).($m?".":": ".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($N,$d);adminer()->selectSearchPrint($Z,$Vg,$w);adminer()->selectOrderPrint($xf,$yf,$w);adminer()->selectLimitPrint($z);adminer()->selectLengthPrint($Vh);adminer()->selectActionPrint($w);echo"</form>\n";$F=$_GET["page"];$ad=null;if($F=="last"){$ad=get_val(count_rows($a,$Z,$be,$r));$F=floor(max(0,intval($ad)-1)/$z);}$Wg=$N;$gd=$r;if(!$Wg){$Wg[]="*";$tb=convert_fields($d,$m,$N);if($tb)$Wg[]=substr($tb,2);}foreach($N
as$y=>$X){$l=$m[idf_unescape($X)];if($l&&($va=convert_field($l)))$Wg[$y]="$va AS $X";}if(!$be&&$zi){foreach($zi
as$y=>$X){$Wg[]=idf_escape($y);if($gd)$gd[]=idf_escape($y);}}$J=driver()->select($a,$Wg,$Z,$gd,$xf,$z,$F,true);if(!$J)echo"<p class='error'>".error()."\n";else{if(JUSH=="mssql"&&$F)$J->seek($z*$F);$jc=array();echo"<form action='' method='post' enctype='multipart/form-data'>\n";$M=array();while($L=$J->fetch_assoc()){if($F&&JUSH=="oracle")unset($L["RNUM"]);$M[]=$L;}if($_GET["page"]!="last"&&$z&&$r&&$be&&JUSH=="sql")$ad=get_val(" SELECT FOUND_ROWS()");if(!$M)echo"<p class='message'>".lang(14)."\n";else{$Ba=adminer()->backwardKeys($a,$Gh);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>".(!$r&&$N?"":"<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(248)."</a>");$df=array();$dd=array();reset($N);$xg=1;foreach($M[0]as$y=>$X){if(!isset($zi[$y])){$X=idx($_GET["columns"],key($N))?:array();$l=$m[$N?($X?$X["col"]:current($N)):$y];$D=($l?adminer()->fieldName($l,$xg):($X["fun"]?"*":h($y)));if($D!=""){$xg++;$df[$y]=$D;$c=idf_escape($y);$xd=remove_from_uri('(order|desc)[^=]*|page').'&order%5B0%5D='.urlencode($y);$Pb="&desc%5B0%5D=1";echo"<th id='th[".h(bracket_escape($y))."]'>".script("mixin(qsl('th'), {onmouseover: partial(columnMouse), onmouseout: partial(columnMouse, ' hidden')});","");$cd=apply_sql_function($X["fun"],$D);$oh=isset($l["privileges"]["order"])||$cd!=$D;echo($oh?"<a href='".h($xd.($xf[0]==$c||$xf[0]==$y?$Pb:''))."'>$cd</a>":$cd);$Pe=($oh?"<a href='".h($xd.$Pb)."' title='".lang(57)."' class='text'> ↓</a>":'');if(!$X["fun"]&&isset($l["privileges"]["where"])){$Pe
.='<a href="#fieldset-search" title="'.lang(54).'" class="text jsonly"> =</a>';$Pe
.=script("qsl('a').onclick = partial(selectSearch, '".js_escape($y)."');");}echo($Pe?"<span class='column hidden'>$Pe</span>":"");}$dd[$y]=$X["fun"];next($N);}}$we=array();if($_GET["modify"]){foreach($M
as$L){foreach($L
as$y=>$X)$we[$y]=max($we[$y],min(40,strlen(utf8_decode($X))));}}echo($Ba?"<th>".lang(249):"")."</thead>\n";if(is_ajax())ob_end_clean();foreach(adminer()->rowDescriptions($M,$Xc)as$bf=>$L){$wi=unique_array($M[$bf],$w);if(!$wi){$wi=array();reset($N);foreach($M[$bf]as$y=>$X){if(!preg_match('~^(COUNT|AVG|GROUP_CONCAT|MAX|MIN|SUM)\(~',current($N)))$wi[$y]=$X;next($N);}}$xi="";foreach($wi
as$y=>$X){$l=(array)$m[$y];if((JUSH=="sql"||JUSH=="pgsql")&&preg_match('~char|text|enum|set~',$l["type"])&&strlen($X)>64){$y=(strpos($y,'(')?$y:idf_escape($y));$y="MD5(".(JUSH!='sql'||preg_match("~^utf8~",$l["collation"])?$y:"CONVERT($y USING ".charset(connection()).")").")";$X=md5($X);}$xi
.="&".($X!==null?urlencode("where[".bracket_escape($y)."]")."=".urlencode($X===false?"f":$X):"null%5B%5D=".urlencode($y));}echo"<tr>".(!$r&&$N?"":"<td>".checkbox("check[]",substr($xi,1),in_array(substr($xi,1),(array)$_POST["check"])).($be||information_schema(DB)?"":" <a href='".h(ME."edit=".urlencode($a).$xi)."' class='edit'>".lang(250)."</a>"));reset($N);foreach($L
as$y=>$X){if(isset($df[$y])){$c=current($N);$l=(array)$m[$y];if($X!=""&&(!isset($jc[$y])||$jc[$y]!=""))$jc[$y]=(is_mail($X)?$df[$y]:"");$_="";if(is_blob($l)&&$X!="")$_=ME.'download='.urlencode($a).'&field='.urlencode($y).$xi;if(!$_&&$X!==null){foreach((array)$Xc[$y]as$o){if(count($Xc[$y])==1||end($o["source"])==$y){$_="";foreach($o["source"]as$s=>$ph)$_
.=where_link($s,$o["target"][$s],$M[$bf][$ph]);$_=($o["db"]!=""?preg_replace('~([?&]db=)[^&]+~','\1'.urlencode($o["db"]),ME):ME).'select='.urlencode($o["table"]).$_;if($o["ns"])$_=preg_replace('~([?&]ns=)[^&]+~','\1'.urlencode($o["ns"]),$_);if(count($o["source"])==1)break;}}}if($c=="COUNT(*)"){$_=ME."select=".urlencode($a);$s=0;foreach((array)$_GET["where"]as$W){if(!array_key_exists($W["col"],$wi))$_
.=where_link($s++,$W["col"],$W["val"],$W["op"]);}foreach($wi
as$he=>$W)$_
.=where_link($s++,$he,$W);}$yd=select_value($X,$_,$l,$Vh);$t=h("val[$xi][".bracket_escape($y)."]");$jg=idx(idx($_POST["val"],$xi),bracket_escape($y));$ec=!is_array($L[$y])&&is_utf8($yd)&&$M[$bf][$y]==$L[$y]&&!$dd[$y]&&!$l["generated"];$U=(preg_match('~^(AVG|MIN|MAX)\((.+)\)~',$c,$B)?$m[idf_unescape($B[2])]["type"]:$l["type"]);$Th=preg_match('~text|json|lob~',$U);$ce=preg_match(number_type(),$U)||preg_match('~^(CHAR_LENGTH|ROUND|FLOOR|CEIL|TIME_TO_SEC|COUNT|SUM)\(~',$c);echo"<td id='$t'".($ce&&($X===null||is_numeric(strip_tags($yd))||$U=="money")?" class='number'":"");if(($_GET["modify"]&&$ec&&$X!==null)||$jg!==null){$kd=h($jg!==null?$jg:$L[$y]);echo">".($Th?"<textarea name='$t' cols='30' rows='".(substr_count($L[$y],"\n")+1)."'>$kd</textarea>":"<input name='$t' value='$kd' size='$we[$y]'>");}else{$Ae=strpos($yd,"<i>…</i>");echo" data-text='".($Ae?2:($Th?1:0))."'".($ec?"":" data-warning='".h(lang(251))."'").">$yd";}}next($N);}if($Ba)echo"<td>";adminer()->backwardKeysPrint($Ba,$M[$bf]);echo"</tr>\n";}if(is_ajax())exit;echo"</table>\n","</div>\n";}if(!is_ajax()){if($M||$F){$wc=true;if($_GET["page"]!="last"){if(!$z||(count($M)<$z&&($M||!$F)))$ad=($F?$F*$z:0)+count($M);elseif(JUSH!="sql"||!$be){$ad=($be?false:found_rows($S,$Z));if(intval($ad)<max(1e4,2*($F+1)*$z))$ad=first(slow_query(count_rows($a,$Z,$be,$r)));elseif(JUSH=='sql'||JUSH=='pgsql')$wc=false;}}$Kf=($z&&($ad===false||$ad>$z||$F));if($Kf)echo(($ad===false?count($M)+1:$ad-$F*$z)>$z?'<p><a href="'.h(remove_from_uri("page")."&page=".($F+1)).'" class="loadmore">'.lang(252).'</a>'.script("qsl('a').onclick = partial(selectLoadMore, $z, '".lang(253)."…');",""):''),"\n";echo"<div class='footer'><div>\n";if($Kf){$Ie=($ad===false?$F+(count($M)>=$z?2:1):floor(($ad-1)/$z));echo"<fieldset>";if(JUSH!="simpledb"){echo"<legend><a href='".h(remove_from_uri("page"))."'>".lang(254)."</a></legend>",script("qsl('a').onclick = function () { pageClick(this.href, +prompt('".lang(254)."', '".($F+1)."')); return false; };"),pagination(0,$F).($F>5?" …":"");for($s=max(1,$F-4);$s<min($Ie,$F+5);$s++)echo
pagination($s,$F);if($Ie>0)echo($F+5<$Ie?" …":""),($wc&&$ad!==false?pagination($Ie,$F):" <a href='".h(remove_from_uri("page")."&page=last")."' title='~$Ie'>".lang(255)."</a>");}else
echo"<legend>".lang(254)."</legend>",pagination(0,$F).($F>1?" …":""),($F?pagination($F,$F):""),($Ie>$F?pagination($F+1,$F).($Ie>$F+1?" …":""):"");echo"</fieldset>\n";}echo"<fieldset>","<legend>".lang(256)."</legend>";$Vb=($wc?"":"~ ").$ad;$rf="const checked = formChecked(this, /check/); selectCount('selected', this.checked ? '$Vb' : checked); selectCount('selected2', this.checked || !checked ? '$Vb' : checked);";echo
checkbox("all",1,0,($ad!==false?($wc?"":"~ ").lang(154,$ad):""),$rf)."\n","</fieldset>\n";if(adminer()->selectCommandPrint())echo'<fieldset',($_GET["modify"]?'':' class="jsonly"'),'><legend>',lang(248),'</legend><div>
<input type="submit" value="',lang(16),'"',($_GET["modify"]?'':' title="'.lang(244).'"'),'>
</div></fieldset>
<fieldset><legend>',lang(127),' <span id="selected"></span></legend><div>
<input type="submit" name="edit" value="',lang(12),'">
<input type="submit" name="clone" value="',lang(240),'">
<input type="submit" name="delete" value="',lang(20),'">',confirm(),'</div></fieldset>
';$Yc=adminer()->dumpFormat();foreach((array)$_GET["columns"]as$c){if($c["fun"]){unset($Yc['sql']);break;}}if($Yc){print_fieldset("export",lang(74)." <span id='selected2'></span>");$If=adminer()->dumpOutput();echo($If?html_select("output",$If,$la["output"])." ":""),html_select("format",$Yc,$la["format"])," <input type='submit' name='export' value='".lang(74)."'>\n","</div></fieldset>\n";}adminer()->selectEmailPrint(array_filter($jc,'strlen'),$d);echo"</div></div>\n";}if(adminer()->selectImportPrint())echo"<p>","<a href='#import'>".lang(73)."</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"),$la["format"])." <input type='submit' name='import' value='".lang(73)."'>"),"</span>";echo
input_token(),"</form>\n",(!$r&&$N?"":script("tableCheck();"));}}}if(is_ajax()){ob_end_clean();exit;}}elseif(isset($_GET["variables"])){$Q=isset($_GET["status"]);page_header($Q?lang(119):lang(118));$Pi=($Q?adminer()->showStatus():adminer()->showVariables());if(!$Pi)echo"<p class='message'>".lang(14)."\n";else{echo"<table>\n";foreach($Pi
as$L){echo"<tr>";$y=array_shift($L);echo"<th><code class='jush-".JUSH.($Q?"status":"set")."'>".h($y)."</code>";foreach($L
as$X)echo"<td>".nl_br(h($X));}echo"</table>\n";}}elseif(isset($_GET["script"])){header("Content-Type: text/javascript; charset=utf-8");if($_GET["script"]=="db"){$Dh=array("Data_length"=>0,"Index_length"=>0,"Data_free"=>0);foreach(table_status()as$D=>$S){json_row("Comment-$D",h($S["Comment"]));if(!is_view($S)||preg_match('~materialized~i',$S["Engine"])){foreach(array("Engine","Collation")as$y)json_row("$y-$D",h($S[$y]));foreach($Dh+array("Auto_increment"=>0,"Rows"=>0)as$y=>$X){if($S[$y]!=""){$X=format_number($S[$y]);if($X>=0)json_row("$y-$D",($y=="Rows"&&$X&&$S["Engine"]==(JUSH=="pgsql"?"table":"InnoDB")?"~ $X":$X));if(isset($Dh[$y]))$Dh[$y]+=($S["Engine"]!="InnoDB"||$y!="Data_free"?$S[$y]:0);}elseif(array_key_exists($y,$S))json_row("$y-$D","?");}}}foreach($Dh
as$y=>$X)json_row("sum-$y",format_number($X));json_row("");}elseif($_GET["script"]=="kill")connection()->query("KILL ".number($_POST["kill"]));else{foreach(count_tables(adminer()->databases())as$j=>$X){json_row("tables-$j",$X);json_row("size-$j",db_size($j));}json_row("");}exit;}else{$Nh=array_merge((array)$_POST["tables"],(array)$_POST["views"]);if($Nh&&!$k&&!$_POST["search"]){$J=true;$C="";if(JUSH=="sql"&&$_POST["tables"]&&count($_POST["tables"])>1&&($_POST["drop"]||$_POST["truncate"]||$_POST["copy"]))queries("SET foreign_key_checks = 0");if($_POST["truncate"]){if($_POST["tables"])$J=truncate_tables($_POST["tables"]);$C=lang(257);}elseif($_POST["move"]){$J=move_tables((array)$_POST["tables"],(array)$_POST["views"],$_POST["target"]);$C=lang(258);}elseif($_POST["copy"]){$J=copy_tables((array)$_POST["tables"],(array)$_POST["views"],$_POST["target"]);$C=lang(259);}elseif($_POST["drop"]){if($_POST["views"])$J=drop_views($_POST["views"]);if($J&&$_POST["tables"])$J=drop_tables($_POST["tables"]);$C=lang(260);}elseif(JUSH=="sqlite"&&$_POST["check"]){foreach((array)$_POST["tables"]as$R){foreach(get_rows("PRAGMA integrity_check(".q($R).")")as$L)$C
.="<b>".h($R)."</b>: ".h($L["integrity_check"])."<br>";}}elseif(JUSH!="sql"){$J=(JUSH=="sqlite"?queries("VACUUM"):apply_queries("VACUUM".($_POST["optimize"]?"":" ANALYZE"),$_POST["tables"]));$C=lang(261);}elseif(!$_POST["tables"])$C=lang(11);elseif($J=queries(($_POST["optimize"]?"OPTIMIZE":($_POST["check"]?"CHECK":($_POST["repair"]?"REPAIR":"ANALYZE")))." TABLE ".implode(", ",array_map('Adminer\idf_escape',$_POST["tables"])))){while($L=$J->fetch_assoc())$C
.="<b>".h($L["Table"])."</b>: ".h($L["Msg_text"])."<br>";}queries_redirect(substr(ME,0,-1),$C,$J);}page_header(($_GET["ns"]==""?lang(35).": ".h(DB):lang(77).": ".h($_GET["ns"])),$k,true);if(adminer()->homepage()){if($_GET["ns"]!==""){echo"<h3 id='tables-views'>".lang(262)."</h3>\n";$Mh=tables_list();if(!$Mh)echo"<p class='message'>".lang(11)."\n";else{echo"<form action='' method='post'>\n";if(support("table")){echo"<fieldset><legend>".lang(263)." <span id='selected2'></span></legend><div>",html_select("op",adminer()->operators(),idx($_POST,"op",JUSH=="elastic"?"should":"LIKE %%"))," <input type='search' name='query' value='".h($_POST["query"])."'>",script("qsl('input').onkeydown = partialArg(bodyKeydown, 'search');","")," <input type='submit' name='search' value='".lang(54)."'>\n","</div></fieldset>\n";if($_POST["search"]&&$_POST["query"]!=""){$_GET["where"][0]["op"]=$_POST["op"];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|views)\[/);",""),'<th>'.lang(134);$d=array("Engine"=>array(lang(264).''));if(collations())$d["Collation"]=array(lang(123).'');if(function_exists('Adminer\alter_table'))$d["Data_length"]=array(lang(265).doc_link(array('pgsql'=>'functions-admin.html#FUNCTIONS-ADMIN-DBOBJECT',)),"create",lang(42));if(support('indexes'))$d["Index_length"]=array(lang(266).doc_link(array('pgsql'=>'functions-admin.html#FUNCTIONS-ADMIN-DBOBJECT')),"indexes",lang(137));$d["Data_free"]=array(lang(267).'',"edit",lang(43));if(function_exists('Adminer\alter_table'))$d["Auto_increment"]=array(lang(49).'',"auto_increment=1&create",lang(42));$d["Rows"]=array(lang(268).doc_link(array('pgsql'=>'catalog-pg-class.html#CATALOG-PG-CLASS',)),"select",lang(39));if(support("comment"))$d["Comment"]=array(lang(48).doc_link(array('pgsql'=>'functions-info.html#FUNCTIONS-INFO-COMMENT-TABLE')));foreach($d
as$c)echo"<td>$c[0]";echo"</thead>\n";$T=0;foreach($Mh
as$D=>$U){$Si=($U!==null&&!preg_match('~table|sequence~i',$U));$t=h("Table-".$D);echo'<tr><td>'.checkbox(($Si?"views[]":"tables[]"),$D,in_array("$D",$Nh,true),"","","",$t),'<th>'.(support("table")||support("indexes")?"<a href='".h(ME)."table=".urlencode($D)."' title='".lang(40)."' id='$t'>".h($D).'</a>':h($D));if($Si&&!preg_match('~materialized~i',$U)){$Zh=lang(133);echo'<td colspan="6">'.(support("view")?"<a href='".h(ME)."view=".urlencode($D)."' title='".lang(41)."'>$Zh</a>":$Zh),'<td align="right"><a href="'.h(ME)."select=".urlencode($D).'" title="'.lang(39).'">?</a>';}else{foreach($d
as$y=>$c){$t=" id='$y-".h($D)."'";echo($c[1]?"<td align='right'><a href='".h(ME."$c[1]=").urlencode($D)."'$t title='$c[2]'>?</a>":"<td id='$y-".h($D)."'>");}$T++;}echo"\n";}echo"<tr><td><th>".lang(241,count($Mh)),"<td>".h(JUSH=="sql"?get_val("SELECT @@default_storage_engine"):""),"<td>".h(db_collation(DB,collations()));foreach(array("Data_length","Index_length","Data_free")as$y)echo($d[$y]?"<td align='right' id='sum-$y'>":"");echo"\n","</table>\n",script("ajaxSetHtml('".js_escape(ME)."script=db');"),"</div>\n";if(!information_schema(DB)){$Mi="<input type='submit' value='".lang(269)."'> ".on_help("'VACUUM'");$uf="<input type='submit' name='optimize' value='".lang(270)."'> ".on_help(JUSH=="sql"?"'OPTIMIZE TABLE'":"'VACUUM OPTIMIZE'");$og=(JUSH=="sqlite"?$Mi."<input type='submit' name='check' value='".lang(271)."'> ".on_help("'PRAGMA integrity_check'"):(JUSH=="pgsql"?$Mi.$uf:(JUSH=="sql"?"<input type='submit' value='".lang(272)."'> ".on_help("'ANALYZE TABLE'").$uf."<input type='submit' name='check' value='".lang(271)."'> ".on_help("'CHECK TABLE'")."<input type='submit' name='repair' value='".lang(273)."'> ".on_help("'REPAIR TABLE'"):""))).(function_exists('Adminer\truncate_tables')?"<input type='submit' name='truncate' value='".lang(274)."'> ".on_help(JUSH=="sqlite"?"'DELETE'":"'TRUNCATE".(JUSH=="pgsql"?"'":" TABLE'")).confirm():"").(function_exists('Adminer\drop_tables')?"<input type='submit' name='drop' value='".lang(128)."'>".on_help("'DROP TABLE'").confirm():"");echo($og?"<div class='footer'><div>\n<fieldset><legend>".lang(127)." <span id='selected'></span></legend><div>$og\n</div></fieldset>\n":"");$i=(support("scheme")?adminer()->schemas():adminer()->databases());$Ug="";if(count($i)!=1&&JUSH!="sqlite"){echo"<fieldset><legend>".lang(275)." <span id='selected3'></span></legend><div>";$j=(isset($_POST["target"])?$_POST["target"]:(support("scheme")?$_GET["ns"]:DB));echo($i?html_select("target",$i,$j):'<input name="target" value="'.h($j).'" autocapitalize="off">'),"</label> <input type='submit' name='move' value='".lang(276)."'>",(support("copy")?" <input type='submit' name='copy' value='".lang(277)."'> ".checkbox("overwrite",1,$_POST["overwrite"],lang(278)):""),"</div></fieldset>\n";$Ug=" selectCount('selected3', formChecked(this, /^(tables|views)\[/));";}echo"<input type='hidden' name='all' value=''>",script("qsl('input').onclick = function () { selectCount('selected', formChecked(this, /^(tables|views)\[/));".(support("table")?" selectCount('selected2', formChecked(this, /^tables\[/) || $T);":"")."$Ug }"),input_token(),"</div></div>\n";}echo"</form>\n",script("tableCheck();");}echo(function_exists('Adminer\alter_table')?"<p class='links'><a href='".h(ME)."create='>".lang(75)."</a>\n":''),(support("view")?"<a href='".h(ME)."view='>".lang(210)."</a>\n":"");if(support("routine")){echo"<h3 id='routines'>".lang(70)."</h3>\n";$Og=routines();if($Og){echo"<table class='odds'>\n",'<thead><tr><th>'.lang(188).'<td>'.lang(47).'<td>'.lang(218)."<td></thead>\n";foreach($Og
as$L){$D=($L["SPECIFIC_NAME"]==$L["ROUTINE_NAME"]?"":"&name=".urlencode($L["ROUTINE_NAME"]));echo'<tr>','<th><a href="'.h(ME.($L["ROUTINE_TYPE"]!="PROCEDURE"?'callf=':'call=').urlencode($L["SPECIFIC_NAME"]).$D).'">'.h($L["ROUTINE_NAME"]).'</a>','<td>'.h($L["ROUTINE_TYPE"]),'<td>'.h($L["DTD_IDENTIFIER"]),'<td><a href="'.h(ME.($L["ROUTINE_TYPE"]!="PROCEDURE"?'function=':'procedure=').urlencode($L["SPECIFIC_NAME"]).$D).'">'.lang(140)."</a>";}echo"</table>\n";}echo'<p class="links">'.(support("procedure")?'<a href="'.h(ME).'procedure=">'.lang(217).'</a>':'').'<a href="'.h(ME).'function=">'.lang(216)."</a>\n";}if(support("sequence")){echo"<h3 id='sequences'>".lang(71)."</h3>\n";$eh=get_vals("SELECT sequence_name FROM information_schema.sequences WHERE sequence_schema = current_schema() ORDER BY sequence_name");if($eh){echo"<table class='odds'>\n","<thead><tr><th>".lang(188)."</thead>\n";foreach($eh
as$X)echo"<tr><th><a href='".h(ME)."sequence=".urlencode($X)."'>".h($X)."</a>\n";echo"</table>\n";}echo"<p class='links'><a href='".h(ME)."sequence='>".lang(223)."</a>\n";}if(support("type")){echo"<h3 id='user-types'>".lang(6)."</h3>\n";$Ji=types();if($Ji){echo"<table class='odds'>\n","<thead><tr><th>".lang(188)."</thead>\n";foreach($Ji
as$X)echo"<tr><th><a href='".h(ME)."type=".urlencode($X)."'>".h($X)."</a>\n";echo"</table>\n";}echo"<p class='links'><a href='".h(ME)."type='>".lang(227)."</a>\n";}}}}page_footer();