From e3f727dae8eb3fc6250c7aa9f5f33423d29c5687 Mon Sep 17 00:00:00 2001 From: Gaojianli <823805669hehe@gmail.com> Date: Wed, 17 Jun 2020 14:13:58 +0800 Subject: [PATCH] fix compile error for openssl 1.1 --- README.md | 7 +++++++ mkxq | Bin 29368 -> 36760 bytes mkxqimage.c | 12 ++++++------ 3 files changed, 13 insertions(+), 6 deletions(-) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..0c4b91b --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +# mkxqimage_rev +The resverse engineering result of `mkxqimage`, which is used to extrat XiaoMi Router Rom. + +## Compile +``` +gcc mkxqimage.c -lssl -lcrypto -omkxq +``` \ No newline at end of file diff --git a/mkxq b/mkxq index 0cd7290ea1a2e3421d9909012f1efc703a38bbbf..4b9b9ad721d66fb56b64e5328d37994aa49b28b4 100644 GIT binary patch literal 36760 zcmeHwd3Y36)^~L}9YWS--$WY_1SKJ1lf`IQ8X6%Gfgmc{G@Z@@o$jU=2o5M3qO@(C zI1b7b z&pp3;&bjBFyHwS!qVAp6d9xA>21Oo5G?#yo(>Rll1dMWl3u){u@}#gR55d&^h}hr&<_p^`&H@T z%Q-KpR*#ieDCBjtDTU*bYV{~Kwq-ou=I%_RA`oTWIWF}m9Hdt%^eTm(r1ex09Fod- z7JeQqCO=0mVc8eZa~xJAl`*^ldQ{$jdx&r<3q^VH>Q_e%j6+i4wlcbuZzi;aX$!rv79HM-uZ7&Z9*OD3I-T=Hto zHyK~O_jSh0PyVwfvf>^?VX!NKMF@CT_-|mz(uK7Rz`BwT#lf$QV}E=cfBMA1=fts3 zL$@n`j>M7g6~~`rapbQ6Zo!}aI2@5$@CBm$7njva)bvs17^EF+5$VpV=9o$L#l0@@Znk zA?+)e|DFDIzMz*)`J_vnbX|p_M#z6x&I(uxL8UXEMwYl#)vsO2Nztb}p|vshZ_p7Ws-D2rdbd!&*m} zBxML0YWwU9&in|48|~r?p;cLxlnPe`RnzZU;q?X;>Ko;Xs}i;Y>(Co2s9C+CpyKrf z9sW{?tu6NyE9eyf(0)`3bp(IVUg0SBsL{%`=h}0qFQRLzM?xo#@+g;nwNf2A9F=(; zTt})yRu*DVsgq`I& zJVoGTIy^(*h%`H-pS=WLsl)pVe4`E@B=F5T{4#;p>hNI#->So}5coD7ewDzt>+mrG z-=V|D3A|2+PZW5)4xb|M!#ez0fj8>#=>l)k;j;zati$ICJgUPN3cOW^FBN#34!=#{ zif$fu2|QVcuM)Ufhp!fRe;vM7;1(UeLEs~Gc(uTryuAO=HNLo2U_i45r)z$BL^XJZ z1VLLhcn=NUroks@aCyF?d%>$UxIEtxPWKt|kmoPLr%DjCkWQ31y5X;5bSuhI4K9Z? z$t~C5^4^Q^G7U~;$it_>*?o}6sMO$8wmdd!a5*L^Z?guMx0;04YH)E2OR%z4gQqft z|7_FXX&QXH22a=EJ2ZHv2CviLW({7i!L`>zhc&pkwP#w58oam0PLl@jqrsascwY@3 z)!_X!c&i5Quff|ixLliH*`mKun+(**Cu{IQ8r-bGFVW!rHTYl+ZqeYEYVeU7{4x!m zqroj2e3AwqqQUbu_)raQ)8NB2c%cTrT!Syw;KMceat%I0gO_RWD>S%IgOAkUl^T4M z2H&W`uhih1HTYE;yjFvc*5F$;c$Nm=ropo{_;w9GMuYFr;5iz+PJ^q99>}lP;A1uN zhc);(4c@51$7}G5$%_%V7=eosxEO(p5x5wEixIdOfr}Bi7=eosh!=sv=rSxvL?6OE z+|q*(YM*fBeEbd{jo-}6@{uCGjMQVz?Kp-HC7zZ%VvUR+NIWfd#OfK}lXzOviS1x~ z3h}h$5!=T21mbC_BUa1!?+d`w5=U$!HDIvE__kK|C!z#0nXIGx4xri&hM0x%(}}00 zg_xP~Q;4S}g_y$lvBc9-Lag;)RR1f9w-DdV_@Ttp(m|||@dJscC4*Q!<9iZMO9inV zj87q+mIz|o7@t5qEe*tK8UOt}@U$cl+sOE{#M4qh%*Xhzh^Hlh*mA~yMm*j6#|jyL zl6bo1kL5G|81ZzgAIo9<+r*D1-op3;#Agw2X8a!Fvx!$2{}Suq7vc(Bvjdmm~!9i2hCRe3Lx zU0AHi8;J#qXbU>gEz_30X)-|4aO=T?5b-dP{zV8+8kwuf`xn+Y;7jxmkiIoG2$qV# zqPSDDDP#X0nh^HUECb=cqBWyW{m|b21_9Bx5Hu!Tb;e=~Z;09=)~GGq5H-M7*m{oG zJrtvT_=By6XeC8i2%VyI*xD9>pz|=3{o(8k1=OOh*zENQwNZBV5%g3~xAM3y11$;i9?*Ycp!s-e5gNA`R9iBDMx=o1m?N zvi`zcej^P~bP;oU{0o^BTJzcfobbIEe(FjNcOmt3F+nCII z>EU*`9&T1Mqcx_lphjN8^**1F2}5IhGdyC`?N<;&#HUbI!q(Q9D(9JcR?lx25_fO3O0qa zpP|Jg*5jgg-F0RMRX@D93_-MocP?jS%TkbH^vK~OS+2D$x4xlzJwUK%zD-1IReMQV z38mD5w8zG>7O3Wi8lpqmXqaqaY>lN*xAg zd+ak-)JFW`T!5d5bt8ISRefS)W_5kox~XczCM9#zOO#WvNm$tf4z*#UuMyV5%;~DV z%=OIb&6KP9RC|F>8^~w!scOUKoM1QRN6W1!ICB@;XD>y?7OCM?Dyp@iTJs_`6ofgf z;ik18?NneeIl{_s8CYfAXsFt-v0LT?6CvG_SleQ#<$2Ttif!Z4Sfqod=s>ujwoR>> zwN2&MsL9SCesyhPtEp}Ux`$r(Q|G6xuu#%ay%8ChD5^JuvZypv*NS9A^(F~Ms>wKY zuhr+Na$6W%Q(ezcU6bARPZF)(N_ka#iR8$}qD!_2)5^2WT$sy7t$jLqzkd&1t;kVZ zg;Q~K1d8ILHWzA{yQ|-UsgiK@-5`S73XdATXWfA&fZoCsy0U7jfJ}Y#4{7QP-u+~C zMnM_AQkBs+Bzix@!4g_ih`F6*?4ucyLNJg|5ZG>O;W8`-NNDzMM#r zR~u&=#HjD0)jP)1eyUoh#xcvr`4i-z&D0__EEc@usDp8nMmbW=1Shk0mL~YfQR6uC z9E&3fh8wuwHNJC^8tPZJnl02RMJ=X<-(s`c(ePO{&J$=xVjZ(;FYBJ6ZftI98IGnN zmCqxM;Hr_X8IDM|ek+<}~V z!wU!?Wuk;;C6v`sf@vqI)l9g93-XFO5D7jJZ$U|K&~xeN-m}a?D=f5P?w!P4pc;j( zM`HBk8X?;T!>!akNk#2pLwVu2QaWOrY;9XJk`iHSQzUc*I?YlCCYY~AUQ%PrNaUbp ztT(erfS0xg;{w}SfR&b(#i(1vQ%Sb5Q%42pGWuL?bsdm z$y3bt-0_BJ9XxBf0)AcBgtj_L9zz8Fmpl@o?AHoi>K9#I2BdJq+hKTnPRN(J z+j<0-$d58g^X4Vc+{i4|Oc;za3AN31%!VkbWuUF5h#ZCG2|Ch6`{$VpG|vLQH*`o8ImyJ8V4@dx5b< z^{|gIrW>(7n%u4DBGxlgt>*%lfMNoR6rEw$tTYDc{$Vf*YZ-`{kmX?-#r3SrGawJM z*C;Dg=mM}ITJd)_sHRqJIHLq7UejUhOMvJI#XqN_HKg-#UV&}o!Hll%>rk)ej@eN?bK zS7dH_3K5DFkx(1&64VciP8|q^aqPI6WC2T4A;OF zsW=_Ndq{XRSNsj7ElklgO4NwfeB?ay6y>*`!7Xd4b(kT#i=AHi32P6uSdaZ?5{ly| ztOqV-b>Y3_SEx`IC#)P)A8n5NjxbJg;euxLPRy~^)=l-HW#oTE;a75O0*)wq=(3J= zz$@VlH=O}L_;uVRycf1nm(ASWNcu=-Y-I|)RE3WzxK$gP`1uWCXXiHz5_W#GBe&!H z_7;T?{$%cA=4{SmwyFb(k>0f&i-Rm!`$oK>k#&4 z=3dQ&lUPclZr2Nqt9HBKTr?y}w4wjZqjL!)3UEfG^$0q72QQ)iN3$AwAtp0+IYN`! zIXFpCL(4WqpJ)+X;{&|fH}sCClT@$r&QJiH52Lw^LqXaMWT(9(Xg>+Ap8cqu5jTNo>rXPw2lJLi-?zl zFt{XAL=y|^2I}?1F^CX8xiK_^SC~S-3dQic`B~jsS*sy1tzwpEftiRrHhb*FyL|d9 zgHN#78Qm14$h3;tL)UtI!mvP&e7&iYuU7I!4*lmu)BOSym>By1sm)qYFdNQ8$u&Nl z-x$bB;`MqP#p&CO=k!e#b-$G_H;M5bE;`dPiM-0(g_-P3E}cl&;!`zi&l*$NBusIM z3CP?3RdQ}4&I`7xidKWI%G!n>TFpm3@siJfK6L<-JCidwlI zyU)*r3pn4w$5B@5Bj~aXQ6o&CLuIjxLOM|#!)hWmHC77MX>}Gg^{>9f7-ijLF$rf@ zyI_x-Z-}N*;|i075TsLyHOl(VUBaOD%=07`sG>H=HCUr$5ms`e#khG9fw4gIw-AGQ;%D66PnqAyBGnGh|jr zxC9IHdKig*$bD<0lRtDiHFhclpcP8T8fBDR6w5@W>1@e%{~mfYAy0EjRMYOvFYY*e zUCFA${R4Xy*gEQT2u3va1#`u8K9{QA+14>?ioKsx9aUSGcDD5?{O+*zD7W={VM}}Z zeVlBq?riIrR=H(4dYDgWVun>~R7sjwb4{FS8=@2swagZ}JDDuh`fJo~BQ*tTswisF z(UmN8?hc2}g)t7o1<{#Uz@3RRcqDXgCT)Fbv8KEnChEeW zSHie}4i{{PiKk&=o9;#-`Z~FeNJp$Y!q!7*!)6$v_2x#ReBf_C&17WP{1ZA_qyU%X z=z=vN8sIpWG(^v{`|QJ28xAYM(Wv(H9NuQy;p4<}t7vzaYp~YS@QFQ3wydx4Nu-YT zbFsMhEgXxzNxnpi>QDv(p_@crgdNHR*s0KeFALwLu9KDg{EmrdmAg{rCh(%^9jH8B!_azl1=S$-^z_`Q{H27rT z5fVR60RlZV*?MH{UZ{7R7f}DPOg-->JSvWsFh4NmcV2pa0wN-)cb%zab>3UarrMo8 zkPAaxOM#t(PJkZovB|XqtheDA6$aa8j4}MNg$TqE(rlQuA(w^-DpLz3UIKfP@ea=s zi-B1LUOt_zl&EMatGt-6WGW)vZYGp%pImM4N+f#qOpsMXJd%uCK1i3QdkMQ#FN#@D{Qe z*+TYk_kt&B`#lWyO&CW%VcHa; z3q@+uaP_c-+o0BYs<@GyM1S2=jOwe+J&mE&76i9* z#z>w)(d?X&$ucJV6Q?+I*VlTYyN-rGv`7zGdV&I?gvKKC8OnT@M?;i{$i}Y%Kf!&}g|Qh9*@o(0!XTVcTINPr+O{=w*CrFi7ZYMtb0%hS z9bO+z6j|ilUwX)ycPH#sF^UNURE<2e=!)aiG~L*LO2_rIP}8@h{i4R(Fc?_d_; z#e~Q4B=FTWk7LJ`s32@Nk5;PvrcoH8!Z3bm784LA^IXU>vrQZTh#xW>&+yu%P%d#mwXJIZFSj?RSY(dCb zHY7#KS~I0`%GxQ;DNClz@lFX$shAR+;+s-3WziJBM=1!ogXKQA%TiMAb_FZ}pUYWZ zQtm2Fp(hwYfThIk2$Z4h zyj%e~y%iPsbP$&ad9*U(dqS4A7S6b^75ppkjiwdua(rAVP?qh(cbGWKlI-JI7WzgMzA;s@PJFs5 zMd`r#ccu7er8?o(x$MJN64QQ{s*sg8*R@V&vQKzfc)6BUu5}ifAxg&At@yX5Sg`+N zf5R89F05yV%czR{Tvm!Qrr5P+OhvGGc(FpCokCXwBb!wzSUl6Rn0JTD6k>wjAcj={ zpEN@cskE$E7jy+!hRg2=xbzvybbRT|Q);nNCMBlR2)7I$R+*w$J;mAC*&ScvvhWX; zb$nM#15n%ryJ&uPurjF3Vq+cdSo|T6g$9EIAInmT$B!>rku!N>j>D0Y<(S}_m^I!p zE+=d3gq)JBiN#}!OD5zv&|A=7hNFk!ng1Z;RC-qdkL&ToqP?A#LzDm9-cD~6I^Jn- zrv=-egVOi!T0!pz9r12^`*Wb1j<&ZS0kyo>-hKvj5$3ZrEYZIWO5d}yooH{T@5Oz5 z68fO)u{3l)=+Cei_8jP0EFc{LeHbe}XFzvgr8v!~DA!{>cQmLSbROs{pl;AJSYo~( zlpf;#EId_AOH`C!8~+Y{P&)9`gdK+4 z7b=EIvtdwLx8z#X;c}q#+_3R*d%FcTl??N&jQ-bWrmjuis9ZO2>XqXzA4-a(KNEk4 z|J2@24-Dl&>1Fuqju_%;4gOP2hWVa^8R#yf1);j zHOprDb-?||zYXzH^^G?rkObLp!ru(()lK?l%r?sW{?NPb zczZiL5y<=mKXZWWQ@?l^`FC_Gf1O(XQskdQ`_rqc9rkP0@+*OtH?_Av(JB8?HGeDc zDEbXszf{ZrUM;^4`3>k#Ydh)tRsAO5m!h9NjpEhv6P{4@+mQbx@&|U(@1yGXN4*|H z|D=b|9r{~T{Yl90i++no9v%6GEStrDDe_a1U!=`X-~z1uk)MzJNuA0cr_8JDDvg?z+HmJt5@vkFDM(QB25I{iyf0ZoC-B%Ya-|6d7&F;6+Fmi z$D~Y7C0;8E5^gEmh2ic(UY0MZfE7HoVf8~enCef0_X&H5ugqsEc(04`XGKNvYB%HA z_>e~bA5!@}a=pnB7LH65be5n?1T7JCjiC1k`mmtS3c5?sHwFDb&@Ti%FKE&bg&lnb z9UmJ*9dx#pbrcBtf0FDeN)g61pPwL^MWP~73B*$LePnV&JuKqpe2H? z5%eBG9~SgkL3auIrl21P`h}q91x*?z$`^Empd9@#etrL0=HZ-fYezdW{=Vmi?!Ovv zsG{4?&#m-Lc*YrfYD@9sV>f@4@pRp(b(hB8Z{B?3*dtfX+tq#V`WNr$mR0xVgM;6w zEjI5SeAcpKrET@A-+nS}-=+=6PY!H3{c*(&JCC1hsD7_%$yRr-`t7TVZ~tz^zs|hn zx^KZUL+=yrB&Rbk^ZS3KC)XUdc&6TFE}wUL+Vc1Pt4p6edfIr+?Bj`Z|5crSY}L+` zXTIOQbAo&8OVdAi>$Q*azkB_;zq*^ohL(M5eK-AsQ#a)u{om(uPK=nMd~(Ca8$LYT z*U|XK&U3E}8FuL9CBNFT=iSU__SQXKmoPGUv&sI_iL^H_kEOnN?|Sc;9`nkU{_kMN z{=BS`UA5Crtw~z_k>PdAv8`8{-~T#X{o?A&cJ4}g=JXp+j5}Tzee$htmE*rtG9TF9 z{o(#wGyd{g`pP@A@+y)aaTh;mSmylV+zqQ%t#G(6Y07a`&sSEQ{o9r#_s^a&4BCG# z`R*GJW&Y#M6FXdmvE4nts@oS?zxmZ4KOOw>iaA*)`+U3pz58ABj{mUK@lwG%H|(4e zR9=7Tvz*tCPkZLm>p$Gmlvi=+=+i%(`{2EmvGN%|p74yHwYl^UjdjaU2C@=oem>YZ z&OR^Y_iwFF|M;5Kro!J(OSr;pPThBpCGD-@JIii-x!P;#e!S$>Cr&%w$@uP*+qS-S zV${&BjXPf1{$WGEyq9mfEB%%1smu26{)2l@y``$|Z@XT8Fk|2De(yi9V|nzc4?ei#p`*V!bf9U{!n2<)_@?x=qop^#{_Mv|JFlBN z@g>{ItJ0h14N7_8{Po6(%WqGdcJS-vpB8;uy8Y`1Jh|)kmCw5WWyhZeR+YTI?U;A? z#LvnWZdsdl#5g`DVRJ3pEo$F7^0(NbO7&EM-r#dP=eZ*1v(d);Tx zU-jb8CJow^_Ui|Z{UUwe`=9Ur`qcU%pMI2j{MdW*wXquV{O(eU-!duDfsLXDQqM zek}dN#Z`&(54>!g>=;q{+kf_5-dHfZe9lK}J=b2p^62xYZvNmzN$RKhty7z>UiAFy zzx(6kuYGdoyD!a-weQTik!|#$u>6j& z{BCeBA=h6}`5j>S-Cy~gU-@0%tAw2VZtpn3%kT2a@9@g+?#l1%%J1sR@94_!<}MZb z^1Hb5JGiR^F28dtziTVMV=KQ~JA1~ADVCAb+`e*;%Q888Ye;SA>x!VCoOm3)~l1-&V61z13OiJ!XVNEDE z3~+-c&m%!Y(iM>CzM9g>iQj{y&?XkfYkEJ7bZW94zujvICJ|#EgHz}}$#^YK7bBgR z)|&)VenIJUp58?143eGcACa%*nTcB&X9i%S}DHPoNC*Udri_K}>&hKI!!6 zO^n4HV$2|7Mxv~qVACqW_)NW%dm#AcTrj3SNfcMb`~oq38Ix!pO{)DElWhK&a{6cH zfTWopq?`dMOy7JPF$0;4{mtWu8N|G@n6F_>FIKjh?&M5^E+r<1eI3Dc2@{)So<(AV z2YiT}e7HywDdeK*^1(r5rI632oW2ZSOzB*n?nddc8M9G~)MRR`l=Tc5L`Vi%C`O`( z()}iolx<{j{6K4L2DOw$x-BL{gKb0px z%mc;=${f6&p4eA0W=u()nmRd^Sd$RI+h$3bkj2NOg@B0*B=>^+HF&eU`v|6=GG3#9 z-2lo-B}Fop*2`ebNKNI|4FJ;96=Sk2Y!ZxT7z}fIQBLL%SQ`Vx3=!2I66rAn73-O8 zxNd;NuNct7(6d{9|3{_|Ak|(bjnRaDyQia`y|rEmtWWrE146Q8`hZ+$^}X+IgObqy z!Rh@G`D}$e_hiTtP@d`BeaM0s|AoIvX*C>Ej!buY|YsCV}Sd0H62k^kPRr^Bi|RrDGnt;&-{KY>t@ z_@jGylv`=W@(Qhe(m^;Kvc8vdRvA;~tw0lm%H74@+g<)K4j&%#1jf)t3}a~L2i7cX z3y9q8-0ZRA6+CFN7kll&GJ3WYpy-cTB$~iJXMugzoOxD?H`ctBpgUl9;v7WVeBd#Z znn!y<@NFLyEX=Rr`B2~jOd2ARW7|W>=OMgUSFz&5V>LUi)+_YL$%5xZ<)t1xk)m^+ z*i6Ey2q*0o<(^Q$o~w|&J*co}atgMjpxsHBYjDBm_mRgh zS?2I70hcr6cd=@*lBs@p$XDu7O5I-EGzbN%&$N!;`Li%hq4tsx zwiQ7zoQfknQ$|a>NruOTX9Z-w!do0dHD=E*vdow~nP1yjvMPchk1Ma# z<-rpXCs>EyS(b;+nl*8}C9BkuwIIO%Q2RV5)Urxw?+9@iO9Qsg>bXS|yt*9$x2$%y4$BISE1a$iJkt`R$8Eu|X<-C@-1 zSEbD|;%wB_dZbb5qsaB!&hq$AJU%VL(?+b~%KbjHxkd#SE?pc(1y^8Q97bhe7bx{B z{P)!^4kLRabYX^(J#Fm@@A|IXs9biTFc4!GorF%~iOM(adIegS?h2>#y#d$q`t};i z@C(}u7u=9HE0wx-p8-4p{Y^h#SOxyHu7A?yKFNQq!)aOGfc9D*LV~3^-N4fQlrn+i z>YE)A{F0p&@Txw^t>k)bE-_q>*u%brgnxkli3ia5)W@bfr! zUSN2~{05dCJLAaH=Q_Lc=L3ePDZM9iefB&S$!3A?7X8h^vz4;~4+}h7;Pl*!#*+R> z!xcbR>=V3bUb|wEp9Q$;m-jzHpA9S_9;Wu&QQ{wc`%Nd@gctn3= z&%5FB)p6vnjf2mOgI^y9zlGsxO8?^&AF|0wW*0)LukD|4~z(nIO1D)1&I zFBlDJj)S+w!GF&1H09yx+z5NGgOVt>tA3Ic2Okcc;9aRy0xU#BZOSH`h38#vY1 zBI*nG*s(Z{{4ET}d5x{pDhhiq3K}JG*Mmc$Y95bIPG;@*l!XO4|~rE8h;n~Q{%Y)TG8MB#c+;ke-qd|uSIye zyO{s&V*Z~YMEU~nf%cWx;qv-zlb8qQ59fmHy*4BVGdmskLBbtnn6Q8FIxf%NLqhT@ z;1&*b{*{YPxUUZcLnS3x0<>ex)ddUf^X4pCY`24(*@?5-?6Ve5E3n$9TW8Oi4*|`# zvcU>Fwutq(u%Rg}Zi(fbVyr7*g(p<0;5AIV#2$1NXHOiPJ6@p-dwFpsaTBovF6~KM z9IB{TN9&qcjsQM(qIAbPe?=Yg*wi)XcQ}LeLb2WNMbNP1x&k}+YB!N(Ti)u+=6k}bThe03 zTfGF^9~c|Q2JJq)C#-~mDdi?ix%7K;@xoF7Q|wUUiK!r9WVKIxTUTH ziuY()E|U|R0gJtC`JTZ4ZWCj2UAup--u;gEnc42U`t11o3#&1~i|%X-U%e`p=xD)I z-Pl*3-|=3tK8OAN0)m`p{jKw}IO3M9}*-~1^Cd@4K>^~*Y;-bq=GXK{}MX)3cDR!DcgCMr+SJ_k-KPpr{6hltUbiHCdL>HcZiV{Sw? zBbI~lqPLwd+SR1u*t5v zX)_zae2Z(nG^P$uz~>DFXNStMW4Mdfd$BA_4bRq%)xc4#Sotzy3MN+{p9zXx0Vm&j zTI@Exl7y%;_yZ2P!!+NOn)*dS@dTRE)s4xudxR_5fprxq88qnUv`nVha=GRLMriggE*n{%;E~*NRZ7 z-GQ)UcXG+H=Mpk&#R|V`jm&Z56$zPUen-^I7@-nxmCAx)#9g9y{dy zrKI|mJ9*t8#Fb%4oX0zqQlIWi>5!D(yPyM?CG3#bDS}n9kiZjFwfsh*FX=X1FVR7l zVN|x%mn)5Qc}})v`SQJ1N#%R25MhVj|2&{rJ6HXe>(G+Qrv=h~S&pRFL!aI`mAqW9 zmej&Zz0iLFD>orQb(8vXU0YK59;_^1Uw^02pDql_^>0b#d$^?E2Y-6~3SblyT<-D1 z(wU|URuX;u%8;Sem+R@0TBPH`fLTZBagbJDuDeSr+gYfo{>yr-*XhgkG)XImNKH=l z{@<lGf?suP=YQ(3fIz-P$G=3}t)C0`>azA`X==_2u)3rT?Y=E}g#Icf9Ps)ISJ) z3b8C-KHsPm`t_p0WZb0xvR<@KqV-=s2bpvmGH|f(;qfH;oNLlF_Ed4{Q*UM91NI+1jCt+I8(_@sE z@8c5NI8lG~?MJ#g7ny9c&>x9Mm~;%qA1!gn`pbElp8x2Y7zpI>lw}utyO~$CRJiW!m+IG zJYDLMd!%O+dPboqsUrNBRF;p*M!(r2T~8+=jSfjkmX5qHTt#%g_BzI%M|+AuNGkPa zK#%oDJ}=8qHstmvR8(e+6pp84KFQ9F13}rE0Zh7WF%*dN^#m#MzC^| zeUhCrEuYjCG9yDpKKBtArGHselYZf>(f5z&x$VUFr7v%F9R28il26A^)*Gwzs6Nqz zW#Bg&zo7#k7%=v%f54`vf4Tr{rw7HUv&0MFOlSCx2=a>};3p&Cqa)xyMZj-{_nrBZ z3S8}^WGf=r*%JY;jbPszLH_Cp_^b$cLj?S@2>AR6`0xnz@_PjNh6v>fM!;W=V29eH zil6@Y20&-^vMGX{J0i$m4_w7he-s1g%zk!+I9vk!3cV5V7e(-AZUp?n2>Cu2L4HjH z{73}+Yy|r~B9zM)!Or>!cD6*oheWXdR0R7cBH(vMz`I1S-#Y>x8v!>*u%8nF|20B+ z--mo}rJquguR=mm9ROx=T0oOms@6=3ra1D$y8isFE=?|W{1mU;-Z}j8s_Ag@@_QTY_d8m7A4P+YjRl3 zMW&gvvQ2sU6Of>gMD8Th#MyIAg{2mAxw}Hios@2xY%4dHvcx$Sht0aAgJdpiyR3@U zUSTOm)ND?B;n=Yzr?b!uXRIzuX{q9LIm!zwmM9f&mlGn0Y2iXsVaY<1)od$O9G1nl z@*>4*v0HIoV7I#zYq15AP%DMaGD{hXuUMTH%R&VS_6p?cDzdv>N-4vvg{5|Tw-zfzD%voU|#av_Zj|^kfyd>kEM4M~&zc>MSB_y~ ziZKG77XhEE!>fdy`8s^Lz)N)ay#lY$;eLTv>hKzYFVo=<3w)&xe^lT#I{Yz#*Xr;m z1-@2?uM_xs9saz)H|X#e1zxAaUlDk{4&Ny7gF1Yxz#Db=4uLo6@ZAD$*5UgF9?;=$ z3%pf_HwwH>haVNVq8r~&2|P}Re=hJO9Uc^TKOO#^z*QaogTROA@ZSaAG@Z9+x<(0I zV&S}5gI~y-IQtvW;Qcgss|J_XhLqfR-wVgB^1LeHMqQXql9G|Tzh@HQiE%+?`kwS`6Q284KBwN zN?WVJ1Z~#f z+VyfkgZI(Mw`%ZWgs%SqHOEEMvJWhjOqOp^t!TW3Qej5Bz4X$eNff{^> z2LFo&Pu1Y61|OrrFW2B%8vF_kZq(pcYVbS_ew7BFtHB3p@c9~ium&&D;8$z#3JpF) zgI8+sp&ERd2ERswuhihfG$Xz=wKe7FYRpuy=HTpo2AJWYb2 z^%{JH20y65M{4j!4L(YP8$D;@jQ-fnzp9GSTknc)Z!~)L$L$MAw5P8brz-7(9>?Fr z%d&7rd^Q z@if&0H!%K}vEXUw2(D%PS>kEP2-YzEYvO6B2rgs%XT;MG5v*YRapL!=XPeVa)1LKzxPeVX(E#n=;Q`ZmHFn$5?)a8TA z7+*j2uD+f~Y7uY~liHQ?Ei_RUn^hqoDhpBX);Tk~e;RL9x); zi=hCM@TaHIpSb{BpciU5V8ovTv3npFMeZyk$G+bOlPC{~-x{<+g3geupS<(!*+D&a z7Ya`$?vGdm3eb9X6A-BVO-Osrs77B^!00ywjJ}3I^RMmgKEpX;chG>b3qROu2wV*X zDfBvoj6Oq~AA*GknJgE3pCo^$RKKC^t$oZL&zU4&o7HFdEpfNuH)E}_y3dz*JA$@WlJNgZ0(JIWIF+9Xkwa zaGaO;V;Mb5sprdJs_8D4($H60whD^XMR4|_*5Tr31a2F0Amhem9 zJyp%ou6X?IlIVSm(mhpeit8F^zsJP(?6?G|ti5IE?15)cuDY)ghafo*Ne?&J)^Zy{ zLe<)mj}Wnw9Arx;kh)c5+cE|i4f?>QO6)3NRL{WDC6>f0BJe7@T5vO3Oil0=`U_vX zCf@ffg#CtQO{Dg~w@{=ugJF@9Z6yaW@fi-cEcI748U49!{``|hzq^%^vwi4z4S~xr zagfAZmShO{juM)Q>4DG*Mt^=AH^%VCFf9;{NbweXBjy1DF5zAu6>L0bzeddbhQp#& z-E(FGmDRVi1W`2lw#;W_^<0o5w8TL)gc;GW)9M?%cLD^9`eUPj(X*4J6?c3cNPBP? zs{$`K)DW2a3pM)HjIB1*8+{+{NQE-5KNP2g(tU=NMt?}<$j|NV7;ECG>9+?@u&kEh zuM*sjKYqh9bQVv27yl%0z0a`1Q?)`#T=62Mc;$NnS+cIx3=c^y%ZIrznT{*zs6WyRgZir2cOIPt~$+i4SH%s-;U!OH>U{qpB}5j_k=o?1~MPAn#D6)FiP=sr(K_*y6%p zU1b=ny{$lZ(A}BPfHe50_I7K7cNr2eGI&>lvT!tbYs6`TcZCG~UNTN`dKGa(P#9b7 zt!JpNuHGOKpSPCMJUfY`%37jDl%Hv38Yj(6WBqj?25A~?Y5gGk>stfRU(dk~@2_c4 zOWfvtAEvB6?{W~q)xx8rXc}k-)b$UI=B8+ABTYR_rd|k{`jWRhS)4JfU9lpgawPgT zVgr@}QJsguoF(j{1r~*1Aax<{14#6H5904wcFr7_Aspzhao`GaU`WUT3mky=??Mq} zq3}!2)7H}+&w~yb#j}&DQgJ1AR8H`F;C}CZ;J!V=Eo~#-`-8S})HDBY^?L3cmCn${r;;l$K(>W?%R?9k`Ml1?+_A9LG8k^m zCpY~00W4;`+zcN#jSy%soTJqyX8BOI709*@v+@Sa%Il53+_gDALv4fMAPNC9hFYT^ zo?u+|8`k@?;yi8L7WJa@#BGW-bJq?;nFNEw&>i4pKye`whV{nkyd+SpKMoju#{yMo z1Z-SnvhA$B!?LG7&acqg3|?;>1+RUE=9cM9-&3Ci|4(DWq%eH*JqtrKa%fiE$sIYw zI!UcMeLolE1vMczJ_4^sPP^&OPT(MYlhIfN>?*}1U3&X9{JV_F_GF@01rLnS)tPIvzxs=2cy+5LP@OtbH`{XIcd+vBcVCz|AcQyR_eZ={GJx3M~ zBh1i)UG$=k8g^sl%M14~1pJ1B9rFZ>TGdK4z-7MGG|L%%)pP|q$>*&E(M=l-hR30x zSQ`v$Xw)GIOsPIY9r`S3;dBGCT8Sn>x8f-rul<|BYf-ATsQKei_w$SpFTOA_V&?K0 z9`{r|jtJ0v3==Gr`6w`J7oE=kl;}fS_f)MH+#CSSWz14_`UuP< z99;`XUFgS@mdw*IKT%20k;tFB6X~z}5)_;|ZcCDgKub5AQ1we! z$5Gu-_cy1h@IRkIa4)WJVY!Y%7MKbFVa0EFTt5=Mh$w}IggguhO{kGZ3<(D@B-CR_ zz=HiW*+G5>HRHfRIS#~Oo%t}_;l3nelnoBm z2q$iabw+dB&jBPr%)|YAKESqX!~{n8K{8)C{Z7R zL&$shw{&(oR6Qz96h8N9xz2!Jo4YK@Rb}Jfc?r2TGp`!SOI5v1AOU>T*nRIt+0)nY~r>?(#L5+ zEmOETq;Llm(9xUt{D!cz`3;?f&2Rriu{!3rwdfvT!Jk^BAh~*w#Qb@2jAV6Tvfm(lynyeJEc1749UH|* z^DMHWg(h<2#ie|y`%zwBg!KK;XO_ZS9m3ws+^bGkar2F;aR#|Bo1N=MR3u5Xq5b60 zTmp&N7^0JT3F)zAttn6cWW!R#DsbfgH4vTsDwSaofvX>7;MzfjY-69S#A zWwNMeFdu#SsGHnIG>wA|hE`#_Ni%RY$$?8OV2Bb2>A4z;D8aMm%X<%W^Ahe!HWdYku3S;-WFK5AG(SHRI<+axf zw*=ret2o4_RSfhjHfhL#4Iq`cpP^qIT#g_GrXvF=i2+1cfqcv;!~&e$U4@J~+%=Fd zviH9rYVQ#~nEof#wv}9?Iq1|ip=yifIq`D62?2ez@suGwMA>iUx0pm1_vN2y8ADzr zZcV~4o5Lqt(wzzn?t8wDOKZf`VDyx=Mj1VZHvGX_&%FnF!l>sAjU7!s z_hDatBO-(mww+hwok2|;#3I3PnBNI&;t}E3Mr41^Rd2=g9I zK5?LMs--KNXwLX^&-n9OxgNX5PlOAY^5El812q%0+J?YwFo8Ce%+`f8S5yz>RXqY3 z%aPTGzy^vS$@}+g5>E75V2_(`2y~-D36p-D(`;f0u(tD8VNg5yd;unKAq+Mc0@U)* zQbKKqIu=~xD*|8ceoxi@DEB4k;~7-F)tMv6nJI`38dGb_#Yh;)6NXSiib!A;f~lMj zxvg|hL}9@VUDK>!l6&EGqtTbdh@WoXCa$C5d4z468mB&wi3zK@^D)hhTEDHW@`<% zWfHb9aE1IjL6w^kZmU77+%g~SY>?2z?SYWy7SjBUXNxHp*C#j+`QJj9Dc=s}f#|1E zdyLfH)QTbm9SusQN!;f?=R9(e5llPpd0Rt;5eeM-LEVO;qbTxp>1{WjjB0_idfcs!R!zxtc2B^}_=Cwrm2(a`E zRv~q0qjk7UIE*UxGaFc`W0me+Z)Dd14FS6Sh%01IRjuN>7KQ&eMj-t#yauCL;2^@= zV5os1CHNAVGpyhP%1Z5k^7Ls8CeiE|}NTX)`SR)HN{Gx!aw#v2}Yb_Yen+0fFB zR`Kj|hpr@Y>$rbxPI|(jumWu`{KiT# z%5V4$i`b!ieT}{YIH$)9?5=vxXpHVg-&uayaR_F7nEZc>!o2Vsy2Mz+Z+Gt3b`3lw zc|+H5QIckU&y2F7^8NZRlqvrWO2A!6^gS)!s#$`$4OPMzukJjJ?WR&2;6d=(3V-4>v-U;=NnF8g1=QAoy=5S;f zn9lsb@E?9Zx(On>!D1(ChrTTpXqD%OxP}6|9FL{Y?#qqxhC)N&19Fw!=%*ek1_d+_ zz9M*vD-1^=(PsE92|nHY1U;A%cL>lf9rmFLze5=W(e>K^|B@Lde?P-oRMg{O_$e5f2OBlpDa%&kGG82be z($HZhm~yS3nKJJA4EkS(^jF3iJuK&_kgBqxKG9o>%Hk%B5j2rAR45L(joe6HGN-{b zhZw9ORz6Fm<7L;n&`93Y>m`Fut9&#J3g^@rv208&Hw+(P!Ki}DZ|c^CZzS61i8=82OSyu7QZ zI5=8v^s{qgZQ|Ayu@qknh@R#|jN&@HKF~!Zk#iRydp;sx2YVhS8|B$aW@GMpiNykC zdI)K_qS1Bt0q|B-bSF1E*oyzweI2ha)MVe3J!h)#SayCk-jx`X(TBYXkxX<}w(s|; zz8`aje!<>B+Vgu%zQqp$`T7pEQJf5?lRTpRBc>MCM{xLaH#Y>gQe(NwcPGft#${#NZ@wk6$izU z4ty5DlIe2^^@>5xD@ahKFA{9!#qr8wE)_|RK44&S{8I*zAyv|3RM7^83#6AnPn+1vy{7VK2Dv^JQF%p-g0x9MIGd1ZFDlZ zr{c31hngvji{eVQ0$=hVddMe}ndXs}UOC+bD)a1G)U~Z}9QlWUnZWULhjUR;Dm#r= zDs5)_?KX3Hu}QeD404K!`=9G!;>?NX*Mg$}U&a)a+VHuFvm~VgAF6PcowBb^RQi?& zUkO>4i0^dbl@6SLAjH293d0RI-fY5GL=w|}nv}=#yV0^lCbG|WRGzQ8(6U682_k2F zpTs`{V!{4j+Z#SYI=`G9E~6;&gQs|9c#&n%@G@7?pdy97+(A0|=+aCOj?mGO$9yeK6l zrQ=&Hm4D&W@yU}0ptuWm*0dB?rAwL2`a0ZE9qw|KI)fQsF)2l(Mp+9|$7ZCO&8f-e zbW29^DD%kFb~uNk`h-=i)r6sl9y} zVW2}mulcyWovte9f^G)g4oa8h-+`V3HDKoKgK6hDRuH2=dttdv-(#-;b%93X%4QYl zqqwZw44Q$P5r;w3aTnwq=u5bP)CVt5<>8jsD9|$8oSY5X4YyBSpaVcxf!+?f8T19* zb3P3E3m!|H1I@(!!#-FHZO85HQJ@#$(dKN>1-S9*0v(OV(5pZ*@my~+=-{8B51I$s z23ilAg{2T3xW~_qsHHQNsLG_MOM7;UtBLBCL^$1yX+7HBK8%a7zn#k~%2h&s!$(-V zz(*w^X>vlp8xnggj$5W&-+%lyBd@xG43PdL{8qwl90B6!2RaYG`;WD^rx2E%kaTbK z#9m!-N`9c~l*f@~1`VY}&x5x-y%z8(q-SW;Z)eF&zYh5KNS}lFhxB7+M3V&BZ^Ccr z@%DClaNm($6D8Bz06&4{%SbAl^erYOMyB_J-fLJpu?a<{M?07UWPc3O<1k;}6_)>! zQ2x{ot!O`y@~=et30#Uj3EGkWnvj3Bz;8jjV++Sn{=bCsuS5D+w8zC^`i_u(6L7je z_zcX4>_%!`bYW}q>l;9e`F~CTBN^+el-I$lz&W4D86;T|3E*RsI`ArNB&Jnza0JT z&M^JOA^kSsRe0DoPpcn&Q>c9X&@Q$kJwMF9ypVrmkp30eUCTs}wG{hu5{SIc!mV6(&{I@8hTzdW9TLwI8A-pJgkd~Z zWQWZEFM^kHxc$t^hj20o_l6nYDhh%t3C2smury`-T_PQqkc_`v*!}-aLi?fV3?C5n zeN@md1^rRbt|D-K1syDChM zI#|#QK_?43M^LMviv+z_&_@J)PSCA_9uV}XpkE65qo7^sIW~^If({lmL(s{B&Jolq z=psSy74#87pA(c@{m=i#<*5;cA4%=D_*!$qw>xHZ|F28-mv#I5xdj#J&lU#PtuA_E z#L5#1&(xh<@|WO|=9M2GdUROM*6us+eC@7o$#q}-W8m(ZqNHsD&#D_17;oSH{U_PG zR#Y86-oNGasj?Yc4xelAe&m@`TY6#r`h`VHe=hj_%v+ZGr_YP(^Kog{!otkNUw-Hn zSA9?|AAehtE$4Lh{3DLri=Y1Rbj)9;9PV=C@7`XA7H)}u_Lucr(o1VMPB{A3>nE~) ze&eOjOPfZx=Y4AUpx4opH)nqM;!CL?4<4s{GGp0{V+Z@18+UIxxB2ob_ivi>U#oX~ zkofG*x+m(Qhs3RnHEsO3=Ygw&Jzl%-PW$lQIVE#n9BAH?nQYx!lYMeg*V|7-y`dhe zy(a0%cRufHw_mnpYu9H_?|yRR;kv-nZ*{92^|O-r;QH>5^s7zy*Xz9&+?||R7WZgr z(LbW*6@Gbc#=?aK=F$O8sTS`vrQqy0tGkxo@odzkd(OozziEHs4+lQpV95(^yWs1( zUH&^)ZvXAmfu{;(L*SY46x$n=|GR~#EvF@|f*AHhu`{@nGRySpq z?f>wZU(X%=XhG06@wbo5M@?Q?{BmR6{Nv8#E|b0(7&Fq86aU|D-P!BZUvH1i`|s@N ztCNy??7CO&`PQH5aANDBb#eEVoQ?X+AA7snZoR4C zr+11i%Wlsoz2vK|3(FT>diam#VITQ!S$aI_-5X97+dtj@^UvSydT`>dZ5JPTaKrq- zx}!($dicYq_U~;PGxO}H)Bj!k`iI3gz46?su3N6ZF=M0g_^@70IhV%2`r{2T8S|HR z$=>(f{7>^gEnffKgXL*UcG)IBu*v*Re~ z9sh7y^b1|PKYo2iLW{S!o8!Wpl-T7r>|WhxY29b9414X4F_&)b`PhSp9_qF0$QRqb zJ9+2jpPuM(_|Ql9PWbHbzuPvQDk=9IzwEufyYBhh;O#&DYw-sA;wjtueR)gV%8CVv z?Qf6oYMs|3s(1SnmcQFxDQNqseWBU#L22L0&*Im9d#Km3*`6-b_HK$9YaU$u{7-%7 zH|9>UO+B%={JI+!eE7=ATaJEg?eS?=>-eV8vtD`Qg*Tsg{gb;t*f=HFz9n_Q*_}J@ z-@D`O)Q30CdT!n3t70=6cRbwn*n2~7`egR*;*YOPS!&%>cY}F<^ra=Yt{P^)X7sKe zo1c2H=e|onjlHG%yXa&&4@DXr{epj6P`Pi8+$ZOhz&{sM?t3Hmxsm(Y{4Ua`Oq@7Q z9g<(*E_b=r(J7-+Qj^o%j7z&KZA?n)sJkjE%p->Kq)0&%cnnrcW8{Rbk)_?PW_OCm zD6UTNE}?ag#thahv7z-&INmk1E(*uHDRR9Kj>jo-oe_?ASLAvo9FGsJd&2P^id_GN z<2{uPVm%O!_fj@=GM~jL38DRI!{rkdxt$M0!k5MiR z?Hj92jlt?q?(Y?jUxa;QRV~EMW0by%Tt{jXV`%4@PUhhl?C&S{F$$NLtL6@rmfKyF zf3w@l9VlOaMvovle(~{zobo-T#il4w~mC;zW0JW@jUlIltcD1Rm8%z0jxG3jEa9 z?-_y1>lMc04+TC7-@WMTy)W*;s-4tt913=URMybzaKX?St}^)q@0QE9o^b0wx^oO5>%l)6_v!ubnzj*SuQ?~j1fb$Vyz{ROxxY-&j#WR%oNf4`jdFRdg$pA-R~3;c@n#T8cs`PB?h zP_~Hv#h!0Le|-e`okITRems*5k=LOJ@+}eYc46l#l^bBsO>ufDZp8GCzF0{W^Mx?4 zTn(JYnK!QCNWMrI#c(OrL5;$W{yH^3f;{bDMfO`of42xzl>&cR3;>G-UM=w6V!&h1 zEs<6Woc7n1^RK)g^AeNq@K2uYkANQoo&-DkIDF3J6O`vg9K>w_kkwnd>Q-9ajZyIpsk6hOYhcYAB?;Zi4$?ycFmuM&KxjphN75I_C z+#mM708XEYFrMEbm^O*Fz&7FEGB6p80>rn(ifKyD^a&oaz5&CZ^X zV<5pWt3}}e+fiFFO}cqncJ9=Pp}nZHvgFp*eCK4m6=|}V3rkQK?8eRafX>R2yD!sD z%WQAya7gUhT>Wu{f!oS9!DesO(LUOGP2I-ew5N5r9kx+* zIAp1GIn0GFdcV))u%n8xRdoS2!DcyWUWPkAudwa3JB*IjZ`7^Vq`kR2#3@{S=j?Ed z)l&st_Y-e|hNrT30>h#6w#5!lcDrn)CS=4a%|x4b^PRWDrPynB*lZjxkIFiaxShGa zTyl4FJrZ%`g? zklvRJ-|SuQD$BCdt>n?=%`P+FbiA{j7`^7 zUSl+|cPS}ya)0-5L#&?J>(Hh$dR5wFE2`{xk5X@yzW^L=LH3Ap_Lg*br!bkY6TcXA z3LS+bN0{7v-+I1Ne7GUR%xO23z-bHUO_dnp$;!) zmlm2>R$}}3a2pgi+DTtuFt(9=xTwig;B<-_lvz=Spq@|tOk%S9Y;@CaiQi#z6m?tq zlJWUXyA=O!0qbkdjxh^w{ObKA|HJ+n0lfg<^u8loHoRg#ejUR0*$>B{Nn87egJtGQ z(JsmzN~s!{TCJV@l;Zr zOUmFXsLR1=i9Ex<981y{6OG|9f%t&4l*Q=f7L0FQ0cvYSby{^M4Ea3HVVT zqC?&Xm;a8OUS9H&9)V6Geo|lFU(d=RYaQ*4a~-_Y{}&P{L{eYgZ