From 77423c5c356aaaa85708a7466a6d06e696128f75 Mon Sep 17 00:00:00 2001 From: admin Date: Tue, 19 May 2026 21:59:38 +0400 Subject: [PATCH] v2.1.3: fix Crof mimo-v2.5-pro reasoning_content token exhaustion - Strip reasoning_content from proxy output (Codex doesn't use it) - Force max_tokens=64000 minimum for openai-compat providers - Prevents models that emit large reasoning from running out of tokens --- CHANGELOG.md | 8 ++++++++ codex-launcher_2.1.2_all.deb | Bin 24910 -> 0 bytes codex-launcher_2.1.3_all.deb | Bin 0 -> 24992 bytes src/codex-launcher-gui | 7 ++++++- src/translate-proxy.py | 13 ++++--------- 5 files changed, 18 insertions(+), 10 deletions(-) delete mode 100644 codex-launcher_2.1.2_all.deb create mode 100644 codex-launcher_2.1.3_all.deb diff --git a/CHANGELOG.md b/CHANGELOG.md index b13074b..ace2e99 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## v2.1.3 (2026-05-19) + +- **Fixed Crof mimo-v2.5-pro stopping mid-response (finish_reason=length)** + - Root cause: model emits 600+ `reasoning_content` SSE chunks that exhaust `max_tokens` before any actual content is generated + - Strip `reasoning_content` from proxy output — Codex doesn't use reasoning, avoids wasting output tokens on invisible text + - Force `max_tokens` minimum of 64000 for openai-compat providers — gives models room for both reasoning and content + - Works for all openai-compat providers (Crof, Z.AI, DeepSeek, OpenRouter, etc.) + ## v2.1.2 (2026-05-19) - **Fixed Crof.ai and providers stopping after first tool call (root cause: None tool IDs)** diff --git a/codex-launcher_2.1.2_all.deb b/codex-launcher_2.1.2_all.deb deleted file mode 100644 index 00f3d80dffee58156bc6131c829286c632d57096..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24910 zcmaf)Q^WoGwr$(CZQHipzg=xt@A@VyxY)T#@~mVhn~2xI z!N{B+#@NKr!r&jBp~XJ~2X{h3LM9FlE@mcXE@lowLdO64|EFYPWMpS$B_#YW|8MET zFw--_7}@@Fa)|CBxqWi!LKF%ShG5zxv@5sSXf1|!@c zBV3~J6`})@s2oOnQ#xr7se_zWQ0Gs`n0k{AcCxLFl^8AZ{@@ZFdmEe@Y%WmJe<{~U zItBVsgwvCuF~#_WG%yHy5e^7V3pLP&F1+} z*%p1<9NIs&r7Tw&vadF-eKWj2(sVwfx+Rt!tf6Y|yBu4c7#1Oq;cu!&j=X^dP=YBX z#?&&Znv}RvWJcvkj2YC4f@#l8)$tj2)$->)VYVga84c@%))lbiM*SM}84(5Z*0gAr zFslOB1x?RvGCZ=+&lVhTZ1U<`7-fzY&8x!Td?@~pN^flje|sOImMl4*DT^3jED)MK z&-`1cdAHREmn|8!vKEuyTMC->xVpw5dJGAUls9foJzY|9SB$c2x!uIoQ@9EFO>`P;8@M5` z$xg*}e#xxVyCJpt?Cm1~cNmD9_4wx$r$Sk&>8YN!!-!7<7vq`~nxd-5?7+NSN@0mh zD}nRX;cIy#%HFKH&8B3|?21wo2St8=C2hiz;X*c^X#UOv!WL!l=lKO+_x`G}npIf6 zA|^gt=j6&j-dNXnx~z!xH!GoFK?kYjwR9^!vIf>=7=AwYrIJaPmu2Y7=1vIs9^ zNjqGmB*rSiiV_7z96z)>w4MdJ28s+Hoa>L9e;!z%xSP6$VDbXaY{A0o$$U5YmgH$U zEqdlyIfK7p(8M#}p7NU4YDDIZ2g#4Oum zJ4X;C{u-ajFxnp$_*WAm7aBZGQHZM1goPN)tZ)q?vgcp2a2bBgqwc06L_?-s#(&fO zsV`PmqwspZ38?kZquU+fsd~T;e#z*(NS+Jav~)uhO-_%pMaN3 z8d>9||&sRwHUV}N7xNby&`V&)S+0J5RjaITp7%QFUTG)iyMjN+<#N#Qz40`@@114+ z5APKA*6?~!rC-0}-QDQM6Z2d^zH%OM6Y8IHM2L02{SUNPNAgCC5AOJ@74!;;*_e!q zM4x9uz9q-*Ovh!j+wK>yt|w#YJlmnn=Jb-PVWwWo;(Zxywbg062lnkNmzy$ujp}O8 zH3!@DxYtU|Z;oa$|KG0H*8GB_-rSBK_SRkt-I?um@jEVoR;E*e!*A)f8`GSe!DpvQ z@L{$PfT2lE(W7t>(BGq zk9OwdBlQiS|xpKK_nlaoczqnx4qu0_HT(+ra&(J3i8{N?)JapN0wFrmz`?MtHqPW zOev=QL|^6|Rijy+tY%7~$_PL%p_x43{Gj5|_2~3N@~*u?Tcx!|Offlk1);Taln#ym z+?(d*%=_1-0|Fyx4+9=m4wxv4`;{PGT;u`h-VGo@EAjkUz3TpV`6+pJBgLOU30ZKeaf)umQ+!4b+X_TeQ#^@-Wu{!Z^Qa_aPK;vxbMi!~K>rpj>{ zUUCF1MDzo__=nB1&Va-Ilicp?c-;@e4gTT5#Z#r)EvA5LhZ@-{H^m%dbMhqrtn{S? z%bA@uA`f9V=k3+?XLY0F?CQ)3pD$B1z1I1suR9O89ncws!VPkX91*)v9I)4J2A{$p zSI)XWxXK(&E=TEJXUvSUICz+u*J3jT{9Y?}wO&$h;$P()4whLYL8!95x(e#s$7{8- zv`PMmFWyF1hwl4)NX~akr5S+u9Qu&mdUBdO}(#upqDlpn6gSl>b^s zhpI?Oh)7}b5HtACo?6~!JI|YCW5ZiNZb)H)gP=#i05DW6Ahq}QE1yMf_T>(<+|a+o-AOyS;tF6pm0!q zLBf?mkiGr8Fis6*SYme|eMv%m6euWIAaQhGprrz}<716UM-qc#Vq4v$B1lJ%hI>hl z?WU}%jjP*XO>mN%9Xo7_SwyupPJ}bJ;A!By29)6KHOUI*V_wcqAk>C)i(E=d*X;~%I?49SYNd~mh(?Mc zZ4Nia?&ZVQnTWD+SX}L{YRtXCX%87L-w|Q@#EKx~OdY942C#%t=i`;diP_y3(~~Sx zqw9yiZ%5vEQB?G#Ffh^~8vcsoG8&AkMXCkPkE|)|^6Ie(&1;oS7w^Uc1BU*B>qw%K zCXxg+#NRGvDIUEwtUWd40-k7SIJ8)05_8puXhcgoD!7ur9<*Vz>kx}Df{CY+_%1vg zYyZ>}Q_UWT(Kfs$76q>QYIK`5o7XbezaMILl3Fi#`O5E4tbUqGesgM)9>nk&3^qrB>LHRla!u= z%}?4x3W?o%(X67`ni}Kf`6Kx^mgwBkLWz)0QgNyr^Ol&(lFuY`ICE#~}!%ic*^kk*puM zc(x?iZk6)*RbP8}b|yxo(ku7HHhDORSkl6mg$~ZY3<=88=do452$ej8(u7xi7>Yt+ z<0nsr@8nqfSB)wtLH%(h`9wkJ6M;%ous5e(y!^8!yF*Q9#AKnGGr$t1`1T~ZR`z;h zkrL+k>vIsRx6=FT#I4hyOE-@(=F?)w*8Bc_pb-FmT&KWnDk=&-9Aq@fDGVW=jqCVf zh?kE?iV7JgB?pBpbBQYd7Sl9Z;fTVk*5e`s;YP6`wr%|Cs@ zLsdbP$?rvGSG+41!|Ad;lM-&!0Ft9~k$%GbTzRavjrd`%8lRrRB$GlbGr-B+GdoQ6 zxh?Ej=Vkyz2hxo{z%YFjEr(f@NKyvm^>l=XuV*(G{wYSg?6Q!z+?|m8ehEau2n9%F zZeBRHib+f@ddeQZeleub_Q5I%$7Tl(`-w|j4JUXe=W0z2&zjkV0bax$#>u7!7f`b# zlHbB&FaIsiz|m)V&Q4H_2R0^=TkhbKh7E#+&WWhiMHqqtBUzjG*cUZgT0WmUSZ`!V zPM~ka`lHmLkQ5~`H_q0d^u`)oi*MaDat<88X#u8_-n&YvK7!)0l3*?D;}gQ1xssu- zDy+76rzm!v|Czgig35Im-c7t*#%_No??re;BxKK1zRVe23T1a9qPeoGB>M@^i5X%|}e*cf{9{YANpuDD5@>CElr`|J6w$l2~C z94AbOaTM71hqT?bWH);zgqKv3CJi=NgaS~Ojk=thVv_3vhx~TyL63o=Y!8sfz?6ni zp0DdO)>NUV$5P|hrPt7?m|fjYe-9OiY2KY}eOVFc6*rf^-vOznCrLsYBz$c^A@s^XprG3F~TdcpYf>m~ftCsq;ZL-H>`?tnrN zG54dC%G6Ea95g8?6VXs0HVz4s7E3^fpiGN!Pz?`T#d2KVahwF<=e&)WEIy@kQE|z6 z?Uh^)O5Ke#;o~|l?1lQCZIUk)*N(3$2ulQmjIvjn#D$N&i&&T%1{r`#$U8~A+Tm}m zkW1M6?VPxHNVT=7X5W5qI{(V?o}rrq_%yuc$U!T=;cSM9S{B+3qS13G27nad>Ydi z1UZJ>1N4&!k+7VfFG}VJem-$;7*7|S>{G(~G7-#>ApmDb21&eN75dj#Prx_m zc#!6Mf>7uHE5Iyc?ze+79%;cW?_^HacxhlQLVcy2Os9nMzB#XCN+^P(oQD1 zis7_LW5fkI$mIF%01-TVeA2kEKw)uW#4)3^l0{>Hk9`uJloHet^49~1*G6_qzP$RR zeFk}w2c;JacyakhEwhZHucORN<049g%1Yo*_32F8=lBmh+pX-qWI~;#_EMyvQrqBl1SGwDS~5r7(z;5(H}$ zEj=c(*qIHru6(Lf%@bE+>M8jOoy4h3> zZmPj8lS}s8^P^e!KOTqVu{Bg8ikNIRkk|!T3sc`j!EjkZ*3L&)Efl=YNwO2-t64GWyI zb)szF)ARmr3c}tmOW-p)#6JDfbZgz_UZNC(4C_##MChyrc#CP)>ID8$fy!Yd2_r71 zl5mX(A|#B6-s-gaoHNIDS3%pj&LexW-r4j_l!!G_Aqz_LFvaWl%IQZw)_exCSXoyG zbsFaRCE7x$Oc_e;(;RdB=bj}3Z&{=xbV@|76uz)?yaIsSUq>Rp4G~m^UWB_SHW*7J zp*g>`qx^85Sr~NEY(d&45(x*|0M;yX0O2&5U;q+v9o?Ao?nKnOH$FO?yW+Tr0zGv> zR7hk|n+~&DQ9(leSX2lstn`x1Ma1&gQAm%=r5Z~~Po{@@)C}h$gP<+|*1w}4T?G_J zAE=u}I}B|!L_HM5S_U2sQ_v)qDX)PZnsO_b5vT04ciOfyF@U;H(N8{UaNj#c(K2Ua zsO{O#E0hIuAK9@XH;s~-8H-us2dSKp7-h5uo4t3x`c#pZn|CY}8awBHTWTK-KNf*{^8XsHkPEu zN`(_+2b9OfA1N4oxI17)MTLdcQ4X*wqH+DVZDYq*(jxyrJJ{F!DZh}3oB4b?>q2wL zOAu6JWL8f1!zQN0C<=Z6KpZ*%lhqE6v;G+`9ZSzBYR|!^u`ms@p#Rp)-s^dGh=dgb zc9Ucga+BoB9xDrSEoHkP%)kZ$f}#Wp1OOpnVCBJqJJy%MJOGmhgon-!ONba2A_-H% zA&Uy~f-;Hp0sO%IKw$J44HcRYz-4!A8@cJn+oZhNDf))^g!e)jy3;^B-&4;8B}t$=BjCgcJ=`@M_OaCI=1B&tspcovdVGvWI9W7F|v`mn|K z_bY(y63DVOHwS5^2+j2PGOAmy2GMje+`XuS;z)Fo*X_j^?RJGk<)d|j@6DW3aP*7o*4FwZto3`pkd(M=}40Mj7)zPlrQ=KLkPk1wUR`(?0sJ( z=ux!WK~CA2Rp=wav~gGaw@t~)wah?F#<<#CO7aYJNf87#frFHn>|_kB%?Uoi+e)d* z_GH5)f`f9-b0r|gNT4-;(Ym?W0TTgz=q^ylF z{l)BVNpL`6^Zn@t-rClg-y)cbv3N?%U@bTP7~*V&vHM}RK_Wco??hq(5l@4bcN*pC#sHu?->^yJtfN6jK=m(b{ z`o*}h_%Ji`-LI(b%UY!9u{hY90g@9Dq&C$0#Yzbv?#wr}NlSq(DMhq@Wu|`bjNNU6 zFFn{jU?=DDOJUkY2VY8zUionIHCv(M17hTiR-X*w3Kt!BQziFWSCQZ~((?}BQQGq` zLCbGDkRl4yT1Z)Y%5J511R(K8BI`+_^Xe4tVw;Xe>&jj#wdP=kUxM+5`l8wBiaGmt zBUW_~U|B~Q<=gG4)ire{4VSir$^L^n(-J|{nf68r>gZ8>mK{KWX10JW;w?!oSlQCH z1>yinF{*iHJU^XxFOdd!i|pcEMrK3*gF=zV?p@O#$}YN&*49?x?6~ul@pU$axIZ-H z=y+p_wNnWd5>Z(4>D%LJWLeeq#`9fLw^p9xp0zO(x6(4iOVM{mYh8hR=LZm`glLhR z22Cx2AbKyFx_mUNWr&Wp^YW>@RH)~eYQoJIsgicYqeZbDwUWMGaJc;ccQ(22%i<^_G?)iDYaKy@MP%TKsf@DWMPTxy$%n$U3!Cx>HV@ zN}y2>i`Npu3x@eoGx1J8D))hWOJUDp;SR@wc-z$HM7~U-xU!Ib)tJ`$>r-`BRoY!4 zD+t!@CzoZAKJe*D1b9;@8go`rNbj$jnY4G6Th0>dkiT1FhvdL}<*~0}_%>lv40gv; zz-$&N*f;n~TX-tY#PDAaHs7&Lm{F-B<9=E=+st8*E&Q_;5y@a6rqd&@2N&Ry-}^Ba zRuE^~yK!_S_4)2ofU~JqGv{oCxVJDomtAy0+@a=SInw=i1k@hwVon~MM7|#&yppbI z{X8I&R~#8SN~NQUxI;KKtGptghHdMmk*N73g7>4h+AOEJ=fITJ^Cj-UyK|@UXj}`% zIyq%T$hFWYqVw9IUb)l)0cA-&j;5h_7EW0ZXIXnbRz72m$JFALNg=#{`~~8PI%MEv z=toE0-@xb`5x19>D6OmchknSg7e|;+73Si#+SgOaNSQx#=AwT-9pfNN)Dptbv-X@@ z;srC7=+9qJyP%xLMIBnmNgev2Ba3<`pmO$N@0w!g0QkFZ13od>)mHTqID$-1E{Yfw zY7>R7=IKZUVj$cXMR-m;^oN4D@XU!AVi4HQ6A~pb*cxb27#7JySa9BBT$=WZ&0p0} zQ;b~O&Sj#zidVZu>dX!-IA{UASgMu|>gC2uKRsTMqz>98jGE6fSI)Tjpu^|dtvLq> z0UV8#e;1P;-t$ZgtFzDJ5cZtXHq+Zf3x1~0zZwPbj;3jSTKm`bo61jP2z>=;N;@*9 z&^`|f2zXc8=B(C4aIwPJ)9*jEkR9?E$D$+{Du5z*;SPAPlE%`_KBa${bj{7qgD(Vy zNHqh|7uyclIjP86sUDW?*OpX8SmW@m5Rqv82$v$Qdy(Co9Cf7l&cUpdk~G5P>DRl0 z2tX(|5Rs15i^vEGLC|8~w19j~aYUaZW#B(rA8BqZF``UEY?&f`7mCn+C!1JmivKFB zm=a;c`GEgD;PLnFMn?ELPQQh6Ym&W84B*2pCuJ})tZFH>*^1vKl-^;8jId%E;mSlh zV8Cajng-rjL6?C?riUz++KJ6A=|*HZF99+!*W{I64F3e9mp)_K&4VZ->nfzQSEd+* zuShYF=!XNkdJFC~A5|W_ppPn7e4IbX0A_BumO0m~b_Go(H>UU5;7b5-4@BYfgKONM z=b>Bo^f*TzQ%}qD#UkgZL`qkq)}_Pmhzs@tO%*5ZmyOJ*XUhteaOL{2b7NYWKR?h@ zAx7}fO-L|!1Julw4a!y7o=y+y*V-a`x5vPw+3cF>5v$Tc!#Hs3ypTtgdX~rWO1dH? zx&nudgxLID&x^VD*(4dw*pg$ji(XR_-uU^OD*Q&hextGm1-o@Y|9kon8vLAab%@9UroH%}A%=?v%V z*O@b!+N4QE%NDNYqtwG&zqCZ%l~rQ8^r?-)J|e~0=K-r*G!*7wKuIRObaX#qf#6cQ zB|Yf1i8+DVs6;;N2lf2Wkra3;UjsT{u6Uhan*uiRnGq=Q^t5vX@+x^uKkAMU8--pRvceA}c1FXAHklI-U%DgE=>}sQ24q z010b%UQiqHIRbZMgPtK;la5K!?kC=X3%Ut{LxU!xs!tnq05AOJMc^WP2r^(xdlyO6 zFp6oRb)g+0^oym7%o17s7QzW*b<-~K(=WwZ>(*$V=aOFeq??01sIY_arN(CsV1SpE z<6F9wQZj}J(*d~(xP{dMHd?g zn0T8FCveXXl#GTCgSbQ_0VUyce>y%)5hD}SV?Hu4aqRsgHNgA`Ow8f38nZ;Soa=bG zc6ok9P40RW1N*gM9!#(2oRPUbsyNjrBST@uH|yYguxieZR*W_}mx|=g^x*{!vwp@S z@92kyIMlyc+*u-ME$jR)`?Z*GhTjE?j}0UhaXJeby75K0k5AmW66`2mcM395ecA?4g=D1Mg5VzL0H+S zqin|W>33cvv}^mM8Mj7%OOYXLW0@D^>s&IZ6f4)A;?!&dj}NK7&xHRf11gd@Lxw}k z$?v3#%TJK!ZKV6e^b?x&u5kIuHkINF4w0lYESg+0Cx#eaxRgl8ts2~CR2k!Admk2R zrFPH|;UAxH$u=u04#0w*Se>5GHDrqgf*?fr-NS&>w)yV_EI*=ec5DzeYc*acg3~tt zU_W=NzomO>_V$m58aH9MR6LZ{?Uz3%d1X;qo2hthduLh2%Pa2ZKw%0aR$C#R_-(mJ z8P(qSNO8kZ)zQMC4A!5KV)AEUIRXc96y0(B!46B&V~GaK7}94iZ!%z5>gtCBN{E`W&lSL^e*-W z@b|RwuTq?3r+N!Qfj3L)o*H9$!cq$-vKQEJqpw35w3zK-7IVJ_Keo;+tN~B@x^#Sr zvS3hz-{q#5Fvn>9N)$;v-^Pi_=)PIM@7Le=IH}g62NLO|(aF>tU}VH*0X}y=razQS z96cif_?XoE?f71mT4;Y7jJQ8(A#E;O!MBBA>QI?7iFFA^@J_#LSVcw+|Znl@cjifw{#FKzVK*`=mZz&UhL8i2EmMFU^qxwq@vb8TPupM*MI`2qD%^gWDKkYaVKSN86Xrli zzxSC`p^^rQqyU2vj}%$_bv~OlioWSFD)=e>I@&A8wG5dT+7v+`HUTcfkaQqROq*>c zp1RL91Oo+uJc}6xPW(Og(P>eE8!IQEcf3I;khquSMZv z#usmLvFa$7(C3kc0W#$k9K9}-i%v3{`y#>JbW$wPF!o}pr#sPz)!26!Yp%4 zUK^wj*-;?n=d>iqWpE-d$dA*L1NSXh&71o;z<4Ct3=47|@=U_bBsz2AnSvSvqfO>-)y=N zv)~&fl~x*V5hXzW@gT%q<+beM=PUu+YA>ughoXmXgMRYj*aDaSwmaUIISk{WI*c4h zi%;S-7~IKtHTp?3jL{Dh9Ju@|B{u*arJ|YHND@o;bp(_wKmo@nXNogV?uajx_TtBD zIT-~dtEBb&#HYfFsSqR`>qoZAuCGUsIQe9wJuq2J2EeX-A2ox4k6GmsYT7kzxbU=ZBvk0{_#?#oB z{Dseu?`^3eL|)u|QnKu--YCo-))aYFYMv?JKB>RCO9oBURc)fS1DRa8^WR~oGQ!-B zUVZ}L&Q@_l-^LcEIpk#0+DB`ci2vp@-4%VC7Sc~0VT|&TABvStocYC*8=?TIp&`2y z&cqK1RNG>Gr6OL1swO@10QDW|+uZelf~=2Y!7qYVR>6AH8cz~g$10R9*8*d zMWqE=3qrSD>1@JGY=m=$alUZSagzPQN9#a!L_xyh@6kZe_$Bc$7oY?9JtvdQeo2F- zpj_gv+2XdfPH~lrETdVo`e&?=bn|qpz2ZAT1QMZOg1sjB4W6juAEpCS+wK6ACH4e5 zy}ZF{^NR*^Gl%`&Konw8&kTN46=;f@r{xM=%Ccw65|vts&MeQxmPVau(rI&Qa`pQC z6h8zN$#(u`CBIa%VpndcS$pbX_HosD0c7oigsd{R5#d0wv z=+~UJUem;#fecQ?W8T(-!My4vOq&P(Wg0#W|J(`ogpe@+u9hgrhGMwi&l8n%TO%!V}bZBwO| z-zMfX)5(nH4d4a(GGLtw_m2T$?_@hrsE+Q3fy&ab+?`l= zr2E4!L3thSK%S2f6W8uRidS=A;ZOI7?1N`Jnwrp-u+ccXynmF*9vF~OwFTDYGY0M& zGbczi&qW1xpal325OMTbG?vmq`bN8DM>WkLum%(W^p$mC6U#jKXnw7tnmWw0>@Yp# zXs=d!k%TMIxciZ;Bp7Bd5zu}d%7ud|-7W|q$0k9(H5UIKWKG!+X)y+GClR7>-TlpQ zlpGsEfsyZDXiwp}In;1x?%zD#9=4T%ZJ!P=8ol;rEqXY~_+dbqwJRm^SiA(2%cODE zB%95Y9vRf(aw|3Sra>1oP@A5~m?Y```E%QZi3LaI4RQK@vRo3{4B8p|A1D528w zy|!47Xo6(Uvk3qC{BHgs?X!IOY|^%cLDqCyBQiVTKv+2C zG$2)oNOqG{!-u)0^Y(6+Q(HR+=dh7CjfHX+*Ffiu&92|c0UDhwoM|kyr&b0-+hYl-u>G%v zO~g=9c@b7&PuzB>wep5NOUtE>^W$;O(Ssj40$y=I3LnoL-b4ef7|6CP{X65WR%3OD zfCg0Hqcy9@te=@##vzg zyTIP3#B1WrFtPw%(SDm9_{(%TFp`ZKXnkb@N$e1hRg7b;&lanolS4t?6H|dV)xu5z zMjszlbg6K>e>mmia@ZEQo`8auCq^&MsY#iFtEnIsjhBbo9x>!W?sS4>TkgSU`pNCVpBz{`sIv;L4!l zauf1DZ>!pM`B>kpQ28h-Byp-2M~TS0_yR8HQa+g!4Ktqs#lRuFO4XU6c6r6dZW@#G zbY_V-{50Z3+owhGG7ITEznOU%IvnWr?FmUgKs9{pz7RF8g`iXf=NIu~glVW|XIe;2 zTH$=ho$Vjl)RKQ0pZCf4Rp8C5|EFn$7Cwf0emi8oqMy^+Y64?fr3_^3503bCpaam*f0BL%;z<>*}E-O1jt1R||5JJeQ*tmcCrd@;OKy#rBYR^-5ru&cr zPF(9se}xROdm;MuD&5dEM z3a!Gu`QC&FP8$-Z>0zWcYG_99`V}@=Wl|PPQDnFr43onlkc|C>K&g}U^hQ`_FlT{K zAnB$!2fKF=hc#h=tJ3$G#HUTkHkS0}zJJW-<;4V51i+4QmlFfiF*w7r=PeZf2 zHxm#S2?-}=A^Dg-gXw+1ABbdFWZXn`KRQNiNqktEc6|8A8cPV8l_x#cI_+Ko6LN$v z4<37{IkWB@YR{4hNw#WC6+$?AOW#sqB(`hGxLu3(uHE>p0nZ8wFjAZusJe9NhF}Wo z@@jmFHs8;njFmvHP3^>SCt2|Ow33l}eA~%#I(=Nbb*=P`QSJ4V?6B2a&M2D9o;Jn_RKYe)Q1FfPu%0Z*JnJx9Xg{6HX z^ERv=A~zyUX;PmlvT3JX#`18B)AnAdXJ?RgFP9+2!1$zbt4sjW0N@S?c znfs!m2l7K98Gl2=GSCJzQDxL$VuHGFWfeZ_m+`draW!61*J;~x^?RB);2HZaK(i&0 z%WiO@(5$Lu5f~cTV=Yns3fZM3)FX+BmP7G43M=UgN~PUeSi(i+wkK_Z4GZ`D%Dn@7 zg-P(DUZ(4~4-Sm);F0fvxUnE&Y!hYMc)>n}pY|D(VRV#w?Qx+qoh+DdA}}~z^3fp9 zmI}MRm^jfyvYfmQ2JS@7Xx_L0B~W^2M0Ig}!6+&79BxcvV-5^%Ytgc=w-$L;OHSM0 zxT0q(=Yh)fDjX=#(h@GlpgHmJ8xvVFy3c7G+XKPNpqEVqPJvO6JUf|zTtAq?fgf=h zwVQ$BsC>B5fFh`H7M^`T>iYH-D=gPfp$SjirE>Y<@|I7u-%OcL=M!H2qC#sv_uT^7 zCBT{+M^0^-LjcA{jvXeZH6SdQ;zoni5fD>)ilESydYaVn|6vW5+2lB-Ch|f$JzF-9 zj<4I~+=rL9G(|-WJg&FCOJE_-ODWtOJMJ0s_v~rz7UQL^{8^N3OWNYG0p&zYfoHib z*Hz8k-{|1aVQ)`#v1{-5gUObR+e30qCd2we&&*+XLY3YUx+;1jjs>5z#a$x0d)gayQWAvBO}FE$3Jls?KRic)uOHSwP`t~NhT(h3@e#~@z?|3>af}de=xosU_XW= zW`2mt7DH2{(D?<`q{zxSS^`T6g1#W|k93Wrf<2KDNd6;10uMJYt>bk*lF9xzM^lXAbY=i__E(edvWqm zTP#Zb!{e!AetD}%35T>>9M_z*gTbK1GLE}$hq0l?Fj1cOX&c|9=2I5G7s3g`b_k&DS2EIdtt{0Yh3}1)K+Wp?yQ=G zylfeWv>&$nO@rrJ3q>Q#IN+1Z!A(z8Pqn$SlJ@hyc#AtPmPD8vUH$Q~?LS9uc%t(m z$S*vZ;Va7Hm^sv{e^Pf!rg7FaXx%j_zNb%P$w9T(yhd~B zHZPBFE|1oX{LozGXXqfnxfjY9UsXpWQz`*?1yjr(t0aZB+_`bwP<`dsmt5_vJ_o>K z$9-xMCOYaPZwC;;R`g}igfyT_b@OCzczbPBCP1Z9_)W`$P9Y@A8@fhy)m9m|bgzHg z`o6rm#Fzzz1MI=E@Kx0Oq2wk0DK^czyN0p4OC^55I@Mv5f^{i)WgvuKxB|)u-zPR_ z6rdIi)C9e$3ua1z(WOKukn5`b$Q4t~=jSzN-%EJ*Cyc4eSQcxgIhq+=%K#Nu>`nod zt-umh*2=G9iy1RU0%}k|Cgc<8>r{H($XXzFw!~5CZW`tNgc=o1RZ+20`m0t!P4gpf z0lpp`Ovq|Y_P(FbUp9QNo{%E4RBLb6=YSI0ZA=lZmXu{O4-x)$|G3Mo)6GOGb7d{C`l)d#m^V0| zjHs!Bq#ntp!hsVxWiJ^qmcQbuw<~5`hQf7vP zwNKg|M`BYX98?2%RdD;fP{S%&2#LQ(#+z`=^tQZCKDdv5t;hl?i)D50V~ab#W9`bB zD}1v(n#+r_(SJgsjz#uCYBvVjtx}n^}$fwt~|nT-PPM;`ZpIW;sD>#y=^ge!KLuNR2B9>Ui`$3fl9A0B=nayhP4!xYoKKv^6BtmRd{oGtI zuj9BFJe+)s-+H`9NpQ3Nsdy}6h{!u>vP@Fjczc;&HWqpNDc$D>P||##*`?0Mo)9eO zr2DvF37B%f8h$Rk2eaV9>M3y>^P-8AM@pDMZ5X}DS0L> zHl!W#b@Ua?{R}YD(!Rk1eOHeZ#RJu-&VM@)dk;m~-GY0ITS07wRVX>B6*!xm(z1XH zLM3~*pP1qNu?Y@IPm(u{>ZrtpE=%V@!)Rv)@>c1;znU#1`7shX zF?K2QNFbTx%jh-PnFRUPZ=LQ|vN)uU4q~8>ObBbr-p9I_Rf-2sBHZJC$oJiBh!&-} z2XII%rTTpzpi@u+{Y8OfIPB~Gpk`8=NbX7J0cXT~H%w2&;a_wkpTfg%z9{A)`vFOU zDSkgy0vqcW%qU@G=3SXjq!h3&wXGoSJVahP3KVXNV+%utizZ%gPwuFI*Pt*q2&JUf z5up{ZbxmA3gTvEG&3c@*BCY&<5nWtH0e9Do&{3~j|0)LdFG_h)HOD>ko93xfvG(%~ zl`kM#r7)2_DWY1$B!W7fEv%EF?dO1wOe@|D%JSLngJ0VuC+)Jn;!PU0+r7)qxLsKC z-0j#Ued*ZdH_P?ux#aiZle6D~STzfnDXAWQr;W2Q6QCjbI z3$Lw~!%~(TiY5DvP$5Uod*iUDvALVZ*sfYVGu1zhygAw-=8=wD@zQOMpAnm~oR~6e z)F8cR?>n0WwzxTaXpzu25PL7{njN5$mg&&vG?lw%#>4yvd-oSZ33rZCyAZo#c@5_sXdRCozH5F8EtpxMtOnLQ#K zeXlYnZjtCjdN2T$6SXe_Z2Um#NZGqAFBXrX&TDq{sojCZ5sTJSgOL;^Sv7K!V4bO4 z5i=)C>rO#afSmF#BBj;eGyktH2PczS{S9U-K2-P1?YBSh@+USBnkTQ-iQ30%(hVwt zFwyXkSy0Kl<)QDf7D>$}{(#`c05!igW>PE0ZrGpVf91m9+$BXdyrAEcYnt*H{$DTE zuNRgtO6&cxcZASSD z`Y7VVVw`kG$Y)P8=MpPQkJuaCWcreVQ9JZ1?}IiP*sJG|O8c=e0`4016Y!jgBCG6=o`5E+&ix z1-4ht9jgX-!$Le3q-7-`|LW+vCfDAdwE1_JDk}*`)QYF2g<+2Km&ZNxK#ShVZKO;Q z#5+vS3Z!xdn*_#nF|-saYh$kitWf6#nrLcZL*FYX#1=F5Q>evW9nZ%VB!AXIw{H<# zZf9+?klqxnEY$@X_U1_r*P;Wh)uGLSx`(GaLELxoaxUpWGQ&R)js)ySS2@z%n4xq# zZcrC8&@l;|wWThlz?T%j5RS_ZM}M(~X{-BQw5r>;Srq~E)IMe0QO>MiFtzvJxr6uR zSf-acPy=NqDDbJOW*Aq8Q+Cb0_*^Y`^-5$uk-Fqz};@!N^DYp1DJ>LixeW}GBDEvZHa>R zX##R#$%c83f$EZz#I)}mIE+W<~M^<Nu@J`|`UGlU|@P{gkD=Ve>xLaF<*L3~23tGC;glpM;`HL6zDQJ2^X)b z;qUxj3e@g@VyYq)a-Xj;oky$)x=NzMKqDTwC;T{Ec0_=f_*r9Rslw5MPmC!>%=Ngu z2=bzX819!G;)R;V#mH#KoH(O%4s>4#)Xw!DHzvQE#+6hBjJijY$u;>iW6bN(cr;?Y z;&`Ldgjo^p&08f&r~+Ula~Fxy_+;;L+b(i&j0rfG9cIxQMD-Z_-(X2-aS**c)KuYD zyfNV_)J}%20_@*oI~^8?^5*aI30ZP_syM9!xFygh5xr)?)Y-8Lw=dm`&l?s_^#4Zy z#2`E01g~x9Zr$eqI_i{w$j7&zvRy%26%S&>+fe6lHTpQbmF1>Zdl z(oXTo0S7tN7rw7SjJ~O8EF|V$IFP)&Mp1tlofsXU%LFl~2ic)vPXx!jvSsRq{sl47 zOZ4Xq{jD3Bpt14uzk)h1giMN07q-9k+zBm)#;-m~Aa>jNYQzQ|6FdE+7&I1}>BUMH z8AClXiSeWw<24{-rKquo`^gWqeu|WTvtuiuek?nRqXhEfv8d!UpSjzf>jLEa%ab+6 z$GVK_21Bs!Yehsg+$nT%rfQ^>!oY~<>~MJc3*uzi7Hvu5+rB|a2>OpqLIgCQ-A9S^ zl%33G#ZMt&ONx7cZ_uYp^h(B!)giYCo_OVBz8COd4W)Np=3^I%7O{!uE(UNZlw~VG4*L#B zffo2Vw;OiYs?4UDdx@NRNu`?!)&C}W`FiG16QJdT0uYyI=B@$K;q=Y|ARL`=_>YgH z82F>UXRS!*(PI_K+Lqgl!Mci(w_2@=%=2ToQe^V%MAH2a`j~Fo{ZT{D+BbU^P9)XL zv}NEKOD#?^lTHTsl(heG3yqJnB7MtN4I)$%){|YRxPn-yX(%8m4Z6u!2mmj{kVs7M z;&oDe8iFU39Ye+_A(xjdBUBMNDp> zgGK^ITUaJ7sh&$%8;C1p+f<`8!w*&Z+-p626cGv&jYK>T@?mY&qW=WMLkVV|CWf7~ z`a-BE&kiVfO!_?7ot-0eOaN z1h(2YZg4JhQd*=}zPyQpa{79{E=NnUp%@|~Jkck9(t0<)_{+u;LQDl)q}W|rn5!zf zs>n)`aH&&y0^u20IP!oAA#`i2=iU>(gR-`9PGYaRY%g|Qjoji6=a9)GdK&I*t8tt; z5DRYz3m}%#?wm)eh&u-HPAQj-yR}Y>-$H$G%_)Ym%Y0U)xeqX|@&jjB>cz%_J-wkF zWC)x7%XAB>N?!H)DEXnVLSiXHwi!NP1;9rbwxYs!Fs^PMCtlMC@kob^50H5^9UV+w zNlf^Fj#XFr%UBjdW#K}i9nulr+Fo%-nzf!3_dWL%I#Qh)QTdmv7lP=3DMT)GB~OuR zBZ`iz9fJW6W5KXUq3~EW^#&vi?ZE-2=^nkBGkZbDGV?z~L%g~Gn2)Ha#Dxnxp3?FL z-^EVtBYa6D)iM@T8xIW5D&QXqJP0wwmjRY1m6cdAds`uj4TpwnB8~SKg3(S=jX=8h ztpFILYULL#RL+J`CxVyv8B%r0lXG>Q19hAL}c ze%2$CqCvpiiz{IW@&Q&10HHy{C^p`1hZ$s;ebx?5Yyg!;C`<(q)7j!dybxo?xolO5 zHUCit#y(oduwEO-xUJ*e^s~X|qo%gtpIzqbvxDY_OF5G0&N44>pS|FyT@oGEHe_VN z3EcroqCgof^L-cVyC?Q*KpIU;ygu|0P4|(#Yr7d4(w_~g;L>;4FqItaKodre3=QwhNnv0odZ8R8sXIVC>=SwwdCuv{I#D@PGH$Xk z<~Vl7byaL?v7)1)VglY@^yg$NJxU#oD#jHll0@Lo#G$n{NtoCMjQX((6Y%^J5Vh4S z1(Xzpuwt0JF@83E-+*a|}uo5fDtzXagF7$67C;cra83a~)Ex{h`so%u0%fTlx;u{=2#9djg{ zGR|eQ3kBbRi|+sLLTtTTY}uGY<_LfP*deA15du_6@(b2&S&*V*)!55_rN_Fz8H2lc znpvd2N%dPYfDH5ZGh_1^0A{Izd1_HlTD5+G)}zmW$)*Bps|7q7N0wk|A0EhkN3O0O z6li^-@msoI<@)h_u~a@j7>N}3+xAe4vc~bB#bSxplflXwzXQ~ZB~Z%C)|Cx!k}uPx z8`WVI+?mPA+d+nRNcFcOW>CU7kW8zj0w*;powgOqs!Jv=eLI$sAmRAYZkvh4nwk+B z*X-2pJ$R=I8tDNNMVNC%|Aa93r!0s9A0?ch`W)0;0Pt(!7(u)sChf!?ndr>0rh}TT z2qbR2uZByW2<;kG&c6iR7YX*CY%iN{9+mC9r3ziJv{}J)QqtGRu5?}>vyoGP$TaN@ zg0|D7^2enfZ|CZM8=7-C#koUi6sZyUTv*M_H+PgzX<4p<3Ny(SvK4!Dku&nht_ta2B_KPp< ze6)C!1<1Mpb69B6MP${3GGp%pKEqYaVwqvw&3C|~Nh>t4}dNj>QNfXA%}+g{#tgvQQylQwM9*~iYq`4n&F%;kI50twPzO*GE%f072@VIv3*nkh?Bf(2#I+CJ zL5Jw^44da9`K%2XLY{sPv?Qf8*MJ# zi)v{O0J$9G8cAkmYIc!Ht@-RgF0DrH5UxJ8)d>CG{M9ezF$tu=zs5D0P;xb@UY`(< z`t>IVTjn_nK`N`H>O35oa}dW{Rhjq1FyGGo2alvAgd;w|MB(ilyj$xz!DkcAw>26^ zu4CNK{2OE$BZ?1M2HvFkP?>b-dVPeyGg6e-7@*OfuKu7|_ho*weYs0`ux{Y+8Q(C{ z?6?RkVH4*raDySB2~va~W>WG`Ds$k3!XYpOq$0$c5Q=5-#3{1#!?hnT zh4;qJujOBJ8-TuZ(&@RQ(+?dEG7&{R63c7}fsoAhAxhioehc`@cgC^Vgr3d*!T@{e zy8#KIsI@DK+8*fRBlu8MP?bjYL2D#aD0k~XHN+kXaw=eLd+>~LyfIccgC$2L_RWx1 z2odwA(SS&)nBBIb3!@_(K>Q9?T=e0*r5AEYbq9>$AO>MzZ5xE`R+<6OYkM^kEU zzf;=V)T_xk0HBx9cHRqV5r*-JLqXCoppF}}9kf>&O?p+>y{_3Ai9|=OP5Y9IF8Gxp zO$24+fNuMQx2!Sh1J$`+K1_-Zf*c8$ba`w*vrjm|A)3!~NY0A8_&nmfP!gItY`fT=X=vGE0Z`_z;zrU{FoQEXbLssOZ+^{W9z(@Ldx*U52Pr;pUq`< zWs2yzl^@LN#>nT_3k8krx}yP6FjH#>98<;-0};?fCP$yI>WX5k2p0Wj%=OlecS)>$ zFbsRt9f>4G^eGmv04SP_FnB7mvmwZ+BbhZGC}vC&#j&Bm3J4??GMH)2ca>r$&Ah7& zS?jFg_57a0j{sWJ$7{?XF_?WxjZV2<%5ERNBkR5yDd6vf=a(8%oXsTQcOYay#TTx3REe83XN@#peyg^(2PswvK~0 zZsaB}663@)=o@I3l+IKs0_kcp6vh6n1NS1`zf~DwtxM$$C07D*^Fqh7$l)Nz`me5D ziA;S%W7d$8>=9|$gCUP-I9DTj2nI!!ZzX?A`bBNPeL>`qRUi^$zV)>5Lg+NXkFjn= zc$$eIO|E!N`pYa({8RuN<%>?b)4GeLZ^_E8`?#Q6=S-eVNq37pW_@}vhl+hO<0F|tW_Qm2h5bR6@wZ*9s8l;P!n}TS2}2E>Z>q<9n{d8gbz5 zpvx8)Zy-@##@(liXvH?rS%mvI&K&~D(YGDKCH|hr2j`(#;NFZzMOTASc__J#PLCGq z?aiG7FhsUf2~NVR;mDzo38UnAgTMm5p}|V6pE=lCjBx=bfXlQhU0d_9(@&g)jk!;- zMMh~{Anb!}9|!bOf{7gaC25||c?wW^-C&{h4Pjq`jiAY=XkoVod*)FFD#cziQaLmr z&-QE$e4px1mRz*^PH5z9>)yyq#lz7lEid+s$rQy+n% zk_2EAbQ+WNK^@c>x6csX->2WK^7S-GbALps6Hd%OMRn2jyKleTfh3S3dlVU;RUyy zhY0=#FG%EFmDCcvQE;$i-jEmxM36{s(s+4LQI*^&u`(R@VoBh{OWo;${#fQ=j-=&| zsw&V9`15d}y8HKHFz#$Y`pNsL?gT&|PKAAUMlo*jc`uzZLy7In5WVh&M%Cl-+I(ce z2n7-N+(p9rJyQ=i=c#KIM*$3-aM};F&UpYhe0%tq-Ey?H=4XIlg9d1D6lh%1l%7ZY zs=^$D1gnid1)T;Q@(*fK(9c`~@%`Vi>9^AJ_{Yh~)Uv^fu+2_G_4Si~9 zPc@*fX|NzP&yu_a2SYT!{8^Y&$w%KL6?4j-XWTqjkxt+RVR2%ZlZV?^P0Bq5YlhXqzITU-CC-N1} z+0iOL2*M>Web_y_9@DZej49G+{AnboQ#@B{0!uZRE+2oU-{tua0EK9nLa|0w=aK4i z;@x)i7Lp{P%Y{_E`y7r`j#WkP9vCkZ^A6zF>gLemUS1MH77ZU$&o;s+Wl8w)F$}u^ zGD}xN*0NwJo#${%ZYBPKo#PN$J_Pc*Q`g`%tIbD$NQ>RD1nCnNWK8}T&IMJBw!FkI zm2bTM7gMGa^%O(`@%NcVMN=*c;eRvU`iz;q5F~qPQL{C46_Zk*Gp4YXDHu+Td(D(0 z8Elt2>EvrP0DR{8$kVO@%E}z%b?wFHb#U?<$S@pctsEz3n1!QX_Wex{d|(=0V@yl6 zf`#A<(Zu$bp2!mOG@2i>CJ(iLqX*xPSX{6@;wT@Qv~Z3xj>nPRVB-+n^p@ zix?C$A~tA?g~}l*caj;NUug}%+9FuR$C<|2NQXC9Ygp1Gs~-LJNE2rZf|f!Sx>0i* zxoOhkB()nn0Xq)=p!Y56sf^)O2qfTole>aVNE1!VSw?r^S2K(sB1|JeuHFWX$wt=% zD697HyGwsRt*581p)bZ8<|W%12-L^8%3%TsD!=~QLnUNZzQWauLOJH*0E?v&10C>@ z%fzC|s`iL*@M*P|MX%vTIxg5<(F3uhBxoFb8PmDgQe9?R_N&2IAQ(v3_u1MEb^%0f z$$~Uur4e#rO3B001KQf3S*n{d4rQFvi`-w5I3FjI7jMKBgkrTVr;5AKO02AarbS8$@3^0s0a`HI7ubDTz}FUkr5@1^5uSRr z+7W}Q7m%Lqf+*G3hq0lre6B-rxgJ%d9J$Sb8i;inJn?j=wCO;8z8 z>+~ifIgKEk-Y~eIi2ak`dz)E@rSdeax`5dsW{KU7C9`n30LIc1e0Wj9nvD>8SI*(E zksLVJ+P&1F{H^Y7hM(f5&q3E(%@L#X!~O)Xvqp{Wfq02tp&6{|jj8*bybG32d-zK- z1R5?xqdLyH25F<@L){2K)mC?rYLYFxL%3Os&hgYoJHPS*;u|4Wdm$s8XTK6k6&9Li z7UCFPl_du-dd}QaY4}dV*(7HPJ2n_asX-`eM~L}UrHC_&5saxRdOXx-Iv@$pB9fJ0 zp@|vQwVQ)`A%w5(?>>HrqNNImxj~n%IPGj!l6kaS&}}956u_93z$zBnU0+Y+?7JtL z05NP6H7(1H!ziNL4SGf~>5ICFGxG8P#PZ+JkUoPLiNZhq5c@uB!{^a~TfGpj!cZ~s zfu4df@D3AaO8kklJPW7DOe6KS+Zlxf!)KDzIeta43wcVg>9tOAN_WV+dL%zvG-K3L zaqpMXN|juvSHD?XOs9(0tcSAXBb zx;YcKCHQ1ttT$OrLfLGU3sY*-UENlcA^u`T;!d=rm9p26S69d4tzptHzCvaY)S{FI zuSNvrtz{HP?R-_p)cfmRWTJ{fP-bRMMPo{muvOIDBw_4pdLHxxF?O~DV=dC)899i7 zacSfm06dGK*ZKc8buQxoo^Srq-r-WTg?w{478mHwvqD;A9+;%n_~FJFFBn3?w^Bs3 zCk5X@3hL=O6+^BXVmMyBc!z(NlR}8k=JN3xd8N|=07kQp!~}O}U&m&8i`NKB(#8Hp zfOOi!pr5?Dj3>L~HBWd|wf0G}f%`hp)+_ge#Gv<<2&b^GvkEEn$W4fplsEu ze3^j!<m+o?NapRP@MK7$8Pz$Tf^hdGy$lkJoA75| ztsB|@-7Rpf@D`?Ut^0s88%l1#Ep|kE!1c_d6-`RK&QoxpmbL0#< z3Z%q9NIb&P>&vQVjKI9o=0B!nRpd%zCo^6Ta$C9q)!X_=us<>wxUB{1w%cv#bX*c; zj;wDJIh7g(Jq2P_I~yjvPY&(=zo3kSQ0!*++7x$9q4Z|LI~si=XYb3keq!O^g=OCN zakw?6a()0F*Zg?<>jL$`mld@MzW^XLV!h2m{nNi%;>L3%4SK^~YPf=4N^sUBW)ppQ zLYjgl&-~KL5uz-tUXxaKMpL}zoC(QZ;Y_&sWVibz!uX`9Q1S+hBW;xw%DR8>*8{7? z{JeIzr3zx?#}SUYXG}|ugoa+3`^6{r-VTB=bgG6o%UzCmFkllHCBOkgnIAE)XV%x0 z&ue_(N#6tr$J--??8i^0%CQgL*&bvT}A_)ki7iDdjV zWWfL3+G40n;wI8&WeSu`^nSQLIIas{DHC=&ZfJl~5-q-+ z7L+KoVLjV|}+!@KOS(V={sXxb@ z6qM1ChFmUJ($`Nj5yu*51?cTf(G-uk9Y-YgXoMl=oyBj7ML^;`kl*g%PsO?Ph+=Cs z`?YBgO7C<%5m_-v44Fsne?p>vK&8j;e(G%iuLelDKL)h4V?eqT_xk)e%_y;ZDy!?G zQ%YmKVgQcUML`IxdMXy$p?r--szv2JK)>l+0iZ5dQwDs-B^^+`8zX$N3o+e=0}Sq_ zvV2S8!h3=mLqHIQdWB7E0O^?qHqr-9o^t?FO!KkhL~VetArRBSb9>X=OB(}>Zcg}c zEWnFY^bg)*KxVkcokv3Y2cs?lB_#m1DyBA&GB?7Tbat6402KX1YY=Uym&k*Dc3E9W z_+?o%Y{^P(q+a`!rkFh?;h)HgW#BlUTkzoiKcxVo0F3|?VFV&&0C;T#NkwZZO)EDw zU2k+%5u6Pxq5x-wo|s=)mqXidvosOdxMAEzKBJmTe(OL%2%-~dQgfU7lHox>-gGNy zFsNYmh?sDq4j`>iH_4&&2l@E2JJG>p8w!dt?trec>?XE|O`99I0^p}H{S&$yu;fOf z2+@!tAL#@ZH!2+y)quc3QUytqq&Xro;$y=EW4+lO$_y!Kj)ahyfN1$`^}Or>&&%cV z2?F-wY_T9b&Rr|s;q$+=${-=!Wxuo$^IPV4Ja$G)OhQJQ;+}B8*%El+2tlxL@@lXO zMd}-FcAa5mRX}rkaE&wDTzLjX*O5jBRonLrS{T2!u5ph+6^joaW*ciyS&Cr#(xBYo zb*V=pk0S@ct8Pfk+4rus8AA&R4sOn#bB)1=J#ZGS+A!(c-MMuS%n4Vy}yi#OY~H*SB8VE#HM&L#_6cTGO>%oz`E*@1M)i zUkRnwFMozQ|LFZ^bZUUfsA08KMI%X)O#22Q5P~QUN@hqQ8hg?yLF$|{BO)RaBtOb3 zDo8=j0q+luf(Rfg5@|HBC);?8ZxI51b0u2-ofFf_;m#ecqT1r zm40D55}*d4rjKyQlZ{1C?-5OTjBPL|K_XTnIu&nMsa;PZ^)B)jnVf6n7lKTy>FK6$ zl$)a$`u~K<`~81DMpRw~L zK)LxPmuX_F+~3o4QSm!HPwlEwS&)`9_DudWpt_zf<`cE1DD}?_A9KE<4k)_mjZLvN zH#+s+_Bp@JQWM}7OVq|7zWhEeB_^MqM`6gZ5s#78ngm{6o6C!T1~PUA zq1v#lr?|=xe0K8hm}29~(L0VA71{LD1**HRFzT^_N(2O!X1+33CFHsn%3b(}*%TRNHtgB5E&~J_jA>G3MW)QyP$5~so1&H% zRvB*DmlsQR7*=`p9kdE(%hq*aP+p|KC#CleL;e28m=!Db7m5;kC`-6j@AJSmDxO`n z@UGtTdX08pr1|g0$A7;4BoaSRUTSBt7H7TchlLdv#MT;SD5ITd#T0j9Ep(o4^OpAF#7XNF^9)7B(~IOy8T7rIc|sI(i*+Zr5~JNv|Br_AE@H~o~~q! zTE^UAzj<&DbNa^pD5>};0s>%$%BF0pq4cTmYFA~m54gL0=kT2LKG-Y2n{ASllKSb1 zpQ~zHb$3s~Mi}@z2RU~f>k7F^MWykki?~;VTMZWEk{pIFyvX9xszF6_i%BD$>Hq52 z%wo8$M{Suy`HaOUml8an+Q(GXycO-EU?RiTnLX2V@pO&)*LOm;w< z39??Y%IL$ozC79du&Qmmumr>V2a@NoiJ-(}CPGX!P3W)**wgOiaEd+GO3F-HR zQh5f>^Mn!N9|!IiI@Cc37;c=ISF<`({XK+hf%pKJ?IX^~-v(v$`O*YR`PkOsfWa+v zchZ|nwuIUW9S(Uaj(}1Tqbi_SFWkKop_TxnzCiEDWdLd=lx*vQ33Lqk@=2}PVp-Pa zxb^6k%Zo-S)#Z%x<_3jwIYmI%YsqoPL|yT(pVZb5902J9^d14ezoPJ108fuWsO*OY z0Jt!$frRD)CtV|eL7N!582&%t{70kzAG4U4*%>+iH?{tUIUp7;-9S>7n8K0>l4d(# z0RN+a7&ihayg$t~a!=nTF{^NA zw);|U_q^?5|7hp-CiV@bvG)}5whjdXP8~i|{K~iB+b~~!_n$hWRY8K>8f!h}J-kzW zAGRN21>Ed@KaXyIUmw=X*5*HQwbL7eIqKS9p3Q%-+sM!GeOTYRr>;!vE_`ucgh%vc z4pVRq?HcD;pT4=PlY=B4w%AS$a&)`>XFPR!k-((&WajXvHHN-B%22(_ zq`N=ubbd12Snpy$UVh;A`g-lWGk(|hcIfurerUOGkfDw;8PqxF9o!r~(N%$5?lZ_% zM*u1b5HAG<4UTW;HZ%w*sE~1vcaW1|rX^!TL`8#61g)HcfI~$=ksk;M>5yO~G)ag^ zCSt;fj+7n*3=Idsp&SNP7^r9{sL&$kjulX-5J_5a_EOZEp?3ih2?LLg8Z52Ek(rc& zD=nB}FnGh+r<}lwjppr^ots^~wa0(f?3>S)MzMg>^QyOMUHtagCg!SDV|9-_vXn^) zbet5%x~+CNYbqdIAl=wNV(99)`o;a~^g!|}s~D@sRKbF$^IBi6p~_7z5B=DB1E+`! zJam!IH?-xcipBUGaU1*KrmTLW;_dxt&u%n)c-n0ll84=}7&;f>qzp4TW+uqanTGjk zGy6wWICz!c-5F@~gFDA}c5wY|kbi0XIGfqTTyi-wMIr`ILb(2?)0PtbGIQ zxq9Sr5eR$_W!H6E0QRq1-e7$2e!Q%>B0EFDNB|IUlu%SX>2#xV?KPM)eCPlBZ1saV zo72_S=H~MZcNhN)=JpuNysI;l=?AX2~+)s>)C6Am20?P(dIT@P5=c0Cs0Jm z6Cg~U-0gXEc}6yuJ>2_7sKdlZ9jQ+dD)8cKdBI)D!A3%Ia}x>kq4m$mu*u5uzWQyLgYx2XX6R;t2No`zwgt3n=%b}XCkLMMm2oUSZS z+>xJXlNy~qsC6!T;Kq%3@ z-MW<0DHNV;CY*Sis{~gAloVkT#>*6~xVtsmeQNY@JoBqR=%ws$Llaisg<`Lx)r%V; zWiz=+$nLC@qMk4MyFtG`pZex4C8rxOOhEu$RbCnXY`b4H59O+J^RNMnW1QPm?$=$r zOgc$VQl9C55qnG5|4qm#$t4#6GC@-y{}*T$=RuL$47?2hVwxeYsT;4y;SY9$v-;Wb z2+@0&O5>i-?z8zDgG7+* zea2A~qVc-A#3e6k<<9cb%E;Oa*F_Ua3@Imw0gqreao+2!L8`np^v54h-w+Jb8^6U_ zM99WjbO&RfLP<5dAin0mWVj0I*jU9V^bqWb)z5Dwx#YTD39%HpDlIu`bW8r#yQ^+* zLC=|*`~JPItz7eU%>4RqH^(WmB90lx^RV3&nx~fHaSTB#CReYS7#s%A8!ZU8SjFG? zHkId_7m*gJcT0Y;MFlEElsC?0q52k|LJUvYy+0pT0-Gb}N9=E~l$DTD7$zc+?6cUJiI zoO@On)<|VB|GYHcwAFp;-VqFpoJ3UUPDe&UKthD4Gk`$FbFu9|jc^iWDB>qY99ar5 z2vkB1GfvL~PQiiZy(;&at^4hBBMR=NKtRJ-VFm{Zdf~*kGh3!IE#}>jfl)jEA_@3U z{g#)_l1G?be_h|?{gVuUK@Z8mpq4VJ)VY%*o40%+aT>+^_5u1{j$JQz$|g}VW&G*a zmX+X$ZpwxQ7kBrz^Vo}seAma!@@yd`?xI1Hjp-NJe#^9Zs+RG(@h3lM?BzWL>&Ce17m;#=EOm&oi zVWMxbx0WWZPgacL4ZcVFUVN^)i+EwolbD-TBNai-*2hR8jyg*FpDL`|sz&lE9MUi6|u)jfMjeY)twbOPcMhTqhr;x3DRvP@aD<-vMYD zg`}vFzi_O7zc8%#51sNx;n0i|fb2+S&uAqVOJhb#hQ z?i09oisX4c+zmf+{LNA0%4Kcp&!PczvU7%9-2v3$o zfkZ(-A3L}i-xwwuU#~vq_CC-4EP5<4cA!yO@y7CoF)>`9Lm8Bk*mUh@F?NS(!Pd)) z@t>UYTm-FC`;#BUl~T~U&?#KZGNtv;i%~Dc%mzn-Afd^+0<`Z3g2XJcnkG%5&?SeC z1QZ<;P;lt7B($hhm{dlSE`x`yW7uu(I!S>Ea^6BtmYUHxsXFVv)`@I}yz6Vu&;nb~ z3;$gFTu=uoA}JUR4%W+X(sF}34H(kITQ{}!(Cr)hI-YR)wpEO~FsFM!0{ z_B0$7e9%Ipuj)~6I=ev#5C~uJW-|9II)ar`tmse>#uPx9(@EY?M@3=2{naHW+gp^f zPIZjVzjJ?Pkrx0Uhx)v^h-D6~ZT_K>#|ptpcN~vEfDr(+4j(#j;Ot>LGo(VoJpwv6 z3b-=+n~ZUJXPnIFR*pvU=~H{S{n9)Une2_1PK}5fD;D+vTT&T?FsFS`00c4y2^g%j zR%;7+zu#GB3};I(jb@AiI&;K`N+dEEoFf+8GPp9nC3l7BCgiD=6dI|#_`>p!OQ_fW zK#~{$fkVWC!D59JLF^LyXz{{|@c;lh9smeY!W$p!Lj<)ZFT?K;a^SHL03i!lh>)!M zL;%5F;SbQ5scOYF(-fK#S?k0cgWG2fJxFrywBXigUEhsjpvHqAFCru|Fvt)fMhc4) z!ApE!Z8>1ePSD3C4pTsVpg)4zaRSrX(ixkaFU>lokU*8@L+1{eGZ3_4maSY0B}_NycMj&&}++_92K$Y1+D-w~BWnHhq6uSv+B~3#EnoOfU2r z+@LqnL5B&}Pi1%-=~hZBDj_+iICR)I(rlTWDj|}lk}SbhGzv(_;I9lDGKR5_DYyx# zFfuGOU={vw3E?fGKd7oAOp&o+t)p*A#D>}XRR2prZL)Bc4m(mpGz`H_{qIiUQvb}I zlvN6W2te#@?tYI^w_rhLxHdk(vd`j57$b%GavS9{cUxtHagX0b6~3 zADnWuezBoRcuujKVwB+v2X-QAxsli3Y;=%5*KUUc7d|wpWu4&)KAh%!_S<*M)49)p z+w~NM=(Uu~bm#jsngU%vOKyrvN(w>i-$4PBJ@>*!Gc+ya=((X#P@1olwsu^LBzmK+ zFxOx!daot@?YlqntZeCivgFYg zkhp(0qx*3r8YzCQr4-yk zI+!4w@%;p?$K|g)abbT8nxV+HSPP!#$TkQw1P$w}m+iG4Gl#MK$Dlee6*x7BtPITMAaFN>Xf)bbcwz~_RyNwgDYIdYqmYU!2>ezW zGwSl!dSU4_$-U7Dz90G# zLKYuX3!U}ppsn@Gt%%t=m;Ge^d6o0-O@+JswqLnX#)BZJrbDKq@2XfM2h*d(|LSxK zLxfS>yTfbmXj%xWhfT?@zF1XkbtEVev_eKgjHHm^ho@aejEjSTZmiXi0V65m_@Tfi zw*CA;Bq7?llqHTL9^|1%8h&1U9~cd4DJc;P8U!?43ItP;F#ycD@|*|P=3k^vRBond z=G8@Flv&vN*iyVIbZstIrr zBFS;s3DNPxBLU?A45Sz%CWO%gfDr%=01SbFAVlCQR{&Gs=k~LiLSmHRu8gw`5akiz z31@j_c07kWrV2Eb0~3MT(z4#qVSr!J=`C_#i3gw*;(HZng7{XP(4QZy2CCY^KMy4a z1`)!HBWucbL)F4YkRBT(dvkvfx=;{(Yd!i2jQYC6Pf5RSZo=>#|4fAW3sNe-H(Mep zDh385(-Ty2F%9JvFn~I4W=;!`pS3Ahw&l5joGf?SaXAX@i`&WoPpdwLD|2*lz z@ZCQxGGaN1NH@Qqqc?N{dlA63UwTf3E#^+qy`r9RdunWppc{2y+gmro5`H~$F4skX92x`x zc)jM(sMuzFlklZCC#K*8m#8Qq2Ab??y5Ib-{Z$Nrzya&%0-RM=y`w<@Kof<7d9bHt~34t0mXtLlEUx>@gJn=`m4`L2=~GJ+B8#}!RBM(j8r33yFaae#D2OUg zIXKbW1So}_El9p2duwq*W*Pxx>&rR!V>__9J)OT;4L}12;uJ66r%H|8!1-}kawgAy zy|J{#h0?Fgf#dvlF;pCx3IsdahYZs@2NsXmKmyKZ)&z9b?aBc0pX+mXGfF-88q<16 z-Di@Sq%KX^Qq_2!FES>mfR+4xo|02{@O7Prk@oT|oD#~>($AKq-v^ySIk9kqB_dFr zNnJKQ%O;O?;yW#s*z1dk;duVYDKBVc+VvO7KK#out=a|Fo*IZvXIiTK<(M^bT&uXG z9rLWDPzlj~g?#{@VYlwh==DC)V}!|WUqN8cgVv*y3yA5zt*cWuo-_ zKSma-Q0C0b%_1Q1GyF<;01`;arCBqe-2yWsGE#`RHRtkBHDq7q)P+uYrt~z;c_0x6(f8V9sEwaPduNnZ}UbT zoh^zTV#xHg6M0Rev{(wQ#uk0G6}WuN$0fWo_*>hCjf3Z8RQT(ViYy(U4_K@$vSfg2 ziBYNaAkzzqa*IQjZNAPdWNo+f^(u40WC#A!u=Ewg)b^b4G8?E6j4CgbNQ!IfiF*T4 zH#C}Q86rn`fEd&QWG)G_3ulWp;B8A{R$hzSGQxs+lty z4#ivfJka>90MjDim|nmjlDW-%Zl-mZGz=7c-L-QpN^<&y4TVrNB^)+%1yY`N>U%yn zWKvauj~IlNr0mlM`Y&x^p7Ip}gBQYcx1*@-F>8uy4LP_hC1%INp6rV^kQPn-Ekfj> zXwUiAg_VX7^nU>nytK-K8ZTvS-lEyqB9=k7yb^gJerLcw>djK%nO4@%gP$l$fjQ8e zxOsM!pZu6}d#*9&eoi^F*)!JMw)Q)LpRasPrKIvPq5TVP#p7A|eSp|F12u)7%nusq z!f+bmb~d2K4~G*vg9%dtI96yf_vO&3^trCb38<6k)gmd=V|=5K1~Q|*-EcfsyAU;( zhSwbjoe&DV@6P9d`gcd9Ba?eZy{Nm;eoLg?=uMLj*51DU9=DH>JkSG+#9Po5IBeo7 zln7P@7%j=OGxZDd@5V-JVbLoUf@Z7hg!?Y6#)Z+@YJ<-Xx$}IPnL#+8khy_^v@jS- z0zoecC%3aWYHq9`Pcsol1TkhQv{=9$^SgtPEFg=s&;-}k&(%-h`bUE} z1%lAM@bW&kBaH*VNpUjl^?)VLx1b-ZH!<~M+nBl}6`>PY(T0d`I{J-T?#6ae-aos{ zAcX9-wa0lL>I0eKrfYaF@B~@mEXClTMZ-`^b5pT8f3Q_o(i>nfWa4R=|j5b6b^8lzNB?tIp)FtE26H%xj8B zINVxJF=Yl&4$+x`91Rn*5WG8&nWfy<9X!|v#X78<6sjc>DQ8+h{>7klZ4maVCXT$l z%j^r_(f?BZz=BJ3!<6j35XW++*1vN-(fyN;125K`Z4B8j(v;dp4z!`8HXHpkt^P1l z%a@|dz$DyZG9rp<3PXA*BbTeB#e>rJIk%84VKAtoOj87$R9yj{TmiFe+x@OJ*j|Eg zh>|kp9(l$_TnA8w&#l6BGZLg28NC#7n-?hZczi-PMN*Kq9AFE=nCqi*Bfun@9Vwx9 z43^ByUN z@&s)YVL9Fnsex=#vs#WW`n2W;SjuqYm~`XDU}mE8ti@r^fMv2<*vK4G*ltKnk~tll z`LZmAt}sayt2QBR0GEy+$~CHaE*BwBh5nu0dReg4N%^RzE)oww;|GfwzhP4lPGs0E z-{rJBD#ZFZ$?~$1m-7n~X*+pxxs)nlF|p!VWD?>v>dz%H+p^vMJ;Jc}3LkkA8kiSS zsMpSjmy*BH9+;!aIC%0QAivMkh!9as)tiqU^Fo8|g?F2Zj88J6u zFM<-6dI5HDHEuUzD?b'O$2&eU8p2aZu#0%?X0RA%@M%1(yB)>tD2LCV#VKm$$6 ze;{xel^^|&?hLZyAJ?V`CVA+R-gUpOB><3--`;Mk05;=2{+ZV9V~{sV=R~I%TJ$^&5YN2^4~qb3 z`osAX5Ozd&s3{phEX=};N7|Bz2<@R!x}wnn%_PR6PI-?R8LHgZKjoAUe?@uYsA!q0 z`|N!x!|kXsfAZPU8ufqbp{c3>VkTH`CHWfjo&^+tHwrO{qPlp(ucH`i zbOpd>;oS;6`HXvn{-wp*0e~T{!7A{pEdE>B)5tvx%bo3$+)0XkW?gy?Vqx#(r-ZD# zXTgq`TKA`CONqFqU3iJJq@1}=(O&M^&Ds)n800bE=kjud~1H|3j#A-sN3EZ%Dp9{6%j<<&Tq5lWDY*(N<8* z2iHRE_v-L!o>_uDhU;RXV0`BQ>kxQq!&zEyJB|;4ihE3Y%a7SaQA`nMP9DV;?6S{h5Cg+xt5+`-i;SwJ2=TSLVELGEG`)DIsupIPMfe)rFV+den|S45upr@b_6SDOg?Oj z)8AXwx1eu$9y60zTnBTn(-8x#exyzY!b}rB{!Im?y-rSZ-sI$|Wy);M;8!z_5Q!)A zFgsJsy)sgGJ<^UB9zHm?Jk}=ZyI6h%59P#f<7VGTRmc=J#Ro;x_w2?n*b|(10wXzy z6ZHBbZy?!=%UrA;1ovKNfs7e^>oiPGia-TkW#_Ad;$cDUc# zs~TXyJH(Es<2-UhX@+Du2${c>y&T-d6;UEiV^Ff-v&YMDNmG)6bV3U$usOqiKolzL z-$Jx8_W7SY^L)lm+QzKc8^AoVg)dON3MjT{1jC2CG`*(@G0W7=8I4!O&+Bd2h?Vw0 zkVa^IV&x%eMpbQh&N{2WCUYF3LUDu%n9ykugYjJ!)XI1aMl7%YJd4LgXUT?Ed$tD> zKEpZOf*o^Tgr?=ZHq0ofkF;i>S5Y(U^Y|(!vXN=?wsh~dnr9fq0>0b>d89lDzXr|WT3)tp$riIoU^^Hj zga#JWJnW!we^U1T<_FB6lsf34sbKN|isHbHJUAqJXxrM`{J7Sl@tMXe?U~d~V19A3 z$`Wc=iU|f^Ou#Dy2OW-oEQ`l%XX?ESCUcEtUmM5j?d~Z(p$5Y_W8qwwc^rd9tK`k? zi`F$y=Ob{gtY$fs+-jwHwxb6sA&O;XoQQ+Wyo^bW~oSaE~xx^md$to9q4`&0I=!MlV!DM@A5c>lI zLJ2=Cg;612aaPuxuN5U)-{B^a#D#7;$PeKTSfoGO4X-n1!Nr5uvq>cve)ZFR5j6Wn9K_-Fyu2@Tww z6t$b3|14V=?p2o^KyowO5KHfhLvs6Bq4~p&?^fVDB7p-Tj<9?idcxoIQx3a}U4{Kd z%hi2a+Fc~neWAa#Y+$25=@TK;LoDXbrjaO6p6D(*o)Mrom(T-^*h=tP@uHNipHgmKn-6V?1E-cO8C4k-l-1f zJ|eLw2+KUUUkT;$8*8XQ1hqp98>a@Y!vx6dHK5JpIIP})_5{VXH`47iR&q>Ts&6W< zY2C01DqsF_CT$)5>bk=vB$Y@!_!cRcBa6HTbx3P1qIC7M!nip!vJd&WbJhT7wI(z3 zzlbhe-X>%u%6e1GMt|IWD!UR^rsz)@<$7qu>YNS6`rmNifE#>fddt9<7&FZ_+oSO8 zN98EnT6A73Y}^qdRxQ9it>tR#*y(l*I}w+L`-?g>i3b2-VTX#7O5-KNGXn z3(^hSI%&VUUpm`2=Y$hQsS0)jdo5d47lsltf|ukBL$W~p7#0>sfO>g~O$l@m-lk5mG`B+MR%|fj%>UAlp<8)3Eri5v|%?7K?Et1w2Vols~{Xn?8U-!W_`5cK|up*!@fkI$CPDkV`h~yk6&G9nH?sW zul~-70P?mrS%uH5u%=>@=Tln+Z#m6WF99Got^P7`k+^Eh)(SVuV4>U}LF zz!&%j-19RosnbrHPw~Xxrwq*eqj#-2S`v_OhXha!E3aWX{`;T;dat^QXn z7LH3B14p920NWEu_n85>Zi~ZO_a(FeCEb+|fKYkeo#{6J(?`3Vs;pJlQ#g1v@Gag* zDaA&t`on#4o)(kZWqtAV$;E)V@iRq;O%eIuaa|9fU{;jSwhX}jDcxeA2$)3kJ#uu7 z9YZn|zjbA606;z{uQnk70^(py6YCt4vK`p657_qeI1mbxJz12*X%>Jr;KY5;u8YCr z_WT#pSH>cey?7S9S~|9?Vgmy+C^CqAHxMi|0-)Rhn6A$>FyE#2u!divg%54mtq!2( zvAi9QJ_XXBN;m{%>b{r|ct48()2EVuPB^NS#{blgEf+R*RwByVuuHtFp0_J#@ z{mncq$Y=F)Yk5pSE)3xfit?j+-gyWUW6FvU)X6{O2f>WrmH9(!SeQ}4^<*@DQeSo# z1-Ij-$Z=&eqb8WzkQA3%|D(jfnl#V~bv z9zbNuS>C{8aD{K(t76W6U=!RL>G2`#flnjrN}yR51WS3-y_XqM9L$B0T^3o<5=MHL z(Y6MD?eXhtIX_cE!H3%DSc@kDd9eQO?dHOF^*?Blt#wj?5J1|nV2UnUUNk-o&a!E! zGC`$n`uI7L6-8{?OyFppPDiXoFfD`RK89oopi94+aP4bV{BzW~Cy+N8Ny?Kfyb8W- ze^+<9${hzeL~H;Z*O`NWv&jLE)(S||G4?P~??me0Fo*b*1UHis=wu0NefHVQRt`i! z@Gam5{!v-Gs6#x4@Y#s2^$JK4`A{#4k4D=qSap)vIqA z%UqPm6U9Q*^mAkv&RLfB5@D#0Z^F7`g&a>HsW&b^-#V?|%)4fla2H-b(pmy8o$NGn+Z{VLw8l^X&@dxW>0l@-5sKO2YneNaG8!Zh)B-C@BpvtuH`+9 zMgI`+fLp<4&vH+h^AM_jtpo_{774|eCa4Td?i=J`O7e3746mCI_pXT=U3v;u`g67!b}X0XL| zRU$wkbT=U74>GZ)NfQQO$fh9yO2T_Dp=`1Cl*AY?FQGg?Mfx0qnWtNaY?G0Ks?VuL^XgIAkqhO`6uWi7m3?$DV{OkM9_`<$~I!G{i<|I{vC2| z<%{i_bP{9h9kCF+guQ(x*2WQdaK_|0)z;zS#+`CK(9Td3xa>t#iegtnNnJTdyYH}F zqU%t)^mJ_SjDld%8UdZ6X$CT;X19gh_5Q_$H^Zu0JzSA%2~BNo4|-E0^$bO$H|#VI zrqIQQXKxM=M3;I+sOzclQQ?G|Aq!O#)ju;?opl?Y*IBUTi&{Y7_jAdAg6fAJl&qsk z>^s06j!8sLoiguiKm;I19sWVx<33|>ab;CGw72egQVPHdmO+On^u{d$8=Lbr6dd4p>2Y=Bqvar|)c{bH+YTNZ>VA7Gq+baB` z{@?zLK__~*28UzA2)O7qfruwn-!Cp6+Bp-ew;2#C3rH#W$u zVZTUD#*+IUOrfCZfm-->VC*x8Bg9p)UAONXO=Hfn3@e2OPy=U9v5t`|mJaZNPy?%C zX5>0Sb_rb1Q4HYB52M@88AYBQ86L$fyj_NlLGCf9P!IioBu>c zCZV}82ywUCo=1DFT~6cMV+!JfVOgdCCiv2#Nv&2zjlv;Ro+8IGr^i(HiR0?yf%aoy2 zw5dA4x@w$pH|L-*Rm1CX=uZHyiP62j4_ojxwWx7AC6FXXUyYRpc2@zM^xb~+i%Wcl z352>QC77W_>lWWh9#0Y{6PQ3$Qfq@Ckz`{FgcU-&7M|Zy+=eei2-z`Y4SFf+i4deOolgt}8u~>J zf?gv;O=fc4{zV)wHRd34OSZcJ;(1jZ@oV~dW%lvh!lTt6h1W4l{wS_NT5V=LyFgqS zS}oxh?8TEi(MCrp6>n!LPLILeoeJbASp?bUsEInBl5V8|eti$Dm>!bIp>KWKd|{R? zM`eNH;V>aejyavpC+cAMoL;u?j|y7Qx?mchA{R^8&cK&V-?d?JB>xh_J3#GgJQPsj zz#W+k#Lat<7Z-G4!t!x%q6`wG`$XN42)+xK^ED|JcxWslb5NEl89k8K>!V1hjW-(U zT&zM}=*59w2pYjMtD}(QGVrMVEsfwbys)U`^{;&QIqIx7Tl>fxYXVs!ki{uyKA;Z* zIxR)a+8MAJfYN7k9CoSS2S~{gmXK?^FF(^zqXfC zHQuPi-{xNRM=Y#pU9x3HveJN})r=|WO6zDW&yyI@{4xQ$jk%BlXOb3m)}fyQK=OdL zDI>BPl;#s_#RYI_|i|l}Jvu7>klQO@%CH-CG8odr{Kdzz*8~A!!)YYkMs#-#^ zcS79)o|Fw0&r=GitA=6xAgICR#&z;LK;E81nDF2!q13MrdH3OLg_4%bd;CMrI9j+lbNvqf8Zz-xU?xK=!#)ldFN%d{Z%>y9P` zx;7y@#huB6w{Fc$bg6)UnNIFI1eqnRDTZqqVuZhMAqH|Sh)stA;kwkGa?A9&uH%o_ z#UTI0#r$H_*}4rKTYLFLrp6reCYb4IY*;qqeNaGT;0N&hCl)Cjbl~cTJ3Ogd2!5=R z@m>I31!W8MW?VZ*4(f16C5V-Hij~!=?{#6!fcaLp-KRbo1pk9Vf=!u72gdmN?>46U{z5` zfwf>8BKC8zV$rnCJXipLN3b(_2B2D9gACY?(Gq(y8B{Vv;?V4qophX_ff&DQI-*g3 zn6wN%lk4*d&m4()9v*?3qrv7rzrqa&-wxYwUsHL4f%mQqePobInwccj>o3LR`cXZ{ z@Kra7y))!tt7tL??uj;Ex~t*yTuz(%UH zCp-kV$0NpTeVL;!X&8M;=_9se$|f~dRF5+nNq0>0>ky!2#uCr9T$o=)g50V?>h+3f zt;1GHzsAE~)db9Maq|I=z~NY?$dLZgOj-Ae+LB-T`7Ftbyk|Nbg3}lu?3K4ii z4FQo`U596x5GU0%`wN4()%yDF?#Ng%TQOhy$*+IPGH95UTRShiyM!Kdn2$0mXWS13 zI$5&$Ttf+hbsRX=nGRValHA}yBD0V{>sPrwc7HF?BPo)+^KmX}7Q^y6AVa1?j1)GV zM!XuD`nkwZJ0~5-)gH!8#C`M|=hnH%YrL9l19an)tPDo;Pr1H%UX&-V<3!g)5No^+3Ok}b*m3gpqg~2E-0r84#1{h~< z#1r%-1i5XtTuA%J`d!^`cp5{9#h=iCz8Z)4ko(CH>-You8^-?Bs2~88JVYD2G5 zCOm@>!X;?2>Zre}!Y2%!JDJ&q>##r99N1X53-%&Wb;{-wteo(;I2#=;!U+lg{n`5I zMWaOL-L&?>80uAx2J7k4{2U_qm=O^sl$^_bewGskV{RWF>$-a7xM!bhLCD!0ffD4f z%Y<>7t`b6;aWFeR>JPw?A6NQ7-k)>4L7AenA^LGiw7D>7#C0g(@jA1z%a^P2zu>Az zLL^sp4j>%5ShO$2>yKR2=pH8LL@=x<263n<`Iy8%4p)}I2s{O42H^gK(UI1be>f8i zMaavhz&j>aW6<8Qo<@*f1|T?z#tlzdfe7|U%;MxzDv0RHV@yY~~6k3VGWg$nPfZ77FvZ4}D{I`?&wFe#+Uuz5Vd zx-H*#TVMWVy>St|rtbP}R3Ku0zlZ&mI03EFIDDf&{rx>0c9e#ovP*&w8Bk4jX}e#4 z4?aXY{%3@=n@S>`D{uuWYw6tDpBE$F?u6!mcf%F!6yL%4VdhSStbmW?-+OupyZHxg zrT(BUxv(bB^}uM^PgNjU^c=4ADJU{Wt~X|BvB|tz zf<+MUY=qbecg%FLjZb!4IrbNm_QsK@>!Jefsv3gt>4dzi57KNwbZ=Q-Rn=j)VOVT6 zs@FrtLig7}O@s@|f&~Ve`Ssj5`ha(du43r#(7bg$wKili?nTb3t77R>J94Yj^l)+w z@}G_6VX`eMT@qM!WalAMbm=Nutx?SIJQ~Dh3KZEk_6yPf6)#QbP$^spqQMsNJ;^F+ zyuU8)|n%-O7{p`^moqlTAEquPE_!NW~k%f<`;UGJs9D&>P z@VvA=4FE+^%^u)@inu)q9uC9Z(-7@28bXefJuL_0;eQ1rA=}rp69)@cg3xu%`iInd!|k8WRe_+ z3;>WZ2BG$3DrcB&`Q6Z3AVz%2>YTBx zbwea*be=yIu=6$u{0gjIqCJlmRN&XY5}4HOU^QYR785)DQVbdvoAqLqkc=Tcki@Y| zHMW^cW3{HT57&~1TR+4sMzgzDKx-^h-Dhp&fn`z+^qtL}_1y5tyy7W)#wYg})mG-2 zpVo>;7w)2T0Z|1)E17^1rD}F$_7}cnu`lEjEM8`zpaVS{nIr@_(B@}NdXb%ev*0Iy zgnd-*`l;d=vDHg>FUw87R-q zH9^~z%VbrS#1v7~wW}nk1NIHnR8JwODkth$e0abGU>$r$BkfL%A{PR)c1Iozs#~C! zlZzx0?*Psqb&d_oI3u1fI;-h-jentBa!`FN{r()AXio2d{FjI zH}#B+{W;6f8^%{TH{h`!c!7Ir?}pcXhQ+pAZS~SLLjyE@SR9d>P0gk^{C;! zBkU^7jAoSuEGo5Rg?!qcNZ1A=@a$F#O8&rYLco{WZ+xVzoy!EU zm@S&aOJBIYy;Zn8KKKmFoZ1FB7cLMij_`eaL;?Q5csd!3`~jBg2Q=mmng)z^%5r2$ zcNK}zAj*}kxN6YMa#-ur9?@V@BwpBIBqFbq4_8$k@Chy+YFYMqn(XA#7ZPj;?SK}K z$)BsWB;^R-*FcqnY5#hsOXpA~Ie28*VQw0NbES<}HPcR7JIQ(U)8eU1B}V5n&`y3o zujfXG>D5#T+c4V3tgt|ayYoq&`WYd(I1b~;{qp#eK6Hn|dA6$p!!{&kuvL5WfpgJ6 zB}i?{m;ZNA9<1jDYP8HYE)yavIni&JU1)Hv_`7TgxFDLXYVV}tO z0FZ$NkMuA-S+~ZH?>!NBP*xfz7xuE4?dh+p;`hhlD4W!>r}^1d=Og7y_!x`*kypTJ zibtM*RFMe|qBo^H@tOdf7U_lhu9`zZ4UhS3JSGm{QbY*|WQ$(F1pAF`F+()zzkatM zs^qozHjy96S?5?fy*0yotCv2a=~mYG4zktAr{e1wF&XJ}A_+ckn9+H?!jJL~=-B8g zzx-t(^INzt42N{!wYDYP5dg9#e2wRvh5D$phGTy8%9PkTAVWrg?#fdvZbTAMaAz<; zgkuTVykLCbWl9FHFxrDMOh1brzInXB&LWL|h~Id17%*Uo0wpBGpP5 zEmSuOLUB$+r+f;exXA{o(}N#7pjSYNJtR3X?5%G z(o#W{E&lyH$nTvIkiUF)#2Zr1iYt!jHfi%M?4PF6%uSV>;0lqQOct5D44SX zV^HMh0dnDHol93X{a&PMj-yb_uiuHOdq)0FQf4{Yme6>P-iwXt03kb#-b}go`>X*> z8Y9|pFKmP%Yzi18Fs=seDmF&iely56`+Q4H;u=*iu);h+vCoE1>=wps=h+$w*8e{N zj90gg$MM?3s&u>!f6AV>u1a(N{Ii%ohiGo?<0aF(;Y=uVjw}cBSZ$k(jK-SK)^VRQ zs(BI;-rqI+8i}G>3f;rwUuEf-L7OS?4akmh?{TqlYV)5xC+uW}?5N zsig#@5B&+>x*MgtQ4QmYwj|Aao8oY`77CBhi_sQVVc_*&08yKL|4Wf5fGVcSj}K1T zH?(o=t@kC08EH{tq?%kew7GK+zdL*OkosaCZ582=-JthhZgG;)3K1dig+-suMxu3a zI4q`dP*;Bp$%?Exge#ArA)f*Qp<5zS3^CHwYgJpV3{O+{ajYuGxTsvxhCeNe$H@DSfp-lY-EqgsLKF!2tC2&X2CfebSNGnVJ9Qg9AE*F_tI9I3+hVlg_!U{mKEa zI-;BZF3g_pd~Bb~AzTQb)^Kpsg**YOko*v;S1d@o$EvWG@2|&tcOwRAJb9|nJu&M? za3GvY<(PzN8yaT$p*(rnOxp5rfk&g+!6cg|AXZd()D!{1QjK_E#*T@&dPqcL6pdkN z6V=m44#+h5;6X|Rdp|IS&Q~>p-&w8#dPEmicHo_%J_CUYF9WSa^Jco4O57+6Ytwhu zZs~b9$Ocd>yl(@z}r=3WD?v&OOUTwET>VlagER5o8vmo z9+7?_?PAU`!%v*SOJOB*3YCPj+_OS`0voS&$iU%sY+6bTBumFkWW%U^MZ0k0y|q?y zrm%Zak@0fgyjbiPW3g;*a*A=@sPydO%Vv+#NqK7|NaMM0@`hA$ON#9jqB*YFJ?VOY;%iBQgjd$>kv^SK*uZI_fQAbOO8YTH=Y~qiWsju_ z0k##lMt=)2PE!a{vNX|RCrLgacUp0`CscCJ)B2g@K3 z;Oq?zIuceDD>Lv2IgqQdq-+1<^B@EUn=awl9)}Gmqnp+3Hqs-glM|y`XEXQ}iUfd= zy7jwfyTFaw1f2;w9Z=MYN;VPqq|;#UZfa(e)O{RNI6<);XBrl>{?cMow!P?&tw1kl zwc#u!l^nOx5gsM(eMTTBI|)30ED{XCS28V=ZYJzy?V7qFE;3}r=?^Cp9%2kSf^LXH zeCB;RqkIu0X-}GkISX#O*?+(YNq{p~W!zk@1iDz2kVR|>s6kk zmji(I2laBMF*6(hs&O^UEceiTb2~yw6X;Z*b$sS~-lw&E-$kbb3%E8Lv=>jLxdPle zNC*wcZfF!%CV}R&$6VT(m=G@e$5vO-2d1knEN?#00R9dSiG`-pQRfyLkfwb%$I#C_ zVj*`qV5UCEaX$y4jjPT~Eh8M@@`r*YlM)_(D3kiO61-{cWnrHQnQtXf+XZ5VpG9Dk zEJJ19WbIJVI4C@QsJ}Wa0n>N{0-I?4fwIPBva%oLw*MgAfn#&dVF%e)VIRsSc^7Ge zaiFH8Fbi#({_!*aO2o84wTy<{Xpc2iipBC1IZFIk=`w8=GioP|7EQD*d_Qfi*%;^0 z+f??lq_J+BcZtgj?>5|ft9RTSeyLNF+L&-2x=ADW;c&ahPmn&+VwO8K;F%PARr!R> zYhZuR$Jbq1sz7nhhS{Z5l~&ZsJzoW(+itUNE#OF+kr8y`F3`ppZaDI&{*Cd!rEBvx zjJ(64JMsxmKOp!f5kCp5*#Zh7(fdPCHp~6HF=2Ox&9_9);{KA#^RnXs37n#(Dhe_l z$lXV9pse8QD zu?UX|6b@i~2Wu|raL#2HDpqv|qv2QwVI18y>LB796spWZMDJ2lg!5h}7h4mmDL7D| zf7bZh>t+!I;|r%4#mu8l8A^s!MVZ+C8f5ldu{#osj#?Y(B^zCMN=BOqu8~aL7YSjv zo>U(y&c^bgD@qAwCVEo-XavphkYzv7%$80jj??(m@(C#CO+A3$avVUIe6EZy%nCik zq%52$(_6c^WA3;k5K~BGtnBk33L9v{VirzZ#ez!FX!=_E$*Ce!v zt5|OoXeSv#m#`Q-UC@Fs7u7Omu>#?Yp+rMpek=eYu!X|Jljc{YU%O^bDMNNntP+p$ z`$&&esV3NK{6sZ)dk2tVX(nh(3LmCNmi})pEY(!fj9=Jk)XvGUq{ASy+-QV09G3s+4t-P=%x|W%J2&KKF1`;XU;<2yfkZ@dN z>?-<-oMPMSG_zy|S+sCGh5z5Rymn6-|<@Vp#x)dwMQi@E0=H)@mj zfnYOe7o1Y4IgE+`bC6As2BKy%+%?Y^6;ziT%xAFcFd^n@;+nu@2QmS1*m{;I~ zhi)|+Qc?L?&8;W_vaw&I=%Qe9(Ebn<3;qg}v~`MU-#bi07AG^MhyqMbg9UhV@&Md8 z{ne4#T0BB!v8d&%M6}bKi{;<)`WH)FP#ovHGp5FNi#cW`JCuM@xMBUMuVEaYe^Fw{ z;&5eaq_j2_af%o2k3)~tvLkeXT@xUpKH$q9h;-l*Jsex4yjT_~A%kh+jIfJ1I@{2_ z9v5{z^jq%msgR&$q2N+NE{^-@g2z#c4k0c=@A#-4PA>d6Bc!g$VB8=wHbM1pKg+oWqTAKUmuudqRVLNqe+ zOgv#3SYsVfK?x(}SeB$2e8W@l2V#Q-Y-0%HSZD-CUWyicHQ+OkYM_$w?la4w;YoFd z)j;{w(#f`>l{fnqTZnyJVg3Yk)n(mkpDRgfLtz*2;gqI~{4B2NL}}dY7cA-Rz%q7B zKn1RkHkDFT9{lFLuV!__$0ANKk9LE_cl1lakuW2Bf7IKd#&2C z|DH8AaopY63k?N~t<4)He%fw1UgoE~sH9{gn8`&NaCr(FuZ#sr#PwUFnNMJ?q-l{H zI&lY`CL}ENKl;3t6P$jq5xm85jSclmg|6gm};c&i;^LDTtb5EY%yr z#~aM1{vD(Q#=k`5%nvcG2(q3sY586L{07L)lpzz0tm%!%+(L`4c&yRxnulq<*&v$S z21vIc9z`C$`Sg00BiqNwDkBBmGU13#94mb=-bA;d82~xRuf-tuB3Z2zc*a(QR!-6i zn|t}S131nvw@?g-=Qr}-w;)Am$-HPD37oE+um#Dv+K2)>EE}b#68Jfd?{LVXb~zhi zYrLL*C05a)GYCqsH6Yq4%~>L^0;t3=AiwytPdjSZ8L)dz-`p47m^g|(P59jEvO6t} zK#Ei;O5_R9q7(Q?7@R;7f-UkhX5Nv|VrYz9Zj|NXKfI_>vaEF=74RVrE-z|3j}dGI zJScH@l}t;}je>_I6NbdcC4#(Ssn(ST^;F5JNXam}118eR^ST8E{e+o^zaTB(a8)5W z;2(kmh`XOF;A3aqV^-cI>UseBpj+6jWE4hQY_XeCjya)$GC;6fOQW#Se{Bx3&`2o+ zKC4L35Rcrz*?fSaT0g+*mbBef>@pew&P;_a03V}UUDvXHhA?c91M4USte4a`&mZw( zV2*}h9`Gln)9@k9L2kShoOxg#QMfva9O$`$gu?GZe0#a1IK;Oy^F3i@$DVzKaOjiK zy{P?R&C?3;JWnz)SQ}Bt9(N=2mmd`sO+YHuWzR7neF z*Mvk_tsP9f3ggR5_`S;)@ibJ(5fCtL=Qi;wM{R;PyF@6W^|PfUPS!XGt55{zp0bzE zOh?cC2>`yrU15LgdOZY@sEjt!e{9kSuUeE#$O)=x5tk2WruOQIXMkYPaCVo-sFe zsl{?&LIYwUolXI3OF~P?2fN^qPnHH!dZ7jZS5})wf78NaWZ!wJJC+ea#*lLi{6auR zUWmjP$)LRsi^)TeiWNlL_(>)mM6UseaD3-s{Q;PDFC=57HLsC$c@ts*V^C(43A`tI zvSv^uUG0)dS5_lEuy!6qUaNYbbeKTiLN9c^NGHp|dJNI5?n7^ef8jU~qff?w8@#}a zy=kc+U@7;yVbWK`h+|R8zBP9*(|A!(r#5dfu)FjHs+$b*bhO zF*Ti&DbH}BZkaI(6mT;S$gitj#u!AxMgfzPyw}S_l%TbcWusU$fZi-#8G(7E^)>HNR`1-r##m;Q=fA;N7cf;_M~ATO z*=<5Wi!m}6+lMj>JSjM!8*nf7%#wL71$z1+9QjC4@{y z_GZ@!X||cEi0(o4Y_H(xTT+K!BJ3Y^yNqR}H#kkHcn4f#7HQk;wBy3iLT>H!r}4OU zwBR366JjyLQtQPO~C5SkY0 zm4E$B$cMAdSqK6IlUM}38F7~eYe0hU70VrF=`>{dJ9H<@64yJ%U*}u_)1~ElZjpJE z>?7W;1R_Nv$u^^`e?^BT=Q_0+zzmtz8eQ__zYLvjOP=x08YS2sc2z4Cu4S}|nK zXS`PCA`seErNtSeVr6v!h6QFyQ8NGHVRVAM!wv@qxYPg_mIGrNr_$ogA_m8FkRA_` zGMyYjXc4$-ooK?7>fUptTs+68(C$+XqI#-t@gOKG6?eYP5sh@+5_zcm$sA*I533j} z+=VjnX5U~oWCLUIk5pq(niSU4S@1Y%mR{PIYumL}nEri9xZGU$Nm5z4v1}Sf?sV zE0|Etahd(9G3(Se<_mIV2VQ5KT2cjc+yyh?1*2xDFd*M5U!CiqajN;S9KtuyypGoz zXnF^SO>3zj)hH;4D&088YJOmT0+Qp~1fdCoxjc{u{MZ~B%3ohGsFO2ki0nI_-;)%2 zOP92li;+bpHB8EXA_+l7)*6bVwv;NsWLfKuGAqtaCNpKGqC+Fi>cm+!B8>ZkW(~a| zYN;)Ru%0+bP`-1`9KjwMgk~&p5n$QY#*}}`H2lH*9|XRvj?Do&=~ZkNnE@tiwAQ<^ z$D{VA5m+fA>&ct%qM+bpPO->ApNj#w)^k{@oP|b=h%c|ek@(4k05DRBpiIR#^f?yE zTRcS&1TF-6KrS-mLBD|NDQv+d#vwsEq)9wUH*g(NYI;e0pfu=gS#!R$@D|}GAJ*D8 z!V)D3fh%hz=)szRNut!$s2kp z&RYd9Y&p$Qi2#GK(~bW#$eR1B3)A(U>`NXq^CCI6c%V=%y+D8{Cu!s5R8~+F*Cden ziJs_5_gN`oDM)DhQqedW`w5!z_&Rmd711hO*2@0>N|CvW3(1bd*jEIslq;wvTPChn zWB|*qw$6sQE!i$aD2T>CxEt~6Vh?3$)#6N=$X%Wrg4P~FZksP(0S_v+9_w%g;-3)O z;ntdTL^_d+sGyB@DgF{unb6pU%}1F8 z(3NvhjcYoQC$W~SgmXL@eLo%;lthJ?_Y}Zn`=WsN{we=D4_YeEO1SMSN+zF%P^iXZ zns<=MP+++YA9C4Fdz%zWgMOD226@X+5;&2Jcb33?yn?WyaUd{b zy=DVEb<=4EY`z)rl-ldH`3qDUkg`+jAp&A=ZOh8FM^|!(qmU+b5_Vi9hNl4n{NmPx zx4NKjBG`w_HbkgU|&d4g>`IO$aQQtGq&_f|l(Gd=X;g zL_oPpLs-6kFa_f>=J>i_BpDGfLQuhze0CbrE=*k1?IAUYIRGb94p5aLZfSg4S*=i4 zGkLk(pVDDYiyE#w-c^vyG<~Sp_~F=0f&cSB6yO$=CT$Dpfu66}BX1R#>aqHEH2a@u zEX3s0B^HHZkOiM--2VhZ|A0e}f7tGA03r<_W`C~r5ypTxH|~A%+cc$az+y2ndOa(& zX{M(b0CAld`hlTW5x8qgP;KHW)L928m7FU8=t&<10}M(@$H;-n@Kgu}nY)ky25Wd( zz9n;bPuyY%BVl-nu}KXeWiY|gda&h-p^qkNGK<_$8zAcoGR(lxo3!b@8v{tUQ~glq z!~&1~gA{%9GUDT$xm+(b`a4Z20LE>xHIQ^2f}di5YN8b~G_)bG2V|wpca4Duqmo_y z%Tq~SxLzrq()6~Bl0=Kv`1oRUf{MccRvoDTvH+U^Vsl+b3c`_|$P^r1mRQXX!g2>( zQG=lcvq!}AJpLHg3VWFxP=%J2FFTbUOin|=QbwOq*B9S}*AaSu4_5#PHLit7c!L+- z$d#g-(`99yz(R-BlhPUxIC!ccfs#N+L`H~oo?~t}XQw_xN=Tq4UEUjwMx$Y_wD*$v z^3eV=N263}zlX`Z&i=!lN{7DTA0DgyN_FX&@7lApy9?E`P0!ewmd-a+n>u9P`z)8s zDAf^@kP#?3pe<^=(1d`vnAw%Mm4YSifr3%a*0zlD0PQAeyxL})m0ri28WnC2G-#15 z3zNC4JgSI%_+Zp&j5XknDx>7_IU{eYq&~Ke!Ux^VT-XP@^ zCJtxjl9pg~;7Jo>D6%_&g0SmSoDqnu0r<@kJT1jZr&e}w#_II4B0L*hN&zSpfM|qg zV2*AB&H_b{`<{I#1)1#juX9>Puj1NYTc2dUhs@n`zaM;V$3zWN!KA%lF`) z`E!4Ac<{cH$6T_`AIjNh-M;qYy&Jw~6_%8r|LN@UQD#2tv}xzin07jyQ;>0($IAr? z>XLzY?RRcxkdUvlcLq=GP1n@Ft+DtO&#PKHr)?QMZ|3@xuB|d3uU+UXP5sTQP2bb{ zZlUXz8@GPl>SE_KS$z8QE&b>Frmfl^Q~#%qt*>>CrPld2`*Zr<(%Db{9Is+^yQUWulApF{A*|G-=t#gmrsMGe--~UI+o7ARkvld z^u?!Y1AytMak)f9BT14>`vxHlf>4;0$`FNU?g6qXJq$8vL_{c%AW>Q6M?p)@0q+fs zf(RHI`Dp-P8)~_#?lDJz9oJmV=}>Iko3QQlm7sG{E;Nq8XZ_dM=tbBp2{da)@;K@j3-azKK@iDlf>Pf2ipyRUv*;b^A!blI}%%}21Z-; zNRNo!qg^X9eP87j@GyZ>KI*h_-c%t`@n+28+!-;mGjIFh7H_w1xt^UDOMDr^>Y8JU zW%@d69uGkMG{bimC5m{K@tWg6*YF%g{2c!c_t$jD8B zk-uZu<9LLFzm4W@4<-n!(doYGi&5j$q)eEqqUUoTBneS#mphm|X?Z&T4481%j-{;m zrTsL&Ox!kY&_JSkpcuHQr6^T`*eHfC=ZmuqMFhPOLF~jW z(0`O_jYrBfqaHHqX~r+0^!;;*n4lJpZ-($g(Gf>emDxsK3-+>myv172NHR)YvH^Jb z7{Epuz!n4SmS58SwBsyA4Zz?gFwjzsK4b&%DOd}>-scB!G<->247}h5)P{Bcoq{@! z6X3lV;KJH~zlPTUt}-|P?qC4E7f7O-wYO{2IXd$u>+I6I3gv)Q1)Nk(nu48UM)-~n y^$O)~_IWI0$ilxJ>8vCnLJpSdNh$0{N~Ekz^+*P0BZQZADkish83RW+3cd=c;F9bB literal 0 HcmV?d00001 diff --git a/src/codex-launcher-gui b/src/codex-launcher-gui index 9753029..f9de114 100755 --- a/src/codex-launcher-gui +++ b/src/codex-launcher-gui @@ -24,6 +24,11 @@ model_catalog_json = "" """ CHANGELOG = [ + ("2.1.3", "2026-05-19", [ + "Fixed Crof mimo-v2.5-pro stopping: reasoning_content exhausted all output tokens", + "Strip reasoning_content from proxy output — Codex doesn't use it, avoids token waste", + "Force max_tokens=64000 minimum for openai-compat providers — gives models room for both reasoning and content", + ]), ("2.1.2", "2026-05-19", [ "Fixed Crof.ai and providers stopping after first tool call (root cause: None tool IDs)", "Codex sends function_call items with id=None — proxy now matches tool results to calls by position", @@ -527,7 +532,7 @@ class LauncherWin(Gtk.Window): # header row hdr = Gtk.Box(spacing=8) vbox.pack_start(hdr, False, False, 0) - lbl = Gtk.Label(label="Codex Launcher v2.1.2") + lbl = Gtk.Label(label="Codex Launcher v2.1.3") lbl.set_use_markup(True) hdr.pack_start(lbl, False, False, 0) changelog_btn = Gtk.Button(label="Changelog") diff --git a/src/translate-proxy.py b/src/translate-proxy.py index 6477672..ffb2d33 100755 --- a/src/translate-proxy.py +++ b/src/translate-proxy.py @@ -370,10 +370,6 @@ def oa_resp_to_responses(chat_resp, model, resp_id=None): fm = {"stop": "completed", "length": "incomplete", "tool_calls": "completed", "content_filter": "incomplete"} status = fm.get(finish, "incomplete") outputs = [] - rc = msg.get("reasoning_content") - if rc: - outputs.append({"type": "reasoning", "id": uid("rsn"), "status": "completed", - "content": [{"type": "text", "text": rc}]}) if content: outputs.append({"type": "message", "id": uid("msg"), "role": "assistant", "status": "completed", "content": [{"type": "output_text", "text": content, "annotations": []}]}) @@ -447,9 +443,7 @@ def oa_stream_to_sse(chat_stream, model, req_id): yield emit("response.output_text.delta", {"type": "response.function_call_arguments.delta", "delta": fn["arguments"], "item_id": tc_buf[idx]["id"]}) - rc = delta.get("reasoning_content") - if rc: - yield emit("response.reasoning.delta", {"type": "response.reasoning.delta", "delta": rc}) + if msg_opened: yield emit("response.output_text.done", {"type": "response.output_text.done", @@ -885,9 +879,10 @@ class Handler(http.server.BaseHTTPRequestHandler): if instructions: messages.insert(0, {"role": "system", "content": instructions}) chat_body = {"model": model, "messages": messages} - for k in ("temperature", "top_p", "max_output_tokens"): + for k in ("temperature", "top_p"): if k in body: - chat_body["max_tokens" if k == "max_output_tokens" else k] = body[k] + chat_body[k] = body[k] + chat_body["max_tokens"] = max(body.get("max_output_tokens", 0), 64000) tools = oa_convert_tools(body.get("tools")) if tools: chat_body["tools"] = tools