\n";}function
bold($Wa,$kb=""){return($Wa?" class='active $kb'":($kb?" class='$kb'":""));}function
-odd($I=' class="odd"'){static$t=0;if(!$I)$t=-1;return($t++%2?$I:'');}function
+odd($I=' class="odd"'){static$s=0;if(!$I)$s=-1;return($s++%2?$I:'');}function
js_escape($P){return
addcslashes($P,"\r\n'\\/");}function
-json_row($z,$X=null){static$Wc=true;if($Wc)echo"{";if($z!=""){echo($Wc?"":",")."\n\t\"".addcslashes($z,"\r\n\t\"\\/").'": '.($X!==null?'"'.addcslashes($X,"\r\n\"\\/").'"':'null');$Wc=false;}else{echo"\n}\n";$Wc=true;}}function
+json_row($y,$X=null){static$Wc=true;if($Wc)echo"{";if($y!=""){echo($Wc?"":",")."\n\t\"".addcslashes($y,"\r\n\t\"\\/").'": '.($X!==null?'"'.addcslashes($X,"\r\n\"\\/").'"':'null');$Wc=false;}else{echo"\n}\n";$Wc=true;}}function
ini_bool($Qd){$X=ini_get($Qd);return(preg_match('~^(on|true|yes)$~i',$X)||(int)$X);}function
sid(){static$I;if($I===null)$I=(SID&&!($_COOKIE&&ini_bool("session.use_cookies")));return$I;}function
-set_password($Yi,$N,$V,$F){$_SESSION["pwds"][$Yi][$N][$V]=($_COOKIE["adminer_key"]&&is_string($F)?array(encrypt_string($F,$_COOKIE["adminer_key"])):$F);}function
+set_password($Xi,$N,$V,$F){$_SESSION["pwds"][$Xi][$N][$V]=($_COOKIE["adminer_key"]&&is_string($F)?array(encrypt_string($F,$_COOKIE["adminer_key"])):$F);}function
get_password(){$I=get_session("pwds");if(is_array($I))$I=($_COOKIE["adminer_key"]?decrypt_string($I[0],$_COOKIE["adminer_key"]):false);return$I;}function
q($P){global$g;return$g->quote($P);}function
get_vals($G,$e=0){global$g;$I=array();$H=$g->query($G);if(is_object($H)){while($J=$H->fetch_row())$I[]=$J[$e];}return$I;}function
-get_key_vals($G,$h=null,$oh=true){global$g;if(!is_object($h))$h=$g;$I=array();$H=$h->query($G);if(is_object($H)){while($J=$H->fetch_row()){if($oh)$I[$J[0]]=$J[1];else$I[]=$J[0];}}return$I;}function
-get_rows($G,$h=null,$o="
"){global$g;$xb=(is_object($h)?$h:$g);$I=array();$H=$xb->query($G);if(is_object($H)){while($J=$H->fetch_assoc())$I[]=$J;}elseif(!$H&&!is_object($h)&&$o&&defined("PAGE_HEADER"))echo$o.error()."\n";return$I;}function
-unique_array($J,$x){foreach($x
-as$w){if(preg_match("~PRIMARY|UNIQUE~",$w["type"])){$I=array();foreach($w["columns"]as$z){if(!isset($J[$z]))continue
-2;$I[$z]=$J[$z];}return$I;}}}function
-escape_key($z){if(preg_match('(^([\w(]+)('.str_replace("_",".*",preg_quote(idf_escape("_"))).')([ \w)]+)$)',$z,$B))return$B[1].idf_escape(idf_unescape($B[2])).$B[3];return
-idf_escape($z);}function
-where($Z,$q=array()){global$g,$y;$I=array();foreach((array)$Z["where"]as$z=>$X){$z=bracket_escape($z,1);$e=escape_key($z);$I[]=$e.($y=="sql"&&is_numeric($X)&&preg_match('~\.~',$X)?" LIKE ".q($X):($y=="mssql"?" LIKE ".q(preg_replace('~[_%[]~','[\0]',$X)):" = ".unconvert_field($q[$z],q($X))));if($y=="sql"&&preg_match('~char|text~',$q[$z]["type"])&&preg_match("~[^ -@]~",$X))$I[]="$e = ".q($X)." COLLATE ".charset($g)."_bin";}foreach((array)$Z["null"]as$z)$I[]=escape_key($z)." IS NULL";return
+get_key_vals($G,$h=null,$nh=true){global$g;if(!is_object($h))$h=$g;$I=array();$H=$h->query($G);if(is_object($H)){while($J=$H->fetch_row()){if($nh)$I[$J[0]]=$J[1];else$I[]=$J[0];}}return$I;}function
+get_rows($G,$h=null,$n="
"){global$g;$xb=(is_object($h)?$h:$g);$I=array();$H=$xb->query($G);if(is_object($H)){while($J=$H->fetch_assoc())$I[]=$J;}elseif(!$H&&!is_object($h)&&$n&&defined("PAGE_HEADER"))echo$n.error()."\n";return$I;}function
+unique_array($J,$w){foreach($w
+as$v){if(preg_match("~PRIMARY|UNIQUE~",$v["type"])){$I=array();foreach($v["columns"]as$y){if(!isset($J[$y]))continue
+2;$I[$y]=$J[$y];}return$I;}}}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($Z,$p=array()){global$g,$x;$I=array();foreach((array)$Z["where"]as$y=>$X){$y=bracket_escape($y,1);$e=escape_key($y);$I[]=$e.($x=="sql"&&is_numeric($X)&&preg_match('~\.~',$X)?" LIKE ".q($X):($x=="mssql"?" LIKE ".q(preg_replace('~[_%[]~','[\0]',$X)):" = ".unconvert_field($p[$y],q($X))));if($x=="sql"&&preg_match('~char|text~',$p[$y]["type"])&&preg_match("~[^ -@]~",$X))$I[]="$e = ".q($X)." COLLATE ".charset($g)."_bin";}foreach((array)$Z["null"]as$y)$I[]=escape_key($y)." IS NULL";return
implode(" AND ",$I);}function
-where_check($X,$q=array()){parse_str($X,$db);remove_slashes(array(&$db));return
-where($db,$q);}function
-where_link($t,$e,$Y,$uf="="){return"&where%5B$t%5D%5Bcol%5D=".urlencode($e)."&where%5B$t%5D%5Bop%5D=".urlencode(($Y!==null?$uf:"IS NULL"))."&where%5B$t%5D%5Bval%5D=".urlencode($Y);}function
-convert_fields($f,$q,$L=array()){$I="";foreach($f
-as$z=>$X){if($L&&!in_array(idf_escape($z),$L))continue;$Ga=convert_field($q[$z]);if($Ga)$I.=", $Ga AS ".idf_escape($z);}return$I;}function
+where_check($X,$p=array()){parse_str($X,$db);remove_slashes(array(&$db));return
+where($db,$p);}function
+where_link($s,$e,$Y,$tf="="){return"&where%5B$s%5D%5Bcol%5D=".urlencode($e)."&where%5B$s%5D%5Bop%5D=".urlencode(($Y!==null?$tf:"IS NULL"))."&where%5B$s%5D%5Bval%5D=".urlencode($Y);}function
+convert_fields($f,$p,$L=array()){$I="";foreach($f
+as$y=>$X){if($L&&!in_array(idf_escape($y),$L))continue;$Ga=convert_field($p[$y]);if($Ga)$I.=", $Ga AS ".idf_escape($y);}return$I;}function
cookie($C,$Y,$ve=2592000){global$ba;return
header("Set-Cookie: $C=".urlencode($Y).($ve?"; expires=".gmdate("D, d M Y H:i:s",time()+$ve)." GMT":"")."; path=".preg_replace('~\?.*~','',$_SERVER["REQUEST_URI"]).($ba?"; secure":"")."; HttpOnly; SameSite=lax",false);}function
restart_session(){if(!ini_bool("session.use_cookies"))session_start();}function
-stop_session($bd=false){$Qi=ini_bool("session.use_cookies");if(!$Qi||$bd){session_write_close();if($Qi&&@ini_set("session.use_cookies",false)===false)session_start();}}function&get_session($z){return$_SESSION[$z][DRIVER][SERVER][$_GET["username"]];}function
-set_session($z,$X){$_SESSION[$z][DRIVER][SERVER][$_GET["username"]]=$X;}function
-auth_url($Yi,$N,$V,$m=null){global$ec;preg_match('~([^?]*)\??(.*)~',remove_from_uri(implode("|",array_keys($ec))."|username|".($m!==null?"db|":"").session_name()),$B);return"$B[1]?".(sid()?SID."&":"").($Yi!="server"||$N!=""?urlencode($Yi)."=".urlencode($N)."&":"")."username=".urlencode($V).($m!=""?"&db=".urlencode($m):"").($B[2]?"&$B[2]":"");}function
+stop_session($bd=false){$Pi=ini_bool("session.use_cookies");if(!$Pi||$bd){session_write_close();if($Pi&&@ini_set("session.use_cookies",false)===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($Xi,$N,$V,$l=null){global$ec;preg_match('~([^?]*)\??(.*)~',remove_from_uri(implode("|",array_keys($ec))."|username|".($l!==null?"db|":"").session_name()),$B);return"$B[1]?".(sid()?SID."&":"").($Xi!="server"||$N!=""?urlencode($Xi)."=".urlencode($N)."&":"")."username=".urlencode($V).($l!=""?"&db=".urlencode($l):"").($B[2]?"&$B[2]":"");}function
is_ajax(){return($_SERVER["HTTP_X_REQUESTED_WITH"]=="XMLHttpRequest");}function
-redirect($xe,$Le=null){if($Le!==null){restart_session();$_SESSION["messages"][preg_replace('~^[^?]*~','',($xe!==null?$xe:$_SERVER["REQUEST_URI"]))][]=$Le;}if($xe!==null){if($xe=="")$xe=".";header("Location: $xe");exit;}}function
-query_redirect($G,$xe,$Le,$Bg=true,$Cc=true,$Nc=false,$fi=""){global$g,$o,$b;if($Cc){$Dh=microtime(true);$Nc=!$g->query($G);$fi=format_time($Dh);}$zh="";if($G)$zh=$b->messageQuery($G,$fi,$Nc);if($Nc){$o=error().$zh.script("messagesPrint();");return
-false;}if($Bg)redirect($xe,$Le.$zh);return
+redirect($A,$Ke=null){if($Ke!==null){restart_session();$_SESSION["messages"][preg_replace('~^[^?]*~','',($A!==null?$A:$_SERVER["REQUEST_URI"]))][]=$Ke;}if($A!==null){if($A=="")$A=".";header("Location: $A");exit;}}function
+query_redirect($G,$A,$Ke,$Ag=true,$Cc=true,$Nc=false,$ei=""){global$g,$n,$b;if($Cc){$Ch=microtime(true);$Nc=!$g->query($G);$ei=format_time($Ch);}$yh="";if($G)$yh=$b->messageQuery($G,$ei,$Nc);if($Nc){$n=error().$yh.script("messagesPrint();");return
+false;}if($Ag)redirect($A,$Ke.$yh);return
true;}function
-queries($G){global$g;static$vg=array();static$Dh;if(!$Dh)$Dh=microtime(true);if($G===null)return
-array(implode("\n",$vg),format_time($Dh));$vg[]=(preg_match('~;$~',$G)?"DELIMITER ;;\n$G;\nDELIMITER ":$G).";";return$g->query($G);}function
+queries($G){global$g;static$ug=array();static$Ch;if(!$Ch)$Ch=microtime(true);if($G===null)return
+array(implode("\n",$ug),format_time($Ch));$ug[]=(preg_match('~;$~',$G)?"DELIMITER ;;\n$G;\nDELIMITER ":$G).";";return$g->query($G);}function
apply_queries($G,$S,$zc='table'){foreach($S
as$Q){if(!queries("$G ".$zc($Q)))return
false;}return
true;}function
-queries_redirect($xe,$Le,$Bg){list($vg,$fi)=queries(null);return
-query_redirect($vg,$xe,$Le,$Bg,false,!$Bg,$fi);}function
-format_time($Dh){return
-sprintf('%.3f s',max(0,microtime(true)-$Dh));}function
-remove_from_uri($Nf=""){return
-substr(preg_replace("~(?<=[?&])($Nf".(SID?"":"|".session_name()).")=[^&]*&~",'',"$_SERVER[REQUEST_URI]&"),0,-1);}function
-pagination($E,$Jb){return" ".($E==$Jb?$E+1:''.($E+1)."");}function
-get_file($z,$Rb=false){$Tc=$_FILES[$z];if(!$Tc)return
+queries_redirect($A,$Ke,$Ag){list($ug,$ei)=queries(null);return
+query_redirect($ug,$A,$Ke,$Ag,false,!$Ag,$ei);}function
+format_time($Ch){return
+sprintf('%.3f s',max(0,microtime(true)-$Ch));}function
+remove_from_uri($Mf=""){return
+substr(preg_replace("~(?<=[?&])($Mf".(SID?"":"|".session_name()).")=[^&]*&~",'',"$_SERVER[REQUEST_URI]&"),0,-1);}function
+pagination($E,$Kb){return" ".($E==$Kb?$E+1:''.($E+1)."");}function
+get_file($y,$Sb=false){$Tc=$_FILES[$y];if(!$Tc)return
null;foreach($Tc
-as$z=>$X)$Tc[$z]=(array)$X;$I='';foreach($Tc["error"]as$z=>$o){if($o)return$o;$C=$Tc["name"][$z];$ni=$Tc["tmp_name"][$z];$_b=file_get_contents($Rb&&preg_match('~\.gz$~',$C)?"compress.zlib://$ni":$ni);if($Rb){$Dh=substr($_b,0,3);if(function_exists("iconv")&&preg_match("~^\xFE\xFF|^\xFF\xFE~",$Dh,$Hg))$_b=iconv("utf-16","utf-8",$_b);elseif($Dh=="\xEF\xBB\xBF")$_b=substr($_b,3);$I.=$_b."\n\n";}else$I.=$_b;}return$I;}function
-upload_error($o){$Ie=($o==UPLOAD_ERR_INI_SIZE?ini_get("upload_max_filesize"):0);return($o?'Unable to upload a file.'.($Ie?" ".sprintf('Maximum allowed file size is %sB.',$Ie):""):'File does not exist.');}function
-repeat_pattern($ag,$te){return
-str_repeat("$ag{0,65535}",$te/65535)."$ag{0,".($te%65535)."}";}function
+as$y=>$X)$Tc[$y]=(array)$X;$I='';foreach($Tc["error"]as$y=>$n){if($n)return$n;$C=$Tc["name"][$y];$mi=$Tc["tmp_name"][$y];$_b=file_get_contents($Sb&&preg_match('~\.gz$~',$C)?"compress.zlib://$mi":$mi);if($Sb){$Ch=substr($_b,0,3);if(function_exists("iconv")&&preg_match("~^\xFE\xFF|^\xFF\xFE~",$Ch,$Gg))$_b=iconv("utf-16","utf-8",$_b);elseif($Ch=="\xEF\xBB\xBF")$_b=substr($_b,3);$I.=$_b."\n\n";}else$I.=$_b;}return$I;}function
+upload_error($n){$He=($n==UPLOAD_ERR_INI_SIZE?ini_get("upload_max_filesize"):0);return($n?'Unable to upload a file.'.($He?" ".sprintf('Maximum allowed file size is %sB.',$He):""):'File does not exist.');}function
+repeat_pattern($Zf,$te){return
+str_repeat("$Zf{0,65535}",$te/65535)."$Zf{0,".($te%65535)."}";}function
is_utf8($X){return(preg_match('~~u',$X)&&!preg_match('~[\0-\x8\xB\xC\xE-\x1F]~',$X));}function
-shorten_utf8($P,$te=80,$Lh=""){if(!preg_match("(^(".repeat_pattern("[\t\r\n -\x{10FFFF}]",$te).")($)?)u",$P,$B))preg_match("(^(".repeat_pattern("[\t\r\n -~]",$te).")($)?)",$P,$B);return
-h($B[1]).$Lh.(isset($B[2])?"":"…");}function
+shorten_utf8($P,$te=80,$Kh=""){if(!preg_match("(^(".repeat_pattern("[\t\r\n -\x{10FFFF}]",$te).")($)?)u",$P,$B))preg_match("(^(".repeat_pattern("[\t\r\n -~]",$te).")($)?)",$P,$B);return
+h($B[1]).$Kh.(isset($B[2])?"":"…");}function
format_number($X){return
strtr(number_format($X,0,".",','),preg_split('~~u','0123456789',-1,PREG_SPLIT_NO_EMPTY));}function
friendly_url($X){return
preg_replace('~[^a-z0-9_]~i','-',$X);}function
-hidden_fields($qg,$Fd=array()){$I=false;while(list($z,$X)=each($qg)){if(!in_array($z,$Fd)){if(is_array($X)){foreach($X
-as$de=>$W)$qg[$z."[$de]"]=$W;}else{$I=true;echo'';}}}return$I;}function
+hidden_fields($pg,$Fd=array()){$I=false;while(list($y,$X)=each($pg)){if(!in_array($y,$Fd)){if(is_array($X)){foreach($X
+as$de=>$W)$pg[$y."[$de]"]=$W;}else{$I=true;echo'';}}}return$I;}function
hidden_fields_get(){echo(sid()?'':''),(SERVER!==null?'':""),'';}function
table_status1($Q,$Oc=false){$I=table_status($Q,$Oc);return($I?$I:array("Name"=>$Q));}function
-column_foreign_keys($Q){global$b;$I=array();foreach($b->foreignKeys($Q)as$r){foreach($r["source"]as$X)$I[$X][]=$r;}return$I;}function
-enum_input($T,$Ja,$p,$Y,$tc=null){global$b;preg_match_all("~'((?:[^']|'')*)'~",$p["length"],$De);$I=($tc!==null?"":"");foreach($De[1]as$t=>$X){$X=stripcslashes(str_replace("''","'",$X));$fb=(is_int($Y)?$Y==$t+1:(is_array($Y)?in_array($t+1,$Y):$Y===$X));$I.=" ';}return$I;}function
-input($p,$Y,$s){global$U,$b,$y;$C=h(bracket_escape($p["field"]));echo"
".($X!=array_values($X)?"| ".h($de):"")." | ".select_value($W,$_,$o,$di);return"";}if(!$_)$_=$b->selectLink($X,$o);if($_===null){if(is_mail($X))$_="mailto:$X";if(is_url($X))$_=$X;}$I=$b->editVal($X,$o);if($I!==null){if(!is_utf8($I))$I="\0";elseif($di!=""&&is_shortable($o))$I=shorten_utf8($I,max(0,+$di));else$I=h($I);}return$b->selectVal($I,$_,$o,$X);}function
+is_mail($qc){$Ha='[-a-z0-9!#$%&\'*+/=?^_`{|}~]';$dc='[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])';$Zf="$Ha+(\\.$Ha+)*@($dc?\\.)+$dc";return
+is_string($qc)&&preg_match("(^$Zf(,\\s*$Zf)*\$)i",$qc);}function
is_url($P){$dc='[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])';return
preg_match("~^(https?)://($dc?\\.)+$dc(:\\d+)?(/.*)?(\\?.*)?(#.*)?\$~i",$P);}function
-is_shortable($p){return
-preg_match('~char|text|json|lob|geometry|point|linestring|polygon|string|bytea~',$p["type"]);}function
-count_rows($Q,$Z,$Yd,$nd){global$y;$G=" FROM ".table($Q).($Z?" WHERE ".implode(" AND ",$Z):"");return($Yd&&($y=="sql"||count($nd)==1)?"SELECT COUNT(DISTINCT ".implode(", ",$nd).")$G":"SELECT COUNT(*)".($Yd?" FROM (SELECT 1$G GROUP BY ".implode(", ",$nd).") x":$G));}function
-slow_query($G){global$b,$pi,$n;$m=$b->database();$gi=$b->queryTimeout();$th=$n->slowQuery($G,$gi);if(!$th&&support("kill")&&is_object($h=connect())&&($m==""||$h->select_db($m))){$ie=$h->result(connection_id());echo'
-';}else$h=null;ob_flush();flush();$I=@get_key_vals(($th?$th:$G),$h,false);if($h){echo
+';}else$h=null;ob_flush();flush();$I=@get_key_vals(($sh?$sh:$G),$h,false);if($h){echo
script("clearTimeout(timeout);");ob_flush();flush();}return$I;}function
-get_token(){$yg=rand(1,1e6);return($yg^$_SESSION["token"]).":$yg";}function
-verify_token(){list($pi,$yg)=explode(":",$_POST["token"]);return($yg^$_SESSION["token"])==$pi;}function
-lzw_decompress($Sa){$Zb=256;$Ta=8;$mb=array();$Ng=0;$Og=0;for($t=0;$t=$Ta){$Og-=$Ta;$mb[]=$Ng>>$Og;$Ng&=(1<<$Og)-1;$Zb++;if($Zb>>$Ta)$Ta++;}}$Yb=range("\0","\xFF");$I="";foreach($mb
-as$t=>$lb){$pc=$Yb[$lb];if(!isset($pc))$pc=$nj.$nj[0];$I.=$pc;if($t)$Yb[]=$nj.$pc[0];$nj=$pc;}return$I;}function
-on_help($sb,$qh=0){return
-script("mixin(qsl('select, input'), {onmouseover: function (event) { helpMouseover.call(this, event, $sb, $qh) }, onmouseout: helpMouseout});","");}function
-edit_form($a,$q,$J,$Ki){global$b,$y,$pi,$o;$Qh=$b->tableName(table_status1($a,true));page_header(($Ki?'Edit':'Insert'),$o,array("select"=>array($a,$Qh)),$Qh);if($J===false)echo" ".'No rows.'."\n";echo' \n";}function
tablesPrint($S){echo"".script("mixin(qs('#tables'), {onmouseover: menuOver, onmouseout: menuOut});");foreach($S
-as$Q=>$Fh){$C=$this->tableName($Fh);if($C!=""){echo'- ".'select'." ",(support("table")||support("indexes")?'$C":"$C")."\n";}}echo"
\n";}}$b=(function_exists('adminer_object')?adminer_object():new
-Adminer);if($b->operators===null)$b->operators=$vf;function
-page_header($ii,$o="",$Xa=array(),$ji=""){global$ca,$ia,$b,$ec,$y;page_headers();if(is_ajax()&&$o){page_messages($o);exit;}$ki=$ii.($ji!=""?": $ji":"");$li=strip_tags($ki.(SERVER!=""&&SERVER!="localhost"?h(" - ".SERVER):"")." - ".$b->name());echo'
+as$Q=>$Eh){$C=$this->tableName($Eh);if($C!=""){echo'".'select'." ",(support("table")||support("indexes")?'$C":"$C")."\n";}}echo"\n";}}$b=(function_exists('adminer_object')?adminer_object():new
+Adminer);if($b->operators===null)$b->operators=$uf;function
+page_header($hi,$n="",$Xa=array(),$ii=""){global$ca,$ia,$b,$ec,$x;page_headers();if(is_ajax()&&$n){page_messages($n);exit;}$ji=$hi.($ii!=""?": $ii":"");$ki=strip_tags($ji.(SERVER!=""&&SERVER!="localhost"?h(" - ".SERVER):"")." - ".$b->name());echo'
-',$li,'
-
-',script_src(preg_replace("~\\?.*~","",ME)."?file=functions.js&version=4.7.3");if($b->head()){echo'
-
-';foreach($b->css()as$Ib){echo'
+',$ki,'
+
+',script_src(preg_replace("~\\?.*~","",ME)."?file=functions.js&version=4.7.4");if($b->head()){echo'
+
+';foreach($b->css()as$Jb){echo'
';}}echo'
-';$Uc=get_temp_dir()."/adminer.version";if(!$_COOKIE["adminer_version"]&&function_exists('openssl_verify')&&file_exists($Uc)&&filemtime($Uc)+86400>time()){$Zi=unserialize(file_get_contents($Uc));$tg="-----BEGIN PUBLIC KEY-----
+';$Uc=get_temp_dir()."/adminer.version";if(!$_COOKIE["adminer_version"]&&function_exists('openssl_verify')&&file_exists($Uc)&&filemtime($Uc)+86400>time()){$Yi=unserialize(file_get_contents($Uc));$sg="-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwqWOVuF5uw7/+Z70djoK
RlHIZFZPO0uYRezq90+7Amk+FDNd7KkL5eDve+vHRJBLAszF/7XKXe11xwliIsFs
DFWQlsABVZB3oisKCBEuI71J4kPH8dKGEWR9jDHFw3cWmoH3PmqImX6FISWbG3B8
@@ -1667,7 +1667,7 @@ jHnq1cFpOIISzARlrHMa/43YfeNRAm/tsBXjSxembBPo7aQZLAWHmaj5+K19H10B
nCpz9Y++cipkVEiKRGih4ZEvjoFysEOdRLj6WiD/uUNky4xGeA6LaJqh5XpkFkcQ
fQIDAQAB
-----END PUBLIC KEY-----
-";if(openssl_verify($Zi["version"],base64_decode($Zi["signature"]),$tg)==1)$_COOKIE["adminer_version"]=$Zi["version"];}echo'
-
+
',script("mixin(qs('#help'), {onmouseover: function () { helpOpen = 1; }, onmouseout: helpMouseout});"),'
-';if($Xa!==null){$A=substr(preg_replace('~\b(username|db|ns)=[^&]*&~','',ME),0,-1);echo' '.$ec[DRIVER].' » ';$A=substr(preg_replace('~\b(db|ns)=[^&]*&~','',ME),0,-1);$N=$b->serverName(SERVER);$N=($N!=""?$N:'Server');if($Xa===false)echo"$N\n";else{echo"$N » ";if($_GET["ns"]!=""||(DB!=""&&is_array($Xa)))echo''.h(DB).' » ';if(is_array($Xa)){if($_GET["ns"]!="")echo''.h($_GET["ns"]).' » ';foreach($Xa
-as$z=>$X){$Wb=(is_array($X)?$X[1]:h($X));if($Wb!="")echo"$Wb » ";}}echo"$ii\n";}}echo" $ki\n"," \n";restart_session();page_messages($o);$l=&get_session("dbs");if(DB!=""&&$l&&!in_array(DB,$l,true))$l=null;stop_session();define("PAGE_HEADER",1);}function
-page_headers(){global$b;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($b->csp()as$Hb){$wd=array();foreach($Hb
-as$z=>$X)$wd[]="$z $X";header("Content-Security-Policy: ".implode("; ",$wd));}$b->headers();}function
+';if($Xa!==null){$_=substr(preg_replace('~\b(username|db|ns)=[^&]*&~','',ME),0,-1);echo' '.$ec[DRIVER].' » ';$_=substr(preg_replace('~\b(db|ns)=[^&]*&~','',ME),0,-1);$N=$b->serverName(SERVER);$N=($N!=""?$N:'Server');if($Xa===false)echo"$N\n";else{echo"$N » ";if($_GET["ns"]!=""||(DB!=""&&is_array($Xa)))echo''.h(DB).' » ';if(is_array($Xa)){if($_GET["ns"]!="")echo''.h($_GET["ns"]).' » ';foreach($Xa
+as$y=>$X){$Xb=(is_array($X)?$X[1]:h($X));if($Xb!="")echo"$Xb » ";}}echo"$hi\n";}}echo" $ji\n"," \n";restart_session();page_messages($n);$k=&get_session("dbs");if(DB!=""&&$k&&!in_array(DB,$k,true))$k=null;stop_session();define("PAGE_HEADER",1);}function
+page_headers(){global$b;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($b->csp()as$Ib){$wd=array();foreach($Ib
+as$y=>$X)$wd[]="$y $X";header("Content-Security-Policy: ".implode("; ",$wd));}$b->headers();}function
csp(){return
array(array("script-src"=>"'self' 'unsafe-inline' 'nonce-".get_nonce()."' 'strict-dynamic'","connect-src"=>"'self'","frame-src"=>"https://www.adminer.org","object-src"=>"'none'","base-uri"=>"'none'","form-action"=>"'self'",),);}function
-get_nonce(){static$df;if(!$df)$df=base64_encode(rand_string());return$df;}function
-page_messages($o){$Li=preg_replace('~^[^?]*~','',$_SERVER["REQUEST_URI"]);$Pe=$_SESSION["messages"][$Li];if($Pe){echo" ".implode(" \n ",$Pe)." ".script("messagesPrint();");unset($_SESSION["messages"][$Li]);}if($o)echo" $o \n";}function
-page_footer($Te=""){global$b,$pi;echo'
+get_nonce(){static$cf;if(!$cf)$cf=base64_encode(rand_string());return$cf;}function
+page_messages($n){$Ki=preg_replace('~^[^?]*~','',$_SERVER["REQUEST_URI"]);$Oe=$_SESSION["messages"][$Ki];if($Oe){echo"".implode(" \n",$Oe)." ".script("messagesPrint();");unset($_SESSION["messages"][$Ki]);}if($n)echo"$n \n";}function
+page_footer($Se=""){global$b,$oi;echo'
-';if($Te!="auth"){echo'
';}echo'
+';$b->navigation($Se);echo'
',script("setupSubmitHighlight(document);");}function
-int32($We){while($We>=2147483648)$We-=4294967296;while($We<=-2147483649)$We+=4294967296;return(int)$We;}function
-long2str($W,$dj){$Yg='';foreach($W
-as$X)$Yg.=pack('V',$X);if($dj)return
-substr($Yg,0,end($W));return$Yg;}function
-str2long($Yg,$dj){$W=array_values(unpack('V*',str_pad($Yg,4*ceil(strlen($Yg)/4),"\0")));if($dj)$W[]=strlen($Yg);return$W;}function
-xxtea_mx($qj,$pj,$Mh,$de){return
-int32((($qj>>5&0x7FFFFFF)^$pj<<2)+(($pj>>3&0x1FFFFFFF)^$qj<<4))^int32(($Mh^$pj)+($de^$qj));}function
-encrypt_string($Hh,$z){if($Hh=="")return"";$z=array_values(unpack("V*",pack("H*",md5($z))));$W=str2long($Hh,true);$We=count($W)-1;$qj=$W[$We];$pj=$W[0];$ug=floor(6+52/($We+1));$Mh=0;while($ug-->0){$Mh=int32($Mh+0x9E3779B9);$lc=$Mh>>2&3;for($Lf=0;$Lf<$We;$Lf++){$pj=$W[$Lf+1];$Ve=xxtea_mx($qj,$pj,$Mh,$z[$Lf&3^$lc]);$qj=int32($W[$Lf]+$Ve);$W[$Lf]=$qj;}$pj=$W[0];$Ve=xxtea_mx($qj,$pj,$Mh,$z[$Lf&3^$lc]);$qj=int32($W[$We]+$Ve);$W[$We]=$qj;}return
+int32($Ve){while($Ve>=2147483648)$Ve-=4294967296;while($Ve<=-2147483649)$Ve+=4294967296;return(int)$Ve;}function
+long2str($W,$cj){$Xg='';foreach($W
+as$X)$Xg.=pack('V',$X);if($cj)return
+substr($Xg,0,end($W));return$Xg;}function
+str2long($Xg,$cj){$W=array_values(unpack('V*',str_pad($Xg,4*ceil(strlen($Xg)/4),"\0")));if($cj)$W[]=strlen($Xg);return$W;}function
+xxtea_mx($pj,$oj,$Lh,$de){return
+int32((($pj>>5&0x7FFFFFF)^$oj<<2)+(($oj>>3&0x1FFFFFFF)^$pj<<4))^int32(($Lh^$oj)+($de^$pj));}function
+encrypt_string($Gh,$y){if($Gh=="")return"";$y=array_values(unpack("V*",pack("H*",md5($y))));$W=str2long($Gh,true);$Ve=count($W)-1;$pj=$W[$Ve];$oj=$W[0];$tg=floor(6+52/($Ve+1));$Lh=0;while($tg-->0){$Lh=int32($Lh+0x9E3779B9);$lc=$Lh>>2&3;for($Kf=0;$Kf<$Ve;$Kf++){$oj=$W[$Kf+1];$Ue=xxtea_mx($pj,$oj,$Lh,$y[$Kf&3^$lc]);$pj=int32($W[$Kf]+$Ue);$W[$Kf]=$pj;}$oj=$W[0];$Ue=xxtea_mx($pj,$oj,$Lh,$y[$Kf&3^$lc]);$pj=int32($W[$Ve]+$Ue);$W[$Ve]=$pj;}return
long2str($W,false);}function
-decrypt_string($Hh,$z){if($Hh=="")return"";if(!$z)return
-false;$z=array_values(unpack("V*",pack("H*",md5($z))));$W=str2long($Hh,false);$We=count($W)-1;$qj=$W[$We];$pj=$W[0];$ug=floor(6+52/($We+1));$Mh=int32($ug*0x9E3779B9);while($Mh){$lc=$Mh>>2&3;for($Lf=$We;$Lf>0;$Lf--){$qj=$W[$Lf-1];$Ve=xxtea_mx($qj,$pj,$Mh,$z[$Lf&3^$lc]);$pj=int32($W[$Lf]-$Ve);$W[$Lf]=$pj;}$qj=$W[$We];$Ve=xxtea_mx($qj,$pj,$Mh,$z[$Lf&3^$lc]);$pj=int32($W[0]-$Ve);$W[0]=$pj;$Mh=int32($Mh-0x9E3779B9);}return
-long2str($W,true);}$g='';$vd=$_SESSION["token"];if(!$vd)$_SESSION["token"]=rand(1,1e6);$pi=get_token();$bg=array();if($_COOKIE["adminer_permanent"]){foreach(explode(" ",$_COOKIE["adminer_permanent"])as$X){list($z)=explode(":",$X);$bg[$z]=$X;}}function
-add_invalid_login(){global$b;$id=file_open_lock(get_temp_dir()."/adminer.invalid");if(!$id)return;$Wd=unserialize(stream_get_contents($id));$fi=time();if($Wd){foreach($Wd
-as$Xd=>$X){if($X[0]<$fi)unset($Wd[$Xd]);}}$Vd=&$Wd[$b->bruteForceKey()];if(!$Vd)$Vd=array($fi+30*60,0);$Vd[1]++;file_write_unlock($id,serialize($Wd));}function
-check_invalid_login(){global$b;$Wd=unserialize(@file_get_contents(get_temp_dir()."/adminer.invalid"));$Vd=$Wd[$b->bruteForceKey()];$cf=($Vd[1]>29?$Vd[0]-time():0);if($cf>0)auth_error(lang(array('Too many unsuccessful logins, try again in %d minute.','Too many unsuccessful logins, try again in %d minutes.'),ceil($cf/60)));}$Ka=$_POST["auth"];if($Ka){session_regenerate_id();$Yi=$Ka["driver"];$N=$Ka["server"];$V=$Ka["username"];$F=(string)$Ka["password"];$m=$Ka["db"];set_password($Yi,$N,$V,$F);$_SESSION["db"][$Yi][$N][$V][$m]=true;if($Ka["permanent"]){$z=base64_encode($Yi)."-".base64_encode($N)."-".base64_encode($V)."-".base64_encode($m);$ng=$b->permanentLogin(true);$bg[$z]="$z:".base64_encode($ng?encrypt_string($F,$ng):"");cookie("adminer_permanent",implode(" ",$bg));}if(count($_POST)==1||DRIVER!=$Yi||SERVER!=$N||$_GET["username"]!==$V||DB!=$m)redirect(auth_url($Yi,$N,$V,$m));}elseif($_POST["logout"]){if($vd&&!verify_token()){page_header('Logout','Invalid CSRF token. Send the form again.');page_footer("db");exit;}else{foreach(array("pwds","db","dbs","queries")as$z)set_session($z,null);unset_permanent();redirect(substr(preg_replace('~\b(username|db|ns)=[^&]*&~','',ME),0,-1),'Logout successful.'.' '.'Thanks for using Adminer, consider donating.');}}elseif($bg&&!$_SESSION["pwds"]){session_regenerate_id();$ng=$b->permanentLogin();foreach($bg
-as$z=>$X){list(,$jb)=explode(":",$X);list($Yi,$N,$V,$m)=array_map('base64_decode',explode("-",$z));set_password($Yi,$N,$V,decrypt_string(base64_decode($jb),$ng));$_SESSION["db"][$Yi][$N][$V][$m]=true;}}function
-unset_permanent(){global$bg;foreach($bg
-as$z=>$X){list($Yi,$N,$V,$m)=array_map('base64_decode',explode("-",$z));if($Yi==DRIVER&&$N==SERVER&&$V==$_GET["username"]&&$m==DB)unset($bg[$z]);}cookie("adminer_permanent",implode(" ",$bg));}function
-auth_error($o){global$b,$vd;$nh=session_name();if(isset($_GET["username"])){header("HTTP/1.1 403 Forbidden");if(($_COOKIE[$nh]||$_GET[$nh])&&!$vd)$o='Session expired, please login again.';else{restart_session();add_invalid_login();$F=get_password();if($F!==null){if($F===false)$o.=' '.sprintf('Master password expired. Implement %s method to make it permanent.',target_blank(),'permanentLogin()');set_password(DRIVER,SERVER,$_GET["username"],null);}unset_permanent();}}if(!$_COOKIE[$nh]&&$_GET[$nh]&&ini_bool("session.use_only_cookies"))$o='Session support must be enabled.';$Of=session_get_cookie_params();cookie("adminer_key",($_COOKIE["adminer_key"]?$_COOKIE["adminer_key"]:rand_string()),$Of["lifetime"]);page_header('Login',$o,null);echo"\n";page_footer("auth");exit;}if(isset($_GET["username"])&&!class_exists("Min_DB")){unset($_SESSION["pwds"][DRIVER]);unset_permanent();page_header('No extension',sprintf('None of the supported PHP extensions (%s) are available.',implode(", ",$hg)),false);page_footer("auth");exit;}stop_session(true);if(isset($_GET["username"])&&is_string(get_password())){list($Ad,$dg)=explode(":",SERVER,2);if(is_numeric($dg)&&$dg<1024)auth_error('Connecting to privileged ports is not allowed.');check_invalid_login();$g=connect();$n=new
-Min_Driver($g);}$ye=null;if(!is_object($g)||($ye=$b->login($_GET["username"],get_password()))!==true){$o=(is_string($g)?h($g):(is_string($ye)?$ye:'Invalid credentials.'));auth_error($o.(preg_match('~^ | $~',get_password())?' '.'There is a space in the input password which might be the cause.':''));}if($Ka&&$_POST["token"])$_POST["token"]=$pi;$o='';if($_POST){if(!verify_token()){$Qd="max_input_vars";$Je=ini_get($Qd);if(extension_loaded("suhosin")){foreach(array("suhosin.request.max_vars","suhosin.post.max_vars")as$z){$X=ini_get($z);if($X&&(!$Je||$X<$Je)){$Qd=$z;$Je=$X;}}}$o=(!$_POST["token"]&&$Je?sprintf('Maximum number of allowed fields exceeded. Please increase %s.',"'$Qd'"):'Invalid CSRF token. Send the form again.'.' '.'If you did not send this request from Adminer then close this page.');}}elseif($_SERVER["REQUEST_METHOD"]=="POST"){$o=sprintf('Too big POST data. Reduce the data or increase the %s configuration directive.',"'post_max_size'");if(isset($_GET["sql"]))$o.=' '.'You can upload a big SQL file via FTP and import it from server.';}function
-select($H,$h=null,$Cf=array(),$_=0){global$y;$we=array();$x=array();$f=array();$Ua=array();$U=array();$I=array();odd('');for($t=0;(!$_||$t<$_)&&($J=$H->fetch_row());$t++){if(!$t){echo"":"".'No rows.')."\n";return$I;}function
-referencable_primary($hh){$I=array();foreach(table_status('',true)as$Qh=>$Q){if($Qh!=$hh&&fk_support($Q)){foreach(fields($Qh)as$p){if($p["primary"]){if($I[$Qh]){unset($I[$Qh]);break;}$I[$Qh]=$p;}}}}return$I;}function
-adminer_settings(){parse_str($_COOKIE["adminer_settings"],$ph);return$ph;}function
-adminer_setting($z){$ph=adminer_settings();return$ph[$z];}function
-set_adminer_settings($ph){return
-cookie("adminer_settings",http_build_query($ph+adminer_settings()));}function
-textarea($C,$Y,$K=10,$rb=80){global$y;echo" |