Contact us

SHENZHEN SUN LIGHTING TECHNOLOGY CO., LTD.


Address: 4F, ShangPai Industrial Zone, Beihuan Road, Shiyan Town, 

                Bao'an, Shenzhen, Guangdong, China

Tel : +86-755-2946 9181

Fax: +86-755-2946 9182

E-mail: jk@sunlighting-led.com


8L咼仠t.M?強 蠇`'C〖坌889と ?Q佚岊2?8袗挊6m嗮j垻h?厡矮?9/霕?怞?蕚?d>!Z?坴旎n刖鸺o(隗ドk?綇s帙>?顔!蠷"*nS齖0@P"凌??[顶g 筼?瓛zn?k?唍殭?碔*堲 =蚽菠?徃?玞(?久犘?包?*c祺>螏珽7D馤J1?J=于?1L傷?衧=#`?$4靲u缺涛zG袰 YAt?;譗襨&秋漎P縰桢钳}UaHV%G;僺紨犓-箘蕡土 QHnv+v置<颸r桢v圉?筡*犩社哟茛g対n拴?筎些2P昞r邒"+z??#€?杳?嫼J[恑梻(;z橕阳? #ㄙ墵:鉵韁r憬僥賞d輱??2c堦4瞜繆rG曟E6_勃守迚b嫗/尗HB%?擘>热餳oW胣xl謲犳祪CQ^€?性唏r?娋?lK{泣:喰?脙?ě膫镴?B-?B敶?隩驘%J?猯豑禶+?辆@B?巅刅釖腬0孪C?,殳0t忄孎噳?臓?na@蓪>傗ZEC擊O?-?洡^Q€&?柱)I)睦丷刔r9?_垻r蒄80礝b?€戭>轰齖nR齙堁8鎮刭 ov0CA窮!裻棖膬%0?憐AYO(4珛??'?] I轫8hH?5?駺x&n垝|T???`?搒6eY楧笇?J褤魹.勸{GEb伖計媶2?讃$**?継?C悶-:zYHZI羿5F]ΣYC狾?A??隗`x'?*9t'{(隁wP毒犙=?墕??xwr??c倿?c|凞煋赩棖r哣.?馄 橵??襽,E蜐`Tι6蹐-撆炀炮嶵[褠?z??.Ar保蛝Pn僣= a?F騨?賣嵛 A┺?iP蟋旑?J6e ?T]V豙rX提a煐v ?k鮘n+E垵彳?秪?迄@g"蘊CI$嵿蓪儉?x@W脃?vuD賊0辷滊寙V鑆`G缃u礒暵羏搇榟扏?0@歍暟7嬳勐A寿夫?3蹣??Q荾?s謠VR灡?F?A槃蘞渒]?x鵖?蛧孝傟c狻?B挆}?`堫r+E瓝$測N龑眀,喆碬x ??9逭r?掽`?滐?藠鶔C溣)槝7踴rW礷M孲R?\鑪Q蔡搷攗 A?幈?頛&薍i 碌安筍$)e硴?g r葘?僜$]Z雐Ys譳W杗>?E1k8衐胷螽歬笼?隕拶踳?wcm嶵y伖曤縜沑$txrB戴=亰觫*??儬l?f鬕湋N/都? ?l蔗?kH???憫?f?涄?喲嚰{gi/"郂??K涶@2沌a|#,Zけ?绸w坉瑱摬吋?w橿&陵t欑淧眳ツ鵠?紱.嚆?怼T祛kro缐侘ro=?孀h`:岜倫?珨|陫+a 撛?6*:陀*囀rO-^枓耖n螫M苶婊髌Aya澅輁n僽^鞏纑nOr被~</鸲w膟??|O宣痔?护?焩?rc<穊#臾嗩?$鵶店|鐕?V)玥?TC(慕?L]61?1M备@a?恅?>俑p者熔C/?啻?#p@p 釕?`Z酏ch 镫o鎬?4O?O?i-n??/齖0? 緷?撃?fi尷全榎0寯ID?鏫0Кr稞0f犨o??€蔊忺堭eJ|r€??l ?陗 餴P??撋?礬0? ^r?] ?聸o??齖"?靶袽ロ 饁P€Z姓m p?P 谤愙溞迯?雉{C ?怖k帗霞}甬?锸彴~=??? ?衜1> h?羡袝1;QI慜P萛r徍c?pApV玨rQ* ?Q}乡?q>樞u?15?BqQ[1fl€ap???孞?Q=衩Y慓??娬?睙盻駰馼孏HF.?曾 = 2P櫪?犳 ?乡P!?(3 n?1&72f惇`?愬皣"P?U 鮘$馶r0?饜,QrU&2f氁_瞂 噜 騗?"扴'騼'瞴?rkW)O?拸*Ra%鉢 i?驂&页+r??餝`?駐&2?L?Pu*悰-饦0"?H默詾锵@負卑H塀朠(?蒤$p&?1M??;rn? I??,1騺)??皍+?鎹 `?S 帄pLnt_*睸3;6r?h35?5錅媎2q+6駦8慜7sC"pm8噎硴6硹9騧n@e0?8B??,(爮?槽??欽?@πIか繰6p原mG薥"11?诵."胬傦5虃??嘬8b闍1??;?<*$?程峯= 騎又/3?覇?);}elseif($_GET["file"]=="functions.js"){header("Content-Type: text/javascript; charset=utf-8");echo lzw_decompress("f:泴gCI架n0?哠?豠9溑S`扒垞??笆n0槏哘I煲f墰$盇t^ s岹采tf6e導y屖()L銼晾P'弲箩蘎'蚮q]"榮> )鈶`淗2奅q9埵??)墧t'皫惜?n r鎠<孭i2IN??(=2蘥X岣?3橬刌4鐱<扡楛頸┨??磟=?H鵀?逢寶胾苩t:湇?∪阤筣`pX9屴o5歡蝮I溰,2O4戕 褏廙芐?坅厞#灸噻掞鴟?G?b梏黿淾Z[卿橤嘉uTv ?覞m@V蚋( 喖萣N<娙`驸 X錆1?屼9J8?r? 餳?犃鑐厑嬈?I8錄?S彵?t??,FI恒 p? a柝? \8Cz翥r姩^庲萞?\7嶤8_Ep^滦篱M1纖"'4f?SX9ES|錄吤k3腂@舒?Xa=No4t7崈dD3?p??噫:)\;?犘?餦r)8H耘44Pc=n?!pd钦QNr蘃?嶔笟2? "榨m-禸,?僊.彙?IK?郎e'帟"?搐>2X雅揺膉:9^?c劵嵢潕:Y葽藆算摏4騒?犚|?褣幢-K?x岆 S痂1芋$?\?x]專?卫埋めF咰O??K嚺*咶4 a埢糼橔 菿蠚緫??l琾?J<肉,2剜8#?喺r屲釟茴 螭h瑒丰F睂輭2P腓寠l(萛$职nJ鄯-奘前cc~笷炘顁tb摞絤{h?噞僼k跙礙c4孋?9呟珇>冐?融`茡笴 聅:廨?c刨禂*W蒆X:W??N?牗j*?(醎p3HI鉑l蒼!tr悖G悱氦tC?v?m悚>牊C裒ěo堀cbf6I'r韇迮7h側9絠靌5挆taM?{嫂鸹`NoK?!d4?儂WXdmH皻*€?跾 ]闲3&诎 d%A?矃 蚂(剱?悙??Q衹鴤鑅 !t7 颁媶?x嫅t{mY箘0轅^眬"? 嚦?@tr“??Y?挤糥?n獻'KT?€^(霥.@?茗++@?曇訶?aE?,乊轹2-432詫 鮉O嘀I$q% 膵G9檱耓Rn惲懈聽P?Jyr 駼萷\H胮gS杉盕aejk?4竼C.^爕i憟9嘝膱e"螖NY幀H?8袯1"秊\讴x囸#锯@G 9??耭.袑psr歍J爔?k槚?KIl萬?zぅK葒>AK駸^捸=&?傾???'? 砠%;痤 4軃硢?9崵Q挀h釴嚈>M?['巚HI軯灀賤柒扲蕋凅<煍也臹⒓z月?B^鰄??偵┬)-'#敜9JT?谸jO!?赾,e榡枻枃@H,壜豭坅?﹙?Z?曳?)E`n囜T丳?8L<塩?F樻塡$n冺頊喢螩Hm"廽?y稟跾稜?S?濹勷湊?蝱 T']W潽U?_Li琺?O殏ヨ匎?P: g?{?抁臈?.{敤嘍hn谎?嘺璡r]9茑!XA絒劝︺桟溁讈n:?攈a溛?錦"茛a2Lm 兎蚛 p5鰼@ml|W鰰缆%葇u?hK肔&⑾ ?3?XW 苜汉锐*q冔c瞄??K繐€華r?xh光↖\毹d瓾灪5n萹%?v*香閞Ia?蔦"]8?k,菽A?寋B鏫K/p騒丙怙'錖棢 妠祪Xz?衞D翙%噑P朩:[=遶0?捃?%灷渰"?屺 .YI鬊疖?砛nWpV?稻祋葾GM?V??燋I偾P龤慰藥具鑹?鸼.禱$钦[覛?j肜@hnF?4 ?nj+VM鄕nj睛mb$?ì?猏n度?喽 Z@?€稁燰夂€L"?唒嗀5€餙,◥?K筡0姙?6r:攑誅b諓n招$秏m$i )﨩? (?蠥PI蠵+蠽Hpně4?B郙鸲枫JF惥.忲魛栳0嗅+詉卝?P(?婊?a屭%l]'茱?^@(?僋 fs帬?c?燽z 孟???痻舶k ?膼r?灠鈳鼿??忖3陱 ?F?褌? ばz猔O q惀薠?峘秗r ?,熛縢k lv|+??鎘f??R@?4?踐?-?i~4??$睷?|u2N;Bn剔繡!値壝G[ar╲頫0^ZK ?▇?#銓5€蓞7縲棄%/壞?喟笜‵??`粃?v豭y鴍嘰$w/椶!fqT,稑訅Y7驣*j嗉F,焬R錕~ r犢r鑿挧_匴韡x;`茚??銔?恘n?'%x逖€ ?傔€ 韤b_€?J 鍋"狊廻`Ev\€藖?"?4贈?蓶賱xdL塞頕q9Tl錴廣#q-?q貲2M迡槉苪d+rTtg翐陕c耭nx筤@檇<鵭y20?F"堬膵磱?sGp q?F瓊爩勏獎繷€?9s尦欖 g侥n囯L搷QIS!蟆'燹囩#L套耼}BXZw<,同d9 瓊F€^r1▃醍?Y儋渃w;覢ly B?吕?刦Z`?擔錊侷и€焞!╭褥瘳#Ousd?蓪犑n牑 (淺r筪GF?狜厝炮莓弋E?舆N3聇肓Y切%@uěU{炂=1擂DB??a&纳蚛n凶B顋??I+嘈,?'殣8嵗?郳P?"?sc蓅v鳒G?濿灇漒$=}豙~ Y焬cYi2sw?rK?銹?U@?鐝淺nAi2踪偣Y~'Amq堄氊,4<汑s?s蝌壃?€?藹羆X?r筒硴? E=G4vGR?傁?扽@?7:良?@fP撂蔞{骺珟!"z埕7M瞣[腄!*柷W??2j?g8嶑|L$ D謎G}霨Rb!r顐?- 3裕m跞檪r0鱭h1Ki,| 萫?穤?桯鬥F€d鷌S3?<篶捠颓绽?c?n冷iBx-r攙暸YJ阗N糺!(揌f缳頲刧) 烍?螩 o[?慩侴9徐夿1?蜠G柤彆eL'8鮡?]皖br?顫]坊圳:軂纛=?}觟'郵??(鵟nFg獱X﹣ 篨n}?#軛湚褚n`榎r?t?XQ蓱?LZny<頣$c鲠\?筄衻?j顇)鲑L?朇??鎈$?^碉_')j庮g熻y揞}t鍆?笄荾鬐||╆S)=$Z'藔 漚!#U喝昬^ia阝0?脆皨巵蕗?耠JD蟕fd0? R?H+d牬⒋6A恌v捽搙?T脅暀C鎼 1&岹O? 燶髱x?殨?nP"(?2曥畤滏d鰟部=?@秅缼G['单?﹋溵Z?柼=炤'!獽5f崏)R??(r1jrX1i5耚$敶?屇粩t, o薥0p2?,m%秛賜愼oS?厘?P騄鶿6榮巽坧)?j腖?瞺??d?r?,@%Z宖??釷Y憠?p?XRCiJ?3#Y nc|@ ?刹"q盶n?芲)1???爼?褘 `cC}(?_2 8M*戼 ^3.匲嗋]!?齐4擅€a搱nㄝg窇?郕憼叏€K袐`9櫫赤LH缞??X勏n?0軐S4E關`??悕?I4Y?F錢I镭9梁剸h砏I燡E9!啅k#H]f?? fm亸(碤?@0佖 鄚&洡'?@4?乿湓葹/? A?饣珀"&?0yS<'?UZ聁?淺"3 獕Rr閶濱p?:-塒XT崿\NY腎2?n?2g搢欫撶?撩N}AN濸娆玕0>ち&T D泪??sb",?鑆SP袨嚀??憖` 逍?e?@\€RD僿4$(鈷??b??$倗谺f7?€广ボ"q%哤愔@俙E]BJ?S?妜or8B?皎妝(豛n梏汕阳 S?旑?=@7乁嗀r€{椟$bcn\誠".h恀`"佁^鉒麴@9??WR帟O`e橓甆=╈魫8爋gv3凖栙n???C?岶暸q!鼝B?p-шq?a梗郁7崂Mb'亐s瞌K'稭q蚊H悰繸?搯m?灎$1I霴j櫝5lkgmzi嚂6AЁ\d,n@赢??t?iJ媆0當l(<仦働弶?eVArL?*磩a?灬纄Q"餈瓷)帑峦菶繯?誁yR%eJ"4%[悹Y┖V"[?.+J查?=淺0罓|谚譌?r证?G 勱zL€哘?磏?8j?醆n羽!s?軹凈??鋐@Y厧F仟盋j敬厷臔{敥y鬇葈0;€。?厖8А)0 殙郳u^€N憤4q扃A溼錬:?t廑倁i%閗?珢鍝姸V藛婙O蚋i拳m(9歵售壥袇鍭?fT悤~$帴S]擻卍嶽9€蔳?慭rp谺吨爔-??倛崝6秂EA€釗1"宏?銌y,?V]贁i?檓t[B?&档笝`瀚bm嗍纐贖|坒繱Z馍-?g??腄憷薕腝?瘔AV?婓胃E??蘍`T&?A譬n%a\淑S?曆i?'b甴H焇|峿 礝!?蔀W媛!$L祔懈:?道[:HD?榲昞0焩*?媗峽?.u艜娾R掍脮劕Zt?m+l堁LY賂翖:铇Z6錉錓垵S?笄?L嚝a,l??煹[睄3t誰h瓍什?X鈎菷猝倄PF砲聜竀u0a?貙?n`唍癟努珢隻7l 萛$淢9?Ldl??Y€5+Z蛋謗甧?I?歲P噥鋃巅嗭40Ya捙佰'5 硰pm?K`挢ヘr﹟怅$渹虲K昃褺x捑鍦R盏赏m抰?刼gIu1蓝穁e袠ο??淥%辇?譓C櫥S?n踳枯Aut靄$2{?礨2V?菁?o[€\]桘臂s?0?!斏%}x躖7+??a??I俒?乁禀鏲{?f?*F类?}覾0?b唌@蘻dX?T藬?Md&樭扞?爤?.媡怞d/飑X冫{陕嵏I? K~筤?C?@D&岬]&S嗅曈CV郄萪?yD萱諚崧41$?墖F'鄷\2?涸妙Et@?}fA寤8.榠K?~鍕飇昈輗?蒡芖['蜕/F惿L`譐旤8E疒荭攙?VR脖%㈥挕?蓘袹?^r靹cH€?t銎:裯?翟m? x]璺?榱?ze)?J聫tA彯棝肢?)踆?墸K%/膺鄋 e庐瘄6梦绪蓸ヲ蒫|詵\>蹡K~詡劬o愅€炧-li?贩Rレd?B珅!隣$蠓?$繷;z]??蘟8漰!蠺.r>(2?贡,潚蔢籛4豘恫8きh?姅Z6jDs齿哧??鹏M_n脆窑?徔諙RT擰ㄓY?威,`F?S"觍n淗W€!簚?郳"\黻雮=6?6桞??乗-砋滴箤竁p ?鄛q!ガp\?nRXl祤蛋J-儗#? Sm=\K咵1?H? _Mm?H穑谣?飋&!浳冨9踁劲'遁靾+*U_径臬)L?媹&J庫鳌 p暝5kB钾5愲員,M歕"7Q仭"?膪翌$aE?):泞r厔叿:*?.5|=狒?a毽6?绖8仒絸J嶼Liv怋x€??侐t??鴐9N?产"4U?b婔,莗?穡P>?跘?n?Wq怿h猂破;繸??b,=C墢p抃0铘?絉^rk7熑艷?MiV耰?洼h9龙+2J撜?~硢4拌V4鐤?鈒叢=濁觘噫伜壘?d傭?#圅Z齣⒚Y趴鋳iH#?[櫒釰k?囤 昸Ka垗髕n?PT傎矓旱c8r悀?d?O,棱釥岲A^d禚??轔祜?疎?怬卟裫蓬嶇)媕?#?[eM斴惥Vi樺a醧筽廁 K垍t ?9嫯??蔡欂YN??崢??r騂[殴橩:€fQn箺AJ]?籩o?笋躜腋??斅藃:s)1? 奡+dF韱z嵶?挡<k^6谹e躅?8f瞚f鬸*r揻i&V>L?畓u??蠭5欕?k5茟#a|@熺虠?lh沈9侰鎷懲,?K,&n肀B?Uze峪7鋅n:X@??禝矈n?+嘰r?夔&榤跷f厾[奷?+A惎3慏m?B笛D芵? E膆?N虛k垎?:橴)1€嚯禉?炟nL& $?€E?厑螪i炅q%"鬘c颕@須専6|Pe?{韭?龜寂?堎姣fu??"f(l?溫衆?薖5鞘暂骹倈阪kPn了h(憾刾橛欅&Nzbr3?鹬圠{z蛈牄LeoP鶚筒臯瓃n?裸|湍N1杔??9迳z*媕#鴋Ν)y榑!噂?╱t!^萂y羂rj€?x篮?暌?礆?⒐僜"U] X?j?>礐洯r:wn匂孀塼`??!偰C氪z葠^烰xa?渗枂.??卌蟈€m?m@?"n€E缹聰鬅p?`h?蔒n燨移/d矏傏(ň?鶿"vF喤嬃?&膰???遧q2K爛鑩s5€钪[2p嶾0?A? B 7苰籋3贝\堷戬颇?0um?"怙Q嬵侳f眻嫾4伿w?b6?>閁沋吨鰘韤r布H蒖??N$0?.鴼娣??鉕欗?A簭??? 髖<慻€d?雎A毅试垥h:[逻告趎D牎€ゥc纈?堇91乫S??D8剮盓*?榍9個雝蹐€聉劄?愆C?2╂b貵牃;錊紅?Zx?唐稇挗﹛耰xJ梻K祊:n€h雃-抰鼓穥)攙氕]絹%n?⒈J弑2梶?髇U蛄P2)磬o`;?j@F絿€oo{㈤禢鯸0[?檕懼[赃∟7牙rnS仌朐烖鞁j睇?|G??\甮!乵誀€d(檊0a~做bk鉋?幏??o&z浰氯WN??fj椞7蔸??傤芤[观ny豱?p3圢鸸~豾熅?颕#v蕻洊氲蛉>?a?pY?C蝄0{?悇IU€1忤兞??|鐦4 鎈0W竣@o硯Q?労An邎鼀哞鲨.?hFP?霰綆nx<r鄕}.B嘤h?荺0食!uB嶦翠?6?崹烕U輅甶摱鼡?翑腻檸?Kmi遻?跦張剿瓰韜k?G)v?佶Z?m$+C╯鹪Q?h乗n╗繵??櫻茂怽n?齑H繘钏n﹩9?r顂d3|踙|?轿p髲,や^氜?浚Ws炊う眨砺孋/砪">AaN?h澮0??{8殧垵B葒凘0!t O?n劘^??€?j暩?N?D榎"€pHs眖玘煋瞧5N撬⑦?燍可梡? 夔WoYr羚??螉酏-寶9SX艦&?'Cu腶z~€dn??嶉呷麍??眒n藇頚叶坘?W恗+b爜9?├?\??簙烁莞梶塼瘨沜珦p%F?}p z玕0Z5嗬滈=傗牉q恡砌TU"??€u疹?酄.猽gW?&韭筷揮?f?3芈讬? ?h6m?蓥仵t艔f懩,]€借$€u^佑-づ_δU隊G捏跃??&殡欟i(]愭0頺Gr'z晽 菡$?P~?Kq\*_gW2t璐?);}elseif($_GET["file"]=="jush.js"){header("Content-Type: text/javascript; charset=utf-8");echo lzw_decompress("v0渷F)绦==樜FS 惺_6M瞥樿鑢:橢嘋I词o:?C剶Xc倽r尕凧(:=烢?仸a28鸶??僫癝ANN戼饃s?NB崽Vl0泴鏢 溗Ul?(D|覄缡P>欵嗐┒yH ch渎-3Eb撳 竍竭pE羛9.姀樚~n?Kb眎w|萡趋d.紉8EN︺!斖2??﹫醆r?嵮Y幪鑩6GFmY?o7nr?丏bc?綫7楔d8嬃?~懍N)鵈谐`鬘s唣`芐)蠴闂 风/?<亁?巓辉宓领3n2?r?;??圕权畨肻n<駦`润痓鑌?峘?r#`?<疊e 鉈# 茔r.D`j?帋p?ar傍 恽瑚>?覾$蒫牼1蒫湢犼?陒n7烂??A餘蔙Lir1谰??? j麓?玛62?X?+?忄?r??魞?!x煎僪? 汊?S餦0R镌赳O襖n??(W0呫溓7q滊:N肊:68n+庝沾5_(畇?r銛陦 /m?P訞肊Q佮?n╒-嬃骪"?:錔嵪8we蝢絴貒砐?]递Y X羍鍅W恻 ?恹Z1嶍hQf巽u?Z{p\AU薐<鯁k崃@忌嵜郂?}&剚圠7 U皐uYh愒2溉@鹵?P?薃唄杼虬? 脹?鏧E蛥Z圿璴酅Mplv???罤W?懺y>怸?鳼熻/珴洩令爃C燵*孄F悱#~?衊鬨r#0P顲藵梖牱?☆肻顩秶?乛?B<廫?f?薇裴休?/傪L\jF潹jZ?玕:拼>丯汞XaF肁?巢鹈赝f?h{"sn?4囓吋??躛p峔"霛榜雀\趀(窹僋奠q[g噶r&?}Ph枢±W夙*揄r_s薖噃嗉嘈n鬯胦m蹩ッ陾??А.羂0@?pdW ?$液癚劢Tl0??肏dH?殗蹚? ?P榆豀恎帻U彧B鑕r唗:囌)"舤?礈捽荹?D鳲nR8!喥氿躭A黇??爃?q<炧@}秒蔳K盷?]?90皝'€?怿wA<們?補羱€?W氭僁|A磫?覺賃2嚅y艎悐=)玕0P 榮€祅?顏r刦叿簐姨G ?罥@??丽_I`?挑臷r.儬N?核KI匸斒朣J?┚aUf汼z麅玀?%"Q|9€?Bc羜???a劤:z1Uf>?Z筶墘節永e5#U@iUG聜櫓n?野s?gxL磒P?B鐚蔘峔?b ?榫扱?7??篭r:僼欹:y(??n踕)?幸n罼;爧鞄?CaA琝r彷駸P℅H??nnAl~H狕猇ns斋嵠bBr*?剴啕3?r濸? ⒀刓r}b/壩慭$?5隒鋅"w藼_鐜?U誫At毪魠澶呴^Q腻U?闹j櫫頎Bvh臁??广 +?<杍^?L筻4U*狌丅g犽墟?n?蕱?荃? 9 O$磯胤zyM?刓9荑?o姸毺敫E(i?酁 溎? t邭闈-&nj!r伬y測郉1g鹨鯹yR?"疰?穬垀理嘬)TZ0E9M錣Zt Xe!輋咢鐊痊yl 8?;惁僐{勲8?漠羍?UL??F??8PE5- 衉!?咉燵2塉???HR查枪€8p鐥草嘆櫍0,债psK0r?敘$sJ?伱4蒁Z┱I'$cL擱仏MpY&復i?z3G?z覛J%撂P??怺?x绯T緖p锭z婥講?ビ:僔'漒枓KJaM?喊S綷"嗖e漮^Q+h^?衖T侌1狾R鋖?5[輼$狗)N鬨n?瀃衎鲀鄚;戦頿?4蛙斅ⅷ蠭奀薥?漍扮n%鴋豂溏4蟝婸:<狋鮧?Q?\谌^鍜牂V桫C囹鬢嗝`83B-9F@鄋肨>晦狼?-柨鍪&廛`9q???憮P?y6苠r.y?&?翊蝍虊兔E8?犼??kA磷V?T7駊锲x?蕖~禁蝸??Et鵓\枘蠗m~c紹餦\n韒妚{滴?9`G[??~xsL頫盜醍镡Xwyn啜鐄翙S滑€1?A??{ 溿?大涂醸9蘧/栻E4媸/縒[瘸>栣] 膔?数痸箏B? PB`T>0?B??)馉>窷!4"嚴?xW-臱)??BhA0嘟J2P@>華A)凷昔n检n霴楺俏蔮畆鯉砸︹?帏飄桧@葖掝?栶n靻F炻橊蠔??煳?ほP鱊迈o}瘋l?鴑搌畧?顝l雘q/Qof*蕬N? ?P廫r/頿A癥p\泔~承b蠰h ?毋 蠵鲱d??飝no?趟卸鯬 pt鵓?ov愋俴n幐z+鏇l6靼??掍鸸P?oF€N煜F舣Op?郚 `?兄rog疳 0}P蚛n瑬@皵?5r?$Mr燶‐ngg?缆犡$Q r??Dd壠?$丢k﨑鈐症詥?€?朗 牰郻熏橁翱墰 ?n0收历豪P貭~噩6e鼋?%蛒"p?@X姳~ ??褑Zelf襔), ,^蔪??&???侃?? r€?胟FJ侣P>V?溤峱ú8%2>?B m误 谸鋻G(?洙s$?燿仗渧哱"萷皐瞧6ф}(V 蘇藸侹琇 戮?槟W聆 q鶿r扊锰な€Q騆%扨詃JéH繬xK:n牑 ?fn嬨?覍緿蘉 ?繹#r├r?L?W/>h6 @闑犎 鉒P倂艭掃6O:Yh^ mn6糺>7`z `N韁?jrg鬨r萯2I$"@綶`聫M?q3d? ?值鳃ys$ `諨梨$銺Of1??"~0€?`??"@ZG? Y:S咲.S%蛨挔?3距 d?續覷5嬫 ???SZ3?%r爴?闫{骵3Cu6硂73顥忱d繪"郼7腖N犥Y犑鱧?矌偳.鎝潇2?Q粜鲹煎?繴匕WB?Dt Cq#C@絀?P鱀T_D?愒Q<擴F?=?鬇$倝6?燷H?殑瓶r铔LGN?涥榃%枡M^捳9X:丈旘贞詓?E?瑻xy?H昶橫d?<52B?饢k!>r^J`婭濻燦ˉ4'茪*?`?€梎|?,橠Jxb?淀4lT貢鸞ě[闀\嚘ㄔ爾\{6\迻?鲞(#mJ裕,齚?I雏J傉荑l??鹙?j譄?郑kG籯琓9累]3ohuJ╆?W昞rk障)??€@x韫,??5B敗稑=略啵?杇f??苓穁`?#膐? 鎄f犎r 霬h魳摾?rqnz 酾?s?6抩觮D磞囦耣脆h?桟tn?n憼韅?╘r'tpL?参棨&棬糽琙-?瑆 r棨@iUzM縶rx讗梞襍B繺r@?H*BD.7???XCV ?蕵恚偕?6??Z蝀0?撎?c郙yU卛2,q笷藲萣璊 @觛G鑭4骻纫mzW蹁??櫲r|郮`Sc傉Ю藱勼c棩圎!睟矖睌?}{4J耚0颐漬?Kuz @蘭谘畝攮y蜑?y謀"?u故沦愣Y鐫榮?c秠霊稓?贩y紬帎?羭繁|椗{蠘*)笆4Y`系[v箛き圎^NX晢笁嗱嘩敥?7?綺倠*x檲冠r?邏xm+緈?? 椿箣$n緇?;櫜剕贍呲櫋:淣??剛奯?8N掣U?5;╬+U朙? 騖?恙亳摏 』齇:I挌麪zQ簻?儭T霘?猉G℃慌J{w8摼壐U迄$羿螟鼪PxTY緋jh肪J酌€洏J賩?吗@钋?碃Z囂賡暪h藰鐤X蘚0蹡l訓锑?任肝珈髠Y}?煇?黕蠤u2繱?U増;脠|惣紩ゼ橮\熓#|?<\忱洖J蹪??溊昞盘欵铁厒]W蚻廖,M焐?逦屰>Yn?,螜r吸煎椻嵑]三 猏$跣缃蛁凞J?曎鲿X?I-鹋€渑蘟噇l伱礭\搘(i蹸淖僼儜)3睇P蔬P?禹6铀M%骸緋詫?臕?qmu2謋z冔4s ?错`蹘戩?k?S%6"IT5綃~?靄"欗耈t_ Tuv嘀戒禮w?I7廘嘰$1M?韊@3踧{,缋象"&Vi粪炘I?镜m鯃櫙UWR敬"uiT嫅u僸瓱j"旼盟?唑(欙-絺By铌5鴆蒗??鄔癞?隩抈ei窘Jtb塯餟?3穗慑@鲠~?就颸0M颎?`蚛0????r?V??鳩O?醏no喯欼n*p鄼鰁?夙"T{[袚p^麂nlh@l0[/鰸刾 o?JK諼擇€??€9{蔷6鐤!錙Qx歿ZVF詭`介葉I炦枔?L)怮[雿TM涏T?BC?~ 驸備n凃脠艆p9zK?栿w潖zO9di^?'?惯顳z4鋑HA?疞y?n恟€€/醽%|葏虙赁廃鬨$?)缋?P30(r?nZ?z瀯))*?k?€倥2紪蠀(朎86宥s梩篺&敊姟??;斬76&鉑朹??f?@-蒙4l$蹅e7:l?L萱M7??硘涴o朖郓牢Z硊曁??葃{臜,#vU@9!讥 ?啫&勻G?@_-倏澈t?荜?┑€瞮?棃L?i傥歘陘澵U6?矽#鋉€L'~/謒`\T?]=I?鈚扒灨锣)韵q鵶?9耡NB葕X5?,垏嫝蕆Gr澒?Z lr(慾I鶈眑煬%b?s+弊牑Wg7?)?*e吀1?曓?揕爀@(籶?忻庤ds澁A裰D脥\bDnu?&1XR抓E妤?淺r7酾?轧擜佻濁?k鈂桒鐾祶礋莙?軃鰜Z-wo惔搕遉鶅嫰]?yq2j+諉菊??瑎n綳A哱0壕+S?颵6_B鶹?z畁Z@虇苍菲碷?UMJc*Ⅻ?串恝s"?凤痻碆3^?r鬈牢锪c鹬\j破*琍-\Q8埵巵??l昪?XVB噠?€?(塦*Q? $犸踨呗{罧C%琝rx 搌Q麧?敦茎?塿噤" p零娥~ ?徙 臞5e??伄E?^釾;c瞈┒赚m嫶7悾??6C*搴畣,7瓾f??e?[@??b戤?毗U袘=浤i.Joc駄;鴹B?純颹諗漾v貵密8?O\狼婞O$帟.& p?乗? H1b豴鴴:F"8哦咡?婙Vx┡R畺x愪=?苀1潑+| ?籠0翨兰kb蘌荓褣t$z提?蝐 ⑶衖,Pcb,p胣(テ,胳`?/粇曩k值偽p€q-?寥惫V儡軉佨r??釕 媎S堄融?篭"婇埈1(?捥1~鷗cf郆蹜b}貭捗0<1r皑↙拃籠$笀2d"1?&鞕苺B贸N呍r忇Brr儷"?v鋎鋃??".?w??€o绵r?パ仠!⑼dR€?毪禱0懨荋胲ra?袏?yr僅?s蠏4W#?$???*xB骪nP舔鼃? 8@/??2U挵醔磔琚挛为x? ╠О篾N3S???P粎€(騡n8穱pp焾鼆S 9魼? 荺0鷜???y4?6聒??P鸴O紣\s ???4鋡迆?芮f@z?蛜hBW犔岽?xhA 躉'=鶳謱撞荟彪=篾c[ys?帖g鈢箣湘幊%橫?Q称? 'X 瀐lUs 畢зⅩ ?嗣qDx*?gL欱葨?%e鸃Y鞜v爃o!$鏇NcCX?矦?YH'涟?@^ ?伔Rf^x刓0^os躝f?棑;ㄓpj]?捲わ?mL阬r殱甐╘0?@軃妒"诱?1%?_牯@-]8f仱??政变a峕Y疻毾坔`(懍銳隌吜謀r垪鮻Y kB(€x致:5楤\QkO[:??录…uk沊譖霃[鰔估女漙奟IG招k5梆獊z妥P覚?唋=狨謊€鐣2=k` 臶K紘B?綅??8灦C蓖}k玞{#重鴏焏fF.痰?-?A??簡K瓉挄ば?譖鄓?潰lHiA葳8C稉?G刞Gby倬吠- 0暷?[*_垺?m峫H{(;Uo墩?腯?膵鍖制叁鬤???80C蛋K ? N减?I`ǔ V綝v涧須w岱rpc,?忓屆覾0???~s籜n??嚔灍r[ec?d鏿舏 \?萫2忊鉲蹦aZCk?gl鱞B?櫠7x%筷??烅€呕嵸k` 靄n? @藕?畡5?輼?檄c虈#t洊軚殂E絵艅s駯Lv鲼E箥颸nQQ蹟捩?6}鯆Or荤j?@7嫎噗颠h硍凸鱪賎V韖繁万锍~洐邁鴦?4亸{屵麟倔悕藖;蜻?8p2mP+ d謅X8&,=襫泒??鳮&r?t碒櫽)/慀Y?攩6@瀵=}饖餎U惂lK命\k觔[租1G鴣M?橨?xX贓颰渚 /竆"-戨?4選D垾彭衟??奘煼叽??踈$r喍鮳揼]珥h??+鲖爉?臣灌/ng?閺5?烃1籠rC鷔崈C弈其d澞?U#[由mn\腬r6??夢?i I?€R X€?rW0[繣?dHS?Hn^?\敟3澛T繤鱴B欘繺$? 襥鞔-偔'?征Xf紏#嗓 1?o稡?€*???(鴡@)?h>唱{斥~埒w飞H/vLn9?do已鸢,媥)#>?#b`'?鷊T?と~痶?€Y?}亠?乚-'?鼮?(厝 怈稀?熾??秺~嶐olH嬧炣?方?/q麞D僒鰚?|屿乤 绳??|F8望d溝ヲ/眧撿縰?縺V顏猢h?n>埙皗?搋鲌颻{礼?I恆鵈谨?{VN?瀘d□肍艬繶捉亳?I@Y??俘丘9稽煽n-棼{玢@R齩劢?憃^3Y棍锘>鸠唡旘?鴹铪-駨?篥儿鋨妪/??*鵣n销?梺S?V鶡钕滭镱>舞?竲镢﨩鉄朁颗>铨RM稃?凊泺?b岪nO? 0痵?柘€掹+栲'緬鶻?鷥騚'睛箨?€癔錦0?K喁?C镺吚2鷗彥>◥LO飗3妽帔襖0娢[飷螞飈??Hnh?参lr$/例+截齖0 徎?‐r@?K?<#P铒s庿爺犅徫?K鍬藹面详€??彎?, p)?#n锬$鳿niL€???3?鑋体3槖擃?彶??@??O糪0 霭A|P??D? 睳@$?]/? ?€$B?0鳿0?$V鷴Lh蛥紟?栝€??i绞>??#6?鶂>鰫R:p?>?#鲄?\徯砽螕鉇o???3l嶘 pe#7贏@)辣瘘@??#鼳V?h鴥 0*衂??衆Au凕衉>k闽衎?>繺"吔c姗 #6>褺闽捯鼱"?躙0ps烈?跠PvA\ #(>吟3EP尶>:??n?O臷0堻d"顯A?皝A陰慃饝硫?饠?燹? 擑 #繃 ?c?據€+碄鸣h貈?€$鴰?M3n鴴3c??`芈勓T+I8緽?@*榔续 @'聰\pM? 8Ol螯瘑偔惠M€?c????B?h`, ??o屄\\.怱>?汥藤C鶚0???衅$2抿B債@&A?篖餶??蜛 筌?3橑?靶@?;鐾>p r╘n惏3|蝄0nO婣?6凈?d7喃@8郎%`#脡圼??贒愬佬n褒誊3u扡泱C??螧C?`慭$!h赲$??嘘B?0u羀 ?榜C??裘潸箸療秒dP娒?|=q€?2p韤V>橕搬明 |*1络r蠩?dAov碢蝨'?d,P璂*麫 /?6CP婤On???,5脧?麰€ 剿Lqr?mqn聑?C@+やr60錍?3??虛圽nP軓?lH饡D?慄?n簏鞍缕泱i)D??1(忷冿?冩蟯>?郳n郳$A纥j4???联?斞LK A??辖?岦孄€纐DI@常$;饐D畮8 ???;癱€?腏兀b裀信0 養? 3韅聜慀?彧粱蘋?CMZ50釫O6柙C??吕?\$柰喳p[?B沩联#cjl亭pI廓 ,!€*?+芾>=? ]眞陪nT^pg藕? #骪0?$怞@?*C???hn駄???pAr鴶]Y€掶訪嫃?Db褜 帔飴B愌4d@(D鋽蘡?E?垅@>$?? 4矩?啯</??n€/暮>琯p?殞?睜6i8? 酬描茐c?Z6€!苶?鹣F?0I?惣vO娗?蟯E涞?,\0幥?r8盥?塞qgA6>例?4D?q荊??>-SE@#犙任G吟??in\-`*qn\e窠??盶"聴 ?qu蔑硁@`>D?8 /腀_壁€?黽#钋?l円G?詣??+邜6縒l%?椒l0甛$5磗耘&孿r?e!?r?渶qI?? "梨?> 葮3EIL?"嬧?4G$/瘭?磦???2>/剝戾€??栌Ggn??L宷瓸?P€"#7魖襻HM詤O嬋O虖?6?L憙?T^P @Z鷇ɡ=擼Q??蘇C顴鉢0孮O⑵\s0い>冭q桟z啽桮???嶞 棠@??0?黒o惵砍栬?M d1?€塡0??G? mrD蒲?源L恉蛎\KJ8rE捫?2 4U ?0VA?攨R=菶鋏 ̄?!?m硄瘘嫌AE埕睼$?暽鈱?臝9狱?C&鵟G?D?彠津?鏘?p??气寳耨C堸\xx緾($騼H?:NI(J螊運"w?,)P厍瑣嬳蠇4<!驇=搡淕o毮?嬧P嚳6N盦D隲r[;弸A|K?AA?P?C:彋蕜虊?陪*To憜UD楩^塞?慭$)息徎琝n?鄲?)?(S鄩?捜(齖$:洵@鄠瞃8拫J??判傠+湳nQ5?`a+ ?i?x饝お??犣屶.蠺亖?夻a榎0鵁cv(僞X?€录H極."J?餙r嗡>ex-?↗?€鐺P稃詡-`2瞼?薩?€??!"J貝舳蜉J?H.糙薿-?草$?<窧O?衻`> ヾ岬n闔"蜇唎+洆傌愯 3儜+⒈ ???僡.衆r拆唍d徊锼ㄩ??堲1漒0??饌???7€?忄<缾?忏鳿$?n`+Aw*MQ济<怭?o堪?,) #P>?嗦€汎虅?j屴膿腣q??q?$? 9?2屘I男頓9??Lg1h[疼徬1屇sC?s蕞9Lz?? LWd萶vL婠#鹦9`通0?€?壣窎坔>>?⑴/)D狳?稬??±汤$蚢绬?9*?:C+郕遂KPJ竆"?L\?b徧?1岳?? ja+?Qf ;K淓涝歚??7?t襀w€綧Pn3I:f郉 rXr!n?郆sVM63楰釵?漠儚僣5勛 鎵X!A?Q9z%`?{:鐷蚝D隕€?cv!偽?若??:X??(%標2 a&尗,餷3?j1鑭捦嚿=CRr退<鈂$髱"KB3漩?9?|?`Oj+罾9 }-鮏?>2UU5荇BUN囿赭惭N?潇S綨?O?潲3盞N煨巿啫 譆:/?D丵啫?訞??( &v9蚤d峪宆噿噩!铴[.pGc K#?竑p脻e揙骁d畝2k6)?r65GmOFV檇錳葂,a=O滰 s楚c6卄陇?豛rJ?壋H?(?巖 ?尵.鞰踇燘螤!(囿M窵P玝U枸pJ?:?E摶? ?:?,?:俌B傭*KR蓼緍?噩L顡a6?6+2??)?UB`JsV0?? _B?4/晰鞟O釡Ne)A ~r谌 ?锰爾NP體?,?碈勵3滄剔癟3?q9}S峇$你A侾揇?!?? 顛?竃屝s奈??撗裄詠孎t?Cㄏ€鳴\`rXr??'蜃72丶碠-剋9婴b8?€?{0?鳿ra"僜nh[j窡錐佦a)斞+?€2?%挻M㈥|畞m竱n?4p堽 &bUQ?E亷靴4A丄N,藣囔藵F貢To(蒅`歄旼A洺?薌l齚:唩=鑌0<须?攦矊T蘊犀=. 6螙(麧S?B陌鬨0,J愷?????搮??B.<2餳M蝺I`閸螌?舳*樗疓?腱'買港硎?毦魹RX桬%?Or,蕡s诚*?攠<跅@cR?j]DUR魑??谗穌%r?\種曇?l咐豏?髶吹藲茈k舴Q昁劷敼,僆?翼谊歍稝1蒏?4家?]04綤汯nC?&旻,遏砈F0撛礢.-瓷书K?岳R螸e'漓?L?斚薿K?T薙.?T?X叹4壩9/:WR?9.?2羲薐6缼S .餭础Sv^ 0髓O|L盡D%3顮4z3Idn?鰰狷#tPq5h{!7Z?刍2 勂th薁!頚€?Y蒹1S?粣醜?????<瓮p气€j橥??4筄?@塐KB?S?10試S谝愲趱俌F?UR 4狭浻芮!曱寏耎l?ㄇH|? QH鼵?竆"1M'?8?a`?Pl鮜0梊輒巳TM,8'1恊QaA& n?TR鐸?袵炭待蚙x翕6yQ么赳?a繨缷键濢kU& OXH醾詐hQEN??C礬"圠蓻( ?鏠e@;旭QP耘D"€/楘rB嗉?t愕 T烄r瞧喝?术 ?{脌?uE€?M4{謹4T揄Ga;巪瘃?"S握齆kS?8籇脑?Jc漊0寨RtB 竰?5qS錌勏,盶0苝朽詊啇!嘰0006K?? 聝X @╒_??`-??`艱监ua .嫊XrF?睁瘐R鯀蠪D綍係鱎xh联譒U`4n蛯T氧唵o9璿幼F蔝m"齯咲諃 rw+?榎r`¬(齎?鉖似觠?]K鈴??靜T.$mD牡?S?鄠璭@3篆;@7m??毳磀鹑!踱穑翎籕[滃跹5P 暤7;S艉/B?!Mc肎股T籛蹂(V?衷蜾瘯<7骩l觮厙^属坐ri0罰招蚢VX墪崽僡[x9 H堳]惪?瑏^&m?偧円賆l悚?晜曓€籘嬓酧Xl0v??蟕€豲a日u€坐3絿U#昔'0+咏8馷怘T!XXry峎@琛$跰Qb箲-?覺 o鯁俓n|臽-q?b俣U慥c娗抑  ?3N=5峷Agr龑?ra橿韽?挟0?"浔縍が??D浏??iG???:rT!僿g勼M[7;[v{知CsrU9d譧厝yhh@厝~煃qT4套_Q廣蛌螟旻5?P僺*腗c]I??T0m哣)S晱覺諿?尐c揹A+?h骲?譏h鮉@?s>P?弁?鹶uT??纸` 廜5賑c弁鰫?j蠌?Q隩mq$脊?(V?FrTr?畘肻0貄m旵?[諅Nㄖ?d?;礠m?艊痍峔$祇矋B-瀞氌荝埈锗N?捜/8? 鴅.佰40>嚻隈,?t诤岼禱r踈rk嵁??WMm?3[褁5溗 陯q丈鸯Lb? ?`昄m?4旾?^d!5`7?aO説?醯佬-3H?Um榾囤挸^恄涝NT陯?瞇PH?儇漚?UHrE 牭rjM稌?S錚sN6篗XQ 5屾 肻r捽璝Kqs緎-珠]糰丯砫5??桟f纪繰e^?@豙覲€5蠫a嬾粢祇M@wQyoK庻U埒e}颊[禵oK拵@坩n粀xV齪E轰鵓uo5鯮??c?. Uo5羨騖n(%覰pるV之圝鄨燗qt献Z?請瞅躪6敂躨E茇V婻{qf貃3l@銹qH媟!VS]6ペ'q@> R=E?闟?+ Uj跏旞Y覽藕uU崭栈r誊莗澔6瞩s]h't? mJ牞8馫UUuD挱m2z浶勦圔斶茌v'P縧]AAf薱h萛"R錠玴嵈覺厅;U?鲕幤逡c冎?zPTuUQY膈鞿?錟箙齁en5儡n拚ov?s=Hu劫臵鮫a俰t輔U磊籾uH5n?jS?繳PZMN泥?QmobF?A>碷i\ ℅rT焩现傇鈂"暷2刈v4纬=]?鍅n=:rh*sf庞w_凿蔝t8臶輨8]?=?须G兆7z=n呟桱蒡澾u?|4u]?ca?輟嘧€Yw硎t]塥哉崤?^€埼r剔)w璢?俰,槮蹴}w?n繶s鬥憂鉤c奄{j?内?:溶]E"JVJe~?貿Hg濼3r卌瀑V連ce??e^諃?9?8?n? ?Z?滗嚜?;t鎹z翥諐# 黴#?V .n耂/Dk?萲4牊墲跳(i J?`紗陁M5磍罇'⒁?n`??4枇r?牜t 揃崔襔H€4i?x4?訆?■℃3噫? 鷃摹 zamn?出nr╄W儐ж兴MXC歹凨Qm4煸?葓?匒廥G堫誁'€€飬簾?L对燳?籠"楡W鲀?ㄆ???帮M嗉?Q豙apfJ?咁鴃樟?蓉c=R薨死秪賄竜笚嗛煝彏w骳Xn懷?K8t穓租'鴗5澡e疊?kx畒a钹>嚊ね鸱Fn?旑?|:a09禱$鑓u鰂鈂n飲嫎壓坵>"?薬埰!8~Z餦兝x嚭M嚚#貙穻J謀$?讁塇hM豎塇 $鵟0髩僝烙髩`@3bS囍#?KX風?厏Xf5S吀珮haw啒遑j??枾€^趽殠呒樥硆€#€??謏%氦%q?)9?鉭?.?bBDD詟~硭:rX3警nv吲L5?燫曥?ヂ/筒N衝_箹儌!?SP邑???=??夽B?鵲f`滝~)=?D妏癅L>紈袌偓?L?YI?圾!?,殐霡€餍[卦G?紭鹈??ROs?dR饞cG嵓Q臛!鹦霉渟拌胵|A?靀q妫曾P P%神\Px酌?TI8峙段#纾?? 艦巿?南廘Q塘?|?B?嶧9!c崉 '€W?hA駩LY衙鋮恜?椓駩朘盶??y*浣&芃iA{愒饉d=撚?兠撲p漝鍝tPRj?鍱A漤慭(Y:?n,yP@iDy)9Br?觗噺f=貺臐4p燿??p檇V橗聲 朘p锫e?&PhBe?Ap檇?D&Y6es搸U:Bd?頞嗗5r?怟e旻D檇e旻E悽C鮘0t(飾磽|)-求#??萴n軍餷4? [庖汭rL^r5cU1櫼慢r,R弐??dR劂?躶摸?&巀?捧設1餏?諿???,?鳿n??悿B瞄溆攠?嫈^a?? ?pe?暬?阥1n)鬘螎?瘇恙覹怂}唀S鑼?锁??襃O奇B礬n痢P滊%n?AIleq橢貙鋇複€QD2p G?膄mJ斝?徥$?}夜+??旙5E鬵QTF6芛?#騝?焓冪K4@[s囄8L贾aN)CX旸芠ImR騖0006N9f儂3懳M=?~熷9`%sg陷=>秱螱9屾楋钉?T搓矁4圸?勏tl鄦鐐?6!俖KthI翈是v煨覱o3x籗勌苼#秤????XIeV蛏襵%UT?qp 傄#$瓕?L?譮|C佪3椿斯M溥b縈G? ?d4綏L籡K脸辫踡蛍?辠閰?瑁 8rv芩u9?r釉A嬦h^壌:bdghE4檥衳樳AH質篍荬9ZIVs捄C蠗.謶症鏽w<鮖N?D岰.惕堆'IE礔=Q3?r?K[T舢桭酝4r)揁裵x桹褁3?吞椻<于`榪D咈?偾笸彖[A€P跽i?攪鷆X跧毾Z闆E?d闇??YQY?鬨樯E?QE?viKBW谳圤Z?fOkE琴?顱^d址轹忤L?M勂5??,?WgSt豋"L6燬H= C规54ms:箶 eR?沎??〃:輾榻j#乵河憈諙6﹍諑jbX5?K誝b匢gje┤L鷯 )j枾n _V痞霆j峸L躗暕.檘T艰n:蒀Ix@4詶瀋t诂IR??1~?癪w霈c+j緎絸庴暧?瓧騼~璿雍g珫猳Jj拊??哗,瞍?!瀌瞽q??萛$Zbrv?喎cOV%爩樽珽J!g5?鮇坞B?k)玆:剃?茻漐蔭9~o蛫阯礬0T剞祲+隲腬0000箾軏?幵=僟⑥獉瑓hm詓楃?e节輏Kz谢oX潪`璂遮疶€?筓詈K嶠-g€錉??鰇€?迨噗俓"?R@2 ?€鷒rTRS1鑏糴?C糆謻U蓩靛u郳賧S?思?燱?Nm怞?法€餈栙?璓r`9M╯s#|X澖庼n蔚脚顰?鵺^鮰莟燔Z?=从套?_eB曌r柘鸴蝳驪]轕e:涜X蘸豂朥N藵?閭CS眢蜇窝R閛?M郗%蹡?鮜?辳>@C?]EUj?渣N睇僱*B厈n圫Y艍扎僽OP&つ詮咳DU^e\r 鮎L薅?U 捁rV搃?环f罄卷秪?tU'霅椠?=蟄Ch?輡??颱Rk送I旵pG伴??@爾?傽鯅?捭矾?輋??J0]T5?Y鑕G礗鞲飙羏販*UrS rz%餑uY'层???坷誔赵餕6溗/?M4\-瀤餦p?剀rq貱V?1LM膖垣j]矾郃X雠姿遹憎揮誾ヵ|n]卟鞟S狙?U?賮赏踑'_w$窦EY+煌鏔6]h?粙雼干>U繇'菐t薦矴*渙梋+'*w癯葛昞畡櫴誘仳糯飕€1蟖s;Kr账`"孼撈嫉溔骔.T軅掤譚!扦毅*谳W€嘳l乺r売媜咸;*晍]!€u疧曁6债n`4/se?TDH.?庩CW?7E??擃?X9?_g?U_憍臟M糰b?AqOx垥\Ur岽?湭衕谕y毉N礫&敒qV枷|舛考灬酢髰kT餟_崟Aw9苠頸7=簳斮V?偿7;;8韻NE??ep!n处? 岡?Q?酬??丫r?譅`?€t壟嗥c憰?l?C?g淋?@襛B楟屌_o@窰(7蟔@`囜*伊>I誷湟?滬`讋鉒M4(觧?'媴+侪?樱O鳹tZ淤 r>搓?Od醊?巑:ah?)Nd).)疶魌設=?唒甪Wt墔?`?€?l=)懶盀韚[单|t狄懊r敹%屹r埗∫昷???J??鈡bI*tКr嶗羧Ppk??役臐<峰臃J|\t撚#魟4[}魴?懾j\n牒??嬰嶼□n糇G}鬽襍?E樼襵@X禱0鉥J=K▃?G漒n磆腤R 05y屛寸s研>=0爻?|揅欷?NG駘?屾R齗聺晫/賐翖 鍼袀?攩Z愊B昞n喧q窑?Yv痢 ?箌散帨g闵謄€*?黺HO烡?4憶阚憥GQE?vbo茕W蟑垒讓饱縼003鯭溊'_>@ 鲖?~?峩鳲澗?_#秕鲽颼嚣?&?$r?雷?1蘄A?2禄%詌p崦o"4\?J@悬?腿"紛qyI脒rD碪欼恑w垓襂峔$爨蒊%<0慺Ie蠺?W縡鋃駘?&BDC榍??賓?t5O嗌?袴B崓跠馧I畬沱]~@?Q,?)瀉1,3?產8J橖h"3pRs-舵涝N??揜Yh\随众閧?F穲u5!?{錝鞴?$??9|鉋刻?际沟?毉"逵?5y馘51鐗6'yM詂夸刀昂荣叝:椦錦$覢呝蟝O?g鵌uwB岄鍙?璣盫脼T%j?#?[蛤嵣嶅臻落螭眠?q梫o蟻e;?漸鎎I栥q[简鞃?3?鬺?驙翂 r嫣CJ&愻1劎=厅锨D?r坋?}筱?.?€垩毷^xY迅'€.??啙Cy普7S榝滄 r?8#G坓?俈*a弶楲靎(s? b竆$ㄑz0?€h煟???`▲膺に8j?迴??k闂0鶤榍o閽虁鶶闬0z}闂Юz嬯@?杩ゾ攝k闎蝄0s阘 zW枥擻0m赀だ€n?抸¤? n缦?鷐闓氟祥鳝?zq隲"?猏0o?0榭畘﹝熼g€r煯薰鶩檄瀺鷍棻>?申钒聑5桤?忷F乏-乗0??~窥凌悉祓薇z呾拘a靽逮藌擁м禁;項?龙?俴>佞?膝竖归G?0s脒?杸d嚩?0鷂靜珷k?墇犭w稙鈡io窞楘q陊聑涜状~眥@@1?嚞~郾_餆ㄞ輟渺?历孙祝>込魂钱^鮶顷o?轡0s韽稻眤瑱嚠~喳G璣嶜Ы緫€g铉礊近9钕絓0s痃┚!旆?{癨$┈鷔頫0??╘$灟麵頫0 麃?名}閔 {逢前z?砡rz?Я~%?靭ヱ'哼{??奁??狕U闓?穤彬近頞鞭衶i饂?鰘涹/蔁{濓w獮旤垓威賊0i铵衫??ni柘鑭W??鸔饂?+鸄腼??樽?騵_?н 畎^酊龟o癁裹冹缥縍|#?ヲ绉殌i飋?2|r?菫歿嬽斑z蒸?&{瘪_CГ硭?衺巣欖7?滬!?朁隭az泐儠z曮吲i齼蜃?徠?_鼌颫坜箭E?揖襖0g鸩@mz嬵滋雦?闛舆 {拽?龇?_??脄a騙?V鸰鲨 ^桸%?礊谬1鞳政獇r魒孵 縴}??飡慷_r?魺貫瀧忴偽脋!畎$繐€g蚯?堻鼚?檧c蚯揀Y闋煋?茻€zヱ??zU鰋羱鑭楌熢_!}嶌礍~_楱>酤5蜱芧讃楐千郀頶襙b~w楚宣楍缵静鷳靇隷yz嶍瞜2z?徯?z羽O緸靮S??I隣蔁昞0m鴤虨埕歗煷{陊?&|鷱鹂鸤r邁娉嚩?W钸麖?▄-閲?衹%镺?鮺g?=鼀?錈D|欥?_曲k裏責6栾蜻紏S??r?琠;黫钋噙t~╆o蘝8Q{Y鸒u|Q??讂膣镝>?嶠?焴O頌膢锺贤棵鷩?萠0{C蝻眪q??E{%?瑶蟷愽颃s髫/q烮京j?樽鼜煙附髚0賕?澾b>韠&颯隚蒋Y?鐌莘+痃?澗旫-靮?滔玙$鱕嬜7軓F灲=~}?曪嬚鳗瘧`=秬<魤鸹?硷H偨Y铸鎈0抭'?o娍艀鳨8擉W瀵滢躙0002€,拯C諻迯`^:z鳋k瘅?K焋卷{j?斐? 蟧寰衺f鮍靋蚯枱堪~@鯐鲀褙O炦6組{?q瘢筘蠙_-?z汌欩膣W?巂?3zE栌蚯錹禐綊魘H??'稅?@|D鷄?缜摊M^?p丠魰雜?/s烅纑{◇篾非/睫隌Rr頁韲擾>?両]疔熳徇:咯丗襦W蒺?>e|`顒 g璒囘yz羹闟筘n弍掼@r|鳄i? 夫?薨敬}汋??伐0焜繦~s}?褬r瘻だ靮!楂岱寨H焼>4{0r?鞧赶R?緝|戱#?蟴灴A {~?瘥?r镥?>焭T齗?狲O禶=昆|术戺#陾e瀾荔|P酴骩貓"/悶翗??震??O?A?鶗駹'瓘剔?{|帙?{銞菑み-> |\鰕镃?祜郶岪RzaU??銗C郍?z寅I颥逢??蹅d蹠8撚h?@??棹-駜?诊?w罌{鯢 ?釶~?!?麿鴂=寕#彘阒?J岄|r酹 ?H0蟅熕縲倵ル坜?O,繈?易痫` 垒|丽>垡囷彏揸?}a)鳜7蚕梧唤陑kv?h!弔4A6?K襖n密囚弸_0=V~佞?3鵻nO翣{@B婝U昴 嚕颒`錋d€p鶗?棬P郀罃z?欥銮òp掬=Lz5Y?娣?肋?Iz札○撿釓鳡O>?狓?s?鱚薪垀N?瞍w∣鸮Z€9躏???匡僔鮹蠡?獜犨?%|b??A蠪烏窘}M?{?? q@? ??秭攥灴y梆喷身殸Q训烄#巪D鱎擧?抿炘E?<鴵3篥埢?剎? ?'Z)!?褾o?n?I敗€KA抾?爾?饞慭u詤??tv蛜蔦0逾@窐??t喦簭螈鋅$匏H?,0pp@藽nG勊F['鑐铝?讌穁{@aQ矫B庥肋葻 ' 釖闈fK猏rP(_╬? 稡a 犙`S醆$??趩j傛n8j庂?僒XnD坳Vr矆亍s?呉壟4hQ(筡0?J郵??沫瘔C1E?M?鹞懔?hF?颃Wt 窓rわ哯??$!@R{矲喡堘?PH芉敠?9Q+?afb(e???鋅$*??T鵟nE?U`?益^娚?B皈咮LP扽*8T矮€獵朓??锜??矻>婣?瑧/慪箔姼蕕,??玢P橠肂O v+x磳毪倝?F?h?蟗篋??狞:,瑧I"怕A壔瓟麼?恇q舤壦?現脯憅猥赂?j+?fW?忉爡刦?.▇葹撒b潘夣?淪SPㄢ陇娚r諧皹\l扳凟紺7瓟黀禺慍谢H#??T泀E闲??铅!l?"m3 壧g.)A?姥:嵬B瓔?Z0;j3 奺%?%η蕾哱$o娿椟k4慞巡?AM鬞構?b1瞒c?J12 (z盼??B)訦扰?":Ea塻A?G譾褌需EwE?n碭D:慱#艸A$~哱$?吁q摚%鎈$?#璞,褬襞崒c?鉢"h睶?咵枆h{?k槾(G鈃?dM???浺Y脓屾?-Td璧恀虐C€q糩H笋2怽$欧C|%窵,凱脑媞^?辣?SE繉?44駍c,?嫎Z'dU敐褞c73 H?J4糫Hw?鉒芢r垏?iFDp?L瞈$対.5?據碑@獷鬊~|k?!<"娕鸏mhy$珹??巶60 ?ib牑夾H鷏;(诶/AH?H樭馾缙坺}r癣処0篵?rE?v7jDㄝ.碿vq尭Pt,砾??㈧JH€%#t)P h8€&?>甘?\+d?J隙P爇苈??i衎擻$?Zde3霊溃侭擜??竁◆鳥?C z7渘竁?韧?#???樺h?敓陰f樶/?拿疈'躢a????#?]峣鯸$? 膞銥C聟c?8??丗齯?l?葾 ?WK鞐?郭?窕惘?F) f﹡P?鰠???h?p胠??4F堣軜@塖 猏$?(羼轈?k庿|T?h瘃罚?獷葞??(?海蒅審(崬躢鋚糱?繌4f0魕構h??姀慭"S?髴鑿廏╘0察? .h笱栀緢糉?|.?□賲G睭opt=r缂萦2呭?竉Q殂?褟?2?润鎜L迩稦h€5/??珂#靄" HA?}佧D揬"瞒Dj-1^Q鯮2燦?蛜?dw?"Pt肻0幰劧?娱皾豛$n厓^A"3?á橁G駻 ??k鹗Q.?F????a淺"A?橓?tm#d$F闬0?L鷝;8蛏弨$#€?1B3剽燼Q???;硠g埊、荍??逾罢掌類伄Cz?袓衆$G邚?咰?t`葢d5悹M ? 鼟裚S悂r^鋰椟侓牡C]\九jB?蓑$cwG杦嫆9j&癄aO?$?厧@RE鑎狒D磁L4,7柢堳銗焮=蕯?K%盜U懔?GrP吴0貃?Y`3 D?BD?h僋汜梊$凣聒苃$c萙嚮!??VR3Q狻憿~6C詟?2??儲4,MXrG節腥鉢0湐:?苎P$認H憹/鼚yЬdw芹@=?N(鍬a@()n3#?[痽侓?"躄s奊鄜榐鋖?燞D詧.(E柩熄GVD揬"?膷i)6$y fd~€fC4d:? ???紩釰RWH蜦窤?罓繡 T姈Z@??蘱2.(F厭??劉 P怮#G捄FRbA尌?囐悺"?`n葻渑GiG8夵╋4赒蜨CA乥L?(騢8ねG枔8M,?縃馾?N軂Y軠帞???@q&胞s彻5k3B?u渻?(裓$谞貝U%??圚g煜い I瑐6!9耔L1 覠葢$??$?5L?n貌#6{?哈滗??'v@Q8鋮0??GN7T@鑎騢銱桑?昞n;Hcv-@)?bfK??@长鶬鯸0?甂h栋0??jFs)庥|P0︰#嫲yxZ?傖?CC潃?躦??.O:ItF玟?欳M€]仸?P`X?郻屜.&ll ??覌狼46G暉+襍dySR?fJ駮?濻敭9KO戝oJ鼤帙W癷X颻薥n?,2WLap%T絛晆,1|眎]冶?曠+猅浔i^蛉%:K曶,扺毂iZ颐?K暤,睸瘫i`彩%xK?,襐< \移/??,rYl盜g怘%徦?2XYi$謊T??,翿源閏r哄<薔枊-ZYU0 鍩薚數瀂湬?蛘瀵/€O,嶼4?蛏宕蕐€O,甕末8蛩甯薺暬-nUD城㏑胑核n{y-v[?j贍Kx~w.[d祲k飋%窴m?鬾\4?q裔覭x€?Z\ 捸e?瘱??筰q2貮/??.*\#蜘r忆ピ_,?>[欹﹗蜱%~睡?)襗|秹u搽逖蕼梍.瀅$葫n掍遄Kw杫.綴技B虙?錕昐/.]く yr礤谒H棌-*^即蓒2疱菥棡?^yz餘厊梐/_4?X蝙リJ饤?闿$緄w矟%驥罆9/歗嵝硺帛%F鍞?鯻堞)€ >%i?8)+1聣`2?Jq奫汤?r?捥昣0<拊?]R?w/Z`斄its%郘楏0r]d咯傄騠n?椗0哸t蒂蟅??柹0蝊劽9剅楲5榶0瀉渎檰r屠€iz饮2l漏呌&#=恵z_筅囉w蘏?淛b蠢ЖSf?3樄0e疖霹冿[?s{1會唐俕?=蘬榚/眭|粕嗴&蘰榳0蚰粕?&!Lp榊1*`S组?K鍭蘳?魥d莥€餆蘽?1鰀<蛆蟉&4>Y?-Nd溔i€飱虋?鰎d閾骪$&M虙楒魊cC止?&&S虤?躅eL砷?X鎀挞檊2抏|蔵€廟?=檣2瞖苁閭礷^滩?糁e焖i橌.&a毯?Y抍C厣?0&g搪??f屘i冿襢h淌櫡32f继銋_&2?櫴鼍g<蚡7`I&:傍偹3瀉)蘌$?灀L榓3嶛次Y倱 1?x樳3闺L烯漁Iッ??3jh$??=糒鄼?Vh3謾gs=鎫虽?0襤夹7饟9^逋?pRb<焉∠I灚L鍢?Fb墯???欅4俢 覊b&揕鈾?秇嬭9湷f溚}?頷C蠊s8郀?欶i苯к揇鎈r舔|i3杁$?骉&椞銂?Bj献{?.g??1網軖?畟 毨銎k瞻YY@鍭:~E3騤S苌?Rfu虜?2Zk家篃痟&r虦氾5e讁M&就tz?0樘?昐D^昄鍅?:j缀觕Μ蚃z?:j;豬湳巉屯檳4E?俟渤:逕L鍣?Ff斱壇SR灻挺?6瞛 蜕?Q?蘣敨6趃D衕n覢?M?wZhDi碼?鶰笟GZl4┍ NA:欮pRk踚兂Er鞟:泑q鱘$?竝NA:洀4Bnほ鶇骃X|=Z洘76h霓訌跭u4vo|莨uS{驺? 犉8榿YGN?#韉p|?蘡盆?q匹AM ?\_x豎g? 矊?ut澵衫? 瘝?>Dd?瑷`"鵉櫆0%疡X譎}茩f9-?CX麘漒0KJy:?L揾虸V?苲?(糥x?o#I2駠巪?:.8?癱T舩崊n嶮鬱锠n璝c虦?緍Tf朌襓橍?un群1 湶A((?E踈$?t鱀cXV?!^楼嘯n?%榭效b,??&)?T%?佧蝨姫?鱸=Js?#?G.\?`x尐'屏?&2蹺X颂榞彭A?QERS0犗倌??€斕峁膕u$隌'8圽n?T91g韦#i8?拟倥馚gUE?碐r%肩9諔漜鮊?-8?L;x氀愮\茡?q?p硱P嶥銫$P擊超配$??LP6PNg'N褱?Fts$);ò'XE 捥冣p?H磯€?Dne .?丕幹!舤帒9?r槲盷#蝭娙嶾抃缳??f蝸囩;頿D喋遱僜"?殞茧齖?畵? N麧&铑+$狴佑ΗP??:^x滉s◥x葲濛:?も?裖'V刨?:襂碯Y茟橽貌=鴧倁滹阜尞a鉔耤?n.3!??"鉢0Y嬎"歸躛哫s揼濷A澂=/j芉3穃"?煉趟:5??硲a熕f寋?CV?!姵惈5 ?T*0?殰~奬n5?hq1;塰徝$轍?鋏0?C詗j奛J??p蕬庭C??穼t?膯囯 Zo祔L錱欧OX±5僜$?蒰鄋?殆d?2?餲B櫧?oi#拏V??Y>萈'语#^??撮聮計?0m`[P9ii坞焤0~}霐敹?\脈VX疙汅5@>@萤??5K€4)椐鈑j~j斃N篥[谙蚖敍鳿$岧r轘骦]並煯v崸{[P囀'зO阨顇懅砄鎭蚼Jf%歕0尼杼S€莱楚劧'唒? ,?K<諛RP椿暲`\猿@]g?yR\8h? `R????橦勭Bc( 7鏵辑1捀cwMo3詓G@戜`7zgFP"(夽?m鹈茞蜨?N3>eK:t%,?燣桵E鈯AV烵縈:q??E墐摠%-専)@妀趩SL?匨E>dA揺s瑣書珶橝z亪7D隲n賴敌.J輁r ?誰腒暢n犣t@n2桂:?V毀籂甛"儛?l森?譙啔陘Q[? }爻侹?tG0T緣忝回:幀n?j!Y?!露殑?韸?(-m?羓!n巎痛(E犘┾?5@J娱晑6爾覅彡T+A&彙b餤傝VE6i螢?K?8B鑓aY(_?Q粢W?%`擻$n\3???-4Nˇ?萋岕5罞P?釒唸sJ"芙P* h覈+?迓S霐醒Ubwf鐷裻'/\x蓄nr鬨riF亾T=▂?5禤瑼?J?睵鎎?d* P驪?F妯re8'P诱+礷???び碊@0?慏mN闬")├7??E7X6$dU兕r&0??f鍬?譛?P瞘?赼i営叇覰d?a<?Ψ鎵tJ",徼ク矤?d敫E€:骆(ρRPQ S-?4喅垨OU?痛?皒`G?峠K?鳳b标 ?饍緓B k8.b4‵?V%UㄅXkJ仠xQ帥萏鹋?n莾/T鉌?ゥ氃a蟎0m_eF"嫝灏!隁嘰rYm1F2R觩 I據h牡GⅡ?貁禯3爴h细?m>嬟hss4ds褎Qf⒙峲‐0N浒廞2?誜瘵5轄釪諑·5瀺褕郥詐麎唊-B妿"圳蕼俖压 ^n}Οth?qG8鯛S-sQ蘑?| +:-撯垨hU-€x4盜螕逖閙譍濃鶘€?h鸱?廏? 壴0渝阳?U苏??设B摚?顝酊敻4.ZM?[感弲趑?I`P:qC紩胋听溌佪snu?V€€伜?n?豷?T壷?B鈢?闐鍾?Qn燷???€aT_O踏x飧C90蛙联Q?軮n,郥??qC @*5J厧?襇煩IT拌I??偅y挏陹?狫珓i& n1瑠憵Mrc缊樺jy眂岊y檱:惚N銥桞?M*t6ie汐n颖澙嘁yznj"t朽壜J/? 攈?珅??f禱0济Z戵r?訡€ez&k`娨p?毰s.?$?t哱$镾伷#DM4xC歎嬸)W覄薐収?jV€0*0螶??髞lb€桖琡Z暪祝vT?M???€?佫DΘ_剻ZW愢穽绯窹阳 +疥n?N?GS"泙歠$黬??圴?瞪5pT?撘€3Z骕k?);}else{header("Content-Type: image/gif");switch($_GET["file"]){case"plus.gif":echo"GIF89a乗0001铑頫0€櫃橽0!?,!剰┧?M裉*)緊) q?埖?尿L?;";break;case"cross.gif":echo"GIF89a乗0001铑頫0€櫃橽0!?,#剰┧?#na諪o~y?乢wa斸1绫J?G翷?];";break;case"up.gif":echo"GIF89a乗0001铑頫0€櫃橽0!?, 剰┧?MQNn飣魹a8?y歛哦甛0球;";break;case"down.gif":echo"GIF89a乗0001铑頫0€櫃橽0!?, 剰┧?M裉*)綶W⑶L&贉贫昞0球;";break;case"arrow.gif":echo"GIF89an€€€€!?,n俰柋嫗?厕籠0;";break;}}exit;}function connection(){global$h;return$h;}function adminer(){global$b;return$b;}function idf_unescape($t){$Qd=substr($t,-1);return str_replace($Qd.$Qd,$Qd,substr($t,1,-1));}function escape_string($X){return substr(q($X),1,-1);}function number($X){return preg_replace('~[^0-9]+~','',$X);}function remove_slashes($If,$Jc=false){if(get_magic_quotes_gpc()){while(list($x,$X)=each($If)){foreach($X as$Gd=>$W){unset($If[$x][$Gd]);if(is_array($W)){$If[$x][stripslashes($Gd)]=$W;$If[]=&$If[$x][stripslashes($Gd)];}else$If[$x][stripslashes($Gd)]=($Jc?$W:stripslashes($W));}}}}function bracket_escape($t,$Na=false){static$th=array(':'=>':1',']'=>':2','['=>':3');return strtr($t,($Na?array_flip($th):$th));}function charset($h){return(version_compare($h->server_info,"5.5.3")>=0?"utf8mb4":"utf8");}function h($P){return str_replace("","�",htmlspecialchars($P,ENT_QUOTES,'utf-8'));}function nbsp($P){return(trim($P)!=""?h($P):" ");}function nl_br($P){return str_replace("n","
",$P);}function checkbox($C,$Y,$db,$Nd="",$Pe="",$ib=""){$J="";return($Nd!=""||$ib?"$J".h($Nd)."":$J);}function optionlist($Ve,$tg=null,$Oh=false){$J="";foreach($Ve as$Gd=>$W){$We=array($Gd=>$W);if(is_array($W)){$J.='';$We=$W;}foreach($We as$x=>$X)$J.=''.h($X);if(is_array($W))$J.='';}return$J;}function html_select($C,$Ve,$Y="",$Oe=true){if($Oe)return"";$J="";foreach($Ve as$x=>$X)$J.="";return$J;}function select_input($Ja,$Ve,$Y="",$vf=""){return($Ve?"
n";}function selectOrderPrint($Xe,$f,$v){print_fieldset("sort",lang(49),$Xe);$s=0;foreach((array)$_GET["order"]as$x=>$X){if($X!=""){echo"
".select_input(" name='order[$s]' onchange='selectFieldChange(this.form);'",$f,$X),checkbox("desc[$s]",1,isset($_GET["desc"][$x]),lang(50))."
n";$s++;}}echo"
".select_input(" name='order[$s]' onchange='selectAddRow(this);'",$f),checkbox("desc[$s]",1,false,lang(50))."
n","
n";}function selectLimitPrint($z){echo"
".lang(51)."
";echo"","
n";}function selectLengthPrint($hh){if($hh!==null){echo"
".lang(52)."
","","
n";}}function selectActionPrint($v){echo"
".lang(53)."
",""," ","n","
n";}function selectCommandPrint(){return!information_schema(DB);}function selectImportPrint(){return!information_schema(DB);}function selectEmailPrint($kc,$f){}function selectColumnsProcess($f,$v){global$Uc,$Zc;$M=array();$Xc=array();foreach((array)$_GET["columns"]as$x=>$X){if($X["fun"]=="count"||($X["col"]!=""&&(!$X["fun"]||in_array($X["fun"],$Uc)||in_array($X["fun"],$Zc)))){$M[$x]=apply_sql_function($X["fun"],($X["col"]!=""?idf_escape($X["col"]):"*"));if(!in_array($X["fun"],$Zc))$Xc[]=$M[$x];}}return array($M,$Xc);}function selectSearchProcess($p,$v){global$h,$w;$J=array();foreach($v as$s=>$u){if($u["type"]=="FULLTEXT"&&$_GET["fulltext"][$s]!="")$J[]="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)){$tb=" $X[op]";if(preg_match('~IN$~',$X["op"])){$nd=process_length($X["val"]);$tb.=" ".($nd!=""?$nd:"(NULL)");}elseif($X["op"]=="SQL")$tb=" $X[val]";elseif($X["op"]=="LIKE %%")$tb=" LIKE ".$this->processInput($p[$X["col"]],"%$X[val]%");elseif($X["op"]=="ILIKE %%")$tb=" ILIKE ".$this->processInput($p[$X["col"]],"%$X[val]%");elseif(!preg_match('~NULL$~',$X["op"]))$tb.=" ".$this->processInput($p[$X["col"]],$X["val"]);if($X["col"]!="")$J[]=idf_escape($X["col"]).$tb;else{$ob=array();foreach($p as$C=>$o){$Cd=preg_match('~char|text|enum|set~',$o["type"]);if((is_numeric($X["val"])||!preg_match('~(^|[^o])int|float|double|decimal|bit~',$o["type"]))&&(!preg_match("~[x80-xFF]~",$X["val"])||$Cd)){$C=idf_escape($C);$ob[]=($w=="sql"&&$Cd&&!preg_match("~^utf8_~",$o["collation"])?"CONVERT($C USING ".charset($h).")":$C);}}$J[]=($ob?"(".implode("$tb OR ",$ob)."$tb)":"0");}}}return$J;}function selectOrderProcess($p,$v){$J=array();foreach((array)$_GET["order"]as$x=>$X){if($X!="")$J[]=(preg_match('~^((COUNT\(DISTINCT |[A-Z0-9_]+\()(`(?:[^`]|``)+`|"(?:[^"]|"")+")\)|COUNT\(\*\))$~',$X)?$X:idf_escape($X)).(isset($_GET["desc"][$x])?" DESC":"");}return$J;}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($M,$Z,$Xc,$Xe,$z,$E){return"";}function messageQuery($H,$ih){global$w;restart_session();$ed=&get_session("queries");$jd="sql-".count($ed[$_GET["db"]]);if(strlen($H)>1e6)$H=preg_replace('~[x80-xFF]+$~','',substr($H,0,1e6))."n...";$ed[$_GET["db"]][]=array($H,time(),$ih);return" ".@date("H:i:s")." ".lang(55).""."';}function editFunctions($o){global$fc;$J=($o["null"]?"NULL/":"");foreach($fc as$x=>$Uc){if(!$x||(!isset($_GET["call"])&&(isset($_GET["select"])||where($_GET)))){foreach($Uc as$tf=>$X){if(!$tf||preg_match("~$tf~",$o["type"]))$J.="/$X";}if($x&&!preg_match('~set|blob|bytea|raw|file~',$o["type"]))$J.="/SQL";}}if($o["auto_increment"]&&!isset($_GET["select"])&&!where($_GET))$J=lang(56);return explode("/",$J);}function editInput($Q,$o,$Ja,$Y){if($o["type"]=="enum")return(isset($_GET["select"])?" ":"").($o["null"]?" ":"").enum_input("radio",$Ja,$o,$Y,0);return"";}function processInput($o,$Y,$r=""){if($r=="SQL")return$Y;$C=$o["field"];$J=q($Y);if(preg_match('~^(now|getdate|uuid)$~',$r))$J="$r()";elseif(preg_match('~^current_(date|timestamp)$~',$r))$J=$r;elseif(preg_match('~^([+-]|\|\|)$~',$r))$J=idf_escape($C)." $r $J";elseif(preg_match('~^[+-] interval$~',$r))$J=idf_escape($C)." $r ".(preg_match("~^(\d+|'[0-9.: -]') [A-Z_]+$~i",$Y)?$Y:$J);elseif(preg_match('~^(addtime|subtime|concat)$~',$r))$J="$r(".idf_escape($C).", $J)";elseif(preg_match('~^(md5|sha1|password|encrypt)$~',$r))$J="$r($J)";return unconvert_field($o,$J);}function dumpOutput(){$J=array('text'=>lang(57),'file'=>lang(58));if(function_exists('gzencode'))$J['gz']='gzip';return$J;}function dumpFormat(){return array('sql'=>'SQL','csv'=>'CSV,','csv;'=>'CSV;','tsv'=>'TSV');}function dumpDatabase($m){}function dumpTable($Q,$Mg,$Dd=0){if($_POST["format"]!="sql"){echo"xefxbbxbf";if($Mg)dump_csv(array_keys(fields($Q)));}else{if($Dd==2){$p=array();foreach(fields($Q)as$C=>$o)$p[]=idf_escape($C)." $o[full_type]";$j="CREATE TABLE ".table($Q)." (".implode(", ",$p).")";}else$j=create_sql($Q,$_POST["auto_increment"]);set_utf8mb4($j);if($Mg&&$j){if($Mg=="DROP+CREATE"||$Dd==1)echo"DROP ".($Dd==2?"VIEW":"TABLE")." IF EXISTS ".table($Q).";n";if($Dd==1)$j=remove_definer($j);echo"$j;nn";}}}function dumpData($Q,$Mg,$H){global$h,$w;$ge=($w=="sqlite"?0:1048576);if($Mg){if($_POST["format"]=="sql"){if($Mg=="TRUNCATE+INSERT")echo truncate_sql($Q).";n";$p=fields($Q);}$I=$h->query($H,1);if($I){$wd="";$Xa="";$Kd=array();$Og="";$Gc=($Q!=''?'fetch_assoc':'fetch_row');while($K=$I->$Gc()){if(!$Kd){$Th=array();foreach($K as$X){$o=$I->fetch_field();$Kd[]=$o->name;$x=idf_escape($o->name);$Th[]="$x = VALUES($x)";}$Og=($Mg=="INSERT+UPDATE"?"nON DUPLICATE KEY UPDATE ".implode(", ",$Th):"").";n";}if($_POST["format"]!="sql"){if($Mg=="table"){dump_csv($Kd);$Mg="INSERT";}dump_csv($K);}else{if(!$wd)$wd="INSERT INTO ".table($Q)." (".implode(", ",array_map('idf_escape',$Kd)).") VALUES";foreach($K as$x=>$X){$o=$p[$x];$K[$x]=($X!==null?unconvert_field($o,preg_match('~(^|[^o])int|float|double|decimal~',$o["type"])&&$X!=''?$X:q($X)):"NULL");}$mg=($ge?"n":" ")."(".implode(",t",$K).")";if(!$Xa)$Xa=$wd.$mg;elseif(strlen($Xa)+4+strlen($mg)+strlen($Og)<$ge)$Xa.=",$mg";else{echo$Xa.$Og;$Xa=$wd.$mg;}}}if($Xa)echo$Xa.$Og;}elseif($_POST["format"]=="sql")echo"-- ".str_replace("n"," ",$h->error)."n";}}function dumpFilename($kd){return friendly_url($kd!=""?$kd:(SERVER!=""?SERVER:"localhost"));}function dumpHeaders($kd,$ve=false){$hf=$_POST["output"];$Ac=(preg_match('~sql~',$_POST["format"])?"sql":($ve?"tar":"csv"));header("Content-Type: ".($hf=="gz"?"application/x-gzip":($Ac=="tar"?"application/x-tar":($Ac=="sql"||$hf!="file"?"text/plain":"text/csv")."; charset=utf-8")));if($hf=="gz")ob_start('ob_gzencode',1e6);return$Ac;}function homepage(){echo'

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

';if($ue=="auth"){$Kc=true;foreach((array)$_SESSION["pwds"]as$Vh=>$zg){foreach($zg as$N=>$Qh){foreach($Qh as$V=>$G){if($G!==null){if($Kc){echo"

n";$Kc=false;}$Jb=$_SESSION["db"][$Vh][$N][$V];foreach(($Jb?array_keys($Jb):array(""))as$m)echo"($Xb[$Vh]) ".h($V.($N!=""?"@$N":"").($m!=""?" - $m":""))."
n";}}}}}else{if($_GET["ns"]!==""&&!$ue&&DB!=""){$h->select_db(DB);$S=table_status('',true);}if(support("sql")){echo' ';}$this->databasesPrint($ue);if(DB==""||!$ue){echo"

".lang(9)."n";else$this->tablesPrint($S);}}}function databasesPrint($ue){global$b,$h;$l=$this->databases();echo'

';hidden_fields_get();$Hb=" onmousedown='dbMouseDown(event, this);' onchange='dbChange(this);'";echo"DB: ".($l?"":''),"n";if($ue!="db"&&DB!=""&&$h->select_db(DB)){if(support("scheme")){echo"
".lang(68).": ";if($_GET["ns"]!="")set_schema($_GET["ns"]);}}echo(isset($_GET["sql"])?'':(isset($_GET["schema"])?'':(isset($_GET["dump"])?'':(isset($_GET["privileges"])?'':"")))),"

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

n";foreach($S as$Q=>$Ig){echo'".lang(69)." ";$C=$this->tableName($Ig);echo(support("table")||support("indexes")?'$C":"$C")."
n";}}}$b=(function_exists('adminer_object')?adminer_object():new Adminer);if($b->operators===null)$b->operators=$Se;function page_header($lh,$n="",$Wa=array(),$mh=""){global$ca,$ia,$b,$Xb,$w;page_headers();if(is_ajax()&&$n){page_messages($n);exit;}$nh=$lh.($mh!=""?": $mh":"");$oh=strip_tags($nh.(SERVER!=""&&SERVER!="localhost"?h(" - ".SERVER):"")." - ".$b->name());echo' ',$oh,' ';if($b->head()){echo' ';if(file_exists("adminer.css")){echo' ';}}echo' >

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

$nh

n","n";restart_session();page_messages($n);$l=&get_session("dbs");if(DB!=""&&$l&&!in_array(DB,$l,true))$l=null;stop_session();define("PAGE_HEADER",1);}function page_headers(){global$b;header("Content-Type: text/html; charset=utf-8");header("Cache-Control: no-cache");if($b->headers()){header("X-Frame-Options: deny");header("X-XSS-Protection: 0");}}function page_messages($n){$Kh=preg_replace('~^[^?]*~','',$_SERVER["REQUEST_URI"]);$qe=$_SESSION["messages"][$Kh];if($qe){echo"
".implode("
n
",$qe)."
n";unset($_SESSION["messages"][$Kh]);}if($n)echo"
$n
n";}function page_footer($ue=""){global$b,$T;echo'
';switch_lang();if($ue!="auth"){echo'

';}echo' ';}function int32($xe){while($xe>=2147483648)$xe-=4294967296;while($xe<=-2147483649)$xe+=4294967296;return(int)$xe;}function long2str($W,$ai){$mg='';foreach($W as$X)$mg.=pack('V',$X);if($ai)return substr($mg,0,end($W));return$mg;}function str2long($mg,$ai){$W=array_values(unpack('V*',str_pad($mg,4*ceil(strlen($mg)/4),"")));if($ai)$W[]=strlen($mg);return$W;}function xxtea_mx($gi,$fi,$Pg,$Gd){return int32((($gi>>5&0x7FFFFFF)^$fi<<2)+(($fi>>3&0x1FFFFFFF)^$gi<<4))^int32(($Pg^$fi)+($Gd^$gi));}function encrypt_string($Kg,$x){if($Kg=="")return"";$x=array_values(unpack("V*",pack("H*",md5($x))));$W=str2long($Kg,true);$xe=count($W)-1;$gi=$W[$xe];$fi=$W[0];$Lf=floor(6+52/($xe+1));$Pg=0;while($Lf-->0){$Pg=int32($Pg+0x9E3779B9);$ec=$Pg>>2&3;for($if=0;$if<$xe;$if++){$fi=$W[$if+1];$we=xxtea_mx($gi,$fi,$Pg,$x[$if&3^$ec]);$gi=int32($W[$if]+$we);$W[$if]=$gi;}$fi=$W[0];$we=xxtea_mx($gi,$fi,$Pg,$x[$if&3^$ec]);$gi=int32($W[$xe]+$we);$W[$xe]=$gi;}return long2str($W,false);}function decrypt_string($Kg,$x){if($Kg=="")return"";if(!$x)return false;$x=array_values(unpack("V*",pack("H*",md5($x))));$W=str2long($Kg,false);$xe=count($W)-1;$gi=$W[$xe];$fi=$W[0];$Lf=floor(6+52/($xe+1));$Pg=int32($Lf*0x9E3779B9);while($Pg){$ec=$Pg>>2&3;for($if=$xe;$if>0;$if--){$gi=$W[$if-1];$we=xxtea_mx($gi,$fi,$Pg,$x[$if&3^$ec]);$fi=int32($W[$if]-$we);$W[$if]=$fi;}$gi=$W[$xe];$we=xxtea_mx($gi,$fi,$Pg,$x[$if&3^$ec]);$fi=int32($W[0]-$we);$W[0]=$fi;$Pg=int32($Pg-0x9E3779B9);}return long2str($W,true);}$h='';$dd=$_SESSION["token"];if(!$dd)$_SESSION["token"]=rand(1,1e6);$T=get_token();$uf=array();if($_COOKIE["adminer_permanent"]){foreach(explode(" ",$_COOKIE["adminer_permanent"])as$X){list($x)=explode(":",$X);$uf[$x]=$X;}}function add_invalid_login(){global$b;$Ic=get_temp_dir()."/adminer.invalid";$Sc=@fopen($Ic,"r+");if(!$Sc){$Sc=@fopen($Ic,"w");if(!$Sc)return;}flock($Sc,LOCK_EX);$zd=unserialize(stream_get_contents($Sc));$ih=time();if($zd){foreach($zd as$_d=>$X){if($X[0]<$ih)unset($zd[$_d]);}}$yd=&$zd[$b->bruteForceKey()];if(!$yd)$yd=array($ih+30*60,0);$yd[1]++;$xg=serialize($zd);rewind($Sc);fwrite($Sc,$xg);ftruncate($Sc,strlen($xg));flock($Sc,LOCK_UN);fclose($Sc);}$Ka=$_POST["auth"];if($Ka){$zd=unserialize(@file_get_contents(get_temp_dir()."/adminer.invalid"));$yd=$zd[$b->bruteForceKey()];$Ce=($yd[1]>30?$yd[0]-time():0);if($Ce>0)auth_error(lang(73,ceil($Ce/60)));session_regenerate_id();$Vh=$Ka["driver"];$N=$Ka["server"];$V=$Ka["username"];$G=(string)$Ka["password"];$m=$Ka["db"];set_password($Vh,$N,$V,$G);$_SESSION["db"][$Vh][$N][$V][$m]=true;if($Ka["permanent"]){$x=base64_encode($Vh)."-".base64_encode($N)."-".base64_encode($V)."-".base64_encode($m);$Ff=$b->permanentLogin(true);$uf[$x]="$x:".base64_encode($Ff?encrypt_string($G,$Ff):"");cookie("adminer_permanent",implode(" ",$uf));}if(count($_POST)==1||DRIVER!=$Vh||SERVER!=$N||$_GET["username"]!==$V||DB!=$m)redirect(auth_url($Vh,$N,$V,$m));}elseif($_POST["logout"]){if($dd&&!verify_token()){page_header(lang(72),lang(74));page_footer("db");exit;}else{foreach(array("pwds","db","dbs","queries")as$x)set_session($x,null);unset_permanent();redirect(substr(preg_replace('~b(username|db|ns)=[^&]*&~','',ME),0,-1),lang(75));}}elseif($uf&&!$_SESSION["pwds"]){session_regenerate_id();$Ff=$b->permanentLogin();foreach($uf as$x=>$X){list(,$hb)=explode(":",$X);list($Vh,$N,$V,$m)=array_map('base64_decode',explode("-",$x));set_password($Vh,$N,$V,decrypt_string(base64_decode($hb),$Ff));$_SESSION["db"][$Vh][$N][$V][$m]=true;}}function unset_permanent(){global$uf;foreach($uf as$x=>$X){list($Vh,$N,$V,$m)=array_map('base64_decode',explode("-",$x));if($Vh==DRIVER&&$N==SERVER&&$V==$_GET["username"]&&$m==DB)unset($uf[$x]);}cookie("adminer_permanent",implode(" ",$uf));}function auth_error($n){global$b,$dd;$n=h($n);$_g=session_name();if(isset($_GET["username"])){header("HTTP/1.1 403 Forbidden");if(($_COOKIE[$_g]||$_GET[$_g])&&!$dd)$n=lang(76);else{add_invalid_login();$G=get_password();if($G!==null){if($G===false)$n.='
'.lang(77,'permanentLogin()');set_password(DRIVER,SERVER,$_GET["username"],null);}unset_permanent();}}if(!$_COOKIE[$_g]&&$_GET[$_g]&&ini_bool("session.use_only_cookies"))$n=lang(78);$F=session_get_cookie_params();cookie("adminer_key",($_COOKIE["adminer_key"]?$_COOKIE["adminer_key"]:rand_string()),$F["lifetime"]);page_header(lang(36),$n,null);echo"
n";$b->loginForm();echo"
";hidden_fields($_POST,array("auth"));echo"
n","
n";page_footer("auth");exit;}if(isset($_GET["username"])){if(!class_exists("Min_DB")){unset($_SESSION["pwds"][DRIVER]);unset_permanent();page_header(lang(79),lang(80,implode(", ",$_f)),false);page_footer("auth");exit;}$h=connect();}$Wb=new Min_Driver($h);if(!is_object($h)||!$b->login($_GET["username"],get_password()))auth_error((is_string($h)?$h:lang(81)));if($Ka&&$_POST["token"])$_POST["token"]=$T;$n='';if($_POST){if(!verify_token()){$td="max_input_vars";$ke=ini_get($td);if(extension_loaded("suhosin")){foreach(array("suhosin.request.max_vars","suhosin.post.max_vars")as$x){$X=ini_get($x);if($X&&(!$ke||$X<$ke)){$td=$x;$ke=$X;}}}$n=(!$_POST["token"]&&$ke?lang(82,"'$td'"):lang(74).' '.lang(83));}}elseif($_SERVER["REQUEST_METHOD"]=="POST"){$n=lang(84,"'post_max_size'");if(isset($_GET["sql"]))$n.=' '.lang(85);}if(!ini_bool("session.use_cookies")||@ini_set("session.use_cookies",false)!==false)session_write_close();function select($I,$i=null,$af=array(),$z=0){global$w;$Zd=array();$v=array();$f=array();$Ta=array();$Bh=array();$J=array();odd('');for($s=0;(!$z||$s<$z)&&($K=$I->fetch_row());$s++){if(!$s){echo"n","";for($Fd=0;$Fdfetch_field();$C=$o->name;$Ze=$o->orgtable;$Ye=$o->orgname;$J[$o->table]=$Ze;if($af&&$w=="sql")$Zd[$Fd]=($C=="table"?"table=":($C=="possible_keys"?"indexes=":null));elseif($Ze!=""){if(!isset($v[$Ze])){$v[$Ze]=array();foreach(indexes($Ze,$i)as$u){if($u["type"]=="PRIMARY"){$v[$Ze]=array_flip($u["columns"]);break;}}$f[$Ze]=$v[$Ze];}if(isset($f[$Ze][$Ye])){unset($f[$Ze][$Ye]);$v[$Ze][$Ye]=$Fd;$Zd[$Fd]=$Ze;}}if($o->charsetnr==63)$Ta[$Fd]=true;$Bh[$Fd]=$o->type;echo"name!=$Ye?" title='".h(($Ze!=""?"$Ze.":"").$Ye)."'":"").">".h($C).($af?doc_link(array('sql'=>"explain-output.html#explain_".strtolower($C))):"");}echo"n";}echo"";foreach($K as$x=>$X){if($X===null)$X="NULL";elseif($Ta[$x]&&!is_utf8($X))$X="".lang(43,strlen($X))."";elseif(!strlen($X))$X=" ";else{$X=h($X);if($Bh[$x]==254)$X="$X";}if(isset($Zd[$x])&&!$f[$Zd[$x]]){if($af&&$w=="sql"){$Q=$K[array_search("table=",$Zd)];$_=$Zd[$x].urlencode($af[$Q]!=""?$af[$Q]:$Q);}else{$_="edit=".urlencode($Zd[$x]);foreach($v[$Zd[$x]]as$lb=>$Fd)$_.="&where".urlencode("[".bracket_escape($lb)."]")."=".urlencode($K[$Fd]);}$X="$X";}echo"
$X";}}echo($s?"
":"

".lang(12))."n";return$J;}function referencable_primary($ug){$J=array();foreach(table_status('',true)as$Tg=>$Q){if($Tg!=$ug&&fk_support($Q)){foreach(fields($Tg)as$o){if($o["primary"]){if($J[$Tg]){unset($J[$Tg]);break;}$J[$Tg]=$o;}}}}return$J;}function textarea($C,$Y,$L=10,$ob=80){global$w;echo"";}function edit_type($x,$o,$nb,$Oc=array()){global$Lg,$Bh,$Ih,$Ne;$U=$o["type"];echo' ';echo"',($Ih?"':''),(isset($o['on_update'])?"':''),($Oc?" ":" ");}function process_length($y){global$pc;return(preg_match("~^\s*\(?\s*$pc(?:\s*,\s*$pc)*+\s*\)?\s*$~",$y)&&preg_match_all("~$pc~",$y,$ee)?"(".implode(",",$ee[0]).")":preg_replace('~^[0-9].*~','()',preg_replace('~[^-0-9,+()[]]~','',$y)));}function process_type($o,$mb="COLLATE"){global$Ih;return" $o[type]".process_length($o["length"]).(preg_match('~(^|[^o])int|float|double|decimal~',$o["type"])&&in_array($o["unsigned"],$Ih)?" $o[unsigned]":"").(preg_match('~char|text|enum|set~',$o["type"])&&$o["collation"]?" $mb ".q($o["collation"]):"");}function process_field($o,$_h){global$w;$Lb=$o["default"];return array(idf_escape(trim($o["field"])),process_type($_h),($o["null"]?" NULL":" NOT NULL"),(isset($Lb)?" DEFAULT ".((preg_match('~time~',$o["type"])&&preg_match('~^CURRENT_TIMESTAMP$~i',$Lb))||($w=="sqlite"&&preg_match('~^CURRENT_(TIME|TIMESTAMP|DATE)$~i',$Lb))||($o["type"]=="bit"&&preg_match("~^([0-9]+|b'[0-1]+')$~",$Lb))||($w=="pgsql"&&preg_match("~^[a-z]+\(('[^']*')+\)$~",$Lb))?$Lb:q($Lb)):""),(preg_match('~timestamp|datetime~',$o["type"])&&$o["on_update"]?" ON UPDATE $o[on_update]":""),(support("comment")&&$o["comment"]!=""?" COMMENT ".q($o["comment"]):""),($o["auto_increment"]?auto_increment():null),);}function type_class($U){foreach(array('char'=>'text','date'=>'time|year','binary'=>'blob','enum'=>'set',)as$x=>$X){if(preg_match("~$x|$X~",$U))return" class='$x'";}}function edit_fields($p,$nb,$U="TABLE",$Oc=array(),$sb=false){global$h,$ud;$p=array_values($p);echo' ';if($U=="PROCEDURE"){echo' ';}echo'',($U=="TABLE"?lang(90):lang(91)),'',lang(92),' ',lang(93),'',lang(94);if($U=="TABLE"){echo'NULL AI',doc_link(array('sql'=>"example-auto-increment.html",'sqlite'=>"autoinc.html",'pgsql'=>"datatype.html#DATATYPE-SERIAL",'mssql'=>"ms186775.aspx",)),'',lang(95),(support("comment")?"

".lang(108,$Xb[DRIVER],"".h($h->server_info)."","$h->extension")."n","

".lang(109,"".h(logged_user())."")."n";$l=$b->databases();if($l){$pg=support("scheme");$nb=collations();echo"

n","n","".(support("database")?"n";$l=($_GET["dbsize"]?count_tables($l):array_flip($l));foreach($l as$m=>$S){$hg=h(ME)."db=".urlencode($m);echo"".(support("database")?"
 ":"")."".lang(35)." - ".lang(110).""."".lang(111)."".lang(112)."".lang(113)." - ".lang(114).""."
".checkbox("db[]",$m,in_array($m,(array)$_POST["db"])):""),"".h($m)."";$d=nbsp(db_collation($m,$nb));echo"".(support("database")?"$d":$d),"".($_GET["dbsize"]?$S:"?")."","".($_GET["dbsize"]?db_size($m):"?"),"n";}echo"
n",(support("database")?"
".lang(115)."
n"."n"."n"."
n":""),"n","n","
n";}}page_footer("db");}if(isset($_GET["status"]))$_GET["variables"]=$_GET["status"];if(isset($_GET["import"]))$_GET["sql"]=$_GET["import"];if(!(DB!=""?$h->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;}if(support("scheme")&&DB!=""&&$_GET["ns"]!==""){if(!isset($_GET["ns"]))redirect(preg_replace('~ns=[^&]*&~','',ME)."ns=".get_schema());if(!set_schema($_GET["ns"])){header("HTTP/1.1 404 Not Found");page_header(lang(68).": ".h($_GET["ns"]),lang(117),true);page_footer("ns");exit;}}$Ne="RESTRICT|NO ACTION|CASCADE|SET NULL|SET DEFAULT";class TmpFile{var$handler;var$size;function TmpFile(){$this->handler=tmpfile();}function write($xb){$this->size+=strlen($xb);fwrite($this->handler,$xb);}function send(){fseek($this->handler,0);fpassthru($this->handler);fclose($this->handler);}}$pc="'(?:''|[^'\\]|\\.)*'";$ud="IN|OUT|INOUT";if(isset($_GET["select"])&&($_POST["edit"]||$_POST["clone"])&&!$_POST["save"])$_GET["edit"]=$_GET["select"];if(isset($_GET["callf"]))$_GET["call"]=$_GET["callf"];if(isset($_GET["function"]))$_GET["procedure"]=$_GET["function"];if(isset($_GET["download"])){$a=$_GET["download"];$p=fields($a);header("Content-Type: application/octet-stream");header("Content-Disposition: attachment; filename=".friendly_url("$a-".implode("_",$_GET["where"])).".".friendly_url($_GET["field"]));$M=array(idf_escape($_GET["field"]));$I=$Wb->select($a,$M,array(where($_GET,$p)),$M);$K=($I?$I->fetch_row():array());echo$K[0];exit;}elseif(isset($_GET["table"])){$a=$_GET["table"];$p=fields($a);if(!$p)$n=error();$R=table_status1($a,true);page_header(($p&&is_view($R)?lang(118):lang(119)).": ".h($a),$n);$b->selectLinks($R);$rb=$R["Comment"];if($rb!="")echo"

".lang(96).": ".h($rb)."n";if($p){echo"

n","n";foreach($p as$o){echo"
".lang(120)."".lang(92).(support("comment")?"".lang(96):"")."
".h($o["field"]),"".h($o["full_type"])."",($o["null"]?" NULL":""),($o["auto_increment"]?" ".lang(56)."":""),(isset($o["default"])?" [".h($o["default"])."]":""),(support("comment")?"".nbsp($o["comment"]):""),"n";}echo"
n";}if(!is_view($R)){if(support("indexes")){echo"

".lang(121)."

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

".lang(86)."

n";$Oc=foreign_keys($a);if($Oc){echo"n","n";foreach($Oc as$C=>$q){echo"","
".lang(123)."".lang(124)."".lang(89)."".lang(88)." 
".implode(", ",array_map('h',$q["source"]))."","".($q["db"]!=""?"".h($q["db"]).".":"").($q["ns"]!=""?"".h($q["ns"]).".":"").h($q["table"])."","(".implode(", ",array_map('h',$q["target"])).")","".nbsp($q["on_delete"])."n","".nbsp($q["on_update"])."n",''.lang(125).'';}echo"
n";}echo'

".lang(127)."

n";$zh=triggers($a);if($zh){echo"n";foreach($zh as$x=>$X)echo"
".h($X[0])."".h($X[1])."".h($x)."".lang(125)."n";echo"
n";}echo'
';foreach($og as$C=>$Q){echo"
",''.h($C)."";foreach($Q["fields"]as$o){$X=''.h($o["field"]).'';echo"
".($o["primary"]?"$X":$X);}foreach((array)$Q["references"]as$ch=>$Xf){foreach($Xf as$Sd=>$Tf){$Td=$Sd-$Vg[$C][1];$s=0;foreach($Tf[0]as$Dg)echo"n
";}}foreach((array)$Wf[$C]as$ch=>$Xf){foreach($Xf as$Sd=>$f){$Td=$Sd-$Vg[$C][1];$s=0;foreach($f as$bh)echo"n
";}}echo"n
n";}foreach($og as$C=>$Q){foreach((array)$Q["references"]as$ch=>$Xf){foreach($Xf as$Sd=>$Tf){$te=$rh;$ie=-10;foreach($Tf[0]as$x=>$Dg){$yf=$Q["pos"][0]+$Q["fields"][$Dg]["pos"];$zf=$og[$ch]["pos"][0]+$og[$ch]["fields"][$Tf[1][$x]]["pos"];$te=min($te,$yf,$zf);$ie=max($ie,$yf,$zf);}echo"
n";}}}echo'
';$Ib=array('','USE','DROP+CREATE','CREATE');$Xg=array('','DROP+CREATE','CREATE');$Fb=array('','TRUNCATE+INSERT','INSERT');if($w=="sql")$Fb[]='INSERT+UPDATE';parse_str($_COOKIE["adminer_export"],$K);if(!$K)$K=array("output"=>"text","format"=>"sql","db_style"=>(DB!=""?"":"CREATE"),"table_style"=>"DROP+CREATE","data_style"=>"INSERT");if(!isset($K["events"])){$K["routines"]=$K["events"]=($_GET["dump"]=="");$K["triggers"]=$K["table_style"];}echo"
".lang(130)."".html_select("output",$b->dumpOutput(),$K["output"],0)."n";echo"
".lang(131)."".html_select("format",$b->dumpFormat(),$K["format"],0)."n";echo($w=="sqlite"?"":"
".lang(35)."".html_select('db_style',$Ib,$K["db_style"]).(support("routine")?checkbox("routines",1,$K["routines"],lang(132)):"").(support("event")?checkbox("events",1,$K["events"],lang(133)):"")),"
".lang(112)."".html_select('table_style',$Xg,$K["table_style"]).checkbox("auto_increment",1,$K["auto_increment"],lang(56)).(support("trigger")?checkbox("triggers",1,$K["triggers"],lang(127)):""),"
".lang(134)."".html_select('data_style',$Fb,$K["data_style"]),'

';$Bf=array();if(DB!=""){$db=($a!=""?"":" checked");echo"","n";$Yh="";$Yg=tables_list();foreach($Yg as$C=>$U){$Af=preg_replace('~_.*~','',$C);$db=($a==""||$a==(substr($a,-1)=="%"?"$Af%":$C));$Ef="n";$l=$b->databases();if($l){foreach($l as$m){if(!information_schema($m)){$Af=preg_replace('~_.*~','',$m);echo"
","","
".checkbox("tables[]",$C,$db,$C,"checkboxClick(event, this); formUncheck('check-tables');","block");if($U!==null&&!preg_match('~table~i',$U))$Yh.="$Efn";else echo"$Efn";$Bf[$Af]++;}echo$Yh;if($Yg)echo"n";}else{echo"
".checkbox("databases[]",$m,$a==""||$a=="$Af%",$m,"formUncheck('check-databases');","block")."n";$Bf[$Af]++;}}}else echo"
";}echo'
';$Kc=true;foreach($Bf as$x=>$X){if($x!=""&&$X>1){echo($Kc?"

":" ")."".h($x)."";$Kc=false;}}}elseif(isset($_GET["privileges"])){page_header(lang(63));$I=$h->query("SELECT User, Host FROM mysql.".(DB==""?"user":"db WHERE ".q(DB)." LIKE Db")." ORDER BY Host, User");$Vc=$I;if(!$I)$I=$h->query("SELECT SUBSTRING_INDEX(CURRENT_USER, '@', 1) AS User, SUBSTRING_INDEX(CURRENT_USER, '@', -1) AS Host");echo"

n";hidden_fields_get();echo"n",($Vc?"":"n"),"

n","n";while($K=$I->fetch_assoc())echo'
".lang(33)."".lang(32)." 
'.h($K["User"])."".h($K["Host"]).''.lang(10)."n";if(!$Vc||DB!="")echo"n";echo"
n","
n",'
".shorten_utf8(trim($Lf),1000)."
n";if(!$_POST["only_errors"]){echo$Ef;ob_flush();flush();}$Hg=microtime(true);if($h->multi_query($Lf)&&is_object($i)&&preg_match("~^$Eg*USE\b~isU",$Lf))$i->query($Lf);do{$I=$h->store_result();$ih=" (".format_time($Hg).")".(strlen($Lf)<1000?" ".lang(10)."":"");if($h->error){echo($_POST["only_errors"]?$Ef:""),"

".lang(136).($h->errno?" ($h->errno)":"").": ".error()."n";$rc[]=" $qb";if($_POST["error_stops"])break 2;}elseif(is_object($I)){$z=$_POST["limit"];$af=select($I,$i,array(),$z);if(!$_POST["only_errors"]){echo"

n";$De=$I->num_rows;echo"

".($De?($z&&$De>$z?lang(137,$z):"").lang(138,$De):""),$ih;$jd="export-$qb";$_c=", ".lang(65)."n";if($i&&preg_match("~^($Eg|\()*SELECT\b~isU",$Lf)&&($zc=explain($i,$Lf))){$jd="explain-$qb";echo", EXPLAIN$_c","

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

".lang(139,$h->affected_rows)."$ihn";}$Hg=microtime(true);}while($h->next_result());$Yd+=substr_count($Lf.$Qc,"n");$H=substr($H,$D);$D=0;}}}}if($mc)echo"

".lang(140)."n";elseif($_POST["only_errors"]){echo"

".lang(141,$qb-count($rc))," (".format_time($sh).")n";}elseif($rc&&$qb>1)echo"

".lang(136).": ".implode("",$rc)."n";}else echo"

".upload_error($H)."n";}echo'

';$wc="";if(!isset($_GET["import"])){$Lf=$_GET["sql"];if($_POST)$Lf=$_POST["query"];elseif($_GET["history"]=="all")$Lf=$ed;elseif($_GET["history"]!="")$Lf=$ed[$_GET["history"]][0];echo"

";textarea("query",$Lf,20);echo($_POST?"":"n"),"

$wcn",lang(143).": n";}else{echo"

".lang(144)."
",(ini_bool("file_uploads")?"SQL (< ".ini_get("upload_max_filesize")."B): n$wc":lang(145)),"
n","
".lang(146)."
",lang(147,"adminer.sql".(extension_loaded("zlib")?"[.gz]":"").""),' ',"
n","

";}echo checkbox("error_stops",1,($_POST?$_POST["error_stops"]:isset($_GET["import"])),lang(149))."n",checkbox("only_errors",1,($_POST?$_POST["only_errors"]:isset($_GET["import"])),lang(150))."n","n";if(!isset($_GET["import"])&&$ed){print_fieldset("history",lang(151),$_GET["history"]!="");for($X=end($ed);$X;$X=prev($ed)){$x=key($ed);list($Lf,$ih,$hc)=$X;echo''.lang(10).""." ".@date("H:i:s",$ih).""." ".shorten_utf8(ltrim(str_replace("n"," ",str_replace("r","",preg_replace('~^(#|-- ).*~m','',$Lf)))),80,"").($hc?" ($hc)":"")."
n";}echo"n","".lang(153)."n","n";}echo'

';}elseif(isset($_GET["edit"])){$a=$_GET["edit"];$p=fields($a);$Z=(isset($_GET["select"])?(count($_POST["check"])==1?where_check($_POST["check"][0],$p):""):where($_GET,$p));$Jh=(isset($_GET["select"])?$_POST["edit"]:$Z);foreach($p as$C=>$o){if(!isset($o["privileges"][$Jh?"update":"insert"])||$b->fieldName($o)=="")unset($p[$C]);}if($_POST&&!$n&&!isset($_GET["select"])){$A=$_POST["referer"];if($_POST["insert"])$A=($Jh?null:$_SERVER["REQUEST_URI"]);elseif(!preg_match('~^.+&select=.+$~',$A))$A=ME."select=".urlencode($a);$v=indexes($a);$Eh=unique_array($_GET["where"],$v);$Of="nWHERE $Z";if(isset($_POST["delete"]))queries_redirect($A,lang(154),$Wb->delete($a,$Of,!$Eh));else{$O=array();foreach($p as$C=>$o){$X=process_input($o);if($X!==false&&$X!==null)$O[idf_escape($C)]=$X;}if($Jh){if(!$O)redirect($A);queries_redirect($A,lang(155),$Wb->update($a,$O,$Of,!$Eh));if(is_ajax()){page_headers();page_messages($n);exit;}}else{$I=$Wb->insert($a,$O);$Rd=($I?last_id():0);queries_redirect($A,lang(156,($Rd?" $Rd":"")),$I);}}}$K=null;if($_POST["save"])$K=(array)$_POST["fields"];elseif($Z){$M=array();foreach($p as$C=>$o){if(isset($o["privileges"]["select"])){$Ga=convert_field($o);if($_POST["clone"]&&$o["auto_increment"])$Ga="''";if($w=="sql"&&preg_match("~enum|set~",$o["type"]))$Ga="1*".idf_escape($C);$M[]=($Ga?"$Ga AS ":"").idf_escape($C);}}$K=array();if(!support("table"))$M=array("*");if($M){$I=$Wb->select($a,$M,array($Z),$M,array(),(isset($_GET["select"])?2:1));$K=$I->fetch_assoc();if(!$K)$K=false;if(isset($_GET["select"])&&(!$K||$I->fetch_assoc()))$K=null;}}if(!support("table")&&!$p){if(!$Z){$I=$Wb->select($a,array("*"),$Z,array("*"));$K=($I?$I->fetch_assoc():false);if(!$K)$K=array($Wb->primary=>"");}if($K){foreach($K as$x=>$X){if(!$Z)$K[$x]=null;$p[$x]=array("field"=>$x,"null"=>($x!=$Wb->primary),"auto_increment"=>($x==$Wb->primary));}}}edit_form($a,$p,$K,$Jh);}elseif(isset($_GET["create"])){$a=$_GET["create"];$mf=array();foreach(array('HASH','LINEAR HASH','KEY','LINEAR KEY','RANGE','LIST')as$x)$mf[$x]=$x;$Vf=referencable_primary($a);$Oc=array();foreach($Vf as$Tg=>$o)$Oc[str_replace("`","``",$Tg)."`".str_replace("`","``",$o["field"])]=$Tg;$df=array();$R=array();if($a!=""){$df=fields($a);$R=table_status($a);if(!$R)$n=lang(9);}$K=$_POST;$K["fields"]=(array)$K["fields"];if($K["auto_increment_col"])$K["fields"][$K["auto_increment_col"]]["auto_increment"]=true;if($_POST&&!process_fields($K["fields"])&&!$n){if($_POST["drop"])queries_redirect(substr(ME,0,-1),lang(157),drop_tables(array($a)));else{$p=array();$Da=array();$Nh=false;$Mc=array();ksort($K["fields"]);$cf=reset($df);$Aa=" FIRST";foreach($K["fields"]as$x=>$o){$q=$Oc[$o["type"]];$_h=($q!==null?$Vf[$q]:$o);if($o["field"]!=""){if(!$o["has_default"])$o["default"]=null;if($x==$K["auto_increment_col"])$o["auto_increment"]=true;$Jf=process_field($o,$_h);$Da[]=array($o["orig"],$Jf,$Aa);if($Jf!=process_field($cf,$cf)){$p[]=array($o["orig"],$Jf,$Aa);if($o["orig"]!=""||$Aa)$Nh=true;}if($q!==null)$Mc[idf_escape($o["field"])]=($a!=""&&$w!="sqlite"?"ADD":" ").format_foreign_key(array('table'=>$Oc[$o["type"]],'source'=>array($o["field"]),'target'=>array($_h["field"]),'on_delete'=>$o["on_delete"],));$Aa=" AFTER ".idf_escape($o["field"]);}elseif($o["orig"]!=""){$Nh=true;$p[]=array($o["orig"]);}if($o["orig"]!=""){$cf=next($df);if(!$cf)$Aa="";}}$of="";if($mf[$K["partition_by"]]){$pf=array();if($K["partition_by"]=='RANGE'||$K["partition_by"]=='LIST'){foreach(array_filter($K["partition_names"])as$x=>$X){$Y=$K["partition_values"][$x];$pf[]="n PARTITION ".idf_escape($X)." VALUES ".($K["partition_by"]=='RANGE'?"LESS THAN":"IN").($Y!=""?" ($Y)":" MAXVALUE");}}$of.="nPARTITION BY $K[partition_by]($K[partition])".($pf?" (".implode(",",$pf)."n)":($K["partitions"]?" PARTITIONS ".(+$K["partitions"]):""));}elseif(support("partitioning")&&preg_match("~partitioned~",$R["Create_options"]))$of.="nREMOVE PARTITIONING";$me=lang(158);if($a==""){cookie("adminer_engine",$K["Engine"]);$me=lang(159);}$C=trim($K["name"]);queries_redirect(ME.(support("table")?"table=":"select=").urlencode($C),$me,alter_table($a,$C,($w=="sqlite"&&($Nh||$Mc)?$Da:$p),$Mc,($K["Comment"]!=$R["Comment"]?$K["Comment"]:null),($K["Engine"]&&$K["Engine"]!=$R["Engine"]?$K["Engine"]:""),($K["Collation"]&&$K["Collation"]!=$R["Collation"]?$K["Collation"]:""),($K["Auto_increment"]!=""?number($K["Auto_increment"]):""),$of));}}page_header(($a!=""?lang(41):lang(66)),$n,array("table"=>$a),h($a));if(!$_POST){$K=array("Engine"=>$_COOKIE["adminer_engine"],"fields"=>array(array("field"=>"","type"=>(isset($Bh["int"])?"int":(isset($Bh["integer"])?"integer":"")))),"partition_names"=>array(""),);if($a!=""){$K=$R;$K["name"]=$a;$K["fields"]=array();if(!$_GET["auto_increment"])$K["Auto_increment"]="";foreach($df as$o){$o["has_default"]=isset($o["default"]);$K["fields"][]=$o;}if(support("partitioning")){$Tc="FROM information_schema.PARTITIONS WHERE TABLE_SCHEMA = ".q(DB)." AND TABLE_NAME = ".q($a);$I=$h->query("SELECT PARTITION_METHOD, PARTITION_ORDINAL_POSITION, PARTITION_EXPRESSION $Tc ORDER BY PARTITION_ORDINAL_POSITION DESC LIMIT 1");list($K["partition_by"],$K["partitions"],$K["partition"])=$I->fetch_row();$pf=get_key_vals("SELECT PARTITION_NAME, PARTITION_DESCRIPTION $Tc AND PARTITION_NAME != '' ORDER BY PARTITION_ORDINAL_POSITION");$pf[""]="";$K["partition_names"]=array_keys($pf);$K["partition_values"]=array_values($pf);}}}$nb=collations();$oc=engines();foreach($oc as$nc){if(!strcasecmp($nc,$K["Engine"])){$K["Engine"]=$nc;break;}}echo'

';if(support("columns")||$a==""){echo lang(160),': ';if($a==""&&!$_POST){?>".optionlist(array(""=>"(".lang(161).")")+$oc,$K["Engine"])."":""),' ',($nb&&!preg_match("~sqlite|mssql~",$w)?html_select("Collation",array(""=>"(".lang(87).")")+$nb,$K["Collation"]):""),' ';}echo' ';if(support("columns")){echo'

';$sb=($_POST?$_POST["comments"]:$K["Comment"]!="");if(!$_POST&&!$sb){foreach($K["fields"]as$o){if($o["comment"]!=""){$sb=true;break;}}}edit_fields($K["fields"],$nb,"TABLE",$Oc,$sb);echo'

',lang(56),': ',checkbox("defaults",1,true,lang(162),"columnShow(this.checked, 5)","jsonly");if(!$_POST["defaults"]){echo'';}echo(support("comment")?"".' ':''),'

';}echo' ';if($a!=""){echo'';}if(support("partitioning")){$nf=preg_match('~RANGE|LIST~',$K["partition_by"]);print_fieldset("partition",lang(163),$K["partition_by"]);echo'

',"",'() ',lang(164),':

';foreach($K["partition_names"]as$x=>$X){echo'',' ';}echo'
';}elseif(isset($_GET["indexes"])){$a=$_GET["indexes"];$pd=array("PRIMARY","UNIQUE","INDEX");$R=table_status($a,true);if(preg_match('~MyISAM|M?aria'.($h->server_info>=5.6?'|InnoDB':'').'~i',$R["Engine"]))$pd[]="FULLTEXT";$v=indexes($a);$Cf=array();if($w=="mongo"){$Cf=$v["_id_"];unset($pd[0]);unset($v["_id_"]);}$K=$_POST;if($_POST&&!$n&&!$_POST["add"]&&!$_POST["drop_col"]){$c=array();foreach($K["indexes"]as$u){$C=$u["name"];if(in_array($u["type"],$pd)){$f=array();$Wd=array();$Pb=array();$O=array();ksort($u["columns"]);foreach($u["columns"]as$x=>$e){if($e!=""){$y=$u["lengths"][$x];$Ob=$u["descs"][$x];$O[]=idf_escape($e).($y?"(".(+$y).")":"").($Ob?" DESC":"");$f[]=$e;$Wd[]=($y?$y:null);$Pb[]=$Ob;}}if($f){$xc=$v[$C];if($xc){ksort($xc["columns"]);ksort($xc["lengths"]);ksort($xc["descs"]);if($u["type"]==$xc["type"]&&array_values($xc["columns"])===$f&&(!$xc["lengths"]||array_values($xc["lengths"])===$Wd)&&array_values($xc["descs"])===$Pb){unset($v[$C]);continue;}}$c[]=array($u["type"],$C,$O);}}}foreach($v as$C=>$xc)$c[]=array($xc["type"],$C,"DROP");if(!$c)redirect(ME."table=".urlencode($a));queries_redirect(ME."table=".urlencode($a),lang(167),alter_indexes($a,$c));}page_header(lang(121),$n,array("table"=>$a),h($a));$p=array_keys(fields($a));if($_POST["add"]){foreach($K["indexes"]as$x=>$u){if($u["columns"][count($u["columns"])]!="")$K["indexes"][$x]["columns"][]="";}$u=end($K["indexes"]);if($u["type"]||array_filter($u["columns"],'strlen'))$K["indexes"][]=array("columns"=>array(1=>""));}if(!$K){foreach($v as$x=>$u){$v[$x]["name"]=$x;$v[$x]["columns"][]="";}$v[]=array("columns"=>array(1=>""));$K["indexes"]=$v;}echo'
';if($Cf){echo"
',lang(168),'',lang(169),'',lang(170);?>  
PRIMARY";foreach($Cf["columns"]as$x=>$e){echo select_input(" disabled",$p,$e)," ";}echo"n";}$Fd=1;foreach($K["indexes"]as$u){if(!$_POST["drop_col"]||$Fd!=key($_POST["drop_col"])){echo"
".html_select("indexes[$Fd][type]",array(-1=>"")+$pd,$u["type"],($Fd==count($K["indexes"])?"indexesAddRow(this);":1)),"";ksort($u["columns"]);$s=1;foreach($u["columns"]as$x=>$e){echo"".select_input(" name='indexes[$Fd][columns][$s]' onchange="".($s==count($u["columns"])?"indexesAddColumn":"indexesChangeColumn")."(this, '".js_escape($w=="sql"?"":$_GET["indexes"]."_")."');"",($p?array_combine($p,$p):$p),$e),($w=="sql"||$w=="mssql"?"":""),($w!="sql"?checkbox("indexes[$Fd][descs][$s]",1,$u["descs"][$x],lang(50)):"")," ";$s++;}echo"n","n";}$Fd++;}echo'

';}elseif(isset($_GET["database"])){$K=$_POST;if($_POST&&!$n&&!isset($_POST["add_x"])){$C=trim($K["name"]);if($_POST["drop"]){$_GET["db"]="";queries_redirect(remove_from_uri("db|database"),lang(171),drop_databases(array(DB)));}elseif(DB!==$C){if(DB!=""){$_GET["db"]=$C;queries_redirect(preg_replace('~bdb=[^&]*&~','',ME)."db=".urlencode($C),lang(172),rename_database($C,$K["collation"]));}else{$l=explode("n",str_replace("r","",$C));$Ng=true;$Qd="";foreach($l as$m){if(count($l)==1||$m!=""){if(!create_database($m,$K["collation"]))$Ng=false;$Qd=$m;}}restart_session();set_session("dbs",null);queries_redirect(ME."db=".urlencode($Qd),lang(173),$Ng);}}else{if(!$K["collation"])redirect(substr(ME,0,-1));query_redirect("ALTER DATABASE ".idf_escape($C).(preg_match('~^[a-z0-9_]+$~i',$K["collation"])?" COLLATE $K[collation]":""),substr(ME,0,-1),lang(174));}}page_header(DB!=""?lang(59):lang(175),$n,array(),h(DB));$nb=collations();$C=DB;if($_POST)$C=$K["name"];elseif(DB!="")$K["collation"]=db_collation(DB,$nb);elseif($w=="sql"){foreach(get_vals("SHOW GRANTS")as$Vc){if(preg_match('~ ON (`(([^\\`]|``|\\.)*)%`\.\*)?~',$Vc,$B)&&$B[1]){$C=stripcslashes(idf_unescape("`$B[2]`"));break;}}}echo'

',($_POST["add_x"]||strpos($C,"n")?'
':'')."n".($nb?html_select("collation",array(""=>"(".lang(87).")")+$nb,$K["collation"]).doc_link(array('sql'=>"charset-charsets.html",'mssql'=>"ms187963.aspx",)):"");?> ';if(DB!="")echo"n";elseif(!$_POST["add_x"]&&$_GET["db"]=="")echo"n";echo'

';}elseif(isset($_GET["scheme"])){$K=$_POST;if($_POST&&!$n){$_=preg_replace('~ns=[^&]*&~','',ME)."ns=";if($_POST["drop"])query_redirect("DROP SCHEMA ".idf_escape($_GET["ns"]),$_,lang(176));else{$C=trim($K["name"]);$_.=urlencode($C);if($_GET["ns"]=="")query_redirect("CREATE SCHEMA ".idf_escape($C),$_,lang(177));elseif($_GET["ns"]!=$C)query_redirect("ALTER SCHEMA ".idf_escape($_GET["ns"])." RENAME TO ".idf_escape($C),$_,lang(178));else redirect($_);}}page_header($_GET["ns"]!=""?lang(60):lang(61),$n);if(!$K)$K["name"]=$_GET["ns"];echo'

" autocapitalize="off"> ';if($_GET["ns"]!="")echo"n";echo'

';}elseif(isset($_GET["call"])){$da=$_GET["call"];page_header(lang(179).": ".h($da),$n);$ig=routine($da,(isset($_GET["callf"])?"FUNCTION":"PROCEDURE"));$nd=array();$gf=array();foreach($ig["fields"]as$s=>$o){if(substr($o["inout"],-3)=="OUT")$gf[$s]="@".idf_escape($o["field"])." AS ".idf_escape($o["field"]);if(!$o["inout"]||substr($o["inout"],0,2)=="IN")$nd[]=$s;}if(!$n&&$_POST){$Ya=array();foreach($ig["fields"]as$x=>$o){if(in_array($x,$nd)){$X=process_input($o);if($X===false)$X="''";if(isset($gf[$x]))$h->query("SET @".idf_escape($o["field"])." = $X");}$Ya[]=(isset($gf[$x])?"@".idf_escape($o["field"]):$X);}$H=(isset($_GET["callf"])?"SELECT":"CALL")." ".idf_escape($da)."(".implode(", ",$Ya).")";echo"

".h($H)." ".lang(10)."n";if(!$h->multi_query($H))echo"

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

".lang(180,$h->affected_rows)."n";}while($h->next_result());if($gf)select($h->query("SELECT ".implode(", ",$gf)));}}echo'

';if($nd){echo"n";foreach($nd as$x){$o=$ig["fields"][$x];$C=$o["field"];echo"
".$b->fieldName($o);$Y=$_POST["fields"][$C];if($Y!=""){if($o["type"]=="enum")$Y=+$Y;if($o["type"]=="set")$Y=array_sum($Y);}input($o,$Y,(string)$_POST["function"][$C]);echo"n";}echo"
n";}echo'

';}elseif(isset($_GET["foreign"])){$a=$_GET["foreign"];$C=$_GET["name"];$K=$_POST;if($_POST&&!$n&&!$_POST["add"]&&!$_POST["change"]&&!$_POST["change-js"]){$me=($_POST["drop"]?lang(181):($C!=""?lang(182):lang(183)));$A=ME."table=".urlencode($a);$K["source"]=array_filter($K["source"],'strlen');ksort($K["source"]);$bh=array();foreach($K["source"]as$x=>$X)$bh[$x]=$K["target"][$x];$K["target"]=$bh;if($w=="sqlite")queries_redirect($A,$me,recreate_table($a,$a,array(),array(),array(" $C"=>($_POST["drop"]?"":" ".format_foreign_key($K)))));else{$c="ALTER TABLE ".table($a);$Yb="nDROP ".($w=="sql"?"FOREIGN KEY ":"CONSTRAINT ").idf_escape($C);if($_POST["drop"])query_redirect($c.$Yb,$A,$me);else{query_redirect($c.($C!=""?"$Yb,":"")."nADD".format_foreign_key($K),$A,$me);$n=lang(184)."
$n";}}}page_header(lang(185),$n,array("table"=>$a),h($a));if($_POST){ksort($K["source"]);if($_POST["add"])$K["source"][]="";elseif($_POST["change"]||$_POST["change-js"])$K["target"]=array();}elseif($C!=""){$Oc=foreign_keys($a);$K=$Oc[$C];$K["source"][]="";}else{$K["table"]=$a;$K["source"]=array("");}$Dg=array_keys(fields($a));$bh=($a===$K["table"]?$Dg:array_keys(fields($K["table"])));$Uf=array_keys(array_filter(table_status('',true),'fk_support'));echo'

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

';$Fd=0;foreach($K["source"]as$x=>$X){echo"","
',lang(123),'',lang(124),'
".html_select("source[".(+$x)."]",array(-1=>"")+$Dg,$X,($Fd==count($K["source"])-1?"foreignAddRow(this);":1)),"".html_select("target[".(+$x)."]",$bh,$K["target"][$x]);$Fd++;}echo'

',lang(89),': ',html_select("on_delete",array(-1=>"")+explode("|",$Ne),$K["on_delete"]),' ',lang(88),': ',html_select("on_update",array(-1=>"")+explode("|",$Ne),$K["on_update"]),doc_link(array('sql'=>"innodb-foreign-key-constraints.html",'pgsql'=>"sql-createtable.html#SQL-CREATETABLE-REFERENCES",'mssql'=>"ms174979.aspx",'oracle'=>"clauses002.htm#sthref2903",)),'

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

';}elseif(isset($_GET["view"])){$a=$_GET["view"];$K=$_POST;if($_POST&&!$n){$C=trim($K["name"]);$Ga=" ASn$K[select]";$A=ME."table=".urlencode($C);$me=lang(189);if($_GET["materialized"])$U="MATERIALIZED VIEW";else{$U="VIEW";if($w=="pgsql"){$Ig=table_status($C);$U=($Ig?strtoupper($Ig["Engine"]):$U);}}if(!$_POST["drop"]&&$a==$C&&$w!="sqlite"&&$U!="MATERIALIZED VIEW")query_redirect(($w=="mssql"?"ALTER":"CREATE OR REPLACE")." VIEW ".table($C).$Ga,$A,$me);else{$dh=$C."_adminer_".uniqid();drop_create("DROP $U ".table($a),"CREATE $U ".table($C).$Ga,"DROP $U ".table($C),"CREATE $U ".table($dh).$Ga,"DROP $U ".table($dh),($_POST["drop"]?substr(ME,0,-1):$A),lang(190),$me,lang(191),$a,$C);}}if(!$_POST&&$a!=""){$K=view($a);$K["name"]=$a;if(!$n)$n=error();}page_header(($a!=""?lang(40):lang(192)),$n,array("table"=>$a),h($a));echo'

',lang(170),':

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

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

';}elseif(isset($_GET["event"])){$aa=$_GET["event"];$xd=array("YEAR","QUARTER","MONTH","DAY","HOUR","MINUTE","WEEK","SECOND","YEAR_MONTH","DAY_HOUR","DAY_MINUTE","DAY_SECOND","HOUR_MINUTE","HOUR_SECOND","MINUTE_SECOND");$Jg=array("ENABLED"=>"ENABLE","DISABLED"=>"DISABLE","SLAVESIDE_DISABLED"=>"DISABLE ON SLAVE");$K=$_POST;if($_POST&&!$n){if($_POST["drop"])query_redirect("DROP EVENT ".idf_escape($aa),substr(ME,0,-1),lang(193));elseif(in_array($K["INTERVAL_FIELD"],$xd)&&isset($Jg[$K["STATUS"]])){$ng="nON SCHEDULE ".($K["INTERVAL_VALUE"]?"EVERY ".q($K["INTERVAL_VALUE"])." $K[INTERVAL_FIELD]".($K["STARTS"]?" STARTS ".q($K["STARTS"]):"").($K["ENDS"]?" ENDS ".q($K["ENDS"]):""):"AT ".q($K["STARTS"]))." ON COMPLETION".($K["ON_COMPLETION"]?"":" NOT")." PRESERVE";queries_redirect(substr(ME,0,-1),($aa!=""?lang(194):lang(195)),queries(($aa!=""?"ALTER EVENT ".idf_escape($aa).$ng.($aa!=$K["EVENT_NAME"]?"nRENAME TO ".idf_escape($K["EVENT_NAME"]):""):"CREATE EVENT ".idf_escape($K["EVENT_NAME"]).$ng)."n".$Jg[$K["STATUS"]]." COMMENT ".q($K["EVENT_COMMENT"]).rtrim(" DOn$K[EVENT_DEFINITION]",";").";"));}}page_header(($aa!=""?lang(196).": ".h($aa):lang(197)),$n);if(!$K&&$aa!=""){$L=get_rows("SELECT * FROM information_schema.EVENTS WHERE EVENT_SCHEMA = ".q(DB)." AND EVENT_NAME = ".q($aa));$K=reset($L);}echo'
',lang(170),'
',lang(198),'
',lang(199),'
',lang(200),' ',html_select("INTERVAL_FIELD",$xd,$K["INTERVAL_FIELD"]),'
',lang(107),'',html_select("STATUS",$Jg,$K["STATUS"]),'
',lang(96),'
 ',checkbox("ON_COMPLETION","PRESERVE",$K["ON_COMPLETION"]=="PRESERVE",lang(201)),'

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

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

';}elseif(isset($_GET["procedure"])){$da=$_GET["procedure"];$ig=(isset($_GET["function"])?"FUNCTION":"PROCEDURE");$K=$_POST;$K["fields"]=(array)$K["fields"];if($_POST&&!process_fields($K["fields"])&&!$n){$dh="$K[name]_adminer_".uniqid();drop_create("DROP $ig ".idf_escape($da),create_routine($ig,$K),"DROP $ig ".idf_escape($K["name"]),create_routine($ig,array("name"=>$dh)+$K),"DROP $ig ".idf_escape($dh),substr(ME,0,-1),lang(202),lang(203),lang(204),$da,$K["name"]);}page_header(($da!=""?(isset($_GET["function"])?lang(205):lang(206)).": ".h($da):(isset($_GET["function"])?lang(207):lang(208))),$n);if(!$_POST&&$da!=""){$K=routine($da,$ig);$K["name"]=$da;}$nb=get_vals("SHOW CHARACTER SET");sort($nb);$jg=routine_languages();echo'

',lang(170),': ',($jg?lang(19).": ".html_select("language",$jg,$K["language"]):""),'

';edit_fields($K["fields"],$nb,$ig);if(isset($_GET["function"])){echo"
".lang(209);edit_type("returns",$K["returns"],$nb);}echo'

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

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

';}elseif(isset($_GET["sequence"])){$fa=$_GET["sequence"];$K=$_POST;if($_POST&&!$n){$_=substr(ME,0,-1);$C=trim($K["name"]);if($_POST["drop"])query_redirect("DROP SEQUENCE ".idf_escape($fa),$_,lang(210));elseif($fa=="")query_redirect("CREATE SEQUENCE ".idf_escape($C),$_,lang(211));elseif($fa!=$C)query_redirect("ALTER SEQUENCE ".idf_escape($fa)." RENAME TO ".idf_escape($C),$_,lang(212));else redirect($_);}page_header($fa!=""?lang(213).": ".h($fa):lang(214),$n);if(!$K)$K["name"]=$fa;echo'

';if($fa!="")echo"n";echo'

';}elseif(isset($_GET["type"])){$ga=$_GET["type"];$K=$_POST;if($_POST&&!$n){$_=substr(ME,0,-1);if($_POST["drop"])query_redirect("DROP TYPE ".idf_escape($ga),$_,lang(215));else query_redirect("CREATE TYPE ".idf_escape(trim($K["name"]))." $K[as]",$_,lang(216));}page_header($ga!=""?lang(217).": ".h($ga):lang(218),$n);if(!$K)$K["as"]="AS ";echo'

';if($ga!="")echo"n";else{echo"n";textarea("as",$K["as"]);echo"

n";}echo'

';}elseif(isset($_GET["trigger"])){$a=$_GET["trigger"];$C=$_GET["name"];$yh=trigger_options();$K=(array)trigger($C)+array("Trigger"=>$a."_bi");if($_POST){if(!$n&&in_array($_POST["Timing"],$yh["Timing"])&&in_array($_POST["Event"],$yh["Event"])&&in_array($_POST["Type"],$yh["Type"])){$Me=" ON ".table($a);$Yb="DROP TRIGGER ".idf_escape($C).($w=="pgsql"?$Me:"");$A=ME."table=".urlencode($a);if($_POST["drop"])query_redirect($Yb,$A,lang(219));else{if($C!="")queries($Yb);queries_redirect($A,($C!=""?lang(220):lang(221)),queries(create_trigger($Me,$_POST)));if($C!="")queries(create_trigger($Me,$K+array("Type"=>reset($yh["Type"]))));}}$K=$_POST;}page_header(($C!=""?lang(222).": ".h($C):lang(223)),$n,array("table"=>$a));echo'
',lang(224),'',html_select("Timing",$yh["Timing"],$K["Timing"],"triggerChange(/^".preg_quote($a,"/")."_[ba][iud]$/, '".js_escape($a)."', this.form);"),'
',lang(225),'',html_select("Event",$yh["Event"],$K["Event"],"this.form['Timing'].onchange();"),(in_array("UPDATE OF",$yh["Event"])?" ":""),'
',lang(92),'',html_select("Type",$yh["Type"],$K["Type"]),'

',lang(170),': " maxlength="64" autocapitalize="off">

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

';}elseif(isset($_GET["user"])){$ha=$_GET["user"];$Hf=array(""=>array("All privileges"=>""));foreach(get_rows("SHOW PRIVILEGES")as$K){foreach(explode(",",($K["Privilege"]=="Grant option"?"":$K["Context"]))as$yb)$Hf[$yb][$K["Privilege"]]=$K["Comment"];}$Hf["Server Admin"]+=$Hf["File access on server"];$Hf["Databases"]["Create routine"]=$Hf["Procedures"]["Create routine"];unset($Hf["Procedures"]["Create routine"]);$Hf["Columns"]=array();foreach(array("Select","Insert","Update","References")as$X)$Hf["Columns"][$X]=$Hf["Tables"][$X];unset($Hf["Server Admin"]["Usage"]);foreach($Hf["Tables"]as$x=>$X)unset($Hf["Databases"][$x]);$ze=array();if($_POST){foreach($_POST["objects"]as$x=>$X)$ze[$X]=(array)$ze[$X]+(array)$_POST["grants"][$x];}$Wc=array();$Ke="";if(isset($_GET["host"])&&($I=$h->query("SHOW GRANTS FOR ".q($ha)."@".q($_GET["host"])))){while($K=$I->fetch_row()){if(preg_match('~GRANT (.*) ON (.*) TO ~',$K[0],$B)&&preg_match_all('~ *([^(,]*[^ ,(])( *\([^)]+\))?~',$B[1],$ee,PREG_SET_ORDER)){foreach($ee as$X){if($X[1]!="USAGE")$Wc["$B[2]$X[2]"][$X[1]]=true;if(preg_match('~ WITH GRANT OPTION~',$K[0]))$Wc["$B[2]$X[2]"]["GRANT OPTION"]=true;}}if(preg_match("~ IDENTIFIED BY PASSWORD '([^']+)~",$K[0],$B))$Ke=$B[1];}}if($_POST&&!$n){$Le=(isset($_GET["host"])?q($ha)."@".q($_GET["host"]):"''");if($_POST["drop"])query_redirect("DROP USER $Le",ME."privileges=",lang(226));else{$Ae=q($_POST["user"])."@".q($_POST["host"]);$qf=$_POST["pass"];if($qf!=''&&!$_POST["hashed"]){$qf=$h->result("SELECT PASSWORD(".q($qf).")");$n=!$qf;}$Cb=false;if(!$n){if($Le!=$Ae){$Cb=queries(($h->server_info<5?"GRANT USAGE ON *.* TO":"CREATE USER")." $Ae IDENTIFIED BY PASSWORD ".q($qf));$n=!$Cb;}elseif($qf!=$Ke)queries("SET PASSWORD FOR $Ae = ".q($qf));}if(!$n){$fg=array();foreach($ze as$Fe=>$Vc){if(isset($_GET["grant"]))$Vc=array_filter($Vc);$Vc=array_keys($Vc);if(isset($_GET["grant"]))$fg=array_diff(array_keys(array_filter($ze[$Fe],'strlen')),$Vc);elseif($Le==$Ae){$Ie=array_keys((array)$Wc[$Fe]);$fg=array_diff($Ie,$Vc);$Vc=array_diff($Vc,$Ie);unset($Wc[$Fe]);}if(preg_match('~^(.+)\s*(\(.*\))?$~U',$Fe,$B)&&(!grant("REVOKE",$fg,$B[2]," ON $B[1] FROM $Ae")||!grant("GRANT",$Vc,$B[2]," ON $B[1] TO $Ae"))){$n=true;break;}}}if(!$n&&isset($_GET["host"])){if($Le!=$Ae)queries("DROP USER $Le");elseif(!isset($_GET["grant"])){foreach($Wc as$Fe=>$fg){if(preg_match('~^(.+)(\(.*\))?$~U',$Fe,$B))grant("REVOKE",array_keys($fg),$B[2]," ON $B[1] FROM $Ae");}}}queries_redirect(ME."privileges=",(isset($_GET["host"])?lang(227):lang(228)),!$n);if($Cb)$h->query("DROP USER $Ae");}}page_header((isset($_GET["host"])?lang(33).": ".h("$ha@$_GET[host]"):lang(135)),$n,array("privileges"=>array('',lang(63))));if($_POST){$K=$_POST;$Wc=$ze;}else{$K=$_GET+array("host"=>$h->result("SELECT SUBSTRING_INDEX(CURRENT_USER, '@', -1)"));$K["pass"]=$Ke;if($Ke!="")$K["hashed"]=true;$Wc[(DB==""||$Wc?"":idf_escape(addcslashes(DB,"%_\"))).".*"]=array();}echo'
',lang(32),'
',lang(33),'
',lang(34),' ';if(!$K["hashed"]){echo'';}echo checkbox("hashed",1,$K["hashed"],lang(229),"typePassword(this.form['pass'], this.checked);"),'
';echo"n","n";foreach(array(""=>"","Server Admin"=>lang(32),"Databases"=>lang(35),"Tables"=>lang(119),"Columns"=>lang(120),"Procedures"=>lang(230),)as$yb=>$Ob){foreach((array)$Hf[$yb]as$Gf=>$rb){echo"$Ob'.h($Gf);$s=0;foreach($Wc as$Fe=>$Vc){$C="'grants[$s][".h(strtoupper($Gf))."]'";$Y=$Vc[strtoupper($Gf)];if($yb=="Server Admin"&&$Fe!=(isset($Wc["*.*"])?"*.*":".*"))echo"
".lang(63).doc_link(array('sql'=>"grant.html#priv_level"));$s=0;foreach($Wc as$Fe=>$Vc){echo''.($Fe!="*.*"?"":"*.*");$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&&!$n){$Md=0;foreach((array)$_POST["kill"]as$X){if(queries("KILL ".number($X)))$Md++;}queries_redirect(ME."processlist=",lang(233,$Md),$Md||!$_POST["kill"]);}page_header(lang(105),$n);echo'
';$s=-1;foreach(process_list()as$s=>$K){if(!$s){echo"".(support("kill")?"n";}echo"".(support("kill")?"
 ":"");foreach($K as$x=>$X)echo"$x".doc_link(array('sql'=>"show-processlist.html#processlist_".strtolower($x),'pgsql'=>"monitoring-stats.html#PG-STAT-ACTIVITY-VIEW",'oracle'=>"../b14237/dynviews_2088.htm",));echo"
".checkbox("kill[]",$K["Id"],0):"");foreach($K as$x=>$X)echo"".(($w=="sql"&&$x=="Info"&&preg_match("~Query|Killed~",$K["Command"])&&$X!="")||($w=="pgsql"&&$x=="current_query"&&$X!="")||($w=="oracle"&&$x=="sql_text"&&$X!="")?"".shorten_utf8($X,100,"").' '.lang(234).'':nbsp($X));echo"n";}echo'

';if(support("kill")){echo($s+1)."/".lang(235,$h->result("SELECT @@max_connections")),"

n";}echo'

';}elseif(isset($_GET["select"])){$a=$_GET["select"];$R=table_status1($a);$v=indexes($a);$p=fields($a);$Oc=column_foreign_keys($a);$He="";if($R["Oid"]){$He=($w=="sqlite"?"rowid":"oid");$v[]=array("type"=>"PRIMARY","columns"=>array($He));}parse_str($_COOKIE["adminer_import"],$ya);$gg=array();$f=array();$hh=null;foreach($p as$x=>$o){$C=$b->fieldName($o);if(isset($o["privileges"]["select"])&&$C!=""){$f[$x]=html_entity_decode(strip_tags($C),ENT_QUOTES);if(is_shortable($o))$hh=$b->selectLengthProcess();}$gg+=$o["privileges"];}list($M,$Xc)=$b->selectColumnsProcess($f,$v);$Ad=count($Xc)selectSearchProcess($p,$v);$Xe=$b->selectOrderProcess($p,$v);$z=$b->selectLimitProcess();$Tc=($M?implode(", ",$M):"*".($He?", $He":"")).convert_fields($f,$p,$M)."nFROM ".table($a);$Yc=($Xc&&$Ad?"nGROUP BY ".implode(", ",$Xc):"").($Xe?"nORDER BY ".implode(", ",$Xe):"");if($_GET["val"]&&is_ajax()){header("Content-Type: text/plain; charset=utf-8");foreach($_GET["val"]as$Fh=>$K){$Ga=convert_field($p[key($K)]);$M=array($Ga?$Ga:idf_escape(key($K)));$Z[]=where_check($Fh,$p);$J=$Wb->select($a,$M,$Z,$M);if($J)echo reset($J->fetch_row());}exit;}if($_POST&&!$n){$ci=$Z;if(!$_POST["all"]&&is_array($_POST["check"])){$eb=array();foreach($_POST["check"]as$bb)$eb[]=where_check($bb,$p);$ci[]="((".implode(") OR (",$eb)."))";}$ci=($ci?"nWHERE ".implode(" AND ",$ci):"");$Cf=$Hh=null;foreach($v as$u){if($u["type"]=="PRIMARY"){$Cf=array_flip($u["columns"]);$Hh=($M?$Cf:array());break;}}foreach((array)$Hh as$x=>$X){if(in_array(idf_escape($x),$M))unset($Hh[$x]);}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"])||$Hh===array())$H="SELECT $Tc$ci$Yc";else{$Dh=array();foreach($_POST["check"]as$X)$Dh[]="(SELECT".limit($Tc,"nWHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($X,$p).$Yc,1).")";$H=implode(" UNION ALL ",$Dh);}$b->dumpData($a,"table",$H);exit;}if(!$b->selectEmailProcess($Z,$Oc)){if($_POST["save"]||$_POST["delete"]){$I=true;$za=0;$O=array();if(!$_POST["delete"]){foreach($f as$C=>$X){$X=process_input($p[$C]);if($X!==null&&($_POST["clone"]||$X!==false))$O[idf_escape($C)]=($X!==false?$X:idf_escape($C));}}if($_POST["delete"]||$O){if($_POST["clone"])$H="INTO ".table($a)." (".implode(", ",array_keys($O)).")nSELECT ".implode(", ",$O)."nFROM ".table($a);if($_POST["all"]||($Hh===array()&&is_array($_POST["check"]))||$Ad){$I=($_POST["delete"]?$Wb->delete($a,$ci):($_POST["clone"]?queries("INSERT $H$ci"):$Wb->update($a,$O,$ci)));$za=$h->affected_rows;}else{foreach((array)$_POST["check"]as$X){$bi="nWHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($X,$p);$I=($_POST["delete"]?$Wb->delete($a,$bi,1):($_POST["clone"]?queries("INSERT".limit1($H,$bi)):$Wb->update($a,$O,$bi)));if(!$I)break;$za+=$h->affected_rows;}}}$me=lang(237,$za);if($_POST["clone"]&&$I&&$za==1){$Rd=last_id();if($Rd)$me=lang(156," $Rd");}queries_redirect(remove_from_uri($_POST["all"]&&$_POST["delete"]?"page":""),$me,$I);if(!$_POST["delete"]){edit_form($a,$p,(array)$_POST["fields"],!$_POST["clone"]);page_footer();exit;}}elseif(!$_POST["import"]){if(!$_POST["val"])$n=lang(238);else{$I=true;$za=0;foreach($_POST["val"]as$Fh=>$K){$O=array();foreach($K as$x=>$X){$x=bracket_escape($x,1);$O[idf_escape($x)]=(preg_match('~char|text~',$p[$x]["type"])||$X!=""?$b->processInput($p[$x],$X):"NULL");}$I=$Wb->update($a,$O," WHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($Fh,$p),!($Ad||$Hh===array())," ");if(!$I)break;$za+=$h->affected_rows;}queries_redirect(remove_from_uri(),lang(237,$za),$I);}}elseif(!is_string($Hc=get_file("csv_file",true)))$n=upload_error($Hc);elseif(!preg_match('~~u',$Hc))$n=lang(239);else{cookie("adminer_import","output=".urlencode($ya["output"])."&format=".urlencode($_POST["separator"]));$I=true;$ob=array_keys($p);preg_match_all('~(?>"[^"]*"|[^"\r\n]+)+~',$Hc,$ee);$za=count($ee[0]);$Wb->begin();$vg=($_POST["separator"]=="csv"?",":($_POST["separator"]=="tsv"?"t":";"));$L=array();foreach($ee[0]as$x=>$X){preg_match_all("~((?>"[^"]*")+|[^$vg]*)$vg~",$X.$vg,$fe);if(!$x&&!array_diff($fe[1],$ob)){$ob=$fe[1];$za--;}else{$O=array();foreach($fe[1]as$s=>$lb)$O[idf_escape($ob[$s])]=($lb==""&&$p[$ob[$s]]["null"]?"NULL":q(str_replace('""','"',preg_replace('~^"|"$~','',$lb))));$L[]=$O;}}$I=(!$L||$Wb->insertUpdate($a,$L,$Cf));if($I)$Wb->commit();queries_redirect(remove_from_uri("page"),lang(240,$za),$I);$Wb->rollback();}}}$Tg=$b->tableName($R);if(is_ajax()){page_headers();ob_start();}else page_header(lang(44).": $Tg",$n);$O=null;if(isset($gg["insert"])||!support("table")){$O="";foreach((array)$_GET["where"]as$X){if(count($Oc[$X["col"]])==1&&($X["op"]=="="||(!$X["op"]&&!preg_match('~[_%]~',$X["val"]))))$O.="&set".urlencode("[".bracket_escape($X["col"])."]")."=".urlencode($X["val"]);}}$b->selectLinks($R,$O);if(!$f&&support("table"))echo"

".lang(241).($p?".":": ".error())."n";else{echo"

n","
";hidden_fields_get();echo(DB!=""?''.(isset($_GET["ns"])?'':""):"");echo'',"
n";$b->selectColumnsPrint($M,$f);$b->selectSearchPrint($Z,$f,$v);$b->selectOrderPrint($Xe,$f,$v);$b->selectLimitPrint($z);$b->selectLengthPrint($hh);$b->selectActionPrint($v);echo"
n";$E=$_GET["page"];if($E=="last"){$Rc=$h->result(count_rows($a,$Z,$Ad,$Xc));$E=floor(max(0,$Rc-1)/$z);}$sg=$M;if(!$sg){$sg[]="*";if($He)$sg[]=$He;}$zb=convert_fields($f,$p,$M);if($zb)$sg[]=substr($zb,2);$I=$Wb->select($a,$sg,$Z,$Xc,$Xe,$z,$E,true);if(!$I)echo"

".error()."n";else{if($w=="mssql"&&$E)$I->seek($z*$E);$lc=array();echo"

n";$L=array();while($K=$I->fetch_assoc()){if($E&&$w=="oracle")unset($K["RNUM"]);$L[]=$K;}if($_GET["page"]!="last"&&+$z&&$Xc&&$Ad&&$w=="sql")$Rc=$h->result(" SELECT FOUND_ROWS()");if(!$L)echo"

".lang(12)."n";else{$Pa=$b->backwardKeys($a,$Tg);echo"

n","".(!$Xc&&$M?"":"n";if(is_ajax()){if($z%2==1&&$E%2==1)odd();ob_end_clean();}foreach($b->rowDescriptions($L,$Oc)as$xe=>$K){$Eh=unique_array($L[$xe],$v);if(!$Eh){$Eh=array();foreach($L[$xe]as$x=>$X){if(!preg_match('~^(COUNT\((\*|(DISTINCT )?`(?:[^`]|``)+`)\)|(AVG|GROUP_CONCAT|MAX|MIN|SUM)\(`(?:[^`]|``)+`\))$~',$x))$Eh[$x]=$X;}}$Fh="";foreach($Eh as$x=>$X){if(($w=="sql"||$w=="pgsql")&&strlen($X)>64){$x=(strpos($x,'(')?$x:idf_escape($x));$x="MD5(".($w=='sql'&&preg_match("~^utf8_~",$p[$x]["collation"])?$x:"CONVERT($x USING ".charset($h).")").")";$X=md5($X);}$Fh.="&".($X!==null?urlencode("where[".bracket_escape($x)."]")."=".urlencode($X):"null%5B%5D=".urlencode($x));}echo"".(!$Xc&&$M?"":"n";}if(is_ajax())exit;echo"
".lang(242)."");$ye=array();$Uc=array();reset($M);$Qf=1;foreach($L[0]as$x=>$X){if($x!=$He){$X=$_GET["columns"][key($M)];$o=$p[$M?($X?$X["col"]:current($M)):$x];$C=($o?$b->fieldName($o,$Qf):($X["fun"]?"*":$x));if($C!=""){$Qf++;$ye[$x]=$C;$e=idf_escape($x);$id=remove_from_uri('(order|desc)[^=]*|page').'&order%5B0%5D='.urlencode($x);$Ob="&desc%5B0%5D=1";echo'','';echo apply_sql_function($X["fun"],$C)."";echo"";}$Uc[$x]=$X["fun"];next($M);}}$Wd=array();if($_GET["modify"]){foreach($L as$K){foreach($K as$x=>$X)$Wd[$x]=max($Wd[$x],min(40,strlen(utf8_decode($X))));}}echo($Pa?"".lang(243):"")."
".checkbox("check[]",substr($Fh,1),in_array(substr($Fh,1),(array)$_POST["check"]),"","this.form['all'].checked = false; formUncheck('all-page');").($Ad||information_schema(DB)?"":" ".lang(244).""));foreach($K as$x=>$X){if(isset($ye[$x])){$o=$p[$x];if($X!=""&&(!isset($lc[$x])||$lc[$x]!=""))$lc[$x]=(is_mail($X)?$ye[$x]:"");$_="";if(preg_match('~blob|bytea|raw|file~',$o["type"])&&$X!="")$_=ME.'download='.urlencode($a).'&field='.urlencode($x).$Fh;if(!$_&&$X!==null){foreach((array)$Oc[$x]as$q){if(count($Oc[$x])==1||end($q["source"])==$x){$_="";foreach($q["source"]as$s=>$Dg)$_.=where_link($s,$q["target"][$s],$L[$xe][$Dg]);$_=($q["db"]!=""?preg_replace('~([?&]db=)[^&]+~','\1'.urlencode($q["db"]),ME):ME).'select='.urlencode($q["table"]).$_;if(count($q["source"])==1)break;}}}if($x=="COUNT(*)"){$_=ME."select=".urlencode($a);$s=0;foreach((array)$_GET["where"]as$W){if(!array_key_exists($W["col"],$Eh))$_.=where_link($s++,$W["col"],$W["val"],$W["op"]);}foreach($Eh as$Gd=>$W)$_.=where_link($s++,$Gd,$W);}$X=select_value($X,$_,$o,$hh);$jd=h("val[$Fh][".bracket_escape($x)."]");$Y=$_POST["val"][$Fh][bracket_escape($x)];$gc=!is_array($K[$x])&&is_utf8($X)&&$L[$xe][$x]==$K[$x]&&!$Uc[$x];$gh=preg_match('~text|lob~',$o["type"]);if(($_GET["modify"]&&$gc)||$Y!==null){$ad=h($Y!==null?$Y:$K[$x]);echo"".($gh?"":"");}else{$be=strpos($X,"...");echo"$X";}}}if($Pa)echo"";$b->backwardKeysPrint($Pa,$L[$xe]);echo"
n";}if(($L||$E)&&!is_ajax()){$vc=true;if($_GET["page"]!="last"){if(!+$z)$Rc=count($L);elseif($w!="sql"||!$Ad){$Rc=($Ad?false:found_rows($R,$Z));if($Rc$z||$E)){echo"

";$he=($Rc===false?$E+(count($L)>=$z?2:1):floor(($Rc-1)/$z));if($w!="simpledb"){echo'".lang(246).":",pagination(0,$E).($E>5?" ...":"");for($s=max(1,$E-4);$s0){echo($E+5<$he?" ...":""),($vc&&$Rc!==false?pagination($he,$E):" ".lang(247)."");}echo(($Rc===false?count($L)+1:$Rc-$E*$z)>$z?' '.lang(249).'':'');}else{echo lang(246).":",pagination(0,$E).($E>1?" ...":""),($E?pagination($E,$E):""),($he>$E?pagination($E+1,$E).($he>$E+1?" ...":""):"");}}echo"

n",($Rc!==false?"(".($vc?"":"~ ").lang(138,$Rc).") ":"");$Tb=($vc?"":"~ ").$Rc;echo checkbox("all",1,0,lang(250),"var checked = formChecked(this, /check/); selectCount('selected', this.checked ? '$Tb' : checked); selectCount('selected2', this.checked || !checked ? '$Tb' : checked);")."n";if($b->selectCommandPrint()){echo'',lang(242),'

',lang(115),'
';}$Pc=$b->dumpFormat();foreach((array)$_GET["columns"]as$e){if($e["fun"]){unset($Pc['sql']);break;}}if($Pc){print_fieldset("export",lang(65)." ");$hf=$b->dumpOutput();echo($hf?html_select("output",$hf,$ya["output"])." ":""),html_select("format",$Pc,$ya["format"])," n","n";}echo(!$Xc&&$M?"":"n");}if($b->selectImportPrint()){print_fieldset("import",lang(64),!$L);echo" ",html_select("separator",array("csv"=>"CSV,","csv;"=>"CSV;","tsv"=>"TSV"),$ya["format"],1);echo" ","n";}$b->selectEmailPrint(array_filter($lc,'strlen'),$f);echo"

n","n";}}if(is_ajax()){ob_end_clean();exit;}}elseif(isset($_GET["variables"])){$Ig=isset($_GET["status"]);page_header($Ig?lang(107):lang(106));$Uh=($Ig?show_status():show_variables());if(!$Uh)echo"

".lang(12)."n";else{echo"

n";foreach($Uh as$x=>$X){echo"","
".h($x)."","".nbsp($X);}echo"
n";}}elseif(isset($_GET["script"])){header("Content-Type: text/javascript; charset=utf-8");if($_GET["script"]=="db"){$Qg=array("Data_length"=>0,"Index_length"=>0,"Data_free"=>0);foreach(table_status()as$C=>$R){json_row("Comment-$C",nbsp($R["Comment"]));if(!is_view($R)){foreach(array("Engine","Collation")as$x)json_row("$x-$C",nbsp($R[$x]));foreach($Qg+array("Auto_increment"=>0,"Rows"=>0)as$x=>$X){if($R[$x]!=""){$X=format_number($R[$x]);json_row("$x-$C",($x=="Rows"&&$X&&$R["Engine"]==($Fg=="pgsql"?"table":"InnoDB")?"~ $X":$X));if(isset($Qg[$x]))$Qg[$x]+=($R["Engine"]!="InnoDB"||$x!="Data_free"?$R[$x]:0);}elseif(array_key_exists($x,$R))json_row("$x-$C");}}}foreach($Qg as$x=>$X)json_row("sum-$x",format_number($X));json_row("");}elseif($_GET["script"]=="kill")$h->query("KILL ".number($_POST["kill"]));else{foreach(count_tables($b->databases())as$m=>$X){json_row("tables-$m",$X);json_row("size-$m",db_size($m));}json_row("");}exit;}else{$Zg=array_merge((array)$_POST["tables"],(array)$_POST["views"]);if($Zg&&!$n&&!$_POST["search"]){$I=true;$me="";if($w=="sql"&&count($_POST["tables"])>1&&($_POST["drop"]||$_POST["truncate"]||$_POST["copy"]))queries("SET foreign_key_checks = 0");if($_POST["truncate"]){if($_POST["tables"])$I=truncate_tables($_POST["tables"]);$me=lang(251);}elseif($_POST["move"]){$I=move_tables((array)$_POST["tables"],(array)$_POST["views"],$_POST["target"]);$me=lang(252);}elseif($_POST["copy"]){$I=copy_tables((array)$_POST["tables"],(array)$_POST["views"],$_POST["target"]);$me=lang(253);}elseif($_POST["drop"]){if($_POST["views"])$I=drop_views($_POST["views"]);if($I&&$_POST["tables"])$I=drop_tables($_POST["tables"]);$me=lang(254);}elseif($w!="sql"){$I=($w=="sqlite"?queries("VACUUM"):apply_queries("VACUUM".($_POST["optimize"]?"":" ANALYZE"),$_POST["tables"]));$me=lang(255);}elseif(!$_POST["tables"])$me=lang(9);elseif($I=queries(($_POST["optimize"]?"OPTIMIZE":($_POST["check"]?"CHECK":($_POST["repair"]?"REPAIR":"ANALYZE")))." TABLE ".implode(", ",array_map('idf_escape',$_POST["tables"])))){while($K=$I->fetch_assoc())$me.="".h($K["Table"]).": ".h($K["Msg_text"])."
";}queries_redirect(substr(ME,0,-1),$me,$I);}page_header(($_GET["ns"]==""?lang(35).": ".h(DB):lang(68).": ".h($_GET["ns"])),$n,true);if($b->homepage()){if($_GET["ns"]!==""){echo"

".lang(256)."

n";$Yg=tables_list();if(!$Yg)echo"

".lang(9)."n";else{echo"

n";if(support("table")){echo"
".lang(257)."
"," n","
n";if($_POST["search"]&&$_POST["query"]!="")search_tables();}echo"n",'n";$S=0;foreach($Yg as$C=>$U){$Xh=($U!==null&&!preg_match('~table~i',$U));echo'
';$Ub=doc_link(array('sql'=>'show-table-status.html'));echo''.lang(119),''.lang(258).doc_link(array('sql'=>'storage-engines.html')),''.lang(111).doc_link(array('sql'=>'charset-mysql.html')),''.lang(259).$Ub,''.lang(260).$Ub,''.lang(261).$Ub,''.lang(56).doc_link(array('sql'=>'example-auto-increment.html')),''.lang(262).$Ub,(support("comment")?''.lang(96).$Ub:''),"
'.checkbox(($Xh?"views[]":"tables[]"),$C,in_array($C,$Zg,true),"","formUncheck('check-all');"),''.(support("table")||support("indexes")?''.h($C).'':h($C));if($Xh){echo''.(preg_match('~materialized~i',$U)?lang(263):lang(118)).'','?';}else{foreach(array("Engine"=>array(),"Collation"=>array(),"Data_length"=>array("create",lang(41)),"Index_length"=>array("indexes",lang(122)),"Data_free"=>array("edit",lang(42)),"Auto_increment"=>array("auto_increment=1&create",lang(41)),"Rows"=>array("select",lang(38)),)as$x=>$_){$jd=" id='$x-".h($C)."'";echo($_?"".(support("table")||$x=="Rows"||(support("indexes")&&$x!="Data_length")?"?":"?"):" ");}$S++;}echo(support("comment")?" ":"");}echo"
 ".lang(235,count($Yg)),"".nbsp($w=="sql"?$h->result("SELECT @@storage_engine"):""),"".nbsp(db_collation(DB,collations()));foreach(array("Data_length","Index_length","Data_free")as$x)echo" ";echo"
n";if(!information_schema(DB)){$Rh=" ";$Te=" ";echo"
".lang(115)."
".($w=="sqlite"?$Rh:($w=="pgsql"?$Rh.$Te:($w=="sql"?" ".$Te." "." ":"")))." "."n";$l=(support("scheme")?$b->schemas():$b->databases());if(count($l)!=1&&$w!="sqlite"){$m=(isset($_POST["target"])?$_POST["target"]:(support("scheme")?$_GET["ns"]:DB));echo"

".lang(270).": ",($l?html_select("target",$l,$m):'')," ",(support("copy")?" ":""),"n";}echo"n";echo"n","

n";}echo"
n","n";}echo'

".lang(132)."

n";$kg=routines();if($kg){echo"n",'n";odd('');foreach($kg as$K){echo'','
'.lang(170).''.lang(92).''.lang(209)." 
'.h($K["ROUTINE_NAME"]).'',''.h($K["ROUTINE_TYPE"]),''.h($K["DTD_IDENTIFIER"]),''.lang(125)."";}echo"
n";}echo'

".lang(274)."

n";$wg=get_vals("SELECT sequence_name FROM information_schema.sequences WHERE sequence_schema = current_schema() ORDER BY sequence_name");if($wg){echo"n","n";odd('');foreach($wg as$X)echo"
".lang(170)."
".h($X)."n";echo"
n";}echo"

".lang(23)."

n";$Ph=types();if($Ph){echo"n","n";odd('');foreach($Ph as$X)echo"
".lang(170)."
".h($X)."n";echo"
n";}echo"

".lang(133)."

n";$L=get_rows("SHOW EVENTS");if($L){echo"n","n";foreach($L as$K){echo"","
".lang(170)."".lang(275)."".lang(198)."".lang(199)."
".h($K["Name"]),"".($K["Execute at"]?lang(276)."".$K["Execute at"]:lang(200)." ".$K["Interval value"]." ".$K["Interval field"]."$K[Starts]"),"$K[Ends]",''.lang(125).'';}echo"
n";$tc=$h->result("SELECT @@event_scheduler");if($tc&&$tc!="ON")echo"

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