From bac9dd697c75abd267bd969d041f5bb979996182 Mon Sep 17 00:00:00 2001 From: Matt Pass Date: Sun, 29 Dec 2013 14:28:08 +0000 Subject: [PATCH] Plugins removed Plugins are no longer supplied with ICEcoder itself but now available to install/uninstall remotely --- plugins/adminer/adminer-3.7.1-mysql-en.php | 739 ------------------ plugins/adminer/adminer.css | 62 -- plugins/adminer/icon.png | Bin 2691 -> 0 bytes plugins/cssbeautify/icon.png | Bin 3107 -> 0 bytes plugins/cssbeautify/index.php | 45 -- plugins/emmet/emmet.min.js | 313 -------- plugins/emmet/icon.png | Bin 2088 -> 0 bytes plugins/ice-repo/.gitignore | 1 - plugins/ice-repo/LICENSE.md | 24 - plugins/ice-repo/README.md | 47 -- plugins/ice-repo/contents.php | 99 --- plugins/ice-repo/file-control.php | 131 ---- plugins/ice-repo/ice-repo.css | 100 --- plugins/ice-repo/ice-repo.js | 337 -------- plugins/ice-repo/icon.png | Bin 1994 -> 0 bytes plugins/ice-repo/images/file-folder-icons.png | Bin 7313 -> 0 bytes plugins/ice-repo/images/ice-repo.gif | Bin 1687 -> 0 bytes plugins/ice-repo/index.php | 71 -- plugins/ice-repo/lib/base64.js | 5 - plugins/ice-repo/lib/difflib.js | 576 -------------- plugins/ice-repo/lib/github.js | 396 ---------- plugins/ice-repo/lib/underscore-min.js | 12 - plugins/ice-repo/php.ini | 1 - plugins/ice-repo/settings.php | 121 --- plugins/zip-it/icon.png | Bin 1401 -> 0 bytes plugins/zip-it/index.php | 91 --- 26 files changed, 3171 deletions(-) delete mode 100644 plugins/adminer/adminer-3.7.1-mysql-en.php delete mode 100644 plugins/adminer/adminer.css delete mode 100644 plugins/adminer/icon.png delete mode 100644 plugins/cssbeautify/icon.png delete mode 100644 plugins/cssbeautify/index.php delete mode 100644 plugins/emmet/emmet.min.js delete mode 100644 plugins/emmet/icon.png delete mode 100644 plugins/ice-repo/.gitignore delete mode 100644 plugins/ice-repo/LICENSE.md delete mode 100644 plugins/ice-repo/README.md delete mode 100644 plugins/ice-repo/contents.php delete mode 100644 plugins/ice-repo/file-control.php delete mode 100644 plugins/ice-repo/ice-repo.css delete mode 100644 plugins/ice-repo/ice-repo.js delete mode 100644 plugins/ice-repo/icon.png delete mode 100644 plugins/ice-repo/images/file-folder-icons.png delete mode 100644 plugins/ice-repo/images/ice-repo.gif delete mode 100644 plugins/ice-repo/index.php delete mode 100644 plugins/ice-repo/lib/base64.js delete mode 100644 plugins/ice-repo/lib/difflib.js delete mode 100644 plugins/ice-repo/lib/github.js delete mode 100644 plugins/ice-repo/lib/underscore-min.js delete mode 100644 plugins/ice-repo/php.ini delete mode 100644 plugins/ice-repo/settings.php delete mode 100644 plugins/zip-it/icon.png delete mode 100644 plugins/zip-it/index.php diff --git a/plugins/adminer/adminer-3.7.1-mysql-en.php b/plugins/adminer/adminer-3.7.1-mysql-en.php deleted file mode 100644 index 5e5f104..0000000 --- a/plugins/adminer/adminer-3.7.1-mysql-en.php +++ /dev/null @@ -1,739 +0,0 @@ -9 `'Cۗ889 xQ\0e4QʘlPVbT4 \\W/\n`  7\"hq4ZM6T\rr\\C{h7\rx67J2.39KH,!mƆo\$.[\r&#\$ X:\rܺ3b-8SLK.-ҥ\rH@ml:;J0LR2! A 2 m0eI-:U\r9MWL0GcJv2(F9`C1HRSd9%U1Sna|.ԁ`8:#C2*[o4X~7j\\ 6/09\r;;VnnމvkHB%.k\">[\nlp9cFZs|>6 5l1Vΐ67:\"Azde\\5*մ]p[*Am)Kt[\n8g= ;2z|̣4t8.N#ʲB\"9%HQw qdF\$&VQ#Q'_m ̡ \rh Xrt0j5W4ד m\"CAF!엖h>b007;84Ka \0p aHXF1:8U9HIó;sQ7FcLpXM@e吞+g(73O3pblEE>Chb%DI8E' #)=%CjY1yh;cA6jK\r9Ž\$|g-Zo\0z\$+DVw*WpJ\\FO'ɲa1m,_ڧ\r1Po;\05e\r& 3^\r6MR2T\05?~5 P >85hn1;\rRL8`\\@`;z\n\0ԃ89RyZP@ib?ƭv\$<% A\r?\0Sʥ BÞ4JҨ:`#Hi7ε+}voJVڰ 9W2Q\rTD`f wLI]MKd7*rk*j\nASjF-[ezzrʁfU3~\\ZZ{)>>Ѓp*;zDbw]mC\n訓KBBm@ִ>wU’*N(baƶ@fv)`\0uD)mD@/49jHBm1I5DR uE9Aӗ=1b0ey1s;-]s 5\\\n1;Q^bi;YJ2d!s#kg hށ] W)>VIx]r;6JLcprd{pyM-UVH5'\ntвlpHoeZϨqeXF`Gy\r!Ww*Dut%dQ/p:iht&Pe,J͌t!O76GgRC[skvqU}yhAGV|lFޅL^.]u&w![jnnڏ[kCvkrmOɭJ>WT0\npMCbtVG|oy8c");}elseif($_GET["file"]=="functions.js"){header("Content-Type: text/javascript; charset=utf-8");echo -lzw_decompress("f:gCI\n:saPi2\nOgc e6Le7s)Ћ\rHGI3as'cDi6N2H8uFR#r7#v}@`Qo5aI,2O'8R-q:PS(a*w(%p-C \" XS`\\F֬h83`X:O,) 898c<#0L9 ?(R#e=\n:*0D9C@{ZO8ioVvkAr8&..cHE>H_hWU51r* ^ (bxܡY1&XH6ؓ.9xP\r.`v484daXV6FEHHfc-^=txY\r%xeQ,X=1!svjkQ2 %W? Ů=dY&ٓVX4ـ\\5Xì!}NgvڃWY*Qi&lѵZ#Ց\rA\$ev5o#ޛ5gc3MTCL>vH<`*]_;%;Vi4X'`ij0gOۥi9ƙےdFk/lŞnc\n/ l[ ŠPa8%!1v/SUcoJ:4J+BvJ\rb{,|\0zcYl\ni.!)dmJ!' B\nC\\ i\$J\"2+IkJ \$Gy\$#ܲi/CAbbC(:UX2& , Q;~/Ky9?\r6tV!6CP hYEl䏞(ؖTp'3C<dc?yCe0@&A?= %A:JD&SQ6R)Ab`0@u9(!0R\nF Š wC\\υrܙ #~2'\$ :K`h@Eb[~ Tlf5BR]{\"-\0L>\r\$@\n(&\r9\0vh*ɇ*X!_djpy`jYwJ\$R(uaM+nxspU^Ap`ͤIH\nf02)!4a9 EwC ˩ LPAi)p3Au AIAHu !g͕UZUc *Mxf :^Xp+V KC#+ WhCP! ;[pn\\%k \0,ڨ87xQC\nY\rbXvC d\nA;lF,_wr4RPHA!;&^Ͳ\"6;=#CI 9f':DY!B+sxV8lÓ\"鑃HU%\"Z6u\re0[pa. +^``b5#CM\$ I˚AP5C\r SdWN6H[ SR\\+X=kλ׺Sr^(oo7\\huklHaC(mnRBUup2C1[|ٽbeG0\"CG?\$x7n\$Z=ZӦsi5f&,fhiIyn20DvETxM{`ܤGN#遂Z,ƒ/ R\$#\\I- |0-0NP ;s-v҆nwGtndiH|4(+v&Ņ+KL\nJ\$ԩ:\\Q/F\n?mFj 3 p DHKv Ⱥɜ\0X*\rʚ\n0 e\n%\riOflNM%]UQ QL-S±T4!U5T\nndi0#EMi./U\rZF j;H☎d`mݩ\ntQS e|iQt d12,DY 1UQSUcdE)\\L F\$@V{W6\"LlTA\$6abOdrLp c,esΞ<2`@bXP\$3@˃P,KVխ^MLu1 @ct-(`\09n2sb/ Fm)Hl5@nl\$q+:/ d,\n޵. 4\$ w0\$dV0\"rW4678VtqBaupÀI<\$#x`wd9^*kuofBEp g2f4 L!r=\0 \" \r< hU%ThBk#>'Cp\n (\r2\"3lMԋ7Gx.,Uu%Dt wy^Mf\" (vU3uJ^HC_IUYkSc_ylcc]rF_q%W#]@rkv3-cyVHJG<ZT@V8\$6o2H@\rª\0=ݍ\"39z:K uK >B\$r.J*l'kophxvL`w1 !M4\"I\$\"o\$>˙Bea\"DBoʶ+ B0Pxp&7|p{|}7ְ\$-P@beVYmoMo\0Nzn*>΄)-Hl!hpg &tZ㜤\0!8 ɩZK@DZG F秩. lz%(x}'<Ū(<XZǬњ ɮgwzz{e'{;@噱(&R^Eݛx宛Y\"MܒV\n5zlzr[x˪ G\$OW@Zx, be fdƻ2EËIDYT%k{J\\\rU N '_ɽf|w޵,l7kt1RD>ЋXZЊ|y|Z{|բ\r%;#\0eZ,\rKt\r >>\$>??c?+@  @ʰcqfc+3Ș؀&x]N*|b2R_\$< \rl [*`\n~b]jB\rqˣQ꾼+(W| +ep9j}RiJ6p\r-S0tHJ`7Dcp)\nߢ\\%aQ Cf6\ne\n>@%h%I `\0uAX K `8+ I\\(\rń\0lH#]*y\$,H ?EFC7`țE@rGpLB3H,0+s\r\0\0!9Hua4 0aJ(\0DqgaJ!m~Aa&à/ *p\"IBD\r!9!vL:Ċ!\$AKe\0lb i6%YzKrlRK\"AF{ 6XH&: h~9_2Ws>\$Ћ pC@vz0և8\\vp:s_\\:Y\rB\$|iGR# YR9\0D28?+}YᩇJ#CiVCT6Q9piteLp\$4\$D#@@|gRc\rF8Q&@5r\0XV5\\fh @v, /\0\n&/!d qKRm;aD2d\0002b\$ L/1,E4@<}aی\$1*`>0 :d   - Ä\rDYl(6[6ksf' 8I TJDUD:A2hd\0a\0)2:B3:Z1=@-qN\\!\$kfNw `n\$LCR5pcE3Ca\0=Hjڒg-ژE e.\0!o,'wI`\\s6RE}e0F\\m|F>q ?jД6i p +N9qup2eɑm.+L~\$\"Rs]iqCИjZgx`6t.b,ͩkY\\`'Sljհ!ln\0Wg+:+c6~KFʖĩ-h9-H@SDG;Π_ \n)fnQ-*C֩{MSnZ ED\0)Pg]6b%%Hj&%-* 9}j 43@*(m\$QDۆҹ(m¼ukjO\" ,1Vv%s1kP` /@0>F>#X8%lⴹKS|Yw0u̧bÉX4p\0\n%\0ZQ2WWEkoɇjy .Z\0 PptHR>,%)k `|,prZhZ,P|CFLxn .PReVoB;xDk)M?n`/5Ilqh\0צ5Ehq폴A ˉUdkDOy;ƆëA.OrƄ!H ^ҋD3Ig>ce~Zon_^+!h|*3ޢG[nڶjp 7H/T+3lP{<2ʞЩ)\"ãލYˣA2:&\0ۃ~cK\nD4GNg.`RB1H.j{}n|/o`]f_6y`\r x^@\\R='ς_{ X-\\)L EPl\\\0]hareӝ8NG^I:ܵJ%r~-܍ 1g+gVoσzm>54)mm\$oEbܒ)mEѨK6!* \nӔq 0?wPKg1i~X`\0XY Z *Dh 1El\r\0:?\r>#2@3h2袰Æ&Oе.Ʉ(.LbVEь s:88{>χAoHrySdvmr׃f>jO\nÀ5ֳ͂A002>nf16q3”]+arFx6 S-3e +x̤/jhD\r-\nјG7z2i.A9f`YTx9\"^\\nݣs9{0s83\$:#3Y6{0\nJ \$#D\\ļ@Ў3u0\"*.rs؛5G_ȎDdHKm]\\4\0;d}[ S2ܜ}ޞKd& t rf *j +Px܍\r7M8A[#m\n\n𧀯9+ZH|H[_ź| j5H|U1^u] P L`Xgh _r smZ:l]ihsK>ec 9 p7jCLRp ``");}else{header("Content-Type: image/gif");switch($_GET["file"]){case"plus.gif":echo"GIF87a\0\0\0\0\0\0\0\0\0\0,\0\0\0\0\0\0\0!M*)o) qe#L\0;";break;case"cross.gif":echo"GIF87a\0\0\0\0\0\0\0\0\0\0,\0\0\0\0\0\0\0##\naFo~y._wa1J GL6]\0\0;";break;case"up.gif":echo"GIF87a\0\0\0\0\0\0\0\0\0\0,\0\0\0\0\0\0\0 MQN\n}a8yaŶ\0\0;";break;case"down.gif":echo"GIF87a\0\0\0\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\0iӲ޻\0\0;";break;}}exit;}function -connection(){global$g;return$g;}function -adminer(){global$b;return$b;}function -idf_unescape($Gc){$Zc=substr($Gc,-1);return -str_replace($Zc.$Zc,$Zc,substr($Gc,1,-1));}function -escape_string($X){return -substr(q($X),1,-1);}function -remove_slashes($Ae,$jc=false){if(get_magic_quotes_gpc()){while(list($y,$X)=each($Ae)){foreach($X -as$Tc=>$W){unset($Ae[$y][$Tc]);if(is_array($W)){$Ae[$y][stripslashes($Tc)]=$W;$Ae[]=&$Ae[$y][stripslashes($Tc)];}else$Ae[$y][stripslashes($Tc)]=($jc?$W:stripslashes($W));}}}}function -bracket_escape($Gc,$xa=false){static$Uf=array(':'=>':1',']'=>':2','['=>':3');return -strtr($Gc,($xa?array_flip($Uf):$Uf));}function -h($qf){return -htmlspecialchars(str_replace("\0","",$qf),ENT_QUOTES);}function -nbsp($qf){return(trim($qf)!=""?h($qf):" ");}function -nl_br($qf){return -str_replace("\n","
",$qf);}function -checkbox($E,$Y,$Ja,$Xc="",$Qd="",$Ma=""){$K="";return($Xc!=""||$Ma?"$K".h($Xc)."":$K);}function -optionlist($Td,$cf=null,$ng=false){$K="";foreach($Td -as$Tc=>$W){$Ud=array($Tc=>$W);if(is_array($W)){$K.='';$Ud=$W;}foreach($Ud -as$y=>$X)$K.=''.h($X);if(is_array($W))$K.='';}return$K;}function -html_select($E,$Td,$Y="",$Pd=true){if($Pd)return"";$K="";foreach($Td -as$y=>$X)$K.="";return$K;}function -confirm($db=""){return" onclick=\"return confirm('".'Are you sure?'.($db?" (' + $db + ')":"")."');\"";}function -print_fieldset($t,$ed,$tg=false,$Qd=""){echo"
$ed
\n";}function -selectSearchPrint($Z,$f,$v){print_fieldset("search",'Search',$Z);foreach($v -as$s=>$u){if($u["type"]=="FULLTEXT"){echo"(".implode(", ",array_map('h',$u["columns"])).") AGAINST"," ",checkbox("boolean[$s]",1,isset($_GET["boolean"][$s]),"BOOL"),"
\n";}}$_GET["where"]=(array)$_GET["where"];reset($_GET["where"]);$Ha="this.nextSibling.onchange();";for($s=0;$s<=count($_GET["where"]);$s++){list(,$X)=each($_GET["where"]);if(!$X||("$X[col]$X[val]"!=""&&in_array($X["op"],$this->operators))){echo"
",html_select("where[$s][op]",$this->operators,$X["op"],$Ha),"
\n";}}echo"\n";}function -selectOrderPrint($Vd,$f,$v){print_fieldset("sort",'Sort',$Vd);$s=0;foreach((array)$_GET["order"]as$y=>$X){if(isset($f[$X])){echo"
",checkbox("desc[$s]",1,isset($_GET["desc"][$y]),'descending')."
\n";$s++;}}echo"
",checkbox("desc[$s]",1,false,'descending')."
\n","\n";}function -selectLimitPrint($z){echo"
".'Limit'."
";echo"","
\n";}function -selectLengthPrint($Jf){if($Jf!==null){echo"
".'Text length'."
","","
\n";}}function -selectActionPrint($v){echo"
".'Action'."
",""," ","\n","
\n";}function -selectCommandPrint(){return!information_schema(DB);}function -selectImportPrint(){return!information_schema(DB);}function -selectEmailPrint($Jb,$f){}function -selectColumnsProcess($f,$v){global$vc,$zc;$N=array();$xc=array();foreach((array)$_GET["columns"]as$y=>$X){if($X["fun"]=="count"||(isset($f[$X["col"]])&&(!$X["fun"]||in_array($X["fun"],$vc)||in_array($X["fun"],$zc)))){$N[$y]=apply_sql_function($X["fun"],(isset($f[$X["col"]])?idf_escape($X["col"]):"*"));if(!in_array($X["fun"],$zc))$xc[]=$N[$y];}}return -array($N,$xc);}function -selectSearchProcess($n,$v){global$x;$K=array();foreach($v -as$s=>$u){if($u["type"]=="FULLTEXT"&&$_GET["fulltext"][$s]!="")$K[]="MATCH (".implode(", ",array_map('idf_escape',$u["columns"])).") AGAINST (".q($_GET["fulltext"][$s]).(isset($_GET["boolean"][$s])?" IN BOOLEAN MODE":"").")";}foreach((array)$_GET["where"]as$X){if("$X[col]$X[val]"!=""&&in_array($X["op"],$this->operators)){$Xa=" $X[op]";if(ereg('IN$',$X["op"])){$Ic=process_length($X["val"]);$Xa.=" (".($Ic!=""?$Ic:"NULL").")";}elseif($X["op"]=="SQL")$Xa=" $X[val]";elseif($X["op"]=="LIKE %%")$Xa=" LIKE ".$this->processInput($n[$X["col"]],"%$X[val]%");elseif(!ereg('NULL$',$X["op"]))$Xa.=" ".$this->processInput($n[$X["col"]],$X["val"]);if($X["col"]!="")$K[]=idf_escape($X["col"]).$Xa;else{$Sa=array();foreach($n -as$E=>$m){$Rc=ereg('char|text|enum|set',$m["type"]);if((is_numeric($X["val"])||!ereg('(^|[^o])int|float|double|decimal|bit',$m["type"]))&&(!ereg("[\x80-\xFF]",$X["val"])||$Rc)){$E=idf_escape($E);$Sa[]=($x=="sql"&&$Rc&&!ereg('^utf8',$m["collation"])?"CONVERT($E USING utf8)":$E);}}$K[]=($Sa?"(".implode("$Xa OR ",$Sa)."$Xa)":"0");}}}return$K;}function -selectOrderProcess($n,$v){$K=array();foreach((array)$_GET["order"]as$y=>$X){if(isset($n[$X])||preg_match('~^((COUNT\\(DISTINCT |[A-Z0-9_]+\\()(`(?:[^`]|``)+`|"(?:[^"]|"")+")\\)|COUNT\\(\\*\\))$~',$X))$K[]=(isset($n[$X])?idf_escape($X):$X).(isset($_GET["desc"][$y])?" DESC":"");}return$K;}function -selectLimitProcess(){return(isset($_GET["limit"])?$_GET["limit"]:"50");}function -selectLengthProcess(){return(isset($_GET["text_length"])?$_GET["text_length"]:"100");}function -selectEmailProcess($Z,$nc){return -false;}function -selectQueryBuild($N,$Z,$xc,$Vd,$z,$F){return"";}function -messageQuery($I){global$x;restart_session();$Bc=&get_session("queries");$t="sql-".count($Bc[$_GET["db"]]);if(strlen($I)>1e6)$I=ereg_replace('[\x80-\xFF]+$','',substr($I,0,1e6))."\n...";$Bc[$_GET["db"]][]=array($I,time());return" ".@date("H:i:s")." ".'SQL command'."';}function -editFunctions($m){global$Fb;$K=($m["null"]?"NULL/":"");foreach($Fb -as$y=>$vc){if(!$y||(!isset($_GET["call"])&&(isset($_GET["select"])||where($_GET)))){foreach($vc -as$G=>$X){if(!$G||ereg($G,$m["type"]))$K.="/$X";}if($y&&!ereg('set|blob|bytea|raw|file',$m["type"]))$K.="/SQL";}}return -explode("/",$K);}function -editInput($Q,$m,$ua,$Y){if($m["type"]=="enum")return(isset($_GET["select"])?" ":"").($m["null"]?" ":"").enum_input("radio",$ua,$m,$Y,0);return"";}function -processInput($m,$Y,$q=""){if($q=="SQL")return$Y;$E=$m["field"];$K=q($Y);if(ereg('^(now|getdate|uuid)$',$q))$K="$q()";elseif(ereg('^current_(date|timestamp)$',$q))$K=$q;elseif(ereg('^([+-]|\\|\\|)$',$q))$K=idf_escape($E)." $q $K";elseif(ereg('^[+-] interval$',$q))$K=idf_escape($E)." $q ".(preg_match("~^(\\d+|'[0-9.: -]') [A-Z_]+$~i",$Y)?$Y:$K);elseif(ereg('^(addtime|subtime|concat)$',$q))$K="$q(".idf_escape($E).", $K)";elseif(ereg('^(md5|sha1|password|encrypt)$',$q))$K="$q($K)";return -unconvert_field($m,$K);}function -dumpOutput(){$K=array('text'=>'open','file'=>'save');if(function_exists('gzencode'))$K['gz']='gzip';return$K;}function -dumpFormat(){return -array('sql'=>'SQL','csv'=>'CSV,','csv;'=>'CSV;','tsv'=>'TSV');}function -dumpDatabase($k){}function -dumpTable($Q,$sf,$Sc=0){if($_POST["format"]!="sql"){echo"\xef\xbb\xbf";if($sf)dump_csv(array_keys(fields($Q)));}elseif($sf){if($Sc==2){$n=array();foreach(fields($Q)as$E=>$m)$n[]=idf_escape($E)." $m[full_type]";$i="CREATE TABLE ".table($Q)." (".implode(", ",$n).")";}else$i=create_sql($Q,$_POST["auto_increment"]);if($i){if($sf=="DROP+CREATE"||$Sc==1)echo"DROP ".($Sc==2?"VIEW":"TABLE")." IF EXISTS ".table($Q).";\n";if($Sc==1)$i=remove_definer($i);echo"$i;\n\n";}}}function -dumpData($Q,$sf,$I){global$g,$x;$nd=($x=="sqlite"?0:1048576);if($sf){if($_POST["format"]=="sql"){if($sf=="TRUNCATE+INSERT")echo -truncate_sql($Q).";\n";$n=fields($Q);}$J=$g->query($I,1);if($J){$Nc="";$Fa="";$Uc=array();$uf="";$gc=($Q!=''?'fetch_assoc':'fetch_row');while($L=$J->$gc()){if(!$Uc){$pg=array();foreach($L -as$X){$m=$J->fetch_field();$Uc[]=$m->name;$y=idf_escape($m->name);$pg[]="$y = VALUES($y)";}$uf=($sf=="INSERT+UPDATE"?"\nON DUPLICATE KEY UPDATE ".implode(", ",$pg):"").";\n";}if($_POST["format"]!="sql"){if($sf=="table"){dump_csv($Uc);$sf="INSERT";}dump_csv($L);}else{if(!$Nc)$Nc="INSERT INTO ".table($Q)." (".implode(", ",array_map('idf_escape',$Uc)).") VALUES";foreach($L -as$y=>$X){$m=$n[$y];$L[$y]=($X!==null?unconvert_field($m,ereg('(^|[^o])int|float|double|decimal',$m["type"])&&$X!=''?$X:q($X)):"NULL");}$Ye=($nd?"\n":" ")."(".implode(",\t",$L).")";if(!$Fa)$Fa=$Nc.$Ye;elseif(strlen($Fa)+4+strlen($Ye)+strlen($uf)<$nd)$Fa.=",$Ye";else{echo$Fa.$uf;$Fa=$Nc.$Ye;}}}if($Fa)echo$Fa.$uf;}elseif($_POST["format"]=="sql")echo"-- ".str_replace("\n"," ",$g->error)."\n";}}function -dumpFilename($Fc){return -friendly_url($Fc!=""?$Fc:(SERVER!=""?SERVER:"localhost"));}function -dumpHeaders($Fc,$zd=false){$de=$_POST["output"];$bc=(ereg('sql',$_POST["format"])?"sql":($zd?"tar":"csv"));header("Content-Type: ".($de=="gz"?"application/x-gzip":($bc=="tar"?"application/x-tar":($bc=="sql"||$de!="file"?"text/plain":"text/csv")."; charset=utf-8")));if($de=="gz")ob_start('gzencode',1e6);return$bc;}function -homepage(){echo'

'.($_GET["ns"]==""?''.'Alter database'."\n":""),(support("scheme")?"".($_GET["ns"]!=""?'Alter schema':'Create schema')."\n":""),($_GET["ns"]!==""?''.'Database schema'."\n":""),(support("privileges")?"".'Privileges'."\n":"");return -true;}function -navigation($yd){global$ga,$T,$x,$zb;echo'

-',$this->name(),' ',$ga,' -',(version_compare($ga,$_COOKIE["adminer_version"])<0?h($_COOKIE["adminer_version"]):""),' -

-';if($yd=="auth"){$kc=true;foreach((array)$_SESSION["pwds"]as$yb=>$gf){foreach($gf -as$O=>$og){foreach($og -as$V=>$ne){if($ne!==null){if($kc){echo"

\n";$kc=false;}$nb=$_SESSION["db"][$yb][$O][$V];foreach(($nb?array_keys($nb):array(""))as$k)echo"($zb[$yb]) ".h($V.($O!=""?"@$O":"").($k!=""?" - $k":""))."
\n";}}}}}else{echo'

-

-';if(DB==""||!$yd){echo"".'SQL command'."\n";if(support("dump"))echo"".'Dump'."\n";}echo' - -

-
-';$this->databasesPrint($yd);if($_GET["ns"]!==""&&!$yd&&DB!=""){echo'

".'Create new table'."\n";$S=table_status('',true);if(!$S)echo"

".'No tables.'."\n";else{$this->tablesPrint($S);$id=array();foreach($S -as$Q=>$U)$id[]=preg_quote($Q,'/');echo"\n";}}}}function -databasesPrint($yd){global$g;$j=$this->databases();echo'

-

-';hidden_fields_get();$lb=" onmousedown='dbMouseDown(event, this);' onchange='dbChange(this);'";echo($j?"":''),"\n";if($yd!="db"&&DB!=""&&$g->select_db(DB)){}echo(isset($_GET["sql"])?'':(isset($_GET["schema"])?'':(isset($_GET["dump"])?'':""))),"

\n";}function -tablesPrint($S){echo"

\n";foreach($S -as$Q=>$nf){echo'".'select'." ",'".$this->tableName($nf)."
\n";}}}$b=(function_exists('adminer_object')?adminer_object():new -Adminer);if($b->operators===null)$b->operators=$Sd;function -page_header($Mf,$l="",$Ea=array(),$Nf=""){global$ca,$b,$g,$zb;header("Content-Type: text/html; charset=utf-8");if($b->headers()){header("X-Frame-Options: deny");header("X-XSS-Protection: 0");}$Of=$Mf.($Nf!=""?": ".h($Nf):"");$Pf=strip_tags($Of.(SERVER!=""&&SERVER!="localhost"?h(" - ".SERVER):"")." - ".$b->name());echo' - - - - -',$Pf,' - - -';if($b->head()){echo' - -';if(file_exists("adminer.css")){echo' -';}}echo' - - - -

-';if($Ea!==null){$_=substr(preg_replace('~(username|db|ns)=[^&]*&~','',ME),0,-1);echo'

$Of

\n";restart_session();$lg=preg_replace('~^[^?]*~','',$_SERVER["REQUEST_URI"]);$wd=$_SESSION["messages"][$lg];if($wd){echo"
".implode("
\n
",$wd)."
\n";unset($_SESSION["messages"][$lg]);}$j=&get_session("dbs");if(DB!=""&&$j&&!in_array(DB,$j,true))$j=null;stop_session();if($l)echo"
$l
\n";define("PAGE_HEADER",1);}function -page_footer($yd=""){global$b;echo'
- - - -';}function -int32($D){while($D>=2147483648)$D-=4294967296;while($D<=-2147483649)$D+=4294967296;return(int)$D;}function -long2str($W,$ug){$Ye='';foreach($W -as$X)$Ye.=pack('V',$X);if($ug)return -substr($Ye,0,end($W));return$Ye;}function -str2long($Ye,$ug){$W=array_values(unpack('V*',str_pad($Ye,4*ceil(strlen($Ye)/4),"\0")));if($ug)$W[]=strlen($Ye);return$W;}function -xxtea_mx($zg,$yg,$vf,$Tc){return -int32((($zg>>5&0x7FFFFFF)^$yg<<2)+(($yg>>3&0x1FFFFFFF)^$zg<<4))^int32(($vf^$yg)+($Tc^$zg));}function -encrypt_string($pf,$y){if($pf=="")return"";$y=array_values(unpack("V*",pack("H*",md5($y))));$W=str2long($pf,true);$D=count($W)-1;$zg=$W[$D];$yg=$W[0];$H=floor(6+52/($D+1));$vf=0;while($H-->0){$vf=int32($vf+0x9E3779B9);$Eb=$vf>>2&3;for($ee=0;$ee<$D;$ee++){$yg=$W[$ee+1];$_d=xxtea_mx($zg,$yg,$vf,$y[$ee&3^$Eb]);$zg=int32($W[$ee]+$_d);$W[$ee]=$zg;}$yg=$W[0];$_d=xxtea_mx($zg,$yg,$vf,$y[$ee&3^$Eb]);$zg=int32($W[$D]+$_d);$W[$D]=$zg;}return -long2str($W,false);}function -decrypt_string($pf,$y){if($pf=="")return"";if(!$y)return -false;$y=array_values(unpack("V*",pack("H*",md5($y))));$W=str2long($pf,false);$D=count($W)-1;$zg=$W[$D];$yg=$W[0];$H=floor(6+52/($D+1));$vf=int32($H*0x9E3779B9);while($vf){$Eb=$vf>>2&3;for($ee=$D;$ee>0;$ee--){$zg=$W[$ee-1];$_d=xxtea_mx($zg,$yg,$vf,$y[$ee&3^$Eb]);$yg=int32($W[$ee]-$_d);$W[$ee]=$yg;}$zg=$W[$D];$_d=xxtea_mx($zg,$yg,$vf,$y[$ee&3^$Eb]);$yg=int32($W[0]-$_d);$W[0]=$yg;$vf=int32($vf-0x9E3779B9);}return -long2str($W,true);}$g='';$T=$_SESSION["token"];if(!$_SESSION["token"])$_SESSION["token"]=rand(1,1e6);$oe=array();if($_COOKIE["adminer_permanent"]){foreach(explode(" ",$_COOKIE["adminer_permanent"])as$X){list($y)=explode(":",$X);$oe[$y]=$X;}}$c=$_POST["auth"];if($c){session_regenerate_id();$_SESSION["pwds"][$c["driver"]][$c["server"]][$c["username"]]=$c["password"];$_SESSION["db"][$c["driver"]][$c["server"]][$c["username"]][$c["db"]]=true;if($c["permanent"]){$y=base64_encode($c["driver"])."-".base64_encode($c["server"])."-".base64_encode($c["username"])."-".base64_encode($c["db"]);$ye=$b->permanentLogin(true);$oe[$y]="$y:".base64_encode($ye?encrypt_string($c["password"],$ye):"");cookie("adminer_permanent",implode(" ",$oe));}if(count($_POST)==1||DRIVER!=$c["driver"]||SERVER!=$c["server"]||$_GET["username"]!==$c["username"]||DB!=$c["db"])redirect(auth_url($c["driver"],$c["server"],$c["username"],$c["db"]));}elseif($_POST["logout"]){if($T&&$_POST["token"]!=$T){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('~(username|db|ns)=[^&]*&~','',ME),0,-1),'Logout successful.');}}elseif($oe&&!$_SESSION["pwds"]){session_regenerate_id();$ye=$b->permanentLogin();foreach($oe -as$y=>$X){list(,$La)=explode(":",$X);list($yb,$O,$V,$k)=array_map('base64_decode',explode("-",$y));$_SESSION["pwds"][$yb][$O][$V]=decrypt_string(base64_decode($La),$ye);$_SESSION["db"][$yb][$O][$V][$k]=true;}}function -unset_permanent(){global$oe;foreach($oe -as$y=>$X){list($yb,$O,$V,$k)=array_map('base64_decode',explode("-",$y));if($yb==DRIVER&&$O==SERVER&&$V==$_GET["username"]&&$k==DB)unset($oe[$y]);}cookie("adminer_permanent",implode(" ",$oe));}function -auth_error($Vb=null){global$g,$b,$T;$hf=session_name();$l="";if(!$_COOKIE[$hf]&&$_GET[$hf]&&ini_bool("session.use_only_cookies"))$l='Session support must be enabled.';elseif(isset($_GET["username"])){if(($_COOKIE[$hf]||$_GET[$hf])&&!$T)$l='Session expired, please login again.';else{$ne=&get_session("pwds");if($ne!==null){$l=h($Vb?$Vb->getMessage():(is_string($g)?$g:'Invalid credentials.'));if($ne===false)$l.='
'.sprintf('Master password expired. Implement %s method to make it permanent.','permanentLogin()');$ne=null;}unset_permanent();}}page_header('Login',$l,null);echo"
\n";$b->loginForm();echo"
";hidden_fields($_POST,array("auth"));echo"
\n","
\n";page_footer("auth");}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(", ",$te)),false);page_footer("auth");exit;}$g=connect();}if(is_string($g)||!$b->login($_GET["username"],get_session("pwds"))){auth_error();exit;}$T=$_SESSION["token"];if($c&&$_POST["token"])$_POST["token"]=$T;$l='';if($_POST){if($_POST["token"]!=$T){$Kc="max_input_vars";$rd=ini_get($Kc);if(extension_loaded("suhosin")){foreach(array("suhosin.request.max_vars","suhosin.post.max_vars")as$y){$X=ini_get($y);if($X&&(!$rd||$X<$rd)){$Kc=$y;$rd=$X;}}}$l=(!$_POST["token"]&&$rd?sprintf('Maximum number of allowed fields exceeded. Please increase %s.',"'$Kc'"):'Invalid CSRF token. Send the form again.');}}elseif($_SERVER["REQUEST_METHOD"]=="POST"){$l=sprintf('Too big POST data. Reduce the data or increase the %s configuration directive.',"'post_max_size'");if(isset($_GET["sql"]))$l.=' '.'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_cache_limiter("");session_write_close();}function -connect_error(){global$b,$g,$T,$l,$zb;$j=array();if(DB!=""){header("HTTP/1.1 404 Not Found");page_header('Database'.": ".h(DB),'Invalid database.',true);}else{if($_POST["db"]&&!$l)queries_redirect(substr(ME,0,-1),'Databases have been dropped.',drop_databases($_POST["db"]));page_header('Select database',$l,false);echo"

".'Create new database'."\n";foreach(array('privileges'=>'Privileges','processlist'=>'Process list','variables'=>'Variables','status'=>'Status',)as$y=>$X){if(support($y))echo"$X\n";}echo"

".sprintf('%s version: %s through PHP extension %s',$zb[DRIVER],"$g->server_info","$g->extension")."\n","

".sprintf('Logged as: %s',"".h(logged_user())."")."\n";$Le="".'Refresh'."\n";$j=$b->databases();if($j){$bf=support("scheme");$d=collations();echo"

\n","\n","\n";foreach($j -as$k){$Ue=h(ME)."db=".urlencode($k);echo"
 ".'Database'."".'Collation'."".'Tables'."
".checkbox("db[]",$k,in_array($k,(array)$_POST["db"])),"".h($k)."","".nbsp(db_collation($k,$d))."","?","\n";}echo"
\n","\n","

\n","\n",$Le,"

\n";}else -echo"

$Le";}page_footer("db");if($j)echo"\n";}if(isset($_GET["status"]))$_GET["variables"]=$_GET["status"];if(!(DB!=""?$g->select_db(DB):isset($_GET["sql"])||isset($_GET["dump"])||isset($_GET["database"])||isset($_GET["processlist"])||isset($_GET["privileges"])||isset($_GET["user"])||isset($_GET["variables"])||$_GET["script"]=="connect"||$_GET["script"]=="kill")){if(DB!=""||$_GET["refresh"]){restart_session();set_session("dbs",null);}connect_error();exit;}function -select($J,$h=null,$Ec="",$Yd=array()){$id=array();$v=array();$f=array();$Ca=array();$cg=array();$K=array();odd('');for($s=0;$L=$J->fetch_row();$s++){if(!$s){echo"\n","";for($w=0;$wfetch_field();$E=$m->name;$Xd=$m->orgtable;$Wd=$m->orgname;$K[$m->table]=$Xd;if($Ec)$id[$w]=($E=="table"?"table=":($E=="possible_keys"?"indexes=":null));elseif($Xd!=""){if(!isset($v[$Xd])){$v[$Xd]=array();foreach(indexes($Xd,$h)as$u){if($u["type"]=="PRIMARY"){$v[$Xd]=array_flip($u["columns"]);break;}}$f[$Xd]=$v[$Xd];}if(isset($f[$Xd][$Wd])){unset($f[$Xd][$Wd]);$v[$Xd][$Wd]=$w;$id[$w]=$Xd;}}if($m->charsetnr==63)$Ca[$w]=true;$cg[$w]=$m->type;$E=h($E);echo"name!=$Wd?" title='".h(($Xd!=""?"$Xd.":"").$Wd)."'":"").">".($Ec?"$E":$E);}echo"\n";}echo"";foreach($L -as$y=>$X){if($X===null)$X="NULL";elseif($Ca[$y]&&!is_utf8($X))$X="".lang(array('%d byte','%d bytes'),strlen($X))."";elseif(!strlen($X))$X=" ";else{$X=h($X);if($cg[$y]==254)$X="$X";}if(isset($id[$y])&&!$f[$id[$y]]){if($Ec){$Q=$L[array_search("table=",$id)];$_=$id[$y].urlencode($Yd[$Q]!=""?$Yd[$Q]:$Q);}else{$_="edit=".urlencode($id[$y]);foreach($v[$id[$y]]as$Pa=>$w)$_.="&where".urlencode("[".bracket_escape($Pa)."]")."=".urlencode($L[$w]);}$X="$X";}echo"
$X";}}echo($s?"
":"

".'No rows.')."\n";return$K;}function -referencable_primary($df){$K=array();foreach(table_status('',true)as$zf=>$Q){if($zf!=$df&&fk_support($Q)){foreach(fields($zf)as$m){if($m["primary"]){if($K[$zf]){unset($K[$zf]);break;}$K[$zf]=$m;}}}}return$K;}function -textarea($E,$Y,$M=10,$Sa=80){echo"";}function -edit_type($y,$m,$d,$p=array()){global$rf,$cg,$jg,$Od;echo' -';echo"',($jg?"':''),(isset($m['on_update'])?"':''),($p?" ":" ");}function -process_length($fd){global$Pb;return(preg_match("~^\\s*(?:$Pb)(?:\\s*,\\s*(?:$Pb))*\\s*\$~",$fd)&&preg_match_all("~$Pb~",$fd,$ld)?implode(",",$ld[0]):preg_replace('~[^0-9,+-]~','',$fd));}function -process_type($m,$Qa="COLLATE"){global$jg;return" $m[type]".($m["length"]!=""?"(".process_length($m["length"]).")":"").(ereg('(^|[^o])int|float|double|decimal',$m["type"])&&in_array($m["unsigned"],$jg)?" $m[unsigned]":"").(ereg('char|text|enum|set',$m["type"])&&$m["collation"]?" $Qa ".q($m["collation"]):"");}function -process_field($m,$ag){return -array(idf_escape(trim($m["field"])),process_type($ag),($m["null"]?" NULL":" NOT NULL"),(isset($m["default"])?" DEFAULT ".((ereg("time",$m["type"])&&eregi('^CURRENT_TIMESTAMP$',$m["default"]))||($m["type"]=="bit"&&ereg("^([0-9]+|b'[0-1]+')\$",$m["default"]))?$m["default"]:q($m["default"])):""),($m["type"]=="timestamp"&&$m["on_update"]?" ON UPDATE $m[on_update]":""),(support("comment")&&$m["comment"]!=""?" COMMENT ".q($m["comment"]):""),($m["auto_increment"]?auto_increment():null),);}function -type_class($U){foreach(array('char'=>'text','date'=>'time|year','binary'=>'blob','enum'=>'set',)as$y=>$X){if(ereg("$y|$X",$U))return" class='$y'";}}function -edit_fields($n,$d,$U="TABLE",$p=array(),$Wa=false){global$g,$Lc;echo' -';if($U=="PROCEDURE"){echo' ';}echo'',($U=="TABLE"?'Column name':'Parameter name'),'Type -Length -Options -';if($U=="TABLE"){echo'NULL -AI -Default values -',(support("comment")?"

".'Comment'.": ".h($Va)."\n";if($n){echo"\n","\n";foreach($n -as$m){echo"
".'Column'."".'Type'.(support("comment")?"".'Comment':"")."
".h($m["field"]),"".h($m["full_type"]).($m["null"]?" NULL":"").($m["auto_increment"]?" ".'Auto Increment'."":""),(isset($m["default"])?" [".h($m["default"])."]":""),(support("comment")?"".nbsp($m["comment"]):""),"\n";}echo"
\n";if(!is_view($R)){echo"

".'Indexes'."

\n";$v=indexes($a);if($v){echo"\n";foreach($v -as$E=>$u){ksort($u["columns"]);$xe=array();foreach($u["columns"]as$y=>$X)$xe[]="".h($X)."".($u["lengths"][$y]?"(".$u["lengths"][$y].")":"").($u["descs"][$y]?" DESC":"");echo"
$u[type]".implode(", ",$xe)."\n";}echo"
\n";}echo'

'.'Alter indexes'."\n";if(fk_support($R)){echo"

".'Foreign keys'."

\n";$p=foreign_keys($a);if($p){echo"\n","\n";foreach($p -as$E=>$o){echo"","
".'Source'."".'Target'."".'ON DELETE'."".'ON UPDATE'.($x!="sqlite"?" ":"")."
".implode(", ",array_map('h',$o["source"]))."","".($o["db"]!=""?"".h($o["db"]).".":"").($o["ns"]!=""?"".h($o["ns"]).".":"").h($o["table"])."","(".implode(", ",array_map('h',$o["target"])).")","".nbsp($o["on_delete"])."\n","".nbsp($o["on_update"])."\n",($x=="sqlite"?"":''.'Alter'.'');}echo"
\n";}if($x!="sqlite")echo'

'.'Add foreign key'."\n";}if(support("trigger")){echo"

".'Triggers'."

\n";$Zf=triggers($a);if($Zf){echo"\n";foreach($Zf -as$y=>$X)echo"
$X[0]$X[1]".h($y)."".'Alter'."\n";echo"
\n";}echo'

'.'Add trigger'."\n";}}}}elseif(isset($_GET["schema"])){page_header('Database schema',"",array(),DB.($_GET["ns"]?".$_GET[ns]":""));$_f=array();$Af=array();$E="adminer_schema";$ea=($_GET["schema"]?$_GET["schema"]:$_COOKIE[($_COOKIE["$E-".DB]?"$E-".DB:$E)]);preg_match_all('~([^:]+):([-0-9.]+)x([-0-9.]+)(_|$)~',$ea,$ld,PREG_SET_ORDER);foreach($ld -as$s=>$B){$_f[$B[1]]=array($B[2],$B[3]);$Af[]="\n\t'".js_escape($B[1])."': [ $B[2], $B[3] ]";}$Sf=0;$_a=-1;$af=array();$Ke=array();$dd=array();foreach(table_status('',true)as$Q=>$R){if(is_view($R))continue;$qe=0;$af[$Q]["fields"]=array();foreach(fields($Q)as$E=>$m){$qe+=1.25;$m["pos"]=$qe;$af[$Q]["fields"][$E]=$m;}$af[$Q]["pos"]=($_f[$Q]?$_f[$Q]:array($Sf,0));foreach($b->foreignKeys($Q)as$X){if(!$X["db"]){$bd=$_a;if($_f[$Q][1]||$_f[$X["table"]][1])$bd=min(floatval($_f[$Q][1]),floatval($_f[$X["table"]][1]))-1;else$_a-=.1;while($dd[(string)$bd])$bd-=.0001;$af[$Q]["references"][$X["table"]][(string)$bd]=array($X["source"],$X["target"]);$Ke[$X["table"]][$Q][(string)$bd]=$X["target"];$dd[(string)$bd]=true;}}$Sf=max($Sf,$af[$Q]["pos"][0]+2.5+$qe);}echo'

- -';foreach($af -as$E=>$Q){echo"
",''.h($E)."";foreach($Q["fields"]as$m){$X=''.h($m["field"]).'';echo"
".($m["primary"]?"$X":$X);}foreach((array)$Q["references"]as$Ff=>$Me){foreach($Me -as$bd=>$He){$cd=$bd-$_f[$E][1];$s=0;foreach($He[0]as$jf)echo"\n
";}}foreach((array)$Ke[$E]as$Ff=>$Me){foreach($Me -as$bd=>$f){$cd=$bd-$_f[$E][1];$s=0;foreach($f -as$Ef)echo"\n
";}}echo"\n
\n";}foreach($af -as$E=>$Q){foreach((array)$Q["references"]as$Ff=>$Me){foreach($Me -as$bd=>$He){$xd=$Sf;$pd=-10;foreach($He[0]as$y=>$jf){$re=$Q["pos"][0]+$Q["fields"][$jf]["pos"];$se=$af[$Ff]["pos"][0]+$af[$Ff]["fields"][$He[1][$y]]["pos"];$xd=min($xd,$re,$se);$pd=max($pd,$re,$se);}echo"
\n";}}}echo'
-

Permanent link -';}elseif(isset($_GET["dump"])){$a=$_GET["dump"];if($_POST&&!$l){$cb="";foreach(array("output","format","db_style","routines","events","table_style","auto_increment","triggers","data_style")as$y)$cb.="&$y=".urlencode($_POST[$y]);cookie("adminer_export",substr($cb,1));$S=array_flip((array)$_POST["tables"])+array_flip((array)$_POST["data"]);$bc=dump_headers((count($S)==1?key($S):DB),(DB==""||count($S)>1));$Qc=ereg('sql',$_POST["format"]);if($Qc)echo"-- Adminer $ga ".$zb[DRIVER]." dump - -".($x!="sql"?"":"SET NAMES utf8; -".($_POST["data_style"]?"SET foreign_key_checks = 0; -SET time_zone = ".q(substr(preg_replace('~^[^-]~','+\0',$g->result("SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP)")),0,6))."; -SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO'; -":"")." -");$sf=$_POST["db_style"];$j=array(DB);if(DB==""){$j=$_POST["databases"];if(is_string($j))$j=explode("\n",rtrim(str_replace("\r","",$j),"\n"));}foreach((array)$j -as$k){$b->dumpDatabase($k);if($g->select_db($k)){if($Qc&&ereg('CREATE',$sf)&&($i=$g->result("SHOW CREATE DATABASE ".idf_escape($k),1))){if($sf=="DROP+CREATE")echo"DROP DATABASE IF EXISTS ".idf_escape($k).";\n";echo"$i;\n";}if($Qc){if($sf)echo -use_sql($k).";\n\n";$ce="";if($_POST["routines"]){foreach(array("FUNCTION","PROCEDURE")as$Ve){foreach(get_rows("SHOW $Ve STATUS WHERE Db = ".q($k),null,"-- ")as$L)$ce.=($sf!='DROP+CREATE'?"DROP $Ve IF EXISTS ".idf_escape($L["Name"]).";;\n":"").remove_definer($g->result("SHOW CREATE $Ve ".idf_escape($L["Name"]),2)).";;\n\n";}}if($_POST["events"]){foreach(get_rows("SHOW EVENTS",null,"-- ")as$L)$ce.=($sf!='DROP+CREATE'?"DROP EVENT IF EXISTS ".idf_escape($L["Name"]).";;\n":"").remove_definer($g->result("SHOW CREATE EVENT ".idf_escape($L["Name"]),3)).";;\n\n";}if($ce)echo"DELIMITER ;;\n\n$ce"."DELIMITER ;\n\n";}if($_POST["table_style"]||$_POST["data_style"]){$sg=array();foreach(table_status('',true)as$E=>$R){$Q=(DB==""||in_array($E,(array)$_POST["tables"]));$ib=(DB==""||in_array($E,(array)$_POST["data"]));if($Q||$ib){if($bc=="tar"){$Qf=new -TmpFile;ob_start(array($Qf,'write'),1e5);}$b->dumpTable($E,($Q?$_POST["table_style"]:""),(is_view($R)?2:0));if(is_view($R))$sg[]=$E;elseif($ib){$n=fields($E);$b->dumpData($E,$_POST["data_style"],"SELECT *".convert_fields($n,$n)." FROM ".table($E));}if($Qc&&$_POST["triggers"]&&$Q&&($Zf=trigger_sql($E,$_POST["table_style"])))echo"\nDELIMITER ;;\n$Zf\nDELIMITER ;\n";if($bc=="tar"){ob_end_flush();tar_file((DB!=""?"":"$k/")."$E.csv",$Qf);}elseif($Qc)echo"\n";}}foreach($sg -as$rg)$b->dumpTable($rg,$_POST["table_style"],1);if($bc=="tar")echo -pack("x512");}}}if($Qc)echo"-- ".$g->result("SELECT NOW()")."\n";exit;}page_header('Export',$l,($_GET["export"]!=""?array("table"=>$_GET["export"]):array()),DB);echo' -

- -';$mb=array('','USE','DROP+CREATE','CREATE');$Bf=array('','DROP+CREATE','CREATE');$jb=array('','TRUNCATE+INSERT','INSERT');if($x=="sql")$jb[]='INSERT+UPDATE';parse_str($_COOKIE["adminer_export"],$L);if(!$L)$L=array("output"=>"text","format"=>"sql","db_style"=>(DB!=""?"":"CREATE"),"table_style"=>"DROP+CREATE","data_style"=>"INSERT");if(!isset($L["events"])){$L["routines"]=$L["events"]=($_GET["dump"]=="");$L["triggers"]=$L["table_style"];}echo"
".'Output'."".html_select("output",$b->dumpOutput(),$L["output"],0)."\n";echo"
".'Format'."".html_select("format",$b->dumpFormat(),$L["format"],0)."\n";echo($x=="sqlite"?"":"
".'Database'."".html_select('db_style',$mb,$L["db_style"]).(support("routine")?checkbox("routines",1,$L["routines"],'Routines'):"").(support("event")?checkbox("events",1,$L["events"],'Events'):"")),"
".'Tables'."".html_select('table_style',$Bf,$L["table_style"]).checkbox("auto_increment",1,$L["auto_increment"],'Auto Increment').(support("trigger")?checkbox("triggers",1,$L["triggers"],'Triggers'):""),"
".'Data'."".html_select('data_style',$jb,$L["data_style"]),'
-

- - - -';$ve=array();if(DB!=""){$Ja=($a!=""?"":" checked");echo"","\n";$sg="";$Cf=tables_list();foreach($Cf -as$E=>$U){$ue=ereg_replace("_.*","",$E);$Ja=($a==""||$a==(substr($a,-1)=="%"?"$ue%":$E));$xe="\n";$j=$b->databases();if($j){foreach($j -as$k){if(!information_schema($k)){$ue=ereg_replace("_.*","",$k);echo"
","","
".checkbox("tables[]",$E,$Ja,$E,"checkboxClick(event, this); formUncheck('check-tables');","block");if($U!==null&&!eregi("table",$U))$sg.="$xe\n";else -echo"$xe\n";$ve[$ue]++;}echo$sg;if($Cf)echo"\n";}else{echo"
".checkbox("databases[]",$k,$a==""||$a=="$ue%",$k,"formUncheck('check-databases');","block")."\n";$ve[$ue]++;}}}else -echo"
";}echo'
-

-';$kc=true;foreach($ve -as$y=>$X){if($y!=""&&$X>1){echo($kc?"

":" ")."".h($y)."";$kc=false;}}}elseif(isset($_GET["privileges"])){page_header('Privileges');$J=$g->query("SELECT User, Host FROM mysql.".(DB==""?"user":"db WHERE ".q(DB)." LIKE Db")." ORDER BY Host, User");$r=$J;if(!$J)$J=$g->query("SELECT SUBSTRING_INDEX(CURRENT_USER, '@', 1) AS User, SUBSTRING_INDEX(CURRENT_USER, '@', -1) AS Host");echo"

\n";hidden_fields_get();echo"\n",($r?"":"\n"),"\n","\n";while($L=$J->fetch_assoc())echo'
".'Username'."".'Server'." 
'.h($L["User"])."".h($L["Host"]).''.'Edit'."\n";if(!$r||DB!="")echo"\n";echo"
\n","

\n",'

'.'Create user'."";}elseif(isset($_GET["sql"])){if(!$l&&$_POST["export"]){dump_headers("sql");$b->dumpTable("","");$b->dumpData("","table",$_POST["query"]);exit;}restart_session();$Cc=&get_session("queries");$Bc=&$Cc[DB];if(!$l&&$_POST["clear"]){$Bc=array();redirect(remove_from_uri("history"));}page_header('SQL command',$l);if(!$l&&$_POST){$rc=false;$I=$_POST["query"];if($_POST["webfile"]){$rc=@fopen((file_exists("adminer.sql")?"adminer.sql":"compress.zlib://adminer.sql.gz"),"rb");$I=($rc?fread($rc,1e6):false);}elseif($_FILES&&$_FILES["sql_file"]["error"][0]!=4)$I=get_file("sql_file",true);if(is_string($I)){if(function_exists('memory_get_usage'))@ini_set("memory_limit",max(ini_bytes("memory_limit"),2*strlen($I)+memory_get_usage()+8e6));if($I!=""&&strlen($I)<1e6){$H=$I.(ereg(";[ \t\r\n]*\$",$I)?"":";");if(!$Bc||reset(end($Bc))!=$H){restart_session();$Bc[]=array($H,time());set_session("queries",$Cc);stop_session();}}$kf="(?:\\s|/\\*.*\\*/|(?:#|-- )[^\n]*\n|--\n)";$qb=";";$Hd=0;$Lb=true;$h=connect();if(is_object($h)&&DB!="")$h->select_db(DB);$Ua=0;$Rb=array();$hd=0;$he='[\'"'.($x=="sql"?'`#':($x=="sqlite"?'`[':($x=="mssql"?'[':''))).']|/\\*|-- |$'.($x=="pgsql"?'|\\$[^$]*\\$':'');$Tf=microtime();parse_str($_COOKIE["adminer_export"],$ka);$Db=$b->dumpFormat();unset($Db["sql"]);while($I!=""){if(!$Hd&&preg_match("~^$kf*DELIMITER\\s+(\\S+)~i",$I,$B)){$qb=$B[1];$I=substr($I,strlen($B[0]));}else{preg_match('('.preg_quote($qb)."\\s*|$he)",$I,$B,PREG_OFFSET_CAPTURE,$Hd);list($pc,$qe)=$B[0];if(!$pc&&$rc&&!feof($rc))$I.=fread($rc,1e5);else{if(!$pc&&rtrim($I)=="")break;$Hd=$qe+strlen($pc);if($pc&&rtrim($pc)!=$qb){while(preg_match('('.($pc=='/*'?'\\*/':($pc=='['?']':(ereg('^-- |^#',$pc)?"\n":preg_quote($pc)."|\\\\."))).'|$)s',$I,$B,PREG_OFFSET_CAPTURE,$Hd)){$Ye=$B[0][0];if(!$Ye&&$rc&&!feof($rc))$I.=fread($rc,1e5);else{$Hd=$B[0][1]+strlen($Ye);if($Ye[0]!="\\")break;}}}else{$Lb=false;$H=substr($I,0,$qe);$Ua++;$xe="

".shorten_utf8(trim($H),1000)."
\n";if(!$_POST["only_errors"]){echo$xe;ob_flush();flush();}$mf=microtime();if($g->multi_query($H)&&is_object($h)&&preg_match("~^$kf*USE\\b~isU",$H))$h->query($H);do{$J=$g->store_result();$Mb=microtime();$Kf=" (".format_time($mf,$Mb).")".(strlen($H)<1000?" ".'Edit'."":"");if($g->error){echo($_POST["only_errors"]?$xe:""),"

".'Error in query'.($g->errno?" ($g->errno)":"").": ".error()."\n";$Rb[]=" $Ua";if($_POST["error_stops"])break -2;}elseif(is_object($J)){$Yd=select($J,$h);if(!$_POST["only_errors"]){echo"

\n","

".($J->num_rows?lang(array('%d row','%d rows'),$J->num_rows):"").$Kf;$t="export-$Ua";$ac=", ".'Export'."\n";if($h&&preg_match("~^($kf|\\()*SELECT\\b~isU",$H)&&($Zb=explain($h,$H))){$t="explain-$Ua";echo", EXPLAIN$ac","

\n";}else -echo$ac;echo"
\n";}}else{if(preg_match("~^$kf*(CREATE|DROP|ALTER)$kf+(DATABASE|SCHEMA)\\b~isU",$H)){restart_session();set_session("dbs",null);stop_session();}if(!$_POST["only_errors"])echo"

".lang(array('Query executed OK, %d row affected.','Query executed OK, %d rows affected.'),$g->affected_rows)."$Kf\n";}$mf=$Mb;}while($g->next_result());$hd+=substr_count($H.$pc,"\n");$I=substr($I,$Hd);$Hd=0;}}}}if($Lb)echo"

".'No commands to execute.'."\n";elseif($_POST["only_errors"]){echo"

".lang(array('%d query executed OK.','%d queries executed OK.'),$Ua-count($Rb))," (".format_time($Tf,microtime()).")\n";}elseif($Rb&&$Ua>1)echo"

".'Error in query'.": ".implode("",$Rb)."\n";}else -echo"

".upload_error($I)."\n";}echo' -

-

';$H=$_GET["sql"];if($_POST)$H=$_POST["query"];elseif($_GET["history"]=="all")$H=$Bc;elseif($_GET["history"]!="")$H=$Bc[$_GET["history"]][0];textarea("query",$H,20);echo($_POST?"":"\n"),"

".(ini_bool("file_uploads")?'File upload'.': (< '.ini_get("upload_max_filesize").'B)':'File uploads are disabled.'),'

- -',checkbox("error_stops",1,$_POST["error_stops"],'Stop on error')."\n",checkbox("only_errors",1,$_POST["only_errors"],'Show only errors')."\n";print_fieldset("webfile",'From server',$_POST["webfile"],"document.getElementById('form')['only_errors'].checked = true; ");echo -sprintf('Webserver file %s',"adminer.sql".(extension_loaded("zlib")?"[.gz]":"").""),' ',"\n";if($Bc){print_fieldset("history",'History',$_GET["history"]!="");for($X=end($Bc);$X;$X=prev($Bc)){$y=key($Bc);list($H,$Kf)=$X;echo''.'Edit'." ".@date("H:i:s",$Kf)." ".shorten_utf8(ltrim(str_replace("\n"," ",str_replace("\r","",preg_replace('~^(#|-- ).*~m','',$H)))),80,"")."
\n";}echo"\n","".'Edit all'."\n","\n";}echo' -

-';}elseif(isset($_GET["edit"])){$a=$_GET["edit"];$n=fields($a);$Z=(isset($_GET["select"])?(count($_POST["check"])==1?where_check($_POST["check"][0],$n):""):where($_GET,$n));$kg=(isset($_GET["select"])?$_POST["edit"]:$Z);foreach($n -as$E=>$m){if(!isset($m["privileges"][$kg?"update":"insert"])||$b->fieldName($m)=="")unset($n[$E]);}if($_POST&&!$l&&!isset($_GET["select"])){$A=$_POST["referer"];if($_POST["insert"])$A=($kg?null:$_SERVER["REQUEST_URI"]);elseif(!ereg('^.+&select=.+$',$A))$A=ME."select=".urlencode($a);$v=indexes($a);$fg=unique_array($_GET["where"],$v);$Ee="\nWHERE $Z";if(isset($_POST["delete"])){$I="FROM ".table($a);query_redirect("DELETE".($fg?" $I$Ee":limit1($I,$Ee)),$A,'Item has been deleted.');}else{$P=array();foreach($n -as$E=>$m){$X=process_input($m);if($X!==false&&$X!==null)$P[idf_escape($E)]=($kg?"\n".idf_escape($E)." = $X":$X);}if($kg){if(!$P)redirect($A);$I=table($a)." SET".implode(",",$P);query_redirect("UPDATE".($fg?" $I$Ee":limit1($I,$Ee)),$A,'Item has been updated.');}else{$J=insert_into($a,$P);$ad=($J?last_id():0);queries_redirect($A,sprintf('Item%s has been inserted.',($ad?" $ad":"")),$J);}}}$zf=$b->tableName(table_status1($a,true));page_header(($kg?'Edit':'Insert'),$l,array("select"=>array($a,$zf)),$zf);$L=null;if($_POST["save"])$L=(array)$_POST["fields"];elseif($Z){$N=array();foreach($n -as$E=>$m){if(isset($m["privileges"]["select"])){$sa=convert_field($m);if($_POST["clone"]&&$m["auto_increment"])$sa="''";if($x=="sql"&&ereg("enum|set",$m["type"]))$sa="1*".idf_escape($E);$N[]=($sa?"$sa AS ":"").idf_escape($E);}}$L=array();if($N){$M=get_rows("SELECT".limit(implode(", ",$N)." FROM ".table($a)," WHERE $Z",(isset($_GET["select"])?2:1)));$L=(isset($_GET["select"])&&count($M)!=1?null:reset($M));}}if($L===false)echo"

".'No rows.'."\n";echo' -

-';if(!$n)echo"

".'You have no privileges to update this table.'."\n";else{echo"\n";foreach($n -as$E=>$m){echo"
".$b->fieldName($m);$pb=$_GET["set"][bracket_escape($E)];if($pb===null){$pb=$m["default"];if($m["type"]=="bit"&&ereg("^b'([01]*)'\$",$pb,$Ne))$pb=$Ne[1];}$Y=($L!==null?($L[$E]!=""&&$x=="sql"&&ereg("enum|set",$m["type"])?(is_array($L[$E])?array_sum($L[$E]):+$L[$E]):$L[$E]):(!$kg&&$m["auto_increment"]?"":(isset($_GET["select"])?false:$pb)));if(!$_POST["save"]&&is_string($Y))$Y=$b->editVal($Y,$m);$q=($_POST["save"]?(string)$_POST["function"][$E]:($kg&&$m["on_update"]=="CURRENT_TIMESTAMP"?"now":($Y===false?null:($Y!==null?'':'NULL'))));if(ereg("time",$m["type"])&&$Y=="CURRENT_TIMESTAMP"){$Y="";$q="now";}input($m,$Y,$q);echo"\n";}echo"
\n";}echo'

-';if($n){echo"\n";if(!isset($_GET["select"]))echo"\n";}echo($kg?"\n":($_POST||!$n?"":"\n"));if(isset($_GET["select"]))hidden_fields(array("check"=>(array)$_POST["check"],"clone"=>$_POST["clone"],"all"=>$_POST["all"]));echo' - - -

-';}elseif(isset($_GET["create"])){$a=$_GET["create"];$ie=array('HASH','LINEAR HASH','KEY','LINEAR KEY','RANGE','LIST');$Je=referencable_primary($a);$p=array();foreach($Je -as$zf=>$m)$p[str_replace("`","``",$zf)."`".str_replace("`","``",$m["field"])]=$zf;$be=array();$R=array();if($a!=""){$be=fields($a);$R=table_status($a);if(!$R)$l='No tables.';}$L=$_POST;$L["fields"]=(array)$L["fields"];if($L["auto_increment_col"])$L["fields"][$L["auto_increment_col"]]["auto_increment"]=true;if($_POST&&!process_fields($L["fields"])&&!$l){if($_POST["drop"])query_redirect("DROP TABLE ".table($a),substr(ME,0,-1),'Table has been dropped.');else{$n=array();$qa=array();$mg=false;$mc=array();ksort($L["fields"]);$ae=reset($be);$oa=" FIRST";foreach($L["fields"]as$y=>$m){$o=$p[$m["type"]];$ag=($o!==null?$Je[$o]:$m);if($m["field"]!=""){if(!$m["has_default"])$m["default"]=null;if($y==$L["auto_increment_col"])$m["auto_increment"]=true;$Be=process_field($m,$ag);$qa[]=array($m["orig"],$Be,$oa);if($Be!=process_field($ae,$ae)){$n[]=array($m["orig"],$Be,$oa);if($m["orig"]!=""||$oa)$mg=true;}if($o!==null)$mc[idf_escape($m["field"])]=($a!=""&&$x!="sqlite"?"ADD":" ")." FOREIGN KEY (".idf_escape($m["field"]).") REFERENCES ".table($p[$m["type"]])." (".idf_escape($ag["field"]).")".(ereg("^($Od)\$",$m["on_delete"])?" ON DELETE $m[on_delete]":"");$oa=" AFTER ".idf_escape($m["field"]);}elseif($m["orig"]!=""){$mg=true;$n[]=array($m["orig"]);}if($m["orig"]!=""){$ae=next($be);if(!$ae)$oa="";}}$ke="";if(in_array($L["partition_by"],$ie)){$le=array();if($L["partition_by"]=='RANGE'||$L["partition_by"]=='LIST'){foreach(array_filter($L["partition_names"])as$y=>$X){$Y=$L["partition_values"][$y];$le[]="\n PARTITION ".idf_escape($X)." VALUES ".($L["partition_by"]=='RANGE'?"LESS THAN":"IN").($Y!=""?" ($Y)":" MAXVALUE");}}$ke.="\nPARTITION BY $L[partition_by]($L[partition])".($le?" (".implode(",",$le)."\n)":($L["partitions"]?" PARTITIONS ".(+$L["partitions"]):""));}elseif(support("partitioning")&&ereg("partitioned",$R["Create_options"]))$ke.="\nREMOVE PARTITIONING";$C='Table has been altered.';if($a==""){cookie("adminer_engine",$L["Engine"]);$C='Table has been created.';}$E=trim($L["name"]);queries_redirect(ME."table=".urlencode($E),$C,alter_table($a,$E,($x=="sqlite"&&($mg||$mc)?$qa:$n),$mc,$L["Comment"],($L["Engine"]&&$L["Engine"]!=$R["Engine"]?$L["Engine"]:""),($L["Collation"]&&$L["Collation"]!=$R["Collation"]?$L["Collation"]:""),($L["Auto_increment"]!=""?+$L["Auto_increment"]:""),$ke));}}page_header(($a!=""?'Alter table':'Create table'),$l,array("table"=>$a),$a);if(!$_POST){$L=array("Engine"=>$_COOKIE["adminer_engine"],"fields"=>array(array("field"=>"","type"=>(isset($cg["int"])?"int":(isset($cg["integer"])?"integer":"")))),"partition_names"=>array(""),);if($a!=""){$L=$R;$L["name"]=$a;$L["fields"]=array();if(!$_GET["auto_increment"])$L["Auto_increment"]="";foreach($be -as$m){$m["has_default"]=isset($m["default"]);$L["fields"][]=$m;}if(support("partitioning")){$sc="FROM information_schema.PARTITIONS WHERE TABLE_SCHEMA = ".q(DB)." AND TABLE_NAME = ".q($a);$J=$g->query("SELECT PARTITION_METHOD, PARTITION_ORDINAL_POSITION, PARTITION_EXPRESSION $sc ORDER BY PARTITION_ORDINAL_POSITION DESC LIMIT 1");list($L["partition_by"],$L["partitions"],$L["partition"])=$J->fetch_row();$le=get_key_vals("SELECT PARTITION_NAME, PARTITION_DESCRIPTION $sc AND PARTITION_NAME != '' ORDER BY PARTITION_ORDINAL_POSITION");$le[""]="";$L["partition_names"]=array_keys($le);$L["partition_values"]=array_values($le);}}}$d=collations();$Ob=engines();foreach($Ob -as$Nb){if(!strcasecmp($Nb,$L["Engine"])){$L["Engine"]=$Nb;break;}}echo' -
-

-Table name: -';if($a==""&&!$_POST){?>"(".'engine'.")")+$Ob,$L["Engine"]):""),' ',($d&&!ereg("sqlite|mssql",$x)?html_select("Collation",array(""=>"(".'collation'.")")+$d,$L["Collation"]):""),' - -';$Wa=($_POST?$_POST["comments"]:$L["Comment"]!="");if(!$_POST&&!$Wa){foreach($L["fields"]as$m){if($m["comment"]!=""){$Wa=true;break;}}}edit_fields($L["fields"],$d,"TABLE",$p,$Wa);echo'
-

-Auto Increment: -',checkbox("defaults",1,true,'Default values',"columnShow(this.checked, 5)","jsonly");if(!$_POST["defaults"]){echo'';}echo(support("comment")?"".' ':''),'

- -';if($_GET["create"]!=""){echo'';}if(support("partitioning")){$je=ereg('RANGE|LIST',$L["partition_by"]);print_fieldset("partition",'Partition by',$L["partition_by"]);echo'

-',html_select("partition_by",array(-1=>"")+$ie,$L["partition_by"],"partitionByChange(this);"),'() -Partitions: - - -';foreach($L["partition_names"]as$y=>$X){echo'',' - -';}echo' -

-';}elseif(isset($_GET["indexes"])){$a=$_GET["indexes"];$Jc=array("PRIMARY","UNIQUE","INDEX");$R=table_status($a,true);if(eregi("MyISAM|M?aria".($g->server_info>=5.6?"|InnoDB":""),$R["Engine"]))$Jc[]="FULLTEXT";$v=indexes($a);if($x=="sqlite"){unset($Jc[0]);unset($v[""]);}$L=$_POST;if($_POST&&!$l&&!$_POST["add"]){$ra=array();foreach($L["indexes"]as$u){$E=$u["name"];if(in_array($u["type"],$Jc)){$f=array();$gd=array();$sb=array();$P=array();ksort($u["columns"]);foreach($u["columns"]as$y=>$e){if($e!=""){$fd=$u["lengths"][$y];$rb=$u["descs"][$y];$P[]=idf_escape($e).($fd?"(".(+$fd).")":"").($rb?" DESC":"");$f[]=$e;$gd[]=($fd?$fd:null);$sb[]=$rb;}}if($f){$Yb=$v[$E];if($Yb){ksort($Yb["columns"]);ksort($Yb["lengths"]);ksort($Yb["descs"]);if($u["type"]==$Yb["type"]&&array_values($Yb["columns"])===$f&&(!$Yb["lengths"]||array_values($Yb["lengths"])===$gd)&&array_values($Yb["descs"])===$sb){unset($v[$E]);continue;}}$ra[]=array($u["type"],$E,"(".implode(", ",$P).")");}}}foreach($v -as$E=>$Yb)$ra[]=array($Yb["type"],$E,"DROP");if(!$ra)redirect(ME."table=".urlencode($a));queries_redirect(ME."table=".urlencode($a),'Indexes have been altered.',alter_indexes($a,$ra));}page_header('Indexes',$l,array("table"=>$a),$a);$n=array_keys(fields($a));if($_POST["add"]){foreach($L["indexes"]as$y=>$u){if($u["columns"][count($u["columns"])]!="")$L["indexes"][$y]["columns"][]="";}$u=end($L["indexes"]);if($u["type"]||array_filter($u["columns"],'strlen')||array_filter($u["lengths"],'strlen')||array_filter($u["descs"]))$L["indexes"][]=array("columns"=>array(1=>""));}if(!$L){foreach($v -as$y=>$u){$v[$y]["name"]=$y;$v[$y]["columns"][]="";}$v[]=array("columns"=>array(1=>""));$L["indexes"]=$v;}echo' -
- - -';$w=1;foreach($L["indexes"]as$u){echo"
Index TypeColumn (length)Name
".html_select("indexes[$w][type]",array(-1=>"")+$Jc,$u["type"],($w==count($L["indexes"])?"indexesAddRow(this);":1))."";ksort($u["columns"]);$s=1;foreach($u["columns"]as$y=>$e){echo"".html_select("indexes[$w][columns][$s]",array(-1=>"")+$n,$e,($s==count($u["columns"])?"indexesAddColumn":"indexesChangeColumn")."(this, '".js_escape($x=="sql"?"":$_GET["indexes"]."_")."');"),($x=="sql"||$x=="mssql"?"":""),($x!="sql"?checkbox("indexes[$w][descs][$s]",1,$u["descs"][$y],'descending'):"")," ";$s++;}echo"\n";$w++;}echo'
-

- -

- -

-';}elseif(isset($_GET["database"])){$L=$_POST;if($_POST&&!$l&&!isset($_POST["add_x"])){restart_session();$E=trim($L["name"]);if($_POST["drop"]){$_GET["db"]="";queries_redirect(remove_from_uri("db|database"),'Database has been dropped.',drop_databases(array(DB)));}elseif(DB!==$E){if(DB!=""){$_GET["db"]=$E;queries_redirect(preg_replace('~db=[^&]*&~','',ME)."db=".urlencode($E),'Database has been renamed.',rename_database($E,$L["collation"]));}else{$j=explode("\n",str_replace("\r","",$E));$tf=true;$Zc="";foreach($j -as$k){if(count($j)==1||$k!=""){if(!create_database($k,$L["collation"]))$tf=false;$Zc=$k;}}queries_redirect(ME."db=".urlencode($Zc),'Database has been created.',$tf);}}else{if(!$L["collation"])redirect(substr(ME,0,-1));query_redirect("ALTER DATABASE ".idf_escape($E).(eregi('^[a-z0-9_]+$',$L["collation"])?" COLLATE $L[collation]":""),substr(ME,0,-1),'Database has been altered.');}}page_header(DB!=""?'Alter database':'Create database',$l,array(),DB);$d=collations();$E=DB;if($_POST)$E=$L["name"];elseif(DB!="")$L["collation"]=db_collation(DB,$d);elseif($x=="sql"){foreach(get_vals("SHOW GRANTS")as$r){if(preg_match('~ ON (`(([^\\\\`]|``|\\\\.)*)%`\\.\\*)?~',$r,$B)&&$B[1]){$E=stripcslashes(idf_unescape("`$B[2]`"));break;}}}echo' -
-

-',($_POST["add_x"]||strpos($E,"\n")?'
':'')."\n".($d?html_select("collation",array(""=>"(".'collation'.")")+$d,$L["collation"]):"");?> - - -\n";elseif(!$_POST["add_x"]&&$_GET["db"]=="")echo"\n";echo' -

-';}elseif(isset($_GET["call"])){$da=$_GET["call"];page_header('Call'.": ".h($da),$l);$Ve=routine($da,(isset($_GET["callf"])?"FUNCTION":"PROCEDURE"));$Ic=array();$ce=array();foreach($Ve["fields"]as$s=>$m){if(substr($m["inout"],-3)=="OUT")$ce[$s]="@".idf_escape($m["field"])." AS ".idf_escape($m["field"]);if(!$m["inout"]||substr($m["inout"],0,2)=="IN")$Ic[]=$s;}if(!$l&&$_POST){$Ga=array();foreach($Ve["fields"]as$y=>$m){if(in_array($y,$Ic)){$X=process_input($m);if($X===false)$X="''";if(isset($ce[$y]))$g->query("SET @".idf_escape($m["field"])." = $X");}$Ga[]=(isset($ce[$y])?"@".idf_escape($m["field"]):$X);}$I=(isset($_GET["callf"])?"SELECT":"CALL")." ".idf_escape($da)."(".implode(", ",$Ga).")";echo"

".h($I)." ".'Edit'."\n";if(!$g->multi_query($I))echo"

".error()."\n";else{$h=connect();if(is_object($h))$h->select_db(DB);do{$J=$g->store_result();if(is_object($J))select($J,$h);else -echo"

".lang(array('Routine has been called, %d row affected.','Routine has been called, %d rows affected.'),$g->affected_rows)."\n";}while($g->next_result());if($ce)select($g->query("SELECT ".implode(", ",$ce)));}}echo' -

-';if($Ic){echo"\n";foreach($Ic -as$y){$m=$Ve["fields"][$y];$E=$m["field"];echo"
".$b->fieldName($m);$Y=$_POST["fields"][$E];if($Y!=""){if($m["type"]=="enum")$Y=+$Y;if($m["type"]=="set")$Y=array_sum($Y);}input($m,$Y,(string)$_POST["function"][$E]);echo"\n";}echo"
\n";}echo'

- - -

-';}elseif(isset($_GET["foreign"])){$a=$_GET["foreign"];$E=$_GET["name"];$L=$_POST;if($_POST&&!$l&&!$_POST["add"]&&!$_POST["change"]&&!$_POST["change-js"]){if($_POST["drop"])query_redirect("ALTER TABLE ".table($a)."\nDROP ".($x=="sql"?"FOREIGN KEY ":"CONSTRAINT ").idf_escape($E),ME."table=".urlencode($a),'Foreign key has been dropped.');else{$jf=array_filter($L["source"],'strlen');ksort($jf);$Ef=array();foreach($jf -as$y=>$X)$Ef[$y]=$L["target"][$y];query_redirect("ALTER TABLE ".table($a).($E!=""?"\nDROP ".($x=="sql"?"FOREIGN KEY ":"CONSTRAINT ").idf_escape($E).",":"")."\nADD FOREIGN KEY (".implode(", ",array_map('idf_escape',$jf)).") REFERENCES ".table($L["table"])." (".implode(", ",array_map('idf_escape',$Ef)).")".(ereg("^($Od)\$",$L["on_delete"])?" ON DELETE $L[on_delete]":"").(ereg("^($Od)\$",$L["on_update"])?" ON UPDATE $L[on_update]":""),ME."table=".urlencode($a),($E!=""?'Foreign key has been altered.':'Foreign key has been created.'));$l='Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.'."
$l";}}page_header('Foreign key',$l,array("table"=>$a),$a);if($_POST){ksort($L["source"]);if($_POST["add"])$L["source"][]="";elseif($_POST["change"]||$_POST["change-js"])$L["target"]=array();}elseif($E!=""){$p=foreign_keys($a);$L=$p[$E];$L["source"][]="";}else{$L["table"]=$a;$L["source"]=array("");}$jf=array_keys(fields($a));$Ef=($a===$L["table"]?$jf:array_keys(fields($L["table"])));$Ie=array_keys(array_filter(table_status('',true),'fk_support'));echo' -
-

-';if($L["db"]==""&&$L["ns"]==""){echo'Target table: -',html_select("table",$Ie,$L["table"],"this.form['change-js'].value = '1'; this.form.submit();"),' -

- - -';$w=0;foreach($L["source"]as$y=>$X){echo"","
SourceTarget
".html_select("source[".(+$y)."]",array(-1=>"")+$jf,$X,($w==count($L["source"])-1?"foreignAddRow(this);":1)),"".html_select("target[".(+$y)."]",$Ef,$L["target"][$y]);$w++;}echo'
-

-ON DELETE: ',html_select("on_delete",array(-1=>"")+explode("|",$Od),$L["on_delete"]),' ON UPDATE: ',html_select("on_update",array(-1=>"")+explode("|",$Od),$L["on_update"]),'

- -

-';}if($E!=""){echo'';}echo' -

-';}elseif(isset($_GET["view"])){$a=$_GET["view"];$L=$_POST;if($_POST&&!$l){$E=trim($L["name"]);$sa=" AS\n$L[select]";$A=ME."table=".urlencode($E);$C='View has been altered.';if(!$_POST["drop"]&&$a==$E&&$x!="sqlite")query_redirect(($x=="mssql"?"ALTER":"CREATE OR REPLACE")." VIEW ".table($E).$sa,$A,$C);else{$Gf=$E."_adminer_".uniqid();drop_create("DROP VIEW ".table($a),"CREATE VIEW ".table($E).$sa,"DROP VIEW ".table($E),"CREATE VIEW ".table($Gf).$sa,"DROP VIEW ".table($Gf),($_POST["drop"]?substr(ME,0,-1):$A),'View has been dropped.',$C,'View has been created.',$a,$E);}}if(!$_POST&&$a!=""){$L=view($a);$L["name"]=$a;if(!$l)$l=$g->error;}page_header(($a!=""?'Alter view':'Create view'),$l,array("table"=>$a),$a);echo' -
-

Name: -

';textarea("select",$L["select"]);echo'

- -';if($_GET["view"]!=""){echo'';}echo' -

-';}elseif(isset($_GET["event"])){$aa=$_GET["event"];$Oc=array("YEAR","QUARTER","MONTH","DAY","HOUR","MINUTE","WEEK","SECOND","YEAR_MONTH","DAY_HOUR","DAY_MINUTE","DAY_SECOND","HOUR_MINUTE","HOUR_SECOND","MINUTE_SECOND");$of=array("ENABLED"=>"ENABLE","DISABLED"=>"DISABLE","SLAVESIDE_DISABLED"=>"DISABLE ON SLAVE");$L=$_POST;if($_POST&&!$l){if($_POST["drop"])query_redirect("DROP EVENT ".idf_escape($aa),substr(ME,0,-1),'Event has been dropped.');elseif(in_array($L["INTERVAL_FIELD"],$Oc)&&isset($of[$L["STATUS"]])){$Ze="\nON SCHEDULE ".($L["INTERVAL_VALUE"]?"EVERY ".q($L["INTERVAL_VALUE"])." $L[INTERVAL_FIELD]".($L["STARTS"]?" STARTS ".q($L["STARTS"]):"").($L["ENDS"]?" ENDS ".q($L["ENDS"]):""):"AT ".q($L["STARTS"]))." ON COMPLETION".($L["ON_COMPLETION"]?"":" NOT")." PRESERVE";queries_redirect(substr(ME,0,-1),($aa!=""?'Event has been altered.':'Event has been created.'),queries(($aa!=""?"ALTER EVENT ".idf_escape($aa).$Ze.($aa!=$L["EVENT_NAME"]?"\nRENAME TO ".idf_escape($L["EVENT_NAME"]):""):"CREATE EVENT ".idf_escape($L["EVENT_NAME"]).$Ze)."\n".$of[$L["STATUS"]]." COMMENT ".q($L["EVENT_COMMENT"]).rtrim(" DO\n$L[EVENT_DEFINITION]",";").";"));}}page_header(($aa!=""?'Alter event'.": ".h($aa):'Create event'),$l);if(!$L&&$aa!=""){$M=get_rows("SELECT * FROM information_schema.EVENTS WHERE EVENT_SCHEMA = ".q(DB)." AND EVENT_NAME = ".q($aa));$L=reset($M);}echo' -
- -
Name -
Start -
End -
Every ',html_select("INTERVAL_FIELD",$Oc,$L["INTERVAL_FIELD"]),'
Status',html_select("STATUS",$of,$L["STATUS"]),'
Comment -
 ',checkbox("ON_COMPLETION","PRESERVE",$L["ON_COMPLETION"]=="PRESERVE",'On completion preserve'),'
-

';textarea("EVENT_DEFINITION",$L["EVENT_DEFINITION"]);echo'

- -';if($aa!=""){echo'';}echo' -

-';}elseif(isset($_GET["procedure"])){$da=$_GET["procedure"];$Ve=(isset($_GET["function"])?"FUNCTION":"PROCEDURE");$L=$_POST;$L["fields"]=(array)$L["fields"];if($_POST&&!process_fields($L["fields"])&&!$l){$Gf="$L[name]_adminer_".uniqid();drop_create("DROP $Ve ".idf_escape($da),create_routine($Ve,$L),"DROP $Ve ".idf_escape($L["name"]),create_routine($Ve,array("name"=>$Gf)+$L),"DROP $Ve ".idf_escape($Gf),substr(ME,0,-1),'Routine has been dropped.','Routine has been altered.','Routine has been created.',$da,$L["name"]);}page_header(($da!=""?(isset($_GET["function"])?'Alter function':'Alter procedure').": ".h($da):(isset($_GET["function"])?'Create function':'Create procedure')),$l);if(!$_POST&&$da!=""){$L=routine($da,$Ve);$L["name"]=$da;}$d=get_vals("SHOW CHARACTER SET");sort($d);$We=routine_languages();echo' -
-

Name: -',($We?'Language'.": ".html_select("language",$We,$L["language"]):""),' -';edit_fields($L["fields"],$d,$Ve);if(isset($_GET["function"])){echo"
".'Return type';edit_type("returns",$L["returns"],$d);}echo'
-

';textarea("definition",$L["definition"]);echo'

- -';if($da!=""){echo'';}echo' -

-';}elseif(isset($_GET["trigger"])){$a=$_GET["trigger"];$E=$_GET["name"];$Yf=trigger_options();$Xf=array("INSERT","UPDATE","DELETE");$L=(array)trigger($E)+array("Trigger"=>$a."_bi");if($_POST){if(!$l&&in_array($_POST["Timing"],$Yf["Timing"])&&in_array($_POST["Event"],$Xf)&&in_array($_POST["Type"],$Yf["Type"])){$Nd=" ON ".table($a);$_b="DROP TRIGGER ".idf_escape($E).($x=="pgsql"?$Nd:"");$A=ME."table=".urlencode($a);if($_POST["drop"])query_redirect($_b,$A,'Trigger has been dropped.');else{if($E!="")queries($_b);queries_redirect($A,($E!=""?'Trigger has been altered.':'Trigger has been created.'),queries(create_trigger($Nd,$_POST)));if($E!="")queries(create_trigger($Nd,$L+array("Type"=>reset($Yf["Type"]))));}}$L=$_POST;}page_header(($E!=""?'Alter trigger'.": ".h($E):'Create trigger'),$l,array("table"=>$a));echo' -
- -
Time',html_select("Timing",$Yf["Timing"],$L["Timing"],"if (/^".preg_quote($a,"/")."_[ba][iud]$/.test(this.form['Trigger'].value)) this.form['Trigger'].value = '".js_escape($a)."_' + selectValue(this).charAt(0).toLowerCase() + selectValue(this.form['Event']).charAt(0).toLowerCase();"),'
Event',html_select("Event",$Xf,$L["Event"],"this.form['Timing'].onchange();"),'
Type',html_select("Type",$Yf["Type"],$L["Type"]),'
-

Name: -

';textarea("Statement",$L["Statement"]);echo'

- -';if($E!=""){echo'';}echo' -

-';}elseif(isset($_GET["user"])){$fa=$_GET["user"];$_e=array(""=>array("All privileges"=>""));foreach(get_rows("SHOW PRIVILEGES")as$L){foreach(explode(",",($L["Privilege"]=="Grant option"?"":$L["Context"]))as$bb)$_e[$bb][$L["Privilege"]]=$L["Comment"];}$_e["Server Admin"]+=$_e["File access on server"];$_e["Databases"]["Create routine"]=$_e["Procedures"]["Create routine"];unset($_e["Procedures"]["Create routine"]);$_e["Columns"]=array();foreach(array("Select","Insert","Update","References")as$X)$_e["Columns"][$X]=$_e["Tables"][$X];unset($_e["Server Admin"]["Usage"]);foreach($_e["Tables"]as$y=>$X)unset($_e["Databases"][$y]);$Bd=array();if($_POST){foreach($_POST["objects"]as$y=>$X)$Bd[$X]=(array)$Bd[$X]+(array)$_POST["grants"][$y];}$wc=array();$Ld="";if(isset($_GET["host"])&&($J=$g->query("SHOW GRANTS FOR ".q($fa)."@".q($_GET["host"])))){while($L=$J->fetch_row()){if(preg_match('~GRANT (.*) ON (.*) TO ~',$L[0],$B)&&preg_match_all('~ *([^(,]*[^ ,(])( *\\([^)]+\\))?~',$B[1],$ld,PREG_SET_ORDER)){foreach($ld -as$X){if($X[1]!="USAGE")$wc["$B[2]$X[2]"][$X[1]]=true;if(ereg(' WITH GRANT OPTION',$L[0]))$wc["$B[2]$X[2]"]["GRANT OPTION"]=true;}}if(preg_match("~ IDENTIFIED BY PASSWORD '([^']+)~",$L[0],$B))$Ld=$B[1];}}if($_POST&&!$l){$Md=(isset($_GET["host"])?q($fa)."@".q($_GET["host"]):"''");if($_POST["drop"])query_redirect("DROP USER $Md",ME."privileges=",'User has been dropped.');else{$Dd=q($_POST["user"])."@".q($_POST["host"]);$me=$_POST["pass"];if($me!=''&&!$_POST["hashed"]){$me=$g->result("SELECT PASSWORD(".q($me).")");$l=!$me;}$fb=false;if(!$l){if($Md!=$Dd){$fb=queries(($g->server_info<5?"GRANT USAGE ON *.* TO":"CREATE USER")." $Dd IDENTIFIED BY PASSWORD ".q($me));$l=!$fb;}elseif($me!=$Ld)queries("SET PASSWORD FOR $Dd = ".q($me));}if(!$l){$Se=array();foreach($Bd -as$Gd=>$r){if(isset($_GET["grant"]))$r=array_filter($r);$r=array_keys($r);if(isset($_GET["grant"]))$Se=array_diff(array_keys(array_filter($Bd[$Gd],'strlen')),$r);elseif($Md==$Dd){$Jd=array_keys((array)$wc[$Gd]);$Se=array_diff($Jd,$r);$r=array_diff($r,$Jd);unset($wc[$Gd]);}if(preg_match('~^(.+)\\s*(\\(.*\\))?$~U',$Gd,$B)&&(!grant("REVOKE",$Se,$B[2]," ON $B[1] FROM $Dd")||!grant("GRANT",$r,$B[2]," ON $B[1] TO $Dd"))){$l=true;break;}}}if(!$l&&isset($_GET["host"])){if($Md!=$Dd)queries("DROP USER $Md");elseif(!isset($_GET["grant"])){foreach($wc -as$Gd=>$Se){if(preg_match('~^(.+)(\\(.*\\))?$~U',$Gd,$B))grant("REVOKE",array_keys($Se),$B[2]," ON $B[1] FROM $Dd");}}}queries_redirect(ME."privileges=",(isset($_GET["host"])?'User has been altered.':'User has been created.'),!$l);if($fb)$g->query("DROP USER $Dd");}}page_header((isset($_GET["host"])?'Username'.": ".h("$fa@$_GET[host]"):'Create user'),$l,array("privileges"=>array('','Privileges')));if($_POST){$L=$_POST;$wc=$Bd;}else{$L=$_GET+array("host"=>$g->result("SELECT SUBSTRING_INDEX(CURRENT_USER, '@', -1)"));$L["pass"]=$Ld;if($Ld!="")$L["hashed"]=true;$wc[(DB==""||$wc?"":idf_escape(addcslashes(DB,"%_\\"))).".*"]=array();}echo'
- -
Server -
Username -
Password -';if(!$L["hashed"]){echo'';}echo -checkbox("hashed",1,$L["hashed"],'Hashed',"typePassword(this.form['pass'], this.checked);"),'
- -';echo"\n","\n";foreach(array(""=>"","Server Admin"=>'Server',"Databases"=>'Database',"Tables"=>'Table',"Columns"=>'Column',"Procedures"=>'Routine',)as$bb=>$rb){foreach((array)$_e[$bb]as$ze=>$Va){echo"$rb'.h($ze);$s=0;foreach($wc -as$Gd=>$r){$E="'grants[$s][".h(strtoupper($ze))."]'";$Y=$r[strtoupper($ze)];if($bb=="Server Admin"&&$Gd!=(isset($wc["*.*"])?"*.*":".*"))echo"
".'Privileges'."";$s=0;foreach($wc -as$Gd=>$r){echo''.($Gd!="*.*"?"":"*.*");$s++;}echo"
 ";elseif(isset($_GET["grant"]))echo"";else -echo"";$s++;}}}echo"
\n",'

- -';if(isset($_GET["host"])){echo'';}echo' -

-';}elseif(isset($_GET["processlist"])){if(support("kill")&&$_POST&&!$l){$Wc=0;foreach((array)$_POST["kill"]as$X){if(queries("KILL ".(+$X)))$Wc++;}queries_redirect(ME."processlist=",lang(array('%d process has been killed.','%d processes have been killed.'),$Wc),$Wc||!$_POST["kill"]);}page_header('Process list',$l);echo' -
- -';$s=-1;foreach(process_list()as$s=>$L){if(!$s){echo"".(support("kill")?"\n";}echo"".(support("kill")?"
 ":"");foreach($L -as$y=>$X)echo"".($x=="sql"?"$y":$y);echo"
".checkbox("kill[]",$L["Id"],0):"");foreach($L -as$y=>$X)echo"".(($x=="sql"&&$y=="Info"&&ereg("Query|Killed",$L["Command"])&&$X!="")||($x=="pgsql"&&$y=="current_query"&&$X!="")||($x=="oracle"&&$y=="sql_text"&&$X!="")?"".shorten_utf8($X,100,"").' '.'Clone'.'':nbsp($X));echo"\n";}echo'
- -

-';if(support("kill")){echo($s+1)."/".sprintf('%d in total',$g->result("SELECT @@max_connections")),"

\n";}echo' -

-';}elseif(isset($_GET["select"])){$a=$_GET["select"];$R=table_status1($a);$v=indexes($a);$n=fields($a);$p=column_foreign_keys($a);$Id="";if($R["Oid"]){$Id=($x=="sqlite"?"rowid":"oid");$v[]=array("type"=>"PRIMARY","columns"=>array($Id));}parse_str($_COOKIE["adminer_import"],$la);$Te=array();$f=array();$Jf=null;foreach($n -as$y=>$m){$E=$b->fieldName($m);if(isset($m["privileges"]["select"])&&$E!=""){$f[$y]=html_entity_decode(strip_tags($E),ENT_QUOTES);if(is_shortable($m))$Jf=$b->selectLengthProcess();}$Te+=$m["privileges"];}list($N,$xc)=$b->selectColumnsProcess($f,$v);$Pc=count($xc)selectSearchProcess($n,$v);$Vd=$b->selectOrderProcess($n,$v);$z=$b->selectLimitProcess();$sc=($N?implode(", ",$N):"*".($Id?", $Id":"")).convert_fields($f,$n,$N)."\nFROM ".table($a);$yc=($xc&&$Pc?"\nGROUP BY ".implode(", ",$xc):"").($Vd?"\nORDER BY ".implode(", ",$Vd):"");if($_GET["val"]&&is_ajax()){header("Content-Type: text/plain; charset=utf-8");foreach($_GET["val"]as$gg=>$L){$sa=convert_field($n[key($L)]);echo$g->result("SELECT".limit($sa?$sa:idf_escape(key($L))." FROM ".table($a)," WHERE ".where_check($gg,$n).($Z?" AND ".implode(" AND ",$Z):"").($Vd?" ORDER BY ".implode(", ",$Vd):""),1));}exit;}if($_POST&&!$l){$wg=$Z;if(is_array($_POST["check"]))$wg[]="((".implode(") OR (",array_map('where_check',$_POST["check"]))."))";$wg=($wg?"\nWHERE ".implode(" AND ",$wg):"");$we=$ig=null;foreach($v -as$u){if($u["type"]=="PRIMARY"){$we=array_flip($u["columns"]);$ig=($N?$we:array());break;}}foreach((array)$ig -as$y=>$X){if(in_array(idf_escape($y),$N))unset($ig[$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"])||$ig===array())$I="SELECT $sc$wg$yc";else{$eg=array();foreach($_POST["check"]as$X)$eg[]="(SELECT".limit($sc,"\nWHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($X,$n).$yc,1).")";$I=implode(" UNION ALL ",$eg);}$b->dumpData($a,"table",$I);exit;}if(!$b->selectEmailProcess($Z,$p)){if($_POST["save"]||$_POST["delete"]){$J=true;$ma=0;$I=table($a);$P=array();if(!$_POST["delete"]){foreach($f -as$E=>$X){$X=process_input($n[$E]);if($X!==null){if($_POST["clone"])$P[idf_escape($E)]=($X!==false?$X:idf_escape($E));elseif($X!==false)$P[]=idf_escape($E)." = $X";}}$I.=($_POST["clone"]?" (".implode(", ",array_keys($P)).")\nSELECT ".implode(", ",$P)."\nFROM ".table($a):" SET\n".implode(",\n",$P));}if($_POST["delete"]||$P){$Ta="UPDATE";if($_POST["delete"]){$Ta="DELETE";$I="FROM $I";}if($_POST["clone"]){$Ta="INSERT";$I="INTO $I";}if($_POST["all"]||($ig===array()&&is_array($_POST["check"]))||$Pc){$J=queries("$Ta $I$wg");$ma=$g->affected_rows;}else{foreach((array)$_POST["check"]as$X){$J=queries($Ta.limit1($I,"\nWHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($X,$n)));if(!$J)break;$ma+=$g->affected_rows;}}}$C=lang(array('%d item has been affected.','%d items have been affected.'),$ma);if($_POST["clone"]&&$J&&$ma==1){$ad=last_id();if($ad)$C=sprintf('Item%s has been inserted.'," $ad");}queries_redirect(remove_from_uri($_POST["all"]&&$_POST["delete"]?"page":""),$C,$J);}elseif(!$_POST["import"]){if(!$_POST["val"])$l='Ctrl+click on a value to modify it.';else{$J=true;$ma=0;foreach($_POST["val"]as$gg=>$L){$P=array();foreach($L -as$y=>$X){$y=bracket_escape($y,1);$P[]=idf_escape($y)." = ".(ereg('char|text',$n[$y]["type"])||$X!=""?$b->processInput($n[$y],$X):"NULL");}$I=table($a)." SET ".implode(", ",$P);$vg=" WHERE ".where_check($gg,$n).($Z?" AND ".implode(" AND ",$Z):"");$J=queries("UPDATE".($Pc||$ig===array()?" $I$vg":limit1($I,$vg)));if(!$J)break;$ma+=$g->affected_rows;}queries_redirect(remove_from_uri(),lang(array('%d item has been affected.','%d items have been affected.'),$ma),$J);}}elseif(!is_string($hc=get_file("csv_file",true)))$l=upload_error($hc);elseif(!preg_match('~~u',$hc))$l='File must be in UTF-8 encoding.';else{cookie("adminer_import","output=".urlencode($la["output"])."&format=".urlencode($_POST["separator"]));$J=true;$Sa=array_keys($n);preg_match_all('~(?>"[^"]*"|[^"\\r\\n]+)+~',$hc,$ld);$ma=count($ld[0]);begin();$ef=($_POST["separator"]=="csv"?",":($_POST["separator"]=="tsv"?"\t":";"));foreach($ld[0]as$y=>$X){preg_match_all("~((?>\"[^\"]*\")+|[^$ef]*)$ef~",$X.$ef,$md);if(!$y&&!array_diff($md[1],$Sa)){$Sa=$md[1];$ma--;}else{$P=array();foreach($md[1]as$s=>$Pa)$P[idf_escape($Sa[$s])]=($Pa==""&&$n[$Sa[$s]]["null"]?"NULL":q(str_replace('""','"',preg_replace('~^"|"$~','',$Pa))));$J=insert_update($a,$P,$we);if(!$J)break;}}if($J)queries("COMMIT");queries_redirect(remove_from_uri("page"),lang(array('%d row has been imported.','%d rows have been imported.'),$ma),$J);queries("ROLLBACK");}}}$zf=$b->tableName($R);if(is_ajax())ob_start();page_header('Select'.": $zf",$l);$P=null;if(isset($Te["insert"])){$P="";foreach((array)$_GET["where"]as$X){if(count($p[$X["col"]])==1&&($X["op"]=="="||(!$X["op"]&&!ereg('[_%]',$X["val"]))))$P.="&set".urlencode("[".bracket_escape($X["col"])."]")."=".urlencode($X["val"]);}}$b->selectLinks($R,$P);if(!$f)echo"

".'Unable to select the table'.($n?".":": ".error())."\n";else{echo"

\n","
";hidden_fields_get();echo(DB!=""?''.(isset($_GET["ns"])?'':""):"");echo'',"
\n";$b->selectColumnsPrint($N,$f);$b->selectSearchPrint($Z,$f,$v);$b->selectOrderPrint($Vd,$f,$v);$b->selectLimitPrint($z);$b->selectLengthPrint($Jf);$b->selectActionPrint($v);echo"
\n";$F=$_GET["page"];if($F=="last"){$qc=$g->result("SELECT COUNT(*) FROM ".table($a).($Z?" WHERE ".implode(" AND ",$Z):""));$F=floor(max(0,$qc-1)/$z);}$I=$b->selectQueryBuild($N,$Z,$xc,$Vd,$z,$F);if(!$I)$I="SELECT".limit((+$z&&$xc&&$Pc&&$x=="sql"?"SQL_CALC_FOUND_ROWS ":"").$sc,($Z?"\nWHERE ".implode(" AND ",$Z):"").$yc,($z!=""?+$z:null),($F?$z*$F:0),"\n");echo$b->selectQuery($I);$J=$g->query($I);if(!$J)echo"

".error()."\n";else{if($x=="mssql"&&$F)$J->seek($z*$F);$Kb=array();echo"

\n";$M=array();while($L=$J->fetch_assoc()){if($F&&$x=="oracle")unset($L["RNUM"]);$M[]=$L;}if($_GET["page"]!="last")$qc=(+$z&&$xc&&$Pc?($x=="sql"?$g->result(" SELECT FOUND_ROWS()"):$g->result("SELECT COUNT(*) FROM ($I) x")):count($M));if(!$M)echo"

".'No rows.'."\n";else{$za=$b->backwardKeys($a,$zf);echo"\n","".(!$xc&&$N?"":"\n";if(is_ajax()){if($z%2==1&&$F%2==1)odd();ob_end_clean();}foreach($b->rowDescriptions($M,$p)as$D=>$L){$fg=unique_array($M[$D],$v);if(!$fg){$fg=array();foreach($M[$D]as$y=>$X){if(!preg_match('~^(COUNT\\((\\*|(DISTINCT )?`(?:[^`]|``)+`)\\)|(AVG|GROUP_CONCAT|MAX|MIN|SUM)\\(`(?:[^`]|``)+`\\))$~',$y))$fg[$y]=$X;}}$gg="";foreach($fg -as$y=>$X){if(strlen($X)>64){$y="MD5(".(strpos($y,'(')?$y:idf_escape($y)).")";$X=md5($X);}$gg.="&".($X!==null?urlencode("where[".bracket_escape($y)."]")."=".urlencode($X):"null%5B%5D=".urlencode($y));}echo"".(!$xc&&$N?"":"\n";}if(is_ajax())exit;echo"
".'edit'."");$Ad=array();$vc=array();reset($N);$Fe=1;foreach($M[0]as$y=>$X){if($y!=$Id){$X=$_GET["columns"][key($N)];$m=$n[$N?($X?$X["col"]:current($N)):$y];$E=($m?$b->fieldName($m,$Fe):"*");if($E!=""){$Fe++;$Ad[$y]=$E;$e=idf_escape($y);$Ec=remove_from_uri('(order|desc)[^=]*|page').'&order%5B0%5D='.urlencode($y);$rb="&desc%5B0%5D=1";echo'','';echo(!$N||$X?apply_sql_function($X["fun"],$E):h(current($N)))."";echo"";}$vc[$y]=$X["fun"];next($N);}}$gd=array();if($_GET["modify"]){foreach($M -as$L){foreach($L -as$y=>$X)$gd[$y]=max($gd[$y],min(40,strlen(utf8_decode($X))));}}echo($za?"".'Relations':"")."
".checkbox("check[]",substr($gg,1),in_array(substr($gg,1),(array)$_POST["check"]),"","this.form['all'].checked = false; formUncheck('all-page');").($Pc||information_schema(DB)?"":" ".'edit'.""));foreach($L -as$y=>$X){if(isset($Ad[$y])){$m=$n[$y];if($X!=""&&(!isset($Kb[$y])||$Kb[$y]!=""))$Kb[$y]=(is_mail($X)?$Ad[$y]:"");$_="";$X=$b->editVal($X,$m);if($X!==null){if(ereg('blob|bytea|raw|file',$m["type"])&&$X!="")$_=ME.'download='.urlencode($a).'&field='.urlencode($y).$gg;if($X==="")$X=" ";elseif($Jf!=""&&is_shortable($m))$X=shorten_utf8($X,max(0,+$Jf));else$X=h($X);if(!$_){foreach((array)$p[$y]as$o){if(count($p[$y])==1||end($o["source"])==$y){$_="";foreach($o["source"]as$s=>$jf)$_.=where_link($s,$o["target"][$s],$M[$D][$jf]);$_=($o["db"]!=""?preg_replace('~([?&]db=)[^&]+~','\\1'.urlencode($o["db"]),ME):ME).'select='.urlencode($o["table"]).$_;if(count($o["source"])==1)break;}}}if($y=="COUNT(*)"){$_=ME."select=".urlencode($a);$s=0;foreach((array)$_GET["where"]as$W){if(!array_key_exists($W["col"],$fg))$_.=where_link($s++,$W["col"],$W["val"],$W["op"]);}foreach($fg -as$Tc=>$W)$_.=where_link($s++,$Tc,$W);}}if(!$_&&($_=$b->selectLink($L[$y],$m))===null){if(is_mail($L[$y]))$_="mailto:$L[$y]";if($Ce=is_url($L[$y]))$_=($Ce=="http"&&$ba?$L[$y]:"$Ce://www.adminer.org/redirect/?url=".urlencode($L[$y]));}$t=h("val[$gg][".bracket_escape($y)."]");$Y=$_POST["val"][$gg][bracket_escape($y)];$_c=h($Y!==null?$Y:$L[$y]);$kd=strpos($X,"...");$Gb=is_utf8($X)&&$M[$D][$y]==$L[$y]&&!$vc[$y];$If=ereg('text|lob',$m["type"]);echo(($_GET["modify"]&&$Gb)||$Y!==null?"".($If?"":""):"".$b->selectVal($X,$_,$m));}}if($za)echo"";$b->backwardKeysPrint($za,$M[$D]);echo"
\n",(!$xc&&$N?"":"\n");}if(($M||$F)&&!is_ajax()){$Ub=true;if($_GET["page"]!="last"&&+$z&&!$Pc&&($qc>=$z||$F)){$qc=found_rows($R,$Z);if($qc$z||$F)){echo"

";$od=($qc===false?$F+(count($M)>=$z?2:1):floor(($qc-1)/$z));echo'".'Page'.":",pagination(0,$F).($F>5?" ...":"");for($s=max(1,$F-4);$s0){echo($F+5<$od?" ...":""),($Ub&&$qc!==false?pagination($od,$F):" ".'last'."");}echo(($qc===false?count($M)+1:$qc-$F*$z)>$z?' '.'Load more data'.'':'');}echo"

\n",($qc!==false?"(".($Ub?"":"~ ").lang(array('%d row','%d rows'),$qc).") ":""),checkbox("all",1,0,'whole result')."\n";if($b->selectCommandPrint()){echo'

Edit
-> - - - -
-';}$oc=$b->dumpFormat();foreach((array)$_GET["columns"]as$e){if($e["fun"]){unset($oc['sql']);break;}}if($oc){print_fieldset("export",'Export');$de=$b->dumpOutput();echo($de?html_select("output",$de,$la["output"])." ":""),html_select("format",$oc,$la["format"])," \n","\n";}}if($b->selectImportPrint()){print_fieldset("import",'Import',!$M);echo" ",html_select("separator",array("csv"=>"CSV,","csv;"=>"CSV;","tsv"=>"TSV"),$la["format"],1);echo" ","\n";}$b->selectEmailPrint(array_filter($Kb,'strlen'),$f);echo"

\n","
\n";}}if(is_ajax()){ob_end_clean();exit;}}elseif(isset($_GET["variables"])){$nf=isset($_GET["status"]);page_header($nf?'Status':'Variables');$qg=($nf?show_status():show_variables());if(!$qg)echo"

".'No rows.'."\n";else{echo"\n";foreach($qg -as$y=>$X){echo"","
".h($y)."","".nbsp($X);}echo"
\n";}}elseif(isset($_GET["script"])){header("Content-Type: text/javascript; charset=utf-8");if($_GET["script"]=="db"){$wf=array("Data_length"=>0,"Index_length"=>0,"Data_free"=>0);foreach(table_status()as$E=>$R){$t=js_escape($E);json_row("Comment-$t",nbsp($R["Comment"]));if(!is_view($R)){foreach(array("Engine","Collation")as$y)json_row("$y-$t",nbsp($R[$y]));foreach($wf+array("Auto_increment"=>0,"Rows"=>0)as$y=>$X){if($R[$y]!=""){$X=number_format($R[$y],0,'.',',');json_row("$y-$t",($y=="Rows"&&$X&&$R["Engine"]==($lf=="pgsql"?"table":"InnoDB")?"~ $X":$X));if(isset($wf[$y]))$wf[$y]+=($R["Engine"]!="InnoDB"||$y!="Data_free"?$R[$y]:0);}elseif(array_key_exists($y,$R))json_row("$y-$t");}}}foreach($wf -as$y=>$X)json_row("sum-$y",number_format($X,0,'.',','));json_row("");}elseif($_GET["script"]=="kill")$g->query("KILL ".(+$_POST["kill"]));else{foreach(count_tables($b->databases())as$k=>$X)json_row("tables-".js_escape($k),$X);json_row("");}exit;}else{$Df=array_merge((array)$_POST["tables"],(array)$_POST["views"]);if($Df&&!$l&&!$_POST["search"]){$J=true;$C="";if($x=="sql"&&count($_POST["tables"])>1&&($_POST["drop"]||$_POST["truncate"]||$_POST["copy"]))queries("SET foreign_key_checks = 0");if($_POST["truncate"]){if($_POST["tables"])$J=truncate_tables($_POST["tables"]);$C='Tables have been truncated.';}elseif($_POST["move"]){$J=move_tables((array)$_POST["tables"],(array)$_POST["views"],$_POST["target"]);$C='Tables have been moved.';}elseif($_POST["copy"]){$J=copy_tables((array)$_POST["tables"],(array)$_POST["views"],$_POST["target"]);$C='Tables have been copied.';}elseif($_POST["drop"]){if($_POST["views"])$J=drop_views($_POST["views"]);if($J&&$_POST["tables"])$J=drop_tables($_POST["tables"]);$C='Tables have been dropped.';}elseif($x!="sql"){$J=($x=="sqlite"?queries("VACUUM"):apply_queries("VACUUM".($_POST["optimize"]?"":" ANALYZE"),$_POST["tables"]));$C='Tables have been optimized.';}elseif(!$_POST["tables"])$C='No tables.';elseif($J=queries(($_POST["optimize"]?"OPTIMIZE":($_POST["check"]?"CHECK":($_POST["repair"]?"REPAIR":"ANALYZE")))." TABLE ".implode(", ",array_map('idf_escape',$_POST["tables"])))){while($L=$J->fetch_assoc())$C.="".h($L["Table"]).": ".h($L["Msg_text"])."
";}queries_redirect(substr(ME,0,-1),$C,$J);}page_header(($_GET["ns"]==""?'Database'.": ".h(DB):'Schema'.": ".h($_GET["ns"])),$l,true);if($b->homepage()){if($_GET["ns"]!==""){echo"

".'Tables and views'."

\n";$Cf=tables_list();if(!$Cf)echo"

".'No tables.'."\n";else{echo"

\n","

".'Search data in tables'.": \n";if($_POST["search"]&&$_POST["query"]!="")search_tables();echo"\n",'\n";foreach($Cf -as$E=>$U){$rg=($U!==null&&!eregi("table",$U));echo'
',''.'Table',''.'Engine',''.'Collation',''.'Data Length',''.'Index Length',''.'Data Free',''.'Auto Increment',''.'Rows',(support("comment")?''.'Comment':''),"
'.checkbox(($rg?"views[]":"tables[]"),$E,in_array($E,$Df,true),"","formUncheck('check-all');"),''.h($E).'';if($rg){echo''.'View'.'','?';}else{foreach(array("Engine"=>array(),"Collation"=>array(),"Data_length"=>array("create",'Alter table'),"Index_length"=>array("indexes",'Alter indexes'),"Data_free"=>array("edit",'New item'),"Auto_increment"=>array("auto_increment=1&create",'Alter table'),"Rows"=>array("select",'Select data'),)as$y=>$_)echo($_?"?":" ");}echo(support("comment")?" ":"");}echo"
 ".sprintf('%d in total',count($Cf)),"".nbsp($x=="sql"?$g->result("SELECT @@storage_engine"):""),"".nbsp(db_collation(DB,collations()));foreach(array("Data_length","Index_length","Data_free")as$y)echo" ";echo"
\n","\n";if(!information_schema(DB)){echo"

".(ereg('^(sql|sqlite|pgsql)$',$x)?($x!="sqlite"?" ":"")." ":"").($x=="sql"?" ":"")." \n";$j=(support("scheme")?schemas():$b->databases());if(count($j)!=1&&$x!="sqlite"){$k=(isset($_POST["target"])?$_POST["target"]:(support("scheme")?$_GET["ns"]:DB));echo"

".'Move to other database'.": ",($j?html_select("target",$j,$k):'')," ",(support("copy")?" ":""),"\n";}echo"\n";}echo"

\n";}echo'

'.'Create table'."\n";if(support("view"))echo''.'Create view'."\n";if(support("routine")){echo"

".'Routines'."

\n";$Xe=routines();if($Xe){echo"\n",'\n";odd('');foreach($Xe -as$L){echo'','
'.'Name'.''.'Type'.''.'Return type'." 
'.h($L["ROUTINE_NAME"]).'',''.h($L["ROUTINE_TYPE"]),''.h($L["DTD_IDENTIFIER"]),''.'Alter'."";}echo"
\n";}echo'

'.(support("procedure")?''.'Create procedure'.' ':'').''.'Create function'."\n";}if(support("event")){echo"

".'Events'."

\n";$M=get_rows("SHOW EVENTS");if($M){echo"\n","\n";foreach($M -as$L){echo"","
".'Name'."".'Schedule'."".'Start'."".'End'."
".h($L["Name"]),"".($L["Execute at"]?'At given time'."".$L["Execute at"]:'Every'." ".$L["Interval value"]." ".$L["Interval field"]."$L[Starts]"),"$L[Ends]",''.'Alter'.'';}echo"
\n";$Tb=$g->result("SELECT @@event_scheduler");if($Tb&&$Tb!="ON")echo"

event_scheduler: ".h($Tb)."\n";}echo'

'.'Create event'."\n";}if($Cf)echo"\n";}}}page_footer(); \ No newline at end of file diff --git a/plugins/adminer/adminer.css b/plugins/adminer/adminer.css deleted file mode 100644 index a226aa9..0000000 --- a/plugins/adminer/adminer.css +++ /dev/null @@ -1,62 +0,0 @@ -/* CSS by Brade - www.bradezone.com */ -*{margin:0;padding:0} -body{font:13px/18px Helvetica,Arial,sans-serif;background:#fff;color:#333} -/* generic */ -a,a:visited{color:#06c;text-decoration:none;border-bottom:1px dotted} -a:hover{border-bottom:1px solid #06c;background:#06c;color:#fff} -p{padding-bottom:4px;margin-bottom:4px} -h1{font-size:18px;font-weight:bold;padding-bottom:0px;height:40px;padding:0 0 8px 0;color:#666;border:0} -h2{font:32px Georgia,serif;padding:10px 0 8px;margin:0;background:transparent;border:0;color:#333} -h3{font-size:18px;font-weight:bold;padding:4px 0;margin:0} -form#form{overflow:hidden} -fieldset{float:left;min-height:48px;padding:0 4px 4px 4px;border:1px solid #ccc;margin-bottom:8px;margin-right:4px} -fieldset div{margin-top:4px} -input,select,textarea{font:13px Helvetica,Arial,sans-serif;color:#555;border:1px solid #999;padding:3px} -input[type=submit]{background:#ccc;padding:2px;cursor:pointer;color:#333} -input[type=submit]:hover{background:#bbb} -input[type=image],input[type=checkbox]{border:0;padding:0} -label input[type=checkbox],td input[type=radio],td span select{margin-right:4px} -select{border:1px solid #999;padding:2px} -fieldset select{margin-right:4px} -option{padding:0 5px} -optgroup{font-size:11px} -code{background:#eee;padding:2px 4px;font:16px/20px Courier,monospace} -code a:hover{background:transparent} -table{margin:4px 0 8px;border:1px solid #ccc;font-size:inherit} -tbody tr:hover td,tbody tr:hover th{background:#eee} -thead tr:hover td,thead tr:hover th{background:#ddd} -th,td{text-align:left;padding:2px 4px;vertical-align:top;font-weight:normal;border:1px dotted #ccc;border-width:0 0 0 1px; -margin:0;background:inherit} -thead th,thead td{white-space:nowrap;font-weight:bold;background:#ddd;border-color:#ddd} -th:first-child,td:first-child{border-color:transparent;white-space:nowrap} -td[align=right]{text-align:right} -table code{font-size:13px;line-height:18px} -.hidden{display:none} -.error,.message{padding:0;background:transparent;font-weight:bold} -.error{color:#c00} -.message{color:#090} -/* specific */ -#content{margin:0 0 0 320px;padding:50px 20px 40px 0;height:100%} -#content:after{content:'.';clear:both;height:0;overflow:hidden;display:block} -#lang{background:#333;color:#fff;position:fixed;top:0;left:0;width:100%;padding:0 20px 0 40px;line-height:40px;height:40px} -#lang select{border-color:#333} -#menu{background:#eee;position:fixed;top:60px;bottom:20px;overflow:auto;left:20px;width:240px;padding:10px 15px; -border:5px solid #ccc;margin:0} -#menu a{color:#333;margin-right:4px} -#menu a:hover{background:#333;color:#fff;border-color:#333} -#menu a.h1,#menu a.h1:hover{display:block;height:0;width:175px;padding:40px 0 0 0;overflow:hidden;float:left;border:0;margin:0; -outline:0;background:url(http://www.bradezone.com/random/adminer_logo.gif) no-repeat;line-height:32px} -#menu p{white-space:nowrap;border:0;padding:0 0 4px 0;margin:0 0 4px 0} -#breadcrumb{background:#333;color:#fff;position:fixed;top:0;left:320px;width:100%;line-height:40px;padding:0;z-index:1;margin:0} -#breadcrumb a{color:#ff9} -#breadcrumb a:hover{background:transparent;color:#ff9;border-color:#ff9} -#schema .table{padding:4px 8px;background:#f3f3f3} -/* IE hacks */ -*+html th:first-child,*+html td:first-child{border-color:inherit;white-space:inherit} -* html #lang,* html #menu,* html #breadcrumb{position:absolute} -* html #lang{padding-top:10px;height:30px} -* html form#form{height:100%} -#logins a,#tables a{background: none} -#logout{color:#333;text-decoration:none;border-bottom:1px dotted} -#logout:hover{border-color:#333;background:#333;color:#fff} -.js .column{background:#ddd} \ No newline at end of file diff --git a/plugins/adminer/icon.png b/plugins/adminer/icon.png deleted file mode 100644 index 8f080e231ff02bfc30a144b874a30035fdeda512..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2691 zcmaJ@dpwkB8y;pHBju3US?V>0sLYtbV0H#G7>ybsm2A5jwACi`#y)?bzS#;Klk;=ljiH=rK^q5 zhCm>?w9Ov=$`P*oOf=P%|CrH3&y~YhBF{k4b{RCM3WPB_Ve? z&~52_cQA~-Ia&a2kM;>*Mu#(K6YRraot>SRHE=i^CBjB{fGc81Y`8-6 zPYNEOkSSpEMQk1ySXN|&@FGPdq%zZgO5pH6%W{Puk4br87zu-q!J=)KOZo())Bit| z!}*LBiu}QU^ZlQ~!hi#O5aSODd65F9vT-c);VecQD7)lz~cZPN+z(s zoQuO3^*(Y#znlyHi(HH{8O(BH|EtlTwv_H!o_@Bia`D;tAXn*jfzsAS+!1dGM17X# zK@N~SEX&&xVJ} zC@bUWky~2(19vnY4uHv9cAiUbW!9d%kdj^caEFyV%25{ax+cddiZ~-7>cu3#aN@`) z7C~u#OWwrybF&MvQXV@t7FxOiK&~$14AKg0UiTKu4qj&06qjX0)<4rIsHxB!6<+tS z%<R1z|wmg5J%M?=BZ_>CIE-mq@Nv_ z;?Dhg=om(7#u=0^CTtoBFFi-eMrj{gu+KI*`v`K{M`Iy3c2NE(Im_ZFZ;PTnw!IFN zzP5copm246LOCU&_!+*5CRvrvofJ(~R%)C;B(YCG)aGuCPah0=+&l}t=x6kH>&ksE zTvs$O|C-%Z@#dG&KTf-|1^T=HwCc6uXw45rHolB;$yPYsK^afAG;&#jAW?*xX$drq z^47f>q3&;eYQtbk)n8#}%7Uinmu?(*ZMk#j&aAK3-k$4+-{b;u5o66w{6^%BE%ImRFJ`1I%sXOb^g)mGJ`l8lp z(LGsi?T?pSR&E60wFuQp-PP$g`;RFaPF|9*ucbGo%S_Jy)$!oLl{)FWZo_D!^DX-~ z(G3+Zw`#q&27#+j!;N1}S z7Pk|3txbDq=m_HRrXy!Em(n78pwiN&xJuE`O>kq9xYl_x*V3;q-RZvIa*biqr2uLi zM`IHN=yGaLMD(Y6MHD5*nXy->{e%r4yzQt@C*s`_44-D>->33+V@6Vvwn)C`AZ4)z zKQCB5-I~ut1fB1-3F5t74{5{$ipD!Jr!U~Pntg>hU7|p2OYyxHqyIB$-crgrcoIg2 z9seP?{X(sdAVha8Wu_{hy;pEKDdeFC`cbnJsVKS4qnU)@U87)VwlVun<`GM2D3@{6 zOCOu0T-KW0=Z3ZlE33n8)=xLD7Y}Ey_nkg->yoKaW!}U!((#JNyf$a-uBZOE-}f!J zrJpc)L<_jolN5BKs&Lz%T6L=Z*(^8q_Y0^b|iY6kCR9B(PD}ina8OT4ytfHFL$0e%l{I1?f zU4!8;FzLE-F{)rqUW*l(mFb64ziyyjpuKg4%2DlxEQ70B_ft)_xfR*<_*ksYiIsT6 zbZ4y1<~%#6Zpmfwlz1zxH*bKV0Cj()mg{5&GQRMcd00-NEdH*&S?{XmM^NYSYpbJd z>sY!oz348NW}@K~Q#CF?p|j`q4fpb?40=3N|E1q^J5z8oWx$d=wKjfyz2@!Bg^P!@mUihZ(E%6K_(7?v7pkz@zptdgv$@2e z1C`~X5l4+**-+8@MAZ7ccqqi;>hm(e;Pk2ouE>sTKvAIicg&Rz6#0DnTHJ!>QD@E8 z6(!&1mY=Pz>p$g|ZcI-x8mwvQ%vpJda2Po|X16h0JW6x4AkY1Hy~BHyVG20ILLH!eJ{zm zpA+EkDteQ&c2JK{a-;@T^XgYJ;xI=D`7w)Ix>HBc$T18tVG*jweAX!T8yKKg&#yIk zkkmyspck*YC*zG5Q`4(MDvuPQE+p~g`(Z37ob@jlk-<}*h6Wm%LQyX+8r8lgL zpu&ucgGtwKEKUwWSJX`}sfKdbROKgMM9zn6d+iPm9GT1SD~p%w%@#%1UFo5(p818J zkpgYHdF&fIyM&ayyy5-Tl4n!bf{#fTURmsEh@QUn>Xm`34{F-W($eyBP2J&bF}Iq7 zM^&Q&%M~Vt(frg68m^86)~UqpdklYU3#m(#OWxH!kiPAIWq{Et`1bg@)Xq{w<6_R3 zw5SWybq15M=D7Fv3lj>v5vDAHm9-`J54DY~s{_4!%NLWA{kh(4&cxEIPiyC^z}=Ix uOE#W6xMlMC##gt}F+o42`OY-K;E?-;WqX5vt5;jT7ScR@JSr%A}- z#B#DQN0Vq&7;ysw3#8KdY!C>eA4n&Xd;k{29q^?1VxhC_8YqN9#zGynEZ`P&W5A1I z8q5G}gDvey!9FBiGE^T2!33iD0#txSgalGg`7+UgSm-xhG=ILatqz5JgRp$C(0`J0 zvap62(-;6m3x-r9!4U|Ewl)l*sim!rP=#o~5gO`n{;REq&_ru#qcwCO-ybMH8iVYC zw!t6z9*e)iLcLflI$B*lARqu1fP~Q)p6Uo)UEK{04GlFuLX8>Z%OVD<`7#xLDBuAm zi9w;WC^TQlh9c3O=EuT9`I-Jx0+s$#)|dJHnD_^#9!R9CBVh22l70X!EdD=~O8tpu zvTT5V^ZlQ~OuHaDpl$;&X?_e6zi}Q48=>fEV+KHE(HM3#+NmF>XzfK~(U@K|I>gvk z8*;#r;!CClFqOaIEiBMxzDyR;mjsyMu~5DOj6xx!4ULVB;V5HW4TKgRfgm7tb>UhB zxV91ekPaS&&_Vs+;%Ov5D&Wid!6pC8HT)%a!wOV7KQbO*Q2YV%AqI^K`BpNT^6Ol5 zeyR7JOa65(s9$o``N^nnH1@w5{bP&oo{i~G+wvDbjSu+p-Ok|K+BnUI1OkaBUgm4Tq@BH^J&(m(bP4eAyii^GynGs6-vCkl?a!SNvVInD*PLS~drw_T zaf8T8-a_Eq%tOzKV7z+I;Uq*<%2+%|#x1mum^B)m;F zwno$>;`(#u#IHp0UdTH1*o%tnw9(F{c&vlM6ETv_?gwVPA>(tvGEuX-ec0gwB(=ti zt9!G;WOoF!iI)UhG(Pk3iHE`~u)6T_`Z!5oo-hiTGrkqEH^1{E$ z#MS0v_epDBzF{!c!nWH1nv;}Jb4#y&v0~zLqqOd9+dg6kqW^$fXX(Jp*Am5+wNgnI zavYoRHO&=I#i2@Z;cl=#-bpN@Op#5;-44t8P0i!Y$;k7OqEh=dXXYK7CZrnb$PPYe zoqRsXu_~D|c*P(i#S1xW3U9N6NbEd}tbuM9J46hUg zrz?csx3P^v9qq|NK|3C9KK_yP_|YA!5x)$23Ou4klVQ5#OcuW0jrQv(XTNKRepmY< zB$nJvX6mI3oWK2E>&Pj+yt{~G`y18rUFZIG++%;#b8A6Toph+stBDt!S~c-j*5mvs zlZ66ms(G%!gM1TkZdX^)_}&YX@K5H2BCUqLq2RfB9d-eeebdi>%6r%H;FCM@A)ha1 zP9yr*!N~0Q)-`hxmtHdu=LvA~(jU-dv z@1vNe^p>YdA`zC#6PDnbTlLA3v$;a6SidrxeaUIjN00RA@1K6smV{~zE|WXql&tY4 zH%>I*7FmtH@PzY}ZT^wKR#G)E=4B!Y7Ik@K}(a?AG(mZKad zZl+G>NH`@;vm}c8l#!ovt)pER-Nrp=ohs|O%`c0epOVv!7bMogK3SiPJ&IA05Jd+@ z%)4Ak7HN5Z)tiPb8)9v{!_~>&Z@DJA1$%9K}wAg zkGG|Mb@W0W53^xh%eW1`8YY4rY4$<7odrz}ayD_Jm^E8{eEO2dnw`Ou7U5#$EM?PD z3BQT2zk?Zy{!{2fj(;TBb2``L2VR02gCh#yr6b+YBP(<$>YP~Cl=v>DHFX-#1N1L$^LXO?ael3Z(7xzgNoj)rpU;)PMYD5tdstGlrx_ig= zpJCuGm|K(lg`%tCz3foH-(}h92SUY}c*4S3mK<@u;HDgJf|J>&|GHAE?ZZX%)ZLCO z!D>$L1My-pU{bBKbN2LF>{4Hb|HzB+;<}{g6phcy*_fdl@|&rO#Z255)h~OmT5wN2=|L~t0qmmqY@v%?u9L_4#` z|HkfTA5z=sp$UVGaDq6~R%k!C+ONMMZQLzZQ@Twrtlw7VQR`B-*6Zv}mldls^igGH zu_GQ&(_rp8`xPFf7%G*m9&*o8YpatsvDA&v1i^H2 zb@5PBm;3S&mEaJ(fZ&#Dac>o_g)~$zOniFBdz}+ksqGEFEET`i(TPev7P%6G{mUg@ zR%z3U(?DEpf842D0ic1`mL1QSa69s{_DOzKUx{w$lF#v`xI<6N=4S3a#I99EB5MpX zk!2$vdq%ibN2Zufusq=pm)~6EaAmv`jjuQ_1ig<7+`FCOCF;!*a0Ue3z4h>C1=-Q4 zy#+owU-~yyejyJ$s;^?rylHy&lvD3LeBCRUJ0zUtD4L;oJ92oK-FX%&p?92SFUNc3 zu6uwjnYhZEwonV9@3>m`NneV|K0D=O<}ouq!CH;J3D@**n#5+*iC(XI*PwT2XgEG&q2v#YYP+-g uo|0zdtS6V?tu>t$r1!Bq$8+84+;5=b?oIgPw4sL^*LE|4CBE3mE#g1-&uQQQ diff --git a/plugins/cssbeautify/index.php b/plugins/cssbeautify/index.php deleted file mode 100644 index df271e3..0000000 --- a/plugins/cssbeautify/index.php +++ /dev/null @@ -1,45 +0,0 @@ - \ No newline at end of file diff --git a/plugins/emmet/emmet.min.js b/plugins/emmet/emmet.min.js deleted file mode 100644 index 5ae5786..0000000 --- a/plugins/emmet/emmet.min.js +++ /dev/null @@ -1,313 +0,0 @@ -var _=function(){function f(a,b,c){if(a===b)return a!==0||1/a==1/b;if(a==null||b==null)return a===b;if(a._chain)a=a._wrapped;if(b._chain)b=b._wrapped;if(a.isEqual&&k.isFunction(a.isEqual))return a.isEqual(b);if(b.isEqual&&k.isFunction(b.isEqual))return b.isEqual(a);var g=e.call(a);if(g!=e.call(b))return!1;switch(g){case "[object String]":return a==String(b);case "[object Number]":return a!=+a?b!=+b:a==0?1/a==1/b:a==+b;case "[object Date]":case "[object Boolean]":return+a==+b;case "[object RegExp]":return a.source== -b.source&&a.global==b.global&&a.multiline==b.multiline&&a.ignoreCase==b.ignoreCase}if(typeof a!="object"||typeof b!="object")return!1;for(var d=c.length;d--;)if(c[d]==a)return!0;c.push(a);var d=0,j=!0;if(g=="[object Array]"){if(d=a.length,j=d==b.length)for(;d--;)if(!(j=d in a==d in b&&f(a[d],b[d],c)))break}else{if("constructor"in a!="constructor"in b||a.constructor!=b.constructor)return!1;for(var h in a)if(k.has(a,h)&&(d++,!(j=k.has(b,h)&&f(a[h],b[h],c))))break;if(j){for(h in b)if(k.has(b,h)&&!d--)break; -j=!d}}c.pop();return j}var d=this,h=d._,i={},b=Array.prototype,c=Object.prototype,a=b.slice,g=b.unshift,e=c.toString,j=c.hasOwnProperty,n=b.forEach,o=b.map,l=b.reduce,m=b.reduceRight,p=b.filter,r=b.every,q=b.some,u=b.indexOf,s=b.lastIndexOf,c=Array.isArray,v=Object.keys,w=Function.prototype.bind,k=function(a){return new x(a)};if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports)exports=module.exports=k;exports._=k}else d._=k;k.VERSION="1.3.3";var t=k.each=k.forEach=function(a, -b,e){if(a!=null)if(n&&a.forEach===n)a.forEach(b,e);else if(a.length===+a.length)for(var c=0,g=a.length;c2;a==null&&(a=[]);if(l&& -a.reduce===l)return e&&(b=k.bind(b,e)),g?a.reduce(b,c):a.reduce(b);t(a,function(a,k,d){g?c=b.call(e,c,a,k,d):(c=a,g=!0)});if(!g)throw new TypeError("Reduce of empty array with no initial value");return c};k.reduceRight=k.foldr=function(a,b,c,e){var g=arguments.length>2;a==null&&(a=[]);if(m&&a.reduceRight===m)return e&&(b=k.bind(b,e)),g?a.reduceRight(b,c):a.reduceRight(b);var d=k.toArray(a).reverse();e&&!g&&(b=k.bind(b,e));return g?k.reduce(d,b,c,e):k.reduce(d,b)};k.find=k.detect=function(a,b,c){var e; -D(a,function(a,g,k){if(b.call(c,a,g,k))return e=a,!0});return e};k.filter=k.select=function(a,b,e){var c=[];if(a==null)return c;if(p&&a.filter===p)return a.filter(b,e);t(a,function(a,g,k){b.call(e,a,g,k)&&(c[c.length]=a)});return c};k.reject=function(a,b,c){var e=[];if(a==null)return e;t(a,function(a,g,k){b.call(c,a,g,k)||(e[e.length]=a)});return e};k.every=k.all=function(a,b,e){var c=!0;if(a==null)return c;if(r&&a.every===r)return a.every(b,e);t(a,function(a,g,k){if(!(c=c&&b.call(e,a,g,k)))return i}); -return!!c};var D=k.some=k.any=function(a,b,c){b||(b=k.identity);var e=!1;if(a==null)return e;if(q&&a.some===q)return a.some(b,c);t(a,function(a,g,k){if(e||(e=b.call(c,a,g,k)))return i});return!!e};k.include=k.contains=function(a,b){var e=!1;return a==null?e:u&&a.indexOf===u?a.indexOf(b)!=-1:e=D(a,function(a){return a===b})};k.invoke=function(b,e){var c=a.call(arguments,2);return k.map(b,function(a){return(k.isFunction(e)?e||a:a[e]).apply(a,c)})};k.pluck=function(a,b){return k.map(a,function(a){return a[b]})}; -k.max=function(a,b,e){if(!b&&k.isArray(a)&&a[0]===+a[0])return Math.max.apply(Math,a);if(!b&&k.isEmpty(a))return-Infinity;var c={computed:-Infinity};t(a,function(a,g,k){g=b?b.call(e,a,g,k):a;g>=c.computed&&(c={value:a,computed:g})});return c.value};k.min=function(a,b,e){if(!b&&k.isArray(a)&&a[0]===+a[0])return Math.min.apply(Math,a);if(!b&&k.isEmpty(a))return Infinity;var c={computed:Infinity};t(a,function(a,g,k){g=b?b.call(e,a,g,k):a;gc?1:0}),"value")};k.groupBy=function(a,b){var e={},c=k.isFunction(b)?b:function(a){return a[b]};t(a,function(a,b){var g=c(a,b);(e[g]||(e[g]=[])).push(a)}); -return e};k.sortedIndex=function(a,b,e){e||(e=k.identity);for(var c=0,g=a.length;c>1;e(a[d])=0})})};k.difference=function(b){var e=k.flatten(a.call(arguments,1),!0);return k.filter(b,function(a){return!k.include(e,a)})};k.zip=function(){for(var b=a.call(arguments),e=k.max(k.pluck(b,"length")), -c=Array(e),g=0;g=0;e--)b=[a[e].apply(this,b)];return b[0]}};k.after=function(a,b){return a<=0?b():function(){if(--a<1)return b.apply(this,arguments)}};k.keys=v||function(a){if(a!==Object(a))throw new TypeError("Invalid object");var b=[],e;for(e in a)k.has(a,e)&&(b[b.length]=e);return b};k.values=function(a){return k.map(a,k.identity)};k.functions=k.methods=function(a){var b=[],e;for(e in a)k.isFunction(a[e])&&b.push(e);return b.sort()};k.extend=function(b){t(a.call(arguments, -1),function(a){for(var e in a)b[e]=a[e]});return b};k.pick=function(b){var e={};t(k.flatten(a.call(arguments,1)),function(a){a in b&&(e[a]=b[a])});return e};k.defaults=function(b){t(a.call(arguments,1),function(a){for(var e in a)b[e]==null&&(b[e]=a[e])});return b};k.clone=function(a){return!k.isObject(a)?a:k.isArray(a)?a.slice():k.extend({},a)};k.tap=function(a,b){b(a);return a};k.isEqual=function(a,b){return f(a,b,[])};k.isEmpty=function(a){if(a==null)return!0;if(k.isArray(a)||k.isString(a))return a.length=== -0;for(var b in a)if(k.has(a,b))return!1;return!0};k.isElement=function(a){return!!(a&&a.nodeType==1)};k.isArray=c||function(a){return e.call(a)=="[object Array]"};k.isObject=function(a){return a===Object(a)};k.isArguments=function(a){return e.call(a)=="[object Arguments]"};if(!k.isArguments(arguments))k.isArguments=function(a){return!(!a||!k.has(a,"callee"))};k.isFunction=function(a){return e.call(a)=="[object Function]"};k.isString=function(a){return e.call(a)=="[object String]"};k.isNumber=function(a){return e.call(a)== -"[object Number]"};k.isFinite=function(a){return k.isNumber(a)&&isFinite(a)};k.isNaN=function(a){return a!==a};k.isBoolean=function(a){return a===!0||a===!1||e.call(a)=="[object Boolean]"};k.isDate=function(a){return e.call(a)=="[object Date]"};k.isRegExp=function(a){return e.call(a)=="[object RegExp]"};k.isNull=function(a){return a===null};k.isUndefined=function(a){return a===void 0};k.has=function(a,b){return j.call(a,b)};k.noConflict=function(){d._=h;return this};k.identity=function(a){return a}; -k.times=function(a,b,e){for(var c=0;c/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")};k.result=function(a,b){if(a==null)return null;var e=a[b];return k.isFunction(e)?e.call(a):e};k.mixin=function(a){t(k.functions(a),function(b){F(b,k[b]=a[b])})};var G=0;k.uniqueId=function(a){var b=G++;return a?a+b:b};k.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g, -escape:/<%-([\s\S]+?)%>/g};var z=/.^/,y={"\\":"\\","'":"'",r:"\r",n:"\n",t:"\t",u2028:"\u2028",u2029:"\u2029"},A;for(A in y)y[y[A]]=A;var H=/\\|'|\r|\n|\t|\u2028|\u2029/g,I=/\\(\\|'|r|n|t|u2028|u2029)/g,B=function(a){return a.replace(I,function(a,b){return y[b]})};k.template=function(a,b,e){e=k.defaults(e||{},k.templateSettings);a="__p+='"+a.replace(H,function(a){return"\\"+y[a]}).replace(e.escape||z,function(a,b){return"'+\n_.escape("+B(b)+")+\n'"}).replace(e.interpolate||z,function(a,b){return"'+\n("+ -B(b)+")+\n'"}).replace(e.evaluate||z,function(a,b){return"';\n"+B(b)+"\n;__p+='"})+"';\n";e.variable||(a="with(obj||{}){\n"+a+"}\n");var a="var __p='';var print=function(){__p+=Array.prototype.join.call(arguments, '')};\n"+a+"return __p;\n",c=new Function(e.variable||"obj","_",a);if(b)return c(b,k);b=function(a){return c.call(this,a,k)};b.source="function("+(e.variable||"obj")+"){\n"+a+"}";return b};k.chain=function(a){return k(a).chain()};var x=function(a){this._wrapped=a};k.prototype=x.prototype; -var C=function(a,b){return b?k(a).chain():a},F=function(b,e){x.prototype[b]=function(){var b=a.call(arguments);g.call(b,this._wrapped);return C(e.apply(k,b),this._chain)}};k.mixin(k);t(["pop","push","reverse","shift","sort","splice","unshift"],function(a){var e=b[a];x.prototype[a]=function(){var b=this._wrapped;e.apply(b,arguments);var c=b.length;(a=="shift"||a=="splice")&&c===0&&delete b[0];return C(b,this._chain)}});t(["concat","join","slice"],function(a){var e=b[a];x.prototype[a]=function(){return C(e.apply(this._wrapped, -arguments),this._chain)}});x.prototype.chain=function(){this._chain=!0;return this};x.prototype.value=function(){return this._wrapped};return k}.call({}),emmet=function(f){function d(a,b,d){var f;f=b&&b.hasOwnProperty("constructor")?b.constructor:function(){a.apply(this,arguments)};_.extend(f,a);c.prototype=a.prototype;f.prototype=new c;b&&_.extend(f.prototype,b);d&&_.extend(f,d);f.prototype.constructor=f;f.__super__=a.prototype;return f}function h(c){!(c in b)&&a&&a(c);return b[c]}if(typeof _=="undefined")try{_= -f.require("underscore")}catch(i){}if(typeof _=="undefined")throw"Cannot access to Underscore.js lib";var b={_:_},c=function(){},a=null;return{define:function(a,e){a in b||(b[a]=_.isFunction(e)?this.exec(e):e)},require:h,exec:function(a,b){return a.call(b||f,_.bind(h,this),_,this)},extend:function(a,b){var c=d(this,a,b);c.extend=this.extend;if(a.hasOwnProperty("toString"))c.prototype.toString=a.toString;return c},expandAbbreviation:function(a,b,c,d){if(!a)return"";var b=b||"html",f=h("filters"),i= -h("abbreviationParser"),c=h("profile").get(c,b);h("tabStops").resetTabstopIndex();a=f.extractFromAbbreviation(a);d=i.parse(a[0],{syntax:b,contextNode:d});b=f.composeList(b,c,a[1]);f.apply(d,b,c);return d.toString()},defaultSyntax:function(){return"html"},defaultProfile:function(){return"plain"},log:function(){f.console&&f.console.log&&f.console.log.apply(f.console,arguments)},setModuleLoader:function(b){a=b}}}(this); -if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports)exports=module.exports=emmet;exports.emmet=emmet}typeof define!=="undefined"&&define(emmet); -emmet.define("abbreviationParser",function(f,d){function h(){this.parent=null;this.children=[];this._attributes=[];this.abbreviation="";this.counter=1;this._name=null;this._text="";this.repeatCount=1;this.hasImplicitRepeat=!1;this._data={};this.padding=this.content=this.end=this.start=""}function i(a){return a.substring(1,a.length-1)}function b(a){for(var a=f("utils").trim(a),e=new h,c=e.addChild(),g,j=f("stringStream").create(a),a=1E3,n;!j.eol()&&--a>0;)switch(g=j.peek(),g){case "(":j.start=j.pos; -if(j.skipToPair("(",")"))g=b(i(j.current())),(n=j.match(/^\*(\d+)?/,!0))&&c._setRepeat(n[1]),d.each(g.children,function(a){c.addChild(a)});else throw'Invalid abbreviation: mo matching ")" found for character at '+j.pos;break;case ">":c=c.addChild();j.next();break;case "+":c=c.parent.addChild();j.next();break;case "^":g=c.parent||c;c=(g.parent||g).addChild();j.next();break;default:j.start=j.pos,j.eatWhile(function(a){if(a=="["||a=="{"){if(j.skipToPair(a,p[a]))return j.backUp(1),!0;throw'Invalid abbreviation: mo matching "'+ -p[a]+'" found for character at '+j.pos;}return a=="+"?(j.next(),a=j.eol()||~"+>^*".indexOf(j.peek()),j.backUp(1),a):a!="("&&o(a)}),c.setAbbreviation(j.current()),j.start=j.pos}if(a<1)throw"Endless loop detected";return e}function c(a){var a=f("utils").trim(a),b=[],a=f("stringStream").create(a);for(a.eatSpace();!a.eol();)if(a.start=a.pos,a.eatWhile(m)){var e=a.current(),c="";if(a.peek()=="="){a.next();a.start=a.pos;var g=a.peek();if(g=='"'||g=="'"){a.next();a:{for(var c=a,d=void 0;d=c.next();)if(d=== -g){c=!0;break a}c=!1}if(c)c=a.current(),c=c.substring(1,c.length-1);else throw"Invalid attribute value";}else if(a.eatWhile(/[^\s\]]/))c=a.current();else throw"Invalid attribute value";}b.push({name:e,value:c});a.eatSpace()}else break;return b}function a(a){for(var b=[],e={"#":"id",".":"class"},d=null,j=f("stringStream").create(a);!j.eol();)switch(j.peek()){case "#":case ".":if(d===null)d=j.pos;var h=e[j.peek()];j.next();j.start=j.pos;j.eatWhile(m);b.push({name:h,value:j.current()});break;case "[":if(d=== -null)d=j.pos;j.start=j.pos;if(!j.skipToPair("[","]"))throw"Invalid attribute set definition";b=b.concat(c(i(j.current())));break;default:j.next()}return!b.length?null:{element:a.substring(0,d),attributes:g(b)}}function g(a){var a=d.map(a,function(a){return d.clone(a)}),b={};return d.filter(a,function(a){if(!(a.name in b))return b[a.name]=a;var e=b[a.name];a.name.toLowerCase()=="class"?e.value+=(e.value.length?" ":"")+a.value:e.value=a.value;return!1})}function e(a){if(!~a.indexOf("{"))return null; -for(var b=f("stringStream").create(a);!b.eol();)switch(b.peek()){case "[":case "(":b.skipToPair(b.peek(),p[b.peek()]);break;case "{":return b.start=b.pos,b.skipToPair("{","}"),{element:a.substring(0,b.start),text:i(b.current())};default:b.next()}}function j(a){for(var b=a.children.length-1,e,c,g;b>=0;b--)if(c=a.children[b],c.isRepeating()){g=e=c.repeatCount;c.repeatCount=1;c.updateProperty("counter",1);for(c.updateProperty("maxCount",g);--e>0;)c.parent.addChild(c.clone(),b+1).updateProperty("counter", -e+1).updateProperty("maxCount",g)}d.each(a.children,j);return a}function n(a){for(var b=a.children.length-1;b>=0;b--){var e=a.children[b];e.isGroup()?e.replace(n(e).children):e.isEmpty()&&e.remove()}d.each(a.children,n);return a}function o(a){var b=a.charCodeAt(0);return b>64&&b<91||b>96&&b<123||b>47&&b<58||"#.*:$-_!@|%".indexOf(a)!=-1}var l=/^[\w\-\$\:@\!%]+\+?$/i,m=/[\w\-:\$@]/,p={"[":"]","(":")","{":"}"},r=Array.prototype.splice,q=[],u=[],s=[];h.prototype={addChild:function(a,b){a=a||new h;a.parent= -this;d.isUndefined(b)?this.children.push(a):this.children.splice(b,0,a);return a},clone:function(){var a=new h;d.each(["abbreviation","counter","_name","_text","repeatCount","hasImplicitRepeat","start","end","content","padding"],function(b){a[b]=this[b]},this);a._attributes=d.map(this._attributes,function(a){return d.clone(a)});a._data=d.clone(this._data);a.children=d.map(this.children,function(b){b=b.clone();b.parent=a;return b});return a},remove:function(){if(this.parent)this.parent.children=d.without(this.parent.children, -this);return this},replace:function(){var a=this.parent,b=d.indexOf(a.children,this),e=d.flatten(arguments);r.apply(a.children,[b,1].concat(e));d.each(e,function(b){b.parent=a})},updateProperty:function(a,b){this[a]=b;d.each(this.children,function(e){e.updateProperty(a,b)});return this},find:function(a){return this.findAll(a)[0]},findAll:function(a){if(!d.isFunction(a))var b=a.toLowerCase(),a=function(a){return a.name().toLowerCase()==b};var e=[];d.each(this.children,function(b){a(b)&&e.push(b);e= -e.concat(b.findAll(a))});return d.compact(e)},data:function(a,b){if(arguments.length==2&&(this._data[a]=b,a=="resource"&&f("elements").is(b,"snippet")&&(this.content=b.data,this._text)))this.content=f("abbreviationUtils").insertChildContent(b.data,this._text);return this._data[a]},name:function(){var a=this.matchedResource();return f("elements").is(a,"element")?a.name:this._name},attributeList:function(){var a=[],b=this.matchedResource();f("elements").is(b,"element")&&d.isArray(b.attributes)&&(a= -a.concat(b.attributes));return g(a.concat(this._attributes))},attribute:function(a,b){if(arguments.length==2){var e=d.indexOf(d.pluck(this._attributes,"name"),a.toLowerCase());~e?this._attributes[e].value=b:this._attributes.push({name:a,value:b})}return(d.find(this.attributeList(),function(b){return b.name==a})||{}).value},matchedResource:function(){return this.data("resource")},index:function(){return this.parent?d.indexOf(this.parent.children,this):-1},_setRepeat:function(a){a?this.repeatCount= -parseInt(a,10)||1:this.hasImplicitRepeat=!0},setAbbreviation:function(b){var c=this;this.abbreviation=b=(b||"").replace(/\*(\d+)?$/,function(a,b){c._setRepeat(b);return""});var g=e(b);if(g)b=g.element,this.content=this._text=g.text;if(g=a(b))b=g.element,this._attributes=g.attributes;if((this._name=b)&&!l.test(this._name))throw"Invalid abbreviation";},toString:function(){var a=f("utils"),b=this.start,e=this.end,c=this.content,g=this;d.each(s,function(a){b=a(b,g,"start");c=a(c,g,"content");e=a(e,g, -"end")});var j=d.map(this.children,function(a){return a.toString()}).join(""),c=f("abbreviationUtils").insertChildContent(c,j,{keepVariable:!1});return b+a.padString(c,this.padding)+e},hasEmptyChildren:function(){return!!d.find(this.children,function(a){return a.isEmpty()})},hasImplicitName:function(){return!this._name&&!this.isTextNode()},isGroup:function(){return!this.abbreviation},isEmpty:function(){return!this.abbreviation&&!this.children.length},isRepeating:function(){return this.repeatCount> -1||this.hasImplicitRepeat},isTextNode:function(){return!this.name()&&!this.attributeList().length},isElement:function(){return!this.isEmpty()&&!this.isTextNode()},deepestChild:function(){if(!this.children.length)return null;for(var a=this;a.children.length;)a=d.last(a.children);return a}};s.push(function(a,b){return f("utils").replaceCounter(a,b.counter,b.maxCount)});return{parse:function(a,e){var e=e||{},c=b(a);if(e.contextNode){c._name=e.contextNode.name;var g={};d.each(c._attributes,function(a){g[a.name]= -a});d.each(e.contextNode.attributes,function(a){a.name in g?g[a.name].value=a.value:(a=d.clone(a),c._attributes.push(a),g[a.name]=a)})}d.each(q,function(a){a(c,e)});c=n(j(c));d.each(u,function(a){a(c,e)});return c},AbbreviationNode:h,addPreprocessor:function(a){d.include(q,a)||q.push(a)},removeFilter:function(a){preprocessor=d.without(q,a)},addPostprocessor:function(a){d.include(u,a)||u.push(a)},removePostprocessor:function(a){u=d.without(u,a)},addOutputProcessor:function(a){d.include(s,a)||s.push(a)}, -removeOutputProcessor:function(a){s=d.without(s,a)},isAllowedChar:function(a){a=String(a);return o(a)||~">+^[](){}".indexOf(a)}}}); -emmet.exec(function(f,d){function h(i,b){var c=f("resources"),a=f("elements"),g=f("abbreviationParser");d.each(d.clone(i.children),function(e){var j=c.getMatchedResource(e,b);if(d.isString(j))e.data("resource",a.create("snippet",j));else if(a.is(j,"reference")){j=g.parse(j.data,{syntax:b});if(e.repeatCount>1){var f=j.findAll(function(a){return a.hasImplicitRepeat});d.each(f,function(a){a.repeatCount=e.repeatCount;a.hasImplicitRepeat=!1})}var i=j.deepestChild();i&&d.each(e.children,function(a){i.addChild(a)}); -d.each(j.children,function(a){d.each(e.attributeList(),function(b){a.attribute(b.name,b.value)})});e.replace(j.children)}else e.data("resource",j);h(e,b)})}f("abbreviationParser").addPreprocessor(function(d,b){var c=b.syntax||emmet.defaultSyntax();h(d,c)})}); -emmet.exec(function(f,d){function h(a){for(var b=f("range"),c=[],a=f("stringStream").create(a);!a.eol();){if(a.peek()=="\\")a.next();else if(a.start=a.pos,a.match(g,!0)){c.push(b.create(a.start,g));continue}a.next()}return c}function i(a,b){var c=f("utils"),g=h(a);g.reverse();d.each(g,function(g){a=c.replaceSubstring(a,b,g)});return a}function b(a){return h(a.content).length?!0:!!d.find(a.attributeList(),function(a){return!!h(a.value).length})}function c(a,c,g){var h=a.findAll(function(a){return b(a)}); -b(a)&&h.unshift(a);h.length?d.each(h,function(a){a.content=i(a.content,c);d.each(a._attributes,function(a){a.value=i(a.value,c)})}):(a=a.deepestChild()||a,a.content=g?c:f("abbreviationUtils").insertChildContent(a.content,c))}var a=f("abbreviationParser"),g="$#";a.addPreprocessor(function(a,b){if(b.pastedContent){var c=f("utils"),g=d.map(c.splitByLines(b.pastedContent,!0),c.trim);a.findAll(function(a){if(a.hasImplicitRepeat)return a.data("paste",g),a.repeatCount=g.length})}});a.addPostprocessor(function(a, -b){!a.findAll(function(a){var b=a.data("paste"),e="";d.isArray(b)?e=b[a.counter-1]:d.isFunction(b)?e=b(a.counter-1,a.content):b&&(e=b);e&&c(a,e,!!a.data("pasteOverwrites"));a.data("paste",null);return!!b}).length&&b.pastedContent&&c(a,b.pastedContent)})});emmet.exec(function(f,d){function h(i){var b=f("tagName");d.each(i.children,function(c){if(c.hasImplicitName()||c.data("forceNameResolving"))c._name=b.resolve(c.parent.name());h(c)});return i}f("abbreviationParser").addPostprocessor(h)}); -emmet.define("cssParser",function(f,d){function h(a){return typeof a!=="undefined"}function i(){return{"char":e.chnum,line:e.linenum}}function b(a,b,c){var g=e,c=c||{};j.push({charstart:h(c["char"])?c["char"]:g.chnum,charend:h(c.charend)?c.charend:g.chnum,linestart:h(c.line)?c.line:g.linenum,lineend:h(c.lineend)?c.lineend:g.linenum,value:a,type:b||a})}function c(a,b){var c=e,g=b||{},d=h(g["char"])?g["char"]:c.chnum,g=h(g.line)?g.line:c.linenum;return{name:"ParseError",message:a+" at line "+(g+1)+ -" char "+(d+1),walker:c,tokens:j}}function a(a){var c=e,g=c.ch,d=i(),j=a?a+g:g,g=c.nextChar();for(a&&(d["char"]-=a.length);o(g)||l(g);)j+=g,g=c.nextChar();b(j,"identifier",d)}function g(){var g=e.ch;if(g===" "||g==="\t"){for(var d=e.ch,j="",f=i();d===" "||d==="\t";)j+=d,d=e.nextChar();b(j,"white",f)}else{if(g==="/"){var d=e,g=f=d.ch,h,s=i();h=d.nextChar();if(h!=="*")s.charend=s["char"],s.lineend=s.line,j=b(g,g,s);else{for(;!(f==="*"&&h==="/");)g+=h,f=h,h=d.nextChar();g+=h;d.nextChar();b(g,"comment", -s)}return j}if(g==='"'||g==="'"){d=e;g=f=j=d.ch;s=i();for(j=d.nextChar();j!==f;){if(j==="\n")if(h=d.nextChar(),h==="\\")g+=j+h;else throw c("Unterminated string",s);else g+=j==="\\"?j+d.nextChar():j;j=d.nextChar()}g+=j;d.nextChar();b(g,"string",s)}else if(g==="("){d=e;j=d.ch;f=0;g=j;h=i();for(j=d.nextChar();j!==")"&&!f;){if(j==="(")f++;else if(j===")")f--;else if(j===!1)throw c("Unterminated brace",h);g+=j;j=d.nextChar()}g+=j;d.nextChar();b(g,"brace",h)}else{if(g==="-"||g==="."||l(g)){j=e;f=j.ch; -g=i();h=f;var s=h===".",v,f=j.nextChar();v=!l(f);if(s&&v)g.charend=g["char"],g.lineend=g.line,d=b(h,".",g);else if(h==="-"&&v)d=a("-");else{for(;f!==!1&&(l(f)||!s&&f===".");)f==="."&&(s=!0),h+=f,f=j.nextChar();b(h,"number",g)}return d}if(o(g))return a();if(n(g))return d=e,g=d.ch,j=i(),h=d.nextChar(),h==="="&&n(g,!0)?(g+=h,b(g,"match",j),d.nextChar(),f=void 0):(j.charend=j["char"]+1,j.lineend=j.line,b(g,g,j)),f;if(g==="\n")b("line"),e.nextChar();else throw c("Unrecognized character");}}}var e,j=[], -n,o,l;e={lines:null,total_lines:0,linenum:-1,line:"",ch:"",chnum:-1,init:function(a){var b=e;b.lines=a.replace(/\r\n/g,"\n").replace(/\r/g,"\n").split("\n");b.total_lines=b.lines.length;b.chnum=-1;b.linenum=-1;b.ch="";b.line="";b.nextLine();b.nextChar()},nextLine:function(){this.linenum+=1;this.line=this.total_lines<=this.linenum?!1:this.lines[this.linenum];if(this.chnum!==-1)this.chnum=0;return this.line},nextChar:function(){for(this.chnum+=1;this.line.charAt(this.chnum)==="";){if(this.nextLine()=== -!1)return this.ch=!1;this.chnum=-1;return this.ch="\n"}return this.ch=this.line.charAt(this.chnum)},peek:function(){return this.line.charAt(this.chnum+1)}};o=function(a){return a=="&"||a==="_"||a==="-"||a>="a"&&a<="z"||a>="A"&&a<="Z"};l=function(a){return a!==!1&&a>="0"&&a<="9"};n=function(){for(var a="{}[]()+*=.,;:>~|\\%$#@^!".split(""),b="*^|$~".split(""),c={},e={},g=0;g")):null:a.match("--")?g(b("comment","--\>")):a.match("DOCTYPE",!0,!0)?(a.eatWhile(/[\w\._\-]/),g(c(1))):null;else if(a.eat("?"))return a.eatWhile(/[\w\._\-]/),e.tokenize=b("meta","?>"),"meta";else{w=a.eat("/")?"closeTag":"openTag";a.eatSpace();for(v="";d=a.eat(/[^\s\u00a0=<>\"\'\/?]/);)v+=d;e.tokenize=h;return"tag"}else return d== -"&"?(a.eat("#")?a.eat("x")?a.eatWhile(/[a-fA-F\d]/)&&a.eat(";"):a.eatWhile(/[\d]/)&&a.eat(";"):a.eatWhile(/[\w\.\-:]/)&&a.eat(";"))?"atom":"error":(a.eatWhile(/[^&<]/),"text")}function h(a,b){var c=a.next();return c==">"||c=="/"&&a.eat(">")?(b.tokenize=d,w=c==">"?"endTag":"selfcloseTag","tag"):c=="="?(w="equals",null):/[\'\"]/.test(c)?(b.tokenize=i(c),b.tokenize(a,b)):(a.eatWhile(/[^\s\u00a0=<>\"\'\/?]/),"word")}function i(a){return function(b,c){for(;!b.eol();)if(b.next()==a){c.tokenize=h;break}return"string"}} -function b(a,b){return function(c,e){for(;!c.eol();){if(c.match(b)){e.tokenize=d;break}c.next()}return a}}function c(a){return function(b,e){for(var g;(g=b.next())!=null;)if(g=="<")return e.tokenize=c(a+1),e.tokenize(b,e);else if(g==">")if(a==1){e.tokenize=d;break}else return e.tokenize=c(a-1),e.tokenize(b,e);return"meta"}}function a(){for(var a=arguments.length-1;a>=0;a--)k.cc.push(arguments[a])}function g(){a.apply(null,arguments);return!0}function e(){if(k.context)k.context=k.context.prev}function j(a){if(a== -"openTag")return k.tagName=v,g(m,n(k.startOfLine));else if(a=="closeTag")return a=!1,k.context?k.context.tagName!=v&&(s.implicitlyClosed.hasOwnProperty(k.context.tagName.toLowerCase())&&e(),a=!k.context||k.context.tagName!=v):a=!0,a&&(t="error"),g(o(a));return g()}function n(a){return function(b){if(b=="selfcloseTag"||b=="endTag"&&s.autoSelfClosers.hasOwnProperty(k.tagName.toLowerCase()))return l(k.tagName.toLowerCase()),g();if(b=="endTag"){l(k.tagName.toLowerCase());var b=k.tagName,c=s.doNotIndent.hasOwnProperty(b)|| -k.context&&k.context.noIndent;k.context={prev:k.context,tagName:b,indent:k.indented,startOfLine:a,noIndent:c}}return g()}}function o(a){return function(b){a&&(t="error");if(b=="endTag")return e(),g();t="error";return g(arguments.callee)}}function l(a){for(var b;;){if(!k.context)break;b=k.context.tagName.toLowerCase();if(!s.contextGrabbers.hasOwnProperty(b)||!s.contextGrabbers[b].hasOwnProperty(a))break;e()}}function m(b){if(b=="word")return t="attribute",g(p,m);if(b=="endTag"||b=="selfcloseTag")return a(); -t="error";return g(m)}function p(b){if(b=="equals")return g(r,m);s.allowMissing||(t="error");return b=="endTag"||b=="selfcloseTag"?a():g()}function r(b){if(b=="string")return g(q);if(b=="word"&&s.allowUnquoted)return t="string",g();t="error";return b=="endTag"||b=="selfCloseTag"?a():g()}function q(b){return b=="string"?g(q):a()}function u(a,b){if(a.sol())b.startOfLine=!0,b.indented=0;if(a.eatSpace())return null;t=w=v=null;var c=b.tokenize(a,b);b.type=w;if((c||w)&&c!="comment")for(k=b;;)if((b.cc.pop()|| -j)(w||c))break;b.startOfLine=!1;return t||c}var s={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!0,allowMissing:!0},v=null,w=null,k=null,t;return{parse:function(a,b){for(var b=b||0,c={tokenize:d,cc:[],indented:0,startOfLine:!0,tagName:null,context:null},e=f("stringStream").create(a),g=[];!e.eol();)g.push({type:u(e,c),start:e.start+b,end:e.pos+b}),e.start=e.pos;return g}}}); -emmet.define("string-score",function(){return{score:function(f,d,h){if(f==d)return 1;if(d=="")return 0;for(var i=0,b=d.length,c=f.length,a,g=1,e=0,j,n,o,l;e-1?l:Math.max(j,n);if(n===-1)if(h){g+=1-h;continue}else return 0;else j=0.1;f[n]===o&&(j+=0.1);n===0?(j+=0.6,e===0&&(a=1)):f.charAt(n-1)===" "&&(j+=0.8);f=f.substring(n+1,c);i+=j}f=i/b;b=(f*(b/c)+f)/2;b/=g;a&&b+0.15<1&&(b+=0.15);return b}}}); -emmet.define("utils",function(f,d){function h(b){this._data=[];this.length=0;b&&this.append(b)}var i="${0}";h.prototype={append:function(b){this._data.push(b);this.length+=b.length},toString:function(){return this._data.join("")},valueOf:function(){return this.toString()}};return{reTag:/<\/?[\w:\-]+(?:\s+[\w\-:]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*\s*(\/?)>$/,endsWithTag:function(b){return this.reTag.test(b)},isNumeric:function(b){typeof b=="string"&&(b=b.charCodeAt(0));return b&&b>47&& -b<58},trim:function(b){return(b||"").replace(/^\s+|\s+$/g,"")},getNewline:function(){var b=f("resources");if(!b)return"\n";b=b.getVariable("newline");return d.isString(b)?b:"\n"},setNewline:function(b){var c=f("resources");c.setVariable("newline",b);c.setVariable("nl",b)},splitByLines:function(b,c){var a=this.getNewline(),a=(b||"").replace(/\r\n/g,"\n").replace(/\n\r/g,"\n").replace(/\r/g,"\n").replace(/\n/g,a).split(a);c&&(a=d.filter(a,function(a){return a.length&&!!this.trim(a)},this));return a}, -normalizeNewline:function(b){return this.splitByLines(b).join(this.getNewline())},repeatString:function(b,c){for(var a=[],g=0;gg++;)a+="0";return a+b},unindentString:function(b,c){for(var a=this.splitByLines(b),g=0;gb.length?b:b.substring(0,a)+c+b.substring(g)},narrowToNonSpace:function(b,c,a){c=f("range").create(c,a);for(a=/[\s\n\r\u00a0]/;c.startc.start;)if(c.end--,!a.test(b.charAt(c.end))){c.end++;break}return c},findNewlineBounds:function(b,c){for(var a=b.length,g=0,e=a-1,d=c-1;d>0;d--){var h= -b.charAt(d);if(h=="\n"||h=="\r"){g=d+1;break}}for(d=c;d":return b>c;case "gte":case ">=":return b>=c}}function i(b,c){d.isObject(b)&&"start"in b?(this.start=Math.min(b.start,b.end),this.end=Math.max(b.start,b.end)):d.isArray(b)?(this.start=b[0],this.end=b[1]):(c=d.isString(c)?c.length:+c,this.start=b,this.end=b+c)}i.prototype={length:function(){return Math.abs(this.end-this.start)}, -equal:function(b){return this.cmp(b,"eq","eq")},shift:function(b){this.start+=b;this.end+=b;return this},overlap:function(b){return b.start<=this.end&&b.end>=this.start},intersection:function(b){if(this.overlap(b)){var c=Math.max(b.start,this.start);return new i(c,Math.min(b.end,this.end)-c)}return null},union:function(b){if(this.overlap(b)){var c=Math.min(b.start,this.start);return new i(c,Math.max(b.end,this.end)-c)}return null},inside:function(b){return this.cmp(b,"lte","gt")},contains:function(b){return this.cmp(b, -"lt","gt")},include:function(){return this.cmp(loc,"lte","gte")},cmp:function(b,c,a){var g;b instanceof i?(g=b.start,b=b.end):g=b;return h(this.start,g,c||"<=")&&h(this.end,b,a||">")},substring:function(b){return this.length()>0?b.substring(this.start,this.end):""},clone:function(){return new i(this.start,this.length())},toArray:function(){return[this.start,this.end]},toString:function(){return"{"+this.start+", "+this.length()+"}"}};return{create:function(b,c){if(d.isUndefined(b)||b===null)return null; -if(b instanceof i)return b;if(d.isObject(b)&&"start"in b&&"end"in b)c=b.end-b.start,b=b.start;return new i(b,c)},create2:function(b,c){d.isNumber(b)&&d.isNumber(c)&&(c-=b);return this.create(b,c)}}}); -emmet.define("handlerList",function(f,d){function h(){this._list=[]}h.prototype={add:function(f,b){this._list.push(d.extend({order:0},b||{},{fn:f}))},remove:function(f){this._list=d.without(this._list,d.find(this._list,function(b){return b.fn===f}))},list:function(){return d.sortBy(this._list,"order").reverse()},listFn:function(){return d.pluck(this.list(),"fn")},exec:function(f,b){var b=b||[],c=null;d.find(this.list(),function(a){c=a.fn.apply(a,b);if(c!==f)return!0});return c}};return{create:function(){return new h}}}); -emmet.define("tokenIterator",function(f,d){function h(d){this.tokens=d;this._position=0;this.reset()}h.prototype={next:function(){if(this.hasNext()){var d=this.tokens[++this._i];this._position=d.start;return d}return null},current:function(){return this.tokens[this._i]},position:function(){return this._position},hasNext:function(){return this._i=this.string.length},sol:function(){return this.pos==0},peek:function(){return this.string.charAt(this.pos)},next:function(){if(this.posf},eatSpace:function(){for(var d=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>d},skipToEnd:function(){this.pos=this.string.length},skipTo:function(d){d=this.string.indexOf(d,this.pos);if(d>-1)return this.pos=d,!0},skipToPair:function(d,f){for(var i=0,b,c=this.pos,a=this.string.length;c/,c={},a={},g=f("handlerList").create();return{setVocabulary:function(b,g){i={};g== -"system"?c=b:a=b},getVocabulary:function(b){return b=="system"?c:a},getMatchedResource:function(a,b){return g.exec(null,d.toArray(arguments))||this.findSnippet(b,a.name())},getVariable:function(a){return(this.getSection("variables")||{})[a]},setVariable:function(a,b){var c=this.getVocabulary("user")||{};if(!("variables"in c))c.variables={};c.variables[a]=b;this.setVocabulary(c,"user")},hasSyntax:function(a){return a in this.getVocabulary("user")||a in this.getVocabulary("system")},addResolver:function(a, -b){g.add(a,b)},removeResolver:function(a){g.remove(a)},getSection:function(b){if(!b)return null;b in i||(i[b]=f("utils").deepMerge({},c[b],a[b]));for(var g=i[b],h=d.rest(arguments),o;g&&(o=h.shift());)if(o in g)g=g[o];else return null;return g},findItem:function(a,b){for(var c=this.getSection(a);c;){if(b in c)return c[b];c=this.getSection(c["extends"])}},findSnippet:function(a,b,c){if(!a||!b)return null;var c=c||[],g=[b];~b.indexOf("-")&&g.push(b.replace(/\-/g,":"));var f=this.getSection(a),i=null; -d.find(["snippets","abbreviations"],function(b){var c=this.getSection(a,b);if(c)return d.find(g,function(a){if(c[a])return i=h(a,c[a],b)})},this);c.push(a);return!i&&f["extends"]&&!d.include(c,f["extends"])?this.findSnippet(f["extends"],b,c):i},fuzzyFindSnippet:function(a,b,c){var c=c||0.3,a=this.getAllSnippets(a),g=f("string-score"),b=b.replace(/:$/,"").replace(/:/g,"-"),h=d.map(a,function(a,c){return{key:c,score:g.score(a.nk,b,0.1)}});if((h=d.last(d.sortBy(h,"score")))&&h.score>=c)return a[h.key].parsedValue}, -getAllSnippets:function(a){var b="all-"+a;if(!i[b]){var c=[],g=[];do{var f=this.getSection(a);if(!f)break;d.each(["snippets","abbreviations"],function(a){var b={};d.each(f[a]||null,function(c,g){b[g]={nk:g.replace(/:$/,"").replace(/:/g,"-"),value:c,parsedValue:h(g,c,a),type:a}});c.push(b)});g.push(a);a=f["extends"]}while(a&&!d.include(g,a));i[b]=d.extend.apply(d,c.reverse())}return i[b]}}}); -emmet.define("actions",function(f,d){function h(b){return f("utils").trim(b.charAt(0).toUpperCase()+b.substring(1).replace(/_[a-z]/g,function(b){return" "+b.charAt(1).toUpperCase()}))}var i={};return{add:function(b,c,a){b=b.toLowerCase();a=a||{};if(!a.label)a.label=h(b);i[b]={name:b,fn:c,options:a}},get:function(b){return i[b.toLowerCase()]},run:function(b,c){d.isArray(c)||(c=d.rest(arguments));var a=this.get(b);return a?a.fn.apply(emmet,c):(emmet.log('Action "%s" is not defined',b),!1)},getAll:function(){return i}, -getList:function(){return d.values(this.getAll())},getMenu:function(b){var c=[],b=b||[];d.each(this.getList(),function(a){if(!a.options.hidden&&!d.include(b,a.name)){var g=h(a.name),e=c;if(a.options.label)for(var j=a.options.label.split("/"),g=j.pop(),f,i;f=j.shift();)i=d.find(e,function(a){return a.type=="submenu"&&a.name==f}),i||(i={name:f,type:"submenu",items:[]},e.push(i)),e=i.items;e.push({type:"action",name:a.name,label:g})}});return c},getActionNameForMenuTitle:function(b,c){var a=null;d.find(c|| -this.getMenu(),function(c){if(c.type=="action"){if(c.label==b||c.name==b)return a=c.name}else return a=this.getActionNameForMenuTitle(b,c.items)},this);return a||null}}}); -emmet.define("profile",function(f,d){function h(a){d.extend(this,g,a)}function i(a,b){switch(String(b||"").toLowerCase()){case "lower":return a.toLowerCase();case "upper":return a.toUpperCase()}return a}function b(b,c){return a[b.toLowerCase()]=new h(c)}function c(){b("xhtml");b("html",{self_closing_tag:!1});b("xml",{self_closing_tag:!0,tag_nl:!0});b("plain",{tag_nl:!1,indent:!1,place_cursor:!1});b("line",{tag_nl:!1,indent:!1,extraFilters:"s"})}var a={},g={tag_case:"asis",attr_case:"asis",attr_quotes:"double", -tag_nl:"decide",tag_nl_leaf:!1,place_cursor:!0,indent:!0,inline_break:3,self_closing_tag:"xhtml",filters:"",extraFilters:""};h.prototype={tagName:function(a){return i(a,this.tag_case)},attributeName:function(a){return i(a,this.attr_case)},attributeQuote:function(){return this.attr_quotes=="single"?"'":'"'},selfClosing:function(){return this.self_closing_tag=="xhtml"?" /":this.self_closing_tag===!0?"/":""},cursor:function(){return this.place_cursor?f("utils").getCaretPlaceholder():""}};c();return{create:function(a, -c){return arguments.length==2?b(a,c):new h(d.defaults(a||{},g))},get:function(b,c){if(!b&&c){var g=f("resources").findItem(c,"profile");g&&(b=g)}return!b?a.plain:b instanceof h?b:d.isString(b)&&b.toLowerCase()in a?a[b.toLowerCase()]:this.create(b)},remove:function(b){b=(b||"").toLowerCase();b in a&&delete a[b]},reset:function(){a={};c()},stringCase:i}}); -emmet.define("editorUtils",function(f){return{isInsideTag:function(d,f){for(var i=/^<\/?\w[\w\:\-]*.*?>/,b=f;b>-1;){if(d.charAt(b)=="<")break;b--}return b!=-1&&(i=i.exec(d.substring(b)))&&f>b&&f"&&g.endsWithTag(d.substring(0,h+1)))){i=h+1;break}}return i!=-1&&!a&&!c&&!b?d.substring(i).replace(/^[\*\+\>\^]+/,""):""},getImageSize:function(d){var f=function(){return d.charCodeAt(i++)};if(d.substr(0,8)==="\u0089PNG\r\n\u001a\n"){var i=d.indexOf("IHDR")+4;return{width:f()<<24|f()<<16|f()<<8|f(),height:f()<<24|f()<<16|f()<<8|f()}}else if(d.substr(0,4)==="GIF8")return i=6,{width:f()|f()<<8,height:f()|f()<<8};else if(d.substr(0,2)==="\u00ff\u00d8")for(var i=2,b=d.length;i< -b;){if(f()!=255)break;var c=f();if(c==218)break;var a=f()<<8|f();if(c>=192&&c<=207&&!(c&4)&&!(c&8))return i+=1,{height:f()<<8|f(),width:f()<<8|f()};else i+=a-2}},captureContext:function(d){if(String(d.getSyntax())in{html:1,xml:1,xsl:1}){var h=String(d.getContent()),i=f("htmlMatcher").find(h,d.getCaretPos());if(i&&i.type=="tag"){for(var d=/([\w\-:]+)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|([^>\s]+)))?/g,i=i.open,h=i.range.substring(h).replace(/^<[\w\-\:]+/,""),i={name:i.name,attributes:[]}, -b;b=d.exec(h);)i.attributes.push({name:b[1],value:b[2]});return i}}return null},findExpressionBounds:function(d,h){for(var i=String(d.getContent()),b=i.length,c=d.getCaretPos()-1,a=c+1;c>=0&&h(i.charAt(c),c,i);)c--;for(;ac)return f("range").create([++c,a])},compoundUpdate:function(d,f){if(f){var i=d.getSelectionRange();d.replaceContent(f.data,f.start,f.end,!0);d.createSelection(f.caret,f.caret+i.end-i.start);return!0}return!1},detectSyntax:function(d,h){var i=h||"html"; -f("resources").hasSyntax(i)||(i="html");if(i=="html"&&(this.isStyle(d)||this.isInlineCSS(d)))i="css";return i},detectProfile:function(d){var h=d.getSyntax(),i=f("resources").findItem(h,"profile");if(i)return i;switch(h){case "xml":case "xsl":return"xml";case "css":if(this.isInlineCSS(d))return"line";break;case "html":return(i=f("resources").getVariable("profile"))||(i=this.isXHTML(d)?"xhtml":"html"),i}return"xhtml"},isXHTML:function(d){return d.getContent().search(/]+XHTML/i)!=-1},isStyle:function(d){var h= -String(d.getContent()),d=d.getCaretPos();return(h=f("htmlMatcher").tag(h,d))&&h.open.name.toLowerCase()=="style"&&h.innerRange.cmp(d,"lte","gte")},isInlineCSS:function(d){var h=String(d.getContent()),d=d.getCaretPos();return(h=f("xmlEditTree").parseFromPosition(h,d,!0))?(h=h.itemFromPosition(d,!0))&&h.name().toLowerCase()=="style"&&h.valueRange(!0).cmp(d,"lte","gte"):!1}}}); -emmet.define("abbreviationUtils",function(f,d){return{isSnippet:function(d){return f("elements").is(d.matchedResource(),"snippet")},isUnary:function(d){var i=d.matchedResource();return d.children.length||this.isSnippet(d)?!1:i&&i.is_empty||f("tagName").isEmptyElement(d.name())},isInline:function(d){return d.isTextNode()||!d.name()||f("tagName").isInlineLevel(d.name())},isBlock:function(d){return this.isSnippet(d)||!this.isInline(d)},isSnippet:function(d){return f("elements").is(d.matchedResource(), -"snippet")},hasTagsInContent:function(d){return f("utils").matchesTag(d.content)},hasBlockChildren:function(f){return this.hasTagsInContent(f)&&this.isBlock(f)||d.any(f.children,function(d){return this.isBlock(d)},this)},insertChildContent:function(h,i,b){var b=d.extend({keepVariable:!0,appendIfNoChild:!0},b||{}),c=!1,a=f("utils"),h=a.replaceVariables(h,function(g,e,d){var f=g;e=="child"&&(f=a.padString(i,a.getLinePaddingFromPosition(h,d.start)),c=!0,b.keepVariable&&(f+=g));return f});!c&&b.appendIfNoChild&& -(h+=i);return h}}}); -emmet.define("base64",function(){return{encode:function(f){for(var d=[],h,i,b,c,a,g,e=0,j=f.length;e>2,h=(h&3)<<4|i>>4,i=(i&15)<<2|b>>6,b&=63,isNaN(a)?i=b=64:isNaN(g)&&(b=64),d.push("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(c)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(h)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(i)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(b)); -return d.join("")},decode:function(f){var d,h,i,b,c,a=0,g=0,e=[],j=f.length;if(!f)return f;f+="";do d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(f.charAt(a++)),h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(f.charAt(a++)),b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(f.charAt(a++)),c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(f.charAt(a++)),i=d<<18|h<<12|b<<6|c,d=i>>16& -255,h=i>>8&255,i&=255,b==64?e[g++]=String.fromCharCode(d):c==64?e[g++]=String.fromCharCode(d,h):e[g++]=String.fromCharCode(d,h,i);while(a")){l=f+3;break}if(f=b.matches(l))if(f.type=="open"&&!f.selfClose)c.push(f.name);else if(f.type=="close"){if(!c.length)return f.name==a.name?f:null;if(d.last(c)==f.name)c.pop();else{for(var p=!1;c.length&&!p;)c.pop()==f.name&&(p=!0);if(!c.length&&!p)return f.name==a.name?f:null}}}}var c=/^<([\w\:\-]+)((?:\s+[\w\-:]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/, -a=/^<\/([\w\:\-]+)[^>]*>/;return{find:function(a,c){for(var j=f("range"),n=h(a),o=null,l=null,m=c;m>=0;m--)if(o=n.open(m))if(o.selfClose){if(o.range.cmp(c,"lt","gt"))break}else{if(l=b(o,n)){if(j.create2(o.range.start,l.range.end).contains(c))break}else if(o.range.contains(c))break;o=null}else if(i(a,m,"--\>"))for(var p=m-1;p>=0;p--)if(i(a,p,"--\>"))break;else{if(i(a,p,"<\!--")){m=p;break}}else if(i(a,m,"<\!--")){p=m+4;for(o=a.length;p")){p+=3;break}o={range:f("range").create(m, -d.isNumber(p)?p-m:p[0]),type:"comment"};break}if(o)return p=m=null,l?(m=j.create2(o.range.start,l.range.end),p=j.create2(o.range.end,l.range.start)):m=p=j.create2(o.range.start,o.range.end),o.type=="comment"&&(j=m.substring(a),p.start+=j.length-j.replace(/^<\!--\s*/,"").length,p.end-=j.length-j.replace(/\s*--\>$/,"").length),{open:o,close:l,type:o.type=="comment"?"comment":"tag",innerRange:p,innerContent:function(){return this.innerRange.substring(a)},outerRange:m,outerContent:function(){return this.outerRange.substring(a)}, -range:!p.length()||!p.cmp(c,"lte","gte")?m:p,content:function(){return this.range.substring(a)},source:a}},tag:function(a,b){var c=this.find(a,b);if(c&&c.type=="tag")return c}}}); -emmet.define("tabStops",function(f,d){var h=100,i=0,b={replaceCarets:!1,escape:function(b){return"\\"+b},tabstop:function(b){return b.token},variable:function(b){return b.token}};f("abbreviationParser").addOutputProcessor(function(b,a){var g=0,e=f("tabStops"),d=f("utils"),h={tabstop:function(a){var b=parseInt(a.group);if(b==0)return"${0}";b>g&&(g=b);return a.placeholder?(b+=i,a=e.processText(a.placeholder,h),"${"+b+":"+a+"}"):"${"+(b+i)+"}"}},b=e.processText(b,h),b=d.replaceVariables(b,e.variablesResolver(a)); -i+=g+1;return b});return{extract:function(c,a){var g=f("utils"),e={carets:""},j=[],a=d.extend({},b,a,{tabstop:function(a){var b=a.token,c="";if(a.placeholder=="cursor")j.push({start:a.start,end:a.start+b.length,group:"carets",value:""});else{if("placeholder"in a)e[a.group]=a.placeholder;a.group in e&&(c=e[a.group]);j.push({start:a.start,end:a.start+b.length,group:a.group,value:c})}return b}});a.replaceCarets&&(c=c.replace(RegExp(g.escapeForRegexp(g.getCaretPlaceholder()),"g"),"${0:cursor}"));var c= -this.processText(c,a),h=g.stringBuilder(),i=0,g=d.map(j,function(a){h.append(c.substring(i,a.start));var b=h.length,g=e[a.group]||"";h.append(g);i=a.end;return{group:a.group,start:b,end:b+g.length}});h.append(c.substring(i));return{text:h.toString(),tabstops:d.sortBy(g,"start")}},processText:function(c,a){for(var a=d.extend({},b,a),g=f("utils").stringBuilder(),e=f("stringStream").create(c),j,h;j=e.next();)if(j=="\\"&&!e.eol())g.append(a.escape(e.next()));else{h=j;if(j=="$")if(e.start=e.pos-1,e.match(/^[0-9]+/))h= -a.tabstop({start:g.length,group:e.current().substr(1),token:e.current()});else if(j=e.match(/^\{([a-z_\-][\w\-]*)\}/))h=a.variable({start:g.length,name:j[1],token:e.current()});else if(j=e.match(/^\{([0-9]+)(:.+?)?\}/,!1)){e.skipToPair("{","}");h={start:g.length,group:j[1],token:e.current()};if(j=h.token.substring(h.group.length+2,h.token.length-1))h.placeholder=j.substr(1);h=a.tabstop(h)}g.append(h)}return g.toString()},upgrade:function(b,a){var g=0,e={tabstop:function(b){var c=parseInt(b.group); -c>g&&(g=c);return b.placeholder?"${"+(c+a)+":"+b.placeholder+"}":"${"+(c+a)+"}"}};d.each(["start","end","content"],function(a){b[a]=this.processText(b[a],e)},this);return g},variablesResolver:function(b){var a={},g=f("resources");return function(e,j){if(j=="child")return e;if(j=="cursor")return f("utils").getCaretPlaceholder();var i=b.attribute(j);if(!d.isUndefined(i)&&i!==e)return i;if(i=g.getVariable(j))return i;a[j]||(a[j]=h++);return"${"+a[j]+":"+j+"}"}},resetTabstopIndex:function(){i=0;h=100}}}); -emmet.define("preferences",function(f,d){var h={},i={},b=null,c=null;return{define:function(a,b,c){var f=a;d.isString(a)&&(f={},f[a]={value:b,description:c});d.each(f,function(a,b){i[b]=d.isObject(a)&&"value"in a&&d.keys(a).length<3?a:{value:a}})},set:function(a,b){var c=a;d.isString(a)&&(c={},c[a]=b);d.each(c,function(a,b){if(!(b in i))throw'Property "'+b+'" is not defined. You should define it first with `define` method of current module';if(a!==i[b].value){switch(typeof i[b].value){case "boolean":var c= -a;d.isString(c)?(c=c.toLowerCase(),a=c=="yes"||c=="true"||c=="1"):a=!!c;break;case "number":a=parseInt(a+"",10)||0;break;default:a+=""}h[b]=a}else b in h&&delete h[b]})},get:function(a){if(a in h)return h[a];if(a in i)return i[a].value},getArray:function(a){a=this.get(a);d.isUndefined(a)||(a=d.map(a.split(","),f("utils").trim),a.length||(a=null));return a},getDict:function(a){var b={};d.each(this.getArray(a),function(a){a=a.split(":");b[a[0]]=a[1]});return b},description:function(a){return a in i? -i[a].description:void 0},remove:function(a){d.isArray(a)||(a=[a]);d.each(a,function(a){a in h&&delete h[a];a in i&&delete i[a]})},list:function(){return d.map(d.keys(i).sort(),function(a){return{name:a,value:this.get(a),type:typeof i[a].value,description:i[a].description}},this)},load:function(a){d.each(a,function(a,b){this.set(b,a)},this)},exportModified:function(){return d.clone(h)},reset:function(){h={}},_startTest:function(){b=i;c=h;i={};h={}},_stopTest:function(){i=b;h=c}}}); -emmet.define("filters",function(f,d){function h(b){return!b?[]:d.isString(b)?b.split(/[\|,]/g):b}var i={};return{add:function(b,c){i[b]=c},apply:function(b,c,a){var g=f("utils"),a=f("profile").get(a);d.each(h(c),function(c){(c=g.trim(c.toLowerCase()))&&c in i&&(b=i[c](b,a))});return b},composeList:function(b,c,a){c=f("profile").get(c);b=h(c.filters||f("resources").findItem(b,"filters")||"html");c.extraFilters&&(b=b.concat(h(c.extraFilters)));a&&(b=b.concat(h(a)));if(!b||!b.length)b=h("html");return b}, -extractFromAbbreviation:function(b){var c="",b=b.replace(/\|([\w\|\-]+)$/,function(a,b){c=b;return""});return[b,h(c)]}}}); -emmet.define("elements",function(f,d){function h(a){return{data:a}}var i={},b=/([\w\-]+)\s*=\s*(['"])(.*?)\2/g,c={add:function(a,b){var c=this;i[a]=function(){var d=b.apply(c,arguments);if(d)d.type=a;return d}},get:function(a){return i[a]},create:function(a){var b=[].slice.call(arguments,1),c=this.get(a);return c?c.apply(this,b):null},is:function(a,b){return a&&a.type===b}};c.add("element",function(a,c,e){var f={name:a,is_empty:!!e};if(c)if(f.attributes=[],d.isArray(c))f.attributes=c;else if(d.isString(c))for(;a= -b.exec(c);)f.attributes.push({name:a[1],value:a[3]});else d.each(c,function(a,b){f.attributes.push({name:b,value:a})});return f});c.add("snippet",h);c.add("reference",h);c.add("empty",function(){return{}});return c}); -emmet.define("editTree",function(f,d,h){function i(a,b){this.options=d.extend({offset:0},b);this.source=a;this._children=[];this._positions={name:0};this.initialize.apply(this,arguments)}function b(a,b,c){this.parent=a;this._name=b.value;this._value=c?c.value:"";this._positions={name:b.start,value:c?c.start:-1};this.initialize.apply(this,arguments)}var c=f("range").create;i.extend=h.extend;i.prototype={initialize:function(){},_updateSource:function(a,b,e){var j=c(b,d.isUndefined(e)?0:e-b),h=a.length- -j.length(),i=function(a){d.each(a,function(b,c){b>=j.end&&(a[c]+=h)})};i(this._positions);d.each(this.list(),function(a){i(a._positions)});this.source=f("utils").replaceSubstring(this.source,a,j)},add:function(a,c){var d=new b(a,c);this._children.push(d);return d},get:function(a){return d.isNumber(a)?this.list()[a]:d.isString(a)?d.find(this.list(),function(b){return b.name()===a}):a},getAll:function(a){d.isArray(a)||(a=[a]);var b=[],c=[];d.each(a,function(a){d.isString(a)?b.push(a):d.isNumber(a)&& -c.push(a)});return d.filter(this.list(),function(a,f){return d.include(c,f)||d.include(b,a.name())})},value:function(a,b,c){var f=this.get(a);if(f)return f.value(b);if(!d.isUndefined(b))return this.add(a,b,c)},values:function(a){return d.map(this.getAll(a),function(a){return a.value()})},remove:function(a){if(a=this.get(a))this._updateSource("",a.fullRange()),this._children=d.without(this._children,a)},list:function(){return this._children},indexOf:function(a){return d.indexOf(this.list(),this.get(a))}, -name:function(a){if(!d.isUndefined(a)&&this._name!==(a=String(a)))this._updateSource(a,this._positions.name,this._positions.name+this._name.length),this._name=a;return this._name},nameRange:function(a){return c(this._positions.name+(a?this.options.offset:0),this.name())},range:function(a){return c(a?this.options.offset:0,this.toString())},itemFromPosition:function(a,b){return d.find(this.list(),function(c){return c.range(b).inside(a)})},toString:function(){return this.source}};b.extend=h.extend;b.prototype= -{initialize:function(){},_pos:function(a,b){return a+(b?this.parent.options.offset:0)},value:function(a){if(!d.isUndefined(a)&&this._value!==(a=String(a)))this.parent._updateSource(a,this.valueRange()),this._value=a;return this._value},name:function(a){if(!d.isUndefined(a)&&this._name!==(a=String(a)))this.parent._updateSource(a,this.nameRange()),this._name=a;return this._name},namePosition:function(a){return this._pos(this._positions.name,a)},valuePosition:function(a){return this._pos(this._positions.value, -a)},range:function(a){return c(this.namePosition(a),this.toString())},fullRange:function(a){return this.range(a)},nameRange:function(a){return c(this.namePosition(a),this.name())},valueRange:function(a){return c(this.valuePosition(a),this.value())},toString:function(){return this.name()+this.value()},valueOf:function(){return this.toString()}};return{EditContainer:i,EditElement:b,createToken:function(a,b,c){a={start:a||0,value:b||"",type:c};a.end=a.start+a.value.length;return a}}}); -emmet.define("cssEditTree",function(f,d){function h(a,b){return f("range").create(a,b)}function i(a,b){var b=b||g|e,c=["white","line"];if((b&e)==e)for(;a.length&&d.include(c,d.last(a).type);)a.pop();if((b&g)==g)for(;a.length&&d.include(c,a[0].type);)a.shift();return a}function b(a){var b=["white","line",":"],c=[],f,j;a.nextUntil(function(){return!d.include(b,this.itemNext().type)});for(j=a.current().end;f=a.next();){if(f.type=="}"||f.type==";")return i(c,g|(f.type=="}"?e:0)),c.length?(j=c[0].start, -a=d.last(c).end):a=j,h(j,a-j);c.push(f)}if(c.length)return h(c[0].start,d.last(c).end-c[0].start)}function c(a){var b=f("stringStream").create(a),c=[],g=/[\s\u00a0,]/,e=function(){b.next();c.push(h(b.start,b.current()));b.start=b.pos};b.eatSpace();for(b.start=b.pos;a=b.next();)if(a=='"'||a=="'"){b.next();if(!b.skipTo(a))break;e()}else if(a=="("){b.backUp(1);if(!b.skipToPair("(",")"))break;b.backUp(1);e()}else if(g.test(a))c.push(h(b.start,b.current().length-1)),b.eatWhile(g),b.start=b.pos;e();return d.chain(c).filter(function(a){return!!a.length()}).uniq(!1, -function(a){return a.toString()}).value()}var a={styleBefore:"\n\t",styleSeparator:": ",offset:0},g=1,e=2,j=f("editTree").EditContainer.extend({initialize:function(c){d.defaults(this.options,a);var g=f("editTree"),e=f("tokenIterator").create(f("cssParser").parse(c)),j,r=[],q;for(j=e.position();q=e.next();){if(q.type=="{")break;r.push(q)}i(r);r.length?(j=r[0].start,r=d.last(r).end):r=j;j=h(j,r-j);this._positions.name=j.start;this._name=j.substring(c);if(!e.current()||e.current().type!="{")throw"Invalid CSS rule"; -for(this._positions.contentStart=e.position()+1;j=e.next();){if(r=j.type=="identifier")a:{r=e.tokens;q=e._i+1;for(var u=r.length;q1)g.styleBefore="\n"+d.last(e);g.styleSeparator=b.substring(g.nameRange().end,g.valuePosition());g.styleBefore=d.last(g.styleBefore.split("*/"));g.styleSeparator=g.styleSeparator.replace(/\/\*.*?\*\//g,"");a=g.range().end})},add:function(a,b,c){var g=this.list(),e=this._positions.contentStart,j=d.pick(this.options,"styleBefore", -"styleSeparator"),h=f("editTree");if(d.isUndefined(c))c=g.length;var i=g[c];if(i)e=i.fullRange().start;else if(i=g[c-1])i.end(";"),e=i.range().end;i&&(j=d.pick(i,"styleBefore","styleSeparator"));a=h.createToken(e+j.styleBefore.length,a);b=h.createToken(a.end+j.styleSeparator.length,b);h=new n(this,a,b,h.createToken(b.end,";"));d.extend(h,j);this._updateSource(h.styleBefore+h.toString(),e);this._children.splice(c,0,h);return h}}),n=f("editTree").EditElement.extend({initialize:function(a,b,c,g){this.styleBefore= -a.options.styleBefore;this.styleSeparator=a.options.styleSeparator;this._end=g.value;this._positions.end=g.start},valueParts:function(a){var b=c(this.value());if(a){var g=this.valuePosition(!0);d.each(b,function(a){a.shift(g)})}return b},end:function(a){if(!d.isUndefined(a)&&this._end!==a)this.parent._updateSource(a,this._positions.end,this._positions.end+this._end.length),this._end=a;return this._end},fullRange:function(a){a=this.range(a);a.start-=this.styleBefore.length;return a},toString:function(){return this.name()+ -this.styleSeparator+this.value()+this.end()}});return{parse:function(a,b){return new j(a,b)},parseFromPosition:function(a,b,c){c=this.extractRule(a,b,c);return!c||!c.inside(b)?null:this.parse(c.substring(a),{offset:c.start})},extractRule:function(a,b,c){for(var g="",d=a.length,e=-1,j;b>=0;){j=a.charAt(b);if(j=="{"){e=b;break}else if(j=="}"&&!c){b++;break}b--}for(;b=0;){j=a.charAt(b);if("{}/\\<>\n\r".indexOf(j)!= --1)break;b--}c=a.substring(b+1,e).replace(/^[\s\n\r]+/m,"");return f("range").create(e-c.length,g.length+c.length)}return null},baseName:function(a){return a.replace(/^\s*\-\w+\-/,"")},findParts:c}}); -emmet.define("xmlEditTree",function(f,d){var h={styleBefore:" ",styleSeparator:"=",styleQuote:'"',offset:0},i=/^<([\w\:\-]+)((?:\s+[\w\-:]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/m,b=f("editTree").EditContainer.extend({initialize:function(a){d.defaults(this.options,h);this._positions.name=1;var b=null,e=f("xmlParser").parse(a),j=f("range");d.each(e,function(e){e.value=j.create(e).substring(a);switch(e.type){case "tag":if(/^<[^\/]+/.test(e.value))this._name=e.value.substring(1); -break;case "attribute":b&&this._children.push(new c(this,b));b=e;break;case "string":this._children.push(new c(this,b,e)),b=null}},this);b&&this._children.push(new c(this,b));this._saveStyle()},_saveStyle:function(){var a=this.nameRange().end,b=this.source;d.each(this.list(),function(c){c.styleBefore=b.substring(a,c.namePosition());if(c.valuePosition()!==-1)c.styleSeparator=b.substring(c.namePosition()+c.name().length,c.valuePosition()-c.styleQuote.length);a=c.range().end})},add:function(a,b,e){var j= -this.list(),h=this.nameRange().end,i=f("editTree"),l=d.pick(this.options,"styleBefore","styleSeparator","styleQuote");if(d.isUndefined(e))e=j.length;var m=j[e];if(m)h=m.fullRange().start;else if(m=j[e-1])h=m.range().end;m&&(l=d.pick(m,"styleBefore","styleSeparator","styleQuote"));b=l.styleQuote+b+l.styleQuote;a=new c(this,i.createToken(h+l.styleBefore.length,a),i.createToken(h+l.styleBefore.length+a.length+l.styleSeparator.length,b));d.extend(a,l);this._updateSource(a.styleBefore+a.toString(),h); -this._children.splice(e,0,a);return a}}),c=f("editTree").EditElement.extend({initialize:function(a,b,c){this.styleBefore=a.options.styleBefore;this.styleSeparator=a.options.styleSeparator;b="";a=a.options.styleQuote;if(c)b=c.value,a=b.charAt(0),a=='"'||a=="'"?b=b.substring(1):a="",a&&b.charAt(b.length-1)==a&&(b=b.substring(0,b.length-1));this.styleQuote=a;this._value=b;this._positions.value=c?c.start+a.length:-1},fullRange:function(a){a=this.range(a);a.start-=this.styleBefore.length;return a},toString:function(){return this.name()+ -this.styleSeparator+this.styleQuote+this.value()+this.styleQuote}});return{parse:function(a,c){return new b(a,c)},parseFromPosition:function(a,b,c){c=this.extractTag(a,b,c);return!c||!c.inside(b)?null:this.parse(c.substring(a),{offset:c.start})},extractTag:function(a,b,c){var d=a.length,h,o=f("range"),l=Math.min(2E3,d),m=null,p=function(b){var c;if(a.charAt(b)=="<"&&(c=a.substr(b,l).match(i)))return o.create(b,c[0])};for(h=b;h>=0;h--)if(m=p(h))break;if(m&&(m.inside(b)||c))return m;if(!m&&c)return null; -for(h=b;h=a++;)if(b.substr(a,e.length)==e){h=a+e.length;break}}return j!=-1&&h!=-1?f("range").create(j,h-j):null}function b(b,a,d,e){function j(b){return b.replace(RegExp("^"+p.escapeForRegexp(a)+"\\s*"), -function(a){l-=a.length;return""}).replace(RegExp("\\s*"+p.escapeForRegexp(d)+"$"),"")}var h=f("editorUtils"),o=h.outputInfo(b).content,l=b.getCaretPos(),m=null,p=f("utils");(m=i(o,l,a,d))&&m.overlap(e)?(e=m,m=j(e.substring(o))):(m=a+" "+e.substring(o).replace(RegExp(p.escapeForRegexp(a)+"\\s*|\\s*"+p.escapeForRegexp(d),"g"),"")+" "+d,l+=a.length+1);return m!==null?(m=p.escapeText(m),b.setCaretPos(e.start),b.replaceContent(h.unindent(b,m),e.start,e.end),b.setCaretPos(l),!0):!1}f("actions").add("toggle_comment", -function(c){var a=f("editorUtils").outputInfo(c);if(a.syntax=="css"){var d=c.getCaretPos(),e=f("htmlMatcher").tag(a.content,d);if(e&&e.open.range.inside(d))a.syntax="html"}if(a.syntax=="css"){e=f("range").create(c.getSelectionRange());a=f("editorUtils").outputInfo(c);if(!e.length()&&(d=f("cssEditTree").parseFromPosition(a.content,c.getCaretPos())))e=(e=h(d,c.getCaretPos()))?e.range(!0):f("range").create(d.nameRange(!0).start,d.source);e.length()||(e=f("range").create(c.getCurrentLineRange()),f("utils").narrowToNonSpace(a.content, -e));c=b(c,"/*","*/",e)}else{a=f("range").create(c.getSelectionRange());d=f("editorUtils").outputInfo(c);if(!a.length()&&(d=f("htmlMatcher").tag(d.content,c.getCaretPos())))a=d.outerRange;c=b(c,"<\!--","--\>",a)}return c})}); -emmet.exec(function(f){function d(d,f,b){function c(b){for(var c=b;c>=0;){var d=a.charAt(c);if(d=="\n"||d=="\r")break;c--}return a.substring(c,b)}for(var f=f||1,b=d.getCaretPos()+(b||0),a=String(d.getContent()),d=a.length,g=-1,e=/^\s+$/;b<=d&&b>=0;){b+=f;var j=a.charAt(b),n=a.charAt(b+1),o=a.charAt(b-1);switch(j){case '"':case "'":n==j&&o=="="&&(g=b+1);break;case ">":n=="<"&&(g=b+1);break;case "\n":case "\r":e.test(c(b-1))&&(g=b)}if(g!=-1)break}return g}f=f("actions");f.add("prev_edit_point",function(f){var i= -f.getCaretPos(),b=d(f,-1);b==i&&(b=d(f,-1,-2));return b!=-1?(f.setCaretPos(b),!0):!1},{label:"Previous Edit Point"});f.add("next_edit_point",function(f){var i=d(f,1);return i!=-1?(f.setCaretPos(i),!0):!1})}); -emmet.exec(function(f,d){function h(a,b,c,d){var e=f("range"),g=f("editorUtils").outputInfo(a).content,j=g.length,h,i=e.create(-1,0),m=e.create(a.getSelectionRange());h=m.start;for(var n=1E5;h>=0&&h0;){if(e=c(g,h,b)){if(i.equal(e))break;i=e.clone();if(h=d(e.substring(g),e.start,m.clone()))return a.createSelection(h.start,h.end),!0;else h=b?e.start:e.end-1}h+=b?-1:1}return!1}function i(a){var b=!0;return h(a,!1,function(a,c){if(b){b=!1;var d;a:{d=c;for(var g;d>=0;){if(g=e(a,d)){d=g;break a}d--}d= -null}return d}else return e(a,c)},function(a,b,c){return g(a,b,c,!1)})}function b(a){return h(a,!0,e,function(a,b,c){return g(a,b,c,!0)})}function c(b,c,e){var e=e||0,g=f("range"),h=[],k=-1,i="",m="",n,l;d.each(c,function(c){switch(c.type){case "tag":l=b.substring(c.start,c.end);/^<[\w\:\-]/.test(l)&&h.push(g.create({start:c.start+1,end:c.end}));break;case "attribute":k=c.start;i=b.substring(c.start,c.end);break;case "string":h.push(g.create(k,c.end-k)),n=g.create(c),m=n.substring(b),j(m.charAt(0))&& -n.start++,j(m.charAt(m.length-1))&&n.end--,h.push(n),i=="class"&&(h=h.concat(a(n.substring(b),n.start)))}});d.each(h,function(a){a.shift(e)});return d.chain(h).filter(function(a){return!!a.length()}).uniq(!1,function(a){return a.toString()}).value()}function a(a,b){var b=b||0,c=[],d=f("stringStream").create(a),e=f("range");d.eatSpace();d.start=d.pos;for(var g;g=d.next();)if(/[\s\u00a0]/.test(g))c.push(e.create(d.start+b,d.pos-d.start-1)),d.eatSpace(),d.start=d.pos;c.push(e.create(d.start+b,d.pos- -d.start));return c}function g(a,b,e,g){a=c(a,f("xmlParser").parse(a),b);g&&a.reverse();return(b=d.find(a,function(a){return a.equal(e)}))?(g=d.indexOf(a,b),g1)?g[1]:d.find(a,function(a){return a.end>e.end})}function e(a,b){var c;if(a.charAt(b)=="<"&&(c=a.substring(b,a.length).match(p)))return f("range").create(b,c[0])}function j(a){return a=='"'||a=="'"}function n(a){var b= -a.valueRange(!0),c=[a.range(!0),b],e=f("stringStream"),g=f("cssEditTree"),k=f("range"),j=a.value();d.each(a.valueParts(),function(a){var f=a.clone();c.push(f.shift(b.start));var h=e.create(a.substring(j));if(h.match(/^[\w\-]+\(/,!0)){h.start=h.pos;h.skipToPair("(",")");var i=h.current();c.push(k.create(f.start+h.start,i));d.each(g.findParts(i),function(a){c.push(k.create(f.start+h.start+a.start,a.substring(i)))})}});return d.chain(c).filter(function(a){return!!a.length()}).uniq(!1,function(a){return a.toString()}).value()} -function o(a,b,c){var e=null,g=null,f=a.list(),j,h;c?(f.reverse(),j=function(a){return a.range(!0).start<=b.start},h=function(a){return a.start=b.end},h=function(a){return a.end>b.start});for(;e=d.find(f,j);){a=n(e);c&&a.reverse();if(g=d.find(a,function(a){return a.equal(b)})){if(g=d.indexOf(a,g),g!=a.length-1){g=a[g+1];break}}else{g=d.filter(a,function(a){return a.inside(b.end)});if(g.length>1){g=g[1];break}if(g=d.find(a,h))break}g=null;b.start=b.end= -c?e.range(!0).start-1:e.range(!0).end+1}return g}function l(a,b,c){a=f("cssEditTree").parse(a,{offset:b});b=a.nameRange(!0);return c.endb.start)?b:a}var p=/^<([\w\:\-]+)((?:\s+[\w\-:]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/,r=f("actions");r.add("select_next_item",function(a){return a.getSyntax()=="css"?h(a,!1,f("cssEditTree").extractRule,l):i(a)});r.add("select_previous_item", -function(a){return a.getSyntax()=="css"?h(a,!0,f("cssEditTree").extractRule,m):b(a)})}); -emmet.exec(function(f){function d(c,a){var a=String((a||"out").toLowerCase()),d=f("editorUtils").outputInfo(c),e=f("range").create(c.getSelectionRange()),d=d.content;b&&!b.range.equal(e)&&(b=null);if(b&&e.length())if(a=="in")if(b.type=="tag"&&!b.close)return!1;else if(b.range.equal(b.outerRange))b.range=b.innerRange;else{var j=f("utils").narrowToNonSpace(d,b.innerRange);if((b=i.find(d,j.start+1))&&b.range.equal(e)&&b.outerRange.equal(e))b.range=b.innerRange}else if(!b.innerRange.equal(b.outerRange)&& -b.range.equal(b.innerRange)&&e.equal(b.range))b.range=b.outerRange;else{if((b=i.find(d,e.start))&&b.range.equal(e)&&b.innerRange.equal(e))b.range=b.outerRange}else b=i.find(d,e.start);if(b&&!b.range.equal(e))return c.createSelection(b.range.start,b.range.end),!0;b=null;return!1}var h=f("actions"),i=f("htmlMatcher"),b=null;h.add("match_pair",d,{hidden:!0});h.add("match_pair_inward",function(b){return d(b,"in")},{label:"HTML/Match Pair Tag (inward)"});h.add("match_pair_outward",function(b){return d(b, -"out")},{label:"HTML/Match Pair Tag (outward)"});h.add("matching_pair",function(b){var a=String(b.getContent()),d=b.getCaretPos();a.charAt(d)=="<"&&d++;return(a=i.tag(a,d))&&a.close?(a.open.range.inside(d)?b.setCaretPos(a.close.range.start):b.setCaretPos(a.open.range.start),!0):!1},{label:"HTML/Go To Matching Tag Pair"})}); -emmet.exec(function(f){f("actions").add("remove_tag",function(d){var h=f("utils"),i=f("editorUtils").outputInfo(d),b=f("htmlMatcher").tag(i.content,d.getCaretPos());if(b){if(b.close){var c=h.narrowToNonSpace(i.content,b.innerRange),a=h.findNewlineBounds(i.content,c.start),a=h.getLinePadding(a.substring(i.content)),i=c.substring(i.content),i=h.unindentString(i,a);d.replaceContent(h.getCaretPlaceholder()+h.escapeText(i),b.outerRange.start,b.outerRange.end)}else d.replaceContent(h.getCaretPlaceholder(), -b.range.start,b.range.end);return!0}return!1},{label:"HTML/Remove Tag"})}); -emmet.exec(function(f){f("actions").add("split_join_tag",function(d,h){var i=f("htmlMatcher"),b=f("editorUtils").outputInfo(d,null,h),c=f("profile").get(b.profile);if(i=i.tag(b.content,d.getCaretPos())){if(i.close){var b=f("utils"),c=c.selfClosing()||" /",c=i.open.range.substring(i.source).replace(/\s*>$/,c+">"),a=d.getCaretPos();c.length+i.outerRange.start$/,">"),a=i.outerRange.start+g.length;g+=c+"";g=b.escapeText(g);d.replaceContent(g,i.outerRange.start,i.outerRange.end)}d.setCaretPos(a);i=!0}else i=!1;return i},{label:"HTML/Split\\Join Tag Declaration"})}); -emmet.define("reflectCSSValue",function(f,d){function h(c){var a=f("cssEditTree"),d=f("editorUtils").outputInfo(c),c=c.getCaretPos();if(a=a.parseFromPosition(d.content,c))if(d=a.itemFromPosition(c,!0)){var e=a.source,j=a.options.offset,c=c-j-d.range().start;b.exec(!1,[d]);if(e!==a.source)return{data:a.source,start:j,end:j+e.length,caret:j+d.range().start+c}}}function i(b){var b=f("cssEditTree").baseName(b),a;if(b=="opacity"||b=="filter")return/^(?:\-\w+\-)?(?:opacity|filter)$/;else if(a=b.match(/^border-radius-(top|bottom)(left|right)/))return RegExp("^(?:\\-\\w+\\-)?(?:"+ -b+"|border-"+a[1]+"-"+a[2]+"-radius)$");else if(a=b.match(/^border-(top|bottom)-(left|right)-radius/))return RegExp("^(?:\\-\\w+\\-)?(?:"+b+"|border-radius-"+a[1]+a[2]+")$");return RegExp("^(?:\\-\\w+\\-)?"+b+"$")}var b=f("handlerList").create();f("actions").add("reflect_css_value",function(b){return b.getSyntax()!="css"?!1:f("actionUtils").compoundUpdate(b,h(b))},{label:"CSS/Reflect Value"});b.add(function(b){var a=i(b.name());d.each(b.parent.list(),function(d){if(a.test(d.name())){var e;var j=b.name(), -h=b.value(),i=d.name();e=d.value();var l=f("cssEditTree"),m=f("utils"),j=l.baseName(j),i=l.baseName(i);e=j=="opacity"&&i=="filter"?e.replace(/opacity=[^)]*/i,"opacity="+Math.floor(parseFloat(h)*100)):j=="filter"&&i=="opacity"?(j=h.match(/opacity=([^)]*)/i))?m.prettifyNumber(parseInt(j[1])/100):e:h;d.value(e)}})},{order:-1});return{addHandler:function(c,a){b.add(c,a)},removeHandler:function(c){b.remove(c,options)}}}); -emmet.exec(function(f){f("actions").add("evaluate_math_expression",function(d){var h=f("actionUtils"),i=f("utils"),b=String(d.getContent()),c=f("range").create(d.getSelectionRange());c.length()||(c=h.findExpressionBounds(d,function(a){return i.isNumeric(a)||".+-*/\\".indexOf(a)!=-1}));if(c&&c.length()){h=c.substring(b);h=h.replace(/([\d\.\-]+)\\([\d\.\-]+)/g,"Math.round($1/$2)");try{var a=i.prettifyNumber((new Function("return "+h))());d.replaceContent(a,c.start,c.end);d.setCaretPos(c.start+a.length); -return!0}catch(g){}}return!1},{label:"Numbers/Evaluate Math Expression"})}); -emmet.exec(function(f,d){function h(b,a){var g=f("utils"),e=!1,j=!1,h=f("actionUtils").findExpressionBounds(b,function(a,b,c){return g.isNumeric(a)?!0:a=="."?!g.isNumeric(c.charAt(b+1))?!1:j?!1:j=!0:a=="-"?e?!1:e=!0:!1});if(h&&h.length()){var o=h.substring(String(b.getContent())),l=parseFloat(o);if(!d.isNaN(l)){l=g.prettifyNumber(l+a);if(/^(\-?)0+[1-9]/.test(o)){var m="";RegExp.$1&&(m="-",l=l.substring(1));l=l.split(".");l[0]=g.zeroPadString(l[0],i(o));l=m+l.join(".")}b.replaceContent(l,h.start,h.end); -b.createSelection(h.start,h.start+l.length);return!0}}return!1}function i(b){b=b.replace(/^\-/,"");return~b.indexOf(".")?b.split(".")[0].length:b.length}var b=f("actions");d.each([1,-1,10,-10,0.1,-0.1],function(c){var a=c>0?"increment":"decrement";b.add(a+"_number_by_"+String(Math.abs(c)).replace(".","").substring(0,2),function(a){return h(a,c)},{label:"Numbers/"+a.charAt(0).toUpperCase()+a.substring(1)+" number by "+Math.abs(c)})})}); -emmet.exec(function(f,d){var h=f("actions"),i=f("preferences");i.define("css.closeBraceIndentation","\n","Indentation before closing brace of CSS rule. Some users prefere indented closing brace of CSS rule for better readability. This preference\u2019s value will be automatically inserted before closing brace when user adds newline in newly created CSS rule (e.g. when \u201cInsert formatted linebreak\u201d action will be performed in CSS file). If you\u2019re such user, you may want to write put a value like \\n\\t in this preference."); -h.add("insert_formatted_line_break_only",function(b){var c=f("utils"),a=f("resources"),g=f("editorUtils").outputInfo(b),e=b.getCaretPos(),j=c.getNewline();if(d.include(["html","xml","xsl"],g.syntax)){if(a=a.getVariable("indentation"),(g=f("htmlMatcher").tag(g.content,e))&&!g.innerRange.length())return b.replaceContent(j+a+c.getCaretPlaceholder()+j,e),!0}else if(g.syntax=="css"&&(g=g.content,e&&g.charAt(e-1)=="{")){var h=i.get("css.closeBraceIndentation"),a=a.getVariable("indentation"),o=g.charAt(e)== -"}";if(!o)for(var l=e,m=g.length,p;la.length?b.replaceContent(c+i,e,e,!0):b.replaceContent(c,e)}return!0},{hidden:!0})}); -emmet.exec(function(f){f("actions").add("merge_lines",function(d){var h=f("htmlMatcher"),i=f("utils"),b=f("editorUtils").outputInfo(d),c=f("range").create(d.getSelectionRange());if(!c.length()&&(h=h.find(b.content,d.getCaretPos())))c=h.outerRange;if(c.length()){b=c.substring(b.content);b=i.splitByLines(b);for(h=1;h=0;)if(d("src=",a,c)){if(a=a.substr(c).match(/^(src=(["'])?)([^'"<>\s]+)\1?/))b=a[3],c+=a[1].length;break}else if(d("url(",a,c)){if(a=a.substr(c).match(/^(url\((['"])?)([^'"\)\s]+)\1?/))b=a[3],c+=a[1].length;break}if(b)if(d("data:",b))if(a=String(i.prompt("Enter path to file (absolute or relative)"))){var g= -f("file"),e=g.createPath(i.getFilePath(),a);if(!e)throw"Can't save file";g.save(e,f("base64").decode(b.replace(/^data\:.+?;.+?,/,"")));i.replaceContent("$0"+a,c,c+b.length);i=!0}else i=!1;else i=h(i,b,c);else i=!1;return i},{label:"Encode\\Decode data:URL image"})}); -emmet.exec(function(f,d){function h(c){var a=c.getCaretPos(),g=f("editorUtils").outputInfo(c),e=f("xmlEditTree").parseFromPosition(g.content,a,!0);e&&(e.name()||"").toLowerCase()=="img"&&b(c,e.value("src"),function(b){if(b){var g=e.range(!0);e.value("width",b.width);e.value("height",b.height,e.indexOf("width")+1);f("actionUtils").compoundUpdate(c,d.extend(g,{data:e.toString(),caret:a}))}})}function i(c){var a=c.getCaretPos(),g=f("editorUtils").outputInfo(c),e=f("cssEditTree").parseFromPosition(g.content, -a,!0);if(e){var g=e.itemFromPosition(a,!0),h;g&&(h=/url\((["']?)(.+?)\1\)/i.exec(g.value()||""))&&b(c,h[2],function(b){if(b){var g=e.range(!0);e.value("width",b.width+"px");e.value("height",b.height+"px",e.indexOf("width")+1);f("actionUtils").compoundUpdate(c,d.extend(g,{data:e.toString(),caret:a}))}})}}function b(b,a,d){var e=f("actionUtils");if(a){if(/^data:/.test(a))return b=f("base64").decode(a.replace(/^data\:.+?;.+?,/,"")),d(e.getImageSize(b));var h=f("file"),i=h.locateFile(b.getFilePath(), -a);if(i===null)throw"Can't find "+a+" file";h.read(i,function(a,b){if(a)throw"Unable to read "+i+": "+a;d(e.getImageSize(String(b)))})}}f("actions").add("update_image_size",function(b){d.include(["css","less","scss"],String(b.getSyntax()))?i(b):h(b);return!0})}); -emmet.define("cssResolver",function(f,d){function h(a){var b=a&&a.charCodeAt(0);return a&&a=="."||b>47&&b<58}function i(a){a=f("utils").trim(a);if(~a.indexOf("/*")||/[\n\r]/.test(a))return!1;if(!/^[a-z0-9\-]+\s*\:/i.test(a))return!1;a=f("tabStops").processText(a,{replaceCarets:!0,tabstop:function(){return"value"}});return a.split(":").length==2}function b(a){a.charAt(0)=="-"&&!/^\-[\.\d]/.test(a)&&(a=a.replace(/^\-+/,""));if(a.charAt(0)=="#"){var b=a.replace(/^#+/,"")||"0";if(b.toLowerCase()=="t")a= -"transparent";else{var d=f("utils").repeatString,a=null;switch(b.length){case 1:a=d(b,6);break;case 2:a=d(b,3);break;case 3:a=b.charAt(0)+b.charAt(0)+b.charAt(1)+b.charAt(1)+b.charAt(2)+b.charAt(2);break;case 4:a=b+b.substr(0,2);break;case 5:a=b+b.charAt(0);break;default:a=b.substr(0,6)}q.get("css.color.short")&&(b=a.split(""),b[0]==b[1]&&b[2]==b[3]&&b[4]==b[5]&&(a=b[0]+b[2]+b[4]));switch(q.get("css.color.case")){case "upper":a=a.toUpperCase();break;case "lower":a=a.toLowerCase()}a="#"+a}}else a= -c(a);return a}function c(a){var b=q.getDict("css.keywordAliases");return a in b?b[a]:a}function a(a){return d.include(q.getArray("css.keywords"),c(a))}function g(a,b){var c=r[b];c||(c=d.find(r,function(a){return a.prefix==b}));return c&&c.supports(a)}function e(a,b){var c=[];d.each(r,function(b,d){g(a,d)&&c.push(d)});!c.length&&!b&&d.each(r,function(a,b){a.obsolete||c.push(b)});return c}function j(a,b){d.isString(b)&&(b={prefix:b});r[a]=d.extend({},p,b)}function n(a,b){if(b){var c=q.get(b+"."+a); -if(!d.isUndefined(c))return c}return q.get("css."+a)}function o(a,b,c){if(!d.isString(a))a=a.data;if(!i(a))return a;b&&(~a.indexOf(";")?a=a.split(";").join(" !important;"):a+=" !important");b=a.indexOf(":");a=a.substring(0,b).replace(/\s+$/,"")+n("valueSeparator",c)+f("utils").trim(a.substring(b+1));return a.replace(/\s*;\s*$/,n("propertyEnd",c))}function l(a){var b=q.getArray(a);d.each(q.getArray(a+"Addon"),function(a){a.charAt(0)=="-"?b=d.without(b,a.substr(1)):(a.charAt(0)=="+"&&(a=a.substr(1)), -b.push(a))});return b}var m=null,p={prefix:"emmet",obsolete:!1,transformName:function(a){return"-"+this.prefix+"-"+a},properties:function(){return l("css."+this.prefix+"Properties")||[]},supports:function(a){return d.include(this.properties(),a)}},r={},q=f("preferences");q.define("css.valueSeparator",": ","Defines a symbol that should be placed between CSS property and value when expanding CSS abbreviations.");q.define("css.propertyEnd",";","Defines a symbol that should be placed at the end of CSS property when expanding CSS abbreviations."); -q.define("stylus.valueSeparator"," ","Defines a symbol that should be placed between CSS property and value when expanding CSS abbreviations in Stylus dialect.");q.define("stylus.propertyEnd","","Defines a symbol that should be placed at the end of CSS property when expanding CSS abbreviations in Stylus dialect.");q.define("sass.propertyEnd","","Defines a symbol that should be placed at the end of CSS property when expanding CSS abbreviations in SASS dialect.");q.define("css.autoInsertVendorPrefixes", -!0,"Automatically generate vendor-prefixed copies of expanded CSS property. By default, Emmet will generate vendor-prefixed properties only when you put dash before abbreviation (e.g. -bxsh). With this option enabled, you don\u2019t need dashes before abbreviations: Emmet will produce vendor-prefixed properties for you.");var u=d.template("A comma-separated list of CSS properties that may have <%= vendor %> vendor prefix. This list is used to generate a list of prefixed properties when expanding -property abbreviations. Empty list means that all possible CSS values may have <%= vendor %> prefix."), -s=d.template("A comma-separated list of additional CSS properties for css.<%= vendor %>Preperties preference. You should use this list if you want to add or remove a few CSS properties to original set. To add a new property, simply write its name, to remove it, precede property with hyphen.
For example, to add foo property and remove border-radius one, the preference value will look like this: foo, -border-radius.");d.each({webkit:"animation, animation-delay, animation-direction, animation-duration, animation-fill-mode, animation-iteration-count, animation-name, animation-play-state, animation-timing-function, appearance, backface-visibility, background-clip, background-composite, background-origin, background-size, border-fit, border-horizontal-spacing, border-image, border-vertical-spacing, box-align, box-direction, box-flex, box-flex-group, box-lines, box-ordinal-group, box-orient, box-pack, box-reflect, box-shadow, color-correction, column-break-after, column-break-before, column-break-inside, column-count, column-gap, column-rule-color, column-rule-style, column-rule-width, column-span, column-width, dashboard-region, font-smoothing, highlight, hyphenate-character, hyphenate-limit-after, hyphenate-limit-before, hyphens, line-box-contain, line-break, line-clamp, locale, margin-before-collapse, margin-after-collapse, marquee-direction, marquee-increment, marquee-repetition, marquee-style, mask-attachment, mask-box-image, mask-box-image-outset, mask-box-image-repeat, mask-box-image-slice, mask-box-image-source, mask-box-image-width, mask-clip, mask-composite, mask-image, mask-origin, mask-position, mask-repeat, mask-size, nbsp-mode, perspective, perspective-origin, rtl-ordering, text-combine, text-decorations-in-effect, text-emphasis-color, text-emphasis-position, text-emphasis-style, text-fill-color, text-orientation, text-security, text-stroke-color, text-stroke-width, transform, transition, transform-origin, transform-style, transition-delay, transition-duration, transition-property, transition-timing-function, user-drag, user-modify, user-select, writing-mode, svg-shadow, box-sizing, border-radius", -moz:"animation-delay, animation-direction, animation-duration, animation-fill-mode, animation-iteration-count, animation-name, animation-play-state, animation-timing-function, appearance, backface-visibility, background-inline-policy, binding, border-bottom-colors, border-image, border-left-colors, border-right-colors, border-top-colors, box-align, box-direction, box-flex, box-ordinal-group, box-orient, box-pack, box-shadow, box-sizing, column-count, column-gap, column-rule-color, column-rule-style, column-rule-width, column-width, float-edge, font-feature-settings, font-language-override, force-broken-image-icon, hyphens, image-region, orient, outline-radius-bottomleft, outline-radius-bottomright, outline-radius-topleft, outline-radius-topright, perspective, perspective-origin, stack-sizing, tab-size, text-blink, text-decoration-color, text-decoration-line, text-decoration-style, text-size-adjust, transform, transform-origin, transform-style, transition, transition-delay, transition-duration, transition-property, transition-timing-function, user-focus, user-input, user-modify, user-select, window-shadow, background-clip, border-radius", -ms:"accelerator, backface-visibility, background-position-x, background-position-y, behavior, block-progression, box-align, box-direction, box-flex, box-line-progression, box-lines, box-ordinal-group, box-orient, box-pack, content-zoom-boundary, content-zoom-boundary-max, content-zoom-boundary-min, content-zoom-chaining, content-zoom-snap, content-zoom-snap-points, content-zoom-snap-type, content-zooming, filter, flow-from, flow-into, font-feature-settings, grid-column, grid-column-align, grid-column-span, grid-columns, grid-layer, grid-row, grid-row-align, grid-row-span, grid-rows, high-contrast-adjust, hyphenate-limit-chars, hyphenate-limit-lines, hyphenate-limit-zone, hyphens, ime-mode, interpolation-mode, layout-flow, layout-grid, layout-grid-char, layout-grid-line, layout-grid-mode, layout-grid-type, line-break, overflow-style, perspective, perspective-origin, perspective-origin-x, perspective-origin-y, scroll-boundary, scroll-boundary-bottom, scroll-boundary-left, scroll-boundary-right, scroll-boundary-top, scroll-chaining, scroll-rails, scroll-snap-points-x, scroll-snap-points-y, scroll-snap-type, scroll-snap-x, scroll-snap-y, scrollbar-arrow-color, scrollbar-base-color, scrollbar-darkshadow-color, scrollbar-face-color, scrollbar-highlight-color, scrollbar-shadow-color, scrollbar-track-color, text-align-last, text-autospace, text-justify, text-kashida-space, text-overflow, text-size-adjust, text-underline-position, touch-action, transform, transform-origin, transform-origin-x, transform-origin-y, transform-origin-z, transform-style, transition, transition-delay, transition-duration, transition-property, transition-timing-function, user-select, word-break, word-wrap, wrap-flow, wrap-margin, wrap-through, writing-mode", -o:"dashboard-region, animation, animation-delay, animation-direction, animation-duration, animation-fill-mode, animation-iteration-count, animation-name, animation-play-state, animation-timing-function, border-image, link, link-source, object-fit, object-position, tab-size, table-baseline, transform, transform-origin, transition, transition-delay, transition-duration, transition-property, transition-timing-function, accesskey, input-format, input-required, marquee-dir, marquee-loop, marquee-speed, marquee-style"}, -function(a,b){q.define("css."+b+"Properties",a,u({vendor:b}));q.define("css."+b+"PropertiesAddon","",s({vendor:b}))});q.define("css.unitlessProperties","z-index, line-height, opacity, font-weight, zoom","The list of properties whose values \u200b\u200bmust not contain units.");q.define("css.intUnit","px","Default unit for integer values");q.define("css.floatUnit","em","Default unit for float values");q.define("css.keywords","auto, inherit","A comma-separated list of valid keywords that can be used in CSS abbreviations."); -q.define("css.keywordAliases","a:auto, i:inherit, s:solid, da:dashed, do:dotted, t:transparent","A comma-separated list of keyword aliases, used in CSS abbreviation. Each alias should be defined as alias:keyword_name.");q.define("css.unitAliases","e:em, p:%, x:ex, r:rem","A comma-separated list of unit aliases, used in CSS abbreviation. Each alias should be defined as alias:unit_value.");q.define("css.color.short",!0,"Should color values like #ffffff be shortened to #fff after abbreviation with color was expanded."); -q.define("css.color.case","keep","Letter case of color values generated by abbreviations with color (like c#0). Possible values are upper, lower and keep.");q.define("css.fuzzySearch",!0,"Enable fuzzy search among CSS snippet names. When enabled, every unknown snippet will be scored against available snippet names (not values or CSS properties!). The match with best score will be used to resolve snippet value. For example, with this preference enabled, the following abbreviations are equal: ov:h == ov-h == o-h == oh"); -q.define("css.fuzzySearchMinScore",0.3,"The minium score (from 0 to 1) that fuzzy-matched abbreviation should achive. Lower values may produce many false-positive matches, higher values may reduce possible matches.");q.define("css.alignVendor",!1,"If set to true, all generated vendor-prefixed properties will be aligned by real property name.");j("w",{prefix:"webkit"});j("m",{prefix:"moz"});j("s",{prefix:"ms"});j("o",{prefix:"o"});var v=["css","less","sass","scss","stylus"];f("resources").addResolver(function(a, -b){return d.include(v,b)&&a.isElement()?m.expandToSnippet(a.abbreviation,b):null});var w=f("expandAbbreviation");w.addHandler(function(a,b,c){if(!d.include(v,b))return!1;var e=a.getSelectionRange().end,g=w.findAbbreviation(a);return g&&(b=emmet.expandAbbreviation(g,b,c))?(g=e-g.length,c=e,a.getContent().charAt(e)==";"&&b.charAt(b.length-1)==";"&&c++,a.replaceContent(b,g,c),!0):!1});return m={addPrefix:j,supportsPrefix:g,prefixed:function(a,b){return g(a,b)?"-"+b+"-"+a:a},listPrefixes:function(){return d.map(r, -function(a){return a.prefix})},getPrefix:function(a){return r[a]},removePrefix:function(a){a in r&&delete r[a]},extractPrefixes:function(a){if(a.charAt(0)!="-")return{property:a,prefixes:null};for(var b=1,c=a.length,d,e=[];bbackground-color property with gradient first color as fallback for old browsers."); -f("expandAbbreviation").addHandler(function(a,b,c){c=f("editorUtils").outputInfo(a,b,c);if(!d.include(r,c.syntax))return!1;var e=a.getCaretPos(),g=c.content,c=l(g,e);if(c.property){var h=n(c.property);if(h){var i=c.rule.options.offset||0,m=i+c.rule.toString().length;if(/[\n\r]/.test(c.property.value())){var p=c.property.valueRange(!0).start+h.valueRange.end,g=f("utils").replaceSubstring(g,";",p),e=l(g,e);e.property&&(h=n(e.property),c=e)}c.property.end(";");var e=c.property.name(),g=f("resources"), -p=f("preferences"),q=g.findSnippet(b,e);!q&&p.get("css.fuzzySearch")&&(q=g.fuzzyFindSnippet(b,e,parseFloat(p.get("css.fuzzySearchMinScore"))));if(q){if(!d.isString(q))q=q.data;b=f("cssResolver").splitSnippet(q).name}else b=void 0;b&&c.property.name(b);j(c.property,h.gradient,h.valueRange);a.replaceContent(c.rule.toString(),i,m,!0);return!0}}return o(a,b)});f("reflectCSSValue").addHandler(function(a){var b=f("utils"),c=n(a);if(!c)return!1;var e=a.value(),h=function(a){return b.replaceSubstring(e,a, -c.valueRange)};d.each(a.parent.getAll(g(a.name())),function(b){if(b!==a){var d=b.value().match(/^\s*(\-([a-z]+)\-)?linear\-gradient/);d?b.value(h(p.toString(c.gradient,d[2]||""))):b.value().match(/\s*\-webkit\-gradient/)&&b.value(h(p.oldWebkitLinearGradient(c.gradient)))}});return!0});return p={parse:function(a){var b=null;f("utils").trim(a).replace(/^([\w\-]+)\((.+?)\)$/,function(a,c,e){c=c.toLowerCase().replace(/^\-[a-z]+\-/,"");if(c=="linear-gradient"||c=="lg"){for(var a=m[0],e=f("stringStream").create(f("utils").trim(e)), -c=[],g;g=e.next();)e.peek()==","?(c.push(e.current()),e.next(),e.eatSpace(),e.start=e.pos):g=="("&&e.skipTo(")");c.push(e.current());c=d.compact(d.map(c,h));if(c.length){if(q.test(c[0])||u.test(c[0]))a=c.shift();b={type:"linear",direction:a,colorStops:d.map(c,i)}}else b=null;return""}return a});return b},oldWebkitLinearGradient:function(c){d.isString(c)&&(c=this.parse(c));if(!c)return null;var e=d.map(c.colorStops,d.clone);d.each(e,function(a){if("position"in a)if(~a.position.indexOf(".")||a.unit== -"%")a.position=parseFloat(a.position)/(a.unit=="%"?100:1);else throw"Can't convert color stop '"+(a.position+(a.unit||""))+"'";});b(e);e=d.map(e,function(a,b){return!a.position&&!b?"from("+a.color+")":a.position==1&&b==e.length-1?"to("+a.color+")":"color-stop("+a.position.toFixed(2).replace(/\.?0+$/,"")+", "+a.color+")"});return"-webkit-gradient(linear, "+a(c.direction)+", "+e.join(", ")+")"},toString:function(a,b){if(a.type=="linear"){var c=(b?"-"+b+"-":"")+"linear-gradient",e=d.map(a.colorStops, -function(a){return a.color+("position"in a?" "+a.position+(a.unit||""):"")});a.direction&&(!s.get("css.gradient.omitDefaultDirection")||!d.include(m,a.direction))&&e.unshift(a.direction);return c+"("+e.join(", ")+")"}}}});emmet.exec(function(f,d){var h=f("handlerList").create(),i=f("resources");d.extend(i,{addGenerator:function(b,c,a){d.isString(b)&&(b=RegExp(b));h.add(function(a,d){var f;return(f=b.exec(a.name()))?c(f,a,d):null},a)}});i.addResolver(function(b,c){return h.exec(null,d.toArray(arguments))})}); -emmet.define("tagName",function(f,d){var h={empty:"area,base,basefont,br,col,frame,hr,img,input,isindex,link,meta,param,embed,keygen,command".split(","),blockLevel:"address,applet,blockquote,button,center,dd,del,dir,div,dl,dt,fieldset,form,frameset,hr,iframe,ins,isindex,li,link,map,menu,noframes,noscript,object,ol,p,pre,script,table,tbody,td,tfoot,th,thead,tr,ul,h1,h2,h3,h4,h5,h6".split(","),inlineLevel:"a,abbr,acronym,applet,b,basefont,bdo,big,br,button,cite,code,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,select,small,span,strike,strong,sub,sup,textarea,tt,u,var".split(",")}, -i={p:"span",ul:"li",ol:"li",table:"tr",tr:"td",tbody:"tr",thead:"tr",tfoot:"tr",colgroup:"col",select:"option",optgroup:"option",audio:"source",video:"source",object:"param",map:"area"};return{resolve:function(b){b=(b||"").toLowerCase();return b in i?this.getMapping(b):this.isInlineLevel(b)?"span":"div"},getMapping:function(b){return i[b.toLowerCase()]},isInlineLevel:function(b){return this.isTypeOf(b,"inlineLevel")},isBlockLevel:function(b){return this.isTypeOf(b,"blockLevel")},isEmptyElement:function(b){return this.isTypeOf(b, -"empty")},isTypeOf:function(b,c){return d.include(h[c],b)},addMapping:function(b,c){i[b]=c},removeMapping:function(b){b in i&&delete i[b]},addElementToCollection:function(b,c){h[c]||(h[c]=[]);var a=this.getCollection(c);d.include(a,b)||a.push(b)},removeElementFromCollection:function(b,c){c in h&&(h[c]=d.without(this.getCollection(c),b))},getCollection:function(b){return h[b]}}}); -emmet.exec(function(f,d){function h(){return{element:g.get("bem.elementSeparator"),modifier:g.get("bem.modifierSeparator")}}function i(a){if(f("abbreviationUtils").isSnippet(a))return a;a.__bem={block:"",element:"",modifier:""};var e=b(a.attribute("class")).split(" "),g=/^[a-z]\-/i;a.__bem.block=d.find(e,function(a){return g.test(a)});if(!a.__bem.block)g=/^[a-z]/i,a.__bem.block=d.find(e,function(a){return g.test(a)})||"";(e=d.chain(e).map(function(b){var d;d=c(b,a,"element");d=c(d,a,"modifier");var e= -"",g="",f="",b=h();~d.indexOf(b.element)?(e=d.split(b.element),f=e[1].split(b.modifier),e=e[0],g=f.shift(),f=f.join(b.modifier)):~d.indexOf(b.modifier)&&(f=d.split(b.modifier),e=f.shift(),f=f.join(b.modifier));if(e||g||f){if(!e)e=a.__bem.block;d=e;var i=[];g&&(d+=b.element+g);i.push(d);f&&i.push(d+b.modifier+f);a.__bem.block=e;a.__bem.element=g;a.__bem.modifier=f;b=i}else b=d;return b}).flatten().uniq().value().join(" "))&&a.attribute("class",e);return a}function b(a){var b=f("utils"),a=(" "+(a|| -"")+" ").replace(/\s+/g," "),c=g.get("bem.shortElementPrefix");c&&(c=RegExp("\\s("+b.escapeForRegexp(c)+"+)","g"),a=a.replace(c,function(a,c){return" "+b.repeatString(h().element,c.length)}));return b.trim(a)}function c(a,b,c){var d=h(),e=RegExp("^("+d[c]+")+","g");if(e.test(a)){for(var g=0,e=a.replace(e,function(a){g=a.length/d[c].length;return""}),f=b;f.parent&&g--;)f=f.parent;if(!f||!f.__bem)f=b;if(f&&f.__bem)return a=f.__bem.block,c=="modifier"&&f.__bem.element&&(a+=d.element+f.__bem.element), -a+d[c]+e}return a}function a(b,c){b.name&&i(b,c);var g=f("abbreviationUtils");d.each(b.children,function(b){a(b,c);!g.isSnippet(b)&&b.start&&(e=!0)});return b}var g=f("preferences");g.define("bem.elementSeparator","__","Class name\u2019s element separator.");g.define("bem.modifierSeparator","_","Class name\u2019s modifier separator.");g.define("bem.shortElementPrefix","-","Symbol for describing short \u201cblock-element\u201d notation. Class names prefixed with this symbol will be treated as element name for parent\u2018s block name. Each symbol instance traverses one level up in parsed tree for block name lookup. Empty value will disable short notation."); -var e=!1;f("filters").add("bem",function(b,c){e=!1;b=a(b,c);e&&(b=f("filters").apply(b,"html",c));return b})}); -emmet.exec(function(f,d){function h(c,a,g){var e=f("utils"),h=b.get("filter.commentTrigger");if(h=="*"||d.find(h.split(","),function(a){return!!c.attribute(e.trim(a))}))h={node:c,name:c.name(),padding:c.parent?c.parent.padding:"",attr:function(a,b,d){return(a=c.attribute(a))?(b||"")+a+(d||""):""}},a=e.normalizeNewline(a?a(h):""),g=e.normalizeNewline(g?g(h):""),c.start=c.start.replace(//,">"+g)}function i(b,a,g){var e=f("abbreviationUtils");d.each(b.children,function(b){e.isBlock(b)&& -h(b,a,g);i(b,a,g)});return b}var b=f("preferences");b.define("filter.commentAfter",'\n<\!-- /<%= attr("id", "#") %><%= attr("class", ".") %> --\>',"A definition of comment that should be placed after matched element when comment filter is applied. This definition is an ERB-style template passed to _.template() function (see Underscore.js docs for details). In template context, the following properties and functions are availabe:\n

  • attr(name, before, after) \u2013 a function that outputsspecified attribute value concatenated with before and after strings. If attribute doesn't exists, the empty string will be returned.
  • node \u2013 current node (instance of AbbreviationNode)
  • name \u2013 name of current tag
  • padding \u2013 current string padding, can be used for formatting
"); -b.define("filter.commentBefore","","A definition of comment that should be placed before matched element when comment filter is applied. For more info, read description of filter.commentAfter property");b.define("filter.commentTrigger","id, class","A comma-separated list of attribute names that should exist in abbreviatoin where comment should be added. If you wish to add comment for every element, set this option to *");f("filters").add("c",function(c){var a= -d.template(b.get("filter.commentBefore")),g=d.template(b.get("filter.commentAfter"));return i(c,a,g)})});emmet.exec(function(f,d){function h(b){return b.replace(/([<>&])/g,function(b,a){return i[a]})}var i={"<":"<",">":">","&":"&"};f("filters").add("e",function c(a){d.each(a.children,function(a){a.start=h(a.start);a.end=h(a.end);a.content=h(a.content);c(a)});return a})}); -emmet.exec(function(f,d){function h(a){return a.parent&&!a.parent.parent&&!a.index()}function i(a,c){var d=f("abbreviationUtils");return c.tag_nl===!0||d.isBlock(a)?!0:!a.parent||!c.inline_break?!1:b(a.parent,c)}function b(a,b){var c=0,h=f("abbreviationUtils");return!!d.find(a.children,function(a){a.isTextNode()||!h.isInline(a)?c=0:h.isInline(a)&&c++;if(c>=b.inline_break)return!0})}function c(a,c){var h=f("abbreviationUtils");return!d.any(a.children,function(a){return h.isSnippet(a)?!1:!h.isInline(a)})? -b(a,c):!0}var a=f("preferences");a.define("format.noIndentTags","html","A comma-separated list of tag names that should not get inner indentation.");a.define("format.forceIndentationForTags","body","A comma-separated list of tag names that should always get inner indentation.");f("filters").add("_format",function e(b,n,o){var o=o||0,l=f("abbreviationUtils");d.each(b.children,function(b){if(l.isSnippet(b)){if(b.start=b.end="",!h(b)&&n.tag_nl!==!1&&i(b,n)&&(!b.parent.parent||!f("abbreviationUtils").isInline(b.parent)))b.start= -f("utils").getNewline()+b.start}else{b.start=b.end="%s";var j=f("utils"),r=f("abbreviationUtils"),q=r.isUnary(b),j=j.getNewline(),u=d.include(a.getArray("format.noIndentTags")||[],b.name())?"":f("resources").getVariable("indentation");if(n.tag_nl!==!1){var s=n.tag_nl===!0&&(n.tag_nl_leaf||b.children.length);s||(s=d.include(a.getArray("format.forceIndentationForTags")||[],b.name()));if(!b.isTextNode()){if(i(b,n)){if(!h(b)&&(!r.isSnippet(b.parent)||b.index()))b.start=j+b.start;if(r.hasBlockChildren(b)|| -b.children.length&&i(b.children[0],n)||s&&!q)b.end=j+b.end;if(r.hasTagsInContent(b)||s&&!b.children.length&&!q)b.start+=j+u}else if(r.isInline(b)&&b.parent&&f("abbreviationUtils").hasBlockChildren(b.parent)&&!h(b))b.start=j+b.start;else if(r.isInline(b)&&c(b,n))b.end=j+b.end;b.padding=u}}}e(b,n,o+1)});return b})}); -emmet.exec(function(f,d){function h(h,b){var c="",a=[],g=b.attributeQuote(),e=b.cursor();d.each(h.attributeList(),function(d){var h=b.attributeName(d.name);switch(h.toLowerCase()){case "id":c+="#"+(d.value||e);break;case "class":c+="."+f("utils").trim(d.value||e).replace(/\s+/g,".");break;default:a.push(":"+h+" => "+g+(d.value||e)+g)}});a.length&&(c+="{"+a.join(", ")+"}");return c}f("filters").add("haml",function b(c,a,g){var g=g||0,e=f("abbreviationUtils");g||(c=f("filters").apply(c,"_format",a)); -d.each(c.children,function(c){if(!e.isSnippet(c)&&c.parent){var d=f("abbreviationUtils"),o=f("utils"),l=h(c,a),m=a.cursor(),d=d.isUnary(c),p=a.self_closing_tag&&d?"/":"",r="",r="%"+a.tagName(c.name());r.toLowerCase()=="%div"&&l&&l.indexOf("{")==-1&&(r="");c.end="";c.start=o.replaceSubstring(c.start,r+l+p+" ",c.start.indexOf("%s"),"%s");!c.children.length&&!d&&(c.start+=m)}b(c,a,g+1)});return c})}); -emmet.exec(function(f,d){function h(f,b){var c=b.attributeQuote(),a=b.cursor();return d.map(f.attributeList(),function(d){return" "+b.attributeName(d.name)+"="+c+(d.value||a)+c}).join("")}f("filters").add("html",function b(c,a,g){var g=g||0,e=f("abbreviationUtils");g||(c=f("filters").apply(c,"_format",a));d.each(c.children,function(c){if(!e.isSnippet(c)&&c.parent){var d=f("abbreviationUtils"),o=f("utils"),l=h(c,a),m=a.cursor(),d=d.isUnary(c),p="",r="";if(!c.isTextNode()){var q=a.tagName(c.name()); -d?(p="<"+q+l+a.selfClosing()+">",c.end=""):(p="<"+q+l+">",r="")}c.start=o.replaceSubstring(c.start,p,c.start.indexOf("%s"),"%s");c.end=o.replaceSubstring(c.end,r,c.end.indexOf("%s"),"%s");!c.children.length&&!d&&!~c.content.indexOf(m)&&!f("tabStops").extract(c.content).tabstops.length&&(c.start+=m)}b(c,a,g+1)});return c})}); -emmet.exec(function(f,d){var h=/^\s+/,i=/[\n\r]/g;f("filters").add("s",function c(a){var g=f("abbreviationUtils");d.each(a.children,function(a){if(!g.isSnippet(a))a.start=a.start.replace(h,""),a.end=a.end.replace(h,"");a.start=a.start.replace(i,"");a.end=a.end.replace(i,"");a.content=a.content.replace(i,"");c(a)});return a})}); -emmet.exec(function(f,d){function h(f,b){d.each(f.children,function(c){if(c.content)c.content=c.content.replace(b,"");h(c,b)});return f}f("preferences").define("filter.trimRegexp","[\\s|\\u00a0]*[\\d|#|\\-|*|\\u2022]+\\.?\\s*","Regular expression used to remove list markers (numbers, dashes, bullets, etc.) in t (trim) filter. The trim filter is useful for wrapping with abbreviation lists, pased from other documents (for example, Word documents).");f("filters").add("t",function(d){var b= -RegExp(f("preferences").get("filter.trimRegexp"));return h(d,b)})});emmet.exec(function(f,d){var h={"xsl:variable":1,"xsl:with-param":1};f("filters").add("xsl",function b(c){var a=f("abbreviationUtils");d.each(c.children,function(c){if(!a.isSnippet(c)&&(c.name()||"").toLowerCase()in h&&c.children.length)c.start=c.start.replace(/\s+select\s*=\s*(['"]).*?\1/,"");b(c)});return c})}); -emmet.exec(function(f,d){function h(a,b){return Math.round(Math.random()*(b-a)+a)}function i(a,b){for(var c=a.length,g=Math.min(c,b),f=[];f.length3&&b<=6?h(0,1):b>6&&b<=12?h(0,2):h(1,4);d.each(i(d.range(c)),function(b){a[b]+= -","})}f("abbreviationParser").addPreprocessor(function(d){var f=/^(?:lorem|lipsum)(\d*)$/i,n;d.findAll(function(d){if(d._name&&(n=d._name.match(f))){var e=n[1]||30;d._name="";d.data("forceNameResolving",d.isRepeating()||d.attributeList().length);d.data("pasteOverwrites",!0);d.data("paste",function(d){var f=e,j=!d,d=[],n=0,f=parseInt(f,10);j&&(j=a.slice(0,f),j.length>5&&(j[4]+=","),n+=j.length,d.push(b(j,".")));for(;n","!!!4t":'',"!!!4s":'', -"!!!xt":'',"!!!xs":'',"!!!xxs":'',c:"<\!-- |${child} --\>","cc:ie6":"<\!--[if lte IE 6]>\n\t${child}|\n","cc:ie":"<\!--[if IE]>\n\t${child}|\n","cc:noie":"<\!--[if !IE]><\!--\>\n\t${child}|\n<\!--"}, -abbreviations:{"!":"html:5",a:'',"a:link":'',"a:mail":'',abbr:'',acronym:'',base:'',bdo:'',"bdo:r":'',"bdo:l":'',link:'',"link:css":'',"link:print":'',"link:favicon":'', -"link:touch":'',"link:rss":'',"link:atom":'',"meta:utf":'',"meta:win":'',"meta:vp":'', -"meta:compat":'',style:"