· 8 years ago · Jan 28, 2018, 07:42 AM
1<?php
2/** Adminer Editor - Compact database editor
3* @link https://www.adminer.org/
4* @author Jakub Vrana, https://www.vrana.cz/
5* @copyright 2009 Jakub Vrana
6* @license https://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
7* @license https://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
8* @version 4.5.0
9*/error_reporting(6135);$Jb=!preg_match('~^(unsafe_raw)?$~',ini_get("filter.default"));if($Jb||ini_get("filter.default_flags")){foreach(array('_GET','_POST','_COOKIE','_SERVER')as$W){$Je=filter_input_array(constant("INPUT$W"),FILTER_UNSAFE_RAW);if($Je)$$W=$Je;}}if(function_exists("mb_internal_encoding"))mb_internal_encoding("8bit");if(isset($_GET["file"])){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");if($_GET["file"]=="favicon.ico"){header("Content-Type: image/x-icon");echo
10lzw_decompress("\0\0\0` \0„\0\n @\0´C„è\"\0`EãQ¸à ÿ‡?ÀtvM'â€JdÃd\\Å’b0\0Ä\"™ÀfÓˆ¤îs5›ÃçÑAÂXPaJ“0„¥‘8„#RÅ T©‘z`ˆ#.©ÇcÃXÃþÈ€?À-\0¡Im? .«M¶€\0ȯ(̉ýÀ/(%Å’\0");}elseif($_GET["file"]=="default.css"){header("Content-Type: text/css; charset=utf-8");echo
11lzw_decompress("\n1̇“ÙŒÞl7œ‡B1„4vb0ËœÃfs‘¼ên2BÌѱ٘Þn:‡#(¼b.\rDc)ÈÈa7E„‘¤Âl¦Ã±â€Ã¨i1ÌŽs˜´ç-4™‡fÓ ÈÎi7†³é†„ŽŒFéâ€vt2ž‚Ó!–r0Ããã£t~½UÂ'3MۃW„B¦'cÃPÂ:6T\rc£A¾zr_îWK¶\r-¼VNFS%~Ãc²ÙÃ&›\\^ÊrÀ›Âæu‚ŎÞôÙ‹4'7k¶è¯ÂãQÔæhÅ¡'g\rFB\ryT7SSÂ¥PÃ1=ǤcIèÊ:Âdâ€Âºm>£S8L†JÂÅ“t.M¢ÂŠË`'C¡¼ÛÃ889¤È ŽQØýŒî2Â#8ã’˜6mú²†ðjˆ¢h«<…Œ°«Œ9/ë˜ç:ÂJê)Ê‚¤\0d>!\0Z‡ˆvì»në¾ð¼o(򗴃kÔ7½Âsà ù>Œî†!ÃR\"*nSý\0@P\"Ãè’(‹#[¶¥£@g¹oüÂ’znþ9k¤8†nš™ª1´I*ˆô=Ãn²¤ªÂ¸è0«c(ö;¾Ã Ãè!°üë*cì÷>ÎŽ¬E7DñLJ© 1Èä·ã`Â8(áÕ3M¨ó\"Ç39é?EÂe=Ò¬ü~ù¾²ôÅîÓ¸7;ÉCÄÛÃE\rd!)Âa*¯5ajo\0ª#`Ê38¶\0ÊÃ]“eŒêˆÆ2¤ mk×øe]…ÃÂAZsÕStZ•Z!)BR¨G+ÃŽ#Jv2(ã öîc…4<¸#sB¯0éú‚6YL\r²=£…¿[×73Æð<Ô:£Šbxâ€ÃŸJ= m_ ¾ÃÃ…fªlÙ×t‹åIªƒHÚ3Âx*€›á6`t6¾Ã%ÂUÔLòeÙ‚˜<´\0ÉAQ<P<:Å¡#u/¤:T\\> Ë-…xJˆÃÂQH\nj¡L+jÃzðó°7£•«`Ãð޳\nkÆ’Æ’'“NÓvX>îC-TË©¶œ¸Â†4*Lâ€%Cj>7ߨŠÞ¨¨è-ŽƒÈà 2‡¹pÂ3Œ¢îb–à Ù¥°¨çÞv>ñœp\\²ŒÃê6_HˆÛ»CxïW†1OjùAÂwH7q£ \\ÉŽ#¨ÒÉ®ýrÅ’4v=ŸnòvÑO‰–÷Â6‡gWpß×ù'eÚy¯—ŸÃ÷¡pî0Â#z6=ÙÖ€u¡º\\_Ä.¬â£>H<rÞ+cz%}®w÷ÈVˆA*€¸Ã—B>dR:\rê‰\rœðl\rÕ9´jð43•¸qm\rPN ðØAãþ`Åûõxoèm\rÃì8?ÔüÃõ, E·,U茂âêìòŸ%z®Ê›¬5õ’ˆvÂÃìvE 86H0[C¼Lmj¨2D¨¢¦Ã`pŠÑ1?ÃRÀQŽÊÛMæÅxšžbéu±ÂÃ…&˜âI-\"¡Ê§žÛV\"òÃpG\"W†±èŽ\$¦Š“J\$6†PæPÜÄu\"ˆT7CHòÖ–{÷ÂÆ HÙåÓô8FK•r#D@ÃYKKcp1¼ˆè‘ˆY\rá‡D’^X#ª–€ÂYÀ5¹\ne̲Òö\$†\" SH\$°{à ¸Â.©%ÈXF³Ji@8LÂ¥if\riñgBstDŒ¤N‚SzmMÀË9'zm‹\rx杂IüÂŽ¥Ãž-é©Ã7:q\$3pÇÃQ—f¬,𤨡Hb2]…\n€à ·'̹?PÆmCÖ‰¥rIù£4ĢXAÃPn¨ö…ÅiCxp…ðL£¬éþŸÔ\nÆ’D􂑪Hé4.Aâ€;·òŒäVqÃOf1À2\"OÉÃ>KÉ4Âs+CËœqSFL«SPr ‰@€ôÕ\"æŸS*ëLµL‚ôKä«EE±\nÆÖk)À™j’˜4u\r©I7A±’†0ê£a7pì¹€ç!sòAËœ4‡ƒ(yÑéï*o¥¨£fλ.ÂðØ2Â¥ZÇž[ VGî\$š×ê¬^Ân&1Eâ„¢)Ê€-£\r%÷ZPÞȲúˆQR#xZc,Sô ïØ¯Òâ€Ã¯lÔH.!iÃ78…e…yr6„X‹€Zî\\†lYB)\$á(—\n“ Â¥I\\Sx¸Ñ½Ã*up«û§/Ã\0p€ÂE‘xÊ4<Å’UGvxŽÂYÃ=ö…XŸ€ÇÂÊ¥ôœÃLÀ¾‚æ¨êĘ\$2CöcÃÂf!ÃŽ\nµ¹‚HAÖwÎúÈèÓÃf‰jláŒ4öé¾ ¶åBÔbL –\nO´°ì»7!À# ËtÂ7DEzÚ&²×âîŸ&T‰¥R‰ji\\]gãv!ÂÆqɬòCdÊ„k«é€“Êl™ÑÂîUP20Ã¥Bq=«Œ8ª3>û¯!’ȸÙuõ+-ÂäÂÌmDó03s\"²÷†ý£{¹x‘*+EÂ0>‚3Â.`Q–,EÂÖ–ˆ^ËœMâ€Ã·Ã‚5 eÔ]+_•>Ÿ=Ì«¥CœÙ)â„¢7Û \rŸu¿Êô8™²zÃk†@´Û#ªZY’q²Âáˆ5—]ˆQԾǟú€·‚=bnÅ b¼Äª±ŽÂ¬ÂÂËœiž¡ËEÂäJ‘u~°eÃkýu§îÃÄÖÈ0«Ã'̘n[wÞÄåŒó‚kÛ%Ã÷,â½göò)´Lˆýèà W²eâ„¢i’Ô³ˆ>ÃÜ>){¨Pðt r°„1£ÑUaÊ–\$ò.I|Âÿ#Z³šrÃ¥y&ù¯2“²:H'ë¸Ã“{*ä<ëÛ—Ñ—®;P¦Î87ô>IÂÂêÜ·Wõ¤²ž€v²2p7{'ô.[ÃŒÂk]9»8]clóõüdúG•7~cÉu…ÄÛ¦¾Ñeºÿ\$t®ùñ¾WÃÃovéO°†µ>Þ~2 gç=>ê^Žú»?JQ!FÂÃêMù!0>à ¡¡éÂä¶Ú-1@à 4°RûŒ °þ¦é_•´øsOlÂú,cÂ¥r`È·?¤u½)â€Ã‰Æ’0à e¯Ùº‹Â\"ÆÛì„üÚNÛ; mÂ>³§+ÃŽÃ¥aß·ðýC\"u4ÙlºW¾ú¿?±æÿ¤þÃu¡÷ÊBm|I®Eø\nâùúøB¿ö¦ ÷=KZkozÃO üæÿè‹e6Å“K]\0åŠÂd îµHص¤ÄAÖ");}elseif($_GET["file"]=="functions.js"){header("Content-Type: text/javascript; charset=utf-8");echo
12lzw_decompress("f:›ŒgCI¼Ü\n8ρ3)°Ë7œ…'³‘â€Ã¨u9„Cyΐm2›Ž‚ã‰ÔÊr<â€Ã¡Â°Ã³Â¤F+ˆD‡gØ\n „Ã’øtÄXcƒ§ƒ¤Lìa9¡§1ì\$Ã<–DgôÃø|ŽG¤!Hî+Œˆ)eºXºn3Â\rщvg5ÂÃ`ôê„úÂ\"ªÄëñˆÕÞ…D’I¥©ì´äA6Ná˜XÂvi¸Îˆ!†vf7Q©\0ªAž˜A9Å’'‘q„à p6Eã®\$YÂÂÈN‡1Hºti1â„¢EÃîÃp››…¨µðA˜Òéõ\"‹Q¤ç¯9g±Öü‡“9eMÅ¡8£1š¤çsú'QªÖk¶½ž÷‹¿êÜ…ØŸˆ¶0.Âsµï|kÂÓ<î`Ãç:’fê&ËÂ6Â#ÀÒáŒê,cz0Ü¢c2\\£©#XÊ<ÂPx\nÂã*'º(°·/ÃŒH971\\>·¬|Å“2Êä!ÂÆ’æ…!©ü{‰Ã\n@\$#ć\"cHÃŒ!¨šrç\"¤ì§*ÇÒ¼Œ2…È«P0·!@¤2Ή(ð88P/‚à ¸Úá\\¹\"Ká\\Ã9cà H„áHX„•Êtâ€â€¡Ã¡8A:Îòò@ô\ng2(:Z3ΏpP4Å’Ââ€6)¨PNε»-ÊÒÀÊÊd©VËáèzÀc È„ôhOJW5ØÃK7Ãó,†AÈ \rãXÃ’ÃK£HÃŽ7Æ’#FÚpà k(AèÜ2Žà Pˆ0¨NwnL`éqÜ·@\\3¢×ct…v°òÚ\\èëb‘JÆ’}›g¿Qý¤7OAÚÅ5Â(ª™:ÃK¬;\$òpò+\$ã›äÂ4-ÂXÅ’\rÂb[3#Ãâ„¢g7A8Â2A–øä/â–,ƒ¡€N7Âõ'4Rʳ}¤c+r¢*öM¹Ä¿KhÉmVã@è:Ëœt…㾬ÒåzN\"#8_–åãp^ãªE[ÎÈÆÌ:zLÀ3g#(„ˆ×c–c¶îø\\6³°xÂ2ÚZvï·6ÙðÞÄÃã=n7\rá>ñ¸¶Ã ò‡Ã½@µVẇÇpƒŸ%Ê\r\0ÃÃáˆ\\£(ÛÎIü°ÜŽápà 7óÂhËŒ7€Luư2¸‚D&9ÊU&ï:W=ÉÌ#Â1Â<Z2ñÙ?Âáž'<¤ójAÜ^›€ù¾Ç‘({à åiAõµq§ê:ž««äùN·®Ã6Ë7¾ƒÃZû.JˡRÃqC!ï Ùå¸JêNñÿ6F³ÓkõkL°@4ë@[-¬Ã®†ÔCÀ(c‰è9³à Ò =ƒ¤ñpÃØ}I¦§ LÇÉhˆeKà̱Ñ13!)´Ã5†mP!Â\r†ÀȧÞLISXÅ’À¬e‰1u(¡î º@ñ0(AÂ\$ºò†qŒäŒ£†ÂLLÖÔs¡ÂÇ6¹Âsqú=FÈÜrÃ…Å =Å¡VžúÃu(AÃŒGRLUáɵaÀ‡¤åžü…’±€2ĩD_Ê+AG8*;•bÇÂÊ¢\"«yp\0¤ÎšSZmÉ´¡ÎžÂH\$f`Å“4¬Cú¨.’aÑX̧r«Œsã2E ÙJÓºÂeññTÃ×ved®›Å)*D¦v\rÂN\rê왬RÄ%Q8ˆÃÆ0Ö¬Uó³ ‘Mi^ çš–G\$Â%Ó˜â€Ã¾!èx234·=hdIéM\r Úîè¡\r¡m“ÂNh²¢´nކÊ>×l7®r‚êGGµ&´¡*ÒµÌÂf‘Ža\r%>\n™Œk¨\$@ÚNÕ\0,¡+en¯Tªâ€â€”•.ž‡Dô SeLiâ€â€¦Ã€â€ž\nú°ÂÂ=Æ’0ú½ø/ê\rG¯E JêÚ!ª–&*•BÞ'Ãú)(<8I\"Ëœ]& n¯¡Ò‡+)ø'R»vSP‘X˜“EAC7p`ò¾WâÌHKHhm ®W¤C`¤Â=²¦Ì-†’ÃÂÊ2q÷0êÂe„I¶€‘¼à æ¢ãÚ°©ÂÂ[³#ÂbÚ\n¤qR…𴾍‰Xm)‡6JR8ÃÃÂsvBÉÚ.Lâ€,öfÃÙØ\$¢šTËV.ªAZ`]x4å¼––™Ã©ÃnnbT¢ìÃ;‰=¯Ê½–þà Ã+q}ç¼ù·þÛ¦Ô\"’Þ¢Õ_G°®ÃC6lž!×jÌ«ºùÃzoN&Ò÷»p\nÅ¡~€ó)ÛÌÌ\$Ãïb³K³B|²åJSè\0rfxžò…Ü†ÌØjná¨O<(Z0°j³ˆžz\\\\|ÃU3ÃŒ%ÃE@Ó©vLâ„¢:+_ËúAéU TBŸÜ…IÕ=vUjËÛ˜ŽEöˉFxåŠ5€#ܯ½\n‹2ÇËÂ\\Å¡L£4Z纫£tñÅ{²wfËä4rdI÷£9ëóÂo=Ǥ7®ógX-|Ã%Å“Ró»:æÃ䄌6|¬jÅ¡Ãh-J§µºÕ¬«‚zÊð†–\"¯¬µ¢™8`¸çSÃiˆewÃ\0÷YJÔS35\\so'›©ÀçòAÆ5ÃE)ý¡8ËœÃ\0·ð0‡ËF%DÔ;R %7%'\n·Ã¡ˆ7‡‡ò±Ižëú†{%Jc+öL©Ô¡¬æuÂkœç±–\"u†ZðR‰?ª_€Ò,¥•&QeÙN*†Jñ¾énu¼#2i€vâ€Ãˆ6û¤4ÓUÓ|Õqs`}[IÅ PȎNV]ÃÂãzO}òùÃ\rñÎ|*8“=ÊúCÅ¡ÃÃ%¡÷v\n,ΫôÂ1¤RÈ=çW:i…aÓ¹t ë¿ˆçPu<É5qÃöÓcFÌì<þ¹Š×lfðë‰ã}n†h\0Ã¥dp}“´xþîh‹:ÃÃ¥¢ì—²¼Z݄Sº™ |ýÄ´[;|ºÈ=Ó¼žüZ3j<\n¶¹…^ÑÔîéü]q\$L13ð×¼}hêAÊ;Üš({óñòæ)~aQ*5H¨\r:£åêé˜AZª¯& {Ã…H·Âhl¥¶ÇkÀÜÊ‚@T ¡1[‚`ܤØ;qÞ¼†´¦ƒþ‡ÒúŸ\"ó®Âƒ´\r'¼Â§fS.¶ÌSÜ5ÙPìAC¨s\naÂ¥%ú0öýÃ4©ÜýÃ<2eà æ P\r*ÀY\0ÄLÚžH œ'w¯d#¥È.@]@ÊÀ{ÀÌQà bQ MÆÑ‡r¢Ø%(RÊp†Â+`ê æZ‚¸³ÀÂØ‚,ØÃeIRµ\r®; ÂPmº“`‰çv&¸ÀÌ]@™ê Àß\nÔ\nç.\r\0} Ã˜à °Ÿ\n\"-@È-BؤN@i(yg(\ræZÀØÖnþæ,öÊä\$0n’Hp¾0ØLÜ\$ðáFL’GÓÈæ%t\nM`‡´ÉböÂÔÃâ’PäJ§¦±Ã¼Yì¡åvñ8â.B\r–^úÂ@Â(©®\r¡qX\\ÈòÂNÊM¨æfq,ìnî몺èæïŒ,ïÂ'ìRðñˆ¼ÃLDz«€¶ Z@º€¶¬`Vå€L%-êf¨ÚW`ðnîTìk«°qpÖvï\rºÀÒ²ŽÈîúÑ.÷¥k±ÂoQâ€LÆ’tñ›ñ£m3Ã… &Âðm*V„²R¯!\nfÜå^ÃNdçóÚêÃüà øö2,â€hìUò§B±fÖù±<L¢uî rÅ¡0hDhÔ%BÂÃŽÅ '`8NnÚÂòÄX§…vVÀbb¯'rzà ²€Ò9ÊP!’fêr‡\0úöÒ^ŽrdF\0Ñ*§ü‡Ê¾)-ëã\$î\$É®*Â#\nÂq¾(qÅ€ŽÀÚ\rÀšB©rèò2`ÃÃâ€Xf=\rQ×±ß/1€ÃñèIà _-b>lM™“\0Ã…%\"Å€÷1rÃ…ejó\r-¤ë.S\$\$®R«øöòb²š¸Ã³ÊæÌ\0GÀÈ]@[)’¬RÃ…Y32@qÅ´yÀÃÓh°²úï1Ü“i0,.³Óh³zðˆŸÓi,.(Éê€ñoÀLŽh¿#à Q8ì–ân %lçoK4NF«PVÓ{BÔ\"s¨áòÇ+¥¼KåÎ\r Ã9 ¦‘H-æ‰ELkÀz@¶Ž º@ºfsh6¤4#Â=Èâ8èÂÓÃzžbw')'b@Ù&²†}\"@B2k9ÃŽ}\$s&Â<ؤ\$ÙÌçƒÂ'dPÖT* æF„ÃÂDÓÃØ€ó&²o@X’&ž Ĥ{\0¦%¤Øæñ(ÓôCÀé-J\$9â€BÀÔÿ Ã\n⻆DOHtN\"Ô™IÔ (ÂÄçÄŸAt%IÂ(„?'Ã’#(4R_’‹'à z2ÂwiÂ;´ª…ŽmÃJ&~ÛËhÚâ€Ã¢Ã„–#Ì‚Tp%¦COj_P\"½®J1–ö5£ClµëbäÔ—@oò\\ÉÃ#)Ú˜îÃ#NaF ór[TãHâ€ÂDCeI-¬tIÃŽ\$n‚IΈCóÂOr µµ ý`OMËIMŽPnÃŽ4¦Øê]QÕFà ¾Ip–\rg]@¨\r\"@BÉ™)õ‚ÖU†Ã•Šû`Y)¤FâÂoÖq4hÖqDh%RyLrÅ’Â h[\\õ?] fÂKÔ|ÌØõID4‘H0ê¥OU\\ÔÓ\"5ÖQ¥¾(Âöÿ¢ÃWà Nìÿôÿ•üå,Øt÷,NÂv q+N¢`ØèôÞŸê\"®V\$´\r–1a\0ÎÆÕçWmÂ¥d4œÎ;9KÂOίÒbÃÙb®±ÀRÆÖ_d«åfNfŽfõ¾†ôãgµ€ûÊD_TS4S\0úçôTèUb)¿SÕÂõÆcK!ƒ²Ú•/A0SOYS’^§1W>Q‹B¾*^ñ\$Ãj¸Ês “PechÃ…:(¹––ó\"%¤\n‹W\" z %vÉe¾T(ȶ‡Õp·ðO\"Ûrà š…¦Ã×(’EÞ\"À‚‘ïø’FJÂà Zo€ð»bÕKR\" Û7FžwJ\\ OuUuۄ ÷+rj\0*¯·QdCK·0}`ÃpÉ8ñ×AV«Ss7Âà ×t3s`ñs«2ÆcyU]tWIGN\\‘Âw,+w`Yy·Âz—Â<e. ËF\0÷N t´jÃŽgB\rۈ G‡i>pðeÅ“\0ŸxÄ2Ñ6âeD3\rr†2¿a²á`ö#=ÃŽ*¯ÂRÈ%’ÌÂà y:§<C Àø& x+\rúÊU¶YSQmeám±+ðâ[ñ4Ã)\\Ãm§X‚ïl^h´ò’ZîÑØD.õ7u7ò;=C…Ôá\rNØ·\n±%(¦â²YKë\rJP󵤇-<„ÈP…T\$'êbDÈ\re«|\0X{ën^ d¢JÄ¥`Õçb¦¨¦ LøÎsÀ~[åÀ™ÂÀáŽLÑÃ`ÔÀ‚.& \0ž@Ô%˜æ–¹ ™¹ dÚ £qÄ*è`]ŽÃ¢\n€ P u#8d‚B+Ž(Æ[X¬z\\Âò÷à Gâ€Â§=•õI8Å£ê„ùLB\".’ÂÀ\$ï¢úeo7“Ø#?9b^\0DÈ>vøÆ¤ô€_6™ŒyKâ€Ã¹nÃ…DðK9£–Ãóš…%njµqú‚\$*ÔPpeQ`÷šù]›E\\eoÅ“@XO·â€8ö\$`Þ“ƒ…:wÀQ  à ¦\n–à ‹ŸÅcâ€â€™Âã‰â€HÒ˜ôĦþdçºêx/D·ž˜d\0Õ6 À^\0ZjÀîªF¦8\$\"€Wj1Ùäĺ¡g=¡¦êM °ºXÂ`[WZPy0~f˜Ú ÆFYZ(GýÂû’´IúRsʲdâS–ÖÃ\0¼H¼Z“UÙ°6ˆ-‹x»%˜ÞuöÖ™¥›9rYvú𹡂ÿ ªª²“b!â€Â²â€¦)—ÀÃËœÂ?\"OÀ嘤ë\nðà kGl|â€Ã¹â„¢â„¢ÃŠÂ¬Z¯ÂEk§1±õ›±ø\0_ÂÃ…uÅ“J×3ˆŠ?šÔŠYðB:P˜ú«ŠºÄ\"ÊŠ¨ø°ùTH# Câ€Â»R’Ÿª¥DÂà {Âà â€\n`ž À¶ûs\$’ãÂÆvrîºçË€DÜN»€vû…®Bª˜,ÃÄ:Cë>[wÃ{L÷ PE˜¾B\$dE«%Õ¸3â„¢hÊ4;Ê5Å’9‘´n’U¶wÀ ¶-Ìð)‹œ¹,ÿºXy7bˇñ…4–`Ư†VKÛ䦶ËqqÈ\$öìÙ Hà Ó1)›\"Å“JrºŽÂjHËÊ—\"`ðƒDyÀÞ‹\\¶ÖŒ–IœÂ+ÄÜ×d@ø¡î³(oÂPÆBÂçeIŤ Ê\n ¤ *x\r»„6IšÎdômHà ¼}È\0ßÈG¦§Ö>ÚSÅ¡â€(Õoɺù@uÂÉI†K¶œp\r@ÞAäÚÖ&3f8ßµLƒ‚à à ^ýà éÂ\$¹Ô.\r ×i|ÃŽcв«qú€~ÀU …ªë|þ2BÂÛ\\c›a¨Ûe1û³µM–š×oXqǼU¸:㸂ò¯ÿI®‚\"}<\r:p*Tt`èé|džg4ÙYªêá[+»°ÂËœhµ3ÃT°cª€î)\0ÜÿÕECÂH5GD\rÂ_hË^•XÛÕvŽ#ƒ’ŠÕ|¶â€Ã«KF~P/9ÙôC Äáv¦u½€ÿÃ!óÂÃÆñ¨ð3w3€%IÚœü/¦¾¢ªêBª*ê»1Ã…Ã¥ùXfð&v=„¨gâ…E¦ˆ•Ü=²R•r÷\rÄY&ú‹[â€â€˜rß;jAç|ß4¹`ÑM@düèÂ&¾F´:èÀLÙõUKîo{@„ŽÀä<ÖòËêâ:ˬà {߃,Rô‚ýä´}#E>@Ÿ-H3ÑÞ¥=är*ýà •\"x†pùâO®~tþr°¶·6-F÷Šýà ¦£eÂÃŒ h€e)ô\rܯ P–M`)€bÃò?Ã9½²€¸lJ׊qrp‚7!ïà {ïþ;=nې\0`&d*ë\0˜¦<T3Ä\r5#êŸã¾EHÔ.Ie¨Ÿ6_ˆç†}4„\nQb7±Xoq\n€Þý\$TÅùì‚Dv¿h€²ìQ+€eð¿Vې5ph-֧Xb]à ɪ*£˜®þ†^\0e¡ Å uÿ`§ÀOú Éùg_X+¾Âú ËúiQò¢gÞrü_3Þ•%~l]_†\nun€‘Ô‡ÄÊîµ5)iè\$•l'…µÈqF@ÜÂÔÂøN®IÛ’Ü‚ä2Ÿ? T.G!«ÅÊK5)Ó\rÃn*ãÞ†åµÂÂUzÈHÃ!Kž]r èJì N *ø¥ôae8vIö;H@ÃŒ\rÃÚ¹tˆ\$úÆóÅžpŒùÈ!à o¦+êØú¤ù?\$h#¯kPÃDÃã\0°¥©Jëå@V~ø(ÃÆ’¤Ì-û®XÀ7Å’Â-áAJ‹bÄ8Å’ÂØA›AéÃUD~°‡éÞ,º?ÂPE¤3BmfTGœ‚¼ ˆ>Â¥Y]ˆÄfIÓ µDÆ#‹kYh€â€Âº.ÃefÀè©è#i÷ t± òuÂäRèQ†Þuæºh(€;M1ÛH r)\$®€yRL.Ö‚Ea³>TÂn?\\\"ÒÀ»@¤¬‚3g2 þ‚'¼6L«¦™p|&ÂtÂÂbÃ} +{ªüÜþ–^ÂÂKìo•³Õâ«T}€ ‰d@Gj*‡t<s\0b›³™BK\rÈ\0„Zó¬õ«û(äâgú?ÙÔÈ,X†M\0¡~Ä’ÃD(F¨ŠºñÛ  ˆ©YË<Ã@º7p°é¹GiuÎöþfÿ¿Â Ãó¨èÃJ4â6–SéIp<x•Ä\"% h‰x\"b‡ÃË @î%-‰·†ø/5ªf%‰šïW’Q]È…£þÆfZ6ó(„±QÄSI\$(5>Ãd´o1ÄR_…§0 DoóaëÀˆÂð0†´Öoósâ€â€œHb³œ\r‚:((ÂÂÿ1A®..1{1šÙâÌÞ8±¼Ê-Qx!Šã\0Éò#ÅÊ ê‘\\^#X½â€JшD`bá\$!â1ÑÂÅ’\\âW“rŠÉÔ-sR’Óµ;&Âã§V¨` ô“Ãe{;#\rQÃŽI\"ÂÆÖ\$Âû‰3—Æ›óÀ\rså¤-2Cbœ‘æ?ÃW/+ÂÂçÄÀ¤³Ââ6à -ùR^=h©øH.jÂâGsÅ“Jqà Àö‡Œr–ǰ6QîáÃãÈhó!.='m¾}ØõÂ<L€h 3\0NC@ÇÜZ‘çÂL9‹…“„«1YÀeV€wšŒR×ýâ€ÃÖFžDÃ\n~ÃÄ5÷â¬ḊÕ6ûĘ0nÑ¿SÂn¤Ì ¤s\n‘›µ!ØRÈÌÂR5d\0t—à HÄÃ(4H¶¤„óµãHÈðÂúˆˆˆ¤„ÕÂ8HE‰Î’wÃŒl2&Èä½’V’@´†…%b\"Ī2gë‰ÜOEc#âwHˆ&kì<\nSÕC Ã¥!¨™D*A]RúGþ§³YB=v«ßŠêHPȢÂFdGq›Sˆ ×Ähc©-+£»“ªøÃӑéô£M3Ëœ:Øpï}Å T ÃŒ4T¢E„Âó!ȶ—ê¿æ{M%ò§Kyþd(ƒ‰¡âU‰p¢%bsfl{Â,òj¤‰4Ô.DqRÃÂl°V>U‡00q) 3Q#,Ã:\"ä+€cÂ\\\0÷'«E\$n†±û\0ðTq§\r@|òßd¸@à 9WîX+™´±¶¹`¬ÖkD+ŸÕ.Is5¾/X—ˆUe•/W–Øzâ„¢e\$³Œ¡/)ÂÂÂÉÊ+ÀP›0³(6Ã’`Çp¼¼G,sû°.^“\nO@®Üy\0ç&À@â„¢ÂÃŽ@\\4J¸çâ\0003ԠHNl‚BãÈ1;¯Ã¹\$ä ÃD¢4G¢†WéJ˜Ä²f6¤¹»!*@N)¶¼¡¥s8Ù]ª¯:…b¡È½Ã9ÙÂ/̶ÉH´¥¥ŒÂåÓ˜»Âó0â„¢h'!îJ–¼Èe²LØh-ѳ(t¥ú°iÂŽDy„xÂG¢qÆ|qËc=„ƒ‚p: 0â„¢=!•X ‹ù<L×R±š»Ø¡#„MHœãâ²bã’¾³´0?µ‰‡)");}elseif($_GET["file"]=="jush.js"){header("Content-Type: text/javascript; charset=utf-8");echo
13lzw_decompress(compile_file('','minify_js'));}else{header("Content-Type: image/gif");switch($_GET["file"]){case"plus.gif":echo"GIF89a\0\0Â\0001îîî\0\0€™™™\0\0\0!ù\0\0\0,\0\0\0\0\0\0!„©ËÃMñÌ*)¾oú¯) q•¡eˆµî#ÄòLË\0;";break;case"cross.gif":echo"GIF89a\0\0Â\0001îîî\0\0€™™™\0\0\0!ù\0\0\0,\0\0\0\0\0\0#„©ËÃ#\naÖFo~yÃ.Â_waâ€Ã¡1ç±JîGÂL×6]\0\0;";break;case"up.gif":echo"GIF89a\0\0Â\0001îîî\0\0€™™™\0\0\0!ù\0\0\0,\0\0\0\0\0\0 „©ËÃMQN\nï}ôža8Å yÅ¡aŶ®\0Çò\0;";break;case"down.gif":echo"GIF89a\0\0Â\0001îîî\0\0€™™™\0\0\0!ù\0\0\0,\0\0\0\0\0\0 „©ËÃMñÌ*)¾[Wþ\\¢ÇL&ٜƶ•\0Çò\0;";break;case"arrow.gif":echo"GIF89a\0\n\0€\0\0€€€ÿÿÿ!ù\0\0\0,\0\0\0\0\0\n\0\0‚i–±‹žâ€ÂªÃ“²Þ»\0\0;";break;}}exit;}function
14connection(){global$f;return$f;}function
15adminer(){global$b;return$b;}function
16idf_unescape($hc){$xc=substr($hc,-1);return
17str_replace($xc.$xc,$xc,substr($hc,1,-1));}function
18escape_string($W){return
19substr(q($W),1,-1);}function
20number($W){return
21preg_replace('~[^0-9]+~','',$W);}function
22remove_slashes($td,$Jb=false){if(get_magic_quotes_gpc()){while(list($y,$W)=each($td)){foreach($W
23as$rc=>$V){unset($td[$y][$rc]);if(is_array($V)){$td[$y][stripslashes($rc)]=$V;$td[]=&$td[$y][stripslashes($rc)];}else$td[$y][stripslashes($rc)]=($Jb?$V:stripslashes($V));}}}}function
24bracket_escape($hc,$ua=false){static$_e=array(':'=>':1',']'=>':2','['=>':3','"'=>':4');return
25strtr($hc,($ua?array_flip($_e):$_e));}function
26charset($f){return(version_compare($f->server_info,"5.5.3")>=0?"utf8mb4":"utf8");}function
27script($Xd,$ze="\n"){return"<script".nonce().">$Xd</script>$ze";}function
28script_src($Oe){return"<script src='".h($Oe)."'".nonce()."></script>\n";}function
29nonce(){return' nonce="'.get_nonce().'"';}function
30target_blank(){return' target="_blank" rel="noopener"';}function
31h($R){return
32str_replace("\0","�",htmlspecialchars($R,ENT_QUOTES,'utf-8'));}function
33nbsp($R){return(trim($R)!=""?h($R):" ");}function
34nl_br($R){return
35str_replace("\n","<br>",$R);}function
36checkbox($E,$X,$Fa,$uc="",$Xc="",$Ia="",$vc=""){$L="<input type='checkbox' name='$E' value='".h($X)."'".($Fa?" checked":"").($vc?" aria-labelledby='$vc'":"").">".($Xc?script("qsl('input').onclick = function () { $Xc };",""):"");return($uc!=""||$Ia?"<label".($Ia?" class='$Ia'":"").">$L".h($uc)."</label>":$L);}function
37optionlist($F,$Nd=null,$Pe=false){$L="";foreach($F
38as$rc=>$V){$bd=array($rc=>$V);if(is_array($V)){$L.='<optgroup label="'.h($rc).'">';$bd=$V;}foreach($bd
39as$y=>$W)$L.='<option'.($Pe||is_string($y)?' value="'.h($y).'"':'').(($Pe||is_string($y)?(string)$y:$W)===$Nd?' selected':'').'>'.h($W);if(is_array($V))$L.='</optgroup>';}return$L;}function
40html_select($E,$F,$X="",$Wc=true,$vc=""){if($Wc)return"<select name='".h($E)."'".($vc?" aria-labelledby='$vc'":"").">".optionlist($F,$X)."</select>".(is_string($Wc)?script("qsl('select').onchange = function () { $Wc };",""):"");$L="";foreach($F
41as$y=>$W)$L.="<label><input type='radio' name='".h($E)."' value='".h($y)."'".($y==$X?" checked":"").">".h($W)."</label>";return$L;}function
42select_input($c,$F,$X="",$Wc="",$ld=""){$me=($F?"select":"input");return"<$me$c".($F?"><option value=''>$ld".optionlist($F,$X,true)."</select>":" size='10' value='".h($X)."' placeholder='$ld'>").($Wc?script("qsl('$me').onchange = $Wc;",""):"");}function
43confirm($C="",$Od="qsl('input')"){return
44script("$Od.onclick = function () { return confirm('".($C?js_escape($C):'Are you sure?')."'); };","");}function
45print_fieldset($t,$zc,$Ue=false){echo"<fieldset><legend>","<a href='#fieldset-$t'>$zc</a>",script("qsl('a').onclick = partial(toggle, 'fieldset-$t');",""),"</legend>","<div id='fieldset-$t'".($Ue?"":" class='hidden'").">\n";}function
46bold($Aa,$Ia=""){return($Aa?" class='active $Ia'":($Ia?" class='$Ia'":""));}function
47odd($L=' class="odd"'){static$s=0;if(!$L)$s=-1;return($s++%2?$L:'');}function
48js_escape($R){return
49addcslashes($R,"\r\n'\\/");}function
50json_row($y,$W=null){static$Kb=true;if($Kb)echo"{";if($y!=""){echo($Kb?"":",")."\n\t\"".addcslashes($y,"\r\n\t\"\\/").'": '.($W!==null?'"'.addcslashes($W,"\r\n\"\\/").'"':'null');$Kb=false;}else{echo"\n}\n";$Kb=true;}}function
51ini_bool($lc){$W=ini_get($lc);return(preg_match('~^(on|true|yes)$~i',$W)||(int)$W);}function
52sid(){static$L;if($L===null)$L=(SID&&!($_COOKIE&&ini_bool("session.use_cookies")));return$L;}function
53set_password($Y,$P,$U,$I){$_SESSION["pwds"][$Y][$P][$U]=($_COOKIE["adminer_key"]&&is_string($I)?array(encrypt_string($I,$_COOKIE["adminer_key"])):$I);}function
54get_password(){$L=get_session("pwds");if(is_array($L))$L=($_COOKIE["adminer_key"]?decrypt_string($L[0],$_COOKIE["adminer_key"]):false);return$L;}function
55q($R){global$f;return$f->quote($R);}function
56get_vals($J,$d=0){global$f;$L=array();$K=$f->query($J);if(is_object($K)){while($M=$K->fetch_row())$L[]=$M[$d];}return$L;}function
57get_key_vals($J,$g=null,$se=0,$Ud=true){global$f;if(!is_object($g))$g=$f;$L=array();$g->timeout=$se;$K=$g->query($J);$g->timeout=0;if(is_object($K)){while($M=$K->fetch_row()){if($Ud)$L[$M[0]]=$M[1];else$L[]=$M[0];}}return$L;}function
58get_rows($J,$g=null,$k="<p class='error'>"){global$f;$Sa=(is_object($g)?$g:$f);$L=array();$K=$Sa->query($J);if(is_object($K)){while($M=$K->fetch_assoc())$L[]=$M;}elseif(!$K&&!is_object($g)&&$k&&defined("PAGE_HEADER"))echo$k.error()."\n";return$L;}function
59unique_array($M,$v){foreach($v
60as$u){if(preg_match("~PRIMARY|UNIQUE~",$u["type"])){$L=array();foreach($u["columns"]as$y){if(!isset($M[$y]))continue
612;$L[$y]=$M[$y];}return$L;}}}function
62escape_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
63idf_escape($y);}function
64where($Z,$m=array()){global$f,$x;$L=array();foreach((array)$Z["where"]as$y=>$W){$y=bracket_escape($y,1);$d=escape_key($y);$L[]=$d.($x=="sql"&&preg_match('~^[0-9]*\\.[0-9]*$~',$W)?" LIKE ".q(addcslashes($W,"%_\\")):($x=="mssql"?" LIKE ".q(preg_replace('~[_%[]~','[\0]',$W)):" = ".unconvert_field($m[$y],q($W))));if($x=="sql"&&preg_match('~char|text~',$m[$y]["type"])&&preg_match("~[^ -@]~",$W))$L[]="$d = ".q($W)." COLLATE ".charset($f)."_bin";}foreach((array)$Z["null"]as$y)$L[]=escape_key($y)." IS NULL";return
65implode(" AND ",$L);}function
66where_check($W,$m=array()){parse_str($W,$Ea);remove_slashes(array(&$Ea));return
67where($Ea,$m);}function
68where_link($s,$d,$X,$Zc="="){return"&where%5B$s%5D%5Bcol%5D=".urlencode($d)."&where%5B$s%5D%5Bop%5D=".urlencode(($X!==null?$Zc:"IS NULL"))."&where%5B$s%5D%5Bval%5D=".urlencode($X);}function
69convert_fields($e,$m,$O=array()){$L="";foreach($e
70as$y=>$W){if($O&&!in_array(idf_escape($y),$O))continue;$oa=convert_field($m[$y]);if($oa)$L.=", $oa AS ".idf_escape($y);}return$L;}function
71cookie($E,$X,$Bc=2592000){global$aa;return
72header("Set-Cookie: $E=".urlencode($X).($Bc?"; expires=".gmdate("D, d M Y H:i:s",time()+$Bc)." GMT":"")."; path=".preg_replace('~\\?.*~','',$_SERVER["REQUEST_URI"]).($aa?"; secure":"")."; HttpOnly; SameSite=lax",false);}function
73restart_session(){if(!ini_bool("session.use_cookies"))session_start();}function
74stop_session(){if(!ini_bool("session.use_cookies"))session_write_close();}function&get_session($y){return$_SESSION[$y][DRIVER][SERVER][$_GET["username"]];}function
75set_session($y,$W){$_SESSION[$y][DRIVER][SERVER][$_GET["username"]]=$W;}function
76auth_url($Y,$P,$U,$h=null){global$mb;preg_match('~([^?]*)\\??(.*)~',remove_from_uri(implode("|",array_keys($mb))."|username|".($h!==null?"db|":"").session_name()),$B);return"$B[1]?".(sid()?SID."&":"").($Y!="server"||$P!=""?urlencode($Y)."=".urlencode($P)."&":"")."username=".urlencode($U).($h!=""?"&db=".urlencode($h):"").($B[2]?"&$B[2]":"");}function
77is_ajax(){return($_SERVER["HTTP_X_REQUESTED_WITH"]=="XMLHttpRequest");}function
78redirect($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
79query_redirect($J,$A,$C,$Bd=true,$Bb=true,$Eb=false,$re=""){global$f,$k,$b;if($Bb){$ae=microtime(true);$Eb=!$f->query($J);$re=format_time($ae);}$Zd="";if($J)$Zd=$b->messageQuery($J,$re);if($Eb){$k=error().$Zd.script("messagesPrint();");return
80false;}if($Bd)redirect($A,$C.$Zd);return
81true;}function
82queries($J){global$f;static$xd=array();static$ae;if(!$ae)$ae=microtime(true);if($J===null)return
83array(implode("\n",$xd),format_time($ae));$xd[]=(preg_match('~;$~',$J)?"DELIMITER ;;\n$J;\nDELIMITER ":$J).";";return$f->query($J);}function
84apply_queries($J,$le,$zb='table'){foreach($le
85as$S){if(!queries("$J ".$zb($S)))return
86false;}return
87true;}function
88queries_redirect($A,$C,$Bd){list($xd,$re)=queries(null);return
89query_redirect($xd,$A,$C,$Bd,false,!$Bd,$re);}function
90format_time($ae){return
91sprintf('%.3f s',max(0,microtime(true)-$ae));}function
92remove_from_uri($gd=""){return
93substr(preg_replace("~(?<=[?&])($gd".(SID?"":"|".session_name()).")=[^&]*&~",'',"$_SERVER[REQUEST_URI]&"),0,-1);}function
94pagination($H,$ab){return" ".($H==$ab?$H+1:'<a href="'.h(remove_from_uri("page").($H?"&page=$H".($_GET["next"]?"&next=".urlencode($_GET["next"]):""):"")).'">'.($H+1)."</a>");}function
95get_file($y,$eb=false){$Hb=$_FILES[$y];if(!$Hb)return
96null;foreach($Hb
97as$y=>$W)$Hb[$y]=(array)$W;$L='';foreach($Hb["error"]as$y=>$k){if($k)return$k;$E=$Hb["name"][$y];$xe=$Hb["tmp_name"][$y];$Ta=file_get_contents($eb&&preg_match('~\\.gz$~',$E)?"compress.zlib://$xe":$xe);if($eb){$ae=substr($Ta,0,3);if(function_exists("iconv")&&preg_match("~^\xFE\xFF|^\xFF\xFE~",$ae,$Cd))$Ta=iconv("utf-16","utf-8",$Ta);elseif($ae=="\xEF\xBB\xBF")$Ta=substr($Ta,3);$L.=$Ta."\n\n";}else$L.=$Ta;}return$L;}function
98upload_error($k){$Hc=($k==UPLOAD_ERR_INI_SIZE?ini_get("upload_max_filesize"):0);return($k?'Unable to upload a file.'.($Hc?" ".sprintf('Maximum allowed file size is %sB.',$Hc):""):'File does not exist.');}function
99repeat_pattern($jd,$_c){return
100str_repeat("$jd{0,65535}",$_c/65535)."$jd{0,".($_c%65535)."}";}function
101is_utf8($W){return(preg_match('~~u',$W)&&!preg_match('~[\\0-\\x8\\xB\\xC\\xE-\\x1F]~',$W));}function
102shorten_utf8($R,$_c=80,$ge=""){if(!preg_match("(^(".repeat_pattern("[\t\r\n -\x{10FFFF}]",$_c).")($)?)u",$R,$B))preg_match("(^(".repeat_pattern("[\t\r\n -~]",$_c).")($)?)",$R,$B);return
103h($B[1]).$ge.(isset($B[2])?"":"<i>...</i>");}function
104format_number($W){return
105strtr(number_format($W,0,".",','),preg_split('~~u','0123456789',-1,PREG_SPLIT_NO_EMPTY));}function
106friendly_url($W){return
107preg_replace('~[^a-z0-9_]~i','-',$W);}function
108hidden_fields($td,$jc=array()){while(list($y,$W)=each($td)){if(!in_array($y,$jc)){if(is_array($W)){foreach($W
109as$rc=>$V)$td[$y."[$rc]"]=$V;}else
110echo'<input type="hidden" name="'.h($y).'" value="'.h($W).'">';}}}function
111hidden_fields_get(){echo(sid()?'<input type="hidden" name="'.session_name().'" value="'.h(session_id()).'">':''),(SERVER!==null?'<input type="hidden" name="'.DRIVER.'" value="'.h(SERVER).'">':""),'<input type="hidden" name="username" value="'.h($_GET["username"]).'">';}function
112table_status1($S,$Fb=false){$L=table_status($S,$Fb);return($L?$L:array("Name"=>$S));}function
113column_foreign_keys($S){global$b;$L=array();foreach($b->foreignKeys($S)as$Pb){foreach($Pb["source"]as$W)$L[$W][]=$Pb;}return$L;}function
114enum_input($Ce,$c,$l,$X,$vb=null){global$b;preg_match_all("~'((?:[^']|'')*)'~",$l["length"],$Ec);$L=($vb!==null?"<label><input type='$Ce'$c value='$vb'".((is_array($X)?in_array($vb,$X):$X===0)?" checked":"")."><i>".'empty'."</i></label>":"");foreach($Ec[1]as$s=>$W){$W=stripcslashes(str_replace("''","'",$W));$Fa=(is_int($X)?$X==$s+1:(is_array($X)?in_array($s+1,$X):$X===$W));$L.=" <label><input type='$Ce'$c value='".($s+1)."'".($Fa?' checked':'').'>'.h($b->editVal($W,$l)).'</label>';}return$L;}function
115input($l,$X,$q){global$f,$Ee,$b,$x;$E=h(bracket_escape($l["field"]));echo"<td class='function'>";if(is_array($X)&&!$q){$na=array($X);if(version_compare(PHP_VERSION,5.4)>=0)$na[]=JSON_PRETTY_PRINT;$X=call_user_func_array('json_encode',$na);$q="json";}$Fd=($x=="mssql"&&$l["auto_increment"]);if($Fd&&!$_POST["save"])$q=null;$Ub=(isset($_GET["select"])||$Fd?array("orig"=>'original'):array())+$b->editFunctions($l);$c=" name='fields[$E]'";if($l["type"]=="enum")echo
116nbsp($Ub[""])."<td>".$b->editInput($_GET["edit"],$l,$c,$X);else{$Zb=(in_array($q,$Ub)||isset($Ub[$q]));echo(count($Ub)>1?"<select name='function[$E]'>".optionlist($Ub,$q===null||$Zb?$q:"")."</select>".on_help("getTarget(event).value.replace(/^SQL\$/, '')",1).script("qsl('select').onchange = functionChange;",""):nbsp(reset($Ub))).'<td>';$nc=$b->editInput($_GET["edit"],$l,$c,$X);if($nc!="")echo$nc;elseif(preg_match('~bool~',$l["type"]))echo"<input type='hidden'$c value='0'>"."<input type='checkbox'".(preg_match('~^(1|t|true|y|yes|on)$~i',$X)?" checked='checked'":"")."$c value='1'>";elseif($l["type"]=="set"){preg_match_all("~'((?:[^']|'')*)'~",$l["length"],$Ec);foreach($Ec[1]as$s=>$W){$W=stripcslashes(str_replace("''","'",$W));$Fa=(is_int($X)?($X>>$s)&1:in_array($W,explode(",",$X),true));echo" <label><input type='checkbox' name='fields[$E][$s]' value='".(1<<$s)."'".($Fa?' checked':'').">".h($b->editVal($W,$l)).'</label>';}}elseif(preg_match('~blob|bytea|raw|file~',$l["type"])&&ini_bool("file_uploads"))echo"<input type='file' name='fields-$E'>";elseif(($oe=preg_match('~text|lob~',$l["type"]))||preg_match("~\n~",$X)){if($oe&&$x!="sqlite")$c.=" cols='50' rows='12'";else{$N=min(12,substr_count($X,"\n")+1);$c.=" cols='30' rows='$N'".($N==1?" style='height: 1.2em;'":"");}echo"<textarea$c>".h($X).'</textarea>';}elseif($q=="json"||preg_match('~^jsonb?$~',$l["type"]))echo"<textarea$c cols='50' rows='12' class='jush-js'>".h($X).'</textarea>';else{$Jc=(!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)):($Ee[$l["type"]]?$Ee[$l["type"]]+($l["unsigned"]?0:1):0));if($x=='sql'&&$f->server_info>=5.6&&preg_match('~time~',$l["type"]))$Jc+=7;echo"<input".((!$Zb||$q==="")&&preg_match('~(?<!o)int~',$l["type"])&&!preg_match('~\[\]~',$l["full_type"])?" type='number'":"")." value='".h($X)."'".($Jc?" data-maxlength='$Jc'":"").(preg_match('~char|binary~',$l["type"])&&$Jc>20?" size='40'":"")."$c>";}echo$b->editHint($_GET["edit"],$l,$X);$Kb=0;foreach($Ub
117as$y=>$W){if($y===""||!$W)break;$Kb++;}if($Kb)echo
118script("mixin(qsl('td'), {onchange: partial(skipOriginal, $Kb), oninput: function () { this.onchange(); }});");}}function
119process_input($l){global$b;$hc=bracket_escape($l["field"]);$q=$_POST["function"][$hc];$X=$_POST["fields"][$hc];if($l["type"]=="enum"){if($X==-1)return
120false;if($X=="")return"NULL";return+$X;}if($l["auto_increment"]&&$X=="")return
121null;if($q=="orig")return($l["on_update"]=="CURRENT_TIMESTAMP"?idf_escape($l["field"]):false);if($q=="NULL")return"NULL";if($l["type"]=="set")return
122array_sum((array)$X);if($q=="json"){$q="";$X=json_decode($X,true);if(!is_array($X))return
123false;return$X;}if(preg_match('~blob|bytea|raw|file~',$l["type"])&&ini_bool("file_uploads")){$Hb=get_file("fields-$hc");if(!is_string($Hb))return
124false;return
125q($Hb);}return$b->processInput($l,$X,$q);}function
126fields_from_edit(){global$i;$L=array();foreach((array)$_POST["field_keys"]as$y=>$W){if($W!=""){$W=bracket_escape($W);$_POST["function"][$W]=$_POST["field_funs"][$y];$_POST["fields"][$W]=$_POST["field_vals"][$y];}}foreach((array)$_POST["fields"]as$y=>$W){$E=bracket_escape($y,1);$L[$E]=array("field"=>$E,"privileges"=>array("insert"=>1,"update"=>1),"null"=>1,"auto_increment"=>($y==$i->primary),);}return$L;}function
127search_tables(){global$b,$f;$_GET["where"][0]["val"]=$_POST["query"];$Sb=false;foreach(table_status('',true)as$S=>$T){$E=$b->tableName($T);if(isset($T["Engine"])&&$E!=""&&(!$_POST["tables"]||in_array($S,$_POST["tables"]))){$K=$f->query("SELECT".limit("1 FROM ".table($S)," WHERE ".implode(" AND ",$b->selectSearchProcess(fields($S),array())),1));if(!$K||$K->fetch_row()){if(!$Sb){echo"<ul>\n";$Sb=true;}echo"<li>".($K?"<a href='".h(ME."select=".urlencode($S)."&where[0][op]=".urlencode($_GET["where"][0]["op"])."&where[0][val]=".urlencode($_GET["where"][0]["val"]))."'>$E</a>\n":"$E: <span class='error'>".error()."</span>\n");}}}echo($Sb?"</ul>":"<p class='message'>".'No tables.')."\n";}function
128dump_headers($gc,$Mc=false){global$b;$L=$b->dumpHeaders($gc,$Mc);$ed=$_POST["output"];if($ed!="text")header("Content-Disposition: attachment; filename=".$b->dumpFilename($gc).".$L".($ed!="file"&&!preg_match('~[^0-9a-z]~',$ed)?".$ed":""));session_write_close();ob_flush();flush();return$L;}function
129dump_csv($M){foreach($M
130as$y=>$W){if(preg_match("~[\"\n,;\t]~",$W)||$W==="")$M[$y]='"'.str_replace('"','""',$W).'"';}echo
131implode(($_POST["format"]=="csv"?",":($_POST["format"]=="tsv"?"\t":";")),$M)."\r\n";}function
132apply_sql_function($q,$d){return($q?($q=="unixepoch"?"DATETIME($d, '$q')":($q=="count distinct"?"COUNT(DISTINCT ":strtoupper("$q("))."$d)"):$d);}function
133get_temp_dir(){$L=ini_get("upload_tmp_dir");if(!$L){if(function_exists('sys_get_temp_dir'))$L=sys_get_temp_dir();else{$n=@tempnam("","");if(!$n)return
134false;$L=dirname($n);unlink($n);}}return$L;}function
135file_open_lock($n){$p=@fopen($n,"r+");if(!$p){$p=@fopen($n,"w");if(!$p)return;chmod($n,0660);}flock($p,LOCK_EX);return$p;}function
136file_write_unlock($p,$bb){rewind($p);fwrite($p,$bb);ftruncate($p,strlen($bb));flock($p,LOCK_UN);fclose($p);}function
137password_file($Va){$n=get_temp_dir()."/adminer.key";$L=@file_get_contents($n);if($L||!$Va)return$L;$p=@fopen($n,"w");if($p){chmod($n,0660);$L=rand_string();fwrite($p,$L);fclose($p);}return$L;}function
138rand_string(){return
139md5(uniqid(mt_rand(),true));}function
140select_value($W,$_,$l,$pe){global$b,$aa;if(is_array($W)){$L="";foreach($W
141as$rc=>$V)$L.="<tr>".($W!=array_values($W)?"<th>".h($rc):"")."<td>".select_value($V,$_,$l,$pe);return"<table cellspacing='0'>$L</table>";}if(!$_)$_=$b->selectLink($W,$l);if($_===null){if(is_mail($W))$_="mailto:$W";if($ud=is_url($W))$_=(($ud=="http"&&$aa)||preg_match('~WebKit|Firefox~i',$_SERVER["HTTP_USER_AGENT"])?$W:"https://www.adminer.org/redirect/?url=".urlencode($W));}$L=$b->editVal($W,$l);if($L!==null){if($L==="")$L=" ";elseif(!is_utf8($L))$L="\0";elseif($pe!=""&&is_shortable($l))$L=shorten_utf8($L,max(0,+$pe));else$L=h($L);}return$b->selectVal($L,$_,$l,$W);}function
142is_mail($sb){$pa='[-a-z0-9!#$%&\'*+/=?^_`{|}~]';$lb='[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])';$jd="$pa+(\\.$pa+)*@($lb?\\.)+$lb";return
143is_string($sb)&&preg_match("(^$jd(,\\s*$jd)*\$)i",$sb);}function
144is_url($R){$lb='[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])';return(preg_match("~^(https?)://($lb?\\.)+$lb(:\\d+)?(/.*)?(\\?.*)?(#.*)?\$~i",$R,$B)?strtolower($B[1]):"");}function
145is_shortable($l){return
146preg_match('~char|text|lob|geometry|point|linestring|polygon|string|bytea~',$l["type"]);}function
147count_rows($S,$Z,$w,$r){global$x;$J=" FROM ".table($S).($Z?" WHERE ".implode(" AND ",$Z):"");return($w&&($x=="sql"||count($r)==1)?"SELECT COUNT(DISTINCT ".implode(", ",$r).")$J":"SELECT COUNT(*)".($w?" FROM (SELECT 1$J$Vb) x":$J));}function
148slow_query($J){global$b,$ye;$h=$b->database();$se=$b->queryTimeout();if(support("kill")&&is_object($g=connect())&&($h==""||$g->select_db($h))){$tc=$g->result(connection_id());echo'<script',nonce(),'>
149var timeout = setTimeout(function () {
150 ajax(\'',js_escape(ME),'script=kill\', function () {
151 }, \'kill=',$tc,'&token=',$ye,'\');
152}, ',1000*$se,');
153</script>
154';}else$g=null;ob_flush();flush();$L=@get_key_vals($J,$g,$se,false);if($g){echo
155script("clearTimeout(timeout);");ob_flush();flush();}return$L;}function
156get_token(){$_d=rand(1,1e6);return($_d^$_SESSION["token"]).":$_d";}function
157verify_token(){list($ye,$_d)=explode(":",$_POST["token"]);return($_d^$_SESSION["token"])==$ye;}function
158lzw_decompress($za){$jb=256;$_a=8;$Ka=array();$Gd=0;$Hd=0;for($s=0;$s<strlen($za);$s++){$Gd=($Gd<<8)+ord($za[$s]);$Hd+=8;if($Hd>=$_a){$Hd-=$_a;$Ka[]=$Gd>>$Hd;$Gd&=(1<<$Hd)-1;$jb++;if($jb>>$_a)$_a++;}}$ib=range("\0","\xFF");$L="";foreach($Ka
159as$s=>$Ja){$rb=$ib[$Ja];if(!isset($rb))$rb=$Ye.$Ye[0];$L.=$rb;if($s)$ib[]=$Ye.$rb[0];$Ye=$rb;}return$L;}function
160on_help($Pa,$Vd=0){return
161script("mixin(qsl('select, input'), {onmouseover: function (event) { helpMouseover.call(this, event, $Pa, $Vd) }, onmouseout: helpMouseout});","");}function
162edit_form($a,$m,$M,$Me){global$b,$x,$ye,$k;$ke=$b->tableName(table_status1($a,true));page_header(($Me?'Edit':'Insert'),$k,array("select"=>array($a,$ke)),$ke);if($M===false)echo"<p class='error'>".'No rows.'."\n";echo'<form action="" method="post" enctype="multipart/form-data" id="form">
163';if(!$m)echo"<p class='error'>".'You have no privileges to update this table.'."\n";else{echo"<table cellspacing='0'>".script("qsl('table').onkeydown = editingKeydown;");foreach($m
164as$E=>$l){echo"<tr><th>".$b->fieldName($l);$fb=$_GET["set"][bracket_escape($E)];if($fb===null){$fb=$l["default"];if($l["type"]=="bit"&&preg_match("~^b'([01]*)'\$~",$fb,$Cd))$fb=$Cd[1];}$X=($M!==null?($M[$E]!=""&&$x=="sql"&&preg_match("~enum|set~",$l["type"])?(is_array($M[$E])?array_sum($M[$E]):+$M[$E]):$M[$E]):(!$Me&&$l["auto_increment"]?"":(isset($_GET["select"])?false:$fb)));if(!$_POST["save"]&&is_string($X))$X=$b->editVal($X,$l);$q=($_POST["save"]?(string)$_POST["function"][$E]:($Me&&$l["on_update"]=="CURRENT_TIMESTAMP"?"now":($X===false?null:($X!==null?'':'NULL'))));if(preg_match("~time~",$l["type"])&&$X=="CURRENT_TIMESTAMP"){$X="";$q="now";}input($l,$X,$q);echo"\n";}if(!support("table"))echo"<tr>"."<th><input name='field_keys[]'>".script("qsl('input').oninput = fieldChange;")."<td class='function'>".html_select("field_funs[]",$b->editFunctions(array("null"=>isset($_GET["select"]))))."<td><input name='field_vals[]'>"."\n";echo"</table>\n";}echo"<p>\n";if($m){echo"<input type='submit' value='".'Save'."'>\n";if(!isset($_GET["select"])){echo"<input type='submit' name='insert' value='".($Me?'Save and continue edit':'Save and insert next')."' title='Ctrl+Shift+Enter'>\n",($Me?script("qsl('input').onclick = function () { return !ajaxForm(this.form, '".'Saving'."...', this); };"):"");}}echo($Me?"<input type='submit' name='delete' value='".'Delete'."'>".confirm()."\n":($_POST||!$m?"":script("focus(qsa('td', qs('#form'))[1].firstChild);")));if(isset($_GET["select"]))hidden_fields(array("check"=>(array)$_POST["check"],"clone"=>$_POST["clone"],"all"=>$_POST["all"]));echo'<input type="hidden" name="referer" value="',h(isset($_POST["referer"])?$_POST["referer"]:$_SERVER["HTTP_REFERER"]),'">
165<input type="hidden" name="save" value="1">
166<input type="hidden" name="token" value="',$ye,'">
167</form>
168';}global$b,$f,$mb,$pb,$xb,$k,$Ub,$Wb,$aa,$mc,$x,$ba,$wc,$Vc,$kd,$de,$ac,$ye,$Be,$Ee,$Le,$ca;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]";$aa=$_SERVER["HTTPS"]&&strcasecmp($_SERVER["HTTPS"],"off");@ini_set("session.use_trans_sid",false);if(!defined("SID")){session_cache_limiter("");session_name("adminer_sid");$hd=array(0,preg_replace('~\\?.*~','',$_SERVER["REQUEST_URI"]),"",$aa);if(version_compare(PHP_VERSION,'5.2.0')>=0)$hd[]=true;call_user_func_array('session_set_cookie_params',$hd);session_start();}remove_slashes(array(&$_GET,&$_POST,&$_COOKIE),$Jb);if(get_magic_quotes_runtime())set_magic_quotes_runtime(false);@set_time_limit(0);@ini_set("zend.ze1_compatibility_mode",false);@ini_set("precision",17);function
169get_lang(){return'en';}function
170lang($Ae,$Sc=null){if(is_array($Ae)){$nd=($Sc==1?0:1);$Ae=$Ae[$nd];}$Ae=str_replace("%d","%s",$Ae);$Sc=format_number($Sc);return
171sprintf($Ae,$Sc);}if(extension_loaded('pdo')){class
172Min_PDO
173extends
174PDO{var$_result,$server_info,$affected_rows,$errno,$error;function
175__construct(){global$b;$nd=array_search("SQL",$b->operators);if($nd!==false)unset($b->operators[$nd]);}function
176dsn($nb,$U,$I){try{parent::__construct($nb,$U,$I);}catch(Exception$_b){auth_error(h($_b->getMessage()));}$this->setAttribute(13,array('Min_PDOStatement'));$this->server_info=@$this->getAttribute(4);}function
177query($J,$Fe=false){$K=parent::query($J);$this->error="";if(!$K){list(,$this->errno,$this->error)=$this->errorInfo();return
178false;}$this->store_result($K);return$K;}function
179multi_query($J){return$this->_result=$this->query($J);}function
180store_result($K=null){if(!$K){$K=$this->_result;if(!$K)return
181false;}if($K->columnCount()){$K->num_rows=$K->rowCount();return$K;}$this->affected_rows=$K->rowCount();return
182true;}function
183next_result(){if(!$this->_result)return
184false;$this->_result->_offset=0;return@$this->_result->nextRowset();}function
185result($J,$l=0){$K=$this->query($J);if(!$K)return
186false;$M=$K->fetch();return$M[$l];}}class
187Min_PDOStatement
188extends
189PDOStatement{var$_offset=0,$num_rows;function
190fetch_assoc(){return$this->fetch(2);}function
191fetch_row(){return$this->fetch(3);}function
192fetch_field(){$M=(object)$this->getColumnMeta($this->_offset++);$M->orgtable=$M->table;$M->orgname=$M->name;$M->charsetnr=(in_array("blob",(array)$M->flags)?63:0);return$M;}}}$mb=array();class
193Min_SQL{var$_conn;function
194__construct($f){$this->_conn=$f;}function
195select($S,$O,$Z,$r,$G=array(),$z=1,$H=0,$rd=false){global$b,$x;$w=(count($r)<count($O));$J=$b->selectQueryBuild($O,$Z,$r,$G,$z,$H);if(!$J)$J="SELECT".limit(($_GET["page"]!="last"&&$z!=""&&$r&&$w&&$x=="sql"?"SQL_CALC_FOUND_ROWS ":"").implode(", ",$O)."\nFROM ".table($S),($Z?"\nWHERE ".implode(" AND ",$Z):"").($r&&$w?"\nGROUP BY ".implode(", ",$r):"").($G?"\nORDER BY ".implode(", ",$G):""),($z!=""?+$z:null),($H?$z*$H:0),"\n");$ae=microtime(true);$L=$this->_conn->query($J);if($rd)echo$b->selectQuery($J,format_time($ae));return$L;}function
196delete($S,$yd,$z=0){$J="FROM ".table($S);return
197queries("DELETE".($z?limit1($J,$yd):" $J$yd"));}function
198update($S,$Q,$yd,$z=0,$Qd="\n"){$Qe=array();foreach($Q
199as$y=>$W)$Qe[]="$y = $W";$J=table($S)." SET$Qd".implode(",$Qd",$Qe);return
200queries("UPDATE".($z?limit1($J,$yd):" $J$yd"));}function
201insert($S,$Q){return
202queries("INSERT INTO ".table($S).($Q?" (".implode(", ",array_keys($Q)).")\nVALUES (".implode(", ",$Q).")":" DEFAULT VALUES"));}function
203insertUpdate($S,$N,$qd){return
204false;}function
205begin(){return
206queries("BEGIN");}function
207commit(){return
208queries("COMMIT");}function
209rollback(){return
210queries("ROLLBACK");}}$mb=array("server"=>"MySQL")+$mb;if(!defined("DRIVER")){$od=array("MySQLi","MySQL","PDO_MySQL");define("DRIVER","server");if(extension_loaded("mysqli")){class
211Min_DB
212extends
213MySQLi{var$extension="MySQLi";function
214__construct(){parent::init();}function
215connect($P="",$U="",$I="",$cb=null,$md=null,$Wd=null){mysqli_report(MYSQLI_REPORT_OFF);list($ec,$md)=explode(":",$P,2);$L=@$this->real_connect(($P!=""?$ec:ini_get("mysqli.default_host")),($P.$U!=""?$U:ini_get("mysqli.default_user")),($P.$U.$I!=""?$I:ini_get("mysqli.default_pw")),$cb,(is_numeric($md)?$md:ini_get("mysqli.default_port")),(!is_numeric($md)?$md:$Wd));return$L;}function
216set_charset($Da){if(parent::set_charset($Da))return
217true;parent::set_charset('utf8');return$this->query("SET NAMES $Da");}function
218result($J,$l=0){$K=$this->query($J);if(!$K)return
219false;$M=$K->fetch_array();return$M[$l];}function
220quote($R){return"'".$this->escape_string($R)."'";}}}elseif(extension_loaded("mysql")&&!(ini_get("sql.safe_mode")&&extension_loaded("pdo_mysql"))){class
221Min_DB{var$extension="MySQL",$server_info,$affected_rows,$errno,$error,$_link,$_result;function
222connect($P,$U,$I){$this->_link=@mysql_connect(($P!=""?$P:ini_get("mysql.default_host")),("$P$U"!=""?$U:ini_get("mysql.default_user")),("$P$U$I"!=""?$I:ini_get("mysql.default_password")),true,131072);if($this->_link)$this->server_info=mysql_get_server_info($this->_link);else$this->error=mysql_error();return(bool)$this->_link;}function
223set_charset($Da){if(function_exists('mysql_set_charset')){if(mysql_set_charset($Da,$this->_link))return
224true;mysql_set_charset('utf8',$this->_link);}return$this->query("SET NAMES $Da");}function
225quote($R){return"'".mysql_real_escape_string($R,$this->_link)."'";}function
226select_db($cb){return
227mysql_select_db($cb,$this->_link);}function
228query($J,$Fe=false){$K=@($Fe?mysql_unbuffered_query($J,$this->_link):mysql_query($J,$this->_link));$this->error="";if(!$K){$this->errno=mysql_errno($this->_link);$this->error=mysql_error($this->_link);return
229false;}if($K===true){$this->affected_rows=mysql_affected_rows($this->_link);$this->info=mysql_info($this->_link);return
230true;}return
231new
232Min_Result($K);}function
233multi_query($J){return$this->_result=$this->query($J);}function
234store_result(){return$this->_result;}function
235next_result(){return
236false;}function
237result($J,$l=0){$K=$this->query($J);if(!$K||!$K->num_rows)return
238false;return
239mysql_result($K->_result,0,$l);}}class
240Min_Result{var$num_rows,$_result,$_offset=0;function
241__construct($K){$this->_result=$K;$this->num_rows=mysql_num_rows($K);}function
242fetch_assoc(){return
243mysql_fetch_assoc($this->_result);}function
244fetch_row(){return
245mysql_fetch_row($this->_result);}function
246fetch_field(){$L=mysql_fetch_field($this->_result,$this->_offset++);$L->orgtable=$L->table;$L->orgname=$L->name;$L->charsetnr=($L->blob?63:0);return$L;}function
247__destruct(){mysql_free_result($this->_result);}}}elseif(extension_loaded("pdo_mysql")){class
248Min_DB
249extends
250Min_PDO{var$extension="PDO_MySQL";function
251connect($P,$U,$I){$this->dsn("mysql:charset=utf8;host=".str_replace(":",";unix_socket=",preg_replace('~:(\\d)~',';port=\\1',$P)),$U,$I);return
252true;}function
253set_charset($Da){$this->query("SET NAMES $Da");}function
254select_db($cb){return$this->query("USE ".idf_escape($cb));}function
255query($J,$Fe=false){$this->setAttribute(1000,!$Fe);return
256parent::query($J,$Fe);}}}class
257Min_Driver
258extends
259Min_SQL{function
260insert($S,$Q){return($Q?parent::insert($S,$Q):queries("INSERT INTO ".table($S)." ()\nVALUES ()"));}function
261insertUpdate($S,$N,$qd){$e=array_keys(reset($N));$pd="INSERT INTO ".table($S)." (".implode(", ",$e).") VALUES\n";$Qe=array();foreach($e
262as$y)$Qe[$y]="$y = VALUES($y)";$ge="\nON DUPLICATE KEY UPDATE ".implode(", ",$Qe);$Qe=array();$_c=0;foreach($N
263as$Q){$X="(".implode(", ",$Q).")";if($Qe&&(strlen($pd)+$_c+strlen($X)+strlen($ge)>1e6)){if(!queries($pd.implode(",\n",$Qe).$ge))return
264false;$Qe=array();$_c=0;}$Qe[]=$X;$_c+=strlen($X)+2;}return
265queries($pd.implode(",\n",$Qe).$ge);}}function
266idf_escape($hc){return"`".str_replace("`","``",$hc)."`";}function
267table($hc){return
268idf_escape($hc);}function
269connect(){global$b,$Ee,$de;$f=new
270Min_DB;$Xa=$b->credentials();if($f->connect($Xa[0],$Xa[1],$Xa[2])){$f->set_charset(charset($f));$f->query("SET sql_quote_show_create = 1, autocommit = 1");if(version_compare($f->server_info,'5.7.8')>=0){$de['Strings'][]="json";$Ee["json"]=4294967295;}return$f;}$L=$f->error;if(function_exists('iconv')&&!is_utf8($L)&&strlen($Jd=iconv("windows-1250","utf-8",$L))>strlen($L))$L=$Jd;return$L;}function
271get_databases($Lb){global$f;$L=get_session("dbs");if($L===null){$J=($f->server_info>=5?"SELECT SCHEMA_NAME FROM information_schema.SCHEMATA":"SHOW DATABASES");$L=($Lb?slow_query($J):get_vals($J));restart_session();set_session("dbs",$L);stop_session();}return$L;}function
272limit($J,$Z,$z,$Tc=0,$Qd=" "){return" $J$Z".($z!==null?$Qd."LIMIT $z".($Tc?" OFFSET $Tc":""):"");}function
273limit1($J,$Z){return
274limit($J,$Z,1);}function
275db_collation($h,$Na){global$f;$L=null;$Va=$f->result("SHOW CREATE DATABASE ".idf_escape($h),1);if(preg_match('~ COLLATE ([^ ]+)~',$Va,$B))$L=$B[1];elseif(preg_match('~ CHARACTER SET ([^ ]+)~',$Va,$B))$L=$Na[$B[1]][-1];return$L;}function
276engines(){$L=array();foreach(get_rows("SHOW ENGINES")as$M){if(preg_match("~YES|DEFAULT~",$M["Support"]))$L[]=$M["Engine"];}return$L;}function
277logged_user(){global$f;return$f->result("SELECT USER()");}function
278tables_list(){global$f;return
279get_key_vals($f->server_info>=5?"SELECT TABLE_NAME, TABLE_TYPE FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() ORDER BY TABLE_NAME":"SHOW TABLES");}function
280count_tables($db){$L=array();foreach($db
281as$h)$L[$h]=count(get_vals("SHOW TABLES IN ".idf_escape($h)));return$L;}function
282table_status($E="",$Fb=false){global$f;$L=array();foreach(get_rows($Fb&&$f->server_info>=5?"SELECT TABLE_NAME AS Name, ENGINE AS Engine, TABLE_COMMENT AS Comment FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() ".($E!=""?"AND TABLE_NAME = ".q($E):"ORDER BY Name"):"SHOW TABLE STATUS".($E!=""?" LIKE ".q(addcslashes($E,"%_\\")):""))as$M){if($M["Engine"]=="InnoDB")$M["Comment"]=preg_replace('~(?:(.+); )?InnoDB free: .*~','\\1',$M["Comment"]);if(!isset($M["Engine"]))$M["Comment"]="";if($E!="")return$M;$L[$M["Name"]]=$M;}return$L;}function
283is_view($T){return$T["Engine"]===null;}function
284fk_support($T){global$f;return
285preg_match('~InnoDB|IBMDB2I~i',$T["Engine"])||(preg_match('~NDB~i',$T["Engine"])&&version_compare($f->server_info,'5.6')>=0);}function
286fields($S){$L=array();foreach(get_rows("SHOW FULL COLUMNS FROM ".table($S))as$M){preg_match('~^([^( ]+)(?:\\((.+)\\))?( unsigned)?( zerofill)?$~',$M["Type"],$B);$L[$M["Field"]]=array("field"=>$M["Field"],"full_type"=>$M["Type"],"type"=>$B[1],"length"=>$B[2],"unsigned"=>ltrim($B[3].$B[4]),"default"=>($M["Default"]!=""||preg_match("~char|set~",$B[1])?$M["Default"]:null),"null"=>($M["Null"]=="YES"),"auto_increment"=>($M["Extra"]=="auto_increment"),"on_update"=>(preg_match('~^on update (.+)~i',$M["Extra"],$B)?$B[1]:""),"collation"=>$M["Collation"],"privileges"=>array_flip(preg_split('~, *~',$M["Privileges"])),"comment"=>$M["Comment"],"primary"=>($M["Key"]=="PRI"),);}return$L;}function
287indexes($S,$g=null){$L=array();foreach(get_rows("SHOW INDEX FROM ".table($S),$g)as$M){$E=$M["Key_name"];$L[$E]["type"]=($E=="PRIMARY"?"PRIMARY":($M["Index_type"]=="FULLTEXT"?"FULLTEXT":($M["Non_unique"]?($M["Index_type"]=="SPATIAL"?"SPATIAL":"INDEX"):"UNIQUE")));$L[$E]["columns"][]=$M["Column_name"];$L[$E]["lengths"][]=($M["Index_type"]=="SPATIAL"?null:$M["Sub_part"]);$L[$E]["descs"][]=null;}return$L;}function
288foreign_keys($S){global$f,$Vc;static$jd='`(?:[^`]|``)+`';$L=array();$Wa=$f->result("SHOW CREATE TABLE ".table($S),1);if($Wa){preg_match_all("~CONSTRAINT ($jd) FOREIGN KEY ?\\(((?:$jd,? ?)+)\\) REFERENCES ($jd)(?:\\.($jd))? \\(((?:$jd,? ?)+)\\)(?: ON DELETE ($Vc))?(?: ON UPDATE ($Vc))?~",$Wa,$Ec,PREG_SET_ORDER);foreach($Ec
289as$B){preg_match_all("~$jd~",$B[2],$Xd);preg_match_all("~$jd~",$B[5],$ne);$L[idf_unescape($B[1])]=array("db"=>idf_unescape($B[4]!=""?$B[3]:$B[4]),"table"=>idf_unescape($B[4]!=""?$B[4]:$B[3]),"source"=>array_map('idf_unescape',$Xd[0]),"target"=>array_map('idf_unescape',$ne[0]),"on_delete"=>($B[6]?$B[6]:"RESTRICT"),"on_update"=>($B[7]?$B[7]:"RESTRICT"),);}}return$L;}function
290view($E){global$f;return
291array("select"=>preg_replace('~^(?:[^`]|`[^`]*`)*\\s+AS\\s+~isU','',$f->result("SHOW CREATE VIEW ".table($E),1)));}function
292collations(){$L=array();foreach(get_rows("SHOW COLLATION")as$M){if($M["Default"])$L[$M["Charset"]][-1]=$M["Collation"];else$L[$M["Charset"]][]=$M["Collation"];}ksort($L);foreach($L
293as$y=>$W)asort($L[$y]);return$L;}function
294information_schema($h){global$f;return($f->server_info>=5&&$h=="information_schema")||($f->server_info>=5.5&&$h=="performance_schema");}function
295error(){global$f;return
296h(preg_replace('~^You have an error.*syntax to use~U',"Syntax error",$f->error));}function
297create_database($h,$Ma){return
298queries("CREATE DATABASE ".idf_escape($h).($Ma?" COLLATE ".q($Ma):""));}function
299drop_databases($db){$L=apply_queries("DROP DATABASE",$db,'idf_escape');restart_session();set_session("dbs",null);return$L;}function
300rename_database($E,$Ma){$L=false;if(create_database($E,$Ma)){$Dd=array();foreach(tables_list()as$S=>$Ce)$Dd[]=table($S)." TO ".idf_escape($E).".".table($S);$L=(!$Dd||queries("RENAME TABLE ".implode(", ",$Dd)));if($L)queries("DROP DATABASE ".idf_escape(DB));restart_session();set_session("dbs",null);}return$L;}function
301auto_increment(){$ta=" PRIMARY KEY";if($_GET["create"]!=""&&$_POST["auto_increment_col"]){foreach(indexes($_GET["create"])as$u){if(in_array($_POST["fields"][$_POST["auto_increment_col"]]["orig"],$u["columns"],true)){$ta="";break;}if($u["type"]=="PRIMARY")$ta=" UNIQUE";}}return" AUTO_INCREMENT$ta";}function
302alter_table($S,$E,$m,$Mb,$Qa,$wb,$Ma,$sa,$id){$ma=array();foreach($m
303as$l)$ma[]=($l[1]?($S!=""?($l[0]!=""?"CHANGE ".idf_escape($l[0]):"ADD"):" ")." ".implode($l[1]).($S!=""?$l[2]:""):"DROP ".idf_escape($l[0]));$ma=array_merge($ma,$Mb);$be=($Qa!==null?" COMMENT=".q($Qa):"").($wb?" ENGINE=".q($wb):"").($Ma?" COLLATE ".q($Ma):"").($sa!=""?" AUTO_INCREMENT=$sa":"");if($S=="")return
304queries("CREATE TABLE ".table($E)." (\n".implode(",\n",$ma)."\n)$be$id");if($S!=$E)$ma[]="RENAME TO ".table($E);if($be)$ma[]=ltrim($be);return($ma||$id?queries("ALTER TABLE ".table($S)."\n".implode(",\n",$ma).$id):true);}function
305alter_indexes($S,$ma){foreach($ma
306as$y=>$W)$ma[$y]=($W[2]=="DROP"?"\nDROP INDEX ".idf_escape($W[1]):"\nADD $W[0] ".($W[0]=="PRIMARY"?"KEY ":"").($W[1]!=""?idf_escape($W[1])." ":"")."(".implode(", ",$W[2]).")");return
307queries("ALTER TABLE ".table($S).implode(",",$ma));}function
308truncate_tables($le){return
309apply_queries("TRUNCATE TABLE",$le);}function
310drop_views($Te){return
311queries("DROP VIEW ".implode(", ",array_map('table',$Te)));}function
312drop_tables($le){return
313queries("DROP TABLE ".implode(", ",array_map('table',$le)));}function
314move_tables($le,$Te,$ne){$Dd=array();foreach(array_merge($le,$Te)as$S)$Dd[]=table($S)." TO ".idf_escape($ne).".".table($S);return
315queries("RENAME TABLE ".implode(", ",$Dd));}function
316copy_tables($le,$Te,$ne){queries("SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO'");foreach($le
317as$S){$E=($ne==DB?table("copy_$S"):idf_escape($ne).".".table($S));if(!queries("\nDROP TABLE IF EXISTS $E")||!queries("CREATE TABLE $E LIKE ".table($S))||!queries("INSERT INTO $E SELECT * FROM ".table($S)))return
318false;}foreach($Te
319as$S){$E=($ne==DB?table("copy_$S"):idf_escape($ne).".".table($S));$Se=view($S);if(!queries("DROP VIEW IF EXISTS $E")||!queries("CREATE VIEW $E AS $Se[select]"))return
320false;}return
321true;}function
322trigger($E){if($E=="")return
323array();$N=get_rows("SHOW TRIGGERS WHERE `Trigger` = ".q($E));return
324reset($N);}function
325triggers($S){$L=array();foreach(get_rows("SHOW TRIGGERS LIKE ".q(addcslashes($S,"%_\\")))as$M)$L[$M["Trigger"]]=array($M["Timing"],$M["Event"]);return$L;}function
326trigger_options(){return
327array("Timing"=>array("BEFORE","AFTER"),"Event"=>array("INSERT","UPDATE","DELETE"),"Type"=>array("FOR EACH ROW"),);}function
328routine($E,$Ce){global$f,$xb,$mc,$Ee;$la=array("bool","boolean","integer","double precision","real","dec","numeric","fixed","national char","national varchar");$Yd="(?:\\s|/\\*[\s\S]*?\\*/|(?:#|-- )[^\n]*\n?|--\r?\n)";$De="((".implode("|",array_merge(array_keys($Ee),$la)).")\\b(?:\\s*\\(((?:[^'\")]|$xb)++)\\))?\\s*(zerofill\\s*)?(unsigned(?:\\s+zerofill)?)?)(?:\\s*(?:CHARSET|CHARACTER\\s+SET)\\s*['\"]?([^'\"\\s,]+)['\"]?)?";$jd="$Yd*(".($Ce=="FUNCTION"?"":$mc).")?\\s*(?:`((?:[^`]|``)*)`\\s*|\\b(\\S+)\\s+)$De";$Va=$f->result("SHOW CREATE $Ce ".idf_escape($E),2);preg_match("~\\(((?:$jd\\s*,?)*)\\)\\s*".($Ce=="FUNCTION"?"RETURNS\\s+$De\\s+":"")."(.*)~is",$Va,$B);$m=array();preg_match_all("~$jd\\s*,?~is",$B[1],$Ec,PREG_SET_ORDER);foreach($Ec
329as$gd){$E=str_replace("``","`",$gd[2]).$gd[3];$m[]=array("field"=>$E,"type"=>strtolower($gd[5]),"length"=>preg_replace_callback("~$xb~s",'normalize_enum',$gd[6]),"unsigned"=>strtolower(preg_replace('~\\s+~',' ',trim("$gd[8] $gd[7]"))),"null"=>1,"full_type"=>$gd[4],"inout"=>strtoupper($gd[1]),"collation"=>strtolower($gd[9]),);}if($Ce!="FUNCTION")return
330array("fields"=>$m,"definition"=>$B[11]);return
331array("fields"=>$m,"returns"=>array("type"=>$B[12],"length"=>$B[13],"unsigned"=>$B[15],"collation"=>$B[16]),"definition"=>$B[17],"language"=>"SQL",);}function
332routines(){return
333get_rows("SELECT ROUTINE_NAME, ROUTINE_TYPE, DTD_IDENTIFIER FROM information_schema.ROUTINES WHERE ROUTINE_SCHEMA = ".q(DB));}function
334routine_languages(){return
335array();}function
336last_id(){global$f;return$f->result("SELECT LAST_INSERT_ID()");}function
337explain($f,$J){return$f->query("EXPLAIN ".($f->server_info>=5.1?"PARTITIONS ":"").$J);}function
338found_rows($T,$Z){return($Z||$T["Engine"]!="InnoDB"?null:$T["Rows"]);}function
339types(){return
340array();}function
341schemas(){return
342array();}function
343get_schema(){return"";}function
344set_schema($Kd){return
345true;}function
346create_sql($S,$sa,$ee){global$f;$L=$f->result("SHOW CREATE TABLE ".table($S),1);if(!$sa)$L=preg_replace('~ AUTO_INCREMENT=\\d+~','',$L);return$L;}function
347truncate_sql($S){return"TRUNCATE ".table($S);}function
348use_sql($cb){return"USE ".idf_escape($cb);}function
349trigger_sql($S){$L="";foreach(get_rows("SHOW TRIGGERS LIKE ".q(addcslashes($S,"%_\\")),null,"-- ")as$M)$L.="\nCREATE TRIGGER ".idf_escape($M["Trigger"])." $M[Timing] $M[Event] ON ".table($M["Table"])." FOR EACH ROW\n$M[Statement];;\n";return$L;}function
350show_variables(){return
351get_key_vals("SHOW VARIABLES");}function
352process_list(){return
353get_rows("SHOW FULL PROCESSLIST");}function
354show_status(){return
355get_key_vals("SHOW STATUS");}function
356convert_field($l){global$f;if(preg_match("~binary~",$l["type"]))return"HEX(".idf_escape($l["field"]).")";if($l["type"]=="bit")return"BIN(".idf_escape($l["field"])." + 0)";if(preg_match("~geometry|point|linestring|polygon~",$l["type"]))return($f->server_info>=8?"ST_":"")."AsWKT(".idf_escape($l["field"]).")";}function
357unconvert_field($l,$L){if(preg_match("~binary~",$l["type"]))$L="UNHEX($L)";if($l["type"]=="bit")$L="CONV($L, 2, 10) + 0";if(preg_match("~geometry|point|linestring|polygon~",$l["type"]))$L="GeomFromText($L)";return$L;}function
358support($Gb){global$f;return!preg_match("~scheme|sequence|type|view_trigger|materializedview".($f->server_info<5.1?"|event|partitioning".($f->server_info<5?"|routine|trigger|view":""):"")."~",$Gb);}function
359kill_process($W){return
360queries("KILL ".number($W));}function
361connection_id(){return"SELECT CONNECTION_ID()";}function
362max_connections(){global$f;return$f->result("SELECT @@max_connections");}$x="sql";$Ee=array();$de=array();foreach(array('Numbers'=>array("tinyint"=>3,"smallint"=>5,"mediumint"=>8,"int"=>10,"bigint"=>20,"decimal"=>66,"float"=>12,"double"=>21),'Date and time'=>array("date"=>10,"datetime"=>19,"timestamp"=>19,"time"=>10,"year"=>4),'Strings'=>array("char"=>255,"varchar"=>65535,"tinytext"=>255,"text"=>65535,"mediumtext"=>16777215,"longtext"=>4294967295),'Lists'=>array("enum"=>65535,"set"=>64),'Binary'=>array("bit"=>20,"binary"=>255,"varbinary"=>65535,"tinyblob"=>255,"blob"=>65535,"mediumblob"=>16777215,"longblob"=>4294967295),'Geometry'=>array("geometry"=>0,"point"=>0,"linestring"=>0,"polygon"=>0,"multipoint"=>0,"multilinestring"=>0,"multipolygon"=>0,"geometrycollection"=>0),)as$y=>$W){$Ee+=$W;$de[$y]=array_keys($W);}$Le=array("unsigned","zerofill","unsigned zerofill");$ad=array("=","<",">","<=",">=","!=","LIKE","LIKE %%","REGEXP","IN","IS NULL","NOT LIKE","NOT REGEXP","NOT IN","IS NOT NULL","SQL");$Ub=array("char_length","date","from_unixtime","lower","round","sec_to_time","time_to_sec","upper");$Wb=array("avg","count","count distinct","group_concat","max","min","sum");$pb=array(array("char"=>"md5/sha1/password/encrypt/uuid","binary"=>"md5/sha1","date|time"=>"now",),array("(^|[^o])int|float|double|decimal"=>"+/-","date"=>"+ interval/- interval","time"=>"addtime/subtime","char|text"=>"concat",));}define("SERVER",$_GET[DRIVER]);define("DB",$_GET["db"]);define("ME",preg_replace('~^[^?]*/([^?]*).*~','\\1',$_SERVER["REQUEST_URI"]).'?'.(sid()?SID.'&':'').(SERVER!==null?DRIVER."=".urlencode(SERVER).'&':'').(isset($_GET["username"])?"username=".urlencode($_GET["username"]).'&':'').(DB!=""?'db='.urlencode(DB).'&'.(isset($_GET["ns"])?"ns=".urlencode($_GET["ns"])."&":""):''));$ca="4.5.0";class
363Adminer{var$operators=array("<=",">=");var$_values=array();function
364name(){return"<a href='https://www.adminer.org/editor/'".target_blank()." id='h1'>".'Editor'."</a>";}function
365credentials(){return
366array(SERVER,$_GET["username"],get_password());}function
367permanentLogin($Va=false){return
368password_file($Va);}function
369bruteForceKey(){return$_SERVER["REMOTE_ADDR"];}function
370database(){global$f;if($f){$db=$this->databases(false);return(!$db?$f->result("SELECT SUBSTRING_INDEX(CURRENT_USER, '@', 1)"):$db[(information_schema($db[0])?1:0)]);}}function
371schemas(){return
372schemas();}function
373databases($Lb=true){return
374get_databases($Lb);}function
375queryTimeout(){return
3765;}function
377headers(){}function
378csp(){return
379csp();}function
380head(){return
381true;}function
382css(){$L=array();$n="adminer.css";if(file_exists($n))$L[]=$n;return$L;}function
383loginForm(){echo'<table cellspacing="0">
384<tr><th>Username<td><input type="hidden" name="auth[driver]" value="server"><input name="auth[username]" id="username" value="',h($_GET["username"]),'" autocapitalize="off">
385<tr><th>Password<td><input type="password" name="auth[password]">
386</table>
387',script("focus(qs('#username'));"),"<p><input type='submit' value='".'Login'."'>\n",checkbox("auth[permanent]",1,$_COOKIE["adminer_permanent"],'Permanent login')."\n";}function
388login($Cc,$I){return
389true;}function
390tableName($je){return
391h($je["Comment"]!=""?$je["Comment"]:$je["Name"]);}function
392fieldName($l,$G=0){return
393h(preg_replace('~\s+\[.*\]$~','',($l["comment"]!=""?$l["comment"]:$l["field"])));}function
394selectLinks($je,$Q=""){$a=$je["Name"];if($Q!==null)echo'<p class="tabs"><a href="'.h(ME.'edit='.urlencode($a).$Q).'">'.'New item'."</a>\n";}function
395foreignKeys($S){return
396foreign_keys($S);}function
397backwardKeys($S,$ie){$L=array();foreach(get_rows("SELECT TABLE_NAME, CONSTRAINT_NAME, COLUMN_NAME, REFERENCED_COLUMN_NAME
398FROM information_schema.KEY_COLUMN_USAGE
399WHERE TABLE_SCHEMA = ".q($this->database())."
400AND REFERENCED_TABLE_SCHEMA = ".q($this->database())."
401AND REFERENCED_TABLE_NAME = ".q($S)."
402ORDER BY ORDINAL_POSITION",null,"")as$M)$L[$M["TABLE_NAME"]]["keys"][$M["CONSTRAINT_NAME"]][$M["COLUMN_NAME"]]=$M["REFERENCED_COLUMN_NAME"];foreach($L
403as$y=>$W){$E=$this->tableName(table_status($y,true));if($E!=""){$Ld=preg_quote($ie);$Qd="(:|\\s*-)?\\s+";$L[$y]["name"]=(preg_match("(^$Ld$Qd(.+)|^(.+?)$Qd$Ld\$)iu",$E,$B)?$B[2].$B[3]:$E);}else
404unset($L[$y]);}return$L;}function
405backwardKeysPrint($wa,$M){foreach($wa
406as$S=>$va){foreach($va["keys"]as$Oa){$_=ME.'select='.urlencode($S);$s=0;foreach($Oa
407as$d=>$W)$_.=where_link($s++,$d,$M[$W]);echo"<a href='".h($_)."'>".h($va["name"])."</a>";$_=ME.'edit='.urlencode($S);foreach($Oa
408as$d=>$W)$_.="&set".urlencode("[".bracket_escape($d)."]")."=".urlencode($M[$W]);echo"<a href='".h($_)."' title='".'New item'."'>+</a> ";}}}function
409selectQuery($J,$re){return"<!--\n".str_replace("--","--><!-- ",$J)."\n($re)\n-->\n";}function
410rowDescription($S){foreach(fields($S)as$l){if(preg_match("~varchar|character varying~",$l["type"]))return
411idf_escape($l["field"]);}return"";}function
412rowDescriptions($N,$Ob){$L=$N;foreach($N[0]as$y=>$W){if(list($S,$t,$E)=$this->_foreignColumn($Ob,$y)){$ic=array();foreach($N
413as$M)$ic[$M[$y]]=q($M[$y]);$hb=$this->_values[$S];if(!$hb)$hb=get_key_vals("SELECT $t, $E FROM ".table($S)." WHERE $t IN (".implode(", ",$ic).")");foreach($N
414as$D=>$M){if(isset($M[$y]))$L[$D][$y]=(string)$hb[$M[$y]];}}}return$L;}function
415selectLink($W,$l){}function
416selectVal($W,$_,$l,$dd){$L=($W===null?" ":$W);$_=h($_);if(preg_match('~blob|bytea~',$l["type"])&&!is_utf8($W)){$L=lang(array('%d byte','%d bytes'),strlen($dd));if(preg_match("~^(GIF|\xFF\xD8\xFF|\x89PNG\x0D\x0A\x1A\x0A)~",$dd))$L="<img src='$_' alt='$L'>";}if(like_bool($l)&&$L!=" ")$L=(preg_match('~^(1|t|true|y|yes|on)$~i',$X)?'yes':'no');if($_)$L="<a href='$_'".(is_url($_)?" rel='noreferrer'":"").">$L</a>";if(!$_&&!like_bool($l)&&preg_match('~int|float|double|decimal~',$l["type"]))$L="<div class='number'>$L</div>";elseif(preg_match('~date~',$l["type"]))$L="<div class='datetime'>$L</div>";return$L;}function
417editVal($W,$l){if(preg_match('~date|timestamp~',$l["type"])&&$W!==null)return
418preg_replace('~^(\\d{2}(\\d+))-(0?(\\d+))-(0?(\\d+))~','$1-$3-$5',$W);return$W;}function
419selectColumnsPrint($O,$e){}function
420selectSearchPrint($Z,$e,$v){$Z=(array)$_GET["where"];echo'<fieldset id="fieldset-search"><legend>'.'Search'."</legend><div>\n";$sc=array();foreach($Z
421as$y=>$W)$sc[$W["col"]]=$y;$s=0;$m=fields($_GET["select"]);foreach($e
422as$E=>$gb){$l=$m[$E];if(preg_match("~enum~",$l["type"])||like_bool($l)){$y=$sc[$E];$s--;echo"<div>".h($gb)."<input type='hidden' name='where[$s][col]' value='".h($E)."'>:",(like_bool($l)?" <select name='where[$s][val]'>".optionlist(array(""=>"",'no','yes'),$Z[$y]["val"],true)."</select>":enum_input("checkbox"," name='where[$s][val][]'",$l,(array)$Z[$y]["val"],($l["null"]?0:null))),"</div>\n";unset($e[$E]);}elseif(is_array($F=$this->_foreignKeyOptions($_GET["select"],$E))){if($m[$E]["null"])$F[0]='('.'empty'.')';$y=$sc[$E];$s--;echo"<div>".h($gb)."<input type='hidden' name='where[$s][col]' value='".h($E)."'><input type='hidden' name='where[$s][op]' value='='>: <select name='where[$s][val]'>".optionlist($F,$Z[$y]["val"],true)."</select></div>\n";unset($e[$E]);}}$s=0;foreach($Z
423as$W){if(($W["col"]==""||$e[$W["col"]])&&"$W[col]$W[val]"!=""){echo"<div><select name='where[$s][col]'><option value=''>(".'anywhere'.")".optionlist($e,$W["col"],true)."</select>",html_select("where[$s][op]",array(-1=>"")+$this->operators,$W["op"]),"<input type='search' name='where[$s][val]' value='".h($W["val"])."'>".script("mixin(qsl('input'), {onkeydown: selectSearchKeydown, onsearch: selectSearchSearch});","")."</div>\n";$s++;}}echo"<div><select name='where[$s][col]'><option value=''>(".'anywhere'.")".optionlist($e,null,true)."</select>",script("qsl('select').onchange = selectAddRow;",""),html_select("where[$s][op]",array(-1=>"")+$this->operators),"<input type='search' name='where[$s][val]'></div>",script("mixin(qsl('input'), {onchange: function () { this.parentNode.firstChild.onchange(); }, onsearch: selectSearchSearch});"),"</div></fieldset>\n";}function
424selectOrderPrint($G,$e,$v){$cd=array();foreach($v
425as$y=>$u){$G=array();foreach($u["columns"]as$W)$G[]=$e[$W];if(count(array_filter($G,'strlen'))>1&&$y!="PRIMARY")$cd[$y]=implode(", ",$G);}if($cd){echo'<fieldset><legend>'.'Sort'."</legend><div>","<select name='index_order'>".optionlist(array(""=>"")+$cd,($_GET["order"][0]!=""?"":$_GET["index_order"]),true)."</select>","</div></fieldset>\n";}if($_GET["order"])echo"<div style='display: none;'>".hidden_fields(array("order"=>array(1=>reset($_GET["order"])),"desc"=>($_GET["desc"]?array(1=>1):array()),))."</div>\n";}function
426selectLimitPrint($z){echo"<fieldset><legend>".'Limit'."</legend><div>";echo
427html_select("limit",array("","50","100"),$z),"</div></fieldset>\n";}function
428selectLengthPrint($pe){}function
429selectActionPrint($v){echo"<fieldset><legend>".'Action'."</legend><div>","<input type='submit' value='".'Select'."'>","</div></fieldset>\n";}function
430selectCommandPrint(){return
431true;}function
432selectImportPrint(){return
433true;}function
434selectEmailPrint($tb,$e){if($tb){print_fieldset("email",'E-mail',$_POST["email_append"]);echo"<div>",script("qsl('div').onkeydown = partialArg(bodyKeydown, 'email');"),"<p>".'From'.": <input name='email_from' value='".h($_POST?$_POST["email_from"]:$_COOKIE["adminer_email"])."'>\n",'Subject'.": <input name='email_subject' value='".h($_POST["email_subject"])."'>\n","<p><textarea name='email_message' rows='15' cols='75'>".h($_POST["email_message"].($_POST["email_append"]?'{$'."$_POST[email_addition]}":""))."</textarea>\n","<p>".script("qsl('p').onkeydown = partialArg(bodyKeydown, 'email_append');","").html_select("email_addition",$e,$_POST["email_addition"])."<input type='submit' name='email_append' value='".'Insert'."'>\n";echo"<p>".'Attachments'.": <input type='file' name='email_files[]'>".script("qsl('input').onchange = emailFileChange;"),"<p>".(count($tb)==1?'<input type="hidden" name="email_field" value="'.h(key($tb)).'">':html_select("email_field",$tb)),"<input type='submit' name='email' value='".'Send'."'>".confirm(),"</div>\n","</div></fieldset>\n";}}function
435selectColumnsProcess($e,$v){return
436array(array(),array());}function
437selectSearchProcess($m,$v){$L=array();foreach((array)$_GET["where"]as$y=>$Z){$La=$Z["col"];$Yc=$Z["op"];$W=$Z["val"];if(($y<0?"":$La).$W!=""){$Ra=array();foreach(($La!=""?array($La=>$m[$La]):$m)as$E=>$l){if($La!=""||is_numeric($W)||!preg_match('~int|float|double|decimal~',$l["type"])){$E=idf_escape($E);if($La!=""&&$l["type"]=="enum")$Ra[]=(in_array(0,$W)?"$E IS NULL OR ":"")."$E IN (".implode(", ",array_map('intval',$W)).")";else{$qe=preg_match('~char|text|enum|set~',$l["type"]);$X=$this->processInput($l,(!$Yc&&$qe&&preg_match('~^[^%]+$~',$W)?"%$W%":$W));$Ra[]=$E.($X=="NULL"?" IS".($Yc==">="?" NOT":"")." $X":(in_array($Yc,$this->operators)||$Yc=="="?" $Yc $X":($qe?" LIKE $X":" IN (".str_replace(",","', '",$X).")")));if($y<0&&$W=="0")$Ra[]="$E IS NULL";}}}$L[]=($Ra?"(".implode(" OR ",$Ra).")":"0");}}return$L;}function
438selectOrderProcess($m,$v){$kc=$_GET["index_order"];if($kc!="")unset($_GET["order"][1]);if($_GET["order"])return
439array(idf_escape(reset($_GET["order"])).($_GET["desc"]?" DESC":""));foreach(($kc!=""?array($v[$kc]):$v)as$u){if($kc!=""||$u["type"]=="INDEX"){$Yb=array_filter($u["descs"]);$gb=false;foreach($u["columns"]as$W){if(preg_match('~date|timestamp~',$m[$W]["type"])){$gb=true;break;}}$L=array();foreach($u["columns"]as$y=>$W)$L[]=idf_escape($W).(($Yb?$u["descs"][$y]:$gb)?" DESC":"");return$L;}}return
440array();}function
441selectLimitProcess(){return(isset($_GET["limit"])?$_GET["limit"]:"50");}function
442selectLengthProcess(){return"100";}function
443selectEmailProcess($Z,$Ob){if($_POST["email_append"])return
444true;if($_POST["email"]){$Pd=0;if($_POST["all"]||$_POST["check"]){$l=idf_escape($_POST["email_field"]);$fe=$_POST["email_subject"];$C=$_POST["email_message"];preg_match_all('~\\{\\$([a-z0-9_]+)\\}~i',"$fe.$C",$Ec);$N=get_rows("SELECT DISTINCT $l".($Ec[1]?", ".implode(", ",array_map('idf_escape',array_unique($Ec[1]))):"")." FROM ".table($_GET["select"])." WHERE $l IS NOT NULL AND $l != ''".($Z?" AND ".implode(" AND ",$Z):"").($_POST["all"]?"":" AND ((".implode(") OR (",array_map('where_check',(array)$_POST["check"]))."))"));$m=fields($_GET["select"]);foreach($this->rowDescriptions($N,$Ob)as$M){$Ed=array('{\\'=>'{');foreach($Ec[1]as$W)$Ed['{$'."$W}"]=$this->editVal($M[$W],$m[$W]);$sb=$M[$_POST["email_field"]];if(is_mail($sb)&&send_mail($sb,strtr($fe,$Ed),strtr($C,$Ed),$_POST["email_from"],$_FILES["email_files"]))$Pd++;}}cookie("adminer_email",$_POST["email_from"]);redirect(remove_from_uri(),lang(array('%d e-mail has been sent.','%d e-mails have been sent.'),$Pd));}return
445false;}function
446selectQueryBuild($O,$Z,$r,$G,$z,$H){return"";}function
447messageQuery($J,$re){return" <span class='time'>".@date("H:i:s")."</span><!--\n".str_replace("--","--><!-- ",$J)."\n".($re?"($re)\n":"")."-->";}function
448editFunctions($l){$L=array();if($l["null"]&&preg_match('~blob~',$l["type"]))$L["NULL"]='empty';$L[""]=($l["null"]||$l["auto_increment"]||like_bool($l)?"":"*");if(preg_match('~date|time~',$l["type"]))$L["now"]='now';if(preg_match('~_(md5|sha1)$~i',$l["field"],$B))$L[]=strtolower($B[1]);return$L;}function
449editInput($S,$l,$c,$X){if($l["type"]=="enum")return(isset($_GET["select"])?"<label><input type='radio'$c value='-1' checked><i>".'original'."</i></label> ":"").enum_input("radio",$c,$l,($X||isset($_GET["select"])?$X:0),($l["null"]?"":null));$F=$this->_foreignKeyOptions($S,$l["field"],$X);if($F!==null)return(is_array($F)?"<select$c>".optionlist($F,$X,true)."</select>":"<input value='".h($X)."'$c class='hidden'>"."<input value='".h($F)."' class='jsonly'>"."<div></div>".script("qsl('input').oninput = partial(whisper, '".ME."script=complete&source=".urlencode($S)."&field=".urlencode($l["field"])."&value=');
450qsl('div').onclick = whisperClick;",""));if(like_bool($l))return'<input type="checkbox" value="'.h($X?$X:1).'"'.($X?' checked':'')."$c>";$dc="";if(preg_match('~time~',$l["type"]))$dc='HH:MM:SS';if(preg_match('~date|timestamp~',$l["type"]))$dc='[yyyy]-mm-dd'.($dc?" [$dc]":"");if($dc)return"<input value='".h($X)."'$c> ($dc)";if(preg_match('~_(md5|sha1)$~i',$l["field"]))return"<input type='password' value='".h($X)."'$c>";return'';}function
451editHint($S,$l,$X){return(preg_match('~\s+(\[.*\])$~',($l["comment"]!=""?$l["comment"]:$l["field"]),$B)?h(" $B[1]"):'');}function
452processInput($l,$X,$q=""){if($q=="now")return"$q()";$L=$X;if(preg_match('~date|timestamp~',$l["type"])&&preg_match('(^'.str_replace('\\$1','(?P<p1>\\d*)',preg_replace('~(\\\\\\$([2-6]))~','(?P<p\\2>\\d{1,2})',preg_quote('$1-$3-$5'))).'(.*))',$X,$B))$L=($B["p1"]!=""?$B["p1"]:($B["p2"]!=""?($B["p2"]<70?20:19).$B["p2"]:gmdate("Y")))."-$B[p3]$B[p4]-$B[p5]$B[p6]".end($B);$L=($l["type"]=="bit"&&preg_match('~^[0-9]+$~',$X)?$L:q($L));if($X==""&&like_bool($l))$L="0";elseif($X==""&&($l["null"]||!preg_match('~char|text~',$l["type"])))$L="NULL";elseif(preg_match('~^(md5|sha1)$~',$q))$L="$q($L)";return
453unconvert_field($l,$L);}function
454dumpOutput(){return
455array();}function
456dumpFormat(){return
457array('csv'=>'CSV,','csv;'=>'CSV;','tsv'=>'TSV');}function
458dumpDatabase($h){}function
459dumpTable(){echo"\xef\xbb\xbf";}function
460dumpData($S,$ee,$J){global$f;$K=$f->query($J,1);if($K){while($M=$K->fetch_assoc()){if($ee=="table"){dump_csv(array_keys($M));$ee="INSERT";}dump_csv($M);}}}function
461dumpFilename($gc){return
462friendly_url($gc);}function
463dumpHeaders($gc,$Mc=false){$Cb="csv";header("Content-Type: text/csv; charset=utf-8");return$Cb;}function
464importServerPath(){}function
465homepage(){return
466true;}function
467navigation($Lc){global$ca;echo'<h1>
468',$this->name(),' <span class="version">',$ca,'</span>
469<a href="https://www.adminer.org/editor/#download"',target_blank(),' id="version">',(version_compare($ca,$_COOKIE["adminer_version"])<0?h($_COOKIE["adminer_version"]):""),'</a>
470</h1>
471';if($Lc=="auth"){$Kb=true;foreach((array)$_SESSION["pwds"]as$Y=>$Sd){foreach($Sd[""]as$U=>$I){if($I!==null){if($Kb){echo"<p id='logins'>",script("mixin(qs('#logins'), {onmouseover: menuOver, onmouseout: menuOut});");$Kb=false;}echo"<a href='".h(auth_url($Y,"",$U))."'>".($U!=""?h($U):"<i>".'empty'."</i>")."</a><br>\n";}}}}else{$this->databasesPrint($Lc);if($Lc!="db"&&$Lc!="ns"){$T=table_status('',true);if(!$T)echo"<p class='message'>".'No tables.'."\n";else$this->tablesPrint($T);}}}function
472databasesPrint($Lc){}function
473tablesPrint($le){echo"<ul id='tables'>",script("mixin(qs('#tables'), {onmouseover: menuOver, onmouseout: menuOut});");foreach($le
474as$M){echo'<li>';$E=$this->tableName($M);if(isset($M["Engine"])&&$E!="")echo"<a href='".h(ME).'select='.urlencode($M["Name"])."'".bold($_GET["select"]==$M["Name"]||$_GET["edit"]==$M["Name"],"select")." title='".'Select data'."'>$E</a>\n";}echo"</ul>\n";}function
475_foreignColumn($Ob,$d){foreach((array)$Ob[$d]as$Nb){if(count($Nb["source"])==1){$E=$this->rowDescription($Nb["table"]);if($E!=""){$t=idf_escape($Nb["target"][0]);return
476array($Nb["table"],$t,$E);}}}}function
477_foreignKeyOptions($S,$d,$X=null){global$f;if(list($ne,$t,$E)=$this->_foreignColumn(column_foreign_keys($S),$d)){$L=&$this->_values[$ne];if($L===null){$T=table_status($ne);$L=($T["Rows"]>1000?"":array(""=>"")+get_key_vals("SELECT $t, $E FROM ".table($ne)." ORDER BY 2"));}if(!$L&&$X!==null)return$f->result("SELECT $E FROM ".table($ne)." WHERE $t = ".q($X));return$L;}}}$b=(function_exists('adminer_object')?adminer_object():new
478Adminer);function
479page_header($te,$k="",$Ca=array(),$ue=""){global$ba,$ca,$b,$mb,$x;page_headers();if(is_ajax()&&$k){page_messages($k);exit;}$ve=$te.($ue!=""?": $ue":"");$we=strip_tags($ve.(SERVER!=""&&SERVER!="localhost"?h(" - ".SERVER):"")." - ".$b->name());echo'<!DOCTYPE html>
480<html lang="en" dir="ltr">
481<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
482<meta name="robots" content="noindex">
483<title>',$we,'</title>
484<link rel="stylesheet" type="text/css" href="',h(preg_replace("~\\?.*~","",ME)."?file=default.css&version=4.5.0&driver=mysql"),'">
485',script_src(preg_replace("~\\?.*~","",ME)."?file=functions.js&version=4.5.0&driver=mysql");if($b->head()){echo'<link rel="shortcut icon" type="image/x-icon" href="',h(preg_replace("~\\?.*~","",ME)."?file=favicon.ico&version=4.5.0&driver=mysql"),'">
486<link rel="apple-touch-icon" href="',h(preg_replace("~\\?.*~","",ME)."?file=favicon.ico&version=4.5.0&driver=mysql"),'">
487';foreach($b->css()as$Za){echo'<link rel="stylesheet" type="text/css" href="',h($Za),'">
488';}}echo'
489<body class="ltr nojs">
490';$n=get_temp_dir()."/adminer.version";if(!$_COOKIE["adminer_version"]&&function_exists('openssl_verify')&&file_exists($n)&&filemtime($n)+86400>time()){$Re=unserialize(file_get_contents($n));$vd="-----BEGIN PUBLIC KEY-----
491MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwqWOVuF5uw7/+Z70djoK
492RlHIZFZPO0uYRezq90+7Amk+FDNd7KkL5eDve+vHRJBLAszF/7XKXe11xwliIsFs
493DFWQlsABVZB3oisKCBEuI71J4kPH8dKGEWR9jDHFw3cWmoH3PmqImX6FISWbG3B8
494h7FIx3jEaw5ckVPVTeo5JRm/1DZzJxjyDenXvBQ/6o9DgZKeNDgxwKzH+sw9/YCO
495jHnq1cFpOIISzARlrHMa/43YfeNRAm/tsBXjSxembBPo7aQZLAWHmaj5+K19H10B
496nCpz9Y++cipkVEiKRGih4ZEvjoFysEOdRLj6WiD/uUNky4xGeA6LaJqh5XpkFkcQ
497fQIDAQAB
498-----END PUBLIC KEY-----
499";if(openssl_verify($Re["version"],base64_decode($Re["signature"]),$vd)==1)$_COOKIE["adminer_version"]=$Re["version"];}echo'<script',nonce(),'>
500mixin(document.body, {onkeydown: bodyKeydown, onclick: bodyClick',(isset($_COOKIE["adminer_version"])?"":", onload: partial(verifyVersion, '$ca', '".js_escape(ME)."', '".get_token()."')");?>});
501document.body.className = document.body.className.replace(/ nojs/, ' js');
502var offlineMessage = '<?php echo
503js_escape('You are offline.'),'\';
504</script>
505
506<div id="help" class="jush-',$x,' jsonly hidden"></div>
507',script("mixin(qs('#help'), {onmouseover: function () { helpOpen = 1; }, onmouseout: helpMouseout});"),'
508<div id="content">
509';if($Ca!==null){$_=substr(preg_replace('~\b(username|db|ns)=[^&]*&~','',ME),0,-1);echo'<p id="breadcrumb"><a href="'.h($_?$_:".").'">'.$mb[DRIVER].'</a> » ';$_=substr(preg_replace('~\b(db|ns)=[^&]*&~','',ME),0,-1);$P=(SERVER!=""?h(SERVER):'Server');if($Ca===false)echo"$P\n";else{echo"<a href='".($_?h($_):".")."' accesskey='1' title='Alt+Shift+1'>$P</a> » ";if($_GET["ns"]!=""||(DB!=""&&is_array($Ca)))echo'<a href="'.h($_."&db=".urlencode(DB).(support("scheme")?"&ns=":"")).'">'.h(DB).'</a> » ';if(is_array($Ca)){if($_GET["ns"]!="")echo'<a href="'.h(substr(ME,0,-1)).'">'.h($_GET["ns"]).'</a> » ';foreach($Ca
510as$y=>$W){$gb=(is_array($W)?$W[1]:h($W));if($gb!="")echo"<a href='".h(ME."$y=").urlencode(is_array($W)?$W[0]:$W)."'>$gb</a> » ";}}echo"$te\n";}}echo"<h2>$ve</h2>\n","<div id='ajaxstatus' class='jsonly hidden'></div>\n";restart_session();page_messages($k);$db=&get_session("dbs");if(DB!=""&&$db&&!in_array(DB,$db,true))$db=null;stop_session();define("PAGE_HEADER",1);}function
511page_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$Ya){$bc=array();foreach($Ya
512as$y=>$W)$bc[]="$y $W";header("Content-Security-Policy: ".implode("; ",$bc));}$b->headers();}function
513csp(){return
514array(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
515get_nonce(){static$Qc;if(!$Qc)$Qc=base64_encode(rand_string());return$Qc;}function
516page_messages($k){$Ne=preg_replace('~^[^?]*~','',$_SERVER["REQUEST_URI"]);$Kc=$_SESSION["messages"][$Ne];if($Kc){echo"<div class='message'>".implode("</div>\n<div class='message'>",$Kc)."</div>".script("messagesPrint();");unset($_SESSION["messages"][$Ne]);}if($k)echo"<div class='error'>$k</div>\n";}function
517page_footer($Lc=""){global$b,$ye;echo'</div>
518
519';if($Lc!="auth"){echo'<form action="" method="post">
520<p class="logout">
521<input type="submit" name="logout" value="Logout" id="logout">
522<input type="hidden" name="token" value="',$ye,'">
523</p>
524</form>
525';}echo'<div id="menu">
526';$b->navigation($Lc);echo'</div>
527',script("setupSubmitHighlight(document);");}function
528int32($D){while($D>=2147483648)$D-=4294967296;while($D<=-2147483649)$D+=4294967296;return(int)$D;}function
529long2str($V,$Ve){$Jd='';foreach($V
530as$W)$Jd.=pack('V',$W);if($Ve)return
531substr($Jd,0,end($V));return$Jd;}function
532str2long($Jd,$Ve){$V=array_values(unpack('V*',str_pad($Jd,4*ceil(strlen($Jd)/4),"\0")));if($Ve)$V[]=strlen($Jd);return$V;}function
533xxtea_mx($af,$Ze,$he,$rc){return
534int32((($af>>5&0x7FFFFFF)^$Ze<<2)+(($Ze>>3&0x1FFFFFFF)^$af<<4))^int32(($he^$Ze)+($rc^$af));}function
535encrypt_string($ce,$y){if($ce=="")return"";$y=array_values(unpack("V*",pack("H*",md5($y))));$V=str2long($ce,true);$D=count($V)-1;$af=$V[$D];$Ze=$V[0];$wd=floor(6+52/($D+1));$he=0;while($wd-->0){$he=int32($he+0x9E3779B9);$ob=$he>>2&3;for($fd=0;$fd<$D;$fd++){$Ze=$V[$fd+1];$Nc=xxtea_mx($af,$Ze,$he,$y[$fd&3^$ob]);$af=int32($V[$fd]+$Nc);$V[$fd]=$af;}$Ze=$V[0];$Nc=xxtea_mx($af,$Ze,$he,$y[$fd&3^$ob]);$af=int32($V[$D]+$Nc);$V[$D]=$af;}return
536long2str($V,false);}function
537decrypt_string($ce,$y){if($ce=="")return"";if(!$y)return
538false;$y=array_values(unpack("V*",pack("H*",md5($y))));$V=str2long($ce,false);$D=count($V)-1;$af=$V[$D];$Ze=$V[0];$wd=floor(6+52/($D+1));$he=int32($wd*0x9E3779B9);while($he){$ob=$he>>2&3;for($fd=$D;$fd>0;$fd--){$af=$V[$fd-1];$Nc=xxtea_mx($af,$Ze,$he,$y[$fd&3^$ob]);$Ze=int32($V[$fd]-$Nc);$V[$fd]=$Ze;}$af=$V[$D];$Nc=xxtea_mx($af,$Ze,$he,$y[$fd&3^$ob]);$Ze=int32($V[0]-$Nc);$V[0]=$Ze;$he=int32($he-0x9E3779B9);}return
539long2str($V,true);}$f='';$ac=$_SESSION["token"];if(!$ac)$_SESSION["token"]=rand(1,1e6);$ye=get_token();$kd=array();if($_COOKIE["adminer_permanent"]){foreach(explode(" ",$_COOKIE["adminer_permanent"])as$W){list($y)=explode(":",$W);$kd[$y]=$W;}}function
540add_invalid_login(){global$b;$p=file_open_lock(get_temp_dir()."/adminer.invalid");if(!$p)return;$pc=unserialize(stream_get_contents($p));$re=time();if($pc){foreach($pc
541as$qc=>$W){if($W[0]<$re)unset($pc[$qc]);}}$oc=&$pc[$b->bruteForceKey()];if(!$oc)$oc=array($re+30*60,0);$oc[1]++;file_write_unlock($p,serialize($pc));}function
542check_invalid_login(){global$b;$pc=unserialize(@file_get_contents(get_temp_dir()."/adminer.invalid"));$oc=$pc[$b->bruteForceKey()];$Pc=($oc[1]>29?$oc[0]-time():0);if($Pc>0)auth_error(lang(array('Too many unsuccessful logins, try again in %d minute.','Too many unsuccessful logins, try again in %d minutes.'),ceil($Pc/60)));}$ra=$_POST["auth"];if($ra){session_regenerate_id();$Y=$ra["driver"];$P=$ra["server"];$U=$ra["username"];$I=(string)$ra["password"];$h=$ra["db"];set_password($Y,$P,$U,$I);$_SESSION["db"][$Y][$P][$U][$h]=true;if($ra["permanent"]){$y=base64_encode($Y)."-".base64_encode($P)."-".base64_encode($U)."-".base64_encode($h);$sd=$b->permanentLogin(true);$kd[$y]="$y:".base64_encode($sd?encrypt_string($I,$sd):"");cookie("adminer_permanent",implode(" ",$kd));}if(count($_POST)==1||DRIVER!=$Y||SERVER!=$P||$_GET["username"]!==$U||DB!=$h)redirect(auth_url($Y,$P,$U,$h));}elseif($_POST["logout"]){if($ac&&!verify_token()){page_header('Logout','Invalid CSRF token. Send the form again.');page_footer("db");exit;}else{foreach(array("pwds","db","dbs","queries")as$y)set_session($y,null);unset_permanent();redirect(substr(preg_replace('~\b(username|db|ns)=[^&]*&~','',ME),0,-1),'Logout successful.'.' '.sprintf('Thanks for using Adminer, consider <a href="%s">donating</a>.','https://sourceforge.net/donate/index.php?group_id=264133'));}}elseif($kd&&!$_SESSION["pwds"]){session_regenerate_id();$sd=$b->permanentLogin();foreach($kd
543as$y=>$W){list(,$Ha)=explode(":",$W);list($Y,$P,$U,$h)=array_map('base64_decode',explode("-",$y));set_password($Y,$P,$U,decrypt_string(base64_decode($Ha),$sd));$_SESSION["db"][$Y][$P][$U][$h]=true;}}function
544unset_permanent(){global$kd;foreach($kd
545as$y=>$W){list($Y,$P,$U,$h)=array_map('base64_decode',explode("-",$y));if($Y==DRIVER&&$P==SERVER&&$U==$_GET["username"]&&$h==DB)unset($kd[$y]);}cookie("adminer_permanent",implode(" ",$kd));}function
546auth_error($k){global$b,$ac;$Td=session_name();if(isset($_GET["username"])){header("HTTP/1.1 403 Forbidden");if(($_COOKIE[$Td]||$_GET[$Td])&&!$ac)$k='Session expired, please login again.';else{add_invalid_login();$I=get_password();if($I!==null){if($I===false)$k.='<br>'.sprintf('Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.',target_blank(),'<code>permanentLogin()</code>');set_password(DRIVER,SERVER,$_GET["username"],null);}unset_permanent();}}if(!$_COOKIE[$Td]&&$_GET[$Td]&&ini_bool("session.use_only_cookies"))$k='Session support must be enabled.';$hd=session_get_cookie_params();cookie("adminer_key",($_COOKIE["adminer_key"]?$_COOKIE["adminer_key"]:rand_string()),$hd["lifetime"]);page_header('Login',$k,null);echo"<form action='' method='post'>\n";$b->loginForm();echo"<div>";hidden_fields($_POST,array("auth"));echo"</div>\n","</form>\n";page_footer("auth");exit;}if(isset($_GET["username"])){if(!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(", ",$od)),false);page_footer("auth");exit;}list($ec,$md)=explode(":",SERVER,2);if(is_numeric($md)&&$md<1024)auth_error('Connecting to privileged ports is not allowed.');check_invalid_login();$f=connect();$i=new
547Min_Driver($f);}if(!is_object($f)||($Cc=$b->login($_GET["username"],get_password()))!==true)auth_error((is_string($f)?h($f):(is_string($Cc)?$Cc:'Invalid credentials.')));if($ra&&$_POST["token"])$_POST["token"]=$ye;$k='';if($_POST){if(!verify_token()){$lc="max_input_vars";$Ic=ini_get($lc);if(extension_loaded("suhosin")){foreach(array("suhosin.request.max_vars","suhosin.post.max_vars")as$y){$W=ini_get($y);if($W&&(!$Ic||$W<$Ic)){$lc=$y;$Ic=$W;}}}$k=(!$_POST["token"]&&$Ic?sprintf('Maximum number of allowed fields exceeded. Please increase %s.',"'$lc'"):'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"){$k=sprintf('Too big POST data. Reduce the data or increase the %s configuration directive.',"'post_max_size'");if(isset($_GET["sql"]))$k.=' '.'You can upload a big SQL file via FTP and import it from server.';}if(!ini_bool("session.use_cookies")||@ini_set("session.use_cookies",false)!==false)session_write_close();function
548email_header($bc){return"=?UTF-8?B?".base64_encode($bc)."?=";}function
549send_mail($sb,$fe,$C,$Tb="",$Ib=array()){$j=(DIRECTORY_SEPARATOR=="/"?"\n":"\r\n");$C=str_replace("\n",$j,wordwrap(str_replace("\r","","$C\n")));$Ba=uniqid("boundary");$qa="";foreach((array)$Ib["error"]as$y=>$W){if(!$W)$qa.="--$Ba$j"."Content-Type: ".str_replace("\n","",$Ib["type"][$y]).$j."Content-Disposition: attachment; filename=\"".preg_replace('~["\\n]~','',$Ib["name"][$y])."\"$j"."Content-Transfer-Encoding: base64$j$j".chunk_split(base64_encode(file_get_contents($Ib["tmp_name"][$y])),76,$j).$j;}$ya="";$cc="Content-Type: text/plain; charset=utf-8$j"."Content-Transfer-Encoding: 8bit";if($qa){$qa.="--$Ba--$j";$ya="--$Ba$j$cc$j$j";$cc="Content-Type: multipart/mixed; boundary=\"$Ba\"";}$cc.=$j."MIME-Version: 1.0$j"."X-Mailer: Adminer Editor".($Tb?$j."From: ".str_replace("\n","",$Tb):"");return
550mail($sb,email_header($fe),$ya.$C.$qa,$cc);}function
551like_bool($l){return
552preg_match("~bool|(tinyint|bit)\\(1\\)~",$l["full_type"]);}$f->select_db($b->database());$Vc="RESTRICT|NO ACTION|CASCADE|SET NULL|SET DEFAULT";$mb[DRIVER]='Login';if(isset($_GET["select"])&&($_POST["edit"]||$_POST["clone"])&&!$_POST["save"])$_GET["edit"]=$_GET["select"];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"]));$O=array(idf_escape($_GET["field"]));$K=$i->select($a,$O,array(where($_GET,$m)),$O);$M=($K?$K->fetch_row():array());echo$M[0];exit;}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));$Me=(isset($_GET["select"])?$_POST["edit"]:$Z);foreach($m
553as$E=>$l){if(!isset($l["privileges"][$Me?"update":"insert"])||$b->fieldName($l)=="")unset($m[$E]);}if($_POST&&!$k&&!isset($_GET["select"])){$A=$_POST["referer"];if($_POST["insert"])$A=($Me?null:$_SERVER["REQUEST_URI"]);elseif(!preg_match('~^.+&select=.+$~',$A))$A=ME."select=".urlencode($a);$v=indexes($a);$He=unique_array($_GET["where"],$v);$zd="\nWHERE $Z";if(isset($_POST["delete"]))queries_redirect($A,'Item has been deleted.',$i->delete($a,$zd,!$He));else{$Q=array();foreach($m
554as$E=>$l){$W=process_input($l);if($W!==false&&$W!==null)$Q[idf_escape($E)]=$W;}if($Me){if(!$Q)redirect($A);queries_redirect($A,'Item has been updated.',$i->update($a,$Q,$zd,!$He));if(is_ajax()){page_headers();page_messages($k);exit;}}else{$K=$i->insert($a,$Q);$yc=($K?last_id():0);queries_redirect($A,sprintf('Item%s has been inserted.',($yc?" $yc":"")),$K);}}}$M=null;if($_POST["save"])$M=(array)$_POST["fields"];elseif($Z){$O=array();foreach($m
555as$E=>$l){if(isset($l["privileges"]["select"])){$oa=convert_field($l);if($_POST["clone"]&&$l["auto_increment"])$oa="''";if($x=="sql"&&preg_match("~enum|set~",$l["type"]))$oa="1*".idf_escape($E);$O[]=($oa?"$oa AS ":"").idf_escape($E);}}$M=array();if(!support("table"))$O=array("*");if($O){$K=$i->select($a,$O,array($Z),$O,array(),(isset($_GET["select"])?2:1));if(!$K)$k=error();else{$M=$K->fetch_assoc();if(!$M)$M=false;}if(isset($_GET["select"])&&(!$M||$K->fetch_assoc()))$M=null;}}if(!support("table")&&!$m){if(!$Z){$K=$i->select($a,array("*"),$Z,array("*"));$M=($K?$K->fetch_assoc():false);if(!$M)$M=array($i->primary=>"");}if($M){foreach($M
556as$y=>$W){if(!$Z)$M[$y]=null;$m[$y]=array("field"=>$y,"null"=>($y!=$i->primary),"auto_increment"=>($y==$i->primary));}}}edit_form($a,$m,$M,$Me);}elseif(isset($_GET["select"])){$a=$_GET["select"];$T=table_status1($a);$v=indexes($a);$m=fields($a);$Qb=column_foreign_keys($a);$Uc="";if($T["Oid"]){$Uc=($x=="sqlite"?"rowid":"oid");$v[]=array("type"=>"PRIMARY","columns"=>array($Uc));}parse_str($_COOKIE["adminer_import"],$ia);$Id=array();$e=array();$pe=null;foreach($m
557as$y=>$l){$E=$b->fieldName($l);if(isset($l["privileges"]["select"])&&$E!=""){$e[$y]=html_entity_decode(strip_tags($E),ENT_QUOTES);if(is_shortable($l))$pe=$b->selectLengthProcess();}$Id+=$l["privileges"];}list($O,$r)=$b->selectColumnsProcess($e,$v);$w=count($r)<count($O);$Z=$b->selectSearchProcess($m,$v);$G=$b->selectOrderProcess($m,$v);$z=$b->selectLimitProcess();$Tb=($O?implode(", ",$O):"*".($Uc?", $Uc":"")).convert_fields($e,$m,$O)."\nFROM ".table($a);$Vb=($r&&$w?"\nGROUP BY ".implode(", ",$r):"").($G?"\nORDER BY ".implode(", ",$G):"");if($_GET["val"]&&is_ajax()){header("Content-Type: text/plain; charset=utf-8");foreach($_GET["val"]as$Ie=>$M){$oa=convert_field($m[key($M)]);$O=array($oa?$oa:idf_escape(key($M)));$Z[]=where_check($Ie,$m);$L=$i->select($a,$O,$Z,$O);if($L)echo
558reset($L->fetch_row());}exit;}if($_POST&&!$k){$Xe=$Z;if(!$_POST["all"]&&is_array($_POST["check"])){$Ga=array();foreach($_POST["check"]as$Ea)$Ga[]=where_check($Ea,$m);$Xe[]="((".implode(") OR (",$Ga)."))";}$Xe=($Xe?"\nWHERE ".implode(" AND ",$Xe):"");$qd=$Ke=null;foreach($v
559as$u){if($u["type"]=="PRIMARY"){$qd=array_flip($u["columns"]);$Ke=($O?$qd:array());break;}}foreach((array)$Ke
560as$y=>$W){if(in_array(idf_escape($y),$O))unset($Ke[$y]);}if($_POST["export"]){cookie("adminer_import","output=".urlencode($_POST["output"])."&format=".urlencode($_POST["format"]));dump_headers($a);$b->dumpTable($a,"");if(!is_array($_POST["check"])||$Ke===array())$J="SELECT $Tb$Xe$Vb";else{$Ge=array();foreach($_POST["check"]as$W)$Ge[]="(SELECT".limit($Tb,"\nWHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($W,$m).$Vb,1).")";$J=implode(" UNION ALL ",$Ge);}$b->dumpData($a,"table",$J);exit;}if(!$b->selectEmailProcess($Z,$Qb)){if($_POST["save"]||$_POST["delete"]){$K=true;$ja=0;$Q=array();if(!$_POST["delete"]){foreach($e
561as$E=>$W){$W=process_input($m[$E]);if($W!==null&&($_POST["clone"]||$W!==false))$Q[idf_escape($E)]=($W!==false?$W:idf_escape($E));}}if($_POST["delete"]||$Q){if($_POST["clone"])$J="INTO ".table($a)." (".implode(", ",array_keys($Q)).")\nSELECT ".implode(", ",$Q)."\nFROM ".table($a);if($_POST["all"]||($Ke===array()&&is_array($_POST["check"]))||$w){$K=($_POST["delete"]?$i->delete($a,$Xe):($_POST["clone"]?queries("INSERT $J$Xe"):$i->update($a,$Q,$Xe)));$ja=$f->affected_rows;}else{foreach((array)$_POST["check"]as$W){$We="\nWHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($W,$m);$K=($_POST["delete"]?$i->delete($a,$We,1):($_POST["clone"]?queries("INSERT".limit1($J,$We)):$i->update($a,$Q,$We)));if(!$K)break;$ja+=$f->affected_rows;}}}$C=lang(array('%d item has been affected.','%d items have been affected.'),$ja);if($_POST["clone"]&&$K&&$ja==1){$yc=last_id();if($yc)$C=sprintf('Item%s has been inserted.'," $yc");}queries_redirect(remove_from_uri($_POST["all"]&&$_POST["delete"]?"page":""),$C,$K);if(!$_POST["delete"]){edit_form($a,$m,(array)$_POST["fields"],!$_POST["clone"]);page_footer();exit;}}elseif(!$_POST["import"]){if(!$_POST["val"])$k='Ctrl+click on a value to modify it.';else{$K=true;$ja=0;foreach($_POST["val"]as$Ie=>$M){$Q=array();foreach($M
562as$y=>$W){$y=bracket_escape($y,1);$Q[idf_escape($y)]=(preg_match('~char|text~',$m[$y]["type"])||$W!=""?$b->processInput($m[$y],$W):"NULL");}$K=$i->update($a,$Q," WHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($Ie,$m),!($w||$Ke===array())," ");if(!$K)break;$ja+=$f->affected_rows;}queries_redirect(remove_from_uri(),lang(array('%d item has been affected.','%d items have been affected.'),$ja),$K);}}elseif(!is_string($Hb=get_file("csv_file",true)))$k=upload_error($Hb);elseif(!preg_match('~~u',$Hb))$k='File must be in UTF-8 encoding.';else{cookie("adminer_import","output=".urlencode($ia["output"])."&format=".urlencode($_POST["separator"]));$K=true;$Oa=array_keys($m);preg_match_all('~(?>"[^"]*"|[^"\\r\\n]+)+~',$Hb,$Ec);$ja=count($Ec[0]);$i->begin();$Qd=($_POST["separator"]=="csv"?",":($_POST["separator"]=="tsv"?"\t":";"));$N=array();foreach($Ec[0]as$y=>$W){preg_match_all("~((?>\"[^\"]*\")+|[^$Qd]*)$Qd~",$W.$Qd,$Fc);if(!$y&&!array_diff($Fc[1],$Oa)){$Oa=$Fc[1];$ja--;}else{$Q=array();foreach($Fc[1]as$s=>$La)$Q[idf_escape($Oa[$s])]=($La==""&&$m[$Oa[$s]]["null"]?"NULL":q(str_replace('""','"',preg_replace('~^"|"$~','',$La))));$N[]=$Q;}}$K=(!$N||$i->insertUpdate($a,$N,$qd));if($K)$K=$i->commit();queries_redirect(remove_from_uri("page"),lang(array('%d row has been imported.','%d rows have been imported.'),$ja),$K);$i->rollback();}}}$ke=$b->tableName($T);if(is_ajax()){page_headers();ob_start();}else
563page_header('Select'.": $ke",$k);$Q=null;if(isset($Id["insert"])||!support("table")){$Q="";foreach((array)$_GET["where"]as$W){if($Qb[$W["col"]]&&count($Qb[$W["col"]])==1&&($W["op"]=="="||(!$W["op"]&&!preg_match('~[_%]~',$W["val"]))))$Q.="&set".urlencode("[".bracket_escape($W["col"])."]")."=".urlencode($W["val"]);}}$b->selectLinks($T,$Q);if(!$e&&support("table"))echo"<p class='error'>".'Unable to select the table'.($m?".":": ".error())."\n";else{echo"<form action='' id='form'>\n","<div style='display: none;'>";hidden_fields_get();echo(DB!=""?'<input type="hidden" name="db" value="'.h(DB).'">'.(isset($_GET["ns"])?'<input type="hidden" name="ns" value="'.h($_GET["ns"]).'">':""):"");echo'<input type="hidden" name="select" value="'.h($a).'">',"</div>\n";$b->selectColumnsPrint($O,$e);$b->selectSearchPrint($Z,$e,$v);$b->selectOrderPrint($G,$e,$v);$b->selectLimitPrint($z);$b->selectLengthPrint($pe);$b->selectActionPrint($v);echo"</form>\n";$H=$_GET["page"];if($H=="last"){$o=$f->result(count_rows($a,$Z,$w,$r));$H=floor(max(0,$o-1)/$z);}$Md=$O;if(!$Md){$Md[]="*";if($Uc)$Md[]=$Uc;}$Ua=convert_fields($e,$m,$O);if($Ua)$Md[]=substr($Ua,2);$K=$i->select($a,$Md,$Z,$r,$G,$z,$H,true);if(!$K)echo"<p class='error'>".error()."\n";else{if($x=="mssql"&&$H)$K->seek($z*$H);$ub=array();echo"<form action='' method='post' enctype='multipart/form-data'>\n";$N=array();while($M=$K->fetch_assoc()){if($H&&$x=="oracle")unset($M["RNUM"]);$N[]=$M;}if($_GET["page"]!="last"&&$z!=""&&$r&&$w&&$x=="sql")$o=$f->result(" SELECT FOUND_ROWS()");if(!$N)echo"<p class='message'>".'No rows.'."\n";else{$xa=$b->backwardKeys($a,$ke);echo"<table id='table' cellspacing='0' class='nowrap checkable'>",script("mixin(qs('#table'), {onclick: tableClick, ondblclick: partialArg(tableClick, true), onkeydown: editingKeydown});"),"<thead><tr>".(!$r&&$O?"":"<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")."'>".'Modify'."</a>");$Oc=array();$Ub=array();reset($O);$Ad=1;foreach($N[0]as$y=>$W){if($y!=$Uc){$W=$_GET["columns"][key($O)];$l=$m[$O?($W?$W["col"]:current($O)):$y];$E=($l?$b->fieldName($l,$Ad):($W["fun"]?"*":$y));if($E!=""){$Ad++;$Oc[$y]=$E;$d=idf_escape($y);$fc=remove_from_uri('(order|desc)[^=]*|page').'&order%5B0%5D='.urlencode($y);$gb="&desc%5B0%5D=1";echo"<th>".script("mixin(qsl('th'), {onmouseover: partial(columnMouse), onmouseout: partial(columnMouse, ' hidden')});",""),'<a href="'.h($fc.($G[0]==$d||$G[0]==$y||(!$G&&$w&&$r[0]==$d)?$gb:'')).'">';echo
564apply_sql_function($W["fun"],$E)."</a>";echo"<span class='column hidden'>","<a href='".h($fc.$gb)."' title='".'descending'."' class='text'> ↓</a>";if(!$W["fun"]){echo'<a href="#fieldset-search" title="'.'Search'.'" class="text jsonly"> =</a>',script("qsl('a').onclick = partial(selectSearch, '".js_escape($y)."');");}echo"</span>";}$Ub[$y]=$W["fun"];next($O);}}$Ac=array();if($_GET["modify"]){foreach($N
565as$M){foreach($M
566as$y=>$W)$Ac[$y]=max($Ac[$y],min(40,strlen(utf8_decode($W))));}}echo($xa?"<th>".'Relations':"")."</thead>\n";if(is_ajax()){if($z%2==1&&$H%2==1)odd();ob_end_clean();}foreach($b->rowDescriptions($N,$Qb)as$D=>$M){$He=unique_array($N[$D],$v);if(!$He){$He=array();foreach($N[$D]as$y=>$W){if(!preg_match('~^(COUNT\\((\\*|(DISTINCT )?`(?:[^`]|``)+`)\\)|(AVG|GROUP_CONCAT|MAX|MIN|SUM)\\(`(?:[^`]|``)+`\\))$~',$y))$He[$y]=$W;}}$Ie="";foreach($He
567as$y=>$W){if(($x=="sql"||$x=="pgsql")&&preg_match('~char|text|enum|set~',$m[$y]["type"])&&strlen($W)>64){$y=(strpos($y,'(')?$y:idf_escape($y));$y="MD5(".($x!='sql'||preg_match("~^utf8~",$m[$y]["collation"])?$y:"CONVERT($y USING ".charset($f).")").")";$W=md5($W);}$Ie.="&".($W!==null?urlencode("where[".bracket_escape($y)."]")."=".urlencode($W):"null%5B%5D=".urlencode($y));}echo"<tr".odd().">".(!$r&&$O?"":"<td>".checkbox("check[]",substr($Ie,1),in_array(substr($Ie,1),(array)$_POST["check"]),"","this.form['all'].checked = false; formUncheck('all-page');").($w||information_schema(DB)?"":" <a href='".h(ME."edit=".urlencode($a).$Ie)."'>".'edit'."</a>"));foreach($M
568as$y=>$W){if(isset($Oc[$y])){$l=$m[$y];if($W!=""&&(!isset($ub[$y])||$ub[$y]!=""))$ub[$y]=(is_mail($W)?$Oc[$y]:"");$_="";if(preg_match('~blob|bytea|raw|file~',$l["type"])&&$W!="")$_=ME.'download='.urlencode($a).'&field='.urlencode($y).$Ie;if(!$_&&$W!==null){foreach((array)$Qb[$y]as$Pb){if(count($Qb[$y])==1||end($Pb["source"])==$y){$_="";foreach($Pb["source"]as$s=>$Xd)$_.=where_link($s,$Pb["target"][$s],$N[$D][$Xd]);$_=($Pb["db"]!=""?preg_replace('~([?&]db=)[^&]+~','\\1'.urlencode($Pb["db"]),ME):ME).'select='.urlencode($Pb["table"]).$_;if($Pb["ns"])$_=preg_replace('~([?&]ns=)[^&]+~','\\1'.urlencode($Pb["ns"]),$_);if(count($Pb["source"])==1)break;}}}if($y=="COUNT(*)"){$_=ME."select=".urlencode($a);$s=0;foreach((array)$_GET["where"]as$V){if(!array_key_exists($V["col"],$He))$_.=where_link($s++,$V["col"],$V["val"],$V["op"]);}foreach($He
569as$rc=>$V)$_.=where_link($s++,$rc,$V);}$W=select_value($W,$_,$l,$pe);$t=h("val[$Ie][".bracket_escape($y)."]");$X=$_POST["val"][$Ie][bracket_escape($y)];$qb=!is_array($M[$y])&&is_utf8($W)&&$N[$D][$y]==$M[$y]&&!$Ub[$y];$oe=preg_match('~text|lob~',$l["type"]);if(($_GET["modify"]&&$qb)||$X!==null){$Xb=h($X!==null?$X:$M[$y]);echo"<td>".($oe?"<textarea name='$t' cols='30' rows='".(substr_count($M[$y],"\n")+1)."'>$Xb</textarea>":"<input name='$t' value='$Xb' size='$Ac[$y]'>");}else{$Dc=strpos($W,"<i>...</i>");echo"<td id='$t'>$W</td>",script("qsl('td').onclick = partialArg(selectClick, ".($Dc?2:($oe?1:0)).($qb?"":", '".h('Use edit link to modify this value.')."'").");","");}}}if($xa)echo"<td>";$b->backwardKeysPrint($xa,$N[$D]);echo"</tr>\n";}if(is_ajax())exit;echo"</table>\n";}if(($N||$H)&&!is_ajax()){$Ab=true;if($_GET["page"]!="last"){if($z=="")$o=count($N);elseif($x!="sql"||!$w){$o=($w?false:found_rows($T,$Z));if($o<max(1e4,2*($H+1)*$z))$o=reset(slow_query(count_rows($a,$Z,$w,$r)));else$Ab=false;}}if($z!=""&&($o===false||$o>$z||$H)){echo"<p class='pages'>";$Gc=($o===false?$H+(count($N)>=$z?2:1):floor(($o-1)/$z));if($x!="simpledb"){echo'<a href="'.h(remove_from_uri("page")).'">'.'Page'."</a>:",script("qsl('a').onclick = function () { pageClick(this.href, +prompt('".'Page'."', '".($H+1)."')); return false; };"),pagination(0,$H).($H>5?" ...":"");for($s=max(1,$H-4);$s<min($Gc,$H+5);$s++)echo
570pagination($s,$H);if($Gc>0){echo($H+5<$Gc?" ...":""),($Ab&&$o!==false?pagination($Gc,$H):" <a href='".h(remove_from_uri("page")."&page=last")."' title='~$Gc'>".'last'."</a>");}echo(($o===false?count($N)+1:$o-$H*$z)>$z?' <a href="'.h(remove_from_uri("page")."&page=".($H+1)).'" class="loadmore">'.'Load more data'.'</a>'.script("qsl('a').onclick = partial(selectLoadMore, ".(+$z).", '".'Loading'."...');",""):'');}else{echo'Page'.":",pagination(0,$H).($H>1?" ...":""),($H?pagination($H,$H):""),($Gc>$H?pagination($H+1,$H).($Gc>$H+1?" ...":""):"");}}echo"<p class='count'>\n",($o!==false?"(".($Ab?"":"~ ").lang(array('%d row','%d rows'),$o).") ":"");$kb=($Ab?"":"~ ").$o;echo
571checkbox("all",1,0,'whole result',"var checked = formChecked(this, /check/); selectCount('selected', this.checked ? '$kb' : checked); selectCount('selected2', this.checked || !checked ? '$kb' : checked);")."\n";if($b->selectCommandPrint()){echo'<fieldset',($_GET["modify"]?'':' class="jsonly"'),'><legend>Modify</legend><div>
572<input type="submit" value="Save"',($_GET["modify"]?'':' title="'.'Ctrl+click on a value to modify it.'.'"'),'>
573</div></fieldset>
574<fieldset><legend>Selected <span id="selected"></span></legend><div>
575<input type="submit" name="edit" value="Edit">
576<input type="submit" name="clone" value="Clone">
577<input type="submit" name="delete" value="Delete">',confirm(),'</div></fieldset>
578';}$Rb=$b->dumpFormat();foreach((array)$_GET["columns"]as$d){if($d["fun"]){unset($Rb['sql']);break;}}if($Rb){print_fieldset("export",'Export'." <span id='selected2'></span>");$ed=$b->dumpOutput();echo($ed?html_select("output",$ed,$ia["output"])." ":""),html_select("format",$Rb,$ia["format"])," <input type='submit' name='export' value='".'Export'."'>\n","</div></fieldset>\n";}echo(!$r&&$O?"":script("tableCheck();"));}if($b->selectImportPrint()){print_fieldset("import",'Import',!$N);echo"<input type='file' name='csv_file'> ",html_select("separator",array("csv"=>"CSV,","csv;"=>"CSV;","tsv"=>"TSV"),$ia["format"],1);echo" <input type='submit' name='import' value='".'Import'."'>","</div></fieldset>\n";}$b->selectEmailPrint(array_filter($ub,'strlen'),$e);echo"<p><input type='hidden' name='token' value='$ye'></p>\n","</form>\n";}}if(is_ajax()){ob_end_clean();exit;}}elseif(isset($_GET["script"])){if($_GET["script"]=="kill")$f->query("KILL ".number($_POST["kill"]));elseif(list($S,$t,$E)=$b->_foreignColumn(column_foreign_keys($_GET["source"]),$_GET["field"])){$z=11;$K=$f->query("SELECT $t, $E FROM ".table($S)." WHERE ".(preg_match('~^[0-9]+$~',$_GET["value"])?"$t = $_GET[value] OR ":"")."$E LIKE ".q("$_GET[value]%")." ORDER BY 2 LIMIT $z");for($s=1;($M=$K->fetch_row())&&$s<$z;$s++)echo"<a href='".h(ME."edit=".urlencode($S)."&where".urlencode("[".bracket_escape(idf_unescape($t))."]")."=".urlencode($M[0]))."'>".h($M[1])."</a><br>\n";if($M)echo"...\n";}exit;}else{page_header('Server',"",false);if($b->homepage()){echo"<form action='' method='post'>\n","<p>".'Search data in tables'.": <input name='query' value='".h($_POST["query"])."'> <input type='submit' value='".'Search'."'>\n";if($_POST["query"]!="")search_tables();echo"<table cellspacing='0' class='nowrap checkable'>\n",script("mixin(qsl('table'), {onclick: tableClick, ondblclick: partialArg(tableClick, true)});"),'<thead><tr class="wrap">','<td><input id="check-all" type="checkbox" class="jsonly">'.script("qs('#check-all').onclick = partial(formCheck, /^tables\[/);",""),'<th>'.'Table','<td>'.'Rows',"</thead>\n";foreach(table_status()as$S=>$M){$E=$b->tableName($M);if(isset($M["Engine"])&&$E!=""){echo'<tr'.odd().'><td>'.checkbox("tables[]",$S,in_array($S,(array)$_POST["tables"],true),"","formUncheck('check-all');"),"<th><a href='".h(ME).'select='.urlencode($S)."'>$E</a>";$W=format_number($M["Rows"]);echo"<td align='right'><a href='".h(ME."edit=").urlencode($S)."'>".($M["Engine"]=="InnoDB"&&$W?"~ $W":$W)."</a>";}}echo"</table>\n",script("tableCheck();"),"</form>\n";}}page_footer();